//#region rolldown:runtime
var __create = Object.create;
var __defProp$2 = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __esmMin = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
var __export = (all, symbols$1) => {
	let target = {};
	for (var name in all) {
		__defProp$2(target, name, {
			get: all[name],
			enumerable: true
		});
	}
	if (symbols$1) {
		__defProp$2(target, Symbol.toStringTag, { value: "Module" });
	}
	return target;
};
var __copyProps = (to, from, except, desc) => {
	if (from && typeof from === "object" || typeof from === "function") {
		for (var keys$1 = __getOwnPropNames(from), i$7 = 0, n$9 = keys$1.length, key; i$7 < n$9; i$7++) {
			key = keys$1[i$7];
			if (!__hasOwnProp.call(to, key) && key !== except) {
				__defProp$2(to, key, {
					get: ((k$2) => from[k$2]).bind(null, key),
					enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
				});
			}
		}
	}
	return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp$2(target, "default", {
	value: mod,
	enumerable: true
}) : target, mod));
var __require = /* @__PURE__ */ ((x$2) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x$2, { get: (a$2, b$3) => (typeof require !== "undefined" ? require : a$2)[b$3] }) : x$2)(function(x$2) {
	if (typeof require !== "undefined") return require.apply(this, arguments);
	throw Error("Calling `require` for \"" + x$2 + "\" in an environment that doesn't expose the `require` function.");
});

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/format-error.js
const formatError = (err) => {
	if (!err) return "Unknown error";
	if (err instanceof Error) return err.stack || err.message || String(err);
	const isCloseEvent = typeof CloseEvent !== "undefined" && err instanceof CloseEvent || typeof err?.code === "number" && (err?.reason !== undefined || err?.wasClean !== undefined);
	if (isCloseEvent) {
		const reason = err.reason?.trim();
		const parts = [`WebSocket closed (${err.code})`];
		if (reason) parts.push(`reason: ${reason}`);
		if (err.wasClean) parts.push("clean close");
		return parts.join("; ");
	}
	const isWsErrorEvent = err?.type === "error" && typeof err?.target?.readyState === "number";
	if (isWsErrorEvent) {
		const states = [
			"connecting",
			"open",
			"closing",
			"closed"
		];
		const stateLabel = states[err.target.readyState] ?? err.target.readyState;
		return `WebSocket error (state: ${stateLabel})`;
	}
	try {
		return JSON.stringify(err);
	} catch {
		return String(err);
	}
};

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/pi-ai-stub.js
var pi_ai_stub_exports = /* @__PURE__ */ __export({
	AssistantMessageEventStream: () => AssistantMessageEventStream,
	StringEnum: () => StringEnum,
	agentLoop: () => agentLoop,
	complete: () => complete,
	getModel: () => getModel,
	getModels: () => getModels,
	getProviders: () => getProviders,
	parseStreamingJson: () => parseStreamingJson
});
function getModel(provider, id) {
	return {
		...DEFAULT_MODEL,
		provider,
		id,
		name: id
	};
}
function getModels() {
	return [DEFAULT_MODEL];
}
function getProviders() {
	return [{
		id: DEFAULT_MODEL.provider,
		name: "Anthropic",
		models: getModels()
	}];
}
async function complete() {
	return { text: "" };
}
function agentLoop() {
	throw new Error("agentLoop is not available in embedded web chat");
}
function parseStreamingJson() {
	return null;
}
var DEFAULT_MODEL, AssistantMessageEventStream, StringEnum;
var init_pi_ai_stub = __esmMin((() => {
	DEFAULT_MODEL = {
		provider: "anthropic",
		id: "claude-opus-4-5",
		name: "Claude 3.5 Sonnet",
		api: "anthropic-messages",
		input: ["text"],
		output: ["text"],
		maxTokens: 2e5,
		reasoning: true,
		headers: undefined,
		baseUrl: undefined
	};
	AssistantMessageEventStream = class {
		push() {}
		end() {}
	};
	StringEnum = (values, options = {}) => ({
		enum: [...values],
		description: options.description
	});
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/agent/agent.js
var agent_exports = /* @__PURE__ */ __export({ Agent: () => Agent });
function defaultMessageTransformer(messages) {
	return messages.filter((m$3) => {
		return m$3.role === "user" || m$3.role === "assistant" || m$3.role === "toolResult";
	}).map((m$3) => {
		if (m$3.role === "user") {
			const { attachments, ...rest } = m$3;
			return rest;
		}
		return m$3;
	});
}
var Agent;
var init_agent = __esmMin((() => {
	init_pi_ai_stub();
	Agent = class {
		constructor(opts) {
			this._state = {
				systemPrompt: "",
				model: getModel("google", "gemini-2.5-flash-lite-preview-06-17"),
				thinkingLevel: "off",
				tools: [],
				messages: [],
				isStreaming: false,
				streamMessage: null,
				pendingToolCalls: new Set(),
				error: undefined
			};
			this.listeners = new Set();
			this.messageQueue = [];
			this._state = {
				...this._state,
				...opts.initialState
			};
			this.debugListener = opts.debugListener;
			this.transport = opts.transport;
			this.messageTransformer = opts.messageTransformer || defaultMessageTransformer;
		}
		get state() {
			return this._state;
		}
		subscribe(fn) {
			this.listeners.add(fn);
			fn({
				type: "state-update",
				state: this._state
			});
			return () => this.listeners.delete(fn);
		}
		setSystemPrompt(v$3) {
			this.patch({ systemPrompt: v$3 });
		}
		setModel(m$3) {
			this.patch({ model: m$3 });
		}
		setThinkingLevel(l$3) {
			this.patch({ thinkingLevel: l$3 });
		}
		setTools(t$6) {
			this.patch({ tools: t$6 });
		}
		replaceMessages(ms) {
			this.patch({ messages: ms.slice() });
		}
		appendMessage(m$3) {
			this.patch({ messages: [...this._state.messages, m$3] });
		}
		async queueMessage(m$3) {
			const transformed = await this.messageTransformer([m$3]);
			this.messageQueue.push({
				original: m$3,
				llm: transformed[0]
			});
		}
		clearMessages() {
			this.patch({ messages: [] });
		}
		abort() {
			this.abortController?.abort();
		}
		logState(message) {
			const { systemPrompt, model, messages } = this._state;
			console.log(message, {
				systemPrompt,
				model,
				messages
			});
		}
		async prompt(input, attachments, opts) {
			const model = this._state.model;
			if (!model) {
				this.emit({ type: "error-no-model" });
				return;
			}
			const content = [{
				type: "text",
				text: input
			}];
			if (attachments?.length) {
				for (const a$2 of attachments) {
					if (a$2.type === "image") {
						content.push({
							type: "image",
							data: a$2.content,
							mimeType: a$2.mimeType
						});
					} else if (a$2.type === "document" && a$2.extractedText) {
						content.push({
							type: "text",
							text: `\n\n[Document: ${a$2.fileName}]\n${a$2.extractedText}`,
							isDocument: true
						});
					}
				}
			}
			const userMessage = {
				role: "user",
				content,
				attachments: attachments?.length ? attachments : undefined,
				timestamp: Date.now()
			};
			this.abortController = new AbortController();
			this.patch({
				isStreaming: true,
				streamMessage: null,
				error: undefined
			});
			this.emit({ type: "started" });
			const thinkingLevel = opts?.thinkingOverride ?? this._state.thinkingLevel ?? "off";
			const reasoning = thinkingLevel === "off" ? undefined : thinkingLevel === "minimal" ? "low" : thinkingLevel;
			const shouldSendOverride = opts?.transient === true;
			const cfg = {
				systemPrompt: this._state.systemPrompt,
				tools: this._state.tools,
				model,
				reasoning,
				thinkingOverride: shouldSendOverride ? thinkingLevel : undefined,
				thinkingOnce: shouldSendOverride ? thinkingLevel : undefined,
				getQueuedMessages: async () => {
					const queued = this.messageQueue.slice();
					this.messageQueue = [];
					return queued;
				}
			};
			try {
				let partial = null;
				let turnDebug = null;
				let turnStart = 0;
				this.logState("prompt started, current state:");
				const llmMessages = await this.messageTransformer(this._state.messages);
				console.log("transformed messages:", llmMessages);
				for await (const ev of this.transport.run(llmMessages, userMessage, cfg, this.abortController.signal)) {
					switch (ev.type) {
						case "turn_start": {
							turnStart = performance.now();
							const ctx = {
								systemPrompt: this._state.systemPrompt,
								messages: [...llmMessages],
								tools: this._state.tools
							};
							turnDebug = {
								timestamp: new Date().toISOString(),
								request: {
									provider: cfg.model.provider,
									model: cfg.model.id,
									context: { ...ctx }
								},
								sseEvents: []
							};
							break;
						}
						case "message_start":
						case "message_update": {
							partial = ev.message;
							if (ev.type === "message_update" && ev.assistantMessageEvent && turnDebug) {
								const copy = { ...ev.assistantMessageEvent };
								if (copy && "partial" in copy) delete copy.partial;
								turnDebug.sseEvents.push(JSON.stringify(copy));
								if (!turnDebug.ttft) turnDebug.ttft = performance.now() - turnStart;
							}
							this.patch({ streamMessage: ev.message });
							break;
						}
						case "message_end": {
							partial = null;
							this.appendMessage(ev.message);
							this.patch({ streamMessage: null });
							if (turnDebug) {
								if (ev.message.role !== "assistant" && ev.message.role !== "toolResult") {
									turnDebug.request.context.messages.push(ev.message);
								}
								if (ev.message.role === "assistant") turnDebug.response = ev.message;
							}
							break;
						}
						case "tool_execution_start": {
							const s$5 = new Set(this._state.pendingToolCalls);
							s$5.add(ev.toolCallId);
							this.patch({ pendingToolCalls: s$5 });
							break;
						}
						case "tool_execution_end": {
							const s$5 = new Set(this._state.pendingToolCalls);
							s$5.delete(ev.toolCallId);
							this.patch({ pendingToolCalls: s$5 });
							break;
						}
						case "turn_end": {
							if (turnDebug) {
								turnDebug.totalTime = performance.now() - turnStart;
								this.debugListener?.(turnDebug);
								turnDebug = null;
							}
							break;
						}
						case "agent_end": {
							this.patch({ streamMessage: null });
							break;
						}
					}
				}
				if (partial && partial.role === "assistant" && partial.content.length > 0) {
					const onlyEmpty = !partial.content.some((c$7) => c$7.type === "thinking" && c$7.thinking.trim().length > 0 || c$7.type === "text" && c$7.text.trim().length > 0 || c$7.type === "toolCall" && c$7.name.trim().length > 0);
					if (!onlyEmpty) {
						this.appendMessage(partial);
					} else {
						if (this.abortController?.signal.aborted) {
							throw new Error("Request was aborted");
						}
					}
				}
			} catch (err) {
				if (String(err?.message || err) === "no-api-key") {
					this.emit({
						type: "error-no-api-key",
						provider: model.provider
					});
				} else {
					const msg = {
						role: "assistant",
						content: [{
							type: "text",
							text: ""
						}],
						api: model.api,
						provider: model.provider,
						model: model.id,
						usage: {
							input: 0,
							output: 0,
							cacheRead: 0,
							cacheWrite: 0,
							cost: {
								input: 0,
								output: 0,
								cacheRead: 0,
								cacheWrite: 0,
								total: 0
							}
						},
						stopReason: this.abortController?.signal.aborted ? "aborted" : "error",
						errorMessage: err?.message || String(err),
						timestamp: Date.now()
					};
					this.appendMessage(msg);
					this.patch({ error: err?.message || String(err) });
				}
			} finally {
				this.patch({
					isStreaming: false,
					streamMessage: null,
					pendingToolCalls: new Set()
				});
				this.abortController = undefined;
				this.emit({ type: "completed" });
			}
			this.logState("final state:");
		}
		patch(p$3) {
			this._state = {
				...this._state,
				...p$3
			};
			this.emit({
				type: "state-update",
				state: this._state
			});
		}
		emit(e$10) {
			for (const listener of this.listeners) {
				listener(e$10);
			}
		}
	};
}));

//#endregion
//#region node_modules/@lit/reactive-element/css-tag.js
var t$5, e$8, s$4, o$9, n$7, r$8, i$5, S$3, c$5;
var init_css_tag = __esmMin((() => {
	t$5 = globalThis, e$8 = t$5.ShadowRoot && (void 0 === t$5.ShadyCSS || t$5.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, s$4 = Symbol(), o$9 = new WeakMap();
	n$7 = class {
		constructor(t$6, e$10, o$10) {
			if (this._$cssResult$ = !0, o$10 !== s$4) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
			this.cssText = t$6, this.t = e$10;
		}
		get styleSheet() {
			let t$6 = this.o;
			const s$5 = this.t;
			if (e$8 && void 0 === t$6) {
				const e$10 = void 0 !== s$5 && 1 === s$5.length;
				e$10 && (t$6 = o$9.get(s$5)), void 0 === t$6 && ((this.o = t$6 = new CSSStyleSheet()).replaceSync(this.cssText), e$10 && o$9.set(s$5, t$6));
			}
			return t$6;
		}
		toString() {
			return this.cssText;
		}
	};
	r$8 = (t$6) => new n$7("string" == typeof t$6 ? t$6 : t$6 + "", void 0, s$4), i$5 = (t$6, ...e$10) => {
		const o$10 = 1 === t$6.length ? t$6[0] : e$10.reduce(((e$11, s$5, o$11) => e$11 + ((t$7) => {
			if (!0 === t$7._$cssResult$) return t$7.cssText;
			if ("number" == typeof t$7) return t$7;
			throw Error("Value passed to 'css' function must be a 'css' function result: " + t$7 + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.");
		})(s$5) + t$6[o$11 + 1]), t$6[0]);
		return new n$7(o$10, t$6, s$4);
	}, S$3 = (s$5, o$10) => {
		if (e$8) s$5.adoptedStyleSheets = o$10.map(((t$6) => t$6 instanceof CSSStyleSheet ? t$6 : t$6.styleSheet));
		else for (const e$10 of o$10) {
			const o$11 = document.createElement("style"), n$9 = t$5.litNonce;
			void 0 !== n$9 && o$11.setAttribute("nonce", n$9), o$11.textContent = e$10.cssText, s$5.appendChild(o$11);
		}
	}, c$5 = e$8 ? (t$6) => t$6 : (t$6) => t$6 instanceof CSSStyleSheet ? ((t$7) => {
		let e$10 = "";
		for (const s$5 of t$7.cssRules) e$10 += s$5.cssText;
		return r$8(e$10);
	})(t$6) : t$6;
}));

//#endregion
//#region node_modules/@lit/reactive-element/reactive-element.js
var i$6, e$9, h$4, r$9, o$8, n$8, a$1, c$6, l$2, p$2, d$4, u$1, f, b$2, y$1;
var init_reactive_element = __esmMin((() => {
	init_css_tag();
	({is: i$6, defineProperty: e$9, getOwnPropertyDescriptor: h$4, getOwnPropertyNames: r$9, getOwnPropertySymbols: o$8, getPrototypeOf: n$8} = Object), a$1 = globalThis, c$6 = a$1.trustedTypes, l$2 = c$6 ? c$6.emptyScript : "", p$2 = a$1.reactiveElementPolyfillSupport, d$4 = (t$6, s$5) => t$6, u$1 = {
		toAttribute(t$6, s$5) {
			switch (s$5) {
				case Boolean:
					t$6 = t$6 ? l$2 : null;
					break;
				case Object:
				case Array: t$6 = null == t$6 ? t$6 : JSON.stringify(t$6);
			}
			return t$6;
		},
		fromAttribute(t$6, s$5) {
			let i$7 = t$6;
			switch (s$5) {
				case Boolean:
					i$7 = null !== t$6;
					break;
				case Number:
					i$7 = null === t$6 ? null : Number(t$6);
					break;
				case Object:
				case Array: try {
					i$7 = JSON.parse(t$6);
				} catch (t$7) {
					i$7 = null;
				}
			}
			return i$7;
		}
	}, f = (t$6, s$5) => !i$6(t$6, s$5), b$2 = {
		attribute: !0,
		type: String,
		converter: u$1,
		reflect: !1,
		useDefault: !1,
		hasChanged: f
	};
	Symbol.metadata ??= Symbol("metadata"), a$1.litPropertyMetadata ??= new WeakMap();
	y$1 = class extends HTMLElement {
		static addInitializer(t$6) {
			this._$Ei(), (this.l ??= []).push(t$6);
		}
		static get observedAttributes() {
			return this.finalize(), this._$Eh && [...this._$Eh.keys()];
		}
		static createProperty(t$6, s$5 = b$2) {
			if (s$5.state && (s$5.attribute = !1), this._$Ei(), this.prototype.hasOwnProperty(t$6) && ((s$5 = Object.create(s$5)).wrapped = !0), this.elementProperties.set(t$6, s$5), !s$5.noAccessor) {
				const i$7 = Symbol(), h$5 = this.getPropertyDescriptor(t$6, i$7, s$5);
				void 0 !== h$5 && e$9(this.prototype, t$6, h$5);
			}
		}
		static getPropertyDescriptor(t$6, s$5, i$7) {
			const { get: e$10, set: r$10 } = h$4(this.prototype, t$6) ?? {
				get() {
					return this[s$5];
				},
				set(t$7) {
					this[s$5] = t$7;
				}
			};
			return {
				get: e$10,
				set(s$6) {
					const h$5 = e$10?.call(this);
					r$10?.call(this, s$6), this.requestUpdate(t$6, h$5, i$7);
				},
				configurable: !0,
				enumerable: !0
			};
		}
		static getPropertyOptions(t$6) {
			return this.elementProperties.get(t$6) ?? b$2;
		}
		static _$Ei() {
			if (this.hasOwnProperty(d$4("elementProperties"))) return;
			const t$6 = n$8(this);
			t$6.finalize(), void 0 !== t$6.l && (this.l = [...t$6.l]), this.elementProperties = new Map(t$6.elementProperties);
		}
		static finalize() {
			if (this.hasOwnProperty(d$4("finalized"))) return;
			if (this.finalized = !0, this._$Ei(), this.hasOwnProperty(d$4("properties"))) {
				const t$7 = this.properties, s$5 = [...r$9(t$7), ...o$8(t$7)];
				for (const i$7 of s$5) this.createProperty(i$7, t$7[i$7]);
			}
			const t$6 = this[Symbol.metadata];
			if (null !== t$6) {
				const s$5 = litPropertyMetadata.get(t$6);
				if (void 0 !== s$5) for (const [t$7, i$7] of s$5) this.elementProperties.set(t$7, i$7);
			}
			this._$Eh = new Map();
			for (const [t$7, s$5] of this.elementProperties) {
				const i$7 = this._$Eu(t$7, s$5);
				void 0 !== i$7 && this._$Eh.set(i$7, t$7);
			}
			this.elementStyles = this.finalizeStyles(this.styles);
		}
		static finalizeStyles(s$5) {
			const i$7 = [];
			if (Array.isArray(s$5)) {
				const e$10 = new Set(s$5.flat(1 / 0).reverse());
				for (const s$6 of e$10) i$7.unshift(c$5(s$6));
			} else void 0 !== s$5 && i$7.push(c$5(s$5));
			return i$7;
		}
		static _$Eu(t$6, s$5) {
			const i$7 = s$5.attribute;
			return !1 === i$7 ? void 0 : "string" == typeof i$7 ? i$7 : "string" == typeof t$6 ? t$6.toLowerCase() : void 0;
		}
		constructor() {
			super(), this._$Ep = void 0, this.isUpdatePending = !1, this.hasUpdated = !1, this._$Em = null, this._$Ev();
		}
		_$Ev() {
			this._$ES = new Promise(((t$6) => this.enableUpdating = t$6)), this._$AL = new Map(), this._$E_(), this.requestUpdate(), this.constructor.l?.forEach(((t$6) => t$6(this)));
		}
		addController(t$6) {
			(this._$EO ??= new Set()).add(t$6), void 0 !== this.renderRoot && this.isConnected && t$6.hostConnected?.();
		}
		removeController(t$6) {
			this._$EO?.delete(t$6);
		}
		_$E_() {
			const t$6 = new Map(), s$5 = this.constructor.elementProperties;
			for (const i$7 of s$5.keys()) this.hasOwnProperty(i$7) && (t$6.set(i$7, this[i$7]), delete this[i$7]);
			t$6.size > 0 && (this._$Ep = t$6);
		}
		createRenderRoot() {
			const t$6 = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
			return S$3(t$6, this.constructor.elementStyles), t$6;
		}
		connectedCallback() {
			this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(!0), this._$EO?.forEach(((t$6) => t$6.hostConnected?.()));
		}
		enableUpdating(t$6) {}
		disconnectedCallback() {
			this._$EO?.forEach(((t$6) => t$6.hostDisconnected?.()));
		}
		attributeChangedCallback(t$6, s$5, i$7) {
			this._$AK(t$6, i$7);
		}
		_$ET(t$6, s$5) {
			const i$7 = this.constructor.elementProperties.get(t$6), e$10 = this.constructor._$Eu(t$6, i$7);
			if (void 0 !== e$10 && !0 === i$7.reflect) {
				const h$5 = (void 0 !== i$7.converter?.toAttribute ? i$7.converter : u$1).toAttribute(s$5, i$7.type);
				this._$Em = t$6, null == h$5 ? this.removeAttribute(e$10) : this.setAttribute(e$10, h$5), this._$Em = null;
			}
		}
		_$AK(t$6, s$5) {
			const i$7 = this.constructor, e$10 = i$7._$Eh.get(t$6);
			if (void 0 !== e$10 && this._$Em !== e$10) {
				const t$7 = i$7.getPropertyOptions(e$10), h$5 = "function" == typeof t$7.converter ? { fromAttribute: t$7.converter } : void 0 !== t$7.converter?.fromAttribute ? t$7.converter : u$1;
				this._$Em = e$10;
				const r$10 = h$5.fromAttribute(s$5, t$7.type);
				this[e$10] = r$10 ?? this._$Ej?.get(e$10) ?? r$10, this._$Em = null;
			}
		}
		requestUpdate(t$6, s$5, i$7) {
			if (void 0 !== t$6) {
				const e$10 = this.constructor, h$5 = this[t$6];
				if (i$7 ??= e$10.getPropertyOptions(t$6), !((i$7.hasChanged ?? f)(h$5, s$5) || i$7.useDefault && i$7.reflect && h$5 === this._$Ej?.get(t$6) && !this.hasAttribute(e$10._$Eu(t$6, i$7)))) return;
				this.C(t$6, s$5, i$7);
			}
			!1 === this.isUpdatePending && (this._$ES = this._$EP());
		}
		C(t$6, s$5, { useDefault: i$7, reflect: e$10, wrapped: h$5 }, r$10) {
			i$7 && !(this._$Ej ??= new Map()).has(t$6) && (this._$Ej.set(t$6, r$10 ?? s$5 ?? this[t$6]), !0 !== h$5 || void 0 !== r$10) || (this._$AL.has(t$6) || (this.hasUpdated || i$7 || (s$5 = void 0), this._$AL.set(t$6, s$5)), !0 === e$10 && this._$Em !== t$6 && (this._$Eq ??= new Set()).add(t$6));
		}
		async _$EP() {
			this.isUpdatePending = !0;
			try {
				await this._$ES;
			} catch (t$7) {
				Promise.reject(t$7);
			}
			const t$6 = this.scheduleUpdate();
			return null != t$6 && await t$6, !this.isUpdatePending;
		}
		scheduleUpdate() {
			return this.performUpdate();
		}
		performUpdate() {
			if (!this.isUpdatePending) return;
			if (!this.hasUpdated) {
				if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) {
					for (const [t$8, s$6] of this._$Ep) this[t$8] = s$6;
					this._$Ep = void 0;
				}
				const t$7 = this.constructor.elementProperties;
				if (t$7.size > 0) for (const [s$6, i$7] of t$7) {
					const { wrapped: t$8 } = i$7, e$10 = this[s$6];
					!0 !== t$8 || this._$AL.has(s$6) || void 0 === e$10 || this.C(s$6, void 0, i$7, e$10);
				}
			}
			let t$6 = !1;
			const s$5 = this._$AL;
			try {
				t$6 = this.shouldUpdate(s$5), t$6 ? (this.willUpdate(s$5), this._$EO?.forEach(((t$7) => t$7.hostUpdate?.())), this.update(s$5)) : this._$EM();
			} catch (s$6) {
				throw t$6 = !1, this._$EM(), s$6;
			}
			t$6 && this._$AE(s$5);
		}
		willUpdate(t$6) {}
		_$AE(t$6) {
			this._$EO?.forEach(((t$7) => t$7.hostUpdated?.())), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(t$6)), this.updated(t$6);
		}
		_$EM() {
			this._$AL = new Map(), this.isUpdatePending = !1;
		}
		get updateComplete() {
			return this.getUpdateComplete();
		}
		getUpdateComplete() {
			return this._$ES;
		}
		shouldUpdate(t$6) {
			return !0;
		}
		update(t$6) {
			this._$Eq &&= this._$Eq.forEach(((t$7) => this._$ET(t$7, this[t$7]))), this._$EM();
		}
		updated(t$6) {}
		firstUpdated(t$6) {}
	};
	y$1.elementStyles = [], y$1.shadowRootOptions = { mode: "open" }, y$1[d$4("elementProperties")] = new Map(), y$1[d$4("finalized")] = new Map(), p$2?.({ ReactiveElement: y$1 }), (a$1.reactiveElementVersions ??= []).push("2.1.1");
}));

//#endregion
//#region node_modules/lit-html/lit-html.js
function P$1(t$6, i$7) {
	if (!a(t$6) || !t$6.hasOwnProperty("raw")) throw Error("invalid template strings array");
	return void 0 !== s$3 ? s$3.createHTML(i$7) : i$7;
}
function S$2(t$6, i$7, s$5 = t$6, e$10) {
	if (i$7 === T$2) return i$7;
	let h$5 = void 0 !== e$10 ? s$5._$Co?.[e$10] : s$5._$Cl;
	const o$10 = c$4(i$7) ? void 0 : i$7._$litDirective$;
	return h$5?.constructor !== o$10 && (h$5?._$AO?.(!1), void 0 === o$10 ? h$5 = void 0 : (h$5 = new o$10(t$6), h$5._$AT(t$6, s$5, e$10)), void 0 !== e$10 ? (s$5._$Co ??= [])[e$10] = h$5 : s$5._$Cl = h$5), void 0 !== h$5 && (i$7 = S$2(t$6, h$5._$AS(t$6, i$7.values), h$5, e$10)), i$7;
}
var t$4, i$4, s$3, e$7, h$3, o$7, n$6, r$7, l$1, c$4, a, u$3, d$3, f$3, v$2, _$1, m$2, p$1, g, $$2, y$2, x, b$1, w$1, T$2, E$1, A, C$1, V$1, N$1, M$2, R, k$1, H, I$1, L$1, z$1, Z, j$1, B$1;
var init_lit_html = __esmMin((() => {
	t$4 = globalThis, i$4 = t$4.trustedTypes, s$3 = i$4 ? i$4.createPolicy("lit-html", { createHTML: (t$6) => t$6 }) : void 0, e$7 = "$lit$", h$3 = `lit$${Math.random().toFixed(9).slice(2)}$`, o$7 = "?" + h$3, n$6 = `<${o$7}>`, r$7 = document, l$1 = () => r$7.createComment(""), c$4 = (t$6) => null === t$6 || "object" != typeof t$6 && "function" != typeof t$6, a = Array.isArray, u$3 = (t$6) => a(t$6) || "function" == typeof t$6?.[Symbol.iterator], d$3 = "[ 	\n\f\r]", f$3 = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, v$2 = /-->/g, _$1 = />/g, m$2 = RegExp(`>|${d$3}(?:([^\\s"'>=/]+)(${d$3}*=${d$3}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`, "g"), p$1 = /'/g, g = /"/g, $$2 = /^(?:script|style|textarea|title)$/i, y$2 = (t$6) => (i$7, ...s$5) => ({
		_$litType$: t$6,
		strings: i$7,
		values: s$5
	}), x = y$2(1), b$1 = y$2(2), w$1 = y$2(3), T$2 = Symbol.for("lit-noChange"), E$1 = Symbol.for("lit-nothing"), A = new WeakMap(), C$1 = r$7.createTreeWalker(r$7, 129);
	V$1 = (t$6, i$7) => {
		const s$5 = t$6.length - 1, o$10 = [];
		let r$10, l$3 = 2 === i$7 ? "<svg>" : 3 === i$7 ? "<math>" : "", c$7 = f$3;
		for (let i$8 = 0; i$8 < s$5; i$8++) {
			const s$6 = t$6[i$8];
			let a$2, u$4, d$5 = -1, y$3 = 0;
			for (; y$3 < s$6.length && (c$7.lastIndex = y$3, u$4 = c$7.exec(s$6), null !== u$4);) y$3 = c$7.lastIndex, c$7 === f$3 ? "!--" === u$4[1] ? c$7 = v$2 : void 0 !== u$4[1] ? c$7 = _$1 : void 0 !== u$4[2] ? ($$2.test(u$4[2]) && (r$10 = RegExp("</" + u$4[2], "g")), c$7 = m$2) : void 0 !== u$4[3] && (c$7 = m$2) : c$7 === m$2 ? ">" === u$4[0] ? (c$7 = r$10 ?? f$3, d$5 = -1) : void 0 === u$4[1] ? d$5 = -2 : (d$5 = c$7.lastIndex - u$4[2].length, a$2 = u$4[1], c$7 = void 0 === u$4[3] ? m$2 : "\"" === u$4[3] ? g : p$1) : c$7 === g || c$7 === p$1 ? c$7 = m$2 : c$7 === v$2 || c$7 === _$1 ? c$7 = f$3 : (c$7 = m$2, r$10 = void 0);
			const x$2 = c$7 === m$2 && t$6[i$8 + 1].startsWith("/>") ? " " : "";
			l$3 += c$7 === f$3 ? s$6 + n$6 : d$5 >= 0 ? (o$10.push(a$2), s$6.slice(0, d$5) + e$7 + s$6.slice(d$5) + h$3 + x$2) : s$6 + h$3 + (-2 === d$5 ? i$8 : x$2);
		}
		return [P$1(t$6, l$3 + (t$6[s$5] || "<?>") + (2 === i$7 ? "</svg>" : 3 === i$7 ? "</math>" : "")), o$10];
	};
	N$1 = class N$1 {
		constructor({ strings: t$6, _$litType$: s$5 }, n$9) {
			let r$10;
			this.parts = [];
			let c$7 = 0, a$2 = 0;
			const u$4 = t$6.length - 1, d$5 = this.parts, [f$4, v$3] = V$1(t$6, s$5);
			if (this.el = N$1.createElement(f$4, n$9), C$1.currentNode = this.el.content, 2 === s$5 || 3 === s$5) {
				const t$7 = this.el.content.firstChild;
				t$7.replaceWith(...t$7.childNodes);
			}
			for (; null !== (r$10 = C$1.nextNode()) && d$5.length < u$4;) {
				if (1 === r$10.nodeType) {
					if (r$10.hasAttributes()) for (const t$7 of r$10.getAttributeNames()) if (t$7.endsWith(e$7)) {
						const i$7 = v$3[a$2++], s$6 = r$10.getAttribute(t$7).split(h$3), e$10 = /([.?@])?(.*)/.exec(i$7);
						d$5.push({
							type: 1,
							index: c$7,
							name: e$10[2],
							strings: s$6,
							ctor: "." === e$10[1] ? H : "?" === e$10[1] ? I$1 : "@" === e$10[1] ? L$1 : k$1
						}), r$10.removeAttribute(t$7);
					} else t$7.startsWith(h$3) && (d$5.push({
						type: 6,
						index: c$7
					}), r$10.removeAttribute(t$7));
					if ($$2.test(r$10.tagName)) {
						const t$7 = r$10.textContent.split(h$3), s$6 = t$7.length - 1;
						if (s$6 > 0) {
							r$10.textContent = i$4 ? i$4.emptyScript : "";
							for (let i$7 = 0; i$7 < s$6; i$7++) r$10.append(t$7[i$7], l$1()), C$1.nextNode(), d$5.push({
								type: 2,
								index: ++c$7
							});
							r$10.append(t$7[s$6], l$1());
						}
					}
				} else if (8 === r$10.nodeType) if (r$10.data === o$7) d$5.push({
					type: 2,
					index: c$7
				});
				else {
					let t$7 = -1;
					for (; -1 !== (t$7 = r$10.data.indexOf(h$3, t$7 + 1));) d$5.push({
						type: 7,
						index: c$7
					}), t$7 += h$3.length - 1;
				}
				c$7++;
			}
		}
		static createElement(t$6, i$7) {
			const s$5 = r$7.createElement("template");
			return s$5.innerHTML = t$6, s$5;
		}
	};
	M$2 = class {
		constructor(t$6, i$7) {
			this._$AV = [], this._$AN = void 0, this._$AD = t$6, this._$AM = i$7;
		}
		get parentNode() {
			return this._$AM.parentNode;
		}
		get _$AU() {
			return this._$AM._$AU;
		}
		u(t$6) {
			const { el: { content: i$7 }, parts: s$5 } = this._$AD, e$10 = (t$6?.creationScope ?? r$7).importNode(i$7, !0);
			C$1.currentNode = e$10;
			let h$5 = C$1.nextNode(), o$10 = 0, n$9 = 0, l$3 = s$5[0];
			for (; void 0 !== l$3;) {
				if (o$10 === l$3.index) {
					let i$8;
					2 === l$3.type ? i$8 = new R(h$5, h$5.nextSibling, this, t$6) : 1 === l$3.type ? i$8 = new l$3.ctor(h$5, l$3.name, l$3.strings, this, t$6) : 6 === l$3.type && (i$8 = new z$1(h$5, this, t$6)), this._$AV.push(i$8), l$3 = s$5[++n$9];
				}
				o$10 !== l$3?.index && (h$5 = C$1.nextNode(), o$10++);
			}
			return C$1.currentNode = r$7, e$10;
		}
		p(t$6) {
			let i$7 = 0;
			for (const s$5 of this._$AV) void 0 !== s$5 && (void 0 !== s$5.strings ? (s$5._$AI(t$6, s$5, i$7), i$7 += s$5.strings.length - 2) : s$5._$AI(t$6[i$7])), i$7++;
		}
	};
	R = class R {
		get _$AU() {
			return this._$AM?._$AU ?? this._$Cv;
		}
		constructor(t$6, i$7, s$5, e$10) {
			this.type = 2, this._$AH = E$1, this._$AN = void 0, this._$AA = t$6, this._$AB = i$7, this._$AM = s$5, this.options = e$10, this._$Cv = e$10?.isConnected ?? !0;
		}
		get parentNode() {
			let t$6 = this._$AA.parentNode;
			const i$7 = this._$AM;
			return void 0 !== i$7 && 11 === t$6?.nodeType && (t$6 = i$7.parentNode), t$6;
		}
		get startNode() {
			return this._$AA;
		}
		get endNode() {
			return this._$AB;
		}
		_$AI(t$6, i$7 = this) {
			t$6 = S$2(this, t$6, i$7), c$4(t$6) ? t$6 === E$1 || null == t$6 || "" === t$6 ? (this._$AH !== E$1 && this._$AR(), this._$AH = E$1) : t$6 !== this._$AH && t$6 !== T$2 && this._(t$6) : void 0 !== t$6._$litType$ ? this.$(t$6) : void 0 !== t$6.nodeType ? this.T(t$6) : u$3(t$6) ? this.k(t$6) : this._(t$6);
		}
		O(t$6) {
			return this._$AA.parentNode.insertBefore(t$6, this._$AB);
		}
		T(t$6) {
			this._$AH !== t$6 && (this._$AR(), this._$AH = this.O(t$6));
		}
		_(t$6) {
			this._$AH !== E$1 && c$4(this._$AH) ? this._$AA.nextSibling.data = t$6 : this.T(r$7.createTextNode(t$6)), this._$AH = t$6;
		}
		$(t$6) {
			const { values: i$7, _$litType$: s$5 } = t$6, e$10 = "number" == typeof s$5 ? this._$AC(t$6) : (void 0 === s$5.el && (s$5.el = N$1.createElement(P$1(s$5.h, s$5.h[0]), this.options)), s$5);
			if (this._$AH?._$AD === e$10) this._$AH.p(i$7);
			else {
				const t$7 = new M$2(e$10, this), s$6 = t$7.u(this.options);
				t$7.p(i$7), this.T(s$6), this._$AH = t$7;
			}
		}
		_$AC(t$6) {
			let i$7 = A.get(t$6.strings);
			return void 0 === i$7 && A.set(t$6.strings, i$7 = new N$1(t$6)), i$7;
		}
		k(t$6) {
			a(this._$AH) || (this._$AH = [], this._$AR());
			const i$7 = this._$AH;
			let s$5, e$10 = 0;
			for (const h$5 of t$6) e$10 === i$7.length ? i$7.push(s$5 = new R(this.O(l$1()), this.O(l$1()), this, this.options)) : s$5 = i$7[e$10], s$5._$AI(h$5), e$10++;
			e$10 < i$7.length && (this._$AR(s$5 && s$5._$AB.nextSibling, e$10), i$7.length = e$10);
		}
		_$AR(t$6 = this._$AA.nextSibling, i$7) {
			for (this._$AP?.(!1, !0, i$7); t$6 !== this._$AB;) {
				const i$8 = t$6.nextSibling;
				t$6.remove(), t$6 = i$8;
			}
		}
		setConnected(t$6) {
			void 0 === this._$AM && (this._$Cv = t$6, this._$AP?.(t$6));
		}
	};
	k$1 = class {
		get tagName() {
			return this.element.tagName;
		}
		get _$AU() {
			return this._$AM._$AU;
		}
		constructor(t$6, i$7, s$5, e$10, h$5) {
			this.type = 1, this._$AH = E$1, this._$AN = void 0, this.element = t$6, this.name = i$7, this._$AM = e$10, this.options = h$5, s$5.length > 2 || "" !== s$5[0] || "" !== s$5[1] ? (this._$AH = Array(s$5.length - 1).fill(new String()), this.strings = s$5) : this._$AH = E$1;
		}
		_$AI(t$6, i$7 = this, s$5, e$10) {
			const h$5 = this.strings;
			let o$10 = !1;
			if (void 0 === h$5) t$6 = S$2(this, t$6, i$7, 0), o$10 = !c$4(t$6) || t$6 !== this._$AH && t$6 !== T$2, o$10 && (this._$AH = t$6);
			else {
				const e$11 = t$6;
				let n$9, r$10;
				for (t$6 = h$5[0], n$9 = 0; n$9 < h$5.length - 1; n$9++) r$10 = S$2(this, e$11[s$5 + n$9], i$7, n$9), r$10 === T$2 && (r$10 = this._$AH[n$9]), o$10 ||= !c$4(r$10) || r$10 !== this._$AH[n$9], r$10 === E$1 ? t$6 = E$1 : t$6 !== E$1 && (t$6 += (r$10 ?? "") + h$5[n$9 + 1]), this._$AH[n$9] = r$10;
			}
			o$10 && !e$10 && this.j(t$6);
		}
		j(t$6) {
			t$6 === E$1 ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t$6 ?? "");
		}
	};
	H = class extends k$1 {
		constructor() {
			super(...arguments), this.type = 3;
		}
		j(t$6) {
			this.element[this.name] = t$6 === E$1 ? void 0 : t$6;
		}
	};
	I$1 = class extends k$1 {
		constructor() {
			super(...arguments), this.type = 4;
		}
		j(t$6) {
			this.element.toggleAttribute(this.name, !!t$6 && t$6 !== E$1);
		}
	};
	L$1 = class extends k$1 {
		constructor(t$6, i$7, s$5, e$10, h$5) {
			super(t$6, i$7, s$5, e$10, h$5), this.type = 5;
		}
		_$AI(t$6, i$7 = this) {
			if ((t$6 = S$2(this, t$6, i$7, 0) ?? E$1) === T$2) return;
			const s$5 = this._$AH, e$10 = t$6 === E$1 && s$5 !== E$1 || t$6.capture !== s$5.capture || t$6.once !== s$5.once || t$6.passive !== s$5.passive, h$5 = t$6 !== E$1 && (s$5 === E$1 || e$10);
			e$10 && this.element.removeEventListener(this.name, this, s$5), h$5 && this.element.addEventListener(this.name, this, t$6), this._$AH = t$6;
		}
		handleEvent(t$6) {
			"function" == typeof this._$AH ? this._$AH.call(this.options?.host ?? this.element, t$6) : this._$AH.handleEvent(t$6);
		}
	};
	z$1 = class {
		constructor(t$6, i$7, s$5) {
			this.element = t$6, this.type = 6, this._$AN = void 0, this._$AM = i$7, this.options = s$5;
		}
		get _$AU() {
			return this._$AM._$AU;
		}
		_$AI(t$6) {
			S$2(this, t$6);
		}
	};
	Z = {
		M: e$7,
		P: h$3,
		A: o$7,
		C: 1,
		L: V$1,
		R: M$2,
		D: u$3,
		V: S$2,
		I: R,
		H: k$1,
		N: I$1,
		U: L$1,
		B: H,
		F: z$1
	}, j$1 = t$4.litHtmlPolyfillSupport;
	j$1?.(N$1, R), (t$4.litHtmlVersions ??= []).push("3.3.1");
	B$1 = (t$6, i$7, s$5) => {
		const e$10 = s$5?.renderBefore ?? i$7;
		let h$5 = e$10._$litPart$;
		if (void 0 === h$5) {
			const t$7 = s$5?.renderBefore ?? null;
			e$10._$litPart$ = h$5 = new R(i$7.insertBefore(l$1(), t$7), t$7, void 0, s$5 ?? {});
		}
		return h$5._$AI(t$6), h$5;
	};
}));

//#endregion
//#region node_modules/lit-element/lit-element.js
var s$2, i, o$6, n$5;
var init_lit_element = __esmMin((() => {
	init_reactive_element();
	init_reactive_element();
	init_lit_html();
	init_lit_html();
	s$2 = globalThis;
	i = class extends y$1 {
		constructor() {
			super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;
		}
		createRenderRoot() {
			const t$6 = super.createRenderRoot();
			return this.renderOptions.renderBefore ??= t$6.firstChild, t$6;
		}
		update(t$6) {
			const r$10 = this.render();
			this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t$6), this._$Do = B$1(r$10, this.renderRoot, this.renderOptions);
		}
		connectedCallback() {
			super.connectedCallback(), this._$Do?.setConnected(!0);
		}
		disconnectedCallback() {
			super.disconnectedCallback(), this._$Do?.setConnected(!1);
		}
		render() {
			return T$2;
		}
	};
	i._$litElement$ = !0, i["finalized"] = !0, s$2.litElementHydrateSupport?.({ LitElement: i });
	o$6 = s$2.litElementPolyfillSupport;
	o$6?.({ LitElement: i });
	n$5 = {
		_$AK: (t$6, e$10, r$10) => {
			t$6._$AK(e$10, r$10);
		},
		_$AL: (t$6) => t$6._$AL
	};
	(s$2.litElementVersions ??= []).push("4.2.1");
}));

//#endregion
//#region node_modules/lit-html/is-server.js
var o$5;
var init_is_server = __esmMin((() => {
	o$5 = !1;
}));

//#endregion
//#region node_modules/lit/index.js
var init_lit = __esmMin((() => {
	init_reactive_element();
	init_lit_html();
	init_lit_element();
	init_is_server();
}));

//#endregion
//#region node_modules/lit-html/directive-helpers.js
var t$3, i$3, n$4, e$6, l, d$2, c$3, f$2, r$6, s, v$1, u$2, m$1, p, M$1, h$2;
var init_directive_helpers = __esmMin((() => {
	init_lit_html();
	({I: t$3} = Z), i$3 = (o$10) => null === o$10 || "object" != typeof o$10 && "function" != typeof o$10, n$4 = {
		HTML: 1,
		SVG: 2,
		MATHML: 3
	}, e$6 = (o$10, t$6) => void 0 === t$6 ? void 0 !== o$10?._$litType$ : o$10?._$litType$ === t$6, l = (o$10) => null != o$10?._$litType$?.h, d$2 = (o$10) => void 0 !== o$10?._$litDirective$, c$3 = (o$10) => o$10?._$litDirective$, f$2 = (o$10) => void 0 === o$10.strings, r$6 = () => document.createComment(""), s = (o$10, i$7, n$9) => {
		const e$10 = o$10._$AA.parentNode, l$3 = void 0 === i$7 ? o$10._$AB : i$7._$AA;
		if (void 0 === n$9) {
			const i$8 = e$10.insertBefore(r$6(), l$3), d$5 = e$10.insertBefore(r$6(), l$3);
			n$9 = new t$3(i$8, d$5, o$10, o$10.options);
		} else {
			const t$6 = n$9._$AB.nextSibling, i$8 = n$9._$AM, d$5 = i$8 !== o$10;
			if (d$5) {
				let t$7;
				n$9._$AQ?.(o$10), n$9._$AM = o$10, void 0 !== n$9._$AP && (t$7 = o$10._$AU) !== i$8._$AU && n$9._$AP(t$7);
			}
			if (t$6 !== l$3 || d$5) {
				let o$11 = n$9._$AA;
				for (; o$11 !== t$6;) {
					const t$7 = o$11.nextSibling;
					e$10.insertBefore(o$11, l$3), o$11 = t$7;
				}
			}
		}
		return n$9;
	}, v$1 = (o$10, t$6, i$7 = o$10) => (o$10._$AI(t$6, i$7), o$10), u$2 = {}, m$1 = (o$10, t$6 = u$2) => o$10._$AH = t$6, p = (o$10) => o$10._$AH, M$1 = (o$10) => {
		o$10._$AR(), o$10._$AA.remove();
	}, h$2 = (o$10) => {
		o$10._$AR();
	};
}));

//#endregion
//#region node_modules/lit-html/directive.js
var t$1, e$2, i$2;
var init_directive = __esmMin((() => {
	t$1 = {
		ATTRIBUTE: 1,
		CHILD: 2,
		PROPERTY: 3,
		BOOLEAN_ATTRIBUTE: 4,
		EVENT: 5,
		ELEMENT: 6
	}, e$2 = (t$6) => (...e$10) => ({
		_$litDirective$: t$6,
		values: e$10
	});
	i$2 = class {
		constructor(t$6) {}
		get _$AU() {
			return this._$AM._$AU;
		}
		_$AT(t$6, e$10, i$7) {
			this._$Ct = t$6, this._$AM = e$10, this._$Ci = i$7;
		}
		_$AS(t$6, e$10) {
			return this.update(t$6, e$10);
		}
		update(t$6, e$10) {
			return this.render(...e$10);
		}
	};
}));

//#endregion
//#region node_modules/lit-html/async-directive.js
function h$1(i$7) {
	void 0 !== this._$AN ? (o$4(this), this._$AM = i$7, r$5(this)) : this._$AM = i$7;
}
function n$3(i$7, t$6 = !1, e$10 = 0) {
	const r$10 = this._$AH, h$5 = this._$AN;
	if (void 0 !== h$5 && 0 !== h$5.size) if (t$6) if (Array.isArray(r$10)) for (let i$8 = e$10; i$8 < r$10.length; i$8++) s$1(r$10[i$8], !1), o$4(r$10[i$8]);
	else null != r$10 && (s$1(r$10, !1), o$4(r$10));
	else s$1(this, i$7);
}
var s$1, o$4, r$5, c$2, f$1;
var init_async_directive = __esmMin((() => {
	init_directive_helpers();
	init_directive();
	s$1 = (i$7, t$6) => {
		const e$10 = i$7._$AN;
		if (void 0 === e$10) return !1;
		for (const i$8 of e$10) i$8._$AO?.(t$6, !1), s$1(i$8, t$6);
		return !0;
	}, o$4 = (i$7) => {
		let t$6, e$10;
		do {
			if (void 0 === (t$6 = i$7._$AM)) break;
			e$10 = t$6._$AN, e$10.delete(i$7), i$7 = t$6;
		} while (0 === e$10?.size);
	}, r$5 = (i$7) => {
		for (let t$6; t$6 = i$7._$AM; i$7 = t$6) {
			let e$10 = t$6._$AN;
			if (void 0 === e$10) t$6._$AN = e$10 = new Set();
			else if (e$10.has(i$7)) break;
			e$10.add(i$7), c$2(t$6);
		}
	};
	c$2 = (i$7) => {
		i$7.type == t$1.CHILD && (i$7._$AP ??= n$3, i$7._$AQ ??= h$1);
	};
	f$1 = class extends i$2 {
		constructor() {
			super(...arguments), this._$AN = void 0;
		}
		_$AT(i$7, t$6, e$10) {
			super._$AT(i$7, t$6, e$10), r$5(this), this.isConnected = i$7._$AU;
		}
		_$AO(i$7, t$6 = !0) {
			i$7 !== this.isConnected && (this.isConnected = i$7, i$7 ? this.reconnected?.() : this.disconnected?.()), t$6 && (s$1(this, i$7), o$4(this));
		}
		setValue(t$6) {
			if (f$2(this._$Ct)) this._$Ct._$AI(t$6, this);
			else {
				const i$7 = [...this._$Ct._$AH];
				i$7[this._$Ci] = t$6, this._$Ct._$AI(i$7, this, 0);
			}
		}
		disconnected() {}
		reconnected() {}
	};
}));

//#endregion
//#region node_modules/lit-html/directives/ref.js
var e, h, o$3, n;
var init_ref$3 = __esmMin((() => {
	init_lit_html();
	init_async_directive();
	init_directive();
	e = () => new h();
	h = class {};
	o$3 = new WeakMap(), n = e$2(class extends f$1 {
		render(i$7) {
			return E$1;
		}
		update(i$7, [s$5]) {
			const e$10 = s$5 !== this.G;
			return e$10 && void 0 !== this.G && this.rt(void 0), (e$10 || this.lt !== this.ct) && (this.G = s$5, this.ht = i$7.options?.host, this.rt(this.ct = i$7.element)), E$1;
		}
		rt(t$6) {
			if (this.isConnected || (t$6 = void 0), "function" == typeof this.G) {
				const i$7 = this.ht ?? globalThis;
				let s$5 = o$3.get(i$7);
				void 0 === s$5 && (s$5 = new WeakMap(), o$3.set(i$7, s$5)), void 0 !== s$5.get(this.G) && this.G.call(this.ht, void 0), s$5.set(this.G, t$6), void 0 !== t$6 && this.G.call(this.ht, t$6);
			} else this.G.value = t$6;
		}
		get lt() {
			return "function" == typeof this.G ? o$3.get(this.ht ?? globalThis)?.get(this.G) : this.G?.value;
		}
		disconnected() {
			this.lt === this.ct && this.rt(void 0);
		}
		reconnected() {
			this.rt(this.ct);
		}
	});
}));

//#endregion
//#region node_modules/lit/directives/ref.js
var init_ref$2 = __esmMin((() => {
	init_ref$3();
}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/dist/mini.js
function fc(renderFn) {
	return (props) => renderFn(props || {});
}
function createState$1(initialState) {
	const listeners = new Set();
	const state$1 = new Proxy(initialState, {
		set(target, prop, value) {
			target[prop] = value;
			for (const listener of listeners) {
				listener();
			}
			return true;
		},
		get(target, prop) {
			if (prop === "__subscribe") {
				return (listener) => {
					listeners.add(listener);
					return () => listeners.delete(listener);
				};
			}
			return target[prop];
		}
	});
	return state$1;
}
var init_mini = __esmMin((() => {
	init_lit();
	init_ref$2();
}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/dist/Badge.js
function Badge(propsOrChildren, variant = "default", className = "") {
	if (typeof propsOrChildren === "object" && propsOrChildren !== null && "children" in propsOrChildren) {
		return _Badge(propsOrChildren);
	}
	return _Badge({
		children: propsOrChildren,
		variant,
		className
	});
}
var _Badge;
var init_Badge = __esmMin((() => {
	init_mini();
	_Badge = fc(({ variant = "default", className = "", children }) => {
		const variantClasses = {
			default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
			secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
			destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
			outline: "border-input text-foreground"
		};
		const baseClasses = "inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden";
		return x` <span class="${baseClasses} ${variantClasses[variant]} ${className}"> ${children} </span> `;
	});
}));

//#endregion
//#region node_modules/@lit/reactive-element/decorators/custom-element.js
var t;
var init_custom_element = __esmMin((() => {
	t = (t$6) => (e$10, o$10) => {
		void 0 !== o$10 ? o$10.addInitializer((() => {
			customElements.define(t$6, e$10);
		})) : customElements.define(t$6, e$10);
	};
}));

//#endregion
//#region node_modules/@lit/reactive-element/decorators/property.js
function n$1(t$6) {
	return (e$10, o$10) => "object" == typeof o$10 ? r$4(t$6, e$10, o$10) : ((t$7, e$11, o$11) => {
		const r$10 = e$11.hasOwnProperty(o$11);
		return e$11.constructor.createProperty(o$11, t$7), r$10 ? Object.getOwnPropertyDescriptor(e$11, o$11) : void 0;
	})(t$6, e$10, o$10);
}
var o$2, r$4;
var init_property = __esmMin((() => {
	init_reactive_element();
	o$2 = {
		attribute: !0,
		type: String,
		converter: u$1,
		reflect: !1,
		hasChanged: f
	}, r$4 = (t$6 = o$2, e$10, r$10) => {
		const { kind: n$9, metadata: i$7 } = r$10;
		let s$5 = globalThis.litPropertyMetadata.get(i$7);
		if (void 0 === s$5 && globalThis.litPropertyMetadata.set(i$7, s$5 = new Map()), "setter" === n$9 && ((t$6 = Object.create(t$6)).wrapped = !0), s$5.set(r$10.name, t$6), "accessor" === n$9) {
			const { name: o$10 } = r$10;
			return {
				set(r$11) {
					const n$10 = e$10.get.call(this);
					e$10.set.call(this, r$11), this.requestUpdate(o$10, n$10, t$6);
				},
				init(e$11) {
					return void 0 !== e$11 && this.C(o$10, void 0, t$6, e$11), e$11;
				}
			};
		}
		if ("setter" === n$9) {
			const { name: o$10 } = r$10;
			return function(r$11) {
				const n$10 = this[o$10];
				e$10.call(this, r$11), this.requestUpdate(o$10, n$10, t$6);
			};
		}
		throw Error("Unsupported decorator location: " + n$9);
	};
}));

//#endregion
//#region node_modules/@lit/reactive-element/decorators/state.js
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/ function r(r$10) {
	return n$1({
		...r$10,
		state: !0,
		attribute: !1
	});
}
var init_state = __esmMin((() => {
	init_property();
}));

//#endregion
//#region node_modules/@lit/reactive-element/decorators/event-options.js
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
function t$2(t$6) {
	return (n$9, o$10) => {
		const c$7 = "function" == typeof n$9 ? n$9 : n$9[o$10];
		Object.assign(c$7, t$6);
	};
}
var init_event_options = __esmMin((() => {}));

//#endregion
//#region node_modules/@lit/reactive-element/decorators/base.js
var e$4;
var init_base$1 = __esmMin((() => {
	e$4 = (e$10, t$6, c$7) => (c$7.configurable = !0, c$7.enumerable = !0, Reflect.decorate && "object" != typeof t$6 && Object.defineProperty(e$10, t$6, c$7), c$7);
}));

//#endregion
//#region node_modules/@lit/reactive-element/decorators/query.js
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/ function e$1(e$10, r$10) {
	return (n$9, s$5, i$7) => {
		const o$10 = (t$6) => t$6.renderRoot?.querySelector(e$10) ?? null;
		if (r$10) {
			const { get: e$11, set: r$11 } = "object" == typeof s$5 ? n$9 : i$7 ?? (() => {
				const t$6 = Symbol();
				return {
					get() {
						return this[t$6];
					},
					set(e$12) {
						this[t$6] = e$12;
					}
				};
			})();
			return e$4(n$9, s$5, { get() {
				let t$6 = e$11.call(this);
				return void 0 === t$6 && (t$6 = o$10(this), (null !== t$6 || this.hasUpdated) && r$11.call(this, t$6)), t$6;
			} });
		}
		return e$4(n$9, s$5, { get() {
			return o$10(this);
		} });
	};
}
var init_query = __esmMin((() => {
	init_base$1();
}));

//#endregion
//#region node_modules/@lit/reactive-element/decorators/query-all.js
function r$3(r$10) {
	return (n$9, o$10) => e$4(n$9, o$10, { get() {
		return (this.renderRoot ?? (e$5 ??= document.createDocumentFragment())).querySelectorAll(r$10);
	} });
}
var e$5;
var init_query_all = __esmMin((() => {
	init_base$1();
	;
}));

//#endregion
//#region node_modules/@lit/reactive-element/decorators/query-async.js
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
function r$2(r$10) {
	return (n$9, e$10) => e$4(n$9, e$10, { async get() {
		return await this.updateComplete, this.renderRoot?.querySelector(r$10) ?? null;
	} });
}
var init_query_async = __esmMin((() => {
	init_base$1();
}));

//#endregion
//#region node_modules/@lit/reactive-element/decorators/query-assigned-elements.js
/**
* @license
* Copyright 2021 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/ function o$1(o$10) {
	return (e$10, n$9) => {
		const { slot: r$10, selector: s$5 } = o$10 ?? {}, c$7 = "slot" + (r$10 ? `[name=${r$10}]` : ":not([name])");
		return e$4(e$10, n$9, { get() {
			const t$6 = this.renderRoot?.querySelector(c$7), e$11 = t$6?.assignedElements(o$10) ?? [];
			return void 0 === s$5 ? e$11 : e$11.filter(((t$7) => t$7.matches(s$5)));
		} });
	};
}
var init_query_assigned_elements = __esmMin((() => {
	init_base$1();
}));

//#endregion
//#region node_modules/@lit/reactive-element/decorators/query-assigned-nodes.js
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/ function n$2(n$9) {
	return (o$10, r$10) => {
		const { slot: e$10 } = n$9 ?? {}, s$5 = "slot" + (e$10 ? `[name=${e$10}]` : ":not([name])");
		return e$4(o$10, r$10, { get() {
			const t$6 = this.renderRoot?.querySelector(s$5);
			return t$6?.assignedNodes(n$9) ?? [];
		} });
	};
}
var init_query_assigned_nodes = __esmMin((() => {
	init_base$1();
}));

//#endregion
//#region node_modules/lit/decorators.js
var init_decorators = __esmMin((() => {
	init_custom_element();
	init_property();
	init_state();
	init_event_options();
	init_query();
	init_query_all();
	init_query_async();
	init_query_assigned_elements();
	init_query_assigned_nodes();
}));

//#endregion
//#region node_modules/tailwind-variants/dist/chunk-LQJYWU4O.js
function flatArray(arr) {
	const flattened = [];
	flat(arr, flattened);
	return flattened;
}
var SPACE_REGEX, removeExtraSpaces, cx, falsyToString, isEmptyObject, isEqual, isBoolean, joinObjects, flat, flatMergeArrays, mergeObjects;
var init_chunk_LQJYWU4O = __esmMin((() => {
	SPACE_REGEX = /\s+/g;
	removeExtraSpaces = (str) => {
		if (typeof str !== "string" || !str) return str;
		return str.replace(SPACE_REGEX, " ").trim();
	};
	cx = (...classnames) => {
		const classList = [];
		const buildClassString = (input) => {
			if (!input && input !== 0 && input !== 0n) return;
			if (Array.isArray(input)) {
				for (let i$7 = 0, len = input.length; i$7 < len; i$7++) buildClassString(input[i$7]);
				return;
			}
			const type = typeof input;
			if (type === "string" || type === "number" || type === "bigint") {
				if (type === "number" && input !== input) return;
				classList.push(String(input));
			} else if (type === "object") {
				const keys$1 = Object.keys(input);
				for (let i$7 = 0, len = keys$1.length; i$7 < len; i$7++) {
					const key = keys$1[i$7];
					if (input[key]) classList.push(key);
				}
			}
		};
		for (let i$7 = 0, len = classnames.length; i$7 < len; i$7++) {
			const c$7 = classnames[i$7];
			if (c$7 !== null && c$7 !== void 0) buildClassString(c$7);
		}
		return classList.length > 0 ? removeExtraSpaces(classList.join(" ")) : void 0;
	};
	falsyToString = (value) => value === false ? "false" : value === true ? "true" : value === 0 ? "0" : value;
	isEmptyObject = (obj) => {
		if (!obj || typeof obj !== "object") return true;
		for (const _$2 in obj) return false;
		return true;
	};
	isEqual = (obj1, obj2) => {
		if (obj1 === obj2) return true;
		if (!obj1 || !obj2) return false;
		const keys1 = Object.keys(obj1);
		const keys2 = Object.keys(obj2);
		if (keys1.length !== keys2.length) return false;
		for (let i$7 = 0; i$7 < keys1.length; i$7++) {
			const key = keys1[i$7];
			if (!keys2.includes(key)) return false;
			if (obj1[key] !== obj2[key]) return false;
		}
		return true;
	};
	isBoolean = (value) => value === true || value === false;
	joinObjects = (obj1, obj2) => {
		for (const key in obj2) {
			if (Object.prototype.hasOwnProperty.call(obj2, key)) {
				const val2 = obj2[key];
				if (key in obj1) {
					obj1[key] = cx(obj1[key], val2);
				} else {
					obj1[key] = val2;
				}
			}
		}
		return obj1;
	};
	flat = (arr, target) => {
		for (let i$7 = 0; i$7 < arr.length; i$7++) {
			const el = arr[i$7];
			if (Array.isArray(el)) flat(el, target);
			else if (el) target.push(el);
		}
	};
	flatMergeArrays = (...arrays) => {
		const result = [];
		flat(arrays, result);
		const filtered = [];
		for (let i$7 = 0; i$7 < result.length; i$7++) {
			if (result[i$7]) filtered.push(result[i$7]);
		}
		return filtered;
	};
	mergeObjects = (obj1, obj2) => {
		const result = {};
		for (const key in obj1) {
			const val1 = obj1[key];
			if (key in obj2) {
				const val2 = obj2[key];
				if (Array.isArray(val1) || Array.isArray(val2)) {
					result[key] = flatMergeArrays(val2, val1);
				} else if (typeof val1 === "object" && typeof val2 === "object" && val1 && val2) {
					result[key] = mergeObjects(val1, val2);
				} else {
					result[key] = val2 + " " + val1;
				}
			} else {
				result[key] = val1;
			}
		}
		for (const key in obj2) {
			if (!(key in obj1)) {
				result[key] = obj2[key];
			}
		}
		return result;
	};
}));

//#endregion
//#region node_modules/tailwind-variants/dist/chunk-RZF76H2U.js
function createState() {
	let cachedTwMerge = null;
	let cachedTwMergeConfig = {};
	let didTwMergeConfigChange = false;
	return {
		get cachedTwMerge() {
			return cachedTwMerge;
		},
		set cachedTwMerge(value) {
			cachedTwMerge = value;
		},
		get cachedTwMergeConfig() {
			return cachedTwMergeConfig;
		},
		set cachedTwMergeConfig(value) {
			cachedTwMergeConfig = value;
		},
		get didTwMergeConfigChange() {
			return didTwMergeConfigChange;
		},
		set didTwMergeConfigChange(value) {
			didTwMergeConfigChange = value;
		},
		reset() {
			cachedTwMerge = null;
			cachedTwMergeConfig = {};
			didTwMergeConfigChange = false;
		}
	};
}
var defaultConfig, state, getTailwindVariants;
var init_chunk_RZF76H2U = __esmMin((() => {
	init_chunk_LQJYWU4O();
	defaultConfig = {
		twMerge: true,
		twMergeConfig: {}
	};
	state = createState();
	getTailwindVariants = (cn$1) => {
		const tv$1 = (options, configProp) => {
			const { extend = null, slots: slotProps = {}, variants: variantsProps = {}, compoundVariants: compoundVariantsProps = [], compoundSlots = [], defaultVariants: defaultVariantsProps = {} } = options;
			const config = {
				...defaultConfig,
				...configProp
			};
			const base = extend?.base ? cx(extend.base, options?.base) : options?.base;
			const variants$1 = extend?.variants && !isEmptyObject(extend.variants) ? mergeObjects(variantsProps, extend.variants) : variantsProps;
			const defaultVariants = extend?.defaultVariants && !isEmptyObject(extend.defaultVariants) ? {
				...extend.defaultVariants,
				...defaultVariantsProps
			} : defaultVariantsProps;
			if (!isEmptyObject(config.twMergeConfig) && !isEqual(config.twMergeConfig, state.cachedTwMergeConfig)) {
				state.didTwMergeConfigChange = true;
				state.cachedTwMergeConfig = config.twMergeConfig;
			}
			const isExtendedSlotsEmpty = isEmptyObject(extend?.slots);
			const componentSlots = !isEmptyObject(slotProps) ? {
				base: cx(options?.base, isExtendedSlotsEmpty && extend?.base),
				...slotProps
			} : {};
			const slots = isExtendedSlotsEmpty ? componentSlots : joinObjects({ ...extend?.slots }, isEmptyObject(componentSlots) ? { base: options?.base } : componentSlots);
			const compoundVariants = isEmptyObject(extend?.compoundVariants) ? compoundVariantsProps : flatMergeArrays(extend?.compoundVariants, compoundVariantsProps);
			const component = (props) => {
				if (isEmptyObject(variants$1) && isEmptyObject(slotProps) && isExtendedSlotsEmpty) {
					return cn$1(base, props?.class, props?.className)(config);
				}
				if (compoundVariants && !Array.isArray(compoundVariants)) {
					throw new TypeError(`The "compoundVariants" prop must be an array. Received: ${typeof compoundVariants}`);
				}
				if (compoundSlots && !Array.isArray(compoundSlots)) {
					throw new TypeError(`The "compoundSlots" prop must be an array. Received: ${typeof compoundSlots}`);
				}
				const getVariantValue = (variant, vrs = variants$1, _slotKey = null, slotProps2 = null) => {
					const variantObj = vrs[variant];
					if (!variantObj || isEmptyObject(variantObj)) {
						return null;
					}
					const variantProp = slotProps2?.[variant] ?? props?.[variant];
					if (variantProp === null) return null;
					const variantKey = falsyToString(variantProp);
					if (typeof variantKey === "object") {
						return null;
					}
					const defaultVariantProp = defaultVariants?.[variant];
					const key = variantKey != null ? variantKey : falsyToString(defaultVariantProp);
					const value = variantObj[key || "false"];
					return value;
				};
				const getVariantClassNames = () => {
					if (!variants$1) return null;
					const keys$1 = Object.keys(variants$1);
					const result = [];
					for (let i$7 = 0; i$7 < keys$1.length; i$7++) {
						const value = getVariantValue(keys$1[i$7], variants$1);
						if (value) result.push(value);
					}
					return result;
				};
				const getVariantClassNamesBySlotKey = (slotKey, slotProps2) => {
					if (!variants$1 || typeof variants$1 !== "object") return null;
					const result = [];
					for (const variant in variants$1) {
						const variantValue = getVariantValue(variant, variants$1, slotKey, slotProps2);
						const value = slotKey === "base" && typeof variantValue === "string" ? variantValue : variantValue && variantValue[slotKey];
						if (value) result.push(value);
					}
					return result;
				};
				const propsWithoutUndefined = {};
				for (const prop in props) {
					const value = props[prop];
					if (value !== void 0) propsWithoutUndefined[prop] = value;
				}
				const getCompleteProps = (key, slotProps2) => {
					const initialProp = typeof props?.[key] === "object" ? { [key]: props[key]?.initial } : {};
					return {
						...defaultVariants,
						...propsWithoutUndefined,
						...initialProp,
						...slotProps2
					};
				};
				const getCompoundVariantsValue = (cv = [], slotProps2) => {
					const result = [];
					const cvLength = cv.length;
					for (let i$7 = 0; i$7 < cvLength; i$7++) {
						const { class: tvClass, className: tvClassName, ...compoundVariantOptions } = cv[i$7];
						let isValid = true;
						const completeProps = getCompleteProps(null, slotProps2);
						for (const key in compoundVariantOptions) {
							const value = compoundVariantOptions[key];
							const completePropsValue = completeProps[key];
							if (Array.isArray(value)) {
								if (!value.includes(completePropsValue)) {
									isValid = false;
									break;
								}
							} else {
								if ((value == null || value === false) && (completePropsValue == null || completePropsValue === false)) continue;
								if (completePropsValue !== value) {
									isValid = false;
									break;
								}
							}
						}
						if (isValid) {
							if (tvClass) result.push(tvClass);
							if (tvClassName) result.push(tvClassName);
						}
					}
					return result;
				};
				const getCompoundVariantClassNamesBySlot = (slotProps2) => {
					const compoundClassNames = getCompoundVariantsValue(compoundVariants, slotProps2);
					if (!Array.isArray(compoundClassNames)) return compoundClassNames;
					const result = {};
					const cnFn = cn$1;
					for (let i$7 = 0; i$7 < compoundClassNames.length; i$7++) {
						const className = compoundClassNames[i$7];
						if (typeof className === "string") {
							result.base = cnFn(result.base, className)(config);
						} else if (typeof className === "object") {
							for (const slot in className) {
								result[slot] = cnFn(result[slot], className[slot])(config);
							}
						}
					}
					return result;
				};
				const getCompoundSlotClassNameBySlot = (slotProps2) => {
					if (compoundSlots.length < 1) return null;
					const result = {};
					const completeProps = getCompleteProps(null, slotProps2);
					for (let i$7 = 0; i$7 < compoundSlots.length; i$7++) {
						const { slots: slots2 = [], class: slotClass, className: slotClassName, ...slotVariants } = compoundSlots[i$7];
						if (!isEmptyObject(slotVariants)) {
							let isValid = true;
							for (const key in slotVariants) {
								const completePropsValue = completeProps[key];
								const slotVariantValue = slotVariants[key];
								if (completePropsValue === void 0 || (Array.isArray(slotVariantValue) ? !slotVariantValue.includes(completePropsValue) : slotVariantValue !== completePropsValue)) {
									isValid = false;
									break;
								}
							}
							if (!isValid) continue;
						}
						for (let j$2 = 0; j$2 < slots2.length; j$2++) {
							const slotName = slots2[j$2];
							if (!result[slotName]) result[slotName] = [];
							result[slotName].push([slotClass, slotClassName]);
						}
					}
					return result;
				};
				if (!isEmptyObject(slotProps) || !isExtendedSlotsEmpty) {
					const slotsFns = {};
					if (typeof slots === "object" && !isEmptyObject(slots)) {
						const cnFn = cn$1;
						for (const slotKey in slots) {
							slotsFns[slotKey] = (slotProps2) => {
								const compoundVariantClasses = getCompoundVariantClassNamesBySlot(slotProps2);
								const compoundSlotClasses = getCompoundSlotClassNameBySlot(slotProps2);
								return cnFn(slots[slotKey], getVariantClassNamesBySlotKey(slotKey, slotProps2), compoundVariantClasses ? compoundVariantClasses[slotKey] : void 0, compoundSlotClasses ? compoundSlotClasses[slotKey] : void 0, slotProps2?.class, slotProps2?.className)(config);
							};
						}
					}
					return slotsFns;
				}
				return cn$1(base, getVariantClassNames(), getCompoundVariantsValue(compoundVariants), props?.class, props?.className)(config);
			};
			const getVariantKeys = () => {
				if (!variants$1 || typeof variants$1 !== "object") return;
				return Object.keys(variants$1);
			};
			component.variantKeys = getVariantKeys();
			component.extend = extend;
			component.base = base;
			component.slots = slots;
			component.variants = variants$1;
			component.defaultVariants = defaultVariants;
			component.compoundSlots = compoundSlots;
			component.compoundVariants = compoundVariants;
			return component;
		};
		const createTV$1 = (configProp) => {
			return (options, config) => tv$1(options, config ? mergeObjects(configProp, config) : configProp);
		};
		return {
			tv: tv$1,
			createTV: createTV$1
		};
	};
}));

//#endregion
//#region node_modules/tailwind-merge/dist/bundle-mjs.mjs
var concatArrays, createClassValidatorObject, createClassPartObject, CLASS_PART_SEPARATOR, EMPTY_CONFLICTS, ARBITRARY_PROPERTY_PREFIX, createClassGroupUtils, getGroupRecursive, getGroupIdForArbitraryProperty, createClassMap, processClassGroups, processClassesRecursively, processClassDefinition, processStringDefinition, processFunctionDefinition, processObjectDefinition, getPart, isThemeGetter, createLruCache, IMPORTANT_MODIFIER, MODIFIER_SEPARATOR, EMPTY_MODIFIERS, createResultObject, createParseClassName, createSortModifiers, createConfigUtils, SPLIT_CLASSES_REGEX, mergeClassList, twJoin, toValue, createTailwindMerge, fallbackThemeArr, fromTheme, arbitraryValueRegex, arbitraryVariableRegex, fractionRegex, tshirtUnitRegex, lengthUnitRegex, colorFunctionRegex, shadowRegex, imageRegex, isFraction, isNumber, isInteger, isPercent, isTshirtSize, isAny, isLengthOnly, isNever, isShadow, isImage, isAnyNonArbitrary, isArbitrarySize, isArbitraryValue, isArbitraryLength, isArbitraryNumber, isArbitraryPosition, isArbitraryImage, isArbitraryShadow, isArbitraryVariable, isArbitraryVariableLength, isArbitraryVariableFamilyName, isArbitraryVariablePosition, isArbitraryVariableSize, isArbitraryVariableImage, isArbitraryVariableShadow, getIsArbitraryValue, getIsArbitraryVariable, isLabelPosition, isLabelImage, isLabelSize, isLabelLength, isLabelNumber, isLabelFamilyName, isLabelShadow, validators, getDefaultConfig, mergeConfigs, overrideProperty, overrideConfigProperties, mergeConfigProperties, mergeArrayProperties, extendTailwindMerge, twMerge;
var init_bundle_mjs = __esmMin((() => {
	concatArrays = (array1, array2) => {
		const combinedArray = new Array(array1.length + array2.length);
		for (let i$7 = 0; i$7 < array1.length; i$7++) {
			combinedArray[i$7] = array1[i$7];
		}
		for (let i$7 = 0; i$7 < array2.length; i$7++) {
			combinedArray[array1.length + i$7] = array2[i$7];
		}
		return combinedArray;
	};
	createClassValidatorObject = (classGroupId, validator) => ({
		classGroupId,
		validator
	});
	createClassPartObject = (nextPart = new Map(), validators$1 = null, classGroupId) => ({
		nextPart,
		validators: validators$1,
		classGroupId
	});
	CLASS_PART_SEPARATOR = "-";
	EMPTY_CONFLICTS = [];
	ARBITRARY_PROPERTY_PREFIX = "arbitrary..";
	createClassGroupUtils = (config) => {
		const classMap = createClassMap(config);
		const { conflictingClassGroups, conflictingClassGroupModifiers } = config;
		const getClassGroupId = (className) => {
			if (className.startsWith("[") && className.endsWith("]")) {
				return getGroupIdForArbitraryProperty(className);
			}
			const classParts = className.split(CLASS_PART_SEPARATOR);
			const startIndex = classParts[0] === "" && classParts.length > 1 ? 1 : 0;
			return getGroupRecursive(classParts, startIndex, classMap);
		};
		const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
			if (hasPostfixModifier) {
				const modifierConflicts = conflictingClassGroupModifiers[classGroupId];
				const baseConflicts = conflictingClassGroups[classGroupId];
				if (modifierConflicts) {
					if (baseConflicts) {
						return concatArrays(baseConflicts, modifierConflicts);
					}
					return modifierConflicts;
				}
				return baseConflicts || EMPTY_CONFLICTS;
			}
			return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;
		};
		return {
			getClassGroupId,
			getConflictingClassGroupIds
		};
	};
	getGroupRecursive = (classParts, startIndex, classPartObject) => {
		const classPathsLength = classParts.length - startIndex;
		if (classPathsLength === 0) {
			return classPartObject.classGroupId;
		}
		const currentClassPart = classParts[startIndex];
		const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
		if (nextClassPartObject) {
			const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);
			if (result) return result;
		}
		const validators$1 = classPartObject.validators;
		if (validators$1 === null) {
			return undefined;
		}
		const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);
		const validatorsLength = validators$1.length;
		for (let i$7 = 0; i$7 < validatorsLength; i$7++) {
			const validatorObj = validators$1[i$7];
			if (validatorObj.validator(classRest)) {
				return validatorObj.classGroupId;
			}
		}
		return undefined;
	};
	getGroupIdForArbitraryProperty = (className) => className.slice(1, -1).indexOf(":") === -1 ? undefined : (() => {
		const content = className.slice(1, -1);
		const colonIndex = content.indexOf(":");
		const property = content.slice(0, colonIndex);
		return property ? ARBITRARY_PROPERTY_PREFIX + property : undefined;
	})();
	createClassMap = (config) => {
		const { theme, classGroups } = config;
		return processClassGroups(classGroups, theme);
	};
	processClassGroups = (classGroups, theme) => {
		const classMap = createClassPartObject();
		for (const classGroupId in classGroups) {
			const group = classGroups[classGroupId];
			processClassesRecursively(group, classMap, classGroupId, theme);
		}
		return classMap;
	};
	processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
		const len = classGroup.length;
		for (let i$7 = 0; i$7 < len; i$7++) {
			const classDefinition = classGroup[i$7];
			processClassDefinition(classDefinition, classPartObject, classGroupId, theme);
		}
	};
	processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
		if (typeof classDefinition === "string") {
			processStringDefinition(classDefinition, classPartObject, classGroupId);
			return;
		}
		if (typeof classDefinition === "function") {
			processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);
			return;
		}
		processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);
	};
	processStringDefinition = (classDefinition, classPartObject, classGroupId) => {
		const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
		classPartObjectToEdit.classGroupId = classGroupId;
	};
	processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
		if (isThemeGetter(classDefinition)) {
			processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
			return;
		}
		if (classPartObject.validators === null) {
			classPartObject.validators = [];
		}
		classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));
	};
	processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
		const entries = Object.entries(classDefinition);
		const len = entries.length;
		for (let i$7 = 0; i$7 < len; i$7++) {
			const [key, value] = entries[i$7];
			processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);
		}
	};
	getPart = (classPartObject, path$1) => {
		let current = classPartObject;
		const parts = path$1.split(CLASS_PART_SEPARATOR);
		const len = parts.length;
		for (let i$7 = 0; i$7 < len; i$7++) {
			const part = parts[i$7];
			let next = current.nextPart.get(part);
			if (!next) {
				next = createClassPartObject();
				current.nextPart.set(part, next);
			}
			current = next;
		}
		return current;
	};
	isThemeGetter = (func) => "isThemeGetter" in func && func.isThemeGetter === true;
	createLruCache = (maxCacheSize) => {
		if (maxCacheSize < 1) {
			return {
				get: () => undefined,
				set: () => {}
			};
		}
		let cacheSize = 0;
		let cache = Object.create(null);
		let previousCache = Object.create(null);
		const update = (key, value) => {
			cache[key] = value;
			cacheSize++;
			if (cacheSize > maxCacheSize) {
				cacheSize = 0;
				previousCache = cache;
				cache = Object.create(null);
			}
		};
		return {
			get(key) {
				let value = cache[key];
				if (value !== undefined) {
					return value;
				}
				if ((value = previousCache[key]) !== undefined) {
					update(key, value);
					return value;
				}
			},
			set(key, value) {
				if (key in cache) {
					cache[key] = value;
				} else {
					update(key, value);
				}
			}
		};
	};
	IMPORTANT_MODIFIER = "!";
	MODIFIER_SEPARATOR = ":";
	EMPTY_MODIFIERS = [];
	createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({
		modifiers,
		hasImportantModifier,
		baseClassName,
		maybePostfixModifierPosition,
		isExternal
	});
	createParseClassName = (config) => {
		const { prefix, experimentalParseClassName } = config;
		/**
		* Parse class name into parts.
		*
		* Inspired by `splitAtTopLevelOnly` used in Tailwind CSS
		* @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js
		*/
		let parseClassName = (className) => {
			const modifiers = [];
			let bracketDepth = 0;
			let parenDepth = 0;
			let modifierStart = 0;
			let postfixModifierPosition;
			const len = className.length;
			for (let index = 0; index < len; index++) {
				const currentCharacter = className[index];
				if (bracketDepth === 0 && parenDepth === 0) {
					if (currentCharacter === MODIFIER_SEPARATOR) {
						modifiers.push(className.slice(modifierStart, index));
						modifierStart = index + 1;
						continue;
					}
					if (currentCharacter === "/") {
						postfixModifierPosition = index;
						continue;
					}
				}
				if (currentCharacter === "[") bracketDepth++;
				else if (currentCharacter === "]") bracketDepth--;
				else if (currentCharacter === "(") parenDepth++;
				else if (currentCharacter === ")") parenDepth--;
			}
			const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);
			let baseClassName = baseClassNameWithImportantModifier;
			let hasImportantModifier = false;
			if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {
				baseClassName = baseClassNameWithImportantModifier.slice(0, -1);
				hasImportantModifier = true;
			} else if (baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)) {
				baseClassName = baseClassNameWithImportantModifier.slice(1);
				hasImportantModifier = true;
			}
			const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;
			return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);
		};
		if (prefix) {
			const fullPrefix = prefix + MODIFIER_SEPARATOR;
			const parseClassNameOriginal = parseClassName;
			parseClassName = (className) => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, undefined, true);
		}
		if (experimentalParseClassName) {
			const parseClassNameOriginal = parseClassName;
			parseClassName = (className) => experimentalParseClassName({
				className,
				parseClassName: parseClassNameOriginal
			});
		}
		return parseClassName;
	};
	createSortModifiers = (config) => {
		const modifierWeights = new Map();
		config.orderSensitiveModifiers.forEach((mod, index) => {
			modifierWeights.set(mod, 1e6 + index);
		});
		return (modifiers) => {
			const result = [];
			let currentSegment = [];
			for (let i$7 = 0; i$7 < modifiers.length; i$7++) {
				const modifier = modifiers[i$7];
				const isArbitrary = modifier[0] === "[";
				const isOrderSensitive = modifierWeights.has(modifier);
				if (isArbitrary || isOrderSensitive) {
					if (currentSegment.length > 0) {
						currentSegment.sort();
						result.push(...currentSegment);
						currentSegment = [];
					}
					result.push(modifier);
				} else {
					currentSegment.push(modifier);
				}
			}
			if (currentSegment.length > 0) {
				currentSegment.sort();
				result.push(...currentSegment);
			}
			return result;
		};
	};
	createConfigUtils = (config) => ({
		cache: createLruCache(config.cacheSize),
		parseClassName: createParseClassName(config),
		sortModifiers: createSortModifiers(config),
		...createClassGroupUtils(config)
	});
	SPLIT_CLASSES_REGEX = /\s+/;
	mergeClassList = (classList, configUtils) => {
		const { parseClassName, getClassGroupId, getConflictingClassGroupIds, sortModifiers } = configUtils;
		/**
		* Set of classGroupIds in following format:
		* `{importantModifier}{variantModifiers}{classGroupId}`
		* @example 'float'
		* @example 'hover:focus:bg-color'
		* @example 'md:!pr'
		*/
		const classGroupsInConflict = [];
		const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
		let result = "";
		for (let index = classNames.length - 1; index >= 0; index -= 1) {
			const originalClassName = classNames[index];
			const { isExternal, modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition } = parseClassName(originalClassName);
			if (isExternal) {
				result = originalClassName + (result.length > 0 ? " " + result : result);
				continue;
			}
			let hasPostfixModifier = !!maybePostfixModifierPosition;
			let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
			if (!classGroupId) {
				if (!hasPostfixModifier) {
					result = originalClassName + (result.length > 0 ? " " + result : result);
					continue;
				}
				classGroupId = getClassGroupId(baseClassName);
				if (!classGroupId) {
					result = originalClassName + (result.length > 0 ? " " + result : result);
					continue;
				}
				hasPostfixModifier = false;
			}
			const variantModifier = modifiers.length === 0 ? "" : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(":");
			const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
			const classId = modifierId + classGroupId;
			if (classGroupsInConflict.indexOf(classId) > -1) {
				continue;
			}
			classGroupsInConflict.push(classId);
			const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
			for (let i$7 = 0; i$7 < conflictGroups.length; ++i$7) {
				const group = conflictGroups[i$7];
				classGroupsInConflict.push(modifierId + group);
			}
			result = originalClassName + (result.length > 0 ? " " + result : result);
		}
		return result;
	};
	twJoin = (...classLists) => {
		let index = 0;
		let argument;
		let resolvedValue;
		let string = "";
		while (index < classLists.length) {
			if (argument = classLists[index++]) {
				if (resolvedValue = toValue(argument)) {
					string && (string += " ");
					string += resolvedValue;
				}
			}
		}
		return string;
	};
	toValue = (mix) => {
		if (typeof mix === "string") {
			return mix;
		}
		let resolvedValue;
		let string = "";
		for (let k$2 = 0; k$2 < mix.length; k$2++) {
			if (mix[k$2]) {
				if (resolvedValue = toValue(mix[k$2])) {
					string && (string += " ");
					string += resolvedValue;
				}
			}
		}
		return string;
	};
	createTailwindMerge = (createConfigFirst, ...createConfigRest) => {
		let configUtils;
		let cacheGet;
		let cacheSet;
		let functionToCall;
		const initTailwindMerge = (classList) => {
			const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
			configUtils = createConfigUtils(config);
			cacheGet = configUtils.cache.get;
			cacheSet = configUtils.cache.set;
			functionToCall = tailwindMerge;
			return tailwindMerge(classList);
		};
		const tailwindMerge = (classList) => {
			const cachedResult = cacheGet(classList);
			if (cachedResult) {
				return cachedResult;
			}
			const result = mergeClassList(classList, configUtils);
			cacheSet(classList, result);
			return result;
		};
		functionToCall = initTailwindMerge;
		return (...args) => functionToCall(twJoin(...args));
	};
	fallbackThemeArr = [];
	fromTheme = (key) => {
		const themeGetter = (theme) => theme[key] || fallbackThemeArr;
		themeGetter.isThemeGetter = true;
		return themeGetter;
	};
	arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i;
	arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
	fractionRegex = /^\d+\/\d+$/;
	tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
	lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/;
	colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
	shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
	imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
	isFraction = (value) => fractionRegex.test(value);
	isNumber = (value) => !!value && !Number.isNaN(Number(value));
	isInteger = (value) => !!value && Number.isInteger(Number(value));
	isPercent = (value) => value.endsWith("%") && isNumber(value.slice(0, -1));
	isTshirtSize = (value) => tshirtUnitRegex.test(value);
	isAny = () => true;
	isLengthOnly = (value) => lengthUnitRegex.test(value) && !colorFunctionRegex.test(value);
	isNever = () => false;
	isShadow = (value) => shadowRegex.test(value);
	isImage = (value) => imageRegex.test(value);
	isAnyNonArbitrary = (value) => !isArbitraryValue(value) && !isArbitraryVariable(value);
	isArbitrarySize = (value) => getIsArbitraryValue(value, isLabelSize, isNever);
	isArbitraryValue = (value) => arbitraryValueRegex.test(value);
	isArbitraryLength = (value) => getIsArbitraryValue(value, isLabelLength, isLengthOnly);
	isArbitraryNumber = (value) => getIsArbitraryValue(value, isLabelNumber, isNumber);
	isArbitraryPosition = (value) => getIsArbitraryValue(value, isLabelPosition, isNever);
	isArbitraryImage = (value) => getIsArbitraryValue(value, isLabelImage, isImage);
	isArbitraryShadow = (value) => getIsArbitraryValue(value, isLabelShadow, isShadow);
	isArbitraryVariable = (value) => arbitraryVariableRegex.test(value);
	isArbitraryVariableLength = (value) => getIsArbitraryVariable(value, isLabelLength);
	isArbitraryVariableFamilyName = (value) => getIsArbitraryVariable(value, isLabelFamilyName);
	isArbitraryVariablePosition = (value) => getIsArbitraryVariable(value, isLabelPosition);
	isArbitraryVariableSize = (value) => getIsArbitraryVariable(value, isLabelSize);
	isArbitraryVariableImage = (value) => getIsArbitraryVariable(value, isLabelImage);
	isArbitraryVariableShadow = (value) => getIsArbitraryVariable(value, isLabelShadow, true);
	getIsArbitraryValue = (value, testLabel, testValue) => {
		const result = arbitraryValueRegex.exec(value);
		if (result) {
			if (result[1]) {
				return testLabel(result[1]);
			}
			return testValue(result[2]);
		}
		return false;
	};
	getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {
		const result = arbitraryVariableRegex.exec(value);
		if (result) {
			if (result[1]) {
				return testLabel(result[1]);
			}
			return shouldMatchNoLabel;
		}
		return false;
	};
	isLabelPosition = (label) => label === "position" || label === "percentage";
	isLabelImage = (label) => label === "image" || label === "url";
	isLabelSize = (label) => label === "length" || label === "size" || label === "bg-size";
	isLabelLength = (label) => label === "length";
	isLabelNumber = (label) => label === "number";
	isLabelFamilyName = (label) => label === "family-name";
	isLabelShadow = (label) => label === "shadow";
	validators = /* @__PURE__ */ Object.defineProperty({
		__proto__: null,
		isAny,
		isAnyNonArbitrary,
		isArbitraryImage,
		isArbitraryLength,
		isArbitraryNumber,
		isArbitraryPosition,
		isArbitraryShadow,
		isArbitrarySize,
		isArbitraryValue,
		isArbitraryVariable,
		isArbitraryVariableFamilyName,
		isArbitraryVariableImage,
		isArbitraryVariableLength,
		isArbitraryVariablePosition,
		isArbitraryVariableShadow,
		isArbitraryVariableSize,
		isFraction,
		isInteger,
		isNumber,
		isPercent,
		isTshirtSize
	}, Symbol.toStringTag, { value: "Module" });
	getDefaultConfig = () => {
		/**
		* Theme getters for theme variable namespaces
		* @see https://tailwindcss.com/docs/theme#theme-variable-namespaces
		*/
		const themeColor = fromTheme("color");
		const themeFont = fromTheme("font");
		const themeText = fromTheme("text");
		const themeFontWeight = fromTheme("font-weight");
		const themeTracking = fromTheme("tracking");
		const themeLeading = fromTheme("leading");
		const themeBreakpoint = fromTheme("breakpoint");
		const themeContainer = fromTheme("container");
		const themeSpacing = fromTheme("spacing");
		const themeRadius = fromTheme("radius");
		const themeShadow = fromTheme("shadow");
		const themeInsetShadow = fromTheme("inset-shadow");
		const themeTextShadow = fromTheme("text-shadow");
		const themeDropShadow = fromTheme("drop-shadow");
		const themeBlur = fromTheme("blur");
		const themePerspective = fromTheme("perspective");
		const themeAspect = fromTheme("aspect");
		const themeEase = fromTheme("ease");
		const themeAnimate = fromTheme("animate");
		/**
		* Helpers to avoid repeating the same scales
		*
		* We use functions that create a new array every time they're called instead of static arrays.
		* This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.
		*/
		const scaleBreak = () => [
			"auto",
			"avoid",
			"all",
			"avoid-page",
			"page",
			"left",
			"right",
			"column"
		];
		const scalePosition = () => [
			"center",
			"top",
			"bottom",
			"left",
			"right",
			"top-left",
			"left-top",
			"top-right",
			"right-top",
			"bottom-right",
			"right-bottom",
			"bottom-left",
			"left-bottom"
		];
		const scalePositionWithArbitrary = () => [
			...scalePosition(),
			isArbitraryVariable,
			isArbitraryValue
		];
		const scaleOverflow = () => [
			"auto",
			"hidden",
			"clip",
			"visible",
			"scroll"
		];
		const scaleOverscroll = () => [
			"auto",
			"contain",
			"none"
		];
		const scaleUnambiguousSpacing = () => [
			isArbitraryVariable,
			isArbitraryValue,
			themeSpacing
		];
		const scaleInset = () => [
			isFraction,
			"full",
			"auto",
			...scaleUnambiguousSpacing()
		];
		const scaleGridTemplateColsRows = () => [
			isInteger,
			"none",
			"subgrid",
			isArbitraryVariable,
			isArbitraryValue
		];
		const scaleGridColRowStartAndEnd = () => [
			"auto",
			{ span: [
				"full",
				isInteger,
				isArbitraryVariable,
				isArbitraryValue
			] },
			isInteger,
			isArbitraryVariable,
			isArbitraryValue
		];
		const scaleGridColRowStartOrEnd = () => [
			isInteger,
			"auto",
			isArbitraryVariable,
			isArbitraryValue
		];
		const scaleGridAutoColsRows = () => [
			"auto",
			"min",
			"max",
			"fr",
			isArbitraryVariable,
			isArbitraryValue
		];
		const scaleAlignPrimaryAxis = () => [
			"start",
			"end",
			"center",
			"between",
			"around",
			"evenly",
			"stretch",
			"baseline",
			"center-safe",
			"end-safe"
		];
		const scaleAlignSecondaryAxis = () => [
			"start",
			"end",
			"center",
			"stretch",
			"center-safe",
			"end-safe"
		];
		const scaleMargin = () => ["auto", ...scaleUnambiguousSpacing()];
		const scaleSizing = () => [
			isFraction,
			"auto",
			"full",
			"dvw",
			"dvh",
			"lvw",
			"lvh",
			"svw",
			"svh",
			"min",
			"max",
			"fit",
			...scaleUnambiguousSpacing()
		];
		const scaleColor = () => [
			themeColor,
			isArbitraryVariable,
			isArbitraryValue
		];
		const scaleBgPosition = () => [
			...scalePosition(),
			isArbitraryVariablePosition,
			isArbitraryPosition,
			{ position: [isArbitraryVariable, isArbitraryValue] }
		];
		const scaleBgRepeat = () => ["no-repeat", { repeat: [
			"",
			"x",
			"y",
			"space",
			"round"
		] }];
		const scaleBgSize = () => [
			"auto",
			"cover",
			"contain",
			isArbitraryVariableSize,
			isArbitrarySize,
			{ size: [isArbitraryVariable, isArbitraryValue] }
		];
		const scaleGradientStopPosition = () => [
			isPercent,
			isArbitraryVariableLength,
			isArbitraryLength
		];
		const scaleRadius = () => [
			"",
			"none",
			"full",
			themeRadius,
			isArbitraryVariable,
			isArbitraryValue
		];
		const scaleBorderWidth = () => [
			"",
			isNumber,
			isArbitraryVariableLength,
			isArbitraryLength
		];
		const scaleLineStyle = () => [
			"solid",
			"dashed",
			"dotted",
			"double"
		];
		const scaleBlendMode = () => [
			"normal",
			"multiply",
			"screen",
			"overlay",
			"darken",
			"lighten",
			"color-dodge",
			"color-burn",
			"hard-light",
			"soft-light",
			"difference",
			"exclusion",
			"hue",
			"saturation",
			"color",
			"luminosity"
		];
		const scaleMaskImagePosition = () => [
			isNumber,
			isPercent,
			isArbitraryVariablePosition,
			isArbitraryPosition
		];
		const scaleBlur = () => [
			"",
			"none",
			themeBlur,
			isArbitraryVariable,
			isArbitraryValue
		];
		const scaleRotate = () => [
			"none",
			isNumber,
			isArbitraryVariable,
			isArbitraryValue
		];
		const scaleScale = () => [
			"none",
			isNumber,
			isArbitraryVariable,
			isArbitraryValue
		];
		const scaleSkew = () => [
			isNumber,
			isArbitraryVariable,
			isArbitraryValue
		];
		const scaleTranslate = () => [
			isFraction,
			"full",
			...scaleUnambiguousSpacing()
		];
		return {
			cacheSize: 500,
			theme: {
				animate: [
					"spin",
					"ping",
					"pulse",
					"bounce"
				],
				aspect: ["video"],
				blur: [isTshirtSize],
				breakpoint: [isTshirtSize],
				color: [isAny],
				container: [isTshirtSize],
				"drop-shadow": [isTshirtSize],
				ease: [
					"in",
					"out",
					"in-out"
				],
				font: [isAnyNonArbitrary],
				"font-weight": [
					"thin",
					"extralight",
					"light",
					"normal",
					"medium",
					"semibold",
					"bold",
					"extrabold",
					"black"
				],
				"inset-shadow": [isTshirtSize],
				leading: [
					"none",
					"tight",
					"snug",
					"normal",
					"relaxed",
					"loose"
				],
				perspective: [
					"dramatic",
					"near",
					"normal",
					"midrange",
					"distant",
					"none"
				],
				radius: [isTshirtSize],
				shadow: [isTshirtSize],
				spacing: ["px", isNumber],
				text: [isTshirtSize],
				"text-shadow": [isTshirtSize],
				tracking: [
					"tighter",
					"tight",
					"normal",
					"wide",
					"wider",
					"widest"
				]
			},
			classGroups: {
				aspect: [{ aspect: [
					"auto",
					"square",
					isFraction,
					isArbitraryValue,
					isArbitraryVariable,
					themeAspect
				] }],
				container: ["container"],
				columns: [{ columns: [
					isNumber,
					isArbitraryValue,
					isArbitraryVariable,
					themeContainer
				] }],
				"break-after": [{ "break-after": scaleBreak() }],
				"break-before": [{ "break-before": scaleBreak() }],
				"break-inside": [{ "break-inside": [
					"auto",
					"avoid",
					"avoid-page",
					"avoid-column"
				] }],
				"box-decoration": [{ "box-decoration": ["slice", "clone"] }],
				box: [{ box: ["border", "content"] }],
				display: [
					"block",
					"inline-block",
					"inline",
					"flex",
					"inline-flex",
					"table",
					"inline-table",
					"table-caption",
					"table-cell",
					"table-column",
					"table-column-group",
					"table-footer-group",
					"table-header-group",
					"table-row-group",
					"table-row",
					"flow-root",
					"grid",
					"inline-grid",
					"contents",
					"list-item",
					"hidden"
				],
				sr: ["sr-only", "not-sr-only"],
				float: [{ float: [
					"right",
					"left",
					"none",
					"start",
					"end"
				] }],
				clear: [{ clear: [
					"left",
					"right",
					"both",
					"none",
					"start",
					"end"
				] }],
				isolation: ["isolate", "isolation-auto"],
				"object-fit": [{ object: [
					"contain",
					"cover",
					"fill",
					"none",
					"scale-down"
				] }],
				"object-position": [{ object: scalePositionWithArbitrary() }],
				overflow: [{ overflow: scaleOverflow() }],
				"overflow-x": [{ "overflow-x": scaleOverflow() }],
				"overflow-y": [{ "overflow-y": scaleOverflow() }],
				overscroll: [{ overscroll: scaleOverscroll() }],
				"overscroll-x": [{ "overscroll-x": scaleOverscroll() }],
				"overscroll-y": [{ "overscroll-y": scaleOverscroll() }],
				position: [
					"static",
					"fixed",
					"absolute",
					"relative",
					"sticky"
				],
				inset: [{ inset: scaleInset() }],
				"inset-x": [{ "inset-x": scaleInset() }],
				"inset-y": [{ "inset-y": scaleInset() }],
				start: [{ start: scaleInset() }],
				end: [{ end: scaleInset() }],
				top: [{ top: scaleInset() }],
				right: [{ right: scaleInset() }],
				bottom: [{ bottom: scaleInset() }],
				left: [{ left: scaleInset() }],
				visibility: [
					"visible",
					"invisible",
					"collapse"
				],
				z: [{ z: [
					isInteger,
					"auto",
					isArbitraryVariable,
					isArbitraryValue
				] }],
				basis: [{ basis: [
					isFraction,
					"full",
					"auto",
					themeContainer,
					...scaleUnambiguousSpacing()
				] }],
				"flex-direction": [{ flex: [
					"row",
					"row-reverse",
					"col",
					"col-reverse"
				] }],
				"flex-wrap": [{ flex: [
					"nowrap",
					"wrap",
					"wrap-reverse"
				] }],
				flex: [{ flex: [
					isNumber,
					isFraction,
					"auto",
					"initial",
					"none",
					isArbitraryValue
				] }],
				grow: [{ grow: [
					"",
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				shrink: [{ shrink: [
					"",
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				order: [{ order: [
					isInteger,
					"first",
					"last",
					"none",
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"grid-cols": [{ "grid-cols": scaleGridTemplateColsRows() }],
				"col-start-end": [{ col: scaleGridColRowStartAndEnd() }],
				"col-start": [{ "col-start": scaleGridColRowStartOrEnd() }],
				"col-end": [{ "col-end": scaleGridColRowStartOrEnd() }],
				"grid-rows": [{ "grid-rows": scaleGridTemplateColsRows() }],
				"row-start-end": [{ row: scaleGridColRowStartAndEnd() }],
				"row-start": [{ "row-start": scaleGridColRowStartOrEnd() }],
				"row-end": [{ "row-end": scaleGridColRowStartOrEnd() }],
				"grid-flow": [{ "grid-flow": [
					"row",
					"col",
					"dense",
					"row-dense",
					"col-dense"
				] }],
				"auto-cols": [{ "auto-cols": scaleGridAutoColsRows() }],
				"auto-rows": [{ "auto-rows": scaleGridAutoColsRows() }],
				gap: [{ gap: scaleUnambiguousSpacing() }],
				"gap-x": [{ "gap-x": scaleUnambiguousSpacing() }],
				"gap-y": [{ "gap-y": scaleUnambiguousSpacing() }],
				"justify-content": [{ justify: [...scaleAlignPrimaryAxis(), "normal"] }],
				"justify-items": [{ "justify-items": [...scaleAlignSecondaryAxis(), "normal"] }],
				"justify-self": [{ "justify-self": ["auto", ...scaleAlignSecondaryAxis()] }],
				"align-content": [{ content: ["normal", ...scaleAlignPrimaryAxis()] }],
				"align-items": [{ items: [...scaleAlignSecondaryAxis(), { baseline: ["", "last"] }] }],
				"align-self": [{ self: [
					"auto",
					...scaleAlignSecondaryAxis(),
					{ baseline: ["", "last"] }
				] }],
				"place-content": [{ "place-content": scaleAlignPrimaryAxis() }],
				"place-items": [{ "place-items": [...scaleAlignSecondaryAxis(), "baseline"] }],
				"place-self": [{ "place-self": ["auto", ...scaleAlignSecondaryAxis()] }],
				p: [{ p: scaleUnambiguousSpacing() }],
				px: [{ px: scaleUnambiguousSpacing() }],
				py: [{ py: scaleUnambiguousSpacing() }],
				ps: [{ ps: scaleUnambiguousSpacing() }],
				pe: [{ pe: scaleUnambiguousSpacing() }],
				pt: [{ pt: scaleUnambiguousSpacing() }],
				pr: [{ pr: scaleUnambiguousSpacing() }],
				pb: [{ pb: scaleUnambiguousSpacing() }],
				pl: [{ pl: scaleUnambiguousSpacing() }],
				m: [{ m: scaleMargin() }],
				mx: [{ mx: scaleMargin() }],
				my: [{ my: scaleMargin() }],
				ms: [{ ms: scaleMargin() }],
				me: [{ me: scaleMargin() }],
				mt: [{ mt: scaleMargin() }],
				mr: [{ mr: scaleMargin() }],
				mb: [{ mb: scaleMargin() }],
				ml: [{ ml: scaleMargin() }],
				"space-x": [{ "space-x": scaleUnambiguousSpacing() }],
				"space-x-reverse": ["space-x-reverse"],
				"space-y": [{ "space-y": scaleUnambiguousSpacing() }],
				"space-y-reverse": ["space-y-reverse"],
				size: [{ size: scaleSizing() }],
				w: [{ w: [
					themeContainer,
					"screen",
					...scaleSizing()
				] }],
				"min-w": [{ "min-w": [
					themeContainer,
					"screen",
					"none",
					...scaleSizing()
				] }],
				"max-w": [{ "max-w": [
					themeContainer,
					"screen",
					"none",
					"prose",
					{ screen: [themeBreakpoint] },
					...scaleSizing()
				] }],
				h: [{ h: [
					"screen",
					"lh",
					...scaleSizing()
				] }],
				"min-h": [{ "min-h": [
					"screen",
					"lh",
					"none",
					...scaleSizing()
				] }],
				"max-h": [{ "max-h": [
					"screen",
					"lh",
					...scaleSizing()
				] }],
				"font-size": [{ text: [
					"base",
					themeText,
					isArbitraryVariableLength,
					isArbitraryLength
				] }],
				"font-smoothing": ["antialiased", "subpixel-antialiased"],
				"font-style": ["italic", "not-italic"],
				"font-weight": [{ font: [
					themeFontWeight,
					isArbitraryVariable,
					isArbitraryNumber
				] }],
				"font-stretch": [{ "font-stretch": [
					"ultra-condensed",
					"extra-condensed",
					"condensed",
					"semi-condensed",
					"normal",
					"semi-expanded",
					"expanded",
					"extra-expanded",
					"ultra-expanded",
					isPercent,
					isArbitraryValue
				] }],
				"font-family": [{ font: [
					isArbitraryVariableFamilyName,
					isArbitraryValue,
					themeFont
				] }],
				"fvn-normal": ["normal-nums"],
				"fvn-ordinal": ["ordinal"],
				"fvn-slashed-zero": ["slashed-zero"],
				"fvn-figure": ["lining-nums", "oldstyle-nums"],
				"fvn-spacing": ["proportional-nums", "tabular-nums"],
				"fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
				tracking: [{ tracking: [
					themeTracking,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"line-clamp": [{ "line-clamp": [
					isNumber,
					"none",
					isArbitraryVariable,
					isArbitraryNumber
				] }],
				leading: [{ leading: [themeLeading, ...scaleUnambiguousSpacing()] }],
				"list-image": [{ "list-image": [
					"none",
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"list-style-position": [{ list: ["inside", "outside"] }],
				"list-style-type": [{ list: [
					"disc",
					"decimal",
					"none",
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"text-alignment": [{ text: [
					"left",
					"center",
					"right",
					"justify",
					"start",
					"end"
				] }],
				"placeholder-color": [{ placeholder: scaleColor() }],
				"text-color": [{ text: scaleColor() }],
				"text-decoration": [
					"underline",
					"overline",
					"line-through",
					"no-underline"
				],
				"text-decoration-style": [{ decoration: [...scaleLineStyle(), "wavy"] }],
				"text-decoration-thickness": [{ decoration: [
					isNumber,
					"from-font",
					"auto",
					isArbitraryVariable,
					isArbitraryLength
				] }],
				"text-decoration-color": [{ decoration: scaleColor() }],
				"underline-offset": [{ "underline-offset": [
					isNumber,
					"auto",
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"text-transform": [
					"uppercase",
					"lowercase",
					"capitalize",
					"normal-case"
				],
				"text-overflow": [
					"truncate",
					"text-ellipsis",
					"text-clip"
				],
				"text-wrap": [{ text: [
					"wrap",
					"nowrap",
					"balance",
					"pretty"
				] }],
				indent: [{ indent: scaleUnambiguousSpacing() }],
				"vertical-align": [{ align: [
					"baseline",
					"top",
					"middle",
					"bottom",
					"text-top",
					"text-bottom",
					"sub",
					"super",
					isArbitraryVariable,
					isArbitraryValue
				] }],
				whitespace: [{ whitespace: [
					"normal",
					"nowrap",
					"pre",
					"pre-line",
					"pre-wrap",
					"break-spaces"
				] }],
				break: [{ break: [
					"normal",
					"words",
					"all",
					"keep"
				] }],
				wrap: [{ wrap: [
					"break-word",
					"anywhere",
					"normal"
				] }],
				hyphens: [{ hyphens: [
					"none",
					"manual",
					"auto"
				] }],
				content: [{ content: [
					"none",
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"bg-attachment": [{ bg: [
					"fixed",
					"local",
					"scroll"
				] }],
				"bg-clip": [{ "bg-clip": [
					"border",
					"padding",
					"content",
					"text"
				] }],
				"bg-origin": [{ "bg-origin": [
					"border",
					"padding",
					"content"
				] }],
				"bg-position": [{ bg: scaleBgPosition() }],
				"bg-repeat": [{ bg: scaleBgRepeat() }],
				"bg-size": [{ bg: scaleBgSize() }],
				"bg-image": [{ bg: [
					"none",
					{
						linear: [
							{ to: [
								"t",
								"tr",
								"r",
								"br",
								"b",
								"bl",
								"l",
								"tl"
							] },
							isInteger,
							isArbitraryVariable,
							isArbitraryValue
						],
						radial: [
							"",
							isArbitraryVariable,
							isArbitraryValue
						],
						conic: [
							isInteger,
							isArbitraryVariable,
							isArbitraryValue
						]
					},
					isArbitraryVariableImage,
					isArbitraryImage
				] }],
				"bg-color": [{ bg: scaleColor() }],
				"gradient-from-pos": [{ from: scaleGradientStopPosition() }],
				"gradient-via-pos": [{ via: scaleGradientStopPosition() }],
				"gradient-to-pos": [{ to: scaleGradientStopPosition() }],
				"gradient-from": [{ from: scaleColor() }],
				"gradient-via": [{ via: scaleColor() }],
				"gradient-to": [{ to: scaleColor() }],
				rounded: [{ rounded: scaleRadius() }],
				"rounded-s": [{ "rounded-s": scaleRadius() }],
				"rounded-e": [{ "rounded-e": scaleRadius() }],
				"rounded-t": [{ "rounded-t": scaleRadius() }],
				"rounded-r": [{ "rounded-r": scaleRadius() }],
				"rounded-b": [{ "rounded-b": scaleRadius() }],
				"rounded-l": [{ "rounded-l": scaleRadius() }],
				"rounded-ss": [{ "rounded-ss": scaleRadius() }],
				"rounded-se": [{ "rounded-se": scaleRadius() }],
				"rounded-ee": [{ "rounded-ee": scaleRadius() }],
				"rounded-es": [{ "rounded-es": scaleRadius() }],
				"rounded-tl": [{ "rounded-tl": scaleRadius() }],
				"rounded-tr": [{ "rounded-tr": scaleRadius() }],
				"rounded-br": [{ "rounded-br": scaleRadius() }],
				"rounded-bl": [{ "rounded-bl": scaleRadius() }],
				"border-w": [{ border: scaleBorderWidth() }],
				"border-w-x": [{ "border-x": scaleBorderWidth() }],
				"border-w-y": [{ "border-y": scaleBorderWidth() }],
				"border-w-s": [{ "border-s": scaleBorderWidth() }],
				"border-w-e": [{ "border-e": scaleBorderWidth() }],
				"border-w-t": [{ "border-t": scaleBorderWidth() }],
				"border-w-r": [{ "border-r": scaleBorderWidth() }],
				"border-w-b": [{ "border-b": scaleBorderWidth() }],
				"border-w-l": [{ "border-l": scaleBorderWidth() }],
				"divide-x": [{ "divide-x": scaleBorderWidth() }],
				"divide-x-reverse": ["divide-x-reverse"],
				"divide-y": [{ "divide-y": scaleBorderWidth() }],
				"divide-y-reverse": ["divide-y-reverse"],
				"border-style": [{ border: [
					...scaleLineStyle(),
					"hidden",
					"none"
				] }],
				"divide-style": [{ divide: [
					...scaleLineStyle(),
					"hidden",
					"none"
				] }],
				"border-color": [{ border: scaleColor() }],
				"border-color-x": [{ "border-x": scaleColor() }],
				"border-color-y": [{ "border-y": scaleColor() }],
				"border-color-s": [{ "border-s": scaleColor() }],
				"border-color-e": [{ "border-e": scaleColor() }],
				"border-color-t": [{ "border-t": scaleColor() }],
				"border-color-r": [{ "border-r": scaleColor() }],
				"border-color-b": [{ "border-b": scaleColor() }],
				"border-color-l": [{ "border-l": scaleColor() }],
				"divide-color": [{ divide: scaleColor() }],
				"outline-style": [{ outline: [
					...scaleLineStyle(),
					"none",
					"hidden"
				] }],
				"outline-offset": [{ "outline-offset": [
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"outline-w": [{ outline: [
					"",
					isNumber,
					isArbitraryVariableLength,
					isArbitraryLength
				] }],
				"outline-color": [{ outline: scaleColor() }],
				shadow: [{ shadow: [
					"",
					"none",
					themeShadow,
					isArbitraryVariableShadow,
					isArbitraryShadow
				] }],
				"shadow-color": [{ shadow: scaleColor() }],
				"inset-shadow": [{ "inset-shadow": [
					"none",
					themeInsetShadow,
					isArbitraryVariableShadow,
					isArbitraryShadow
				] }],
				"inset-shadow-color": [{ "inset-shadow": scaleColor() }],
				"ring-w": [{ ring: scaleBorderWidth() }],
				"ring-w-inset": ["ring-inset"],
				"ring-color": [{ ring: scaleColor() }],
				"ring-offset-w": [{ "ring-offset": [isNumber, isArbitraryLength] }],
				"ring-offset-color": [{ "ring-offset": scaleColor() }],
				"inset-ring-w": [{ "inset-ring": scaleBorderWidth() }],
				"inset-ring-color": [{ "inset-ring": scaleColor() }],
				"text-shadow": [{ "text-shadow": [
					"none",
					themeTextShadow,
					isArbitraryVariableShadow,
					isArbitraryShadow
				] }],
				"text-shadow-color": [{ "text-shadow": scaleColor() }],
				opacity: [{ opacity: [
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"mix-blend": [{ "mix-blend": [
					...scaleBlendMode(),
					"plus-darker",
					"plus-lighter"
				] }],
				"bg-blend": [{ "bg-blend": scaleBlendMode() }],
				"mask-clip": [{ "mask-clip": [
					"border",
					"padding",
					"content",
					"fill",
					"stroke",
					"view"
				] }, "mask-no-clip"],
				"mask-composite": [{ mask: [
					"add",
					"subtract",
					"intersect",
					"exclude"
				] }],
				"mask-image-linear-pos": [{ "mask-linear": [isNumber] }],
				"mask-image-linear-from-pos": [{ "mask-linear-from": scaleMaskImagePosition() }],
				"mask-image-linear-to-pos": [{ "mask-linear-to": scaleMaskImagePosition() }],
				"mask-image-linear-from-color": [{ "mask-linear-from": scaleColor() }],
				"mask-image-linear-to-color": [{ "mask-linear-to": scaleColor() }],
				"mask-image-t-from-pos": [{ "mask-t-from": scaleMaskImagePosition() }],
				"mask-image-t-to-pos": [{ "mask-t-to": scaleMaskImagePosition() }],
				"mask-image-t-from-color": [{ "mask-t-from": scaleColor() }],
				"mask-image-t-to-color": [{ "mask-t-to": scaleColor() }],
				"mask-image-r-from-pos": [{ "mask-r-from": scaleMaskImagePosition() }],
				"mask-image-r-to-pos": [{ "mask-r-to": scaleMaskImagePosition() }],
				"mask-image-r-from-color": [{ "mask-r-from": scaleColor() }],
				"mask-image-r-to-color": [{ "mask-r-to": scaleColor() }],
				"mask-image-b-from-pos": [{ "mask-b-from": scaleMaskImagePosition() }],
				"mask-image-b-to-pos": [{ "mask-b-to": scaleMaskImagePosition() }],
				"mask-image-b-from-color": [{ "mask-b-from": scaleColor() }],
				"mask-image-b-to-color": [{ "mask-b-to": scaleColor() }],
				"mask-image-l-from-pos": [{ "mask-l-from": scaleMaskImagePosition() }],
				"mask-image-l-to-pos": [{ "mask-l-to": scaleMaskImagePosition() }],
				"mask-image-l-from-color": [{ "mask-l-from": scaleColor() }],
				"mask-image-l-to-color": [{ "mask-l-to": scaleColor() }],
				"mask-image-x-from-pos": [{ "mask-x-from": scaleMaskImagePosition() }],
				"mask-image-x-to-pos": [{ "mask-x-to": scaleMaskImagePosition() }],
				"mask-image-x-from-color": [{ "mask-x-from": scaleColor() }],
				"mask-image-x-to-color": [{ "mask-x-to": scaleColor() }],
				"mask-image-y-from-pos": [{ "mask-y-from": scaleMaskImagePosition() }],
				"mask-image-y-to-pos": [{ "mask-y-to": scaleMaskImagePosition() }],
				"mask-image-y-from-color": [{ "mask-y-from": scaleColor() }],
				"mask-image-y-to-color": [{ "mask-y-to": scaleColor() }],
				"mask-image-radial": [{ "mask-radial": [isArbitraryVariable, isArbitraryValue] }],
				"mask-image-radial-from-pos": [{ "mask-radial-from": scaleMaskImagePosition() }],
				"mask-image-radial-to-pos": [{ "mask-radial-to": scaleMaskImagePosition() }],
				"mask-image-radial-from-color": [{ "mask-radial-from": scaleColor() }],
				"mask-image-radial-to-color": [{ "mask-radial-to": scaleColor() }],
				"mask-image-radial-shape": [{ "mask-radial": ["circle", "ellipse"] }],
				"mask-image-radial-size": [{ "mask-radial": [{
					closest: ["side", "corner"],
					farthest: ["side", "corner"]
				}] }],
				"mask-image-radial-pos": [{ "mask-radial-at": scalePosition() }],
				"mask-image-conic-pos": [{ "mask-conic": [isNumber] }],
				"mask-image-conic-from-pos": [{ "mask-conic-from": scaleMaskImagePosition() }],
				"mask-image-conic-to-pos": [{ "mask-conic-to": scaleMaskImagePosition() }],
				"mask-image-conic-from-color": [{ "mask-conic-from": scaleColor() }],
				"mask-image-conic-to-color": [{ "mask-conic-to": scaleColor() }],
				"mask-mode": [{ mask: [
					"alpha",
					"luminance",
					"match"
				] }],
				"mask-origin": [{ "mask-origin": [
					"border",
					"padding",
					"content",
					"fill",
					"stroke",
					"view"
				] }],
				"mask-position": [{ mask: scaleBgPosition() }],
				"mask-repeat": [{ mask: scaleBgRepeat() }],
				"mask-size": [{ mask: scaleBgSize() }],
				"mask-type": [{ "mask-type": ["alpha", "luminance"] }],
				"mask-image": [{ mask: [
					"none",
					isArbitraryVariable,
					isArbitraryValue
				] }],
				filter: [{ filter: [
					"",
					"none",
					isArbitraryVariable,
					isArbitraryValue
				] }],
				blur: [{ blur: scaleBlur() }],
				brightness: [{ brightness: [
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				contrast: [{ contrast: [
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"drop-shadow": [{ "drop-shadow": [
					"",
					"none",
					themeDropShadow,
					isArbitraryVariableShadow,
					isArbitraryShadow
				] }],
				"drop-shadow-color": [{ "drop-shadow": scaleColor() }],
				grayscale: [{ grayscale: [
					"",
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"hue-rotate": [{ "hue-rotate": [
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				invert: [{ invert: [
					"",
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				saturate: [{ saturate: [
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				sepia: [{ sepia: [
					"",
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"backdrop-filter": [{ "backdrop-filter": [
					"",
					"none",
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"backdrop-blur": [{ "backdrop-blur": scaleBlur() }],
				"backdrop-brightness": [{ "backdrop-brightness": [
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"backdrop-contrast": [{ "backdrop-contrast": [
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"backdrop-grayscale": [{ "backdrop-grayscale": [
					"",
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"backdrop-hue-rotate": [{ "backdrop-hue-rotate": [
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"backdrop-invert": [{ "backdrop-invert": [
					"",
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"backdrop-opacity": [{ "backdrop-opacity": [
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"backdrop-saturate": [{ "backdrop-saturate": [
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"backdrop-sepia": [{ "backdrop-sepia": [
					"",
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"border-collapse": [{ border: ["collapse", "separate"] }],
				"border-spacing": [{ "border-spacing": scaleUnambiguousSpacing() }],
				"border-spacing-x": [{ "border-spacing-x": scaleUnambiguousSpacing() }],
				"border-spacing-y": [{ "border-spacing-y": scaleUnambiguousSpacing() }],
				"table-layout": [{ table: ["auto", "fixed"] }],
				caption: [{ caption: ["top", "bottom"] }],
				transition: [{ transition: [
					"",
					"all",
					"colors",
					"opacity",
					"shadow",
					"transform",
					"none",
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"transition-behavior": [{ transition: ["normal", "discrete"] }],
				duration: [{ duration: [
					isNumber,
					"initial",
					isArbitraryVariable,
					isArbitraryValue
				] }],
				ease: [{ ease: [
					"linear",
					"initial",
					themeEase,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				delay: [{ delay: [
					isNumber,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				animate: [{ animate: [
					"none",
					themeAnimate,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				backface: [{ backface: ["hidden", "visible"] }],
				perspective: [{ perspective: [
					themePerspective,
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"perspective-origin": [{ "perspective-origin": scalePositionWithArbitrary() }],
				rotate: [{ rotate: scaleRotate() }],
				"rotate-x": [{ "rotate-x": scaleRotate() }],
				"rotate-y": [{ "rotate-y": scaleRotate() }],
				"rotate-z": [{ "rotate-z": scaleRotate() }],
				scale: [{ scale: scaleScale() }],
				"scale-x": [{ "scale-x": scaleScale() }],
				"scale-y": [{ "scale-y": scaleScale() }],
				"scale-z": [{ "scale-z": scaleScale() }],
				"scale-3d": ["scale-3d"],
				skew: [{ skew: scaleSkew() }],
				"skew-x": [{ "skew-x": scaleSkew() }],
				"skew-y": [{ "skew-y": scaleSkew() }],
				transform: [{ transform: [
					isArbitraryVariable,
					isArbitraryValue,
					"",
					"none",
					"gpu",
					"cpu"
				] }],
				"transform-origin": [{ origin: scalePositionWithArbitrary() }],
				"transform-style": [{ transform: ["3d", "flat"] }],
				translate: [{ translate: scaleTranslate() }],
				"translate-x": [{ "translate-x": scaleTranslate() }],
				"translate-y": [{ "translate-y": scaleTranslate() }],
				"translate-z": [{ "translate-z": scaleTranslate() }],
				"translate-none": ["translate-none"],
				accent: [{ accent: scaleColor() }],
				appearance: [{ appearance: ["none", "auto"] }],
				"caret-color": [{ caret: scaleColor() }],
				"color-scheme": [{ scheme: [
					"normal",
					"dark",
					"light",
					"light-dark",
					"only-dark",
					"only-light"
				] }],
				cursor: [{ cursor: [
					"auto",
					"default",
					"pointer",
					"wait",
					"text",
					"move",
					"help",
					"not-allowed",
					"none",
					"context-menu",
					"progress",
					"cell",
					"crosshair",
					"vertical-text",
					"alias",
					"copy",
					"no-drop",
					"grab",
					"grabbing",
					"all-scroll",
					"col-resize",
					"row-resize",
					"n-resize",
					"e-resize",
					"s-resize",
					"w-resize",
					"ne-resize",
					"nw-resize",
					"se-resize",
					"sw-resize",
					"ew-resize",
					"ns-resize",
					"nesw-resize",
					"nwse-resize",
					"zoom-in",
					"zoom-out",
					isArbitraryVariable,
					isArbitraryValue
				] }],
				"field-sizing": [{ "field-sizing": ["fixed", "content"] }],
				"pointer-events": [{ "pointer-events": ["auto", "none"] }],
				resize: [{ resize: [
					"none",
					"",
					"y",
					"x"
				] }],
				"scroll-behavior": [{ scroll: ["auto", "smooth"] }],
				"scroll-m": [{ "scroll-m": scaleUnambiguousSpacing() }],
				"scroll-mx": [{ "scroll-mx": scaleUnambiguousSpacing() }],
				"scroll-my": [{ "scroll-my": scaleUnambiguousSpacing() }],
				"scroll-ms": [{ "scroll-ms": scaleUnambiguousSpacing() }],
				"scroll-me": [{ "scroll-me": scaleUnambiguousSpacing() }],
				"scroll-mt": [{ "scroll-mt": scaleUnambiguousSpacing() }],
				"scroll-mr": [{ "scroll-mr": scaleUnambiguousSpacing() }],
				"scroll-mb": [{ "scroll-mb": scaleUnambiguousSpacing() }],
				"scroll-ml": [{ "scroll-ml": scaleUnambiguousSpacing() }],
				"scroll-p": [{ "scroll-p": scaleUnambiguousSpacing() }],
				"scroll-px": [{ "scroll-px": scaleUnambiguousSpacing() }],
				"scroll-py": [{ "scroll-py": scaleUnambiguousSpacing() }],
				"scroll-ps": [{ "scroll-ps": scaleUnambiguousSpacing() }],
				"scroll-pe": [{ "scroll-pe": scaleUnambiguousSpacing() }],
				"scroll-pt": [{ "scroll-pt": scaleUnambiguousSpacing() }],
				"scroll-pr": [{ "scroll-pr": scaleUnambiguousSpacing() }],
				"scroll-pb": [{ "scroll-pb": scaleUnambiguousSpacing() }],
				"scroll-pl": [{ "scroll-pl": scaleUnambiguousSpacing() }],
				"snap-align": [{ snap: [
					"start",
					"end",
					"center",
					"align-none"
				] }],
				"snap-stop": [{ snap: ["normal", "always"] }],
				"snap-type": [{ snap: [
					"none",
					"x",
					"y",
					"both"
				] }],
				"snap-strictness": [{ snap: ["mandatory", "proximity"] }],
				touch: [{ touch: [
					"auto",
					"none",
					"manipulation"
				] }],
				"touch-x": [{ "touch-pan": [
					"x",
					"left",
					"right"
				] }],
				"touch-y": [{ "touch-pan": [
					"y",
					"up",
					"down"
				] }],
				"touch-pz": ["touch-pinch-zoom"],
				select: [{ select: [
					"none",
					"text",
					"all",
					"auto"
				] }],
				"will-change": [{ "will-change": [
					"auto",
					"scroll",
					"contents",
					"transform",
					isArbitraryVariable,
					isArbitraryValue
				] }],
				fill: [{ fill: ["none", ...scaleColor()] }],
				"stroke-w": [{ stroke: [
					isNumber,
					isArbitraryVariableLength,
					isArbitraryLength,
					isArbitraryNumber
				] }],
				stroke: [{ stroke: ["none", ...scaleColor()] }],
				"forced-color-adjust": [{ "forced-color-adjust": ["auto", "none"] }]
			},
			conflictingClassGroups: {
				overflow: ["overflow-x", "overflow-y"],
				overscroll: ["overscroll-x", "overscroll-y"],
				inset: [
					"inset-x",
					"inset-y",
					"start",
					"end",
					"top",
					"right",
					"bottom",
					"left"
				],
				"inset-x": ["right", "left"],
				"inset-y": ["top", "bottom"],
				flex: [
					"basis",
					"grow",
					"shrink"
				],
				gap: ["gap-x", "gap-y"],
				p: [
					"px",
					"py",
					"ps",
					"pe",
					"pt",
					"pr",
					"pb",
					"pl"
				],
				px: ["pr", "pl"],
				py: ["pt", "pb"],
				m: [
					"mx",
					"my",
					"ms",
					"me",
					"mt",
					"mr",
					"mb",
					"ml"
				],
				mx: ["mr", "ml"],
				my: ["mt", "mb"],
				size: ["w", "h"],
				"font-size": ["leading"],
				"fvn-normal": [
					"fvn-ordinal",
					"fvn-slashed-zero",
					"fvn-figure",
					"fvn-spacing",
					"fvn-fraction"
				],
				"fvn-ordinal": ["fvn-normal"],
				"fvn-slashed-zero": ["fvn-normal"],
				"fvn-figure": ["fvn-normal"],
				"fvn-spacing": ["fvn-normal"],
				"fvn-fraction": ["fvn-normal"],
				"line-clamp": ["display", "overflow"],
				rounded: [
					"rounded-s",
					"rounded-e",
					"rounded-t",
					"rounded-r",
					"rounded-b",
					"rounded-l",
					"rounded-ss",
					"rounded-se",
					"rounded-ee",
					"rounded-es",
					"rounded-tl",
					"rounded-tr",
					"rounded-br",
					"rounded-bl"
				],
				"rounded-s": ["rounded-ss", "rounded-es"],
				"rounded-e": ["rounded-se", "rounded-ee"],
				"rounded-t": ["rounded-tl", "rounded-tr"],
				"rounded-r": ["rounded-tr", "rounded-br"],
				"rounded-b": ["rounded-br", "rounded-bl"],
				"rounded-l": ["rounded-tl", "rounded-bl"],
				"border-spacing": ["border-spacing-x", "border-spacing-y"],
				"border-w": [
					"border-w-x",
					"border-w-y",
					"border-w-s",
					"border-w-e",
					"border-w-t",
					"border-w-r",
					"border-w-b",
					"border-w-l"
				],
				"border-w-x": ["border-w-r", "border-w-l"],
				"border-w-y": ["border-w-t", "border-w-b"],
				"border-color": [
					"border-color-x",
					"border-color-y",
					"border-color-s",
					"border-color-e",
					"border-color-t",
					"border-color-r",
					"border-color-b",
					"border-color-l"
				],
				"border-color-x": ["border-color-r", "border-color-l"],
				"border-color-y": ["border-color-t", "border-color-b"],
				translate: [
					"translate-x",
					"translate-y",
					"translate-none"
				],
				"translate-none": [
					"translate",
					"translate-x",
					"translate-y",
					"translate-z"
				],
				"scroll-m": [
					"scroll-mx",
					"scroll-my",
					"scroll-ms",
					"scroll-me",
					"scroll-mt",
					"scroll-mr",
					"scroll-mb",
					"scroll-ml"
				],
				"scroll-mx": ["scroll-mr", "scroll-ml"],
				"scroll-my": ["scroll-mt", "scroll-mb"],
				"scroll-p": [
					"scroll-px",
					"scroll-py",
					"scroll-ps",
					"scroll-pe",
					"scroll-pt",
					"scroll-pr",
					"scroll-pb",
					"scroll-pl"
				],
				"scroll-px": ["scroll-pr", "scroll-pl"],
				"scroll-py": ["scroll-pt", "scroll-pb"],
				touch: [
					"touch-x",
					"touch-y",
					"touch-pz"
				],
				"touch-x": ["touch"],
				"touch-y": ["touch"],
				"touch-pz": ["touch"]
			},
			conflictingClassGroupModifiers: { "font-size": ["leading"] },
			orderSensitiveModifiers: [
				"*",
				"**",
				"after",
				"backdrop",
				"before",
				"details-content",
				"file",
				"first-letter",
				"first-line",
				"marker",
				"placeholder",
				"selection"
			]
		};
	};
	mergeConfigs = (baseConfig, { cacheSize, prefix, experimentalParseClassName, extend = {}, override = {} }) => {
		overrideProperty(baseConfig, "cacheSize", cacheSize);
		overrideProperty(baseConfig, "prefix", prefix);
		overrideProperty(baseConfig, "experimentalParseClassName", experimentalParseClassName);
		overrideConfigProperties(baseConfig.theme, override.theme);
		overrideConfigProperties(baseConfig.classGroups, override.classGroups);
		overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);
		overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);
		overrideProperty(baseConfig, "orderSensitiveModifiers", override.orderSensitiveModifiers);
		mergeConfigProperties(baseConfig.theme, extend.theme);
		mergeConfigProperties(baseConfig.classGroups, extend.classGroups);
		mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);
		mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);
		mergeArrayProperties(baseConfig, extend, "orderSensitiveModifiers");
		return baseConfig;
	};
	overrideProperty = (baseObject, overrideKey, overrideValue) => {
		if (overrideValue !== undefined) {
			baseObject[overrideKey] = overrideValue;
		}
	};
	overrideConfigProperties = (baseObject, overrideObject) => {
		if (overrideObject) {
			for (const key in overrideObject) {
				overrideProperty(baseObject, key, overrideObject[key]);
			}
		}
	};
	mergeConfigProperties = (baseObject, mergeObject) => {
		if (mergeObject) {
			for (const key in mergeObject) {
				mergeArrayProperties(baseObject, mergeObject, key);
			}
		}
	};
	mergeArrayProperties = (baseObject, mergeObject, key) => {
		const mergeValue = mergeObject[key];
		if (mergeValue !== undefined) {
			baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;
		}
	};
	extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === "function" ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);
	twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
}));

//#endregion
//#region node_modules/tailwind-variants/dist/index.js
var createTwMerge, executeMerge, cn, cnMerge, createTV, tv;
var init_dist$1 = __esmMin((() => {
	init_chunk_RZF76H2U();
	init_chunk_LQJYWU4O();
	init_bundle_mjs();
	createTwMerge = (cachedTwMergeConfig) => {
		return isEmptyObject(cachedTwMergeConfig) ? twMerge : extendTailwindMerge({
			...cachedTwMergeConfig,
			extend: {
				theme: cachedTwMergeConfig.theme,
				classGroups: cachedTwMergeConfig.classGroups,
				conflictingClassGroupModifiers: cachedTwMergeConfig.conflictingClassGroupModifiers,
				conflictingClassGroups: cachedTwMergeConfig.conflictingClassGroups,
				...cachedTwMergeConfig.extend
			}
		});
	};
	executeMerge = (classnames, config) => {
		const base = cx(classnames);
		if (!base || !(config?.twMerge ?? true)) return base;
		if (!state.cachedTwMerge || state.didTwMergeConfigChange) {
			state.didTwMergeConfigChange = false;
			state.cachedTwMerge = createTwMerge(state.cachedTwMergeConfig);
		}
		return state.cachedTwMerge(base) || void 0;
	};
	cn = (...classnames) => {
		return executeMerge(classnames, {});
	};
	cnMerge = (...classnames) => {
		return (config) => executeMerge(classnames, config);
	};
	({createTV, tv} = getTailwindVariants(cnMerge));
}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/dist/component.js
function mergeBaseProps(props) {
	const userProps = props ?? {};
	const className = userProps.className && userProps.className.type === "classname" ? userProps.className : basePropDefinitions.className;
	const children = userProps.children && userProps.children.type === "children" ? userProps.children : basePropDefinitions.children;
	return {
		...userProps,
		className,
		children
	};
}
function getDefaultVariants(def) {
	const defaults = {};
	if (def.variants) {
		for (const [key, value] of Object.entries(def.variants)) {
			defaults[key] = value.default;
		}
	}
	return defaults;
}
function getDefaultProps(def) {
	const defaults = {};
	if (def.variants) {
		for (const [key, value] of Object.entries(def.variants)) {
			defaults[key] = value.default;
		}
	}
	const propDefinitions = mergeBaseProps(def.props);
	for (const [key, value] of Object.entries(propDefinitions)) {
		defaults[key] = value.default;
	}
	return defaults;
}
function defineComponent(definition) {
	const props = { ...definition.props || {} };
	if (definition.slots) {
		for (const slotName of definition.slots) {
			if (slotName !== "base") {
				const propName = `${slotName}ClassName`;
				if (!props[propName]) {
					props[propName] = {
						type: "classname",
						default: undefined,
						description: `Additional CSS classes for the ${slotName} element`
					};
				}
			}
		}
	}
	const propsWithBase = mergeBaseProps(props);
	return {
		...definition,
		props: propsWithBase
	};
}
function styleComponent(_definition, styles$1) {
	return styles$1;
}
function renderComponent(_definition, _styles, render$1) {
	return render$1;
}
function extractVariantProps(props, definition) {
	const variantProps = {};
	if (definition.variants) {
		for (const key of Object.keys(definition.variants)) {
			if (key in props) {
				variantProps[key] = props[key];
			}
		}
	}
	return variantProps;
}
function hasSlots(styles$1) {
	return "slots" in styles$1;
}
function createComponent(definition, styles$1, render$1) {
	const tvConfig = {
		...styles$1,
		defaultVariants: styles$1.defaultVariants || getDefaultVariants(definition)
	};
	const tvInstance = tv(tvConfig);
	const component = fc((props) => {
		const propsWithDefaults = {
			...getDefaultProps(definition),
			...props
		};
		if (hasSlots(styles$1)) {
			const variantProps = extractVariantProps(propsWithDefaults, definition);
			const slots = tvInstance({ ...variantProps });
			const slotFunctions = {};
			for (const [slotName, slotFn] of Object.entries(slots)) {
				slotFunctions[slotName] = (overrides) => {
					const slotClassNameProp = slotName === "base" ? propsWithDefaults.className : propsWithDefaults[`${slotName}ClassName`];
					const classOverride = overrides?.class || overrides?.className || slotClassNameProp;
					return slotFn({ class: classOverride });
				};
			}
			const typedRender = render$1;
			return typedRender(propsWithDefaults, slotFunctions);
		} else {
			const className = (overrides) => {
				const variantProps = extractVariantProps(propsWithDefaults, definition);
				const userClassName = overrides || propsWithDefaults.className;
				return String(tvInstance({
					...variantProps,
					class: userClassName
				}));
			};
			const typedRender = render$1;
			return typedRender(propsWithDefaults, className);
		}
	});
	component.__def = definition;
	return component;
}
var basePropDefinitions, ComponentLitBase;
var init_component$1 = __esmMin((() => {
	init_lit();
	init_dist$1();
	init_mini();
	basePropDefinitions = {
		children: {
			type: "children",
			default: undefined,
			description: "Component content"
		},
		className: {
			type: "classname",
			default: undefined,
			description: "Additional CSS classes to apply"
		}
	};
	ComponentLitBase = class extends i {
		createRenderRoot() {
			return this;
		}
		get tvInstance() {
			if (!this._tvInstance) {
				const tvConfig = {
					...this.styles,
					defaultVariants: this.styles.defaultVariants || getDefaultVariants(this.definition)
				};
				this._tvInstance = tv(tvConfig);
			}
			return this._tvInstance;
		}
		connectedCallback() {
			super.connectedCallback();
			const defaults = getDefaultProps(this.definition);
			Object.entries(defaults).forEach(([key, value]) => {
				if (this[key] === undefined) {
					this[key] = value;
				}
			});
		}
		render() {
			if (!this._children && this.childNodes.length > 0) {
				this._children = Array.from(this.childNodes);
			}
			const props = {};
			if (this.definition?.variants) {
				for (const key of Object.keys(this.definition.variants)) {
					props[key] = this[key];
				}
			}
			if (this.definition?.props) {
				for (const key of Object.keys(this.definition.props)) {
					if (key === "children") {
						props[key] = this._children || Array.from(this.childNodes);
					} else {
						props[key] = this[key];
					}
				}
			}
			props.className = this.className;
			if (hasSlots(this.styles)) {
				const variantProps = extractVariantProps(props, this.definition);
				const slotsResult = this.tvInstance({ ...variantProps });
				const slots = typeof slotsResult === "function" ? {} : slotsResult;
				const slotFunctions = {};
				for (const [slotName, slotFn] of Object.entries(slots)) {
					slotFunctions[slotName] = (overrides) => {
						const slotClassNameProp = slotName === "base" ? props.className : props[`${slotName}ClassName`];
						const classOverride = overrides?.class || overrides?.className || slotClassNameProp;
						return slotFn({ class: classOverride });
					};
				}
				const typedRender = this.renderFn;
				return typedRender(props, slotFunctions);
			} else {
				const className = (overrides) => {
					const variantProps = extractVariantProps(props, this.definition);
					const userClassName = overrides || props.className;
					return String(this.tvInstance({
						...variantProps,
						class: userClassName
					}));
				};
				const typedRender = this.renderFn;
				return typedRender(props, className);
			}
		}
	};
}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/dist/i18n.js
/**
* Set custom translations for your app
*
* @example
* import { setTranslations } from '@mariozechner/mini-lit';
*
* // Your messages must include all MiniLitRequiredMessages
* const myTranslations = {
*   en: {
*     // Required mini-lit messages
*     "Copy": "Copy",
*     "Copied!": "Copied!",
*     // ... all other required messages
*
*     // Your app messages
*     "Welcome": "Welcome",
*     "Settings": "Settings",
*   },
*   de: {
*     // Required mini-lit messages
*     "Copy": "Kopieren",
*     "Copied!": "Kopiert!",
*     // ... all other required messages
*
*     // Your app messages
*     "Welcome": "Willkommen",
*     "Settings": "Einstellungen",
*   }
* };
*
* setTranslations(myTranslations);
*/
function setTranslations(customTranslations) {
	userTranslations = customTranslations;
	translations$1 = customTranslations;
}
/**
* Get current translations
*/
function getTranslations() {
	return translations$1;
}
function getCurrentLanguage() {
	const stored = localStorage.getItem("language");
	if (stored && translations$1[stored]) {
		return stored;
	}
	const userLocale = navigator.language || navigator.userLanguage;
	const languageCode = userLocale ? userLocale.split("-")[0] : "en";
	return translations$1[languageCode] ? languageCode : "en";
}
function setLanguage(code) {
	localStorage.setItem("language", code);
	window.location.reload();
}
function i18n(categoryOrKey, key) {
	const languageCode = getCurrentLanguage();
	const implementation = translations$1[languageCode] || translations$1.en;
	if (key === undefined) {
		const value = implementation[categoryOrKey];
		if (!value) {
			if (typeof value === "function") {
				return value;
			}
			console.error(`Unknown i18n key: ${categoryOrKey}`);
			return categoryOrKey;
		}
		return value;
	} else {
		const category = implementation[categoryOrKey];
		if (!category || typeof category !== "object") {
			console.error(`Unknown i18n category: ${categoryOrKey}`);
			return key;
		}
		const value = category[key];
		if (!value) {
			console.error(`Unknown i18n key: ${categoryOrKey}.${key}`);
			return key;
		}
		return value;
	}
}
var defaultEnglish, defaultGerman, userTranslations, translations$1, i18n_default;
var init_i18n$1 = __esmMin((() => {
	defaultEnglish = {
		"*": "*",
		Copy: "Copy",
		"Copy code": "Copy code",
		"Copied!": "Copied!",
		Download: "Download",
		Close: "Close",
		Preview: "Preview",
		Code: "Code",
		"Loading...": "Loading...",
		"Select an option": "Select an option",
		"Mode 1": "Mode 1",
		"Mode 2": "Mode 2",
		Required: "Required",
		Optional: "Optional",
		"Input Required": "Input Required",
		Cancel: "Cancel",
		Confirm: "Confirm"
	};
	defaultGerman = {
		"*": "*",
		Copy: "Kopieren",
		"Copy code": "Code kopieren",
		"Copied!": "Kopiert!",
		Download: "Herunterladen",
		Close: "Schließen",
		Preview: "Vorschau",
		Code: "Code",
		"Loading...": "Laden...",
		"Select an option": "Option auswählen",
		"Mode 1": "Modus 1",
		"Mode 2": "Modus 2",
		Required: "Erforderlich",
		Optional: "Optional",
		"Input Required": "Eingabe erforderlich",
		Cancel: "Abbrechen",
		Confirm: "Bestätigen"
	};
	userTranslations = null;
	translations$1 = {
		en: defaultEnglish,
		de: defaultGerman
	};
	i18n_default = i18n;
}));

//#endregion
//#region node_modules/lit-html/directives/unsafe-html.js
var e$3, o;
var init_unsafe_html$1 = __esmMin((() => {
	init_lit_html();
	init_directive();
	e$3 = class extends i$2 {
		constructor(i$7) {
			if (super(i$7), this.it = E$1, i$7.type !== t$1.CHILD) throw Error(this.constructor.directiveName + "() can only be used in child bindings");
		}
		render(r$10) {
			if (r$10 === E$1 || null == r$10) return this._t = void 0, this.it = r$10;
			if (r$10 === T$2) return r$10;
			if ("string" != typeof r$10) throw Error(this.constructor.directiveName + "() called with a non-string value");
			if (r$10 === this.it) return this._t;
			this.it = r$10;
			const s$5 = [r$10];
			return s$5.raw = s$5, this._t = {
				_$litType$: this.constructor.resultType,
				strings: s$5,
				values: []
			};
		}
	};
	e$3.directiveName = "unsafeHTML", e$3.resultType = 1;
	o = e$2(e$3);
}));

//#endregion
//#region node_modules/lit/directives/unsafe-html.js
var init_unsafe_html = __esmMin((() => {
	init_unsafe_html$1();
}));

//#endregion
//#region node_modules/lucide/dist/esm/defaultAttributes.js
var defaultAttributes;
var init_defaultAttributes = __esmMin((() => {
	defaultAttributes = {
		xmlns: "http://www.w3.org/2000/svg",
		width: 24,
		height: 24,
		viewBox: "0 0 24 24",
		fill: "none",
		stroke: "currentColor",
		"stroke-width": 2,
		"stroke-linecap": "round",
		"stroke-linejoin": "round"
	};
}));

//#endregion
//#region node_modules/lucide/dist/esm/createElement.js
var createSVGElement, createElement;
var init_createElement = __esmMin((() => {
	init_defaultAttributes();
	createSVGElement = ([tag, attrs, children]) => {
		const element = document.createElementNS("http://www.w3.org/2000/svg", tag);
		Object.keys(attrs).forEach((name) => {
			element.setAttribute(name, String(attrs[name]));
		});
		if (children?.length) {
			children.forEach((child) => {
				const childElement = createSVGElement(child);
				element.appendChild(childElement);
			});
		}
		return element;
	};
	createElement = (iconNode, customAttrs = {}) => {
		const tag = "svg";
		const attrs = {
			...defaultAttributes,
			...customAttrs
		};
		return createSVGElement([
			tag,
			attrs,
			iconNode
		]);
	};
}));

//#endregion
//#region node_modules/lucide/dist/esm/replaceElement.js
var getAttrs, getClassNames, combineClassNames, toPascalCase, replaceElement;
var init_replaceElement = __esmMin((() => {
	init_createElement();
	init_defaultAttributes();
	getAttrs = (element) => Array.from(element.attributes).reduce((attrs, attr) => {
		attrs[attr.name] = attr.value;
		return attrs;
	}, {});
	getClassNames = (attrs) => {
		if (typeof attrs === "string") return attrs;
		if (!attrs || !attrs.class) return "";
		if (attrs.class && typeof attrs.class === "string") {
			return attrs.class.split(" ");
		}
		if (attrs.class && Array.isArray(attrs.class)) {
			return attrs.class;
		}
		return "";
	};
	combineClassNames = (arrayOfClassnames) => {
		const classNameArray = arrayOfClassnames.flatMap(getClassNames);
		return classNameArray.map((classItem) => classItem.trim()).filter(Boolean).filter((value, index, self$1) => self$1.indexOf(value) === index).join(" ");
	};
	toPascalCase = (string) => string.replace(/(\w)(\w*)(_|-|\s*)/g, (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase());
	replaceElement = (element, { nameAttr, icons, attrs }) => {
		const iconName = element.getAttribute(nameAttr);
		if (iconName == null) return;
		const ComponentName = toPascalCase(iconName);
		const iconNode = icons[ComponentName];
		if (!iconNode) {
			return console.warn(`${element.outerHTML} icon name was not found in the provided icons object.`);
		}
		const elementAttrs = getAttrs(element);
		const iconAttrs = {
			...defaultAttributes,
			"data-lucide": iconName,
			...attrs,
			...elementAttrs
		};
		const classNames = combineClassNames([
			"lucide",
			`lucide-${iconName}`,
			elementAttrs,
			attrs
		]);
		if (classNames) {
			Object.assign(iconAttrs, { class: classNames });
		}
		const svgElement = createElement(iconNode, iconAttrs);
		return element.parentNode?.replaceChild(svgElement, element);
	};
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/a-arrow-down.js
var AArrowDown;
var init_a_arrow_down = __esmMin((() => {
	AArrowDown = [
		["path", { d: "m14 12 4 4 4-4" }],
		["path", { d: "M18 16V7" }],
		["path", { d: "m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16" }],
		["path", { d: "M3.304 13h6.392" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/a-arrow-up.js
var AArrowUp;
var init_a_arrow_up = __esmMin((() => {
	AArrowUp = [
		["path", { d: "m14 11 4-4 4 4" }],
		["path", { d: "M18 16V7" }],
		["path", { d: "m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16" }],
		["path", { d: "M3.304 13h6.392" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/a-large-small.js
var ALargeSmall;
var init_a_large_small = __esmMin((() => {
	ALargeSmall = [
		["path", { d: "m15 16 2.536-7.328a1.02 1.02 1 0 1 1.928 0L22 16" }],
		["path", { d: "M15.697 14h5.606" }],
		["path", { d: "m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16" }],
		["path", { d: "M3.304 13h6.392" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/accessibility.js
var Accessibility;
var init_accessibility = __esmMin((() => {
	Accessibility = [
		["circle", {
			cx: "16",
			cy: "4",
			r: "1"
		}],
		["path", { d: "m18 19 1-7-6 1" }],
		["path", { d: "m5 8 3-3 5.5 3-2.36 3.5" }],
		["path", { d: "M4.24 14.5a5 5 0 0 0 6.88 6" }],
		["path", { d: "M13.76 17.5a5 5 0 0 0-6.88-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/activity.js
var Activity;
var init_activity = __esmMin((() => {
	Activity = [["path", { d: "M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/air-vent.js
var AirVent;
var init_air_vent = __esmMin((() => {
	AirVent = [
		["path", { d: "M18 17.5a2.5 2.5 0 1 1-4 2.03V12" }],
		["path", { d: "M6 12H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2" }],
		["path", { d: "M6 8h12" }],
		["path", { d: "M6.6 15.572A2 2 0 1 0 10 17v-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/airplay.js
var Airplay;
var init_airplay = __esmMin((() => {
	Airplay = [["path", { d: "M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1" }], ["path", { d: "m12 15 5 6H7Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/alarm-clock-check.js
var AlarmClockCheck;
var init_alarm_clock_check = __esmMin((() => {
	AlarmClockCheck = [
		["circle", {
			cx: "12",
			cy: "13",
			r: "8"
		}],
		["path", { d: "M5 3 2 6" }],
		["path", { d: "m22 6-3-3" }],
		["path", { d: "M6.38 18.7 4 21" }],
		["path", { d: "M17.64 18.67 20 21" }],
		["path", { d: "m9 13 2 2 4-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/alarm-clock-minus.js
var AlarmClockMinus;
var init_alarm_clock_minus = __esmMin((() => {
	AlarmClockMinus = [
		["circle", {
			cx: "12",
			cy: "13",
			r: "8"
		}],
		["path", { d: "M5 3 2 6" }],
		["path", { d: "m22 6-3-3" }],
		["path", { d: "M6.38 18.7 4 21" }],
		["path", { d: "M17.64 18.67 20 21" }],
		["path", { d: "M9 13h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/alarm-clock-off.js
var AlarmClockOff;
var init_alarm_clock_off = __esmMin((() => {
	AlarmClockOff = [
		["path", { d: "M6.87 6.87a8 8 0 1 0 11.26 11.26" }],
		["path", { d: "M19.9 14.25a8 8 0 0 0-9.15-9.15" }],
		["path", { d: "m22 6-3-3" }],
		["path", { d: "M6.26 18.67 4 21" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M4 4 2 6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/alarm-clock-plus.js
var AlarmClockPlus;
var init_alarm_clock_plus = __esmMin((() => {
	AlarmClockPlus = [
		["circle", {
			cx: "12",
			cy: "13",
			r: "8"
		}],
		["path", { d: "M5 3 2 6" }],
		["path", { d: "m22 6-3-3" }],
		["path", { d: "M6.38 18.7 4 21" }],
		["path", { d: "M17.64 18.67 20 21" }],
		["path", { d: "M12 10v6" }],
		["path", { d: "M9 13h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/alarm-clock.js
var AlarmClock;
var init_alarm_clock = __esmMin((() => {
	AlarmClock = [
		["circle", {
			cx: "12",
			cy: "13",
			r: "8"
		}],
		["path", { d: "M12 9v4l2 2" }],
		["path", { d: "M5 3 2 6" }],
		["path", { d: "m22 6-3-3" }],
		["path", { d: "M6.38 18.7 4 21" }],
		["path", { d: "M17.64 18.67 20 21" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/alarm-smoke.js
var AlarmSmoke;
var init_alarm_smoke = __esmMin((() => {
	AlarmSmoke = [
		["path", { d: "M11 21c0-2.5 2-2.5 2-5" }],
		["path", { d: "M16 21c0-2.5 2-2.5 2-5" }],
		["path", { d: "m19 8-.8 3a1.25 1.25 0 0 1-1.2 1H7a1.25 1.25 0 0 1-1.2-1L5 8" }],
		["path", { d: "M21 3a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a1 1 0 0 1 1-1z" }],
		["path", { d: "M6 21c0-2.5 2-2.5 2-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/album.js
var Album;
var init_album = __esmMin((() => {
	Album = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2",
		ry: "2"
	}], ["polyline", { points: "11 3 11 11 14 8 17 11 17 3" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-center-horizontal.js
var AlignCenterHorizontal;
var init_align_center_horizontal = __esmMin((() => {
	AlignCenterHorizontal = [
		["path", { d: "M2 12h20" }],
		["path", { d: "M10 16v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-4" }],
		["path", { d: "M10 8V4a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v4" }],
		["path", { d: "M20 16v1a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-1" }],
		["path", { d: "M14 8V7c0-1.1.9-2 2-2h2a2 2 0 0 1 2 2v1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-center-vertical.js
var AlignCenterVertical;
var init_align_center_vertical = __esmMin((() => {
	AlignCenterVertical = [
		["path", { d: "M12 2v20" }],
		["path", { d: "M8 10H4a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h4" }],
		["path", { d: "M16 10h4a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-4" }],
		["path", { d: "M8 20H7a2 2 0 0 1-2-2v-2c0-1.1.9-2 2-2h1" }],
		["path", { d: "M16 14h1a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-end-horizontal.js
var AlignEndHorizontal;
var init_align_end_horizontal = __esmMin((() => {
	AlignEndHorizontal = [
		["rect", {
			width: "6",
			height: "16",
			x: "4",
			y: "2",
			rx: "2"
		}],
		["rect", {
			width: "6",
			height: "9",
			x: "14",
			y: "9",
			rx: "2"
		}],
		["path", { d: "M22 22H2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-end-vertical.js
var AlignEndVertical;
var init_align_end_vertical = __esmMin((() => {
	AlignEndVertical = [
		["rect", {
			width: "16",
			height: "6",
			x: "2",
			y: "4",
			rx: "2"
		}],
		["rect", {
			width: "9",
			height: "6",
			x: "9",
			y: "14",
			rx: "2"
		}],
		["path", { d: "M22 22V2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-horizontal-distribute-center.js
var AlignHorizontalDistributeCenter;
var init_align_horizontal_distribute_center = __esmMin((() => {
	AlignHorizontalDistributeCenter = [
		["rect", {
			width: "6",
			height: "14",
			x: "4",
			y: "5",
			rx: "2"
		}],
		["rect", {
			width: "6",
			height: "10",
			x: "14",
			y: "7",
			rx: "2"
		}],
		["path", { d: "M17 22v-5" }],
		["path", { d: "M17 7V2" }],
		["path", { d: "M7 22v-3" }],
		["path", { d: "M7 5V2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-horizontal-distribute-end.js
var AlignHorizontalDistributeEnd;
var init_align_horizontal_distribute_end = __esmMin((() => {
	AlignHorizontalDistributeEnd = [
		["rect", {
			width: "6",
			height: "14",
			x: "4",
			y: "5",
			rx: "2"
		}],
		["rect", {
			width: "6",
			height: "10",
			x: "14",
			y: "7",
			rx: "2"
		}],
		["path", { d: "M10 2v20" }],
		["path", { d: "M20 2v20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-horizontal-justify-center.js
var AlignHorizontalJustifyCenter;
var init_align_horizontal_justify_center = __esmMin((() => {
	AlignHorizontalJustifyCenter = [
		["rect", {
			width: "6",
			height: "14",
			x: "2",
			y: "5",
			rx: "2"
		}],
		["rect", {
			width: "6",
			height: "10",
			x: "16",
			y: "7",
			rx: "2"
		}],
		["path", { d: "M12 2v20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-horizontal-distribute-start.js
var AlignHorizontalDistributeStart;
var init_align_horizontal_distribute_start = __esmMin((() => {
	AlignHorizontalDistributeStart = [
		["rect", {
			width: "6",
			height: "14",
			x: "4",
			y: "5",
			rx: "2"
		}],
		["rect", {
			width: "6",
			height: "10",
			x: "14",
			y: "7",
			rx: "2"
		}],
		["path", { d: "M4 2v20" }],
		["path", { d: "M14 2v20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-horizontal-justify-end.js
var AlignHorizontalJustifyEnd;
var init_align_horizontal_justify_end = __esmMin((() => {
	AlignHorizontalJustifyEnd = [
		["rect", {
			width: "6",
			height: "14",
			x: "2",
			y: "5",
			rx: "2"
		}],
		["rect", {
			width: "6",
			height: "10",
			x: "12",
			y: "7",
			rx: "2"
		}],
		["path", { d: "M22 2v20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-horizontal-space-around.js
var AlignHorizontalSpaceAround;
var init_align_horizontal_space_around = __esmMin((() => {
	AlignHorizontalSpaceAround = [
		["rect", {
			width: "6",
			height: "10",
			x: "9",
			y: "7",
			rx: "2"
		}],
		["path", { d: "M4 22V2" }],
		["path", { d: "M20 22V2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-horizontal-justify-start.js
var AlignHorizontalJustifyStart;
var init_align_horizontal_justify_start = __esmMin((() => {
	AlignHorizontalJustifyStart = [
		["rect", {
			width: "6",
			height: "14",
			x: "6",
			y: "5",
			rx: "2"
		}],
		["rect", {
			width: "6",
			height: "10",
			x: "16",
			y: "7",
			rx: "2"
		}],
		["path", { d: "M2 2v20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-horizontal-space-between.js
var AlignHorizontalSpaceBetween;
var init_align_horizontal_space_between = __esmMin((() => {
	AlignHorizontalSpaceBetween = [
		["rect", {
			width: "6",
			height: "14",
			x: "3",
			y: "5",
			rx: "2"
		}],
		["rect", {
			width: "6",
			height: "10",
			x: "15",
			y: "7",
			rx: "2"
		}],
		["path", { d: "M3 2v20" }],
		["path", { d: "M21 2v20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-start-horizontal.js
var AlignStartHorizontal;
var init_align_start_horizontal = __esmMin((() => {
	AlignStartHorizontal = [
		["rect", {
			width: "6",
			height: "16",
			x: "4",
			y: "6",
			rx: "2"
		}],
		["rect", {
			width: "6",
			height: "9",
			x: "14",
			y: "6",
			rx: "2"
		}],
		["path", { d: "M22 2H2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-start-vertical.js
var AlignStartVertical;
var init_align_start_vertical = __esmMin((() => {
	AlignStartVertical = [
		["rect", {
			width: "9",
			height: "6",
			x: "6",
			y: "14",
			rx: "2"
		}],
		["rect", {
			width: "16",
			height: "6",
			x: "6",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M2 2v20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-vertical-distribute-center.js
var AlignVerticalDistributeCenter;
var init_align_vertical_distribute_center = __esmMin((() => {
	AlignVerticalDistributeCenter = [
		["path", { d: "M22 17h-3" }],
		["path", { d: "M22 7h-5" }],
		["path", { d: "M5 17H2" }],
		["path", { d: "M7 7H2" }],
		["rect", {
			x: "5",
			y: "14",
			width: "14",
			height: "6",
			rx: "2"
		}],
		["rect", {
			x: "7",
			y: "4",
			width: "10",
			height: "6",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-vertical-distribute-end.js
var AlignVerticalDistributeEnd;
var init_align_vertical_distribute_end = __esmMin((() => {
	AlignVerticalDistributeEnd = [
		["rect", {
			width: "14",
			height: "6",
			x: "5",
			y: "14",
			rx: "2"
		}],
		["rect", {
			width: "10",
			height: "6",
			x: "7",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M2 20h20" }],
		["path", { d: "M2 10h20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-vertical-distribute-start.js
var AlignVerticalDistributeStart;
var init_align_vertical_distribute_start = __esmMin((() => {
	AlignVerticalDistributeStart = [
		["rect", {
			width: "14",
			height: "6",
			x: "5",
			y: "14",
			rx: "2"
		}],
		["rect", {
			width: "10",
			height: "6",
			x: "7",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M2 14h20" }],
		["path", { d: "M2 4h20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-vertical-justify-center.js
var AlignVerticalJustifyCenter;
var init_align_vertical_justify_center = __esmMin((() => {
	AlignVerticalJustifyCenter = [
		["rect", {
			width: "14",
			height: "6",
			x: "5",
			y: "16",
			rx: "2"
		}],
		["rect", {
			width: "10",
			height: "6",
			x: "7",
			y: "2",
			rx: "2"
		}],
		["path", { d: "M2 12h20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-vertical-justify-end.js
var AlignVerticalJustifyEnd;
var init_align_vertical_justify_end = __esmMin((() => {
	AlignVerticalJustifyEnd = [
		["rect", {
			width: "14",
			height: "6",
			x: "5",
			y: "12",
			rx: "2"
		}],
		["rect", {
			width: "10",
			height: "6",
			x: "7",
			y: "2",
			rx: "2"
		}],
		["path", { d: "M2 22h20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-vertical-justify-start.js
var AlignVerticalJustifyStart;
var init_align_vertical_justify_start = __esmMin((() => {
	AlignVerticalJustifyStart = [
		["rect", {
			width: "14",
			height: "6",
			x: "5",
			y: "16",
			rx: "2"
		}],
		["rect", {
			width: "10",
			height: "6",
			x: "7",
			y: "6",
			rx: "2"
		}],
		["path", { d: "M2 2h20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-vertical-space-around.js
var AlignVerticalSpaceAround;
var init_align_vertical_space_around = __esmMin((() => {
	AlignVerticalSpaceAround = [
		["rect", {
			width: "10",
			height: "6",
			x: "7",
			y: "9",
			rx: "2"
		}],
		["path", { d: "M22 20H2" }],
		["path", { d: "M22 4H2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/align-vertical-space-between.js
var AlignVerticalSpaceBetween;
var init_align_vertical_space_between = __esmMin((() => {
	AlignVerticalSpaceBetween = [
		["rect", {
			width: "14",
			height: "6",
			x: "5",
			y: "15",
			rx: "2"
		}],
		["rect", {
			width: "10",
			height: "6",
			x: "7",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M2 21h20" }],
		["path", { d: "M2 3h20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ambulance.js
var Ambulance;
var init_ambulance = __esmMin((() => {
	Ambulance = [
		["path", { d: "M10 10H6" }],
		["path", { d: "M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2" }],
		["path", { d: "M19 18h2a1 1 0 0 0 1-1v-3.28a1 1 0 0 0-.684-.948l-1.923-.641a1 1 0 0 1-.578-.502l-1.539-3.076A1 1 0 0 0 16.382 8H14" }],
		["path", { d: "M8 8v4" }],
		["path", { d: "M9 18h6" }],
		["circle", {
			cx: "17",
			cy: "18",
			r: "2"
		}],
		["circle", {
			cx: "7",
			cy: "18",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ampersand.js
var Ampersand;
var init_ampersand = __esmMin((() => {
	Ampersand = [["path", { d: "M16 12h3" }], ["path", { d: "M17.5 12a8 8 0 0 1-8 8A4.5 4.5 0 0 1 5 15.5c0-6 8-4 8-8.5a3 3 0 1 0-6 0c0 3 2.5 8.5 12 13" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ampersands.js
var Ampersands;
var init_ampersands = __esmMin((() => {
	Ampersands = [["path", { d: "M10 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5" }], ["path", { d: "M22 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/amphora.js
var Amphora;
var init_amphora = __esmMin((() => {
	Amphora = [
		["path", { d: "M10 2v5.632c0 .424-.272.795-.653.982A6 6 0 0 0 6 14c.006 4 3 7 5 8" }],
		["path", { d: "M10 5H8a2 2 0 0 0 0 4h.68" }],
		["path", { d: "M14 2v5.632c0 .424.272.795.652.982A6 6 0 0 1 18 14c0 4-3 7-5 8" }],
		["path", { d: "M14 5h2a2 2 0 0 1 0 4h-.68" }],
		["path", { d: "M18 22H6" }],
		["path", { d: "M9 2h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/anchor.js
var Anchor$1;
var init_anchor = __esmMin((() => {
	Anchor$1 = [
		["path", { d: "M12 6v16" }],
		["path", { d: "m19 13 2-1a9 9 0 0 1-18 0l2 1" }],
		["path", { d: "M9 11h6" }],
		["circle", {
			cx: "12",
			cy: "4",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/angry.js
var Angry;
var init_angry = __esmMin((() => {
	Angry = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "M16 16s-1.5-2-4-2-4 2-4 2" }],
		["path", { d: "M7.5 8 10 9" }],
		["path", { d: "m14 9 2.5-1" }],
		["path", { d: "M9 10h.01" }],
		["path", { d: "M15 10h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/annoyed.js
var Annoyed;
var init_annoyed = __esmMin((() => {
	Annoyed = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "M8 15h8" }],
		["path", { d: "M8 9h2" }],
		["path", { d: "M14 9h2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/antenna.js
var Antenna;
var init_antenna = __esmMin((() => {
	Antenna = [
		["path", { d: "M2 12 7 2" }],
		["path", { d: "m7 12 5-10" }],
		["path", { d: "m12 12 5-10" }],
		["path", { d: "m17 12 5-10" }],
		["path", { d: "M4.5 7h15" }],
		["path", { d: "M12 16v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/anvil.js
var Anvil;
var init_anvil = __esmMin((() => {
	Anvil = [
		["path", { d: "M7 10H6a4 4 0 0 1-4-4 1 1 0 0 1 1-1h4" }],
		["path", { d: "M7 5a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1 7 7 0 0 1-7 7H8a1 1 0 0 1-1-1z" }],
		["path", { d: "M9 12v5" }],
		["path", { d: "M15 12v5" }],
		["path", { d: "M5 20a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3 1 1 0 0 1-1 1H6a1 1 0 0 1-1-1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/aperture.js
var Aperture;
var init_aperture = __esmMin((() => {
	Aperture = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "m14.31 8 5.74 9.94" }],
		["path", { d: "M9.69 8h11.48" }],
		["path", { d: "m7.38 12 5.74-9.94" }],
		["path", { d: "M9.69 16 3.95 6.06" }],
		["path", { d: "M14.31 16H2.83" }],
		["path", { d: "m16.62 12-5.74 9.94" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/app-window-mac.js
var AppWindowMac;
var init_app_window_mac = __esmMin((() => {
	AppWindowMac = [
		["rect", {
			width: "20",
			height: "16",
			x: "2",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M6 8h.01" }],
		["path", { d: "M10 8h.01" }],
		["path", { d: "M14 8h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/app-window.js
var AppWindow;
var init_app_window = __esmMin((() => {
	AppWindow = [
		["rect", {
			x: "2",
			y: "4",
			width: "20",
			height: "16",
			rx: "2"
		}],
		["path", { d: "M10 4v4" }],
		["path", { d: "M2 8h20" }],
		["path", { d: "M6 4v4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/apple.js
var Apple;
var init_apple = __esmMin((() => {
	Apple = [["path", { d: "M12 6.528V3a1 1 0 0 1 1-1h0" }], ["path", { d: "M18.237 21A15 15 0 0 0 22 11a6 6 0 0 0-10-4.472A6 6 0 0 0 2 11a15.1 15.1 0 0 0 3.763 10 3 3 0 0 0 3.648.648 5.5 5.5 0 0 1 5.178 0A3 3 0 0 0 18.237 21" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/archive-restore.js
var ArchiveRestore;
var init_archive_restore = __esmMin((() => {
	ArchiveRestore = [
		["rect", {
			width: "20",
			height: "5",
			x: "2",
			y: "3",
			rx: "1"
		}],
		["path", { d: "M4 8v11a2 2 0 0 0 2 2h2" }],
		["path", { d: "M20 8v11a2 2 0 0 1-2 2h-2" }],
		["path", { d: "m9 15 3-3 3 3" }],
		["path", { d: "M12 12v9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/archive-x.js
var ArchiveX;
var init_archive_x = __esmMin((() => {
	ArchiveX = [
		["rect", {
			width: "20",
			height: "5",
			x: "2",
			y: "3",
			rx: "1"
		}],
		["path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8" }],
		["path", { d: "m9.5 17 5-5" }],
		["path", { d: "m9.5 12 5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/archive.js
var Archive;
var init_archive = __esmMin((() => {
	Archive = [
		["rect", {
			width: "20",
			height: "5",
			x: "2",
			y: "3",
			rx: "1"
		}],
		["path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8" }],
		["path", { d: "M10 12h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-big-down-dash.js
var ArrowBigDownDash;
var init_arrow_big_down_dash = __esmMin((() => {
	ArrowBigDownDash = [["path", { d: "M15 11a1 1 0 0 0 1 1h2.939a1 1 0 0 1 .75 1.811l-6.835 6.836a1.207 1.207 0 0 1-1.707 0L4.31 13.81a1 1 0 0 1 .75-1.811H8a1 1 0 0 0 1-1V9a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1z" }], ["path", { d: "M9 4h6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/armchair.js
var Armchair;
var init_armchair = __esmMin((() => {
	Armchair = [
		["path", { d: "M19 9V6a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v3" }],
		["path", { d: "M3 16a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z" }],
		["path", { d: "M5 18v2" }],
		["path", { d: "M19 18v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-big-down.js
var ArrowBigDown;
var init_arrow_big_down = __esmMin((() => {
	ArrowBigDown = [["path", { d: "M15 11a1 1 0 0 0 1 1h2.939a1 1 0 0 1 .75 1.811l-6.835 6.836a1.207 1.207 0 0 1-1.707 0L4.31 13.81a1 1 0 0 1 .75-1.811H8a1 1 0 0 0 1-1V5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-big-left-dash.js
var ArrowBigLeftDash;
var init_arrow_big_left_dash = __esmMin((() => {
	ArrowBigLeftDash = [["path", { d: "M13 9a1 1 0 0 1-1-1V5.061a1 1 0 0 0-1.811-.75l-6.835 6.836a1.207 1.207 0 0 0 0 1.707l6.835 6.835a1 1 0 0 0 1.811-.75V16a1 1 0 0 1 1-1h2a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1z" }], ["path", { d: "M20 9v6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-big-left.js
var ArrowBigLeft;
var init_arrow_big_left = __esmMin((() => {
	ArrowBigLeft = [["path", { d: "M13 9a1 1 0 0 1-1-1V5.061a1 1 0 0 0-1.811-.75l-6.835 6.836a1.207 1.207 0 0 0 0 1.707l6.835 6.835a1 1 0 0 0 1.811-.75V16a1 1 0 0 1 1-1h6a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-big-right-dash.js
var ArrowBigRightDash;
var init_arrow_big_right_dash = __esmMin((() => {
	ArrowBigRightDash = [["path", { d: "M11 9a1 1 0 0 0 1-1V5.061a1 1 0 0 1 1.811-.75l6.836 6.836a1.207 1.207 0 0 1 0 1.707l-6.836 6.835a1 1 0 0 1-1.811-.75V16a1 1 0 0 0-1-1H9a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z" }], ["path", { d: "M4 9v6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-big-right.js
var ArrowBigRight;
var init_arrow_big_right = __esmMin((() => {
	ArrowBigRight = [["path", { d: "M11 9a1 1 0 0 0 1-1V5.061a1 1 0 0 1 1.811-.75l6.836 6.836a1.207 1.207 0 0 1 0 1.707l-6.836 6.835a1 1 0 0 1-1.811-.75V16a1 1 0 0 0-1-1H5a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-big-up-dash.js
var ArrowBigUpDash;
var init_arrow_big_up_dash = __esmMin((() => {
	ArrowBigUpDash = [["path", { d: "M9 13a1 1 0 0 0-1-1H5.061a1 1 0 0 1-.75-1.811l6.836-6.835a1.207 1.207 0 0 1 1.707 0l6.835 6.835a1 1 0 0 1-.75 1.811H16a1 1 0 0 0-1 1v2a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1z" }], ["path", { d: "M9 20h6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-big-up.js
var ArrowBigUp;
var init_arrow_big_up = __esmMin((() => {
	ArrowBigUp = [["path", { d: "M9 13a1 1 0 0 0-1-1H5.061a1 1 0 0 1-.75-1.811l6.836-6.835a1.207 1.207 0 0 1 1.707 0l6.835 6.835a1 1 0 0 1-.75 1.811H16a1 1 0 0 0-1 1v6a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-down-0-1.js
var ArrowDown01;
var init_arrow_down_0_1 = __esmMin((() => {
	ArrowDown01 = [
		["path", { d: "m3 16 4 4 4-4" }],
		["path", { d: "M7 20V4" }],
		["rect", {
			x: "15",
			y: "4",
			width: "4",
			height: "6",
			ry: "2"
		}],
		["path", { d: "M17 20v-6h-2" }],
		["path", { d: "M15 20h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-down-1-0.js
var ArrowDown10;
var init_arrow_down_1_0 = __esmMin((() => {
	ArrowDown10 = [
		["path", { d: "m3 16 4 4 4-4" }],
		["path", { d: "M7 20V4" }],
		["path", { d: "M17 10V4h-2" }],
		["path", { d: "M15 10h4" }],
		["rect", {
			x: "15",
			y: "14",
			width: "4",
			height: "6",
			ry: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-down-a-z.js
var ArrowDownAZ;
var init_arrow_down_a_z = __esmMin((() => {
	ArrowDownAZ = [
		["path", { d: "m3 16 4 4 4-4" }],
		["path", { d: "M7 20V4" }],
		["path", { d: "M20 8h-5" }],
		["path", { d: "M15 10V6.5a2.5 2.5 0 0 1 5 0V10" }],
		["path", { d: "M15 14h5l-5 6h5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-down-from-line.js
var ArrowDownFromLine;
var init_arrow_down_from_line = __esmMin((() => {
	ArrowDownFromLine = [
		["path", { d: "M19 3H5" }],
		["path", { d: "M12 21V7" }],
		["path", { d: "m6 15 6 6 6-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-down-left.js
var ArrowDownLeft;
var init_arrow_down_left = __esmMin((() => {
	ArrowDownLeft = [["path", { d: "M17 7 7 17" }], ["path", { d: "M17 17H7V7" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-down-narrow-wide.js
var ArrowDownNarrowWide;
var init_arrow_down_narrow_wide = __esmMin((() => {
	ArrowDownNarrowWide = [
		["path", { d: "m3 16 4 4 4-4" }],
		["path", { d: "M7 20V4" }],
		["path", { d: "M11 4h4" }],
		["path", { d: "M11 8h7" }],
		["path", { d: "M11 12h10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-down-right.js
var ArrowDownRight;
var init_arrow_down_right = __esmMin((() => {
	ArrowDownRight = [["path", { d: "m7 7 10 10" }], ["path", { d: "M17 7v10H7" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-down-to-dot.js
var ArrowDownToDot;
var init_arrow_down_to_dot = __esmMin((() => {
	ArrowDownToDot = [
		["path", { d: "M12 2v14" }],
		["path", { d: "m19 9-7 7-7-7" }],
		["circle", {
			cx: "12",
			cy: "21",
			r: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-down-to-line.js
var ArrowDownToLine;
var init_arrow_down_to_line = __esmMin((() => {
	ArrowDownToLine = [
		["path", { d: "M12 17V3" }],
		["path", { d: "m6 11 6 6 6-6" }],
		["path", { d: "M19 21H5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-down-up.js
var ArrowDownUp;
var init_arrow_down_up = __esmMin((() => {
	ArrowDownUp = [
		["path", { d: "m3 16 4 4 4-4" }],
		["path", { d: "M7 20V4" }],
		["path", { d: "m21 8-4-4-4 4" }],
		["path", { d: "M17 4v16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-down-z-a.js
var ArrowDownZA;
var init_arrow_down_z_a = __esmMin((() => {
	ArrowDownZA = [
		["path", { d: "m3 16 4 4 4-4" }],
		["path", { d: "M7 4v16" }],
		["path", { d: "M15 4h5l-5 6h5" }],
		["path", { d: "M15 20v-3.5a2.5 2.5 0 0 1 5 0V20" }],
		["path", { d: "M20 18h-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-down-wide-narrow.js
var ArrowDownWideNarrow;
var init_arrow_down_wide_narrow = __esmMin((() => {
	ArrowDownWideNarrow = [
		["path", { d: "m3 16 4 4 4-4" }],
		["path", { d: "M7 20V4" }],
		["path", { d: "M11 4h10" }],
		["path", { d: "M11 8h7" }],
		["path", { d: "M11 12h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-down.js
var ArrowDown;
var init_arrow_down = __esmMin((() => {
	ArrowDown = [["path", { d: "M12 5v14" }], ["path", { d: "m19 12-7 7-7-7" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-left-from-line.js
var ArrowLeftFromLine;
var init_arrow_left_from_line = __esmMin((() => {
	ArrowLeftFromLine = [
		["path", { d: "m9 6-6 6 6 6" }],
		["path", { d: "M3 12h14" }],
		["path", { d: "M21 19V5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-left-right.js
var ArrowLeftRight;
var init_arrow_left_right = __esmMin((() => {
	ArrowLeftRight = [
		["path", { d: "M8 3 4 7l4 4" }],
		["path", { d: "M4 7h16" }],
		["path", { d: "m16 21 4-4-4-4" }],
		["path", { d: "M20 17H4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-left-to-line.js
var ArrowLeftToLine;
var init_arrow_left_to_line = __esmMin((() => {
	ArrowLeftToLine = [
		["path", { d: "M3 19V5" }],
		["path", { d: "m13 6-6 6 6 6" }],
		["path", { d: "M7 12h14" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-left.js
var ArrowLeft;
var init_arrow_left = __esmMin((() => {
	ArrowLeft = [["path", { d: "m12 19-7-7 7-7" }], ["path", { d: "M19 12H5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-right-from-line.js
var ArrowRightFromLine;
var init_arrow_right_from_line = __esmMin((() => {
	ArrowRightFromLine = [
		["path", { d: "M3 5v14" }],
		["path", { d: "M21 12H7" }],
		["path", { d: "m15 18 6-6-6-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-right-left.js
var ArrowRightLeft;
var init_arrow_right_left = __esmMin((() => {
	ArrowRightLeft = [
		["path", { d: "m16 3 4 4-4 4" }],
		["path", { d: "M20 7H4" }],
		["path", { d: "m8 21-4-4 4-4" }],
		["path", { d: "M4 17h16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-right-to-line.js
var ArrowRightToLine;
var init_arrow_right_to_line = __esmMin((() => {
	ArrowRightToLine = [
		["path", { d: "M17 12H3" }],
		["path", { d: "m11 18 6-6-6-6" }],
		["path", { d: "M21 5v14" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-right.js
var ArrowRight;
var init_arrow_right = __esmMin((() => {
	ArrowRight = [["path", { d: "M5 12h14" }], ["path", { d: "m12 5 7 7-7 7" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-up-0-1.js
var ArrowUp01;
var init_arrow_up_0_1 = __esmMin((() => {
	ArrowUp01 = [
		["path", { d: "m3 8 4-4 4 4" }],
		["path", { d: "M7 4v16" }],
		["rect", {
			x: "15",
			y: "4",
			width: "4",
			height: "6",
			ry: "2"
		}],
		["path", { d: "M17 20v-6h-2" }],
		["path", { d: "M15 20h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-up-1-0.js
var ArrowUp10;
var init_arrow_up_1_0 = __esmMin((() => {
	ArrowUp10 = [
		["path", { d: "m3 8 4-4 4 4" }],
		["path", { d: "M7 4v16" }],
		["path", { d: "M17 10V4h-2" }],
		["path", { d: "M15 10h4" }],
		["rect", {
			x: "15",
			y: "14",
			width: "4",
			height: "6",
			ry: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-up-a-z.js
var ArrowUpAZ;
var init_arrow_up_a_z = __esmMin((() => {
	ArrowUpAZ = [
		["path", { d: "m3 8 4-4 4 4" }],
		["path", { d: "M7 4v16" }],
		["path", { d: "M20 8h-5" }],
		["path", { d: "M15 10V6.5a2.5 2.5 0 0 1 5 0V10" }],
		["path", { d: "M15 14h5l-5 6h5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-up-down.js
var ArrowUpDown;
var init_arrow_up_down = __esmMin((() => {
	ArrowUpDown = [
		["path", { d: "m21 16-4 4-4-4" }],
		["path", { d: "M17 20V4" }],
		["path", { d: "m3 8 4-4 4 4" }],
		["path", { d: "M7 4v16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-up-from-dot.js
var ArrowUpFromDot;
var init_arrow_up_from_dot = __esmMin((() => {
	ArrowUpFromDot = [
		["path", { d: "m5 9 7-7 7 7" }],
		["path", { d: "M12 16V2" }],
		["circle", {
			cx: "12",
			cy: "21",
			r: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-up-from-line.js
var ArrowUpFromLine;
var init_arrow_up_from_line = __esmMin((() => {
	ArrowUpFromLine = [
		["path", { d: "m18 9-6-6-6 6" }],
		["path", { d: "M12 3v14" }],
		["path", { d: "M5 21h14" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-up-left.js
var ArrowUpLeft;
var init_arrow_up_left = __esmMin((() => {
	ArrowUpLeft = [["path", { d: "M7 17V7h10" }], ["path", { d: "M17 17 7 7" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-up-narrow-wide.js
var ArrowUpNarrowWide;
var init_arrow_up_narrow_wide = __esmMin((() => {
	ArrowUpNarrowWide = [
		["path", { d: "m3 8 4-4 4 4" }],
		["path", { d: "M7 4v16" }],
		["path", { d: "M11 12h4" }],
		["path", { d: "M11 16h7" }],
		["path", { d: "M11 20h10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-up-right.js
var ArrowUpRight;
var init_arrow_up_right = __esmMin((() => {
	ArrowUpRight = [["path", { d: "M7 7h10v10" }], ["path", { d: "M7 17 17 7" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-up-to-line.js
var ArrowUpToLine;
var init_arrow_up_to_line = __esmMin((() => {
	ArrowUpToLine = [
		["path", { d: "M5 3h14" }],
		["path", { d: "m18 13-6-6-6 6" }],
		["path", { d: "M12 7v14" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-up-wide-narrow.js
var ArrowUpWideNarrow;
var init_arrow_up_wide_narrow = __esmMin((() => {
	ArrowUpWideNarrow = [
		["path", { d: "m3 8 4-4 4 4" }],
		["path", { d: "M7 4v16" }],
		["path", { d: "M11 12h10" }],
		["path", { d: "M11 16h7" }],
		["path", { d: "M11 20h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-up-z-a.js
var ArrowUpZA;
var init_arrow_up_z_a = __esmMin((() => {
	ArrowUpZA = [
		["path", { d: "m3 8 4-4 4 4" }],
		["path", { d: "M7 4v16" }],
		["path", { d: "M15 4h5l-5 6h5" }],
		["path", { d: "M15 20v-3.5a2.5 2.5 0 0 1 5 0V20" }],
		["path", { d: "M20 18h-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrow-up.js
var ArrowUp;
var init_arrow_up = __esmMin((() => {
	ArrowUp = [["path", { d: "m5 12 7-7 7 7" }], ["path", { d: "M12 19V5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/arrows-up-from-line.js
var ArrowsUpFromLine;
var init_arrows_up_from_line = __esmMin((() => {
	ArrowsUpFromLine = [
		["path", { d: "m4 6 3-3 3 3" }],
		["path", { d: "M7 17V3" }],
		["path", { d: "m14 6 3-3 3 3" }],
		["path", { d: "M17 17V3" }],
		["path", { d: "M4 21h16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/asterisk.js
var Asterisk;
var init_asterisk = __esmMin((() => {
	Asterisk = [
		["path", { d: "M12 6v12" }],
		["path", { d: "M17.196 9 6.804 15" }],
		["path", { d: "m6.804 9 10.392 6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/at-sign.js
var AtSign;
var init_at_sign = __esmMin((() => {
	AtSign = [["circle", {
		cx: "12",
		cy: "12",
		r: "4"
	}], ["path", { d: "M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/atom.js
var Atom;
var init_atom = __esmMin((() => {
	Atom = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "1"
		}],
		["path", { d: "M20.2 20.2c2.04-2.03.02-7.36-4.5-11.9-4.54-4.52-9.87-6.54-11.9-4.5-2.04 2.03-.02 7.36 4.5 11.9 4.54 4.52 9.87 6.54 11.9 4.5Z" }],
		["path", { d: "M15.7 15.7c4.52-4.54 6.54-9.87 4.5-11.9-2.03-2.04-7.36-.02-11.9 4.5-4.52 4.54-6.54 9.87-4.5 11.9 2.03 2.04 7.36.02 11.9-4.5Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/audio-lines.js
var AudioLines;
var init_audio_lines = __esmMin((() => {
	AudioLines = [
		["path", { d: "M2 10v3" }],
		["path", { d: "M6 6v11" }],
		["path", { d: "M10 3v18" }],
		["path", { d: "M14 8v7" }],
		["path", { d: "M18 5v13" }],
		["path", { d: "M22 10v3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/audio-waveform.js
var AudioWaveform;
var init_audio_waveform = __esmMin((() => {
	AudioWaveform = [["path", { d: "M2 13a2 2 0 0 0 2-2V7a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0V4a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0v-4a2 2 0 0 1 2-2" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/award.js
var Award;
var init_award = __esmMin((() => {
	Award = [["path", { d: "m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526" }], ["circle", {
		cx: "12",
		cy: "8",
		r: "6"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/axe.js
var Axe;
var init_axe = __esmMin((() => {
	Axe = [["path", { d: "m14 12-8.381 8.38a1 1 0 0 1-3.001-3L11 9" }], ["path", { d: "M15 15.5a.5.5 0 0 0 .5.5A6.5 6.5 0 0 0 22 9.5a.5.5 0 0 0-.5-.5h-1.672a2 2 0 0 1-1.414-.586l-5.062-5.062a1.205 1.205 0 0 0-1.704 0L9.352 5.648a1.205 1.205 0 0 0 0 1.704l5.062 5.062A2 2 0 0 1 15 13.828z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/axis-3d.js
var Axis3d;
var init_axis_3d = __esmMin((() => {
	Axis3d = [
		["path", { d: "M13.5 10.5 15 9" }],
		["path", { d: "M4 4v15a1 1 0 0 0 1 1h15" }],
		["path", { d: "M4.293 19.707 6 18" }],
		["path", { d: "m9 15 1.5-1.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/baby.js
var Baby;
var init_baby = __esmMin((() => {
	Baby = [
		["path", { d: "M10 16c.5.3 1.2.5 2 .5s1.5-.2 2-.5" }],
		["path", { d: "M15 12h.01" }],
		["path", { d: "M19.38 6.813A9 9 0 0 1 20.8 10.2a2 2 0 0 1 0 3.6 9 9 0 0 1-17.6 0 2 2 0 0 1 0-3.6A9 9 0 0 1 12 3c2 0 3.5 1.1 3.5 2.5s-.9 2.5-2 2.5c-.8 0-1.5-.4-1.5-1" }],
		["path", { d: "M9 12h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/backpack.js
var Backpack;
var init_backpack = __esmMin((() => {
	Backpack = [
		["path", { d: "M4 10a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v10a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z" }],
		["path", { d: "M8 10h8" }],
		["path", { d: "M8 18h8" }],
		["path", { d: "M8 22v-6a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v6" }],
		["path", { d: "M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge-cent.js
var BadgeCent;
var init_badge_cent = __esmMin((() => {
	BadgeCent = [
		["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }],
		["path", { d: "M12 7v10" }],
		["path", { d: "M15.4 10a4 4 0 1 0 0 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge-alert.js
var BadgeAlert;
var init_badge_alert = __esmMin((() => {
	BadgeAlert = [
		["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }],
		["line", {
			x1: "12",
			x2: "12",
			y1: "8",
			y2: "12"
		}],
		["line", {
			x1: "12",
			x2: "12.01",
			y1: "16",
			y2: "16"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge-check.js
var BadgeCheck;
var init_badge_check = __esmMin((() => {
	BadgeCheck = [["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }], ["path", { d: "m9 12 2 2 4-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge-dollar-sign.js
var BadgeDollarSign;
var init_badge_dollar_sign = __esmMin((() => {
	BadgeDollarSign = [
		["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }],
		["path", { d: "M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8" }],
		["path", { d: "M12 18V6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge-euro.js
var BadgeEuro;
var init_badge_euro = __esmMin((() => {
	BadgeEuro = [
		["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }],
		["path", { d: "M7 12h5" }],
		["path", { d: "M15 9.4a4 4 0 1 0 0 5.2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge-info.js
var BadgeInfo;
var init_badge_info = __esmMin((() => {
	BadgeInfo = [
		["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }],
		["line", {
			x1: "12",
			x2: "12",
			y1: "16",
			y2: "12"
		}],
		["line", {
			x1: "12",
			x2: "12.01",
			y1: "8",
			y2: "8"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge-indian-rupee.js
var BadgeIndianRupee;
var init_badge_indian_rupee = __esmMin((() => {
	BadgeIndianRupee = [
		["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }],
		["path", { d: "M8 8h8" }],
		["path", { d: "M8 12h8" }],
		["path", { d: "m13 17-5-1h1a4 4 0 0 0 0-8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge-japanese-yen.js
var BadgeJapaneseYen;
var init_badge_japanese_yen = __esmMin((() => {
	BadgeJapaneseYen = [
		["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }],
		["path", { d: "m9 8 3 3v7" }],
		["path", { d: "m12 11 3-3" }],
		["path", { d: "M9 12h6" }],
		["path", { d: "M9 16h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge-minus.js
var BadgeMinus;
var init_badge_minus = __esmMin((() => {
	BadgeMinus = [["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }], ["line", {
		x1: "8",
		x2: "16",
		y1: "12",
		y2: "12"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge-percent.js
var BadgePercent;
var init_badge_percent = __esmMin((() => {
	BadgePercent = [
		["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }],
		["path", { d: "m15 9-6 6" }],
		["path", { d: "M9 9h.01" }],
		["path", { d: "M15 15h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge-plus.js
var BadgePlus;
var init_badge_plus = __esmMin((() => {
	BadgePlus = [
		["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }],
		["line", {
			x1: "12",
			x2: "12",
			y1: "8",
			y2: "16"
		}],
		["line", {
			x1: "8",
			x2: "16",
			y1: "12",
			y2: "12"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge-pound-sterling.js
var BadgePoundSterling;
var init_badge_pound_sterling = __esmMin((() => {
	BadgePoundSterling = [
		["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }],
		["path", { d: "M8 12h4" }],
		["path", { d: "M10 16V9.5a2.5 2.5 0 0 1 5 0" }],
		["path", { d: "M8 16h7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge-question-mark.js
var BadgeQuestionMark;
var init_badge_question_mark = __esmMin((() => {
	BadgeQuestionMark = [
		["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }],
		["path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" }],
		["line", {
			x1: "12",
			x2: "12.01",
			y1: "17",
			y2: "17"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge-russian-ruble.js
var BadgeRussianRuble;
var init_badge_russian_ruble = __esmMin((() => {
	BadgeRussianRuble = [
		["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }],
		["path", { d: "M9 16h5" }],
		["path", { d: "M9 12h5a2 2 0 1 0 0-4h-3v9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge-swiss-franc.js
var BadgeSwissFranc;
var init_badge_swiss_franc = __esmMin((() => {
	BadgeSwissFranc = [
		["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }],
		["path", { d: "M11 17V8h4" }],
		["path", { d: "M11 12h3" }],
		["path", { d: "M9 16h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge-turkish-lira.js
var BadgeTurkishLira;
var init_badge_turkish_lira = __esmMin((() => {
	BadgeTurkishLira = [
		["path", { d: "M11 7v10a5 5 0 0 0 5-5" }],
		["path", { d: "m15 8-6 3" }],
		["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge-x.js
var BadgeX;
var init_badge_x = __esmMin((() => {
	BadgeX = [
		["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }],
		["line", {
			x1: "15",
			x2: "9",
			y1: "9",
			y2: "15"
		}],
		["line", {
			x1: "9",
			x2: "15",
			y1: "9",
			y2: "15"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/badge.js
var Badge$1;
var init_badge = __esmMin((() => {
	Badge$1 = [["path", { d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/baggage-claim.js
var BaggageClaim;
var init_baggage_claim = __esmMin((() => {
	BaggageClaim = [
		["path", { d: "M22 18H6a2 2 0 0 1-2-2V7a2 2 0 0 0-2-2" }],
		["path", { d: "M17 14V4a2 2 0 0 0-2-2h-1a2 2 0 0 0-2 2v10" }],
		["rect", {
			width: "13",
			height: "8",
			x: "8",
			y: "6",
			rx: "1"
		}],
		["circle", {
			cx: "18",
			cy: "20",
			r: "2"
		}],
		["circle", {
			cx: "9",
			cy: "20",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ban.js
var Ban;
var init_ban = __esmMin((() => {
	Ban = [["path", { d: "M4.929 4.929 19.07 19.071" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/banana.js
var Banana;
var init_banana = __esmMin((() => {
	Banana = [["path", { d: "M4 13c3.5-2 8-2 10 2a5.5 5.5 0 0 1 8 5" }], ["path", { d: "M5.15 17.89c5.52-1.52 8.65-6.89 7-12C11.55 4 11.5 2 13 2c3.22 0 5 5.5 5 8 0 6.5-4.2 12-10.49 12C5.11 22 2 22 2 20c0-1.5 1.14-1.55 3.15-2.11Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bandage.js
var Bandage;
var init_bandage = __esmMin((() => {
	Bandage = [
		["path", { d: "M10 10.01h.01" }],
		["path", { d: "M10 14.01h.01" }],
		["path", { d: "M14 10.01h.01" }],
		["path", { d: "M14 14.01h.01" }],
		["path", { d: "M18 6v11.5" }],
		["path", { d: "M6 6v12" }],
		["rect", {
			x: "2",
			y: "6",
			width: "20",
			height: "12",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/banknote-arrow-down.js
var BanknoteArrowDown;
var init_banknote_arrow_down = __esmMin((() => {
	BanknoteArrowDown = [
		["path", { d: "M12 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5" }],
		["path", { d: "m16 19 3 3 3-3" }],
		["path", { d: "M18 12h.01" }],
		["path", { d: "M19 16v6" }],
		["path", { d: "M6 12h.01" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/banknote-arrow-up.js
var BanknoteArrowUp;
var init_banknote_arrow_up = __esmMin((() => {
	BanknoteArrowUp = [
		["path", { d: "M12 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5" }],
		["path", { d: "M18 12h.01" }],
		["path", { d: "M19 22v-6" }],
		["path", { d: "m22 19-3-3-3 3" }],
		["path", { d: "M6 12h.01" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/banknote-x.js
var BanknoteX;
var init_banknote_x = __esmMin((() => {
	BanknoteX = [
		["path", { d: "M13 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5" }],
		["path", { d: "m17 17 5 5" }],
		["path", { d: "M18 12h.01" }],
		["path", { d: "m22 17-5 5" }],
		["path", { d: "M6 12h.01" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/banknote.js
var Banknote;
var init_banknote = __esmMin((() => {
	Banknote = [
		["rect", {
			width: "20",
			height: "12",
			x: "2",
			y: "6",
			rx: "2"
		}],
		["circle", {
			cx: "12",
			cy: "12",
			r: "2"
		}],
		["path", { d: "M6 12h.01M18 12h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/barcode.js
var Barcode;
var init_barcode = __esmMin((() => {
	Barcode = [
		["path", { d: "M3 5v14" }],
		["path", { d: "M8 5v14" }],
		["path", { d: "M12 5v14" }],
		["path", { d: "M17 5v14" }],
		["path", { d: "M21 5v14" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/barrel.js
var Barrel;
var init_barrel = __esmMin((() => {
	Barrel = [
		["path", { d: "M10 3a41 41 0 0 0 0 18" }],
		["path", { d: "M14 3a41 41 0 0 1 0 18" }],
		["path", { d: "M17 3a2 2 0 0 1 1.68.92 15.25 15.25 0 0 1 0 16.16A2 2 0 0 1 17 21H7a2 2 0 0 1-1.68-.92 15.25 15.25 0 0 1 0-16.16A2 2 0 0 1 7 3z" }],
		["path", { d: "M3.84 17h16.32" }],
		["path", { d: "M3.84 7h16.32" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/baseline.js
var Baseline;
var init_baseline = __esmMin((() => {
	Baseline = [
		["path", { d: "M4 20h16" }],
		["path", { d: "m6 16 6-12 6 12" }],
		["path", { d: "M8 12h8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bath.js
var Bath;
var init_bath = __esmMin((() => {
	Bath = [
		["path", { d: "M10 4 8 6" }],
		["path", { d: "M17 19v2" }],
		["path", { d: "M2 12h20" }],
		["path", { d: "M7 19v2" }],
		["path", { d: "M9 5 7.621 3.621A2.121 2.121 0 0 0 4 5v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/battery-charging.js
var BatteryCharging;
var init_battery_charging = __esmMin((() => {
	BatteryCharging = [
		["path", { d: "m11 7-3 5h4l-3 5" }],
		["path", { d: "M14.856 6H16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.935" }],
		["path", { d: "M22 14v-4" }],
		["path", { d: "M5.14 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2.936" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/battery-full.js
var BatteryFull;
var init_battery_full = __esmMin((() => {
	BatteryFull = [
		["path", { d: "M10 10v4" }],
		["path", { d: "M14 10v4" }],
		["path", { d: "M22 14v-4" }],
		["path", { d: "M6 10v4" }],
		["rect", {
			x: "2",
			y: "6",
			width: "16",
			height: "12",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/battery-low.js
var BatteryLow;
var init_battery_low = __esmMin((() => {
	BatteryLow = [
		["path", { d: "M22 14v-4" }],
		["path", { d: "M6 14v-4" }],
		["rect", {
			x: "2",
			y: "6",
			width: "16",
			height: "12",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/battery-medium.js
var BatteryMedium;
var init_battery_medium = __esmMin((() => {
	BatteryMedium = [
		["path", { d: "M10 14v-4" }],
		["path", { d: "M22 14v-4" }],
		["path", { d: "M6 14v-4" }],
		["rect", {
			x: "2",
			y: "6",
			width: "16",
			height: "12",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/battery-plus.js
var BatteryPlus;
var init_battery_plus = __esmMin((() => {
	BatteryPlus = [
		["path", { d: "M10 9v6" }],
		["path", { d: "M12.543 6H16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.605" }],
		["path", { d: "M22 14v-4" }],
		["path", { d: "M7 12h6" }],
		["path", { d: "M7.606 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.606" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/battery-warning.js
var BatteryWarning;
var init_battery_warning = __esmMin((() => {
	BatteryWarning = [
		["path", { d: "M10 17h.01" }],
		["path", { d: "M10 7v6" }],
		["path", { d: "M14 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2" }],
		["path", { d: "M22 14v-4" }],
		["path", { d: "M6 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/battery.js
var Battery;
var init_battery = __esmMin((() => {
	Battery = [["path", { d: "M 22 14 L 22 10" }], ["rect", {
		x: "2",
		y: "6",
		width: "16",
		height: "12",
		rx: "2"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/beaker.js
var Beaker;
var init_beaker = __esmMin((() => {
	Beaker = [
		["path", { d: "M4.5 3h15" }],
		["path", { d: "M6 3v16a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V3" }],
		["path", { d: "M6 14h12" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bean-off.js
var BeanOff;
var init_bean_off = __esmMin((() => {
	BeanOff = [
		["path", { d: "M9 9c-.64.64-1.521.954-2.402 1.165A6 6 0 0 0 8 22a13.96 13.96 0 0 0 9.9-4.1" }],
		["path", { d: "M10.75 5.093A6 6 0 0 1 22 8c0 2.411-.61 4.68-1.683 6.66" }],
		["path", { d: "M5.341 10.62a4 4 0 0 0 6.487 1.208M10.62 5.341a4.015 4.015 0 0 1 2.039 2.04" }],
		["line", {
			x1: "2",
			x2: "22",
			y1: "2",
			y2: "22"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bean.js
var Bean;
var init_bean = __esmMin((() => {
	Bean = [["path", { d: "M10.165 6.598C9.954 7.478 9.64 8.36 9 9c-.64.64-1.521.954-2.402 1.165A6 6 0 0 0 8 22c7.732 0 14-6.268 14-14a6 6 0 0 0-11.835-1.402Z" }], ["path", { d: "M5.341 10.62a4 4 0 1 0 5.279-5.28" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bed-double.js
var BedDouble;
var init_bed_double = __esmMin((() => {
	BedDouble = [
		["path", { d: "M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8" }],
		["path", { d: "M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4" }],
		["path", { d: "M12 4v6" }],
		["path", { d: "M2 18h20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bed-single.js
var BedSingle;
var init_bed_single = __esmMin((() => {
	BedSingle = [
		["path", { d: "M3 20v-8a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v8" }],
		["path", { d: "M5 10V6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4" }],
		["path", { d: "M3 18h18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bed.js
var Bed;
var init_bed = __esmMin((() => {
	Bed = [
		["path", { d: "M2 4v16" }],
		["path", { d: "M2 8h18a2 2 0 0 1 2 2v10" }],
		["path", { d: "M2 17h20" }],
		["path", { d: "M6 8v9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/beef.js
var Beef;
var init_beef = __esmMin((() => {
	Beef = [
		["path", { d: "M16.4 13.7A6.5 6.5 0 1 0 6.28 6.6c-1.1 3.13-.78 3.9-3.18 6.08A3 3 0 0 0 5 18c4 0 8.4-1.8 11.4-4.3" }],
		["path", { d: "m18.5 6 2.19 4.5a6.48 6.48 0 0 1-2.29 7.2C15.4 20.2 11 22 7 22a3 3 0 0 1-2.68-1.66L2.4 16.5" }],
		["circle", {
			cx: "12.5",
			cy: "8.5",
			r: "2.5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/beer-off.js
var BeerOff;
var init_beer_off = __esmMin((() => {
	BeerOff = [
		["path", { d: "M13 13v5" }],
		["path", { d: "M17 11.47V8" }],
		["path", { d: "M17 11h1a3 3 0 0 1 2.745 4.211" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-3" }],
		["path", { d: "M7.536 7.535C6.766 7.649 6.154 8 5.5 8a2.5 2.5 0 0 1-1.768-4.268" }],
		["path", { d: "M8.727 3.204C9.306 2.767 9.885 2 11 2c1.56 0 2 1.5 3 1.5s1.72-.5 2.5-.5a1 1 0 1 1 0 5c-.78 0-1.5-.5-2.5-.5a3.149 3.149 0 0 0-.842.12" }],
		["path", { d: "M9 14.6V18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/beer.js
var Beer;
var init_beer = __esmMin((() => {
	Beer = [
		["path", { d: "M17 11h1a3 3 0 0 1 0 6h-1" }],
		["path", { d: "M9 12v6" }],
		["path", { d: "M13 12v6" }],
		["path", { d: "M14 7.5c-1 0-1.44.5-3 .5s-2-.5-3-.5-1.72.5-2.5.5a2.5 2.5 0 0 1 0-5c.78 0 1.57.5 2.5.5S9.44 2 11 2s2 1.5 3 1.5 1.72-.5 2.5-.5a2.5 2.5 0 0 1 0 5c-.78 0-1.5-.5-2.5-.5Z" }],
		["path", { d: "M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bell-dot.js
var BellDot;
var init_bell_dot = __esmMin((() => {
	BellDot = [
		["path", { d: "M10.268 21a2 2 0 0 0 3.464 0" }],
		["path", { d: "M13.916 2.314A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.74 7.327A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673 9 9 0 0 1-.585-.665" }],
		["circle", {
			cx: "18",
			cy: "8",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bell-electric.js
var BellElectric;
var init_bell_electric = __esmMin((() => {
	BellElectric = [
		["path", { d: "M18.518 17.347A7 7 0 0 1 14 19" }],
		["path", { d: "M18.8 4A11 11 0 0 1 20 9" }],
		["path", { d: "M9 9h.01" }],
		["circle", {
			cx: "20",
			cy: "16",
			r: "2"
		}],
		["circle", {
			cx: "9",
			cy: "9",
			r: "7"
		}],
		["rect", {
			x: "4",
			y: "16",
			width: "10",
			height: "6",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bell-minus.js
var BellMinus;
var init_bell_minus = __esmMin((() => {
	BellMinus = [
		["path", { d: "M10.268 21a2 2 0 0 0 3.464 0" }],
		["path", { d: "M15 8h6" }],
		["path", { d: "M16.243 3.757A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673A9.4 9.4 0 0 1 18.667 12" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bell-off.js
var BellOff;
var init_bell_off = __esmMin((() => {
	BellOff = [
		["path", { d: "M10.268 21a2 2 0 0 0 3.464 0" }],
		["path", { d: "M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bell-plus.js
var BellPlus;
var init_bell_plus = __esmMin((() => {
	BellPlus = [
		["path", { d: "M10.268 21a2 2 0 0 0 3.464 0" }],
		["path", { d: "M15 8h6" }],
		["path", { d: "M18 5v6" }],
		["path", { d: "M20.002 14.464a9 9 0 0 0 .738.863A1 1 0 0 1 20 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 8.75-5.332" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bell-ring.js
var BellRing;
var init_bell_ring = __esmMin((() => {
	BellRing = [
		["path", { d: "M10.268 21a2 2 0 0 0 3.464 0" }],
		["path", { d: "M22 8c0-2.3-.8-4.3-2-6" }],
		["path", { d: "M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326" }],
		["path", { d: "M4 2C2.8 3.7 2 5.7 2 8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bell.js
var Bell;
var init_bell = __esmMin((() => {
	Bell = [["path", { d: "M10.268 21a2 2 0 0 0 3.464 0" }], ["path", { d: "M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/between-horizontal-end.js
var BetweenHorizontalEnd;
var init_between_horizontal_end = __esmMin((() => {
	BetweenHorizontalEnd = [
		["rect", {
			width: "13",
			height: "7",
			x: "3",
			y: "3",
			rx: "1"
		}],
		["path", { d: "m22 15-3-3 3-3" }],
		["rect", {
			width: "13",
			height: "7",
			x: "3",
			y: "14",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/between-horizontal-start.js
var BetweenHorizontalStart;
var init_between_horizontal_start = __esmMin((() => {
	BetweenHorizontalStart = [
		["rect", {
			width: "13",
			height: "7",
			x: "8",
			y: "3",
			rx: "1"
		}],
		["path", { d: "m2 9 3 3-3 3" }],
		["rect", {
			width: "13",
			height: "7",
			x: "8",
			y: "14",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/between-vertical-end.js
var BetweenVerticalEnd;
var init_between_vertical_end = __esmMin((() => {
	BetweenVerticalEnd = [
		["rect", {
			width: "7",
			height: "13",
			x: "3",
			y: "3",
			rx: "1"
		}],
		["path", { d: "m9 22 3-3 3 3" }],
		["rect", {
			width: "7",
			height: "13",
			x: "14",
			y: "3",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/between-vertical-start.js
var BetweenVerticalStart;
var init_between_vertical_start = __esmMin((() => {
	BetweenVerticalStart = [
		["rect", {
			width: "7",
			height: "13",
			x: "3",
			y: "8",
			rx: "1"
		}],
		["path", { d: "m15 2-3 3-3-3" }],
		["rect", {
			width: "7",
			height: "13",
			x: "14",
			y: "8",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/biceps-flexed.js
var BicepsFlexed;
var init_biceps_flexed = __esmMin((() => {
	BicepsFlexed = [
		["path", { d: "M12.409 13.017A5 5 0 0 1 22 15c0 3.866-4 7-9 7-4.077 0-8.153-.82-10.371-2.462-.426-.316-.631-.832-.62-1.362C2.118 12.723 2.627 2 10 2a3 3 0 0 1 3 3 2 2 0 0 1-2 2c-1.105 0-1.64-.444-2-1" }],
		["path", { d: "M15 14a5 5 0 0 0-7.584 2" }],
		["path", { d: "M9.964 6.825C8.019 7.977 9.5 13 8 15" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bike.js
var Bike;
var init_bike = __esmMin((() => {
	Bike = [
		["circle", {
			cx: "18.5",
			cy: "17.5",
			r: "3.5"
		}],
		["circle", {
			cx: "5.5",
			cy: "17.5",
			r: "3.5"
		}],
		["circle", {
			cx: "15",
			cy: "5",
			r: "1"
		}],
		["path", { d: "M12 17.5V14l-3-3 4-3 2 3h2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/binoculars.js
var Binoculars;
var init_binoculars = __esmMin((() => {
	Binoculars = [
		["path", { d: "M10 10h4" }],
		["path", { d: "M19 7V4a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3" }],
		["path", { d: "M20 21a2 2 0 0 0 2-2v-3.851c0-1.39-2-2.962-2-4.829V8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v11a2 2 0 0 0 2 2z" }],
		["path", { d: "M 22 16 L 2 16" }],
		["path", { d: "M4 21a2 2 0 0 1-2-2v-3.851c0-1.39 2-2.962 2-4.829V8a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2z" }],
		["path", { d: "M9 7V4a1 1 0 0 0-1-1H6a1 1 0 0 0-1 1v3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/binary.js
var Binary;
var init_binary = __esmMin((() => {
	Binary = [
		["rect", {
			x: "14",
			y: "14",
			width: "4",
			height: "6",
			rx: "2"
		}],
		["rect", {
			x: "6",
			y: "4",
			width: "4",
			height: "6",
			rx: "2"
		}],
		["path", { d: "M6 20h4" }],
		["path", { d: "M14 10h4" }],
		["path", { d: "M6 14h2v6" }],
		["path", { d: "M14 4h2v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/biohazard.js
var Biohazard;
var init_biohazard = __esmMin((() => {
	Biohazard = [
		["circle", {
			cx: "12",
			cy: "11.9",
			r: "2"
		}],
		["path", { d: "M6.7 3.4c-.9 2.5 0 5.2 2.2 6.7C6.5 9 3.7 9.6 2 11.6" }],
		["path", { d: "m8.9 10.1 1.4.8" }],
		["path", { d: "M17.3 3.4c.9 2.5 0 5.2-2.2 6.7 2.4-1.2 5.2-.6 6.9 1.5" }],
		["path", { d: "m15.1 10.1-1.4.8" }],
		["path", { d: "M16.7 20.8c-2.6-.4-4.6-2.6-4.7-5.3-.2 2.6-2.1 4.8-4.7 5.2" }],
		["path", { d: "M12 13.9v1.6" }],
		["path", { d: "M13.5 5.4c-1-.2-2-.2-3 0" }],
		["path", { d: "M17 16.4c.7-.7 1.2-1.6 1.5-2.5" }],
		["path", { d: "M5.5 13.9c.3.9.8 1.8 1.5 2.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bird.js
var Bird;
var init_bird = __esmMin((() => {
	Bird = [
		["path", { d: "M16 7h.01" }],
		["path", { d: "M3.4 18H12a8 8 0 0 0 8-8V7a4 4 0 0 0-7.28-2.3L2 20" }],
		["path", { d: "m20 7 2 .5-2 .5" }],
		["path", { d: "M10 18v3" }],
		["path", { d: "M14 17.75V21" }],
		["path", { d: "M7 18a6 6 0 0 0 3.84-10.61" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bitcoin.js
var Bitcoin;
var init_bitcoin = __esmMin((() => {
	Bitcoin = [["path", { d: "M11.767 19.089c4.924.868 6.14-6.025 1.216-6.894m-1.216 6.894L5.86 18.047m5.908 1.042-.347 1.97m1.563-8.864c4.924.869 6.14-6.025 1.215-6.893m-1.215 6.893-3.94-.694m5.155-6.2L8.29 4.26m5.908 1.042.348-1.97M7.48 20.364l3.126-17.727" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/blend.js
var Blend;
var init_blend = __esmMin((() => {
	Blend = [["circle", {
		cx: "9",
		cy: "9",
		r: "7"
	}], ["circle", {
		cx: "15",
		cy: "15",
		r: "7"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/birdhouse.js
var Birdhouse;
var init_birdhouse = __esmMin((() => {
	Birdhouse = [
		["path", { d: "M12 18v4" }],
		["path", { d: "m17 18 1.956-11.468" }],
		["path", { d: "m3 8 7.82-5.615a2 2 0 0 1 2.36 0L21 8" }],
		["path", { d: "M4 18h16" }],
		["path", { d: "M7 18 5.044 6.532" }],
		["circle", {
			cx: "12",
			cy: "10",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/blinds.js
var Blinds;
var init_blinds = __esmMin((() => {
	Blinds = [
		["path", { d: "M3 3h18" }],
		["path", { d: "M20 7H8" }],
		["path", { d: "M20 11H8" }],
		["path", { d: "M10 19h10" }],
		["path", { d: "M8 15h12" }],
		["path", { d: "M4 3v14" }],
		["circle", {
			cx: "4",
			cy: "19",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/blocks.js
var Blocks;
var init_blocks = __esmMin((() => {
	Blocks = [["path", { d: "M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2" }], ["rect", {
		x: "14",
		y: "2",
		width: "8",
		height: "8",
		rx: "1"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bluetooth-connected.js
var BluetoothConnected;
var init_bluetooth_connected = __esmMin((() => {
	BluetoothConnected = [
		["path", { d: "m7 7 10 10-5 5V2l5 5L7 17" }],
		["line", {
			x1: "18",
			x2: "21",
			y1: "12",
			y2: "12"
		}],
		["line", {
			x1: "3",
			x2: "6",
			y1: "12",
			y2: "12"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bluetooth-off.js
var BluetoothOff;
var init_bluetooth_off = __esmMin((() => {
	BluetoothOff = [
		["path", { d: "m17 17-5 5V12l-5 5" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M14.5 9.5 17 7l-5-5v4.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bluetooth-searching.js
var BluetoothSearching;
var init_bluetooth_searching = __esmMin((() => {
	BluetoothSearching = [
		["path", { d: "m7 7 10 10-5 5V2l5 5L7 17" }],
		["path", { d: "M20.83 14.83a4 4 0 0 0 0-5.66" }],
		["path", { d: "M18 12h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bluetooth.js
var Bluetooth;
var init_bluetooth = __esmMin((() => {
	Bluetooth = [["path", { d: "m7 7 10 10-5 5V2l5 5L7 17" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bold.js
var Bold;
var init_bold = __esmMin((() => {
	Bold = [["path", { d: "M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bolt.js
var Bolt;
var init_bolt = __esmMin((() => {
	Bolt = [["path", { d: "M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "4"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bomb.js
var Bomb;
var init_bomb = __esmMin((() => {
	Bomb = [
		["circle", {
			cx: "11",
			cy: "13",
			r: "9"
		}],
		["path", { d: "M14.35 4.65 16.3 2.7a2.41 2.41 0 0 1 3.4 0l1.6 1.6a2.4 2.4 0 0 1 0 3.4l-1.95 1.95" }],
		["path", { d: "m22 2-1.5 1.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bone.js
var Bone;
var init_bone = __esmMin((() => {
	Bone = [["path", { d: "M17 10c.7-.7 1.69 0 2.5 0a2.5 2.5 0 1 0 0-5 .5.5 0 0 1-.5-.5 2.5 2.5 0 1 0-5 0c0 .81.7 1.8 0 2.5l-7 7c-.7.7-1.69 0-2.5 0a2.5 2.5 0 0 0 0 5c.28 0 .5.22.5.5a2.5 2.5 0 1 0 5 0c0-.81-.7-1.8 0-2.5Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-a.js
var BookA;
var init_book_a = __esmMin((() => {
	BookA = [
		["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }],
		["path", { d: "m8 13 4-7 4 7" }],
		["path", { d: "M9.1 11h5.7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-alert.js
var BookAlert;
var init_book_alert = __esmMin((() => {
	BookAlert = [
		["path", { d: "M12 13h.01" }],
		["path", { d: "M12 6v3" }],
		["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-audio.js
var BookAudio;
var init_book_audio = __esmMin((() => {
	BookAudio = [
		["path", { d: "M12 6v7" }],
		["path", { d: "M16 8v3" }],
		["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }],
		["path", { d: "M8 8v3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-check.js
var BookCheck;
var init_book_check = __esmMin((() => {
	BookCheck = [["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }], ["path", { d: "m9 9.5 2 2 4-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-copy.js
var BookCopy;
var init_book_copy = __esmMin((() => {
	BookCopy = [
		["path", { d: "M5 7a2 2 0 0 0-2 2v11" }],
		["path", { d: "M5.803 18H5a2 2 0 0 0 0 4h9.5a.5.5 0 0 0 .5-.5V21" }],
		["path", { d: "M9 15V4a2 2 0 0 1 2-2h9.5a.5.5 0 0 1 .5.5v14a.5.5 0 0 1-.5.5H11a2 2 0 0 1 0-4h10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-dashed.js
var BookDashed;
var init_book_dashed = __esmMin((() => {
	BookDashed = [
		["path", { d: "M12 17h1.5" }],
		["path", { d: "M12 22h1.5" }],
		["path", { d: "M12 2h1.5" }],
		["path", { d: "M17.5 22H19a1 1 0 0 0 1-1" }],
		["path", { d: "M17.5 2H19a1 1 0 0 1 1 1v1.5" }],
		["path", { d: "M20 14v3h-2.5" }],
		["path", { d: "M20 8.5V10" }],
		["path", { d: "M4 10V8.5" }],
		["path", { d: "M4 19.5V14" }],
		["path", { d: "M4 4.5A2.5 2.5 0 0 1 6.5 2H8" }],
		["path", { d: "M8 22H6.5a1 1 0 0 1 0-5H8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-down.js
var BookDown;
var init_book_down = __esmMin((() => {
	BookDown = [
		["path", { d: "M12 13V7" }],
		["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }],
		["path", { d: "m9 10 3 3 3-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-headphones.js
var BookHeadphones;
var init_book_headphones = __esmMin((() => {
	BookHeadphones = [
		["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }],
		["path", { d: "M8 12v-2a4 4 0 0 1 8 0v2" }],
		["circle", {
			cx: "15",
			cy: "12",
			r: "1"
		}],
		["circle", {
			cx: "9",
			cy: "12",
			r: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-heart.js
var BookHeart;
var init_book_heart = __esmMin((() => {
	BookHeart = [["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }], ["path", { d: "M8.62 9.8A2.25 2.25 0 1 1 12 6.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-image.js
var BookImage;
var init_book_image = __esmMin((() => {
	BookImage = [
		["path", { d: "m20 13.7-2.1-2.1a2 2 0 0 0-2.8 0L9.7 17" }],
		["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }],
		["circle", {
			cx: "10",
			cy: "8",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-key.js
var BookKey;
var init_book_key = __esmMin((() => {
	BookKey = [
		["path", { d: "m19 3 1 1" }],
		["path", { d: "m20 2-4.5 4.5" }],
		["path", { d: "M20 7.898V21a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }],
		["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2h7.844" }],
		["circle", {
			cx: "14",
			cy: "8",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-lock.js
var BookLock;
var init_book_lock = __esmMin((() => {
	BookLock = [
		["path", { d: "M18 6V4a2 2 0 1 0-4 0v2" }],
		["path", { d: "M20 15v6a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }],
		["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H10" }],
		["rect", {
			x: "12",
			y: "6",
			width: "8",
			height: "5",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-marked.js
var BookMarked;
var init_book_marked = __esmMin((() => {
	BookMarked = [["path", { d: "M10 2v8l3-3 3 3V2" }], ["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-minus.js
var BookMinus;
var init_book_minus = __esmMin((() => {
	BookMinus = [["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }], ["path", { d: "M9 10h6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-open-check.js
var BookOpenCheck;
var init_book_open_check = __esmMin((() => {
	BookOpenCheck = [
		["path", { d: "M12 21V7" }],
		["path", { d: "m16 12 2 2 4-4" }],
		["path", { d: "M22 6V4a1 1 0 0 0-1-1h-5a4 4 0 0 0-4 4 4 4 0 0 0-4-4H3a1 1 0 0 0-1 1v13a1 1 0 0 0 1 1h6a3 3 0 0 1 3 3 3 3 0 0 1 3-3h6a1 1 0 0 0 1-1v-1.3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-open-text.js
var BookOpenText;
var init_book_open_text = __esmMin((() => {
	BookOpenText = [
		["path", { d: "M12 7v14" }],
		["path", { d: "M16 12h2" }],
		["path", { d: "M16 8h2" }],
		["path", { d: "M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z" }],
		["path", { d: "M6 12h2" }],
		["path", { d: "M6 8h2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-open.js
var BookOpen;
var init_book_open = __esmMin((() => {
	BookOpen = [["path", { d: "M12 7v14" }], ["path", { d: "M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-plus.js
var BookPlus;
var init_book_plus = __esmMin((() => {
	BookPlus = [
		["path", { d: "M12 7v6" }],
		["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }],
		["path", { d: "M9 10h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-search.js
var BookSearch;
var init_book_search = __esmMin((() => {
	BookSearch = [
		["path", { d: "M11 22H5.5a1 1 0 0 1 0-5h4.501" }],
		["path", { d: "m21 22-1.879-1.878" }],
		["path", { d: "M3 19.5v-15A2.5 2.5 0 0 1 5.5 2H18a1 1 0 0 1 1 1v8" }],
		["circle", {
			cx: "17",
			cy: "18",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-text.js
var BookText;
var init_book_text = __esmMin((() => {
	BookText = [
		["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }],
		["path", { d: "M8 11h8" }],
		["path", { d: "M8 7h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-type.js
var BookType;
var init_book_type = __esmMin((() => {
	BookType = [
		["path", { d: "M10 13h4" }],
		["path", { d: "M12 6v7" }],
		["path", { d: "M16 8V6H8v2" }],
		["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-up-2.js
var BookUp2;
var init_book_up_2 = __esmMin((() => {
	BookUp2 = [
		["path", { d: "M12 13V7" }],
		["path", { d: "M18 2h1a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }],
		["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2" }],
		["path", { d: "m9 10 3-3 3 3" }],
		["path", { d: "m9 5 3-3 3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-up.js
var BookUp;
var init_book_up = __esmMin((() => {
	BookUp = [
		["path", { d: "M12 13V7" }],
		["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }],
		["path", { d: "m9 10 3-3 3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-user.js
var BookUser;
var init_book_user = __esmMin((() => {
	BookUser = [
		["path", { d: "M15 13a3 3 0 1 0-6 0" }],
		["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }],
		["circle", {
			cx: "12",
			cy: "8",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book-x.js
var BookX;
var init_book_x = __esmMin((() => {
	BookX = [
		["path", { d: "m14.5 7-5 5" }],
		["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }],
		["path", { d: "m9.5 7 5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/book.js
var Book;
var init_book = __esmMin((() => {
	Book = [["path", { d: "M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bookmark-check.js
var BookmarkCheck;
var init_bookmark_check = __esmMin((() => {
	BookmarkCheck = [["path", { d: "m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2Z" }], ["path", { d: "m9 10 2 2 4-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bookmark-minus.js
var BookmarkMinus;
var init_bookmark_minus = __esmMin((() => {
	BookmarkMinus = [["path", { d: "m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z" }], ["line", {
		x1: "15",
		x2: "9",
		y1: "10",
		y2: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bookmark-plus.js
var BookmarkPlus;
var init_bookmark_plus = __esmMin((() => {
	BookmarkPlus = [
		["path", { d: "m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z" }],
		["line", {
			x1: "12",
			x2: "12",
			y1: "7",
			y2: "13"
		}],
		["line", {
			x1: "15",
			x2: "9",
			y1: "10",
			y2: "10"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bookmark-x.js
var BookmarkX;
var init_bookmark_x = __esmMin((() => {
	BookmarkX = [
		["path", { d: "m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2Z" }],
		["path", { d: "m14.5 7.5-5 5" }],
		["path", { d: "m9.5 7.5 5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bookmark.js
var Bookmark;
var init_bookmark = __esmMin((() => {
	Bookmark = [["path", { d: "m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/boom-box.js
var BoomBox;
var init_boom_box = __esmMin((() => {
	BoomBox = [
		["path", { d: "M4 9V5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4" }],
		["path", { d: "M8 8v1" }],
		["path", { d: "M12 8v1" }],
		["path", { d: "M16 8v1" }],
		["rect", {
			width: "20",
			height: "12",
			x: "2",
			y: "9",
			rx: "2"
		}],
		["circle", {
			cx: "8",
			cy: "15",
			r: "2"
		}],
		["circle", {
			cx: "16",
			cy: "15",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bot-message-square.js
var BotMessageSquare;
var init_bot_message_square = __esmMin((() => {
	BotMessageSquare = [
		["path", { d: "M12 6V2H8" }],
		["path", { d: "M15 11v2" }],
		["path", { d: "M2 12h2" }],
		["path", { d: "M20 12h2" }],
		["path", { d: "M20 16a2 2 0 0 1-2 2H8.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 4 20.286V8a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2z" }],
		["path", { d: "M9 11v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bot-off.js
var BotOff;
var init_bot_off = __esmMin((() => {
	BotOff = [
		["path", { d: "M13.67 8H18a2 2 0 0 1 2 2v4.33" }],
		["path", { d: "M2 14h2" }],
		["path", { d: "M20 14h2" }],
		["path", { d: "M22 22 2 2" }],
		["path", { d: "M8 8H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 1.414-.586" }],
		["path", { d: "M9 13v2" }],
		["path", { d: "M9.67 4H12v2.33" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bot.js
var Bot;
var init_bot = __esmMin((() => {
	Bot = [
		["path", { d: "M12 8V4H8" }],
		["rect", {
			width: "16",
			height: "12",
			x: "4",
			y: "8",
			rx: "2"
		}],
		["path", { d: "M2 14h2" }],
		["path", { d: "M20 14h2" }],
		["path", { d: "M15 13v2" }],
		["path", { d: "M9 13v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bottle-wine.js
var BottleWine;
var init_bottle_wine = __esmMin((() => {
	BottleWine = [["path", { d: "M10 3a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a6 6 0 0 0 1.2 3.6l.6.8A6 6 0 0 1 17 13v8a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-8a6 6 0 0 1 1.2-3.6l.6-.8A6 6 0 0 0 10 5z" }], ["path", { d: "M17 13h-4a1 1 0 0 0-1 1v3a1 1 0 0 0 1 1h4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bow-arrow.js
var BowArrow;
var init_bow_arrow = __esmMin((() => {
	BowArrow = [
		["path", { d: "M17 3h4v4" }],
		["path", { d: "M18.575 11.082a13 13 0 0 1 1.048 9.027 1.17 1.17 0 0 1-1.914.597L14 17" }],
		["path", { d: "M7 10 3.29 6.29a1.17 1.17 0 0 1 .6-1.91 13 13 0 0 1 9.03 1.05" }],
		["path", { d: "M7 14a1.7 1.7 0 0 0-1.207.5l-2.646 2.646A.5.5 0 0 0 3.5 18H5a1 1 0 0 1 1 1v1.5a.5.5 0 0 0 .854.354L9.5 18.207A1.7 1.7 0 0 0 10 17v-2a1 1 0 0 0-1-1z" }],
		["path", { d: "M9.707 14.293 21 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/box.js
var Box;
var init_box = __esmMin((() => {
	Box = [
		["path", { d: "M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z" }],
		["path", { d: "m3.3 7 8.7 5 8.7-5" }],
		["path", { d: "M12 22V12" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/boxes.js
var Boxes;
var init_boxes = __esmMin((() => {
	Boxes = [
		["path", { d: "M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z" }],
		["path", { d: "m7 16.5-4.74-2.85" }],
		["path", { d: "m7 16.5 5-3" }],
		["path", { d: "M7 16.5v5.17" }],
		["path", { d: "M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z" }],
		["path", { d: "m17 16.5-5-3" }],
		["path", { d: "m17 16.5 4.74-2.85" }],
		["path", { d: "M17 16.5v5.17" }],
		["path", { d: "M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z" }],
		["path", { d: "M12 8 7.26 5.15" }],
		["path", { d: "m12 8 4.74-2.85" }],
		["path", { d: "M12 13.5V8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/braces.js
var Braces;
var init_braces = __esmMin((() => {
	Braces = [["path", { d: "M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1" }], ["path", { d: "M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/brackets.js
var Brackets;
var init_brackets = __esmMin((() => {
	Brackets = [["path", { d: "M16 3h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-3" }], ["path", { d: "M8 21H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h3" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/brain-circuit.js
var BrainCircuit;
var init_brain_circuit = __esmMin((() => {
	BrainCircuit = [
		["path", { d: "M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z" }],
		["path", { d: "M9 13a4.5 4.5 0 0 0 3-4" }],
		["path", { d: "M6.003 5.125A3 3 0 0 0 6.401 6.5" }],
		["path", { d: "M3.477 10.896a4 4 0 0 1 .585-.396" }],
		["path", { d: "M6 18a4 4 0 0 1-1.967-.516" }],
		["path", { d: "M12 13h4" }],
		["path", { d: "M12 18h6a2 2 0 0 1 2 2v1" }],
		["path", { d: "M12 8h8" }],
		["path", { d: "M16 8V5a2 2 0 0 1 2-2" }],
		["circle", {
			cx: "16",
			cy: "13",
			r: ".5"
		}],
		["circle", {
			cx: "18",
			cy: "3",
			r: ".5"
		}],
		["circle", {
			cx: "20",
			cy: "21",
			r: ".5"
		}],
		["circle", {
			cx: "20",
			cy: "8",
			r: ".5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/brain-cog.js
var BrainCog;
var init_brain_cog = __esmMin((() => {
	BrainCog = [
		["path", { d: "m10.852 14.772-.383.923" }],
		["path", { d: "m10.852 9.228-.383-.923" }],
		["path", { d: "m13.148 14.772.382.924" }],
		["path", { d: "m13.531 8.305-.383.923" }],
		["path", { d: "m14.772 10.852.923-.383" }],
		["path", { d: "m14.772 13.148.923.383" }],
		["path", { d: "M17.598 6.5A3 3 0 1 0 12 5a3 3 0 0 0-5.63-1.446 3 3 0 0 0-.368 1.571 4 4 0 0 0-2.525 5.771" }],
		["path", { d: "M17.998 5.125a4 4 0 0 1 2.525 5.771" }],
		["path", { d: "M19.505 10.294a4 4 0 0 1-1.5 7.706" }],
		["path", { d: "M4.032 17.483A4 4 0 0 0 11.464 20c.18-.311.892-.311 1.072 0a4 4 0 0 0 7.432-2.516" }],
		["path", { d: "M4.5 10.291A4 4 0 0 0 6 18" }],
		["path", { d: "M6.002 5.125a3 3 0 0 0 .4 1.375" }],
		["path", { d: "m9.228 10.852-.923-.383" }],
		["path", { d: "m9.228 13.148-.923.383" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/brain.js
var Brain;
var init_brain = __esmMin((() => {
	Brain = [
		["path", { d: "M12 18V5" }],
		["path", { d: "M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4" }],
		["path", { d: "M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5" }],
		["path", { d: "M17.997 5.125a4 4 0 0 1 2.526 5.77" }],
		["path", { d: "M18 18a4 4 0 0 0 2-7.464" }],
		["path", { d: "M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517" }],
		["path", { d: "M6 18a4 4 0 0 1-2-7.464" }],
		["path", { d: "M6.003 5.125a4 4 0 0 0-2.526 5.77" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/brick-wall-fire.js
var BrickWallFire;
var init_brick_wall_fire = __esmMin((() => {
	BrickWallFire = [
		["path", { d: "M16 3v2.107" }],
		["path", { d: "M17 9c1 3 2.5 3.5 3.5 4.5A5 5 0 0 1 22 17a5 5 0 0 1-10 0c0-.3 0-.6.1-.9a2 2 0 1 0 3.3-2C13 11.5 16 9 17 9" }],
		["path", { d: "M21 8.274V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.938" }],
		["path", { d: "M3 15h5.253" }],
		["path", { d: "M3 9h8.228" }],
		["path", { d: "M8 15v6" }],
		["path", { d: "M8 3v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/brick-wall-shield.js
var BrickWallShield;
var init_brick_wall_shield = __esmMin((() => {
	BrickWallShield = [
		["path", { d: "M12 9v1.258" }],
		["path", { d: "M16 3v5.46" }],
		["path", { d: "M21 9.118V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h5.75" }],
		["path", { d: "M22 17.5c0 2.499-1.75 3.749-3.83 4.474a.5.5 0 0 1-.335-.005c-2.085-.72-3.835-1.97-3.835-4.47V14a.5.5 0 0 1 .5-.499c1 0 2.25-.6 3.12-1.36a.6.6 0 0 1 .76-.001c.875.765 2.12 1.36 3.12 1.36a.5.5 0 0 1 .5.5z" }],
		["path", { d: "M3 15h7" }],
		["path", { d: "M3 9h12.142" }],
		["path", { d: "M8 15v6" }],
		["path", { d: "M8 3v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/brick-wall.js
var BrickWall;
var init_brick_wall = __esmMin((() => {
	BrickWall = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M12 9v6" }],
		["path", { d: "M16 15v6" }],
		["path", { d: "M16 3v6" }],
		["path", { d: "M3 15h18" }],
		["path", { d: "M3 9h18" }],
		["path", { d: "M8 15v6" }],
		["path", { d: "M8 3v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/briefcase-business.js
var BriefcaseBusiness;
var init_briefcase_business = __esmMin((() => {
	BriefcaseBusiness = [
		["path", { d: "M12 12h.01" }],
		["path", { d: "M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2" }],
		["path", { d: "M22 13a18.15 18.15 0 0 1-20 0" }],
		["rect", {
			width: "20",
			height: "14",
			x: "2",
			y: "6",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/briefcase-conveyor-belt.js
var BriefcaseConveyorBelt;
var init_briefcase_conveyor_belt = __esmMin((() => {
	BriefcaseConveyorBelt = [
		["path", { d: "M10 20v2" }],
		["path", { d: "M14 20v2" }],
		["path", { d: "M18 20v2" }],
		["path", { d: "M21 20H3" }],
		["path", { d: "M6 20v2" }],
		["path", { d: "M8 16V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v12" }],
		["rect", {
			x: "4",
			y: "6",
			width: "16",
			height: "10",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/briefcase-medical.js
var BriefcaseMedical;
var init_briefcase_medical = __esmMin((() => {
	BriefcaseMedical = [
		["path", { d: "M12 11v4" }],
		["path", { d: "M14 13h-4" }],
		["path", { d: "M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2" }],
		["path", { d: "M18 6v14" }],
		["path", { d: "M6 6v14" }],
		["rect", {
			width: "20",
			height: "14",
			x: "2",
			y: "6",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/briefcase.js
var Briefcase;
var init_briefcase = __esmMin((() => {
	Briefcase = [["path", { d: "M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16" }], ["rect", {
		width: "20",
		height: "14",
		x: "2",
		y: "6",
		rx: "2"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bring-to-front.js
var BringToFront;
var init_bring_to_front = __esmMin((() => {
	BringToFront = [
		["rect", {
			x: "8",
			y: "8",
			width: "8",
			height: "8",
			rx: "2"
		}],
		["path", { d: "M4 10a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2" }],
		["path", { d: "M14 20a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/brush-cleaning.js
var BrushCleaning;
var init_brush_cleaning = __esmMin((() => {
	BrushCleaning = [
		["path", { d: "m16 22-1-4" }],
		["path", { d: "M19 13.99a1 1 0 0 0 1-1V12a2 2 0 0 0-2-2h-3a1 1 0 0 1-1-1V4a2 2 0 0 0-4 0v5a1 1 0 0 1-1 1H6a2 2 0 0 0-2 2v.99a1 1 0 0 0 1 1" }],
		["path", { d: "M5 14h14l1.973 6.767A1 1 0 0 1 20 22H4a1 1 0 0 1-.973-1.233z" }],
		["path", { d: "m8 22 1-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/brush.js
var Brush;
var init_brush = __esmMin((() => {
	Brush = [
		["path", { d: "m11 10 3 3" }],
		["path", { d: "M6.5 21A3.5 3.5 0 1 0 3 17.5a2.62 2.62 0 0 1-.708 1.792A1 1 0 0 0 3 21z" }],
		["path", { d: "M9.969 17.031 21.378 5.624a1 1 0 0 0-3.002-3.002L6.967 14.031" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bubbles.js
var Bubbles;
var init_bubbles = __esmMin((() => {
	Bubbles = [
		["path", { d: "M7.001 15.085A1.5 1.5 0 0 1 9 16.5" }],
		["circle", {
			cx: "18.5",
			cy: "8.5",
			r: "3.5"
		}],
		["circle", {
			cx: "7.5",
			cy: "16.5",
			r: "5.5"
		}],
		["circle", {
			cx: "7.5",
			cy: "4.5",
			r: "2.5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bug-off.js
var BugOff;
var init_bug_off = __esmMin((() => {
	BugOff = [
		["path", { d: "M12 20v-8" }],
		["path", { d: "M14.12 3.88 16 2" }],
		["path", { d: "M15 7.13V6a3 3 0 0 0-5.14-2.1L8 2" }],
		["path", { d: "M18 12.34V11a4 4 0 0 0-4-4h-1.3" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M21 5a4 4 0 0 1-3.55 3.97" }],
		["path", { d: "M22 13h-3.34" }],
		["path", { d: "M3 21a4 4 0 0 1 3.81-4" }],
		["path", { d: "M6 13H2" }],
		["path", { d: "M7.7 7.7A4 4 0 0 0 6 11v3a6 6 0 0 0 11.13 3.13" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bug-play.js
var BugPlay;
var init_bug_play = __esmMin((() => {
	BugPlay = [
		["path", { d: "M10 19.655A6 6 0 0 1 6 14v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 3.97" }],
		["path", { d: "M14 15.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997a1 1 0 0 1-1.517-.86z" }],
		["path", { d: "M14.12 3.88 16 2" }],
		["path", { d: "M21 5a4 4 0 0 1-3.55 3.97" }],
		["path", { d: "M3 21a4 4 0 0 1 3.81-4" }],
		["path", { d: "M3 5a4 4 0 0 0 3.55 3.97" }],
		["path", { d: "M6 13H2" }],
		["path", { d: "m8 2 1.88 1.88" }],
		["path", { d: "M9 7.13V6a3 3 0 1 1 6 0v1.13" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bug.js
var Bug;
var init_bug = __esmMin((() => {
	Bug = [
		["path", { d: "M12 20v-9" }],
		["path", { d: "M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z" }],
		["path", { d: "M14.12 3.88 16 2" }],
		["path", { d: "M21 21a4 4 0 0 0-3.81-4" }],
		["path", { d: "M21 5a4 4 0 0 1-3.55 3.97" }],
		["path", { d: "M22 13h-4" }],
		["path", { d: "M3 21a4 4 0 0 1 3.81-4" }],
		["path", { d: "M3 5a4 4 0 0 0 3.55 3.97" }],
		["path", { d: "M6 13H2" }],
		["path", { d: "m8 2 1.88 1.88" }],
		["path", { d: "M9 7.13V6a3 3 0 1 1 6 0v1.13" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/building-2.js
var Building2;
var init_building_2 = __esmMin((() => {
	Building2 = [
		["path", { d: "M10 12h4" }],
		["path", { d: "M10 8h4" }],
		["path", { d: "M14 21v-3a2 2 0 0 0-4 0v3" }],
		["path", { d: "M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2" }],
		["path", { d: "M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/building.js
var Building;
var init_building = __esmMin((() => {
	Building = [
		["path", { d: "M12 10h.01" }],
		["path", { d: "M12 14h.01" }],
		["path", { d: "M12 6h.01" }],
		["path", { d: "M16 10h.01" }],
		["path", { d: "M16 14h.01" }],
		["path", { d: "M16 6h.01" }],
		["path", { d: "M8 10h.01" }],
		["path", { d: "M8 14h.01" }],
		["path", { d: "M8 6h.01" }],
		["path", { d: "M9 22v-3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3" }],
		["rect", {
			x: "4",
			y: "2",
			width: "16",
			height: "20",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bus-front.js
var BusFront;
var init_bus_front = __esmMin((() => {
	BusFront = [
		["path", { d: "M4 6 2 7" }],
		["path", { d: "M10 6h4" }],
		["path", { d: "m22 7-2-1" }],
		["rect", {
			width: "16",
			height: "16",
			x: "4",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M4 11h16" }],
		["path", { d: "M8 15h.01" }],
		["path", { d: "M16 15h.01" }],
		["path", { d: "M6 19v2" }],
		["path", { d: "M18 21v-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/bus.js
var Bus;
var init_bus = __esmMin((() => {
	Bus = [
		["path", { d: "M8 6v6" }],
		["path", { d: "M15 6v6" }],
		["path", { d: "M2 12h19.6" }],
		["path", { d: "M18 18h3s.5-1.7.8-2.8c.1-.4.2-.8.2-1.2 0-.4-.1-.8-.2-1.2l-1.4-5C20.1 6.8 19.1 6 18 6H4a2 2 0 0 0-2 2v10h3" }],
		["circle", {
			cx: "7",
			cy: "18",
			r: "2"
		}],
		["path", { d: "M9 18h5" }],
		["circle", {
			cx: "16",
			cy: "18",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cable-car.js
var CableCar;
var init_cable_car = __esmMin((() => {
	CableCar = [
		["path", { d: "M10 3h.01" }],
		["path", { d: "M14 2h.01" }],
		["path", { d: "m2 9 20-5" }],
		["path", { d: "M12 12V6.5" }],
		["rect", {
			width: "16",
			height: "10",
			x: "4",
			y: "12",
			rx: "3"
		}],
		["path", { d: "M9 12v5" }],
		["path", { d: "M15 12v5" }],
		["path", { d: "M4 17h16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cable.js
var Cable;
var init_cable = __esmMin((() => {
	Cable = [
		["path", { d: "M17 19a1 1 0 0 1-1-1v-2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2a1 1 0 0 1-1 1z" }],
		["path", { d: "M17 21v-2" }],
		["path", { d: "M19 14V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V10" }],
		["path", { d: "M21 21v-2" }],
		["path", { d: "M3 5V3" }],
		["path", { d: "M4 10a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2z" }],
		["path", { d: "M7 5V3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cake-slice.js
var CakeSlice;
var init_cake_slice = __esmMin((() => {
	CakeSlice = [
		["path", { d: "M16 13H3" }],
		["path", { d: "M16 17H3" }],
		["path", { d: "m7.2 7.9-3.388 2.5A2 2 0 0 0 3 12.01V20a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-8.654c0-2-2.44-6.026-6.44-8.026a1 1 0 0 0-1.082.057L10.4 5.6" }],
		["circle", {
			cx: "9",
			cy: "7",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cake.js
var Cake;
var init_cake = __esmMin((() => {
	Cake = [
		["path", { d: "M20 21v-8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8" }],
		["path", { d: "M4 16s.5-1 2-1 2.5 2 4 2 2.5-2 4-2 2.5 2 4 2 2-1 2-1" }],
		["path", { d: "M2 21h20" }],
		["path", { d: "M7 8v3" }],
		["path", { d: "M12 8v3" }],
		["path", { d: "M17 8v3" }],
		["path", { d: "M7 4h.01" }],
		["path", { d: "M12 4h.01" }],
		["path", { d: "M17 4h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calculator.js
var Calculator;
var init_calculator = __esmMin((() => {
	Calculator = [
		["rect", {
			width: "16",
			height: "20",
			x: "4",
			y: "2",
			rx: "2"
		}],
		["line", {
			x1: "8",
			x2: "16",
			y1: "6",
			y2: "6"
		}],
		["line", {
			x1: "16",
			x2: "16",
			y1: "14",
			y2: "18"
		}],
		["path", { d: "M16 10h.01" }],
		["path", { d: "M12 10h.01" }],
		["path", { d: "M8 10h.01" }],
		["path", { d: "M12 14h.01" }],
		["path", { d: "M8 14h.01" }],
		["path", { d: "M12 18h.01" }],
		["path", { d: "M8 18h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-1.js
var Calendar1;
var init_calendar_1 = __esmMin((() => {
	Calendar1 = [
		["path", { d: "M11 14h1v4" }],
		["path", { d: "M16 2v4" }],
		["path", { d: "M3 10h18" }],
		["path", { d: "M8 2v4" }],
		["rect", {
			x: "3",
			y: "4",
			width: "18",
			height: "18",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-arrow-down.js
var CalendarArrowDown;
var init_calendar_arrow_down = __esmMin((() => {
	CalendarArrowDown = [
		["path", { d: "m14 18 4 4 4-4" }],
		["path", { d: "M16 2v4" }],
		["path", { d: "M18 14v8" }],
		["path", { d: "M21 11.354V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.343" }],
		["path", { d: "M3 10h18" }],
		["path", { d: "M8 2v4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-arrow-up.js
var CalendarArrowUp;
var init_calendar_arrow_up = __esmMin((() => {
	CalendarArrowUp = [
		["path", { d: "m14 18 4-4 4 4" }],
		["path", { d: "M16 2v4" }],
		["path", { d: "M18 22v-8" }],
		["path", { d: "M21 11.343V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h9" }],
		["path", { d: "M3 10h18" }],
		["path", { d: "M8 2v4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-check-2.js
var CalendarCheck2;
var init_calendar_check_2 = __esmMin((() => {
	CalendarCheck2 = [
		["path", { d: "M8 2v4" }],
		["path", { d: "M16 2v4" }],
		["path", { d: "M21 14V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8" }],
		["path", { d: "M3 10h18" }],
		["path", { d: "m16 20 2 2 4-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-check.js
var CalendarCheck;
var init_calendar_check = __esmMin((() => {
	CalendarCheck = [
		["path", { d: "M8 2v4" }],
		["path", { d: "M16 2v4" }],
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M3 10h18" }],
		["path", { d: "m9 16 2 2 4-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-clock.js
var CalendarClock;
var init_calendar_clock = __esmMin((() => {
	CalendarClock = [
		["path", { d: "M16 14v2.2l1.6 1" }],
		["path", { d: "M16 2v4" }],
		["path", { d: "M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5" }],
		["path", { d: "M3 10h5" }],
		["path", { d: "M8 2v4" }],
		["circle", {
			cx: "16",
			cy: "16",
			r: "6"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-cog.js
var CalendarCog;
var init_calendar_cog = __esmMin((() => {
	CalendarCog = [
		["path", { d: "m15.228 16.852-.923-.383" }],
		["path", { d: "m15.228 19.148-.923.383" }],
		["path", { d: "M16 2v4" }],
		["path", { d: "m16.47 14.305.382.923" }],
		["path", { d: "m16.852 20.772-.383.924" }],
		["path", { d: "m19.148 15.228.383-.923" }],
		["path", { d: "m19.53 21.696-.382-.924" }],
		["path", { d: "m20.772 16.852.924-.383" }],
		["path", { d: "m20.772 19.148.924.383" }],
		["path", { d: "M21 10.592V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6" }],
		["path", { d: "M3 10h18" }],
		["path", { d: "M8 2v4" }],
		["circle", {
			cx: "18",
			cy: "18",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-days.js
var CalendarDays;
var init_calendar_days = __esmMin((() => {
	CalendarDays = [
		["path", { d: "M8 2v4" }],
		["path", { d: "M16 2v4" }],
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M3 10h18" }],
		["path", { d: "M8 14h.01" }],
		["path", { d: "M12 14h.01" }],
		["path", { d: "M16 14h.01" }],
		["path", { d: "M8 18h.01" }],
		["path", { d: "M12 18h.01" }],
		["path", { d: "M16 18h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-fold.js
var CalendarFold;
var init_calendar_fold = __esmMin((() => {
	CalendarFold = [
		["path", { d: "M3 20a2 2 0 0 0 2 2h10a2.4 2.4 0 0 0 1.706-.706l3.588-3.588A2.4 2.4 0 0 0 21 16V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z" }],
		["path", { d: "M15 22v-5a1 1 0 0 1 1-1h5" }],
		["path", { d: "M8 2v4" }],
		["path", { d: "M16 2v4" }],
		["path", { d: "M3 10h18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-heart.js
var CalendarHeart;
var init_calendar_heart = __esmMin((() => {
	CalendarHeart = [
		["path", { d: "M12.127 22H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v5.125" }],
		["path", { d: "M14.62 18.8A2.25 2.25 0 1 1 18 15.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z" }],
		["path", { d: "M16 2v4" }],
		["path", { d: "M3 10h18" }],
		["path", { d: "M8 2v4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-minus.js
var CalendarMinus;
var init_calendar_minus = __esmMin((() => {
	CalendarMinus = [
		["path", { d: "M16 19h6" }],
		["path", { d: "M16 2v4" }],
		["path", { d: "M21 15V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5" }],
		["path", { d: "M3 10h18" }],
		["path", { d: "M8 2v4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-minus-2.js
var CalendarMinus2;
var init_calendar_minus_2 = __esmMin((() => {
	CalendarMinus2 = [
		["path", { d: "M8 2v4" }],
		["path", { d: "M16 2v4" }],
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M3 10h18" }],
		["path", { d: "M10 16h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-off.js
var CalendarOff;
var init_calendar_off = __esmMin((() => {
	CalendarOff = [
		["path", { d: "M4.2 4.2A2 2 0 0 0 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 1.82-1.18" }],
		["path", { d: "M21 15.5V6a2 2 0 0 0-2-2H9.5" }],
		["path", { d: "M16 2v4" }],
		["path", { d: "M3 10h7" }],
		["path", { d: "M21 10h-5.5" }],
		["path", { d: "m2 2 20 20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-plus-2.js
var CalendarPlus2;
var init_calendar_plus_2 = __esmMin((() => {
	CalendarPlus2 = [
		["path", { d: "M8 2v4" }],
		["path", { d: "M16 2v4" }],
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M3 10h18" }],
		["path", { d: "M10 16h4" }],
		["path", { d: "M12 14v4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-plus.js
var CalendarPlus;
var init_calendar_plus = __esmMin((() => {
	CalendarPlus = [
		["path", { d: "M16 19h6" }],
		["path", { d: "M16 2v4" }],
		["path", { d: "M19 16v6" }],
		["path", { d: "M21 12.598V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5" }],
		["path", { d: "M3 10h18" }],
		["path", { d: "M8 2v4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-range.js
var CalendarRange;
var init_calendar_range = __esmMin((() => {
	CalendarRange = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M16 2v4" }],
		["path", { d: "M3 10h18" }],
		["path", { d: "M8 2v4" }],
		["path", { d: "M17 14h-6" }],
		["path", { d: "M13 18H7" }],
		["path", { d: "M7 14h.01" }],
		["path", { d: "M17 18h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-search.js
var CalendarSearch;
var init_calendar_search = __esmMin((() => {
	CalendarSearch = [
		["path", { d: "M16 2v4" }],
		["path", { d: "M21 11.75V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.25" }],
		["path", { d: "m22 22-1.875-1.875" }],
		["path", { d: "M3 10h18" }],
		["path", { d: "M8 2v4" }],
		["circle", {
			cx: "18",
			cy: "18",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-sync.js
var CalendarSync;
var init_calendar_sync = __esmMin((() => {
	CalendarSync = [
		["path", { d: "M11 10v4h4" }],
		["path", { d: "m11 14 1.535-1.605a5 5 0 0 1 8 1.5" }],
		["path", { d: "M16 2v4" }],
		["path", { d: "m21 18-1.535 1.605a5 5 0 0 1-8-1.5" }],
		["path", { d: "M21 22v-4h-4" }],
		["path", { d: "M21 8.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h4.3" }],
		["path", { d: "M3 10h4" }],
		["path", { d: "M8 2v4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-x-2.js
var CalendarX2;
var init_calendar_x_2 = __esmMin((() => {
	CalendarX2 = [
		["path", { d: "M8 2v4" }],
		["path", { d: "M16 2v4" }],
		["path", { d: "M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8" }],
		["path", { d: "M3 10h18" }],
		["path", { d: "m17 22 5-5" }],
		["path", { d: "m17 17 5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar-x.js
var CalendarX;
var init_calendar_x = __esmMin((() => {
	CalendarX = [
		["path", { d: "M8 2v4" }],
		["path", { d: "M16 2v4" }],
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M3 10h18" }],
		["path", { d: "m14 14-4 4" }],
		["path", { d: "m10 14 4 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendar.js
var Calendar;
var init_calendar = __esmMin((() => {
	Calendar = [
		["path", { d: "M8 2v4" }],
		["path", { d: "M16 2v4" }],
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M3 10h18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/calendars.js
var Calendars;
var init_calendars = __esmMin((() => {
	Calendars = [
		["path", { d: "M12 2v2" }],
		["path", { d: "M15.726 21.01A2 2 0 0 1 14 22H4a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2" }],
		["path", { d: "M18 2v2" }],
		["path", { d: "M2 13h2" }],
		["path", { d: "M8 8h14" }],
		["rect", {
			x: "8",
			y: "3",
			width: "14",
			height: "14",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/camera-off.js
var CameraOff;
var init_camera_off = __esmMin((() => {
	CameraOff = [
		["path", { d: "M14.564 14.558a3 3 0 1 1-4.122-4.121" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M20 20H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 .819-.175" }],
		["path", { d: "M9.695 4.024A2 2 0 0 1 10.004 4h3.993a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v7.344" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/camera.js
var Camera;
var init_camera = __esmMin((() => {
	Camera = [["path", { d: "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z" }], ["circle", {
		cx: "12",
		cy: "13",
		r: "3"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/candy-cane.js
var CandyCane;
var init_candy_cane = __esmMin((() => {
	CandyCane = [
		["path", { d: "M5.7 21a2 2 0 0 1-3.5-2l8.6-14a6 6 0 0 1 10.4 6 2 2 0 1 1-3.464-2 2 2 0 1 0-3.464-2Z" }],
		["path", { d: "M17.75 7 15 2.1" }],
		["path", { d: "M10.9 4.8 13 9" }],
		["path", { d: "m7.9 9.7 2 4.4" }],
		["path", { d: "M4.9 14.7 7 18.9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/candy-off.js
var CandyOff;
var init_candy_off = __esmMin((() => {
	CandyOff = [
		["path", { d: "M10 10v7.9" }],
		["path", { d: "M11.802 6.145a5 5 0 0 1 6.053 6.053" }],
		["path", { d: "M14 6.1v2.243" }],
		["path", { d: "m15.5 15.571-.964.964a5 5 0 0 1-7.071 0 5 5 0 0 1 0-7.07l.964-.965" }],
		["path", { d: "M16 7V3a1 1 0 0 1 1.707-.707 2.5 2.5 0 0 0 2.152.717 1 1 0 0 1 1.131 1.131 2.5 2.5 0 0 0 .717 2.152A1 1 0 0 1 21 8h-4" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M8 17v4a1 1 0 0 1-1.707.707 2.5 2.5 0 0 0-2.152-.717 1 1 0 0 1-1.131-1.131 2.5 2.5 0 0 0-.717-2.152A1 1 0 0 1 3 16h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cannabis.js
var Cannabis;
var init_cannabis = __esmMin((() => {
	Cannabis = [["path", { d: "M12 22v-4" }], ["path", { d: "M7 12c-1.5 0-4.5 1.5-5 3 3.5 1.5 6 1 6 1-1.5 1.5-2 3.5-2 5 2.5 0 4.5-1.5 6-3 1.5 1.5 3.5 3 6 3 0-1.5-.5-3.5-2-5 0 0 2.5.5 6-1-.5-1.5-3.5-3-5-3 1.5-1 4-4 4-6-2.5 0-5.5 1.5-7 3 0-2.5-.5-5-2-7-1.5 2-2 4.5-2 7-1.5-1.5-4.5-3-7-3 0 2 2.5 5 4 6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/captions-off.js
var CaptionsOff;
var init_captions_off = __esmMin((() => {
	CaptionsOff = [
		["path", { d: "M10.5 5H19a2 2 0 0 1 2 2v8.5" }],
		["path", { d: "M17 11h-.5" }],
		["path", { d: "M19 19H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M7 11h4" }],
		["path", { d: "M7 15h2.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/candy.js
var Candy;
var init_candy = __esmMin((() => {
	Candy = [
		["path", { d: "M10 7v10.9" }],
		["path", { d: "M14 6.1V17" }],
		["path", { d: "M16 7V3a1 1 0 0 1 1.707-.707 2.5 2.5 0 0 0 2.152.717 1 1 0 0 1 1.131 1.131 2.5 2.5 0 0 0 .717 2.152A1 1 0 0 1 21 8h-4" }],
		["path", { d: "M16.536 7.465a5 5 0 0 0-7.072 0l-2 2a5 5 0 0 0 0 7.07 5 5 0 0 0 7.072 0l2-2a5 5 0 0 0 0-7.07" }],
		["path", { d: "M8 17v4a1 1 0 0 1-1.707.707 2.5 2.5 0 0 0-2.152-.717 1 1 0 0 1-1.131-1.131 2.5 2.5 0 0 0-.717-2.152A1 1 0 0 1 3 16h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/captions.js
var Captions;
var init_captions = __esmMin((() => {
	Captions = [["rect", {
		width: "18",
		height: "14",
		x: "3",
		y: "5",
		rx: "2",
		ry: "2"
	}], ["path", { d: "M7 15h4M15 15h2M7 11h2M13 11h4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/car-front.js
var CarFront;
var init_car_front = __esmMin((() => {
	CarFront = [
		["path", { d: "m21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8" }],
		["path", { d: "M7 14h.01" }],
		["path", { d: "M17 14h.01" }],
		["rect", {
			width: "18",
			height: "8",
			x: "3",
			y: "10",
			rx: "2"
		}],
		["path", { d: "M5 18v2" }],
		["path", { d: "M19 18v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/car-taxi-front.js
var CarTaxiFront;
var init_car_taxi_front = __esmMin((() => {
	CarTaxiFront = [
		["path", { d: "M10 2h4" }],
		["path", { d: "m21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8" }],
		["path", { d: "M7 14h.01" }],
		["path", { d: "M17 14h.01" }],
		["rect", {
			width: "18",
			height: "8",
			x: "3",
			y: "10",
			rx: "2"
		}],
		["path", { d: "M5 18v2" }],
		["path", { d: "M19 18v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/car.js
var Car;
var init_car = __esmMin((() => {
	Car = [
		["path", { d: "M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2" }],
		["circle", {
			cx: "7",
			cy: "17",
			r: "2"
		}],
		["path", { d: "M9 17h6" }],
		["circle", {
			cx: "17",
			cy: "17",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/caravan.js
var Caravan;
var init_caravan = __esmMin((() => {
	Caravan = [
		["path", { d: "M18 19V9a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v8a2 2 0 0 0 2 2h2" }],
		["path", { d: "M2 9h3a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H2" }],
		["path", { d: "M22 17v1a1 1 0 0 1-1 1H10v-9a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v9" }],
		["circle", {
			cx: "8",
			cy: "19",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/card-sim.js
var CardSim;
var init_card_sim = __esmMin((() => {
	CardSim = [
		["path", { d: "M12 14v4" }],
		["path", { d: "M14.172 2a2 2 0 0 1 1.414.586l3.828 3.828A2 2 0 0 1 20 7.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z" }],
		["path", { d: "M8 14h8" }],
		["rect", {
			x: "8",
			y: "10",
			width: "8",
			height: "8",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/carrot.js
var Carrot;
var init_carrot = __esmMin((() => {
	Carrot = [
		["path", { d: "M2.27 21.7s9.87-3.5 12.73-6.36a4.5 4.5 0 0 0-6.36-6.37C5.77 11.84 2.27 21.7 2.27 21.7zM8.64 14l-2.05-2.04M15.34 15l-2.46-2.46" }],
		["path", { d: "M22 9s-1.33-2-3.5-2C16.86 7 15 9 15 9s1.33 2 3.5 2S22 9 22 9z" }],
		["path", { d: "M15 2s-2 1.33-2 3.5S15 9 15 9s2-1.84 2-3.5C17 3.33 15 2 15 2z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/case-lower.js
var CaseLower;
var init_case_lower = __esmMin((() => {
	CaseLower = [
		["path", { d: "M10 9v7" }],
		["path", { d: "M14 6v10" }],
		["circle", {
			cx: "17.5",
			cy: "12.5",
			r: "3.5"
		}],
		["circle", {
			cx: "6.5",
			cy: "12.5",
			r: "3.5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/case-sensitive.js
var CaseSensitive;
var init_case_sensitive = __esmMin((() => {
	CaseSensitive = [
		["path", { d: "m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16" }],
		["path", { d: "M22 9v7" }],
		["path", { d: "M3.304 13h6.392" }],
		["circle", {
			cx: "18.5",
			cy: "12.5",
			r: "3.5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/case-upper.js
var CaseUpper;
var init_case_upper = __esmMin((() => {
	CaseUpper = [
		["path", { d: "M15 11h4.5a1 1 0 0 1 0 5h-4a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5h3a1 1 0 0 1 0 5" }],
		["path", { d: "m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16" }],
		["path", { d: "M3.304 13h6.392" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cassette-tape.js
var CassetteTape;
var init_cassette_tape = __esmMin((() => {
	CassetteTape = [
		["rect", {
			width: "20",
			height: "16",
			x: "2",
			y: "4",
			rx: "2"
		}],
		["circle", {
			cx: "8",
			cy: "10",
			r: "2"
		}],
		["path", { d: "M8 12h8" }],
		["circle", {
			cx: "16",
			cy: "10",
			r: "2"
		}],
		["path", { d: "m6 20 .7-2.9A1.4 1.4 0 0 1 8.1 16h7.8a1.4 1.4 0 0 1 1.4 1l.7 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cast.js
var Cast;
var init_cast = __esmMin((() => {
	Cast = [
		["path", { d: "M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6" }],
		["path", { d: "M2 12a9 9 0 0 1 8 8" }],
		["path", { d: "M2 16a5 5 0 0 1 4 4" }],
		["line", {
			x1: "2",
			x2: "2.01",
			y1: "20",
			y2: "20"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/castle.js
var Castle;
var init_castle = __esmMin((() => {
	Castle = [
		["path", { d: "M10 5V3" }],
		["path", { d: "M14 5V3" }],
		["path", { d: "M15 21v-3a3 3 0 0 0-6 0v3" }],
		["path", { d: "M18 3v8" }],
		["path", { d: "M18 5H6" }],
		["path", { d: "M22 11H2" }],
		["path", { d: "M22 9v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9" }],
		["path", { d: "M6 3v8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cat.js
var Cat;
var init_cat = __esmMin((() => {
	Cat = [
		["path", { d: "M12 5c.67 0 1.35.09 2 .26 1.78-2 5.03-2.84 6.42-2.26 1.4.58-.42 7-.42 7 .57 1.07 1 2.24 1 3.44C21 17.9 16.97 21 12 21s-9-3-9-7.56c0-1.25.5-2.4 1-3.44 0 0-1.89-6.42-.5-7 1.39-.58 4.72.23 6.5 2.23A9.04 9.04 0 0 1 12 5Z" }],
		["path", { d: "M8 14v.5" }],
		["path", { d: "M16 14v.5" }],
		["path", { d: "M11.25 16.25h1.5L12 17l-.75-.75Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cctv.js
var Cctv;
var init_cctv = __esmMin((() => {
	Cctv = [
		["path", { d: "M16.75 12h3.632a1 1 0 0 1 .894 1.447l-2.034 4.069a1 1 0 0 1-1.708.134l-2.124-2.97" }],
		["path", { d: "M17.106 9.053a1 1 0 0 1 .447 1.341l-3.106 6.211a1 1 0 0 1-1.342.447L3.61 12.3a2.92 2.92 0 0 1-1.3-3.91L3.69 5.6a2.92 2.92 0 0 1 3.92-1.3z" }],
		["path", { d: "M2 19h3.76a2 2 0 0 0 1.8-1.1L9 15" }],
		["path", { d: "M2 21v-4" }],
		["path", { d: "M7 9h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-area.js
var ChartArea;
var init_chart_area = __esmMin((() => {
	ChartArea = [["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }], ["path", { d: "M7 11.207a.5.5 0 0 1 .146-.353l2-2a.5.5 0 0 1 .708 0l3.292 3.292a.5.5 0 0 0 .708 0l4.292-4.292a.5.5 0 0 1 .854.353V16a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-bar-big.js
var ChartBarBig;
var init_chart_bar_big = __esmMin((() => {
	ChartBarBig = [
		["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }],
		["rect", {
			x: "7",
			y: "13",
			width: "9",
			height: "4",
			rx: "1"
		}],
		["rect", {
			x: "7",
			y: "5",
			width: "12",
			height: "4",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-bar-decreasing.js
var ChartBarDecreasing;
var init_chart_bar_decreasing = __esmMin((() => {
	ChartBarDecreasing = [
		["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }],
		["path", { d: "M7 11h8" }],
		["path", { d: "M7 16h3" }],
		["path", { d: "M7 6h12" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-bar-increasing.js
var ChartBarIncreasing;
var init_chart_bar_increasing = __esmMin((() => {
	ChartBarIncreasing = [
		["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }],
		["path", { d: "M7 11h8" }],
		["path", { d: "M7 16h12" }],
		["path", { d: "M7 6h3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-bar-stacked.js
var ChartBarStacked;
var init_chart_bar_stacked = __esmMin((() => {
	ChartBarStacked = [
		["path", { d: "M11 13v4" }],
		["path", { d: "M15 5v4" }],
		["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }],
		["rect", {
			x: "7",
			y: "13",
			width: "9",
			height: "4",
			rx: "1"
		}],
		["rect", {
			x: "7",
			y: "5",
			width: "12",
			height: "4",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-bar.js
var ChartBar;
var init_chart_bar = __esmMin((() => {
	ChartBar = [
		["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }],
		["path", { d: "M7 16h8" }],
		["path", { d: "M7 11h12" }],
		["path", { d: "M7 6h3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-candlestick.js
var ChartCandlestick;
var init_chart_candlestick = __esmMin((() => {
	ChartCandlestick = [
		["path", { d: "M9 5v4" }],
		["rect", {
			width: "4",
			height: "6",
			x: "7",
			y: "9",
			rx: "1"
		}],
		["path", { d: "M9 15v2" }],
		["path", { d: "M17 3v2" }],
		["rect", {
			width: "4",
			height: "8",
			x: "15",
			y: "5",
			rx: "1"
		}],
		["path", { d: "M17 13v3" }],
		["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-column-big.js
var ChartColumnBig;
var init_chart_column_big = __esmMin((() => {
	ChartColumnBig = [
		["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }],
		["rect", {
			x: "15",
			y: "5",
			width: "4",
			height: "12",
			rx: "1"
		}],
		["rect", {
			x: "7",
			y: "8",
			width: "4",
			height: "9",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-column-increasing.js
var ChartColumnIncreasing;
var init_chart_column_increasing = __esmMin((() => {
	ChartColumnIncreasing = [
		["path", { d: "M13 17V9" }],
		["path", { d: "M18 17V5" }],
		["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }],
		["path", { d: "M8 17v-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-column-decreasing.js
var ChartColumnDecreasing;
var init_chart_column_decreasing = __esmMin((() => {
	ChartColumnDecreasing = [
		["path", { d: "M13 17V9" }],
		["path", { d: "M18 17v-3" }],
		["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }],
		["path", { d: "M8 17V5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-column-stacked.js
var ChartColumnStacked;
var init_chart_column_stacked = __esmMin((() => {
	ChartColumnStacked = [
		["path", { d: "M11 13H7" }],
		["path", { d: "M19 9h-4" }],
		["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }],
		["rect", {
			x: "15",
			y: "5",
			width: "4",
			height: "12",
			rx: "1"
		}],
		["rect", {
			x: "7",
			y: "8",
			width: "4",
			height: "9",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-column.js
var ChartColumn;
var init_chart_column = __esmMin((() => {
	ChartColumn = [
		["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }],
		["path", { d: "M18 17V9" }],
		["path", { d: "M13 17V5" }],
		["path", { d: "M8 17v-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-gantt.js
var ChartGantt;
var init_chart_gantt = __esmMin((() => {
	ChartGantt = [
		["path", { d: "M10 6h8" }],
		["path", { d: "M12 16h6" }],
		["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }],
		["path", { d: "M8 11h7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-line.js
var ChartLine;
var init_chart_line = __esmMin((() => {
	ChartLine = [["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }], ["path", { d: "m19 9-5 5-4-4-3 3" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-network.js
var ChartNetwork;
var init_chart_network = __esmMin((() => {
	ChartNetwork = [
		["path", { d: "m13.11 7.664 1.78 2.672" }],
		["path", { d: "m14.162 12.788-3.324 1.424" }],
		["path", { d: "m20 4-6.06 1.515" }],
		["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }],
		["circle", {
			cx: "12",
			cy: "6",
			r: "2"
		}],
		["circle", {
			cx: "16",
			cy: "12",
			r: "2"
		}],
		["circle", {
			cx: "9",
			cy: "15",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-no-axes-column-decreasing.js
var ChartNoAxesColumnDecreasing;
var init_chart_no_axes_column_decreasing = __esmMin((() => {
	ChartNoAxesColumnDecreasing = [
		["path", { d: "M5 21V3" }],
		["path", { d: "M12 21V9" }],
		["path", { d: "M19 21v-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-no-axes-column-increasing.js
var ChartNoAxesColumnIncreasing;
var init_chart_no_axes_column_increasing = __esmMin((() => {
	ChartNoAxesColumnIncreasing = [
		["path", { d: "M5 21v-6" }],
		["path", { d: "M12 21V9" }],
		["path", { d: "M19 21V3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-no-axes-column.js
var ChartNoAxesColumn;
var init_chart_no_axes_column = __esmMin((() => {
	ChartNoAxesColumn = [
		["path", { d: "M5 21v-6" }],
		["path", { d: "M12 21V3" }],
		["path", { d: "M19 21V9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-no-axes-combined.js
var ChartNoAxesCombined;
var init_chart_no_axes_combined = __esmMin((() => {
	ChartNoAxesCombined = [
		["path", { d: "M12 16v5" }],
		["path", { d: "M16 14v7" }],
		["path", { d: "M20 10v11" }],
		["path", { d: "m22 3-8.646 8.646a.5.5 0 0 1-.708 0L9.354 8.354a.5.5 0 0 0-.707 0L2 15" }],
		["path", { d: "M4 18v3" }],
		["path", { d: "M8 14v7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-no-axes-gantt.js
var ChartNoAxesGantt;
var init_chart_no_axes_gantt = __esmMin((() => {
	ChartNoAxesGantt = [
		["path", { d: "M6 5h12" }],
		["path", { d: "M4 12h10" }],
		["path", { d: "M12 19h8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-pie.js
var ChartPie;
var init_chart_pie = __esmMin((() => {
	ChartPie = [["path", { d: "M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z" }], ["path", { d: "M21.21 15.89A10 10 0 1 1 8 2.83" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-scatter.js
var ChartScatter;
var init_chart_scatter = __esmMin((() => {
	ChartScatter = [
		["circle", {
			cx: "7.5",
			cy: "7.5",
			r: ".5",
			fill: "currentColor"
		}],
		["circle", {
			cx: "18.5",
			cy: "5.5",
			r: ".5",
			fill: "currentColor"
		}],
		["circle", {
			cx: "11.5",
			cy: "11.5",
			r: ".5",
			fill: "currentColor"
		}],
		["circle", {
			cx: "7.5",
			cy: "16.5",
			r: ".5",
			fill: "currentColor"
		}],
		["circle", {
			cx: "17.5",
			cy: "14.5",
			r: ".5",
			fill: "currentColor"
		}],
		["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chart-spline.js
var ChartSpline;
var init_chart_spline = __esmMin((() => {
	ChartSpline = [["path", { d: "M3 3v16a2 2 0 0 0 2 2h16" }], ["path", { d: "M7 16c.5-2 1.5-7 4-7 2 0 2 3 4 3 2.5 0 4.5-5 5-7" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/check-check.js
var CheckCheck;
var init_check_check = __esmMin((() => {
	CheckCheck = [["path", { d: "M18 6 7 17l-5-5" }], ["path", { d: "m22 10-7.5 7.5L13 16" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/check-line.js
var CheckLine;
var init_check_line = __esmMin((() => {
	CheckLine = [
		["path", { d: "M20 4L9 15" }],
		["path", { d: "M21 19L3 19" }],
		["path", { d: "M9 15L4 10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/check.js
var Check;
var init_check = __esmMin((() => {
	Check = [["path", { d: "M20 6 9 17l-5-5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chef-hat.js
var ChefHat;
var init_chef_hat = __esmMin((() => {
	ChefHat = [["path", { d: "M17 21a1 1 0 0 0 1-1v-5.35c0-.457.316-.844.727-1.041a4 4 0 0 0-2.134-7.589 5 5 0 0 0-9.186 0 4 4 0 0 0-2.134 7.588c.411.198.727.585.727 1.041V20a1 1 0 0 0 1 1Z" }], ["path", { d: "M6 17h12" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cherry.js
var Cherry;
var init_cherry = __esmMin((() => {
	Cherry = [
		["path", { d: "M2 17a5 5 0 0 0 10 0c0-2.76-2.5-5-5-3-2.5-2-5 .24-5 3Z" }],
		["path", { d: "M12 17a5 5 0 0 0 10 0c0-2.76-2.5-5-5-3-2.5-2-5 .24-5 3Z" }],
		["path", { d: "M7 14c3.22-2.91 4.29-8.75 5-12 1.66 2.38 4.94 9 5 12" }],
		["path", { d: "M22 9c-4.29 0-7.14-2.33-10-7 5.71 0 10 4.67 10 7Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chess-bishop.js
var ChessBishop;
var init_chess_bishop = __esmMin((() => {
	ChessBishop = [
		["path", { d: "M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z" }],
		["path", { d: "M15 18c1.5-.615 3-2.461 3-4.923C18 8.769 14.5 4.462 12 2 9.5 4.462 6 8.77 6 13.077 6 15.539 7.5 17.385 9 18" }],
		["path", { d: "m16 7-2.5 2.5" }],
		["path", { d: "M9 2h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chess-king.js
var ChessKing;
var init_chess_king = __esmMin((() => {
	ChessKing = [
		["path", { d: "M4 20a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1z" }],
		["path", { d: "m6.7 18-1-1C4.35 15.682 3 14.09 3 12a5 5 0 0 1 4.95-5c1.584 0 2.7.455 4.05 1.818C13.35 7.455 14.466 7 16.05 7A5 5 0 0 1 21 12c0 2.082-1.359 3.673-2.7 5l-1 1" }],
		["path", { d: "M10 4h4" }],
		["path", { d: "M12 2v6.818" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chess-knight.js
var ChessKnight;
var init_chess_knight = __esmMin((() => {
	ChessKnight = [
		["path", { d: "M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z" }],
		["path", { d: "M16.5 18c1-2 2.5-5 2.5-9a7 7 0 0 0-7-7H6.635a1 1 0 0 0-.768 1.64L7 5l-2.32 5.802a2 2 0 0 0 .95 2.526l2.87 1.456" }],
		["path", { d: "m15 5 1.425-1.425" }],
		["path", { d: "m17 8 1.53-1.53" }],
		["path", { d: "M9.713 12.185 7 18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chess-pawn.js
var ChessPawn;
var init_chess_pawn = __esmMin((() => {
	ChessPawn = [
		["path", { d: "M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z" }],
		["path", { d: "m14.5 10 1.5 8" }],
		["path", { d: "M7 10h10" }],
		["path", { d: "m8 18 1.5-8" }],
		["circle", {
			cx: "12",
			cy: "6",
			r: "4"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chess-queen.js
var ChessQueen;
var init_chess_queen = __esmMin((() => {
	ChessQueen = [
		["path", { d: "M4 20a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1z" }],
		["path", { d: "m12.474 5.943 1.567 5.34a1 1 0 0 0 1.75.328l2.616-3.402" }],
		["path", { d: "m20 9-3 9" }],
		["path", { d: "m5.594 8.209 2.615 3.403a1 1 0 0 0 1.75-.329l1.567-5.34" }],
		["path", { d: "M7 18 4 9" }],
		["circle", {
			cx: "12",
			cy: "4",
			r: "2"
		}],
		["circle", {
			cx: "20",
			cy: "7",
			r: "2"
		}],
		["circle", {
			cx: "4",
			cy: "7",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chess-rook.js
var ChessRook;
var init_chess_rook = __esmMin((() => {
	ChessRook = [
		["path", { d: "M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z" }],
		["path", { d: "M10 2v2" }],
		["path", { d: "M14 2v2" }],
		["path", { d: "m17 18-1-9" }],
		["path", { d: "M6 2v5a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2" }],
		["path", { d: "M6 4h12" }],
		["path", { d: "m7 18 1-9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chevron-down.js
var ChevronDown;
var init_chevron_down = __esmMin((() => {
	ChevronDown = [["path", { d: "m6 9 6 6 6-6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chevron-first.js
var ChevronFirst;
var init_chevron_first = __esmMin((() => {
	ChevronFirst = [["path", { d: "m17 18-6-6 6-6" }], ["path", { d: "M7 6v12" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chevron-last.js
var ChevronLast;
var init_chevron_last = __esmMin((() => {
	ChevronLast = [["path", { d: "m7 18 6-6-6-6" }], ["path", { d: "M17 6v12" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chevron-left.js
var ChevronLeft;
var init_chevron_left = __esmMin((() => {
	ChevronLeft = [["path", { d: "m15 18-6-6 6-6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chevron-right.js
var ChevronRight;
var init_chevron_right = __esmMin((() => {
	ChevronRight = [["path", { d: "m9 18 6-6-6-6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chevron-up.js
var ChevronUp;
var init_chevron_up = __esmMin((() => {
	ChevronUp = [["path", { d: "m18 15-6-6-6 6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chevrons-down-up.js
var ChevronsDownUp;
var init_chevrons_down_up = __esmMin((() => {
	ChevronsDownUp = [["path", { d: "m7 20 5-5 5 5" }], ["path", { d: "m7 4 5 5 5-5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chevrons-down.js
var ChevronsDown;
var init_chevrons_down = __esmMin((() => {
	ChevronsDown = [["path", { d: "m7 6 5 5 5-5" }], ["path", { d: "m7 13 5 5 5-5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chevrons-left-right-ellipsis.js
var ChevronsLeftRightEllipsis;
var init_chevrons_left_right_ellipsis = __esmMin((() => {
	ChevronsLeftRightEllipsis = [
		["path", { d: "M12 12h.01" }],
		["path", { d: "M16 12h.01" }],
		["path", { d: "m17 7 5 5-5 5" }],
		["path", { d: "m7 7-5 5 5 5" }],
		["path", { d: "M8 12h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chevrons-left-right.js
var ChevronsLeftRight;
var init_chevrons_left_right = __esmMin((() => {
	ChevronsLeftRight = [["path", { d: "m9 7-5 5 5 5" }], ["path", { d: "m15 7 5 5-5 5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chevrons-left.js
var ChevronsLeft;
var init_chevrons_left = __esmMin((() => {
	ChevronsLeft = [["path", { d: "m11 17-5-5 5-5" }], ["path", { d: "m18 17-5-5 5-5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chevrons-right-left.js
var ChevronsRightLeft;
var init_chevrons_right_left = __esmMin((() => {
	ChevronsRightLeft = [["path", { d: "m20 17-5-5 5-5" }], ["path", { d: "m4 17 5-5-5-5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chevrons-right.js
var ChevronsRight;
var init_chevrons_right = __esmMin((() => {
	ChevronsRight = [["path", { d: "m6 17 5-5-5-5" }], ["path", { d: "m13 17 5-5-5-5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chevrons-up-down.js
var ChevronsUpDown;
var init_chevrons_up_down = __esmMin((() => {
	ChevronsUpDown = [["path", { d: "m7 15 5 5 5-5" }], ["path", { d: "m7 9 5-5 5 5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chevrons-up.js
var ChevronsUp;
var init_chevrons_up = __esmMin((() => {
	ChevronsUp = [["path", { d: "m17 11-5-5-5 5" }], ["path", { d: "m17 18-5-5-5 5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/chromium.js
var Chromium;
var init_chromium = __esmMin((() => {
	Chromium = [
		["path", { d: "M10.88 21.94 15.46 14" }],
		["path", { d: "M21.17 8H12" }],
		["path", { d: "M3.95 6.06 8.54 14" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["circle", {
			cx: "12",
			cy: "12",
			r: "4"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/church.js
var Church;
var init_church = __esmMin((() => {
	Church = [
		["path", { d: "M10 9h4" }],
		["path", { d: "M12 7v5" }],
		["path", { d: "M14 21v-3a2 2 0 0 0-4 0v3" }],
		["path", { d: "m18 9 3.52 2.147a1 1 0 0 1 .48.854V19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-6.999a1 1 0 0 1 .48-.854L6 9" }],
		["path", { d: "M6 21V7a1 1 0 0 1 .376-.782l5-3.999a1 1 0 0 1 1.249.001l5 4A1 1 0 0 1 18 7v14" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cigarette-off.js
var CigaretteOff;
var init_cigarette_off = __esmMin((() => {
	CigaretteOff = [
		["path", { d: "M12 12H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h13" }],
		["path", { d: "M18 8c0-2.5-2-2.5-2-5" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M21 12a1 1 0 0 1 1 1v2a1 1 0 0 1-.5.866" }],
		["path", { d: "M22 8c0-2.5-2-2.5-2-5" }],
		["path", { d: "M7 12v4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cigarette.js
var Cigarette;
var init_cigarette = __esmMin((() => {
	Cigarette = [
		["path", { d: "M17 12H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h14" }],
		["path", { d: "M18 8c0-2.5-2-2.5-2-5" }],
		["path", { d: "M21 16a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1" }],
		["path", { d: "M22 8c0-2.5-2-2.5-2-5" }],
		["path", { d: "M7 12v4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-alert.js
var CircleAlert;
var init_circle_alert = __esmMin((() => {
	CircleAlert = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["line", {
			x1: "12",
			x2: "12",
			y1: "8",
			y2: "12"
		}],
		["line", {
			x1: "12",
			x2: "12.01",
			y1: "16",
			y2: "16"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-arrow-down.js
var CircleArrowDown;
var init_circle_arrow_down = __esmMin((() => {
	CircleArrowDown = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "M12 8v8" }],
		["path", { d: "m8 12 4 4 4-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-arrow-left.js
var CircleArrowLeft;
var init_circle_arrow_left = __esmMin((() => {
	CircleArrowLeft = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "m12 8-4 4 4 4" }],
		["path", { d: "M16 12H8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-arrow-out-down-left.js
var CircleArrowOutDownLeft;
var init_circle_arrow_out_down_left = __esmMin((() => {
	CircleArrowOutDownLeft = [
		["path", { d: "M2 12a10 10 0 1 1 10 10" }],
		["path", { d: "m2 22 10-10" }],
		["path", { d: "M8 22H2v-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-arrow-out-down-right.js
var CircleArrowOutDownRight;
var init_circle_arrow_out_down_right = __esmMin((() => {
	CircleArrowOutDownRight = [
		["path", { d: "M12 22a10 10 0 1 1 10-10" }],
		["path", { d: "M22 22 12 12" }],
		["path", { d: "M22 16v6h-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-arrow-out-up-left.js
var CircleArrowOutUpLeft;
var init_circle_arrow_out_up_left = __esmMin((() => {
	CircleArrowOutUpLeft = [
		["path", { d: "M2 8V2h6" }],
		["path", { d: "m2 2 10 10" }],
		["path", { d: "M12 2A10 10 0 1 1 2 12" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-arrow-out-up-right.js
var CircleArrowOutUpRight;
var init_circle_arrow_out_up_right = __esmMin((() => {
	CircleArrowOutUpRight = [
		["path", { d: "M22 12A10 10 0 1 1 12 2" }],
		["path", { d: "M22 2 12 12" }],
		["path", { d: "M16 2h6v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-arrow-right.js
var CircleArrowRight;
var init_circle_arrow_right = __esmMin((() => {
	CircleArrowRight = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "m12 16 4-4-4-4" }],
		["path", { d: "M8 12h8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-arrow-up.js
var CircleArrowUp;
var init_circle_arrow_up = __esmMin((() => {
	CircleArrowUp = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "m16 12-4-4-4 4" }],
		["path", { d: "M12 16V8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-check-big.js
var CircleCheckBig;
var init_circle_check_big = __esmMin((() => {
	CircleCheckBig = [["path", { d: "M21.801 10A10 10 0 1 1 17 3.335" }], ["path", { d: "m9 11 3 3L22 4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-check.js
var CircleCheck;
var init_circle_check = __esmMin((() => {
	CircleCheck = [["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}], ["path", { d: "m9 12 2 2 4-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-chevron-down.js
var CircleChevronDown;
var init_circle_chevron_down = __esmMin((() => {
	CircleChevronDown = [["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}], ["path", { d: "m16 10-4 4-4-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-chevron-left.js
var CircleChevronLeft;
var init_circle_chevron_left = __esmMin((() => {
	CircleChevronLeft = [["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}], ["path", { d: "m14 16-4-4 4-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-chevron-right.js
var CircleChevronRight;
var init_circle_chevron_right = __esmMin((() => {
	CircleChevronRight = [["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}], ["path", { d: "m10 8 4 4-4 4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-chevron-up.js
var CircleChevronUp;
var init_circle_chevron_up = __esmMin((() => {
	CircleChevronUp = [["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}], ["path", { d: "m8 14 4-4 4 4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-dashed.js
var CircleDashed;
var init_circle_dashed = __esmMin((() => {
	CircleDashed = [
		["path", { d: "M10.1 2.182a10 10 0 0 1 3.8 0" }],
		["path", { d: "M13.9 21.818a10 10 0 0 1-3.8 0" }],
		["path", { d: "M17.609 3.721a10 10 0 0 1 2.69 2.7" }],
		["path", { d: "M2.182 13.9a10 10 0 0 1 0-3.8" }],
		["path", { d: "M20.279 17.609a10 10 0 0 1-2.7 2.69" }],
		["path", { d: "M21.818 10.1a10 10 0 0 1 0 3.8" }],
		["path", { d: "M3.721 6.391a10 10 0 0 1 2.7-2.69" }],
		["path", { d: "M6.391 20.279a10 10 0 0 1-2.69-2.7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-divide.js
var CircleDivide;
var init_circle_divide = __esmMin((() => {
	CircleDivide = [
		["line", {
			x1: "8",
			x2: "16",
			y1: "12",
			y2: "12"
		}],
		["line", {
			x1: "12",
			x2: "12",
			y1: "16",
			y2: "16"
		}],
		["line", {
			x1: "12",
			x2: "12",
			y1: "8",
			y2: "8"
		}],
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-dollar-sign.js
var CircleDollarSign;
var init_circle_dollar_sign = __esmMin((() => {
	CircleDollarSign = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8" }],
		["path", { d: "M12 18V6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-dot-dashed.js
var CircleDotDashed;
var init_circle_dot_dashed = __esmMin((() => {
	CircleDotDashed = [
		["path", { d: "M10.1 2.18a9.93 9.93 0 0 1 3.8 0" }],
		["path", { d: "M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7" }],
		["path", { d: "M21.82 10.1a9.93 9.93 0 0 1 0 3.8" }],
		["path", { d: "M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69" }],
		["path", { d: "M13.9 21.82a9.94 9.94 0 0 1-3.8 0" }],
		["path", { d: "M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7" }],
		["path", { d: "M2.18 13.9a9.93 9.93 0 0 1 0-3.8" }],
		["path", { d: "M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-dot.js
var CircleDot;
var init_circle_dot = __esmMin((() => {
	CircleDot = [["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}], ["circle", {
		cx: "12",
		cy: "12",
		r: "1"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-ellipsis.js
var CircleEllipsis;
var init_circle_ellipsis = __esmMin((() => {
	CircleEllipsis = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "M17 12h.01" }],
		["path", { d: "M12 12h.01" }],
		["path", { d: "M7 12h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-equal.js
var CircleEqual;
var init_circle_equal = __esmMin((() => {
	CircleEqual = [
		["path", { d: "M7 10h10" }],
		["path", { d: "M7 14h10" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-fading-arrow-up.js
var CircleFadingArrowUp;
var init_circle_fading_arrow_up = __esmMin((() => {
	CircleFadingArrowUp = [
		["path", { d: "M12 2a10 10 0 0 1 7.38 16.75" }],
		["path", { d: "m16 12-4-4-4 4" }],
		["path", { d: "M12 16V8" }],
		["path", { d: "M2.5 8.875a10 10 0 0 0-.5 3" }],
		["path", { d: "M2.83 16a10 10 0 0 0 2.43 3.4" }],
		["path", { d: "M4.636 5.235a10 10 0 0 1 .891-.857" }],
		["path", { d: "M8.644 21.42a10 10 0 0 0 7.631-.38" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-fading-plus.js
var CircleFadingPlus;
var init_circle_fading_plus = __esmMin((() => {
	CircleFadingPlus = [
		["path", { d: "M12 2a10 10 0 0 1 7.38 16.75" }],
		["path", { d: "M12 8v8" }],
		["path", { d: "M16 12H8" }],
		["path", { d: "M2.5 8.875a10 10 0 0 0-.5 3" }],
		["path", { d: "M2.83 16a10 10 0 0 0 2.43 3.4" }],
		["path", { d: "M4.636 5.235a10 10 0 0 1 .891-.857" }],
		["path", { d: "M8.644 21.42a10 10 0 0 0 7.631-.38" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-gauge.js
var CircleGauge;
var init_circle_gauge = __esmMin((() => {
	CircleGauge = [
		["path", { d: "M15.6 2.7a10 10 0 1 0 5.7 5.7" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "2"
		}],
		["path", { d: "M13.4 10.6 19 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-minus.js
var CircleMinus;
var init_circle_minus = __esmMin((() => {
	CircleMinus = [["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}], ["path", { d: "M8 12h8" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-off.js
var CircleOff;
var init_circle_off = __esmMin((() => {
	CircleOff = [
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M8.35 2.69A10 10 0 0 1 21.3 15.65" }],
		["path", { d: "M19.08 19.08A10 10 0 1 1 4.92 4.92" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-parking-off.js
var CircleParkingOff;
var init_circle_parking_off = __esmMin((() => {
	CircleParkingOff = [
		["path", { d: "M12.656 7H13a3 3 0 0 1 2.984 3.307" }],
		["path", { d: "M13 13H9" }],
		["path", { d: "M19.071 19.071A1 1 0 0 1 4.93 4.93" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M8.357 2.687a10 10 0 0 1 12.956 12.956" }],
		["path", { d: "M9 17V9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-parking.js
var CircleParking;
var init_circle_parking = __esmMin((() => {
	CircleParking = [["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}], ["path", { d: "M9 17V7h4a3 3 0 0 1 0 6H9" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-pause.js
var CirclePause;
var init_circle_pause = __esmMin((() => {
	CirclePause = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["line", {
			x1: "10",
			x2: "10",
			y1: "15",
			y2: "9"
		}],
		["line", {
			x1: "14",
			x2: "14",
			y1: "15",
			y2: "9"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-percent.js
var CirclePercent;
var init_circle_percent = __esmMin((() => {
	CirclePercent = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "m15 9-6 6" }],
		["path", { d: "M9 9h.01" }],
		["path", { d: "M15 15h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-play.js
var CirclePlay;
var init_circle_play = __esmMin((() => {
	CirclePlay = [["path", { d: "M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-plus.js
var CirclePlus;
var init_circle_plus = __esmMin((() => {
	CirclePlus = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "M8 12h8" }],
		["path", { d: "M12 8v8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-pound-sterling.js
var CirclePoundSterling;
var init_circle_pound_sterling = __esmMin((() => {
	CirclePoundSterling = [
		["path", { d: "M10 16V9.5a1 1 0 0 1 5 0" }],
		["path", { d: "M8 12h4" }],
		["path", { d: "M8 16h7" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-power.js
var CirclePower;
var init_circle_power = __esmMin((() => {
	CirclePower = [
		["path", { d: "M12 7v4" }],
		["path", { d: "M7.998 9.003a5 5 0 1 0 8-.005" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-question-mark.js
var CircleQuestionMark;
var init_circle_question_mark = __esmMin((() => {
	CircleQuestionMark = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" }],
		["path", { d: "M12 17h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-slash-2.js
var CircleSlash2;
var init_circle_slash_2 = __esmMin((() => {
	CircleSlash2 = [["path", { d: "M22 2 2 22" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-slash.js
var CircleSlash;
var init_circle_slash = __esmMin((() => {
	CircleSlash = [["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}], ["line", {
		x1: "9",
		x2: "15",
		y1: "15",
		y2: "9"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-small.js
var CircleSmall;
var init_circle_small = __esmMin((() => {
	CircleSmall = [["circle", {
		cx: "12",
		cy: "12",
		r: "6"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-star.js
var CircleStar;
var init_circle_star = __esmMin((() => {
	CircleStar = [["path", { d: "M11.051 7.616a1 1 0 0 1 1.909.024l.737 1.452a1 1 0 0 0 .737.535l1.634.256a1 1 0 0 1 .588 1.806l-1.172 1.168a1 1 0 0 0-.282.866l.259 1.613a1 1 0 0 1-1.541 1.134l-1.465-.75a1 1 0 0 0-.912 0l-1.465.75a1 1 0 0 1-1.539-1.133l.258-1.613a1 1 0 0 0-.282-.867l-1.156-1.152a1 1 0 0 1 .572-1.822l1.633-.256a1 1 0 0 0 .737-.535z" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-stop.js
var CircleStop;
var init_circle_stop = __esmMin((() => {
	CircleStop = [["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}], ["rect", {
		x: "9",
		y: "9",
		width: "6",
		height: "6",
		rx: "1"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-user-round.js
var CircleUserRound;
var init_circle_user_round = __esmMin((() => {
	CircleUserRound = [
		["path", { d: "M18 20a6 6 0 0 0-12 0" }],
		["circle", {
			cx: "12",
			cy: "10",
			r: "4"
		}],
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-user.js
var CircleUser;
var init_circle_user = __esmMin((() => {
	CircleUser = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["circle", {
			cx: "12",
			cy: "10",
			r: "3"
		}],
		["path", { d: "M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle-x.js
var CircleX;
var init_circle_x = __esmMin((() => {
	CircleX = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "m15 9-6 6" }],
		["path", { d: "m9 9 6 6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circle.js
var Circle;
var init_circle = __esmMin((() => {
	Circle = [["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/circuit-board.js
var CircuitBoard;
var init_circuit_board = __esmMin((() => {
	CircuitBoard = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M11 9h4a2 2 0 0 0 2-2V3" }],
		["circle", {
			cx: "9",
			cy: "9",
			r: "2"
		}],
		["path", { d: "M7 21v-4a2 2 0 0 1 2-2h4" }],
		["circle", {
			cx: "15",
			cy: "15",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/citrus.js
var Citrus;
var init_citrus = __esmMin((() => {
	Citrus = [
		["path", { d: "M21.66 17.67a1.08 1.08 0 0 1-.04 1.6A12 12 0 0 1 4.73 2.38a1.1 1.1 0 0 1 1.61-.04z" }],
		["path", { d: "M19.65 15.66A8 8 0 0 1 8.35 4.34" }],
		["path", { d: "m14 10-5.5 5.5" }],
		["path", { d: "M14 17.85V10H6.15" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clapperboard.js
var Clapperboard;
var init_clapperboard = __esmMin((() => {
	Clapperboard = [
		["path", { d: "M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3Z" }],
		["path", { d: "m6.2 5.3 3.1 3.9" }],
		["path", { d: "m12.4 3.4 3.1 4" }],
		["path", { d: "M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clipboard-check.js
var ClipboardCheck;
var init_clipboard_check = __esmMin((() => {
	ClipboardCheck = [
		["rect", {
			width: "8",
			height: "4",
			x: "8",
			y: "2",
			rx: "1",
			ry: "1"
		}],
		["path", { d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" }],
		["path", { d: "m9 14 2 2 4-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clipboard-clock.js
var ClipboardClock;
var init_clipboard_clock = __esmMin((() => {
	ClipboardClock = [
		["path", { d: "M16 14v2.2l1.6 1" }],
		["path", { d: "M16 4h2a2 2 0 0 1 2 2v.832" }],
		["path", { d: "M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h2" }],
		["circle", {
			cx: "16",
			cy: "16",
			r: "6"
		}],
		["rect", {
			x: "8",
			y: "2",
			width: "8",
			height: "4",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clipboard-copy.js
var ClipboardCopy;
var init_clipboard_copy = __esmMin((() => {
	ClipboardCopy = [
		["rect", {
			width: "8",
			height: "4",
			x: "8",
			y: "2",
			rx: "1",
			ry: "1"
		}],
		["path", { d: "M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2" }],
		["path", { d: "M16 4h2a2 2 0 0 1 2 2v4" }],
		["path", { d: "M21 14H11" }],
		["path", { d: "m15 10-4 4 4 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clipboard-list.js
var ClipboardList;
var init_clipboard_list = __esmMin((() => {
	ClipboardList = [
		["rect", {
			width: "8",
			height: "4",
			x: "8",
			y: "2",
			rx: "1",
			ry: "1"
		}],
		["path", { d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" }],
		["path", { d: "M12 11h4" }],
		["path", { d: "M12 16h4" }],
		["path", { d: "M8 11h.01" }],
		["path", { d: "M8 16h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clipboard-paste.js
var ClipboardPaste;
var init_clipboard_paste = __esmMin((() => {
	ClipboardPaste = [
		["path", { d: "M11 14h10" }],
		["path", { d: "M16 4h2a2 2 0 0 1 2 2v1.344" }],
		["path", { d: "m17 18 4-4-4-4" }],
		["path", { d: "M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113" }],
		["rect", {
			x: "8",
			y: "2",
			width: "8",
			height: "4",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clipboard-minus.js
var ClipboardMinus;
var init_clipboard_minus = __esmMin((() => {
	ClipboardMinus = [
		["rect", {
			width: "8",
			height: "4",
			x: "8",
			y: "2",
			rx: "1",
			ry: "1"
		}],
		["path", { d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" }],
		["path", { d: "M9 14h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clipboard-pen-line.js
var ClipboardPenLine;
var init_clipboard_pen_line = __esmMin((() => {
	ClipboardPenLine = [
		["rect", {
			width: "8",
			height: "4",
			x: "8",
			y: "2",
			rx: "1"
		}],
		["path", { d: "M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-.5" }],
		["path", { d: "M16 4h2a2 2 0 0 1 1.73 1" }],
		["path", { d: "M8 18h1" }],
		["path", { d: "M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clipboard-pen.js
var ClipboardPen;
var init_clipboard_pen = __esmMin((() => {
	ClipboardPen = [
		["rect", {
			width: "8",
			height: "4",
			x: "8",
			y: "2",
			rx: "1"
		}],
		["path", { d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-5.5" }],
		["path", { d: "M4 13.5V6a2 2 0 0 1 2-2h2" }],
		["path", { d: "M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clipboard-plus.js
var ClipboardPlus;
var init_clipboard_plus = __esmMin((() => {
	ClipboardPlus = [
		["rect", {
			width: "8",
			height: "4",
			x: "8",
			y: "2",
			rx: "1",
			ry: "1"
		}],
		["path", { d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" }],
		["path", { d: "M9 14h6" }],
		["path", { d: "M12 17v-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clipboard-type.js
var ClipboardType;
var init_clipboard_type = __esmMin((() => {
	ClipboardType = [
		["rect", {
			width: "8",
			height: "4",
			x: "8",
			y: "2",
			rx: "1",
			ry: "1"
		}],
		["path", { d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" }],
		["path", { d: "M9 12v-1h6v1" }],
		["path", { d: "M11 17h2" }],
		["path", { d: "M12 11v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clipboard.js
var Clipboard;
var init_clipboard = __esmMin((() => {
	Clipboard = [["rect", {
		width: "8",
		height: "4",
		x: "8",
		y: "2",
		rx: "1",
		ry: "1"
	}], ["path", { d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clipboard-x.js
var ClipboardX;
var init_clipboard_x = __esmMin((() => {
	ClipboardX = [
		["rect", {
			width: "8",
			height: "4",
			x: "8",
			y: "2",
			rx: "1",
			ry: "1"
		}],
		["path", { d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" }],
		["path", { d: "m15 11-6 6" }],
		["path", { d: "m9 11 6 6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-1.js
var Clock1;
var init_clock_1 = __esmMin((() => {
	Clock1 = [["path", { d: "M12 6v6l2-4" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-10.js
var Clock10;
var init_clock_10 = __esmMin((() => {
	Clock10 = [["path", { d: "M12 6v6l-4-2" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-12.js
var Clock12;
var init_clock_12 = __esmMin((() => {
	Clock12 = [["path", { d: "M12 6v6" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-2.js
var Clock2;
var init_clock_2 = __esmMin((() => {
	Clock2 = [["path", { d: "M12 6v6l4-2" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-3.js
var Clock3;
var init_clock_3 = __esmMin((() => {
	Clock3 = [["path", { d: "M12 6v6h4" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-11.js
var Clock11;
var init_clock_11 = __esmMin((() => {
	Clock11 = [["path", { d: "M12 6v6l-2-4" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-4.js
var Clock4;
var init_clock_4 = __esmMin((() => {
	Clock4 = [["path", { d: "M12 6v6l4 2" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-5.js
var Clock5;
var init_clock_5 = __esmMin((() => {
	Clock5 = [["path", { d: "M12 6v6l2 4" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-6.js
var Clock6;
var init_clock_6 = __esmMin((() => {
	Clock6 = [["path", { d: "M12 6v10" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-7.js
var Clock7;
var init_clock_7 = __esmMin((() => {
	Clock7 = [["path", { d: "M12 6v6l-2 4" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-8.js
var Clock8;
var init_clock_8 = __esmMin((() => {
	Clock8 = [["path", { d: "M12 6v6l-4 2" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-9.js
var Clock9;
var init_clock_9 = __esmMin((() => {
	Clock9 = [["path", { d: "M12 6v6H8" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-alert.js
var ClockAlert;
var init_clock_alert = __esmMin((() => {
	ClockAlert = [
		["path", { d: "M12 6v6l4 2" }],
		["path", { d: "M20 12v5" }],
		["path", { d: "M20 21h.01" }],
		["path", { d: "M21.25 8.2A10 10 0 1 0 16 21.16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-arrow-down.js
var ClockArrowDown;
var init_clock_arrow_down = __esmMin((() => {
	ClockArrowDown = [
		["path", { d: "M12 6v6l2 1" }],
		["path", { d: "M12.337 21.994a10 10 0 1 1 9.588-8.767" }],
		["path", { d: "m14 18 4 4 4-4" }],
		["path", { d: "M18 14v8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-arrow-up.js
var ClockArrowUp;
var init_clock_arrow_up = __esmMin((() => {
	ClockArrowUp = [
		["path", { d: "M12 6v6l1.56.78" }],
		["path", { d: "M13.227 21.925a10 10 0 1 1 8.767-9.588" }],
		["path", { d: "m14 18 4-4 4 4" }],
		["path", { d: "M18 22v-8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-check.js
var ClockCheck;
var init_clock_check = __esmMin((() => {
	ClockCheck = [
		["path", { d: "M12 6v6l4 2" }],
		["path", { d: "M22 12a10 10 0 1 0-11 9.95" }],
		["path", { d: "m22 16-5.5 5.5L14 19" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-fading.js
var ClockFading;
var init_clock_fading = __esmMin((() => {
	ClockFading = [
		["path", { d: "M12 2a10 10 0 0 1 7.38 16.75" }],
		["path", { d: "M12 6v6l4 2" }],
		["path", { d: "M2.5 8.875a10 10 0 0 0-.5 3" }],
		["path", { d: "M2.83 16a10 10 0 0 0 2.43 3.4" }],
		["path", { d: "M4.636 5.235a10 10 0 0 1 .891-.857" }],
		["path", { d: "M8.644 21.42a10 10 0 0 0 7.631-.38" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock-plus.js
var ClockPlus;
var init_clock_plus = __esmMin((() => {
	ClockPlus = [
		["path", { d: "M12 6v6l3.644 1.822" }],
		["path", { d: "M16 19h6" }],
		["path", { d: "M19 16v6" }],
		["path", { d: "M21.92 13.267a10 10 0 1 0-8.653 8.653" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clock.js
var Clock;
var init_clock = __esmMin((() => {
	Clock = [["path", { d: "M12 6v6l4 2" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/closed-caption.js
var ClosedCaption;
var init_closed_caption = __esmMin((() => {
	ClosedCaption = [
		["path", { d: "M10 9.17a3 3 0 1 0 0 5.66" }],
		["path", { d: "M17 9.17a3 3 0 1 0 0 5.66" }],
		["rect", {
			x: "2",
			y: "5",
			width: "20",
			height: "14",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud-alert.js
var CloudAlert;
var init_cloud_alert = __esmMin((() => {
	CloudAlert = [
		["path", { d: "M12 12v4" }],
		["path", { d: "M12 20h.01" }],
		["path", { d: "M17 18h.5a1 1 0 0 0 0-9h-1.79A7 7 0 1 0 7 17.708" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud-check.js
var CloudCheck;
var init_cloud_check = __esmMin((() => {
	CloudCheck = [["path", { d: "m17 15-5.5 5.5L9 18" }], ["path", { d: "M5 17.743A7 7 0 1 1 15.71 10h1.79a4.5 4.5 0 0 1 1.5 8.742" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud-download.js
var CloudDownload;
var init_cloud_download = __esmMin((() => {
	CloudDownload = [
		["path", { d: "M12 13v8l-4-4" }],
		["path", { d: "m12 21 4-4" }],
		["path", { d: "M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud-cog.js
var CloudCog;
var init_cloud_cog = __esmMin((() => {
	CloudCog = [
		["path", { d: "m10.852 19.772-.383.924" }],
		["path", { d: "m13.148 14.228.383-.923" }],
		["path", { d: "M13.148 19.772a3 3 0 1 0-2.296-5.544l-.383-.923" }],
		["path", { d: "m13.53 20.696-.382-.924a3 3 0 1 1-2.296-5.544" }],
		["path", { d: "m14.772 15.852.923-.383" }],
		["path", { d: "m14.772 18.148.923.383" }],
		["path", { d: "M4.2 15.1a7 7 0 1 1 9.93-9.858A7 7 0 0 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.2" }],
		["path", { d: "m9.228 15.852-.923-.383" }],
		["path", { d: "m9.228 18.148-.923.383" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud-drizzle.js
var CloudDrizzle;
var init_cloud_drizzle = __esmMin((() => {
	CloudDrizzle = [
		["path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242" }],
		["path", { d: "M8 19v1" }],
		["path", { d: "M8 14v1" }],
		["path", { d: "M16 19v1" }],
		["path", { d: "M16 14v1" }],
		["path", { d: "M12 21v1" }],
		["path", { d: "M12 16v1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud-fog.js
var CloudFog;
var init_cloud_fog = __esmMin((() => {
	CloudFog = [
		["path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242" }],
		["path", { d: "M16 17H7" }],
		["path", { d: "M17 21H9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud-hail.js
var CloudHail;
var init_cloud_hail = __esmMin((() => {
	CloudHail = [
		["path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242" }],
		["path", { d: "M16 14v2" }],
		["path", { d: "M8 14v2" }],
		["path", { d: "M16 20h.01" }],
		["path", { d: "M8 20h.01" }],
		["path", { d: "M12 16v2" }],
		["path", { d: "M12 22h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud-lightning.js
var CloudLightning;
var init_cloud_lightning = __esmMin((() => {
	CloudLightning = [["path", { d: "M6 16.326A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 .5 8.973" }], ["path", { d: "m13 12-3 5h4l-3 5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud-moon-rain.js
var CloudMoonRain;
var init_cloud_moon_rain = __esmMin((() => {
	CloudMoonRain = [
		["path", { d: "M11 20v2" }],
		["path", { d: "M18.376 14.512a6 6 0 0 0 3.461-4.127c.148-.625-.659-.97-1.248-.714a4 4 0 0 1-5.259-5.26c.255-.589-.09-1.395-.716-1.248a6 6 0 0 0-4.594 5.36" }],
		["path", { d: "M3 20a5 5 0 1 1 8.9-4H13a3 3 0 0 1 2 5.24" }],
		["path", { d: "M7 19v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud-moon.js
var CloudMoon;
var init_cloud_moon = __esmMin((() => {
	CloudMoon = [["path", { d: "M13 16a3 3 0 0 1 0 6H7a5 5 0 1 1 4.9-6z" }], ["path", { d: "M18.376 14.512a6 6 0 0 0 3.461-4.127c.148-.625-.659-.97-1.248-.714a4 4 0 0 1-5.259-5.26c.255-.589-.09-1.395-.716-1.248a6 6 0 0 0-4.594 5.36" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud-off.js
var CloudOff;
var init_cloud_off = __esmMin((() => {
	CloudOff = [
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M5.782 5.782A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.307-.193" }],
		["path", { d: "M21.532 16.5A4.5 4.5 0 0 0 17.5 10h-1.79A7.008 7.008 0 0 0 10 5.07" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud-rain-wind.js
var CloudRainWind;
var init_cloud_rain_wind = __esmMin((() => {
	CloudRainWind = [
		["path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242" }],
		["path", { d: "m9.2 22 3-7" }],
		["path", { d: "m9 13-3 7" }],
		["path", { d: "m17 13-3 7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud-rain.js
var CloudRain;
var init_cloud_rain = __esmMin((() => {
	CloudRain = [
		["path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242" }],
		["path", { d: "M16 14v6" }],
		["path", { d: "M8 14v6" }],
		["path", { d: "M12 16v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud-snow.js
var CloudSnow;
var init_cloud_snow = __esmMin((() => {
	CloudSnow = [
		["path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242" }],
		["path", { d: "M8 15h.01" }],
		["path", { d: "M8 19h.01" }],
		["path", { d: "M12 17h.01" }],
		["path", { d: "M12 21h.01" }],
		["path", { d: "M16 15h.01" }],
		["path", { d: "M16 19h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud-sun-rain.js
var CloudSunRain;
var init_cloud_sun_rain = __esmMin((() => {
	CloudSunRain = [
		["path", { d: "M12 2v2" }],
		["path", { d: "m4.93 4.93 1.41 1.41" }],
		["path", { d: "M20 12h2" }],
		["path", { d: "m19.07 4.93-1.41 1.41" }],
		["path", { d: "M15.947 12.65a4 4 0 0 0-5.925-4.128" }],
		["path", { d: "M3 20a5 5 0 1 1 8.9-4H13a3 3 0 0 1 2 5.24" }],
		["path", { d: "M11 20v2" }],
		["path", { d: "M7 19v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud-sun.js
var CloudSun;
var init_cloud_sun = __esmMin((() => {
	CloudSun = [
		["path", { d: "M12 2v2" }],
		["path", { d: "m4.93 4.93 1.41 1.41" }],
		["path", { d: "M20 12h2" }],
		["path", { d: "m19.07 4.93-1.41 1.41" }],
		["path", { d: "M15.947 12.65a4 4 0 0 0-5.925-4.128" }],
		["path", { d: "M13 22H7a5 5 0 1 1 4.9-6H13a3 3 0 0 1 0 6Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud-upload.js
var CloudUpload;
var init_cloud_upload = __esmMin((() => {
	CloudUpload = [
		["path", { d: "M12 13v8" }],
		["path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242" }],
		["path", { d: "m8 17 4-4 4 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloud.js
var Cloud;
var init_cloud = __esmMin((() => {
	Cloud = [["path", { d: "M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cloudy.js
var Cloudy;
var init_cloudy = __esmMin((() => {
	Cloudy = [["path", { d: "M17.5 21H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z" }], ["path", { d: "M22 10a3 3 0 0 0-3-3h-2.207a5.502 5.502 0 0 0-10.702.5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/clover.js
var Clover;
var init_clover = __esmMin((() => {
	Clover = [
		["path", { d: "M16.17 7.83 2 22" }],
		["path", { d: "M4.02 12a2.827 2.827 0 1 1 3.81-4.17A2.827 2.827 0 1 1 12 4.02a2.827 2.827 0 1 1 4.17 3.81A2.827 2.827 0 1 1 19.98 12a2.827 2.827 0 1 1-3.81 4.17A2.827 2.827 0 1 1 12 19.98a2.827 2.827 0 1 1-4.17-3.81A1 1 0 1 1 4 12" }],
		["path", { d: "m7.83 7.83 8.34 8.34" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/club.js
var Club;
var init_club = __esmMin((() => {
	Club = [["path", { d: "M17.28 9.05a5.5 5.5 0 1 0-10.56 0A5.5 5.5 0 1 0 12 17.66a5.5 5.5 0 1 0 5.28-8.6Z" }], ["path", { d: "M12 17.66L12 22" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/code-xml.js
var CodeXml;
var init_code_xml = __esmMin((() => {
	CodeXml = [
		["path", { d: "m18 16 4-4-4-4" }],
		["path", { d: "m6 8-4 4 4 4" }],
		["path", { d: "m14.5 4-5 16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/code.js
var Code;
var init_code = __esmMin((() => {
	Code = [["path", { d: "m16 18 6-6-6-6" }], ["path", { d: "m8 6-6 6 6 6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/codepen.js
var Codepen;
var init_codepen = __esmMin((() => {
	Codepen = [
		["polygon", { points: "12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2" }],
		["line", {
			x1: "12",
			x2: "12",
			y1: "22",
			y2: "15.5"
		}],
		["polyline", { points: "22 8.5 12 15.5 2 8.5" }],
		["polyline", { points: "2 15.5 12 8.5 22 15.5" }],
		["line", {
			x1: "12",
			x2: "12",
			y1: "2",
			y2: "8.5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/codesandbox.js
var Codesandbox;
var init_codesandbox = __esmMin((() => {
	Codesandbox = [
		["path", { d: "M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z" }],
		["polyline", { points: "7.5 4.21 12 6.81 16.5 4.21" }],
		["polyline", { points: "7.5 19.79 7.5 14.6 3 12" }],
		["polyline", { points: "21 12 16.5 14.6 16.5 19.79" }],
		["polyline", { points: "3.27 6.96 12 12.01 20.73 6.96" }],
		["line", {
			x1: "12",
			x2: "12",
			y1: "22.08",
			y2: "12"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/coffee.js
var Coffee;
var init_coffee = __esmMin((() => {
	Coffee = [
		["path", { d: "M10 2v2" }],
		["path", { d: "M14 2v2" }],
		["path", { d: "M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1" }],
		["path", { d: "M6 2v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cog.js
var Cog;
var init_cog = __esmMin((() => {
	Cog = [
		["path", { d: "M11 10.27 7 3.34" }],
		["path", { d: "m11 13.73-4 6.93" }],
		["path", { d: "M12 22v-2" }],
		["path", { d: "M12 2v2" }],
		["path", { d: "M14 12h8" }],
		["path", { d: "m17 20.66-1-1.73" }],
		["path", { d: "m17 3.34-1 1.73" }],
		["path", { d: "M2 12h2" }],
		["path", { d: "m20.66 17-1.73-1" }],
		["path", { d: "m20.66 7-1.73 1" }],
		["path", { d: "m3.34 17 1.73-1" }],
		["path", { d: "m3.34 7 1.73 1" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "2"
		}],
		["circle", {
			cx: "12",
			cy: "12",
			r: "8"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/coins.js
var Coins;
var init_coins = __esmMin((() => {
	Coins = [
		["circle", {
			cx: "8",
			cy: "8",
			r: "6"
		}],
		["path", { d: "M18.09 10.37A6 6 0 1 1 10.34 18" }],
		["path", { d: "M7 6h1v4" }],
		["path", { d: "m16.71 13.88.7.71-2.82 2.82" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/columns-3-cog.js
var Columns3Cog;
var init_columns_3_cog = __esmMin((() => {
	Columns3Cog = [
		["path", { d: "M10.5 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v5.5" }],
		["path", { d: "m14.3 19.6 1-.4" }],
		["path", { d: "M15 3v7.5" }],
		["path", { d: "m15.2 16.9-.9-.3" }],
		["path", { d: "m16.6 21.7.3-.9" }],
		["path", { d: "m16.8 15.3-.4-1" }],
		["path", { d: "m19.1 15.2.3-.9" }],
		["path", { d: "m19.6 21.7-.4-1" }],
		["path", { d: "m20.7 16.8 1-.4" }],
		["path", { d: "m21.7 19.4-.9-.3" }],
		["path", { d: "M9 3v18" }],
		["circle", {
			cx: "18",
			cy: "18",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/columns-2.js
var Columns2;
var init_columns_2 = __esmMin((() => {
	Columns2 = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["path", { d: "M12 3v18" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/columns-3.js
var Columns3;
var init_columns_3 = __esmMin((() => {
	Columns3 = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M9 3v18" }],
		["path", { d: "M15 3v18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/columns-4.js
var Columns4;
var init_columns_4 = __esmMin((() => {
	Columns4 = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M7.5 3v18" }],
		["path", { d: "M12 3v18" }],
		["path", { d: "M16.5 3v18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/combine.js
var Combine;
var init_combine = __esmMin((() => {
	Combine = [
		["path", { d: "M14 3a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1" }],
		["path", { d: "M19 3a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1" }],
		["path", { d: "m7 15 3 3" }],
		["path", { d: "m7 21 3-3H5a2 2 0 0 1-2-2v-2" }],
		["rect", {
			x: "14",
			y: "14",
			width: "7",
			height: "7",
			rx: "1"
		}],
		["rect", {
			x: "3",
			y: "3",
			width: "7",
			height: "7",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/command.js
var Command;
var init_command = __esmMin((() => {
	Command = [["path", { d: "M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/compass.js
var Compass;
var init_compass = __esmMin((() => {
	Compass = [["path", { d: "m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/component.js
var Component;
var init_component = __esmMin((() => {
	Component = [
		["path", { d: "M15.536 11.293a1 1 0 0 0 0 1.414l2.376 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z" }],
		["path", { d: "M2.297 11.293a1 1 0 0 0 0 1.414l2.377 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414L6.088 8.916a1 1 0 0 0-1.414 0z" }],
		["path", { d: "M8.916 17.912a1 1 0 0 0 0 1.415l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.415l-2.377-2.376a1 1 0 0 0-1.414 0z" }],
		["path", { d: "M8.916 4.674a1 1 0 0 0 0 1.414l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/computer.js
var Computer;
var init_computer = __esmMin((() => {
	Computer = [
		["rect", {
			width: "14",
			height: "8",
			x: "5",
			y: "2",
			rx: "2"
		}],
		["rect", {
			width: "20",
			height: "8",
			x: "2",
			y: "14",
			rx: "2"
		}],
		["path", { d: "M6 18h2" }],
		["path", { d: "M12 18h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/concierge-bell.js
var ConciergeBell;
var init_concierge_bell = __esmMin((() => {
	ConciergeBell = [
		["path", { d: "M3 20a1 1 0 0 1-1-1v-1a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1Z" }],
		["path", { d: "M20 16a8 8 0 1 0-16 0" }],
		["path", { d: "M12 4v4" }],
		["path", { d: "M10 4h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cone.js
var Cone;
var init_cone = __esmMin((() => {
	Cone = [["path", { d: "m20.9 18.55-8-15.98a1 1 0 0 0-1.8 0l-8 15.98" }], ["ellipse", {
		cx: "12",
		cy: "19",
		rx: "9",
		ry: "3"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/construction.js
var Construction;
var init_construction = __esmMin((() => {
	Construction = [
		["rect", {
			x: "2",
			y: "6",
			width: "20",
			height: "8",
			rx: "1"
		}],
		["path", { d: "M17 14v7" }],
		["path", { d: "M7 14v7" }],
		["path", { d: "M17 3v3" }],
		["path", { d: "M7 3v3" }],
		["path", { d: "M10 14 2.3 6.3" }],
		["path", { d: "m14 6 7.7 7.7" }],
		["path", { d: "m8 6 8 8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/contact-round.js
var ContactRound;
var init_contact_round = __esmMin((() => {
	ContactRound = [
		["path", { d: "M16 2v2" }],
		["path", { d: "M17.915 22a6 6 0 0 0-12 0" }],
		["path", { d: "M8 2v2" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "4"
		}],
		["rect", {
			x: "3",
			y: "4",
			width: "18",
			height: "18",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/contact.js
var Contact;
var init_contact = __esmMin((() => {
	Contact = [
		["path", { d: "M16 2v2" }],
		["path", { d: "M7 22v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2" }],
		["path", { d: "M8 2v2" }],
		["circle", {
			cx: "12",
			cy: "11",
			r: "3"
		}],
		["rect", {
			x: "3",
			y: "4",
			width: "18",
			height: "18",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/container.js
var Container;
var init_container = __esmMin((() => {
	Container = [
		["path", { d: "M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z" }],
		["path", { d: "M10 21.9V14L2.1 9.1" }],
		["path", { d: "m10 14 11.9-6.9" }],
		["path", { d: "M14 19.8v-8.1" }],
		["path", { d: "M18 17.5V9.4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/contrast.js
var Contrast;
var init_contrast = __esmMin((() => {
	Contrast = [["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}], ["path", { d: "M12 18a6 6 0 0 0 0-12v12z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cookie.js
var Cookie;
var init_cookie = __esmMin((() => {
	Cookie = [
		["path", { d: "M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5" }],
		["path", { d: "M8.5 8.5v.01" }],
		["path", { d: "M16 15.5v.01" }],
		["path", { d: "M12 12v.01" }],
		["path", { d: "M11 17v.01" }],
		["path", { d: "M7 14v.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cooking-pot.js
var CookingPot;
var init_cooking_pot = __esmMin((() => {
	CookingPot = [
		["path", { d: "M2 12h20" }],
		["path", { d: "M20 12v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8" }],
		["path", { d: "m4 8 16-4" }],
		["path", { d: "m8.86 6.78-.45-1.81a2 2 0 0 1 1.45-2.43l1.94-.48a2 2 0 0 1 2.43 1.46l.45 1.8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/copy-check.js
var CopyCheck;
var init_copy_check = __esmMin((() => {
	CopyCheck = [
		["path", { d: "m12 15 2 2 4-4" }],
		["rect", {
			width: "14",
			height: "14",
			x: "8",
			y: "8",
			rx: "2",
			ry: "2"
		}],
		["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/copy-minus.js
var CopyMinus;
var init_copy_minus = __esmMin((() => {
	CopyMinus = [
		["line", {
			x1: "12",
			x2: "18",
			y1: "15",
			y2: "15"
		}],
		["rect", {
			width: "14",
			height: "14",
			x: "8",
			y: "8",
			rx: "2",
			ry: "2"
		}],
		["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/copy-plus.js
var CopyPlus;
var init_copy_plus = __esmMin((() => {
	CopyPlus = [
		["line", {
			x1: "15",
			x2: "15",
			y1: "12",
			y2: "18"
		}],
		["line", {
			x1: "12",
			x2: "18",
			y1: "15",
			y2: "15"
		}],
		["rect", {
			width: "14",
			height: "14",
			x: "8",
			y: "8",
			rx: "2",
			ry: "2"
		}],
		["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/copy-slash.js
var CopySlash;
var init_copy_slash = __esmMin((() => {
	CopySlash = [
		["line", {
			x1: "12",
			x2: "18",
			y1: "18",
			y2: "12"
		}],
		["rect", {
			width: "14",
			height: "14",
			x: "8",
			y: "8",
			rx: "2",
			ry: "2"
		}],
		["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/copy-x.js
var CopyX;
var init_copy_x = __esmMin((() => {
	CopyX = [
		["line", {
			x1: "12",
			x2: "18",
			y1: "12",
			y2: "18"
		}],
		["line", {
			x1: "12",
			x2: "18",
			y1: "18",
			y2: "12"
		}],
		["rect", {
			width: "14",
			height: "14",
			x: "8",
			y: "8",
			rx: "2",
			ry: "2"
		}],
		["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/copy.js
var Copy;
var init_copy = __esmMin((() => {
	Copy = [["rect", {
		width: "14",
		height: "14",
		x: "8",
		y: "8",
		rx: "2",
		ry: "2"
	}], ["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/copyright.js
var Copyright;
var init_copyright = __esmMin((() => {
	Copyright = [["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}], ["path", { d: "M14.83 14.83a4 4 0 1 1 0-5.66" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/copyleft.js
var Copyleft;
var init_copyleft = __esmMin((() => {
	Copyleft = [["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}], ["path", { d: "M9.17 14.83a4 4 0 1 0 0-5.66" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/corner-down-left.js
var CornerDownLeft;
var init_corner_down_left = __esmMin((() => {
	CornerDownLeft = [["path", { d: "M20 4v7a4 4 0 0 1-4 4H4" }], ["path", { d: "m9 10-5 5 5 5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/corner-down-right.js
var CornerDownRight;
var init_corner_down_right = __esmMin((() => {
	CornerDownRight = [["path", { d: "m15 10 5 5-5 5" }], ["path", { d: "M4 4v7a4 4 0 0 0 4 4h12" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/corner-left-down.js
var CornerLeftDown;
var init_corner_left_down = __esmMin((() => {
	CornerLeftDown = [["path", { d: "m14 15-5 5-5-5" }], ["path", { d: "M20 4h-7a4 4 0 0 0-4 4v12" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/corner-left-up.js
var CornerLeftUp;
var init_corner_left_up = __esmMin((() => {
	CornerLeftUp = [["path", { d: "M14 9 9 4 4 9" }], ["path", { d: "M20 20h-7a4 4 0 0 1-4-4V4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/corner-right-down.js
var CornerRightDown;
var init_corner_right_down = __esmMin((() => {
	CornerRightDown = [["path", { d: "m10 15 5 5 5-5" }], ["path", { d: "M4 4h7a4 4 0 0 1 4 4v12" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/corner-right-up.js
var CornerRightUp;
var init_corner_right_up = __esmMin((() => {
	CornerRightUp = [["path", { d: "m10 9 5-5 5 5" }], ["path", { d: "M4 20h7a4 4 0 0 0 4-4V4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/corner-up-left.js
var CornerUpLeft;
var init_corner_up_left = __esmMin((() => {
	CornerUpLeft = [["path", { d: "M20 20v-7a4 4 0 0 0-4-4H4" }], ["path", { d: "M9 14 4 9l5-5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cpu.js
var Cpu;
var init_cpu = __esmMin((() => {
	Cpu = [
		["path", { d: "M12 20v2" }],
		["path", { d: "M12 2v2" }],
		["path", { d: "M17 20v2" }],
		["path", { d: "M17 2v2" }],
		["path", { d: "M2 12h2" }],
		["path", { d: "M2 17h2" }],
		["path", { d: "M2 7h2" }],
		["path", { d: "M20 12h2" }],
		["path", { d: "M20 17h2" }],
		["path", { d: "M20 7h2" }],
		["path", { d: "M7 20v2" }],
		["path", { d: "M7 2v2" }],
		["rect", {
			x: "4",
			y: "4",
			width: "16",
			height: "16",
			rx: "2"
		}],
		["rect", {
			x: "8",
			y: "8",
			width: "8",
			height: "8",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/creative-commons.js
var CreativeCommons;
var init_creative_commons = __esmMin((() => {
	CreativeCommons = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "M10 9.3a2.8 2.8 0 0 0-3.5 1 3.1 3.1 0 0 0 0 3.4 2.7 2.7 0 0 0 3.5 1" }],
		["path", { d: "M17 9.3a2.8 2.8 0 0 0-3.5 1 3.1 3.1 0 0 0 0 3.4 2.7 2.7 0 0 0 3.5 1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/credit-card.js
var CreditCard;
var init_credit_card = __esmMin((() => {
	CreditCard = [["rect", {
		width: "20",
		height: "14",
		x: "2",
		y: "5",
		rx: "2"
	}], ["line", {
		x1: "2",
		x2: "22",
		y1: "10",
		y2: "10"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/corner-up-right.js
var CornerUpRight;
var init_corner_up_right = __esmMin((() => {
	CornerUpRight = [["path", { d: "m15 14 5-5-5-5" }], ["path", { d: "M4 20v-7a4 4 0 0 1 4-4h12" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/croissant.js
var Croissant;
var init_croissant = __esmMin((() => {
	Croissant = [
		["path", { d: "M10.2 18H4.774a1.5 1.5 0 0 1-1.352-.97 11 11 0 0 1 .132-6.487" }],
		["path", { d: "M18 10.2V4.774a1.5 1.5 0 0 0-.97-1.352 11 11 0 0 0-6.486.132" }],
		["path", { d: "M18 5a4 3 0 0 1 4 3 2 2 0 0 1-2 2 10 10 0 0 0-5.139 1.42" }],
		["path", { d: "M5 18a3 4 0 0 0 3 4 2 2 0 0 0 2-2 10 10 0 0 1 1.42-5.14" }],
		["path", { d: "M8.709 2.554a10 10 0 0 0-6.155 6.155 1.5 1.5 0 0 0 .676 1.626l9.807 5.42a2 2 0 0 0 2.718-2.718l-5.42-9.807a1.5 1.5 0 0 0-1.626-.676" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/crop.js
var Crop;
var init_crop = __esmMin((() => {
	Crop = [["path", { d: "M6 2v14a2 2 0 0 0 2 2h14" }], ["path", { d: "M18 22V8a2 2 0 0 0-2-2H2" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cross.js
var Cross;
var init_cross = __esmMin((() => {
	Cross = [["path", { d: "M4 9a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h4a1 1 0 0 1 1 1v4a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-4a1 1 0 0 1 1-1h4a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-4a1 1 0 0 1-1-1V4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4a1 1 0 0 1-1 1z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/crosshair.js
var Crosshair;
var init_crosshair = __esmMin((() => {
	Crosshair = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["line", {
			x1: "22",
			x2: "18",
			y1: "12",
			y2: "12"
		}],
		["line", {
			x1: "6",
			x2: "2",
			y1: "12",
			y2: "12"
		}],
		["line", {
			x1: "12",
			x2: "12",
			y1: "6",
			y2: "2"
		}],
		["line", {
			x1: "12",
			x2: "12",
			y1: "22",
			y2: "18"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/crown.js
var Crown;
var init_crown = __esmMin((() => {
	Crown = [["path", { d: "M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z" }], ["path", { d: "M5 21h14" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cuboid.js
var Cuboid;
var init_cuboid = __esmMin((() => {
	Cuboid = [
		["path", { d: "m21.12 6.4-6.05-4.06a2 2 0 0 0-2.17-.05L2.95 8.41a2 2 0 0 0-.95 1.7v5.82a2 2 0 0 0 .88 1.66l6.05 4.07a2 2 0 0 0 2.17.05l9.95-6.12a2 2 0 0 0 .95-1.7V8.06a2 2 0 0 0-.88-1.66Z" }],
		["path", { d: "M10 22v-8L2.25 9.15" }],
		["path", { d: "m10 14 11.77-6.87" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cup-soda.js
var CupSoda;
var init_cup_soda = __esmMin((() => {
	CupSoda = [
		["path", { d: "m6 8 1.75 12.28a2 2 0 0 0 2 1.72h4.54a2 2 0 0 0 2-1.72L18 8" }],
		["path", { d: "M5 8h14" }],
		["path", { d: "M7 15a6.47 6.47 0 0 1 5 0 6.47 6.47 0 0 0 5 0" }],
		["path", { d: "m12 8 1-6h2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/currency.js
var Currency;
var init_currency = __esmMin((() => {
	Currency = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "8"
		}],
		["line", {
			x1: "3",
			x2: "6",
			y1: "3",
			y2: "6"
		}],
		["line", {
			x1: "21",
			x2: "18",
			y1: "3",
			y2: "6"
		}],
		["line", {
			x1: "3",
			x2: "6",
			y1: "21",
			y2: "18"
		}],
		["line", {
			x1: "21",
			x2: "18",
			y1: "21",
			y2: "18"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/cylinder.js
var Cylinder;
var init_cylinder = __esmMin((() => {
	Cylinder = [["ellipse", {
		cx: "12",
		cy: "5",
		rx: "9",
		ry: "3"
	}], ["path", { d: "M3 5v14a9 3 0 0 0 18 0V5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/dam.js
var Dam;
var init_dam = __esmMin((() => {
	Dam = [
		["path", { d: "M11 11.31c1.17.56 1.54 1.69 3.5 1.69 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1" }],
		["path", { d: "M11.75 18c.35.5 1.45 1 2.75 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1" }],
		["path", { d: "M2 10h4" }],
		["path", { d: "M2 14h4" }],
		["path", { d: "M2 18h4" }],
		["path", { d: "M2 6h4" }],
		["path", { d: "M7 3a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1L10 4a1 1 0 0 0-1-1z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/database-backup.js
var DatabaseBackup;
var init_database_backup = __esmMin((() => {
	DatabaseBackup = [
		["ellipse", {
			cx: "12",
			cy: "5",
			rx: "9",
			ry: "3"
		}],
		["path", { d: "M3 12a9 3 0 0 0 5 2.69" }],
		["path", { d: "M21 9.3V5" }],
		["path", { d: "M3 5v14a9 3 0 0 0 6.47 2.88" }],
		["path", { d: "M12 12v4h4" }],
		["path", { d: "M13 20a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L12 16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/database-zap.js
var DatabaseZap;
var init_database_zap = __esmMin((() => {
	DatabaseZap = [
		["ellipse", {
			cx: "12",
			cy: "5",
			rx: "9",
			ry: "3"
		}],
		["path", { d: "M3 5V19A9 3 0 0 0 15 21.84" }],
		["path", { d: "M21 5V8" }],
		["path", { d: "M21 12L18 17H22L19 22" }],
		["path", { d: "M3 12A9 3 0 0 0 14.59 14.87" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/database.js
var Database;
var init_database = __esmMin((() => {
	Database = [
		["ellipse", {
			cx: "12",
			cy: "5",
			rx: "9",
			ry: "3"
		}],
		["path", { d: "M3 5V19A9 3 0 0 0 21 19V5" }],
		["path", { d: "M3 12A9 3 0 0 0 21 12" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/decimals-arrow-left.js
var DecimalsArrowLeft;
var init_decimals_arrow_left = __esmMin((() => {
	DecimalsArrowLeft = [
		["path", { d: "m13 21-3-3 3-3" }],
		["path", { d: "M20 18H10" }],
		["path", { d: "M3 11h.01" }],
		["rect", {
			x: "6",
			y: "3",
			width: "5",
			height: "8",
			rx: "2.5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/decimals-arrow-right.js
var DecimalsArrowRight;
var init_decimals_arrow_right = __esmMin((() => {
	DecimalsArrowRight = [
		["path", { d: "M10 18h10" }],
		["path", { d: "m17 21 3-3-3-3" }],
		["path", { d: "M3 11h.01" }],
		["rect", {
			x: "15",
			y: "3",
			width: "5",
			height: "8",
			rx: "2.5"
		}],
		["rect", {
			x: "6",
			y: "3",
			width: "5",
			height: "8",
			rx: "2.5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/delete.js
var Delete$2;
var init_delete = __esmMin((() => {
	Delete$2 = [
		["path", { d: "M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z" }],
		["path", { d: "m12 9 6 6" }],
		["path", { d: "m18 9-6 6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/dessert.js
var Dessert;
var init_dessert = __esmMin((() => {
	Dessert = [
		["path", { d: "M10.162 3.167A10 10 0 0 0 2 13a2 2 0 0 0 4 0v-1a2 2 0 0 1 4 0v4a2 2 0 0 0 4 0v-4a2 2 0 0 1 4 0v1a2 2 0 0 0 4-.006 10 10 0 0 0-8.161-9.826" }],
		["path", { d: "M20.804 14.869a9 9 0 0 1-17.608 0" }],
		["circle", {
			cx: "12",
			cy: "4",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/diameter.js
var Diameter;
var init_diameter = __esmMin((() => {
	Diameter = [
		["circle", {
			cx: "19",
			cy: "19",
			r: "2"
		}],
		["circle", {
			cx: "5",
			cy: "5",
			r: "2"
		}],
		["path", { d: "M6.48 3.66a10 10 0 0 1 13.86 13.86" }],
		["path", { d: "m6.41 6.41 11.18 11.18" }],
		["path", { d: "M3.66 6.48a10 10 0 0 0 13.86 13.86" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/diamond-minus.js
var DiamondMinus;
var init_diamond_minus = __esmMin((() => {
	DiamondMinus = [["path", { d: "M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z" }], ["path", { d: "M8 12h8" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/diamond-percent.js
var DiamondPercent;
var init_diamond_percent = __esmMin((() => {
	DiamondPercent = [
		["path", { d: "M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0Z" }],
		["path", { d: "M9.2 9.2h.01" }],
		["path", { d: "m14.5 9.5-5 5" }],
		["path", { d: "M14.7 14.8h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/diamond-plus.js
var DiamondPlus;
var init_diamond_plus = __esmMin((() => {
	DiamondPlus = [
		["path", { d: "M12 8v8" }],
		["path", { d: "M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z" }],
		["path", { d: "M8 12h8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/diamond.js
var Diamond;
var init_diamond = __esmMin((() => {
	Diamond = [["path", { d: "M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41l-7.59-7.59a2.41 2.41 0 0 0-3.41 0Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/dice-1.js
var Dice1;
var init_dice_1 = __esmMin((() => {
	Dice1 = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2",
		ry: "2"
	}], ["path", { d: "M12 12h.01" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/dice-2.js
var Dice2;
var init_dice_2 = __esmMin((() => {
	Dice2 = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2",
			ry: "2"
		}],
		["path", { d: "M15 9h.01" }],
		["path", { d: "M9 15h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/dice-3.js
var Dice3;
var init_dice_3 = __esmMin((() => {
	Dice3 = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2",
			ry: "2"
		}],
		["path", { d: "M16 8h.01" }],
		["path", { d: "M12 12h.01" }],
		["path", { d: "M8 16h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/dice-4.js
var Dice4;
var init_dice_4 = __esmMin((() => {
	Dice4 = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2",
			ry: "2"
		}],
		["path", { d: "M16 8h.01" }],
		["path", { d: "M8 8h.01" }],
		["path", { d: "M8 16h.01" }],
		["path", { d: "M16 16h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/dice-5.js
var Dice5;
var init_dice_5 = __esmMin((() => {
	Dice5 = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2",
			ry: "2"
		}],
		["path", { d: "M16 8h.01" }],
		["path", { d: "M8 8h.01" }],
		["path", { d: "M8 16h.01" }],
		["path", { d: "M16 16h.01" }],
		["path", { d: "M12 12h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/dice-6.js
var Dice6;
var init_dice_6 = __esmMin((() => {
	Dice6 = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2",
			ry: "2"
		}],
		["path", { d: "M16 8h.01" }],
		["path", { d: "M16 12h.01" }],
		["path", { d: "M16 16h.01" }],
		["path", { d: "M8 8h.01" }],
		["path", { d: "M8 12h.01" }],
		["path", { d: "M8 16h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/dices.js
var Dices;
var init_dices = __esmMin((() => {
	Dices = [
		["rect", {
			width: "12",
			height: "12",
			x: "2",
			y: "10",
			rx: "2",
			ry: "2"
		}],
		["path", { d: "m17.92 14 3.5-3.5a2.24 2.24 0 0 0 0-3l-5-4.92a2.24 2.24 0 0 0-3 0L10 6" }],
		["path", { d: "M6 18h.01" }],
		["path", { d: "M10 14h.01" }],
		["path", { d: "M15 6h.01" }],
		["path", { d: "M18 9h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/diff.js
var Diff$2;
var init_diff = __esmMin((() => {
	Diff$2 = [
		["path", { d: "M12 3v14" }],
		["path", { d: "M5 10h14" }],
		["path", { d: "M5 21h14" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/disc-2.js
var Disc2;
var init_disc_2 = __esmMin((() => {
	Disc2 = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["circle", {
			cx: "12",
			cy: "12",
			r: "4"
		}],
		["path", { d: "M12 12h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/disc-3.js
var Disc3;
var init_disc_3 = __esmMin((() => {
	Disc3 = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "M6 12c0-1.7.7-3.2 1.8-4.2" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "2"
		}],
		["path", { d: "M18 12c0 1.7-.7 3.2-1.8 4.2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/disc-album.js
var DiscAlbum;
var init_disc_album = __esmMin((() => {
	DiscAlbum = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["circle", {
			cx: "12",
			cy: "12",
			r: "5"
		}],
		["path", { d: "M12 12h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/disc.js
var Disc;
var init_disc = __esmMin((() => {
	Disc = [["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}], ["circle", {
		cx: "12",
		cy: "12",
		r: "2"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/divide.js
var Divide;
var init_divide = __esmMin((() => {
	Divide = [
		["circle", {
			cx: "12",
			cy: "6",
			r: "1"
		}],
		["line", {
			x1: "5",
			x2: "19",
			y1: "12",
			y2: "12"
		}],
		["circle", {
			cx: "12",
			cy: "18",
			r: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/dna-off.js
var DnaOff;
var init_dna_off = __esmMin((() => {
	DnaOff = [
		["path", { d: "M15 2c-1.35 1.5-2.092 3-2.5 4.5L14 8" }],
		["path", { d: "m17 6-2.891-2.891" }],
		["path", { d: "M2 15c3.333-3 6.667-3 10-3" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "m20 9 .891.891" }],
		["path", { d: "M22 9c-1.5 1.35-3 2.092-4.5 2.5l-1-1" }],
		["path", { d: "M3.109 14.109 4 15" }],
		["path", { d: "m6.5 12.5 1 1" }],
		["path", { d: "m7 18 2.891 2.891" }],
		["path", { d: "M9 22c1.35-1.5 2.092-3 2.5-4.5L10 16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/dna.js
var Dna;
var init_dna = __esmMin((() => {
	Dna = [
		["path", { d: "m10 16 1.5 1.5" }],
		["path", { d: "m14 8-1.5-1.5" }],
		["path", { d: "M15 2c-1.798 1.998-2.518 3.995-2.807 5.993" }],
		["path", { d: "m16.5 10.5 1 1" }],
		["path", { d: "m17 6-2.891-2.891" }],
		["path", { d: "M2 15c6.667-6 13.333 0 20-6" }],
		["path", { d: "m20 9 .891.891" }],
		["path", { d: "M3.109 14.109 4 15" }],
		["path", { d: "m6.5 12.5 1 1" }],
		["path", { d: "m7 18 2.891 2.891" }],
		["path", { d: "M9 22c1.798-1.998 2.518-3.995 2.807-5.993" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/dock.js
var Dock;
var init_dock = __esmMin((() => {
	Dock = [
		["path", { d: "M2 8h20" }],
		["rect", {
			width: "20",
			height: "16",
			x: "2",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M6 16h12" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/dog.js
var Dog;
var init_dog = __esmMin((() => {
	Dog = [
		["path", { d: "M11.25 16.25h1.5L12 17z" }],
		["path", { d: "M16 14v.5" }],
		["path", { d: "M4.42 11.247A13.152 13.152 0 0 0 4 14.556C4 18.728 7.582 21 12 21s8-2.272 8-6.444a11.702 11.702 0 0 0-.493-3.309" }],
		["path", { d: "M8 14v.5" }],
		["path", { d: "M8.5 8.5c-.384 1.05-1.083 2.028-2.344 2.5-1.931.722-3.576-.297-3.656-1-.113-.994 1.177-6.53 4-7 1.923-.321 3.651.845 3.651 2.235A7.497 7.497 0 0 1 14 5.277c0-1.39 1.844-2.598 3.767-2.277 2.823.47 4.113 6.006 4 7-.08.703-1.725 1.722-3.656 1-1.261-.472-1.855-1.45-2.239-2.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/dollar-sign.js
var DollarSign;
var init_dollar_sign = __esmMin((() => {
	DollarSign = [["line", {
		x1: "12",
		x2: "12",
		y1: "2",
		y2: "22"
	}], ["path", { d: "M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/donut.js
var Donut;
var init_donut = __esmMin((() => {
	Donut = [["path", { d: "M20.5 10a2.5 2.5 0 0 1-2.4-3H18a2.95 2.95 0 0 1-2.6-4.4 10 10 0 1 0 6.3 7.1c-.3.2-.8.3-1.2.3" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "3"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/door-closed-locked.js
var DoorClosedLocked;
var init_door_closed_locked = __esmMin((() => {
	DoorClosedLocked = [
		["path", { d: "M10 12h.01" }],
		["path", { d: "M18 9V6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14" }],
		["path", { d: "M2 20h8" }],
		["path", { d: "M20 17v-2a2 2 0 1 0-4 0v2" }],
		["rect", {
			x: "14",
			y: "17",
			width: "8",
			height: "5",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/door-closed.js
var DoorClosed;
var init_door_closed = __esmMin((() => {
	DoorClosed = [
		["path", { d: "M10 12h.01" }],
		["path", { d: "M18 20V6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14" }],
		["path", { d: "M2 20h20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/door-open.js
var DoorOpen;
var init_door_open = __esmMin((() => {
	DoorOpen = [
		["path", { d: "M11 20H2" }],
		["path", { d: "M11 4.562v16.157a1 1 0 0 0 1.242.97L19 20V5.562a2 2 0 0 0-1.515-1.94l-4-1A2 2 0 0 0 11 4.561z" }],
		["path", { d: "M11 4H8a2 2 0 0 0-2 2v14" }],
		["path", { d: "M14 12h.01" }],
		["path", { d: "M22 20h-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/dot.js
var Dot;
var init_dot = __esmMin((() => {
	Dot = [["circle", {
		cx: "12.1",
		cy: "12.1",
		r: "1"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/download.js
var Download;
var init_download = __esmMin((() => {
	Download = [
		["path", { d: "M12 15V3" }],
		["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }],
		["path", { d: "m7 10 5 5 5-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/drafting-compass.js
var DraftingCompass;
var init_drafting_compass = __esmMin((() => {
	DraftingCompass = [
		["path", { d: "m12.99 6.74 1.93 3.44" }],
		["path", { d: "M19.136 12a10 10 0 0 1-14.271 0" }],
		["path", { d: "m21 21-2.16-3.84" }],
		["path", { d: "m3 21 8.02-14.26" }],
		["circle", {
			cx: "12",
			cy: "5",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/drama.js
var Drama;
var init_drama = __esmMin((() => {
	Drama = [
		["path", { d: "M10 11h.01" }],
		["path", { d: "M14 6h.01" }],
		["path", { d: "M18 6h.01" }],
		["path", { d: "M6.5 13.1h.01" }],
		["path", { d: "M22 5c0 9-4 12-6 12s-6-3-6-12c0-2 2-3 6-3s6 1 6 3" }],
		["path", { d: "M17.4 9.9c-.8.8-2 .8-2.8 0" }],
		["path", { d: "M10.1 7.1C9 7.2 7.7 7.7 6 8.6c-3.5 2-4.7 3.9-3.7 5.6 4.5 7.8 9.5 8.4 11.2 7.4.9-.5 1.9-2.1 1.9-4.7" }],
		["path", { d: "M9.1 16.5c.3-1.1 1.4-1.7 2.4-1.4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/dribbble.js
var Dribbble;
var init_dribbble = __esmMin((() => {
	Dribbble = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "M19.13 5.09C15.22 9.14 10 10.44 2.25 10.94" }],
		["path", { d: "M21.75 12.84c-6.62-1.41-12.14 1-16.38 6.32" }],
		["path", { d: "M8.56 2.75c4.37 6 6 9.42 8 17.72" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/drill.js
var Drill;
var init_drill = __esmMin((() => {
	Drill = [
		["path", { d: "M10 18a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H5a3 3 0 0 1-3-3 1 1 0 0 1 1-1z" }],
		["path", { d: "M13 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1l-.81 3.242a1 1 0 0 1-.97.758H8" }],
		["path", { d: "M14 4h3a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-3" }],
		["path", { d: "M18 6h4" }],
		["path", { d: "m5 10-2 8" }],
		["path", { d: "m7 18 2-8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/drone.js
var Drone;
var init_drone = __esmMin((() => {
	Drone = [
		["path", { d: "M10 10 7 7" }],
		["path", { d: "m10 14-3 3" }],
		["path", { d: "m14 10 3-3" }],
		["path", { d: "m14 14 3 3" }],
		["path", { d: "M14.205 4.139a4 4 0 1 1 5.439 5.863" }],
		["path", { d: "M19.637 14a4 4 0 1 1-5.432 5.868" }],
		["path", { d: "M4.367 10a4 4 0 1 1 5.438-5.862" }],
		["path", { d: "M9.795 19.862a4 4 0 1 1-5.429-5.873" }],
		["rect", {
			x: "10",
			y: "8",
			width: "4",
			height: "8",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/droplet-off.js
var DropletOff;
var init_droplet_off = __esmMin((() => {
	DropletOff = [
		["path", { d: "M18.715 13.186C18.29 11.858 17.384 10.607 16 9.5c-2-1.6-3.5-4-4-6.5a10.7 10.7 0 0 1-.884 2.586" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M8.795 8.797A11 11 0 0 1 8 9.5C6 11.1 5 13 5 15a7 7 0 0 0 13.222 3.208" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/droplet.js
var Droplet;
var init_droplet = __esmMin((() => {
	Droplet = [["path", { d: "M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/droplets.js
var Droplets;
var init_droplets = __esmMin((() => {
	Droplets = [["path", { d: "M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z" }], ["path", { d: "M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/drum.js
var Drum;
var init_drum = __esmMin((() => {
	Drum = [
		["path", { d: "m2 2 8 8" }],
		["path", { d: "m22 2-8 8" }],
		["ellipse", {
			cx: "12",
			cy: "9",
			rx: "10",
			ry: "5"
		}],
		["path", { d: "M7 13.4v7.9" }],
		["path", { d: "M12 14v8" }],
		["path", { d: "M17 13.4v7.9" }],
		["path", { d: "M2 9v8a10 5 0 0 0 20 0V9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/drumstick.js
var Drumstick;
var init_drumstick = __esmMin((() => {
	Drumstick = [["path", { d: "M15.4 15.63a7.875 6 135 1 1 6.23-6.23 4.5 3.43 135 0 0-6.23 6.23" }], ["path", { d: "m8.29 12.71-2.6 2.6a2.5 2.5 0 1 0-1.65 4.65A2.5 2.5 0 1 0 8.7 18.3l2.59-2.59" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/dumbbell.js
var Dumbbell;
var init_dumbbell = __esmMin((() => {
	Dumbbell = [
		["path", { d: "M17.596 12.768a2 2 0 1 0 2.829-2.829l-1.768-1.767a2 2 0 0 0 2.828-2.829l-2.828-2.828a2 2 0 0 0-2.829 2.828l-1.767-1.768a2 2 0 1 0-2.829 2.829z" }],
		["path", { d: "m2.5 21.5 1.4-1.4" }],
		["path", { d: "m20.1 3.9 1.4-1.4" }],
		["path", { d: "M5.343 21.485a2 2 0 1 0 2.829-2.828l1.767 1.768a2 2 0 1 0 2.829-2.829l-6.364-6.364a2 2 0 1 0-2.829 2.829l1.768 1.767a2 2 0 0 0-2.828 2.829z" }],
		["path", { d: "m9.6 14.4 4.8-4.8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ear-off.js
var EarOff;
var init_ear_off = __esmMin((() => {
	EarOff = [
		["path", { d: "M6 18.5a3.5 3.5 0 1 0 7 0c0-1.57.92-2.52 2.04-3.46" }],
		["path", { d: "M6 8.5c0-.75.13-1.47.36-2.14" }],
		["path", { d: "M8.8 3.15A6.5 6.5 0 0 1 19 8.5c0 1.63-.44 2.81-1.09 3.76" }],
		["path", { d: "M12.5 6A2.5 2.5 0 0 1 15 8.5M10 13a2 2 0 0 0 1.82-1.18" }],
		["line", {
			x1: "2",
			x2: "22",
			y1: "2",
			y2: "22"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ear.js
var Ear;
var init_ear = __esmMin((() => {
	Ear = [["path", { d: "M6 8.5a6.5 6.5 0 1 1 13 0c0 6-6 6-6 10a3.5 3.5 0 1 1-7 0" }], ["path", { d: "M15 8.5a2.5 2.5 0 0 0-5 0v1a2 2 0 1 1 0 4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/earth-lock.js
var EarthLock;
var init_earth_lock = __esmMin((() => {
	EarthLock = [
		["path", { d: "M7 3.34V5a3 3 0 0 0 3 3" }],
		["path", { d: "M11 21.95V18a2 2 0 0 0-2-2 2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05" }],
		["path", { d: "M21.54 15H17a2 2 0 0 0-2 2v4.54" }],
		["path", { d: "M12 2a10 10 0 1 0 9.54 13" }],
		["path", { d: "M20 6V4a2 2 0 1 0-4 0v2" }],
		["rect", {
			width: "8",
			height: "5",
			x: "14",
			y: "6",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/earth.js
var Earth;
var init_earth = __esmMin((() => {
	Earth = [
		["path", { d: "M21.54 15H17a2 2 0 0 0-2 2v4.54" }],
		["path", { d: "M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17" }],
		["path", { d: "M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/eclipse.js
var Eclipse;
var init_eclipse = __esmMin((() => {
	Eclipse = [["circle", {
		cx: "12",
		cy: "12",
		r: "10"
	}], ["path", { d: "M12 2a7 7 0 1 0 10 10" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/egg-fried.js
var EggFried;
var init_egg_fried = __esmMin((() => {
	EggFried = [["circle", {
		cx: "11.5",
		cy: "12.5",
		r: "3.5"
	}], ["path", { d: "M3 8c0-3.5 2.5-6 6.5-6 5 0 4.83 3 7.5 5s5 2 5 6c0 4.5-2.5 6.5-7 6.5-2.5 0-2.5 2.5-6 2.5s-7-2-7-5.5c0-3 1.5-3 1.5-5C3.5 10 3 9 3 8Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/egg-off.js
var EggOff;
var init_egg_off = __esmMin((() => {
	EggOff = [
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M20 14.347V14c0-6-4-12-8-12-1.078 0-2.157.436-3.157 1.19" }],
		["path", { d: "M6.206 6.21C4.871 8.4 4 11.2 4 14a8 8 0 0 0 14.568 4.568" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/egg.js
var Egg;
var init_egg = __esmMin((() => {
	Egg = [["path", { d: "M12 2C8 2 4 8 4 14a8 8 0 0 0 16 0c0-6-4-12-8-12" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ellipsis-vertical.js
var EllipsisVertical;
var init_ellipsis_vertical = __esmMin((() => {
	EllipsisVertical = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "1"
		}],
		["circle", {
			cx: "12",
			cy: "5",
			r: "1"
		}],
		["circle", {
			cx: "12",
			cy: "19",
			r: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ellipsis.js
var Ellipsis;
var init_ellipsis = __esmMin((() => {
	Ellipsis = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "1"
		}],
		["circle", {
			cx: "19",
			cy: "12",
			r: "1"
		}],
		["circle", {
			cx: "5",
			cy: "12",
			r: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/equal-approximately.js
var EqualApproximately;
var init_equal_approximately = __esmMin((() => {
	EqualApproximately = [["path", { d: "M5 15a6.5 6.5 0 0 1 7 0 6.5 6.5 0 0 0 7 0" }], ["path", { d: "M5 9a6.5 6.5 0 0 1 7 0 6.5 6.5 0 0 0 7 0" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/equal-not.js
var EqualNot;
var init_equal_not = __esmMin((() => {
	EqualNot = [
		["line", {
			x1: "5",
			x2: "19",
			y1: "9",
			y2: "9"
		}],
		["line", {
			x1: "5",
			x2: "19",
			y1: "15",
			y2: "15"
		}],
		["line", {
			x1: "19",
			x2: "5",
			y1: "5",
			y2: "19"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/equal.js
var Equal;
var init_equal = __esmMin((() => {
	Equal = [["line", {
		x1: "5",
		x2: "19",
		y1: "9",
		y2: "9"
	}], ["line", {
		x1: "5",
		x2: "19",
		y1: "15",
		y2: "15"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/eraser.js
var Eraser;
var init_eraser = __esmMin((() => {
	Eraser = [["path", { d: "M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21" }], ["path", { d: "m5.082 11.09 8.828 8.828" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ethernet-port.js
var EthernetPort;
var init_ethernet_port = __esmMin((() => {
	EthernetPort = [
		["path", { d: "m15 20 3-3h2a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h2l3 3z" }],
		["path", { d: "M6 8v1" }],
		["path", { d: "M10 8v1" }],
		["path", { d: "M14 8v1" }],
		["path", { d: "M18 8v1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/euro.js
var Euro;
var init_euro = __esmMin((() => {
	Euro = [
		["path", { d: "M4 10h12" }],
		["path", { d: "M4 14h9" }],
		["path", { d: "M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ev-charger.js
var EvCharger;
var init_ev_charger = __esmMin((() => {
	EvCharger = [
		["path", { d: "M14 13h2a2 2 0 0 1 2 2v2a2 2 0 0 0 4 0v-6.998a2 2 0 0 0-.59-1.42L18 5" }],
		["path", { d: "M14 21V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v16" }],
		["path", { d: "M2 21h13" }],
		["path", { d: "M3 7h11" }],
		["path", { d: "m9 11-2 3h3l-2 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/expand.js
var Expand;
var init_expand = __esmMin((() => {
	Expand = [
		["path", { d: "m15 15 6 6" }],
		["path", { d: "m15 9 6-6" }],
		["path", { d: "M21 16v5h-5" }],
		["path", { d: "M21 8V3h-5" }],
		["path", { d: "M3 16v5h5" }],
		["path", { d: "m3 21 6-6" }],
		["path", { d: "M3 8V3h5" }],
		["path", { d: "M9 9 3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/external-link.js
var ExternalLink;
var init_external_link = __esmMin((() => {
	ExternalLink = [
		["path", { d: "M15 3h6v6" }],
		["path", { d: "M10 14 21 3" }],
		["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/eye-closed.js
var EyeClosed;
var init_eye_closed = __esmMin((() => {
	EyeClosed = [
		["path", { d: "m15 18-.722-3.25" }],
		["path", { d: "M2 8a10.645 10.645 0 0 0 20 0" }],
		["path", { d: "m20 15-1.726-2.05" }],
		["path", { d: "m4 15 1.726-2.05" }],
		["path", { d: "m9 18 .722-3.25" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/eye-off.js
var EyeOff;
var init_eye_off = __esmMin((() => {
	EyeOff = [
		["path", { d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49" }],
		["path", { d: "M14.084 14.158a3 3 0 0 1-4.242-4.242" }],
		["path", { d: "M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143" }],
		["path", { d: "m2 2 20 20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/eye.js
var Eye;
var init_eye = __esmMin((() => {
	Eye = [["path", { d: "M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "3"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/facebook.js
var Facebook;
var init_facebook = __esmMin((() => {
	Facebook = [["path", { d: "M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/factory.js
var Factory;
var init_factory = __esmMin((() => {
	Factory = [
		["path", { d: "M12 16h.01" }],
		["path", { d: "M16 16h.01" }],
		["path", { d: "M3 19a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a.5.5 0 0 0-.769-.422l-4.462 2.844A.5.5 0 0 1 15 10.5v-2a.5.5 0 0 0-.769-.422L9.77 10.922A.5.5 0 0 1 9 10.5V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z" }],
		["path", { d: "M8 16h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/fan.js
var Fan;
var init_fan = __esmMin((() => {
	Fan = [["path", { d: "M10.827 16.379a6.082 6.082 0 0 1-8.618-7.002l5.412 1.45a6.082 6.082 0 0 1 7.002-8.618l-1.45 5.412a6.082 6.082 0 0 1 8.618 7.002l-5.412-1.45a6.082 6.082 0 0 1-7.002 8.618l1.45-5.412Z" }], ["path", { d: "M12 12v.01" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/fast-forward.js
var FastForward;
var init_fast_forward = __esmMin((() => {
	FastForward = [["path", { d: "M12 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 12 18z" }], ["path", { d: "M2 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 2 18z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/feather.js
var Feather;
var init_feather = __esmMin((() => {
	Feather = [
		["path", { d: "M12.67 19a2 2 0 0 0 1.416-.588l6.154-6.172a6 6 0 0 0-8.49-8.49L5.586 9.914A2 2 0 0 0 5 11.328V18a1 1 0 0 0 1 1z" }],
		["path", { d: "M16 8 2 22" }],
		["path", { d: "M17.5 15H9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/fence.js
var Fence;
var init_fence = __esmMin((() => {
	Fence = [
		["path", { d: "M4 3 2 5v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z" }],
		["path", { d: "M6 8h4" }],
		["path", { d: "M6 18h4" }],
		["path", { d: "m12 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z" }],
		["path", { d: "M14 8h4" }],
		["path", { d: "M14 18h4" }],
		["path", { d: "m20 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ferris-wheel.js
var FerrisWheel;
var init_ferris_wheel = __esmMin((() => {
	FerrisWheel = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "2"
		}],
		["path", { d: "M12 2v4" }],
		["path", { d: "m6.8 15-3.5 2" }],
		["path", { d: "m20.7 7-3.5 2" }],
		["path", { d: "M6.8 9 3.3 7" }],
		["path", { d: "m20.7 17-3.5-2" }],
		["path", { d: "m9 22 3-8 3 8" }],
		["path", { d: "M8 22h8" }],
		["path", { d: "M18 18.7a9 9 0 1 0-12 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/figma.js
var Figma;
var init_figma = __esmMin((() => {
	Figma = [
		["path", { d: "M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z" }],
		["path", { d: "M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z" }],
		["path", { d: "M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z" }],
		["path", { d: "M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z" }],
		["path", { d: "M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-archive.js
var FileArchive;
var init_file_archive = __esmMin((() => {
	FileArchive = [
		["path", { d: "M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M8 12v-1" }],
		["path", { d: "M8 18v-2" }],
		["path", { d: "M8 7V6" }],
		["circle", {
			cx: "8",
			cy: "20",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-axis-3d.js
var FileAxis3d;
var init_file_axis_3d = __esmMin((() => {
	FileAxis3d = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "m8 18 4-4" }],
		["path", { d: "M8 10v8h8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-badge.js
var FileBadge;
var init_file_badge = __esmMin((() => {
	FileBadge = [
		["path", { d: "M13 22h5a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.3" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "m7.69 16.479 1.29 4.88a.5.5 0 0 1-.698.591l-1.843-.849a1 1 0 0 0-.879.001l-1.846.85a.5.5 0 0 1-.692-.593l1.29-4.88" }],
		["circle", {
			cx: "6",
			cy: "14",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-box.js
var FileBox;
var init_file_box = __esmMin((() => {
	FileBox = [
		["path", { d: "M14.5 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.8" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M11.7 14.2 7 17l-4.7-2.8" }],
		["path", { d: "M3 13.1a2 2 0 0 0-.999 1.76v3.24a2 2 0 0 0 .969 1.78L6 21.7a2 2 0 0 0 2.03.01L11 19.9a2 2 0 0 0 1-1.76V14.9a2 2 0 0 0-.97-1.78L8 11.3a2 2 0 0 0-2.03-.01z" }],
		["path", { d: "M7 17v5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-braces-corner.js
var FileBracesCorner;
var init_file_braces_corner = __esmMin((() => {
	FileBracesCorner = [
		["path", { d: "M14 22h4a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v6" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M5 14a1 1 0 0 0-1 1v2a1 1 0 0 1-1 1 1 1 0 0 1 1 1v2a1 1 0 0 0 1 1" }],
		["path", { d: "M9 22a1 1 0 0 0 1-1v-2a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-2a1 1 0 0 0-1-1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-braces.js
var FileBraces;
var init_file_braces = __esmMin((() => {
	FileBraces = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1" }],
		["path", { d: "M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-chart-column-increasing.js
var FileChartColumnIncreasing;
var init_file_chart_column_increasing = __esmMin((() => {
	FileChartColumnIncreasing = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M8 18v-2" }],
		["path", { d: "M12 18v-4" }],
		["path", { d: "M16 18v-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-chart-column.js
var FileChartColumn;
var init_file_chart_column = __esmMin((() => {
	FileChartColumn = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M8 18v-1" }],
		["path", { d: "M12 18v-6" }],
		["path", { d: "M16 18v-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-chart-line.js
var FileChartLine;
var init_file_chart_line = __esmMin((() => {
	FileChartLine = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "m16 13-3.5 3.5-2-2L8 17" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-chart-pie.js
var FileChartPie;
var init_file_chart_pie = __esmMin((() => {
	FileChartPie = [
		["path", { d: "M15.941 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.704l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.512" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M4.017 11.512a6 6 0 1 0 8.466 8.475" }],
		["path", { d: "M9 16a1 1 0 0 1-1-1v-4c0-.552.45-1.008.995-.917a6 6 0 0 1 4.922 4.922c.091.544-.365.995-.917.995z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-check-corner.js
var FileCheckCorner;
var init_file_check_corner = __esmMin((() => {
	FileCheckCorner = [
		["path", { d: "M10.5 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v6" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "m14 20 2 2 4-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-check.js
var FileCheck;
var init_file_check = __esmMin((() => {
	FileCheck = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "m9 15 2 2 4-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-clock.js
var FileClock;
var init_file_clock = __esmMin((() => {
	FileClock = [
		["path", { d: "M16 22h2a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v2.85" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M8 14v2.2l1.6 1" }],
		["circle", {
			cx: "8",
			cy: "16",
			r: "6"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-code.js
var FileCode;
var init_file_code = __esmMin((() => {
	FileCode = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M10 12.5 8 15l2 2.5" }],
		["path", { d: "m14 12.5 2 2.5-2 2.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-code-corner.js
var FileCodeCorner;
var init_file_code_corner = __esmMin((() => {
	FileCodeCorner = [
		["path", { d: "M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "m5 16-3 3 3 3" }],
		["path", { d: "m9 22 3-3-3-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-cog.js
var FileCog;
var init_file_cog = __esmMin((() => {
	FileCog = [
		["path", { d: "M13.85 22H18a2 2 0 0 0 2-2V8a2 2 0 0 0-.586-1.414l-4-4A2 2 0 0 0 14 2H6a2 2 0 0 0-2 2v6.6" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "m3.305 19.53.923-.382" }],
		["path", { d: "m4.228 16.852-.924-.383" }],
		["path", { d: "m5.852 15.228-.383-.923" }],
		["path", { d: "m5.852 20.772-.383.924" }],
		["path", { d: "m8.148 15.228.383-.923" }],
		["path", { d: "m8.53 21.696-.382-.924" }],
		["path", { d: "m9.773 16.852.922-.383" }],
		["path", { d: "m9.773 19.148.922.383" }],
		["circle", {
			cx: "7",
			cy: "18",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-diff.js
var FileDiff;
var init_file_diff = __esmMin((() => {
	FileDiff = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M9 10h6" }],
		["path", { d: "M12 13V7" }],
		["path", { d: "M9 17h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-digit.js
var FileDigit;
var init_file_digit = __esmMin((() => {
	FileDigit = [
		["path", { d: "M4 12V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M10 16h2v6" }],
		["path", { d: "M10 22h4" }],
		["rect", {
			x: "2",
			y: "16",
			width: "4",
			height: "6",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-down.js
var FileDown;
var init_file_down = __esmMin((() => {
	FileDown = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M12 18v-6" }],
		["path", { d: "m9 15 3 3 3-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-exclamation-point.js
var FileExclamationPoint;
var init_file_exclamation_point = __esmMin((() => {
	FileExclamationPoint = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M12 9v4" }],
		["path", { d: "M12 17h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-headphone.js
var FileHeadphone;
var init_file_headphone = __esmMin((() => {
	FileHeadphone = [
		["path", { d: "M4 6.835V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-.343" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-heart.js
var FileHeart;
var init_file_heart = __esmMin((() => {
	FileHeart = [
		["path", { d: "M13 22h5a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v7" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M3.62 18.8A2.25 2.25 0 1 1 7 15.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a1 1 0 0 1-1.507 0z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-image.js
var FileImage;
var init_file_image = __esmMin((() => {
	FileImage = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["circle", {
			cx: "10",
			cy: "12",
			r: "2"
		}],
		["path", { d: "m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-input.js
var FileInput;
var init_file_input = __esmMin((() => {
	FileInput = [
		["path", { d: "M4 11V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-1" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M2 15h10" }],
		["path", { d: "m9 18 3-3-3-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-key.js
var FileKey;
var init_file_key = __esmMin((() => {
	FileKey = [
		["path", { d: "M10.65 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v10.1" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "m10 15 1 1" }],
		["path", { d: "m11 14-4.586 4.586" }],
		["circle", {
			cx: "5",
			cy: "20",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-lock.js
var FileLock;
var init_file_lock = __esmMin((() => {
	FileLock = [
		["path", { d: "M4 9.8V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M9 17v-2a2 2 0 0 0-4 0v2" }],
		["rect", {
			width: "8",
			height: "5",
			x: "3",
			y: "17",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-minus-corner.js
var FileMinusCorner;
var init_file_minus_corner = __esmMin((() => {
	FileMinusCorner = [
		["path", { d: "M20 14V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M14 18h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-minus.js
var FileMinus;
var init_file_minus = __esmMin((() => {
	FileMinus = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M9 15h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-music.js
var FileMusic;
var init_file_music = __esmMin((() => {
	FileMusic = [
		["path", { d: "M11.65 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v10.35" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M8 20v-7l3 1.474" }],
		["circle", {
			cx: "6",
			cy: "20",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-output.js
var FileOutput;
var init_file_output = __esmMin((() => {
	FileOutput = [
		["path", { d: "M4.226 20.925A2 2 0 0 0 6 22h12a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.127" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "m5 11-3 3" }],
		["path", { d: "m5 17-3-3h10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-pen-line.js
var FilePenLine;
var init_file_pen_line = __esmMin((() => {
	FilePenLine = [
		["path", { d: "m18.226 5.226-2.52-2.52A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-.351" }],
		["path", { d: "M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z" }],
		["path", { d: "M8 18h1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-pen.js
var FilePen;
var init_file_pen = __esmMin((() => {
	FilePen = [
		["path", { d: "M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-play.js
var FilePlay;
var init_file_play = __esmMin((() => {
	FilePlay = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-plus-corner.js
var FilePlusCorner;
var init_file_plus_corner = __esmMin((() => {
	FilePlusCorner = [
		["path", { d: "M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M14 19h6" }],
		["path", { d: "M17 16v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-plus.js
var FilePlus;
var init_file_plus = __esmMin((() => {
	FilePlus = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M9 15h6" }],
		["path", { d: "M12 18v-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-question-mark.js
var FileQuestionMark;
var init_file_question_mark = __esmMin((() => {
	FileQuestionMark = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M12 17h.01" }],
		["path", { d: "M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-scan.js
var FileScan;
var init_file_scan = __esmMin((() => {
	FileScan = [
		["path", { d: "M20 10V8a2.4 2.4 0 0 0-.706-1.704l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.35" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M16 14a2 2 0 0 0-2 2" }],
		["path", { d: "M16 22a2 2 0 0 1-2-2" }],
		["path", { d: "M20 14a2 2 0 0 1 2 2" }],
		["path", { d: "M20 22a2 2 0 0 0 2-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-search-corner.js
var FileSearchCorner;
var init_file_search_corner = __esmMin((() => {
	FileSearchCorner = [
		["path", { d: "M11.1 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.589 3.588A2.4 2.4 0 0 1 20 8v3.25" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "m21 22-2.88-2.88" }],
		["circle", {
			cx: "16",
			cy: "17",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-search.js
var FileSearch;
var init_file_search = __esmMin((() => {
	FileSearch = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["circle", {
			cx: "11.5",
			cy: "14.5",
			r: "2.5"
		}],
		["path", { d: "M13.3 16.3 15 18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-signal.js
var FileSignal;
var init_file_signal = __esmMin((() => {
	FileSignal = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M8 15h.01" }],
		["path", { d: "M11.5 13.5a2.5 2.5 0 0 1 0 3" }],
		["path", { d: "M15 12a5 5 0 0 1 0 6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-sliders.js
var FileSliders;
var init_file_sliders = __esmMin((() => {
	FileSliders = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M8 12h8" }],
		["path", { d: "M10 11v2" }],
		["path", { d: "M8 17h8" }],
		["path", { d: "M14 16v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-spreadsheet.js
var FileSpreadsheet;
var init_file_spreadsheet = __esmMin((() => {
	FileSpreadsheet = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M8 13h2" }],
		["path", { d: "M14 13h2" }],
		["path", { d: "M8 17h2" }],
		["path", { d: "M14 17h2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-stack.js
var FileStack;
var init_file_stack = __esmMin((() => {
	FileStack = [
		["path", { d: "M11 21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1" }],
		["path", { d: "M16 16a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1" }],
		["path", { d: "M21 6a2 2 0 0 0-.586-1.414l-2-2A2 2 0 0 0 17 2h-3a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-symlink.js
var FileSymlink;
var init_file_symlink = __esmMin((() => {
	FileSymlink = [
		["path", { d: "M4 11V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "m10 18 3-3-3-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-terminal.js
var FileTerminal;
var init_file_terminal = __esmMin((() => {
	FileTerminal = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "m8 16 2-2-2-2" }],
		["path", { d: "M12 18h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-text.js
var FileText;
var init_file_text = __esmMin((() => {
	FileText = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M10 9H8" }],
		["path", { d: "M16 13H8" }],
		["path", { d: "M16 17H8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-type-corner.js
var FileTypeCorner;
var init_file_type_corner = __esmMin((() => {
	FileTypeCorner = [
		["path", { d: "M12 22h6a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v6" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M3 16v-1.5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 .5.5V16" }],
		["path", { d: "M6 22h2" }],
		["path", { d: "M7 14v8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-type.js
var FileType;
var init_file_type = __esmMin((() => {
	FileType = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M11 18h2" }],
		["path", { d: "M12 12v6" }],
		["path", { d: "M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-up.js
var FileUp;
var init_file_up = __esmMin((() => {
	FileUp = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M12 12v6" }],
		["path", { d: "m15 15-3-3-3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-user.js
var FileUser;
var init_file_user = __esmMin((() => {
	FileUser = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M16 22a4 4 0 0 0-8 0" }],
		["circle", {
			cx: "12",
			cy: "15",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-video-camera.js
var FileVideoCamera;
var init_file_video_camera = __esmMin((() => {
	FileVideoCamera = [
		["path", { d: "M4 12V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "m10 17.843 3.033-1.755a.64.64 0 0 1 .967.56v4.704a.65.65 0 0 1-.967.56L10 20.157" }],
		["rect", {
			width: "7",
			height: "6",
			x: "3",
			y: "16",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-volume.js
var FileVolume;
var init_file_volume = __esmMin((() => {
	FileVolume = [
		["path", { d: "M4 11.55V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-1.95" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M12 15a5 5 0 0 1 0 6" }],
		["path", { d: "M8 14.502a.5.5 0 0 0-.826-.381l-1.893 1.631a1 1 0 0 1-.651.243H3.5a.5.5 0 0 0-.5.501v3.006a.5.5 0 0 0 .5.501h1.129a1 1 0 0 1 .652.243l1.893 1.633a.5.5 0 0 0 .826-.38z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-x-corner.js
var FileXCorner;
var init_file_x_corner = __esmMin((() => {
	FileXCorner = [
		["path", { d: "M11 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "m15 17 5 5" }],
		["path", { d: "m20 17-5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file-x.js
var FileX;
var init_file_x = __esmMin((() => {
	FileX = [
		["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "m14.5 12.5-5 5" }],
		["path", { d: "m9.5 12.5 5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/file.js
var File$1;
var init_file = __esmMin((() => {
	File$1 = [["path", { d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" }], ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/files.js
var Files;
var init_files = __esmMin((() => {
	Files = [
		["path", { d: "M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8" }],
		["path", { d: "M16.706 2.706A2.4 2.4 0 0 0 15 2v5a1 1 0 0 0 1 1h5a2.4 2.4 0 0 0-.706-1.706z" }],
		["path", { d: "M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/film.js
var Film;
var init_film = __esmMin((() => {
	Film = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M7 3v18" }],
		["path", { d: "M3 7.5h4" }],
		["path", { d: "M3 12h18" }],
		["path", { d: "M3 16.5h4" }],
		["path", { d: "M17 3v18" }],
		["path", { d: "M17 7.5h4" }],
		["path", { d: "M17 16.5h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/fingerprint-pattern.js
var FingerprintPattern;
var init_fingerprint_pattern = __esmMin((() => {
	FingerprintPattern = [
		["path", { d: "M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4" }],
		["path", { d: "M14 13.12c0 2.38 0 6.38-1 8.88" }],
		["path", { d: "M17.29 21.02c.12-.6.43-2.3.5-3.02" }],
		["path", { d: "M2 12a10 10 0 0 1 18-6" }],
		["path", { d: "M2 16h.01" }],
		["path", { d: "M21.8 16c.2-2 .131-5.354 0-6" }],
		["path", { d: "M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2" }],
		["path", { d: "M8.65 22c.21-.66.45-1.32.57-2" }],
		["path", { d: "M9 6.8a6 6 0 0 1 9 5.2v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/fire-extinguisher.js
var FireExtinguisher;
var init_fire_extinguisher = __esmMin((() => {
	FireExtinguisher = [
		["path", { d: "M15 6.5V3a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3.5" }],
		["path", { d: "M9 18h8" }],
		["path", { d: "M18 3h-3" }],
		["path", { d: "M11 3a6 6 0 0 0-6 6v11" }],
		["path", { d: "M5 13h4" }],
		["path", { d: "M17 10a4 4 0 0 0-8 0v10a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/fish-off.js
var FishOff;
var init_fish_off = __esmMin((() => {
	FishOff = [
		["path", { d: "M18 12.47v.03m0-.5v.47m-.475 5.056A6.744 6.744 0 0 1 15 18c-3.56 0-7.56-2.53-8.5-6 .348-1.28 1.114-2.433 2.121-3.38m3.444-2.088A8.802 8.802 0 0 1 15 6c3.56 0 6.06 2.54 7 6-.309 1.14-.786 2.177-1.413 3.058" }],
		["path", { d: "M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33m7.48-4.372A9.77 9.77 0 0 1 16 6.07m0 11.86a9.77 9.77 0 0 1-1.728-3.618" }],
		["path", { d: "m16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98M8.53 3h5.27a2 2 0 0 1 1.98 1.67l.23 1.4M2 2l20 20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/fish-symbol.js
var FishSymbol;
var init_fish_symbol = __esmMin((() => {
	FishSymbol = [["path", { d: "M2 16s9-15 20-4C11 23 2 8 2 8" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/fish.js
var Fish;
var init_fish = __esmMin((() => {
	Fish = [
		["path", { d: "M6.5 12c.94-3.46 4.94-6 8.5-6 3.56 0 6.06 2.54 7 6-.94 3.47-3.44 6-7 6s-7.56-2.53-8.5-6Z" }],
		["path", { d: "M18 12v.5" }],
		["path", { d: "M16 17.93a9.77 9.77 0 0 1 0-11.86" }],
		["path", { d: "M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33" }],
		["path", { d: "M10.46 7.26C10.2 5.88 9.17 4.24 8 3h5.8a2 2 0 0 1 1.98 1.67l.23 1.4" }],
		["path", { d: "m16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/flag-off.js
var FlagOff;
var init_flag_off = __esmMin((() => {
	FlagOff = [
		["path", { d: "M16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M4 22V4" }],
		["path", { d: "M7.656 2H8c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10.347" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/flag-triangle-left.js
var FlagTriangleLeft;
var init_flag_triangle_left = __esmMin((() => {
	FlagTriangleLeft = [["path", { d: "M18 22V2.8a.8.8 0 0 0-1.17-.71L5.45 7.78a.8.8 0 0 0 0 1.44L18 15.5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/flag-triangle-right.js
var FlagTriangleRight;
var init_flag_triangle_right = __esmMin((() => {
	FlagTriangleRight = [["path", { d: "M6 22V2.8a.8.8 0 0 1 1.17-.71l11.38 5.69a.8.8 0 0 1 0 1.44L6 15.5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/flag.js
var Flag;
var init_flag = __esmMin((() => {
	Flag = [["path", { d: "M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/flame-kindling.js
var FlameKindling;
var init_flame_kindling = __esmMin((() => {
	FlameKindling = [
		["path", { d: "M12 2c1 3 2.5 3.5 3.5 4.5A5 5 0 0 1 17 10a5 5 0 1 1-10 0c0-.3 0-.6.1-.9a2 2 0 1 0 3.3-2C8 4.5 11 2 12 2Z" }],
		["path", { d: "m5 22 14-4" }],
		["path", { d: "m5 18 14 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/flame.js
var Flame;
var init_flame = __esmMin((() => {
	Flame = [["path", { d: "M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/flashlight-off.js
var FlashlightOff;
var init_flashlight_off = __esmMin((() => {
	FlashlightOff = [
		["path", { d: "M11.652 6H18" }],
		["path", { d: "M12 13v1" }],
		["path", { d: "M16 16v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-8a4 4 0 0 0-.8-2.4l-.6-.8A3 3 0 0 1 6 7V6" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M7.649 2H17a1 1 0 0 1 1 1v4a3 3 0 0 1-.6 1.8l-.6.8a4 4 0 0 0-.55 1.007" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/flashlight.js
var Flashlight;
var init_flashlight = __esmMin((() => {
	Flashlight = [
		["path", { d: "M12 13v1" }],
		["path", { d: "M17 2a1 1 0 0 1 1 1v4a3 3 0 0 1-.6 1.8l-.6.8A4 4 0 0 0 16 12v8a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2v-8a4 4 0 0 0-.8-2.4l-.6-.8A3 3 0 0 1 6 7V3a1 1 0 0 1 1-1z" }],
		["path", { d: "M6 6h12" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/flask-conical-off.js
var FlaskConicalOff;
var init_flask_conical_off = __esmMin((() => {
	FlaskConicalOff = [
		["path", { d: "M10 2v2.343" }],
		["path", { d: "M14 2v6.343" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M20 20a2 2 0 0 1-2 2H6a2 2 0 0 1-1.755-2.96l5.227-9.563" }],
		["path", { d: "M6.453 15H15" }],
		["path", { d: "M8.5 2h7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/flask-conical.js
var FlaskConical;
var init_flask_conical = __esmMin((() => {
	FlaskConical = [
		["path", { d: "M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2" }],
		["path", { d: "M6.453 15h11.094" }],
		["path", { d: "M8.5 2h7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/flask-round.js
var FlaskRound;
var init_flask_round = __esmMin((() => {
	FlaskRound = [
		["path", { d: "M10 2v6.292a7 7 0 1 0 4 0V2" }],
		["path", { d: "M5 15h14" }],
		["path", { d: "M8.5 2h7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/flip-horizontal-2.js
var FlipHorizontal2;
var init_flip_horizontal_2 = __esmMin((() => {
	FlipHorizontal2 = [
		["path", { d: "m3 7 5 5-5 5V7" }],
		["path", { d: "m21 7-5 5 5 5V7" }],
		["path", { d: "M12 20v2" }],
		["path", { d: "M12 14v2" }],
		["path", { d: "M12 8v2" }],
		["path", { d: "M12 2v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/flip-horizontal.js
var FlipHorizontal;
var init_flip_horizontal = __esmMin((() => {
	FlipHorizontal = [
		["path", { d: "M8 3H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h3" }],
		["path", { d: "M16 3h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-3" }],
		["path", { d: "M12 20v2" }],
		["path", { d: "M12 14v2" }],
		["path", { d: "M12 8v2" }],
		["path", { d: "M12 2v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/flip-vertical-2.js
var FlipVertical2;
var init_flip_vertical_2 = __esmMin((() => {
	FlipVertical2 = [
		["path", { d: "m17 3-5 5-5-5h10" }],
		["path", { d: "m17 21-5-5-5 5h10" }],
		["path", { d: "M4 12H2" }],
		["path", { d: "M10 12H8" }],
		["path", { d: "M16 12h-2" }],
		["path", { d: "M22 12h-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/flip-vertical.js
var FlipVertical;
var init_flip_vertical = __esmMin((() => {
	FlipVertical = [
		["path", { d: "M21 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v3" }],
		["path", { d: "M21 16v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3" }],
		["path", { d: "M4 12H2" }],
		["path", { d: "M10 12H8" }],
		["path", { d: "M16 12h-2" }],
		["path", { d: "M22 12h-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/flower-2.js
var Flower2;
var init_flower_2 = __esmMin((() => {
	Flower2 = [
		["path", { d: "M12 5a3 3 0 1 1 3 3m-3-3a3 3 0 1 0-3 3m3-3v1M9 8a3 3 0 1 0 3 3M9 8h1m5 0a3 3 0 1 1-3 3m3-3h-1m-2 3v-1" }],
		["circle", {
			cx: "12",
			cy: "8",
			r: "2"
		}],
		["path", { d: "M12 10v12" }],
		["path", { d: "M12 22c4.2 0 7-1.667 7-5-4.2 0-7 1.667-7 5Z" }],
		["path", { d: "M12 22c-4.2 0-7-1.667-7-5 4.2 0 7 1.667 7 5Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/flower.js
var Flower;
var init_flower = __esmMin((() => {
	Flower = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "3"
		}],
		["path", { d: "M12 16.5A4.5 4.5 0 1 1 7.5 12 4.5 4.5 0 1 1 12 7.5a4.5 4.5 0 1 1 4.5 4.5 4.5 4.5 0 1 1-4.5 4.5" }],
		["path", { d: "M12 7.5V9" }],
		["path", { d: "M7.5 12H9" }],
		["path", { d: "M16.5 12H15" }],
		["path", { d: "M12 16.5V15" }],
		["path", { d: "m8 8 1.88 1.88" }],
		["path", { d: "M14.12 9.88 16 8" }],
		["path", { d: "m8 16 1.88-1.88" }],
		["path", { d: "M14.12 14.12 16 16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/focus.js
var Focus;
var init_focus = __esmMin((() => {
	Focus = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "3"
		}],
		["path", { d: "M3 7V5a2 2 0 0 1 2-2h2" }],
		["path", { d: "M17 3h2a2 2 0 0 1 2 2v2" }],
		["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2" }],
		["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/fold-horizontal.js
var FoldHorizontal;
var init_fold_horizontal = __esmMin((() => {
	FoldHorizontal = [
		["path", { d: "M2 12h6" }],
		["path", { d: "M22 12h-6" }],
		["path", { d: "M12 2v2" }],
		["path", { d: "M12 8v2" }],
		["path", { d: "M12 14v2" }],
		["path", { d: "M12 20v2" }],
		["path", { d: "m19 9-3 3 3 3" }],
		["path", { d: "m5 15 3-3-3-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/fold-vertical.js
var FoldVertical;
var init_fold_vertical = __esmMin((() => {
	FoldVertical = [
		["path", { d: "M12 22v-6" }],
		["path", { d: "M12 8V2" }],
		["path", { d: "M4 12H2" }],
		["path", { d: "M10 12H8" }],
		["path", { d: "M16 12h-2" }],
		["path", { d: "M22 12h-2" }],
		["path", { d: "m15 19-3-3-3 3" }],
		["path", { d: "m15 5-3 3-3-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-archive.js
var FolderArchive;
var init_folder_archive = __esmMin((() => {
	FolderArchive = [
		["circle", {
			cx: "15",
			cy: "19",
			r: "2"
		}],
		["path", { d: "M20.9 19.8A2 2 0 0 0 22 18V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2h5.1" }],
		["path", { d: "M15 11v-1" }],
		["path", { d: "M15 17v-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-check.js
var FolderCheck;
var init_folder_check = __esmMin((() => {
	FolderCheck = [["path", { d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" }], ["path", { d: "m9 13 2 2 4-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-clock.js
var FolderClock;
var init_folder_clock = __esmMin((() => {
	FolderClock = [
		["path", { d: "M16 14v2.2l1.6 1" }],
		["path", { d: "M7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2" }],
		["circle", {
			cx: "16",
			cy: "16",
			r: "6"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-closed.js
var FolderClosed;
var init_folder_closed = __esmMin((() => {
	FolderClosed = [["path", { d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" }], ["path", { d: "M2 10h20" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-code.js
var FolderCode;
var init_folder_code = __esmMin((() => {
	FolderCode = [
		["path", { d: "M10 10.5 8 13l2 2.5" }],
		["path", { d: "m14 10.5 2 2.5-2 2.5" }],
		["path", { d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-cog.js
var FolderCog;
var init_folder_cog = __esmMin((() => {
	FolderCog = [
		["path", { d: "M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3" }],
		["path", { d: "m14.305 19.53.923-.382" }],
		["path", { d: "m15.228 16.852-.923-.383" }],
		["path", { d: "m16.852 15.228-.383-.923" }],
		["path", { d: "m16.852 20.772-.383.924" }],
		["path", { d: "m19.148 15.228.383-.923" }],
		["path", { d: "m19.53 21.696-.382-.924" }],
		["path", { d: "m20.772 16.852.924-.383" }],
		["path", { d: "m20.772 19.148.924.383" }],
		["circle", {
			cx: "18",
			cy: "18",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-dot.js
var FolderDot;
var init_folder_dot = __esmMin((() => {
	FolderDot = [["path", { d: "M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z" }], ["circle", {
		cx: "12",
		cy: "13",
		r: "1"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-down.js
var FolderDown;
var init_folder_down = __esmMin((() => {
	FolderDown = [
		["path", { d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" }],
		["path", { d: "M12 10v6" }],
		["path", { d: "m15 13-3 3-3-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-git-2.js
var FolderGit2;
var init_folder_git_2 = __esmMin((() => {
	FolderGit2 = [
		["path", { d: "M18 19a5 5 0 0 1-5-5v8" }],
		["path", { d: "M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5" }],
		["circle", {
			cx: "13",
			cy: "12",
			r: "2"
		}],
		["circle", {
			cx: "20",
			cy: "19",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-git.js
var FolderGit;
var init_folder_git = __esmMin((() => {
	FolderGit = [
		["circle", {
			cx: "12",
			cy: "13",
			r: "2"
		}],
		["path", { d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" }],
		["path", { d: "M14 13h3" }],
		["path", { d: "M7 13h3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-heart.js
var FolderHeart;
var init_folder_heart = __esmMin((() => {
	FolderHeart = [["path", { d: "M10.638 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v3.417" }], ["path", { d: "M14.62 18.8A2.25 2.25 0 1 1 18 15.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-input.js
var FolderInput;
var init_folder_input = __esmMin((() => {
	FolderInput = [
		["path", { d: "M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1" }],
		["path", { d: "M2 13h10" }],
		["path", { d: "m9 16 3-3-3-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-kanban.js
var FolderKanban;
var init_folder_kanban = __esmMin((() => {
	FolderKanban = [
		["path", { d: "M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z" }],
		["path", { d: "M8 10v4" }],
		["path", { d: "M12 10v2" }],
		["path", { d: "M16 10v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-key.js
var FolderKey;
var init_folder_key = __esmMin((() => {
	FolderKey = [
		["circle", {
			cx: "16",
			cy: "20",
			r: "2"
		}],
		["path", { d: "M10 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v2" }],
		["path", { d: "m22 14-4.5 4.5" }],
		["path", { d: "m21 15 1 1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-lock.js
var FolderLock;
var init_folder_lock = __esmMin((() => {
	FolderLock = [
		["rect", {
			width: "8",
			height: "5",
			x: "14",
			y: "17",
			rx: "1"
		}],
		["path", { d: "M10 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v2.5" }],
		["path", { d: "M20 17v-2a2 2 0 1 0-4 0v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-minus.js
var FolderMinus;
var init_folder_minus = __esmMin((() => {
	FolderMinus = [["path", { d: "M9 13h6" }], ["path", { d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-open-dot.js
var FolderOpenDot;
var init_folder_open_dot = __esmMin((() => {
	FolderOpenDot = [["path", { d: "m6 14 1.45-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.55 6a2 2 0 0 1-1.94 1.5H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H18a2 2 0 0 1 2 2v2" }], ["circle", {
		cx: "14",
		cy: "15",
		r: "1"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-open.js
var FolderOpen;
var init_folder_open = __esmMin((() => {
	FolderOpen = [["path", { d: "m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-output.js
var FolderOutput;
var init_folder_output = __esmMin((() => {
	FolderOutput = [
		["path", { d: "M2 7.5V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-1.5" }],
		["path", { d: "M2 13h10" }],
		["path", { d: "m5 10-3 3 3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-pen.js
var FolderPen;
var init_folder_pen = __esmMin((() => {
	FolderPen = [["path", { d: "M2 11.5V5a2 2 0 0 1 2-2h3.9c.7 0 1.3.3 1.7.9l.8 1.2c.4.6 1 .9 1.7.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-9.5" }], ["path", { d: "M11.378 13.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-plus.js
var FolderPlus;
var init_folder_plus = __esmMin((() => {
	FolderPlus = [
		["path", { d: "M12 10v6" }],
		["path", { d: "M9 13h6" }],
		["path", { d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-root.js
var FolderRoot;
var init_folder_root = __esmMin((() => {
	FolderRoot = [
		["path", { d: "M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z" }],
		["circle", {
			cx: "12",
			cy: "13",
			r: "2"
		}],
		["path", { d: "M12 15v5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-search-2.js
var FolderSearch2;
var init_folder_search_2 = __esmMin((() => {
	FolderSearch2 = [
		["circle", {
			cx: "11.5",
			cy: "12.5",
			r: "2.5"
		}],
		["path", { d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" }],
		["path", { d: "M13.3 14.3 15 16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-search.js
var FolderSearch;
var init_folder_search = __esmMin((() => {
	FolderSearch = [
		["path", { d: "M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1" }],
		["path", { d: "m21 21-1.9-1.9" }],
		["circle", {
			cx: "17",
			cy: "17",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-symlink.js
var FolderSymlink;
var init_folder_symlink = __esmMin((() => {
	FolderSymlink = [["path", { d: "M2 9.35V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7" }], ["path", { d: "m8 16 3-3-3-3" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-sync.js
var FolderSync;
var init_folder_sync = __esmMin((() => {
	FolderSync = [
		["path", { d: "M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v.5" }],
		["path", { d: "M12 10v4h4" }],
		["path", { d: "m12 14 1.535-1.605a5 5 0 0 1 8 1.5" }],
		["path", { d: "M22 22v-4h-4" }],
		["path", { d: "m22 18-1.535 1.605a5 5 0 0 1-8-1.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-tree.js
var FolderTree;
var init_folder_tree = __esmMin((() => {
	FolderTree = [
		["path", { d: "M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z" }],
		["path", { d: "M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z" }],
		["path", { d: "M3 5a2 2 0 0 0 2 2h3" }],
		["path", { d: "M3 3v13a2 2 0 0 0 2 2h3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-up.js
var FolderUp;
var init_folder_up = __esmMin((() => {
	FolderUp = [
		["path", { d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" }],
		["path", { d: "M12 10v6" }],
		["path", { d: "m9 13 3-3 3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder-x.js
var FolderX;
var init_folder_x = __esmMin((() => {
	FolderX = [
		["path", { d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" }],
		["path", { d: "m9.5 10.5 5 5" }],
		["path", { d: "m14.5 10.5-5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folder.js
var Folder$1;
var init_folder = __esmMin((() => {
	Folder$1 = [["path", { d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/folders.js
var Folders;
var init_folders = __esmMin((() => {
	Folders = [["path", { d: "M20 5a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h2.5a1.5 1.5 0 0 1 1.2.6l.6.8a1.5 1.5 0 0 0 1.2.6z" }], ["path", { d: "M3 8.268a2 2 0 0 0-1 1.738V19a2 2 0 0 0 2 2h11a2 2 0 0 0 1.732-1" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/footprints.js
var Footprints;
var init_footprints = __esmMin((() => {
	Footprints = [
		["path", { d: "M4 16v-2.38C4 11.5 2.97 10.5 3 8c.03-2.72 1.49-6 4.5-6C9.37 2 10 3.8 10 5.5c0 3.11-2 5.66-2 8.68V16a2 2 0 1 1-4 0Z" }],
		["path", { d: "M20 20v-2.38c0-2.12 1.03-3.12 1-5.62-.03-2.72-1.49-6-4.5-6C14.63 6 14 7.8 14 9.5c0 3.11 2 5.66 2 8.68V20a2 2 0 1 0 4 0Z" }],
		["path", { d: "M16 17h4" }],
		["path", { d: "M4 13h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/forklift.js
var Forklift;
var init_forklift = __esmMin((() => {
	Forklift = [
		["path", { d: "M12 12H5a2 2 0 0 0-2 2v5" }],
		["circle", {
			cx: "13",
			cy: "19",
			r: "2"
		}],
		["circle", {
			cx: "5",
			cy: "19",
			r: "2"
		}],
		["path", { d: "M8 19h3m5-17v17h6M6 12V7c0-1.1.9-2 2-2h3l5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/form.js
var Form;
var init_form = __esmMin((() => {
	Form = [
		["path", { d: "M4 14h6" }],
		["path", { d: "M4 2h10" }],
		["rect", {
			x: "4",
			y: "18",
			width: "16",
			height: "4",
			rx: "1"
		}],
		["rect", {
			x: "4",
			y: "6",
			width: "16",
			height: "4",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/forward.js
var Forward;
var init_forward = __esmMin((() => {
	Forward = [["path", { d: "m15 17 5-5-5-5" }], ["path", { d: "M4 18v-2a4 4 0 0 1 4-4h12" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/frame.js
var Frame;
var init_frame = __esmMin((() => {
	Frame = [
		["line", {
			x1: "22",
			x2: "2",
			y1: "6",
			y2: "6"
		}],
		["line", {
			x1: "22",
			x2: "2",
			y1: "18",
			y2: "18"
		}],
		["line", {
			x1: "6",
			x2: "6",
			y1: "2",
			y2: "22"
		}],
		["line", {
			x1: "18",
			x2: "18",
			y1: "2",
			y2: "22"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/framer.js
var Framer;
var init_framer = __esmMin((() => {
	Framer = [["path", { d: "M5 16V9h14V2H5l14 14h-7m-7 0 7 7v-7m-7 0h7" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/frown.js
var Frown;
var init_frown = __esmMin((() => {
	Frown = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "M16 16s-1.5-2-4-2-4 2-4 2" }],
		["line", {
			x1: "9",
			x2: "9.01",
			y1: "9",
			y2: "9"
		}],
		["line", {
			x1: "15",
			x2: "15.01",
			y1: "9",
			y2: "9"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/fuel.js
var Fuel;
var init_fuel = __esmMin((() => {
	Fuel = [
		["path", { d: "M14 13h2a2 2 0 0 1 2 2v2a2 2 0 0 0 4 0v-6.998a2 2 0 0 0-.59-1.42L18 5" }],
		["path", { d: "M14 21V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v16" }],
		["path", { d: "M2 21h13" }],
		["path", { d: "M3 9h11" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/fullscreen.js
var Fullscreen;
var init_fullscreen = __esmMin((() => {
	Fullscreen = [
		["path", { d: "M3 7V5a2 2 0 0 1 2-2h2" }],
		["path", { d: "M17 3h2a2 2 0 0 1 2 2v2" }],
		["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2" }],
		["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2" }],
		["rect", {
			width: "10",
			height: "8",
			x: "7",
			y: "8",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/funnel-plus.js
var FunnelPlus;
var init_funnel_plus = __esmMin((() => {
	FunnelPlus = [
		["path", { d: "M13.354 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l1.218-1.348" }],
		["path", { d: "M16 6h6" }],
		["path", { d: "M19 3v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/funnel-x.js
var FunnelX;
var init_funnel_x = __esmMin((() => {
	FunnelX = [
		["path", { d: "M12.531 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l.427-.473" }],
		["path", { d: "m16.5 3.5 5 5" }],
		["path", { d: "m21.5 3.5-5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/funnel.js
var Funnel;
var init_funnel = __esmMin((() => {
	Funnel = [["path", { d: "M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/gallery-horizontal-end.js
var GalleryHorizontalEnd;
var init_gallery_horizontal_end = __esmMin((() => {
	GalleryHorizontalEnd = [
		["path", { d: "M2 7v10" }],
		["path", { d: "M6 5v14" }],
		["rect", {
			width: "12",
			height: "18",
			x: "10",
			y: "3",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/gallery-horizontal.js
var GalleryHorizontal;
var init_gallery_horizontal = __esmMin((() => {
	GalleryHorizontal = [
		["path", { d: "M2 3v18" }],
		["rect", {
			width: "12",
			height: "18",
			x: "6",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M22 3v18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/gallery-thumbnails.js
var GalleryThumbnails;
var init_gallery_thumbnails = __esmMin((() => {
	GalleryThumbnails = [
		["rect", {
			width: "18",
			height: "14",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M4 21h1" }],
		["path", { d: "M9 21h1" }],
		["path", { d: "M14 21h1" }],
		["path", { d: "M19 21h1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/gallery-vertical-end.js
var GalleryVerticalEnd;
var init_gallery_vertical_end = __esmMin((() => {
	GalleryVerticalEnd = [
		["path", { d: "M7 2h10" }],
		["path", { d: "M5 6h14" }],
		["rect", {
			width: "18",
			height: "12",
			x: "3",
			y: "10",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/gallery-vertical.js
var GalleryVertical;
var init_gallery_vertical = __esmMin((() => {
	GalleryVertical = [
		["path", { d: "M3 2h18" }],
		["rect", {
			width: "18",
			height: "12",
			x: "3",
			y: "6",
			rx: "2"
		}],
		["path", { d: "M3 22h18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/gamepad-2.js
var Gamepad2;
var init_gamepad_2 = __esmMin((() => {
	Gamepad2 = [
		["line", {
			x1: "6",
			x2: "10",
			y1: "11",
			y2: "11"
		}],
		["line", {
			x1: "8",
			x2: "8",
			y1: "9",
			y2: "13"
		}],
		["line", {
			x1: "15",
			x2: "15.01",
			y1: "12",
			y2: "12"
		}],
		["line", {
			x1: "18",
			x2: "18.01",
			y1: "10",
			y2: "10"
		}],
		["path", { d: "M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/gamepad-directional.js
var GamepadDirectional;
var init_gamepad_directional = __esmMin((() => {
	GamepadDirectional = [
		["path", { d: "M11.146 15.854a1.207 1.207 0 0 1 1.708 0l1.56 1.56A2 2 0 0 1 15 18.828V21a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1v-2.172a2 2 0 0 1 .586-1.414z" }],
		["path", { d: "M18.828 15a2 2 0 0 1-1.414-.586l-1.56-1.56a1.207 1.207 0 0 1 0-1.708l1.56-1.56A2 2 0 0 1 18.828 9H21a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1z" }],
		["path", { d: "M6.586 14.414A2 2 0 0 1 5.172 15H3a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1h2.172a2 2 0 0 1 1.414.586l1.56 1.56a1.207 1.207 0 0 1 0 1.708z" }],
		["path", { d: "M9 3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2.172a2 2 0 0 1-.586 1.414l-1.56 1.56a1.207 1.207 0 0 1-1.708 0l-1.56-1.56A2 2 0 0 1 9 5.172z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/gamepad.js
var Gamepad;
var init_gamepad = __esmMin((() => {
	Gamepad = [
		["line", {
			x1: "6",
			x2: "10",
			y1: "12",
			y2: "12"
		}],
		["line", {
			x1: "8",
			x2: "8",
			y1: "10",
			y2: "14"
		}],
		["line", {
			x1: "15",
			x2: "15.01",
			y1: "13",
			y2: "13"
		}],
		["line", {
			x1: "18",
			x2: "18.01",
			y1: "11",
			y2: "11"
		}],
		["rect", {
			width: "20",
			height: "12",
			x: "2",
			y: "6",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/gauge.js
var Gauge;
var init_gauge = __esmMin((() => {
	Gauge = [["path", { d: "m12 14 4-4" }], ["path", { d: "M3.34 19a10 10 0 1 1 17.32 0" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/gavel.js
var Gavel;
var init_gavel = __esmMin((() => {
	Gavel = [
		["path", { d: "m14 13-8.381 8.38a1 1 0 0 1-3.001-3l8.384-8.381" }],
		["path", { d: "m16 16 6-6" }],
		["path", { d: "m21.5 10.5-8-8" }],
		["path", { d: "m8 8 6-6" }],
		["path", { d: "m8.5 7.5 8 8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/gem.js
var Gem;
var init_gem = __esmMin((() => {
	Gem = [
		["path", { d: "M10.5 3 8 9l4 13 4-13-2.5-6" }],
		["path", { d: "M17 3a2 2 0 0 1 1.6.8l3 4a2 2 0 0 1 .013 2.382l-7.99 10.986a2 2 0 0 1-3.247 0l-7.99-10.986A2 2 0 0 1 2.4 7.8l2.998-3.997A2 2 0 0 1 7 3z" }],
		["path", { d: "M2 9h20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/georgian-lari.js
var GeorgianLari;
var init_georgian_lari = __esmMin((() => {
	GeorgianLari = [
		["path", { d: "M11.5 21a7.5 7.5 0 1 1 7.35-9" }],
		["path", { d: "M13 12V3" }],
		["path", { d: "M4 21h16" }],
		["path", { d: "M9 12V3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ghost.js
var Ghost;
var init_ghost = __esmMin((() => {
	Ghost = [
		["path", { d: "M9 10h.01" }],
		["path", { d: "M15 10h.01" }],
		["path", { d: "M12 2a8 8 0 0 0-8 8v12l3-3 2.5 2.5L12 19l2.5 2.5L17 19l3 3V10a8 8 0 0 0-8-8z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/gift.js
var Gift;
var init_gift = __esmMin((() => {
	Gift = [
		["rect", {
			x: "3",
			y: "8",
			width: "18",
			height: "4",
			rx: "1"
		}],
		["path", { d: "M12 8v13" }],
		["path", { d: "M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7" }],
		["path", { d: "M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/git-branch-minus.js
var GitBranchMinus;
var init_git_branch_minus = __esmMin((() => {
	GitBranchMinus = [
		["path", { d: "M15 6a9 9 0 0 0-9 9V3" }],
		["path", { d: "M21 18h-6" }],
		["circle", {
			cx: "18",
			cy: "6",
			r: "3"
		}],
		["circle", {
			cx: "6",
			cy: "18",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/git-branch-plus.js
var GitBranchPlus;
var init_git_branch_plus = __esmMin((() => {
	GitBranchPlus = [
		["path", { d: "M6 3v12" }],
		["path", { d: "M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z" }],
		["path", { d: "M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6z" }],
		["path", { d: "M15 6a9 9 0 0 0-9 9" }],
		["path", { d: "M18 15v6" }],
		["path", { d: "M21 18h-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/git-branch.js
var GitBranch;
var init_git_branch = __esmMin((() => {
	GitBranch = [
		["line", {
			x1: "6",
			x2: "6",
			y1: "3",
			y2: "15"
		}],
		["circle", {
			cx: "18",
			cy: "6",
			r: "3"
		}],
		["circle", {
			cx: "6",
			cy: "18",
			r: "3"
		}],
		["path", { d: "M18 9a9 9 0 0 1-9 9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/git-commit-horizontal.js
var GitCommitHorizontal;
var init_git_commit_horizontal = __esmMin((() => {
	GitCommitHorizontal = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "3"
		}],
		["line", {
			x1: "3",
			x2: "9",
			y1: "12",
			y2: "12"
		}],
		["line", {
			x1: "15",
			x2: "21",
			y1: "12",
			y2: "12"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/git-commit-vertical.js
var GitCommitVertical;
var init_git_commit_vertical = __esmMin((() => {
	GitCommitVertical = [
		["path", { d: "M12 3v6" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "3"
		}],
		["path", { d: "M12 15v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/git-compare-arrows.js
var GitCompareArrows;
var init_git_compare_arrows = __esmMin((() => {
	GitCompareArrows = [
		["circle", {
			cx: "5",
			cy: "6",
			r: "3"
		}],
		["path", { d: "M12 6h5a2 2 0 0 1 2 2v7" }],
		["path", { d: "m15 9-3-3 3-3" }],
		["circle", {
			cx: "19",
			cy: "18",
			r: "3"
		}],
		["path", { d: "M12 18H7a2 2 0 0 1-2-2V9" }],
		["path", { d: "m9 15 3 3-3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/git-compare.js
var GitCompare;
var init_git_compare = __esmMin((() => {
	GitCompare = [
		["circle", {
			cx: "18",
			cy: "18",
			r: "3"
		}],
		["circle", {
			cx: "6",
			cy: "6",
			r: "3"
		}],
		["path", { d: "M13 6h3a2 2 0 0 1 2 2v7" }],
		["path", { d: "M11 18H8a2 2 0 0 1-2-2V9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/git-fork.js
var GitFork;
var init_git_fork = __esmMin((() => {
	GitFork = [
		["circle", {
			cx: "12",
			cy: "18",
			r: "3"
		}],
		["circle", {
			cx: "6",
			cy: "6",
			r: "3"
		}],
		["circle", {
			cx: "18",
			cy: "6",
			r: "3"
		}],
		["path", { d: "M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9" }],
		["path", { d: "M12 12v3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/git-graph.js
var GitGraph;
var init_git_graph = __esmMin((() => {
	GitGraph = [
		["circle", {
			cx: "5",
			cy: "6",
			r: "3"
		}],
		["path", { d: "M5 9v6" }],
		["circle", {
			cx: "5",
			cy: "18",
			r: "3"
		}],
		["path", { d: "M12 3v18" }],
		["circle", {
			cx: "19",
			cy: "6",
			r: "3"
		}],
		["path", { d: "M16 15.7A9 9 0 0 0 19 9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/git-merge.js
var GitMerge;
var init_git_merge = __esmMin((() => {
	GitMerge = [
		["circle", {
			cx: "18",
			cy: "18",
			r: "3"
		}],
		["circle", {
			cx: "6",
			cy: "6",
			r: "3"
		}],
		["path", { d: "M6 21V9a9 9 0 0 0 9 9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/git-pull-request-arrow.js
var GitPullRequestArrow;
var init_git_pull_request_arrow = __esmMin((() => {
	GitPullRequestArrow = [
		["circle", {
			cx: "5",
			cy: "6",
			r: "3"
		}],
		["path", { d: "M5 9v12" }],
		["circle", {
			cx: "19",
			cy: "18",
			r: "3"
		}],
		["path", { d: "m15 9-3-3 3-3" }],
		["path", { d: "M12 6h5a2 2 0 0 1 2 2v7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/git-pull-request-closed.js
var GitPullRequestClosed;
var init_git_pull_request_closed = __esmMin((() => {
	GitPullRequestClosed = [
		["circle", {
			cx: "6",
			cy: "6",
			r: "3"
		}],
		["path", { d: "M6 9v12" }],
		["path", { d: "m21 3-6 6" }],
		["path", { d: "m21 9-6-6" }],
		["path", { d: "M18 11.5V15" }],
		["circle", {
			cx: "18",
			cy: "18",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/git-pull-request-create-arrow.js
var GitPullRequestCreateArrow;
var init_git_pull_request_create_arrow = __esmMin((() => {
	GitPullRequestCreateArrow = [
		["circle", {
			cx: "5",
			cy: "6",
			r: "3"
		}],
		["path", { d: "M5 9v12" }],
		["path", { d: "m15 9-3-3 3-3" }],
		["path", { d: "M12 6h5a2 2 0 0 1 2 2v3" }],
		["path", { d: "M19 15v6" }],
		["path", { d: "M22 18h-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/git-pull-request-create.js
var GitPullRequestCreate;
var init_git_pull_request_create = __esmMin((() => {
	GitPullRequestCreate = [
		["circle", {
			cx: "6",
			cy: "6",
			r: "3"
		}],
		["path", { d: "M6 9v12" }],
		["path", { d: "M13 6h3a2 2 0 0 1 2 2v3" }],
		["path", { d: "M18 15v6" }],
		["path", { d: "M21 18h-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/git-pull-request-draft.js
var GitPullRequestDraft;
var init_git_pull_request_draft = __esmMin((() => {
	GitPullRequestDraft = [
		["circle", {
			cx: "18",
			cy: "18",
			r: "3"
		}],
		["circle", {
			cx: "6",
			cy: "6",
			r: "3"
		}],
		["path", { d: "M18 6V5" }],
		["path", { d: "M18 11v-1" }],
		["line", {
			x1: "6",
			x2: "6",
			y1: "9",
			y2: "21"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/gitlab.js
var Gitlab;
var init_gitlab = __esmMin((() => {
	Gitlab = [["path", { d: "m22 13.29-3.33-10a.42.42 0 0 0-.14-.18.38.38 0 0 0-.22-.11.39.39 0 0 0-.23.07.42.42 0 0 0-.14.18l-2.26 6.67H8.32L6.1 3.26a.42.42 0 0 0-.1-.18.38.38 0 0 0-.26-.08.39.39 0 0 0-.23.07.42.42 0 0 0-.14.18L2 13.29a.74.74 0 0 0 .27.83L12 21l9.69-6.88a.71.71 0 0 0 .31-.83Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/git-pull-request.js
var GitPullRequest;
var init_git_pull_request = __esmMin((() => {
	GitPullRequest = [
		["circle", {
			cx: "18",
			cy: "18",
			r: "3"
		}],
		["circle", {
			cx: "6",
			cy: "6",
			r: "3"
		}],
		["path", { d: "M13 6h3a2 2 0 0 1 2 2v7" }],
		["line", {
			x1: "6",
			x2: "6",
			y1: "9",
			y2: "21"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/glass-water.js
var GlassWater;
var init_glass_water = __esmMin((() => {
	GlassWater = [["path", { d: "M5.116 4.104A1 1 0 0 1 6.11 3h11.78a1 1 0 0 1 .994 1.105L17.19 20.21A2 2 0 0 1 15.2 22H8.8a2 2 0 0 1-2-1.79z" }], ["path", { d: "M6 12a5 5 0 0 1 6 0 5 5 0 0 0 6 0" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/github.js
var Github;
var init_github = __esmMin((() => {
	Github = [["path", { d: "M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4" }], ["path", { d: "M9 18c-4.51 2-5-2-7-2" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/glasses.js
var Glasses;
var init_glasses = __esmMin((() => {
	Glasses = [
		["circle", {
			cx: "6",
			cy: "15",
			r: "4"
		}],
		["circle", {
			cx: "18",
			cy: "15",
			r: "4"
		}],
		["path", { d: "M14 15a2 2 0 0 0-2-2 2 2 0 0 0-2 2" }],
		["path", { d: "M2.5 13 5 7c.7-1.3 1.4-2 3-2" }],
		["path", { d: "M21.5 13 19 7c-.7-1.3-1.5-2-3-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/globe-lock.js
var GlobeLock;
var init_globe_lock = __esmMin((() => {
	GlobeLock = [
		["path", { d: "M15.686 15A14.5 14.5 0 0 1 12 22a14.5 14.5 0 0 1 0-20 10 10 0 1 0 9.542 13" }],
		["path", { d: "M2 12h8.5" }],
		["path", { d: "M20 6V4a2 2 0 1 0-4 0v2" }],
		["rect", {
			width: "8",
			height: "5",
			x: "14",
			y: "6",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/globe.js
var Globe;
var init_globe = __esmMin((() => {
	Globe = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" }],
		["path", { d: "M2 12h20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/goal.js
var Goal;
var init_goal = __esmMin((() => {
	Goal = [
		["path", { d: "M12 13V2l8 4-8 4" }],
		["path", { d: "M20.561 10.222a9 9 0 1 1-12.55-5.29" }],
		["path", { d: "M8.002 9.997a5 5 0 1 0 8.9 2.02" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/gpu.js
var Gpu;
var init_gpu = __esmMin((() => {
	Gpu = [
		["path", { d: "M2 21V3" }],
		["path", { d: "M2 5h18a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2.26" }],
		["path", { d: "M7 17v3a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-3" }],
		["circle", {
			cx: "16",
			cy: "11",
			r: "2"
		}],
		["circle", {
			cx: "8",
			cy: "11",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/graduation-cap.js
var GraduationCap;
var init_graduation_cap = __esmMin((() => {
	GraduationCap = [
		["path", { d: "M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z" }],
		["path", { d: "M22 10v6" }],
		["path", { d: "M6 12.5V16a6 3 0 0 0 12 0v-3.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/grape.js
var Grape;
var init_grape = __esmMin((() => {
	Grape = [
		["path", { d: "M22 5V2l-5.89 5.89" }],
		["circle", {
			cx: "16.6",
			cy: "15.89",
			r: "3"
		}],
		["circle", {
			cx: "8.11",
			cy: "7.4",
			r: "3"
		}],
		["circle", {
			cx: "12.35",
			cy: "11.65",
			r: "3"
		}],
		["circle", {
			cx: "13.91",
			cy: "5.85",
			r: "3"
		}],
		["circle", {
			cx: "18.15",
			cy: "10.09",
			r: "3"
		}],
		["circle", {
			cx: "6.56",
			cy: "13.2",
			r: "3"
		}],
		["circle", {
			cx: "10.8",
			cy: "17.44",
			r: "3"
		}],
		["circle", {
			cx: "5",
			cy: "19",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/grid-2x2-check.js
var Grid2x2Check;
var init_grid_2x2_check = __esmMin((() => {
	Grid2x2Check = [["path", { d: "M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3" }], ["path", { d: "m16 19 2 2 4-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/grid-2x2-plus.js
var Grid2x2Plus;
var init_grid_2x2_plus = __esmMin((() => {
	Grid2x2Plus = [
		["path", { d: "M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3" }],
		["path", { d: "M16 19h6" }],
		["path", { d: "M19 22v-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/grid-2x2-x.js
var Grid2x2X;
var init_grid_2x2_x = __esmMin((() => {
	Grid2x2X = [
		["path", { d: "M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3" }],
		["path", { d: "m16 16 5 5" }],
		["path", { d: "m16 21 5-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/grid-2x2.js
var Grid2x2;
var init_grid_2x2 = __esmMin((() => {
	Grid2x2 = [
		["path", { d: "M12 3v18" }],
		["path", { d: "M3 12h18" }],
		["rect", {
			x: "3",
			y: "3",
			width: "18",
			height: "18",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/grid-3x2.js
var Grid3x2;
var init_grid_3x2 = __esmMin((() => {
	Grid3x2 = [
		["path", { d: "M15 3v18" }],
		["path", { d: "M3 12h18" }],
		["path", { d: "M9 3v18" }],
		["rect", {
			x: "3",
			y: "3",
			width: "18",
			height: "18",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/grid-3x3.js
var Grid3x3;
var init_grid_3x3 = __esmMin((() => {
	Grid3x3 = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M3 9h18" }],
		["path", { d: "M3 15h18" }],
		["path", { d: "M9 3v18" }],
		["path", { d: "M15 3v18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/grip-horizontal.js
var GripHorizontal;
var init_grip_horizontal = __esmMin((() => {
	GripHorizontal = [
		["circle", {
			cx: "12",
			cy: "9",
			r: "1"
		}],
		["circle", {
			cx: "19",
			cy: "9",
			r: "1"
		}],
		["circle", {
			cx: "5",
			cy: "9",
			r: "1"
		}],
		["circle", {
			cx: "12",
			cy: "15",
			r: "1"
		}],
		["circle", {
			cx: "19",
			cy: "15",
			r: "1"
		}],
		["circle", {
			cx: "5",
			cy: "15",
			r: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/grip-vertical.js
var GripVertical;
var init_grip_vertical = __esmMin((() => {
	GripVertical = [
		["circle", {
			cx: "9",
			cy: "12",
			r: "1"
		}],
		["circle", {
			cx: "9",
			cy: "5",
			r: "1"
		}],
		["circle", {
			cx: "9",
			cy: "19",
			r: "1"
		}],
		["circle", {
			cx: "15",
			cy: "12",
			r: "1"
		}],
		["circle", {
			cx: "15",
			cy: "5",
			r: "1"
		}],
		["circle", {
			cx: "15",
			cy: "19",
			r: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/grip.js
var Grip;
var init_grip = __esmMin((() => {
	Grip = [
		["circle", {
			cx: "12",
			cy: "5",
			r: "1"
		}],
		["circle", {
			cx: "19",
			cy: "5",
			r: "1"
		}],
		["circle", {
			cx: "5",
			cy: "5",
			r: "1"
		}],
		["circle", {
			cx: "12",
			cy: "12",
			r: "1"
		}],
		["circle", {
			cx: "19",
			cy: "12",
			r: "1"
		}],
		["circle", {
			cx: "5",
			cy: "12",
			r: "1"
		}],
		["circle", {
			cx: "12",
			cy: "19",
			r: "1"
		}],
		["circle", {
			cx: "19",
			cy: "19",
			r: "1"
		}],
		["circle", {
			cx: "5",
			cy: "19",
			r: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/group.js
var Group;
var init_group = __esmMin((() => {
	Group = [
		["path", { d: "M3 7V5c0-1.1.9-2 2-2h2" }],
		["path", { d: "M17 3h2c1.1 0 2 .9 2 2v2" }],
		["path", { d: "M21 17v2c0 1.1-.9 2-2 2h-2" }],
		["path", { d: "M7 21H5c-1.1 0-2-.9-2-2v-2" }],
		["rect", {
			width: "7",
			height: "5",
			x: "7",
			y: "7",
			rx: "1"
		}],
		["rect", {
			width: "7",
			height: "5",
			x: "10",
			y: "12",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/guitar.js
var Guitar;
var init_guitar = __esmMin((() => {
	Guitar = [
		["path", { d: "m11.9 12.1 4.514-4.514" }],
		["path", { d: "M20.1 2.3a1 1 0 0 0-1.4 0l-1.114 1.114A2 2 0 0 0 17 4.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 17.828 7h1.344a2 2 0 0 0 1.414-.586L21.7 5.3a1 1 0 0 0 0-1.4z" }],
		["path", { d: "m6 16 2 2" }],
		["path", { d: "M8.23 9.85A3 3 0 0 1 11 8a5 5 0 0 1 5 5 3 3 0 0 1-1.85 2.77l-.92.38A2 2 0 0 0 12 18a4 4 0 0 1-4 4 6 6 0 0 1-6-6 4 4 0 0 1 4-4 2 2 0 0 0 1.85-1.23z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ham.js
var Ham;
var init_ham = __esmMin((() => {
	Ham = [
		["path", { d: "M13.144 21.144A7.274 10.445 45 1 0 2.856 10.856" }],
		["path", { d: "M13.144 21.144A7.274 4.365 45 0 0 2.856 10.856a7.274 4.365 45 0 0 10.288 10.288" }],
		["path", { d: "M16.565 10.435 18.6 8.4a2.501 2.501 0 1 0 1.65-4.65 2.5 2.5 0 1 0-4.66 1.66l-2.024 2.025" }],
		["path", { d: "m8.5 16.5-1-1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hamburger.js
var Hamburger;
var init_hamburger = __esmMin((() => {
	Hamburger = [
		["path", { d: "M12 16H4a2 2 0 1 1 0-4h16a2 2 0 1 1 0 4h-4.25" }],
		["path", { d: "M5 12a2 2 0 0 1-2-2 9 7 0 0 1 18 0 2 2 0 0 1-2 2" }],
		["path", { d: "M5 16a2 2 0 0 0-2 2 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 2 2 0 0 0-2-2q0 0 0 0" }],
		["path", { d: "m6.67 12 6.13 4.6a2 2 0 0 0 2.8-.4l3.15-4.2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hammer.js
var Hammer;
var init_hammer = __esmMin((() => {
	Hammer = [
		["path", { d: "m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9" }],
		["path", { d: "m18 15 4-4" }],
		["path", { d: "m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hand-fist.js
var HandFist;
var init_hand_fist = __esmMin((() => {
	HandFist = [
		["path", { d: "M12.035 17.012a3 3 0 0 0-3-3l-.311-.002a.72.72 0 0 1-.505-1.229l1.195-1.195A2 2 0 0 1 10.828 11H12a2 2 0 0 0 0-4H9.243a3 3 0 0 0-2.122.879l-2.707 2.707A4.83 4.83 0 0 0 3 14a8 8 0 0 0 8 8h2a8 8 0 0 0 8-8V7a2 2 0 1 0-4 0v2a2 2 0 1 0 4 0" }],
		["path", { d: "M13.888 9.662A2 2 0 0 0 17 8V5A2 2 0 1 0 13 5" }],
		["path", { d: "M9 5A2 2 0 1 0 5 5V10" }],
		["path", { d: "M9 7V4A2 2 0 1 1 13 4V7.268" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hand-coins.js
var HandCoins;
var init_hand_coins = __esmMin((() => {
	HandCoins = [
		["path", { d: "M11 15h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 17" }],
		["path", { d: "m7 21 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9" }],
		["path", { d: "m2 16 6 6" }],
		["circle", {
			cx: "16",
			cy: "9",
			r: "2.9"
		}],
		["circle", {
			cx: "6",
			cy: "5",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hand-grab.js
var HandGrab;
var init_hand_grab = __esmMin((() => {
	HandGrab = [
		["path", { d: "M18 11.5V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1.4" }],
		["path", { d: "M14 10V8a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2" }],
		["path", { d: "M10 9.9V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v5" }],
		["path", { d: "M6 14a2 2 0 0 0-2-2a2 2 0 0 0-2 2" }],
		["path", { d: "M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-4a8 8 0 0 1-8-8 2 2 0 1 1 4 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hand-heart.js
var HandHeart;
var init_hand_heart = __esmMin((() => {
	HandHeart = [
		["path", { d: "M11 14h2a2 2 0 0 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 16" }],
		["path", { d: "m14.45 13.39 5.05-4.694C20.196 8 21 6.85 21 5.75a2.75 2.75 0 0 0-4.797-1.837.276.276 0 0 1-.406 0A2.75 2.75 0 0 0 11 5.75c0 1.2.802 2.248 1.5 2.946L16 11.95" }],
		["path", { d: "m2 15 6 6" }],
		["path", { d: "m7 20 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a1 1 0 0 0-2.75-2.91" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hand-helping.js
var HandHelping;
var init_hand_helping = __esmMin((() => {
	HandHelping = [
		["path", { d: "M11 12h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 14" }],
		["path", { d: "m7 18 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9" }],
		["path", { d: "m2 13 6 6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hand-metal.js
var HandMetal;
var init_hand_metal = __esmMin((() => {
	HandMetal = [
		["path", { d: "M18 12.5V10a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1.4" }],
		["path", { d: "M14 11V9a2 2 0 1 0-4 0v2" }],
		["path", { d: "M10 10.5V5a2 2 0 1 0-4 0v9" }],
		["path", { d: "m7 15-1.76-1.76a2 2 0 0 0-2.83 2.82l3.6 3.6C7.5 21.14 9.2 22 12 22h2a8 8 0 0 0 8-8V7a2 2 0 1 0-4 0v5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hand-platter.js
var HandPlatter;
var init_hand_platter = __esmMin((() => {
	HandPlatter = [
		["path", { d: "M12 3V2" }],
		["path", { d: "m15.4 17.4 3.2-2.8a2 2 0 1 1 2.8 2.9l-3.6 3.3c-.7.8-1.7 1.2-2.8 1.2h-4c-1.1 0-2.1-.4-2.8-1.2l-1.302-1.464A1 1 0 0 0 6.151 19H5" }],
		["path", { d: "M2 14h12a2 2 0 0 1 0 4h-2" }],
		["path", { d: "M4 10h16" }],
		["path", { d: "M5 10a7 7 0 0 1 14 0" }],
		["path", { d: "M5 14v6a1 1 0 0 1-1 1H2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hand.js
var Hand;
var init_hand = __esmMin((() => {
	Hand = [
		["path", { d: "M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2" }],
		["path", { d: "M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2" }],
		["path", { d: "M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8" }],
		["path", { d: "M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/handbag.js
var Handbag;
var init_handbag = __esmMin((() => {
	Handbag = [["path", { d: "M2.048 18.566A2 2 0 0 0 4 21h16a2 2 0 0 0 1.952-2.434l-2-9A2 2 0 0 0 18 8H6a2 2 0 0 0-1.952 1.566z" }], ["path", { d: "M8 11V6a4 4 0 0 1 8 0v5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/handshake.js
var Handshake;
var init_handshake = __esmMin((() => {
	Handshake = [
		["path", { d: "m11 17 2 2a1 1 0 1 0 3-3" }],
		["path", { d: "m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4" }],
		["path", { d: "m21 3 1 11h-2" }],
		["path", { d: "M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3" }],
		["path", { d: "M3 4h8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hard-drive-download.js
var HardDriveDownload;
var init_hard_drive_download = __esmMin((() => {
	HardDriveDownload = [
		["path", { d: "M12 2v8" }],
		["path", { d: "m16 6-4 4-4-4" }],
		["rect", {
			width: "20",
			height: "8",
			x: "2",
			y: "14",
			rx: "2"
		}],
		["path", { d: "M6 18h.01" }],
		["path", { d: "M10 18h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hard-drive-upload.js
var HardDriveUpload;
var init_hard_drive_upload = __esmMin((() => {
	HardDriveUpload = [
		["path", { d: "m16 6-4-4-4 4" }],
		["path", { d: "M12 2v8" }],
		["rect", {
			width: "20",
			height: "8",
			x: "2",
			y: "14",
			rx: "2"
		}],
		["path", { d: "M6 18h.01" }],
		["path", { d: "M10 18h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hard-drive.js
var HardDrive;
var init_hard_drive = __esmMin((() => {
	HardDrive = [
		["line", {
			x1: "22",
			x2: "2",
			y1: "12",
			y2: "12"
		}],
		["path", { d: "M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z" }],
		["line", {
			x1: "6",
			x2: "6.01",
			y1: "16",
			y2: "16"
		}],
		["line", {
			x1: "10",
			x2: "10.01",
			y1: "16",
			y2: "16"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hard-hat.js
var HardHat;
var init_hard_hat = __esmMin((() => {
	HardHat = [
		["path", { d: "M10 10V5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v5" }],
		["path", { d: "M14 6a6 6 0 0 1 6 6v3" }],
		["path", { d: "M4 15v-3a6 6 0 0 1 6-6" }],
		["rect", {
			x: "2",
			y: "15",
			width: "20",
			height: "4",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hash.js
var Hash;
var init_hash = __esmMin((() => {
	Hash = [
		["line", {
			x1: "4",
			x2: "20",
			y1: "9",
			y2: "9"
		}],
		["line", {
			x1: "4",
			x2: "20",
			y1: "15",
			y2: "15"
		}],
		["line", {
			x1: "10",
			x2: "8",
			y1: "3",
			y2: "21"
		}],
		["line", {
			x1: "16",
			x2: "14",
			y1: "3",
			y2: "21"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hat-glasses.js
var HatGlasses;
var init_hat_glasses = __esmMin((() => {
	HatGlasses = [
		["path", { d: "M14 18a2 2 0 0 0-4 0" }],
		["path", { d: "m19 11-2.11-6.657a2 2 0 0 0-2.752-1.148l-1.276.61A2 2 0 0 1 12 4H8.5a2 2 0 0 0-1.925 1.456L5 11" }],
		["path", { d: "M2 11h20" }],
		["circle", {
			cx: "17",
			cy: "18",
			r: "3"
		}],
		["circle", {
			cx: "7",
			cy: "18",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hdmi-port.js
var HdmiPort;
var init_hdmi_port = __esmMin((() => {
	HdmiPort = [["path", { d: "M22 9a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h1l2 2h12l2-2h1a1 1 0 0 0 1-1Z" }], ["path", { d: "M7.5 12h9" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/haze.js
var Haze;
var init_haze = __esmMin((() => {
	Haze = [
		["path", { d: "m5.2 6.2 1.4 1.4" }],
		["path", { d: "M2 13h2" }],
		["path", { d: "M20 13h2" }],
		["path", { d: "m17.4 7.6 1.4-1.4" }],
		["path", { d: "M22 17H2" }],
		["path", { d: "M22 21H2" }],
		["path", { d: "M16 13a4 4 0 0 0-8 0" }],
		["path", { d: "M12 5V2.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/heading-1.js
var Heading1;
var init_heading_1 = __esmMin((() => {
	Heading1 = [
		["path", { d: "M4 12h8" }],
		["path", { d: "M4 18V6" }],
		["path", { d: "M12 18V6" }],
		["path", { d: "m17 12 3-2v8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/heading-2.js
var Heading2;
var init_heading_2 = __esmMin((() => {
	Heading2 = [
		["path", { d: "M4 12h8" }],
		["path", { d: "M4 18V6" }],
		["path", { d: "M12 18V6" }],
		["path", { d: "M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/heading-3.js
var Heading3;
var init_heading_3 = __esmMin((() => {
	Heading3 = [
		["path", { d: "M4 12h8" }],
		["path", { d: "M4 18V6" }],
		["path", { d: "M12 18V6" }],
		["path", { d: "M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2" }],
		["path", { d: "M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/heading-4.js
var Heading4;
var init_heading_4 = __esmMin((() => {
	Heading4 = [
		["path", { d: "M12 18V6" }],
		["path", { d: "M17 10v3a1 1 0 0 0 1 1h3" }],
		["path", { d: "M21 10v8" }],
		["path", { d: "M4 12h8" }],
		["path", { d: "M4 18V6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/heading-6.js
var Heading6;
var init_heading_6 = __esmMin((() => {
	Heading6 = [
		["path", { d: "M4 12h8" }],
		["path", { d: "M4 18V6" }],
		["path", { d: "M12 18V6" }],
		["circle", {
			cx: "19",
			cy: "16",
			r: "2"
		}],
		["path", { d: "M20 10c-2 2-3 3.5-3 6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/heading-5.js
var Heading5;
var init_heading_5 = __esmMin((() => {
	Heading5 = [
		["path", { d: "M4 12h8" }],
		["path", { d: "M4 18V6" }],
		["path", { d: "M12 18V6" }],
		["path", { d: "M17 13v-3h4" }],
		["path", { d: "M17 17.7c.4.2.8.3 1.3.3 1.5 0 2.7-1.1 2.7-2.5S19.8 13 18.3 13H17" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/heading.js
var Heading;
var init_heading = __esmMin((() => {
	Heading = [
		["path", { d: "M6 12h12" }],
		["path", { d: "M6 20V4" }],
		["path", { d: "M18 20V4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/headphone-off.js
var HeadphoneOff;
var init_headphone_off = __esmMin((() => {
	HeadphoneOff = [
		["path", { d: "M21 14h-1.343" }],
		["path", { d: "M9.128 3.47A9 9 0 0 1 21 12v3.343" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M20.414 20.414A2 2 0 0 1 19 21h-1a2 2 0 0 1-2-2v-3" }],
		["path", { d: "M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 2.636-6.364" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/headphones.js
var Headphones;
var init_headphones = __esmMin((() => {
	Headphones = [["path", { d: "M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/headset.js
var Headset;
var init_headset = __esmMin((() => {
	Headset = [["path", { d: "M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z" }], ["path", { d: "M21 16v2a4 4 0 0 1-4 4h-5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/heart-crack.js
var HeartCrack;
var init_heart_crack = __esmMin((() => {
	HeartCrack = [["path", { d: "M12.409 5.824c-.702.792-1.15 1.496-1.415 2.166l2.153 2.156a.5.5 0 0 1 0 .707l-2.293 2.293a.5.5 0 0 0 0 .707L12 15" }], ["path", { d: "M13.508 20.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5a5.5 5.5 0 0 1 9.591-3.677.6.6 0 0 0 .818.001A5.5 5.5 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/heart-handshake.js
var HeartHandshake;
var init_heart_handshake = __esmMin((() => {
	HeartHandshake = [["path", { d: "M19.414 14.414C21 12.828 22 11.5 22 9.5a5.5 5.5 0 0 0-9.591-3.676.6.6 0 0 1-.818.001A5.5 5.5 0 0 0 2 9.5c0 2.3 1.5 4 3 5.5l5.535 5.362a2 2 0 0 0 2.879.052 2.12 2.12 0 0 0-.004-3 2.124 2.124 0 1 0 3-3 2.124 2.124 0 0 0 3.004 0 2 2 0 0 0 0-2.828l-1.881-1.882a2.41 2.41 0 0 0-3.409 0l-1.71 1.71a2 2 0 0 1-2.828 0 2 2 0 0 1 0-2.828l2.823-2.762" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/heart-minus.js
var HeartMinus;
var init_heart_minus = __esmMin((() => {
	HeartMinus = [["path", { d: "m14.876 18.99-1.368 1.323a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5a5.2 5.2 0 0 1-.244 1.572" }], ["path", { d: "M15 15h6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/heart-off.js
var HeartOff;
var init_heart_off = __esmMin((() => {
	HeartOff = [
		["path", { d: "M10.5 4.893a5.5 5.5 0 0 1 1.091.931.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 1.872-1.002 3.356-2.187 4.655" }],
		["path", { d: "m16.967 16.967-3.459 3.346a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5a5.5 5.5 0 0 1 2.747-4.761" }],
		["path", { d: "m2 2 20 20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/heart-plus.js
var HeartPlus;
var init_heart_plus = __esmMin((() => {
	HeartPlus = [
		["path", { d: "m14.479 19.374-.971.939a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5a5.2 5.2 0 0 1-.219 1.49" }],
		["path", { d: "M15 15h6" }],
		["path", { d: "M18 12v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/heart-pulse.js
var HeartPulse;
var init_heart_pulse = __esmMin((() => {
	HeartPulse = [["path", { d: "M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5" }], ["path", { d: "M3.22 13H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/heart.js
var Heart;
var init_heart = __esmMin((() => {
	Heart = [["path", { d: "M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/heater.js
var Heater;
var init_heater = __esmMin((() => {
	Heater = [
		["path", { d: "M11 8c2-3-2-3 0-6" }],
		["path", { d: "M15.5 8c2-3-2-3 0-6" }],
		["path", { d: "M6 10h.01" }],
		["path", { d: "M6 14h.01" }],
		["path", { d: "M10 16v-4" }],
		["path", { d: "M14 16v-4" }],
		["path", { d: "M18 16v-4" }],
		["path", { d: "M20 6a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3" }],
		["path", { d: "M5 20v2" }],
		["path", { d: "M19 20v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/helicopter.js
var Helicopter;
var init_helicopter = __esmMin((() => {
	Helicopter = [
		["path", { d: "M11 17v4" }],
		["path", { d: "M14 3v8a2 2 0 0 0 2 2h5.865" }],
		["path", { d: "M17 17v4" }],
		["path", { d: "M18 17a4 4 0 0 0 4-4 8 6 0 0 0-8-6 6 5 0 0 0-6 5v3a2 2 0 0 0 2 2z" }],
		["path", { d: "M2 10v5" }],
		["path", { d: "M6 3h16" }],
		["path", { d: "M7 21h14" }],
		["path", { d: "M8 13H2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hexagon.js
var Hexagon;
var init_hexagon = __esmMin((() => {
	Hexagon = [["path", { d: "M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/highlighter.js
var Highlighter;
var init_highlighter = __esmMin((() => {
	Highlighter = [["path", { d: "m9 11-6 6v3h9l3-3" }], ["path", { d: "m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/history.js
var History;
var init_history = __esmMin((() => {
	History = [
		["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" }],
		["path", { d: "M3 3v5h5" }],
		["path", { d: "M12 7v5l4 2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hop-off.js
var HopOff;
var init_hop_off = __esmMin((() => {
	HopOff = [
		["path", { d: "M10.82 16.12c1.69.6 3.91.79 5.18.85.28.01.53-.09.7-.27" }],
		["path", { d: "M11.14 20.57c.52.24 2.44 1.12 4.08 1.37.46.06.86-.25.9-.71.12-1.52-.3-3.43-.5-4.28" }],
		["path", { d: "M16.13 21.05c1.65.63 3.68.84 4.87.91a.9.9 0 0 0 .7-.26" }],
		["path", { d: "M17.99 5.52a20.83 20.83 0 0 1 3.15 4.5.8.8 0 0 1-.68 1.13c-1.17.1-2.5.02-3.9-.25" }],
		["path", { d: "M20.57 11.14c.24.52 1.12 2.44 1.37 4.08.04.3-.08.59-.31.75" }],
		["path", { d: "M4.93 4.93a10 10 0 0 0-.67 13.4c.35.43.96.4 1.17-.12.69-1.71 1.07-5.07 1.07-6.71 1.34.45 3.1.9 4.88.62a.85.85 0 0 0 .48-.24" }],
		["path", { d: "M5.52 17.99c1.05.95 2.91 2.42 4.5 3.15a.8.8 0 0 0 1.13-.68c.2-2.34-.33-5.3-1.57-8.28" }],
		["path", { d: "M8.35 2.68a10 10 0 0 1 9.98 1.58c.43.35.4.96-.12 1.17-1.5.6-4.3.98-6.07 1.05" }],
		["path", { d: "m2 2 20 20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hop.js
var Hop;
var init_hop = __esmMin((() => {
	Hop = [
		["path", { d: "M10.82 16.12c1.69.6 3.91.79 5.18.85.55.03 1-.42.97-.97-.06-1.27-.26-3.5-.85-5.18" }],
		["path", { d: "M11.5 6.5c1.64 0 5-.38 6.71-1.07.52-.2.55-.82.12-1.17A10 10 0 0 0 4.26 18.33c.35.43.96.4 1.17-.12.69-1.71 1.07-5.07 1.07-6.71 1.34.45 3.1.9 4.88.62a.88.88 0 0 0 .73-.74c.3-2.14-.15-3.5-.61-4.88" }],
		["path", { d: "M15.62 16.95c.2.85.62 2.76.5 4.28a.77.77 0 0 1-.9.7 16.64 16.64 0 0 1-4.08-1.36" }],
		["path", { d: "M16.13 21.05c1.65.63 3.68.84 4.87.91a.9.9 0 0 0 .96-.96 17.68 17.68 0 0 0-.9-4.87" }],
		["path", { d: "M16.94 15.62c.86.2 2.77.62 4.29.5a.77.77 0 0 0 .7-.9 16.64 16.64 0 0 0-1.36-4.08" }],
		["path", { d: "M17.99 5.52a20.82 20.82 0 0 1 3.15 4.5.8.8 0 0 1-.68 1.13c-2.33.2-5.3-.32-8.27-1.57" }],
		["path", { d: "M4.93 4.93 3 3a.7.7 0 0 1 0-1" }],
		["path", { d: "M9.58 12.18c1.24 2.98 1.77 5.95 1.57 8.28a.8.8 0 0 1-1.13.68 20.82 20.82 0 0 1-4.5-3.15" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hospital.js
var Hospital;
var init_hospital = __esmMin((() => {
	Hospital = [
		["path", { d: "M12 7v4" }],
		["path", { d: "M14 21v-3a2 2 0 0 0-4 0v3" }],
		["path", { d: "M14 9h-4" }],
		["path", { d: "M18 11h2a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2h2" }],
		["path", { d: "M18 21V5a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hotel.js
var Hotel;
var init_hotel = __esmMin((() => {
	Hotel = [
		["path", { d: "M10 22v-6.57" }],
		["path", { d: "M12 11h.01" }],
		["path", { d: "M12 7h.01" }],
		["path", { d: "M14 15.43V22" }],
		["path", { d: "M15 16a5 5 0 0 0-6 0" }],
		["path", { d: "M16 11h.01" }],
		["path", { d: "M16 7h.01" }],
		["path", { d: "M8 11h.01" }],
		["path", { d: "M8 7h.01" }],
		["rect", {
			x: "4",
			y: "2",
			width: "16",
			height: "20",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/hourglass.js
var Hourglass;
var init_hourglass = __esmMin((() => {
	Hourglass = [
		["path", { d: "M5 22h14" }],
		["path", { d: "M5 2h14" }],
		["path", { d: "M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22" }],
		["path", { d: "M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/house-plug.js
var HousePlug;
var init_house_plug = __esmMin((() => {
	HousePlug = [
		["path", { d: "M10 12V8.964" }],
		["path", { d: "M14 12V8.964" }],
		["path", { d: "M15 12a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-2a1 1 0 0 1 1-1z" }],
		["path", { d: "M8.5 21H5a2 2 0 0 1-2-2v-9a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/house-heart.js
var HouseHeart;
var init_house_heart = __esmMin((() => {
	HouseHeart = [["path", { d: "M8.62 13.8A2.25 2.25 0 1 1 12 10.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z" }], ["path", { d: "M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/house-plus.js
var HousePlus;
var init_house_plus = __esmMin((() => {
	HousePlus = [
		["path", { d: "M12.35 21H5a2 2 0 0 1-2-2v-9a2 2 0 0 1 .71-1.53l7-6a2 2 0 0 1 2.58 0l7 6A2 2 0 0 1 21 10v2.35" }],
		["path", { d: "M14.8 12.4A1 1 0 0 0 14 12h-4a1 1 0 0 0-1 1v8" }],
		["path", { d: "M15 18h6" }],
		["path", { d: "M18 15v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/house-wifi.js
var HouseWifi;
var init_house_wifi = __esmMin((() => {
	HouseWifi = [
		["path", { d: "M9.5 13.866a4 4 0 0 1 5 .01" }],
		["path", { d: "M12 17h.01" }],
		["path", { d: "M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" }],
		["path", { d: "M7 10.754a8 8 0 0 1 10 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/house.js
var House;
var init_house = __esmMin((() => {
	House = [["path", { d: "M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8" }], ["path", { d: "M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ice-cream-bowl.js
var IceCreamBowl;
var init_ice_cream_bowl = __esmMin((() => {
	IceCreamBowl = [
		["path", { d: "M12 17c5 0 8-2.69 8-6H4c0 3.31 3 6 8 6m-4 4h8m-4-3v3M5.14 11a3.5 3.5 0 1 1 6.71 0" }],
		["path", { d: "M12.14 11a3.5 3.5 0 1 1 6.71 0" }],
		["path", { d: "M15.5 6.5a3.5 3.5 0 1 0-7 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ice-cream-cone.js
var IceCreamCone;
var init_ice_cream_cone = __esmMin((() => {
	IceCreamCone = [
		["path", { d: "m7 11 4.08 10.35a1 1 0 0 0 1.84 0L17 11" }],
		["path", { d: "M17 7A5 5 0 0 0 7 7" }],
		["path", { d: "M17 7a2 2 0 0 1 0 4H7a2 2 0 0 1 0-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/id-card-lanyard.js
var IdCardLanyard;
var init_id_card_lanyard = __esmMin((() => {
	IdCardLanyard = [
		["path", { d: "M13.5 8h-3" }],
		["path", { d: "m15 2-1 2h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h3" }],
		["path", { d: "M16.899 22A5 5 0 0 0 7.1 22" }],
		["path", { d: "m9 2 3 6" }],
		["circle", {
			cx: "12",
			cy: "15",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/id-card.js
var IdCard;
var init_id_card = __esmMin((() => {
	IdCard = [
		["path", { d: "M16 10h2" }],
		["path", { d: "M16 14h2" }],
		["path", { d: "M6.17 15a3 3 0 0 1 5.66 0" }],
		["circle", {
			cx: "9",
			cy: "11",
			r: "2"
		}],
		["rect", {
			x: "2",
			y: "5",
			width: "20",
			height: "14",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/image-down.js
var ImageDown;
var init_image_down = __esmMin((() => {
	ImageDown = [
		["path", { d: "M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21" }],
		["path", { d: "m14 19 3 3v-5.5" }],
		["path", { d: "m17 22 3-3" }],
		["circle", {
			cx: "9",
			cy: "9",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/image-minus.js
var ImageMinus;
var init_image_minus = __esmMin((() => {
	ImageMinus = [
		["path", { d: "M21 9v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7" }],
		["line", {
			x1: "16",
			x2: "22",
			y1: "5",
			y2: "5"
		}],
		["circle", {
			cx: "9",
			cy: "9",
			r: "2"
		}],
		["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/image-off.js
var ImageOff;
var init_image_off = __esmMin((() => {
	ImageOff = [
		["line", {
			x1: "2",
			x2: "22",
			y1: "2",
			y2: "22"
		}],
		["path", { d: "M10.41 10.41a2 2 0 1 1-2.83-2.83" }],
		["line", {
			x1: "13.5",
			x2: "6",
			y1: "13.5",
			y2: "21"
		}],
		["line", {
			x1: "18",
			x2: "21",
			y1: "12",
			y2: "15"
		}],
		["path", { d: "M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59" }],
		["path", { d: "M21 15V5a2 2 0 0 0-2-2H9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/image-play.js
var ImagePlay;
var init_image_play = __esmMin((() => {
	ImagePlay = [
		["path", { d: "M15 15.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997a1 1 0 0 1-1.517-.86z" }],
		["path", { d: "M21 12.17V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6" }],
		["path", { d: "m6 21 5-5" }],
		["circle", {
			cx: "9",
			cy: "9",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/image-plus.js
var ImagePlus;
var init_image_plus = __esmMin((() => {
	ImagePlus = [
		["path", { d: "M16 5h6" }],
		["path", { d: "M19 2v6" }],
		["path", { d: "M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5" }],
		["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" }],
		["circle", {
			cx: "9",
			cy: "9",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/image-up.js
var ImageUp;
var init_image_up = __esmMin((() => {
	ImageUp = [
		["path", { d: "M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21" }],
		["path", { d: "m14 19.5 3-3 3 3" }],
		["path", { d: "M17 22v-5.5" }],
		["circle", {
			cx: "9",
			cy: "9",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/image-upscale.js
var ImageUpscale;
var init_image_upscale = __esmMin((() => {
	ImageUpscale = [
		["path", { d: "M16 3h5v5" }],
		["path", { d: "M17 21h2a2 2 0 0 0 2-2" }],
		["path", { d: "M21 12v3" }],
		["path", { d: "m21 3-5 5" }],
		["path", { d: "M3 7V5a2 2 0 0 1 2-2" }],
		["path", { d: "m5 21 4.144-4.144a1.21 1.21 0 0 1 1.712 0L13 19" }],
		["path", { d: "M9 3h3" }],
		["rect", {
			x: "3",
			y: "11",
			width: "10",
			height: "10",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/image.js
var Image$1;
var init_image = __esmMin((() => {
	Image$1 = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2",
			ry: "2"
		}],
		["circle", {
			cx: "9",
			cy: "9",
			r: "2"
		}],
		["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/images.js
var Images;
var init_images = __esmMin((() => {
	Images = [
		["path", { d: "m22 11-1.296-1.296a2.4 2.4 0 0 0-3.408 0L11 16" }],
		["path", { d: "M4 8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2" }],
		["circle", {
			cx: "13",
			cy: "7",
			r: "1",
			fill: "currentColor"
		}],
		["rect", {
			x: "8",
			y: "2",
			width: "14",
			height: "14",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/import.js
var Import;
var init_import = __esmMin((() => {
	Import = [
		["path", { d: "M12 3v12" }],
		["path", { d: "m8 11 4 4 4-4" }],
		["path", { d: "M8 5H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/inbox.js
var Inbox;
var init_inbox = __esmMin((() => {
	Inbox = [["polyline", { points: "22 12 16 12 14 15 10 15 8 12 2 12" }], ["path", { d: "M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/indian-rupee.js
var IndianRupee;
var init_indian_rupee = __esmMin((() => {
	IndianRupee = [
		["path", { d: "M6 3h12" }],
		["path", { d: "M6 8h12" }],
		["path", { d: "m6 13 8.5 8" }],
		["path", { d: "M6 13h3" }],
		["path", { d: "M9 13c6.667 0 6.667-10 0-10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/infinity.js
var Infinity$1;
var init_infinity = __esmMin((() => {
	Infinity$1 = [["path", { d: "M6 16c5 0 7-8 12-8a4 4 0 0 1 0 8c-5 0-7-8-12-8a4 4 0 1 0 0 8" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/info.js
var Info;
var init_info = __esmMin((() => {
	Info = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "M12 16v-4" }],
		["path", { d: "M12 8h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/inspection-panel.js
var InspectionPanel;
var init_inspection_panel = __esmMin((() => {
	InspectionPanel = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M7 7h.01" }],
		["path", { d: "M17 7h.01" }],
		["path", { d: "M7 17h.01" }],
		["path", { d: "M17 17h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/instagram.js
var Instagram;
var init_instagram = __esmMin((() => {
	Instagram = [
		["rect", {
			width: "20",
			height: "20",
			x: "2",
			y: "2",
			rx: "5",
			ry: "5"
		}],
		["path", { d: "M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z" }],
		["line", {
			x1: "17.5",
			x2: "17.51",
			y1: "6.5",
			y2: "6.5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/italic.js
var Italic;
var init_italic = __esmMin((() => {
	Italic = [
		["line", {
			x1: "19",
			x2: "10",
			y1: "4",
			y2: "4"
		}],
		["line", {
			x1: "14",
			x2: "5",
			y1: "20",
			y2: "20"
		}],
		["line", {
			x1: "15",
			x2: "9",
			y1: "4",
			y2: "20"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/iteration-ccw.js
var IterationCcw;
var init_iteration_ccw = __esmMin((() => {
	IterationCcw = [["path", { d: "m16 14 4 4-4 4" }], ["path", { d: "M20 10a8 8 0 1 0-8 8h8" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/iteration-cw.js
var IterationCw;
var init_iteration_cw = __esmMin((() => {
	IterationCw = [["path", { d: "M4 10a8 8 0 1 1 8 8H4" }], ["path", { d: "m8 22-4-4 4-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/japanese-yen.js
var JapaneseYen;
var init_japanese_yen = __esmMin((() => {
	JapaneseYen = [
		["path", { d: "M12 9.5V21m0-11.5L6 3m6 6.5L18 3" }],
		["path", { d: "M6 15h12" }],
		["path", { d: "M6 11h12" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/joystick.js
var Joystick;
var init_joystick = __esmMin((() => {
	Joystick = [
		["path", { d: "M21 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2Z" }],
		["path", { d: "M6 15v-2" }],
		["path", { d: "M12 15V9" }],
		["circle", {
			cx: "12",
			cy: "6",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/kanban.js
var Kanban;
var init_kanban = __esmMin((() => {
	Kanban = [
		["path", { d: "M5 3v14" }],
		["path", { d: "M12 3v8" }],
		["path", { d: "M19 3v18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/kayak.js
var Kayak;
var init_kayak = __esmMin((() => {
	Kayak = [
		["path", { d: "M18 17a1 1 0 0 0-1 1v1a2 2 0 1 0 2-2z" }],
		["path", { d: "M20.97 3.61a.45.45 0 0 0-.58-.58C10.2 6.6 6.6 10.2 3.03 20.39a.45.45 0 0 0 .58.58C13.8 17.4 17.4 13.8 20.97 3.61" }],
		["path", { d: "m6.707 6.707 10.586 10.586" }],
		["path", { d: "M7 5a2 2 0 1 0-2 2h1a1 1 0 0 0 1-1z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/key-round.js
var KeyRound;
var init_key_round = __esmMin((() => {
	KeyRound = [["path", { d: "M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z" }], ["circle", {
		cx: "16.5",
		cy: "7.5",
		r: ".5",
		fill: "currentColor"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/key-square.js
var KeySquare;
var init_key_square = __esmMin((() => {
	KeySquare = [
		["path", { d: "M12.4 2.7a2.5 2.5 0 0 1 3.4 0l5.5 5.5a2.5 2.5 0 0 1 0 3.4l-3.7 3.7a2.5 2.5 0 0 1-3.4 0L8.7 9.8a2.5 2.5 0 0 1 0-3.4z" }],
		["path", { d: "m14 7 3 3" }],
		["path", { d: "m9.4 10.6-6.814 6.814A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/key.js
var Key;
var init_key = __esmMin((() => {
	Key = [
		["path", { d: "m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4" }],
		["path", { d: "m21 2-9.6 9.6" }],
		["circle", {
			cx: "7.5",
			cy: "15.5",
			r: "5.5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/keyboard-music.js
var KeyboardMusic;
var init_keyboard_music = __esmMin((() => {
	KeyboardMusic = [
		["rect", {
			width: "20",
			height: "16",
			x: "2",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M6 8h4" }],
		["path", { d: "M14 8h.01" }],
		["path", { d: "M18 8h.01" }],
		["path", { d: "M2 12h20" }],
		["path", { d: "M6 12v4" }],
		["path", { d: "M10 12v4" }],
		["path", { d: "M14 12v4" }],
		["path", { d: "M18 12v4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/keyboard-off.js
var KeyboardOff;
var init_keyboard_off = __esmMin((() => {
	KeyboardOff = [
		["path", { d: "M 20 4 A2 2 0 0 1 22 6" }],
		["path", { d: "M 22 6 L 22 16.41" }],
		["path", { d: "M 7 16 L 16 16" }],
		["path", { d: "M 9.69 4 L 20 4" }],
		["path", { d: "M14 8h.01" }],
		["path", { d: "M18 8h.01" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M20 20H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2" }],
		["path", { d: "M6 8h.01" }],
		["path", { d: "M8 12h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/keyboard.js
var Keyboard;
var init_keyboard = __esmMin((() => {
	Keyboard = [
		["path", { d: "M10 8h.01" }],
		["path", { d: "M12 12h.01" }],
		["path", { d: "M14 8h.01" }],
		["path", { d: "M16 12h.01" }],
		["path", { d: "M18 8h.01" }],
		["path", { d: "M6 8h.01" }],
		["path", { d: "M7 16h10" }],
		["path", { d: "M8 12h.01" }],
		["rect", {
			width: "20",
			height: "16",
			x: "2",
			y: "4",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/lamp-ceiling.js
var LampCeiling;
var init_lamp_ceiling = __esmMin((() => {
	LampCeiling = [
		["path", { d: "M12 2v5" }],
		["path", { d: "M14.829 15.998a3 3 0 1 1-5.658 0" }],
		["path", { d: "M20.92 14.606A1 1 0 0 1 20 16H4a1 1 0 0 1-.92-1.394l3-7A1 1 0 0 1 7 7h10a1 1 0 0 1 .92.606z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/lamp-desk.js
var LampDesk;
var init_lamp_desk = __esmMin((() => {
	LampDesk = [
		["path", { d: "M10.293 2.293a1 1 0 0 1 1.414 0l2.5 2.5 5.994 1.227a1 1 0 0 1 .506 1.687l-7 7a1 1 0 0 1-1.687-.506l-1.227-5.994-2.5-2.5a1 1 0 0 1 0-1.414z" }],
		["path", { d: "m14.207 4.793-3.414 3.414" }],
		["path", { d: "M3 20a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z" }],
		["path", { d: "m9.086 6.5-4.793 4.793a1 1 0 0 0-.18 1.17L7 18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/lamp-floor.js
var LampFloor;
var init_lamp_floor = __esmMin((() => {
	LampFloor = [
		["path", { d: "M12 10v12" }],
		["path", { d: "M17.929 7.629A1 1 0 0 1 17 9H7a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 9 2h6a1 1 0 0 1 .928.629z" }],
		["path", { d: "M9 22h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/lamp-wall-down.js
var LampWallDown;
var init_lamp_wall_down = __esmMin((() => {
	LampWallDown = [
		["path", { d: "M19.929 18.629A1 1 0 0 1 19 20H9a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 11 13h6a1 1 0 0 1 .928.629z" }],
		["path", { d: "M6 3a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z" }],
		["path", { d: "M8 6h4a2 2 0 0 1 2 2v5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/lamp-wall-up.js
var LampWallUp;
var init_lamp_wall_up = __esmMin((() => {
	LampWallUp = [
		["path", { d: "M19.929 9.629A1 1 0 0 1 19 11H9a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 11 4h6a1 1 0 0 1 .928.629z" }],
		["path", { d: "M6 15a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z" }],
		["path", { d: "M8 18h4a2 2 0 0 0 2-2v-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/land-plot.js
var LandPlot;
var init_land_plot = __esmMin((() => {
	LandPlot = [
		["path", { d: "m12 8 6-3-6-3v10" }],
		["path", { d: "m8 11.99-5.5 3.14a1 1 0 0 0 0 1.74l8.5 4.86a2 2 0 0 0 2 0l8.5-4.86a1 1 0 0 0 0-1.74L16 12" }],
		["path", { d: "m6.49 12.85 11.02 6.3" }],
		["path", { d: "M17.51 12.85 6.5 19.15" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/lamp.js
var Lamp;
var init_lamp = __esmMin((() => {
	Lamp = [
		["path", { d: "M12 12v6" }],
		["path", { d: "M4.077 10.615A1 1 0 0 0 5 12h14a1 1 0 0 0 .923-1.385l-3.077-7.384A2 2 0 0 0 15 2H9a2 2 0 0 0-1.846 1.23Z" }],
		["path", { d: "M8 20a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/landmark.js
var Landmark;
var init_landmark = __esmMin((() => {
	Landmark = [
		["path", { d: "M10 18v-7" }],
		["path", { d: "M11.12 2.198a2 2 0 0 1 1.76.006l7.866 3.847c.476.233.31.949-.22.949H3.474c-.53 0-.695-.716-.22-.949z" }],
		["path", { d: "M14 18v-7" }],
		["path", { d: "M18 18v-7" }],
		["path", { d: "M3 22h18" }],
		["path", { d: "M6 18v-7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/languages.js
var Languages;
var init_languages = __esmMin((() => {
	Languages = [
		["path", { d: "m5 8 6 6" }],
		["path", { d: "m4 14 6-6 2-3" }],
		["path", { d: "M2 5h12" }],
		["path", { d: "M7 2h1" }],
		["path", { d: "m22 22-5-10-5 10" }],
		["path", { d: "M14 18h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/laptop-minimal-check.js
var LaptopMinimalCheck;
var init_laptop_minimal_check = __esmMin((() => {
	LaptopMinimalCheck = [
		["path", { d: "M2 20h20" }],
		["path", { d: "m9 10 2 2 4-4" }],
		["rect", {
			x: "3",
			y: "4",
			width: "18",
			height: "12",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/laptop-minimal.js
var LaptopMinimal;
var init_laptop_minimal = __esmMin((() => {
	LaptopMinimal = [["rect", {
		width: "18",
		height: "12",
		x: "3",
		y: "4",
		rx: "2",
		ry: "2"
	}], ["line", {
		x1: "2",
		x2: "22",
		y1: "20",
		y2: "20"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/laptop.js
var Laptop;
var init_laptop = __esmMin((() => {
	Laptop = [["path", { d: "M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z" }], ["path", { d: "M20.054 15.987H3.946" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/lasso.js
var Lasso;
var init_lasso = __esmMin((() => {
	Lasso = [
		["path", { d: "M3.704 14.467A10 8 0 0 1 2 10a10 8 0 0 1 20 0 10 8 0 0 1-10 8 10 8 0 0 1-5.181-1.158" }],
		["path", { d: "M7 22a5 5 0 0 1-2-3.994" }],
		["circle", {
			cx: "5",
			cy: "16",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/lasso-select.js
var LassoSelect;
var init_lasso_select = __esmMin((() => {
	LassoSelect = [
		["path", { d: "M7 22a5 5 0 0 1-2-4" }],
		["path", { d: "M7 16.93c.96.43 1.96.74 2.99.91" }],
		["path", { d: "M3.34 14A6.8 6.8 0 0 1 2 10c0-4.42 4.48-8 10-8s10 3.58 10 8a7.19 7.19 0 0 1-.33 2" }],
		["path", { d: "M5 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z" }],
		["path", { d: "M14.33 22h-.09a.35.35 0 0 1-.24-.32v-10a.34.34 0 0 1 .33-.34c.08 0 .15.03.21.08l7.34 6a.33.33 0 0 1-.21.59h-4.49l-2.57 3.85a.35.35 0 0 1-.28.14z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/laugh.js
var Laugh;
var init_laugh = __esmMin((() => {
	Laugh = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "M18 13a6 6 0 0 1-6 5 6 6 0 0 1-6-5h12Z" }],
		["line", {
			x1: "9",
			x2: "9.01",
			y1: "9",
			y2: "9"
		}],
		["line", {
			x1: "15",
			x2: "15.01",
			y1: "9",
			y2: "9"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/layers-2.js
var Layers2;
var init_layers_2 = __esmMin((() => {
	Layers2 = [["path", { d: "M13 13.74a2 2 0 0 1-2 0L2.5 8.87a1 1 0 0 1 0-1.74L11 2.26a2 2 0 0 1 2 0l8.5 4.87a1 1 0 0 1 0 1.74z" }], ["path", { d: "m20 14.285 1.5.845a1 1 0 0 1 0 1.74L13 21.74a2 2 0 0 1-2 0l-8.5-4.87a1 1 0 0 1 0-1.74l1.5-.845" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/layers.js
var Layers;
var init_layers = __esmMin((() => {
	Layers = [
		["path", { d: "M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z" }],
		["path", { d: "M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12" }],
		["path", { d: "M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/layout-dashboard.js
var LayoutDashboard;
var init_layout_dashboard = __esmMin((() => {
	LayoutDashboard = [
		["rect", {
			width: "7",
			height: "9",
			x: "3",
			y: "3",
			rx: "1"
		}],
		["rect", {
			width: "7",
			height: "5",
			x: "14",
			y: "3",
			rx: "1"
		}],
		["rect", {
			width: "7",
			height: "9",
			x: "14",
			y: "12",
			rx: "1"
		}],
		["rect", {
			width: "7",
			height: "5",
			x: "3",
			y: "16",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/layout-grid.js
var LayoutGrid;
var init_layout_grid = __esmMin((() => {
	LayoutGrid = [
		["rect", {
			width: "7",
			height: "7",
			x: "3",
			y: "3",
			rx: "1"
		}],
		["rect", {
			width: "7",
			height: "7",
			x: "14",
			y: "3",
			rx: "1"
		}],
		["rect", {
			width: "7",
			height: "7",
			x: "14",
			y: "14",
			rx: "1"
		}],
		["rect", {
			width: "7",
			height: "7",
			x: "3",
			y: "14",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/layout-list.js
var LayoutList;
var init_layout_list = __esmMin((() => {
	LayoutList = [
		["rect", {
			width: "7",
			height: "7",
			x: "3",
			y: "3",
			rx: "1"
		}],
		["rect", {
			width: "7",
			height: "7",
			x: "3",
			y: "14",
			rx: "1"
		}],
		["path", { d: "M14 4h7" }],
		["path", { d: "M14 9h7" }],
		["path", { d: "M14 15h7" }],
		["path", { d: "M14 20h7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/layout-panel-left.js
var LayoutPanelLeft;
var init_layout_panel_left = __esmMin((() => {
	LayoutPanelLeft = [
		["rect", {
			width: "7",
			height: "18",
			x: "3",
			y: "3",
			rx: "1"
		}],
		["rect", {
			width: "7",
			height: "7",
			x: "14",
			y: "3",
			rx: "1"
		}],
		["rect", {
			width: "7",
			height: "7",
			x: "14",
			y: "14",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/layout-panel-top.js
var LayoutPanelTop;
var init_layout_panel_top = __esmMin((() => {
	LayoutPanelTop = [
		["rect", {
			width: "18",
			height: "7",
			x: "3",
			y: "3",
			rx: "1"
		}],
		["rect", {
			width: "7",
			height: "7",
			x: "3",
			y: "14",
			rx: "1"
		}],
		["rect", {
			width: "7",
			height: "7",
			x: "14",
			y: "14",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/layout-template.js
var LayoutTemplate;
var init_layout_template = __esmMin((() => {
	LayoutTemplate = [
		["rect", {
			width: "18",
			height: "7",
			x: "3",
			y: "3",
			rx: "1"
		}],
		["rect", {
			width: "9",
			height: "7",
			x: "3",
			y: "14",
			rx: "1"
		}],
		["rect", {
			width: "5",
			height: "7",
			x: "16",
			y: "14",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/leaf.js
var Leaf;
var init_leaf = __esmMin((() => {
	Leaf = [["path", { d: "M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z" }], ["path", { d: "M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/leafy-green.js
var LeafyGreen;
var init_leafy_green = __esmMin((() => {
	LeafyGreen = [["path", { d: "M2 22c1.25-.987 2.27-1.975 3.9-2.2a5.56 5.56 0 0 1 3.8 1.5 4 4 0 0 0 6.187-2.353 3.5 3.5 0 0 0 3.69-5.116A3.5 3.5 0 0 0 20.95 8 3.5 3.5 0 1 0 16 3.05a3.5 3.5 0 0 0-5.831 1.373 3.5 3.5 0 0 0-5.116 3.69 4 4 0 0 0-2.348 6.155C3.499 15.42 4.409 16.712 4.2 18.1 3.926 19.743 3.014 20.732 2 22" }], ["path", { d: "M2 22 17 7" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/lectern.js
var Lectern;
var init_lectern = __esmMin((() => {
	Lectern = [
		["path", { d: "M16 12h3a2 2 0 0 0 1.902-1.38l1.056-3.333A1 1 0 0 0 21 6H3a1 1 0 0 0-.958 1.287l1.056 3.334A2 2 0 0 0 5 12h3" }],
		["path", { d: "M18 6V3a1 1 0 0 0-1-1h-3" }],
		["rect", {
			width: "8",
			height: "12",
			x: "8",
			y: "10",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/library-big.js
var LibraryBig;
var init_library_big = __esmMin((() => {
	LibraryBig = [
		["rect", {
			width: "8",
			height: "18",
			x: "3",
			y: "3",
			rx: "1"
		}],
		["path", { d: "M7 3v18" }],
		["path", { d: "M20.4 18.9c.2.5-.1 1.1-.6 1.3l-1.9.7c-.5.2-1.1-.1-1.3-.6L11.1 5.1c-.2-.5.1-1.1.6-1.3l1.9-.7c.5-.2 1.1.1 1.3.6Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/library.js
var Library;
var init_library = __esmMin((() => {
	Library = [
		["path", { d: "m16 6 4 14" }],
		["path", { d: "M12 6v14" }],
		["path", { d: "M8 8v12" }],
		["path", { d: "M4 4v16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/life-buoy.js
var LifeBuoy;
var init_life_buoy = __esmMin((() => {
	LifeBuoy = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "m4.93 4.93 4.24 4.24" }],
		["path", { d: "m14.83 9.17 4.24-4.24" }],
		["path", { d: "m14.83 14.83 4.24 4.24" }],
		["path", { d: "m9.17 14.83-4.24 4.24" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "4"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ligature.js
var Ligature;
var init_ligature = __esmMin((() => {
	Ligature = [
		["path", { d: "M14 12h2v8" }],
		["path", { d: "M14 20h4" }],
		["path", { d: "M6 12h4" }],
		["path", { d: "M6 20h4" }],
		["path", { d: "M8 20V8a4 4 0 0 1 7.464-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/lightbulb-off.js
var LightbulbOff;
var init_lightbulb_off = __esmMin((() => {
	LightbulbOff = [
		["path", { d: "M16.8 11.2c.8-.9 1.2-2 1.2-3.2a6 6 0 0 0-9.3-5" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M6.3 6.3a4.67 4.67 0 0 0 1.2 5.2c.7.7 1.3 1.5 1.5 2.5" }],
		["path", { d: "M9 18h6" }],
		["path", { d: "M10 22h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/lightbulb.js
var Lightbulb;
var init_lightbulb = __esmMin((() => {
	Lightbulb = [
		["path", { d: "M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5" }],
		["path", { d: "M9 18h6" }],
		["path", { d: "M10 22h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/line-squiggle.js
var LineSquiggle;
var init_line_squiggle = __esmMin((() => {
	LineSquiggle = [["path", { d: "M7 3.5c5-2 7 2.5 3 4C1.5 10 2 15 5 16c5 2 9-10 14-7s.5 13.5-4 12c-5-2.5.5-11 6-2" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/link-2-off.js
var Link2Off;
var init_link_2_off = __esmMin((() => {
	Link2Off = [
		["path", { d: "M9 17H7A5 5 0 0 1 7 7" }],
		["path", { d: "M15 7h2a5 5 0 0 1 4 8" }],
		["line", {
			x1: "8",
			x2: "12",
			y1: "12",
			y2: "12"
		}],
		["line", {
			x1: "2",
			x2: "22",
			y1: "2",
			y2: "22"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/link-2.js
var Link2;
var init_link_2 = __esmMin((() => {
	Link2 = [
		["path", { d: "M9 17H7A5 5 0 0 1 7 7h2" }],
		["path", { d: "M15 7h2a5 5 0 1 1 0 10h-2" }],
		["line", {
			x1: "8",
			x2: "16",
			y1: "12",
			y2: "12"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/link.js
var Link;
var init_link = __esmMin((() => {
	Link = [["path", { d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" }], ["path", { d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/linkedin.js
var Linkedin;
var init_linkedin = __esmMin((() => {
	Linkedin = [
		["path", { d: "M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z" }],
		["rect", {
			width: "4",
			height: "12",
			x: "2",
			y: "9"
		}],
		["circle", {
			cx: "4",
			cy: "4",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-check.js
var ListCheck;
var init_list_check = __esmMin((() => {
	ListCheck = [
		["path", { d: "M16 5H3" }],
		["path", { d: "M16 12H3" }],
		["path", { d: "M11 19H3" }],
		["path", { d: "m15 18 2 2 4-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-checks.js
var ListChecks;
var init_list_checks = __esmMin((() => {
	ListChecks = [
		["path", { d: "M13 5h8" }],
		["path", { d: "M13 12h8" }],
		["path", { d: "M13 19h8" }],
		["path", { d: "m3 17 2 2 4-4" }],
		["path", { d: "m3 7 2 2 4-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-chevrons-down-up.js
var ListChevronsDownUp;
var init_list_chevrons_down_up = __esmMin((() => {
	ListChevronsDownUp = [
		["path", { d: "M3 5h8" }],
		["path", { d: "M3 12h8" }],
		["path", { d: "M3 19h8" }],
		["path", { d: "m15 5 3 3 3-3" }],
		["path", { d: "m15 19 3-3 3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-chevrons-up-down.js
var ListChevronsUpDown;
var init_list_chevrons_up_down = __esmMin((() => {
	ListChevronsUpDown = [
		["path", { d: "M3 5h8" }],
		["path", { d: "M3 12h8" }],
		["path", { d: "M3 19h8" }],
		["path", { d: "m15 8 3-3 3 3" }],
		["path", { d: "m15 16 3 3 3-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-collapse.js
var ListCollapse;
var init_list_collapse = __esmMin((() => {
	ListCollapse = [
		["path", { d: "M10 5h11" }],
		["path", { d: "M10 12h11" }],
		["path", { d: "M10 19h11" }],
		["path", { d: "m3 10 3-3-3-3" }],
		["path", { d: "m3 20 3-3-3-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-end.js
var ListEnd;
var init_list_end = __esmMin((() => {
	ListEnd = [
		["path", { d: "M16 5H3" }],
		["path", { d: "M16 12H3" }],
		["path", { d: "M9 19H3" }],
		["path", { d: "m16 16-3 3 3 3" }],
		["path", { d: "M21 5v12a2 2 0 0 1-2 2h-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-filter-plus.js
var ListFilterPlus;
var init_list_filter_plus = __esmMin((() => {
	ListFilterPlus = [
		["path", { d: "M12 5H2" }],
		["path", { d: "M6 12h12" }],
		["path", { d: "M9 19h6" }],
		["path", { d: "M16 5h6" }],
		["path", { d: "M19 8V2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-filter.js
var ListFilter;
var init_list_filter = __esmMin((() => {
	ListFilter = [
		["path", { d: "M2 5h20" }],
		["path", { d: "M6 12h12" }],
		["path", { d: "M9 19h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-indent-decrease.js
var ListIndentDecrease;
var init_list_indent_decrease = __esmMin((() => {
	ListIndentDecrease = [
		["path", { d: "M21 5H11" }],
		["path", { d: "M21 12H11" }],
		["path", { d: "M21 19H11" }],
		["path", { d: "m7 8-4 4 4 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-indent-increase.js
var ListIndentIncrease;
var init_list_indent_increase = __esmMin((() => {
	ListIndentIncrease = [
		["path", { d: "M21 5H11" }],
		["path", { d: "M21 12H11" }],
		["path", { d: "M21 19H11" }],
		["path", { d: "m3 8 4 4-4 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-minus.js
var ListMinus;
var init_list_minus = __esmMin((() => {
	ListMinus = [
		["path", { d: "M16 5H3" }],
		["path", { d: "M11 12H3" }],
		["path", { d: "M16 19H3" }],
		["path", { d: "M21 12h-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-music.js
var ListMusic;
var init_list_music = __esmMin((() => {
	ListMusic = [
		["path", { d: "M16 5H3" }],
		["path", { d: "M11 12H3" }],
		["path", { d: "M11 19H3" }],
		["path", { d: "M21 16V5" }],
		["circle", {
			cx: "18",
			cy: "16",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-ordered.js
var ListOrdered;
var init_list_ordered = __esmMin((() => {
	ListOrdered = [
		["path", { d: "M11 5h10" }],
		["path", { d: "M11 12h10" }],
		["path", { d: "M11 19h10" }],
		["path", { d: "M4 4h1v5" }],
		["path", { d: "M4 9h2" }],
		["path", { d: "M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-plus.js
var ListPlus;
var init_list_plus = __esmMin((() => {
	ListPlus = [
		["path", { d: "M16 5H3" }],
		["path", { d: "M11 12H3" }],
		["path", { d: "M16 19H3" }],
		["path", { d: "M18 9v6" }],
		["path", { d: "M21 12h-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-restart.js
var ListRestart;
var init_list_restart = __esmMin((() => {
	ListRestart = [
		["path", { d: "M21 5H3" }],
		["path", { d: "M7 12H3" }],
		["path", { d: "M7 19H3" }],
		["path", { d: "M12 18a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L11 14" }],
		["path", { d: "M11 10v4h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-start.js
var ListStart;
var init_list_start = __esmMin((() => {
	ListStart = [
		["path", { d: "M3 5h6" }],
		["path", { d: "M3 12h13" }],
		["path", { d: "M3 19h13" }],
		["path", { d: "m16 8-3-3 3-3" }],
		["path", { d: "M21 19V7a2 2 0 0 0-2-2h-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-todo.js
var ListTodo;
var init_list_todo = __esmMin((() => {
	ListTodo = [
		["path", { d: "M13 5h8" }],
		["path", { d: "M13 12h8" }],
		["path", { d: "M13 19h8" }],
		["path", { d: "m3 17 2 2 4-4" }],
		["rect", {
			x: "3",
			y: "4",
			width: "6",
			height: "6",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-tree.js
var ListTree;
var init_list_tree = __esmMin((() => {
	ListTree = [
		["path", { d: "M8 5h13" }],
		["path", { d: "M13 12h8" }],
		["path", { d: "M13 19h8" }],
		["path", { d: "M3 10a2 2 0 0 0 2 2h3" }],
		["path", { d: "M3 5v12a2 2 0 0 0 2 2h3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-video.js
var ListVideo;
var init_list_video = __esmMin((() => {
	ListVideo = [
		["path", { d: "M21 5H3" }],
		["path", { d: "M10 12H3" }],
		["path", { d: "M10 19H3" }],
		["path", { d: "M15 12.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997a1 1 0 0 1-1.517-.86z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list-x.js
var ListX;
var init_list_x = __esmMin((() => {
	ListX = [
		["path", { d: "M16 5H3" }],
		["path", { d: "M11 12H3" }],
		["path", { d: "M16 19H3" }],
		["path", { d: "m15.5 9.5 5 5" }],
		["path", { d: "m20.5 9.5-5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/list.js
var List;
var init_list = __esmMin((() => {
	List = [
		["path", { d: "M3 5h.01" }],
		["path", { d: "M3 12h.01" }],
		["path", { d: "M3 19h.01" }],
		["path", { d: "M8 5h13" }],
		["path", { d: "M8 12h13" }],
		["path", { d: "M8 19h13" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/loader-circle.js
var LoaderCircle;
var init_loader_circle = __esmMin((() => {
	LoaderCircle = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/loader-pinwheel.js
var LoaderPinwheel;
var init_loader_pinwheel = __esmMin((() => {
	LoaderPinwheel = [
		["path", { d: "M22 12a1 1 0 0 1-10 0 1 1 0 0 0-10 0" }],
		["path", { d: "M7 20.7a1 1 0 1 1 5-8.7 1 1 0 1 0 5-8.6" }],
		["path", { d: "M7 3.3a1 1 0 1 1 5 8.6 1 1 0 1 0 5 8.6" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/loader.js
var Loader;
var init_loader = __esmMin((() => {
	Loader = [
		["path", { d: "M12 2v4" }],
		["path", { d: "m16.2 7.8 2.9-2.9" }],
		["path", { d: "M18 12h4" }],
		["path", { d: "m16.2 16.2 2.9 2.9" }],
		["path", { d: "M12 18v4" }],
		["path", { d: "m4.9 19.1 2.9-2.9" }],
		["path", { d: "M2 12h4" }],
		["path", { d: "m4.9 4.9 2.9 2.9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/locate-off.js
var LocateOff;
var init_locate_off = __esmMin((() => {
	LocateOff = [
		["path", { d: "M12 19v3" }],
		["path", { d: "M12 2v3" }],
		["path", { d: "M18.89 13.24a7 7 0 0 0-8.13-8.13" }],
		["path", { d: "M19 12h3" }],
		["path", { d: "M2 12h3" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M7.05 7.05a7 7 0 0 0 9.9 9.9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/locate-fixed.js
var LocateFixed;
var init_locate_fixed = __esmMin((() => {
	LocateFixed = [
		["line", {
			x1: "2",
			x2: "5",
			y1: "12",
			y2: "12"
		}],
		["line", {
			x1: "19",
			x2: "22",
			y1: "12",
			y2: "12"
		}],
		["line", {
			x1: "12",
			x2: "12",
			y1: "2",
			y2: "5"
		}],
		["line", {
			x1: "12",
			x2: "12",
			y1: "19",
			y2: "22"
		}],
		["circle", {
			cx: "12",
			cy: "12",
			r: "7"
		}],
		["circle", {
			cx: "12",
			cy: "12",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/locate.js
var Locate;
var init_locate = __esmMin((() => {
	Locate = [
		["line", {
			x1: "2",
			x2: "5",
			y1: "12",
			y2: "12"
		}],
		["line", {
			x1: "19",
			x2: "22",
			y1: "12",
			y2: "12"
		}],
		["line", {
			x1: "12",
			x2: "12",
			y1: "2",
			y2: "5"
		}],
		["line", {
			x1: "12",
			x2: "12",
			y1: "19",
			y2: "22"
		}],
		["circle", {
			cx: "12",
			cy: "12",
			r: "7"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/lock-keyhole-open.js
var LockKeyholeOpen;
var init_lock_keyhole_open = __esmMin((() => {
	LockKeyholeOpen = [
		["circle", {
			cx: "12",
			cy: "16",
			r: "1"
		}],
		["rect", {
			width: "18",
			height: "12",
			x: "3",
			y: "10",
			rx: "2"
		}],
		["path", { d: "M7 10V7a5 5 0 0 1 9.33-2.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/lock-keyhole.js
var LockKeyhole;
var init_lock_keyhole = __esmMin((() => {
	LockKeyhole = [
		["circle", {
			cx: "12",
			cy: "16",
			r: "1"
		}],
		["rect", {
			x: "3",
			y: "10",
			width: "18",
			height: "12",
			rx: "2"
		}],
		["path", { d: "M7 10V7a5 5 0 0 1 10 0v3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/lock-open.js
var LockOpen;
var init_lock_open = __esmMin((() => {
	LockOpen = [["rect", {
		width: "18",
		height: "11",
		x: "3",
		y: "11",
		rx: "2",
		ry: "2"
	}], ["path", { d: "M7 11V7a5 5 0 0 1 9.9-1" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/lock.js
var Lock;
var init_lock = __esmMin((() => {
	Lock = [["rect", {
		width: "18",
		height: "11",
		x: "3",
		y: "11",
		rx: "2",
		ry: "2"
	}], ["path", { d: "M7 11V7a5 5 0 0 1 10 0v4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/log-out.js
var LogOut;
var init_log_out = __esmMin((() => {
	LogOut = [
		["path", { d: "m16 17 5-5-5-5" }],
		["path", { d: "M21 12H9" }],
		["path", { d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/log-in.js
var LogIn;
var init_log_in = __esmMin((() => {
	LogIn = [
		["path", { d: "m10 17 5-5-5-5" }],
		["path", { d: "M15 12H3" }],
		["path", { d: "M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/logs.js
var Logs;
var init_logs = __esmMin((() => {
	Logs = [
		["path", { d: "M3 5h1" }],
		["path", { d: "M3 12h1" }],
		["path", { d: "M3 19h1" }],
		["path", { d: "M8 5h1" }],
		["path", { d: "M8 12h1" }],
		["path", { d: "M8 19h1" }],
		["path", { d: "M13 5h8" }],
		["path", { d: "M13 12h8" }],
		["path", { d: "M13 19h8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/lollipop.js
var Lollipop;
var init_lollipop = __esmMin((() => {
	Lollipop = [
		["circle", {
			cx: "11",
			cy: "11",
			r: "8"
		}],
		["path", { d: "m21 21-4.3-4.3" }],
		["path", { d: "M11 11a2 2 0 0 0 4 0 4 4 0 0 0-8 0 6 6 0 0 0 12 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/luggage.js
var Luggage;
var init_luggage = __esmMin((() => {
	Luggage = [
		["path", { d: "M6 20a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2" }],
		["path", { d: "M8 18V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v14" }],
		["path", { d: "M10 20h4" }],
		["circle", {
			cx: "16",
			cy: "20",
			r: "2"
		}],
		["circle", {
			cx: "8",
			cy: "20",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/magnet.js
var Magnet;
var init_magnet = __esmMin((() => {
	Magnet = [
		["path", { d: "m12 15 4 4" }],
		["path", { d: "M2.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.029-6.029a1 1 0 1 1 3 3l-6.029 6.029a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.365-6.367A1 1 0 0 0 8.716 4.282z" }],
		["path", { d: "m5 8 4 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mail-check.js
var MailCheck;
var init_mail_check = __esmMin((() => {
	MailCheck = [
		["path", { d: "M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8" }],
		["path", { d: "m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7" }],
		["path", { d: "m16 19 2 2 4-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mail-minus.js
var MailMinus;
var init_mail_minus = __esmMin((() => {
	MailMinus = [
		["path", { d: "M22 15V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8" }],
		["path", { d: "m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7" }],
		["path", { d: "M16 19h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mail-open.js
var MailOpen;
var init_mail_open = __esmMin((() => {
	MailOpen = [["path", { d: "M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z" }], ["path", { d: "m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mail-plus.js
var MailPlus;
var init_mail_plus = __esmMin((() => {
	MailPlus = [
		["path", { d: "M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8" }],
		["path", { d: "m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7" }],
		["path", { d: "M19 16v6" }],
		["path", { d: "M16 19h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mail-question-mark.js
var MailQuestionMark;
var init_mail_question_mark = __esmMin((() => {
	MailQuestionMark = [
		["path", { d: "M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5" }],
		["path", { d: "m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7" }],
		["path", { d: "M18 15.28c.2-.4.5-.8.9-1a2.1 2.1 0 0 1 2.6.4c.3.4.5.8.5 1.3 0 1.3-2 2-2 2" }],
		["path", { d: "M20 22v.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mail-search.js
var MailSearch;
var init_mail_search = __esmMin((() => {
	MailSearch = [
		["path", { d: "M22 12.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h7.5" }],
		["path", { d: "m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7" }],
		["path", { d: "M18 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z" }],
		["circle", {
			cx: "18",
			cy: "18",
			r: "3"
		}],
		["path", { d: "m22 22-1.5-1.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mail-warning.js
var MailWarning;
var init_mail_warning = __esmMin((() => {
	MailWarning = [
		["path", { d: "M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5" }],
		["path", { d: "m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7" }],
		["path", { d: "M20 14v4" }],
		["path", { d: "M20 22v.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mail-x.js
var MailX;
var init_mail_x = __esmMin((() => {
	MailX = [
		["path", { d: "M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h9" }],
		["path", { d: "m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7" }],
		["path", { d: "m17 17 4 4" }],
		["path", { d: "m21 17-4 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mail.js
var Mail;
var init_mail = __esmMin((() => {
	Mail = [["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7" }], ["rect", {
		x: "2",
		y: "4",
		width: "20",
		height: "16",
		rx: "2"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mailbox.js
var Mailbox;
var init_mailbox = __esmMin((() => {
	Mailbox = [
		["path", { d: "M22 17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9.5C2 7 4 5 6.5 5H18c2.2 0 4 1.8 4 4v8Z" }],
		["polyline", { points: "15,9 18,9 18,11" }],
		["path", { d: "M6.5 5C9 5 11 7 11 9.5V17a2 2 0 0 1-2 2" }],
		["line", {
			x1: "6",
			x2: "7",
			y1: "10",
			y2: "10"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mails.js
var Mails;
var init_mails = __esmMin((() => {
	Mails = [
		["path", { d: "M17 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 1-1.732" }],
		["path", { d: "m22 5.5-6.419 4.179a2 2 0 0 1-2.162 0L7 5.5" }],
		["rect", {
			x: "7",
			y: "3",
			width: "15",
			height: "12",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/map-minus.js
var MapMinus;
var init_map_minus = __esmMin((() => {
	MapMinus = [
		["path", { d: "m11 19-1.106-.552a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0l4.212 2.106a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619V14" }],
		["path", { d: "M15 5.764V14" }],
		["path", { d: "M21 18h-6" }],
		["path", { d: "M9 3.236v15" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/map-pin-check-inside.js
var MapPinCheckInside;
var init_map_pin_check_inside = __esmMin((() => {
	MapPinCheckInside = [["path", { d: "M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0" }], ["path", { d: "m9 10 2 2 4-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/map-pin-check.js
var MapPinCheck;
var init_map_pin_check = __esmMin((() => {
	MapPinCheck = [
		["path", { d: "M19.43 12.935c.357-.967.57-1.955.57-2.935a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32.197 32.197 0 0 0 .813-.728" }],
		["circle", {
			cx: "12",
			cy: "10",
			r: "3"
		}],
		["path", { d: "m16 18 2 2 4-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/map-pin-house.js
var MapPinHouse;
var init_map_pin_house = __esmMin((() => {
	MapPinHouse = [
		["path", { d: "M15 22a1 1 0 0 1-1-1v-4a1 1 0 0 1 .445-.832l3-2a1 1 0 0 1 1.11 0l3 2A1 1 0 0 1 22 17v4a1 1 0 0 1-1 1z" }],
		["path", { d: "M18 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 .601.2" }],
		["path", { d: "M18 22v-3" }],
		["circle", {
			cx: "10",
			cy: "10",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/map-pin-minus-inside.js
var MapPinMinusInside;
var init_map_pin_minus_inside = __esmMin((() => {
	MapPinMinusInside = [["path", { d: "M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0" }], ["path", { d: "M9 10h6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/map-pin-minus.js
var MapPinMinus;
var init_map_pin_minus = __esmMin((() => {
	MapPinMinus = [
		["path", { d: "M18.977 14C19.6 12.701 20 11.343 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32 32 0 0 0 .824-.738" }],
		["circle", {
			cx: "12",
			cy: "10",
			r: "3"
		}],
		["path", { d: "M16 18h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/map-pin-off.js
var MapPinOff;
var init_map_pin_off = __esmMin((() => {
	MapPinOff = [
		["path", { d: "M12.75 7.09a3 3 0 0 1 2.16 2.16" }],
		["path", { d: "M17.072 17.072c-1.634 2.17-3.527 3.912-4.471 4.727a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 1.432-4.568" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M8.475 2.818A8 8 0 0 1 20 10c0 1.183-.31 2.377-.81 3.533" }],
		["path", { d: "M9.13 9.13a3 3 0 0 0 3.74 3.74" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/map-pin-pen.js
var MapPinPen;
var init_map_pin_pen = __esmMin((() => {
	MapPinPen = [
		["path", { d: "M17.97 9.304A8 8 0 0 0 2 10c0 4.69 4.887 9.562 7.022 11.468" }],
		["path", { d: "M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z" }],
		["circle", {
			cx: "10",
			cy: "10",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/map-pin-plus-inside.js
var MapPinPlusInside;
var init_map_pin_plus_inside = __esmMin((() => {
	MapPinPlusInside = [
		["path", { d: "M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0" }],
		["path", { d: "M12 7v6" }],
		["path", { d: "M9 10h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/map-pin-x-inside.js
var MapPinXInside;
var init_map_pin_x_inside = __esmMin((() => {
	MapPinXInside = [
		["path", { d: "M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0" }],
		["path", { d: "m14.5 7.5-5 5" }],
		["path", { d: "m9.5 7.5 5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/map-pin-plus.js
var MapPinPlus;
var init_map_pin_plus = __esmMin((() => {
	MapPinPlus = [
		["path", { d: "M19.914 11.105A7.298 7.298 0 0 0 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32 32 0 0 0 .824-.738" }],
		["circle", {
			cx: "12",
			cy: "10",
			r: "3"
		}],
		["path", { d: "M16 18h6" }],
		["path", { d: "M19 15v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/map-pin-x.js
var MapPinX;
var init_map_pin_x = __esmMin((() => {
	MapPinX = [
		["path", { d: "M19.752 11.901A7.78 7.78 0 0 0 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 19 19 0 0 0 .09-.077" }],
		["circle", {
			cx: "12",
			cy: "10",
			r: "3"
		}],
		["path", { d: "m21.5 15.5-5 5" }],
		["path", { d: "m21.5 20.5-5-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/map-pin.js
var MapPin;
var init_map_pin = __esmMin((() => {
	MapPin = [["path", { d: "M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0" }], ["circle", {
		cx: "12",
		cy: "10",
		r: "3"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/map-pinned.js
var MapPinned;
var init_map_pinned = __esmMin((() => {
	MapPinned = [
		["path", { d: "M18 8c0 3.613-3.869 7.429-5.393 8.795a1 1 0 0 1-1.214 0C9.87 15.429 6 11.613 6 8a6 6 0 0 1 12 0" }],
		["circle", {
			cx: "12",
			cy: "8",
			r: "2"
		}],
		["path", { d: "M8.714 14h-3.71a1 1 0 0 0-.948.683l-2.004 6A1 1 0 0 0 3 22h18a1 1 0 0 0 .948-1.316l-2-6a1 1 0 0 0-.949-.684h-3.712" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/map-plus.js
var MapPlus;
var init_map_plus = __esmMin((() => {
	MapPlus = [
		["path", { d: "m11 19-1.106-.552a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0l4.212 2.106a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619V12" }],
		["path", { d: "M15 5.764V12" }],
		["path", { d: "M18 15v6" }],
		["path", { d: "M21 18h-6" }],
		["path", { d: "M9 3.236v15" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/map.js
var Map$1;
var init_map = __esmMin((() => {
	Map$1 = [
		["path", { d: "M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z" }],
		["path", { d: "M15 5.764v15" }],
		["path", { d: "M9 3.236v15" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mars.js
var Mars;
var init_mars = __esmMin((() => {
	Mars = [
		["path", { d: "M16 3h5v5" }],
		["path", { d: "m21 3-6.75 6.75" }],
		["circle", {
			cx: "10",
			cy: "14",
			r: "6"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mars-stroke.js
var MarsStroke;
var init_mars_stroke = __esmMin((() => {
	MarsStroke = [
		["path", { d: "m14 6 4 4" }],
		["path", { d: "M17 3h4v4" }],
		["path", { d: "m21 3-7.75 7.75" }],
		["circle", {
			cx: "9",
			cy: "15",
			r: "6"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/martini.js
var Martini;
var init_martini = __esmMin((() => {
	Martini = [
		["path", { d: "M8 22h8" }],
		["path", { d: "M12 11v11" }],
		["path", { d: "m19 3-7 8-7-8Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/maximize-2.js
var Maximize2;
var init_maximize_2 = __esmMin((() => {
	Maximize2 = [
		["path", { d: "M15 3h6v6" }],
		["path", { d: "m21 3-7 7" }],
		["path", { d: "m3 21 7-7" }],
		["path", { d: "M9 21H3v-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/maximize.js
var Maximize;
var init_maximize = __esmMin((() => {
	Maximize = [
		["path", { d: "M8 3H5a2 2 0 0 0-2 2v3" }],
		["path", { d: "M21 8V5a2 2 0 0 0-2-2h-3" }],
		["path", { d: "M3 16v3a2 2 0 0 0 2 2h3" }],
		["path", { d: "M16 21h3a2 2 0 0 0 2-2v-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/medal.js
var Medal;
var init_medal = __esmMin((() => {
	Medal = [
		["path", { d: "M7.21 15 2.66 7.14a2 2 0 0 1 .13-2.2L4.4 2.8A2 2 0 0 1 6 2h12a2 2 0 0 1 1.6.8l1.6 2.14a2 2 0 0 1 .14 2.2L16.79 15" }],
		["path", { d: "M11 12 5.12 2.2" }],
		["path", { d: "m13 12 5.88-9.8" }],
		["path", { d: "M8 7h8" }],
		["circle", {
			cx: "12",
			cy: "17",
			r: "5"
		}],
		["path", { d: "M12 18v-2h-.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/megaphone-off.js
var MegaphoneOff;
var init_megaphone_off = __esmMin((() => {
	MegaphoneOff = [
		["path", { d: "M11.636 6A13 13 0 0 0 19.4 3.2 1 1 0 0 1 21 4v11.344" }],
		["path", { d: "M14.378 14.357A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h1" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14" }],
		["path", { d: "M8 8v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/megaphone.js
var Megaphone;
var init_megaphone = __esmMin((() => {
	Megaphone = [
		["path", { d: "M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z" }],
		["path", { d: "M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14" }],
		["path", { d: "M8 6v8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/meh.js
var Meh;
var init_meh = __esmMin((() => {
	Meh = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["line", {
			x1: "8",
			x2: "16",
			y1: "15",
			y2: "15"
		}],
		["line", {
			x1: "9",
			x2: "9.01",
			y1: "9",
			y2: "9"
		}],
		["line", {
			x1: "15",
			x2: "15.01",
			y1: "9",
			y2: "9"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/memory-stick.js
var MemoryStick;
var init_memory_stick = __esmMin((() => {
	MemoryStick = [
		["path", { d: "M6 19v-3" }],
		["path", { d: "M10 19v-3" }],
		["path", { d: "M14 19v-3" }],
		["path", { d: "M18 19v-3" }],
		["path", { d: "M8 11V9" }],
		["path", { d: "M16 11V9" }],
		["path", { d: "M12 11V9" }],
		["path", { d: "M2 15h20" }],
		["path", { d: "M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.1a2 2 0 0 0 0 3.837V17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5.1a2 2 0 0 0 0-3.837Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/menu.js
var Menu;
var init_menu = __esmMin((() => {
	Menu = [
		["path", { d: "M4 5h16" }],
		["path", { d: "M4 12h16" }],
		["path", { d: "M4 19h16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/merge.js
var Merge;
var init_merge = __esmMin((() => {
	Merge = [
		["path", { d: "m8 6 4-4 4 4" }],
		["path", { d: "M12 2v10.3a4 4 0 0 1-1.172 2.872L4 22" }],
		["path", { d: "m20 22-5-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-circle-code.js
var MessageCircleCode;
var init_message_circle_code = __esmMin((() => {
	MessageCircleCode = [
		["path", { d: "m10 9-3 3 3 3" }],
		["path", { d: "m14 15 3-3-3-3" }],
		["path", { d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-circle-dashed.js
var MessageCircleDashed;
var init_message_circle_dashed = __esmMin((() => {
	MessageCircleDashed = [
		["path", { d: "M10.1 2.182a10 10 0 0 1 3.8 0" }],
		["path", { d: "M13.9 21.818a10 10 0 0 1-3.8 0" }],
		["path", { d: "M17.609 3.72a10 10 0 0 1 2.69 2.7" }],
		["path", { d: "M2.182 13.9a10 10 0 0 1 0-3.8" }],
		["path", { d: "M20.28 17.61a10 10 0 0 1-2.7 2.69" }],
		["path", { d: "M21.818 10.1a10 10 0 0 1 0 3.8" }],
		["path", { d: "M3.721 6.391a10 10 0 0 1 2.7-2.69" }],
		["path", { d: "m6.163 21.117-2.906.85a1 1 0 0 1-1.236-1.169l.965-2.98" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-circle-heart.js
var MessageCircleHeart;
var init_message_circle_heart = __esmMin((() => {
	MessageCircleHeart = [["path", { d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719" }], ["path", { d: "M7.828 13.07A3 3 0 0 1 12 8.764a3 3 0 0 1 5.004 2.224 3 3 0 0 1-.832 2.083l-3.447 3.62a1 1 0 0 1-1.45-.001z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-circle-more.js
var MessageCircleMore;
var init_message_circle_more = __esmMin((() => {
	MessageCircleMore = [
		["path", { d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719" }],
		["path", { d: "M8 12h.01" }],
		["path", { d: "M12 12h.01" }],
		["path", { d: "M16 12h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-circle-off.js
var MessageCircleOff;
var init_message_circle_off = __esmMin((() => {
	MessageCircleOff = [
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M4.93 4.929a10 10 0 0 0-1.938 11.412 2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 0 0 11.302-1.989" }],
		["path", { d: "M8.35 2.69A10 10 0 0 1 21.3 15.65" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-circle-plus.js
var MessageCirclePlus;
var init_message_circle_plus = __esmMin((() => {
	MessageCirclePlus = [
		["path", { d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719" }],
		["path", { d: "M8 12h8" }],
		["path", { d: "M12 8v8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-circle-question-mark.js
var MessageCircleQuestionMark;
var init_message_circle_question_mark = __esmMin((() => {
	MessageCircleQuestionMark = [
		["path", { d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719" }],
		["path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" }],
		["path", { d: "M12 17h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-circle-reply.js
var MessageCircleReply;
var init_message_circle_reply = __esmMin((() => {
	MessageCircleReply = [
		["path", { d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719" }],
		["path", { d: "m10 15-3-3 3-3" }],
		["path", { d: "M7 12h8a2 2 0 0 1 2 2v1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-circle-warning.js
var MessageCircleWarning;
var init_message_circle_warning = __esmMin((() => {
	MessageCircleWarning = [
		["path", { d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719" }],
		["path", { d: "M12 8v4" }],
		["path", { d: "M12 16h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-circle-x.js
var MessageCircleX;
var init_message_circle_x = __esmMin((() => {
	MessageCircleX = [
		["path", { d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719" }],
		["path", { d: "m15 9-6 6" }],
		["path", { d: "m9 9 6 6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-circle.js
var MessageCircle;
var init_message_circle = __esmMin((() => {
	MessageCircle = [["path", { d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-square-code.js
var MessageSquareCode;
var init_message_square_code = __esmMin((() => {
	MessageSquareCode = [
		["path", { d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z" }],
		["path", { d: "m10 8-3 3 3 3" }],
		["path", { d: "m14 14 3-3-3-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-square-dashed.js
var MessageSquareDashed;
var init_message_square_dashed = __esmMin((() => {
	MessageSquareDashed = [
		["path", { d: "M12 19h.01" }],
		["path", { d: "M12 3h.01" }],
		["path", { d: "M16 19h.01" }],
		["path", { d: "M16 3h.01" }],
		["path", { d: "M2 13h.01" }],
		["path", { d: "M2 17v4.286a.71.71 0 0 0 1.212.502l2.202-2.202A2 2 0 0 1 6.828 19H8" }],
		["path", { d: "M2 5a2 2 0 0 1 2-2" }],
		["path", { d: "M2 9h.01" }],
		["path", { d: "M20 3a2 2 0 0 1 2 2" }],
		["path", { d: "M22 13h.01" }],
		["path", { d: "M22 17a2 2 0 0 1-2 2" }],
		["path", { d: "M22 9h.01" }],
		["path", { d: "M8 3h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-square-diff.js
var MessageSquareDiff;
var init_message_square_diff = __esmMin((() => {
	MessageSquareDiff = [
		["path", { d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z" }],
		["path", { d: "M10 15h4" }],
		["path", { d: "M10 9h4" }],
		["path", { d: "M12 7v4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-square-dot.js
var MessageSquareDot;
var init_message_square_dot = __esmMin((() => {
	MessageSquareDot = [["path", { d: "M12.7 3H4a2 2 0 0 0-2 2v16.286a.71.71 0 0 0 1.212.502l2.202-2.202A2 2 0 0 1 6.828 19H20a2 2 0 0 0 2-2v-4.7" }], ["circle", {
		cx: "19",
		cy: "6",
		r: "3"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-square-heart.js
var MessageSquareHeart;
var init_message_square_heart = __esmMin((() => {
	MessageSquareHeart = [["path", { d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z" }], ["path", { d: "M7.5 9.5c0 .687.265 1.383.697 1.844l3.009 3.264a1.14 1.14 0 0 0 .407.314 1 1 0 0 0 .783-.004 1.14 1.14 0 0 0 .398-.31l3.008-3.264A2.77 2.77 0 0 0 16.5 9.5 2.5 2.5 0 0 0 12 8a2.5 2.5 0 0 0-4.5 1.5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-square-lock.js
var MessageSquareLock;
var init_message_square_lock = __esmMin((() => {
	MessageSquareLock = [
		["path", { d: "M22 8.5V5a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v16.286a.71.71 0 0 0 1.212.502l2.202-2.202A2 2 0 0 1 6.828 19H10" }],
		["path", { d: "M20 15v-2a2 2 0 0 0-4 0v2" }],
		["rect", {
			x: "14",
			y: "15",
			width: "8",
			height: "5",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-square-more.js
var MessageSquareMore;
var init_message_square_more = __esmMin((() => {
	MessageSquareMore = [
		["path", { d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z" }],
		["path", { d: "M12 11h.01" }],
		["path", { d: "M16 11h.01" }],
		["path", { d: "M8 11h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-square-off.js
var MessageSquareOff;
var init_message_square_off = __esmMin((() => {
	MessageSquareOff = [
		["path", { d: "M19 19H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.7.7 0 0 1 2 21.286V5a2 2 0 0 1 1.184-1.826" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M8.656 3H20a2 2 0 0 1 2 2v11.344" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-square-plus.js
var MessageSquarePlus;
var init_message_square_plus = __esmMin((() => {
	MessageSquarePlus = [
		["path", { d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z" }],
		["path", { d: "M12 8v6" }],
		["path", { d: "M9 11h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-square-quote.js
var MessageSquareQuote;
var init_message_square_quote = __esmMin((() => {
	MessageSquareQuote = [
		["path", { d: "M14 14a2 2 0 0 0 2-2V8h-2" }],
		["path", { d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z" }],
		["path", { d: "M8 14a2 2 0 0 0 2-2V8H8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-square-reply.js
var MessageSquareReply;
var init_message_square_reply = __esmMin((() => {
	MessageSquareReply = [
		["path", { d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z" }],
		["path", { d: "m10 8-3 3 3 3" }],
		["path", { d: "M17 14v-1a2 2 0 0 0-2-2H7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-square-share.js
var MessageSquareShare;
var init_message_square_share = __esmMin((() => {
	MessageSquareShare = [
		["path", { d: "M12 3H4a2 2 0 0 0-2 2v16.286a.71.71 0 0 0 1.212.502l2.202-2.202A2 2 0 0 1 6.828 19H20a2 2 0 0 0 2-2v-4" }],
		["path", { d: "M16 3h6v6" }],
		["path", { d: "m16 9 6-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-square-text.js
var MessageSquareText;
var init_message_square_text = __esmMin((() => {
	MessageSquareText = [
		["path", { d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z" }],
		["path", { d: "M7 11h10" }],
		["path", { d: "M7 15h6" }],
		["path", { d: "M7 7h8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-square-warning.js
var MessageSquareWarning;
var init_message_square_warning = __esmMin((() => {
	MessageSquareWarning = [
		["path", { d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z" }],
		["path", { d: "M12 15h.01" }],
		["path", { d: "M12 7v4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-square-x.js
var MessageSquareX;
var init_message_square_x = __esmMin((() => {
	MessageSquareX = [
		["path", { d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z" }],
		["path", { d: "m14.5 8.5-5 5" }],
		["path", { d: "m9.5 8.5 5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/message-square.js
var MessageSquare;
var init_message_square = __esmMin((() => {
	MessageSquare = [["path", { d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/messages-square.js
var MessagesSquare;
var init_messages_square = __esmMin((() => {
	MessagesSquare = [["path", { d: "M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z" }], ["path", { d: "M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mic-off.js
var MicOff;
var init_mic_off = __esmMin((() => {
	MicOff = [
		["path", { d: "M12 19v3" }],
		["path", { d: "M15 9.34V5a3 3 0 0 0-5.68-1.33" }],
		["path", { d: "M16.95 16.95A7 7 0 0 1 5 12v-2" }],
		["path", { d: "M18.89 13.23A7 7 0 0 0 19 12v-2" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M9 9v3a3 3 0 0 0 5.12 2.12" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mic-vocal.js
var MicVocal;
var init_mic_vocal = __esmMin((() => {
	MicVocal = [
		["path", { d: "m11 7.601-5.994 8.19a1 1 0 0 0 .1 1.298l.817.818a1 1 0 0 0 1.314.087L15.09 12" }],
		["path", { d: "M16.5 21.174C15.5 20.5 14.372 20 13 20c-2.058 0-3.928 2.356-6 2-2.072-.356-2.775-3.369-1.5-4.5" }],
		["circle", {
			cx: "16",
			cy: "7",
			r: "5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mic.js
var Mic;
var init_mic = __esmMin((() => {
	Mic = [
		["path", { d: "M12 19v3" }],
		["path", { d: "M19 10v2a7 7 0 0 1-14 0v-2" }],
		["rect", {
			x: "9",
			y: "2",
			width: "6",
			height: "13",
			rx: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/microchip.js
var Microchip;
var init_microchip = __esmMin((() => {
	Microchip = [
		["path", { d: "M18 12h2" }],
		["path", { d: "M18 16h2" }],
		["path", { d: "M18 20h2" }],
		["path", { d: "M18 4h2" }],
		["path", { d: "M18 8h2" }],
		["path", { d: "M4 12h2" }],
		["path", { d: "M4 16h2" }],
		["path", { d: "M4 20h2" }],
		["path", { d: "M4 4h2" }],
		["path", { d: "M4 8h2" }],
		["path", { d: "M8 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-1.5c-.276 0-.494.227-.562.495a2 2 0 0 1-3.876 0C9.994 2.227 9.776 2 9.5 2z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/microscope.js
var Microscope;
var init_microscope = __esmMin((() => {
	Microscope = [
		["path", { d: "M6 18h8" }],
		["path", { d: "M3 22h18" }],
		["path", { d: "M14 22a7 7 0 1 0 0-14h-1" }],
		["path", { d: "M9 14h2" }],
		["path", { d: "M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z" }],
		["path", { d: "M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/milestone.js
var Milestone;
var init_milestone = __esmMin((() => {
	Milestone = [
		["path", { d: "M12 13v8" }],
		["path", { d: "M12 3v3" }],
		["path", { d: "M4 6a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h13a2 2 0 0 0 1.152-.365l3.424-2.317a1 1 0 0 0 0-1.635l-3.424-2.318A2 2 0 0 0 17 6z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/microwave.js
var Microwave;
var init_microwave = __esmMin((() => {
	Microwave = [
		["rect", {
			width: "20",
			height: "15",
			x: "2",
			y: "4",
			rx: "2"
		}],
		["rect", {
			width: "8",
			height: "7",
			x: "6",
			y: "8",
			rx: "1"
		}],
		["path", { d: "M18 8v7" }],
		["path", { d: "M6 19v2" }],
		["path", { d: "M18 19v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/milk-off.js
var MilkOff;
var init_milk_off = __esmMin((() => {
	MilkOff = [
		["path", { d: "M8 2h8" }],
		["path", { d: "M9 2v1.343M15 2v2.789a4 4 0 0 0 .672 2.219l.656.984a4 4 0 0 1 .672 2.22v1.131M7.8 7.8l-.128.192A4 4 0 0 0 7 10.212V20a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-3" }],
		["path", { d: "M7 15a6.47 6.47 0 0 1 5 0 6.472 6.472 0 0 0 3.435.435" }],
		["line", {
			x1: "2",
			x2: "22",
			y1: "2",
			y2: "22"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/milk.js
var Milk;
var init_milk = __esmMin((() => {
	Milk = [
		["path", { d: "M8 2h8" }],
		["path", { d: "M9 2v2.789a4 4 0 0 1-.672 2.219l-.656.984A4 4 0 0 0 7 10.212V20a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-9.789a4 4 0 0 0-.672-2.219l-.656-.984A4 4 0 0 1 15 4.788V2" }],
		["path", { d: "M7 15a6.472 6.472 0 0 1 5 0 6.47 6.47 0 0 0 5 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/minimize-2.js
var Minimize2;
var init_minimize_2 = __esmMin((() => {
	Minimize2 = [
		["path", { d: "m14 10 7-7" }],
		["path", { d: "M20 10h-6V4" }],
		["path", { d: "m3 21 7-7" }],
		["path", { d: "M4 14h6v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/minimize.js
var Minimize;
var init_minimize = __esmMin((() => {
	Minimize = [
		["path", { d: "M8 3v3a2 2 0 0 1-2 2H3" }],
		["path", { d: "M21 8h-3a2 2 0 0 1-2-2V3" }],
		["path", { d: "M3 16h3a2 2 0 0 1 2 2v3" }],
		["path", { d: "M16 21v-3a2 2 0 0 1 2-2h3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/minus.js
var Minus;
var init_minus = __esmMin((() => {
	Minus = [["path", { d: "M5 12h14" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/monitor-check.js
var MonitorCheck;
var init_monitor_check = __esmMin((() => {
	MonitorCheck = [
		["path", { d: "m9 10 2 2 4-4" }],
		["rect", {
			width: "20",
			height: "14",
			x: "2",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M12 17v4" }],
		["path", { d: "M8 21h8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/monitor-cloud.js
var MonitorCloud;
var init_monitor_cloud = __esmMin((() => {
	MonitorCloud = [
		["path", { d: "M11 13a3 3 0 1 1 2.83-4H14a2 2 0 0 1 0 4z" }],
		["path", { d: "M12 17v4" }],
		["path", { d: "M8 21h8" }],
		["rect", {
			x: "2",
			y: "3",
			width: "20",
			height: "14",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/monitor-cog.js
var MonitorCog;
var init_monitor_cog = __esmMin((() => {
	MonitorCog = [
		["path", { d: "M12 17v4" }],
		["path", { d: "m14.305 7.53.923-.382" }],
		["path", { d: "m15.228 4.852-.923-.383" }],
		["path", { d: "m16.852 3.228-.383-.924" }],
		["path", { d: "m16.852 8.772-.383.923" }],
		["path", { d: "m19.148 3.228.383-.924" }],
		["path", { d: "m19.53 9.696-.382-.924" }],
		["path", { d: "m20.772 4.852.924-.383" }],
		["path", { d: "m20.772 7.148.924.383" }],
		["path", { d: "M22 13v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7" }],
		["path", { d: "M8 21h8" }],
		["circle", {
			cx: "18",
			cy: "6",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/monitor-dot.js
var MonitorDot;
var init_monitor_dot = __esmMin((() => {
	MonitorDot = [
		["path", { d: "M12 17v4" }],
		["path", { d: "M22 12.307V15a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h8.693" }],
		["path", { d: "M8 21h8" }],
		["circle", {
			cx: "19",
			cy: "6",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/monitor-down.js
var MonitorDown;
var init_monitor_down = __esmMin((() => {
	MonitorDown = [
		["path", { d: "M12 13V7" }],
		["path", { d: "m15 10-3 3-3-3" }],
		["rect", {
			width: "20",
			height: "14",
			x: "2",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M12 17v4" }],
		["path", { d: "M8 21h8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/monitor-off.js
var MonitorOff;
var init_monitor_off = __esmMin((() => {
	MonitorOff = [
		["path", { d: "M17 17H4a2 2 0 0 1-2-2V5c0-1.5 1-2 1-2" }],
		["path", { d: "M22 15V5a2 2 0 0 0-2-2H9" }],
		["path", { d: "M8 21h8" }],
		["path", { d: "M12 17v4" }],
		["path", { d: "m2 2 20 20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/monitor-pause.js
var MonitorPause;
var init_monitor_pause = __esmMin((() => {
	MonitorPause = [
		["path", { d: "M10 13V7" }],
		["path", { d: "M14 13V7" }],
		["rect", {
			width: "20",
			height: "14",
			x: "2",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M12 17v4" }],
		["path", { d: "M8 21h8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/monitor-play.js
var MonitorPlay;
var init_monitor_play = __esmMin((() => {
	MonitorPlay = [
		["path", { d: "M15.033 9.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56V7.648a.645.645 0 0 1 .967-.56z" }],
		["path", { d: "M12 17v4" }],
		["path", { d: "M8 21h8" }],
		["rect", {
			x: "2",
			y: "3",
			width: "20",
			height: "14",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/monitor-smartphone.js
var MonitorSmartphone;
var init_monitor_smartphone = __esmMin((() => {
	MonitorSmartphone = [
		["path", { d: "M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8" }],
		["path", { d: "M10 19v-3.96 3.15" }],
		["path", { d: "M7 19h5" }],
		["rect", {
			width: "6",
			height: "10",
			x: "16",
			y: "12",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/monitor-speaker.js
var MonitorSpeaker;
var init_monitor_speaker = __esmMin((() => {
	MonitorSpeaker = [
		["path", { d: "M5.5 20H8" }],
		["path", { d: "M17 9h.01" }],
		["rect", {
			width: "10",
			height: "16",
			x: "12",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M8 6H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h4" }],
		["circle", {
			cx: "17",
			cy: "15",
			r: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/monitor-stop.js
var MonitorStop;
var init_monitor_stop = __esmMin((() => {
	MonitorStop = [
		["path", { d: "M12 17v4" }],
		["path", { d: "M8 21h8" }],
		["rect", {
			x: "2",
			y: "3",
			width: "20",
			height: "14",
			rx: "2"
		}],
		["rect", {
			x: "9",
			y: "7",
			width: "6",
			height: "6",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/monitor-up.js
var MonitorUp;
var init_monitor_up = __esmMin((() => {
	MonitorUp = [
		["path", { d: "m9 10 3-3 3 3" }],
		["path", { d: "M12 13V7" }],
		["rect", {
			width: "20",
			height: "14",
			x: "2",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M12 17v4" }],
		["path", { d: "M8 21h8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/monitor-x.js
var MonitorX;
var init_monitor_x = __esmMin((() => {
	MonitorX = [
		["path", { d: "m14.5 12.5-5-5" }],
		["path", { d: "m9.5 12.5 5-5" }],
		["rect", {
			width: "20",
			height: "14",
			x: "2",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M12 17v4" }],
		["path", { d: "M8 21h8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/monitor.js
var Monitor;
var init_monitor = __esmMin((() => {
	Monitor = [
		["rect", {
			width: "20",
			height: "14",
			x: "2",
			y: "3",
			rx: "2"
		}],
		["line", {
			x1: "8",
			x2: "16",
			y1: "21",
			y2: "21"
		}],
		["line", {
			x1: "12",
			x2: "12",
			y1: "17",
			y2: "21"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/moon-star.js
var MoonStar;
var init_moon_star = __esmMin((() => {
	MoonStar = [
		["path", { d: "M18 5h4" }],
		["path", { d: "M20 3v4" }],
		["path", { d: "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/moon.js
var Moon;
var init_moon = __esmMin((() => {
	Moon = [["path", { d: "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/motorbike.js
var Motorbike;
var init_motorbike = __esmMin((() => {
	Motorbike = [
		["path", { d: "m18 14-1-3" }],
		["path", { d: "m3 9 6 2a2 2 0 0 1 2-2h2a2 2 0 0 1 1.99 1.81" }],
		["path", { d: "M8 17h3a1 1 0 0 0 1-1 6 6 0 0 1 6-6 1 1 0 0 0 1-1v-.75A5 5 0 0 0 17 5" }],
		["circle", {
			cx: "19",
			cy: "17",
			r: "3"
		}],
		["circle", {
			cx: "5",
			cy: "17",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mountain-snow.js
var MountainSnow;
var init_mountain_snow = __esmMin((() => {
	MountainSnow = [["path", { d: "m8 3 4 8 5-5 5 15H2L8 3z" }], ["path", { d: "M4.14 15.08c2.62-1.57 5.24-1.43 7.86.42 2.74 1.94 5.49 2 8.23.19" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mountain.js
var Mountain;
var init_mountain = __esmMin((() => {
	Mountain = [["path", { d: "m8 3 4 8 5-5 5 15H2L8 3z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mouse-off.js
var MouseOff;
var init_mouse_off = __esmMin((() => {
	MouseOff = [
		["path", { d: "M12 6v.343" }],
		["path", { d: "M18.218 18.218A7 7 0 0 1 5 15V9a7 7 0 0 1 .782-3.218" }],
		["path", { d: "M19 13.343V9A7 7 0 0 0 8.56 2.902" }],
		["path", { d: "M22 22 2 2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mouse-pointer-2-off.js
var MousePointer2Off;
var init_mouse_pointer_2_off = __esmMin((() => {
	MousePointer2Off = [
		["path", { d: "m15.55 8.45 5.138 2.087a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063L8.45 15.551" }],
		["path", { d: "M22 2 2 22" }],
		["path", { d: "m6.816 11.528-2.779-6.84a.495.495 0 0 1 .651-.651l6.84 2.779" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mouse-pointer-2.js
var MousePointer2;
var init_mouse_pointer_2 = __esmMin((() => {
	MousePointer2 = [["path", { d: "M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mouse-pointer-ban.js
var MousePointerBan;
var init_mouse_pointer_ban = __esmMin((() => {
	MousePointerBan = [
		["path", { d: "M2.034 2.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.944L8.204 7.545a1 1 0 0 0-.66.66l-1.066 3.443a.5.5 0 0 1-.944.033z" }],
		["circle", {
			cx: "16",
			cy: "16",
			r: "6"
		}],
		["path", { d: "m11.8 11.8 8.4 8.4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mouse-pointer-click.js
var MousePointerClick;
var init_mouse_pointer_click = __esmMin((() => {
	MousePointerClick = [
		["path", { d: "M14 4.1 12 6" }],
		["path", { d: "m5.1 8-2.9-.8" }],
		["path", { d: "m6 12-1.9 2" }],
		["path", { d: "M7.2 2.2 8 5.1" }],
		["path", { d: "M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mouse-pointer.js
var MousePointer;
var init_mouse_pointer = __esmMin((() => {
	MousePointer = [["path", { d: "M12.586 12.586 19 19" }], ["path", { d: "M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/mouse.js
var Mouse;
var init_mouse = __esmMin((() => {
	Mouse = [["rect", {
		x: "5",
		y: "2",
		width: "14",
		height: "20",
		rx: "7"
	}], ["path", { d: "M12 6v4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/move-diagonal.js
var MoveDiagonal;
var init_move_diagonal = __esmMin((() => {
	MoveDiagonal = [
		["path", { d: "M11 19H5v-6" }],
		["path", { d: "M13 5h6v6" }],
		["path", { d: "M19 5 5 19" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/move-diagonal-2.js
var MoveDiagonal2;
var init_move_diagonal_2 = __esmMin((() => {
	MoveDiagonal2 = [
		["path", { d: "M19 13v6h-6" }],
		["path", { d: "M5 11V5h6" }],
		["path", { d: "m5 5 14 14" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/move-3d.js
var Move3d;
var init_move_3d = __esmMin((() => {
	Move3d = [
		["path", { d: "M5 3v16h16" }],
		["path", { d: "m5 19 6-6" }],
		["path", { d: "m2 6 3-3 3 3" }],
		["path", { d: "m18 16 3 3-3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/move-down-left.js
var MoveDownLeft;
var init_move_down_left = __esmMin((() => {
	MoveDownLeft = [["path", { d: "M11 19H5V13" }], ["path", { d: "M19 5L5 19" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/move-down-right.js
var MoveDownRight;
var init_move_down_right = __esmMin((() => {
	MoveDownRight = [["path", { d: "M19 13V19H13" }], ["path", { d: "M5 5L19 19" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/move-down.js
var MoveDown;
var init_move_down = __esmMin((() => {
	MoveDown = [["path", { d: "M8 18L12 22L16 18" }], ["path", { d: "M12 2V22" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/move-left.js
var MoveLeft;
var init_move_left = __esmMin((() => {
	MoveLeft = [["path", { d: "M6 8L2 12L6 16" }], ["path", { d: "M2 12H22" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/move-horizontal.js
var MoveHorizontal;
var init_move_horizontal = __esmMin((() => {
	MoveHorizontal = [
		["path", { d: "m18 8 4 4-4 4" }],
		["path", { d: "M2 12h20" }],
		["path", { d: "m6 8-4 4 4 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/move-right.js
var MoveRight;
var init_move_right = __esmMin((() => {
	MoveRight = [["path", { d: "M18 8L22 12L18 16" }], ["path", { d: "M2 12H22" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/move-up-left.js
var MoveUpLeft;
var init_move_up_left = __esmMin((() => {
	MoveUpLeft = [["path", { d: "M5 11V5H11" }], ["path", { d: "M5 5L19 19" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/move-up-right.js
var MoveUpRight;
var init_move_up_right = __esmMin((() => {
	MoveUpRight = [["path", { d: "M13 5H19V11" }], ["path", { d: "M19 5L5 19" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/move-up.js
var MoveUp;
var init_move_up = __esmMin((() => {
	MoveUp = [["path", { d: "M8 6L12 2L16 6" }], ["path", { d: "M12 2V22" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/move-vertical.js
var MoveVertical;
var init_move_vertical = __esmMin((() => {
	MoveVertical = [
		["path", { d: "M12 2v20" }],
		["path", { d: "m8 18 4 4 4-4" }],
		["path", { d: "m8 6 4-4 4 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/move.js
var Move;
var init_move = __esmMin((() => {
	Move = [
		["path", { d: "M12 2v20" }],
		["path", { d: "m15 19-3 3-3-3" }],
		["path", { d: "m19 9 3 3-3 3" }],
		["path", { d: "M2 12h20" }],
		["path", { d: "m5 9-3 3 3 3" }],
		["path", { d: "m9 5 3-3 3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/music-2.js
var Music2;
var init_music_2 = __esmMin((() => {
	Music2 = [["circle", {
		cx: "8",
		cy: "18",
		r: "4"
	}], ["path", { d: "M12 18V2l7 4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/music-3.js
var Music3;
var init_music_3 = __esmMin((() => {
	Music3 = [["circle", {
		cx: "12",
		cy: "18",
		r: "4"
	}], ["path", { d: "M16 18V2" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/music-4.js
var Music4;
var init_music_4 = __esmMin((() => {
	Music4 = [
		["path", { d: "M9 18V5l12-2v13" }],
		["path", { d: "m9 9 12-2" }],
		["circle", {
			cx: "6",
			cy: "18",
			r: "3"
		}],
		["circle", {
			cx: "18",
			cy: "16",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/music.js
var Music;
var init_music = __esmMin((() => {
	Music = [
		["path", { d: "M9 18V5l12-2v13" }],
		["circle", {
			cx: "6",
			cy: "18",
			r: "3"
		}],
		["circle", {
			cx: "18",
			cy: "16",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/navigation-2.js
var Navigation2;
var init_navigation_2 = __esmMin((() => {
	Navigation2 = [["polygon", { points: "12 2 19 21 12 17 5 21 12 2" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/navigation-2-off.js
var Navigation2Off;
var init_navigation_2_off = __esmMin((() => {
	Navigation2Off = [
		["path", { d: "M9.31 9.31 5 21l7-4 7 4-1.17-3.17" }],
		["path", { d: "M14.53 8.88 12 2l-1.17 3.17" }],
		["line", {
			x1: "2",
			x2: "22",
			y1: "2",
			y2: "22"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/navigation-off.js
var NavigationOff;
var init_navigation_off = __esmMin((() => {
	NavigationOff = [
		["path", { d: "M8.43 8.43 3 11l8 2 2 8 2.57-5.43" }],
		["path", { d: "M17.39 11.73 22 2l-9.73 4.61" }],
		["line", {
			x1: "2",
			x2: "22",
			y1: "2",
			y2: "22"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/navigation.js
var Navigation;
var init_navigation = __esmMin((() => {
	Navigation = [["polygon", { points: "3 11 22 2 13 21 11 13 3 11" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/network.js
var Network;
var init_network = __esmMin((() => {
	Network = [
		["rect", {
			x: "16",
			y: "16",
			width: "6",
			height: "6",
			rx: "1"
		}],
		["rect", {
			x: "2",
			y: "16",
			width: "6",
			height: "6",
			rx: "1"
		}],
		["rect", {
			x: "9",
			y: "2",
			width: "6",
			height: "6",
			rx: "1"
		}],
		["path", { d: "M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3" }],
		["path", { d: "M12 12V8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/newspaper.js
var Newspaper;
var init_newspaper = __esmMin((() => {
	Newspaper = [
		["path", { d: "M15 18h-5" }],
		["path", { d: "M18 14h-8" }],
		["path", { d: "M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2" }],
		["rect", {
			width: "8",
			height: "4",
			x: "10",
			y: "6",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/nfc.js
var Nfc;
var init_nfc = __esmMin((() => {
	Nfc = [
		["path", { d: "M6 8.32a7.43 7.43 0 0 1 0 7.36" }],
		["path", { d: "M9.46 6.21a11.76 11.76 0 0 1 0 11.58" }],
		["path", { d: "M12.91 4.1a15.91 15.91 0 0 1 .01 15.8" }],
		["path", { d: "M16.37 2a20.16 20.16 0 0 1 0 20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/non-binary.js
var NonBinary;
var init_non_binary = __esmMin((() => {
	NonBinary = [
		["path", { d: "M12 2v10" }],
		["path", { d: "m8.5 4 7 4" }],
		["path", { d: "m8.5 8 7-4" }],
		["circle", {
			cx: "12",
			cy: "17",
			r: "5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/notebook-pen.js
var NotebookPen;
var init_notebook_pen = __esmMin((() => {
	NotebookPen = [
		["path", { d: "M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4" }],
		["path", { d: "M2 6h4" }],
		["path", { d: "M2 10h4" }],
		["path", { d: "M2 14h4" }],
		["path", { d: "M2 18h4" }],
		["path", { d: "M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/notebook-tabs.js
var NotebookTabs;
var init_notebook_tabs = __esmMin((() => {
	NotebookTabs = [
		["path", { d: "M2 6h4" }],
		["path", { d: "M2 10h4" }],
		["path", { d: "M2 14h4" }],
		["path", { d: "M2 18h4" }],
		["rect", {
			width: "16",
			height: "20",
			x: "4",
			y: "2",
			rx: "2"
		}],
		["path", { d: "M15 2v20" }],
		["path", { d: "M15 7h5" }],
		["path", { d: "M15 12h5" }],
		["path", { d: "M15 17h5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/notebook-text.js
var NotebookText;
var init_notebook_text = __esmMin((() => {
	NotebookText = [
		["path", { d: "M2 6h4" }],
		["path", { d: "M2 10h4" }],
		["path", { d: "M2 14h4" }],
		["path", { d: "M2 18h4" }],
		["rect", {
			width: "16",
			height: "20",
			x: "4",
			y: "2",
			rx: "2"
		}],
		["path", { d: "M9.5 8h5" }],
		["path", { d: "M9.5 12H16" }],
		["path", { d: "M9.5 16H14" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/notebook.js
var Notebook;
var init_notebook = __esmMin((() => {
	Notebook = [
		["path", { d: "M2 6h4" }],
		["path", { d: "M2 10h4" }],
		["path", { d: "M2 14h4" }],
		["path", { d: "M2 18h4" }],
		["rect", {
			width: "16",
			height: "20",
			x: "4",
			y: "2",
			rx: "2"
		}],
		["path", { d: "M16 2v20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/notepad-text-dashed.js
var NotepadTextDashed;
var init_notepad_text_dashed = __esmMin((() => {
	NotepadTextDashed = [
		["path", { d: "M8 2v4" }],
		["path", { d: "M12 2v4" }],
		["path", { d: "M16 2v4" }],
		["path", { d: "M16 4h2a2 2 0 0 1 2 2v2" }],
		["path", { d: "M20 12v2" }],
		["path", { d: "M20 18v2a2 2 0 0 1-2 2h-1" }],
		["path", { d: "M13 22h-2" }],
		["path", { d: "M7 22H6a2 2 0 0 1-2-2v-2" }],
		["path", { d: "M4 14v-2" }],
		["path", { d: "M4 8V6a2 2 0 0 1 2-2h2" }],
		["path", { d: "M8 10h6" }],
		["path", { d: "M8 14h8" }],
		["path", { d: "M8 18h5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/nut-off.js
var NutOff;
var init_nut_off = __esmMin((() => {
	NutOff = [
		["path", { d: "M12 4V2" }],
		["path", { d: "M5 10v4a7.004 7.004 0 0 0 5.277 6.787c.412.104.802.292 1.102.592L12 22l.621-.621c.3-.3.69-.488 1.102-.592a7.01 7.01 0 0 0 4.125-2.939" }],
		["path", { d: "M19 10v3.343" }],
		["path", { d: "M12 12c-1.349-.573-1.905-1.005-2.5-2-.546.902-1.048 1.353-2.5 2-1.018-.644-1.46-1.08-2-2-1.028.71-1.69.918-3 1 1.081-1.048 1.757-2.03 2-3 .194-.776.84-1.551 1.79-2.21m11.654 5.997c.887-.457 1.28-.891 1.556-1.787 1.032.916 1.683 1.157 3 1-1.297-1.036-1.758-2.03-2-3-.5-2-4-4-8-4-.74 0-1.461.068-2.15.192" }],
		["line", {
			x1: "2",
			x2: "22",
			y1: "2",
			y2: "22"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/notepad-text.js
var NotepadText;
var init_notepad_text = __esmMin((() => {
	NotepadText = [
		["path", { d: "M8 2v4" }],
		["path", { d: "M12 2v4" }],
		["path", { d: "M16 2v4" }],
		["rect", {
			width: "16",
			height: "18",
			x: "4",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M8 10h6" }],
		["path", { d: "M8 14h8" }],
		["path", { d: "M8 18h5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/nut.js
var Nut;
var init_nut = __esmMin((() => {
	Nut = [
		["path", { d: "M12 4V2" }],
		["path", { d: "M5 10v4a7.004 7.004 0 0 0 5.277 6.787c.412.104.802.292 1.102.592L12 22l.621-.621c.3-.3.69-.488 1.102-.592A7.003 7.003 0 0 0 19 14v-4" }],
		["path", { d: "M12 4C8 4 4.5 6 4 8c-.243.97-.919 1.952-2 3 1.31-.082 1.972-.29 3-1 .54.92.982 1.356 2 2 1.452-.647 1.954-1.098 2.5-2 .595.995 1.151 1.427 2.5 2 1.31-.621 1.862-1.058 2.5-2 .629.977 1.162 1.423 2.5 2 1.209-.548 1.68-.967 2-2 1.032.916 1.683 1.157 3 1-1.297-1.036-1.758-2.03-2-3-.5-2-4-4-8-4Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/octagon-alert.js
var OctagonAlert;
var init_octagon_alert = __esmMin((() => {
	OctagonAlert = [
		["path", { d: "M12 16h.01" }],
		["path", { d: "M12 8v4" }],
		["path", { d: "M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/octagon-minus.js
var OctagonMinus;
var init_octagon_minus = __esmMin((() => {
	OctagonMinus = [["path", { d: "M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z" }], ["path", { d: "M8 12h8" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/octagon-pause.js
var OctagonPause;
var init_octagon_pause = __esmMin((() => {
	OctagonPause = [
		["path", { d: "M10 15V9" }],
		["path", { d: "M14 15V9" }],
		["path", { d: "M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/octagon-x.js
var OctagonX;
var init_octagon_x = __esmMin((() => {
	OctagonX = [
		["path", { d: "m15 9-6 6" }],
		["path", { d: "M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z" }],
		["path", { d: "m9 9 6 6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/octagon.js
var Octagon;
var init_octagon = __esmMin((() => {
	Octagon = [["path", { d: "M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/omega.js
var Omega;
var init_omega = __esmMin((() => {
	Omega = [["path", { d: "M3 20h4.5a.5.5 0 0 0 .5-.5v-.282a.52.52 0 0 0-.247-.437 8 8 0 1 1 8.494-.001.52.52 0 0 0-.247.438v.282a.5.5 0 0 0 .5.5H21" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/option.js
var Option;
var init_option = __esmMin((() => {
	Option = [["path", { d: "M3 3h6l6 18h6" }], ["path", { d: "M14 3h7" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/orbit.js
var Orbit;
var init_orbit = __esmMin((() => {
	Orbit = [
		["path", { d: "M20.341 6.484A10 10 0 0 1 10.266 21.85" }],
		["path", { d: "M3.659 17.516A10 10 0 0 1 13.74 2.152" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "3"
		}],
		["circle", {
			cx: "19",
			cy: "5",
			r: "2"
		}],
		["circle", {
			cx: "5",
			cy: "19",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/origami.js
var Origami;
var init_origami = __esmMin((() => {
	Origami = [
		["path", { d: "M12 12V4a1 1 0 0 1 1-1h6.297a1 1 0 0 1 .651 1.759l-4.696 4.025" }],
		["path", { d: "m12 21-7.414-7.414A2 2 0 0 1 4 12.172V6.415a1.002 1.002 0 0 1 1.707-.707L20 20.009" }],
		["path", { d: "m12.214 3.381 8.414 14.966a1 1 0 0 1-.167 1.199l-1.168 1.163a1 1 0 0 1-.706.291H6.351a1 1 0 0 1-.625-.219L3.25 18.8a1 1 0 0 1 .631-1.781l4.165.027" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/package-2.js
var Package2;
var init_package_2 = __esmMin((() => {
	Package2 = [
		["path", { d: "M12 3v6" }],
		["path", { d: "M16.76 3a2 2 0 0 1 1.8 1.1l2.23 4.479a2 2 0 0 1 .21.891V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9.472a2 2 0 0 1 .211-.894L5.45 4.1A2 2 0 0 1 7.24 3z" }],
		["path", { d: "M3.054 9.013h17.893" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/package-check.js
var PackageCheck;
var init_package_check = __esmMin((() => {
	PackageCheck = [
		["path", { d: "m16 16 2 2 4-4" }],
		["path", { d: "M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14" }],
		["path", { d: "m7.5 4.27 9 5.15" }],
		["polyline", { points: "3.29 7 12 12 20.71 7" }],
		["line", {
			x1: "12",
			x2: "12",
			y1: "22",
			y2: "12"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/package-minus.js
var PackageMinus;
var init_package_minus = __esmMin((() => {
	PackageMinus = [
		["path", { d: "M16 16h6" }],
		["path", { d: "M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14" }],
		["path", { d: "m7.5 4.27 9 5.15" }],
		["polyline", { points: "3.29 7 12 12 20.71 7" }],
		["line", {
			x1: "12",
			x2: "12",
			y1: "22",
			y2: "12"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/package-open.js
var PackageOpen;
var init_package_open = __esmMin((() => {
	PackageOpen = [
		["path", { d: "M12 22v-9" }],
		["path", { d: "M15.17 2.21a1.67 1.67 0 0 1 1.63 0L21 4.57a1.93 1.93 0 0 1 0 3.36L8.82 14.79a1.655 1.655 0 0 1-1.64 0L3 12.43a1.93 1.93 0 0 1 0-3.36z" }],
		["path", { d: "M20 13v3.87a2.06 2.06 0 0 1-1.11 1.83l-6 3.08a1.93 1.93 0 0 1-1.78 0l-6-3.08A2.06 2.06 0 0 1 4 16.87V13" }],
		["path", { d: "M21 12.43a1.93 1.93 0 0 0 0-3.36L8.83 2.2a1.64 1.64 0 0 0-1.63 0L3 4.57a1.93 1.93 0 0 0 0 3.36l12.18 6.86a1.636 1.636 0 0 0 1.63 0z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/package-plus.js
var PackagePlus;
var init_package_plus = __esmMin((() => {
	PackagePlus = [
		["path", { d: "M16 16h6" }],
		["path", { d: "M19 13v6" }],
		["path", { d: "M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14" }],
		["path", { d: "m7.5 4.27 9 5.15" }],
		["polyline", { points: "3.29 7 12 12 20.71 7" }],
		["line", {
			x1: "12",
			x2: "12",
			y1: "22",
			y2: "12"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/package-search.js
var PackageSearch;
var init_package_search = __esmMin((() => {
	PackageSearch = [
		["path", { d: "M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14" }],
		["path", { d: "m7.5 4.27 9 5.15" }],
		["polyline", { points: "3.29 7 12 12 20.71 7" }],
		["line", {
			x1: "12",
			x2: "12",
			y1: "22",
			y2: "12"
		}],
		["circle", {
			cx: "18.5",
			cy: "15.5",
			r: "2.5"
		}],
		["path", { d: "M20.27 17.27 22 19" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/package-x.js
var PackageX;
var init_package_x = __esmMin((() => {
	PackageX = [
		["path", { d: "M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14" }],
		["path", { d: "m7.5 4.27 9 5.15" }],
		["polyline", { points: "3.29 7 12 12 20.71 7" }],
		["line", {
			x1: "12",
			x2: "12",
			y1: "22",
			y2: "12"
		}],
		["path", { d: "m17 13 5 5m-5 0 5-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/package.js
var Package;
var init_package = __esmMin((() => {
	Package = [
		["path", { d: "M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z" }],
		["path", { d: "M12 22V12" }],
		["polyline", { points: "3.29 7 12 12 20.71 7" }],
		["path", { d: "m7.5 4.27 9 5.15" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/paint-bucket.js
var PaintBucket;
var init_paint_bucket = __esmMin((() => {
	PaintBucket = [
		["path", { d: "m19 11-8-8-8.6 8.6a2 2 0 0 0 0 2.8l5.2 5.2c.8.8 2 .8 2.8 0L19 11Z" }],
		["path", { d: "m5 2 5 5" }],
		["path", { d: "M2 13h15" }],
		["path", { d: "M22 20a2 2 0 1 1-4 0c0-1.6 1.7-2.4 2-4 .3 1.6 2 2.4 2 4Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/paint-roller.js
var PaintRoller;
var init_paint_roller = __esmMin((() => {
	PaintRoller = [
		["rect", {
			width: "16",
			height: "6",
			x: "2",
			y: "2",
			rx: "2"
		}],
		["path", { d: "M10 16v-2a2 2 0 0 1 2-2h8a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2" }],
		["rect", {
			width: "4",
			height: "6",
			x: "8",
			y: "16",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/paintbrush-vertical.js
var PaintbrushVertical;
var init_paintbrush_vertical = __esmMin((() => {
	PaintbrushVertical = [
		["path", { d: "M10 2v2" }],
		["path", { d: "M14 2v4" }],
		["path", { d: "M17 2a1 1 0 0 1 1 1v9H6V3a1 1 0 0 1 1-1z" }],
		["path", { d: "M6 12a1 1 0 0 0-1 1v1a2 2 0 0 0 2 2h2a1 1 0 0 1 1 1v2.9a2 2 0 1 0 4 0V17a1 1 0 0 1 1-1h2a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/paintbrush.js
var Paintbrush;
var init_paintbrush = __esmMin((() => {
	Paintbrush = [
		["path", { d: "m14.622 17.897-10.68-2.913" }],
		["path", { d: "M18.376 2.622a1 1 0 1 1 3.002 3.002L17.36 9.643a.5.5 0 0 0 0 .707l.944.944a2.41 2.41 0 0 1 0 3.408l-.944.944a.5.5 0 0 1-.707 0L8.354 7.348a.5.5 0 0 1 0-.707l.944-.944a2.41 2.41 0 0 1 3.408 0l.944.944a.5.5 0 0 0 .707 0z" }],
		["path", { d: "M9 8c-1.804 2.71-3.97 3.46-6.583 3.948a.507.507 0 0 0-.302.819l7.32 8.883a1 1 0 0 0 1.185.204C12.735 20.405 16 16.792 16 15" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/palette.js
var Palette;
var init_palette = __esmMin((() => {
	Palette = [
		["path", { d: "M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z" }],
		["circle", {
			cx: "13.5",
			cy: "6.5",
			r: ".5",
			fill: "currentColor"
		}],
		["circle", {
			cx: "17.5",
			cy: "10.5",
			r: ".5",
			fill: "currentColor"
		}],
		["circle", {
			cx: "6.5",
			cy: "12.5",
			r: ".5",
			fill: "currentColor"
		}],
		["circle", {
			cx: "8.5",
			cy: "7.5",
			r: ".5",
			fill: "currentColor"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panda.js
var Panda;
var init_panda = __esmMin((() => {
	Panda = [
		["path", { d: "M11.25 17.25h1.5L12 18z" }],
		["path", { d: "m15 12 2 2" }],
		["path", { d: "M18 6.5a.5.5 0 0 0-.5-.5" }],
		["path", { d: "M20.69 9.67a4.5 4.5 0 1 0-7.04-5.5 8.35 8.35 0 0 0-3.3 0 4.5 4.5 0 1 0-7.04 5.5C2.49 11.2 2 12.88 2 14.5 2 19.47 6.48 22 12 22s10-2.53 10-7.5c0-1.62-.48-3.3-1.3-4.83" }],
		["path", { d: "M6 6.5a.495.495 0 0 1 .5-.5" }],
		["path", { d: "m9 12-2 2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-bottom-close.js
var PanelBottomClose;
var init_panel_bottom_close = __esmMin((() => {
	PanelBottomClose = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M3 15h18" }],
		["path", { d: "m15 8-3 3-3-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-bottom-dashed.js
var PanelBottomDashed;
var init_panel_bottom_dashed = __esmMin((() => {
	PanelBottomDashed = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M14 15h1" }],
		["path", { d: "M19 15h2" }],
		["path", { d: "M3 15h2" }],
		["path", { d: "M9 15h1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-bottom.js
var PanelBottom;
var init_panel_bottom = __esmMin((() => {
	PanelBottom = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["path", { d: "M3 15h18" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-bottom-open.js
var PanelBottomOpen;
var init_panel_bottom_open = __esmMin((() => {
	PanelBottomOpen = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M3 15h18" }],
		["path", { d: "m9 10 3-3 3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-left-close.js
var PanelLeftClose;
var init_panel_left_close = __esmMin((() => {
	PanelLeftClose = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M9 3v18" }],
		["path", { d: "m16 15-3-3 3-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-left-dashed.js
var PanelLeftDashed;
var init_panel_left_dashed = __esmMin((() => {
	PanelLeftDashed = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M9 14v1" }],
		["path", { d: "M9 19v2" }],
		["path", { d: "M9 3v2" }],
		["path", { d: "M9 9v1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-left-open.js
var PanelLeftOpen;
var init_panel_left_open = __esmMin((() => {
	PanelLeftOpen = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M9 3v18" }],
		["path", { d: "m14 9 3 3-3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-left-right-dashed.js
var PanelLeftRightDashed;
var init_panel_left_right_dashed = __esmMin((() => {
	PanelLeftRightDashed = [
		["path", { d: "M15 10V9" }],
		["path", { d: "M15 15v-1" }],
		["path", { d: "M15 21v-2" }],
		["path", { d: "M15 5V3" }],
		["path", { d: "M9 10V9" }],
		["path", { d: "M9 15v-1" }],
		["path", { d: "M9 21v-2" }],
		["path", { d: "M9 5V3" }],
		["rect", {
			x: "3",
			y: "3",
			width: "18",
			height: "18",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-left.js
var PanelLeft;
var init_panel_left = __esmMin((() => {
	PanelLeft = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["path", { d: "M9 3v18" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-right-close.js
var PanelRightClose;
var init_panel_right_close = __esmMin((() => {
	PanelRightClose = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M15 3v18" }],
		["path", { d: "m8 9 3 3-3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-right-open.js
var PanelRightOpen;
var init_panel_right_open = __esmMin((() => {
	PanelRightOpen = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M15 3v18" }],
		["path", { d: "m10 15-3-3 3-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-right-dashed.js
var PanelRightDashed;
var init_panel_right_dashed = __esmMin((() => {
	PanelRightDashed = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M15 14v1" }],
		["path", { d: "M15 19v2" }],
		["path", { d: "M15 3v2" }],
		["path", { d: "M15 9v1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-top-bottom-dashed.js
var PanelTopBottomDashed;
var init_panel_top_bottom_dashed = __esmMin((() => {
	PanelTopBottomDashed = [
		["path", { d: "M14 15h1" }],
		["path", { d: "M14 9h1" }],
		["path", { d: "M19 15h2" }],
		["path", { d: "M19 9h2" }],
		["path", { d: "M3 15h2" }],
		["path", { d: "M3 9h2" }],
		["path", { d: "M9 15h1" }],
		["path", { d: "M9 9h1" }],
		["rect", {
			x: "3",
			y: "3",
			width: "18",
			height: "18",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-right.js
var PanelRight;
var init_panel_right = __esmMin((() => {
	PanelRight = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["path", { d: "M15 3v18" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-top-close.js
var PanelTopClose;
var init_panel_top_close = __esmMin((() => {
	PanelTopClose = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M3 9h18" }],
		["path", { d: "m9 16 3-3 3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-top-dashed.js
var PanelTopDashed;
var init_panel_top_dashed = __esmMin((() => {
	PanelTopDashed = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M14 9h1" }],
		["path", { d: "M19 9h2" }],
		["path", { d: "M3 9h2" }],
		["path", { d: "M9 9h1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-top-open.js
var PanelTopOpen;
var init_panel_top_open = __esmMin((() => {
	PanelTopOpen = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M3 9h18" }],
		["path", { d: "m15 14-3 3-3-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panel-top.js
var PanelTop;
var init_panel_top = __esmMin((() => {
	PanelTop = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["path", { d: "M3 9h18" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panels-left-bottom.js
var PanelsLeftBottom;
var init_panels_left_bottom = __esmMin((() => {
	PanelsLeftBottom = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M9 3v18" }],
		["path", { d: "M9 15h12" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panels-right-bottom.js
var PanelsRightBottom;
var init_panels_right_bottom = __esmMin((() => {
	PanelsRightBottom = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M3 15h12" }],
		["path", { d: "M15 3v18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/panels-top-left.js
var PanelsTopLeft;
var init_panels_top_left = __esmMin((() => {
	PanelsTopLeft = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M3 9h18" }],
		["path", { d: "M9 21V9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/paperclip.js
var Paperclip;
var init_paperclip = __esmMin((() => {
	Paperclip = [["path", { d: "m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/parentheses.js
var Parentheses;
var init_parentheses = __esmMin((() => {
	Parentheses = [["path", { d: "M8 21s-4-3-4-9 4-9 4-9" }], ["path", { d: "M16 3s4 3 4 9-4 9-4 9" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/parking-meter.js
var ParkingMeter;
var init_parking_meter = __esmMin((() => {
	ParkingMeter = [
		["path", { d: "M11 15h2" }],
		["path", { d: "M12 12v3" }],
		["path", { d: "M12 19v3" }],
		["path", { d: "M15.282 19a1 1 0 0 0 .948-.68l2.37-6.988a7 7 0 1 0-13.2 0l2.37 6.988a1 1 0 0 0 .948.68z" }],
		["path", { d: "M9 9a3 3 0 1 1 6 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/party-popper.js
var PartyPopper;
var init_party_popper = __esmMin((() => {
	PartyPopper = [
		["path", { d: "M5.8 11.3 2 22l10.7-3.79" }],
		["path", { d: "M4 3h.01" }],
		["path", { d: "M22 8h.01" }],
		["path", { d: "M15 2h.01" }],
		["path", { d: "M22 20h.01" }],
		["path", { d: "m22 2-2.24.75a2.9 2.9 0 0 0-1.96 3.12c.1.86-.57 1.63-1.45 1.63h-.38c-.86 0-1.6.6-1.76 1.44L14 10" }],
		["path", { d: "m22 13-.82-.33c-.86-.34-1.82.2-1.98 1.11c-.11.7-.72 1.22-1.43 1.22H17" }],
		["path", { d: "m11 2 .33.82c.34.86-.2 1.82-1.11 1.98C9.52 4.9 9 5.52 9 6.23V7" }],
		["path", { d: "M11 13c1.93 1.93 2.83 4.17 2 5-.83.83-3.07-.07-5-2-1.93-1.93-2.83-4.17-2-5 .83-.83 3.07.07 5 2Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pause.js
var Pause;
var init_pause = __esmMin((() => {
	Pause = [["rect", {
		x: "14",
		y: "3",
		width: "5",
		height: "18",
		rx: "1"
	}], ["rect", {
		x: "5",
		y: "3",
		width: "5",
		height: "18",
		rx: "1"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/paw-print.js
var PawPrint;
var init_paw_print = __esmMin((() => {
	PawPrint = [
		["circle", {
			cx: "11",
			cy: "4",
			r: "2"
		}],
		["circle", {
			cx: "18",
			cy: "8",
			r: "2"
		}],
		["circle", {
			cx: "20",
			cy: "16",
			r: "2"
		}],
		["path", { d: "M9 10a5 5 0 0 1 5 5v3.5a3.5 3.5 0 0 1-6.84 1.045Q6.52 17.48 4.46 16.84A3.5 3.5 0 0 1 5.5 10Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pc-case.js
var PcCase;
var init_pc_case = __esmMin((() => {
	PcCase = [
		["rect", {
			width: "14",
			height: "20",
			x: "5",
			y: "2",
			rx: "2"
		}],
		["path", { d: "M15 14h.01" }],
		["path", { d: "M9 6h6" }],
		["path", { d: "M9 10h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pen-line.js
var PenLine;
var init_pen_line = __esmMin((() => {
	PenLine = [["path", { d: "M13 21h8" }], ["path", { d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pen-off.js
var PenOff;
var init_pen_off = __esmMin((() => {
	PenOff = [
		["path", { d: "m10 10-6.157 6.162a2 2 0 0 0-.5.833l-1.322 4.36a.5.5 0 0 0 .622.624l4.358-1.323a2 2 0 0 0 .83-.5L14 13.982" }],
		["path", { d: "m12.829 7.172 4.359-4.346a1 1 0 1 1 3.986 3.986l-4.353 4.353" }],
		["path", { d: "m2 2 20 20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pen-tool.js
var PenTool;
var init_pen_tool = __esmMin((() => {
	PenTool = [
		["path", { d: "M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z" }],
		["path", { d: "m18 13-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18" }],
		["path", { d: "m2.3 2.3 7.286 7.286" }],
		["circle", {
			cx: "11",
			cy: "11",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pen.js
var Pen;
var init_pen = __esmMin((() => {
	Pen = [["path", { d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pencil-line.js
var PencilLine;
var init_pencil_line = __esmMin((() => {
	PencilLine = [
		["path", { d: "M13 21h8" }],
		["path", { d: "m15 5 4 4" }],
		["path", { d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pencil-off.js
var PencilOff;
var init_pencil_off = __esmMin((() => {
	PencilOff = [
		["path", { d: "m10 10-6.157 6.162a2 2 0 0 0-.5.833l-1.322 4.36a.5.5 0 0 0 .622.624l4.358-1.323a2 2 0 0 0 .83-.5L14 13.982" }],
		["path", { d: "m12.829 7.172 4.359-4.346a1 1 0 1 1 3.986 3.986l-4.353 4.353" }],
		["path", { d: "m15 5 4 4" }],
		["path", { d: "m2 2 20 20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pencil-ruler.js
var PencilRuler;
var init_pencil_ruler = __esmMin((() => {
	PencilRuler = [
		["path", { d: "M13 7 8.7 2.7a2.41 2.41 0 0 0-3.4 0L2.7 5.3a2.41 2.41 0 0 0 0 3.4L7 13" }],
		["path", { d: "m8 6 2-2" }],
		["path", { d: "m18 16 2-2" }],
		["path", { d: "m17 11 4.3 4.3c.94.94.94 2.46 0 3.4l-2.6 2.6c-.94.94-2.46.94-3.4 0L11 17" }],
		["path", { d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z" }],
		["path", { d: "m15 5 4 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pencil.js
var Pencil;
var init_pencil = __esmMin((() => {
	Pencil = [["path", { d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z" }], ["path", { d: "m15 5 4 4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pentagon.js
var Pentagon;
var init_pentagon = __esmMin((() => {
	Pentagon = [["path", { d: "M10.83 2.38a2 2 0 0 1 2.34 0l8 5.74a2 2 0 0 1 .73 2.25l-3.04 9.26a2 2 0 0 1-1.9 1.37H7.04a2 2 0 0 1-1.9-1.37L2.1 10.37a2 2 0 0 1 .73-2.25z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/percent.js
var Percent;
var init_percent = __esmMin((() => {
	Percent = [
		["line", {
			x1: "19",
			x2: "5",
			y1: "5",
			y2: "19"
		}],
		["circle", {
			cx: "6.5",
			cy: "6.5",
			r: "2.5"
		}],
		["circle", {
			cx: "17.5",
			cy: "17.5",
			r: "2.5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/person-standing.js
var PersonStanding;
var init_person_standing = __esmMin((() => {
	PersonStanding = [
		["circle", {
			cx: "12",
			cy: "5",
			r: "1"
		}],
		["path", { d: "m9 20 3-6 3 6" }],
		["path", { d: "m6 8 6 2 6-2" }],
		["path", { d: "M12 10v4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/philippine-peso.js
var PhilippinePeso;
var init_philippine_peso = __esmMin((() => {
	PhilippinePeso = [
		["path", { d: "M20 11H4" }],
		["path", { d: "M20 7H4" }],
		["path", { d: "M7 21V4a1 1 0 0 1 1-1h4a1 1 0 0 1 0 12H7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/phone-call.js
var PhoneCall;
var init_phone_call = __esmMin((() => {
	PhoneCall = [
		["path", { d: "M13 2a9 9 0 0 1 9 9" }],
		["path", { d: "M13 6a5 5 0 0 1 5 5" }],
		["path", { d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/phone-forwarded.js
var PhoneForwarded;
var init_phone_forwarded = __esmMin((() => {
	PhoneForwarded = [
		["path", { d: "M14 6h8" }],
		["path", { d: "m18 2 4 4-4 4" }],
		["path", { d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/phone-incoming.js
var PhoneIncoming;
var init_phone_incoming = __esmMin((() => {
	PhoneIncoming = [
		["path", { d: "M16 2v6h6" }],
		["path", { d: "m22 2-6 6" }],
		["path", { d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/phone-missed.js
var PhoneMissed;
var init_phone_missed = __esmMin((() => {
	PhoneMissed = [
		["path", { d: "m16 2 6 6" }],
		["path", { d: "m22 2-6 6" }],
		["path", { d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/phone-off.js
var PhoneOff;
var init_phone_off = __esmMin((() => {
	PhoneOff = [
		["path", { d: "M10.1 13.9a14 14 0 0 0 3.732 2.668 1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2 18 18 0 0 1-12.728-5.272" }],
		["path", { d: "M22 2 2 22" }],
		["path", { d: "M4.76 13.582A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 .244.473" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/phone-outgoing.js
var PhoneOutgoing;
var init_phone_outgoing = __esmMin((() => {
	PhoneOutgoing = [
		["path", { d: "m16 8 6-6" }],
		["path", { d: "M22 8V2h-6" }],
		["path", { d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/phone.js
var Phone;
var init_phone = __esmMin((() => {
	Phone = [["path", { d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pi.js
var Pi;
var init_pi = __esmMin((() => {
	Pi = [
		["line", {
			x1: "9",
			x2: "9",
			y1: "4",
			y2: "20"
		}],
		["path", { d: "M4 7c0-1.7 1.3-3 3-3h13" }],
		["path", { d: "M18 20c-1.7 0-3-1.3-3-3V4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/piano.js
var Piano;
var init_piano = __esmMin((() => {
	Piano = [
		["path", { d: "M18.5 8c-1.4 0-2.6-.8-3.2-2A6.87 6.87 0 0 0 2 9v11a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8.5C22 9.6 20.4 8 18.5 8" }],
		["path", { d: "M2 14h20" }],
		["path", { d: "M6 14v4" }],
		["path", { d: "M10 14v4" }],
		["path", { d: "M14 14v4" }],
		["path", { d: "M18 14v4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pickaxe.js
var Pickaxe;
var init_pickaxe = __esmMin((() => {
	Pickaxe = [
		["path", { d: "m14 13-8.381 8.38a1 1 0 0 1-3.001-3L11 9.999" }],
		["path", { d: "M15.973 4.027A13 13 0 0 0 5.902 2.373c-1.398.342-1.092 2.158.277 2.601a19.9 19.9 0 0 1 5.822 3.024" }],
		["path", { d: "M16.001 11.999a19.9 19.9 0 0 1 3.024 5.824c.444 1.369 2.26 1.676 2.603.278A13 13 0 0 0 20 8.069" }],
		["path", { d: "M18.352 3.352a1.205 1.205 0 0 0-1.704 0l-5.296 5.296a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l5.296-5.296a1.205 1.205 0 0 0 0-1.704z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/picture-in-picture-2.js
var PictureInPicture2;
var init_picture_in_picture_2 = __esmMin((() => {
	PictureInPicture2 = [["path", { d: "M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4" }], ["rect", {
		width: "10",
		height: "7",
		x: "12",
		y: "13",
		rx: "2"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/picture-in-picture.js
var PictureInPicture;
var init_picture_in_picture = __esmMin((() => {
	PictureInPicture = [
		["path", { d: "M2 10h6V4" }],
		["path", { d: "m2 4 6 6" }],
		["path", { d: "M21 10V7a2 2 0 0 0-2-2h-7" }],
		["path", { d: "M3 14v2a2 2 0 0 0 2 2h3" }],
		["rect", {
			x: "12",
			y: "14",
			width: "10",
			height: "7",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/piggy-bank.js
var PiggyBank;
var init_piggy_bank = __esmMin((() => {
	PiggyBank = [
		["path", { d: "M11 17h3v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3a3.16 3.16 0 0 0 2-2h1a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-1a5 5 0 0 0-2-4V3a4 4 0 0 0-3.2 1.6l-.3.4H11a6 6 0 0 0-6 6v1a5 5 0 0 0 2 4v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1z" }],
		["path", { d: "M16 10h.01" }],
		["path", { d: "M2 8v1a2 2 0 0 0 2 2h1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pilcrow-left.js
var PilcrowLeft;
var init_pilcrow_left = __esmMin((() => {
	PilcrowLeft = [
		["path", { d: "M14 3v11" }],
		["path", { d: "M14 9h-3a3 3 0 0 1 0-6h9" }],
		["path", { d: "M18 3v11" }],
		["path", { d: "M22 18H2l4-4" }],
		["path", { d: "m6 22-4-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pilcrow.js
var Pilcrow;
var init_pilcrow = __esmMin((() => {
	Pilcrow = [
		["path", { d: "M13 4v16" }],
		["path", { d: "M17 4v16" }],
		["path", { d: "M19 4H9.5a4.5 4.5 0 0 0 0 9H13" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pilcrow-right.js
var PilcrowRight;
var init_pilcrow_right = __esmMin((() => {
	PilcrowRight = [
		["path", { d: "M10 3v11" }],
		["path", { d: "M10 9H7a1 1 0 0 1 0-6h8" }],
		["path", { d: "M14 3v11" }],
		["path", { d: "m18 14 4 4H2" }],
		["path", { d: "m22 18-4 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pill-bottle.js
var PillBottle;
var init_pill_bottle = __esmMin((() => {
	PillBottle = [
		["path", { d: "M18 11h-4a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h4" }],
		["path", { d: "M6 7v13a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7" }],
		["rect", {
			width: "16",
			height: "5",
			x: "4",
			y: "2",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pill.js
var Pill;
var init_pill = __esmMin((() => {
	Pill = [["path", { d: "m10.5 20.5 10-10a4.95 4.95 0 1 0-7-7l-10 10a4.95 4.95 0 1 0 7 7Z" }], ["path", { d: "m8.5 8.5 7 7" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pin-off.js
var PinOff;
var init_pin_off = __esmMin((() => {
	PinOff = [
		["path", { d: "M12 17v5" }],
		["path", { d: "M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pin.js
var Pin;
var init_pin = __esmMin((() => {
	Pin = [["path", { d: "M12 17v5" }], ["path", { d: "M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pipette.js
var Pipette;
var init_pipette = __esmMin((() => {
	Pipette = [
		["path", { d: "m12 9-8.414 8.414A2 2 0 0 0 3 18.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 3.828 21h1.344a2 2 0 0 0 1.414-.586L15 12" }],
		["path", { d: "m18 9 .4.4a1 1 0 1 1-3 3l-3.8-3.8a1 1 0 1 1 3-3l.4.4 3.4-3.4a1 1 0 1 1 3 3z" }],
		["path", { d: "m2 22 .414-.414" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pizza.js
var Pizza;
var init_pizza = __esmMin((() => {
	Pizza = [
		["path", { d: "m12 14-1 1" }],
		["path", { d: "m13.75 18.25-1.25 1.42" }],
		["path", { d: "M17.775 5.654a15.68 15.68 0 0 0-12.121 12.12" }],
		["path", { d: "M18.8 9.3a1 1 0 0 0 2.1 7.7" }],
		["path", { d: "M21.964 20.732a1 1 0 0 1-1.232 1.232l-18-5a1 1 0 0 1-.695-1.232A19.68 19.68 0 0 1 15.732 2.037a1 1 0 0 1 1.232.695z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/plane-landing.js
var PlaneLanding;
var init_plane_landing = __esmMin((() => {
	PlaneLanding = [["path", { d: "M2 22h20" }], ["path", { d: "M3.77 10.77 2 9l2-4.5 1.1.55c.55.28.9.84.9 1.45s.35 1.17.9 1.45L8 8.5l3-6 1.05.53a2 2 0 0 1 1.09 1.52l.72 5.4a2 2 0 0 0 1.09 1.52l4.4 2.2c.42.22.78.55 1.01.96l.6 1.03c.49.88-.06 1.98-1.06 2.1l-1.18.15c-.47.06-.95-.02-1.37-.24L4.29 11.15a2 2 0 0 1-.52-.38Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/plane-takeoff.js
var PlaneTakeoff;
var init_plane_takeoff = __esmMin((() => {
	PlaneTakeoff = [["path", { d: "M2 22h20" }], ["path", { d: "M6.36 17.4 4 17l-2-4 1.1-.55a2 2 0 0 1 1.8 0l.17.1a2 2 0 0 0 1.8 0L8 12 5 6l.9-.45a2 2 0 0 1 2.09.2l4.02 3a2 2 0 0 0 2.1.2l4.19-2.06a2.41 2.41 0 0 1 1.73-.17L21 7a1.4 1.4 0 0 1 .87 1.99l-.38.76c-.23.46-.6.84-1.07 1.08L7.58 17.2a2 2 0 0 1-1.22.18Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/plane.js
var Plane;
var init_plane = __esmMin((() => {
	Plane = [["path", { d: "M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/play.js
var Play;
var init_play = __esmMin((() => {
	Play = [["path", { d: "M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/plug-2.js
var Plug2;
var init_plug_2 = __esmMin((() => {
	Plug2 = [
		["path", { d: "M9 2v6" }],
		["path", { d: "M15 2v6" }],
		["path", { d: "M12 17v5" }],
		["path", { d: "M5 8h14" }],
		["path", { d: "M6 11V8h12v3a6 6 0 1 1-12 0Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/plug-zap.js
var PlugZap;
var init_plug_zap = __esmMin((() => {
	PlugZap = [
		["path", { d: "M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z" }],
		["path", { d: "m2 22 3-3" }],
		["path", { d: "M7.5 13.5 10 11" }],
		["path", { d: "M10.5 16.5 13 14" }],
		["path", { d: "m18 3-4 4h6l-4 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/plug.js
var Plug;
var init_plug = __esmMin((() => {
	Plug = [
		["path", { d: "M12 22v-5" }],
		["path", { d: "M15 8V2" }],
		["path", { d: "M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z" }],
		["path", { d: "M9 8V2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/plus.js
var Plus;
var init_plus = __esmMin((() => {
	Plus = [["path", { d: "M5 12h14" }], ["path", { d: "M12 5v14" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pocket-knife.js
var PocketKnife;
var init_pocket_knife = __esmMin((() => {
	PocketKnife = [
		["path", { d: "M3 2v1c0 1 2 1 2 2S3 6 3 7s2 1 2 2-2 1-2 2 2 1 2 2" }],
		["path", { d: "M18 6h.01" }],
		["path", { d: "M6 18h.01" }],
		["path", { d: "M20.83 8.83a4 4 0 0 0-5.66-5.66l-12 12a4 4 0 1 0 5.66 5.66Z" }],
		["path", { d: "M18 11.66V22a4 4 0 0 0 4-4V6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pocket.js
var Pocket;
var init_pocket = __esmMin((() => {
	Pocket = [["path", { d: "M20 3a2 2 0 0 1 2 2v6a1 1 0 0 1-20 0V5a2 2 0 0 1 2-2z" }], ["path", { d: "m8 10 4 4 4-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/podcast.js
var Podcast;
var init_podcast = __esmMin((() => {
	Podcast = [
		["path", {
			d: "M13 17a1 1 0 1 0-2 0l.5 4.5a0.5 0.5 0 0 0 1 0z",
			fill: "currentColor"
		}],
		["path", { d: "M16.85 18.58a9 9 0 1 0-9.7 0" }],
		["path", { d: "M8 14a5 5 0 1 1 8 0" }],
		["circle", {
			cx: "12",
			cy: "11",
			r: "1",
			fill: "currentColor"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pointer-off.js
var PointerOff;
var init_pointer_off = __esmMin((() => {
	PointerOff = [
		["path", { d: "M10 4.5V4a2 2 0 0 0-2.41-1.957" }],
		["path", { d: "M13.9 8.4a2 2 0 0 0-1.26-1.295" }],
		["path", { d: "M21.7 16.2A8 8 0 0 0 22 14v-3a2 2 0 1 0-4 0v-1a2 2 0 0 0-3.63-1.158" }],
		["path", { d: "m7 15-1.8-1.8a2 2 0 0 0-2.79 2.86L6 19.7a7.74 7.74 0 0 0 6 2.3h2a8 8 0 0 0 5.657-2.343" }],
		["path", { d: "M6 6v8" }],
		["path", { d: "m2 2 20 20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pointer.js
var Pointer;
var init_pointer = __esmMin((() => {
	Pointer = [
		["path", { d: "M22 14a8 8 0 0 1-8 8" }],
		["path", { d: "M18 11v-1a2 2 0 0 0-2-2a2 2 0 0 0-2 2" }],
		["path", { d: "M14 10V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1" }],
		["path", { d: "M10 9.5V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v10" }],
		["path", { d: "M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/popcorn.js
var Popcorn;
var init_popcorn = __esmMin((() => {
	Popcorn = [
		["path", { d: "M18 8a2 2 0 0 0 0-4 2 2 0 0 0-4 0 2 2 0 0 0-4 0 2 2 0 0 0-4 0 2 2 0 0 0 0 4" }],
		["path", { d: "M10 22 9 8" }],
		["path", { d: "m14 22 1-14" }],
		["path", { d: "M20 8c.5 0 .9.4.8 1l-2.6 12c-.1.5-.7 1-1.2 1H7c-.6 0-1.1-.4-1.2-1L3.2 9c-.1-.6.3-1 .8-1Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/popsicle.js
var Popsicle;
var init_popsicle = __esmMin((() => {
	Popsicle = [["path", { d: "M18.6 14.4c.8-.8.8-2 0-2.8l-8.1-8.1a4.95 4.95 0 1 0-7.1 7.1l8.1 8.1c.9.7 2.1.7 2.9-.1Z" }], ["path", { d: "m22 22-5.5-5.5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pound-sterling.js
var PoundSterling;
var init_pound_sterling = __esmMin((() => {
	PoundSterling = [
		["path", { d: "M18 7c0-5.333-8-5.333-8 0" }],
		["path", { d: "M10 7v14" }],
		["path", { d: "M6 21h12" }],
		["path", { d: "M6 13h10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/power-off.js
var PowerOff;
var init_power_off = __esmMin((() => {
	PowerOff = [
		["path", { d: "M18.36 6.64A9 9 0 0 1 20.77 15" }],
		["path", { d: "M6.16 6.16a9 9 0 1 0 12.68 12.68" }],
		["path", { d: "M12 2v4" }],
		["path", { d: "m2 2 20 20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/power.js
var Power;
var init_power = __esmMin((() => {
	Power = [["path", { d: "M12 2v10" }], ["path", { d: "M18.4 6.6a9 9 0 1 1-12.77.04" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/presentation.js
var Presentation;
var init_presentation = __esmMin((() => {
	Presentation = [
		["path", { d: "M2 3h20" }],
		["path", { d: "M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3" }],
		["path", { d: "m7 21 5-5 5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/printer-check.js
var PrinterCheck;
var init_printer_check = __esmMin((() => {
	PrinterCheck = [
		["path", { d: "M13.5 22H7a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v.5" }],
		["path", { d: "m16 19 2 2 4-4" }],
		["path", { d: "M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v2" }],
		["path", { d: "M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/projector.js
var Projector;
var init_projector = __esmMin((() => {
	Projector = [
		["path", { d: "M5 7 3 5" }],
		["path", { d: "M9 6V3" }],
		["path", { d: "m13 7 2-2" }],
		["circle", {
			cx: "9",
			cy: "13",
			r: "3"
		}],
		["path", { d: "M11.83 12H20a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h2.17" }],
		["path", { d: "M16 16h2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/printer.js
var Printer;
var init_printer = __esmMin((() => {
	Printer = [
		["path", { d: "M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2" }],
		["path", { d: "M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6" }],
		["rect", {
			x: "6",
			y: "14",
			width: "12",
			height: "8",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/proportions.js
var Proportions;
var init_proportions = __esmMin((() => {
	Proportions = [
		["rect", {
			width: "20",
			height: "16",
			x: "2",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M12 9v11" }],
		["path", { d: "M2 9h13a2 2 0 0 1 2 2v9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/puzzle.js
var Puzzle;
var init_puzzle = __esmMin((() => {
	Puzzle = [["path", { d: "M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/pyramid.js
var Pyramid;
var init_pyramid = __esmMin((() => {
	Pyramid = [["path", { d: "M2.5 16.88a1 1 0 0 1-.32-1.43l9-13.02a1 1 0 0 1 1.64 0l9 13.01a1 1 0 0 1-.32 1.44l-8.51 4.86a2 2 0 0 1-1.98 0Z" }], ["path", { d: "M12 2v20" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/qr-code.js
var QrCode;
var init_qr_code = __esmMin((() => {
	QrCode = [
		["rect", {
			width: "5",
			height: "5",
			x: "3",
			y: "3",
			rx: "1"
		}],
		["rect", {
			width: "5",
			height: "5",
			x: "16",
			y: "3",
			rx: "1"
		}],
		["rect", {
			width: "5",
			height: "5",
			x: "3",
			y: "16",
			rx: "1"
		}],
		["path", { d: "M21 16h-3a2 2 0 0 0-2 2v3" }],
		["path", { d: "M21 21v.01" }],
		["path", { d: "M12 7v3a2 2 0 0 1-2 2H7" }],
		["path", { d: "M3 12h.01" }],
		["path", { d: "M12 3h.01" }],
		["path", { d: "M12 16v.01" }],
		["path", { d: "M16 12h1" }],
		["path", { d: "M21 12v.01" }],
		["path", { d: "M12 21v-1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/quote.js
var Quote;
var init_quote = __esmMin((() => {
	Quote = [["path", { d: "M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z" }], ["path", { d: "M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rabbit.js
var Rabbit;
var init_rabbit = __esmMin((() => {
	Rabbit = [
		["path", { d: "M13 16a3 3 0 0 1 2.24 5" }],
		["path", { d: "M18 12h.01" }],
		["path", { d: "M18 21h-8a4 4 0 0 1-4-4 7 7 0 0 1 7-7h.2L9.6 6.4a1 1 0 1 1 2.8-2.8L15.8 7h.2c3.3 0 6 2.7 6 6v1a2 2 0 0 1-2 2h-1a3 3 0 0 0-3 3" }],
		["path", { d: "M20 8.54V4a2 2 0 1 0-4 0v3" }],
		["path", { d: "M7.612 12.524a3 3 0 1 0-1.6 4.3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/radar.js
var Radar;
var init_radar = __esmMin((() => {
	Radar = [
		["path", { d: "M19.07 4.93A10 10 0 0 0 6.99 3.34" }],
		["path", { d: "M4 6h.01" }],
		["path", { d: "M2.29 9.62A10 10 0 1 0 21.31 8.35" }],
		["path", { d: "M16.24 7.76A6 6 0 1 0 8.23 16.67" }],
		["path", { d: "M12 18h.01" }],
		["path", { d: "M17.99 11.66A6 6 0 0 1 15.77 16.67" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "2"
		}],
		["path", { d: "m13.41 10.59 5.66-5.66" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/radiation.js
var Radiation;
var init_radiation = __esmMin((() => {
	Radiation = [
		["path", { d: "M12 12h.01" }],
		["path", { d: "M14 15.4641a4 4 0 0 1-4 0L7.52786 19.74597 A 1 1 0 0 0 7.99303 21.16211 10 10 0 0 0 16.00697 21.16211 1 1 0 0 0 16.47214 19.74597z" }],
		["path", { d: "M16 12a4 4 0 0 0-2-3.464l2.472-4.282a1 1 0 0 1 1.46-.305 10 10 0 0 1 4.006 6.94A1 1 0 0 1 21 12z" }],
		["path", { d: "M8 12a4 4 0 0 1 2-3.464L7.528 4.254a1 1 0 0 0-1.46-.305 10 10 0 0 0-4.006 6.94A1 1 0 0 0 3 12z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/radical.js
var Radical;
var init_radical = __esmMin((() => {
	Radical = [["path", { d: "M3 12h3.28a1 1 0 0 1 .948.684l2.298 7.934a.5.5 0 0 0 .96-.044L13.82 4.771A1 1 0 0 1 14.792 4H21" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/radio-receiver.js
var RadioReceiver;
var init_radio_receiver = __esmMin((() => {
	RadioReceiver = [
		["path", { d: "M5 16v2" }],
		["path", { d: "M19 16v2" }],
		["rect", {
			width: "20",
			height: "8",
			x: "2",
			y: "8",
			rx: "2"
		}],
		["path", { d: "M18 12h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/radio.js
var Radio;
var init_radio = __esmMin((() => {
	Radio = [
		["path", { d: "M16.247 7.761a6 6 0 0 1 0 8.478" }],
		["path", { d: "M19.075 4.933a10 10 0 0 1 0 14.134" }],
		["path", { d: "M4.925 19.067a10 10 0 0 1 0-14.134" }],
		["path", { d: "M7.753 16.239a6 6 0 0 1 0-8.478" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/radius.js
var Radius;
var init_radius = __esmMin((() => {
	Radius = [
		["path", { d: "M20.34 17.52a10 10 0 1 0-2.82 2.82" }],
		["circle", {
			cx: "19",
			cy: "19",
			r: "2"
		}],
		["path", { d: "m13.41 13.41 4.18 4.18" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/radio-tower.js
var RadioTower;
var init_radio_tower = __esmMin((() => {
	RadioTower = [
		["path", { d: "M4.9 16.1C1 12.2 1 5.8 4.9 1.9" }],
		["path", { d: "M7.8 4.7a6.14 6.14 0 0 0-.8 7.5" }],
		["circle", {
			cx: "12",
			cy: "9",
			r: "2"
		}],
		["path", { d: "M16.2 4.8c2 2 2.26 5.11.8 7.47" }],
		["path", { d: "M19.1 1.9a9.96 9.96 0 0 1 0 14.1" }],
		["path", { d: "M9.5 18h5" }],
		["path", { d: "m8 22 4-11 4 11" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rail-symbol.js
var RailSymbol;
var init_rail_symbol = __esmMin((() => {
	RailSymbol = [
		["path", { d: "M5 15h14" }],
		["path", { d: "M5 9h14" }],
		["path", { d: "m14 20-5-5 6-6-5-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rainbow.js
var Rainbow;
var init_rainbow = __esmMin((() => {
	Rainbow = [
		["path", { d: "M22 17a10 10 0 0 0-20 0" }],
		["path", { d: "M6 17a6 6 0 0 1 12 0" }],
		["path", { d: "M10 17a2 2 0 0 1 4 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rat.js
var Rat;
var init_rat = __esmMin((() => {
	Rat = [
		["path", { d: "M13 22H4a2 2 0 0 1 0-4h12" }],
		["path", { d: "M13.236 18a3 3 0 0 0-2.2-5" }],
		["path", { d: "M16 9h.01" }],
		["path", { d: "M16.82 3.94a3 3 0 1 1 3.237 4.868l1.815 2.587a1.5 1.5 0 0 1-1.5 2.1l-2.872-.453a3 3 0 0 0-3.5 3" }],
		["path", { d: "M17 4.988a3 3 0 1 0-5.2 2.052A7 7 0 0 0 4 14.015 4 4 0 0 0 8 18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ratio.js
var Ratio;
var init_ratio = __esmMin((() => {
	Ratio = [["rect", {
		width: "12",
		height: "20",
		x: "6",
		y: "2",
		rx: "2"
	}], ["rect", {
		width: "20",
		height: "12",
		x: "2",
		y: "6",
		rx: "2"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/receipt-cent.js
var ReceiptCent;
var init_receipt_cent = __esmMin((() => {
	ReceiptCent = [
		["path", { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z" }],
		["path", { d: "M12 6.5v11" }],
		["path", { d: "M15 9.4a4 4 0 1 0 0 5.2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/receipt-euro.js
var ReceiptEuro;
var init_receipt_euro = __esmMin((() => {
	ReceiptEuro = [
		["path", { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z" }],
		["path", { d: "M8 12h5" }],
		["path", { d: "M16 9.5a4 4 0 1 0 0 5.2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/receipt-indian-rupee.js
var ReceiptIndianRupee;
var init_receipt_indian_rupee = __esmMin((() => {
	ReceiptIndianRupee = [
		["path", { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z" }],
		["path", { d: "M8 7h8" }],
		["path", { d: "M12 17.5 8 15h1a4 4 0 0 0 0-8" }],
		["path", { d: "M8 11h8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/receipt-japanese-yen.js
var ReceiptJapaneseYen;
var init_receipt_japanese_yen = __esmMin((() => {
	ReceiptJapaneseYen = [
		["path", { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z" }],
		["path", { d: "m12 10 3-3" }],
		["path", { d: "m9 7 3 3v7.5" }],
		["path", { d: "M9 11h6" }],
		["path", { d: "M9 15h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/receipt-pound-sterling.js
var ReceiptPoundSterling;
var init_receipt_pound_sterling = __esmMin((() => {
	ReceiptPoundSterling = [
		["path", { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z" }],
		["path", { d: "M8 13h5" }],
		["path", { d: "M10 17V9.5a2.5 2.5 0 0 1 5 0" }],
		["path", { d: "M8 17h7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/receipt-russian-ruble.js
var ReceiptRussianRuble;
var init_receipt_russian_ruble = __esmMin((() => {
	ReceiptRussianRuble = [
		["path", { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z" }],
		["path", { d: "M8 15h5" }],
		["path", { d: "M8 11h5a2 2 0 1 0 0-4h-3v10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/receipt-swiss-franc.js
var ReceiptSwissFranc;
var init_receipt_swiss_franc = __esmMin((() => {
	ReceiptSwissFranc = [
		["path", { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z" }],
		["path", { d: "M10 17V7h5" }],
		["path", { d: "M10 11h4" }],
		["path", { d: "M8 15h5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/receipt-text.js
var ReceiptText;
var init_receipt_text = __esmMin((() => {
	ReceiptText = [
		["path", { d: "M13 16H8" }],
		["path", { d: "M14 8H8" }],
		["path", { d: "M16 12H8" }],
		["path", { d: "M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/receipt-turkish-lira.js
var ReceiptTurkishLira;
var init_receipt_turkish_lira = __esmMin((() => {
	ReceiptTurkishLira = [
		["path", { d: "M10 6.5v11a5.5 5.5 0 0 0 5.5-5.5" }],
		["path", { d: "m14 8-6 3" }],
		["path", { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/receipt.js
var Receipt;
var init_receipt = __esmMin((() => {
	Receipt = [
		["path", { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z" }],
		["path", { d: "M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8" }],
		["path", { d: "M12 17.5v-11" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rectangle-circle.js
var RectangleCircle;
var init_rectangle_circle = __esmMin((() => {
	RectangleCircle = [["path", { d: "M14 4v16H3a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z" }], ["circle", {
		cx: "14",
		cy: "12",
		r: "8"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rectangle-ellipsis.js
var RectangleEllipsis;
var init_rectangle_ellipsis = __esmMin((() => {
	RectangleEllipsis = [
		["rect", {
			width: "20",
			height: "12",
			x: "2",
			y: "6",
			rx: "2"
		}],
		["path", { d: "M12 12h.01" }],
		["path", { d: "M17 12h.01" }],
		["path", { d: "M7 12h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rectangle-goggles.js
var RectangleGoggles;
var init_rectangle_goggles = __esmMin((() => {
	RectangleGoggles = [["path", { d: "M20 6a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-4a2 2 0 0 1-1.6-.8l-1.6-2.13a1 1 0 0 0-1.6 0L9.6 17.2A2 2 0 0 1 8 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rectangle-horizontal.js
var RectangleHorizontal;
var init_rectangle_horizontal = __esmMin((() => {
	RectangleHorizontal = [["rect", {
		width: "20",
		height: "12",
		x: "2",
		y: "6",
		rx: "2"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rectangle-vertical.js
var RectangleVertical;
var init_rectangle_vertical = __esmMin((() => {
	RectangleVertical = [["rect", {
		width: "12",
		height: "20",
		x: "6",
		y: "2",
		rx: "2"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/recycle.js
var Recycle;
var init_recycle = __esmMin((() => {
	Recycle = [
		["path", { d: "M7 19H4.815a1.83 1.83 0 0 1-1.57-.881 1.785 1.785 0 0 1-.004-1.784L7.196 9.5" }],
		["path", { d: "M11 19h8.203a1.83 1.83 0 0 0 1.556-.89 1.784 1.784 0 0 0 0-1.775l-1.226-2.12" }],
		["path", { d: "m14 16-3 3 3 3" }],
		["path", { d: "M8.293 13.596 7.196 9.5 3.1 10.598" }],
		["path", { d: "m9.344 5.811 1.093-1.892A1.83 1.83 0 0 1 11.985 3a1.784 1.784 0 0 1 1.546.888l3.943 6.843" }],
		["path", { d: "m13.378 9.633 4.096 1.098 1.097-4.096" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/redo-2.js
var Redo2;
var init_redo_2 = __esmMin((() => {
	Redo2 = [["path", { d: "m15 14 5-5-5-5" }], ["path", { d: "M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/redo-dot.js
var RedoDot;
var init_redo_dot = __esmMin((() => {
	RedoDot = [
		["circle", {
			cx: "12",
			cy: "17",
			r: "1"
		}],
		["path", { d: "M21 7v6h-6" }],
		["path", { d: "M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/redo.js
var Redo;
var init_redo = __esmMin((() => {
	Redo = [["path", { d: "M21 7v6h-6" }], ["path", { d: "M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/refresh-ccw-dot.js
var RefreshCcwDot;
var init_refresh_ccw_dot = __esmMin((() => {
	RefreshCcwDot = [
		["path", { d: "M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" }],
		["path", { d: "M3 3v5h5" }],
		["path", { d: "M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16" }],
		["path", { d: "M16 16h5v5" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/refresh-ccw.js
var RefreshCcw;
var init_refresh_ccw = __esmMin((() => {
	RefreshCcw = [
		["path", { d: "M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" }],
		["path", { d: "M3 3v5h5" }],
		["path", { d: "M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16" }],
		["path", { d: "M16 16h5v5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/refresh-cw-off.js
var RefreshCwOff;
var init_refresh_cw_off = __esmMin((() => {
	RefreshCwOff = [
		["path", { d: "M21 8L18.74 5.74A9.75 9.75 0 0 0 12 3C11 3 10.03 3.16 9.13 3.47" }],
		["path", { d: "M8 16H3v5" }],
		["path", { d: "M3 12C3 9.51 4 7.26 5.64 5.64" }],
		["path", { d: "m3 16 2.26 2.26A9.75 9.75 0 0 0 12 21c2.49 0 4.74-1 6.36-2.64" }],
		["path", { d: "M21 12c0 1-.16 1.97-.47 2.87" }],
		["path", { d: "M21 3v5h-5" }],
		["path", { d: "M22 22 2 2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/refresh-cw.js
var RefreshCw;
var init_refresh_cw = __esmMin((() => {
	RefreshCw = [
		["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8" }],
		["path", { d: "M21 3v5h-5" }],
		["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16" }],
		["path", { d: "M8 16H3v5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/refrigerator.js
var Refrigerator;
var init_refrigerator = __esmMin((() => {
	Refrigerator = [
		["path", { d: "M5 6a4 4 0 0 1 4-4h6a4 4 0 0 1 4 4v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6Z" }],
		["path", { d: "M5 10h14" }],
		["path", { d: "M15 7v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/regex.js
var Regex;
var init_regex = __esmMin((() => {
	Regex = [
		["path", { d: "M17 3v10" }],
		["path", { d: "m12.67 5.5 8.66 5" }],
		["path", { d: "m12.67 10.5 8.66-5" }],
		["path", { d: "M9 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/remove-formatting.js
var RemoveFormatting;
var init_remove_formatting = __esmMin((() => {
	RemoveFormatting = [
		["path", { d: "M4 7V4h16v3" }],
		["path", { d: "M5 20h6" }],
		["path", { d: "M13 4 8 20" }],
		["path", { d: "m15 15 5 5" }],
		["path", { d: "m20 15-5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/repeat-1.js
var Repeat1;
var init_repeat_1 = __esmMin((() => {
	Repeat1 = [
		["path", { d: "m17 2 4 4-4 4" }],
		["path", { d: "M3 11v-1a4 4 0 0 1 4-4h14" }],
		["path", { d: "m7 22-4-4 4-4" }],
		["path", { d: "M21 13v1a4 4 0 0 1-4 4H3" }],
		["path", { d: "M11 10h1v4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/repeat-2.js
var Repeat2;
var init_repeat_2 = __esmMin((() => {
	Repeat2 = [
		["path", { d: "m2 9 3-3 3 3" }],
		["path", { d: "M13 18H7a2 2 0 0 1-2-2V6" }],
		["path", { d: "m22 15-3 3-3-3" }],
		["path", { d: "M11 6h6a2 2 0 0 1 2 2v10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/repeat.js
var Repeat;
var init_repeat$2 = __esmMin((() => {
	Repeat = [
		["path", { d: "m17 2 4 4-4 4" }],
		["path", { d: "M3 11v-1a4 4 0 0 1 4-4h14" }],
		["path", { d: "m7 22-4-4 4-4" }],
		["path", { d: "M21 13v1a4 4 0 0 1-4 4H3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/replace-all.js
var ReplaceAll;
var init_replace_all = __esmMin((() => {
	ReplaceAll = [
		["path", { d: "M14 14a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1" }],
		["path", { d: "M14 4a1 1 0 0 1 1-1" }],
		["path", { d: "M15 10a1 1 0 0 1-1-1" }],
		["path", { d: "M19 14a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1" }],
		["path", { d: "M21 4a1 1 0 0 0-1-1" }],
		["path", { d: "M21 9a1 1 0 0 1-1 1" }],
		["path", { d: "m3 7 3 3 3-3" }],
		["path", { d: "M6 10V5a2 2 0 0 1 2-2h2" }],
		["rect", {
			x: "3",
			y: "14",
			width: "7",
			height: "7",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/replace.js
var Replace;
var init_replace = __esmMin((() => {
	Replace = [
		["path", { d: "M14 4a1 1 0 0 1 1-1" }],
		["path", { d: "M15 10a1 1 0 0 1-1-1" }],
		["path", { d: "M21 4a1 1 0 0 0-1-1" }],
		["path", { d: "M21 9a1 1 0 0 1-1 1" }],
		["path", { d: "m3 7 3 3 3-3" }],
		["path", { d: "M6 10V5a2 2 0 0 1 2-2h2" }],
		["rect", {
			x: "3",
			y: "14",
			width: "7",
			height: "7",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/reply-all.js
var ReplyAll;
var init_reply_all = __esmMin((() => {
	ReplyAll = [
		["path", { d: "m12 17-5-5 5-5" }],
		["path", { d: "M22 18v-2a4 4 0 0 0-4-4H7" }],
		["path", { d: "m7 17-5-5 5-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/reply.js
var Reply;
var init_reply = __esmMin((() => {
	Reply = [["path", { d: "M20 18v-2a4 4 0 0 0-4-4H4" }], ["path", { d: "m9 17-5-5 5-5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rewind.js
var Rewind;
var init_rewind = __esmMin((() => {
	Rewind = [["path", { d: "M12 6a2 2 0 0 0-3.414-1.414l-6 6a2 2 0 0 0 0 2.828l6 6A2 2 0 0 0 12 18z" }], ["path", { d: "M22 6a2 2 0 0 0-3.414-1.414l-6 6a2 2 0 0 0 0 2.828l6 6A2 2 0 0 0 22 18z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ribbon.js
var Ribbon;
var init_ribbon = __esmMin((() => {
	Ribbon = [
		["path", { d: "M12 11.22C11 9.997 10 9 10 8a2 2 0 0 1 4 0c0 1-.998 2.002-2.01 3.22" }],
		["path", { d: "m12 18 2.57-3.5" }],
		["path", { d: "M6.243 9.016a7 7 0 0 1 11.507-.009" }],
		["path", { d: "M9.35 14.53 12 11.22" }],
		["path", { d: "M9.35 14.53C7.728 12.246 6 10.221 6 7a6 5 0 0 1 12 0c-.005 3.22-1.778 5.235-3.43 7.5l3.557 4.527a1 1 0 0 1-.203 1.43l-1.894 1.36a1 1 0 0 1-1.384-.215L12 18l-2.679 3.593a1 1 0 0 1-1.39.213l-1.865-1.353a1 1 0 0 1-.203-1.422z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rocket.js
var Rocket;
var init_rocket = __esmMin((() => {
	Rocket = [
		["path", { d: "M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z" }],
		["path", { d: "m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z" }],
		["path", { d: "M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0" }],
		["path", { d: "M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rocking-chair.js
var RockingChair;
var init_rocking_chair = __esmMin((() => {
	RockingChair = [
		["polyline", { points: "3.5 2 6.5 12.5 18 12.5" }],
		["line", {
			x1: "9.5",
			x2: "5.5",
			y1: "12.5",
			y2: "20"
		}],
		["line", {
			x1: "15",
			x2: "18.5",
			y1: "12.5",
			y2: "20"
		}],
		["path", { d: "M2.75 18a13 13 0 0 0 18.5 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/roller-coaster.js
var RollerCoaster;
var init_roller_coaster = __esmMin((() => {
	RollerCoaster = [
		["path", { d: "M6 19V5" }],
		["path", { d: "M10 19V6.8" }],
		["path", { d: "M14 19v-7.8" }],
		["path", { d: "M18 5v4" }],
		["path", { d: "M18 19v-6" }],
		["path", { d: "M22 19V9" }],
		["path", { d: "M2 19V9a4 4 0 0 1 4-4c2 0 4 1.33 6 4s4 4 6 4a4 4 0 1 0-3-6.65" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rose.js
var Rose;
var init_rose = __esmMin((() => {
	Rose = [
		["path", { d: "M17 10h-1a4 4 0 1 1 4-4v.534" }],
		["path", { d: "M17 6h1a4 4 0 0 1 1.42 7.74l-2.29.87a6 6 0 0 1-5.339-10.68l2.069-1.31" }],
		["path", { d: "M4.5 17c2.8-.5 4.4 0 5.5.8s1.8 2.2 2.3 3.7c-2 .4-3.5.4-4.8-.3-1.2-.6-2.3-1.9-3-4.2" }],
		["path", { d: "M9.77 12C4 15 2 22 2 22" }],
		["circle", {
			cx: "17",
			cy: "8",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rotate-3d.js
var Rotate3d;
var init_rotate_3d = __esmMin((() => {
	Rotate3d = [
		["path", { d: "M16.466 7.5C15.643 4.237 13.952 2 12 2 9.239 2 7 6.477 7 12s2.239 10 5 10c.342 0 .677-.069 1-.2" }],
		["path", { d: "m15.194 13.707 3.814 1.86-1.86 3.814" }],
		["path", { d: "M19 15.57c-1.804.885-4.274 1.43-7 1.43-5.523 0-10-2.239-10-5s4.477-5 10-5c4.838 0 8.873 1.718 9.8 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rotate-ccw-square.js
var RotateCcwSquare;
var init_rotate_ccw_square = __esmMin((() => {
	RotateCcwSquare = [
		["path", { d: "M20 9V7a2 2 0 0 0-2-2h-6" }],
		["path", { d: "m15 2-3 3 3 3" }],
		["path", { d: "M20 13v5a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rotate-ccw-key.js
var RotateCcwKey;
var init_rotate_ccw_key = __esmMin((() => {
	RotateCcwKey = [
		["path", { d: "m14.5 9.5 1 1" }],
		["path", { d: "m15.5 8.5-4 4" }],
		["path", { d: "M3 12a9 9 0 1 0 9-9 9.74 9.74 0 0 0-6.74 2.74L3 8" }],
		["path", { d: "M3 3v5h5" }],
		["circle", {
			cx: "10",
			cy: "14",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rotate-ccw.js
var RotateCcw;
var init_rotate_ccw = __esmMin((() => {
	RotateCcw = [["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" }], ["path", { d: "M3 3v5h5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rotate-cw-square.js
var RotateCwSquare;
var init_rotate_cw_square = __esmMin((() => {
	RotateCwSquare = [
		["path", { d: "M12 5H6a2 2 0 0 0-2 2v3" }],
		["path", { d: "m9 8 3-3-3-3" }],
		["path", { d: "M4 14v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rotate-cw.js
var RotateCw;
var init_rotate_cw = __esmMin((() => {
	RotateCw = [["path", { d: "M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8" }], ["path", { d: "M21 3v5h-5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/route-off.js
var RouteOff;
var init_route_off = __esmMin((() => {
	RouteOff = [
		["circle", {
			cx: "6",
			cy: "19",
			r: "3"
		}],
		["path", { d: "M9 19h8.5c.4 0 .9-.1 1.3-.2" }],
		["path", { d: "M5.2 5.2A3.5 3.53 0 0 0 6.5 12H12" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M21 15.3a3.5 3.5 0 0 0-3.3-3.3" }],
		["path", { d: "M15 5h-4.3" }],
		["circle", {
			cx: "18",
			cy: "5",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/route.js
var Route;
var init_route = __esmMin((() => {
	Route = [
		["circle", {
			cx: "6",
			cy: "19",
			r: "3"
		}],
		["path", { d: "M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15" }],
		["circle", {
			cx: "18",
			cy: "5",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rows-2.js
var Rows2;
var init_rows_2 = __esmMin((() => {
	Rows2 = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["path", { d: "M3 12h18" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/router.js
var Router;
var init_router = __esmMin((() => {
	Router = [
		["rect", {
			width: "20",
			height: "8",
			x: "2",
			y: "14",
			rx: "2"
		}],
		["path", { d: "M6.01 18H6" }],
		["path", { d: "M10.01 18H10" }],
		["path", { d: "M15 10v4" }],
		["path", { d: "M17.84 7.17a4 4 0 0 0-5.66 0" }],
		["path", { d: "M20.66 4.34a8 8 0 0 0-11.31 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rows-3.js
var Rows3;
var init_rows_3 = __esmMin((() => {
	Rows3 = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M21 9H3" }],
		["path", { d: "M21 15H3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rows-4.js
var Rows4;
var init_rows_4 = __esmMin((() => {
	Rows4 = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M21 7.5H3" }],
		["path", { d: "M21 12H3" }],
		["path", { d: "M21 16.5H3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/rss.js
var Rss;
var init_rss = __esmMin((() => {
	Rss = [
		["path", { d: "M4 11a9 9 0 0 1 9 9" }],
		["path", { d: "M4 4a16 16 0 0 1 16 16" }],
		["circle", {
			cx: "5",
			cy: "19",
			r: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ruler-dimension-line.js
var RulerDimensionLine;
var init_ruler_dimension_line = __esmMin((() => {
	RulerDimensionLine = [
		["path", { d: "M10 15v-3" }],
		["path", { d: "M14 15v-3" }],
		["path", { d: "M18 15v-3" }],
		["path", { d: "M2 8V4" }],
		["path", { d: "M22 6H2" }],
		["path", { d: "M22 8V4" }],
		["path", { d: "M6 15v-3" }],
		["rect", {
			x: "2",
			y: "12",
			width: "20",
			height: "8",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ruler.js
var Ruler;
var init_ruler = __esmMin((() => {
	Ruler = [
		["path", { d: "M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z" }],
		["path", { d: "m14.5 12.5 2-2" }],
		["path", { d: "m11.5 9.5 2-2" }],
		["path", { d: "m8.5 6.5 2-2" }],
		["path", { d: "m17.5 15.5 2-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/russian-ruble.js
var RussianRuble;
var init_russian_ruble = __esmMin((() => {
	RussianRuble = [["path", { d: "M6 11h8a4 4 0 0 0 0-8H9v18" }], ["path", { d: "M6 15h8" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sailboat.js
var Sailboat;
var init_sailboat = __esmMin((() => {
	Sailboat = [
		["path", { d: "M10 2v15" }],
		["path", { d: "M7 22a4 4 0 0 1-4-4 1 1 0 0 1 1-1h16a1 1 0 0 1 1 1 4 4 0 0 1-4 4z" }],
		["path", { d: "M9.159 2.46a1 1 0 0 1 1.521-.193l9.977 8.98A1 1 0 0 1 20 13H4a1 1 0 0 1-.824-1.567z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/salad.js
var Salad;
var init_salad = __esmMin((() => {
	Salad = [
		["path", { d: "M7 21h10" }],
		["path", { d: "M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z" }],
		["path", { d: "M11.38 12a2.4 2.4 0 0 1-.4-4.77 2.4 2.4 0 0 1 3.2-2.77 2.4 2.4 0 0 1 3.47-.63 2.4 2.4 0 0 1 3.37 3.37 2.4 2.4 0 0 1-1.1 3.7 2.51 2.51 0 0 1 .03 1.1" }],
		["path", { d: "m13 12 4-4" }],
		["path", { d: "M10.9 7.25A3.99 3.99 0 0 0 4 10c0 .73.2 1.41.54 2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sandwich.js
var Sandwich;
var init_sandwich = __esmMin((() => {
	Sandwich = [
		["path", { d: "m2.37 11.223 8.372-6.777a2 2 0 0 1 2.516 0l8.371 6.777" }],
		["path", { d: "M21 15a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5.25" }],
		["path", { d: "M3 15a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9" }],
		["path", { d: "m6.67 15 6.13 4.6a2 2 0 0 0 2.8-.4l3.15-4.2" }],
		["rect", {
			width: "20",
			height: "4",
			x: "2",
			y: "11",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/satellite-dish.js
var SatelliteDish;
var init_satellite_dish = __esmMin((() => {
	SatelliteDish = [
		["path", { d: "M4 10a7.31 7.31 0 0 0 10 10Z" }],
		["path", { d: "m9 15 3-3" }],
		["path", { d: "M17 13a6 6 0 0 0-6-6" }],
		["path", { d: "M21 13A10 10 0 0 0 11 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/satellite.js
var Satellite;
var init_satellite = __esmMin((() => {
	Satellite = [
		["path", { d: "m13.5 6.5-3.148-3.148a1.205 1.205 0 0 0-1.704 0L6.352 5.648a1.205 1.205 0 0 0 0 1.704L9.5 10.5" }],
		["path", { d: "M16.5 7.5 19 5" }],
		["path", { d: "m17.5 10.5 3.148 3.148a1.205 1.205 0 0 1 0 1.704l-2.296 2.296a1.205 1.205 0 0 1-1.704 0L13.5 14.5" }],
		["path", { d: "M9 21a6 6 0 0 0-6-6" }],
		["path", { d: "M9.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l4.296-4.296a1.205 1.205 0 0 0 0-1.704l-2.296-2.296a1.205 1.205 0 0 0-1.704 0z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/saudi-riyal.js
var SaudiRiyal;
var init_saudi_riyal = __esmMin((() => {
	SaudiRiyal = [
		["path", { d: "m20 19.5-5.5 1.2" }],
		["path", { d: "M14.5 4v11.22a1 1 0 0 0 1.242.97L20 15.2" }],
		["path", { d: "m2.978 19.351 5.549-1.363A2 2 0 0 0 10 16V2" }],
		["path", { d: "M20 10 4 13.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/save-all.js
var SaveAll;
var init_save_all = __esmMin((() => {
	SaveAll = [
		["path", { d: "M10 2v3a1 1 0 0 0 1 1h5" }],
		["path", { d: "M18 18v-6a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1v6" }],
		["path", { d: "M18 22H4a2 2 0 0 1-2-2V6" }],
		["path", { d: "M8 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9.172a2 2 0 0 1 1.414.586l2.828 2.828A2 2 0 0 1 22 6.828V16a2 2 0 0 1-2.01 2z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/save-off.js
var SaveOff;
var init_save_off = __esmMin((() => {
	SaveOff = [
		["path", { d: "M13 13H8a1 1 0 0 0-1 1v7" }],
		["path", { d: "M14 8h1" }],
		["path", { d: "M17 21v-4" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M20.41 20.41A2 2 0 0 1 19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 .59-1.41" }],
		["path", { d: "M29.5 11.5s5 5 4 5" }],
		["path", { d: "M9 3h6.2a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V15" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/save.js
var Save;
var init_save = __esmMin((() => {
	Save = [
		["path", { d: "M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z" }],
		["path", { d: "M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7" }],
		["path", { d: "M7 3v4a1 1 0 0 0 1 1h7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/scale-3d.js
var Scale3d;
var init_scale_3d = __esmMin((() => {
	Scale3d = [
		["path", { d: "M5 7v11a1 1 0 0 0 1 1h11" }],
		["path", { d: "M5.293 18.707 11 13" }],
		["circle", {
			cx: "19",
			cy: "19",
			r: "2"
		}],
		["circle", {
			cx: "5",
			cy: "5",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/scale.js
var Scale;
var init_scale = __esmMin((() => {
	Scale = [
		["path", { d: "M12 3v18" }],
		["path", { d: "m19 8 3 8a5 5 0 0 1-6 0zV7" }],
		["path", { d: "M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1" }],
		["path", { d: "m5 8 3 8a5 5 0 0 1-6 0zV7" }],
		["path", { d: "M7 21h10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/scaling.js
var Scaling;
var init_scaling = __esmMin((() => {
	Scaling = [
		["path", { d: "M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }],
		["path", { d: "M14 15H9v-5" }],
		["path", { d: "M16 3h5v5" }],
		["path", { d: "M21 3 9 15" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/scan-barcode.js
var ScanBarcode;
var init_scan_barcode = __esmMin((() => {
	ScanBarcode = [
		["path", { d: "M3 7V5a2 2 0 0 1 2-2h2" }],
		["path", { d: "M17 3h2a2 2 0 0 1 2 2v2" }],
		["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2" }],
		["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2" }],
		["path", { d: "M8 7v10" }],
		["path", { d: "M12 7v10" }],
		["path", { d: "M17 7v10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/scan-eye.js
var ScanEye;
var init_scan_eye = __esmMin((() => {
	ScanEye = [
		["path", { d: "M3 7V5a2 2 0 0 1 2-2h2" }],
		["path", { d: "M17 3h2a2 2 0 0 1 2 2v2" }],
		["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2" }],
		["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "1"
		}],
		["path", { d: "M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/scan-heart.js
var ScanHeart;
var init_scan_heart = __esmMin((() => {
	ScanHeart = [
		["path", { d: "M17 3h2a2 2 0 0 1 2 2v2" }],
		["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2" }],
		["path", { d: "M3 7V5a2 2 0 0 1 2-2h2" }],
		["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2" }],
		["path", { d: "M7.828 13.07A3 3 0 0 1 12 8.764a3 3 0 0 1 4.172 4.306l-3.447 3.62a1 1 0 0 1-1.449 0z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/scan-face.js
var ScanFace;
var init_scan_face = __esmMin((() => {
	ScanFace = [
		["path", { d: "M3 7V5a2 2 0 0 1 2-2h2" }],
		["path", { d: "M17 3h2a2 2 0 0 1 2 2v2" }],
		["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2" }],
		["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2" }],
		["path", { d: "M8 14s1.5 2 4 2 4-2 4-2" }],
		["path", { d: "M9 9h.01" }],
		["path", { d: "M15 9h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/scan-qr-code.js
var ScanQrCode;
var init_scan_qr_code = __esmMin((() => {
	ScanQrCode = [
		["path", { d: "M17 12v4a1 1 0 0 1-1 1h-4" }],
		["path", { d: "M17 3h2a2 2 0 0 1 2 2v2" }],
		["path", { d: "M17 8V7" }],
		["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2" }],
		["path", { d: "M3 7V5a2 2 0 0 1 2-2h2" }],
		["path", { d: "M7 17h.01" }],
		["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2" }],
		["rect", {
			x: "7",
			y: "7",
			width: "5",
			height: "5",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/scan-line.js
var ScanLine;
var init_scan_line = __esmMin((() => {
	ScanLine = [
		["path", { d: "M3 7V5a2 2 0 0 1 2-2h2" }],
		["path", { d: "M17 3h2a2 2 0 0 1 2 2v2" }],
		["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2" }],
		["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2" }],
		["path", { d: "M7 12h10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/scan-search.js
var ScanSearch;
var init_scan_search = __esmMin((() => {
	ScanSearch = [
		["path", { d: "M3 7V5a2 2 0 0 1 2-2h2" }],
		["path", { d: "M17 3h2a2 2 0 0 1 2 2v2" }],
		["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2" }],
		["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "3"
		}],
		["path", { d: "m16 16-1.9-1.9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/scan-text.js
var ScanText;
var init_scan_text = __esmMin((() => {
	ScanText = [
		["path", { d: "M3 7V5a2 2 0 0 1 2-2h2" }],
		["path", { d: "M17 3h2a2 2 0 0 1 2 2v2" }],
		["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2" }],
		["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2" }],
		["path", { d: "M7 8h8" }],
		["path", { d: "M7 12h10" }],
		["path", { d: "M7 16h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/scan.js
var Scan;
var init_scan = __esmMin((() => {
	Scan = [
		["path", { d: "M3 7V5a2 2 0 0 1 2-2h2" }],
		["path", { d: "M17 3h2a2 2 0 0 1 2 2v2" }],
		["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2" }],
		["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/school.js
var School;
var init_school = __esmMin((() => {
	School = [
		["path", { d: "M14 21v-3a2 2 0 0 0-4 0v3" }],
		["path", { d: "M18 5v16" }],
		["path", { d: "m4 6 7.106-3.79a2 2 0 0 1 1.788 0L20 6" }],
		["path", { d: "m6 11-3.52 2.147a1 1 0 0 0-.48.854V19a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a1 1 0 0 0-.48-.853L18 11" }],
		["path", { d: "M6 5v16" }],
		["circle", {
			cx: "12",
			cy: "9",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/scissors-line-dashed.js
var ScissorsLineDashed;
var init_scissors_line_dashed = __esmMin((() => {
	ScissorsLineDashed = [
		["path", { d: "M5.42 9.42 8 12" }],
		["circle", {
			cx: "4",
			cy: "8",
			r: "2"
		}],
		["path", { d: "m14 6-8.58 8.58" }],
		["circle", {
			cx: "4",
			cy: "16",
			r: "2"
		}],
		["path", { d: "M10.8 14.8 14 18" }],
		["path", { d: "M16 12h-2" }],
		["path", { d: "M22 12h-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/scissors.js
var Scissors;
var init_scissors = __esmMin((() => {
	Scissors = [
		["circle", {
			cx: "6",
			cy: "6",
			r: "3"
		}],
		["path", { d: "M8.12 8.12 12 12" }],
		["path", { d: "M20 4 8.12 15.88" }],
		["circle", {
			cx: "6",
			cy: "18",
			r: "3"
		}],
		["path", { d: "M14.8 14.8 20 20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/scooter.js
var Scooter;
var init_scooter = __esmMin((() => {
	Scooter = [
		["path", { d: "M21 4h-3.5l2 11.05" }],
		["path", { d: "M6.95 17h5.142c.523 0 .95-.406 1.063-.916a6.5 6.5 0 0 1 5.345-5.009" }],
		["circle", {
			cx: "19.5",
			cy: "17.5",
			r: "2.5"
		}],
		["circle", {
			cx: "4.5",
			cy: "17.5",
			r: "2.5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/screen-share-off.js
var ScreenShareOff;
var init_screen_share_off = __esmMin((() => {
	ScreenShareOff = [
		["path", { d: "M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3" }],
		["path", { d: "M8 21h8" }],
		["path", { d: "M12 17v4" }],
		["path", { d: "m22 3-5 5" }],
		["path", { d: "m17 3 5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/screen-share.js
var ScreenShare;
var init_screen_share = __esmMin((() => {
	ScreenShare = [
		["path", { d: "M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3" }],
		["path", { d: "M8 21h8" }],
		["path", { d: "M12 17v4" }],
		["path", { d: "m17 8 5-5" }],
		["path", { d: "M17 3h5v5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/scroll-text.js
var ScrollText;
var init_scroll_text = __esmMin((() => {
	ScrollText = [
		["path", { d: "M15 12h-5" }],
		["path", { d: "M15 8h-5" }],
		["path", { d: "M19 17V5a2 2 0 0 0-2-2H4" }],
		["path", { d: "M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/scroll.js
var Scroll;
var init_scroll = __esmMin((() => {
	Scroll = [["path", { d: "M19 17V5a2 2 0 0 0-2-2H4" }], ["path", { d: "M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/search-check.js
var SearchCheck;
var init_search_check = __esmMin((() => {
	SearchCheck = [
		["path", { d: "m8 11 2 2 4-4" }],
		["circle", {
			cx: "11",
			cy: "11",
			r: "8"
		}],
		["path", { d: "m21 21-4.3-4.3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/search-code.js
var SearchCode;
var init_search_code = __esmMin((() => {
	SearchCode = [
		["path", { d: "m13 13.5 2-2.5-2-2.5" }],
		["path", { d: "m21 21-4.3-4.3" }],
		["path", { d: "M9 8.5 7 11l2 2.5" }],
		["circle", {
			cx: "11",
			cy: "11",
			r: "8"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/search-slash.js
var SearchSlash;
var init_search_slash = __esmMin((() => {
	SearchSlash = [
		["path", { d: "m13.5 8.5-5 5" }],
		["circle", {
			cx: "11",
			cy: "11",
			r: "8"
		}],
		["path", { d: "m21 21-4.3-4.3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/search-x.js
var SearchX;
var init_search_x = __esmMin((() => {
	SearchX = [
		["path", { d: "m13.5 8.5-5 5" }],
		["path", { d: "m8.5 8.5 5 5" }],
		["circle", {
			cx: "11",
			cy: "11",
			r: "8"
		}],
		["path", { d: "m21 21-4.3-4.3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/search.js
var Search;
var init_search = __esmMin((() => {
	Search = [["path", { d: "m21 21-4.34-4.34" }], ["circle", {
		cx: "11",
		cy: "11",
		r: "8"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/section.js
var Section;
var init_section = __esmMin((() => {
	Section = [["path", { d: "M16 5a4 3 0 0 0-8 0c0 4 8 3 8 7a4 3 0 0 1-8 0" }], ["path", { d: "M8 19a4 3 0 0 0 8 0c0-4-8-3-8-7a4 3 0 0 1 8 0" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/send-horizontal.js
var SendHorizontal;
var init_send_horizontal = __esmMin((() => {
	SendHorizontal = [["path", { d: "M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z" }], ["path", { d: "M6 12h16" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/send-to-back.js
var SendToBack;
var init_send_to_back = __esmMin((() => {
	SendToBack = [
		["rect", {
			x: "14",
			y: "14",
			width: "8",
			height: "8",
			rx: "2"
		}],
		["rect", {
			x: "2",
			y: "2",
			width: "8",
			height: "8",
			rx: "2"
		}],
		["path", { d: "M7 14v1a2 2 0 0 0 2 2h1" }],
		["path", { d: "M14 7h1a2 2 0 0 1 2 2v1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/send.js
var Send;
var init_send = __esmMin((() => {
	Send = [["path", { d: "M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z" }], ["path", { d: "m21.854 2.147-10.94 10.939" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/separator-horizontal.js
var SeparatorHorizontal;
var init_separator_horizontal = __esmMin((() => {
	SeparatorHorizontal = [
		["path", { d: "m16 16-4 4-4-4" }],
		["path", { d: "M3 12h18" }],
		["path", { d: "m8 8 4-4 4 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/separator-vertical.js
var SeparatorVertical;
var init_separator_vertical = __esmMin((() => {
	SeparatorVertical = [
		["path", { d: "M12 3v18" }],
		["path", { d: "m16 16 4-4-4-4" }],
		["path", { d: "m8 8-4 4 4 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/server-cog.js
var ServerCog;
var init_server_cog = __esmMin((() => {
	ServerCog = [
		["path", { d: "m10.852 14.772-.383.923" }],
		["path", { d: "M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923" }],
		["path", { d: "m13.148 9.228.383-.923" }],
		["path", { d: "m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544" }],
		["path", { d: "m14.772 10.852.923-.383" }],
		["path", { d: "m14.772 13.148.923.383" }],
		["path", { d: "M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5" }],
		["path", { d: "M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5" }],
		["path", { d: "M6 18h.01" }],
		["path", { d: "M6 6h.01" }],
		["path", { d: "m9.228 10.852-.923-.383" }],
		["path", { d: "m9.228 13.148-.923.383" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/server-crash.js
var ServerCrash;
var init_server_crash = __esmMin((() => {
	ServerCrash = [
		["path", { d: "M6 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-2" }],
		["path", { d: "M6 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-2" }],
		["path", { d: "M6 6h.01" }],
		["path", { d: "M6 18h.01" }],
		["path", { d: "m13 6-4 6h6l-4 6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/server-off.js
var ServerOff;
var init_server_off = __esmMin((() => {
	ServerOff = [
		["path", { d: "M7 2h13a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-5" }],
		["path", { d: "M10 10 2.5 2.5C2 2 2 2.5 2 5v3a2 2 0 0 0 2 2h6z" }],
		["path", { d: "M22 17v-1a2 2 0 0 0-2-2h-1" }],
		["path", { d: "M4 14a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16.5l1-.5.5.5-8-8H4z" }],
		["path", { d: "M6 18h.01" }],
		["path", { d: "m2 2 20 20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/server.js
var Server;
var init_server = __esmMin((() => {
	Server = [
		["rect", {
			width: "20",
			height: "8",
			x: "2",
			y: "2",
			rx: "2",
			ry: "2"
		}],
		["rect", {
			width: "20",
			height: "8",
			x: "2",
			y: "14",
			rx: "2",
			ry: "2"
		}],
		["line", {
			x1: "6",
			x2: "6.01",
			y1: "6",
			y2: "6"
		}],
		["line", {
			x1: "6",
			x2: "6.01",
			y1: "18",
			y2: "18"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/settings-2.js
var Settings2;
var init_settings_2 = __esmMin((() => {
	Settings2 = [
		["path", { d: "M14 17H5" }],
		["path", { d: "M19 7h-9" }],
		["circle", {
			cx: "17",
			cy: "17",
			r: "3"
		}],
		["circle", {
			cx: "7",
			cy: "7",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/settings.js
var Settings$1;
var init_settings = __esmMin((() => {
	Settings$1 = [["path", { d: "M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915" }], ["circle", {
		cx: "12",
		cy: "12",
		r: "3"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shapes.js
var Shapes;
var init_shapes = __esmMin((() => {
	Shapes = [
		["path", { d: "M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z" }],
		["rect", {
			x: "3",
			y: "14",
			width: "7",
			height: "7",
			rx: "1"
		}],
		["circle", {
			cx: "17.5",
			cy: "17.5",
			r: "3.5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/share-2.js
var Share2;
var init_share_2 = __esmMin((() => {
	Share2 = [
		["circle", {
			cx: "18",
			cy: "5",
			r: "3"
		}],
		["circle", {
			cx: "6",
			cy: "12",
			r: "3"
		}],
		["circle", {
			cx: "18",
			cy: "19",
			r: "3"
		}],
		["line", {
			x1: "8.59",
			x2: "15.42",
			y1: "13.51",
			y2: "17.49"
		}],
		["line", {
			x1: "15.41",
			x2: "8.59",
			y1: "6.51",
			y2: "10.49"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/share.js
var Share;
var init_share = __esmMin((() => {
	Share = [
		["path", { d: "M12 2v13" }],
		["path", { d: "m16 6-4-4-4 4" }],
		["path", { d: "M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sheet.js
var Sheet;
var init_sheet = __esmMin((() => {
	Sheet = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2",
			ry: "2"
		}],
		["line", {
			x1: "3",
			x2: "21",
			y1: "9",
			y2: "9"
		}],
		["line", {
			x1: "3",
			x2: "21",
			y1: "15",
			y2: "15"
		}],
		["line", {
			x1: "9",
			x2: "9",
			y1: "9",
			y2: "21"
		}],
		["line", {
			x1: "15",
			x2: "15",
			y1: "9",
			y2: "21"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shell.js
var Shell;
var init_shell = __esmMin((() => {
	Shell = [["path", { d: "M14 11a2 2 0 1 1-4 0 4 4 0 0 1 8 0 6 6 0 0 1-12 0 8 8 0 0 1 16 0 10 10 0 1 1-20 0 11.93 11.93 0 0 1 2.42-7.22 2 2 0 1 1 3.16 2.44" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shield-ban.js
var ShieldBan;
var init_shield_ban = __esmMin((() => {
	ShieldBan = [["path", { d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" }], ["path", { d: "m4.243 5.21 14.39 12.472" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shield-alert.js
var ShieldAlert;
var init_shield_alert = __esmMin((() => {
	ShieldAlert = [
		["path", { d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" }],
		["path", { d: "M12 8v4" }],
		["path", { d: "M12 16h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shield-check.js
var ShieldCheck;
var init_shield_check = __esmMin((() => {
	ShieldCheck = [["path", { d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" }], ["path", { d: "m9 12 2 2 4-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shield-ellipsis.js
var ShieldEllipsis;
var init_shield_ellipsis = __esmMin((() => {
	ShieldEllipsis = [
		["path", { d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" }],
		["path", { d: "M8 12h.01" }],
		["path", { d: "M12 12h.01" }],
		["path", { d: "M16 12h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shield-half.js
var ShieldHalf;
var init_shield_half = __esmMin((() => {
	ShieldHalf = [["path", { d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" }], ["path", { d: "M12 22V2" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shield-minus.js
var ShieldMinus;
var init_shield_minus = __esmMin((() => {
	ShieldMinus = [["path", { d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" }], ["path", { d: "M9 12h6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shield-off.js
var ShieldOff;
var init_shield_off = __esmMin((() => {
	ShieldOff = [
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71" }],
		["path", { d: "M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shield-plus.js
var ShieldPlus;
var init_shield_plus = __esmMin((() => {
	ShieldPlus = [
		["path", { d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" }],
		["path", { d: "M9 12h6" }],
		["path", { d: "M12 9v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shield-question-mark.js
var ShieldQuestionMark;
var init_shield_question_mark = __esmMin((() => {
	ShieldQuestionMark = [
		["path", { d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" }],
		["path", { d: "M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3" }],
		["path", { d: "M12 17h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shield-user.js
var ShieldUser;
var init_shield_user = __esmMin((() => {
	ShieldUser = [
		["path", { d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" }],
		["path", { d: "M6.376 18.91a6 6 0 0 1 11.249.003" }],
		["circle", {
			cx: "12",
			cy: "11",
			r: "4"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shield-x.js
var ShieldX;
var init_shield_x = __esmMin((() => {
	ShieldX = [
		["path", { d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" }],
		["path", { d: "m14.5 9.5-5 5" }],
		["path", { d: "m9.5 9.5 5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shield.js
var Shield;
var init_shield = __esmMin((() => {
	Shield = [["path", { d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ship-wheel.js
var ShipWheel;
var init_ship_wheel = __esmMin((() => {
	ShipWheel = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "8"
		}],
		["path", { d: "M12 2v7.5" }],
		["path", { d: "m19 5-5.23 5.23" }],
		["path", { d: "M22 12h-7.5" }],
		["path", { d: "m19 19-5.23-5.23" }],
		["path", { d: "M12 14.5V22" }],
		["path", { d: "M10.23 13.77 5 19" }],
		["path", { d: "M9.5 12H2" }],
		["path", { d: "M10.23 10.23 5 5" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "2.5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ship.js
var Ship;
var init_ship = __esmMin((() => {
	Ship = [
		["path", { d: "M12 10.189V14" }],
		["path", { d: "M12 2v3" }],
		["path", { d: "M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6" }],
		["path", { d: "M19.38 20A11.6 11.6 0 0 0 21 14l-8.188-3.639a2 2 0 0 0-1.624 0L3 14a11.6 11.6 0 0 0 2.81 7.76" }],
		["path", { d: "M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1s1.2 1 2.5 1c2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shirt.js
var Shirt;
var init_shirt = __esmMin((() => {
	Shirt = [["path", { d: "M20.38 3.46 16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shopping-bag.js
var ShoppingBag;
var init_shopping_bag = __esmMin((() => {
	ShoppingBag = [
		["path", { d: "M16 10a4 4 0 0 1-8 0" }],
		["path", { d: "M3.103 6.034h17.794" }],
		["path", { d: "M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shopping-basket.js
var ShoppingBasket;
var init_shopping_basket = __esmMin((() => {
	ShoppingBasket = [
		["path", { d: "m15 11-1 9" }],
		["path", { d: "m19 11-4-7" }],
		["path", { d: "M2 11h20" }],
		["path", { d: "m3.5 11 1.6 7.4a2 2 0 0 0 2 1.6h9.8a2 2 0 0 0 2-1.6l1.7-7.4" }],
		["path", { d: "M4.5 15.5h15" }],
		["path", { d: "m5 11 4-7" }],
		["path", { d: "m9 11 1 9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shopping-cart.js
var ShoppingCart;
var init_shopping_cart = __esmMin((() => {
	ShoppingCart = [
		["circle", {
			cx: "8",
			cy: "21",
			r: "1"
		}],
		["circle", {
			cx: "19",
			cy: "21",
			r: "1"
		}],
		["path", { d: "M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shovel.js
var Shovel;
var init_shovel = __esmMin((() => {
	Shovel = [
		["path", { d: "M21.56 4.56a1.5 1.5 0 0 1 0 2.122l-.47.47a3 3 0 0 1-4.212-.03 3 3 0 0 1 0-4.243l.44-.44a1.5 1.5 0 0 1 2.121 0z" }],
		["path", { d: "M3 22a1 1 0 0 1-1-1v-3.586a1 1 0 0 1 .293-.707l3.355-3.355a1.205 1.205 0 0 1 1.704 0l3.296 3.296a1.205 1.205 0 0 1 0 1.704l-3.355 3.355a1 1 0 0 1-.707.293z" }],
		["path", { d: "m9 15 7.879-7.878" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shower-head.js
var ShowerHead;
var init_shower_head = __esmMin((() => {
	ShowerHead = [
		["path", { d: "m4 4 2.5 2.5" }],
		["path", { d: "M13.5 6.5a4.95 4.95 0 0 0-7 7" }],
		["path", { d: "M15 5 5 15" }],
		["path", { d: "M14 17v.01" }],
		["path", { d: "M10 16v.01" }],
		["path", { d: "M13 13v.01" }],
		["path", { d: "M16 10v.01" }],
		["path", { d: "M11 20v.01" }],
		["path", { d: "M17 14v.01" }],
		["path", { d: "M20 11v.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shredder.js
var Shredder;
var init_shredder = __esmMin((() => {
	Shredder = [
		["path", { d: "M4 13V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5" }],
		["path", { d: "M14 2v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M10 22v-5" }],
		["path", { d: "M14 19v-2" }],
		["path", { d: "M18 20v-3" }],
		["path", { d: "M2 13h20" }],
		["path", { d: "M6 20v-3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shrimp.js
var Shrimp;
var init_shrimp = __esmMin((() => {
	Shrimp = [
		["path", { d: "M11 12h.01" }],
		["path", { d: "M13 22c.5-.5 1.12-1 2.5-1-1.38 0-2-.5-2.5-1" }],
		["path", { d: "M14 2a3.28 3.28 0 0 1-3.227 1.798l-6.17-.561A2.387 2.387 0 1 0 4.387 8H15.5a1 1 0 0 1 0 13 1 1 0 0 0 0-5H12a7 7 0 0 1-7-7V8" }],
		["path", { d: "M14 8a8.5 8.5 0 0 1 0 8" }],
		["path", { d: "M16 16c2 0 4.5-4 4-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shrink.js
var Shrink;
var init_shrink = __esmMin((() => {
	Shrink = [
		["path", { d: "m15 15 6 6m-6-6v4.8m0-4.8h4.8" }],
		["path", { d: "M9 19.8V15m0 0H4.2M9 15l-6 6" }],
		["path", { d: "M15 4.2V9m0 0h4.8M15 9l6-6" }],
		["path", { d: "M9 4.2V9m0 0H4.2M9 9 3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shrub.js
var Shrub;
var init_shrub = __esmMin((() => {
	Shrub = [
		["path", { d: "M12 22v-5.172a2 2 0 0 0-.586-1.414L9.5 13.5" }],
		["path", { d: "M14.5 14.5 12 17" }],
		["path", { d: "M17 8.8A6 6 0 0 1 13.8 20H10A6.5 6.5 0 0 1 7 8a5 5 0 0 1 10 0z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/shuffle.js
var Shuffle;
var init_shuffle = __esmMin((() => {
	Shuffle = [
		["path", { d: "m18 14 4 4-4 4" }],
		["path", { d: "m18 2 4 4-4 4" }],
		["path", { d: "M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22" }],
		["path", { d: "M2 6h1.972a4 4 0 0 1 3.6 2.2" }],
		["path", { d: "M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sigma.js
var Sigma;
var init_sigma = __esmMin((() => {
	Sigma = [["path", { d: "M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/signal-high.js
var SignalHigh;
var init_signal_high = __esmMin((() => {
	SignalHigh = [
		["path", { d: "M2 20h.01" }],
		["path", { d: "M7 20v-4" }],
		["path", { d: "M12 20v-8" }],
		["path", { d: "M17 20V8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/signal-low.js
var SignalLow;
var init_signal_low = __esmMin((() => {
	SignalLow = [["path", { d: "M2 20h.01" }], ["path", { d: "M7 20v-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/signal-medium.js
var SignalMedium;
var init_signal_medium = __esmMin((() => {
	SignalMedium = [
		["path", { d: "M2 20h.01" }],
		["path", { d: "M7 20v-4" }],
		["path", { d: "M12 20v-8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/signal-zero.js
var SignalZero;
var init_signal_zero = __esmMin((() => {
	SignalZero = [["path", { d: "M2 20h.01" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/signal.js
var Signal;
var init_signal = __esmMin((() => {
	Signal = [
		["path", { d: "M2 20h.01" }],
		["path", { d: "M7 20v-4" }],
		["path", { d: "M12 20v-8" }],
		["path", { d: "M17 20V8" }],
		["path", { d: "M22 4v16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/signature.js
var Signature;
var init_signature = __esmMin((() => {
	Signature = [["path", { d: "m21 17-2.156-1.868A.5.5 0 0 0 18 15.5v.5a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1c0-2.545-3.991-3.97-8.5-4a1 1 0 0 0 0 5c4.153 0 4.745-11.295 5.708-13.5a2.5 2.5 0 1 1 3.31 3.284" }], ["path", { d: "M3 21h18" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/signpost-big.js
var SignpostBig;
var init_signpost_big = __esmMin((() => {
	SignpostBig = [
		["path", { d: "M10 9H4L2 7l2-2h6" }],
		["path", { d: "M14 5h6l2 2-2 2h-6" }],
		["path", { d: "M10 22V4a2 2 0 1 1 4 0v18" }],
		["path", { d: "M8 22h8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/siren.js
var Siren;
var init_siren = __esmMin((() => {
	Siren = [
		["path", { d: "M7 18v-6a5 5 0 1 1 10 0v6" }],
		["path", { d: "M5 21a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-1a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2z" }],
		["path", { d: "M21 12h1" }],
		["path", { d: "M18.5 4.5 18 5" }],
		["path", { d: "M2 12h1" }],
		["path", { d: "M12 2v1" }],
		["path", { d: "m4.929 4.929.707.707" }],
		["path", { d: "M12 12v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/skip-back.js
var SkipBack;
var init_skip_back = __esmMin((() => {
	SkipBack = [["path", { d: "M17.971 4.285A2 2 0 0 1 21 6v12a2 2 0 0 1-3.029 1.715l-9.997-5.998a2 2 0 0 1-.003-3.432z" }], ["path", { d: "M3 20V4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/signpost.js
var Signpost;
var init_signpost = __esmMin((() => {
	Signpost = [
		["path", { d: "M12 13v8" }],
		["path", { d: "M12 3v3" }],
		["path", { d: "M18 6a2 2 0 0 1 1.387.56l2.307 2.22a1 1 0 0 1 0 1.44l-2.307 2.22A2 2 0 0 1 18 13H6a2 2 0 0 1-1.387-.56l-2.306-2.22a1 1 0 0 1 0-1.44l2.306-2.22A2 2 0 0 1 6 6z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/skip-forward.js
var SkipForward;
var init_skip_forward = __esmMin((() => {
	SkipForward = [["path", { d: "M21 4v16" }], ["path", { d: "M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/skull.js
var Skull;
var init_skull = __esmMin((() => {
	Skull = [
		["path", { d: "m12.5 17-.5-1-.5 1h1z" }],
		["path", { d: "M15 22a1 1 0 0 0 1-1v-1a2 2 0 0 0 1.56-3.25 8 8 0 1 0-11.12 0A2 2 0 0 0 8 20v1a1 1 0 0 0 1 1z" }],
		["circle", {
			cx: "15",
			cy: "12",
			r: "1"
		}],
		["circle", {
			cx: "9",
			cy: "12",
			r: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/slack.js
var Slack;
var init_slack = __esmMin((() => {
	Slack = [
		["rect", {
			width: "3",
			height: "8",
			x: "13",
			y: "2",
			rx: "1.5"
		}],
		["path", { d: "M19 8.5V10h1.5A1.5 1.5 0 1 0 19 8.5" }],
		["rect", {
			width: "3",
			height: "8",
			x: "8",
			y: "14",
			rx: "1.5"
		}],
		["path", { d: "M5 15.5V14H3.5A1.5 1.5 0 1 0 5 15.5" }],
		["rect", {
			width: "8",
			height: "3",
			x: "14",
			y: "13",
			rx: "1.5"
		}],
		["path", { d: "M15.5 19H14v1.5a1.5 1.5 0 1 0 1.5-1.5" }],
		["rect", {
			width: "8",
			height: "3",
			x: "2",
			y: "8",
			rx: "1.5"
		}],
		["path", { d: "M8.5 5H10V3.5A1.5 1.5 0 1 0 8.5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/slash.js
var Slash;
var init_slash = __esmMin((() => {
	Slash = [["path", { d: "M22 2 2 22" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/slice.js
var Slice;
var init_slice = __esmMin((() => {
	Slice = [["path", { d: "M11 16.586V19a1 1 0 0 1-1 1H2L18.37 3.63a1 1 0 1 1 3 3l-9.663 9.663a1 1 0 0 1-1.414 0L8 14" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sliders-horizontal.js
var SlidersHorizontal;
var init_sliders_horizontal = __esmMin((() => {
	SlidersHorizontal = [
		["path", { d: "M10 5H3" }],
		["path", { d: "M12 19H3" }],
		["path", { d: "M14 3v4" }],
		["path", { d: "M16 17v4" }],
		["path", { d: "M21 12h-9" }],
		["path", { d: "M21 19h-5" }],
		["path", { d: "M21 5h-7" }],
		["path", { d: "M8 10v4" }],
		["path", { d: "M8 12H3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sliders-vertical.js
var SlidersVertical;
var init_sliders_vertical = __esmMin((() => {
	SlidersVertical = [
		["path", { d: "M10 8h4" }],
		["path", { d: "M12 21v-9" }],
		["path", { d: "M12 8V3" }],
		["path", { d: "M17 16h4" }],
		["path", { d: "M19 12V3" }],
		["path", { d: "M19 21v-5" }],
		["path", { d: "M3 14h4" }],
		["path", { d: "M5 10V3" }],
		["path", { d: "M5 21v-7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/smartphone-charging.js
var SmartphoneCharging;
var init_smartphone_charging = __esmMin((() => {
	SmartphoneCharging = [["rect", {
		width: "14",
		height: "20",
		x: "5",
		y: "2",
		rx: "2",
		ry: "2"
	}], ["path", { d: "M12.667 8 10 12h4l-2.667 4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/smartphone-nfc.js
var SmartphoneNfc;
var init_smartphone_nfc = __esmMin((() => {
	SmartphoneNfc = [
		["rect", {
			width: "7",
			height: "12",
			x: "2",
			y: "6",
			rx: "1"
		}],
		["path", { d: "M13 8.32a7.43 7.43 0 0 1 0 7.36" }],
		["path", { d: "M16.46 6.21a11.76 11.76 0 0 1 0 11.58" }],
		["path", { d: "M19.91 4.1a15.91 15.91 0 0 1 .01 15.8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/smartphone.js
var Smartphone;
var init_smartphone = __esmMin((() => {
	Smartphone = [["rect", {
		width: "14",
		height: "20",
		x: "5",
		y: "2",
		rx: "2",
		ry: "2"
	}], ["path", { d: "M12 18h.01" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/smile-plus.js
var SmilePlus;
var init_smile_plus = __esmMin((() => {
	SmilePlus = [
		["path", { d: "M22 11v1a10 10 0 1 1-9-10" }],
		["path", { d: "M8 14s1.5 2 4 2 4-2 4-2" }],
		["line", {
			x1: "9",
			x2: "9.01",
			y1: "9",
			y2: "9"
		}],
		["line", {
			x1: "15",
			x2: "15.01",
			y1: "9",
			y2: "9"
		}],
		["path", { d: "M16 5h6" }],
		["path", { d: "M19 2v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/smile.js
var Smile;
var init_smile = __esmMin((() => {
	Smile = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["path", { d: "M8 14s1.5 2 4 2 4-2 4-2" }],
		["line", {
			x1: "9",
			x2: "9.01",
			y1: "9",
			y2: "9"
		}],
		["line", {
			x1: "15",
			x2: "15.01",
			y1: "9",
			y2: "9"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/snail.js
var Snail;
var init_snail = __esmMin((() => {
	Snail = [
		["path", { d: "M2 13a6 6 0 1 0 12 0 4 4 0 1 0-8 0 2 2 0 0 0 4 0" }],
		["circle", {
			cx: "10",
			cy: "13",
			r: "8"
		}],
		["path", { d: "M2 21h12c4.4 0 8-3.6 8-8V7a2 2 0 1 0-4 0v6" }],
		["path", { d: "M18 3 19.1 5.2" }],
		["path", { d: "M22 3 20.9 5.2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/snowflake.js
var Snowflake;
var init_snowflake = __esmMin((() => {
	Snowflake = [
		["path", { d: "m10 20-1.25-2.5L6 18" }],
		["path", { d: "M10 4 8.75 6.5 6 6" }],
		["path", { d: "m14 20 1.25-2.5L18 18" }],
		["path", { d: "m14 4 1.25 2.5L18 6" }],
		["path", { d: "m17 21-3-6h-4" }],
		["path", { d: "m17 3-3 6 1.5 3" }],
		["path", { d: "M2 12h6.5L10 9" }],
		["path", { d: "m20 10-1.5 2 1.5 2" }],
		["path", { d: "M22 12h-6.5L14 15" }],
		["path", { d: "m4 10 1.5 2L4 14" }],
		["path", { d: "m7 21 3-6-1.5-3" }],
		["path", { d: "m7 3 3 6h4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/soap-dispenser-droplet.js
var SoapDispenserDroplet;
var init_soap_dispenser_droplet = __esmMin((() => {
	SoapDispenserDroplet = [
		["path", { d: "M10.5 2v4" }],
		["path", { d: "M14 2H7a2 2 0 0 0-2 2" }],
		["path", { d: "M19.29 14.76A6.67 6.67 0 0 1 17 11a6.6 6.6 0 0 1-2.29 3.76c-1.15.92-1.71 2.04-1.71 3.19 0 2.22 1.8 4.05 4 4.05s4-1.83 4-4.05c0-1.16-.57-2.26-1.71-3.19" }],
		["path", { d: "M9.607 21H6a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h7V7a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sofa.js
var Sofa;
var init_sofa = __esmMin((() => {
	Sofa = [
		["path", { d: "M20 9V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v3" }],
		["path", { d: "M2 16a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z" }],
		["path", { d: "M4 18v2" }],
		["path", { d: "M20 18v2" }],
		["path", { d: "M12 4v9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/solar-panel.js
var SolarPanel;
var init_solar_panel = __esmMin((() => {
	SolarPanel = [
		["path", { d: "M11 2h2" }],
		["path", { d: "m14.28 14-4.56 8" }],
		["path", { d: "m21 22-1.558-4H4.558" }],
		["path", { d: "M3 10v2" }],
		["path", { d: "M6.245 15.04A2 2 0 0 1 8 14h12a1 1 0 0 1 .864 1.505l-3.11 5.457A2 2 0 0 1 16 22H4a1 1 0 0 1-.863-1.506z" }],
		["path", { d: "M7 2a4 4 0 0 1-4 4" }],
		["path", { d: "m8.66 7.66 1.41 1.41" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/soup.js
var Soup;
var init_soup = __esmMin((() => {
	Soup = [
		["path", { d: "M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z" }],
		["path", { d: "M7 21h10" }],
		["path", { d: "M19.5 12 22 6" }],
		["path", { d: "M16.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.73 1.62" }],
		["path", { d: "M11.25 3c.27.1.8.53.74 1.36-.05.83-.93 1.2-.98 2.02-.06.78.33 1.24.72 1.62" }],
		["path", { d: "M6.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.74 1.62" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/space.js
var Space;
var init_space = __esmMin((() => {
	Space = [["path", { d: "M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/spade.js
var Spade;
var init_spade = __esmMin((() => {
	Spade = [["path", { d: "M12 18v4" }], ["path", { d: "M2 14.499a5.5 5.5 0 0 0 9.591 3.675.6.6 0 0 1 .818.001A5.5 5.5 0 0 0 22 14.5c0-2.29-1.5-4-3-5.5l-5.492-5.312a2 2 0 0 0-3-.02L5 8.999c-1.5 1.5-3 3.2-3 5.5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sparkles.js
var Sparkles;
var init_sparkles = __esmMin((() => {
	Sparkles = [
		["path", { d: "M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z" }],
		["path", { d: "M20 2v4" }],
		["path", { d: "M22 4h-4" }],
		["circle", {
			cx: "4",
			cy: "20",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/speaker.js
var Speaker;
var init_speaker = __esmMin((() => {
	Speaker = [
		["rect", {
			width: "16",
			height: "20",
			x: "4",
			y: "2",
			rx: "2"
		}],
		["path", { d: "M12 6h.01" }],
		["circle", {
			cx: "12",
			cy: "14",
			r: "4"
		}],
		["path", { d: "M12 14h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sparkle.js
var Sparkle;
var init_sparkle = __esmMin((() => {
	Sparkle = [["path", { d: "M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/speech.js
var Speech;
var init_speech = __esmMin((() => {
	Speech = [
		["path", { d: "M8.8 20v-4.1l1.9.2a2.3 2.3 0 0 0 2.164-2.1V8.3A5.37 5.37 0 0 0 2 8.25c0 2.8.656 3.054 1 4.55a5.77 5.77 0 0 1 .029 2.758L2 20" }],
		["path", { d: "M19.8 17.8a7.5 7.5 0 0 0 .003-10.603" }],
		["path", { d: "M17 15a3.5 3.5 0 0 0-.025-4.975" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/spell-check-2.js
var SpellCheck2;
var init_spell_check_2 = __esmMin((() => {
	SpellCheck2 = [
		["path", { d: "m6 16 6-12 6 12" }],
		["path", { d: "M8 12h8" }],
		["path", { d: "M4 21c1.1 0 1.1-1 2.3-1s1.1 1 2.3 1c1.1 0 1.1-1 2.3-1 1.1 0 1.1 1 2.3 1 1.1 0 1.1-1 2.3-1 1.1 0 1.1 1 2.3 1 1.1 0 1.1-1 2.3-1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/spell-check.js
var SpellCheck;
var init_spell_check = __esmMin((() => {
	SpellCheck = [
		["path", { d: "m6 16 6-12 6 12" }],
		["path", { d: "M8 12h8" }],
		["path", { d: "m16 20 2 2 4-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/spline-pointer.js
var SplinePointer;
var init_spline_pointer = __esmMin((() => {
	SplinePointer = [
		["path", { d: "M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z" }],
		["path", { d: "M5 17A12 12 0 0 1 17 5" }],
		["circle", {
			cx: "19",
			cy: "5",
			r: "2"
		}],
		["circle", {
			cx: "5",
			cy: "19",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/spline.js
var Spline;
var init_spline = __esmMin((() => {
	Spline = [
		["circle", {
			cx: "19",
			cy: "5",
			r: "2"
		}],
		["circle", {
			cx: "5",
			cy: "19",
			r: "2"
		}],
		["path", { d: "M5 17A12 12 0 0 1 17 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/spool.js
var Spool;
var init_spool = __esmMin((() => {
	Spool = [["path", { d: "M17 13.44 4.442 17.082A2 2 0 0 0 4.982 21H19a2 2 0 0 0 .558-3.921l-1.115-.32A2 2 0 0 1 17 14.837V7.66" }], ["path", { d: "m7 10.56 12.558-3.642A2 2 0 0 0 19.018 3H5a2 2 0 0 0-.558 3.921l1.115.32A2 2 0 0 1 7 9.163v7.178" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/split.js
var Split;
var init_split = __esmMin((() => {
	Split = [
		["path", { d: "M16 3h5v5" }],
		["path", { d: "M8 3H3v5" }],
		["path", { d: "M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3" }],
		["path", { d: "m15 9 6-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/spotlight.js
var Spotlight;
var init_spotlight = __esmMin((() => {
	Spotlight = [
		["path", { d: "M15.295 19.562 16 22" }],
		["path", { d: "m17 16 3.758 2.098" }],
		["path", { d: "m19 12.5 3.026-.598" }],
		["path", { d: "M7.61 6.3a3 3 0 0 0-3.92 1.3l-1.38 2.79a3 3 0 0 0 1.3 3.91l6.89 3.597a1 1 0 0 0 1.342-.447l3.106-6.211a1 1 0 0 0-.447-1.341z" }],
		["path", { d: "M8 9V2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/spray-can.js
var SprayCan;
var init_spray_can = __esmMin((() => {
	SprayCan = [
		["path", { d: "M3 3h.01" }],
		["path", { d: "M7 5h.01" }],
		["path", { d: "M11 7h.01" }],
		["path", { d: "M3 7h.01" }],
		["path", { d: "M7 9h.01" }],
		["path", { d: "M3 11h.01" }],
		["rect", {
			width: "4",
			height: "4",
			x: "15",
			y: "5"
		}],
		["path", { d: "m19 9 2 2v10c0 .6-.4 1-1 1h-6c-.6 0-1-.4-1-1V11l2-2" }],
		["path", { d: "m13 14 8-2" }],
		["path", { d: "m13 19 8-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sprout.js
var Sprout;
var init_sprout = __esmMin((() => {
	Sprout = [
		["path", { d: "M14 9.536V7a4 4 0 0 1 4-4h1.5a.5.5 0 0 1 .5.5V5a4 4 0 0 1-4 4 4 4 0 0 0-4 4c0 2 1 3 1 5a5 5 0 0 1-1 3" }],
		["path", { d: "M4 9a5 5 0 0 1 8 4 5 5 0 0 1-8-4" }],
		["path", { d: "M5 21h14" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-activity.js
var SquareActivity;
var init_square_activity = __esmMin((() => {
	SquareActivity = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["path", { d: "M17 12h-2l-2 5-2-10-2 5H7" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-arrow-down-left.js
var SquareArrowDownLeft;
var init_square_arrow_down_left = __esmMin((() => {
	SquareArrowDownLeft = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "m16 8-8 8" }],
		["path", { d: "M16 16H8V8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-arrow-down-right.js
var SquareArrowDownRight;
var init_square_arrow_down_right = __esmMin((() => {
	SquareArrowDownRight = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "m8 8 8 8" }],
		["path", { d: "M16 8v8H8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-arrow-down.js
var SquareArrowDown;
var init_square_arrow_down = __esmMin((() => {
	SquareArrowDown = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M12 8v8" }],
		["path", { d: "m8 12 4 4 4-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-arrow-left.js
var SquareArrowLeft;
var init_square_arrow_left = __esmMin((() => {
	SquareArrowLeft = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "m12 8-4 4 4 4" }],
		["path", { d: "M16 12H8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-arrow-out-down-left.js
var SquareArrowOutDownLeft;
var init_square_arrow_out_down_left = __esmMin((() => {
	SquareArrowOutDownLeft = [
		["path", { d: "M13 21h6a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v6" }],
		["path", { d: "m3 21 9-9" }],
		["path", { d: "M9 21H3v-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-arrow-out-down-right.js
var SquareArrowOutDownRight;
var init_square_arrow_out_down_right = __esmMin((() => {
	SquareArrowOutDownRight = [
		["path", { d: "M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6" }],
		["path", { d: "m21 21-9-9" }],
		["path", { d: "M21 15v6h-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-arrow-out-up-left.js
var SquareArrowOutUpLeft;
var init_square_arrow_out_up_left = __esmMin((() => {
	SquareArrowOutUpLeft = [
		["path", { d: "M13 3h6a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-6" }],
		["path", { d: "m3 3 9 9" }],
		["path", { d: "M3 9V3h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-arrow-out-up-right.js
var SquareArrowOutUpRight;
var init_square_arrow_out_up_right = __esmMin((() => {
	SquareArrowOutUpRight = [
		["path", { d: "M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6" }],
		["path", { d: "m21 3-9 9" }],
		["path", { d: "M15 3h6v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-arrow-right.js
var SquareArrowRight;
var init_square_arrow_right = __esmMin((() => {
	SquareArrowRight = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M8 12h8" }],
		["path", { d: "m12 16 4-4-4-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-arrow-up-left.js
var SquareArrowUpLeft;
var init_square_arrow_up_left = __esmMin((() => {
	SquareArrowUpLeft = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M8 16V8h8" }],
		["path", { d: "M16 16 8 8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-arrow-up-right.js
var SquareArrowUpRight;
var init_square_arrow_up_right = __esmMin((() => {
	SquareArrowUpRight = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M8 8h8v8" }],
		["path", { d: "m8 16 8-8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-arrow-up.js
var SquareArrowUp;
var init_square_arrow_up = __esmMin((() => {
	SquareArrowUp = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "m16 12-4-4-4 4" }],
		["path", { d: "M12 16V8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-asterisk.js
var SquareAsterisk;
var init_square_asterisk = __esmMin((() => {
	SquareAsterisk = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M12 8v8" }],
		["path", { d: "m8.5 14 7-4" }],
		["path", { d: "m8.5 10 7 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-bottom-dashed-scissors.js
var SquareBottomDashedScissors;
var init_square_bottom_dashed_scissors = __esmMin((() => {
	SquareBottomDashedScissors = [
		["line", {
			x1: "5",
			y1: "3",
			x2: "19",
			y2: "3"
		}],
		["line", {
			x1: "3",
			y1: "5",
			x2: "3",
			y2: "19"
		}],
		["line", {
			x1: "21",
			y1: "5",
			x2: "21",
			y2: "19"
		}],
		["line", {
			x1: "9",
			y1: "21",
			x2: "10",
			y2: "21"
		}],
		["line", {
			x1: "14",
			y1: "21",
			x2: "15",
			y2: "21"
		}],
		["path", { d: "M 3 5 A2 2 0 0 1 5 3" }],
		["path", { d: "M 19 3 A2 2 0 0 1 21 5" }],
		["path", { d: "M 5 21 A2 2 0 0 1 3 19" }],
		["path", { d: "M 21 19 A2 2 0 0 1 19 21" }],
		["circle", {
			cx: "8.5",
			cy: "8.5",
			r: "1.5"
		}],
		["line", {
			x1: "9.56066",
			y1: "9.56066",
			x2: "12",
			y2: "12"
		}],
		["line", {
			x1: "17",
			y1: "17",
			x2: "14.82",
			y2: "14.82"
		}],
		["circle", {
			cx: "8.5",
			cy: "15.5",
			r: "1.5"
		}],
		["line", {
			x1: "9.56066",
			y1: "14.43934",
			x2: "17",
			y2: "7"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-check-big.js
var SquareCheckBig;
var init_square_check_big = __esmMin((() => {
	SquareCheckBig = [["path", { d: "M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344" }], ["path", { d: "m9 11 3 3L22 4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-chart-gantt.js
var SquareChartGantt;
var init_square_chart_gantt = __esmMin((() => {
	SquareChartGantt = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M9 8h7" }],
		["path", { d: "M8 12h6" }],
		["path", { d: "M11 16h5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-check.js
var SquareCheck;
var init_square_check = __esmMin((() => {
	SquareCheck = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["path", { d: "m9 12 2 2 4-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-chevron-down.js
var SquareChevronDown;
var init_square_chevron_down = __esmMin((() => {
	SquareChevronDown = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["path", { d: "m16 10-4 4-4-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-chevron-left.js
var SquareChevronLeft;
var init_square_chevron_left = __esmMin((() => {
	SquareChevronLeft = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["path", { d: "m14 16-4-4 4-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-chevron-right.js
var SquareChevronRight;
var init_square_chevron_right = __esmMin((() => {
	SquareChevronRight = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["path", { d: "m10 8 4 4-4 4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-chevron-up.js
var SquareChevronUp;
var init_square_chevron_up = __esmMin((() => {
	SquareChevronUp = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["path", { d: "m8 14 4-4 4 4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-code.js
var SquareCode;
var init_square_code = __esmMin((() => {
	SquareCode = [
		["path", { d: "m10 9-3 3 3 3" }],
		["path", { d: "m14 15 3-3-3-3" }],
		["rect", {
			x: "3",
			y: "3",
			width: "18",
			height: "18",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-dashed-bottom-code.js
var SquareDashedBottomCode;
var init_square_dashed_bottom_code = __esmMin((() => {
	SquareDashedBottomCode = [
		["path", { d: "M10 9.5 8 12l2 2.5" }],
		["path", { d: "M14 21h1" }],
		["path", { d: "m14 9.5 2 2.5-2 2.5" }],
		["path", { d: "M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2" }],
		["path", { d: "M9 21h1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-dashed-kanban.js
var SquareDashedKanban;
var init_square_dashed_kanban = __esmMin((() => {
	SquareDashedKanban = [
		["path", { d: "M8 7v7" }],
		["path", { d: "M12 7v4" }],
		["path", { d: "M16 7v9" }],
		["path", { d: "M5 3a2 2 0 0 0-2 2" }],
		["path", { d: "M9 3h1" }],
		["path", { d: "M14 3h1" }],
		["path", { d: "M19 3a2 2 0 0 1 2 2" }],
		["path", { d: "M21 9v1" }],
		["path", { d: "M21 14v1" }],
		["path", { d: "M21 19a2 2 0 0 1-2 2" }],
		["path", { d: "M14 21h1" }],
		["path", { d: "M9 21h1" }],
		["path", { d: "M5 21a2 2 0 0 1-2-2" }],
		["path", { d: "M3 14v1" }],
		["path", { d: "M3 9v1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-dashed-mouse-pointer.js
var SquareDashedMousePointer;
var init_square_dashed_mouse_pointer = __esmMin((() => {
	SquareDashedMousePointer = [
		["path", { d: "M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z" }],
		["path", { d: "M5 3a2 2 0 0 0-2 2" }],
		["path", { d: "M19 3a2 2 0 0 1 2 2" }],
		["path", { d: "M5 21a2 2 0 0 1-2-2" }],
		["path", { d: "M9 3h1" }],
		["path", { d: "M9 21h2" }],
		["path", { d: "M14 3h1" }],
		["path", { d: "M3 9v1" }],
		["path", { d: "M21 9v2" }],
		["path", { d: "M3 14v1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-dashed-bottom.js
var SquareDashedBottom;
var init_square_dashed_bottom = __esmMin((() => {
	SquareDashedBottom = [
		["path", { d: "M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2" }],
		["path", { d: "M9 21h1" }],
		["path", { d: "M14 21h1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-dashed-top-solid.js
var SquareDashedTopSolid;
var init_square_dashed_top_solid = __esmMin((() => {
	SquareDashedTopSolid = [
		["path", { d: "M14 21h1" }],
		["path", { d: "M21 14v1" }],
		["path", { d: "M21 19a2 2 0 0 1-2 2" }],
		["path", { d: "M21 9v1" }],
		["path", { d: "M3 14v1" }],
		["path", { d: "M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2" }],
		["path", { d: "M3 9v1" }],
		["path", { d: "M5 21a2 2 0 0 1-2-2" }],
		["path", { d: "M9 21h1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-dashed.js
var SquareDashed;
var init_square_dashed = __esmMin((() => {
	SquareDashed = [
		["path", { d: "M5 3a2 2 0 0 0-2 2" }],
		["path", { d: "M19 3a2 2 0 0 1 2 2" }],
		["path", { d: "M21 19a2 2 0 0 1-2 2" }],
		["path", { d: "M5 21a2 2 0 0 1-2-2" }],
		["path", { d: "M9 3h1" }],
		["path", { d: "M9 21h1" }],
		["path", { d: "M14 3h1" }],
		["path", { d: "M14 21h1" }],
		["path", { d: "M3 9v1" }],
		["path", { d: "M21 9v1" }],
		["path", { d: "M3 14v1" }],
		["path", { d: "M21 14v1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-divide.js
var SquareDivide;
var init_square_divide = __esmMin((() => {
	SquareDivide = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2",
			ry: "2"
		}],
		["line", {
			x1: "8",
			x2: "16",
			y1: "12",
			y2: "12"
		}],
		["line", {
			x1: "12",
			x2: "12",
			y1: "16",
			y2: "16"
		}],
		["line", {
			x1: "12",
			x2: "12",
			y1: "8",
			y2: "8"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-dot.js
var SquareDot;
var init_square_dot = __esmMin((() => {
	SquareDot = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["circle", {
		cx: "12",
		cy: "12",
		r: "1"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-function.js
var SquareFunction;
var init_square_function = __esmMin((() => {
	SquareFunction = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2",
			ry: "2"
		}],
		["path", { d: "M9 17c2 0 2.8-1 2.8-2.8V10c0-2 1-3.3 3.2-3" }],
		["path", { d: "M9 11.2h5.7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-equal.js
var SquareEqual;
var init_square_equal = __esmMin((() => {
	SquareEqual = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M7 10h10" }],
		["path", { d: "M7 14h10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-kanban.js
var SquareKanban;
var init_square_kanban = __esmMin((() => {
	SquareKanban = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M8 7v7" }],
		["path", { d: "M12 7v4" }],
		["path", { d: "M16 7v9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-library.js
var SquareLibrary;
var init_square_library = __esmMin((() => {
	SquareLibrary = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M7 7v10" }],
		["path", { d: "M11 7v10" }],
		["path", { d: "m15 7 2 10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-m.js
var SquareM;
var init_square_m = __esmMin((() => {
	SquareM = [["path", { d: "M8 16V8.5a.5.5 0 0 1 .9-.3l2.7 3.599a.5.5 0 0 0 .8 0l2.7-3.6a.5.5 0 0 1 .9.3V16" }], ["rect", {
		x: "3",
		y: "3",
		width: "18",
		height: "18",
		rx: "2"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-menu.js
var SquareMenu;
var init_square_menu = __esmMin((() => {
	SquareMenu = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M7 8h10" }],
		["path", { d: "M7 12h10" }],
		["path", { d: "M7 16h10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-minus.js
var SquareMinus;
var init_square_minus = __esmMin((() => {
	SquareMinus = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["path", { d: "M8 12h8" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-mouse-pointer.js
var SquareMousePointer;
var init_square_mouse_pointer = __esmMin((() => {
	SquareMousePointer = [["path", { d: "M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z" }], ["path", { d: "M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-parking-off.js
var SquareParkingOff;
var init_square_parking_off = __esmMin((() => {
	SquareParkingOff = [
		["path", { d: "M3.6 3.6A2 2 0 0 1 5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-.59 1.41" }],
		["path", { d: "M3 8.7V19a2 2 0 0 0 2 2h10.3" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M13 13a3 3 0 1 0 0-6H9v2" }],
		["path", { d: "M9 17v-2.3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-parking.js
var SquareParking;
var init_square_parking = __esmMin((() => {
	SquareParking = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["path", { d: "M9 17V7h4a3 3 0 0 1 0 6H9" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-pause.js
var SquarePause;
var init_square_pause = __esmMin((() => {
	SquarePause = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["line", {
			x1: "10",
			x2: "10",
			y1: "15",
			y2: "9"
		}],
		["line", {
			x1: "14",
			x2: "14",
			y1: "15",
			y2: "9"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-pen.js
var SquarePen;
var init_square_pen = __esmMin((() => {
	SquarePen = [["path", { d: "M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }], ["path", { d: "M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-percent.js
var SquarePercent;
var init_square_percent = __esmMin((() => {
	SquarePercent = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "m15 9-6 6" }],
		["path", { d: "M9 9h.01" }],
		["path", { d: "M15 15h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-pi.js
var SquarePi;
var init_square_pi = __esmMin((() => {
	SquarePi = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M7 7h10" }],
		["path", { d: "M10 7v10" }],
		["path", { d: "M16 17a2 2 0 0 1-2-2V7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-pilcrow.js
var SquarePilcrow;
var init_square_pilcrow = __esmMin((() => {
	SquarePilcrow = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M12 12H9.5a2.5 2.5 0 0 1 0-5H17" }],
		["path", { d: "M12 7v10" }],
		["path", { d: "M16 7v10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-play.js
var SquarePlay;
var init_square_play = __esmMin((() => {
	SquarePlay = [["rect", {
		x: "3",
		y: "3",
		width: "18",
		height: "18",
		rx: "2"
	}], ["path", { d: "M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-plus.js
var SquarePlus;
var init_square_plus = __esmMin((() => {
	SquarePlus = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M8 12h8" }],
		["path", { d: "M12 8v8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-power.js
var SquarePower;
var init_square_power = __esmMin((() => {
	SquarePower = [
		["path", { d: "M12 7v4" }],
		["path", { d: "M7.998 9.003a5 5 0 1 0 8-.005" }],
		["rect", {
			x: "3",
			y: "3",
			width: "18",
			height: "18",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-radical.js
var SquareRadical;
var init_square_radical = __esmMin((() => {
	SquareRadical = [["path", { d: "M7 12h2l2 5 2-10h4" }], ["rect", {
		x: "3",
		y: "3",
		width: "18",
		height: "18",
		rx: "2"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-round-corner.js
var SquareRoundCorner;
var init_square_round_corner = __esmMin((() => {
	SquareRoundCorner = [["path", { d: "M21 11a8 8 0 0 0-8-8" }], ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-scissors.js
var SquareScissors;
var init_square_scissors = __esmMin((() => {
	SquareScissors = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["circle", {
			cx: "8.5",
			cy: "8.5",
			r: "1.5"
		}],
		["line", {
			x1: "9.56066",
			y1: "9.56066",
			x2: "12",
			y2: "12"
		}],
		["line", {
			x1: "17",
			y1: "17",
			x2: "14.82",
			y2: "14.82"
		}],
		["circle", {
			cx: "8.5",
			cy: "15.5",
			r: "1.5"
		}],
		["line", {
			x1: "9.56066",
			y1: "14.43934",
			x2: "17",
			y2: "7"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-sigma.js
var SquareSigma;
var init_square_sigma = __esmMin((() => {
	SquareSigma = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["path", { d: "M16 8.9V7H8l4 5-4 5h8v-1.9" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-slash.js
var SquareSlash;
var init_square_slash = __esmMin((() => {
	SquareSlash = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["line", {
		x1: "9",
		x2: "15",
		y1: "15",
		y2: "9"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-split-horizontal.js
var SquareSplitHorizontal;
var init_square_split_horizontal = __esmMin((() => {
	SquareSplitHorizontal = [
		["path", { d: "M8 19H5c-1 0-2-1-2-2V7c0-1 1-2 2-2h3" }],
		["path", { d: "M16 5h3c1 0 2 1 2 2v10c0 1-1 2-2 2h-3" }],
		["line", {
			x1: "12",
			x2: "12",
			y1: "4",
			y2: "20"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-split-vertical.js
var SquareSplitVertical;
var init_square_split_vertical = __esmMin((() => {
	SquareSplitVertical = [
		["path", { d: "M5 8V5c0-1 1-2 2-2h10c1 0 2 1 2 2v3" }],
		["path", { d: "M19 16v3c0 1-1 2-2 2H7c-1 0-2-1-2-2v-3" }],
		["line", {
			x1: "4",
			x2: "20",
			y1: "12",
			y2: "12"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-square.js
var SquareSquare;
var init_square_square = __esmMin((() => {
	SquareSquare = [["rect", {
		x: "3",
		y: "3",
		width: "18",
		height: "18",
		rx: "2"
	}], ["rect", {
		x: "8",
		y: "8",
		width: "8",
		height: "8",
		rx: "1"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-stack.js
var SquareStack;
var init_square_stack = __esmMin((() => {
	SquareStack = [
		["path", { d: "M4 10c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2" }],
		["path", { d: "M10 16c-1.1 0-2-.9-2-2v-4c0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2" }],
		["rect", {
			width: "8",
			height: "8",
			x: "14",
			y: "14",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-star.js
var SquareStar;
var init_square_star = __esmMin((() => {
	SquareStar = [["path", { d: "M11.035 7.69a1 1 0 0 1 1.909.024l.737 1.452a1 1 0 0 0 .737.535l1.634.256a1 1 0 0 1 .588 1.806l-1.172 1.168a1 1 0 0 0-.282.866l.259 1.613a1 1 0 0 1-1.541 1.134l-1.465-.75a1 1 0 0 0-.912 0l-1.465.75a1 1 0 0 1-1.539-1.133l.258-1.613a1 1 0 0 0-.282-.866l-1.156-1.153a1 1 0 0 1 .572-1.822l1.633-.256a1 1 0 0 0 .737-.535z" }], ["rect", {
		x: "3",
		y: "3",
		width: "18",
		height: "18",
		rx: "2"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-stop.js
var SquareStop;
var init_square_stop = __esmMin((() => {
	SquareStop = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}], ["rect", {
		x: "9",
		y: "9",
		width: "6",
		height: "6",
		rx: "1"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-terminal.js
var SquareTerminal;
var init_square_terminal = __esmMin((() => {
	SquareTerminal = [
		["path", { d: "m7 11 2-2-2-2" }],
		["path", { d: "M11 13h4" }],
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2",
			ry: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-user-round.js
var SquareUserRound;
var init_square_user_round = __esmMin((() => {
	SquareUserRound = [
		["path", { d: "M18 21a6 6 0 0 0-12 0" }],
		["circle", {
			cx: "12",
			cy: "11",
			r: "4"
		}],
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-user.js
var SquareUser;
var init_square_user = __esmMin((() => {
	SquareUser = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["circle", {
			cx: "12",
			cy: "10",
			r: "3"
		}],
		["path", { d: "M7 21v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square-x.js
var SquareX;
var init_square_x = __esmMin((() => {
	SquareX = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2",
			ry: "2"
		}],
		["path", { d: "m15 9-6 6" }],
		["path", { d: "m9 9 6 6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/square.js
var Square;
var init_square = __esmMin((() => {
	Square = [["rect", {
		width: "18",
		height: "18",
		x: "3",
		y: "3",
		rx: "2"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/squares-exclude.js
var SquaresExclude;
var init_squares_exclude = __esmMin((() => {
	SquaresExclude = [["path", { d: "M16 12v2a2 2 0 0 1-2 2H9a1 1 0 0 0-1 1v3a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2h0" }], ["path", { d: "M4 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v3a1 1 0 0 1-1 1h-5a2 2 0 0 0-2 2v2" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/squares-subtract.js
var SquaresSubtract;
var init_squares_subtract = __esmMin((() => {
	SquaresSubtract = [
		["path", { d: "M10 22a2 2 0 0 1-2-2" }],
		["path", { d: "M16 22h-2" }],
		["path", { d: "M16 4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h3a1 1 0 0 0 1-1v-5a2 2 0 0 1 2-2h5a1 1 0 0 0 1-1z" }],
		["path", { d: "M20 8a2 2 0 0 1 2 2" }],
		["path", { d: "M22 14v2" }],
		["path", { d: "M22 20a2 2 0 0 1-2 2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/squares-intersect.js
var SquaresIntersect;
var init_squares_intersect = __esmMin((() => {
	SquaresIntersect = [
		["path", { d: "M10 22a2 2 0 0 1-2-2" }],
		["path", { d: "M14 2a2 2 0 0 1 2 2" }],
		["path", { d: "M16 22h-2" }],
		["path", { d: "M2 10V8" }],
		["path", { d: "M2 4a2 2 0 0 1 2-2" }],
		["path", { d: "M20 8a2 2 0 0 1 2 2" }],
		["path", { d: "M22 14v2" }],
		["path", { d: "M22 20a2 2 0 0 1-2 2" }],
		["path", { d: "M4 16a2 2 0 0 1-2-2" }],
		["path", { d: "M8 10a2 2 0 0 1 2-2h5a1 1 0 0 1 1 1v5a2 2 0 0 1-2 2H9a1 1 0 0 1-1-1z" }],
		["path", { d: "M8 2h2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/squares-unite.js
var SquaresUnite;
var init_squares_unite = __esmMin((() => {
	SquaresUnite = [["path", { d: "M4 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v3a1 1 0 0 0 1 1h3a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2v-3a1 1 0 0 0-1-1z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/squircle-dashed.js
var SquircleDashed;
var init_squircle_dashed = __esmMin((() => {
	SquircleDashed = [
		["path", { d: "M13.77 3.043a34 34 0 0 0-3.54 0" }],
		["path", { d: "M13.771 20.956a33 33 0 0 1-3.541.001" }],
		["path", { d: "M20.18 17.74c-.51 1.15-1.29 1.93-2.439 2.44" }],
		["path", { d: "M20.18 6.259c-.51-1.148-1.291-1.929-2.44-2.438" }],
		["path", { d: "M20.957 10.23a33 33 0 0 1 0 3.54" }],
		["path", { d: "M3.043 10.23a34 34 0 0 0 .001 3.541" }],
		["path", { d: "M6.26 20.179c-1.15-.508-1.93-1.29-2.44-2.438" }],
		["path", { d: "M6.26 3.82c-1.149.51-1.93 1.291-2.44 2.44" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/squirrel.js
var Squirrel;
var init_squirrel = __esmMin((() => {
	Squirrel = [
		["path", { d: "M15.236 22a3 3 0 0 0-2.2-5" }],
		["path", { d: "M16 20a3 3 0 0 1 3-3h1a2 2 0 0 0 2-2v-2a4 4 0 0 0-4-4V4" }],
		["path", { d: "M18 13h.01" }],
		["path", { d: "M18 6a4 4 0 0 0-4 4 7 7 0 0 0-7 7c0-5 4-5 4-10.5a4.5 4.5 0 1 0-9 0 2.5 2.5 0 0 0 5 0C7 10 3 11 3 17c0 2.8 2.2 5 5 5h10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/squircle.js
var Squircle;
var init_squircle = __esmMin((() => {
	Squircle = [["path", { d: "M12 3c7.2 0 9 1.8 9 9s-1.8 9-9 9-9-1.8-9-9 1.8-9 9-9" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/stamp.js
var Stamp;
var init_stamp = __esmMin((() => {
	Stamp = [
		["path", { d: "M14 13V8.5C14 7 15 7 15 5a3 3 0 0 0-6 0c0 2 1 2 1 3.5V13" }],
		["path", { d: "M20 15.5a2.5 2.5 0 0 0-2.5-2.5h-11A2.5 2.5 0 0 0 4 15.5V17a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1z" }],
		["path", { d: "M5 22h14" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/star-half.js
var StarHalf;
var init_star_half = __esmMin((() => {
	StarHalf = [["path", { d: "M12 18.338a2.1 2.1 0 0 0-.987.244L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16l2.309-4.679A.53.53 0 0 1 12 2" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/star-off.js
var StarOff;
var init_star_off = __esmMin((() => {
	StarOff = [
		["path", { d: "M8.34 8.34 2 9.27l5 4.87L5.82 21 12 17.77 18.18 21l-.59-3.43" }],
		["path", { d: "M18.42 12.76 22 9.27l-6.91-1L12 2l-1.44 2.91" }],
		["line", {
			x1: "2",
			x2: "22",
			y1: "2",
			y2: "22"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/star.js
var Star;
var init_star = __esmMin((() => {
	Star = [["path", { d: "M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/step-back.js
var StepBack;
var init_step_back = __esmMin((() => {
	StepBack = [["path", { d: "M13.971 4.285A2 2 0 0 1 17 6v12a2 2 0 0 1-3.029 1.715l-9.997-5.998a2 2 0 0 1-.003-3.432z" }], ["path", { d: "M21 20V4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/step-forward.js
var StepForward;
var init_step_forward = __esmMin((() => {
	StepForward = [["path", { d: "M10.029 4.285A2 2 0 0 0 7 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z" }], ["path", { d: "M3 4v16" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/stethoscope.js
var Stethoscope;
var init_stethoscope = __esmMin((() => {
	Stethoscope = [
		["path", { d: "M11 2v2" }],
		["path", { d: "M5 2v2" }],
		["path", { d: "M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1" }],
		["path", { d: "M8 15a6 6 0 0 0 12 0v-3" }],
		["circle", {
			cx: "20",
			cy: "10",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sticker.js
var Sticker;
var init_sticker = __esmMin((() => {
	Sticker = [
		["path", { d: "M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z" }],
		["path", { d: "M15 3v5a1 1 0 0 0 1 1h5" }],
		["path", { d: "M8 13h.01" }],
		["path", { d: "M16 13h.01" }],
		["path", { d: "M10 16s.8 1 2 1c1.3 0 2-1 2-1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sticky-note.js
var StickyNote;
var init_sticky_note = __esmMin((() => {
	StickyNote = [["path", { d: "M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z" }], ["path", { d: "M15 3v5a1 1 0 0 0 1 1h5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/stretch-horizontal.js
var StretchHorizontal;
var init_stretch_horizontal = __esmMin((() => {
	StretchHorizontal = [["rect", {
		width: "20",
		height: "6",
		x: "2",
		y: "4",
		rx: "2"
	}], ["rect", {
		width: "20",
		height: "6",
		x: "2",
		y: "14",
		rx: "2"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/store.js
var Store$1;
var init_store$1 = __esmMin((() => {
	Store$1 = [
		["path", { d: "M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5" }],
		["path", { d: "M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244" }],
		["path", { d: "M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/stretch-vertical.js
var StretchVertical;
var init_stretch_vertical = __esmMin((() => {
	StretchVertical = [["rect", {
		width: "6",
		height: "20",
		x: "4",
		y: "2",
		rx: "2"
	}], ["rect", {
		width: "6",
		height: "20",
		x: "14",
		y: "2",
		rx: "2"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/strikethrough.js
var Strikethrough;
var init_strikethrough = __esmMin((() => {
	Strikethrough = [
		["path", { d: "M16 4H9a3 3 0 0 0-2.83 4" }],
		["path", { d: "M14 12a4 4 0 0 1 0 8H6" }],
		["line", {
			x1: "4",
			x2: "20",
			y1: "12",
			y2: "12"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/subscript.js
var Subscript;
var init_subscript = __esmMin((() => {
	Subscript = [
		["path", { d: "m4 5 8 8" }],
		["path", { d: "m12 5-8 8" }],
		["path", { d: "M20 19h-4c0-1.5.44-2 1.5-2.5S20 15.33 20 14c0-.47-.17-.93-.48-1.29a2.11 2.11 0 0 0-2.62-.44c-.42.24-.74.62-.9 1.07" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sun-medium.js
var SunMedium;
var init_sun_medium = __esmMin((() => {
	SunMedium = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "4"
		}],
		["path", { d: "M12 3v1" }],
		["path", { d: "M12 20v1" }],
		["path", { d: "M3 12h1" }],
		["path", { d: "M20 12h1" }],
		["path", { d: "m18.364 5.636-.707.707" }],
		["path", { d: "m6.343 17.657-.707.707" }],
		["path", { d: "m5.636 5.636.707.707" }],
		["path", { d: "m17.657 17.657.707.707" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sun-dim.js
var SunDim;
var init_sun_dim = __esmMin((() => {
	SunDim = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "4"
		}],
		["path", { d: "M12 4h.01" }],
		["path", { d: "M20 12h.01" }],
		["path", { d: "M12 20h.01" }],
		["path", { d: "M4 12h.01" }],
		["path", { d: "M17.657 6.343h.01" }],
		["path", { d: "M17.657 17.657h.01" }],
		["path", { d: "M6.343 17.657h.01" }],
		["path", { d: "M6.343 6.343h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sun-snow.js
var SunSnow;
var init_sun_snow = __esmMin((() => {
	SunSnow = [
		["path", { d: "M10 21v-1" }],
		["path", { d: "M10 4V3" }],
		["path", { d: "M10 9a3 3 0 0 0 0 6" }],
		["path", { d: "m14 20 1.25-2.5L18 18" }],
		["path", { d: "m14 4 1.25 2.5L18 6" }],
		["path", { d: "m17 21-3-6 1.5-3H22" }],
		["path", { d: "m17 3-3 6 1.5 3" }],
		["path", { d: "M2 12h1" }],
		["path", { d: "m20 10-1.5 2 1.5 2" }],
		["path", { d: "m3.64 18.36.7-.7" }],
		["path", { d: "m4.34 6.34-.7-.7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sun-moon.js
var SunMoon;
var init_sun_moon = __esmMin((() => {
	SunMoon = [
		["path", { d: "M12 2v2" }],
		["path", { d: "M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715" }],
		["path", { d: "M16 12a4 4 0 0 0-4-4" }],
		["path", { d: "m19 5-1.256 1.256" }],
		["path", { d: "M20 12h2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sun.js
var Sun;
var init_sun = __esmMin((() => {
	Sun = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "4"
		}],
		["path", { d: "M12 2v2" }],
		["path", { d: "M12 20v2" }],
		["path", { d: "m4.93 4.93 1.41 1.41" }],
		["path", { d: "m17.66 17.66 1.41 1.41" }],
		["path", { d: "M2 12h2" }],
		["path", { d: "M20 12h2" }],
		["path", { d: "m6.34 17.66-1.41 1.41" }],
		["path", { d: "m19.07 4.93-1.41 1.41" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sunrise.js
var Sunrise;
var init_sunrise = __esmMin((() => {
	Sunrise = [
		["path", { d: "M12 2v8" }],
		["path", { d: "m4.93 10.93 1.41 1.41" }],
		["path", { d: "M2 18h2" }],
		["path", { d: "M20 18h2" }],
		["path", { d: "m19.07 10.93-1.41 1.41" }],
		["path", { d: "M22 22H2" }],
		["path", { d: "m8 6 4-4 4 4" }],
		["path", { d: "M16 18a4 4 0 0 0-8 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sunset.js
var Sunset;
var init_sunset = __esmMin((() => {
	Sunset = [
		["path", { d: "M12 10V2" }],
		["path", { d: "m4.93 10.93 1.41 1.41" }],
		["path", { d: "M2 18h2" }],
		["path", { d: "M20 18h2" }],
		["path", { d: "m19.07 10.93-1.41 1.41" }],
		["path", { d: "M22 22H2" }],
		["path", { d: "m16 6-4 4-4-4" }],
		["path", { d: "M16 18a4 4 0 0 0-8 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/superscript.js
var Superscript;
var init_superscript = __esmMin((() => {
	Superscript = [
		["path", { d: "m4 19 8-8" }],
		["path", { d: "m12 19-8-8" }],
		["path", { d: "M20 12h-4c0-1.5.442-2 1.5-2.5S20 8.334 20 7.002c0-.472-.17-.93-.484-1.29a2.105 2.105 0 0 0-2.617-.436c-.42.239-.738.614-.899 1.06" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/swatch-book.js
var SwatchBook;
var init_swatch_book = __esmMin((() => {
	SwatchBook = [
		["path", { d: "M11 17a4 4 0 0 1-8 0V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2Z" }],
		["path", { d: "M16.7 13H19a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H7" }],
		["path", { d: "M 7 17h.01" }],
		["path", { d: "m11 8 2.3-2.3a2.4 2.4 0 0 1 3.404.004L18.6 7.6a2.4 2.4 0 0 1 .026 3.434L9.9 19.8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/swiss-franc.js
var SwissFranc;
var init_swiss_franc = __esmMin((() => {
	SwissFranc = [
		["path", { d: "M10 21V3h8" }],
		["path", { d: "M6 16h9" }],
		["path", { d: "M10 9.5h7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/switch-camera.js
var SwitchCamera;
var init_switch_camera = __esmMin((() => {
	SwitchCamera = [
		["path", { d: "M11 19H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h5" }],
		["path", { d: "M13 5h7a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "3"
		}],
		["path", { d: "m18 22-3-3 3-3" }],
		["path", { d: "m6 2 3 3-3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/sword.js
var Sword;
var init_sword = __esmMin((() => {
	Sword = [
		["path", { d: "m11 19-6-6" }],
		["path", { d: "m5 21-2-2" }],
		["path", { d: "m8 16-4 4" }],
		["path", { d: "M9.5 17.5 21 6V3h-3L6.5 14.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/swords.js
var Swords;
var init_swords = __esmMin((() => {
	Swords = [
		["polyline", { points: "14.5 17.5 3 6 3 3 6 3 17.5 14.5" }],
		["line", {
			x1: "13",
			x2: "19",
			y1: "19",
			y2: "13"
		}],
		["line", {
			x1: "16",
			x2: "20",
			y1: "16",
			y2: "20"
		}],
		["line", {
			x1: "19",
			x2: "21",
			y1: "21",
			y2: "19"
		}],
		["polyline", { points: "14.5 6.5 18 3 21 3 21 6 17.5 9.5" }],
		["line", {
			x1: "5",
			x2: "9",
			y1: "14",
			y2: "18"
		}],
		["line", {
			x1: "7",
			x2: "4",
			y1: "17",
			y2: "20"
		}],
		["line", {
			x1: "3",
			x2: "5",
			y1: "19",
			y2: "21"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/syringe.js
var Syringe;
var init_syringe = __esmMin((() => {
	Syringe = [
		["path", { d: "m18 2 4 4" }],
		["path", { d: "m17 7 3-3" }],
		["path", { d: "M19 9 8.7 19.3c-1 1-2.5 1-3.4 0l-.6-.6c-1-1-1-2.5 0-3.4L15 5" }],
		["path", { d: "m9 11 4 4" }],
		["path", { d: "m5 19-3 3" }],
		["path", { d: "m14 4 6 6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/table-2.js
var Table2;
var init_table_2 = __esmMin((() => {
	Table2 = [["path", { d: "M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/table-cells-merge.js
var TableCellsMerge;
var init_table_cells_merge = __esmMin((() => {
	TableCellsMerge = [
		["path", { d: "M12 21v-6" }],
		["path", { d: "M12 9V3" }],
		["path", { d: "M3 15h18" }],
		["path", { d: "M3 9h18" }],
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/table-cells-split.js
var TableCellsSplit;
var init_table_cells_split = __esmMin((() => {
	TableCellsSplit = [
		["path", { d: "M12 15V9" }],
		["path", { d: "M3 15h18" }],
		["path", { d: "M3 9h18" }],
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/table-columns-split.js
var TableColumnsSplit;
var init_table_columns_split = __esmMin((() => {
	TableColumnsSplit = [
		["path", { d: "M14 14v2" }],
		["path", { d: "M14 20v2" }],
		["path", { d: "M14 2v2" }],
		["path", { d: "M14 8v2" }],
		["path", { d: "M2 15h8" }],
		["path", { d: "M2 3h6a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H2" }],
		["path", { d: "M2 9h8" }],
		["path", { d: "M22 15h-4" }],
		["path", { d: "M22 3h-2a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h2" }],
		["path", { d: "M22 9h-4" }],
		["path", { d: "M5 3v18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/table-of-contents.js
var TableOfContents;
var init_table_of_contents = __esmMin((() => {
	TableOfContents = [
		["path", { d: "M16 5H3" }],
		["path", { d: "M16 12H3" }],
		["path", { d: "M16 19H3" }],
		["path", { d: "M21 5h.01" }],
		["path", { d: "M21 12h.01" }],
		["path", { d: "M21 19h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/table-properties.js
var TableProperties;
var init_table_properties = __esmMin((() => {
	TableProperties = [
		["path", { d: "M15 3v18" }],
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M21 9H3" }],
		["path", { d: "M21 15H3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/table-rows-split.js
var TableRowsSplit;
var init_table_rows_split = __esmMin((() => {
	TableRowsSplit = [
		["path", { d: "M14 10h2" }],
		["path", { d: "M15 22v-8" }],
		["path", { d: "M15 2v4" }],
		["path", { d: "M2 10h2" }],
		["path", { d: "M20 10h2" }],
		["path", { d: "M3 19h18" }],
		["path", { d: "M3 22v-6a2 2 135 0 1 2-2h14a2 2 45 0 1 2 2v6" }],
		["path", { d: "M3 2v2a2 2 45 0 0 2 2h14a2 2 135 0 0 2-2V2" }],
		["path", { d: "M8 10h2" }],
		["path", { d: "M9 22v-8" }],
		["path", { d: "M9 2v4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/table.js
var Table;
var init_table = __esmMin((() => {
	Table = [
		["path", { d: "M12 3v18" }],
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M3 9h18" }],
		["path", { d: "M3 15h18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tablet-smartphone.js
var TabletSmartphone;
var init_tablet_smartphone = __esmMin((() => {
	TabletSmartphone = [
		["rect", {
			width: "10",
			height: "14",
			x: "3",
			y: "8",
			rx: "2"
		}],
		["path", { d: "M5 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2h-2.4" }],
		["path", { d: "M8 18h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tablet.js
var Tablet;
var init_tablet = __esmMin((() => {
	Tablet = [["rect", {
		width: "16",
		height: "20",
		x: "4",
		y: "2",
		rx: "2",
		ry: "2"
	}], ["line", {
		x1: "12",
		x2: "12.01",
		y1: "18",
		y2: "18"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tablets.js
var Tablets;
var init_tablets = __esmMin((() => {
	Tablets = [
		["circle", {
			cx: "7",
			cy: "7",
			r: "5"
		}],
		["circle", {
			cx: "17",
			cy: "17",
			r: "5"
		}],
		["path", { d: "M12 17h10" }],
		["path", { d: "m3.46 10.54 7.08-7.08" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tag.js
var Tag;
var init_tag = __esmMin((() => {
	Tag = [["path", { d: "M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z" }], ["circle", {
		cx: "7.5",
		cy: "7.5",
		r: ".5",
		fill: "currentColor"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tags.js
var Tags;
var init_tags = __esmMin((() => {
	Tags = [
		["path", { d: "M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z" }],
		["path", { d: "M2 7v6.172a2 2 0 0 0 .586 1.414l6.71 6.71a2.4 2.4 0 0 0 3.191.193" }],
		["circle", {
			cx: "10.5",
			cy: "6.5",
			r: ".5",
			fill: "currentColor"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tally-1.js
var Tally1;
var init_tally_1 = __esmMin((() => {
	Tally1 = [["path", { d: "M4 4v16" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tally-2.js
var Tally2;
var init_tally_2 = __esmMin((() => {
	Tally2 = [["path", { d: "M4 4v16" }], ["path", { d: "M9 4v16" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tally-3.js
var Tally3;
var init_tally_3 = __esmMin((() => {
	Tally3 = [
		["path", { d: "M4 4v16" }],
		["path", { d: "M9 4v16" }],
		["path", { d: "M14 4v16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tally-4.js
var Tally4;
var init_tally_4 = __esmMin((() => {
	Tally4 = [
		["path", { d: "M4 4v16" }],
		["path", { d: "M9 4v16" }],
		["path", { d: "M14 4v16" }],
		["path", { d: "M19 4v16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tally-5.js
var Tally5;
var init_tally_5 = __esmMin((() => {
	Tally5 = [
		["path", { d: "M4 4v16" }],
		["path", { d: "M9 4v16" }],
		["path", { d: "M14 4v16" }],
		["path", { d: "M19 4v16" }],
		["path", { d: "M22 6 2 18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tangent.js
var Tangent;
var init_tangent = __esmMin((() => {
	Tangent = [
		["circle", {
			cx: "17",
			cy: "4",
			r: "2"
		}],
		["path", { d: "M15.59 5.41 5.41 15.59" }],
		["circle", {
			cx: "4",
			cy: "17",
			r: "2"
		}],
		["path", { d: "M12 22s-4-9-1.5-11.5S22 12 22 12" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/target.js
var Target;
var init_target = __esmMin((() => {
	Target = [
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}],
		["circle", {
			cx: "12",
			cy: "12",
			r: "6"
		}],
		["circle", {
			cx: "12",
			cy: "12",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/telescope.js
var Telescope;
var init_telescope = __esmMin((() => {
	Telescope = [
		["path", { d: "m10.065 12.493-6.18 1.318a.934.934 0 0 1-1.108-.702l-.537-2.15a1.07 1.07 0 0 1 .691-1.265l13.504-4.44" }],
		["path", { d: "m13.56 11.747 4.332-.924" }],
		["path", { d: "m16 21-3.105-6.21" }],
		["path", { d: "M16.485 5.94a2 2 0 0 1 1.455-2.425l1.09-.272a1 1 0 0 1 1.212.727l1.515 6.06a1 1 0 0 1-.727 1.213l-1.09.272a2 2 0 0 1-2.425-1.455z" }],
		["path", { d: "m6.158 8.633 1.114 4.456" }],
		["path", { d: "m8 21 3.105-6.21" }],
		["circle", {
			cx: "12",
			cy: "13",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tent-tree.js
var TentTree;
var init_tent_tree = __esmMin((() => {
	TentTree = [
		["circle", {
			cx: "4",
			cy: "4",
			r: "2"
		}],
		["path", { d: "m14 5 3-3 3 3" }],
		["path", { d: "m14 10 3-3 3 3" }],
		["path", { d: "M17 14V2" }],
		["path", { d: "M17 14H7l-5 8h20Z" }],
		["path", { d: "M8 14v8" }],
		["path", { d: "m9 14 5 8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tent.js
var Tent;
var init_tent = __esmMin((() => {
	Tent = [
		["path", { d: "M3.5 21 14 3" }],
		["path", { d: "M20.5 21 10 3" }],
		["path", { d: "M15.5 21 12 15l-3.5 6" }],
		["path", { d: "M2 21h20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/terminal.js
var Terminal;
var init_terminal = __esmMin((() => {
	Terminal = [["path", { d: "M12 19h8" }], ["path", { d: "m4 17 6-6-6-6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/test-tube-diagonal.js
var TestTubeDiagonal;
var init_test_tube_diagonal = __esmMin((() => {
	TestTubeDiagonal = [
		["path", { d: "M21 7 6.82 21.18a2.83 2.83 0 0 1-3.99-.01a2.83 2.83 0 0 1 0-4L17 3" }],
		["path", { d: "m16 2 6 6" }],
		["path", { d: "M12 16H4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/test-tube.js
var TestTube;
var init_test_tube = __esmMin((() => {
	TestTube = [
		["path", { d: "M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5c-1.4 0-2.5-1.1-2.5-2.5V2" }],
		["path", { d: "M8.5 2h7" }],
		["path", { d: "M14.5 16h-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/test-tubes.js
var TestTubes;
var init_test_tubes = __esmMin((() => {
	TestTubes = [
		["path", { d: "M9 2v17.5A2.5 2.5 0 0 1 6.5 22A2.5 2.5 0 0 1 4 19.5V2" }],
		["path", { d: "M20 2v17.5a2.5 2.5 0 0 1-2.5 2.5a2.5 2.5 0 0 1-2.5-2.5V2" }],
		["path", { d: "M3 2h7" }],
		["path", { d: "M14 2h7" }],
		["path", { d: "M9 16H4" }],
		["path", { d: "M20 16h-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/text-align-center.js
var TextAlignCenter;
var init_text_align_center = __esmMin((() => {
	TextAlignCenter = [
		["path", { d: "M21 5H3" }],
		["path", { d: "M17 12H7" }],
		["path", { d: "M19 19H5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/text-align-end.js
var TextAlignEnd;
var init_text_align_end = __esmMin((() => {
	TextAlignEnd = [
		["path", { d: "M21 5H3" }],
		["path", { d: "M21 12H9" }],
		["path", { d: "M21 19H7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/text-align-justify.js
var TextAlignJustify;
var init_text_align_justify = __esmMin((() => {
	TextAlignJustify = [
		["path", { d: "M3 5h18" }],
		["path", { d: "M3 12h18" }],
		["path", { d: "M3 19h18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/text-align-start.js
var TextAlignStart;
var init_text_align_start = __esmMin((() => {
	TextAlignStart = [
		["path", { d: "M21 5H3" }],
		["path", { d: "M15 12H3" }],
		["path", { d: "M17 19H3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/text-cursor-input.js
var TextCursorInput;
var init_text_cursor_input = __esmMin((() => {
	TextCursorInput = [
		["path", { d: "M12 20h-1a2 2 0 0 1-2-2 2 2 0 0 1-2 2H6" }],
		["path", { d: "M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7" }],
		["path", { d: "M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1" }],
		["path", { d: "M6 4h1a2 2 0 0 1 2 2 2 2 0 0 1 2-2h1" }],
		["path", { d: "M9 6v12" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/text-cursor.js
var TextCursor;
var init_text_cursor = __esmMin((() => {
	TextCursor = [
		["path", { d: "M17 22h-1a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4h1" }],
		["path", { d: "M7 22h1a4 4 0 0 0 4-4v-1" }],
		["path", { d: "M7 2h1a4 4 0 0 1 4 4v1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/text-initial.js
var TextInitial;
var init_text_initial = __esmMin((() => {
	TextInitial = [
		["path", { d: "M15 5h6" }],
		["path", { d: "M15 12h6" }],
		["path", { d: "M3 19h18" }],
		["path", { d: "m3 12 3.553-7.724a.5.5 0 0 1 .894 0L11 12" }],
		["path", { d: "M3.92 10h6.16" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/text-quote.js
var TextQuote;
var init_text_quote = __esmMin((() => {
	TextQuote = [
		["path", { d: "M17 5H3" }],
		["path", { d: "M21 12H8" }],
		["path", { d: "M21 19H8" }],
		["path", { d: "M3 12v7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/text-search.js
var TextSearch;
var init_text_search = __esmMin((() => {
	TextSearch = [
		["path", { d: "M21 5H3" }],
		["path", { d: "M10 12H3" }],
		["path", { d: "M10 19H3" }],
		["circle", {
			cx: "17",
			cy: "15",
			r: "3"
		}],
		["path", { d: "m21 19-1.9-1.9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/text-select.js
var TextSelect;
var init_text_select = __esmMin((() => {
	TextSelect = [
		["path", { d: "M14 21h1" }],
		["path", { d: "M14 3h1" }],
		["path", { d: "M19 3a2 2 0 0 1 2 2" }],
		["path", { d: "M21 14v1" }],
		["path", { d: "M21 19a2 2 0 0 1-2 2" }],
		["path", { d: "M21 9v1" }],
		["path", { d: "M3 14v1" }],
		["path", { d: "M3 9v1" }],
		["path", { d: "M5 21a2 2 0 0 1-2-2" }],
		["path", { d: "M5 3a2 2 0 0 0-2 2" }],
		["path", { d: "M7 12h10" }],
		["path", { d: "M7 16h6" }],
		["path", { d: "M7 8h8" }],
		["path", { d: "M9 21h1" }],
		["path", { d: "M9 3h1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/text-wrap.js
var TextWrap;
var init_text_wrap = __esmMin((() => {
	TextWrap = [
		["path", { d: "m16 16-3 3 3 3" }],
		["path", { d: "M3 12h14.5a1 1 0 0 1 0 7H13" }],
		["path", { d: "M3 19h6" }],
		["path", { d: "M3 5h18" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/theater.js
var Theater;
var init_theater = __esmMin((() => {
	Theater = [
		["path", { d: "M2 10s3-3 3-8" }],
		["path", { d: "M22 10s-3-3-3-8" }],
		["path", { d: "M10 2c0 4.4-3.6 8-8 8" }],
		["path", { d: "M14 2c0 4.4 3.6 8 8 8" }],
		["path", { d: "M2 10s2 2 2 5" }],
		["path", { d: "M22 10s-2 2-2 5" }],
		["path", { d: "M8 15h8" }],
		["path", { d: "M2 22v-1a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1" }],
		["path", { d: "M14 22v-1a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/thermometer-snowflake.js
var ThermometerSnowflake;
var init_thermometer_snowflake = __esmMin((() => {
	ThermometerSnowflake = [
		["path", { d: "m10 20-1.25-2.5L6 18" }],
		["path", { d: "M10 4 8.75 6.5 6 6" }],
		["path", { d: "M10.585 15H10" }],
		["path", { d: "M2 12h6.5L10 9" }],
		["path", { d: "M20 14.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0z" }],
		["path", { d: "m4 10 1.5 2L4 14" }],
		["path", { d: "m7 21 3-6-1.5-3" }],
		["path", { d: "m7 3 3 6h2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/thermometer-sun.js
var ThermometerSun;
var init_thermometer_sun = __esmMin((() => {
	ThermometerSun = [
		["path", { d: "M12 2v2" }],
		["path", { d: "M12 8a4 4 0 0 0-1.645 7.647" }],
		["path", { d: "M2 12h2" }],
		["path", { d: "M20 14.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0z" }],
		["path", { d: "m4.93 4.93 1.41 1.41" }],
		["path", { d: "m6.34 17.66-1.41 1.41" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/thermometer.js
var Thermometer;
var init_thermometer = __esmMin((() => {
	Thermometer = [["path", { d: "M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/thumbs-down.js
var ThumbsDown;
var init_thumbs_down = __esmMin((() => {
	ThumbsDown = [["path", { d: "M17 14V2" }], ["path", { d: "M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/thumbs-up.js
var ThumbsUp;
var init_thumbs_up = __esmMin((() => {
	ThumbsUp = [["path", { d: "M7 10v12" }], ["path", { d: "M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ticket-check.js
var TicketCheck;
var init_ticket_check = __esmMin((() => {
	TicketCheck = [["path", { d: "M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z" }], ["path", { d: "m9 12 2 2 4-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ticket-minus.js
var TicketMinus;
var init_ticket_minus = __esmMin((() => {
	TicketMinus = [["path", { d: "M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z" }], ["path", { d: "M9 12h6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ticket-percent.js
var TicketPercent;
var init_ticket_percent = __esmMin((() => {
	TicketPercent = [
		["path", { d: "M2 9a3 3 0 1 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 1 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z" }],
		["path", { d: "M9 9h.01" }],
		["path", { d: "m15 9-6 6" }],
		["path", { d: "M15 15h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ticket-plus.js
var TicketPlus;
var init_ticket_plus = __esmMin((() => {
	TicketPlus = [
		["path", { d: "M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z" }],
		["path", { d: "M9 12h6" }],
		["path", { d: "M12 9v6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ticket-slash.js
var TicketSlash;
var init_ticket_slash = __esmMin((() => {
	TicketSlash = [["path", { d: "M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z" }], ["path", { d: "m9.5 14.5 5-5" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ticket-x.js
var TicketX;
var init_ticket_x = __esmMin((() => {
	TicketX = [
		["path", { d: "M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z" }],
		["path", { d: "m9.5 14.5 5-5" }],
		["path", { d: "m9.5 9.5 5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ticket.js
var Ticket;
var init_ticket = __esmMin((() => {
	Ticket = [
		["path", { d: "M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z" }],
		["path", { d: "M13 5v2" }],
		["path", { d: "M13 17v2" }],
		["path", { d: "M13 11v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tickets-plane.js
var TicketsPlane;
var init_tickets_plane = __esmMin((() => {
	TicketsPlane = [
		["path", { d: "M10.5 17h1.227a2 2 0 0 0 1.345-.52L18 12" }],
		["path", { d: "m12 13.5 3.75.5" }],
		["path", { d: "m4.5 8 10.58-5.06a1 1 0 0 1 1.342.488L18.5 8" }],
		["path", { d: "M6 10V8" }],
		["path", { d: "M6 14v1" }],
		["path", { d: "M6 19v2" }],
		["rect", {
			x: "2",
			y: "8",
			width: "20",
			height: "13",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tickets.js
var Tickets;
var init_tickets = __esmMin((() => {
	Tickets = [
		["path", { d: "m4.5 8 10.58-5.06a1 1 0 0 1 1.342.488L18.5 8" }],
		["path", { d: "M6 10V8" }],
		["path", { d: "M6 14v1" }],
		["path", { d: "M6 19v2" }],
		["rect", {
			x: "2",
			y: "8",
			width: "20",
			height: "13",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/timer-off.js
var TimerOff;
var init_timer_off = __esmMin((() => {
	TimerOff = [
		["path", { d: "M10 2h4" }],
		["path", { d: "M4.6 11a8 8 0 0 0 1.7 8.7 8 8 0 0 0 8.7 1.7" }],
		["path", { d: "M7.4 7.4a8 8 0 0 1 10.3 1 8 8 0 0 1 .9 10.2" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M12 12v-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/timer-reset.js
var TimerReset;
var init_timer_reset = __esmMin((() => {
	TimerReset = [
		["path", { d: "M10 2h4" }],
		["path", { d: "M12 14v-4" }],
		["path", { d: "M4 13a8 8 0 0 1 8-7 8 8 0 1 1-5.3 14L4 17.6" }],
		["path", { d: "M9 17H4v5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/timer.js
var Timer;
var init_timer = __esmMin((() => {
	Timer = [
		["line", {
			x1: "10",
			x2: "14",
			y1: "2",
			y2: "2"
		}],
		["line", {
			x1: "12",
			x2: "15",
			y1: "14",
			y2: "11"
		}],
		["circle", {
			cx: "12",
			cy: "14",
			r: "8"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/toggle-left.js
var ToggleLeft;
var init_toggle_left = __esmMin((() => {
	ToggleLeft = [["circle", {
		cx: "9",
		cy: "12",
		r: "3"
	}], ["rect", {
		width: "20",
		height: "14",
		x: "2",
		y: "5",
		rx: "7"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/toggle-right.js
var ToggleRight;
var init_toggle_right = __esmMin((() => {
	ToggleRight = [["circle", {
		cx: "15",
		cy: "12",
		r: "3"
	}], ["rect", {
		width: "20",
		height: "14",
		x: "2",
		y: "5",
		rx: "7"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/toilet.js
var Toilet;
var init_toilet = __esmMin((() => {
	Toilet = [["path", { d: "M7 12h13a1 1 0 0 1 1 1 5 5 0 0 1-5 5h-.598a.5.5 0 0 0-.424.765l1.544 2.47a.5.5 0 0 1-.424.765H5.402a.5.5 0 0 1-.424-.765L7 18" }], ["path", { d: "M8 18a5 5 0 0 1-5-5V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v8" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tool-case.js
var ToolCase;
var init_tool_case = __esmMin((() => {
	ToolCase = [
		["path", { d: "M10 15h4" }],
		["path", { d: "m14.817 10.995-.971-1.45 1.034-1.232a2 2 0 0 0-2.025-3.238l-1.82.364L9.91 3.885a2 2 0 0 0-3.625.748L6.141 6.55l-1.725.426a2 2 0 0 0-.19 3.756l.657.27" }],
		["path", { d: "m18.822 10.995 2.26-5.38a1 1 0 0 0-.557-1.318L16.954 2.9a1 1 0 0 0-1.281.533l-.924 2.122" }],
		["path", { d: "M4 12.006A1 1 0 0 1 4.994 11H19a1 1 0 0 1 1 1v7a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tornado.js
var Tornado;
var init_tornado = __esmMin((() => {
	Tornado = [
		["path", { d: "M21 4H3" }],
		["path", { d: "M18 8H6" }],
		["path", { d: "M19 12H9" }],
		["path", { d: "M16 16h-6" }],
		["path", { d: "M11 20H9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/touchpad-off.js
var TouchpadOff;
var init_touchpad_off = __esmMin((() => {
	TouchpadOff = [
		["path", { d: "M12 20v-6" }],
		["path", { d: "M19.656 14H22" }],
		["path", { d: "M2 14h12" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M20 20H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2" }],
		["path", { d: "M9.656 4H20a2 2 0 0 1 2 2v10.344" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/torus.js
var Torus;
var init_torus = __esmMin((() => {
	Torus = [["ellipse", {
		cx: "12",
		cy: "11",
		rx: "3",
		ry: "2"
	}], ["ellipse", {
		cx: "12",
		cy: "12.5",
		rx: "10",
		ry: "8.5"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/touchpad.js
var Touchpad;
var init_touchpad = __esmMin((() => {
	Touchpad = [
		["rect", {
			width: "20",
			height: "16",
			x: "2",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M2 14h20" }],
		["path", { d: "M12 20v-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tower-control.js
var TowerControl;
var init_tower_control = __esmMin((() => {
	TowerControl = [
		["path", { d: "M18.2 12.27 20 6H4l1.8 6.27a1 1 0 0 0 .95.73h10.5a1 1 0 0 0 .96-.73Z" }],
		["path", { d: "M8 13v9" }],
		["path", { d: "M16 22v-9" }],
		["path", { d: "m9 6 1 7" }],
		["path", { d: "m15 6-1 7" }],
		["path", { d: "M12 6V2" }],
		["path", { d: "M13 2h-2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/toy-brick.js
var ToyBrick;
var init_toy_brick = __esmMin((() => {
	ToyBrick = [
		["rect", {
			width: "18",
			height: "12",
			x: "3",
			y: "8",
			rx: "1"
		}],
		["path", { d: "M10 8V5c0-.6-.4-1-1-1H6a1 1 0 0 0-1 1v3" }],
		["path", { d: "M19 8V5c0-.6-.4-1-1-1h-3a1 1 0 0 0-1 1v3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tractor.js
var Tractor;
var init_tractor = __esmMin((() => {
	Tractor = [
		["path", { d: "m10 11 11 .9a1 1 0 0 1 .8 1.1l-.665 4.158a1 1 0 0 1-.988.842H20" }],
		["path", { d: "M16 18h-5" }],
		["path", { d: "M18 5a1 1 0 0 0-1 1v5.573" }],
		["path", { d: "M3 4h8.129a1 1 0 0 1 .99.863L13 11.246" }],
		["path", { d: "M4 11V4" }],
		["path", { d: "M7 15h.01" }],
		["path", { d: "M8 10.1V4" }],
		["circle", {
			cx: "18",
			cy: "18",
			r: "2"
		}],
		["circle", {
			cx: "7",
			cy: "15",
			r: "5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/traffic-cone.js
var TrafficCone;
var init_traffic_cone = __esmMin((() => {
	TrafficCone = [
		["path", { d: "M16.05 10.966a5 2.5 0 0 1-8.1 0" }],
		["path", { d: "m16.923 14.049 4.48 2.04a1 1 0 0 1 .001 1.831l-8.574 3.9a2 2 0 0 1-1.66 0l-8.574-3.91a1 1 0 0 1 0-1.83l4.484-2.04" }],
		["path", { d: "M16.949 14.14a5 2.5 0 1 1-9.9 0L10.063 3.5a2 2 0 0 1 3.874 0z" }],
		["path", { d: "M9.194 6.57a5 2.5 0 0 0 5.61 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/train-front-tunnel.js
var TrainFrontTunnel;
var init_train_front_tunnel = __esmMin((() => {
	TrainFrontTunnel = [
		["path", { d: "M2 22V12a10 10 0 1 1 20 0v10" }],
		["path", { d: "M15 6.8v1.4a3 2.8 0 1 1-6 0V6.8" }],
		["path", { d: "M10 15h.01" }],
		["path", { d: "M14 15h.01" }],
		["path", { d: "M10 19a4 4 0 0 1-4-4v-3a6 6 0 1 1 12 0v3a4 4 0 0 1-4 4Z" }],
		["path", { d: "m9 19-2 3" }],
		["path", { d: "m15 19 2 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/train-front.js
var TrainFront;
var init_train_front = __esmMin((() => {
	TrainFront = [
		["path", { d: "M8 3.1V7a4 4 0 0 0 8 0V3.1" }],
		["path", { d: "m9 15-1-1" }],
		["path", { d: "m15 15 1-1" }],
		["path", { d: "M9 19c-2.8 0-5-2.2-5-5v-4a8 8 0 0 1 16 0v4c0 2.8-2.2 5-5 5Z" }],
		["path", { d: "m8 19-2 3" }],
		["path", { d: "m16 19 2 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/train-track.js
var TrainTrack;
var init_train_track = __esmMin((() => {
	TrainTrack = [
		["path", { d: "M2 17 17 2" }],
		["path", { d: "m2 14 8 8" }],
		["path", { d: "m5 11 8 8" }],
		["path", { d: "m8 8 8 8" }],
		["path", { d: "m11 5 8 8" }],
		["path", { d: "m14 2 8 8" }],
		["path", { d: "M7 22 22 7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tram-front.js
var TramFront;
var init_tram_front = __esmMin((() => {
	TramFront = [
		["rect", {
			width: "16",
			height: "16",
			x: "4",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M4 11h16" }],
		["path", { d: "M12 3v8" }],
		["path", { d: "m8 19-2 3" }],
		["path", { d: "m18 22-2-3" }],
		["path", { d: "M8 15h.01" }],
		["path", { d: "M16 15h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/transgender.js
var Transgender;
var init_transgender = __esmMin((() => {
	Transgender = [
		["path", { d: "M12 16v6" }],
		["path", { d: "M14 20h-4" }],
		["path", { d: "M18 2h4v4" }],
		["path", { d: "m2 2 7.17 7.17" }],
		["path", { d: "M2 5.355V2h3.357" }],
		["path", { d: "m22 2-7.17 7.17" }],
		["path", { d: "M8 5 5 8" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "4"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/trash-2.js
var Trash2;
var init_trash_2 = __esmMin((() => {
	Trash2 = [
		["path", { d: "M10 11v6" }],
		["path", { d: "M14 11v6" }],
		["path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6" }],
		["path", { d: "M3 6h18" }],
		["path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/trash.js
var Trash;
var init_trash = __esmMin((() => {
	Trash = [
		["path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6" }],
		["path", { d: "M3 6h18" }],
		["path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tree-deciduous.js
var TreeDeciduous;
var init_tree_deciduous = __esmMin((() => {
	TreeDeciduous = [["path", { d: "M8 19a4 4 0 0 1-2.24-7.32A3.5 3.5 0 0 1 9 6.03V6a3 3 0 1 1 6 0v.04a3.5 3.5 0 0 1 3.24 5.65A4 4 0 0 1 16 19Z" }], ["path", { d: "M12 19v3" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tree-palm.js
var TreePalm;
var init_tree_palm = __esmMin((() => {
	TreePalm = [
		["path", { d: "M13 8c0-2.76-2.46-5-5.5-5S2 5.24 2 8h2l1-1 1 1h4" }],
		["path", { d: "M13 7.14A5.82 5.82 0 0 1 16.5 6c3.04 0 5.5 2.24 5.5 5h-3l-1-1-1 1h-3" }],
		["path", { d: "M5.89 9.71c-2.15 2.15-2.3 5.47-.35 7.43l4.24-4.25.7-.7.71-.71 2.12-2.12c-1.95-1.96-5.27-1.8-7.42.35" }],
		["path", { d: "M11 15.5c.5 2.5-.17 4.5-1 6.5h4c2-5.5-.5-12-1-14" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tree-pine.js
var TreePine;
var init_tree_pine = __esmMin((() => {
	TreePine = [["path", { d: "m17 14 3 3.3a1 1 0 0 1-.7 1.7H4.7a1 1 0 0 1-.7-1.7L7 14h-.3a1 1 0 0 1-.7-1.7L9 9h-.2A1 1 0 0 1 8 7.3L12 3l4 4.3a1 1 0 0 1-.8 1.7H15l3 3.3a1 1 0 0 1-.7 1.7H17Z" }], ["path", { d: "M12 22v-3" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/trees.js
var Trees;
var init_trees = __esmMin((() => {
	Trees = [
		["path", { d: "M10 10v.2A3 3 0 0 1 8.9 16H5a3 3 0 0 1-1-5.8V10a3 3 0 0 1 6 0Z" }],
		["path", { d: "M7 16v6" }],
		["path", { d: "M13 19v3" }],
		["path", { d: "M12 19h8.3a1 1 0 0 0 .7-1.7L18 14h.3a1 1 0 0 0 .7-1.7L16 9h.2a1 1 0 0 0 .8-1.7L13 3l-1.4 1.5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/trello.js
var Trello;
var init_trello = __esmMin((() => {
	Trello = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2",
			ry: "2"
		}],
		["rect", {
			width: "3",
			height: "9",
			x: "7",
			y: "7"
		}],
		["rect", {
			width: "3",
			height: "5",
			x: "14",
			y: "7"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/trending-down.js
var TrendingDown;
var init_trending_down = __esmMin((() => {
	TrendingDown = [["path", { d: "M16 17h6v-6" }], ["path", { d: "m22 17-8.5-8.5-5 5L2 7" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/trending-up-down.js
var TrendingUpDown;
var init_trending_up_down = __esmMin((() => {
	TrendingUpDown = [
		["path", { d: "M14.828 14.828 21 21" }],
		["path", { d: "M21 16v5h-5" }],
		["path", { d: "m21 3-9 9-4-4-6 6" }],
		["path", { d: "M21 8V3h-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/trending-up.js
var TrendingUp;
var init_trending_up = __esmMin((() => {
	TrendingUp = [["path", { d: "M16 7h6v6" }], ["path", { d: "m22 7-8.5 8.5-5-5L2 17" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/triangle-alert.js
var TriangleAlert;
var init_triangle_alert = __esmMin((() => {
	TriangleAlert = [
		["path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" }],
		["path", { d: "M12 9v4" }],
		["path", { d: "M12 17h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/triangle-dashed.js
var TriangleDashed;
var init_triangle_dashed = __esmMin((() => {
	TriangleDashed = [
		["path", { d: "M10.17 4.193a2 2 0 0 1 3.666.013" }],
		["path", { d: "M14 21h2" }],
		["path", { d: "m15.874 7.743 1 1.732" }],
		["path", { d: "m18.849 12.952 1 1.732" }],
		["path", { d: "M21.824 18.18a2 2 0 0 1-1.835 2.824" }],
		["path", { d: "M4.024 21a2 2 0 0 1-1.839-2.839" }],
		["path", { d: "m5.136 12.952-1 1.732" }],
		["path", { d: "M8 21h2" }],
		["path", { d: "m8.102 7.743-1 1.732" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/triangle-right.js
var TriangleRight;
var init_triangle_right = __esmMin((() => {
	TriangleRight = [["path", { d: "M22 18a2 2 0 0 1-2 2H3c-1.1 0-1.3-.6-.4-1.3L20.4 4.3c.9-.7 1.6-.4 1.6.7Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/trophy.js
var Trophy;
var init_trophy = __esmMin((() => {
	Trophy = [
		["path", { d: "M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978" }],
		["path", { d: "M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978" }],
		["path", { d: "M18 9h1.5a1 1 0 0 0 0-5H18" }],
		["path", { d: "M4 22h16" }],
		["path", { d: "M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z" }],
		["path", { d: "M6 9H4.5a1 1 0 0 1 0-5H6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/triangle.js
var Triangle;
var init_triangle = __esmMin((() => {
	Triangle = [["path", { d: "M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/truck-electric.js
var TruckElectric;
var init_truck_electric = __esmMin((() => {
	TruckElectric = [
		["path", { d: "M14 19V7a2 2 0 0 0-2-2H9" }],
		["path", { d: "M15 19H9" }],
		["path", { d: "M19 19h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.62L18.3 9.38a1 1 0 0 0-.78-.38H14" }],
		["path", { d: "M2 13v5a1 1 0 0 0 1 1h2" }],
		["path", { d: "M4 3 2.15 5.15a.495.495 0 0 0 .35.86h2.15a.47.47 0 0 1 .35.86L3 9.02" }],
		["circle", {
			cx: "17",
			cy: "19",
			r: "2"
		}],
		["circle", {
			cx: "7",
			cy: "19",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/truck.js
var Truck;
var init_truck = __esmMin((() => {
	Truck = [
		["path", { d: "M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2" }],
		["path", { d: "M15 18H9" }],
		["path", { d: "M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14" }],
		["circle", {
			cx: "17",
			cy: "18",
			r: "2"
		}],
		["circle", {
			cx: "7",
			cy: "18",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/turkish-lira.js
var TurkishLira;
var init_turkish_lira = __esmMin((() => {
	TurkishLira = [
		["path", { d: "M15 4 5 9" }],
		["path", { d: "m15 8.5-10 5" }],
		["path", { d: "M18 12a9 9 0 0 1-9 9V3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/turntable.js
var Turntable;
var init_turntable = __esmMin((() => {
	Turntable = [
		["path", { d: "M10 12.01h.01" }],
		["path", { d: "M18 8v4a8 8 0 0 1-1.07 4" }],
		["circle", {
			cx: "10",
			cy: "12",
			r: "4"
		}],
		["rect", {
			x: "2",
			y: "4",
			width: "20",
			height: "16",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/turtle.js
var Turtle;
var init_turtle = __esmMin((() => {
	Turtle = [
		["path", { d: "m12 10 2 4v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3a8 8 0 1 0-16 0v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3l2-4h4Z" }],
		["path", { d: "M4.82 7.9 8 10" }],
		["path", { d: "M15.18 7.9 12 10" }],
		["path", { d: "M16.93 10H20a2 2 0 0 1 0 4H2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tv-minimal-play.js
var TvMinimalPlay;
var init_tv_minimal_play = __esmMin((() => {
	TvMinimalPlay = [
		["path", { d: "M15.033 9.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56V7.648a.645.645 0 0 1 .967-.56z" }],
		["path", { d: "M7 21h10" }],
		["rect", {
			width: "20",
			height: "14",
			x: "2",
			y: "3",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tv-minimal.js
var TvMinimal;
var init_tv_minimal = __esmMin((() => {
	TvMinimal = [["path", { d: "M7 21h10" }], ["rect", {
		width: "20",
		height: "14",
		x: "2",
		y: "3",
		rx: "2"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/tv.js
var Tv;
var init_tv = __esmMin((() => {
	Tv = [["path", { d: "m17 2-5 5-5-5" }], ["rect", {
		width: "20",
		height: "15",
		x: "2",
		y: "7",
		rx: "2"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/twitch.js
var Twitch;
var init_twitch = __esmMin((() => {
	Twitch = [["path", { d: "M21 2H3v16h5v4l4-4h5l4-4V2zm-10 9V7m5 4V7" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/twitter.js
var Twitter;
var init_twitter = __esmMin((() => {
	Twitter = [["path", { d: "M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/type-outline.js
var TypeOutline;
var init_type_outline = __esmMin((() => {
	TypeOutline = [["path", { d: "M14 16.5a.5.5 0 0 0 .5.5h.5a2 2 0 0 1 0 4H9a2 2 0 0 1 0-4h.5a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5V8a2 2 0 0 1-4 0V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v3a2 2 0 0 1-4 0v-.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/type.js
var Type$1;
var init_type$6 = __esmMin((() => {
	Type$1 = [
		["path", { d: "M12 4v16" }],
		["path", { d: "M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2" }],
		["path", { d: "M9 20h6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/umbrella-off.js
var UmbrellaOff;
var init_umbrella_off = __esmMin((() => {
	UmbrellaOff = [
		["path", { d: "M12 13v7a2 2 0 0 0 4 0" }],
		["path", { d: "M12 2v2" }],
		["path", { d: "M18.656 13h2.336a1 1 0 0 0 .97-1.274 10.284 10.284 0 0 0-12.07-7.51" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "M5.961 5.957a10.28 10.28 0 0 0-3.922 5.769A1 1 0 0 0 3 13h10" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/umbrella.js
var Umbrella;
var init_umbrella = __esmMin((() => {
	Umbrella = [
		["path", { d: "M12 13v7a2 2 0 0 0 4 0" }],
		["path", { d: "M12 2v2" }],
		["path", { d: "M20.992 13a1 1 0 0 0 .97-1.274 10.284 10.284 0 0 0-19.923 0A1 1 0 0 0 3 13z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/underline.js
var Underline;
var init_underline = __esmMin((() => {
	Underline = [["path", { d: "M6 4v6a6 6 0 0 0 12 0V4" }], ["line", {
		x1: "4",
		x2: "20",
		y1: "20",
		y2: "20"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/undo-2.js
var Undo2;
var init_undo_2 = __esmMin((() => {
	Undo2 = [["path", { d: "M9 14 4 9l5-5" }], ["path", { d: "M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/undo-dot.js
var UndoDot;
var init_undo_dot = __esmMin((() => {
	UndoDot = [
		["path", { d: "M21 17a9 9 0 0 0-15-6.7L3 13" }],
		["path", { d: "M3 7v6h6" }],
		["circle", {
			cx: "12",
			cy: "17",
			r: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/undo.js
var Undo;
var init_undo = __esmMin((() => {
	Undo = [["path", { d: "M3 7v6h6" }], ["path", { d: "M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/unfold-horizontal.js
var UnfoldHorizontal;
var init_unfold_horizontal = __esmMin((() => {
	UnfoldHorizontal = [
		["path", { d: "M16 12h6" }],
		["path", { d: "M8 12H2" }],
		["path", { d: "M12 2v2" }],
		["path", { d: "M12 8v2" }],
		["path", { d: "M12 14v2" }],
		["path", { d: "M12 20v2" }],
		["path", { d: "m19 15 3-3-3-3" }],
		["path", { d: "m5 9-3 3 3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/unfold-vertical.js
var UnfoldVertical;
var init_unfold_vertical = __esmMin((() => {
	UnfoldVertical = [
		["path", { d: "M12 22v-6" }],
		["path", { d: "M12 8V2" }],
		["path", { d: "M4 12H2" }],
		["path", { d: "M10 12H8" }],
		["path", { d: "M16 12h-2" }],
		["path", { d: "M22 12h-2" }],
		["path", { d: "m15 19-3 3-3-3" }],
		["path", { d: "m15 5-3-3-3 3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/ungroup.js
var Ungroup;
var init_ungroup = __esmMin((() => {
	Ungroup = [["rect", {
		width: "8",
		height: "6",
		x: "5",
		y: "4",
		rx: "1"
	}], ["rect", {
		width: "8",
		height: "6",
		x: "11",
		y: "14",
		rx: "1"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/university.js
var University;
var init_university = __esmMin((() => {
	University = [
		["path", { d: "M14 21v-3a2 2 0 0 0-4 0v3" }],
		["path", { d: "M18 12h.01" }],
		["path", { d: "M18 16h.01" }],
		["path", { d: "M22 7a1 1 0 0 0-1-1h-2a2 2 0 0 1-1.143-.359L13.143 2.36a2 2 0 0 0-2.286-.001L6.143 5.64A2 2 0 0 1 5 6H3a1 1 0 0 0-1 1v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2z" }],
		["path", { d: "M6 12h.01" }],
		["path", { d: "M6 16h.01" }],
		["circle", {
			cx: "12",
			cy: "10",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/unlink-2.js
var Unlink2;
var init_unlink_2 = __esmMin((() => {
	Unlink2 = [["path", { d: "M15 7h2a5 5 0 0 1 0 10h-2m-6 0H7A5 5 0 0 1 7 7h2" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/unlink.js
var Unlink;
var init_unlink = __esmMin((() => {
	Unlink = [
		["path", { d: "m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71" }],
		["path", { d: "m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71" }],
		["line", {
			x1: "8",
			x2: "8",
			y1: "2",
			y2: "5"
		}],
		["line", {
			x1: "2",
			x2: "5",
			y1: "8",
			y2: "8"
		}],
		["line", {
			x1: "16",
			x2: "16",
			y1: "19",
			y2: "22"
		}],
		["line", {
			x1: "19",
			x2: "22",
			y1: "16",
			y2: "16"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/upload.js
var Upload;
var init_upload = __esmMin((() => {
	Upload = [
		["path", { d: "M12 3v12" }],
		["path", { d: "m17 8-5-5-5 5" }],
		["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/unplug.js
var Unplug;
var init_unplug = __esmMin((() => {
	Unplug = [
		["path", { d: "m19 5 3-3" }],
		["path", { d: "m2 22 3-3" }],
		["path", { d: "M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z" }],
		["path", { d: "M7.5 13.5 10 11" }],
		["path", { d: "M10.5 16.5 13 14" }],
		["path", { d: "m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/usb.js
var Usb;
var init_usb = __esmMin((() => {
	Usb = [
		["circle", {
			cx: "10",
			cy: "7",
			r: "1"
		}],
		["circle", {
			cx: "4",
			cy: "20",
			r: "1"
		}],
		["path", { d: "M4.7 19.3 19 5" }],
		["path", { d: "m21 3-3 1 2 2Z" }],
		["path", { d: "M9.26 7.68 5 12l2 5" }],
		["path", { d: "m10 14 5 2 3.5-3.5" }],
		["path", { d: "m18 12 1-1 1 1-1 1Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user-cog.js
var UserCog;
var init_user_cog = __esmMin((() => {
	UserCog = [
		["path", { d: "M10 15H6a4 4 0 0 0-4 4v2" }],
		["path", { d: "m14.305 16.53.923-.382" }],
		["path", { d: "m15.228 13.852-.923-.383" }],
		["path", { d: "m16.852 12.228-.383-.923" }],
		["path", { d: "m16.852 17.772-.383.924" }],
		["path", { d: "m19.148 12.228.383-.923" }],
		["path", { d: "m19.53 18.696-.382-.924" }],
		["path", { d: "m20.772 13.852.924-.383" }],
		["path", { d: "m20.772 16.148.924.383" }],
		["circle", {
			cx: "18",
			cy: "15",
			r: "3"
		}],
		["circle", {
			cx: "9",
			cy: "7",
			r: "4"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user-check.js
var UserCheck;
var init_user_check = __esmMin((() => {
	UserCheck = [
		["path", { d: "m16 11 2 2 4-4" }],
		["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" }],
		["circle", {
			cx: "9",
			cy: "7",
			r: "4"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user-lock.js
var UserLock;
var init_user_lock = __esmMin((() => {
	UserLock = [
		["circle", {
			cx: "10",
			cy: "7",
			r: "4"
		}],
		["path", { d: "M10.3 15H7a4 4 0 0 0-4 4v2" }],
		["path", { d: "M15 15.5V14a2 2 0 0 1 4 0v1.5" }],
		["rect", {
			width: "8",
			height: "5",
			x: "13",
			y: "16",
			rx: ".899"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user-minus.js
var UserMinus;
var init_user_minus = __esmMin((() => {
	UserMinus = [
		["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" }],
		["circle", {
			cx: "9",
			cy: "7",
			r: "4"
		}],
		["line", {
			x1: "22",
			x2: "16",
			y1: "11",
			y2: "11"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user-pen.js
var UserPen;
var init_user_pen = __esmMin((() => {
	UserPen = [
		["path", { d: "M11.5 15H7a4 4 0 0 0-4 4v2" }],
		["path", { d: "M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z" }],
		["circle", {
			cx: "10",
			cy: "7",
			r: "4"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user-plus.js
var UserPlus;
var init_user_plus = __esmMin((() => {
	UserPlus = [
		["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" }],
		["circle", {
			cx: "9",
			cy: "7",
			r: "4"
		}],
		["line", {
			x1: "19",
			x2: "19",
			y1: "8",
			y2: "14"
		}],
		["line", {
			x1: "22",
			x2: "16",
			y1: "11",
			y2: "11"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user-round-check.js
var UserRoundCheck;
var init_user_round_check = __esmMin((() => {
	UserRoundCheck = [
		["path", { d: "M2 21a8 8 0 0 1 13.292-6" }],
		["circle", {
			cx: "10",
			cy: "8",
			r: "5"
		}],
		["path", { d: "m16 19 2 2 4-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user-round-cog.js
var UserRoundCog;
var init_user_round_cog = __esmMin((() => {
	UserRoundCog = [
		["path", { d: "m14.305 19.53.923-.382" }],
		["path", { d: "m15.228 16.852-.923-.383" }],
		["path", { d: "m16.852 15.228-.383-.923" }],
		["path", { d: "m16.852 20.772-.383.924" }],
		["path", { d: "m19.148 15.228.383-.923" }],
		["path", { d: "m19.53 21.696-.382-.924" }],
		["path", { d: "M2 21a8 8 0 0 1 10.434-7.62" }],
		["path", { d: "m20.772 16.852.924-.383" }],
		["path", { d: "m20.772 19.148.924.383" }],
		["circle", {
			cx: "10",
			cy: "8",
			r: "5"
		}],
		["circle", {
			cx: "18",
			cy: "18",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user-round-minus.js
var UserRoundMinus;
var init_user_round_minus = __esmMin((() => {
	UserRoundMinus = [
		["path", { d: "M2 21a8 8 0 0 1 13.292-6" }],
		["circle", {
			cx: "10",
			cy: "8",
			r: "5"
		}],
		["path", { d: "M22 19h-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user-round-pen.js
var UserRoundPen;
var init_user_round_pen = __esmMin((() => {
	UserRoundPen = [
		["path", { d: "M2 21a8 8 0 0 1 10.821-7.487" }],
		["path", { d: "M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z" }],
		["circle", {
			cx: "10",
			cy: "8",
			r: "5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user-round-plus.js
var UserRoundPlus;
var init_user_round_plus = __esmMin((() => {
	UserRoundPlus = [
		["path", { d: "M2 21a8 8 0 0 1 13.292-6" }],
		["circle", {
			cx: "10",
			cy: "8",
			r: "5"
		}],
		["path", { d: "M19 16v6" }],
		["path", { d: "M22 19h-6" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user-round-search.js
var UserRoundSearch;
var init_user_round_search = __esmMin((() => {
	UserRoundSearch = [
		["circle", {
			cx: "10",
			cy: "8",
			r: "5"
		}],
		["path", { d: "M2 21a8 8 0 0 1 10.434-7.62" }],
		["circle", {
			cx: "18",
			cy: "18",
			r: "3"
		}],
		["path", { d: "m22 22-1.9-1.9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user-round-x.js
var UserRoundX;
var init_user_round_x = __esmMin((() => {
	UserRoundX = [
		["path", { d: "M2 21a8 8 0 0 1 11.873-7" }],
		["circle", {
			cx: "10",
			cy: "8",
			r: "5"
		}],
		["path", { d: "m17 17 5 5" }],
		["path", { d: "m22 17-5 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user-round.js
var UserRound;
var init_user_round = __esmMin((() => {
	UserRound = [["circle", {
		cx: "12",
		cy: "8",
		r: "5"
	}], ["path", { d: "M20 21a8 8 0 0 0-16 0" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user-search.js
var UserSearch;
var init_user_search = __esmMin((() => {
	UserSearch = [
		["circle", {
			cx: "10",
			cy: "7",
			r: "4"
		}],
		["path", { d: "M10.3 15H7a4 4 0 0 0-4 4v2" }],
		["circle", {
			cx: "17",
			cy: "17",
			r: "3"
		}],
		["path", { d: "m21 21-1.9-1.9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user-star.js
var UserStar;
var init_user_star = __esmMin((() => {
	UserStar = [
		["path", { d: "M16.051 12.616a1 1 0 0 1 1.909.024l.737 1.452a1 1 0 0 0 .737.535l1.634.256a1 1 0 0 1 .588 1.806l-1.172 1.168a1 1 0 0 0-.282.866l.259 1.613a1 1 0 0 1-1.541 1.134l-1.465-.75a1 1 0 0 0-.912 0l-1.465.75a1 1 0 0 1-1.539-1.133l.258-1.613a1 1 0 0 0-.282-.866l-1.156-1.153a1 1 0 0 1 .572-1.822l1.633-.256a1 1 0 0 0 .737-.535z" }],
		["path", { d: "M8 15H7a4 4 0 0 0-4 4v2" }],
		["circle", {
			cx: "10",
			cy: "7",
			r: "4"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user-x.js
var UserX;
var init_user_x = __esmMin((() => {
	UserX = [
		["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" }],
		["circle", {
			cx: "9",
			cy: "7",
			r: "4"
		}],
		["line", {
			x1: "17",
			x2: "22",
			y1: "8",
			y2: "13"
		}],
		["line", {
			x1: "22",
			x2: "17",
			y1: "8",
			y2: "13"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/user.js
var User;
var init_user = __esmMin((() => {
	User = [["path", { d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2" }], ["circle", {
		cx: "12",
		cy: "7",
		r: "4"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/users-round.js
var UsersRound;
var init_users_round = __esmMin((() => {
	UsersRound = [
		["path", { d: "M18 21a8 8 0 0 0-16 0" }],
		["circle", {
			cx: "10",
			cy: "8",
			r: "5"
		}],
		["path", { d: "M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/users.js
var Users;
var init_users = __esmMin((() => {
	Users = [
		["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" }],
		["path", { d: "M16 3.128a4 4 0 0 1 0 7.744" }],
		["path", { d: "M22 21v-2a4 4 0 0 0-3-3.87" }],
		["circle", {
			cx: "9",
			cy: "7",
			r: "4"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/utensils-crossed.js
var UtensilsCrossed;
var init_utensils_crossed = __esmMin((() => {
	UtensilsCrossed = [
		["path", { d: "m16 2-2.3 2.3a3 3 0 0 0 0 4.2l1.8 1.8a3 3 0 0 0 4.2 0L22 8" }],
		["path", { d: "M15 15 3.3 3.3a4.2 4.2 0 0 0 0 6l7.3 7.3c.7.7 2 .7 2.8 0L15 15Zm0 0 7 7" }],
		["path", { d: "m2.1 21.8 6.4-6.3" }],
		["path", { d: "m19 5-7 7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/utensils.js
var Utensils;
var init_utensils = __esmMin((() => {
	Utensils = [
		["path", { d: "M3 2v7c0 1.1.9 2 2 2h4a2 2 0 0 0 2-2V2" }],
		["path", { d: "M7 2v20" }],
		["path", { d: "M21 15V2a5 5 0 0 0-5 5v6c0 1.1.9 2 2 2h3Zm0 0v7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/utility-pole.js
var UtilityPole;
var init_utility_pole = __esmMin((() => {
	UtilityPole = [
		["path", { d: "M12 2v20" }],
		["path", { d: "M2 5h20" }],
		["path", { d: "M3 3v2" }],
		["path", { d: "M7 3v2" }],
		["path", { d: "M17 3v2" }],
		["path", { d: "M21 3v2" }],
		["path", { d: "m19 5-7 7-7-7" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/van.js
var Van;
var init_van = __esmMin((() => {
	Van = [
		["path", { d: "M13 6v5a1 1 0 0 0 1 1h6.102a1 1 0 0 1 .712.298l.898.91a1 1 0 0 1 .288.702V17a1 1 0 0 1-1 1h-3" }],
		["path", { d: "M5 18H3a1 1 0 0 1-1-1V8a2 2 0 0 1 2-2h12c1.1 0 2.1.8 2.4 1.8l1.176 4.2" }],
		["path", { d: "M9 18h5" }],
		["circle", {
			cx: "16",
			cy: "18",
			r: "2"
		}],
		["circle", {
			cx: "7",
			cy: "18",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/vault.js
var Vault;
var init_vault = __esmMin((() => {
	Vault = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["circle", {
			cx: "7.5",
			cy: "7.5",
			r: ".5",
			fill: "currentColor"
		}],
		["path", { d: "m7.9 7.9 2.7 2.7" }],
		["circle", {
			cx: "16.5",
			cy: "7.5",
			r: ".5",
			fill: "currentColor"
		}],
		["path", { d: "m13.4 10.6 2.7-2.7" }],
		["circle", {
			cx: "7.5",
			cy: "16.5",
			r: ".5",
			fill: "currentColor"
		}],
		["path", { d: "m7.9 16.1 2.7-2.7" }],
		["circle", {
			cx: "16.5",
			cy: "16.5",
			r: ".5",
			fill: "currentColor"
		}],
		["path", { d: "m13.4 13.4 2.7 2.7" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/variable.js
var Variable;
var init_variable = __esmMin((() => {
	Variable = [
		["path", { d: "M8 21s-4-3-4-9 4-9 4-9" }],
		["path", { d: "M16 3s4 3 4 9-4 9-4 9" }],
		["line", {
			x1: "15",
			x2: "9",
			y1: "9",
			y2: "15"
		}],
		["line", {
			x1: "9",
			x2: "15",
			y1: "9",
			y2: "15"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/vector-square.js
var VectorSquare;
var init_vector_square = __esmMin((() => {
	VectorSquare = [
		["path", { d: "M19.5 7a24 24 0 0 1 0 10" }],
		["path", { d: "M4.5 7a24 24 0 0 0 0 10" }],
		["path", { d: "M7 19.5a24 24 0 0 0 10 0" }],
		["path", { d: "M7 4.5a24 24 0 0 1 10 0" }],
		["rect", {
			x: "17",
			y: "17",
			width: "5",
			height: "5",
			rx: "1"
		}],
		["rect", {
			x: "17",
			y: "2",
			width: "5",
			height: "5",
			rx: "1"
		}],
		["rect", {
			x: "2",
			y: "17",
			width: "5",
			height: "5",
			rx: "1"
		}],
		["rect", {
			x: "2",
			y: "2",
			width: "5",
			height: "5",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/vegan.js
var Vegan;
var init_vegan = __esmMin((() => {
	Vegan = [
		["path", { d: "M16 8q6 0 6-6-6 0-6 6" }],
		["path", { d: "M17.41 3.59a10 10 0 1 0 3 3" }],
		["path", { d: "M2 2a26.6 26.6 0 0 1 10 20c.9-6.82 1.5-9.5 4-14" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/venetian-mask.js
var VenetianMask;
var init_venetian_mask = __esmMin((() => {
	VenetianMask = [
		["path", { d: "M18 11c-1.5 0-2.5.5-3 2" }],
		["path", { d: "M4 6a2 2 0 0 0-2 2v4a5 5 0 0 0 5 5 8 8 0 0 1 5 2 8 8 0 0 1 5-2 5 5 0 0 0 5-5V8a2 2 0 0 0-2-2h-3a8 8 0 0 0-5 2 8 8 0 0 0-5-2z" }],
		["path", { d: "M6 11c1.5 0 2.5.5 3 2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/venus-and-mars.js
var VenusAndMars;
var init_venus_and_mars = __esmMin((() => {
	VenusAndMars = [
		["path", { d: "M10 20h4" }],
		["path", { d: "M12 16v6" }],
		["path", { d: "M17 2h4v4" }],
		["path", { d: "m21 2-5.46 5.46" }],
		["circle", {
			cx: "12",
			cy: "11",
			r: "5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/venus.js
var Venus;
var init_venus = __esmMin((() => {
	Venus = [
		["path", { d: "M12 15v7" }],
		["path", { d: "M9 19h6" }],
		["circle", {
			cx: "12",
			cy: "9",
			r: "6"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/vibrate-off.js
var VibrateOff;
var init_vibrate_off = __esmMin((() => {
	VibrateOff = [
		["path", { d: "m2 8 2 2-2 2 2 2-2 2" }],
		["path", { d: "m22 8-2 2 2 2-2 2 2 2" }],
		["path", { d: "M8 8v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2" }],
		["path", { d: "M16 10.34V6c0-.55-.45-1-1-1h-4.34" }],
		["line", {
			x1: "2",
			x2: "22",
			y1: "2",
			y2: "22"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/vibrate.js
var Vibrate;
var init_vibrate = __esmMin((() => {
	Vibrate = [
		["path", { d: "m2 8 2 2-2 2 2 2-2 2" }],
		["path", { d: "m22 8-2 2 2 2-2 2 2 2" }],
		["rect", {
			width: "8",
			height: "14",
			x: "8",
			y: "5",
			rx: "1"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/video-off.js
var VideoOff;
var init_video_off = __esmMin((() => {
	VideoOff = [
		["path", { d: "M10.66 6H14a2 2 0 0 1 2 2v2.5l5.248-3.062A.5.5 0 0 1 22 7.87v8.196" }],
		["path", { d: "M16 16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2" }],
		["path", { d: "m2 2 20 20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/video.js
var Video;
var init_video = __esmMin((() => {
	Video = [["path", { d: "m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5" }], ["rect", {
		x: "2",
		y: "6",
		width: "14",
		height: "12",
		rx: "2"
	}]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/videotape.js
var Videotape;
var init_videotape = __esmMin((() => {
	Videotape = [
		["rect", {
			width: "20",
			height: "16",
			x: "2",
			y: "4",
			rx: "2"
		}],
		["path", { d: "M2 8h20" }],
		["circle", {
			cx: "8",
			cy: "14",
			r: "2"
		}],
		["path", { d: "M8 12h8" }],
		["circle", {
			cx: "16",
			cy: "14",
			r: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/view.js
var View;
var init_view = __esmMin((() => {
	View = [
		["path", { d: "M21 17v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2" }],
		["path", { d: "M21 7V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "1"
		}],
		["path", { d: "M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/volleyball.js
var Volleyball;
var init_volleyball = __esmMin((() => {
	Volleyball = [
		["path", { d: "M11.1 7.1a16.55 16.55 0 0 1 10.9 4" }],
		["path", { d: "M12 12a12.6 12.6 0 0 1-8.7 5" }],
		["path", { d: "M16.8 13.6a16.55 16.55 0 0 1-9 7.5" }],
		["path", { d: "M20.7 17a12.8 12.8 0 0 0-8.7-5 13.3 13.3 0 0 1 0-10" }],
		["path", { d: "M6.3 3.8a16.55 16.55 0 0 0 1.9 11.5" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "10"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/voicemail.js
var Voicemail;
var init_voicemail = __esmMin((() => {
	Voicemail = [
		["circle", {
			cx: "6",
			cy: "12",
			r: "4"
		}],
		["circle", {
			cx: "18",
			cy: "12",
			r: "4"
		}],
		["line", {
			x1: "6",
			x2: "18",
			y1: "16",
			y2: "16"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/volume-1.js
var Volume1;
var init_volume_1 = __esmMin((() => {
	Volume1 = [["path", { d: "M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z" }], ["path", { d: "M16 9a5 5 0 0 1 0 6" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/volume-2.js
var Volume2;
var init_volume_2 = __esmMin((() => {
	Volume2 = [
		["path", { d: "M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z" }],
		["path", { d: "M16 9a5 5 0 0 1 0 6" }],
		["path", { d: "M19.364 18.364a9 9 0 0 0 0-12.728" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/volume-off.js
var VolumeOff;
var init_volume_off = __esmMin((() => {
	VolumeOff = [
		["path", { d: "M16 9a5 5 0 0 1 .95 2.293" }],
		["path", { d: "M19.364 5.636a9 9 0 0 1 1.889 9.96" }],
		["path", { d: "m2 2 20 20" }],
		["path", { d: "m7 7-.587.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298V11" }],
		["path", { d: "M9.828 4.172A.686.686 0 0 1 11 4.657v.686" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/volume-x.js
var VolumeX;
var init_volume_x = __esmMin((() => {
	VolumeX = [
		["path", { d: "M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z" }],
		["line", {
			x1: "22",
			x2: "16",
			y1: "9",
			y2: "15"
		}],
		["line", {
			x1: "16",
			x2: "22",
			y1: "9",
			y2: "15"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/volume.js
var Volume;
var init_volume = __esmMin((() => {
	Volume = [["path", { d: "M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/vote.js
var Vote;
var init_vote = __esmMin((() => {
	Vote = [
		["path", { d: "m9 12 2 2 4-4" }],
		["path", { d: "M5 7c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v12H5V7Z" }],
		["path", { d: "M22 19H2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wallet-cards.js
var WalletCards;
var init_wallet_cards = __esmMin((() => {
	WalletCards = [
		["rect", {
			width: "18",
			height: "18",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M3 9a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2" }],
		["path", { d: "M3 11h3c.8 0 1.6.3 2.1.9l1.1.9c1.6 1.6 4.1 1.6 5.7 0l1.1-.9c.5-.5 1.3-.9 2.1-.9H21" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wallet-minimal.js
var WalletMinimal;
var init_wallet_minimal = __esmMin((() => {
	WalletMinimal = [["path", { d: "M17 14h.01" }], ["path", { d: "M7 7h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wallet.js
var Wallet;
var init_wallet = __esmMin((() => {
	Wallet = [["path", { d: "M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1" }], ["path", { d: "M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wallpaper.js
var Wallpaper;
var init_wallpaper = __esmMin((() => {
	Wallpaper = [
		["path", { d: "M12 17v4" }],
		["path", { d: "M8 21h8" }],
		["path", { d: "m9 17 6.1-6.1a2 2 0 0 1 2.81.01L22 15" }],
		["circle", {
			cx: "8",
			cy: "9",
			r: "2"
		}],
		["rect", {
			x: "2",
			y: "3",
			width: "20",
			height: "14",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wand-sparkles.js
var WandSparkles;
var init_wand_sparkles = __esmMin((() => {
	WandSparkles = [
		["path", { d: "m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72" }],
		["path", { d: "m14 7 3 3" }],
		["path", { d: "M5 6v4" }],
		["path", { d: "M19 14v4" }],
		["path", { d: "M10 2v2" }],
		["path", { d: "M7 8H3" }],
		["path", { d: "M21 16h-4" }],
		["path", { d: "M11 3H9" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wand.js
var Wand;
var init_wand = __esmMin((() => {
	Wand = [
		["path", { d: "M15 4V2" }],
		["path", { d: "M15 16v-2" }],
		["path", { d: "M8 9h2" }],
		["path", { d: "M20 9h2" }],
		["path", { d: "M17.8 11.8 19 13" }],
		["path", { d: "M15 9h.01" }],
		["path", { d: "M17.8 6.2 19 5" }],
		["path", { d: "m3 21 9-9" }],
		["path", { d: "M12.2 6.2 11 5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/warehouse.js
var Warehouse;
var init_warehouse = __esmMin((() => {
	Warehouse = [
		["path", { d: "M18 21V10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v11" }],
		["path", { d: "M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 1.132-1.803l7.95-3.974a2 2 0 0 1 1.837 0l7.948 3.974A2 2 0 0 1 22 8z" }],
		["path", { d: "M6 13h12" }],
		["path", { d: "M6 17h12" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/washing-machine.js
var WashingMachine;
var init_washing_machine = __esmMin((() => {
	WashingMachine = [
		["path", { d: "M3 6h3" }],
		["path", { d: "M17 6h.01" }],
		["rect", {
			width: "18",
			height: "20",
			x: "3",
			y: "2",
			rx: "2"
		}],
		["circle", {
			cx: "12",
			cy: "13",
			r: "5"
		}],
		["path", { d: "M12 18a2.5 2.5 0 0 0 0-5 2.5 2.5 0 0 1 0-5" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/watch.js
var Watch;
var init_watch = __esmMin((() => {
	Watch = [
		["path", { d: "M12 10v2.2l1.6 1" }],
		["path", { d: "m16.13 7.66-.81-4.05a2 2 0 0 0-2-1.61h-2.68a2 2 0 0 0-2 1.61l-.78 4.05" }],
		["path", { d: "m7.88 16.36.8 4a2 2 0 0 0 2 1.61h2.72a2 2 0 0 0 2-1.61l.81-4.05" }],
		["circle", {
			cx: "12",
			cy: "12",
			r: "6"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/waves-arrow-down.js
var WavesArrowDown;
var init_waves_arrow_down = __esmMin((() => {
	WavesArrowDown = [
		["path", { d: "M12 10L12 2" }],
		["path", { d: "M16 6L12 10L8 6" }],
		["path", { d: "M2 15C2.6 15.5 3.2 16 4.5 16C7 16 7 14 9.5 14C12.1 14 11.9 16 14.5 16C17 16 17 14 19.5 14C20.8 14 21.4 14.5 22 15" }],
		["path", { d: "M2 21C2.6 21.5 3.2 22 4.5 22C7 22 7 20 9.5 20C12.1 20 11.9 22 14.5 22C17 22 17 20 19.5 20C20.8 20 21.4 20.5 22 21" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/waves-arrow-up.js
var WavesArrowUp;
var init_waves_arrow_up = __esmMin((() => {
	WavesArrowUp = [
		["path", { d: "M12 2v8" }],
		["path", { d: "M2 15c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1" }],
		["path", { d: "M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1" }],
		["path", { d: "m8 6 4-4 4 4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/waves-ladder.js
var WavesLadder;
var init_waves_ladder = __esmMin((() => {
	WavesLadder = [
		["path", { d: "M19 5a2 2 0 0 0-2 2v11" }],
		["path", { d: "M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1" }],
		["path", { d: "M7 13h10" }],
		["path", { d: "M7 9h10" }],
		["path", { d: "M9 5a2 2 0 0 0-2 2v11" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/waves.js
var Waves;
var init_waves = __esmMin((() => {
	Waves = [
		["path", { d: "M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1" }],
		["path", { d: "M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1" }],
		["path", { d: "M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/waypoints.js
var Waypoints;
var init_waypoints = __esmMin((() => {
	Waypoints = [
		["circle", {
			cx: "12",
			cy: "4.5",
			r: "2.5"
		}],
		["path", { d: "m10.2 6.3-3.9 3.9" }],
		["circle", {
			cx: "4.5",
			cy: "12",
			r: "2.5"
		}],
		["path", { d: "M7 12h10" }],
		["circle", {
			cx: "19.5",
			cy: "12",
			r: "2.5"
		}],
		["path", { d: "m13.8 17.7 3.9-3.9" }],
		["circle", {
			cx: "12",
			cy: "19.5",
			r: "2.5"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/webcam.js
var Webcam;
var init_webcam = __esmMin((() => {
	Webcam = [
		["circle", {
			cx: "12",
			cy: "10",
			r: "8"
		}],
		["circle", {
			cx: "12",
			cy: "10",
			r: "3"
		}],
		["path", { d: "M7 22h10" }],
		["path", { d: "M12 22v-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/webhook-off.js
var WebhookOff;
var init_webhook_off = __esmMin((() => {
	WebhookOff = [
		["path", { d: "M17 17h-5c-1.09-.02-1.94.92-2.5 1.9A3 3 0 1 1 2.57 15" }],
		["path", { d: "M9 3.4a4 4 0 0 1 6.52.66" }],
		["path", { d: "m6 17 3.1-5.8a2.5 2.5 0 0 0 .057-2.05" }],
		["path", { d: "M20.3 20.3a4 4 0 0 1-2.3.7" }],
		["path", { d: "M18.6 13a4 4 0 0 1 3.357 3.414" }],
		["path", { d: "m12 6 .6 1" }],
		["path", { d: "m2 2 20 20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/webhook.js
var Webhook;
var init_webhook = __esmMin((() => {
	Webhook = [
		["path", { d: "M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2" }],
		["path", { d: "m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06" }],
		["path", { d: "m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/weight-tilde.js
var WeightTilde;
var init_weight_tilde = __esmMin((() => {
	WeightTilde = [
		["path", { d: "M6.5 8a2 2 0 0 0-1.906 1.46L2.1 18.5A2 2 0 0 0 4 21h16a2 2 0 0 0 1.925-2.54L19.4 9.5A2 2 0 0 0 17.48 8z" }],
		["path", { d: "M7.999 15a2.5 2.5 0 0 1 4 0 2.5 2.5 0 0 0 4 0" }],
		["circle", {
			cx: "12",
			cy: "5",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/weight.js
var Weight;
var init_weight = __esmMin((() => {
	Weight = [["circle", {
		cx: "12",
		cy: "5",
		r: "3"
	}], ["path", { d: "M6.5 8a2 2 0 0 0-1.905 1.46L2.1 18.5A2 2 0 0 0 4 21h16a2 2 0 0 0 1.925-2.54L19.4 9.5A2 2 0 0 0 17.48 8Z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wheat-off.js
var WheatOff;
var init_wheat_off = __esmMin((() => {
	WheatOff = [
		["path", { d: "m2 22 10-10" }],
		["path", { d: "m16 8-1.17 1.17" }],
		["path", { d: "M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z" }],
		["path", { d: "m8 8-.53.53a3.5 3.5 0 0 0 0 4.94L9 15l1.53-1.53c.55-.55.88-1.25.98-1.97" }],
		["path", { d: "M10.91 5.26c.15-.26.34-.51.56-.73L13 3l1.53 1.53a3.5 3.5 0 0 1 .28 4.62" }],
		["path", { d: "M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z" }],
		["path", { d: "M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z" }],
		["path", { d: "m16 16-.53.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.49 3.49 0 0 1 1.97-.98" }],
		["path", { d: "M18.74 13.09c.26-.15.51-.34.73-.56L21 11l-1.53-1.53a3.5 3.5 0 0 0-4.62-.28" }],
		["line", {
			x1: "2",
			x2: "22",
			y1: "2",
			y2: "22"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wheat.js
var Wheat;
var init_wheat = __esmMin((() => {
	Wheat = [
		["path", { d: "M2 22 16 8" }],
		["path", { d: "M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z" }],
		["path", { d: "M7.47 8.53 9 7l1.53 1.53a3.5 3.5 0 0 1 0 4.94L9 15l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z" }],
		["path", { d: "M11.47 4.53 13 3l1.53 1.53a3.5 3.5 0 0 1 0 4.94L13 11l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z" }],
		["path", { d: "M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z" }],
		["path", { d: "M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z" }],
		["path", { d: "M15.47 13.47 17 15l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z" }],
		["path", { d: "M19.47 9.47 21 11l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L13 11l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/whole-word.js
var WholeWord;
var init_whole_word = __esmMin((() => {
	WholeWord = [
		["circle", {
			cx: "7",
			cy: "12",
			r: "3"
		}],
		["path", { d: "M10 9v6" }],
		["circle", {
			cx: "17",
			cy: "12",
			r: "3"
		}],
		["path", { d: "M14 7v8" }],
		["path", { d: "M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wifi-cog.js
var WifiCog;
var init_wifi_cog = __esmMin((() => {
	WifiCog = [
		["path", { d: "m14.305 19.53.923-.382" }],
		["path", { d: "m15.228 16.852-.923-.383" }],
		["path", { d: "m16.852 15.228-.383-.923" }],
		["path", { d: "m16.852 20.772-.383.924" }],
		["path", { d: "m19.148 15.228.383-.923" }],
		["path", { d: "m19.53 21.696-.382-.924" }],
		["path", { d: "M2 7.82a15 15 0 0 1 20 0" }],
		["path", { d: "m20.772 16.852.924-.383" }],
		["path", { d: "m20.772 19.148.924.383" }],
		["path", { d: "M5 11.858a10 10 0 0 1 11.5-1.785" }],
		["path", { d: "M8.5 15.429a5 5 0 0 1 2.413-1.31" }],
		["circle", {
			cx: "18",
			cy: "18",
			r: "3"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wifi-high.js
var WifiHigh;
var init_wifi_high = __esmMin((() => {
	WifiHigh = [
		["path", { d: "M12 20h.01" }],
		["path", { d: "M5 12.859a10 10 0 0 1 14 0" }],
		["path", { d: "M8.5 16.429a5 5 0 0 1 7 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wifi-low.js
var WifiLow;
var init_wifi_low = __esmMin((() => {
	WifiLow = [["path", { d: "M12 20h.01" }], ["path", { d: "M8.5 16.429a5 5 0 0 1 7 0" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wifi-off.js
var WifiOff;
var init_wifi_off = __esmMin((() => {
	WifiOff = [
		["path", { d: "M12 20h.01" }],
		["path", { d: "M8.5 16.429a5 5 0 0 1 7 0" }],
		["path", { d: "M5 12.859a10 10 0 0 1 5.17-2.69" }],
		["path", { d: "M19 12.859a10 10 0 0 0-2.007-1.523" }],
		["path", { d: "M2 8.82a15 15 0 0 1 4.177-2.643" }],
		["path", { d: "M22 8.82a15 15 0 0 0-11.288-3.764" }],
		["path", { d: "m2 2 20 20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wifi-pen.js
var WifiPen;
var init_wifi_pen = __esmMin((() => {
	WifiPen = [
		["path", { d: "M2 8.82a15 15 0 0 1 20 0" }],
		["path", { d: "M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z" }],
		["path", { d: "M5 12.859a10 10 0 0 1 10.5-2.222" }],
		["path", { d: "M8.5 16.429a5 5 0 0 1 3-1.406" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wifi-sync.js
var WifiSync;
var init_wifi_sync = __esmMin((() => {
	WifiSync = [
		["path", { d: "M11.965 10.105v4L13.5 12.5a5 5 0 0 1 8 1.5" }],
		["path", { d: "M11.965 14.105h4" }],
		["path", { d: "M17.965 18.105h4L20.43 19.71a5 5 0 0 1-8-1.5" }],
		["path", { d: "M2 8.82a15 15 0 0 1 20 0" }],
		["path", { d: "M21.965 22.105v-4" }],
		["path", { d: "M5 12.86a10 10 0 0 1 3-2.032" }],
		["path", { d: "M8.5 16.429h.01" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wifi-zero.js
var WifiZero;
var init_wifi_zero = __esmMin((() => {
	WifiZero = [["path", { d: "M12 20h.01" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wifi.js
var Wifi;
var init_wifi = __esmMin((() => {
	Wifi = [
		["path", { d: "M12 20h.01" }],
		["path", { d: "M2 8.82a15 15 0 0 1 20 0" }],
		["path", { d: "M5 12.859a10 10 0 0 1 14 0" }],
		["path", { d: "M8.5 16.429a5 5 0 0 1 7 0" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wind-arrow-down.js
var WindArrowDown;
var init_wind_arrow_down = __esmMin((() => {
	WindArrowDown = [
		["path", { d: "M10 2v8" }],
		["path", { d: "M12.8 21.6A2 2 0 1 0 14 18H2" }],
		["path", { d: "M17.5 10a2.5 2.5 0 1 1 2 4H2" }],
		["path", { d: "m6 6 4 4 4-4" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wind.js
var Wind;
var init_wind = __esmMin((() => {
	Wind = [
		["path", { d: "M12.8 19.6A2 2 0 1 0 14 16H2" }],
		["path", { d: "M17.5 8a2.5 2.5 0 1 1 2 4H2" }],
		["path", { d: "M9.8 4.4A2 2 0 1 1 11 8H2" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wine-off.js
var WineOff;
var init_wine_off = __esmMin((() => {
	WineOff = [
		["path", { d: "M8 22h8" }],
		["path", { d: "M7 10h3m7 0h-1.343" }],
		["path", { d: "M12 15v7" }],
		["path", { d: "M7.307 7.307A12.33 12.33 0 0 0 7 10a5 5 0 0 0 7.391 4.391M8.638 2.981C8.75 2.668 8.872 2.34 9 2h6c1.5 4 2 6 2 8 0 .407-.05.809-.145 1.198" }],
		["line", {
			x1: "2",
			x2: "22",
			y1: "2",
			y2: "22"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wine.js
var Wine;
var init_wine = __esmMin((() => {
	Wine = [
		["path", { d: "M8 22h8" }],
		["path", { d: "M7 10h10" }],
		["path", { d: "M12 15v7" }],
		["path", { d: "M12 15a5 5 0 0 0 5-5c0-2-.5-4-2-8H9c-1.5 4-2 6-2 8a5 5 0 0 0 5 5Z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/workflow.js
var Workflow;
var init_workflow = __esmMin((() => {
	Workflow = [
		["rect", {
			width: "8",
			height: "8",
			x: "3",
			y: "3",
			rx: "2"
		}],
		["path", { d: "M7 11v4a2 2 0 0 0 2 2h4" }],
		["rect", {
			width: "8",
			height: "8",
			x: "13",
			y: "13",
			rx: "2"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/worm.js
var Worm;
var init_worm = __esmMin((() => {
	Worm = [
		["path", { d: "m19 12-1.5 3" }],
		["path", { d: "M19.63 18.81 22 20" }],
		["path", { d: "M6.47 8.23a1.68 1.68 0 0 1 2.44 1.93l-.64 2.08a6.76 6.76 0 0 0 10.16 7.67l.42-.27a1 1 0 1 0-2.73-4.21l-.42.27a1.76 1.76 0 0 1-2.63-1.99l.64-2.08A6.66 6.66 0 0 0 3.94 3.9l-.7.4a1 1 0 1 0 2.55 4.34z" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/wrench.js
var Wrench;
var init_wrench = __esmMin((() => {
	Wrench = [["path", { d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/youtube.js
var Youtube;
var init_youtube = __esmMin((() => {
	Youtube = [["path", { d: "M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.55 0 0 1-16.2 0A2 2 0 0 1 2.5 17" }], ["path", { d: "m10 15 5-3-5-3z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/x.js
var X;
var init_x = __esmMin((() => {
	X = [["path", { d: "M18 6 6 18" }], ["path", { d: "m6 6 12 12" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/zap-off.js
var ZapOff;
var init_zap_off = __esmMin((() => {
	ZapOff = [
		["path", { d: "M10.513 4.856 13.12 2.17a.5.5 0 0 1 .86.46l-1.377 4.317" }],
		["path", { d: "M15.656 10H20a1 1 0 0 1 .78 1.63l-1.72 1.773" }],
		["path", { d: "M16.273 16.273 10.88 21.83a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14H4a1 1 0 0 1-.78-1.63l4.507-4.643" }],
		["path", { d: "m2 2 20 20" }]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/zap.js
var Zap;
var init_zap = __esmMin((() => {
	Zap = [["path", { d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z" }]];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/zoom-in.js
var ZoomIn;
var init_zoom_in = __esmMin((() => {
	ZoomIn = [
		["circle", {
			cx: "11",
			cy: "11",
			r: "8"
		}],
		["line", {
			x1: "21",
			x2: "16.65",
			y1: "21",
			y2: "16.65"
		}],
		["line", {
			x1: "11",
			x2: "11",
			y1: "8",
			y2: "14"
		}],
		["line", {
			x1: "8",
			x2: "14",
			y1: "11",
			y2: "11"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/icons/zoom-out.js
var ZoomOut;
var init_zoom_out = __esmMin((() => {
	ZoomOut = [
		["circle", {
			cx: "11",
			cy: "11",
			r: "8"
		}],
		["line", {
			x1: "21",
			x2: "16.65",
			y1: "21",
			y2: "16.65"
		}],
		["line", {
			x1: "8",
			x2: "14",
			y1: "11",
			y2: "11"
		}]
	];
}));

//#endregion
//#region node_modules/lucide/dist/esm/iconsAndAliases.js
var iconsAndAliases_exports = /* @__PURE__ */ __export({
	AArrowDown: () => AArrowDown,
	AArrowUp: () => AArrowUp,
	ALargeSmall: () => ALargeSmall,
	Accessibility: () => Accessibility,
	Activity: () => Activity,
	ActivitySquare: () => SquareActivity,
	AirVent: () => AirVent,
	Airplay: () => Airplay,
	AlarmCheck: () => AlarmClockCheck,
	AlarmClock: () => AlarmClock,
	AlarmClockCheck: () => AlarmClockCheck,
	AlarmClockMinus: () => AlarmClockMinus,
	AlarmClockOff: () => AlarmClockOff,
	AlarmClockPlus: () => AlarmClockPlus,
	AlarmMinus: () => AlarmClockMinus,
	AlarmPlus: () => AlarmClockPlus,
	AlarmSmoke: () => AlarmSmoke,
	Album: () => Album,
	AlertCircle: () => CircleAlert,
	AlertOctagon: () => OctagonAlert,
	AlertTriangle: () => TriangleAlert,
	AlignCenter: () => TextAlignCenter,
	AlignCenterHorizontal: () => AlignCenterHorizontal,
	AlignCenterVertical: () => AlignCenterVertical,
	AlignEndHorizontal: () => AlignEndHorizontal,
	AlignEndVertical: () => AlignEndVertical,
	AlignHorizontalDistributeCenter: () => AlignHorizontalDistributeCenter,
	AlignHorizontalDistributeEnd: () => AlignHorizontalDistributeEnd,
	AlignHorizontalDistributeStart: () => AlignHorizontalDistributeStart,
	AlignHorizontalJustifyCenter: () => AlignHorizontalJustifyCenter,
	AlignHorizontalJustifyEnd: () => AlignHorizontalJustifyEnd,
	AlignHorizontalJustifyStart: () => AlignHorizontalJustifyStart,
	AlignHorizontalSpaceAround: () => AlignHorizontalSpaceAround,
	AlignHorizontalSpaceBetween: () => AlignHorizontalSpaceBetween,
	AlignJustify: () => TextAlignJustify,
	AlignLeft: () => TextAlignStart,
	AlignRight: () => TextAlignEnd,
	AlignStartHorizontal: () => AlignStartHorizontal,
	AlignStartVertical: () => AlignStartVertical,
	AlignVerticalDistributeCenter: () => AlignVerticalDistributeCenter,
	AlignVerticalDistributeEnd: () => AlignVerticalDistributeEnd,
	AlignVerticalDistributeStart: () => AlignVerticalDistributeStart,
	AlignVerticalJustifyCenter: () => AlignVerticalJustifyCenter,
	AlignVerticalJustifyEnd: () => AlignVerticalJustifyEnd,
	AlignVerticalJustifyStart: () => AlignVerticalJustifyStart,
	AlignVerticalSpaceAround: () => AlignVerticalSpaceAround,
	AlignVerticalSpaceBetween: () => AlignVerticalSpaceBetween,
	Ambulance: () => Ambulance,
	Ampersand: () => Ampersand,
	Ampersands: () => Ampersands,
	Amphora: () => Amphora,
	Anchor: () => Anchor$1,
	Angry: () => Angry,
	Annoyed: () => Annoyed,
	Antenna: () => Antenna,
	Anvil: () => Anvil,
	Aperture: () => Aperture,
	AppWindow: () => AppWindow,
	AppWindowMac: () => AppWindowMac,
	Apple: () => Apple,
	Archive: () => Archive,
	ArchiveRestore: () => ArchiveRestore,
	ArchiveX: () => ArchiveX,
	AreaChart: () => ChartArea,
	Armchair: () => Armchair,
	ArrowBigDown: () => ArrowBigDown,
	ArrowBigDownDash: () => ArrowBigDownDash,
	ArrowBigLeft: () => ArrowBigLeft,
	ArrowBigLeftDash: () => ArrowBigLeftDash,
	ArrowBigRight: () => ArrowBigRight,
	ArrowBigRightDash: () => ArrowBigRightDash,
	ArrowBigUp: () => ArrowBigUp,
	ArrowBigUpDash: () => ArrowBigUpDash,
	ArrowDown: () => ArrowDown,
	ArrowDown01: () => ArrowDown01,
	ArrowDown10: () => ArrowDown10,
	ArrowDownAZ: () => ArrowDownAZ,
	ArrowDownAz: () => ArrowDownAZ,
	ArrowDownCircle: () => CircleArrowDown,
	ArrowDownFromLine: () => ArrowDownFromLine,
	ArrowDownLeft: () => ArrowDownLeft,
	ArrowDownLeftFromCircle: () => CircleArrowOutDownLeft,
	ArrowDownLeftFromSquare: () => SquareArrowOutDownLeft,
	ArrowDownLeftSquare: () => SquareArrowDownLeft,
	ArrowDownNarrowWide: () => ArrowDownNarrowWide,
	ArrowDownRight: () => ArrowDownRight,
	ArrowDownRightFromCircle: () => CircleArrowOutDownRight,
	ArrowDownRightFromSquare: () => SquareArrowOutDownRight,
	ArrowDownRightSquare: () => SquareArrowDownRight,
	ArrowDownSquare: () => SquareArrowDown,
	ArrowDownToDot: () => ArrowDownToDot,
	ArrowDownToLine: () => ArrowDownToLine,
	ArrowDownUp: () => ArrowDownUp,
	ArrowDownWideNarrow: () => ArrowDownWideNarrow,
	ArrowDownZA: () => ArrowDownZA,
	ArrowDownZa: () => ArrowDownZA,
	ArrowLeft: () => ArrowLeft,
	ArrowLeftCircle: () => CircleArrowLeft,
	ArrowLeftFromLine: () => ArrowLeftFromLine,
	ArrowLeftRight: () => ArrowLeftRight,
	ArrowLeftSquare: () => SquareArrowLeft,
	ArrowLeftToLine: () => ArrowLeftToLine,
	ArrowRight: () => ArrowRight,
	ArrowRightCircle: () => CircleArrowRight,
	ArrowRightFromLine: () => ArrowRightFromLine,
	ArrowRightLeft: () => ArrowRightLeft,
	ArrowRightSquare: () => SquareArrowRight,
	ArrowRightToLine: () => ArrowRightToLine,
	ArrowUp: () => ArrowUp,
	ArrowUp01: () => ArrowUp01,
	ArrowUp10: () => ArrowUp10,
	ArrowUpAZ: () => ArrowUpAZ,
	ArrowUpAz: () => ArrowUpAZ,
	ArrowUpCircle: () => CircleArrowUp,
	ArrowUpDown: () => ArrowUpDown,
	ArrowUpFromDot: () => ArrowUpFromDot,
	ArrowUpFromLine: () => ArrowUpFromLine,
	ArrowUpLeft: () => ArrowUpLeft,
	ArrowUpLeftFromCircle: () => CircleArrowOutUpLeft,
	ArrowUpLeftFromSquare: () => SquareArrowOutUpLeft,
	ArrowUpLeftSquare: () => SquareArrowUpLeft,
	ArrowUpNarrowWide: () => ArrowUpNarrowWide,
	ArrowUpRight: () => ArrowUpRight,
	ArrowUpRightFromCircle: () => CircleArrowOutUpRight,
	ArrowUpRightFromSquare: () => SquareArrowOutUpRight,
	ArrowUpRightSquare: () => SquareArrowUpRight,
	ArrowUpSquare: () => SquareArrowUp,
	ArrowUpToLine: () => ArrowUpToLine,
	ArrowUpWideNarrow: () => ArrowUpWideNarrow,
	ArrowUpZA: () => ArrowUpZA,
	ArrowUpZa: () => ArrowUpZA,
	ArrowsUpFromLine: () => ArrowsUpFromLine,
	Asterisk: () => Asterisk,
	AsteriskSquare: () => SquareAsterisk,
	AtSign: () => AtSign,
	Atom: () => Atom,
	AudioLines: () => AudioLines,
	AudioWaveform: () => AudioWaveform,
	Award: () => Award,
	Axe: () => Axe,
	Axis3D: () => Axis3d,
	Axis3d: () => Axis3d,
	Baby: () => Baby,
	Backpack: () => Backpack,
	Badge: () => Badge$1,
	BadgeAlert: () => BadgeAlert,
	BadgeCent: () => BadgeCent,
	BadgeCheck: () => BadgeCheck,
	BadgeDollarSign: () => BadgeDollarSign,
	BadgeEuro: () => BadgeEuro,
	BadgeHelp: () => BadgeQuestionMark,
	BadgeIndianRupee: () => BadgeIndianRupee,
	BadgeInfo: () => BadgeInfo,
	BadgeJapaneseYen: () => BadgeJapaneseYen,
	BadgeMinus: () => BadgeMinus,
	BadgePercent: () => BadgePercent,
	BadgePlus: () => BadgePlus,
	BadgePoundSterling: () => BadgePoundSterling,
	BadgeQuestionMark: () => BadgeQuestionMark,
	BadgeRussianRuble: () => BadgeRussianRuble,
	BadgeSwissFranc: () => BadgeSwissFranc,
	BadgeTurkishLira: () => BadgeTurkishLira,
	BadgeX: () => BadgeX,
	BaggageClaim: () => BaggageClaim,
	Ban: () => Ban,
	Banana: () => Banana,
	Bandage: () => Bandage,
	Banknote: () => Banknote,
	BanknoteArrowDown: () => BanknoteArrowDown,
	BanknoteArrowUp: () => BanknoteArrowUp,
	BanknoteX: () => BanknoteX,
	BarChart: () => ChartNoAxesColumnIncreasing,
	BarChart2: () => ChartNoAxesColumn,
	BarChart3: () => ChartColumn,
	BarChart4: () => ChartColumnIncreasing,
	BarChartBig: () => ChartColumnBig,
	BarChartHorizontal: () => ChartBar,
	BarChartHorizontalBig: () => ChartBarBig,
	Barcode: () => Barcode,
	Barrel: () => Barrel,
	Baseline: () => Baseline,
	Bath: () => Bath,
	Battery: () => Battery,
	BatteryCharging: () => BatteryCharging,
	BatteryFull: () => BatteryFull,
	BatteryLow: () => BatteryLow,
	BatteryMedium: () => BatteryMedium,
	BatteryPlus: () => BatteryPlus,
	BatteryWarning: () => BatteryWarning,
	Beaker: () => Beaker,
	Bean: () => Bean,
	BeanOff: () => BeanOff,
	Bed: () => Bed,
	BedDouble: () => BedDouble,
	BedSingle: () => BedSingle,
	Beef: () => Beef,
	Beer: () => Beer,
	BeerOff: () => BeerOff,
	Bell: () => Bell,
	BellDot: () => BellDot,
	BellElectric: () => BellElectric,
	BellMinus: () => BellMinus,
	BellOff: () => BellOff,
	BellPlus: () => BellPlus,
	BellRing: () => BellRing,
	BetweenHorizonalEnd: () => BetweenHorizontalEnd,
	BetweenHorizonalStart: () => BetweenHorizontalStart,
	BetweenHorizontalEnd: () => BetweenHorizontalEnd,
	BetweenHorizontalStart: () => BetweenHorizontalStart,
	BetweenVerticalEnd: () => BetweenVerticalEnd,
	BetweenVerticalStart: () => BetweenVerticalStart,
	BicepsFlexed: () => BicepsFlexed,
	Bike: () => Bike,
	Binary: () => Binary,
	Binoculars: () => Binoculars,
	Biohazard: () => Biohazard,
	Bird: () => Bird,
	Birdhouse: () => Birdhouse,
	Bitcoin: () => Bitcoin,
	Blend: () => Blend,
	Blinds: () => Blinds,
	Blocks: () => Blocks,
	Bluetooth: () => Bluetooth,
	BluetoothConnected: () => BluetoothConnected,
	BluetoothOff: () => BluetoothOff,
	BluetoothSearching: () => BluetoothSearching,
	Bold: () => Bold,
	Bolt: () => Bolt,
	Bomb: () => Bomb,
	Bone: () => Bone,
	Book: () => Book,
	BookA: () => BookA,
	BookAlert: () => BookAlert,
	BookAudio: () => BookAudio,
	BookCheck: () => BookCheck,
	BookCopy: () => BookCopy,
	BookDashed: () => BookDashed,
	BookDown: () => BookDown,
	BookHeadphones: () => BookHeadphones,
	BookHeart: () => BookHeart,
	BookImage: () => BookImage,
	BookKey: () => BookKey,
	BookLock: () => BookLock,
	BookMarked: () => BookMarked,
	BookMinus: () => BookMinus,
	BookOpen: () => BookOpen,
	BookOpenCheck: () => BookOpenCheck,
	BookOpenText: () => BookOpenText,
	BookPlus: () => BookPlus,
	BookSearch: () => BookSearch,
	BookTemplate: () => BookDashed,
	BookText: () => BookText,
	BookType: () => BookType,
	BookUp: () => BookUp,
	BookUp2: () => BookUp2,
	BookUser: () => BookUser,
	BookX: () => BookX,
	Bookmark: () => Bookmark,
	BookmarkCheck: () => BookmarkCheck,
	BookmarkMinus: () => BookmarkMinus,
	BookmarkPlus: () => BookmarkPlus,
	BookmarkX: () => BookmarkX,
	BoomBox: () => BoomBox,
	Bot: () => Bot,
	BotMessageSquare: () => BotMessageSquare,
	BotOff: () => BotOff,
	BottleWine: () => BottleWine,
	BowArrow: () => BowArrow,
	Box: () => Box,
	BoxSelect: () => SquareDashed,
	Boxes: () => Boxes,
	Braces: () => Braces,
	Brackets: () => Brackets,
	Brain: () => Brain,
	BrainCircuit: () => BrainCircuit,
	BrainCog: () => BrainCog,
	BrickWall: () => BrickWall,
	BrickWallFire: () => BrickWallFire,
	BrickWallShield: () => BrickWallShield,
	Briefcase: () => Briefcase,
	BriefcaseBusiness: () => BriefcaseBusiness,
	BriefcaseConveyorBelt: () => BriefcaseConveyorBelt,
	BriefcaseMedical: () => BriefcaseMedical,
	BringToFront: () => BringToFront,
	Brush: () => Brush,
	BrushCleaning: () => BrushCleaning,
	Bubbles: () => Bubbles,
	Bug: () => Bug,
	BugOff: () => BugOff,
	BugPlay: () => BugPlay,
	Building: () => Building,
	Building2: () => Building2,
	Bus: () => Bus,
	BusFront: () => BusFront,
	Cable: () => Cable,
	CableCar: () => CableCar,
	Cake: () => Cake,
	CakeSlice: () => CakeSlice,
	Calculator: () => Calculator,
	Calendar: () => Calendar,
	Calendar1: () => Calendar1,
	CalendarArrowDown: () => CalendarArrowDown,
	CalendarArrowUp: () => CalendarArrowUp,
	CalendarCheck: () => CalendarCheck,
	CalendarCheck2: () => CalendarCheck2,
	CalendarClock: () => CalendarClock,
	CalendarCog: () => CalendarCog,
	CalendarDays: () => CalendarDays,
	CalendarFold: () => CalendarFold,
	CalendarHeart: () => CalendarHeart,
	CalendarMinus: () => CalendarMinus,
	CalendarMinus2: () => CalendarMinus2,
	CalendarOff: () => CalendarOff,
	CalendarPlus: () => CalendarPlus,
	CalendarPlus2: () => CalendarPlus2,
	CalendarRange: () => CalendarRange,
	CalendarSearch: () => CalendarSearch,
	CalendarSync: () => CalendarSync,
	CalendarX: () => CalendarX,
	CalendarX2: () => CalendarX2,
	Calendars: () => Calendars,
	Camera: () => Camera,
	CameraOff: () => CameraOff,
	CandlestickChart: () => ChartCandlestick,
	Candy: () => Candy,
	CandyCane: () => CandyCane,
	CandyOff: () => CandyOff,
	Cannabis: () => Cannabis,
	Captions: () => Captions,
	CaptionsOff: () => CaptionsOff,
	Car: () => Car,
	CarFront: () => CarFront,
	CarTaxiFront: () => CarTaxiFront,
	Caravan: () => Caravan,
	CardSim: () => CardSim,
	Carrot: () => Carrot,
	CaseLower: () => CaseLower,
	CaseSensitive: () => CaseSensitive,
	CaseUpper: () => CaseUpper,
	CassetteTape: () => CassetteTape,
	Cast: () => Cast,
	Castle: () => Castle,
	Cat: () => Cat,
	Cctv: () => Cctv,
	ChartArea: () => ChartArea,
	ChartBar: () => ChartBar,
	ChartBarBig: () => ChartBarBig,
	ChartBarDecreasing: () => ChartBarDecreasing,
	ChartBarIncreasing: () => ChartBarIncreasing,
	ChartBarStacked: () => ChartBarStacked,
	ChartCandlestick: () => ChartCandlestick,
	ChartColumn: () => ChartColumn,
	ChartColumnBig: () => ChartColumnBig,
	ChartColumnDecreasing: () => ChartColumnDecreasing,
	ChartColumnIncreasing: () => ChartColumnIncreasing,
	ChartColumnStacked: () => ChartColumnStacked,
	ChartGantt: () => ChartGantt,
	ChartLine: () => ChartLine,
	ChartNetwork: () => ChartNetwork,
	ChartNoAxesColumn: () => ChartNoAxesColumn,
	ChartNoAxesColumnDecreasing: () => ChartNoAxesColumnDecreasing,
	ChartNoAxesColumnIncreasing: () => ChartNoAxesColumnIncreasing,
	ChartNoAxesCombined: () => ChartNoAxesCombined,
	ChartNoAxesGantt: () => ChartNoAxesGantt,
	ChartPie: () => ChartPie,
	ChartScatter: () => ChartScatter,
	ChartSpline: () => ChartSpline,
	Check: () => Check,
	CheckCheck: () => CheckCheck,
	CheckCircle: () => CircleCheckBig,
	CheckCircle2: () => CircleCheck,
	CheckLine: () => CheckLine,
	CheckSquare: () => SquareCheckBig,
	CheckSquare2: () => SquareCheck,
	ChefHat: () => ChefHat,
	Cherry: () => Cherry,
	ChessBishop: () => ChessBishop,
	ChessKing: () => ChessKing,
	ChessKnight: () => ChessKnight,
	ChessPawn: () => ChessPawn,
	ChessQueen: () => ChessQueen,
	ChessRook: () => ChessRook,
	ChevronDown: () => ChevronDown,
	ChevronDownCircle: () => CircleChevronDown,
	ChevronDownSquare: () => SquareChevronDown,
	ChevronFirst: () => ChevronFirst,
	ChevronLast: () => ChevronLast,
	ChevronLeft: () => ChevronLeft,
	ChevronLeftCircle: () => CircleChevronLeft,
	ChevronLeftSquare: () => SquareChevronLeft,
	ChevronRight: () => ChevronRight,
	ChevronRightCircle: () => CircleChevronRight,
	ChevronRightSquare: () => SquareChevronRight,
	ChevronUp: () => ChevronUp,
	ChevronUpCircle: () => CircleChevronUp,
	ChevronUpSquare: () => SquareChevronUp,
	ChevronsDown: () => ChevronsDown,
	ChevronsDownUp: () => ChevronsDownUp,
	ChevronsLeft: () => ChevronsLeft,
	ChevronsLeftRight: () => ChevronsLeftRight,
	ChevronsLeftRightEllipsis: () => ChevronsLeftRightEllipsis,
	ChevronsRight: () => ChevronsRight,
	ChevronsRightLeft: () => ChevronsRightLeft,
	ChevronsUp: () => ChevronsUp,
	ChevronsUpDown: () => ChevronsUpDown,
	Chrome: () => Chromium,
	Chromium: () => Chromium,
	Church: () => Church,
	Cigarette: () => Cigarette,
	CigaretteOff: () => CigaretteOff,
	Circle: () => Circle,
	CircleAlert: () => CircleAlert,
	CircleArrowDown: () => CircleArrowDown,
	CircleArrowLeft: () => CircleArrowLeft,
	CircleArrowOutDownLeft: () => CircleArrowOutDownLeft,
	CircleArrowOutDownRight: () => CircleArrowOutDownRight,
	CircleArrowOutUpLeft: () => CircleArrowOutUpLeft,
	CircleArrowOutUpRight: () => CircleArrowOutUpRight,
	CircleArrowRight: () => CircleArrowRight,
	CircleArrowUp: () => CircleArrowUp,
	CircleCheck: () => CircleCheck,
	CircleCheckBig: () => CircleCheckBig,
	CircleChevronDown: () => CircleChevronDown,
	CircleChevronLeft: () => CircleChevronLeft,
	CircleChevronRight: () => CircleChevronRight,
	CircleChevronUp: () => CircleChevronUp,
	CircleDashed: () => CircleDashed,
	CircleDivide: () => CircleDivide,
	CircleDollarSign: () => CircleDollarSign,
	CircleDot: () => CircleDot,
	CircleDotDashed: () => CircleDotDashed,
	CircleEllipsis: () => CircleEllipsis,
	CircleEqual: () => CircleEqual,
	CircleFadingArrowUp: () => CircleFadingArrowUp,
	CircleFadingPlus: () => CircleFadingPlus,
	CircleGauge: () => CircleGauge,
	CircleHelp: () => CircleQuestionMark,
	CircleMinus: () => CircleMinus,
	CircleOff: () => CircleOff,
	CircleParking: () => CircleParking,
	CircleParkingOff: () => CircleParkingOff,
	CirclePause: () => CirclePause,
	CirclePercent: () => CirclePercent,
	CirclePlay: () => CirclePlay,
	CirclePlus: () => CirclePlus,
	CirclePoundSterling: () => CirclePoundSterling,
	CirclePower: () => CirclePower,
	CircleQuestionMark: () => CircleQuestionMark,
	CircleSlash: () => CircleSlash,
	CircleSlash2: () => CircleSlash2,
	CircleSlashed: () => CircleSlash2,
	CircleSmall: () => CircleSmall,
	CircleStar: () => CircleStar,
	CircleStop: () => CircleStop,
	CircleUser: () => CircleUser,
	CircleUserRound: () => CircleUserRound,
	CircleX: () => CircleX,
	CircuitBoard: () => CircuitBoard,
	Citrus: () => Citrus,
	Clapperboard: () => Clapperboard,
	Clipboard: () => Clipboard,
	ClipboardCheck: () => ClipboardCheck,
	ClipboardClock: () => ClipboardClock,
	ClipboardCopy: () => ClipboardCopy,
	ClipboardEdit: () => ClipboardPen,
	ClipboardList: () => ClipboardList,
	ClipboardMinus: () => ClipboardMinus,
	ClipboardPaste: () => ClipboardPaste,
	ClipboardPen: () => ClipboardPen,
	ClipboardPenLine: () => ClipboardPenLine,
	ClipboardPlus: () => ClipboardPlus,
	ClipboardSignature: () => ClipboardPenLine,
	ClipboardType: () => ClipboardType,
	ClipboardX: () => ClipboardX,
	Clock: () => Clock,
	Clock1: () => Clock1,
	Clock10: () => Clock10,
	Clock11: () => Clock11,
	Clock12: () => Clock12,
	Clock2: () => Clock2,
	Clock3: () => Clock3,
	Clock4: () => Clock4,
	Clock5: () => Clock5,
	Clock6: () => Clock6,
	Clock7: () => Clock7,
	Clock8: () => Clock8,
	Clock9: () => Clock9,
	ClockAlert: () => ClockAlert,
	ClockArrowDown: () => ClockArrowDown,
	ClockArrowUp: () => ClockArrowUp,
	ClockCheck: () => ClockCheck,
	ClockFading: () => ClockFading,
	ClockPlus: () => ClockPlus,
	ClosedCaption: () => ClosedCaption,
	Cloud: () => Cloud,
	CloudAlert: () => CloudAlert,
	CloudCheck: () => CloudCheck,
	CloudCog: () => CloudCog,
	CloudDownload: () => CloudDownload,
	CloudDrizzle: () => CloudDrizzle,
	CloudFog: () => CloudFog,
	CloudHail: () => CloudHail,
	CloudLightning: () => CloudLightning,
	CloudMoon: () => CloudMoon,
	CloudMoonRain: () => CloudMoonRain,
	CloudOff: () => CloudOff,
	CloudRain: () => CloudRain,
	CloudRainWind: () => CloudRainWind,
	CloudSnow: () => CloudSnow,
	CloudSun: () => CloudSun,
	CloudSunRain: () => CloudSunRain,
	CloudUpload: () => CloudUpload,
	Cloudy: () => Cloudy,
	Clover: () => Clover,
	Club: () => Club,
	Code: () => Code,
	Code2: () => CodeXml,
	CodeSquare: () => SquareCode,
	CodeXml: () => CodeXml,
	Codepen: () => Codepen,
	Codesandbox: () => Codesandbox,
	Coffee: () => Coffee,
	Cog: () => Cog,
	Coins: () => Coins,
	Columns: () => Columns2,
	Columns2: () => Columns2,
	Columns3: () => Columns3,
	Columns3Cog: () => Columns3Cog,
	Columns4: () => Columns4,
	ColumnsSettings: () => Columns3Cog,
	Combine: () => Combine,
	Command: () => Command,
	Compass: () => Compass,
	Component: () => Component,
	Computer: () => Computer,
	ConciergeBell: () => ConciergeBell,
	Cone: () => Cone,
	Construction: () => Construction,
	Contact: () => Contact,
	Contact2: () => ContactRound,
	ContactRound: () => ContactRound,
	Container: () => Container,
	Contrast: () => Contrast,
	Cookie: () => Cookie,
	CookingPot: () => CookingPot,
	Copy: () => Copy,
	CopyCheck: () => CopyCheck,
	CopyMinus: () => CopyMinus,
	CopyPlus: () => CopyPlus,
	CopySlash: () => CopySlash,
	CopyX: () => CopyX,
	Copyleft: () => Copyleft,
	Copyright: () => Copyright,
	CornerDownLeft: () => CornerDownLeft,
	CornerDownRight: () => CornerDownRight,
	CornerLeftDown: () => CornerLeftDown,
	CornerLeftUp: () => CornerLeftUp,
	CornerRightDown: () => CornerRightDown,
	CornerRightUp: () => CornerRightUp,
	CornerUpLeft: () => CornerUpLeft,
	CornerUpRight: () => CornerUpRight,
	Cpu: () => Cpu,
	CreativeCommons: () => CreativeCommons,
	CreditCard: () => CreditCard,
	Croissant: () => Croissant,
	Crop: () => Crop,
	Cross: () => Cross,
	Crosshair: () => Crosshair,
	Crown: () => Crown,
	Cuboid: () => Cuboid,
	CupSoda: () => CupSoda,
	CurlyBraces: () => Braces,
	Currency: () => Currency,
	Cylinder: () => Cylinder,
	Dam: () => Dam,
	Database: () => Database,
	DatabaseBackup: () => DatabaseBackup,
	DatabaseZap: () => DatabaseZap,
	DecimalsArrowLeft: () => DecimalsArrowLeft,
	DecimalsArrowRight: () => DecimalsArrowRight,
	Delete: () => Delete$2,
	Dessert: () => Dessert,
	Diameter: () => Diameter,
	Diamond: () => Diamond,
	DiamondMinus: () => DiamondMinus,
	DiamondPercent: () => DiamondPercent,
	DiamondPlus: () => DiamondPlus,
	Dice1: () => Dice1,
	Dice2: () => Dice2,
	Dice3: () => Dice3,
	Dice4: () => Dice4,
	Dice5: () => Dice5,
	Dice6: () => Dice6,
	Dices: () => Dices,
	Diff: () => Diff$2,
	Disc: () => Disc,
	Disc2: () => Disc2,
	Disc3: () => Disc3,
	DiscAlbum: () => DiscAlbum,
	Divide: () => Divide,
	DivideCircle: () => CircleDivide,
	DivideSquare: () => SquareDivide,
	Dna: () => Dna,
	DnaOff: () => DnaOff,
	Dock: () => Dock,
	Dog: () => Dog,
	DollarSign: () => DollarSign,
	Donut: () => Donut,
	DoorClosed: () => DoorClosed,
	DoorClosedLocked: () => DoorClosedLocked,
	DoorOpen: () => DoorOpen,
	Dot: () => Dot,
	DotSquare: () => SquareDot,
	Download: () => Download,
	DownloadCloud: () => CloudDownload,
	DraftingCompass: () => DraftingCompass,
	Drama: () => Drama,
	Dribbble: () => Dribbble,
	Drill: () => Drill,
	Drone: () => Drone,
	Droplet: () => Droplet,
	DropletOff: () => DropletOff,
	Droplets: () => Droplets,
	Drum: () => Drum,
	Drumstick: () => Drumstick,
	Dumbbell: () => Dumbbell,
	Ear: () => Ear,
	EarOff: () => EarOff,
	Earth: () => Earth,
	EarthLock: () => EarthLock,
	Eclipse: () => Eclipse,
	Edit: () => SquarePen,
	Edit2: () => Pen,
	Edit3: () => PenLine,
	Egg: () => Egg,
	EggFried: () => EggFried,
	EggOff: () => EggOff,
	Ellipsis: () => Ellipsis,
	EllipsisVertical: () => EllipsisVertical,
	Equal: () => Equal,
	EqualApproximately: () => EqualApproximately,
	EqualNot: () => EqualNot,
	EqualSquare: () => SquareEqual,
	Eraser: () => Eraser,
	EthernetPort: () => EthernetPort,
	Euro: () => Euro,
	EvCharger: () => EvCharger,
	Expand: () => Expand,
	ExternalLink: () => ExternalLink,
	Eye: () => Eye,
	EyeClosed: () => EyeClosed,
	EyeOff: () => EyeOff,
	Facebook: () => Facebook,
	Factory: () => Factory,
	Fan: () => Fan,
	FastForward: () => FastForward,
	Feather: () => Feather,
	Fence: () => Fence,
	FerrisWheel: () => FerrisWheel,
	Figma: () => Figma,
	File: () => File$1,
	FileArchive: () => FileArchive,
	FileAudio: () => FileHeadphone,
	FileAudio2: () => FileHeadphone,
	FileAxis3D: () => FileAxis3d,
	FileAxis3d: () => FileAxis3d,
	FileBadge: () => FileBadge,
	FileBadge2: () => FileBadge,
	FileBarChart: () => FileChartColumnIncreasing,
	FileBarChart2: () => FileChartColumn,
	FileBox: () => FileBox,
	FileBraces: () => FileBraces,
	FileBracesCorner: () => FileBracesCorner,
	FileChartColumn: () => FileChartColumn,
	FileChartColumnIncreasing: () => FileChartColumnIncreasing,
	FileChartLine: () => FileChartLine,
	FileChartPie: () => FileChartPie,
	FileCheck: () => FileCheck,
	FileCheck2: () => FileCheckCorner,
	FileCheckCorner: () => FileCheckCorner,
	FileClock: () => FileClock,
	FileCode: () => FileCode,
	FileCode2: () => FileCodeCorner,
	FileCodeCorner: () => FileCodeCorner,
	FileCog: () => FileCog,
	FileCog2: () => FileCog,
	FileDiff: () => FileDiff,
	FileDigit: () => FileDigit,
	FileDown: () => FileDown,
	FileEdit: () => FilePen,
	FileExclamationPoint: () => FileExclamationPoint,
	FileHeadphone: () => FileHeadphone,
	FileHeart: () => FileHeart,
	FileImage: () => FileImage,
	FileInput: () => FileInput,
	FileJson: () => FileBraces,
	FileJson2: () => FileBracesCorner,
	FileKey: () => FileKey,
	FileKey2: () => FileKey,
	FileLineChart: () => FileChartLine,
	FileLock: () => FileLock,
	FileLock2: () => FileLock,
	FileMinus: () => FileMinus,
	FileMinus2: () => FileMinusCorner,
	FileMinusCorner: () => FileMinusCorner,
	FileMusic: () => FileMusic,
	FileOutput: () => FileOutput,
	FilePen: () => FilePen,
	FilePenLine: () => FilePenLine,
	FilePieChart: () => FileChartPie,
	FilePlay: () => FilePlay,
	FilePlus: () => FilePlus,
	FilePlus2: () => FilePlusCorner,
	FilePlusCorner: () => FilePlusCorner,
	FileQuestion: () => FileQuestionMark,
	FileQuestionMark: () => FileQuestionMark,
	FileScan: () => FileScan,
	FileSearch: () => FileSearch,
	FileSearch2: () => FileSearchCorner,
	FileSearchCorner: () => FileSearchCorner,
	FileSignal: () => FileSignal,
	FileSignature: () => FilePenLine,
	FileSliders: () => FileSliders,
	FileSpreadsheet: () => FileSpreadsheet,
	FileStack: () => FileStack,
	FileSymlink: () => FileSymlink,
	FileTerminal: () => FileTerminal,
	FileText: () => FileText,
	FileType: () => FileType,
	FileType2: () => FileTypeCorner,
	FileTypeCorner: () => FileTypeCorner,
	FileUp: () => FileUp,
	FileUser: () => FileUser,
	FileVideo: () => FilePlay,
	FileVideo2: () => FileVideoCamera,
	FileVideoCamera: () => FileVideoCamera,
	FileVolume: () => FileVolume,
	FileVolume2: () => FileSignal,
	FileWarning: () => FileExclamationPoint,
	FileX: () => FileX,
	FileX2: () => FileXCorner,
	FileXCorner: () => FileXCorner,
	Files: () => Files,
	Film: () => Film,
	Filter: () => Funnel,
	FilterX: () => FunnelX,
	Fingerprint: () => FingerprintPattern,
	FingerprintPattern: () => FingerprintPattern,
	FireExtinguisher: () => FireExtinguisher,
	Fish: () => Fish,
	FishOff: () => FishOff,
	FishSymbol: () => FishSymbol,
	Flag: () => Flag,
	FlagOff: () => FlagOff,
	FlagTriangleLeft: () => FlagTriangleLeft,
	FlagTriangleRight: () => FlagTriangleRight,
	Flame: () => Flame,
	FlameKindling: () => FlameKindling,
	Flashlight: () => Flashlight,
	FlashlightOff: () => FlashlightOff,
	FlaskConical: () => FlaskConical,
	FlaskConicalOff: () => FlaskConicalOff,
	FlaskRound: () => FlaskRound,
	FlipHorizontal: () => FlipHorizontal,
	FlipHorizontal2: () => FlipHorizontal2,
	FlipVertical: () => FlipVertical,
	FlipVertical2: () => FlipVertical2,
	Flower: () => Flower,
	Flower2: () => Flower2,
	Focus: () => Focus,
	FoldHorizontal: () => FoldHorizontal,
	FoldVertical: () => FoldVertical,
	Folder: () => Folder$1,
	FolderArchive: () => FolderArchive,
	FolderCheck: () => FolderCheck,
	FolderClock: () => FolderClock,
	FolderClosed: () => FolderClosed,
	FolderCode: () => FolderCode,
	FolderCog: () => FolderCog,
	FolderCog2: () => FolderCog,
	FolderDot: () => FolderDot,
	FolderDown: () => FolderDown,
	FolderEdit: () => FolderPen,
	FolderGit: () => FolderGit,
	FolderGit2: () => FolderGit2,
	FolderHeart: () => FolderHeart,
	FolderInput: () => FolderInput,
	FolderKanban: () => FolderKanban,
	FolderKey: () => FolderKey,
	FolderLock: () => FolderLock,
	FolderMinus: () => FolderMinus,
	FolderOpen: () => FolderOpen,
	FolderOpenDot: () => FolderOpenDot,
	FolderOutput: () => FolderOutput,
	FolderPen: () => FolderPen,
	FolderPlus: () => FolderPlus,
	FolderRoot: () => FolderRoot,
	FolderSearch: () => FolderSearch,
	FolderSearch2: () => FolderSearch2,
	FolderSymlink: () => FolderSymlink,
	FolderSync: () => FolderSync,
	FolderTree: () => FolderTree,
	FolderUp: () => FolderUp,
	FolderX: () => FolderX,
	Folders: () => Folders,
	Footprints: () => Footprints,
	ForkKnife: () => Utensils,
	ForkKnifeCrossed: () => UtensilsCrossed,
	Forklift: () => Forklift,
	Form: () => Form,
	FormInput: () => RectangleEllipsis,
	Forward: () => Forward,
	Frame: () => Frame,
	Framer: () => Framer,
	Frown: () => Frown,
	Fuel: () => Fuel,
	Fullscreen: () => Fullscreen,
	FunctionSquare: () => SquareFunction,
	Funnel: () => Funnel,
	FunnelPlus: () => FunnelPlus,
	FunnelX: () => FunnelX,
	GalleryHorizontal: () => GalleryHorizontal,
	GalleryHorizontalEnd: () => GalleryHorizontalEnd,
	GalleryThumbnails: () => GalleryThumbnails,
	GalleryVertical: () => GalleryVertical,
	GalleryVerticalEnd: () => GalleryVerticalEnd,
	Gamepad: () => Gamepad,
	Gamepad2: () => Gamepad2,
	GamepadDirectional: () => GamepadDirectional,
	GanttChart: () => ChartNoAxesGantt,
	GanttChartSquare: () => SquareChartGantt,
	Gauge: () => Gauge,
	GaugeCircle: () => CircleGauge,
	Gavel: () => Gavel,
	Gem: () => Gem,
	GeorgianLari: () => GeorgianLari,
	Ghost: () => Ghost,
	Gift: () => Gift,
	GitBranch: () => GitBranch,
	GitBranchMinus: () => GitBranchMinus,
	GitBranchPlus: () => GitBranchPlus,
	GitCommit: () => GitCommitHorizontal,
	GitCommitHorizontal: () => GitCommitHorizontal,
	GitCommitVertical: () => GitCommitVertical,
	GitCompare: () => GitCompare,
	GitCompareArrows: () => GitCompareArrows,
	GitFork: () => GitFork,
	GitGraph: () => GitGraph,
	GitMerge: () => GitMerge,
	GitPullRequest: () => GitPullRequest,
	GitPullRequestArrow: () => GitPullRequestArrow,
	GitPullRequestClosed: () => GitPullRequestClosed,
	GitPullRequestCreate: () => GitPullRequestCreate,
	GitPullRequestCreateArrow: () => GitPullRequestCreateArrow,
	GitPullRequestDraft: () => GitPullRequestDraft,
	Github: () => Github,
	Gitlab: () => Gitlab,
	GlassWater: () => GlassWater,
	Glasses: () => Glasses,
	Globe: () => Globe,
	Globe2: () => Earth,
	GlobeLock: () => GlobeLock,
	Goal: () => Goal,
	Gpu: () => Gpu,
	Grab: () => HandGrab,
	GraduationCap: () => GraduationCap,
	Grape: () => Grape,
	Grid: () => Grid3x3,
	Grid2X2: () => Grid2x2,
	Grid2X2Check: () => Grid2x2Check,
	Grid2X2Plus: () => Grid2x2Plus,
	Grid2X2X: () => Grid2x2X,
	Grid2x2: () => Grid2x2,
	Grid2x2Check: () => Grid2x2Check,
	Grid2x2Plus: () => Grid2x2Plus,
	Grid2x2X: () => Grid2x2X,
	Grid3X3: () => Grid3x3,
	Grid3x2: () => Grid3x2,
	Grid3x3: () => Grid3x3,
	Grip: () => Grip,
	GripHorizontal: () => GripHorizontal,
	GripVertical: () => GripVertical,
	Group: () => Group,
	Guitar: () => Guitar,
	Ham: () => Ham,
	Hamburger: () => Hamburger,
	Hammer: () => Hammer,
	Hand: () => Hand,
	HandCoins: () => HandCoins,
	HandFist: () => HandFist,
	HandGrab: () => HandGrab,
	HandHeart: () => HandHeart,
	HandHelping: () => HandHelping,
	HandMetal: () => HandMetal,
	HandPlatter: () => HandPlatter,
	Handbag: () => Handbag,
	Handshake: () => Handshake,
	HardDrive: () => HardDrive,
	HardDriveDownload: () => HardDriveDownload,
	HardDriveUpload: () => HardDriveUpload,
	HardHat: () => HardHat,
	Hash: () => Hash,
	HatGlasses: () => HatGlasses,
	Haze: () => Haze,
	HdmiPort: () => HdmiPort,
	Heading: () => Heading,
	Heading1: () => Heading1,
	Heading2: () => Heading2,
	Heading3: () => Heading3,
	Heading4: () => Heading4,
	Heading5: () => Heading5,
	Heading6: () => Heading6,
	HeadphoneOff: () => HeadphoneOff,
	Headphones: () => Headphones,
	Headset: () => Headset,
	Heart: () => Heart,
	HeartCrack: () => HeartCrack,
	HeartHandshake: () => HeartHandshake,
	HeartMinus: () => HeartMinus,
	HeartOff: () => HeartOff,
	HeartPlus: () => HeartPlus,
	HeartPulse: () => HeartPulse,
	Heater: () => Heater,
	Helicopter: () => Helicopter,
	HelpCircle: () => CircleQuestionMark,
	HelpingHand: () => HandHelping,
	Hexagon: () => Hexagon,
	Highlighter: () => Highlighter,
	History: () => History,
	Home: () => House,
	Hop: () => Hop,
	HopOff: () => HopOff,
	Hospital: () => Hospital,
	Hotel: () => Hotel,
	Hourglass: () => Hourglass,
	House: () => House,
	HouseHeart: () => HouseHeart,
	HousePlug: () => HousePlug,
	HousePlus: () => HousePlus,
	HouseWifi: () => HouseWifi,
	IceCream: () => IceCreamCone,
	IceCream2: () => IceCreamBowl,
	IceCreamBowl: () => IceCreamBowl,
	IceCreamCone: () => IceCreamCone,
	IdCard: () => IdCard,
	IdCardLanyard: () => IdCardLanyard,
	Image: () => Image$1,
	ImageDown: () => ImageDown,
	ImageMinus: () => ImageMinus,
	ImageOff: () => ImageOff,
	ImagePlay: () => ImagePlay,
	ImagePlus: () => ImagePlus,
	ImageUp: () => ImageUp,
	ImageUpscale: () => ImageUpscale,
	Images: () => Images,
	Import: () => Import,
	Inbox: () => Inbox,
	Indent: () => ListIndentIncrease,
	IndentDecrease: () => ListIndentDecrease,
	IndentIncrease: () => ListIndentIncrease,
	IndianRupee: () => IndianRupee,
	Infinity: () => Infinity$1,
	Info: () => Info,
	Inspect: () => SquareMousePointer,
	InspectionPanel: () => InspectionPanel,
	Instagram: () => Instagram,
	Italic: () => Italic,
	IterationCcw: () => IterationCcw,
	IterationCw: () => IterationCw,
	JapaneseYen: () => JapaneseYen,
	Joystick: () => Joystick,
	Kanban: () => Kanban,
	KanbanSquare: () => SquareKanban,
	KanbanSquareDashed: () => SquareDashedKanban,
	Kayak: () => Kayak,
	Key: () => Key,
	KeyRound: () => KeyRound,
	KeySquare: () => KeySquare,
	Keyboard: () => Keyboard,
	KeyboardMusic: () => KeyboardMusic,
	KeyboardOff: () => KeyboardOff,
	Lamp: () => Lamp,
	LampCeiling: () => LampCeiling,
	LampDesk: () => LampDesk,
	LampFloor: () => LampFloor,
	LampWallDown: () => LampWallDown,
	LampWallUp: () => LampWallUp,
	LandPlot: () => LandPlot,
	Landmark: () => Landmark,
	Languages: () => Languages,
	Laptop: () => Laptop,
	Laptop2: () => LaptopMinimal,
	LaptopMinimal: () => LaptopMinimal,
	LaptopMinimalCheck: () => LaptopMinimalCheck,
	Lasso: () => Lasso,
	LassoSelect: () => LassoSelect,
	Laugh: () => Laugh,
	Layers: () => Layers,
	Layers2: () => Layers2,
	Layers3: () => Layers,
	Layout: () => PanelsTopLeft,
	LayoutDashboard: () => LayoutDashboard,
	LayoutGrid: () => LayoutGrid,
	LayoutList: () => LayoutList,
	LayoutPanelLeft: () => LayoutPanelLeft,
	LayoutPanelTop: () => LayoutPanelTop,
	LayoutTemplate: () => LayoutTemplate,
	Leaf: () => Leaf,
	LeafyGreen: () => LeafyGreen,
	Lectern: () => Lectern,
	LetterText: () => TextInitial,
	Library: () => Library,
	LibraryBig: () => LibraryBig,
	LibrarySquare: () => SquareLibrary,
	LifeBuoy: () => LifeBuoy,
	Ligature: () => Ligature,
	Lightbulb: () => Lightbulb,
	LightbulbOff: () => LightbulbOff,
	LineChart: () => ChartLine,
	LineSquiggle: () => LineSquiggle,
	Link: () => Link,
	Link2: () => Link2,
	Link2Off: () => Link2Off,
	Linkedin: () => Linkedin,
	List: () => List,
	ListCheck: () => ListCheck,
	ListChecks: () => ListChecks,
	ListChevronsDownUp: () => ListChevronsDownUp,
	ListChevronsUpDown: () => ListChevronsUpDown,
	ListCollapse: () => ListCollapse,
	ListEnd: () => ListEnd,
	ListFilter: () => ListFilter,
	ListFilterPlus: () => ListFilterPlus,
	ListIndentDecrease: () => ListIndentDecrease,
	ListIndentIncrease: () => ListIndentIncrease,
	ListMinus: () => ListMinus,
	ListMusic: () => ListMusic,
	ListOrdered: () => ListOrdered,
	ListPlus: () => ListPlus,
	ListRestart: () => ListRestart,
	ListStart: () => ListStart,
	ListTodo: () => ListTodo,
	ListTree: () => ListTree,
	ListVideo: () => ListVideo,
	ListX: () => ListX,
	Loader: () => Loader,
	Loader2: () => LoaderCircle,
	LoaderCircle: () => LoaderCircle,
	LoaderPinwheel: () => LoaderPinwheel,
	Locate: () => Locate,
	LocateFixed: () => LocateFixed,
	LocateOff: () => LocateOff,
	LocationEdit: () => MapPinPen,
	Lock: () => Lock,
	LockKeyhole: () => LockKeyhole,
	LockKeyholeOpen: () => LockKeyholeOpen,
	LockOpen: () => LockOpen,
	LogIn: () => LogIn,
	LogOut: () => LogOut,
	Logs: () => Logs,
	Lollipop: () => Lollipop,
	Luggage: () => Luggage,
	MSquare: () => SquareM,
	Magnet: () => Magnet,
	Mail: () => Mail,
	MailCheck: () => MailCheck,
	MailMinus: () => MailMinus,
	MailOpen: () => MailOpen,
	MailPlus: () => MailPlus,
	MailQuestion: () => MailQuestionMark,
	MailQuestionMark: () => MailQuestionMark,
	MailSearch: () => MailSearch,
	MailWarning: () => MailWarning,
	MailX: () => MailX,
	Mailbox: () => Mailbox,
	Mails: () => Mails,
	Map: () => Map$1,
	MapMinus: () => MapMinus,
	MapPin: () => MapPin,
	MapPinCheck: () => MapPinCheck,
	MapPinCheckInside: () => MapPinCheckInside,
	MapPinHouse: () => MapPinHouse,
	MapPinMinus: () => MapPinMinus,
	MapPinMinusInside: () => MapPinMinusInside,
	MapPinOff: () => MapPinOff,
	MapPinPen: () => MapPinPen,
	MapPinPlus: () => MapPinPlus,
	MapPinPlusInside: () => MapPinPlusInside,
	MapPinX: () => MapPinX,
	MapPinXInside: () => MapPinXInside,
	MapPinned: () => MapPinned,
	MapPlus: () => MapPlus,
	Mars: () => Mars,
	MarsStroke: () => MarsStroke,
	Martini: () => Martini,
	Maximize: () => Maximize,
	Maximize2: () => Maximize2,
	Medal: () => Medal,
	Megaphone: () => Megaphone,
	MegaphoneOff: () => MegaphoneOff,
	Meh: () => Meh,
	MemoryStick: () => MemoryStick,
	Menu: () => Menu,
	MenuSquare: () => SquareMenu,
	Merge: () => Merge,
	MessageCircle: () => MessageCircle,
	MessageCircleCode: () => MessageCircleCode,
	MessageCircleDashed: () => MessageCircleDashed,
	MessageCircleHeart: () => MessageCircleHeart,
	MessageCircleMore: () => MessageCircleMore,
	MessageCircleOff: () => MessageCircleOff,
	MessageCirclePlus: () => MessageCirclePlus,
	MessageCircleQuestion: () => MessageCircleQuestionMark,
	MessageCircleQuestionMark: () => MessageCircleQuestionMark,
	MessageCircleReply: () => MessageCircleReply,
	MessageCircleWarning: () => MessageCircleWarning,
	MessageCircleX: () => MessageCircleX,
	MessageSquare: () => MessageSquare,
	MessageSquareCode: () => MessageSquareCode,
	MessageSquareDashed: () => MessageSquareDashed,
	MessageSquareDiff: () => MessageSquareDiff,
	MessageSquareDot: () => MessageSquareDot,
	MessageSquareHeart: () => MessageSquareHeart,
	MessageSquareLock: () => MessageSquareLock,
	MessageSquareMore: () => MessageSquareMore,
	MessageSquareOff: () => MessageSquareOff,
	MessageSquarePlus: () => MessageSquarePlus,
	MessageSquareQuote: () => MessageSquareQuote,
	MessageSquareReply: () => MessageSquareReply,
	MessageSquareShare: () => MessageSquareShare,
	MessageSquareText: () => MessageSquareText,
	MessageSquareWarning: () => MessageSquareWarning,
	MessageSquareX: () => MessageSquareX,
	MessagesSquare: () => MessagesSquare,
	Mic: () => Mic,
	Mic2: () => MicVocal,
	MicOff: () => MicOff,
	MicVocal: () => MicVocal,
	Microchip: () => Microchip,
	Microscope: () => Microscope,
	Microwave: () => Microwave,
	Milestone: () => Milestone,
	Milk: () => Milk,
	MilkOff: () => MilkOff,
	Minimize: () => Minimize,
	Minimize2: () => Minimize2,
	Minus: () => Minus,
	MinusCircle: () => CircleMinus,
	MinusSquare: () => SquareMinus,
	Monitor: () => Monitor,
	MonitorCheck: () => MonitorCheck,
	MonitorCloud: () => MonitorCloud,
	MonitorCog: () => MonitorCog,
	MonitorDot: () => MonitorDot,
	MonitorDown: () => MonitorDown,
	MonitorOff: () => MonitorOff,
	MonitorPause: () => MonitorPause,
	MonitorPlay: () => MonitorPlay,
	MonitorSmartphone: () => MonitorSmartphone,
	MonitorSpeaker: () => MonitorSpeaker,
	MonitorStop: () => MonitorStop,
	MonitorUp: () => MonitorUp,
	MonitorX: () => MonitorX,
	Moon: () => Moon,
	MoonStar: () => MoonStar,
	MoreHorizontal: () => Ellipsis,
	MoreVertical: () => EllipsisVertical,
	Motorbike: () => Motorbike,
	Mountain: () => Mountain,
	MountainSnow: () => MountainSnow,
	Mouse: () => Mouse,
	MouseOff: () => MouseOff,
	MousePointer: () => MousePointer,
	MousePointer2: () => MousePointer2,
	MousePointer2Off: () => MousePointer2Off,
	MousePointerBan: () => MousePointerBan,
	MousePointerClick: () => MousePointerClick,
	MousePointerSquareDashed: () => SquareDashedMousePointer,
	Move: () => Move,
	Move3D: () => Move3d,
	Move3d: () => Move3d,
	MoveDiagonal: () => MoveDiagonal,
	MoveDiagonal2: () => MoveDiagonal2,
	MoveDown: () => MoveDown,
	MoveDownLeft: () => MoveDownLeft,
	MoveDownRight: () => MoveDownRight,
	MoveHorizontal: () => MoveHorizontal,
	MoveLeft: () => MoveLeft,
	MoveRight: () => MoveRight,
	MoveUp: () => MoveUp,
	MoveUpLeft: () => MoveUpLeft,
	MoveUpRight: () => MoveUpRight,
	MoveVertical: () => MoveVertical,
	Music: () => Music,
	Music2: () => Music2,
	Music3: () => Music3,
	Music4: () => Music4,
	Navigation: () => Navigation,
	Navigation2: () => Navigation2,
	Navigation2Off: () => Navigation2Off,
	NavigationOff: () => NavigationOff,
	Network: () => Network,
	Newspaper: () => Newspaper,
	Nfc: () => Nfc,
	NonBinary: () => NonBinary,
	Notebook: () => Notebook,
	NotebookPen: () => NotebookPen,
	NotebookTabs: () => NotebookTabs,
	NotebookText: () => NotebookText,
	NotepadText: () => NotepadText,
	NotepadTextDashed: () => NotepadTextDashed,
	Nut: () => Nut,
	NutOff: () => NutOff,
	Octagon: () => Octagon,
	OctagonAlert: () => OctagonAlert,
	OctagonMinus: () => OctagonMinus,
	OctagonPause: () => OctagonPause,
	OctagonX: () => OctagonX,
	Omega: () => Omega,
	Option: () => Option,
	Orbit: () => Orbit,
	Origami: () => Origami,
	Outdent: () => ListIndentDecrease,
	Package: () => Package,
	Package2: () => Package2,
	PackageCheck: () => PackageCheck,
	PackageMinus: () => PackageMinus,
	PackageOpen: () => PackageOpen,
	PackagePlus: () => PackagePlus,
	PackageSearch: () => PackageSearch,
	PackageX: () => PackageX,
	PaintBucket: () => PaintBucket,
	PaintRoller: () => PaintRoller,
	Paintbrush: () => Paintbrush,
	Paintbrush2: () => PaintbrushVertical,
	PaintbrushVertical: () => PaintbrushVertical,
	Palette: () => Palette,
	Palmtree: () => TreePalm,
	Panda: () => Panda,
	PanelBottom: () => PanelBottom,
	PanelBottomClose: () => PanelBottomClose,
	PanelBottomDashed: () => PanelBottomDashed,
	PanelBottomInactive: () => PanelBottomDashed,
	PanelBottomOpen: () => PanelBottomOpen,
	PanelLeft: () => PanelLeft,
	PanelLeftClose: () => PanelLeftClose,
	PanelLeftDashed: () => PanelLeftDashed,
	PanelLeftInactive: () => PanelLeftDashed,
	PanelLeftOpen: () => PanelLeftOpen,
	PanelLeftRightDashed: () => PanelLeftRightDashed,
	PanelRight: () => PanelRight,
	PanelRightClose: () => PanelRightClose,
	PanelRightDashed: () => PanelRightDashed,
	PanelRightInactive: () => PanelRightDashed,
	PanelRightOpen: () => PanelRightOpen,
	PanelTop: () => PanelTop,
	PanelTopBottomDashed: () => PanelTopBottomDashed,
	PanelTopClose: () => PanelTopClose,
	PanelTopDashed: () => PanelTopDashed,
	PanelTopInactive: () => PanelTopDashed,
	PanelTopOpen: () => PanelTopOpen,
	PanelsLeftBottom: () => PanelsLeftBottom,
	PanelsLeftRight: () => Columns3,
	PanelsRightBottom: () => PanelsRightBottom,
	PanelsTopBottom: () => Rows3,
	PanelsTopLeft: () => PanelsTopLeft,
	Paperclip: () => Paperclip,
	Parentheses: () => Parentheses,
	ParkingCircle: () => CircleParking,
	ParkingCircleOff: () => CircleParkingOff,
	ParkingMeter: () => ParkingMeter,
	ParkingSquare: () => SquareParking,
	ParkingSquareOff: () => SquareParkingOff,
	PartyPopper: () => PartyPopper,
	Pause: () => Pause,
	PauseCircle: () => CirclePause,
	PauseOctagon: () => OctagonPause,
	PawPrint: () => PawPrint,
	PcCase: () => PcCase,
	Pen: () => Pen,
	PenBox: () => SquarePen,
	PenLine: () => PenLine,
	PenOff: () => PenOff,
	PenSquare: () => SquarePen,
	PenTool: () => PenTool,
	Pencil: () => Pencil,
	PencilLine: () => PencilLine,
	PencilOff: () => PencilOff,
	PencilRuler: () => PencilRuler,
	Pentagon: () => Pentagon,
	Percent: () => Percent,
	PercentCircle: () => CirclePercent,
	PercentDiamond: () => DiamondPercent,
	PercentSquare: () => SquarePercent,
	PersonStanding: () => PersonStanding,
	PhilippinePeso: () => PhilippinePeso,
	Phone: () => Phone,
	PhoneCall: () => PhoneCall,
	PhoneForwarded: () => PhoneForwarded,
	PhoneIncoming: () => PhoneIncoming,
	PhoneMissed: () => PhoneMissed,
	PhoneOff: () => PhoneOff,
	PhoneOutgoing: () => PhoneOutgoing,
	Pi: () => Pi,
	PiSquare: () => SquarePi,
	Piano: () => Piano,
	Pickaxe: () => Pickaxe,
	PictureInPicture: () => PictureInPicture,
	PictureInPicture2: () => PictureInPicture2,
	PieChart: () => ChartPie,
	PiggyBank: () => PiggyBank,
	Pilcrow: () => Pilcrow,
	PilcrowLeft: () => PilcrowLeft,
	PilcrowRight: () => PilcrowRight,
	PilcrowSquare: () => SquarePilcrow,
	Pill: () => Pill,
	PillBottle: () => PillBottle,
	Pin: () => Pin,
	PinOff: () => PinOff,
	Pipette: () => Pipette,
	Pizza: () => Pizza,
	Plane: () => Plane,
	PlaneLanding: () => PlaneLanding,
	PlaneTakeoff: () => PlaneTakeoff,
	Play: () => Play,
	PlayCircle: () => CirclePlay,
	PlaySquare: () => SquarePlay,
	Plug: () => Plug,
	Plug2: () => Plug2,
	PlugZap: () => PlugZap,
	PlugZap2: () => PlugZap,
	Plus: () => Plus,
	PlusCircle: () => CirclePlus,
	PlusSquare: () => SquarePlus,
	Pocket: () => Pocket,
	PocketKnife: () => PocketKnife,
	Podcast: () => Podcast,
	Pointer: () => Pointer,
	PointerOff: () => PointerOff,
	Popcorn: () => Popcorn,
	Popsicle: () => Popsicle,
	PoundSterling: () => PoundSterling,
	Power: () => Power,
	PowerCircle: () => CirclePower,
	PowerOff: () => PowerOff,
	PowerSquare: () => SquarePower,
	Presentation: () => Presentation,
	Printer: () => Printer,
	PrinterCheck: () => PrinterCheck,
	Projector: () => Projector,
	Proportions: () => Proportions,
	Puzzle: () => Puzzle,
	Pyramid: () => Pyramid,
	QrCode: () => QrCode,
	Quote: () => Quote,
	Rabbit: () => Rabbit,
	Radar: () => Radar,
	Radiation: () => Radiation,
	Radical: () => Radical,
	Radio: () => Radio,
	RadioReceiver: () => RadioReceiver,
	RadioTower: () => RadioTower,
	Radius: () => Radius,
	RailSymbol: () => RailSymbol,
	Rainbow: () => Rainbow,
	Rat: () => Rat,
	Ratio: () => Ratio,
	Receipt: () => Receipt,
	ReceiptCent: () => ReceiptCent,
	ReceiptEuro: () => ReceiptEuro,
	ReceiptIndianRupee: () => ReceiptIndianRupee,
	ReceiptJapaneseYen: () => ReceiptJapaneseYen,
	ReceiptPoundSterling: () => ReceiptPoundSterling,
	ReceiptRussianRuble: () => ReceiptRussianRuble,
	ReceiptSwissFranc: () => ReceiptSwissFranc,
	ReceiptText: () => ReceiptText,
	ReceiptTurkishLira: () => ReceiptTurkishLira,
	RectangleCircle: () => RectangleCircle,
	RectangleEllipsis: () => RectangleEllipsis,
	RectangleGoggles: () => RectangleGoggles,
	RectangleHorizontal: () => RectangleHorizontal,
	RectangleVertical: () => RectangleVertical,
	Recycle: () => Recycle,
	Redo: () => Redo,
	Redo2: () => Redo2,
	RedoDot: () => RedoDot,
	RefreshCcw: () => RefreshCcw,
	RefreshCcwDot: () => RefreshCcwDot,
	RefreshCw: () => RefreshCw,
	RefreshCwOff: () => RefreshCwOff,
	Refrigerator: () => Refrigerator,
	Regex: () => Regex,
	RemoveFormatting: () => RemoveFormatting,
	Repeat: () => Repeat,
	Repeat1: () => Repeat1,
	Repeat2: () => Repeat2,
	Replace: () => Replace,
	ReplaceAll: () => ReplaceAll,
	Reply: () => Reply,
	ReplyAll: () => ReplyAll,
	Rewind: () => Rewind,
	Ribbon: () => Ribbon,
	Rocket: () => Rocket,
	RockingChair: () => RockingChair,
	RollerCoaster: () => RollerCoaster,
	Rose: () => Rose,
	Rotate3D: () => Rotate3d,
	Rotate3d: () => Rotate3d,
	RotateCcw: () => RotateCcw,
	RotateCcwKey: () => RotateCcwKey,
	RotateCcwSquare: () => RotateCcwSquare,
	RotateCw: () => RotateCw,
	RotateCwSquare: () => RotateCwSquare,
	Route: () => Route,
	RouteOff: () => RouteOff,
	Router: () => Router,
	Rows: () => Rows2,
	Rows2: () => Rows2,
	Rows3: () => Rows3,
	Rows4: () => Rows4,
	Rss: () => Rss,
	Ruler: () => Ruler,
	RulerDimensionLine: () => RulerDimensionLine,
	RussianRuble: () => RussianRuble,
	Sailboat: () => Sailboat,
	Salad: () => Salad,
	Sandwich: () => Sandwich,
	Satellite: () => Satellite,
	SatelliteDish: () => SatelliteDish,
	SaudiRiyal: () => SaudiRiyal,
	Save: () => Save,
	SaveAll: () => SaveAll,
	SaveOff: () => SaveOff,
	Scale: () => Scale,
	Scale3D: () => Scale3d,
	Scale3d: () => Scale3d,
	Scaling: () => Scaling,
	Scan: () => Scan,
	ScanBarcode: () => ScanBarcode,
	ScanEye: () => ScanEye,
	ScanFace: () => ScanFace,
	ScanHeart: () => ScanHeart,
	ScanLine: () => ScanLine,
	ScanQrCode: () => ScanQrCode,
	ScanSearch: () => ScanSearch,
	ScanText: () => ScanText,
	ScatterChart: () => ChartScatter,
	School: () => School,
	School2: () => University,
	Scissors: () => Scissors,
	ScissorsLineDashed: () => ScissorsLineDashed,
	ScissorsSquare: () => SquareScissors,
	ScissorsSquareDashedBottom: () => SquareBottomDashedScissors,
	Scooter: () => Scooter,
	ScreenShare: () => ScreenShare,
	ScreenShareOff: () => ScreenShareOff,
	Scroll: () => Scroll,
	ScrollText: () => ScrollText,
	Search: () => Search,
	SearchCheck: () => SearchCheck,
	SearchCode: () => SearchCode,
	SearchSlash: () => SearchSlash,
	SearchX: () => SearchX,
	Section: () => Section,
	Send: () => Send,
	SendHorizonal: () => SendHorizontal,
	SendHorizontal: () => SendHorizontal,
	SendToBack: () => SendToBack,
	SeparatorHorizontal: () => SeparatorHorizontal,
	SeparatorVertical: () => SeparatorVertical,
	Server: () => Server,
	ServerCog: () => ServerCog,
	ServerCrash: () => ServerCrash,
	ServerOff: () => ServerOff,
	Settings: () => Settings$1,
	Settings2: () => Settings2,
	Shapes: () => Shapes,
	Share: () => Share,
	Share2: () => Share2,
	Sheet: () => Sheet,
	Shell: () => Shell,
	Shield: () => Shield,
	ShieldAlert: () => ShieldAlert,
	ShieldBan: () => ShieldBan,
	ShieldCheck: () => ShieldCheck,
	ShieldClose: () => ShieldX,
	ShieldEllipsis: () => ShieldEllipsis,
	ShieldHalf: () => ShieldHalf,
	ShieldMinus: () => ShieldMinus,
	ShieldOff: () => ShieldOff,
	ShieldPlus: () => ShieldPlus,
	ShieldQuestion: () => ShieldQuestionMark,
	ShieldQuestionMark: () => ShieldQuestionMark,
	ShieldUser: () => ShieldUser,
	ShieldX: () => ShieldX,
	Ship: () => Ship,
	ShipWheel: () => ShipWheel,
	Shirt: () => Shirt,
	ShoppingBag: () => ShoppingBag,
	ShoppingBasket: () => ShoppingBasket,
	ShoppingCart: () => ShoppingCart,
	Shovel: () => Shovel,
	ShowerHead: () => ShowerHead,
	Shredder: () => Shredder,
	Shrimp: () => Shrimp,
	Shrink: () => Shrink,
	Shrub: () => Shrub,
	Shuffle: () => Shuffle,
	Sidebar: () => PanelLeft,
	SidebarClose: () => PanelLeftClose,
	SidebarOpen: () => PanelLeftOpen,
	Sigma: () => Sigma,
	SigmaSquare: () => SquareSigma,
	Signal: () => Signal,
	SignalHigh: () => SignalHigh,
	SignalLow: () => SignalLow,
	SignalMedium: () => SignalMedium,
	SignalZero: () => SignalZero,
	Signature: () => Signature,
	Signpost: () => Signpost,
	SignpostBig: () => SignpostBig,
	Siren: () => Siren,
	SkipBack: () => SkipBack,
	SkipForward: () => SkipForward,
	Skull: () => Skull,
	Slack: () => Slack,
	Slash: () => Slash,
	SlashSquare: () => SquareSlash,
	Slice: () => Slice,
	Sliders: () => SlidersVertical,
	SlidersHorizontal: () => SlidersHorizontal,
	SlidersVertical: () => SlidersVertical,
	Smartphone: () => Smartphone,
	SmartphoneCharging: () => SmartphoneCharging,
	SmartphoneNfc: () => SmartphoneNfc,
	Smile: () => Smile,
	SmilePlus: () => SmilePlus,
	Snail: () => Snail,
	Snowflake: () => Snowflake,
	SoapDispenserDroplet: () => SoapDispenserDroplet,
	Sofa: () => Sofa,
	SolarPanel: () => SolarPanel,
	SortAsc: () => ArrowUpNarrowWide,
	SortDesc: () => ArrowDownWideNarrow,
	Soup: () => Soup,
	Space: () => Space,
	Spade: () => Spade,
	Sparkle: () => Sparkle,
	Sparkles: () => Sparkles,
	Speaker: () => Speaker,
	Speech: () => Speech,
	SpellCheck: () => SpellCheck,
	SpellCheck2: () => SpellCheck2,
	Spline: () => Spline,
	SplinePointer: () => SplinePointer,
	Split: () => Split,
	SplitSquareHorizontal: () => SquareSplitHorizontal,
	SplitSquareVertical: () => SquareSplitVertical,
	Spool: () => Spool,
	Spotlight: () => Spotlight,
	SprayCan: () => SprayCan,
	Sprout: () => Sprout,
	Square: () => Square,
	SquareActivity: () => SquareActivity,
	SquareArrowDown: () => SquareArrowDown,
	SquareArrowDownLeft: () => SquareArrowDownLeft,
	SquareArrowDownRight: () => SquareArrowDownRight,
	SquareArrowLeft: () => SquareArrowLeft,
	SquareArrowOutDownLeft: () => SquareArrowOutDownLeft,
	SquareArrowOutDownRight: () => SquareArrowOutDownRight,
	SquareArrowOutUpLeft: () => SquareArrowOutUpLeft,
	SquareArrowOutUpRight: () => SquareArrowOutUpRight,
	SquareArrowRight: () => SquareArrowRight,
	SquareArrowUp: () => SquareArrowUp,
	SquareArrowUpLeft: () => SquareArrowUpLeft,
	SquareArrowUpRight: () => SquareArrowUpRight,
	SquareAsterisk: () => SquareAsterisk,
	SquareBottomDashedScissors: () => SquareBottomDashedScissors,
	SquareChartGantt: () => SquareChartGantt,
	SquareCheck: () => SquareCheck,
	SquareCheckBig: () => SquareCheckBig,
	SquareChevronDown: () => SquareChevronDown,
	SquareChevronLeft: () => SquareChevronLeft,
	SquareChevronRight: () => SquareChevronRight,
	SquareChevronUp: () => SquareChevronUp,
	SquareCode: () => SquareCode,
	SquareDashed: () => SquareDashed,
	SquareDashedBottom: () => SquareDashedBottom,
	SquareDashedBottomCode: () => SquareDashedBottomCode,
	SquareDashedKanban: () => SquareDashedKanban,
	SquareDashedMousePointer: () => SquareDashedMousePointer,
	SquareDashedTopSolid: () => SquareDashedTopSolid,
	SquareDivide: () => SquareDivide,
	SquareDot: () => SquareDot,
	SquareEqual: () => SquareEqual,
	SquareFunction: () => SquareFunction,
	SquareGanttChart: () => SquareChartGantt,
	SquareKanban: () => SquareKanban,
	SquareLibrary: () => SquareLibrary,
	SquareM: () => SquareM,
	SquareMenu: () => SquareMenu,
	SquareMinus: () => SquareMinus,
	SquareMousePointer: () => SquareMousePointer,
	SquareParking: () => SquareParking,
	SquareParkingOff: () => SquareParkingOff,
	SquarePause: () => SquarePause,
	SquarePen: () => SquarePen,
	SquarePercent: () => SquarePercent,
	SquarePi: () => SquarePi,
	SquarePilcrow: () => SquarePilcrow,
	SquarePlay: () => SquarePlay,
	SquarePlus: () => SquarePlus,
	SquarePower: () => SquarePower,
	SquareRadical: () => SquareRadical,
	SquareRoundCorner: () => SquareRoundCorner,
	SquareScissors: () => SquareScissors,
	SquareSigma: () => SquareSigma,
	SquareSlash: () => SquareSlash,
	SquareSplitHorizontal: () => SquareSplitHorizontal,
	SquareSplitVertical: () => SquareSplitVertical,
	SquareSquare: () => SquareSquare,
	SquareStack: () => SquareStack,
	SquareStar: () => SquareStar,
	SquareStop: () => SquareStop,
	SquareTerminal: () => SquareTerminal,
	SquareUser: () => SquareUser,
	SquareUserRound: () => SquareUserRound,
	SquareX: () => SquareX,
	SquaresExclude: () => SquaresExclude,
	SquaresIntersect: () => SquaresIntersect,
	SquaresSubtract: () => SquaresSubtract,
	SquaresUnite: () => SquaresUnite,
	Squircle: () => Squircle,
	SquircleDashed: () => SquircleDashed,
	Squirrel: () => Squirrel,
	Stamp: () => Stamp,
	Star: () => Star,
	StarHalf: () => StarHalf,
	StarOff: () => StarOff,
	Stars: () => Sparkles,
	StepBack: () => StepBack,
	StepForward: () => StepForward,
	Stethoscope: () => Stethoscope,
	Sticker: () => Sticker,
	StickyNote: () => StickyNote,
	StopCircle: () => CircleStop,
	Store: () => Store$1,
	StretchHorizontal: () => StretchHorizontal,
	StretchVertical: () => StretchVertical,
	Strikethrough: () => Strikethrough,
	Subscript: () => Subscript,
	Subtitles: () => Captions,
	Sun: () => Sun,
	SunDim: () => SunDim,
	SunMedium: () => SunMedium,
	SunMoon: () => SunMoon,
	SunSnow: () => SunSnow,
	Sunrise: () => Sunrise,
	Sunset: () => Sunset,
	Superscript: () => Superscript,
	SwatchBook: () => SwatchBook,
	SwissFranc: () => SwissFranc,
	SwitchCamera: () => SwitchCamera,
	Sword: () => Sword,
	Swords: () => Swords,
	Syringe: () => Syringe,
	Table: () => Table,
	Table2: () => Table2,
	TableCellsMerge: () => TableCellsMerge,
	TableCellsSplit: () => TableCellsSplit,
	TableColumnsSplit: () => TableColumnsSplit,
	TableConfig: () => Columns3Cog,
	TableOfContents: () => TableOfContents,
	TableProperties: () => TableProperties,
	TableRowsSplit: () => TableRowsSplit,
	Tablet: () => Tablet,
	TabletSmartphone: () => TabletSmartphone,
	Tablets: () => Tablets,
	Tag: () => Tag,
	Tags: () => Tags,
	Tally1: () => Tally1,
	Tally2: () => Tally2,
	Tally3: () => Tally3,
	Tally4: () => Tally4,
	Tally5: () => Tally5,
	Tangent: () => Tangent,
	Target: () => Target,
	Telescope: () => Telescope,
	Tent: () => Tent,
	TentTree: () => TentTree,
	Terminal: () => Terminal,
	TerminalSquare: () => SquareTerminal,
	TestTube: () => TestTube,
	TestTube2: () => TestTubeDiagonal,
	TestTubeDiagonal: () => TestTubeDiagonal,
	TestTubes: () => TestTubes,
	Text: () => TextAlignStart,
	TextAlignCenter: () => TextAlignCenter,
	TextAlignEnd: () => TextAlignEnd,
	TextAlignJustify: () => TextAlignJustify,
	TextAlignStart: () => TextAlignStart,
	TextCursor: () => TextCursor,
	TextCursorInput: () => TextCursorInput,
	TextInitial: () => TextInitial,
	TextQuote: () => TextQuote,
	TextSearch: () => TextSearch,
	TextSelect: () => TextSelect,
	TextSelection: () => TextSelect,
	TextWrap: () => TextWrap,
	Theater: () => Theater,
	Thermometer: () => Thermometer,
	ThermometerSnowflake: () => ThermometerSnowflake,
	ThermometerSun: () => ThermometerSun,
	ThumbsDown: () => ThumbsDown,
	ThumbsUp: () => ThumbsUp,
	Ticket: () => Ticket,
	TicketCheck: () => TicketCheck,
	TicketMinus: () => TicketMinus,
	TicketPercent: () => TicketPercent,
	TicketPlus: () => TicketPlus,
	TicketSlash: () => TicketSlash,
	TicketX: () => TicketX,
	Tickets: () => Tickets,
	TicketsPlane: () => TicketsPlane,
	Timer: () => Timer,
	TimerOff: () => TimerOff,
	TimerReset: () => TimerReset,
	ToggleLeft: () => ToggleLeft,
	ToggleRight: () => ToggleRight,
	Toilet: () => Toilet,
	ToolCase: () => ToolCase,
	Tornado: () => Tornado,
	Torus: () => Torus,
	Touchpad: () => Touchpad,
	TouchpadOff: () => TouchpadOff,
	TowerControl: () => TowerControl,
	ToyBrick: () => ToyBrick,
	Tractor: () => Tractor,
	TrafficCone: () => TrafficCone,
	Train: () => TramFront,
	TrainFront: () => TrainFront,
	TrainFrontTunnel: () => TrainFrontTunnel,
	TrainTrack: () => TrainTrack,
	TramFront: () => TramFront,
	Transgender: () => Transgender,
	Trash: () => Trash,
	Trash2: () => Trash2,
	TreeDeciduous: () => TreeDeciduous,
	TreePalm: () => TreePalm,
	TreePine: () => TreePine,
	Trees: () => Trees,
	Trello: () => Trello,
	TrendingDown: () => TrendingDown,
	TrendingUp: () => TrendingUp,
	TrendingUpDown: () => TrendingUpDown,
	Triangle: () => Triangle,
	TriangleAlert: () => TriangleAlert,
	TriangleDashed: () => TriangleDashed,
	TriangleRight: () => TriangleRight,
	Trophy: () => Trophy,
	Truck: () => Truck,
	TruckElectric: () => TruckElectric,
	TurkishLira: () => TurkishLira,
	Turntable: () => Turntable,
	Turtle: () => Turtle,
	Tv: () => Tv,
	Tv2: () => TvMinimal,
	TvMinimal: () => TvMinimal,
	TvMinimalPlay: () => TvMinimalPlay,
	Twitch: () => Twitch,
	Twitter: () => Twitter,
	Type: () => Type$1,
	TypeOutline: () => TypeOutline,
	Umbrella: () => Umbrella,
	UmbrellaOff: () => UmbrellaOff,
	Underline: () => Underline,
	Undo: () => Undo,
	Undo2: () => Undo2,
	UndoDot: () => UndoDot,
	UnfoldHorizontal: () => UnfoldHorizontal,
	UnfoldVertical: () => UnfoldVertical,
	Ungroup: () => Ungroup,
	University: () => University,
	Unlink: () => Unlink,
	Unlink2: () => Unlink2,
	Unlock: () => LockOpen,
	UnlockKeyhole: () => LockKeyholeOpen,
	Unplug: () => Unplug,
	Upload: () => Upload,
	UploadCloud: () => CloudUpload,
	Usb: () => Usb,
	User: () => User,
	User2: () => UserRound,
	UserCheck: () => UserCheck,
	UserCheck2: () => UserRoundCheck,
	UserCircle: () => CircleUser,
	UserCircle2: () => CircleUserRound,
	UserCog: () => UserCog,
	UserCog2: () => UserRoundCog,
	UserLock: () => UserLock,
	UserMinus: () => UserMinus,
	UserMinus2: () => UserRoundMinus,
	UserPen: () => UserPen,
	UserPlus: () => UserPlus,
	UserPlus2: () => UserRoundPlus,
	UserRound: () => UserRound,
	UserRoundCheck: () => UserRoundCheck,
	UserRoundCog: () => UserRoundCog,
	UserRoundMinus: () => UserRoundMinus,
	UserRoundPen: () => UserRoundPen,
	UserRoundPlus: () => UserRoundPlus,
	UserRoundSearch: () => UserRoundSearch,
	UserRoundX: () => UserRoundX,
	UserSearch: () => UserSearch,
	UserSquare: () => SquareUser,
	UserSquare2: () => SquareUserRound,
	UserStar: () => UserStar,
	UserX: () => UserX,
	UserX2: () => UserRoundX,
	Users: () => Users,
	Users2: () => UsersRound,
	UsersRound: () => UsersRound,
	Utensils: () => Utensils,
	UtensilsCrossed: () => UtensilsCrossed,
	UtilityPole: () => UtilityPole,
	Van: () => Van,
	Variable: () => Variable,
	Vault: () => Vault,
	VectorSquare: () => VectorSquare,
	Vegan: () => Vegan,
	VenetianMask: () => VenetianMask,
	Venus: () => Venus,
	VenusAndMars: () => VenusAndMars,
	Verified: () => BadgeCheck,
	Vibrate: () => Vibrate,
	VibrateOff: () => VibrateOff,
	Video: () => Video,
	VideoOff: () => VideoOff,
	Videotape: () => Videotape,
	View: () => View,
	Voicemail: () => Voicemail,
	Volleyball: () => Volleyball,
	Volume: () => Volume,
	Volume1: () => Volume1,
	Volume2: () => Volume2,
	VolumeOff: () => VolumeOff,
	VolumeX: () => VolumeX,
	Vote: () => Vote,
	Wallet: () => Wallet,
	Wallet2: () => WalletMinimal,
	WalletCards: () => WalletCards,
	WalletMinimal: () => WalletMinimal,
	Wallpaper: () => Wallpaper,
	Wand: () => Wand,
	Wand2: () => WandSparkles,
	WandSparkles: () => WandSparkles,
	Warehouse: () => Warehouse,
	WashingMachine: () => WashingMachine,
	Watch: () => Watch,
	Waves: () => Waves,
	WavesArrowDown: () => WavesArrowDown,
	WavesArrowUp: () => WavesArrowUp,
	WavesLadder: () => WavesLadder,
	Waypoints: () => Waypoints,
	Webcam: () => Webcam,
	Webhook: () => Webhook,
	WebhookOff: () => WebhookOff,
	Weight: () => Weight,
	WeightTilde: () => WeightTilde,
	Wheat: () => Wheat,
	WheatOff: () => WheatOff,
	WholeWord: () => WholeWord,
	Wifi: () => Wifi,
	WifiCog: () => WifiCog,
	WifiHigh: () => WifiHigh,
	WifiLow: () => WifiLow,
	WifiOff: () => WifiOff,
	WifiPen: () => WifiPen,
	WifiSync: () => WifiSync,
	WifiZero: () => WifiZero,
	Wind: () => Wind,
	WindArrowDown: () => WindArrowDown,
	Wine: () => Wine,
	WineOff: () => WineOff,
	Workflow: () => Workflow,
	Worm: () => Worm,
	WrapText: () => TextWrap,
	Wrench: () => Wrench,
	X: () => X,
	XCircle: () => CircleX,
	XOctagon: () => OctagonX,
	XSquare: () => SquareX,
	Youtube: () => Youtube,
	Zap: () => Zap,
	ZapOff: () => ZapOff,
	ZoomIn: () => ZoomIn,
	ZoomOut: () => ZoomOut
});
var init_iconsAndAliases = __esmMin((() => {
	init_a_arrow_down();
	init_a_arrow_up();
	init_a_large_small();
	init_accessibility();
	init_activity();
	init_air_vent();
	init_airplay();
	init_alarm_clock_check();
	init_alarm_clock_minus();
	init_alarm_clock_off();
	init_alarm_clock_plus();
	init_alarm_clock();
	init_alarm_smoke();
	init_album();
	init_align_center_horizontal();
	init_align_center_vertical();
	init_align_end_horizontal();
	init_align_end_vertical();
	init_align_horizontal_distribute_center();
	init_align_horizontal_distribute_end();
	init_align_horizontal_justify_center();
	init_align_horizontal_distribute_start();
	init_align_horizontal_justify_end();
	init_align_horizontal_space_around();
	init_align_horizontal_justify_start();
	init_align_horizontal_space_between();
	init_align_start_horizontal();
	init_align_start_vertical();
	init_align_vertical_distribute_center();
	init_align_vertical_distribute_end();
	init_align_vertical_distribute_start();
	init_align_vertical_justify_center();
	init_align_vertical_justify_end();
	init_align_vertical_justify_start();
	init_align_vertical_space_around();
	init_align_vertical_space_between();
	init_ambulance();
	init_ampersand();
	init_ampersands();
	init_amphora();
	init_anchor();
	init_angry();
	init_annoyed();
	init_antenna();
	init_anvil();
	init_aperture();
	init_app_window_mac();
	init_app_window();
	init_apple();
	init_archive_restore();
	init_archive_x();
	init_archive();
	init_arrow_big_down_dash();
	init_armchair();
	init_arrow_big_down();
	init_arrow_big_left_dash();
	init_arrow_big_left();
	init_arrow_big_right_dash();
	init_arrow_big_right();
	init_arrow_big_up_dash();
	init_arrow_big_up();
	init_arrow_down_0_1();
	init_arrow_down_1_0();
	init_arrow_down_a_z();
	init_arrow_down_from_line();
	init_arrow_down_left();
	init_arrow_down_narrow_wide();
	init_arrow_down_right();
	init_arrow_down_to_dot();
	init_arrow_down_to_line();
	init_arrow_down_up();
	init_arrow_down_z_a();
	init_arrow_down_wide_narrow();
	init_arrow_down();
	init_arrow_left_from_line();
	init_arrow_left_right();
	init_arrow_left_to_line();
	init_arrow_left();
	init_arrow_right_from_line();
	init_arrow_right_left();
	init_arrow_right_to_line();
	init_arrow_right();
	init_arrow_up_0_1();
	init_arrow_up_1_0();
	init_arrow_up_a_z();
	init_arrow_up_down();
	init_arrow_up_from_dot();
	init_arrow_up_from_line();
	init_arrow_up_left();
	init_arrow_up_narrow_wide();
	init_arrow_up_right();
	init_arrow_up_to_line();
	init_arrow_up_wide_narrow();
	init_arrow_up_z_a();
	init_arrow_up();
	init_arrows_up_from_line();
	init_asterisk();
	init_at_sign();
	init_atom();
	init_audio_lines();
	init_audio_waveform();
	init_award();
	init_axe();
	init_axis_3d();
	init_baby();
	init_backpack();
	init_badge_cent();
	init_badge_alert();
	init_badge_check();
	init_badge_dollar_sign();
	init_badge_euro();
	init_badge_info();
	init_badge_indian_rupee();
	init_badge_japanese_yen();
	init_badge_minus();
	init_badge_percent();
	init_badge_plus();
	init_badge_pound_sterling();
	init_badge_question_mark();
	init_badge_russian_ruble();
	init_badge_swiss_franc();
	init_badge_turkish_lira();
	init_badge_x();
	init_badge();
	init_baggage_claim();
	init_ban();
	init_banana();
	init_bandage();
	init_banknote_arrow_down();
	init_banknote_arrow_up();
	init_banknote_x();
	init_banknote();
	init_barcode();
	init_barrel();
	init_baseline();
	init_bath();
	init_battery_charging();
	init_battery_full();
	init_battery_low();
	init_battery_medium();
	init_battery_plus();
	init_battery_warning();
	init_battery();
	init_beaker();
	init_bean_off();
	init_bean();
	init_bed_double();
	init_bed_single();
	init_bed();
	init_beef();
	init_beer_off();
	init_beer();
	init_bell_dot();
	init_bell_electric();
	init_bell_minus();
	init_bell_off();
	init_bell_plus();
	init_bell_ring();
	init_bell();
	init_between_horizontal_end();
	init_between_horizontal_start();
	init_between_vertical_end();
	init_between_vertical_start();
	init_biceps_flexed();
	init_bike();
	init_binoculars();
	init_binary();
	init_biohazard();
	init_bird();
	init_bitcoin();
	init_blend();
	init_birdhouse();
	init_blinds();
	init_blocks();
	init_bluetooth_connected();
	init_bluetooth_off();
	init_bluetooth_searching();
	init_bluetooth();
	init_bold();
	init_bolt();
	init_bomb();
	init_bone();
	init_book_a();
	init_book_alert();
	init_book_audio();
	init_book_check();
	init_book_copy();
	init_book_dashed();
	init_book_down();
	init_book_headphones();
	init_book_heart();
	init_book_image();
	init_book_key();
	init_book_lock();
	init_book_marked();
	init_book_minus();
	init_book_open_check();
	init_book_open_text();
	init_book_open();
	init_book_plus();
	init_book_search();
	init_book_text();
	init_book_type();
	init_book_up_2();
	init_book_up();
	init_book_user();
	init_book_x();
	init_book();
	init_bookmark_check();
	init_bookmark_minus();
	init_bookmark_plus();
	init_bookmark_x();
	init_bookmark();
	init_boom_box();
	init_bot_message_square();
	init_bot_off();
	init_bot();
	init_bottle_wine();
	init_bow_arrow();
	init_box();
	init_boxes();
	init_braces();
	init_brackets();
	init_brain_circuit();
	init_brain_cog();
	init_brain();
	init_brick_wall_fire();
	init_brick_wall_shield();
	init_brick_wall();
	init_briefcase_business();
	init_briefcase_conveyor_belt();
	init_briefcase_medical();
	init_briefcase();
	init_bring_to_front();
	init_brush_cleaning();
	init_brush();
	init_bubbles();
	init_bug_off();
	init_bug_play();
	init_bug();
	init_building_2();
	init_building();
	init_bus_front();
	init_bus();
	init_cable_car();
	init_cable();
	init_cake_slice();
	init_cake();
	init_calculator();
	init_calendar_1();
	init_calendar_arrow_down();
	init_calendar_arrow_up();
	init_calendar_check_2();
	init_calendar_check();
	init_calendar_clock();
	init_calendar_cog();
	init_calendar_days();
	init_calendar_fold();
	init_calendar_heart();
	init_calendar_minus();
	init_calendar_minus_2();
	init_calendar_off();
	init_calendar_plus_2();
	init_calendar_plus();
	init_calendar_range();
	init_calendar_search();
	init_calendar_sync();
	init_calendar_x_2();
	init_calendar_x();
	init_calendar();
	init_calendars();
	init_camera_off();
	init_camera();
	init_candy_cane();
	init_candy_off();
	init_cannabis();
	init_captions_off();
	init_candy();
	init_captions();
	init_car_front();
	init_car_taxi_front();
	init_car();
	init_caravan();
	init_card_sim();
	init_carrot();
	init_case_lower();
	init_case_sensitive();
	init_case_upper();
	init_cassette_tape();
	init_cast();
	init_castle();
	init_cat();
	init_cctv();
	init_chart_area();
	init_chart_bar_big();
	init_chart_bar_decreasing();
	init_chart_bar_increasing();
	init_chart_bar_stacked();
	init_chart_bar();
	init_chart_candlestick();
	init_chart_column_big();
	init_chart_column_increasing();
	init_chart_column_decreasing();
	init_chart_column_stacked();
	init_chart_column();
	init_chart_gantt();
	init_chart_line();
	init_chart_network();
	init_chart_no_axes_column_decreasing();
	init_chart_no_axes_column_increasing();
	init_chart_no_axes_column();
	init_chart_no_axes_combined();
	init_chart_no_axes_gantt();
	init_chart_pie();
	init_chart_scatter();
	init_chart_spline();
	init_check_check();
	init_check_line();
	init_check();
	init_chef_hat();
	init_cherry();
	init_chess_bishop();
	init_chess_king();
	init_chess_knight();
	init_chess_pawn();
	init_chess_queen();
	init_chess_rook();
	init_chevron_down();
	init_chevron_first();
	init_chevron_last();
	init_chevron_left();
	init_chevron_right();
	init_chevron_up();
	init_chevrons_down_up();
	init_chevrons_down();
	init_chevrons_left_right_ellipsis();
	init_chevrons_left_right();
	init_chevrons_left();
	init_chevrons_right_left();
	init_chevrons_right();
	init_chevrons_up_down();
	init_chevrons_up();
	init_chromium();
	init_church();
	init_cigarette_off();
	init_cigarette();
	init_circle_alert();
	init_circle_arrow_down();
	init_circle_arrow_left();
	init_circle_arrow_out_down_left();
	init_circle_arrow_out_down_right();
	init_circle_arrow_out_up_left();
	init_circle_arrow_out_up_right();
	init_circle_arrow_right();
	init_circle_arrow_up();
	init_circle_check_big();
	init_circle_check();
	init_circle_chevron_down();
	init_circle_chevron_left();
	init_circle_chevron_right();
	init_circle_chevron_up();
	init_circle_dashed();
	init_circle_divide();
	init_circle_dollar_sign();
	init_circle_dot_dashed();
	init_circle_dot();
	init_circle_ellipsis();
	init_circle_equal();
	init_circle_fading_arrow_up();
	init_circle_fading_plus();
	init_circle_gauge();
	init_circle_minus();
	init_circle_off();
	init_circle_parking_off();
	init_circle_parking();
	init_circle_pause();
	init_circle_percent();
	init_circle_play();
	init_circle_plus();
	init_circle_pound_sterling();
	init_circle_power();
	init_circle_question_mark();
	init_circle_slash_2();
	init_circle_slash();
	init_circle_small();
	init_circle_star();
	init_circle_stop();
	init_circle_user_round();
	init_circle_user();
	init_circle_x();
	init_circle();
	init_circuit_board();
	init_citrus();
	init_clapperboard();
	init_clipboard_check();
	init_clipboard_clock();
	init_clipboard_copy();
	init_clipboard_list();
	init_clipboard_paste();
	init_clipboard_minus();
	init_clipboard_pen_line();
	init_clipboard_pen();
	init_clipboard_plus();
	init_clipboard_type();
	init_clipboard();
	init_clipboard_x();
	init_clock_1();
	init_clock_10();
	init_clock_12();
	init_clock_2();
	init_clock_3();
	init_clock_11();
	init_clock_4();
	init_clock_5();
	init_clock_6();
	init_clock_7();
	init_clock_8();
	init_clock_9();
	init_clock_alert();
	init_clock_arrow_down();
	init_clock_arrow_up();
	init_clock_check();
	init_clock_fading();
	init_clock_plus();
	init_clock();
	init_closed_caption();
	init_cloud_alert();
	init_cloud_check();
	init_cloud_download();
	init_cloud_cog();
	init_cloud_drizzle();
	init_cloud_fog();
	init_cloud_hail();
	init_cloud_lightning();
	init_cloud_moon_rain();
	init_cloud_moon();
	init_cloud_off();
	init_cloud_rain_wind();
	init_cloud_rain();
	init_cloud_snow();
	init_cloud_sun_rain();
	init_cloud_sun();
	init_cloud_upload();
	init_cloud();
	init_cloudy();
	init_clover();
	init_club();
	init_code_xml();
	init_code();
	init_codepen();
	init_codesandbox();
	init_coffee();
	init_cog();
	init_coins();
	init_columns_3_cog();
	init_columns_2();
	init_columns_3();
	init_columns_4();
	init_combine();
	init_command();
	init_compass();
	init_component();
	init_computer();
	init_concierge_bell();
	init_cone();
	init_construction();
	init_contact_round();
	init_contact();
	init_container();
	init_contrast();
	init_cookie();
	init_cooking_pot();
	init_copy_check();
	init_copy_minus();
	init_copy_plus();
	init_copy_slash();
	init_copy_x();
	init_copy();
	init_copyright();
	init_copyleft();
	init_corner_down_left();
	init_corner_down_right();
	init_corner_left_down();
	init_corner_left_up();
	init_corner_right_down();
	init_corner_right_up();
	init_corner_up_left();
	init_cpu();
	init_creative_commons();
	init_credit_card();
	init_corner_up_right();
	init_croissant();
	init_crop();
	init_cross();
	init_crosshair();
	init_crown();
	init_cuboid();
	init_cup_soda();
	init_currency();
	init_cylinder();
	init_dam();
	init_database_backup();
	init_database_zap();
	init_database();
	init_decimals_arrow_left();
	init_decimals_arrow_right();
	init_delete();
	init_dessert();
	init_diameter();
	init_diamond_minus();
	init_diamond_percent();
	init_diamond_plus();
	init_diamond();
	init_dice_1();
	init_dice_2();
	init_dice_3();
	init_dice_4();
	init_dice_5();
	init_dice_6();
	init_dices();
	init_diff();
	init_disc_2();
	init_disc_3();
	init_disc_album();
	init_disc();
	init_divide();
	init_dna_off();
	init_dna();
	init_dock();
	init_dog();
	init_dollar_sign();
	init_donut();
	init_door_closed_locked();
	init_door_closed();
	init_door_open();
	init_dot();
	init_download();
	init_drafting_compass();
	init_drama();
	init_dribbble();
	init_drill();
	init_drone();
	init_droplet_off();
	init_droplet();
	init_droplets();
	init_drum();
	init_drumstick();
	init_dumbbell();
	init_ear_off();
	init_ear();
	init_earth_lock();
	init_earth();
	init_eclipse();
	init_egg_fried();
	init_egg_off();
	init_egg();
	init_ellipsis_vertical();
	init_ellipsis();
	init_equal_approximately();
	init_equal_not();
	init_equal();
	init_eraser();
	init_ethernet_port();
	init_euro();
	init_ev_charger();
	init_expand();
	init_external_link();
	init_eye_closed();
	init_eye_off();
	init_eye();
	init_facebook();
	init_factory();
	init_fan();
	init_fast_forward();
	init_feather();
	init_fence();
	init_ferris_wheel();
	init_figma();
	init_file_archive();
	init_file_axis_3d();
	init_file_badge();
	init_file_box();
	init_file_braces_corner();
	init_file_braces();
	init_file_chart_column_increasing();
	init_file_chart_column();
	init_file_chart_line();
	init_file_chart_pie();
	init_file_check_corner();
	init_file_check();
	init_file_clock();
	init_file_code();
	init_file_code_corner();
	init_file_cog();
	init_file_diff();
	init_file_digit();
	init_file_down();
	init_file_exclamation_point();
	init_file_headphone();
	init_file_heart();
	init_file_image();
	init_file_input();
	init_file_key();
	init_file_lock();
	init_file_minus_corner();
	init_file_minus();
	init_file_music();
	init_file_output();
	init_file_pen_line();
	init_file_pen();
	init_file_play();
	init_file_plus_corner();
	init_file_plus();
	init_file_question_mark();
	init_file_scan();
	init_file_search_corner();
	init_file_search();
	init_file_signal();
	init_file_sliders();
	init_file_spreadsheet();
	init_file_stack();
	init_file_symlink();
	init_file_terminal();
	init_file_text();
	init_file_type_corner();
	init_file_type();
	init_file_up();
	init_file_user();
	init_file_video_camera();
	init_file_volume();
	init_file_x_corner();
	init_file_x();
	init_file();
	init_files();
	init_film();
	init_fingerprint_pattern();
	init_fire_extinguisher();
	init_fish_off();
	init_fish_symbol();
	init_fish();
	init_flag_off();
	init_flag_triangle_left();
	init_flag_triangle_right();
	init_flag();
	init_flame_kindling();
	init_flame();
	init_flashlight_off();
	init_flashlight();
	init_flask_conical_off();
	init_flask_conical();
	init_flask_round();
	init_flip_horizontal_2();
	init_flip_horizontal();
	init_flip_vertical_2();
	init_flip_vertical();
	init_flower_2();
	init_flower();
	init_focus();
	init_fold_horizontal();
	init_fold_vertical();
	init_folder_archive();
	init_folder_check();
	init_folder_clock();
	init_folder_closed();
	init_folder_code();
	init_folder_cog();
	init_folder_dot();
	init_folder_down();
	init_folder_git_2();
	init_folder_git();
	init_folder_heart();
	init_folder_input();
	init_folder_kanban();
	init_folder_key();
	init_folder_lock();
	init_folder_minus();
	init_folder_open_dot();
	init_folder_open();
	init_folder_output();
	init_folder_pen();
	init_folder_plus();
	init_folder_root();
	init_folder_search_2();
	init_folder_search();
	init_folder_symlink();
	init_folder_sync();
	init_folder_tree();
	init_folder_up();
	init_folder_x();
	init_folder();
	init_folders();
	init_footprints();
	init_forklift();
	init_form();
	init_forward();
	init_frame();
	init_framer();
	init_frown();
	init_fuel();
	init_fullscreen();
	init_funnel_plus();
	init_funnel_x();
	init_funnel();
	init_gallery_horizontal_end();
	init_gallery_horizontal();
	init_gallery_thumbnails();
	init_gallery_vertical_end();
	init_gallery_vertical();
	init_gamepad_2();
	init_gamepad_directional();
	init_gamepad();
	init_gauge();
	init_gavel();
	init_gem();
	init_georgian_lari();
	init_ghost();
	init_gift();
	init_git_branch_minus();
	init_git_branch_plus();
	init_git_branch();
	init_git_commit_horizontal();
	init_git_commit_vertical();
	init_git_compare_arrows();
	init_git_compare();
	init_git_fork();
	init_git_graph();
	init_git_merge();
	init_git_pull_request_arrow();
	init_git_pull_request_closed();
	init_git_pull_request_create_arrow();
	init_git_pull_request_create();
	init_git_pull_request_draft();
	init_gitlab();
	init_git_pull_request();
	init_glass_water();
	init_github();
	init_glasses();
	init_globe_lock();
	init_globe();
	init_goal();
	init_gpu();
	init_graduation_cap();
	init_grape();
	init_grid_2x2_check();
	init_grid_2x2_plus();
	init_grid_2x2_x();
	init_grid_2x2();
	init_grid_3x2();
	init_grid_3x3();
	init_grip_horizontal();
	init_grip_vertical();
	init_grip();
	init_group();
	init_guitar();
	init_ham();
	init_hamburger();
	init_hammer();
	init_hand_fist();
	init_hand_coins();
	init_hand_grab();
	init_hand_heart();
	init_hand_helping();
	init_hand_metal();
	init_hand_platter();
	init_hand();
	init_handbag();
	init_handshake();
	init_hard_drive_download();
	init_hard_drive_upload();
	init_hard_drive();
	init_hard_hat();
	init_hash();
	init_hat_glasses();
	init_hdmi_port();
	init_haze();
	init_heading_1();
	init_heading_2();
	init_heading_3();
	init_heading_4();
	init_heading_6();
	init_heading_5();
	init_heading();
	init_headphone_off();
	init_headphones();
	init_headset();
	init_heart_crack();
	init_heart_handshake();
	init_heart_minus();
	init_heart_off();
	init_heart_plus();
	init_heart_pulse();
	init_heart();
	init_heater();
	init_helicopter();
	init_hexagon();
	init_highlighter();
	init_history();
	init_hop_off();
	init_hop();
	init_hospital();
	init_hotel();
	init_hourglass();
	init_house_plug();
	init_house_heart();
	init_house_plus();
	init_house_wifi();
	init_house();
	init_ice_cream_bowl();
	init_ice_cream_cone();
	init_id_card_lanyard();
	init_id_card();
	init_image_down();
	init_image_minus();
	init_image_off();
	init_image_play();
	init_image_plus();
	init_image_up();
	init_image_upscale();
	init_image();
	init_images();
	init_import();
	init_inbox();
	init_indian_rupee();
	init_infinity();
	init_info();
	init_inspection_panel();
	init_instagram();
	init_italic();
	init_iteration_ccw();
	init_iteration_cw();
	init_japanese_yen();
	init_joystick();
	init_kanban();
	init_kayak();
	init_key_round();
	init_key_square();
	init_key();
	init_keyboard_music();
	init_keyboard_off();
	init_keyboard();
	init_lamp_ceiling();
	init_lamp_desk();
	init_lamp_floor();
	init_lamp_wall_down();
	init_lamp_wall_up();
	init_land_plot();
	init_lamp();
	init_landmark();
	init_languages();
	init_laptop_minimal_check();
	init_laptop_minimal();
	init_laptop();
	init_lasso();
	init_lasso_select();
	init_laugh();
	init_layers_2();
	init_layers();
	init_layout_dashboard();
	init_layout_grid();
	init_layout_list();
	init_layout_panel_left();
	init_layout_panel_top();
	init_layout_template();
	init_leaf();
	init_leafy_green();
	init_lectern();
	init_library_big();
	init_library();
	init_life_buoy();
	init_ligature();
	init_lightbulb_off();
	init_lightbulb();
	init_line_squiggle();
	init_link_2_off();
	init_link_2();
	init_link();
	init_linkedin();
	init_list_check();
	init_list_checks();
	init_list_chevrons_down_up();
	init_list_chevrons_up_down();
	init_list_collapse();
	init_list_end();
	init_list_filter_plus();
	init_list_filter();
	init_list_indent_decrease();
	init_list_indent_increase();
	init_list_minus();
	init_list_music();
	init_list_ordered();
	init_list_plus();
	init_list_restart();
	init_list_start();
	init_list_todo();
	init_list_tree();
	init_list_video();
	init_list_x();
	init_list();
	init_loader_circle();
	init_loader_pinwheel();
	init_loader();
	init_locate_off();
	init_locate_fixed();
	init_locate();
	init_lock_keyhole_open();
	init_lock_keyhole();
	init_lock_open();
	init_lock();
	init_log_out();
	init_log_in();
	init_logs();
	init_lollipop();
	init_luggage();
	init_magnet();
	init_mail_check();
	init_mail_minus();
	init_mail_open();
	init_mail_plus();
	init_mail_question_mark();
	init_mail_search();
	init_mail_warning();
	init_mail_x();
	init_mail();
	init_mailbox();
	init_mails();
	init_map_minus();
	init_map_pin_check_inside();
	init_map_pin_check();
	init_map_pin_house();
	init_map_pin_minus_inside();
	init_map_pin_minus();
	init_map_pin_off();
	init_map_pin_pen();
	init_map_pin_plus_inside();
	init_map_pin_x_inside();
	init_map_pin_plus();
	init_map_pin_x();
	init_map_pin();
	init_map_pinned();
	init_map_plus();
	init_map();
	init_mars();
	init_mars_stroke();
	init_martini();
	init_maximize_2();
	init_maximize();
	init_medal();
	init_megaphone_off();
	init_megaphone();
	init_meh();
	init_memory_stick();
	init_menu();
	init_merge();
	init_message_circle_code();
	init_message_circle_dashed();
	init_message_circle_heart();
	init_message_circle_more();
	init_message_circle_off();
	init_message_circle_plus();
	init_message_circle_question_mark();
	init_message_circle_reply();
	init_message_circle_warning();
	init_message_circle_x();
	init_message_circle();
	init_message_square_code();
	init_message_square_dashed();
	init_message_square_diff();
	init_message_square_dot();
	init_message_square_heart();
	init_message_square_lock();
	init_message_square_more();
	init_message_square_off();
	init_message_square_plus();
	init_message_square_quote();
	init_message_square_reply();
	init_message_square_share();
	init_message_square_text();
	init_message_square_warning();
	init_message_square_x();
	init_message_square();
	init_messages_square();
	init_mic_off();
	init_mic_vocal();
	init_mic();
	init_microchip();
	init_microscope();
	init_milestone();
	init_microwave();
	init_milk_off();
	init_milk();
	init_minimize_2();
	init_minimize();
	init_minus();
	init_monitor_check();
	init_monitor_cloud();
	init_monitor_cog();
	init_monitor_dot();
	init_monitor_down();
	init_monitor_off();
	init_monitor_pause();
	init_monitor_play();
	init_monitor_smartphone();
	init_monitor_speaker();
	init_monitor_stop();
	init_monitor_up();
	init_monitor_x();
	init_monitor();
	init_moon_star();
	init_moon();
	init_motorbike();
	init_mountain_snow();
	init_mountain();
	init_mouse_off();
	init_mouse_pointer_2_off();
	init_mouse_pointer_2();
	init_mouse_pointer_ban();
	init_mouse_pointer_click();
	init_mouse_pointer();
	init_mouse();
	init_move_diagonal();
	init_move_diagonal_2();
	init_move_3d();
	init_move_down_left();
	init_move_down_right();
	init_move_down();
	init_move_left();
	init_move_horizontal();
	init_move_right();
	init_move_up_left();
	init_move_up_right();
	init_move_up();
	init_move_vertical();
	init_move();
	init_music_2();
	init_music_3();
	init_music_4();
	init_music();
	init_navigation_2();
	init_navigation_2_off();
	init_navigation_off();
	init_navigation();
	init_network();
	init_newspaper();
	init_nfc();
	init_non_binary();
	init_notebook_pen();
	init_notebook_tabs();
	init_notebook_text();
	init_notebook();
	init_notepad_text_dashed();
	init_nut_off();
	init_notepad_text();
	init_nut();
	init_octagon_alert();
	init_octagon_minus();
	init_octagon_pause();
	init_octagon_x();
	init_octagon();
	init_omega();
	init_option();
	init_orbit();
	init_origami();
	init_package_2();
	init_package_check();
	init_package_minus();
	init_package_open();
	init_package_plus();
	init_package_search();
	init_package_x();
	init_package();
	init_paint_bucket();
	init_paint_roller();
	init_paintbrush_vertical();
	init_paintbrush();
	init_palette();
	init_panda();
	init_panel_bottom_close();
	init_panel_bottom_dashed();
	init_panel_bottom();
	init_panel_bottom_open();
	init_panel_left_close();
	init_panel_left_dashed();
	init_panel_left_open();
	init_panel_left_right_dashed();
	init_panel_left();
	init_panel_right_close();
	init_panel_right_open();
	init_panel_right_dashed();
	init_panel_top_bottom_dashed();
	init_panel_right();
	init_panel_top_close();
	init_panel_top_dashed();
	init_panel_top_open();
	init_panel_top();
	init_panels_left_bottom();
	init_panels_right_bottom();
	init_panels_top_left();
	init_paperclip();
	init_parentheses();
	init_parking_meter();
	init_party_popper();
	init_pause();
	init_paw_print();
	init_pc_case();
	init_pen_line();
	init_pen_off();
	init_pen_tool();
	init_pen();
	init_pencil_line();
	init_pencil_off();
	init_pencil_ruler();
	init_pencil();
	init_pentagon();
	init_percent();
	init_person_standing();
	init_philippine_peso();
	init_phone_call();
	init_phone_forwarded();
	init_phone_incoming();
	init_phone_missed();
	init_phone_off();
	init_phone_outgoing();
	init_phone();
	init_pi();
	init_piano();
	init_pickaxe();
	init_picture_in_picture_2();
	init_picture_in_picture();
	init_piggy_bank();
	init_pilcrow_left();
	init_pilcrow();
	init_pilcrow_right();
	init_pill_bottle();
	init_pill();
	init_pin_off();
	init_pin();
	init_pipette();
	init_pizza();
	init_plane_landing();
	init_plane_takeoff();
	init_plane();
	init_play();
	init_plug_2();
	init_plug_zap();
	init_plug();
	init_plus();
	init_pocket_knife();
	init_pocket();
	init_podcast();
	init_pointer_off();
	init_pointer();
	init_popcorn();
	init_popsicle();
	init_pound_sterling();
	init_power_off();
	init_power();
	init_presentation();
	init_printer_check();
	init_projector();
	init_printer();
	init_proportions();
	init_puzzle();
	init_pyramid();
	init_qr_code();
	init_quote();
	init_rabbit();
	init_radar();
	init_radiation();
	init_radical();
	init_radio_receiver();
	init_radio();
	init_radius();
	init_radio_tower();
	init_rail_symbol();
	init_rainbow();
	init_rat();
	init_ratio();
	init_receipt_cent();
	init_receipt_euro();
	init_receipt_indian_rupee();
	init_receipt_japanese_yen();
	init_receipt_pound_sterling();
	init_receipt_russian_ruble();
	init_receipt_swiss_franc();
	init_receipt_text();
	init_receipt_turkish_lira();
	init_receipt();
	init_rectangle_circle();
	init_rectangle_ellipsis();
	init_rectangle_goggles();
	init_rectangle_horizontal();
	init_rectangle_vertical();
	init_recycle();
	init_redo_2();
	init_redo_dot();
	init_redo();
	init_refresh_ccw_dot();
	init_refresh_ccw();
	init_refresh_cw_off();
	init_refresh_cw();
	init_refrigerator();
	init_regex();
	init_remove_formatting();
	init_repeat_1();
	init_repeat_2();
	init_repeat$2();
	init_replace_all();
	init_replace();
	init_reply_all();
	init_reply();
	init_rewind();
	init_ribbon();
	init_rocket();
	init_rocking_chair();
	init_roller_coaster();
	init_rose();
	init_rotate_3d();
	init_rotate_ccw_square();
	init_rotate_ccw_key();
	init_rotate_ccw();
	init_rotate_cw_square();
	init_rotate_cw();
	init_route_off();
	init_route();
	init_rows_2();
	init_router();
	init_rows_3();
	init_rows_4();
	init_rss();
	init_ruler_dimension_line();
	init_ruler();
	init_russian_ruble();
	init_sailboat();
	init_salad();
	init_sandwich();
	init_satellite_dish();
	init_satellite();
	init_saudi_riyal();
	init_save_all();
	init_save_off();
	init_save();
	init_scale_3d();
	init_scale();
	init_scaling();
	init_scan_barcode();
	init_scan_eye();
	init_scan_heart();
	init_scan_face();
	init_scan_qr_code();
	init_scan_line();
	init_scan_search();
	init_scan_text();
	init_scan();
	init_school();
	init_scissors_line_dashed();
	init_scissors();
	init_scooter();
	init_screen_share_off();
	init_screen_share();
	init_scroll_text();
	init_scroll();
	init_search_check();
	init_search_code();
	init_search_slash();
	init_search_x();
	init_search();
	init_section();
	init_send_horizontal();
	init_send_to_back();
	init_send();
	init_separator_horizontal();
	init_separator_vertical();
	init_server_cog();
	init_server_crash();
	init_server_off();
	init_server();
	init_settings_2();
	init_settings();
	init_shapes();
	init_share_2();
	init_share();
	init_sheet();
	init_shell();
	init_shield_ban();
	init_shield_alert();
	init_shield_check();
	init_shield_ellipsis();
	init_shield_half();
	init_shield_minus();
	init_shield_off();
	init_shield_plus();
	init_shield_question_mark();
	init_shield_user();
	init_shield_x();
	init_shield();
	init_ship_wheel();
	init_ship();
	init_shirt();
	init_shopping_bag();
	init_shopping_basket();
	init_shopping_cart();
	init_shovel();
	init_shower_head();
	init_shredder();
	init_shrimp();
	init_shrink();
	init_shrub();
	init_shuffle();
	init_sigma();
	init_signal_high();
	init_signal_low();
	init_signal_medium();
	init_signal_zero();
	init_signal();
	init_signature();
	init_signpost_big();
	init_siren();
	init_skip_back();
	init_signpost();
	init_skip_forward();
	init_skull();
	init_slack();
	init_slash();
	init_slice();
	init_sliders_horizontal();
	init_sliders_vertical();
	init_smartphone_charging();
	init_smartphone_nfc();
	init_smartphone();
	init_smile_plus();
	init_smile();
	init_snail();
	init_snowflake();
	init_soap_dispenser_droplet();
	init_sofa();
	init_solar_panel();
	init_soup();
	init_space();
	init_spade();
	init_sparkles();
	init_speaker();
	init_sparkle();
	init_speech();
	init_spell_check_2();
	init_spell_check();
	init_spline_pointer();
	init_spline();
	init_spool();
	init_split();
	init_spotlight();
	init_spray_can();
	init_sprout();
	init_square_activity();
	init_square_arrow_down_left();
	init_square_arrow_down_right();
	init_square_arrow_down();
	init_square_arrow_left();
	init_square_arrow_out_down_left();
	init_square_arrow_out_down_right();
	init_square_arrow_out_up_left();
	init_square_arrow_out_up_right();
	init_square_arrow_right();
	init_square_arrow_up_left();
	init_square_arrow_up_right();
	init_square_arrow_up();
	init_square_asterisk();
	init_square_bottom_dashed_scissors();
	init_square_check_big();
	init_square_chart_gantt();
	init_square_check();
	init_square_chevron_down();
	init_square_chevron_left();
	init_square_chevron_right();
	init_square_chevron_up();
	init_square_code();
	init_square_dashed_bottom_code();
	init_square_dashed_kanban();
	init_square_dashed_mouse_pointer();
	init_square_dashed_bottom();
	init_square_dashed_top_solid();
	init_square_dashed();
	init_square_divide();
	init_square_dot();
	init_square_function();
	init_square_equal();
	init_square_kanban();
	init_square_library();
	init_square_m();
	init_square_menu();
	init_square_minus();
	init_square_mouse_pointer();
	init_square_parking_off();
	init_square_parking();
	init_square_pause();
	init_square_pen();
	init_square_percent();
	init_square_pi();
	init_square_pilcrow();
	init_square_play();
	init_square_plus();
	init_square_power();
	init_square_radical();
	init_square_round_corner();
	init_square_scissors();
	init_square_sigma();
	init_square_slash();
	init_square_split_horizontal();
	init_square_split_vertical();
	init_square_square();
	init_square_stack();
	init_square_star();
	init_square_stop();
	init_square_terminal();
	init_square_user_round();
	init_square_user();
	init_square_x();
	init_square();
	init_squares_exclude();
	init_squares_subtract();
	init_squares_intersect();
	init_squares_unite();
	init_squircle_dashed();
	init_squirrel();
	init_squircle();
	init_stamp();
	init_star_half();
	init_star_off();
	init_star();
	init_step_back();
	init_step_forward();
	init_stethoscope();
	init_sticker();
	init_sticky_note();
	init_stretch_horizontal();
	init_store$1();
	init_stretch_vertical();
	init_strikethrough();
	init_subscript();
	init_sun_medium();
	init_sun_dim();
	init_sun_snow();
	init_sun_moon();
	init_sun();
	init_sunrise();
	init_sunset();
	init_superscript();
	init_swatch_book();
	init_swiss_franc();
	init_switch_camera();
	init_sword();
	init_swords();
	init_syringe();
	init_table_2();
	init_table_cells_merge();
	init_table_cells_split();
	init_table_columns_split();
	init_table_of_contents();
	init_table_properties();
	init_table_rows_split();
	init_table();
	init_tablet_smartphone();
	init_tablet();
	init_tablets();
	init_tag();
	init_tags();
	init_tally_1();
	init_tally_2();
	init_tally_3();
	init_tally_4();
	init_tally_5();
	init_tangent();
	init_target();
	init_telescope();
	init_tent_tree();
	init_tent();
	init_terminal();
	init_test_tube_diagonal();
	init_test_tube();
	init_test_tubes();
	init_text_align_center();
	init_text_align_end();
	init_text_align_justify();
	init_text_align_start();
	init_text_cursor_input();
	init_text_cursor();
	init_text_initial();
	init_text_quote();
	init_text_search();
	init_text_select();
	init_text_wrap();
	init_theater();
	init_thermometer_snowflake();
	init_thermometer_sun();
	init_thermometer();
	init_thumbs_down();
	init_thumbs_up();
	init_ticket_check();
	init_ticket_minus();
	init_ticket_percent();
	init_ticket_plus();
	init_ticket_slash();
	init_ticket_x();
	init_ticket();
	init_tickets_plane();
	init_tickets();
	init_timer_off();
	init_timer_reset();
	init_timer();
	init_toggle_left();
	init_toggle_right();
	init_toilet();
	init_tool_case();
	init_tornado();
	init_touchpad_off();
	init_torus();
	init_touchpad();
	init_tower_control();
	init_toy_brick();
	init_tractor();
	init_traffic_cone();
	init_train_front_tunnel();
	init_train_front();
	init_train_track();
	init_tram_front();
	init_transgender();
	init_trash_2();
	init_trash();
	init_tree_deciduous();
	init_tree_palm();
	init_tree_pine();
	init_trees();
	init_trello();
	init_trending_down();
	init_trending_up_down();
	init_trending_up();
	init_triangle_alert();
	init_triangle_dashed();
	init_triangle_right();
	init_trophy();
	init_triangle();
	init_truck_electric();
	init_truck();
	init_turkish_lira();
	init_turntable();
	init_turtle();
	init_tv_minimal_play();
	init_tv_minimal();
	init_tv();
	init_twitch();
	init_twitter();
	init_type_outline();
	init_type$6();
	init_umbrella_off();
	init_umbrella();
	init_underline();
	init_undo_2();
	init_undo_dot();
	init_undo();
	init_unfold_horizontal();
	init_unfold_vertical();
	init_ungroup();
	init_university();
	init_unlink_2();
	init_unlink();
	init_upload();
	init_unplug();
	init_usb();
	init_user_cog();
	init_user_check();
	init_user_lock();
	init_user_minus();
	init_user_pen();
	init_user_plus();
	init_user_round_check();
	init_user_round_cog();
	init_user_round_minus();
	init_user_round_pen();
	init_user_round_plus();
	init_user_round_search();
	init_user_round_x();
	init_user_round();
	init_user_search();
	init_user_star();
	init_user_x();
	init_user();
	init_users_round();
	init_users();
	init_utensils_crossed();
	init_utensils();
	init_utility_pole();
	init_van();
	init_vault();
	init_variable();
	init_vector_square();
	init_vegan();
	init_venetian_mask();
	init_venus_and_mars();
	init_venus();
	init_vibrate_off();
	init_vibrate();
	init_video_off();
	init_video();
	init_videotape();
	init_view();
	init_volleyball();
	init_voicemail();
	init_volume_1();
	init_volume_2();
	init_volume_off();
	init_volume_x();
	init_volume();
	init_vote();
	init_wallet_cards();
	init_wallet_minimal();
	init_wallet();
	init_wallpaper();
	init_wand_sparkles();
	init_wand();
	init_warehouse();
	init_washing_machine();
	init_watch();
	init_waves_arrow_down();
	init_waves_arrow_up();
	init_waves_ladder();
	init_waves();
	init_waypoints();
	init_webcam();
	init_webhook_off();
	init_webhook();
	init_weight_tilde();
	init_weight();
	init_wheat_off();
	init_wheat();
	init_whole_word();
	init_wifi_cog();
	init_wifi_high();
	init_wifi_low();
	init_wifi_off();
	init_wifi_pen();
	init_wifi_sync();
	init_wifi_zero();
	init_wifi();
	init_wind_arrow_down();
	init_wind();
	init_wine_off();
	init_wine();
	init_workflow();
	init_worm();
	init_wrench();
	init_youtube();
	init_x();
	init_zap_off();
	init_zap();
	init_zoom_in();
	init_zoom_out();
}));

//#endregion
//#region node_modules/lucide/dist/esm/lucide.js
var createIcons;
var init_lucide = __esmMin((() => {
	init_replaceElement();
	init_iconsAndAliases();
	init_createElement();
	init_a_arrow_down();
	init_a_arrow_up();
	init_a_large_small();
	init_accessibility();
	init_activity();
	init_air_vent();
	init_airplay();
	init_alarm_clock_check();
	init_alarm_clock_minus();
	init_alarm_clock_off();
	init_alarm_clock_plus();
	init_alarm_clock();
	init_alarm_smoke();
	init_album();
	init_align_center_horizontal();
	init_align_center_vertical();
	init_align_end_horizontal();
	init_align_end_vertical();
	init_align_horizontal_distribute_center();
	init_align_horizontal_distribute_end();
	init_align_horizontal_justify_center();
	init_align_horizontal_distribute_start();
	init_align_horizontal_justify_end();
	init_align_horizontal_space_around();
	init_align_horizontal_justify_start();
	init_align_horizontal_space_between();
	init_align_start_horizontal();
	init_align_start_vertical();
	init_align_vertical_distribute_center();
	init_align_vertical_distribute_end();
	init_align_vertical_distribute_start();
	init_align_vertical_justify_center();
	init_align_vertical_justify_end();
	init_align_vertical_justify_start();
	init_align_vertical_space_around();
	init_align_vertical_space_between();
	init_ambulance();
	init_ampersand();
	init_ampersands();
	init_amphora();
	init_anchor();
	init_angry();
	init_annoyed();
	init_antenna();
	init_anvil();
	init_aperture();
	init_app_window_mac();
	init_app_window();
	init_apple();
	init_archive_restore();
	init_archive_x();
	init_archive();
	init_arrow_big_down_dash();
	init_armchair();
	init_arrow_big_down();
	init_arrow_big_left_dash();
	init_arrow_big_left();
	init_arrow_big_right_dash();
	init_arrow_big_right();
	init_arrow_big_up_dash();
	init_arrow_big_up();
	init_arrow_down_0_1();
	init_arrow_down_1_0();
	init_arrow_down_a_z();
	init_arrow_down_from_line();
	init_arrow_down_left();
	init_arrow_down_narrow_wide();
	init_arrow_down_right();
	init_arrow_down_to_dot();
	init_arrow_down_to_line();
	init_arrow_down_up();
	init_arrow_down_z_a();
	init_arrow_down_wide_narrow();
	init_arrow_down();
	init_arrow_left_from_line();
	init_arrow_left_right();
	init_arrow_left_to_line();
	init_arrow_left();
	init_arrow_right_from_line();
	init_arrow_right_left();
	init_arrow_right_to_line();
	init_arrow_right();
	init_arrow_up_0_1();
	init_arrow_up_1_0();
	init_arrow_up_a_z();
	init_arrow_up_down();
	init_arrow_up_from_dot();
	init_arrow_up_from_line();
	init_arrow_up_left();
	init_arrow_up_narrow_wide();
	init_arrow_up_right();
	init_arrow_up_to_line();
	init_arrow_up_wide_narrow();
	init_arrow_up_z_a();
	init_arrow_up();
	init_arrows_up_from_line();
	init_asterisk();
	init_at_sign();
	init_atom();
	init_audio_lines();
	init_audio_waveform();
	init_award();
	init_axe();
	init_axis_3d();
	init_baby();
	init_backpack();
	init_badge_cent();
	init_badge_alert();
	init_badge_check();
	init_badge_dollar_sign();
	init_badge_euro();
	init_badge_info();
	init_badge_indian_rupee();
	init_badge_japanese_yen();
	init_badge_minus();
	init_badge_percent();
	init_badge_plus();
	init_badge_pound_sterling();
	init_badge_question_mark();
	init_badge_russian_ruble();
	init_badge_swiss_franc();
	init_badge_turkish_lira();
	init_badge_x();
	init_badge();
	init_baggage_claim();
	init_ban();
	init_banana();
	init_bandage();
	init_banknote_arrow_down();
	init_banknote_arrow_up();
	init_banknote_x();
	init_banknote();
	init_barcode();
	init_barrel();
	init_baseline();
	init_bath();
	init_battery_charging();
	init_battery_full();
	init_battery_low();
	init_battery_medium();
	init_battery_plus();
	init_battery_warning();
	init_battery();
	init_beaker();
	init_bean_off();
	init_bean();
	init_bed_double();
	init_bed_single();
	init_bed();
	init_beef();
	init_beer_off();
	init_beer();
	init_bell_dot();
	init_bell_electric();
	init_bell_minus();
	init_bell_off();
	init_bell_plus();
	init_bell_ring();
	init_bell();
	init_between_horizontal_end();
	init_between_horizontal_start();
	init_between_vertical_end();
	init_between_vertical_start();
	init_biceps_flexed();
	init_bike();
	init_binoculars();
	init_binary();
	init_biohazard();
	init_bird();
	init_bitcoin();
	init_blend();
	init_birdhouse();
	init_blinds();
	init_blocks();
	init_bluetooth_connected();
	init_bluetooth_off();
	init_bluetooth_searching();
	init_bluetooth();
	init_bold();
	init_bolt();
	init_bomb();
	init_bone();
	init_book_a();
	init_book_alert();
	init_book_audio();
	init_book_check();
	init_book_copy();
	init_book_dashed();
	init_book_down();
	init_book_headphones();
	init_book_heart();
	init_book_image();
	init_book_key();
	init_book_lock();
	init_book_marked();
	init_book_minus();
	init_book_open_check();
	init_book_open_text();
	init_book_open();
	init_book_plus();
	init_book_search();
	init_book_text();
	init_book_type();
	init_book_up_2();
	init_book_up();
	init_book_user();
	init_book_x();
	init_book();
	init_bookmark_check();
	init_bookmark_minus();
	init_bookmark_plus();
	init_bookmark_x();
	init_bookmark();
	init_boom_box();
	init_bot_message_square();
	init_bot_off();
	init_bot();
	init_bottle_wine();
	init_bow_arrow();
	init_box();
	init_boxes();
	init_braces();
	init_brackets();
	init_brain_circuit();
	init_brain_cog();
	init_brain();
	init_brick_wall_fire();
	init_brick_wall_shield();
	init_brick_wall();
	init_briefcase_business();
	init_briefcase_conveyor_belt();
	init_briefcase_medical();
	init_briefcase();
	init_bring_to_front();
	init_brush_cleaning();
	init_brush();
	init_bubbles();
	init_bug_off();
	init_bug_play();
	init_bug();
	init_building_2();
	init_building();
	init_bus_front();
	init_bus();
	init_cable_car();
	init_cable();
	init_cake_slice();
	init_cake();
	init_calculator();
	init_calendar_1();
	init_calendar_arrow_down();
	init_calendar_arrow_up();
	init_calendar_check_2();
	init_calendar_check();
	init_calendar_clock();
	init_calendar_cog();
	init_calendar_days();
	init_calendar_fold();
	init_calendar_heart();
	init_calendar_minus();
	init_calendar_minus_2();
	init_calendar_off();
	init_calendar_plus_2();
	init_calendar_plus();
	init_calendar_range();
	init_calendar_search();
	init_calendar_sync();
	init_calendar_x_2();
	init_calendar_x();
	init_calendar();
	init_calendars();
	init_camera_off();
	init_camera();
	init_candy_cane();
	init_candy_off();
	init_cannabis();
	init_captions_off();
	init_candy();
	init_captions();
	init_car_front();
	init_car_taxi_front();
	init_car();
	init_caravan();
	init_card_sim();
	init_carrot();
	init_case_lower();
	init_case_sensitive();
	init_case_upper();
	init_cassette_tape();
	init_cast();
	init_castle();
	init_cat();
	init_cctv();
	init_chart_area();
	init_chart_bar_big();
	init_chart_bar_decreasing();
	init_chart_bar_increasing();
	init_chart_bar_stacked();
	init_chart_bar();
	init_chart_candlestick();
	init_chart_column_big();
	init_chart_column_increasing();
	init_chart_column_decreasing();
	init_chart_column_stacked();
	init_chart_column();
	init_chart_gantt();
	init_chart_line();
	init_chart_network();
	init_chart_no_axes_column_decreasing();
	init_chart_no_axes_column_increasing();
	init_chart_no_axes_column();
	init_chart_no_axes_combined();
	init_chart_no_axes_gantt();
	init_chart_pie();
	init_chart_scatter();
	init_chart_spline();
	init_check_check();
	init_check_line();
	init_check();
	init_chef_hat();
	init_cherry();
	init_chess_bishop();
	init_chess_king();
	init_chess_knight();
	init_chess_pawn();
	init_chess_queen();
	init_chess_rook();
	init_chevron_down();
	init_chevron_first();
	init_chevron_last();
	init_chevron_left();
	init_chevron_right();
	init_chevron_up();
	init_chevrons_down_up();
	init_chevrons_down();
	init_chevrons_left_right_ellipsis();
	init_chevrons_left_right();
	init_chevrons_left();
	init_chevrons_right_left();
	init_chevrons_right();
	init_chevrons_up_down();
	init_chevrons_up();
	init_chromium();
	init_church();
	init_cigarette_off();
	init_cigarette();
	init_circle_alert();
	init_circle_arrow_down();
	init_circle_arrow_left();
	init_circle_arrow_out_down_left();
	init_circle_arrow_out_down_right();
	init_circle_arrow_out_up_left();
	init_circle_arrow_out_up_right();
	init_circle_arrow_right();
	init_circle_arrow_up();
	init_circle_check_big();
	init_circle_check();
	init_circle_chevron_down();
	init_circle_chevron_left();
	init_circle_chevron_right();
	init_circle_chevron_up();
	init_circle_dashed();
	init_circle_divide();
	init_circle_dollar_sign();
	init_circle_dot_dashed();
	init_circle_dot();
	init_circle_ellipsis();
	init_circle_equal();
	init_circle_fading_arrow_up();
	init_circle_fading_plus();
	init_circle_gauge();
	init_circle_minus();
	init_circle_off();
	init_circle_parking_off();
	init_circle_parking();
	init_circle_pause();
	init_circle_percent();
	init_circle_play();
	init_circle_plus();
	init_circle_pound_sterling();
	init_circle_power();
	init_circle_question_mark();
	init_circle_slash_2();
	init_circle_slash();
	init_circle_small();
	init_circle_star();
	init_circle_stop();
	init_circle_user_round();
	init_circle_user();
	init_circle_x();
	init_circle();
	init_circuit_board();
	init_citrus();
	init_clapperboard();
	init_clipboard_check();
	init_clipboard_clock();
	init_clipboard_copy();
	init_clipboard_list();
	init_clipboard_paste();
	init_clipboard_minus();
	init_clipboard_pen_line();
	init_clipboard_pen();
	init_clipboard_plus();
	init_clipboard_type();
	init_clipboard();
	init_clipboard_x();
	init_clock_1();
	init_clock_10();
	init_clock_12();
	init_clock_2();
	init_clock_3();
	init_clock_11();
	init_clock_4();
	init_clock_5();
	init_clock_6();
	init_clock_7();
	init_clock_8();
	init_clock_9();
	init_clock_alert();
	init_clock_arrow_down();
	init_clock_arrow_up();
	init_clock_check();
	init_clock_fading();
	init_clock_plus();
	init_clock();
	init_closed_caption();
	init_cloud_alert();
	init_cloud_check();
	init_cloud_download();
	init_cloud_cog();
	init_cloud_drizzle();
	init_cloud_fog();
	init_cloud_hail();
	init_cloud_lightning();
	init_cloud_moon_rain();
	init_cloud_moon();
	init_cloud_off();
	init_cloud_rain_wind();
	init_cloud_rain();
	init_cloud_snow();
	init_cloud_sun_rain();
	init_cloud_sun();
	init_cloud_upload();
	init_cloud();
	init_cloudy();
	init_clover();
	init_club();
	init_code_xml();
	init_code();
	init_codepen();
	init_codesandbox();
	init_coffee();
	init_cog();
	init_coins();
	init_columns_3_cog();
	init_columns_2();
	init_columns_3();
	init_columns_4();
	init_combine();
	init_command();
	init_compass();
	init_component();
	init_computer();
	init_concierge_bell();
	init_cone();
	init_construction();
	init_contact_round();
	init_contact();
	init_container();
	init_contrast();
	init_cookie();
	init_cooking_pot();
	init_copy_check();
	init_copy_minus();
	init_copy_plus();
	init_copy_slash();
	init_copy_x();
	init_copy();
	init_copyright();
	init_copyleft();
	init_corner_down_left();
	init_corner_down_right();
	init_corner_left_down();
	init_corner_left_up();
	init_corner_right_down();
	init_corner_right_up();
	init_corner_up_left();
	init_cpu();
	init_creative_commons();
	init_credit_card();
	init_corner_up_right();
	init_croissant();
	init_crop();
	init_cross();
	init_crosshair();
	init_crown();
	init_cuboid();
	init_cup_soda();
	init_currency();
	init_cylinder();
	init_dam();
	init_database_backup();
	init_database_zap();
	init_database();
	init_decimals_arrow_left();
	init_decimals_arrow_right();
	init_delete();
	init_dessert();
	init_diameter();
	init_diamond_minus();
	init_diamond_percent();
	init_diamond_plus();
	init_diamond();
	init_dice_1();
	init_dice_2();
	init_dice_3();
	init_dice_4();
	init_dice_5();
	init_dice_6();
	init_dices();
	init_diff();
	init_disc_2();
	init_disc_3();
	init_disc_album();
	init_disc();
	init_divide();
	init_dna_off();
	init_dna();
	init_dock();
	init_dog();
	init_dollar_sign();
	init_donut();
	init_door_closed_locked();
	init_door_closed();
	init_door_open();
	init_dot();
	init_download();
	init_drafting_compass();
	init_drama();
	init_dribbble();
	init_drill();
	init_drone();
	init_droplet_off();
	init_droplet();
	init_droplets();
	init_drum();
	init_drumstick();
	init_dumbbell();
	init_ear_off();
	init_ear();
	init_earth_lock();
	init_earth();
	init_eclipse();
	init_egg_fried();
	init_egg_off();
	init_egg();
	init_ellipsis_vertical();
	init_ellipsis();
	init_equal_approximately();
	init_equal_not();
	init_equal();
	init_eraser();
	init_ethernet_port();
	init_euro();
	init_ev_charger();
	init_expand();
	init_external_link();
	init_eye_closed();
	init_eye_off();
	init_eye();
	init_facebook();
	init_factory();
	init_fan();
	init_fast_forward();
	init_feather();
	init_fence();
	init_ferris_wheel();
	init_figma();
	init_file_archive();
	init_file_axis_3d();
	init_file_badge();
	init_file_box();
	init_file_braces_corner();
	init_file_braces();
	init_file_chart_column_increasing();
	init_file_chart_column();
	init_file_chart_line();
	init_file_chart_pie();
	init_file_check_corner();
	init_file_check();
	init_file_clock();
	init_file_code();
	init_file_code_corner();
	init_file_cog();
	init_file_diff();
	init_file_digit();
	init_file_down();
	init_file_exclamation_point();
	init_file_headphone();
	init_file_heart();
	init_file_image();
	init_file_input();
	init_file_key();
	init_file_lock();
	init_file_minus_corner();
	init_file_minus();
	init_file_music();
	init_file_output();
	init_file_pen_line();
	init_file_pen();
	init_file_play();
	init_file_plus_corner();
	init_file_plus();
	init_file_question_mark();
	init_file_scan();
	init_file_search_corner();
	init_file_search();
	init_file_signal();
	init_file_sliders();
	init_file_spreadsheet();
	init_file_stack();
	init_file_symlink();
	init_file_terminal();
	init_file_text();
	init_file_type_corner();
	init_file_type();
	init_file_up();
	init_file_user();
	init_file_video_camera();
	init_file_volume();
	init_file_x_corner();
	init_file_x();
	init_file();
	init_files();
	init_film();
	init_fingerprint_pattern();
	init_fire_extinguisher();
	init_fish_off();
	init_fish_symbol();
	init_fish();
	init_flag_off();
	init_flag_triangle_left();
	init_flag_triangle_right();
	init_flag();
	init_flame_kindling();
	init_flame();
	init_flashlight_off();
	init_flashlight();
	init_flask_conical_off();
	init_flask_conical();
	init_flask_round();
	init_flip_horizontal_2();
	init_flip_horizontal();
	init_flip_vertical_2();
	init_flip_vertical();
	init_flower_2();
	init_flower();
	init_focus();
	init_fold_horizontal();
	init_fold_vertical();
	init_folder_archive();
	init_folder_check();
	init_folder_clock();
	init_folder_closed();
	init_folder_code();
	init_folder_cog();
	init_folder_dot();
	init_folder_down();
	init_folder_git_2();
	init_folder_git();
	init_folder_heart();
	init_folder_input();
	init_folder_kanban();
	init_folder_key();
	init_folder_lock();
	init_folder_minus();
	init_folder_open_dot();
	init_folder_open();
	init_folder_output();
	init_folder_pen();
	init_folder_plus();
	init_folder_root();
	init_folder_search_2();
	init_folder_search();
	init_folder_symlink();
	init_folder_sync();
	init_folder_tree();
	init_folder_up();
	init_folder_x();
	init_folder();
	init_folders();
	init_footprints();
	init_forklift();
	init_form();
	init_forward();
	init_frame();
	init_framer();
	init_frown();
	init_fuel();
	init_fullscreen();
	init_funnel_plus();
	init_funnel_x();
	init_funnel();
	init_gallery_horizontal_end();
	init_gallery_horizontal();
	init_gallery_thumbnails();
	init_gallery_vertical_end();
	init_gallery_vertical();
	init_gamepad_2();
	init_gamepad_directional();
	init_gamepad();
	init_gauge();
	init_gavel();
	init_gem();
	init_georgian_lari();
	init_ghost();
	init_gift();
	init_git_branch_minus();
	init_git_branch_plus();
	init_git_branch();
	init_git_commit_horizontal();
	init_git_commit_vertical();
	init_git_compare_arrows();
	init_git_compare();
	init_git_fork();
	init_git_graph();
	init_git_merge();
	init_git_pull_request_arrow();
	init_git_pull_request_closed();
	init_git_pull_request_create_arrow();
	init_git_pull_request_create();
	init_git_pull_request_draft();
	init_gitlab();
	init_git_pull_request();
	init_glass_water();
	init_github();
	init_glasses();
	init_globe_lock();
	init_globe();
	init_goal();
	init_gpu();
	init_graduation_cap();
	init_grape();
	init_grid_2x2_check();
	init_grid_2x2_plus();
	init_grid_2x2_x();
	init_grid_2x2();
	init_grid_3x2();
	init_grid_3x3();
	init_grip_horizontal();
	init_grip_vertical();
	init_grip();
	init_group();
	init_guitar();
	init_ham();
	init_hamburger();
	init_hammer();
	init_hand_fist();
	init_hand_coins();
	init_hand_grab();
	init_hand_heart();
	init_hand_helping();
	init_hand_metal();
	init_hand_platter();
	init_hand();
	init_handbag();
	init_handshake();
	init_hard_drive_download();
	init_hard_drive_upload();
	init_hard_drive();
	init_hard_hat();
	init_hash();
	init_hat_glasses();
	init_hdmi_port();
	init_haze();
	init_heading_1();
	init_heading_2();
	init_heading_3();
	init_heading_4();
	init_heading_6();
	init_heading_5();
	init_heading();
	init_headphone_off();
	init_headphones();
	init_headset();
	init_heart_crack();
	init_heart_handshake();
	init_heart_minus();
	init_heart_off();
	init_heart_plus();
	init_heart_pulse();
	init_heart();
	init_heater();
	init_helicopter();
	init_hexagon();
	init_highlighter();
	init_history();
	init_hop_off();
	init_hop();
	init_hospital();
	init_hotel();
	init_hourglass();
	init_house_plug();
	init_house_heart();
	init_house_plus();
	init_house_wifi();
	init_house();
	init_ice_cream_bowl();
	init_ice_cream_cone();
	init_id_card_lanyard();
	init_id_card();
	init_image_down();
	init_image_minus();
	init_image_off();
	init_image_play();
	init_image_plus();
	init_image_up();
	init_image_upscale();
	init_image();
	init_images();
	init_import();
	init_inbox();
	init_indian_rupee();
	init_infinity();
	init_info();
	init_inspection_panel();
	init_instagram();
	init_italic();
	init_iteration_ccw();
	init_iteration_cw();
	init_japanese_yen();
	init_joystick();
	init_kanban();
	init_kayak();
	init_key_round();
	init_key_square();
	init_key();
	init_keyboard_music();
	init_keyboard_off();
	init_keyboard();
	init_lamp_ceiling();
	init_lamp_desk();
	init_lamp_floor();
	init_lamp_wall_down();
	init_lamp_wall_up();
	init_land_plot();
	init_lamp();
	init_landmark();
	init_languages();
	init_laptop_minimal_check();
	init_laptop_minimal();
	init_laptop();
	init_lasso();
	init_lasso_select();
	init_laugh();
	init_layers_2();
	init_layers();
	init_layout_dashboard();
	init_layout_grid();
	init_layout_list();
	init_layout_panel_left();
	init_layout_panel_top();
	init_layout_template();
	init_leaf();
	init_leafy_green();
	init_lectern();
	init_library_big();
	init_library();
	init_life_buoy();
	init_ligature();
	init_lightbulb_off();
	init_lightbulb();
	init_line_squiggle();
	init_link_2_off();
	init_link_2();
	init_link();
	init_linkedin();
	init_list_check();
	init_list_checks();
	init_list_chevrons_down_up();
	init_list_chevrons_up_down();
	init_list_collapse();
	init_list_end();
	init_list_filter_plus();
	init_list_filter();
	init_list_indent_decrease();
	init_list_indent_increase();
	init_list_minus();
	init_list_music();
	init_list_ordered();
	init_list_plus();
	init_list_restart();
	init_list_start();
	init_list_todo();
	init_list_tree();
	init_list_video();
	init_list_x();
	init_list();
	init_loader_circle();
	init_loader_pinwheel();
	init_loader();
	init_locate_off();
	init_locate_fixed();
	init_locate();
	init_lock_keyhole_open();
	init_lock_keyhole();
	init_lock_open();
	init_lock();
	init_log_out();
	init_log_in();
	init_logs();
	init_lollipop();
	init_luggage();
	init_magnet();
	init_mail_check();
	init_mail_minus();
	init_mail_open();
	init_mail_plus();
	init_mail_question_mark();
	init_mail_search();
	init_mail_warning();
	init_mail_x();
	init_mail();
	init_mailbox();
	init_mails();
	init_map_minus();
	init_map_pin_check_inside();
	init_map_pin_check();
	init_map_pin_house();
	init_map_pin_minus_inside();
	init_map_pin_minus();
	init_map_pin_off();
	init_map_pin_pen();
	init_map_pin_plus_inside();
	init_map_pin_x_inside();
	init_map_pin_plus();
	init_map_pin_x();
	init_map_pin();
	init_map_pinned();
	init_map_plus();
	init_map();
	init_mars();
	init_mars_stroke();
	init_martini();
	init_maximize_2();
	init_maximize();
	init_medal();
	init_megaphone_off();
	init_megaphone();
	init_meh();
	init_memory_stick();
	init_menu();
	init_merge();
	init_message_circle_code();
	init_message_circle_dashed();
	init_message_circle_heart();
	init_message_circle_more();
	init_message_circle_off();
	init_message_circle_plus();
	init_message_circle_question_mark();
	init_message_circle_reply();
	init_message_circle_warning();
	init_message_circle_x();
	init_message_circle();
	init_message_square_code();
	init_message_square_dashed();
	init_message_square_diff();
	init_message_square_dot();
	init_message_square_heart();
	init_message_square_lock();
	init_message_square_more();
	init_message_square_off();
	init_message_square_plus();
	init_message_square_quote();
	init_message_square_reply();
	init_message_square_share();
	init_message_square_text();
	init_message_square_warning();
	init_message_square_x();
	init_message_square();
	init_messages_square();
	init_mic_off();
	init_mic_vocal();
	init_mic();
	init_microchip();
	init_microscope();
	init_milestone();
	init_microwave();
	init_milk_off();
	init_milk();
	init_minimize_2();
	init_minimize();
	init_minus();
	init_monitor_check();
	init_monitor_cloud();
	init_monitor_cog();
	init_monitor_dot();
	init_monitor_down();
	init_monitor_off();
	init_monitor_pause();
	init_monitor_play();
	init_monitor_smartphone();
	init_monitor_speaker();
	init_monitor_stop();
	init_monitor_up();
	init_monitor_x();
	init_monitor();
	init_moon_star();
	init_moon();
	init_motorbike();
	init_mountain_snow();
	init_mountain();
	init_mouse_off();
	init_mouse_pointer_2_off();
	init_mouse_pointer_2();
	init_mouse_pointer_ban();
	init_mouse_pointer_click();
	init_mouse_pointer();
	init_mouse();
	init_move_diagonal();
	init_move_diagonal_2();
	init_move_3d();
	init_move_down_left();
	init_move_down_right();
	init_move_down();
	init_move_left();
	init_move_horizontal();
	init_move_right();
	init_move_up_left();
	init_move_up_right();
	init_move_up();
	init_move_vertical();
	init_move();
	init_music_2();
	init_music_3();
	init_music_4();
	init_music();
	init_navigation_2();
	init_navigation_2_off();
	init_navigation_off();
	init_navigation();
	init_network();
	init_newspaper();
	init_nfc();
	init_non_binary();
	init_notebook_pen();
	init_notebook_tabs();
	init_notebook_text();
	init_notebook();
	init_notepad_text_dashed();
	init_nut_off();
	init_notepad_text();
	init_nut();
	init_octagon_alert();
	init_octagon_minus();
	init_octagon_pause();
	init_octagon_x();
	init_octagon();
	init_omega();
	init_option();
	init_orbit();
	init_origami();
	init_package_2();
	init_package_check();
	init_package_minus();
	init_package_open();
	init_package_plus();
	init_package_search();
	init_package_x();
	init_package();
	init_paint_bucket();
	init_paint_roller();
	init_paintbrush_vertical();
	init_paintbrush();
	init_palette();
	init_panda();
	init_panel_bottom_close();
	init_panel_bottom_dashed();
	init_panel_bottom();
	init_panel_bottom_open();
	init_panel_left_close();
	init_panel_left_dashed();
	init_panel_left_open();
	init_panel_left_right_dashed();
	init_panel_left();
	init_panel_right_close();
	init_panel_right_open();
	init_panel_right_dashed();
	init_panel_top_bottom_dashed();
	init_panel_right();
	init_panel_top_close();
	init_panel_top_dashed();
	init_panel_top_open();
	init_panel_top();
	init_panels_left_bottom();
	init_panels_right_bottom();
	init_panels_top_left();
	init_paperclip();
	init_parentheses();
	init_parking_meter();
	init_party_popper();
	init_pause();
	init_paw_print();
	init_pc_case();
	init_pen_line();
	init_pen_off();
	init_pen_tool();
	init_pen();
	init_pencil_line();
	init_pencil_off();
	init_pencil_ruler();
	init_pencil();
	init_pentagon();
	init_percent();
	init_person_standing();
	init_philippine_peso();
	init_phone_call();
	init_phone_forwarded();
	init_phone_incoming();
	init_phone_missed();
	init_phone_off();
	init_phone_outgoing();
	init_phone();
	init_pi();
	init_piano();
	init_pickaxe();
	init_picture_in_picture_2();
	init_picture_in_picture();
	init_piggy_bank();
	init_pilcrow_left();
	init_pilcrow();
	init_pilcrow_right();
	init_pill_bottle();
	init_pill();
	init_pin_off();
	init_pin();
	init_pipette();
	init_pizza();
	init_plane_landing();
	init_plane_takeoff();
	init_plane();
	init_play();
	init_plug_2();
	init_plug_zap();
	init_plug();
	init_plus();
	init_pocket_knife();
	init_pocket();
	init_podcast();
	init_pointer_off();
	init_pointer();
	init_popcorn();
	init_popsicle();
	init_pound_sterling();
	init_power_off();
	init_power();
	init_presentation();
	init_printer_check();
	init_projector();
	init_printer();
	init_proportions();
	init_puzzle();
	init_pyramid();
	init_qr_code();
	init_quote();
	init_rabbit();
	init_radar();
	init_radiation();
	init_radical();
	init_radio_receiver();
	init_radio();
	init_radius();
	init_radio_tower();
	init_rail_symbol();
	init_rainbow();
	init_rat();
	init_ratio();
	init_receipt_cent();
	init_receipt_euro();
	init_receipt_indian_rupee();
	init_receipt_japanese_yen();
	init_receipt_pound_sterling();
	init_receipt_russian_ruble();
	init_receipt_swiss_franc();
	init_receipt_text();
	init_receipt_turkish_lira();
	init_receipt();
	init_rectangle_circle();
	init_rectangle_ellipsis();
	init_rectangle_goggles();
	init_rectangle_horizontal();
	init_rectangle_vertical();
	init_recycle();
	init_redo_2();
	init_redo_dot();
	init_redo();
	init_refresh_ccw_dot();
	init_refresh_ccw();
	init_refresh_cw_off();
	init_refresh_cw();
	init_refrigerator();
	init_regex();
	init_remove_formatting();
	init_repeat_1();
	init_repeat_2();
	init_repeat$2();
	init_replace_all();
	init_replace();
	init_reply_all();
	init_reply();
	init_rewind();
	init_ribbon();
	init_rocket();
	init_rocking_chair();
	init_roller_coaster();
	init_rose();
	init_rotate_3d();
	init_rotate_ccw_square();
	init_rotate_ccw_key();
	init_rotate_ccw();
	init_rotate_cw_square();
	init_rotate_cw();
	init_route_off();
	init_route();
	init_rows_2();
	init_router();
	init_rows_3();
	init_rows_4();
	init_rss();
	init_ruler_dimension_line();
	init_ruler();
	init_russian_ruble();
	init_sailboat();
	init_salad();
	init_sandwich();
	init_satellite_dish();
	init_satellite();
	init_saudi_riyal();
	init_save_all();
	init_save_off();
	init_save();
	init_scale_3d();
	init_scale();
	init_scaling();
	init_scan_barcode();
	init_scan_eye();
	init_scan_heart();
	init_scan_face();
	init_scan_qr_code();
	init_scan_line();
	init_scan_search();
	init_scan_text();
	init_scan();
	init_school();
	init_scissors_line_dashed();
	init_scissors();
	init_scooter();
	init_screen_share_off();
	init_screen_share();
	init_scroll_text();
	init_scroll();
	init_search_check();
	init_search_code();
	init_search_slash();
	init_search_x();
	init_search();
	init_section();
	init_send_horizontal();
	init_send_to_back();
	init_send();
	init_separator_horizontal();
	init_separator_vertical();
	init_server_cog();
	init_server_crash();
	init_server_off();
	init_server();
	init_settings_2();
	init_settings();
	init_shapes();
	init_share_2();
	init_share();
	init_sheet();
	init_shell();
	init_shield_ban();
	init_shield_alert();
	init_shield_check();
	init_shield_ellipsis();
	init_shield_half();
	init_shield_minus();
	init_shield_off();
	init_shield_plus();
	init_shield_question_mark();
	init_shield_user();
	init_shield_x();
	init_shield();
	init_ship_wheel();
	init_ship();
	init_shirt();
	init_shopping_bag();
	init_shopping_basket();
	init_shopping_cart();
	init_shovel();
	init_shower_head();
	init_shredder();
	init_shrimp();
	init_shrink();
	init_shrub();
	init_shuffle();
	init_sigma();
	init_signal_high();
	init_signal_low();
	init_signal_medium();
	init_signal_zero();
	init_signal();
	init_signature();
	init_signpost_big();
	init_siren();
	init_skip_back();
	init_signpost();
	init_skip_forward();
	init_skull();
	init_slack();
	init_slash();
	init_slice();
	init_sliders_horizontal();
	init_sliders_vertical();
	init_smartphone_charging();
	init_smartphone_nfc();
	init_smartphone();
	init_smile_plus();
	init_smile();
	init_snail();
	init_snowflake();
	init_soap_dispenser_droplet();
	init_sofa();
	init_solar_panel();
	init_soup();
	init_space();
	init_spade();
	init_sparkles();
	init_speaker();
	init_sparkle();
	init_speech();
	init_spell_check_2();
	init_spell_check();
	init_spline_pointer();
	init_spline();
	init_spool();
	init_split();
	init_spotlight();
	init_spray_can();
	init_sprout();
	init_square_activity();
	init_square_arrow_down_left();
	init_square_arrow_down_right();
	init_square_arrow_down();
	init_square_arrow_left();
	init_square_arrow_out_down_left();
	init_square_arrow_out_down_right();
	init_square_arrow_out_up_left();
	init_square_arrow_out_up_right();
	init_square_arrow_right();
	init_square_arrow_up_left();
	init_square_arrow_up_right();
	init_square_arrow_up();
	init_square_asterisk();
	init_square_bottom_dashed_scissors();
	init_square_check_big();
	init_square_chart_gantt();
	init_square_check();
	init_square_chevron_down();
	init_square_chevron_left();
	init_square_chevron_right();
	init_square_chevron_up();
	init_square_code();
	init_square_dashed_bottom_code();
	init_square_dashed_kanban();
	init_square_dashed_mouse_pointer();
	init_square_dashed_bottom();
	init_square_dashed_top_solid();
	init_square_dashed();
	init_square_divide();
	init_square_dot();
	init_square_function();
	init_square_equal();
	init_square_kanban();
	init_square_library();
	init_square_m();
	init_square_menu();
	init_square_minus();
	init_square_mouse_pointer();
	init_square_parking_off();
	init_square_parking();
	init_square_pause();
	init_square_pen();
	init_square_percent();
	init_square_pi();
	init_square_pilcrow();
	init_square_play();
	init_square_plus();
	init_square_power();
	init_square_radical();
	init_square_round_corner();
	init_square_scissors();
	init_square_sigma();
	init_square_slash();
	init_square_split_horizontal();
	init_square_split_vertical();
	init_square_square();
	init_square_stack();
	init_square_star();
	init_square_stop();
	init_square_terminal();
	init_square_user_round();
	init_square_user();
	init_square_x();
	init_square();
	init_squares_exclude();
	init_squares_subtract();
	init_squares_intersect();
	init_squares_unite();
	init_squircle_dashed();
	init_squirrel();
	init_squircle();
	init_stamp();
	init_star_half();
	init_star_off();
	init_star();
	init_step_back();
	init_step_forward();
	init_stethoscope();
	init_sticker();
	init_sticky_note();
	init_stretch_horizontal();
	init_store$1();
	init_stretch_vertical();
	init_strikethrough();
	init_subscript();
	init_sun_medium();
	init_sun_dim();
	init_sun_snow();
	init_sun_moon();
	init_sun();
	init_sunrise();
	init_sunset();
	init_superscript();
	init_swatch_book();
	init_swiss_franc();
	init_switch_camera();
	init_sword();
	init_swords();
	init_syringe();
	init_table_2();
	init_table_cells_merge();
	init_table_cells_split();
	init_table_columns_split();
	init_table_of_contents();
	init_table_properties();
	init_table_rows_split();
	init_table();
	init_tablet_smartphone();
	init_tablet();
	init_tablets();
	init_tag();
	init_tags();
	init_tally_1();
	init_tally_2();
	init_tally_3();
	init_tally_4();
	init_tally_5();
	init_tangent();
	init_target();
	init_telescope();
	init_tent_tree();
	init_tent();
	init_terminal();
	init_test_tube_diagonal();
	init_test_tube();
	init_test_tubes();
	init_text_align_center();
	init_text_align_end();
	init_text_align_justify();
	init_text_align_start();
	init_text_cursor_input();
	init_text_cursor();
	init_text_initial();
	init_text_quote();
	init_text_search();
	init_text_select();
	init_text_wrap();
	init_theater();
	init_thermometer_snowflake();
	init_thermometer_sun();
	init_thermometer();
	init_thumbs_down();
	init_thumbs_up();
	init_ticket_check();
	init_ticket_minus();
	init_ticket_percent();
	init_ticket_plus();
	init_ticket_slash();
	init_ticket_x();
	init_ticket();
	init_tickets_plane();
	init_tickets();
	init_timer_off();
	init_timer_reset();
	init_timer();
	init_toggle_left();
	init_toggle_right();
	init_toilet();
	init_tool_case();
	init_tornado();
	init_touchpad_off();
	init_torus();
	init_touchpad();
	init_tower_control();
	init_toy_brick();
	init_tractor();
	init_traffic_cone();
	init_train_front_tunnel();
	init_train_front();
	init_train_track();
	init_tram_front();
	init_transgender();
	init_trash_2();
	init_trash();
	init_tree_deciduous();
	init_tree_palm();
	init_tree_pine();
	init_trees();
	init_trello();
	init_trending_down();
	init_trending_up_down();
	init_trending_up();
	init_triangle_alert();
	init_triangle_dashed();
	init_triangle_right();
	init_trophy();
	init_triangle();
	init_truck_electric();
	init_truck();
	init_turkish_lira();
	init_turntable();
	init_turtle();
	init_tv_minimal_play();
	init_tv_minimal();
	init_tv();
	init_twitch();
	init_twitter();
	init_type_outline();
	init_type$6();
	init_umbrella_off();
	init_umbrella();
	init_underline();
	init_undo_2();
	init_undo_dot();
	init_undo();
	init_unfold_horizontal();
	init_unfold_vertical();
	init_ungroup();
	init_university();
	init_unlink_2();
	init_unlink();
	init_upload();
	init_unplug();
	init_usb();
	init_user_cog();
	init_user_check();
	init_user_lock();
	init_user_minus();
	init_user_pen();
	init_user_plus();
	init_user_round_check();
	init_user_round_cog();
	init_user_round_minus();
	init_user_round_pen();
	init_user_round_plus();
	init_user_round_search();
	init_user_round_x();
	init_user_round();
	init_user_search();
	init_user_star();
	init_user_x();
	init_user();
	init_users_round();
	init_users();
	init_utensils_crossed();
	init_utensils();
	init_utility_pole();
	init_van();
	init_vault();
	init_variable();
	init_vector_square();
	init_vegan();
	init_venetian_mask();
	init_venus_and_mars();
	init_venus();
	init_vibrate_off();
	init_vibrate();
	init_video_off();
	init_video();
	init_videotape();
	init_view();
	init_volleyball();
	init_voicemail();
	init_volume_1();
	init_volume_2();
	init_volume_off();
	init_volume_x();
	init_volume();
	init_vote();
	init_wallet_cards();
	init_wallet_minimal();
	init_wallet();
	init_wallpaper();
	init_wand_sparkles();
	init_wand();
	init_warehouse();
	init_washing_machine();
	init_watch();
	init_waves_arrow_down();
	init_waves_arrow_up();
	init_waves_ladder();
	init_waves();
	init_waypoints();
	init_webcam();
	init_webhook_off();
	init_webhook();
	init_weight_tilde();
	init_weight();
	init_wheat_off();
	init_wheat();
	init_whole_word();
	init_wifi_cog();
	init_wifi_high();
	init_wifi_low();
	init_wifi_off();
	init_wifi_pen();
	init_wifi_sync();
	init_wifi_zero();
	init_wifi();
	init_wind_arrow_down();
	init_wind();
	init_wine_off();
	init_wine();
	init_workflow();
	init_worm();
	init_wrench();
	init_youtube();
	init_x();
	init_zap_off();
	init_zap();
	init_zoom_in();
	init_zoom_out();
	createIcons = ({ icons = {}, nameAttr = "data-lucide", attrs = {}, root = document, inTemplates } = {}) => {
		if (!Object.values(icons).length) {
			throw new Error("Please provide an icons object.\nIf you want to use all the icons you can import it like:\n `import { createIcons, icons } from 'lucide';\nlucide.createIcons({icons});`");
		}
		if (typeof root === "undefined") {
			throw new Error("`createIcons()` only works in a browser environment.");
		}
		const elementsToReplace = Array.from(root.querySelectorAll(`[${nameAttr}]`));
		elementsToReplace.forEach((element) => replaceElement(element, {
			nameAttr,
			icons,
			attrs
		}));
		if (inTemplates) {
			const templates = Array.from(root.querySelectorAll("template"));
			templates.forEach((template) => createIcons({
				icons,
				nameAttr,
				attrs,
				root: template.content,
				inTemplates
			}));
		}
		if (nameAttr === "data-lucide") {
			const deprecatedElements = root.querySelectorAll("[icon-name]");
			if (deprecatedElements.length > 0) {
				console.warn("[Lucide] Some icons were found with the now deprecated icon-name attribute. These will still be replaced for backwards compatibility, but will no longer be supported in v1.0 and you should switch to data-lucide");
				Array.from(deprecatedElements).forEach((element) => replaceElement(element, {
					nameAttr: "icon-name",
					icons,
					attrs
				}));
			}
		}
	};
}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/dist/icons.js
function icon(lucideIcon, size = "md", className) {
	return x`${o(iconDOM(lucideIcon, size, className).outerHTML)}`;
}
function iconDOM(lucideIcon, size = "md", className) {
	const element = createElement(lucideIcon, { class: sizeClasses[size] + (className ? " " + className : "") });
	return element;
}
var sizeClasses;
var init_icons = __esmMin((() => {
	init_lit();
	init_unsafe_html();
	init_lucide();
	sizeClasses = {
		xs: "w-3 h-3",
		sm: "w-4 h-4",
		md: "w-5 h-5",
		lg: "w-6 h-6",
		xl: "w-8 h-8"
	};
}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/dist/index.js
var init_dist = __esmMin((() => {
	init_component$1();
	init_i18n$1();
	init_icons();
}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/dist/Button.js
var Button;
var init_Button = __esmMin((() => {
	init_mini();
	Button = fc(({ variant = "default", size = "md", disabled = false, type = "button", loading = false, onClick, title, className = "", children }) => {
		const sizeClasses$1 = {
			sm: "h-8 rounded-md px-3 text-xs",
			md: "h-9 rounded-md px-4 text-sm",
			lg: "h-10 rounded-md px-8 text-sm",
			icon: "size-8 rounded-md"
		};
		const variantClasses = {
			default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
			destructive: "bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90",
			outline: "border border-input bg-background text-foreground shadow-xs hover:bg-accent hover:text-accent-foreground",
			secondary: "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
			ghost: "text-foreground hover:bg-accent hover:text-accent-foreground",
			link: "text-primary underline-offset-4 hover:underline"
		};
		const baseClasses = "inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-all cursor-pointer disabled:cursor-not-allowed disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive";
		const gapClass = size === "icon" ? "" : "gap-2";
		const paddingAdjustClass = size === "icon" ? "" : "has-[>svg]:px-2.5";
		const variantClass = variantClasses[variant] || variantClasses.default;
		const handleClick = (e$10) => {
			if (disabled || loading) {
				e$10.preventDefault();
				e$10.stopPropagation();
				return;
			}
			onClick?.(e$10);
		};
		return x`
         <button
            type="${type}"
            class="${baseClasses} ${sizeClasses$1[size]} ${variantClass} ${gapClass} ${paddingAdjustClass} ${className}"
            ?disabled=${disabled || loading}
            @click=${handleClick}
            title="${title || ""}"
         >
            ${loading ? x`
                    <svg class="animate-spin" fill="none" viewBox="0 0 24 24">
                       <circle
                          class="opacity-25"
                          cx="12"
                          cy="12"
                          r="10"
                          stroke="currentColor"
                          stroke-width="4"
                       ></circle>
                       <path
                          class="opacity-75"
                          fill="currentColor"
                          d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
                       ></path>
                    </svg>
                 ` : ""}
            ${children}
         </button>
      `;
	});
}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/dist/Dialog.js
var Dialog, DialogHeader, DialogContent, DialogFooter;
var init_Dialog = __esmMin((() => {
	init_lit();
	init_i18n$1();
	init_mini();
	Dialog = fc(({ isOpen, onClose, children, width = "min(600px, 90vw)", height = "auto", className = "", backdropClassName = "bg-black/50" }) => {
		if (!isOpen) return x``;
		const handleBackdropClick = (e$10) => {
			if (e$10.target === e$10.currentTarget) {
				onClose?.();
			}
		};
		const handleKeyDown = (e$10) => {
			if (e$10.key === "Escape") {
				onClose?.();
			}
		};
		if (isOpen) {
			document.addEventListener("keydown", handleKeyDown);
			setTimeout(() => {
				if (!isOpen) {
					document.removeEventListener("keydown", handleKeyDown);
				}
			}, 0);
		}
		return x`
         <!-- Backdrop -->
         <div class="fixed inset-0 ${backdropClassName} z-40" @click=${handleBackdropClick}>
            <!-- Modal -->
            <div
               class="fixed z-50 bg-background rounded-lg shadow-xl flex flex-col border border-border ${className}"
               style="top: 50%; left: 50%; transform: translate(-50%, -50%); width: ${width}; height: ${height};"
               @click=${(e$10) => e$10.stopPropagation()}
            >
               ${children}

               <!-- Close button - absolutely positioned -->
               <button
                  type="button"
                  @click=${() => onClose?.()}
                  class="absolute top-4 right-4 rounded-sm text-muted-foreground opacity-70 transition-all hover:opacity-100 hover:text-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background disabled:pointer-events-none cursor-pointer"
                  aria-label="${i18n("Close")}"
               >
                  <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                     <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
                  </svg>
               </button>
            </div>
         </div>
      `;
	});
	DialogHeader = fc(({ title, description, className = "" }) => {
		return x`
      <div class="pr-8 ${className}">
         <h2 class="text-lg font-semibold text-foreground${description ? " mb-2" : ""}">${title}</h2>
         ${description ? x`<p class="text-sm text-muted-foreground">${description}</p>` : ""}
      </div>
   `;
	});
	DialogContent = fc(({ children, className = "" }) => {
		return x` <div class="p-6 flex flex-col gap-4 ${className}">${children}</div> `;
	});
	DialogFooter = fc(({ children, className = "" }) => {
		return x` <div class="flex flex-col-reverse gap-2 sm:flex-row sm:justify-end ${className}">${children}</div> `;
	});
}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/dist/DialogBase.js
var DialogBase;
var init_DialogBase = __esmMin((() => {
	init_lit();
	init_Dialog();
	DialogBase = class extends i {
		constructor() {
			super(...arguments);
			this.modalWidth = "min(600px, 90vw)";
			this.modalHeight = "min(600px, 80vh)";
		}
		createRenderRoot() {
			return this;
		}
		open() {
			this.previousFocus = document.activeElement;
			document.body.appendChild(this);
			this.boundHandleKeyDown = (e$10) => {
				if (e$10.key === "Escape") {
					this.close();
				}
			};
			window.addEventListener("keydown", this.boundHandleKeyDown);
		}
		close() {
			if (this.boundHandleKeyDown) {
				window.removeEventListener("keydown", this.boundHandleKeyDown);
			}
			this.remove();
			if (this.previousFocus?.focus) {
				requestAnimationFrame(() => {
					this.previousFocus?.focus();
				});
			}
		}
		render() {
			return Dialog({
				isOpen: true,
				onClose: () => this.close(),
				width: this.modalWidth,
				height: this.modalHeight,
				backdropClassName: "bg-black/50 backdrop-blur-sm",
				children: this.renderContent()
			});
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/utils/i18n.js
var translations;
var init_i18n = __esmMin((() => {
	init_dist();
	init_i18n$1();
	translations = {
		en: {
			...defaultEnglish,
			Free: "Free",
			"Input Required": "Input Required",
			Cancel: "Cancel",
			Confirm: "Confirm",
			"Select Model": "Select Model",
			"Search models...": "Search models...",
			Format: "Format",
			Thinking: "Thinking",
			Vision: "Vision",
			You: "You",
			Assistant: "Assistant",
			"Thinking...": "Thinking...",
			"Type your message...": "Type your message...",
			"API Keys Configuration": "API Keys Configuration",
			"Configure API keys for LLM providers. Keys are stored locally in your browser.": "Configure API keys for LLM providers. Keys are stored locally in your browser.",
			Configured: "Configured",
			"Not configured": "Not configured",
			"✓ Valid": "✓ Valid",
			"✗ Invalid": "✗ Invalid",
			"Testing...": "Testing...",
			Update: "Update",
			Test: "Test",
			Remove: "Remove",
			Save: "Save",
			"Update API key": "Update API key",
			"Enter API key": "Enter API key",
			"Type a message...": "Type a message...",
			"Failed to fetch file": "Failed to fetch file",
			"Invalid source type": "Invalid source type",
			PDF: "PDF",
			Document: "Document",
			Presentation: "Presentation",
			Spreadsheet: "Spreadsheet",
			Text: "Text",
			"Error loading file": "Error loading file",
			"No text content available": "No text content available",
			"Failed to load PDF": "Failed to load PDF",
			"Failed to load document": "Failed to load document",
			"Failed to load spreadsheet": "Failed to load spreadsheet",
			"Error loading PDF": "Error loading PDF",
			"Error loading document": "Error loading document",
			"Error loading spreadsheet": "Error loading spreadsheet",
			"Preview not available for this file type.": "Preview not available for this file type.",
			"Click the download button above to view it on your computer.": "Click the download button above to view it on your computer.",
			"No content available": "No content available",
			"Failed to display text content": "Failed to display text content",
			"API keys are required to use AI models. Get your keys from the provider's website.": "API keys are required to use AI models. Get your keys from the provider's website.",
			console: "console",
			"Copy output": "Copy output",
			"Copied!": "Copied!",
			"Error:": "Error:",
			"Request aborted": "Request aborted",
			Call: "Call",
			Result: "Result",
			"(no result)": "(no result)",
			"Waiting for tool result…": "Waiting for tool result…",
			"Call was aborted; no result.": "Call was aborted; no result.",
			"No session available": "No session available",
			"No session set": "No session set",
			"Preparing tool parameters...": "Preparing tool parameters...",
			"(no output)": "(no output)",
			Input: "Input",
			Output: "Output",
			"Waiting for expression...": "Waiting for expression...",
			"Writing expression...": "Writing expression...",
			Calculating: "Calculating",
			"Getting current time in": "Getting current time in",
			"Getting current date and time": "Getting current date and time",
			"Waiting for command...": "Waiting for command...",
			"Writing command...": "Writing command...",
			"Running command...": "Running command...",
			"Command failed": "Command failed",
			"Enter Auth Token": "Enter Auth Token",
			"Please enter your auth token.": "Please enter your auth token.",
			"Auth token is required for proxy transport": "Auth token is required for proxy transport",
			"Execution aborted": "Execution aborted",
			"Code parameter is required": "Code parameter is required",
			"Unknown error": "Unknown error",
			"Code executed successfully (no output)": "Code executed successfully (no output)",
			"Execution failed": "Execution failed",
			"JavaScript REPL": "JavaScript REPL",
			"JavaScript code to execute": "JavaScript code to execute",
			"Writing JavaScript code...": "Writing JavaScript code...",
			"Executing JavaScript": "Executing JavaScript",
			"Preparing JavaScript...": "Preparing JavaScript...",
			"Preparing command...": "Preparing command...",
			"Preparing calculation...": "Preparing calculation...",
			"Preparing tool...": "Preparing tool...",
			"Getting time...": "Getting time...",
			"Processing artifact...": "Processing artifact...",
			"Preparing artifact...": "Preparing artifact...",
			"Processing artifact": "Processing artifact",
			"Processed artifact": "Processed artifact",
			"Creating artifact": "Creating artifact",
			"Created artifact": "Created artifact",
			"Updating artifact": "Updating artifact",
			"Updated artifact": "Updated artifact",
			"Rewriting artifact": "Rewriting artifact",
			"Rewrote artifact": "Rewrote artifact",
			"Getting artifact": "Getting artifact",
			"Got artifact": "Got artifact",
			"Deleting artifact": "Deleting artifact",
			"Deleted artifact": "Deleted artifact",
			"Getting logs": "Getting logs",
			"Got logs": "Got logs",
			"An error occurred": "An error occurred",
			"Copy logs": "Copy logs",
			"Autoscroll enabled": "Autoscroll enabled",
			"Autoscroll disabled": "Autoscroll disabled",
			Processing: "Processing",
			Create: "Create",
			Rewrite: "Rewrite",
			Get: "Get",
			"Get logs": "Get logs",
			"Show artifacts": "Show artifacts",
			"Close artifacts": "Close artifacts",
			Artifacts: "Artifacts",
			"Copy HTML": "Copy HTML",
			"Download HTML": "Download HTML",
			"Reload HTML": "Reload HTML",
			"Copy SVG": "Copy SVG",
			"Download SVG": "Download SVG",
			"Copy Markdown": "Copy Markdown",
			"Download Markdown": "Download Markdown",
			Download: "Download",
			"No logs for {filename}": "No logs for {filename}",
			"API Keys Settings": "API Keys Settings",
			Settings: "Settings",
			"API Keys": "API Keys",
			Proxy: "Proxy",
			"Use CORS Proxy": "Use CORS Proxy",
			"Proxy URL": "Proxy URL",
			"Format: The proxy must accept requests as <proxy-url>/?url=<target-url>": "Format: The proxy must accept requests as <proxy-url>/?url=<target-url>",
			"Settings are stored locally in your browser": "Settings are stored locally in your browser",
			Clear: "Clear",
			"API Key Required": "API Key Required",
			"Enter your API key for {provider}": "Enter your API key for {provider}",
			"Allows browser-based apps to bypass CORS restrictions when calling LLM providers. Required for Z-AI and Anthropic with OAuth token.": "Allows browser-based apps to bypass CORS restrictions when calling LLM providers. Required for Z-AI and Anthropic with OAuth token.",
			Off: "Off",
			Minimal: "Minimal",
			Low: "Low",
			Medium: "Medium",
			High: "High",
			"Storage Permission Required": "Storage Permission Required",
			"This app needs persistent storage to save your conversations": "This app needs persistent storage to save your conversations",
			"Why is this needed?": "Why is this needed?",
			"Without persistent storage, your browser may delete saved conversations when it needs disk space. Granting this permission ensures your chat history is preserved.": "Without persistent storage, your browser may delete saved conversations when it needs disk space. Granting this permission ensures your chat history is preserved.",
			"What this means:": "What this means:",
			"Your conversations will be saved locally in your browser": "Your conversations will be saved locally in your browser",
			"Data will not be deleted automatically to free up space": "Data will not be deleted automatically to free up space",
			"You can still manually clear data at any time": "You can still manually clear data at any time",
			"No data is sent to external servers": "No data is sent to external servers",
			"Continue Anyway": "Continue Anyway",
			"Requesting...": "Requesting...",
			"Grant Permission": "Grant Permission",
			Sessions: "Sessions",
			"Load a previous conversation": "Load a previous conversation",
			"No sessions yet": "No sessions yet",
			"Delete this session?": "Delete this session?",
			Today: "Today",
			Yesterday: "Yesterday",
			"{days} days ago": "{days} days ago",
			messages: "messages",
			tokens: "tokens",
			Delete: "Delete",
			"Drop files here": "Drop files here",
			"Command failed:": "Command failed:",
			"Providers & Models": "Providers & Models",
			"Cloud Providers": "Cloud Providers",
			"Cloud LLM providers with predefined models. API keys are stored locally in your browser.": "Cloud LLM providers with predefined models. API keys are stored locally in your browser.",
			"Custom Providers": "Custom Providers",
			"User-configured servers with auto-discovered or manually defined models.": "User-configured servers with auto-discovered or manually defined models.",
			"Add Provider": "Add Provider",
			"No custom providers configured. Click 'Add Provider' to get started.": "No custom providers configured. Click 'Add Provider' to get started.",
			"auto-discovered": "auto-discovered",
			Refresh: "Refresh",
			Edit: "Edit",
			"Are you sure you want to delete this provider?": "Are you sure you want to delete this provider?",
			"Edit Provider": "Edit Provider",
			"Provider Name": "Provider Name",
			"e.g., My Ollama Server": "e.g., My Ollama Server",
			"Provider Type": "Provider Type",
			"Base URL": "Base URL",
			"e.g., http://localhost:11434": "e.g., http://localhost:11434",
			"API Key (Optional)": "API Key (Optional)",
			"Leave empty if not required": "Leave empty if not required",
			"Test Connection": "Test Connection",
			Discovered: "Discovered",
			Models: "Models",
			models: "models",
			and: "and",
			more: "more",
			"For manual provider types, add models after saving the provider.": "For manual provider types, add models after saving the provider.",
			"Please fill in all required fields": "Please fill in all required fields",
			"Failed to save provider": "Failed to save provider",
			"OpenAI Completions Compatible": "OpenAI Completions Compatible",
			"OpenAI Responses Compatible": "OpenAI Responses Compatible",
			"Anthropic Messages Compatible": "Anthropic Messages Compatible",
			"Checking...": "Checking...",
			Disconnected: "Disconnected"
		},
		de: {
			...defaultGerman,
			Free: "Kostenlos",
			"Input Required": "Eingabe erforderlich",
			Cancel: "Abbrechen",
			Confirm: "Bestätigen",
			"Select Model": "Modell auswählen",
			"Search models...": "Modelle suchen...",
			Format: "Formatieren",
			Thinking: "Thinking",
			Vision: "Vision",
			You: "Sie",
			Assistant: "Assistent",
			"Thinking...": "Denkt nach...",
			"Type your message...": "Geben Sie Ihre Nachricht ein...",
			"API Keys Configuration": "API-Schlüssel-Konfiguration",
			"Configure API keys for LLM providers. Keys are stored locally in your browser.": "Konfigurieren Sie API-Schlüssel für LLM-Anbieter. Schlüssel werden lokal in Ihrem Browser gespeichert.",
			Configured: "Konfiguriert",
			"Not configured": "Nicht konfiguriert",
			"✓ Valid": "✓ Gültig",
			"✗ Invalid": "✗ Ungültig",
			"Testing...": "Teste...",
			Update: "Aktualisieren",
			Test: "Testen",
			Remove: "Entfernen",
			Save: "Speichern",
			"Update API key": "API-Schlüssel aktualisieren",
			"Enter API key": "API-Schlüssel eingeben",
			"Type a message...": "Nachricht eingeben...",
			"Failed to fetch file": "Datei konnte nicht abgerufen werden",
			"Invalid source type": "Ungültiger Quellentyp",
			PDF: "PDF",
			Document: "Dokument",
			Presentation: "Präsentation",
			Spreadsheet: "Tabelle",
			Text: "Text",
			"Error loading file": "Fehler beim Laden der Datei",
			"No text content available": "Kein Textinhalt verfügbar",
			"Failed to load PDF": "PDF konnte nicht geladen werden",
			"Failed to load document": "Dokument konnte nicht geladen werden",
			"Failed to load spreadsheet": "Tabelle konnte nicht geladen werden",
			"Error loading PDF": "Fehler beim Laden des PDFs",
			"Error loading document": "Fehler beim Laden des Dokuments",
			"Error loading spreadsheet": "Fehler beim Laden der Tabelle",
			"Preview not available for this file type.": "Vorschau für diesen Dateityp nicht verfügbar.",
			"Click the download button above to view it on your computer.": "Klicken Sie oben auf die Download-Schaltfläche, um die Datei auf Ihrem Computer anzuzeigen.",
			"No content available": "Kein Inhalt verfügbar",
			"Failed to display text content": "Textinhalt konnte nicht angezeigt werden",
			"API keys are required to use AI models. Get your keys from the provider's website.": "API-Schlüssel sind erforderlich, um KI-Modelle zu verwenden. Holen Sie sich Ihre Schlüssel von der Website des Anbieters.",
			console: "Konsole",
			"Copy output": "Ausgabe kopieren",
			"Copied!": "Kopiert!",
			"Error:": "Fehler:",
			"Request aborted": "Anfrage abgebrochen",
			Call: "Aufruf",
			Result: "Ergebnis",
			"(no result)": "(kein Ergebnis)",
			"Waiting for tool result…": "Warte auf Tool-Ergebnis…",
			"Call was aborted; no result.": "Aufruf wurde abgebrochen; kein Ergebnis.",
			"No session available": "Keine Sitzung verfügbar",
			"No session set": "Keine Sitzung gesetzt",
			"Preparing tool parameters...": "Bereite Tool-Parameter vor...",
			"(no output)": "(keine Ausgabe)",
			Input: "Eingabe",
			Output: "Ausgabe",
			"Waiting for expression...": "Warte auf Ausdruck",
			"Writing expression...": "Schreibe Ausdruck...",
			Calculating: "Berechne",
			"Getting current time in": "Hole aktuelle Zeit in",
			"Getting current date and time": "Hole aktuelles Datum und Uhrzeit",
			"Waiting for command...": "Warte auf Befehl...",
			"Writing command...": "Schreibe Befehl...",
			"Running command...": "Führe Befehl aus...",
			"Command failed": "Befehl fehlgeschlagen",
			"Enter Auth Token": "Auth-Token eingeben",
			"Please enter your auth token.": "Bitte geben Sie Ihr Auth-Token ein.",
			"Auth token is required for proxy transport": "Auth-Token ist für Proxy-Transport erforderlich",
			"Execution aborted": "Ausführung abgebrochen",
			"Code parameter is required": "Code-Parameter ist erforderlich",
			"Unknown error": "Unbekannter Fehler",
			"Code executed successfully (no output)": "Code erfolgreich ausgeführt (keine Ausgabe)",
			"Execution failed": "Ausführung fehlgeschlagen",
			"JavaScript REPL": "JavaScript REPL",
			"JavaScript code to execute": "Auszuführender JavaScript-Code",
			"Writing JavaScript code...": "Schreibe JavaScript-Code...",
			"Executing JavaScript": "Führe JavaScript aus",
			"Preparing JavaScript...": "Bereite JavaScript vor...",
			"Preparing command...": "Bereite Befehl vor...",
			"Preparing calculation...": "Bereite Berechnung vor...",
			"Preparing tool...": "Bereite Tool vor...",
			"Getting time...": "Hole Zeit...",
			"Processing artifact...": "Verarbeite Artefakt...",
			"Preparing artifact...": "Bereite Artefakt vor...",
			"Processing artifact": "Verarbeite Artefakt",
			"Processed artifact": "Artefakt verarbeitet",
			"Creating artifact": "Erstelle Artefakt",
			"Created artifact": "Artefakt erstellt",
			"Updating artifact": "Aktualisiere Artefakt",
			"Updated artifact": "Artefakt aktualisiert",
			"Rewriting artifact": "Überschreibe Artefakt",
			"Rewrote artifact": "Artefakt überschrieben",
			"Getting artifact": "Hole Artefakt",
			"Got artifact": "Artefakt geholt",
			"Deleting artifact": "Lösche Artefakt",
			"Deleted artifact": "Artefakt gelöscht",
			"Getting logs": "Hole Logs",
			"Got logs": "Logs geholt",
			"An error occurred": "Ein Fehler ist aufgetreten",
			"Copy logs": "Logs kopieren",
			"Autoscroll enabled": "Automatisches Scrollen aktiviert",
			"Autoscroll disabled": "Automatisches Scrollen deaktiviert",
			Processing: "Verarbeitung",
			Create: "Erstellen",
			Rewrite: "Überschreiben",
			Get: "Abrufen",
			"Get logs": "Logs abrufen",
			"Show artifacts": "Artefakte anzeigen",
			"Close artifacts": "Artefakte schließen",
			Artifacts: "Artefakte",
			"Copy HTML": "HTML kopieren",
			"Download HTML": "HTML herunterladen",
			"Reload HTML": "HTML neu laden",
			"Copy SVG": "SVG kopieren",
			"Download SVG": "SVG herunterladen",
			"Copy Markdown": "Markdown kopieren",
			"Download Markdown": "Markdown herunterladen",
			Download: "Herunterladen",
			"No logs for {filename}": "Keine Logs für {filename}",
			"API Keys Settings": "API-Schlüssel Einstellungen",
			Settings: "Einstellungen",
			"API Keys": "API-Schlüssel",
			Proxy: "Proxy",
			"Use CORS Proxy": "CORS-Proxy verwenden",
			"Proxy URL": "Proxy-URL",
			"Format: The proxy must accept requests as <proxy-url>/?url=<target-url>": "Format: Der Proxy muss Anfragen als <proxy-url>/?url=<ziel-url> akzeptieren",
			"Settings are stored locally in your browser": "Einstellungen werden lokal in Ihrem Browser gespeichert",
			Clear: "Löschen",
			"API Key Required": "API-Schlüssel erforderlich",
			"Enter your API key for {provider}": "Geben Sie Ihren API-Schlüssel für {provider} ein",
			"Allows browser-based apps to bypass CORS restrictions when calling LLM providers. Required for Z-AI and Anthropic with OAuth token.": "Ermöglicht browserbasierten Anwendungen, CORS-Einschränkungen beim Aufruf von LLM-Anbietern zu umgehen. Erforderlich für Z-AI und Anthropic mit OAuth-Token.",
			Off: "Aus",
			Minimal: "Minimal",
			Low: "Niedrig",
			Medium: "Mittel",
			High: "Hoch",
			"Storage Permission Required": "Speicherberechtigung erforderlich",
			"This app needs persistent storage to save your conversations": "Diese App benötigt dauerhaften Speicher, um Ihre Konversationen zu speichern",
			"Why is this needed?": "Warum wird das benötigt?",
			"Without persistent storage, your browser may delete saved conversations when it needs disk space. Granting this permission ensures your chat history is preserved.": "Ohne dauerhaften Speicher kann Ihr Browser gespeicherte Konversationen löschen, wenn Speicherplatz benötigt wird. Diese Berechtigung stellt sicher, dass Ihr Chatverlauf erhalten bleibt.",
			"What this means:": "Was das bedeutet:",
			"Your conversations will be saved locally in your browser": "Ihre Konversationen werden lokal in Ihrem Browser gespeichert",
			"Data will not be deleted automatically to free up space": "Daten werden nicht automatisch gelöscht, um Speicherplatz freizugeben",
			"You can still manually clear data at any time": "Sie können Daten jederzeit manuell löschen",
			"No data is sent to external servers": "Keine Daten werden an externe Server gesendet",
			"Continue Anyway": "Trotzdem fortfahren",
			"Requesting...": "Anfrage läuft...",
			"Grant Permission": "Berechtigung erteilen",
			Sessions: "Sitzungen",
			"Load a previous conversation": "Frühere Konversation laden",
			"No sessions yet": "Noch keine Sitzungen",
			"Delete this session?": "Diese Sitzung löschen?",
			Today: "Heute",
			Yesterday: "Gestern",
			"{days} days ago": "vor {days} Tagen",
			messages: "Nachrichten",
			tokens: "Tokens",
			Delete: "Löschen",
			"Drop files here": "Dateien hier ablegen",
			"Command failed:": "Befehl fehlgeschlagen:",
			"Providers & Models": "Anbieter & Modelle",
			"Cloud Providers": "Cloud-Anbieter",
			"Cloud LLM providers with predefined models. API keys are stored locally in your browser.": "Cloud-LLM-Anbieter mit vordefinierten Modellen. API-Schlüssel werden lokal in Ihrem Browser gespeichert.",
			"Custom Providers": "Benutzerdefinierte Anbieter",
			"User-configured servers with auto-discovered or manually defined models.": "Benutzerkonfigurierte Server mit automatisch erkannten oder manuell definierten Modellen.",
			"Add Provider": "Anbieter hinzufügen",
			"No custom providers configured. Click 'Add Provider' to get started.": "Keine benutzerdefinierten Anbieter konfiguriert. Klicken Sie auf 'Anbieter hinzufügen', um zu beginnen.",
			"auto-discovered": "automatisch erkannt",
			Refresh: "Aktualisieren",
			Edit: "Bearbeiten",
			"Are you sure you want to delete this provider?": "Sind Sie sicher, dass Sie diesen Anbieter löschen möchten?",
			"Edit Provider": "Anbieter bearbeiten",
			"Provider Name": "Anbietername",
			"e.g., My Ollama Server": "z.B. Mein Ollama Server",
			"Provider Type": "Anbietertyp",
			"Base URL": "Basis-URL",
			"e.g., http://localhost:11434": "z.B. http://localhost:11434",
			"API Key (Optional)": "API-Schlüssel (Optional)",
			"Leave empty if not required": "Leer lassen, falls nicht erforderlich",
			"Test Connection": "Verbindung testen",
			Discovered: "Erkannt",
			Models: "Modelle",
			models: "Modelle",
			and: "und",
			more: "mehr",
			"For manual provider types, add models after saving the provider.": "Für manuelle Anbietertypen fügen Sie Modelle nach dem Speichern des Anbieters hinzu.",
			"Please fill in all required fields": "Bitte füllen Sie alle erforderlichen Felder aus",
			"Failed to save provider": "Fehler beim Speichern des Anbieters",
			"OpenAI Completions Compatible": "OpenAI Completions Kompatibel",
			"OpenAI Responses Compatible": "OpenAI Responses Kompatibel",
			"Anthropic Messages Compatible": "Anthropic Messages Kompatibel",
			"Checking...": "Überprüfe...",
			Disconnected: "Getrennt"
		}
	};
	setTranslations(translations);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/Input.js
var Input;
var init_Input = __esmMin((() => {
	init_mini();
	init_lit();
	init_ref$2();
	init_i18n();
	Input = fc(({ type = "text", size = "md", value = "", placeholder = "", label = "", error: error$2 = "", disabled = false, required = false, name = "", autocomplete = "", min, max, step, inputRef, onInput, onChange, onKeyDown, onKeyUp, className = "" }) => {
		const sizeClasses$1 = {
			sm: "h-8 px-3 py-1 text-sm",
			md: "h-9 px-3 py-1 text-sm md:text-sm",
			lg: "h-10 px-4 py-1 text-base"
		};
		const baseClasses = "flex w-full min-w-0 rounded-md border bg-transparent text-foreground shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium";
		const interactionClasses = "placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground";
		const focusClasses = "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]";
		const darkClasses = "dark:bg-input/30";
		const stateClasses = error$2 ? "border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40" : "border-input";
		const disabledClasses = "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50";
		const handleInput = (e$10) => {
			onInput?.(e$10);
		};
		const handleChange = (e$10) => {
			onChange?.(e$10);
		};
		return x`
			<div class="flex flex-col gap-1.5 ${className}">
				${label ? x`
							<label class="text-sm font-medium text-foreground">
								${label} ${required ? x`<span class="text-destructive">${i18n("*")}</span>` : ""}
							</label>
						` : ""}
				<input
					type="${type}"
					class="${baseClasses} ${sizeClasses$1[size]} ${interactionClasses} ${focusClasses} ${darkClasses} ${stateClasses} ${disabledClasses}"
					.value=${value}
					placeholder="${placeholder}"
					?disabled=${disabled}
					?required=${required}
					?aria-invalid=${!!error$2}
					name="${name}"
					autocomplete="${autocomplete}"
					min="${min ?? ""}"
					max="${max ?? ""}"
					step="${step ?? ""}"
					@input=${handleInput}
					@change=${handleChange}
					@keydown=${onKeyDown}
					@keyup=${onKeyUp}
					${inputRef ? n(inputRef) : ""}
				/>
				${error$2 ? x`<span class="text-sm text-destructive">${error$2}</span>` : ""}
			</div>
		`;
	});
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/storage/app-storage.js
var app_storage_exports = /* @__PURE__ */ __export({
	AppStorage: () => AppStorage,
	getAppStorage: () => getAppStorage,
	setAppStorage: () => setAppStorage
});
/**
* Get the global AppStorage instance.
* Throws if not initialized.
*/
function getAppStorage() {
	if (!globalAppStorage) {
		throw new Error("AppStorage not initialized. Call setAppStorage() first.");
	}
	return globalAppStorage;
}
/**
* Set the global AppStorage instance.
*/
function setAppStorage(storage) {
	globalAppStorage = storage;
}
var AppStorage, globalAppStorage;
var init_app_storage = __esmMin((() => {
	AppStorage = class {
		constructor(settings, providerKeys, sessions, customProviders, backend) {
			this.settings = settings;
			this.providerKeys = providerKeys;
			this.sessions = sessions;
			this.customProviders = customProviders;
			this.backend = backend;
		}
		async getQuotaInfo() {
			return this.backend.getQuotaInfo();
		}
		async requestPersistence() {
			return this.backend.requestPersistence();
		}
	};
	globalAppStorage = null;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/utils/format.js
function formatCost(cost) {
	return `$${cost.toFixed(4)}`;
}
function formatModelCost(cost) {
	if (!cost) return i18n("Free");
	const input = cost.input || 0;
	const output = cost.output || 0;
	if (input === 0 && output === 0) return i18n("Free");
	const formatNum = (num) => {
		if (num >= 100) return num.toFixed(0);
		if (num >= 10) return num.toFixed(1).replace(/\.0$/, "");
		if (num >= 1) return num.toFixed(2).replace(/\.?0+$/, "");
		return num.toFixed(3).replace(/\.?0+$/, "");
	};
	return `$${formatNum(input)}/$${formatNum(output)}`;
}
function formatUsage(usage) {
	if (!usage) return "";
	const parts = [];
	if (usage.input) parts.push(`↑${formatTokenCount(usage.input)}`);
	if (usage.output) parts.push(`↓${formatTokenCount(usage.output)}`);
	if (usage.cacheRead) parts.push(`R${formatTokenCount(usage.cacheRead)}`);
	if (usage.cacheWrite) parts.push(`W${formatTokenCount(usage.cacheWrite)}`);
	if (usage.cost?.total) parts.push(formatCost(usage.cost.total));
	return parts.join(" ");
}
function formatTokenCount(count) {
	if (count < 1e3) return count.toString();
	if (count < 1e4) return (count / 1e3).toFixed(1) + "k";
	return Math.round(count / 1e3) + "k";
}
var init_format$1 = __esmMin((() => {
	init_dist();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/lmstudio-sdk-stub.js
function connect() {
	throw new Error("LM Studio is not available in the embedded web chat bundle.");
}
var LMStudioClient, lmstudio_sdk_stub_default;
var init_lmstudio_sdk_stub = __esmMin((() => {
	LMStudioClient = class {
		constructor() {
			this.system = { async listDownloadedModels() {
				return [];
			} };
		}
	};
	lmstudio_sdk_stub_default = {
		LMStudioClient,
		connect
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/whatwg-fetch-stub.js
var init_whatwg_fetch_stub = __esmMin((() => {}));

//#endregion
//#region node_modules/ollama/dist/browser.mjs
function getPlatform() {
	if (typeof window !== "undefined" && window.navigator) {
		const nav = navigator;
		if ("userAgentData" in nav && nav.userAgentData?.platform) {
			return `${nav.userAgentData.platform.toLowerCase()} Browser/${navigator.userAgent};`;
		}
		if (navigator.platform) {
			return `${navigator.platform.toLowerCase()} Browser/${navigator.userAgent};`;
		}
		return `unknown Browser/${navigator.userAgent};`;
	} else if (typeof process !== "undefined") {
		return `${process.arch} ${process.platform} Node.js/${process.version}`;
	}
	return "";
}
function normalizeHeaders(headers) {
	if (headers instanceof Headers) {
		const obj = {};
		headers.forEach((value, key) => {
			obj[key] = value;
		});
		return obj;
	} else if (Array.isArray(headers)) {
		return Object.fromEntries(headers);
	} else {
		return headers || {};
	}
}
var defaultPort, defaultHost, version$5, __defProp$1, __defNormalProp$1, __publicField$1, ResponseError, AbortableAsyncIterator, checkOk, readEnvVar, fetchWithHeaders, get, post, del, parseJSON, formatHost, __defProp, __defNormalProp, __publicField, Ollama$1, browser;
var init_browser = __esmMin((() => {
	init_whatwg_fetch_stub();
	defaultPort = "11434";
	defaultHost = `http://127.0.0.1:${defaultPort}`;
	version$5 = "0.6.3";
	__defProp$1 = Object.defineProperty;
	__defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, {
		enumerable: true,
		configurable: true,
		writable: true,
		value
	}) : obj[key] = value;
	__publicField$1 = (obj, key, value) => {
		__defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
		return value;
	};
	ResponseError = class ResponseError extends Error {
		constructor(error$2, status_code) {
			super(error$2);
			this.error = error$2;
			this.status_code = status_code;
			this.name = "ResponseError";
			if (Error.captureStackTrace) {
				Error.captureStackTrace(this, ResponseError);
			}
		}
	};
	AbortableAsyncIterator = class {
		constructor(abortController, itr, doneCallback) {
			__publicField$1(this, "abortController");
			__publicField$1(this, "itr");
			__publicField$1(this, "doneCallback");
			this.abortController = abortController;
			this.itr = itr;
			this.doneCallback = doneCallback;
		}
		abort() {
			this.abortController.abort();
		}
		async *[Symbol.asyncIterator]() {
			for await (const message of this.itr) {
				if ("error" in message) {
					throw new Error(message.error);
				}
				yield message;
				if (message.done || message.status === "success") {
					this.doneCallback();
					return;
				}
			}
			throw new Error("Did not receive done or success response in stream.");
		}
	};
	checkOk = async (response) => {
		if (response.ok) {
			return;
		}
		let message = `Error ${response.status}: ${response.statusText}`;
		let errorData = null;
		if (response.headers.get("content-type")?.includes("application/json")) {
			try {
				errorData = await response.json();
				message = errorData.error || message;
			} catch (error$2) {
				console.log("Failed to parse error response as JSON");
			}
		} else {
			try {
				console.log("Getting text from response");
				const textResponse = await response.text();
				message = textResponse || message;
			} catch (error$2) {
				console.log("Failed to get text from error response");
			}
		}
		throw new ResponseError(message, response.status);
	};
	readEnvVar = (obj, key) => {
		return obj[key];
	};
	fetchWithHeaders = async (fetch$1, url, options = {}) => {
		const defaultHeaders = {
			"Content-Type": "application/json",
			Accept: "application/json",
			"User-Agent": `ollama-js/${version$5} (${getPlatform()})`
		};
		options.headers = normalizeHeaders(options.headers);
		try {
			const parsed = new URL(url);
			if (parsed.protocol === "https:" && parsed.hostname === "ollama.com") {
				const apiKey = typeof process === "object" && process !== null && typeof process.env === "object" && process.env !== null ? readEnvVar(process.env, "OLLAMA_API_KEY") : void 0;
				const authorization = options.headers["authorization"] || options.headers["Authorization"];
				if (!authorization && apiKey) {
					options.headers["Authorization"] = `Bearer ${apiKey}`;
				}
			}
		} catch (error$2) {
			console.error("error parsing url", error$2);
		}
		const customHeaders = Object.fromEntries(Object.entries(options.headers).filter(([key]) => !Object.keys(defaultHeaders).some((defaultKey) => defaultKey.toLowerCase() === key.toLowerCase())));
		options.headers = {
			...defaultHeaders,
			...customHeaders
		};
		return fetch$1(url, options);
	};
	get = async (fetch$1, host, options) => {
		const response = await fetchWithHeaders(fetch$1, host, { headers: options?.headers });
		await checkOk(response);
		return response;
	};
	post = async (fetch$1, host, data, options) => {
		const isRecord = (input) => {
			return input !== null && typeof input === "object" && !Array.isArray(input);
		};
		const formattedData = isRecord(data) ? JSON.stringify(data) : data;
		const response = await fetchWithHeaders(fetch$1, host, {
			method: "POST",
			body: formattedData,
			signal: options?.signal,
			headers: options?.headers
		});
		await checkOk(response);
		return response;
	};
	del = async (fetch$1, host, data, options) => {
		const response = await fetchWithHeaders(fetch$1, host, {
			method: "DELETE",
			body: JSON.stringify(data),
			headers: options?.headers
		});
		await checkOk(response);
		return response;
	};
	parseJSON = async function* (itr) {
		const decoder = new TextDecoder("utf-8");
		let buffer = "";
		const reader = itr.getReader();
		while (true) {
			const { done, value: chunk } = await reader.read();
			if (done) {
				break;
			}
			buffer += decoder.decode(chunk, { stream: true });
			const parts = buffer.split("\n");
			buffer = parts.pop() ?? "";
			for (const part of parts) {
				try {
					yield JSON.parse(part);
				} catch (error$2) {
					console.warn("invalid json: ", part);
				}
			}
		}
		buffer += decoder.decode();
		for (const part of buffer.split("\n").filter((p$3) => p$3 !== "")) {
			try {
				yield JSON.parse(part);
			} catch (error$2) {
				console.warn("invalid json: ", part);
			}
		}
	};
	formatHost = (host) => {
		if (!host) {
			return defaultHost;
		}
		let isExplicitProtocol = host.includes("://");
		if (host.startsWith(":")) {
			host = `http://127.0.0.1${host}`;
			isExplicitProtocol = true;
		}
		if (!isExplicitProtocol) {
			host = `http://${host}`;
		}
		const url = new URL(host);
		let port = url.port;
		if (!port) {
			if (!isExplicitProtocol) {
				port = defaultPort;
			} else {
				port = url.protocol === "https:" ? "443" : "80";
			}
		}
		let auth = "";
		if (url.username) {
			auth = url.username;
			if (url.password) {
				auth += `:${url.password}`;
			}
			auth += "@";
		}
		let formattedHost = `${url.protocol}//${auth}${url.hostname}:${port}${url.pathname}`;
		if (formattedHost.endsWith("/")) {
			formattedHost = formattedHost.slice(0, -1);
		}
		return formattedHost;
	};
	__defProp = Object.defineProperty;
	__defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
		enumerable: true,
		configurable: true,
		writable: true,
		value
	}) : obj[key] = value;
	__publicField = (obj, key, value) => {
		__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
		return value;
	};
	Ollama$1 = class Ollama {
		constructor(config) {
			__publicField(this, "config");
			__publicField(this, "fetch");
			__publicField(this, "ongoingStreamedRequests", []);
			this.config = {
				host: "",
				headers: config?.headers
			};
			if (!config?.proxy) {
				this.config.host = formatHost(config?.host ?? defaultHost);
			}
			this.fetch = config?.fetch ?? fetch;
		}
		abort() {
			for (const request of this.ongoingStreamedRequests) {
				request.abort();
			}
			this.ongoingStreamedRequests.length = 0;
		}
		/**
		* Processes a request to the Ollama server. If the request is streamable, it will return a
		* AbortableAsyncIterator that yields the response messages. Otherwise, it will return the response
		* object.
		* @param endpoint {string} - The endpoint to send the request to.
		* @param request {object} - The request object to send to the endpoint.
		* @protected {T | AbortableAsyncIterator<T>} - The response object or a AbortableAsyncIterator that yields
		* response messages.
		* @throws {Error} - If the response body is missing or if the response is an error.
		* @returns {Promise<T | AbortableAsyncIterator<T>>} - The response object or a AbortableAsyncIterator that yields the streamed response.
		*/
		async processStreamableRequest(endpoint, request) {
			request.stream = request.stream ?? false;
			const host = `${this.config.host}/api/${endpoint}`;
			if (request.stream) {
				const abortController = new AbortController();
				const response2 = await post(this.fetch, host, request, {
					signal: abortController.signal,
					headers: this.config.headers
				});
				if (!response2.body) {
					throw new Error("Missing body");
				}
				const itr = parseJSON(response2.body);
				const abortableAsyncIterator = new AbortableAsyncIterator(abortController, itr, () => {
					const i$7 = this.ongoingStreamedRequests.indexOf(abortableAsyncIterator);
					if (i$7 > -1) {
						this.ongoingStreamedRequests.splice(i$7, 1);
					}
				});
				this.ongoingStreamedRequests.push(abortableAsyncIterator);
				return abortableAsyncIterator;
			}
			const response = await post(this.fetch, host, request, { headers: this.config.headers });
			return await response.json();
		}
		/**
		* Encodes an image to base64 if it is a Uint8Array.
		* @param image {Uint8Array | string} - The image to encode.
		* @returns {Promise<string>} - The base64 encoded image.
		*/
		async encodeImage(image) {
			if (typeof image !== "string") {
				const uint8Array = new Uint8Array(image);
				let byteString = "";
				const len = uint8Array.byteLength;
				for (let i$7 = 0; i$7 < len; i$7++) {
					byteString += String.fromCharCode(uint8Array[i$7]);
				}
				return btoa(byteString);
			}
			return image;
		}
		/**
		* Generates a response from a text prompt.
		* @param request {GenerateRequest} - The request object.
		* @returns {Promise<GenerateResponse | AbortableAsyncIterator<GenerateResponse>>} - The response object or
		* an AbortableAsyncIterator that yields response messages.
		*/
		async generate(request) {
			if (request.images) {
				request.images = await Promise.all(request.images.map(this.encodeImage.bind(this)));
			}
			return this.processStreamableRequest("generate", request);
		}
		/**
		* Chats with the model. The request object can contain messages with images that are either
		* Uint8Arrays or base64 encoded strings. The images will be base64 encoded before sending the
		* request.
		* @param request {ChatRequest} - The request object.
		* @returns {Promise<ChatResponse | AbortableAsyncIterator<ChatResponse>>} - The response object or an
		* AbortableAsyncIterator that yields response messages.
		*/
		async chat(request) {
			if (request.messages) {
				for (const message of request.messages) {
					if (message.images) {
						message.images = await Promise.all(message.images.map(this.encodeImage.bind(this)));
					}
				}
			}
			return this.processStreamableRequest("chat", request);
		}
		/**
		* Creates a new model from a stream of data.
		* @param request {CreateRequest} - The request object.
		* @returns {Promise<ProgressResponse | AbortableAsyncIterator<ProgressResponse>>} - The response object or a stream of progress responses.
		*/
		async create(request) {
			return this.processStreamableRequest("create", { ...request });
		}
		/**
		* Pulls a model from the Ollama registry. The request object can contain a stream flag to indicate if the
		* response should be streamed.
		* @param request {PullRequest} - The request object.
		* @returns {Promise<ProgressResponse | AbortableAsyncIterator<ProgressResponse>>} - The response object or
		* an AbortableAsyncIterator that yields response messages.
		*/
		async pull(request) {
			return this.processStreamableRequest("pull", {
				name: request.model,
				stream: request.stream,
				insecure: request.insecure
			});
		}
		/**
		* Pushes a model to the Ollama registry. The request object can contain a stream flag to indicate if the
		* response should be streamed.
		* @param request {PushRequest} - The request object.
		* @returns {Promise<ProgressResponse | AbortableAsyncIterator<ProgressResponse>>} - The response object or
		* an AbortableAsyncIterator that yields response messages.
		*/
		async push(request) {
			return this.processStreamableRequest("push", {
				name: request.model,
				stream: request.stream,
				insecure: request.insecure
			});
		}
		/**
		* Deletes a model from the server. The request object should contain the name of the model to
		* delete.
		* @param request {DeleteRequest} - The request object.
		* @returns {Promise<StatusResponse>} - The response object.
		*/
		async delete(request) {
			await del(this.fetch, `${this.config.host}/api/delete`, { name: request.model }, { headers: this.config.headers });
			return { status: "success" };
		}
		/**
		* Copies a model from one name to another. The request object should contain the name of the
		* model to copy and the new name.
		* @param request {CopyRequest} - The request object.
		* @returns {Promise<StatusResponse>} - The response object.
		*/
		async copy(request) {
			await post(this.fetch, `${this.config.host}/api/copy`, { ...request }, { headers: this.config.headers });
			return { status: "success" };
		}
		/**
		* Lists the models on the server.
		* @returns {Promise<ListResponse>} - The response object.
		* @throws {Error} - If the response body is missing.
		*/
		async list() {
			const response = await get(this.fetch, `${this.config.host}/api/tags`, { headers: this.config.headers });
			return await response.json();
		}
		/**
		* Shows the metadata of a model. The request object should contain the name of the model.
		* @param request {ShowRequest} - The request object.
		* @returns {Promise<ShowResponse>} - The response object.
		*/
		async show(request) {
			const response = await post(this.fetch, `${this.config.host}/api/show`, { ...request }, { headers: this.config.headers });
			return await response.json();
		}
		/**
		* Embeds text input into vectors.
		* @param request {EmbedRequest} - The request object.
		* @returns {Promise<EmbedResponse>} - The response object.
		*/
		async embed(request) {
			const response = await post(this.fetch, `${this.config.host}/api/embed`, { ...request }, { headers: this.config.headers });
			return await response.json();
		}
		/**
		* Embeds a text prompt into a vector.
		* @param request {EmbeddingsRequest} - The request object.
		* @returns {Promise<EmbeddingsResponse>} - The response object.
		*/
		async embeddings(request) {
			const response = await post(this.fetch, `${this.config.host}/api/embeddings`, { ...request }, { headers: this.config.headers });
			return await response.json();
		}
		/**
		* Lists the running models on the server
		* @returns {Promise<ListResponse>} - The response object.
		* @throws {Error} - If the response body is missing.
		*/
		async ps() {
			const response = await get(this.fetch, `${this.config.host}/api/ps`, { headers: this.config.headers });
			return await response.json();
		}
		/**
		* Returns the Ollama server version.
		* @returns {Promise<VersionResponse>} - The server version object.
		*/
		async version() {
			const response = await get(this.fetch, `${this.config.host}/api/version`, { headers: this.config.headers });
			return await response.json();
		}
		/**
		* Performs web search using the Ollama web search API
		* @param request {WebSearchRequest} - The search request containing query and options
		* @returns {Promise<WebSearchResponse>} - The search results
		* @throws {Error} - If the request is invalid or the server returns an error
		*/
		async webSearch(request) {
			if (!request.query || request.query.length === 0) {
				throw new Error("Query is required");
			}
			const response = await post(this.fetch, `https://ollama.com/api/web_search`, { ...request }, { headers: this.config.headers });
			return await response.json();
		}
		/**
		* Fetches a single page using the Ollama web fetch API
		* @param request {WebFetchRequest} - The fetch request containing a URL
		* @returns {Promise<WebFetchResponse>} - The fetch result
		* @throws {Error} - If the request is invalid or the server returns an error
		*/
		async webFetch(request) {
			if (!request.url || request.url.length === 0) {
				throw new Error("URL is required");
			}
			const response = await post(this.fetch, `https://ollama.com/api/web_fetch`, { ...request }, { headers: this.config.headers });
			return await response.json();
		}
	};
	browser = new Ollama$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/utils/model-discovery.js
/**
* Discover models from an Ollama server.
* @param baseUrl - Base URL of the Ollama server (e.g., "http://localhost:11434")
* @param apiKey - Optional API key (currently unused by Ollama)
* @returns Array of discovered models
*/
async function discoverOllamaModels(baseUrl, _apiKey) {
	try {
		const ollama = new Ollama$1({ host: baseUrl });
		const { models } = await ollama.list();
		const ollamaModelPromises = models.map(async (model) => {
			try {
				const details = await ollama.show({ model: model.name });
				const capabilities = details.capabilities || [];
				if (!capabilities.includes("tools")) {
					console.debug(`Skipping model ${model.name}: does not support tools`);
					return null;
				}
				const modelInfo = details.model_info || {};
				const architecture = modelInfo["general.architecture"] || "";
				const contextKey = `${architecture}.context_length`;
				const contextWindow = parseInt(modelInfo[contextKey] || "8192", 10);
				const maxTokens = contextWindow * 10;
				const ollamaModel = {
					id: model.name,
					name: model.name,
					api: "openai-completions",
					provider: "",
					baseUrl: `${baseUrl}/v1`,
					reasoning: capabilities.includes("thinking"),
					input: ["text"],
					cost: {
						input: 0,
						output: 0,
						cacheRead: 0,
						cacheWrite: 0
					},
					contextWindow,
					maxTokens
				};
				return ollamaModel;
			} catch (err) {
				console.error(`Failed to fetch details for model ${model.name}:`, err);
				return null;
			}
		});
		const results = await Promise.all(ollamaModelPromises);
		return results.filter((m$3) => m$3 !== null);
	} catch (err) {
		console.error("Failed to discover Ollama models:", err);
		throw new Error(`Ollama discovery failed: ${err instanceof Error ? err.message : String(err)}`);
	}
}
/**
* Discover models from a llama.cpp server via OpenAI-compatible /v1/models endpoint.
* @param baseUrl - Base URL of the llama.cpp server (e.g., "http://localhost:8080")
* @param apiKey - Optional API key
* @returns Array of discovered models
*/
async function discoverLlamaCppModels(baseUrl, apiKey) {
	try {
		const headers = { "Content-Type": "application/json" };
		if (apiKey) {
			headers.Authorization = `Bearer ${apiKey}`;
		}
		const response = await fetch(`${baseUrl}/v1/models`, {
			method: "GET",
			headers
		});
		if (!response.ok) {
			throw new Error(`HTTP ${response.status}: ${response.statusText}`);
		}
		const data = await response.json();
		if (!data.data || !Array.isArray(data.data)) {
			throw new Error("Invalid response format from llama.cpp server");
		}
		return data.data.map((model) => {
			const contextWindow = model.context_length || 8192;
			const maxTokens = model.max_tokens || 4096;
			const llamaModel = {
				id: model.id,
				name: model.id,
				api: "openai-completions",
				provider: "",
				baseUrl: `${baseUrl}/v1`,
				reasoning: false,
				input: ["text"],
				cost: {
					input: 0,
					output: 0,
					cacheRead: 0,
					cacheWrite: 0
				},
				contextWindow,
				maxTokens
			};
			return llamaModel;
		});
	} catch (err) {
		console.error("Failed to discover llama.cpp models:", err);
		throw new Error(`llama.cpp discovery failed: ${err instanceof Error ? err.message : String(err)}`);
	}
}
/**
* Discover models from a vLLM server via OpenAI-compatible /v1/models endpoint.
* @param baseUrl - Base URL of the vLLM server (e.g., "http://localhost:8000")
* @param apiKey - Optional API key
* @returns Array of discovered models
*/
async function discoverVLLMModels(baseUrl, apiKey) {
	try {
		const headers = { "Content-Type": "application/json" };
		if (apiKey) {
			headers.Authorization = `Bearer ${apiKey}`;
		}
		const response = await fetch(`${baseUrl}/v1/models`, {
			method: "GET",
			headers
		});
		if (!response.ok) {
			throw new Error(`HTTP ${response.status}: ${response.statusText}`);
		}
		const data = await response.json();
		if (!data.data || !Array.isArray(data.data)) {
			throw new Error("Invalid response format from vLLM server");
		}
		return data.data.map((model) => {
			const contextWindow = model.max_model_len || 8192;
			const maxTokens = Math.min(contextWindow, 4096);
			const vllmModel = {
				id: model.id,
				name: model.id,
				api: "openai-completions",
				provider: "",
				baseUrl: `${baseUrl}/v1`,
				reasoning: false,
				input: ["text"],
				cost: {
					input: 0,
					output: 0,
					cacheRead: 0,
					cacheWrite: 0
				},
				contextWindow,
				maxTokens
			};
			return vllmModel;
		});
	} catch (err) {
		console.error("Failed to discover vLLM models:", err);
		throw new Error(`vLLM discovery failed: ${err instanceof Error ? err.message : String(err)}`);
	}
}
/**
* Discover models from an LM Studio server using the LM Studio SDK.
* @param baseUrl - Base URL of the LM Studio server (e.g., "http://localhost:1234")
* @param apiKey - Optional API key (unused for LM Studio SDK)
* @returns Array of discovered models
*/
async function discoverLMStudioModels(baseUrl, _apiKey) {
	try {
		const url = new URL(baseUrl);
		const port = url.port ? parseInt(url.port, 10) : 1234;
		const client = new LMStudioClient({ baseUrl: `ws://${url.hostname}:${port}` });
		const models = await client.system.listDownloadedModels();
		return models.filter((model) => model.type === "llm").map((model) => {
			const contextWindow = model.maxContextLength;
			const maxTokens = contextWindow;
			const lmStudioModel = {
				id: model.path,
				name: model.displayName || model.path,
				api: "openai-completions",
				provider: "",
				baseUrl: `${baseUrl}/v1`,
				reasoning: model.trainedForToolUse || false,
				input: model.vision ? ["text", "image"] : ["text"],
				cost: {
					input: 0,
					output: 0,
					cacheRead: 0,
					cacheWrite: 0
				},
				contextWindow,
				maxTokens
			};
			return lmStudioModel;
		});
	} catch (err) {
		console.error("Failed to discover LM Studio models:", err);
		throw new Error(`LM Studio discovery failed: ${err instanceof Error ? err.message : String(err)}`);
	}
}
/**
* Convenience function to discover models based on provider type.
* @param type - Provider type
* @param baseUrl - Base URL of the server
* @param apiKey - Optional API key
* @returns Array of discovered models
*/
async function discoverModels(type, baseUrl, apiKey) {
	switch (type) {
		case "ollama": return discoverOllamaModels(baseUrl, apiKey);
		case "llama.cpp": return discoverLlamaCppModels(baseUrl, apiKey);
		case "vllm": return discoverVLLMModels(baseUrl, apiKey);
		case "lmstudio": return discoverLMStudioModels(baseUrl, apiKey);
	}
}
var init_model_discovery = __esmMin((() => {
	init_lmstudio_sdk_stub();
	init_browser();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/dialogs/ModelSelector.js
var __decorate$27, ModelSelector_1, ModelSelector;
var init_ModelSelector = __esmMin((() => {
	init_dist();
	init_Badge();
	init_Button();
	init_Dialog();
	init_DialogBase();
	init_pi_ai_stub();
	init_lit();
	init_decorators();
	init_ref$2();
	init_lucide();
	init_Input();
	init_app_storage();
	init_format$1();
	init_i18n();
	init_model_discovery();
	__decorate$27 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	;
	ModelSelector = ModelSelector_1 = class ModelSelector$1 extends DialogBase {
		constructor() {
			super(...arguments);
			this.currentModel = null;
			this.searchQuery = "";
			this.filterThinking = false;
			this.filterVision = false;
			this.customProvidersLoading = false;
			this.selectedIndex = 0;
			this.navigationMode = "mouse";
			this.customProviderModels = [];
			this.scrollContainerRef = e();
			this.searchInputRef = e();
			this.lastMousePosition = {
				x: 0,
				y: 0
			};
			this.modalWidth = "min(400px, 90vw)";
		}
		static async open(currentModel, onSelect) {
			const selector = new ModelSelector_1();
			selector.currentModel = currentModel;
			selector.onSelectCallback = onSelect;
			selector.open();
			selector.loadCustomProviders();
		}
		async firstUpdated(changedProperties) {
			super.firstUpdated(changedProperties);
			await this.updateComplete;
			this.searchInputRef.value?.focus();
			this.addEventListener("mousemove", (e$10) => {
				if (e$10.clientX !== this.lastMousePosition.x || e$10.clientY !== this.lastMousePosition.y) {
					this.lastMousePosition = {
						x: e$10.clientX,
						y: e$10.clientY
					};
					if (this.navigationMode === "keyboard") {
						this.navigationMode = "mouse";
						const target = e$10.target;
						const modelItem = target.closest("[data-model-item]");
						if (modelItem) {
							const allItems = this.scrollContainerRef.value?.querySelectorAll("[data-model-item]");
							if (allItems) {
								const index = Array.from(allItems).indexOf(modelItem);
								if (index !== -1) {
									this.selectedIndex = index;
								}
							}
						}
					}
				}
			});
			this.addEventListener("keydown", (e$10) => {
				const filteredModels = this.getFilteredModels();
				if (e$10.key === "ArrowDown") {
					e$10.preventDefault();
					this.navigationMode = "keyboard";
					this.selectedIndex = Math.min(this.selectedIndex + 1, filteredModels.length - 1);
					this.scrollToSelected();
				} else if (e$10.key === "ArrowUp") {
					e$10.preventDefault();
					this.navigationMode = "keyboard";
					this.selectedIndex = Math.max(this.selectedIndex - 1, 0);
					this.scrollToSelected();
				} else if (e$10.key === "Enter") {
					e$10.preventDefault();
					if (filteredModels[this.selectedIndex]) {
						this.handleSelect(filteredModels[this.selectedIndex].model);
					}
				}
			});
		}
		async loadCustomProviders() {
			this.customProvidersLoading = true;
			const allCustomModels = [];
			try {
				const storage = getAppStorage();
				const customProviders = await storage.customProviders.getAll();
				for (const provider of customProviders) {
					const isAutoDiscovery = provider.type === "ollama" || provider.type === "llama.cpp" || provider.type === "vllm" || provider.type === "lmstudio";
					if (isAutoDiscovery) {
						try {
							const models = await discoverModels(provider.type, provider.baseUrl, provider.apiKey);
							const modelsWithProvider = models.map((model) => ({
								...model,
								provider: provider.name
							}));
							allCustomModels.push(...modelsWithProvider);
						} catch (error$2) {
							console.debug(`Failed to load models from ${provider.name}:`, error$2);
						}
					} else if (provider.models) {
						allCustomModels.push(...provider.models);
					}
				}
			} catch (error$2) {
				console.error("Failed to load custom providers:", error$2);
			} finally {
				this.customProviderModels = allCustomModels;
				this.customProvidersLoading = false;
				this.requestUpdate();
			}
		}
		formatTokens(tokens) {
			if (tokens >= 1e6) return `${(tokens / 1e6).toFixed(0)}M`;
			if (tokens >= 1e3) return `${(tokens / 1e3).toFixed(0)}`;
			return String(tokens);
		}
		handleSelect(model) {
			if (model) {
				this.onSelectCallback?.(model);
				this.close();
			}
		}
		getFilteredModels() {
			const allModels = [];
			const knownProviders = getProviders();
			for (const provider of knownProviders) {
				const models = getModels(provider);
				for (const model of models) {
					allModels.push({
						provider,
						id: model.id,
						model
					});
				}
			}
			for (const model of this.customProviderModels) {
				allModels.push({
					provider: model.provider,
					id: model.id,
					model
				});
			}
			let filteredModels = allModels;
			if (this.searchQuery) {
				filteredModels = filteredModels.filter(({ provider, id, model }) => {
					const searchTokens = this.searchQuery.split(/\s+/).filter((t$6) => t$6);
					const searchText = `${provider} ${id} ${model.name}`.toLowerCase();
					return searchTokens.every((token) => searchText.includes(token));
				});
			}
			if (this.filterThinking) {
				filteredModels = filteredModels.filter(({ model }) => model.reasoning);
			}
			if (this.filterVision) {
				filteredModels = filteredModels.filter(({ model }) => model.input.includes("image"));
			}
			filteredModels.sort((a$2, b$3) => {
				const aIsCurrent = this.currentModel?.id === a$2.model.id;
				const bIsCurrent = this.currentModel?.id === b$3.model.id;
				if (aIsCurrent && !bIsCurrent) return -1;
				if (!aIsCurrent && bIsCurrent) return 1;
				return a$2.provider.localeCompare(b$3.provider);
			});
			return filteredModels;
		}
		scrollToSelected() {
			requestAnimationFrame(() => {
				const scrollContainer = this.scrollContainerRef.value;
				const selectedElement = scrollContainer?.querySelectorAll("[data-model-item]")[this.selectedIndex];
				if (selectedElement) {
					selectedElement.scrollIntoView({
						block: "nearest",
						behavior: "smooth"
					});
				}
			});
		}
		renderContent() {
			const filteredModels = this.getFilteredModels();
			return x`
			<!-- Header and Search -->
			<div class="p-6 pb-4 flex flex-col gap-4 border-b border-border flex-shrink-0">
				${DialogHeader({ title: i18n("Select Model") })}
				${Input({
				placeholder: i18n("Search models..."),
				value: this.searchQuery,
				inputRef: this.searchInputRef,
				onInput: (e$10) => {
					this.searchQuery = e$10.target.value;
					this.selectedIndex = 0;
					if (this.scrollContainerRef.value) {
						this.scrollContainerRef.value.scrollTop = 0;
					}
				}
			})}
				<div class="flex gap-2">
					${Button({
				variant: this.filterThinking ? "default" : "secondary",
				size: "sm",
				onClick: () => {
					this.filterThinking = !this.filterThinking;
					this.selectedIndex = 0;
					if (this.scrollContainerRef.value) {
						this.scrollContainerRef.value.scrollTop = 0;
					}
				},
				className: "rounded-full",
				children: x`<span class="inline-flex items-center gap-1">${icon(Brain, "sm")} ${i18n("Thinking")}</span>`
			})}
					${Button({
				variant: this.filterVision ? "default" : "secondary",
				size: "sm",
				onClick: () => {
					this.filterVision = !this.filterVision;
					this.selectedIndex = 0;
					if (this.scrollContainerRef.value) {
						this.scrollContainerRef.value.scrollTop = 0;
					}
				},
				className: "rounded-full",
				children: x`<span class="inline-flex items-center gap-1">${icon(Image$1, "sm")} ${i18n("Vision")}</span>`
			})}
				</div>
			</div>

			<!-- Scrollable model list -->
			<div class="flex-1 overflow-y-auto" ${n(this.scrollContainerRef)}>
				${filteredModels.map(({ provider, id, model }, index) => {
				const isCurrent = this.currentModel?.id === model.id && this.currentModel?.provider === model.provider;
				const isSelected = index === this.selectedIndex;
				return x`
						<div
							data-model-item
							class="px-4 py-3 ${this.navigationMode === "mouse" ? "hover:bg-muted" : ""} cursor-pointer border-b border-border ${isSelected ? "bg-accent" : ""}"
							@click=${() => this.handleSelect(model)}
							@mouseenter=${() => {
					if (this.navigationMode === "mouse") {
						this.selectedIndex = index;
					}
				}}
						>
							<div class="flex items-center justify-between gap-2 mb-1">
								<div class="flex items-center gap-2 flex-1 min-w-0">
									<span class="text-sm font-medium text-foreground truncate">${id}</span>
									${isCurrent ? x`<span class="text-green-500">✓</span>` : ""}
								</div>
								${Badge(provider, "outline")}
							</div>
							<div class="flex items-center justify-between text-xs text-muted-foreground">
								<div class="flex items-center gap-2">
									<span class="${model.reasoning ? "" : "opacity-30"}">${icon(Brain, "sm")}</span>
									<span class="${model.input.includes("image") ? "" : "opacity-30"}">${icon(Image$1, "sm")}</span>
									<span>${this.formatTokens(model.contextWindow)}K/${this.formatTokens(model.maxTokens)}K</span>
								</div>
								<span>${formatModelCost(model.cost)}</span>
							</div>
						</div>
					`;
			})}
			</div>
		`;
		}
	};
	__decorate$27([r()], ModelSelector.prototype, "currentModel", void 0);
	__decorate$27([r()], ModelSelector.prototype, "searchQuery", void 0);
	__decorate$27([r()], ModelSelector.prototype, "filterThinking", void 0);
	__decorate$27([r()], ModelSelector.prototype, "filterVision", void 0);
	__decorate$27([r()], ModelSelector.prototype, "customProvidersLoading", void 0);
	__decorate$27([r()], ModelSelector.prototype, "selectedIndex", void 0);
	__decorate$27([r()], ModelSelector.prototype, "navigationMode", void 0);
	__decorate$27([r()], ModelSelector.prototype, "customProviderModels", void 0);
	ModelSelector = ModelSelector_1 = __decorate$27([t("agent-model-selector")], ModelSelector);
}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/dist/Select.js
function Select(props) {
	const { value, placeholder = i18n("Select an option"), options, onChange, disabled = false, className = "", width = "180px", size = "md", variant = "default", fitContent = false } = props;
	const triggerRef = e();
	const state$1 = {
		isOpen: false,
		focusedIndex: -1
	};
	const sizeClasses$1 = {
		sm: "h-8 px-2 text-xs",
		md: "h-9 px-3 text-sm",
		lg: "h-10 px-4 text-base"
	};
	const variantClasses = {
		default: "text-foreground border-input bg-transparent hover:bg-accent/50 shadow-xs",
		ghost: "text-foreground border-transparent bg-transparent hover:bg-accent hover:text-accent-foreground",
		outline: "text-foreground border-input bg-transparent hover:bg-accent hover:text-accent-foreground"
	};
	const flatOptions = [];
	const isGrouped = options.length > 0 && "options" in options[0];
	if (isGrouped) {
		options.forEach((group) => {
			flatOptions.push(...group.options.filter((opt) => !opt.disabled));
		});
	} else {
		flatOptions.push(...options.filter((opt) => !opt.disabled));
	}
	const selectedOption = flatOptions.find((opt) => opt.value === value);
	let portalContainer = null;
	const ensurePortalContainer = () => {
		if (!portalContainer) {
			portalContainer = document.createElement("div");
			portalContainer.className = "select-portal-container";
			portalContainer.style.cssText = "position: fixed; z-index: 50; pointer-events: none;";
			document.body.appendChild(portalContainer);
		}
		return portalContainer;
	};
	const updatePosition = () => {
		if (!triggerRef.value || !portalContainer) return;
		const rect = triggerRef.value.getBoundingClientRect();
		state$1.triggerRect = rect;
		const spaceBelow = window.innerHeight - rect.bottom;
		const spaceAbove = rect.top;
		const dropdownHeight = 300;
		const showAbove = spaceBelow < dropdownHeight && spaceAbove > spaceBelow;
		portalContainer.style.cssText = `
			position: fixed;
			left: ${rect.left}px;
			${showAbove ? `bottom: ${window.innerHeight - rect.top}px` : `top: ${rect.bottom}px`};
			min-width: ${rect.width}px;
			width: max-content;
			z-index: 50;
			pointer-events: ${state$1.isOpen ? "auto" : "none"};
		`;
	};
	const open$1 = () => {
		if (disabled || state$1.isOpen) return;
		if (activeSelect && activeSelect !== api) {
			activeSelect.close();
		}
		state$1.isOpen = true;
		state$1.focusedIndex = selectedOption ? flatOptions.indexOf(selectedOption) : 0;
		ensurePortalContainer();
		updatePosition();
		renderPortal();
		setTimeout(() => {
			document.addEventListener("click", handleOutsideClick);
			document.addEventListener("keydown", handleKeyDown);
			window.addEventListener("scroll", updatePosition, true);
			window.addEventListener("resize", updatePosition);
		}, 0);
		activeSelect = api;
		if (triggerRef.value) {
			triggerRef.value.setAttribute("aria-expanded", "true");
		}
	};
	const close$1 = () => {
		if (!state$1.isOpen) return;
		state$1.isOpen = false;
		state$1.focusedIndex = -1;
		document.removeEventListener("click", handleOutsideClick);
		document.removeEventListener("keydown", handleKeyDown);
		window.removeEventListener("scroll", updatePosition, true);
		window.removeEventListener("resize", updatePosition);
		if (portalContainer) {
			B$1(x``, portalContainer);
		}
		if (activeSelect === api) {
			activeSelect = null;
		}
		if (triggerRef.value) {
			triggerRef.value.setAttribute("aria-expanded", "false");
			triggerRef.value.focus();
		}
	};
	const handleOutsideClick = (e$10) => {
		const target = e$10.target;
		if (triggerRef.value?.contains(target) || portalContainer?.contains(target)) {
			return;
		}
		close$1();
	};
	const handleKeyDown = (e$10) => {
		if (!state$1.isOpen) return;
		switch (e$10.key) {
			case "Escape":
				e$10.preventDefault();
				close$1();
				break;
			case "ArrowDown":
				e$10.preventDefault();
				state$1.focusedIndex = Math.min(state$1.focusedIndex + 1, flatOptions.length - 1);
				renderPortal();
				break;
			case "ArrowUp":
				e$10.preventDefault();
				state$1.focusedIndex = Math.max(state$1.focusedIndex - 1, 0);
				renderPortal();
				break;
			case "Enter":
			case " ":
				e$10.preventDefault();
				if (state$1.focusedIndex >= 0 && state$1.focusedIndex < flatOptions.length) {
					selectOption(flatOptions[state$1.focusedIndex].value);
				}
				break;
			case "Home":
				e$10.preventDefault();
				state$1.focusedIndex = 0;
				renderPortal();
				break;
			case "End":
				e$10.preventDefault();
				state$1.focusedIndex = flatOptions.length - 1;
				renderPortal();
				break;
		}
	};
	const selectOption = (optionValue) => {
		onChange(optionValue);
		close$1();
	};
	const renderPortal = () => {
		if (!portalContainer || !state$1.isOpen) return;
		const dropdownContent = x`
         <div
            class="border border-border bg-popover text-popover-foreground shadow-md rounded-md overflow-hidden animate-in fade-in-0 zoom-in-95"
            role="listbox"
            style="max-height: 300px; overflow-y: auto;"
         >
            <div class="p-1">
               ${isGrouped ? options.map((group, _groupIndex) => x`
                          <div role="group">
                             ${group.label ? x`
                                     <div class="text-muted-foreground px-2 py-1.5 text-xs font-medium">
                                        ${group.label}
                                     </div>
                                  ` : ""}
                             ${group.options.map((option, _optionIndex) => {
			const globalIndex = flatOptions.indexOf(option);
			const isFocused = globalIndex === state$1.focusedIndex;
			const isSelected = option.value === value;
			return x`
                                   <div
                                      role="option"
                                      aria-selected=${isSelected}
                                      data-disabled=${option.disabled || false}
                                      tabindex="-1"
                                      class="relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none transition-colors
												${isFocused ? "bg-accent text-accent-foreground" : ""}
												${option.disabled ? "pointer-events-none opacity-50" : "hover:bg-accent hover:text-accent-foreground"}
												${isSelected ? "font-medium" : ""}"
                                      @click=${option.disabled ? null : () => selectOption(option.value)}
                                      @mouseenter=${() => {
				if (!option.disabled) {
					state$1.focusedIndex = globalIndex;
					renderPortal();
				}
			}}
                                   >
                                      <span class="absolute right-2 flex h-3.5 w-3.5 items-center justify-center">
                                         ${isSelected ? x`
                                                 <svg
                                                    class="h-4 w-4"
                                                    xmlns="http://www.w3.org/2000/svg"
                                                    viewBox="0 0 24 24"
                                                    fill="none"
                                                    stroke="currentColor"
                                                    stroke-width="2"
                                                    stroke-linecap="round"
                                                    stroke-linejoin="round"
                                                 >
                                                    <polyline points="20 6 9 17 4 12"></polyline>
                                                 </svg>
                                              ` : ""}
                                      </span>
                                      ${option.icon ? x`<span class="flex-shrink-0">${option.icon}</span>` : ""}
                                      <span>${option.label}</span>
                                   </div>
                                `;
		})}
                          </div>
                       `) : options.map((option, index) => {
			const isFocused = index === state$1.focusedIndex;
			const isSelected = option.value === value;
			return x`
                          <div
                             role="option"
                             aria-selected=${isSelected}
                             data-disabled=${option.disabled || false}
                             tabindex="-1"
                             class="relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none transition-colors
										${isFocused ? "bg-accent text-accent-foreground" : ""}
										${option.disabled ? "pointer-events-none opacity-50" : "hover:bg-accent hover:text-accent-foreground"}
										${isSelected ? "font-medium" : ""}"
                             @click=${option.disabled ? null : () => selectOption(option.value)}
                             @mouseenter=${() => {
				if (!option.disabled) {
					state$1.focusedIndex = index;
					renderPortal();
				}
			}}
                          >
                             <span class="absolute right-2 flex h-3.5 w-3.5 items-center justify-center">
                                ${isSelected ? x`
                                        <svg
                                           class="h-4 w-4"
                                           xmlns="http://www.w3.org/2000/svg"
                                           viewBox="0 0 24 24"
                                           fill="none"
                                           stroke="currentColor"
                                           stroke-width="2"
                                           stroke-linecap="round"
                                           stroke-linejoin="round"
                                        >
                                           <polyline points="20 6 9 17 4 12"></polyline>
                                        </svg>
                                     ` : ""}
                             </span>
                             ${option.icon ? x`<span class="flex-shrink-0">${option.icon}</span>` : ""}
                             <span>${option.label}</span>
                          </div>
                       `;
		})}
            </div>
         </div>
      `;
		B$1(dropdownContent, portalContainer);
	};
	const api = { close: close$1 };
	const handleTriggerClick = (e$10) => {
		e$10.preventDefault();
		e$10.stopPropagation();
		if (state$1.isOpen) {
			close$1();
		} else {
			open$1();
		}
	};
	const buttonWidth = fitContent ? "auto" : width;
	const minWidth = fitContent ? width || "auto" : undefined;
	return x`
      <button
         ${n(triggerRef)}
         type="button"
         role="combobox"
         aria-expanded=${state$1.isOpen}
         aria-haspopup="listbox"
         aria-autocomplete="none"
         ?disabled=${disabled}
         @click=${handleTriggerClick}
         class="flex items-center justify-between gap-2 rounded-md border whitespace-nowrap transition-[color,box-shadow] outline-none
				focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background
				disabled:cursor-not-allowed disabled:opacity-50
				data-[placeholder]:text-muted-foreground
				${sizeClasses$1[size]} ${variantClasses[variant]} ${className}"
         style="width: ${buttonWidth}; ${minWidth ? `min-width: ${minWidth};` : ""}"
      >
         <span class="flex items-center gap-2 truncate">
            ${selectedOption?.icon ? x`<span class="flex-shrink-0">${selectedOption.icon}</span>` : ""}
            ${selectedOption ? selectedOption.label : placeholder}
         </span>
         <svg
            xmlns="http://www.w3.org/2000/svg"
            width="24"
            height="24"
            viewBox="0 0 24 24"
            fill="none"
            stroke="currentColor"
            stroke-width="2"
            stroke-linecap="round"
            stroke-linejoin="round"
            class="h-4 w-4 opacity-50 flex-shrink-0"
         >
            <path d="m6 9 6 6 6-6"></path>
         </svg>
      </button>
   `;
}
var activeSelect;
var init_Select = __esmMin((() => {
	init_lit();
	init_ref$2();
	init_i18n$1();
	activeSelect = null;
}));

//#endregion
//#region node_modules/jszip/dist/jszip.min.js
var require_jszip_min = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/*!
	
	JSZip v3.10.1 - A JavaScript class for generating and reading zip files
	<http://stuartk.com/jszip>
	
	(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
	Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.
	
	JSZip uses the library pako released under the MIT license :
	https://github.com/nodeca/pako/blob/main/LICENSE
	*/
	!function(e$10) {
		if ("object" == typeof exports && "undefined" != typeof module) module.exports = e$10();
		else if ("function" == typeof define && define.amd) define([], e$10);
		else {
			("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).JSZip = e$10();
		}
	}(function() {
		return function s$5(a$2, o$10, h$5) {
			function u$4(r$10, e$11) {
				if (!o$10[r$10]) {
					if (!a$2[r$10]) {
						var t$6 = "function" == typeof __require && __require;
						if (!e$11 && t$6) return t$6(r$10, !0);
						if (l$3) return l$3(r$10, !0);
						var n$9 = new Error("Cannot find module '" + r$10 + "'");
						throw n$9.code = "MODULE_NOT_FOUND", n$9;
					}
					var i$7 = o$10[r$10] = { exports: {} };
					a$2[r$10][0].call(i$7.exports, function(e$12) {
						var t$7 = a$2[r$10][1][e$12];
						return u$4(t$7 || e$12);
					}, i$7, i$7.exports, s$5, a$2, o$10, h$5);
				}
				return o$10[r$10].exports;
			}
			for (var l$3 = "function" == typeof __require && __require, e$10 = 0; e$10 < h$5.length; e$10++) u$4(h$5[e$10]);
			return u$4;
		}({
			1: [function(e$10, t$6, r$10) {
				"use strict";
				var d$5 = e$10("./utils"), c$7 = e$10("./support"), p$3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
				r$10.encode = function(e$11) {
					for (var t$7, r$11, n$9, i$7, s$5, a$2, o$10, h$5 = [], u$4 = 0, l$3 = e$11.length, f$4 = l$3, c$8 = "string" !== d$5.getTypeOf(e$11); u$4 < e$11.length;) f$4 = l$3 - u$4, n$9 = c$8 ? (t$7 = e$11[u$4++], r$11 = u$4 < l$3 ? e$11[u$4++] : 0, u$4 < l$3 ? e$11[u$4++] : 0) : (t$7 = e$11.charCodeAt(u$4++), r$11 = u$4 < l$3 ? e$11.charCodeAt(u$4++) : 0, u$4 < l$3 ? e$11.charCodeAt(u$4++) : 0), i$7 = t$7 >> 2, s$5 = (3 & t$7) << 4 | r$11 >> 4, a$2 = 1 < f$4 ? (15 & r$11) << 2 | n$9 >> 6 : 64, o$10 = 2 < f$4 ? 63 & n$9 : 64, h$5.push(p$3.charAt(i$7) + p$3.charAt(s$5) + p$3.charAt(a$2) + p$3.charAt(o$10));
					return h$5.join("");
				}, r$10.decode = function(e$11) {
					var t$7, r$11, n$9, i$7, s$5, a$2, o$10 = 0, h$5 = 0, u$4 = "data:";
					if (e$11.substr(0, u$4.length) === u$4) throw new Error("Invalid base64 input, it looks like a data url.");
					var l$3, f$4 = 3 * (e$11 = e$11.replace(/[^A-Za-z0-9+/=]/g, "")).length / 4;
					if (e$11.charAt(e$11.length - 1) === p$3.charAt(64) && f$4--, e$11.charAt(e$11.length - 2) === p$3.charAt(64) && f$4--, f$4 % 1 != 0) throw new Error("Invalid base64 input, bad content length.");
					for (l$3 = c$7.uint8array ? new Uint8Array(0 | f$4) : new Array(0 | f$4); o$10 < e$11.length;) t$7 = p$3.indexOf(e$11.charAt(o$10++)) << 2 | (i$7 = p$3.indexOf(e$11.charAt(o$10++))) >> 4, r$11 = (15 & i$7) << 4 | (s$5 = p$3.indexOf(e$11.charAt(o$10++))) >> 2, n$9 = (3 & s$5) << 6 | (a$2 = p$3.indexOf(e$11.charAt(o$10++))), l$3[h$5++] = t$7, 64 !== s$5 && (l$3[h$5++] = r$11), 64 !== a$2 && (l$3[h$5++] = n$9);
					return l$3;
				};
			}, {
				"./support": 30,
				"./utils": 32
			}],
			2: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = e$10("./external"), i$7 = e$10("./stream/DataWorker"), s$5 = e$10("./stream/Crc32Probe"), a$2 = e$10("./stream/DataLengthProbe");
				function o$10(e$11, t$7, r$11, n$10, i$8) {
					this.compressedSize = e$11, this.uncompressedSize = t$7, this.crc32 = r$11, this.compression = n$10, this.compressedContent = i$8;
				}
				o$10.prototype = {
					getContentWorker: function() {
						var e$11 = new i$7(n$9.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a$2("data_length")), t$7 = this;
						return e$11.on("end", function() {
							if (this.streamInfo.data_length !== t$7.uncompressedSize) throw new Error("Bug : uncompressed data size mismatch");
						}), e$11;
					},
					getCompressedWorker: function() {
						return new i$7(n$9.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize", this.compressedSize).withStreamInfo("uncompressedSize", this.uncompressedSize).withStreamInfo("crc32", this.crc32).withStreamInfo("compression", this.compression);
					}
				}, o$10.createWorkerFrom = function(e$11, t$7, r$11) {
					return e$11.pipe(new s$5()).pipe(new a$2("uncompressedSize")).pipe(t$7.compressWorker(r$11)).pipe(new a$2("compressedSize")).withStreamInfo("compression", t$7);
				}, t$6.exports = o$10;
			}, {
				"./external": 6,
				"./stream/Crc32Probe": 25,
				"./stream/DataLengthProbe": 26,
				"./stream/DataWorker": 27
			}],
			3: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = e$10("./stream/GenericWorker");
				r$10.STORE = {
					magic: "\0\0",
					compressWorker: function() {
						return new n$9("STORE compression");
					},
					uncompressWorker: function() {
						return new n$9("STORE decompression");
					}
				}, r$10.DEFLATE = e$10("./flate");
			}, {
				"./flate": 7,
				"./stream/GenericWorker": 28
			}],
			4: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = e$10("./utils");
				var o$10 = function() {
					for (var e$11, t$7 = [], r$11 = 0; r$11 < 256; r$11++) {
						e$11 = r$11;
						for (var n$10 = 0; n$10 < 8; n$10++) e$11 = 1 & e$11 ? 3988292384 ^ e$11 >>> 1 : e$11 >>> 1;
						t$7[r$11] = e$11;
					}
					return t$7;
				}();
				t$6.exports = function(e$11, t$7) {
					return void 0 !== e$11 && e$11.length ? "string" !== n$9.getTypeOf(e$11) ? function(e$12, t$8, r$11, n$10) {
						var i$7 = o$10, s$5 = n$10 + r$11;
						e$12 ^= -1;
						for (var a$2 = n$10; a$2 < s$5; a$2++) e$12 = e$12 >>> 8 ^ i$7[255 & (e$12 ^ t$8[a$2])];
						return -1 ^ e$12;
					}(0 | t$7, e$11, e$11.length, 0) : function(e$12, t$8, r$11, n$10) {
						var i$7 = o$10, s$5 = n$10 + r$11;
						e$12 ^= -1;
						for (var a$2 = n$10; a$2 < s$5; a$2++) e$12 = e$12 >>> 8 ^ i$7[255 & (e$12 ^ t$8.charCodeAt(a$2))];
						return -1 ^ e$12;
					}(0 | t$7, e$11, e$11.length, 0) : 0;
				};
			}, { "./utils": 32 }],
			5: [function(e$10, t$6, r$10) {
				"use strict";
				r$10.base64 = !1, r$10.binary = !1, r$10.dir = !1, r$10.createFolders = !0, r$10.date = null, r$10.compression = null, r$10.compressionOptions = null, r$10.comment = null, r$10.unixPermissions = null, r$10.dosPermissions = null;
			}, {}],
			6: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = null;
				n$9 = "undefined" != typeof Promise ? Promise : e$10("lie"), t$6.exports = { Promise: n$9 };
			}, { lie: 37 }],
			7: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Uint32Array, i$7 = e$10("pako"), s$5 = e$10("./utils"), a$2 = e$10("./stream/GenericWorker"), o$10 = n$9 ? "uint8array" : "array";
				function h$5(e$11, t$7) {
					a$2.call(this, "FlateWorker/" + e$11), this._pako = null, this._pakoAction = e$11, this._pakoOptions = t$7, this.meta = {};
				}
				r$10.magic = "\b\0", s$5.inherits(h$5, a$2), h$5.prototype.processChunk = function(e$11) {
					this.meta = e$11.meta, null === this._pako && this._createPako(), this._pako.push(s$5.transformTo(o$10, e$11.data), !1);
				}, h$5.prototype.flush = function() {
					a$2.prototype.flush.call(this), null === this._pako && this._createPako(), this._pako.push([], !0);
				}, h$5.prototype.cleanUp = function() {
					a$2.prototype.cleanUp.call(this), this._pako = null;
				}, h$5.prototype._createPako = function() {
					this._pako = new i$7[this._pakoAction]({
						raw: !0,
						level: this._pakoOptions.level || -1
					});
					var t$7 = this;
					this._pako.onData = function(e$11) {
						t$7.push({
							data: e$11,
							meta: t$7.meta
						});
					};
				}, r$10.compressWorker = function(e$11) {
					return new h$5("Deflate", e$11);
				}, r$10.uncompressWorker = function() {
					return new h$5("Inflate", {});
				};
			}, {
				"./stream/GenericWorker": 28,
				"./utils": 32,
				pako: 38
			}],
			8: [function(e$10, t$6, r$10) {
				"use strict";
				function A$1(e$11, t$7) {
					var r$11, n$10 = "";
					for (r$11 = 0; r$11 < t$7; r$11++) n$10 += String.fromCharCode(255 & e$11), e$11 >>>= 8;
					return n$10;
				}
				function n$9(e$11, t$7, r$11, n$10, i$8, s$6) {
					var a$2, o$10, h$5 = e$11.file, u$4 = e$11.compression, l$3 = s$6 !== O.utf8encode, f$4 = I$2.transformTo("string", s$6(h$5.name)), c$7 = I$2.transformTo("string", O.utf8encode(h$5.name)), d$5 = h$5.comment, p$3 = I$2.transformTo("string", s$6(d$5)), m$3 = I$2.transformTo("string", O.utf8encode(d$5)), _$2 = c$7.length !== h$5.name.length, g$1 = m$3.length !== d$5.length, b$3 = "", v$3 = "", y$3 = "", w$2 = h$5.dir, k$2 = h$5.date, x$2 = {
						crc32: 0,
						compressedSize: 0,
						uncompressedSize: 0
					};
					t$7 && !r$11 || (x$2.crc32 = e$11.crc32, x$2.compressedSize = e$11.compressedSize, x$2.uncompressedSize = e$11.uncompressedSize);
					var S$4 = 0;
					t$7 && (S$4 |= 8), l$3 || !_$2 && !g$1 || (S$4 |= 2048);
					var z$2 = 0, C$2 = 0;
					w$2 && (z$2 |= 16), "UNIX" === i$8 ? (C$2 = 798, z$2 |= function(e$12, t$8) {
						var r$12 = e$12;
						return e$12 || (r$12 = t$8 ? 16893 : 33204), (65535 & r$12) << 16;
					}(h$5.unixPermissions, w$2)) : (C$2 = 20, z$2 |= function(e$12) {
						return 63 & (e$12 || 0);
					}(h$5.dosPermissions)), a$2 = k$2.getUTCHours(), a$2 <<= 6, a$2 |= k$2.getUTCMinutes(), a$2 <<= 5, a$2 |= k$2.getUTCSeconds() / 2, o$10 = k$2.getUTCFullYear() - 1980, o$10 <<= 4, o$10 |= k$2.getUTCMonth() + 1, o$10 <<= 5, o$10 |= k$2.getUTCDate(), _$2 && (v$3 = A$1(1, 1) + A$1(B$2(f$4), 4) + c$7, b$3 += "up" + A$1(v$3.length, 2) + v$3), g$1 && (y$3 = A$1(1, 1) + A$1(B$2(p$3), 4) + m$3, b$3 += "uc" + A$1(y$3.length, 2) + y$3);
					var E$2 = "";
					return E$2 += "\n\0", E$2 += A$1(S$4, 2), E$2 += u$4.magic, E$2 += A$1(a$2, 2), E$2 += A$1(o$10, 2), E$2 += A$1(x$2.crc32, 4), E$2 += A$1(x$2.compressedSize, 4), E$2 += A$1(x$2.uncompressedSize, 4), E$2 += A$1(f$4.length, 2), E$2 += A$1(b$3.length, 2), {
						fileRecord: R$1.LOCAL_FILE_HEADER + E$2 + f$4 + b$3,
						dirRecord: R$1.CENTRAL_FILE_HEADER + A$1(C$2, 2) + E$2 + A$1(p$3.length, 2) + "\0\0\0\0" + A$1(z$2, 4) + A$1(n$10, 4) + f$4 + b$3 + p$3
					};
				}
				var I$2 = e$10("../utils"), i$7 = e$10("../stream/GenericWorker"), O = e$10("../utf8"), B$2 = e$10("../crc32"), R$1 = e$10("../signature");
				function s$5(e$11, t$7, r$11, n$10) {
					i$7.call(this, "ZipFileWorker"), this.bytesWritten = 0, this.zipComment = t$7, this.zipPlatform = r$11, this.encodeFileName = n$10, this.streamFiles = e$11, this.accumulate = !1, this.contentBuffer = [], this.dirRecords = [], this.currentSourceOffset = 0, this.entriesCount = 0, this.currentFile = null, this._sources = [];
				}
				I$2.inherits(s$5, i$7), s$5.prototype.push = function(e$11) {
					var t$7 = e$11.meta.percent || 0, r$11 = this.entriesCount, n$10 = this._sources.length;
					this.accumulate ? this.contentBuffer.push(e$11) : (this.bytesWritten += e$11.data.length, i$7.prototype.push.call(this, {
						data: e$11.data,
						meta: {
							currentFile: this.currentFile,
							percent: r$11 ? (t$7 + 100 * (r$11 - n$10 - 1)) / r$11 : 100
						}
					}));
				}, s$5.prototype.openedSource = function(e$11) {
					this.currentSourceOffset = this.bytesWritten, this.currentFile = e$11.file.name;
					var t$7 = this.streamFiles && !e$11.file.dir;
					if (t$7) {
						var r$11 = n$9(e$11, t$7, !1, this.currentSourceOffset, this.zipPlatform, this.encodeFileName);
						this.push({
							data: r$11.fileRecord,
							meta: { percent: 0 }
						});
					} else this.accumulate = !0;
				}, s$5.prototype.closedSource = function(e$11) {
					this.accumulate = !1;
					var t$7 = this.streamFiles && !e$11.file.dir, r$11 = n$9(e$11, t$7, !0, this.currentSourceOffset, this.zipPlatform, this.encodeFileName);
					if (this.dirRecords.push(r$11.dirRecord), t$7) this.push({
						data: function(e$12) {
							return R$1.DATA_DESCRIPTOR + A$1(e$12.crc32, 4) + A$1(e$12.compressedSize, 4) + A$1(e$12.uncompressedSize, 4);
						}(e$11),
						meta: { percent: 100 }
					});
					else for (this.push({
						data: r$11.fileRecord,
						meta: { percent: 0 }
					}); this.contentBuffer.length;) this.push(this.contentBuffer.shift());
					this.currentFile = null;
				}, s$5.prototype.flush = function() {
					for (var e$11 = this.bytesWritten, t$7 = 0; t$7 < this.dirRecords.length; t$7++) this.push({
						data: this.dirRecords[t$7],
						meta: { percent: 100 }
					});
					var r$11 = this.bytesWritten - e$11, n$10 = function(e$12, t$8, r$12, n$11, i$8) {
						var s$6 = I$2.transformTo("string", i$8(n$11));
						return R$1.CENTRAL_DIRECTORY_END + "\0\0\0\0" + A$1(e$12, 2) + A$1(e$12, 2) + A$1(t$8, 4) + A$1(r$12, 4) + A$1(s$6.length, 2) + s$6;
					}(this.dirRecords.length, r$11, e$11, this.zipComment, this.encodeFileName);
					this.push({
						data: n$10,
						meta: { percent: 100 }
					});
				}, s$5.prototype.prepareNextSource = function() {
					this.previous = this._sources.shift(), this.openedSource(this.previous.streamInfo), this.isPaused ? this.previous.pause() : this.previous.resume();
				}, s$5.prototype.registerPrevious = function(e$11) {
					this._sources.push(e$11);
					var t$7 = this;
					return e$11.on("data", function(e$12) {
						t$7.processChunk(e$12);
					}), e$11.on("end", function() {
						t$7.closedSource(t$7.previous.streamInfo), t$7._sources.length ? t$7.prepareNextSource() : t$7.end();
					}), e$11.on("error", function(e$12) {
						t$7.error(e$12);
					}), this;
				}, s$5.prototype.resume = function() {
					return !!i$7.prototype.resume.call(this) && (!this.previous && this._sources.length ? (this.prepareNextSource(), !0) : this.previous || this._sources.length || this.generatedError ? void 0 : (this.end(), !0));
				}, s$5.prototype.error = function(e$11) {
					var t$7 = this._sources;
					if (!i$7.prototype.error.call(this, e$11)) return !1;
					for (var r$11 = 0; r$11 < t$7.length; r$11++) try {
						t$7[r$11].error(e$11);
					} catch (e$12) {}
					return !0;
				}, s$5.prototype.lock = function() {
					i$7.prototype.lock.call(this);
					for (var e$11 = this._sources, t$7 = 0; t$7 < e$11.length; t$7++) e$11[t$7].lock();
				}, t$6.exports = s$5;
			}, {
				"../crc32": 4,
				"../signature": 23,
				"../stream/GenericWorker": 28,
				"../utf8": 31,
				"../utils": 32
			}],
			9: [function(e$10, t$6, r$10) {
				"use strict";
				var u$4 = e$10("../compressions"), n$9 = e$10("./ZipFileWorker");
				r$10.generateWorker = function(e$11, a$2, t$7) {
					var o$10 = new n$9(a$2.streamFiles, t$7, a$2.platform, a$2.encodeFileName), h$5 = 0;
					try {
						e$11.forEach(function(e$12, t$8) {
							h$5++;
							var r$11 = function(e$13, t$9) {
								var r$12 = e$13 || t$9, n$11 = u$4[r$12];
								if (!n$11) throw new Error(r$12 + " is not a valid compression method !");
								return n$11;
							}(t$8.options.compression, a$2.compression), n$10 = t$8.options.compressionOptions || a$2.compressionOptions || {}, i$7 = t$8.dir, s$5 = t$8.date;
							t$8._compressWorker(r$11, n$10).withStreamInfo("file", {
								name: e$12,
								dir: i$7,
								date: s$5,
								comment: t$8.comment || "",
								unixPermissions: t$8.unixPermissions,
								dosPermissions: t$8.dosPermissions
							}).pipe(o$10);
						}), o$10.entriesCount = h$5;
					} catch (e$12) {
						o$10.error(e$12);
					}
					return o$10;
				};
			}, {
				"../compressions": 3,
				"./ZipFileWorker": 8
			}],
			10: [function(e$10, t$6, r$10) {
				"use strict";
				function n$9() {
					if (!(this instanceof n$9)) return new n$9();
					if (arguments.length) throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");
					this.files = Object.create(null), this.comment = null, this.root = "", this.clone = function() {
						var e$11 = new n$9();
						for (var t$7 in this) "function" != typeof this[t$7] && (e$11[t$7] = this[t$7]);
						return e$11;
					};
				}
				(n$9.prototype = e$10("./object")).loadAsync = e$10("./load"), n$9.support = e$10("./support"), n$9.defaults = e$10("./defaults"), n$9.version = "3.10.1", n$9.loadAsync = function(e$11, t$7) {
					return new n$9().loadAsync(e$11, t$7);
				}, n$9.external = e$10("./external"), t$6.exports = n$9;
			}, {
				"./defaults": 5,
				"./external": 6,
				"./load": 11,
				"./object": 15,
				"./support": 30
			}],
			11: [function(e$10, t$6, r$10) {
				"use strict";
				var u$4 = e$10("./utils"), i$7 = e$10("./external"), n$9 = e$10("./utf8"), s$5 = e$10("./zipEntries"), a$2 = e$10("./stream/Crc32Probe"), l$3 = e$10("./nodejsUtils");
				function f$4(n$10) {
					return new i$7.Promise(function(e$11, t$7) {
						var r$11 = n$10.decompressed.getContentWorker().pipe(new a$2());
						r$11.on("error", function(e$12) {
							t$7(e$12);
						}).on("end", function() {
							r$11.streamInfo.crc32 !== n$10.decompressed.crc32 ? t$7(new Error("Corrupted zip : CRC32 mismatch")) : e$11();
						}).resume();
					});
				}
				t$6.exports = function(e$11, o$10) {
					var h$5 = this;
					return o$10 = u$4.extend(o$10 || {}, {
						base64: !1,
						checkCRC32: !1,
						optimizedBinaryString: !1,
						createFolders: !1,
						decodeFileName: n$9.utf8decode
					}), l$3.isNode && l$3.isStream(e$11) ? i$7.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")) : u$4.prepareContent("the loaded zip file", e$11, !0, o$10.optimizedBinaryString, o$10.base64).then(function(e$12) {
						var t$7 = new s$5(o$10);
						return t$7.load(e$12), t$7;
					}).then(function(e$12) {
						var t$7 = [i$7.Promise.resolve(e$12)], r$11 = e$12.files;
						if (o$10.checkCRC32) for (var n$10 = 0; n$10 < r$11.length; n$10++) t$7.push(f$4(r$11[n$10]));
						return i$7.Promise.all(t$7);
					}).then(function(e$12) {
						for (var t$7 = e$12.shift(), r$11 = t$7.files, n$10 = 0; n$10 < r$11.length; n$10++) {
							var i$8 = r$11[n$10], s$6 = i$8.fileNameStr, a$3 = u$4.resolve(i$8.fileNameStr);
							h$5.file(a$3, i$8.decompressed, {
								binary: !0,
								optimizedBinaryString: !0,
								date: i$8.date,
								dir: i$8.dir,
								comment: i$8.fileCommentStr.length ? i$8.fileCommentStr : null,
								unixPermissions: i$8.unixPermissions,
								dosPermissions: i$8.dosPermissions,
								createFolders: o$10.createFolders
							}), i$8.dir || (h$5.file(a$3).unsafeOriginalName = s$6);
						}
						return t$7.zipComment.length && (h$5.comment = t$7.zipComment), h$5;
					});
				};
			}, {
				"./external": 6,
				"./nodejsUtils": 14,
				"./stream/Crc32Probe": 25,
				"./utf8": 31,
				"./utils": 32,
				"./zipEntries": 33
			}],
			12: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = e$10("../utils"), i$7 = e$10("../stream/GenericWorker");
				function s$5(e$11, t$7) {
					i$7.call(this, "Nodejs stream input adapter for " + e$11), this._upstreamEnded = !1, this._bindStream(t$7);
				}
				n$9.inherits(s$5, i$7), s$5.prototype._bindStream = function(e$11) {
					var t$7 = this;
					(this._stream = e$11).pause(), e$11.on("data", function(e$12) {
						t$7.push({
							data: e$12,
							meta: { percent: 0 }
						});
					}).on("error", function(e$12) {
						t$7.isPaused ? this.generatedError = e$12 : t$7.error(e$12);
					}).on("end", function() {
						t$7.isPaused ? t$7._upstreamEnded = !0 : t$7.end();
					});
				}, s$5.prototype.pause = function() {
					return !!i$7.prototype.pause.call(this) && (this._stream.pause(), !0);
				}, s$5.prototype.resume = function() {
					return !!i$7.prototype.resume.call(this) && (this._upstreamEnded ? this.end() : this._stream.resume(), !0);
				}, t$6.exports = s$5;
			}, {
				"../stream/GenericWorker": 28,
				"../utils": 32
			}],
			13: [function(e$10, t$6, r$10) {
				"use strict";
				var i$7 = e$10("readable-stream").Readable;
				function n$9(e$11, t$7, r$11) {
					i$7.call(this, t$7), this._helper = e$11;
					var n$10 = this;
					e$11.on("data", function(e$12, t$8) {
						n$10.push(e$12) || n$10._helper.pause(), r$11 && r$11(t$8);
					}).on("error", function(e$12) {
						n$10.emit("error", e$12);
					}).on("end", function() {
						n$10.push(null);
					});
				}
				e$10("../utils").inherits(n$9, i$7), n$9.prototype._read = function() {
					this._helper.resume();
				}, t$6.exports = n$9;
			}, {
				"../utils": 32,
				"readable-stream": 16
			}],
			14: [function(e$10, t$6, r$10) {
				"use strict";
				t$6.exports = {
					isNode: "undefined" != typeof Buffer,
					newBufferFrom: function(e$11, t$7) {
						if (Buffer.from && Buffer.from !== Uint8Array.from) return Buffer.from(e$11, t$7);
						if ("number" == typeof e$11) throw new Error("The \"data\" argument must not be a number");
						return new Buffer(e$11, t$7);
					},
					allocBuffer: function(e$11) {
						if (Buffer.alloc) return Buffer.alloc(e$11);
						var t$7 = new Buffer(e$11);
						return t$7.fill(0), t$7;
					},
					isBuffer: function(e$11) {
						return Buffer.isBuffer(e$11);
					},
					isStream: function(e$11) {
						return e$11 && "function" == typeof e$11.on && "function" == typeof e$11.pause && "function" == typeof e$11.resume;
					}
				};
			}, {}],
			15: [function(e$10, t$6, r$10) {
				"use strict";
				function s$5(e$11, t$7, r$11) {
					var n$10, i$8 = u$4.getTypeOf(t$7), s$6 = u$4.extend(r$11 || {}, f$4);
					s$6.date = s$6.date || new Date(), null !== s$6.compression && (s$6.compression = s$6.compression.toUpperCase()), "string" == typeof s$6.unixPermissions && (s$6.unixPermissions = parseInt(s$6.unixPermissions, 8)), s$6.unixPermissions && 16384 & s$6.unixPermissions && (s$6.dir = !0), s$6.dosPermissions && 16 & s$6.dosPermissions && (s$6.dir = !0), s$6.dir && (e$11 = g$1(e$11)), s$6.createFolders && (n$10 = _$2(e$11)) && b$3.call(this, n$10, !0);
					var a$3 = "string" === i$8 && !1 === s$6.binary && !1 === s$6.base64;
					r$11 && void 0 !== r$11.binary || (s$6.binary = !a$3), (t$7 instanceof c$7 && 0 === t$7.uncompressedSize || s$6.dir || !t$7 || 0 === t$7.length) && (s$6.base64 = !1, s$6.binary = !0, t$7 = "", s$6.compression = "STORE", i$8 = "string");
					var o$11 = null;
					o$11 = t$7 instanceof c$7 || t$7 instanceof l$3 ? t$7 : p$3.isNode && p$3.isStream(t$7) ? new m$3(e$11, t$7) : u$4.prepareContent(e$11, t$7, s$6.binary, s$6.optimizedBinaryString, s$6.base64);
					var h$6 = new d$5(e$11, o$11, s$6);
					this.files[e$11] = h$6;
				}
				var i$7 = e$10("./utf8"), u$4 = e$10("./utils"), l$3 = e$10("./stream/GenericWorker"), a$2 = e$10("./stream/StreamHelper"), f$4 = e$10("./defaults"), c$7 = e$10("./compressedObject"), d$5 = e$10("./zipObject"), o$10 = e$10("./generate"), p$3 = e$10("./nodejsUtils"), m$3 = e$10("./nodejs/NodejsStreamInputAdapter"), _$2 = function(e$11) {
					"/" === e$11.slice(-1) && (e$11 = e$11.substring(0, e$11.length - 1));
					var t$7 = e$11.lastIndexOf("/");
					return 0 < t$7 ? e$11.substring(0, t$7) : "";
				}, g$1 = function(e$11) {
					return "/" !== e$11.slice(-1) && (e$11 += "/"), e$11;
				}, b$3 = function(e$11, t$7) {
					return t$7 = void 0 !== t$7 ? t$7 : f$4.createFolders, e$11 = g$1(e$11), this.files[e$11] || s$5.call(this, e$11, null, {
						dir: !0,
						createFolders: t$7
					}), this.files[e$11];
				};
				function h$5(e$11) {
					return "[object RegExp]" === Object.prototype.toString.call(e$11);
				}
				var n$9 = {
					load: function() {
						throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
					},
					forEach: function(e$11) {
						var t$7, r$11, n$10;
						for (t$7 in this.files) n$10 = this.files[t$7], (r$11 = t$7.slice(this.root.length, t$7.length)) && t$7.slice(0, this.root.length) === this.root && e$11(r$11, n$10);
					},
					filter: function(r$11) {
						var n$10 = [];
						return this.forEach(function(e$11, t$7) {
							r$11(e$11, t$7) && n$10.push(t$7);
						}), n$10;
					},
					file: function(e$11, t$7, r$11) {
						if (1 !== arguments.length) return e$11 = this.root + e$11, s$5.call(this, e$11, t$7, r$11), this;
						if (h$5(e$11)) {
							var n$10 = e$11;
							return this.filter(function(e$12, t$8) {
								return !t$8.dir && n$10.test(e$12);
							});
						}
						var i$8 = this.files[this.root + e$11];
						return i$8 && !i$8.dir ? i$8 : null;
					},
					folder: function(r$11) {
						if (!r$11) return this;
						if (h$5(r$11)) return this.filter(function(e$12, t$8) {
							return t$8.dir && r$11.test(e$12);
						});
						var e$11 = this.root + r$11, t$7 = b$3.call(this, e$11), n$10 = this.clone();
						return n$10.root = t$7.name, n$10;
					},
					remove: function(r$11) {
						r$11 = this.root + r$11;
						var e$11 = this.files[r$11];
						if (e$11 || ("/" !== r$11.slice(-1) && (r$11 += "/"), e$11 = this.files[r$11]), e$11 && !e$11.dir) delete this.files[r$11];
						else for (var t$7 = this.filter(function(e$12, t$8) {
							return t$8.name.slice(0, r$11.length) === r$11;
						}), n$10 = 0; n$10 < t$7.length; n$10++) delete this.files[t$7[n$10].name];
						return this;
					},
					generate: function() {
						throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
					},
					generateInternalStream: function(e$11) {
						var t$7, r$11 = {};
						try {
							if ((r$11 = u$4.extend(e$11 || {}, {
								streamFiles: !1,
								compression: "STORE",
								compressionOptions: null,
								type: "",
								platform: "DOS",
								comment: null,
								mimeType: "application/zip",
								encodeFileName: i$7.utf8encode
							})).type = r$11.type.toLowerCase(), r$11.compression = r$11.compression.toUpperCase(), "binarystring" === r$11.type && (r$11.type = "string"), !r$11.type) throw new Error("No output type specified.");
							u$4.checkSupport(r$11.type), "darwin" !== r$11.platform && "freebsd" !== r$11.platform && "linux" !== r$11.platform && "sunos" !== r$11.platform || (r$11.platform = "UNIX"), "win32" === r$11.platform && (r$11.platform = "DOS");
							var n$10 = r$11.comment || this.comment || "";
							t$7 = o$10.generateWorker(this, r$11, n$10);
						} catch (e$12) {
							(t$7 = new l$3("error")).error(e$12);
						}
						return new a$2(t$7, r$11.type || "string", r$11.mimeType);
					},
					generateAsync: function(e$11, t$7) {
						return this.generateInternalStream(e$11).accumulate(t$7);
					},
					generateNodeStream: function(e$11, t$7) {
						return (e$11 = e$11 || {}).type || (e$11.type = "nodebuffer"), this.generateInternalStream(e$11).toNodejsStream(t$7);
					}
				};
				t$6.exports = n$9;
			}, {
				"./compressedObject": 2,
				"./defaults": 5,
				"./generate": 9,
				"./nodejs/NodejsStreamInputAdapter": 12,
				"./nodejsUtils": 14,
				"./stream/GenericWorker": 28,
				"./stream/StreamHelper": 29,
				"./utf8": 31,
				"./utils": 32,
				"./zipObject": 35
			}],
			16: [function(e$10, t$6, r$10) {
				"use strict";
				t$6.exports = e$10("stream");
			}, { stream: void 0 }],
			17: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = e$10("./DataReader");
				function i$7(e$11) {
					n$9.call(this, e$11);
					for (var t$7 = 0; t$7 < this.data.length; t$7++) e$11[t$7] = 255 & e$11[t$7];
				}
				e$10("../utils").inherits(i$7, n$9), i$7.prototype.byteAt = function(e$11) {
					return this.data[this.zero + e$11];
				}, i$7.prototype.lastIndexOfSignature = function(e$11) {
					for (var t$7 = e$11.charCodeAt(0), r$11 = e$11.charCodeAt(1), n$10 = e$11.charCodeAt(2), i$8 = e$11.charCodeAt(3), s$5 = this.length - 4; 0 <= s$5; --s$5) if (this.data[s$5] === t$7 && this.data[s$5 + 1] === r$11 && this.data[s$5 + 2] === n$10 && this.data[s$5 + 3] === i$8) return s$5 - this.zero;
					return -1;
				}, i$7.prototype.readAndCheckSignature = function(e$11) {
					var t$7 = e$11.charCodeAt(0), r$11 = e$11.charCodeAt(1), n$10 = e$11.charCodeAt(2), i$8 = e$11.charCodeAt(3), s$5 = this.readData(4);
					return t$7 === s$5[0] && r$11 === s$5[1] && n$10 === s$5[2] && i$8 === s$5[3];
				}, i$7.prototype.readData = function(e$11) {
					if (this.checkOffset(e$11), 0 === e$11) return [];
					var t$7 = this.data.slice(this.zero + this.index, this.zero + this.index + e$11);
					return this.index += e$11, t$7;
				}, t$6.exports = i$7;
			}, {
				"../utils": 32,
				"./DataReader": 18
			}],
			18: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = e$10("../utils");
				function i$7(e$11) {
					this.data = e$11, this.length = e$11.length, this.index = 0, this.zero = 0;
				}
				i$7.prototype = {
					checkOffset: function(e$11) {
						this.checkIndex(this.index + e$11);
					},
					checkIndex: function(e$11) {
						if (this.length < this.zero + e$11 || e$11 < 0) throw new Error("End of data reached (data length = " + this.length + ", asked index = " + e$11 + "). Corrupted zip ?");
					},
					setIndex: function(e$11) {
						this.checkIndex(e$11), this.index = e$11;
					},
					skip: function(e$11) {
						this.setIndex(this.index + e$11);
					},
					byteAt: function() {},
					readInt: function(e$11) {
						var t$7, r$11 = 0;
						for (this.checkOffset(e$11), t$7 = this.index + e$11 - 1; t$7 >= this.index; t$7--) r$11 = (r$11 << 8) + this.byteAt(t$7);
						return this.index += e$11, r$11;
					},
					readString: function(e$11) {
						return n$9.transformTo("string", this.readData(e$11));
					},
					readData: function() {},
					lastIndexOfSignature: function() {},
					readAndCheckSignature: function() {},
					readDate: function() {
						var e$11 = this.readInt(4);
						return new Date(Date.UTC(1980 + (e$11 >> 25 & 127), (e$11 >> 21 & 15) - 1, e$11 >> 16 & 31, e$11 >> 11 & 31, e$11 >> 5 & 63, (31 & e$11) << 1));
					}
				}, t$6.exports = i$7;
			}, { "../utils": 32 }],
			19: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = e$10("./Uint8ArrayReader");
				function i$7(e$11) {
					n$9.call(this, e$11);
				}
				e$10("../utils").inherits(i$7, n$9), i$7.prototype.readData = function(e$11) {
					this.checkOffset(e$11);
					var t$7 = this.data.slice(this.zero + this.index, this.zero + this.index + e$11);
					return this.index += e$11, t$7;
				}, t$6.exports = i$7;
			}, {
				"../utils": 32,
				"./Uint8ArrayReader": 21
			}],
			20: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = e$10("./DataReader");
				function i$7(e$11) {
					n$9.call(this, e$11);
				}
				e$10("../utils").inherits(i$7, n$9), i$7.prototype.byteAt = function(e$11) {
					return this.data.charCodeAt(this.zero + e$11);
				}, i$7.prototype.lastIndexOfSignature = function(e$11) {
					return this.data.lastIndexOf(e$11) - this.zero;
				}, i$7.prototype.readAndCheckSignature = function(e$11) {
					return e$11 === this.readData(4);
				}, i$7.prototype.readData = function(e$11) {
					this.checkOffset(e$11);
					var t$7 = this.data.slice(this.zero + this.index, this.zero + this.index + e$11);
					return this.index += e$11, t$7;
				}, t$6.exports = i$7;
			}, {
				"../utils": 32,
				"./DataReader": 18
			}],
			21: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = e$10("./ArrayReader");
				function i$7(e$11) {
					n$9.call(this, e$11);
				}
				e$10("../utils").inherits(i$7, n$9), i$7.prototype.readData = function(e$11) {
					if (this.checkOffset(e$11), 0 === e$11) return new Uint8Array(0);
					var t$7 = this.data.subarray(this.zero + this.index, this.zero + this.index + e$11);
					return this.index += e$11, t$7;
				}, t$6.exports = i$7;
			}, {
				"../utils": 32,
				"./ArrayReader": 17
			}],
			22: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = e$10("../utils"), i$7 = e$10("../support"), s$5 = e$10("./ArrayReader"), a$2 = e$10("./StringReader"), o$10 = e$10("./NodeBufferReader"), h$5 = e$10("./Uint8ArrayReader");
				t$6.exports = function(e$11) {
					var t$7 = n$9.getTypeOf(e$11);
					return n$9.checkSupport(t$7), "string" !== t$7 || i$7.uint8array ? "nodebuffer" === t$7 ? new o$10(e$11) : i$7.uint8array ? new h$5(n$9.transformTo("uint8array", e$11)) : new s$5(n$9.transformTo("array", e$11)) : new a$2(e$11);
				};
			}, {
				"../support": 30,
				"../utils": 32,
				"./ArrayReader": 17,
				"./NodeBufferReader": 19,
				"./StringReader": 20,
				"./Uint8ArrayReader": 21
			}],
			23: [function(e$10, t$6, r$10) {
				"use strict";
				r$10.LOCAL_FILE_HEADER = "PK", r$10.CENTRAL_FILE_HEADER = "PK", r$10.CENTRAL_DIRECTORY_END = "PK", r$10.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\x07", r$10.ZIP64_CENTRAL_DIRECTORY_END = "PK", r$10.DATA_DESCRIPTOR = "PK\x07\b";
			}, {}],
			24: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = e$10("./GenericWorker"), i$7 = e$10("../utils");
				function s$5(e$11) {
					n$9.call(this, "ConvertWorker to " + e$11), this.destType = e$11;
				}
				i$7.inherits(s$5, n$9), s$5.prototype.processChunk = function(e$11) {
					this.push({
						data: i$7.transformTo(this.destType, e$11.data),
						meta: e$11.meta
					});
				}, t$6.exports = s$5;
			}, {
				"../utils": 32,
				"./GenericWorker": 28
			}],
			25: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = e$10("./GenericWorker"), i$7 = e$10("../crc32");
				function s$5() {
					n$9.call(this, "Crc32Probe"), this.withStreamInfo("crc32", 0);
				}
				e$10("../utils").inherits(s$5, n$9), s$5.prototype.processChunk = function(e$11) {
					this.streamInfo.crc32 = i$7(e$11.data, this.streamInfo.crc32 || 0), this.push(e$11);
				}, t$6.exports = s$5;
			}, {
				"../crc32": 4,
				"../utils": 32,
				"./GenericWorker": 28
			}],
			26: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = e$10("../utils"), i$7 = e$10("./GenericWorker");
				function s$5(e$11) {
					i$7.call(this, "DataLengthProbe for " + e$11), this.propName = e$11, this.withStreamInfo(e$11, 0);
				}
				n$9.inherits(s$5, i$7), s$5.prototype.processChunk = function(e$11) {
					if (e$11) {
						var t$7 = this.streamInfo[this.propName] || 0;
						this.streamInfo[this.propName] = t$7 + e$11.data.length;
					}
					i$7.prototype.processChunk.call(this, e$11);
				}, t$6.exports = s$5;
			}, {
				"../utils": 32,
				"./GenericWorker": 28
			}],
			27: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = e$10("../utils"), i$7 = e$10("./GenericWorker");
				function s$5(e$11) {
					i$7.call(this, "DataWorker");
					var t$7 = this;
					this.dataIsReady = !1, this.index = 0, this.max = 0, this.data = null, this.type = "", this._tickScheduled = !1, e$11.then(function(e$12) {
						t$7.dataIsReady = !0, t$7.data = e$12, t$7.max = e$12 && e$12.length || 0, t$7.type = n$9.getTypeOf(e$12), t$7.isPaused || t$7._tickAndRepeat();
					}, function(e$12) {
						t$7.error(e$12);
					});
				}
				n$9.inherits(s$5, i$7), s$5.prototype.cleanUp = function() {
					i$7.prototype.cleanUp.call(this), this.data = null;
				}, s$5.prototype.resume = function() {
					return !!i$7.prototype.resume.call(this) && (!this._tickScheduled && this.dataIsReady && (this._tickScheduled = !0, n$9.delay(this._tickAndRepeat, [], this)), !0);
				}, s$5.prototype._tickAndRepeat = function() {
					this._tickScheduled = !1, this.isPaused || this.isFinished || (this._tick(), this.isFinished || (n$9.delay(this._tickAndRepeat, [], this), this._tickScheduled = !0));
				}, s$5.prototype._tick = function() {
					if (this.isPaused || this.isFinished) return !1;
					var e$11 = null, t$7 = Math.min(this.max, this.index + 16384);
					if (this.index >= this.max) return this.end();
					switch (this.type) {
						case "string":
							e$11 = this.data.substring(this.index, t$7);
							break;
						case "uint8array":
							e$11 = this.data.subarray(this.index, t$7);
							break;
						case "array":
						case "nodebuffer": e$11 = this.data.slice(this.index, t$7);
					}
					return this.index = t$7, this.push({
						data: e$11,
						meta: { percent: this.max ? this.index / this.max * 100 : 0 }
					});
				}, t$6.exports = s$5;
			}, {
				"../utils": 32,
				"./GenericWorker": 28
			}],
			28: [function(e$10, t$6, r$10) {
				"use strict";
				function n$9(e$11) {
					this.name = e$11 || "default", this.streamInfo = {}, this.generatedError = null, this.extraStreamInfo = {}, this.isPaused = !0, this.isFinished = !1, this.isLocked = !1, this._listeners = {
						data: [],
						end: [],
						error: []
					}, this.previous = null;
				}
				n$9.prototype = {
					push: function(e$11) {
						this.emit("data", e$11);
					},
					end: function() {
						if (this.isFinished) return !1;
						this.flush();
						try {
							this.emit("end"), this.cleanUp(), this.isFinished = !0;
						} catch (e$11) {
							this.emit("error", e$11);
						}
						return !0;
					},
					error: function(e$11) {
						return !this.isFinished && (this.isPaused ? this.generatedError = e$11 : (this.isFinished = !0, this.emit("error", e$11), this.previous && this.previous.error(e$11), this.cleanUp()), !0);
					},
					on: function(e$11, t$7) {
						return this._listeners[e$11].push(t$7), this;
					},
					cleanUp: function() {
						this.streamInfo = this.generatedError = this.extraStreamInfo = null, this._listeners = [];
					},
					emit: function(e$11, t$7) {
						if (this._listeners[e$11]) for (var r$11 = 0; r$11 < this._listeners[e$11].length; r$11++) this._listeners[e$11][r$11].call(this, t$7);
					},
					pipe: function(e$11) {
						return e$11.registerPrevious(this);
					},
					registerPrevious: function(e$11) {
						if (this.isLocked) throw new Error("The stream '" + this + "' has already been used.");
						this.streamInfo = e$11.streamInfo, this.mergeStreamInfo(), this.previous = e$11;
						var t$7 = this;
						return e$11.on("data", function(e$12) {
							t$7.processChunk(e$12);
						}), e$11.on("end", function() {
							t$7.end();
						}), e$11.on("error", function(e$12) {
							t$7.error(e$12);
						}), this;
					},
					pause: function() {
						return !this.isPaused && !this.isFinished && (this.isPaused = !0, this.previous && this.previous.pause(), !0);
					},
					resume: function() {
						if (!this.isPaused || this.isFinished) return !1;
						var e$11 = this.isPaused = !1;
						return this.generatedError && (this.error(this.generatedError), e$11 = !0), this.previous && this.previous.resume(), !e$11;
					},
					flush: function() {},
					processChunk: function(e$11) {
						this.push(e$11);
					},
					withStreamInfo: function(e$11, t$7) {
						return this.extraStreamInfo[e$11] = t$7, this.mergeStreamInfo(), this;
					},
					mergeStreamInfo: function() {
						for (var e$11 in this.extraStreamInfo) Object.prototype.hasOwnProperty.call(this.extraStreamInfo, e$11) && (this.streamInfo[e$11] = this.extraStreamInfo[e$11]);
					},
					lock: function() {
						if (this.isLocked) throw new Error("The stream '" + this + "' has already been used.");
						this.isLocked = !0, this.previous && this.previous.lock();
					},
					toString: function() {
						var e$11 = "Worker " + this.name;
						return this.previous ? this.previous + " -> " + e$11 : e$11;
					}
				}, t$6.exports = n$9;
			}, {}],
			29: [function(e$10, t$6, r$10) {
				"use strict";
				var h$5 = e$10("../utils"), i$7 = e$10("./ConvertWorker"), s$5 = e$10("./GenericWorker"), u$4 = e$10("../base64"), n$9 = e$10("../support"), a$2 = e$10("../external"), o$10 = null;
				if (n$9.nodestream) try {
					o$10 = e$10("../nodejs/NodejsStreamOutputAdapter");
				} catch (e$11) {}
				function l$3(e$11, o$11) {
					return new a$2.Promise(function(t$7, r$11) {
						var n$10 = [], i$8 = e$11._internalType, s$6 = e$11._outputType, a$3 = e$11._mimeType;
						e$11.on("data", function(e$12, t$8) {
							n$10.push(e$12), o$11 && o$11(t$8);
						}).on("error", function(e$12) {
							n$10 = [], r$11(e$12);
						}).on("end", function() {
							try {
								var e$12 = function(e$13, t$8, r$12) {
									switch (e$13) {
										case "blob": return h$5.newBlob(h$5.transformTo("arraybuffer", t$8), r$12);
										case "base64": return u$4.encode(t$8);
										default: return h$5.transformTo(e$13, t$8);
									}
								}(s$6, function(e$13, t$8) {
									var r$12, n$11 = 0, i$9 = null, s$7 = 0;
									for (r$12 = 0; r$12 < t$8.length; r$12++) s$7 += t$8[r$12].length;
									switch (e$13) {
										case "string": return t$8.join("");
										case "array": return Array.prototype.concat.apply([], t$8);
										case "uint8array":
											for (i$9 = new Uint8Array(s$7), r$12 = 0; r$12 < t$8.length; r$12++) i$9.set(t$8[r$12], n$11), n$11 += t$8[r$12].length;
											return i$9;
										case "nodebuffer": return Buffer.concat(t$8);
										default: throw new Error("concat : unsupported type '" + e$13 + "'");
									}
								}(i$8, n$10), a$3);
								t$7(e$12);
							} catch (e$13) {
								r$11(e$13);
							}
							n$10 = [];
						}).resume();
					});
				}
				function f$4(e$11, t$7, r$11) {
					var n$10 = t$7;
					switch (t$7) {
						case "blob":
						case "arraybuffer":
							n$10 = "uint8array";
							break;
						case "base64": n$10 = "string";
					}
					try {
						this._internalType = n$10, this._outputType = t$7, this._mimeType = r$11, h$5.checkSupport(n$10), this._worker = e$11.pipe(new i$7(n$10)), e$11.lock();
					} catch (e$12) {
						this._worker = new s$5("error"), this._worker.error(e$12);
					}
				}
				f$4.prototype = {
					accumulate: function(e$11) {
						return l$3(this, e$11);
					},
					on: function(e$11, t$7) {
						var r$11 = this;
						return "data" === e$11 ? this._worker.on(e$11, function(e$12) {
							t$7.call(r$11, e$12.data, e$12.meta);
						}) : this._worker.on(e$11, function() {
							h$5.delay(t$7, arguments, r$11);
						}), this;
					},
					resume: function() {
						return h$5.delay(this._worker.resume, [], this._worker), this;
					},
					pause: function() {
						return this._worker.pause(), this;
					},
					toNodejsStream: function(e$11) {
						if (h$5.checkSupport("nodestream"), "nodebuffer" !== this._outputType) throw new Error(this._outputType + " is not supported by this method");
						return new o$10(this, { objectMode: "nodebuffer" !== this._outputType }, e$11);
					}
				}, t$6.exports = f$4;
			}, {
				"../base64": 1,
				"../external": 6,
				"../nodejs/NodejsStreamOutputAdapter": 13,
				"../support": 30,
				"../utils": 32,
				"./ConvertWorker": 24,
				"./GenericWorker": 28
			}],
			30: [function(e$10, t$6, r$10) {
				"use strict";
				if (r$10.base64 = !0, r$10.array = !0, r$10.string = !0, r$10.arraybuffer = "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8Array, r$10.nodebuffer = "undefined" != typeof Buffer, r$10.uint8array = "undefined" != typeof Uint8Array, "undefined" == typeof ArrayBuffer) r$10.blob = !1;
				else {
					var n$9 = new ArrayBuffer(0);
					try {
						r$10.blob = 0 === new Blob([n$9], { type: "application/zip" }).size;
					} catch (e$11) {
						try {
							var i$7 = new (self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder)();
							i$7.append(n$9), r$10.blob = 0 === i$7.getBlob("application/zip").size;
						} catch (e$12) {
							r$10.blob = !1;
						}
					}
				}
				try {
					r$10.nodestream = !!e$10("readable-stream").Readable;
				} catch (e$11) {
					r$10.nodestream = !1;
				}
			}, { "readable-stream": 16 }],
			31: [function(e$10, t$6, s$5) {
				"use strict";
				for (var o$10 = e$10("./utils"), h$5 = e$10("./support"), r$10 = e$10("./nodejsUtils"), n$9 = e$10("./stream/GenericWorker"), u$4 = new Array(256), i$7 = 0; i$7 < 256; i$7++) u$4[i$7] = 252 <= i$7 ? 6 : 248 <= i$7 ? 5 : 240 <= i$7 ? 4 : 224 <= i$7 ? 3 : 192 <= i$7 ? 2 : 1;
				u$4[254] = u$4[254] = 1;
				function a$2() {
					n$9.call(this, "utf-8 decode"), this.leftOver = null;
				}
				function l$3() {
					n$9.call(this, "utf-8 encode");
				}
				s$5.utf8encode = function(e$11) {
					return h$5.nodebuffer ? r$10.newBufferFrom(e$11, "utf-8") : function(e$12) {
						var t$7, r$11, n$10, i$8, s$6, a$3 = e$12.length, o$11 = 0;
						for (i$8 = 0; i$8 < a$3; i$8++) 55296 == (64512 & (r$11 = e$12.charCodeAt(i$8))) && i$8 + 1 < a$3 && 56320 == (64512 & (n$10 = e$12.charCodeAt(i$8 + 1))) && (r$11 = 65536 + (r$11 - 55296 << 10) + (n$10 - 56320), i$8++), o$11 += r$11 < 128 ? 1 : r$11 < 2048 ? 2 : r$11 < 65536 ? 3 : 4;
						for (t$7 = h$5.uint8array ? new Uint8Array(o$11) : new Array(o$11), i$8 = s$6 = 0; s$6 < o$11; i$8++) 55296 == (64512 & (r$11 = e$12.charCodeAt(i$8))) && i$8 + 1 < a$3 && 56320 == (64512 & (n$10 = e$12.charCodeAt(i$8 + 1))) && (r$11 = 65536 + (r$11 - 55296 << 10) + (n$10 - 56320), i$8++), r$11 < 128 ? t$7[s$6++] = r$11 : (r$11 < 2048 ? t$7[s$6++] = 192 | r$11 >>> 6 : (r$11 < 65536 ? t$7[s$6++] = 224 | r$11 >>> 12 : (t$7[s$6++] = 240 | r$11 >>> 18, t$7[s$6++] = 128 | r$11 >>> 12 & 63), t$7[s$6++] = 128 | r$11 >>> 6 & 63), t$7[s$6++] = 128 | 63 & r$11);
						return t$7;
					}(e$11);
				}, s$5.utf8decode = function(e$11) {
					return h$5.nodebuffer ? o$10.transformTo("nodebuffer", e$11).toString("utf-8") : function(e$12) {
						var t$7, r$11, n$10, i$8, s$6 = e$12.length, a$3 = new Array(2 * s$6);
						for (t$7 = r$11 = 0; t$7 < s$6;) if ((n$10 = e$12[t$7++]) < 128) a$3[r$11++] = n$10;
						else if (4 < (i$8 = u$4[n$10])) a$3[r$11++] = 65533, t$7 += i$8 - 1;
						else {
							for (n$10 &= 2 === i$8 ? 31 : 3 === i$8 ? 15 : 7; 1 < i$8 && t$7 < s$6;) n$10 = n$10 << 6 | 63 & e$12[t$7++], i$8--;
							1 < i$8 ? a$3[r$11++] = 65533 : n$10 < 65536 ? a$3[r$11++] = n$10 : (n$10 -= 65536, a$3[r$11++] = 55296 | n$10 >> 10 & 1023, a$3[r$11++] = 56320 | 1023 & n$10);
						}
						return a$3.length !== r$11 && (a$3.subarray ? a$3 = a$3.subarray(0, r$11) : a$3.length = r$11), o$10.applyFromCharCode(a$3);
					}(e$11 = o$10.transformTo(h$5.uint8array ? "uint8array" : "array", e$11));
				}, o$10.inherits(a$2, n$9), a$2.prototype.processChunk = function(e$11) {
					var t$7 = o$10.transformTo(h$5.uint8array ? "uint8array" : "array", e$11.data);
					if (this.leftOver && this.leftOver.length) {
						if (h$5.uint8array) {
							var r$11 = t$7;
							(t$7 = new Uint8Array(r$11.length + this.leftOver.length)).set(this.leftOver, 0), t$7.set(r$11, this.leftOver.length);
						} else t$7 = this.leftOver.concat(t$7);
						this.leftOver = null;
					}
					var n$10 = function(e$12, t$8) {
						var r$12;
						for ((t$8 = t$8 || e$12.length) > e$12.length && (t$8 = e$12.length), r$12 = t$8 - 1; 0 <= r$12 && 128 == (192 & e$12[r$12]);) r$12--;
						return r$12 < 0 ? t$8 : 0 === r$12 ? t$8 : r$12 + u$4[e$12[r$12]] > t$8 ? r$12 : t$8;
					}(t$7), i$8 = t$7;
					n$10 !== t$7.length && (h$5.uint8array ? (i$8 = t$7.subarray(0, n$10), this.leftOver = t$7.subarray(n$10, t$7.length)) : (i$8 = t$7.slice(0, n$10), this.leftOver = t$7.slice(n$10, t$7.length))), this.push({
						data: s$5.utf8decode(i$8),
						meta: e$11.meta
					});
				}, a$2.prototype.flush = function() {
					this.leftOver && this.leftOver.length && (this.push({
						data: s$5.utf8decode(this.leftOver),
						meta: {}
					}), this.leftOver = null);
				}, s$5.Utf8DecodeWorker = a$2, o$10.inherits(l$3, n$9), l$3.prototype.processChunk = function(e$11) {
					this.push({
						data: s$5.utf8encode(e$11.data),
						meta: e$11.meta
					});
				}, s$5.Utf8EncodeWorker = l$3;
			}, {
				"./nodejsUtils": 14,
				"./stream/GenericWorker": 28,
				"./support": 30,
				"./utils": 32
			}],
			32: [function(e$10, t$6, a$2) {
				"use strict";
				var o$10 = e$10("./support"), h$5 = e$10("./base64"), r$10 = e$10("./nodejsUtils"), u$4 = e$10("./external");
				function n$9(e$11) {
					return e$11;
				}
				function l$3(e$11, t$7) {
					for (var r$11 = 0; r$11 < e$11.length; ++r$11) t$7[r$11] = 255 & e$11.charCodeAt(r$11);
					return t$7;
				}
				e$10("setimmediate"), a$2.newBlob = function(t$7, r$11) {
					a$2.checkSupport("blob");
					try {
						return new Blob([t$7], { type: r$11 });
					} catch (e$11) {
						try {
							var n$10 = new (self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder)();
							return n$10.append(t$7), n$10.getBlob(r$11);
						} catch (e$12) {
							throw new Error("Bug : can't construct the Blob.");
						}
					}
				};
				var i$7 = {
					stringifyByChunk: function(e$11, t$7, r$11) {
						var n$10 = [], i$8 = 0, s$6 = e$11.length;
						if (s$6 <= r$11) return String.fromCharCode.apply(null, e$11);
						for (; i$8 < s$6;) "array" === t$7 || "nodebuffer" === t$7 ? n$10.push(String.fromCharCode.apply(null, e$11.slice(i$8, Math.min(i$8 + r$11, s$6)))) : n$10.push(String.fromCharCode.apply(null, e$11.subarray(i$8, Math.min(i$8 + r$11, s$6)))), i$8 += r$11;
						return n$10.join("");
					},
					stringifyByChar: function(e$11) {
						for (var t$7 = "", r$11 = 0; r$11 < e$11.length; r$11++) t$7 += String.fromCharCode(e$11[r$11]);
						return t$7;
					},
					applyCanBeUsed: {
						uint8array: function() {
							try {
								return o$10.uint8array && 1 === String.fromCharCode.apply(null, new Uint8Array(1)).length;
							} catch (e$11) {
								return !1;
							}
						}(),
						nodebuffer: function() {
							try {
								return o$10.nodebuffer && 1 === String.fromCharCode.apply(null, r$10.allocBuffer(1)).length;
							} catch (e$11) {
								return !1;
							}
						}()
					}
				};
				function s$5(e$11) {
					var t$7 = 65536, r$11 = a$2.getTypeOf(e$11), n$10 = !0;
					if ("uint8array" === r$11 ? n$10 = i$7.applyCanBeUsed.uint8array : "nodebuffer" === r$11 && (n$10 = i$7.applyCanBeUsed.nodebuffer), n$10) for (; 1 < t$7;) try {
						return i$7.stringifyByChunk(e$11, r$11, t$7);
					} catch (e$12) {
						t$7 = Math.floor(t$7 / 2);
					}
					return i$7.stringifyByChar(e$11);
				}
				function f$4(e$11, t$7) {
					for (var r$11 = 0; r$11 < e$11.length; r$11++) t$7[r$11] = e$11[r$11];
					return t$7;
				}
				a$2.applyFromCharCode = s$5;
				var c$7 = {};
				c$7.string = {
					string: n$9,
					array: function(e$11) {
						return l$3(e$11, new Array(e$11.length));
					},
					arraybuffer: function(e$11) {
						return c$7.string.uint8array(e$11).buffer;
					},
					uint8array: function(e$11) {
						return l$3(e$11, new Uint8Array(e$11.length));
					},
					nodebuffer: function(e$11) {
						return l$3(e$11, r$10.allocBuffer(e$11.length));
					}
				}, c$7.array = {
					string: s$5,
					array: n$9,
					arraybuffer: function(e$11) {
						return new Uint8Array(e$11).buffer;
					},
					uint8array: function(e$11) {
						return new Uint8Array(e$11);
					},
					nodebuffer: function(e$11) {
						return r$10.newBufferFrom(e$11);
					}
				}, c$7.arraybuffer = {
					string: function(e$11) {
						return s$5(new Uint8Array(e$11));
					},
					array: function(e$11) {
						return f$4(new Uint8Array(e$11), new Array(e$11.byteLength));
					},
					arraybuffer: n$9,
					uint8array: function(e$11) {
						return new Uint8Array(e$11);
					},
					nodebuffer: function(e$11) {
						return r$10.newBufferFrom(new Uint8Array(e$11));
					}
				}, c$7.uint8array = {
					string: s$5,
					array: function(e$11) {
						return f$4(e$11, new Array(e$11.length));
					},
					arraybuffer: function(e$11) {
						return e$11.buffer;
					},
					uint8array: n$9,
					nodebuffer: function(e$11) {
						return r$10.newBufferFrom(e$11);
					}
				}, c$7.nodebuffer = {
					string: s$5,
					array: function(e$11) {
						return f$4(e$11, new Array(e$11.length));
					},
					arraybuffer: function(e$11) {
						return c$7.nodebuffer.uint8array(e$11).buffer;
					},
					uint8array: function(e$11) {
						return f$4(e$11, new Uint8Array(e$11.length));
					},
					nodebuffer: n$9
				}, a$2.transformTo = function(e$11, t$7) {
					if (t$7 = t$7 || "", !e$11) return t$7;
					a$2.checkSupport(e$11);
					var r$11 = a$2.getTypeOf(t$7);
					return c$7[r$11][e$11](t$7);
				}, a$2.resolve = function(e$11) {
					for (var t$7 = e$11.split("/"), r$11 = [], n$10 = 0; n$10 < t$7.length; n$10++) {
						var i$8 = t$7[n$10];
						"." === i$8 || "" === i$8 && 0 !== n$10 && n$10 !== t$7.length - 1 || (".." === i$8 ? r$11.pop() : r$11.push(i$8));
					}
					return r$11.join("/");
				}, a$2.getTypeOf = function(e$11) {
					return "string" == typeof e$11 ? "string" : "[object Array]" === Object.prototype.toString.call(e$11) ? "array" : o$10.nodebuffer && r$10.isBuffer(e$11) ? "nodebuffer" : o$10.uint8array && e$11 instanceof Uint8Array ? "uint8array" : o$10.arraybuffer && e$11 instanceof ArrayBuffer ? "arraybuffer" : void 0;
				}, a$2.checkSupport = function(e$11) {
					if (!o$10[e$11.toLowerCase()]) throw new Error(e$11 + " is not supported by this platform");
				}, a$2.MAX_VALUE_16BITS = 65535, a$2.MAX_VALUE_32BITS = -1, a$2.pretty = function(e$11) {
					var t$7, r$11, n$10 = "";
					for (r$11 = 0; r$11 < (e$11 || "").length; r$11++) n$10 += "\\x" + ((t$7 = e$11.charCodeAt(r$11)) < 16 ? "0" : "") + t$7.toString(16).toUpperCase();
					return n$10;
				}, a$2.delay = function(e$11, t$7, r$11) {
					setImmediate(function() {
						e$11.apply(r$11 || null, t$7 || []);
					});
				}, a$2.inherits = function(e$11, t$7) {
					function r$11() {}
					r$11.prototype = t$7.prototype, e$11.prototype = new r$11();
				}, a$2.extend = function() {
					var e$11, t$7, r$11 = {};
					for (e$11 = 0; e$11 < arguments.length; e$11++) for (t$7 in arguments[e$11]) Object.prototype.hasOwnProperty.call(arguments[e$11], t$7) && void 0 === r$11[t$7] && (r$11[t$7] = arguments[e$11][t$7]);
					return r$11;
				}, a$2.prepareContent = function(r$11, e$11, n$10, i$8, s$6) {
					return u$4.Promise.resolve(e$11).then(function(n$11) {
						return o$10.blob && (n$11 instanceof Blob || -1 !== ["[object File]", "[object Blob]"].indexOf(Object.prototype.toString.call(n$11))) && "undefined" != typeof FileReader ? new u$4.Promise(function(t$7, r$12) {
							var e$12 = new FileReader();
							e$12.onload = function(e$13) {
								t$7(e$13.target.result);
							}, e$12.onerror = function(e$13) {
								r$12(e$13.target.error);
							}, e$12.readAsArrayBuffer(n$11);
						}) : n$11;
					}).then(function(e$12) {
						var t$7 = a$2.getTypeOf(e$12);
						return t$7 ? ("arraybuffer" === t$7 ? e$12 = a$2.transformTo("uint8array", e$12) : "string" === t$7 && (s$6 ? e$12 = h$5.decode(e$12) : n$10 && !0 !== i$8 && (e$12 = function(e$13) {
							return l$3(e$13, o$10.uint8array ? new Uint8Array(e$13.length) : new Array(e$13.length));
						}(e$12))), e$12) : u$4.Promise.reject(new Error("Can't read the data of '" + r$11 + "'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"));
					});
				};
			}, {
				"./base64": 1,
				"./external": 6,
				"./nodejsUtils": 14,
				"./support": 30,
				setimmediate: 54
			}],
			33: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = e$10("./reader/readerFor"), i$7 = e$10("./utils"), s$5 = e$10("./signature"), a$2 = e$10("./zipEntry"), o$10 = e$10("./support");
				function h$5(e$11) {
					this.files = [], this.loadOptions = e$11;
				}
				h$5.prototype = {
					checkSignature: function(e$11) {
						if (!this.reader.readAndCheckSignature(e$11)) {
							this.reader.index -= 4;
							var t$7 = this.reader.readString(4);
							throw new Error("Corrupted zip or bug: unexpected signature (" + i$7.pretty(t$7) + ", expected " + i$7.pretty(e$11) + ")");
						}
					},
					isSignature: function(e$11, t$7) {
						var r$11 = this.reader.index;
						this.reader.setIndex(e$11);
						var n$10 = this.reader.readString(4) === t$7;
						return this.reader.setIndex(r$11), n$10;
					},
					readBlockEndOfCentral: function() {
						this.diskNumber = this.reader.readInt(2), this.diskWithCentralDirStart = this.reader.readInt(2), this.centralDirRecordsOnThisDisk = this.reader.readInt(2), this.centralDirRecords = this.reader.readInt(2), this.centralDirSize = this.reader.readInt(4), this.centralDirOffset = this.reader.readInt(4), this.zipCommentLength = this.reader.readInt(2);
						var e$11 = this.reader.readData(this.zipCommentLength), t$7 = o$10.uint8array ? "uint8array" : "array", r$11 = i$7.transformTo(t$7, e$11);
						this.zipComment = this.loadOptions.decodeFileName(r$11);
					},
					readBlockZip64EndOfCentral: function() {
						this.zip64EndOfCentralSize = this.reader.readInt(8), this.reader.skip(4), this.diskNumber = this.reader.readInt(4), this.diskWithCentralDirStart = this.reader.readInt(4), this.centralDirRecordsOnThisDisk = this.reader.readInt(8), this.centralDirRecords = this.reader.readInt(8), this.centralDirSize = this.reader.readInt(8), this.centralDirOffset = this.reader.readInt(8), this.zip64ExtensibleData = {};
						for (var e$11, t$7, r$11, n$10 = this.zip64EndOfCentralSize - 44; 0 < n$10;) e$11 = this.reader.readInt(2), t$7 = this.reader.readInt(4), r$11 = this.reader.readData(t$7), this.zip64ExtensibleData[e$11] = {
							id: e$11,
							length: t$7,
							value: r$11
						};
					},
					readBlockZip64EndOfCentralLocator: function() {
						if (this.diskWithZip64CentralDirStart = this.reader.readInt(4), this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8), this.disksCount = this.reader.readInt(4), 1 < this.disksCount) throw new Error("Multi-volumes zip are not supported");
					},
					readLocalFiles: function() {
						var e$11, t$7;
						for (e$11 = 0; e$11 < this.files.length; e$11++) t$7 = this.files[e$11], this.reader.setIndex(t$7.localHeaderOffset), this.checkSignature(s$5.LOCAL_FILE_HEADER), t$7.readLocalPart(this.reader), t$7.handleUTF8(), t$7.processAttributes();
					},
					readCentralDir: function() {
						var e$11;
						for (this.reader.setIndex(this.centralDirOffset); this.reader.readAndCheckSignature(s$5.CENTRAL_FILE_HEADER);) (e$11 = new a$2({ zip64: this.zip64 }, this.loadOptions)).readCentralPart(this.reader), this.files.push(e$11);
						if (this.centralDirRecords !== this.files.length && 0 !== this.centralDirRecords && 0 === this.files.length) throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length);
					},
					readEndOfCentral: function() {
						var e$11 = this.reader.lastIndexOfSignature(s$5.CENTRAL_DIRECTORY_END);
						if (e$11 < 0) throw !this.isSignature(0, s$5.LOCAL_FILE_HEADER) ? new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html") : new Error("Corrupted zip: can't find end of central directory");
						this.reader.setIndex(e$11);
						var t$7 = e$11;
						if (this.checkSignature(s$5.CENTRAL_DIRECTORY_END), this.readBlockEndOfCentral(), this.diskNumber === i$7.MAX_VALUE_16BITS || this.diskWithCentralDirStart === i$7.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === i$7.MAX_VALUE_16BITS || this.centralDirRecords === i$7.MAX_VALUE_16BITS || this.centralDirSize === i$7.MAX_VALUE_32BITS || this.centralDirOffset === i$7.MAX_VALUE_32BITS) {
							if (this.zip64 = !0, (e$11 = this.reader.lastIndexOfSignature(s$5.ZIP64_CENTRAL_DIRECTORY_LOCATOR)) < 0) throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");
							if (this.reader.setIndex(e$11), this.checkSignature(s$5.ZIP64_CENTRAL_DIRECTORY_LOCATOR), this.readBlockZip64EndOfCentralLocator(), !this.isSignature(this.relativeOffsetEndOfZip64CentralDir, s$5.ZIP64_CENTRAL_DIRECTORY_END) && (this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(s$5.ZIP64_CENTRAL_DIRECTORY_END), this.relativeOffsetEndOfZip64CentralDir < 0)) throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");
							this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir), this.checkSignature(s$5.ZIP64_CENTRAL_DIRECTORY_END), this.readBlockZip64EndOfCentral();
						}
						var r$11 = this.centralDirOffset + this.centralDirSize;
						this.zip64 && (r$11 += 20, r$11 += 12 + this.zip64EndOfCentralSize);
						var n$10 = t$7 - r$11;
						if (0 < n$10) this.isSignature(t$7, s$5.CENTRAL_FILE_HEADER) || (this.reader.zero = n$10);
						else if (n$10 < 0) throw new Error("Corrupted zip: missing " + Math.abs(n$10) + " bytes.");
					},
					prepareReader: function(e$11) {
						this.reader = n$9(e$11);
					},
					load: function(e$11) {
						this.prepareReader(e$11), this.readEndOfCentral(), this.readCentralDir(), this.readLocalFiles();
					}
				}, t$6.exports = h$5;
			}, {
				"./reader/readerFor": 22,
				"./signature": 23,
				"./support": 30,
				"./utils": 32,
				"./zipEntry": 34
			}],
			34: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = e$10("./reader/readerFor"), s$5 = e$10("./utils"), i$7 = e$10("./compressedObject"), a$2 = e$10("./crc32"), o$10 = e$10("./utf8"), h$5 = e$10("./compressions"), u$4 = e$10("./support");
				function l$3(e$11, t$7) {
					this.options = e$11, this.loadOptions = t$7;
				}
				l$3.prototype = {
					isEncrypted: function() {
						return 1 == (1 & this.bitFlag);
					},
					useUTF8: function() {
						return 2048 == (2048 & this.bitFlag);
					},
					readLocalPart: function(e$11) {
						var t$7, r$11;
						if (e$11.skip(22), this.fileNameLength = e$11.readInt(2), r$11 = e$11.readInt(2), this.fileName = e$11.readData(this.fileNameLength), e$11.skip(r$11), -1 === this.compressedSize || -1 === this.uncompressedSize) throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");
						if (null === (t$7 = function(e$12) {
							for (var t$8 in h$5) if (Object.prototype.hasOwnProperty.call(h$5, t$8) && h$5[t$8].magic === e$12) return h$5[t$8];
							return null;
						}(this.compressionMethod))) throw new Error("Corrupted zip : compression " + s$5.pretty(this.compressionMethod) + " unknown (inner file : " + s$5.transformTo("string", this.fileName) + ")");
						this.decompressed = new i$7(this.compressedSize, this.uncompressedSize, this.crc32, t$7, e$11.readData(this.compressedSize));
					},
					readCentralPart: function(e$11) {
						this.versionMadeBy = e$11.readInt(2), e$11.skip(2), this.bitFlag = e$11.readInt(2), this.compressionMethod = e$11.readString(2), this.date = e$11.readDate(), this.crc32 = e$11.readInt(4), this.compressedSize = e$11.readInt(4), this.uncompressedSize = e$11.readInt(4);
						var t$7 = e$11.readInt(2);
						if (this.extraFieldsLength = e$11.readInt(2), this.fileCommentLength = e$11.readInt(2), this.diskNumberStart = e$11.readInt(2), this.internalFileAttributes = e$11.readInt(2), this.externalFileAttributes = e$11.readInt(4), this.localHeaderOffset = e$11.readInt(4), this.isEncrypted()) throw new Error("Encrypted zip are not supported");
						e$11.skip(t$7), this.readExtraFields(e$11), this.parseZIP64ExtraField(e$11), this.fileComment = e$11.readData(this.fileCommentLength);
					},
					processAttributes: function() {
						this.unixPermissions = null, this.dosPermissions = null;
						var e$11 = this.versionMadeBy >> 8;
						this.dir = !!(16 & this.externalFileAttributes), 0 == e$11 && (this.dosPermissions = 63 & this.externalFileAttributes), 3 == e$11 && (this.unixPermissions = this.externalFileAttributes >> 16 & 65535), this.dir || "/" !== this.fileNameStr.slice(-1) || (this.dir = !0);
					},
					parseZIP64ExtraField: function() {
						if (this.extraFields[1]) {
							var e$11 = n$9(this.extraFields[1].value);
							this.uncompressedSize === s$5.MAX_VALUE_32BITS && (this.uncompressedSize = e$11.readInt(8)), this.compressedSize === s$5.MAX_VALUE_32BITS && (this.compressedSize = e$11.readInt(8)), this.localHeaderOffset === s$5.MAX_VALUE_32BITS && (this.localHeaderOffset = e$11.readInt(8)), this.diskNumberStart === s$5.MAX_VALUE_32BITS && (this.diskNumberStart = e$11.readInt(4));
						}
					},
					readExtraFields: function(e$11) {
						var t$7, r$11, n$10, i$8 = e$11.index + this.extraFieldsLength;
						for (this.extraFields || (this.extraFields = {}); e$11.index + 4 < i$8;) t$7 = e$11.readInt(2), r$11 = e$11.readInt(2), n$10 = e$11.readData(r$11), this.extraFields[t$7] = {
							id: t$7,
							length: r$11,
							value: n$10
						};
						e$11.setIndex(i$8);
					},
					handleUTF8: function() {
						var e$11 = u$4.uint8array ? "uint8array" : "array";
						if (this.useUTF8()) this.fileNameStr = o$10.utf8decode(this.fileName), this.fileCommentStr = o$10.utf8decode(this.fileComment);
						else {
							var t$7 = this.findExtraFieldUnicodePath();
							if (null !== t$7) this.fileNameStr = t$7;
							else {
								var r$11 = s$5.transformTo(e$11, this.fileName);
								this.fileNameStr = this.loadOptions.decodeFileName(r$11);
							}
							var n$10 = this.findExtraFieldUnicodeComment();
							if (null !== n$10) this.fileCommentStr = n$10;
							else {
								var i$8 = s$5.transformTo(e$11, this.fileComment);
								this.fileCommentStr = this.loadOptions.decodeFileName(i$8);
							}
						}
					},
					findExtraFieldUnicodePath: function() {
						var e$11 = this.extraFields[28789];
						if (e$11) {
							var t$7 = n$9(e$11.value);
							return 1 !== t$7.readInt(1) ? null : a$2(this.fileName) !== t$7.readInt(4) ? null : o$10.utf8decode(t$7.readData(e$11.length - 5));
						}
						return null;
					},
					findExtraFieldUnicodeComment: function() {
						var e$11 = this.extraFields[25461];
						if (e$11) {
							var t$7 = n$9(e$11.value);
							return 1 !== t$7.readInt(1) ? null : a$2(this.fileComment) !== t$7.readInt(4) ? null : o$10.utf8decode(t$7.readData(e$11.length - 5));
						}
						return null;
					}
				}, t$6.exports = l$3;
			}, {
				"./compressedObject": 2,
				"./compressions": 3,
				"./crc32": 4,
				"./reader/readerFor": 22,
				"./support": 30,
				"./utf8": 31,
				"./utils": 32
			}],
			35: [function(e$10, t$6, r$10) {
				"use strict";
				function n$9(e$11, t$7, r$11) {
					this.name = e$11, this.dir = r$11.dir, this.date = r$11.date, this.comment = r$11.comment, this.unixPermissions = r$11.unixPermissions, this.dosPermissions = r$11.dosPermissions, this._data = t$7, this._dataBinary = r$11.binary, this.options = {
						compression: r$11.compression,
						compressionOptions: r$11.compressionOptions
					};
				}
				var s$5 = e$10("./stream/StreamHelper"), i$7 = e$10("./stream/DataWorker"), a$2 = e$10("./utf8"), o$10 = e$10("./compressedObject"), h$5 = e$10("./stream/GenericWorker");
				n$9.prototype = {
					internalStream: function(e$11) {
						var t$7 = null, r$11 = "string";
						try {
							if (!e$11) throw new Error("No output type specified.");
							var n$10 = "string" === (r$11 = e$11.toLowerCase()) || "text" === r$11;
							"binarystring" !== r$11 && "text" !== r$11 || (r$11 = "string"), t$7 = this._decompressWorker();
							var i$8 = !this._dataBinary;
							i$8 && !n$10 && (t$7 = t$7.pipe(new a$2.Utf8EncodeWorker())), !i$8 && n$10 && (t$7 = t$7.pipe(new a$2.Utf8DecodeWorker()));
						} catch (e$12) {
							(t$7 = new h$5("error")).error(e$12);
						}
						return new s$5(t$7, r$11, "");
					},
					async: function(e$11, t$7) {
						return this.internalStream(e$11).accumulate(t$7);
					},
					nodeStream: function(e$11, t$7) {
						return this.internalStream(e$11 || "nodebuffer").toNodejsStream(t$7);
					},
					_compressWorker: function(e$11, t$7) {
						if (this._data instanceof o$10 && this._data.compression.magic === e$11.magic) return this._data.getCompressedWorker();
						var r$11 = this._decompressWorker();
						return this._dataBinary || (r$11 = r$11.pipe(new a$2.Utf8EncodeWorker())), o$10.createWorkerFrom(r$11, e$11, t$7);
					},
					_decompressWorker: function() {
						return this._data instanceof o$10 ? this._data.getContentWorker() : this._data instanceof h$5 ? this._data : new i$7(this._data);
					}
				};
				for (var u$4 = [
					"asText",
					"asBinary",
					"asNodeBuffer",
					"asUint8Array",
					"asArrayBuffer"
				], l$3 = function() {
					throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
				}, f$4 = 0; f$4 < u$4.length; f$4++) n$9.prototype[u$4[f$4]] = l$3;
				t$6.exports = n$9;
			}, {
				"./compressedObject": 2,
				"./stream/DataWorker": 27,
				"./stream/GenericWorker": 28,
				"./stream/StreamHelper": 29,
				"./utf8": 31
			}],
			36: [function(e$10, l$3, t$6) {
				(function(t$7) {
					"use strict";
					var r$10, n$9, e$11 = t$7.MutationObserver || t$7.WebKitMutationObserver;
					if (e$11) {
						var i$7 = 0, s$5 = new e$11(u$4), a$2 = t$7.document.createTextNode("");
						s$5.observe(a$2, { characterData: !0 }), r$10 = function() {
							a$2.data = i$7 = ++i$7 % 2;
						};
					} else if (t$7.setImmediate || void 0 === t$7.MessageChannel) r$10 = "document" in t$7 && "onreadystatechange" in t$7.document.createElement("script") ? function() {
						var e$12 = t$7.document.createElement("script");
						e$12.onreadystatechange = function() {
							u$4(), e$12.onreadystatechange = null, e$12.parentNode.removeChild(e$12), e$12 = null;
						}, t$7.document.documentElement.appendChild(e$12);
					} : function() {
						setTimeout(u$4, 0);
					};
					else {
						var o$10 = new t$7.MessageChannel();
						o$10.port1.onmessage = u$4, r$10 = function() {
							o$10.port2.postMessage(0);
						};
					}
					var h$5 = [];
					function u$4() {
						var e$12, t$8;
						n$9 = !0;
						for (var r$11 = h$5.length; r$11;) {
							for (t$8 = h$5, h$5 = [], e$12 = -1; ++e$12 < r$11;) t$8[e$12]();
							r$11 = h$5.length;
						}
						n$9 = !1;
					}
					l$3.exports = function(e$12) {
						1 !== h$5.push(e$12) || n$9 || r$10();
					};
				}).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {});
			}, {}],
			37: [function(e$10, t$6, r$10) {
				"use strict";
				var i$7 = e$10("immediate");
				function u$4() {}
				var l$3 = {}, s$5 = ["REJECTED"], a$2 = ["FULFILLED"], n$9 = ["PENDING"];
				function o$10(e$11) {
					if ("function" != typeof e$11) throw new TypeError("resolver must be a function");
					this.state = n$9, this.queue = [], this.outcome = void 0, e$11 !== u$4 && d$5(this, e$11);
				}
				function h$5(e$11, t$7, r$11) {
					this.promise = e$11, "function" == typeof t$7 && (this.onFulfilled = t$7, this.callFulfilled = this.otherCallFulfilled), "function" == typeof r$11 && (this.onRejected = r$11, this.callRejected = this.otherCallRejected);
				}
				function f$4(t$7, r$11, n$10) {
					i$7(function() {
						var e$11;
						try {
							e$11 = r$11(n$10);
						} catch (e$12) {
							return l$3.reject(t$7, e$12);
						}
						e$11 === t$7 ? l$3.reject(t$7, new TypeError("Cannot resolve promise with itself")) : l$3.resolve(t$7, e$11);
					});
				}
				function c$7(e$11) {
					var t$7 = e$11 && e$11.then;
					if (e$11 && ("object" == typeof e$11 || "function" == typeof e$11) && "function" == typeof t$7) return function() {
						t$7.apply(e$11, arguments);
					};
				}
				function d$5(t$7, e$11) {
					var r$11 = !1;
					function n$10(e$12) {
						r$11 || (r$11 = !0, l$3.reject(t$7, e$12));
					}
					function i$8(e$12) {
						r$11 || (r$11 = !0, l$3.resolve(t$7, e$12));
					}
					var s$6 = p$3(function() {
						e$11(i$8, n$10);
					});
					"error" === s$6.status && n$10(s$6.value);
				}
				function p$3(e$11, t$7) {
					var r$11 = {};
					try {
						r$11.value = e$11(t$7), r$11.status = "success";
					} catch (e$12) {
						r$11.status = "error", r$11.value = e$12;
					}
					return r$11;
				}
				(t$6.exports = o$10).prototype.finally = function(t$7) {
					if ("function" != typeof t$7) return this;
					var r$11 = this.constructor;
					return this.then(function(e$11) {
						return r$11.resolve(t$7()).then(function() {
							return e$11;
						});
					}, function(e$11) {
						return r$11.resolve(t$7()).then(function() {
							throw e$11;
						});
					});
				}, o$10.prototype.catch = function(e$11) {
					return this.then(null, e$11);
				}, o$10.prototype.then = function(e$11, t$7) {
					if ("function" != typeof e$11 && this.state === a$2 || "function" != typeof t$7 && this.state === s$5) return this;
					var r$11 = new this.constructor(u$4);
					this.state !== n$9 ? f$4(r$11, this.state === a$2 ? e$11 : t$7, this.outcome) : this.queue.push(new h$5(r$11, e$11, t$7));
					return r$11;
				}, h$5.prototype.callFulfilled = function(e$11) {
					l$3.resolve(this.promise, e$11);
				}, h$5.prototype.otherCallFulfilled = function(e$11) {
					f$4(this.promise, this.onFulfilled, e$11);
				}, h$5.prototype.callRejected = function(e$11) {
					l$3.reject(this.promise, e$11);
				}, h$5.prototype.otherCallRejected = function(e$11) {
					f$4(this.promise, this.onRejected, e$11);
				}, l$3.resolve = function(e$11, t$7) {
					var r$11 = p$3(c$7, t$7);
					if ("error" === r$11.status) return l$3.reject(e$11, r$11.value);
					var n$10 = r$11.value;
					if (n$10) d$5(e$11, n$10);
					else {
						e$11.state = a$2, e$11.outcome = t$7;
						for (var i$8 = -1, s$6 = e$11.queue.length; ++i$8 < s$6;) e$11.queue[i$8].callFulfilled(t$7);
					}
					return e$11;
				}, l$3.reject = function(e$11, t$7) {
					e$11.state = s$5, e$11.outcome = t$7;
					for (var r$11 = -1, n$10 = e$11.queue.length; ++r$11 < n$10;) e$11.queue[r$11].callRejected(t$7);
					return e$11;
				}, o$10.resolve = function(e$11) {
					if (e$11 instanceof this) return e$11;
					return l$3.resolve(new this(u$4), e$11);
				}, o$10.reject = function(e$11) {
					var t$7 = new this(u$4);
					return l$3.reject(t$7, e$11);
				}, o$10.all = function(e$11) {
					var r$11 = this;
					if ("[object Array]" !== Object.prototype.toString.call(e$11)) return this.reject(new TypeError("must be an array"));
					var n$10 = e$11.length, i$8 = !1;
					if (!n$10) return this.resolve([]);
					var s$6 = new Array(n$10), a$3 = 0, t$7 = -1, o$11 = new this(u$4);
					for (; ++t$7 < n$10;) h$6(e$11[t$7], t$7);
					return o$11;
					function h$6(e$12, t$8) {
						r$11.resolve(e$12).then(function(e$13) {
							s$6[t$8] = e$13, ++a$3 !== n$10 || i$8 || (i$8 = !0, l$3.resolve(o$11, s$6));
						}, function(e$13) {
							i$8 || (i$8 = !0, l$3.reject(o$11, e$13));
						});
					}
				}, o$10.race = function(e$11) {
					var t$7 = this;
					if ("[object Array]" !== Object.prototype.toString.call(e$11)) return this.reject(new TypeError("must be an array"));
					var r$11 = e$11.length, n$10 = !1;
					if (!r$11) return this.resolve([]);
					var i$8 = -1, s$6 = new this(u$4);
					for (; ++i$8 < r$11;) a$3 = e$11[i$8], t$7.resolve(a$3).then(function(e$12) {
						n$10 || (n$10 = !0, l$3.resolve(s$6, e$12));
					}, function(e$12) {
						n$10 || (n$10 = !0, l$3.reject(s$6, e$12));
					});
					var a$3;
					return s$6;
				};
			}, { immediate: 36 }],
			38: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = {};
				(0, e$10("./lib/utils/common").assign)(n$9, e$10("./lib/deflate"), e$10("./lib/inflate"), e$10("./lib/zlib/constants")), t$6.exports = n$9;
			}, {
				"./lib/deflate": 39,
				"./lib/inflate": 40,
				"./lib/utils/common": 41,
				"./lib/zlib/constants": 44
			}],
			39: [function(e$10, t$6, r$10) {
				"use strict";
				var a$2 = e$10("./zlib/deflate"), o$10 = e$10("./utils/common"), h$5 = e$10("./utils/strings"), i$7 = e$10("./zlib/messages"), s$5 = e$10("./zlib/zstream"), u$4 = Object.prototype.toString, l$3 = 0, f$4 = -1, c$7 = 0, d$5 = 8;
				function p$3(e$11) {
					if (!(this instanceof p$3)) return new p$3(e$11);
					this.options = o$10.assign({
						level: f$4,
						method: d$5,
						chunkSize: 16384,
						windowBits: 15,
						memLevel: 8,
						strategy: c$7,
						to: ""
					}, e$11 || {});
					var t$7 = this.options;
					t$7.raw && 0 < t$7.windowBits ? t$7.windowBits = -t$7.windowBits : t$7.gzip && 0 < t$7.windowBits && t$7.windowBits < 16 && (t$7.windowBits += 16), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new s$5(), this.strm.avail_out = 0;
					var r$11 = a$2.deflateInit2(this.strm, t$7.level, t$7.method, t$7.windowBits, t$7.memLevel, t$7.strategy);
					if (r$11 !== l$3) throw new Error(i$7[r$11]);
					if (t$7.header && a$2.deflateSetHeader(this.strm, t$7.header), t$7.dictionary) {
						var n$10;
						if (n$10 = "string" == typeof t$7.dictionary ? h$5.string2buf(t$7.dictionary) : "[object ArrayBuffer]" === u$4.call(t$7.dictionary) ? new Uint8Array(t$7.dictionary) : t$7.dictionary, (r$11 = a$2.deflateSetDictionary(this.strm, n$10)) !== l$3) throw new Error(i$7[r$11]);
						this._dict_set = !0;
					}
				}
				function n$9(e$11, t$7) {
					var r$11 = new p$3(t$7);
					if (r$11.push(e$11, !0), r$11.err) throw r$11.msg || i$7[r$11.err];
					return r$11.result;
				}
				p$3.prototype.push = function(e$11, t$7) {
					var r$11, n$10, i$8 = this.strm, s$6 = this.options.chunkSize;
					if (this.ended) return !1;
					n$10 = t$7 === ~~t$7 ? t$7 : !0 === t$7 ? 4 : 0, "string" == typeof e$11 ? i$8.input = h$5.string2buf(e$11) : "[object ArrayBuffer]" === u$4.call(e$11) ? i$8.input = new Uint8Array(e$11) : i$8.input = e$11, i$8.next_in = 0, i$8.avail_in = i$8.input.length;
					do {
						if (0 === i$8.avail_out && (i$8.output = new o$10.Buf8(s$6), i$8.next_out = 0, i$8.avail_out = s$6), 1 !== (r$11 = a$2.deflate(i$8, n$10)) && r$11 !== l$3) return this.onEnd(r$11), !(this.ended = !0);
						0 !== i$8.avail_out && (0 !== i$8.avail_in || 4 !== n$10 && 2 !== n$10) || ("string" === this.options.to ? this.onData(h$5.buf2binstring(o$10.shrinkBuf(i$8.output, i$8.next_out))) : this.onData(o$10.shrinkBuf(i$8.output, i$8.next_out)));
					} while ((0 < i$8.avail_in || 0 === i$8.avail_out) && 1 !== r$11);
					return 4 === n$10 ? (r$11 = a$2.deflateEnd(this.strm), this.onEnd(r$11), this.ended = !0, r$11 === l$3) : 2 !== n$10 || (this.onEnd(l$3), !(i$8.avail_out = 0));
				}, p$3.prototype.onData = function(e$11) {
					this.chunks.push(e$11);
				}, p$3.prototype.onEnd = function(e$11) {
					e$11 === l$3 && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = o$10.flattenChunks(this.chunks)), this.chunks = [], this.err = e$11, this.msg = this.strm.msg;
				}, r$10.Deflate = p$3, r$10.deflate = n$9, r$10.deflateRaw = function(e$11, t$7) {
					return (t$7 = t$7 || {}).raw = !0, n$9(e$11, t$7);
				}, r$10.gzip = function(e$11, t$7) {
					return (t$7 = t$7 || {}).gzip = !0, n$9(e$11, t$7);
				};
			}, {
				"./utils/common": 41,
				"./utils/strings": 42,
				"./zlib/deflate": 46,
				"./zlib/messages": 51,
				"./zlib/zstream": 53
			}],
			40: [function(e$10, t$6, r$10) {
				"use strict";
				var c$7 = e$10("./zlib/inflate"), d$5 = e$10("./utils/common"), p$3 = e$10("./utils/strings"), m$3 = e$10("./zlib/constants"), n$9 = e$10("./zlib/messages"), i$7 = e$10("./zlib/zstream"), s$5 = e$10("./zlib/gzheader"), _$2 = Object.prototype.toString;
				function a$2(e$11) {
					if (!(this instanceof a$2)) return new a$2(e$11);
					this.options = d$5.assign({
						chunkSize: 16384,
						windowBits: 0,
						to: ""
					}, e$11 || {});
					var t$7 = this.options;
					t$7.raw && 0 <= t$7.windowBits && t$7.windowBits < 16 && (t$7.windowBits = -t$7.windowBits, 0 === t$7.windowBits && (t$7.windowBits = -15)), !(0 <= t$7.windowBits && t$7.windowBits < 16) || e$11 && e$11.windowBits || (t$7.windowBits += 32), 15 < t$7.windowBits && t$7.windowBits < 48 && 0 == (15 & t$7.windowBits) && (t$7.windowBits |= 15), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new i$7(), this.strm.avail_out = 0;
					var r$11 = c$7.inflateInit2(this.strm, t$7.windowBits);
					if (r$11 !== m$3.Z_OK) throw new Error(n$9[r$11]);
					this.header = new s$5(), c$7.inflateGetHeader(this.strm, this.header);
				}
				function o$10(e$11, t$7) {
					var r$11 = new a$2(t$7);
					if (r$11.push(e$11, !0), r$11.err) throw r$11.msg || n$9[r$11.err];
					return r$11.result;
				}
				a$2.prototype.push = function(e$11, t$7) {
					var r$11, n$10, i$8, s$6, a$3, o$11, h$5 = this.strm, u$4 = this.options.chunkSize, l$3 = this.options.dictionary, f$4 = !1;
					if (this.ended) return !1;
					n$10 = t$7 === ~~t$7 ? t$7 : !0 === t$7 ? m$3.Z_FINISH : m$3.Z_NO_FLUSH, "string" == typeof e$11 ? h$5.input = p$3.binstring2buf(e$11) : "[object ArrayBuffer]" === _$2.call(e$11) ? h$5.input = new Uint8Array(e$11) : h$5.input = e$11, h$5.next_in = 0, h$5.avail_in = h$5.input.length;
					do {
						if (0 === h$5.avail_out && (h$5.output = new d$5.Buf8(u$4), h$5.next_out = 0, h$5.avail_out = u$4), (r$11 = c$7.inflate(h$5, m$3.Z_NO_FLUSH)) === m$3.Z_NEED_DICT && l$3 && (o$11 = "string" == typeof l$3 ? p$3.string2buf(l$3) : "[object ArrayBuffer]" === _$2.call(l$3) ? new Uint8Array(l$3) : l$3, r$11 = c$7.inflateSetDictionary(this.strm, o$11)), r$11 === m$3.Z_BUF_ERROR && !0 === f$4 && (r$11 = m$3.Z_OK, f$4 = !1), r$11 !== m$3.Z_STREAM_END && r$11 !== m$3.Z_OK) return this.onEnd(r$11), !(this.ended = !0);
						h$5.next_out && (0 !== h$5.avail_out && r$11 !== m$3.Z_STREAM_END && (0 !== h$5.avail_in || n$10 !== m$3.Z_FINISH && n$10 !== m$3.Z_SYNC_FLUSH) || ("string" === this.options.to ? (i$8 = p$3.utf8border(h$5.output, h$5.next_out), s$6 = h$5.next_out - i$8, a$3 = p$3.buf2string(h$5.output, i$8), h$5.next_out = s$6, h$5.avail_out = u$4 - s$6, s$6 && d$5.arraySet(h$5.output, h$5.output, i$8, s$6, 0), this.onData(a$3)) : this.onData(d$5.shrinkBuf(h$5.output, h$5.next_out)))), 0 === h$5.avail_in && 0 === h$5.avail_out && (f$4 = !0);
					} while ((0 < h$5.avail_in || 0 === h$5.avail_out) && r$11 !== m$3.Z_STREAM_END);
					return r$11 === m$3.Z_STREAM_END && (n$10 = m$3.Z_FINISH), n$10 === m$3.Z_FINISH ? (r$11 = c$7.inflateEnd(this.strm), this.onEnd(r$11), this.ended = !0, r$11 === m$3.Z_OK) : n$10 !== m$3.Z_SYNC_FLUSH || (this.onEnd(m$3.Z_OK), !(h$5.avail_out = 0));
				}, a$2.prototype.onData = function(e$11) {
					this.chunks.push(e$11);
				}, a$2.prototype.onEnd = function(e$11) {
					e$11 === m$3.Z_OK && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = d$5.flattenChunks(this.chunks)), this.chunks = [], this.err = e$11, this.msg = this.strm.msg;
				}, r$10.Inflate = a$2, r$10.inflate = o$10, r$10.inflateRaw = function(e$11, t$7) {
					return (t$7 = t$7 || {}).raw = !0, o$10(e$11, t$7);
				}, r$10.ungzip = o$10;
			}, {
				"./utils/common": 41,
				"./utils/strings": 42,
				"./zlib/constants": 44,
				"./zlib/gzheader": 47,
				"./zlib/inflate": 49,
				"./zlib/messages": 51,
				"./zlib/zstream": 53
			}],
			41: [function(e$10, t$6, r$10) {
				"use strict";
				var n$9 = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Int32Array;
				r$10.assign = function(e$11) {
					for (var t$7 = Array.prototype.slice.call(arguments, 1); t$7.length;) {
						var r$11 = t$7.shift();
						if (r$11) {
							if ("object" != typeof r$11) throw new TypeError(r$11 + "must be non-object");
							for (var n$10 in r$11) r$11.hasOwnProperty(n$10) && (e$11[n$10] = r$11[n$10]);
						}
					}
					return e$11;
				}, r$10.shrinkBuf = function(e$11, t$7) {
					return e$11.length === t$7 ? e$11 : e$11.subarray ? e$11.subarray(0, t$7) : (e$11.length = t$7, e$11);
				};
				var i$7 = {
					arraySet: function(e$11, t$7, r$11, n$10, i$8) {
						if (t$7.subarray && e$11.subarray) e$11.set(t$7.subarray(r$11, r$11 + n$10), i$8);
						else for (var s$6 = 0; s$6 < n$10; s$6++) e$11[i$8 + s$6] = t$7[r$11 + s$6];
					},
					flattenChunks: function(e$11) {
						var t$7, r$11, n$10, i$8, s$6, a$2;
						for (t$7 = n$10 = 0, r$11 = e$11.length; t$7 < r$11; t$7++) n$10 += e$11[t$7].length;
						for (a$2 = new Uint8Array(n$10), t$7 = i$8 = 0, r$11 = e$11.length; t$7 < r$11; t$7++) s$6 = e$11[t$7], a$2.set(s$6, i$8), i$8 += s$6.length;
						return a$2;
					}
				}, s$5 = {
					arraySet: function(e$11, t$7, r$11, n$10, i$8) {
						for (var s$6 = 0; s$6 < n$10; s$6++) e$11[i$8 + s$6] = t$7[r$11 + s$6];
					},
					flattenChunks: function(e$11) {
						return [].concat.apply([], e$11);
					}
				};
				r$10.setTyped = function(e$11) {
					e$11 ? (r$10.Buf8 = Uint8Array, r$10.Buf16 = Uint16Array, r$10.Buf32 = Int32Array, r$10.assign(r$10, i$7)) : (r$10.Buf8 = Array, r$10.Buf16 = Array, r$10.Buf32 = Array, r$10.assign(r$10, s$5));
				}, r$10.setTyped(n$9);
			}, {}],
			42: [function(e$10, t$6, r$10) {
				"use strict";
				var h$5 = e$10("./common"), i$7 = !0, s$5 = !0;
				try {
					String.fromCharCode.apply(null, [0]);
				} catch (e$11) {
					i$7 = !1;
				}
				try {
					String.fromCharCode.apply(null, new Uint8Array(1));
				} catch (e$11) {
					s$5 = !1;
				}
				for (var u$4 = new h$5.Buf8(256), n$9 = 0; n$9 < 256; n$9++) u$4[n$9] = 252 <= n$9 ? 6 : 248 <= n$9 ? 5 : 240 <= n$9 ? 4 : 224 <= n$9 ? 3 : 192 <= n$9 ? 2 : 1;
				function l$3(e$11, t$7) {
					if (t$7 < 65537 && (e$11.subarray && s$5 || !e$11.subarray && i$7)) return String.fromCharCode.apply(null, h$5.shrinkBuf(e$11, t$7));
					for (var r$11 = "", n$10 = 0; n$10 < t$7; n$10++) r$11 += String.fromCharCode(e$11[n$10]);
					return r$11;
				}
				u$4[254] = u$4[254] = 1, r$10.string2buf = function(e$11) {
					var t$7, r$11, n$10, i$8, s$6, a$2 = e$11.length, o$10 = 0;
					for (i$8 = 0; i$8 < a$2; i$8++) 55296 == (64512 & (r$11 = e$11.charCodeAt(i$8))) && i$8 + 1 < a$2 && 56320 == (64512 & (n$10 = e$11.charCodeAt(i$8 + 1))) && (r$11 = 65536 + (r$11 - 55296 << 10) + (n$10 - 56320), i$8++), o$10 += r$11 < 128 ? 1 : r$11 < 2048 ? 2 : r$11 < 65536 ? 3 : 4;
					for (t$7 = new h$5.Buf8(o$10), i$8 = s$6 = 0; s$6 < o$10; i$8++) 55296 == (64512 & (r$11 = e$11.charCodeAt(i$8))) && i$8 + 1 < a$2 && 56320 == (64512 & (n$10 = e$11.charCodeAt(i$8 + 1))) && (r$11 = 65536 + (r$11 - 55296 << 10) + (n$10 - 56320), i$8++), r$11 < 128 ? t$7[s$6++] = r$11 : (r$11 < 2048 ? t$7[s$6++] = 192 | r$11 >>> 6 : (r$11 < 65536 ? t$7[s$6++] = 224 | r$11 >>> 12 : (t$7[s$6++] = 240 | r$11 >>> 18, t$7[s$6++] = 128 | r$11 >>> 12 & 63), t$7[s$6++] = 128 | r$11 >>> 6 & 63), t$7[s$6++] = 128 | 63 & r$11);
					return t$7;
				}, r$10.buf2binstring = function(e$11) {
					return l$3(e$11, e$11.length);
				}, r$10.binstring2buf = function(e$11) {
					for (var t$7 = new h$5.Buf8(e$11.length), r$11 = 0, n$10 = t$7.length; r$11 < n$10; r$11++) t$7[r$11] = e$11.charCodeAt(r$11);
					return t$7;
				}, r$10.buf2string = function(e$11, t$7) {
					var r$11, n$10, i$8, s$6, a$2 = t$7 || e$11.length, o$10 = new Array(2 * a$2);
					for (r$11 = n$10 = 0; r$11 < a$2;) if ((i$8 = e$11[r$11++]) < 128) o$10[n$10++] = i$8;
					else if (4 < (s$6 = u$4[i$8])) o$10[n$10++] = 65533, r$11 += s$6 - 1;
					else {
						for (i$8 &= 2 === s$6 ? 31 : 3 === s$6 ? 15 : 7; 1 < s$6 && r$11 < a$2;) i$8 = i$8 << 6 | 63 & e$11[r$11++], s$6--;
						1 < s$6 ? o$10[n$10++] = 65533 : i$8 < 65536 ? o$10[n$10++] = i$8 : (i$8 -= 65536, o$10[n$10++] = 55296 | i$8 >> 10 & 1023, o$10[n$10++] = 56320 | 1023 & i$8);
					}
					return l$3(o$10, n$10);
				}, r$10.utf8border = function(e$11, t$7) {
					var r$11;
					for ((t$7 = t$7 || e$11.length) > e$11.length && (t$7 = e$11.length), r$11 = t$7 - 1; 0 <= r$11 && 128 == (192 & e$11[r$11]);) r$11--;
					return r$11 < 0 ? t$7 : 0 === r$11 ? t$7 : r$11 + u$4[e$11[r$11]] > t$7 ? r$11 : t$7;
				};
			}, { "./common": 41 }],
			43: [function(e$10, t$6, r$10) {
				"use strict";
				t$6.exports = function(e$11, t$7, r$11, n$9) {
					for (var i$7 = 65535 & e$11 | 0, s$5 = e$11 >>> 16 & 65535 | 0, a$2 = 0; 0 !== r$11;) {
						for (r$11 -= a$2 = 2e3 < r$11 ? 2e3 : r$11; s$5 = s$5 + (i$7 = i$7 + t$7[n$9++] | 0) | 0, --a$2;);
						i$7 %= 65521, s$5 %= 65521;
					}
					return i$7 | s$5 << 16 | 0;
				};
			}, {}],
			44: [function(e$10, t$6, r$10) {
				"use strict";
				t$6.exports = {
					Z_NO_FLUSH: 0,
					Z_PARTIAL_FLUSH: 1,
					Z_SYNC_FLUSH: 2,
					Z_FULL_FLUSH: 3,
					Z_FINISH: 4,
					Z_BLOCK: 5,
					Z_TREES: 6,
					Z_OK: 0,
					Z_STREAM_END: 1,
					Z_NEED_DICT: 2,
					Z_ERRNO: -1,
					Z_STREAM_ERROR: -2,
					Z_DATA_ERROR: -3,
					Z_BUF_ERROR: -5,
					Z_NO_COMPRESSION: 0,
					Z_BEST_SPEED: 1,
					Z_BEST_COMPRESSION: 9,
					Z_DEFAULT_COMPRESSION: -1,
					Z_FILTERED: 1,
					Z_HUFFMAN_ONLY: 2,
					Z_RLE: 3,
					Z_FIXED: 4,
					Z_DEFAULT_STRATEGY: 0,
					Z_BINARY: 0,
					Z_TEXT: 1,
					Z_UNKNOWN: 2,
					Z_DEFLATED: 8
				};
			}, {}],
			45: [function(e$10, t$6, r$10) {
				"use strict";
				var o$10 = function() {
					for (var e$11, t$7 = [], r$11 = 0; r$11 < 256; r$11++) {
						e$11 = r$11;
						for (var n$9 = 0; n$9 < 8; n$9++) e$11 = 1 & e$11 ? 3988292384 ^ e$11 >>> 1 : e$11 >>> 1;
						t$7[r$11] = e$11;
					}
					return t$7;
				}();
				t$6.exports = function(e$11, t$7, r$11, n$9) {
					var i$7 = o$10, s$5 = n$9 + r$11;
					e$11 ^= -1;
					for (var a$2 = n$9; a$2 < s$5; a$2++) e$11 = e$11 >>> 8 ^ i$7[255 & (e$11 ^ t$7[a$2])];
					return -1 ^ e$11;
				};
			}, {}],
			46: [function(e$10, t$6, r$10) {
				"use strict";
				var h$5, c$7 = e$10("../utils/common"), u$4 = e$10("./trees"), d$5 = e$10("./adler32"), p$3 = e$10("./crc32"), n$9 = e$10("./messages"), l$3 = 0, f$4 = 4, m$3 = 0, _$2 = -2, g$1 = -1, b$3 = 4, i$7 = 2, v$3 = 8, y$3 = 9, s$5 = 286, a$2 = 30, o$10 = 19, w$2 = 2 * s$5 + 1, k$2 = 15, x$2 = 3, S$4 = 258, z$2 = S$4 + x$2 + 1, C$2 = 42, E$2 = 113, A$1 = 1, I$2 = 2, O = 3, B$2 = 4;
				function R$1(e$11, t$7) {
					return e$11.msg = n$9[t$7], t$7;
				}
				function T$3(e$11) {
					return (e$11 << 1) - (4 < e$11 ? 9 : 0);
				}
				function D$2(e$11) {
					for (var t$7 = e$11.length; 0 <= --t$7;) e$11[t$7] = 0;
				}
				function F$1(e$11) {
					var t$7 = e$11.state, r$11 = t$7.pending;
					r$11 > e$11.avail_out && (r$11 = e$11.avail_out), 0 !== r$11 && (c$7.arraySet(e$11.output, t$7.pending_buf, t$7.pending_out, r$11, e$11.next_out), e$11.next_out += r$11, t$7.pending_out += r$11, e$11.total_out += r$11, e$11.avail_out -= r$11, t$7.pending -= r$11, 0 === t$7.pending && (t$7.pending_out = 0));
				}
				function N$2(e$11, t$7) {
					u$4._tr_flush_block(e$11, 0 <= e$11.block_start ? e$11.block_start : -1, e$11.strstart - e$11.block_start, t$7), e$11.block_start = e$11.strstart, F$1(e$11.strm);
				}
				function U$1(e$11, t$7) {
					e$11.pending_buf[e$11.pending++] = t$7;
				}
				function P$2(e$11, t$7) {
					e$11.pending_buf[e$11.pending++] = t$7 >>> 8 & 255, e$11.pending_buf[e$11.pending++] = 255 & t$7;
				}
				function L$2(e$11, t$7) {
					var r$11, n$10, i$8 = e$11.max_chain_length, s$6 = e$11.strstart, a$3 = e$11.prev_length, o$11 = e$11.nice_match, h$6 = e$11.strstart > e$11.w_size - z$2 ? e$11.strstart - (e$11.w_size - z$2) : 0, u$5 = e$11.window, l$4 = e$11.w_mask, f$5 = e$11.prev, c$8 = e$11.strstart + S$4, d$6 = u$5[s$6 + a$3 - 1], p$4 = u$5[s$6 + a$3];
					e$11.prev_length >= e$11.good_match && (i$8 >>= 2), o$11 > e$11.lookahead && (o$11 = e$11.lookahead);
					do {
						if (u$5[(r$11 = t$7) + a$3] === p$4 && u$5[r$11 + a$3 - 1] === d$6 && u$5[r$11] === u$5[s$6] && u$5[++r$11] === u$5[s$6 + 1]) {
							s$6 += 2, r$11++;
							do {} while (u$5[++s$6] === u$5[++r$11] && u$5[++s$6] === u$5[++r$11] && u$5[++s$6] === u$5[++r$11] && u$5[++s$6] === u$5[++r$11] && u$5[++s$6] === u$5[++r$11] && u$5[++s$6] === u$5[++r$11] && u$5[++s$6] === u$5[++r$11] && u$5[++s$6] === u$5[++r$11] && s$6 < c$8);
							if (n$10 = S$4 - (c$8 - s$6), s$6 = c$8 - S$4, a$3 < n$10) {
								if (e$11.match_start = t$7, o$11 <= (a$3 = n$10)) break;
								d$6 = u$5[s$6 + a$3 - 1], p$4 = u$5[s$6 + a$3];
							}
						}
					} while ((t$7 = f$5[t$7 & l$4]) > h$6 && 0 != --i$8);
					return a$3 <= e$11.lookahead ? a$3 : e$11.lookahead;
				}
				function j$2(e$11) {
					var t$7, r$11, n$10, i$8, s$6, a$3, o$11, h$6, u$5, l$4, f$5 = e$11.w_size;
					do {
						if (i$8 = e$11.window_size - e$11.lookahead - e$11.strstart, e$11.strstart >= f$5 + (f$5 - z$2)) {
							for (c$7.arraySet(e$11.window, e$11.window, f$5, f$5, 0), e$11.match_start -= f$5, e$11.strstart -= f$5, e$11.block_start -= f$5, t$7 = r$11 = e$11.hash_size; n$10 = e$11.head[--t$7], e$11.head[t$7] = f$5 <= n$10 ? n$10 - f$5 : 0, --r$11;);
							for (t$7 = r$11 = f$5; n$10 = e$11.prev[--t$7], e$11.prev[t$7] = f$5 <= n$10 ? n$10 - f$5 : 0, --r$11;);
							i$8 += f$5;
						}
						if (0 === e$11.strm.avail_in) break;
						if (a$3 = e$11.strm, o$11 = e$11.window, h$6 = e$11.strstart + e$11.lookahead, u$5 = i$8, l$4 = void 0, l$4 = a$3.avail_in, u$5 < l$4 && (l$4 = u$5), r$11 = 0 === l$4 ? 0 : (a$3.avail_in -= l$4, c$7.arraySet(o$11, a$3.input, a$3.next_in, l$4, h$6), 1 === a$3.state.wrap ? a$3.adler = d$5(a$3.adler, o$11, l$4, h$6) : 2 === a$3.state.wrap && (a$3.adler = p$3(a$3.adler, o$11, l$4, h$6)), a$3.next_in += l$4, a$3.total_in += l$4, l$4), e$11.lookahead += r$11, e$11.lookahead + e$11.insert >= x$2) for (s$6 = e$11.strstart - e$11.insert, e$11.ins_h = e$11.window[s$6], e$11.ins_h = (e$11.ins_h << e$11.hash_shift ^ e$11.window[s$6 + 1]) & e$11.hash_mask; e$11.insert && (e$11.ins_h = (e$11.ins_h << e$11.hash_shift ^ e$11.window[s$6 + x$2 - 1]) & e$11.hash_mask, e$11.prev[s$6 & e$11.w_mask] = e$11.head[e$11.ins_h], e$11.head[e$11.ins_h] = s$6, s$6++, e$11.insert--, !(e$11.lookahead + e$11.insert < x$2)););
					} while (e$11.lookahead < z$2 && 0 !== e$11.strm.avail_in);
				}
				function Z$1(e$11, t$7) {
					for (var r$11, n$10;;) {
						if (e$11.lookahead < z$2) {
							if (j$2(e$11), e$11.lookahead < z$2 && t$7 === l$3) return A$1;
							if (0 === e$11.lookahead) break;
						}
						if (r$11 = 0, e$11.lookahead >= x$2 && (e$11.ins_h = (e$11.ins_h << e$11.hash_shift ^ e$11.window[e$11.strstart + x$2 - 1]) & e$11.hash_mask, r$11 = e$11.prev[e$11.strstart & e$11.w_mask] = e$11.head[e$11.ins_h], e$11.head[e$11.ins_h] = e$11.strstart), 0 !== r$11 && e$11.strstart - r$11 <= e$11.w_size - z$2 && (e$11.match_length = L$2(e$11, r$11)), e$11.match_length >= x$2) if (n$10 = u$4._tr_tally(e$11, e$11.strstart - e$11.match_start, e$11.match_length - x$2), e$11.lookahead -= e$11.match_length, e$11.match_length <= e$11.max_lazy_match && e$11.lookahead >= x$2) {
							for (e$11.match_length--; e$11.strstart++, e$11.ins_h = (e$11.ins_h << e$11.hash_shift ^ e$11.window[e$11.strstart + x$2 - 1]) & e$11.hash_mask, r$11 = e$11.prev[e$11.strstart & e$11.w_mask] = e$11.head[e$11.ins_h], e$11.head[e$11.ins_h] = e$11.strstart, 0 != --e$11.match_length;);
							e$11.strstart++;
						} else e$11.strstart += e$11.match_length, e$11.match_length = 0, e$11.ins_h = e$11.window[e$11.strstart], e$11.ins_h = (e$11.ins_h << e$11.hash_shift ^ e$11.window[e$11.strstart + 1]) & e$11.hash_mask;
						else n$10 = u$4._tr_tally(e$11, 0, e$11.window[e$11.strstart]), e$11.lookahead--, e$11.strstart++;
						if (n$10 && (N$2(e$11, !1), 0 === e$11.strm.avail_out)) return A$1;
					}
					return e$11.insert = e$11.strstart < x$2 - 1 ? e$11.strstart : x$2 - 1, t$7 === f$4 ? (N$2(e$11, !0), 0 === e$11.strm.avail_out ? O : B$2) : e$11.last_lit && (N$2(e$11, !1), 0 === e$11.strm.avail_out) ? A$1 : I$2;
				}
				function W$1(e$11, t$7) {
					for (var r$11, n$10, i$8;;) {
						if (e$11.lookahead < z$2) {
							if (j$2(e$11), e$11.lookahead < z$2 && t$7 === l$3) return A$1;
							if (0 === e$11.lookahead) break;
						}
						if (r$11 = 0, e$11.lookahead >= x$2 && (e$11.ins_h = (e$11.ins_h << e$11.hash_shift ^ e$11.window[e$11.strstart + x$2 - 1]) & e$11.hash_mask, r$11 = e$11.prev[e$11.strstart & e$11.w_mask] = e$11.head[e$11.ins_h], e$11.head[e$11.ins_h] = e$11.strstart), e$11.prev_length = e$11.match_length, e$11.prev_match = e$11.match_start, e$11.match_length = x$2 - 1, 0 !== r$11 && e$11.prev_length < e$11.max_lazy_match && e$11.strstart - r$11 <= e$11.w_size - z$2 && (e$11.match_length = L$2(e$11, r$11), e$11.match_length <= 5 && (1 === e$11.strategy || e$11.match_length === x$2 && 4096 < e$11.strstart - e$11.match_start) && (e$11.match_length = x$2 - 1)), e$11.prev_length >= x$2 && e$11.match_length <= e$11.prev_length) {
							for (i$8 = e$11.strstart + e$11.lookahead - x$2, n$10 = u$4._tr_tally(e$11, e$11.strstart - 1 - e$11.prev_match, e$11.prev_length - x$2), e$11.lookahead -= e$11.prev_length - 1, e$11.prev_length -= 2; ++e$11.strstart <= i$8 && (e$11.ins_h = (e$11.ins_h << e$11.hash_shift ^ e$11.window[e$11.strstart + x$2 - 1]) & e$11.hash_mask, r$11 = e$11.prev[e$11.strstart & e$11.w_mask] = e$11.head[e$11.ins_h], e$11.head[e$11.ins_h] = e$11.strstart), 0 != --e$11.prev_length;);
							if (e$11.match_available = 0, e$11.match_length = x$2 - 1, e$11.strstart++, n$10 && (N$2(e$11, !1), 0 === e$11.strm.avail_out)) return A$1;
						} else if (e$11.match_available) {
							if ((n$10 = u$4._tr_tally(e$11, 0, e$11.window[e$11.strstart - 1])) && N$2(e$11, !1), e$11.strstart++, e$11.lookahead--, 0 === e$11.strm.avail_out) return A$1;
						} else e$11.match_available = 1, e$11.strstart++, e$11.lookahead--;
					}
					return e$11.match_available && (n$10 = u$4._tr_tally(e$11, 0, e$11.window[e$11.strstart - 1]), e$11.match_available = 0), e$11.insert = e$11.strstart < x$2 - 1 ? e$11.strstart : x$2 - 1, t$7 === f$4 ? (N$2(e$11, !0), 0 === e$11.strm.avail_out ? O : B$2) : e$11.last_lit && (N$2(e$11, !1), 0 === e$11.strm.avail_out) ? A$1 : I$2;
				}
				function M$3(e$11, t$7, r$11, n$10, i$8) {
					this.good_length = e$11, this.max_lazy = t$7, this.nice_length = r$11, this.max_chain = n$10, this.func = i$8;
				}
				function H$1() {
					this.strm = null, this.status = 0, this.pending_buf = null, this.pending_buf_size = 0, this.pending_out = 0, this.pending = 0, this.wrap = 0, this.gzhead = null, this.gzindex = 0, this.method = v$3, this.last_flush = -1, this.w_size = 0, this.w_bits = 0, this.w_mask = 0, this.window = null, this.window_size = 0, this.prev = null, this.head = null, this.ins_h = 0, this.hash_size = 0, this.hash_bits = 0, this.hash_mask = 0, this.hash_shift = 0, this.block_start = 0, this.match_length = 0, this.prev_match = 0, this.match_available = 0, this.strstart = 0, this.match_start = 0, this.lookahead = 0, this.prev_length = 0, this.max_chain_length = 0, this.max_lazy_match = 0, this.level = 0, this.strategy = 0, this.good_match = 0, this.nice_match = 0, this.dyn_ltree = new c$7.Buf16(2 * w$2), this.dyn_dtree = new c$7.Buf16(2 * (2 * a$2 + 1)), this.bl_tree = new c$7.Buf16(2 * (2 * o$10 + 1)), D$2(this.dyn_ltree), D$2(this.dyn_dtree), D$2(this.bl_tree), this.l_desc = null, this.d_desc = null, this.bl_desc = null, this.bl_count = new c$7.Buf16(k$2 + 1), this.heap = new c$7.Buf16(2 * s$5 + 1), D$2(this.heap), this.heap_len = 0, this.heap_max = 0, this.depth = new c$7.Buf16(2 * s$5 + 1), D$2(this.depth), this.l_buf = 0, this.lit_bufsize = 0, this.last_lit = 0, this.d_buf = 0, this.opt_len = 0, this.static_len = 0, this.matches = 0, this.insert = 0, this.bi_buf = 0, this.bi_valid = 0;
				}
				function G$1(e$11) {
					var t$7;
					return e$11 && e$11.state ? (e$11.total_in = e$11.total_out = 0, e$11.data_type = i$7, (t$7 = e$11.state).pending = 0, t$7.pending_out = 0, t$7.wrap < 0 && (t$7.wrap = -t$7.wrap), t$7.status = t$7.wrap ? C$2 : E$2, e$11.adler = 2 === t$7.wrap ? 0 : 1, t$7.last_flush = l$3, u$4._tr_init(t$7), m$3) : R$1(e$11, _$2);
				}
				function K$1(e$11) {
					var t$7 = G$1(e$11);
					return t$7 === m$3 && function(e$12) {
						e$12.window_size = 2 * e$12.w_size, D$2(e$12.head), e$12.max_lazy_match = h$5[e$12.level].max_lazy, e$12.good_match = h$5[e$12.level].good_length, e$12.nice_match = h$5[e$12.level].nice_length, e$12.max_chain_length = h$5[e$12.level].max_chain, e$12.strstart = 0, e$12.block_start = 0, e$12.lookahead = 0, e$12.insert = 0, e$12.match_length = e$12.prev_length = x$2 - 1, e$12.match_available = 0, e$12.ins_h = 0;
					}(e$11.state), t$7;
				}
				function Y(e$11, t$7, r$11, n$10, i$8, s$6) {
					if (!e$11) return _$2;
					var a$3 = 1;
					if (t$7 === g$1 && (t$7 = 6), n$10 < 0 ? (a$3 = 0, n$10 = -n$10) : 15 < n$10 && (a$3 = 2, n$10 -= 16), i$8 < 1 || y$3 < i$8 || r$11 !== v$3 || n$10 < 8 || 15 < n$10 || t$7 < 0 || 9 < t$7 || s$6 < 0 || b$3 < s$6) return R$1(e$11, _$2);
					8 === n$10 && (n$10 = 9);
					var o$11 = new H$1();
					return (e$11.state = o$11).strm = e$11, o$11.wrap = a$3, o$11.gzhead = null, o$11.w_bits = n$10, o$11.w_size = 1 << o$11.w_bits, o$11.w_mask = o$11.w_size - 1, o$11.hash_bits = i$8 + 7, o$11.hash_size = 1 << o$11.hash_bits, o$11.hash_mask = o$11.hash_size - 1, o$11.hash_shift = ~~((o$11.hash_bits + x$2 - 1) / x$2), o$11.window = new c$7.Buf8(2 * o$11.w_size), o$11.head = new c$7.Buf16(o$11.hash_size), o$11.prev = new c$7.Buf16(o$11.w_size), o$11.lit_bufsize = 1 << i$8 + 6, o$11.pending_buf_size = 4 * o$11.lit_bufsize, o$11.pending_buf = new c$7.Buf8(o$11.pending_buf_size), o$11.d_buf = 1 * o$11.lit_bufsize, o$11.l_buf = 3 * o$11.lit_bufsize, o$11.level = t$7, o$11.strategy = s$6, o$11.method = r$11, K$1(e$11);
				}
				h$5 = [
					new M$3(0, 0, 0, 0, function(e$11, t$7) {
						var r$11 = 65535;
						for (r$11 > e$11.pending_buf_size - 5 && (r$11 = e$11.pending_buf_size - 5);;) {
							if (e$11.lookahead <= 1) {
								if (j$2(e$11), 0 === e$11.lookahead && t$7 === l$3) return A$1;
								if (0 === e$11.lookahead) break;
							}
							e$11.strstart += e$11.lookahead, e$11.lookahead = 0;
							var n$10 = e$11.block_start + r$11;
							if ((0 === e$11.strstart || e$11.strstart >= n$10) && (e$11.lookahead = e$11.strstart - n$10, e$11.strstart = n$10, N$2(e$11, !1), 0 === e$11.strm.avail_out)) return A$1;
							if (e$11.strstart - e$11.block_start >= e$11.w_size - z$2 && (N$2(e$11, !1), 0 === e$11.strm.avail_out)) return A$1;
						}
						return e$11.insert = 0, t$7 === f$4 ? (N$2(e$11, !0), 0 === e$11.strm.avail_out ? O : B$2) : (e$11.strstart > e$11.block_start && (N$2(e$11, !1), e$11.strm.avail_out), A$1);
					}),
					new M$3(4, 4, 8, 4, Z$1),
					new M$3(4, 5, 16, 8, Z$1),
					new M$3(4, 6, 32, 32, Z$1),
					new M$3(4, 4, 16, 16, W$1),
					new M$3(8, 16, 32, 32, W$1),
					new M$3(8, 16, 128, 128, W$1),
					new M$3(8, 32, 128, 256, W$1),
					new M$3(32, 128, 258, 1024, W$1),
					new M$3(32, 258, 258, 4096, W$1)
				], r$10.deflateInit = function(e$11, t$7) {
					return Y(e$11, t$7, v$3, 15, 8, 0);
				}, r$10.deflateInit2 = Y, r$10.deflateReset = K$1, r$10.deflateResetKeep = G$1, r$10.deflateSetHeader = function(e$11, t$7) {
					return e$11 && e$11.state ? 2 !== e$11.state.wrap ? _$2 : (e$11.state.gzhead = t$7, m$3) : _$2;
				}, r$10.deflate = function(e$11, t$7) {
					var r$11, n$10, i$8, s$6;
					if (!e$11 || !e$11.state || 5 < t$7 || t$7 < 0) return e$11 ? R$1(e$11, _$2) : _$2;
					if (n$10 = e$11.state, !e$11.output || !e$11.input && 0 !== e$11.avail_in || 666 === n$10.status && t$7 !== f$4) return R$1(e$11, 0 === e$11.avail_out ? -5 : _$2);
					if (n$10.strm = e$11, r$11 = n$10.last_flush, n$10.last_flush = t$7, n$10.status === C$2) if (2 === n$10.wrap) e$11.adler = 0, U$1(n$10, 31), U$1(n$10, 139), U$1(n$10, 8), n$10.gzhead ? (U$1(n$10, (n$10.gzhead.text ? 1 : 0) + (n$10.gzhead.hcrc ? 2 : 0) + (n$10.gzhead.extra ? 4 : 0) + (n$10.gzhead.name ? 8 : 0) + (n$10.gzhead.comment ? 16 : 0)), U$1(n$10, 255 & n$10.gzhead.time), U$1(n$10, n$10.gzhead.time >> 8 & 255), U$1(n$10, n$10.gzhead.time >> 16 & 255), U$1(n$10, n$10.gzhead.time >> 24 & 255), U$1(n$10, 9 === n$10.level ? 2 : 2 <= n$10.strategy || n$10.level < 2 ? 4 : 0), U$1(n$10, 255 & n$10.gzhead.os), n$10.gzhead.extra && n$10.gzhead.extra.length && (U$1(n$10, 255 & n$10.gzhead.extra.length), U$1(n$10, n$10.gzhead.extra.length >> 8 & 255)), n$10.gzhead.hcrc && (e$11.adler = p$3(e$11.adler, n$10.pending_buf, n$10.pending, 0)), n$10.gzindex = 0, n$10.status = 69) : (U$1(n$10, 0), U$1(n$10, 0), U$1(n$10, 0), U$1(n$10, 0), U$1(n$10, 0), U$1(n$10, 9 === n$10.level ? 2 : 2 <= n$10.strategy || n$10.level < 2 ? 4 : 0), U$1(n$10, 3), n$10.status = E$2);
					else {
						var a$3 = v$3 + (n$10.w_bits - 8 << 4) << 8;
						a$3 |= (2 <= n$10.strategy || n$10.level < 2 ? 0 : n$10.level < 6 ? 1 : 6 === n$10.level ? 2 : 3) << 6, 0 !== n$10.strstart && (a$3 |= 32), a$3 += 31 - a$3 % 31, n$10.status = E$2, P$2(n$10, a$3), 0 !== n$10.strstart && (P$2(n$10, e$11.adler >>> 16), P$2(n$10, 65535 & e$11.adler)), e$11.adler = 1;
					}
					if (69 === n$10.status) if (n$10.gzhead.extra) {
						for (i$8 = n$10.pending; n$10.gzindex < (65535 & n$10.gzhead.extra.length) && (n$10.pending !== n$10.pending_buf_size || (n$10.gzhead.hcrc && n$10.pending > i$8 && (e$11.adler = p$3(e$11.adler, n$10.pending_buf, n$10.pending - i$8, i$8)), F$1(e$11), i$8 = n$10.pending, n$10.pending !== n$10.pending_buf_size));) U$1(n$10, 255 & n$10.gzhead.extra[n$10.gzindex]), n$10.gzindex++;
						n$10.gzhead.hcrc && n$10.pending > i$8 && (e$11.adler = p$3(e$11.adler, n$10.pending_buf, n$10.pending - i$8, i$8)), n$10.gzindex === n$10.gzhead.extra.length && (n$10.gzindex = 0, n$10.status = 73);
					} else n$10.status = 73;
					if (73 === n$10.status) if (n$10.gzhead.name) {
						i$8 = n$10.pending;
						do {
							if (n$10.pending === n$10.pending_buf_size && (n$10.gzhead.hcrc && n$10.pending > i$8 && (e$11.adler = p$3(e$11.adler, n$10.pending_buf, n$10.pending - i$8, i$8)), F$1(e$11), i$8 = n$10.pending, n$10.pending === n$10.pending_buf_size)) {
								s$6 = 1;
								break;
							}
							s$6 = n$10.gzindex < n$10.gzhead.name.length ? 255 & n$10.gzhead.name.charCodeAt(n$10.gzindex++) : 0, U$1(n$10, s$6);
						} while (0 !== s$6);
						n$10.gzhead.hcrc && n$10.pending > i$8 && (e$11.adler = p$3(e$11.adler, n$10.pending_buf, n$10.pending - i$8, i$8)), 0 === s$6 && (n$10.gzindex = 0, n$10.status = 91);
					} else n$10.status = 91;
					if (91 === n$10.status) if (n$10.gzhead.comment) {
						i$8 = n$10.pending;
						do {
							if (n$10.pending === n$10.pending_buf_size && (n$10.gzhead.hcrc && n$10.pending > i$8 && (e$11.adler = p$3(e$11.adler, n$10.pending_buf, n$10.pending - i$8, i$8)), F$1(e$11), i$8 = n$10.pending, n$10.pending === n$10.pending_buf_size)) {
								s$6 = 1;
								break;
							}
							s$6 = n$10.gzindex < n$10.gzhead.comment.length ? 255 & n$10.gzhead.comment.charCodeAt(n$10.gzindex++) : 0, U$1(n$10, s$6);
						} while (0 !== s$6);
						n$10.gzhead.hcrc && n$10.pending > i$8 && (e$11.adler = p$3(e$11.adler, n$10.pending_buf, n$10.pending - i$8, i$8)), 0 === s$6 && (n$10.status = 103);
					} else n$10.status = 103;
					if (103 === n$10.status && (n$10.gzhead.hcrc ? (n$10.pending + 2 > n$10.pending_buf_size && F$1(e$11), n$10.pending + 2 <= n$10.pending_buf_size && (U$1(n$10, 255 & e$11.adler), U$1(n$10, e$11.adler >> 8 & 255), e$11.adler = 0, n$10.status = E$2)) : n$10.status = E$2), 0 !== n$10.pending) {
						if (F$1(e$11), 0 === e$11.avail_out) return n$10.last_flush = -1, m$3;
					} else if (0 === e$11.avail_in && T$3(t$7) <= T$3(r$11) && t$7 !== f$4) return R$1(e$11, -5);
					if (666 === n$10.status && 0 !== e$11.avail_in) return R$1(e$11, -5);
					if (0 !== e$11.avail_in || 0 !== n$10.lookahead || t$7 !== l$3 && 666 !== n$10.status) {
						var o$11 = 2 === n$10.strategy ? function(e$12, t$8) {
							for (var r$12;;) {
								if (0 === e$12.lookahead && (j$2(e$12), 0 === e$12.lookahead)) {
									if (t$8 === l$3) return A$1;
									break;
								}
								if (e$12.match_length = 0, r$12 = u$4._tr_tally(e$12, 0, e$12.window[e$12.strstart]), e$12.lookahead--, e$12.strstart++, r$12 && (N$2(e$12, !1), 0 === e$12.strm.avail_out)) return A$1;
							}
							return e$12.insert = 0, t$8 === f$4 ? (N$2(e$12, !0), 0 === e$12.strm.avail_out ? O : B$2) : e$12.last_lit && (N$2(e$12, !1), 0 === e$12.strm.avail_out) ? A$1 : I$2;
						}(n$10, t$7) : 3 === n$10.strategy ? function(e$12, t$8) {
							for (var r$12, n$11, i$9, s$7, a$4 = e$12.window;;) {
								if (e$12.lookahead <= S$4) {
									if (j$2(e$12), e$12.lookahead <= S$4 && t$8 === l$3) return A$1;
									if (0 === e$12.lookahead) break;
								}
								if (e$12.match_length = 0, e$12.lookahead >= x$2 && 0 < e$12.strstart && (n$11 = a$4[i$9 = e$12.strstart - 1]) === a$4[++i$9] && n$11 === a$4[++i$9] && n$11 === a$4[++i$9]) {
									s$7 = e$12.strstart + S$4;
									do {} while (n$11 === a$4[++i$9] && n$11 === a$4[++i$9] && n$11 === a$4[++i$9] && n$11 === a$4[++i$9] && n$11 === a$4[++i$9] && n$11 === a$4[++i$9] && n$11 === a$4[++i$9] && n$11 === a$4[++i$9] && i$9 < s$7);
									e$12.match_length = S$4 - (s$7 - i$9), e$12.match_length > e$12.lookahead && (e$12.match_length = e$12.lookahead);
								}
								if (e$12.match_length >= x$2 ? (r$12 = u$4._tr_tally(e$12, 1, e$12.match_length - x$2), e$12.lookahead -= e$12.match_length, e$12.strstart += e$12.match_length, e$12.match_length = 0) : (r$12 = u$4._tr_tally(e$12, 0, e$12.window[e$12.strstart]), e$12.lookahead--, e$12.strstart++), r$12 && (N$2(e$12, !1), 0 === e$12.strm.avail_out)) return A$1;
							}
							return e$12.insert = 0, t$8 === f$4 ? (N$2(e$12, !0), 0 === e$12.strm.avail_out ? O : B$2) : e$12.last_lit && (N$2(e$12, !1), 0 === e$12.strm.avail_out) ? A$1 : I$2;
						}(n$10, t$7) : h$5[n$10.level].func(n$10, t$7);
						if (o$11 !== O && o$11 !== B$2 || (n$10.status = 666), o$11 === A$1 || o$11 === O) return 0 === e$11.avail_out && (n$10.last_flush = -1), m$3;
						if (o$11 === I$2 && (1 === t$7 ? u$4._tr_align(n$10) : 5 !== t$7 && (u$4._tr_stored_block(n$10, 0, 0, !1), 3 === t$7 && (D$2(n$10.head), 0 === n$10.lookahead && (n$10.strstart = 0, n$10.block_start = 0, n$10.insert = 0))), F$1(e$11), 0 === e$11.avail_out)) return n$10.last_flush = -1, m$3;
					}
					return t$7 !== f$4 ? m$3 : n$10.wrap <= 0 ? 1 : (2 === n$10.wrap ? (U$1(n$10, 255 & e$11.adler), U$1(n$10, e$11.adler >> 8 & 255), U$1(n$10, e$11.adler >> 16 & 255), U$1(n$10, e$11.adler >> 24 & 255), U$1(n$10, 255 & e$11.total_in), U$1(n$10, e$11.total_in >> 8 & 255), U$1(n$10, e$11.total_in >> 16 & 255), U$1(n$10, e$11.total_in >> 24 & 255)) : (P$2(n$10, e$11.adler >>> 16), P$2(n$10, 65535 & e$11.adler)), F$1(e$11), 0 < n$10.wrap && (n$10.wrap = -n$10.wrap), 0 !== n$10.pending ? m$3 : 1);
				}, r$10.deflateEnd = function(e$11) {
					var t$7;
					return e$11 && e$11.state ? (t$7 = e$11.state.status) !== C$2 && 69 !== t$7 && 73 !== t$7 && 91 !== t$7 && 103 !== t$7 && t$7 !== E$2 && 666 !== t$7 ? R$1(e$11, _$2) : (e$11.state = null, t$7 === E$2 ? R$1(e$11, -3) : m$3) : _$2;
				}, r$10.deflateSetDictionary = function(e$11, t$7) {
					var r$11, n$10, i$8, s$6, a$3, o$11, h$6, u$5, l$4 = t$7.length;
					if (!e$11 || !e$11.state) return _$2;
					if (2 === (s$6 = (r$11 = e$11.state).wrap) || 1 === s$6 && r$11.status !== C$2 || r$11.lookahead) return _$2;
					for (1 === s$6 && (e$11.adler = d$5(e$11.adler, t$7, l$4, 0)), r$11.wrap = 0, l$4 >= r$11.w_size && (0 === s$6 && (D$2(r$11.head), r$11.strstart = 0, r$11.block_start = 0, r$11.insert = 0), u$5 = new c$7.Buf8(r$11.w_size), c$7.arraySet(u$5, t$7, l$4 - r$11.w_size, r$11.w_size, 0), t$7 = u$5, l$4 = r$11.w_size), a$3 = e$11.avail_in, o$11 = e$11.next_in, h$6 = e$11.input, e$11.avail_in = l$4, e$11.next_in = 0, e$11.input = t$7, j$2(r$11); r$11.lookahead >= x$2;) {
						for (n$10 = r$11.strstart, i$8 = r$11.lookahead - (x$2 - 1); r$11.ins_h = (r$11.ins_h << r$11.hash_shift ^ r$11.window[n$10 + x$2 - 1]) & r$11.hash_mask, r$11.prev[n$10 & r$11.w_mask] = r$11.head[r$11.ins_h], r$11.head[r$11.ins_h] = n$10, n$10++, --i$8;);
						r$11.strstart = n$10, r$11.lookahead = x$2 - 1, j$2(r$11);
					}
					return r$11.strstart += r$11.lookahead, r$11.block_start = r$11.strstart, r$11.insert = r$11.lookahead, r$11.lookahead = 0, r$11.match_length = r$11.prev_length = x$2 - 1, r$11.match_available = 0, e$11.next_in = o$11, e$11.input = h$6, e$11.avail_in = a$3, r$11.wrap = s$6, m$3;
				}, r$10.deflateInfo = "pako deflate (from Nodeca project)";
			}, {
				"../utils/common": 41,
				"./adler32": 43,
				"./crc32": 45,
				"./messages": 51,
				"./trees": 52
			}],
			47: [function(e$10, t$6, r$10) {
				"use strict";
				t$6.exports = function() {
					this.text = 0, this.time = 0, this.xflags = 0, this.os = 0, this.extra = null, this.extra_len = 0, this.name = "", this.comment = "", this.hcrc = 0, this.done = !1;
				};
			}, {}],
			48: [function(e$10, t$6, r$10) {
				"use strict";
				t$6.exports = function(e$11, t$7) {
					var r$11, n$9, i$7, s$5, a$2, o$10, h$5, u$4, l$3, f$4, c$7, d$5, p$3, m$3, _$2, g$1, b$3, v$3, y$3, w$2, k$2, x$2, S$4, z$2, C$2;
					r$11 = e$11.state, n$9 = e$11.next_in, z$2 = e$11.input, i$7 = n$9 + (e$11.avail_in - 5), s$5 = e$11.next_out, C$2 = e$11.output, a$2 = s$5 - (t$7 - e$11.avail_out), o$10 = s$5 + (e$11.avail_out - 257), h$5 = r$11.dmax, u$4 = r$11.wsize, l$3 = r$11.whave, f$4 = r$11.wnext, c$7 = r$11.window, d$5 = r$11.hold, p$3 = r$11.bits, m$3 = r$11.lencode, _$2 = r$11.distcode, g$1 = (1 << r$11.lenbits) - 1, b$3 = (1 << r$11.distbits) - 1;
					e: do {
						p$3 < 15 && (d$5 += z$2[n$9++] << p$3, p$3 += 8, d$5 += z$2[n$9++] << p$3, p$3 += 8), v$3 = m$3[d$5 & g$1];
						t: for (;;) {
							if (d$5 >>>= y$3 = v$3 >>> 24, p$3 -= y$3, 0 === (y$3 = v$3 >>> 16 & 255)) C$2[s$5++] = 65535 & v$3;
							else {
								if (!(16 & y$3)) {
									if (0 == (64 & y$3)) {
										v$3 = m$3[(65535 & v$3) + (d$5 & (1 << y$3) - 1)];
										continue t;
									}
									if (32 & y$3) {
										r$11.mode = 12;
										break e;
									}
									e$11.msg = "invalid literal/length code", r$11.mode = 30;
									break e;
								}
								w$2 = 65535 & v$3, (y$3 &= 15) && (p$3 < y$3 && (d$5 += z$2[n$9++] << p$3, p$3 += 8), w$2 += d$5 & (1 << y$3) - 1, d$5 >>>= y$3, p$3 -= y$3), p$3 < 15 && (d$5 += z$2[n$9++] << p$3, p$3 += 8, d$5 += z$2[n$9++] << p$3, p$3 += 8), v$3 = _$2[d$5 & b$3];
								r: for (;;) {
									if (d$5 >>>= y$3 = v$3 >>> 24, p$3 -= y$3, !(16 & (y$3 = v$3 >>> 16 & 255))) {
										if (0 == (64 & y$3)) {
											v$3 = _$2[(65535 & v$3) + (d$5 & (1 << y$3) - 1)];
											continue r;
										}
										e$11.msg = "invalid distance code", r$11.mode = 30;
										break e;
									}
									if (k$2 = 65535 & v$3, p$3 < (y$3 &= 15) && (d$5 += z$2[n$9++] << p$3, (p$3 += 8) < y$3 && (d$5 += z$2[n$9++] << p$3, p$3 += 8)), h$5 < (k$2 += d$5 & (1 << y$3) - 1)) {
										e$11.msg = "invalid distance too far back", r$11.mode = 30;
										break e;
									}
									if (d$5 >>>= y$3, p$3 -= y$3, (y$3 = s$5 - a$2) < k$2) {
										if (l$3 < (y$3 = k$2 - y$3) && r$11.sane) {
											e$11.msg = "invalid distance too far back", r$11.mode = 30;
											break e;
										}
										if (S$4 = c$7, (x$2 = 0) === f$4) {
											if (x$2 += u$4 - y$3, y$3 < w$2) {
												for (w$2 -= y$3; C$2[s$5++] = c$7[x$2++], --y$3;);
												x$2 = s$5 - k$2, S$4 = C$2;
											}
										} else if (f$4 < y$3) {
											if (x$2 += u$4 + f$4 - y$3, (y$3 -= f$4) < w$2) {
												for (w$2 -= y$3; C$2[s$5++] = c$7[x$2++], --y$3;);
												if (x$2 = 0, f$4 < w$2) {
													for (w$2 -= y$3 = f$4; C$2[s$5++] = c$7[x$2++], --y$3;);
													x$2 = s$5 - k$2, S$4 = C$2;
												}
											}
										} else if (x$2 += f$4 - y$3, y$3 < w$2) {
											for (w$2 -= y$3; C$2[s$5++] = c$7[x$2++], --y$3;);
											x$2 = s$5 - k$2, S$4 = C$2;
										}
										for (; 2 < w$2;) C$2[s$5++] = S$4[x$2++], C$2[s$5++] = S$4[x$2++], C$2[s$5++] = S$4[x$2++], w$2 -= 3;
										w$2 && (C$2[s$5++] = S$4[x$2++], 1 < w$2 && (C$2[s$5++] = S$4[x$2++]));
									} else {
										for (x$2 = s$5 - k$2; C$2[s$5++] = C$2[x$2++], C$2[s$5++] = C$2[x$2++], C$2[s$5++] = C$2[x$2++], 2 < (w$2 -= 3););
										w$2 && (C$2[s$5++] = C$2[x$2++], 1 < w$2 && (C$2[s$5++] = C$2[x$2++]));
									}
									break;
								}
							}
							break;
						}
					} while (n$9 < i$7 && s$5 < o$10);
					n$9 -= w$2 = p$3 >> 3, d$5 &= (1 << (p$3 -= w$2 << 3)) - 1, e$11.next_in = n$9, e$11.next_out = s$5, e$11.avail_in = n$9 < i$7 ? i$7 - n$9 + 5 : 5 - (n$9 - i$7), e$11.avail_out = s$5 < o$10 ? o$10 - s$5 + 257 : 257 - (s$5 - o$10), r$11.hold = d$5, r$11.bits = p$3;
				};
			}, {}],
			49: [function(e$10, t$6, r$10) {
				"use strict";
				var I$2 = e$10("../utils/common"), O = e$10("./adler32"), B$2 = e$10("./crc32"), R$1 = e$10("./inffast"), T$3 = e$10("./inftrees"), D$2 = 1, F$1 = 2, N$2 = 0, U$1 = -2, P$2 = 1, n$9 = 852, i$7 = 592;
				function L$2(e$11) {
					return (e$11 >>> 24 & 255) + (e$11 >>> 8 & 65280) + ((65280 & e$11) << 8) + ((255 & e$11) << 24);
				}
				function s$5() {
					this.mode = 0, this.last = !1, this.wrap = 0, this.havedict = !1, this.flags = 0, this.dmax = 0, this.check = 0, this.total = 0, this.head = null, this.wbits = 0, this.wsize = 0, this.whave = 0, this.wnext = 0, this.window = null, this.hold = 0, this.bits = 0, this.length = 0, this.offset = 0, this.extra = 0, this.lencode = null, this.distcode = null, this.lenbits = 0, this.distbits = 0, this.ncode = 0, this.nlen = 0, this.ndist = 0, this.have = 0, this.next = null, this.lens = new I$2.Buf16(320), this.work = new I$2.Buf16(288), this.lendyn = null, this.distdyn = null, this.sane = 0, this.back = 0, this.was = 0;
				}
				function a$2(e$11) {
					var t$7;
					return e$11 && e$11.state ? (t$7 = e$11.state, e$11.total_in = e$11.total_out = t$7.total = 0, e$11.msg = "", t$7.wrap && (e$11.adler = 1 & t$7.wrap), t$7.mode = P$2, t$7.last = 0, t$7.havedict = 0, t$7.dmax = 32768, t$7.head = null, t$7.hold = 0, t$7.bits = 0, t$7.lencode = t$7.lendyn = new I$2.Buf32(n$9), t$7.distcode = t$7.distdyn = new I$2.Buf32(i$7), t$7.sane = 1, t$7.back = -1, N$2) : U$1;
				}
				function o$10(e$11) {
					var t$7;
					return e$11 && e$11.state ? ((t$7 = e$11.state).wsize = 0, t$7.whave = 0, t$7.wnext = 0, a$2(e$11)) : U$1;
				}
				function h$5(e$11, t$7) {
					var r$11, n$10;
					return e$11 && e$11.state ? (n$10 = e$11.state, t$7 < 0 ? (r$11 = 0, t$7 = -t$7) : (r$11 = 1 + (t$7 >> 4), t$7 < 48 && (t$7 &= 15)), t$7 && (t$7 < 8 || 15 < t$7) ? U$1 : (null !== n$10.window && n$10.wbits !== t$7 && (n$10.window = null), n$10.wrap = r$11, n$10.wbits = t$7, o$10(e$11))) : U$1;
				}
				function u$4(e$11, t$7) {
					var r$11, n$10;
					return e$11 ? (n$10 = new s$5(), (e$11.state = n$10).window = null, (r$11 = h$5(e$11, t$7)) !== N$2 && (e$11.state = null), r$11) : U$1;
				}
				var l$3, f$4, c$7 = !0;
				function j$2(e$11) {
					if (c$7) {
						var t$7;
						for (l$3 = new I$2.Buf32(512), f$4 = new I$2.Buf32(32), t$7 = 0; t$7 < 144;) e$11.lens[t$7++] = 8;
						for (; t$7 < 256;) e$11.lens[t$7++] = 9;
						for (; t$7 < 280;) e$11.lens[t$7++] = 7;
						for (; t$7 < 288;) e$11.lens[t$7++] = 8;
						for (T$3(D$2, e$11.lens, 0, 288, l$3, 0, e$11.work, { bits: 9 }), t$7 = 0; t$7 < 32;) e$11.lens[t$7++] = 5;
						T$3(F$1, e$11.lens, 0, 32, f$4, 0, e$11.work, { bits: 5 }), c$7 = !1;
					}
					e$11.lencode = l$3, e$11.lenbits = 9, e$11.distcode = f$4, e$11.distbits = 5;
				}
				function Z$1(e$11, t$7, r$11, n$10) {
					var i$8, s$6 = e$11.state;
					return null === s$6.window && (s$6.wsize = 1 << s$6.wbits, s$6.wnext = 0, s$6.whave = 0, s$6.window = new I$2.Buf8(s$6.wsize)), n$10 >= s$6.wsize ? (I$2.arraySet(s$6.window, t$7, r$11 - s$6.wsize, s$6.wsize, 0), s$6.wnext = 0, s$6.whave = s$6.wsize) : (n$10 < (i$8 = s$6.wsize - s$6.wnext) && (i$8 = n$10), I$2.arraySet(s$6.window, t$7, r$11 - n$10, i$8, s$6.wnext), (n$10 -= i$8) ? (I$2.arraySet(s$6.window, t$7, r$11 - n$10, n$10, 0), s$6.wnext = n$10, s$6.whave = s$6.wsize) : (s$6.wnext += i$8, s$6.wnext === s$6.wsize && (s$6.wnext = 0), s$6.whave < s$6.wsize && (s$6.whave += i$8))), 0;
				}
				r$10.inflateReset = o$10, r$10.inflateReset2 = h$5, r$10.inflateResetKeep = a$2, r$10.inflateInit = function(e$11) {
					return u$4(e$11, 15);
				}, r$10.inflateInit2 = u$4, r$10.inflate = function(e$11, t$7) {
					var r$11, n$10, i$8, s$6, a$3, o$11, h$6, u$5, l$4, f$5, c$8, d$5, p$3, m$3, _$2, g$1, b$3, v$3, y$3, w$2, k$2, x$2, S$4, z$2, C$2 = 0, E$2 = new I$2.Buf8(4), A$1 = [
						16,
						17,
						18,
						0,
						8,
						7,
						9,
						6,
						10,
						5,
						11,
						4,
						12,
						3,
						13,
						2,
						14,
						1,
						15
					];
					if (!e$11 || !e$11.state || !e$11.output || !e$11.input && 0 !== e$11.avail_in) return U$1;
					12 === (r$11 = e$11.state).mode && (r$11.mode = 13), a$3 = e$11.next_out, i$8 = e$11.output, h$6 = e$11.avail_out, s$6 = e$11.next_in, n$10 = e$11.input, o$11 = e$11.avail_in, u$5 = r$11.hold, l$4 = r$11.bits, f$5 = o$11, c$8 = h$6, x$2 = N$2;
					e: for (;;) switch (r$11.mode) {
						case P$2:
							if (0 === r$11.wrap) {
								r$11.mode = 13;
								break;
							}
							for (; l$4 < 16;) {
								if (0 === o$11) break e;
								o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
							}
							if (2 & r$11.wrap && 35615 === u$5) {
								E$2[r$11.check = 0] = 255 & u$5, E$2[1] = u$5 >>> 8 & 255, r$11.check = B$2(r$11.check, E$2, 2, 0), l$4 = u$5 = 0, r$11.mode = 2;
								break;
							}
							if (r$11.flags = 0, r$11.head && (r$11.head.done = !1), !(1 & r$11.wrap) || (((255 & u$5) << 8) + (u$5 >> 8)) % 31) {
								e$11.msg = "incorrect header check", r$11.mode = 30;
								break;
							}
							if (8 != (15 & u$5)) {
								e$11.msg = "unknown compression method", r$11.mode = 30;
								break;
							}
							if (l$4 -= 4, k$2 = 8 + (15 & (u$5 >>>= 4)), 0 === r$11.wbits) r$11.wbits = k$2;
							else if (k$2 > r$11.wbits) {
								e$11.msg = "invalid window size", r$11.mode = 30;
								break;
							}
							r$11.dmax = 1 << k$2, e$11.adler = r$11.check = 1, r$11.mode = 512 & u$5 ? 10 : 12, l$4 = u$5 = 0;
							break;
						case 2:
							for (; l$4 < 16;) {
								if (0 === o$11) break e;
								o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
							}
							if (r$11.flags = u$5, 8 != (255 & r$11.flags)) {
								e$11.msg = "unknown compression method", r$11.mode = 30;
								break;
							}
							if (57344 & r$11.flags) {
								e$11.msg = "unknown header flags set", r$11.mode = 30;
								break;
							}
							r$11.head && (r$11.head.text = u$5 >> 8 & 1), 512 & r$11.flags && (E$2[0] = 255 & u$5, E$2[1] = u$5 >>> 8 & 255, r$11.check = B$2(r$11.check, E$2, 2, 0)), l$4 = u$5 = 0, r$11.mode = 3;
						case 3:
							for (; l$4 < 32;) {
								if (0 === o$11) break e;
								o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
							}
							r$11.head && (r$11.head.time = u$5), 512 & r$11.flags && (E$2[0] = 255 & u$5, E$2[1] = u$5 >>> 8 & 255, E$2[2] = u$5 >>> 16 & 255, E$2[3] = u$5 >>> 24 & 255, r$11.check = B$2(r$11.check, E$2, 4, 0)), l$4 = u$5 = 0, r$11.mode = 4;
						case 4:
							for (; l$4 < 16;) {
								if (0 === o$11) break e;
								o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
							}
							r$11.head && (r$11.head.xflags = 255 & u$5, r$11.head.os = u$5 >> 8), 512 & r$11.flags && (E$2[0] = 255 & u$5, E$2[1] = u$5 >>> 8 & 255, r$11.check = B$2(r$11.check, E$2, 2, 0)), l$4 = u$5 = 0, r$11.mode = 5;
						case 5:
							if (1024 & r$11.flags) {
								for (; l$4 < 16;) {
									if (0 === o$11) break e;
									o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
								}
								r$11.length = u$5, r$11.head && (r$11.head.extra_len = u$5), 512 & r$11.flags && (E$2[0] = 255 & u$5, E$2[1] = u$5 >>> 8 & 255, r$11.check = B$2(r$11.check, E$2, 2, 0)), l$4 = u$5 = 0;
							} else r$11.head && (r$11.head.extra = null);
							r$11.mode = 6;
						case 6:
							if (1024 & r$11.flags && (o$11 < (d$5 = r$11.length) && (d$5 = o$11), d$5 && (r$11.head && (k$2 = r$11.head.extra_len - r$11.length, r$11.head.extra || (r$11.head.extra = new Array(r$11.head.extra_len)), I$2.arraySet(r$11.head.extra, n$10, s$6, d$5, k$2)), 512 & r$11.flags && (r$11.check = B$2(r$11.check, n$10, d$5, s$6)), o$11 -= d$5, s$6 += d$5, r$11.length -= d$5), r$11.length)) break e;
							r$11.length = 0, r$11.mode = 7;
						case 7:
							if (2048 & r$11.flags) {
								if (0 === o$11) break e;
								for (d$5 = 0; k$2 = n$10[s$6 + d$5++], r$11.head && k$2 && r$11.length < 65536 && (r$11.head.name += String.fromCharCode(k$2)), k$2 && d$5 < o$11;);
								if (512 & r$11.flags && (r$11.check = B$2(r$11.check, n$10, d$5, s$6)), o$11 -= d$5, s$6 += d$5, k$2) break e;
							} else r$11.head && (r$11.head.name = null);
							r$11.length = 0, r$11.mode = 8;
						case 8:
							if (4096 & r$11.flags) {
								if (0 === o$11) break e;
								for (d$5 = 0; k$2 = n$10[s$6 + d$5++], r$11.head && k$2 && r$11.length < 65536 && (r$11.head.comment += String.fromCharCode(k$2)), k$2 && d$5 < o$11;);
								if (512 & r$11.flags && (r$11.check = B$2(r$11.check, n$10, d$5, s$6)), o$11 -= d$5, s$6 += d$5, k$2) break e;
							} else r$11.head && (r$11.head.comment = null);
							r$11.mode = 9;
						case 9:
							if (512 & r$11.flags) {
								for (; l$4 < 16;) {
									if (0 === o$11) break e;
									o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
								}
								if (u$5 !== (65535 & r$11.check)) {
									e$11.msg = "header crc mismatch", r$11.mode = 30;
									break;
								}
								l$4 = u$5 = 0;
							}
							r$11.head && (r$11.head.hcrc = r$11.flags >> 9 & 1, r$11.head.done = !0), e$11.adler = r$11.check = 0, r$11.mode = 12;
							break;
						case 10:
							for (; l$4 < 32;) {
								if (0 === o$11) break e;
								o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
							}
							e$11.adler = r$11.check = L$2(u$5), l$4 = u$5 = 0, r$11.mode = 11;
						case 11:
							if (0 === r$11.havedict) return e$11.next_out = a$3, e$11.avail_out = h$6, e$11.next_in = s$6, e$11.avail_in = o$11, r$11.hold = u$5, r$11.bits = l$4, 2;
							e$11.adler = r$11.check = 1, r$11.mode = 12;
						case 12: if (5 === t$7 || 6 === t$7) break e;
						case 13:
							if (r$11.last) {
								u$5 >>>= 7 & l$4, l$4 -= 7 & l$4, r$11.mode = 27;
								break;
							}
							for (; l$4 < 3;) {
								if (0 === o$11) break e;
								o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
							}
							switch (r$11.last = 1 & u$5, l$4 -= 1, 3 & (u$5 >>>= 1)) {
								case 0:
									r$11.mode = 14;
									break;
								case 1:
									if (j$2(r$11), r$11.mode = 20, 6 !== t$7) break;
									u$5 >>>= 2, l$4 -= 2;
									break e;
								case 2:
									r$11.mode = 17;
									break;
								case 3: e$11.msg = "invalid block type", r$11.mode = 30;
							}
							u$5 >>>= 2, l$4 -= 2;
							break;
						case 14:
							for (u$5 >>>= 7 & l$4, l$4 -= 7 & l$4; l$4 < 32;) {
								if (0 === o$11) break e;
								o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
							}
							if ((65535 & u$5) != (u$5 >>> 16 ^ 65535)) {
								e$11.msg = "invalid stored block lengths", r$11.mode = 30;
								break;
							}
							if (r$11.length = 65535 & u$5, l$4 = u$5 = 0, r$11.mode = 15, 6 === t$7) break e;
						case 15: r$11.mode = 16;
						case 16:
							if (d$5 = r$11.length) {
								if (o$11 < d$5 && (d$5 = o$11), h$6 < d$5 && (d$5 = h$6), 0 === d$5) break e;
								I$2.arraySet(i$8, n$10, s$6, d$5, a$3), o$11 -= d$5, s$6 += d$5, h$6 -= d$5, a$3 += d$5, r$11.length -= d$5;
								break;
							}
							r$11.mode = 12;
							break;
						case 17:
							for (; l$4 < 14;) {
								if (0 === o$11) break e;
								o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
							}
							if (r$11.nlen = 257 + (31 & u$5), u$5 >>>= 5, l$4 -= 5, r$11.ndist = 1 + (31 & u$5), u$5 >>>= 5, l$4 -= 5, r$11.ncode = 4 + (15 & u$5), u$5 >>>= 4, l$4 -= 4, 286 < r$11.nlen || 30 < r$11.ndist) {
								e$11.msg = "too many length or distance symbols", r$11.mode = 30;
								break;
							}
							r$11.have = 0, r$11.mode = 18;
						case 18:
							for (; r$11.have < r$11.ncode;) {
								for (; l$4 < 3;) {
									if (0 === o$11) break e;
									o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
								}
								r$11.lens[A$1[r$11.have++]] = 7 & u$5, u$5 >>>= 3, l$4 -= 3;
							}
							for (; r$11.have < 19;) r$11.lens[A$1[r$11.have++]] = 0;
							if (r$11.lencode = r$11.lendyn, r$11.lenbits = 7, S$4 = { bits: r$11.lenbits }, x$2 = T$3(0, r$11.lens, 0, 19, r$11.lencode, 0, r$11.work, S$4), r$11.lenbits = S$4.bits, x$2) {
								e$11.msg = "invalid code lengths set", r$11.mode = 30;
								break;
							}
							r$11.have = 0, r$11.mode = 19;
						case 19:
							for (; r$11.have < r$11.nlen + r$11.ndist;) {
								for (; g$1 = (C$2 = r$11.lencode[u$5 & (1 << r$11.lenbits) - 1]) >>> 16 & 255, b$3 = 65535 & C$2, !((_$2 = C$2 >>> 24) <= l$4);) {
									if (0 === o$11) break e;
									o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
								}
								if (b$3 < 16) u$5 >>>= _$2, l$4 -= _$2, r$11.lens[r$11.have++] = b$3;
								else {
									if (16 === b$3) {
										for (z$2 = _$2 + 2; l$4 < z$2;) {
											if (0 === o$11) break e;
											o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
										}
										if (u$5 >>>= _$2, l$4 -= _$2, 0 === r$11.have) {
											e$11.msg = "invalid bit length repeat", r$11.mode = 30;
											break;
										}
										k$2 = r$11.lens[r$11.have - 1], d$5 = 3 + (3 & u$5), u$5 >>>= 2, l$4 -= 2;
									} else if (17 === b$3) {
										for (z$2 = _$2 + 3; l$4 < z$2;) {
											if (0 === o$11) break e;
											o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
										}
										l$4 -= _$2, k$2 = 0, d$5 = 3 + (7 & (u$5 >>>= _$2)), u$5 >>>= 3, l$4 -= 3;
									} else {
										for (z$2 = _$2 + 7; l$4 < z$2;) {
											if (0 === o$11) break e;
											o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
										}
										l$4 -= _$2, k$2 = 0, d$5 = 11 + (127 & (u$5 >>>= _$2)), u$5 >>>= 7, l$4 -= 7;
									}
									if (r$11.have + d$5 > r$11.nlen + r$11.ndist) {
										e$11.msg = "invalid bit length repeat", r$11.mode = 30;
										break;
									}
									for (; d$5--;) r$11.lens[r$11.have++] = k$2;
								}
							}
							if (30 === r$11.mode) break;
							if (0 === r$11.lens[256]) {
								e$11.msg = "invalid code -- missing end-of-block", r$11.mode = 30;
								break;
							}
							if (r$11.lenbits = 9, S$4 = { bits: r$11.lenbits }, x$2 = T$3(D$2, r$11.lens, 0, r$11.nlen, r$11.lencode, 0, r$11.work, S$4), r$11.lenbits = S$4.bits, x$2) {
								e$11.msg = "invalid literal/lengths set", r$11.mode = 30;
								break;
							}
							if (r$11.distbits = 6, r$11.distcode = r$11.distdyn, S$4 = { bits: r$11.distbits }, x$2 = T$3(F$1, r$11.lens, r$11.nlen, r$11.ndist, r$11.distcode, 0, r$11.work, S$4), r$11.distbits = S$4.bits, x$2) {
								e$11.msg = "invalid distances set", r$11.mode = 30;
								break;
							}
							if (r$11.mode = 20, 6 === t$7) break e;
						case 20: r$11.mode = 21;
						case 21:
							if (6 <= o$11 && 258 <= h$6) {
								e$11.next_out = a$3, e$11.avail_out = h$6, e$11.next_in = s$6, e$11.avail_in = o$11, r$11.hold = u$5, r$11.bits = l$4, R$1(e$11, c$8), a$3 = e$11.next_out, i$8 = e$11.output, h$6 = e$11.avail_out, s$6 = e$11.next_in, n$10 = e$11.input, o$11 = e$11.avail_in, u$5 = r$11.hold, l$4 = r$11.bits, 12 === r$11.mode && (r$11.back = -1);
								break;
							}
							for (r$11.back = 0; g$1 = (C$2 = r$11.lencode[u$5 & (1 << r$11.lenbits) - 1]) >>> 16 & 255, b$3 = 65535 & C$2, !((_$2 = C$2 >>> 24) <= l$4);) {
								if (0 === o$11) break e;
								o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
							}
							if (g$1 && 0 == (240 & g$1)) {
								for (v$3 = _$2, y$3 = g$1, w$2 = b$3; g$1 = (C$2 = r$11.lencode[w$2 + ((u$5 & (1 << v$3 + y$3) - 1) >> v$3)]) >>> 16 & 255, b$3 = 65535 & C$2, !(v$3 + (_$2 = C$2 >>> 24) <= l$4);) {
									if (0 === o$11) break e;
									o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
								}
								u$5 >>>= v$3, l$4 -= v$3, r$11.back += v$3;
							}
							if (u$5 >>>= _$2, l$4 -= _$2, r$11.back += _$2, r$11.length = b$3, 0 === g$1) {
								r$11.mode = 26;
								break;
							}
							if (32 & g$1) {
								r$11.back = -1, r$11.mode = 12;
								break;
							}
							if (64 & g$1) {
								e$11.msg = "invalid literal/length code", r$11.mode = 30;
								break;
							}
							r$11.extra = 15 & g$1, r$11.mode = 22;
						case 22:
							if (r$11.extra) {
								for (z$2 = r$11.extra; l$4 < z$2;) {
									if (0 === o$11) break e;
									o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
								}
								r$11.length += u$5 & (1 << r$11.extra) - 1, u$5 >>>= r$11.extra, l$4 -= r$11.extra, r$11.back += r$11.extra;
							}
							r$11.was = r$11.length, r$11.mode = 23;
						case 23:
							for (; g$1 = (C$2 = r$11.distcode[u$5 & (1 << r$11.distbits) - 1]) >>> 16 & 255, b$3 = 65535 & C$2, !((_$2 = C$2 >>> 24) <= l$4);) {
								if (0 === o$11) break e;
								o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
							}
							if (0 == (240 & g$1)) {
								for (v$3 = _$2, y$3 = g$1, w$2 = b$3; g$1 = (C$2 = r$11.distcode[w$2 + ((u$5 & (1 << v$3 + y$3) - 1) >> v$3)]) >>> 16 & 255, b$3 = 65535 & C$2, !(v$3 + (_$2 = C$2 >>> 24) <= l$4);) {
									if (0 === o$11) break e;
									o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
								}
								u$5 >>>= v$3, l$4 -= v$3, r$11.back += v$3;
							}
							if (u$5 >>>= _$2, l$4 -= _$2, r$11.back += _$2, 64 & g$1) {
								e$11.msg = "invalid distance code", r$11.mode = 30;
								break;
							}
							r$11.offset = b$3, r$11.extra = 15 & g$1, r$11.mode = 24;
						case 24:
							if (r$11.extra) {
								for (z$2 = r$11.extra; l$4 < z$2;) {
									if (0 === o$11) break e;
									o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
								}
								r$11.offset += u$5 & (1 << r$11.extra) - 1, u$5 >>>= r$11.extra, l$4 -= r$11.extra, r$11.back += r$11.extra;
							}
							if (r$11.offset > r$11.dmax) {
								e$11.msg = "invalid distance too far back", r$11.mode = 30;
								break;
							}
							r$11.mode = 25;
						case 25:
							if (0 === h$6) break e;
							if (d$5 = c$8 - h$6, r$11.offset > d$5) {
								if ((d$5 = r$11.offset - d$5) > r$11.whave && r$11.sane) {
									e$11.msg = "invalid distance too far back", r$11.mode = 30;
									break;
								}
								p$3 = d$5 > r$11.wnext ? (d$5 -= r$11.wnext, r$11.wsize - d$5) : r$11.wnext - d$5, d$5 > r$11.length && (d$5 = r$11.length), m$3 = r$11.window;
							} else m$3 = i$8, p$3 = a$3 - r$11.offset, d$5 = r$11.length;
							for (h$6 < d$5 && (d$5 = h$6), h$6 -= d$5, r$11.length -= d$5; i$8[a$3++] = m$3[p$3++], --d$5;);
							0 === r$11.length && (r$11.mode = 21);
							break;
						case 26:
							if (0 === h$6) break e;
							i$8[a$3++] = r$11.length, h$6--, r$11.mode = 21;
							break;
						case 27:
							if (r$11.wrap) {
								for (; l$4 < 32;) {
									if (0 === o$11) break e;
									o$11--, u$5 |= n$10[s$6++] << l$4, l$4 += 8;
								}
								if (c$8 -= h$6, e$11.total_out += c$8, r$11.total += c$8, c$8 && (e$11.adler = r$11.check = r$11.flags ? B$2(r$11.check, i$8, c$8, a$3 - c$8) : O(r$11.check, i$8, c$8, a$3 - c$8)), c$8 = h$6, (r$11.flags ? u$5 : L$2(u$5)) !== r$11.check) {
									e$11.msg = "incorrect data check", r$11.mode = 30;
									break;
								}
								l$4 = u$5 = 0;
							}
							r$11.mode = 28;
						case 28:
							if (r$11.wrap && r$11.flags) {
								for (; l$4 < 32;) {
									if (0 === o$11) break e;
									o$11--, u$5 += n$10[s$6++] << l$4, l$4 += 8;
								}
								if (u$5 !== (4294967295 & r$11.total)) {
									e$11.msg = "incorrect length check", r$11.mode = 30;
									break;
								}
								l$4 = u$5 = 0;
							}
							r$11.mode = 29;
						case 29:
							x$2 = 1;
							break e;
						case 30:
							x$2 = -3;
							break e;
						case 31: return -4;
						case 32:
						default: return U$1;
					}
					return e$11.next_out = a$3, e$11.avail_out = h$6, e$11.next_in = s$6, e$11.avail_in = o$11, r$11.hold = u$5, r$11.bits = l$4, (r$11.wsize || c$8 !== e$11.avail_out && r$11.mode < 30 && (r$11.mode < 27 || 4 !== t$7)) && Z$1(e$11, e$11.output, e$11.next_out, c$8 - e$11.avail_out) ? (r$11.mode = 31, -4) : (f$5 -= e$11.avail_in, c$8 -= e$11.avail_out, e$11.total_in += f$5, e$11.total_out += c$8, r$11.total += c$8, r$11.wrap && c$8 && (e$11.adler = r$11.check = r$11.flags ? B$2(r$11.check, i$8, c$8, e$11.next_out - c$8) : O(r$11.check, i$8, c$8, e$11.next_out - c$8)), e$11.data_type = r$11.bits + (r$11.last ? 64 : 0) + (12 === r$11.mode ? 128 : 0) + (20 === r$11.mode || 15 === r$11.mode ? 256 : 0), (0 == f$5 && 0 === c$8 || 4 === t$7) && x$2 === N$2 && (x$2 = -5), x$2);
				}, r$10.inflateEnd = function(e$11) {
					if (!e$11 || !e$11.state) return U$1;
					var t$7 = e$11.state;
					return t$7.window && (t$7.window = null), e$11.state = null, N$2;
				}, r$10.inflateGetHeader = function(e$11, t$7) {
					var r$11;
					return e$11 && e$11.state ? 0 == (2 & (r$11 = e$11.state).wrap) ? U$1 : ((r$11.head = t$7).done = !1, N$2) : U$1;
				}, r$10.inflateSetDictionary = function(e$11, t$7) {
					var r$11, n$10 = t$7.length;
					return e$11 && e$11.state ? 0 !== (r$11 = e$11.state).wrap && 11 !== r$11.mode ? U$1 : 11 === r$11.mode && O(1, t$7, n$10, 0) !== r$11.check ? -3 : Z$1(e$11, t$7, n$10, n$10) ? (r$11.mode = 31, -4) : (r$11.havedict = 1, N$2) : U$1;
				}, r$10.inflateInfo = "pako inflate (from Nodeca project)";
			}, {
				"../utils/common": 41,
				"./adler32": 43,
				"./crc32": 45,
				"./inffast": 48,
				"./inftrees": 50
			}],
			50: [function(e$10, t$6, r$10) {
				"use strict";
				var D$2 = e$10("../utils/common"), F$1 = [
					3,
					4,
					5,
					6,
					7,
					8,
					9,
					10,
					11,
					13,
					15,
					17,
					19,
					23,
					27,
					31,
					35,
					43,
					51,
					59,
					67,
					83,
					99,
					115,
					131,
					163,
					195,
					227,
					258,
					0,
					0
				], N$2 = [
					16,
					16,
					16,
					16,
					16,
					16,
					16,
					16,
					17,
					17,
					17,
					17,
					18,
					18,
					18,
					18,
					19,
					19,
					19,
					19,
					20,
					20,
					20,
					20,
					21,
					21,
					21,
					21,
					16,
					72,
					78
				], U$1 = [
					1,
					2,
					3,
					4,
					5,
					7,
					9,
					13,
					17,
					25,
					33,
					49,
					65,
					97,
					129,
					193,
					257,
					385,
					513,
					769,
					1025,
					1537,
					2049,
					3073,
					4097,
					6145,
					8193,
					12289,
					16385,
					24577,
					0,
					0
				], P$2 = [
					16,
					16,
					16,
					16,
					17,
					17,
					18,
					18,
					19,
					19,
					20,
					20,
					21,
					21,
					22,
					22,
					23,
					23,
					24,
					24,
					25,
					25,
					26,
					26,
					27,
					27,
					28,
					28,
					29,
					29,
					64,
					64
				];
				t$6.exports = function(e$11, t$7, r$11, n$9, i$7, s$5, a$2, o$10) {
					var h$5, u$4, l$3, f$4, c$7, d$5, p$3, m$3, _$2, g$1 = o$10.bits, b$3 = 0, v$3 = 0, y$3 = 0, w$2 = 0, k$2 = 0, x$2 = 0, S$4 = 0, z$2 = 0, C$2 = 0, E$2 = 0, A$1 = null, I$2 = 0, O = new D$2.Buf16(16), B$2 = new D$2.Buf16(16), R$1 = null, T$3 = 0;
					for (b$3 = 0; b$3 <= 15; b$3++) O[b$3] = 0;
					for (v$3 = 0; v$3 < n$9; v$3++) O[t$7[r$11 + v$3]]++;
					for (k$2 = g$1, w$2 = 15; 1 <= w$2 && 0 === O[w$2]; w$2--);
					if (w$2 < k$2 && (k$2 = w$2), 0 === w$2) return i$7[s$5++] = 20971520, i$7[s$5++] = 20971520, o$10.bits = 1, 0;
					for (y$3 = 1; y$3 < w$2 && 0 === O[y$3]; y$3++);
					for (k$2 < y$3 && (k$2 = y$3), b$3 = z$2 = 1; b$3 <= 15; b$3++) if (z$2 <<= 1, (z$2 -= O[b$3]) < 0) return -1;
					if (0 < z$2 && (0 === e$11 || 1 !== w$2)) return -1;
					for (B$2[1] = 0, b$3 = 1; b$3 < 15; b$3++) B$2[b$3 + 1] = B$2[b$3] + O[b$3];
					for (v$3 = 0; v$3 < n$9; v$3++) 0 !== t$7[r$11 + v$3] && (a$2[B$2[t$7[r$11 + v$3]]++] = v$3);
					if (d$5 = 0 === e$11 ? (A$1 = R$1 = a$2, 19) : 1 === e$11 ? (A$1 = F$1, I$2 -= 257, R$1 = N$2, T$3 -= 257, 256) : (A$1 = U$1, R$1 = P$2, -1), b$3 = y$3, c$7 = s$5, S$4 = v$3 = E$2 = 0, l$3 = -1, f$4 = (C$2 = 1 << (x$2 = k$2)) - 1, 1 === e$11 && 852 < C$2 || 2 === e$11 && 592 < C$2) return 1;
					for (;;) {
						for (p$3 = b$3 - S$4, _$2 = a$2[v$3] < d$5 ? (m$3 = 0, a$2[v$3]) : a$2[v$3] > d$5 ? (m$3 = R$1[T$3 + a$2[v$3]], A$1[I$2 + a$2[v$3]]) : (m$3 = 96, 0), h$5 = 1 << b$3 - S$4, y$3 = u$4 = 1 << x$2; i$7[c$7 + (E$2 >> S$4) + (u$4 -= h$5)] = p$3 << 24 | m$3 << 16 | _$2 | 0, 0 !== u$4;);
						for (h$5 = 1 << b$3 - 1; E$2 & h$5;) h$5 >>= 1;
						if (0 !== h$5 ? (E$2 &= h$5 - 1, E$2 += h$5) : E$2 = 0, v$3++, 0 == --O[b$3]) {
							if (b$3 === w$2) break;
							b$3 = t$7[r$11 + a$2[v$3]];
						}
						if (k$2 < b$3 && (E$2 & f$4) !== l$3) {
							for (0 === S$4 && (S$4 = k$2), c$7 += y$3, z$2 = 1 << (x$2 = b$3 - S$4); x$2 + S$4 < w$2 && !((z$2 -= O[x$2 + S$4]) <= 0);) x$2++, z$2 <<= 1;
							if (C$2 += 1 << x$2, 1 === e$11 && 852 < C$2 || 2 === e$11 && 592 < C$2) return 1;
							i$7[l$3 = E$2 & f$4] = k$2 << 24 | x$2 << 16 | c$7 - s$5 | 0;
						}
					}
					return 0 !== E$2 && (i$7[c$7 + E$2] = b$3 - S$4 << 24 | 64 << 16 | 0), o$10.bits = k$2, 0;
				};
			}, { "../utils/common": 41 }],
			51: [function(e$10, t$6, r$10) {
				"use strict";
				t$6.exports = {
					2: "need dictionary",
					1: "stream end",
					0: "",
					"-1": "file error",
					"-2": "stream error",
					"-3": "data error",
					"-4": "insufficient memory",
					"-5": "buffer error",
					"-6": "incompatible version"
				};
			}, {}],
			52: [function(e$10, t$6, r$10) {
				"use strict";
				var i$7 = e$10("../utils/common"), o$10 = 0, h$5 = 1;
				function n$9(e$11) {
					for (var t$7 = e$11.length; 0 <= --t$7;) e$11[t$7] = 0;
				}
				var s$5 = 0, a$2 = 29, u$4 = 256, l$3 = u$4 + 1 + a$2, f$4 = 30, c$7 = 19, _$2 = 2 * l$3 + 1, g$1 = 15, d$5 = 16, p$3 = 7, m$3 = 256, b$3 = 16, v$3 = 17, y$3 = 18, w$2 = [
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					1,
					1,
					1,
					1,
					2,
					2,
					2,
					2,
					3,
					3,
					3,
					3,
					4,
					4,
					4,
					4,
					5,
					5,
					5,
					5,
					0
				], k$2 = [
					0,
					0,
					0,
					0,
					1,
					1,
					2,
					2,
					3,
					3,
					4,
					4,
					5,
					5,
					6,
					6,
					7,
					7,
					8,
					8,
					9,
					9,
					10,
					10,
					11,
					11,
					12,
					12,
					13,
					13
				], x$2 = [
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					0,
					2,
					3,
					7
				], S$4 = [
					16,
					17,
					18,
					0,
					8,
					7,
					9,
					6,
					10,
					5,
					11,
					4,
					12,
					3,
					13,
					2,
					14,
					1,
					15
				], z$2 = new Array(2 * (l$3 + 2));
				n$9(z$2);
				var C$2 = new Array(2 * f$4);
				n$9(C$2);
				var E$2 = new Array(512);
				n$9(E$2);
				var A$1 = new Array(256);
				n$9(A$1);
				var I$2 = new Array(a$2);
				n$9(I$2);
				var O, B$2, R$1, T$3 = new Array(f$4);
				function D$2(e$11, t$7, r$11, n$10, i$8) {
					this.static_tree = e$11, this.extra_bits = t$7, this.extra_base = r$11, this.elems = n$10, this.max_length = i$8, this.has_stree = e$11 && e$11.length;
				}
				function F$1(e$11, t$7) {
					this.dyn_tree = e$11, this.max_code = 0, this.stat_desc = t$7;
				}
				function N$2(e$11) {
					return e$11 < 256 ? E$2[e$11] : E$2[256 + (e$11 >>> 7)];
				}
				function U$1(e$11, t$7) {
					e$11.pending_buf[e$11.pending++] = 255 & t$7, e$11.pending_buf[e$11.pending++] = t$7 >>> 8 & 255;
				}
				function P$2(e$11, t$7, r$11) {
					e$11.bi_valid > d$5 - r$11 ? (e$11.bi_buf |= t$7 << e$11.bi_valid & 65535, U$1(e$11, e$11.bi_buf), e$11.bi_buf = t$7 >> d$5 - e$11.bi_valid, e$11.bi_valid += r$11 - d$5) : (e$11.bi_buf |= t$7 << e$11.bi_valid & 65535, e$11.bi_valid += r$11);
				}
				function L$2(e$11, t$7, r$11) {
					P$2(e$11, r$11[2 * t$7], r$11[2 * t$7 + 1]);
				}
				function j$2(e$11, t$7) {
					for (var r$11 = 0; r$11 |= 1 & e$11, e$11 >>>= 1, r$11 <<= 1, 0 < --t$7;);
					return r$11 >>> 1;
				}
				function Z$1(e$11, t$7, r$11) {
					var n$10, i$8, s$6 = new Array(g$1 + 1), a$3 = 0;
					for (n$10 = 1; n$10 <= g$1; n$10++) s$6[n$10] = a$3 = a$3 + r$11[n$10 - 1] << 1;
					for (i$8 = 0; i$8 <= t$7; i$8++) {
						var o$11 = e$11[2 * i$8 + 1];
						0 !== o$11 && (e$11[2 * i$8] = j$2(s$6[o$11]++, o$11));
					}
				}
				function W$1(e$11) {
					var t$7;
					for (t$7 = 0; t$7 < l$3; t$7++) e$11.dyn_ltree[2 * t$7] = 0;
					for (t$7 = 0; t$7 < f$4; t$7++) e$11.dyn_dtree[2 * t$7] = 0;
					for (t$7 = 0; t$7 < c$7; t$7++) e$11.bl_tree[2 * t$7] = 0;
					e$11.dyn_ltree[2 * m$3] = 1, e$11.opt_len = e$11.static_len = 0, e$11.last_lit = e$11.matches = 0;
				}
				function M$3(e$11) {
					8 < e$11.bi_valid ? U$1(e$11, e$11.bi_buf) : 0 < e$11.bi_valid && (e$11.pending_buf[e$11.pending++] = e$11.bi_buf), e$11.bi_buf = 0, e$11.bi_valid = 0;
				}
				function H$1(e$11, t$7, r$11, n$10) {
					var i$8 = 2 * t$7, s$6 = 2 * r$11;
					return e$11[i$8] < e$11[s$6] || e$11[i$8] === e$11[s$6] && n$10[t$7] <= n$10[r$11];
				}
				function G$1(e$11, t$7, r$11) {
					for (var n$10 = e$11.heap[r$11], i$8 = r$11 << 1; i$8 <= e$11.heap_len && (i$8 < e$11.heap_len && H$1(t$7, e$11.heap[i$8 + 1], e$11.heap[i$8], e$11.depth) && i$8++, !H$1(t$7, n$10, e$11.heap[i$8], e$11.depth));) e$11.heap[r$11] = e$11.heap[i$8], r$11 = i$8, i$8 <<= 1;
					e$11.heap[r$11] = n$10;
				}
				function K$1(e$11, t$7, r$11) {
					var n$10, i$8, s$6, a$3, o$11 = 0;
					if (0 !== e$11.last_lit) for (; n$10 = e$11.pending_buf[e$11.d_buf + 2 * o$11] << 8 | e$11.pending_buf[e$11.d_buf + 2 * o$11 + 1], i$8 = e$11.pending_buf[e$11.l_buf + o$11], o$11++, 0 === n$10 ? L$2(e$11, i$8, t$7) : (L$2(e$11, (s$6 = A$1[i$8]) + u$4 + 1, t$7), 0 !== (a$3 = w$2[s$6]) && P$2(e$11, i$8 -= I$2[s$6], a$3), L$2(e$11, s$6 = N$2(--n$10), r$11), 0 !== (a$3 = k$2[s$6]) && P$2(e$11, n$10 -= T$3[s$6], a$3)), o$11 < e$11.last_lit;);
					L$2(e$11, m$3, t$7);
				}
				function Y(e$11, t$7) {
					var r$11, n$10, i$8, s$6 = t$7.dyn_tree, a$3 = t$7.stat_desc.static_tree, o$11 = t$7.stat_desc.has_stree, h$6 = t$7.stat_desc.elems, u$5 = -1;
					for (e$11.heap_len = 0, e$11.heap_max = _$2, r$11 = 0; r$11 < h$6; r$11++) 0 !== s$6[2 * r$11] ? (e$11.heap[++e$11.heap_len] = u$5 = r$11, e$11.depth[r$11] = 0) : s$6[2 * r$11 + 1] = 0;
					for (; e$11.heap_len < 2;) s$6[2 * (i$8 = e$11.heap[++e$11.heap_len] = u$5 < 2 ? ++u$5 : 0)] = 1, e$11.depth[i$8] = 0, e$11.opt_len--, o$11 && (e$11.static_len -= a$3[2 * i$8 + 1]);
					for (t$7.max_code = u$5, r$11 = e$11.heap_len >> 1; 1 <= r$11; r$11--) G$1(e$11, s$6, r$11);
					for (i$8 = h$6; r$11 = e$11.heap[1], e$11.heap[1] = e$11.heap[e$11.heap_len--], G$1(e$11, s$6, 1), n$10 = e$11.heap[1], e$11.heap[--e$11.heap_max] = r$11, e$11.heap[--e$11.heap_max] = n$10, s$6[2 * i$8] = s$6[2 * r$11] + s$6[2 * n$10], e$11.depth[i$8] = (e$11.depth[r$11] >= e$11.depth[n$10] ? e$11.depth[r$11] : e$11.depth[n$10]) + 1, s$6[2 * r$11 + 1] = s$6[2 * n$10 + 1] = i$8, e$11.heap[1] = i$8++, G$1(e$11, s$6, 1), 2 <= e$11.heap_len;);
					e$11.heap[--e$11.heap_max] = e$11.heap[1], function(e$12, t$8) {
						var r$12, n$11, i$9, s$7, a$4, o$12, h$7 = t$8.dyn_tree, u$6 = t$8.max_code, l$4 = t$8.stat_desc.static_tree, f$5 = t$8.stat_desc.has_stree, c$8 = t$8.stat_desc.extra_bits, d$6 = t$8.stat_desc.extra_base, p$4 = t$8.stat_desc.max_length, m$4 = 0;
						for (s$7 = 0; s$7 <= g$1; s$7++) e$12.bl_count[s$7] = 0;
						for (h$7[2 * e$12.heap[e$12.heap_max] + 1] = 0, r$12 = e$12.heap_max + 1; r$12 < _$2; r$12++) p$4 < (s$7 = h$7[2 * h$7[2 * (n$11 = e$12.heap[r$12]) + 1] + 1] + 1) && (s$7 = p$4, m$4++), h$7[2 * n$11 + 1] = s$7, u$6 < n$11 || (e$12.bl_count[s$7]++, a$4 = 0, d$6 <= n$11 && (a$4 = c$8[n$11 - d$6]), o$12 = h$7[2 * n$11], e$12.opt_len += o$12 * (s$7 + a$4), f$5 && (e$12.static_len += o$12 * (l$4[2 * n$11 + 1] + a$4)));
						if (0 !== m$4) {
							do {
								for (s$7 = p$4 - 1; 0 === e$12.bl_count[s$7];) s$7--;
								e$12.bl_count[s$7]--, e$12.bl_count[s$7 + 1] += 2, e$12.bl_count[p$4]--, m$4 -= 2;
							} while (0 < m$4);
							for (s$7 = p$4; 0 !== s$7; s$7--) for (n$11 = e$12.bl_count[s$7]; 0 !== n$11;) u$6 < (i$9 = e$12.heap[--r$12]) || (h$7[2 * i$9 + 1] !== s$7 && (e$12.opt_len += (s$7 - h$7[2 * i$9 + 1]) * h$7[2 * i$9], h$7[2 * i$9 + 1] = s$7), n$11--);
						}
					}(e$11, t$7), Z$1(s$6, u$5, e$11.bl_count);
				}
				function X$2(e$11, t$7, r$11) {
					var n$10, i$8, s$6 = -1, a$3 = t$7[1], o$11 = 0, h$6 = 7, u$5 = 4;
					for (0 === a$3 && (h$6 = 138, u$5 = 3), t$7[2 * (r$11 + 1) + 1] = 65535, n$10 = 0; n$10 <= r$11; n$10++) i$8 = a$3, a$3 = t$7[2 * (n$10 + 1) + 1], ++o$11 < h$6 && i$8 === a$3 || (o$11 < u$5 ? e$11.bl_tree[2 * i$8] += o$11 : 0 !== i$8 ? (i$8 !== s$6 && e$11.bl_tree[2 * i$8]++, e$11.bl_tree[2 * b$3]++) : o$11 <= 10 ? e$11.bl_tree[2 * v$3]++ : e$11.bl_tree[2 * y$3]++, s$6 = i$8, u$5 = (o$11 = 0) === a$3 ? (h$6 = 138, 3) : i$8 === a$3 ? (h$6 = 6, 3) : (h$6 = 7, 4));
				}
				function V$2(e$11, t$7, r$11) {
					var n$10, i$8, s$6 = -1, a$3 = t$7[1], o$11 = 0, h$6 = 7, u$5 = 4;
					for (0 === a$3 && (h$6 = 138, u$5 = 3), n$10 = 0; n$10 <= r$11; n$10++) if (i$8 = a$3, a$3 = t$7[2 * (n$10 + 1) + 1], !(++o$11 < h$6 && i$8 === a$3)) {
						if (o$11 < u$5) for (; L$2(e$11, i$8, e$11.bl_tree), 0 != --o$11;);
						else 0 !== i$8 ? (i$8 !== s$6 && (L$2(e$11, i$8, e$11.bl_tree), o$11--), L$2(e$11, b$3, e$11.bl_tree), P$2(e$11, o$11 - 3, 2)) : o$11 <= 10 ? (L$2(e$11, v$3, e$11.bl_tree), P$2(e$11, o$11 - 3, 3)) : (L$2(e$11, y$3, e$11.bl_tree), P$2(e$11, o$11 - 11, 7));
						s$6 = i$8, u$5 = (o$11 = 0) === a$3 ? (h$6 = 138, 3) : i$8 === a$3 ? (h$6 = 6, 3) : (h$6 = 7, 4);
					}
				}
				n$9(T$3);
				var q$2 = !1;
				function J$1(e$11, t$7, r$11, n$10) {
					P$2(e$11, (s$5 << 1) + (n$10 ? 1 : 0), 3), function(e$12, t$8, r$12, n$11) {
						M$3(e$12), n$11 && (U$1(e$12, r$12), U$1(e$12, ~r$12)), i$7.arraySet(e$12.pending_buf, e$12.window, t$8, r$12, e$12.pending), e$12.pending += r$12;
					}(e$11, t$7, r$11, !0);
				}
				r$10._tr_init = function(e$11) {
					q$2 || (function() {
						var e$12, t$7, r$11, n$10, i$8, s$6 = new Array(g$1 + 1);
						for (n$10 = r$11 = 0; n$10 < a$2 - 1; n$10++) for (I$2[n$10] = r$11, e$12 = 0; e$12 < 1 << w$2[n$10]; e$12++) A$1[r$11++] = n$10;
						for (A$1[r$11 - 1] = n$10, n$10 = i$8 = 0; n$10 < 16; n$10++) for (T$3[n$10] = i$8, e$12 = 0; e$12 < 1 << k$2[n$10]; e$12++) E$2[i$8++] = n$10;
						for (i$8 >>= 7; n$10 < f$4; n$10++) for (T$3[n$10] = i$8 << 7, e$12 = 0; e$12 < 1 << k$2[n$10] - 7; e$12++) E$2[256 + i$8++] = n$10;
						for (t$7 = 0; t$7 <= g$1; t$7++) s$6[t$7] = 0;
						for (e$12 = 0; e$12 <= 143;) z$2[2 * e$12 + 1] = 8, e$12++, s$6[8]++;
						for (; e$12 <= 255;) z$2[2 * e$12 + 1] = 9, e$12++, s$6[9]++;
						for (; e$12 <= 279;) z$2[2 * e$12 + 1] = 7, e$12++, s$6[7]++;
						for (; e$12 <= 287;) z$2[2 * e$12 + 1] = 8, e$12++, s$6[8]++;
						for (Z$1(z$2, l$3 + 1, s$6), e$12 = 0; e$12 < f$4; e$12++) C$2[2 * e$12 + 1] = 5, C$2[2 * e$12] = j$2(e$12, 5);
						O = new D$2(z$2, w$2, u$4 + 1, l$3, g$1), B$2 = new D$2(C$2, k$2, 0, f$4, g$1), R$1 = new D$2(new Array(0), x$2, 0, c$7, p$3);
					}(), q$2 = !0), e$11.l_desc = new F$1(e$11.dyn_ltree, O), e$11.d_desc = new F$1(e$11.dyn_dtree, B$2), e$11.bl_desc = new F$1(e$11.bl_tree, R$1), e$11.bi_buf = 0, e$11.bi_valid = 0, W$1(e$11);
				}, r$10._tr_stored_block = J$1, r$10._tr_flush_block = function(e$11, t$7, r$11, n$10) {
					var i$8, s$6, a$3 = 0;
					0 < e$11.level ? (2 === e$11.strm.data_type && (e$11.strm.data_type = function(e$12) {
						var t$8, r$12 = 4093624447;
						for (t$8 = 0; t$8 <= 31; t$8++, r$12 >>>= 1) if (1 & r$12 && 0 !== e$12.dyn_ltree[2 * t$8]) return o$10;
						if (0 !== e$12.dyn_ltree[18] || 0 !== e$12.dyn_ltree[20] || 0 !== e$12.dyn_ltree[26]) return h$5;
						for (t$8 = 32; t$8 < u$4; t$8++) if (0 !== e$12.dyn_ltree[2 * t$8]) return h$5;
						return o$10;
					}(e$11)), Y(e$11, e$11.l_desc), Y(e$11, e$11.d_desc), a$3 = function(e$12) {
						var t$8;
						for (X$2(e$12, e$12.dyn_ltree, e$12.l_desc.max_code), X$2(e$12, e$12.dyn_dtree, e$12.d_desc.max_code), Y(e$12, e$12.bl_desc), t$8 = c$7 - 1; 3 <= t$8 && 0 === e$12.bl_tree[2 * S$4[t$8] + 1]; t$8--);
						return e$12.opt_len += 3 * (t$8 + 1) + 5 + 5 + 4, t$8;
					}(e$11), i$8 = e$11.opt_len + 3 + 7 >>> 3, (s$6 = e$11.static_len + 3 + 7 >>> 3) <= i$8 && (i$8 = s$6)) : i$8 = s$6 = r$11 + 5, r$11 + 4 <= i$8 && -1 !== t$7 ? J$1(e$11, t$7, r$11, n$10) : 4 === e$11.strategy || s$6 === i$8 ? (P$2(e$11, 2 + (n$10 ? 1 : 0), 3), K$1(e$11, z$2, C$2)) : (P$2(e$11, 4 + (n$10 ? 1 : 0), 3), function(e$12, t$8, r$12, n$11) {
						var i$9;
						for (P$2(e$12, t$8 - 257, 5), P$2(e$12, r$12 - 1, 5), P$2(e$12, n$11 - 4, 4), i$9 = 0; i$9 < n$11; i$9++) P$2(e$12, e$12.bl_tree[2 * S$4[i$9] + 1], 3);
						V$2(e$12, e$12.dyn_ltree, t$8 - 1), V$2(e$12, e$12.dyn_dtree, r$12 - 1);
					}(e$11, e$11.l_desc.max_code + 1, e$11.d_desc.max_code + 1, a$3 + 1), K$1(e$11, e$11.dyn_ltree, e$11.dyn_dtree)), W$1(e$11), n$10 && M$3(e$11);
				}, r$10._tr_tally = function(e$11, t$7, r$11) {
					return e$11.pending_buf[e$11.d_buf + 2 * e$11.last_lit] = t$7 >>> 8 & 255, e$11.pending_buf[e$11.d_buf + 2 * e$11.last_lit + 1] = 255 & t$7, e$11.pending_buf[e$11.l_buf + e$11.last_lit] = 255 & r$11, e$11.last_lit++, 0 === t$7 ? e$11.dyn_ltree[2 * r$11]++ : (e$11.matches++, t$7--, e$11.dyn_ltree[2 * (A$1[r$11] + u$4 + 1)]++, e$11.dyn_dtree[2 * N$2(t$7)]++), e$11.last_lit === e$11.lit_bufsize - 1;
				}, r$10._tr_align = function(e$11) {
					P$2(e$11, 2, 3), L$2(e$11, m$3, z$2), function(e$12) {
						16 === e$12.bi_valid ? (U$1(e$12, e$12.bi_buf), e$12.bi_buf = 0, e$12.bi_valid = 0) : 8 <= e$12.bi_valid && (e$12.pending_buf[e$12.pending++] = 255 & e$12.bi_buf, e$12.bi_buf >>= 8, e$12.bi_valid -= 8);
					}(e$11);
				};
			}, { "../utils/common": 41 }],
			53: [function(e$10, t$6, r$10) {
				"use strict";
				t$6.exports = function() {
					this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = "", this.state = null, this.data_type = 2, this.adler = 0;
				};
			}, {}],
			54: [function(e$10, t$6, r$10) {
				(function(e$11) {
					!function(r$11, n$9) {
						"use strict";
						if (!r$11.setImmediate) {
							var i$7, s$5, t$7, a$2, o$10 = 1, h$5 = {}, u$4 = !1, l$3 = r$11.document, e$12 = Object.getPrototypeOf && Object.getPrototypeOf(r$11);
							e$12 = e$12 && e$12.setTimeout ? e$12 : r$11, i$7 = "[object process]" === {}.toString.call(r$11.process) ? function(e$13) {
								process.nextTick(function() {
									c$7(e$13);
								});
							} : function() {
								if (r$11.postMessage && !r$11.importScripts) {
									var e$13 = !0, t$8 = r$11.onmessage;
									return r$11.onmessage = function() {
										e$13 = !1;
									}, r$11.postMessage("", "*"), r$11.onmessage = t$8, e$13;
								}
							}() ? (a$2 = "setImmediate$" + Math.random() + "$", r$11.addEventListener ? r$11.addEventListener("message", d$5, !1) : r$11.attachEvent("onmessage", d$5), function(e$13) {
								r$11.postMessage(a$2 + e$13, "*");
							}) : r$11.MessageChannel ? ((t$7 = new MessageChannel()).port1.onmessage = function(e$13) {
								c$7(e$13.data);
							}, function(e$13) {
								t$7.port2.postMessage(e$13);
							}) : l$3 && "onreadystatechange" in l$3.createElement("script") ? (s$5 = l$3.documentElement, function(e$13) {
								var t$8 = l$3.createElement("script");
								t$8.onreadystatechange = function() {
									c$7(e$13), t$8.onreadystatechange = null, s$5.removeChild(t$8), t$8 = null;
								}, s$5.appendChild(t$8);
							}) : function(e$13) {
								setTimeout(c$7, 0, e$13);
							}, e$12.setImmediate = function(e$13) {
								"function" != typeof e$13 && (e$13 = new Function("" + e$13));
								for (var t$8 = new Array(arguments.length - 1), r$12 = 0; r$12 < t$8.length; r$12++) t$8[r$12] = arguments[r$12 + 1];
								var n$10 = {
									callback: e$13,
									args: t$8
								};
								return h$5[o$10] = n$10, i$7(o$10), o$10++;
							}, e$12.clearImmediate = f$4;
						}
						function f$4(e$13) {
							delete h$5[e$13];
						}
						function c$7(e$13) {
							if (u$4) setTimeout(c$7, 0, e$13);
							else {
								var t$8 = h$5[e$13];
								if (t$8) {
									u$4 = !0;
									try {
										!function(e$14) {
											var t$9 = e$14.callback, r$12 = e$14.args;
											switch (r$12.length) {
												case 0:
													t$9();
													break;
												case 1:
													t$9(r$12[0]);
													break;
												case 2:
													t$9(r$12[0], r$12[1]);
													break;
												case 3:
													t$9(r$12[0], r$12[1], r$12[2]);
													break;
												default: t$9.apply(n$9, r$12);
											}
										}(t$8);
									} finally {
										f$4(e$13), u$4 = !1;
									}
								}
							}
						}
						function d$5(e$13) {
							e$13.source === r$11 && "string" == typeof e$13.data && 0 === e$13.data.indexOf(a$2) && c$7(+e$13.data.slice(a$2.length));
						}
					}("undefined" == typeof self ? void 0 === e$11 ? this : e$11 : self);
				}).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {});
			}, {}]
		}, {}, [10])(10);
	});
}));

//#endregion
//#region node_modules/docx-preview/dist/docx-preview.js
var require_docx_preview = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/*
	* @license
	* docx-preview <https://github.com/VolodymyrBaydalka/docxjs>
	* Released under Apache License 2.0  <https://github.com/VolodymyrBaydalka/docxjs/blob/master/LICENSE>
	* Copyright Volodymyr Baydalka
	*/
	(function(global$1, factory) {
		typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require_jszip_min()) : typeof define === "function" && define.amd ? define(["exports", "jszip"], factory) : (global$1 = typeof globalThis !== "undefined" ? globalThis : global$1 || self, factory(global$1.docx = {}, global$1.JSZip));
	})(exports, (function(exports$1, JSZip$1) {
		"use strict";
		var RelationshipTypes;
		(function(RelationshipTypes$1) {
			RelationshipTypes$1["OfficeDocument"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument";
			RelationshipTypes$1["FontTable"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable";
			RelationshipTypes$1["Image"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image";
			RelationshipTypes$1["Numbering"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering";
			RelationshipTypes$1["Styles"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";
			RelationshipTypes$1["StylesWithEffects"] = "http://schemas.microsoft.com/office/2007/relationships/stylesWithEffects";
			RelationshipTypes$1["Theme"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";
			RelationshipTypes$1["Settings"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings";
			RelationshipTypes$1["WebSettings"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings";
			RelationshipTypes$1["Hyperlink"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink";
			RelationshipTypes$1["Footnotes"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes";
			RelationshipTypes$1["Endnotes"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/endnotes";
			RelationshipTypes$1["Footer"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer";
			RelationshipTypes$1["Header"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header";
			RelationshipTypes$1["ExtendedProperties"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";
			RelationshipTypes$1["CoreProperties"] = "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";
			RelationshipTypes$1["CustomProperties"] = "http://schemas.openxmlformats.org/package/2006/relationships/metadata/custom-properties";
			RelationshipTypes$1["Comments"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments";
			RelationshipTypes$1["CommentsExtended"] = "http://schemas.microsoft.com/office/2011/relationships/commentsExtended";
			RelationshipTypes$1["AltChunk"] = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/aFChunk";
		})(RelationshipTypes || (RelationshipTypes = {}));
		function parseRelationships(root, xml$2) {
			return xml$2.elements(root).map((e$10) => ({
				id: xml$2.attr(e$10, "Id"),
				type: xml$2.attr(e$10, "Type"),
				target: xml$2.attr(e$10, "Target"),
				targetMode: xml$2.attr(e$10, "TargetMode")
			}));
		}
		function escapeClassName(className) {
			return className?.replace(/[ .]+/g, "-").replace(/[&]+/g, "and").toLowerCase();
		}
		function encloseFontFamily(fontFamily) {
			return /^[^"'].*\s.*[^"']$/.test(fontFamily) ? `'${fontFamily}'` : fontFamily;
		}
		function splitPath(path$1) {
			let si = path$1.lastIndexOf("/") + 1;
			let folder = si == 0 ? "" : path$1.substring(0, si);
			let fileName = si == 0 ? path$1 : path$1.substring(si);
			return [folder, fileName];
		}
		function resolvePath(path$1, base) {
			try {
				const prefix = "http://docx/";
				const url = new URL(path$1, prefix + base).toString();
				return url.substring(prefix.length);
			} catch {
				return `${base}${path$1}`;
			}
		}
		function keyBy(array, by) {
			return array.reduce((a$2, x$2) => {
				a$2[by(x$2)] = x$2;
				return a$2;
			}, {});
		}
		function blobToBase64(blob) {
			return new Promise((resolve, reject) => {
				const reader = new FileReader();
				reader.onloadend = () => resolve(reader.result);
				reader.onerror = () => reject();
				reader.readAsDataURL(blob);
			});
		}
		function isObject(item) {
			return item && typeof item === "object" && !Array.isArray(item);
		}
		function isString(item) {
			return typeof item === "string" || item instanceof String;
		}
		function mergeDeep(target, ...sources) {
			if (!sources.length) return target;
			const source$4 = sources.shift();
			if (isObject(target) && isObject(source$4)) {
				for (const key in source$4) {
					if (isObject(source$4[key])) {
						const val$1 = target[key] ?? (target[key] = {});
						mergeDeep(val$1, source$4[key]);
					} else {
						target[key] = source$4[key];
					}
				}
			}
			return mergeDeep(target, ...sources);
		}
		function asArray(val$1) {
			return Array.isArray(val$1) ? val$1 : [val$1];
		}
		function clamp(val$1, min, max) {
			return min > val$1 ? min : max < val$1 ? max : val$1;
		}
		const ns$1 = { wordml: "http://schemas.openxmlformats.org/wordprocessingml/2006/main" };
		const LengthUsage = {
			Dxa: {
				mul: .05,
				unit: "pt"
			},
			Emu: {
				mul: 1 / 12700,
				unit: "pt"
			},
			FontSize: {
				mul: .5,
				unit: "pt"
			},
			Border: {
				mul: .125,
				unit: "pt",
				min: .25,
				max: 12
			},
			Point: {
				mul: 1,
				unit: "pt"
			},
			Percent: {
				mul: .02,
				unit: "%"
			}
		};
		function convertLength(val$1, usage = LengthUsage.Dxa) {
			if (val$1 == null || /.+(p[xt]|[%])$/.test(val$1)) {
				return val$1;
			}
			var num = parseInt(val$1) * usage.mul;
			if (usage.min && usage.max) num = clamp(num, usage.min, usage.max);
			return `${num.toFixed(2)}${usage.unit}`;
		}
		function convertBoolean(v$3, defaultValue = false) {
			switch (v$3) {
				case "1": return true;
				case "0": return false;
				case "on": return true;
				case "off": return false;
				case "true": return true;
				case "false": return false;
				default: return defaultValue;
			}
		}
		function parseCommonProperty(elem, props, xml$2) {
			if (elem.namespaceURI != ns$1.wordml) return false;
			switch (elem.localName) {
				case "color":
					props.color = xml$2.attr(elem, "val");
					break;
				case "sz":
					props.fontSize = xml$2.lengthAttr(elem, "val", LengthUsage.FontSize);
					break;
				default: return false;
			}
			return true;
		}
		function parseXmlString(xmlString, trimXmlDeclaration = false) {
			if (trimXmlDeclaration) xmlString = xmlString.replace(/<[?].*[?]>/, "");
			xmlString = removeUTF8BOM(xmlString);
			const result = new DOMParser().parseFromString(xmlString, "application/xml");
			const errorText = hasXmlParserError(result);
			if (errorText) throw new Error(errorText);
			return result;
		}
		function hasXmlParserError(doc) {
			return doc.getElementsByTagName("parsererror")[0]?.textContent;
		}
		function removeUTF8BOM(data) {
			return data.charCodeAt(0) === 65279 ? data.substring(1) : data;
		}
		function serializeXmlString(elem) {
			return new XMLSerializer().serializeToString(elem);
		}
		class XmlParser {
			elements(elem, localName = null) {
				const result = [];
				for (let i$7 = 0, l$3 = elem.childNodes.length; i$7 < l$3; i$7++) {
					let c$7 = elem.childNodes.item(i$7);
					if (c$7.nodeType == Node.ELEMENT_NODE && (localName == null || c$7.localName == localName)) result.push(c$7);
				}
				return result;
			}
			element(elem, localName) {
				for (let i$7 = 0, l$3 = elem.childNodes.length; i$7 < l$3; i$7++) {
					let c$7 = elem.childNodes.item(i$7);
					if (c$7.nodeType == 1 && c$7.localName == localName) return c$7;
				}
				return null;
			}
			elementAttr(elem, localName, attrLocalName) {
				var el = this.element(elem, localName);
				return el ? this.attr(el, attrLocalName) : undefined;
			}
			attrs(elem) {
				return Array.from(elem.attributes);
			}
			attr(elem, localName) {
				for (let i$7 = 0, l$3 = elem.attributes.length; i$7 < l$3; i$7++) {
					let a$2 = elem.attributes.item(i$7);
					if (a$2.localName == localName) return a$2.value;
				}
				return null;
			}
			intAttr(node, attrName, defaultValue = null) {
				var val$1 = this.attr(node, attrName);
				return val$1 ? parseInt(val$1) : defaultValue;
			}
			hexAttr(node, attrName, defaultValue = null) {
				var val$1 = this.attr(node, attrName);
				return val$1 ? parseInt(val$1, 16) : defaultValue;
			}
			floatAttr(node, attrName, defaultValue = null) {
				var val$1 = this.attr(node, attrName);
				return val$1 ? parseFloat(val$1) : defaultValue;
			}
			boolAttr(node, attrName, defaultValue = null) {
				return convertBoolean(this.attr(node, attrName), defaultValue);
			}
			lengthAttr(node, attrName, usage = LengthUsage.Dxa) {
				return convertLength(this.attr(node, attrName), usage);
			}
		}
		const globalXmlParser = new XmlParser();
		class Part {
			constructor(_package, path$1) {
				this._package = _package;
				this.path = path$1;
			}
			async load() {
				this.rels = await this._package.loadRelationships(this.path);
				const xmlText = await this._package.load(this.path);
				const xmlDoc = this._package.parseXmlDocument(xmlText);
				if (this._package.options.keepOrigin) {
					this._xmlDocument = xmlDoc;
				}
				this.parseXml(xmlDoc.firstElementChild);
			}
			save() {
				this._package.update(this.path, serializeXmlString(this._xmlDocument));
			}
			parseXml(root) {}
		}
		const embedFontTypeMap = {
			embedRegular: "regular",
			embedBold: "bold",
			embedItalic: "italic",
			embedBoldItalic: "boldItalic"
		};
		function parseFonts(root, xml$2) {
			return xml$2.elements(root).map((el) => parseFont(el, xml$2));
		}
		function parseFont(elem, xml$2) {
			let result = {
				name: xml$2.attr(elem, "name"),
				embedFontRefs: []
			};
			for (let el of xml$2.elements(elem)) {
				switch (el.localName) {
					case "family":
						result.family = xml$2.attr(el, "val");
						break;
					case "altName":
						result.altName = xml$2.attr(el, "val");
						break;
					case "embedRegular":
					case "embedBold":
					case "embedItalic":
					case "embedBoldItalic":
						result.embedFontRefs.push(parseEmbedFontRef(el, xml$2));
						break;
				}
			}
			return result;
		}
		function parseEmbedFontRef(elem, xml$2) {
			return {
				id: xml$2.attr(elem, "id"),
				key: xml$2.attr(elem, "fontKey"),
				type: embedFontTypeMap[elem.localName]
			};
		}
		class FontTablePart extends Part {
			parseXml(root) {
				this.fonts = parseFonts(root, this._package.xmlParser);
			}
		}
		class OpenXmlPackage {
			constructor(_zip, options) {
				this._zip = _zip;
				this.options = options;
				this.xmlParser = new XmlParser();
			}
			get(path$1) {
				const p$3 = normalizePath(path$1);
				return this._zip.files[p$3] ?? this._zip.files[p$3.replace(/\//g, "\\")];
			}
			update(path$1, content) {
				this._zip.file(path$1, content);
			}
			static async load(input, options) {
				const zip = await JSZip$1.loadAsync(input);
				return new OpenXmlPackage(zip, options);
			}
			save(type = "blob") {
				return this._zip.generateAsync({ type });
			}
			load(path$1, type = "string") {
				return this.get(path$1)?.async(type) ?? Promise.resolve(null);
			}
			async loadRelationships(path$1 = null) {
				let relsPath = `_rels/.rels`;
				if (path$1 != null) {
					const [f$4, fn] = splitPath(path$1);
					relsPath = `${f$4}_rels/${fn}.rels`;
				}
				const txt = await this.load(relsPath);
				return txt ? parseRelationships(this.parseXmlDocument(txt).firstElementChild, this.xmlParser) : null;
			}
			parseXmlDocument(txt) {
				return parseXmlString(txt, this.options.trimXmlDeclaration);
			}
		}
		function normalizePath(path$1) {
			return path$1.startsWith("/") ? path$1.substr(1) : path$1;
		}
		class DocumentPart extends Part {
			constructor(pkg, path$1, parser) {
				super(pkg, path$1);
				this._documentParser = parser;
			}
			parseXml(root) {
				this.body = this._documentParser.parseDocumentFile(root);
			}
		}
		function parseBorder(elem, xml$2) {
			return {
				type: xml$2.attr(elem, "val"),
				color: xml$2.attr(elem, "color"),
				size: xml$2.lengthAttr(elem, "sz", LengthUsage.Border),
				offset: xml$2.lengthAttr(elem, "space", LengthUsage.Point),
				frame: xml$2.boolAttr(elem, "frame"),
				shadow: xml$2.boolAttr(elem, "shadow")
			};
		}
		function parseBorders(elem, xml$2) {
			var result = {};
			for (let e$10 of xml$2.elements(elem)) {
				switch (e$10.localName) {
					case "left":
						result.left = parseBorder(e$10, xml$2);
						break;
					case "top":
						result.top = parseBorder(e$10, xml$2);
						break;
					case "right":
						result.right = parseBorder(e$10, xml$2);
						break;
					case "bottom":
						result.bottom = parseBorder(e$10, xml$2);
						break;
				}
			}
			return result;
		}
		var SectionType;
		(function(SectionType$1) {
			SectionType$1["Continuous"] = "continuous";
			SectionType$1["NextPage"] = "nextPage";
			SectionType$1["NextColumn"] = "nextColumn";
			SectionType$1["EvenPage"] = "evenPage";
			SectionType$1["OddPage"] = "oddPage";
		})(SectionType || (SectionType = {}));
		function parseSectionProperties(elem, xml$2 = globalXmlParser) {
			var section = {};
			for (let e$10 of xml$2.elements(elem)) {
				switch (e$10.localName) {
					case "pgSz":
						section.pageSize = {
							width: xml$2.lengthAttr(e$10, "w"),
							height: xml$2.lengthAttr(e$10, "h"),
							orientation: xml$2.attr(e$10, "orient")
						};
						break;
					case "type":
						section.type = xml$2.attr(e$10, "val");
						break;
					case "pgMar":
						section.pageMargins = {
							left: xml$2.lengthAttr(e$10, "left"),
							right: xml$2.lengthAttr(e$10, "right"),
							top: xml$2.lengthAttr(e$10, "top"),
							bottom: xml$2.lengthAttr(e$10, "bottom"),
							header: xml$2.lengthAttr(e$10, "header"),
							footer: xml$2.lengthAttr(e$10, "footer"),
							gutter: xml$2.lengthAttr(e$10, "gutter")
						};
						break;
					case "cols":
						section.columns = parseColumns(e$10, xml$2);
						break;
					case "headerReference":
						(section.headerRefs ?? (section.headerRefs = [])).push(parseFooterHeaderReference(e$10, xml$2));
						break;
					case "footerReference":
						(section.footerRefs ?? (section.footerRefs = [])).push(parseFooterHeaderReference(e$10, xml$2));
						break;
					case "titlePg":
						section.titlePage = xml$2.boolAttr(e$10, "val", true);
						break;
					case "pgBorders":
						section.pageBorders = parseBorders(e$10, xml$2);
						break;
					case "pgNumType":
						section.pageNumber = parsePageNumber(e$10, xml$2);
						break;
				}
			}
			return section;
		}
		function parseColumns(elem, xml$2) {
			return {
				numberOfColumns: xml$2.intAttr(elem, "num"),
				space: xml$2.lengthAttr(elem, "space"),
				separator: xml$2.boolAttr(elem, "sep"),
				equalWidth: xml$2.boolAttr(elem, "equalWidth", true),
				columns: xml$2.elements(elem, "col").map((e$10) => ({
					width: xml$2.lengthAttr(e$10, "w"),
					space: xml$2.lengthAttr(e$10, "space")
				}))
			};
		}
		function parsePageNumber(elem, xml$2) {
			return {
				chapSep: xml$2.attr(elem, "chapSep"),
				chapStyle: xml$2.attr(elem, "chapStyle"),
				format: xml$2.attr(elem, "fmt"),
				start: xml$2.intAttr(elem, "start")
			};
		}
		function parseFooterHeaderReference(elem, xml$2) {
			return {
				id: xml$2.attr(elem, "id"),
				type: xml$2.attr(elem, "type")
			};
		}
		function parseLineSpacing(elem, xml$2) {
			return {
				before: xml$2.lengthAttr(elem, "before"),
				after: xml$2.lengthAttr(elem, "after"),
				line: xml$2.intAttr(elem, "line"),
				lineRule: xml$2.attr(elem, "lineRule")
			};
		}
		function parseRunProperties(elem, xml$2) {
			let result = {};
			for (let el of xml$2.elements(elem)) {
				parseRunProperty(el, result, xml$2);
			}
			return result;
		}
		function parseRunProperty(elem, props, xml$2) {
			if (parseCommonProperty(elem, props, xml$2)) return true;
			return false;
		}
		function parseParagraphProperties(elem, xml$2) {
			let result = {};
			for (let el of xml$2.elements(elem)) {
				parseParagraphProperty(el, result, xml$2);
			}
			return result;
		}
		function parseParagraphProperty(elem, props, xml$2) {
			if (elem.namespaceURI != ns$1.wordml) return false;
			if (parseCommonProperty(elem, props, xml$2)) return true;
			switch (elem.localName) {
				case "tabs":
					props.tabs = parseTabs(elem, xml$2);
					break;
				case "sectPr":
					props.sectionProps = parseSectionProperties(elem, xml$2);
					break;
				case "numPr":
					props.numbering = parseNumbering$1(elem, xml$2);
					break;
				case "spacing":
					props.lineSpacing = parseLineSpacing(elem, xml$2);
					return false;
				case "textAlignment":
					props.textAlignment = xml$2.attr(elem, "val");
					return false;
				case "keepLines":
					props.keepLines = xml$2.boolAttr(elem, "val", true);
					break;
				case "keepNext":
					props.keepNext = xml$2.boolAttr(elem, "val", true);
					break;
				case "pageBreakBefore":
					props.pageBreakBefore = xml$2.boolAttr(elem, "val", true);
					break;
				case "outlineLvl":
					props.outlineLevel = xml$2.intAttr(elem, "val");
					break;
				case "pStyle":
					props.styleName = xml$2.attr(elem, "val");
					break;
				case "rPr":
					props.runProps = parseRunProperties(elem, xml$2);
					break;
				default: return false;
			}
			return true;
		}
		function parseTabs(elem, xml$2) {
			return xml$2.elements(elem, "tab").map((e$10) => ({
				position: xml$2.lengthAttr(e$10, "pos"),
				leader: xml$2.attr(e$10, "leader"),
				style: xml$2.attr(e$10, "val")
			}));
		}
		function parseNumbering$1(elem, xml$2) {
			var result = {};
			for (let e$10 of xml$2.elements(elem)) {
				switch (e$10.localName) {
					case "numId":
						result.id = xml$2.attr(e$10, "val");
						break;
					case "ilvl":
						result.level = xml$2.intAttr(e$10, "val");
						break;
				}
			}
			return result;
		}
		function parseNumberingPart(elem, xml$2) {
			let result = {
				numberings: [],
				abstractNumberings: [],
				bulletPictures: []
			};
			for (let e$10 of xml$2.elements(elem)) {
				switch (e$10.localName) {
					case "num":
						result.numberings.push(parseNumbering(e$10, xml$2));
						break;
					case "abstractNum":
						result.abstractNumberings.push(parseAbstractNumbering(e$10, xml$2));
						break;
					case "numPicBullet":
						result.bulletPictures.push(parseNumberingBulletPicture(e$10, xml$2));
						break;
				}
			}
			return result;
		}
		function parseNumbering(elem, xml$2) {
			let result = {
				id: xml$2.attr(elem, "numId"),
				overrides: []
			};
			for (let e$10 of xml$2.elements(elem)) {
				switch (e$10.localName) {
					case "abstractNumId":
						result.abstractId = xml$2.attr(e$10, "val");
						break;
					case "lvlOverride":
						result.overrides.push(parseNumberingLevelOverrride(e$10, xml$2));
						break;
				}
			}
			return result;
		}
		function parseAbstractNumbering(elem, xml$2) {
			let result = {
				id: xml$2.attr(elem, "abstractNumId"),
				levels: []
			};
			for (let e$10 of xml$2.elements(elem)) {
				switch (e$10.localName) {
					case "name":
						result.name = xml$2.attr(e$10, "val");
						break;
					case "multiLevelType":
						result.multiLevelType = xml$2.attr(e$10, "val");
						break;
					case "numStyleLink":
						result.numberingStyleLink = xml$2.attr(e$10, "val");
						break;
					case "styleLink":
						result.styleLink = xml$2.attr(e$10, "val");
						break;
					case "lvl":
						result.levels.push(parseNumberingLevel(e$10, xml$2));
						break;
				}
			}
			return result;
		}
		function parseNumberingLevel(elem, xml$2) {
			let result = { level: xml$2.intAttr(elem, "ilvl") };
			for (let e$10 of xml$2.elements(elem)) {
				switch (e$10.localName) {
					case "start":
						result.start = xml$2.attr(e$10, "val");
						break;
					case "lvlRestart":
						result.restart = xml$2.intAttr(e$10, "val");
						break;
					case "numFmt":
						result.format = xml$2.attr(e$10, "val");
						break;
					case "lvlText":
						result.text = xml$2.attr(e$10, "val");
						break;
					case "lvlJc":
						result.justification = xml$2.attr(e$10, "val");
						break;
					case "lvlPicBulletId":
						result.bulletPictureId = xml$2.attr(e$10, "val");
						break;
					case "pStyle":
						result.paragraphStyle = xml$2.attr(e$10, "val");
						break;
					case "pPr":
						result.paragraphProps = parseParagraphProperties(e$10, xml$2);
						break;
					case "rPr":
						result.runProps = parseRunProperties(e$10, xml$2);
						break;
				}
			}
			return result;
		}
		function parseNumberingLevelOverrride(elem, xml$2) {
			let result = { level: xml$2.intAttr(elem, "ilvl") };
			for (let e$10 of xml$2.elements(elem)) {
				switch (e$10.localName) {
					case "startOverride":
						result.start = xml$2.intAttr(e$10, "val");
						break;
					case "lvl":
						result.numberingLevel = parseNumberingLevel(e$10, xml$2);
						break;
				}
			}
			return result;
		}
		function parseNumberingBulletPicture(elem, xml$2) {
			var pict = xml$2.element(elem, "pict");
			var shape = pict && xml$2.element(pict, "shape");
			var imagedata = shape && xml$2.element(shape, "imagedata");
			return imagedata ? {
				id: xml$2.attr(elem, "numPicBulletId"),
				referenceId: xml$2.attr(imagedata, "id"),
				style: xml$2.attr(shape, "style")
			} : null;
		}
		class NumberingPart extends Part {
			constructor(pkg, path$1, parser) {
				super(pkg, path$1);
				this._documentParser = parser;
			}
			parseXml(root) {
				Object.assign(this, parseNumberingPart(root, this._package.xmlParser));
				this.domNumberings = this._documentParser.parseNumberingFile(root);
			}
		}
		class StylesPart extends Part {
			constructor(pkg, path$1, parser) {
				super(pkg, path$1);
				this._documentParser = parser;
			}
			parseXml(root) {
				this.styles = this._documentParser.parseStylesFile(root);
			}
		}
		var DomType;
		(function(DomType$1) {
			DomType$1["Document"] = "document";
			DomType$1["Paragraph"] = "paragraph";
			DomType$1["Run"] = "run";
			DomType$1["Break"] = "break";
			DomType$1["NoBreakHyphen"] = "noBreakHyphen";
			DomType$1["Table"] = "table";
			DomType$1["Row"] = "row";
			DomType$1["Cell"] = "cell";
			DomType$1["Hyperlink"] = "hyperlink";
			DomType$1["SmartTag"] = "smartTag";
			DomType$1["Drawing"] = "drawing";
			DomType$1["Image"] = "image";
			DomType$1["Text"] = "text";
			DomType$1["Tab"] = "tab";
			DomType$1["Symbol"] = "symbol";
			DomType$1["BookmarkStart"] = "bookmarkStart";
			DomType$1["BookmarkEnd"] = "bookmarkEnd";
			DomType$1["Footer"] = "footer";
			DomType$1["Header"] = "header";
			DomType$1["FootnoteReference"] = "footnoteReference";
			DomType$1["EndnoteReference"] = "endnoteReference";
			DomType$1["Footnote"] = "footnote";
			DomType$1["Endnote"] = "endnote";
			DomType$1["SimpleField"] = "simpleField";
			DomType$1["ComplexField"] = "complexField";
			DomType$1["Instruction"] = "instruction";
			DomType$1["VmlPicture"] = "vmlPicture";
			DomType$1["MmlMath"] = "mmlMath";
			DomType$1["MmlMathParagraph"] = "mmlMathParagraph";
			DomType$1["MmlFraction"] = "mmlFraction";
			DomType$1["MmlFunction"] = "mmlFunction";
			DomType$1["MmlFunctionName"] = "mmlFunctionName";
			DomType$1["MmlNumerator"] = "mmlNumerator";
			DomType$1["MmlDenominator"] = "mmlDenominator";
			DomType$1["MmlRadical"] = "mmlRadical";
			DomType$1["MmlBase"] = "mmlBase";
			DomType$1["MmlDegree"] = "mmlDegree";
			DomType$1["MmlSuperscript"] = "mmlSuperscript";
			DomType$1["MmlSubscript"] = "mmlSubscript";
			DomType$1["MmlPreSubSuper"] = "mmlPreSubSuper";
			DomType$1["MmlSubArgument"] = "mmlSubArgument";
			DomType$1["MmlSuperArgument"] = "mmlSuperArgument";
			DomType$1["MmlNary"] = "mmlNary";
			DomType$1["MmlDelimiter"] = "mmlDelimiter";
			DomType$1["MmlRun"] = "mmlRun";
			DomType$1["MmlEquationArray"] = "mmlEquationArray";
			DomType$1["MmlLimit"] = "mmlLimit";
			DomType$1["MmlLimitLower"] = "mmlLimitLower";
			DomType$1["MmlMatrix"] = "mmlMatrix";
			DomType$1["MmlMatrixRow"] = "mmlMatrixRow";
			DomType$1["MmlBox"] = "mmlBox";
			DomType$1["MmlBar"] = "mmlBar";
			DomType$1["MmlGroupChar"] = "mmlGroupChar";
			DomType$1["VmlElement"] = "vmlElement";
			DomType$1["Inserted"] = "inserted";
			DomType$1["Deleted"] = "deleted";
			DomType$1["DeletedText"] = "deletedText";
			DomType$1["Comment"] = "comment";
			DomType$1["CommentReference"] = "commentReference";
			DomType$1["CommentRangeStart"] = "commentRangeStart";
			DomType$1["CommentRangeEnd"] = "commentRangeEnd";
			DomType$1["AltChunk"] = "altChunk";
		})(DomType || (DomType = {}));
		class OpenXmlElementBase {
			constructor() {
				this.children = [];
				this.cssStyle = {};
			}
		}
		class WmlHeader extends OpenXmlElementBase {
			constructor() {
				super(...arguments);
				this.type = DomType.Header;
			}
		}
		class WmlFooter extends OpenXmlElementBase {
			constructor() {
				super(...arguments);
				this.type = DomType.Footer;
			}
		}
		class BaseHeaderFooterPart extends Part {
			constructor(pkg, path$1, parser) {
				super(pkg, path$1);
				this._documentParser = parser;
			}
			parseXml(root) {
				this.rootElement = this.createRootElement();
				this.rootElement.children = this._documentParser.parseBodyElements(root);
			}
		}
		class HeaderPart extends BaseHeaderFooterPart {
			createRootElement() {
				return new WmlHeader();
			}
		}
		class FooterPart extends BaseHeaderFooterPart {
			createRootElement() {
				return new WmlFooter();
			}
		}
		function parseExtendedProps(root, xmlParser) {
			const result = {};
			for (let el of xmlParser.elements(root)) {
				switch (el.localName) {
					case "Template":
						result.template = el.textContent;
						break;
					case "Pages":
						result.pages = safeParseToInt(el.textContent);
						break;
					case "Words":
						result.words = safeParseToInt(el.textContent);
						break;
					case "Characters":
						result.characters = safeParseToInt(el.textContent);
						break;
					case "Application":
						result.application = el.textContent;
						break;
					case "Lines":
						result.lines = safeParseToInt(el.textContent);
						break;
					case "Paragraphs":
						result.paragraphs = safeParseToInt(el.textContent);
						break;
					case "Company":
						result.company = el.textContent;
						break;
					case "AppVersion":
						result.appVersion = el.textContent;
						break;
				}
			}
			return result;
		}
		function safeParseToInt(value) {
			if (typeof value === "undefined") return;
			return parseInt(value);
		}
		class ExtendedPropsPart extends Part {
			parseXml(root) {
				this.props = parseExtendedProps(root, this._package.xmlParser);
			}
		}
		function parseCoreProps(root, xmlParser) {
			const result = {};
			for (let el of xmlParser.elements(root)) {
				switch (el.localName) {
					case "title":
						result.title = el.textContent;
						break;
					case "description":
						result.description = el.textContent;
						break;
					case "subject":
						result.subject = el.textContent;
						break;
					case "creator":
						result.creator = el.textContent;
						break;
					case "keywords":
						result.keywords = el.textContent;
						break;
					case "language":
						result.language = el.textContent;
						break;
					case "lastModifiedBy":
						result.lastModifiedBy = el.textContent;
						break;
					case "revision":
						el.textContent && (result.revision = parseInt(el.textContent));
						break;
				}
			}
			return result;
		}
		class CorePropsPart extends Part {
			parseXml(root) {
				this.props = parseCoreProps(root, this._package.xmlParser);
			}
		}
		class DmlTheme {}
		function parseTheme(elem, xml$2) {
			var result = new DmlTheme();
			var themeElements = xml$2.element(elem, "themeElements");
			for (let el of xml$2.elements(themeElements)) {
				switch (el.localName) {
					case "clrScheme":
						result.colorScheme = parseColorScheme(el, xml$2);
						break;
					case "fontScheme":
						result.fontScheme = parseFontScheme(el, xml$2);
						break;
				}
			}
			return result;
		}
		function parseColorScheme(elem, xml$2) {
			var result = {
				name: xml$2.attr(elem, "name"),
				colors: {}
			};
			for (let el of xml$2.elements(elem)) {
				var srgbClr = xml$2.element(el, "srgbClr");
				var sysClr = xml$2.element(el, "sysClr");
				if (srgbClr) {
					result.colors[el.localName] = xml$2.attr(srgbClr, "val");
				} else if (sysClr) {
					result.colors[el.localName] = xml$2.attr(sysClr, "lastClr");
				}
			}
			return result;
		}
		function parseFontScheme(elem, xml$2) {
			var result = { name: xml$2.attr(elem, "name") };
			for (let el of xml$2.elements(elem)) {
				switch (el.localName) {
					case "majorFont":
						result.majorFont = parseFontInfo(el, xml$2);
						break;
					case "minorFont":
						result.minorFont = parseFontInfo(el, xml$2);
						break;
				}
			}
			return result;
		}
		function parseFontInfo(elem, xml$2) {
			return {
				latinTypeface: xml$2.elementAttr(elem, "latin", "typeface"),
				eaTypeface: xml$2.elementAttr(elem, "ea", "typeface"),
				csTypeface: xml$2.elementAttr(elem, "cs", "typeface")
			};
		}
		class ThemePart extends Part {
			constructor(pkg, path$1) {
				super(pkg, path$1);
			}
			parseXml(root) {
				this.theme = parseTheme(root, this._package.xmlParser);
			}
		}
		class WmlBaseNote {}
		class WmlFootnote extends WmlBaseNote {
			constructor() {
				super(...arguments);
				this.type = DomType.Footnote;
			}
		}
		class WmlEndnote extends WmlBaseNote {
			constructor() {
				super(...arguments);
				this.type = DomType.Endnote;
			}
		}
		class BaseNotePart extends Part {
			constructor(pkg, path$1, parser) {
				super(pkg, path$1);
				this._documentParser = parser;
			}
		}
		class FootnotesPart extends BaseNotePart {
			constructor(pkg, path$1, parser) {
				super(pkg, path$1, parser);
			}
			parseXml(root) {
				this.notes = this._documentParser.parseNotes(root, "footnote", WmlFootnote);
			}
		}
		class EndnotesPart extends BaseNotePart {
			constructor(pkg, path$1, parser) {
				super(pkg, path$1, parser);
			}
			parseXml(root) {
				this.notes = this._documentParser.parseNotes(root, "endnote", WmlEndnote);
			}
		}
		function parseSettings(elem, xml$2) {
			var result = {};
			for (let el of xml$2.elements(elem)) {
				switch (el.localName) {
					case "defaultTabStop":
						result.defaultTabStop = xml$2.lengthAttr(el, "val");
						break;
					case "footnotePr":
						result.footnoteProps = parseNoteProperties(el, xml$2);
						break;
					case "endnotePr":
						result.endnoteProps = parseNoteProperties(el, xml$2);
						break;
					case "autoHyphenation":
						result.autoHyphenation = xml$2.boolAttr(el, "val");
						break;
				}
			}
			return result;
		}
		function parseNoteProperties(elem, xml$2) {
			var result = { defaultNoteIds: [] };
			for (let el of xml$2.elements(elem)) {
				switch (el.localName) {
					case "numFmt":
						result.nummeringFormat = xml$2.attr(el, "val");
						break;
					case "footnote":
					case "endnote":
						result.defaultNoteIds.push(xml$2.attr(el, "id"));
						break;
				}
			}
			return result;
		}
		class SettingsPart extends Part {
			constructor(pkg, path$1) {
				super(pkg, path$1);
			}
			parseXml(root) {
				this.settings = parseSettings(root, this._package.xmlParser);
			}
		}
		function parseCustomProps(root, xml$2) {
			return xml$2.elements(root, "property").map((e$10) => {
				const firstChild = e$10.firstChild;
				return {
					formatId: xml$2.attr(e$10, "fmtid"),
					name: xml$2.attr(e$10, "name"),
					type: firstChild.nodeName,
					value: firstChild.textContent
				};
			});
		}
		class CustomPropsPart extends Part {
			parseXml(root) {
				this.props = parseCustomProps(root, this._package.xmlParser);
			}
		}
		class CommentsPart extends Part {
			constructor(pkg, path$1, parser) {
				super(pkg, path$1);
				this._documentParser = parser;
			}
			parseXml(root) {
				this.comments = this._documentParser.parseComments(root);
				this.commentMap = keyBy(this.comments, (x$2) => x$2.id);
			}
		}
		class CommentsExtendedPart extends Part {
			constructor(pkg, path$1) {
				super(pkg, path$1);
				this.comments = [];
			}
			parseXml(root) {
				const xml$2 = this._package.xmlParser;
				for (let el of xml$2.elements(root, "commentEx")) {
					this.comments.push({
						paraId: xml$2.attr(el, "paraId"),
						paraIdParent: xml$2.attr(el, "paraIdParent"),
						done: xml$2.boolAttr(el, "done")
					});
				}
				this.commentMap = keyBy(this.comments, (x$2) => x$2.paraId);
			}
		}
		const topLevelRels = [
			{
				type: RelationshipTypes.OfficeDocument,
				target: "word/document.xml"
			},
			{
				type: RelationshipTypes.ExtendedProperties,
				target: "docProps/app.xml"
			},
			{
				type: RelationshipTypes.CoreProperties,
				target: "docProps/core.xml"
			},
			{
				type: RelationshipTypes.CustomProperties,
				target: "docProps/custom.xml"
			}
		];
		class WordDocument {
			constructor() {
				this.parts = [];
				this.partsMap = {};
			}
			static async load(blob, parser, options) {
				var d$5 = new WordDocument();
				d$5._options = options;
				d$5._parser = parser;
				d$5._package = await OpenXmlPackage.load(blob, options);
				d$5.rels = await d$5._package.loadRelationships();
				await Promise.all(topLevelRels.map((rel$1) => {
					const r$10 = d$5.rels.find((x$2) => x$2.type === rel$1.type) ?? rel$1;
					return d$5.loadRelationshipPart(r$10.target, r$10.type);
				}));
				return d$5;
			}
			save(type = "blob") {
				return this._package.save(type);
			}
			async loadRelationshipPart(path$1, type) {
				if (this.partsMap[path$1]) return this.partsMap[path$1];
				if (!this._package.get(path$1)) return null;
				let part = null;
				switch (type) {
					case RelationshipTypes.OfficeDocument:
						this.documentPart = part = new DocumentPart(this._package, path$1, this._parser);
						break;
					case RelationshipTypes.FontTable:
						this.fontTablePart = part = new FontTablePart(this._package, path$1);
						break;
					case RelationshipTypes.Numbering:
						this.numberingPart = part = new NumberingPart(this._package, path$1, this._parser);
						break;
					case RelationshipTypes.Styles:
						this.stylesPart = part = new StylesPart(this._package, path$1, this._parser);
						break;
					case RelationshipTypes.Theme:
						this.themePart = part = new ThemePart(this._package, path$1);
						break;
					case RelationshipTypes.Footnotes:
						this.footnotesPart = part = new FootnotesPart(this._package, path$1, this._parser);
						break;
					case RelationshipTypes.Endnotes:
						this.endnotesPart = part = new EndnotesPart(this._package, path$1, this._parser);
						break;
					case RelationshipTypes.Footer:
						part = new FooterPart(this._package, path$1, this._parser);
						break;
					case RelationshipTypes.Header:
						part = new HeaderPart(this._package, path$1, this._parser);
						break;
					case RelationshipTypes.CoreProperties:
						this.corePropsPart = part = new CorePropsPart(this._package, path$1);
						break;
					case RelationshipTypes.ExtendedProperties:
						this.extendedPropsPart = part = new ExtendedPropsPart(this._package, path$1);
						break;
					case RelationshipTypes.CustomProperties:
						part = new CustomPropsPart(this._package, path$1);
						break;
					case RelationshipTypes.Settings:
						this.settingsPart = part = new SettingsPart(this._package, path$1);
						break;
					case RelationshipTypes.Comments:
						this.commentsPart = part = new CommentsPart(this._package, path$1, this._parser);
						break;
					case RelationshipTypes.CommentsExtended:
						this.commentsExtendedPart = part = new CommentsExtendedPart(this._package, path$1);
						break;
				}
				if (part == null) return Promise.resolve(null);
				this.partsMap[path$1] = part;
				this.parts.push(part);
				await part.load();
				if (part.rels?.length > 0) {
					const [folder] = splitPath(part.path);
					await Promise.all(part.rels.map((rel$1) => this.loadRelationshipPart(resolvePath(rel$1.target, folder), rel$1.type)));
				}
				return part;
			}
			async loadDocumentImage(id, part) {
				const x$2 = await this.loadResource(part ?? this.documentPart, id, "blob");
				return this.blobToURL(x$2);
			}
			async loadNumberingImage(id) {
				const x$2 = await this.loadResource(this.numberingPart, id, "blob");
				return this.blobToURL(x$2);
			}
			async loadFont(id, key) {
				const x$2 = await this.loadResource(this.fontTablePart, id, "uint8array");
				return x$2 ? this.blobToURL(new Blob([deobfuscate(x$2, key)])) : x$2;
			}
			async loadAltChunk(id, part) {
				return await this.loadResource(part ?? this.documentPart, id, "string");
			}
			blobToURL(blob) {
				if (!blob) return null;
				if (this._options.useBase64URL) {
					return blobToBase64(blob);
				}
				return URL.createObjectURL(blob);
			}
			findPartByRelId(id, basePart = null) {
				var rel$1 = (basePart.rels ?? this.rels).find((r$10) => r$10.id == id);
				const folder = basePart ? splitPath(basePart.path)[0] : "";
				return rel$1 ? this.partsMap[resolvePath(rel$1.target, folder)] : null;
			}
			getPathById(part, id) {
				const rel$1 = part.rels.find((x$2) => x$2.id == id);
				const [folder] = splitPath(part.path);
				return rel$1 ? resolvePath(rel$1.target, folder) : null;
			}
			loadResource(part, id, outputType) {
				const path$1 = this.getPathById(part, id);
				return path$1 ? this._package.load(path$1, outputType) : Promise.resolve(null);
			}
		}
		function deobfuscate(data, guidKey) {
			const len = 16;
			const trimmed = guidKey.replace(/{|}|-/g, "");
			const numbers = new Array(len);
			for (let i$7 = 0; i$7 < len; i$7++) numbers[len - i$7 - 1] = parseInt(trimmed.substring(i$7 * 2, i$7 * 2 + 2), 16);
			for (let i$7 = 0; i$7 < 32; i$7++) data[i$7] = data[i$7] ^ numbers[i$7 % len];
			return data;
		}
		function parseBookmarkStart(elem, xml$2) {
			return {
				type: DomType.BookmarkStart,
				id: xml$2.attr(elem, "id"),
				name: xml$2.attr(elem, "name"),
				colFirst: xml$2.intAttr(elem, "colFirst"),
				colLast: xml$2.intAttr(elem, "colLast")
			};
		}
		function parseBookmarkEnd(elem, xml$2) {
			return {
				type: DomType.BookmarkEnd,
				id: xml$2.attr(elem, "id")
			};
		}
		class VmlElement extends OpenXmlElementBase {
			constructor() {
				super(...arguments);
				this.type = DomType.VmlElement;
				this.attrs = {};
			}
		}
		function parseVmlElement(elem, parser) {
			var result = new VmlElement();
			switch (elem.localName) {
				case "rect":
					result.tagName = "rect";
					Object.assign(result.attrs, {
						width: "100%",
						height: "100%"
					});
					break;
				case "oval":
					result.tagName = "ellipse";
					Object.assign(result.attrs, {
						cx: "50%",
						cy: "50%",
						rx: "50%",
						ry: "50%"
					});
					break;
				case "line":
					result.tagName = "line";
					break;
				case "shape":
					result.tagName = "g";
					break;
				case "textbox":
					result.tagName = "foreignObject";
					Object.assign(result.attrs, {
						width: "100%",
						height: "100%"
					});
					break;
				default: return null;
			}
			for (const at of globalXmlParser.attrs(elem)) {
				switch (at.localName) {
					case "style":
						result.cssStyleText = at.value;
						break;
					case "fillcolor":
						result.attrs.fill = at.value;
						break;
					case "from":
						const [x1, y1] = parsePoint(at.value);
						Object.assign(result.attrs, {
							x1,
							y1
						});
						break;
					case "to":
						const [x2, y2] = parsePoint(at.value);
						Object.assign(result.attrs, {
							x2,
							y2
						});
						break;
				}
			}
			for (const el of globalXmlParser.elements(elem)) {
				switch (el.localName) {
					case "stroke":
						Object.assign(result.attrs, parseStroke(el));
						break;
					case "fill":
						Object.assign(result.attrs, parseFill());
						break;
					case "imagedata":
						result.tagName = "image";
						Object.assign(result.attrs, {
							width: "100%",
							height: "100%"
						});
						result.imageHref = {
							id: globalXmlParser.attr(el, "id"),
							title: globalXmlParser.attr(el, "title")
						};
						break;
					case "txbxContent":
						result.children.push(...parser.parseBodyElements(el));
						break;
					default:
						const child = parseVmlElement(el, parser);
						child && result.children.push(child);
						break;
				}
			}
			return result;
		}
		function parseStroke(el) {
			return {
				"stroke": globalXmlParser.attr(el, "color"),
				"stroke-width": globalXmlParser.lengthAttr(el, "weight", LengthUsage.Emu) ?? "1px"
			};
		}
		function parseFill(el) {
			return {};
		}
		function parsePoint(val$1) {
			return val$1.split(",");
		}
		class WmlComment extends OpenXmlElementBase {
			constructor() {
				super(...arguments);
				this.type = DomType.Comment;
			}
		}
		class WmlCommentReference extends OpenXmlElementBase {
			constructor(id) {
				super();
				this.id = id;
				this.type = DomType.CommentReference;
			}
		}
		class WmlCommentRangeStart extends OpenXmlElementBase {
			constructor(id) {
				super();
				this.id = id;
				this.type = DomType.CommentRangeStart;
			}
		}
		class WmlCommentRangeEnd extends OpenXmlElementBase {
			constructor(id) {
				super();
				this.id = id;
				this.type = DomType.CommentRangeEnd;
			}
		}
		var autos = {
			shd: "inherit",
			color: "black",
			borderColor: "black",
			highlight: "transparent"
		};
		const supportedNamespaceURIs = [];
		const mmlTagMap = {
			"oMath": DomType.MmlMath,
			"oMathPara": DomType.MmlMathParagraph,
			"f": DomType.MmlFraction,
			"func": DomType.MmlFunction,
			"fName": DomType.MmlFunctionName,
			"num": DomType.MmlNumerator,
			"den": DomType.MmlDenominator,
			"rad": DomType.MmlRadical,
			"deg": DomType.MmlDegree,
			"e": DomType.MmlBase,
			"sSup": DomType.MmlSuperscript,
			"sSub": DomType.MmlSubscript,
			"sPre": DomType.MmlPreSubSuper,
			"sup": DomType.MmlSuperArgument,
			"sub": DomType.MmlSubArgument,
			"d": DomType.MmlDelimiter,
			"nary": DomType.MmlNary,
			"eqArr": DomType.MmlEquationArray,
			"lim": DomType.MmlLimit,
			"limLow": DomType.MmlLimitLower,
			"m": DomType.MmlMatrix,
			"mr": DomType.MmlMatrixRow,
			"box": DomType.MmlBox,
			"bar": DomType.MmlBar,
			"groupChr": DomType.MmlGroupChar
		};
		class DocumentParser {
			constructor(options) {
				this.options = {
					ignoreWidth: false,
					debug: false,
					...options
				};
			}
			parseNotes(xmlDoc, elemName, elemClass) {
				var result = [];
				for (let el of globalXmlParser.elements(xmlDoc, elemName)) {
					const node = new elemClass();
					node.id = globalXmlParser.attr(el, "id");
					node.noteType = globalXmlParser.attr(el, "type");
					node.children = this.parseBodyElements(el);
					result.push(node);
				}
				return result;
			}
			parseComments(xmlDoc) {
				var result = [];
				for (let el of globalXmlParser.elements(xmlDoc, "comment")) {
					const item = new WmlComment();
					item.id = globalXmlParser.attr(el, "id");
					item.author = globalXmlParser.attr(el, "author");
					item.initials = globalXmlParser.attr(el, "initials");
					item.date = globalXmlParser.attr(el, "date");
					item.children = this.parseBodyElements(el);
					result.push(item);
				}
				return result;
			}
			parseDocumentFile(xmlDoc) {
				var xbody = globalXmlParser.element(xmlDoc, "body");
				var background = globalXmlParser.element(xmlDoc, "background");
				var sectPr = globalXmlParser.element(xbody, "sectPr");
				return {
					type: DomType.Document,
					children: this.parseBodyElements(xbody),
					props: sectPr ? parseSectionProperties(sectPr, globalXmlParser) : {},
					cssStyle: background ? this.parseBackground(background) : {}
				};
			}
			parseBackground(elem) {
				var result = {};
				var color = xmlUtil.colorAttr(elem, "color");
				if (color) {
					result["background-color"] = color;
				}
				return result;
			}
			parseBodyElements(element) {
				var children = [];
				for (const elem of globalXmlParser.elements(element)) {
					switch (elem.localName) {
						case "p":
							children.push(this.parseParagraph(elem));
							break;
						case "altChunk":
							children.push(this.parseAltChunk(elem));
							break;
						case "tbl":
							children.push(this.parseTable(elem));
							break;
						case "sdt":
							children.push(...this.parseSdt(elem, (e$10) => this.parseBodyElements(e$10)));
							break;
					}
				}
				return children;
			}
			parseStylesFile(xstyles) {
				var result = [];
				for (const n$9 of globalXmlParser.elements(xstyles)) {
					switch (n$9.localName) {
						case "style":
							result.push(this.parseStyle(n$9));
							break;
						case "docDefaults":
							result.push(this.parseDefaultStyles(n$9));
							break;
					}
				}
				return result;
			}
			parseDefaultStyles(node) {
				var result = {
					id: null,
					name: null,
					target: null,
					basedOn: null,
					styles: []
				};
				for (const c$7 of globalXmlParser.elements(node)) {
					switch (c$7.localName) {
						case "rPrDefault":
							var rPr = globalXmlParser.element(c$7, "rPr");
							if (rPr) result.styles.push({
								target: "span",
								values: this.parseDefaultProperties(rPr, {})
							});
							break;
						case "pPrDefault":
							var pPr = globalXmlParser.element(c$7, "pPr");
							if (pPr) result.styles.push({
								target: "p",
								values: this.parseDefaultProperties(pPr, {})
							});
							break;
					}
				}
				return result;
			}
			parseStyle(node) {
				var result = {
					id: globalXmlParser.attr(node, "styleId"),
					isDefault: globalXmlParser.boolAttr(node, "default"),
					name: null,
					target: null,
					basedOn: null,
					styles: [],
					linked: null
				};
				switch (globalXmlParser.attr(node, "type")) {
					case "paragraph":
						result.target = "p";
						break;
					case "table":
						result.target = "table";
						break;
					case "character":
						result.target = "span";
						break;
				}
				for (const n$9 of globalXmlParser.elements(node)) {
					switch (n$9.localName) {
						case "basedOn":
							result.basedOn = globalXmlParser.attr(n$9, "val");
							break;
						case "name":
							result.name = globalXmlParser.attr(n$9, "val");
							break;
						case "link":
							result.linked = globalXmlParser.attr(n$9, "val");
							break;
						case "next":
							result.next = globalXmlParser.attr(n$9, "val");
							break;
						case "aliases":
							result.aliases = globalXmlParser.attr(n$9, "val").split(",");
							break;
						case "pPr":
							result.styles.push({
								target: "p",
								values: this.parseDefaultProperties(n$9, {})
							});
							result.paragraphProps = parseParagraphProperties(n$9, globalXmlParser);
							break;
						case "rPr":
							result.styles.push({
								target: "span",
								values: this.parseDefaultProperties(n$9, {})
							});
							result.runProps = parseRunProperties(n$9, globalXmlParser);
							break;
						case "tblPr":
						case "tcPr":
							result.styles.push({
								target: "td",
								values: this.parseDefaultProperties(n$9, {})
							});
							break;
						case "tblStylePr":
							for (let s$5 of this.parseTableStyle(n$9)) result.styles.push(s$5);
							break;
						case "rsid":
						case "qFormat":
						case "hidden":
						case "semiHidden":
						case "unhideWhenUsed":
						case "autoRedefine":
						case "uiPriority": break;
						default: this.options.debug && console.warn(`DOCX: Unknown style element: ${n$9.localName}`);
					}
				}
				return result;
			}
			parseTableStyle(node) {
				var result = [];
				var type = globalXmlParser.attr(node, "type");
				var selector = "";
				var modificator = "";
				switch (type) {
					case "firstRow":
						modificator = ".first-row";
						selector = "tr.first-row td";
						break;
					case "lastRow":
						modificator = ".last-row";
						selector = "tr.last-row td";
						break;
					case "firstCol":
						modificator = ".first-col";
						selector = "td.first-col";
						break;
					case "lastCol":
						modificator = ".last-col";
						selector = "td.last-col";
						break;
					case "band1Vert":
						modificator = ":not(.no-vband)";
						selector = "td.odd-col";
						break;
					case "band2Vert":
						modificator = ":not(.no-vband)";
						selector = "td.even-col";
						break;
					case "band1Horz":
						modificator = ":not(.no-hband)";
						selector = "tr.odd-row";
						break;
					case "band2Horz":
						modificator = ":not(.no-hband)";
						selector = "tr.even-row";
						break;
					default: return [];
				}
				for (const n$9 of globalXmlParser.elements(node)) {
					switch (n$9.localName) {
						case "pPr":
							result.push({
								target: `${selector} p`,
								mod: modificator,
								values: this.parseDefaultProperties(n$9, {})
							});
							break;
						case "rPr":
							result.push({
								target: `${selector} span`,
								mod: modificator,
								values: this.parseDefaultProperties(n$9, {})
							});
							break;
						case "tblPr":
						case "tcPr":
							result.push({
								target: selector,
								mod: modificator,
								values: this.parseDefaultProperties(n$9, {})
							});
							break;
					}
				}
				return result;
			}
			parseNumberingFile(node) {
				var result = [];
				var mapping = {};
				var bullets = [];
				for (const n$9 of globalXmlParser.elements(node)) {
					switch (n$9.localName) {
						case "abstractNum":
							this.parseAbstractNumbering(n$9, bullets).forEach((x$2) => result.push(x$2));
							break;
						case "numPicBullet":
							bullets.push(this.parseNumberingPicBullet(n$9));
							break;
						case "num":
							var numId = globalXmlParser.attr(n$9, "numId");
							var abstractNumId = globalXmlParser.elementAttr(n$9, "abstractNumId", "val");
							mapping[abstractNumId] = numId;
							break;
					}
				}
				result.forEach((x$2) => x$2.id = mapping[x$2.id]);
				return result;
			}
			parseNumberingPicBullet(elem) {
				var pict = globalXmlParser.element(elem, "pict");
				var shape = pict && globalXmlParser.element(pict, "shape");
				var imagedata = shape && globalXmlParser.element(shape, "imagedata");
				return imagedata ? {
					id: globalXmlParser.intAttr(elem, "numPicBulletId"),
					src: globalXmlParser.attr(imagedata, "id"),
					style: globalXmlParser.attr(shape, "style")
				} : null;
			}
			parseAbstractNumbering(node, bullets) {
				var result = [];
				var id = globalXmlParser.attr(node, "abstractNumId");
				for (const n$9 of globalXmlParser.elements(node)) {
					switch (n$9.localName) {
						case "lvl":
							result.push(this.parseNumberingLevel(id, n$9, bullets));
							break;
					}
				}
				return result;
			}
			parseNumberingLevel(id, node, bullets) {
				var result = {
					id,
					level: globalXmlParser.intAttr(node, "ilvl"),
					start: 1,
					pStyleName: undefined,
					pStyle: {},
					rStyle: {},
					suff: "tab"
				};
				for (const n$9 of globalXmlParser.elements(node)) {
					switch (n$9.localName) {
						case "start":
							result.start = globalXmlParser.intAttr(n$9, "val");
							break;
						case "pPr":
							this.parseDefaultProperties(n$9, result.pStyle);
							break;
						case "rPr":
							this.parseDefaultProperties(n$9, result.rStyle);
							break;
						case "lvlPicBulletId":
							var bulletId = globalXmlParser.intAttr(n$9, "val");
							result.bullet = bullets.find((x$2) => x$2?.id == bulletId);
							break;
						case "lvlText":
							result.levelText = globalXmlParser.attr(n$9, "val");
							break;
						case "pStyle":
							result.pStyleName = globalXmlParser.attr(n$9, "val");
							break;
						case "numFmt":
							result.format = globalXmlParser.attr(n$9, "val");
							break;
						case "suff":
							result.suff = globalXmlParser.attr(n$9, "val");
							break;
					}
				}
				return result;
			}
			parseSdt(node, parser) {
				const sdtContent = globalXmlParser.element(node, "sdtContent");
				return sdtContent ? parser(sdtContent) : [];
			}
			parseInserted(node, parentParser) {
				return {
					type: DomType.Inserted,
					children: parentParser(node)?.children ?? []
				};
			}
			parseDeleted(node, parentParser) {
				return {
					type: DomType.Deleted,
					children: parentParser(node)?.children ?? []
				};
			}
			parseAltChunk(node) {
				return {
					type: DomType.AltChunk,
					children: [],
					id: globalXmlParser.attr(node, "id")
				};
			}
			parseParagraph(node) {
				var result = {
					type: DomType.Paragraph,
					children: []
				};
				for (let el of globalXmlParser.elements(node)) {
					switch (el.localName) {
						case "pPr":
							this.parseParagraphProperties(el, result);
							break;
						case "r":
							result.children.push(this.parseRun(el, result));
							break;
						case "hyperlink":
							result.children.push(this.parseHyperlink(el, result));
							break;
						case "smartTag":
							result.children.push(this.parseSmartTag(el, result));
							break;
						case "bookmarkStart":
							result.children.push(parseBookmarkStart(el, globalXmlParser));
							break;
						case "bookmarkEnd":
							result.children.push(parseBookmarkEnd(el, globalXmlParser));
							break;
						case "commentRangeStart":
							result.children.push(new WmlCommentRangeStart(globalXmlParser.attr(el, "id")));
							break;
						case "commentRangeEnd":
							result.children.push(new WmlCommentRangeEnd(globalXmlParser.attr(el, "id")));
							break;
						case "oMath":
						case "oMathPara":
							result.children.push(this.parseMathElement(el));
							break;
						case "sdt":
							result.children.push(...this.parseSdt(el, (e$10) => this.parseParagraph(e$10).children));
							break;
						case "ins":
							result.children.push(this.parseInserted(el, (e$10) => this.parseParagraph(e$10)));
							break;
						case "del":
							result.children.push(this.parseDeleted(el, (e$10) => this.parseParagraph(e$10)));
							break;
					}
				}
				return result;
			}
			parseParagraphProperties(elem, paragraph) {
				this.parseDefaultProperties(elem, paragraph.cssStyle = {}, null, (c$7) => {
					if (parseParagraphProperty(c$7, paragraph, globalXmlParser)) return true;
					switch (c$7.localName) {
						case "pStyle":
							paragraph.styleName = globalXmlParser.attr(c$7, "val");
							break;
						case "cnfStyle":
							paragraph.className = values.classNameOfCnfStyle(c$7);
							break;
						case "framePr":
							this.parseFrame(c$7, paragraph);
							break;
						case "rPr": break;
						default: return false;
					}
					return true;
				});
			}
			parseFrame(node, paragraph) {
				var dropCap = globalXmlParser.attr(node, "dropCap");
				if (dropCap == "drop") paragraph.cssStyle["float"] = "left";
			}
			parseHyperlink(node, parent) {
				var result = {
					type: DomType.Hyperlink,
					parent,
					children: []
				};
				result.anchor = globalXmlParser.attr(node, "anchor");
				result.id = globalXmlParser.attr(node, "id");
				for (const c$7 of globalXmlParser.elements(node)) {
					switch (c$7.localName) {
						case "r":
							result.children.push(this.parseRun(c$7, result));
							break;
					}
				}
				return result;
			}
			parseSmartTag(node, parent) {
				var result = {
					type: DomType.SmartTag,
					parent,
					children: []
				};
				var uri = globalXmlParser.attr(node, "uri");
				var element = globalXmlParser.attr(node, "element");
				if (uri) result.uri = uri;
				if (element) result.element = element;
				for (const c$7 of globalXmlParser.elements(node)) {
					switch (c$7.localName) {
						case "r":
							result.children.push(this.parseRun(c$7, result));
							break;
					}
				}
				return result;
			}
			parseRun(node, parent) {
				var result = {
					type: DomType.Run,
					parent,
					children: []
				};
				for (let c$7 of globalXmlParser.elements(node)) {
					c$7 = this.checkAlternateContent(c$7);
					switch (c$7.localName) {
						case "t":
							result.children.push({
								type: DomType.Text,
								text: c$7.textContent
							});
							break;
						case "delText":
							result.children.push({
								type: DomType.DeletedText,
								text: c$7.textContent
							});
							break;
						case "commentReference":
							result.children.push(new WmlCommentReference(globalXmlParser.attr(c$7, "id")));
							break;
						case "fldSimple":
							result.children.push({
								type: DomType.SimpleField,
								instruction: globalXmlParser.attr(c$7, "instr"),
								lock: globalXmlParser.boolAttr(c$7, "lock", false),
								dirty: globalXmlParser.boolAttr(c$7, "dirty", false)
							});
							break;
						case "instrText":
							result.fieldRun = true;
							result.children.push({
								type: DomType.Instruction,
								text: c$7.textContent
							});
							break;
						case "fldChar":
							result.fieldRun = true;
							result.children.push({
								type: DomType.ComplexField,
								charType: globalXmlParser.attr(c$7, "fldCharType"),
								lock: globalXmlParser.boolAttr(c$7, "lock", false),
								dirty: globalXmlParser.boolAttr(c$7, "dirty", false)
							});
							break;
						case "noBreakHyphen":
							result.children.push({ type: DomType.NoBreakHyphen });
							break;
						case "br":
							result.children.push({
								type: DomType.Break,
								break: globalXmlParser.attr(c$7, "type") || "textWrapping"
							});
							break;
						case "lastRenderedPageBreak":
							result.children.push({
								type: DomType.Break,
								break: "lastRenderedPageBreak"
							});
							break;
						case "sym":
							result.children.push({
								type: DomType.Symbol,
								font: encloseFontFamily(globalXmlParser.attr(c$7, "font")),
								char: globalXmlParser.attr(c$7, "char")
							});
							break;
						case "tab":
							result.children.push({ type: DomType.Tab });
							break;
						case "footnoteReference":
							result.children.push({
								type: DomType.FootnoteReference,
								id: globalXmlParser.attr(c$7, "id")
							});
							break;
						case "endnoteReference":
							result.children.push({
								type: DomType.EndnoteReference,
								id: globalXmlParser.attr(c$7, "id")
							});
							break;
						case "drawing":
							let d$5 = this.parseDrawing(c$7);
							if (d$5) result.children = [d$5];
							break;
						case "pict":
							result.children.push(this.parseVmlPicture(c$7));
							break;
						case "rPr":
							this.parseRunProperties(c$7, result);
							break;
					}
				}
				return result;
			}
			parseMathElement(elem) {
				const propsTag = `${elem.localName}Pr`;
				const result = {
					type: mmlTagMap[elem.localName],
					children: []
				};
				for (const el of globalXmlParser.elements(elem)) {
					const childType = mmlTagMap[el.localName];
					if (childType) {
						result.children.push(this.parseMathElement(el));
					} else if (el.localName == "r") {
						var run = this.parseRun(el);
						run.type = DomType.MmlRun;
						result.children.push(run);
					} else if (el.localName == propsTag) {
						result.props = this.parseMathProperies(el);
					}
				}
				return result;
			}
			parseMathProperies(elem) {
				const result = {};
				for (const el of globalXmlParser.elements(elem)) {
					switch (el.localName) {
						case "chr":
							result.char = globalXmlParser.attr(el, "val");
							break;
						case "vertJc":
							result.verticalJustification = globalXmlParser.attr(el, "val");
							break;
						case "pos":
							result.position = globalXmlParser.attr(el, "val");
							break;
						case "degHide":
							result.hideDegree = globalXmlParser.boolAttr(el, "val");
							break;
						case "begChr":
							result.beginChar = globalXmlParser.attr(el, "val");
							break;
						case "endChr":
							result.endChar = globalXmlParser.attr(el, "val");
							break;
					}
				}
				return result;
			}
			parseRunProperties(elem, run) {
				this.parseDefaultProperties(elem, run.cssStyle = {}, null, (c$7) => {
					switch (c$7.localName) {
						case "rStyle":
							run.styleName = globalXmlParser.attr(c$7, "val");
							break;
						case "vertAlign":
							run.verticalAlign = values.valueOfVertAlign(c$7, true);
							break;
						default: return false;
					}
					return true;
				});
			}
			parseVmlPicture(elem) {
				const result = {
					type: DomType.VmlPicture,
					children: []
				};
				for (const el of globalXmlParser.elements(elem)) {
					const child = parseVmlElement(el, this);
					child && result.children.push(child);
				}
				return result;
			}
			checkAlternateContent(elem) {
				if (elem.localName != "AlternateContent") return elem;
				var choice = globalXmlParser.element(elem, "Choice");
				if (choice) {
					var requires = globalXmlParser.attr(choice, "Requires");
					var namespaceURI = elem.lookupNamespaceURI(requires);
					if (supportedNamespaceURIs.includes(namespaceURI)) return choice.firstElementChild;
				}
				return globalXmlParser.element(elem, "Fallback")?.firstElementChild;
			}
			parseDrawing(node) {
				for (var n$9 of globalXmlParser.elements(node)) {
					switch (n$9.localName) {
						case "inline":
						case "anchor": return this.parseDrawingWrapper(n$9);
					}
				}
			}
			parseDrawingWrapper(node) {
				var result = {
					type: DomType.Drawing,
					children: [],
					cssStyle: {}
				};
				var isAnchor = node.localName == "anchor";
				let wrapType = null;
				let simplePos = globalXmlParser.boolAttr(node, "simplePos");
				globalXmlParser.boolAttr(node, "behindDoc");
				let posX = {
					relative: "page",
					align: "left",
					offset: "0"
				};
				let posY = {
					relative: "page",
					align: "top",
					offset: "0"
				};
				for (var n$9 of globalXmlParser.elements(node)) {
					switch (n$9.localName) {
						case "simplePos":
							if (simplePos) {
								posX.offset = globalXmlParser.lengthAttr(n$9, "x", LengthUsage.Emu);
								posY.offset = globalXmlParser.lengthAttr(n$9, "y", LengthUsage.Emu);
							}
							break;
						case "extent":
							result.cssStyle["width"] = globalXmlParser.lengthAttr(n$9, "cx", LengthUsage.Emu);
							result.cssStyle["height"] = globalXmlParser.lengthAttr(n$9, "cy", LengthUsage.Emu);
							break;
						case "positionH":
						case "positionV":
							if (!simplePos) {
								let pos = n$9.localName == "positionH" ? posX : posY;
								var alignNode = globalXmlParser.element(n$9, "align");
								var offsetNode = globalXmlParser.element(n$9, "posOffset");
								pos.relative = globalXmlParser.attr(n$9, "relativeFrom") ?? pos.relative;
								if (alignNode) pos.align = alignNode.textContent;
								if (offsetNode) pos.offset = convertLength(offsetNode.textContent, LengthUsage.Emu);
							}
							break;
						case "wrapTopAndBottom":
							wrapType = "wrapTopAndBottom";
							break;
						case "wrapNone":
							wrapType = "wrapNone";
							break;
						case "graphic":
							var g$1 = this.parseGraphic(n$9);
							if (g$1) result.children.push(g$1);
							break;
					}
				}
				if (wrapType == "wrapTopAndBottom") {
					result.cssStyle["display"] = "block";
					if (posX.align) {
						result.cssStyle["text-align"] = posX.align;
						result.cssStyle["width"] = "100%";
					}
				} else if (wrapType == "wrapNone") {
					result.cssStyle["display"] = "block";
					result.cssStyle["position"] = "relative";
					result.cssStyle["width"] = "0px";
					result.cssStyle["height"] = "0px";
					if (posX.offset) result.cssStyle["left"] = posX.offset;
					if (posY.offset) result.cssStyle["top"] = posY.offset;
				} else if (isAnchor && (posX.align == "left" || posX.align == "right")) {
					result.cssStyle["float"] = posX.align;
				}
				return result;
			}
			parseGraphic(elem) {
				var graphicData = globalXmlParser.element(elem, "graphicData");
				for (let n$9 of globalXmlParser.elements(graphicData)) {
					switch (n$9.localName) {
						case "pic": return this.parsePicture(n$9);
					}
				}
				return null;
			}
			parsePicture(elem) {
				var result = {
					type: DomType.Image,
					src: "",
					cssStyle: {}
				};
				var blipFill = globalXmlParser.element(elem, "blipFill");
				var blip = globalXmlParser.element(blipFill, "blip");
				var srcRect = globalXmlParser.element(blipFill, "srcRect");
				result.src = globalXmlParser.attr(blip, "embed");
				if (srcRect) {
					result.srcRect = [
						globalXmlParser.intAttr(srcRect, "l", 0) / 1e5,
						globalXmlParser.intAttr(srcRect, "t", 0) / 1e5,
						globalXmlParser.intAttr(srcRect, "r", 0) / 1e5,
						globalXmlParser.intAttr(srcRect, "b", 0) / 1e5
					];
				}
				var spPr = globalXmlParser.element(elem, "spPr");
				var xfrm = globalXmlParser.element(spPr, "xfrm");
				result.cssStyle["position"] = "relative";
				if (xfrm) {
					result.rotation = globalXmlParser.intAttr(xfrm, "rot", 0) / 6e4;
					for (var n$9 of globalXmlParser.elements(xfrm)) {
						switch (n$9.localName) {
							case "ext":
								result.cssStyle["width"] = globalXmlParser.lengthAttr(n$9, "cx", LengthUsage.Emu);
								result.cssStyle["height"] = globalXmlParser.lengthAttr(n$9, "cy", LengthUsage.Emu);
								break;
							case "off":
								result.cssStyle["left"] = globalXmlParser.lengthAttr(n$9, "x", LengthUsage.Emu);
								result.cssStyle["top"] = globalXmlParser.lengthAttr(n$9, "y", LengthUsage.Emu);
								break;
						}
					}
				}
				return result;
			}
			parseTable(node) {
				var result = {
					type: DomType.Table,
					children: []
				};
				for (const c$7 of globalXmlParser.elements(node)) {
					switch (c$7.localName) {
						case "tr":
							result.children.push(this.parseTableRow(c$7));
							break;
						case "tblGrid":
							result.columns = this.parseTableColumns(c$7);
							break;
						case "tblPr":
							this.parseTableProperties(c$7, result);
							break;
					}
				}
				return result;
			}
			parseTableColumns(node) {
				var result = [];
				for (const n$9 of globalXmlParser.elements(node)) {
					switch (n$9.localName) {
						case "gridCol":
							result.push({ width: globalXmlParser.lengthAttr(n$9, "w") });
							break;
					}
				}
				return result;
			}
			parseTableProperties(elem, table) {
				table.cssStyle = {};
				table.cellStyle = {};
				this.parseDefaultProperties(elem, table.cssStyle, table.cellStyle, (c$7) => {
					switch (c$7.localName) {
						case "tblStyle":
							table.styleName = globalXmlParser.attr(c$7, "val");
							break;
						case "tblLook":
							table.className = values.classNameOftblLook(c$7);
							break;
						case "tblpPr":
							this.parseTablePosition(c$7, table);
							break;
						case "tblStyleColBandSize":
							table.colBandSize = globalXmlParser.intAttr(c$7, "val");
							break;
						case "tblStyleRowBandSize":
							table.rowBandSize = globalXmlParser.intAttr(c$7, "val");
							break;
						case "hidden":
							table.cssStyle["display"] = "none";
							break;
						default: return false;
					}
					return true;
				});
				switch (table.cssStyle["text-align"]) {
					case "center":
						delete table.cssStyle["text-align"];
						table.cssStyle["margin-left"] = "auto";
						table.cssStyle["margin-right"] = "auto";
						break;
					case "right":
						delete table.cssStyle["text-align"];
						table.cssStyle["margin-left"] = "auto";
						break;
				}
			}
			parseTablePosition(node, table) {
				var topFromText = globalXmlParser.lengthAttr(node, "topFromText");
				var bottomFromText = globalXmlParser.lengthAttr(node, "bottomFromText");
				var rightFromText = globalXmlParser.lengthAttr(node, "rightFromText");
				var leftFromText = globalXmlParser.lengthAttr(node, "leftFromText");
				table.cssStyle["float"] = "left";
				table.cssStyle["margin-bottom"] = values.addSize(table.cssStyle["margin-bottom"], bottomFromText);
				table.cssStyle["margin-left"] = values.addSize(table.cssStyle["margin-left"], leftFromText);
				table.cssStyle["margin-right"] = values.addSize(table.cssStyle["margin-right"], rightFromText);
				table.cssStyle["margin-top"] = values.addSize(table.cssStyle["margin-top"], topFromText);
			}
			parseTableRow(node) {
				var result = {
					type: DomType.Row,
					children: []
				};
				for (const c$7 of globalXmlParser.elements(node)) {
					switch (c$7.localName) {
						case "tc":
							result.children.push(this.parseTableCell(c$7));
							break;
						case "trPr":
						case "tblPrEx":
							this.parseTableRowProperties(c$7, result);
							break;
					}
				}
				return result;
			}
			parseTableRowProperties(elem, row) {
				row.cssStyle = this.parseDefaultProperties(elem, {}, null, (c$7) => {
					switch (c$7.localName) {
						case "cnfStyle":
							row.className = values.classNameOfCnfStyle(c$7);
							break;
						case "tblHeader":
							row.isHeader = globalXmlParser.boolAttr(c$7, "val");
							break;
						case "gridBefore":
							row.gridBefore = globalXmlParser.intAttr(c$7, "val");
							break;
						case "gridAfter":
							row.gridAfter = globalXmlParser.intAttr(c$7, "val");
							break;
						default: return false;
					}
					return true;
				});
			}
			parseTableCell(node) {
				var result = {
					type: DomType.Cell,
					children: []
				};
				for (const c$7 of globalXmlParser.elements(node)) {
					switch (c$7.localName) {
						case "tbl":
							result.children.push(this.parseTable(c$7));
							break;
						case "p":
							result.children.push(this.parseParagraph(c$7));
							break;
						case "tcPr":
							this.parseTableCellProperties(c$7, result);
							break;
					}
				}
				return result;
			}
			parseTableCellProperties(elem, cell) {
				cell.cssStyle = this.parseDefaultProperties(elem, {}, null, (c$7) => {
					switch (c$7.localName) {
						case "gridSpan":
							cell.span = globalXmlParser.intAttr(c$7, "val", null);
							break;
						case "vMerge":
							cell.verticalMerge = globalXmlParser.attr(c$7, "val") ?? "continue";
							break;
						case "cnfStyle":
							cell.className = values.classNameOfCnfStyle(c$7);
							break;
						default: return false;
					}
					return true;
				});
				this.parseTableCellVerticalText(elem, cell);
			}
			parseTableCellVerticalText(elem, cell) {
				const directionMap = {
					"btLr": {
						writingMode: "vertical-rl",
						transform: "rotate(180deg)"
					},
					"lrTb": {
						writingMode: "vertical-lr",
						transform: "none"
					},
					"tbRl": {
						writingMode: "vertical-rl",
						transform: "none"
					}
				};
				for (const c$7 of globalXmlParser.elements(elem)) {
					if (c$7.localName === "textDirection") {
						const direction = globalXmlParser.attr(c$7, "val");
						const style = directionMap[direction] || { writingMode: "horizontal-tb" };
						cell.cssStyle["writing-mode"] = style.writingMode;
						cell.cssStyle["transform"] = style.transform;
					}
				}
			}
			parseDefaultProperties(elem, style = null, childStyle = null, handler = null) {
				style = style || {};
				for (const c$7 of globalXmlParser.elements(elem)) {
					if (handler?.(c$7)) continue;
					switch (c$7.localName) {
						case "jc":
							style["text-align"] = values.valueOfJc(c$7);
							break;
						case "textAlignment":
							style["vertical-align"] = values.valueOfTextAlignment(c$7);
							break;
						case "color":
							style["color"] = xmlUtil.colorAttr(c$7, "val", null, autos.color);
							break;
						case "sz":
							style["font-size"] = style["min-height"] = globalXmlParser.lengthAttr(c$7, "val", LengthUsage.FontSize);
							break;
						case "shd":
							style["background-color"] = xmlUtil.colorAttr(c$7, "fill", null, autos.shd);
							break;
						case "highlight":
							style["background-color"] = xmlUtil.colorAttr(c$7, "val", null, autos.highlight);
							break;
						case "vertAlign": break;
						case "position":
							style.verticalAlign = globalXmlParser.lengthAttr(c$7, "val", LengthUsage.FontSize);
							break;
						case "tcW": if (this.options.ignoreWidth) break;
						case "tblW":
							style["width"] = values.valueOfSize(c$7, "w");
							break;
						case "trHeight":
							this.parseTrHeight(c$7, style);
							break;
						case "strike":
							style["text-decoration"] = globalXmlParser.boolAttr(c$7, "val", true) ? "line-through" : "none";
							break;
						case "b":
							style["font-weight"] = globalXmlParser.boolAttr(c$7, "val", true) ? "bold" : "normal";
							break;
						case "i":
							style["font-style"] = globalXmlParser.boolAttr(c$7, "val", true) ? "italic" : "normal";
							break;
						case "caps":
							style["text-transform"] = globalXmlParser.boolAttr(c$7, "val", true) ? "uppercase" : "none";
							break;
						case "smallCaps":
							style["font-variant"] = globalXmlParser.boolAttr(c$7, "val", true) ? "small-caps" : "none";
							break;
						case "u":
							this.parseUnderline(c$7, style);
							break;
						case "ind":
						case "tblInd":
							this.parseIndentation(c$7, style);
							break;
						case "rFonts":
							this.parseFont(c$7, style);
							break;
						case "tblBorders":
							this.parseBorderProperties(c$7, childStyle || style);
							break;
						case "tblCellSpacing":
							style["border-spacing"] = values.valueOfMargin(c$7);
							style["border-collapse"] = "separate";
							break;
						case "pBdr":
							this.parseBorderProperties(c$7, style);
							break;
						case "bdr":
							style["border"] = values.valueOfBorder(c$7);
							break;
						case "tcBorders":
							this.parseBorderProperties(c$7, style);
							break;
						case "vanish":
							if (globalXmlParser.boolAttr(c$7, "val", true)) style["display"] = "none";
							break;
						case "kern": break;
						case "noWrap": break;
						case "tblCellMar":
						case "tcMar":
							this.parseMarginProperties(c$7, childStyle || style);
							break;
						case "tblLayout":
							style["table-layout"] = values.valueOfTblLayout(c$7);
							break;
						case "vAlign":
							style["vertical-align"] = values.valueOfTextAlignment(c$7);
							break;
						case "spacing":
							if (elem.localName == "pPr") this.parseSpacing(c$7, style);
							break;
						case "wordWrap":
							if (globalXmlParser.boolAttr(c$7, "val")) style["overflow-wrap"] = "break-word";
							break;
						case "suppressAutoHyphens":
							style["hyphens"] = globalXmlParser.boolAttr(c$7, "val", true) ? "none" : "auto";
							break;
						case "lang":
							style["$lang"] = globalXmlParser.attr(c$7, "val");
							break;
						case "rtl":
						case "bidi":
							if (globalXmlParser.boolAttr(c$7, "val", true)) style["direction"] = "rtl";
							break;
						case "bCs":
						case "iCs":
						case "szCs":
						case "tabs":
						case "outlineLvl":
						case "contextualSpacing":
						case "tblStyleColBandSize":
						case "tblStyleRowBandSize":
						case "webHidden":
						case "pageBreakBefore":
						case "suppressLineNumbers":
						case "keepLines":
						case "keepNext":
						case "widowControl":
						case "bidi":
						case "rtl":
						case "noProof": break;
						default:
							if (this.options.debug) console.warn(`DOCX: Unknown document element: ${elem.localName}.${c$7.localName}`);
							break;
					}
				}
				return style;
			}
			parseUnderline(node, style) {
				var val$1 = globalXmlParser.attr(node, "val");
				if (val$1 == null) return;
				switch (val$1) {
					case "dash":
					case "dashDotDotHeavy":
					case "dashDotHeavy":
					case "dashedHeavy":
					case "dashLong":
					case "dashLongHeavy":
					case "dotDash":
					case "dotDotDash":
						style["text-decoration"] = "underline dashed";
						break;
					case "dotted":
					case "dottedHeavy":
						style["text-decoration"] = "underline dotted";
						break;
					case "double":
						style["text-decoration"] = "underline double";
						break;
					case "single":
					case "thick":
						style["text-decoration"] = "underline";
						break;
					case "wave":
					case "wavyDouble":
					case "wavyHeavy":
						style["text-decoration"] = "underline wavy";
						break;
					case "words":
						style["text-decoration"] = "underline";
						break;
					case "none":
						style["text-decoration"] = "none";
						break;
				}
				var col = xmlUtil.colorAttr(node, "color");
				if (col) style["text-decoration-color"] = col;
			}
			parseFont(node, style) {
				var ascii = globalXmlParser.attr(node, "ascii");
				var asciiTheme = values.themeValue(node, "asciiTheme");
				var eastAsia = globalXmlParser.attr(node, "eastAsia");
				var fonts = [
					ascii,
					asciiTheme,
					eastAsia
				].filter((x$2) => x$2).map((x$2) => encloseFontFamily(x$2));
				if (fonts.length > 0) style["font-family"] = [...new Set(fonts)].join(", ");
			}
			parseIndentation(node, style) {
				var firstLine = globalXmlParser.lengthAttr(node, "firstLine");
				var hanging = globalXmlParser.lengthAttr(node, "hanging");
				var left = globalXmlParser.lengthAttr(node, "left");
				var start = globalXmlParser.lengthAttr(node, "start");
				var right = globalXmlParser.lengthAttr(node, "right");
				var end = globalXmlParser.lengthAttr(node, "end");
				if (firstLine) style["text-indent"] = firstLine;
				if (hanging) style["text-indent"] = `-${hanging}`;
				if (left || start) style["margin-inline-start"] = left || start;
				if (right || end) style["margin-inline-end"] = right || end;
			}
			parseSpacing(node, style) {
				var before = globalXmlParser.lengthAttr(node, "before");
				var after = globalXmlParser.lengthAttr(node, "after");
				var line = globalXmlParser.intAttr(node, "line", null);
				var lineRule = globalXmlParser.attr(node, "lineRule");
				if (before) style["margin-top"] = before;
				if (after) style["margin-bottom"] = after;
				if (line !== null) {
					switch (lineRule) {
						case "auto":
							style["line-height"] = `${(line / 240).toFixed(2)}`;
							break;
						case "atLeast":
							style["line-height"] = `calc(100% + ${line / 20}pt)`;
							break;
						default:
							style["line-height"] = style["min-height"] = `${line / 20}pt`;
							break;
					}
				}
			}
			parseMarginProperties(node, output) {
				for (const c$7 of globalXmlParser.elements(node)) {
					switch (c$7.localName) {
						case "left":
							output["padding-left"] = values.valueOfMargin(c$7);
							break;
						case "right":
							output["padding-right"] = values.valueOfMargin(c$7);
							break;
						case "top":
							output["padding-top"] = values.valueOfMargin(c$7);
							break;
						case "bottom":
							output["padding-bottom"] = values.valueOfMargin(c$7);
							break;
					}
				}
			}
			parseTrHeight(node, output) {
				switch (globalXmlParser.attr(node, "hRule")) {
					case "exact":
						output["height"] = globalXmlParser.lengthAttr(node, "val");
						break;
					case "atLeast":
					default:
						output["height"] = globalXmlParser.lengthAttr(node, "val");
						break;
				}
			}
			parseBorderProperties(node, output) {
				for (const c$7 of globalXmlParser.elements(node)) {
					switch (c$7.localName) {
						case "start":
						case "left":
							output["border-left"] = values.valueOfBorder(c$7);
							break;
						case "end":
						case "right":
							output["border-right"] = values.valueOfBorder(c$7);
							break;
						case "top":
							output["border-top"] = values.valueOfBorder(c$7);
							break;
						case "bottom":
							output["border-bottom"] = values.valueOfBorder(c$7);
							break;
					}
				}
			}
		}
		const knownColors = [
			"black",
			"blue",
			"cyan",
			"darkBlue",
			"darkCyan",
			"darkGray",
			"darkGreen",
			"darkMagenta",
			"darkRed",
			"darkYellow",
			"green",
			"lightGray",
			"magenta",
			"none",
			"red",
			"white",
			"yellow"
		];
		class xmlUtil {
			static colorAttr(node, attrName, defValue = null, autoColor = "black") {
				var v$3 = globalXmlParser.attr(node, attrName);
				if (v$3) {
					if (v$3 == "auto") {
						return autoColor;
					} else if (knownColors.includes(v$3)) {
						return v$3;
					}
					return `#${v$3}`;
				}
				var themeColor = globalXmlParser.attr(node, "themeColor");
				return themeColor ? `var(--docx-${themeColor}-color)` : defValue;
			}
		}
		class values {
			static themeValue(c$7, attr) {
				var val$1 = globalXmlParser.attr(c$7, attr);
				return val$1 ? `var(--docx-${val$1}-font)` : null;
			}
			static valueOfSize(c$7, attr) {
				var type = LengthUsage.Dxa;
				switch (globalXmlParser.attr(c$7, "type")) {
					case "dxa": break;
					case "pct":
						type = LengthUsage.Percent;
						break;
					case "auto": return "auto";
				}
				return globalXmlParser.lengthAttr(c$7, attr, type);
			}
			static valueOfMargin(c$7) {
				return globalXmlParser.lengthAttr(c$7, "w");
			}
			static valueOfBorder(c$7) {
				var type = values.parseBorderType(globalXmlParser.attr(c$7, "val"));
				if (type == "none") return "none";
				var color = xmlUtil.colorAttr(c$7, "color");
				var size = globalXmlParser.lengthAttr(c$7, "sz", LengthUsage.Border);
				return `${size} ${type} ${color == "auto" ? autos.borderColor : color}`;
			}
			static parseBorderType(type) {
				switch (type) {
					case "single": return "solid";
					case "dashDotStroked": return "solid";
					case "dashed": return "dashed";
					case "dashSmallGap": return "dashed";
					case "dotDash": return "dotted";
					case "dotDotDash": return "dotted";
					case "dotted": return "dotted";
					case "double": return "double";
					case "doubleWave": return "double";
					case "inset": return "inset";
					case "nil": return "none";
					case "none": return "none";
					case "outset": return "outset";
					case "thick": return "solid";
					case "thickThinLargeGap": return "solid";
					case "thickThinMediumGap": return "solid";
					case "thickThinSmallGap": return "solid";
					case "thinThickLargeGap": return "solid";
					case "thinThickMediumGap": return "solid";
					case "thinThickSmallGap": return "solid";
					case "thinThickThinLargeGap": return "solid";
					case "thinThickThinMediumGap": return "solid";
					case "thinThickThinSmallGap": return "solid";
					case "threeDEmboss": return "solid";
					case "threeDEngrave": return "solid";
					case "triple": return "double";
					case "wave": return "solid";
				}
				return "solid";
			}
			static valueOfTblLayout(c$7) {
				var type = globalXmlParser.attr(c$7, "val");
				return type == "fixed" ? "fixed" : "auto";
			}
			static classNameOfCnfStyle(c$7) {
				const val$1 = globalXmlParser.attr(c$7, "val");
				const classes = [
					"first-row",
					"last-row",
					"first-col",
					"last-col",
					"odd-col",
					"even-col",
					"odd-row",
					"even-row",
					"ne-cell",
					"nw-cell",
					"se-cell",
					"sw-cell"
				];
				return classes.filter((_$2, i$7) => val$1[i$7] == "1").join(" ");
			}
			static valueOfJc(c$7) {
				var type = globalXmlParser.attr(c$7, "val");
				switch (type) {
					case "start":
					case "left": return "left";
					case "center": return "center";
					case "end":
					case "right": return "right";
					case "both": return "justify";
				}
				return type;
			}
			static valueOfVertAlign(c$7, asTagName = false) {
				var type = globalXmlParser.attr(c$7, "val");
				switch (type) {
					case "subscript": return "sub";
					case "superscript": return asTagName ? "sup" : "super";
				}
				return asTagName ? null : type;
			}
			static valueOfTextAlignment(c$7) {
				var type = globalXmlParser.attr(c$7, "val");
				switch (type) {
					case "auto":
					case "baseline": return "baseline";
					case "top": return "top";
					case "center": return "middle";
					case "bottom": return "bottom";
				}
				return type;
			}
			static addSize(a$2, b$3) {
				if (a$2 == null) return b$3;
				if (b$3 == null) return a$2;
				return `calc(${a$2} + ${b$3})`;
			}
			static classNameOftblLook(c$7) {
				const val$1 = globalXmlParser.hexAttr(c$7, "val", 0);
				let className = "";
				if (globalXmlParser.boolAttr(c$7, "firstRow") || val$1 & 32) className += " first-row";
				if (globalXmlParser.boolAttr(c$7, "lastRow") || val$1 & 64) className += " last-row";
				if (globalXmlParser.boolAttr(c$7, "firstColumn") || val$1 & 128) className += " first-col";
				if (globalXmlParser.boolAttr(c$7, "lastColumn") || val$1 & 256) className += " last-col";
				if (globalXmlParser.boolAttr(c$7, "noHBand") || val$1 & 512) className += " no-hband";
				if (globalXmlParser.boolAttr(c$7, "noVBand") || val$1 & 1024) className += " no-vband";
				return className.trim();
			}
		}
		const defaultTab = {
			pos: 0,
			leader: "none",
			style: "left"
		};
		const maxTabs = 50;
		function computePixelToPoint(container = document.body) {
			const temp = document.createElement("div");
			temp.style.width = "100pt";
			container.appendChild(temp);
			const result = 100 / temp.offsetWidth;
			container.removeChild(temp);
			return result;
		}
		function updateTabStop(elem, tabs, defaultTabSize, pixelToPoint = 72 / 96) {
			const p$3 = elem.closest("p");
			const ebb = elem.getBoundingClientRect();
			const pbb = p$3.getBoundingClientRect();
			const pcs = getComputedStyle(p$3);
			const tabStops = tabs?.length > 0 ? tabs.map((t$6) => ({
				pos: lengthToPoint(t$6.position),
				leader: t$6.leader,
				style: t$6.style
			})).sort((a$2, b$3) => a$2.pos - b$3.pos) : [defaultTab];
			const lastTab = tabStops[tabStops.length - 1];
			const pWidthPt = pbb.width * pixelToPoint;
			const size = lengthToPoint(defaultTabSize);
			let pos = lastTab.pos + size;
			if (pos < pWidthPt) {
				for (; pos < pWidthPt && tabStops.length < maxTabs; pos += size) {
					tabStops.push({
						...defaultTab,
						pos
					});
				}
			}
			const marginLeft = parseFloat(pcs.marginLeft);
			const pOffset = pbb.left + marginLeft;
			const left = (ebb.left - pOffset) * pixelToPoint;
			const tab = tabStops.find((t$6) => t$6.style != "clear" && t$6.pos > left);
			if (tab == null) return;
			let width = 1;
			if (tab.style == "right" || tab.style == "center") {
				const tabStops$1 = Array.from(p$3.querySelectorAll(`.${elem.className}`));
				const nextIdx = tabStops$1.indexOf(elem) + 1;
				const range = document.createRange();
				range.setStart(elem, 1);
				if (nextIdx < tabStops$1.length) {
					range.setEndBefore(tabStops$1[nextIdx]);
				} else {
					range.setEndAfter(p$3);
				}
				const mul = tab.style == "center" ? .5 : 1;
				const nextBB = range.getBoundingClientRect();
				const offset = nextBB.left + mul * nextBB.width - (pbb.left - marginLeft);
				width = tab.pos - offset * pixelToPoint;
			} else {
				width = tab.pos - left;
			}
			elem.innerHTML = "&nbsp;";
			elem.style.textDecoration = "inherit";
			elem.style.wordSpacing = `${width.toFixed(0)}pt`;
			switch (tab.leader) {
				case "dot":
				case "middleDot":
					elem.style.textDecoration = "underline";
					elem.style.textDecorationStyle = "dotted";
					break;
				case "hyphen":
				case "heavy":
				case "underscore":
					elem.style.textDecoration = "underline";
					break;
			}
		}
		function lengthToPoint(length) {
			return parseFloat(length);
		}
		const ns = {
			svg: "http://www.w3.org/2000/svg",
			mathML: "http://www.w3.org/1998/Math/MathML"
		};
		class HtmlRenderer {
			constructor(htmlDocument) {
				this.htmlDocument = htmlDocument;
				this.className = "docx";
				this.styleMap = {};
				this.currentPart = null;
				this.tableVerticalMerges = [];
				this.currentVerticalMerge = null;
				this.tableCellPositions = [];
				this.currentCellPosition = null;
				this.footnoteMap = {};
				this.endnoteMap = {};
				this.currentEndnoteIds = [];
				this.usedHederFooterParts = [];
				this.currentTabs = [];
				this.commentMap = {};
				this.tasks = [];
				this.postRenderTasks = [];
			}
			async render(document$1, bodyContainer, styleContainer = null, options) {
				this.document = document$1;
				this.options = options;
				this.className = options.className;
				this.rootSelector = options.inWrapper ? `.${this.className}-wrapper` : ":root";
				this.styleMap = null;
				this.tasks = [];
				if (this.options.renderComments && globalThis.Highlight) {
					this.commentHighlight = new Highlight();
				}
				styleContainer = styleContainer || bodyContainer;
				removeAllElements(styleContainer);
				removeAllElements(bodyContainer);
				styleContainer.appendChild(this.createComment("docxjs library predefined styles"));
				styleContainer.appendChild(this.renderDefaultStyle());
				if (document$1.themePart) {
					styleContainer.appendChild(this.createComment("docxjs document theme values"));
					this.renderTheme(document$1.themePart, styleContainer);
				}
				if (document$1.stylesPart != null) {
					this.styleMap = this.processStyles(document$1.stylesPart.styles);
					styleContainer.appendChild(this.createComment("docxjs document styles"));
					styleContainer.appendChild(this.renderStyles(document$1.stylesPart.styles));
				}
				if (document$1.numberingPart) {
					this.prodessNumberings(document$1.numberingPart.domNumberings);
					styleContainer.appendChild(this.createComment("docxjs document numbering styles"));
					styleContainer.appendChild(this.renderNumbering(document$1.numberingPart.domNumberings, styleContainer));
				}
				if (document$1.footnotesPart) {
					this.footnoteMap = keyBy(document$1.footnotesPart.notes, (x$2) => x$2.id);
				}
				if (document$1.endnotesPart) {
					this.endnoteMap = keyBy(document$1.endnotesPart.notes, (x$2) => x$2.id);
				}
				if (document$1.settingsPart) {
					this.defaultTabSize = document$1.settingsPart.settings?.defaultTabStop;
				}
				if (!options.ignoreFonts && document$1.fontTablePart) this.renderFontTable(document$1.fontTablePart, styleContainer);
				var sectionElements = this.renderSections(document$1.documentPart.body);
				if (this.options.inWrapper) {
					bodyContainer.appendChild(this.renderWrapper(sectionElements));
				} else {
					appendChildren(bodyContainer, sectionElements);
				}
				if (this.commentHighlight && options.renderComments) {
					CSS.highlights.set(`${this.className}-comments`, this.commentHighlight);
				}
				this.postRenderTasks.forEach((t$6) => t$6());
				await Promise.allSettled(this.tasks);
				this.refreshTabStops();
			}
			renderTheme(themePart, styleContainer) {
				const variables = {};
				const fontScheme = themePart.theme?.fontScheme;
				if (fontScheme) {
					if (fontScheme.majorFont) {
						variables["--docx-majorHAnsi-font"] = fontScheme.majorFont.latinTypeface;
					}
					if (fontScheme.minorFont) {
						variables["--docx-minorHAnsi-font"] = fontScheme.minorFont.latinTypeface;
					}
				}
				const colorScheme = themePart.theme?.colorScheme;
				if (colorScheme) {
					for (let [k$2, v$3] of Object.entries(colorScheme.colors)) {
						variables[`--docx-${k$2}-color`] = `#${v$3}`;
					}
				}
				const cssText = this.styleToString(`.${this.className}`, variables);
				styleContainer.appendChild(this.createStyleElement(cssText));
			}
			renderFontTable(fontsPart, styleContainer) {
				for (let f$4 of fontsPart.fonts) {
					for (let ref of f$4.embedFontRefs) {
						this.tasks.push(this.document.loadFont(ref.id, ref.key).then((fontData) => {
							const cssValues = {
								"font-family": encloseFontFamily(f$4.name),
								"src": `url(${fontData})`
							};
							if (ref.type == "bold" || ref.type == "boldItalic") {
								cssValues["font-weight"] = "bold";
							}
							if (ref.type == "italic" || ref.type == "boldItalic") {
								cssValues["font-style"] = "italic";
							}
							const cssText = this.styleToString("@font-face", cssValues);
							styleContainer.appendChild(this.createComment(`docxjs ${f$4.name} font`));
							styleContainer.appendChild(this.createStyleElement(cssText));
						}));
					}
				}
			}
			processStyleName(className) {
				return className ? `${this.className}_${escapeClassName(className)}` : this.className;
			}
			processStyles(styles$1) {
				const stylesMap = keyBy(styles$1.filter((x$2) => x$2.id != null), (x$2) => x$2.id);
				for (const style of styles$1.filter((x$2) => x$2.basedOn)) {
					var baseStyle = stylesMap[style.basedOn];
					if (baseStyle) {
						style.paragraphProps = mergeDeep(style.paragraphProps, baseStyle.paragraphProps);
						style.runProps = mergeDeep(style.runProps, baseStyle.runProps);
						for (const baseValues of baseStyle.styles) {
							const styleValues = style.styles.find((x$2) => x$2.target == baseValues.target);
							if (styleValues) {
								this.copyStyleProperties(baseValues.values, styleValues.values);
							} else {
								style.styles.push({
									...baseValues,
									values: { ...baseValues.values }
								});
							}
						}
					} else if (this.options.debug) console.warn(`Can't find base style ${style.basedOn}`);
				}
				for (let style of styles$1) {
					style.cssName = this.processStyleName(style.id);
				}
				return stylesMap;
			}
			prodessNumberings(numberings) {
				for (let num of numberings.filter((n$9) => n$9.pStyleName)) {
					const style = this.findStyle(num.pStyleName);
					if (style?.paragraphProps?.numbering) {
						style.paragraphProps.numbering.level = num.level;
					}
				}
			}
			processElement(element) {
				if (element.children) {
					for (var e$10 of element.children) {
						e$10.parent = element;
						if (e$10.type == DomType.Table) {
							this.processTable(e$10);
						} else {
							this.processElement(e$10);
						}
					}
				}
			}
			processTable(table) {
				for (var r$10 of table.children) {
					for (var c$7 of r$10.children) {
						c$7.cssStyle = this.copyStyleProperties(table.cellStyle, c$7.cssStyle, [
							"border-left",
							"border-right",
							"border-top",
							"border-bottom",
							"padding-left",
							"padding-right",
							"padding-top",
							"padding-bottom"
						]);
						this.processElement(c$7);
					}
				}
			}
			copyStyleProperties(input, output, attrs = null) {
				if (!input) return output;
				if (output == null) output = {};
				if (attrs == null) attrs = Object.getOwnPropertyNames(input);
				for (var key of attrs) {
					if (input.hasOwnProperty(key) && !output.hasOwnProperty(key)) output[key] = input[key];
				}
				return output;
			}
			createPageElement(className, props) {
				var elem = this.createElement("section", { className });
				if (props) {
					if (props.pageMargins) {
						elem.style.paddingLeft = props.pageMargins.left;
						elem.style.paddingRight = props.pageMargins.right;
						elem.style.paddingTop = props.pageMargins.top;
						elem.style.paddingBottom = props.pageMargins.bottom;
					}
					if (props.pageSize) {
						if (!this.options.ignoreWidth) elem.style.width = props.pageSize.width;
						if (!this.options.ignoreHeight) elem.style.minHeight = props.pageSize.height;
					}
				}
				return elem;
			}
			createSectionContent(props) {
				var elem = this.createElement("article");
				if (props.columns && props.columns.numberOfColumns) {
					elem.style.columnCount = `${props.columns.numberOfColumns}`;
					elem.style.columnGap = props.columns.space;
					if (props.columns.separator) {
						elem.style.columnRule = "1px solid black";
					}
				}
				return elem;
			}
			renderSections(document$1) {
				const result = [];
				this.processElement(document$1);
				const sections = this.splitBySection(document$1.children, document$1.props);
				const pages = this.groupByPageBreaks(sections);
				let prevProps = null;
				for (let i$7 = 0, l$3 = pages.length; i$7 < l$3; i$7++) {
					this.currentFootnoteIds = [];
					const section = pages[i$7][0];
					let props = section.sectProps;
					const pageElement = this.createPageElement(this.className, props);
					this.renderStyleValues(document$1.cssStyle, pageElement);
					this.options.renderHeaders && this.renderHeaderFooter(props.headerRefs, props, result.length, prevProps != props, pageElement);
					for (const sect of pages[i$7]) {
						var contentElement = this.createSectionContent(sect.sectProps);
						this.renderElements(sect.elements, contentElement);
						pageElement.appendChild(contentElement);
						props = sect.sectProps;
					}
					if (this.options.renderFootnotes) {
						this.renderNotes(this.currentFootnoteIds, this.footnoteMap, pageElement);
					}
					if (this.options.renderEndnotes && i$7 == l$3 - 1) {
						this.renderNotes(this.currentEndnoteIds, this.endnoteMap, pageElement);
					}
					this.options.renderFooters && this.renderHeaderFooter(props.footerRefs, props, result.length, prevProps != props, pageElement);
					result.push(pageElement);
					prevProps = props;
				}
				return result;
			}
			renderHeaderFooter(refs, props, page, firstOfSection, into) {
				if (!refs) return;
				var ref = (props.titlePage && firstOfSection ? refs.find((x$2) => x$2.type == "first") : null) ?? (page % 2 == 1 ? refs.find((x$2) => x$2.type == "even") : null) ?? refs.find((x$2) => x$2.type == "default");
				var part = ref && this.document.findPartByRelId(ref.id, this.document.documentPart);
				if (part) {
					this.currentPart = part;
					if (!this.usedHederFooterParts.includes(part.path)) {
						this.processElement(part.rootElement);
						this.usedHederFooterParts.push(part.path);
					}
					const [el] = this.renderElements([part.rootElement], into);
					if (props?.pageMargins) {
						if (part.rootElement.type === DomType.Header) {
							el.style.marginTop = `calc(${props.pageMargins.header} - ${props.pageMargins.top})`;
							el.style.minHeight = `calc(${props.pageMargins.top} - ${props.pageMargins.header})`;
						} else if (part.rootElement.type === DomType.Footer) {
							el.style.marginBottom = `calc(${props.pageMargins.footer} - ${props.pageMargins.bottom})`;
							el.style.minHeight = `calc(${props.pageMargins.bottom} - ${props.pageMargins.footer})`;
						}
					}
					this.currentPart = null;
				}
			}
			isPageBreakElement(elem) {
				if (elem.type != DomType.Break) return false;
				if (elem.break == "lastRenderedPageBreak") return !this.options.ignoreLastRenderedPageBreak;
				return elem.break == "page";
			}
			isPageBreakSection(prev, next) {
				if (!prev) return false;
				if (!next) return false;
				return prev.pageSize?.orientation != next.pageSize?.orientation || prev.pageSize?.width != next.pageSize?.width || prev.pageSize?.height != next.pageSize?.height;
			}
			splitBySection(elements, defaultProps) {
				var current = {
					sectProps: null,
					elements: [],
					pageBreak: false
				};
				var result = [current];
				for (let elem of elements) {
					if (elem.type == DomType.Paragraph) {
						const s$5 = this.findStyle(elem.styleName);
						if (s$5?.paragraphProps?.pageBreakBefore) {
							current.sectProps = sectProps;
							current.pageBreak = true;
							current = {
								sectProps: null,
								elements: [],
								pageBreak: false
							};
							result.push(current);
						}
					}
					current.elements.push(elem);
					if (elem.type == DomType.Paragraph) {
						const p$3 = elem;
						var sectProps = p$3.sectionProps;
						var pBreakIndex = -1;
						var rBreakIndex = -1;
						if (this.options.breakPages && p$3.children) {
							pBreakIndex = p$3.children.findIndex((r$10) => {
								rBreakIndex = r$10.children?.findIndex(this.isPageBreakElement.bind(this)) ?? -1;
								return rBreakIndex != -1;
							});
						}
						if (sectProps || pBreakIndex != -1) {
							current.sectProps = sectProps;
							current.pageBreak = pBreakIndex != -1;
							current = {
								sectProps: null,
								elements: [],
								pageBreak: false
							};
							result.push(current);
						}
						if (pBreakIndex != -1) {
							let breakRun = p$3.children[pBreakIndex];
							let splitRun = rBreakIndex < breakRun.children.length - 1;
							if (pBreakIndex < p$3.children.length - 1 || splitRun) {
								var children = elem.children;
								var newParagraph = {
									...elem,
									children: children.slice(pBreakIndex)
								};
								elem.children = children.slice(0, pBreakIndex);
								current.elements.push(newParagraph);
								if (splitRun) {
									let runChildren = breakRun.children;
									let newRun = {
										...breakRun,
										children: runChildren.slice(0, rBreakIndex)
									};
									elem.children.push(newRun);
									breakRun.children = runChildren.slice(rBreakIndex);
								}
							}
						}
					}
				}
				let currentSectProps = null;
				for (let i$7 = result.length - 1; i$7 >= 0; i$7--) {
					if (result[i$7].sectProps == null) {
						result[i$7].sectProps = currentSectProps ?? defaultProps;
					} else {
						currentSectProps = result[i$7].sectProps;
					}
				}
				return result;
			}
			groupByPageBreaks(sections) {
				let current = [];
				let prev;
				const result = [current];
				for (let s$5 of sections) {
					current.push(s$5);
					if (this.options.ignoreLastRenderedPageBreak || s$5.pageBreak || this.isPageBreakSection(prev, s$5.sectProps)) result.push(current = []);
					prev = s$5.sectProps;
				}
				return result.filter((x$2) => x$2.length > 0);
			}
			renderWrapper(children) {
				return this.createElement("div", { className: `${this.className}-wrapper` }, children);
			}
			renderDefaultStyle() {
				var c$7 = this.className;
				var wrapperStyle = `
.${c$7}-wrapper { background: gray; padding: 30px; padding-bottom: 0px; display: flex; flex-flow: column; align-items: center; } 
.${c$7}-wrapper>section.${c$7} { background: white; box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); margin-bottom: 30px; }`;
				if (this.options.hideWrapperOnPrint) {
					wrapperStyle = `@media not print { ${wrapperStyle} }`;
				}
				var styleText = `${wrapperStyle}
.${c$7} { color: black; hyphens: auto; text-underline-position: from-font; }
section.${c$7} { box-sizing: border-box; display: flex; flex-flow: column nowrap; position: relative; overflow: hidden; }
section.${c$7}>article { margin-bottom: auto; z-index: 1; }
section.${c$7}>footer { z-index: 1; }
.${c$7} table { border-collapse: collapse; }
.${c$7} table td, .${c$7} table th { vertical-align: top; }
.${c$7} p { margin: 0pt; min-height: 1em; }
.${c$7} span { white-space: pre-wrap; overflow-wrap: break-word; }
.${c$7} a { color: inherit; text-decoration: inherit; }
.${c$7} svg { fill: transparent; }
`;
				if (this.options.renderComments) {
					styleText += `
.${c$7}-comment-ref { cursor: default; }
.${c$7}-comment-popover { display: none; z-index: 1000; padding: 0.5rem; background: white; position: absolute; box-shadow: 0 0 0.25rem rgba(0, 0, 0, 0.25); width: 30ch; }
.${c$7}-comment-ref:hover~.${c$7}-comment-popover { display: block; }
.${c$7}-comment-author,.${c$7}-comment-date { font-size: 0.875rem; color: #888; }
`;
				}
				return this.createStyleElement(styleText);
			}
			renderNumbering(numberings, styleContainer) {
				var styleText = "";
				var resetCounters = [];
				for (var num of numberings) {
					var selector = `p.${this.numberingClass(num.id, num.level)}`;
					var listStyleType = "none";
					if (num.bullet) {
						let valiable = `--${this.className}-${num.bullet.src}`.toLowerCase();
						styleText += this.styleToString(`${selector}:before`, {
							"content": "' '",
							"display": "inline-block",
							"background": `var(${valiable})`
						}, num.bullet.style);
						this.tasks.push(this.document.loadNumberingImage(num.bullet.src).then((data) => {
							var text$2 = `${this.rootSelector} { ${valiable}: url(${data}) }`;
							styleContainer.appendChild(this.createStyleElement(text$2));
						}));
					} else if (num.levelText) {
						let counter = this.numberingCounter(num.id, num.level);
						const counterReset = counter + " " + (num.start - 1);
						if (num.level > 0) {
							styleText += this.styleToString(`p.${this.numberingClass(num.id, num.level - 1)}`, { "counter-set": counterReset });
						}
						resetCounters.push(counterReset);
						styleText += this.styleToString(`${selector}:before`, {
							"content": this.levelTextToContent(num.levelText, num.suff, num.id, this.numFormatToCssValue(num.format)),
							"counter-increment": counter,
							...num.rStyle
						});
					} else {
						listStyleType = this.numFormatToCssValue(num.format);
					}
					styleText += this.styleToString(selector, {
						"display": "list-item",
						"list-style-position": "inside",
						"list-style-type": listStyleType,
						...num.pStyle
					});
				}
				if (resetCounters.length > 0) {
					styleText += this.styleToString(this.rootSelector, { "counter-reset": resetCounters.join(" ") });
				}
				return this.createStyleElement(styleText);
			}
			renderStyles(styles$1) {
				var styleText = "";
				const stylesMap = this.styleMap;
				const defautStyles = keyBy(styles$1.filter((s$5) => s$5.isDefault), (s$5) => s$5.target);
				for (const style of styles$1) {
					var subStyles = style.styles;
					if (style.linked) {
						var linkedStyle = style.linked && stylesMap[style.linked];
						if (linkedStyle) subStyles = subStyles.concat(linkedStyle.styles);
						else if (this.options.debug) console.warn(`Can't find linked style ${style.linked}`);
					}
					for (const subStyle of subStyles) {
						var selector = `${style.target ?? ""}.${style.cssName}`;
						if (style.target != subStyle.target) selector += ` ${subStyle.target}`;
						if (defautStyles[style.target] == style) selector = `.${this.className} ${style.target}, ` + selector;
						styleText += this.styleToString(selector, subStyle.values);
					}
				}
				return this.createStyleElement(styleText);
			}
			renderNotes(noteIds, notesMap, into) {
				var notes = noteIds.map((id) => notesMap[id]).filter((x$2) => x$2);
				if (notes.length > 0) {
					var result = this.createElement("ol", null, this.renderElements(notes));
					into.appendChild(result);
				}
			}
			renderElement(elem) {
				switch (elem.type) {
					case DomType.Paragraph: return this.renderParagraph(elem);
					case DomType.BookmarkStart: return this.renderBookmarkStart(elem);
					case DomType.BookmarkEnd: return null;
					case DomType.Run: return this.renderRun(elem);
					case DomType.Table: return this.renderTable(elem);
					case DomType.Row: return this.renderTableRow(elem);
					case DomType.Cell: return this.renderTableCell(elem);
					case DomType.Hyperlink: return this.renderHyperlink(elem);
					case DomType.SmartTag: return this.renderSmartTag(elem);
					case DomType.Drawing: return this.renderDrawing(elem);
					case DomType.Image: return this.renderImage(elem);
					case DomType.Text: return this.renderText(elem);
					case DomType.Text: return this.renderText(elem);
					case DomType.DeletedText: return this.renderDeletedText(elem);
					case DomType.Tab: return this.renderTab(elem);
					case DomType.Symbol: return this.renderSymbol(elem);
					case DomType.Break: return this.renderBreak(elem);
					case DomType.Footer: return this.renderContainer(elem, "footer");
					case DomType.Header: return this.renderContainer(elem, "header");
					case DomType.Footnote:
					case DomType.Endnote: return this.renderContainer(elem, "li");
					case DomType.FootnoteReference: return this.renderFootnoteReference(elem);
					case DomType.EndnoteReference: return this.renderEndnoteReference(elem);
					case DomType.NoBreakHyphen: return this.createElement("wbr");
					case DomType.VmlPicture: return this.renderVmlPicture(elem);
					case DomType.VmlElement: return this.renderVmlElement(elem);
					case DomType.MmlMath: return this.renderContainerNS(elem, ns.mathML, "math", { xmlns: ns.mathML });
					case DomType.MmlMathParagraph: return this.renderContainer(elem, "span");
					case DomType.MmlFraction: return this.renderContainerNS(elem, ns.mathML, "mfrac");
					case DomType.MmlBase: return this.renderContainerNS(elem, ns.mathML, elem.parent.type == DomType.MmlMatrixRow ? "mtd" : "mrow");
					case DomType.MmlNumerator:
					case DomType.MmlDenominator:
					case DomType.MmlFunction:
					case DomType.MmlLimit:
					case DomType.MmlBox: return this.renderContainerNS(elem, ns.mathML, "mrow");
					case DomType.MmlGroupChar: return this.renderMmlGroupChar(elem);
					case DomType.MmlLimitLower: return this.renderContainerNS(elem, ns.mathML, "munder");
					case DomType.MmlMatrix: return this.renderContainerNS(elem, ns.mathML, "mtable");
					case DomType.MmlMatrixRow: return this.renderContainerNS(elem, ns.mathML, "mtr");
					case DomType.MmlRadical: return this.renderMmlRadical(elem);
					case DomType.MmlSuperscript: return this.renderContainerNS(elem, ns.mathML, "msup");
					case DomType.MmlSubscript: return this.renderContainerNS(elem, ns.mathML, "msub");
					case DomType.MmlDegree:
					case DomType.MmlSuperArgument:
					case DomType.MmlSubArgument: return this.renderContainerNS(elem, ns.mathML, "mn");
					case DomType.MmlFunctionName: return this.renderContainerNS(elem, ns.mathML, "ms");
					case DomType.MmlDelimiter: return this.renderMmlDelimiter(elem);
					case DomType.MmlRun: return this.renderMmlRun(elem);
					case DomType.MmlNary: return this.renderMmlNary(elem);
					case DomType.MmlPreSubSuper: return this.renderMmlPreSubSuper(elem);
					case DomType.MmlBar: return this.renderMmlBar(elem);
					case DomType.MmlEquationArray: return this.renderMllList(elem);
					case DomType.Inserted: return this.renderInserted(elem);
					case DomType.Deleted: return this.renderDeleted(elem);
					case DomType.CommentRangeStart: return this.renderCommentRangeStart(elem);
					case DomType.CommentRangeEnd: return this.renderCommentRangeEnd(elem);
					case DomType.CommentReference: return this.renderCommentReference(elem);
					case DomType.AltChunk: return this.renderAltChunk(elem);
				}
				return null;
			}
			renderElements(elems, into) {
				if (elems == null) return null;
				var result = elems.flatMap((e$10) => this.renderElement(e$10)).filter((e$10) => e$10 != null);
				if (into) appendChildren(into, result);
				return result;
			}
			renderContainer(elem, tagName, props) {
				return this.createElement(tagName, props, this.renderElements(elem.children));
			}
			renderContainerNS(elem, ns$2, tagName, props) {
				return this.createElementNS(ns$2, tagName, props, this.renderElements(elem.children));
			}
			renderParagraph(elem) {
				var result = this.renderContainer(elem, "p");
				const style = this.findStyle(elem.styleName);
				elem.tabs ?? (elem.tabs = style?.paragraphProps?.tabs);
				this.renderClass(elem, result);
				this.renderStyleValues(elem.cssStyle, result);
				this.renderCommonProperties(result.style, elem);
				const numbering = elem.numbering ?? style?.paragraphProps?.numbering;
				if (numbering) {
					result.classList.add(this.numberingClass(numbering.id, numbering.level));
				}
				return result;
			}
			renderRunProperties(style, props) {
				this.renderCommonProperties(style, props);
			}
			renderCommonProperties(style, props) {
				if (props == null) return;
				if (props.color) {
					style["color"] = props.color;
				}
				if (props.fontSize) {
					style["font-size"] = props.fontSize;
				}
			}
			renderHyperlink(elem) {
				var result = this.renderContainer(elem, "a");
				this.renderStyleValues(elem.cssStyle, result);
				let href = "";
				if (elem.id) {
					const rel$1 = this.document.documentPart.rels.find((it) => it.id == elem.id && it.targetMode === "External");
					href = rel$1?.target ?? href;
				}
				if (elem.anchor) {
					href += `#${elem.anchor}`;
				}
				result.href = href;
				return result;
			}
			renderSmartTag(elem) {
				return this.renderContainer(elem, "span");
			}
			renderCommentRangeStart(commentStart) {
				if (!this.options.renderComments) return null;
				const rng = new Range();
				this.commentHighlight?.add(rng);
				const result = this.createComment(`start of comment #${commentStart.id}`);
				this.later(() => rng.setStart(result, 0));
				this.commentMap[commentStart.id] = rng;
				return result;
			}
			renderCommentRangeEnd(commentEnd) {
				if (!this.options.renderComments) return null;
				const rng = this.commentMap[commentEnd.id];
				const result = this.createComment(`end of comment #${commentEnd.id}`);
				this.later(() => rng?.setEnd(result, 0));
				return result;
			}
			renderCommentReference(commentRef) {
				if (!this.options.renderComments) return null;
				var comment = this.document.commentsPart?.commentMap[commentRef.id];
				if (!comment) return null;
				const frg = new DocumentFragment();
				const commentRefEl = this.createElement("span", { className: `${this.className}-comment-ref` }, ["💬"]);
				const commentsContainerEl = this.createElement("div", { className: `${this.className}-comment-popover` });
				this.renderCommentContent(comment, commentsContainerEl);
				frg.appendChild(this.createComment(`comment #${comment.id} by ${comment.author} on ${comment.date}`));
				frg.appendChild(commentRefEl);
				frg.appendChild(commentsContainerEl);
				return frg;
			}
			renderAltChunk(elem) {
				if (!this.options.renderAltChunks) return null;
				var result = this.createElement("iframe");
				this.tasks.push(this.document.loadAltChunk(elem.id, this.currentPart).then((x$2) => {
					result.srcdoc = x$2;
				}));
				return result;
			}
			renderCommentContent(comment, container) {
				container.appendChild(this.createElement("div", { className: `${this.className}-comment-author` }, [comment.author]));
				container.appendChild(this.createElement("div", { className: `${this.className}-comment-date` }, [new Date(comment.date).toLocaleString()]));
				this.renderElements(comment.children, container);
			}
			renderDrawing(elem) {
				var result = this.renderContainer(elem, "div");
				result.style.display = "inline-block";
				result.style.position = "relative";
				result.style.textIndent = "0px";
				this.renderStyleValues(elem.cssStyle, result);
				return result;
			}
			renderImage(elem) {
				let result = this.createElement("img");
				let transform = elem.cssStyle?.transform;
				this.renderStyleValues(elem.cssStyle, result);
				if (elem.srcRect && elem.srcRect.some((x$2) => x$2 != 0)) {
					var [left, top, right, bottom] = elem.srcRect;
					transform = `scale(${1 / (1 - left - right)}, ${1 / (1 - top - bottom)})`;
					result.style["clip-path"] = `rect(${(100 * top).toFixed(2)}% ${(100 * (1 - right)).toFixed(2)}% ${(100 * (1 - bottom)).toFixed(2)}% ${(100 * left).toFixed(2)}%)`;
				}
				if (elem.rotation) transform = `rotate(${elem.rotation}deg) ${transform ?? ""}`;
				result.style.transform = transform?.trim();
				if (this.document) {
					this.tasks.push(this.document.loadDocumentImage(elem.src, this.currentPart).then((x$2) => {
						result.src = x$2;
					}));
				}
				return result;
			}
			renderText(elem) {
				return this.htmlDocument.createTextNode(elem.text);
			}
			renderDeletedText(elem) {
				return this.options.renderChanges ? this.renderText(elem) : null;
			}
			renderBreak(elem) {
				if (elem.break == "textWrapping") {
					return this.createElement("br");
				}
				return null;
			}
			renderInserted(elem) {
				if (this.options.renderChanges) return this.renderContainer(elem, "ins");
				return this.renderElements(elem.children);
			}
			renderDeleted(elem) {
				if (this.options.renderChanges) return this.renderContainer(elem, "del");
				return null;
			}
			renderSymbol(elem) {
				var span = this.createElement("span");
				span.style.fontFamily = elem.font;
				span.innerHTML = `&#x${elem.char};`;
				return span;
			}
			renderFootnoteReference(elem) {
				var result = this.createElement("sup");
				this.currentFootnoteIds.push(elem.id);
				result.textContent = `${this.currentFootnoteIds.length}`;
				return result;
			}
			renderEndnoteReference(elem) {
				var result = this.createElement("sup");
				this.currentEndnoteIds.push(elem.id);
				result.textContent = `${this.currentEndnoteIds.length}`;
				return result;
			}
			renderTab(elem) {
				var tabSpan = this.createElement("span");
				tabSpan.innerHTML = "&emsp;";
				if (this.options.experimental) {
					tabSpan.className = this.tabStopClass();
					var stops = findParent(elem, DomType.Paragraph)?.tabs;
					this.currentTabs.push({
						stops,
						span: tabSpan
					});
				}
				return tabSpan;
			}
			renderBookmarkStart(elem) {
				return this.createElement("span", { id: elem.name });
			}
			renderRun(elem) {
				if (elem.fieldRun) return null;
				const result = this.createElement("span");
				if (elem.id) result.id = elem.id;
				this.renderClass(elem, result);
				this.renderStyleValues(elem.cssStyle, result);
				if (elem.verticalAlign) {
					const wrapper = this.createElement(elem.verticalAlign);
					this.renderElements(elem.children, wrapper);
					result.appendChild(wrapper);
				} else {
					this.renderElements(elem.children, result);
				}
				return result;
			}
			renderTable(elem) {
				let result = this.createElement("table");
				this.tableCellPositions.push(this.currentCellPosition);
				this.tableVerticalMerges.push(this.currentVerticalMerge);
				this.currentVerticalMerge = {};
				this.currentCellPosition = {
					col: 0,
					row: 0
				};
				if (elem.columns) result.appendChild(this.renderTableColumns(elem.columns));
				this.renderClass(elem, result);
				this.renderElements(elem.children, result);
				this.renderStyleValues(elem.cssStyle, result);
				this.currentVerticalMerge = this.tableVerticalMerges.pop();
				this.currentCellPosition = this.tableCellPositions.pop();
				return result;
			}
			renderTableColumns(columns) {
				let result = this.createElement("colgroup");
				for (let col of columns) {
					let colElem = this.createElement("col");
					if (col.width) colElem.style.width = col.width;
					result.appendChild(colElem);
				}
				return result;
			}
			renderTableRow(elem) {
				let result = this.createElement("tr");
				this.currentCellPosition.col = 0;
				if (elem.gridBefore) result.appendChild(this.renderTableCellPlaceholder(elem.gridBefore));
				this.renderClass(elem, result);
				this.renderElements(elem.children, result);
				this.renderStyleValues(elem.cssStyle, result);
				if (elem.gridAfter) result.appendChild(this.renderTableCellPlaceholder(elem.gridAfter));
				this.currentCellPosition.row++;
				return result;
			}
			renderTableCellPlaceholder(colSpan) {
				const result = this.createElement("td", { colSpan });
				result.style["border"] = "none";
				return result;
			}
			renderTableCell(elem) {
				let result = this.renderContainer(elem, "td");
				const key = this.currentCellPosition.col;
				if (elem.verticalMerge) {
					if (elem.verticalMerge == "restart") {
						this.currentVerticalMerge[key] = result;
						result.rowSpan = 1;
					} else if (this.currentVerticalMerge[key]) {
						this.currentVerticalMerge[key].rowSpan += 1;
						result.style.display = "none";
					}
				} else {
					this.currentVerticalMerge[key] = null;
				}
				this.renderClass(elem, result);
				this.renderStyleValues(elem.cssStyle, result);
				if (elem.span) result.colSpan = elem.span;
				this.currentCellPosition.col += result.colSpan;
				return result;
			}
			renderVmlPicture(elem) {
				return this.renderContainer(elem, "div");
			}
			renderVmlElement(elem) {
				var container = this.createSvgElement("svg");
				container.setAttribute("style", elem.cssStyleText);
				const result = this.renderVmlChildElement(elem);
				if (elem.imageHref?.id) {
					this.tasks.push(this.document?.loadDocumentImage(elem.imageHref.id, this.currentPart).then((x$2) => result.setAttribute("href", x$2)));
				}
				container.appendChild(result);
				requestAnimationFrame(() => {
					const bb = container.firstElementChild.getBBox();
					container.setAttribute("width", `${Math.ceil(bb.x + bb.width)}`);
					container.setAttribute("height", `${Math.ceil(bb.y + bb.height)}`);
				});
				return container;
			}
			renderVmlChildElement(elem) {
				const result = this.createSvgElement(elem.tagName);
				Object.entries(elem.attrs).forEach(([k$2, v$3]) => result.setAttribute(k$2, v$3));
				for (let child of elem.children) {
					if (child.type == DomType.VmlElement) {
						result.appendChild(this.renderVmlChildElement(child));
					} else {
						result.appendChild(...asArray(this.renderElement(child)));
					}
				}
				return result;
			}
			renderMmlRadical(elem) {
				const base = elem.children.find((el) => el.type == DomType.MmlBase);
				if (elem.props?.hideDegree) {
					return this.createElementNS(ns.mathML, "msqrt", null, this.renderElements([base]));
				}
				const degree = elem.children.find((el) => el.type == DomType.MmlDegree);
				return this.createElementNS(ns.mathML, "mroot", null, this.renderElements([base, degree]));
			}
			renderMmlDelimiter(elem) {
				const children = [];
				children.push(this.createElementNS(ns.mathML, "mo", null, [elem.props.beginChar ?? "("]));
				children.push(...this.renderElements(elem.children));
				children.push(this.createElementNS(ns.mathML, "mo", null, [elem.props.endChar ?? ")"]));
				return this.createElementNS(ns.mathML, "mrow", null, children);
			}
			renderMmlNary(elem) {
				const children = [];
				const grouped = keyBy(elem.children, (x$2) => x$2.type);
				const sup$1 = grouped[DomType.MmlSuperArgument];
				const sub$1 = grouped[DomType.MmlSubArgument];
				const supElem = sup$1 ? this.createElementNS(ns.mathML, "mo", null, asArray(this.renderElement(sup$1))) : null;
				const subElem = sub$1 ? this.createElementNS(ns.mathML, "mo", null, asArray(this.renderElement(sub$1))) : null;
				const charElem = this.createElementNS(ns.mathML, "mo", null, [elem.props?.char ?? "∫"]);
				if (supElem || subElem) {
					children.push(this.createElementNS(ns.mathML, "munderover", null, [
						charElem,
						subElem,
						supElem
					]));
				} else if (supElem) {
					children.push(this.createElementNS(ns.mathML, "mover", null, [charElem, supElem]));
				} else if (subElem) {
					children.push(this.createElementNS(ns.mathML, "munder", null, [charElem, subElem]));
				} else {
					children.push(charElem);
				}
				children.push(...this.renderElements(grouped[DomType.MmlBase].children));
				return this.createElementNS(ns.mathML, "mrow", null, children);
			}
			renderMmlPreSubSuper(elem) {
				const children = [];
				const grouped = keyBy(elem.children, (x$2) => x$2.type);
				const sup$1 = grouped[DomType.MmlSuperArgument];
				const sub$1 = grouped[DomType.MmlSubArgument];
				const supElem = sup$1 ? this.createElementNS(ns.mathML, "mo", null, asArray(this.renderElement(sup$1))) : null;
				const subElem = sub$1 ? this.createElementNS(ns.mathML, "mo", null, asArray(this.renderElement(sub$1))) : null;
				const stubElem = this.createElementNS(ns.mathML, "mo", null);
				children.push(this.createElementNS(ns.mathML, "msubsup", null, [
					stubElem,
					subElem,
					supElem
				]));
				children.push(...this.renderElements(grouped[DomType.MmlBase].children));
				return this.createElementNS(ns.mathML, "mrow", null, children);
			}
			renderMmlGroupChar(elem) {
				const tagName = elem.props.verticalJustification === "bot" ? "mover" : "munder";
				const result = this.renderContainerNS(elem, ns.mathML, tagName);
				if (elem.props.char) {
					result.appendChild(this.createElementNS(ns.mathML, "mo", null, [elem.props.char]));
				}
				return result;
			}
			renderMmlBar(elem) {
				const result = this.renderContainerNS(elem, ns.mathML, "mrow");
				switch (elem.props.position) {
					case "top":
						result.style.textDecoration = "overline";
						break;
					case "bottom":
						result.style.textDecoration = "underline";
						break;
				}
				return result;
			}
			renderMmlRun(elem) {
				const result = this.createElementNS(ns.mathML, "ms", null, this.renderElements(elem.children));
				this.renderClass(elem, result);
				this.renderStyleValues(elem.cssStyle, result);
				return result;
			}
			renderMllList(elem) {
				const result = this.createElementNS(ns.mathML, "mtable");
				this.renderClass(elem, result);
				this.renderStyleValues(elem.cssStyle, result);
				for (let child of this.renderElements(elem.children)) {
					result.appendChild(this.createElementNS(ns.mathML, "mtr", null, [this.createElementNS(ns.mathML, "mtd", null, [child])]));
				}
				return result;
			}
			renderStyleValues(style, ouput) {
				for (let k$2 in style) {
					if (k$2.startsWith("$")) {
						ouput.setAttribute(k$2.slice(1), style[k$2]);
					} else {
						ouput.style[k$2] = style[k$2];
					}
				}
			}
			renderClass(input, ouput) {
				if (input.className) ouput.className = input.className;
				if (input.styleName) ouput.classList.add(this.processStyleName(input.styleName));
			}
			findStyle(styleName) {
				return styleName && this.styleMap?.[styleName];
			}
			numberingClass(id, lvl) {
				return `${this.className}-num-${id}-${lvl}`;
			}
			tabStopClass() {
				return `${this.className}-tab-stop`;
			}
			styleToString(selectors, values$1, cssText = null) {
				let result = `${selectors} {\r\n`;
				for (const key in values$1) {
					if (key.startsWith("$")) continue;
					result += `  ${key}: ${values$1[key]};\r\n`;
				}
				if (cssText) result += cssText;
				return result + "}\r\n";
			}
			numberingCounter(id, lvl) {
				return `${this.className}-num-${id}-${lvl}`;
			}
			levelTextToContent(text$2, suff, id, numformat) {
				const suffMap = {
					"tab": "\\9",
					"space": "\\a0"
				};
				var result = text$2.replace(/%\d*/g, (s$5) => {
					let lvl = parseInt(s$5.substring(1), 10) - 1;
					return `"counter(${this.numberingCounter(id, lvl)}, ${numformat})"`;
				});
				return `"${result}${suffMap[suff] ?? ""}"`;
			}
			numFormatToCssValue(format) {
				var mapping = {
					none: "none",
					bullet: "disc",
					decimal: "decimal",
					lowerLetter: "lower-alpha",
					upperLetter: "upper-alpha",
					lowerRoman: "lower-roman",
					upperRoman: "upper-roman",
					decimalZero: "decimal-leading-zero",
					aiueo: "katakana",
					aiueoFullWidth: "katakana",
					chineseCounting: "simp-chinese-informal",
					chineseCountingThousand: "simp-chinese-informal",
					chineseLegalSimplified: "simp-chinese-formal",
					chosung: "hangul-consonant",
					ideographDigital: "cjk-ideographic",
					ideographTraditional: "cjk-heavenly-stem",
					ideographLegalTraditional: "trad-chinese-formal",
					ideographZodiac: "cjk-earthly-branch",
					iroha: "katakana-iroha",
					irohaFullWidth: "katakana-iroha",
					japaneseCounting: "japanese-informal",
					japaneseDigitalTenThousand: "cjk-decimal",
					japaneseLegal: "japanese-formal",
					thaiNumbers: "thai",
					koreanCounting: "korean-hangul-formal",
					koreanDigital: "korean-hangul-formal",
					koreanDigital2: "korean-hanja-informal",
					hebrew1: "hebrew",
					hebrew2: "hebrew",
					hindiNumbers: "devanagari",
					ganada: "hangul",
					taiwaneseCounting: "cjk-ideographic",
					taiwaneseCountingThousand: "cjk-ideographic",
					taiwaneseDigital: "cjk-decimal"
				};
				return mapping[format] ?? format;
			}
			refreshTabStops() {
				if (!this.options.experimental) return;
				setTimeout(() => {
					const pixelToPoint = computePixelToPoint();
					for (let tab of this.currentTabs) {
						updateTabStop(tab.span, tab.stops, this.defaultTabSize, pixelToPoint);
					}
				}, 500);
			}
			createElementNS(ns$2, tagName, props, children) {
				var result = ns$2 ? this.htmlDocument.createElementNS(ns$2, tagName) : this.htmlDocument.createElement(tagName);
				Object.assign(result, props);
				children && appendChildren(result, children);
				return result;
			}
			createElement(tagName, props, children) {
				return this.createElementNS(undefined, tagName, props, children);
			}
			createSvgElement(tagName, props, children) {
				return this.createElementNS(ns.svg, tagName, props, children);
			}
			createStyleElement(cssText) {
				return this.createElement("style", { innerHTML: cssText });
			}
			createComment(text$2) {
				return this.htmlDocument.createComment(text$2);
			}
			later(func) {
				this.postRenderTasks.push(func);
			}
		}
		function removeAllElements(elem) {
			elem.innerHTML = "";
		}
		function appendChildren(elem, children) {
			children.forEach((c$7) => elem.appendChild(isString(c$7) ? document.createTextNode(c$7) : c$7));
		}
		function findParent(elem, type) {
			var parent = elem.parent;
			while (parent != null && parent.type != type) parent = parent.parent;
			return parent;
		}
		const defaultOptions = {
			ignoreHeight: false,
			ignoreWidth: false,
			ignoreFonts: false,
			breakPages: true,
			debug: false,
			experimental: false,
			className: "docx",
			inWrapper: true,
			hideWrapperOnPrint: false,
			trimXmlDeclaration: true,
			ignoreLastRenderedPageBreak: true,
			renderHeaders: true,
			renderFooters: true,
			renderFootnotes: true,
			renderEndnotes: true,
			useBase64URL: false,
			renderChanges: false,
			renderComments: false,
			renderAltChunks: true
		};
		function parseAsync$1(data, userOptions) {
			const ops = {
				...defaultOptions,
				...userOptions
			};
			return WordDocument.load(data, new DocumentParser(ops), ops);
		}
		async function renderDocument(document$1, bodyContainer, styleContainer, userOptions) {
			const ops = {
				...defaultOptions,
				...userOptions
			};
			const renderer = new HtmlRenderer(window.document);
			return await renderer.render(document$1, bodyContainer, styleContainer, ops);
		}
		async function renderAsync$2(data, bodyContainer, styleContainer, userOptions) {
			const doc = await parseAsync$1(data, userOptions);
			await renderDocument(doc, bodyContainer, styleContainer, userOptions);
			return doc;
		}
		exports$1.defaultOptions = defaultOptions;
		exports$1.parseAsync = parseAsync$1;
		exports$1.renderAsync = renderAsync$2;
		exports$1.renderDocument = renderDocument;
	}));
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/pdfjs-dist/build/pdf.mjs
function setVerbosityLevel(level) {
	if (Number.isInteger(level)) {
		verbosity = level;
	}
}
function getVerbosityLevel() {
	return verbosity;
}
function info(msg) {
	if (verbosity >= VerbosityLevel.INFOS) {
		console.info(`Info: ${msg}`);
	}
}
function warn$2(msg) {
	if (verbosity >= VerbosityLevel.WARNINGS) {
		console.warn(`Warning: ${msg}`);
	}
}
function unreachable(msg) {
	throw new Error(msg);
}
function assert$1(cond, msg) {
	if (!cond) {
		unreachable(msg);
	}
}
function _isValidProtocol(url) {
	switch (url?.protocol) {
		case "http:":
		case "https:":
		case "ftp:":
		case "mailto:":
		case "tel:": return true;
		default: return false;
	}
}
function createValidAbsoluteUrl(url, baseUrl = null, options = null) {
	if (!url) {
		return null;
	}
	if (options && typeof url === "string") {
		if (options.addDefaultProtocol && url.startsWith("www.")) {
			const dots = url.match(/\./g);
			if (dots?.length >= 2) {
				url = `http://${url}`;
			}
		}
		if (options.tryConvertEncoding) {
			try {
				url = stringToUTF8String(url);
			} catch {}
		}
	}
	const absoluteUrl = baseUrl ? URL.parse(url, baseUrl) : URL.parse(url);
	return _isValidProtocol(absoluteUrl) ? absoluteUrl : null;
}
function updateUrlHash(url, hash, allowRel = false) {
	const res = URL.parse(url);
	if (res) {
		res.hash = hash;
		return res.href;
	}
	if (allowRel && createValidAbsoluteUrl(url, "http://example.com")) {
		return url.split("#", 1)[0] + `${hash ? `#${hash}` : ""}`;
	}
	return "";
}
function shadow(obj, prop, value, nonSerializable = false) {
	Object.defineProperty(obj, prop, {
		value,
		enumerable: !nonSerializable,
		configurable: true,
		writable: false
	});
	return value;
}
function bytesToString(bytes) {
	if (typeof bytes !== "object" || bytes?.length === undefined) {
		unreachable("Invalid argument for bytesToString");
	}
	const length = bytes.length;
	const MAX_ARGUMENT_COUNT = 8192;
	if (length < MAX_ARGUMENT_COUNT) {
		return String.fromCharCode.apply(null, bytes);
	}
	const strBuf = [];
	for (let i$7 = 0; i$7 < length; i$7 += MAX_ARGUMENT_COUNT) {
		const chunkEnd = Math.min(i$7 + MAX_ARGUMENT_COUNT, length);
		const chunk = bytes.subarray(i$7, chunkEnd);
		strBuf.push(String.fromCharCode.apply(null, chunk));
	}
	return strBuf.join("");
}
function stringToBytes(str) {
	if (typeof str !== "string") {
		unreachable("Invalid argument for stringToBytes");
	}
	const length = str.length;
	const bytes = new Uint8Array(length);
	for (let i$7 = 0; i$7 < length; ++i$7) {
		bytes[i$7] = str.charCodeAt(i$7) & 255;
	}
	return bytes;
}
function string32(value) {
	return String.fromCharCode(value >> 24 & 255, value >> 16 & 255, value >> 8 & 255, value & 255);
}
function objectSize(obj) {
	return Object.keys(obj).length;
}
function isLittleEndian() {
	const buffer8 = new Uint8Array(4);
	buffer8[0] = 1;
	const view32 = new Uint32Array(buffer8.buffer, 0, 1);
	return view32[0] === 1;
}
function isEvalSupported() {
	try {
		new Function("");
		return true;
	} catch {
		return false;
	}
}
function stringToPDFString(str, keepEscapeSequence = false) {
	if (str[0] >= "ï") {
		let encoding;
		if (str[0] === "þ" && str[1] === "ÿ") {
			encoding = "utf-16be";
			if (str.length % 2 === 1) {
				str = str.slice(0, -1);
			}
		} else if (str[0] === "ÿ" && str[1] === "þ") {
			encoding = "utf-16le";
			if (str.length % 2 === 1) {
				str = str.slice(0, -1);
			}
		} else if (str[0] === "ï" && str[1] === "»" && str[2] === "¿") {
			encoding = "utf-8";
		}
		if (encoding) {
			try {
				const decoder = new TextDecoder(encoding, { fatal: true });
				const buffer = stringToBytes(str);
				const decoded = decoder.decode(buffer);
				if (keepEscapeSequence || !decoded.includes("\x1B")) {
					return decoded;
				}
				return decoded.replaceAll(/\x1b[^\x1b]*(?:\x1b|$)/g, "");
			} catch (ex) {
				warn$2(`stringToPDFString: "${ex}".`);
			}
		}
	}
	const strBuf = [];
	for (let i$7 = 0, ii = str.length; i$7 < ii; i$7++) {
		const charCode = str.charCodeAt(i$7);
		if (!keepEscapeSequence && charCode === 27) {
			while (++i$7 < ii && str.charCodeAt(i$7) !== 27) {}
			continue;
		}
		const code = PDFStringTranslateTable[charCode];
		strBuf.push(code ? String.fromCharCode(code) : str.charAt(i$7));
	}
	return strBuf.join("");
}
function stringToUTF8String(str) {
	return decodeURIComponent(escape(str));
}
function utf8StringToString(str) {
	return unescape(encodeURIComponent(str));
}
function isArrayEqual(arr1, arr2) {
	if (arr1.length !== arr2.length) {
		return false;
	}
	for (let i$7 = 0, ii = arr1.length; i$7 < ii; i$7++) {
		if (arr1[i$7] !== arr2[i$7]) {
			return false;
		}
	}
	return true;
}
function getModificationDate(date = new Date()) {
	if (!(date instanceof Date)) {
		date = new Date(date);
	}
	const buffer = [
		date.getUTCFullYear().toString(),
		(date.getUTCMonth() + 1).toString().padStart(2, "0"),
		date.getUTCDate().toString().padStart(2, "0"),
		date.getUTCHours().toString().padStart(2, "0"),
		date.getUTCMinutes().toString().padStart(2, "0"),
		date.getUTCSeconds().toString().padStart(2, "0")
	];
	return buffer.join("");
}
function normalizeUnicode(str) {
	if (!NormalizeRegex) {
		NormalizeRegex = /([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu;
		NormalizationMap = new Map([["ﬅ", "ſt"]]);
	}
	return str.replaceAll(NormalizeRegex, (_$2, p1, p2) => p1 ? p1.normalize("NFKC") : NormalizationMap.get(p2));
}
function getUuid() {
	if (typeof crypto.randomUUID === "function") {
		return crypto.randomUUID();
	}
	const buf = new Uint8Array(32);
	crypto.getRandomValues(buf);
	return bytesToString(buf);
}
function _isValidExplicitDest(validRef, validName, dest) {
	if (!Array.isArray(dest) || dest.length < 2) {
		return false;
	}
	const [page, zoom, ...args] = dest;
	if (!validRef(page) && !Number.isInteger(page)) {
		return false;
	}
	if (!validName(zoom)) {
		return false;
	}
	const argsLen = args.length;
	let allowNull = true;
	switch (zoom.name) {
		case "XYZ":
			if (argsLen < 2 || argsLen > 3) {
				return false;
			}
			break;
		case "Fit":
		case "FitB": return argsLen === 0;
		case "FitH":
		case "FitBH":
		case "FitV":
		case "FitBV":
			if (argsLen > 1) {
				return false;
			}
			break;
		case "FitR":
			if (argsLen !== 4) {
				return false;
			}
			allowNull = false;
			break;
		default: return false;
	}
	for (const arg of args) {
		if (typeof arg === "number" || allowNull && arg === null) {
			continue;
		}
		return false;
	}
	return true;
}
function MathClamp(v$3, min, max) {
	return Math.min(Math.max(v$3, min), max);
}
function toHexUtil(arr) {
	if (Uint8Array.prototype.toHex) {
		return arr.toHex();
	}
	return Array.from(arr, (num) => hexNumbers[num]).join("");
}
function toBase64Util(arr) {
	if (Uint8Array.prototype.toBase64) {
		return arr.toBase64();
	}
	return btoa(bytesToString(arr));
}
function fromBase64Util(str) {
	if (Uint8Array.fromBase64) {
		return Uint8Array.fromBase64(str);
	}
	return stringToBytes(atob(str));
}
async function fetchData(url, type = "text") {
	if (isValidFetchUrl(url, document.baseURI)) {
		const response = await fetch(url);
		if (!response.ok) {
			throw new Error(response.statusText);
		}
		switch (type) {
			case "arraybuffer": return response.arrayBuffer();
			case "blob": return response.blob();
			case "json": return response.json();
		}
		return response.text();
	}
	return new Promise((resolve, reject) => {
		const request = new XMLHttpRequest();
		request.open("GET", url, true);
		request.responseType = type;
		request.onreadystatechange = () => {
			if (request.readyState !== XMLHttpRequest.DONE) {
				return;
			}
			if (request.status === 200 || request.status === 0) {
				switch (type) {
					case "arraybuffer":
					case "blob":
					case "json":
						resolve(request.response);
						return;
				}
				resolve(request.responseText);
				return;
			}
			reject(new Error(request.statusText));
		};
		request.send(null);
	});
}
function isDataScheme(url) {
	const ii = url.length;
	let i$7 = 0;
	while (i$7 < ii && url[i$7].trim() === "") {
		i$7++;
	}
	return url.substring(i$7, i$7 + 5).toLowerCase() === "data:";
}
function isPdfFile(filename) {
	return typeof filename === "string" && /\.pdf$/i.test(filename);
}
function getFilenameFromUrl(url) {
	[url] = url.split(/[#?]/, 1);
	return url.substring(url.lastIndexOf("/") + 1);
}
function getPdfFilenameFromUrl(url, defaultFilename = "document.pdf") {
	if (typeof url !== "string") {
		return defaultFilename;
	}
	if (isDataScheme(url)) {
		warn$2("getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.");
		return defaultFilename;
	}
	const getURL = (urlString) => {
		try {
			return new URL(urlString);
		} catch {
			try {
				return new URL(decodeURIComponent(urlString));
			} catch {
				try {
					return new URL(urlString, "https://foo.bar");
				} catch {
					try {
						return new URL(decodeURIComponent(urlString), "https://foo.bar");
					} catch {
						return null;
					}
				}
			}
		}
	};
	const newURL = getURL(url);
	if (!newURL) {
		return defaultFilename;
	}
	const decode = (name) => {
		try {
			let decoded = decodeURIComponent(name);
			if (decoded.includes("/")) {
				decoded = decoded.split("/").at(-1);
				if (decoded.test(/^\.pdf$/i)) {
					return decoded;
				}
				return name;
			}
			return decoded;
		} catch {
			return name;
		}
	};
	const pdfRegex = /\.pdf$/i;
	const filename = newURL.pathname.split("/").at(-1);
	if (pdfRegex.test(filename)) {
		return decode(filename);
	}
	if (newURL.searchParams.size > 0) {
		const values = Array.from(newURL.searchParams.values()).reverse();
		for (const value of values) {
			if (pdfRegex.test(value)) {
				return decode(value);
			}
		}
		const keys$1 = Array.from(newURL.searchParams.keys()).reverse();
		for (const key of keys$1) {
			if (pdfRegex.test(key)) {
				return decode(key);
			}
		}
	}
	if (newURL.hash) {
		const reFilename = /[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i;
		const hashFilename = reFilename.exec(newURL.hash);
		if (hashFilename) {
			return decode(hashFilename[0]);
		}
	}
	return defaultFilename;
}
function isValidFetchUrl(url, baseUrl) {
	const res = baseUrl ? URL.parse(url, baseUrl) : URL.parse(url);
	return res?.protocol === "http:" || res?.protocol === "https:";
}
function noContextMenu(e$10) {
	e$10.preventDefault();
}
function stopEvent(e$10) {
	e$10.preventDefault();
	e$10.stopPropagation();
}
function deprecated$2(details) {
	console.log("Deprecated API usage: " + details);
}
function getXfaPageViewport(xfaPage, { scale = 1, rotation = 0 }) {
	const { width, height } = xfaPage.attributes.style;
	const viewBox = [
		0,
		0,
		parseInt(width),
		parseInt(height)
	];
	return new PageViewport({
		viewBox,
		userUnit: 1,
		scale,
		rotation
	});
}
function getRGB(color) {
	if (color.startsWith("#")) {
		const colorRGB = parseInt(color.slice(1), 16);
		return [
			(colorRGB & 16711680) >> 16,
			(colorRGB & 65280) >> 8,
			colorRGB & 255
		];
	}
	if (color.startsWith("rgb(")) {
		return color.slice(4, -1).split(",").map((x$2) => parseInt(x$2));
	}
	if (color.startsWith("rgba(")) {
		return color.slice(5, -1).split(",").map((x$2) => parseInt(x$2)).slice(0, 3);
	}
	warn$2(`Not a valid color format: "${color}"`);
	return [
		0,
		0,
		0
	];
}
function getColorValues(colors) {
	const span = document.createElement("span");
	span.style.visibility = "hidden";
	span.style.colorScheme = "only light";
	document.body.append(span);
	for (const name of colors.keys()) {
		span.style.color = name;
		const computedColor = window.getComputedStyle(span).color;
		colors.set(name, getRGB(computedColor));
	}
	span.remove();
}
function getCurrentTransform(ctx) {
	const { a: a$2, b: b$3, c: c$7, d: d$5, e: e$10, f: f$4 } = ctx.getTransform();
	return [
		a$2,
		b$3,
		c$7,
		d$5,
		e$10,
		f$4
	];
}
function getCurrentTransformInverse(ctx) {
	const { a: a$2, b: b$3, c: c$7, d: d$5, e: e$10, f: f$4 } = ctx.getTransform().invertSelf();
	return [
		a$2,
		b$3,
		c$7,
		d$5,
		e$10,
		f$4
	];
}
function setLayerDimensions(div, viewport, mustFlip = false, mustRotate = true) {
	if (viewport instanceof PageViewport) {
		const { pageWidth, pageHeight } = viewport.rawDims;
		const { style } = div;
		const useRound = util_FeatureTest.isCSSRoundSupported;
		const w$2 = `var(--total-scale-factor) * ${pageWidth}px`, h$5 = `var(--total-scale-factor) * ${pageHeight}px`;
		const widthStr = useRound ? `round(down, ${w$2}, var(--scale-round-x))` : `calc(${w$2})`, heightStr = useRound ? `round(down, ${h$5}, var(--scale-round-y))` : `calc(${h$5})`;
		if (!mustFlip || viewport.rotation % 180 === 0) {
			style.width = widthStr;
			style.height = heightStr;
		} else {
			style.width = heightStr;
			style.height = widthStr;
		}
	}
	if (mustRotate) {
		div.setAttribute("data-main-rotation", viewport.rotation);
	}
}
function applyOpacity(r$10, g$1, b$3, opacity) {
	opacity = Math.min(Math.max(opacity ?? 1, 0), 1);
	const white = 255 * (1 - opacity);
	r$10 = Math.round(r$10 * opacity + white);
	g$1 = Math.round(g$1 * opacity + white);
	b$3 = Math.round(b$3 * opacity + white);
	return [
		r$10,
		g$1,
		b$3
	];
}
function RGBToHSL(rgb, output) {
	const r$10 = rgb[0] / 255;
	const g$1 = rgb[1] / 255;
	const b$3 = rgb[2] / 255;
	const max = Math.max(r$10, g$1, b$3);
	const min = Math.min(r$10, g$1, b$3);
	const l$3 = (max + min) / 2;
	if (max === min) {
		output[0] = output[1] = 0;
	} else {
		const d$5 = max - min;
		output[1] = l$3 < .5 ? d$5 / (max + min) : d$5 / (2 - max - min);
		switch (max) {
			case r$10:
				output[0] = ((g$1 - b$3) / d$5 + (g$1 < b$3 ? 6 : 0)) * 60;
				break;
			case g$1:
				output[0] = ((b$3 - r$10) / d$5 + 2) * 60;
				break;
			case b$3:
				output[0] = ((r$10 - g$1) / d$5 + 4) * 60;
				break;
		}
	}
	output[2] = l$3;
}
function HSLToRGB(hsl, output) {
	const h$5 = hsl[0];
	const s$5 = hsl[1];
	const l$3 = hsl[2];
	const c$7 = (1 - Math.abs(2 * l$3 - 1)) * s$5;
	const x$2 = c$7 * (1 - Math.abs(h$5 / 60 % 2 - 1));
	const m$3 = l$3 - c$7 / 2;
	switch (Math.floor(h$5 / 60)) {
		case 0:
			output[0] = c$7 + m$3;
			output[1] = x$2 + m$3;
			output[2] = m$3;
			break;
		case 1:
			output[0] = x$2 + m$3;
			output[1] = c$7 + m$3;
			output[2] = m$3;
			break;
		case 2:
			output[0] = m$3;
			output[1] = c$7 + m$3;
			output[2] = x$2 + m$3;
			break;
		case 3:
			output[0] = m$3;
			output[1] = x$2 + m$3;
			output[2] = c$7 + m$3;
			break;
		case 4:
			output[0] = x$2 + m$3;
			output[1] = m$3;
			output[2] = c$7 + m$3;
			break;
		case 5:
		case 6:
			output[0] = c$7 + m$3;
			output[1] = m$3;
			output[2] = x$2 + m$3;
			break;
	}
}
function computeLuminance(x$2) {
	return x$2 <= .03928 ? x$2 / 12.92 : ((x$2 + .055) / 1.055) ** 2.4;
}
function contrastRatio(hsl1, hsl2, output) {
	HSLToRGB(hsl1, output);
	output.map(computeLuminance);
	const lum1 = .2126 * output[0] + .7152 * output[1] + .0722 * output[2];
	HSLToRGB(hsl2, output);
	output.map(computeLuminance);
	const lum2 = .2126 * output[0] + .7152 * output[1] + .0722 * output[2];
	return lum1 > lum2 ? (lum1 + .05) / (lum2 + .05) : (lum2 + .05) / (lum1 + .05);
}
function findContrastColor(baseColor, fixedColor) {
	const key = baseColor[0] + baseColor[1] * 256 + baseColor[2] * 65536 + fixedColor[0] * 16777216 + fixedColor[1] * 4294967296 + fixedColor[2] * 1099511627776;
	let cachedValue = contrastCache.get(key);
	if (cachedValue) {
		return cachedValue;
	}
	const array = new Float32Array(9);
	const output = array.subarray(0, 3);
	const baseHSL = array.subarray(3, 6);
	RGBToHSL(baseColor, baseHSL);
	const fixedHSL = array.subarray(6, 9);
	RGBToHSL(fixedColor, fixedHSL);
	const isFixedColorDark = fixedHSL[2] < .5;
	const minContrast = isFixedColorDark ? 12 : 4.5;
	baseHSL[2] = isFixedColorDark ? Math.sqrt(baseHSL[2]) : 1 - Math.sqrt(1 - baseHSL[2]);
	if (contrastRatio(baseHSL, fixedHSL, output) < minContrast) {
		let start, end;
		if (isFixedColorDark) {
			start = baseHSL[2];
			end = 1;
		} else {
			start = 0;
			end = baseHSL[2];
		}
		const PRECISION = .005;
		while (end - start > PRECISION) {
			const mid = baseHSL[2] = (start + end) / 2;
			if (isFixedColorDark === contrastRatio(baseHSL, fixedHSL, output) < minContrast) {
				start = mid;
			} else {
				end = mid;
			}
		}
		baseHSL[2] = isFixedColorDark ? end : start;
	}
	HSLToRGB(baseHSL, output);
	cachedValue = Util.makeHexColor(Math.round(output[0] * 255), Math.round(output[1] * 255), Math.round(output[2] * 255));
	contrastCache.set(key, cachedValue);
	return cachedValue;
}
function renderRichText({ html, dir, className }, container) {
	const fragment = document.createDocumentFragment();
	if (typeof html === "string") {
		const p$3 = document.createElement("p");
		p$3.dir = dir || "auto";
		const lines = html.split(/(?:\r\n?|\n)/);
		for (let i$7 = 0, ii = lines.length; i$7 < ii; ++i$7) {
			const line = lines[i$7];
			p$3.append(document.createTextNode(line));
			if (i$7 < ii - 1) {
				p$3.append(document.createElement("br"));
			}
		}
		fragment.append(p$3);
	} else {
		XfaLayer.render({
			xfaHtml: html,
			div: fragment,
			intent: "richText"
		});
	}
	fragment.firstChild.classList.add("richText", className);
	container.append(fragment);
}
function makePathFromDrawOPS(data) {
	const path$1 = new Path2D();
	if (!data) {
		return path$1;
	}
	for (let i$7 = 0, ii = data.length; i$7 < ii;) {
		switch (data[i$7++]) {
			case DrawOPS.moveTo:
				path$1.moveTo(data[i$7++], data[i$7++]);
				break;
			case DrawOPS.lineTo:
				path$1.lineTo(data[i$7++], data[i$7++]);
				break;
			case DrawOPS.curveTo:
				path$1.bezierCurveTo(data[i$7++], data[i$7++], data[i$7++], data[i$7++], data[i$7++], data[i$7++]);
				break;
			case DrawOPS.quadraticCurveTo:
				path$1.quadraticCurveTo(data[i$7++], data[i$7++], data[i$7++], data[i$7++]);
				break;
			case DrawOPS.closePath:
				path$1.closePath();
				break;
			default:
				warn$2(`Unrecognized drawing path operator: ${data[i$7 - 1]}`);
				break;
		}
	}
	return path$1;
}
function bindEvents(obj, element, names) {
	for (const name of names) {
		element.addEventListener(name, obj[name].bind(obj));
	}
}
function getUrlProp(val$1) {
	if (val$1 instanceof URL) {
		return val$1.href;
	}
	if (typeof val$1 === "string") {
		if (isNodeJS) {
			return val$1;
		}
		const url = URL.parse(val$1, window.location);
		if (url) {
			return url.href;
		}
	}
	throw new Error("Invalid PDF url data: " + "either string or URL-object is expected in the url property.");
}
function getDataProp(val$1) {
	if (isNodeJS && typeof Buffer !== "undefined" && val$1 instanceof Buffer) {
		throw new Error("Please provide binary data as `Uint8Array`, rather than `Buffer`.");
	}
	if (val$1 instanceof Uint8Array && val$1.byteLength === val$1.buffer.byteLength) {
		return val$1;
	}
	if (typeof val$1 === "string") {
		return stringToBytes(val$1);
	}
	if (val$1 instanceof ArrayBuffer || ArrayBuffer.isView(val$1) || typeof val$1 === "object" && !isNaN(val$1?.length)) {
		return new Uint8Array(val$1);
	}
	throw new Error("Invalid PDF binary data: either TypedArray, " + "string, or array-like object is expected in the data property.");
}
function getFactoryUrlProp(val$1) {
	if (typeof val$1 !== "string") {
		return null;
	}
	if (val$1.endsWith("/")) {
		return val$1;
	}
	throw new Error(`Invalid factory url: "${val$1}" must include trailing slash.`);
}
function onFn() {}
function wrapReason(ex) {
	if (ex instanceof AbortException || ex instanceof InvalidPDFException || ex instanceof PasswordException || ex instanceof ResponseException || ex instanceof UnknownErrorException) {
		return ex;
	}
	if (!(ex instanceof Error || typeof ex === "object" && ex !== null)) {
		unreachable("wrapReason: Expected \"reason\" to be a (possibly cloned) Error.");
	}
	switch (ex.name) {
		case "AbortException": return new AbortException(ex.message);
		case "InvalidPDFException": return new InvalidPDFException(ex.message);
		case "PasswordException": return new PasswordException(ex.message, ex.code);
		case "ResponseException": return new ResponseException(ex.message, ex.status, ex.missing);
		case "UnknownErrorException": return new UnknownErrorException(ex.message, ex.details);
	}
	return new UnknownErrorException(ex.message, ex.toString());
}
async function node_utils_fetchData(url) {
	const fs = process.getBuiltinModule("fs");
	const data = await fs.promises.readFile(url);
	return new Uint8Array(data);
}
function expandBBox(array, index, minX, minY, maxX, maxY) {
	array[index * 4 + 0] = Math.min(array[index * 4 + 0], minX);
	array[index * 4 + 1] = Math.min(array[index * 4 + 1], minY);
	array[index * 4 + 2] = Math.max(array[index * 4 + 2], maxX);
	array[index * 4 + 3] = Math.max(array[index * 4 + 3], maxY);
}
function applyBoundingBox(ctx, bbox) {
	if (!bbox) {
		return;
	}
	const width = bbox[2] - bbox[0];
	const height = bbox[3] - bbox[1];
	const region = new Path2D();
	region.rect(bbox[0], bbox[1], width, height);
	ctx.clip(region);
}
function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {
	const coords = context.coords, colors = context.colors;
	const bytes = data.data, rowSize = data.width * 4;
	let tmp;
	if (coords[p1 + 1] > coords[p2 + 1]) {
		tmp = p1;
		p1 = p2;
		p2 = tmp;
		tmp = c1;
		c1 = c2;
		c2 = tmp;
	}
	if (coords[p2 + 1] > coords[p3 + 1]) {
		tmp = p2;
		p2 = p3;
		p3 = tmp;
		tmp = c2;
		c2 = c3;
		c3 = tmp;
	}
	if (coords[p1 + 1] > coords[p2 + 1]) {
		tmp = p1;
		p1 = p2;
		p2 = tmp;
		tmp = c1;
		c1 = c2;
		c2 = tmp;
	}
	const x1 = (coords[p1] + context.offsetX) * context.scaleX;
	const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;
	const x2 = (coords[p2] + context.offsetX) * context.scaleX;
	const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;
	const x3 = (coords[p3] + context.offsetX) * context.scaleX;
	const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;
	if (y1 >= y3) {
		return;
	}
	const c1r = colors[c1], c1g = colors[c1 + 1], c1b = colors[c1 + 2];
	const c2r = colors[c2], c2g = colors[c2 + 1], c2b = colors[c2 + 2];
	const c3r = colors[c3], c3g = colors[c3 + 1], c3b = colors[c3 + 2];
	const minY = Math.round(y1), maxY = Math.round(y3);
	let xa, car, cag, cab;
	let xb, cbr, cbg, cbb;
	for (let y$3 = minY; y$3 <= maxY; y$3++) {
		if (y$3 < y2) {
			const k$3 = y$3 < y1 ? 0 : (y1 - y$3) / (y1 - y2);
			xa = x1 - (x1 - x2) * k$3;
			car = c1r - (c1r - c2r) * k$3;
			cag = c1g - (c1g - c2g) * k$3;
			cab = c1b - (c1b - c2b) * k$3;
		} else {
			let k$3;
			if (y$3 > y3) {
				k$3 = 1;
			} else if (y2 === y3) {
				k$3 = 0;
			} else {
				k$3 = (y2 - y$3) / (y2 - y3);
			}
			xa = x2 - (x2 - x3) * k$3;
			car = c2r - (c2r - c3r) * k$3;
			cag = c2g - (c2g - c3g) * k$3;
			cab = c2b - (c2b - c3b) * k$3;
		}
		let k$2;
		if (y$3 < y1) {
			k$2 = 0;
		} else if (y$3 > y3) {
			k$2 = 1;
		} else {
			k$2 = (y1 - y$3) / (y1 - y3);
		}
		xb = x1 - (x1 - x3) * k$2;
		cbr = c1r - (c1r - c3r) * k$2;
		cbg = c1g - (c1g - c3g) * k$2;
		cbb = c1b - (c1b - c3b) * k$2;
		const x1_ = Math.round(Math.min(xa, xb));
		const x2_ = Math.round(Math.max(xa, xb));
		let j$2 = rowSize * y$3 + x1_ * 4;
		for (let x$2 = x1_; x$2 <= x2_; x$2++) {
			k$2 = (xa - x$2) / (xa - xb);
			if (k$2 < 0) {
				k$2 = 0;
			} else if (k$2 > 1) {
				k$2 = 1;
			}
			bytes[j$2++] = car - (car - cbr) * k$2 | 0;
			bytes[j$2++] = cag - (cag - cbg) * k$2 | 0;
			bytes[j$2++] = cab - (cab - cbb) * k$2 | 0;
			bytes[j$2++] = 255;
		}
	}
}
function drawFigure(data, figure, context) {
	const ps = figure.coords;
	const cs = figure.colors;
	let i$7, ii;
	switch (figure.type) {
		case MeshFigureType.LATTICE:
			const verticesPerRow = figure.verticesPerRow;
			const rows = Math.floor(ps.length / verticesPerRow) - 1;
			const cols = verticesPerRow - 1;
			for (i$7 = 0; i$7 < rows; i$7++) {
				let q$2 = i$7 * verticesPerRow;
				for (let j$2 = 0; j$2 < cols; j$2++, q$2++) {
					drawTriangle(data, context, ps[q$2], ps[q$2 + 1], ps[q$2 + verticesPerRow], cs[q$2], cs[q$2 + 1], cs[q$2 + verticesPerRow]);
					drawTriangle(data, context, ps[q$2 + verticesPerRow + 1], ps[q$2 + 1], ps[q$2 + verticesPerRow], cs[q$2 + verticesPerRow + 1], cs[q$2 + 1], cs[q$2 + verticesPerRow]);
				}
			}
			break;
		case MeshFigureType.TRIANGLES:
			for (i$7 = 0, ii = ps.length; i$7 < ii; i$7 += 3) {
				drawTriangle(data, context, ps[i$7], ps[i$7 + 1], ps[i$7 + 2], cs[i$7], cs[i$7 + 1], cs[i$7 + 2]);
			}
			break;
		default: throw new Error("illegal figure");
	}
}
function getShadingPattern(IR) {
	switch (IR[0]) {
		case "RadialAxial": return new RadialAxialShadingPattern(IR);
		case "Mesh": return new MeshShadingPattern(IR);
		case "Dummy": return new DummyShadingPattern();
	}
	throw new Error(`Unknown IR type: ${IR[0]}`);
}
function convertToRGBA(params) {
	switch (params.kind) {
		case ImageKind.GRAYSCALE_1BPP: return convertBlackAndWhiteToRGBA(params);
		case ImageKind.RGB_24BPP: return convertRGBToRGBA(params);
	}
	return null;
}
function convertBlackAndWhiteToRGBA({ src, srcPos = 0, dest, width, height, nonBlackColor = 4294967295, inverseDecode = false }) {
	const black = util_FeatureTest.isLittleEndian ? 4278190080 : 255;
	const [zeroMapping, oneMapping] = inverseDecode ? [nonBlackColor, black] : [black, nonBlackColor];
	const widthInSource = width >> 3;
	const widthRemainder = width & 7;
	const srcLength = src.length;
	dest = new Uint32Array(dest.buffer);
	let destPos = 0;
	for (let i$7 = 0; i$7 < height; i$7++) {
		for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {
			const elem$1 = srcPos < srcLength ? src[srcPos] : 255;
			dest[destPos++] = elem$1 & 128 ? oneMapping : zeroMapping;
			dest[destPos++] = elem$1 & 64 ? oneMapping : zeroMapping;
			dest[destPos++] = elem$1 & 32 ? oneMapping : zeroMapping;
			dest[destPos++] = elem$1 & 16 ? oneMapping : zeroMapping;
			dest[destPos++] = elem$1 & 8 ? oneMapping : zeroMapping;
			dest[destPos++] = elem$1 & 4 ? oneMapping : zeroMapping;
			dest[destPos++] = elem$1 & 2 ? oneMapping : zeroMapping;
			dest[destPos++] = elem$1 & 1 ? oneMapping : zeroMapping;
		}
		if (widthRemainder === 0) {
			continue;
		}
		const elem = srcPos < srcLength ? src[srcPos++] : 255;
		for (let j$2 = 0; j$2 < widthRemainder; j$2++) {
			dest[destPos++] = elem & 1 << 7 - j$2 ? oneMapping : zeroMapping;
		}
	}
	return {
		srcPos,
		destPos
	};
}
function convertRGBToRGBA({ src, srcPos = 0, dest, destPos = 0, width, height }) {
	let i$7 = 0;
	const len = width * height * 3;
	const len32 = len >> 2;
	const src32 = new Uint32Array(src.buffer, srcPos, len32);
	if (FeatureTest.isLittleEndian) {
		for (; i$7 < len32 - 2; i$7 += 3, destPos += 4) {
			const s1 = src32[i$7];
			const s2 = src32[i$7 + 1];
			const s3 = src32[i$7 + 2];
			dest[destPos] = s1 | 4278190080;
			dest[destPos + 1] = s1 >>> 24 | s2 << 8 | 4278190080;
			dest[destPos + 2] = s2 >>> 16 | s3 << 16 | 4278190080;
			dest[destPos + 3] = s3 >>> 8 | 4278190080;
		}
		for (let j$2 = i$7 * 4, jj = srcPos + len; j$2 < jj; j$2 += 3) {
			dest[destPos++] = src[j$2] | src[j$2 + 1] << 8 | src[j$2 + 2] << 16 | 4278190080;
		}
	} else {
		for (; i$7 < len32 - 2; i$7 += 3, destPos += 4) {
			const s1 = src32[i$7];
			const s2 = src32[i$7 + 1];
			const s3 = src32[i$7 + 2];
			dest[destPos] = s1 | 255;
			dest[destPos + 1] = s1 << 24 | s2 >>> 8 | 255;
			dest[destPos + 2] = s2 << 16 | s3 >>> 16 | 255;
			dest[destPos + 3] = s3 << 8 | 255;
		}
		for (let j$2 = i$7 * 4, jj = srcPos + len; j$2 < jj; j$2 += 3) {
			dest[destPos++] = src[j$2] << 24 | src[j$2 + 1] << 16 | src[j$2 + 2] << 8 | 255;
		}
	}
	return {
		srcPos: srcPos + len,
		destPos
	};
}
function grayToRGBA(src, dest) {
	if (FeatureTest.isLittleEndian) {
		for (let i$7 = 0, ii = src.length; i$7 < ii; i$7++) {
			dest[i$7] = src[i$7] * 65793 | 4278190080;
		}
	} else {
		for (let i$7 = 0, ii = src.length; i$7 < ii; i$7++) {
			dest[i$7] = src[i$7] * 16843008 | 255;
		}
	}
}
function mirrorContextOperations(ctx, destCtx) {
	if (ctx._removeMirroring) {
		throw new Error("Context is already forwarding operations.");
	}
	ctx.__originalSave = ctx.save;
	ctx.__originalRestore = ctx.restore;
	ctx.__originalRotate = ctx.rotate;
	ctx.__originalScale = ctx.scale;
	ctx.__originalTranslate = ctx.translate;
	ctx.__originalTransform = ctx.transform;
	ctx.__originalSetTransform = ctx.setTransform;
	ctx.__originalResetTransform = ctx.resetTransform;
	ctx.__originalClip = ctx.clip;
	ctx.__originalMoveTo = ctx.moveTo;
	ctx.__originalLineTo = ctx.lineTo;
	ctx.__originalBezierCurveTo = ctx.bezierCurveTo;
	ctx.__originalRect = ctx.rect;
	ctx.__originalClosePath = ctx.closePath;
	ctx.__originalBeginPath = ctx.beginPath;
	ctx._removeMirroring = () => {
		ctx.save = ctx.__originalSave;
		ctx.restore = ctx.__originalRestore;
		ctx.rotate = ctx.__originalRotate;
		ctx.scale = ctx.__originalScale;
		ctx.translate = ctx.__originalTranslate;
		ctx.transform = ctx.__originalTransform;
		ctx.setTransform = ctx.__originalSetTransform;
		ctx.resetTransform = ctx.__originalResetTransform;
		ctx.clip = ctx.__originalClip;
		ctx.moveTo = ctx.__originalMoveTo;
		ctx.lineTo = ctx.__originalLineTo;
		ctx.bezierCurveTo = ctx.__originalBezierCurveTo;
		ctx.rect = ctx.__originalRect;
		ctx.closePath = ctx.__originalClosePath;
		ctx.beginPath = ctx.__originalBeginPath;
		delete ctx._removeMirroring;
	};
	ctx.save = function() {
		destCtx.save();
		this.__originalSave();
	};
	ctx.restore = function() {
		destCtx.restore();
		this.__originalRestore();
	};
	ctx.translate = function(x$2, y$3) {
		destCtx.translate(x$2, y$3);
		this.__originalTranslate(x$2, y$3);
	};
	ctx.scale = function(x$2, y$3) {
		destCtx.scale(x$2, y$3);
		this.__originalScale(x$2, y$3);
	};
	ctx.transform = function(a$2, b$3, c$7, d$5, e$10, f$4) {
		destCtx.transform(a$2, b$3, c$7, d$5, e$10, f$4);
		this.__originalTransform(a$2, b$3, c$7, d$5, e$10, f$4);
	};
	ctx.setTransform = function(a$2, b$3, c$7, d$5, e$10, f$4) {
		destCtx.setTransform(a$2, b$3, c$7, d$5, e$10, f$4);
		this.__originalSetTransform(a$2, b$3, c$7, d$5, e$10, f$4);
	};
	ctx.resetTransform = function() {
		destCtx.resetTransform();
		this.__originalResetTransform();
	};
	ctx.rotate = function(angle) {
		destCtx.rotate(angle);
		this.__originalRotate(angle);
	};
	ctx.clip = function(rule) {
		destCtx.clip(rule);
		this.__originalClip(rule);
	};
	ctx.moveTo = function(x$2, y$3) {
		destCtx.moveTo(x$2, y$3);
		this.__originalMoveTo(x$2, y$3);
	};
	ctx.lineTo = function(x$2, y$3) {
		destCtx.lineTo(x$2, y$3);
		this.__originalLineTo(x$2, y$3);
	};
	ctx.bezierCurveTo = function(cp1x, cp1y, cp2x, cp2y, x$2, y$3) {
		destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x$2, y$3);
		this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x$2, y$3);
	};
	ctx.rect = function(x$2, y$3, width, height) {
		destCtx.rect(x$2, y$3, width, height);
		this.__originalRect(x$2, y$3, width, height);
	};
	ctx.closePath = function() {
		destCtx.closePath();
		this.__originalClosePath();
	};
	ctx.beginPath = function() {
		destCtx.beginPath();
		this.__originalBeginPath();
	};
}
function drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) {
	const [a$2, b$3, c$7, d$5, tx, ty] = getCurrentTransform(ctx);
	if (b$3 === 0 && c$7 === 0) {
		const tlX = destX * a$2 + tx;
		const rTlX = Math.round(tlX);
		const tlY = destY * d$5 + ty;
		const rTlY = Math.round(tlY);
		const brX = (destX + destW) * a$2 + tx;
		const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;
		const brY = (destY + destH) * d$5 + ty;
		const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;
		ctx.setTransform(Math.sign(a$2), 0, 0, Math.sign(d$5), rTlX, rTlY);
		ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight);
		ctx.setTransform(a$2, b$3, c$7, d$5, tx, ty);
		return [rWidth, rHeight];
	}
	if (a$2 === 0 && d$5 === 0) {
		const tlX = destY * c$7 + tx;
		const rTlX = Math.round(tlX);
		const tlY = destX * b$3 + ty;
		const rTlY = Math.round(tlY);
		const brX = (destY + destH) * c$7 + tx;
		const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;
		const brY = (destX + destW) * b$3 + ty;
		const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;
		ctx.setTransform(0, Math.sign(b$3), Math.sign(c$7), 0, rTlX, rTlY);
		ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth);
		ctx.setTransform(a$2, b$3, c$7, d$5, tx, ty);
		return [rHeight, rWidth];
	}
	ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH);
	const scaleX = Math.hypot(a$2, b$3);
	const scaleY = Math.hypot(c$7, d$5);
	return [scaleX * destW, scaleY * destH];
}
function putBinaryImageData(ctx, imgData) {
	if (imgData instanceof ImageData) {
		ctx.putImageData(imgData, 0, 0);
		return;
	}
	const height = imgData.height, width = imgData.width;
	const partialChunkHeight = height % FULL_CHUNK_HEIGHT;
	const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;
	const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;
	const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);
	let srcPos = 0, destPos;
	const src = imgData.data;
	const dest = chunkImgData.data;
	let i$7, j$2, thisChunkHeight, elemsInThisChunk;
	if (imgData.kind === util_ImageKind.GRAYSCALE_1BPP) {
		const srcLength = src.byteLength;
		const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);
		const dest32DataLength = dest32.length;
		const fullSrcDiff = width + 7 >> 3;
		const white = 4294967295;
		const black = util_FeatureTest.isLittleEndian ? 4278190080 : 255;
		for (i$7 = 0; i$7 < totalChunks; i$7++) {
			thisChunkHeight = i$7 < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;
			destPos = 0;
			for (j$2 = 0; j$2 < thisChunkHeight; j$2++) {
				const srcDiff = srcLength - srcPos;
				let k$2 = 0;
				const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;
				const kEndUnrolled = kEnd & ~7;
				let mask = 0;
				let srcByte = 0;
				for (; k$2 < kEndUnrolled; k$2 += 8) {
					srcByte = src[srcPos++];
					dest32[destPos++] = srcByte & 128 ? white : black;
					dest32[destPos++] = srcByte & 64 ? white : black;
					dest32[destPos++] = srcByte & 32 ? white : black;
					dest32[destPos++] = srcByte & 16 ? white : black;
					dest32[destPos++] = srcByte & 8 ? white : black;
					dest32[destPos++] = srcByte & 4 ? white : black;
					dest32[destPos++] = srcByte & 2 ? white : black;
					dest32[destPos++] = srcByte & 1 ? white : black;
				}
				for (; k$2 < kEnd; k$2++) {
					if (mask === 0) {
						srcByte = src[srcPos++];
						mask = 128;
					}
					dest32[destPos++] = srcByte & mask ? white : black;
					mask >>= 1;
				}
			}
			while (destPos < dest32DataLength) {
				dest32[destPos++] = 0;
			}
			ctx.putImageData(chunkImgData, 0, i$7 * FULL_CHUNK_HEIGHT);
		}
	} else if (imgData.kind === util_ImageKind.RGBA_32BPP) {
		j$2 = 0;
		elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;
		for (i$7 = 0; i$7 < fullChunks; i$7++) {
			dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));
			srcPos += elemsInThisChunk;
			ctx.putImageData(chunkImgData, 0, j$2);
			j$2 += FULL_CHUNK_HEIGHT;
		}
		if (i$7 < totalChunks) {
			elemsInThisChunk = width * partialChunkHeight * 4;
			dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));
			ctx.putImageData(chunkImgData, 0, j$2);
		}
	} else if (imgData.kind === util_ImageKind.RGB_24BPP) {
		thisChunkHeight = FULL_CHUNK_HEIGHT;
		elemsInThisChunk = width * thisChunkHeight;
		for (i$7 = 0; i$7 < totalChunks; i$7++) {
			if (i$7 >= fullChunks) {
				thisChunkHeight = partialChunkHeight;
				elemsInThisChunk = width * thisChunkHeight;
			}
			destPos = 0;
			for (j$2 = elemsInThisChunk; j$2--;) {
				dest[destPos++] = src[srcPos++];
				dest[destPos++] = src[srcPos++];
				dest[destPos++] = src[srcPos++];
				dest[destPos++] = 255;
			}
			ctx.putImageData(chunkImgData, 0, i$7 * FULL_CHUNK_HEIGHT);
		}
	} else {
		throw new Error(`bad image kind: ${imgData.kind}`);
	}
}
function putBinaryImageMask(ctx, imgData) {
	if (imgData.bitmap) {
		ctx.drawImage(imgData.bitmap, 0, 0);
		return;
	}
	const height = imgData.height, width = imgData.width;
	const partialChunkHeight = height % FULL_CHUNK_HEIGHT;
	const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;
	const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;
	const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);
	let srcPos = 0;
	const src = imgData.data;
	const dest = chunkImgData.data;
	for (let i$7 = 0; i$7 < totalChunks; i$7++) {
		const thisChunkHeight = i$7 < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;
		({srcPos} = convertBlackAndWhiteToRGBA({
			src,
			srcPos,
			dest,
			width,
			height: thisChunkHeight,
			nonBlackColor: 0
		}));
		ctx.putImageData(chunkImgData, 0, i$7 * FULL_CHUNK_HEIGHT);
	}
}
function copyCtxState(sourceCtx, destCtx) {
	const properties$1 = [
		"strokeStyle",
		"fillStyle",
		"fillRule",
		"globalAlpha",
		"lineWidth",
		"lineCap",
		"lineJoin",
		"miterLimit",
		"globalCompositeOperation",
		"font",
		"filter"
	];
	for (const property of properties$1) {
		if (sourceCtx[property] !== undefined) {
			destCtx[property] = sourceCtx[property];
		}
	}
	if (sourceCtx.setLineDash !== undefined) {
		destCtx.setLineDash(sourceCtx.getLineDash());
		destCtx.lineDashOffset = sourceCtx.lineDashOffset;
	}
}
function resetCtxToDefault(ctx) {
	ctx.strokeStyle = ctx.fillStyle = "#000000";
	ctx.fillRule = "nonzero";
	ctx.globalAlpha = 1;
	ctx.lineWidth = 1;
	ctx.lineCap = "butt";
	ctx.lineJoin = "miter";
	ctx.miterLimit = 10;
	ctx.globalCompositeOperation = "source-over";
	ctx.font = "10px sans-serif";
	if (ctx.setLineDash !== undefined) {
		ctx.setLineDash([]);
		ctx.lineDashOffset = 0;
	}
	const { filter } = ctx;
	if (filter !== "none" && filter !== "") {
		ctx.filter = "none";
	}
}
function getImageSmoothingEnabled(transform, interpolate) {
	if (interpolate) {
		return true;
	}
	Util.singularValueDecompose2dScale(transform, XY);
	const actualScale = Math.fround(OutputScale.pixelRatio * PixelsPerInch.PDF_TO_CSS_UNITS);
	return XY[0] <= actualScale && XY[1] <= actualScale;
}
function getFilenameFromContentDispositionHeader(contentDisposition) {
	let needsEncodingFixup = true;
	let tmp = toParamRegExp("filename\\*", "i").exec(contentDisposition);
	if (tmp) {
		tmp = tmp[1];
		let filename = rfc2616unquote(tmp);
		filename = unescape(filename);
		filename = rfc5987decode(filename);
		filename = rfc2047decode(filename);
		return fixupEncoding(filename);
	}
	tmp = rfc2231getparam(contentDisposition);
	if (tmp) {
		const filename = rfc2047decode(tmp);
		return fixupEncoding(filename);
	}
	tmp = toParamRegExp("filename", "i").exec(contentDisposition);
	if (tmp) {
		tmp = tmp[1];
		let filename = rfc2616unquote(tmp);
		filename = rfc2047decode(filename);
		return fixupEncoding(filename);
	}
	function toParamRegExp(attributePattern, flags) {
		return new RegExp("(?:^|;)\\s*" + attributePattern + "\\s*=\\s*" + "(" + "[^\";\\s][^;\\s]*" + "|" + "\"(?:[^\"\\\\]|\\\\\"?)+\"?" + ")", flags);
	}
	function textdecode(encoding, value) {
		if (encoding) {
			if (!/^[\x00-\xFF]+$/.test(value)) {
				return value;
			}
			try {
				const decoder = new TextDecoder(encoding, { fatal: true });
				const buffer = stringToBytes(value);
				value = decoder.decode(buffer);
				needsEncodingFixup = false;
			} catch {}
		}
		return value;
	}
	function fixupEncoding(value) {
		if (needsEncodingFixup && /[\x80-\xff]/.test(value)) {
			value = textdecode("utf-8", value);
			if (needsEncodingFixup) {
				value = textdecode("iso-8859-1", value);
			}
		}
		return value;
	}
	function rfc2231getparam(contentDispositionStr) {
		const matches = [];
		let match;
		const iter = toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)", "ig");
		while ((match = iter.exec(contentDispositionStr)) !== null) {
			let [, n$9, quot, part] = match;
			n$9 = parseInt(n$9, 10);
			if (n$9 in matches) {
				if (n$9 === 0) {
					break;
				}
				continue;
			}
			matches[n$9] = [quot, part];
		}
		const parts = [];
		for (let n$9 = 0; n$9 < matches.length; ++n$9) {
			if (!(n$9 in matches)) {
				break;
			}
			let [quot, part] = matches[n$9];
			part = rfc2616unquote(part);
			if (quot) {
				part = unescape(part);
				if (n$9 === 0) {
					part = rfc5987decode(part);
				}
			}
			parts.push(part);
		}
		return parts.join("");
	}
	function rfc2616unquote(value) {
		if (value.startsWith("\"")) {
			const parts = value.slice(1).split("\\\"");
			for (let i$7 = 0; i$7 < parts.length; ++i$7) {
				const quotindex = parts[i$7].indexOf("\"");
				if (quotindex !== -1) {
					parts[i$7] = parts[i$7].slice(0, quotindex);
					parts.length = i$7 + 1;
				}
				parts[i$7] = parts[i$7].replaceAll(/\\(.)/g, "$1");
			}
			value = parts.join("\"");
		}
		return value;
	}
	function rfc5987decode(extvalue) {
		const encodingend = extvalue.indexOf("'");
		if (encodingend === -1) {
			return extvalue;
		}
		const encoding = extvalue.slice(0, encodingend);
		const langvalue = extvalue.slice(encodingend + 1);
		const value = langvalue.replace(/^[^']*'/, "");
		return textdecode(encoding, value);
	}
	function rfc2047decode(value) {
		if (!value.startsWith("=?") || /[\x00-\x19\x80-\xff]/.test(value)) {
			return value;
		}
		return value.replaceAll(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function(matches, charset, encoding, text$2) {
			if (encoding === "q" || encoding === "Q") {
				text$2 = text$2.replaceAll("_", " ");
				text$2 = text$2.replaceAll(/=([0-9a-fA-F]{2})/g, function(match, hex) {
					return String.fromCharCode(parseInt(hex, 16));
				});
				return textdecode(charset, text$2);
			}
			try {
				text$2 = atob(text$2);
			} catch {}
			return textdecode(charset, text$2);
		});
	}
	return "";
}
function createHeaders(isHttp, httpHeaders) {
	const headers = new Headers();
	if (!isHttp || !httpHeaders || typeof httpHeaders !== "object") {
		return headers;
	}
	for (const key in httpHeaders) {
		const val$1 = httpHeaders[key];
		if (val$1 !== undefined) {
			headers.append(key, val$1);
		}
	}
	return headers;
}
function getResponseOrigin(url) {
	return URL.parse(url)?.origin ?? null;
}
function validateRangeRequestCapabilities({ responseHeaders, isHttp, rangeChunkSize, disableRange }) {
	const returnValues = {
		allowRangeRequests: false,
		suggestedLength: undefined
	};
	const length = parseInt(responseHeaders.get("Content-Length"), 10);
	if (!Number.isInteger(length)) {
		return returnValues;
	}
	returnValues.suggestedLength = length;
	if (length <= 2 * rangeChunkSize) {
		return returnValues;
	}
	if (disableRange || !isHttp) {
		return returnValues;
	}
	if (responseHeaders.get("Accept-Ranges") !== "bytes") {
		return returnValues;
	}
	const contentEncoding = responseHeaders.get("Content-Encoding") || "identity";
	if (contentEncoding !== "identity") {
		return returnValues;
	}
	returnValues.allowRangeRequests = true;
	return returnValues;
}
function extractFilenameFromHeader(responseHeaders) {
	const contentDisposition = responseHeaders.get("Content-Disposition");
	if (contentDisposition) {
		let filename = getFilenameFromContentDispositionHeader(contentDisposition);
		if (filename.includes("%")) {
			try {
				filename = decodeURIComponent(filename);
			} catch {}
		}
		if (isPdfFile(filename)) {
			return filename;
		}
	}
	return null;
}
function createResponseError(status, url) {
	return new ResponseException(`Unexpected server response (${status}) while retrieving PDF "${url}".`, status, status === 404 || status === 0 && url.startsWith("file:"));
}
function validateResponseStatus(status) {
	return status === 200 || status === 206;
}
function createFetchOptions(headers, withCredentials, abortController) {
	return {
		method: "GET",
		headers,
		signal: abortController.signal,
		mode: "cors",
		credentials: withCredentials ? "include" : "same-origin",
		redirect: "follow"
	};
}
function getArrayBuffer(val$1) {
	if (val$1 instanceof Uint8Array) {
		return val$1.buffer;
	}
	if (val$1 instanceof ArrayBuffer) {
		return val$1;
	}
	warn$2(`getArrayBuffer - unexpected data format: ${val$1}`);
	return new Uint8Array(val$1).buffer;
}
function network_getArrayBuffer(xhr) {
	const data = xhr.response;
	if (typeof data !== "string") {
		return data;
	}
	return stringToBytes(data).buffer;
}
function parseUrlOrPath(sourceUrl) {
	if (urlRegex.test(sourceUrl)) {
		return new URL(sourceUrl);
	}
	const url = process.getBuiltinModule("url");
	return new URL(url.pathToFileURL(sourceUrl));
}
function getDocument(src = {}) {
	if (typeof src === "string" || src instanceof URL) {
		src = { url: src };
	} else if (src instanceof ArrayBuffer || ArrayBuffer.isView(src)) {
		src = { data: src };
	}
	const task = new PDFDocumentLoadingTask();
	const { docId } = task;
	const url = src.url ? getUrlProp(src.url) : null;
	const data = src.data ? getDataProp(src.data) : null;
	const httpHeaders = src.httpHeaders || null;
	const withCredentials = src.withCredentials === true;
	const password = src.password ?? null;
	const rangeTransport = src.range instanceof PDFDataRangeTransport ? src.range : null;
	const rangeChunkSize = Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0 ? src.rangeChunkSize : 2 ** 16;
	let worker = src.worker instanceof PDFWorker ? src.worker : null;
	const verbosity$1 = src.verbosity;
	const docBaseUrl = typeof src.docBaseUrl === "string" && !isDataScheme(src.docBaseUrl) ? src.docBaseUrl : null;
	const cMapUrl = getFactoryUrlProp(src.cMapUrl);
	const cMapPacked = src.cMapPacked !== false;
	const CMapReaderFactory = src.CMapReaderFactory || (isNodeJS ? NodeCMapReaderFactory : DOMCMapReaderFactory);
	const iccUrl = getFactoryUrlProp(src.iccUrl);
	const standardFontDataUrl = getFactoryUrlProp(src.standardFontDataUrl);
	const StandardFontDataFactory = src.StandardFontDataFactory || (isNodeJS ? NodeStandardFontDataFactory : DOMStandardFontDataFactory);
	const wasmUrl = getFactoryUrlProp(src.wasmUrl);
	const WasmFactory = src.WasmFactory || (isNodeJS ? NodeWasmFactory : DOMWasmFactory);
	const ignoreErrors = src.stopAtErrors !== true;
	const maxImageSize = Number.isInteger(src.maxImageSize) && src.maxImageSize > -1 ? src.maxImageSize : -1;
	const isEvalSupported$1 = src.isEvalSupported !== false;
	const isOffscreenCanvasSupported = typeof src.isOffscreenCanvasSupported === "boolean" ? src.isOffscreenCanvasSupported : !isNodeJS;
	const isImageDecoderSupported = typeof src.isImageDecoderSupported === "boolean" ? src.isImageDecoderSupported : !isNodeJS && (util_FeatureTest.platform.isFirefox || !globalThis.chrome);
	const canvasMaxAreaInBytes = Number.isInteger(src.canvasMaxAreaInBytes) ? src.canvasMaxAreaInBytes : -1;
	const disableFontFace = typeof src.disableFontFace === "boolean" ? src.disableFontFace : isNodeJS;
	const fontExtraProperties = src.fontExtraProperties === true;
	const enableXfa = src.enableXfa === true;
	const ownerDocument = src.ownerDocument || globalThis.document;
	const disableRange = src.disableRange === true;
	const disableStream = src.disableStream === true;
	const disableAutoFetch = src.disableAutoFetch === true;
	const pdfBug = src.pdfBug === true;
	const CanvasFactory = src.CanvasFactory || (isNodeJS ? NodeCanvasFactory : DOMCanvasFactory);
	const FilterFactory = src.FilterFactory || (isNodeJS ? NodeFilterFactory : DOMFilterFactory);
	const enableHWA = src.enableHWA === true;
	const useWasm = src.useWasm !== false;
	const length = rangeTransport ? rangeTransport.length : src.length ?? NaN;
	const useSystemFonts = typeof src.useSystemFonts === "boolean" ? src.useSystemFonts : !isNodeJS && !disableFontFace;
	const useWorkerFetch = typeof src.useWorkerFetch === "boolean" ? src.useWorkerFetch : !!(CMapReaderFactory === DOMCMapReaderFactory && StandardFontDataFactory === DOMStandardFontDataFactory && WasmFactory === DOMWasmFactory && cMapUrl && standardFontDataUrl && wasmUrl && isValidFetchUrl(cMapUrl, document.baseURI) && isValidFetchUrl(standardFontDataUrl, document.baseURI) && isValidFetchUrl(wasmUrl, document.baseURI));
	const styleElement = null;
	setVerbosityLevel(verbosity$1);
	const transportFactory = {
		canvasFactory: new CanvasFactory({
			ownerDocument,
			enableHWA
		}),
		filterFactory: new FilterFactory({
			docId,
			ownerDocument
		}),
		cMapReaderFactory: useWorkerFetch ? null : new CMapReaderFactory({
			baseUrl: cMapUrl,
			isCompressed: cMapPacked
		}),
		standardFontDataFactory: useWorkerFetch ? null : new StandardFontDataFactory({ baseUrl: standardFontDataUrl }),
		wasmFactory: useWorkerFetch ? null : new WasmFactory({ baseUrl: wasmUrl })
	};
	if (!worker) {
		worker = PDFWorker.create({
			verbosity: verbosity$1,
			port: GlobalWorkerOptions.workerPort
		});
		task._worker = worker;
	}
	const docParams = {
		docId,
		apiVersion: "5.4.394",
		data,
		password,
		disableAutoFetch,
		rangeChunkSize,
		length,
		docBaseUrl,
		enableXfa,
		evaluatorOptions: {
			maxImageSize,
			disableFontFace,
			ignoreErrors,
			isEvalSupported: isEvalSupported$1,
			isOffscreenCanvasSupported,
			isImageDecoderSupported,
			canvasMaxAreaInBytes,
			fontExtraProperties,
			useSystemFonts,
			useWasm,
			useWorkerFetch,
			cMapUrl,
			iccUrl,
			standardFontDataUrl,
			wasmUrl
		}
	};
	const transportParams = {
		ownerDocument,
		pdfBug,
		styleElement,
		loadingParams: {
			disableAutoFetch,
			enableXfa
		}
	};
	worker.promise.then(function() {
		if (task.destroyed) {
			throw new Error("Loading aborted");
		}
		if (worker.destroyed) {
			throw new Error("Worker was destroyed");
		}
		const workerIdPromise = worker.messageHandler.sendWithPromise("GetDocRequest", docParams, data ? [data.buffer] : null);
		let networkStream;
		if (rangeTransport) {
			networkStream = new PDFDataTransportStream(rangeTransport, {
				disableRange,
				disableStream
			});
		} else if (!data) {
			if (!url) {
				throw new Error("getDocument - no `url` parameter provided.");
			}
			const NetworkStream = isValidFetchUrl(url) ? PDFFetchStream : isNodeJS ? PDFNodeStream : PDFNetworkStream;
			networkStream = new NetworkStream({
				url,
				length,
				httpHeaders,
				withCredentials,
				rangeChunkSize,
				disableRange,
				disableStream
			});
		}
		return workerIdPromise.then((workerId) => {
			if (task.destroyed) {
				throw new Error("Loading aborted");
			}
			if (worker.destroyed) {
				throw new Error("Worker was destroyed");
			}
			const messageHandler = new MessageHandler(docId, workerId, worker.port);
			const transport = new WorkerTransport(messageHandler, task, networkStream, transportParams, transportFactory, enableHWA);
			task._transport = transport;
			messageHandler.send("Ready", null);
		});
	}).catch(task._capability.reject);
	return task;
}
function makeColorComp(n$9) {
	return Math.floor(Math.max(0, Math.min(1, n$9)) * 255).toString(16).padStart(2, "0");
}
function scaleAndClamp(x$2) {
	return Math.max(0, Math.min(255, 255 * x$2));
}
var __webpack_require__, __webpack_exports__, isNodeJS, FONT_IDENTITY_MATRIX, LINE_FACTOR, LINE_DESCENT_FACTOR, BASELINE_FACTOR, RenderingIntentFlag, AnnotationMode, AnnotationEditorPrefix, AnnotationEditorType, AnnotationEditorParamsType, PermissionFlag, MeshFigureType, TextRenderingMode, util_ImageKind, AnnotationType, AnnotationReplyType, AnnotationFlag, AnnotationFieldFlag, AnnotationBorderStyleType, AnnotationActionEventType, DocumentActionEventType, PageActionEventType, VerbosityLevel, OPS, DrawOPS, PasswordResponses, verbosity, BaseException, PasswordException, UnknownErrorException, InvalidPDFException, ResponseException, FormatError, AbortException, util_FeatureTest, hexNumbers, Util, PDFStringTranslateTable, NormalizeRegex, NormalizationMap, AnnotationPrefix, XfaText, XfaLayer, SVG_NS, PixelsPerInch, PageViewport, RenderingCancelledException, StatTimer, PDFDateString, OutputScale, SupportedImageMimeTypes, ColorScheme, CSSConstants, contrastCache, EditorToolbar, FloatingToolbar, CurrentPointers, IdManager, ImageManager, CommandManager, KeyboardManager, ColorManager, AnnotationEditorUIManager, AltText, Comment, TouchManager, AnnotationEditor, FakeEditor, SEED, MASK_HIGH, MASK_LOW, MurmurHash3_64, SerializableEmpty, AnnotationStorage, PrintAnnotationStorage, FontLoader, FontFaceObject, CssFontInfo, SystemFontInfo, FontInfo, PatternInfo, isRefProxy, isNameProxy, isValidExplicitDest, LoopbackPort, CallbackKind, StreamKind, MessageHandler, BaseCanvasFactory, DOMCanvasFactory, BaseCMapReaderFactory, DOMCMapReaderFactory, BaseFilterFactory, DOMFilterFactory, BaseStandardFontDataFactory, DOMStandardFontDataFactory, BaseWasmFactory, DOMWasmFactory, NodeFilterFactory, NodeCanvasFactory, NodeCMapReaderFactory, NodeStandardFontDataFactory, NodeWasmFactory, FORCED_DEPENDENCY_LABEL, floor, ceil, EMPTY_BBOX, BBoxReader, ensureDebugMetadata, CanvasDependencyTracker, CanvasNestedDependencyTracker, Dependencies, PathType, BaseShadingPattern, RadialAxialShadingPattern, MeshShadingPattern, DummyShadingPattern, PaintType, TilingPattern, MIN_FONT_SIZE, MAX_FONT_SIZE, EXECUTION_TIME, EXECUTION_STEPS, FULL_CHUNK_HEIGHT, SCALE_MATRIX, XY, MIN_MAX_INIT, CachedCanvases, CanvasExtraState, LINE_CAP_STYLES, LINE_JOIN_STYLES, NORMAL_CLIP, EO_CLIP, CanvasGraphics, GlobalWorkerOptions, Metadata, INTERNAL, OptionalContentGroup, OptionalContentConfig, PDFDataTransportStream, PDFDataTransportStreamReader, PDFDataTransportStreamRangeReader, PDFFetchStream, PDFFetchStreamReader, PDFFetchStreamRangeReader, OK_RESPONSE, PARTIAL_CONTENT_RESPONSE, NetworkManager, PDFNetworkStream, PDFNetworkStreamFullRequestReader, PDFNetworkStreamRangeRequestReader, urlRegex, PDFNodeStream, PDFNodeStreamFsFullReader, PDFNodeStreamFsRangeReader, INITIAL_DATA, PDFObjects, MAX_TEXT_DIVS_TO_RENDER, DEFAULT_FONT_SIZE, TextLayer, RENDERING_CANCELLED_TIMEOUT, PDFDocumentLoadingTask, PDFDataRangeTransport, PDFDocumentProxy, PDFPageProxy, PDFWorker, WorkerTransport, RenderTask, InternalRenderTask, version$4, build, ColorPicker, BasicColorPicker, ColorConverters, DateFormats, TimeFormats, BaseSVGFactory, DOMSVGFactory, annotation_layer_DEFAULT_FONT_SIZE, GetElementsByNameSet, TIMEZONE_OFFSET, AnnotationElementFactory, AnnotationElement, EditorAnnotationElement, LinkAnnotationElement, TextAnnotationElement, WidgetAnnotationElement, TextWidgetAnnotationElement, SignatureWidgetAnnotationElement, CheckboxWidgetAnnotationElement, RadioButtonWidgetAnnotationElement, PushButtonWidgetAnnotationElement, ChoiceWidgetAnnotationElement, PopupAnnotationElement, PopupElement, FreeTextAnnotationElement, LineAnnotationElement, SquareAnnotationElement, CircleAnnotationElement, PolylineAnnotationElement, PolygonAnnotationElement, CaretAnnotationElement, InkAnnotationElement, HighlightAnnotationElement, UnderlineAnnotationElement, SquigglyAnnotationElement, StrikeOutAnnotationElement, StampAnnotationElement, FileAttachmentAnnotationElement, AnnotationLayer, EOL_PATTERN, FreeTextEditor, Outline, FreeDrawOutliner, FreeDrawOutline, HighlightOutliner, HighlightOutline, FreeHighlightOutliner, FreeHighlightOutline, HighlightEditor, DrawingOptions, DrawingEditor, InkDrawOutliner, InkDrawOutline, InkDrawingOptions, InkEditor, ContourDrawOutline, BASE_HEADER_LENGTH, POINTS_PROPERTIES_NUMBER, SignatureExtractor, SignatureOptions, DrawnSignatureOptions, SignatureEditor, StampEditor, AnnotationEditorLayer, DrawLayer;
var init_pdf = __esmMin((() => {
	__webpack_require__ = {};
	(() => {
		__webpack_require__.d = (exports$1, definition) => {
			for (var key in definition) {
				if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports$1, key)) {
					Object.defineProperty(exports$1, key, {
						enumerable: true,
						get: definition[key]
					});
				}
			}
		};
	})();
	(() => {
		__webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);
	})();
	__webpack_exports__ = {};
	;
	isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser");
	FONT_IDENTITY_MATRIX = [
		.001,
		0,
		0,
		.001,
		0,
		0
	];
	LINE_FACTOR = 1.35;
	LINE_DESCENT_FACTOR = .35;
	BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;
	RenderingIntentFlag = {
		ANY: 1,
		DISPLAY: 2,
		PRINT: 4,
		SAVE: 8,
		ANNOTATIONS_FORMS: 16,
		ANNOTATIONS_STORAGE: 32,
		ANNOTATIONS_DISABLE: 64,
		IS_EDITING: 128,
		OPLIST: 256
	};
	AnnotationMode = {
		DISABLE: 0,
		ENABLE: 1,
		ENABLE_FORMS: 2,
		ENABLE_STORAGE: 3
	};
	AnnotationEditorPrefix = "pdfjs_internal_editor_";
	AnnotationEditorType = {
		DISABLE: -1,
		NONE: 0,
		FREETEXT: 3,
		HIGHLIGHT: 9,
		STAMP: 13,
		INK: 15,
		POPUP: 16,
		SIGNATURE: 101,
		COMMENT: 102
	};
	AnnotationEditorParamsType = {
		RESIZE: 1,
		CREATE: 2,
		FREETEXT_SIZE: 11,
		FREETEXT_COLOR: 12,
		FREETEXT_OPACITY: 13,
		INK_COLOR: 21,
		INK_THICKNESS: 22,
		INK_OPACITY: 23,
		HIGHLIGHT_COLOR: 31,
		HIGHLIGHT_THICKNESS: 32,
		HIGHLIGHT_FREE: 33,
		HIGHLIGHT_SHOW_ALL: 34,
		DRAW_STEP: 41
	};
	PermissionFlag = {
		PRINT: 4,
		MODIFY_CONTENTS: 8,
		COPY: 16,
		MODIFY_ANNOTATIONS: 32,
		FILL_INTERACTIVE_FORMS: 256,
		COPY_FOR_ACCESSIBILITY: 512,
		ASSEMBLE: 1024,
		PRINT_HIGH_QUALITY: 2048
	};
	MeshFigureType = {
		TRIANGLES: 1,
		LATTICE: 2,
		PATCH: 3
	};
	TextRenderingMode = {
		FILL: 0,
		STROKE: 1,
		FILL_STROKE: 2,
		INVISIBLE: 3,
		FILL_ADD_TO_PATH: 4,
		STROKE_ADD_TO_PATH: 5,
		FILL_STROKE_ADD_TO_PATH: 6,
		ADD_TO_PATH: 7,
		FILL_STROKE_MASK: 3,
		ADD_TO_PATH_FLAG: 4
	};
	util_ImageKind = {
		GRAYSCALE_1BPP: 1,
		RGB_24BPP: 2,
		RGBA_32BPP: 3
	};
	AnnotationType = {
		TEXT: 1,
		LINK: 2,
		FREETEXT: 3,
		LINE: 4,
		SQUARE: 5,
		CIRCLE: 6,
		POLYGON: 7,
		POLYLINE: 8,
		HIGHLIGHT: 9,
		UNDERLINE: 10,
		SQUIGGLY: 11,
		STRIKEOUT: 12,
		STAMP: 13,
		CARET: 14,
		INK: 15,
		POPUP: 16,
		FILEATTACHMENT: 17,
		SOUND: 18,
		MOVIE: 19,
		WIDGET: 20,
		SCREEN: 21,
		PRINTERMARK: 22,
		TRAPNET: 23,
		WATERMARK: 24,
		THREED: 25,
		REDACT: 26
	};
	AnnotationReplyType = {
		GROUP: "Group",
		REPLY: "R"
	};
	AnnotationFlag = {
		INVISIBLE: 1,
		HIDDEN: 2,
		PRINT: 4,
		NOZOOM: 8,
		NOROTATE: 16,
		NOVIEW: 32,
		READONLY: 64,
		LOCKED: 128,
		TOGGLENOVIEW: 256,
		LOCKEDCONTENTS: 512
	};
	AnnotationFieldFlag = {
		READONLY: 1,
		REQUIRED: 2,
		NOEXPORT: 4,
		MULTILINE: 4096,
		PASSWORD: 8192,
		NOTOGGLETOOFF: 16384,
		RADIO: 32768,
		PUSHBUTTON: 65536,
		COMBO: 131072,
		EDIT: 262144,
		SORT: 524288,
		FILESELECT: 1048576,
		MULTISELECT: 2097152,
		DONOTSPELLCHECK: 4194304,
		DONOTSCROLL: 8388608,
		COMB: 16777216,
		RICHTEXT: 33554432,
		RADIOSINUNISON: 33554432,
		COMMITONSELCHANGE: 67108864
	};
	AnnotationBorderStyleType = {
		SOLID: 1,
		DASHED: 2,
		BEVELED: 3,
		INSET: 4,
		UNDERLINE: 5
	};
	AnnotationActionEventType = {
		E: "Mouse Enter",
		X: "Mouse Exit",
		D: "Mouse Down",
		U: "Mouse Up",
		Fo: "Focus",
		Bl: "Blur",
		PO: "PageOpen",
		PC: "PageClose",
		PV: "PageVisible",
		PI: "PageInvisible",
		K: "Keystroke",
		F: "Format",
		V: "Validate",
		C: "Calculate"
	};
	DocumentActionEventType = {
		WC: "WillClose",
		WS: "WillSave",
		DS: "DidSave",
		WP: "WillPrint",
		DP: "DidPrint"
	};
	PageActionEventType = {
		O: "PageOpen",
		C: "PageClose"
	};
	VerbosityLevel = {
		ERRORS: 0,
		WARNINGS: 1,
		INFOS: 5
	};
	OPS = {
		dependency: 1,
		setLineWidth: 2,
		setLineCap: 3,
		setLineJoin: 4,
		setMiterLimit: 5,
		setDash: 6,
		setRenderingIntent: 7,
		setFlatness: 8,
		setGState: 9,
		save: 10,
		restore: 11,
		transform: 12,
		moveTo: 13,
		lineTo: 14,
		curveTo: 15,
		curveTo2: 16,
		curveTo3: 17,
		closePath: 18,
		rectangle: 19,
		stroke: 20,
		closeStroke: 21,
		fill: 22,
		eoFill: 23,
		fillStroke: 24,
		eoFillStroke: 25,
		closeFillStroke: 26,
		closeEOFillStroke: 27,
		endPath: 28,
		clip: 29,
		eoClip: 30,
		beginText: 31,
		endText: 32,
		setCharSpacing: 33,
		setWordSpacing: 34,
		setHScale: 35,
		setLeading: 36,
		setFont: 37,
		setTextRenderingMode: 38,
		setTextRise: 39,
		moveText: 40,
		setLeadingMoveText: 41,
		setTextMatrix: 42,
		nextLine: 43,
		showText: 44,
		showSpacedText: 45,
		nextLineShowText: 46,
		nextLineSetSpacingShowText: 47,
		setCharWidth: 48,
		setCharWidthAndBounds: 49,
		setStrokeColorSpace: 50,
		setFillColorSpace: 51,
		setStrokeColor: 52,
		setStrokeColorN: 53,
		setFillColor: 54,
		setFillColorN: 55,
		setStrokeGray: 56,
		setFillGray: 57,
		setStrokeRGBColor: 58,
		setFillRGBColor: 59,
		setStrokeCMYKColor: 60,
		setFillCMYKColor: 61,
		shadingFill: 62,
		beginInlineImage: 63,
		beginImageData: 64,
		endInlineImage: 65,
		paintXObject: 66,
		markPoint: 67,
		markPointProps: 68,
		beginMarkedContent: 69,
		beginMarkedContentProps: 70,
		endMarkedContent: 71,
		beginCompat: 72,
		endCompat: 73,
		paintFormXObjectBegin: 74,
		paintFormXObjectEnd: 75,
		beginGroup: 76,
		endGroup: 77,
		beginAnnotation: 80,
		endAnnotation: 81,
		paintImageMaskXObject: 83,
		paintImageMaskXObjectGroup: 84,
		paintImageXObject: 85,
		paintInlineImageXObject: 86,
		paintInlineImageXObjectGroup: 87,
		paintImageXObjectRepeat: 88,
		paintImageMaskXObjectRepeat: 89,
		paintSolidColorImageMask: 90,
		constructPath: 91,
		setStrokeTransparent: 92,
		setFillTransparent: 93,
		rawFillPath: 94
	};
	DrawOPS = {
		moveTo: 0,
		lineTo: 1,
		curveTo: 2,
		quadraticCurveTo: 3,
		closePath: 4
	};
	PasswordResponses = {
		NEED_PASSWORD: 1,
		INCORRECT_PASSWORD: 2
	};
	verbosity = VerbosityLevel.WARNINGS;
	BaseException = function BaseExceptionClosure() {
		function BaseException$1(message, name) {
			this.message = message;
			this.name = name;
		}
		BaseException$1.prototype = new Error();
		BaseException$1.constructor = BaseException$1;
		return BaseException$1;
	}();
	PasswordException = class extends BaseException {
		constructor(msg, code) {
			super(msg, "PasswordException");
			this.code = code;
		}
	};
	UnknownErrorException = class extends BaseException {
		constructor(msg, details) {
			super(msg, "UnknownErrorException");
			this.details = details;
		}
	};
	InvalidPDFException = class extends BaseException {
		constructor(msg) {
			super(msg, "InvalidPDFException");
		}
	};
	ResponseException = class extends BaseException {
		constructor(msg, status, missing) {
			super(msg, "ResponseException");
			this.status = status;
			this.missing = missing;
		}
	};
	FormatError = class extends BaseException {
		constructor(msg) {
			super(msg, "FormatError");
		}
	};
	AbortException = class extends BaseException {
		constructor(msg) {
			super(msg, "AbortException");
		}
	};
	util_FeatureTest = class {
		static get isLittleEndian() {
			return shadow(this, "isLittleEndian", isLittleEndian());
		}
		static get isEvalSupported() {
			return shadow(this, "isEvalSupported", isEvalSupported());
		}
		static get isOffscreenCanvasSupported() {
			return shadow(this, "isOffscreenCanvasSupported", typeof OffscreenCanvas !== "undefined");
		}
		static get isImageDecoderSupported() {
			return shadow(this, "isImageDecoderSupported", typeof ImageDecoder !== "undefined");
		}
		static get isFloat16ArraySupported() {
			return shadow(this, "isFloat16ArraySupported", typeof Float16Array !== "undefined");
		}
		static get isSanitizerSupported() {
			return shadow(this, "isSanitizerSupported", typeof Sanitizer !== "undefined");
		}
		static get platform() {
			const { platform, userAgent } = navigator;
			return shadow(this, "platform", {
				isAndroid: userAgent.includes("Android"),
				isLinux: platform.includes("Linux"),
				isMac: platform.includes("Mac"),
				isWindows: platform.includes("Win"),
				isFirefox: userAgent.includes("Firefox")
			});
		}
		static get isCSSRoundSupported() {
			return shadow(this, "isCSSRoundSupported", globalThis.CSS?.supports?.("width: round(1.5px, 1px)"));
		}
	};
	hexNumbers = Array.from(Array(256).keys(), (n$9) => n$9.toString(16).padStart(2, "0"));
	Util = class {
		static makeHexColor(r$10, g$1, b$3) {
			return `#${hexNumbers[r$10]}${hexNumbers[g$1]}${hexNumbers[b$3]}`;
		}
		static domMatrixToTransform(dm) {
			return [
				dm.a,
				dm.b,
				dm.c,
				dm.d,
				dm.e,
				dm.f
			];
		}
		static scaleMinMax(transform, minMax) {
			let temp;
			if (transform[0]) {
				if (transform[0] < 0) {
					temp = minMax[0];
					minMax[0] = minMax[2];
					minMax[2] = temp;
				}
				minMax[0] *= transform[0];
				minMax[2] *= transform[0];
				if (transform[3] < 0) {
					temp = minMax[1];
					minMax[1] = minMax[3];
					minMax[3] = temp;
				}
				minMax[1] *= transform[3];
				minMax[3] *= transform[3];
			} else {
				temp = minMax[0];
				minMax[0] = minMax[1];
				minMax[1] = temp;
				temp = minMax[2];
				minMax[2] = minMax[3];
				minMax[3] = temp;
				if (transform[1] < 0) {
					temp = minMax[1];
					minMax[1] = minMax[3];
					minMax[3] = temp;
				}
				minMax[1] *= transform[1];
				minMax[3] *= transform[1];
				if (transform[2] < 0) {
					temp = minMax[0];
					minMax[0] = minMax[2];
					minMax[2] = temp;
				}
				minMax[0] *= transform[2];
				minMax[2] *= transform[2];
			}
			minMax[0] += transform[4];
			minMax[1] += transform[5];
			minMax[2] += transform[4];
			minMax[3] += transform[5];
		}
		static transform(m1, m2) {
			return [
				m1[0] * m2[0] + m1[2] * m2[1],
				m1[1] * m2[0] + m1[3] * m2[1],
				m1[0] * m2[2] + m1[2] * m2[3],
				m1[1] * m2[2] + m1[3] * m2[3],
				m1[0] * m2[4] + m1[2] * m2[5] + m1[4],
				m1[1] * m2[4] + m1[3] * m2[5] + m1[5]
			];
		}
		static multiplyByDOMMatrix(m$3, md) {
			return [
				m$3[0] * md.a + m$3[2] * md.b,
				m$3[1] * md.a + m$3[3] * md.b,
				m$3[0] * md.c + m$3[2] * md.d,
				m$3[1] * md.c + m$3[3] * md.d,
				m$3[0] * md.e + m$3[2] * md.f + m$3[4],
				m$3[1] * md.e + m$3[3] * md.f + m$3[5]
			];
		}
		static applyTransform(p$3, m$3, pos = 0) {
			const p0 = p$3[pos];
			const p1 = p$3[pos + 1];
			p$3[pos] = p0 * m$3[0] + p1 * m$3[2] + m$3[4];
			p$3[pos + 1] = p0 * m$3[1] + p1 * m$3[3] + m$3[5];
		}
		static applyTransformToBezier(p$3, transform, pos = 0) {
			const m0 = transform[0];
			const m1 = transform[1];
			const m2 = transform[2];
			const m3 = transform[3];
			const m4 = transform[4];
			const m5 = transform[5];
			for (let i$7 = 0; i$7 < 6; i$7 += 2) {
				const pI = p$3[pos + i$7];
				const pI1 = p$3[pos + i$7 + 1];
				p$3[pos + i$7] = pI * m0 + pI1 * m2 + m4;
				p$3[pos + i$7 + 1] = pI * m1 + pI1 * m3 + m5;
			}
		}
		static applyInverseTransform(p$3, m$3) {
			const p0 = p$3[0];
			const p1 = p$3[1];
			const d$5 = m$3[0] * m$3[3] - m$3[1] * m$3[2];
			p$3[0] = (p0 * m$3[3] - p1 * m$3[2] + m$3[2] * m$3[5] - m$3[4] * m$3[3]) / d$5;
			p$3[1] = (-p0 * m$3[1] + p1 * m$3[0] + m$3[4] * m$3[1] - m$3[5] * m$3[0]) / d$5;
		}
		static axialAlignedBoundingBox(rect, transform, output) {
			const m0 = transform[0];
			const m1 = transform[1];
			const m2 = transform[2];
			const m3 = transform[3];
			const m4 = transform[4];
			const m5 = transform[5];
			const r0 = rect[0];
			const r1 = rect[1];
			const r2 = rect[2];
			const r3 = rect[3];
			let a0 = m0 * r0 + m4;
			let a2 = a0;
			let a1 = m0 * r2 + m4;
			let a3 = a1;
			let b0 = m3 * r1 + m5;
			let b2 = b0;
			let b1 = m3 * r3 + m5;
			let b3 = b1;
			if (m1 !== 0 || m2 !== 0) {
				const m1r0 = m1 * r0;
				const m1r2 = m1 * r2;
				const m2r1 = m2 * r1;
				const m2r3 = m2 * r3;
				a0 += m2r1;
				a3 += m2r1;
				a1 += m2r3;
				a2 += m2r3;
				b0 += m1r0;
				b3 += m1r0;
				b1 += m1r2;
				b2 += m1r2;
			}
			output[0] = Math.min(output[0], a0, a1, a2, a3);
			output[1] = Math.min(output[1], b0, b1, b2, b3);
			output[2] = Math.max(output[2], a0, a1, a2, a3);
			output[3] = Math.max(output[3], b0, b1, b2, b3);
		}
		static inverseTransform(m$3) {
			const d$5 = m$3[0] * m$3[3] - m$3[1] * m$3[2];
			return [
				m$3[3] / d$5,
				-m$3[1] / d$5,
				-m$3[2] / d$5,
				m$3[0] / d$5,
				(m$3[2] * m$3[5] - m$3[4] * m$3[3]) / d$5,
				(m$3[4] * m$3[1] - m$3[5] * m$3[0]) / d$5
			];
		}
		static singularValueDecompose2dScale(matrix, output) {
			const m0 = matrix[0];
			const m1 = matrix[1];
			const m2 = matrix[2];
			const m3 = matrix[3];
			const a$2 = m0 ** 2 + m1 ** 2;
			const b$3 = m0 * m2 + m1 * m3;
			const c$7 = m2 ** 2 + m3 ** 2;
			const first = (a$2 + c$7) / 2;
			const second = Math.sqrt(first ** 2 - (a$2 * c$7 - b$3 ** 2));
			output[0] = Math.sqrt(first + second || 1);
			output[1] = Math.sqrt(first - second || 1);
		}
		static normalizeRect(rect) {
			const r$10 = rect.slice(0);
			if (rect[0] > rect[2]) {
				r$10[0] = rect[2];
				r$10[2] = rect[0];
			}
			if (rect[1] > rect[3]) {
				r$10[1] = rect[3];
				r$10[3] = rect[1];
			}
			return r$10;
		}
		static intersect(rect1, rect2) {
			const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));
			const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));
			if (xLow > xHigh) {
				return null;
			}
			const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));
			const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));
			if (yLow > yHigh) {
				return null;
			}
			return [
				xLow,
				yLow,
				xHigh,
				yHigh
			];
		}
		static pointBoundingBox(x$2, y$3, minMax) {
			minMax[0] = Math.min(minMax[0], x$2);
			minMax[1] = Math.min(minMax[1], y$3);
			minMax[2] = Math.max(minMax[2], x$2);
			minMax[3] = Math.max(minMax[3], y$3);
		}
		static rectBoundingBox(x0, y0, x1, y1, minMax) {
			minMax[0] = Math.min(minMax[0], x0, x1);
			minMax[1] = Math.min(minMax[1], y0, y1);
			minMax[2] = Math.max(minMax[2], x0, x1);
			minMax[3] = Math.max(minMax[3], y0, y1);
		}
		static #getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, t$6, minMax) {
			if (t$6 <= 0 || t$6 >= 1) {
				return;
			}
			const mt = 1 - t$6;
			const tt = t$6 * t$6;
			const ttt = tt * t$6;
			const x$2 = mt * (mt * (mt * x0 + 3 * t$6 * x1) + 3 * tt * x2) + ttt * x3;
			const y$3 = mt * (mt * (mt * y0 + 3 * t$6 * y1) + 3 * tt * y2) + ttt * y3;
			minMax[0] = Math.min(minMax[0], x$2);
			minMax[1] = Math.min(minMax[1], y$3);
			minMax[2] = Math.max(minMax[2], x$2);
			minMax[3] = Math.max(minMax[3], y$3);
		}
		static #getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, a$2, b$3, c$7, minMax) {
			if (Math.abs(a$2) < 1e-12) {
				if (Math.abs(b$3) >= 1e-12) {
					this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, -c$7 / b$3, minMax);
				}
				return;
			}
			const delta = b$3 ** 2 - 4 * c$7 * a$2;
			if (delta < 0) {
				return;
			}
			const sqrtDelta = Math.sqrt(delta);
			const a2 = 2 * a$2;
			this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b$3 + sqrtDelta) / a2, minMax);
			this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b$3 - sqrtDelta) / a2, minMax);
		}
		static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax) {
			minMax[0] = Math.min(minMax[0], x0, x3);
			minMax[1] = Math.min(minMax[1], y0, y3);
			minMax[2] = Math.max(minMax[2], x0, x3);
			minMax[3] = Math.max(minMax[3], y0, y3);
			this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-x0 + 3 * (x1 - x2) + x3), 6 * (x0 - 2 * x1 + x2), 3 * (x1 - x0), minMax);
			this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-y0 + 3 * (y1 - y2) + y3), 6 * (y0 - 2 * y1 + y2), 3 * (y1 - y0), minMax);
		}
	};
	PDFStringTranslateTable = null && [
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		728,
		711,
		710,
		729,
		733,
		731,
		730,
		732,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		8226,
		8224,
		8225,
		8230,
		8212,
		8211,
		402,
		8260,
		8249,
		8250,
		8722,
		8240,
		8222,
		8220,
		8221,
		8216,
		8217,
		8218,
		8482,
		64257,
		64258,
		321,
		338,
		352,
		376,
		381,
		305,
		322,
		339,
		353,
		382,
		0,
		8364
	];
	NormalizeRegex = null;
	NormalizationMap = null;
	AnnotationPrefix = "pdfjs_internal_id_";
	if (typeof Promise.try !== "function") {
		Promise.try = function(fn, ...args) {
			return new Promise((resolve) => {
				resolve(fn(...args));
			});
		};
	}
	if (typeof Math.sumPrecise !== "function") {
		Math.sumPrecise = function(numbers) {
			return numbers.reduce((a$2, b$3) => a$2 + b$3, 0);
		};
	}
	;
	XfaText = class XfaText {
		static textContent(xfa) {
			const items = [];
			const output = {
				items,
				styles: Object.create(null)
			};
			function walk(node) {
				if (!node) {
					return;
				}
				let str = null;
				const name = node.name;
				if (name === "#text") {
					str = node.value;
				} else if (!XfaText.shouldBuildText(name)) {
					return;
				} else if (node?.attributes?.textContent) {
					str = node.attributes.textContent;
				} else if (node.value) {
					str = node.value;
				}
				if (str !== null) {
					items.push({ str });
				}
				if (!node.children) {
					return;
				}
				for (const child of node.children) {
					walk(child);
				}
			}
			walk(xfa);
			return output;
		}
		static shouldBuildText(name) {
			return !(name === "textarea" || name === "input" || name === "option" || name === "select");
		}
	};
	;
	XfaLayer = class {
		static setupStorage(html, id, element, storage, intent) {
			const storedData = storage.getValue(id, { value: null });
			switch (element.name) {
				case "textarea":
					if (storedData.value !== null) {
						html.textContent = storedData.value;
					}
					if (intent === "print") {
						break;
					}
					html.addEventListener("input", (event) => {
						storage.setValue(id, { value: event.target.value });
					});
					break;
				case "input":
					if (element.attributes.type === "radio" || element.attributes.type === "checkbox") {
						if (storedData.value === element.attributes.xfaOn) {
							html.setAttribute("checked", true);
						} else if (storedData.value === element.attributes.xfaOff) {
							html.removeAttribute("checked");
						}
						if (intent === "print") {
							break;
						}
						html.addEventListener("change", (event) => {
							storage.setValue(id, { value: event.target.checked ? event.target.getAttribute("xfaOn") : event.target.getAttribute("xfaOff") });
						});
					} else {
						if (storedData.value !== null) {
							html.setAttribute("value", storedData.value);
						}
						if (intent === "print") {
							break;
						}
						html.addEventListener("input", (event) => {
							storage.setValue(id, { value: event.target.value });
						});
					}
					break;
				case "select":
					if (storedData.value !== null) {
						html.setAttribute("value", storedData.value);
						for (const option of element.children) {
							if (option.attributes.value === storedData.value) {
								option.attributes.selected = true;
							} else if (option.attributes.hasOwnProperty("selected")) {
								delete option.attributes.selected;
							}
						}
					}
					html.addEventListener("input", (event) => {
						const options = event.target.options;
						const value = options.selectedIndex === -1 ? "" : options[options.selectedIndex].value;
						storage.setValue(id, { value });
					});
					break;
			}
		}
		static setAttributes({ html, element, storage = null, intent, linkService }) {
			const { attributes } = element;
			const isHTMLAnchorElement = html instanceof HTMLAnchorElement;
			if (attributes.type === "radio") {
				attributes.name = `${attributes.name}-${intent}`;
			}
			for (const [key, value] of Object.entries(attributes)) {
				if (value === null || value === undefined) {
					continue;
				}
				switch (key) {
					case "class":
						if (value.length) {
							html.setAttribute(key, value.join(" "));
						}
						break;
					case "dataId": break;
					case "id":
						html.setAttribute("data-element-id", value);
						break;
					case "style":
						Object.assign(html.style, value);
						break;
					case "textContent":
						html.textContent = value;
						break;
					default: if (!isHTMLAnchorElement || key !== "href" && key !== "newWindow") {
						html.setAttribute(key, value);
					}
				}
			}
			if (isHTMLAnchorElement) {
				linkService.addLinkAttributes(html, attributes.href, attributes.newWindow);
			}
			if (storage && attributes.dataId) {
				this.setupStorage(html, attributes.dataId, element, storage);
			}
		}
		static render(parameters) {
			const storage = parameters.annotationStorage;
			const linkService = parameters.linkService;
			const root = parameters.xfaHtml;
			const intent = parameters.intent || "display";
			const rootHtml = document.createElement(root.name);
			if (root.attributes) {
				this.setAttributes({
					html: rootHtml,
					element: root,
					intent,
					linkService
				});
			}
			const isNotForRichText = intent !== "richText";
			const rootDiv = parameters.div;
			rootDiv.append(rootHtml);
			if (parameters.viewport) {
				const transform = `matrix(${parameters.viewport.transform.join(",")})`;
				rootDiv.style.transform = transform;
			}
			if (isNotForRichText) {
				rootDiv.setAttribute("class", "xfaLayer xfaFont");
			}
			const textDivs = [];
			if (root.children.length === 0) {
				if (root.value) {
					const node = document.createTextNode(root.value);
					rootHtml.append(node);
					if (isNotForRichText && XfaText.shouldBuildText(root.name)) {
						textDivs.push(node);
					}
				}
				return { textDivs };
			}
			const stack = [[
				root,
				-1,
				rootHtml
			]];
			while (stack.length > 0) {
				const [parent, i$7, html] = stack.at(-1);
				if (i$7 + 1 === parent.children.length) {
					stack.pop();
					continue;
				}
				const child = parent.children[++stack.at(-1)[1]];
				if (child === null) {
					continue;
				}
				const { name } = child;
				if (name === "#text") {
					const node = document.createTextNode(child.value);
					textDivs.push(node);
					html.append(node);
					continue;
				}
				const childHtml = child?.attributes?.xmlns ? document.createElementNS(child.attributes.xmlns, name) : document.createElement(name);
				html.append(childHtml);
				if (child.attributes) {
					this.setAttributes({
						html: childHtml,
						element: child,
						storage,
						intent,
						linkService
					});
				}
				if (child.children?.length > 0) {
					stack.push([
						child,
						-1,
						childHtml
					]);
				} else if (child.value) {
					const node = document.createTextNode(child.value);
					if (isNotForRichText && XfaText.shouldBuildText(name)) {
						textDivs.push(node);
					}
					childHtml.append(node);
				}
			}
			for (const el of rootDiv.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea")) {
				el.setAttribute("readOnly", true);
			}
			return { textDivs };
		}
		static update(parameters) {
			const transform = `matrix(${parameters.viewport.transform.join(",")})`;
			parameters.div.style.transform = transform;
			parameters.div.hidden = false;
		}
	};
	;
	SVG_NS = "http://www.w3.org/2000/svg";
	PixelsPerInch = class {
		static CSS = 96;
		static PDF = 72;
		static PDF_TO_CSS_UNITS = this.CSS / this.PDF;
	};
	PageViewport = class PageViewport {
		constructor({ viewBox, userUnit, scale, rotation, offsetX = 0, offsetY = 0, dontFlip = false }) {
			this.viewBox = viewBox;
			this.userUnit = userUnit;
			this.scale = scale;
			this.rotation = rotation;
			this.offsetX = offsetX;
			this.offsetY = offsetY;
			scale *= userUnit;
			const centerX = (viewBox[2] + viewBox[0]) / 2;
			const centerY = (viewBox[3] + viewBox[1]) / 2;
			let rotateA, rotateB, rotateC, rotateD;
			rotation %= 360;
			if (rotation < 0) {
				rotation += 360;
			}
			switch (rotation) {
				case 180:
					rotateA = -1;
					rotateB = 0;
					rotateC = 0;
					rotateD = 1;
					break;
				case 90:
					rotateA = 0;
					rotateB = 1;
					rotateC = 1;
					rotateD = 0;
					break;
				case 270:
					rotateA = 0;
					rotateB = -1;
					rotateC = -1;
					rotateD = 0;
					break;
				case 0:
					rotateA = 1;
					rotateB = 0;
					rotateC = 0;
					rotateD = -1;
					break;
				default: throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.");
			}
			if (dontFlip) {
				rotateC = -rotateC;
				rotateD = -rotateD;
			}
			let offsetCanvasX, offsetCanvasY;
			let width, height;
			if (rotateA === 0) {
				offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;
				offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;
				width = (viewBox[3] - viewBox[1]) * scale;
				height = (viewBox[2] - viewBox[0]) * scale;
			} else {
				offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;
				offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;
				width = (viewBox[2] - viewBox[0]) * scale;
				height = (viewBox[3] - viewBox[1]) * scale;
			}
			this.transform = [
				rotateA * scale,
				rotateB * scale,
				rotateC * scale,
				rotateD * scale,
				offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY,
				offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY
			];
			this.width = width;
			this.height = height;
		}
		get rawDims() {
			const dims = this.viewBox;
			return shadow(this, "rawDims", {
				pageWidth: dims[2] - dims[0],
				pageHeight: dims[3] - dims[1],
				pageX: dims[0],
				pageY: dims[1]
			});
		}
		clone({ scale = this.scale, rotation = this.rotation, offsetX = this.offsetX, offsetY = this.offsetY, dontFlip = false } = {}) {
			return new PageViewport({
				viewBox: this.viewBox.slice(),
				userUnit: this.userUnit,
				scale,
				rotation,
				offsetX,
				offsetY,
				dontFlip
			});
		}
		convertToViewportPoint(x$2, y$3) {
			const p$3 = [x$2, y$3];
			Util.applyTransform(p$3, this.transform);
			return p$3;
		}
		convertToViewportRectangle(rect) {
			const topLeft = [rect[0], rect[1]];
			Util.applyTransform(topLeft, this.transform);
			const bottomRight = [rect[2], rect[3]];
			Util.applyTransform(bottomRight, this.transform);
			return [
				topLeft[0],
				topLeft[1],
				bottomRight[0],
				bottomRight[1]
			];
		}
		convertToPdfPoint(x$2, y$3) {
			const p$3 = [x$2, y$3];
			Util.applyInverseTransform(p$3, this.transform);
			return p$3;
		}
	};
	RenderingCancelledException = class extends BaseException {
		constructor(msg, extraDelay = 0) {
			super(msg, "RenderingCancelledException");
			this.extraDelay = extraDelay;
		}
	};
	StatTimer = class {
		started = Object.create(null);
		times = [];
		time(name) {
			if (name in this.started) {
				warn$2(`Timer is already running for ${name}`);
			}
			this.started[name] = Date.now();
		}
		timeEnd(name) {
			if (!(name in this.started)) {
				warn$2(`Timer has not been started for ${name}`);
			}
			this.times.push({
				name,
				start: this.started[name],
				end: Date.now()
			});
			delete this.started[name];
		}
		toString() {
			const outBuf = [];
			let longest = 0;
			for (const { name } of this.times) {
				longest = Math.max(name.length, longest);
			}
			for (const { name, start, end } of this.times) {
				outBuf.push(`${name.padEnd(longest)} ${end - start}ms\n`);
			}
			return outBuf.join("");
		}
	};
	PDFDateString = class {
		static #regex;
		static toDateObject(input) {
			if (input instanceof Date) {
				return input;
			}
			if (!input || typeof input !== "string") {
				return null;
			}
			this.#regex ||= new RegExp("^D:" + "(\\d{4})" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "([Z|+|-])?" + "(\\d{2})?" + "'?" + "(\\d{2})?" + "'?");
			const matches = this.#regex.exec(input);
			if (!matches) {
				return null;
			}
			const year = parseInt(matches[1], 10);
			let month = parseInt(matches[2], 10);
			month = month >= 1 && month <= 12 ? month - 1 : 0;
			let day = parseInt(matches[3], 10);
			day = day >= 1 && day <= 31 ? day : 1;
			let hour = parseInt(matches[4], 10);
			hour = hour >= 0 && hour <= 23 ? hour : 0;
			let minute = parseInt(matches[5], 10);
			minute = minute >= 0 && minute <= 59 ? minute : 0;
			let second = parseInt(matches[6], 10);
			second = second >= 0 && second <= 59 ? second : 0;
			const universalTimeRelation = matches[7] || "Z";
			let offsetHour = parseInt(matches[8], 10);
			offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;
			let offsetMinute = parseInt(matches[9], 10) || 0;
			offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;
			if (universalTimeRelation === "-") {
				hour += offsetHour;
				minute += offsetMinute;
			} else if (universalTimeRelation === "+") {
				hour -= offsetHour;
				minute -= offsetMinute;
			}
			return new Date(Date.UTC(year, month, day, hour, minute, second));
		}
	};
	OutputScale = class OutputScale {
		constructor() {
			const { pixelRatio } = OutputScale;
			this.sx = pixelRatio;
			this.sy = pixelRatio;
		}
		get scaled() {
			return this.sx !== 1 || this.sy !== 1;
		}
		get symmetric() {
			return this.sx === this.sy;
		}
		limitCanvas(width, height, maxPixels, maxDim, capAreaFactor = -1) {
			let maxAreaScale = Infinity, maxWidthScale = Infinity, maxHeightScale = Infinity;
			maxPixels = OutputScale.capPixels(maxPixels, capAreaFactor);
			if (maxPixels > 0) {
				maxAreaScale = Math.sqrt(maxPixels / (width * height));
			}
			if (maxDim !== -1) {
				maxWidthScale = maxDim / width;
				maxHeightScale = maxDim / height;
			}
			const maxScale = Math.min(maxAreaScale, maxWidthScale, maxHeightScale);
			if (this.sx > maxScale || this.sy > maxScale) {
				this.sx = maxScale;
				this.sy = maxScale;
				return true;
			}
			return false;
		}
		static get pixelRatio() {
			return globalThis.devicePixelRatio || 1;
		}
		static capPixels(maxPixels, capAreaFactor) {
			if (capAreaFactor >= 0) {
				const winPixels = Math.ceil(window.screen.availWidth * window.screen.availHeight * this.pixelRatio ** 2 * (1 + capAreaFactor / 100));
				return maxPixels > 0 ? Math.min(maxPixels, winPixels) : winPixels;
			}
			return maxPixels;
		}
	};
	SupportedImageMimeTypes = [
		"image/apng",
		"image/avif",
		"image/bmp",
		"image/gif",
		"image/jpeg",
		"image/png",
		"image/svg+xml",
		"image/webp",
		"image/x-icon"
	];
	ColorScheme = class {
		static get isDarkMode() {
			return shadow(this, "isDarkMode", !!window?.matchMedia?.("(prefers-color-scheme: dark)").matches);
		}
	};
	CSSConstants = class {
		static get commentForegroundColor() {
			const element = document.createElement("span");
			element.classList.add("comment", "sidebar");
			const { style } = element;
			style.width = style.height = "0";
			style.display = "none";
			style.color = "var(--comment-fg-color)";
			document.body.append(element);
			const { color } = window.getComputedStyle(element);
			element.remove();
			return shadow(this, "commentForegroundColor", getRGB(color));
		}
	};
	contrastCache = new Map();
	;
	EditorToolbar = class EditorToolbar {
		#toolbar = null;
		#colorPicker = null;
		#editor;
		#buttons = null;
		#altText = null;
		#comment = null;
		#commentButtonDivider = null;
		#signatureDescriptionButton = null;
		static #l10nRemove = null;
		constructor(editor) {
			this.#editor = editor;
			EditorToolbar.#l10nRemove ||= Object.freeze({
				freetext: "pdfjs-editor-remove-freetext-button",
				highlight: "pdfjs-editor-remove-highlight-button",
				ink: "pdfjs-editor-remove-ink-button",
				stamp: "pdfjs-editor-remove-stamp-button",
				signature: "pdfjs-editor-remove-signature-button"
			});
		}
		render() {
			const editToolbar = this.#toolbar = document.createElement("div");
			editToolbar.classList.add("editToolbar", "hidden");
			editToolbar.setAttribute("role", "toolbar");
			const signal = this.#editor._uiManager._signal;
			if (signal instanceof AbortSignal && !signal.aborted) {
				editToolbar.addEventListener("contextmenu", noContextMenu, { signal });
				editToolbar.addEventListener("pointerdown", EditorToolbar.#pointerDown, { signal });
			}
			const buttons = this.#buttons = document.createElement("div");
			buttons.className = "buttons";
			editToolbar.append(buttons);
			const position = this.#editor.toolbarPosition;
			if (position) {
				const { style } = editToolbar;
				const x$2 = this.#editor._uiManager.direction === "ltr" ? 1 - position[0] : position[0];
				style.insetInlineEnd = `${100 * x$2}%`;
				style.top = `calc(${100 * position[1]}% + var(--editor-toolbar-vert-offset))`;
			}
			return editToolbar;
		}
		get div() {
			return this.#toolbar;
		}
		static #pointerDown(e$10) {
			e$10.stopPropagation();
		}
		#focusIn(e$10) {
			this.#editor._focusEventsAllowed = false;
			stopEvent(e$10);
		}
		#focusOut(e$10) {
			this.#editor._focusEventsAllowed = true;
			stopEvent(e$10);
		}
		#addListenersToElement(element) {
			const signal = this.#editor._uiManager._signal;
			if (!(signal instanceof AbortSignal) || signal.aborted) {
				return false;
			}
			element.addEventListener("focusin", this.#focusIn.bind(this), {
				capture: true,
				signal
			});
			element.addEventListener("focusout", this.#focusOut.bind(this), {
				capture: true,
				signal
			});
			element.addEventListener("contextmenu", noContextMenu, { signal });
			return true;
		}
		hide() {
			this.#toolbar.classList.add("hidden");
			this.#colorPicker?.hideDropdown();
		}
		show() {
			this.#toolbar.classList.remove("hidden");
			this.#altText?.shown();
			this.#comment?.shown();
		}
		addDeleteButton() {
			const { editorType, _uiManager } = this.#editor;
			const button = document.createElement("button");
			button.classList.add("basic", "deleteButton");
			button.tabIndex = 0;
			button.setAttribute("data-l10n-id", EditorToolbar.#l10nRemove[editorType]);
			if (this.#addListenersToElement(button)) {
				button.addEventListener("click", (e$10) => {
					_uiManager.delete();
				}, { signal: _uiManager._signal });
			}
			this.#buttons.append(button);
		}
		get #divider() {
			const divider = document.createElement("div");
			divider.className = "divider";
			return divider;
		}
		async addAltText(altText) {
			const button = await altText.render();
			this.#addListenersToElement(button);
			this.#buttons.append(button, this.#divider);
			this.#altText = altText;
		}
		addComment(comment, beforeElement = null) {
			if (this.#comment) {
				return;
			}
			const button = comment.renderForToolbar();
			if (!button) {
				return;
			}
			this.#addListenersToElement(button);
			const divider = this.#commentButtonDivider = this.#divider;
			if (!beforeElement) {
				this.#buttons.append(button, divider);
			} else {
				this.#buttons.insertBefore(button, beforeElement);
				this.#buttons.insertBefore(divider, beforeElement);
			}
			this.#comment = comment;
			comment.toolbar = this;
		}
		addColorPicker(colorPicker) {
			if (this.#colorPicker) {
				return;
			}
			this.#colorPicker = colorPicker;
			const button = colorPicker.renderButton();
			this.#addListenersToElement(button);
			this.#buttons.append(button, this.#divider);
		}
		async addEditSignatureButton(signatureManager) {
			const button = this.#signatureDescriptionButton = await signatureManager.renderEditButton(this.#editor);
			this.#addListenersToElement(button);
			this.#buttons.append(button, this.#divider);
		}
		removeButton(name) {
			switch (name) {
				case "comment":
					this.#comment?.removeToolbarCommentButton();
					this.#comment = null;
					this.#commentButtonDivider?.remove();
					this.#commentButtonDivider = null;
					break;
			}
		}
		async addButton(name, tool) {
			switch (name) {
				case "colorPicker":
					if (tool) {
						this.addColorPicker(tool);
					}
					break;
				case "altText":
					if (tool) {
						await this.addAltText(tool);
					}
					break;
				case "editSignature":
					if (tool) {
						await this.addEditSignatureButton(tool);
					}
					break;
				case "delete":
					this.addDeleteButton();
					break;
				case "comment":
					if (tool) {
						this.addComment(tool);
					}
					break;
			}
		}
		async addButtonBefore(name, tool, beforeSelector) {
			if (!tool && name === "comment") {
				return;
			}
			const beforeElement = this.#buttons.querySelector(beforeSelector);
			if (!beforeElement) {
				return;
			}
			if (name === "comment") {
				this.addComment(tool, beforeElement);
			}
		}
		updateEditSignatureButton(description) {
			if (this.#signatureDescriptionButton) {
				this.#signatureDescriptionButton.title = description;
			}
		}
		remove() {
			this.#toolbar.remove();
			this.#colorPicker?.destroy();
			this.#colorPicker = null;
		}
	};
	FloatingToolbar = class {
		#buttons = null;
		#toolbar = null;
		#uiManager;
		constructor(uiManager) {
			this.#uiManager = uiManager;
		}
		#render() {
			const editToolbar = this.#toolbar = document.createElement("div");
			editToolbar.className = "editToolbar";
			editToolbar.setAttribute("role", "toolbar");
			const signal = this.#uiManager._signal;
			if (signal instanceof AbortSignal && !signal.aborted) {
				editToolbar.addEventListener("contextmenu", noContextMenu, { signal });
			}
			const buttons = this.#buttons = document.createElement("div");
			buttons.className = "buttons";
			editToolbar.append(buttons);
			if (this.#uiManager.hasCommentManager()) {
				this.#makeButton("commentButton", `pdfjs-comment-floating-button`, "pdfjs-comment-floating-button-label", () => {
					this.#uiManager.commentSelection("floating_button");
				});
			}
			this.#makeButton("highlightButton", `pdfjs-highlight-floating-button1`, "pdfjs-highlight-floating-button-label", () => {
				this.#uiManager.highlightSelection("floating_button");
			});
			return editToolbar;
		}
		#getLastPoint(boxes, isLTR) {
			let lastY = 0;
			let lastX = 0;
			for (const box of boxes) {
				const y$3 = box.y + box.height;
				if (y$3 < lastY) {
					continue;
				}
				const x$2 = box.x + (isLTR ? box.width : 0);
				if (y$3 > lastY) {
					lastX = x$2;
					lastY = y$3;
					continue;
				}
				if (isLTR) {
					if (x$2 > lastX) {
						lastX = x$2;
					}
				} else if (x$2 < lastX) {
					lastX = x$2;
				}
			}
			return [isLTR ? 1 - lastX : lastX, lastY];
		}
		show(parent, boxes, isLTR) {
			const [x$2, y$3] = this.#getLastPoint(boxes, isLTR);
			const { style } = this.#toolbar ||= this.#render();
			parent.append(this.#toolbar);
			style.insetInlineEnd = `${100 * x$2}%`;
			style.top = `calc(${100 * y$3}% + var(--editor-toolbar-vert-offset))`;
		}
		hide() {
			this.#toolbar.remove();
		}
		#makeButton(buttonClass, l10nId, labelL10nId, clickHandler) {
			const button = document.createElement("button");
			button.classList.add("basic", buttonClass);
			button.tabIndex = 0;
			button.setAttribute("data-l10n-id", l10nId);
			const span = document.createElement("span");
			button.append(span);
			span.className = "visuallyHidden";
			span.setAttribute("data-l10n-id", labelL10nId);
			const signal = this.#uiManager._signal;
			if (signal instanceof AbortSignal && !signal.aborted) {
				button.addEventListener("contextmenu", noContextMenu, { signal });
				button.addEventListener("click", clickHandler, { signal });
			}
			this.#buttons.append(button);
		}
	};
	;
	CurrentPointers = class CurrentPointers {
		static #pointerId = NaN;
		static #pointerIds = null;
		static #moveTimestamp = NaN;
		static #pointerType = null;
		static initializeAndAddPointerId(pointerId) {
			(CurrentPointers.#pointerIds ||= new Set()).add(pointerId);
		}
		static setPointer(pointerType, pointerId) {
			CurrentPointers.#pointerId ||= pointerId;
			CurrentPointers.#pointerType ??= pointerType;
		}
		static setTimeStamp(timeStamp) {
			CurrentPointers.#moveTimestamp = timeStamp;
		}
		static isSamePointerId(pointerId) {
			return CurrentPointers.#pointerId === pointerId;
		}
		static isSamePointerIdOrRemove(pointerId) {
			if (CurrentPointers.#pointerId === pointerId) {
				return true;
			}
			CurrentPointers.#pointerIds?.delete(pointerId);
			return false;
		}
		static isSamePointerType(pointerType) {
			return CurrentPointers.#pointerType === pointerType;
		}
		static isInitializedAndDifferentPointerType(pointerType) {
			return CurrentPointers.#pointerType !== null && !CurrentPointers.isSamePointerType(pointerType);
		}
		static isSameTimeStamp(timeStamp) {
			return CurrentPointers.#moveTimestamp === timeStamp;
		}
		static isUsingMultiplePointers() {
			return CurrentPointers.#pointerIds?.size >= 1;
		}
		static clearPointerType() {
			CurrentPointers.#pointerType = null;
		}
		static clearPointerIds() {
			CurrentPointers.#pointerId = NaN;
			CurrentPointers.#pointerIds = null;
		}
		static clearTimeStamp() {
			CurrentPointers.#moveTimestamp = NaN;
		}
	};
	IdManager = class {
		#id = 0;
		get id() {
			return `${AnnotationEditorPrefix}${this.#id++}`;
		}
	};
	ImageManager = class ImageManager {
		#baseId = getUuid();
		#id = 0;
		#cache = null;
		static get _isSVGFittingCanvas() {
			const svg = `data:image/svg+xml;charset=UTF-8,<svg viewBox="0 0 1 1" width="1" height="1" xmlns="http://www.w3.org/2000/svg"><rect width="1" height="1" style="fill:red;"/></svg>`;
			const canvas = new OffscreenCanvas(1, 3);
			const ctx = canvas.getContext("2d", { willReadFrequently: true });
			const image = new Image();
			image.src = svg;
			const promise = image.decode().then(() => {
				ctx.drawImage(image, 0, 0, 1, 1, 0, 0, 1, 3);
				return new Uint32Array(ctx.getImageData(0, 0, 1, 1).data.buffer)[0] === 0;
			});
			return shadow(this, "_isSVGFittingCanvas", promise);
		}
		async #get(key, rawData) {
			this.#cache ||= new Map();
			let data = this.#cache.get(key);
			if (data === null) {
				return null;
			}
			if (data?.bitmap) {
				data.refCounter += 1;
				return data;
			}
			try {
				data ||= {
					bitmap: null,
					id: `image_${this.#baseId}_${this.#id++}`,
					refCounter: 0,
					isSvg: false
				};
				let image;
				if (typeof rawData === "string") {
					data.url = rawData;
					image = await fetchData(rawData, "blob");
				} else if (rawData instanceof File) {
					image = data.file = rawData;
				} else if (rawData instanceof Blob) {
					image = rawData;
				}
				if (image.type === "image/svg+xml") {
					const mustRemoveAspectRatioPromise = ImageManager._isSVGFittingCanvas;
					const fileReader = new FileReader();
					const imageElement = new Image();
					const imagePromise = new Promise((resolve, reject) => {
						imageElement.onload = () => {
							data.bitmap = imageElement;
							data.isSvg = true;
							resolve();
						};
						fileReader.onload = async () => {
							const url = data.svgUrl = fileReader.result;
							imageElement.src = await mustRemoveAspectRatioPromise ? `${url}#svgView(preserveAspectRatio(none))` : url;
						};
						imageElement.onerror = fileReader.onerror = reject;
					});
					fileReader.readAsDataURL(image);
					await imagePromise;
				} else {
					data.bitmap = await createImageBitmap(image);
				}
				data.refCounter = 1;
			} catch (e$10) {
				warn$2(e$10);
				data = null;
			}
			this.#cache.set(key, data);
			if (data) {
				this.#cache.set(data.id, data);
			}
			return data;
		}
		async getFromFile(file) {
			const { lastModified, name, size, type } = file;
			return this.#get(`${lastModified}_${name}_${size}_${type}`, file);
		}
		async getFromUrl(url) {
			return this.#get(url, url);
		}
		async getFromBlob(id, blobPromise) {
			const blob = await blobPromise;
			return this.#get(id, blob);
		}
		async getFromId(id) {
			this.#cache ||= new Map();
			const data = this.#cache.get(id);
			if (!data) {
				return null;
			}
			if (data.bitmap) {
				data.refCounter += 1;
				return data;
			}
			if (data.file) {
				return this.getFromFile(data.file);
			}
			if (data.blobPromise) {
				const { blobPromise } = data;
				delete data.blobPromise;
				return this.getFromBlob(data.id, blobPromise);
			}
			return this.getFromUrl(data.url);
		}
		getFromCanvas(id, canvas) {
			this.#cache ||= new Map();
			let data = this.#cache.get(id);
			if (data?.bitmap) {
				data.refCounter += 1;
				return data;
			}
			const offscreen = new OffscreenCanvas(canvas.width, canvas.height);
			const ctx = offscreen.getContext("2d");
			ctx.drawImage(canvas, 0, 0);
			data = {
				bitmap: offscreen.transferToImageBitmap(),
				id: `image_${this.#baseId}_${this.#id++}`,
				refCounter: 1,
				isSvg: false
			};
			this.#cache.set(id, data);
			this.#cache.set(data.id, data);
			return data;
		}
		getSvgUrl(id) {
			const data = this.#cache.get(id);
			if (!data?.isSvg) {
				return null;
			}
			return data.svgUrl;
		}
		deleteId(id) {
			this.#cache ||= new Map();
			const data = this.#cache.get(id);
			if (!data) {
				return;
			}
			data.refCounter -= 1;
			if (data.refCounter !== 0) {
				return;
			}
			const { bitmap } = data;
			if (!data.url && !data.file) {
				const canvas = new OffscreenCanvas(bitmap.width, bitmap.height);
				const ctx = canvas.getContext("bitmaprenderer");
				ctx.transferFromImageBitmap(bitmap);
				data.blobPromise = canvas.convertToBlob();
			}
			bitmap.close?.();
			data.bitmap = null;
		}
		isValidId(id) {
			return id.startsWith(`image_${this.#baseId}_`);
		}
	};
	CommandManager = class {
		#commands = [];
		#locked = false;
		#maxSize;
		#position = -1;
		constructor(maxSize = 128) {
			this.#maxSize = maxSize;
		}
		add({ cmd, undo, post: post$1, mustExec, type = NaN, overwriteIfSameType = false, keepUndo = false }) {
			if (mustExec) {
				cmd();
			}
			if (this.#locked) {
				return;
			}
			const save = {
				cmd,
				undo,
				post: post$1,
				type
			};
			if (this.#position === -1) {
				if (this.#commands.length > 0) {
					this.#commands.length = 0;
				}
				this.#position = 0;
				this.#commands.push(save);
				return;
			}
			if (overwriteIfSameType && this.#commands[this.#position].type === type) {
				if (keepUndo) {
					save.undo = this.#commands[this.#position].undo;
				}
				this.#commands[this.#position] = save;
				return;
			}
			const next = this.#position + 1;
			if (next === this.#maxSize) {
				this.#commands.splice(0, 1);
			} else {
				this.#position = next;
				if (next < this.#commands.length) {
					this.#commands.splice(next);
				}
			}
			this.#commands.push(save);
		}
		undo() {
			if (this.#position === -1) {
				return;
			}
			this.#locked = true;
			const { undo, post: post$1 } = this.#commands[this.#position];
			undo();
			post$1?.();
			this.#locked = false;
			this.#position -= 1;
		}
		redo() {
			if (this.#position < this.#commands.length - 1) {
				this.#position += 1;
				this.#locked = true;
				const { cmd, post: post$1 } = this.#commands[this.#position];
				cmd();
				post$1?.();
				this.#locked = false;
			}
		}
		hasSomethingToUndo() {
			return this.#position !== -1;
		}
		hasSomethingToRedo() {
			return this.#position < this.#commands.length - 1;
		}
		cleanType(type) {
			if (this.#position === -1) {
				return;
			}
			for (let i$7 = this.#position; i$7 >= 0; i$7--) {
				if (this.#commands[i$7].type !== type) {
					this.#commands.splice(i$7 + 1, this.#position - i$7);
					this.#position = i$7;
					return;
				}
			}
			this.#commands.length = 0;
			this.#position = -1;
		}
		destroy() {
			this.#commands = null;
		}
	};
	KeyboardManager = class {
		constructor(callbacks) {
			this.buffer = [];
			this.callbacks = new Map();
			this.allKeys = new Set();
			const { isMac } = util_FeatureTest.platform;
			for (const [keys$1, callback, options = {}] of callbacks) {
				for (const key of keys$1) {
					const isMacKey = key.startsWith("mac+");
					if (isMac && isMacKey) {
						this.callbacks.set(key.slice(4), {
							callback,
							options
						});
						this.allKeys.add(key.split("+").at(-1));
					} else if (!isMac && !isMacKey) {
						this.callbacks.set(key, {
							callback,
							options
						});
						this.allKeys.add(key.split("+").at(-1));
					}
				}
			}
		}
		#serialize(event) {
			if (event.altKey) {
				this.buffer.push("alt");
			}
			if (event.ctrlKey) {
				this.buffer.push("ctrl");
			}
			if (event.metaKey) {
				this.buffer.push("meta");
			}
			if (event.shiftKey) {
				this.buffer.push("shift");
			}
			this.buffer.push(event.key);
			const str = this.buffer.join("+");
			this.buffer.length = 0;
			return str;
		}
		exec(self$1, event) {
			if (!this.allKeys.has(event.key)) {
				return;
			}
			const info$1 = this.callbacks.get(this.#serialize(event));
			if (!info$1) {
				return;
			}
			const { callback, options: { bubbles = false, args = [], checker = null } } = info$1;
			if (checker && !checker(self$1, event)) {
				return;
			}
			callback.bind(self$1, ...args, event)();
			if (!bubbles) {
				stopEvent(event);
			}
		}
	};
	ColorManager = class ColorManager {
		static _colorsMapping = new Map([["CanvasText", [
			0,
			0,
			0
		]], ["Canvas", [
			255,
			255,
			255
		]]]);
		get _colors() {
			const colors = new Map([["CanvasText", null], ["Canvas", null]]);
			getColorValues(colors);
			return shadow(this, "_colors", colors);
		}
		convert(color) {
			const rgb = getRGB(color);
			if (!window.matchMedia("(forced-colors: active)").matches) {
				return rgb;
			}
			for (const [name, RGB] of this._colors) {
				if (RGB.every((x$2, i$7) => x$2 === rgb[i$7])) {
					return ColorManager._colorsMapping.get(name);
				}
			}
			return rgb;
		}
		getHexCode(name) {
			const rgb = this._colors.get(name);
			if (!rgb) {
				return name;
			}
			return Util.makeHexColor(...rgb);
		}
	};
	AnnotationEditorUIManager = class AnnotationEditorUIManager {
		#abortController = new AbortController();
		#activeEditor = null;
		#allEditableAnnotations = null;
		#allEditors = new Map();
		#allLayers = new Map();
		#altTextManager = null;
		#annotationStorage = null;
		#changedExistingAnnotations = null;
		#commandManager = new CommandManager();
		#commentManager = null;
		#copyPasteAC = null;
		#currentDrawingSession = null;
		#currentPageIndex = 0;
		#deletedAnnotationsElementIds = new Set();
		#draggingEditors = null;
		#editorTypes = null;
		#editorsToRescale = new Set();
		_editorUndoBar = null;
		#enableHighlightFloatingButton = false;
		#enableUpdatedAddImage = false;
		#enableNewAltTextWhenAddingImage = false;
		#filterFactory = null;
		#focusMainContainerTimeoutId = null;
		#focusManagerAC = null;
		#highlightColors = null;
		#highlightWhenShiftUp = false;
		#floatingToolbar = null;
		#idManager = new IdManager();
		#isEnabled = false;
		#isPointerDown = false;
		#isWaiting = false;
		#keyboardManagerAC = null;
		#lastActiveElement = null;
		#mainHighlightColorPicker = null;
		#missingCanvases = null;
		#mlManager = null;
		#mode = AnnotationEditorType.NONE;
		#selectedEditors = new Set();
		#selectedTextNode = null;
		#signatureManager = null;
		#pageColors = null;
		#showAllStates = null;
		#pdfDocument = null;
		#previousStates = {
			isEditing: false,
			isEmpty: true,
			hasSomethingToUndo: false,
			hasSomethingToRedo: false,
			hasSelectedEditor: false,
			hasSelectedText: false
		};
		#translation = [0, 0];
		#translationTimeoutId = null;
		#container = null;
		#viewer = null;
		#viewerAlert = null;
		#updateModeCapability = null;
		static TRANSLATE_SMALL = 1;
		static TRANSLATE_BIG = 10;
		static get _keyboardManager() {
			const proto = AnnotationEditorUIManager.prototype;
			const arrowChecker = (self$1) => self$1.#container.contains(document.activeElement) && document.activeElement.tagName !== "BUTTON" && self$1.hasSomethingToControl();
			const textInputChecker = (_self, { target: el }) => {
				if (el instanceof HTMLInputElement) {
					const { type } = el;
					return type !== "text" && type !== "number";
				}
				return true;
			};
			const small = this.TRANSLATE_SMALL;
			const big = this.TRANSLATE_BIG;
			return shadow(this, "_keyboardManager", new KeyboardManager([
				[
					["ctrl+a", "mac+meta+a"],
					proto.selectAll,
					{ checker: textInputChecker }
				],
				[
					["ctrl+z", "mac+meta+z"],
					proto.undo,
					{ checker: textInputChecker }
				],
				[
					[
						"ctrl+y",
						"ctrl+shift+z",
						"mac+meta+shift+z",
						"ctrl+shift+Z",
						"mac+meta+shift+Z"
					],
					proto.redo,
					{ checker: textInputChecker }
				],
				[
					[
						"Backspace",
						"alt+Backspace",
						"ctrl+Backspace",
						"shift+Backspace",
						"mac+Backspace",
						"mac+alt+Backspace",
						"mac+ctrl+Backspace",
						"Delete",
						"ctrl+Delete",
						"shift+Delete",
						"mac+Delete"
					],
					proto.delete,
					{ checker: textInputChecker }
				],
				[
					["Enter", "mac+Enter"],
					proto.addNewEditorFromKeyboard,
					{ checker: (self$1, { target: el }) => !(el instanceof HTMLButtonElement) && self$1.#container.contains(el) && !self$1.isEnterHandled }
				],
				[
					[" ", "mac+ "],
					proto.addNewEditorFromKeyboard,
					{ checker: (self$1, { target: el }) => !(el instanceof HTMLButtonElement) && self$1.#container.contains(document.activeElement) }
				],
				[["Escape", "mac+Escape"], proto.unselectAll],
				[
					["ArrowLeft", "mac+ArrowLeft"],
					proto.translateSelectedEditors,
					{
						args: [-small, 0],
						checker: arrowChecker
					}
				],
				[
					["ctrl+ArrowLeft", "mac+shift+ArrowLeft"],
					proto.translateSelectedEditors,
					{
						args: [-big, 0],
						checker: arrowChecker
					}
				],
				[
					["ArrowRight", "mac+ArrowRight"],
					proto.translateSelectedEditors,
					{
						args: [small, 0],
						checker: arrowChecker
					}
				],
				[
					["ctrl+ArrowRight", "mac+shift+ArrowRight"],
					proto.translateSelectedEditors,
					{
						args: [big, 0],
						checker: arrowChecker
					}
				],
				[
					["ArrowUp", "mac+ArrowUp"],
					proto.translateSelectedEditors,
					{
						args: [0, -small],
						checker: arrowChecker
					}
				],
				[
					["ctrl+ArrowUp", "mac+shift+ArrowUp"],
					proto.translateSelectedEditors,
					{
						args: [0, -big],
						checker: arrowChecker
					}
				],
				[
					["ArrowDown", "mac+ArrowDown"],
					proto.translateSelectedEditors,
					{
						args: [0, small],
						checker: arrowChecker
					}
				],
				[
					["ctrl+ArrowDown", "mac+shift+ArrowDown"],
					proto.translateSelectedEditors,
					{
						args: [0, big],
						checker: arrowChecker
					}
				]
			]));
		}
		constructor(container, viewer, viewerAlert, altTextManager, commentManager, signatureManager, eventBus, pdfDocument, pageColors, highlightColors, enableHighlightFloatingButton, enableUpdatedAddImage, enableNewAltTextWhenAddingImage, mlManager, editorUndoBar, supportsPinchToZoom) {
			const signal = this._signal = this.#abortController.signal;
			this.#container = container;
			this.#viewer = viewer;
			this.#viewerAlert = viewerAlert;
			this.#altTextManager = altTextManager;
			this.#commentManager = commentManager;
			this.#signatureManager = signatureManager;
			this.#pdfDocument = pdfDocument;
			this._eventBus = eventBus;
			eventBus._on("editingaction", this.onEditingAction.bind(this), { signal });
			eventBus._on("pagechanging", this.onPageChanging.bind(this), { signal });
			eventBus._on("scalechanging", this.onScaleChanging.bind(this), { signal });
			eventBus._on("rotationchanging", this.onRotationChanging.bind(this), { signal });
			eventBus._on("setpreference", this.onSetPreference.bind(this), { signal });
			eventBus._on("switchannotationeditorparams", (evt) => this.updateParams(evt.type, evt.value), { signal });
			window.addEventListener("pointerdown", () => {
				this.#isPointerDown = true;
			}, {
				capture: true,
				signal
			});
			window.addEventListener("pointerup", () => {
				this.#isPointerDown = false;
			}, {
				capture: true,
				signal
			});
			this.#addSelectionListener();
			this.#addDragAndDropListeners();
			this.#addKeyboardManager();
			this.#annotationStorage = pdfDocument.annotationStorage;
			this.#filterFactory = pdfDocument.filterFactory;
			this.#pageColors = pageColors;
			this.#highlightColors = highlightColors || null;
			this.#enableHighlightFloatingButton = enableHighlightFloatingButton;
			this.#enableUpdatedAddImage = enableUpdatedAddImage;
			this.#enableNewAltTextWhenAddingImage = enableNewAltTextWhenAddingImage;
			this.#mlManager = mlManager || null;
			this.viewParameters = {
				realScale: PixelsPerInch.PDF_TO_CSS_UNITS,
				rotation: 0
			};
			this.isShiftKeyDown = false;
			this._editorUndoBar = editorUndoBar || null;
			this._supportsPinchToZoom = supportsPinchToZoom !== false;
			commentManager?.setSidebarUiManager(this);
		}
		destroy() {
			this.#updateModeCapability?.resolve();
			this.#updateModeCapability = null;
			this.#abortController?.abort();
			this.#abortController = null;
			this._signal = null;
			for (const layer of this.#allLayers.values()) {
				layer.destroy();
			}
			this.#allLayers.clear();
			this.#allEditors.clear();
			this.#editorsToRescale.clear();
			this.#missingCanvases?.clear();
			this.#activeEditor = null;
			this.#selectedEditors.clear();
			this.#commandManager.destroy();
			this.#altTextManager?.destroy();
			this.#commentManager?.destroy();
			this.#signatureManager?.destroy();
			this.#floatingToolbar?.hide();
			this.#floatingToolbar = null;
			this.#mainHighlightColorPicker?.destroy();
			this.#mainHighlightColorPicker = null;
			this.#allEditableAnnotations = null;
			if (this.#focusMainContainerTimeoutId) {
				clearTimeout(this.#focusMainContainerTimeoutId);
				this.#focusMainContainerTimeoutId = null;
			}
			if (this.#translationTimeoutId) {
				clearTimeout(this.#translationTimeoutId);
				this.#translationTimeoutId = null;
			}
			this._editorUndoBar?.destroy();
			this.#pdfDocument = null;
		}
		combinedSignal(ac) {
			return AbortSignal.any([this._signal, ac.signal]);
		}
		get mlManager() {
			return this.#mlManager;
		}
		get useNewAltTextFlow() {
			return this.#enableUpdatedAddImage;
		}
		get useNewAltTextWhenAddingImage() {
			return this.#enableNewAltTextWhenAddingImage;
		}
		get hcmFilter() {
			return shadow(this, "hcmFilter", this.#pageColors ? this.#filterFactory.addHCMFilter(this.#pageColors.foreground, this.#pageColors.background) : "none");
		}
		get direction() {
			return shadow(this, "direction", getComputedStyle(this.#container).direction);
		}
		get _highlightColors() {
			return shadow(this, "_highlightColors", this.#highlightColors ? new Map(this.#highlightColors.split(",").map((pair) => {
				pair = pair.split("=").map((x$2) => x$2.trim());
				pair[1] = pair[1].toUpperCase();
				return pair;
			})) : null);
		}
		get highlightColors() {
			const { _highlightColors } = this;
			if (!_highlightColors) {
				return shadow(this, "highlightColors", null);
			}
			const map$2 = new Map();
			const hasHCM = !!this.#pageColors;
			for (const [name, color] of _highlightColors) {
				const isNameForHCM = name.endsWith("_HCM");
				if (hasHCM && isNameForHCM) {
					map$2.set(name.replace("_HCM", ""), color);
					continue;
				}
				if (!hasHCM && !isNameForHCM) {
					map$2.set(name, color);
				}
			}
			return shadow(this, "highlightColors", map$2);
		}
		get highlightColorNames() {
			return shadow(this, "highlightColorNames", this.highlightColors ? new Map(Array.from(this.highlightColors, (e$10) => e$10.reverse())) : null);
		}
		getNonHCMColor(color) {
			if (!this._highlightColors) {
				return color;
			}
			const colorName = this.highlightColorNames.get(color);
			return this._highlightColors.get(colorName) || color;
		}
		getNonHCMColorName(color) {
			return this.highlightColorNames.get(color) || color;
		}
		setCurrentDrawingSession(layer) {
			if (layer) {
				this.unselectAll();
				this.disableUserSelect(true);
			} else {
				this.disableUserSelect(false);
			}
			this.#currentDrawingSession = layer;
		}
		setMainHighlightColorPicker(colorPicker) {
			this.#mainHighlightColorPicker = colorPicker;
		}
		editAltText(editor, firstTime = false) {
			this.#altTextManager?.editAltText(this, editor, firstTime);
		}
		hasCommentManager() {
			return !!this.#commentManager;
		}
		editComment(editor, posX, posY, options) {
			this.#commentManager?.showDialog(this, editor, posX, posY, options);
		}
		selectComment(pageIndex, uid) {
			const layer = this.#allLayers.get(pageIndex);
			const editor = layer?.getEditorByUID(uid);
			editor?.toggleComment(true, true);
		}
		updateComment(editor) {
			this.#commentManager?.updateComment(editor.getData());
		}
		updatePopupColor(editor) {
			this.#commentManager?.updatePopupColor(editor);
		}
		removeComment(editor) {
			this.#commentManager?.removeComments([editor.uid]);
		}
		toggleComment(editor, isSelected, visibility = undefined) {
			this.#commentManager?.toggleCommentPopup(editor, isSelected, visibility);
		}
		makeCommentColor(color, opacity) {
			return color && this.#commentManager?.makeCommentColor(color, opacity) || null;
		}
		getCommentDialogElement() {
			return this.#commentManager?.dialogElement || null;
		}
		async waitForEditorsRendered(pageNumber) {
			if (this.#allLayers.has(pageNumber - 1)) {
				return;
			}
			const { resolve, promise } = Promise.withResolvers();
			const onEditorsRendered = (evt) => {
				if (evt.pageNumber === pageNumber) {
					this._eventBus._off("editorsrendered", onEditorsRendered);
					resolve();
				}
			};
			this._eventBus.on("editorsrendered", onEditorsRendered);
			await promise;
		}
		getSignature(editor) {
			this.#signatureManager?.getSignature({
				uiManager: this,
				editor
			});
		}
		get signatureManager() {
			return this.#signatureManager;
		}
		switchToMode(mode, callback) {
			this._eventBus.on("annotationeditormodechanged", callback, {
				once: true,
				signal: this._signal
			});
			this._eventBus.dispatch("showannotationeditorui", {
				source: this,
				mode
			});
		}
		setPreference(name, value) {
			this._eventBus.dispatch("setpreference", {
				source: this,
				name,
				value
			});
		}
		onSetPreference({ name, value }) {
			switch (name) {
				case "enableNewAltTextWhenAddingImage":
					this.#enableNewAltTextWhenAddingImage = value;
					break;
			}
		}
		onPageChanging({ pageNumber }) {
			this.#currentPageIndex = pageNumber - 1;
		}
		focusMainContainer() {
			this.#container.focus();
		}
		findParent(x$2, y$3) {
			for (const layer of this.#allLayers.values()) {
				const { x: layerX, y: layerY, width, height } = layer.div.getBoundingClientRect();
				if (x$2 >= layerX && x$2 <= layerX + width && y$3 >= layerY && y$3 <= layerY + height) {
					return layer;
				}
			}
			return null;
		}
		disableUserSelect(value = false) {
			this.#viewer.classList.toggle("noUserSelect", value);
		}
		addShouldRescale(editor) {
			this.#editorsToRescale.add(editor);
		}
		removeShouldRescale(editor) {
			this.#editorsToRescale.delete(editor);
		}
		onScaleChanging({ scale }) {
			this.commitOrRemove();
			this.viewParameters.realScale = scale * PixelsPerInch.PDF_TO_CSS_UNITS;
			for (const editor of this.#editorsToRescale) {
				editor.onScaleChanging();
			}
			this.#currentDrawingSession?.onScaleChanging();
		}
		onRotationChanging({ pagesRotation }) {
			this.commitOrRemove();
			this.viewParameters.rotation = pagesRotation;
		}
		#getAnchorElementForSelection({ anchorNode }) {
			return anchorNode.nodeType === Node.TEXT_NODE ? anchorNode.parentElement : anchorNode;
		}
		#getLayerForTextLayer(textLayer) {
			const { currentLayer } = this;
			if (currentLayer.hasTextLayer(textLayer)) {
				return currentLayer;
			}
			for (const layer of this.#allLayers.values()) {
				if (layer.hasTextLayer(textLayer)) {
					return layer;
				}
			}
			return null;
		}
		highlightSelection(methodOfCreation = "", comment = false) {
			const selection = document.getSelection();
			if (!selection || selection.isCollapsed) {
				return;
			}
			const { anchorNode, anchorOffset, focusNode, focusOffset } = selection;
			const text$2 = selection.toString();
			const anchorElement = this.#getAnchorElementForSelection(selection);
			const textLayer = anchorElement.closest(".textLayer");
			const boxes = this.getSelectionBoxes(textLayer);
			if (!boxes) {
				return;
			}
			selection.empty();
			const layer = this.#getLayerForTextLayer(textLayer);
			const isNoneMode = this.#mode === AnnotationEditorType.NONE;
			const callback = () => {
				const editor = layer?.createAndAddNewEditor({
					x: 0,
					y: 0
				}, false, {
					methodOfCreation,
					boxes,
					anchorNode,
					anchorOffset,
					focusNode,
					focusOffset,
					text: text$2
				});
				if (isNoneMode) {
					this.showAllEditors("highlight", true, true);
				}
				if (comment) {
					editor?.editComment();
				}
			};
			if (isNoneMode) {
				this.switchToMode(AnnotationEditorType.HIGHLIGHT, callback);
				return;
			}
			callback();
		}
		commentSelection(methodOfCreation = "") {
			this.highlightSelection(methodOfCreation, true);
		}
		#displayFloatingToolbar() {
			const selection = document.getSelection();
			if (!selection || selection.isCollapsed) {
				return;
			}
			const anchorElement = this.#getAnchorElementForSelection(selection);
			const textLayer = anchorElement.closest(".textLayer");
			const boxes = this.getSelectionBoxes(textLayer);
			if (!boxes) {
				return;
			}
			this.#floatingToolbar ||= new FloatingToolbar(this);
			this.#floatingToolbar.show(textLayer, boxes, this.direction === "ltr");
		}
		getAndRemoveDataFromAnnotationStorage(annotationId) {
			if (!this.#annotationStorage) {
				return null;
			}
			const key = `${AnnotationEditorPrefix}${annotationId}`;
			const storedValue = this.#annotationStorage.getRawValue(key);
			if (storedValue) {
				this.#annotationStorage.remove(key);
			}
			return storedValue;
		}
		addToAnnotationStorage(editor) {
			if (!editor.isEmpty() && this.#annotationStorage && !this.#annotationStorage.has(editor.id)) {
				this.#annotationStorage.setValue(editor.id, editor);
			}
		}
		a11yAlert(messageId, args = null) {
			const viewerAlert = this.#viewerAlert;
			if (!viewerAlert) {
				return;
			}
			viewerAlert.setAttribute("data-l10n-id", messageId);
			if (args) {
				viewerAlert.setAttribute("data-l10n-args", JSON.stringify(args));
			} else {
				viewerAlert.removeAttribute("data-l10n-args");
			}
		}
		#selectionChange() {
			const selection = document.getSelection();
			if (!selection || selection.isCollapsed) {
				if (this.#selectedTextNode) {
					this.#floatingToolbar?.hide();
					this.#selectedTextNode = null;
					this.#dispatchUpdateStates({ hasSelectedText: false });
				}
				return;
			}
			const { anchorNode } = selection;
			if (anchorNode === this.#selectedTextNode) {
				return;
			}
			const anchorElement = this.#getAnchorElementForSelection(selection);
			const textLayer = anchorElement.closest(".textLayer");
			if (!textLayer) {
				if (this.#selectedTextNode) {
					this.#floatingToolbar?.hide();
					this.#selectedTextNode = null;
					this.#dispatchUpdateStates({ hasSelectedText: false });
				}
				return;
			}
			this.#floatingToolbar?.hide();
			this.#selectedTextNode = anchorNode;
			this.#dispatchUpdateStates({ hasSelectedText: true });
			if (this.#mode !== AnnotationEditorType.HIGHLIGHT && this.#mode !== AnnotationEditorType.NONE) {
				return;
			}
			if (this.#mode === AnnotationEditorType.HIGHLIGHT) {
				this.showAllEditors("highlight", true, true);
			}
			this.#highlightWhenShiftUp = this.isShiftKeyDown;
			if (!this.isShiftKeyDown) {
				const activeLayer = this.#mode === AnnotationEditorType.HIGHLIGHT ? this.#getLayerForTextLayer(textLayer) : null;
				activeLayer?.toggleDrawing();
				if (this.#isPointerDown) {
					const ac = new AbortController();
					const signal = this.combinedSignal(ac);
					const pointerup = (e$10) => {
						if (e$10.type === "pointerup" && e$10.button !== 0) {
							return;
						}
						ac.abort();
						activeLayer?.toggleDrawing(true);
						if (e$10.type === "pointerup") {
							this.#onSelectEnd("main_toolbar");
						}
					};
					window.addEventListener("pointerup", pointerup, { signal });
					window.addEventListener("blur", pointerup, { signal });
				} else {
					activeLayer?.toggleDrawing(true);
					this.#onSelectEnd("main_toolbar");
				}
			}
		}
		#onSelectEnd(methodOfCreation = "") {
			if (this.#mode === AnnotationEditorType.HIGHLIGHT) {
				this.highlightSelection(methodOfCreation);
			} else if (this.#enableHighlightFloatingButton) {
				this.#displayFloatingToolbar();
			}
		}
		#addSelectionListener() {
			document.addEventListener("selectionchange", this.#selectionChange.bind(this), { signal: this._signal });
		}
		#addFocusManager() {
			if (this.#focusManagerAC) {
				return;
			}
			this.#focusManagerAC = new AbortController();
			const signal = this.combinedSignal(this.#focusManagerAC);
			window.addEventListener("focus", this.focus.bind(this), { signal });
			window.addEventListener("blur", this.blur.bind(this), { signal });
		}
		#removeFocusManager() {
			this.#focusManagerAC?.abort();
			this.#focusManagerAC = null;
		}
		blur() {
			this.isShiftKeyDown = false;
			if (this.#highlightWhenShiftUp) {
				this.#highlightWhenShiftUp = false;
				this.#onSelectEnd("main_toolbar");
			}
			if (!this.hasSelection) {
				return;
			}
			const { activeElement } = document;
			for (const editor of this.#selectedEditors) {
				if (editor.div.contains(activeElement)) {
					this.#lastActiveElement = [editor, activeElement];
					editor._focusEventsAllowed = false;
					break;
				}
			}
		}
		focus() {
			if (!this.#lastActiveElement) {
				return;
			}
			const [lastEditor, lastActiveElement] = this.#lastActiveElement;
			this.#lastActiveElement = null;
			lastActiveElement.addEventListener("focusin", () => {
				lastEditor._focusEventsAllowed = true;
			}, {
				once: true,
				signal: this._signal
			});
			lastActiveElement.focus();
		}
		#addKeyboardManager() {
			if (this.#keyboardManagerAC) {
				return;
			}
			this.#keyboardManagerAC = new AbortController();
			const signal = this.combinedSignal(this.#keyboardManagerAC);
			window.addEventListener("keydown", this.keydown.bind(this), { signal });
			window.addEventListener("keyup", this.keyup.bind(this), { signal });
		}
		#removeKeyboardManager() {
			this.#keyboardManagerAC?.abort();
			this.#keyboardManagerAC = null;
		}
		#addCopyPasteListeners() {
			if (this.#copyPasteAC) {
				return;
			}
			this.#copyPasteAC = new AbortController();
			const signal = this.combinedSignal(this.#copyPasteAC);
			document.addEventListener("copy", this.copy.bind(this), { signal });
			document.addEventListener("cut", this.cut.bind(this), { signal });
			document.addEventListener("paste", this.paste.bind(this), { signal });
		}
		#removeCopyPasteListeners() {
			this.#copyPasteAC?.abort();
			this.#copyPasteAC = null;
		}
		#addDragAndDropListeners() {
			const signal = this._signal;
			document.addEventListener("dragover", this.dragOver.bind(this), { signal });
			document.addEventListener("drop", this.drop.bind(this), { signal });
		}
		addEditListeners() {
			this.#addKeyboardManager();
			this.setEditingState(true);
		}
		removeEditListeners() {
			this.#removeKeyboardManager();
			this.setEditingState(false);
		}
		dragOver(event) {
			for (const { type } of event.dataTransfer.items) {
				for (const editorType of this.#editorTypes) {
					if (editorType.isHandlingMimeForPasting(type)) {
						event.dataTransfer.dropEffect = "copy";
						event.preventDefault();
						return;
					}
				}
			}
		}
		drop(event) {
			for (const item of event.dataTransfer.items) {
				for (const editorType of this.#editorTypes) {
					if (editorType.isHandlingMimeForPasting(item.type)) {
						editorType.paste(item, this.currentLayer);
						event.preventDefault();
						return;
					}
				}
			}
		}
		copy(event) {
			event.preventDefault();
			this.#activeEditor?.commitOrRemove();
			if (!this.hasSelection) {
				return;
			}
			const editors = [];
			for (const editor of this.#selectedEditors) {
				const serialized = editor.serialize(true);
				if (serialized) {
					editors.push(serialized);
				}
			}
			if (editors.length === 0) {
				return;
			}
			event.clipboardData.setData("application/pdfjs", JSON.stringify(editors));
		}
		cut(event) {
			this.copy(event);
			this.delete();
		}
		async paste(event) {
			event.preventDefault();
			const { clipboardData } = event;
			for (const item of clipboardData.items) {
				for (const editorType of this.#editorTypes) {
					if (editorType.isHandlingMimeForPasting(item.type)) {
						editorType.paste(item, this.currentLayer);
						return;
					}
				}
			}
			let data = clipboardData.getData("application/pdfjs");
			if (!data) {
				return;
			}
			try {
				data = JSON.parse(data);
			} catch (ex) {
				warn$2(`paste: "${ex.message}".`);
				return;
			}
			if (!Array.isArray(data)) {
				return;
			}
			this.unselectAll();
			const layer = this.currentLayer;
			try {
				const newEditors = [];
				for (const editor of data) {
					const deserializedEditor = await layer.deserialize(editor);
					if (!deserializedEditor) {
						return;
					}
					newEditors.push(deserializedEditor);
				}
				const cmd = () => {
					for (const editor of newEditors) {
						this.#addEditorToLayer(editor);
					}
					this.#selectEditors(newEditors);
				};
				const undo = () => {
					for (const editor of newEditors) {
						editor.remove();
					}
				};
				this.addCommands({
					cmd,
					undo,
					mustExec: true
				});
			} catch (ex) {
				warn$2(`paste: "${ex.message}".`);
			}
		}
		keydown(event) {
			if (!this.isShiftKeyDown && event.key === "Shift") {
				this.isShiftKeyDown = true;
			}
			if (this.#mode !== AnnotationEditorType.NONE && !this.isEditorHandlingKeyboard) {
				AnnotationEditorUIManager._keyboardManager.exec(this, event);
			}
		}
		keyup(event) {
			if (this.isShiftKeyDown && event.key === "Shift") {
				this.isShiftKeyDown = false;
				if (this.#highlightWhenShiftUp) {
					this.#highlightWhenShiftUp = false;
					this.#onSelectEnd("main_toolbar");
				}
			}
		}
		onEditingAction({ name }) {
			switch (name) {
				case "undo":
				case "redo":
				case "delete":
				case "selectAll":
					this[name]();
					break;
				case "highlightSelection":
					this.highlightSelection("context_menu");
					break;
				case "commentSelection":
					this.commentSelection("context_menu");
					break;
			}
		}
		#dispatchUpdateStates(details) {
			const hasChanged = Object.entries(details).some(([key, value]) => this.#previousStates[key] !== value);
			if (hasChanged) {
				this._eventBus.dispatch("annotationeditorstateschanged", {
					source: this,
					details: Object.assign(this.#previousStates, details)
				});
				if (this.#mode === AnnotationEditorType.HIGHLIGHT && details.hasSelectedEditor === false) {
					this.#dispatchUpdateUI([[AnnotationEditorParamsType.HIGHLIGHT_FREE, true]]);
				}
			}
		}
		#dispatchUpdateUI(details) {
			this._eventBus.dispatch("annotationeditorparamschanged", {
				source: this,
				details
			});
		}
		setEditingState(isEditing) {
			if (isEditing) {
				this.#addFocusManager();
				this.#addCopyPasteListeners();
				this.#dispatchUpdateStates({
					isEditing: this.#mode !== AnnotationEditorType.NONE,
					isEmpty: this.#isEmpty(),
					hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),
					hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),
					hasSelectedEditor: false
				});
			} else {
				this.#removeFocusManager();
				this.#removeCopyPasteListeners();
				this.#dispatchUpdateStates({ isEditing: false });
				this.disableUserSelect(false);
			}
		}
		registerEditorTypes(types) {
			if (this.#editorTypes) {
				return;
			}
			this.#editorTypes = types;
			for (const editorType of this.#editorTypes) {
				this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);
			}
		}
		getId() {
			return this.#idManager.id;
		}
		get currentLayer() {
			return this.#allLayers.get(this.#currentPageIndex);
		}
		getLayer(pageIndex) {
			return this.#allLayers.get(pageIndex);
		}
		get currentPageIndex() {
			return this.#currentPageIndex;
		}
		addLayer(layer) {
			this.#allLayers.set(layer.pageIndex, layer);
			if (this.#isEnabled) {
				layer.enable();
			} else {
				layer.disable();
			}
		}
		removeLayer(layer) {
			this.#allLayers.delete(layer.pageIndex);
		}
		async updateMode(mode, editId = null, isFromKeyboard = false, mustEnterInEditMode = false, editComment = false) {
			if (this.#mode === mode) {
				return;
			}
			if (this.#updateModeCapability) {
				await this.#updateModeCapability.promise;
				if (!this.#updateModeCapability) {
					return;
				}
			}
			this.#updateModeCapability = Promise.withResolvers();
			this.#currentDrawingSession?.commitOrRemove();
			if (this.#mode === AnnotationEditorType.POPUP) {
				this.#commentManager?.hideSidebar();
			}
			this.#commentManager?.destroyPopup();
			this.#mode = mode;
			if (mode === AnnotationEditorType.NONE) {
				this.setEditingState(false);
				this.#disableAll();
				for (const editor of this.#allEditors.values()) {
					editor.hideStandaloneCommentButton();
				}
				this._editorUndoBar?.hide();
				this.toggleComment(null);
				this.#updateModeCapability.resolve();
				return;
			}
			for (const editor of this.#allEditors.values()) {
				editor.addStandaloneCommentButton();
			}
			if (mode === AnnotationEditorType.SIGNATURE) {
				await this.#signatureManager?.loadSignatures();
			}
			this.setEditingState(true);
			await this.#enableAll();
			this.unselectAll();
			for (const layer of this.#allLayers.values()) {
				layer.updateMode(mode);
			}
			if (mode === AnnotationEditorType.POPUP) {
				this.#allEditableAnnotations ||= await this.#pdfDocument.getAnnotationsByType(new Set(this.#editorTypes.map((editorClass) => editorClass._editorType)));
				const elementIds = new Set();
				const allComments = [];
				for (const editor of this.#allEditors.values()) {
					const { annotationElementId, hasComment, deleted } = editor;
					if (annotationElementId) {
						elementIds.add(annotationElementId);
					}
					if (hasComment && !deleted) {
						allComments.push(editor.getData());
					}
				}
				for (const annotation of this.#allEditableAnnotations) {
					const { id, popupRef, contentsObj } = annotation;
					if (popupRef && contentsObj?.str && !elementIds.has(id) && !this.#deletedAnnotationsElementIds.has(id)) {
						allComments.push(annotation);
					}
				}
				this.#commentManager?.showSidebar(allComments);
			}
			if (!editId) {
				if (isFromKeyboard) {
					this.addNewEditorFromKeyboard();
				}
				this.#updateModeCapability.resolve();
				return;
			}
			for (const editor of this.#allEditors.values()) {
				if (editor.uid === editId) {
					this.setSelected(editor);
					if (editComment) {
						editor.editComment();
					} else if (mustEnterInEditMode) {
						editor.enterInEditMode();
					} else {
						editor.focus();
					}
				} else {
					editor.unselect();
				}
			}
			this.#updateModeCapability.resolve();
		}
		addNewEditorFromKeyboard() {
			if (this.currentLayer.canCreateNewEmptyEditor()) {
				this.currentLayer.addNewEditor();
			}
		}
		updateToolbar(options) {
			if (options.mode === this.#mode) {
				return;
			}
			this._eventBus.dispatch("switchannotationeditormode", {
				source: this,
				...options
			});
		}
		updateParams(type, value) {
			if (!this.#editorTypes) {
				return;
			}
			switch (type) {
				case AnnotationEditorParamsType.CREATE:
					this.currentLayer.addNewEditor(value);
					return;
				case AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL:
					this._eventBus.dispatch("reporttelemetry", {
						source: this,
						details: {
							type: "editing",
							data: {
								type: "highlight",
								action: "toggle_visibility"
							}
						}
					});
					(this.#showAllStates ||= new Map()).set(type, value);
					this.showAllEditors("highlight", value);
					break;
			}
			if (this.hasSelection) {
				for (const editor of this.#selectedEditors) {
					editor.updateParams(type, value);
				}
			} else {
				for (const editorType of this.#editorTypes) {
					editorType.updateDefaultParams(type, value);
				}
			}
		}
		showAllEditors(type, visible, updateButton = false) {
			for (const editor of this.#allEditors.values()) {
				if (editor.editorType === type) {
					editor.show(visible);
				}
			}
			const state$1 = this.#showAllStates?.get(AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL) ?? true;
			if (state$1 !== visible) {
				this.#dispatchUpdateUI([[AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL, visible]]);
			}
		}
		enableWaiting(mustWait = false) {
			if (this.#isWaiting === mustWait) {
				return;
			}
			this.#isWaiting = mustWait;
			for (const layer of this.#allLayers.values()) {
				if (mustWait) {
					layer.disableClick();
				} else {
					layer.enableClick();
				}
				layer.div.classList.toggle("waiting", mustWait);
			}
		}
		async #enableAll() {
			if (!this.#isEnabled) {
				this.#isEnabled = true;
				const promises = [];
				for (const layer of this.#allLayers.values()) {
					promises.push(layer.enable());
				}
				await Promise.all(promises);
				for (const editor of this.#allEditors.values()) {
					editor.enable();
				}
			}
		}
		#disableAll() {
			this.unselectAll();
			if (this.#isEnabled) {
				this.#isEnabled = false;
				for (const layer of this.#allLayers.values()) {
					layer.disable();
				}
				for (const editor of this.#allEditors.values()) {
					editor.disable();
				}
			}
		}
		*getEditors(pageIndex) {
			for (const editor of this.#allEditors.values()) {
				if (editor.pageIndex === pageIndex) {
					yield editor;
				}
			}
		}
		getEditor(id) {
			return this.#allEditors.get(id);
		}
		addEditor(editor) {
			this.#allEditors.set(editor.id, editor);
		}
		removeEditor(editor) {
			if (editor.div.contains(document.activeElement)) {
				if (this.#focusMainContainerTimeoutId) {
					clearTimeout(this.#focusMainContainerTimeoutId);
				}
				this.#focusMainContainerTimeoutId = setTimeout(() => {
					this.focusMainContainer();
					this.#focusMainContainerTimeoutId = null;
				}, 0);
			}
			this.#allEditors.delete(editor.id);
			if (editor.annotationElementId) {
				this.#missingCanvases?.delete(editor.annotationElementId);
			}
			this.unselect(editor);
			if (!editor.annotationElementId || !this.#deletedAnnotationsElementIds.has(editor.annotationElementId)) {
				this.#annotationStorage?.remove(editor.id);
			}
		}
		addDeletedAnnotationElement(editor) {
			this.#deletedAnnotationsElementIds.add(editor.annotationElementId);
			this.addChangedExistingAnnotation(editor);
			editor.deleted = true;
		}
		isDeletedAnnotationElement(annotationElementId) {
			return this.#deletedAnnotationsElementIds.has(annotationElementId);
		}
		removeDeletedAnnotationElement(editor) {
			this.#deletedAnnotationsElementIds.delete(editor.annotationElementId);
			this.removeChangedExistingAnnotation(editor);
			editor.deleted = false;
		}
		#addEditorToLayer(editor) {
			const layer = this.#allLayers.get(editor.pageIndex);
			if (layer) {
				layer.addOrRebuild(editor);
			} else {
				this.addEditor(editor);
				this.addToAnnotationStorage(editor);
			}
		}
		setActiveEditor(editor) {
			if (this.#activeEditor === editor) {
				return;
			}
			this.#activeEditor = editor;
			if (editor) {
				this.#dispatchUpdateUI(editor.propertiesToUpdate);
			}
		}
		get #lastSelectedEditor() {
			let ed = null;
			for (ed of this.#selectedEditors) {}
			return ed;
		}
		updateUI(editor) {
			if (this.#lastSelectedEditor === editor) {
				this.#dispatchUpdateUI(editor.propertiesToUpdate);
			}
		}
		updateUIForDefaultProperties(editorType) {
			this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);
		}
		toggleSelected(editor) {
			if (this.#selectedEditors.has(editor)) {
				this.#selectedEditors.delete(editor);
				editor.unselect();
				this.#dispatchUpdateStates({ hasSelectedEditor: this.hasSelection });
				return;
			}
			this.#selectedEditors.add(editor);
			editor.select();
			this.#dispatchUpdateUI(editor.propertiesToUpdate);
			this.#dispatchUpdateStates({ hasSelectedEditor: true });
		}
		setSelected(editor) {
			this.updateToolbar({
				mode: editor.mode,
				editId: editor.uid
			});
			this.#currentDrawingSession?.commitOrRemove();
			for (const ed of this.#selectedEditors) {
				if (ed !== editor) {
					ed.unselect();
				}
			}
			this.#selectedEditors.clear();
			this.#selectedEditors.add(editor);
			editor.select();
			this.#dispatchUpdateUI(editor.propertiesToUpdate);
			this.#dispatchUpdateStates({ hasSelectedEditor: true });
		}
		isSelected(editor) {
			return this.#selectedEditors.has(editor);
		}
		get firstSelectedEditor() {
			return this.#selectedEditors.values().next().value;
		}
		unselect(editor) {
			editor.unselect();
			this.#selectedEditors.delete(editor);
			this.#dispatchUpdateStates({ hasSelectedEditor: this.hasSelection });
		}
		get hasSelection() {
			return this.#selectedEditors.size !== 0;
		}
		get isEnterHandled() {
			return this.#selectedEditors.size === 1 && this.firstSelectedEditor.isEnterHandled;
		}
		undo() {
			this.#commandManager.undo();
			this.#dispatchUpdateStates({
				hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),
				hasSomethingToRedo: true,
				isEmpty: this.#isEmpty()
			});
			this._editorUndoBar?.hide();
		}
		redo() {
			this.#commandManager.redo();
			this.#dispatchUpdateStates({
				hasSomethingToUndo: true,
				hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),
				isEmpty: this.#isEmpty()
			});
		}
		addCommands(params) {
			this.#commandManager.add(params);
			this.#dispatchUpdateStates({
				hasSomethingToUndo: true,
				hasSomethingToRedo: false,
				isEmpty: this.#isEmpty()
			});
		}
		cleanUndoStack(type) {
			this.#commandManager.cleanType(type);
		}
		#isEmpty() {
			if (this.#allEditors.size === 0) {
				return true;
			}
			if (this.#allEditors.size === 1) {
				for (const editor of this.#allEditors.values()) {
					return editor.isEmpty();
				}
			}
			return false;
		}
		delete() {
			this.commitOrRemove();
			const drawingEditor = this.currentLayer?.endDrawingSession(true);
			if (!this.hasSelection && !drawingEditor) {
				return;
			}
			const editors = drawingEditor ? [drawingEditor] : [...this.#selectedEditors];
			const cmd = () => {
				this._editorUndoBar?.show(undo, editors.length === 1 ? editors[0].editorType : editors.length);
				for (const editor of editors) {
					editor.remove();
				}
			};
			const undo = () => {
				for (const editor of editors) {
					this.#addEditorToLayer(editor);
				}
			};
			this.addCommands({
				cmd,
				undo,
				mustExec: true
			});
		}
		commitOrRemove() {
			this.#activeEditor?.commitOrRemove();
		}
		hasSomethingToControl() {
			return this.#activeEditor || this.hasSelection;
		}
		#selectEditors(editors) {
			for (const editor of this.#selectedEditors) {
				editor.unselect();
			}
			this.#selectedEditors.clear();
			for (const editor of editors) {
				if (editor.isEmpty()) {
					continue;
				}
				this.#selectedEditors.add(editor);
				editor.select();
			}
			this.#dispatchUpdateStates({ hasSelectedEditor: this.hasSelection });
		}
		selectAll() {
			for (const editor of this.#selectedEditors) {
				editor.commit();
			}
			this.#selectEditors(this.#allEditors.values());
		}
		unselectAll() {
			if (this.#activeEditor) {
				this.#activeEditor.commitOrRemove();
				if (this.#mode !== AnnotationEditorType.NONE) {
					return;
				}
			}
			if (this.#currentDrawingSession?.commitOrRemove()) {
				return;
			}
			if (!this.hasSelection) {
				return;
			}
			for (const editor of this.#selectedEditors) {
				editor.unselect();
			}
			this.#selectedEditors.clear();
			this.#dispatchUpdateStates({ hasSelectedEditor: false });
		}
		translateSelectedEditors(x$2, y$3, noCommit = false) {
			if (!noCommit) {
				this.commitOrRemove();
			}
			if (!this.hasSelection) {
				return;
			}
			this.#translation[0] += x$2;
			this.#translation[1] += y$3;
			const [totalX, totalY] = this.#translation;
			const editors = [...this.#selectedEditors];
			const TIME_TO_WAIT = 1e3;
			if (this.#translationTimeoutId) {
				clearTimeout(this.#translationTimeoutId);
			}
			this.#translationTimeoutId = setTimeout(() => {
				this.#translationTimeoutId = null;
				this.#translation[0] = this.#translation[1] = 0;
				this.addCommands({
					cmd: () => {
						for (const editor of editors) {
							if (this.#allEditors.has(editor.id)) {
								editor.translateInPage(totalX, totalY);
								editor.translationDone();
							}
						}
					},
					undo: () => {
						for (const editor of editors) {
							if (this.#allEditors.has(editor.id)) {
								editor.translateInPage(-totalX, -totalY);
								editor.translationDone();
							}
						}
					},
					mustExec: false
				});
			}, TIME_TO_WAIT);
			for (const editor of editors) {
				editor.translateInPage(x$2, y$3);
				editor.translationDone();
			}
		}
		setUpDragSession() {
			if (!this.hasSelection) {
				return;
			}
			this.disableUserSelect(true);
			this.#draggingEditors = new Map();
			for (const editor of this.#selectedEditors) {
				this.#draggingEditors.set(editor, {
					savedX: editor.x,
					savedY: editor.y,
					savedPageIndex: editor.pageIndex,
					newX: 0,
					newY: 0,
					newPageIndex: -1
				});
			}
		}
		endDragSession() {
			if (!this.#draggingEditors) {
				return false;
			}
			this.disableUserSelect(false);
			const map$2 = this.#draggingEditors;
			this.#draggingEditors = null;
			let mustBeAddedInUndoStack = false;
			for (const [{ x: x$2, y: y$3, pageIndex }, value] of map$2) {
				value.newX = x$2;
				value.newY = y$3;
				value.newPageIndex = pageIndex;
				mustBeAddedInUndoStack ||= x$2 !== value.savedX || y$3 !== value.savedY || pageIndex !== value.savedPageIndex;
			}
			if (!mustBeAddedInUndoStack) {
				return false;
			}
			const move = (editor, x$2, y$3, pageIndex) => {
				if (this.#allEditors.has(editor.id)) {
					const parent = this.#allLayers.get(pageIndex);
					if (parent) {
						editor._setParentAndPosition(parent, x$2, y$3);
					} else {
						editor.pageIndex = pageIndex;
						editor.x = x$2;
						editor.y = y$3;
					}
				}
			};
			this.addCommands({
				cmd: () => {
					for (const [editor, { newX, newY, newPageIndex }] of map$2) {
						move(editor, newX, newY, newPageIndex);
					}
				},
				undo: () => {
					for (const [editor, { savedX, savedY, savedPageIndex }] of map$2) {
						move(editor, savedX, savedY, savedPageIndex);
					}
				},
				mustExec: true
			});
			return true;
		}
		dragSelectedEditors(tx, ty) {
			if (!this.#draggingEditors) {
				return;
			}
			for (const editor of this.#draggingEditors.keys()) {
				editor.drag(tx, ty);
			}
		}
		rebuild(editor) {
			if (editor.parent === null) {
				const parent = this.getLayer(editor.pageIndex);
				if (parent) {
					parent.changeParent(editor);
					parent.addOrRebuild(editor);
				} else {
					this.addEditor(editor);
					this.addToAnnotationStorage(editor);
					editor.rebuild();
				}
			} else {
				editor.parent.addOrRebuild(editor);
			}
		}
		get isEditorHandlingKeyboard() {
			return this.getActive()?.shouldGetKeyboardEvents() || this.#selectedEditors.size === 1 && this.firstSelectedEditor.shouldGetKeyboardEvents();
		}
		isActive(editor) {
			return this.#activeEditor === editor;
		}
		getActive() {
			return this.#activeEditor;
		}
		getMode() {
			return this.#mode;
		}
		isEditingMode() {
			return this.#mode !== AnnotationEditorType.NONE;
		}
		get imageManager() {
			return shadow(this, "imageManager", new ImageManager());
		}
		getSelectionBoxes(textLayer) {
			if (!textLayer) {
				return null;
			}
			const selection = document.getSelection();
			for (let i$7 = 0, ii = selection.rangeCount; i$7 < ii; i$7++) {
				if (!textLayer.contains(selection.getRangeAt(i$7).commonAncestorContainer)) {
					return null;
				}
			}
			const { x: layerX, y: layerY, width: parentWidth, height: parentHeight } = textLayer.getBoundingClientRect();
			let rotator;
			switch (textLayer.getAttribute("data-main-rotation")) {
				case "90":
					rotator = (x$2, y$3, w$2, h$5) => ({
						x: (y$3 - layerY) / parentHeight,
						y: 1 - (x$2 + w$2 - layerX) / parentWidth,
						width: h$5 / parentHeight,
						height: w$2 / parentWidth
					});
					break;
				case "180":
					rotator = (x$2, y$3, w$2, h$5) => ({
						x: 1 - (x$2 + w$2 - layerX) / parentWidth,
						y: 1 - (y$3 + h$5 - layerY) / parentHeight,
						width: w$2 / parentWidth,
						height: h$5 / parentHeight
					});
					break;
				case "270":
					rotator = (x$2, y$3, w$2, h$5) => ({
						x: 1 - (y$3 + h$5 - layerY) / parentHeight,
						y: (x$2 - layerX) / parentWidth,
						width: h$5 / parentHeight,
						height: w$2 / parentWidth
					});
					break;
				default:
					rotator = (x$2, y$3, w$2, h$5) => ({
						x: (x$2 - layerX) / parentWidth,
						y: (y$3 - layerY) / parentHeight,
						width: w$2 / parentWidth,
						height: h$5 / parentHeight
					});
					break;
			}
			const boxes = [];
			for (let i$7 = 0, ii = selection.rangeCount; i$7 < ii; i$7++) {
				const range = selection.getRangeAt(i$7);
				if (range.collapsed) {
					continue;
				}
				for (const { x: x$2, y: y$3, width, height } of range.getClientRects()) {
					if (width === 0 || height === 0) {
						continue;
					}
					boxes.push(rotator(x$2, y$3, width, height));
				}
			}
			return boxes.length === 0 ? null : boxes;
		}
		addChangedExistingAnnotation({ annotationElementId, id }) {
			(this.#changedExistingAnnotations ||= new Map()).set(annotationElementId, id);
		}
		removeChangedExistingAnnotation({ annotationElementId }) {
			this.#changedExistingAnnotations?.delete(annotationElementId);
		}
		renderAnnotationElement(annotation) {
			const editorId = this.#changedExistingAnnotations?.get(annotation.data.id);
			if (!editorId) {
				return;
			}
			const editor = this.#annotationStorage.getRawValue(editorId);
			if (!editor) {
				return;
			}
			if (this.#mode === AnnotationEditorType.NONE && !editor.hasBeenModified) {
				return;
			}
			editor.renderAnnotationElement(annotation);
		}
		setMissingCanvas(annotationId, annotationElementId, canvas) {
			const editor = this.#missingCanvases?.get(annotationId);
			if (!editor) {
				return;
			}
			editor.setCanvas(annotationElementId, canvas);
			this.#missingCanvases.delete(annotationId);
		}
		addMissingCanvas(annotationId, editor) {
			(this.#missingCanvases ||= new Map()).set(annotationId, editor);
		}
	};
	;
	AltText = class AltText {
		#altText = null;
		#altTextDecorative = false;
		#altTextButton = null;
		#altTextButtonLabel = null;
		#altTextTooltip = null;
		#altTextTooltipTimeout = null;
		#altTextWasFromKeyBoard = false;
		#badge = null;
		#editor = null;
		#guessedText = null;
		#textWithDisclaimer = null;
		#useNewAltTextFlow = false;
		static #l10nNewButton = null;
		static _l10n = null;
		constructor(editor) {
			this.#editor = editor;
			this.#useNewAltTextFlow = editor._uiManager.useNewAltTextFlow;
			AltText.#l10nNewButton ||= Object.freeze({
				added: "pdfjs-editor-new-alt-text-added-button",
				"added-label": "pdfjs-editor-new-alt-text-added-button-label",
				missing: "pdfjs-editor-new-alt-text-missing-button",
				"missing-label": "pdfjs-editor-new-alt-text-missing-button-label",
				review: "pdfjs-editor-new-alt-text-to-review-button",
				"review-label": "pdfjs-editor-new-alt-text-to-review-button-label"
			});
		}
		static initialize(l10n) {
			AltText._l10n ??= l10n;
		}
		async render() {
			const altText = this.#altTextButton = document.createElement("button");
			altText.className = "altText";
			altText.tabIndex = "0";
			const label = this.#altTextButtonLabel = document.createElement("span");
			altText.append(label);
			if (this.#useNewAltTextFlow) {
				altText.classList.add("new");
				altText.setAttribute("data-l10n-id", AltText.#l10nNewButton.missing);
				label.setAttribute("data-l10n-id", AltText.#l10nNewButton["missing-label"]);
			} else {
				altText.setAttribute("data-l10n-id", "pdfjs-editor-alt-text-button");
				label.setAttribute("data-l10n-id", "pdfjs-editor-alt-text-button-label");
			}
			const signal = this.#editor._uiManager._signal;
			altText.addEventListener("contextmenu", noContextMenu, { signal });
			altText.addEventListener("pointerdown", (event) => event.stopPropagation(), { signal });
			const onClick = (event) => {
				event.preventDefault();
				this.#editor._uiManager.editAltText(this.#editor);
				if (this.#useNewAltTextFlow) {
					this.#editor._reportTelemetry({
						action: "pdfjs.image.alt_text.image_status_label_clicked",
						data: { label: this.#label }
					});
				}
			};
			altText.addEventListener("click", onClick, {
				capture: true,
				signal
			});
			altText.addEventListener("keydown", (event) => {
				if (event.target === altText && event.key === "Enter") {
					this.#altTextWasFromKeyBoard = true;
					onClick(event);
				}
			}, { signal });
			await this.#setState();
			return altText;
		}
		get #label() {
			return this.#altText && "added" || this.#altText === null && this.guessedText && "review" || "missing";
		}
		finish() {
			if (!this.#altTextButton) {
				return;
			}
			this.#altTextButton.focus({ focusVisible: this.#altTextWasFromKeyBoard });
			this.#altTextWasFromKeyBoard = false;
		}
		isEmpty() {
			if (this.#useNewAltTextFlow) {
				return this.#altText === null;
			}
			return !this.#altText && !this.#altTextDecorative;
		}
		hasData() {
			if (this.#useNewAltTextFlow) {
				return this.#altText !== null || !!this.#guessedText;
			}
			return this.isEmpty();
		}
		get guessedText() {
			return this.#guessedText;
		}
		async setGuessedText(guessedText) {
			if (this.#altText !== null) {
				return;
			}
			this.#guessedText = guessedText;
			this.#textWithDisclaimer = await AltText._l10n.get("pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer", { generatedAltText: guessedText });
			this.#setState();
		}
		toggleAltTextBadge(visibility = false) {
			if (!this.#useNewAltTextFlow || this.#altText) {
				this.#badge?.remove();
				this.#badge = null;
				return;
			}
			if (!this.#badge) {
				const badge = this.#badge = document.createElement("div");
				badge.className = "noAltTextBadge";
				this.#editor.div.append(badge);
			}
			this.#badge.classList.toggle("hidden", !visibility);
		}
		serialize(isForCopying) {
			let altText = this.#altText;
			if (!isForCopying && this.#guessedText === altText) {
				altText = this.#textWithDisclaimer;
			}
			return {
				altText,
				decorative: this.#altTextDecorative,
				guessedText: this.#guessedText,
				textWithDisclaimer: this.#textWithDisclaimer
			};
		}
		get data() {
			return {
				altText: this.#altText,
				decorative: this.#altTextDecorative
			};
		}
		set data({ altText, decorative, guessedText, textWithDisclaimer, cancel = false }) {
			if (guessedText) {
				this.#guessedText = guessedText;
				this.#textWithDisclaimer = textWithDisclaimer;
			}
			if (this.#altText === altText && this.#altTextDecorative === decorative) {
				return;
			}
			if (!cancel) {
				this.#altText = altText;
				this.#altTextDecorative = decorative;
			}
			this.#setState();
		}
		toggle(enabled = false) {
			if (!this.#altTextButton) {
				return;
			}
			if (!enabled && this.#altTextTooltipTimeout) {
				clearTimeout(this.#altTextTooltipTimeout);
				this.#altTextTooltipTimeout = null;
			}
			this.#altTextButton.disabled = !enabled;
		}
		shown() {
			this.#editor._reportTelemetry({
				action: "pdfjs.image.alt_text.image_status_label_displayed",
				data: { label: this.#label }
			});
		}
		destroy() {
			this.#altTextButton?.remove();
			this.#altTextButton = null;
			this.#altTextButtonLabel = null;
			this.#altTextTooltip = null;
			this.#badge?.remove();
			this.#badge = null;
		}
		async #setState() {
			const button = this.#altTextButton;
			if (!button) {
				return;
			}
			if (this.#useNewAltTextFlow) {
				button.classList.toggle("done", !!this.#altText);
				button.setAttribute("data-l10n-id", AltText.#l10nNewButton[this.#label]);
				this.#altTextButtonLabel?.setAttribute("data-l10n-id", AltText.#l10nNewButton[`${this.#label}-label`]);
				if (!this.#altText) {
					this.#altTextTooltip?.remove();
					return;
				}
			} else {
				if (!this.#altText && !this.#altTextDecorative) {
					button.classList.remove("done");
					this.#altTextTooltip?.remove();
					return;
				}
				button.classList.add("done");
				button.setAttribute("data-l10n-id", "pdfjs-editor-alt-text-edit-button");
			}
			let tooltip = this.#altTextTooltip;
			if (!tooltip) {
				this.#altTextTooltip = tooltip = document.createElement("span");
				tooltip.className = "tooltip";
				tooltip.setAttribute("role", "tooltip");
				tooltip.id = `alt-text-tooltip-${this.#editor.id}`;
				const DELAY_TO_SHOW_TOOLTIP = 100;
				const signal = this.#editor._uiManager._signal;
				signal.addEventListener("abort", () => {
					clearTimeout(this.#altTextTooltipTimeout);
					this.#altTextTooltipTimeout = null;
				}, { once: true });
				button.addEventListener("mouseenter", () => {
					this.#altTextTooltipTimeout = setTimeout(() => {
						this.#altTextTooltipTimeout = null;
						this.#altTextTooltip.classList.add("show");
						this.#editor._reportTelemetry({ action: "alt_text_tooltip" });
					}, DELAY_TO_SHOW_TOOLTIP);
				}, { signal });
				button.addEventListener("mouseleave", () => {
					if (this.#altTextTooltipTimeout) {
						clearTimeout(this.#altTextTooltipTimeout);
						this.#altTextTooltipTimeout = null;
					}
					this.#altTextTooltip?.classList.remove("show");
				}, { signal });
			}
			if (this.#altTextDecorative) {
				tooltip.setAttribute("data-l10n-id", "pdfjs-editor-alt-text-decorative-tooltip");
			} else {
				tooltip.removeAttribute("data-l10n-id");
				tooltip.textContent = this.#altText;
			}
			if (!tooltip.parentNode) {
				button.append(tooltip);
			}
			const element = this.#editor.getElementForAltText();
			element?.setAttribute("aria-describedby", tooltip.id);
		}
	};
	;
	Comment = class {
		#commentStandaloneButton = null;
		#commentToolbarButton = null;
		#commentWasFromKeyBoard = false;
		#editor = null;
		#initialText = null;
		#richText = null;
		#text = null;
		#date = null;
		#deleted = false;
		#popupPosition = null;
		constructor(editor) {
			this.#editor = editor;
		}
		renderForToolbar() {
			const button = this.#commentToolbarButton = document.createElement("button");
			button.className = "comment";
			return this.#render(button, false);
		}
		renderForStandalone() {
			const button = this.#commentStandaloneButton = document.createElement("button");
			button.className = "annotationCommentButton";
			const position = this.#editor.commentButtonPosition;
			if (position) {
				const { style } = button;
				style.insetInlineEnd = `calc(${100 * (this.#editor._uiManager.direction === "ltr" ? 1 - position[0] : position[0])}% - var(--comment-button-dim))`;
				style.top = `calc(${100 * position[1]}% - var(--comment-button-dim))`;
				const color = this.#editor.commentButtonColor;
				if (color) {
					style.backgroundColor = color;
				}
			}
			return this.#render(button, true);
		}
		focusButton() {
			setTimeout(() => {
				(this.#commentStandaloneButton ?? this.#commentToolbarButton)?.focus();
			}, 0);
		}
		onUpdatedColor() {
			if (!this.#commentStandaloneButton) {
				return;
			}
			const color = this.#editor.commentButtonColor;
			if (color) {
				this.#commentStandaloneButton.style.backgroundColor = color;
			}
			this.#editor._uiManager.updatePopupColor(this.#editor);
		}
		get commentButtonWidth() {
			return (this.#commentStandaloneButton?.getBoundingClientRect().width ?? 0) / this.#editor.parent.boundingClientRect.width;
		}
		get commentPopupPositionInLayer() {
			if (this.#popupPosition) {
				return this.#popupPosition;
			}
			if (!this.#commentStandaloneButton) {
				return null;
			}
			const { x: x$2, y: y$3, height } = this.#commentStandaloneButton.getBoundingClientRect();
			const { x: parentX, y: parentY, width: parentWidth, height: parentHeight } = this.#editor.parent.boundingClientRect;
			return [(x$2 - parentX) / parentWidth, (y$3 + height - parentY) / parentHeight];
		}
		set commentPopupPositionInLayer(pos) {
			this.#popupPosition = pos;
		}
		hasDefaultPopupPosition() {
			return this.#popupPosition === null;
		}
		removeStandaloneCommentButton() {
			this.#commentStandaloneButton?.remove();
			this.#commentStandaloneButton = null;
		}
		removeToolbarCommentButton() {
			this.#commentToolbarButton?.remove();
			this.#commentToolbarButton = null;
		}
		setCommentButtonStates({ selected, hasPopup }) {
			if (!this.#commentStandaloneButton) {
				return;
			}
			this.#commentStandaloneButton.classList.toggle("selected", selected);
			this.#commentStandaloneButton.ariaExpanded = hasPopup;
		}
		#render(comment, isStandalone) {
			if (!this.#editor._uiManager.hasCommentManager()) {
				return null;
			}
			comment.tabIndex = "0";
			comment.ariaHasPopup = "dialog";
			if (isStandalone) {
				comment.ariaControls = "commentPopup";
				comment.setAttribute("data-l10n-id", "pdfjs-show-comment-button");
			} else {
				comment.ariaControlsElements = [this.#editor._uiManager.getCommentDialogElement()];
				comment.setAttribute("data-l10n-id", "pdfjs-editor-add-comment-button");
			}
			const signal = this.#editor._uiManager._signal;
			if (!(signal instanceof AbortSignal) || signal.aborted) {
				return comment;
			}
			comment.addEventListener("contextmenu", noContextMenu, { signal });
			if (isStandalone) {
				comment.addEventListener("focusin", (e$10) => {
					this.#editor._focusEventsAllowed = false;
					stopEvent(e$10);
				}, {
					capture: true,
					signal
				});
				comment.addEventListener("focusout", (e$10) => {
					this.#editor._focusEventsAllowed = true;
					stopEvent(e$10);
				}, {
					capture: true,
					signal
				});
			}
			comment.addEventListener("pointerdown", (event) => event.stopPropagation(), { signal });
			const onClick = (event) => {
				event.preventDefault();
				if (comment === this.#commentToolbarButton) {
					this.edit();
				} else {
					this.#editor.toggleComment(true);
				}
			};
			comment.addEventListener("click", onClick, {
				capture: true,
				signal
			});
			comment.addEventListener("keydown", (event) => {
				if (event.target === comment && event.key === "Enter") {
					this.#commentWasFromKeyBoard = true;
					onClick(event);
				}
			}, { signal });
			comment.addEventListener("pointerenter", () => {
				this.#editor.toggleComment(false, true);
			}, { signal });
			comment.addEventListener("pointerleave", () => {
				this.#editor.toggleComment(false, false);
			}, { signal });
			return comment;
		}
		edit(options) {
			const position = this.commentPopupPositionInLayer;
			let posX, posY;
			if (position) {
				[posX, posY] = position;
			} else {
				[posX, posY] = this.#editor.commentButtonPosition;
				const { width, height, x: x$2, y: y$3 } = this.#editor;
				posX = x$2 + posX * width;
				posY = y$3 + posY * height;
			}
			const parentDimensions = this.#editor.parent.boundingClientRect;
			const { x: parentX, y: parentY, width: parentWidth, height: parentHeight } = parentDimensions;
			this.#editor._uiManager.editComment(this.#editor, parentX + posX * parentWidth, parentY + posY * parentHeight, {
				...options,
				parentDimensions
			});
		}
		finish() {
			if (!this.#commentToolbarButton) {
				return;
			}
			this.#commentToolbarButton.focus({ focusVisible: this.#commentWasFromKeyBoard });
			this.#commentWasFromKeyBoard = false;
		}
		isDeleted() {
			return this.#deleted || this.#text === "";
		}
		isEmpty() {
			return this.#text === null;
		}
		hasBeenEdited() {
			return this.isDeleted() || this.#text !== this.#initialText;
		}
		serialize() {
			return this.data;
		}
		get data() {
			return {
				text: this.#text,
				richText: this.#richText,
				date: this.#date,
				deleted: this.isDeleted()
			};
		}
		set data(text$2) {
			if (text$2 !== this.#text) {
				this.#richText = null;
			}
			if (text$2 === null) {
				this.#text = "";
				this.#deleted = true;
				return;
			}
			this.#text = text$2;
			this.#date = new Date();
			this.#deleted = false;
		}
		setInitialText(text$2, richText = null) {
			this.#initialText = text$2;
			this.data = text$2;
			this.#date = null;
			this.#richText = richText;
		}
		shown() {}
		destroy() {
			this.#commentToolbarButton?.remove();
			this.#commentToolbarButton = null;
			this.#commentStandaloneButton?.remove();
			this.#commentStandaloneButton = null;
			this.#text = "";
			this.#richText = null;
			this.#date = null;
			this.#editor = null;
			this.#commentWasFromKeyBoard = false;
			this.#deleted = false;
		}
	};
	;
	TouchManager = class TouchManager {
		#container;
		#isPinching = false;
		#isPinchingStopped = null;
		#isPinchingDisabled;
		#onPinchStart;
		#onPinching;
		#onPinchEnd;
		#pointerDownAC = null;
		#signal;
		#touchInfo = null;
		#touchManagerAC;
		#touchMoveAC = null;
		constructor({ container, isPinchingDisabled = null, isPinchingStopped = null, onPinchStart = null, onPinching = null, onPinchEnd = null, signal }) {
			this.#container = container;
			this.#isPinchingStopped = isPinchingStopped;
			this.#isPinchingDisabled = isPinchingDisabled;
			this.#onPinchStart = onPinchStart;
			this.#onPinching = onPinching;
			this.#onPinchEnd = onPinchEnd;
			this.#touchManagerAC = new AbortController();
			this.#signal = AbortSignal.any([signal, this.#touchManagerAC.signal]);
			container.addEventListener("touchstart", this.#onTouchStart.bind(this), {
				passive: false,
				signal: this.#signal
			});
		}
		get MIN_TOUCH_DISTANCE_TO_PINCH() {
			return 35 / OutputScale.pixelRatio;
		}
		#onTouchStart(evt) {
			if (this.#isPinchingDisabled?.()) {
				return;
			}
			if (evt.touches.length === 1) {
				if (this.#pointerDownAC) {
					return;
				}
				const pointerDownAC = this.#pointerDownAC = new AbortController();
				const signal = AbortSignal.any([this.#signal, pointerDownAC.signal]);
				const container = this.#container;
				const opts = {
					capture: true,
					signal,
					passive: false
				};
				const cancelPointerDown = (e$10) => {
					if (e$10.pointerType === "touch") {
						this.#pointerDownAC?.abort();
						this.#pointerDownAC = null;
					}
				};
				container.addEventListener("pointerdown", (e$10) => {
					if (e$10.pointerType === "touch") {
						stopEvent(e$10);
						cancelPointerDown(e$10);
					}
				}, opts);
				container.addEventListener("pointerup", cancelPointerDown, opts);
				container.addEventListener("pointercancel", cancelPointerDown, opts);
				return;
			}
			if (!this.#touchMoveAC) {
				this.#touchMoveAC = new AbortController();
				const signal = AbortSignal.any([this.#signal, this.#touchMoveAC.signal]);
				const container = this.#container;
				const opt = {
					signal,
					capture: false,
					passive: false
				};
				container.addEventListener("touchmove", this.#onTouchMove.bind(this), opt);
				const onTouchEnd = this.#onTouchEnd.bind(this);
				container.addEventListener("touchend", onTouchEnd, opt);
				container.addEventListener("touchcancel", onTouchEnd, opt);
				opt.capture = true;
				container.addEventListener("pointerdown", stopEvent, opt);
				container.addEventListener("pointermove", stopEvent, opt);
				container.addEventListener("pointercancel", stopEvent, opt);
				container.addEventListener("pointerup", stopEvent, opt);
				this.#onPinchStart?.();
			}
			stopEvent(evt);
			if (evt.touches.length !== 2 || this.#isPinchingStopped?.()) {
				this.#touchInfo = null;
				return;
			}
			let [touch0, touch1] = evt.touches;
			if (touch0.identifier > touch1.identifier) {
				[touch0, touch1] = [touch1, touch0];
			}
			this.#touchInfo = {
				touch0X: touch0.screenX,
				touch0Y: touch0.screenY,
				touch1X: touch1.screenX,
				touch1Y: touch1.screenY
			};
		}
		#onTouchMove(evt) {
			if (!this.#touchInfo || evt.touches.length !== 2) {
				return;
			}
			stopEvent(evt);
			let [touch0, touch1] = evt.touches;
			if (touch0.identifier > touch1.identifier) {
				[touch0, touch1] = [touch1, touch0];
			}
			const { screenX: screen0X, screenY: screen0Y } = touch0;
			const { screenX: screen1X, screenY: screen1Y } = touch1;
			const touchInfo = this.#touchInfo;
			const { touch0X: pTouch0X, touch0Y: pTouch0Y, touch1X: pTouch1X, touch1Y: pTouch1Y } = touchInfo;
			const prevGapX = pTouch1X - pTouch0X;
			const prevGapY = pTouch1Y - pTouch0Y;
			const currGapX = screen1X - screen0X;
			const currGapY = screen1Y - screen0Y;
			const distance = Math.hypot(currGapX, currGapY) || 1;
			const pDistance = Math.hypot(prevGapX, prevGapY) || 1;
			if (!this.#isPinching && Math.abs(pDistance - distance) <= TouchManager.MIN_TOUCH_DISTANCE_TO_PINCH) {
				return;
			}
			touchInfo.touch0X = screen0X;
			touchInfo.touch0Y = screen0Y;
			touchInfo.touch1X = screen1X;
			touchInfo.touch1Y = screen1Y;
			if (!this.#isPinching) {
				this.#isPinching = true;
				return;
			}
			const origin = [(screen0X + screen1X) / 2, (screen0Y + screen1Y) / 2];
			this.#onPinching?.(origin, pDistance, distance);
		}
		#onTouchEnd(evt) {
			if (evt.touches.length >= 2) {
				return;
			}
			if (this.#touchMoveAC) {
				this.#touchMoveAC.abort();
				this.#touchMoveAC = null;
				this.#onPinchEnd?.();
			}
			if (!this.#touchInfo) {
				return;
			}
			stopEvent(evt);
			this.#touchInfo = null;
			this.#isPinching = false;
		}
		destroy() {
			this.#touchManagerAC?.abort();
			this.#touchManagerAC = null;
			this.#pointerDownAC?.abort();
			this.#pointerDownAC = null;
		}
	};
	;
	AnnotationEditor = class AnnotationEditor {
		#accessibilityData = null;
		#allResizerDivs = null;
		#altText = null;
		#comment = null;
		#commentStandaloneButton = null;
		#disabled = false;
		#dragPointerId = null;
		#dragPointerType = "";
		#resizersDiv = null;
		#lastPointerCoords = null;
		#savedDimensions = null;
		#fakeAnnotation = null;
		#focusAC = null;
		#focusedResizerName = "";
		#hasBeenClicked = false;
		#initialRect = null;
		#isEditing = false;
		#isInEditMode = false;
		#isResizerEnabledForKeyboard = false;
		#moveInDOMTimeout = null;
		#prevDragX = 0;
		#prevDragY = 0;
		#telemetryTimeouts = null;
		#touchManager = null;
		isSelected = false;
		_isCopy = false;
		_editToolbar = null;
		_initialOptions = Object.create(null);
		_initialData = null;
		_isVisible = true;
		_uiManager = null;
		_focusEventsAllowed = true;
		static _l10n = null;
		static _l10nResizer = null;
		#isDraggable = false;
		#zIndex = AnnotationEditor._zIndex++;
		static _borderLineWidth = -1;
		static _colorManager = new ColorManager();
		static _zIndex = 1;
		static _telemetryTimeout = 1e3;
		static get _resizerKeyboardManager() {
			const resize = AnnotationEditor.prototype._resizeWithKeyboard;
			const small = AnnotationEditorUIManager.TRANSLATE_SMALL;
			const big = AnnotationEditorUIManager.TRANSLATE_BIG;
			return shadow(this, "_resizerKeyboardManager", new KeyboardManager([
				[
					["ArrowLeft", "mac+ArrowLeft"],
					resize,
					{ args: [-small, 0] }
				],
				[
					["ctrl+ArrowLeft", "mac+shift+ArrowLeft"],
					resize,
					{ args: [-big, 0] }
				],
				[
					["ArrowRight", "mac+ArrowRight"],
					resize,
					{ args: [small, 0] }
				],
				[
					["ctrl+ArrowRight", "mac+shift+ArrowRight"],
					resize,
					{ args: [big, 0] }
				],
				[
					["ArrowUp", "mac+ArrowUp"],
					resize,
					{ args: [0, -small] }
				],
				[
					["ctrl+ArrowUp", "mac+shift+ArrowUp"],
					resize,
					{ args: [0, -big] }
				],
				[
					["ArrowDown", "mac+ArrowDown"],
					resize,
					{ args: [0, small] }
				],
				[
					["ctrl+ArrowDown", "mac+shift+ArrowDown"],
					resize,
					{ args: [0, big] }
				],
				[["Escape", "mac+Escape"], AnnotationEditor.prototype._stopResizingWithKeyboard]
			]));
		}
		constructor(parameters) {
			this.parent = parameters.parent;
			this.id = parameters.id;
			this.width = this.height = null;
			this.pageIndex = parameters.parent.pageIndex;
			this.name = parameters.name;
			this.div = null;
			this._uiManager = parameters.uiManager;
			this.annotationElementId = null;
			this._willKeepAspectRatio = false;
			this._initialOptions.isCentered = parameters.isCentered;
			this._structTreeParentId = null;
			this.annotationElementId = parameters.annotationElementId || null;
			this.creationDate = parameters.creationDate || new Date();
			this.modificationDate = parameters.modificationDate || null;
			this.canAddComment = true;
			const { rotation, rawDims: { pageWidth, pageHeight, pageX, pageY } } = this.parent.viewport;
			this.rotation = rotation;
			this.pageRotation = (360 + rotation - this._uiManager.viewParameters.rotation) % 360;
			this.pageDimensions = [pageWidth, pageHeight];
			this.pageTranslation = [pageX, pageY];
			const [width, height] = this.parentDimensions;
			this.x = parameters.x / width;
			this.y = parameters.y / height;
			this.isAttachedToDOM = false;
			this.deleted = false;
		}
		get editorType() {
			return Object.getPrototypeOf(this).constructor._type;
		}
		get mode() {
			return Object.getPrototypeOf(this).constructor._editorType;
		}
		static get isDrawer() {
			return false;
		}
		static get _defaultLineColor() {
			return shadow(this, "_defaultLineColor", this._colorManager.getHexCode("CanvasText"));
		}
		static deleteAnnotationElement(editor) {
			const fakeEditor = new FakeEditor({
				id: editor.parent.getNextId(),
				parent: editor.parent,
				uiManager: editor._uiManager
			});
			fakeEditor.annotationElementId = editor.annotationElementId;
			fakeEditor.deleted = true;
			fakeEditor._uiManager.addToAnnotationStorage(fakeEditor);
		}
		static initialize(l10n, _uiManager) {
			AnnotationEditor._l10n ??= l10n;
			AnnotationEditor._l10nResizer ||= Object.freeze({
				topLeft: "pdfjs-editor-resizer-top-left",
				topMiddle: "pdfjs-editor-resizer-top-middle",
				topRight: "pdfjs-editor-resizer-top-right",
				middleRight: "pdfjs-editor-resizer-middle-right",
				bottomRight: "pdfjs-editor-resizer-bottom-right",
				bottomMiddle: "pdfjs-editor-resizer-bottom-middle",
				bottomLeft: "pdfjs-editor-resizer-bottom-left",
				middleLeft: "pdfjs-editor-resizer-middle-left"
			});
			if (AnnotationEditor._borderLineWidth !== -1) {
				return;
			}
			const style = getComputedStyle(document.documentElement);
			AnnotationEditor._borderLineWidth = parseFloat(style.getPropertyValue("--outline-width")) || 0;
		}
		static updateDefaultParams(_type, _value) {}
		static get defaultPropertiesToUpdate() {
			return [];
		}
		static isHandlingMimeForPasting(mime) {
			return false;
		}
		static paste(item, parent) {
			unreachable("Not implemented");
		}
		get propertiesToUpdate() {
			return [];
		}
		get _isDraggable() {
			return this.#isDraggable;
		}
		set _isDraggable(value) {
			this.#isDraggable = value;
			this.div?.classList.toggle("draggable", value);
		}
		get uid() {
			return this.annotationElementId || this.id;
		}
		get isEnterHandled() {
			return true;
		}
		center() {
			const [pageWidth, pageHeight] = this.pageDimensions;
			switch (this.parentRotation) {
				case 90:
					this.x -= this.height * pageHeight / (pageWidth * 2);
					this.y += this.width * pageWidth / (pageHeight * 2);
					break;
				case 180:
					this.x += this.width / 2;
					this.y += this.height / 2;
					break;
				case 270:
					this.x += this.height * pageHeight / (pageWidth * 2);
					this.y -= this.width * pageWidth / (pageHeight * 2);
					break;
				default:
					this.x -= this.width / 2;
					this.y -= this.height / 2;
					break;
			}
			this.fixAndSetPosition();
		}
		addCommands(params) {
			this._uiManager.addCommands(params);
		}
		get currentLayer() {
			return this._uiManager.currentLayer;
		}
		setInBackground() {
			this.div.style.zIndex = 0;
		}
		setInForeground() {
			this.div.style.zIndex = this.#zIndex;
		}
		setParent(parent) {
			if (parent !== null) {
				this.pageIndex = parent.pageIndex;
				this.pageDimensions = parent.pageDimensions;
			} else {
				this.#stopResizing();
				this.#fakeAnnotation?.remove();
				this.#fakeAnnotation = null;
			}
			this.parent = parent;
		}
		focusin(event) {
			if (!this._focusEventsAllowed) {
				return;
			}
			if (!this.#hasBeenClicked) {
				this.parent.setSelected(this);
			} else {
				this.#hasBeenClicked = false;
			}
		}
		focusout(event) {
			if (!this._focusEventsAllowed) {
				return;
			}
			if (!this.isAttachedToDOM) {
				return;
			}
			const target = event.relatedTarget;
			if (target?.closest(`#${this.id}`)) {
				return;
			}
			event.preventDefault();
			if (!this.parent?.isMultipleSelection) {
				this.commitOrRemove();
			}
		}
		commitOrRemove() {
			if (this.isEmpty()) {
				this.remove();
			} else {
				this.commit();
			}
		}
		commit() {
			if (!this.isInEditMode()) {
				return;
			}
			this.addToAnnotationStorage();
		}
		addToAnnotationStorage() {
			this._uiManager.addToAnnotationStorage(this);
		}
		setAt(x$2, y$3, tx, ty) {
			const [width, height] = this.parentDimensions;
			[tx, ty] = this.screenToPageTranslation(tx, ty);
			this.x = (x$2 + tx) / width;
			this.y = (y$3 + ty) / height;
			this.fixAndSetPosition();
		}
		_moveAfterPaste(baseX, baseY) {
			const [parentWidth, parentHeight] = this.parentDimensions;
			this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);
			this._onTranslated();
		}
		#translate([width, height], x$2, y$3) {
			[x$2, y$3] = this.screenToPageTranslation(x$2, y$3);
			this.x += x$2 / width;
			this.y += y$3 / height;
			this._onTranslating(this.x, this.y);
			this.fixAndSetPosition();
		}
		translate(x$2, y$3) {
			this.#translate(this.parentDimensions, x$2, y$3);
		}
		translateInPage(x$2, y$3) {
			this.#initialRect ||= [
				this.x,
				this.y,
				this.width,
				this.height
			];
			this.#translate(this.pageDimensions, x$2, y$3);
			this.div.scrollIntoView({ block: "nearest" });
		}
		translationDone() {
			this._onTranslated(this.x, this.y);
		}
		drag(tx, ty) {
			this.#initialRect ||= [
				this.x,
				this.y,
				this.width,
				this.height
			];
			const { div, parentDimensions: [parentWidth, parentHeight] } = this;
			this.x += tx / parentWidth;
			this.y += ty / parentHeight;
			if (this.parent && (this.x < 0 || this.x > 1 || this.y < 0 || this.y > 1)) {
				const { x: x$3, y: y$4 } = this.div.getBoundingClientRect();
				if (this.parent.findNewParent(this, x$3, y$4)) {
					this.x -= Math.floor(this.x);
					this.y -= Math.floor(this.y);
				}
			}
			let { x: x$2, y: y$3 } = this;
			const [bx, by] = this.getBaseTranslation();
			x$2 += bx;
			y$3 += by;
			const { style } = div;
			style.left = `${(100 * x$2).toFixed(2)}%`;
			style.top = `${(100 * y$3).toFixed(2)}%`;
			this._onTranslating(x$2, y$3);
			div.scrollIntoView({ block: "nearest" });
		}
		_onTranslating(x$2, y$3) {}
		_onTranslated(x$2, y$3) {}
		get _hasBeenMoved() {
			return !!this.#initialRect && (this.#initialRect[0] !== this.x || this.#initialRect[1] !== this.y);
		}
		get _hasBeenResized() {
			return !!this.#initialRect && (this.#initialRect[2] !== this.width || this.#initialRect[3] !== this.height);
		}
		getBaseTranslation() {
			const [parentWidth, parentHeight] = this.parentDimensions;
			const { _borderLineWidth } = AnnotationEditor;
			const x$2 = _borderLineWidth / parentWidth;
			const y$3 = _borderLineWidth / parentHeight;
			switch (this.rotation) {
				case 90: return [-x$2, y$3];
				case 180: return [x$2, y$3];
				case 270: return [x$2, -y$3];
				default: return [-x$2, -y$3];
			}
		}
		get _mustFixPosition() {
			return true;
		}
		fixAndSetPosition(rotation = this.rotation) {
			const { div: { style }, pageDimensions: [pageWidth, pageHeight] } = this;
			let { x: x$2, y: y$3, width, height } = this;
			width *= pageWidth;
			height *= pageHeight;
			x$2 *= pageWidth;
			y$3 *= pageHeight;
			if (this._mustFixPosition) {
				switch (rotation) {
					case 0:
						x$2 = MathClamp(x$2, 0, pageWidth - width);
						y$3 = MathClamp(y$3, 0, pageHeight - height);
						break;
					case 90:
						x$2 = MathClamp(x$2, 0, pageWidth - height);
						y$3 = MathClamp(y$3, width, pageHeight);
						break;
					case 180:
						x$2 = MathClamp(x$2, width, pageWidth);
						y$3 = MathClamp(y$3, height, pageHeight);
						break;
					case 270:
						x$2 = MathClamp(x$2, height, pageWidth);
						y$3 = MathClamp(y$3, 0, pageHeight - width);
						break;
				}
			}
			this.x = x$2 /= pageWidth;
			this.y = y$3 /= pageHeight;
			const [bx, by] = this.getBaseTranslation();
			x$2 += bx;
			y$3 += by;
			style.left = `${(100 * x$2).toFixed(2)}%`;
			style.top = `${(100 * y$3).toFixed(2)}%`;
			this.moveInDOM();
		}
		static #rotatePoint(x$2, y$3, angle) {
			switch (angle) {
				case 90: return [y$3, -x$2];
				case 180: return [-x$2, -y$3];
				case 270: return [-y$3, x$2];
				default: return [x$2, y$3];
			}
		}
		screenToPageTranslation(x$2, y$3) {
			return AnnotationEditor.#rotatePoint(x$2, y$3, this.parentRotation);
		}
		pageTranslationToScreen(x$2, y$3) {
			return AnnotationEditor.#rotatePoint(x$2, y$3, 360 - this.parentRotation);
		}
		#getRotationMatrix(rotation) {
			switch (rotation) {
				case 90: {
					const [pageWidth, pageHeight] = this.pageDimensions;
					return [
						0,
						-pageWidth / pageHeight,
						pageHeight / pageWidth,
						0
					];
				}
				case 180: return [
					-1,
					0,
					0,
					-1
				];
				case 270: {
					const [pageWidth, pageHeight] = this.pageDimensions;
					return [
						0,
						pageWidth / pageHeight,
						-pageHeight / pageWidth,
						0
					];
				}
				default: return [
					1,
					0,
					0,
					1
				];
			}
		}
		get parentScale() {
			return this._uiManager.viewParameters.realScale;
		}
		get parentRotation() {
			return (this._uiManager.viewParameters.rotation + this.pageRotation) % 360;
		}
		get parentDimensions() {
			const { parentScale, pageDimensions: [pageWidth, pageHeight] } = this;
			return [pageWidth * parentScale, pageHeight * parentScale];
		}
		setDims() {
			const { div: { style }, width, height } = this;
			style.width = `${(100 * width).toFixed(2)}%`;
			style.height = `${(100 * height).toFixed(2)}%`;
		}
		getInitialTranslation() {
			return [0, 0];
		}
		#createResizers() {
			if (this.#resizersDiv) {
				return;
			}
			this.#resizersDiv = document.createElement("div");
			this.#resizersDiv.classList.add("resizers");
			const classes = this._willKeepAspectRatio ? [
				"topLeft",
				"topRight",
				"bottomRight",
				"bottomLeft"
			] : [
				"topLeft",
				"topMiddle",
				"topRight",
				"middleRight",
				"bottomRight",
				"bottomMiddle",
				"bottomLeft",
				"middleLeft"
			];
			const signal = this._uiManager._signal;
			for (const name of classes) {
				const div = document.createElement("div");
				this.#resizersDiv.append(div);
				div.classList.add("resizer", name);
				div.setAttribute("data-resizer-name", name);
				div.addEventListener("pointerdown", this.#resizerPointerdown.bind(this, name), { signal });
				div.addEventListener("contextmenu", noContextMenu, { signal });
				div.tabIndex = -1;
			}
			this.div.prepend(this.#resizersDiv);
		}
		#resizerPointerdown(name, event) {
			event.preventDefault();
			const { isMac } = util_FeatureTest.platform;
			if (event.button !== 0 || event.ctrlKey && isMac) {
				return;
			}
			this.#altText?.toggle(false);
			const savedDraggable = this._isDraggable;
			this._isDraggable = false;
			this.#lastPointerCoords = [event.screenX, event.screenY];
			const ac = new AbortController();
			const signal = this._uiManager.combinedSignal(ac);
			this.parent.togglePointerEvents(false);
			window.addEventListener("pointermove", this.#resizerPointermove.bind(this, name), {
				passive: true,
				capture: true,
				signal
			});
			window.addEventListener("touchmove", stopEvent, {
				passive: false,
				signal
			});
			window.addEventListener("contextmenu", noContextMenu, { signal });
			this.#savedDimensions = {
				savedX: this.x,
				savedY: this.y,
				savedWidth: this.width,
				savedHeight: this.height
			};
			const savedParentCursor = this.parent.div.style.cursor;
			const savedCursor = this.div.style.cursor;
			this.div.style.cursor = this.parent.div.style.cursor = window.getComputedStyle(event.target).cursor;
			const pointerUpCallback = () => {
				ac.abort();
				this.parent.togglePointerEvents(true);
				this.#altText?.toggle(true);
				this._isDraggable = savedDraggable;
				this.parent.div.style.cursor = savedParentCursor;
				this.div.style.cursor = savedCursor;
				this.#addResizeToUndoStack();
			};
			window.addEventListener("pointerup", pointerUpCallback, { signal });
			window.addEventListener("blur", pointerUpCallback, { signal });
		}
		#resize(x$2, y$3, width, height) {
			this.width = width;
			this.height = height;
			this.x = x$2;
			this.y = y$3;
			this.setDims();
			this.fixAndSetPosition();
			this._onResized();
		}
		_onResized() {}
		#addResizeToUndoStack() {
			if (!this.#savedDimensions) {
				return;
			}
			const { savedX, savedY, savedWidth, savedHeight } = this.#savedDimensions;
			this.#savedDimensions = null;
			const newX = this.x;
			const newY = this.y;
			const newWidth = this.width;
			const newHeight = this.height;
			if (newX === savedX && newY === savedY && newWidth === savedWidth && newHeight === savedHeight) {
				return;
			}
			this.addCommands({
				cmd: this.#resize.bind(this, newX, newY, newWidth, newHeight),
				undo: this.#resize.bind(this, savedX, savedY, savedWidth, savedHeight),
				mustExec: true
			});
		}
		static _round(x$2) {
			return Math.round(x$2 * 1e4) / 1e4;
		}
		#resizerPointermove(name, event) {
			const [parentWidth, parentHeight] = this.parentDimensions;
			const savedX = this.x;
			const savedY = this.y;
			const savedWidth = this.width;
			const savedHeight = this.height;
			const minWidth = AnnotationEditor.MIN_SIZE / parentWidth;
			const minHeight = AnnotationEditor.MIN_SIZE / parentHeight;
			const rotationMatrix = this.#getRotationMatrix(this.rotation);
			const transf = (x$2, y$3) => [rotationMatrix[0] * x$2 + rotationMatrix[2] * y$3, rotationMatrix[1] * x$2 + rotationMatrix[3] * y$3];
			const invRotationMatrix = this.#getRotationMatrix(360 - this.rotation);
			const invTransf = (x$2, y$3) => [invRotationMatrix[0] * x$2 + invRotationMatrix[2] * y$3, invRotationMatrix[1] * x$2 + invRotationMatrix[3] * y$3];
			let getPoint;
			let getOpposite;
			let isDiagonal = false;
			let isHorizontal = false;
			switch (name) {
				case "topLeft":
					isDiagonal = true;
					getPoint = (w$2, h$5) => [0, 0];
					getOpposite = (w$2, h$5) => [w$2, h$5];
					break;
				case "topMiddle":
					getPoint = (w$2, h$5) => [w$2 / 2, 0];
					getOpposite = (w$2, h$5) => [w$2 / 2, h$5];
					break;
				case "topRight":
					isDiagonal = true;
					getPoint = (w$2, h$5) => [w$2, 0];
					getOpposite = (w$2, h$5) => [0, h$5];
					break;
				case "middleRight":
					isHorizontal = true;
					getPoint = (w$2, h$5) => [w$2, h$5 / 2];
					getOpposite = (w$2, h$5) => [0, h$5 / 2];
					break;
				case "bottomRight":
					isDiagonal = true;
					getPoint = (w$2, h$5) => [w$2, h$5];
					getOpposite = (w$2, h$5) => [0, 0];
					break;
				case "bottomMiddle":
					getPoint = (w$2, h$5) => [w$2 / 2, h$5];
					getOpposite = (w$2, h$5) => [w$2 / 2, 0];
					break;
				case "bottomLeft":
					isDiagonal = true;
					getPoint = (w$2, h$5) => [0, h$5];
					getOpposite = (w$2, h$5) => [w$2, 0];
					break;
				case "middleLeft":
					isHorizontal = true;
					getPoint = (w$2, h$5) => [0, h$5 / 2];
					getOpposite = (w$2, h$5) => [w$2, h$5 / 2];
					break;
			}
			const point = getPoint(savedWidth, savedHeight);
			const oppositePoint = getOpposite(savedWidth, savedHeight);
			let transfOppositePoint = transf(...oppositePoint);
			const oppositeX = AnnotationEditor._round(savedX + transfOppositePoint[0]);
			const oppositeY = AnnotationEditor._round(savedY + transfOppositePoint[1]);
			let ratioX = 1;
			let ratioY = 1;
			let deltaX, deltaY;
			if (!event.fromKeyboard) {
				const { screenX, screenY } = event;
				const [lastScreenX, lastScreenY] = this.#lastPointerCoords;
				[deltaX, deltaY] = this.screenToPageTranslation(screenX - lastScreenX, screenY - lastScreenY);
				this.#lastPointerCoords[0] = screenX;
				this.#lastPointerCoords[1] = screenY;
			} else {
				({deltaX, deltaY} = event);
			}
			[deltaX, deltaY] = invTransf(deltaX / parentWidth, deltaY / parentHeight);
			if (isDiagonal) {
				const oldDiag = Math.hypot(savedWidth, savedHeight);
				ratioX = ratioY = Math.max(Math.min(Math.hypot(oppositePoint[0] - point[0] - deltaX, oppositePoint[1] - point[1] - deltaY) / oldDiag, 1 / savedWidth, 1 / savedHeight), minWidth / savedWidth, minHeight / savedHeight);
			} else if (isHorizontal) {
				ratioX = MathClamp(Math.abs(oppositePoint[0] - point[0] - deltaX), minWidth, 1) / savedWidth;
			} else {
				ratioY = MathClamp(Math.abs(oppositePoint[1] - point[1] - deltaY), minHeight, 1) / savedHeight;
			}
			const newWidth = AnnotationEditor._round(savedWidth * ratioX);
			const newHeight = AnnotationEditor._round(savedHeight * ratioY);
			transfOppositePoint = transf(...getOpposite(newWidth, newHeight));
			const newX = oppositeX - transfOppositePoint[0];
			const newY = oppositeY - transfOppositePoint[1];
			this.#initialRect ||= [
				this.x,
				this.y,
				this.width,
				this.height
			];
			this.width = newWidth;
			this.height = newHeight;
			this.x = newX;
			this.y = newY;
			this.setDims();
			this.fixAndSetPosition();
			this._onResizing();
		}
		_onResizing() {}
		altTextFinish() {
			this.#altText?.finish();
		}
		get toolbarButtons() {
			return null;
		}
		async addEditToolbar() {
			if (this._editToolbar || this.#isInEditMode) {
				return this._editToolbar;
			}
			this._editToolbar = new EditorToolbar(this);
			this.div.append(this._editToolbar.render());
			const { toolbarButtons } = this;
			if (toolbarButtons) {
				for (const [name, tool] of toolbarButtons) {
					await this._editToolbar.addButton(name, tool);
				}
			}
			if (!this.hasComment) {
				this._editToolbar.addButton("comment", this.addCommentButton());
			}
			this._editToolbar.addButton("delete");
			return this._editToolbar;
		}
		addCommentButtonInToolbar() {
			this._editToolbar?.addButtonBefore("comment", this.addCommentButton(), ".deleteButton");
		}
		removeCommentButtonFromToolbar() {
			this._editToolbar?.removeButton("comment");
		}
		removeEditToolbar() {
			this._editToolbar?.remove();
			this._editToolbar = null;
			this.#altText?.destroy();
		}
		addContainer(container) {
			const editToolbarDiv = this._editToolbar?.div;
			if (editToolbarDiv) {
				editToolbarDiv.before(container);
			} else {
				this.div.append(container);
			}
		}
		getClientDimensions() {
			return this.div.getBoundingClientRect();
		}
		createAltText() {
			if (!this.#altText) {
				AltText.initialize(AnnotationEditor._l10n);
				this.#altText = new AltText(this);
				if (this.#accessibilityData) {
					this.#altText.data = this.#accessibilityData;
					this.#accessibilityData = null;
				}
			}
			return this.#altText;
		}
		get altTextData() {
			return this.#altText?.data;
		}
		set altTextData(data) {
			if (!this.#altText) {
				return;
			}
			this.#altText.data = data;
		}
		get guessedAltText() {
			return this.#altText?.guessedText;
		}
		async setGuessedAltText(text$2) {
			await this.#altText?.setGuessedText(text$2);
		}
		serializeAltText(isForCopying) {
			return this.#altText?.serialize(isForCopying);
		}
		hasAltText() {
			return !!this.#altText && !this.#altText.isEmpty();
		}
		hasAltTextData() {
			return this.#altText?.hasData() ?? false;
		}
		focusCommentButton() {
			this.#comment?.focusButton();
		}
		addCommentButton() {
			return this.canAddComment ? this.#comment ||= new Comment(this) : null;
		}
		addStandaloneCommentButton() {
			if (!this._uiManager.hasCommentManager()) {
				return;
			}
			if (this.#commentStandaloneButton) {
				if (this._uiManager.isEditingMode()) {
					this.#commentStandaloneButton.classList.remove("hidden");
				}
				return;
			}
			if (!this.hasComment) {
				return;
			}
			this.#commentStandaloneButton = this.#comment.renderForStandalone();
			this.div.append(this.#commentStandaloneButton);
		}
		removeStandaloneCommentButton() {
			this.#comment.removeStandaloneCommentButton();
			this.#commentStandaloneButton = null;
		}
		hideStandaloneCommentButton() {
			this.#commentStandaloneButton?.classList.add("hidden");
		}
		get comment() {
			const { data: { richText, text: text$2, date, deleted } } = this.#comment;
			return {
				text: text$2,
				richText,
				date,
				deleted,
				color: this.getNonHCMColor(),
				opacity: this.opacity ?? 1
			};
		}
		set comment(text$2) {
			this.#comment ||= new Comment(this);
			this.#comment.data = text$2;
			if (this.hasComment) {
				this.removeCommentButtonFromToolbar();
				this.addStandaloneCommentButton();
				this._uiManager.updateComment(this);
			} else {
				this.addCommentButtonInToolbar();
				this.removeStandaloneCommentButton();
				this._uiManager.removeComment(this);
			}
		}
		setCommentData({ comment, popupRef, richText }) {
			if (!popupRef) {
				return;
			}
			this.#comment ||= new Comment(this);
			this.#comment.setInitialText(comment, richText);
			if (!this.annotationElementId) {
				return;
			}
			const storedData = this._uiManager.getAndRemoveDataFromAnnotationStorage(this.annotationElementId);
			if (storedData) {
				this.updateFromAnnotationLayer(storedData);
			}
		}
		get hasEditedComment() {
			return this.#comment?.hasBeenEdited();
		}
		get hasDeletedComment() {
			return this.#comment?.isDeleted();
		}
		get hasComment() {
			return !!this.#comment && !this.#comment.isEmpty() && !this.#comment.isDeleted();
		}
		async editComment(options) {
			this.#comment ||= new Comment(this);
			this.#comment.edit(options);
		}
		toggleComment(isSelected, visibility = undefined) {
			if (this.hasComment) {
				this._uiManager.toggleComment(this, isSelected, visibility);
			}
		}
		setSelectedCommentButton(selected) {
			this.#comment.setSelectedButton(selected);
		}
		addComment(serialized) {
			if (this.hasEditedComment) {
				const DEFAULT_POPUP_WIDTH = 180;
				const DEFAULT_POPUP_HEIGHT = 100;
				const [, , , trY] = serialized.rect;
				const [pageWidth] = this.pageDimensions;
				const [pageX] = this.pageTranslation;
				const blX = pageX + pageWidth + 1;
				const blY = trY - DEFAULT_POPUP_HEIGHT;
				const trX = blX + DEFAULT_POPUP_WIDTH;
				serialized.popup = {
					contents: this.comment.text,
					deleted: this.comment.deleted,
					rect: [
						blX,
						blY,
						trX,
						trY
					]
				};
			}
		}
		updateFromAnnotationLayer({ popup: { contents, deleted } }) {
			this.#comment.data = deleted ? null : contents;
		}
		get parentBoundingClientRect() {
			return this.parent.boundingClientRect;
		}
		render() {
			const div = this.div = document.createElement("div");
			div.setAttribute("data-editor-rotation", (360 - this.rotation) % 360);
			div.className = this.name;
			div.setAttribute("id", this.id);
			div.tabIndex = this.#disabled ? -1 : 0;
			div.setAttribute("role", "application");
			if (this.defaultL10nId) {
				div.setAttribute("data-l10n-id", this.defaultL10nId);
			}
			if (!this._isVisible) {
				div.classList.add("hidden");
			}
			this.setInForeground();
			this.#addFocusListeners();
			const [parentWidth, parentHeight] = this.parentDimensions;
			if (this.parentRotation % 180 !== 0) {
				div.style.maxWidth = `${(100 * parentHeight / parentWidth).toFixed(2)}%`;
				div.style.maxHeight = `${(100 * parentWidth / parentHeight).toFixed(2)}%`;
			}
			const [tx, ty] = this.getInitialTranslation();
			this.translate(tx, ty);
			bindEvents(this, div, [
				"keydown",
				"pointerdown",
				"dblclick"
			]);
			if (this.isResizable && this._uiManager._supportsPinchToZoom) {
				this.#touchManager ||= new TouchManager({
					container: div,
					isPinchingDisabled: () => !this.isSelected,
					onPinchStart: this.#touchPinchStartCallback.bind(this),
					onPinching: this.#touchPinchCallback.bind(this),
					onPinchEnd: this.#touchPinchEndCallback.bind(this),
					signal: this._uiManager._signal
				});
			}
			this.addStandaloneCommentButton();
			this._uiManager._editorUndoBar?.hide();
			return div;
		}
		#touchPinchStartCallback() {
			this.#savedDimensions = {
				savedX: this.x,
				savedY: this.y,
				savedWidth: this.width,
				savedHeight: this.height
			};
			this.#altText?.toggle(false);
			this.parent.togglePointerEvents(false);
		}
		#touchPinchCallback(_origin, prevDistance, distance) {
			const slowDownFactor = .7;
			let factor = slowDownFactor * (distance / prevDistance) + 1 - slowDownFactor;
			if (factor === 1) {
				return;
			}
			const rotationMatrix = this.#getRotationMatrix(this.rotation);
			const transf = (x$2, y$3) => [rotationMatrix[0] * x$2 + rotationMatrix[2] * y$3, rotationMatrix[1] * x$2 + rotationMatrix[3] * y$3];
			const [parentWidth, parentHeight] = this.parentDimensions;
			const savedX = this.x;
			const savedY = this.y;
			const savedWidth = this.width;
			const savedHeight = this.height;
			const minWidth = AnnotationEditor.MIN_SIZE / parentWidth;
			const minHeight = AnnotationEditor.MIN_SIZE / parentHeight;
			factor = Math.max(Math.min(factor, 1 / savedWidth, 1 / savedHeight), minWidth / savedWidth, minHeight / savedHeight);
			const newWidth = AnnotationEditor._round(savedWidth * factor);
			const newHeight = AnnotationEditor._round(savedHeight * factor);
			if (newWidth === savedWidth && newHeight === savedHeight) {
				return;
			}
			this.#initialRect ||= [
				savedX,
				savedY,
				savedWidth,
				savedHeight
			];
			const transfCenterPoint = transf(savedWidth / 2, savedHeight / 2);
			const centerX = AnnotationEditor._round(savedX + transfCenterPoint[0]);
			const centerY = AnnotationEditor._round(savedY + transfCenterPoint[1]);
			const newTransfCenterPoint = transf(newWidth / 2, newHeight / 2);
			this.x = centerX - newTransfCenterPoint[0];
			this.y = centerY - newTransfCenterPoint[1];
			this.width = newWidth;
			this.height = newHeight;
			this.setDims();
			this.fixAndSetPosition();
			this._onResizing();
		}
		#touchPinchEndCallback() {
			this.#altText?.toggle(true);
			this.parent.togglePointerEvents(true);
			this.#addResizeToUndoStack();
		}
		pointerdown(event) {
			const { isMac } = util_FeatureTest.platform;
			if (event.button !== 0 || event.ctrlKey && isMac) {
				event.preventDefault();
				return;
			}
			this.#hasBeenClicked = true;
			if (this._isDraggable) {
				this.#setUpDragSession(event);
				return;
			}
			this.#selectOnPointerEvent(event);
		}
		#selectOnPointerEvent(event) {
			const { isMac } = util_FeatureTest.platform;
			if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) {
				this.parent.toggleSelected(this);
			} else {
				this.parent.setSelected(this);
			}
		}
		#setUpDragSession(event) {
			const { isSelected } = this;
			this._uiManager.setUpDragSession();
			let hasDraggingStarted = false;
			const ac = new AbortController();
			const signal = this._uiManager.combinedSignal(ac);
			const opts = {
				capture: true,
				passive: false,
				signal
			};
			const cancelDrag = (e$10) => {
				ac.abort();
				this.#dragPointerId = null;
				this.#hasBeenClicked = false;
				if (!this._uiManager.endDragSession()) {
					this.#selectOnPointerEvent(e$10);
				}
				if (hasDraggingStarted) {
					this._onStopDragging();
				}
			};
			if (isSelected) {
				this.#prevDragX = event.clientX;
				this.#prevDragY = event.clientY;
				this.#dragPointerId = event.pointerId;
				this.#dragPointerType = event.pointerType;
				window.addEventListener("pointermove", (e$10) => {
					if (!hasDraggingStarted) {
						hasDraggingStarted = true;
						this._uiManager.toggleComment(this, true, false);
						this._onStartDragging();
					}
					const { clientX: x$2, clientY: y$3, pointerId } = e$10;
					if (pointerId !== this.#dragPointerId) {
						stopEvent(e$10);
						return;
					}
					const [tx, ty] = this.screenToPageTranslation(x$2 - this.#prevDragX, y$3 - this.#prevDragY);
					this.#prevDragX = x$2;
					this.#prevDragY = y$3;
					this._uiManager.dragSelectedEditors(tx, ty);
				}, opts);
				window.addEventListener("touchmove", stopEvent, opts);
				window.addEventListener("pointerdown", (e$10) => {
					if (e$10.pointerType === this.#dragPointerType) {
						if (this.#touchManager || e$10.isPrimary) {
							cancelDrag(e$10);
						}
					}
					stopEvent(e$10);
				}, opts);
			}
			const pointerUpCallback = (e$10) => {
				if (!this.#dragPointerId || this.#dragPointerId === e$10.pointerId) {
					cancelDrag(e$10);
					return;
				}
				stopEvent(e$10);
			};
			window.addEventListener("pointerup", pointerUpCallback, { signal });
			window.addEventListener("blur", pointerUpCallback, { signal });
		}
		_onStartDragging() {}
		_onStopDragging() {}
		moveInDOM() {
			if (this.#moveInDOMTimeout) {
				clearTimeout(this.#moveInDOMTimeout);
			}
			this.#moveInDOMTimeout = setTimeout(() => {
				this.#moveInDOMTimeout = null;
				this.parent?.moveEditorInDOM(this);
			}, 0);
		}
		_setParentAndPosition(parent, x$2, y$3) {
			parent.changeParent(this);
			this.x = x$2;
			this.y = y$3;
			this.fixAndSetPosition();
			this._onTranslated();
		}
		getRect(tx, ty, rotation = this.rotation) {
			const scale = this.parentScale;
			const [pageWidth, pageHeight] = this.pageDimensions;
			const [pageX, pageY] = this.pageTranslation;
			const shiftX = tx / scale;
			const shiftY = ty / scale;
			const x$2 = this.x * pageWidth;
			const y$3 = this.y * pageHeight;
			const width = this.width * pageWidth;
			const height = this.height * pageHeight;
			switch (rotation) {
				case 0: return [
					x$2 + shiftX + pageX,
					pageHeight - y$3 - shiftY - height + pageY,
					x$2 + shiftX + width + pageX,
					pageHeight - y$3 - shiftY + pageY
				];
				case 90: return [
					x$2 + shiftY + pageX,
					pageHeight - y$3 + shiftX + pageY,
					x$2 + shiftY + height + pageX,
					pageHeight - y$3 + shiftX + width + pageY
				];
				case 180: return [
					x$2 - shiftX - width + pageX,
					pageHeight - y$3 + shiftY + pageY,
					x$2 - shiftX + pageX,
					pageHeight - y$3 + shiftY + height + pageY
				];
				case 270: return [
					x$2 - shiftY - height + pageX,
					pageHeight - y$3 - shiftX - width + pageY,
					x$2 - shiftY + pageX,
					pageHeight - y$3 - shiftX + pageY
				];
				default: throw new Error("Invalid rotation");
			}
		}
		getRectInCurrentCoords(rect, pageHeight) {
			const [x1, y1, x2, y2] = rect;
			const width = x2 - x1;
			const height = y2 - y1;
			switch (this.rotation) {
				case 0: return [
					x1,
					pageHeight - y2,
					width,
					height
				];
				case 90: return [
					x1,
					pageHeight - y1,
					height,
					width
				];
				case 180: return [
					x2,
					pageHeight - y1,
					width,
					height
				];
				case 270: return [
					x2,
					pageHeight - y2,
					height,
					width
				];
				default: throw new Error("Invalid rotation");
			}
		}
		getPDFRect() {
			return this.getRect(0, 0);
		}
		getNonHCMColor() {
			return this.color && AnnotationEditor._colorManager.convert(this._uiManager.getNonHCMColor(this.color));
		}
		onUpdatedColor() {
			this.#comment?.onUpdatedColor();
		}
		getData() {
			const { comment: { text: str, color, date, opacity, deleted, richText }, uid: id, pageIndex, creationDate, modificationDate } = this;
			return {
				id,
				pageIndex,
				rect: this.getPDFRect(),
				richText,
				contentsObj: { str },
				creationDate,
				modificationDate: date || modificationDate,
				popupRef: !deleted,
				color,
				opacity
			};
		}
		onceAdded(focus) {}
		isEmpty() {
			return false;
		}
		enableEditMode() {
			if (this.isInEditMode()) {
				return false;
			}
			this.parent.setEditingState(false);
			this.#isInEditMode = true;
			return true;
		}
		disableEditMode() {
			if (!this.isInEditMode()) {
				return false;
			}
			this.parent.setEditingState(true);
			this.#isInEditMode = false;
			return true;
		}
		isInEditMode() {
			return this.#isInEditMode;
		}
		shouldGetKeyboardEvents() {
			return this.#isResizerEnabledForKeyboard;
		}
		needsToBeRebuilt() {
			return this.div && !this.isAttachedToDOM;
		}
		get isOnScreen() {
			const { top, left, bottom, right } = this.getClientDimensions();
			const { innerHeight, innerWidth } = window;
			return left < innerWidth && right > 0 && top < innerHeight && bottom > 0;
		}
		#addFocusListeners() {
			if (this.#focusAC || !this.div) {
				return;
			}
			this.#focusAC = new AbortController();
			const signal = this._uiManager.combinedSignal(this.#focusAC);
			this.div.addEventListener("focusin", this.focusin.bind(this), { signal });
			this.div.addEventListener("focusout", this.focusout.bind(this), { signal });
		}
		rebuild() {
			this.#addFocusListeners();
		}
		rotate(_angle) {}
		resize() {}
		serializeDeleted() {
			return {
				id: this.annotationElementId,
				deleted: true,
				pageIndex: this.pageIndex,
				popupRef: this._initialData?.popupRef || ""
			};
		}
		serialize(isForCopying = false, context = null) {
			return {
				annotationType: this.mode,
				pageIndex: this.pageIndex,
				rect: this.getPDFRect(),
				rotation: this.rotation,
				structTreeParentId: this._structTreeParentId,
				popupRef: this._initialData?.popupRef || ""
			};
		}
		static async deserialize(data, parent, uiManager) {
			const editor = new this.prototype.constructor({
				parent,
				id: parent.getNextId(),
				uiManager,
				annotationElementId: data.annotationElementId,
				creationDate: data.creationDate,
				modificationDate: data.modificationDate
			});
			editor.rotation = data.rotation;
			editor.#accessibilityData = data.accessibilityData;
			editor._isCopy = data.isCopy || false;
			const [pageWidth, pageHeight] = editor.pageDimensions;
			const [x$2, y$3, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight);
			editor.x = x$2 / pageWidth;
			editor.y = y$3 / pageHeight;
			editor.width = width / pageWidth;
			editor.height = height / pageHeight;
			return editor;
		}
		get hasBeenModified() {
			return !!this.annotationElementId && (this.deleted || this.serialize() !== null);
		}
		remove() {
			this.#focusAC?.abort();
			this.#focusAC = null;
			if (!this.isEmpty()) {
				this.commit();
			}
			if (this.parent) {
				this.parent.remove(this);
			} else {
				this._uiManager.removeEditor(this);
			}
			this.hideCommentPopup();
			if (this.#moveInDOMTimeout) {
				clearTimeout(this.#moveInDOMTimeout);
				this.#moveInDOMTimeout = null;
			}
			this.#stopResizing();
			this.removeEditToolbar();
			if (this.#telemetryTimeouts) {
				for (const timeout of this.#telemetryTimeouts.values()) {
					clearTimeout(timeout);
				}
				this.#telemetryTimeouts = null;
			}
			this.parent = null;
			this.#touchManager?.destroy();
			this.#touchManager = null;
			this.#fakeAnnotation?.remove();
			this.#fakeAnnotation = null;
		}
		get isResizable() {
			return false;
		}
		makeResizable() {
			if (this.isResizable) {
				this.#createResizers();
				this.#resizersDiv.classList.remove("hidden");
			}
		}
		get toolbarPosition() {
			return null;
		}
		get commentButtonPosition() {
			return this._uiManager.direction === "ltr" ? [1, 0] : [0, 0];
		}
		get commentButtonPositionInPage() {
			const { commentButtonPosition: [posX, posY] } = this;
			const [blX, blY, trX, trY] = this.getPDFRect();
			return [AnnotationEditor._round(blX + (trX - blX) * posX), AnnotationEditor._round(blY + (trY - blY) * (1 - posY))];
		}
		get commentButtonColor() {
			return this._uiManager.makeCommentColor(this.getNonHCMColor(), this.opacity);
		}
		get commentPopupPosition() {
			return this.#comment.commentPopupPositionInLayer;
		}
		set commentPopupPosition(pos) {
			this.#comment.commentPopupPositionInLayer = pos;
		}
		hasDefaultPopupPosition() {
			return this.#comment.hasDefaultPopupPosition();
		}
		get commentButtonWidth() {
			return this.#comment.commentButtonWidth;
		}
		get elementBeforePopup() {
			return this.div;
		}
		setCommentButtonStates(options) {
			this.#comment?.setCommentButtonStates(options);
		}
		keydown(event) {
			if (!this.isResizable || event.target !== this.div || event.key !== "Enter") {
				return;
			}
			this._uiManager.setSelected(this);
			this.#savedDimensions = {
				savedX: this.x,
				savedY: this.y,
				savedWidth: this.width,
				savedHeight: this.height
			};
			const children = this.#resizersDiv.children;
			if (!this.#allResizerDivs) {
				this.#allResizerDivs = Array.from(children);
				const boundResizerKeydown = this.#resizerKeydown.bind(this);
				const boundResizerBlur = this.#resizerBlur.bind(this);
				const signal = this._uiManager._signal;
				for (const div of this.#allResizerDivs) {
					const name = div.getAttribute("data-resizer-name");
					div.setAttribute("role", "spinbutton");
					div.addEventListener("keydown", boundResizerKeydown, { signal });
					div.addEventListener("blur", boundResizerBlur, { signal });
					div.addEventListener("focus", this.#resizerFocus.bind(this, name), { signal });
					div.setAttribute("data-l10n-id", AnnotationEditor._l10nResizer[name]);
				}
			}
			const first = this.#allResizerDivs[0];
			let firstPosition = 0;
			for (const div of children) {
				if (div === first) {
					break;
				}
				firstPosition++;
			}
			const nextFirstPosition = (360 - this.rotation + this.parentRotation) % 360 / 90 * (this.#allResizerDivs.length / 4);
			if (nextFirstPosition !== firstPosition) {
				if (nextFirstPosition < firstPosition) {
					for (let i$8 = 0; i$8 < firstPosition - nextFirstPosition; i$8++) {
						this.#resizersDiv.append(this.#resizersDiv.firstChild);
					}
				} else if (nextFirstPosition > firstPosition) {
					for (let i$8 = 0; i$8 < nextFirstPosition - firstPosition; i$8++) {
						this.#resizersDiv.firstChild.before(this.#resizersDiv.lastChild);
					}
				}
				let i$7 = 0;
				for (const child of children) {
					const div = this.#allResizerDivs[i$7++];
					const name = div.getAttribute("data-resizer-name");
					child.setAttribute("data-l10n-id", AnnotationEditor._l10nResizer[name]);
				}
			}
			this.#setResizerTabIndex(0);
			this.#isResizerEnabledForKeyboard = true;
			this.#resizersDiv.firstChild.focus({ focusVisible: true });
			event.preventDefault();
			event.stopImmediatePropagation();
		}
		#resizerKeydown(event) {
			AnnotationEditor._resizerKeyboardManager.exec(this, event);
		}
		#resizerBlur(event) {
			if (this.#isResizerEnabledForKeyboard && event.relatedTarget?.parentNode !== this.#resizersDiv) {
				this.#stopResizing();
			}
		}
		#resizerFocus(name) {
			this.#focusedResizerName = this.#isResizerEnabledForKeyboard ? name : "";
		}
		#setResizerTabIndex(value) {
			if (!this.#allResizerDivs) {
				return;
			}
			for (const div of this.#allResizerDivs) {
				div.tabIndex = value;
			}
		}
		_resizeWithKeyboard(x$2, y$3) {
			if (!this.#isResizerEnabledForKeyboard) {
				return;
			}
			this.#resizerPointermove(this.#focusedResizerName, {
				deltaX: x$2,
				deltaY: y$3,
				fromKeyboard: true
			});
		}
		#stopResizing() {
			this.#isResizerEnabledForKeyboard = false;
			this.#setResizerTabIndex(-1);
			this.#addResizeToUndoStack();
		}
		_stopResizingWithKeyboard() {
			this.#stopResizing();
			this.div.focus();
		}
		select() {
			if (this.isSelected && this._editToolbar) {
				this._editToolbar.show();
				return;
			}
			this.isSelected = true;
			this.makeResizable();
			this.div?.classList.add("selectedEditor");
			if (!this._editToolbar) {
				this.addEditToolbar().then(() => {
					if (this.div?.classList.contains("selectedEditor")) {
						this._editToolbar?.show();
					}
				});
				return;
			}
			this._editToolbar?.show();
			this.#altText?.toggleAltTextBadge(false);
		}
		focus() {
			if (this.div && !this.div.contains(document.activeElement)) {
				setTimeout(() => this.div?.focus({ preventScroll: true }), 0);
			}
		}
		unselect() {
			if (!this.isSelected) {
				return;
			}
			this.isSelected = false;
			this.#resizersDiv?.classList.add("hidden");
			this.div?.classList.remove("selectedEditor");
			if (this.div?.contains(document.activeElement)) {
				this._uiManager.currentLayer.div.focus({ preventScroll: true });
			}
			this._editToolbar?.hide();
			this.#altText?.toggleAltTextBadge(true);
			this.hideCommentPopup();
		}
		hideCommentPopup() {
			if (this.hasComment) {
				this._uiManager.toggleComment(null);
			}
		}
		updateParams(type, value) {}
		disableEditing() {}
		enableEditing() {}
		get canChangeContent() {
			return false;
		}
		enterInEditMode() {
			if (!this.canChangeContent) {
				return;
			}
			this.enableEditMode();
			this.div.focus();
		}
		dblclick(event) {
			if (event.target.nodeName === "BUTTON") {
				return;
			}
			this.enterInEditMode();
			this.parent.updateToolbar({
				mode: this.constructor._editorType,
				editId: this.uid
			});
		}
		getElementForAltText() {
			return this.div;
		}
		get contentDiv() {
			return this.div;
		}
		get isEditing() {
			return this.#isEditing;
		}
		set isEditing(value) {
			this.#isEditing = value;
			if (!this.parent) {
				return;
			}
			if (value) {
				this.parent.setSelected(this);
				this.parent.setActiveEditor(this);
			} else {
				this.parent.setActiveEditor(null);
			}
		}
		static get MIN_SIZE() {
			return 16;
		}
		static canCreateNewEmptyEditor() {
			return true;
		}
		get telemetryInitialData() {
			return { action: "added" };
		}
		get telemetryFinalData() {
			return null;
		}
		_reportTelemetry(data, mustWait = false) {
			if (mustWait) {
				this.#telemetryTimeouts ||= new Map();
				const { action } = data;
				let timeout = this.#telemetryTimeouts.get(action);
				if (timeout) {
					clearTimeout(timeout);
				}
				timeout = setTimeout(() => {
					this._reportTelemetry(data);
					this.#telemetryTimeouts.delete(action);
					if (this.#telemetryTimeouts.size === 0) {
						this.#telemetryTimeouts = null;
					}
				}, AnnotationEditor._telemetryTimeout);
				this.#telemetryTimeouts.set(action, timeout);
				return;
			}
			data.type ||= this.editorType;
			this._uiManager._eventBus.dispatch("reporttelemetry", {
				source: this,
				details: {
					type: "editing",
					data
				}
			});
		}
		show(visible = this._isVisible) {
			this.div.classList.toggle("hidden", !visible);
			this._isVisible = visible;
		}
		enable() {
			if (this.div) {
				this.div.tabIndex = 0;
			}
			this.#disabled = false;
		}
		disable() {
			if (this.div) {
				this.div.tabIndex = -1;
			}
			this.#disabled = true;
		}
		updateFakeAnnotationElement(annotationLayer) {
			if (!this.#fakeAnnotation && !this.deleted) {
				this.#fakeAnnotation = annotationLayer.addFakeAnnotation(this);
				return;
			}
			if (this.deleted) {
				this.#fakeAnnotation.remove();
				this.#fakeAnnotation = null;
				return;
			}
			if (this.hasEditedComment || this._hasBeenMoved || this._hasBeenResized) {
				this.#fakeAnnotation.updateEdited({
					rect: this.getPDFRect(),
					popup: this.comment
				});
			}
		}
		renderAnnotationElement(annotation) {
			if (this.deleted) {
				annotation.hide();
				return null;
			}
			let content = annotation.container.querySelector(".annotationContent");
			if (!content) {
				content = document.createElement("div");
				content.classList.add("annotationContent", this.editorType);
				annotation.container.prepend(content);
			} else if (content.nodeName === "CANVAS") {
				const canvas = content;
				content = document.createElement("div");
				content.classList.add("annotationContent", this.editorType);
				canvas.before(content);
			}
			return content;
		}
		resetAnnotationElement(annotation) {
			const { firstChild } = annotation.container;
			if (firstChild?.nodeName === "DIV" && firstChild.classList.contains("annotationContent")) {
				firstChild.remove();
			}
		}
	};
	FakeEditor = class extends AnnotationEditor {
		constructor(params) {
			super(params);
			this.annotationElementId = params.annotationElementId;
			this.deleted = true;
		}
		serialize() {
			return this.serializeDeleted();
		}
	};
	;
	SEED = 3285377520;
	MASK_HIGH = 4294901760;
	MASK_LOW = 65535;
	MurmurHash3_64 = class {
		constructor(seed) {
			this.h1 = seed ? seed & 4294967295 : SEED;
			this.h2 = seed ? seed & 4294967295 : SEED;
		}
		update(input) {
			let data, length;
			if (typeof input === "string") {
				data = new Uint8Array(input.length * 2);
				length = 0;
				for (let i$7 = 0, ii = input.length; i$7 < ii; i$7++) {
					const code = input.charCodeAt(i$7);
					if (code <= 255) {
						data[length++] = code;
					} else {
						data[length++] = code >>> 8;
						data[length++] = code & 255;
					}
				}
			} else if (ArrayBuffer.isView(input)) {
				data = input.slice();
				length = data.byteLength;
			} else {
				throw new Error("Invalid data format, must be a string or TypedArray.");
			}
			const blockCounts = length >> 2;
			const tailLength = length - blockCounts * 4;
			const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);
			let k1 = 0, k2 = 0;
			let h1 = this.h1, h2 = this.h2;
			const C1 = 3432918353, C2 = 461845907;
			const C1_LOW = C1 & MASK_LOW, C2_LOW = C2 & MASK_LOW;
			for (let i$7 = 0; i$7 < blockCounts; i$7++) {
				if (i$7 & 1) {
					k1 = dataUint32[i$7];
					k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;
					k1 = k1 << 15 | k1 >>> 17;
					k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;
					h1 ^= k1;
					h1 = h1 << 13 | h1 >>> 19;
					h1 = h1 * 5 + 3864292196;
				} else {
					k2 = dataUint32[i$7];
					k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;
					k2 = k2 << 15 | k2 >>> 17;
					k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;
					h2 ^= k2;
					h2 = h2 << 13 | h2 >>> 19;
					h2 = h2 * 5 + 3864292196;
				}
			}
			k1 = 0;
			switch (tailLength) {
				case 3: k1 ^= data[blockCounts * 4 + 2] << 16;
				case 2: k1 ^= data[blockCounts * 4 + 1] << 8;
				case 1:
					k1 ^= data[blockCounts * 4];
					k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;
					k1 = k1 << 15 | k1 >>> 17;
					k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;
					if (blockCounts & 1) {
						h1 ^= k1;
					} else {
						h2 ^= k1;
					}
			}
			this.h1 = h1;
			this.h2 = h2;
		}
		hexdigest() {
			let h1 = this.h1, h2 = this.h2;
			h1 ^= h2 >>> 1;
			h1 = h1 * 3981806797 & MASK_HIGH | h1 * 36045 & MASK_LOW;
			h2 = h2 * 4283543511 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 2950163797 & MASK_HIGH) >>> 16;
			h1 ^= h2 >>> 1;
			h1 = h1 * 444984403 & MASK_HIGH | h1 * 60499 & MASK_LOW;
			h2 = h2 * 3301882366 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 3120437893 & MASK_HIGH) >>> 16;
			h1 ^= h2 >>> 1;
			return (h1 >>> 0).toString(16).padStart(8, "0") + (h2 >>> 0).toString(16).padStart(8, "0");
		}
	};
	;
	SerializableEmpty = Object.freeze({
		map: null,
		hash: "",
		transfer: undefined
	});
	AnnotationStorage = class {
		#modified = false;
		#modifiedIds = null;
		#editorsMap = null;
		#storage = new Map();
		constructor() {
			this.onSetModified = null;
			this.onResetModified = null;
			this.onAnnotationEditor = null;
		}
		getValue(key, defaultValue) {
			const value = this.#storage.get(key);
			if (value === undefined) {
				return defaultValue;
			}
			return Object.assign(defaultValue, value);
		}
		getRawValue(key) {
			return this.#storage.get(key);
		}
		remove(key) {
			const storedValue = this.#storage.get(key);
			if (storedValue === undefined) {
				return;
			}
			if (storedValue instanceof AnnotationEditor) {
				this.#editorsMap.delete(storedValue.annotationElementId);
			}
			this.#storage.delete(key);
			if (this.#storage.size === 0) {
				this.resetModified();
			}
			if (typeof this.onAnnotationEditor === "function") {
				for (const value of this.#storage.values()) {
					if (value instanceof AnnotationEditor) {
						return;
					}
				}
				this.onAnnotationEditor(null);
			}
		}
		setValue(key, value) {
			const obj = this.#storage.get(key);
			let modified = false;
			if (obj !== undefined) {
				for (const [entry, val$1] of Object.entries(value)) {
					if (obj[entry] !== val$1) {
						modified = true;
						obj[entry] = val$1;
					}
				}
			} else {
				modified = true;
				this.#storage.set(key, value);
			}
			if (modified) {
				this.#setModified();
			}
			if (value instanceof AnnotationEditor) {
				(this.#editorsMap ||= new Map()).set(value.annotationElementId, value);
				if (typeof this.onAnnotationEditor === "function") {
					this.onAnnotationEditor(value.constructor._type);
				}
			}
		}
		has(key) {
			return this.#storage.has(key);
		}
		get size() {
			return this.#storage.size;
		}
		#setModified() {
			if (!this.#modified) {
				this.#modified = true;
				if (typeof this.onSetModified === "function") {
					this.onSetModified();
				}
			}
		}
		resetModified() {
			if (this.#modified) {
				this.#modified = false;
				if (typeof this.onResetModified === "function") {
					this.onResetModified();
				}
			}
		}
		get print() {
			return new PrintAnnotationStorage(this);
		}
		get serializable() {
			if (this.#storage.size === 0) {
				return SerializableEmpty;
			}
			const map$2 = new Map(), hash = new MurmurHash3_64(), transfer = [];
			const context = Object.create(null);
			let hasBitmap = false;
			for (const [key, val$1] of this.#storage) {
				const serialized = val$1 instanceof AnnotationEditor ? val$1.serialize(false, context) : val$1;
				if (serialized) {
					map$2.set(key, serialized);
					hash.update(`${key}:${JSON.stringify(serialized)}`);
					hasBitmap ||= !!serialized.bitmap;
				}
			}
			if (hasBitmap) {
				for (const value of map$2.values()) {
					if (value.bitmap) {
						transfer.push(value.bitmap);
					}
				}
			}
			return map$2.size > 0 ? {
				map: map$2,
				hash: hash.hexdigest(),
				transfer
			} : SerializableEmpty;
		}
		get editorStats() {
			let stats = null;
			const typeToEditor = new Map();
			let numberOfEditedComments = 0;
			let numberOfDeletedComments = 0;
			for (const value of this.#storage.values()) {
				if (!(value instanceof AnnotationEditor)) {
					if (value.popup) {
						if (value.popup.deleted) {
							numberOfDeletedComments += 1;
						} else {
							numberOfEditedComments += 1;
						}
					}
					continue;
				}
				if (value.isCommentDeleted) {
					numberOfDeletedComments += 1;
				} else if (value.hasEditedComment) {
					numberOfEditedComments += 1;
				}
				const editorStats = value.telemetryFinalData;
				if (!editorStats) {
					continue;
				}
				const { type } = editorStats;
				if (!typeToEditor.has(type)) {
					typeToEditor.set(type, Object.getPrototypeOf(value).constructor);
				}
				stats ||= Object.create(null);
				const map$2 = stats[type] ||= new Map();
				for (const [key, val$1] of Object.entries(editorStats)) {
					if (key === "type") {
						continue;
					}
					let counters = map$2.get(key);
					if (!counters) {
						counters = new Map();
						map$2.set(key, counters);
					}
					const count = counters.get(val$1) ?? 0;
					counters.set(val$1, count + 1);
				}
			}
			if (numberOfDeletedComments > 0 || numberOfEditedComments > 0) {
				stats ||= Object.create(null);
				stats.comments = {
					deleted: numberOfDeletedComments,
					edited: numberOfEditedComments
				};
			}
			if (!stats) {
				return null;
			}
			for (const [type, editor] of typeToEditor) {
				stats[type] = editor.computeTelemetryFinalData(stats[type]);
			}
			return stats;
		}
		resetModifiedIds() {
			this.#modifiedIds = null;
		}
		updateEditor(annotationId, data) {
			const value = this.#editorsMap?.get(annotationId);
			if (value) {
				value.updateFromAnnotationLayer(data);
				return true;
			}
			return false;
		}
		getEditor(annotationId) {
			return this.#editorsMap?.get(annotationId) || null;
		}
		get modifiedIds() {
			if (this.#modifiedIds) {
				return this.#modifiedIds;
			}
			const ids = [];
			if (this.#editorsMap) {
				for (const value of this.#editorsMap.values()) {
					if (!value.serialize()) {
						continue;
					}
					ids.push(value.annotationElementId);
				}
			}
			return this.#modifiedIds = {
				ids: new Set(ids),
				hash: ids.join(",")
			};
		}
		[Symbol.iterator]() {
			return this.#storage.entries();
		}
	};
	PrintAnnotationStorage = class extends AnnotationStorage {
		#serializable;
		constructor(parent) {
			super();
			const { map: map$2, hash, transfer } = parent.serializable;
			const clone = structuredClone(map$2, transfer ? { transfer } : null);
			this.#serializable = {
				map: clone,
				hash,
				transfer
			};
		}
		get print() {
			unreachable("Should not call PrintAnnotationStorage.print");
		}
		get serializable() {
			return this.#serializable;
		}
		get modifiedIds() {
			return shadow(this, "modifiedIds", {
				ids: new Set(),
				hash: ""
			});
		}
	};
	;
	FontLoader = class {
		#systemFonts = new Set();
		constructor({ ownerDocument = globalThis.document, styleElement = null }) {
			this._document = ownerDocument;
			this.nativeFontFaces = new Set();
			this.styleElement = null;
			this.loadingRequests = [];
			this.loadTestFontId = 0;
		}
		addNativeFontFace(nativeFontFace) {
			this.nativeFontFaces.add(nativeFontFace);
			this._document.fonts.add(nativeFontFace);
		}
		removeNativeFontFace(nativeFontFace) {
			this.nativeFontFaces.delete(nativeFontFace);
			this._document.fonts.delete(nativeFontFace);
		}
		insertRule(rule) {
			if (!this.styleElement) {
				this.styleElement = this._document.createElement("style");
				this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement);
			}
			const styleSheet = this.styleElement.sheet;
			styleSheet.insertRule(rule, styleSheet.cssRules.length);
		}
		clear() {
			for (const nativeFontFace of this.nativeFontFaces) {
				this._document.fonts.delete(nativeFontFace);
			}
			this.nativeFontFaces.clear();
			this.#systemFonts.clear();
			if (this.styleElement) {
				this.styleElement.remove();
				this.styleElement = null;
			}
		}
		async loadSystemFont({ systemFontInfo: info$1, disableFontFace, _inspectFont }) {
			if (!info$1 || this.#systemFonts.has(info$1.loadedName)) {
				return;
			}
			assert$1(!disableFontFace, "loadSystemFont shouldn't be called when `disableFontFace` is set.");
			if (this.isFontLoadingAPISupported) {
				const { loadedName, src, style } = info$1;
				const fontFace = new FontFace(loadedName, src, style);
				this.addNativeFontFace(fontFace);
				try {
					await fontFace.load();
					this.#systemFonts.add(loadedName);
					_inspectFont?.(info$1);
				} catch {
					warn$2(`Cannot load system font: ${info$1.baseFontName}, installing it could help to improve PDF rendering.`);
					this.removeNativeFontFace(fontFace);
				}
				return;
			}
			unreachable("Not implemented: loadSystemFont without the Font Loading API.");
		}
		async bind(font) {
			if (font.attached || font.missingFile && !font.systemFontInfo) {
				return;
			}
			font.attached = true;
			if (font.systemFontInfo) {
				await this.loadSystemFont(font);
				return;
			}
			if (this.isFontLoadingAPISupported) {
				const nativeFontFace = font.createNativeFontFace();
				if (nativeFontFace) {
					this.addNativeFontFace(nativeFontFace);
					try {
						await nativeFontFace.loaded;
					} catch (ex) {
						warn$2(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);
						font.disableFontFace = true;
						throw ex;
					}
				}
				return;
			}
			const rule = font.createFontFaceRule();
			if (rule) {
				this.insertRule(rule);
				if (this.isSyncFontLoadingSupported) {
					return;
				}
				await new Promise((resolve) => {
					const request = this._queueLoadingCallback(resolve);
					this._prepareFontLoadEvent(font, request);
				});
			}
		}
		get isFontLoadingAPISupported() {
			const hasFonts = !!this._document?.fonts;
			return shadow(this, "isFontLoadingAPISupported", hasFonts);
		}
		get isSyncFontLoadingSupported() {
			return shadow(this, "isSyncFontLoadingSupported", isNodeJS || util_FeatureTest.platform.isFirefox);
		}
		_queueLoadingCallback(callback) {
			function completeRequest() {
				assert$1(!request.done, "completeRequest() cannot be called twice.");
				request.done = true;
				while (loadingRequests.length > 0 && loadingRequests[0].done) {
					const otherRequest = loadingRequests.shift();
					setTimeout(otherRequest.callback, 0);
				}
			}
			const { loadingRequests } = this;
			const request = {
				done: false,
				complete: completeRequest,
				callback
			};
			loadingRequests.push(request);
			return request;
		}
		get _loadTestFont() {
			const testFont = atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA" + "FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA" + "ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA" + "AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1" + "AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD" + "6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM" + "AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D" + "IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA" + "AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA" + "AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB" + "AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY" + "AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA" + "AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA" + "AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC" + "AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3" + "Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj" + "FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==");
			return shadow(this, "_loadTestFont", testFont);
		}
		_prepareFontLoadEvent(font, request) {
			function int32(data$1, offset) {
				return data$1.charCodeAt(offset) << 24 | data$1.charCodeAt(offset + 1) << 16 | data$1.charCodeAt(offset + 2) << 8 | data$1.charCodeAt(offset + 3) & 255;
			}
			function spliceString(s$5, offset, remove, insert) {
				const chunk1 = s$5.substring(0, offset);
				const chunk2 = s$5.substring(offset + remove);
				return chunk1 + insert + chunk2;
			}
			let i$7, ii;
			const canvas = this._document.createElement("canvas");
			canvas.width = 1;
			canvas.height = 1;
			const ctx = canvas.getContext("2d");
			let called = 0;
			function isFontReady(name, callback) {
				if (++called > 30) {
					warn$2("Load test font never loaded.");
					callback();
					return;
				}
				ctx.font = "30px " + name;
				ctx.fillText(".", 0, 20);
				const imageData = ctx.getImageData(0, 0, 1, 1);
				if (imageData.data[3] > 0) {
					callback();
					return;
				}
				setTimeout(isFontReady.bind(null, name, callback));
			}
			const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;
			let data = this._loadTestFont;
			const COMMENT_OFFSET = 976;
			data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);
			const CFF_CHECKSUM_OFFSET = 16;
			const XXXX_VALUE = 1482184792;
			let checksum = int32(data, CFF_CHECKSUM_OFFSET);
			for (i$7 = 0, ii = loadTestFontId.length - 3; i$7 < ii; i$7 += 4) {
				checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i$7) | 0;
			}
			if (i$7 < loadTestFontId.length) {
				checksum = checksum - XXXX_VALUE + int32(loadTestFontId + "XXX", i$7) | 0;
			}
			data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, string32(checksum));
			const url = `url(data:font/opentype;base64,${btoa(data)});`;
			const rule = `@font-face {font-family:"${loadTestFontId}";src:${url}}`;
			this.insertRule(rule);
			const div = this._document.createElement("div");
			div.style.visibility = "hidden";
			div.style.width = div.style.height = "10px";
			div.style.position = "absolute";
			div.style.top = div.style.left = "0px";
			for (const name of [font.loadedName, loadTestFontId]) {
				const span = this._document.createElement("span");
				span.textContent = "Hi";
				span.style.fontFamily = name;
				div.append(span);
			}
			this._document.body.append(div);
			isFontReady(loadTestFontId, () => {
				div.remove();
				request.complete();
			});
		}
	};
	FontFaceObject = class {
		#fontData;
		constructor(translatedData, inspectFont = null, extra, charProcOperatorList) {
			this.compiledGlyphs = Object.create(null);
			this.#fontData = translatedData;
			this._inspectFont = inspectFont;
			if (extra) {
				Object.assign(this, extra);
			}
			if (charProcOperatorList) {
				this.charProcOperatorList = charProcOperatorList;
			}
		}
		createNativeFontFace() {
			if (!this.data || this.disableFontFace) {
				return null;
			}
			let nativeFontFace;
			if (!this.cssFontInfo) {
				nativeFontFace = new FontFace(this.loadedName, this.data, {});
			} else {
				const css$2 = { weight: this.cssFontInfo.fontWeight };
				if (this.cssFontInfo.italicAngle) {
					css$2.style = `oblique ${this.cssFontInfo.italicAngle}deg`;
				}
				nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css$2);
			}
			this._inspectFont?.(this);
			return nativeFontFace;
		}
		createFontFaceRule() {
			if (!this.data || this.disableFontFace) {
				return null;
			}
			const url = `url(data:${this.mimetype};base64,${toBase64Util(this.data)});`;
			let rule;
			if (!this.cssFontInfo) {
				rule = `@font-face {font-family:"${this.loadedName}";src:${url}}`;
			} else {
				let css$2 = `font-weight: ${this.cssFontInfo.fontWeight};`;
				if (this.cssFontInfo.italicAngle) {
					css$2 += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;
				}
				rule = `@font-face {font-family:"${this.cssFontInfo.fontFamily}";${css$2}src:${url}}`;
			}
			this._inspectFont?.(this, url);
			return rule;
		}
		getPathGenerator(objs, character) {
			if (this.compiledGlyphs[character] !== undefined) {
				return this.compiledGlyphs[character];
			}
			const objId = this.loadedName + "_path_" + character;
			let cmds;
			try {
				cmds = objs.get(objId);
			} catch (ex) {
				warn$2(`getPathGenerator - ignoring character: "${ex}".`);
			}
			const path$1 = makePathFromDrawOPS(cmds);
			if (!this.fontExtraProperties) {
				objs.delete(objId);
			}
			return this.compiledGlyphs[character] = path$1;
		}
		get black() {
			return this.#fontData.black;
		}
		get bold() {
			return this.#fontData.bold;
		}
		get disableFontFace() {
			return this.#fontData.disableFontFace ?? false;
		}
		get fontExtraProperties() {
			return this.#fontData.fontExtraProperties ?? false;
		}
		get isInvalidPDFjsFont() {
			return this.#fontData.isInvalidPDFjsFont;
		}
		get isType3Font() {
			return this.#fontData.isType3Font;
		}
		get italic() {
			return this.#fontData.italic;
		}
		get missingFile() {
			return this.#fontData.missingFile;
		}
		get remeasure() {
			return this.#fontData.remeasure;
		}
		get vertical() {
			return this.#fontData.vertical;
		}
		get ascent() {
			return this.#fontData.ascent;
		}
		get defaultWidth() {
			return this.#fontData.defaultWidth;
		}
		get descent() {
			return this.#fontData.descent;
		}
		get bbox() {
			return this.#fontData.bbox;
		}
		get fontMatrix() {
			return this.#fontData.fontMatrix;
		}
		get fallbackName() {
			return this.#fontData.fallbackName;
		}
		get loadedName() {
			return this.#fontData.loadedName;
		}
		get mimetype() {
			return this.#fontData.mimetype;
		}
		get name() {
			return this.#fontData.name;
		}
		get data() {
			return this.#fontData.data;
		}
		clearData() {
			this.#fontData.clearData();
		}
		get cssFontInfo() {
			return this.#fontData.cssFontInfo;
		}
		get systemFontInfo() {
			return this.#fontData.systemFontInfo;
		}
		get defaultVMetrics() {
			return this.#fontData.defaultVMetrics;
		}
	};
	;
	CssFontInfo = class CssFontInfo {
		#buffer;
		#view;
		#decoder;
		static strings = [
			"fontFamily",
			"fontWeight",
			"italicAngle"
		];
		static write(info$1) {
			const encoder = new TextEncoder();
			const encodedStrings = {};
			let stringsLength = 0;
			for (const prop of CssFontInfo.strings) {
				const encoded = encoder.encode(info$1[prop]);
				encodedStrings[prop] = encoded;
				stringsLength += 4 + encoded.length;
			}
			const buffer = new ArrayBuffer(stringsLength);
			const data = new Uint8Array(buffer);
			const view = new DataView(buffer);
			let offset = 0;
			for (const prop of CssFontInfo.strings) {
				const encoded = encodedStrings[prop];
				const length = encoded.length;
				view.setUint32(offset, length);
				data.set(encoded, offset + 4);
				offset += 4 + length;
			}
			assert$1(offset === buffer.byteLength, "CssFontInfo.write: Buffer overflow");
			return buffer;
		}
		constructor(buffer) {
			this.#buffer = buffer;
			this.#view = new DataView(this.#buffer);
			this.#decoder = new TextDecoder();
		}
		#readString(index) {
			assert$1(index < CssFontInfo.strings.length, "Invalid string index");
			let offset = 0;
			for (let i$7 = 0; i$7 < index; i$7++) {
				offset += this.#view.getUint32(offset) + 4;
			}
			const length = this.#view.getUint32(offset);
			return this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, length));
		}
		get fontFamily() {
			return this.#readString(0);
		}
		get fontWeight() {
			return this.#readString(1);
		}
		get italicAngle() {
			return this.#readString(2);
		}
	};
	SystemFontInfo = class SystemFontInfo {
		#buffer;
		#view;
		#decoder;
		static strings = [
			"css",
			"loadedName",
			"baseFontName",
			"src"
		];
		static write(info$1) {
			const encoder = new TextEncoder();
			const encodedStrings = {};
			let stringsLength = 0;
			for (const prop of SystemFontInfo.strings) {
				const encoded = encoder.encode(info$1[prop]);
				encodedStrings[prop] = encoded;
				stringsLength += 4 + encoded.length;
			}
			stringsLength += 4;
			let encodedStyleStyle, encodedStyleWeight, lengthEstimate = 1 + stringsLength;
			if (info$1.style) {
				encodedStyleStyle = encoder.encode(info$1.style.style);
				encodedStyleWeight = encoder.encode(info$1.style.weight);
				lengthEstimate += 4 + encodedStyleStyle.length + 4 + encodedStyleWeight.length;
			}
			const buffer = new ArrayBuffer(lengthEstimate);
			const data = new Uint8Array(buffer);
			const view = new DataView(buffer);
			let offset = 0;
			view.setUint8(offset++, info$1.guessFallback ? 1 : 0);
			view.setUint32(offset, 0);
			offset += 4;
			stringsLength = 0;
			for (const prop of SystemFontInfo.strings) {
				const encoded = encodedStrings[prop];
				const length = encoded.length;
				stringsLength += 4 + length;
				view.setUint32(offset, length);
				data.set(encoded, offset + 4);
				offset += 4 + length;
			}
			view.setUint32(offset - stringsLength - 4, stringsLength);
			if (info$1.style) {
				view.setUint32(offset, encodedStyleStyle.length);
				data.set(encodedStyleStyle, offset + 4);
				offset += 4 + encodedStyleStyle.length;
				view.setUint32(offset, encodedStyleWeight.length);
				data.set(encodedStyleWeight, offset + 4);
				offset += 4 + encodedStyleWeight.length;
			}
			assert$1(offset <= buffer.byteLength, "SubstitionInfo.write: Buffer overflow");
			return buffer.transferToFixedLength(offset);
		}
		constructor(buffer) {
			this.#buffer = buffer;
			this.#view = new DataView(this.#buffer);
			this.#decoder = new TextDecoder();
		}
		get guessFallback() {
			return this.#view.getUint8(0) !== 0;
		}
		#readString(index) {
			assert$1(index < SystemFontInfo.strings.length, "Invalid string index");
			let offset = 5;
			for (let i$7 = 0; i$7 < index; i$7++) {
				offset += this.#view.getUint32(offset) + 4;
			}
			const length = this.#view.getUint32(offset);
			return this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, length));
		}
		get css() {
			return this.#readString(0);
		}
		get loadedName() {
			return this.#readString(1);
		}
		get baseFontName() {
			return this.#readString(2);
		}
		get src() {
			return this.#readString(3);
		}
		get style() {
			let offset = 1;
			offset += 4 + this.#view.getUint32(offset);
			const styleLength = this.#view.getUint32(offset);
			const style = this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, styleLength));
			offset += 4 + styleLength;
			const weightLength = this.#view.getUint32(offset);
			const weight = this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, weightLength));
			return {
				style,
				weight
			};
		}
	};
	FontInfo = class FontInfo {
		static bools = [
			"black",
			"bold",
			"disableFontFace",
			"fontExtraProperties",
			"isInvalidPDFjsFont",
			"isType3Font",
			"italic",
			"missingFile",
			"remeasure",
			"vertical"
		];
		static numbers = [
			"ascent",
			"defaultWidth",
			"descent"
		];
		static strings = [
			"fallbackName",
			"loadedName",
			"mimetype",
			"name"
		];
		static #OFFSET_NUMBERS = Math.ceil(this.bools.length * 2 / 8);
		static #OFFSET_BBOX = this.#OFFSET_NUMBERS + this.numbers.length * 8;
		static #OFFSET_FONT_MATRIX = this.#OFFSET_BBOX + 1 + 2 * 4;
		static #OFFSET_DEFAULT_VMETRICS = this.#OFFSET_FONT_MATRIX + 1 + 8 * 6;
		static #OFFSET_STRINGS = this.#OFFSET_DEFAULT_VMETRICS + 1 + 2 * 3;
		#buffer;
		#decoder;
		#view;
		constructor({ data, extra }) {
			this.#buffer = data;
			this.#decoder = new TextDecoder();
			this.#view = new DataView(this.#buffer);
			if (extra) {
				Object.assign(this, extra);
			}
		}
		#readBoolean(index) {
			assert$1(index < FontInfo.bools.length, "Invalid boolean index");
			const byteOffset = Math.floor(index / 4);
			const bitOffset = index * 2 % 8;
			const value = this.#view.getUint8(byteOffset) >> bitOffset & 3;
			return value === 0 ? undefined : value === 2;
		}
		get black() {
			return this.#readBoolean(0);
		}
		get bold() {
			return this.#readBoolean(1);
		}
		get disableFontFace() {
			return this.#readBoolean(2);
		}
		get fontExtraProperties() {
			return this.#readBoolean(3);
		}
		get isInvalidPDFjsFont() {
			return this.#readBoolean(4);
		}
		get isType3Font() {
			return this.#readBoolean(5);
		}
		get italic() {
			return this.#readBoolean(6);
		}
		get missingFile() {
			return this.#readBoolean(7);
		}
		get remeasure() {
			return this.#readBoolean(8);
		}
		get vertical() {
			return this.#readBoolean(9);
		}
		#readNumber(index) {
			assert$1(index < FontInfo.numbers.length, "Invalid number index");
			return this.#view.getFloat64(FontInfo.#OFFSET_NUMBERS + index * 8);
		}
		get ascent() {
			return this.#readNumber(0);
		}
		get defaultWidth() {
			return this.#readNumber(1);
		}
		get descent() {
			return this.#readNumber(2);
		}
		get bbox() {
			let offset = FontInfo.#OFFSET_BBOX;
			const numCoords = this.#view.getUint8(offset);
			if (numCoords === 0) {
				return undefined;
			}
			offset += 1;
			const bbox = [];
			for (let i$7 = 0; i$7 < 4; i$7++) {
				bbox.push(this.#view.getInt16(offset, true));
				offset += 2;
			}
			return bbox;
		}
		get fontMatrix() {
			let offset = FontInfo.#OFFSET_FONT_MATRIX;
			const numPoints = this.#view.getUint8(offset);
			if (numPoints === 0) {
				return undefined;
			}
			offset += 1;
			const fontMatrix = [];
			for (let i$7 = 0; i$7 < 6; i$7++) {
				fontMatrix.push(this.#view.getFloat64(offset, true));
				offset += 8;
			}
			return fontMatrix;
		}
		get defaultVMetrics() {
			let offset = FontInfo.#OFFSET_DEFAULT_VMETRICS;
			const numMetrics = this.#view.getUint8(offset);
			if (numMetrics === 0) {
				return undefined;
			}
			offset += 1;
			const defaultVMetrics = [];
			for (let i$7 = 0; i$7 < 3; i$7++) {
				defaultVMetrics.push(this.#view.getInt16(offset, true));
				offset += 2;
			}
			return defaultVMetrics;
		}
		#readString(index) {
			assert$1(index < FontInfo.strings.length, "Invalid string index");
			let offset = FontInfo.#OFFSET_STRINGS + 4;
			for (let i$7 = 0; i$7 < index; i$7++) {
				offset += this.#view.getUint32(offset) + 4;
			}
			const length = this.#view.getUint32(offset);
			const stringData = new Uint8Array(length);
			stringData.set(new Uint8Array(this.#buffer, offset + 4, length));
			return this.#decoder.decode(stringData);
		}
		get fallbackName() {
			return this.#readString(0);
		}
		get loadedName() {
			return this.#readString(1);
		}
		get mimetype() {
			return this.#readString(2);
		}
		get name() {
			return this.#readString(3);
		}
		get data() {
			let offset = FontInfo.#OFFSET_STRINGS;
			const stringsLength = this.#view.getUint32(offset);
			offset += 4 + stringsLength;
			const systemFontInfoLength = this.#view.getUint32(offset);
			offset += 4 + systemFontInfoLength;
			const cssFontInfoLength = this.#view.getUint32(offset);
			offset += 4 + cssFontInfoLength;
			const length = this.#view.getUint32(offset);
			if (length === 0) {
				return undefined;
			}
			return new Uint8Array(this.#buffer, offset + 4, length);
		}
		clearData() {
			let offset = FontInfo.#OFFSET_STRINGS;
			const stringsLength = this.#view.getUint32(offset);
			offset += 4 + stringsLength;
			const systemFontInfoLength = this.#view.getUint32(offset);
			offset += 4 + systemFontInfoLength;
			const cssFontInfoLength = this.#view.getUint32(offset);
			offset += 4 + cssFontInfoLength;
			const length = this.#view.getUint32(offset);
			const data = new Uint8Array(this.#buffer, offset + 4, length);
			data.fill(0);
			this.#view.setUint32(offset, 0);
		}
		get cssFontInfo() {
			let offset = FontInfo.#OFFSET_STRINGS;
			const stringsLength = this.#view.getUint32(offset);
			offset += 4 + stringsLength;
			const systemFontInfoLength = this.#view.getUint32(offset);
			offset += 4 + systemFontInfoLength;
			const cssFontInfoLength = this.#view.getUint32(offset);
			if (cssFontInfoLength === 0) {
				return null;
			}
			const cssFontInfoData = new Uint8Array(cssFontInfoLength);
			cssFontInfoData.set(new Uint8Array(this.#buffer, offset + 4, cssFontInfoLength));
			return new CssFontInfo(cssFontInfoData.buffer);
		}
		get systemFontInfo() {
			let offset = FontInfo.#OFFSET_STRINGS;
			const stringsLength = this.#view.getUint32(offset);
			offset += 4 + stringsLength;
			const systemFontInfoLength = this.#view.getUint32(offset);
			if (systemFontInfoLength === 0) {
				return null;
			}
			const systemFontInfoData = new Uint8Array(systemFontInfoLength);
			systemFontInfoData.set(new Uint8Array(this.#buffer, offset + 4, systemFontInfoLength));
			return new SystemFontInfo(systemFontInfoData.buffer);
		}
		static write(font) {
			const systemFontInfoBuffer = font.systemFontInfo ? SystemFontInfo.write(font.systemFontInfo) : null;
			const cssFontInfoBuffer = font.cssFontInfo ? CssFontInfo.write(font.cssFontInfo) : null;
			const encoder = new TextEncoder();
			const encodedStrings = {};
			let stringsLength = 0;
			for (const prop of FontInfo.strings) {
				encodedStrings[prop] = encoder.encode(font[prop]);
				stringsLength += 4 + encodedStrings[prop].length;
			}
			const lengthEstimate = FontInfo.#OFFSET_STRINGS + 4 + stringsLength + 4 + (systemFontInfoBuffer ? systemFontInfoBuffer.byteLength : 0) + 4 + (cssFontInfoBuffer ? cssFontInfoBuffer.byteLength : 0) + 4 + (font.data ? font.data.length : 0);
			const buffer = new ArrayBuffer(lengthEstimate);
			const data = new Uint8Array(buffer);
			const view = new DataView(buffer);
			let offset = 0;
			const numBools = FontInfo.bools.length;
			let boolByte = 0, boolBit = 0;
			for (let i$7 = 0; i$7 < numBools; i$7++) {
				const value = font[FontInfo.bools[i$7]];
				const bits = value === undefined ? 0 : value ? 2 : 1;
				boolByte |= bits << boolBit;
				boolBit += 2;
				if (boolBit === 8 || i$7 === numBools - 1) {
					view.setUint8(offset++, boolByte);
					boolByte = 0;
					boolBit = 0;
				}
			}
			assert$1(offset === FontInfo.#OFFSET_NUMBERS, "FontInfo.write: Boolean properties offset mismatch");
			for (const prop of FontInfo.numbers) {
				view.setFloat64(offset, font[prop]);
				offset += 8;
			}
			assert$1(offset === FontInfo.#OFFSET_BBOX, "FontInfo.write: Number properties offset mismatch");
			if (font.bbox) {
				view.setUint8(offset++, 4);
				for (const coord of font.bbox) {
					view.setInt16(offset, coord, true);
					offset += 2;
				}
			} else {
				view.setUint8(offset++, 0);
				offset += 2 * 4;
			}
			assert$1(offset === FontInfo.#OFFSET_FONT_MATRIX, "FontInfo.write: BBox properties offset mismatch");
			if (font.fontMatrix) {
				view.setUint8(offset++, 6);
				for (const point of font.fontMatrix) {
					view.setFloat64(offset, point, true);
					offset += 8;
				}
			} else {
				view.setUint8(offset++, 0);
				offset += 8 * 6;
			}
			assert$1(offset === FontInfo.#OFFSET_DEFAULT_VMETRICS, "FontInfo.write: FontMatrix properties offset mismatch");
			if (font.defaultVMetrics) {
				view.setUint8(offset++, 1);
				for (const metric of font.defaultVMetrics) {
					view.setInt16(offset, metric, true);
					offset += 2;
				}
			} else {
				view.setUint8(offset++, 0);
				offset += 3 * 2;
			}
			assert$1(offset === FontInfo.#OFFSET_STRINGS, "FontInfo.write: DefaultVMetrics properties offset mismatch");
			view.setUint32(FontInfo.#OFFSET_STRINGS, 0);
			offset += 4;
			for (const prop of FontInfo.strings) {
				const encoded = encodedStrings[prop];
				const length = encoded.length;
				view.setUint32(offset, length);
				data.set(encoded, offset + 4);
				offset += 4 + length;
			}
			view.setUint32(FontInfo.#OFFSET_STRINGS, offset - FontInfo.#OFFSET_STRINGS - 4);
			if (!systemFontInfoBuffer) {
				view.setUint32(offset, 0);
				offset += 4;
			} else {
				const length = systemFontInfoBuffer.byteLength;
				view.setUint32(offset, length);
				assert$1(offset + 4 + length <= buffer.byteLength, "FontInfo.write: Buffer overflow at systemFontInfo");
				data.set(new Uint8Array(systemFontInfoBuffer), offset + 4);
				offset += 4 + length;
			}
			if (!cssFontInfoBuffer) {
				view.setUint32(offset, 0);
				offset += 4;
			} else {
				const length = cssFontInfoBuffer.byteLength;
				view.setUint32(offset, length);
				assert$1(offset + 4 + length <= buffer.byteLength, "FontInfo.write: Buffer overflow at cssFontInfo");
				data.set(new Uint8Array(cssFontInfoBuffer), offset + 4);
				offset += 4 + length;
			}
			if (font.data === undefined) {
				view.setUint32(offset, 0);
				offset += 4;
			} else {
				view.setUint32(offset, font.data.length);
				data.set(font.data, offset + 4);
				offset += 4 + font.data.length;
			}
			assert$1(offset <= buffer.byteLength, "FontInfo.write: Buffer overflow");
			return buffer.transferToFixedLength(offset);
		}
	};
	PatternInfo = class PatternInfo {
		static #KIND = 0;
		static #HAS_BBOX = 1;
		static #HAS_BACKGROUND = 2;
		static #SHADING_TYPE = 3;
		static #N_COORD = 4;
		static #N_COLOR = 8;
		static #N_STOP = 12;
		static #N_FIGURES = 16;
		constructor(buffer) {
			this.buffer = buffer;
			this.view = new DataView(buffer);
			this.data = new Uint8Array(buffer);
		}
		static write(ir) {
			let kind, bbox = null, coords = [], colors = [], colorStops = [], figures = [], shadingType = null, background = null;
			switch (ir[0]) {
				case "RadialAxial":
					kind = ir[1] === "axial" ? 1 : 2;
					bbox = ir[2];
					colorStops = ir[3];
					if (kind === 1) {
						coords.push(...ir[4], ...ir[5]);
					} else {
						coords.push(ir[4][0], ir[4][1], ir[6], ir[5][0], ir[5][1], ir[7]);
					}
					break;
				case "Mesh":
					kind = 3;
					shadingType = ir[1];
					coords = ir[2];
					colors = ir[3];
					figures = ir[4] || [];
					bbox = ir[6];
					background = ir[7];
					break;
				default: throw new Error(`Unsupported pattern type: ${ir[0]}`);
			}
			const nCoord = Math.floor(coords.length / 2);
			const nColor = Math.floor(colors.length / 3);
			const nStop = colorStops.length;
			const nFigures = figures.length;
			let figuresSize = 0;
			for (const figure of figures) {
				figuresSize += 1;
				figuresSize = Math.ceil(figuresSize / 4) * 4;
				figuresSize += 4 + figure.coords.length * 4;
				figuresSize += 4 + figure.colors.length * 4;
				if (figure.verticesPerRow !== undefined) {
					figuresSize += 4;
				}
			}
			const byteLen = 20 + nCoord * 8 + nColor * 3 + nStop * 8 + (bbox ? 16 : 0) + (background ? 3 : 0) + figuresSize;
			const buffer = new ArrayBuffer(byteLen);
			const dataView = new DataView(buffer);
			const u8data = new Uint8Array(buffer);
			dataView.setUint8(PatternInfo.#KIND, kind);
			dataView.setUint8(PatternInfo.#HAS_BBOX, bbox ? 1 : 0);
			dataView.setUint8(PatternInfo.#HAS_BACKGROUND, background ? 1 : 0);
			dataView.setUint8(PatternInfo.#SHADING_TYPE, shadingType);
			dataView.setUint32(PatternInfo.#N_COORD, nCoord, true);
			dataView.setUint32(PatternInfo.#N_COLOR, nColor, true);
			dataView.setUint32(PatternInfo.#N_STOP, nStop, true);
			dataView.setUint32(PatternInfo.#N_FIGURES, nFigures, true);
			let offset = 20;
			const coordsView = new Float32Array(buffer, offset, nCoord * 2);
			coordsView.set(coords);
			offset += nCoord * 8;
			u8data.set(colors, offset);
			offset += nColor * 3;
			for (const [pos, hex] of colorStops) {
				dataView.setFloat32(offset, pos, true);
				offset += 4;
				dataView.setUint32(offset, parseInt(hex.slice(1), 16), true);
				offset += 4;
			}
			if (bbox) {
				for (const v$3 of bbox) {
					dataView.setFloat32(offset, v$3, true);
					offset += 4;
				}
			}
			if (background) {
				u8data.set(background, offset);
				offset += 3;
			}
			for (let i$7 = 0; i$7 < figures.length; i$7++) {
				const figure = figures[i$7];
				dataView.setUint8(offset, figure.type);
				offset += 1;
				offset = Math.ceil(offset / 4) * 4;
				dataView.setUint32(offset, figure.coords.length, true);
				offset += 4;
				const figureCoordsView = new Int32Array(buffer, offset, figure.coords.length);
				figureCoordsView.set(figure.coords);
				offset += figure.coords.length * 4;
				dataView.setUint32(offset, figure.colors.length, true);
				offset += 4;
				const colorsView = new Int32Array(buffer, offset, figure.colors.length);
				colorsView.set(figure.colors);
				offset += figure.colors.length * 4;
				if (figure.verticesPerRow !== undefined) {
					dataView.setUint32(offset, figure.verticesPerRow, true);
					offset += 4;
				}
			}
			return buffer;
		}
		getIR() {
			const dataView = this.view;
			const kind = this.data[PatternInfo.#KIND];
			const hasBBox = !!this.data[PatternInfo.#HAS_BBOX];
			const hasBackground = !!this.data[PatternInfo.#HAS_BACKGROUND];
			const nCoord = dataView.getUint32(PatternInfo.#N_COORD, true);
			const nColor = dataView.getUint32(PatternInfo.#N_COLOR, true);
			const nStop = dataView.getUint32(PatternInfo.#N_STOP, true);
			const nFigures = dataView.getUint32(PatternInfo.#N_FIGURES, true);
			let offset = 20;
			const coords = new Float32Array(this.buffer, offset, nCoord * 2);
			offset += nCoord * 8;
			const colors = new Uint8Array(this.buffer, offset, nColor * 3);
			offset += nColor * 3;
			const stops = [];
			for (let i$7 = 0; i$7 < nStop; ++i$7) {
				const p$3 = dataView.getFloat32(offset, true);
				offset += 4;
				const rgb = dataView.getUint32(offset, true);
				offset += 4;
				stops.push([p$3, `#${rgb.toString(16).padStart(6, "0")}`]);
			}
			let bbox = null;
			if (hasBBox) {
				bbox = [];
				for (let i$7 = 0; i$7 < 4; ++i$7) {
					bbox.push(dataView.getFloat32(offset, true));
					offset += 4;
				}
			}
			let background = null;
			if (hasBackground) {
				background = new Uint8Array(this.buffer, offset, 3);
				offset += 3;
			}
			const figures = [];
			for (let i$7 = 0; i$7 < nFigures; ++i$7) {
				const type = dataView.getUint8(offset);
				offset += 1;
				offset = Math.ceil(offset / 4) * 4;
				const coordsLength = dataView.getUint32(offset, true);
				offset += 4;
				const figureCoords = new Int32Array(this.buffer, offset, coordsLength);
				offset += coordsLength * 4;
				const colorsLength = dataView.getUint32(offset, true);
				offset += 4;
				const figureColors = new Int32Array(this.buffer, offset, colorsLength);
				offset += colorsLength * 4;
				const figure = {
					type,
					coords: figureCoords,
					colors: figureColors
				};
				if (type === MeshFigureType.LATTICE) {
					figure.verticesPerRow = dataView.getUint32(offset, true);
					offset += 4;
				}
				figures.push(figure);
			}
			if (kind === 1) {
				return [
					"RadialAxial",
					"axial",
					bbox,
					stops,
					Array.from(coords.slice(0, 2)),
					Array.from(coords.slice(2, 4)),
					null,
					null
				];
			}
			if (kind === 2) {
				return [
					"RadialAxial",
					"radial",
					bbox,
					stops,
					[coords[0], coords[1]],
					[coords[3], coords[4]],
					coords[2],
					coords[5]
				];
			}
			if (kind === 3) {
				const shadingType = this.data[PatternInfo.#SHADING_TYPE];
				let bounds = null;
				if (coords.length > 0) {
					let minX = coords[0], maxX = coords[0];
					let minY = coords[1], maxY = coords[1];
					for (let i$7 = 0; i$7 < coords.length; i$7 += 2) {
						const x$2 = coords[i$7], y$3 = coords[i$7 + 1];
						minX = minX > x$2 ? x$2 : minX;
						minY = minY > y$3 ? y$3 : minY;
						maxX = maxX < x$2 ? x$2 : maxX;
						maxY = maxY < y$3 ? y$3 : maxY;
					}
					bounds = [
						minX,
						minY,
						maxX,
						maxY
					];
				}
				return [
					"Mesh",
					shadingType,
					coords,
					colors,
					figures,
					bounds,
					bbox,
					background
				];
			}
			throw new Error(`Unsupported pattern kind: ${kind}`);
		}
	};
	;
	isRefProxy = (v$3) => typeof v$3 === "object" && Number.isInteger(v$3?.num) && v$3.num >= 0 && Number.isInteger(v$3?.gen) && v$3.gen >= 0;
	isNameProxy = (v$3) => typeof v$3 === "object" && typeof v$3?.name === "string";
	isValidExplicitDest = _isValidExplicitDest.bind(null, isRefProxy, isNameProxy);
	LoopbackPort = class {
		#listeners = new Map();
		#deferred = Promise.resolve();
		postMessage(obj, transfer) {
			const event = { data: structuredClone(obj, transfer ? { transfer } : null) };
			this.#deferred.then(() => {
				for (const [listener] of this.#listeners) {
					listener.call(this, event);
				}
			});
		}
		addEventListener(name, listener, options = null) {
			let rmAbort = null;
			if (options?.signal instanceof AbortSignal) {
				const { signal } = options;
				if (signal.aborted) {
					warn$2("LoopbackPort - cannot use an `aborted` signal.");
					return;
				}
				const onAbort = () => this.removeEventListener(name, listener);
				rmAbort = () => signal.removeEventListener("abort", onAbort);
				signal.addEventListener("abort", onAbort);
			}
			this.#listeners.set(listener, rmAbort);
		}
		removeEventListener(name, listener) {
			const rmAbort = this.#listeners.get(listener);
			rmAbort?.();
			this.#listeners.delete(listener);
		}
		terminate() {
			for (const [, rmAbort] of this.#listeners) {
				rmAbort?.();
			}
			this.#listeners.clear();
		}
	};
	;
	CallbackKind = {
		DATA: 1,
		ERROR: 2
	};
	StreamKind = {
		CANCEL: 1,
		CANCEL_COMPLETE: 2,
		CLOSE: 3,
		ENQUEUE: 4,
		ERROR: 5,
		PULL: 6,
		PULL_COMPLETE: 7,
		START_COMPLETE: 8
	};
	MessageHandler = class {
		#messageAC = new AbortController();
		constructor(sourceName, targetName, comObj) {
			this.sourceName = sourceName;
			this.targetName = targetName;
			this.comObj = comObj;
			this.callbackId = 1;
			this.streamId = 1;
			this.streamSinks = Object.create(null);
			this.streamControllers = Object.create(null);
			this.callbackCapabilities = Object.create(null);
			this.actionHandler = Object.create(null);
			comObj.addEventListener("message", this.#onMessage.bind(this), { signal: this.#messageAC.signal });
		}
		#onMessage({ data }) {
			if (data.targetName !== this.sourceName) {
				return;
			}
			if (data.stream) {
				this.#processStreamMessage(data);
				return;
			}
			if (data.callback) {
				const callbackId = data.callbackId;
				const capability = this.callbackCapabilities[callbackId];
				if (!capability) {
					throw new Error(`Cannot resolve callback ${callbackId}`);
				}
				delete this.callbackCapabilities[callbackId];
				if (data.callback === CallbackKind.DATA) {
					capability.resolve(data.data);
				} else if (data.callback === CallbackKind.ERROR) {
					capability.reject(wrapReason(data.reason));
				} else {
					throw new Error("Unexpected callback case");
				}
				return;
			}
			const action = this.actionHandler[data.action];
			if (!action) {
				throw new Error(`Unknown action from worker: ${data.action}`);
			}
			if (data.callbackId) {
				const sourceName = this.sourceName, targetName = data.sourceName, comObj = this.comObj;
				Promise.try(action, data.data).then(function(result) {
					comObj.postMessage({
						sourceName,
						targetName,
						callback: CallbackKind.DATA,
						callbackId: data.callbackId,
						data: result
					});
				}, function(reason) {
					comObj.postMessage({
						sourceName,
						targetName,
						callback: CallbackKind.ERROR,
						callbackId: data.callbackId,
						reason: wrapReason(reason)
					});
				});
				return;
			}
			if (data.streamId) {
				this.#createStreamSink(data);
				return;
			}
			action(data.data);
		}
		on(actionName, handler) {
			const ah = this.actionHandler;
			if (ah[actionName]) {
				throw new Error(`There is already an actionName called "${actionName}"`);
			}
			ah[actionName] = handler;
		}
		send(actionName, data, transfers) {
			this.comObj.postMessage({
				sourceName: this.sourceName,
				targetName: this.targetName,
				action: actionName,
				data
			}, transfers);
		}
		sendWithPromise(actionName, data, transfers) {
			const callbackId = this.callbackId++;
			const capability = Promise.withResolvers();
			this.callbackCapabilities[callbackId] = capability;
			try {
				this.comObj.postMessage({
					sourceName: this.sourceName,
					targetName: this.targetName,
					action: actionName,
					callbackId,
					data
				}, transfers);
			} catch (ex) {
				capability.reject(ex);
			}
			return capability.promise;
		}
		sendWithStream(actionName, data, queueingStrategy, transfers) {
			const streamId = this.streamId++, sourceName = this.sourceName, targetName = this.targetName, comObj = this.comObj;
			return new ReadableStream({
				start: (controller) => {
					const startCapability = Promise.withResolvers();
					this.streamControllers[streamId] = {
						controller,
						startCall: startCapability,
						pullCall: null,
						cancelCall: null,
						isClosed: false
					};
					comObj.postMessage({
						sourceName,
						targetName,
						action: actionName,
						streamId,
						data,
						desiredSize: controller.desiredSize
					}, transfers);
					return startCapability.promise;
				},
				pull: (controller) => {
					const pullCapability = Promise.withResolvers();
					this.streamControllers[streamId].pullCall = pullCapability;
					comObj.postMessage({
						sourceName,
						targetName,
						stream: StreamKind.PULL,
						streamId,
						desiredSize: controller.desiredSize
					});
					return pullCapability.promise;
				},
				cancel: (reason) => {
					assert$1(reason instanceof Error, "cancel must have a valid reason");
					const cancelCapability = Promise.withResolvers();
					this.streamControllers[streamId].cancelCall = cancelCapability;
					this.streamControllers[streamId].isClosed = true;
					comObj.postMessage({
						sourceName,
						targetName,
						stream: StreamKind.CANCEL,
						streamId,
						reason: wrapReason(reason)
					});
					return cancelCapability.promise;
				}
			}, queueingStrategy);
		}
		#createStreamSink(data) {
			const streamId = data.streamId, sourceName = this.sourceName, targetName = data.sourceName, comObj = this.comObj;
			const self$1 = this, action = this.actionHandler[data.action];
			const streamSink = {
				enqueue(chunk, size = 1, transfers) {
					if (this.isCancelled) {
						return;
					}
					const lastDesiredSize = this.desiredSize;
					this.desiredSize -= size;
					if (lastDesiredSize > 0 && this.desiredSize <= 0) {
						this.sinkCapability = Promise.withResolvers();
						this.ready = this.sinkCapability.promise;
					}
					comObj.postMessage({
						sourceName,
						targetName,
						stream: StreamKind.ENQUEUE,
						streamId,
						chunk
					}, transfers);
				},
				close() {
					if (this.isCancelled) {
						return;
					}
					this.isCancelled = true;
					comObj.postMessage({
						sourceName,
						targetName,
						stream: StreamKind.CLOSE,
						streamId
					});
					delete self$1.streamSinks[streamId];
				},
				error(reason) {
					assert$1(reason instanceof Error, "error must have a valid reason");
					if (this.isCancelled) {
						return;
					}
					this.isCancelled = true;
					comObj.postMessage({
						sourceName,
						targetName,
						stream: StreamKind.ERROR,
						streamId,
						reason: wrapReason(reason)
					});
				},
				sinkCapability: Promise.withResolvers(),
				onPull: null,
				onCancel: null,
				isCancelled: false,
				desiredSize: data.desiredSize,
				ready: null
			};
			streamSink.sinkCapability.resolve();
			streamSink.ready = streamSink.sinkCapability.promise;
			this.streamSinks[streamId] = streamSink;
			Promise.try(action, data.data, streamSink).then(function() {
				comObj.postMessage({
					sourceName,
					targetName,
					stream: StreamKind.START_COMPLETE,
					streamId,
					success: true
				});
			}, function(reason) {
				comObj.postMessage({
					sourceName,
					targetName,
					stream: StreamKind.START_COMPLETE,
					streamId,
					reason: wrapReason(reason)
				});
			});
		}
		#processStreamMessage(data) {
			const streamId = data.streamId, sourceName = this.sourceName, targetName = data.sourceName, comObj = this.comObj;
			const streamController = this.streamControllers[streamId], streamSink = this.streamSinks[streamId];
			switch (data.stream) {
				case StreamKind.START_COMPLETE:
					if (data.success) {
						streamController.startCall.resolve();
					} else {
						streamController.startCall.reject(wrapReason(data.reason));
					}
					break;
				case StreamKind.PULL_COMPLETE:
					if (data.success) {
						streamController.pullCall.resolve();
					} else {
						streamController.pullCall.reject(wrapReason(data.reason));
					}
					break;
				case StreamKind.PULL:
					if (!streamSink) {
						comObj.postMessage({
							sourceName,
							targetName,
							stream: StreamKind.PULL_COMPLETE,
							streamId,
							success: true
						});
						break;
					}
					if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {
						streamSink.sinkCapability.resolve();
					}
					streamSink.desiredSize = data.desiredSize;
					Promise.try(streamSink.onPull || onFn).then(function() {
						comObj.postMessage({
							sourceName,
							targetName,
							stream: StreamKind.PULL_COMPLETE,
							streamId,
							success: true
						});
					}, function(reason) {
						comObj.postMessage({
							sourceName,
							targetName,
							stream: StreamKind.PULL_COMPLETE,
							streamId,
							reason: wrapReason(reason)
						});
					});
					break;
				case StreamKind.ENQUEUE:
					assert$1(streamController, "enqueue should have stream controller");
					if (streamController.isClosed) {
						break;
					}
					streamController.controller.enqueue(data.chunk);
					break;
				case StreamKind.CLOSE:
					assert$1(streamController, "close should have stream controller");
					if (streamController.isClosed) {
						break;
					}
					streamController.isClosed = true;
					streamController.controller.close();
					this.#deleteStreamController(streamController, streamId);
					break;
				case StreamKind.ERROR:
					assert$1(streamController, "error should have stream controller");
					streamController.controller.error(wrapReason(data.reason));
					this.#deleteStreamController(streamController, streamId);
					break;
				case StreamKind.CANCEL_COMPLETE:
					if (data.success) {
						streamController.cancelCall.resolve();
					} else {
						streamController.cancelCall.reject(wrapReason(data.reason));
					}
					this.#deleteStreamController(streamController, streamId);
					break;
				case StreamKind.CANCEL:
					if (!streamSink) {
						break;
					}
					const dataReason = wrapReason(data.reason);
					Promise.try(streamSink.onCancel || onFn, dataReason).then(function() {
						comObj.postMessage({
							sourceName,
							targetName,
							stream: StreamKind.CANCEL_COMPLETE,
							streamId,
							success: true
						});
					}, function(reason) {
						comObj.postMessage({
							sourceName,
							targetName,
							stream: StreamKind.CANCEL_COMPLETE,
							streamId,
							reason: wrapReason(reason)
						});
					});
					streamSink.sinkCapability.reject(dataReason);
					streamSink.isCancelled = true;
					delete this.streamSinks[streamId];
					break;
				default: throw new Error("Unexpected stream case");
			}
		}
		async #deleteStreamController(streamController, streamId) {
			await Promise.allSettled([
				streamController.startCall?.promise,
				streamController.pullCall?.promise,
				streamController.cancelCall?.promise
			]);
			delete this.streamControllers[streamId];
		}
		destroy() {
			this.#messageAC?.abort();
			this.#messageAC = null;
		}
	};
	;
	BaseCanvasFactory = class {
		#enableHWA = false;
		constructor({ enableHWA = false }) {
			this.#enableHWA = enableHWA;
		}
		create(width, height) {
			if (width <= 0 || height <= 0) {
				throw new Error("Invalid canvas size");
			}
			const canvas = this._createCanvas(width, height);
			return {
				canvas,
				context: canvas.getContext("2d", { willReadFrequently: !this.#enableHWA })
			};
		}
		reset(canvasAndContext, width, height) {
			if (!canvasAndContext.canvas) {
				throw new Error("Canvas is not specified");
			}
			if (width <= 0 || height <= 0) {
				throw new Error("Invalid canvas size");
			}
			canvasAndContext.canvas.width = width;
			canvasAndContext.canvas.height = height;
		}
		destroy(canvasAndContext) {
			if (!canvasAndContext.canvas) {
				throw new Error("Canvas is not specified");
			}
			canvasAndContext.canvas.width = 0;
			canvasAndContext.canvas.height = 0;
			canvasAndContext.canvas = null;
			canvasAndContext.context = null;
		}
		_createCanvas(width, height) {
			unreachable("Abstract method `_createCanvas` called.");
		}
	};
	DOMCanvasFactory = class extends BaseCanvasFactory {
		constructor({ ownerDocument = globalThis.document, enableHWA = false }) {
			super({ enableHWA });
			this._document = ownerDocument;
		}
		_createCanvas(width, height) {
			const canvas = this._document.createElement("canvas");
			canvas.width = width;
			canvas.height = height;
			return canvas;
		}
	};
	;
	BaseCMapReaderFactory = class {
		constructor({ baseUrl = null, isCompressed = true }) {
			this.baseUrl = baseUrl;
			this.isCompressed = isCompressed;
		}
		async fetch({ name }) {
			if (!this.baseUrl) {
				throw new Error("Ensure that the `cMapUrl` and `cMapPacked` API parameters are provided.");
			}
			if (!name) {
				throw new Error("CMap name must be specified.");
			}
			const url = this.baseUrl + name + (this.isCompressed ? ".bcmap" : "");
			return this._fetch(url).then((cMapData) => ({
				cMapData,
				isCompressed: this.isCompressed
			})).catch((reason) => {
				throw new Error(`Unable to load ${this.isCompressed ? "binary " : ""}CMap at: ${url}`);
			});
		}
		async _fetch(url) {
			unreachable("Abstract method `_fetch` called.");
		}
	};
	DOMCMapReaderFactory = class extends BaseCMapReaderFactory {
		async _fetch(url) {
			const data = await fetchData(url, this.isCompressed ? "arraybuffer" : "text");
			return data instanceof ArrayBuffer ? new Uint8Array(data) : stringToBytes(data);
		}
	};
	;
	BaseFilterFactory = class {
		addFilter(maps) {
			return "none";
		}
		addHCMFilter(fgColor, bgColor) {
			return "none";
		}
		addAlphaFilter(map$2) {
			return "none";
		}
		addLuminosityFilter(map$2) {
			return "none";
		}
		addHighlightHCMFilter(filterName, fgColor, bgColor, newFgColor, newBgColor) {
			return "none";
		}
		destroy(keepHCM = false) {}
	};
	DOMFilterFactory = class extends BaseFilterFactory {
		#baseUrl;
		#_cache;
		#_defs;
		#docId;
		#document;
		#_hcmCache;
		#id = 0;
		constructor({ docId, ownerDocument = globalThis.document }) {
			super();
			this.#docId = docId;
			this.#document = ownerDocument;
		}
		get #cache() {
			return this.#_cache ||= new Map();
		}
		get #hcmCache() {
			return this.#_hcmCache ||= new Map();
		}
		get #defs() {
			if (!this.#_defs) {
				const div = this.#document.createElement("div");
				const { style } = div;
				style.visibility = "hidden";
				style.contain = "strict";
				style.width = style.height = 0;
				style.position = "absolute";
				style.top = style.left = 0;
				style.zIndex = -1;
				const svg = this.#document.createElementNS(SVG_NS, "svg");
				svg.setAttribute("width", 0);
				svg.setAttribute("height", 0);
				this.#_defs = this.#document.createElementNS(SVG_NS, "defs");
				div.append(svg);
				svg.append(this.#_defs);
				this.#document.body.append(div);
			}
			return this.#_defs;
		}
		#createTables(maps) {
			if (maps.length === 1) {
				const mapR$1 = maps[0];
				const buffer = new Array(256);
				for (let i$7 = 0; i$7 < 256; i$7++) {
					buffer[i$7] = mapR$1[i$7] / 255;
				}
				const table = buffer.join(",");
				return [
					table,
					table,
					table
				];
			}
			const [mapR, mapG, mapB] = maps;
			const bufferR = new Array(256);
			const bufferG = new Array(256);
			const bufferB = new Array(256);
			for (let i$7 = 0; i$7 < 256; i$7++) {
				bufferR[i$7] = mapR[i$7] / 255;
				bufferG[i$7] = mapG[i$7] / 255;
				bufferB[i$7] = mapB[i$7] / 255;
			}
			return [
				bufferR.join(","),
				bufferG.join(","),
				bufferB.join(",")
			];
		}
		#createUrl(id) {
			if (this.#baseUrl === undefined) {
				this.#baseUrl = "";
				const url = this.#document.URL;
				if (url !== this.#document.baseURI) {
					if (isDataScheme(url)) {
						warn$2("#createUrl: ignore \"data:\"-URL for performance reasons.");
					} else {
						this.#baseUrl = updateUrlHash(url, "");
					}
				}
			}
			return `url(${this.#baseUrl}#${id})`;
		}
		addFilter(maps) {
			if (!maps) {
				return "none";
			}
			let value = this.#cache.get(maps);
			if (value) {
				return value;
			}
			const [tableR, tableG, tableB] = this.#createTables(maps);
			const key = maps.length === 1 ? tableR : `${tableR}${tableG}${tableB}`;
			value = this.#cache.get(key);
			if (value) {
				this.#cache.set(maps, value);
				return value;
			}
			const id = `g_${this.#docId}_transfer_map_${this.#id++}`;
			const url = this.#createUrl(id);
			this.#cache.set(maps, url);
			this.#cache.set(key, url);
			const filter = this.#createFilter(id);
			this.#addTransferMapConversion(tableR, tableG, tableB, filter);
			return url;
		}
		addHCMFilter(fgColor, bgColor) {
			const key = `${fgColor}-${bgColor}`;
			const filterName = "base";
			let info$1 = this.#hcmCache.get(filterName);
			if (info$1?.key === key) {
				return info$1.url;
			}
			if (info$1) {
				info$1.filter?.remove();
				info$1.key = key;
				info$1.url = "none";
				info$1.filter = null;
			} else {
				info$1 = {
					key,
					url: "none",
					filter: null
				};
				this.#hcmCache.set(filterName, info$1);
			}
			if (!fgColor || !bgColor) {
				return info$1.url;
			}
			const fgRGB = this.#getRGB(fgColor);
			fgColor = Util.makeHexColor(...fgRGB);
			const bgRGB = this.#getRGB(bgColor);
			bgColor = Util.makeHexColor(...bgRGB);
			this.#defs.style.color = "";
			if (fgColor === "#000000" && bgColor === "#ffffff" || fgColor === bgColor) {
				return info$1.url;
			}
			const map$2 = new Array(256);
			for (let i$7 = 0; i$7 <= 255; i$7++) {
				const x$2 = i$7 / 255;
				map$2[i$7] = x$2 <= .03928 ? x$2 / 12.92 : ((x$2 + .055) / 1.055) ** 2.4;
			}
			const table = map$2.join(",");
			const id = `g_${this.#docId}_hcm_filter`;
			const filter = info$1.filter = this.#createFilter(id);
			this.#addTransferMapConversion(table, table, table, filter);
			this.#addGrayConversion(filter);
			const getSteps = (c$7, n$9) => {
				const start = fgRGB[c$7] / 255;
				const end = bgRGB[c$7] / 255;
				const arr = new Array(n$9 + 1);
				for (let i$7 = 0; i$7 <= n$9; i$7++) {
					arr[i$7] = start + i$7 / n$9 * (end - start);
				}
				return arr.join(",");
			};
			this.#addTransferMapConversion(getSteps(0, 5), getSteps(1, 5), getSteps(2, 5), filter);
			info$1.url = this.#createUrl(id);
			return info$1.url;
		}
		addAlphaFilter(map$2) {
			let value = this.#cache.get(map$2);
			if (value) {
				return value;
			}
			const [tableA] = this.#createTables([map$2]);
			const key = `alpha_${tableA}`;
			value = this.#cache.get(key);
			if (value) {
				this.#cache.set(map$2, value);
				return value;
			}
			const id = `g_${this.#docId}_alpha_map_${this.#id++}`;
			const url = this.#createUrl(id);
			this.#cache.set(map$2, url);
			this.#cache.set(key, url);
			const filter = this.#createFilter(id);
			this.#addTransferMapAlphaConversion(tableA, filter);
			return url;
		}
		addLuminosityFilter(map$2) {
			let value = this.#cache.get(map$2 || "luminosity");
			if (value) {
				return value;
			}
			let tableA, key;
			if (map$2) {
				[tableA] = this.#createTables([map$2]);
				key = `luminosity_${tableA}`;
			} else {
				key = "luminosity";
			}
			value = this.#cache.get(key);
			if (value) {
				this.#cache.set(map$2, value);
				return value;
			}
			const id = `g_${this.#docId}_luminosity_map_${this.#id++}`;
			const url = this.#createUrl(id);
			this.#cache.set(map$2, url);
			this.#cache.set(key, url);
			const filter = this.#createFilter(id);
			this.#addLuminosityConversion(filter);
			if (map$2) {
				this.#addTransferMapAlphaConversion(tableA, filter);
			}
			return url;
		}
		addHighlightHCMFilter(filterName, fgColor, bgColor, newFgColor, newBgColor) {
			const key = `${fgColor}-${bgColor}-${newFgColor}-${newBgColor}`;
			let info$1 = this.#hcmCache.get(filterName);
			if (info$1?.key === key) {
				return info$1.url;
			}
			if (info$1) {
				info$1.filter?.remove();
				info$1.key = key;
				info$1.url = "none";
				info$1.filter = null;
			} else {
				info$1 = {
					key,
					url: "none",
					filter: null
				};
				this.#hcmCache.set(filterName, info$1);
			}
			if (!fgColor || !bgColor) {
				return info$1.url;
			}
			const [fgRGB, bgRGB] = [fgColor, bgColor].map(this.#getRGB.bind(this));
			let fgGray = Math.round(.2126 * fgRGB[0] + .7152 * fgRGB[1] + .0722 * fgRGB[2]);
			let bgGray = Math.round(.2126 * bgRGB[0] + .7152 * bgRGB[1] + .0722 * bgRGB[2]);
			let [newFgRGB, newBgRGB] = [newFgColor, newBgColor].map(this.#getRGB.bind(this));
			if (bgGray < fgGray) {
				[fgGray, bgGray, newFgRGB, newBgRGB] = [
					bgGray,
					fgGray,
					newBgRGB,
					newFgRGB
				];
			}
			this.#defs.style.color = "";
			const getSteps = (fg, bg, n$9) => {
				const arr = new Array(256);
				const step = (bgGray - fgGray) / n$9;
				const newStart = fg / 255;
				const newStep = (bg - fg) / (255 * n$9);
				let prev = 0;
				for (let i$7 = 0; i$7 <= n$9; i$7++) {
					const k$2 = Math.round(fgGray + i$7 * step);
					const value = newStart + i$7 * newStep;
					for (let j$2 = prev; j$2 <= k$2; j$2++) {
						arr[j$2] = value;
					}
					prev = k$2 + 1;
				}
				for (let i$7 = prev; i$7 < 256; i$7++) {
					arr[i$7] = arr[prev - 1];
				}
				return arr.join(",");
			};
			const id = `g_${this.#docId}_hcm_${filterName}_filter`;
			const filter = info$1.filter = this.#createFilter(id);
			this.#addGrayConversion(filter);
			this.#addTransferMapConversion(getSteps(newFgRGB[0], newBgRGB[0], 5), getSteps(newFgRGB[1], newBgRGB[1], 5), getSteps(newFgRGB[2], newBgRGB[2], 5), filter);
			info$1.url = this.#createUrl(id);
			return info$1.url;
		}
		destroy(keepHCM = false) {
			if (keepHCM && this.#_hcmCache?.size) {
				return;
			}
			this.#_defs?.parentNode.parentNode.remove();
			this.#_defs = null;
			this.#_cache?.clear();
			this.#_cache = null;
			this.#_hcmCache?.clear();
			this.#_hcmCache = null;
			this.#id = 0;
		}
		#addLuminosityConversion(filter) {
			const feColorMatrix = this.#document.createElementNS(SVG_NS, "feColorMatrix");
			feColorMatrix.setAttribute("type", "matrix");
			feColorMatrix.setAttribute("values", "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.59 0.11 0 0");
			filter.append(feColorMatrix);
		}
		#addGrayConversion(filter) {
			const feColorMatrix = this.#document.createElementNS(SVG_NS, "feColorMatrix");
			feColorMatrix.setAttribute("type", "matrix");
			feColorMatrix.setAttribute("values", "0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0");
			filter.append(feColorMatrix);
		}
		#createFilter(id) {
			const filter = this.#document.createElementNS(SVG_NS, "filter");
			filter.setAttribute("color-interpolation-filters", "sRGB");
			filter.setAttribute("id", id);
			this.#defs.append(filter);
			return filter;
		}
		#appendFeFunc(feComponentTransfer, func, table) {
			const feFunc = this.#document.createElementNS(SVG_NS, func);
			feFunc.setAttribute("type", "discrete");
			feFunc.setAttribute("tableValues", table);
			feComponentTransfer.append(feFunc);
		}
		#addTransferMapConversion(rTable, gTable, bTable, filter) {
			const feComponentTransfer = this.#document.createElementNS(SVG_NS, "feComponentTransfer");
			filter.append(feComponentTransfer);
			this.#appendFeFunc(feComponentTransfer, "feFuncR", rTable);
			this.#appendFeFunc(feComponentTransfer, "feFuncG", gTable);
			this.#appendFeFunc(feComponentTransfer, "feFuncB", bTable);
		}
		#addTransferMapAlphaConversion(aTable, filter) {
			const feComponentTransfer = this.#document.createElementNS(SVG_NS, "feComponentTransfer");
			filter.append(feComponentTransfer);
			this.#appendFeFunc(feComponentTransfer, "feFuncA", aTable);
		}
		#getRGB(color) {
			this.#defs.style.color = color;
			return getRGB(getComputedStyle(this.#defs).getPropertyValue("color"));
		}
	};
	;
	BaseStandardFontDataFactory = class {
		constructor({ baseUrl = null }) {
			this.baseUrl = baseUrl;
		}
		async fetch({ filename }) {
			if (!this.baseUrl) {
				throw new Error("Ensure that the `standardFontDataUrl` API parameter is provided.");
			}
			if (!filename) {
				throw new Error("Font filename must be specified.");
			}
			const url = `${this.baseUrl}${filename}`;
			return this._fetch(url).catch((reason) => {
				throw new Error(`Unable to load font data at: ${url}`);
			});
		}
		async _fetch(url) {
			unreachable("Abstract method `_fetch` called.");
		}
	};
	DOMStandardFontDataFactory = class extends BaseStandardFontDataFactory {
		async _fetch(url) {
			const data = await fetchData(url, "arraybuffer");
			return new Uint8Array(data);
		}
	};
	;
	BaseWasmFactory = class {
		constructor({ baseUrl = null }) {
			this.baseUrl = baseUrl;
		}
		async fetch({ filename }) {
			if (!this.baseUrl) {
				throw new Error("Ensure that the `wasmUrl` API parameter is provided.");
			}
			if (!filename) {
				throw new Error("Wasm filename must be specified.");
			}
			const url = `${this.baseUrl}${filename}`;
			return this._fetch(url).catch((reason) => {
				throw new Error(`Unable to load wasm data at: ${url}`);
			});
		}
		async _fetch(url) {
			unreachable("Abstract method `_fetch` called.");
		}
	};
	DOMWasmFactory = class extends BaseWasmFactory {
		async _fetch(url) {
			const data = await fetchData(url, "arraybuffer");
			return new Uint8Array(data);
		}
	};
	;
	if (isNodeJS) {
		warn$2("Please use the `legacy` build in Node.js environments.");
	}
	NodeFilterFactory = class extends BaseFilterFactory {};
	NodeCanvasFactory = class extends BaseCanvasFactory {
		_createCanvas(width, height) {
			const require$1 = process.getBuiltinModule("module").createRequire(import.meta.url);
			const canvas = require$1("@napi-rs/canvas");
			return canvas.createCanvas(width, height);
		}
	};
	NodeCMapReaderFactory = class extends BaseCMapReaderFactory {
		async _fetch(url) {
			return node_utils_fetchData(url);
		}
	};
	NodeStandardFontDataFactory = class extends BaseStandardFontDataFactory {
		async _fetch(url) {
			return node_utils_fetchData(url);
		}
	};
	NodeWasmFactory = class extends BaseWasmFactory {
		async _fetch(url) {
			return node_utils_fetchData(url);
		}
	};
	;
	FORCED_DEPENDENCY_LABEL = "__forcedDependency";
	({floor, ceil} = Math);
	EMPTY_BBOX = new Uint32Array(new Uint8Array([
		255,
		255,
		0,
		0
	]).buffer)[0];
	BBoxReader = class {
		#bboxes;
		#coords;
		constructor(bboxes, coords) {
			this.#bboxes = bboxes;
			this.#coords = coords;
		}
		get length() {
			return this.#bboxes.length;
		}
		isEmpty(i$7) {
			return this.#bboxes[i$7] === EMPTY_BBOX;
		}
		minX(i$7) {
			return this.#coords[i$7 * 4 + 0] / 256;
		}
		minY(i$7) {
			return this.#coords[i$7 * 4 + 1] / 256;
		}
		maxX(i$7) {
			return (this.#coords[i$7 * 4 + 2] + 1) / 256;
		}
		maxY(i$7) {
			return (this.#coords[i$7 * 4 + 3] + 1) / 256;
		}
	};
	ensureDebugMetadata = (map$2, key) => {
		if (!map$2) {
			return undefined;
		}
		let value = map$2.get(key);
		if (!value) {
			value = {
				dependencies: new Set(),
				isRenderingOperation: false
			};
			map$2.set(key, value);
		}
		return value;
	};
	CanvasDependencyTracker = class {
		#simple = { __proto__: null };
		#incremental = {
			__proto__: null,
			transform: [],
			moveText: [],
			sameLineText: [],
			[FORCED_DEPENDENCY_LABEL]: []
		};
		#namedDependencies = new Map();
		#savesStack = [];
		#markedContentStack = [];
		#baseTransformStack = [[
			1,
			0,
			0,
			1,
			0,
			0
		]];
		#clipBox = [
			-Infinity,
			-Infinity,
			Infinity,
			Infinity
		];
		#pendingBBox = new Float64Array([
			Infinity,
			Infinity,
			-Infinity,
			-Infinity
		]);
		#pendingBBoxIdx = -1;
		#pendingDependencies = new Set();
		#operations = new Map();
		#fontBBoxTrustworthy = new Map();
		#canvasWidth;
		#canvasHeight;
		#bboxesCoords;
		#bboxes;
		#debugMetadata;
		constructor(canvas, operationsCount, recordDebugMetadata = false) {
			this.#canvasWidth = canvas.width;
			this.#canvasHeight = canvas.height;
			this.#initializeBBoxes(operationsCount);
			if (recordDebugMetadata) {
				this.#debugMetadata = new Map();
			}
		}
		growOperationsCount(operationsCount) {
			if (operationsCount >= this.#bboxes.length) {
				this.#initializeBBoxes(operationsCount, this.#bboxes);
			}
		}
		#initializeBBoxes(operationsCount, oldBBoxes) {
			const buffer = new ArrayBuffer(operationsCount * 4);
			this.#bboxesCoords = new Uint8ClampedArray(buffer);
			this.#bboxes = new Uint32Array(buffer);
			if (oldBBoxes && oldBBoxes.length > 0) {
				this.#bboxes.set(oldBBoxes);
				this.#bboxes.fill(EMPTY_BBOX, oldBBoxes.length);
			} else {
				this.#bboxes.fill(EMPTY_BBOX);
			}
		}
		save(opIdx) {
			this.#simple = { __proto__: this.#simple };
			this.#incremental = {
				__proto__: this.#incremental,
				transform: { __proto__: this.#incremental.transform },
				moveText: { __proto__: this.#incremental.moveText },
				sameLineText: { __proto__: this.#incremental.sameLineText },
				[FORCED_DEPENDENCY_LABEL]: { __proto__: this.#incremental[FORCED_DEPENDENCY_LABEL] }
			};
			this.#clipBox = { __proto__: this.#clipBox };
			this.#savesStack.push(opIdx);
			return this;
		}
		restore(opIdx) {
			const previous = Object.getPrototypeOf(this.#simple);
			if (previous === null) {
				return this;
			}
			this.#simple = previous;
			this.#incremental = Object.getPrototypeOf(this.#incremental);
			this.#clipBox = Object.getPrototypeOf(this.#clipBox);
			const lastSave = this.#savesStack.pop();
			if (lastSave !== undefined) {
				ensureDebugMetadata(this.#debugMetadata, opIdx)?.dependencies.add(lastSave);
				this.#bboxes[opIdx] = this.#bboxes[lastSave];
			}
			return this;
		}
		recordOpenMarker(idx) {
			this.#savesStack.push(idx);
			return this;
		}
		getOpenMarker() {
			if (this.#savesStack.length === 0) {
				return null;
			}
			return this.#savesStack.at(-1);
		}
		recordCloseMarker(opIdx) {
			const lastSave = this.#savesStack.pop();
			if (lastSave !== undefined) {
				ensureDebugMetadata(this.#debugMetadata, opIdx)?.dependencies.add(lastSave);
				this.#bboxes[opIdx] = this.#bboxes[lastSave];
			}
			return this;
		}
		beginMarkedContent(opIdx) {
			this.#markedContentStack.push(opIdx);
			return this;
		}
		endMarkedContent(opIdx) {
			const lastSave = this.#markedContentStack.pop();
			if (lastSave !== undefined) {
				ensureDebugMetadata(this.#debugMetadata, opIdx)?.dependencies.add(lastSave);
				this.#bboxes[opIdx] = this.#bboxes[lastSave];
			}
			return this;
		}
		pushBaseTransform(ctx) {
			this.#baseTransformStack.push(Util.multiplyByDOMMatrix(this.#baseTransformStack.at(-1), ctx.getTransform()));
			return this;
		}
		popBaseTransform() {
			if (this.#baseTransformStack.length > 1) {
				this.#baseTransformStack.pop();
			}
			return this;
		}
		recordSimpleData(name, idx) {
			this.#simple[name] = idx;
			return this;
		}
		recordIncrementalData(name, idx) {
			this.#incremental[name].push(idx);
			return this;
		}
		resetIncrementalData(name, idx) {
			this.#incremental[name].length = 0;
			return this;
		}
		recordNamedData(name, idx) {
			this.#namedDependencies.set(name, idx);
			return this;
		}
		recordSimpleDataFromNamed(name, depName, fallbackIdx) {
			this.#simple[name] = this.#namedDependencies.get(depName) ?? fallbackIdx;
		}
		recordFutureForcedDependency(name, idx) {
			this.recordIncrementalData(FORCED_DEPENDENCY_LABEL, idx);
			return this;
		}
		inheritSimpleDataAsFutureForcedDependencies(names) {
			for (const name of names) {
				if (name in this.#simple) {
					this.recordFutureForcedDependency(name, this.#simple[name]);
				}
			}
			return this;
		}
		inheritPendingDependenciesAsFutureForcedDependencies() {
			for (const dep of this.#pendingDependencies) {
				this.recordFutureForcedDependency(FORCED_DEPENDENCY_LABEL, dep);
			}
			return this;
		}
		resetBBox(idx) {
			if (this.#pendingBBoxIdx !== idx) {
				this.#pendingBBoxIdx = idx;
				this.#pendingBBox[0] = Infinity;
				this.#pendingBBox[1] = Infinity;
				this.#pendingBBox[2] = -Infinity;
				this.#pendingBBox[3] = -Infinity;
			}
			return this;
		}
		recordClipBox(idx, ctx, minX, maxX, minY, maxY) {
			const transform = Util.multiplyByDOMMatrix(this.#baseTransformStack.at(-1), ctx.getTransform());
			const clipBox = [
				Infinity,
				Infinity,
				-Infinity,
				-Infinity
			];
			Util.axialAlignedBoundingBox([
				minX,
				minY,
				maxX,
				maxY
			], transform, clipBox);
			const intersection = Util.intersect(this.#clipBox, clipBox);
			if (intersection) {
				this.#clipBox[0] = intersection[0];
				this.#clipBox[1] = intersection[1];
				this.#clipBox[2] = intersection[2];
				this.#clipBox[3] = intersection[3];
			} else {
				this.#clipBox[0] = this.#clipBox[1] = Infinity;
				this.#clipBox[2] = this.#clipBox[3] = -Infinity;
			}
			return this;
		}
		recordBBox(idx, ctx, minX, maxX, minY, maxY) {
			const clipBox = this.#clipBox;
			if (clipBox[0] === Infinity) {
				return this;
			}
			const transform = Util.multiplyByDOMMatrix(this.#baseTransformStack.at(-1), ctx.getTransform());
			if (clipBox[0] === -Infinity) {
				Util.axialAlignedBoundingBox([
					minX,
					minY,
					maxX,
					maxY
				], transform, this.#pendingBBox);
				return this;
			}
			const bbox = [
				Infinity,
				Infinity,
				-Infinity,
				-Infinity
			];
			Util.axialAlignedBoundingBox([
				minX,
				minY,
				maxX,
				maxY
			], transform, bbox);
			this.#pendingBBox[0] = Math.min(this.#pendingBBox[0], Math.max(bbox[0], clipBox[0]));
			this.#pendingBBox[1] = Math.min(this.#pendingBBox[1], Math.max(bbox[1], clipBox[1]));
			this.#pendingBBox[2] = Math.max(this.#pendingBBox[2], Math.min(bbox[2], clipBox[2]));
			this.#pendingBBox[3] = Math.max(this.#pendingBBox[3], Math.min(bbox[3], clipBox[3]));
			return this;
		}
		recordCharacterBBox(idx, ctx, font, scale = 1, x$2 = 0, y$3 = 0, getMeasure) {
			const fontBBox = font.bbox;
			let isBBoxTrustworthy;
			let computedBBox;
			if (fontBBox) {
				isBBoxTrustworthy = fontBBox[2] !== fontBBox[0] && fontBBox[3] !== fontBBox[1] && this.#fontBBoxTrustworthy.get(font);
				if (isBBoxTrustworthy !== false) {
					computedBBox = [
						0,
						0,
						0,
						0
					];
					Util.axialAlignedBoundingBox(fontBBox, font.fontMatrix, computedBBox);
					if (scale !== 1 || x$2 !== 0 || y$3 !== 0) {
						Util.scaleMinMax([
							scale,
							0,
							0,
							-scale,
							x$2,
							y$3
						], computedBBox);
					}
					if (isBBoxTrustworthy) {
						return this.recordBBox(idx, ctx, computedBBox[0], computedBBox[2], computedBBox[1], computedBBox[3]);
					}
				}
			}
			if (!getMeasure) {
				return this.recordFullPageBBox(idx);
			}
			const measure = getMeasure();
			if (fontBBox && computedBBox && isBBoxTrustworthy === undefined) {
				isBBoxTrustworthy = computedBBox[0] <= x$2 - measure.actualBoundingBoxLeft && computedBBox[2] >= x$2 + measure.actualBoundingBoxRight && computedBBox[1] <= y$3 - measure.actualBoundingBoxAscent && computedBBox[3] >= y$3 + measure.actualBoundingBoxDescent;
				this.#fontBBoxTrustworthy.set(font, isBBoxTrustworthy);
				if (isBBoxTrustworthy) {
					return this.recordBBox(idx, ctx, computedBBox[0], computedBBox[2], computedBBox[1], computedBBox[3]);
				}
			}
			return this.recordBBox(idx, ctx, x$2 - measure.actualBoundingBoxLeft, x$2 + measure.actualBoundingBoxRight, y$3 - measure.actualBoundingBoxAscent, y$3 + measure.actualBoundingBoxDescent);
		}
		recordFullPageBBox(idx) {
			this.#pendingBBox[0] = Math.max(0, this.#clipBox[0]);
			this.#pendingBBox[1] = Math.max(0, this.#clipBox[1]);
			this.#pendingBBox[2] = Math.min(this.#canvasWidth, this.#clipBox[2]);
			this.#pendingBBox[3] = Math.min(this.#canvasHeight, this.#clipBox[3]);
			return this;
		}
		getSimpleIndex(dependencyName) {
			return this.#simple[dependencyName];
		}
		recordDependencies(idx, dependencyNames) {
			const pendingDependencies = this.#pendingDependencies;
			const simple = this.#simple;
			const incremental = this.#incremental;
			for (const name of dependencyNames) {
				if (name in this.#simple) {
					pendingDependencies.add(simple[name]);
				} else if (name in incremental) {
					incremental[name].forEach(pendingDependencies.add, pendingDependencies);
				}
			}
			return this;
		}
		recordNamedDependency(idx, name) {
			if (this.#namedDependencies.has(name)) {
				this.#pendingDependencies.add(this.#namedDependencies.get(name));
			}
			return this;
		}
		recordOperation(idx, preserve = false) {
			this.recordDependencies(idx, [FORCED_DEPENDENCY_LABEL]);
			if (this.#debugMetadata) {
				const metadata = ensureDebugMetadata(this.#debugMetadata, idx);
				const { dependencies } = metadata;
				this.#pendingDependencies.forEach(dependencies.add, dependencies);
				this.#savesStack.forEach(dependencies.add, dependencies);
				this.#markedContentStack.forEach(dependencies.add, dependencies);
				dependencies.delete(idx);
				metadata.isRenderingOperation = true;
			}
			if (this.#pendingBBoxIdx === idx) {
				const minX = floor(this.#pendingBBox[0] * 256 / this.#canvasWidth);
				const minY = floor(this.#pendingBBox[1] * 256 / this.#canvasHeight);
				const maxX = ceil(this.#pendingBBox[2] * 256 / this.#canvasWidth);
				const maxY = ceil(this.#pendingBBox[3] * 256 / this.#canvasHeight);
				expandBBox(this.#bboxesCoords, idx, minX, minY, maxX, maxY);
				for (const depIdx of this.#pendingDependencies) {
					if (depIdx !== idx) {
						expandBBox(this.#bboxesCoords, depIdx, minX, minY, maxX, maxY);
					}
				}
				for (const saveIdx of this.#savesStack) {
					if (saveIdx !== idx) {
						expandBBox(this.#bboxesCoords, saveIdx, minX, minY, maxX, maxY);
					}
				}
				for (const saveIdx of this.#markedContentStack) {
					if (saveIdx !== idx) {
						expandBBox(this.#bboxesCoords, saveIdx, minX, minY, maxX, maxY);
					}
				}
				if (!preserve) {
					this.#pendingDependencies.clear();
					this.#pendingBBoxIdx = -1;
				}
			}
			return this;
		}
		recordShowTextOperation(idx, preserve = false) {
			const deps = Array.from(this.#pendingDependencies);
			this.recordOperation(idx, preserve);
			this.recordIncrementalData("sameLineText", idx);
			for (const dep of deps) {
				this.recordIncrementalData("sameLineText", dep);
			}
			return this;
		}
		bboxToClipBoxDropOperation(idx, preserve = false) {
			if (this.#pendingBBoxIdx === idx) {
				this.#pendingBBoxIdx = -1;
				this.#clipBox[0] = Math.max(this.#clipBox[0], this.#pendingBBox[0]);
				this.#clipBox[1] = Math.max(this.#clipBox[1], this.#pendingBBox[1]);
				this.#clipBox[2] = Math.min(this.#clipBox[2], this.#pendingBBox[2]);
				this.#clipBox[3] = Math.min(this.#clipBox[3], this.#pendingBBox[3]);
				if (!preserve) {
					this.#pendingDependencies.clear();
				}
			}
			return this;
		}
		_takePendingDependencies() {
			const pendingDependencies = this.#pendingDependencies;
			this.#pendingDependencies = new Set();
			return pendingDependencies;
		}
		_extractOperation(idx) {
			const operation = this.#operations.get(idx);
			this.#operations.delete(idx);
			return operation;
		}
		_pushPendingDependencies(dependencies) {
			for (const dep of dependencies) {
				this.#pendingDependencies.add(dep);
			}
		}
		take() {
			this.#fontBBoxTrustworthy.clear();
			return new BBoxReader(this.#bboxes, this.#bboxesCoords);
		}
		takeDebugMetadata() {
			return this.#debugMetadata;
		}
	};
	CanvasNestedDependencyTracker = class CanvasNestedDependencyTracker {
		#dependencyTracker;
		#opIdx;
		#ignoreBBoxes;
		#nestingLevel = 0;
		#savesLevel = 0;
		constructor(dependencyTracker, opIdx, ignoreBBoxes) {
			if (dependencyTracker instanceof CanvasNestedDependencyTracker && dependencyTracker.#ignoreBBoxes === !!ignoreBBoxes) {
				return dependencyTracker;
			}
			this.#dependencyTracker = dependencyTracker;
			this.#opIdx = opIdx;
			this.#ignoreBBoxes = !!ignoreBBoxes;
		}
		growOperationsCount() {
			throw new Error("Unreachable");
		}
		save(opIdx) {
			this.#savesLevel++;
			this.#dependencyTracker.save(this.#opIdx);
			return this;
		}
		restore(opIdx) {
			if (this.#savesLevel > 0) {
				this.#dependencyTracker.restore(this.#opIdx);
				this.#savesLevel--;
			}
			return this;
		}
		recordOpenMarker(idx) {
			this.#nestingLevel++;
			return this;
		}
		getOpenMarker() {
			return this.#nestingLevel > 0 ? this.#opIdx : this.#dependencyTracker.getOpenMarker();
		}
		recordCloseMarker(idx) {
			this.#nestingLevel--;
			return this;
		}
		beginMarkedContent(opIdx) {
			return this;
		}
		endMarkedContent(opIdx) {
			return this;
		}
		pushBaseTransform(ctx) {
			this.#dependencyTracker.pushBaseTransform(ctx);
			return this;
		}
		popBaseTransform() {
			this.#dependencyTracker.popBaseTransform();
			return this;
		}
		recordSimpleData(name, idx) {
			this.#dependencyTracker.recordSimpleData(name, this.#opIdx);
			return this;
		}
		recordIncrementalData(name, idx) {
			this.#dependencyTracker.recordIncrementalData(name, this.#opIdx);
			return this;
		}
		resetIncrementalData(name, idx) {
			this.#dependencyTracker.resetIncrementalData(name, this.#opIdx);
			return this;
		}
		recordNamedData(name, idx) {
			return this;
		}
		recordSimpleDataFromNamed(name, depName, fallbackIdx) {
			this.#dependencyTracker.recordSimpleDataFromNamed(name, depName, this.#opIdx);
			return this;
		}
		recordFutureForcedDependency(name, idx) {
			this.#dependencyTracker.recordFutureForcedDependency(name, this.#opIdx);
			return this;
		}
		inheritSimpleDataAsFutureForcedDependencies(names) {
			this.#dependencyTracker.inheritSimpleDataAsFutureForcedDependencies(names);
			return this;
		}
		inheritPendingDependenciesAsFutureForcedDependencies() {
			this.#dependencyTracker.inheritPendingDependenciesAsFutureForcedDependencies();
			return this;
		}
		resetBBox(idx) {
			if (!this.#ignoreBBoxes) {
				this.#dependencyTracker.resetBBox(this.#opIdx);
			}
			return this;
		}
		recordClipBox(idx, ctx, minX, maxX, minY, maxY) {
			if (!this.#ignoreBBoxes) {
				this.#dependencyTracker.recordClipBox(this.#opIdx, ctx, minX, maxX, minY, maxY);
			}
			return this;
		}
		recordBBox(idx, ctx, minX, maxX, minY, maxY) {
			if (!this.#ignoreBBoxes) {
				this.#dependencyTracker.recordBBox(this.#opIdx, ctx, minX, maxX, minY, maxY);
			}
			return this;
		}
		recordCharacterBBox(idx, ctx, font, scale, x$2, y$3, getMeasure) {
			if (!this.#ignoreBBoxes) {
				this.#dependencyTracker.recordCharacterBBox(this.#opIdx, ctx, font, scale, x$2, y$3, getMeasure);
			}
			return this;
		}
		recordFullPageBBox(idx) {
			if (!this.#ignoreBBoxes) {
				this.#dependencyTracker.recordFullPageBBox(this.#opIdx);
			}
			return this;
		}
		getSimpleIndex(dependencyName) {
			return this.#dependencyTracker.getSimpleIndex(dependencyName);
		}
		recordDependencies(idx, dependencyNames) {
			this.#dependencyTracker.recordDependencies(this.#opIdx, dependencyNames);
			return this;
		}
		recordNamedDependency(idx, name) {
			this.#dependencyTracker.recordNamedDependency(this.#opIdx, name);
			return this;
		}
		recordOperation(idx) {
			this.#dependencyTracker.recordOperation(this.#opIdx, true);
			return this;
		}
		recordShowTextOperation(idx) {
			this.#dependencyTracker.recordShowTextOperation(this.#opIdx, true);
			return this;
		}
		bboxToClipBoxDropOperation(idx) {
			if (!this.#ignoreBBoxes) {
				this.#dependencyTracker.bboxToClipBoxDropOperation(this.#opIdx, true);
			}
			return this;
		}
		take() {
			throw new Error("Unreachable");
		}
		takeDebugMetadata() {
			throw new Error("Unreachable");
		}
	};
	Dependencies = {
		stroke: [
			"path",
			"transform",
			"filter",
			"strokeColor",
			"strokeAlpha",
			"lineWidth",
			"lineCap",
			"lineJoin",
			"miterLimit",
			"dash"
		],
		fill: [
			"path",
			"transform",
			"filter",
			"fillColor",
			"fillAlpha",
			"globalCompositeOperation",
			"SMask"
		],
		imageXObject: [
			"transform",
			"SMask",
			"filter",
			"fillAlpha",
			"strokeAlpha",
			"globalCompositeOperation"
		],
		rawFillPath: [
			"filter",
			"fillColor",
			"fillAlpha"
		],
		showText: [
			"transform",
			"leading",
			"charSpacing",
			"wordSpacing",
			"hScale",
			"textRise",
			"moveText",
			"textMatrix",
			"font",
			"fontObj",
			"filter",
			"fillColor",
			"textRenderingMode",
			"SMask",
			"fillAlpha",
			"strokeAlpha",
			"globalCompositeOperation",
			"sameLineText"
		],
		transform: ["transform"],
		transformAndFill: ["transform", "fillColor"]
	};
	;
	PathType = {
		FILL: "Fill",
		STROKE: "Stroke",
		SHADING: "Shading"
	};
	BaseShadingPattern = class {
		isModifyingCurrentTransform() {
			return false;
		}
		getPattern() {
			unreachable("Abstract method `getPattern` called.");
		}
	};
	RadialAxialShadingPattern = class extends BaseShadingPattern {
		constructor(IR) {
			super();
			this._type = IR[1];
			this._bbox = IR[2];
			this._colorStops = IR[3];
			this._p0 = IR[4];
			this._p1 = IR[5];
			this._r0 = IR[6];
			this._r1 = IR[7];
			this.matrix = null;
		}
		_createGradient(ctx) {
			let grad;
			if (this._type === "axial") {
				grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]);
			} else if (this._type === "radial") {
				grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1);
			}
			for (const colorStop of this._colorStops) {
				grad.addColorStop(colorStop[0], colorStop[1]);
			}
			return grad;
		}
		getPattern(ctx, owner, inverse, pathType) {
			let pattern;
			if (pathType === PathType.STROKE || pathType === PathType.FILL) {
				const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, getCurrentTransform(ctx)) || [
					0,
					0,
					0,
					0
				];
				const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;
				const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;
				const tmpCanvas = owner.cachedCanvases.getCanvas("pattern", width, height);
				const tmpCtx = tmpCanvas.context;
				tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);
				tmpCtx.beginPath();
				tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);
				tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);
				inverse = Util.transform(inverse, [
					1,
					0,
					0,
					1,
					ownerBBox[0],
					ownerBBox[1]
				]);
				tmpCtx.transform(...owner.baseTransform);
				if (this.matrix) {
					tmpCtx.transform(...this.matrix);
				}
				applyBoundingBox(tmpCtx, this._bbox);
				tmpCtx.fillStyle = this._createGradient(tmpCtx);
				tmpCtx.fill();
				pattern = ctx.createPattern(tmpCanvas.canvas, "no-repeat");
				const domMatrix = new DOMMatrix(inverse);
				pattern.setTransform(domMatrix);
			} else {
				applyBoundingBox(ctx, this._bbox);
				pattern = this._createGradient(ctx);
			}
			return pattern;
		}
	};
	MeshShadingPattern = class extends BaseShadingPattern {
		constructor(IR) {
			super();
			this._coords = IR[2];
			this._colors = IR[3];
			this._figures = IR[4];
			this._bounds = IR[5];
			this._bbox = IR[6];
			this._background = IR[7];
			this.matrix = null;
		}
		_createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {
			const EXPECTED_SCALE = 1.1;
			const MAX_PATTERN_SIZE = 3e3;
			const BORDER_SIZE = 2;
			const offsetX = Math.floor(this._bounds[0]);
			const offsetY = Math.floor(this._bounds[1]);
			const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;
			const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;
			const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);
			const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);
			const scaleX = boundsWidth / width;
			const scaleY = boundsHeight / height;
			const context = {
				coords: this._coords,
				colors: this._colors,
				offsetX: -offsetX,
				offsetY: -offsetY,
				scaleX: 1 / scaleX,
				scaleY: 1 / scaleY
			};
			const paddedWidth = width + BORDER_SIZE * 2;
			const paddedHeight = height + BORDER_SIZE * 2;
			const tmpCanvas = cachedCanvases.getCanvas("mesh", paddedWidth, paddedHeight);
			const tmpCtx = tmpCanvas.context;
			const data = tmpCtx.createImageData(width, height);
			if (backgroundColor) {
				const bytes = data.data;
				for (let i$7 = 0, ii = bytes.length; i$7 < ii; i$7 += 4) {
					bytes[i$7] = backgroundColor[0];
					bytes[i$7 + 1] = backgroundColor[1];
					bytes[i$7 + 2] = backgroundColor[2];
					bytes[i$7 + 3] = 255;
				}
			}
			for (const figure of this._figures) {
				drawFigure(data, figure, context);
			}
			tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);
			const canvas = tmpCanvas.canvas;
			return {
				canvas,
				offsetX: offsetX - BORDER_SIZE * scaleX,
				offsetY: offsetY - BORDER_SIZE * scaleY,
				scaleX,
				scaleY
			};
		}
		isModifyingCurrentTransform() {
			return true;
		}
		getPattern(ctx, owner, inverse, pathType) {
			applyBoundingBox(ctx, this._bbox);
			const scale = new Float32Array(2);
			if (pathType === PathType.SHADING) {
				Util.singularValueDecompose2dScale(getCurrentTransform(ctx), scale);
			} else if (this.matrix) {
				Util.singularValueDecompose2dScale(this.matrix, scale);
				const [matrixScaleX, matrixScaleY] = scale;
				Util.singularValueDecompose2dScale(owner.baseTransform, scale);
				scale[0] *= matrixScaleX;
				scale[1] *= matrixScaleY;
			} else {
				Util.singularValueDecompose2dScale(owner.baseTransform, scale);
			}
			const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases);
			if (pathType !== PathType.SHADING) {
				ctx.setTransform(...owner.baseTransform);
				if (this.matrix) {
					ctx.transform(...this.matrix);
				}
			}
			ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);
			ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);
			return ctx.createPattern(temporaryPatternCanvas.canvas, "no-repeat");
		}
	};
	DummyShadingPattern = class extends BaseShadingPattern {
		getPattern() {
			return "hotpink";
		}
	};
	PaintType = {
		COLORED: 1,
		UNCOLORED: 2
	};
	TilingPattern = class TilingPattern {
		static MAX_PATTERN_SIZE = 3e3;
		constructor(IR, ctx, canvasGraphicsFactory, baseTransform) {
			this.color = IR[1];
			this.operatorList = IR[2];
			this.matrix = IR[3];
			this.bbox = IR[4];
			this.xstep = IR[5];
			this.ystep = IR[6];
			this.paintType = IR[7];
			this.tilingType = IR[8];
			this.ctx = ctx;
			this.canvasGraphicsFactory = canvasGraphicsFactory;
			this.baseTransform = baseTransform;
		}
		createPatternCanvas(owner, opIdx) {
			const { bbox, operatorList, paintType, tilingType, color, canvasGraphicsFactory } = this;
			let { xstep, ystep } = this;
			xstep = Math.abs(xstep);
			ystep = Math.abs(ystep);
			info("TilingType: " + tilingType);
			const x0 = bbox[0], y0 = bbox[1], x1 = bbox[2], y1 = bbox[3];
			const width = x1 - x0;
			const height = y1 - y0;
			const scale = new Float32Array(2);
			Util.singularValueDecompose2dScale(this.matrix, scale);
			const [matrixScaleX, matrixScaleY] = scale;
			Util.singularValueDecompose2dScale(this.baseTransform, scale);
			const combinedScaleX = matrixScaleX * scale[0];
			const combinedScaleY = matrixScaleY * scale[1];
			let canvasWidth = width, canvasHeight = height, redrawHorizontally = false, redrawVertically = false;
			const xScaledStep = Math.ceil(xstep * combinedScaleX);
			const yScaledStep = Math.ceil(ystep * combinedScaleY);
			const xScaledWidth = Math.ceil(width * combinedScaleX);
			const yScaledHeight = Math.ceil(height * combinedScaleY);
			if (xScaledStep >= xScaledWidth) {
				canvasWidth = xstep;
			} else {
				redrawHorizontally = true;
			}
			if (yScaledStep >= yScaledHeight) {
				canvasHeight = ystep;
			} else {
				redrawVertically = true;
			}
			const dimx = this.getSizeAndScale(canvasWidth, this.ctx.canvas.width, combinedScaleX);
			const dimy = this.getSizeAndScale(canvasHeight, this.ctx.canvas.height, combinedScaleY);
			const tmpCanvas = owner.cachedCanvases.getCanvas("pattern", dimx.size, dimy.size);
			const tmpCtx = tmpCanvas.context;
			const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx, opIdx);
			graphics.groupLevel = owner.groupLevel;
			this.setFillAndStrokeStyleToContext(graphics, paintType, color);
			tmpCtx.translate(-dimx.scale * x0, -dimy.scale * y0);
			graphics.transform(0, dimx.scale, 0, 0, dimy.scale, 0, 0);
			tmpCtx.save();
			graphics.dependencyTracker?.save();
			this.clipBbox(graphics, x0, y0, x1, y1);
			graphics.baseTransform = getCurrentTransform(graphics.ctx);
			graphics.executeOperatorList(operatorList);
			graphics.endDrawing();
			graphics.dependencyTracker?.restore();
			tmpCtx.restore();
			if (redrawHorizontally || redrawVertically) {
				const image = tmpCanvas.canvas;
				if (redrawHorizontally) {
					canvasWidth = xstep;
				}
				if (redrawVertically) {
					canvasHeight = ystep;
				}
				const dimx2 = this.getSizeAndScale(canvasWidth, this.ctx.canvas.width, combinedScaleX);
				const dimy2 = this.getSizeAndScale(canvasHeight, this.ctx.canvas.height, combinedScaleY);
				const xSize = dimx2.size;
				const ySize = dimy2.size;
				const tmpCanvas2 = owner.cachedCanvases.getCanvas("pattern-workaround", xSize, ySize);
				const tmpCtx2 = tmpCanvas2.context;
				const ii = redrawHorizontally ? Math.floor(width / xstep) : 0;
				const jj = redrawVertically ? Math.floor(height / ystep) : 0;
				for (let i$7 = 0; i$7 <= ii; i$7++) {
					for (let j$2 = 0; j$2 <= jj; j$2++) {
						tmpCtx2.drawImage(image, xSize * i$7, ySize * j$2, xSize, ySize, 0, 0, xSize, ySize);
					}
				}
				return {
					canvas: tmpCanvas2.canvas,
					scaleX: dimx2.scale,
					scaleY: dimy2.scale,
					offsetX: x0,
					offsetY: y0
				};
			}
			return {
				canvas: tmpCanvas.canvas,
				scaleX: dimx.scale,
				scaleY: dimy.scale,
				offsetX: x0,
				offsetY: y0
			};
		}
		getSizeAndScale(step, realOutputSize, scale) {
			const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);
			let size = Math.ceil(step * scale);
			if (size >= maxSize) {
				size = maxSize;
			} else {
				scale = size / step;
			}
			return {
				scale,
				size
			};
		}
		clipBbox(graphics, x0, y0, x1, y1) {
			const bboxWidth = x1 - x0;
			const bboxHeight = y1 - y0;
			graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);
			Util.axialAlignedBoundingBox([
				x0,
				y0,
				x1,
				y1
			], getCurrentTransform(graphics.ctx), graphics.current.minMax);
			graphics.clip();
			graphics.endPath();
		}
		setFillAndStrokeStyleToContext(graphics, paintType, color) {
			const context = graphics.ctx, current = graphics.current;
			switch (paintType) {
				case PaintType.COLORED:
					const { fillStyle, strokeStyle } = this.ctx;
					context.fillStyle = current.fillColor = fillStyle;
					context.strokeStyle = current.strokeColor = strokeStyle;
					break;
				case PaintType.UNCOLORED:
					context.fillStyle = context.strokeStyle = color;
					current.fillColor = current.strokeColor = color;
					break;
				default: throw new FormatError(`Unsupported paint type: ${paintType}`);
			}
		}
		isModifyingCurrentTransform() {
			return false;
		}
		getPattern(ctx, owner, inverse, pathType, opIdx) {
			let matrix = inverse;
			if (pathType !== PathType.SHADING) {
				matrix = Util.transform(matrix, owner.baseTransform);
				if (this.matrix) {
					matrix = Util.transform(matrix, this.matrix);
				}
			}
			const temporaryPatternCanvas = this.createPatternCanvas(owner, opIdx);
			let domMatrix = new DOMMatrix(matrix);
			domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);
			domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY);
			const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, "repeat");
			pattern.setTransform(domMatrix);
			return pattern;
		}
	};
	;
	;
	MIN_FONT_SIZE = 16;
	MAX_FONT_SIZE = 100;
	EXECUTION_TIME = 15;
	EXECUTION_STEPS = 10;
	FULL_CHUNK_HEIGHT = 16;
	SCALE_MATRIX = new DOMMatrix();
	XY = new Float32Array(2);
	MIN_MAX_INIT = new Float32Array([
		Infinity,
		Infinity,
		-Infinity,
		-Infinity
	]);
	CachedCanvases = class {
		constructor(canvasFactory) {
			this.canvasFactory = canvasFactory;
			this.cache = Object.create(null);
		}
		getCanvas(id, width, height) {
			let canvasEntry;
			if (this.cache[id] !== undefined) {
				canvasEntry = this.cache[id];
				this.canvasFactory.reset(canvasEntry, width, height);
			} else {
				canvasEntry = this.canvasFactory.create(width, height);
				this.cache[id] = canvasEntry;
			}
			return canvasEntry;
		}
		delete(id) {
			delete this.cache[id];
		}
		clear() {
			for (const id in this.cache) {
				const canvasEntry = this.cache[id];
				this.canvasFactory.destroy(canvasEntry);
				delete this.cache[id];
			}
		}
	};
	CanvasExtraState = class {
		alphaIsShape = false;
		fontSize = 0;
		fontSizeScale = 1;
		textMatrix = null;
		textMatrixScale = 1;
		fontMatrix = FONT_IDENTITY_MATRIX;
		leading = 0;
		x = 0;
		y = 0;
		lineX = 0;
		lineY = 0;
		charSpacing = 0;
		wordSpacing = 0;
		textHScale = 1;
		textRenderingMode = TextRenderingMode.FILL;
		textRise = 0;
		fillColor = "#000000";
		strokeColor = "#000000";
		patternFill = false;
		patternStroke = false;
		fillAlpha = 1;
		strokeAlpha = 1;
		lineWidth = 1;
		activeSMask = null;
		transferMaps = "none";
		constructor(width, height, preInit) {
			preInit?.(this);
			this.clipBox = new Float32Array([
				0,
				0,
				width,
				height
			]);
			this.minMax = MIN_MAX_INIT.slice();
		}
		clone() {
			const clone = Object.create(this);
			clone.clipBox = this.clipBox.slice();
			clone.minMax = this.minMax.slice();
			return clone;
		}
		getPathBoundingBox(pathType = PathType.FILL, transform = null) {
			const box = this.minMax.slice();
			if (pathType === PathType.STROKE) {
				if (!transform) {
					unreachable("Stroke bounding box must include transform.");
				}
				Util.singularValueDecompose2dScale(transform, XY);
				const xStrokePad = XY[0] * this.lineWidth / 2;
				const yStrokePad = XY[1] * this.lineWidth / 2;
				box[0] -= xStrokePad;
				box[1] -= yStrokePad;
				box[2] += xStrokePad;
				box[3] += yStrokePad;
			}
			return box;
		}
		updateClipFromPath() {
			const intersect = Util.intersect(this.clipBox, this.getPathBoundingBox());
			this.startNewPathAndClipBox(intersect || [
				0,
				0,
				0,
				0
			]);
		}
		isEmptyClip() {
			return this.minMax[0] === Infinity;
		}
		startNewPathAndClipBox(box) {
			this.clipBox.set(box, 0);
			this.minMax.set(MIN_MAX_INIT, 0);
		}
		getClippedPathBoundingBox(pathType = PathType.FILL, transform = null) {
			return Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform));
		}
	};
	LINE_CAP_STYLES = [
		"butt",
		"round",
		"square"
	];
	LINE_JOIN_STYLES = [
		"miter",
		"round",
		"bevel"
	];
	NORMAL_CLIP = {};
	EO_CLIP = {};
	CanvasGraphics = class CanvasGraphics {
		constructor(canvasCtx, commonObjs, objs, canvasFactory, filterFactory, { optionalContentConfig, markedContentStack = null }, annotationCanvasMap, pageColors, dependencyTracker) {
			this.ctx = canvasCtx;
			this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);
			this.stateStack = [];
			this.pendingClip = null;
			this.pendingEOFill = false;
			this.res = null;
			this.xobjs = null;
			this.commonObjs = commonObjs;
			this.objs = objs;
			this.canvasFactory = canvasFactory;
			this.filterFactory = filterFactory;
			this.groupStack = [];
			this.baseTransform = null;
			this.baseTransformStack = [];
			this.groupLevel = 0;
			this.smaskStack = [];
			this.smaskCounter = 0;
			this.tempSMask = null;
			this.suspendedCtx = null;
			this.contentVisible = true;
			this.markedContentStack = markedContentStack || [];
			this.optionalContentConfig = optionalContentConfig;
			this.cachedCanvases = new CachedCanvases(this.canvasFactory);
			this.cachedPatterns = new Map();
			this.annotationCanvasMap = annotationCanvasMap;
			this.viewportScale = 1;
			this.outputScaleX = 1;
			this.outputScaleY = 1;
			this.pageColors = pageColors;
			this._cachedScaleForStroking = [-1, 0];
			this._cachedGetSinglePixelWidth = null;
			this._cachedBitmapsMap = new Map();
			this.dependencyTracker = dependencyTracker ?? null;
		}
		getObject(opIdx, data, fallback = null) {
			if (typeof data === "string") {
				this.dependencyTracker?.recordNamedDependency(opIdx, data);
				return data.startsWith("g_") ? this.commonObjs.get(data) : this.objs.get(data);
			}
			return fallback;
		}
		beginDrawing({ transform, viewport, transparency = false, background = null }) {
			const width = this.ctx.canvas.width;
			const height = this.ctx.canvas.height;
			const savedFillStyle = this.ctx.fillStyle;
			this.ctx.fillStyle = background || "#ffffff";
			this.ctx.fillRect(0, 0, width, height);
			this.ctx.fillStyle = savedFillStyle;
			if (transparency) {
				const transparentCanvas = this.cachedCanvases.getCanvas("transparent", width, height);
				this.compositeCtx = this.ctx;
				this.transparentCanvas = transparentCanvas.canvas;
				this.ctx = transparentCanvas.context;
				this.ctx.save();
				this.ctx.transform(...getCurrentTransform(this.compositeCtx));
			}
			this.ctx.save();
			resetCtxToDefault(this.ctx);
			if (transform) {
				this.ctx.transform(...transform);
				this.outputScaleX = transform[0];
				this.outputScaleY = transform[0];
			}
			this.ctx.transform(...viewport.transform);
			this.viewportScale = viewport.scale;
			this.baseTransform = getCurrentTransform(this.ctx);
		}
		executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper, operationsFilter) {
			const argsArray = operatorList.argsArray;
			const fnArray = operatorList.fnArray;
			let i$7 = executionStartIdx || 0;
			const argsArrayLen = argsArray.length;
			if (argsArrayLen === i$7) {
				return i$7;
			}
			const chunkOperations = argsArrayLen - i$7 > EXECUTION_STEPS && typeof continueCallback === "function";
			const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;
			let steps = 0;
			const commonObjs = this.commonObjs;
			const objs = this.objs;
			let fnId, fnArgs;
			while (true) {
				if (stepper !== undefined && i$7 === stepper.nextBreakPoint) {
					stepper.breakIt(i$7, continueCallback);
					return i$7;
				}
				if (!operationsFilter || operationsFilter(i$7)) {
					fnId = fnArray[i$7];
					fnArgs = argsArray[i$7] ?? null;
					if (fnId !== OPS.dependency) {
						if (fnArgs === null) {
							this[fnId](i$7);
						} else {
							this[fnId](i$7, ...fnArgs);
						}
					} else {
						for (const depObjId of fnArgs) {
							this.dependencyTracker?.recordNamedData(depObjId, i$7);
							const objsPool = depObjId.startsWith("g_") ? commonObjs : objs;
							if (!objsPool.has(depObjId)) {
								objsPool.get(depObjId, continueCallback);
								return i$7;
							}
						}
					}
				}
				i$7++;
				if (i$7 === argsArrayLen) {
					return i$7;
				}
				if (chunkOperations && ++steps > EXECUTION_STEPS) {
					if (Date.now() > endTime) {
						continueCallback();
						return i$7;
					}
					steps = 0;
				}
			}
		}
		#restoreInitialState() {
			while (this.stateStack.length || this.inSMaskMode) {
				this.restore();
			}
			this.current.activeSMask = null;
			this.ctx.restore();
			if (this.transparentCanvas) {
				this.ctx = this.compositeCtx;
				this.ctx.save();
				this.ctx.setTransform(1, 0, 0, 1, 0, 0);
				this.ctx.drawImage(this.transparentCanvas, 0, 0);
				this.ctx.restore();
				this.transparentCanvas = null;
			}
		}
		endDrawing() {
			this.#restoreInitialState();
			this.cachedCanvases.clear();
			this.cachedPatterns.clear();
			for (const cache of this._cachedBitmapsMap.values()) {
				for (const canvas of cache.values()) {
					if (typeof HTMLCanvasElement !== "undefined" && canvas instanceof HTMLCanvasElement) {
						canvas.width = canvas.height = 0;
					}
				}
				cache.clear();
			}
			this._cachedBitmapsMap.clear();
			this.#drawFilter();
		}
		#drawFilter() {
			if (this.pageColors) {
				const hcmFilterId = this.filterFactory.addHCMFilter(this.pageColors.foreground, this.pageColors.background);
				if (hcmFilterId !== "none") {
					const savedFilter = this.ctx.filter;
					this.ctx.filter = hcmFilterId;
					this.ctx.drawImage(this.ctx.canvas, 0, 0);
					this.ctx.filter = savedFilter;
				}
			}
		}
		_scaleImage(img, inverseTransform) {
			const width = img.width ?? img.displayWidth;
			const height = img.height ?? img.displayHeight;
			let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1);
			let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1);
			let paintWidth = width, paintHeight = height;
			let tmpCanvasId = "prescale1";
			let tmpCanvas, tmpCtx;
			while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {
				let newWidth = paintWidth, newHeight = paintHeight;
				if (widthScale > 2 && paintWidth > 1) {
					newWidth = paintWidth >= 16384 ? Math.floor(paintWidth / 2) - 1 || 1 : Math.ceil(paintWidth / 2);
					widthScale /= paintWidth / newWidth;
				}
				if (heightScale > 2 && paintHeight > 1) {
					newHeight = paintHeight >= 16384 ? Math.floor(paintHeight / 2) - 1 || 1 : Math.ceil(paintHeight) / 2;
					heightScale /= paintHeight / newHeight;
				}
				tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);
				tmpCtx = tmpCanvas.context;
				tmpCtx.clearRect(0, 0, newWidth, newHeight);
				tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);
				img = tmpCanvas.canvas;
				paintWidth = newWidth;
				paintHeight = newHeight;
				tmpCanvasId = tmpCanvasId === "prescale1" ? "prescale2" : "prescale1";
			}
			return {
				img,
				paintWidth,
				paintHeight
			};
		}
		_createMaskCanvas(opIdx, img) {
			const ctx = this.ctx;
			const { width, height } = img;
			const fillColor = this.current.fillColor;
			const isPatternFill = this.current.patternFill;
			const currentTransform = getCurrentTransform(ctx);
			let cache, cacheKey, scaled, maskCanvas;
			if ((img.bitmap || img.data) && img.count > 1) {
				const mainKey = img.bitmap || img.data.buffer;
				cacheKey = JSON.stringify(isPatternFill ? currentTransform : [currentTransform.slice(0, 4), fillColor]);
				cache = this._cachedBitmapsMap.get(mainKey);
				if (!cache) {
					cache = new Map();
					this._cachedBitmapsMap.set(mainKey, cache);
				}
				const cachedImage = cache.get(cacheKey);
				if (cachedImage && !isPatternFill) {
					const offsetX$1 = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]);
					const offsetY$1 = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]);
					this.dependencyTracker?.recordDependencies(opIdx, Dependencies.transformAndFill);
					return {
						canvas: cachedImage,
						offsetX: offsetX$1,
						offsetY: offsetY$1
					};
				}
				scaled = cachedImage;
			}
			if (!scaled) {
				maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height);
				putBinaryImageMask(maskCanvas.context, img);
			}
			let maskToCanvas = Util.transform(currentTransform, [
				1 / width,
				0,
				0,
				-1 / height,
				0,
				0
			]);
			maskToCanvas = Util.transform(maskToCanvas, [
				1,
				0,
				0,
				1,
				0,
				-height
			]);
			const minMax = MIN_MAX_INIT.slice();
			Util.axialAlignedBoundingBox([
				0,
				0,
				width,
				height
			], maskToCanvas, minMax);
			const [minX, minY, maxX, maxY] = minMax;
			const drawnWidth = Math.round(maxX - minX) || 1;
			const drawnHeight = Math.round(maxY - minY) || 1;
			const fillCanvas = this.cachedCanvases.getCanvas("fillCanvas", drawnWidth, drawnHeight);
			const fillCtx = fillCanvas.context;
			const offsetX = minX;
			const offsetY = minY;
			fillCtx.translate(-offsetX, -offsetY);
			fillCtx.transform(...maskToCanvas);
			if (!scaled) {
				scaled = this._scaleImage(maskCanvas.canvas, getCurrentTransformInverse(fillCtx));
				scaled = scaled.img;
				if (cache && isPatternFill) {
					cache.set(cacheKey, scaled);
				}
			}
			fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled(getCurrentTransform(fillCtx), img.interpolate);
			drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height);
			fillCtx.globalCompositeOperation = "source-in";
			const inverse = Util.transform(getCurrentTransformInverse(fillCtx), [
				1,
				0,
				0,
				1,
				-offsetX,
				-offsetY
			]);
			fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, PathType.FILL, opIdx) : fillColor;
			fillCtx.fillRect(0, 0, width, height);
			if (cache && !isPatternFill) {
				this.cachedCanvases.delete("fillCanvas");
				cache.set(cacheKey, fillCanvas.canvas);
			}
			this.dependencyTracker?.recordDependencies(opIdx, Dependencies.transformAndFill);
			return {
				canvas: fillCanvas.canvas,
				offsetX: Math.round(offsetX),
				offsetY: Math.round(offsetY)
			};
		}
		setLineWidth(opIdx, width) {
			this.dependencyTracker?.recordSimpleData("lineWidth", opIdx);
			if (width !== this.current.lineWidth) {
				this._cachedScaleForStroking[0] = -1;
			}
			this.current.lineWidth = width;
			this.ctx.lineWidth = width;
		}
		setLineCap(opIdx, style) {
			this.dependencyTracker?.recordSimpleData("lineCap", opIdx);
			this.ctx.lineCap = LINE_CAP_STYLES[style];
		}
		setLineJoin(opIdx, style) {
			this.dependencyTracker?.recordSimpleData("lineJoin", opIdx);
			this.ctx.lineJoin = LINE_JOIN_STYLES[style];
		}
		setMiterLimit(opIdx, limit) {
			this.dependencyTracker?.recordSimpleData("miterLimit", opIdx);
			this.ctx.miterLimit = limit;
		}
		setDash(opIdx, dashArray, dashPhase) {
			this.dependencyTracker?.recordSimpleData("dash", opIdx);
			const ctx = this.ctx;
			if (ctx.setLineDash !== undefined) {
				ctx.setLineDash(dashArray);
				ctx.lineDashOffset = dashPhase;
			}
		}
		setRenderingIntent(opIdx, intent) {}
		setFlatness(opIdx, flatness) {}
		setGState(opIdx, states) {
			for (const [key, value] of states) {
				switch (key) {
					case "LW":
						this.setLineWidth(opIdx, value);
						break;
					case "LC":
						this.setLineCap(opIdx, value);
						break;
					case "LJ":
						this.setLineJoin(opIdx, value);
						break;
					case "ML":
						this.setMiterLimit(opIdx, value);
						break;
					case "D":
						this.setDash(opIdx, value[0], value[1]);
						break;
					case "RI":
						this.setRenderingIntent(opIdx, value);
						break;
					case "FL":
						this.setFlatness(opIdx, value);
						break;
					case "Font":
						this.setFont(opIdx, value[0], value[1]);
						break;
					case "CA":
						this.dependencyTracker?.recordSimpleData("strokeAlpha", opIdx);
						this.current.strokeAlpha = value;
						break;
					case "ca":
						this.dependencyTracker?.recordSimpleData("fillAlpha", opIdx);
						this.ctx.globalAlpha = this.current.fillAlpha = value;
						break;
					case "BM":
						this.dependencyTracker?.recordSimpleData("globalCompositeOperation", opIdx);
						this.ctx.globalCompositeOperation = value;
						break;
					case "SMask":
						this.dependencyTracker?.recordSimpleData("SMask", opIdx);
						this.current.activeSMask = value ? this.tempSMask : null;
						this.tempSMask = null;
						this.checkSMaskState();
						break;
					case "TR":
						this.dependencyTracker?.recordSimpleData("filter", opIdx);
						this.ctx.filter = this.current.transferMaps = this.filterFactory.addFilter(value);
						break;
				}
			}
		}
		get inSMaskMode() {
			return !!this.suspendedCtx;
		}
		checkSMaskState() {
			const inSMaskMode = this.inSMaskMode;
			if (this.current.activeSMask && !inSMaskMode) {
				this.beginSMaskMode();
			} else if (!this.current.activeSMask && inSMaskMode) {
				this.endSMaskMode();
			}
		}
		beginSMaskMode(opIdx) {
			if (this.inSMaskMode) {
				throw new Error("beginSMaskMode called while already in smask mode");
			}
			const drawnWidth = this.ctx.canvas.width;
			const drawnHeight = this.ctx.canvas.height;
			const cacheId = "smaskGroupAt" + this.groupLevel;
			const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);
			this.suspendedCtx = this.ctx;
			const ctx = this.ctx = scratchCanvas.context;
			ctx.setTransform(this.suspendedCtx.getTransform());
			copyCtxState(this.suspendedCtx, ctx);
			mirrorContextOperations(ctx, this.suspendedCtx);
			this.setGState(opIdx, [["BM", "source-over"]]);
		}
		endSMaskMode() {
			if (!this.inSMaskMode) {
				throw new Error("endSMaskMode called while not in smask mode");
			}
			this.ctx._removeMirroring();
			copyCtxState(this.ctx, this.suspendedCtx);
			this.ctx = this.suspendedCtx;
			this.suspendedCtx = null;
		}
		compose(dirtyBox) {
			if (!this.current.activeSMask) {
				return;
			}
			if (!dirtyBox) {
				dirtyBox = [
					0,
					0,
					this.ctx.canvas.width,
					this.ctx.canvas.height
				];
			} else {
				dirtyBox[0] = Math.floor(dirtyBox[0]);
				dirtyBox[1] = Math.floor(dirtyBox[1]);
				dirtyBox[2] = Math.ceil(dirtyBox[2]);
				dirtyBox[3] = Math.ceil(dirtyBox[3]);
			}
			const smask = this.current.activeSMask;
			const suspendedCtx = this.suspendedCtx;
			this.composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);
			this.ctx.save();
			this.ctx.setTransform(1, 0, 0, 1, 0, 0);
			this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);
			this.ctx.restore();
		}
		composeSMask(ctx, smask, layerCtx, layerBox) {
			const layerOffsetX = layerBox[0];
			const layerOffsetY = layerBox[1];
			const layerWidth = layerBox[2] - layerOffsetX;
			const layerHeight = layerBox[3] - layerOffsetY;
			if (layerWidth === 0 || layerHeight === 0) {
				return;
			}
			this.genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY);
			ctx.save();
			ctx.globalAlpha = 1;
			ctx.globalCompositeOperation = "source-over";
			ctx.setTransform(1, 0, 0, 1, 0, 0);
			ctx.drawImage(layerCtx.canvas, 0, 0);
			ctx.restore();
		}
		genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) {
			let maskCanvas = maskCtx.canvas;
			let maskX = layerOffsetX - maskOffsetX;
			let maskY = layerOffsetY - maskOffsetY;
			if (backdrop) {
				if (maskX < 0 || maskY < 0 || maskX + width > maskCanvas.width || maskY + height > maskCanvas.height) {
					const canvas = this.cachedCanvases.getCanvas("maskExtension", width, height);
					const ctx = canvas.context;
					ctx.drawImage(maskCanvas, -maskX, -maskY);
					ctx.globalCompositeOperation = "destination-atop";
					ctx.fillStyle = backdrop;
					ctx.fillRect(0, 0, width, height);
					ctx.globalCompositeOperation = "source-over";
					maskCanvas = canvas.canvas;
					maskX = maskY = 0;
				} else {
					maskCtx.save();
					maskCtx.globalAlpha = 1;
					maskCtx.setTransform(1, 0, 0, 1, 0, 0);
					const clip$1 = new Path2D();
					clip$1.rect(maskX, maskY, width, height);
					maskCtx.clip(clip$1);
					maskCtx.globalCompositeOperation = "destination-atop";
					maskCtx.fillStyle = backdrop;
					maskCtx.fillRect(maskX, maskY, width, height);
					maskCtx.restore();
				}
			}
			layerCtx.save();
			layerCtx.globalAlpha = 1;
			layerCtx.setTransform(1, 0, 0, 1, 0, 0);
			if (subtype === "Alpha" && transferMap) {
				layerCtx.filter = this.filterFactory.addAlphaFilter(transferMap);
			} else if (subtype === "Luminosity") {
				layerCtx.filter = this.filterFactory.addLuminosityFilter(transferMap);
			}
			const clip = new Path2D();
			clip.rect(layerOffsetX, layerOffsetY, width, height);
			layerCtx.clip(clip);
			layerCtx.globalCompositeOperation = "destination-in";
			layerCtx.drawImage(maskCanvas, maskX, maskY, width, height, layerOffsetX, layerOffsetY, width, height);
			layerCtx.restore();
		}
		save(opIdx) {
			if (this.inSMaskMode) {
				copyCtxState(this.ctx, this.suspendedCtx);
			}
			this.ctx.save();
			const old = this.current;
			this.stateStack.push(old);
			this.current = old.clone();
			this.dependencyTracker?.save(opIdx);
		}
		restore(opIdx) {
			this.dependencyTracker?.restore(opIdx);
			if (this.stateStack.length === 0) {
				if (this.inSMaskMode) {
					this.endSMaskMode();
				}
				return;
			}
			this.current = this.stateStack.pop();
			this.ctx.restore();
			if (this.inSMaskMode) {
				copyCtxState(this.suspendedCtx, this.ctx);
			}
			this.checkSMaskState();
			this.pendingClip = null;
			this._cachedScaleForStroking[0] = -1;
			this._cachedGetSinglePixelWidth = null;
		}
		transform(opIdx, a$2, b$3, c$7, d$5, e$10, f$4) {
			this.dependencyTracker?.recordIncrementalData("transform", opIdx);
			this.ctx.transform(a$2, b$3, c$7, d$5, e$10, f$4);
			this._cachedScaleForStroking[0] = -1;
			this._cachedGetSinglePixelWidth = null;
		}
		constructPath(opIdx, op$1, data, minMax) {
			let [path$1] = data;
			if (!minMax) {
				path$1 ||= data[0] = new Path2D();
				this[op$1](opIdx, path$1);
				return;
			}
			if (this.dependencyTracker !== null) {
				const outerExtraSize = op$1 === OPS.stroke ? this.current.lineWidth / 2 : 0;
				this.dependencyTracker.resetBBox(opIdx).recordBBox(opIdx, this.ctx, minMax[0] - outerExtraSize, minMax[2] + outerExtraSize, minMax[1] - outerExtraSize, minMax[3] + outerExtraSize).recordDependencies(opIdx, ["transform"]);
			}
			if (!(path$1 instanceof Path2D)) {
				path$1 = data[0] = makePathFromDrawOPS(path$1);
			}
			Util.axialAlignedBoundingBox(minMax, getCurrentTransform(this.ctx), this.current.minMax);
			this[op$1](opIdx, path$1);
			this._pathStartIdx = opIdx;
		}
		closePath(opIdx) {
			this.ctx.closePath();
		}
		stroke(opIdx, path$1, consumePath = true) {
			const ctx = this.ctx;
			const strokeColor = this.current.strokeColor;
			ctx.globalAlpha = this.current.strokeAlpha;
			if (this.contentVisible) {
				if (typeof strokeColor === "object" && strokeColor?.getPattern) {
					const baseTransform = strokeColor.isModifyingCurrentTransform() ? ctx.getTransform() : null;
					ctx.save();
					ctx.strokeStyle = strokeColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.STROKE, opIdx);
					if (baseTransform) {
						const newPath = new Path2D();
						newPath.addPath(path$1, ctx.getTransform().invertSelf().multiplySelf(baseTransform));
						path$1 = newPath;
					}
					this.rescaleAndStroke(path$1, false);
					ctx.restore();
				} else {
					this.rescaleAndStroke(path$1, true);
				}
			}
			this.dependencyTracker?.recordDependencies(opIdx, Dependencies.stroke);
			if (consumePath) {
				this.consumePath(opIdx, path$1, this.current.getClippedPathBoundingBox(PathType.STROKE, getCurrentTransform(this.ctx)));
			}
			ctx.globalAlpha = this.current.fillAlpha;
		}
		closeStroke(opIdx, path$1) {
			this.stroke(opIdx, path$1);
		}
		fill(opIdx, path$1, consumePath = true) {
			const ctx = this.ctx;
			const fillColor = this.current.fillColor;
			const isPatternFill = this.current.patternFill;
			let needRestore = false;
			if (isPatternFill) {
				const baseTransform = fillColor.isModifyingCurrentTransform() ? ctx.getTransform() : null;
				this.dependencyTracker?.save(opIdx);
				ctx.save();
				ctx.fillStyle = fillColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.FILL, opIdx);
				if (baseTransform) {
					const newPath = new Path2D();
					newPath.addPath(path$1, ctx.getTransform().invertSelf().multiplySelf(baseTransform));
					path$1 = newPath;
				}
				needRestore = true;
			}
			const intersect = this.current.getClippedPathBoundingBox();
			if (this.contentVisible && intersect !== null) {
				if (this.pendingEOFill) {
					ctx.fill(path$1, "evenodd");
					this.pendingEOFill = false;
				} else {
					ctx.fill(path$1);
				}
			}
			this.dependencyTracker?.recordDependencies(opIdx, Dependencies.fill);
			if (needRestore) {
				ctx.restore();
				this.dependencyTracker?.restore(opIdx);
			}
			if (consumePath) {
				this.consumePath(opIdx, path$1, intersect);
			}
		}
		eoFill(opIdx, path$1) {
			this.pendingEOFill = true;
			this.fill(opIdx, path$1);
		}
		fillStroke(opIdx, path$1) {
			this.fill(opIdx, path$1, false);
			this.stroke(opIdx, path$1, false);
			this.consumePath(opIdx, path$1);
		}
		eoFillStroke(opIdx, path$1) {
			this.pendingEOFill = true;
			this.fillStroke(opIdx, path$1);
		}
		closeFillStroke(opIdx, path$1) {
			this.fillStroke(opIdx, path$1);
		}
		closeEOFillStroke(opIdx, path$1) {
			this.pendingEOFill = true;
			this.fillStroke(opIdx, path$1);
		}
		endPath(opIdx, path$1) {
			this.consumePath(opIdx, path$1);
		}
		rawFillPath(opIdx, path$1) {
			this.ctx.fill(path$1);
			this.dependencyTracker?.recordDependencies(opIdx, Dependencies.rawFillPath).recordOperation(opIdx);
		}
		clip(opIdx) {
			this.dependencyTracker?.recordFutureForcedDependency("clipMode", opIdx);
			this.pendingClip = NORMAL_CLIP;
		}
		eoClip(opIdx) {
			this.dependencyTracker?.recordFutureForcedDependency("clipMode", opIdx);
			this.pendingClip = EO_CLIP;
		}
		beginText(opIdx) {
			this.current.textMatrix = null;
			this.current.textMatrixScale = 1;
			this.current.x = this.current.lineX = 0;
			this.current.y = this.current.lineY = 0;
			this.dependencyTracker?.recordOpenMarker(opIdx).resetIncrementalData("sameLineText").resetIncrementalData("moveText", opIdx);
		}
		endText(opIdx) {
			const paths = this.pendingTextPaths;
			const ctx = this.ctx;
			if (this.dependencyTracker) {
				const { dependencyTracker } = this;
				if (paths !== undefined) {
					dependencyTracker.recordFutureForcedDependency("textClip", dependencyTracker.getOpenMarker()).recordFutureForcedDependency("textClip", opIdx);
				}
				dependencyTracker.recordCloseMarker(opIdx);
			}
			if (paths !== undefined) {
				const newPath = new Path2D();
				const invTransf = ctx.getTransform().invertSelf();
				for (const { transform, x: x$2, y: y$3, fontSize, path: path$1 } of paths) {
					if (!path$1) {
						continue;
					}
					newPath.addPath(path$1, new DOMMatrix(transform).preMultiplySelf(invTransf).translate(x$2, y$3).scale(fontSize, -fontSize));
				}
				ctx.clip(newPath);
			}
			delete this.pendingTextPaths;
		}
		setCharSpacing(opIdx, spacing$1) {
			this.dependencyTracker?.recordSimpleData("charSpacing", opIdx);
			this.current.charSpacing = spacing$1;
		}
		setWordSpacing(opIdx, spacing$1) {
			this.dependencyTracker?.recordSimpleData("wordSpacing", opIdx);
			this.current.wordSpacing = spacing$1;
		}
		setHScale(opIdx, scale) {
			this.dependencyTracker?.recordSimpleData("hScale", opIdx);
			this.current.textHScale = scale / 100;
		}
		setLeading(opIdx, leading) {
			this.dependencyTracker?.recordSimpleData("leading", opIdx);
			this.current.leading = -leading;
		}
		setFont(opIdx, fontRefName, size) {
			this.dependencyTracker?.recordSimpleData("font", opIdx).recordSimpleDataFromNamed("fontObj", fontRefName, opIdx);
			const fontObj = this.commonObjs.get(fontRefName);
			const current = this.current;
			if (!fontObj) {
				throw new Error(`Can't find font for ${fontRefName}`);
			}
			current.fontMatrix = fontObj.fontMatrix || FONT_IDENTITY_MATRIX;
			if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {
				warn$2("Invalid font matrix for font " + fontRefName);
			}
			if (size < 0) {
				size = -size;
				current.fontDirection = -1;
			} else {
				current.fontDirection = 1;
			}
			this.current.font = fontObj;
			this.current.fontSize = size;
			if (fontObj.isType3Font) {
				return;
			}
			const name = fontObj.loadedName || "sans-serif";
			const typeface = fontObj.systemFontInfo?.css || `"${name}", ${fontObj.fallbackName}`;
			let bold = "normal";
			if (fontObj.black) {
				bold = "900";
			} else if (fontObj.bold) {
				bold = "bold";
			}
			const italic = fontObj.italic ? "italic" : "normal";
			let browserFontSize = size;
			if (size < MIN_FONT_SIZE) {
				browserFontSize = MIN_FONT_SIZE;
			} else if (size > MAX_FONT_SIZE) {
				browserFontSize = MAX_FONT_SIZE;
			}
			this.current.fontSizeScale = size / browserFontSize;
			this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;
		}
		setTextRenderingMode(opIdx, mode) {
			this.dependencyTracker?.recordSimpleData("textRenderingMode", opIdx);
			this.current.textRenderingMode = mode;
		}
		setTextRise(opIdx, rise) {
			this.dependencyTracker?.recordSimpleData("textRise", opIdx);
			this.current.textRise = rise;
		}
		moveText(opIdx, x$2, y$3) {
			this.dependencyTracker?.resetIncrementalData("sameLineText").recordIncrementalData("moveText", opIdx);
			this.current.x = this.current.lineX += x$2;
			this.current.y = this.current.lineY += y$3;
		}
		setLeadingMoveText(opIdx, x$2, y$3) {
			this.setLeading(opIdx, -y$3);
			this.moveText(opIdx, x$2, y$3);
		}
		setTextMatrix(opIdx, matrix) {
			this.dependencyTracker?.resetIncrementalData("sameLineText").recordSimpleData("textMatrix", opIdx);
			const { current } = this;
			current.textMatrix = matrix;
			current.textMatrixScale = Math.hypot(matrix[0], matrix[1]);
			current.x = current.lineX = 0;
			current.y = current.lineY = 0;
		}
		nextLine(opIdx) {
			this.moveText(opIdx, 0, this.current.leading);
			this.dependencyTracker?.recordIncrementalData("moveText", this.dependencyTracker.getSimpleIndex("leading") ?? opIdx);
		}
		#getScaledPath(path$1, currentTransform, transform) {
			const newPath = new Path2D();
			newPath.addPath(path$1, new DOMMatrix(transform).invertSelf().multiplySelf(currentTransform));
			return newPath;
		}
		paintChar(opIdx, character, x$2, y$3, patternFillTransform, patternStrokeTransform) {
			const ctx = this.ctx;
			const current = this.current;
			const font = current.font;
			const textRenderingMode = current.textRenderingMode;
			const fontSize = current.fontSize / current.fontSizeScale;
			const fillStrokeMode = textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;
			const isAddToPathSet = !!(textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG);
			const patternFill = current.patternFill && !font.missingFile;
			const patternStroke = current.patternStroke && !font.missingFile;
			let path$1;
			if ((font.disableFontFace || isAddToPathSet || patternFill || patternStroke) && !font.missingFile) {
				path$1 = font.getPathGenerator(this.commonObjs, character);
			}
			if (path$1 && (font.disableFontFace || patternFill || patternStroke)) {
				ctx.save();
				ctx.translate(x$2, y$3);
				ctx.scale(fontSize, -fontSize);
				this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, font);
				let currentTransform;
				if (fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE) {
					if (patternFillTransform) {
						currentTransform = ctx.getTransform();
						ctx.setTransform(...patternFillTransform);
						const scaledPath = this.#getScaledPath(path$1, currentTransform, patternFillTransform);
						ctx.fill(scaledPath);
					} else {
						ctx.fill(path$1);
					}
				}
				if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {
					if (patternStrokeTransform) {
						currentTransform ||= ctx.getTransform();
						ctx.setTransform(...patternStrokeTransform);
						const { a: a$2, b: b$3, c: c$7, d: d$5 } = currentTransform;
						const invPatternTransform = Util.inverseTransform(patternStrokeTransform);
						const transf = Util.transform([
							a$2,
							b$3,
							c$7,
							d$5,
							0,
							0
						], invPatternTransform);
						Util.singularValueDecompose2dScale(transf, XY);
						ctx.lineWidth *= Math.max(XY[0], XY[1]) / fontSize;
						ctx.stroke(this.#getScaledPath(path$1, currentTransform, patternStrokeTransform));
					} else {
						ctx.lineWidth /= fontSize;
						ctx.stroke(path$1);
					}
				}
				ctx.restore();
			} else {
				if (fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE) {
					ctx.fillText(character, x$2, y$3);
					this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, font, fontSize, x$2, y$3, () => ctx.measureText(character));
				}
				if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {
					if (this.dependencyTracker) {
						this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, font, fontSize, x$2, y$3, () => ctx.measureText(character)).recordDependencies(opIdx, Dependencies.stroke);
					}
					ctx.strokeText(character, x$2, y$3);
				}
			}
			if (isAddToPathSet) {
				const paths = this.pendingTextPaths ||= [];
				paths.push({
					transform: getCurrentTransform(ctx),
					x: x$2,
					y: y$3,
					fontSize,
					path: path$1
				});
				this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, font, fontSize, x$2, y$3);
			}
		}
		get isFontSubpixelAAEnabled() {
			const { context: ctx } = this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled", 10, 10);
			ctx.scale(1.5, 1);
			ctx.fillText("I", 0, 10);
			const data = ctx.getImageData(0, 0, 10, 10).data;
			let enabled = false;
			for (let i$7 = 3; i$7 < data.length; i$7 += 4) {
				if (data[i$7] > 0 && data[i$7] < 255) {
					enabled = true;
					break;
				}
			}
			return shadow(this, "isFontSubpixelAAEnabled", enabled);
		}
		showText(opIdx, glyphs) {
			if (this.dependencyTracker) {
				this.dependencyTracker.recordDependencies(opIdx, Dependencies.showText).resetBBox(opIdx);
				if (this.current.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG) {
					this.dependencyTracker.recordFutureForcedDependency("textClip", opIdx).inheritPendingDependenciesAsFutureForcedDependencies();
				}
			}
			const current = this.current;
			const font = current.font;
			if (font.isType3Font) {
				this.showType3Text(opIdx, glyphs);
				this.dependencyTracker?.recordShowTextOperation(opIdx);
				return undefined;
			}
			const fontSize = current.fontSize;
			if (fontSize === 0) {
				this.dependencyTracker?.recordOperation(opIdx);
				return undefined;
			}
			const ctx = this.ctx;
			const fontSizeScale = current.fontSizeScale;
			const charSpacing = current.charSpacing;
			const wordSpacing = current.wordSpacing;
			const fontDirection = current.fontDirection;
			const textHScale = current.textHScale * fontDirection;
			const glyphsLength = glyphs.length;
			const vertical = font.vertical;
			const spacingDir = vertical ? 1 : -1;
			const defaultVMetrics = font.defaultVMetrics;
			const widthAdvanceScale = fontSize * current.fontMatrix[0];
			const simpleFillText = current.textRenderingMode === TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;
			ctx.save();
			if (current.textMatrix) {
				ctx.transform(...current.textMatrix);
			}
			ctx.translate(current.x, current.y + current.textRise);
			if (fontDirection > 0) {
				ctx.scale(textHScale, -1);
			} else {
				ctx.scale(textHScale, 1);
			}
			let patternFillTransform, patternStrokeTransform;
			if (current.patternFill) {
				ctx.save();
				const pattern = current.fillColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.FILL, opIdx);
				patternFillTransform = getCurrentTransform(ctx);
				ctx.restore();
				ctx.fillStyle = pattern;
			}
			if (current.patternStroke) {
				ctx.save();
				const pattern = current.strokeColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.STROKE, opIdx);
				patternStrokeTransform = getCurrentTransform(ctx);
				ctx.restore();
				ctx.strokeStyle = pattern;
			}
			let lineWidth = current.lineWidth;
			const scale = current.textMatrixScale;
			if (scale === 0 || lineWidth === 0) {
				const fillStrokeMode = current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;
				if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {
					lineWidth = this.getSinglePixelWidth();
				}
			} else {
				lineWidth /= scale;
			}
			if (fontSizeScale !== 1) {
				ctx.scale(fontSizeScale, fontSizeScale);
				lineWidth /= fontSizeScale;
			}
			ctx.lineWidth = lineWidth;
			if (font.isInvalidPDFjsFont) {
				const chars = [];
				let width = 0;
				for (const glyph of glyphs) {
					chars.push(glyph.unicode);
					width += glyph.width;
				}
				const joinedChars = chars.join("");
				ctx.fillText(joinedChars, 0, 0);
				if (this.dependencyTracker !== null) {
					const measure = ctx.measureText(joinedChars);
					this.dependencyTracker.recordBBox(opIdx, this.ctx, -measure.actualBoundingBoxLeft, measure.actualBoundingBoxRight, -measure.actualBoundingBoxAscent, measure.actualBoundingBoxDescent).recordShowTextOperation(opIdx);
				}
				current.x += width * widthAdvanceScale * textHScale;
				ctx.restore();
				this.compose();
				return undefined;
			}
			let x$2 = 0, i$7;
			for (i$7 = 0; i$7 < glyphsLength; ++i$7) {
				const glyph = glyphs[i$7];
				if (typeof glyph === "number") {
					x$2 += spacingDir * glyph * fontSize / 1e3;
					continue;
				}
				let restoreNeeded = false;
				const spacing$1 = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
				const character = glyph.fontChar;
				const accent$1 = glyph.accent;
				let scaledX, scaledY;
				let width = glyph.width;
				if (vertical) {
					const vmetric = glyph.vmetric || defaultVMetrics;
					const vx = -(glyph.vmetric ? vmetric[1] : width * .5) * widthAdvanceScale;
					const vy = vmetric[2] * widthAdvanceScale;
					width = vmetric ? -vmetric[0] : width;
					scaledX = vx / fontSizeScale;
					scaledY = (x$2 + vy) / fontSizeScale;
				} else {
					scaledX = x$2 / fontSizeScale;
					scaledY = 0;
				}
				let measure;
				if (font.remeasure && width > 0) {
					measure = ctx.measureText(character);
					const measuredWidth = measure.width * 1e3 / fontSize * fontSizeScale;
					if (width < measuredWidth && this.isFontSubpixelAAEnabled) {
						const characterScaleX = width / measuredWidth;
						restoreNeeded = true;
						ctx.save();
						ctx.scale(characterScaleX, 1);
						scaledX /= characterScaleX;
					} else if (width !== measuredWidth) {
						scaledX += (width - measuredWidth) / 2e3 * fontSize / fontSizeScale;
					}
				}
				if (this.contentVisible && (glyph.isInFont || font.missingFile)) {
					if (simpleFillText && !accent$1) {
						ctx.fillText(character, scaledX, scaledY);
						this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, measure ? { bbox: null } : font, fontSize / fontSizeScale, scaledX, scaledY, () => measure ?? ctx.measureText(character));
					} else {
						this.paintChar(opIdx, character, scaledX, scaledY, patternFillTransform, patternStrokeTransform);
						if (accent$1) {
							const scaledAccentX = scaledX + fontSize * accent$1.offset.x / fontSizeScale;
							const scaledAccentY = scaledY - fontSize * accent$1.offset.y / fontSizeScale;
							this.paintChar(opIdx, accent$1.fontChar, scaledAccentX, scaledAccentY, patternFillTransform, patternStrokeTransform);
						}
					}
				}
				const charWidth = vertical ? width * widthAdvanceScale - spacing$1 * fontDirection : width * widthAdvanceScale + spacing$1 * fontDirection;
				x$2 += charWidth;
				if (restoreNeeded) {
					ctx.restore();
				}
			}
			if (vertical) {
				current.y -= x$2;
			} else {
				current.x += x$2 * textHScale;
			}
			ctx.restore();
			this.compose();
			this.dependencyTracker?.recordShowTextOperation(opIdx);
			return undefined;
		}
		showType3Text(opIdx, glyphs) {
			const ctx = this.ctx;
			const current = this.current;
			const font = current.font;
			const fontSize = current.fontSize;
			const fontDirection = current.fontDirection;
			const spacingDir = font.vertical ? 1 : -1;
			const charSpacing = current.charSpacing;
			const wordSpacing = current.wordSpacing;
			const textHScale = current.textHScale * fontDirection;
			const fontMatrix = current.fontMatrix || FONT_IDENTITY_MATRIX;
			const glyphsLength = glyphs.length;
			const isTextInvisible = current.textRenderingMode === TextRenderingMode.INVISIBLE;
			let i$7, glyph, width, spacingLength;
			if (isTextInvisible || fontSize === 0) {
				return;
			}
			this._cachedScaleForStroking[0] = -1;
			this._cachedGetSinglePixelWidth = null;
			ctx.save();
			if (current.textMatrix) {
				ctx.transform(...current.textMatrix);
			}
			ctx.translate(current.x, current.y + current.textRise);
			ctx.scale(textHScale, fontDirection);
			const dependencyTracker = this.dependencyTracker;
			this.dependencyTracker = dependencyTracker ? new CanvasNestedDependencyTracker(dependencyTracker, opIdx) : null;
			for (i$7 = 0; i$7 < glyphsLength; ++i$7) {
				glyph = glyphs[i$7];
				if (typeof glyph === "number") {
					spacingLength = spacingDir * glyph * fontSize / 1e3;
					this.ctx.translate(spacingLength, 0);
					current.x += spacingLength * textHScale;
					continue;
				}
				const spacing$1 = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
				const operatorList = font.charProcOperatorList[glyph.operatorListId];
				if (!operatorList) {
					warn$2(`Type3 character "${glyph.operatorListId}" is not available.`);
				} else if (this.contentVisible) {
					this.save();
					ctx.scale(fontSize, fontSize);
					ctx.transform(...fontMatrix);
					this.executeOperatorList(operatorList);
					this.restore();
				}
				const p$3 = [glyph.width, 0];
				Util.applyTransform(p$3, fontMatrix);
				width = p$3[0] * fontSize + spacing$1;
				ctx.translate(width, 0);
				current.x += width * textHScale;
			}
			ctx.restore();
			if (dependencyTracker) {
				this.dependencyTracker = dependencyTracker;
			}
		}
		setCharWidth(opIdx, xWidth, yWidth) {}
		setCharWidthAndBounds(opIdx, xWidth, yWidth, llx, lly, urx, ury) {
			const clip = new Path2D();
			clip.rect(llx, lly, urx - llx, ury - lly);
			this.ctx.clip(clip);
			this.dependencyTracker?.recordBBox(opIdx, this.ctx, llx, urx, lly, ury).recordClipBox(opIdx, this.ctx, llx, urx, lly, ury);
			this.endPath(opIdx);
		}
		getColorN_Pattern(opIdx, IR) {
			let pattern;
			if (IR[0] === "TilingPattern") {
				const baseTransform = this.baseTransform || getCurrentTransform(this.ctx);
				const canvasGraphicsFactory = { createCanvasGraphics: (ctx, renderingOpIdx) => new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {
					optionalContentConfig: this.optionalContentConfig,
					markedContentStack: this.markedContentStack
				}, undefined, undefined, this.dependencyTracker ? new CanvasNestedDependencyTracker(this.dependencyTracker, renderingOpIdx, true) : null) };
				pattern = new TilingPattern(IR, this.ctx, canvasGraphicsFactory, baseTransform);
			} else {
				pattern = this._getPattern(opIdx, IR[1], IR[2]);
			}
			return pattern;
		}
		setStrokeColorN(opIdx, ...args) {
			this.dependencyTracker?.recordSimpleData("strokeColor", opIdx);
			this.current.strokeColor = this.getColorN_Pattern(opIdx, args);
			this.current.patternStroke = true;
		}
		setFillColorN(opIdx, ...args) {
			this.dependencyTracker?.recordSimpleData("fillColor", opIdx);
			this.current.fillColor = this.getColorN_Pattern(opIdx, args);
			this.current.patternFill = true;
		}
		setStrokeRGBColor(opIdx, color) {
			this.dependencyTracker?.recordSimpleData("strokeColor", opIdx);
			this.ctx.strokeStyle = this.current.strokeColor = color;
			this.current.patternStroke = false;
		}
		setStrokeTransparent(opIdx) {
			this.dependencyTracker?.recordSimpleData("strokeColor", opIdx);
			this.ctx.strokeStyle = this.current.strokeColor = "transparent";
			this.current.patternStroke = false;
		}
		setFillRGBColor(opIdx, color) {
			this.dependencyTracker?.recordSimpleData("fillColor", opIdx);
			this.ctx.fillStyle = this.current.fillColor = color;
			this.current.patternFill = false;
		}
		setFillTransparent(opIdx) {
			this.dependencyTracker?.recordSimpleData("fillColor", opIdx);
			this.ctx.fillStyle = this.current.fillColor = "transparent";
			this.current.patternFill = false;
		}
		_getPattern(opIdx, objId, matrix = null) {
			let pattern;
			if (this.cachedPatterns.has(objId)) {
				pattern = this.cachedPatterns.get(objId);
			} else {
				pattern = getShadingPattern(this.getObject(opIdx, objId));
				this.cachedPatterns.set(objId, pattern);
			}
			if (matrix) {
				pattern.matrix = matrix;
			}
			return pattern;
		}
		shadingFill(opIdx, objId) {
			if (!this.contentVisible) {
				return;
			}
			const ctx = this.ctx;
			this.save(opIdx);
			const pattern = this._getPattern(opIdx, objId);
			ctx.fillStyle = pattern.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.SHADING, opIdx);
			const inv = getCurrentTransformInverse(ctx);
			if (inv) {
				const { width, height } = ctx.canvas;
				const minMax = MIN_MAX_INIT.slice();
				Util.axialAlignedBoundingBox([
					0,
					0,
					width,
					height
				], inv, minMax);
				const [x0, y0, x1, y1] = minMax;
				this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);
			} else {
				this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);
			}
			this.dependencyTracker?.resetBBox(opIdx).recordFullPageBBox(opIdx).recordDependencies(opIdx, Dependencies.transform).recordDependencies(opIdx, Dependencies.fill).recordOperation(opIdx);
			this.compose(this.current.getClippedPathBoundingBox());
			this.restore(opIdx);
		}
		beginInlineImage() {
			unreachable("Should not call beginInlineImage");
		}
		beginImageData() {
			unreachable("Should not call beginImageData");
		}
		paintFormXObjectBegin(opIdx, matrix, bbox) {
			if (!this.contentVisible) {
				return;
			}
			this.save(opIdx);
			this.baseTransformStack.push(this.baseTransform);
			if (matrix) {
				this.transform(opIdx, ...matrix);
			}
			this.baseTransform = getCurrentTransform(this.ctx);
			if (bbox) {
				Util.axialAlignedBoundingBox(bbox, this.baseTransform, this.current.minMax);
				const [x0, y0, x1, y1] = bbox;
				const clip = new Path2D();
				clip.rect(x0, y0, x1 - x0, y1 - y0);
				this.ctx.clip(clip);
				this.dependencyTracker?.recordClipBox(opIdx, this.ctx, x0, x1, y0, y1);
				this.endPath(opIdx);
			}
		}
		paintFormXObjectEnd(opIdx) {
			if (!this.contentVisible) {
				return;
			}
			this.restore(opIdx);
			this.baseTransform = this.baseTransformStack.pop();
		}
		beginGroup(opIdx, group) {
			if (!this.contentVisible) {
				return;
			}
			this.save(opIdx);
			if (this.inSMaskMode) {
				this.endSMaskMode();
				this.current.activeSMask = null;
			}
			const currentCtx = this.ctx;
			if (!group.isolated) {
				info("TODO: Support non-isolated groups.");
			}
			if (group.knockout) {
				warn$2("Knockout groups not supported.");
			}
			const currentTransform = getCurrentTransform(currentCtx);
			if (group.matrix) {
				currentCtx.transform(...group.matrix);
			}
			if (!group.bbox) {
				throw new Error("Bounding box is required.");
			}
			let bounds = MIN_MAX_INIT.slice();
			Util.axialAlignedBoundingBox(group.bbox, getCurrentTransform(currentCtx), bounds);
			const canvasBounds = [
				0,
				0,
				currentCtx.canvas.width,
				currentCtx.canvas.height
			];
			bounds = Util.intersect(bounds, canvasBounds) || [
				0,
				0,
				0,
				0
			];
			const offsetX = Math.floor(bounds[0]);
			const offsetY = Math.floor(bounds[1]);
			const drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);
			const drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);
			this.current.startNewPathAndClipBox([
				0,
				0,
				drawnWidth,
				drawnHeight
			]);
			let cacheId = "groupAt" + this.groupLevel;
			if (group.smask) {
				cacheId += "_smask_" + this.smaskCounter++ % 2;
			}
			const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);
			const groupCtx = scratchCanvas.context;
			groupCtx.translate(-offsetX, -offsetY);
			groupCtx.transform(...currentTransform);
			let clip = new Path2D();
			const [x0, y0, x1, y1] = group.bbox;
			clip.rect(x0, y0, x1 - x0, y1 - y0);
			if (group.matrix) {
				const path$1 = new Path2D();
				path$1.addPath(clip, new DOMMatrix(group.matrix));
				clip = path$1;
			}
			groupCtx.clip(clip);
			if (group.smask) {
				this.smaskStack.push({
					canvas: scratchCanvas.canvas,
					context: groupCtx,
					offsetX,
					offsetY,
					subtype: group.smask.subtype,
					backdrop: group.smask.backdrop,
					transferMap: group.smask.transferMap || null,
					startTransformInverse: null
				});
			}
			if (!group.smask || this.dependencyTracker) {
				currentCtx.setTransform(1, 0, 0, 1, 0, 0);
				currentCtx.translate(offsetX, offsetY);
				currentCtx.save();
			}
			copyCtxState(currentCtx, groupCtx);
			this.ctx = groupCtx;
			this.dependencyTracker?.inheritSimpleDataAsFutureForcedDependencies([
				"fillAlpha",
				"strokeAlpha",
				"globalCompositeOperation"
			]).pushBaseTransform(currentCtx);
			this.setGState(opIdx, [
				["BM", "source-over"],
				["ca", 1],
				["CA", 1]
			]);
			this.groupStack.push(currentCtx);
			this.groupLevel++;
		}
		endGroup(opIdx, group) {
			if (!this.contentVisible) {
				return;
			}
			this.groupLevel--;
			const groupCtx = this.ctx;
			const ctx = this.groupStack.pop();
			this.ctx = ctx;
			this.ctx.imageSmoothingEnabled = false;
			this.dependencyTracker?.popBaseTransform();
			if (group.smask) {
				this.tempSMask = this.smaskStack.pop();
				this.restore(opIdx);
				if (this.dependencyTracker) {
					this.ctx.restore();
				}
			} else {
				this.ctx.restore();
				const currentMtx = getCurrentTransform(this.ctx);
				this.restore(opIdx);
				this.ctx.save();
				this.ctx.setTransform(...currentMtx);
				const dirtyBox = MIN_MAX_INIT.slice();
				Util.axialAlignedBoundingBox([
					0,
					0,
					groupCtx.canvas.width,
					groupCtx.canvas.height
				], currentMtx, dirtyBox);
				this.ctx.drawImage(groupCtx.canvas, 0, 0);
				this.ctx.restore();
				this.compose(dirtyBox);
			}
		}
		beginAnnotation(opIdx, id, rect, transform, matrix, hasOwnCanvas) {
			this.#restoreInitialState();
			resetCtxToDefault(this.ctx);
			this.ctx.save();
			this.save(opIdx);
			if (this.baseTransform) {
				this.ctx.setTransform(...this.baseTransform);
			}
			if (rect) {
				const width = rect[2] - rect[0];
				const height = rect[3] - rect[1];
				if (hasOwnCanvas && this.annotationCanvasMap) {
					transform = transform.slice();
					transform[4] -= rect[0];
					transform[5] -= rect[1];
					rect = rect.slice();
					rect[0] = rect[1] = 0;
					rect[2] = width;
					rect[3] = height;
					Util.singularValueDecompose2dScale(getCurrentTransform(this.ctx), XY);
					const { viewportScale } = this;
					const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale);
					const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale);
					this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight);
					const { canvas, context } = this.annotationCanvas;
					this.annotationCanvasMap.set(id, canvas);
					this.annotationCanvas.savedCtx = this.ctx;
					this.ctx = context;
					this.ctx.save();
					this.ctx.setTransform(XY[0], 0, 0, -XY[1], 0, height * XY[1]);
					resetCtxToDefault(this.ctx);
				} else {
					resetCtxToDefault(this.ctx);
					this.endPath(opIdx);
					const clip = new Path2D();
					clip.rect(rect[0], rect[1], width, height);
					this.ctx.clip(clip);
				}
			}
			this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);
			this.transform(opIdx, ...transform);
			this.transform(opIdx, ...matrix);
		}
		endAnnotation(opIdx) {
			if (this.annotationCanvas) {
				this.ctx.restore();
				this.#drawFilter();
				this.ctx = this.annotationCanvas.savedCtx;
				delete this.annotationCanvas.savedCtx;
				delete this.annotationCanvas;
			}
		}
		paintImageMaskXObject(opIdx, img) {
			if (!this.contentVisible) {
				return;
			}
			const count = img.count;
			img = this.getObject(opIdx, img.data, img);
			img.count = count;
			const ctx = this.ctx;
			const mask = this._createMaskCanvas(opIdx, img);
			const maskCanvas = mask.canvas;
			ctx.save();
			ctx.setTransform(1, 0, 0, 1, 0, 0);
			ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);
			this.dependencyTracker?.resetBBox(opIdx).recordBBox(opIdx, this.ctx, mask.offsetX, mask.offsetX + maskCanvas.width, mask.offsetY, mask.offsetY + maskCanvas.height).recordOperation(opIdx);
			ctx.restore();
			this.compose();
		}
		paintImageMaskXObjectRepeat(opIdx, img, scaleX, skewX = 0, skewY = 0, scaleY, positions) {
			if (!this.contentVisible) {
				return;
			}
			img = this.getObject(opIdx, img.data, img);
			const ctx = this.ctx;
			ctx.save();
			const currentTransform = getCurrentTransform(ctx);
			ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);
			const mask = this._createMaskCanvas(opIdx, img);
			ctx.setTransform(1, 0, 0, 1, mask.offsetX - currentTransform[4], mask.offsetY - currentTransform[5]);
			this.dependencyTracker?.resetBBox(opIdx);
			for (let i$7 = 0, ii = positions.length; i$7 < ii; i$7 += 2) {
				const trans = Util.transform(currentTransform, [
					scaleX,
					skewX,
					skewY,
					scaleY,
					positions[i$7],
					positions[i$7 + 1]
				]);
				ctx.drawImage(mask.canvas, trans[4], trans[5]);
				this.dependencyTracker?.recordBBox(opIdx, this.ctx, trans[4], trans[4] + mask.canvas.width, trans[5], trans[5] + mask.canvas.height);
			}
			ctx.restore();
			this.compose();
			this.dependencyTracker?.recordOperation(opIdx);
		}
		paintImageMaskXObjectGroup(opIdx, images) {
			if (!this.contentVisible) {
				return;
			}
			const ctx = this.ctx;
			const fillColor = this.current.fillColor;
			const isPatternFill = this.current.patternFill;
			this.dependencyTracker?.resetBBox(opIdx).recordDependencies(opIdx, Dependencies.transformAndFill);
			for (const image of images) {
				const { data, width, height, transform } = image;
				const maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height);
				const maskCtx = maskCanvas.context;
				maskCtx.save();
				const img = this.getObject(opIdx, data, image);
				putBinaryImageMask(maskCtx, img);
				maskCtx.globalCompositeOperation = "source-in";
				maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, getCurrentTransformInverse(ctx), PathType.FILL, opIdx) : fillColor;
				maskCtx.fillRect(0, 0, width, height);
				maskCtx.restore();
				ctx.save();
				ctx.transform(...transform);
				ctx.scale(1, -1);
				drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);
				this.dependencyTracker?.recordBBox(opIdx, ctx, 0, width, 0, height);
				ctx.restore();
			}
			this.compose();
			this.dependencyTracker?.recordOperation(opIdx);
		}
		paintImageXObject(opIdx, objId) {
			if (!this.contentVisible) {
				return;
			}
			const imgData = this.getObject(opIdx, objId);
			if (!imgData) {
				warn$2("Dependent image isn't ready yet");
				return;
			}
			this.paintInlineImageXObject(opIdx, imgData);
		}
		paintImageXObjectRepeat(opIdx, objId, scaleX, scaleY, positions) {
			if (!this.contentVisible) {
				return;
			}
			const imgData = this.getObject(opIdx, objId);
			if (!imgData) {
				warn$2("Dependent image isn't ready yet");
				return;
			}
			const width = imgData.width;
			const height = imgData.height;
			const map$2 = [];
			for (let i$7 = 0, ii = positions.length; i$7 < ii; i$7 += 2) {
				map$2.push({
					transform: [
						scaleX,
						0,
						0,
						scaleY,
						positions[i$7],
						positions[i$7 + 1]
					],
					x: 0,
					y: 0,
					w: width,
					h: height
				});
			}
			this.paintInlineImageXObjectGroup(opIdx, imgData, map$2);
		}
		applyTransferMapsToCanvas(ctx) {
			if (this.current.transferMaps !== "none") {
				ctx.filter = this.current.transferMaps;
				ctx.drawImage(ctx.canvas, 0, 0);
				ctx.filter = "none";
			}
			return ctx.canvas;
		}
		applyTransferMapsToBitmap(imgData) {
			if (this.current.transferMaps === "none") {
				return imgData.bitmap;
			}
			const { bitmap, width, height } = imgData;
			const tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", width, height);
			const tmpCtx = tmpCanvas.context;
			tmpCtx.filter = this.current.transferMaps;
			tmpCtx.drawImage(bitmap, 0, 0);
			tmpCtx.filter = "none";
			return tmpCanvas.canvas;
		}
		paintInlineImageXObject(opIdx, imgData) {
			if (!this.contentVisible) {
				return;
			}
			const width = imgData.width;
			const height = imgData.height;
			const ctx = this.ctx;
			this.save(opIdx);
			const { filter } = ctx;
			if (filter !== "none" && filter !== "") {
				ctx.filter = "none";
			}
			ctx.scale(1 / width, -1 / height);
			let imgToPaint;
			if (imgData.bitmap) {
				imgToPaint = this.applyTransferMapsToBitmap(imgData);
			} else if (typeof HTMLElement === "function" && imgData instanceof HTMLElement || !imgData.data) {
				imgToPaint = imgData;
			} else {
				const tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", width, height);
				const tmpCtx = tmpCanvas.context;
				putBinaryImageData(tmpCtx, imgData);
				imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);
			}
			const scaled = this._scaleImage(imgToPaint, getCurrentTransformInverse(ctx));
			ctx.imageSmoothingEnabled = getImageSmoothingEnabled(getCurrentTransform(ctx), imgData.interpolate);
			this.dependencyTracker?.resetBBox(opIdx).recordBBox(opIdx, ctx, 0, width, -height, 0).recordDependencies(opIdx, Dependencies.imageXObject).recordOperation(opIdx);
			drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);
			this.compose();
			this.restore(opIdx);
		}
		paintInlineImageXObjectGroup(opIdx, imgData, map$2) {
			if (!this.contentVisible) {
				return;
			}
			const ctx = this.ctx;
			let imgToPaint;
			if (imgData.bitmap) {
				imgToPaint = imgData.bitmap;
			} else {
				const w$2 = imgData.width;
				const h$5 = imgData.height;
				const tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", w$2, h$5);
				const tmpCtx = tmpCanvas.context;
				putBinaryImageData(tmpCtx, imgData);
				imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);
			}
			this.dependencyTracker?.resetBBox(opIdx);
			for (const entry of map$2) {
				ctx.save();
				ctx.transform(...entry.transform);
				ctx.scale(1, -1);
				drawImageAtIntegerCoords(ctx, imgToPaint, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);
				this.dependencyTracker?.recordBBox(opIdx, ctx, 0, 1, -1, 0);
				ctx.restore();
			}
			this.dependencyTracker?.recordOperation(opIdx);
			this.compose();
		}
		paintSolidColorImageMask(opIdx) {
			if (!this.contentVisible) {
				return;
			}
			this.dependencyTracker?.resetBBox(opIdx).recordBBox(opIdx, this.ctx, 0, 1, 0, 1).recordDependencies(opIdx, Dependencies.fill).recordOperation(opIdx);
			this.ctx.fillRect(0, 0, 1, 1);
			this.compose();
		}
		markPoint(opIdx, tag) {}
		markPointProps(opIdx, tag, properties$1) {}
		beginMarkedContent(opIdx, tag) {
			this.dependencyTracker?.beginMarkedContent(opIdx);
			this.markedContentStack.push({ visible: true });
		}
		beginMarkedContentProps(opIdx, tag, properties$1) {
			this.dependencyTracker?.beginMarkedContent(opIdx);
			if (tag === "OC") {
				this.markedContentStack.push({ visible: this.optionalContentConfig.isVisible(properties$1) });
			} else {
				this.markedContentStack.push({ visible: true });
			}
			this.contentVisible = this.isContentVisible();
		}
		endMarkedContent(opIdx) {
			this.dependencyTracker?.endMarkedContent(opIdx);
			this.markedContentStack.pop();
			this.contentVisible = this.isContentVisible();
		}
		beginCompat(opIdx) {}
		endCompat(opIdx) {}
		consumePath(opIdx, path$1, clipBox) {
			const isEmpty = this.current.isEmptyClip();
			if (this.pendingClip) {
				this.current.updateClipFromPath();
			}
			if (!this.pendingClip) {
				this.compose(clipBox);
			}
			const ctx = this.ctx;
			if (this.pendingClip) {
				if (!isEmpty) {
					if (this.pendingClip === EO_CLIP) {
						ctx.clip(path$1, "evenodd");
					} else {
						ctx.clip(path$1);
					}
				}
				this.pendingClip = null;
				this.dependencyTracker?.bboxToClipBoxDropOperation(opIdx).recordFutureForcedDependency("clipPath", opIdx);
			} else {
				this.dependencyTracker?.recordOperation(opIdx);
			}
			this.current.startNewPathAndClipBox(this.current.clipBox);
		}
		getSinglePixelWidth() {
			if (!this._cachedGetSinglePixelWidth) {
				const m$3 = getCurrentTransform(this.ctx);
				if (m$3[1] === 0 && m$3[2] === 0) {
					this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m$3[0]), Math.abs(m$3[3]));
				} else {
					const absDet = Math.abs(m$3[0] * m$3[3] - m$3[2] * m$3[1]);
					const normX = Math.hypot(m$3[0], m$3[2]);
					const normY = Math.hypot(m$3[1], m$3[3]);
					this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;
				}
			}
			return this._cachedGetSinglePixelWidth;
		}
		getScaleForStroking() {
			if (this._cachedScaleForStroking[0] === -1) {
				const { lineWidth } = this.current;
				const { a: a$2, b: b$3, c: c$7, d: d$5 } = this.ctx.getTransform();
				let scaleX, scaleY;
				if (b$3 === 0 && c$7 === 0) {
					const normX = Math.abs(a$2);
					const normY = Math.abs(d$5);
					if (normX === normY) {
						if (lineWidth === 0) {
							scaleX = scaleY = 1 / normX;
						} else {
							const scaledLineWidth = normX * lineWidth;
							scaleX = scaleY = scaledLineWidth < 1 ? 1 / scaledLineWidth : 1;
						}
					} else if (lineWidth === 0) {
						scaleX = 1 / normX;
						scaleY = 1 / normY;
					} else {
						const scaledXLineWidth = normX * lineWidth;
						const scaledYLineWidth = normY * lineWidth;
						scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;
						scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;
					}
				} else {
					const absDet = Math.abs(a$2 * d$5 - b$3 * c$7);
					const normX = Math.hypot(a$2, b$3);
					const normY = Math.hypot(c$7, d$5);
					if (lineWidth === 0) {
						scaleX = normY / absDet;
						scaleY = normX / absDet;
					} else {
						const baseArea = lineWidth * absDet;
						scaleX = normY > baseArea ? normY / baseArea : 1;
						scaleY = normX > baseArea ? normX / baseArea : 1;
					}
				}
				this._cachedScaleForStroking[0] = scaleX;
				this._cachedScaleForStroking[1] = scaleY;
			}
			return this._cachedScaleForStroking;
		}
		rescaleAndStroke(path$1, saveRestore) {
			const { ctx, current: { lineWidth } } = this;
			const [scaleX, scaleY] = this.getScaleForStroking();
			if (scaleX === scaleY) {
				ctx.lineWidth = (lineWidth || 1) * scaleX;
				ctx.stroke(path$1);
				return;
			}
			const dashes = ctx.getLineDash();
			if (saveRestore) {
				ctx.save();
			}
			ctx.scale(scaleX, scaleY);
			SCALE_MATRIX.a = 1 / scaleX;
			SCALE_MATRIX.d = 1 / scaleY;
			const newPath = new Path2D();
			newPath.addPath(path$1, SCALE_MATRIX);
			if (dashes.length > 0) {
				const scale = Math.max(scaleX, scaleY);
				ctx.setLineDash(dashes.map((x$2) => x$2 / scale));
				ctx.lineDashOffset /= scale;
			}
			ctx.lineWidth = lineWidth || 1;
			ctx.stroke(newPath);
			if (saveRestore) {
				ctx.restore();
			}
		}
		isContentVisible() {
			for (let i$7 = this.markedContentStack.length - 1; i$7 >= 0; i$7--) {
				if (!this.markedContentStack[i$7].visible) {
					return false;
				}
			}
			return true;
		}
	};
	for (const op$1 in OPS) {
		if (CanvasGraphics.prototype[op$1] !== undefined) {
			CanvasGraphics.prototype[OPS[op$1]] = CanvasGraphics.prototype[op$1];
		}
	}
	;
	GlobalWorkerOptions = class {
		static #port = null;
		static #src = "";
		static get workerPort() {
			return this.#port;
		}
		static set workerPort(val$1) {
			if (!(typeof Worker !== "undefined" && val$1 instanceof Worker) && val$1 !== null) {
				throw new Error("Invalid `workerPort` type.");
			}
			this.#port = val$1;
		}
		static get workerSrc() {
			return this.#src;
		}
		static set workerSrc(val$1) {
			if (typeof val$1 !== "string") {
				throw new Error("Invalid `workerSrc` type.");
			}
			this.#src = val$1;
		}
	};
	;
	Metadata = class {
		#map;
		#data;
		constructor({ parsedData, rawData }) {
			this.#map = parsedData;
			this.#data = rawData;
		}
		getRaw() {
			return this.#data;
		}
		get(name) {
			return this.#map.get(name) ?? null;
		}
		[Symbol.iterator]() {
			return this.#map.entries();
		}
	};
	;
	INTERNAL = Symbol("INTERNAL");
	OptionalContentGroup = class {
		#isDisplay = false;
		#isPrint = false;
		#userSet = false;
		#visible = true;
		constructor(renderingIntent, { name, intent, usage, rbGroups }) {
			this.#isDisplay = !!(renderingIntent & RenderingIntentFlag.DISPLAY);
			this.#isPrint = !!(renderingIntent & RenderingIntentFlag.PRINT);
			this.name = name;
			this.intent = intent;
			this.usage = usage;
			this.rbGroups = rbGroups;
		}
		get visible() {
			if (this.#userSet) {
				return this.#visible;
			}
			if (!this.#visible) {
				return false;
			}
			const { print, view } = this.usage;
			if (this.#isDisplay) {
				return view?.viewState !== "OFF";
			} else if (this.#isPrint) {
				return print?.printState !== "OFF";
			}
			return true;
		}
		_setVisible(internal, visible, userSet = false) {
			if (internal !== INTERNAL) {
				unreachable("Internal method `_setVisible` called.");
			}
			this.#userSet = userSet;
			this.#visible = visible;
		}
	};
	OptionalContentConfig = class {
		#cachedGetHash = null;
		#groups = new Map();
		#initialHash = null;
		#order = null;
		constructor(data, renderingIntent = RenderingIntentFlag.DISPLAY) {
			this.renderingIntent = renderingIntent;
			this.name = null;
			this.creator = null;
			if (data === null) {
				return;
			}
			this.name = data.name;
			this.creator = data.creator;
			this.#order = data.order;
			for (const group of data.groups) {
				this.#groups.set(group.id, new OptionalContentGroup(renderingIntent, group));
			}
			if (data.baseState === "OFF") {
				for (const group of this.#groups.values()) {
					group._setVisible(INTERNAL, false);
				}
			}
			for (const on of data.on) {
				this.#groups.get(on)._setVisible(INTERNAL, true);
			}
			for (const off of data.off) {
				this.#groups.get(off)._setVisible(INTERNAL, false);
			}
			this.#initialHash = this.getHash();
		}
		#evaluateVisibilityExpression(array) {
			const length = array.length;
			if (length < 2) {
				return true;
			}
			const operator$1 = array[0];
			for (let i$7 = 1; i$7 < length; i$7++) {
				const element = array[i$7];
				let state$1;
				if (Array.isArray(element)) {
					state$1 = this.#evaluateVisibilityExpression(element);
				} else if (this.#groups.has(element)) {
					state$1 = this.#groups.get(element).visible;
				} else {
					warn$2(`Optional content group not found: ${element}`);
					return true;
				}
				switch (operator$1) {
					case "And":
						if (!state$1) {
							return false;
						}
						break;
					case "Or":
						if (state$1) {
							return true;
						}
						break;
					case "Not": return !state$1;
					default: return true;
				}
			}
			return operator$1 === "And";
		}
		isVisible(group) {
			if (this.#groups.size === 0) {
				return true;
			}
			if (!group) {
				info("Optional content group not defined.");
				return true;
			}
			if (group.type === "OCG") {
				if (!this.#groups.has(group.id)) {
					warn$2(`Optional content group not found: ${group.id}`);
					return true;
				}
				return this.#groups.get(group.id).visible;
			} else if (group.type === "OCMD") {
				if (group.expression) {
					return this.#evaluateVisibilityExpression(group.expression);
				}
				if (!group.policy || group.policy === "AnyOn") {
					for (const id of group.ids) {
						if (!this.#groups.has(id)) {
							warn$2(`Optional content group not found: ${id}`);
							return true;
						}
						if (this.#groups.get(id).visible) {
							return true;
						}
					}
					return false;
				} else if (group.policy === "AllOn") {
					for (const id of group.ids) {
						if (!this.#groups.has(id)) {
							warn$2(`Optional content group not found: ${id}`);
							return true;
						}
						if (!this.#groups.get(id).visible) {
							return false;
						}
					}
					return true;
				} else if (group.policy === "AnyOff") {
					for (const id of group.ids) {
						if (!this.#groups.has(id)) {
							warn$2(`Optional content group not found: ${id}`);
							return true;
						}
						if (!this.#groups.get(id).visible) {
							return true;
						}
					}
					return false;
				} else if (group.policy === "AllOff") {
					for (const id of group.ids) {
						if (!this.#groups.has(id)) {
							warn$2(`Optional content group not found: ${id}`);
							return true;
						}
						if (this.#groups.get(id).visible) {
							return false;
						}
					}
					return true;
				}
				warn$2(`Unknown optional content policy ${group.policy}.`);
				return true;
			}
			warn$2(`Unknown group type ${group.type}.`);
			return true;
		}
		setVisibility(id, visible = true, preserveRB = true) {
			const group = this.#groups.get(id);
			if (!group) {
				warn$2(`Optional content group not found: ${id}`);
				return;
			}
			if (preserveRB && visible && group.rbGroups.length) {
				for (const rbGroup of group.rbGroups) {
					for (const otherId of rbGroup) {
						if (otherId !== id) {
							this.#groups.get(otherId)?._setVisible(INTERNAL, false, true);
						}
					}
				}
			}
			group._setVisible(INTERNAL, !!visible, true);
			this.#cachedGetHash = null;
		}
		setOCGState({ state: state$1, preserveRB }) {
			let operator$1;
			for (const elem of state$1) {
				switch (elem) {
					case "ON":
					case "OFF":
					case "Toggle":
						operator$1 = elem;
						continue;
				}
				const group = this.#groups.get(elem);
				if (!group) {
					continue;
				}
				switch (operator$1) {
					case "ON":
						this.setVisibility(elem, true, preserveRB);
						break;
					case "OFF":
						this.setVisibility(elem, false, preserveRB);
						break;
					case "Toggle":
						this.setVisibility(elem, !group.visible, preserveRB);
						break;
				}
			}
			this.#cachedGetHash = null;
		}
		get hasInitialVisibility() {
			return this.#initialHash === null || this.getHash() === this.#initialHash;
		}
		getOrder() {
			if (!this.#groups.size) {
				return null;
			}
			if (this.#order) {
				return this.#order.slice();
			}
			return [...this.#groups.keys()];
		}
		getGroup(id) {
			return this.#groups.get(id) || null;
		}
		getHash() {
			if (this.#cachedGetHash !== null) {
				return this.#cachedGetHash;
			}
			const hash = new MurmurHash3_64();
			for (const [id, group] of this.#groups) {
				hash.update(`${id}:${group.visible}`);
			}
			return this.#cachedGetHash = hash.hexdigest();
		}
		[Symbol.iterator]() {
			return this.#groups.entries();
		}
	};
	;
	PDFDataTransportStream = class {
		constructor(pdfDataRangeTransport, { disableRange = false, disableStream = false }) {
			assert$1(pdfDataRangeTransport, "PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.");
			const { length, initialData, progressiveDone, contentDispositionFilename } = pdfDataRangeTransport;
			this._queuedChunks = [];
			this._progressiveDone = progressiveDone;
			this._contentDispositionFilename = contentDispositionFilename;
			if (initialData?.length > 0) {
				const buffer = initialData instanceof Uint8Array && initialData.byteLength === initialData.buffer.byteLength ? initialData.buffer : new Uint8Array(initialData).buffer;
				this._queuedChunks.push(buffer);
			}
			this._pdfDataRangeTransport = pdfDataRangeTransport;
			this._isStreamingSupported = !disableStream;
			this._isRangeSupported = !disableRange;
			this._contentLength = length;
			this._fullRequestReader = null;
			this._rangeReaders = [];
			pdfDataRangeTransport.addRangeListener((begin, chunk) => {
				this._onReceiveData({
					begin,
					chunk
				});
			});
			pdfDataRangeTransport.addProgressListener((loaded, total) => {
				this._onProgress({
					loaded,
					total
				});
			});
			pdfDataRangeTransport.addProgressiveReadListener((chunk) => {
				this._onReceiveData({ chunk });
			});
			pdfDataRangeTransport.addProgressiveDoneListener(() => {
				this._onProgressiveDone();
			});
			pdfDataRangeTransport.transportReady();
		}
		_onReceiveData({ begin, chunk }) {
			const buffer = chunk instanceof Uint8Array && chunk.byteLength === chunk.buffer.byteLength ? chunk.buffer : new Uint8Array(chunk).buffer;
			if (begin === undefined) {
				if (this._fullRequestReader) {
					this._fullRequestReader._enqueue(buffer);
				} else {
					this._queuedChunks.push(buffer);
				}
			} else {
				const found = this._rangeReaders.some(function(rangeReader) {
					if (rangeReader._begin !== begin) {
						return false;
					}
					rangeReader._enqueue(buffer);
					return true;
				});
				assert$1(found, "_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.");
			}
		}
		get _progressiveDataLength() {
			return this._fullRequestReader?._loaded ?? 0;
		}
		_onProgress(evt) {
			if (evt.total === undefined) {
				this._rangeReaders[0]?.onProgress?.({ loaded: evt.loaded });
			} else {
				this._fullRequestReader?.onProgress?.({
					loaded: evt.loaded,
					total: evt.total
				});
			}
		}
		_onProgressiveDone() {
			this._fullRequestReader?.progressiveDone();
			this._progressiveDone = true;
		}
		_removeRangeReader(reader) {
			const i$7 = this._rangeReaders.indexOf(reader);
			if (i$7 >= 0) {
				this._rangeReaders.splice(i$7, 1);
			}
		}
		getFullReader() {
			assert$1(!this._fullRequestReader, "PDFDataTransportStream.getFullReader can only be called once.");
			const queuedChunks = this._queuedChunks;
			this._queuedChunks = null;
			return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename);
		}
		getRangeReader(begin, end) {
			if (end <= this._progressiveDataLength) {
				return null;
			}
			const reader = new PDFDataTransportStreamRangeReader(this, begin, end);
			this._pdfDataRangeTransport.requestDataRange(begin, end);
			this._rangeReaders.push(reader);
			return reader;
		}
		cancelAllRequests(reason) {
			this._fullRequestReader?.cancel(reason);
			for (const reader of this._rangeReaders.slice(0)) {
				reader.cancel(reason);
			}
			this._pdfDataRangeTransport.abort();
		}
	};
	PDFDataTransportStreamReader = class {
		constructor(stream, queuedChunks, progressiveDone = false, contentDispositionFilename = null) {
			this._stream = stream;
			this._done = progressiveDone || false;
			this._filename = isPdfFile(contentDispositionFilename) ? contentDispositionFilename : null;
			this._queuedChunks = queuedChunks || [];
			this._loaded = 0;
			for (const chunk of this._queuedChunks) {
				this._loaded += chunk.byteLength;
			}
			this._requests = [];
			this._headersReady = Promise.resolve();
			stream._fullRequestReader = this;
			this.onProgress = null;
		}
		_enqueue(chunk) {
			if (this._done) {
				return;
			}
			if (this._requests.length > 0) {
				const requestCapability = this._requests.shift();
				requestCapability.resolve({
					value: chunk,
					done: false
				});
			} else {
				this._queuedChunks.push(chunk);
			}
			this._loaded += chunk.byteLength;
		}
		get headersReady() {
			return this._headersReady;
		}
		get filename() {
			return this._filename;
		}
		get isRangeSupported() {
			return this._stream._isRangeSupported;
		}
		get isStreamingSupported() {
			return this._stream._isStreamingSupported;
		}
		get contentLength() {
			return this._stream._contentLength;
		}
		async read() {
			if (this._queuedChunks.length > 0) {
				const chunk = this._queuedChunks.shift();
				return {
					value: chunk,
					done: false
				};
			}
			if (this._done) {
				return {
					value: undefined,
					done: true
				};
			}
			const requestCapability = Promise.withResolvers();
			this._requests.push(requestCapability);
			return requestCapability.promise;
		}
		cancel(reason) {
			this._done = true;
			for (const requestCapability of this._requests) {
				requestCapability.resolve({
					value: undefined,
					done: true
				});
			}
			this._requests.length = 0;
		}
		progressiveDone() {
			if (this._done) {
				return;
			}
			this._done = true;
		}
	};
	PDFDataTransportStreamRangeReader = class {
		constructor(stream, begin, end) {
			this._stream = stream;
			this._begin = begin;
			this._end = end;
			this._queuedChunk = null;
			this._requests = [];
			this._done = false;
			this.onProgress = null;
		}
		_enqueue(chunk) {
			if (this._done) {
				return;
			}
			if (this._requests.length === 0) {
				this._queuedChunk = chunk;
			} else {
				const requestsCapability = this._requests.shift();
				requestsCapability.resolve({
					value: chunk,
					done: false
				});
				for (const requestCapability of this._requests) {
					requestCapability.resolve({
						value: undefined,
						done: true
					});
				}
				this._requests.length = 0;
			}
			this._done = true;
			this._stream._removeRangeReader(this);
		}
		get isStreamingSupported() {
			return false;
		}
		async read() {
			if (this._queuedChunk) {
				const chunk = this._queuedChunk;
				this._queuedChunk = null;
				return {
					value: chunk,
					done: false
				};
			}
			if (this._done) {
				return {
					value: undefined,
					done: true
				};
			}
			const requestCapability = Promise.withResolvers();
			this._requests.push(requestCapability);
			return requestCapability.promise;
		}
		cancel(reason) {
			this._done = true;
			for (const requestCapability of this._requests) {
				requestCapability.resolve({
					value: undefined,
					done: true
				});
			}
			this._requests.length = 0;
			this._stream._removeRangeReader(this);
		}
	};
	;
	;
	;
	PDFFetchStream = class {
		_responseOrigin = null;
		constructor(source$4) {
			this.source = source$4;
			this.isHttp = /^https?:/i.test(source$4.url);
			this.headers = createHeaders(this.isHttp, source$4.httpHeaders);
			this._fullRequestReader = null;
			this._rangeRequestReaders = [];
		}
		get _progressiveDataLength() {
			return this._fullRequestReader?._loaded ?? 0;
		}
		getFullReader() {
			assert$1(!this._fullRequestReader, "PDFFetchStream.getFullReader can only be called once.");
			this._fullRequestReader = new PDFFetchStreamReader(this);
			return this._fullRequestReader;
		}
		getRangeReader(begin, end) {
			if (end <= this._progressiveDataLength) {
				return null;
			}
			const reader = new PDFFetchStreamRangeReader(this, begin, end);
			this._rangeRequestReaders.push(reader);
			return reader;
		}
		cancelAllRequests(reason) {
			this._fullRequestReader?.cancel(reason);
			for (const reader of this._rangeRequestReaders.slice(0)) {
				reader.cancel(reason);
			}
		}
	};
	PDFFetchStreamReader = class {
		constructor(stream) {
			this._stream = stream;
			this._reader = null;
			this._loaded = 0;
			this._filename = null;
			const source$4 = stream.source;
			this._withCredentials = source$4.withCredentials || false;
			this._contentLength = source$4.length;
			this._headersCapability = Promise.withResolvers();
			this._disableRange = source$4.disableRange || false;
			this._rangeChunkSize = source$4.rangeChunkSize;
			if (!this._rangeChunkSize && !this._disableRange) {
				this._disableRange = true;
			}
			this._abortController = new AbortController();
			this._isStreamingSupported = !source$4.disableStream;
			this._isRangeSupported = !source$4.disableRange;
			const headers = new Headers(stream.headers);
			const url = source$4.url;
			fetch(url, createFetchOptions(headers, this._withCredentials, this._abortController)).then((response) => {
				stream._responseOrigin = getResponseOrigin(response.url);
				if (!validateResponseStatus(response.status)) {
					throw createResponseError(response.status, url);
				}
				this._reader = response.body.getReader();
				this._headersCapability.resolve();
				const responseHeaders = response.headers;
				const { allowRangeRequests, suggestedLength } = validateRangeRequestCapabilities({
					responseHeaders,
					isHttp: stream.isHttp,
					rangeChunkSize: this._rangeChunkSize,
					disableRange: this._disableRange
				});
				this._isRangeSupported = allowRangeRequests;
				this._contentLength = suggestedLength || this._contentLength;
				this._filename = extractFilenameFromHeader(responseHeaders);
				if (!this._isStreamingSupported && this._isRangeSupported) {
					this.cancel(new AbortException("Streaming is disabled."));
				}
			}).catch(this._headersCapability.reject);
			this.onProgress = null;
		}
		get headersReady() {
			return this._headersCapability.promise;
		}
		get filename() {
			return this._filename;
		}
		get contentLength() {
			return this._contentLength;
		}
		get isRangeSupported() {
			return this._isRangeSupported;
		}
		get isStreamingSupported() {
			return this._isStreamingSupported;
		}
		async read() {
			await this._headersCapability.promise;
			const { value, done } = await this._reader.read();
			if (done) {
				return {
					value,
					done
				};
			}
			this._loaded += value.byteLength;
			this.onProgress?.({
				loaded: this._loaded,
				total: this._contentLength
			});
			return {
				value: getArrayBuffer(value),
				done: false
			};
		}
		cancel(reason) {
			this._reader?.cancel(reason);
			this._abortController.abort();
		}
	};
	PDFFetchStreamRangeReader = class {
		constructor(stream, begin, end) {
			this._stream = stream;
			this._reader = null;
			this._loaded = 0;
			const source$4 = stream.source;
			this._withCredentials = source$4.withCredentials || false;
			this._readCapability = Promise.withResolvers();
			this._isStreamingSupported = !source$4.disableStream;
			this._abortController = new AbortController();
			const headers = new Headers(stream.headers);
			headers.append("Range", `bytes=${begin}-${end - 1}`);
			const url = source$4.url;
			fetch(url, createFetchOptions(headers, this._withCredentials, this._abortController)).then((response) => {
				const responseOrigin = getResponseOrigin(response.url);
				if (responseOrigin !== stream._responseOrigin) {
					throw new Error(`Expected range response-origin "${responseOrigin}" to match "${stream._responseOrigin}".`);
				}
				if (!validateResponseStatus(response.status)) {
					throw createResponseError(response.status, url);
				}
				this._readCapability.resolve();
				this._reader = response.body.getReader();
			}).catch(this._readCapability.reject);
			this.onProgress = null;
		}
		get isStreamingSupported() {
			return this._isStreamingSupported;
		}
		async read() {
			await this._readCapability.promise;
			const { value, done } = await this._reader.read();
			if (done) {
				return {
					value,
					done
				};
			}
			this._loaded += value.byteLength;
			this.onProgress?.({ loaded: this._loaded });
			return {
				value: getArrayBuffer(value),
				done: false
			};
		}
		cancel(reason) {
			this._reader?.cancel(reason);
			this._abortController.abort();
		}
	};
	;
	OK_RESPONSE = 200;
	PARTIAL_CONTENT_RESPONSE = 206;
	NetworkManager = class {
		_responseOrigin = null;
		constructor({ url, httpHeaders, withCredentials }) {
			this.url = url;
			this.isHttp = /^https?:/i.test(url);
			this.headers = createHeaders(this.isHttp, httpHeaders);
			this.withCredentials = withCredentials || false;
			this.currXhrId = 0;
			this.pendingRequests = Object.create(null);
		}
		request(args) {
			const xhr = new XMLHttpRequest();
			const xhrId = this.currXhrId++;
			const pendingRequest = this.pendingRequests[xhrId] = { xhr };
			xhr.open("GET", this.url);
			xhr.withCredentials = this.withCredentials;
			for (const [key, val$1] of this.headers) {
				xhr.setRequestHeader(key, val$1);
			}
			if (this.isHttp && "begin" in args && "end" in args) {
				xhr.setRequestHeader("Range", `bytes=${args.begin}-${args.end - 1}`);
				pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;
			} else {
				pendingRequest.expectedStatus = OK_RESPONSE;
			}
			xhr.responseType = "arraybuffer";
			assert$1(args.onError, "Expected `onError` callback to be provided.");
			xhr.onerror = () => {
				args.onError(xhr.status);
			};
			xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);
			xhr.onprogress = this.onProgress.bind(this, xhrId);
			pendingRequest.onHeadersReceived = args.onHeadersReceived;
			pendingRequest.onDone = args.onDone;
			pendingRequest.onError = args.onError;
			pendingRequest.onProgress = args.onProgress;
			xhr.send(null);
			return xhrId;
		}
		onProgress(xhrId, evt) {
			const pendingRequest = this.pendingRequests[xhrId];
			if (!pendingRequest) {
				return;
			}
			pendingRequest.onProgress?.(evt);
		}
		onStateChange(xhrId, evt) {
			const pendingRequest = this.pendingRequests[xhrId];
			if (!pendingRequest) {
				return;
			}
			const xhr = pendingRequest.xhr;
			if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {
				pendingRequest.onHeadersReceived();
				delete pendingRequest.onHeadersReceived;
			}
			if (xhr.readyState !== 4) {
				return;
			}
			if (!(xhrId in this.pendingRequests)) {
				return;
			}
			delete this.pendingRequests[xhrId];
			if (xhr.status === 0 && this.isHttp) {
				pendingRequest.onError(xhr.status);
				return;
			}
			const xhrStatus = xhr.status || OK_RESPONSE;
			const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;
			if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {
				pendingRequest.onError(xhr.status);
				return;
			}
			const chunk = network_getArrayBuffer(xhr);
			if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {
				const rangeHeader = xhr.getResponseHeader("Content-Range");
				const matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader);
				if (matches) {
					pendingRequest.onDone({
						begin: parseInt(matches[1], 10),
						chunk
					});
				} else {
					warn$2(`Missing or invalid "Content-Range" header.`);
					pendingRequest.onError(0);
				}
			} else if (chunk) {
				pendingRequest.onDone({
					begin: 0,
					chunk
				});
			} else {
				pendingRequest.onError(xhr.status);
			}
		}
		getRequestXhr(xhrId) {
			return this.pendingRequests[xhrId].xhr;
		}
		isPendingRequest(xhrId) {
			return xhrId in this.pendingRequests;
		}
		abortRequest(xhrId) {
			const xhr = this.pendingRequests[xhrId].xhr;
			delete this.pendingRequests[xhrId];
			xhr.abort();
		}
	};
	PDFNetworkStream = class {
		constructor(source$4) {
			this._source = source$4;
			this._manager = new NetworkManager(source$4);
			this._rangeChunkSize = source$4.rangeChunkSize;
			this._fullRequestReader = null;
			this._rangeRequestReaders = [];
		}
		_onRangeRequestReaderClosed(reader) {
			const i$7 = this._rangeRequestReaders.indexOf(reader);
			if (i$7 >= 0) {
				this._rangeRequestReaders.splice(i$7, 1);
			}
		}
		getFullReader() {
			assert$1(!this._fullRequestReader, "PDFNetworkStream.getFullReader can only be called once.");
			this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);
			return this._fullRequestReader;
		}
		getRangeReader(begin, end) {
			const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);
			reader.onClosed = this._onRangeRequestReaderClosed.bind(this);
			this._rangeRequestReaders.push(reader);
			return reader;
		}
		cancelAllRequests(reason) {
			this._fullRequestReader?.cancel(reason);
			for (const reader of this._rangeRequestReaders.slice(0)) {
				reader.cancel(reason);
			}
		}
	};
	PDFNetworkStreamFullRequestReader = class {
		constructor(manager, source$4) {
			this._manager = manager;
			this._url = source$4.url;
			this._fullRequestId = manager.request({
				onHeadersReceived: this._onHeadersReceived.bind(this),
				onDone: this._onDone.bind(this),
				onError: this._onError.bind(this),
				onProgress: this._onProgress.bind(this)
			});
			this._headersCapability = Promise.withResolvers();
			this._disableRange = source$4.disableRange || false;
			this._contentLength = source$4.length;
			this._rangeChunkSize = source$4.rangeChunkSize;
			if (!this._rangeChunkSize && !this._disableRange) {
				this._disableRange = true;
			}
			this._isStreamingSupported = false;
			this._isRangeSupported = false;
			this._cachedChunks = [];
			this._requests = [];
			this._done = false;
			this._storedError = undefined;
			this._filename = null;
			this.onProgress = null;
		}
		_onHeadersReceived() {
			const fullRequestXhrId = this._fullRequestId;
			const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);
			this._manager._responseOrigin = getResponseOrigin(fullRequestXhr.responseURL);
			const rawResponseHeaders = fullRequestXhr.getAllResponseHeaders();
			const responseHeaders = new Headers(rawResponseHeaders ? rawResponseHeaders.trimStart().replace(/[^\S ]+$/, "").split(/[\r\n]+/).map((x$2) => {
				const [key, ...val$1] = x$2.split(": ");
				return [key, val$1.join(": ")];
			}) : []);
			const { allowRangeRequests, suggestedLength } = validateRangeRequestCapabilities({
				responseHeaders,
				isHttp: this._manager.isHttp,
				rangeChunkSize: this._rangeChunkSize,
				disableRange: this._disableRange
			});
			if (allowRangeRequests) {
				this._isRangeSupported = true;
			}
			this._contentLength = suggestedLength || this._contentLength;
			this._filename = extractFilenameFromHeader(responseHeaders);
			if (this._isRangeSupported) {
				this._manager.abortRequest(fullRequestXhrId);
			}
			this._headersCapability.resolve();
		}
		_onDone(data) {
			if (data) {
				if (this._requests.length > 0) {
					const requestCapability = this._requests.shift();
					requestCapability.resolve({
						value: data.chunk,
						done: false
					});
				} else {
					this._cachedChunks.push(data.chunk);
				}
			}
			this._done = true;
			if (this._cachedChunks.length > 0) {
				return;
			}
			for (const requestCapability of this._requests) {
				requestCapability.resolve({
					value: undefined,
					done: true
				});
			}
			this._requests.length = 0;
		}
		_onError(status) {
			this._storedError = createResponseError(status, this._url);
			this._headersCapability.reject(this._storedError);
			for (const requestCapability of this._requests) {
				requestCapability.reject(this._storedError);
			}
			this._requests.length = 0;
			this._cachedChunks.length = 0;
		}
		_onProgress(evt) {
			this.onProgress?.({
				loaded: evt.loaded,
				total: evt.lengthComputable ? evt.total : this._contentLength
			});
		}
		get filename() {
			return this._filename;
		}
		get isRangeSupported() {
			return this._isRangeSupported;
		}
		get isStreamingSupported() {
			return this._isStreamingSupported;
		}
		get contentLength() {
			return this._contentLength;
		}
		get headersReady() {
			return this._headersCapability.promise;
		}
		async read() {
			await this._headersCapability.promise;
			if (this._storedError) {
				throw this._storedError;
			}
			if (this._cachedChunks.length > 0) {
				const chunk = this._cachedChunks.shift();
				return {
					value: chunk,
					done: false
				};
			}
			if (this._done) {
				return {
					value: undefined,
					done: true
				};
			}
			const requestCapability = Promise.withResolvers();
			this._requests.push(requestCapability);
			return requestCapability.promise;
		}
		cancel(reason) {
			this._done = true;
			this._headersCapability.reject(reason);
			for (const requestCapability of this._requests) {
				requestCapability.resolve({
					value: undefined,
					done: true
				});
			}
			this._requests.length = 0;
			if (this._manager.isPendingRequest(this._fullRequestId)) {
				this._manager.abortRequest(this._fullRequestId);
			}
			this._fullRequestReader = null;
		}
	};
	PDFNetworkStreamRangeRequestReader = class {
		constructor(manager, begin, end) {
			this._manager = manager;
			this._url = manager.url;
			this._requestId = manager.request({
				begin,
				end,
				onHeadersReceived: this._onHeadersReceived.bind(this),
				onDone: this._onDone.bind(this),
				onError: this._onError.bind(this),
				onProgress: this._onProgress.bind(this)
			});
			this._requests = [];
			this._queuedChunk = null;
			this._done = false;
			this._storedError = undefined;
			this.onProgress = null;
			this.onClosed = null;
		}
		_onHeadersReceived() {
			const responseOrigin = getResponseOrigin(this._manager.getRequestXhr(this._requestId)?.responseURL);
			if (responseOrigin !== this._manager._responseOrigin) {
				this._storedError = new Error(`Expected range response-origin "${responseOrigin}" to match "${this._manager._responseOrigin}".`);
				this._onError(0);
			}
		}
		_close() {
			this.onClosed?.(this);
		}
		_onDone(data) {
			const chunk = data.chunk;
			if (this._requests.length > 0) {
				const requestCapability = this._requests.shift();
				requestCapability.resolve({
					value: chunk,
					done: false
				});
			} else {
				this._queuedChunk = chunk;
			}
			this._done = true;
			for (const requestCapability of this._requests) {
				requestCapability.resolve({
					value: undefined,
					done: true
				});
			}
			this._requests.length = 0;
			this._close();
		}
		_onError(status) {
			this._storedError ??= createResponseError(status, this._url);
			for (const requestCapability of this._requests) {
				requestCapability.reject(this._storedError);
			}
			this._requests.length = 0;
			this._queuedChunk = null;
		}
		_onProgress(evt) {
			if (!this.isStreamingSupported) {
				this.onProgress?.({ loaded: evt.loaded });
			}
		}
		get isStreamingSupported() {
			return false;
		}
		async read() {
			if (this._storedError) {
				throw this._storedError;
			}
			if (this._queuedChunk !== null) {
				const chunk = this._queuedChunk;
				this._queuedChunk = null;
				return {
					value: chunk,
					done: false
				};
			}
			if (this._done) {
				return {
					value: undefined,
					done: true
				};
			}
			const requestCapability = Promise.withResolvers();
			this._requests.push(requestCapability);
			return requestCapability.promise;
		}
		cancel(reason) {
			this._done = true;
			for (const requestCapability of this._requests) {
				requestCapability.resolve({
					value: undefined,
					done: true
				});
			}
			this._requests.length = 0;
			if (this._manager.isPendingRequest(this._requestId)) {
				this._manager.abortRequest(this._requestId);
			}
			this._close();
		}
	};
	;
	urlRegex = /^[a-z][a-z0-9\-+.]+:/i;
	PDFNodeStream = class {
		constructor(source$4) {
			this.source = source$4;
			this.url = parseUrlOrPath(source$4.url);
			assert$1(this.url.protocol === "file:", "PDFNodeStream only supports file:// URLs.");
			this._fullRequestReader = null;
			this._rangeRequestReaders = [];
		}
		get _progressiveDataLength() {
			return this._fullRequestReader?._loaded ?? 0;
		}
		getFullReader() {
			assert$1(!this._fullRequestReader, "PDFNodeStream.getFullReader can only be called once.");
			this._fullRequestReader = new PDFNodeStreamFsFullReader(this);
			return this._fullRequestReader;
		}
		getRangeReader(start, end) {
			if (end <= this._progressiveDataLength) {
				return null;
			}
			const rangeReader = new PDFNodeStreamFsRangeReader(this, start, end);
			this._rangeRequestReaders.push(rangeReader);
			return rangeReader;
		}
		cancelAllRequests(reason) {
			this._fullRequestReader?.cancel(reason);
			for (const reader of this._rangeRequestReaders.slice(0)) {
				reader.cancel(reason);
			}
		}
	};
	PDFNodeStreamFsFullReader = class {
		constructor(stream) {
			this._url = stream.url;
			this._done = false;
			this._storedError = null;
			this.onProgress = null;
			const source$4 = stream.source;
			this._contentLength = source$4.length;
			this._loaded = 0;
			this._filename = null;
			this._disableRange = source$4.disableRange || false;
			this._rangeChunkSize = source$4.rangeChunkSize;
			if (!this._rangeChunkSize && !this._disableRange) {
				this._disableRange = true;
			}
			this._isStreamingSupported = !source$4.disableStream;
			this._isRangeSupported = !source$4.disableRange;
			this._readableStream = null;
			this._readCapability = Promise.withResolvers();
			this._headersCapability = Promise.withResolvers();
			const fs = process.getBuiltinModule("fs");
			fs.promises.lstat(this._url).then((stat) => {
				this._contentLength = stat.size;
				this._setReadableStream(fs.createReadStream(this._url));
				this._headersCapability.resolve();
			}, (error$2) => {
				if (error$2.code === "ENOENT") {
					error$2 = createResponseError(0, this._url.href);
				}
				this._storedError = error$2;
				this._headersCapability.reject(error$2);
			});
		}
		get headersReady() {
			return this._headersCapability.promise;
		}
		get filename() {
			return this._filename;
		}
		get contentLength() {
			return this._contentLength;
		}
		get isRangeSupported() {
			return this._isRangeSupported;
		}
		get isStreamingSupported() {
			return this._isStreamingSupported;
		}
		async read() {
			await this._readCapability.promise;
			if (this._done) {
				return {
					value: undefined,
					done: true
				};
			}
			if (this._storedError) {
				throw this._storedError;
			}
			const chunk = this._readableStream.read();
			if (chunk === null) {
				this._readCapability = Promise.withResolvers();
				return this.read();
			}
			this._loaded += chunk.length;
			this.onProgress?.({
				loaded: this._loaded,
				total: this._contentLength
			});
			const buffer = new Uint8Array(chunk).buffer;
			return {
				value: buffer,
				done: false
			};
		}
		cancel(reason) {
			if (!this._readableStream) {
				this._error(reason);
				return;
			}
			this._readableStream.destroy(reason);
		}
		_error(reason) {
			this._storedError = reason;
			this._readCapability.resolve();
		}
		_setReadableStream(readableStream) {
			this._readableStream = readableStream;
			readableStream.on("readable", () => {
				this._readCapability.resolve();
			});
			readableStream.on("end", () => {
				readableStream.destroy();
				this._done = true;
				this._readCapability.resolve();
			});
			readableStream.on("error", (reason) => {
				this._error(reason);
			});
			if (!this._isStreamingSupported && this._isRangeSupported) {
				this._error(new AbortException("streaming is disabled"));
			}
			if (this._storedError) {
				this._readableStream.destroy(this._storedError);
			}
		}
	};
	PDFNodeStreamFsRangeReader = class {
		constructor(stream, start, end) {
			this._url = stream.url;
			this._done = false;
			this._storedError = null;
			this.onProgress = null;
			this._loaded = 0;
			this._readableStream = null;
			this._readCapability = Promise.withResolvers();
			const source$4 = stream.source;
			this._isStreamingSupported = !source$4.disableStream;
			const fs = process.getBuiltinModule("fs");
			this._setReadableStream(fs.createReadStream(this._url, {
				start,
				end: end - 1
			}));
		}
		get isStreamingSupported() {
			return this._isStreamingSupported;
		}
		async read() {
			await this._readCapability.promise;
			if (this._done) {
				return {
					value: undefined,
					done: true
				};
			}
			if (this._storedError) {
				throw this._storedError;
			}
			const chunk = this._readableStream.read();
			if (chunk === null) {
				this._readCapability = Promise.withResolvers();
				return this.read();
			}
			this._loaded += chunk.length;
			this.onProgress?.({ loaded: this._loaded });
			const buffer = new Uint8Array(chunk).buffer;
			return {
				value: buffer,
				done: false
			};
		}
		cancel(reason) {
			if (!this._readableStream) {
				this._error(reason);
				return;
			}
			this._readableStream.destroy(reason);
		}
		_error(reason) {
			this._storedError = reason;
			this._readCapability.resolve();
		}
		_setReadableStream(readableStream) {
			this._readableStream = readableStream;
			readableStream.on("readable", () => {
				this._readCapability.resolve();
			});
			readableStream.on("end", () => {
				readableStream.destroy();
				this._done = true;
				this._readCapability.resolve();
			});
			readableStream.on("error", (reason) => {
				this._error(reason);
			});
			if (this._storedError) {
				this._readableStream.destroy(this._storedError);
			}
		}
	};
	;
	INITIAL_DATA = Symbol("INITIAL_DATA");
	PDFObjects = class {
		#objs = Object.create(null);
		#ensureObj(objId) {
			return this.#objs[objId] ||= {
				...Promise.withResolvers(),
				data: INITIAL_DATA
			};
		}
		get(objId, callback = null) {
			if (callback) {
				const obj$1 = this.#ensureObj(objId);
				obj$1.promise.then(() => callback(obj$1.data));
				return null;
			}
			const obj = this.#objs[objId];
			if (!obj || obj.data === INITIAL_DATA) {
				throw new Error(`Requesting object that isn't resolved yet ${objId}.`);
			}
			return obj.data;
		}
		has(objId) {
			const obj = this.#objs[objId];
			return !!obj && obj.data !== INITIAL_DATA;
		}
		delete(objId) {
			const obj = this.#objs[objId];
			if (!obj || obj.data === INITIAL_DATA) {
				return false;
			}
			delete this.#objs[objId];
			return true;
		}
		resolve(objId, data = null) {
			const obj = this.#ensureObj(objId);
			obj.data = data;
			obj.resolve();
		}
		clear() {
			for (const objId in this.#objs) {
				const { data } = this.#objs[objId];
				data?.bitmap?.close();
			}
			this.#objs = Object.create(null);
		}
		*[Symbol.iterator]() {
			for (const objId in this.#objs) {
				const { data } = this.#objs[objId];
				if (data === INITIAL_DATA) {
					continue;
				}
				yield [objId, data];
			}
		}
	};
	;
	MAX_TEXT_DIVS_TO_RENDER = 1e5;
	DEFAULT_FONT_SIZE = 30;
	TextLayer = class TextLayer {
		#capability = Promise.withResolvers();
		#container = null;
		#disableProcessItems = false;
		#fontInspectorEnabled = !!globalThis.FontInspector?.enabled;
		#lang = null;
		#layoutTextParams = null;
		#pageHeight = 0;
		#pageWidth = 0;
		#reader = null;
		#rootContainer = null;
		#rotation = 0;
		#scale = 0;
		#styleCache = Object.create(null);
		#textContentItemsStr = [];
		#textContentSource = null;
		#textDivs = [];
		#textDivProperties = new WeakMap();
		#transform = null;
		static #ascentCache = new Map();
		static #canvasContexts = new Map();
		static #canvasCtxFonts = new WeakMap();
		static #minFontSize = null;
		static #pendingTextLayers = new Set();
		constructor({ textContentSource, container, viewport }) {
			if (textContentSource instanceof ReadableStream) {
				this.#textContentSource = textContentSource;
			} else if (typeof textContentSource === "object") {
				this.#textContentSource = new ReadableStream({ start(controller) {
					controller.enqueue(textContentSource);
					controller.close();
				} });
			} else {
				throw new Error("No \"textContentSource\" parameter specified.");
			}
			this.#container = this.#rootContainer = container;
			this.#scale = viewport.scale * OutputScale.pixelRatio;
			this.#rotation = viewport.rotation;
			this.#layoutTextParams = {
				div: null,
				properties: null,
				ctx: null
			};
			const { pageWidth, pageHeight, pageX, pageY } = viewport.rawDims;
			this.#transform = [
				1,
				0,
				0,
				-1,
				-pageX,
				pageY + pageHeight
			];
			this.#pageWidth = pageWidth;
			this.#pageHeight = pageHeight;
			TextLayer.#ensureMinFontSizeComputed();
			setLayerDimensions(container, viewport);
			this.#capability.promise.finally(() => {
				TextLayer.#pendingTextLayers.delete(this);
				this.#layoutTextParams = null;
				this.#styleCache = null;
			}).catch(() => {});
		}
		static get fontFamilyMap() {
			const { isWindows, isFirefox } = util_FeatureTest.platform;
			return shadow(this, "fontFamilyMap", new Map([["sans-serif", `${isWindows && isFirefox ? "Calibri, " : ""}sans-serif`], ["monospace", `${isWindows && isFirefox ? "Lucida Console, " : ""}monospace`]]));
		}
		render() {
			const pump = () => {
				this.#reader.read().then(({ value, done }) => {
					if (done) {
						this.#capability.resolve();
						return;
					}
					this.#lang ??= value.lang;
					Object.assign(this.#styleCache, value.styles);
					this.#processItems(value.items);
					pump();
				}, this.#capability.reject);
			};
			this.#reader = this.#textContentSource.getReader();
			TextLayer.#pendingTextLayers.add(this);
			pump();
			return this.#capability.promise;
		}
		update({ viewport, onBefore = null }) {
			const scale = viewport.scale * OutputScale.pixelRatio;
			const rotation = viewport.rotation;
			if (rotation !== this.#rotation) {
				onBefore?.();
				this.#rotation = rotation;
				setLayerDimensions(this.#rootContainer, { rotation });
			}
			if (scale !== this.#scale) {
				onBefore?.();
				this.#scale = scale;
				const params = {
					div: null,
					properties: null,
					ctx: TextLayer.#getCtx(this.#lang)
				};
				for (const div of this.#textDivs) {
					params.properties = this.#textDivProperties.get(div);
					params.div = div;
					this.#layout(params);
				}
			}
		}
		cancel() {
			const abortEx = new AbortException("TextLayer task cancelled.");
			this.#reader?.cancel(abortEx).catch(() => {});
			this.#reader = null;
			this.#capability.reject(abortEx);
		}
		get textDivs() {
			return this.#textDivs;
		}
		get textContentItemsStr() {
			return this.#textContentItemsStr;
		}
		#processItems(items) {
			if (this.#disableProcessItems) {
				return;
			}
			this.#layoutTextParams.ctx ??= TextLayer.#getCtx(this.#lang);
			const textDivs = this.#textDivs, textContentItemsStr = this.#textContentItemsStr;
			for (const item of items) {
				if (textDivs.length > MAX_TEXT_DIVS_TO_RENDER) {
					warn$2("Ignoring additional textDivs for performance reasons.");
					this.#disableProcessItems = true;
					return;
				}
				if (item.str === undefined) {
					if (item.type === "beginMarkedContentProps" || item.type === "beginMarkedContent") {
						const parent = this.#container;
						this.#container = document.createElement("span");
						this.#container.classList.add("markedContent");
						if (item.id) {
							this.#container.setAttribute("id", `${item.id}`);
						}
						parent.append(this.#container);
					} else if (item.type === "endMarkedContent") {
						this.#container = this.#container.parentNode;
					}
					continue;
				}
				textContentItemsStr.push(item.str);
				this.#appendText(item);
			}
		}
		#appendText(geom) {
			const textDiv = document.createElement("span");
			const textDivProperties = {
				angle: 0,
				canvasWidth: 0,
				hasText: geom.str !== "",
				hasEOL: geom.hasEOL,
				fontSize: 0
			};
			this.#textDivs.push(textDiv);
			const tx = Util.transform(this.#transform, geom.transform);
			let angle = Math.atan2(tx[1], tx[0]);
			const style = this.#styleCache[geom.fontName];
			if (style.vertical) {
				angle += Math.PI / 2;
			}
			let fontFamily = this.#fontInspectorEnabled && style.fontSubstitution || style.fontFamily;
			fontFamily = TextLayer.fontFamilyMap.get(fontFamily) || fontFamily;
			const fontHeight = Math.hypot(tx[2], tx[3]);
			const fontAscent = fontHeight * TextLayer.#getAscent(fontFamily, style, this.#lang);
			let left, top;
			if (angle === 0) {
				left = tx[4];
				top = tx[5] - fontAscent;
			} else {
				left = tx[4] + fontAscent * Math.sin(angle);
				top = tx[5] - fontAscent * Math.cos(angle);
			}
			const scaleFactorStr = "calc(var(--total-scale-factor) *";
			const divStyle = textDiv.style;
			if (this.#container === this.#rootContainer) {
				divStyle.left = `${(100 * left / this.#pageWidth).toFixed(2)}%`;
				divStyle.top = `${(100 * top / this.#pageHeight).toFixed(2)}%`;
			} else {
				divStyle.left = `${scaleFactorStr}${left.toFixed(2)}px)`;
				divStyle.top = `${scaleFactorStr}${top.toFixed(2)}px)`;
			}
			divStyle.fontSize = `${scaleFactorStr}${(TextLayer.#minFontSize * fontHeight).toFixed(2)}px)`;
			divStyle.fontFamily = fontFamily;
			textDivProperties.fontSize = fontHeight;
			textDiv.setAttribute("role", "presentation");
			textDiv.textContent = geom.str;
			textDiv.dir = geom.dir;
			if (this.#fontInspectorEnabled) {
				textDiv.dataset.fontName = style.fontSubstitutionLoadedName || geom.fontName;
			}
			if (angle !== 0) {
				textDivProperties.angle = angle * (180 / Math.PI);
			}
			let shouldScaleText = false;
			if (geom.str.length > 1) {
				shouldScaleText = true;
			} else if (geom.str !== " " && geom.transform[0] !== geom.transform[3]) {
				const absScaleX = Math.abs(geom.transform[0]), absScaleY = Math.abs(geom.transform[3]);
				if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {
					shouldScaleText = true;
				}
			}
			if (shouldScaleText) {
				textDivProperties.canvasWidth = style.vertical ? geom.height : geom.width;
			}
			this.#textDivProperties.set(textDiv, textDivProperties);
			this.#layoutTextParams.div = textDiv;
			this.#layoutTextParams.properties = textDivProperties;
			this.#layout(this.#layoutTextParams);
			if (textDivProperties.hasText) {
				this.#container.append(textDiv);
			}
			if (textDivProperties.hasEOL) {
				const br = document.createElement("br");
				br.setAttribute("role", "presentation");
				this.#container.append(br);
			}
		}
		#layout(params) {
			const { div, properties: properties$1, ctx } = params;
			const { style } = div;
			let transform = "";
			if (TextLayer.#minFontSize > 1) {
				transform = `scale(${1 / TextLayer.#minFontSize})`;
			}
			if (properties$1.canvasWidth !== 0 && properties$1.hasText) {
				const { fontFamily } = style;
				const { canvasWidth, fontSize } = properties$1;
				TextLayer.#ensureCtxFont(ctx, fontSize * this.#scale, fontFamily);
				const { width } = ctx.measureText(div.textContent);
				if (width > 0) {
					transform = `scaleX(${canvasWidth * this.#scale / width}) ${transform}`;
				}
			}
			if (properties$1.angle !== 0) {
				transform = `rotate(${properties$1.angle}deg) ${transform}`;
			}
			if (transform.length > 0) {
				style.transform = transform;
			}
		}
		static cleanup() {
			if (this.#pendingTextLayers.size > 0) {
				return;
			}
			this.#ascentCache.clear();
			for (const { canvas } of this.#canvasContexts.values()) {
				canvas.remove();
			}
			this.#canvasContexts.clear();
		}
		static #getCtx(lang = null) {
			let ctx = this.#canvasContexts.get(lang ||= "");
			if (!ctx) {
				const canvas = document.createElement("canvas");
				canvas.className = "hiddenCanvasElement";
				canvas.lang = lang;
				document.body.append(canvas);
				ctx = canvas.getContext("2d", {
					alpha: false,
					willReadFrequently: true
				});
				this.#canvasContexts.set(lang, ctx);
				this.#canvasCtxFonts.set(ctx, {
					size: 0,
					family: ""
				});
			}
			return ctx;
		}
		static #ensureCtxFont(ctx, size, family) {
			const cached = this.#canvasCtxFonts.get(ctx);
			if (size === cached.size && family === cached.family) {
				return;
			}
			ctx.font = `${size}px ${family}`;
			cached.size = size;
			cached.family = family;
		}
		static #ensureMinFontSizeComputed() {
			if (this.#minFontSize !== null) {
				return;
			}
			const div = document.createElement("div");
			div.style.opacity = 0;
			div.style.lineHeight = 1;
			div.style.fontSize = "1px";
			div.style.position = "absolute";
			div.textContent = "X";
			document.body.append(div);
			this.#minFontSize = div.getBoundingClientRect().height;
			div.remove();
		}
		static #getAscent(fontFamily, style, lang) {
			const cachedAscent = this.#ascentCache.get(fontFamily);
			if (cachedAscent) {
				return cachedAscent;
			}
			const ctx = this.#getCtx(lang);
			ctx.canvas.width = ctx.canvas.height = DEFAULT_FONT_SIZE;
			this.#ensureCtxFont(ctx, DEFAULT_FONT_SIZE, fontFamily);
			const metrics = ctx.measureText("");
			const ascent = metrics.fontBoundingBoxAscent;
			const descent = Math.abs(metrics.fontBoundingBoxDescent);
			ctx.canvas.width = ctx.canvas.height = 0;
			let ratio = .8;
			if (ascent) {
				ratio = ascent / (ascent + descent);
			} else {
				if (util_FeatureTest.platform.isFirefox) {
					warn$2("Enable the `dom.textMetrics.fontBoundingBox.enabled` preference " + "in `about:config` to improve TextLayer rendering.");
				}
				if (style.ascent) {
					ratio = style.ascent;
				} else if (style.descent) {
					ratio = 1 + style.descent;
				}
			}
			this.#ascentCache.set(fontFamily, ratio);
			return ratio;
		}
	};
	;
	RENDERING_CANCELLED_TIMEOUT = 100;
	PDFDocumentLoadingTask = class PDFDocumentLoadingTask {
		static #docId = 0;
		_capability = Promise.withResolvers();
		_transport = null;
		_worker = null;
		docId = `d${PDFDocumentLoadingTask.#docId++}`;
		destroyed = false;
		onPassword = null;
		onProgress = null;
		get promise() {
			return this._capability.promise;
		}
		async destroy() {
			this.destroyed = true;
			try {
				if (this._worker?.port) {
					this._worker._pendingDestroy = true;
				}
				await this._transport?.destroy();
			} catch (ex) {
				if (this._worker?.port) {
					delete this._worker._pendingDestroy;
				}
				throw ex;
			}
			this._transport = null;
			this._worker?.destroy();
			this._worker = null;
		}
		async getData() {
			return this._transport.getData();
		}
	};
	PDFDataRangeTransport = class {
		#capability = Promise.withResolvers();
		#progressiveDoneListeners = [];
		#progressiveReadListeners = [];
		#progressListeners = [];
		#rangeListeners = [];
		constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) {
			this.length = length;
			this.initialData = initialData;
			this.progressiveDone = progressiveDone;
			this.contentDispositionFilename = contentDispositionFilename;
		}
		addRangeListener(listener) {
			this.#rangeListeners.push(listener);
		}
		addProgressListener(listener) {
			this.#progressListeners.push(listener);
		}
		addProgressiveReadListener(listener) {
			this.#progressiveReadListeners.push(listener);
		}
		addProgressiveDoneListener(listener) {
			this.#progressiveDoneListeners.push(listener);
		}
		onDataRange(begin, chunk) {
			for (const listener of this.#rangeListeners) {
				listener(begin, chunk);
			}
		}
		onDataProgress(loaded, total) {
			this.#capability.promise.then(() => {
				for (const listener of this.#progressListeners) {
					listener(loaded, total);
				}
			});
		}
		onDataProgressiveRead(chunk) {
			this.#capability.promise.then(() => {
				for (const listener of this.#progressiveReadListeners) {
					listener(chunk);
				}
			});
		}
		onDataProgressiveDone() {
			this.#capability.promise.then(() => {
				for (const listener of this.#progressiveDoneListeners) {
					listener();
				}
			});
		}
		transportReady() {
			this.#capability.resolve();
		}
		requestDataRange(begin, end) {
			unreachable("Abstract method PDFDataRangeTransport.requestDataRange");
		}
		abort() {}
	};
	PDFDocumentProxy = class {
		constructor(pdfInfo, transport) {
			this._pdfInfo = pdfInfo;
			this._transport = transport;
		}
		get annotationStorage() {
			return this._transport.annotationStorage;
		}
		get canvasFactory() {
			return this._transport.canvasFactory;
		}
		get filterFactory() {
			return this._transport.filterFactory;
		}
		get numPages() {
			return this._pdfInfo.numPages;
		}
		get fingerprints() {
			return this._pdfInfo.fingerprints;
		}
		get isPureXfa() {
			return shadow(this, "isPureXfa", !!this._transport._htmlForXfa);
		}
		get allXfaHtml() {
			return this._transport._htmlForXfa;
		}
		getPage(pageNumber) {
			return this._transport.getPage(pageNumber);
		}
		getPageIndex(ref) {
			return this._transport.getPageIndex(ref);
		}
		getDestinations() {
			return this._transport.getDestinations();
		}
		getDestination(id) {
			return this._transport.getDestination(id);
		}
		getPageLabels() {
			return this._transport.getPageLabels();
		}
		getPageLayout() {
			return this._transport.getPageLayout();
		}
		getPageMode() {
			return this._transport.getPageMode();
		}
		getViewerPreferences() {
			return this._transport.getViewerPreferences();
		}
		getOpenAction() {
			return this._transport.getOpenAction();
		}
		getAttachments() {
			return this._transport.getAttachments();
		}
		getAnnotationsByType(types, pageIndexesToSkip) {
			return this._transport.getAnnotationsByType(types, pageIndexesToSkip);
		}
		getJSActions() {
			return this._transport.getDocJSActions();
		}
		getOutline() {
			return this._transport.getOutline();
		}
		getOptionalContentConfig({ intent = "display" } = {}) {
			const { renderingIntent } = this._transport.getRenderingIntent(intent);
			return this._transport.getOptionalContentConfig(renderingIntent);
		}
		getPermissions() {
			return this._transport.getPermissions();
		}
		getMetadata() {
			return this._transport.getMetadata();
		}
		getMarkInfo() {
			return this._transport.getMarkInfo();
		}
		getData() {
			return this._transport.getData();
		}
		saveDocument() {
			return this._transport.saveDocument();
		}
		getDownloadInfo() {
			return this._transport.downloadInfoCapability.promise;
		}
		cleanup(keepLoadedFonts = false) {
			return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);
		}
		destroy() {
			return this.loadingTask.destroy();
		}
		cachedPageNumber(ref) {
			return this._transport.cachedPageNumber(ref);
		}
		get loadingParams() {
			return this._transport.loadingParams;
		}
		get loadingTask() {
			return this._transport.loadingTask;
		}
		getFieldObjects() {
			return this._transport.getFieldObjects();
		}
		hasJSActions() {
			return this._transport.hasJSActions();
		}
		getCalculationOrderIds() {
			return this._transport.getCalculationOrderIds();
		}
	};
	PDFPageProxy = class {
		#pendingCleanup = false;
		constructor(pageIndex, pageInfo, transport, pdfBug = false) {
			this._pageIndex = pageIndex;
			this._pageInfo = pageInfo;
			this._transport = transport;
			this._stats = pdfBug ? new StatTimer() : null;
			this._pdfBug = pdfBug;
			this.commonObjs = transport.commonObjs;
			this.objs = new PDFObjects();
			this._intentStates = new Map();
			this.destroyed = false;
			this.recordedBBoxes = null;
		}
		get pageNumber() {
			return this._pageIndex + 1;
		}
		get rotate() {
			return this._pageInfo.rotate;
		}
		get ref() {
			return this._pageInfo.ref;
		}
		get userUnit() {
			return this._pageInfo.userUnit;
		}
		get view() {
			return this._pageInfo.view;
		}
		getViewport({ scale, rotation = this.rotate, offsetX = 0, offsetY = 0, dontFlip = false } = {}) {
			return new PageViewport({
				viewBox: this.view,
				userUnit: this.userUnit,
				scale,
				rotation,
				offsetX,
				offsetY,
				dontFlip
			});
		}
		getAnnotations({ intent = "display" } = {}) {
			const { renderingIntent } = this._transport.getRenderingIntent(intent);
			return this._transport.getAnnotations(this._pageIndex, renderingIntent);
		}
		getJSActions() {
			return this._transport.getPageJSActions(this._pageIndex);
		}
		get filterFactory() {
			return this._transport.filterFactory;
		}
		get isPureXfa() {
			return shadow(this, "isPureXfa", !!this._transport._htmlForXfa);
		}
		async getXfa() {
			return this._transport._htmlForXfa?.children[this._pageIndex] || null;
		}
		render({ canvasContext, canvas = canvasContext.canvas, viewport, intent = "display", annotationMode = AnnotationMode.ENABLE, transform = null, background = null, optionalContentConfigPromise = null, annotationCanvasMap = null, pageColors = null, printAnnotationStorage = null, isEditing = false, recordOperations = false, operationsFilter = null }) {
			this._stats?.time("Overall");
			const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, isEditing);
			const { renderingIntent, cacheKey } = intentArgs;
			this.#pendingCleanup = false;
			optionalContentConfigPromise ||= this._transport.getOptionalContentConfig(renderingIntent);
			let intentState = this._intentStates.get(cacheKey);
			if (!intentState) {
				intentState = Object.create(null);
				this._intentStates.set(cacheKey, intentState);
			}
			if (intentState.streamReaderCancelTimeout) {
				clearTimeout(intentState.streamReaderCancelTimeout);
				intentState.streamReaderCancelTimeout = null;
			}
			const intentPrint = !!(renderingIntent & RenderingIntentFlag.PRINT);
			if (!intentState.displayReadyCapability) {
				intentState.displayReadyCapability = Promise.withResolvers();
				intentState.operatorList = {
					fnArray: [],
					argsArray: [],
					lastChunk: false,
					separateAnnots: null
				};
				this._stats?.time("Page Request");
				this._pumpOperatorList(intentArgs);
			}
			const recordForDebugger = Boolean(this._pdfBug && globalThis.StepperManager?.enabled);
			const shouldRecordOperations = !this.recordedBBoxes && (recordOperations || recordForDebugger);
			const complete$1 = (error$2) => {
				intentState.renderTasks.delete(internalRenderTask);
				if (shouldRecordOperations) {
					const recordedBBoxes = internalRenderTask.gfx?.dependencyTracker.take();
					if (recordedBBoxes) {
						if (internalRenderTask.stepper) {
							internalRenderTask.stepper.setOperatorBBoxes(recordedBBoxes, internalRenderTask.gfx.dependencyTracker.takeDebugMetadata());
						}
						if (recordOperations) {
							this.recordedBBoxes = recordedBBoxes;
						}
					}
				}
				if (intentPrint) {
					this.#pendingCleanup = true;
				}
				this.#tryCleanup();
				if (error$2) {
					internalRenderTask.capability.reject(error$2);
					this._abortOperatorList({
						intentState,
						reason: error$2 instanceof Error ? error$2 : new Error(error$2)
					});
				} else {
					internalRenderTask.capability.resolve();
				}
				if (this._stats) {
					this._stats.timeEnd("Rendering");
					this._stats.timeEnd("Overall");
					if (globalThis.Stats?.enabled) {
						globalThis.Stats.add(this.pageNumber, this._stats);
					}
				}
			};
			const internalRenderTask = new InternalRenderTask({
				callback: complete$1,
				params: {
					canvas,
					canvasContext,
					dependencyTracker: shouldRecordOperations ? new CanvasDependencyTracker(canvas, intentState.operatorList.length, recordForDebugger) : null,
					viewport,
					transform,
					background
				},
				objs: this.objs,
				commonObjs: this.commonObjs,
				annotationCanvasMap,
				operatorList: intentState.operatorList,
				pageIndex: this._pageIndex,
				canvasFactory: this._transport.canvasFactory,
				filterFactory: this._transport.filterFactory,
				useRequestAnimationFrame: !intentPrint,
				pdfBug: this._pdfBug,
				pageColors,
				enableHWA: this._transport.enableHWA,
				operationsFilter
			});
			(intentState.renderTasks ||= new Set()).add(internalRenderTask);
			const renderTask = internalRenderTask.task;
			Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => {
				if (this.destroyed) {
					complete$1();
					return;
				}
				this._stats?.time("Rendering");
				if (!(optionalContentConfig.renderingIntent & renderingIntent)) {
					throw new Error("Must use the same `intent`-argument when calling the `PDFPageProxy.render` " + "and `PDFDocumentProxy.getOptionalContentConfig` methods.");
				}
				internalRenderTask.initializeGraphics({
					transparency,
					optionalContentConfig
				});
				internalRenderTask.operatorListChanged();
			}).catch(complete$1);
			return renderTask;
		}
		getOperatorList({ intent = "display", annotationMode = AnnotationMode.ENABLE, printAnnotationStorage = null, isEditing = false } = {}) {
			function operatorListChanged() {
				if (intentState.operatorList.lastChunk) {
					intentState.opListReadCapability.resolve(intentState.operatorList);
					intentState.renderTasks.delete(opListTask);
				}
			}
			const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, isEditing, true);
			let intentState = this._intentStates.get(intentArgs.cacheKey);
			if (!intentState) {
				intentState = Object.create(null);
				this._intentStates.set(intentArgs.cacheKey, intentState);
			}
			let opListTask;
			if (!intentState.opListReadCapability) {
				opListTask = Object.create(null);
				opListTask.operatorListChanged = operatorListChanged;
				intentState.opListReadCapability = Promise.withResolvers();
				(intentState.renderTasks ||= new Set()).add(opListTask);
				intentState.operatorList = {
					fnArray: [],
					argsArray: [],
					lastChunk: false,
					separateAnnots: null
				};
				this._stats?.time("Page Request");
				this._pumpOperatorList(intentArgs);
			}
			return intentState.opListReadCapability.promise;
		}
		streamTextContent({ includeMarkedContent = false, disableNormalization = false } = {}) {
			const TEXT_CONTENT_CHUNK_SIZE = 100;
			return this._transport.messageHandler.sendWithStream("GetTextContent", {
				pageIndex: this._pageIndex,
				includeMarkedContent: includeMarkedContent === true,
				disableNormalization: disableNormalization === true
			}, {
				highWaterMark: TEXT_CONTENT_CHUNK_SIZE,
				size(textContent) {
					return textContent.items.length;
				}
			});
		}
		getTextContent(params = {}) {
			if (this._transport._htmlForXfa) {
				return this.getXfa().then((xfa) => XfaText.textContent(xfa));
			}
			const readableStream = this.streamTextContent(params);
			return new Promise(function(resolve, reject) {
				function pump() {
					reader.read().then(function({ value, done }) {
						if (done) {
							resolve(textContent);
							return;
						}
						textContent.lang ??= value.lang;
						Object.assign(textContent.styles, value.styles);
						textContent.items.push(...value.items);
						pump();
					}, reject);
				}
				const reader = readableStream.getReader();
				const textContent = {
					items: [],
					styles: Object.create(null),
					lang: null
				};
				pump();
			});
		}
		getStructTree() {
			return this._transport.getStructTree(this._pageIndex);
		}
		_destroy() {
			this.destroyed = true;
			const waitOn = [];
			for (const intentState of this._intentStates.values()) {
				this._abortOperatorList({
					intentState,
					reason: new Error("Page was destroyed."),
					force: true
				});
				if (intentState.opListReadCapability) {
					continue;
				}
				for (const internalRenderTask of intentState.renderTasks) {
					waitOn.push(internalRenderTask.completed);
					internalRenderTask.cancel();
				}
			}
			this.objs.clear();
			this.#pendingCleanup = false;
			return Promise.all(waitOn);
		}
		cleanup(resetStats = false) {
			this.#pendingCleanup = true;
			const success = this.#tryCleanup();
			if (resetStats && success) {
				this._stats &&= new StatTimer();
			}
			return success;
		}
		#tryCleanup() {
			if (!this.#pendingCleanup || this.destroyed) {
				return false;
			}
			for (const { renderTasks, operatorList } of this._intentStates.values()) {
				if (renderTasks.size > 0 || !operatorList.lastChunk) {
					return false;
				}
			}
			this._intentStates.clear();
			this.objs.clear();
			this.#pendingCleanup = false;
			return true;
		}
		_startRenderPage(transparency, cacheKey) {
			const intentState = this._intentStates.get(cacheKey);
			if (!intentState) {
				return;
			}
			this._stats?.timeEnd("Page Request");
			intentState.displayReadyCapability?.resolve(transparency);
		}
		_renderPageChunk(operatorListChunk, intentState) {
			for (let i$7 = 0, ii = operatorListChunk.length; i$7 < ii; i$7++) {
				intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i$7]);
				intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i$7]);
			}
			intentState.operatorList.lastChunk = operatorListChunk.lastChunk;
			intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;
			for (const internalRenderTask of intentState.renderTasks) {
				internalRenderTask.operatorListChanged();
			}
			if (operatorListChunk.lastChunk) {
				this.#tryCleanup();
			}
		}
		_pumpOperatorList({ renderingIntent, cacheKey, annotationStorageSerializable, modifiedIds }) {
			const { map: map$2, transfer } = annotationStorageSerializable;
			const readableStream = this._transport.messageHandler.sendWithStream("GetOperatorList", {
				pageIndex: this._pageIndex,
				intent: renderingIntent,
				cacheKey,
				annotationStorage: map$2,
				modifiedIds
			}, transfer);
			const reader = readableStream.getReader();
			const intentState = this._intentStates.get(cacheKey);
			intentState.streamReader = reader;
			const pump = () => {
				reader.read().then(({ value, done }) => {
					if (done) {
						intentState.streamReader = null;
						return;
					}
					if (this._transport.destroyed) {
						return;
					}
					this._renderPageChunk(value, intentState);
					pump();
				}, (reason) => {
					intentState.streamReader = null;
					if (this._transport.destroyed) {
						return;
					}
					if (intentState.operatorList) {
						intentState.operatorList.lastChunk = true;
						for (const internalRenderTask of intentState.renderTasks) {
							internalRenderTask.operatorListChanged();
						}
						this.#tryCleanup();
					}
					if (intentState.displayReadyCapability) {
						intentState.displayReadyCapability.reject(reason);
					} else if (intentState.opListReadCapability) {
						intentState.opListReadCapability.reject(reason);
					} else {
						throw reason;
					}
				});
			};
			pump();
		}
		_abortOperatorList({ intentState, reason, force = false }) {
			if (!intentState.streamReader) {
				return;
			}
			if (intentState.streamReaderCancelTimeout) {
				clearTimeout(intentState.streamReaderCancelTimeout);
				intentState.streamReaderCancelTimeout = null;
			}
			if (!force) {
				if (intentState.renderTasks.size > 0) {
					return;
				}
				if (reason instanceof RenderingCancelledException) {
					let delay = RENDERING_CANCELLED_TIMEOUT;
					if (reason.extraDelay > 0 && reason.extraDelay < 1e3) {
						delay += reason.extraDelay;
					}
					intentState.streamReaderCancelTimeout = setTimeout(() => {
						intentState.streamReaderCancelTimeout = null;
						this._abortOperatorList({
							intentState,
							reason,
							force: true
						});
					}, delay);
					return;
				}
			}
			intentState.streamReader.cancel(new AbortException(reason.message)).catch(() => {});
			intentState.streamReader = null;
			if (this._transport.destroyed) {
				return;
			}
			for (const [curCacheKey, curIntentState] of this._intentStates) {
				if (curIntentState === intentState) {
					this._intentStates.delete(curCacheKey);
					break;
				}
			}
			this.cleanup();
		}
		get stats() {
			return this._stats;
		}
	};
	PDFWorker = class PDFWorker {
		#capability = Promise.withResolvers();
		#messageHandler = null;
		#port = null;
		#webWorker = null;
		static #fakeWorkerId = 0;
		static #isWorkerDisabled = false;
		static #workerPorts = new WeakMap();
		static {
			if (isNodeJS) {
				this.#isWorkerDisabled = true;
				GlobalWorkerOptions.workerSrc ||= "./pdf.worker.mjs";
			}
			this._isSameOrigin = (baseUrl, otherUrl) => {
				const base = URL.parse(baseUrl);
				if (!base?.origin || base.origin === "null") {
					return false;
				}
				const other = new URL(otherUrl, base);
				return base.origin === other.origin;
			};
			this._createCDNWrapper = (url) => {
				const wrapper = `await import("${url}");`;
				return URL.createObjectURL(new Blob([wrapper], { type: "text/javascript" }));
			};
			this.fromPort = (params) => {
				deprecated$2("`PDFWorker.fromPort` - please use `PDFWorker.create` instead.");
				if (!params?.port) {
					throw new Error("PDFWorker.fromPort - invalid method signature.");
				}
				return this.create(params);
			};
		}
		constructor({ name = null, port = null, verbosity: verbosity$1 = getVerbosityLevel() } = {}) {
			this.name = name;
			this.destroyed = false;
			this.verbosity = verbosity$1;
			if (port) {
				if (PDFWorker.#workerPorts.has(port)) {
					throw new Error("Cannot use more than one PDFWorker per port.");
				}
				PDFWorker.#workerPorts.set(port, this);
				this.#initializeFromPort(port);
			} else {
				this.#initialize();
			}
		}
		get promise() {
			return this.#capability.promise;
		}
		#resolve() {
			this.#capability.resolve();
			this.#messageHandler.send("configure", { verbosity: this.verbosity });
		}
		get port() {
			return this.#port;
		}
		get messageHandler() {
			return this.#messageHandler;
		}
		#initializeFromPort(port) {
			this.#port = port;
			this.#messageHandler = new MessageHandler("main", "worker", port);
			this.#messageHandler.on("ready", () => {});
			this.#resolve();
		}
		#initialize() {
			if (PDFWorker.#isWorkerDisabled || PDFWorker.#mainThreadWorkerMessageHandler) {
				this.#setupFakeWorker();
				return;
			}
			let { workerSrc } = PDFWorker;
			try {
				if (!PDFWorker._isSameOrigin(window.location, workerSrc)) {
					workerSrc = PDFWorker._createCDNWrapper(new URL(workerSrc, window.location).href);
				}
				const worker = new Worker(workerSrc, { type: "module" });
				const messageHandler = new MessageHandler("main", "worker", worker);
				const terminateEarly = () => {
					ac.abort();
					messageHandler.destroy();
					worker.terminate();
					if (this.destroyed) {
						this.#capability.reject(new Error("Worker was destroyed"));
					} else {
						this.#setupFakeWorker();
					}
				};
				const ac = new AbortController();
				worker.addEventListener("error", () => {
					if (!this.#webWorker) {
						terminateEarly();
					}
				}, { signal: ac.signal });
				messageHandler.on("test", (data) => {
					ac.abort();
					if (this.destroyed || !data) {
						terminateEarly();
						return;
					}
					this.#messageHandler = messageHandler;
					this.#port = worker;
					this.#webWorker = worker;
					this.#resolve();
				});
				messageHandler.on("ready", (data) => {
					ac.abort();
					if (this.destroyed) {
						terminateEarly();
						return;
					}
					try {
						sendTest();
					} catch {
						this.#setupFakeWorker();
					}
				});
				const sendTest = () => {
					const testObj = new Uint8Array();
					messageHandler.send("test", testObj, [testObj.buffer]);
				};
				sendTest();
				return;
			} catch {
				info("The worker has been disabled.");
			}
			this.#setupFakeWorker();
		}
		#setupFakeWorker() {
			if (!PDFWorker.#isWorkerDisabled) {
				warn$2("Setting up fake worker.");
				PDFWorker.#isWorkerDisabled = true;
			}
			PDFWorker._setupFakeWorkerGlobal.then((WorkerMessageHandler) => {
				if (this.destroyed) {
					this.#capability.reject(new Error("Worker was destroyed"));
					return;
				}
				const port = new LoopbackPort();
				this.#port = port;
				const id = `fake${PDFWorker.#fakeWorkerId++}`;
				const workerHandler = new MessageHandler(id + "_worker", id, port);
				WorkerMessageHandler.setup(workerHandler, port);
				this.#messageHandler = new MessageHandler(id, id + "_worker", port);
				this.#resolve();
			}).catch((reason) => {
				this.#capability.reject(new Error(`Setting up fake worker failed: "${reason.message}".`));
			});
		}
		destroy() {
			this.destroyed = true;
			this.#webWorker?.terminate();
			this.#webWorker = null;
			PDFWorker.#workerPorts.delete(this.#port);
			this.#port = null;
			this.#messageHandler?.destroy();
			this.#messageHandler = null;
		}
		static create(params) {
			const cachedPort = this.#workerPorts.get(params?.port);
			if (cachedPort) {
				if (cachedPort._pendingDestroy) {
					throw new Error("PDFWorker.create - the worker is being destroyed.\n" + "Please remember to await `PDFDocumentLoadingTask.destroy()`-calls.");
				}
				return cachedPort;
			}
			return new PDFWorker(params);
		}
		static get workerSrc() {
			if (GlobalWorkerOptions.workerSrc) {
				return GlobalWorkerOptions.workerSrc;
			}
			throw new Error("No \"GlobalWorkerOptions.workerSrc\" specified.");
		}
		static get #mainThreadWorkerMessageHandler() {
			try {
				return globalThis.pdfjsWorker?.WorkerMessageHandler || null;
			} catch {
				return null;
			}
		}
		static get _setupFakeWorkerGlobal() {
			const loader = async () => {
				if (this.#mainThreadWorkerMessageHandler) {
					return this.#mainThreadWorkerMessageHandler;
				}
				const worker = await import(
					/*webpackIgnore: true*/
					/*@vite-ignore*/
					this.workerSrc
);
				return worker.WorkerMessageHandler;
			};
			return shadow(this, "_setupFakeWorkerGlobal", loader());
		}
	};
	WorkerTransport = class {
		#methodPromises = new Map();
		#pageCache = new Map();
		#pagePromises = new Map();
		#pageRefCache = new Map();
		#passwordCapability = null;
		constructor(messageHandler, loadingTask, networkStream, params, factory, enableHWA) {
			this.messageHandler = messageHandler;
			this.loadingTask = loadingTask;
			this.commonObjs = new PDFObjects();
			this.fontLoader = new FontLoader({
				ownerDocument: params.ownerDocument,
				styleElement: params.styleElement
			});
			this.loadingParams = params.loadingParams;
			this._params = params;
			this.canvasFactory = factory.canvasFactory;
			this.filterFactory = factory.filterFactory;
			this.cMapReaderFactory = factory.cMapReaderFactory;
			this.standardFontDataFactory = factory.standardFontDataFactory;
			this.wasmFactory = factory.wasmFactory;
			this.destroyed = false;
			this.destroyCapability = null;
			this._networkStream = networkStream;
			this._fullReader = null;
			this._lastProgress = null;
			this.downloadInfoCapability = Promise.withResolvers();
			this.enableHWA = enableHWA;
			this.setupMessageHandler();
		}
		#cacheSimpleMethod(name, data = null) {
			const cachedPromise = this.#methodPromises.get(name);
			if (cachedPromise) {
				return cachedPromise;
			}
			const promise = this.messageHandler.sendWithPromise(name, data);
			this.#methodPromises.set(name, promise);
			return promise;
		}
		get annotationStorage() {
			return shadow(this, "annotationStorage", new AnnotationStorage());
		}
		getRenderingIntent(intent, annotationMode = AnnotationMode.ENABLE, printAnnotationStorage = null, isEditing = false, isOpList = false) {
			let renderingIntent = RenderingIntentFlag.DISPLAY;
			let annotationStorageSerializable = SerializableEmpty;
			switch (intent) {
				case "any":
					renderingIntent = RenderingIntentFlag.ANY;
					break;
				case "display": break;
				case "print":
					renderingIntent = RenderingIntentFlag.PRINT;
					break;
				default: warn$2(`getRenderingIntent - invalid intent: ${intent}`);
			}
			const annotationStorage = renderingIntent & RenderingIntentFlag.PRINT && printAnnotationStorage instanceof PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage;
			switch (annotationMode) {
				case AnnotationMode.DISABLE:
					renderingIntent += RenderingIntentFlag.ANNOTATIONS_DISABLE;
					break;
				case AnnotationMode.ENABLE: break;
				case AnnotationMode.ENABLE_FORMS:
					renderingIntent += RenderingIntentFlag.ANNOTATIONS_FORMS;
					break;
				case AnnotationMode.ENABLE_STORAGE:
					renderingIntent += RenderingIntentFlag.ANNOTATIONS_STORAGE;
					annotationStorageSerializable = annotationStorage.serializable;
					break;
				default: warn$2(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);
			}
			if (isEditing) {
				renderingIntent += RenderingIntentFlag.IS_EDITING;
			}
			if (isOpList) {
				renderingIntent += RenderingIntentFlag.OPLIST;
			}
			const { ids: modifiedIds, hash: modifiedIdsHash } = annotationStorage.modifiedIds;
			const cacheKeyBuf = [
				renderingIntent,
				annotationStorageSerializable.hash,
				modifiedIdsHash
			];
			return {
				renderingIntent,
				cacheKey: cacheKeyBuf.join("_"),
				annotationStorageSerializable,
				modifiedIds
			};
		}
		destroy() {
			if (this.destroyCapability) {
				return this.destroyCapability.promise;
			}
			this.destroyed = true;
			this.destroyCapability = Promise.withResolvers();
			this.#passwordCapability?.reject(new Error("Worker was destroyed during onPassword callback"));
			const waitOn = [];
			for (const page of this.#pageCache.values()) {
				waitOn.push(page._destroy());
			}
			this.#pageCache.clear();
			this.#pagePromises.clear();
			this.#pageRefCache.clear();
			if (this.hasOwnProperty("annotationStorage")) {
				this.annotationStorage.resetModified();
			}
			const terminated = this.messageHandler.sendWithPromise("Terminate", null);
			waitOn.push(terminated);
			Promise.all(waitOn).then(() => {
				this.commonObjs.clear();
				this.fontLoader.clear();
				this.#methodPromises.clear();
				this.filterFactory.destroy();
				TextLayer.cleanup();
				this._networkStream?.cancelAllRequests(new AbortException("Worker was terminated."));
				this.messageHandler?.destroy();
				this.messageHandler = null;
				this.destroyCapability.resolve();
			}, this.destroyCapability.reject);
			return this.destroyCapability.promise;
		}
		setupMessageHandler() {
			const { messageHandler, loadingTask } = this;
			messageHandler.on("GetReader", (data, sink) => {
				assert$1(this._networkStream, "GetReader - no `IPDFStream` instance available.");
				this._fullReader = this._networkStream.getFullReader();
				this._fullReader.onProgress = (evt) => {
					this._lastProgress = {
						loaded: evt.loaded,
						total: evt.total
					};
				};
				sink.onPull = () => {
					this._fullReader.read().then(function({ value, done }) {
						if (done) {
							sink.close();
							return;
						}
						assert$1(value instanceof ArrayBuffer, "GetReader - expected an ArrayBuffer.");
						sink.enqueue(new Uint8Array(value), 1, [value]);
					}).catch((reason) => {
						sink.error(reason);
					});
				};
				sink.onCancel = (reason) => {
					this._fullReader.cancel(reason);
					sink.ready.catch((readyReason) => {
						if (this.destroyed) {
							return;
						}
						throw readyReason;
					});
				};
			});
			messageHandler.on("ReaderHeadersReady", async (data) => {
				await this._fullReader.headersReady;
				const { isStreamingSupported, isRangeSupported, contentLength } = this._fullReader;
				if (!isStreamingSupported || !isRangeSupported) {
					if (this._lastProgress) {
						loadingTask.onProgress?.(this._lastProgress);
					}
					this._fullReader.onProgress = (evt) => {
						loadingTask.onProgress?.({
							loaded: evt.loaded,
							total: evt.total
						});
					};
				}
				return {
					isStreamingSupported,
					isRangeSupported,
					contentLength
				};
			});
			messageHandler.on("GetRangeReader", (data, sink) => {
				assert$1(this._networkStream, "GetRangeReader - no `IPDFStream` instance available.");
				const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);
				if (!rangeReader) {
					sink.close();
					return;
				}
				sink.onPull = () => {
					rangeReader.read().then(function({ value, done }) {
						if (done) {
							sink.close();
							return;
						}
						assert$1(value instanceof ArrayBuffer, "GetRangeReader - expected an ArrayBuffer.");
						sink.enqueue(new Uint8Array(value), 1, [value]);
					}).catch((reason) => {
						sink.error(reason);
					});
				};
				sink.onCancel = (reason) => {
					rangeReader.cancel(reason);
					sink.ready.catch((readyReason) => {
						if (this.destroyed) {
							return;
						}
						throw readyReason;
					});
				};
			});
			messageHandler.on("GetDoc", ({ pdfInfo }) => {
				this._numPages = pdfInfo.numPages;
				this._htmlForXfa = pdfInfo.htmlForXfa;
				delete pdfInfo.htmlForXfa;
				loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));
			});
			messageHandler.on("DocException", (ex) => {
				loadingTask._capability.reject(wrapReason(ex));
			});
			messageHandler.on("PasswordRequest", (ex) => {
				this.#passwordCapability = Promise.withResolvers();
				try {
					if (!loadingTask.onPassword) {
						throw wrapReason(ex);
					}
					const updatePassword = (password) => {
						if (password instanceof Error) {
							this.#passwordCapability.reject(password);
						} else {
							this.#passwordCapability.resolve({ password });
						}
					};
					loadingTask.onPassword(updatePassword, ex.code);
				} catch (err) {
					this.#passwordCapability.reject(err);
				}
				return this.#passwordCapability.promise;
			});
			messageHandler.on("DataLoaded", (data) => {
				loadingTask.onProgress?.({
					loaded: data.length,
					total: data.length
				});
				this.downloadInfoCapability.resolve(data);
			});
			messageHandler.on("StartRenderPage", (data) => {
				if (this.destroyed) {
					return;
				}
				const page = this.#pageCache.get(data.pageIndex);
				page._startRenderPage(data.transparency, data.cacheKey);
			});
			messageHandler.on("commonobj", ([id, type, exportedData]) => {
				if (this.destroyed) {
					return null;
				}
				if (this.commonObjs.has(id)) {
					return null;
				}
				switch (type) {
					case "Font":
						if ("error" in exportedData) {
							const exportedError = exportedData.error;
							warn$2(`Error during font loading: ${exportedError}`);
							this.commonObjs.resolve(id, exportedError);
							break;
						}
						const fontData = new FontInfo(exportedData);
						const inspectFont = this._params.pdfBug && globalThis.FontInspector?.enabled ? (font$1, url) => globalThis.FontInspector.fontAdded(font$1, url) : null;
						const font = new FontFaceObject(fontData, inspectFont, exportedData.extra, exportedData.charProcOperatorList);
						this.fontLoader.bind(font).catch(() => messageHandler.sendWithPromise("FontFallback", { id })).finally(() => {
							if (!font.fontExtraProperties && font.data) {
								font.clearData();
							}
							this.commonObjs.resolve(id, font);
						});
						break;
					case "CopyLocalImage":
						const { imageRef } = exportedData;
						assert$1(imageRef, "The imageRef must be defined.");
						for (const pageProxy of this.#pageCache.values()) {
							for (const [, data] of pageProxy.objs) {
								if (data?.ref !== imageRef) {
									continue;
								}
								if (!data.dataLen) {
									return null;
								}
								this.commonObjs.resolve(id, structuredClone(data));
								return data.dataLen;
							}
						}
						break;
					case "FontPath":
					case "Image":
						this.commonObjs.resolve(id, exportedData);
						break;
					case "Pattern":
						const pattern = new PatternInfo(exportedData);
						this.commonObjs.resolve(id, pattern.getIR());
						break;
					default: throw new Error(`Got unknown common object type ${type}`);
				}
				return null;
			});
			messageHandler.on("obj", ([id, pageIndex, type, imageData]) => {
				if (this.destroyed) {
					return;
				}
				const pageProxy = this.#pageCache.get(pageIndex);
				if (pageProxy.objs.has(id)) {
					return;
				}
				if (pageProxy._intentStates.size === 0) {
					imageData?.bitmap?.close();
					return;
				}
				switch (type) {
					case "Image":
					case "Pattern":
						pageProxy.objs.resolve(id, imageData);
						break;
					default: throw new Error(`Got unknown object type ${type}`);
				}
			});
			messageHandler.on("DocProgress", (data) => {
				if (this.destroyed) {
					return;
				}
				loadingTask.onProgress?.({
					loaded: data.loaded,
					total: data.total
				});
			});
			messageHandler.on("FetchBinaryData", async (data) => {
				if (this.destroyed) {
					throw new Error("Worker was destroyed.");
				}
				const factory = this[data.type];
				if (!factory) {
					throw new Error(`${data.type} not initialized, see the \`useWorkerFetch\` parameter.`);
				}
				return factory.fetch(data);
			});
		}
		getData() {
			return this.messageHandler.sendWithPromise("GetData", null);
		}
		saveDocument() {
			if (this.annotationStorage.size <= 0) {
				warn$2("saveDocument called while `annotationStorage` is empty, " + "please use the getData-method instead.");
			}
			const { map: map$2, transfer } = this.annotationStorage.serializable;
			return this.messageHandler.sendWithPromise("SaveDocument", {
				isPureXfa: !!this._htmlForXfa,
				numPages: this._numPages,
				annotationStorage: map$2,
				filename: this._fullReader?.filename ?? null
			}, transfer).finally(() => {
				this.annotationStorage.resetModified();
			});
		}
		getPage(pageNumber) {
			if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {
				return Promise.reject(new Error("Invalid page request."));
			}
			const pageIndex = pageNumber - 1, cachedPromise = this.#pagePromises.get(pageIndex);
			if (cachedPromise) {
				return cachedPromise;
			}
			const promise = this.messageHandler.sendWithPromise("GetPage", { pageIndex }).then((pageInfo) => {
				if (this.destroyed) {
					throw new Error("Transport destroyed");
				}
				if (pageInfo.refStr) {
					this.#pageRefCache.set(pageInfo.refStr, pageNumber);
				}
				const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.pdfBug);
				this.#pageCache.set(pageIndex, page);
				return page;
			});
			this.#pagePromises.set(pageIndex, promise);
			return promise;
		}
		getPageIndex(ref) {
			if (!isRefProxy(ref)) {
				return Promise.reject(new Error("Invalid pageIndex request."));
			}
			return this.messageHandler.sendWithPromise("GetPageIndex", {
				num: ref.num,
				gen: ref.gen
			});
		}
		getAnnotations(pageIndex, intent) {
			return this.messageHandler.sendWithPromise("GetAnnotations", {
				pageIndex,
				intent
			});
		}
		getFieldObjects() {
			return this.#cacheSimpleMethod("GetFieldObjects");
		}
		hasJSActions() {
			return this.#cacheSimpleMethod("HasJSActions");
		}
		getCalculationOrderIds() {
			return this.messageHandler.sendWithPromise("GetCalculationOrderIds", null);
		}
		getDestinations() {
			return this.messageHandler.sendWithPromise("GetDestinations", null);
		}
		getDestination(id) {
			if (typeof id !== "string") {
				return Promise.reject(new Error("Invalid destination request."));
			}
			return this.messageHandler.sendWithPromise("GetDestination", { id });
		}
		getPageLabels() {
			return this.messageHandler.sendWithPromise("GetPageLabels", null);
		}
		getPageLayout() {
			return this.messageHandler.sendWithPromise("GetPageLayout", null);
		}
		getPageMode() {
			return this.messageHandler.sendWithPromise("GetPageMode", null);
		}
		getViewerPreferences() {
			return this.messageHandler.sendWithPromise("GetViewerPreferences", null);
		}
		getOpenAction() {
			return this.messageHandler.sendWithPromise("GetOpenAction", null);
		}
		getAttachments() {
			return this.messageHandler.sendWithPromise("GetAttachments", null);
		}
		getAnnotationsByType(types, pageIndexesToSkip) {
			return this.messageHandler.sendWithPromise("GetAnnotationsByType", {
				types,
				pageIndexesToSkip
			});
		}
		getDocJSActions() {
			return this.#cacheSimpleMethod("GetDocJSActions");
		}
		getPageJSActions(pageIndex) {
			return this.messageHandler.sendWithPromise("GetPageJSActions", { pageIndex });
		}
		getStructTree(pageIndex) {
			return this.messageHandler.sendWithPromise("GetStructTree", { pageIndex });
		}
		getOutline() {
			return this.messageHandler.sendWithPromise("GetOutline", null);
		}
		getOptionalContentConfig(renderingIntent) {
			return this.#cacheSimpleMethod("GetOptionalContentConfig").then((data) => new OptionalContentConfig(data, renderingIntent));
		}
		getPermissions() {
			return this.messageHandler.sendWithPromise("GetPermissions", null);
		}
		getMetadata() {
			const name = "GetMetadata", cachedPromise = this.#methodPromises.get(name);
			if (cachedPromise) {
				return cachedPromise;
			}
			const promise = this.messageHandler.sendWithPromise(name, null).then((results) => ({
				info: results[0],
				metadata: results[1] ? new Metadata(results[1]) : null,
				contentDispositionFilename: this._fullReader?.filename ?? null,
				contentLength: this._fullReader?.contentLength ?? null
			}));
			this.#methodPromises.set(name, promise);
			return promise;
		}
		getMarkInfo() {
			return this.messageHandler.sendWithPromise("GetMarkInfo", null);
		}
		async startCleanup(keepLoadedFonts = false) {
			if (this.destroyed) {
				return;
			}
			await this.messageHandler.sendWithPromise("Cleanup", null);
			for (const page of this.#pageCache.values()) {
				const cleanupSuccessful = page.cleanup();
				if (!cleanupSuccessful) {
					throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`);
				}
			}
			this.commonObjs.clear();
			if (!keepLoadedFonts) {
				this.fontLoader.clear();
			}
			this.#methodPromises.clear();
			this.filterFactory.destroy(true);
			TextLayer.cleanup();
		}
		cachedPageNumber(ref) {
			if (!isRefProxy(ref)) {
				return null;
			}
			const refStr = ref.gen === 0 ? `${ref.num}R` : `${ref.num}R${ref.gen}`;
			return this.#pageRefCache.get(refStr) ?? null;
		}
	};
	RenderTask = class {
		#internalRenderTask = null;
		onContinue = null;
		onError = null;
		constructor(internalRenderTask) {
			this.#internalRenderTask = internalRenderTask;
		}
		get promise() {
			return this.#internalRenderTask.capability.promise;
		}
		cancel(extraDelay = 0) {
			this.#internalRenderTask.cancel(null, extraDelay);
		}
		get separateAnnots() {
			const { separateAnnots } = this.#internalRenderTask.operatorList;
			if (!separateAnnots) {
				return false;
			}
			const { annotationCanvasMap } = this.#internalRenderTask;
			return separateAnnots.form || separateAnnots.canvas && annotationCanvasMap?.size > 0;
		}
	};
	InternalRenderTask = class InternalRenderTask {
		#rAF = null;
		static #canvasInUse = new WeakSet();
		constructor({ callback, params, objs, commonObjs, annotationCanvasMap, operatorList, pageIndex, canvasFactory, filterFactory, useRequestAnimationFrame = false, pdfBug = false, pageColors = null, enableHWA = false, operationsFilter = null }) {
			this.callback = callback;
			this.params = params;
			this.objs = objs;
			this.commonObjs = commonObjs;
			this.annotationCanvasMap = annotationCanvasMap;
			this.operatorListIdx = null;
			this.operatorList = operatorList;
			this._pageIndex = pageIndex;
			this.canvasFactory = canvasFactory;
			this.filterFactory = filterFactory;
			this._pdfBug = pdfBug;
			this.pageColors = pageColors;
			this.running = false;
			this.graphicsReadyCallback = null;
			this.graphicsReady = false;
			this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== "undefined";
			this.cancelled = false;
			this.capability = Promise.withResolvers();
			this.task = new RenderTask(this);
			this._cancelBound = this.cancel.bind(this);
			this._continueBound = this._continue.bind(this);
			this._scheduleNextBound = this._scheduleNext.bind(this);
			this._nextBound = this._next.bind(this);
			this._canvas = params.canvas;
			this._canvasContext = params.canvas ? null : params.canvasContext;
			this._enableHWA = enableHWA;
			this._dependencyTracker = params.dependencyTracker;
			this._operationsFilter = operationsFilter;
		}
		get completed() {
			return this.capability.promise.catch(function() {});
		}
		initializeGraphics({ transparency = false, optionalContentConfig }) {
			if (this.cancelled) {
				return;
			}
			if (this._canvas) {
				if (InternalRenderTask.#canvasInUse.has(this._canvas)) {
					throw new Error("Cannot use the same canvas during multiple render() operations. " + "Use different canvas or ensure previous operations were " + "cancelled or completed.");
				}
				InternalRenderTask.#canvasInUse.add(this._canvas);
			}
			if (this._pdfBug && globalThis.StepperManager?.enabled) {
				this.stepper = globalThis.StepperManager.create(this._pageIndex);
				this.stepper.init(this.operatorList);
				this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();
			}
			const { viewport, transform, background, dependencyTracker } = this.params;
			const canvasContext = this._canvasContext || this._canvas.getContext("2d", {
				alpha: false,
				willReadFrequently: !this._enableHWA
			});
			this.gfx = new CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, { optionalContentConfig }, this.annotationCanvasMap, this.pageColors, dependencyTracker);
			this.gfx.beginDrawing({
				transform,
				viewport,
				transparency,
				background
			});
			this.operatorListIdx = 0;
			this.graphicsReady = true;
			this.graphicsReadyCallback?.();
		}
		cancel(error$2 = null, extraDelay = 0) {
			this.running = false;
			this.cancelled = true;
			this.gfx?.endDrawing();
			if (this.#rAF) {
				window.cancelAnimationFrame(this.#rAF);
				this.#rAF = null;
			}
			InternalRenderTask.#canvasInUse.delete(this._canvas);
			error$2 ||= new RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, extraDelay);
			this.callback(error$2);
			this.task.onError?.(error$2);
		}
		operatorListChanged() {
			if (!this.graphicsReady) {
				this.graphicsReadyCallback ||= this._continueBound;
				return;
			}
			this.gfx.dependencyTracker?.growOperationsCount(this.operatorList.fnArray.length);
			this.stepper?.updateOperatorList(this.operatorList);
			if (this.running) {
				return;
			}
			this._continue();
		}
		_continue() {
			this.running = true;
			if (this.cancelled) {
				return;
			}
			if (this.task.onContinue) {
				this.task.onContinue(this._scheduleNextBound);
			} else {
				this._scheduleNext();
			}
		}
		_scheduleNext() {
			if (this._useRequestAnimationFrame) {
				this.#rAF = window.requestAnimationFrame(() => {
					this.#rAF = null;
					this._nextBound().catch(this._cancelBound);
				});
			} else {
				Promise.resolve().then(this._nextBound).catch(this._cancelBound);
			}
		}
		async _next() {
			if (this.cancelled) {
				return;
			}
			this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper, this._operationsFilter);
			if (this.operatorListIdx === this.operatorList.argsArray.length) {
				this.running = false;
				if (this.operatorList.lastChunk) {
					this.gfx.endDrawing();
					InternalRenderTask.#canvasInUse.delete(this._canvas);
					this.callback();
				}
			}
		}
	};
	version$4 = "5.4.394";
	build = "2cc809ade";
	;
	ColorPicker = class ColorPicker {
		#button = null;
		#buttonSwatch = null;
		#defaultColor;
		#dropdown = null;
		#dropdownWasFromKeyboard = false;
		#isMainColorPicker = false;
		#editor = null;
		#eventBus;
		#openDropdownAC = null;
		#uiManager = null;
		static #l10nColor = null;
		static get _keyboardManager() {
			return shadow(this, "_keyboardManager", new KeyboardManager([
				[["Escape", "mac+Escape"], ColorPicker.prototype._hideDropdownFromKeyboard],
				[[" ", "mac+ "], ColorPicker.prototype._colorSelectFromKeyboard],
				[[
					"ArrowDown",
					"ArrowRight",
					"mac+ArrowDown",
					"mac+ArrowRight"
				], ColorPicker.prototype._moveToNext],
				[[
					"ArrowUp",
					"ArrowLeft",
					"mac+ArrowUp",
					"mac+ArrowLeft"
				], ColorPicker.prototype._moveToPrevious],
				[["Home", "mac+Home"], ColorPicker.prototype._moveToBeginning],
				[["End", "mac+End"], ColorPicker.prototype._moveToEnd]
			]));
		}
		constructor({ editor = null, uiManager = null }) {
			if (editor) {
				this.#isMainColorPicker = false;
				this.#editor = editor;
			} else {
				this.#isMainColorPicker = true;
			}
			this.#uiManager = editor?._uiManager || uiManager;
			this.#eventBus = this.#uiManager._eventBus;
			this.#defaultColor = editor?.color?.toUpperCase() || this.#uiManager?.highlightColors.values().next().value || "#FFFF98";
			ColorPicker.#l10nColor ||= Object.freeze({
				blue: "pdfjs-editor-colorpicker-blue",
				green: "pdfjs-editor-colorpicker-green",
				pink: "pdfjs-editor-colorpicker-pink",
				red: "pdfjs-editor-colorpicker-red",
				yellow: "pdfjs-editor-colorpicker-yellow"
			});
		}
		renderButton() {
			const button = this.#button = document.createElement("button");
			button.className = "colorPicker";
			button.tabIndex = "0";
			button.setAttribute("data-l10n-id", "pdfjs-editor-colorpicker-button");
			button.ariaHasPopup = "true";
			if (this.#editor) {
				button.ariaControls = `${this.#editor.id}_colorpicker_dropdown`;
			}
			const signal = this.#uiManager._signal;
			button.addEventListener("click", this.#openDropdown.bind(this), { signal });
			button.addEventListener("keydown", this.#keyDown.bind(this), { signal });
			const swatch = this.#buttonSwatch = document.createElement("span");
			swatch.className = "swatch";
			swatch.ariaHidden = "true";
			swatch.style.backgroundColor = this.#defaultColor;
			button.append(swatch);
			return button;
		}
		renderMainDropdown() {
			const dropdown = this.#dropdown = this.#getDropdownRoot();
			dropdown.ariaOrientation = "horizontal";
			dropdown.ariaLabelledBy = "highlightColorPickerLabel";
			return dropdown;
		}
		#getDropdownRoot() {
			const div = document.createElement("div");
			const signal = this.#uiManager._signal;
			div.addEventListener("contextmenu", noContextMenu, { signal });
			div.className = "dropdown";
			div.role = "listbox";
			div.ariaMultiSelectable = "false";
			div.ariaOrientation = "vertical";
			div.setAttribute("data-l10n-id", "pdfjs-editor-colorpicker-dropdown");
			if (this.#editor) {
				div.id = `${this.#editor.id}_colorpicker_dropdown`;
			}
			for (const [name, color] of this.#uiManager.highlightColors) {
				const button = document.createElement("button");
				button.tabIndex = "0";
				button.role = "option";
				button.setAttribute("data-color", color);
				button.title = name;
				button.setAttribute("data-l10n-id", ColorPicker.#l10nColor[name]);
				const swatch = document.createElement("span");
				button.append(swatch);
				swatch.className = "swatch";
				swatch.style.backgroundColor = color;
				button.ariaSelected = color === this.#defaultColor;
				button.addEventListener("click", this.#colorSelect.bind(this, color), { signal });
				div.append(button);
			}
			div.addEventListener("keydown", this.#keyDown.bind(this), { signal });
			return div;
		}
		#colorSelect(color, event) {
			event.stopPropagation();
			this.#eventBus.dispatch("switchannotationeditorparams", {
				source: this,
				type: AnnotationEditorParamsType.HIGHLIGHT_COLOR,
				value: color
			});
			this.updateColor(color);
		}
		_colorSelectFromKeyboard(event) {
			if (event.target === this.#button) {
				this.#openDropdown(event);
				return;
			}
			const color = event.target.getAttribute("data-color");
			if (!color) {
				return;
			}
			this.#colorSelect(color, event);
		}
		_moveToNext(event) {
			if (!this.#isDropdownVisible) {
				this.#openDropdown(event);
				return;
			}
			if (event.target === this.#button) {
				this.#dropdown.firstChild?.focus();
				return;
			}
			event.target.nextSibling?.focus();
		}
		_moveToPrevious(event) {
			if (event.target === this.#dropdown?.firstChild || event.target === this.#button) {
				if (this.#isDropdownVisible) {
					this._hideDropdownFromKeyboard();
				}
				return;
			}
			if (!this.#isDropdownVisible) {
				this.#openDropdown(event);
			}
			event.target.previousSibling?.focus();
		}
		_moveToBeginning(event) {
			if (!this.#isDropdownVisible) {
				this.#openDropdown(event);
				return;
			}
			this.#dropdown.firstChild?.focus();
		}
		_moveToEnd(event) {
			if (!this.#isDropdownVisible) {
				this.#openDropdown(event);
				return;
			}
			this.#dropdown.lastChild?.focus();
		}
		#keyDown(event) {
			ColorPicker._keyboardManager.exec(this, event);
		}
		#openDropdown(event) {
			if (this.#isDropdownVisible) {
				this.hideDropdown();
				return;
			}
			this.#dropdownWasFromKeyboard = event.detail === 0;
			if (!this.#openDropdownAC) {
				this.#openDropdownAC = new AbortController();
				window.addEventListener("pointerdown", this.#pointerDown.bind(this), { signal: this.#uiManager.combinedSignal(this.#openDropdownAC) });
			}
			this.#button.ariaExpanded = "true";
			if (this.#dropdown) {
				this.#dropdown.classList.remove("hidden");
				return;
			}
			const root = this.#dropdown = this.#getDropdownRoot();
			this.#button.append(root);
		}
		#pointerDown(event) {
			if (this.#dropdown?.contains(event.target)) {
				return;
			}
			this.hideDropdown();
		}
		hideDropdown() {
			this.#dropdown?.classList.add("hidden");
			this.#button.ariaExpanded = "false";
			this.#openDropdownAC?.abort();
			this.#openDropdownAC = null;
		}
		get #isDropdownVisible() {
			return this.#dropdown && !this.#dropdown.classList.contains("hidden");
		}
		_hideDropdownFromKeyboard() {
			if (this.#isMainColorPicker) {
				return;
			}
			if (!this.#isDropdownVisible) {
				this.#editor?.unselect();
				return;
			}
			this.hideDropdown();
			this.#button.focus({
				preventScroll: true,
				focusVisible: this.#dropdownWasFromKeyboard
			});
		}
		updateColor(color) {
			if (this.#buttonSwatch) {
				this.#buttonSwatch.style.backgroundColor = color;
			}
			if (!this.#dropdown) {
				return;
			}
			const i$7 = this.#uiManager.highlightColors.values();
			for (const child of this.#dropdown.children) {
				child.ariaSelected = i$7.next().value === color.toUpperCase();
			}
		}
		destroy() {
			this.#button?.remove();
			this.#button = null;
			this.#buttonSwatch = null;
			this.#dropdown?.remove();
			this.#dropdown = null;
		}
	};
	BasicColorPicker = class BasicColorPicker {
		#input = null;
		#editor = null;
		#uiManager = null;
		static #l10nColor = null;
		constructor(editor) {
			this.#editor = editor;
			this.#uiManager = editor._uiManager;
			BasicColorPicker.#l10nColor ||= Object.freeze({
				freetext: "pdfjs-editor-color-picker-free-text-input",
				ink: "pdfjs-editor-color-picker-ink-input"
			});
		}
		renderButton() {
			if (this.#input) {
				return this.#input;
			}
			const { editorType, colorType, color } = this.#editor;
			const input = this.#input = document.createElement("input");
			input.type = "color";
			input.value = color || "#000000";
			input.className = "basicColorPicker";
			input.tabIndex = 0;
			input.setAttribute("data-l10n-id", BasicColorPicker.#l10nColor[editorType]);
			input.addEventListener("input", () => {
				this.#uiManager.updateParams(colorType, input.value);
			}, { signal: this.#uiManager._signal });
			return input;
		}
		update(value) {
			if (!this.#input) {
				return;
			}
			this.#input.value = value;
		}
		destroy() {
			this.#input?.remove();
			this.#input = null;
		}
		hideDropdown() {}
	};
	;
	ColorConverters = class {
		static CMYK_G([c$7, y$3, m$3, k$2]) {
			return ["G", 1 - Math.min(1, .3 * c$7 + .59 * m$3 + .11 * y$3 + k$2)];
		}
		static G_CMYK([g$1]) {
			return [
				"CMYK",
				0,
				0,
				0,
				1 - g$1
			];
		}
		static G_RGB([g$1]) {
			return [
				"RGB",
				g$1,
				g$1,
				g$1
			];
		}
		static G_rgb([g$1]) {
			g$1 = scaleAndClamp(g$1);
			return [
				g$1,
				g$1,
				g$1
			];
		}
		static G_HTML([g$1]) {
			const G$1 = makeColorComp(g$1);
			return `#${G$1}${G$1}${G$1}`;
		}
		static RGB_G([r$10, g$1, b$3]) {
			return ["G", .3 * r$10 + .59 * g$1 + .11 * b$3];
		}
		static RGB_rgb(color) {
			return color.map(scaleAndClamp);
		}
		static RGB_HTML(color) {
			return `#${color.map(makeColorComp).join("")}`;
		}
		static T_HTML() {
			return "#00000000";
		}
		static T_rgb() {
			return [null];
		}
		static CMYK_RGB([c$7, y$3, m$3, k$2]) {
			return [
				"RGB",
				1 - Math.min(1, c$7 + k$2),
				1 - Math.min(1, m$3 + k$2),
				1 - Math.min(1, y$3 + k$2)
			];
		}
		static CMYK_rgb([c$7, y$3, m$3, k$2]) {
			return [
				scaleAndClamp(1 - Math.min(1, c$7 + k$2)),
				scaleAndClamp(1 - Math.min(1, m$3 + k$2)),
				scaleAndClamp(1 - Math.min(1, y$3 + k$2))
			];
		}
		static CMYK_HTML(components) {
			const rgb = this.CMYK_RGB(components).slice(1);
			return this.RGB_HTML(rgb);
		}
		static RGB_CMYK([r$10, g$1, b$3]) {
			const c$7 = 1 - r$10;
			const m$3 = 1 - g$1;
			const y$3 = 1 - b$3;
			const k$2 = Math.min(c$7, m$3, y$3);
			return [
				"CMYK",
				c$7,
				m$3,
				y$3,
				k$2
			];
		}
	};
	DateFormats = null && [
		"m/d",
		"m/d/yy",
		"mm/dd/yy",
		"mm/yy",
		"d-mmm",
		"d-mmm-yy",
		"dd-mmm-yy",
		"yy-mm-dd",
		"mmm-yy",
		"mmmm-yy",
		"mmm d, yyyy",
		"mmmm d, yyyy",
		"m/d/yy h:MM tt",
		"m/d/yy HH:MM"
	];
	TimeFormats = null && [
		"HH:MM",
		"h:MM tt",
		"HH:MM:ss",
		"h:MM:ss tt"
	];
	;
	BaseSVGFactory = class {
		create(width, height, skipDimensions = false) {
			if (width <= 0 || height <= 0) {
				throw new Error("Invalid SVG dimensions");
			}
			const svg = this._createSVG("svg:svg");
			svg.setAttribute("version", "1.1");
			if (!skipDimensions) {
				svg.setAttribute("width", `${width}px`);
				svg.setAttribute("height", `${height}px`);
			}
			svg.setAttribute("preserveAspectRatio", "none");
			svg.setAttribute("viewBox", `0 0 ${width} ${height}`);
			return svg;
		}
		createElement(type) {
			if (typeof type !== "string") {
				throw new Error("Invalid SVG element type");
			}
			return this._createSVG(type);
		}
		_createSVG(type) {
			unreachable("Abstract method `_createSVG` called.");
		}
	};
	DOMSVGFactory = class extends BaseSVGFactory {
		_createSVG(type) {
			return document.createElementNS(SVG_NS, type);
		}
	};
	;
	annotation_layer_DEFAULT_FONT_SIZE = 9;
	GetElementsByNameSet = new WeakSet();
	TIMEZONE_OFFSET = new Date().getTimezoneOffset() * 60 * 1e3;
	AnnotationElementFactory = class {
		static create(parameters) {
			const subtype = parameters.data.annotationType;
			switch (subtype) {
				case AnnotationType.LINK: return new LinkAnnotationElement(parameters);
				case AnnotationType.TEXT: return new TextAnnotationElement(parameters);
				case AnnotationType.WIDGET:
					const fieldType = parameters.data.fieldType;
					switch (fieldType) {
						case "Tx": return new TextWidgetAnnotationElement(parameters);
						case "Btn":
							if (parameters.data.radioButton) {
								return new RadioButtonWidgetAnnotationElement(parameters);
							} else if (parameters.data.checkBox) {
								return new CheckboxWidgetAnnotationElement(parameters);
							}
							return new PushButtonWidgetAnnotationElement(parameters);
						case "Ch": return new ChoiceWidgetAnnotationElement(parameters);
						case "Sig": return new SignatureWidgetAnnotationElement(parameters);
					}
					return new WidgetAnnotationElement(parameters);
				case AnnotationType.POPUP: return new PopupAnnotationElement(parameters);
				case AnnotationType.FREETEXT: return new FreeTextAnnotationElement(parameters);
				case AnnotationType.LINE: return new LineAnnotationElement(parameters);
				case AnnotationType.SQUARE: return new SquareAnnotationElement(parameters);
				case AnnotationType.CIRCLE: return new CircleAnnotationElement(parameters);
				case AnnotationType.POLYLINE: return new PolylineAnnotationElement(parameters);
				case AnnotationType.CARET: return new CaretAnnotationElement(parameters);
				case AnnotationType.INK: return new InkAnnotationElement(parameters);
				case AnnotationType.POLYGON: return new PolygonAnnotationElement(parameters);
				case AnnotationType.HIGHLIGHT: return new HighlightAnnotationElement(parameters);
				case AnnotationType.UNDERLINE: return new UnderlineAnnotationElement(parameters);
				case AnnotationType.SQUIGGLY: return new SquigglyAnnotationElement(parameters);
				case AnnotationType.STRIKEOUT: return new StrikeOutAnnotationElement(parameters);
				case AnnotationType.STAMP: return new StampAnnotationElement(parameters);
				case AnnotationType.FILEATTACHMENT: return new FileAttachmentAnnotationElement(parameters);
				default: return new AnnotationElement(parameters);
			}
		}
	};
	AnnotationElement = class AnnotationElement {
		#updates = null;
		#hasBorder = false;
		#popupElement = null;
		constructor(parameters, { isRenderable = false, ignoreBorder = false, createQuadrilaterals = false } = {}) {
			this.isRenderable = isRenderable;
			this.data = parameters.data;
			this.layer = parameters.layer;
			this.linkService = parameters.linkService;
			this.downloadManager = parameters.downloadManager;
			this.imageResourcesPath = parameters.imageResourcesPath;
			this.renderForms = parameters.renderForms;
			this.svgFactory = parameters.svgFactory;
			this.annotationStorage = parameters.annotationStorage;
			this.enableComment = parameters.enableComment;
			this.enableScripting = parameters.enableScripting;
			this.hasJSActions = parameters.hasJSActions;
			this._fieldObjects = parameters.fieldObjects;
			this.parent = parameters.parent;
			this.hasOwnCommentButton = false;
			if (isRenderable) {
				this.contentElement = this.container = this._createContainer(ignoreBorder);
			}
			if (createQuadrilaterals) {
				this._createQuadrilaterals();
			}
		}
		static _hasPopupData({ contentsObj, richText }) {
			return !!(contentsObj?.str || richText?.str);
		}
		get _isEditable() {
			return this.data.isEditable;
		}
		get hasPopupData() {
			return AnnotationElement._hasPopupData(this.data) || this.enableComment && !!this.commentText;
		}
		get commentData() {
			const { data } = this;
			const editor = this.annotationStorage?.getEditor(data.id);
			if (editor) {
				return editor.getData();
			}
			return data;
		}
		get hasCommentButton() {
			return this.enableComment && this.hasPopupElement;
		}
		get commentButtonPosition() {
			const editor = this.annotationStorage?.getEditor(this.data.id);
			if (editor) {
				return editor.commentButtonPositionInPage;
			}
			const { quadPoints, inkLists, rect } = this.data;
			let maxX = -Infinity;
			let maxY = -Infinity;
			if (quadPoints?.length >= 8) {
				for (let i$7 = 0; i$7 < quadPoints.length; i$7 += 8) {
					if (quadPoints[i$7 + 1] > maxY) {
						maxY = quadPoints[i$7 + 1];
						maxX = quadPoints[i$7 + 2];
					} else if (quadPoints[i$7 + 1] === maxY) {
						maxX = Math.max(maxX, quadPoints[i$7 + 2]);
					}
				}
				return [maxX, maxY];
			}
			if (inkLists?.length >= 1) {
				for (const inkList of inkLists) {
					for (let i$7 = 0, ii = inkList.length; i$7 < ii; i$7 += 2) {
						if (inkList[i$7 + 1] > maxY) {
							maxY = inkList[i$7 + 1];
							maxX = inkList[i$7];
						} else if (inkList[i$7 + 1] === maxY) {
							maxX = Math.max(maxX, inkList[i$7]);
						}
					}
				}
				if (maxX !== Infinity) {
					return [maxX, maxY];
				}
			}
			if (rect) {
				return [rect[2], rect[3]];
			}
			return null;
		}
		_normalizePoint(point) {
			const { page: { view }, viewport: { rawDims: { pageWidth, pageHeight, pageX, pageY } } } = this.parent;
			point[1] = view[3] - point[1] + view[1];
			point[0] = 100 * (point[0] - pageX) / pageWidth;
			point[1] = 100 * (point[1] - pageY) / pageHeight;
			return point;
		}
		get commentText() {
			const { data } = this;
			return this.annotationStorage.getRawValue(`${AnnotationEditorPrefix}${data.id}`)?.popup?.contents || data.contentsObj?.str || "";
		}
		set commentText(text$2) {
			const { data } = this;
			const popup = {
				deleted: !text$2,
				contents: text$2 || ""
			};
			if (!this.annotationStorage.updateEditor(data.id, { popup })) {
				this.annotationStorage.setValue(`${AnnotationEditorPrefix}${data.id}`, {
					id: data.id,
					annotationType: data.annotationType,
					pageIndex: this.parent.page._pageIndex,
					popup,
					popupRef: data.popupRef,
					modificationDate: new Date()
				});
			}
			if (!text$2) {
				this.removePopup();
			}
		}
		removePopup() {
			(this.#popupElement?.popup || this.popup)?.remove();
			this.#popupElement = this.popup = null;
		}
		updateEdited(params) {
			if (!this.container) {
				return;
			}
			if (params.rect) {
				this.#updates ||= { rect: this.data.rect.slice(0) };
			}
			const { rect, popup: newPopup } = params;
			if (rect) {
				this.#setRectEdited(rect);
			}
			let popup = this.#popupElement?.popup || this.popup;
			if (!popup && newPopup?.text) {
				this._createPopup(newPopup);
				popup = this.#popupElement.popup;
			}
			if (!popup) {
				return;
			}
			popup.updateEdited(params);
			if (newPopup?.deleted) {
				popup.remove();
				this.#popupElement = null;
				this.popup = null;
			}
		}
		resetEdited() {
			if (!this.#updates) {
				return;
			}
			this.#setRectEdited(this.#updates.rect);
			this.#popupElement?.popup.resetEdited();
			this.#updates = null;
		}
		#setRectEdited(rect) {
			const { container: { style }, data: { rect: currentRect, rotation }, parent: { viewport: { rawDims: { pageWidth, pageHeight, pageX, pageY } } } } = this;
			currentRect?.splice(0, 4, ...rect);
			style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;
			style.top = `${100 * (pageHeight - rect[3] + pageY) / pageHeight}%`;
			if (rotation === 0) {
				style.width = `${100 * (rect[2] - rect[0]) / pageWidth}%`;
				style.height = `${100 * (rect[3] - rect[1]) / pageHeight}%`;
			} else {
				this.setRotation(rotation);
			}
		}
		_createContainer(ignoreBorder) {
			const { data, parent: { page, viewport } } = this;
			const container = document.createElement("section");
			container.setAttribute("data-annotation-id", data.id);
			if (!(this instanceof WidgetAnnotationElement) && !(this instanceof LinkAnnotationElement)) {
				container.tabIndex = 0;
			}
			const { style } = container;
			style.zIndex = this.parent.zIndex;
			this.parent.zIndex += 2;
			if (data.alternativeText) {
				container.title = data.alternativeText;
			}
			if (data.noRotate) {
				container.classList.add("norotate");
			}
			if (!data.rect || this instanceof PopupAnnotationElement) {
				const { rotation: rotation$1 } = data;
				if (!data.hasOwnCanvas && rotation$1 !== 0) {
					this.setRotation(rotation$1, container);
				}
				return container;
			}
			const { width, height } = this;
			if (!ignoreBorder && data.borderStyle.width > 0) {
				style.borderWidth = `${data.borderStyle.width}px`;
				const horizontalRadius = data.borderStyle.horizontalCornerRadius;
				const verticalRadius = data.borderStyle.verticalCornerRadius;
				if (horizontalRadius > 0 || verticalRadius > 0) {
					const radius = `calc(${horizontalRadius}px * var(--total-scale-factor)) / calc(${verticalRadius}px * var(--total-scale-factor))`;
					style.borderRadius = radius;
				} else if (this instanceof RadioButtonWidgetAnnotationElement) {
					const radius = `calc(${width}px * var(--total-scale-factor)) / calc(${height}px * var(--total-scale-factor))`;
					style.borderRadius = radius;
				}
				switch (data.borderStyle.style) {
					case AnnotationBorderStyleType.SOLID:
						style.borderStyle = "solid";
						break;
					case AnnotationBorderStyleType.DASHED:
						style.borderStyle = "dashed";
						break;
					case AnnotationBorderStyleType.BEVELED:
						warn$2("Unimplemented border style: beveled");
						break;
					case AnnotationBorderStyleType.INSET:
						warn$2("Unimplemented border style: inset");
						break;
					case AnnotationBorderStyleType.UNDERLINE:
						style.borderBottomStyle = "solid";
						break;
					default: break;
				}
				const borderColor = data.borderColor || null;
				if (borderColor) {
					this.#hasBorder = true;
					style.borderColor = Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0);
				} else {
					style.borderWidth = 0;
				}
			}
			const rect = Util.normalizeRect([
				data.rect[0],
				page.view[3] - data.rect[1] + page.view[1],
				data.rect[2],
				page.view[3] - data.rect[3] + page.view[1]
			]);
			const { pageWidth, pageHeight, pageX, pageY } = viewport.rawDims;
			style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;
			style.top = `${100 * (rect[1] - pageY) / pageHeight}%`;
			const { rotation } = data;
			if (data.hasOwnCanvas || rotation === 0) {
				style.width = `${100 * width / pageWidth}%`;
				style.height = `${100 * height / pageHeight}%`;
			} else {
				this.setRotation(rotation, container);
			}
			return container;
		}
		setRotation(angle, container = this.container) {
			if (!this.data.rect) {
				return;
			}
			const { pageWidth, pageHeight } = this.parent.viewport.rawDims;
			let { width, height } = this;
			if (angle % 180 !== 0) {
				[width, height] = [height, width];
			}
			container.style.width = `${100 * width / pageWidth}%`;
			container.style.height = `${100 * height / pageHeight}%`;
			container.setAttribute("data-main-rotation", (360 - angle) % 360);
		}
		get _commonActions() {
			const setColor = (jsName, styleName, event) => {
				const color = event.detail[jsName];
				const colorType = color[0];
				const colorArray = color.slice(1);
				event.target.style[styleName] = ColorConverters[`${colorType}_HTML`](colorArray);
				this.annotationStorage.setValue(this.data.id, { [styleName]: ColorConverters[`${colorType}_rgb`](colorArray) });
			};
			return shadow(this, "_commonActions", {
				display: (event) => {
					const { display } = event.detail;
					const hidden = display % 2 === 1;
					this.container.style.visibility = hidden ? "hidden" : "visible";
					this.annotationStorage.setValue(this.data.id, {
						noView: hidden,
						noPrint: display === 1 || display === 2
					});
				},
				print: (event) => {
					this.annotationStorage.setValue(this.data.id, { noPrint: !event.detail.print });
				},
				hidden: (event) => {
					const { hidden } = event.detail;
					this.container.style.visibility = hidden ? "hidden" : "visible";
					this.annotationStorage.setValue(this.data.id, {
						noPrint: hidden,
						noView: hidden
					});
				},
				focus: (event) => {
					setTimeout(() => event.target.focus({ preventScroll: false }), 0);
				},
				userName: (event) => {
					event.target.title = event.detail.userName;
				},
				readonly: (event) => {
					event.target.disabled = event.detail.readonly;
				},
				required: (event) => {
					this._setRequired(event.target, event.detail.required);
				},
				bgColor: (event) => {
					setColor("bgColor", "backgroundColor", event);
				},
				fillColor: (event) => {
					setColor("fillColor", "backgroundColor", event);
				},
				fgColor: (event) => {
					setColor("fgColor", "color", event);
				},
				textColor: (event) => {
					setColor("textColor", "color", event);
				},
				borderColor: (event) => {
					setColor("borderColor", "borderColor", event);
				},
				strokeColor: (event) => {
					setColor("strokeColor", "borderColor", event);
				},
				rotation: (event) => {
					const angle = event.detail.rotation;
					this.setRotation(angle);
					this.annotationStorage.setValue(this.data.id, { rotation: angle });
				}
			});
		}
		_dispatchEventFromSandbox(actions, jsEvent) {
			const commonActions = this._commonActions;
			for (const name of Object.keys(jsEvent.detail)) {
				const action = actions[name] || commonActions[name];
				action?.(jsEvent);
			}
		}
		_setDefaultPropertiesFromJS(element) {
			if (!this.enableScripting) {
				return;
			}
			const storedData = this.annotationStorage.getRawValue(this.data.id);
			if (!storedData) {
				return;
			}
			const commonActions = this._commonActions;
			for (const [actionName, detail] of Object.entries(storedData)) {
				const action = commonActions[actionName];
				if (action) {
					const eventProxy = {
						detail: { [actionName]: detail },
						target: element
					};
					action(eventProxy);
					delete storedData[actionName];
				}
			}
		}
		_createQuadrilaterals() {
			if (!this.container) {
				return;
			}
			const { quadPoints } = this.data;
			if (!quadPoints) {
				return;
			}
			const [rectBlX, rectBlY, rectTrX, rectTrY] = this.data.rect.map((x$2) => Math.fround(x$2));
			if (quadPoints.length === 8) {
				const [trX, trY, blX, blY] = quadPoints.subarray(2, 6);
				if (rectTrX === trX && rectTrY === trY && rectBlX === blX && rectBlY === blY) {
					return;
				}
			}
			const { style } = this.container;
			let svgBuffer;
			if (this.#hasBorder) {
				const { borderColor, borderWidth } = style;
				style.borderWidth = 0;
				svgBuffer = [
					"url('data:image/svg+xml;utf8,",
					`<svg xmlns="http://www.w3.org/2000/svg"`,
					` preserveAspectRatio="none" viewBox="0 0 1 1">`,
					`<g fill="transparent" stroke="${borderColor}" stroke-width="${borderWidth}">`
				];
				this.container.classList.add("hasBorder");
			}
			const width = rectTrX - rectBlX;
			const height = rectTrY - rectBlY;
			const { svgFactory } = this;
			const svg = svgFactory.createElement("svg");
			svg.classList.add("quadrilateralsContainer");
			svg.setAttribute("width", 0);
			svg.setAttribute("height", 0);
			svg.role = "none";
			const defs = svgFactory.createElement("defs");
			svg.append(defs);
			const clipPath = svgFactory.createElement("clipPath");
			const id = `clippath_${this.data.id}`;
			clipPath.setAttribute("id", id);
			clipPath.setAttribute("clipPathUnits", "objectBoundingBox");
			defs.append(clipPath);
			for (let i$7 = 2, ii = quadPoints.length; i$7 < ii; i$7 += 8) {
				const trX = quadPoints[i$7];
				const trY = quadPoints[i$7 + 1];
				const blX = quadPoints[i$7 + 2];
				const blY = quadPoints[i$7 + 3];
				const rect = svgFactory.createElement("rect");
				const x$2 = (blX - rectBlX) / width;
				const y$3 = (rectTrY - trY) / height;
				const rectWidth = (trX - blX) / width;
				const rectHeight = (trY - blY) / height;
				rect.setAttribute("x", x$2);
				rect.setAttribute("y", y$3);
				rect.setAttribute("width", rectWidth);
				rect.setAttribute("height", rectHeight);
				clipPath.append(rect);
				svgBuffer?.push(`<rect vector-effect="non-scaling-stroke" x="${x$2}" y="${y$3}" width="${rectWidth}" height="${rectHeight}"/>`);
			}
			if (this.#hasBorder) {
				svgBuffer.push(`</g></svg>')`);
				style.backgroundImage = svgBuffer.join("");
			}
			this.container.append(svg);
			this.container.style.clipPath = `url(#${id})`;
		}
		_createPopup(popupData = null) {
			const { data } = this;
			let contentsObj, modificationDate;
			if (popupData) {
				contentsObj = { str: popupData.text };
				modificationDate = popupData.date;
			} else {
				contentsObj = data.contentsObj;
				modificationDate = data.modificationDate;
			}
			this.#popupElement = new PopupAnnotationElement({
				data: {
					color: data.color,
					titleObj: data.titleObj,
					modificationDate,
					contentsObj,
					richText: data.richText,
					parentRect: data.rect,
					borderStyle: 0,
					id: `popup_${data.id}`,
					rotation: data.rotation,
					noRotate: true
				},
				linkService: this.linkService,
				parent: this.parent,
				elements: [this]
			});
		}
		get hasPopupElement() {
			return !!(this.#popupElement || this.popup || this.data.popupRef);
		}
		get extraPopupElement() {
			return this.#popupElement;
		}
		render() {
			unreachable("Abstract method `AnnotationElement.render` called");
		}
		_getElementsByName(name, skipId = null) {
			const fields = [];
			if (this._fieldObjects) {
				const fieldObj = this._fieldObjects[name];
				if (fieldObj) {
					for (const { page, id, exportValues } of fieldObj) {
						if (page === -1) {
							continue;
						}
						if (id === skipId) {
							continue;
						}
						const exportValue = typeof exportValues === "string" ? exportValues : null;
						const domElement = document.querySelector(`[data-element-id="${id}"]`);
						if (domElement && !GetElementsByNameSet.has(domElement)) {
							warn$2(`_getElementsByName - element not allowed: ${id}`);
							continue;
						}
						fields.push({
							id,
							exportValue,
							domElement
						});
					}
				}
				return fields;
			}
			for (const domElement of document.getElementsByName(name)) {
				const { exportValue } = domElement;
				const id = domElement.getAttribute("data-element-id");
				if (id === skipId) {
					continue;
				}
				if (!GetElementsByNameSet.has(domElement)) {
					continue;
				}
				fields.push({
					id,
					exportValue,
					domElement
				});
			}
			return fields;
		}
		show() {
			if (this.container) {
				this.container.hidden = false;
			}
			this.popup?.maybeShow();
		}
		hide() {
			if (this.container) {
				this.container.hidden = true;
			}
			this.popup?.forceHide();
		}
		getElementsToTriggerPopup() {
			return this.container;
		}
		addHighlightArea() {
			const triggers = this.getElementsToTriggerPopup();
			if (Array.isArray(triggers)) {
				for (const element of triggers) {
					element.classList.add("highlightArea");
				}
			} else {
				triggers.classList.add("highlightArea");
			}
		}
		_editOnDoubleClick() {
			if (!this._isEditable) {
				return;
			}
			const { annotationEditorType: mode, data: { id: editId } } = this;
			this.container.addEventListener("dblclick", () => {
				this.linkService.eventBus?.dispatch("switchannotationeditormode", {
					source: this,
					mode,
					editId,
					mustEnterInEditMode: true
				});
			});
		}
		get width() {
			return this.data.rect[2] - this.data.rect[0];
		}
		get height() {
			return this.data.rect[3] - this.data.rect[1];
		}
	};
	EditorAnnotationElement = class extends AnnotationElement {
		constructor(parameters) {
			super(parameters, {
				isRenderable: true,
				ignoreBorder: true
			});
			this.editor = parameters.editor;
		}
		render() {
			this.container.className = "editorAnnotation";
			return this.container;
		}
		createOrUpdatePopup() {
			const { editor } = this;
			if (!editor.hasComment) {
				return;
			}
			this._createPopup(editor.comment);
		}
		get hasCommentButton() {
			return this.enableComment && this.editor.hasComment;
		}
		get commentButtonPosition() {
			return this.editor.commentButtonPositionInPage;
		}
		get commentText() {
			return this.editor.comment.text;
		}
		set commentText(text$2) {
			this.editor.comment = text$2;
			if (!text$2) {
				this.removePopup();
			}
		}
		get commentData() {
			return this.editor.getData();
		}
		remove() {
			this.parent.removeAnnotation(this.data.id);
			this.container.remove();
			this.container = null;
			this.removePopup();
		}
	};
	LinkAnnotationElement = class extends AnnotationElement {
		constructor(parameters, options = null) {
			super(parameters, {
				isRenderable: true,
				ignoreBorder: !!options?.ignoreBorder,
				createQuadrilaterals: true
			});
			this.isTooltipOnly = parameters.data.isTooltipOnly;
		}
		render() {
			const { data, linkService } = this;
			const link = document.createElement("a");
			link.setAttribute("data-element-id", data.id);
			let isBound = false;
			if (data.url) {
				linkService.addLinkAttributes(link, data.url, data.newWindow);
				isBound = true;
			} else if (data.action) {
				this._bindNamedAction(link, data.action, data.overlaidText);
				isBound = true;
			} else if (data.attachment) {
				this.#bindAttachment(link, data.attachment, data.overlaidText, data.attachmentDest);
				isBound = true;
			} else if (data.setOCGState) {
				this.#bindSetOCGState(link, data.setOCGState, data.overlaidText);
				isBound = true;
			} else if (data.dest) {
				this._bindLink(link, data.dest, data.overlaidText);
				isBound = true;
			} else {
				if (data.actions && (data.actions.Action || data.actions["Mouse Up"] || data.actions["Mouse Down"]) && this.enableScripting && this.hasJSActions) {
					this._bindJSAction(link, data);
					isBound = true;
				}
				if (data.resetForm) {
					this._bindResetFormAction(link, data.resetForm);
					isBound = true;
				} else if (this.isTooltipOnly && !isBound) {
					this._bindLink(link, "");
					isBound = true;
				}
			}
			this.container.classList.add("linkAnnotation");
			if (isBound) {
				this.contentElement = link;
				this.container.append(link);
			}
			return this.container;
		}
		#setInternalLink() {
			this.container.setAttribute("data-internal-link", "");
		}
		_bindLink(link, destination, overlaidText = "") {
			link.href = this.linkService.getDestinationHash(destination);
			link.onclick = () => {
				if (destination) {
					this.linkService.goToDestination(destination);
				}
				return false;
			};
			if (destination || destination === "") {
				this.#setInternalLink();
			}
			if (overlaidText) {
				link.title = overlaidText;
			}
		}
		_bindNamedAction(link, action, overlaidText = "") {
			link.href = this.linkService.getAnchorUrl("");
			link.onclick = () => {
				this.linkService.executeNamedAction(action);
				return false;
			};
			if (overlaidText) {
				link.title = overlaidText;
			}
			this.#setInternalLink();
		}
		#bindAttachment(link, attachment, overlaidText = "", dest = null) {
			link.href = this.linkService.getAnchorUrl("");
			if (attachment.description) {
				link.title = attachment.description;
			} else if (overlaidText) {
				link.title = overlaidText;
			}
			link.onclick = () => {
				this.downloadManager?.openOrDownloadData(attachment.content, attachment.filename, dest);
				return false;
			};
			this.#setInternalLink();
		}
		#bindSetOCGState(link, action, overlaidText = "") {
			link.href = this.linkService.getAnchorUrl("");
			link.onclick = () => {
				this.linkService.executeSetOCGState(action);
				return false;
			};
			if (overlaidText) {
				link.title = overlaidText;
			}
			this.#setInternalLink();
		}
		_bindJSAction(link, data) {
			link.href = this.linkService.getAnchorUrl("");
			const map$2 = new Map([
				["Action", "onclick"],
				["Mouse Up", "onmouseup"],
				["Mouse Down", "onmousedown"]
			]);
			for (const name of Object.keys(data.actions)) {
				const jsName = map$2.get(name);
				if (!jsName) {
					continue;
				}
				link[jsName] = () => {
					this.linkService.eventBus?.dispatch("dispatcheventinsandbox", {
						source: this,
						detail: {
							id: data.id,
							name
						}
					});
					return false;
				};
			}
			if (data.overlaidText) {
				link.title = data.overlaidText;
			}
			if (!link.onclick) {
				link.onclick = () => false;
			}
			this.#setInternalLink();
		}
		_bindResetFormAction(link, resetForm) {
			const otherClickAction = link.onclick;
			if (!otherClickAction) {
				link.href = this.linkService.getAnchorUrl("");
			}
			this.#setInternalLink();
			if (!this._fieldObjects) {
				warn$2(`_bindResetFormAction - "resetForm" action not supported, ` + "ensure that the `fieldObjects` parameter is provided.");
				if (!otherClickAction) {
					link.onclick = () => false;
				}
				return;
			}
			link.onclick = () => {
				otherClickAction?.();
				const { fields: resetFormFields, refs: resetFormRefs, include } = resetForm;
				const allFields = [];
				if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {
					const fieldIds = new Set(resetFormRefs);
					for (const fieldName of resetFormFields) {
						const fields = this._fieldObjects[fieldName] || [];
						for (const { id } of fields) {
							fieldIds.add(id);
						}
					}
					for (const fields of Object.values(this._fieldObjects)) {
						for (const field of fields) {
							if (fieldIds.has(field.id) === include) {
								allFields.push(field);
							}
						}
					}
				} else {
					for (const fields of Object.values(this._fieldObjects)) {
						allFields.push(...fields);
					}
				}
				const storage = this.annotationStorage;
				const allIds = [];
				for (const field of allFields) {
					const { id } = field;
					allIds.push(id);
					switch (field.type) {
						case "text": {
							const value = field.defaultValue || "";
							storage.setValue(id, { value });
							break;
						}
						case "checkbox":
						case "radiobutton": {
							const value = field.defaultValue === field.exportValues;
							storage.setValue(id, { value });
							break;
						}
						case "combobox":
						case "listbox": {
							const value = field.defaultValue || "";
							storage.setValue(id, { value });
							break;
						}
						default: continue;
					}
					const domElement = document.querySelector(`[data-element-id="${id}"]`);
					if (!domElement) {
						continue;
					} else if (!GetElementsByNameSet.has(domElement)) {
						warn$2(`_bindResetFormAction - element not allowed: ${id}`);
						continue;
					}
					domElement.dispatchEvent(new Event("resetform"));
				}
				if (this.enableScripting) {
					this.linkService.eventBus?.dispatch("dispatcheventinsandbox", {
						source: this,
						detail: {
							id: "app",
							ids: allIds,
							name: "ResetForm"
						}
					});
				}
				return false;
			};
		}
	};
	TextAnnotationElement = class extends AnnotationElement {
		constructor(parameters) {
			super(parameters, { isRenderable: true });
		}
		render() {
			this.container.classList.add("textAnnotation");
			const image = document.createElement("img");
			image.src = this.imageResourcesPath + "annotation-" + this.data.name.toLowerCase() + ".svg";
			image.setAttribute("data-l10n-id", "pdfjs-text-annotation-type");
			image.setAttribute("data-l10n-args", JSON.stringify({ type: this.data.name }));
			if (!this.data.popupRef && this.hasPopupData) {
				this.hasOwnCommentButton = true;
				this._createPopup();
			}
			this.container.append(image);
			return this.container;
		}
	};
	WidgetAnnotationElement = class extends AnnotationElement {
		render() {
			return this.container;
		}
		showElementAndHideCanvas(element) {
			if (this.data.hasOwnCanvas) {
				if (element.previousSibling?.nodeName === "CANVAS") {
					element.previousSibling.hidden = true;
				}
				element.hidden = false;
			}
		}
		_getKeyModifier(event) {
			return util_FeatureTest.platform.isMac ? event.metaKey : event.ctrlKey;
		}
		_setEventListener(element, elementData, baseName, eventName, valueGetter) {
			if (baseName.includes("mouse")) {
				element.addEventListener(baseName, (event) => {
					this.linkService.eventBus?.dispatch("dispatcheventinsandbox", {
						source: this,
						detail: {
							id: this.data.id,
							name: eventName,
							value: valueGetter(event),
							shift: event.shiftKey,
							modifier: this._getKeyModifier(event)
						}
					});
				});
			} else {
				element.addEventListener(baseName, (event) => {
					if (baseName === "blur") {
						if (!elementData.focused || !event.relatedTarget) {
							return;
						}
						elementData.focused = false;
					} else if (baseName === "focus") {
						if (elementData.focused) {
							return;
						}
						elementData.focused = true;
					}
					if (!valueGetter) {
						return;
					}
					this.linkService.eventBus?.dispatch("dispatcheventinsandbox", {
						source: this,
						detail: {
							id: this.data.id,
							name: eventName,
							value: valueGetter(event)
						}
					});
				});
			}
		}
		_setEventListeners(element, elementData, names, getter) {
			for (const [baseName, eventName] of names) {
				if (eventName === "Action" || this.data.actions?.[eventName]) {
					if (eventName === "Focus" || eventName === "Blur") {
						elementData ||= { focused: false };
					}
					this._setEventListener(element, elementData, baseName, eventName, getter);
					if (eventName === "Focus" && !this.data.actions?.Blur) {
						this._setEventListener(element, elementData, "blur", "Blur", null);
					} else if (eventName === "Blur" && !this.data.actions?.Focus) {
						this._setEventListener(element, elementData, "focus", "Focus", null);
					}
				}
			}
		}
		_setBackgroundColor(element) {
			const color = this.data.backgroundColor || null;
			element.style.backgroundColor = color === null ? "transparent" : Util.makeHexColor(color[0], color[1], color[2]);
		}
		_setTextStyle(element) {
			const TEXT_ALIGNMENT = [
				"left",
				"center",
				"right"
			];
			const { fontColor } = this.data.defaultAppearanceData;
			const fontSize = this.data.defaultAppearanceData.fontSize || annotation_layer_DEFAULT_FONT_SIZE;
			const style = element.style;
			let computedFontSize;
			const BORDER_SIZE = 2;
			const roundToOneDecimal = (x$2) => Math.round(10 * x$2) / 10;
			if (this.data.multiLine) {
				const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);
				const numberOfLines = Math.round(height / (LINE_FACTOR * fontSize)) || 1;
				const lineHeight = height / numberOfLines;
				computedFontSize = Math.min(fontSize, roundToOneDecimal(lineHeight / LINE_FACTOR));
			} else {
				const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);
				computedFontSize = Math.min(fontSize, roundToOneDecimal(height / LINE_FACTOR));
			}
			style.fontSize = `calc(${computedFontSize}px * var(--total-scale-factor))`;
			style.color = Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);
			if (this.data.textAlignment !== null) {
				style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];
			}
		}
		_setRequired(element, isRequired) {
			if (isRequired) {
				element.setAttribute("required", true);
			} else {
				element.removeAttribute("required");
			}
			element.setAttribute("aria-required", isRequired);
		}
	};
	TextWidgetAnnotationElement = class extends WidgetAnnotationElement {
		constructor(parameters) {
			const isRenderable = parameters.renderForms || parameters.data.hasOwnCanvas || !parameters.data.hasAppearance && !!parameters.data.fieldValue;
			super(parameters, { isRenderable });
		}
		setPropertyOnSiblings(base, key, value, keyInStorage) {
			const storage = this.annotationStorage;
			for (const element of this._getElementsByName(base.name, base.id)) {
				if (element.domElement) {
					element.domElement[key] = value;
				}
				storage.setValue(element.id, { [keyInStorage]: value });
			}
		}
		render() {
			const storage = this.annotationStorage;
			const id = this.data.id;
			this.container.classList.add("textWidgetAnnotation");
			let element = null;
			if (this.renderForms) {
				const storedData = storage.getValue(id, { value: this.data.fieldValue });
				let textContent = storedData.value || "";
				const maxLen = storage.getValue(id, { charLimit: this.data.maxLen }).charLimit;
				if (maxLen && textContent.length > maxLen) {
					textContent = textContent.slice(0, maxLen);
				}
				let fieldFormattedValues = storedData.formattedValue || this.data.textContent?.join("\n") || null;
				if (fieldFormattedValues && this.data.comb) {
					fieldFormattedValues = fieldFormattedValues.replaceAll(/\s+/g, "");
				}
				const elementData = {
					userValue: textContent,
					formattedValue: fieldFormattedValues,
					lastCommittedValue: null,
					commitKey: 1,
					focused: false
				};
				if (this.data.multiLine) {
					element = document.createElement("textarea");
					element.textContent = fieldFormattedValues ?? textContent;
					if (this.data.doNotScroll) {
						element.style.overflowY = "hidden";
					}
				} else {
					element = document.createElement("input");
					element.type = this.data.password ? "password" : "text";
					element.setAttribute("value", fieldFormattedValues ?? textContent);
					if (this.data.doNotScroll) {
						element.style.overflowX = "hidden";
					}
				}
				if (this.data.hasOwnCanvas) {
					element.hidden = true;
				}
				GetElementsByNameSet.add(element);
				this.contentElement = element;
				element.setAttribute("data-element-id", id);
				element.disabled = this.data.readOnly;
				element.name = this.data.fieldName;
				element.tabIndex = 0;
				const { datetimeFormat, datetimeType, timeStep } = this.data;
				const hasDateOrTime = !!datetimeType && this.enableScripting;
				if (datetimeFormat) {
					element.title = datetimeFormat;
				}
				this._setRequired(element, this.data.required);
				if (maxLen) {
					element.maxLength = maxLen;
				}
				element.addEventListener("input", (event) => {
					storage.setValue(id, { value: event.target.value });
					this.setPropertyOnSiblings(element, "value", event.target.value, "value");
					elementData.formattedValue = null;
				});
				element.addEventListener("resetform", (event) => {
					const defaultValue = this.data.defaultFieldValue ?? "";
					element.value = elementData.userValue = defaultValue;
					elementData.formattedValue = null;
				});
				let blurListener = (event) => {
					const { formattedValue } = elementData;
					if (formattedValue !== null && formattedValue !== undefined) {
						event.target.value = formattedValue;
					}
					event.target.scrollLeft = 0;
				};
				if (this.enableScripting && this.hasJSActions) {
					element.addEventListener("focus", (event) => {
						if (elementData.focused) {
							return;
						}
						const { target } = event;
						if (hasDateOrTime) {
							target.type = datetimeType;
							if (timeStep) {
								target.step = timeStep;
							}
						}
						if (elementData.userValue) {
							const value = elementData.userValue;
							if (hasDateOrTime) {
								if (datetimeType === "time") {
									const date = new Date(value);
									const parts = [
										date.getHours(),
										date.getMinutes(),
										date.getSeconds()
									];
									target.value = parts.map((v$3) => v$3.toString().padStart(2, "0")).join(":");
								} else {
									target.value = new Date(value - TIMEZONE_OFFSET).toISOString().split(datetimeType === "date" ? "T" : ".", 1)[0];
								}
							} else {
								target.value = value;
							}
						}
						elementData.lastCommittedValue = target.value;
						elementData.commitKey = 1;
						if (!this.data.actions?.Focus) {
							elementData.focused = true;
						}
					});
					element.addEventListener("updatefromsandbox", (jsEvent) => {
						this.showElementAndHideCanvas(jsEvent.target);
						const actions = {
							value(event) {
								elementData.userValue = event.detail.value ?? "";
								if (!hasDateOrTime) {
									storage.setValue(id, { value: elementData.userValue.toString() });
								}
								event.target.value = elementData.userValue;
							},
							formattedValue(event) {
								const { formattedValue } = event.detail;
								elementData.formattedValue = formattedValue;
								if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) {
									event.target.value = formattedValue;
								}
								const data = { formattedValue };
								if (hasDateOrTime) {
									data.value = formattedValue;
								}
								storage.setValue(id, data);
							},
							selRange(event) {
								event.target.setSelectionRange(...event.detail.selRange);
							},
							charLimit: (event) => {
								const { charLimit } = event.detail;
								const { target } = event;
								if (charLimit === 0) {
									target.removeAttribute("maxLength");
									return;
								}
								target.setAttribute("maxLength", charLimit);
								let value = elementData.userValue;
								if (!value || value.length <= charLimit) {
									return;
								}
								value = value.slice(0, charLimit);
								target.value = elementData.userValue = value;
								storage.setValue(id, { value });
								this.linkService.eventBus?.dispatch("dispatcheventinsandbox", {
									source: this,
									detail: {
										id,
										name: "Keystroke",
										value,
										willCommit: true,
										commitKey: 1,
										selStart: target.selectionStart,
										selEnd: target.selectionEnd
									}
								});
							}
						};
						this._dispatchEventFromSandbox(actions, jsEvent);
					});
					element.addEventListener("keydown", (event) => {
						elementData.commitKey = 1;
						let commitKey = -1;
						if (event.key === "Escape") {
							commitKey = 0;
						} else if (event.key === "Enter" && !this.data.multiLine) {
							commitKey = 2;
						} else if (event.key === "Tab") {
							elementData.commitKey = 3;
						}
						if (commitKey === -1) {
							return;
						}
						const { value } = event.target;
						if (elementData.lastCommittedValue === value) {
							return;
						}
						elementData.lastCommittedValue = value;
						elementData.userValue = value;
						this.linkService.eventBus?.dispatch("dispatcheventinsandbox", {
							source: this,
							detail: {
								id,
								name: "Keystroke",
								value,
								willCommit: true,
								commitKey,
								selStart: event.target.selectionStart,
								selEnd: event.target.selectionEnd
							}
						});
					});
					const _blurListener = blurListener;
					blurListener = null;
					element.addEventListener("blur", (event) => {
						if (!elementData.focused || !event.relatedTarget) {
							return;
						}
						if (!this.data.actions?.Blur) {
							elementData.focused = false;
						}
						const { target } = event;
						let { value } = target;
						if (hasDateOrTime) {
							if (value && datetimeType === "time") {
								const parts = value.split(":").map((v$3) => parseInt(v$3, 10));
								value = new Date(2e3, 0, 1, parts[0], parts[1], parts[2] || 0).valueOf();
								target.step = "";
							} else {
								if (!value.includes("T")) {
									value = `${value}T00:00`;
								}
								value = new Date(value).valueOf();
							}
							target.type = "text";
						}
						elementData.userValue = value;
						if (elementData.lastCommittedValue !== value) {
							this.linkService.eventBus?.dispatch("dispatcheventinsandbox", {
								source: this,
								detail: {
									id,
									name: "Keystroke",
									value,
									willCommit: true,
									commitKey: elementData.commitKey,
									selStart: event.target.selectionStart,
									selEnd: event.target.selectionEnd
								}
							});
						}
						_blurListener(event);
					});
					if (this.data.actions?.Keystroke) {
						element.addEventListener("beforeinput", (event) => {
							elementData.lastCommittedValue = null;
							const { data, target } = event;
							const { value, selectionStart, selectionEnd } = target;
							let selStart = selectionStart, selEnd = selectionEnd;
							switch (event.inputType) {
								case "deleteWordBackward": {
									const match = value.substring(0, selectionStart).match(/\w*[^\w]*$/);
									if (match) {
										selStart -= match[0].length;
									}
									break;
								}
								case "deleteWordForward": {
									const match = value.substring(selectionStart).match(/^[^\w]*\w*/);
									if (match) {
										selEnd += match[0].length;
									}
									break;
								}
								case "deleteContentBackward":
									if (selectionStart === selectionEnd) {
										selStart -= 1;
									}
									break;
								case "deleteContentForward":
									if (selectionStart === selectionEnd) {
										selEnd += 1;
									}
									break;
							}
							event.preventDefault();
							this.linkService.eventBus?.dispatch("dispatcheventinsandbox", {
								source: this,
								detail: {
									id,
									name: "Keystroke",
									value,
									change: data || "",
									willCommit: false,
									selStart,
									selEnd
								}
							});
						});
					}
					this._setEventListeners(element, elementData, [
						["focus", "Focus"],
						["blur", "Blur"],
						["mousedown", "Mouse Down"],
						["mouseenter", "Mouse Enter"],
						["mouseleave", "Mouse Exit"],
						["mouseup", "Mouse Up"]
					], (event) => event.target.value);
				}
				if (blurListener) {
					element.addEventListener("blur", blurListener);
				}
				if (this.data.comb) {
					const fieldWidth = this.data.rect[2] - this.data.rect[0];
					const combWidth = fieldWidth / maxLen;
					element.classList.add("comb");
					element.style.letterSpacing = `calc(${combWidth}px * var(--total-scale-factor) - 1ch)`;
				}
			} else {
				element = document.createElement("div");
				element.textContent = this.data.fieldValue;
				element.style.verticalAlign = "middle";
				element.style.display = "table-cell";
				if (this.data.hasOwnCanvas) {
					element.hidden = true;
				}
			}
			this._setTextStyle(element);
			this._setBackgroundColor(element);
			this._setDefaultPropertiesFromJS(element);
			this.container.append(element);
			return this.container;
		}
	};
	SignatureWidgetAnnotationElement = class extends WidgetAnnotationElement {
		constructor(parameters) {
			super(parameters, { isRenderable: !!parameters.data.hasOwnCanvas });
		}
	};
	CheckboxWidgetAnnotationElement = class extends WidgetAnnotationElement {
		constructor(parameters) {
			super(parameters, { isRenderable: parameters.renderForms });
		}
		render() {
			const storage = this.annotationStorage;
			const data = this.data;
			const id = data.id;
			let value = storage.getValue(id, { value: data.exportValue === data.fieldValue }).value;
			if (typeof value === "string") {
				value = value !== "Off";
				storage.setValue(id, { value });
			}
			this.container.classList.add("buttonWidgetAnnotation", "checkBox");
			const element = document.createElement("input");
			GetElementsByNameSet.add(element);
			element.setAttribute("data-element-id", id);
			element.disabled = data.readOnly;
			this._setRequired(element, this.data.required);
			element.type = "checkbox";
			element.name = data.fieldName;
			if (value) {
				element.setAttribute("checked", true);
			}
			element.setAttribute("exportValue", data.exportValue);
			element.tabIndex = 0;
			element.addEventListener("change", (event) => {
				const { name, checked } = event.target;
				for (const checkbox of this._getElementsByName(name, id)) {
					const curChecked = checked && checkbox.exportValue === data.exportValue;
					if (checkbox.domElement) {
						checkbox.domElement.checked = curChecked;
					}
					storage.setValue(checkbox.id, { value: curChecked });
				}
				storage.setValue(id, { value: checked });
			});
			element.addEventListener("resetform", (event) => {
				const defaultValue = data.defaultFieldValue || "Off";
				event.target.checked = defaultValue === data.exportValue;
			});
			if (this.enableScripting && this.hasJSActions) {
				element.addEventListener("updatefromsandbox", (jsEvent) => {
					const actions = { value(event) {
						event.target.checked = event.detail.value !== "Off";
						storage.setValue(id, { value: event.target.checked });
					} };
					this._dispatchEventFromSandbox(actions, jsEvent);
				});
				this._setEventListeners(element, null, [
					["change", "Validate"],
					["change", "Action"],
					["focus", "Focus"],
					["blur", "Blur"],
					["mousedown", "Mouse Down"],
					["mouseenter", "Mouse Enter"],
					["mouseleave", "Mouse Exit"],
					["mouseup", "Mouse Up"]
				], (event) => event.target.checked);
			}
			this._setBackgroundColor(element);
			this._setDefaultPropertiesFromJS(element);
			this.container.append(element);
			return this.container;
		}
	};
	RadioButtonWidgetAnnotationElement = class extends WidgetAnnotationElement {
		constructor(parameters) {
			super(parameters, { isRenderable: parameters.renderForms });
		}
		render() {
			this.container.classList.add("buttonWidgetAnnotation", "radioButton");
			const storage = this.annotationStorage;
			const data = this.data;
			const id = data.id;
			let value = storage.getValue(id, { value: data.fieldValue === data.buttonValue }).value;
			if (typeof value === "string") {
				value = value !== data.buttonValue;
				storage.setValue(id, { value });
			}
			if (value) {
				for (const radio of this._getElementsByName(data.fieldName, id)) {
					storage.setValue(radio.id, { value: false });
				}
			}
			const element = document.createElement("input");
			GetElementsByNameSet.add(element);
			element.setAttribute("data-element-id", id);
			element.disabled = data.readOnly;
			this._setRequired(element, this.data.required);
			element.type = "radio";
			element.name = data.fieldName;
			if (value) {
				element.setAttribute("checked", true);
			}
			element.tabIndex = 0;
			element.addEventListener("change", (event) => {
				const { name, checked } = event.target;
				for (const radio of this._getElementsByName(name, id)) {
					storage.setValue(radio.id, { value: false });
				}
				storage.setValue(id, { value: checked });
			});
			element.addEventListener("resetform", (event) => {
				const defaultValue = data.defaultFieldValue;
				event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue;
			});
			if (this.enableScripting && this.hasJSActions) {
				const pdfButtonValue = data.buttonValue;
				element.addEventListener("updatefromsandbox", (jsEvent) => {
					const actions = { value: (event) => {
						const checked = pdfButtonValue === event.detail.value;
						for (const radio of this._getElementsByName(event.target.name)) {
							const curChecked = checked && radio.id === id;
							if (radio.domElement) {
								radio.domElement.checked = curChecked;
							}
							storage.setValue(radio.id, { value: curChecked });
						}
					} };
					this._dispatchEventFromSandbox(actions, jsEvent);
				});
				this._setEventListeners(element, null, [
					["change", "Validate"],
					["change", "Action"],
					["focus", "Focus"],
					["blur", "Blur"],
					["mousedown", "Mouse Down"],
					["mouseenter", "Mouse Enter"],
					["mouseleave", "Mouse Exit"],
					["mouseup", "Mouse Up"]
				], (event) => event.target.checked);
			}
			this._setBackgroundColor(element);
			this._setDefaultPropertiesFromJS(element);
			this.container.append(element);
			return this.container;
		}
	};
	PushButtonWidgetAnnotationElement = class extends LinkAnnotationElement {
		constructor(parameters) {
			super(parameters, { ignoreBorder: parameters.data.hasAppearance });
		}
		render() {
			const container = super.render();
			container.classList.add("buttonWidgetAnnotation", "pushButton");
			const linkElement = container.lastChild;
			if (this.enableScripting && this.hasJSActions && linkElement) {
				this._setDefaultPropertiesFromJS(linkElement);
				linkElement.addEventListener("updatefromsandbox", (jsEvent) => {
					this._dispatchEventFromSandbox({}, jsEvent);
				});
			}
			return container;
		}
	};
	ChoiceWidgetAnnotationElement = class extends WidgetAnnotationElement {
		constructor(parameters) {
			super(parameters, { isRenderable: parameters.renderForms });
		}
		render() {
			this.container.classList.add("choiceWidgetAnnotation");
			const storage = this.annotationStorage;
			const id = this.data.id;
			const storedData = storage.getValue(id, { value: this.data.fieldValue });
			const selectElement = document.createElement("select");
			GetElementsByNameSet.add(selectElement);
			selectElement.setAttribute("data-element-id", id);
			selectElement.disabled = this.data.readOnly;
			this._setRequired(selectElement, this.data.required);
			selectElement.name = this.data.fieldName;
			selectElement.tabIndex = 0;
			let addAnEmptyEntry = this.data.combo && this.data.options.length > 0;
			if (!this.data.combo) {
				selectElement.size = this.data.options.length;
				if (this.data.multiSelect) {
					selectElement.multiple = true;
				}
			}
			selectElement.addEventListener("resetform", (event) => {
				const defaultValue = this.data.defaultFieldValue;
				for (const option of selectElement.options) {
					option.selected = option.value === defaultValue;
				}
			});
			for (const option of this.data.options) {
				const optionElement = document.createElement("option");
				optionElement.textContent = option.displayValue;
				optionElement.value = option.exportValue;
				if (storedData.value.includes(option.exportValue)) {
					optionElement.setAttribute("selected", true);
					addAnEmptyEntry = false;
				}
				selectElement.append(optionElement);
			}
			let removeEmptyEntry = null;
			if (addAnEmptyEntry) {
				const noneOptionElement = document.createElement("option");
				noneOptionElement.value = " ";
				noneOptionElement.setAttribute("hidden", true);
				noneOptionElement.setAttribute("selected", true);
				selectElement.prepend(noneOptionElement);
				removeEmptyEntry = () => {
					noneOptionElement.remove();
					selectElement.removeEventListener("input", removeEmptyEntry);
					removeEmptyEntry = null;
				};
				selectElement.addEventListener("input", removeEmptyEntry);
			}
			const getValue = (isExport) => {
				const name = isExport ? "value" : "textContent";
				const { options, multiple } = selectElement;
				if (!multiple) {
					return options.selectedIndex === -1 ? null : options[options.selectedIndex][name];
				}
				return Array.prototype.filter.call(options, (option) => option.selected).map((option) => option[name]);
			};
			let selectedValues = getValue(false);
			const getItems = (event) => {
				const options = event.target.options;
				return Array.prototype.map.call(options, (option) => ({
					displayValue: option.textContent,
					exportValue: option.value
				}));
			};
			if (this.enableScripting && this.hasJSActions) {
				selectElement.addEventListener("updatefromsandbox", (jsEvent) => {
					const actions = {
						value(event) {
							removeEmptyEntry?.();
							const value = event.detail.value;
							const values = new Set(Array.isArray(value) ? value : [value]);
							for (const option of selectElement.options) {
								option.selected = values.has(option.value);
							}
							storage.setValue(id, { value: getValue(true) });
							selectedValues = getValue(false);
						},
						multipleSelection(event) {
							selectElement.multiple = true;
						},
						remove(event) {
							const options = selectElement.options;
							const index = event.detail.remove;
							options[index].selected = false;
							selectElement.remove(index);
							if (options.length > 0) {
								const i$7 = Array.prototype.findIndex.call(options, (option) => option.selected);
								if (i$7 === -1) {
									options[0].selected = true;
								}
							}
							storage.setValue(id, {
								value: getValue(true),
								items: getItems(event)
							});
							selectedValues = getValue(false);
						},
						clear(event) {
							while (selectElement.length !== 0) {
								selectElement.remove(0);
							}
							storage.setValue(id, {
								value: null,
								items: []
							});
							selectedValues = getValue(false);
						},
						insert(event) {
							const { index, displayValue, exportValue } = event.detail.insert;
							const selectChild = selectElement.children[index];
							const optionElement = document.createElement("option");
							optionElement.textContent = displayValue;
							optionElement.value = exportValue;
							if (selectChild) {
								selectChild.before(optionElement);
							} else {
								selectElement.append(optionElement);
							}
							storage.setValue(id, {
								value: getValue(true),
								items: getItems(event)
							});
							selectedValues = getValue(false);
						},
						items(event) {
							const { items } = event.detail;
							while (selectElement.length !== 0) {
								selectElement.remove(0);
							}
							for (const item of items) {
								const { displayValue, exportValue } = item;
								const optionElement = document.createElement("option");
								optionElement.textContent = displayValue;
								optionElement.value = exportValue;
								selectElement.append(optionElement);
							}
							if (selectElement.options.length > 0) {
								selectElement.options[0].selected = true;
							}
							storage.setValue(id, {
								value: getValue(true),
								items: getItems(event)
							});
							selectedValues = getValue(false);
						},
						indices(event) {
							const indices = new Set(event.detail.indices);
							for (const option of event.target.options) {
								option.selected = indices.has(option.index);
							}
							storage.setValue(id, { value: getValue(true) });
							selectedValues = getValue(false);
						},
						editable(event) {
							event.target.disabled = !event.detail.editable;
						}
					};
					this._dispatchEventFromSandbox(actions, jsEvent);
				});
				selectElement.addEventListener("input", (event) => {
					const exportValue = getValue(true);
					const change = getValue(false);
					storage.setValue(id, { value: exportValue });
					event.preventDefault();
					this.linkService.eventBus?.dispatch("dispatcheventinsandbox", {
						source: this,
						detail: {
							id,
							name: "Keystroke",
							value: selectedValues,
							change,
							changeEx: exportValue,
							willCommit: false,
							commitKey: 1,
							keyDown: false
						}
					});
				});
				this._setEventListeners(selectElement, null, [
					["focus", "Focus"],
					["blur", "Blur"],
					["mousedown", "Mouse Down"],
					["mouseenter", "Mouse Enter"],
					["mouseleave", "Mouse Exit"],
					["mouseup", "Mouse Up"],
					["input", "Action"],
					["input", "Validate"]
				], (event) => event.target.value);
			} else {
				selectElement.addEventListener("input", function(event) {
					storage.setValue(id, { value: getValue(true) });
				});
			}
			if (this.data.combo) {
				this._setTextStyle(selectElement);
			} else {}
			this._setBackgroundColor(selectElement);
			this._setDefaultPropertiesFromJS(selectElement);
			this.container.append(selectElement);
			return this.container;
		}
	};
	PopupAnnotationElement = class extends AnnotationElement {
		constructor(parameters) {
			const { data, elements, parent } = parameters;
			const hasCommentManager = !!parent._commentManager;
			super(parameters, { isRenderable: !hasCommentManager && AnnotationElement._hasPopupData(data) });
			this.elements = elements;
			if (hasCommentManager && AnnotationElement._hasPopupData(data)) {
				const popup = this.popup = this.#createPopup();
				for (const element of elements) {
					element.popup = popup;
				}
			} else {
				this.popup = null;
			}
		}
		#createPopup() {
			return new PopupElement({
				container: this.container,
				color: this.data.color,
				titleObj: this.data.titleObj,
				modificationDate: this.data.modificationDate || this.data.creationDate,
				contentsObj: this.data.contentsObj,
				richText: this.data.richText,
				rect: this.data.rect,
				parentRect: this.data.parentRect || null,
				parent: this.parent,
				elements: this.elements,
				open: this.data.open,
				commentManager: this.parent._commentManager
			});
		}
		render() {
			const { container } = this;
			container.classList.add("popupAnnotation");
			container.role = "comment";
			const popup = this.popup = this.#createPopup();
			const elementIds = [];
			for (const element of this.elements) {
				element.popup = popup;
				element.container.ariaHasPopup = "dialog";
				elementIds.push(element.data.id);
				element.addHighlightArea();
			}
			this.container.setAttribute("aria-controls", elementIds.map((id) => `${AnnotationPrefix}${id}`).join(","));
			return this.container;
		}
	};
	PopupElement = class {
		#commentManager = null;
		#boundKeyDown = this.#keyDown.bind(this);
		#boundHide = this.#hide.bind(this);
		#boundShow = this.#show.bind(this);
		#boundToggle = this.#toggle.bind(this);
		#color = null;
		#container = null;
		#contentsObj = null;
		#dateObj = null;
		#elements = null;
		#parent = null;
		#parentRect = null;
		#pinned = false;
		#popup = null;
		#popupAbortController = null;
		#position = null;
		#commentButton = null;
		#commentButtonPosition = null;
		#popupPosition = null;
		#rect = null;
		#richText = null;
		#titleObj = null;
		#updates = null;
		#wasVisible = false;
		#firstElement = null;
		#commentText = null;
		constructor({ container, color, elements, titleObj, modificationDate, contentsObj, richText, parent, rect, parentRect, open: open$1, commentManager = null }) {
			this.#container = container;
			this.#titleObj = titleObj;
			this.#contentsObj = contentsObj;
			this.#richText = richText;
			this.#parent = parent;
			this.#color = color;
			this.#rect = rect;
			this.#parentRect = parentRect;
			this.#elements = elements;
			this.#commentManager = commentManager;
			this.#firstElement = elements[0];
			this.#dateObj = PDFDateString.toDateObject(modificationDate);
			this.trigger = elements.flatMap((e$10) => e$10.getElementsToTriggerPopup());
			if (!commentManager) {
				this.#addEventListeners();
				this.#container.hidden = true;
				if (open$1) {
					this.#toggle();
				}
			}
		}
		#addEventListeners() {
			if (this.#popupAbortController) {
				return;
			}
			this.#popupAbortController = new AbortController();
			const { signal } = this.#popupAbortController;
			for (const element of this.trigger) {
				element.addEventListener("click", this.#boundToggle, { signal });
				element.addEventListener("pointerenter", this.#boundShow, { signal });
				element.addEventListener("pointerleave", this.#boundHide, { signal });
				element.classList.add("popupTriggerArea");
			}
			for (const element of this.#elements) {
				element.container?.addEventListener("keydown", this.#boundKeyDown, { signal });
			}
		}
		#setCommentButtonPosition() {
			const element = this.#elements.find((e$10) => e$10.hasCommentButton);
			if (!element) {
				return;
			}
			this.#commentButtonPosition = element._normalizePoint(element.commentButtonPosition);
		}
		renderCommentButton() {
			if (this.#commentButton) {
				if (!this.#commentButton.parentNode) {
					this.#firstElement.container.after(this.#commentButton);
				}
				return;
			}
			if (!this.#commentButtonPosition) {
				this.#setCommentButtonPosition();
			}
			if (!this.#commentButtonPosition) {
				return;
			}
			const { signal } = this.#popupAbortController = new AbortController();
			const hasOwnButton = this.#firstElement.hasOwnCommentButton;
			const togglePopup = () => {
				this.#commentManager.toggleCommentPopup(this, true, undefined, !hasOwnButton);
			};
			const showPopup = () => {
				this.#commentManager.toggleCommentPopup(this, false, true, !hasOwnButton);
			};
			const hidePopup = () => {
				this.#commentManager.toggleCommentPopup(this, false, false);
			};
			if (!hasOwnButton) {
				const button = this.#commentButton = document.createElement("button");
				button.className = "annotationCommentButton";
				const parentContainer = this.#firstElement.container;
				button.style.zIndex = parentContainer.style.zIndex + 1;
				button.tabIndex = 0;
				button.ariaHasPopup = "dialog";
				button.ariaControls = "commentPopup";
				button.setAttribute("data-l10n-id", "pdfjs-show-comment-button");
				this.#updateColor();
				this.#updateCommentButtonPosition();
				button.addEventListener("keydown", this.#boundKeyDown, { signal });
				button.addEventListener("click", togglePopup, { signal });
				button.addEventListener("pointerenter", showPopup, { signal });
				button.addEventListener("pointerleave", hidePopup, { signal });
				parentContainer.after(button);
			} else {
				this.#commentButton = this.#firstElement.container;
				for (const element of this.trigger) {
					element.ariaHasPopup = "dialog";
					element.ariaControls = "commentPopup";
					element.addEventListener("keydown", this.#boundKeyDown, { signal });
					element.addEventListener("click", togglePopup, { signal });
					element.addEventListener("pointerenter", showPopup, { signal });
					element.addEventListener("pointerleave", hidePopup, { signal });
					element.classList.add("popupTriggerArea");
				}
			}
		}
		#updateCommentButtonPosition() {
			if (this.#firstElement.extraPopupElement && !this.#firstElement.editor) {
				return;
			}
			if (!this.#commentButton) {
				this.renderCommentButton();
			}
			const [x$2, y$3] = this.#commentButtonPosition;
			const { style } = this.#commentButton;
			style.left = `calc(${x$2}%)`;
			style.top = `calc(${y$3}% - var(--comment-button-dim))`;
		}
		#updateColor() {
			if (this.#firstElement.extraPopupElement) {
				return;
			}
			if (!this.#commentButton) {
				this.renderCommentButton();
			}
			this.#commentButton.style.backgroundColor = this.commentButtonColor || "";
		}
		get commentButtonColor() {
			const { color, opacity } = this.#firstElement.commentData;
			if (!color) {
				return null;
			}
			return this.#parent._commentManager.makeCommentColor(color, opacity);
		}
		focusCommentButton() {
			setTimeout(() => {
				this.#commentButton?.focus();
			}, 0);
		}
		getData() {
			const { richText, color, opacity, creationDate, modificationDate } = this.#firstElement.commentData;
			return {
				contentsObj: { str: this.comment },
				richText,
				color,
				opacity,
				creationDate,
				modificationDate
			};
		}
		get elementBeforePopup() {
			return this.#commentButton;
		}
		get comment() {
			this.#commentText ||= this.#firstElement.commentText;
			return this.#commentText;
		}
		set comment(text$2) {
			if (text$2 === this.comment) {
				return;
			}
			this.#firstElement.commentText = this.#commentText = text$2;
		}
		focus() {
			this.#firstElement.container?.focus();
		}
		get parentBoundingClientRect() {
			return this.#firstElement.layer.getBoundingClientRect();
		}
		setCommentButtonStates({ selected, hasPopup }) {
			if (!this.#commentButton) {
				return;
			}
			this.#commentButton.classList.toggle("selected", selected);
			this.#commentButton.ariaExpanded = hasPopup;
		}
		setSelectedCommentButton(selected) {
			this.#commentButton.classList.toggle("selected", selected);
		}
		get commentPopupPosition() {
			if (this.#popupPosition) {
				return this.#popupPosition;
			}
			const { x: x$2, y: y$3, height } = this.#commentButton.getBoundingClientRect();
			const { x: parentX, y: parentY, width: parentWidth, height: parentHeight } = this.#firstElement.layer.getBoundingClientRect();
			return [(x$2 - parentX) / parentWidth, (y$3 + height - parentY) / parentHeight];
		}
		set commentPopupPosition(pos) {
			this.#popupPosition = pos;
		}
		hasDefaultPopupPosition() {
			return this.#popupPosition === null;
		}
		get commentButtonPosition() {
			return this.#commentButtonPosition;
		}
		get commentButtonWidth() {
			return this.#commentButton.getBoundingClientRect().width / this.parentBoundingClientRect.width;
		}
		editComment(options) {
			const [posX, posY] = this.#popupPosition || this.commentButtonPosition.map((x$2) => x$2 / 100);
			const parentDimensions = this.parentBoundingClientRect;
			const { x: parentX, y: parentY, width: parentWidth, height: parentHeight } = parentDimensions;
			this.#commentManager.showDialog(null, this, parentX + posX * parentWidth, parentY + posY * parentHeight, {
				...options,
				parentDimensions
			});
		}
		render() {
			if (this.#popup) {
				return;
			}
			const popup = this.#popup = document.createElement("div");
			popup.className = "popup";
			if (this.#color) {
				const baseColor = popup.style.outlineColor = Util.makeHexColor(...this.#color);
				popup.style.backgroundColor = `color-mix(in srgb, ${baseColor} 30%, white)`;
			}
			const header = document.createElement("span");
			header.className = "header";
			if (this.#titleObj?.str) {
				const title = document.createElement("span");
				title.className = "title";
				header.append(title);
				({dir: title.dir, str: title.textContent} = this.#titleObj);
			}
			popup.append(header);
			if (this.#dateObj) {
				const modificationDate = document.createElement("time");
				modificationDate.className = "popupDate";
				modificationDate.setAttribute("data-l10n-id", "pdfjs-annotation-date-time-string");
				modificationDate.setAttribute("data-l10n-args", JSON.stringify({ dateObj: this.#dateObj.valueOf() }));
				modificationDate.dateTime = this.#dateObj.toISOString();
				header.append(modificationDate);
			}
			renderRichText({
				html: this.#html || this.#contentsObj.str,
				dir: this.#contentsObj?.dir,
				className: "popupContent"
			}, popup);
			this.#container.append(popup);
		}
		get #html() {
			const richText = this.#richText;
			const contentsObj = this.#contentsObj;
			if (richText?.str && (!contentsObj?.str || contentsObj.str === richText.str)) {
				return this.#richText.html || null;
			}
			return null;
		}
		get #fontSize() {
			return this.#html?.attributes?.style?.fontSize || 0;
		}
		get #fontColor() {
			return this.#html?.attributes?.style?.color || null;
		}
		#makePopupContent(text$2) {
			const popupLines = [];
			const popupContent = {
				str: text$2,
				html: {
					name: "div",
					attributes: { dir: "auto" },
					children: [{
						name: "p",
						children: popupLines
					}]
				}
			};
			const lineAttributes = { style: {
				color: this.#fontColor,
				fontSize: this.#fontSize ? `calc(${this.#fontSize}px * var(--total-scale-factor))` : ""
			} };
			for (const line of text$2.split("\n")) {
				popupLines.push({
					name: "span",
					value: line,
					attributes: lineAttributes
				});
			}
			return popupContent;
		}
		#keyDown(event) {
			if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) {
				return;
			}
			if (event.key === "Enter" || event.key === "Escape" && this.#pinned) {
				this.#toggle();
			}
		}
		updateEdited({ rect, popup, deleted }) {
			if (this.#commentManager) {
				if (deleted) {
					this.remove();
					this.#commentText = null;
				} else if (popup) {
					if (popup.deleted) {
						this.remove();
					} else {
						this.#updateColor();
						this.#commentText = popup.text;
					}
				}
				if (rect) {
					this.#commentButtonPosition = null;
					this.#setCommentButtonPosition();
					this.#updateCommentButtonPosition();
				}
				return;
			}
			if (deleted || popup?.deleted) {
				this.remove();
				return;
			}
			this.#addEventListeners();
			this.#updates ||= {
				contentsObj: this.#contentsObj,
				richText: this.#richText
			};
			if (rect) {
				this.#position = null;
			}
			if (popup && popup.text) {
				this.#richText = this.#makePopupContent(popup.text);
				this.#dateObj = PDFDateString.toDateObject(popup.date);
				this.#contentsObj = null;
			}
			this.#popup?.remove();
			this.#popup = null;
		}
		resetEdited() {
			if (!this.#updates) {
				return;
			}
			({contentsObj: this.#contentsObj, richText: this.#richText} = this.#updates);
			this.#updates = null;
			this.#popup?.remove();
			this.#popup = null;
			this.#position = null;
		}
		remove() {
			this.#popupAbortController?.abort();
			this.#popupAbortController = null;
			this.#popup?.remove();
			this.#popup = null;
			this.#wasVisible = false;
			this.#pinned = false;
			this.#commentButton?.remove();
			this.#commentButton = null;
			if (this.trigger) {
				for (const element of this.trigger) {
					element.classList.remove("popupTriggerArea");
				}
			}
		}
		#setPosition() {
			if (this.#position !== null) {
				return;
			}
			const { page: { view }, viewport: { rawDims: { pageWidth, pageHeight, pageX, pageY } } } = this.#parent;
			let useParentRect = !!this.#parentRect;
			let rect = useParentRect ? this.#parentRect : this.#rect;
			for (const element of this.#elements) {
				if (!rect || Util.intersect(element.data.rect, rect) !== null) {
					rect = element.data.rect;
					useParentRect = true;
					break;
				}
			}
			const normalizedRect = Util.normalizeRect([
				rect[0],
				view[3] - rect[1] + view[1],
				rect[2],
				view[3] - rect[3] + view[1]
			]);
			const HORIZONTAL_SPACE_AFTER_ANNOTATION = 5;
			const parentWidth = useParentRect ? rect[2] - rect[0] + HORIZONTAL_SPACE_AFTER_ANNOTATION : 0;
			const popupLeft = normalizedRect[0] + parentWidth;
			const popupTop = normalizedRect[1];
			this.#position = [100 * (popupLeft - pageX) / pageWidth, 100 * (popupTop - pageY) / pageHeight];
			const { style } = this.#container;
			style.left = `${this.#position[0]}%`;
			style.top = `${this.#position[1]}%`;
		}
		#toggle() {
			if (this.#commentManager) {
				this.#commentManager.toggleCommentPopup(this, false);
				return;
			}
			this.#pinned = !this.#pinned;
			if (this.#pinned) {
				this.#show();
				this.#container.addEventListener("click", this.#boundToggle);
				this.#container.addEventListener("keydown", this.#boundKeyDown);
			} else {
				this.#hide();
				this.#container.removeEventListener("click", this.#boundToggle);
				this.#container.removeEventListener("keydown", this.#boundKeyDown);
			}
		}
		#show() {
			if (!this.#popup) {
				this.render();
			}
			if (!this.isVisible) {
				this.#setPosition();
				this.#container.hidden = false;
				this.#container.style.zIndex = parseInt(this.#container.style.zIndex) + 1e3;
			} else if (this.#pinned) {
				this.#container.classList.add("focused");
			}
		}
		#hide() {
			this.#container.classList.remove("focused");
			if (this.#pinned || !this.isVisible) {
				return;
			}
			this.#container.hidden = true;
			this.#container.style.zIndex = parseInt(this.#container.style.zIndex) - 1e3;
		}
		forceHide() {
			this.#wasVisible = this.isVisible;
			if (!this.#wasVisible) {
				return;
			}
			this.#container.hidden = true;
		}
		maybeShow() {
			if (this.#commentManager) {
				return;
			}
			this.#addEventListeners();
			if (!this.#wasVisible) {
				return;
			}
			if (!this.#popup) {
				this.#show();
			}
			this.#wasVisible = false;
			this.#container.hidden = false;
		}
		get isVisible() {
			if (this.#commentManager) {
				return false;
			}
			return this.#container.hidden === false;
		}
	};
	FreeTextAnnotationElement = class extends AnnotationElement {
		constructor(parameters) {
			super(parameters, {
				isRenderable: true,
				ignoreBorder: true
			});
			this.textContent = parameters.data.textContent;
			this.textPosition = parameters.data.textPosition;
			this.annotationEditorType = AnnotationEditorType.FREETEXT;
		}
		render() {
			this.container.classList.add("freeTextAnnotation");
			if (this.textContent) {
				const content = this.contentElement = document.createElement("div");
				content.classList.add("annotationTextContent");
				content.setAttribute("role", "comment");
				for (const line of this.textContent) {
					const lineSpan = document.createElement("span");
					lineSpan.textContent = line;
					content.append(lineSpan);
				}
				this.container.append(content);
			}
			if (!this.data.popupRef && this.hasPopupData) {
				this.hasOwnCommentButton = true;
				this._createPopup();
			}
			this._editOnDoubleClick();
			return this.container;
		}
	};
	LineAnnotationElement = class extends AnnotationElement {
		#line = null;
		constructor(parameters) {
			super(parameters, {
				isRenderable: true,
				ignoreBorder: true
			});
		}
		render() {
			this.container.classList.add("lineAnnotation");
			const { data, width, height } = this;
			const svg = this.svgFactory.create(width, height, true);
			const line = this.#line = this.svgFactory.createElement("svg:line");
			line.setAttribute("x1", data.rect[2] - data.lineCoordinates[0]);
			line.setAttribute("y1", data.rect[3] - data.lineCoordinates[1]);
			line.setAttribute("x2", data.rect[2] - data.lineCoordinates[2]);
			line.setAttribute("y2", data.rect[3] - data.lineCoordinates[3]);
			line.setAttribute("stroke-width", data.borderStyle.width || 1);
			line.setAttribute("stroke", "transparent");
			line.setAttribute("fill", "transparent");
			svg.append(line);
			this.container.append(svg);
			if (!data.popupRef && this.hasPopupData) {
				this.hasOwnCommentButton = true;
				this._createPopup();
			}
			return this.container;
		}
		getElementsToTriggerPopup() {
			return this.#line;
		}
		addHighlightArea() {
			this.container.classList.add("highlightArea");
		}
	};
	SquareAnnotationElement = class extends AnnotationElement {
		#square = null;
		constructor(parameters) {
			super(parameters, {
				isRenderable: true,
				ignoreBorder: true
			});
		}
		render() {
			this.container.classList.add("squareAnnotation");
			const { data, width, height } = this;
			const svg = this.svgFactory.create(width, height, true);
			const borderWidth = data.borderStyle.width;
			const square = this.#square = this.svgFactory.createElement("svg:rect");
			square.setAttribute("x", borderWidth / 2);
			square.setAttribute("y", borderWidth / 2);
			square.setAttribute("width", width - borderWidth);
			square.setAttribute("height", height - borderWidth);
			square.setAttribute("stroke-width", borderWidth || 1);
			square.setAttribute("stroke", "transparent");
			square.setAttribute("fill", "transparent");
			svg.append(square);
			this.container.append(svg);
			if (!data.popupRef && this.hasPopupData) {
				this.hasOwnCommentButton = true;
				this._createPopup();
			}
			return this.container;
		}
		getElementsToTriggerPopup() {
			return this.#square;
		}
		addHighlightArea() {
			this.container.classList.add("highlightArea");
		}
	};
	CircleAnnotationElement = class extends AnnotationElement {
		#circle = null;
		constructor(parameters) {
			super(parameters, {
				isRenderable: true,
				ignoreBorder: true
			});
		}
		render() {
			this.container.classList.add("circleAnnotation");
			const { data, width, height } = this;
			const svg = this.svgFactory.create(width, height, true);
			const borderWidth = data.borderStyle.width;
			const circle = this.#circle = this.svgFactory.createElement("svg:ellipse");
			circle.setAttribute("cx", width / 2);
			circle.setAttribute("cy", height / 2);
			circle.setAttribute("rx", width / 2 - borderWidth / 2);
			circle.setAttribute("ry", height / 2 - borderWidth / 2);
			circle.setAttribute("stroke-width", borderWidth || 1);
			circle.setAttribute("stroke", "transparent");
			circle.setAttribute("fill", "transparent");
			svg.append(circle);
			this.container.append(svg);
			if (!data.popupRef && this.hasPopupData) {
				this.hasOwnCommentButton = true;
				this._createPopup();
			}
			return this.container;
		}
		getElementsToTriggerPopup() {
			return this.#circle;
		}
		addHighlightArea() {
			this.container.classList.add("highlightArea");
		}
	};
	PolylineAnnotationElement = class extends AnnotationElement {
		#polyline = null;
		constructor(parameters) {
			super(parameters, {
				isRenderable: true,
				ignoreBorder: true
			});
			this.containerClassName = "polylineAnnotation";
			this.svgElementName = "svg:polyline";
		}
		render() {
			this.container.classList.add(this.containerClassName);
			const { data: { rect, vertices, borderStyle, popupRef }, width, height } = this;
			if (!vertices) {
				return this.container;
			}
			const svg = this.svgFactory.create(width, height, true);
			let points = [];
			for (let i$7 = 0, ii = vertices.length; i$7 < ii; i$7 += 2) {
				const x$2 = vertices[i$7] - rect[0];
				const y$3 = rect[3] - vertices[i$7 + 1];
				points.push(`${x$2},${y$3}`);
			}
			points = points.join(" ");
			const polyline = this.#polyline = this.svgFactory.createElement(this.svgElementName);
			polyline.setAttribute("points", points);
			polyline.setAttribute("stroke-width", borderStyle.width || 1);
			polyline.setAttribute("stroke", "transparent");
			polyline.setAttribute("fill", "transparent");
			svg.append(polyline);
			this.container.append(svg);
			if (!popupRef && this.hasPopupData) {
				this.hasOwnCommentButton = true;
				this._createPopup();
			}
			return this.container;
		}
		getElementsToTriggerPopup() {
			return this.#polyline;
		}
		addHighlightArea() {
			this.container.classList.add("highlightArea");
		}
	};
	PolygonAnnotationElement = class extends PolylineAnnotationElement {
		constructor(parameters) {
			super(parameters);
			this.containerClassName = "polygonAnnotation";
			this.svgElementName = "svg:polygon";
		}
	};
	CaretAnnotationElement = class extends AnnotationElement {
		constructor(parameters) {
			super(parameters, {
				isRenderable: true,
				ignoreBorder: true
			});
		}
		render() {
			this.container.classList.add("caretAnnotation");
			if (!this.data.popupRef && this.hasPopupData) {
				this.hasOwnCommentButton = true;
				this._createPopup();
			}
			return this.container;
		}
	};
	InkAnnotationElement = class extends AnnotationElement {
		#polylinesGroupElement = null;
		#polylines = [];
		constructor(parameters) {
			super(parameters, {
				isRenderable: true,
				ignoreBorder: true
			});
			this.containerClassName = "inkAnnotation";
			this.svgElementName = "svg:polyline";
			this.annotationEditorType = this.data.it === "InkHighlight" ? AnnotationEditorType.HIGHLIGHT : AnnotationEditorType.INK;
		}
		#getTransform(rotation, rect) {
			switch (rotation) {
				case 90: return {
					transform: `rotate(90) translate(${-rect[0]},${rect[1]}) scale(1,-1)`,
					width: rect[3] - rect[1],
					height: rect[2] - rect[0]
				};
				case 180: return {
					transform: `rotate(180) translate(${-rect[2]},${rect[1]}) scale(1,-1)`,
					width: rect[2] - rect[0],
					height: rect[3] - rect[1]
				};
				case 270: return {
					transform: `rotate(270) translate(${-rect[2]},${rect[3]}) scale(1,-1)`,
					width: rect[3] - rect[1],
					height: rect[2] - rect[0]
				};
				default: return {
					transform: `translate(${-rect[0]},${rect[3]}) scale(1,-1)`,
					width: rect[2] - rect[0],
					height: rect[3] - rect[1]
				};
			}
		}
		render() {
			this.container.classList.add(this.containerClassName);
			const { data: { rect, rotation, inkLists, borderStyle, popupRef } } = this;
			const { transform, width, height } = this.#getTransform(rotation, rect);
			const svg = this.svgFactory.create(width, height, true);
			const g$1 = this.#polylinesGroupElement = this.svgFactory.createElement("svg:g");
			svg.append(g$1);
			g$1.setAttribute("stroke-width", borderStyle.width || 1);
			g$1.setAttribute("stroke-linecap", "round");
			g$1.setAttribute("stroke-linejoin", "round");
			g$1.setAttribute("stroke-miterlimit", 10);
			g$1.setAttribute("stroke", "transparent");
			g$1.setAttribute("fill", "transparent");
			g$1.setAttribute("transform", transform);
			for (let i$7 = 0, ii = inkLists.length; i$7 < ii; i$7++) {
				const polyline = this.svgFactory.createElement(this.svgElementName);
				this.#polylines.push(polyline);
				polyline.setAttribute("points", inkLists[i$7].join(","));
				g$1.append(polyline);
			}
			if (!popupRef && this.hasPopupData) {
				this.hasOwnCommentButton = true;
				this._createPopup();
			}
			this.container.append(svg);
			this._editOnDoubleClick();
			return this.container;
		}
		updateEdited(params) {
			super.updateEdited(params);
			const { thickness, points, rect } = params;
			const g$1 = this.#polylinesGroupElement;
			if (thickness >= 0) {
				g$1.setAttribute("stroke-width", thickness || 1);
			}
			if (points) {
				for (let i$7 = 0, ii = this.#polylines.length; i$7 < ii; i$7++) {
					this.#polylines[i$7].setAttribute("points", points[i$7].join(","));
				}
			}
			if (rect) {
				const { transform, width, height } = this.#getTransform(this.data.rotation, rect);
				const root = g$1.parentElement;
				root.setAttribute("viewBox", `0 0 ${width} ${height}`);
				g$1.setAttribute("transform", transform);
			}
		}
		getElementsToTriggerPopup() {
			return this.#polylines;
		}
		addHighlightArea() {
			this.container.classList.add("highlightArea");
		}
	};
	HighlightAnnotationElement = class extends AnnotationElement {
		constructor(parameters) {
			super(parameters, {
				isRenderable: true,
				ignoreBorder: true,
				createQuadrilaterals: true
			});
			this.annotationEditorType = AnnotationEditorType.HIGHLIGHT;
		}
		render() {
			const { data: { overlaidText, popupRef } } = this;
			if (!popupRef && this.hasPopupData) {
				this.hasOwnCommentButton = true;
				this._createPopup();
			}
			this.container.classList.add("highlightAnnotation");
			this._editOnDoubleClick();
			if (overlaidText) {
				const mark = document.createElement("mark");
				mark.classList.add("overlaidText");
				mark.textContent = overlaidText;
				this.container.append(mark);
			}
			return this.container;
		}
	};
	UnderlineAnnotationElement = class extends AnnotationElement {
		constructor(parameters) {
			super(parameters, {
				isRenderable: true,
				ignoreBorder: true,
				createQuadrilaterals: true
			});
		}
		render() {
			const { data: { overlaidText, popupRef } } = this;
			if (!popupRef && this.hasPopupData) {
				this.hasOwnCommentButton = true;
				this._createPopup();
			}
			this.container.classList.add("underlineAnnotation");
			if (overlaidText) {
				const underline = document.createElement("u");
				underline.classList.add("overlaidText");
				underline.textContent = overlaidText;
				this.container.append(underline);
			}
			return this.container;
		}
	};
	SquigglyAnnotationElement = class extends AnnotationElement {
		constructor(parameters) {
			super(parameters, {
				isRenderable: true,
				ignoreBorder: true,
				createQuadrilaterals: true
			});
		}
		render() {
			const { data: { overlaidText, popupRef } } = this;
			if (!popupRef && this.hasPopupData) {
				this.hasOwnCommentButton = true;
				this._createPopup();
			}
			this.container.classList.add("squigglyAnnotation");
			if (overlaidText) {
				const underline = document.createElement("u");
				underline.classList.add("overlaidText");
				underline.textContent = overlaidText;
				this.container.append(underline);
			}
			return this.container;
		}
	};
	StrikeOutAnnotationElement = class extends AnnotationElement {
		constructor(parameters) {
			super(parameters, {
				isRenderable: true,
				ignoreBorder: true,
				createQuadrilaterals: true
			});
		}
		render() {
			const { data: { overlaidText, popupRef } } = this;
			if (!popupRef && this.hasPopupData) {
				this.hasOwnCommentButton = true;
				this._createPopup();
			}
			this.container.classList.add("strikeoutAnnotation");
			if (overlaidText) {
				const strikeout = document.createElement("s");
				strikeout.classList.add("overlaidText");
				strikeout.textContent = overlaidText;
				this.container.append(strikeout);
			}
			return this.container;
		}
	};
	StampAnnotationElement = class extends AnnotationElement {
		constructor(parameters) {
			super(parameters, {
				isRenderable: true,
				ignoreBorder: true
			});
			this.annotationEditorType = AnnotationEditorType.STAMP;
		}
		render() {
			this.container.classList.add("stampAnnotation");
			this.container.setAttribute("role", "img");
			if (!this.data.popupRef && this.hasPopupData) {
				this.hasOwnCommentButton = true;
				this._createPopup();
			}
			this._editOnDoubleClick();
			return this.container;
		}
	};
	FileAttachmentAnnotationElement = class extends AnnotationElement {
		#trigger = null;
		constructor(parameters) {
			super(parameters, { isRenderable: true });
			const { file } = this.data;
			this.filename = file.filename;
			this.content = file.content;
			this.linkService.eventBus?.dispatch("fileattachmentannotation", {
				source: this,
				...file
			});
		}
		render() {
			this.container.classList.add("fileAttachmentAnnotation");
			const { container, data } = this;
			let trigger;
			if (data.hasAppearance || data.fillAlpha === 0) {
				trigger = document.createElement("div");
			} else {
				trigger = document.createElement("img");
				trigger.src = `${this.imageResourcesPath}annotation-${/paperclip/i.test(data.name) ? "paperclip" : "pushpin"}.svg`;
				if (data.fillAlpha && data.fillAlpha < 1) {
					trigger.style = `filter: opacity(${Math.round(data.fillAlpha * 100)}%);`;
				}
			}
			trigger.addEventListener("dblclick", this.#download.bind(this));
			this.#trigger = trigger;
			const { isMac } = util_FeatureTest.platform;
			container.addEventListener("keydown", (evt) => {
				if (evt.key === "Enter" && (isMac ? evt.metaKey : evt.ctrlKey)) {
					this.#download();
				}
			});
			if (!data.popupRef && this.hasPopupData) {
				this.hasOwnCommentButton = true;
				this._createPopup();
			} else {
				trigger.classList.add("popupTriggerArea");
			}
			container.append(trigger);
			return container;
		}
		getElementsToTriggerPopup() {
			return this.#trigger;
		}
		addHighlightArea() {
			this.container.classList.add("highlightArea");
		}
		#download() {
			this.downloadManager?.openOrDownloadData(this.content, this.filename);
		}
	};
	AnnotationLayer = class AnnotationLayer {
		#accessibilityManager = null;
		#annotationCanvasMap = null;
		#annotationStorage = null;
		#editableAnnotations = new Map();
		#structTreeLayer = null;
		#linkService = null;
		#elements = [];
		#hasAriaAttributesFromStructTree = false;
		constructor({ div, accessibilityManager, annotationCanvasMap, annotationEditorUIManager, page, viewport, structTreeLayer, commentManager, linkService, annotationStorage }) {
			this.div = div;
			this.#accessibilityManager = accessibilityManager;
			this.#annotationCanvasMap = annotationCanvasMap;
			this.#structTreeLayer = structTreeLayer || null;
			this.#linkService = linkService || null;
			this.#annotationStorage = annotationStorage || new AnnotationStorage();
			this.page = page;
			this.viewport = viewport;
			this.zIndex = 0;
			this._annotationEditorUIManager = annotationEditorUIManager;
			this._commentManager = commentManager || null;
		}
		hasEditableAnnotations() {
			return this.#editableAnnotations.size > 0;
		}
		async render(params) {
			const { annotations } = params;
			const layer = this.div;
			setLayerDimensions(layer, this.viewport);
			const popupToElements = new Map();
			const popupAnnotations = [];
			const elementParams = {
				data: null,
				layer,
				linkService: this.#linkService,
				downloadManager: params.downloadManager,
				imageResourcesPath: params.imageResourcesPath || "",
				renderForms: params.renderForms !== false,
				svgFactory: new DOMSVGFactory(),
				annotationStorage: this.#annotationStorage,
				enableComment: params.enableComment === true,
				enableScripting: params.enableScripting === true,
				hasJSActions: params.hasJSActions,
				fieldObjects: params.fieldObjects,
				parent: this,
				elements: null
			};
			for (const data of annotations) {
				if (data.noHTML) {
					continue;
				}
				const isPopupAnnotation = data.annotationType === AnnotationType.POPUP;
				if (!isPopupAnnotation) {
					if (data.rect[2] === data.rect[0] || data.rect[3] === data.rect[1]) {
						continue;
					}
				} else {
					const elements = popupToElements.get(data.id);
					if (!elements) {
						continue;
					}
					if (!this._commentManager) {
						popupAnnotations.push(data);
						continue;
					}
					elementParams.elements = elements;
				}
				elementParams.data = data;
				const element = AnnotationElementFactory.create(elementParams);
				if (!element.isRenderable) {
					continue;
				}
				if (!isPopupAnnotation) {
					this.#elements.push(element);
					if (data.popupRef) {
						const elements = popupToElements.get(data.popupRef);
						if (!elements) {
							popupToElements.set(data.popupRef, [element]);
						} else {
							elements.push(element);
						}
					}
				}
				const rendered = element.render();
				if (data.hidden) {
					rendered.style.visibility = "hidden";
				}
				if (element._isEditable) {
					this.#editableAnnotations.set(element.data.id, element);
					this._annotationEditorUIManager?.renderAnnotationElement(element);
				}
			}
			await this.#addElementsToDOM();
			for (const data of popupAnnotations) {
				const elements = elementParams.elements = popupToElements.get(data.id);
				elementParams.data = data;
				const element = AnnotationElementFactory.create(elementParams);
				if (!element.isRenderable) {
					continue;
				}
				const rendered = element.render();
				element.contentElement.id = `${AnnotationPrefix}${data.id}`;
				if (data.hidden) {
					rendered.style.visibility = "hidden";
				}
				elements.at(-1).container.after(rendered);
			}
			this.#setAnnotationCanvasMap();
		}
		async #addElementsToDOM() {
			if (this.#elements.length === 0) {
				return;
			}
			this.div.replaceChildren();
			const promises = [];
			if (!this.#hasAriaAttributesFromStructTree) {
				this.#hasAriaAttributesFromStructTree = true;
				for (const { contentElement, data: { id } } of this.#elements) {
					const annotationId = contentElement.id = `${AnnotationPrefix}${id}`;
					promises.push(this.#structTreeLayer?.getAriaAttributes(annotationId).then((ariaAttributes) => {
						if (ariaAttributes) {
							for (const [key, value] of ariaAttributes) {
								contentElement.setAttribute(key, value);
							}
						}
					}));
				}
			}
			this.#elements.sort(({ data: { rect: [a0, a1, a2, a3] } }, { data: { rect: [b0, b1, b2, b3] } }) => {
				if (a0 === a2 && a1 === a3) {
					return +1;
				}
				if (b0 === b2 && b1 === b3) {
					return -1;
				}
				const top1 = a3;
				const bot1 = a1;
				const mid1 = (a1 + a3) / 2;
				const top2 = b3;
				const bot2 = b1;
				const mid2 = (b1 + b3) / 2;
				if (mid1 >= top2 && mid2 <= bot1) {
					return -1;
				}
				if (mid2 >= top1 && mid1 <= bot2) {
					return +1;
				}
				const centerX1 = (a0 + a2) / 2;
				const centerX2 = (b0 + b2) / 2;
				return centerX1 - centerX2;
			});
			const fragment = document.createDocumentFragment();
			for (const element of this.#elements) {
				fragment.append(element.container);
				if (this._commentManager) {
					(element.extraPopupElement?.popup || element.popup)?.renderCommentButton();
				} else if (element.extraPopupElement) {
					fragment.append(element.extraPopupElement.render());
				}
			}
			this.div.append(fragment);
			await Promise.all(promises);
			if (this.#accessibilityManager) {
				for (const element of this.#elements) {
					this.#accessibilityManager.addPointerInTextLayer(element.contentElement, false);
				}
			}
		}
		async addLinkAnnotations(annotations) {
			const elementParams = {
				data: null,
				layer: this.div,
				linkService: this.#linkService,
				svgFactory: new DOMSVGFactory(),
				parent: this
			};
			for (const data of annotations) {
				data.borderStyle ||= AnnotationLayer._defaultBorderStyle;
				elementParams.data = data;
				const element = AnnotationElementFactory.create(elementParams);
				if (!element.isRenderable) {
					continue;
				}
				element.render();
				element.contentElement.id = `${AnnotationPrefix}${data.id}`;
				this.#elements.push(element);
			}
			await this.#addElementsToDOM();
		}
		update({ viewport }) {
			const layer = this.div;
			this.viewport = viewport;
			setLayerDimensions(layer, { rotation: viewport.rotation });
			this.#setAnnotationCanvasMap();
			layer.hidden = false;
		}
		#setAnnotationCanvasMap() {
			if (!this.#annotationCanvasMap) {
				return;
			}
			const layer = this.div;
			for (const [id, canvas] of this.#annotationCanvasMap) {
				const element = layer.querySelector(`[data-annotation-id="${id}"]`);
				if (!element) {
					continue;
				}
				canvas.className = "annotationContent";
				const { firstChild } = element;
				if (!firstChild) {
					element.append(canvas);
				} else if (firstChild.nodeName === "CANVAS") {
					firstChild.replaceWith(canvas);
				} else if (!firstChild.classList.contains("annotationContent")) {
					firstChild.before(canvas);
				} else {
					firstChild.after(canvas);
				}
				const editableAnnotation = this.#editableAnnotations.get(id);
				if (!editableAnnotation) {
					continue;
				}
				if (editableAnnotation._hasNoCanvas) {
					this._annotationEditorUIManager?.setMissingCanvas(id, element.id, canvas);
					editableAnnotation._hasNoCanvas = false;
				} else {
					editableAnnotation.canvas = canvas;
				}
			}
			this.#annotationCanvasMap.clear();
		}
		getEditableAnnotations() {
			return Array.from(this.#editableAnnotations.values());
		}
		getEditableAnnotation(id) {
			return this.#editableAnnotations.get(id);
		}
		addFakeAnnotation(editor) {
			const { div } = this;
			const { id, rotation } = editor;
			const element = new EditorAnnotationElement({
				data: {
					id,
					rect: editor.getPDFRect(),
					rotation
				},
				editor,
				layer: div,
				parent: this,
				enableComment: !!this._commentManager,
				linkService: this.#linkService,
				annotationStorage: this.#annotationStorage
			});
			element.render();
			element.contentElement.id = `${AnnotationPrefix}${id}`;
			element.createOrUpdatePopup();
			this.#elements.push(element);
			return element;
		}
		removeAnnotation(id) {
			const index = this.#elements.findIndex((el) => el.data.id === id);
			if (index < 0) {
				return;
			}
			const [element] = this.#elements.splice(index, 1);
			this.#accessibilityManager?.removePointerInTextLayer(element.contentElement);
		}
		updateFakeAnnotations(editors) {
			if (editors.length === 0) {
				return;
			}
			for (const editor of editors) {
				editor.updateFakeAnnotationElement(this);
			}
			this.#addElementsToDOM();
		}
		togglePointerEvents(enabled = false) {
			this.div.classList.toggle("disabled", !enabled);
		}
		static get _defaultBorderStyle() {
			return shadow(this, "_defaultBorderStyle", Object.freeze({
				width: 1,
				rawWidth: 1,
				style: AnnotationBorderStyleType.SOLID,
				dashArray: [3],
				horizontalCornerRadius: 0,
				verticalCornerRadius: 0
			}));
		}
	};
	;
	EOL_PATTERN = /\r\n?|\n/g;
	FreeTextEditor = class FreeTextEditor extends AnnotationEditor {
		#content = "";
		#editorDivId = `${this.id}-editor`;
		#editModeAC = null;
		#fontSize;
		_colorPicker = null;
		static _freeTextDefaultContent = "";
		static _internalPadding = 0;
		static _defaultColor = null;
		static _defaultFontSize = 10;
		static get _keyboardManager() {
			const proto = FreeTextEditor.prototype;
			const arrowChecker = (self$1) => self$1.isEmpty();
			const small = AnnotationEditorUIManager.TRANSLATE_SMALL;
			const big = AnnotationEditorUIManager.TRANSLATE_BIG;
			return shadow(this, "_keyboardManager", new KeyboardManager([
				[
					[
						"ctrl+s",
						"mac+meta+s",
						"ctrl+p",
						"mac+meta+p"
					],
					proto.commitOrRemove,
					{ bubbles: true }
				],
				[[
					"ctrl+Enter",
					"mac+meta+Enter",
					"Escape",
					"mac+Escape"
				], proto.commitOrRemove],
				[
					["ArrowLeft", "mac+ArrowLeft"],
					proto._translateEmpty,
					{
						args: [-small, 0],
						checker: arrowChecker
					}
				],
				[
					["ctrl+ArrowLeft", "mac+shift+ArrowLeft"],
					proto._translateEmpty,
					{
						args: [-big, 0],
						checker: arrowChecker
					}
				],
				[
					["ArrowRight", "mac+ArrowRight"],
					proto._translateEmpty,
					{
						args: [small, 0],
						checker: arrowChecker
					}
				],
				[
					["ctrl+ArrowRight", "mac+shift+ArrowRight"],
					proto._translateEmpty,
					{
						args: [big, 0],
						checker: arrowChecker
					}
				],
				[
					["ArrowUp", "mac+ArrowUp"],
					proto._translateEmpty,
					{
						args: [0, -small],
						checker: arrowChecker
					}
				],
				[
					["ctrl+ArrowUp", "mac+shift+ArrowUp"],
					proto._translateEmpty,
					{
						args: [0, -big],
						checker: arrowChecker
					}
				],
				[
					["ArrowDown", "mac+ArrowDown"],
					proto._translateEmpty,
					{
						args: [0, small],
						checker: arrowChecker
					}
				],
				[
					["ctrl+ArrowDown", "mac+shift+ArrowDown"],
					proto._translateEmpty,
					{
						args: [0, big],
						checker: arrowChecker
					}
				]
			]));
		}
		static _type = "freetext";
		static _editorType = AnnotationEditorType.FREETEXT;
		constructor(params) {
			super({
				...params,
				name: "freeTextEditor"
			});
			this.color = params.color || FreeTextEditor._defaultColor || AnnotationEditor._defaultLineColor;
			this.#fontSize = params.fontSize || FreeTextEditor._defaultFontSize;
			if (!this.annotationElementId) {
				this._uiManager.a11yAlert("pdfjs-editor-freetext-added-alert");
			}
			this.canAddComment = false;
		}
		static initialize(l10n, uiManager) {
			AnnotationEditor.initialize(l10n, uiManager);
			const style = getComputedStyle(document.documentElement);
			this._internalPadding = parseFloat(style.getPropertyValue("--freetext-padding"));
		}
		static updateDefaultParams(type, value) {
			switch (type) {
				case AnnotationEditorParamsType.FREETEXT_SIZE:
					FreeTextEditor._defaultFontSize = value;
					break;
				case AnnotationEditorParamsType.FREETEXT_COLOR:
					FreeTextEditor._defaultColor = value;
					break;
			}
		}
		updateParams(type, value) {
			switch (type) {
				case AnnotationEditorParamsType.FREETEXT_SIZE:
					this.#updateFontSize(value);
					break;
				case AnnotationEditorParamsType.FREETEXT_COLOR:
					this.#updateColor(value);
					break;
			}
		}
		static get defaultPropertiesToUpdate() {
			return [[AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || AnnotationEditor._defaultLineColor]];
		}
		get propertiesToUpdate() {
			return [[AnnotationEditorParamsType.FREETEXT_SIZE, this.#fontSize], [AnnotationEditorParamsType.FREETEXT_COLOR, this.color]];
		}
		get toolbarButtons() {
			this._colorPicker ||= new BasicColorPicker(this);
			return [["colorPicker", this._colorPicker]];
		}
		get colorType() {
			return AnnotationEditorParamsType.FREETEXT_COLOR;
		}
		#updateFontSize(fontSize) {
			const setFontsize = (size) => {
				this.editorDiv.style.fontSize = `calc(${size}px * var(--total-scale-factor))`;
				this.translate(0, -(size - this.#fontSize) * this.parentScale);
				this.#fontSize = size;
				this.#setEditorDimensions();
			};
			const savedFontsize = this.#fontSize;
			this.addCommands({
				cmd: setFontsize.bind(this, fontSize),
				undo: setFontsize.bind(this, savedFontsize),
				post: this._uiManager.updateUI.bind(this._uiManager, this),
				mustExec: true,
				type: AnnotationEditorParamsType.FREETEXT_SIZE,
				overwriteIfSameType: true,
				keepUndo: true
			});
		}
		onUpdatedColor() {
			this.editorDiv.style.color = this.color;
			this._colorPicker?.update(this.color);
			super.onUpdatedColor();
		}
		#updateColor(color) {
			const setColor = (col) => {
				this.color = col;
				this.onUpdatedColor();
			};
			const savedColor = this.color;
			this.addCommands({
				cmd: setColor.bind(this, color),
				undo: setColor.bind(this, savedColor),
				post: this._uiManager.updateUI.bind(this._uiManager, this),
				mustExec: true,
				type: AnnotationEditorParamsType.FREETEXT_COLOR,
				overwriteIfSameType: true,
				keepUndo: true
			});
		}
		_translateEmpty(x$2, y$3) {
			this._uiManager.translateSelectedEditors(x$2, y$3, true);
		}
		getInitialTranslation() {
			const scale = this.parentScale;
			return [-FreeTextEditor._internalPadding * scale, -(FreeTextEditor._internalPadding + this.#fontSize) * scale];
		}
		rebuild() {
			if (!this.parent) {
				return;
			}
			super.rebuild();
			if (this.div === null) {
				return;
			}
			if (!this.isAttachedToDOM) {
				this.parent.add(this);
			}
		}
		enableEditMode() {
			if (!super.enableEditMode()) {
				return false;
			}
			this.overlayDiv.classList.remove("enabled");
			this.editorDiv.contentEditable = true;
			this._isDraggable = false;
			this.div.removeAttribute("aria-activedescendant");
			this.#editModeAC = new AbortController();
			const signal = this._uiManager.combinedSignal(this.#editModeAC);
			this.editorDiv.addEventListener("keydown", this.editorDivKeydown.bind(this), { signal });
			this.editorDiv.addEventListener("focus", this.editorDivFocus.bind(this), { signal });
			this.editorDiv.addEventListener("blur", this.editorDivBlur.bind(this), { signal });
			this.editorDiv.addEventListener("input", this.editorDivInput.bind(this), { signal });
			this.editorDiv.addEventListener("paste", this.editorDivPaste.bind(this), { signal });
			return true;
		}
		disableEditMode() {
			if (!super.disableEditMode()) {
				return false;
			}
			this.overlayDiv.classList.add("enabled");
			this.editorDiv.contentEditable = false;
			this.div.setAttribute("aria-activedescendant", this.#editorDivId);
			this._isDraggable = true;
			this.#editModeAC?.abort();
			this.#editModeAC = null;
			this.div.focus({ preventScroll: true });
			this.isEditing = false;
			this.parent.div.classList.add("freetextEditing");
			return true;
		}
		focusin(event) {
			if (!this._focusEventsAllowed) {
				return;
			}
			super.focusin(event);
			if (event.target !== this.editorDiv) {
				this.editorDiv.focus();
			}
		}
		onceAdded(focus) {
			if (this.width) {
				return;
			}
			this.enableEditMode();
			if (focus) {
				this.editorDiv.focus();
			}
			if (this._initialOptions?.isCentered) {
				this.center();
			}
			this._initialOptions = null;
		}
		isEmpty() {
			return !this.editorDiv || this.editorDiv.innerText.trim() === "";
		}
		remove() {
			this.isEditing = false;
			if (this.parent) {
				this.parent.setEditingState(true);
				this.parent.div.classList.add("freetextEditing");
			}
			super.remove();
		}
		#extractText() {
			const buffer = [];
			this.editorDiv.normalize();
			let prevChild = null;
			for (const child of this.editorDiv.childNodes) {
				if (prevChild?.nodeType === Node.TEXT_NODE && child.nodeName === "BR") {
					continue;
				}
				buffer.push(FreeTextEditor.#getNodeContent(child));
				prevChild = child;
			}
			return buffer.join("\n");
		}
		#setEditorDimensions() {
			const [parentWidth, parentHeight] = this.parentDimensions;
			let rect;
			if (this.isAttachedToDOM) {
				rect = this.div.getBoundingClientRect();
			} else {
				const { currentLayer, div } = this;
				const savedDisplay = div.style.display;
				const savedVisibility = div.classList.contains("hidden");
				div.classList.remove("hidden");
				div.style.display = "hidden";
				currentLayer.div.append(this.div);
				rect = div.getBoundingClientRect();
				div.remove();
				div.style.display = savedDisplay;
				div.classList.toggle("hidden", savedVisibility);
			}
			if (this.rotation % 180 === this.parentRotation % 180) {
				this.width = rect.width / parentWidth;
				this.height = rect.height / parentHeight;
			} else {
				this.width = rect.height / parentWidth;
				this.height = rect.width / parentHeight;
			}
			this.fixAndSetPosition();
		}
		commit() {
			if (!this.isInEditMode()) {
				return;
			}
			super.commit();
			this.disableEditMode();
			const savedText = this.#content;
			const newText = this.#content = this.#extractText().trimEnd();
			if (savedText === newText) {
				return;
			}
			const setText = (text$2) => {
				this.#content = text$2;
				if (!text$2) {
					this.remove();
					return;
				}
				this.#setContent();
				this._uiManager.rebuild(this);
				this.#setEditorDimensions();
			};
			this.addCommands({
				cmd: () => {
					setText(newText);
				},
				undo: () => {
					setText(savedText);
				},
				mustExec: false
			});
			this.#setEditorDimensions();
		}
		shouldGetKeyboardEvents() {
			return this.isInEditMode();
		}
		enterInEditMode() {
			this.enableEditMode();
			this.editorDiv.focus();
		}
		keydown(event) {
			if (event.target === this.div && event.key === "Enter") {
				this.enterInEditMode();
				event.preventDefault();
			}
		}
		editorDivKeydown(event) {
			FreeTextEditor._keyboardManager.exec(this, event);
		}
		editorDivFocus(event) {
			this.isEditing = true;
		}
		editorDivBlur(event) {
			this.isEditing = false;
		}
		editorDivInput(event) {
			this.parent.div.classList.toggle("freetextEditing", this.isEmpty());
		}
		disableEditing() {
			this.editorDiv.setAttribute("role", "comment");
			this.editorDiv.removeAttribute("aria-multiline");
		}
		enableEditing() {
			this.editorDiv.setAttribute("role", "textbox");
			this.editorDiv.setAttribute("aria-multiline", true);
		}
		get canChangeContent() {
			return true;
		}
		render() {
			if (this.div) {
				return this.div;
			}
			let baseX, baseY;
			if (this._isCopy || this.annotationElementId) {
				baseX = this.x;
				baseY = this.y;
			}
			super.render();
			this.editorDiv = document.createElement("div");
			this.editorDiv.className = "internal";
			this.editorDiv.setAttribute("id", this.#editorDivId);
			this.editorDiv.setAttribute("data-l10n-id", "pdfjs-free-text2");
			this.editorDiv.setAttribute("data-l10n-attrs", "default-content");
			this.enableEditing();
			this.editorDiv.contentEditable = true;
			const { style } = this.editorDiv;
			style.fontSize = `calc(${this.#fontSize}px * var(--total-scale-factor))`;
			style.color = this.color;
			this.div.append(this.editorDiv);
			this.overlayDiv = document.createElement("div");
			this.overlayDiv.classList.add("overlay", "enabled");
			this.div.append(this.overlayDiv);
			if (this._isCopy || this.annotationElementId) {
				const [parentWidth, parentHeight] = this.parentDimensions;
				if (this.annotationElementId) {
					const { position } = this._initialData;
					let [tx, ty] = this.getInitialTranslation();
					[tx, ty] = this.pageTranslationToScreen(tx, ty);
					const [pageWidth, pageHeight] = this.pageDimensions;
					const [pageX, pageY] = this.pageTranslation;
					let posX, posY;
					switch (this.rotation) {
						case 0:
							posX = baseX + (position[0] - pageX) / pageWidth;
							posY = baseY + this.height - (position[1] - pageY) / pageHeight;
							break;
						case 90:
							posX = baseX + (position[0] - pageX) / pageWidth;
							posY = baseY - (position[1] - pageY) / pageHeight;
							[tx, ty] = [ty, -tx];
							break;
						case 180:
							posX = baseX - this.width + (position[0] - pageX) / pageWidth;
							posY = baseY - (position[1] - pageY) / pageHeight;
							[tx, ty] = [-tx, -ty];
							break;
						case 270:
							posX = baseX + (position[0] - pageX - this.height * pageHeight) / pageWidth;
							posY = baseY + (position[1] - pageY - this.width * pageWidth) / pageHeight;
							[tx, ty] = [-ty, tx];
							break;
					}
					this.setAt(posX * parentWidth, posY * parentHeight, tx, ty);
				} else {
					this._moveAfterPaste(baseX, baseY);
				}
				this.#setContent();
				this._isDraggable = true;
				this.editorDiv.contentEditable = false;
			} else {
				this._isDraggable = false;
				this.editorDiv.contentEditable = true;
			}
			return this.div;
		}
		static #getNodeContent(node) {
			return (node.nodeType === Node.TEXT_NODE ? node.nodeValue : node.innerText).replaceAll(EOL_PATTERN, "");
		}
		editorDivPaste(event) {
			const clipboardData = event.clipboardData || window.clipboardData;
			const { types } = clipboardData;
			if (types.length === 1 && types[0] === "text/plain") {
				return;
			}
			event.preventDefault();
			const paste = FreeTextEditor.#deserializeContent(clipboardData.getData("text") || "").replaceAll(EOL_PATTERN, "\n");
			if (!paste) {
				return;
			}
			const selection = window.getSelection();
			if (!selection.rangeCount) {
				return;
			}
			this.editorDiv.normalize();
			selection.deleteFromDocument();
			const range = selection.getRangeAt(0);
			if (!paste.includes("\n")) {
				range.insertNode(document.createTextNode(paste));
				this.editorDiv.normalize();
				selection.collapseToStart();
				return;
			}
			const { startContainer, startOffset } = range;
			const bufferBefore = [];
			const bufferAfter = [];
			if (startContainer.nodeType === Node.TEXT_NODE) {
				const parent = startContainer.parentElement;
				bufferAfter.push(startContainer.nodeValue.slice(startOffset).replaceAll(EOL_PATTERN, ""));
				if (parent !== this.editorDiv) {
					let buffer = bufferBefore;
					for (const child of this.editorDiv.childNodes) {
						if (child === parent) {
							buffer = bufferAfter;
							continue;
						}
						buffer.push(FreeTextEditor.#getNodeContent(child));
					}
				}
				bufferBefore.push(startContainer.nodeValue.slice(0, startOffset).replaceAll(EOL_PATTERN, ""));
			} else if (startContainer === this.editorDiv) {
				let buffer = bufferBefore;
				let i$7 = 0;
				for (const child of this.editorDiv.childNodes) {
					if (i$7++ === startOffset) {
						buffer = bufferAfter;
					}
					buffer.push(FreeTextEditor.#getNodeContent(child));
				}
			}
			this.#content = `${bufferBefore.join("\n")}${paste}${bufferAfter.join("\n")}`;
			this.#setContent();
			const newRange = new Range();
			let beforeLength = Math.sumPrecise(bufferBefore.map((line) => line.length));
			for (const { firstChild } of this.editorDiv.childNodes) {
				if (firstChild.nodeType === Node.TEXT_NODE) {
					const length = firstChild.nodeValue.length;
					if (beforeLength <= length) {
						newRange.setStart(firstChild, beforeLength);
						newRange.setEnd(firstChild, beforeLength);
						break;
					}
					beforeLength -= length;
				}
			}
			selection.removeAllRanges();
			selection.addRange(newRange);
		}
		#setContent() {
			this.editorDiv.replaceChildren();
			if (!this.#content) {
				return;
			}
			for (const line of this.#content.split("\n")) {
				const div = document.createElement("div");
				div.append(line ? document.createTextNode(line) : document.createElement("br"));
				this.editorDiv.append(div);
			}
		}
		#serializeContent() {
			return this.#content.replaceAll("\xA0", " ");
		}
		static #deserializeContent(content) {
			return content.replaceAll(" ", "\xA0");
		}
		get contentDiv() {
			return this.editorDiv;
		}
		getPDFRect() {
			const padding = FreeTextEditor._internalPadding * this.parentScale;
			return this.getRect(padding, padding);
		}
		static async deserialize(data, parent, uiManager) {
			let initialData = null;
			if (data instanceof FreeTextAnnotationElement) {
				const { data: { defaultAppearanceData: { fontSize, fontColor }, rect, rotation, id, popupRef, richText, contentsObj, creationDate, modificationDate }, textContent, textPosition, parent: { page: { pageNumber } } } = data;
				if (!textContent || textContent.length === 0) {
					return null;
				}
				initialData = data = {
					annotationType: AnnotationEditorType.FREETEXT,
					color: Array.from(fontColor),
					fontSize,
					value: textContent.join("\n"),
					position: textPosition,
					pageIndex: pageNumber - 1,
					rect: rect.slice(0),
					rotation,
					annotationElementId: id,
					id,
					deleted: false,
					popupRef,
					comment: contentsObj?.str || null,
					richText,
					creationDate,
					modificationDate
				};
			}
			const editor = await super.deserialize(data, parent, uiManager);
			editor.#fontSize = data.fontSize;
			editor.color = Util.makeHexColor(...data.color);
			editor.#content = FreeTextEditor.#deserializeContent(data.value);
			editor._initialData = initialData;
			if (data.comment) {
				editor.setCommentData(data);
			}
			return editor;
		}
		serialize(isForCopying = false) {
			if (this.isEmpty()) {
				return null;
			}
			if (this.deleted) {
				return this.serializeDeleted();
			}
			const color = AnnotationEditor._colorManager.convert(this.isAttachedToDOM ? getComputedStyle(this.editorDiv).color : this.color);
			const serialized = Object.assign(super.serialize(isForCopying), {
				color,
				fontSize: this.#fontSize,
				value: this.#serializeContent()
			});
			this.addComment(serialized);
			if (isForCopying) {
				serialized.isCopy = true;
				return serialized;
			}
			if (this.annotationElementId && !this.#hasElementChanged(serialized)) {
				return null;
			}
			serialized.id = this.annotationElementId;
			return serialized;
		}
		#hasElementChanged(serialized) {
			const { value, fontSize, color, pageIndex } = this._initialData;
			return this.hasEditedComment || this._hasBeenMoved || serialized.value !== value || serialized.fontSize !== fontSize || serialized.color.some((c$7, i$7) => c$7 !== color[i$7]) || serialized.pageIndex !== pageIndex;
		}
		renderAnnotationElement(annotation) {
			const content = super.renderAnnotationElement(annotation);
			if (!content) {
				return null;
			}
			const { style } = content;
			style.fontSize = `calc(${this.#fontSize}px * var(--total-scale-factor))`;
			style.color = this.color;
			content.replaceChildren();
			for (const line of this.#content.split("\n")) {
				const div = document.createElement("div");
				div.append(line ? document.createTextNode(line) : document.createElement("br"));
				content.append(div);
			}
			annotation.updateEdited({
				rect: this.getPDFRect(),
				popup: this._uiManager.hasCommentManager() || this.hasEditedComment ? this.comment : { text: this.#content }
			});
			return content;
		}
		resetAnnotationElement(annotation) {
			super.resetAnnotationElement(annotation);
			annotation.resetEdited();
		}
	};
	;
	Outline = class {
		static PRECISION = 1e-4;
		toSVGPath() {
			unreachable("Abstract method `toSVGPath` must be implemented.");
		}
		get box() {
			unreachable("Abstract getter `box` must be implemented.");
		}
		serialize(_bbox, _rotation) {
			unreachable("Abstract method `serialize` must be implemented.");
		}
		static _rescale(src, tx, ty, sx, sy, dest) {
			dest ||= new Float32Array(src.length);
			for (let i$7 = 0, ii = src.length; i$7 < ii; i$7 += 2) {
				dest[i$7] = tx + src[i$7] * sx;
				dest[i$7 + 1] = ty + src[i$7 + 1] * sy;
			}
			return dest;
		}
		static _rescaleAndSwap(src, tx, ty, sx, sy, dest) {
			dest ||= new Float32Array(src.length);
			for (let i$7 = 0, ii = src.length; i$7 < ii; i$7 += 2) {
				dest[i$7] = tx + src[i$7 + 1] * sx;
				dest[i$7 + 1] = ty + src[i$7] * sy;
			}
			return dest;
		}
		static _translate(src, tx, ty, dest) {
			dest ||= new Float32Array(src.length);
			for (let i$7 = 0, ii = src.length; i$7 < ii; i$7 += 2) {
				dest[i$7] = tx + src[i$7];
				dest[i$7 + 1] = ty + src[i$7 + 1];
			}
			return dest;
		}
		static svgRound(x$2) {
			return Math.round(x$2 * 1e4);
		}
		static _normalizePoint(x$2, y$3, parentWidth, parentHeight, rotation) {
			switch (rotation) {
				case 90: return [1 - y$3 / parentWidth, x$2 / parentHeight];
				case 180: return [1 - x$2 / parentWidth, 1 - y$3 / parentHeight];
				case 270: return [y$3 / parentWidth, 1 - x$2 / parentHeight];
				default: return [x$2 / parentWidth, y$3 / parentHeight];
			}
		}
		static _normalizePagePoint(x$2, y$3, rotation) {
			switch (rotation) {
				case 90: return [1 - y$3, x$2];
				case 180: return [1 - x$2, 1 - y$3];
				case 270: return [y$3, 1 - x$2];
				default: return [x$2, y$3];
			}
		}
		static createBezierPoints(x1, y1, x2, y2, x3, y3) {
			return [
				(x1 + 5 * x2) / 6,
				(y1 + 5 * y2) / 6,
				(5 * x2 + x3) / 6,
				(5 * y2 + y3) / 6,
				(x2 + x3) / 2,
				(y2 + y3) / 2
			];
		}
	};
	;
	FreeDrawOutliner = class FreeDrawOutliner {
		#box;
		#bottom = [];
		#innerMargin;
		#isLTR;
		#top = [];
		#last = new Float32Array(18);
		#lastX;
		#lastY;
		#min;
		#min_dist;
		#scaleFactor;
		#thickness;
		#points = [];
		static #MIN_DIST = 8;
		static #MIN_DIFF = 2;
		static #MIN = FreeDrawOutliner.#MIN_DIST + FreeDrawOutliner.#MIN_DIFF;
		constructor({ x: x$2, y: y$3 }, box, scaleFactor, thickness, isLTR, innerMargin = 0) {
			this.#box = box;
			this.#thickness = thickness * scaleFactor;
			this.#isLTR = isLTR;
			this.#last.set([
				NaN,
				NaN,
				NaN,
				NaN,
				x$2,
				y$3
			], 6);
			this.#innerMargin = innerMargin;
			this.#min_dist = FreeDrawOutliner.#MIN_DIST * scaleFactor;
			this.#min = FreeDrawOutliner.#MIN * scaleFactor;
			this.#scaleFactor = scaleFactor;
			this.#points.push(x$2, y$3);
		}
		isEmpty() {
			return isNaN(this.#last[8]);
		}
		#getLastCoords() {
			const lastTop = this.#last.subarray(4, 6);
			const lastBottom = this.#last.subarray(16, 18);
			const [x$2, y$3, width, height] = this.#box;
			return [
				(this.#lastX + (lastTop[0] - lastBottom[0]) / 2 - x$2) / width,
				(this.#lastY + (lastTop[1] - lastBottom[1]) / 2 - y$3) / height,
				(this.#lastX + (lastBottom[0] - lastTop[0]) / 2 - x$2) / width,
				(this.#lastY + (lastBottom[1] - lastTop[1]) / 2 - y$3) / height
			];
		}
		add({ x: x$2, y: y$3 }) {
			this.#lastX = x$2;
			this.#lastY = y$3;
			const [layerX, layerY, layerWidth, layerHeight] = this.#box;
			let [x1, y1, x2, y2] = this.#last.subarray(8, 12);
			const diffX = x$2 - x2;
			const diffY = y$3 - y2;
			const d$5 = Math.hypot(diffX, diffY);
			if (d$5 < this.#min) {
				return false;
			}
			const diffD = d$5 - this.#min_dist;
			const K$1 = diffD / d$5;
			const shiftX = K$1 * diffX;
			const shiftY = K$1 * diffY;
			let x0 = x1;
			let y0 = y1;
			x1 = x2;
			y1 = y2;
			x2 += shiftX;
			y2 += shiftY;
			this.#points?.push(x$2, y$3);
			const nX = -shiftY / diffD;
			const nY = shiftX / diffD;
			const thX = nX * this.#thickness;
			const thY = nY * this.#thickness;
			this.#last.set(this.#last.subarray(2, 8), 0);
			this.#last.set([x2 + thX, y2 + thY], 4);
			this.#last.set(this.#last.subarray(14, 18), 12);
			this.#last.set([x2 - thX, y2 - thY], 16);
			if (isNaN(this.#last[6])) {
				if (this.#top.length === 0) {
					this.#last.set([x1 + thX, y1 + thY], 2);
					this.#top.push(NaN, NaN, NaN, NaN, (x1 + thX - layerX) / layerWidth, (y1 + thY - layerY) / layerHeight);
					this.#last.set([x1 - thX, y1 - thY], 14);
					this.#bottom.push(NaN, NaN, NaN, NaN, (x1 - thX - layerX) / layerWidth, (y1 - thY - layerY) / layerHeight);
				}
				this.#last.set([
					x0,
					y0,
					x1,
					y1,
					x2,
					y2
				], 6);
				return !this.isEmpty();
			}
			this.#last.set([
				x0,
				y0,
				x1,
				y1,
				x2,
				y2
			], 6);
			const angle = Math.abs(Math.atan2(y0 - y1, x0 - x1) - Math.atan2(shiftY, shiftX));
			if (angle < Math.PI / 2) {
				[x1, y1, x2, y2] = this.#last.subarray(2, 6);
				this.#top.push(NaN, NaN, NaN, NaN, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight);
				[x1, y1, x0, y0] = this.#last.subarray(14, 18);
				this.#bottom.push(NaN, NaN, NaN, NaN, ((x0 + x1) / 2 - layerX) / layerWidth, ((y0 + y1) / 2 - layerY) / layerHeight);
				return true;
			}
			[x0, y0, x1, y1, x2, y2] = this.#last.subarray(0, 6);
			this.#top.push(((x0 + 5 * x1) / 6 - layerX) / layerWidth, ((y0 + 5 * y1) / 6 - layerY) / layerHeight, ((5 * x1 + x2) / 6 - layerX) / layerWidth, ((5 * y1 + y2) / 6 - layerY) / layerHeight, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight);
			[x2, y2, x1, y1, x0, y0] = this.#last.subarray(12, 18);
			this.#bottom.push(((x0 + 5 * x1) / 6 - layerX) / layerWidth, ((y0 + 5 * y1) / 6 - layerY) / layerHeight, ((5 * x1 + x2) / 6 - layerX) / layerWidth, ((5 * y1 + y2) / 6 - layerY) / layerHeight, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight);
			return true;
		}
		toSVGPath() {
			if (this.isEmpty()) {
				return "";
			}
			const top = this.#top;
			const bottom = this.#bottom;
			if (isNaN(this.#last[6]) && !this.isEmpty()) {
				return this.#toSVGPathTwoPoints();
			}
			const buffer = [];
			buffer.push(`M${top[4]} ${top[5]}`);
			for (let i$7 = 6; i$7 < top.length; i$7 += 6) {
				if (isNaN(top[i$7])) {
					buffer.push(`L${top[i$7 + 4]} ${top[i$7 + 5]}`);
				} else {
					buffer.push(`C${top[i$7]} ${top[i$7 + 1]} ${top[i$7 + 2]} ${top[i$7 + 3]} ${top[i$7 + 4]} ${top[i$7 + 5]}`);
				}
			}
			this.#toSVGPathEnd(buffer);
			for (let i$7 = bottom.length - 6; i$7 >= 6; i$7 -= 6) {
				if (isNaN(bottom[i$7])) {
					buffer.push(`L${bottom[i$7 + 4]} ${bottom[i$7 + 5]}`);
				} else {
					buffer.push(`C${bottom[i$7]} ${bottom[i$7 + 1]} ${bottom[i$7 + 2]} ${bottom[i$7 + 3]} ${bottom[i$7 + 4]} ${bottom[i$7 + 5]}`);
				}
			}
			this.#toSVGPathStart(buffer);
			return buffer.join(" ");
		}
		#toSVGPathTwoPoints() {
			const [x$2, y$3, width, height] = this.#box;
			const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();
			return `M${(this.#last[2] - x$2) / width} ${(this.#last[3] - y$3) / height} L${(this.#last[4] - x$2) / width} ${(this.#last[5] - y$3) / height} L${lastTopX} ${lastTopY} L${lastBottomX} ${lastBottomY} L${(this.#last[16] - x$2) / width} ${(this.#last[17] - y$3) / height} L${(this.#last[14] - x$2) / width} ${(this.#last[15] - y$3) / height} Z`;
		}
		#toSVGPathStart(buffer) {
			const bottom = this.#bottom;
			buffer.push(`L${bottom[4]} ${bottom[5]} Z`);
		}
		#toSVGPathEnd(buffer) {
			const [x$2, y$3, width, height] = this.#box;
			const lastTop = this.#last.subarray(4, 6);
			const lastBottom = this.#last.subarray(16, 18);
			const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();
			buffer.push(`L${(lastTop[0] - x$2) / width} ${(lastTop[1] - y$3) / height} L${lastTopX} ${lastTopY} L${lastBottomX} ${lastBottomY} L${(lastBottom[0] - x$2) / width} ${(lastBottom[1] - y$3) / height}`);
		}
		newFreeDrawOutline(outline, points, box, scaleFactor, innerMargin, isLTR) {
			return new FreeDrawOutline(outline, points, box, scaleFactor, innerMargin, isLTR);
		}
		getOutlines() {
			const top = this.#top;
			const bottom = this.#bottom;
			const last = this.#last;
			const [layerX, layerY, layerWidth, layerHeight] = this.#box;
			const points = new Float32Array((this.#points?.length ?? 0) + 2);
			for (let i$7 = 0, ii = points.length - 2; i$7 < ii; i$7 += 2) {
				points[i$7] = (this.#points[i$7] - layerX) / layerWidth;
				points[i$7 + 1] = (this.#points[i$7 + 1] - layerY) / layerHeight;
			}
			points[points.length - 2] = (this.#lastX - layerX) / layerWidth;
			points[points.length - 1] = (this.#lastY - layerY) / layerHeight;
			if (isNaN(last[6]) && !this.isEmpty()) {
				return this.#getOutlineTwoPoints(points);
			}
			const outline = new Float32Array(this.#top.length + 24 + this.#bottom.length);
			let N$2 = top.length;
			for (let i$7 = 0; i$7 < N$2; i$7 += 2) {
				if (isNaN(top[i$7])) {
					outline[i$7] = outline[i$7 + 1] = NaN;
					continue;
				}
				outline[i$7] = top[i$7];
				outline[i$7 + 1] = top[i$7 + 1];
			}
			N$2 = this.#getOutlineEnd(outline, N$2);
			for (let i$7 = bottom.length - 6; i$7 >= 6; i$7 -= 6) {
				for (let j$2 = 0; j$2 < 6; j$2 += 2) {
					if (isNaN(bottom[i$7 + j$2])) {
						outline[N$2] = outline[N$2 + 1] = NaN;
						N$2 += 2;
						continue;
					}
					outline[N$2] = bottom[i$7 + j$2];
					outline[N$2 + 1] = bottom[i$7 + j$2 + 1];
					N$2 += 2;
				}
			}
			this.#getOutlineStart(outline, N$2);
			return this.newFreeDrawOutline(outline, points, this.#box, this.#scaleFactor, this.#innerMargin, this.#isLTR);
		}
		#getOutlineTwoPoints(points) {
			const last = this.#last;
			const [layerX, layerY, layerWidth, layerHeight] = this.#box;
			const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();
			const outline = new Float32Array(36);
			outline.set([
				NaN,
				NaN,
				NaN,
				NaN,
				(last[2] - layerX) / layerWidth,
				(last[3] - layerY) / layerHeight,
				NaN,
				NaN,
				NaN,
				NaN,
				(last[4] - layerX) / layerWidth,
				(last[5] - layerY) / layerHeight,
				NaN,
				NaN,
				NaN,
				NaN,
				lastTopX,
				lastTopY,
				NaN,
				NaN,
				NaN,
				NaN,
				lastBottomX,
				lastBottomY,
				NaN,
				NaN,
				NaN,
				NaN,
				(last[16] - layerX) / layerWidth,
				(last[17] - layerY) / layerHeight,
				NaN,
				NaN,
				NaN,
				NaN,
				(last[14] - layerX) / layerWidth,
				(last[15] - layerY) / layerHeight
			], 0);
			return this.newFreeDrawOutline(outline, points, this.#box, this.#scaleFactor, this.#innerMargin, this.#isLTR);
		}
		#getOutlineStart(outline, pos) {
			const bottom = this.#bottom;
			outline.set([
				NaN,
				NaN,
				NaN,
				NaN,
				bottom[4],
				bottom[5]
			], pos);
			return pos += 6;
		}
		#getOutlineEnd(outline, pos) {
			const lastTop = this.#last.subarray(4, 6);
			const lastBottom = this.#last.subarray(16, 18);
			const [layerX, layerY, layerWidth, layerHeight] = this.#box;
			const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();
			outline.set([
				NaN,
				NaN,
				NaN,
				NaN,
				(lastTop[0] - layerX) / layerWidth,
				(lastTop[1] - layerY) / layerHeight,
				NaN,
				NaN,
				NaN,
				NaN,
				lastTopX,
				lastTopY,
				NaN,
				NaN,
				NaN,
				NaN,
				lastBottomX,
				lastBottomY,
				NaN,
				NaN,
				NaN,
				NaN,
				(lastBottom[0] - layerX) / layerWidth,
				(lastBottom[1] - layerY) / layerHeight
			], pos);
			return pos += 24;
		}
	};
	FreeDrawOutline = class extends Outline {
		#box;
		#bbox = new Float32Array(4);
		#innerMargin;
		#isLTR;
		#points;
		#scaleFactor;
		#outline;
		constructor(outline, points, box, scaleFactor, innerMargin, isLTR) {
			super();
			this.#outline = outline;
			this.#points = points;
			this.#box = box;
			this.#scaleFactor = scaleFactor;
			this.#innerMargin = innerMargin;
			this.#isLTR = isLTR;
			this.firstPoint = [NaN, NaN];
			this.lastPoint = [NaN, NaN];
			this.#computeMinMax(isLTR);
			const [x$2, y$3, width, height] = this.#bbox;
			for (let i$7 = 0, ii = outline.length; i$7 < ii; i$7 += 2) {
				outline[i$7] = (outline[i$7] - x$2) / width;
				outline[i$7 + 1] = (outline[i$7 + 1] - y$3) / height;
			}
			for (let i$7 = 0, ii = points.length; i$7 < ii; i$7 += 2) {
				points[i$7] = (points[i$7] - x$2) / width;
				points[i$7 + 1] = (points[i$7 + 1] - y$3) / height;
			}
		}
		toSVGPath() {
			const buffer = [`M${this.#outline[4]} ${this.#outline[5]}`];
			for (let i$7 = 6, ii = this.#outline.length; i$7 < ii; i$7 += 6) {
				if (isNaN(this.#outline[i$7])) {
					buffer.push(`L${this.#outline[i$7 + 4]} ${this.#outline[i$7 + 5]}`);
					continue;
				}
				buffer.push(`C${this.#outline[i$7]} ${this.#outline[i$7 + 1]} ${this.#outline[i$7 + 2]} ${this.#outline[i$7 + 3]} ${this.#outline[i$7 + 4]} ${this.#outline[i$7 + 5]}`);
			}
			buffer.push("Z");
			return buffer.join(" ");
		}
		serialize([blX, blY, trX, trY], rotation) {
			const width = trX - blX;
			const height = trY - blY;
			let outline;
			let points;
			switch (rotation) {
				case 0:
					outline = Outline._rescale(this.#outline, blX, trY, width, -height);
					points = Outline._rescale(this.#points, blX, trY, width, -height);
					break;
				case 90:
					outline = Outline._rescaleAndSwap(this.#outline, blX, blY, width, height);
					points = Outline._rescaleAndSwap(this.#points, blX, blY, width, height);
					break;
				case 180:
					outline = Outline._rescale(this.#outline, trX, blY, -width, height);
					points = Outline._rescale(this.#points, trX, blY, -width, height);
					break;
				case 270:
					outline = Outline._rescaleAndSwap(this.#outline, trX, trY, -width, -height);
					points = Outline._rescaleAndSwap(this.#points, trX, trY, -width, -height);
					break;
			}
			return {
				outline: Array.from(outline),
				points: [Array.from(points)]
			};
		}
		#computeMinMax(isLTR) {
			const outline = this.#outline;
			let lastX = outline[4];
			let lastY = outline[5];
			const minMax = [
				lastX,
				lastY,
				lastX,
				lastY
			];
			let firstPointX = lastX;
			let firstPointY = lastY;
			let lastPointX = lastX;
			let lastPointY = lastY;
			const ltrCallback = isLTR ? Math.max : Math.min;
			const bezierBbox = new Float32Array(4);
			for (let i$7 = 6, ii = outline.length; i$7 < ii; i$7 += 6) {
				const x$2 = outline[i$7 + 4], y$3 = outline[i$7 + 5];
				if (isNaN(outline[i$7])) {
					Util.pointBoundingBox(x$2, y$3, minMax);
					if (firstPointY > y$3) {
						firstPointX = x$2;
						firstPointY = y$3;
					} else if (firstPointY === y$3) {
						firstPointX = ltrCallback(firstPointX, x$2);
					}
					if (lastPointY < y$3) {
						lastPointX = x$2;
						lastPointY = y$3;
					} else if (lastPointY === y$3) {
						lastPointX = ltrCallback(lastPointX, x$2);
					}
				} else {
					bezierBbox[0] = bezierBbox[1] = Infinity;
					bezierBbox[2] = bezierBbox[3] = -Infinity;
					Util.bezierBoundingBox(lastX, lastY, ...outline.slice(i$7, i$7 + 6), bezierBbox);
					Util.rectBoundingBox(bezierBbox[0], bezierBbox[1], bezierBbox[2], bezierBbox[3], minMax);
					if (firstPointY > bezierBbox[1]) {
						firstPointX = bezierBbox[0];
						firstPointY = bezierBbox[1];
					} else if (firstPointY === bezierBbox[1]) {
						firstPointX = ltrCallback(firstPointX, bezierBbox[0]);
					}
					if (lastPointY < bezierBbox[3]) {
						lastPointX = bezierBbox[2];
						lastPointY = bezierBbox[3];
					} else if (lastPointY === bezierBbox[3]) {
						lastPointX = ltrCallback(lastPointX, bezierBbox[2]);
					}
				}
				lastX = x$2;
				lastY = y$3;
			}
			const bbox = this.#bbox;
			bbox[0] = minMax[0] - this.#innerMargin;
			bbox[1] = minMax[1] - this.#innerMargin;
			bbox[2] = minMax[2] - minMax[0] + 2 * this.#innerMargin;
			bbox[3] = minMax[3] - minMax[1] + 2 * this.#innerMargin;
			this.firstPoint = [firstPointX, firstPointY];
			this.lastPoint = [lastPointX, lastPointY];
		}
		get box() {
			return this.#bbox;
		}
		newOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin = 0) {
			return new FreeDrawOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin);
		}
		getNewOutline(thickness, innerMargin) {
			const [x$2, y$3, width, height] = this.#bbox;
			const [layerX, layerY, layerWidth, layerHeight] = this.#box;
			const sx = width * layerWidth;
			const sy = height * layerHeight;
			const tx = x$2 * layerWidth + layerX;
			const ty = y$3 * layerHeight + layerY;
			const outliner = this.newOutliner({
				x: this.#points[0] * sx + tx,
				y: this.#points[1] * sy + ty
			}, this.#box, this.#scaleFactor, thickness, this.#isLTR, innerMargin ?? this.#innerMargin);
			for (let i$7 = 2; i$7 < this.#points.length; i$7 += 2) {
				outliner.add({
					x: this.#points[i$7] * sx + tx,
					y: this.#points[i$7 + 1] * sy + ty
				});
			}
			return outliner.getOutlines();
		}
	};
	;
	HighlightOutliner = class {
		#box;
		#firstPoint;
		#lastPoint;
		#verticalEdges = [];
		#intervals = [];
		constructor(boxes, borderWidth = 0, innerMargin = 0, isLTR = true) {
			const minMax = [
				Infinity,
				Infinity,
				-Infinity,
				-Infinity
			];
			const NUMBER_OF_DIGITS = 4;
			const EPSILON = 10 ** -NUMBER_OF_DIGITS;
			for (const { x: x$2, y: y$3, width, height } of boxes) {
				const x1 = Math.floor((x$2 - borderWidth) / EPSILON) * EPSILON;
				const x2 = Math.ceil((x$2 + width + borderWidth) / EPSILON) * EPSILON;
				const y1 = Math.floor((y$3 - borderWidth) / EPSILON) * EPSILON;
				const y2 = Math.ceil((y$3 + height + borderWidth) / EPSILON) * EPSILON;
				const left = [
					x1,
					y1,
					y2,
					true
				];
				const right = [
					x2,
					y1,
					y2,
					false
				];
				this.#verticalEdges.push(left, right);
				Util.rectBoundingBox(x1, y1, x2, y2, minMax);
			}
			const bboxWidth = minMax[2] - minMax[0] + 2 * innerMargin;
			const bboxHeight = minMax[3] - minMax[1] + 2 * innerMargin;
			const shiftedMinX = minMax[0] - innerMargin;
			const shiftedMinY = minMax[1] - innerMargin;
			let firstPointX = isLTR ? -Infinity : Infinity;
			let firstPointY = Infinity;
			const lastEdge = this.#verticalEdges.at(isLTR ? -1 : -2);
			const lastPoint = [lastEdge[0], lastEdge[2]];
			for (const edge of this.#verticalEdges) {
				const [x$2, y1, y2, left] = edge;
				if (!left && isLTR) {
					if (y1 < firstPointY) {
						firstPointY = y1;
						firstPointX = x$2;
					} else if (y1 === firstPointY) {
						firstPointX = Math.max(firstPointX, x$2);
					}
				} else if (left && !isLTR) {
					if (y1 < firstPointY) {
						firstPointY = y1;
						firstPointX = x$2;
					} else if (y1 === firstPointY) {
						firstPointX = Math.min(firstPointX, x$2);
					}
				}
				edge[0] = (x$2 - shiftedMinX) / bboxWidth;
				edge[1] = (y1 - shiftedMinY) / bboxHeight;
				edge[2] = (y2 - shiftedMinY) / bboxHeight;
			}
			this.#box = new Float32Array([
				shiftedMinX,
				shiftedMinY,
				bboxWidth,
				bboxHeight
			]);
			this.#firstPoint = [firstPointX, firstPointY];
			this.#lastPoint = lastPoint;
		}
		getOutlines() {
			this.#verticalEdges.sort((a$2, b$3) => a$2[0] - b$3[0] || a$2[1] - b$3[1] || a$2[2] - b$3[2]);
			const outlineVerticalEdges = [];
			for (const edge of this.#verticalEdges) {
				if (edge[3]) {
					outlineVerticalEdges.push(...this.#breakEdge(edge));
					this.#insert(edge);
				} else {
					this.#remove(edge);
					outlineVerticalEdges.push(...this.#breakEdge(edge));
				}
			}
			return this.#getOutlines(outlineVerticalEdges);
		}
		#getOutlines(outlineVerticalEdges) {
			const edges = [];
			const allEdges = new Set();
			for (const edge of outlineVerticalEdges) {
				const [x$2, y1, y2] = edge;
				edges.push([
					x$2,
					y1,
					edge
				], [
					x$2,
					y2,
					edge
				]);
			}
			edges.sort((a$2, b$3) => a$2[1] - b$3[1] || a$2[0] - b$3[0]);
			for (let i$7 = 0, ii = edges.length; i$7 < ii; i$7 += 2) {
				const edge1 = edges[i$7][2];
				const edge2 = edges[i$7 + 1][2];
				edge1.push(edge2);
				edge2.push(edge1);
				allEdges.add(edge1);
				allEdges.add(edge2);
			}
			const outlines = [];
			let outline;
			while (allEdges.size > 0) {
				const edge = allEdges.values().next().value;
				let [x$2, y1, y2, edge1, edge2] = edge;
				allEdges.delete(edge);
				let lastPointX = x$2;
				let lastPointY = y1;
				outline = [x$2, y2];
				outlines.push(outline);
				while (true) {
					let e$10;
					if (allEdges.has(edge1)) {
						e$10 = edge1;
					} else if (allEdges.has(edge2)) {
						e$10 = edge2;
					} else {
						break;
					}
					allEdges.delete(e$10);
					[x$2, y1, y2, edge1, edge2] = e$10;
					if (lastPointX !== x$2) {
						outline.push(lastPointX, lastPointY, x$2, lastPointY === y1 ? y1 : y2);
						lastPointX = x$2;
					}
					lastPointY = lastPointY === y1 ? y2 : y1;
				}
				outline.push(lastPointX, lastPointY);
			}
			return new HighlightOutline(outlines, this.#box, this.#firstPoint, this.#lastPoint);
		}
		#binarySearch(y$3) {
			const array = this.#intervals;
			let start = 0;
			let end = array.length - 1;
			while (start <= end) {
				const middle = start + end >> 1;
				const y1 = array[middle][0];
				if (y1 === y$3) {
					return middle;
				}
				if (y1 < y$3) {
					start = middle + 1;
				} else {
					end = middle - 1;
				}
			}
			return end + 1;
		}
		#insert([, y1, y2]) {
			const index = this.#binarySearch(y1);
			this.#intervals.splice(index, 0, [y1, y2]);
		}
		#remove([, y1, y2]) {
			const index = this.#binarySearch(y1);
			for (let i$7 = index; i$7 < this.#intervals.length; i$7++) {
				const [start, end] = this.#intervals[i$7];
				if (start !== y1) {
					break;
				}
				if (start === y1 && end === y2) {
					this.#intervals.splice(i$7, 1);
					return;
				}
			}
			for (let i$7 = index - 1; i$7 >= 0; i$7--) {
				const [start, end] = this.#intervals[i$7];
				if (start !== y1) {
					break;
				}
				if (start === y1 && end === y2) {
					this.#intervals.splice(i$7, 1);
					return;
				}
			}
		}
		#breakEdge(edge) {
			const [x$2, y1, y2] = edge;
			const results = [[
				x$2,
				y1,
				y2
			]];
			const index = this.#binarySearch(y2);
			for (let i$7 = 0; i$7 < index; i$7++) {
				const [start, end] = this.#intervals[i$7];
				for (let j$2 = 0, jj = results.length; j$2 < jj; j$2++) {
					const [, y3, y4] = results[j$2];
					if (end <= y3 || y4 <= start) {
						continue;
					}
					if (y3 >= start) {
						if (y4 > end) {
							results[j$2][1] = end;
						} else {
							if (jj === 1) {
								return [];
							}
							results.splice(j$2, 1);
							j$2--;
							jj--;
						}
						continue;
					}
					results[j$2][2] = start;
					if (y4 > end) {
						results.push([
							x$2,
							end,
							y4
						]);
					}
				}
			}
			return results;
		}
	};
	HighlightOutline = class extends Outline {
		#box;
		#outlines;
		constructor(outlines, box, firstPoint, lastPoint) {
			super();
			this.#outlines = outlines;
			this.#box = box;
			this.firstPoint = firstPoint;
			this.lastPoint = lastPoint;
		}
		toSVGPath() {
			const buffer = [];
			for (const polygon of this.#outlines) {
				let [prevX, prevY] = polygon;
				buffer.push(`M${prevX} ${prevY}`);
				for (let i$7 = 2; i$7 < polygon.length; i$7 += 2) {
					const x$2 = polygon[i$7];
					const y$3 = polygon[i$7 + 1];
					if (x$2 === prevX) {
						buffer.push(`V${y$3}`);
						prevY = y$3;
					} else if (y$3 === prevY) {
						buffer.push(`H${x$2}`);
						prevX = x$2;
					}
				}
				buffer.push("Z");
			}
			return buffer.join(" ");
		}
		serialize([blX, blY, trX, trY], _rotation) {
			const outlines = [];
			const width = trX - blX;
			const height = trY - blY;
			for (const outline of this.#outlines) {
				const points = new Array(outline.length);
				for (let i$7 = 0; i$7 < outline.length; i$7 += 2) {
					points[i$7] = blX + outline[i$7] * width;
					points[i$7 + 1] = trY - outline[i$7 + 1] * height;
				}
				outlines.push(points);
			}
			return outlines;
		}
		get box() {
			return this.#box;
		}
		get classNamesForOutlining() {
			return ["highlightOutline"];
		}
	};
	FreeHighlightOutliner = class extends FreeDrawOutliner {
		newFreeDrawOutline(outline, points, box, scaleFactor, innerMargin, isLTR) {
			return new FreeHighlightOutline(outline, points, box, scaleFactor, innerMargin, isLTR);
		}
	};
	FreeHighlightOutline = class extends FreeDrawOutline {
		newOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin = 0) {
			return new FreeHighlightOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin);
		}
	};
	;
	HighlightEditor = class HighlightEditor extends AnnotationEditor {
		#anchorNode = null;
		#anchorOffset = 0;
		#boxes;
		#clipPathId = null;
		#colorPicker = null;
		#focusOutlines = null;
		#focusNode = null;
		#focusOffset = 0;
		#highlightDiv = null;
		#highlightOutlines = null;
		#id = null;
		#isFreeHighlight = false;
		#firstPoint = null;
		#lastPoint = null;
		#outlineId = null;
		#text = "";
		#thickness;
		#methodOfCreation = "";
		static _defaultColor = null;
		static _defaultOpacity = 1;
		static _defaultThickness = 12;
		static _type = "highlight";
		static _editorType = AnnotationEditorType.HIGHLIGHT;
		static _freeHighlightId = -1;
		static _freeHighlight = null;
		static _freeHighlightClipId = "";
		static get _keyboardManager() {
			const proto = HighlightEditor.prototype;
			return shadow(this, "_keyboardManager", new KeyboardManager([
				[
					["ArrowLeft", "mac+ArrowLeft"],
					proto._moveCaret,
					{ args: [0] }
				],
				[
					["ArrowRight", "mac+ArrowRight"],
					proto._moveCaret,
					{ args: [1] }
				],
				[
					["ArrowUp", "mac+ArrowUp"],
					proto._moveCaret,
					{ args: [2] }
				],
				[
					["ArrowDown", "mac+ArrowDown"],
					proto._moveCaret,
					{ args: [3] }
				]
			]));
		}
		constructor(params) {
			super({
				...params,
				name: "highlightEditor"
			});
			this.color = params.color || HighlightEditor._defaultColor;
			this.#thickness = params.thickness || HighlightEditor._defaultThickness;
			this.opacity = params.opacity || HighlightEditor._defaultOpacity;
			this.#boxes = params.boxes || null;
			this.#methodOfCreation = params.methodOfCreation || "";
			this.#text = params.text || "";
			this._isDraggable = false;
			this.defaultL10nId = "pdfjs-editor-highlight-editor";
			if (params.highlightId > -1) {
				this.#isFreeHighlight = true;
				this.#createFreeOutlines(params);
				this.#addToDrawLayer();
			} else if (this.#boxes) {
				this.#anchorNode = params.anchorNode;
				this.#anchorOffset = params.anchorOffset;
				this.#focusNode = params.focusNode;
				this.#focusOffset = params.focusOffset;
				this.#createOutlines();
				this.#addToDrawLayer();
				this.rotate(this.rotation);
			}
			if (!this.annotationElementId) {
				this._uiManager.a11yAlert("pdfjs-editor-highlight-added-alert");
			}
		}
		get telemetryInitialData() {
			return {
				action: "added",
				type: this.#isFreeHighlight ? "free_highlight" : "highlight",
				color: this._uiManager.getNonHCMColorName(this.color),
				thickness: this.#thickness,
				methodOfCreation: this.#methodOfCreation
			};
		}
		get telemetryFinalData() {
			return {
				type: "highlight",
				color: this._uiManager.getNonHCMColorName(this.color)
			};
		}
		static computeTelemetryFinalData(data) {
			return { numberOfColors: data.get("color").size };
		}
		#createOutlines() {
			const outliner = new HighlightOutliner(this.#boxes, .001);
			this.#highlightOutlines = outliner.getOutlines();
			[this.x, this.y, this.width, this.height] = this.#highlightOutlines.box;
			const outlinerForOutline = new HighlightOutliner(this.#boxes, .0025, .001, this._uiManager.direction === "ltr");
			this.#focusOutlines = outlinerForOutline.getOutlines();
			const { firstPoint } = this.#highlightOutlines;
			this.#firstPoint = [(firstPoint[0] - this.x) / this.width, (firstPoint[1] - this.y) / this.height];
			const { lastPoint } = this.#focusOutlines;
			this.#lastPoint = [(lastPoint[0] - this.x) / this.width, (lastPoint[1] - this.y) / this.height];
		}
		#createFreeOutlines({ highlightOutlines, highlightId, clipPathId }) {
			this.#highlightOutlines = highlightOutlines;
			const extraThickness = 1.5;
			this.#focusOutlines = highlightOutlines.getNewOutline(this.#thickness / 2 + extraThickness, .0025);
			if (highlightId >= 0) {
				this.#id = highlightId;
				this.#clipPathId = clipPathId;
				this.parent.drawLayer.finalizeDraw(highlightId, {
					bbox: highlightOutlines.box,
					path: { d: highlightOutlines.toSVGPath() }
				});
				this.#outlineId = this.parent.drawLayer.drawOutline({
					rootClass: {
						highlightOutline: true,
						free: true
					},
					bbox: this.#focusOutlines.box,
					path: { d: this.#focusOutlines.toSVGPath() }
				}, true);
			} else if (this.parent) {
				const angle = this.parent.viewport.rotation;
				this.parent.drawLayer.updateProperties(this.#id, {
					bbox: HighlightEditor.#rotateBbox(this.#highlightOutlines.box, (angle - this.rotation + 360) % 360),
					path: { d: highlightOutlines.toSVGPath() }
				});
				this.parent.drawLayer.updateProperties(this.#outlineId, {
					bbox: HighlightEditor.#rotateBbox(this.#focusOutlines.box, angle),
					path: { d: this.#focusOutlines.toSVGPath() }
				});
			}
			const [x$2, y$3, width, height] = highlightOutlines.box;
			switch (this.rotation) {
				case 0:
					this.x = x$2;
					this.y = y$3;
					this.width = width;
					this.height = height;
					break;
				case 90: {
					const [pageWidth, pageHeight] = this.parentDimensions;
					this.x = y$3;
					this.y = 1 - x$2;
					this.width = width * pageHeight / pageWidth;
					this.height = height * pageWidth / pageHeight;
					break;
				}
				case 180:
					this.x = 1 - x$2;
					this.y = 1 - y$3;
					this.width = width;
					this.height = height;
					break;
				case 270: {
					const [pageWidth, pageHeight] = this.parentDimensions;
					this.x = 1 - y$3;
					this.y = x$2;
					this.width = width * pageHeight / pageWidth;
					this.height = height * pageWidth / pageHeight;
					break;
				}
			}
			const { firstPoint } = highlightOutlines;
			this.#firstPoint = [(firstPoint[0] - x$2) / width, (firstPoint[1] - y$3) / height];
			const { lastPoint } = this.#focusOutlines;
			this.#lastPoint = [(lastPoint[0] - x$2) / width, (lastPoint[1] - y$3) / height];
		}
		static initialize(l10n, uiManager) {
			AnnotationEditor.initialize(l10n, uiManager);
			HighlightEditor._defaultColor ||= uiManager.highlightColors?.values().next().value || "#fff066";
		}
		static updateDefaultParams(type, value) {
			switch (type) {
				case AnnotationEditorParamsType.HIGHLIGHT_COLOR:
					HighlightEditor._defaultColor = value;
					break;
				case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS:
					HighlightEditor._defaultThickness = value;
					break;
			}
		}
		translateInPage(x$2, y$3) {}
		get toolbarPosition() {
			return this.#lastPoint;
		}
		get commentButtonPosition() {
			return this.#firstPoint;
		}
		updateParams(type, value) {
			switch (type) {
				case AnnotationEditorParamsType.HIGHLIGHT_COLOR:
					this.#updateColor(value);
					break;
				case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS:
					this.#updateThickness(value);
					break;
			}
		}
		static get defaultPropertiesToUpdate() {
			return [[AnnotationEditorParamsType.HIGHLIGHT_COLOR, HighlightEditor._defaultColor], [AnnotationEditorParamsType.HIGHLIGHT_THICKNESS, HighlightEditor._defaultThickness]];
		}
		get propertiesToUpdate() {
			return [
				[AnnotationEditorParamsType.HIGHLIGHT_COLOR, this.color || HighlightEditor._defaultColor],
				[AnnotationEditorParamsType.HIGHLIGHT_THICKNESS, this.#thickness || HighlightEditor._defaultThickness],
				[AnnotationEditorParamsType.HIGHLIGHT_FREE, this.#isFreeHighlight]
			];
		}
		onUpdatedColor() {
			this.parent?.drawLayer.updateProperties(this.#id, { root: {
				fill: this.color,
				"fill-opacity": this.opacity
			} });
			this.#colorPicker?.updateColor(this.color);
			super.onUpdatedColor();
		}
		#updateColor(color) {
			const setColorAndOpacity = (col, opa) => {
				this.color = col;
				this.opacity = opa;
				this.onUpdatedColor();
			};
			const savedColor = this.color;
			const savedOpacity = this.opacity;
			this.addCommands({
				cmd: setColorAndOpacity.bind(this, color, HighlightEditor._defaultOpacity),
				undo: setColorAndOpacity.bind(this, savedColor, savedOpacity),
				post: this._uiManager.updateUI.bind(this._uiManager, this),
				mustExec: true,
				type: AnnotationEditorParamsType.HIGHLIGHT_COLOR,
				overwriteIfSameType: true,
				keepUndo: true
			});
			this._reportTelemetry({
				action: "color_changed",
				color: this._uiManager.getNonHCMColorName(color)
			}, true);
		}
		#updateThickness(thickness) {
			const savedThickness = this.#thickness;
			const setThickness = (th) => {
				this.#thickness = th;
				this.#changeThickness(th);
			};
			this.addCommands({
				cmd: setThickness.bind(this, thickness),
				undo: setThickness.bind(this, savedThickness),
				post: this._uiManager.updateUI.bind(this._uiManager, this),
				mustExec: true,
				type: AnnotationEditorParamsType.INK_THICKNESS,
				overwriteIfSameType: true,
				keepUndo: true
			});
			this._reportTelemetry({
				action: "thickness_changed",
				thickness
			}, true);
		}
		get toolbarButtons() {
			if (this._uiManager.highlightColors) {
				const colorPicker = this.#colorPicker = new ColorPicker({ editor: this });
				return [["colorPicker", colorPicker]];
			}
			return super.toolbarButtons;
		}
		disableEditing() {
			super.disableEditing();
			this.div.classList.toggle("disabled", true);
		}
		enableEditing() {
			super.enableEditing();
			this.div.classList.toggle("disabled", false);
		}
		fixAndSetPosition() {
			return super.fixAndSetPosition(this.#getRotation());
		}
		getBaseTranslation() {
			return [0, 0];
		}
		getRect(tx, ty) {
			return super.getRect(tx, ty, this.#getRotation());
		}
		onceAdded(focus) {
			if (!this.annotationElementId) {
				this.parent.addUndoableEditor(this);
			}
			if (focus) {
				this.div.focus();
			}
		}
		remove() {
			this.#cleanDrawLayer();
			this._reportTelemetry({ action: "deleted" });
			super.remove();
		}
		rebuild() {
			if (!this.parent) {
				return;
			}
			super.rebuild();
			if (this.div === null) {
				return;
			}
			this.#addToDrawLayer();
			if (!this.isAttachedToDOM) {
				this.parent.add(this);
			}
		}
		setParent(parent) {
			let mustBeSelected = false;
			if (this.parent && !parent) {
				this.#cleanDrawLayer();
			} else if (parent) {
				this.#addToDrawLayer(parent);
				mustBeSelected = !this.parent && this.div?.classList.contains("selectedEditor");
			}
			super.setParent(parent);
			this.show(this._isVisible);
			if (mustBeSelected) {
				this.select();
			}
		}
		#changeThickness(thickness) {
			if (!this.#isFreeHighlight) {
				return;
			}
			this.#createFreeOutlines({ highlightOutlines: this.#highlightOutlines.getNewOutline(thickness / 2) });
			this.fixAndSetPosition();
			this.setDims();
		}
		#cleanDrawLayer() {
			if (this.#id === null || !this.parent) {
				return;
			}
			this.parent.drawLayer.remove(this.#id);
			this.#id = null;
			this.parent.drawLayer.remove(this.#outlineId);
			this.#outlineId = null;
		}
		#addToDrawLayer(parent = this.parent) {
			if (this.#id !== null) {
				return;
			}
			({id: this.#id, clipPathId: this.#clipPathId} = parent.drawLayer.draw({
				bbox: this.#highlightOutlines.box,
				root: {
					viewBox: "0 0 1 1",
					fill: this.color,
					"fill-opacity": this.opacity
				},
				rootClass: {
					highlight: true,
					free: this.#isFreeHighlight
				},
				path: { d: this.#highlightOutlines.toSVGPath() }
			}, false, true));
			this.#outlineId = parent.drawLayer.drawOutline({
				rootClass: {
					highlightOutline: true,
					free: this.#isFreeHighlight
				},
				bbox: this.#focusOutlines.box,
				path: { d: this.#focusOutlines.toSVGPath() }
			}, this.#isFreeHighlight);
			if (this.#highlightDiv) {
				this.#highlightDiv.style.clipPath = this.#clipPathId;
			}
		}
		static #rotateBbox([x$2, y$3, width, height], angle) {
			switch (angle) {
				case 90: return [
					1 - y$3 - height,
					x$2,
					height,
					width
				];
				case 180: return [
					1 - x$2 - width,
					1 - y$3 - height,
					width,
					height
				];
				case 270: return [
					y$3,
					1 - x$2 - width,
					height,
					width
				];
			}
			return [
				x$2,
				y$3,
				width,
				height
			];
		}
		rotate(angle) {
			const { drawLayer } = this.parent;
			let box;
			if (this.#isFreeHighlight) {
				angle = (angle - this.rotation + 360) % 360;
				box = HighlightEditor.#rotateBbox(this.#highlightOutlines.box, angle);
			} else {
				box = HighlightEditor.#rotateBbox([
					this.x,
					this.y,
					this.width,
					this.height
				], angle);
			}
			drawLayer.updateProperties(this.#id, {
				bbox: box,
				root: { "data-main-rotation": angle }
			});
			drawLayer.updateProperties(this.#outlineId, {
				bbox: HighlightEditor.#rotateBbox(this.#focusOutlines.box, angle),
				root: { "data-main-rotation": angle }
			});
		}
		render() {
			if (this.div) {
				return this.div;
			}
			const div = super.render();
			if (this.#text) {
				div.setAttribute("aria-label", this.#text);
				div.setAttribute("role", "mark");
			}
			if (this.#isFreeHighlight) {
				div.classList.add("free");
			} else {
				this.div.addEventListener("keydown", this.#keydown.bind(this), { signal: this._uiManager._signal });
			}
			const highlightDiv = this.#highlightDiv = document.createElement("div");
			div.append(highlightDiv);
			highlightDiv.setAttribute("aria-hidden", "true");
			highlightDiv.className = "internal";
			highlightDiv.style.clipPath = this.#clipPathId;
			this.setDims();
			bindEvents(this, this.#highlightDiv, ["pointerover", "pointerleave"]);
			this.enableEditing();
			return div;
		}
		pointerover() {
			if (!this.isSelected) {
				this.parent?.drawLayer.updateProperties(this.#outlineId, { rootClass: { hovered: true } });
			}
		}
		pointerleave() {
			if (!this.isSelected) {
				this.parent?.drawLayer.updateProperties(this.#outlineId, { rootClass: { hovered: false } });
			}
		}
		#keydown(event) {
			HighlightEditor._keyboardManager.exec(this, event);
		}
		_moveCaret(direction) {
			this.parent.unselect(this);
			switch (direction) {
				case 0:
				case 2:
					this.#setCaret(true);
					break;
				case 1:
				case 3:
					this.#setCaret(false);
					break;
			}
		}
		#setCaret(start) {
			if (!this.#anchorNode) {
				return;
			}
			const selection = window.getSelection();
			if (start) {
				selection.setPosition(this.#anchorNode, this.#anchorOffset);
			} else {
				selection.setPosition(this.#focusNode, this.#focusOffset);
			}
		}
		select() {
			super.select();
			if (!this.#outlineId) {
				return;
			}
			this.parent?.drawLayer.updateProperties(this.#outlineId, { rootClass: {
				hovered: false,
				selected: true
			} });
		}
		unselect() {
			super.unselect();
			if (!this.#outlineId) {
				return;
			}
			this.parent?.drawLayer.updateProperties(this.#outlineId, { rootClass: { selected: false } });
			if (!this.#isFreeHighlight) {
				this.#setCaret(false);
			}
		}
		get _mustFixPosition() {
			return !this.#isFreeHighlight;
		}
		show(visible = this._isVisible) {
			super.show(visible);
			if (this.parent) {
				this.parent.drawLayer.updateProperties(this.#id, { rootClass: { hidden: !visible } });
				this.parent.drawLayer.updateProperties(this.#outlineId, { rootClass: { hidden: !visible } });
			}
		}
		#getRotation() {
			return this.#isFreeHighlight ? this.rotation : 0;
		}
		#serializeBoxes() {
			if (this.#isFreeHighlight) {
				return null;
			}
			const [pageWidth, pageHeight] = this.pageDimensions;
			const [pageX, pageY] = this.pageTranslation;
			const boxes = this.#boxes;
			const quadPoints = new Float32Array(boxes.length * 8);
			let i$7 = 0;
			for (const { x: x$2, y: y$3, width, height } of boxes) {
				const sx = x$2 * pageWidth + pageX;
				const sy = (1 - y$3) * pageHeight + pageY;
				quadPoints[i$7] = quadPoints[i$7 + 4] = sx;
				quadPoints[i$7 + 1] = quadPoints[i$7 + 3] = sy;
				quadPoints[i$7 + 2] = quadPoints[i$7 + 6] = sx + width * pageWidth;
				quadPoints[i$7 + 5] = quadPoints[i$7 + 7] = sy - height * pageHeight;
				i$7 += 8;
			}
			return quadPoints;
		}
		#serializeOutlines(rect) {
			return this.#highlightOutlines.serialize(rect, this.#getRotation());
		}
		static startHighlighting(parent, isLTR, { target: textLayer, x: x$2, y: y$3 }) {
			const { x: layerX, y: layerY, width: parentWidth, height: parentHeight } = textLayer.getBoundingClientRect();
			const ac = new AbortController();
			const signal = parent.combinedSignal(ac);
			const pointerUpCallback = (e$10) => {
				ac.abort();
				this.#endHighlight(parent, e$10);
			};
			window.addEventListener("blur", pointerUpCallback, { signal });
			window.addEventListener("pointerup", pointerUpCallback, { signal });
			window.addEventListener("pointerdown", stopEvent, {
				capture: true,
				passive: false,
				signal
			});
			window.addEventListener("contextmenu", noContextMenu, { signal });
			textLayer.addEventListener("pointermove", this.#highlightMove.bind(this, parent), { signal });
			this._freeHighlight = new FreeHighlightOutliner({
				x: x$2,
				y: y$3
			}, [
				layerX,
				layerY,
				parentWidth,
				parentHeight
			], parent.scale, this._defaultThickness / 2, isLTR, .001);
			({id: this._freeHighlightId, clipPathId: this._freeHighlightClipId} = parent.drawLayer.draw({
				bbox: [
					0,
					0,
					1,
					1
				],
				root: {
					viewBox: "0 0 1 1",
					fill: this._defaultColor,
					"fill-opacity": this._defaultOpacity
				},
				rootClass: {
					highlight: true,
					free: true
				},
				path: { d: this._freeHighlight.toSVGPath() }
			}, true, true));
		}
		static #highlightMove(parent, event) {
			if (this._freeHighlight.add(event)) {
				parent.drawLayer.updateProperties(this._freeHighlightId, { path: { d: this._freeHighlight.toSVGPath() } });
			}
		}
		static #endHighlight(parent, event) {
			if (!this._freeHighlight.isEmpty()) {
				parent.createAndAddNewEditor(event, false, {
					highlightId: this._freeHighlightId,
					highlightOutlines: this._freeHighlight.getOutlines(),
					clipPathId: this._freeHighlightClipId,
					methodOfCreation: "main_toolbar"
				});
			} else {
				parent.drawLayer.remove(this._freeHighlightId);
			}
			this._freeHighlightId = -1;
			this._freeHighlight = null;
			this._freeHighlightClipId = "";
		}
		static async deserialize(data, parent, uiManager) {
			let initialData = null;
			if (data instanceof HighlightAnnotationElement) {
				const { data: { quadPoints: quadPoints$1, rect, rotation, id, color: color$1, opacity: opacity$1, popupRef, richText, contentsObj, creationDate, modificationDate }, parent: { page: { pageNumber } } } = data;
				initialData = data = {
					annotationType: AnnotationEditorType.HIGHLIGHT,
					color: Array.from(color$1),
					opacity: opacity$1,
					quadPoints: quadPoints$1,
					boxes: null,
					pageIndex: pageNumber - 1,
					rect: rect.slice(0),
					rotation,
					annotationElementId: id,
					id,
					deleted: false,
					popupRef,
					richText,
					comment: contentsObj?.str || null,
					creationDate,
					modificationDate
				};
			} else if (data instanceof InkAnnotationElement) {
				const { data: { inkLists: inkLists$1, rect, rotation, id, color: color$1, borderStyle: { rawWidth: thickness }, popupRef, richText, contentsObj, creationDate, modificationDate }, parent: { page: { pageNumber } } } = data;
				initialData = data = {
					annotationType: AnnotationEditorType.HIGHLIGHT,
					color: Array.from(color$1),
					thickness,
					inkLists: inkLists$1,
					boxes: null,
					pageIndex: pageNumber - 1,
					rect: rect.slice(0),
					rotation,
					annotationElementId: id,
					id,
					deleted: false,
					popupRef,
					richText,
					comment: contentsObj?.str || null,
					creationDate,
					modificationDate
				};
			}
			const { color, quadPoints, inkLists, opacity } = data;
			const editor = await super.deserialize(data, parent, uiManager);
			editor.color = Util.makeHexColor(...color);
			editor.opacity = opacity || 1;
			if (inkLists) {
				editor.#thickness = data.thickness;
			}
			editor._initialData = initialData;
			if (data.comment) {
				editor.setCommentData(data);
			}
			const [pageWidth, pageHeight] = editor.pageDimensions;
			const [pageX, pageY] = editor.pageTranslation;
			if (quadPoints) {
				const boxes = editor.#boxes = [];
				for (let i$7 = 0; i$7 < quadPoints.length; i$7 += 8) {
					boxes.push({
						x: (quadPoints[i$7] - pageX) / pageWidth,
						y: 1 - (quadPoints[i$7 + 1] - pageY) / pageHeight,
						width: (quadPoints[i$7 + 2] - quadPoints[i$7]) / pageWidth,
						height: (quadPoints[i$7 + 1] - quadPoints[i$7 + 5]) / pageHeight
					});
				}
				editor.#createOutlines();
				editor.#addToDrawLayer();
				editor.rotate(editor.rotation);
			} else if (inkLists) {
				editor.#isFreeHighlight = true;
				const points = inkLists[0];
				const point = {
					x: points[0] - pageX,
					y: pageHeight - (points[1] - pageY)
				};
				const outliner = new FreeHighlightOutliner(point, [
					0,
					0,
					pageWidth,
					pageHeight
				], 1, editor.#thickness / 2, true, .001);
				for (let i$7 = 0, ii = points.length; i$7 < ii; i$7 += 2) {
					point.x = points[i$7] - pageX;
					point.y = pageHeight - (points[i$7 + 1] - pageY);
					outliner.add(point);
				}
				const { id, clipPathId } = parent.drawLayer.draw({
					bbox: [
						0,
						0,
						1,
						1
					],
					root: {
						viewBox: "0 0 1 1",
						fill: editor.color,
						"fill-opacity": editor._defaultOpacity
					},
					rootClass: {
						highlight: true,
						free: true
					},
					path: { d: outliner.toSVGPath() }
				}, true, true);
				editor.#createFreeOutlines({
					highlightOutlines: outliner.getOutlines(),
					highlightId: id,
					clipPathId
				});
				editor.#addToDrawLayer();
				editor.rotate(editor.parentRotation);
			}
			return editor;
		}
		serialize(isForCopying = false) {
			if (this.isEmpty() || isForCopying) {
				return null;
			}
			if (this.deleted) {
				return this.serializeDeleted();
			}
			const color = AnnotationEditor._colorManager.convert(this._uiManager.getNonHCMColor(this.color));
			const serialized = super.serialize(isForCopying);
			Object.assign(serialized, {
				color,
				opacity: this.opacity,
				thickness: this.#thickness,
				quadPoints: this.#serializeBoxes(),
				outlines: this.#serializeOutlines(serialized.rect)
			});
			this.addComment(serialized);
			if (this.annotationElementId && !this.#hasElementChanged(serialized)) {
				return null;
			}
			serialized.id = this.annotationElementId;
			return serialized;
		}
		#hasElementChanged(serialized) {
			const { color } = this._initialData;
			return this.hasEditedComment || serialized.color.some((c$7, i$7) => c$7 !== color[i$7]);
		}
		renderAnnotationElement(annotation) {
			if (this.deleted) {
				annotation.hide();
				return null;
			}
			annotation.updateEdited({
				rect: this.getPDFRect(),
				popup: this.comment
			});
			return null;
		}
		static canCreateNewEmptyEditor() {
			return false;
		}
	};
	;
	DrawingOptions = class {
		#svgProperties = Object.create(null);
		updateProperty(name, value) {
			this[name] = value;
			this.updateSVGProperty(name, value);
		}
		updateProperties(properties$1) {
			if (!properties$1) {
				return;
			}
			for (const [name, value] of Object.entries(properties$1)) {
				if (!name.startsWith("_")) {
					this.updateProperty(name, value);
				}
			}
		}
		updateSVGProperty(name, value) {
			this.#svgProperties[name] = value;
		}
		toSVGProperties() {
			const root = this.#svgProperties;
			this.#svgProperties = Object.create(null);
			return { root };
		}
		reset() {
			this.#svgProperties = Object.create(null);
		}
		updateAll(options = this) {
			this.updateProperties(options);
		}
		clone() {
			unreachable("Not implemented");
		}
	};
	DrawingEditor = class DrawingEditor extends AnnotationEditor {
		#drawOutlines = null;
		#mustBeCommitted;
		_colorPicker = null;
		_drawId = null;
		static _currentDrawId = -1;
		static _currentParent = null;
		static #currentDraw = null;
		static #currentDrawingAC = null;
		static #currentDrawingOptions = null;
		static _INNER_MARGIN = 3;
		constructor(params) {
			super(params);
			this.#mustBeCommitted = params.mustBeCommitted || false;
			this._addOutlines(params);
		}
		onUpdatedColor() {
			this._colorPicker?.update(this.color);
			super.onUpdatedColor();
		}
		_addOutlines(params) {
			if (params.drawOutlines) {
				this.#createDrawOutlines(params);
				this.#addToDrawLayer();
			}
		}
		#createDrawOutlines({ drawOutlines, drawId, drawingOptions }) {
			this.#drawOutlines = drawOutlines;
			this._drawingOptions ||= drawingOptions;
			if (!this.annotationElementId) {
				this._uiManager.a11yAlert(`pdfjs-editor-${this.editorType}-added-alert`);
			}
			if (drawId >= 0) {
				this._drawId = drawId;
				this.parent.drawLayer.finalizeDraw(drawId, drawOutlines.defaultProperties);
			} else {
				this._drawId = this.#createDrawing(drawOutlines, this.parent);
			}
			this.#updateBbox(drawOutlines.box);
		}
		#createDrawing(drawOutlines, parent) {
			const { id } = parent.drawLayer.draw(DrawingEditor._mergeSVGProperties(this._drawingOptions.toSVGProperties(), drawOutlines.defaultSVGProperties), false, false);
			return id;
		}
		static _mergeSVGProperties(p1, p2) {
			const p1Keys = new Set(Object.keys(p1));
			for (const [key, value] of Object.entries(p2)) {
				if (p1Keys.has(key)) {
					Object.assign(p1[key], value);
				} else {
					p1[key] = value;
				}
			}
			return p1;
		}
		static getDefaultDrawingOptions(_options) {
			unreachable("Not implemented");
		}
		static get typesMap() {
			unreachable("Not implemented");
		}
		static get isDrawer() {
			return true;
		}
		static get supportMultipleDrawings() {
			return false;
		}
		static updateDefaultParams(type, value) {
			const propertyName = this.typesMap.get(type);
			if (propertyName) {
				this._defaultDrawingOptions.updateProperty(propertyName, value);
			}
			if (this._currentParent) {
				DrawingEditor.#currentDraw.updateProperty(propertyName, value);
				this._currentParent.drawLayer.updateProperties(this._currentDrawId, this._defaultDrawingOptions.toSVGProperties());
			}
		}
		updateParams(type, value) {
			const propertyName = this.constructor.typesMap.get(type);
			if (propertyName) {
				this._updateProperty(type, propertyName, value);
			}
		}
		static get defaultPropertiesToUpdate() {
			const properties$1 = [];
			const options = this._defaultDrawingOptions;
			for (const [type, name] of this.typesMap) {
				properties$1.push([type, options[name]]);
			}
			return properties$1;
		}
		get propertiesToUpdate() {
			const properties$1 = [];
			const { _drawingOptions } = this;
			for (const [type, name] of this.constructor.typesMap) {
				properties$1.push([type, _drawingOptions[name]]);
			}
			return properties$1;
		}
		_updateProperty(type, name, value) {
			const options = this._drawingOptions;
			const savedValue = options[name];
			const setter = (val$1) => {
				options.updateProperty(name, val$1);
				const bbox = this.#drawOutlines.updateProperty(name, val$1);
				if (bbox) {
					this.#updateBbox(bbox);
				}
				this.parent?.drawLayer.updateProperties(this._drawId, options.toSVGProperties());
				if (type === this.colorType) {
					this.onUpdatedColor();
				}
			};
			this.addCommands({
				cmd: setter.bind(this, value),
				undo: setter.bind(this, savedValue),
				post: this._uiManager.updateUI.bind(this._uiManager, this),
				mustExec: true,
				type,
				overwriteIfSameType: true,
				keepUndo: true
			});
		}
		_onResizing() {
			this.parent?.drawLayer.updateProperties(this._drawId, DrawingEditor._mergeSVGProperties(this.#drawOutlines.getPathResizingSVGProperties(this.#convertToDrawSpace()), { bbox: this.#rotateBox() }));
		}
		_onResized() {
			this.parent?.drawLayer.updateProperties(this._drawId, DrawingEditor._mergeSVGProperties(this.#drawOutlines.getPathResizedSVGProperties(this.#convertToDrawSpace()), { bbox: this.#rotateBox() }));
		}
		_onTranslating(_x, _y) {
			this.parent?.drawLayer.updateProperties(this._drawId, { bbox: this.#rotateBox() });
		}
		_onTranslated() {
			this.parent?.drawLayer.updateProperties(this._drawId, DrawingEditor._mergeSVGProperties(this.#drawOutlines.getPathTranslatedSVGProperties(this.#convertToDrawSpace(), this.parentDimensions), { bbox: this.#rotateBox() }));
		}
		_onStartDragging() {
			this.parent?.drawLayer.updateProperties(this._drawId, { rootClass: { moving: true } });
		}
		_onStopDragging() {
			this.parent?.drawLayer.updateProperties(this._drawId, { rootClass: { moving: false } });
		}
		commit() {
			super.commit();
			this.disableEditMode();
			this.disableEditing();
		}
		disableEditing() {
			super.disableEditing();
			this.div.classList.toggle("disabled", true);
		}
		enableEditing() {
			super.enableEditing();
			this.div.classList.toggle("disabled", false);
		}
		getBaseTranslation() {
			return [0, 0];
		}
		get isResizable() {
			return true;
		}
		onceAdded(focus) {
			if (!this.annotationElementId) {
				this.parent.addUndoableEditor(this);
			}
			this._isDraggable = true;
			if (this.#mustBeCommitted) {
				this.#mustBeCommitted = false;
				this.commit();
				this.parent.setSelected(this);
				if (focus && this.isOnScreen) {
					this.div.focus();
				}
			}
		}
		remove() {
			this.#cleanDrawLayer();
			super.remove();
		}
		rebuild() {
			if (!this.parent) {
				return;
			}
			super.rebuild();
			if (this.div === null) {
				return;
			}
			this.#addToDrawLayer();
			this.#updateBbox(this.#drawOutlines.box);
			if (!this.isAttachedToDOM) {
				this.parent.add(this);
			}
		}
		setParent(parent) {
			let mustBeSelected = false;
			if (this.parent && !parent) {
				this._uiManager.removeShouldRescale(this);
				this.#cleanDrawLayer();
			} else if (parent) {
				this._uiManager.addShouldRescale(this);
				this.#addToDrawLayer(parent);
				mustBeSelected = !this.parent && this.div?.classList.contains("selectedEditor");
			}
			super.setParent(parent);
			if (mustBeSelected) {
				this.select();
			}
		}
		#cleanDrawLayer() {
			if (this._drawId === null || !this.parent) {
				return;
			}
			this.parent.drawLayer.remove(this._drawId);
			this._drawId = null;
			this._drawingOptions.reset();
		}
		#addToDrawLayer(parent = this.parent) {
			if (this._drawId !== null && this.parent === parent) {
				return;
			}
			if (this._drawId !== null) {
				this.parent.drawLayer.updateParent(this._drawId, parent.drawLayer);
				return;
			}
			this._drawingOptions.updateAll();
			this._drawId = this.#createDrawing(this.#drawOutlines, parent);
		}
		#convertToParentSpace([x$2, y$3, width, height]) {
			const { parentDimensions: [pW, pH], rotation } = this;
			switch (rotation) {
				case 90: return [
					y$3,
					1 - x$2,
					width * (pH / pW),
					height * (pW / pH)
				];
				case 180: return [
					1 - x$2,
					1 - y$3,
					width,
					height
				];
				case 270: return [
					1 - y$3,
					x$2,
					width * (pH / pW),
					height * (pW / pH)
				];
				default: return [
					x$2,
					y$3,
					width,
					height
				];
			}
		}
		#convertToDrawSpace() {
			const { x: x$2, y: y$3, width, height, parentDimensions: [pW, pH], rotation } = this;
			switch (rotation) {
				case 90: return [
					1 - y$3,
					x$2,
					width * (pW / pH),
					height * (pH / pW)
				];
				case 180: return [
					1 - x$2,
					1 - y$3,
					width,
					height
				];
				case 270: return [
					y$3,
					1 - x$2,
					width * (pW / pH),
					height * (pH / pW)
				];
				default: return [
					x$2,
					y$3,
					width,
					height
				];
			}
		}
		#updateBbox(bbox) {
			[this.x, this.y, this.width, this.height] = this.#convertToParentSpace(bbox);
			if (this.div) {
				this.fixAndSetPosition();
				this.setDims();
			}
			this._onResized();
		}
		#rotateBox() {
			const { x: x$2, y: y$3, width, height, rotation, parentRotation, parentDimensions: [pW, pH] } = this;
			switch ((rotation * 4 + parentRotation) / 90) {
				case 1: return [
					1 - y$3 - height,
					x$2,
					height,
					width
				];
				case 2: return [
					1 - x$2 - width,
					1 - y$3 - height,
					width,
					height
				];
				case 3: return [
					y$3,
					1 - x$2 - width,
					height,
					width
				];
				case 4: return [
					x$2,
					y$3 - width * (pW / pH),
					height * (pH / pW),
					width * (pW / pH)
				];
				case 5: return [
					1 - y$3,
					x$2,
					width * (pW / pH),
					height * (pH / pW)
				];
				case 6: return [
					1 - x$2 - height * (pH / pW),
					1 - y$3,
					height * (pH / pW),
					width * (pW / pH)
				];
				case 7: return [
					y$3 - width * (pW / pH),
					1 - x$2 - height * (pH / pW),
					width * (pW / pH),
					height * (pH / pW)
				];
				case 8: return [
					x$2 - width,
					y$3 - height,
					width,
					height
				];
				case 9: return [
					1 - y$3,
					x$2 - width,
					height,
					width
				];
				case 10: return [
					1 - x$2,
					1 - y$3,
					width,
					height
				];
				case 11: return [
					y$3 - height,
					1 - x$2,
					height,
					width
				];
				case 12: return [
					x$2 - height * (pH / pW),
					y$3,
					height * (pH / pW),
					width * (pW / pH)
				];
				case 13: return [
					1 - y$3 - width * (pW / pH),
					x$2 - height * (pH / pW),
					width * (pW / pH),
					height * (pH / pW)
				];
				case 14: return [
					1 - x$2,
					1 - y$3 - width * (pW / pH),
					height * (pH / pW),
					width * (pW / pH)
				];
				case 15: return [
					y$3,
					1 - x$2,
					width * (pW / pH),
					height * (pH / pW)
				];
				default: return [
					x$2,
					y$3,
					width,
					height
				];
			}
		}
		rotate() {
			if (!this.parent) {
				return;
			}
			this.parent.drawLayer.updateProperties(this._drawId, DrawingEditor._mergeSVGProperties({ bbox: this.#rotateBox() }, this.#drawOutlines.updateRotation((this.parentRotation - this.rotation + 360) % 360)));
		}
		onScaleChanging() {
			if (!this.parent) {
				return;
			}
			this.#updateBbox(this.#drawOutlines.updateParentDimensions(this.parentDimensions, this.parent.scale));
		}
		static onScaleChangingWhenDrawing() {}
		render() {
			if (this.div) {
				return this.div;
			}
			let baseX, baseY;
			if (this._isCopy) {
				baseX = this.x;
				baseY = this.y;
			}
			const div = super.render();
			div.classList.add("draw");
			const drawDiv = document.createElement("div");
			div.append(drawDiv);
			drawDiv.setAttribute("aria-hidden", "true");
			drawDiv.className = "internal";
			this.setDims();
			this._uiManager.addShouldRescale(this);
			this.disableEditing();
			if (this._isCopy) {
				this._moveAfterPaste(baseX, baseY);
			}
			return div;
		}
		static createDrawerInstance(_x, _y, _parentWidth, _parentHeight, _rotation) {
			unreachable("Not implemented");
		}
		static startDrawing(parent, uiManager, _isLTR, event) {
			const { target, offsetX: x$2, offsetY: y$3, pointerId, pointerType } = event;
			if (CurrentPointers.isInitializedAndDifferentPointerType(pointerType)) {
				return;
			}
			const { viewport: { rotation } } = parent;
			const { width: parentWidth, height: parentHeight } = target.getBoundingClientRect();
			const ac = DrawingEditor.#currentDrawingAC = new AbortController();
			const signal = parent.combinedSignal(ac);
			CurrentPointers.setPointer(pointerType, pointerId);
			window.addEventListener("pointerup", (e$10) => {
				if (CurrentPointers.isSamePointerIdOrRemove(e$10.pointerId)) {
					this._endDraw(e$10);
				}
			}, { signal });
			window.addEventListener("pointercancel", (e$10) => {
				if (CurrentPointers.isSamePointerIdOrRemove(e$10.pointerId)) {
					this._currentParent.endDrawingSession();
				}
			}, { signal });
			window.addEventListener("pointerdown", (e$10) => {
				if (!CurrentPointers.isSamePointerType(e$10.pointerType)) {
					return;
				}
				CurrentPointers.initializeAndAddPointerId(e$10.pointerId);
				if (DrawingEditor.#currentDraw.isCancellable()) {
					DrawingEditor.#currentDraw.removeLastElement();
					if (DrawingEditor.#currentDraw.isEmpty()) {
						this._currentParent.endDrawingSession(true);
					} else {
						this._endDraw(null);
					}
				}
			}, {
				capture: true,
				passive: false,
				signal
			});
			window.addEventListener("contextmenu", noContextMenu, { signal });
			target.addEventListener("pointermove", this._drawMove.bind(this), { signal });
			target.addEventListener("touchmove", (e$10) => {
				if (CurrentPointers.isSameTimeStamp(e$10.timeStamp)) {
					stopEvent(e$10);
				}
			}, { signal });
			parent.toggleDrawing();
			uiManager._editorUndoBar?.hide();
			if (DrawingEditor.#currentDraw) {
				parent.drawLayer.updateProperties(this._currentDrawId, DrawingEditor.#currentDraw.startNew(x$2, y$3, parentWidth, parentHeight, rotation));
				return;
			}
			uiManager.updateUIForDefaultProperties(this);
			DrawingEditor.#currentDraw = this.createDrawerInstance(x$2, y$3, parentWidth, parentHeight, rotation);
			DrawingEditor.#currentDrawingOptions = this.getDefaultDrawingOptions();
			this._currentParent = parent;
			({id: this._currentDrawId} = parent.drawLayer.draw(this._mergeSVGProperties(DrawingEditor.#currentDrawingOptions.toSVGProperties(), DrawingEditor.#currentDraw.defaultSVGProperties), true, false));
		}
		static _drawMove(event) {
			CurrentPointers.isSameTimeStamp(event.timeStamp);
			if (!DrawingEditor.#currentDraw) {
				return;
			}
			const { offsetX, offsetY, pointerId } = event;
			if (!CurrentPointers.isSamePointerId(pointerId)) {
				return;
			}
			if (CurrentPointers.isUsingMultiplePointers()) {
				this._endDraw(event);
				return;
			}
			this._currentParent.drawLayer.updateProperties(this._currentDrawId, DrawingEditor.#currentDraw.add(offsetX, offsetY));
			CurrentPointers.setTimeStamp(event.timeStamp);
			stopEvent(event);
		}
		static _cleanup(all) {
			if (all) {
				this._currentDrawId = -1;
				this._currentParent = null;
				DrawingEditor.#currentDraw = null;
				DrawingEditor.#currentDrawingOptions = null;
				CurrentPointers.clearPointerType();
				CurrentPointers.clearTimeStamp();
			}
			if (DrawingEditor.#currentDrawingAC) {
				DrawingEditor.#currentDrawingAC.abort();
				DrawingEditor.#currentDrawingAC = null;
				CurrentPointers.clearPointerIds();
			}
		}
		static _endDraw(event) {
			const parent = this._currentParent;
			if (!parent) {
				return;
			}
			parent.toggleDrawing(true);
			this._cleanup(false);
			if (event?.target === parent.div) {
				parent.drawLayer.updateProperties(this._currentDrawId, DrawingEditor.#currentDraw.end(event.offsetX, event.offsetY));
			}
			if (this.supportMultipleDrawings) {
				const draw = DrawingEditor.#currentDraw;
				const drawId = this._currentDrawId;
				const lastElement = draw.getLastElement();
				parent.addCommands({
					cmd: () => {
						parent.drawLayer.updateProperties(drawId, draw.setLastElement(lastElement));
					},
					undo: () => {
						parent.drawLayer.updateProperties(drawId, draw.removeLastElement());
					},
					mustExec: false,
					type: AnnotationEditorParamsType.DRAW_STEP
				});
				return;
			}
			this.endDrawing(false);
		}
		static endDrawing(isAborted) {
			const parent = this._currentParent;
			if (!parent) {
				return null;
			}
			parent.toggleDrawing(true);
			parent.cleanUndoStack(AnnotationEditorParamsType.DRAW_STEP);
			if (!DrawingEditor.#currentDraw.isEmpty()) {
				const { pageDimensions: [pageWidth, pageHeight], scale } = parent;
				const editor = parent.createAndAddNewEditor({
					offsetX: 0,
					offsetY: 0
				}, false, {
					drawId: this._currentDrawId,
					drawOutlines: DrawingEditor.#currentDraw.getOutlines(pageWidth * scale, pageHeight * scale, scale, this._INNER_MARGIN),
					drawingOptions: DrawingEditor.#currentDrawingOptions,
					mustBeCommitted: !isAborted
				});
				this._cleanup(true);
				return editor;
			}
			parent.drawLayer.remove(this._currentDrawId);
			this._cleanup(true);
			return null;
		}
		createDrawingOptions(_data) {}
		static deserializeDraw(_pageX, _pageY, _pageWidth, _pageHeight, _innerWidth, _data) {
			unreachable("Not implemented");
		}
		static async deserialize(data, parent, uiManager) {
			const { rawDims: { pageWidth, pageHeight, pageX, pageY } } = parent.viewport;
			const drawOutlines = this.deserializeDraw(pageX, pageY, pageWidth, pageHeight, this._INNER_MARGIN, data);
			const editor = await super.deserialize(data, parent, uiManager);
			editor.createDrawingOptions(data);
			editor.#createDrawOutlines({ drawOutlines });
			editor.#addToDrawLayer();
			editor.onScaleChanging();
			editor.rotate();
			return editor;
		}
		serializeDraw(isForCopying) {
			const [pageX, pageY] = this.pageTranslation;
			const [pageWidth, pageHeight] = this.pageDimensions;
			return this.#drawOutlines.serialize([
				pageX,
				pageY,
				pageWidth,
				pageHeight
			], isForCopying);
		}
		renderAnnotationElement(annotation) {
			annotation.updateEdited({ rect: this.getPDFRect() });
			return null;
		}
		static canCreateNewEmptyEditor() {
			return false;
		}
	};
	;
	InkDrawOutliner = class {
		#last = new Float64Array(6);
		#line;
		#lines;
		#rotation;
		#thickness;
		#points;
		#lastSVGPath = "";
		#lastIndex = 0;
		#outlines = new InkDrawOutline();
		#parentWidth;
		#parentHeight;
		constructor(x$2, y$3, parentWidth, parentHeight, rotation, thickness) {
			this.#parentWidth = parentWidth;
			this.#parentHeight = parentHeight;
			this.#rotation = rotation;
			this.#thickness = thickness;
			[x$2, y$3] = this.#normalizePoint(x$2, y$3);
			const line = this.#line = [
				NaN,
				NaN,
				NaN,
				NaN,
				x$2,
				y$3
			];
			this.#points = [x$2, y$3];
			this.#lines = [{
				line,
				points: this.#points
			}];
			this.#last.set(line, 0);
		}
		updateProperty(name, value) {
			if (name === "stroke-width") {
				this.#thickness = value;
			}
		}
		#normalizePoint(x$2, y$3) {
			return Outline._normalizePoint(x$2, y$3, this.#parentWidth, this.#parentHeight, this.#rotation);
		}
		isEmpty() {
			return !this.#lines || this.#lines.length === 0;
		}
		isCancellable() {
			return this.#points.length <= 10;
		}
		add(x$2, y$3) {
			[x$2, y$3] = this.#normalizePoint(x$2, y$3);
			const [x1, y1, x2, y2] = this.#last.subarray(2, 6);
			const diffX = x$2 - x2;
			const diffY = y$3 - y2;
			const d$5 = Math.hypot(this.#parentWidth * diffX, this.#parentHeight * diffY);
			if (d$5 <= 2) {
				return null;
			}
			this.#points.push(x$2, y$3);
			if (isNaN(x1)) {
				this.#last.set([
					x2,
					y2,
					x$2,
					y$3
				], 2);
				this.#line.push(NaN, NaN, NaN, NaN, x$2, y$3);
				return { path: { d: this.toSVGPath() } };
			}
			if (isNaN(this.#last[0])) {
				this.#line.splice(6, 6);
			}
			this.#last.set([
				x1,
				y1,
				x2,
				y2,
				x$2,
				y$3
			], 0);
			this.#line.push(...Outline.createBezierPoints(x1, y1, x2, y2, x$2, y$3));
			return { path: { d: this.toSVGPath() } };
		}
		end(x$2, y$3) {
			const change = this.add(x$2, y$3);
			if (change) {
				return change;
			}
			if (this.#points.length === 2) {
				return { path: { d: this.toSVGPath() } };
			}
			return null;
		}
		startNew(x$2, y$3, parentWidth, parentHeight, rotation) {
			this.#parentWidth = parentWidth;
			this.#parentHeight = parentHeight;
			this.#rotation = rotation;
			[x$2, y$3] = this.#normalizePoint(x$2, y$3);
			const line = this.#line = [
				NaN,
				NaN,
				NaN,
				NaN,
				x$2,
				y$3
			];
			this.#points = [x$2, y$3];
			const last = this.#lines.at(-1);
			if (last) {
				last.line = new Float32Array(last.line);
				last.points = new Float32Array(last.points);
			}
			this.#lines.push({
				line,
				points: this.#points
			});
			this.#last.set(line, 0);
			this.#lastIndex = 0;
			this.toSVGPath();
			return null;
		}
		getLastElement() {
			return this.#lines.at(-1);
		}
		setLastElement(element) {
			if (!this.#lines) {
				return this.#outlines.setLastElement(element);
			}
			this.#lines.push(element);
			this.#line = element.line;
			this.#points = element.points;
			this.#lastIndex = 0;
			return { path: { d: this.toSVGPath() } };
		}
		removeLastElement() {
			if (!this.#lines) {
				return this.#outlines.removeLastElement();
			}
			this.#lines.pop();
			this.#lastSVGPath = "";
			for (let i$7 = 0, ii = this.#lines.length; i$7 < ii; i$7++) {
				const { line, points } = this.#lines[i$7];
				this.#line = line;
				this.#points = points;
				this.#lastIndex = 0;
				this.toSVGPath();
			}
			return { path: { d: this.#lastSVGPath } };
		}
		toSVGPath() {
			const firstX = Outline.svgRound(this.#line[4]);
			const firstY = Outline.svgRound(this.#line[5]);
			if (this.#points.length === 2) {
				this.#lastSVGPath = `${this.#lastSVGPath} M ${firstX} ${firstY} Z`;
				return this.#lastSVGPath;
			}
			if (this.#points.length <= 6) {
				const i$7 = this.#lastSVGPath.lastIndexOf("M");
				this.#lastSVGPath = `${this.#lastSVGPath.slice(0, i$7)} M ${firstX} ${firstY}`;
				this.#lastIndex = 6;
			}
			if (this.#points.length === 4) {
				const secondX = Outline.svgRound(this.#line[10]);
				const secondY = Outline.svgRound(this.#line[11]);
				this.#lastSVGPath = `${this.#lastSVGPath} L ${secondX} ${secondY}`;
				this.#lastIndex = 12;
				return this.#lastSVGPath;
			}
			const buffer = [];
			if (this.#lastIndex === 0) {
				buffer.push(`M ${firstX} ${firstY}`);
				this.#lastIndex = 6;
			}
			for (let i$7 = this.#lastIndex, ii = this.#line.length; i$7 < ii; i$7 += 6) {
				const [c1x, c1y, c2x, c2y, x$2, y$3] = this.#line.slice(i$7, i$7 + 6).map(Outline.svgRound);
				buffer.push(`C${c1x} ${c1y} ${c2x} ${c2y} ${x$2} ${y$3}`);
			}
			this.#lastSVGPath += buffer.join(" ");
			this.#lastIndex = this.#line.length;
			return this.#lastSVGPath;
		}
		getOutlines(parentWidth, parentHeight, scale, innerMargin) {
			const last = this.#lines.at(-1);
			last.line = new Float32Array(last.line);
			last.points = new Float32Array(last.points);
			this.#outlines.build(this.#lines, parentWidth, parentHeight, scale, this.#rotation, this.#thickness, innerMargin);
			this.#last = null;
			this.#line = null;
			this.#lines = null;
			this.#lastSVGPath = null;
			return this.#outlines;
		}
		get defaultSVGProperties() {
			return {
				root: { viewBox: "0 0 10000 10000" },
				rootClass: { draw: true },
				bbox: [
					0,
					0,
					1,
					1
				]
			};
		}
	};
	InkDrawOutline = class extends Outline {
		#bbox;
		#currentRotation = 0;
		#innerMargin;
		#lines;
		#parentWidth;
		#parentHeight;
		#parentScale;
		#rotation;
		#thickness;
		build(lines, parentWidth, parentHeight, parentScale, rotation, thickness, innerMargin) {
			this.#parentWidth = parentWidth;
			this.#parentHeight = parentHeight;
			this.#parentScale = parentScale;
			this.#rotation = rotation;
			this.#thickness = thickness;
			this.#innerMargin = innerMargin ?? 0;
			this.#lines = lines;
			this.#computeBbox();
		}
		get thickness() {
			return this.#thickness;
		}
		setLastElement(element) {
			this.#lines.push(element);
			return { path: { d: this.toSVGPath() } };
		}
		removeLastElement() {
			this.#lines.pop();
			return { path: { d: this.toSVGPath() } };
		}
		toSVGPath() {
			const buffer = [];
			for (const { line } of this.#lines) {
				buffer.push(`M${Outline.svgRound(line[4])} ${Outline.svgRound(line[5])}`);
				if (line.length === 6) {
					buffer.push("Z");
					continue;
				}
				if (line.length === 12 && isNaN(line[6])) {
					buffer.push(`L${Outline.svgRound(line[10])} ${Outline.svgRound(line[11])}`);
					continue;
				}
				for (let i$7 = 6, ii = line.length; i$7 < ii; i$7 += 6) {
					const [c1x, c1y, c2x, c2y, x$2, y$3] = line.subarray(i$7, i$7 + 6).map(Outline.svgRound);
					buffer.push(`C${c1x} ${c1y} ${c2x} ${c2y} ${x$2} ${y$3}`);
				}
			}
			return buffer.join("");
		}
		serialize([pageX, pageY, pageWidth, pageHeight], isForCopying) {
			const serializedLines = [];
			const serializedPoints = [];
			const [x$2, y$3, width, height] = this.#getBBoxWithNoMargin();
			let tx, ty, sx, sy, x1, y1, x2, y2, rescaleFn;
			switch (this.#rotation) {
				case 0:
					rescaleFn = Outline._rescale;
					tx = pageX;
					ty = pageY + pageHeight;
					sx = pageWidth;
					sy = -pageHeight;
					x1 = pageX + x$2 * pageWidth;
					y1 = pageY + (1 - y$3 - height) * pageHeight;
					x2 = pageX + (x$2 + width) * pageWidth;
					y2 = pageY + (1 - y$3) * pageHeight;
					break;
				case 90:
					rescaleFn = Outline._rescaleAndSwap;
					tx = pageX;
					ty = pageY;
					sx = pageWidth;
					sy = pageHeight;
					x1 = pageX + y$3 * pageWidth;
					y1 = pageY + x$2 * pageHeight;
					x2 = pageX + (y$3 + height) * pageWidth;
					y2 = pageY + (x$2 + width) * pageHeight;
					break;
				case 180:
					rescaleFn = Outline._rescale;
					tx = pageX + pageWidth;
					ty = pageY;
					sx = -pageWidth;
					sy = pageHeight;
					x1 = pageX + (1 - x$2 - width) * pageWidth;
					y1 = pageY + y$3 * pageHeight;
					x2 = pageX + (1 - x$2) * pageWidth;
					y2 = pageY + (y$3 + height) * pageHeight;
					break;
				case 270:
					rescaleFn = Outline._rescaleAndSwap;
					tx = pageX + pageWidth;
					ty = pageY + pageHeight;
					sx = -pageWidth;
					sy = -pageHeight;
					x1 = pageX + (1 - y$3 - height) * pageWidth;
					y1 = pageY + (1 - x$2 - width) * pageHeight;
					x2 = pageX + (1 - y$3) * pageWidth;
					y2 = pageY + (1 - x$2) * pageHeight;
					break;
			}
			for (const { line, points } of this.#lines) {
				serializedLines.push(rescaleFn(line, tx, ty, sx, sy, isForCopying ? new Array(line.length) : null));
				serializedPoints.push(rescaleFn(points, tx, ty, sx, sy, isForCopying ? new Array(points.length) : null));
			}
			return {
				lines: serializedLines,
				points: serializedPoints,
				rect: [
					x1,
					y1,
					x2,
					y2
				]
			};
		}
		static deserialize(pageX, pageY, pageWidth, pageHeight, innerMargin, { paths: { lines, points }, rotation, thickness }) {
			const newLines = [];
			let tx, ty, sx, sy, rescaleFn;
			switch (rotation) {
				case 0:
					rescaleFn = Outline._rescale;
					tx = -pageX / pageWidth;
					ty = pageY / pageHeight + 1;
					sx = 1 / pageWidth;
					sy = -1 / pageHeight;
					break;
				case 90:
					rescaleFn = Outline._rescaleAndSwap;
					tx = -pageY / pageHeight;
					ty = -pageX / pageWidth;
					sx = 1 / pageHeight;
					sy = 1 / pageWidth;
					break;
				case 180:
					rescaleFn = Outline._rescale;
					tx = pageX / pageWidth + 1;
					ty = -pageY / pageHeight;
					sx = -1 / pageWidth;
					sy = 1 / pageHeight;
					break;
				case 270:
					rescaleFn = Outline._rescaleAndSwap;
					tx = pageY / pageHeight + 1;
					ty = pageX / pageWidth + 1;
					sx = -1 / pageHeight;
					sy = -1 / pageWidth;
					break;
			}
			if (!lines) {
				lines = [];
				for (const point of points) {
					const len = point.length;
					if (len === 2) {
						lines.push(new Float32Array([
							NaN,
							NaN,
							NaN,
							NaN,
							point[0],
							point[1]
						]));
						continue;
					}
					if (len === 4) {
						lines.push(new Float32Array([
							NaN,
							NaN,
							NaN,
							NaN,
							point[0],
							point[1],
							NaN,
							NaN,
							NaN,
							NaN,
							point[2],
							point[3]
						]));
						continue;
					}
					const line = new Float32Array(3 * (len - 2));
					lines.push(line);
					let [x1, y1, x2, y2] = point.subarray(0, 4);
					line.set([
						NaN,
						NaN,
						NaN,
						NaN,
						x1,
						y1
					], 0);
					for (let i$7 = 4; i$7 < len; i$7 += 2) {
						const x$2 = point[i$7];
						const y$3 = point[i$7 + 1];
						line.set(Outline.createBezierPoints(x1, y1, x2, y2, x$2, y$3), (i$7 - 2) * 3);
						[x1, y1, x2, y2] = [
							x2,
							y2,
							x$2,
							y$3
						];
					}
				}
			}
			for (let i$7 = 0, ii = lines.length; i$7 < ii; i$7++) {
				newLines.push({
					line: rescaleFn(lines[i$7].map((x$2) => x$2 ?? NaN), tx, ty, sx, sy),
					points: rescaleFn(points[i$7].map((x$2) => x$2 ?? NaN), tx, ty, sx, sy)
				});
			}
			const outlines = new this.prototype.constructor();
			outlines.build(newLines, pageWidth, pageHeight, 1, rotation, thickness, innerMargin);
			return outlines;
		}
		#getMarginComponents(thickness = this.#thickness) {
			const margin = this.#innerMargin + thickness / 2 * this.#parentScale;
			return this.#rotation % 180 === 0 ? [margin / this.#parentWidth, margin / this.#parentHeight] : [margin / this.#parentHeight, margin / this.#parentWidth];
		}
		#getBBoxWithNoMargin() {
			const [x$2, y$3, width, height] = this.#bbox;
			const [marginX, marginY] = this.#getMarginComponents(0);
			return [
				x$2 + marginX,
				y$3 + marginY,
				width - 2 * marginX,
				height - 2 * marginY
			];
		}
		#computeBbox() {
			const bbox = this.#bbox = new Float32Array([
				Infinity,
				Infinity,
				-Infinity,
				-Infinity
			]);
			for (const { line } of this.#lines) {
				if (line.length <= 12) {
					for (let i$7 = 4, ii = line.length; i$7 < ii; i$7 += 6) {
						Util.pointBoundingBox(line[i$7], line[i$7 + 1], bbox);
					}
					continue;
				}
				let lastX = line[4], lastY = line[5];
				for (let i$7 = 6, ii = line.length; i$7 < ii; i$7 += 6) {
					const [c1x, c1y, c2x, c2y, x$2, y$3] = line.subarray(i$7, i$7 + 6);
					Util.bezierBoundingBox(lastX, lastY, c1x, c1y, c2x, c2y, x$2, y$3, bbox);
					lastX = x$2;
					lastY = y$3;
				}
			}
			const [marginX, marginY] = this.#getMarginComponents();
			bbox[0] = MathClamp(bbox[0] - marginX, 0, 1);
			bbox[1] = MathClamp(bbox[1] - marginY, 0, 1);
			bbox[2] = MathClamp(bbox[2] + marginX, 0, 1);
			bbox[3] = MathClamp(bbox[3] + marginY, 0, 1);
			bbox[2] -= bbox[0];
			bbox[3] -= bbox[1];
		}
		get box() {
			return this.#bbox;
		}
		updateProperty(name, value) {
			if (name === "stroke-width") {
				return this.#updateThickness(value);
			}
			return null;
		}
		#updateThickness(thickness) {
			const [oldMarginX, oldMarginY] = this.#getMarginComponents();
			this.#thickness = thickness;
			const [newMarginX, newMarginY] = this.#getMarginComponents();
			const [diffMarginX, diffMarginY] = [newMarginX - oldMarginX, newMarginY - oldMarginY];
			const bbox = this.#bbox;
			bbox[0] -= diffMarginX;
			bbox[1] -= diffMarginY;
			bbox[2] += 2 * diffMarginX;
			bbox[3] += 2 * diffMarginY;
			return bbox;
		}
		updateParentDimensions([width, height], scale) {
			const [oldMarginX, oldMarginY] = this.#getMarginComponents();
			this.#parentWidth = width;
			this.#parentHeight = height;
			this.#parentScale = scale;
			const [newMarginX, newMarginY] = this.#getMarginComponents();
			const diffMarginX = newMarginX - oldMarginX;
			const diffMarginY = newMarginY - oldMarginY;
			const bbox = this.#bbox;
			bbox[0] -= diffMarginX;
			bbox[1] -= diffMarginY;
			bbox[2] += 2 * diffMarginX;
			bbox[3] += 2 * diffMarginY;
			return bbox;
		}
		updateRotation(rotation) {
			this.#currentRotation = rotation;
			return { path: { transform: this.rotationTransform } };
		}
		get viewBox() {
			return this.#bbox.map(Outline.svgRound).join(" ");
		}
		get defaultProperties() {
			const [x$2, y$3] = this.#bbox;
			return {
				root: { viewBox: this.viewBox },
				path: { "transform-origin": `${Outline.svgRound(x$2)} ${Outline.svgRound(y$3)}` }
			};
		}
		get rotationTransform() {
			const [, , width, height] = this.#bbox;
			let a$2 = 0, b$3 = 0, c$7 = 0, d$5 = 0, e$10 = 0, f$4 = 0;
			switch (this.#currentRotation) {
				case 90:
					b$3 = height / width;
					c$7 = -width / height;
					e$10 = width;
					break;
				case 180:
					a$2 = -1;
					d$5 = -1;
					e$10 = width;
					f$4 = height;
					break;
				case 270:
					b$3 = -height / width;
					c$7 = width / height;
					f$4 = height;
					break;
				default: return "";
			}
			return `matrix(${a$2} ${b$3} ${c$7} ${d$5} ${Outline.svgRound(e$10)} ${Outline.svgRound(f$4)})`;
		}
		getPathResizingSVGProperties([newX, newY, newWidth, newHeight]) {
			const [marginX, marginY] = this.#getMarginComponents();
			const [x$2, y$3, width, height] = this.#bbox;
			if (Math.abs(width - marginX) <= Outline.PRECISION || Math.abs(height - marginY) <= Outline.PRECISION) {
				const tx = newX + newWidth / 2 - (x$2 + width / 2);
				const ty = newY + newHeight / 2 - (y$3 + height / 2);
				return { path: {
					"transform-origin": `${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`,
					transform: `${this.rotationTransform} translate(${tx} ${ty})`
				} };
			}
			const s1x = (newWidth - 2 * marginX) / (width - 2 * marginX);
			const s1y = (newHeight - 2 * marginY) / (height - 2 * marginY);
			const s2x = width / newWidth;
			const s2y = height / newHeight;
			return { path: {
				"transform-origin": `${Outline.svgRound(x$2)} ${Outline.svgRound(y$3)}`,
				transform: `${this.rotationTransform} scale(${s2x} ${s2y}) ` + `translate(${Outline.svgRound(marginX)} ${Outline.svgRound(marginY)}) scale(${s1x} ${s1y}) ` + `translate(${Outline.svgRound(-marginX)} ${Outline.svgRound(-marginY)})`
			} };
		}
		getPathResizedSVGProperties([newX, newY, newWidth, newHeight]) {
			const [marginX, marginY] = this.#getMarginComponents();
			const bbox = this.#bbox;
			const [x$2, y$3, width, height] = bbox;
			bbox[0] = newX;
			bbox[1] = newY;
			bbox[2] = newWidth;
			bbox[3] = newHeight;
			if (Math.abs(width - marginX) <= Outline.PRECISION || Math.abs(height - marginY) <= Outline.PRECISION) {
				const tx$1 = newX + newWidth / 2 - (x$2 + width / 2);
				const ty$1 = newY + newHeight / 2 - (y$3 + height / 2);
				for (const { line, points } of this.#lines) {
					Outline._translate(line, tx$1, ty$1, line);
					Outline._translate(points, tx$1, ty$1, points);
				}
				return {
					root: { viewBox: this.viewBox },
					path: {
						"transform-origin": `${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`,
						transform: this.rotationTransform || null,
						d: this.toSVGPath()
					}
				};
			}
			const s1x = (newWidth - 2 * marginX) / (width - 2 * marginX);
			const s1y = (newHeight - 2 * marginY) / (height - 2 * marginY);
			const tx = -s1x * (x$2 + marginX) + newX + marginX;
			const ty = -s1y * (y$3 + marginY) + newY + marginY;
			if (s1x !== 1 || s1y !== 1 || tx !== 0 || ty !== 0) {
				for (const { line, points } of this.#lines) {
					Outline._rescale(line, tx, ty, s1x, s1y, line);
					Outline._rescale(points, tx, ty, s1x, s1y, points);
				}
			}
			return {
				root: { viewBox: this.viewBox },
				path: {
					"transform-origin": `${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`,
					transform: this.rotationTransform || null,
					d: this.toSVGPath()
				}
			};
		}
		getPathTranslatedSVGProperties([newX, newY], parentDimensions) {
			const [newParentWidth, newParentHeight] = parentDimensions;
			const bbox = this.#bbox;
			const tx = newX - bbox[0];
			const ty = newY - bbox[1];
			if (this.#parentWidth === newParentWidth && this.#parentHeight === newParentHeight) {
				for (const { line, points } of this.#lines) {
					Outline._translate(line, tx, ty, line);
					Outline._translate(points, tx, ty, points);
				}
			} else {
				const sx = this.#parentWidth / newParentWidth;
				const sy = this.#parentHeight / newParentHeight;
				this.#parentWidth = newParentWidth;
				this.#parentHeight = newParentHeight;
				for (const { line, points } of this.#lines) {
					Outline._rescale(line, tx, ty, sx, sy, line);
					Outline._rescale(points, tx, ty, sx, sy, points);
				}
				bbox[2] *= sx;
				bbox[3] *= sy;
			}
			bbox[0] = newX;
			bbox[1] = newY;
			return {
				root: { viewBox: this.viewBox },
				path: {
					d: this.toSVGPath(),
					"transform-origin": `${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`
				}
			};
		}
		get defaultSVGProperties() {
			const bbox = this.#bbox;
			return {
				root: { viewBox: this.viewBox },
				rootClass: { draw: true },
				path: {
					d: this.toSVGPath(),
					"transform-origin": `${Outline.svgRound(bbox[0])} ${Outline.svgRound(bbox[1])}`,
					transform: this.rotationTransform || null
				},
				bbox
			};
		}
	};
	;
	InkDrawingOptions = class InkDrawingOptions extends DrawingOptions {
		constructor(viewerParameters) {
			super();
			this._viewParameters = viewerParameters;
			super.updateProperties({
				fill: "none",
				stroke: AnnotationEditor._defaultLineColor,
				"stroke-opacity": 1,
				"stroke-width": 1,
				"stroke-linecap": "round",
				"stroke-linejoin": "round",
				"stroke-miterlimit": 10
			});
		}
		updateSVGProperty(name, value) {
			if (name === "stroke-width") {
				value ??= this["stroke-width"];
				value *= this._viewParameters.realScale;
			}
			super.updateSVGProperty(name, value);
		}
		clone() {
			const clone = new InkDrawingOptions(this._viewParameters);
			clone.updateAll(this);
			return clone;
		}
	};
	InkEditor = class InkEditor extends DrawingEditor {
		static _type = "ink";
		static _editorType = AnnotationEditorType.INK;
		static _defaultDrawingOptions = null;
		constructor(params) {
			super({
				...params,
				name: "inkEditor"
			});
			this._willKeepAspectRatio = true;
			this.defaultL10nId = "pdfjs-editor-ink-editor";
		}
		static initialize(l10n, uiManager) {
			AnnotationEditor.initialize(l10n, uiManager);
			this._defaultDrawingOptions = new InkDrawingOptions(uiManager.viewParameters);
		}
		static getDefaultDrawingOptions(options) {
			const clone = this._defaultDrawingOptions.clone();
			clone.updateProperties(options);
			return clone;
		}
		static get supportMultipleDrawings() {
			return true;
		}
		static get typesMap() {
			return shadow(this, "typesMap", new Map([
				[AnnotationEditorParamsType.INK_THICKNESS, "stroke-width"],
				[AnnotationEditorParamsType.INK_COLOR, "stroke"],
				[AnnotationEditorParamsType.INK_OPACITY, "stroke-opacity"]
			]));
		}
		static createDrawerInstance(x$2, y$3, parentWidth, parentHeight, rotation) {
			return new InkDrawOutliner(x$2, y$3, parentWidth, parentHeight, rotation, this._defaultDrawingOptions["stroke-width"]);
		}
		static deserializeDraw(pageX, pageY, pageWidth, pageHeight, innerMargin, data) {
			return InkDrawOutline.deserialize(pageX, pageY, pageWidth, pageHeight, innerMargin, data);
		}
		static async deserialize(data, parent, uiManager) {
			let initialData = null;
			if (data instanceof InkAnnotationElement) {
				const { data: { inkLists, rect, rotation, id, color, opacity, borderStyle: { rawWidth: thickness }, popupRef, richText, contentsObj, creationDate, modificationDate }, parent: { page: { pageNumber } } } = data;
				initialData = data = {
					annotationType: AnnotationEditorType.INK,
					color: Array.from(color),
					thickness,
					opacity,
					paths: { points: inkLists },
					boxes: null,
					pageIndex: pageNumber - 1,
					rect: rect.slice(0),
					rotation,
					annotationElementId: id,
					id,
					deleted: false,
					popupRef,
					richText,
					comment: contentsObj?.str || null,
					creationDate,
					modificationDate
				};
			}
			const editor = await super.deserialize(data, parent, uiManager);
			editor._initialData = initialData;
			if (data.comment) {
				editor.setCommentData(data);
			}
			return editor;
		}
		get toolbarButtons() {
			this._colorPicker ||= new BasicColorPicker(this);
			return [["colorPicker", this._colorPicker]];
		}
		get colorType() {
			return AnnotationEditorParamsType.INK_COLOR;
		}
		get color() {
			return this._drawingOptions.stroke;
		}
		get opacity() {
			return this._drawingOptions["stroke-opacity"];
		}
		onScaleChanging() {
			if (!this.parent) {
				return;
			}
			super.onScaleChanging();
			const { _drawId, _drawingOptions, parent } = this;
			_drawingOptions.updateSVGProperty("stroke-width");
			parent.drawLayer.updateProperties(_drawId, _drawingOptions.toSVGProperties());
		}
		static onScaleChangingWhenDrawing() {
			const parent = this._currentParent;
			if (!parent) {
				return;
			}
			super.onScaleChangingWhenDrawing();
			this._defaultDrawingOptions.updateSVGProperty("stroke-width");
			parent.drawLayer.updateProperties(this._currentDrawId, this._defaultDrawingOptions.toSVGProperties());
		}
		createDrawingOptions({ color, thickness, opacity }) {
			this._drawingOptions = InkEditor.getDefaultDrawingOptions({
				stroke: Util.makeHexColor(...color),
				"stroke-width": thickness,
				"stroke-opacity": opacity
			});
		}
		serialize(isForCopying = false) {
			if (this.isEmpty()) {
				return null;
			}
			if (this.deleted) {
				return this.serializeDeleted();
			}
			const { lines, points } = this.serializeDraw(isForCopying);
			const { _drawingOptions: { stroke, "stroke-opacity": opacity, "stroke-width": thickness } } = this;
			const serialized = Object.assign(super.serialize(isForCopying), {
				color: AnnotationEditor._colorManager.convert(stroke),
				opacity,
				thickness,
				paths: {
					lines,
					points
				}
			});
			this.addComment(serialized);
			if (isForCopying) {
				serialized.isCopy = true;
				return serialized;
			}
			if (this.annotationElementId && !this.#hasElementChanged(serialized)) {
				return null;
			}
			serialized.id = this.annotationElementId;
			return serialized;
		}
		#hasElementChanged(serialized) {
			const { color, thickness, opacity, pageIndex } = this._initialData;
			return this.hasEditedComment || this._hasBeenMoved || this._hasBeenResized || serialized.color.some((c$7, i$7) => c$7 !== color[i$7]) || serialized.thickness !== thickness || serialized.opacity !== opacity || serialized.pageIndex !== pageIndex;
		}
		renderAnnotationElement(annotation) {
			if (this.deleted) {
				annotation.hide();
				return null;
			}
			const { points, rect } = this.serializeDraw(false);
			annotation.updateEdited({
				rect,
				thickness: this._drawingOptions["stroke-width"],
				points,
				popup: this.comment
			});
			return null;
		}
	};
	;
	ContourDrawOutline = class extends InkDrawOutline {
		toSVGPath() {
			let path$1 = super.toSVGPath();
			if (!path$1.endsWith("Z")) {
				path$1 += "Z";
			}
			return path$1;
		}
	};
	;
	BASE_HEADER_LENGTH = 8;
	POINTS_PROPERTIES_NUMBER = 3;
	SignatureExtractor = class {
		static #PARAMETERS = {
			maxDim: 512,
			sigmaSFactor: .02,
			sigmaR: 25,
			kernelSize: 16
		};
		static #neighborIndexToId(i0, j0, i$7, j$2) {
			i$7 -= i0;
			j$2 -= j0;
			if (i$7 === 0) {
				return j$2 > 0 ? 0 : 4;
			}
			if (i$7 === 1) {
				return j$2 + 6;
			}
			return 2 - j$2;
		}
		static #neighborIdToIndex = new Int32Array([
			0,
			1,
			-1,
			1,
			-1,
			0,
			-1,
			-1,
			0,
			-1,
			1,
			-1,
			1,
			0,
			1,
			1
		]);
		static #clockwiseNonZero(buf, width, i0, j0, i$7, j$2, offset) {
			const id = this.#neighborIndexToId(i0, j0, i$7, j$2);
			for (let k$2 = 0; k$2 < 8; k$2++) {
				const kk = (-k$2 + id - offset + 16) % 8;
				const shiftI = this.#neighborIdToIndex[2 * kk];
				const shiftJ = this.#neighborIdToIndex[2 * kk + 1];
				if (buf[(i0 + shiftI) * width + (j0 + shiftJ)] !== 0) {
					return kk;
				}
			}
			return -1;
		}
		static #counterClockwiseNonZero(buf, width, i0, j0, i$7, j$2, offset) {
			const id = this.#neighborIndexToId(i0, j0, i$7, j$2);
			for (let k$2 = 0; k$2 < 8; k$2++) {
				const kk = (k$2 + id + offset + 16) % 8;
				const shiftI = this.#neighborIdToIndex[2 * kk];
				const shiftJ = this.#neighborIdToIndex[2 * kk + 1];
				if (buf[(i0 + shiftI) * width + (j0 + shiftJ)] !== 0) {
					return kk;
				}
			}
			return -1;
		}
		static #findContours(buf, width, height, threshold) {
			const N$2 = buf.length;
			const types = new Int32Array(N$2);
			for (let i$7 = 0; i$7 < N$2; i$7++) {
				types[i$7] = buf[i$7] <= threshold ? 1 : 0;
			}
			for (let i$7 = 1; i$7 < height - 1; i$7++) {
				types[i$7 * width] = types[i$7 * width + width - 1] = 0;
			}
			for (let i$7 = 0; i$7 < width; i$7++) {
				types[i$7] = types[width * height - 1 - i$7] = 0;
			}
			let nbd = 1;
			let lnbd;
			const contours = [];
			for (let i$7 = 1; i$7 < height - 1; i$7++) {
				lnbd = 1;
				for (let j$2 = 1; j$2 < width - 1; j$2++) {
					const ij = i$7 * width + j$2;
					const pix = types[ij];
					if (pix === 0) {
						continue;
					}
					let i2 = i$7;
					let j2 = j$2;
					if (pix === 1 && types[ij - 1] === 0) {
						nbd += 1;
						j2 -= 1;
					} else if (pix >= 1 && types[ij + 1] === 0) {
						nbd += 1;
						j2 += 1;
						if (pix > 1) {
							lnbd = pix;
						}
					} else {
						if (pix !== 1) {
							lnbd = Math.abs(pix);
						}
						continue;
					}
					const points = [j$2, i$7];
					const isHole = j2 === j$2 + 1;
					const contour = {
						isHole,
						points,
						id: nbd,
						parent: 0
					};
					contours.push(contour);
					let contour0;
					for (const c$7 of contours) {
						if (c$7.id === lnbd) {
							contour0 = c$7;
							break;
						}
					}
					if (!contour0) {
						contour.parent = isHole ? lnbd : 0;
					} else if (contour0.isHole) {
						contour.parent = isHole ? contour0.parent : lnbd;
					} else {
						contour.parent = isHole ? lnbd : contour0.parent;
					}
					const k$2 = this.#clockwiseNonZero(types, width, i$7, j$2, i2, j2, 0);
					if (k$2 === -1) {
						types[ij] = -nbd;
						if (types[ij] !== 1) {
							lnbd = Math.abs(types[ij]);
						}
						continue;
					}
					let shiftI = this.#neighborIdToIndex[2 * k$2];
					let shiftJ = this.#neighborIdToIndex[2 * k$2 + 1];
					const i1 = i$7 + shiftI;
					const j1 = j$2 + shiftJ;
					i2 = i1;
					j2 = j1;
					let i3 = i$7;
					let j3 = j$2;
					while (true) {
						const kk = this.#counterClockwiseNonZero(types, width, i3, j3, i2, j2, 1);
						shiftI = this.#neighborIdToIndex[2 * kk];
						shiftJ = this.#neighborIdToIndex[2 * kk + 1];
						const i4 = i3 + shiftI;
						const j4 = j3 + shiftJ;
						points.push(j4, i4);
						const ij3 = i3 * width + j3;
						if (types[ij3 + 1] === 0) {
							types[ij3] = -nbd;
						} else if (types[ij3] === 1) {
							types[ij3] = nbd;
						}
						if (i4 === i$7 && j4 === j$2 && i3 === i1 && j3 === j1) {
							if (types[ij] !== 1) {
								lnbd = Math.abs(types[ij]);
							}
							break;
						} else {
							i2 = i3;
							j2 = j3;
							i3 = i4;
							j3 = j4;
						}
					}
				}
			}
			return contours;
		}
		static #douglasPeuckerHelper(points, start, end, output) {
			if (end - start <= 4) {
				for (let i$7 = start; i$7 < end - 2; i$7 += 2) {
					output.push(points[i$7], points[i$7 + 1]);
				}
				return;
			}
			const ax = points[start];
			const ay = points[start + 1];
			const abx = points[end - 4] - ax;
			const aby = points[end - 3] - ay;
			const dist = Math.hypot(abx, aby);
			const nabx = abx / dist;
			const naby = aby / dist;
			const aa = nabx * ay - naby * ax;
			const m$3 = aby / abx;
			const invS = 1 / dist;
			const phi = Math.atan(m$3);
			const cosPhi = Math.cos(phi);
			const sinPhi = Math.sin(phi);
			const tmax = invS * (Math.abs(cosPhi) + Math.abs(sinPhi));
			const poly = invS * (1 - tmax + tmax ** 2);
			const partialPhi = Math.max(Math.atan(Math.abs(sinPhi + cosPhi) * poly), Math.atan(Math.abs(sinPhi - cosPhi) * poly));
			let dmax = 0;
			let index = start;
			for (let i$7 = start + 2; i$7 < end - 2; i$7 += 2) {
				const d$5 = Math.abs(aa - nabx * points[i$7 + 1] + naby * points[i$7]);
				if (d$5 > dmax) {
					index = i$7;
					dmax = d$5;
				}
			}
			if (dmax > (dist * partialPhi) ** 2) {
				this.#douglasPeuckerHelper(points, start, index + 2, output);
				this.#douglasPeuckerHelper(points, index, end, output);
			} else {
				output.push(ax, ay);
			}
		}
		static #douglasPeucker(points) {
			const output = [];
			const len = points.length;
			this.#douglasPeuckerHelper(points, 0, len, output);
			output.push(points[len - 2], points[len - 1]);
			return output.length <= 4 ? null : output;
		}
		static #bilateralFilter(buf, width, height, sigmaS, sigmaR, kernelSize) {
			const kernel = new Float32Array(kernelSize ** 2);
			const sigmaS2 = -2 * sigmaS ** 2;
			const halfSize = kernelSize >> 1;
			for (let i$7 = 0; i$7 < kernelSize; i$7++) {
				const x$2 = (i$7 - halfSize) ** 2;
				for (let j$2 = 0; j$2 < kernelSize; j$2++) {
					kernel[i$7 * kernelSize + j$2] = Math.exp((x$2 + (j$2 - halfSize) ** 2) / sigmaS2);
				}
			}
			const rangeValues = new Float32Array(256);
			const sigmaR2 = -2 * sigmaR ** 2;
			for (let i$7 = 0; i$7 < 256; i$7++) {
				rangeValues[i$7] = Math.exp(i$7 ** 2 / sigmaR2);
			}
			const N$2 = buf.length;
			const out = new Uint8Array(N$2);
			const histogram = new Uint32Array(256);
			for (let i$7 = 0; i$7 < height; i$7++) {
				for (let j$2 = 0; j$2 < width; j$2++) {
					const ij = i$7 * width + j$2;
					const center = buf[ij];
					let sum = 0;
					let norm = 0;
					for (let k$2 = 0; k$2 < kernelSize; k$2++) {
						const y$3 = i$7 + k$2 - halfSize;
						if (y$3 < 0 || y$3 >= height) {
							continue;
						}
						for (let l$3 = 0; l$3 < kernelSize; l$3++) {
							const x$2 = j$2 + l$3 - halfSize;
							if (x$2 < 0 || x$2 >= width) {
								continue;
							}
							const neighbour = buf[y$3 * width + x$2];
							const w$2 = kernel[k$2 * kernelSize + l$3] * rangeValues[Math.abs(neighbour - center)];
							sum += neighbour * w$2;
							norm += w$2;
						}
					}
					const pix = out[ij] = Math.round(sum / norm);
					histogram[pix]++;
				}
			}
			return [out, histogram];
		}
		static #getHistogram(buf) {
			const histogram = new Uint32Array(256);
			for (const g$1 of buf) {
				histogram[g$1]++;
			}
			return histogram;
		}
		static #toUint8(buf) {
			const N$2 = buf.length;
			const out = new Uint8ClampedArray(N$2 >> 2);
			let max = -Infinity;
			let min = Infinity;
			for (let i$7 = 0, ii = out.length; i$7 < ii; i$7++) {
				const pix = out[i$7] = buf[i$7 << 2];
				max = Math.max(max, pix);
				min = Math.min(min, pix);
			}
			const ratio = 255 / (max - min);
			for (let i$7 = 0, ii = out.length; i$7 < ii; i$7++) {
				out[i$7] = (out[i$7] - min) * ratio;
			}
			return out;
		}
		static #guessThreshold(histogram) {
			let i$7;
			let M$3 = -Infinity;
			let L$2 = -Infinity;
			const min = histogram.findIndex((v$3) => v$3 !== 0);
			let pos = min;
			let spos = min;
			for (i$7 = min; i$7 < 256; i$7++) {
				const v$3 = histogram[i$7];
				if (v$3 > M$3) {
					if (i$7 - pos > L$2) {
						L$2 = i$7 - pos;
						spos = i$7 - 1;
					}
					M$3 = v$3;
					pos = i$7;
				}
			}
			for (i$7 = spos - 1; i$7 >= 0; i$7--) {
				if (histogram[i$7] > histogram[i$7 + 1]) {
					break;
				}
			}
			return i$7;
		}
		static #getGrayPixels(bitmap) {
			const originalBitmap = bitmap;
			const { width, height } = bitmap;
			const { maxDim } = this.#PARAMETERS;
			let newWidth = width;
			let newHeight = height;
			if (width > maxDim || height > maxDim) {
				let prevWidth = width;
				let prevHeight = height;
				let steps = Math.log2(Math.max(width, height) / maxDim);
				const isteps = Math.floor(steps);
				steps = steps === isteps ? isteps - 1 : isteps;
				for (let i$7 = 0; i$7 < steps; i$7++) {
					newWidth = Math.ceil(prevWidth / 2);
					newHeight = Math.ceil(prevHeight / 2);
					const offscreen$1 = new OffscreenCanvas(newWidth, newHeight);
					const ctx$1 = offscreen$1.getContext("2d");
					ctx$1.drawImage(bitmap, 0, 0, prevWidth, prevHeight, 0, 0, newWidth, newHeight);
					prevWidth = newWidth;
					prevHeight = newHeight;
					if (bitmap !== originalBitmap) {
						bitmap.close();
					}
					bitmap = offscreen$1.transferToImageBitmap();
				}
				const ratio = Math.min(maxDim / newWidth, maxDim / newHeight);
				newWidth = Math.round(newWidth * ratio);
				newHeight = Math.round(newHeight * ratio);
			}
			const offscreen = new OffscreenCanvas(newWidth, newHeight);
			const ctx = offscreen.getContext("2d", { willReadFrequently: true });
			ctx.fillStyle = "white";
			ctx.fillRect(0, 0, newWidth, newHeight);
			ctx.filter = "grayscale(1)";
			ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, newWidth, newHeight);
			const grayImage = ctx.getImageData(0, 0, newWidth, newHeight).data;
			const uint8Buf = this.#toUint8(grayImage);
			return [
				uint8Buf,
				newWidth,
				newHeight
			];
		}
		static extractContoursFromText(text$2, { fontFamily, fontStyle, fontWeight }, pageWidth, pageHeight, rotation, innerMargin) {
			let canvas = new OffscreenCanvas(1, 1);
			let ctx = canvas.getContext("2d", { alpha: false });
			const fontSize = 200;
			const font = ctx.font = `${fontStyle} ${fontWeight} ${fontSize}px ${fontFamily}`;
			const { actualBoundingBoxLeft, actualBoundingBoxRight, actualBoundingBoxAscent, actualBoundingBoxDescent, fontBoundingBoxAscent, fontBoundingBoxDescent, width } = ctx.measureText(text$2);
			const SCALE = 1.5;
			const canvasWidth = Math.ceil(Math.max(Math.abs(actualBoundingBoxLeft) + Math.abs(actualBoundingBoxRight) || 0, width) * SCALE);
			const canvasHeight = Math.ceil(Math.max(Math.abs(actualBoundingBoxAscent) + Math.abs(actualBoundingBoxDescent) || fontSize, Math.abs(fontBoundingBoxAscent) + Math.abs(fontBoundingBoxDescent) || fontSize) * SCALE);
			canvas = new OffscreenCanvas(canvasWidth, canvasHeight);
			ctx = canvas.getContext("2d", {
				alpha: true,
				willReadFrequently: true
			});
			ctx.font = font;
			ctx.filter = "grayscale(1)";
			ctx.fillStyle = "white";
			ctx.fillRect(0, 0, canvasWidth, canvasHeight);
			ctx.fillStyle = "black";
			ctx.fillText(text$2, canvasWidth * (SCALE - 1) / 2, canvasHeight * (3 - SCALE) / 2);
			const uint8Buf = this.#toUint8(ctx.getImageData(0, 0, canvasWidth, canvasHeight).data);
			const histogram = this.#getHistogram(uint8Buf);
			const threshold = this.#guessThreshold(histogram);
			const contourList = this.#findContours(uint8Buf, canvasWidth, canvasHeight, threshold);
			return this.processDrawnLines({
				lines: {
					curves: contourList,
					width: canvasWidth,
					height: canvasHeight
				},
				pageWidth,
				pageHeight,
				rotation,
				innerMargin,
				mustSmooth: true,
				areContours: true
			});
		}
		static process(bitmap, pageWidth, pageHeight, rotation, innerMargin) {
			const [uint8Buf, width, height] = this.#getGrayPixels(bitmap);
			const [buffer, histogram] = this.#bilateralFilter(uint8Buf, width, height, Math.hypot(width, height) * this.#PARAMETERS.sigmaSFactor, this.#PARAMETERS.sigmaR, this.#PARAMETERS.kernelSize);
			const threshold = this.#guessThreshold(histogram);
			const contourList = this.#findContours(buffer, width, height, threshold);
			return this.processDrawnLines({
				lines: {
					curves: contourList,
					width,
					height
				},
				pageWidth,
				pageHeight,
				rotation,
				innerMargin,
				mustSmooth: true,
				areContours: true
			});
		}
		static processDrawnLines({ lines, pageWidth, pageHeight, rotation, innerMargin, mustSmooth, areContours }) {
			if (rotation % 180 !== 0) {
				[pageWidth, pageHeight] = [pageHeight, pageWidth];
			}
			const { curves, width, height } = lines;
			const thickness = lines.thickness ?? 0;
			const linesAndPoints = [];
			const ratio = Math.min(pageWidth / width, pageHeight / height);
			const xScale = ratio / pageWidth;
			const yScale = ratio / pageHeight;
			const newCurves = [];
			for (const { points } of curves) {
				const reducedPoints = mustSmooth ? this.#douglasPeucker(points) : points;
				if (!reducedPoints) {
					continue;
				}
				newCurves.push(reducedPoints);
				const len = reducedPoints.length;
				const newPoints = new Float32Array(len);
				const line = new Float32Array(3 * (len === 2 ? 2 : len - 2));
				linesAndPoints.push({
					line,
					points: newPoints
				});
				if (len === 2) {
					newPoints[0] = reducedPoints[0] * xScale;
					newPoints[1] = reducedPoints[1] * yScale;
					line.set([
						NaN,
						NaN,
						NaN,
						NaN,
						newPoints[0],
						newPoints[1]
					], 0);
					continue;
				}
				let [x1, y1, x2, y2] = reducedPoints;
				x1 *= xScale;
				y1 *= yScale;
				x2 *= xScale;
				y2 *= yScale;
				newPoints.set([
					x1,
					y1,
					x2,
					y2
				], 0);
				line.set([
					NaN,
					NaN,
					NaN,
					NaN,
					x1,
					y1
				], 0);
				for (let i$7 = 4; i$7 < len; i$7 += 2) {
					const x$2 = newPoints[i$7] = reducedPoints[i$7] * xScale;
					const y$3 = newPoints[i$7 + 1] = reducedPoints[i$7 + 1] * yScale;
					line.set(Outline.createBezierPoints(x1, y1, x2, y2, x$2, y$3), (i$7 - 2) * 3);
					[x1, y1, x2, y2] = [
						x2,
						y2,
						x$2,
						y$3
					];
				}
			}
			if (linesAndPoints.length === 0) {
				return null;
			}
			const outline = areContours ? new ContourDrawOutline() : new InkDrawOutline();
			outline.build(linesAndPoints, pageWidth, pageHeight, 1, rotation, areContours ? 0 : thickness, innerMargin);
			return {
				outline,
				newCurves,
				areContours,
				thickness,
				width,
				height
			};
		}
		static async compressSignature({ outlines, areContours, thickness, width, height }) {
			let minDiff = Infinity;
			let maxDiff = -Infinity;
			let outlinesLength = 0;
			for (const points of outlines) {
				outlinesLength += points.length;
				for (let i$7 = 2, ii = points.length; i$7 < ii; i$7++) {
					const dx = points[i$7] - points[i$7 - 2];
					minDiff = Math.min(minDiff, dx);
					maxDiff = Math.max(maxDiff, dx);
				}
			}
			let bufferType;
			if (minDiff >= -128 && maxDiff <= 127) {
				bufferType = Int8Array;
			} else if (minDiff >= -32768 && maxDiff <= 32767) {
				bufferType = Int16Array;
			} else {
				bufferType = Int32Array;
			}
			const len = outlines.length;
			const headerLength = BASE_HEADER_LENGTH + POINTS_PROPERTIES_NUMBER * len;
			const header = new Uint32Array(headerLength);
			let offset = 0;
			header[offset++] = headerLength * Uint32Array.BYTES_PER_ELEMENT + (outlinesLength - 2 * len) * bufferType.BYTES_PER_ELEMENT;
			header[offset++] = 0;
			header[offset++] = width;
			header[offset++] = height;
			header[offset++] = areContours ? 0 : 1;
			header[offset++] = Math.max(0, Math.floor(thickness ?? 0));
			header[offset++] = len;
			header[offset++] = bufferType.BYTES_PER_ELEMENT;
			for (const points of outlines) {
				header[offset++] = points.length - 2;
				header[offset++] = points[0];
				header[offset++] = points[1];
			}
			const cs = new CompressionStream("deflate-raw");
			const writer = cs.writable.getWriter();
			await writer.ready;
			writer.write(header);
			const BufferCtor = bufferType.prototype.constructor;
			for (const points of outlines) {
				const diffs = new BufferCtor(points.length - 2);
				for (let i$7 = 2, ii = points.length; i$7 < ii; i$7++) {
					diffs[i$7 - 2] = points[i$7] - points[i$7 - 2];
				}
				writer.write(diffs);
			}
			writer.close();
			const buf = await new Response(cs.readable).arrayBuffer();
			const bytes = new Uint8Array(buf);
			return toBase64Util(bytes);
		}
		static async decompressSignature(signatureData) {
			try {
				const bytes = fromBase64Util(signatureData);
				const { readable, writable } = new DecompressionStream("deflate-raw");
				const writer = writable.getWriter();
				await writer.ready;
				writer.write(bytes).then(async () => {
					await writer.ready;
					await writer.close();
				}).catch(() => {});
				let data = null;
				let offset = 0;
				for await (const chunk of readable) {
					data ||= new Uint8Array(new Uint32Array(chunk.buffer, 0, 4)[0]);
					data.set(chunk, offset);
					offset += chunk.length;
				}
				const header = new Uint32Array(data.buffer, 0, data.length >> 2);
				const version$6 = header[1];
				if (version$6 !== 0) {
					throw new Error(`Invalid version: ${version$6}`);
				}
				const width = header[2];
				const height = header[3];
				const areContours = header[4] === 0;
				const thickness = header[5];
				const numberOfDrawings = header[6];
				const bufferType = header[7];
				const outlines = [];
				const diffsOffset = (BASE_HEADER_LENGTH + POINTS_PROPERTIES_NUMBER * numberOfDrawings) * Uint32Array.BYTES_PER_ELEMENT;
				let diffs;
				switch (bufferType) {
					case Int8Array.BYTES_PER_ELEMENT:
						diffs = new Int8Array(data.buffer, diffsOffset);
						break;
					case Int16Array.BYTES_PER_ELEMENT:
						diffs = new Int16Array(data.buffer, diffsOffset);
						break;
					case Int32Array.BYTES_PER_ELEMENT:
						diffs = new Int32Array(data.buffer, diffsOffset);
						break;
				}
				offset = 0;
				for (let i$7 = 0; i$7 < numberOfDrawings; i$7++) {
					const len = header[POINTS_PROPERTIES_NUMBER * i$7 + BASE_HEADER_LENGTH];
					const points = new Float32Array(len + 2);
					outlines.push(points);
					for (let j$2 = 0; j$2 < POINTS_PROPERTIES_NUMBER - 1; j$2++) {
						points[j$2] = header[POINTS_PROPERTIES_NUMBER * i$7 + BASE_HEADER_LENGTH + j$2 + 1];
					}
					for (let j$2 = 0; j$2 < len; j$2++) {
						points[j$2 + 2] = points[j$2] + diffs[offset++];
					}
				}
				return {
					areContours,
					thickness,
					outlines,
					width,
					height
				};
			} catch (e$10) {
				warn$2(`decompressSignature: ${e$10}`);
				return null;
			}
		}
	};
	;
	SignatureOptions = class SignatureOptions extends DrawingOptions {
		constructor() {
			super();
			super.updateProperties({
				fill: AnnotationEditor._defaultLineColor,
				"stroke-width": 0
			});
		}
		clone() {
			const clone = new SignatureOptions();
			clone.updateAll(this);
			return clone;
		}
	};
	DrawnSignatureOptions = class DrawnSignatureOptions extends InkDrawingOptions {
		constructor(viewerParameters) {
			super(viewerParameters);
			super.updateProperties({
				stroke: AnnotationEditor._defaultLineColor,
				"stroke-width": 1
			});
		}
		clone() {
			const clone = new DrawnSignatureOptions(this._viewParameters);
			clone.updateAll(this);
			return clone;
		}
	};
	SignatureEditor = class SignatureEditor extends DrawingEditor {
		#isExtracted = false;
		#description = null;
		#signatureData = null;
		#signatureUUID = null;
		static _type = "signature";
		static _editorType = AnnotationEditorType.SIGNATURE;
		static _defaultDrawingOptions = null;
		constructor(params) {
			super({
				...params,
				mustBeCommitted: true,
				name: "signatureEditor"
			});
			this._willKeepAspectRatio = true;
			this.#signatureData = params.signatureData || null;
			this.#description = null;
			this.defaultL10nId = "pdfjs-editor-signature-editor1";
		}
		static initialize(l10n, uiManager) {
			AnnotationEditor.initialize(l10n, uiManager);
			this._defaultDrawingOptions = new SignatureOptions();
			this._defaultDrawnSignatureOptions = new DrawnSignatureOptions(uiManager.viewParameters);
		}
		static getDefaultDrawingOptions(options) {
			const clone = this._defaultDrawingOptions.clone();
			clone.updateProperties(options);
			return clone;
		}
		static get supportMultipleDrawings() {
			return false;
		}
		static get typesMap() {
			return shadow(this, "typesMap", new Map());
		}
		static get isDrawer() {
			return false;
		}
		get telemetryFinalData() {
			return {
				type: "signature",
				hasDescription: !!this.#description
			};
		}
		static computeTelemetryFinalData(data) {
			const hasDescriptionStats = data.get("hasDescription");
			return {
				hasAltText: hasDescriptionStats.get(true) ?? 0,
				hasNoAltText: hasDescriptionStats.get(false) ?? 0
			};
		}
		get isResizable() {
			return true;
		}
		onScaleChanging() {
			if (this._drawId === null) {
				return;
			}
			super.onScaleChanging();
		}
		render() {
			if (this.div) {
				return this.div;
			}
			let baseX, baseY;
			const { _isCopy } = this;
			if (_isCopy) {
				this._isCopy = false;
				baseX = this.x;
				baseY = this.y;
			}
			super.render();
			if (this._drawId === null) {
				if (this.#signatureData) {
					const { lines, mustSmooth, areContours, description, uuid, heightInPage } = this.#signatureData;
					const { rawDims: { pageWidth, pageHeight }, rotation } = this.parent.viewport;
					const outline = SignatureExtractor.processDrawnLines({
						lines,
						pageWidth,
						pageHeight,
						rotation,
						innerMargin: SignatureEditor._INNER_MARGIN,
						mustSmooth,
						areContours
					});
					this.addSignature(outline, heightInPage, description, uuid);
				} else {
					this.div.setAttribute("data-l10n-args", JSON.stringify({ description: "" }));
					this.div.hidden = true;
					this._uiManager.getSignature(this);
				}
			} else {
				this.div.setAttribute("data-l10n-args", JSON.stringify({ description: this.#description || "" }));
			}
			if (_isCopy) {
				this._isCopy = true;
				this._moveAfterPaste(baseX, baseY);
			}
			return this.div;
		}
		setUuid(uuid) {
			this.#signatureUUID = uuid;
			this.addEditToolbar();
		}
		getUuid() {
			return this.#signatureUUID;
		}
		get description() {
			return this.#description;
		}
		set description(description) {
			this.#description = description;
			if (!this.div) {
				return;
			}
			this.div.setAttribute("data-l10n-args", JSON.stringify({ description }));
			super.addEditToolbar().then((toolbar) => {
				toolbar?.updateEditSignatureButton(description);
			});
		}
		getSignaturePreview() {
			const { newCurves, areContours, thickness, width, height } = this.#signatureData;
			const maxDim = Math.max(width, height);
			const outlineData = SignatureExtractor.processDrawnLines({
				lines: {
					curves: newCurves.map((points) => ({ points })),
					thickness,
					width,
					height
				},
				pageWidth: maxDim,
				pageHeight: maxDim,
				rotation: 0,
				innerMargin: 0,
				mustSmooth: false,
				areContours
			});
			return {
				areContours,
				outline: outlineData.outline
			};
		}
		get toolbarButtons() {
			if (this._uiManager.signatureManager) {
				return [["editSignature", this._uiManager.signatureManager]];
			}
			return super.toolbarButtons;
		}
		addSignature(data, heightInPage, description, uuid) {
			const { x: savedX, y: savedY } = this;
			const { outline } = this.#signatureData = data;
			this.#isExtracted = outline instanceof ContourDrawOutline;
			this.description = description;
			let drawingOptions;
			if (this.#isExtracted) {
				drawingOptions = SignatureEditor.getDefaultDrawingOptions();
			} else {
				drawingOptions = SignatureEditor._defaultDrawnSignatureOptions.clone();
				drawingOptions.updateProperties({ "stroke-width": outline.thickness });
			}
			this._addOutlines({
				drawOutlines: outline,
				drawingOptions
			});
			const [, pageHeight] = this.pageDimensions;
			let newHeight = heightInPage / pageHeight;
			newHeight = newHeight >= 1 ? .5 : newHeight;
			this.width *= newHeight / this.height;
			if (this.width >= 1) {
				newHeight *= .9 / this.width;
				this.width = .9;
			}
			this.height = newHeight;
			this.setDims();
			this.x = savedX;
			this.y = savedY;
			this.center();
			this._onResized();
			this.onScaleChanging();
			this.rotate();
			this._uiManager.addToAnnotationStorage(this);
			this.setUuid(uuid);
			this._reportTelemetry({
				action: "pdfjs.signature.inserted",
				data: {
					hasBeenSaved: !!uuid,
					hasDescription: !!description
				}
			});
			this.div.hidden = false;
		}
		getFromImage(bitmap) {
			const { rawDims: { pageWidth, pageHeight }, rotation } = this.parent.viewport;
			return SignatureExtractor.process(bitmap, pageWidth, pageHeight, rotation, SignatureEditor._INNER_MARGIN);
		}
		getFromText(text$2, fontInfo) {
			const { rawDims: { pageWidth, pageHeight }, rotation } = this.parent.viewport;
			return SignatureExtractor.extractContoursFromText(text$2, fontInfo, pageWidth, pageHeight, rotation, SignatureEditor._INNER_MARGIN);
		}
		getDrawnSignature(curves) {
			const { rawDims: { pageWidth, pageHeight }, rotation } = this.parent.viewport;
			return SignatureExtractor.processDrawnLines({
				lines: curves,
				pageWidth,
				pageHeight,
				rotation,
				innerMargin: SignatureEditor._INNER_MARGIN,
				mustSmooth: false,
				areContours: false
			});
		}
		createDrawingOptions({ areContours, thickness }) {
			if (areContours) {
				this._drawingOptions = SignatureEditor.getDefaultDrawingOptions();
			} else {
				this._drawingOptions = SignatureEditor._defaultDrawnSignatureOptions.clone();
				this._drawingOptions.updateProperties({ "stroke-width": thickness });
			}
		}
		serialize(isForCopying = false) {
			if (this.isEmpty()) {
				return null;
			}
			const { lines, points } = this.serializeDraw(isForCopying);
			const { _drawingOptions: { "stroke-width": thickness } } = this;
			const serialized = Object.assign(super.serialize(isForCopying), {
				isSignature: true,
				areContours: this.#isExtracted,
				color: [
					0,
					0,
					0
				],
				thickness: this.#isExtracted ? 0 : thickness
			});
			this.addComment(serialized);
			if (isForCopying) {
				serialized.paths = {
					lines,
					points
				};
				serialized.uuid = this.#signatureUUID;
				serialized.isCopy = true;
			} else {
				serialized.lines = lines;
			}
			if (this.#description) {
				serialized.accessibilityData = {
					type: "Figure",
					alt: this.#description
				};
			}
			return serialized;
		}
		static deserializeDraw(pageX, pageY, pageWidth, pageHeight, innerMargin, data) {
			if (data.areContours) {
				return ContourDrawOutline.deserialize(pageX, pageY, pageWidth, pageHeight, innerMargin, data);
			}
			return InkDrawOutline.deserialize(pageX, pageY, pageWidth, pageHeight, innerMargin, data);
		}
		static async deserialize(data, parent, uiManager) {
			const editor = await super.deserialize(data, parent, uiManager);
			editor.#isExtracted = data.areContours;
			editor.description = data.accessibilityData?.alt || "";
			editor.#signatureUUID = data.uuid;
			return editor;
		}
	};
	;
	StampEditor = class extends AnnotationEditor {
		#bitmap = null;
		#bitmapId = null;
		#bitmapPromise = null;
		#bitmapUrl = null;
		#bitmapFile = null;
		#bitmapFileName = "";
		#canvas = null;
		#missingCanvas = false;
		#resizeTimeoutId = null;
		#isSvg = false;
		#hasBeenAddedInUndoStack = false;
		static _type = "stamp";
		static _editorType = AnnotationEditorType.STAMP;
		constructor(params) {
			super({
				...params,
				name: "stampEditor"
			});
			this.#bitmapUrl = params.bitmapUrl;
			this.#bitmapFile = params.bitmapFile;
			this.defaultL10nId = "pdfjs-editor-stamp-editor";
		}
		static initialize(l10n, uiManager) {
			AnnotationEditor.initialize(l10n, uiManager);
		}
		static isHandlingMimeForPasting(mime) {
			return SupportedImageMimeTypes.includes(mime);
		}
		static paste(item, parent) {
			parent.pasteEditor({ mode: AnnotationEditorType.STAMP }, { bitmapFile: item.getAsFile() });
		}
		altTextFinish() {
			if (this._uiManager.useNewAltTextFlow) {
				this.div.hidden = false;
			}
			super.altTextFinish();
		}
		get telemetryFinalData() {
			return {
				type: "stamp",
				hasAltText: !!this.altTextData?.altText
			};
		}
		static computeTelemetryFinalData(data) {
			const hasAltTextStats = data.get("hasAltText");
			return {
				hasAltText: hasAltTextStats.get(true) ?? 0,
				hasNoAltText: hasAltTextStats.get(false) ?? 0
			};
		}
		#getBitmapFetched(data, fromId = false) {
			if (!data) {
				this.remove();
				return;
			}
			this.#bitmap = data.bitmap;
			if (!fromId) {
				this.#bitmapId = data.id;
				this.#isSvg = data.isSvg;
			}
			if (data.file) {
				this.#bitmapFileName = data.file.name;
			}
			this.#createCanvas();
		}
		#getBitmapDone() {
			this.#bitmapPromise = null;
			this._uiManager.enableWaiting(false);
			if (!this.#canvas) {
				return;
			}
			if (this._uiManager.useNewAltTextWhenAddingImage && this._uiManager.useNewAltTextFlow && this.#bitmap) {
				this.addEditToolbar().then(() => {
					this._editToolbar.hide();
					this._uiManager.editAltText(this, true);
				});
				return;
			}
			if (!this._uiManager.useNewAltTextWhenAddingImage && this._uiManager.useNewAltTextFlow && this.#bitmap) {
				this._reportTelemetry({
					action: "pdfjs.image.image_added",
					data: {
						alt_text_modal: false,
						alt_text_type: "empty"
					}
				});
				try {
					this.mlGuessAltText();
				} catch {}
			}
			this.div.focus();
		}
		async mlGuessAltText(imageData = null, updateAltTextData = true) {
			if (this.hasAltTextData()) {
				return null;
			}
			const { mlManager } = this._uiManager;
			if (!mlManager) {
				throw new Error("No ML.");
			}
			if (!await mlManager.isEnabledFor("altText")) {
				throw new Error("ML isn't enabled for alt text.");
			}
			const { data, width, height } = imageData || this.copyCanvas(null, null, true).imageData;
			const response = await mlManager.guess({
				name: "altText",
				request: {
					data,
					width,
					height,
					channels: data.length / (width * height)
				}
			});
			if (!response) {
				throw new Error("No response from the AI service.");
			}
			if (response.error) {
				throw new Error("Error from the AI service.");
			}
			if (response.cancel) {
				return null;
			}
			if (!response.output) {
				throw new Error("No valid response from the AI service.");
			}
			const altText = response.output;
			await this.setGuessedAltText(altText);
			if (updateAltTextData && !this.hasAltTextData()) {
				this.altTextData = {
					alt: altText,
					decorative: false
				};
			}
			return altText;
		}
		#getBitmap() {
			if (this.#bitmapId) {
				this._uiManager.enableWaiting(true);
				this._uiManager.imageManager.getFromId(this.#bitmapId).then((data) => this.#getBitmapFetched(data, true)).finally(() => this.#getBitmapDone());
				return;
			}
			if (this.#bitmapUrl) {
				const url = this.#bitmapUrl;
				this.#bitmapUrl = null;
				this._uiManager.enableWaiting(true);
				this.#bitmapPromise = this._uiManager.imageManager.getFromUrl(url).then((data) => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());
				return;
			}
			if (this.#bitmapFile) {
				const file = this.#bitmapFile;
				this.#bitmapFile = null;
				this._uiManager.enableWaiting(true);
				this.#bitmapPromise = this._uiManager.imageManager.getFromFile(file).then((data) => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());
				return;
			}
			const input = document.createElement("input");
			input.type = "file";
			input.accept = SupportedImageMimeTypes.join(",");
			const signal = this._uiManager._signal;
			this.#bitmapPromise = new Promise((resolve) => {
				input.addEventListener("change", async () => {
					if (!input.files || input.files.length === 0) {
						this.remove();
					} else {
						this._uiManager.enableWaiting(true);
						const data = await this._uiManager.imageManager.getFromFile(input.files[0]);
						this._reportTelemetry({
							action: "pdfjs.image.image_selected",
							data: { alt_text_modal: this._uiManager.useNewAltTextFlow }
						});
						this.#getBitmapFetched(data);
					}
					resolve();
				}, { signal });
				input.addEventListener("cancel", () => {
					this.remove();
					resolve();
				}, { signal });
			}).finally(() => this.#getBitmapDone());
			input.click();
		}
		remove() {
			if (this.#bitmapId) {
				this.#bitmap = null;
				this._uiManager.imageManager.deleteId(this.#bitmapId);
				this.#canvas?.remove();
				this.#canvas = null;
				if (this.#resizeTimeoutId) {
					clearTimeout(this.#resizeTimeoutId);
					this.#resizeTimeoutId = null;
				}
			}
			super.remove();
		}
		rebuild() {
			if (!this.parent) {
				if (this.#bitmapId) {
					this.#getBitmap();
				}
				return;
			}
			super.rebuild();
			if (this.div === null) {
				return;
			}
			if (this.#bitmapId && this.#canvas === null) {
				this.#getBitmap();
			}
			if (!this.isAttachedToDOM) {
				this.parent.add(this);
			}
		}
		onceAdded(focus) {
			this._isDraggable = true;
			if (focus) {
				this.div.focus();
			}
		}
		isEmpty() {
			return !(this.#bitmapPromise || this.#bitmap || this.#bitmapUrl || this.#bitmapFile || this.#bitmapId || this.#missingCanvas);
		}
		get toolbarButtons() {
			return [["altText", this.createAltText()]];
		}
		get isResizable() {
			return true;
		}
		render() {
			if (this.div) {
				return this.div;
			}
			let baseX, baseY;
			if (this._isCopy) {
				baseX = this.x;
				baseY = this.y;
			}
			super.render();
			this.div.hidden = true;
			this.createAltText();
			if (!this.#missingCanvas) {
				if (this.#bitmap) {
					this.#createCanvas();
				} else {
					this.#getBitmap();
				}
			}
			if (this._isCopy) {
				this._moveAfterPaste(baseX, baseY);
			}
			this._uiManager.addShouldRescale(this);
			return this.div;
		}
		setCanvas(annotationElementId, canvas) {
			const { id: bitmapId, bitmap } = this._uiManager.imageManager.getFromCanvas(annotationElementId, canvas);
			canvas.remove();
			if (bitmapId && this._uiManager.imageManager.isValidId(bitmapId)) {
				this.#bitmapId = bitmapId;
				if (bitmap) {
					this.#bitmap = bitmap;
				}
				this.#missingCanvas = false;
				this.#createCanvas();
			}
		}
		_onResized() {
			this.onScaleChanging();
		}
		onScaleChanging() {
			if (!this.parent) {
				return;
			}
			if (this.#resizeTimeoutId !== null) {
				clearTimeout(this.#resizeTimeoutId);
			}
			const TIME_TO_WAIT = 200;
			this.#resizeTimeoutId = setTimeout(() => {
				this.#resizeTimeoutId = null;
				this.#drawBitmap();
			}, TIME_TO_WAIT);
		}
		#createCanvas() {
			const { div } = this;
			let { width, height } = this.#bitmap;
			const [pageWidth, pageHeight] = this.pageDimensions;
			const MAX_RATIO = .75;
			if (this.width) {
				width = this.width * pageWidth;
				height = this.height * pageHeight;
			} else if (width > MAX_RATIO * pageWidth || height > MAX_RATIO * pageHeight) {
				const factor = Math.min(MAX_RATIO * pageWidth / width, MAX_RATIO * pageHeight / height);
				width *= factor;
				height *= factor;
			}
			this._uiManager.enableWaiting(false);
			const canvas = this.#canvas = document.createElement("canvas");
			canvas.setAttribute("role", "img");
			this.addContainer(canvas);
			this.width = width / pageWidth;
			this.height = height / pageHeight;
			this.setDims();
			if (this._initialOptions?.isCentered) {
				this.center();
			} else {
				this.fixAndSetPosition();
			}
			this._initialOptions = null;
			if (!this._uiManager.useNewAltTextWhenAddingImage || !this._uiManager.useNewAltTextFlow || this.annotationElementId) {
				div.hidden = false;
			}
			this.#drawBitmap();
			if (!this.#hasBeenAddedInUndoStack) {
				this.parent.addUndoableEditor(this);
				this.#hasBeenAddedInUndoStack = true;
			}
			this._reportTelemetry({ action: "inserted_image" });
			if (this.#bitmapFileName) {
				this.div.setAttribute("aria-description", this.#bitmapFileName);
			}
			if (!this.annotationElementId) {
				this._uiManager.a11yAlert("pdfjs-editor-stamp-added-alert");
			}
		}
		copyCanvas(maxDataDimension, maxPreviewDimension, createImageData = false) {
			if (!maxDataDimension) {
				maxDataDimension = 224;
			}
			const { width: bitmapWidth, height: bitmapHeight } = this.#bitmap;
			const outputScale = new OutputScale();
			let bitmap = this.#bitmap;
			let width = bitmapWidth, height = bitmapHeight;
			let canvas = null;
			if (maxPreviewDimension) {
				if (bitmapWidth > maxPreviewDimension || bitmapHeight > maxPreviewDimension) {
					const ratio = Math.min(maxPreviewDimension / bitmapWidth, maxPreviewDimension / bitmapHeight);
					width = Math.floor(bitmapWidth * ratio);
					height = Math.floor(bitmapHeight * ratio);
				}
				canvas = document.createElement("canvas");
				const scaledWidth = canvas.width = Math.ceil(width * outputScale.sx);
				const scaledHeight = canvas.height = Math.ceil(height * outputScale.sy);
				if (!this.#isSvg) {
					bitmap = this.#scaleBitmap(scaledWidth, scaledHeight);
				}
				const ctx = canvas.getContext("2d");
				ctx.filter = this._uiManager.hcmFilter;
				let white = "white", black = "#cfcfd8";
				if (this._uiManager.hcmFilter !== "none") {
					black = "black";
				} else if (ColorScheme.isDarkMode) {
					white = "#8f8f9d";
					black = "#42414d";
				}
				const boxDim = 15;
				const boxDimWidth = boxDim * outputScale.sx;
				const boxDimHeight = boxDim * outputScale.sy;
				const pattern = new OffscreenCanvas(boxDimWidth * 2, boxDimHeight * 2);
				const patternCtx = pattern.getContext("2d");
				patternCtx.fillStyle = white;
				patternCtx.fillRect(0, 0, boxDimWidth * 2, boxDimHeight * 2);
				patternCtx.fillStyle = black;
				patternCtx.fillRect(0, 0, boxDimWidth, boxDimHeight);
				patternCtx.fillRect(boxDimWidth, boxDimHeight, boxDimWidth, boxDimHeight);
				ctx.fillStyle = ctx.createPattern(pattern, "repeat");
				ctx.fillRect(0, 0, scaledWidth, scaledHeight);
				ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, scaledWidth, scaledHeight);
			}
			let imageData = null;
			if (createImageData) {
				let dataWidth, dataHeight;
				if (outputScale.symmetric && bitmap.width < maxDataDimension && bitmap.height < maxDataDimension) {
					dataWidth = bitmap.width;
					dataHeight = bitmap.height;
				} else {
					bitmap = this.#bitmap;
					if (bitmapWidth > maxDataDimension || bitmapHeight > maxDataDimension) {
						const ratio = Math.min(maxDataDimension / bitmapWidth, maxDataDimension / bitmapHeight);
						dataWidth = Math.floor(bitmapWidth * ratio);
						dataHeight = Math.floor(bitmapHeight * ratio);
						if (!this.#isSvg) {
							bitmap = this.#scaleBitmap(dataWidth, dataHeight);
						}
					}
				}
				const offscreen = new OffscreenCanvas(dataWidth, dataHeight);
				const offscreenCtx = offscreen.getContext("2d", { willReadFrequently: true });
				offscreenCtx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, dataWidth, dataHeight);
				imageData = {
					width: dataWidth,
					height: dataHeight,
					data: offscreenCtx.getImageData(0, 0, dataWidth, dataHeight).data
				};
			}
			return {
				canvas,
				width,
				height,
				imageData
			};
		}
		#scaleBitmap(width, height) {
			const { width: bitmapWidth, height: bitmapHeight } = this.#bitmap;
			let newWidth = bitmapWidth;
			let newHeight = bitmapHeight;
			let bitmap = this.#bitmap;
			while (newWidth > 2 * width || newHeight > 2 * height) {
				const prevWidth = newWidth;
				const prevHeight = newHeight;
				if (newWidth > 2 * width) {
					newWidth = newWidth >= 16384 ? Math.floor(newWidth / 2) - 1 : Math.ceil(newWidth / 2);
				}
				if (newHeight > 2 * height) {
					newHeight = newHeight >= 16384 ? Math.floor(newHeight / 2) - 1 : Math.ceil(newHeight / 2);
				}
				const offscreen = new OffscreenCanvas(newWidth, newHeight);
				const ctx = offscreen.getContext("2d");
				ctx.drawImage(bitmap, 0, 0, prevWidth, prevHeight, 0, 0, newWidth, newHeight);
				bitmap = offscreen.transferToImageBitmap();
			}
			return bitmap;
		}
		#drawBitmap() {
			const [parentWidth, parentHeight] = this.parentDimensions;
			const { width, height } = this;
			const outputScale = new OutputScale();
			const scaledWidth = Math.ceil(width * parentWidth * outputScale.sx);
			const scaledHeight = Math.ceil(height * parentHeight * outputScale.sy);
			const canvas = this.#canvas;
			if (!canvas || canvas.width === scaledWidth && canvas.height === scaledHeight) {
				return;
			}
			canvas.width = scaledWidth;
			canvas.height = scaledHeight;
			const bitmap = this.#isSvg ? this.#bitmap : this.#scaleBitmap(scaledWidth, scaledHeight);
			const ctx = canvas.getContext("2d");
			ctx.filter = this._uiManager.hcmFilter;
			ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, scaledWidth, scaledHeight);
		}
		#serializeBitmap(toUrl) {
			if (toUrl) {
				if (this.#isSvg) {
					const url = this._uiManager.imageManager.getSvgUrl(this.#bitmapId);
					if (url) {
						return url;
					}
				}
				const canvas = document.createElement("canvas");
				({width: canvas.width, height: canvas.height} = this.#bitmap);
				const ctx = canvas.getContext("2d");
				ctx.drawImage(this.#bitmap, 0, 0);
				return canvas.toDataURL();
			}
			if (this.#isSvg) {
				const [pageWidth, pageHeight] = this.pageDimensions;
				const width = Math.round(this.width * pageWidth * PixelsPerInch.PDF_TO_CSS_UNITS);
				const height = Math.round(this.height * pageHeight * PixelsPerInch.PDF_TO_CSS_UNITS);
				const offscreen = new OffscreenCanvas(width, height);
				const ctx = offscreen.getContext("2d");
				ctx.drawImage(this.#bitmap, 0, 0, this.#bitmap.width, this.#bitmap.height, 0, 0, width, height);
				return offscreen.transferToImageBitmap();
			}
			return structuredClone(this.#bitmap);
		}
		static async deserialize(data, parent, uiManager) {
			let initialData = null;
			let missingCanvas = false;
			if (data instanceof StampAnnotationElement) {
				const { data: { rect: rect$1, rotation, id, structParent, popupRef, richText, contentsObj, creationDate, modificationDate }, container, parent: { page: { pageNumber } }, canvas } = data;
				let bitmapId$1, bitmap$1;
				if (canvas) {
					delete data.canvas;
					({id: bitmapId$1, bitmap: bitmap$1} = uiManager.imageManager.getFromCanvas(container.id, canvas));
					canvas.remove();
				} else {
					missingCanvas = true;
					data._hasNoCanvas = true;
				}
				const altText = (await parent._structTree.getAriaAttributes(`${AnnotationPrefix}${id}`))?.get("aria-label") || "";
				initialData = data = {
					annotationType: AnnotationEditorType.STAMP,
					bitmapId: bitmapId$1,
					bitmap: bitmap$1,
					pageIndex: pageNumber - 1,
					rect: rect$1.slice(0),
					rotation,
					annotationElementId: id,
					id,
					deleted: false,
					accessibilityData: {
						decorative: false,
						altText
					},
					isSvg: false,
					structParent,
					popupRef,
					richText,
					comment: contentsObj?.str || null,
					creationDate,
					modificationDate
				};
			}
			const editor = await super.deserialize(data, parent, uiManager);
			const { rect, bitmap, bitmapUrl, bitmapId, isSvg, accessibilityData } = data;
			if (missingCanvas) {
				uiManager.addMissingCanvas(data.id, editor);
				editor.#missingCanvas = true;
			} else if (bitmapId && uiManager.imageManager.isValidId(bitmapId)) {
				editor.#bitmapId = bitmapId;
				if (bitmap) {
					editor.#bitmap = bitmap;
				}
			} else {
				editor.#bitmapUrl = bitmapUrl;
			}
			editor.#isSvg = isSvg;
			const [parentWidth, parentHeight] = editor.pageDimensions;
			editor.width = (rect[2] - rect[0]) / parentWidth;
			editor.height = (rect[3] - rect[1]) / parentHeight;
			if (accessibilityData) {
				editor.altTextData = accessibilityData;
			}
			editor._initialData = initialData;
			if (data.comment) {
				editor.setCommentData(data);
			}
			editor.#hasBeenAddedInUndoStack = !!initialData;
			return editor;
		}
		serialize(isForCopying = false, context = null) {
			if (this.isEmpty()) {
				return null;
			}
			if (this.deleted) {
				return this.serializeDeleted();
			}
			const serialized = Object.assign(super.serialize(isForCopying), {
				bitmapId: this.#bitmapId,
				isSvg: this.#isSvg
			});
			this.addComment(serialized);
			if (isForCopying) {
				serialized.bitmapUrl = this.#serializeBitmap(true);
				serialized.accessibilityData = this.serializeAltText(true);
				serialized.isCopy = true;
				return serialized;
			}
			const { decorative, altText } = this.serializeAltText(false);
			if (!decorative && altText) {
				serialized.accessibilityData = {
					type: "Figure",
					alt: altText
				};
			}
			if (this.annotationElementId) {
				const changes = this.#hasElementChanged(serialized);
				if (changes.isSame) {
					return null;
				}
				if (changes.isSameAltText) {
					delete serialized.accessibilityData;
				} else {
					serialized.accessibilityData.structParent = this._initialData.structParent ?? -1;
				}
				serialized.id = this.annotationElementId;
				delete serialized.bitmapId;
				return serialized;
			}
			if (context === null) {
				return serialized;
			}
			context.stamps ||= new Map();
			const area = this.#isSvg ? (serialized.rect[2] - serialized.rect[0]) * (serialized.rect[3] - serialized.rect[1]) : null;
			if (!context.stamps.has(this.#bitmapId)) {
				context.stamps.set(this.#bitmapId, {
					area,
					serialized
				});
				serialized.bitmap = this.#serializeBitmap(false);
			} else if (this.#isSvg) {
				const prevData = context.stamps.get(this.#bitmapId);
				if (area > prevData.area) {
					prevData.area = area;
					prevData.serialized.bitmap.close();
					prevData.serialized.bitmap = this.#serializeBitmap(false);
				}
			}
			return serialized;
		}
		#hasElementChanged(serialized) {
			const { pageIndex, accessibilityData: { altText } } = this._initialData;
			const isSamePageIndex = serialized.pageIndex === pageIndex;
			const isSameAltText = (serialized.accessibilityData?.alt || "") === altText;
			return {
				isSame: !this.hasEditedComment && !this._hasBeenMoved && !this._hasBeenResized && isSamePageIndex && isSameAltText,
				isSameAltText
			};
		}
		renderAnnotationElement(annotation) {
			if (this.deleted) {
				annotation.hide();
				return null;
			}
			annotation.updateEdited({
				rect: this.getPDFRect(),
				popup: this.comment
			});
			return null;
		}
	};
	;
	AnnotationEditorLayer = class AnnotationEditorLayer {
		#accessibilityManager;
		#allowClick = false;
		#annotationLayer = null;
		#clickAC = null;
		#editorFocusTimeoutId = null;
		#editors = new Map();
		#hadPointerDown = false;
		#isDisabling = false;
		#isEnabling = false;
		#drawingAC = null;
		#focusedElement = null;
		#textLayer = null;
		#textSelectionAC = null;
		#textLayerDblClickAC = null;
		#lastPointerDownTimestamp = -1;
		#uiManager;
		static _initialized = false;
		static #editorTypes = new Map([
			FreeTextEditor,
			InkEditor,
			StampEditor,
			HighlightEditor,
			SignatureEditor
		].map((type) => [type._editorType, type]));
		constructor({ uiManager, pageIndex, div, structTreeLayer, accessibilityManager, annotationLayer, drawLayer, textLayer, viewport, l10n }) {
			const editorTypes = [...AnnotationEditorLayer.#editorTypes.values()];
			if (!AnnotationEditorLayer._initialized) {
				AnnotationEditorLayer._initialized = true;
				for (const editorType of editorTypes) {
					editorType.initialize(l10n, uiManager);
				}
			}
			uiManager.registerEditorTypes(editorTypes);
			this.#uiManager = uiManager;
			this.pageIndex = pageIndex;
			this.div = div;
			this.#accessibilityManager = accessibilityManager;
			this.#annotationLayer = annotationLayer;
			this.viewport = viewport;
			this.#textLayer = textLayer;
			this.drawLayer = drawLayer;
			this._structTree = structTreeLayer;
			this.#uiManager.addLayer(this);
		}
		get isEmpty() {
			return this.#editors.size === 0;
		}
		get isInvisible() {
			return this.isEmpty && this.#uiManager.getMode() === AnnotationEditorType.NONE;
		}
		updateToolbar(options) {
			this.#uiManager.updateToolbar(options);
		}
		updateMode(mode = this.#uiManager.getMode()) {
			this.#cleanup();
			switch (mode) {
				case AnnotationEditorType.NONE:
					this.div.classList.toggle("nonEditing", true);
					this.disableTextSelection();
					this.togglePointerEvents(false);
					this.toggleAnnotationLayerPointerEvents(true);
					this.disableClick();
					return;
				case AnnotationEditorType.INK:
					this.disableTextSelection();
					this.togglePointerEvents(true);
					this.enableClick();
					break;
				case AnnotationEditorType.HIGHLIGHT:
					this.enableTextSelection();
					this.togglePointerEvents(false);
					this.disableClick();
					break;
				default:
					this.disableTextSelection();
					this.togglePointerEvents(true);
					this.enableClick();
			}
			this.toggleAnnotationLayerPointerEvents(false);
			const { classList } = this.div;
			classList.toggle("nonEditing", false);
			if (mode === AnnotationEditorType.POPUP) {
				classList.toggle("commentEditing", true);
			} else {
				classList.toggle("commentEditing", false);
				for (const editorType of AnnotationEditorLayer.#editorTypes.values()) {
					classList.toggle(`${editorType._type}Editing`, mode === editorType._editorType);
				}
			}
			this.div.hidden = false;
		}
		hasTextLayer(textLayer) {
			return textLayer === this.#textLayer?.div;
		}
		setEditingState(isEditing) {
			this.#uiManager.setEditingState(isEditing);
		}
		addCommands(params) {
			this.#uiManager.addCommands(params);
		}
		cleanUndoStack(type) {
			this.#uiManager.cleanUndoStack(type);
		}
		toggleDrawing(enabled = false) {
			this.div.classList.toggle("drawing", !enabled);
		}
		togglePointerEvents(enabled = false) {
			this.div.classList.toggle("disabled", !enabled);
		}
		toggleAnnotationLayerPointerEvents(enabled = false) {
			this.#annotationLayer?.togglePointerEvents(enabled);
		}
		get #allEditorsIterator() {
			return this.#editors.size !== 0 ? this.#editors.values() : this.#uiManager.getEditors(this.pageIndex);
		}
		async enable() {
			this.#isEnabling = true;
			this.div.tabIndex = 0;
			this.togglePointerEvents(true);
			this.div.classList.toggle("nonEditing", false);
			this.#textLayerDblClickAC?.abort();
			this.#textLayerDblClickAC = null;
			const annotationElementIds = new Set();
			for (const editor of this.#allEditorsIterator) {
				editor.enableEditing();
				editor.show(true);
				if (editor.annotationElementId) {
					this.#uiManager.removeChangedExistingAnnotation(editor);
					annotationElementIds.add(editor.annotationElementId);
				}
			}
			const annotationLayer = this.#annotationLayer;
			if (annotationLayer) {
				for (const editable of annotationLayer.getEditableAnnotations()) {
					editable.hide();
					if (this.#uiManager.isDeletedAnnotationElement(editable.data.id)) {
						continue;
					}
					if (annotationElementIds.has(editable.data.id)) {
						continue;
					}
					const editor = await this.deserialize(editable);
					if (!editor) {
						continue;
					}
					this.addOrRebuild(editor);
					editor.enableEditing();
				}
			}
			this.#isEnabling = false;
			this.#uiManager._eventBus.dispatch("editorsrendered", {
				source: this,
				pageNumber: this.pageIndex + 1
			});
		}
		disable() {
			this.#isDisabling = true;
			this.div.tabIndex = -1;
			this.togglePointerEvents(false);
			this.div.classList.toggle("nonEditing", true);
			if (this.#textLayer && !this.#textLayerDblClickAC) {
				this.#textLayerDblClickAC = new AbortController();
				const signal = this.#uiManager.combinedSignal(this.#textLayerDblClickAC);
				this.#textLayer.div.addEventListener("pointerdown", (e$10) => {
					const DBL_CLICK_THRESHOLD = 500;
					const { clientX, clientY, timeStamp } = e$10;
					const lastPointerDownTimestamp = this.#lastPointerDownTimestamp;
					if (timeStamp - lastPointerDownTimestamp > DBL_CLICK_THRESHOLD) {
						this.#lastPointerDownTimestamp = timeStamp;
						return;
					}
					this.#lastPointerDownTimestamp = -1;
					const { classList: classList$1 } = this.div;
					classList$1.toggle("getElements", true);
					const elements = document.elementsFromPoint(clientX, clientY);
					classList$1.toggle("getElements", false);
					if (!this.div.contains(elements[0])) {
						return;
					}
					let id;
					const regex = new RegExp(`^${AnnotationEditorPrefix}[0-9]+$`);
					for (const element of elements) {
						if (regex.test(element.id)) {
							id = element.id;
							break;
						}
					}
					if (!id) {
						return;
					}
					const editor = this.#editors.get(id);
					if (editor?.annotationElementId === null) {
						e$10.stopPropagation();
						e$10.preventDefault();
						editor.dblclick(e$10);
					}
				}, {
					signal,
					capture: true
				});
			}
			const annotationLayer = this.#annotationLayer;
			const needFakeAnnotation = [];
			if (annotationLayer) {
				const changedAnnotations = new Map();
				const resetAnnotations = new Map();
				for (const editor of this.#allEditorsIterator) {
					editor.disableEditing();
					if (!editor.annotationElementId) {
						needFakeAnnotation.push(editor);
						continue;
					}
					if (editor.serialize() !== null) {
						changedAnnotations.set(editor.annotationElementId, editor);
						continue;
					} else {
						resetAnnotations.set(editor.annotationElementId, editor);
					}
					this.getEditableAnnotation(editor.annotationElementId)?.show();
					editor.remove();
				}
				const editables = annotationLayer.getEditableAnnotations();
				for (const editable of editables) {
					const { id } = editable.data;
					if (this.#uiManager.isDeletedAnnotationElement(id)) {
						editable.updateEdited({ deleted: true });
						continue;
					}
					let editor = resetAnnotations.get(id);
					if (editor) {
						editor.resetAnnotationElement(editable);
						editor.show(false);
						editable.show();
						continue;
					}
					editor = changedAnnotations.get(id);
					if (editor) {
						this.#uiManager.addChangedExistingAnnotation(editor);
						if (editor.renderAnnotationElement(editable)) {
							editor.show(false);
						}
					}
					editable.show();
				}
			}
			this.#cleanup();
			if (this.isEmpty) {
				this.div.hidden = true;
			}
			const { classList } = this.div;
			for (const editorType of AnnotationEditorLayer.#editorTypes.values()) {
				classList.remove(`${editorType._type}Editing`);
			}
			this.disableTextSelection();
			this.toggleAnnotationLayerPointerEvents(true);
			annotationLayer?.updateFakeAnnotations(needFakeAnnotation);
			this.#isDisabling = false;
		}
		getEditableAnnotation(id) {
			return this.#annotationLayer?.getEditableAnnotation(id) || null;
		}
		setActiveEditor(editor) {
			const currentActive = this.#uiManager.getActive();
			if (currentActive === editor) {
				return;
			}
			this.#uiManager.setActiveEditor(editor);
		}
		enableTextSelection() {
			this.div.tabIndex = -1;
			if (this.#textLayer?.div && !this.#textSelectionAC) {
				this.#textSelectionAC = new AbortController();
				const signal = this.#uiManager.combinedSignal(this.#textSelectionAC);
				this.#textLayer.div.addEventListener("pointerdown", this.#textLayerPointerDown.bind(this), { signal });
				this.#textLayer.div.classList.add("highlighting");
			}
		}
		disableTextSelection() {
			this.div.tabIndex = 0;
			if (this.#textLayer?.div && this.#textSelectionAC) {
				this.#textSelectionAC.abort();
				this.#textSelectionAC = null;
				this.#textLayer.div.classList.remove("highlighting");
			}
		}
		#textLayerPointerDown(event) {
			this.#uiManager.unselectAll();
			const { target } = event;
			if (target === this.#textLayer.div || (target.getAttribute("role") === "img" || target.classList.contains("endOfContent")) && this.#textLayer.div.contains(target)) {
				const { isMac } = util_FeatureTest.platform;
				if (event.button !== 0 || event.ctrlKey && isMac) {
					return;
				}
				this.#uiManager.showAllEditors("highlight", true, true);
				this.#textLayer.div.classList.add("free");
				this.toggleDrawing();
				HighlightEditor.startHighlighting(this, this.#uiManager.direction === "ltr", {
					target: this.#textLayer.div,
					x: event.x,
					y: event.y
				});
				this.#textLayer.div.addEventListener("pointerup", () => {
					this.#textLayer.div.classList.remove("free");
					this.toggleDrawing(true);
				}, {
					once: true,
					signal: this.#uiManager._signal
				});
				event.preventDefault();
			}
		}
		enableClick() {
			if (this.#clickAC) {
				return;
			}
			this.#clickAC = new AbortController();
			const signal = this.#uiManager.combinedSignal(this.#clickAC);
			this.div.addEventListener("pointerdown", this.pointerdown.bind(this), { signal });
			const pointerup = this.pointerup.bind(this);
			this.div.addEventListener("pointerup", pointerup, { signal });
			this.div.addEventListener("pointercancel", pointerup, { signal });
		}
		disableClick() {
			this.#clickAC?.abort();
			this.#clickAC = null;
		}
		attach(editor) {
			this.#editors.set(editor.id, editor);
			const { annotationElementId } = editor;
			if (annotationElementId && this.#uiManager.isDeletedAnnotationElement(annotationElementId)) {
				this.#uiManager.removeDeletedAnnotationElement(editor);
			}
		}
		detach(editor) {
			this.#editors.delete(editor.id);
			this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);
			if (!this.#isDisabling && editor.annotationElementId) {
				this.#uiManager.addDeletedAnnotationElement(editor);
			}
		}
		remove(editor) {
			this.detach(editor);
			this.#uiManager.removeEditor(editor);
			editor.div.remove();
			editor.isAttachedToDOM = false;
		}
		changeParent(editor) {
			if (editor.parent === this) {
				return;
			}
			if (editor.parent && editor.annotationElementId) {
				this.#uiManager.addDeletedAnnotationElement(editor.annotationElementId);
				AnnotationEditor.deleteAnnotationElement(editor);
				editor.annotationElementId = null;
			}
			this.attach(editor);
			editor.parent?.detach(editor);
			editor.setParent(this);
			if (editor.div && editor.isAttachedToDOM) {
				editor.div.remove();
				this.div.append(editor.div);
			}
		}
		add(editor) {
			if (editor.parent === this && editor.isAttachedToDOM) {
				return;
			}
			this.changeParent(editor);
			this.#uiManager.addEditor(editor);
			this.attach(editor);
			if (!editor.isAttachedToDOM) {
				const div = editor.render();
				this.div.append(div);
				editor.isAttachedToDOM = true;
			}
			editor.fixAndSetPosition();
			editor.onceAdded(!this.#isEnabling);
			this.#uiManager.addToAnnotationStorage(editor);
			editor._reportTelemetry(editor.telemetryInitialData);
		}
		moveEditorInDOM(editor) {
			if (!editor.isAttachedToDOM) {
				return;
			}
			const { activeElement } = document;
			if (editor.div.contains(activeElement) && !this.#editorFocusTimeoutId) {
				editor._focusEventsAllowed = false;
				this.#editorFocusTimeoutId = setTimeout(() => {
					this.#editorFocusTimeoutId = null;
					if (!editor.div.contains(document.activeElement)) {
						editor.div.addEventListener("focusin", () => {
							editor._focusEventsAllowed = true;
						}, {
							once: true,
							signal: this.#uiManager._signal
						});
						activeElement.focus();
					} else {
						editor._focusEventsAllowed = true;
					}
				}, 0);
			}
			editor._structTreeParentId = this.#accessibilityManager?.moveElementInDOM(this.div, editor.div, editor.contentDiv, true);
		}
		addOrRebuild(editor) {
			if (editor.needsToBeRebuilt()) {
				editor.parent ||= this;
				editor.rebuild();
				editor.show();
			} else {
				this.add(editor);
			}
		}
		addUndoableEditor(editor) {
			const cmd = () => editor._uiManager.rebuild(editor);
			const undo = () => {
				editor.remove();
			};
			this.addCommands({
				cmd,
				undo,
				mustExec: false
			});
		}
		getEditorByUID(uid) {
			for (const editor of this.#editors.values()) {
				if (editor.uid === uid) {
					return editor;
				}
			}
			return null;
		}
		getNextId() {
			return this.#uiManager.getId();
		}
		get #currentEditorType() {
			return AnnotationEditorLayer.#editorTypes.get(this.#uiManager.getMode());
		}
		combinedSignal(ac) {
			return this.#uiManager.combinedSignal(ac);
		}
		#createNewEditor(params) {
			const editorType = this.#currentEditorType;
			return editorType ? new editorType.prototype.constructor(params) : null;
		}
		canCreateNewEmptyEditor() {
			return this.#currentEditorType?.canCreateNewEmptyEditor();
		}
		async pasteEditor(options, params) {
			this.updateToolbar(options);
			await this.#uiManager.updateMode(options.mode);
			const { offsetX, offsetY } = this.#getCenterPoint();
			const id = this.getNextId();
			const editor = this.#createNewEditor({
				parent: this,
				id,
				x: offsetX,
				y: offsetY,
				uiManager: this.#uiManager,
				isCentered: true,
				...params
			});
			if (editor) {
				this.add(editor);
			}
		}
		async deserialize(data) {
			return await AnnotationEditorLayer.#editorTypes.get(data.annotationType ?? data.annotationEditorType)?.deserialize(data, this, this.#uiManager) || null;
		}
		createAndAddNewEditor(event, isCentered, data = {}) {
			const id = this.getNextId();
			const editor = this.#createNewEditor({
				parent: this,
				id,
				x: event.offsetX,
				y: event.offsetY,
				uiManager: this.#uiManager,
				isCentered,
				...data
			});
			if (editor) {
				this.add(editor);
			}
			return editor;
		}
		get boundingClientRect() {
			return this.div.getBoundingClientRect();
		}
		#getCenterPoint() {
			const { x: x$2, y: y$3, width, height } = this.boundingClientRect;
			const tlX = Math.max(0, x$2);
			const tlY = Math.max(0, y$3);
			const brX = Math.min(window.innerWidth, x$2 + width);
			const brY = Math.min(window.innerHeight, y$3 + height);
			const centerX = (tlX + brX) / 2 - x$2;
			const centerY = (tlY + brY) / 2 - y$3;
			const [offsetX, offsetY] = this.viewport.rotation % 180 === 0 ? [centerX, centerY] : [centerY, centerX];
			return {
				offsetX,
				offsetY
			};
		}
		addNewEditor(data = {}) {
			this.createAndAddNewEditor(this.#getCenterPoint(), true, data);
		}
		setSelected(editor) {
			this.#uiManager.setSelected(editor);
		}
		toggleSelected(editor) {
			this.#uiManager.toggleSelected(editor);
		}
		unselect(editor) {
			this.#uiManager.unselect(editor);
		}
		pointerup(event) {
			const { isMac } = util_FeatureTest.platform;
			if (event.button !== 0 || event.ctrlKey && isMac) {
				return;
			}
			if (event.target !== this.div) {
				return;
			}
			if (!this.#hadPointerDown) {
				return;
			}
			this.#hadPointerDown = false;
			if (this.#currentEditorType?.isDrawer && this.#currentEditorType.supportMultipleDrawings) {
				return;
			}
			if (!this.#allowClick) {
				this.#allowClick = true;
				return;
			}
			const currentMode = this.#uiManager.getMode();
			if (currentMode === AnnotationEditorType.STAMP || currentMode === AnnotationEditorType.SIGNATURE) {
				this.#uiManager.unselectAll();
				return;
			}
			this.createAndAddNewEditor(event, false);
		}
		pointerdown(event) {
			if (this.#uiManager.getMode() === AnnotationEditorType.HIGHLIGHT) {
				this.enableTextSelection();
			}
			if (this.#hadPointerDown) {
				this.#hadPointerDown = false;
				return;
			}
			const { isMac } = util_FeatureTest.platform;
			if (event.button !== 0 || event.ctrlKey && isMac) {
				return;
			}
			if (event.target !== this.div) {
				return;
			}
			this.#hadPointerDown = true;
			if (this.#currentEditorType?.isDrawer) {
				this.startDrawingSession(event);
				return;
			}
			const editor = this.#uiManager.getActive();
			this.#allowClick = !editor || editor.isEmpty();
		}
		startDrawingSession(event) {
			this.div.focus({ preventScroll: true });
			if (this.#drawingAC) {
				this.#currentEditorType.startDrawing(this, this.#uiManager, false, event);
				return;
			}
			this.#uiManager.setCurrentDrawingSession(this);
			this.#drawingAC = new AbortController();
			const signal = this.#uiManager.combinedSignal(this.#drawingAC);
			this.div.addEventListener("blur", ({ relatedTarget }) => {
				if (relatedTarget && !this.div.contains(relatedTarget)) {
					this.#focusedElement = null;
					this.commitOrRemove();
				}
			}, { signal });
			this.#currentEditorType.startDrawing(this, this.#uiManager, false, event);
		}
		pause(on) {
			if (on) {
				const { activeElement } = document;
				if (this.div.contains(activeElement)) {
					this.#focusedElement = activeElement;
				}
				return;
			}
			if (this.#focusedElement) {
				setTimeout(() => {
					this.#focusedElement?.focus();
					this.#focusedElement = null;
				}, 0);
			}
		}
		endDrawingSession(isAborted = false) {
			if (!this.#drawingAC) {
				return null;
			}
			this.#uiManager.setCurrentDrawingSession(null);
			this.#drawingAC.abort();
			this.#drawingAC = null;
			this.#focusedElement = null;
			return this.#currentEditorType.endDrawing(isAborted);
		}
		findNewParent(editor, x$2, y$3) {
			const layer = this.#uiManager.findParent(x$2, y$3);
			if (layer === null || layer === this) {
				return false;
			}
			layer.changeParent(editor);
			return true;
		}
		commitOrRemove() {
			if (this.#drawingAC) {
				this.endDrawingSession();
				return true;
			}
			return false;
		}
		onScaleChanging() {
			if (!this.#drawingAC) {
				return;
			}
			this.#currentEditorType.onScaleChangingWhenDrawing(this);
		}
		destroy() {
			this.commitOrRemove();
			if (this.#uiManager.getActive()?.parent === this) {
				this.#uiManager.commitOrRemove();
				this.#uiManager.setActiveEditor(null);
			}
			if (this.#editorFocusTimeoutId) {
				clearTimeout(this.#editorFocusTimeoutId);
				this.#editorFocusTimeoutId = null;
			}
			for (const editor of this.#editors.values()) {
				this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);
				editor.setParent(null);
				editor.isAttachedToDOM = false;
				editor.div.remove();
			}
			this.div = null;
			this.#editors.clear();
			this.#uiManager.removeLayer(this);
		}
		#cleanup() {
			for (const editor of this.#editors.values()) {
				if (editor.isEmpty()) {
					editor.remove();
				}
			}
		}
		render({ viewport }) {
			this.viewport = viewport;
			setLayerDimensions(this.div, viewport);
			for (const editor of this.#uiManager.getEditors(this.pageIndex)) {
				this.add(editor);
				editor.rebuild();
			}
			this.updateMode();
		}
		update({ viewport }) {
			this.#uiManager.commitOrRemove();
			this.#cleanup();
			const oldRotation = this.viewport.rotation;
			const rotation = viewport.rotation;
			this.viewport = viewport;
			setLayerDimensions(this.div, { rotation });
			if (oldRotation !== rotation) {
				for (const editor of this.#editors.values()) {
					editor.rotate(rotation);
				}
			}
		}
		get pageDimensions() {
			const { pageWidth, pageHeight } = this.viewport.rawDims;
			return [pageWidth, pageHeight];
		}
		get scale() {
			return this.#uiManager.viewParameters.realScale;
		}
	};
	;
	DrawLayer = class DrawLayer {
		#parent = null;
		#mapping = new Map();
		#toUpdate = new Map();
		static #id = 0;
		constructor({ pageIndex }) {
			this.pageIndex = pageIndex;
		}
		setParent(parent) {
			if (!this.#parent) {
				this.#parent = parent;
				return;
			}
			if (this.#parent !== parent) {
				if (this.#mapping.size > 0) {
					for (const root of this.#mapping.values()) {
						root.remove();
						parent.append(root);
					}
				}
				this.#parent = parent;
			}
		}
		static get _svgFactory() {
			return shadow(this, "_svgFactory", new DOMSVGFactory());
		}
		static #setBox(element, [x$2, y$3, width, height]) {
			const { style } = element;
			style.top = `${100 * y$3}%`;
			style.left = `${100 * x$2}%`;
			style.width = `${100 * width}%`;
			style.height = `${100 * height}%`;
		}
		#createSVG() {
			const svg = DrawLayer._svgFactory.create(1, 1, true);
			this.#parent.append(svg);
			svg.setAttribute("aria-hidden", true);
			return svg;
		}
		#createClipPath(defs, pathId) {
			const clipPath = DrawLayer._svgFactory.createElement("clipPath");
			defs.append(clipPath);
			const clipPathId = `clip_${pathId}`;
			clipPath.setAttribute("id", clipPathId);
			clipPath.setAttribute("clipPathUnits", "objectBoundingBox");
			const clipPathUse = DrawLayer._svgFactory.createElement("use");
			clipPath.append(clipPathUse);
			clipPathUse.setAttribute("href", `#${pathId}`);
			clipPathUse.classList.add("clip");
			return clipPathId;
		}
		#updateProperties(element, properties$1) {
			for (const [key, value] of Object.entries(properties$1)) {
				if (value === null) {
					element.removeAttribute(key);
				} else {
					element.setAttribute(key, value);
				}
			}
		}
		draw(properties$1, isPathUpdatable = false, hasClip = false) {
			const id = DrawLayer.#id++;
			const root = this.#createSVG();
			const defs = DrawLayer._svgFactory.createElement("defs");
			root.append(defs);
			const path$1 = DrawLayer._svgFactory.createElement("path");
			defs.append(path$1);
			const pathId = `path_p${this.pageIndex}_${id}`;
			path$1.setAttribute("id", pathId);
			path$1.setAttribute("vector-effect", "non-scaling-stroke");
			if (isPathUpdatable) {
				this.#toUpdate.set(id, path$1);
			}
			const clipPathId = hasClip ? this.#createClipPath(defs, pathId) : null;
			const use = DrawLayer._svgFactory.createElement("use");
			root.append(use);
			use.setAttribute("href", `#${pathId}`);
			this.updateProperties(root, properties$1);
			this.#mapping.set(id, root);
			return {
				id,
				clipPathId: `url(#${clipPathId})`
			};
		}
		drawOutline(properties$1, mustRemoveSelfIntersections) {
			const id = DrawLayer.#id++;
			const root = this.#createSVG();
			const defs = DrawLayer._svgFactory.createElement("defs");
			root.append(defs);
			const path$1 = DrawLayer._svgFactory.createElement("path");
			defs.append(path$1);
			const pathId = `path_p${this.pageIndex}_${id}`;
			path$1.setAttribute("id", pathId);
			path$1.setAttribute("vector-effect", "non-scaling-stroke");
			let maskId;
			if (mustRemoveSelfIntersections) {
				const mask = DrawLayer._svgFactory.createElement("mask");
				defs.append(mask);
				maskId = `mask_p${this.pageIndex}_${id}`;
				mask.setAttribute("id", maskId);
				mask.setAttribute("maskUnits", "objectBoundingBox");
				const rect = DrawLayer._svgFactory.createElement("rect");
				mask.append(rect);
				rect.setAttribute("width", "1");
				rect.setAttribute("height", "1");
				rect.setAttribute("fill", "white");
				const use = DrawLayer._svgFactory.createElement("use");
				mask.append(use);
				use.setAttribute("href", `#${pathId}`);
				use.setAttribute("stroke", "none");
				use.setAttribute("fill", "black");
				use.setAttribute("fill-rule", "nonzero");
				use.classList.add("mask");
			}
			const use1 = DrawLayer._svgFactory.createElement("use");
			root.append(use1);
			use1.setAttribute("href", `#${pathId}`);
			if (maskId) {
				use1.setAttribute("mask", `url(#${maskId})`);
			}
			const use2 = use1.cloneNode();
			root.append(use2);
			use1.classList.add("mainOutline");
			use2.classList.add("secondaryOutline");
			this.updateProperties(root, properties$1);
			this.#mapping.set(id, root);
			return id;
		}
		finalizeDraw(id, properties$1) {
			this.#toUpdate.delete(id);
			this.updateProperties(id, properties$1);
		}
		updateProperties(elementOrId, properties$1) {
			if (!properties$1) {
				return;
			}
			const { root, bbox, rootClass, path: path$1 } = properties$1;
			const element = typeof elementOrId === "number" ? this.#mapping.get(elementOrId) : elementOrId;
			if (!element) {
				return;
			}
			if (root) {
				this.#updateProperties(element, root);
			}
			if (bbox) {
				DrawLayer.#setBox(element, bbox);
			}
			if (rootClass) {
				const { classList } = element;
				for (const [className, value] of Object.entries(rootClass)) {
					classList.toggle(className, value);
				}
			}
			if (path$1) {
				const defs = element.firstChild;
				const pathElement = defs.firstChild;
				this.#updateProperties(pathElement, path$1);
			}
		}
		updateParent(id, layer) {
			if (layer === this) {
				return;
			}
			const root = this.#mapping.get(id);
			if (!root) {
				return;
			}
			layer.#parent.append(root);
			this.#mapping.delete(id);
			layer.#mapping.set(id, root);
		}
		remove(id) {
			this.#toUpdate.delete(id);
			if (this.#parent === null) {
				return;
			}
			this.#mapping.get(id).remove();
			this.#mapping.delete(id);
		}
		destroy() {
			this.#parent = null;
			for (const root of this.#mapping.values()) {
				root.remove();
			}
			this.#mapping.clear();
			this.#toUpdate.clear();
		}
	};
	;
	{
		globalThis._pdfjsTestingUtils = { HighlightOutliner };
	}
	globalThis.pdfjsLib = {
		AbortException,
		AnnotationEditorLayer,
		AnnotationEditorParamsType,
		AnnotationEditorType,
		AnnotationEditorUIManager,
		AnnotationLayer,
		AnnotationMode,
		AnnotationType,
		applyOpacity,
		build,
		ColorPicker,
		createValidAbsoluteUrl,
		CSSConstants,
		DOMSVGFactory,
		DrawLayer,
		FeatureTest: util_FeatureTest,
		fetchData,
		findContrastColor,
		getDocument,
		getFilenameFromUrl,
		getPdfFilenameFromUrl,
		getRGB,
		getUuid,
		getXfaPageViewport,
		GlobalWorkerOptions,
		ImageKind: util_ImageKind,
		InvalidPDFException,
		isDataScheme,
		isPdfFile,
		isValidExplicitDest,
		MathClamp,
		noContextMenu,
		normalizeUnicode,
		OPS,
		OutputScale,
		PasswordResponses,
		PDFDataRangeTransport,
		PDFDateString,
		PDFWorker,
		PermissionFlag,
		PixelsPerInch,
		RenderingCancelledException,
		renderRichText,
		ResponseException,
		setLayerDimensions,
		shadow,
		SignatureExtractor,
		stopEvent,
		SupportedImageMimeTypes,
		TextLayer,
		TouchManager,
		updateUrlHash,
		Util,
		VerbosityLevel,
		version: version$4,
		XfaLayer
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/xlsx/xlsx.mjs
function reset_ansi() {
	set_ansi(1252);
}
function reset_cp() {
	set_cp(1200);
	reset_ansi();
}
function char_codes(data) {
	var o$10 = [];
	for (var i$7 = 0, len = data.length; i$7 < len; ++i$7) o$10[i$7] = data.charCodeAt(i$7);
	return o$10;
}
function utf16leread(data) {
	var o$10 = [];
	for (var i$7 = 0; i$7 < data.length >> 1; ++i$7) o$10[i$7] = String.fromCharCode(data.charCodeAt(2 * i$7) + (data.charCodeAt(2 * i$7 + 1) << 8));
	return o$10.join("");
}
function utf16lereadu(data) {
	var o$10 = [];
	for (var i$7 = 0; i$7 < data.length >> 1; ++i$7) o$10[i$7] = String.fromCharCode(data[2 * i$7] + (data[2 * i$7 + 1] << 8));
	return o$10.join("");
}
function utf16beread(data) {
	var o$10 = [];
	for (var i$7 = 0; i$7 < data.length >> 1; ++i$7) o$10[i$7] = String.fromCharCode(data.charCodeAt(2 * i$7 + 1) + (data.charCodeAt(2 * i$7) << 8));
	return o$10.join("");
}
function set_cptable(cptable) {
	$cptable = cptable;
	set_cp = function(cp) {
		current_codepage = cp;
		set_ansi(cp);
	};
	debom = function(data) {
		if (data.charCodeAt(0) === 255 && data.charCodeAt(1) === 254) {
			return $cptable.utils.decode(1200, char_codes(data.slice(2)));
		}
		return data;
	};
	_getchar = function _gc2(x$2) {
		if (current_codepage === 1200) return String.fromCharCode(x$2);
		return $cptable.utils.decode(current_codepage, [x$2 & 255, x$2 >> 8])[0];
	};
	_getansi = function _ga2(x$2) {
		return $cptable.utils.decode(current_ansi, [x$2])[0];
	};
	cpdoit();
}
function Base64_encode(input) {
	var o$10 = "";
	var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;
	for (var i$7 = 0; i$7 < input.length;) {
		c1 = input.charCodeAt(i$7++);
		e1 = c1 >> 2;
		c2 = input.charCodeAt(i$7++);
		e2 = (c1 & 3) << 4 | c2 >> 4;
		c3 = input.charCodeAt(i$7++);
		e3 = (c2 & 15) << 2 | c3 >> 6;
		e4 = c3 & 63;
		if (isNaN(c2)) {
			e3 = e4 = 64;
		} else if (isNaN(c3)) {
			e4 = 64;
		}
		o$10 += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);
	}
	return o$10;
}
function Base64_encode_pass(input) {
	var o$10 = "";
	var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;
	for (var i$7 = 0; i$7 < input.length;) {
		c1 = input.charCodeAt(i$7++);
		if (c1 > 255) c1 = 95;
		e1 = c1 >> 2;
		c2 = input.charCodeAt(i$7++);
		if (c2 > 255) c2 = 95;
		e2 = (c1 & 3) << 4 | c2 >> 4;
		c3 = input.charCodeAt(i$7++);
		if (c3 > 255) c3 = 95;
		e3 = (c2 & 15) << 2 | c3 >> 6;
		e4 = c3 & 63;
		if (isNaN(c2)) {
			e3 = e4 = 64;
		} else if (isNaN(c3)) {
			e4 = 64;
		}
		o$10 += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);
	}
	return o$10;
}
function Base64_encode_arr(input) {
	var o$10 = "";
	var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;
	for (var i$7 = 0; i$7 < input.length;) {
		c1 = input[i$7++];
		e1 = c1 >> 2;
		c2 = input[i$7++];
		e2 = (c1 & 3) << 4 | c2 >> 4;
		c3 = input[i$7++];
		e3 = (c2 & 15) << 2 | c3 >> 6;
		e4 = c3 & 63;
		if (isNaN(c2)) {
			e3 = e4 = 64;
		} else if (isNaN(c3)) {
			e4 = 64;
		}
		o$10 += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);
	}
	return o$10;
}
function Base64_decode(input) {
	var o$10 = "";
	var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;
	if (input.slice(0, 5) == "data:") {
		var i$7 = input.slice(0, 1024).indexOf(";base64,");
		if (i$7 > -1) input = input.slice(i$7 + 8);
	}
	input = input.replace(/[^\w\+\/\=]/g, "");
	for (var i$7 = 0; i$7 < input.length;) {
		e1 = Base64_map.indexOf(input.charAt(i$7++));
		e2 = Base64_map.indexOf(input.charAt(i$7++));
		c1 = e1 << 2 | e2 >> 4;
		o$10 += String.fromCharCode(c1);
		e3 = Base64_map.indexOf(input.charAt(i$7++));
		c2 = (e2 & 15) << 4 | e3 >> 2;
		if (e3 !== 64) {
			o$10 += String.fromCharCode(c2);
		}
		e4 = Base64_map.indexOf(input.charAt(i$7++));
		c3 = (e3 & 3) << 6 | e4;
		if (e4 !== 64) {
			o$10 += String.fromCharCode(c3);
		}
	}
	return o$10;
}
function new_raw_buf(len) {
	if (has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);
	return typeof Uint8Array != "undefined" ? new Uint8Array(len) : new Array(len);
}
function new_unsafe_buf(len) {
	if (has_buf) return Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : new Buffer(len);
	return typeof Uint8Array != "undefined" ? new Uint8Array(len) : new Array(len);
}
function s2ab(s$5) {
	if (typeof ArrayBuffer === "undefined") return s2a(s$5);
	var buf = new ArrayBuffer(s$5.length), view = new Uint8Array(buf);
	for (var i$7 = 0; i$7 != s$5.length; ++i$7) view[i$7] = s$5.charCodeAt(i$7) & 255;
	return buf;
}
function a2s(data) {
	if (Array.isArray(data)) return data.map(function(c$7) {
		return String.fromCharCode(c$7);
	}).join("");
	var o$10 = [];
	for (var i$7 = 0; i$7 < data.length; ++i$7) o$10[i$7] = String.fromCharCode(data[i$7]);
	return o$10.join("");
}
function a2u(data) {
	if (typeof Uint8Array === "undefined") throw new Error("Unsupported");
	return new Uint8Array(data);
}
function ab2a(data) {
	if (typeof ArrayBuffer == "undefined") throw new Error("Unsupported");
	if (data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));
	var o$10 = new Array(data.length);
	for (var i$7 = 0; i$7 < data.length; ++i$7) o$10[i$7] = data[i$7];
	return o$10;
}
function utf8decode(content) {
	var out = [], widx = 0, L$2 = content.length + 250;
	var o$10 = new_raw_buf(content.length + 255);
	for (var ridx = 0; ridx < content.length; ++ridx) {
		var c$7 = content.charCodeAt(ridx);
		if (c$7 < 128) o$10[widx++] = c$7;
		else if (c$7 < 2048) {
			o$10[widx++] = 192 | c$7 >> 6 & 31;
			o$10[widx++] = 128 | c$7 & 63;
		} else if (c$7 >= 55296 && c$7 < 57344) {
			c$7 = (c$7 & 1023) + 64;
			var d$5 = content.charCodeAt(++ridx) & 1023;
			o$10[widx++] = 240 | c$7 >> 8 & 7;
			o$10[widx++] = 128 | c$7 >> 2 & 63;
			o$10[widx++] = 128 | d$5 >> 6 & 15 | (c$7 & 3) << 4;
			o$10[widx++] = 128 | d$5 & 63;
		} else {
			o$10[widx++] = 224 | c$7 >> 12 & 15;
			o$10[widx++] = 128 | c$7 >> 6 & 63;
			o$10[widx++] = 128 | c$7 & 63;
		}
		if (widx > L$2) {
			out.push(o$10.slice(0, widx));
			widx = 0;
			o$10 = new_raw_buf(65535);
			L$2 = 65530;
		}
	}
	out.push(o$10.slice(0, widx));
	return bconcat(out);
}
function _strrev(x$2) {
	var o$10 = "", i$7 = x$2.length - 1;
	while (i$7 >= 0) o$10 += x$2.charAt(i$7--);
	return o$10;
}
function pad0(v$3, d$5) {
	var t$6 = "" + v$3;
	return t$6.length >= d$5 ? t$6 : fill("0", d$5 - t$6.length) + t$6;
}
function pad_(v$3, d$5) {
	var t$6 = "" + v$3;
	return t$6.length >= d$5 ? t$6 : fill(" ", d$5 - t$6.length) + t$6;
}
function rpad_(v$3, d$5) {
	var t$6 = "" + v$3;
	return t$6.length >= d$5 ? t$6 : t$6 + fill(" ", d$5 - t$6.length);
}
function pad0r1(v$3, d$5) {
	var t$6 = "" + Math.round(v$3);
	return t$6.length >= d$5 ? t$6 : fill("0", d$5 - t$6.length) + t$6;
}
function pad0r2(v$3, d$5) {
	var t$6 = "" + v$3;
	return t$6.length >= d$5 ? t$6 : fill("0", d$5 - t$6.length) + t$6;
}
function pad0r(v$3, d$5) {
	if (v$3 > p2_32 || v$3 < -p2_32) return pad0r1(v$3, d$5);
	var i$7 = Math.round(v$3);
	return pad0r2(i$7, d$5);
}
function SSF_isgeneral(s$5, i$7) {
	i$7 = i$7 || 0;
	return s$5.length >= 7 + i$7 && (s$5.charCodeAt(i$7) | 32) === 103 && (s$5.charCodeAt(i$7 + 1) | 32) === 101 && (s$5.charCodeAt(i$7 + 2) | 32) === 110 && (s$5.charCodeAt(i$7 + 3) | 32) === 101 && (s$5.charCodeAt(i$7 + 4) | 32) === 114 && (s$5.charCodeAt(i$7 + 5) | 32) === 97 && (s$5.charCodeAt(i$7 + 6) | 32) === 108;
}
function SSF_init_table(t$6) {
	if (!t$6) t$6 = {};
	t$6[0] = "General";
	t$6[1] = "0";
	t$6[2] = "0.00";
	t$6[3] = "#,##0";
	t$6[4] = "#,##0.00";
	t$6[9] = "0%";
	t$6[10] = "0.00%";
	t$6[11] = "0.00E+00";
	t$6[12] = "# ?/?";
	t$6[13] = "# ??/??";
	t$6[14] = "m/d/yy";
	t$6[15] = "d-mmm-yy";
	t$6[16] = "d-mmm";
	t$6[17] = "mmm-yy";
	t$6[18] = "h:mm AM/PM";
	t$6[19] = "h:mm:ss AM/PM";
	t$6[20] = "h:mm";
	t$6[21] = "h:mm:ss";
	t$6[22] = "m/d/yy h:mm";
	t$6[37] = "#,##0 ;(#,##0)";
	t$6[38] = "#,##0 ;[Red](#,##0)";
	t$6[39] = "#,##0.00;(#,##0.00)";
	t$6[40] = "#,##0.00;[Red](#,##0.00)";
	t$6[45] = "mm:ss";
	t$6[46] = "[h]:mm:ss";
	t$6[47] = "mmss.0";
	t$6[48] = "##0.0E+0";
	t$6[49] = "@";
	t$6[56] = "\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"";
	return t$6;
}
function SSF_frac(x$2, D$2, mixed) {
	var sgn = x$2 < 0 ? -1 : 1;
	var B$2 = x$2 * sgn;
	var P_2 = 0, P_1 = 1, P$2 = 0;
	var Q_2 = 1, Q_1 = 0, Q$1 = 0;
	var A$1 = Math.floor(B$2);
	while (Q_1 < D$2) {
		A$1 = Math.floor(B$2);
		P$2 = A$1 * P_1 + P_2;
		Q$1 = A$1 * Q_1 + Q_2;
		if (B$2 - A$1 < 5e-8) break;
		B$2 = 1 / (B$2 - A$1);
		P_2 = P_1;
		P_1 = P$2;
		Q_2 = Q_1;
		Q_1 = Q$1;
	}
	if (Q$1 > D$2) {
		if (Q_1 > D$2) {
			Q$1 = Q_2;
			P$2 = P_2;
		} else {
			Q$1 = Q_1;
			P$2 = P_1;
		}
	}
	if (!mixed) return [
		0,
		sgn * P$2,
		Q$1
	];
	var q$2 = Math.floor(sgn * P$2 / Q$1);
	return [
		q$2,
		sgn * P$2 - q$2 * Q$1,
		Q$1
	];
}
function SSF_normalize_xl_unsafe(v$3) {
	var s$5 = v$3.toPrecision(16);
	if (s$5.indexOf("e") > -1) {
		var m$3 = s$5.slice(0, s$5.indexOf("e"));
		m$3 = m$3.indexOf(".") > -1 ? m$3.slice(0, m$3.slice(0, 2) == "0." ? 17 : 16) : m$3.slice(0, 15) + fill("0", m$3.length - 15);
		return m$3 + s$5.slice(s$5.indexOf("e"));
	}
	var n$9 = s$5.indexOf(".") > -1 ? s$5.slice(0, s$5.slice(0, 2) == "0." ? 17 : 16) : s$5.slice(0, 15) + fill("0", s$5.length - 15);
	return Number(n$9);
}
function SSF_parse_date_code(v$3, opts, b2) {
	if (v$3 > 2958465 || v$3 < 0) return null;
	v$3 = SSF_normalize_xl_unsafe(v$3);
	var date = v$3 | 0, time = Math.floor(86400 * (v$3 - date)), dow = 0;
	var dout = [];
	var out = {
		D: date,
		T: time,
		u: 86400 * (v$3 - date) - time,
		y: 0,
		m: 0,
		d: 0,
		H: 0,
		M: 0,
		S: 0,
		q: 0
	};
	if (Math.abs(out.u) < 1e-6) out.u = 0;
	if (opts && opts.date1904) date += 1462;
	if (out.u > .9999) {
		out.u = 0;
		if (++time == 86400) {
			out.T = time = 0;
			++date;
			++out.D;
		}
	}
	if (date === 60) {
		dout = b2 ? [
			1317,
			10,
			29
		] : [
			1900,
			2,
			29
		];
		dow = 3;
	} else if (date === 0) {
		dout = b2 ? [
			1317,
			8,
			29
		] : [
			1900,
			1,
			0
		];
		dow = 6;
	} else {
		if (date > 60) --date;
		var d$5 = new Date(1900, 0, 1);
		d$5.setDate(d$5.getDate() + date - 1);
		dout = [
			d$5.getFullYear(),
			d$5.getMonth() + 1,
			d$5.getDate()
		];
		dow = d$5.getDay();
		if (date < 60) dow = (dow + 6) % 7;
		if (b2) dow = SSF_fix_hijri(d$5, dout);
	}
	out.y = dout[0];
	out.m = dout[1];
	out.d = dout[2];
	out.S = time % 60;
	time = Math.floor(time / 60);
	out.M = time % 60;
	time = Math.floor(time / 60);
	out.H = time;
	out.q = dow;
	return out;
}
function SSF_strip_decimal(o$10) {
	return o$10.indexOf(".") == -1 ? o$10 : o$10.replace(/(?:\.0*|(\.\d*[1-9])0+)$/, "$1");
}
function SSF_normalize_exp(o$10) {
	if (o$10.indexOf("E") == -1) return o$10;
	return o$10.replace(/(?:\.0*|(\.\d*[1-9])0+)[Ee]/, "$1E").replace(/(E[+-])(\d)$/, "$10$2");
}
function SSF_small_exp(v$3) {
	var w$2 = v$3 < 0 ? 12 : 11;
	var o$10 = SSF_strip_decimal(v$3.toFixed(12));
	if (o$10.length <= w$2) return o$10;
	o$10 = v$3.toPrecision(10);
	if (o$10.length <= w$2) return o$10;
	return v$3.toExponential(5);
}
function SSF_large_exp(v$3) {
	var o$10 = SSF_strip_decimal(v$3.toFixed(11));
	return o$10.length > (v$3 < 0 ? 12 : 11) || o$10 === "0" || o$10 === "-0" ? v$3.toPrecision(6) : o$10;
}
function SSF_general_num(v$3) {
	if (!isFinite(v$3)) return isNaN(v$3) ? "#NUM!" : "#DIV/0!";
	var V$2 = Math.floor(Math.log(Math.abs(v$3)) * Math.LOG10E), o$10;
	if (V$2 >= -4 && V$2 <= -1) o$10 = v$3.toPrecision(10 + V$2);
	else if (Math.abs(V$2) <= 9) o$10 = SSF_small_exp(v$3);
	else if (V$2 === 10) o$10 = v$3.toFixed(10).substr(0, 12);
	else o$10 = SSF_large_exp(v$3);
	return SSF_strip_decimal(SSF_normalize_exp(o$10.toUpperCase()));
}
function SSF_general(v$3, opts) {
	switch (typeof v$3) {
		case "string": return v$3;
		case "boolean": return v$3 ? "TRUE" : "FALSE";
		case "number": return (v$3 | 0) === v$3 ? v$3.toString(10) : SSF_general_num(v$3);
		case "undefined": return "";
		case "object":
			if (v$3 == null) return "";
			if (v$3 instanceof Date) return SSF_format(14, datenum(v$3, opts && opts.date1904), opts);
	}
	throw new Error("unsupported value in General format: " + v$3);
}
function SSF_fix_hijri(date, o$10) {
	o$10[0] -= 581;
	var dow = date.getDay();
	if (date < 60) dow = (dow + 6) % 7;
	return dow;
}
function SSF_write_date(type, fmt, val$1, ss0) {
	var o$10 = "", ss = 0, tt = 0, y$3 = val$1.y, out, outl = 0;
	switch (type) {
		case 98: y$3 = val$1.y + 543;
		case 121:
			switch (fmt.length) {
				case 1:
				case 2:
					out = y$3 % 100;
					outl = 2;
					break;
				default:
					out = y$3 % 1e4;
					outl = 4;
					break;
			}
			break;
		case 109:
			switch (fmt.length) {
				case 1:
				case 2:
					out = val$1.m;
					outl = fmt.length;
					break;
				case 3: return months[val$1.m - 1][1];
				case 5: return months[val$1.m - 1][0];
				default: return months[val$1.m - 1][2];
			}
			break;
		case 100:
			switch (fmt.length) {
				case 1:
				case 2:
					out = val$1.d;
					outl = fmt.length;
					break;
				case 3: return days[val$1.q][0];
				default: return days[val$1.q][1];
			}
			break;
		case 104:
			switch (fmt.length) {
				case 1:
				case 2:
					out = 1 + (val$1.H + 11) % 12;
					outl = fmt.length;
					break;
				default: throw "bad hour format: " + fmt;
			}
			break;
		case 72:
			switch (fmt.length) {
				case 1:
				case 2:
					out = val$1.H;
					outl = fmt.length;
					break;
				default: throw "bad hour format: " + fmt;
			}
			break;
		case 77:
			switch (fmt.length) {
				case 1:
				case 2:
					out = val$1.M;
					outl = fmt.length;
					break;
				default: throw "bad minute format: " + fmt;
			}
			break;
		case 115:
			if (fmt != "s" && fmt != "ss" && fmt != ".0" && fmt != ".00" && fmt != ".000") throw "bad second format: " + fmt;
			if (val$1.u === 0 && (fmt == "s" || fmt == "ss")) return pad0(val$1.S, fmt.length);
			if (ss0 >= 2) tt = ss0 === 3 ? 1e3 : 100;
			else tt = ss0 === 1 ? 10 : 1;
			ss = Math.round(tt * (val$1.S + val$1.u));
			if (ss >= 60 * tt) ss = 0;
			if (fmt === "s") return ss === 0 ? "0" : "" + ss / tt;
			o$10 = pad0(ss, 2 + ss0);
			if (fmt === "ss") return o$10.substr(0, 2);
			return "." + o$10.substr(2, fmt.length - 1);
		case 90:
			switch (fmt) {
				case "[h]":
				case "[hh]":
					out = val$1.D * 24 + val$1.H;
					break;
				case "[m]":
				case "[mm]":
					out = (val$1.D * 24 + val$1.H) * 60 + val$1.M;
					break;
				case "[s]":
				case "[ss]":
					out = ((val$1.D * 24 + val$1.H) * 60 + val$1.M) * 60 + (ss0 == 0 ? Math.round(val$1.S + val$1.u) : val$1.S);
					break;
				default: throw "bad abstime format: " + fmt;
			}
			outl = fmt.length === 3 ? 1 : 2;
			break;
		case 101:
			out = y$3;
			outl = 1;
			break;
	}
	var outstr = outl > 0 ? pad0(out, outl) : "";
	return outstr;
}
function commaify(s$5) {
	var w$2 = 3;
	if (s$5.length <= w$2) return s$5;
	var j$2 = s$5.length % w$2, o$10 = s$5.substr(0, j$2);
	for (; j$2 != s$5.length; j$2 += w$2) o$10 += (o$10.length > 0 ? "," : "") + s$5.substr(j$2, w$2);
	return o$10;
}
function write_num_pct(type, fmt, val$1) {
	var sfmt = fmt.replace(pct1, ""), mul = fmt.length - sfmt.length;
	return write_num(type, sfmt, val$1 * Math.pow(10, 2 * mul)) + fill("%", mul);
}
function write_num_cm(type, fmt, val$1) {
	var idx = fmt.length - 1;
	while (fmt.charCodeAt(idx - 1) === 44) --idx;
	return write_num(type, fmt.substr(0, idx), val$1 / Math.pow(10, 3 * (fmt.length - idx)));
}
function write_num_exp(fmt, val$1) {
	var o$10;
	var idx = fmt.indexOf("E") - fmt.indexOf(".") - 1;
	if (fmt.match(/^#+0.0E\+0$/)) {
		if (val$1 == 0) return "0.0E+0";
		else if (val$1 < 0) return "-" + write_num_exp(fmt, -val$1);
		var period = fmt.indexOf(".");
		if (period === -1) period = fmt.indexOf("E");
		var ee = Math.floor(Math.log(val$1) * Math.LOG10E) % period;
		if (ee < 0) ee += period;
		o$10 = (val$1 / Math.pow(10, ee)).toPrecision(idx + 1 + (period + ee) % period);
		if (o$10.indexOf("e") === -1) {
			var fakee = Math.floor(Math.log(val$1) * Math.LOG10E);
			if (o$10.indexOf(".") === -1) o$10 = o$10.charAt(0) + "." + o$10.substr(1) + "E+" + (fakee - o$10.length + ee);
			else o$10 += "E+" + (fakee - ee);
			while (o$10.substr(0, 2) === "0.") {
				o$10 = o$10.charAt(0) + o$10.substr(2, period) + "." + o$10.substr(2 + period);
				o$10 = o$10.replace(/^0+([1-9])/, "$1").replace(/^0+\./, "0.");
			}
			o$10 = o$10.replace(/\+-/, "-");
		}
		o$10 = o$10.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/, function($$, $1, $2, $3) {
			return $1 + $2 + $3.substr(0, (period + ee) % period) + "." + $3.substr(ee) + "E";
		});
	} else o$10 = val$1.toExponential(idx);
	if (fmt.match(/E\+00$/) && o$10.match(/e[+-]\d$/)) o$10 = o$10.substr(0, o$10.length - 1) + "0" + o$10.charAt(o$10.length - 1);
	if (fmt.match(/E\-/) && o$10.match(/e\+/)) o$10 = o$10.replace(/e\+/, "e");
	return o$10.replace("e", "E");
}
function write_num_f1(r$10, aval, sign) {
	var den = parseInt(r$10[4], 10), rr = Math.round(aval * den), base = Math.floor(rr / den);
	var myn = rr - base * den, myd = den;
	return sign + (base === 0 ? "" : "" + base) + " " + (myn === 0 ? fill(" ", r$10[1].length + 1 + r$10[4].length) : pad_(myn, r$10[1].length) + r$10[2] + "/" + r$10[3] + pad0(myd, r$10[4].length));
}
function write_num_f2(r$10, aval, sign) {
	return sign + (aval === 0 ? "" : "" + aval) + fill(" ", r$10[1].length + 2 + r$10[4].length);
}
function hashq(str) {
	var o$10 = "", cc;
	for (var i$7 = 0; i$7 != str.length; ++i$7) switch (cc = str.charCodeAt(i$7)) {
		case 35: break;
		case 63:
			o$10 += " ";
			break;
		case 48:
			o$10 += "0";
			break;
		default: o$10 += String.fromCharCode(cc);
	}
	return o$10;
}
function rnd(val$1, d$5) {
	var dd = Math.pow(10, d$5);
	return "" + Math.round(val$1 * dd) / dd;
}
function dec(val$1, d$5) {
	var _frac = val$1 - Math.floor(val$1), dd = Math.pow(10, d$5);
	if (d$5 < ("" + Math.round(_frac * dd)).length) return 0;
	return Math.round(_frac * dd);
}
function carry(val$1, d$5) {
	if (d$5 < ("" + Math.round((val$1 - Math.floor(val$1)) * Math.pow(10, d$5))).length) {
		return 1;
	}
	return 0;
}
function flr(val$1) {
	if (val$1 < 2147483647 && val$1 > -2147483648) return "" + (val$1 >= 0 ? val$1 | 0 : val$1 - 1 | 0);
	return "" + Math.floor(val$1);
}
function write_num_flt(type, fmt, val$1) {
	if (type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {
		var ffmt = fmt.replace(/\( */, "").replace(/ \)/, "").replace(/\)/, "");
		if (val$1 >= 0) return write_num_flt("n", ffmt, val$1);
		return "(" + write_num_flt("n", ffmt, -val$1) + ")";
	}
	if (fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val$1);
	if (fmt.indexOf("%") !== -1) return write_num_pct(type, fmt, val$1);
	if (fmt.indexOf("E") !== -1) return write_num_exp(fmt, val$1);
	if (fmt.charCodeAt(0) === 36) return "$" + write_num_flt(type, fmt.substr(fmt.charAt(1) == " " ? 2 : 1), val$1);
	var o$10;
	var r$10, ri, ff, aval = Math.abs(val$1), sign = val$1 < 0 ? "-" : "";
	if (fmt.match(/^00+$/)) return sign + pad0r(aval, fmt.length);
	if (fmt.match(/^[#?]+$/)) {
		o$10 = pad0r(val$1, 0);
		if (o$10 === "0") o$10 = "";
		return o$10.length > fmt.length ? o$10 : hashq(fmt.substr(0, fmt.length - o$10.length)) + o$10;
	}
	if (r$10 = fmt.match(frac1)) return write_num_f1(r$10, aval, sign);
	if (fmt.match(/^#+0+$/)) return sign + pad0r(aval, fmt.length - fmt.indexOf("0"));
	if (r$10 = fmt.match(dec1)) {
		o$10 = rnd(val$1, r$10[1].length).replace(/^([^\.]+)$/, "$1." + hashq(r$10[1])).replace(/\.$/, "." + hashq(r$10[1])).replace(/\.(\d*)$/, function($$, $1) {
			return "." + $1 + fill("0", hashq(r$10[1]).length - $1.length);
		});
		return fmt.indexOf("0.") !== -1 ? o$10 : o$10.replace(/^0\./, ".");
	}
	fmt = fmt.replace(/^#+([0.])/, "$1");
	if (r$10 = fmt.match(/^(0*)\.(#*)$/)) {
		return sign + rnd(aval, r$10[2].length).replace(/\.(\d*[1-9])0*$/, ".$1").replace(/^(-?\d*)$/, "$1.").replace(/^0\./, r$10[1].length ? "0." : ".");
	}
	if (r$10 = fmt.match(/^#{1,3},##0(\.?)$/)) return sign + commaify(pad0r(aval, 0));
	if (r$10 = fmt.match(/^#,##0\.([#0]*0)$/)) {
		return val$1 < 0 ? "-" + write_num_flt(type, fmt, -val$1) : commaify("" + (Math.floor(val$1) + carry(val$1, r$10[1].length))) + "." + pad0(dec(val$1, r$10[1].length), r$10[1].length);
	}
	if (r$10 = fmt.match(/^#,#*,#0/)) return write_num_flt(type, fmt.replace(/^#,#*,/, ""), val$1);
	if (r$10 = fmt.match(/^([0#]+)(\\?-([0#]+))+$/)) {
		o$10 = _strrev(write_num_flt(type, fmt.replace(/[\\-]/g, ""), val$1));
		ri = 0;
		return _strrev(_strrev(fmt.replace(/\\/g, "")).replace(/[0#]/g, function(x$3) {
			return ri < o$10.length ? o$10.charAt(ri++) : x$3 === "0" ? "0" : "";
		}));
	}
	if (fmt.match(phone)) {
		o$10 = write_num_flt(type, "##########", val$1);
		return "(" + o$10.substr(0, 3) + ") " + o$10.substr(3, 3) + "-" + o$10.substr(6);
	}
	var oa = "";
	if (r$10 = fmt.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/)) {
		ri = Math.min(r$10[4].length, 7);
		ff = SSF_frac(aval, Math.pow(10, ri) - 1, false);
		o$10 = "" + sign;
		oa = write_num("n", r$10[1], ff[1]);
		if (oa.charAt(oa.length - 1) == " ") oa = oa.substr(0, oa.length - 1) + "0";
		o$10 += oa + r$10[2] + "/" + r$10[3];
		oa = rpad_(ff[2], ri);
		if (oa.length < r$10[4].length) oa = hashq(r$10[4].substr(r$10[4].length - oa.length)) + oa;
		o$10 += oa;
		return o$10;
	}
	if (r$10 = fmt.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/)) {
		ri = Math.min(Math.max(r$10[1].length, r$10[4].length), 7);
		ff = SSF_frac(aval, Math.pow(10, ri) - 1, true);
		return sign + (ff[0] || (ff[1] ? "" : "0")) + " " + (ff[1] ? pad_(ff[1], ri) + r$10[2] + "/" + r$10[3] + rpad_(ff[2], ri) : fill(" ", 2 * ri + 1 + r$10[2].length + r$10[3].length));
	}
	if (r$10 = fmt.match(/^[#0?]+$/)) {
		o$10 = pad0r(val$1, 0);
		if (fmt.length <= o$10.length) return o$10;
		return hashq(fmt.substr(0, fmt.length - o$10.length)) + o$10;
	}
	if (r$10 = fmt.match(/^([#0?]+)\.([#0]+)$/)) {
		o$10 = "" + val$1.toFixed(Math.min(r$10[2].length, 10)).replace(/([^0])0+$/, "$1");
		ri = o$10.indexOf(".");
		var lres = fmt.indexOf(".") - ri, rres = fmt.length - o$10.length - lres;
		return hashq(fmt.substr(0, lres) + o$10 + fmt.substr(fmt.length - rres));
	}
	if (r$10 = fmt.match(/^00,000\.([#0]*0)$/)) {
		ri = dec(val$1, r$10[1].length);
		return val$1 < 0 ? "-" + write_num_flt(type, fmt, -val$1) : commaify(flr(val$1)).replace(/^\d,\d{3}$/, "0$&").replace(/^\d*$/, function($$) {
			return "00," + ($$.length < 3 ? pad0(0, 3 - $$.length) : "") + $$;
		}) + "." + pad0(ri, r$10[1].length);
	}
	switch (fmt) {
		case "###,##0.00": return write_num_flt(type, "#,##0.00", val$1);
		case "###,###":
		case "##,###":
		case "#,###":
			var x$2 = commaify(pad0r(aval, 0));
			return x$2 !== "0" ? sign + x$2 : "";
		case "###,###.00": return write_num_flt(type, "###,##0.00", val$1).replace(/^0\./, ".");
		case "#,###.00": return write_num_flt(type, "#,##0.00", val$1).replace(/^0\./, ".");
		default:
	}
	throw new Error("unsupported format |" + fmt + "|");
}
function write_num_cm2(type, fmt, val$1) {
	var idx = fmt.length - 1;
	while (fmt.charCodeAt(idx - 1) === 44) --idx;
	return write_num(type, fmt.substr(0, idx), val$1 / Math.pow(10, 3 * (fmt.length - idx)));
}
function write_num_pct2(type, fmt, val$1) {
	var sfmt = fmt.replace(pct1, ""), mul = fmt.length - sfmt.length;
	return write_num(type, sfmt, val$1 * Math.pow(10, 2 * mul)) + fill("%", mul);
}
function write_num_exp2(fmt, val$1) {
	var o$10;
	var idx = fmt.indexOf("E") - fmt.indexOf(".") - 1;
	if (fmt.match(/^#+0.0E\+0$/)) {
		if (val$1 == 0) return "0.0E+0";
		else if (val$1 < 0) return "-" + write_num_exp2(fmt, -val$1);
		var period = fmt.indexOf(".");
		if (period === -1) period = fmt.indexOf("E");
		var ee = Math.floor(Math.log(val$1) * Math.LOG10E) % period;
		if (ee < 0) ee += period;
		o$10 = (val$1 / Math.pow(10, ee)).toPrecision(idx + 1 + (period + ee) % period);
		if (!o$10.match(/[Ee]/)) {
			var fakee = Math.floor(Math.log(val$1) * Math.LOG10E);
			if (o$10.indexOf(".") === -1) o$10 = o$10.charAt(0) + "." + o$10.substr(1) + "E+" + (fakee - o$10.length + ee);
			else o$10 += "E+" + (fakee - ee);
			o$10 = o$10.replace(/\+-/, "-");
		}
		o$10 = o$10.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/, function($$, $1, $2, $3) {
			return $1 + $2 + $3.substr(0, (period + ee) % period) + "." + $3.substr(ee) + "E";
		});
	} else o$10 = val$1.toExponential(idx);
	if (fmt.match(/E\+00$/) && o$10.match(/e[+-]\d$/)) o$10 = o$10.substr(0, o$10.length - 1) + "0" + o$10.charAt(o$10.length - 1);
	if (fmt.match(/E\-/) && o$10.match(/e\+/)) o$10 = o$10.replace(/e\+/, "e");
	return o$10.replace("e", "E");
}
function write_num_int(type, fmt, val$1) {
	if (type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {
		var ffmt = fmt.replace(/\( */, "").replace(/ \)/, "").replace(/\)/, "");
		if (val$1 >= 0) return write_num_int("n", ffmt, val$1);
		return "(" + write_num_int("n", ffmt, -val$1) + ")";
	}
	if (fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val$1);
	if (fmt.indexOf("%") !== -1) return write_num_pct2(type, fmt, val$1);
	if (fmt.indexOf("E") !== -1) return write_num_exp2(fmt, val$1);
	if (fmt.charCodeAt(0) === 36) return "$" + write_num_int(type, fmt.substr(fmt.charAt(1) == " " ? 2 : 1), val$1);
	var o$10;
	var r$10, ri, ff, aval = Math.abs(val$1), sign = val$1 < 0 ? "-" : "";
	if (fmt.match(/^00+$/)) return sign + pad0(aval, fmt.length);
	if (fmt.match(/^[#?]+$/)) {
		o$10 = "" + val$1;
		if (val$1 === 0) o$10 = "";
		return o$10.length > fmt.length ? o$10 : hashq(fmt.substr(0, fmt.length - o$10.length)) + o$10;
	}
	if (r$10 = fmt.match(frac1)) return write_num_f2(r$10, aval, sign);
	if (fmt.match(/^#+0+$/)) return sign + pad0(aval, fmt.length - fmt.indexOf("0"));
	if (r$10 = fmt.match(dec1)) {
		o$10 = ("" + val$1).replace(/^([^\.]+)$/, "$1." + hashq(r$10[1])).replace(/\.$/, "." + hashq(r$10[1]));
		o$10 = o$10.replace(/\.(\d*)$/, function($$, $1) {
			return "." + $1 + fill("0", hashq(r$10[1]).length - $1.length);
		});
		return fmt.indexOf("0.") !== -1 ? o$10 : o$10.replace(/^0\./, ".");
	}
	fmt = fmt.replace(/^#+([0.])/, "$1");
	if (r$10 = fmt.match(/^(0*)\.(#*)$/)) {
		return sign + ("" + aval).replace(/\.(\d*[1-9])0*$/, ".$1").replace(/^(-?\d*)$/, "$1.").replace(/^0\./, r$10[1].length ? "0." : ".");
	}
	if (r$10 = fmt.match(/^#{1,3},##0(\.?)$/)) return sign + commaify("" + aval);
	if (r$10 = fmt.match(/^#,##0\.([#0]*0)$/)) {
		return val$1 < 0 ? "-" + write_num_int(type, fmt, -val$1) : commaify("" + val$1) + "." + fill("0", r$10[1].length);
	}
	if (r$10 = fmt.match(/^#,#*,#0/)) return write_num_int(type, fmt.replace(/^#,#*,/, ""), val$1);
	if (r$10 = fmt.match(/^([0#]+)(\\?-([0#]+))+$/)) {
		o$10 = _strrev(write_num_int(type, fmt.replace(/[\\-]/g, ""), val$1));
		ri = 0;
		return _strrev(_strrev(fmt.replace(/\\/g, "")).replace(/[0#]/g, function(x$3) {
			return ri < o$10.length ? o$10.charAt(ri++) : x$3 === "0" ? "0" : "";
		}));
	}
	if (fmt.match(phone)) {
		o$10 = write_num_int(type, "##########", val$1);
		return "(" + o$10.substr(0, 3) + ") " + o$10.substr(3, 3) + "-" + o$10.substr(6);
	}
	var oa = "";
	if (r$10 = fmt.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/)) {
		ri = Math.min(r$10[4].length, 7);
		ff = SSF_frac(aval, Math.pow(10, ri) - 1, false);
		o$10 = "" + sign;
		oa = write_num("n", r$10[1], ff[1]);
		if (oa.charAt(oa.length - 1) == " ") oa = oa.substr(0, oa.length - 1) + "0";
		o$10 += oa + r$10[2] + "/" + r$10[3];
		oa = rpad_(ff[2], ri);
		if (oa.length < r$10[4].length) oa = hashq(r$10[4].substr(r$10[4].length - oa.length)) + oa;
		o$10 += oa;
		return o$10;
	}
	if (r$10 = fmt.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/)) {
		ri = Math.min(Math.max(r$10[1].length, r$10[4].length), 7);
		ff = SSF_frac(aval, Math.pow(10, ri) - 1, true);
		return sign + (ff[0] || (ff[1] ? "" : "0")) + " " + (ff[1] ? pad_(ff[1], ri) + r$10[2] + "/" + r$10[3] + rpad_(ff[2], ri) : fill(" ", 2 * ri + 1 + r$10[2].length + r$10[3].length));
	}
	if (r$10 = fmt.match(/^[#0?]+$/)) {
		o$10 = "" + val$1;
		if (fmt.length <= o$10.length) return o$10;
		return hashq(fmt.substr(0, fmt.length - o$10.length)) + o$10;
	}
	if (r$10 = fmt.match(/^([#0]+)\.([#0]+)$/)) {
		o$10 = "" + val$1.toFixed(Math.min(r$10[2].length, 10)).replace(/([^0])0+$/, "$1");
		ri = o$10.indexOf(".");
		var lres = fmt.indexOf(".") - ri, rres = fmt.length - o$10.length - lres;
		return hashq(fmt.substr(0, lres) + o$10 + fmt.substr(fmt.length - rres));
	}
	if (r$10 = fmt.match(/^00,000\.([#0]*0)$/)) {
		return val$1 < 0 ? "-" + write_num_int(type, fmt, -val$1) : commaify("" + val$1).replace(/^\d,\d{3}$/, "0$&").replace(/^\d*$/, function($$) {
			return "00," + ($$.length < 3 ? pad0(0, 3 - $$.length) : "") + $$;
		}) + "." + pad0(0, r$10[1].length);
	}
	switch (fmt) {
		case "###,###":
		case "##,###":
		case "#,###":
			var x$2 = commaify("" + aval);
			return x$2 !== "0" ? sign + x$2 : "";
		default: if (fmt.match(/\.[0#?]*$/)) return write_num_int(type, fmt.slice(0, fmt.lastIndexOf(".")), val$1) + hashq(fmt.slice(fmt.lastIndexOf(".")));
	}
	throw new Error("unsupported format |" + fmt + "|");
}
function write_num(type, fmt, val$1) {
	return (val$1 | 0) === val$1 ? write_num_int(type, fmt, val$1) : write_num_flt(type, fmt, val$1);
}
function SSF_split_fmt(fmt) {
	var out = [];
	var in_str = false;
	for (var i$7 = 0, j$2 = 0; i$7 < fmt.length; ++i$7) switch (fmt.charCodeAt(i$7)) {
		case 34:
			in_str = !in_str;
			break;
		case 95:
		case 42:
		case 92:
			++i$7;
			break;
		case 59:
			out[out.length] = fmt.substr(j$2, i$7 - j$2);
			j$2 = i$7 + 1;
	}
	out[out.length] = fmt.substr(j$2);
	if (in_str === true) throw new Error("Format |" + fmt + "| unterminated string ");
	return out;
}
function fmt_is_date(fmt) {
	var i$7 = 0, c$7 = "", o$10 = "";
	while (i$7 < fmt.length) {
		switch (c$7 = fmt.charAt(i$7)) {
			case "G":
				if (SSF_isgeneral(fmt, i$7)) i$7 += 6;
				i$7++;
				break;
			case "\"":
				for (; fmt.charCodeAt(++i$7) !== 34 && i$7 < fmt.length;) {}
				++i$7;
				break;
			case "\\":
				i$7 += 2;
				break;
			case "_":
				i$7 += 2;
				break;
			case "@":
				++i$7;
				break;
			case "B":
			case "b": if (fmt.charAt(i$7 + 1) === "1" || fmt.charAt(i$7 + 1) === "2") return true;
			case "M":
			case "D":
			case "Y":
			case "H":
			case "S":
			case "E":
			case "m":
			case "d":
			case "y":
			case "h":
			case "s":
			case "e":
			case "g": return true;
			case "A":
			case "a":
			case "上":
				if (fmt.substr(i$7, 3).toUpperCase() === "A/P") return true;
				if (fmt.substr(i$7, 5).toUpperCase() === "AM/PM") return true;
				if (fmt.substr(i$7, 5).toUpperCase() === "上午/下午") return true;
				++i$7;
				break;
			case "[":
				o$10 = c$7;
				while (fmt.charAt(i$7++) !== "]" && i$7 < fmt.length) o$10 += fmt.charAt(i$7);
				if (o$10.match(SSF_abstime)) return true;
				break;
			case ".":
			case "0":
			case "#":
				while (i$7 < fmt.length && ("0#?.,E+-%".indexOf(c$7 = fmt.charAt(++i$7)) > -1 || c$7 == "\\" && fmt.charAt(i$7 + 1) == "-" && "0#".indexOf(fmt.charAt(i$7 + 2)) > -1)) {}
				break;
			case "?":
				while (fmt.charAt(++i$7) === c$7) {}
				break;
			case "*":
				++i$7;
				if (fmt.charAt(i$7) == " " || fmt.charAt(i$7) == "*") ++i$7;
				break;
			case "(":
			case ")":
				++i$7;
				break;
			case "1":
			case "2":
			case "3":
			case "4":
			case "5":
			case "6":
			case "7":
			case "8":
			case "9":
				while (i$7 < fmt.length && "0123456789".indexOf(fmt.charAt(++i$7)) > -1) {}
				break;
			case " ":
				++i$7;
				break;
			default:
				++i$7;
				break;
		}
	}
	return false;
}
function eval_fmt(fmt, v$3, opts, flen) {
	var out = [], o$10 = "", i$7 = 0, c$7 = "", lst = "t", dt, j$2, cc;
	var hr = "H";
	while (i$7 < fmt.length) {
		switch (c$7 = fmt.charAt(i$7)) {
			case "G":
				if (!SSF_isgeneral(fmt, i$7)) throw new Error("unrecognized character " + c$7 + " in " + fmt);
				out[out.length] = {
					t: "G",
					v: "General"
				};
				i$7 += 7;
				break;
			case "\"":
				for (o$10 = ""; (cc = fmt.charCodeAt(++i$7)) !== 34 && i$7 < fmt.length;) o$10 += String.fromCharCode(cc);
				out[out.length] = {
					t: "t",
					v: o$10
				};
				++i$7;
				break;
			case "\\":
				var w$2 = fmt.charAt(++i$7), t$6 = w$2 === "(" || w$2 === ")" ? w$2 : "t";
				out[out.length] = {
					t: t$6,
					v: w$2
				};
				++i$7;
				break;
			case "_":
				out[out.length] = {
					t: "t",
					v: " "
				};
				i$7 += 2;
				break;
			case "@":
				out[out.length] = {
					t: "T",
					v: v$3
				};
				++i$7;
				break;
			case "B":
			case "b": if (fmt.charAt(i$7 + 1) === "1" || fmt.charAt(i$7 + 1) === "2") {
				if (dt == null) {
					dt = SSF_parse_date_code(v$3, opts, fmt.charAt(i$7 + 1) === "2");
					if (dt == null) return "";
				}
				out[out.length] = {
					t: "X",
					v: fmt.substr(i$7, 2)
				};
				lst = c$7;
				i$7 += 2;
				break;
			}
			case "M":
			case "D":
			case "Y":
			case "H":
			case "S":
			case "E": c$7 = c$7.toLowerCase();
			case "m":
			case "d":
			case "y":
			case "h":
			case "s":
			case "e":
			case "g":
				if (v$3 < 0) return "";
				if (dt == null) {
					dt = SSF_parse_date_code(v$3, opts);
					if (dt == null) return "";
				}
				o$10 = c$7;
				while (++i$7 < fmt.length && fmt.charAt(i$7).toLowerCase() === c$7) o$10 += c$7;
				if (c$7 === "m" && lst.toLowerCase() === "h") c$7 = "M";
				if (c$7 === "h") c$7 = hr;
				out[out.length] = {
					t: c$7,
					v: o$10
				};
				lst = c$7;
				break;
			case "A":
			case "a":
			case "上":
				var q$2 = {
					t: c$7,
					v: c$7
				};
				if (dt == null) dt = SSF_parse_date_code(v$3, opts);
				if (fmt.substr(i$7, 3).toUpperCase() === "A/P") {
					if (dt != null) q$2.v = dt.H >= 12 ? fmt.charAt(i$7 + 2) : c$7;
					q$2.t = "T";
					hr = "h";
					i$7 += 3;
				} else if (fmt.substr(i$7, 5).toUpperCase() === "AM/PM") {
					if (dt != null) q$2.v = dt.H >= 12 ? "PM" : "AM";
					q$2.t = "T";
					i$7 += 5;
					hr = "h";
				} else if (fmt.substr(i$7, 5).toUpperCase() === "上午/下午") {
					if (dt != null) q$2.v = dt.H >= 12 ? "下午" : "上午";
					q$2.t = "T";
					i$7 += 5;
					hr = "h";
				} else {
					q$2.t = "t";
					++i$7;
				}
				if (dt == null && q$2.t === "T") return "";
				out[out.length] = q$2;
				lst = c$7;
				break;
			case "[":
				o$10 = c$7;
				while (fmt.charAt(i$7++) !== "]" && i$7 < fmt.length) o$10 += fmt.charAt(i$7);
				if (o$10.slice(-1) !== "]") throw "unterminated \"[\" block: |" + o$10 + "|";
				if (o$10.match(SSF_abstime)) {
					if (dt == null) {
						dt = SSF_parse_date_code(v$3, opts);
						if (dt == null) return "";
					}
					out[out.length] = {
						t: "Z",
						v: o$10.toLowerCase()
					};
					lst = o$10.charAt(1);
				} else if (o$10.indexOf("$") > -1) {
					o$10 = (o$10.match(/\$([^-\[\]]*)/) || [])[1] || "$";
					if (!fmt_is_date(fmt)) out[out.length] = {
						t: "t",
						v: o$10
					};
				}
				break;
			case ".": if (dt != null) {
				o$10 = c$7;
				while (++i$7 < fmt.length && (c$7 = fmt.charAt(i$7)) === "0") o$10 += c$7;
				out[out.length] = {
					t: "s",
					v: o$10
				};
				break;
			}
			case "0":
			case "#":
				o$10 = c$7;
				while (++i$7 < fmt.length && "0#?.,E+-%".indexOf(c$7 = fmt.charAt(i$7)) > -1) o$10 += c$7;
				out[out.length] = {
					t: "n",
					v: o$10
				};
				break;
			case "?":
				o$10 = c$7;
				while (fmt.charAt(++i$7) === c$7) o$10 += c$7;
				out[out.length] = {
					t: c$7,
					v: o$10
				};
				lst = c$7;
				break;
			case "*":
				++i$7;
				if (fmt.charAt(i$7) == " " || fmt.charAt(i$7) == "*") ++i$7;
				break;
			case "(":
			case ")":
				out[out.length] = {
					t: flen === 1 ? "t" : c$7,
					v: c$7
				};
				++i$7;
				break;
			case "1":
			case "2":
			case "3":
			case "4":
			case "5":
			case "6":
			case "7":
			case "8":
			case "9":
				o$10 = c$7;
				while (i$7 < fmt.length && "0123456789".indexOf(fmt.charAt(++i$7)) > -1) o$10 += fmt.charAt(i$7);
				out[out.length] = {
					t: "D",
					v: o$10
				};
				break;
			case " ":
				out[out.length] = {
					t: c$7,
					v: c$7
				};
				++i$7;
				break;
			case "$":
				out[out.length] = {
					t: "t",
					v: "$"
				};
				++i$7;
				break;
			default:
				if (",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(c$7) === -1) throw new Error("unrecognized character " + c$7 + " in " + fmt);
				out[out.length] = {
					t: "t",
					v: c$7
				};
				++i$7;
				break;
		}
	}
	var bt = 0, ss0 = 0, ssm;
	for (i$7 = out.length - 1, lst = "t"; i$7 >= 0; --i$7) {
		switch (out[i$7].t) {
			case "h":
			case "H":
				out[i$7].t = hr;
				lst = "h";
				if (bt < 1) bt = 1;
				break;
			case "s":
				if (ssm = out[i$7].v.match(/\.0+$/)) {
					ss0 = Math.max(ss0, ssm[0].length - 1);
					bt = 4;
				}
				if (bt < 3) bt = 3;
			case "d":
			case "y":
			case "e":
				lst = out[i$7].t;
				break;
			case "M":
				lst = out[i$7].t;
				if (bt < 2) bt = 2;
				break;
			case "m":
				if (lst === "s") {
					out[i$7].t = "M";
					if (bt < 2) bt = 2;
				}
				break;
			case "X": break;
			case "Z":
				if (bt < 1 && out[i$7].v.match(/[Hh]/)) bt = 1;
				if (bt < 2 && out[i$7].v.match(/[Mm]/)) bt = 2;
				if (bt < 3 && out[i$7].v.match(/[Ss]/)) bt = 3;
		}
	}
	var _dt;
	switch (bt) {
		case 0: break;
		case 1:
		case 2:
		case 3:
			if (dt.u >= .5) {
				dt.u = 0;
				++dt.S;
			}
			if (dt.S >= 60) {
				dt.S = 0;
				++dt.M;
			}
			if (dt.M >= 60) {
				dt.M = 0;
				++dt.H;
			}
			if (dt.H >= 24) {
				dt.H = 0;
				++dt.D;
				_dt = SSF_parse_date_code(dt.D);
				_dt.u = dt.u;
				_dt.S = dt.S;
				_dt.M = dt.M;
				_dt.H = dt.H;
				dt = _dt;
			}
			break;
		case 4:
			switch (ss0) {
				case 1:
					dt.u = Math.round(dt.u * 10) / 10;
					break;
				case 2:
					dt.u = Math.round(dt.u * 100) / 100;
					break;
				case 3:
					dt.u = Math.round(dt.u * 1e3) / 1e3;
					break;
			}
			if (dt.u >= 1) {
				dt.u = 0;
				++dt.S;
			}
			if (dt.S >= 60) {
				dt.S = 0;
				++dt.M;
			}
			if (dt.M >= 60) {
				dt.M = 0;
				++dt.H;
			}
			if (dt.H >= 24) {
				dt.H = 0;
				++dt.D;
				_dt = SSF_parse_date_code(dt.D);
				_dt.u = dt.u;
				_dt.S = dt.S;
				_dt.M = dt.M;
				_dt.H = dt.H;
				dt = _dt;
			}
			break;
	}
	var nstr = "", jj;
	for (i$7 = 0; i$7 < out.length; ++i$7) {
		switch (out[i$7].t) {
			case "t":
			case "T":
			case " ":
			case "D": break;
			case "X":
				out[i$7].v = "";
				out[i$7].t = ";";
				break;
			case "d":
			case "m":
			case "y":
			case "h":
			case "H":
			case "M":
			case "s":
			case "e":
			case "b":
			case "Z":
				out[i$7].v = SSF_write_date(out[i$7].t.charCodeAt(0), out[i$7].v, dt, ss0);
				out[i$7].t = "t";
				break;
			case "n":
			case "?":
				jj = i$7 + 1;
				while (out[jj] != null && ((c$7 = out[jj].t) === "?" || c$7 === "D" || (c$7 === " " || c$7 === "t") && out[jj + 1] != null && (out[jj + 1].t === "?" || out[jj + 1].t === "t" && out[jj + 1].v === "/") || out[i$7].t === "(" && (c$7 === " " || c$7 === "n" || c$7 === ")") || c$7 === "t" && (out[jj].v === "/" || out[jj].v === " " && out[jj + 1] != null && out[jj + 1].t == "?"))) {
					out[i$7].v += out[jj].v;
					out[jj] = {
						v: "",
						t: ";"
					};
					++jj;
				}
				nstr += out[i$7].v;
				i$7 = jj - 1;
				break;
			case "G":
				out[i$7].t = "t";
				out[i$7].v = SSF_general(v$3, opts);
				break;
		}
	}
	var vv = "", myv, ostr;
	if (nstr.length > 0) {
		if (nstr.charCodeAt(0) == 40) {
			myv = v$3 < 0 && nstr.charCodeAt(0) === 45 ? -v$3 : v$3;
			ostr = write_num("n", nstr, myv);
		} else {
			myv = v$3 < 0 && flen > 1 ? -v$3 : v$3;
			ostr = write_num("n", nstr, myv);
			if (myv < 0 && out[0] && out[0].t == "t") {
				ostr = ostr.substr(1);
				out[0].v = "-" + out[0].v;
			}
		}
		jj = ostr.length - 1;
		var decpt = out.length;
		for (i$7 = 0; i$7 < out.length; ++i$7) if (out[i$7] != null && out[i$7].t != "t" && out[i$7].v.indexOf(".") > -1) {
			decpt = i$7;
			break;
		}
		var lasti = out.length;
		if (decpt === out.length && ostr.indexOf("E") === -1) {
			for (i$7 = out.length - 1; i$7 >= 0; --i$7) {
				if (out[i$7] == null || "n?".indexOf(out[i$7].t) === -1) continue;
				if (jj >= out[i$7].v.length - 1) {
					jj -= out[i$7].v.length;
					out[i$7].v = ostr.substr(jj + 1, out[i$7].v.length);
				} else if (jj < 0) out[i$7].v = "";
				else {
					out[i$7].v = ostr.substr(0, jj + 1);
					jj = -1;
				}
				out[i$7].t = "t";
				lasti = i$7;
			}
			if (jj >= 0 && lasti < out.length) out[lasti].v = ostr.substr(0, jj + 1) + out[lasti].v;
		} else if (decpt !== out.length && ostr.indexOf("E") === -1) {
			jj = ostr.indexOf(".") - 1;
			for (i$7 = decpt; i$7 >= 0; --i$7) {
				if (out[i$7] == null || "n?".indexOf(out[i$7].t) === -1) continue;
				j$2 = out[i$7].v.indexOf(".") > -1 && i$7 === decpt ? out[i$7].v.indexOf(".") - 1 : out[i$7].v.length - 1;
				vv = out[i$7].v.substr(j$2 + 1);
				for (; j$2 >= 0; --j$2) {
					if (jj >= 0 && (out[i$7].v.charAt(j$2) === "0" || out[i$7].v.charAt(j$2) === "#")) vv = ostr.charAt(jj--) + vv;
				}
				out[i$7].v = vv;
				out[i$7].t = "t";
				lasti = i$7;
			}
			if (jj >= 0 && lasti < out.length) out[lasti].v = ostr.substr(0, jj + 1) + out[lasti].v;
			jj = ostr.indexOf(".") + 1;
			for (i$7 = decpt; i$7 < out.length; ++i$7) {
				if (out[i$7] == null || "n?(".indexOf(out[i$7].t) === -1 && i$7 !== decpt) continue;
				j$2 = out[i$7].v.indexOf(".") > -1 && i$7 === decpt ? out[i$7].v.indexOf(".") + 1 : 0;
				vv = out[i$7].v.substr(0, j$2);
				for (; j$2 < out[i$7].v.length; ++j$2) {
					if (jj < ostr.length) vv += ostr.charAt(jj++);
				}
				out[i$7].v = vv;
				out[i$7].t = "t";
				lasti = i$7;
			}
		}
	}
	for (i$7 = 0; i$7 < out.length; ++i$7) if (out[i$7] != null && "n?".indexOf(out[i$7].t) > -1) {
		myv = flen > 1 && v$3 < 0 && i$7 > 0 && out[i$7 - 1].v === "-" ? -v$3 : v$3;
		out[i$7].v = write_num(out[i$7].t, out[i$7].v, myv);
		out[i$7].t = "t";
	}
	var retval = "";
	for (i$7 = 0; i$7 !== out.length; ++i$7) if (out[i$7] != null) retval += out[i$7].v;
	return retval;
}
function chkcond(v$3, rr) {
	if (rr == null) return false;
	var thresh = parseFloat(rr[2]);
	switch (rr[1]) {
		case "=":
			if (v$3 == thresh) return true;
			break;
		case ">":
			if (v$3 > thresh) return true;
			break;
		case "<":
			if (v$3 < thresh) return true;
			break;
		case "<>":
			if (v$3 != thresh) return true;
			break;
		case ">=":
			if (v$3 >= thresh) return true;
			break;
		case "<=":
			if (v$3 <= thresh) return true;
			break;
	}
	return false;
}
function choose_fmt(f$4, v$3) {
	var fmt = SSF_split_fmt(f$4);
	var l$3 = fmt.length, lat = fmt[l$3 - 1].indexOf("@");
	if (l$3 < 4 && lat > -1) --l$3;
	if (fmt.length > 4) throw new Error("cannot find right format for |" + fmt.join("|") + "|");
	if (typeof v$3 !== "number") return [4, fmt.length === 4 || lat > -1 ? fmt[fmt.length - 1] : "@"];
	if (typeof v$3 === "number" && !isFinite(v$3)) v$3 = 0;
	switch (fmt.length) {
		case 1:
			fmt = lat > -1 ? [
				"General",
				"General",
				"General",
				fmt[0]
			] : [
				fmt[0],
				fmt[0],
				fmt[0],
				"@"
			];
			break;
		case 2:
			fmt = lat > -1 ? [
				fmt[0],
				fmt[0],
				fmt[0],
				fmt[1]
			] : [
				fmt[0],
				fmt[1],
				fmt[0],
				"@"
			];
			break;
		case 3:
			fmt = lat > -1 ? [
				fmt[0],
				fmt[1],
				fmt[0],
				fmt[2]
			] : [
				fmt[0],
				fmt[1],
				fmt[2],
				"@"
			];
			break;
		case 4: break;
	}
	var ff = v$3 > 0 ? fmt[0] : v$3 < 0 ? fmt[1] : fmt[2];
	if (fmt[0].indexOf("[") === -1 && fmt[1].indexOf("[") === -1) return [l$3, ff];
	if (fmt[0].match(/\[[=<>]/) != null || fmt[1].match(/\[[=<>]/) != null) {
		var m1 = fmt[0].match(cfregex2);
		var m2 = fmt[1].match(cfregex2);
		return chkcond(v$3, m1) ? [l$3, fmt[0]] : chkcond(v$3, m2) ? [l$3, fmt[1]] : [l$3, fmt[m1 != null && m2 != null ? 2 : 1]];
	}
	return [l$3, ff];
}
function SSF_format(fmt, v$3, o$10) {
	if (o$10 == null) o$10 = {};
	var sfmt = "";
	switch (typeof fmt) {
		case "string":
			if (fmt == "m/d/yy" && o$10.dateNF) sfmt = o$10.dateNF;
			else sfmt = fmt;
			break;
		case "number":
			if (fmt == 14 && o$10.dateNF) sfmt = o$10.dateNF;
			else sfmt = (o$10.table != null ? o$10.table : table_fmt)[fmt];
			if (sfmt == null) sfmt = o$10.table && o$10.table[SSF_default_map[fmt]] || table_fmt[SSF_default_map[fmt]];
			if (sfmt == null) sfmt = SSF_default_str[fmt] || "General";
			break;
	}
	if (SSF_isgeneral(sfmt, 0)) return SSF_general(v$3, o$10);
	if (v$3 instanceof Date) v$3 = datenum(v$3, o$10.date1904);
	var f$4 = choose_fmt(sfmt, v$3);
	if (SSF_isgeneral(f$4[1])) return SSF_general(v$3, o$10);
	if (v$3 === true) v$3 = "TRUE";
	else if (v$3 === false) v$3 = "FALSE";
	else if (v$3 === "" || v$3 == null) return "";
	else if (isNaN(v$3) && f$4[1].indexOf("0") > -1) return "#NUM!";
	else if (!isFinite(v$3) && f$4[1].indexOf("0") > -1) return "#DIV/0!";
	return eval_fmt(f$4[1], v$3, o$10, f$4[0]);
}
function SSF_load(fmt, idx) {
	if (typeof idx != "number") {
		idx = +idx || -1;
		for (var i$7 = 0; i$7 < 392; ++i$7) {
			if (table_fmt[i$7] == undefined) {
				if (idx < 0) idx = i$7;
				continue;
			}
			if (table_fmt[i$7] == fmt) {
				idx = i$7;
				break;
			}
		}
		if (idx < 0) idx = 391;
	}
	table_fmt[idx] = fmt;
	return idx;
}
function SSF_load_table(tbl) {
	for (var i$7 = 0; i$7 != 392; ++i$7) if (tbl[i$7] !== undefined) SSF_load(tbl[i$7], i$7);
}
function make_ssf() {
	table_fmt = SSF_init_table();
}
function dateNF_regex(dateNF) {
	var fmt = typeof dateNF == "number" ? table_fmt[dateNF] : dateNF;
	fmt = fmt.replace(dateNFregex, "(\\d+)");
	dateNFregex.lastIndex = 0;
	return new RegExp("^" + fmt + "$");
}
function dateNF_fix(str, dateNF, match) {
	var Y = -1, m$3 = -1, d$5 = -1, H$1 = -1, M$3 = -1, S$4 = -1;
	(dateNF.match(dateNFregex) || []).forEach(function(n$9, i$7) {
		var v$3 = parseInt(match[i$7 + 1], 10);
		switch (n$9.toLowerCase().charAt(0)) {
			case "y":
				Y = v$3;
				break;
			case "d":
				d$5 = v$3;
				break;
			case "h":
				H$1 = v$3;
				break;
			case "s":
				S$4 = v$3;
				break;
			case "m":
				if (H$1 >= 0) M$3 = v$3;
				else m$3 = v$3;
				break;
		}
	});
	dateNFregex.lastIndex = 0;
	if (S$4 >= 0 && M$3 == -1 && m$3 >= 0) {
		M$3 = m$3;
		m$3 = -1;
	}
	var datestr = ("" + (Y >= 0 ? Y : new Date().getFullYear())).slice(-4) + "-" + ("00" + (m$3 >= 1 ? m$3 : 1)).slice(-2) + "-" + ("00" + (d$5 >= 1 ? d$5 : 1)).slice(-2);
	if (datestr.length == 7) datestr = "0" + datestr;
	if (datestr.length == 8) datestr = "20" + datestr;
	var timestr = ("00" + (H$1 >= 0 ? H$1 : 0)).slice(-2) + ":" + ("00" + (M$3 >= 0 ? M$3 : 0)).slice(-2) + ":" + ("00" + (S$4 >= 0 ? S$4 : 0)).slice(-2);
	if (H$1 == -1 && M$3 == -1 && S$4 == -1) return datestr;
	if (Y == -1 && m$3 == -1 && d$5 == -1) return timestr;
	return datestr + "T" + timestr;
}
function SSF__load(fmt, idx) {
	return SSF_load(bad_formats[fmt] || fmt, idx);
}
function set_fs(fs) {
	_fs = fs;
}
function blobify(data) {
	if (typeof data === "string") return s2ab(data);
	if (Array.isArray(data)) return a2u(data);
	return data;
}
function write_dl(fname, payload, enc) {
	if (typeof _fs !== "undefined" && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);
	if (typeof Deno !== "undefined") {
		if (enc && typeof payload == "string") switch (enc) {
			case "utf8":
				payload = new TextEncoder(enc).encode(payload);
				break;
			case "binary":
				payload = s2ab(payload);
				break;
			default: throw new Error("Unsupported encoding " + enc);
		}
		return Deno.writeFileSync(fname, payload);
	}
	var data = enc == "utf8" ? utf8write(payload) : payload;
	if (typeof IE_SaveFile !== "undefined") return IE_SaveFile(data, fname);
	if (typeof Blob !== "undefined") {
		var blob = new Blob([blobify(data)], { type: "application/octet-stream" });
		if (typeof navigator !== "undefined" && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);
		if (typeof saveAs !== "undefined") return saveAs(blob, fname);
		if (typeof URL !== "undefined" && typeof document !== "undefined" && document.createElement && URL.createObjectURL) {
			var url = URL.createObjectURL(blob);
			if (typeof chrome === "object" && typeof (chrome.downloads || {}).download == "function") {
				if (URL.revokeObjectURL && typeof setTimeout !== "undefined") setTimeout(function() {
					URL.revokeObjectURL(url);
				}, 6e4);
				return chrome.downloads.download({
					url,
					filename: fname,
					saveAs: true
				});
			}
			var a$2 = document.createElement("a");
			if (a$2.download != null) {
				a$2.download = fname;
				a$2.href = url;
				document.body.appendChild(a$2);
				a$2.click();
				document.body.removeChild(a$2);
				if (URL.revokeObjectURL && typeof setTimeout !== "undefined") setTimeout(function() {
					URL.revokeObjectURL(url);
				}, 6e4);
				return url;
			}
		} else if (typeof URL !== "undefined" && !URL.createObjectURL && typeof chrome === "object") {
			var b64 = "data:application/octet-stream;base64," + Base64_encode_arr(new Uint8Array(blobify(data)));
			return chrome.downloads.download({
				url: b64,
				filename: fname,
				saveAs: true
			});
		}
	}
	if (typeof $ !== "undefined" && typeof File !== "undefined" && typeof Folder !== "undefined") try {
		var out = File(fname);
		out.open("w");
		out.encoding = "binary";
		if (Array.isArray(payload)) payload = a2s(payload);
		out.write(payload);
		out.close();
		return payload;
	} catch (e$10) {
		if (!e$10.message || e$10.message.indexOf("onstruct") == -1) throw e$10;
	}
	throw new Error("cannot save file " + fname);
}
function read_binary(path$1) {
	if (typeof _fs !== "undefined") return _fs.readFileSync(path$1);
	if (typeof Deno !== "undefined") return Deno.readFileSync(path$1);
	if (typeof $ !== "undefined" && typeof File !== "undefined" && typeof Folder !== "undefined") try {
		var infile = File(path$1);
		infile.open("r");
		infile.encoding = "binary";
		var data = infile.read();
		infile.close();
		return data;
	} catch (e$10) {
		if (!e$10.message || e$10.message.indexOf("onstruct") == -1) throw e$10;
	}
	throw new Error("Cannot access file " + path$1);
}
function keys(o$10) {
	var ks = Object.keys(o$10), o2 = [];
	for (var i$7 = 0; i$7 < ks.length; ++i$7) if (Object.prototype.hasOwnProperty.call(o$10, ks[i$7])) o2.push(ks[i$7]);
	return o2;
}
function evert_key(obj, key) {
	var o$10 = [], K$1 = keys(obj);
	for (var i$7 = 0; i$7 !== K$1.length; ++i$7) if (o$10[obj[K$1[i$7]][key]] == null) o$10[obj[K$1[i$7]][key]] = K$1[i$7];
	return o$10;
}
function evert(obj) {
	var o$10 = [], K$1 = keys(obj);
	for (var i$7 = 0; i$7 !== K$1.length; ++i$7) o$10[obj[K$1[i$7]]] = K$1[i$7];
	return o$10;
}
function evert_num(obj) {
	var o$10 = [], K$1 = keys(obj);
	for (var i$7 = 0; i$7 !== K$1.length; ++i$7) o$10[obj[K$1[i$7]]] = parseInt(K$1[i$7], 10);
	return o$10;
}
function evert_arr(obj) {
	var o$10 = [], K$1 = keys(obj);
	for (var i$7 = 0; i$7 !== K$1.length; ++i$7) {
		if (o$10[obj[K$1[i$7]]] == null) o$10[obj[K$1[i$7]]] = [];
		o$10[obj[K$1[i$7]]].push(K$1[i$7]);
	}
	return o$10;
}
function datenum(v$3, date1904) {
	var epoch = /* @__PURE__ */ v$3.getTime();
	var res = (epoch - dnthresh) / (24 * 60 * 60 * 1e3);
	if (date1904) {
		res -= 1462;
		return res < -1402 ? res - 1 : res;
	}
	return res < 60 ? res - 1 : res;
}
function numdate(v$3) {
	if (v$3 >= 60 && v$3 < 61) return v$3;
	var out = new Date();
	out.setTime((v$3 > 60 ? v$3 : v$3 + 1) * 24 * 60 * 60 * 1e3 + dnthresh);
	return out;
}
function parse_isodur(s$5) {
	var sec = 0, mt = 0, time = false;
	var m$3 = s$5.match(/P([0-9\.]+Y)?([0-9\.]+M)?([0-9\.]+D)?T([0-9\.]+H)?([0-9\.]+M)?([0-9\.]+S)?/);
	if (!m$3) throw new Error("|" + s$5 + "| is not an ISO8601 Duration");
	for (var i$7 = 1; i$7 != m$3.length; ++i$7) {
		if (!m$3[i$7]) continue;
		mt = 1;
		if (i$7 > 3) time = true;
		switch (m$3[i$7].slice(m$3[i$7].length - 1)) {
			case "Y": throw new Error("Unsupported ISO Duration Field: " + m$3[i$7].slice(m$3[i$7].length - 1));
			case "D": mt *= 24;
			case "H": mt *= 60;
			case "M": if (!time) throw new Error("Unsupported ISO Duration Field: M");
			else mt *= 60;
			case "S": break;
		}
		sec += mt * parseInt(m$3[i$7], 10);
	}
	return sec;
}
function parseDate(str, date1904) {
	if (str instanceof Date) return str;
	var m$3 = str.match(pdre1);
	if (m$3) return new Date((date1904 ? dnthresh2 : dnthresh1) + ((parseInt(m$3[1], 10) * 60 + parseInt(m$3[2], 10)) * 60 + (m$3[3] ? parseInt(m$3[3].slice(1), 10) : 0)) * 1e3 + (m$3[4] ? parseInt((m$3[4] + "000").slice(1, 4), 10) : 0));
	m$3 = str.match(pdre2);
	if (m$3) return new Date(Date.UTC(+m$3[1], +m$3[2] - 1, +m$3[3], 0, 0, 0, 0));
	m$3 = str.match(pdre3);
	if (m$3) return new Date(Date.UTC(+m$3[1], +m$3[2] - 1, +m$3[3], +m$3[4], +m$3[5], m$3[6] && parseInt(m$3[6].slice(1), 10) || 0, m$3[7] && parseInt((m$3[7] + "0000").slice(1, 4), 10) || 0));
	var d$5 = new Date(str);
	return d$5;
}
function cc2str(arr, debomit) {
	if (has_buf && Buffer.isBuffer(arr)) {
		if (debomit && buf_utf16le) {
			if (arr[0] == 255 && arr[1] == 254) return utf8write(arr.slice(2).toString("utf16le"));
			if (arr[1] == 254 && arr[2] == 255) return utf8write(utf16beread(arr.slice(2).toString("binary")));
		}
		return arr.toString("binary");
	}
	if (typeof TextDecoder !== "undefined") try {
		if (debomit) {
			if (arr[0] == 255 && arr[1] == 254) return utf8write(new TextDecoder("utf-16le").decode(arr.slice(2)));
			if (arr[0] == 254 && arr[1] == 255) return utf8write(new TextDecoder("utf-16be").decode(arr.slice(2)));
		}
		var rev = {
			"€": "",
			"‚": "",
			"ƒ": "",
			"„": "",
			"…": "",
			"†": "",
			"‡": "",
			"ˆ": "",
			"‰": "",
			"Š": "",
			"‹": "",
			"Œ": "",
			"Ž": "",
			"‘": "",
			"’": "",
			"“": "",
			"”": "",
			"•": "",
			"–": "",
			"—": "",
			"˜": "",
			"™": "",
			"š": "",
			"›": "",
			"œ": "",
			"ž": "",
			"Ÿ": ""
		};
		if (Array.isArray(arr)) arr = new Uint8Array(arr);
		return new TextDecoder("latin1").decode(arr).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g, function(c$7) {
			return rev[c$7] || c$7;
		});
	} catch (e$10) {}
	var o$10 = [], i$7 = 0;
	try {
		for (i$7 = 0; i$7 < arr.length - 65536; i$7 += 65536) o$10.push(String.fromCharCode.apply(0, arr.slice(i$7, i$7 + 65536)));
		o$10.push(String.fromCharCode.apply(0, arr.slice(i$7)));
	} catch (e$10) {
		try {
			for (; i$7 < arr.length - 16384; i$7 += 16384) o$10.push(String.fromCharCode.apply(0, arr.slice(i$7, i$7 + 16384)));
			o$10.push(String.fromCharCode.apply(0, arr.slice(i$7)));
		} catch (e$11) {
			for (; i$7 != arr.length; ++i$7) o$10.push(String.fromCharCode(arr[i$7]));
		}
	}
	return o$10.join("");
}
function dup(o$10) {
	if (typeof JSON != "undefined" && !Array.isArray(o$10)) return JSON.parse(JSON.stringify(o$10));
	if (typeof o$10 != "object" || o$10 == null) return o$10;
	if (o$10 instanceof Date) return new Date(o$10.getTime());
	var out = {};
	for (var k$2 in o$10) if (Object.prototype.hasOwnProperty.call(o$10, k$2)) out[k$2] = dup(o$10[k$2]);
	return out;
}
function fill(c$7, l$3) {
	var o$10 = "";
	while (o$10.length < l$3) o$10 += c$7;
	return o$10;
}
function fuzzynum(s$5) {
	var v$3 = Number(s$5);
	if (!isNaN(v$3)) return isFinite(v$3) ? v$3 : NaN;
	if (!/\d/.test(s$5)) return v$3;
	var wt = 1;
	var ss = s$5.replace(/([\d]),([\d])/g, "$1$2").replace(/[$]/g, "").replace(/[%]/g, function() {
		wt *= 100;
		return "";
	});
	if (!isNaN(v$3 = Number(ss))) return v$3 / wt;
	ss = ss.replace(/[(]([^()]*)[)]/, function($$, $1) {
		wt = -wt;
		return $1;
	});
	if (!isNaN(v$3 = Number(ss))) return v$3 / wt;
	return v$3;
}
function fuzzytime1(M$3) {
	if (!M$3[2]) return new Date(Date.UTC(1899, 11, 31, +M$3[1] % 12 + (M$3[7] == "p" ? 12 : 0), 0, 0, 0));
	if (M$3[3]) {
		if (M$3[4]) return new Date(Date.UTC(1899, 11, 31, +M$3[1] % 12 + (M$3[7] == "p" ? 12 : 0), +M$3[2], +M$3[4], parseFloat(M$3[3]) * 1e3));
		else return new Date(Date.UTC(1899, 11, 31, M$3[7] == "p" ? 12 : 0, +M$3[1], +M$3[2], parseFloat(M$3[3]) * 1e3));
	} else if (M$3[5]) return new Date(Date.UTC(1899, 11, 31, +M$3[1] % 12 + (M$3[7] == "p" ? 12 : 0), +M$3[2], +M$3[5], M$3[6] ? parseFloat(M$3[6]) * 1e3 : 0));
	else return new Date(Date.UTC(1899, 11, 31, +M$3[1] % 12 + (M$3[7] == "p" ? 12 : 0), +M$3[2], 0, 0));
}
function fuzzytime2(M$3) {
	if (!M$3[2]) return new Date(Date.UTC(1899, 11, 31, +M$3[1], 0, 0, 0));
	if (M$3[3]) {
		if (M$3[4]) return new Date(Date.UTC(1899, 11, 31, +M$3[1], +M$3[2], +M$3[4], parseFloat(M$3[3]) * 1e3));
		else return new Date(Date.UTC(1899, 11, 31, 0, +M$3[1], +M$3[2], parseFloat(M$3[3]) * 1e3));
	} else if (M$3[5]) return new Date(Date.UTC(1899, 11, 31, +M$3[1], +M$3[2], +M$3[5], M$3[6] ? parseFloat(M$3[6]) * 1e3 : 0));
	else return new Date(Date.UTC(1899, 11, 31, +M$3[1], +M$3[2], 0, 0));
}
function fuzzydate(s$5) {
	if (FDISO.test(s$5)) return s$5.indexOf("Z") == -1 ? local_to_utc(new Date(s$5)) : new Date(s$5);
	var lower = s$5.toLowerCase();
	var lnos = lower.replace(/\s+/g, " ").trim();
	var M$3 = lnos.match(FDRE1);
	if (M$3) return fuzzytime1(M$3);
	M$3 = lnos.match(FDRE2);
	if (M$3) return fuzzytime2(M$3);
	M$3 = lnos.match(pdre3);
	if (M$3) return new Date(Date.UTC(+M$3[1], +M$3[2] - 1, +M$3[3], +M$3[4], +M$3[5], M$3[6] && parseInt(M$3[6].slice(1), 10) || 0, M$3[7] && parseInt((M$3[7] + "0000").slice(1, 4), 10) || 0));
	var o$10 = new Date(utc_append_works && s$5.indexOf("UTC") == -1 ? s$5 + " UTC" : s$5), n$9 = new Date(NaN);
	var y$3 = o$10.getYear(), m$3 = o$10.getMonth(), d$5 = o$10.getDate();
	if (isNaN(d$5)) return n$9;
	if (lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {
		lower = lower.replace(/[^a-z]/g, "").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/, "");
		if (lower.length > 3 && lower_months.indexOf(lower) == -1) return n$9;
	} else if (lower.replace(/[ap]m?/, "").match(/[a-z]/)) return n$9;
	if (y$3 < 0 || y$3 > 8099 || s$5.match(/[^-0-9:,\/\\\ ]/)) return n$9;
	return o$10;
}
function utc_to_local(utc) {
	return new Date(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate(), utc.getUTCHours(), utc.getUTCMinutes(), utc.getUTCSeconds(), utc.getUTCMilliseconds());
}
function local_to_utc(local) {
	return new Date(Date.UTC(local.getFullYear(), local.getMonth(), local.getDate(), local.getHours(), local.getMinutes(), local.getSeconds(), local.getMilliseconds()));
}
function remove_doctype(str) {
	var preamble = str.slice(0, 1024);
	var si = preamble.indexOf("<!DOCTYPE");
	if (si == -1) return str;
	var m$3 = str.match(/<[\w]/);
	if (!m$3) return str;
	return str.slice(0, si) + str.slice(m$3.index);
}
function str_match_ng(str, s$5, e$10) {
	var out = [];
	var si = str.indexOf(s$5);
	while (si > -1) {
		var ei = str.indexOf(e$10, si + s$5.length);
		if (ei == -1) break;
		out.push(str.slice(si, ei + e$10.length));
		si = str.indexOf(s$5, ei + e$10.length);
	}
	return out.length > 0 ? out : null;
}
function str_remove_ng(str, s$5, e$10) {
	var out = [], last = 0;
	var si = str.indexOf(s$5);
	if (si == -1) return str;
	while (si > -1) {
		out.push(str.slice(last, si));
		var ei = str.indexOf(e$10, si + s$5.length);
		if (ei == -1) break;
		if ((si = str.indexOf(s$5, last = ei + e$10.length)) == -1) out.push(str.slice(last));
	}
	return out.join("");
}
function str_match_xml(str, tag) {
	var si = str.indexOf("<" + tag), w$2 = tag.length + 1, L$2 = str.length;
	while (si >= 0 && si <= L$2 - w$2 && !xml_boundary[str.charAt(si + w$2)]) si = str.indexOf("<" + tag, si + 1);
	if (si === -1) return null;
	var sf = str.indexOf(">", si + tag.length);
	if (sf === -1) return null;
	var et = "</" + tag + ">";
	var ei = str.indexOf(et, sf);
	if (ei == -1) return null;
	return [str.slice(si, ei + et.length), str.slice(sf + 1, ei)];
}
function getdatastr(data) {
	if (!data) return null;
	if (data.content && data.type) return cc2str(data.content, true);
	if (data.data) return debom(data.data);
	if (data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString("binary"));
	if (data.asBinary) return debom(data.asBinary());
	if (data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(), 0)));
	return null;
}
function getdatabin(data) {
	if (!data) return null;
	if (data.data) return char_codes(data.data);
	if (data.asNodeBuffer && has_buf) return data.asNodeBuffer();
	if (data._data && data._data.getContent) {
		var o$10 = data._data.getContent();
		if (typeof o$10 == "string") return char_codes(o$10);
		return Array.prototype.slice.call(o$10);
	}
	if (data.content && data.type) return data.content;
	return null;
}
function getdata(data) {
	return data && data.name.slice(-4) === ".bin" ? getdatabin(data) : getdatastr(data);
}
function safegetzipfile(zip, file) {
	var k$2 = zip.FullPaths || keys(zip.files);
	var f$4 = file.toLowerCase().replace(/[\/]/g, "\\"), g$1 = f$4.replace(/\\/g, "/");
	for (var i$7 = 0; i$7 < k$2.length; ++i$7) {
		var n$9 = k$2[i$7].replace(/^Root Entry[\/]/, "").toLowerCase();
		if (f$4 == n$9 || g$1 == n$9) return zip.files ? zip.files[k$2[i$7]] : zip.FileIndex[i$7];
	}
	return null;
}
function getzipfile(zip, file) {
	var o$10 = safegetzipfile(zip, file);
	if (o$10 == null) throw new Error("Cannot find file " + file + " in zip");
	return o$10;
}
function getzipdata(zip, file, safe) {
	if (!safe) return getdata(getzipfile(zip, file));
	if (!file) return null;
	try {
		return getzipdata(zip, file);
	} catch (e$10) {
		return null;
	}
}
function getzipstr(zip, file, safe) {
	if (!safe) return getdatastr(getzipfile(zip, file));
	if (!file) return null;
	try {
		return getzipstr(zip, file);
	} catch (e$10) {
		return null;
	}
}
function getzipbin(zip, file, safe) {
	if (!safe) return getdatabin(getzipfile(zip, file));
	if (!file) return null;
	try {
		return getzipbin(zip, file);
	} catch (e$10) {
		return null;
	}
}
function zipentries(zip) {
	var k$2 = zip.FullPaths || keys(zip.files), o$10 = [];
	for (var i$7 = 0; i$7 < k$2.length; ++i$7) if (k$2[i$7].slice(-1) != "/") o$10.push(k$2[i$7].replace(/^Root Entry[\/]/, ""));
	return o$10.sort();
}
function zip_add_file(zip, path$1, content) {
	if (zip.FullPaths) {
		if (Array.isArray(content) && typeof content[0] == "string") {
			content = content.join("");
		}
		if (typeof content == "string") {
			var res;
			if (has_buf) res = Buffer_from(content);
			else res = utf8decode(content);
			return CFB.utils.cfb_add(zip, path$1, res);
		}
		CFB.utils.cfb_add(zip, path$1, content);
	} else zip.file(path$1, content);
}
function zip_new() {
	return CFB.utils.cfb_new();
}
function zip_read(d$5, o$10) {
	switch (o$10.type) {
		case "base64": return CFB.read(d$5, { type: "base64" });
		case "binary": return CFB.read(d$5, { type: "binary" });
		case "buffer":
		case "array": return CFB.read(d$5, { type: "buffer" });
	}
	throw new Error("Unrecognized type " + o$10.type);
}
function resolve_path(path$1, base) {
	if (path$1.charAt(0) == "/") return path$1.slice(1);
	var result = base.split("/");
	if (base.slice(-1) != "/") result.pop();
	var target = path$1.split("/");
	while (target.length !== 0) {
		var step = target.shift();
		if (step === "..") result.pop();
		else if (step !== ".") result.push(step);
	}
	return result.join("/");
}
function parsexmltag(tag, skip_root, skip_LC) {
	var z$2 = {};
	var eq = 0, c$7 = 0;
	for (; eq !== tag.length; ++eq) if ((c$7 = tag.charCodeAt(eq)) === 32 || c$7 === 10 || c$7 === 13) break;
	if (!skip_root) z$2[0] = tag.slice(0, eq);
	if (eq === tag.length) return z$2;
	var m$3 = tag.match(attregexg), j$2 = 0, v$3 = "", i$7 = 0, q$2 = "", cc = "", quot = 1;
	if (m$3) for (i$7 = 0; i$7 != m$3.length; ++i$7) {
		cc = m$3[i$7].slice(1);
		for (c$7 = 0; c$7 != cc.length; ++c$7) if (cc.charCodeAt(c$7) === 61) break;
		q$2 = cc.slice(0, c$7).trim();
		while (cc.charCodeAt(c$7 + 1) == 32) ++c$7;
		quot = (eq = cc.charCodeAt(c$7 + 1)) == 34 || eq == 39 ? 1 : 0;
		v$3 = cc.slice(c$7 + 1 + quot, cc.length - quot);
		for (j$2 = 0; j$2 != q$2.length; ++j$2) if (q$2.charCodeAt(j$2) === 58) break;
		if (j$2 === q$2.length) {
			if (q$2.indexOf("_") > 0) q$2 = q$2.slice(0, q$2.indexOf("_"));
			z$2[q$2] = v$3;
			if (!skip_LC) z$2[q$2.toLowerCase()] = v$3;
		} else {
			var k$2 = (j$2 === 5 && q$2.slice(0, 5) === "xmlns" ? "xmlns" : "") + q$2.slice(j$2 + 1);
			if (z$2[k$2] && q$2.slice(j$2 - 3, j$2) == "ext") continue;
			z$2[k$2] = v$3;
			if (!skip_LC) z$2[k$2.toLowerCase()] = v$3;
		}
	}
	return z$2;
}
function parsexmltagraw(tag, skip_root, skip_LC) {
	var z$2 = {};
	var eq = 0, c$7 = 0;
	for (; eq !== tag.length; ++eq) if ((c$7 = tag.charCodeAt(eq)) === 32 || c$7 === 10 || c$7 === 13) break;
	if (!skip_root) z$2[0] = tag.slice(0, eq);
	if (eq === tag.length) return z$2;
	var m$3 = tag.match(attregexg), j$2 = 0, v$3 = "", i$7 = 0, q$2 = "", cc = "", quot = 1;
	if (m$3) for (i$7 = 0; i$7 != m$3.length; ++i$7) {
		cc = m$3[i$7].slice(1);
		for (c$7 = 0; c$7 != cc.length; ++c$7) if (cc.charCodeAt(c$7) === 61) break;
		q$2 = cc.slice(0, c$7).trim();
		while (cc.charCodeAt(c$7 + 1) == 32) ++c$7;
		quot = (eq = cc.charCodeAt(c$7 + 1)) == 34 || eq == 39 ? 1 : 0;
		v$3 = cc.slice(c$7 + 1 + quot, cc.length - quot);
		if (q$2.indexOf("_") > 0) q$2 = q$2.slice(0, q$2.indexOf("_"));
		z$2[q$2] = v$3;
		if (!skip_LC) z$2[q$2.toLowerCase()] = v$3;
	}
	return z$2;
}
function strip_ns(x$2) {
	return x$2.replace(nsregex2, "<$1");
}
function escapexml(text$2) {
	var s$5 = text$2 + "";
	return s$5.replace(decregex, function(y$3) {
		return rencoding[y$3];
	}).replace(charegex, function(s$6) {
		return "_x" + ("000" + s$6.charCodeAt(0).toString(16)).slice(-4) + "_";
	});
}
function escapexmltag(text$2) {
	return escapexml(text$2).replace(/ /g, "_x0020_");
}
function escapehtml(text$2) {
	var s$5 = text$2 + "";
	return s$5.replace(decregex, function(y$3) {
		return rencoding[y$3];
	}).replace(/\n/g, "<br/>").replace(htmlcharegex, function(s$6) {
		return "&#x" + ("000" + s$6.charCodeAt(0).toString(16)).slice(-4) + ";";
	});
}
function escapexlml(text$2) {
	var s$5 = text$2 + "";
	return s$5.replace(decregex, function(y$3) {
		return rencoding[y$3];
	}).replace(htmlcharegex, function(s$6) {
		return "&#x" + s$6.charCodeAt(0).toString(16).toUpperCase() + ";";
	});
}
function xlml_unfixstr(str) {
	return str.replace(/(\r\n|[\r\n])/g, "&#10;");
}
function parsexmlbool(value) {
	switch (value) {
		case 1:
		case true:
		case "1":
		case "true": return true;
		case 0:
		case false:
		case "0":
		case "false": return false;
	}
	return false;
}
function utf8reada(orig) {
	var out = "", i$7 = 0, c$7 = 0, d$5 = 0, e$10 = 0, f$4 = 0, w$2 = 0;
	while (i$7 < orig.length) {
		c$7 = orig.charCodeAt(i$7++);
		if (c$7 < 128) {
			out += String.fromCharCode(c$7);
			continue;
		}
		d$5 = orig.charCodeAt(i$7++);
		if (c$7 > 191 && c$7 < 224) {
			f$4 = (c$7 & 31) << 6;
			f$4 |= d$5 & 63;
			out += String.fromCharCode(f$4);
			continue;
		}
		e$10 = orig.charCodeAt(i$7++);
		if (c$7 < 240) {
			out += String.fromCharCode((c$7 & 15) << 12 | (d$5 & 63) << 6 | e$10 & 63);
			continue;
		}
		f$4 = orig.charCodeAt(i$7++);
		w$2 = ((c$7 & 7) << 18 | (d$5 & 63) << 12 | (e$10 & 63) << 6 | f$4 & 63) - 65536;
		out += String.fromCharCode(55296 + (w$2 >>> 10 & 1023));
		out += String.fromCharCode(56320 + (w$2 & 1023));
	}
	return out;
}
function utf8readb(data) {
	var out = new_raw_buf(2 * data.length), w$2, i$7, j$2 = 1, k$2 = 0, ww = 0, c$7;
	for (i$7 = 0; i$7 < data.length; i$7 += j$2) {
		j$2 = 1;
		if ((c$7 = data.charCodeAt(i$7)) < 128) w$2 = c$7;
		else if (c$7 < 224) {
			w$2 = (c$7 & 31) * 64 + (data.charCodeAt(i$7 + 1) & 63);
			j$2 = 2;
		} else if (c$7 < 240) {
			w$2 = (c$7 & 15) * 4096 + (data.charCodeAt(i$7 + 1) & 63) * 64 + (data.charCodeAt(i$7 + 2) & 63);
			j$2 = 3;
		} else {
			j$2 = 4;
			w$2 = (c$7 & 7) * 262144 + (data.charCodeAt(i$7 + 1) & 63) * 4096 + (data.charCodeAt(i$7 + 2) & 63) * 64 + (data.charCodeAt(i$7 + 3) & 63);
			w$2 -= 65536;
			ww = 55296 + (w$2 >>> 10 & 1023);
			w$2 = 56320 + (w$2 & 1023);
		}
		if (ww !== 0) {
			out[k$2++] = ww & 255;
			out[k$2++] = ww >>> 8;
			ww = 0;
		}
		out[k$2++] = w$2 % 256;
		out[k$2++] = w$2 >>> 8;
	}
	return out.slice(0, k$2).toString("ucs2");
}
function utf8readc(data) {
	return Buffer_from(data, "binary").toString("utf8");
}
function parseVector(data, opts) {
	var h$5 = parsexmltag(data);
	var matches = str_match_xml_ns_g(data, h$5.baseType) || [];
	var res = [];
	if (matches.length != h$5.size) {
		if (opts.WTF) throw new Error("unexpected vector length " + matches.length + " != " + h$5.size);
		return res;
	}
	matches.forEach(function(x$2) {
		var v$3 = x$2.replace(vtvregex, "").match(vtmregex);
		if (v$3) res.push({
			v: utf8read(v$3[2]),
			t: v$3[1]
		});
	});
	return res;
}
function writetag(f$4, g$1) {
	return "<" + f$4 + (g$1.match(wtregex) ? " xml:space=\"preserve\"" : "") + ">" + g$1 + "</" + f$4 + ">";
}
function wxt_helper(h$5) {
	return keys(h$5).map(function(k$2) {
		return " " + k$2 + "=\"" + h$5[k$2] + "\"";
	}).join("");
}
function writextag(f$4, g$1, h$5) {
	return "<" + f$4 + (h$5 != null ? wxt_helper(h$5) : "") + (g$1 != null ? (g$1.match(wtregex) ? " xml:space=\"preserve\"" : "") + ">" + g$1 + "</" + f$4 : "/") + ">";
}
function write_w3cdtf(d$5, t$6) {
	try {
		return d$5.toISOString().replace(/\.\d*/, "");
	} catch (e$10) {
		if (t$6) throw e$10;
	}
	return "";
}
function write_vt(s$5, xlsx) {
	switch (typeof s$5) {
		case "string":
			var o$10 = writextag("vt:lpwstr", escapexml(s$5));
			if (xlsx) o$10 = o$10.replace(/&quot;/g, "_x0022_");
			return o$10;
		case "number": return writextag((s$5 | 0) == s$5 ? "vt:i4" : "vt:r8", escapexml(String(s$5)));
		case "boolean": return writextag("vt:bool", s$5 ? "true" : "false");
	}
	if (s$5 instanceof Date) return writextag("vt:filetime", write_w3cdtf(s$5));
	throw new Error("Unable to serialize " + s$5);
}
function xlml_normalize(d$5) {
	if (has_buf && Buffer.isBuffer(d$5)) return d$5.toString("utf8");
	if (typeof d$5 === "string") return d$5;
	if (typeof Uint8Array !== "undefined" && d$5 instanceof Uint8Array) return utf8read(a2s(ab2a(d$5)));
	throw new Error("Bad input format: expected Buffer or string");
}
function read_double_le(b$3, idx) {
	var s$5 = 1 - 2 * (b$3[idx + 7] >>> 7);
	var e$10 = ((b$3[idx + 7] & 127) << 4) + (b$3[idx + 6] >>> 4 & 15);
	var m$3 = b$3[idx + 6] & 15;
	for (var i$7 = 5; i$7 >= 0; --i$7) m$3 = m$3 * 256 + b$3[idx + i$7];
	if (e$10 == 2047) return m$3 == 0 ? s$5 * Infinity : NaN;
	if (e$10 == 0) e$10 = -1022;
	else {
		e$10 -= 1023;
		m$3 += Math.pow(2, 52);
	}
	return s$5 * Math.pow(2, e$10 - 52) * m$3;
}
function write_double_le(b$3, v$3, idx) {
	var bs = (v$3 < 0 || 1 / v$3 == -Infinity ? 1 : 0) << 7, e$10 = 0, m$3 = 0;
	var av = bs ? -v$3 : v$3;
	if (!isFinite(av)) {
		e$10 = 2047;
		m$3 = isNaN(v$3) ? 26985 : 0;
	} else if (av == 0) e$10 = m$3 = 0;
	else {
		e$10 = Math.floor(Math.log(av) / Math.LN2);
		m$3 = av * Math.pow(2, 52 - e$10);
		if (e$10 <= -1023 && (!isFinite(m$3) || m$3 < Math.pow(2, 52))) {
			e$10 = -1022;
		} else {
			m$3 -= Math.pow(2, 52);
			e$10 += 1023;
		}
	}
	for (var i$7 = 0; i$7 <= 5; ++i$7, m$3 /= 256) b$3[idx + i$7] = m$3 & 255;
	b$3[idx + 6] = (e$10 & 15) << 4 | m$3 & 15;
	b$3[idx + 7] = e$10 >> 4 | bs;
}
function cpdoit() {
	__utf16le = function(b$3, s$5, e$10) {
		return $cptable.utils.decode(1200, b$3.slice(s$5, e$10)).replace(chr0, "");
	};
	__utf8 = function(b$3, s$5, e$10) {
		return $cptable.utils.decode(65001, b$3.slice(s$5, e$10));
	};
	__lpstr = function(b$3, i$7) {
		var len = __readUInt32LE(b$3, i$7);
		return len > 0 ? $cptable.utils.decode(current_ansi, b$3.slice(i$7 + 4, i$7 + 4 + len - 1)) : "";
	};
	__cpstr = function(b$3, i$7) {
		var len = __readUInt32LE(b$3, i$7);
		return len > 0 ? $cptable.utils.decode(current_codepage, b$3.slice(i$7 + 4, i$7 + 4 + len - 1)) : "";
	};
	__lpwstr = function(b$3, i$7) {
		var len = 2 * __readUInt32LE(b$3, i$7);
		return len > 0 ? $cptable.utils.decode(1200, b$3.slice(i$7 + 4, i$7 + 4 + len - 1)) : "";
	};
	__lpp4 = function(b$3, i$7) {
		var len = __readUInt32LE(b$3, i$7);
		return len > 0 ? $cptable.utils.decode(1200, b$3.slice(i$7 + 4, i$7 + 4 + len)) : "";
	};
	__8lpp4 = function(b$3, i$7) {
		var len = __readUInt32LE(b$3, i$7);
		return len > 0 ? $cptable.utils.decode(65001, b$3.slice(i$7 + 4, i$7 + 4 + len)) : "";
	};
}
function ReadShift(size, t$6) {
	var o$10 = "", oI, oR, oo = [], w$2, vv, i$7, loc;
	switch (t$6) {
		case "dbcs":
			loc = this.l;
			if (has_buf && Buffer.isBuffer(this) && buf_utf16le) o$10 = this.slice(this.l, this.l + 2 * size).toString("utf16le");
			else for (i$7 = 0; i$7 < size; ++i$7) {
				o$10 += String.fromCharCode(__readUInt16LE(this, loc));
				loc += 2;
			}
			size *= 2;
			break;
		case "utf8":
			o$10 = __utf8(this, this.l, this.l + size);
			break;
		case "utf16le":
			size *= 2;
			o$10 = __utf16le(this, this.l, this.l + size);
			break;
		case "wstr":
			if (typeof $cptable !== "undefined") o$10 = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l + 2 * size));
			else return ReadShift.call(this, size, "dbcs");
			size = 2 * size;
			break;
		case "lpstr-ansi":
			o$10 = __lpstr(this, this.l);
			size = 4 + __readUInt32LE(this, this.l);
			break;
		case "lpstr-cp":
			o$10 = __cpstr(this, this.l);
			size = 4 + __readUInt32LE(this, this.l);
			break;
		case "lpwstr":
			o$10 = __lpwstr(this, this.l);
			size = 4 + 2 * __readUInt32LE(this, this.l);
			break;
		case "lpp4":
			size = 4 + __readUInt32LE(this, this.l);
			o$10 = __lpp4(this, this.l);
			if (size & 2) size += 2;
			break;
		case "8lpp4":
			size = 4 + __readUInt32LE(this, this.l);
			o$10 = __8lpp4(this, this.l);
			if (size & 3) size += 4 - (size & 3);
			break;
		case "cstr":
			size = 0;
			o$10 = "";
			while ((w$2 = __readUInt8(this, this.l + size++)) !== 0) oo.push(_getchar(w$2));
			o$10 = oo.join("");
			break;
		case "_wstr":
			size = 0;
			o$10 = "";
			while ((w$2 = __readUInt16LE(this, this.l + size)) !== 0) {
				oo.push(_getchar(w$2));
				size += 2;
			}
			size += 2;
			o$10 = oo.join("");
			break;
		case "dbcs-cont":
			o$10 = "";
			loc = this.l;
			for (i$7 = 0; i$7 < size; ++i$7) {
				if (this.lens && this.lens.indexOf(loc) !== -1) {
					w$2 = __readUInt8(this, loc);
					this.l = loc + 1;
					vv = ReadShift.call(this, size - i$7, w$2 ? "dbcs-cont" : "sbcs-cont");
					return oo.join("") + vv;
				}
				oo.push(_getchar(__readUInt16LE(this, loc)));
				loc += 2;
			}
			o$10 = oo.join("");
			size *= 2;
			break;
		case "cpstr": if (typeof $cptable !== "undefined") {
			o$10 = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));
			break;
		}
		case "sbcs-cont":
			o$10 = "";
			loc = this.l;
			for (i$7 = 0; i$7 != size; ++i$7) {
				if (this.lens && this.lens.indexOf(loc) !== -1) {
					w$2 = __readUInt8(this, loc);
					this.l = loc + 1;
					vv = ReadShift.call(this, size - i$7, w$2 ? "dbcs-cont" : "sbcs-cont");
					return oo.join("") + vv;
				}
				oo.push(_getchar(__readUInt8(this, loc)));
				loc += 1;
			}
			o$10 = oo.join("");
			break;
		default: switch (size) {
			case 1:
				oI = __readUInt8(this, this.l);
				this.l++;
				return oI;
			case 2:
				oI = (t$6 === "i" ? __readInt16LE : __readUInt16LE)(this, this.l);
				this.l += 2;
				return oI;
			case 4:
			case -4:
				if (t$6 === "i" || (this[this.l + 3] & 128) === 0) {
					oI = (size > 0 ? __readInt32LE : __readInt32BE)(this, this.l);
					this.l += 4;
					return oI;
				} else {
					oR = __readUInt32LE(this, this.l);
					this.l += 4;
				}
				return oR;
			case 8:
			case -8: if (t$6 === "f") {
				if (size == 8) oR = __double(this, this.l);
				else oR = __double([
					this[this.l + 7],
					this[this.l + 6],
					this[this.l + 5],
					this[this.l + 4],
					this[this.l + 3],
					this[this.l + 2],
					this[this.l + 1],
					this[this.l + 0]
				], 0);
				this.l += 8;
				return oR;
			} else size = 8;
			case 16:
				o$10 = __hexlify(this, this.l, size);
				break;
		}
	}
	this.l += size;
	return o$10;
}
function WriteShift(t$6, val$1, f$4) {
	var size = 0, i$7 = 0;
	if (f$4 === "dbcs") {
		for (i$7 = 0; i$7 != val$1.length; ++i$7) __writeUInt16LE(this, val$1.charCodeAt(i$7), this.l + 2 * i$7);
		size = 2 * val$1.length;
	} else if (f$4 === "sbcs" || f$4 == "cpstr") {
		if (typeof $cptable !== "undefined" && current_ansi == 874) {
			for (i$7 = 0; i$7 != val$1.length; ++i$7) {
				var cpp$1 = $cptable.utils.encode(current_ansi, val$1.charAt(i$7));
				this[this.l + i$7] = cpp$1[0];
			}
			size = val$1.length;
		} else if (typeof $cptable !== "undefined" && f$4 == "cpstr") {
			cpp$1 = $cptable.utils.encode(current_codepage, val$1);
			if (cpp$1.length == val$1.length) {
				for (i$7 = 0; i$7 < val$1.length; ++i$7) if (cpp$1[i$7] == 0 && val$1.charCodeAt(i$7) != 0) cpp$1[i$7] = 95;
			}
			if (cpp$1.length == 2 * val$1.length) {
				for (i$7 = 0; i$7 < val$1.length; ++i$7) if (cpp$1[2 * i$7] == 0 && cpp$1[2 * i$7 + 1] == 0 && val$1.charCodeAt(i$7) != 0) cpp$1[2 * i$7] = 95;
			}
			for (i$7 = 0; i$7 < cpp$1.length; ++i$7) this[this.l + i$7] = cpp$1[i$7];
			size = cpp$1.length;
		} else {
			val$1 = val$1.replace(/[^\x00-\x7F]/g, "_");
			for (i$7 = 0; i$7 != val$1.length; ++i$7) this[this.l + i$7] = val$1.charCodeAt(i$7) & 255;
			size = val$1.length;
		}
	} else if (f$4 === "hex") {
		for (; i$7 < t$6; ++i$7) {
			this[this.l++] = parseInt(val$1.slice(2 * i$7, 2 * i$7 + 2), 16) || 0;
		}
		return this;
	} else if (f$4 === "utf16le") {
		var end = Math.min(this.l + t$6, this.length);
		for (i$7 = 0; i$7 < Math.min(val$1.length, t$6); ++i$7) {
			var cc = val$1.charCodeAt(i$7);
			this[this.l++] = cc & 255;
			this[this.l++] = cc >> 8;
		}
		while (this.l < end) this[this.l++] = 0;
		return this;
	} else switch (t$6) {
		case 1:
			size = 1;
			this[this.l] = val$1 & 255;
			break;
		case 2:
			size = 2;
			this[this.l] = val$1 & 255;
			val$1 >>>= 8;
			this[this.l + 1] = val$1 & 255;
			break;
		case 3:
			size = 3;
			this[this.l] = val$1 & 255;
			val$1 >>>= 8;
			this[this.l + 1] = val$1 & 255;
			val$1 >>>= 8;
			this[this.l + 2] = val$1 & 255;
			break;
		case 4:
			size = 4;
			__writeUInt32LE(this, val$1, this.l);
			break;
		case 8:
			size = 8;
			if (f$4 === "f") {
				write_double_le(this, val$1, this.l);
				break;
			}
		case 16: break;
		case -4:
			size = 4;
			__writeInt32LE(this, val$1, this.l);
			break;
	}
	this.l += size;
	return this;
}
function CheckField(hexstr, fld) {
	var m$3 = __hexlify(this, this.l, hexstr.length >> 1);
	if (m$3 !== hexstr) throw new Error(fld + "Expected " + hexstr + " saw " + m$3);
	this.l += hexstr.length >> 1;
}
function prep_blob(blob, pos) {
	blob.l = pos;
	blob.read_shift = ReadShift;
	blob.chk = CheckField;
	blob.write_shift = WriteShift;
}
function parsenoop(blob, length) {
	blob.l += length;
}
function new_buf(sz) {
	var o$10 = new_raw_buf(sz);
	prep_blob(o$10, 0);
	return o$10;
}
function recordhopper(data, cb, opts) {
	if (!data) return;
	var tmpbyte, cntbyte, length;
	prep_blob(data, data.l || 0);
	var L$2 = data.length, RT = 0, tgt = 0;
	while (data.l < L$2) {
		RT = data.read_shift(1);
		if (RT & 128) RT = (RT & 127) + ((data.read_shift(1) & 127) << 7);
		var R$1 = XLSBRecordEnum[RT] || XLSBRecordEnum[65535];
		tmpbyte = data.read_shift(1);
		length = tmpbyte & 127;
		for (cntbyte = 1; cntbyte < 4 && tmpbyte & 128; ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 127) << 7 * cntbyte;
		tgt = data.l + length;
		var d$5 = R$1.f && R$1.f(data, length, opts);
		data.l = tgt;
		if (cb(d$5, R$1, RT)) return;
	}
}
function buf_array() {
	var bufs = [], blksz = has_buf ? 16384 : 2048;
	var has_buf_copy = has_buf && typeof new_buf(blksz).copy == "function";
	var newblk = function ba_newblk(sz) {
		var o$10 = new_buf(sz);
		prep_blob(o$10, 0);
		return o$10;
	};
	var curbuf = newblk(blksz);
	var endbuf = function ba_endbuf() {
		if (!curbuf) return;
		if (curbuf.l) {
			if (curbuf.length > curbuf.l) {
				curbuf = curbuf.slice(0, curbuf.l);
				curbuf.l = curbuf.length;
			}
			if (curbuf.length > 0) bufs.push(curbuf);
		}
		curbuf = null;
	};
	var next = function ba_next(sz) {
		if (curbuf && sz < curbuf.length - curbuf.l) return curbuf;
		endbuf();
		return curbuf = newblk(Math.max(sz + 1, blksz));
	};
	var end = function ba_end() {
		endbuf();
		return bconcat(bufs);
	};
	var end2 = function() {
		endbuf();
		return bufs;
	};
	var push = function ba_push(buf) {
		endbuf();
		curbuf = buf;
		if (curbuf.l == null) curbuf.l = curbuf.length;
		next(blksz);
	};
	return {
		next,
		push,
		end,
		_bufs: bufs,
		end2
	};
}
function write_record(ba, type, payload, length) {
	var t$6 = +type, l$3;
	if (isNaN(t$6)) return;
	if (!length) length = XLSBRecordEnum[t$6].p || (payload || []).length || 0;
	l$3 = 1 + (t$6 >= 128 ? 1 : 0) + 1;
	if (length >= 128) ++l$3;
	if (length >= 16384) ++l$3;
	if (length >= 2097152) ++l$3;
	var o$10 = ba.next(l$3);
	if (t$6 <= 127) o$10.write_shift(1, t$6);
	else {
		o$10.write_shift(1, (t$6 & 127) + 128);
		o$10.write_shift(1, t$6 >> 7);
	}
	for (var i$7 = 0; i$7 != 4; ++i$7) {
		if (length >= 128) {
			o$10.write_shift(1, (length & 127) + 128);
			length >>= 7;
		} else {
			o$10.write_shift(1, length);
			break;
		}
	}
	if (length > 0 && is_buf(payload)) ba.push(payload);
}
function shift_cell_xls(cell, tgt, opts) {
	var out = dup(cell);
	if (tgt.s) {
		if (out.cRel) out.c += tgt.s.c;
		if (out.rRel) out.r += tgt.s.r;
	} else {
		if (out.cRel) out.c += tgt.c;
		if (out.rRel) out.r += tgt.r;
	}
	if (!opts || opts.biff < 12) {
		while (out.c >= 256) out.c -= 256;
		while (out.r >= 65536) out.r -= 65536;
	}
	return out;
}
function shift_range_xls(cell, range, opts) {
	var out = dup(cell);
	out.s = shift_cell_xls(out.s, range.s, opts);
	out.e = shift_cell_xls(out.e, range.s, opts);
	return out;
}
function encode_cell_xls(c$7, biff) {
	if (c$7.cRel && c$7.c < 0) {
		c$7 = dup(c$7);
		while (c$7.c < 0) c$7.c += biff > 8 ? 16384 : 256;
	}
	if (c$7.rRel && c$7.r < 0) {
		c$7 = dup(c$7);
		while (c$7.r < 0) c$7.r += biff > 8 ? 1048576 : biff > 5 ? 65536 : 16384;
	}
	var s$5 = encode_cell(c$7);
	if (!c$7.cRel && c$7.cRel != null) s$5 = fix_col(s$5);
	if (!c$7.rRel && c$7.rRel != null) s$5 = fix_row(s$5);
	return s$5;
}
function encode_range_xls(r$10, opts) {
	if (r$10.s.r == 0 && !r$10.s.rRel) {
		if (r$10.e.r == (opts.biff >= 12 ? 1048575 : opts.biff >= 8 ? 65536 : 16384) && !r$10.e.rRel) {
			return (r$10.s.cRel ? "" : "$") + encode_col(r$10.s.c) + ":" + (r$10.e.cRel ? "" : "$") + encode_col(r$10.e.c);
		}
	}
	if (r$10.s.c == 0 && !r$10.s.cRel) {
		if (r$10.e.c == (opts.biff >= 12 ? 16383 : 255) && !r$10.e.cRel) {
			return (r$10.s.rRel ? "" : "$") + encode_row(r$10.s.r) + ":" + (r$10.e.rRel ? "" : "$") + encode_row(r$10.e.r);
		}
	}
	return encode_cell_xls(r$10.s, opts.biff) + ":" + encode_cell_xls(r$10.e, opts.biff);
}
function decode_row(rowstr) {
	return parseInt(unfix_row(rowstr), 10) - 1;
}
function encode_row(row) {
	return "" + (row + 1);
}
function fix_row(cstr) {
	return cstr.replace(/([A-Z]|^)(\d+)$/, "$1$$$2");
}
function unfix_row(cstr) {
	return cstr.replace(/\$(\d+)$/, "$1");
}
function decode_col(colstr) {
	var c$7 = unfix_col(colstr), d$5 = 0, i$7 = 0;
	for (; i$7 !== c$7.length; ++i$7) d$5 = 26 * d$5 + c$7.charCodeAt(i$7) - 64;
	return d$5 - 1;
}
function encode_col(col) {
	if (col < 0) throw new Error("invalid column " + col);
	var s$5 = "";
	for (++col; col; col = Math.floor((col - 1) / 26)) s$5 = String.fromCharCode((col - 1) % 26 + 65) + s$5;
	return s$5;
}
function fix_col(cstr) {
	return cstr.replace(/^([A-Z])/, "$$$1");
}
function unfix_col(cstr) {
	return cstr.replace(/^\$([A-Z])/, "$1");
}
function split_cell(cstr) {
	return cstr.replace(/(\$?[A-Z]*)(\$?\d*)/, "$1,$2").split(",");
}
function decode_cell(cstr) {
	var R$1 = 0, C$2 = 0;
	for (var i$7 = 0; i$7 < cstr.length; ++i$7) {
		var cc = cstr.charCodeAt(i$7);
		if (cc >= 48 && cc <= 57) R$1 = 10 * R$1 + (cc - 48);
		else if (cc >= 65 && cc <= 90) C$2 = 26 * C$2 + (cc - 64);
	}
	return {
		c: C$2 - 1,
		r: R$1 - 1
	};
}
function encode_cell(cell) {
	var col = cell.c + 1;
	var s$5 = "";
	for (; col; col = (col - 1) / 26 | 0) s$5 = String.fromCharCode((col - 1) % 26 + 65) + s$5;
	return s$5 + (cell.r + 1);
}
function decode_range(range) {
	var idx = range.indexOf(":");
	if (idx == -1) return {
		s: decode_cell(range),
		e: decode_cell(range)
	};
	return {
		s: decode_cell(range.slice(0, idx)),
		e: decode_cell(range.slice(idx + 1))
	};
}
function encode_range(cs, ce$1) {
	if (typeof ce$1 === "undefined" || typeof ce$1 === "number") {
		return encode_range(cs.s, cs.e);
	}
	if (typeof cs !== "string") cs = encode_cell(cs);
	if (typeof ce$1 !== "string") ce$1 = encode_cell(ce$1);
	return cs == ce$1 ? cs : cs + ":" + ce$1;
}
function fix_range(a1) {
	var s$5 = decode_range(a1);
	return "$" + encode_col(s$5.s.c) + "$" + encode_row(s$5.s.r) + ":$" + encode_col(s$5.e.c) + "$" + encode_row(s$5.e.r);
}
function formula_quote_sheet_name(sname, opts) {
	if (!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error("empty sheet name");
	if (/[^\w\u4E00-\u9FFF\u3040-\u30FF]/.test(sname)) return "'" + sname.replace(/'/g, "''") + "'";
	return sname;
}
function safe_decode_range(range) {
	var o$10 = {
		s: {
			c: 0,
			r: 0
		},
		e: {
			c: 0,
			r: 0
		}
	};
	var idx = 0, i$7 = 0, cc = 0;
	var len = range.length;
	for (idx = 0; i$7 < len; ++i$7) {
		if ((cc = range.charCodeAt(i$7) - 64) < 1 || cc > 26) break;
		idx = 26 * idx + cc;
	}
	o$10.s.c = --idx;
	for (idx = 0; i$7 < len; ++i$7) {
		if ((cc = range.charCodeAt(i$7) - 48) < 0 || cc > 9) break;
		idx = 10 * idx + cc;
	}
	o$10.s.r = --idx;
	if (i$7 === len || cc != 10) {
		o$10.e.c = o$10.s.c;
		o$10.e.r = o$10.s.r;
		return o$10;
	}
	++i$7;
	for (idx = 0; i$7 != len; ++i$7) {
		if ((cc = range.charCodeAt(i$7) - 64) < 1 || cc > 26) break;
		idx = 26 * idx + cc;
	}
	o$10.e.c = --idx;
	for (idx = 0; i$7 != len; ++i$7) {
		if ((cc = range.charCodeAt(i$7) - 48) < 0 || cc > 9) break;
		idx = 10 * idx + cc;
	}
	o$10.e.r = --idx;
	return o$10;
}
function safe_format_cell(cell, v$3) {
	var q$2 = cell.t == "d" && v$3 instanceof Date;
	if (cell.z != null) try {
		return cell.w = SSF_format(cell.z, q$2 ? datenum(v$3) : v$3);
	} catch (e$10) {}
	try {
		return cell.w = SSF_format((cell.XF || {}).numFmtId || (q$2 ? 14 : 0), q$2 ? datenum(v$3) : v$3);
	} catch (e$10) {
		return "" + v$3;
	}
}
function format_cell(cell, v$3, o$10) {
	if (cell == null || cell.t == null || cell.t == "z") return "";
	if (cell.w !== undefined) return cell.w;
	if (cell.t == "d" && !cell.z && o$10 && o$10.dateNF) cell.z = o$10.dateNF;
	if (cell.t == "e") return BErr[cell.v] || cell.v;
	if (v$3 == undefined) return safe_format_cell(cell, cell.v);
	return safe_format_cell(cell, v$3);
}
function sheet_to_workbook(sheet, opts) {
	var n$9 = opts && opts.sheet ? opts.sheet : "Sheet1";
	var sheets = {};
	sheets[n$9] = sheet;
	return {
		SheetNames: [n$9],
		Sheets: sheets
	};
}
function sheet_new(opts) {
	var out = {};
	var o$10 = opts || {};
	if (o$10.dense) out["!data"] = [];
	return out;
}
function sheet_add_aoa(_ws, data, opts) {
	var o$10 = opts || {};
	var dense = _ws ? _ws["!data"] != null : o$10.dense;
	if (DENSE != null && dense == null) dense = DENSE;
	var ws = _ws || (dense ? { "!data": [] } : {});
	if (dense && !ws["!data"]) ws["!data"] = [];
	var _R = 0, _C = 0;
	if (ws && o$10.origin != null) {
		if (typeof o$10.origin == "number") _R = o$10.origin;
		else {
			var _origin = typeof o$10.origin == "string" ? decode_cell(o$10.origin) : o$10.origin;
			_R = _origin.r;
			_C = _origin.c;
		}
	}
	var range = {
		s: {
			c: 1e7,
			r: 1e7
		},
		e: {
			c: 0,
			r: 0
		}
	};
	if (ws["!ref"]) {
		var _range = safe_decode_range(ws["!ref"]);
		range.s.c = _range.s.c;
		range.s.r = _range.s.r;
		range.e.c = Math.max(range.e.c, _range.e.c);
		range.e.r = Math.max(range.e.r, _range.e.r);
		if (_R == -1) range.e.r = _R = ws["!ref"] ? _range.e.r + 1 : 0;
	} else {
		range.s.c = range.e.c = range.s.r = range.e.r = 0;
	}
	var row = [], seen = false;
	for (var R$1 = 0; R$1 != data.length; ++R$1) {
		if (!data[R$1]) continue;
		if (!Array.isArray(data[R$1])) throw new Error("aoa_to_sheet expects an array of arrays");
		var __R = _R + R$1;
		if (dense) {
			if (!ws["!data"][__R]) ws["!data"][__R] = [];
			row = ws["!data"][__R];
		}
		var data_R = data[R$1];
		for (var C$2 = 0; C$2 != data_R.length; ++C$2) {
			if (typeof data_R[C$2] === "undefined") continue;
			var cell = {
				v: data_R[C$2],
				t: ""
			};
			var __C = _C + C$2;
			if (range.s.r > __R) range.s.r = __R;
			if (range.s.c > __C) range.s.c = __C;
			if (range.e.r < __R) range.e.r = __R;
			if (range.e.c < __C) range.e.c = __C;
			seen = true;
			if (data_R[C$2] && typeof data_R[C$2] === "object" && !Array.isArray(data_R[C$2]) && !(data_R[C$2] instanceof Date)) cell = data_R[C$2];
			else {
				if (Array.isArray(cell.v)) {
					cell.f = data_R[C$2][1];
					cell.v = cell.v[0];
				}
				if (cell.v === null) {
					if (cell.f) cell.t = "n";
					else if (o$10.nullError) {
						cell.t = "e";
						cell.v = 0;
					} else if (!o$10.sheetStubs) continue;
					else cell.t = "z";
				} else if (typeof cell.v === "number") {
					if (isFinite(cell.v)) cell.t = "n";
					else if (isNaN(cell.v)) {
						cell.t = "e";
						cell.v = 15;
					} else {
						cell.t = "e";
						cell.v = 7;
					}
				} else if (typeof cell.v === "boolean") cell.t = "b";
				else if (cell.v instanceof Date) {
					cell.z = o$10.dateNF || table_fmt[14];
					if (!o$10.UTC) cell.v = local_to_utc(cell.v);
					if (o$10.cellDates) {
						cell.t = "d";
						cell.w = SSF_format(cell.z, datenum(cell.v, o$10.date1904));
					} else {
						cell.t = "n";
						cell.v = datenum(cell.v, o$10.date1904);
						cell.w = SSF_format(cell.z, cell.v);
					}
				} else cell.t = "s";
			}
			if (dense) {
				if (row[__C] && row[__C].z) cell.z = row[__C].z;
				row[__C] = cell;
			} else {
				var cell_ref = encode_col(__C) + (__R + 1);
				if (ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;
				ws[cell_ref] = cell;
			}
		}
	}
	if (seen && range.s.c < 104e5) ws["!ref"] = encode_range(range);
	return ws;
}
function aoa_to_sheet(data, opts) {
	return sheet_add_aoa(null, data, opts);
}
function parse_Int32LE(data) {
	return data.read_shift(4, "i");
}
function write_UInt32LE(x$2, o$10) {
	if (!o$10) o$10 = new_buf(4);
	o$10.write_shift(4, x$2);
	return o$10;
}
function parse_XLWideString(data) {
	var cchCharacters = data.read_shift(4);
	return cchCharacters === 0 ? "" : data.read_shift(cchCharacters, "dbcs");
}
function write_XLWideString(data, o$10) {
	var _null = false;
	if (o$10 == null) {
		_null = true;
		o$10 = new_buf(4 + 2 * data.length);
	}
	o$10.write_shift(4, data.length);
	if (data.length > 0) o$10.write_shift(0, data, "dbcs");
	return _null ? o$10.slice(0, o$10.l) : o$10;
}
function parse_StrRun(data) {
	return {
		ich: data.read_shift(2),
		ifnt: data.read_shift(2)
	};
}
function write_StrRun(run, o$10) {
	if (!o$10) o$10 = new_buf(4);
	o$10.write_shift(2, run.ich || 0);
	o$10.write_shift(2, run.ifnt || 0);
	return o$10;
}
function parse_RichStr(data, length) {
	var start = data.l;
	var flags = data.read_shift(1);
	var str = parse_XLWideString(data);
	var rgsStrRun = [];
	var z$2 = {
		t: str,
		h: str
	};
	if ((flags & 1) !== 0) {
		var dwSizeStrRun = data.read_shift(4);
		for (var i$7 = 0; i$7 != dwSizeStrRun; ++i$7) rgsStrRun.push(parse_StrRun(data));
		z$2.r = rgsStrRun;
	} else z$2.r = [{
		ich: 0,
		ifnt: 0
	}];
	data.l = start + length;
	return z$2;
}
function write_RichStr(str, o$10) {
	var _null = false;
	if (o$10 == null) {
		_null = true;
		o$10 = new_buf(15 + 4 * str.t.length);
	}
	o$10.write_shift(1, 0);
	write_XLWideString(str.t, o$10);
	return _null ? o$10.slice(0, o$10.l) : o$10;
}
function write_BrtCommentText(str, o$10) {
	var _null = false;
	if (o$10 == null) {
		_null = true;
		o$10 = new_buf(23 + 4 * str.t.length);
	}
	o$10.write_shift(1, 1);
	write_XLWideString(str.t, o$10);
	o$10.write_shift(4, 1);
	write_StrRun({
		ich: 0,
		ifnt: 0
	}, o$10);
	return _null ? o$10.slice(0, o$10.l) : o$10;
}
function parse_XLSBCell(data) {
	var col = data.read_shift(4);
	var iStyleRef = data.read_shift(2);
	iStyleRef += data.read_shift(1) << 16;
	data.l++;
	return {
		c: col,
		iStyleRef
	};
}
function write_XLSBCell(cell, o$10) {
	if (o$10 == null) o$10 = new_buf(8);
	o$10.write_shift(-4, cell.c);
	o$10.write_shift(3, cell.iStyleRef || cell.s);
	o$10.write_shift(1, 0);
	return o$10;
}
function parse_XLSBShortCell(data) {
	var iStyleRef = data.read_shift(2);
	iStyleRef += data.read_shift(1) << 16;
	data.l++;
	return {
		c: -1,
		iStyleRef
	};
}
function write_XLSBShortCell(cell, o$10) {
	if (o$10 == null) o$10 = new_buf(4);
	o$10.write_shift(3, cell.iStyleRef || cell.s);
	o$10.write_shift(1, 0);
	return o$10;
}
function parse_XLNullableWideString(data) {
	var cchCharacters = data.read_shift(4);
	return cchCharacters === 0 || cchCharacters === 4294967295 ? "" : data.read_shift(cchCharacters, "dbcs");
}
function write_XLNullableWideString(data, o$10) {
	var _null = false;
	if (o$10 == null) {
		_null = true;
		o$10 = new_buf(127);
	}
	o$10.write_shift(4, data.length > 0 ? data.length : 4294967295);
	if (data.length > 0) o$10.write_shift(0, data, "dbcs");
	return _null ? o$10.slice(0, o$10.l) : o$10;
}
function parse_RkNumber(data) {
	var b$3 = data.slice(data.l, data.l + 4);
	var fX100 = b$3[0] & 1, fInt = b$3[0] & 2;
	data.l += 4;
	var RK = fInt === 0 ? __double([
		0,
		0,
		0,
		0,
		b$3[0] & 252,
		b$3[1],
		b$3[2],
		b$3[3]
	], 0) : __readInt32LE(b$3, 0) >> 2;
	return fX100 ? RK / 100 : RK;
}
function write_RkNumber(data, o$10) {
	if (o$10 == null) o$10 = new_buf(4);
	var fX100 = 0, fInt = 0, d100 = data * 100;
	if (data == (data | 0) && data >= -(1 << 29) && data < 1 << 29) {
		fInt = 1;
	} else if (d100 == (d100 | 0) && d100 >= -(1 << 29) && d100 < 1 << 29) {
		fInt = 1;
		fX100 = 1;
	}
	if (fInt) o$10.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));
	else throw new Error("unsupported RkNumber " + data);
}
function parse_RfX(data) {
	var cell = {
		s: {},
		e: {}
	};
	cell.s.r = data.read_shift(4);
	cell.e.r = data.read_shift(4);
	cell.s.c = data.read_shift(4);
	cell.e.c = data.read_shift(4);
	return cell;
}
function write_RfX(r$10, o$10) {
	if (!o$10) o$10 = new_buf(16);
	o$10.write_shift(4, r$10.s.r);
	o$10.write_shift(4, r$10.e.r);
	o$10.write_shift(4, r$10.s.c);
	o$10.write_shift(4, r$10.e.c);
	return o$10;
}
function parse_Xnum(data) {
	if (data.length - data.l < 8) throw "XLS Xnum Buffer underflow";
	return data.read_shift(8, "f");
}
function write_Xnum(data, o$10) {
	return (o$10 || new_buf(8)).write_shift(8, data, "f");
}
function parse_BrtColor(data) {
	var out = {};
	var d$5 = data.read_shift(1);
	var xColorType = d$5 >>> 1;
	var index = data.read_shift(1);
	var nTS = data.read_shift(2, "i");
	var bR = data.read_shift(1);
	var bG = data.read_shift(1);
	var bB = data.read_shift(1);
	data.l++;
	switch (xColorType) {
		case 0:
			out.auto = 1;
			break;
		case 1:
			out.index = index;
			var icv = XLSIcv[index];
			if (icv) out.rgb = rgb2Hex(icv);
			break;
		case 2:
			out.rgb = rgb2Hex([
				bR,
				bG,
				bB
			]);
			break;
		case 3:
			out.theme = index;
			break;
	}
	if (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;
	return out;
}
function write_BrtColor(color, o$10) {
	if (!o$10) o$10 = new_buf(8);
	if (!color || color.auto) {
		o$10.write_shift(4, 0);
		o$10.write_shift(4, 0);
		return o$10;
	}
	if (color.index != null) {
		o$10.write_shift(1, 2);
		o$10.write_shift(1, color.index);
	} else if (color.theme != null) {
		o$10.write_shift(1, 6);
		o$10.write_shift(1, color.theme);
	} else {
		o$10.write_shift(1, 5);
		o$10.write_shift(1, 0);
	}
	var nTS = color.tint || 0;
	if (nTS > 0) nTS *= 32767;
	else if (nTS < 0) nTS *= 32768;
	o$10.write_shift(2, nTS);
	if (!color.rgb || color.theme != null) {
		o$10.write_shift(2, 0);
		o$10.write_shift(1, 0);
		o$10.write_shift(1, 0);
	} else {
		var rgb = color.rgb || "FFFFFF";
		if (typeof rgb == "number") rgb = ("000000" + rgb.toString(16)).slice(-6);
		o$10.write_shift(1, parseInt(rgb.slice(0, 2), 16));
		o$10.write_shift(1, parseInt(rgb.slice(2, 4), 16));
		o$10.write_shift(1, parseInt(rgb.slice(4, 6), 16));
		o$10.write_shift(1, 255);
	}
	return o$10;
}
function parse_FontFlags(data) {
	var d$5 = data.read_shift(1);
	data.l++;
	var out = {
		fBold: d$5 & 1,
		fItalic: d$5 & 2,
		fUnderline: d$5 & 4,
		fStrikeout: d$5 & 8,
		fOutline: d$5 & 16,
		fShadow: d$5 & 32,
		fCondense: d$5 & 64,
		fExtend: d$5 & 128
	};
	return out;
}
function write_FontFlags(font, o$10) {
	if (!o$10) o$10 = new_buf(2);
	var grbit = (font.italic ? 2 : 0) | (font.strike ? 8 : 0) | (font.outline ? 16 : 0) | (font.shadow ? 32 : 0) | (font.condense ? 64 : 0) | (font.extend ? 128 : 0);
	o$10.write_shift(1, grbit);
	o$10.write_shift(1, 0);
	return o$10;
}
function parse_ClipboardFormatOrString(o$10, w$2) {
	var ClipFmt = {
		2: "BITMAP",
		3: "METAFILEPICT",
		8: "DIB",
		14: "ENHMETAFILE"
	};
	var m$3 = o$10.read_shift(4);
	switch (m$3) {
		case 0: return "";
		case 4294967295:
		case 4294967294: return ClipFmt[o$10.read_shift(4)] || "";
	}
	if (m$3 > 400) throw new Error("Unsupported Clipboard: " + m$3.toString(16));
	o$10.l -= 4;
	return o$10.read_shift(0, w$2 == 1 ? "lpstr" : "lpwstr");
}
function parse_ClipboardFormatOrAnsiString(o$10) {
	return parse_ClipboardFormatOrString(o$10, 1);
}
function parse_ClipboardFormatOrUnicodeString(o$10) {
	return parse_ClipboardFormatOrString(o$10, 2);
}
function rgbify(arr) {
	return arr.map(function(x$2) {
		return [
			x$2 >> 16 & 255,
			x$2 >> 8 & 255,
			x$2 & 255
		];
	});
}
function new_ct() {
	return {
		workbooks: [],
		sheets: [],
		charts: [],
		dialogs: [],
		macros: [],
		rels: [],
		strs: [],
		comments: [],
		threadedcomments: [],
		links: [],
		coreprops: [],
		extprops: [],
		custprops: [],
		themes: [],
		styles: [],
		calcchains: [],
		vba: [],
		drawings: [],
		metadata: [],
		people: [],
		TODO: [],
		xmlns: ""
	};
}
function parse_ct(data) {
	var ct = new_ct();
	if (!data || !data.match) return ct;
	var ctext = {};
	(data.match(tagregex) || []).forEach(function(x$2) {
		var y$3 = parsexmltag(x$2);
		switch (y$3[0].replace(nsregex, "<")) {
			case "<?xml": break;
			case "<Types":
				ct.xmlns = y$3["xmlns" + (y$3[0].match(/<(\w+):/) || ["", ""])[1]];
				break;
			case "<Default":
				ctext[y$3.Extension.toLowerCase()] = y$3.ContentType;
				break;
			case "<Override":
				if (ct[ct2type[y$3.ContentType]] !== undefined) ct[ct2type[y$3.ContentType]].push(y$3.PartName);
				break;
		}
	});
	if (ct.xmlns !== XMLNS.CT) throw new Error("Unknown Namespace: " + ct.xmlns);
	ct.calcchain = ct.calcchains.length > 0 ? ct.calcchains[0] : "";
	ct.sst = ct.strs.length > 0 ? ct.strs[0] : "";
	ct.style = ct.styles.length > 0 ? ct.styles[0] : "";
	ct.defaults = ctext;
	delete ct.calcchains;
	return ct;
}
function write_ct(ct, opts, raw) {
	var type2ct = evert_arr(ct2type);
	var o$10 = [], v$3;
	if (!raw) {
		o$10[o$10.length] = XML_HEADER;
		o$10[o$10.length] = writextag("Types", null, {
			"xmlns": XMLNS.CT,
			"xmlns:xsd": XMLNS.xsd,
			"xmlns:xsi": XMLNS.xsi
		});
		o$10 = o$10.concat([
			["xml", "application/xml"],
			["bin", "application/vnd.ms-excel.sheet.binary.macroEnabled.main"],
			["vml", "application/vnd.openxmlformats-officedocument.vmlDrawing"],
			["data", "application/vnd.openxmlformats-officedocument.model+data"],
			["bmp", "image/bmp"],
			["png", "image/png"],
			["gif", "image/gif"],
			["emf", "image/x-emf"],
			["wmf", "image/x-wmf"],
			["jpg", "image/jpeg"],
			["jpeg", "image/jpeg"],
			["tif", "image/tiff"],
			["tiff", "image/tiff"],
			["pdf", "application/pdf"],
			["rels", "application/vnd.openxmlformats-package.relationships+xml"]
		].map(function(x$2) {
			return writextag("Default", null, {
				"Extension": x$2[0],
				"ContentType": x$2[1]
			});
		}));
	}
	var f1 = function(w$2) {
		if (ct[w$2] && ct[w$2].length > 0) {
			v$3 = ct[w$2][0];
			o$10[o$10.length] = writextag("Override", null, {
				"PartName": (v$3[0] == "/" ? "" : "/") + v$3,
				"ContentType": CT_LIST[w$2][opts.bookType] || CT_LIST[w$2]["xlsx"]
			});
		}
	};
	var f2 = function(w$2) {
		(ct[w$2] || []).forEach(function(v$4) {
			o$10[o$10.length] = writextag("Override", null, {
				"PartName": (v$4[0] == "/" ? "" : "/") + v$4,
				"ContentType": CT_LIST[w$2][opts.bookType] || CT_LIST[w$2]["xlsx"]
			});
		});
	};
	var f3 = function(t$6) {
		(ct[t$6] || []).forEach(function(v$4) {
			o$10[o$10.length] = writextag("Override", null, {
				"PartName": (v$4[0] == "/" ? "" : "/") + v$4,
				"ContentType": type2ct[t$6][0]
			});
		});
	};
	f1("workbooks");
	f2("sheets");
	f2("charts");
	f3("themes");
	["strs", "styles"].forEach(f1);
	[
		"coreprops",
		"extprops",
		"custprops"
	].forEach(f3);
	f3("vba");
	f3("comments");
	f3("threadedcomments");
	f3("drawings");
	f2("metadata");
	f3("people");
	if (!raw && o$10.length > 2) {
		o$10[o$10.length] = "</Types>";
		o$10[1] = o$10[1].replace("/>", ">");
	}
	return o$10.join("");
}
function get_rels_path(file) {
	var n$9 = file.lastIndexOf("/");
	return file.slice(0, n$9 + 1) + "_rels/" + file.slice(n$9 + 1) + ".rels";
}
function parse_rels(data, currentFilePath) {
	var rels = { "!id": {} };
	if (!data) return rels;
	if (currentFilePath.charAt(0) !== "/") {
		currentFilePath = "/" + currentFilePath;
	}
	var hash = {};
	(data.match(tagregex) || []).forEach(function(x$2) {
		var y$3 = parsexmltag(x$2);
		if (y$3[0] === "<Relationship") {
			var rel$1 = {};
			rel$1.Type = y$3.Type;
			rel$1.Target = unescapexml(y$3.Target);
			rel$1.Id = y$3.Id;
			if (y$3.TargetMode) rel$1.TargetMode = y$3.TargetMode;
			var canonictarget = y$3.TargetMode === "External" ? y$3.Target : resolve_path(y$3.Target, currentFilePath);
			rels[canonictarget] = rel$1;
			hash[y$3.Id] = rel$1;
		}
	});
	rels["!id"] = hash;
	return rels;
}
function write_rels(rels) {
	var o$10 = [XML_HEADER, writextag("Relationships", null, { "xmlns": XMLNS.RELS })];
	keys(rels["!id"]).forEach(function(rid) {
		o$10[o$10.length] = writextag("Relationship", null, rels["!id"][rid]);
	});
	if (o$10.length > 2) {
		o$10[o$10.length] = "</Relationships>";
		o$10[1] = o$10[1].replace("/>", ">");
	}
	return o$10.join("");
}
function add_rels(rels, rId, f$4, type, relobj, targetmode) {
	if (!relobj) relobj = {};
	if (!rels["!id"]) rels["!id"] = {};
	if (!rels["!idx"]) rels["!idx"] = 1;
	if (rId < 0) for (rId = rels["!idx"]; rels["!id"]["rId" + rId]; ++rId) {}
	rels["!idx"] = rId + 1;
	relobj.Id = "rId" + rId;
	relobj.Type = type;
	relobj.Target = f$4;
	if (targetmode) relobj.TargetMode = targetmode;
	else if ([
		RELS.HLINK,
		RELS.XPATH,
		RELS.XMISS
	].indexOf(relobj.Type) > -1) relobj.TargetMode = "External";
	if (rels["!id"][relobj.Id]) throw new Error("Cannot rewrite rId " + rId);
	rels["!id"][relobj.Id] = relobj;
	rels[("/" + relobj.Target).replace("//", "/")] = relobj;
	return rId;
}
function parse_manifest(d$5, opts) {
	var str = xlml_normalize(d$5);
	var Rn;
	var FEtag;
	while (Rn = xlmlregex.exec(str)) switch (Rn[3]) {
		case "manifest": break;
		case "file-entry":
			FEtag = parsexmltag(Rn[0], false);
			if (FEtag.path == "/" && FEtag.type !== CT_ODS) throw new Error("This OpenDocument is not a spreadsheet");
			break;
		case "encryption-data":
		case "algorithm":
		case "start-key-generation":
		case "key-derivation": throw new Error("Unsupported ODS Encryption");
		default: if (opts && opts.WTF) throw Rn;
	}
}
function write_manifest(manifest) {
	var o$10 = [XML_HEADER];
	o$10.push("<manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\" manifest:version=\"1.2\">\n");
	o$10.push("  <manifest:file-entry manifest:full-path=\"/\" manifest:version=\"1.2\" manifest:media-type=\"application/vnd.oasis.opendocument.spreadsheet\"/>\n");
	for (var i$7 = 0; i$7 < manifest.length; ++i$7) o$10.push("  <manifest:file-entry manifest:full-path=\"" + manifest[i$7][0] + "\" manifest:media-type=\"" + manifest[i$7][1] + "\"/>\n");
	o$10.push("</manifest:manifest>");
	return o$10.join("");
}
function write_rdf_type(file, res, tag) {
	return [
		"  <rdf:Description rdf:about=\"" + file + "\">\n",
		"    <rdf:type rdf:resource=\"http://docs.oasis-open.org/ns/office/1.2/meta/" + (tag || "odf") + "#" + res + "\"/>\n",
		"  </rdf:Description>\n"
	].join("");
}
function write_rdf_has(base, file) {
	return [
		"  <rdf:Description rdf:about=\"" + base + "\">\n",
		"    <ns0:hasPart xmlns:ns0=\"http://docs.oasis-open.org/ns/office/1.2/meta/pkg#\" rdf:resource=\"" + file + "\"/>\n",
		"  </rdf:Description>\n"
	].join("");
}
function write_rdf(rdf) {
	var o$10 = [XML_HEADER];
	o$10.push("<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n");
	for (var i$7 = 0; i$7 != rdf.length; ++i$7) {
		o$10.push(write_rdf_type(rdf[i$7][0], rdf[i$7][1]));
		o$10.push(write_rdf_has("", rdf[i$7][0]));
	}
	o$10.push(write_rdf_type("", "Document", "pkg"));
	o$10.push("</rdf:RDF>");
	return o$10.join("");
}
function write_meta_ods(wb, opts) {
	return "<office:document-meta xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\" xmlns:meta=\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" office:version=\"1.2\"><office:meta><meta:generator>SheetJS " + XLSX.version + "</meta:generator></office:meta></office:document-meta>";
}
function parse_core_props(data) {
	var p$3 = {};
	data = utf8read(data);
	for (var i$7 = 0; i$7 < CORE_PROPS.length; ++i$7) {
		var f$4 = CORE_PROPS[i$7], cur = str_match_xml(data, f$4[0]);
		if (cur != null && cur.length > 0) p$3[f$4[1]] = unescapexml(cur[1]);
		if (f$4[2] === "date" && p$3[f$4[1]]) p$3[f$4[1]] = parseDate(p$3[f$4[1]]);
	}
	return p$3;
}
function cp_doit(f$4, g$1, h$5, o$10, p$3) {
	if (p$3[f$4] != null || g$1 == null || g$1 === "") return;
	p$3[f$4] = g$1;
	g$1 = escapexml(g$1);
	o$10[o$10.length] = h$5 ? writextag(f$4, g$1, h$5) : writetag(f$4, g$1);
}
function write_core_props(cp, _opts) {
	var opts = _opts || {};
	var o$10 = [XML_HEADER, writextag("cp:coreProperties", null, {
		"xmlns:cp": XMLNS.CORE_PROPS,
		"xmlns:dc": XMLNS.dc,
		"xmlns:dcterms": XMLNS.dcterms,
		"xmlns:dcmitype": XMLNS.dcmitype,
		"xmlns:xsi": XMLNS.xsi
	})], p$3 = {};
	if (!cp && !opts.Props) return o$10.join("");
	if (cp) {
		if (cp.CreatedDate != null) cp_doit("dcterms:created", typeof cp.CreatedDate === "string" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), { "xsi:type": "dcterms:W3CDTF" }, o$10, p$3);
		if (cp.ModifiedDate != null) cp_doit("dcterms:modified", typeof cp.ModifiedDate === "string" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), { "xsi:type": "dcterms:W3CDTF" }, o$10, p$3);
	}
	for (var i$7 = 0; i$7 != CORE_PROPS.length; ++i$7) {
		var f$4 = CORE_PROPS[i$7];
		var v$3 = opts.Props && opts.Props[f$4[1]] != null ? opts.Props[f$4[1]] : cp ? cp[f$4[1]] : null;
		if (v$3 === true) v$3 = "1";
		else if (v$3 === false) v$3 = "0";
		else if (typeof v$3 == "number") v$3 = String(v$3);
		if (v$3 != null) cp_doit(f$4[0], v$3, null, o$10, p$3);
	}
	if (o$10.length > 2) {
		o$10[o$10.length] = "</cp:coreProperties>";
		o$10[1] = o$10[1].replace("/>", ">");
	}
	return o$10.join("");
}
function load_props_pairs(HP, TOP, props, opts) {
	var v$3 = [];
	if (typeof HP == "string") v$3 = parseVector(HP, opts);
	else for (var j$2 = 0; j$2 < HP.length; ++j$2) v$3 = v$3.concat(HP[j$2].map(function(hp) {
		return { v: hp };
	}));
	var parts = typeof TOP == "string" ? parseVector(TOP, opts).map(function(x$2) {
		return x$2.v;
	}) : TOP;
	var idx = 0, len = 0;
	if (parts.length > 0) for (var i$7 = 0; i$7 !== v$3.length; i$7 += 2) {
		len = +v$3[i$7 + 1].v;
		switch (v$3[i$7].v) {
			case "Worksheets":
			case "工作表":
			case "Листы":
			case "أوراق العمل":
			case "ワークシート":
			case "גליונות עבודה":
			case "Arbeitsblätter":
			case "Çalışma Sayfaları":
			case "Feuilles de calcul":
			case "Fogli di lavoro":
			case "Folhas de cálculo":
			case "Planilhas":
			case "Regneark":
			case "Hojas de cálculo":
			case "Werkbladen":
				props.Worksheets = len;
				props.SheetNames = parts.slice(idx, idx + len);
				break;
			case "Named Ranges":
			case "Rangos con nombre":
			case "名前付き一覧":
			case "Benannte Bereiche":
			case "Navngivne områder":
				props.NamedRanges = len;
				props.DefinedNames = parts.slice(idx, idx + len);
				break;
			case "Charts":
			case "Diagramme":
				props.Chartsheets = len;
				props.ChartNames = parts.slice(idx, idx + len);
				break;
		}
		idx += len;
	}
}
function parse_ext_props(data, p$3, opts) {
	var q$2 = {};
	if (!p$3) p$3 = {};
	data = utf8read(data);
	EXT_PROPS.forEach(function(f$4) {
		var xml$2 = (str_match_xml_ns(data, f$4[0]) || [])[1];
		switch (f$4[2]) {
			case "string":
				if (xml$2) p$3[f$4[1]] = unescapexml(xml$2);
				break;
			case "bool":
				p$3[f$4[1]] = xml$2 === "true";
				break;
			case "raw":
				var cur = str_match_xml(data, f$4[0]);
				if (cur && cur.length > 0) q$2[f$4[1]] = cur[1];
				break;
		}
	});
	if (q$2.HeadingPairs && q$2.TitlesOfParts) load_props_pairs(q$2.HeadingPairs, q$2.TitlesOfParts, p$3, opts);
	return p$3;
}
function write_ext_props(cp) {
	var o$10 = [], W$1 = writextag;
	if (!cp) cp = {};
	cp.Application = "SheetJS";
	o$10[o$10.length] = XML_HEADER;
	o$10[o$10.length] = writextag("Properties", null, {
		"xmlns": XMLNS.EXT_PROPS,
		"xmlns:vt": XMLNS.vt
	});
	EXT_PROPS.forEach(function(f$4) {
		if (cp[f$4[1]] === undefined) return;
		var v$3;
		switch (f$4[2]) {
			case "string":
				v$3 = escapexml(String(cp[f$4[1]]));
				break;
			case "bool":
				v$3 = cp[f$4[1]] ? "true" : "false";
				break;
		}
		if (v$3 !== undefined) o$10[o$10.length] = W$1(f$4[0], v$3);
	});
	o$10[o$10.length] = W$1("HeadingPairs", W$1("vt:vector", W$1("vt:variant", "<vt:lpstr>Worksheets</vt:lpstr>") + W$1("vt:variant", W$1("vt:i4", String(cp.Worksheets))), {
		size: 2,
		baseType: "variant"
	}));
	o$10[o$10.length] = W$1("TitlesOfParts", W$1("vt:vector", cp.SheetNames.map(function(s$5) {
		return "<vt:lpstr>" + escapexml(s$5) + "</vt:lpstr>";
	}).join(""), {
		size: cp.Worksheets,
		baseType: "lpstr"
	}));
	if (o$10.length > 2) {
		o$10[o$10.length] = "</Properties>";
		o$10[1] = o$10[1].replace("/>", ">");
	}
	return o$10.join("");
}
function parse_cust_props(data, opts) {
	var p$3 = {}, name = "";
	var m$3 = data.match(custregex);
	if (m$3) for (var i$7 = 0; i$7 != m$3.length; ++i$7) {
		var x$2 = m$3[i$7], y$3 = parsexmltag(x$2);
		switch (strip_ns(y$3[0])) {
			case "<?xml": break;
			case "<Properties": break;
			case "<property":
				name = unescapexml(y$3.name);
				break;
			case "</property>":
				name = null;
				break;
			default: if (x$2.indexOf("<vt:") === 0) {
				var toks = x$2.split(">");
				var type = toks[0].slice(4), text$2 = toks[1];
				switch (type) {
					case "lpstr":
					case "bstr":
					case "lpwstr":
						p$3[name] = unescapexml(text$2);
						break;
					case "bool":
						p$3[name] = parsexmlbool(text$2);
						break;
					case "i1":
					case "i2":
					case "i4":
					case "i8":
					case "int":
					case "uint":
						p$3[name] = parseInt(text$2, 10);
						break;
					case "r4":
					case "r8":
					case "decimal":
						p$3[name] = parseFloat(text$2);
						break;
					case "filetime":
					case "date":
						p$3[name] = parseDate(text$2);
						break;
					case "cy":
					case "error":
						p$3[name] = unescapexml(text$2);
						break;
					default:
						if (type.slice(-1) == "/") break;
						if (opts.WTF && typeof console !== "undefined") console.warn("Unexpected", x$2, type, toks);
				}
			} else if (x$2.slice(0, 2) === "</") {} else if (opts.WTF) throw new Error(x$2);
		}
	}
	return p$3;
}
function write_cust_props(cp) {
	var o$10 = [XML_HEADER, writextag("Properties", null, {
		"xmlns": XMLNS.CUST_PROPS,
		"xmlns:vt": XMLNS.vt
	})];
	if (!cp) return o$10.join("");
	var pid = 1;
	keys(cp).forEach(function custprop(k$2) {
		++pid;
		o$10[o$10.length] = writextag("property", write_vt(cp[k$2], true), {
			"fmtid": "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}",
			"pid": pid,
			"name": escapexml(k$2)
		});
	});
	if (o$10.length > 2) {
		o$10[o$10.length] = "</Properties>";
		o$10[1] = o$10[1].replace("/>", ">");
	}
	return o$10.join("");
}
function xlml_set_prop(Props, tag, val$1) {
	if (!evert_XLMLDPM) evert_XLMLDPM = evert(XLMLDocPropsMap);
	tag = evert_XLMLDPM[tag] || tag;
	Props[tag] = val$1;
}
function xlml_write_docprops(Props, opts) {
	var o$10 = [];
	keys(XLMLDocPropsMap).map(function(m$3) {
		for (var i$7 = 0; i$7 < CORE_PROPS.length; ++i$7) if (CORE_PROPS[i$7][1] == m$3) return CORE_PROPS[i$7];
		for (i$7 = 0; i$7 < EXT_PROPS.length; ++i$7) if (EXT_PROPS[i$7][1] == m$3) return EXT_PROPS[i$7];
		throw m$3;
	}).forEach(function(p$3) {
		if (Props[p$3[1]] == null) return;
		var m$3 = opts && opts.Props && opts.Props[p$3[1]] != null ? opts.Props[p$3[1]] : Props[p$3[1]];
		switch (p$3[2]) {
			case "date":
				m$3 = new Date(m$3).toISOString().replace(/\.\d*Z/, "Z");
				break;
		}
		if (typeof m$3 == "number") m$3 = String(m$3);
		else if (m$3 === true || m$3 === false) {
			m$3 = m$3 ? "1" : "0";
		} else if (m$3 instanceof Date) m$3 = new Date(m$3).toISOString().replace(/\.\d*Z/, "");
		o$10.push(writetag(XLMLDocPropsMap[p$3[1]] || p$3[1], m$3));
	});
	return writextag("DocumentProperties", o$10.join(""), { xmlns: XLMLNS.o });
}
function xlml_write_custprops(Props, Custprops) {
	var BLACKLIST = ["Worksheets", "SheetNames"];
	var T$3 = "CustomDocumentProperties";
	var o$10 = [];
	if (Props) keys(Props).forEach(function(k$2) {
		if (!Object.prototype.hasOwnProperty.call(Props, k$2)) return;
		for (var i$7 = 0; i$7 < CORE_PROPS.length; ++i$7) if (k$2 == CORE_PROPS[i$7][1]) return;
		for (i$7 = 0; i$7 < EXT_PROPS.length; ++i$7) if (k$2 == EXT_PROPS[i$7][1]) return;
		for (i$7 = 0; i$7 < BLACKLIST.length; ++i$7) if (k$2 == BLACKLIST[i$7]) return;
		var m$3 = Props[k$2];
		var t$6 = "string";
		if (typeof m$3 == "number") {
			t$6 = "float";
			m$3 = String(m$3);
		} else if (m$3 === true || m$3 === false) {
			t$6 = "boolean";
			m$3 = m$3 ? "1" : "0";
		} else m$3 = String(m$3);
		o$10.push(writextag(escapexmltag(k$2), m$3, { "dt:dt": t$6 }));
	});
	if (Custprops) keys(Custprops).forEach(function(k$2) {
		if (!Object.prototype.hasOwnProperty.call(Custprops, k$2)) return;
		if (Props && Object.prototype.hasOwnProperty.call(Props, k$2)) return;
		var m$3 = Custprops[k$2];
		var t$6 = "string";
		if (typeof m$3 == "number") {
			t$6 = "float";
			m$3 = String(m$3);
		} else if (m$3 === true || m$3 === false) {
			t$6 = "boolean";
			m$3 = m$3 ? "1" : "0";
		} else if (m$3 instanceof Date) {
			t$6 = "dateTime.tz";
			m$3 = m$3.toISOString();
		} else m$3 = String(m$3);
		o$10.push(writextag(escapexmltag(k$2), m$3, { "dt:dt": t$6 }));
	});
	return "<" + T$3 + " xmlns=\"" + XLMLNS.o + "\">" + o$10.join("") + "</" + T$3 + ">";
}
function parse_FILETIME(blob) {
	var dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);
	return new Date((dwHighDateTime / 1e7 * Math.pow(2, 32) + dwLowDateTime / 1e7 - 11644473600) * 1e3).toISOString().replace(/\.000/, "");
}
function write_FILETIME(time) {
	var date = typeof time == "string" ? new Date(Date.parse(time)) : time;
	var t$6 = date.getTime() / 1e3 + 11644473600;
	var l$3 = t$6 % Math.pow(2, 32), h$5 = (t$6 - l$3) / Math.pow(2, 32);
	l$3 *= 1e7;
	h$5 *= 1e7;
	var w$2 = l$3 / Math.pow(2, 32) | 0;
	if (w$2 > 0) {
		l$3 = l$3 % Math.pow(2, 32);
		h$5 += w$2;
	}
	var o$10 = new_buf(8);
	o$10.write_shift(4, l$3);
	o$10.write_shift(4, h$5);
	return o$10;
}
function parse_lpstr(blob, type, pad$1) {
	var start = blob.l;
	var str = blob.read_shift(0, "lpstr-cp");
	if (pad$1) while (blob.l - start & 3) ++blob.l;
	return str;
}
function parse_lpwstr(blob, type, pad$1) {
	var str = blob.read_shift(0, "lpwstr");
	if (pad$1) blob.l += 4 - (str.length + 1 & 3) & 3;
	return str;
}
function parse_VtStringBase(blob, stringType, pad$1) {
	if (stringType === 31) return parse_lpwstr(blob);
	return parse_lpstr(blob, stringType, pad$1);
}
function parse_VtString(blob, t$6, pad$1) {
	return parse_VtStringBase(blob, t$6, pad$1 === false ? 0 : 4);
}
function parse_VtUnalignedString(blob, t$6) {
	if (!t$6) throw new Error("VtUnalignedString must have positive length");
	return parse_VtStringBase(blob, t$6, 0);
}
function parse_VtVecLpwstrValue(blob) {
	var length = blob.read_shift(4);
	var ret = [];
	for (var i$7 = 0; i$7 != length; ++i$7) {
		var start = blob.l;
		ret[i$7] = blob.read_shift(0, "lpwstr").replace(chr0, "");
		if (blob.l - start & 2) blob.l += 2;
	}
	return ret;
}
function parse_VtVecUnalignedLpstrValue(blob) {
	var length = blob.read_shift(4);
	var ret = [];
	for (var i$7 = 0; i$7 != length; ++i$7) ret[i$7] = blob.read_shift(0, "lpstr-cp").replace(chr0, "");
	return ret;
}
function parse_VtHeadingPair(blob) {
	var start = blob.l;
	var headingString = parse_TypedPropertyValue(blob, VT_USTR);
	if (blob[blob.l] == 0 && blob[blob.l + 1] == 0 && blob.l - start & 2) blob.l += 2;
	var headerParts = parse_TypedPropertyValue(blob, VT_I4);
	return [headingString, headerParts];
}
function parse_VtVecHeadingPairValue(blob) {
	var cElements = blob.read_shift(4);
	var out = [];
	for (var i$7 = 0; i$7 < cElements / 2; ++i$7) out.push(parse_VtHeadingPair(blob));
	return out;
}
function parse_dictionary(blob, CodePage) {
	var cnt = blob.read_shift(4);
	var dict = {};
	for (var j$2 = 0; j$2 != cnt; ++j$2) {
		var pid = blob.read_shift(4);
		var len = blob.read_shift(4);
		dict[pid] = blob.read_shift(len, CodePage === 1200 ? "utf16le" : "utf8").replace(chr0, "").replace(chr1, "!");
		if (CodePage === 1200 && len % 2) blob.l += 2;
	}
	if (blob.l & 3) blob.l = blob.l >> 2 + 1 << 2;
	return dict;
}
function parse_BLOB(blob) {
	var size = blob.read_shift(4);
	var bytes = blob.slice(blob.l, blob.l + size);
	blob.l += size;
	if ((size & 3) > 0) blob.l += 4 - (size & 3) & 3;
	return bytes;
}
function parse_ClipboardData(blob) {
	var o$10 = {};
	o$10.Size = blob.read_shift(4);
	blob.l += o$10.Size + 3 - (o$10.Size - 1) % 4;
	return o$10;
}
function parse_TypedPropertyValue(blob, type, _opts) {
	var t$6 = blob.read_shift(2), ret, opts = _opts || {};
	blob.l += 2;
	if (type !== VT_VARIANT) {
		if (t$6 !== type && VT_CUSTOM.indexOf(type) === -1 && !((type & 65534) == 4126 && (t$6 & 65534) == 4126)) throw new Error("Expected type " + type + " saw " + t$6);
	}
	switch (type === VT_VARIANT ? t$6 : type) {
		case 2:
			ret = blob.read_shift(2, "i");
			if (!opts.raw) blob.l += 2;
			return ret;
		case 3:
			ret = blob.read_shift(4, "i");
			return ret;
		case 11: return blob.read_shift(4) !== 0;
		case 19:
			ret = blob.read_shift(4);
			return ret;
		case 30:
			blob.l += 4;
			val = parse_VtString(blob, blob[blob.l - 4]).replace(/(^|[^\u0000])\u0000+$/, "$1");
			break;
		case 31:
			blob.l += 4;
			val = parse_VtString(blob, blob[blob.l - 4]).replace(/(^|[^\u0000])\u0000+$/, "$1");
			break;
		case 64: return parse_FILETIME(blob);
		case 65: return parse_BLOB(blob);
		case 71: return parse_ClipboardData(blob);
		case 80: return parse_VtString(blob, t$6, !opts.raw).replace(chr0, "");
		case 81: return parse_VtUnalignedString(blob, t$6).replace(chr0, "");
		case 4108: return parse_VtVecHeadingPairValue(blob);
		case 4126:
		case 4127: return t$6 == 4127 ? parse_VtVecLpwstrValue(blob) : parse_VtVecUnalignedLpstrValue(blob);
		default: throw new Error("TypedPropertyValue unrecognized type " + type + " " + t$6);
	}
}
function write_TypedPropertyValue(type, value) {
	var o$10 = new_buf(4), p$3 = new_buf(4);
	o$10.write_shift(4, type == 80 ? 31 : type);
	switch (type) {
		case 3:
			p$3.write_shift(-4, value);
			break;
		case 5:
			p$3 = new_buf(8);
			p$3.write_shift(8, value, "f");
			break;
		case 11:
			p$3.write_shift(4, value ? 1 : 0);
			break;
		case 64:
			p$3 = write_FILETIME(value);
			break;
		case 31:
		case 80:
			p$3 = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));
			p$3.write_shift(4, value.length + 1);
			p$3.write_shift(0, value, "dbcs");
			while (p$3.l != p$3.length) p$3.write_shift(1, 0);
			break;
		default: throw new Error("TypedPropertyValue unrecognized type " + type + " " + value);
	}
	return bconcat([o$10, p$3]);
}
function parse_PropertySet(blob, PIDSI) {
	var start_addr = blob.l;
	var size = blob.read_shift(4);
	var NumProps = blob.read_shift(4);
	var Props = [], i$7 = 0;
	var CodePage = 0;
	var Dictionary = -1, DictObj = {};
	for (i$7 = 0; i$7 != NumProps; ++i$7) {
		var PropID = blob.read_shift(4);
		var Offset = blob.read_shift(4);
		Props[i$7] = [PropID, Offset + start_addr];
	}
	Props.sort(function(x$2, y$3) {
		return x$2[1] - y$3[1];
	});
	var PropH = {};
	for (i$7 = 0; i$7 != NumProps; ++i$7) {
		if (blob.l !== Props[i$7][1]) {
			var fail = true;
			if (i$7 > 0 && PIDSI) switch (PIDSI[Props[i$7 - 1][0]].t) {
				case 2:
					if (blob.l + 2 === Props[i$7][1]) {
						blob.l += 2;
						fail = false;
					}
					break;
				case 80:
					if (blob.l <= Props[i$7][1]) {
						blob.l = Props[i$7][1];
						fail = false;
					}
					break;
				case 4108:
					if (blob.l <= Props[i$7][1]) {
						blob.l = Props[i$7][1];
						fail = false;
					}
					break;
			}
			if ((!PIDSI || i$7 == 0) && blob.l <= Props[i$7][1]) {
				fail = false;
				blob.l = Props[i$7][1];
			}
			if (fail) throw new Error("Read Error: Expected address " + Props[i$7][1] + " at " + blob.l + " :" + i$7);
		}
		if (PIDSI) {
			if (Props[i$7][0] == 0 && Props.length > i$7 + 1 && Props[i$7][1] == Props[i$7 + 1][1]) continue;
			var piddsi = PIDSI[Props[i$7][0]];
			PropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, { raw: true });
			if (piddsi.p === "version") PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + "." + ("0000" + String(PropH[piddsi.n] & 65535)).slice(-4);
			if (piddsi.n == "CodePage") switch (PropH[piddsi.n]) {
				case 0: PropH[piddsi.n] = 1252;
				case 874:
				case 932:
				case 936:
				case 949:
				case 950:
				case 1250:
				case 1251:
				case 1253:
				case 1254:
				case 1255:
				case 1256:
				case 1257:
				case 1258:
				case 1e4:
				case 1200:
				case 1201:
				case 1252:
				case 65e3:
				case -536:
				case 65001:
				case -535:
					set_cp(CodePage = PropH[piddsi.n] >>> 0 & 65535);
					break;
				default: throw new Error("Unsupported CodePage: " + PropH[piddsi.n]);
			}
		} else {
			if (Props[i$7][0] === 1) {
				CodePage = PropH.CodePage = parse_TypedPropertyValue(blob, VT_I2);
				set_cp(CodePage);
				if (Dictionary !== -1) {
					var oldpos = blob.l;
					blob.l = Props[Dictionary][1];
					DictObj = parse_dictionary(blob, CodePage);
					blob.l = oldpos;
				}
			} else if (Props[i$7][0] === 0) {
				if (CodePage === 0) {
					Dictionary = i$7;
					blob.l = Props[i$7 + 1][1];
					continue;
				}
				DictObj = parse_dictionary(blob, CodePage);
			} else {
				var name = DictObj[Props[i$7][0]];
				var val$1;
				switch (blob[blob.l]) {
					case 65:
						blob.l += 4;
						val$1 = parse_BLOB(blob);
						break;
					case 30:
						blob.l += 4;
						val$1 = parse_VtString(blob, blob[blob.l - 4]).replace(/(^|[^\u0000])\u0000+$/, "$1");
						break;
					case 31:
						blob.l += 4;
						val$1 = parse_VtString(blob, blob[blob.l - 4]).replace(/(^|[^\u0000])\u0000+$/, "$1");
						break;
					case 3:
						blob.l += 4;
						val$1 = blob.read_shift(4, "i");
						break;
					case 19:
						blob.l += 4;
						val$1 = blob.read_shift(4);
						break;
					case 5:
						blob.l += 4;
						val$1 = blob.read_shift(8, "f");
						break;
					case 11:
						blob.l += 4;
						val$1 = parsebool(blob, 4);
						break;
					case 64:
						blob.l += 4;
						val$1 = parseDate(parse_FILETIME(blob));
						break;
					default: throw new Error("unparsed value: " + blob[blob.l]);
				}
				PropH[name] = val$1;
			}
		}
	}
	blob.l = start_addr + size;
	return PropH;
}
function guess_property_type(val$1) {
	switch (typeof val$1) {
		case "boolean": return 11;
		case "number": return (val$1 | 0) == val$1 ? 3 : 5;
		case "string": return 31;
		case "object":
			if (val$1 instanceof Date) return 64;
			break;
	}
	return -1;
}
function write_PropertySet(entries, RE, PIDSI) {
	var hdr = new_buf(8), piao = [], prop = [];
	var sz = 8, i$7 = 0;
	var pr = new_buf(8), pio = new_buf(8);
	pr.write_shift(4, 2);
	pr.write_shift(4, 1200);
	pio.write_shift(4, 1);
	prop.push(pr);
	piao.push(pio);
	sz += 8 + pr.length;
	if (!RE) {
		pio = new_buf(8);
		pio.write_shift(4, 0);
		piao.unshift(pio);
		var bufs = [new_buf(4)];
		bufs[0].write_shift(4, entries.length);
		for (i$7 = 0; i$7 < entries.length; ++i$7) {
			var value = entries[i$7][0];
			pr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));
			pr.write_shift(4, i$7 + 2);
			pr.write_shift(4, value.length + 1);
			pr.write_shift(0, value, "dbcs");
			while (pr.l != pr.length) pr.write_shift(1, 0);
			bufs.push(pr);
		}
		pr = bconcat(bufs);
		prop.unshift(pr);
		sz += 8 + pr.length;
	}
	for (i$7 = 0; i$7 < entries.length; ++i$7) {
		if (RE && !RE[entries[i$7][0]]) continue;
		if (XLSPSSkip.indexOf(entries[i$7][0]) > -1 || PseudoPropsPairs.indexOf(entries[i$7][0]) > -1) continue;
		if (entries[i$7][1] == null) continue;
		var val$1 = entries[i$7][1], idx = 0;
		if (RE) {
			idx = +RE[entries[i$7][0]];
			var pinfo = PIDSI[idx];
			if (pinfo.p == "version" && typeof val$1 == "string") {
				var arr = val$1.split(".");
				val$1 = (+arr[0] << 16) + (+arr[1] || 0);
			}
			pr = write_TypedPropertyValue(pinfo.t, val$1);
		} else {
			var T$3 = guess_property_type(val$1);
			if (T$3 == -1) {
				T$3 = 31;
				val$1 = String(val$1);
			}
			pr = write_TypedPropertyValue(T$3, val$1);
		}
		prop.push(pr);
		pio = new_buf(8);
		pio.write_shift(4, !RE ? 2 + i$7 : idx);
		piao.push(pio);
		sz += 8 + pr.length;
	}
	var w$2 = 8 * (prop.length + 1);
	for (i$7 = 0; i$7 < prop.length; ++i$7) {
		piao[i$7].write_shift(4, w$2);
		w$2 += prop[i$7].length;
	}
	hdr.write_shift(4, sz);
	hdr.write_shift(4, prop.length);
	return bconcat([hdr].concat(piao).concat(prop));
}
function parse_PropertySetStream(file, PIDSI, clsid) {
	var blob = file.content;
	if (!blob) return {};
	prep_blob(blob, 0);
	var NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;
	blob.chk("feff", "Byte Order: ");
	blob.read_shift(2);
	var SystemIdentifier = blob.read_shift(4);
	var CLSID = blob.read_shift(16);
	if (CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error("Bad PropertySet CLSID " + CLSID);
	NumSets = blob.read_shift(4);
	if (NumSets !== 1 && NumSets !== 2) throw new Error("Unrecognized #Sets: " + NumSets);
	FMTID0 = blob.read_shift(16);
	Offset0 = blob.read_shift(4);
	if (NumSets === 1 && Offset0 !== blob.l) throw new Error("Length mismatch: " + Offset0 + " !== " + blob.l);
	else if (NumSets === 2) {
		FMTID1 = blob.read_shift(16);
		Offset1 = blob.read_shift(4);
	}
	var PSet0 = parse_PropertySet(blob, PIDSI);
	var rval = { SystemIdentifier };
	for (var y$3 in PSet0) rval[y$3] = PSet0[y$3];
	rval.FMTID = FMTID0;
	if (NumSets === 1) return rval;
	if (Offset1 - blob.l == 2) blob.l += 2;
	if (blob.l !== Offset1) throw new Error("Length mismatch 2: " + blob.l + " !== " + Offset1);
	var PSet1;
	try {
		PSet1 = parse_PropertySet(blob, null);
	} catch (e$10) {}
	for (y$3 in PSet1) rval[y$3] = PSet1[y$3];
	rval.FMTID = [FMTID0, FMTID1];
	return rval;
}
function write_PropertySetStream(entries, clsid, RE, PIDSI, entries2, clsid2) {
	var hdr = new_buf(entries2 ? 68 : 48);
	var bufs = [hdr];
	hdr.write_shift(2, 65534);
	hdr.write_shift(2, 0);
	hdr.write_shift(4, 842412599);
	hdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, "hex");
	hdr.write_shift(4, entries2 ? 2 : 1);
	hdr.write_shift(16, clsid, "hex");
	hdr.write_shift(4, entries2 ? 68 : 48);
	var ps0 = write_PropertySet(entries, RE, PIDSI);
	bufs.push(ps0);
	if (entries2) {
		var ps1 = write_PropertySet(entries2, null, null);
		hdr.write_shift(16, clsid2, "hex");
		hdr.write_shift(4, 68 + ps0.length);
		bufs.push(ps1);
	}
	return bconcat(bufs);
}
function parsenoop2(blob, length) {
	blob.read_shift(length);
	return null;
}
function writezeroes(n$9, o$10) {
	if (!o$10) o$10 = new_buf(n$9);
	for (var j$2 = 0; j$2 < n$9; ++j$2) o$10.write_shift(1, 0);
	return o$10;
}
function parslurp(blob, length, cb) {
	var arr = [], target = blob.l + length;
	while (blob.l < target) arr.push(cb(blob, target - blob.l));
	if (target !== blob.l) throw new Error("Slurp error");
	return arr;
}
function parsebool(blob, length) {
	return blob.read_shift(length) === 1;
}
function writebool(v$3, o$10) {
	if (!o$10) o$10 = new_buf(2);
	o$10.write_shift(2, +!!v$3);
	return o$10;
}
function parseuint16(blob) {
	return blob.read_shift(2, "u");
}
function writeuint16(v$3, o$10) {
	if (!o$10) o$10 = new_buf(2);
	o$10.write_shift(2, v$3);
	return o$10;
}
function parseuint16a(blob, length) {
	return parslurp(blob, length, parseuint16);
}
function parse_Bes(blob) {
	var v$3 = blob.read_shift(1), t$6 = blob.read_shift(1);
	return t$6 === 1 ? v$3 : v$3 === 1;
}
function write_Bes(v$3, t$6, o$10) {
	if (!o$10) o$10 = new_buf(2);
	o$10.write_shift(1, t$6 == "e" ? +v$3 : +!!v$3);
	o$10.write_shift(1, t$6 == "e" ? 1 : 0);
	return o$10;
}
function parse_ShortXLUnicodeString(blob, length, opts) {
	var cch = blob.read_shift(opts && opts.biff >= 12 ? 2 : 1);
	var encoding = "sbcs-cont";
	var cp = current_codepage;
	if (opts && opts.biff >= 8) current_codepage = 1200;
	if (!opts || opts.biff == 8) {
		var fHighByte = blob.read_shift(1);
		if (fHighByte) {
			encoding = "dbcs-cont";
		}
	} else if (opts.biff == 12) {
		encoding = "wstr";
	}
	if (opts.biff >= 2 && opts.biff <= 5) encoding = "cpstr";
	var o$10 = cch ? blob.read_shift(cch, encoding) : "";
	current_codepage = cp;
	return o$10;
}
function parse_XLUnicodeRichExtendedString(blob) {
	var cp = current_codepage;
	current_codepage = 1200;
	var cch = blob.read_shift(2), flags = blob.read_shift(1);
	var fExtSt = flags & 4, fRichSt = flags & 8;
	var width = 1 + (flags & 1);
	var cRun = 0, cbExtRst;
	var z$2 = {};
	if (fRichSt) cRun = blob.read_shift(2);
	if (fExtSt) cbExtRst = blob.read_shift(4);
	var encoding = width == 2 ? "dbcs-cont" : "sbcs-cont";
	var msg = cch === 0 ? "" : blob.read_shift(cch, encoding);
	if (fRichSt) blob.l += 4 * cRun;
	if (fExtSt) blob.l += cbExtRst;
	z$2.t = msg;
	if (!fRichSt) {
		z$2.raw = "<t>" + z$2.t + "</t>";
		z$2.r = z$2.t;
	}
	current_codepage = cp;
	return z$2;
}
function write_XLUnicodeRichExtendedString(xlstr) {
	var str = xlstr.t || "", nfmts = 1;
	var hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));
	hdr.write_shift(2, str.length);
	hdr.write_shift(1, (nfmts > 1 ? 8 : 0) | 1);
	if (nfmts > 1) hdr.write_shift(2, nfmts);
	var otext = new_buf(2 * str.length);
	otext.write_shift(2 * str.length, str, "utf16le");
	var out = [hdr, otext];
	return bconcat(out);
}
function parse_XLUnicodeStringNoCch(blob, cch, opts) {
	var retval;
	if (opts) {
		if (opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, "cpstr");
		if (opts.biff >= 12) return blob.read_shift(cch, "dbcs-cont");
	}
	var fHighByte = blob.read_shift(1);
	if (fHighByte === 0) {
		retval = blob.read_shift(cch, "sbcs-cont");
	} else {
		retval = blob.read_shift(cch, "dbcs-cont");
	}
	return retval;
}
function parse_XLUnicodeString(blob, length, opts) {
	var cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);
	if (cch === 0) {
		blob.l++;
		return "";
	}
	return parse_XLUnicodeStringNoCch(blob, cch, opts);
}
function parse_XLUnicodeString2(blob, length, opts) {
	if (opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);
	var cch = blob.read_shift(1);
	if (cch === 0) {
		blob.l++;
		return "";
	}
	return blob.read_shift(cch, opts.biff <= 4 || !blob.lens ? "cpstr" : "sbcs-cont");
}
function write_XLUnicodeString(str, opts, o$10) {
	if (!o$10) o$10 = new_buf(3 + 2 * str.length);
	o$10.write_shift(2, str.length);
	o$10.write_shift(1, 1);
	o$10.write_shift(31, str, "utf16le");
	return o$10;
}
function parse_ControlInfo(blob) {
	var flags = blob.read_shift(1);
	blob.l++;
	var accel = blob.read_shift(2);
	blob.l += 2;
	return [flags, accel];
}
function parse_URLMoniker(blob) {
	var len = blob.read_shift(4), start = blob.l;
	var extra = false;
	if (len > 24) {
		blob.l += len - 24;
		if (blob.read_shift(16) === "795881f43b1d7f48af2c825dc4852763") extra = true;
		blob.l = start;
	}
	var url = blob.read_shift((extra ? len - 24 : len) >> 1, "utf16le").replace(chr0, "");
	if (extra) blob.l += 24;
	return url;
}
function parse_FileMoniker(blob) {
	var cAnti = blob.read_shift(2);
	var preamble = "";
	while (cAnti-- > 0) preamble += "../";
	var ansiPath = blob.read_shift(0, "lpstr-ansi");
	blob.l += 2;
	if (blob.read_shift(2) != 57005) throw new Error("Bad FileMoniker");
	var sz = blob.read_shift(4);
	if (sz === 0) return preamble + ansiPath.replace(/\\/g, "/");
	var bytes = blob.read_shift(4);
	if (blob.read_shift(2) != 3) throw new Error("Bad FileMoniker");
	var unicodePath = blob.read_shift(bytes >> 1, "utf16le").replace(chr0, "");
	return preamble + unicodePath;
}
function parse_HyperlinkMoniker(blob, length) {
	var clsid = blob.read_shift(16);
	length -= 16;
	switch (clsid) {
		case "e0c9ea79f9bace118c8200aa004ba90b": return parse_URLMoniker(blob, length);
		case "0303000000000000c000000000000046": return parse_FileMoniker(blob, length);
		default: throw new Error("Unsupported Moniker " + clsid);
	}
}
function parse_HyperlinkString(blob) {
	var len = blob.read_shift(4);
	var o$10 = len > 0 ? blob.read_shift(len, "utf16le").replace(chr0, "") : "";
	return o$10;
}
function write_HyperlinkString(str, o$10) {
	if (!o$10) o$10 = new_buf(6 + str.length * 2);
	o$10.write_shift(4, 1 + str.length);
	for (var i$7 = 0; i$7 < str.length; ++i$7) o$10.write_shift(2, str.charCodeAt(i$7));
	o$10.write_shift(2, 0);
	return o$10;
}
function parse_Hyperlink(blob, length) {
	var end = blob.l + length;
	var sVer = blob.read_shift(4);
	if (sVer !== 2) throw new Error("Unrecognized streamVersion: " + sVer);
	var flags = blob.read_shift(2);
	blob.l += 2;
	var displayName, targetFrameName, moniker, oleMoniker, Loc = "", guid, fileTime;
	if (flags & 16) displayName = parse_HyperlinkString(blob, end - blob.l);
	if (flags & 128) targetFrameName = parse_HyperlinkString(blob, end - blob.l);
	if ((flags & 257) === 257) moniker = parse_HyperlinkString(blob, end - blob.l);
	if ((flags & 257) === 1) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);
	if (flags & 8) Loc = parse_HyperlinkString(blob, end - blob.l);
	if (flags & 32) guid = blob.read_shift(16);
	if (flags & 64) fileTime = parse_FILETIME(blob);
	blob.l = end;
	var target = targetFrameName || moniker || oleMoniker || "";
	if (target && Loc) target += "#" + Loc;
	if (!target) target = "#" + Loc;
	if (flags & 2 && target.charAt(0) == "/" && target.charAt(1) != "/") target = "file://" + target;
	var out = { Target: target };
	if (guid) out.guid = guid;
	if (fileTime) out.time = fileTime;
	if (displayName) out.Tooltip = displayName;
	return out;
}
function write_Hyperlink(hl) {
	var out = new_buf(512), i$7 = 0;
	var Target$1 = hl.Target;
	if (Target$1.slice(0, 7) == "file://") Target$1 = Target$1.slice(7);
	var hashidx = Target$1.indexOf("#");
	var F$1 = hashidx > -1 ? 31 : 23;
	switch (Target$1.charAt(0)) {
		case "#":
			F$1 = 28;
			break;
		case ".":
			F$1 &= ~2;
			break;
	}
	out.write_shift(4, 2);
	out.write_shift(4, F$1);
	var data = [
		8,
		6815827,
		6619237,
		4849780,
		83
	];
	for (i$7 = 0; i$7 < data.length; ++i$7) out.write_shift(4, data[i$7]);
	if (F$1 == 28) {
		Target$1 = Target$1.slice(1);
		write_HyperlinkString(Target$1, out);
	} else if (F$1 & 2) {
		data = "e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b".split(" ");
		for (i$7 = 0; i$7 < data.length; ++i$7) out.write_shift(1, parseInt(data[i$7], 16));
		var Pretarget = hashidx > -1 ? Target$1.slice(0, hashidx) : Target$1;
		out.write_shift(4, 2 * (Pretarget.length + 1));
		for (i$7 = 0; i$7 < Pretarget.length; ++i$7) out.write_shift(2, Pretarget.charCodeAt(i$7));
		out.write_shift(2, 0);
		if (F$1 & 8) write_HyperlinkString(hashidx > -1 ? Target$1.slice(hashidx + 1) : "", out);
	} else {
		data = "03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46".split(" ");
		for (i$7 = 0; i$7 < data.length; ++i$7) out.write_shift(1, parseInt(data[i$7], 16));
		var P$2 = 0;
		while (Target$1.slice(P$2 * 3, P$2 * 3 + 3) == "../" || Target$1.slice(P$2 * 3, P$2 * 3 + 3) == "..\\") ++P$2;
		out.write_shift(2, P$2);
		out.write_shift(4, Target$1.length - 3 * P$2 + 1);
		for (i$7 = 0; i$7 < Target$1.length - 3 * P$2; ++i$7) out.write_shift(1, Target$1.charCodeAt(i$7 + 3 * P$2) & 255);
		out.write_shift(1, 0);
		out.write_shift(2, 65535);
		out.write_shift(2, 57005);
		for (i$7 = 0; i$7 < 6; ++i$7) out.write_shift(4, 0);
	}
	return out.slice(0, out.l);
}
function parse_LongRGBA(blob) {
	var r$10 = blob.read_shift(1), g$1 = blob.read_shift(1), b$3 = blob.read_shift(1), a$2 = blob.read_shift(1);
	return [
		r$10,
		g$1,
		b$3,
		a$2
	];
}
function parse_LongRGB(blob, length) {
	var x$2 = parse_LongRGBA(blob, length);
	x$2[3] = 0;
	return x$2;
}
function parse_XLSCell(blob, length, opts) {
	var rw = blob.read_shift(2);
	var col = blob.read_shift(2);
	var ret = {
		r: rw,
		c: col,
		ixfe: 0
	};
	if (opts && opts.biff == 2 || length == 7) {
		var flags = blob.read_shift(1);
		ret.ixfe = flags & 63;
		blob.l += 2;
	} else ret.ixfe = blob.read_shift(2);
	return ret;
}
function write_XLSCell(R$1, C$2, ixfe, o$10) {
	if (!o$10) o$10 = new_buf(6);
	o$10.write_shift(2, R$1);
	o$10.write_shift(2, C$2);
	o$10.write_shift(2, ixfe || 0);
	return o$10;
}
function parse_frtHeader(blob) {
	var rt = blob.read_shift(2);
	var flags = blob.read_shift(2);
	blob.l += 8;
	return {
		type: rt,
		flags
	};
}
function parse_OptXLUnicodeString(blob, length, opts) {
	return length === 0 ? "" : parse_XLUnicodeString2(blob, length, opts);
}
function parse_XTI(blob, length, opts) {
	var w$2 = opts.biff > 8 ? 4 : 2;
	var iSupBook = blob.read_shift(w$2), itabFirst = blob.read_shift(w$2, "i"), itabLast = blob.read_shift(w$2, "i");
	return [
		iSupBook,
		itabFirst,
		itabLast
	];
}
function parse_RkRec(blob) {
	var ixfe = blob.read_shift(2);
	var RK = parse_RkNumber(blob);
	return [ixfe, RK];
}
function parse_AddinUdf(blob, length, opts) {
	blob.l += 4;
	length -= 4;
	var l$3 = blob.l + length;
	var udfName = parse_ShortXLUnicodeString(blob, length, opts);
	var cb = blob.read_shift(2);
	l$3 -= blob.l;
	if (cb !== l$3) throw new Error("Malformed AddinUdf: padding = " + l$3 + " != " + cb);
	blob.l += cb;
	return udfName;
}
function parse_Ref8U(blob) {
	var rwFirst = blob.read_shift(2);
	var rwLast = blob.read_shift(2);
	var colFirst = blob.read_shift(2);
	var colLast = blob.read_shift(2);
	return {
		s: {
			c: colFirst,
			r: rwFirst
		},
		e: {
			c: colLast,
			r: rwLast
		}
	};
}
function write_Ref8U(r$10, o$10) {
	if (!o$10) o$10 = new_buf(8);
	o$10.write_shift(2, r$10.s.r);
	o$10.write_shift(2, r$10.e.r);
	o$10.write_shift(2, r$10.s.c);
	o$10.write_shift(2, r$10.e.c);
	return o$10;
}
function parse_RefU(blob) {
	var rwFirst = blob.read_shift(2);
	var rwLast = blob.read_shift(2);
	var colFirst = blob.read_shift(1);
	var colLast = blob.read_shift(1);
	return {
		s: {
			c: colFirst,
			r: rwFirst
		},
		e: {
			c: colLast,
			r: rwLast
		}
	};
}
function parse_FtCmo(blob) {
	blob.l += 4;
	var ot = blob.read_shift(2);
	var id = blob.read_shift(2);
	var flags = blob.read_shift(2);
	blob.l += 12;
	return [
		id,
		ot,
		flags
	];
}
function parse_FtNts(blob) {
	var out = {};
	blob.l += 4;
	blob.l += 16;
	out.fSharedNote = blob.read_shift(2);
	blob.l += 4;
	return out;
}
function parse_FtCf(blob) {
	var out = {};
	blob.l += 4;
	blob.cf = blob.read_shift(2);
	return out;
}
function parse_FtSkip(blob) {
	blob.l += 2;
	blob.l += blob.read_shift(2);
}
function parse_FtArray(blob, length) {
	var tgt = blob.l + length;
	var fts = [];
	while (blob.l < tgt) {
		var ft = blob.read_shift(2);
		blob.l -= 2;
		try {
			fts[ft] = FtTab[ft](blob, tgt - blob.l);
		} catch (e$10) {
			blob.l = tgt;
			return fts;
		}
	}
	if (blob.l != tgt) blob.l = tgt;
	return fts;
}
function parse_BOF(blob, length) {
	var o$10 = {
		BIFFVer: 0,
		dt: 0
	};
	o$10.BIFFVer = blob.read_shift(2);
	length -= 2;
	if (length >= 2) {
		o$10.dt = blob.read_shift(2);
		blob.l -= 2;
	}
	switch (o$10.BIFFVer) {
		case 1536:
		case 1280:
		case 1024:
		case 768:
		case 512:
		case 2:
		case 7: break;
		default: if (length > 6) throw new Error("Unexpected BIFF Ver " + o$10.BIFFVer);
	}
	blob.read_shift(length);
	return o$10;
}
function write_BOF(wb, t$6, o$10) {
	var h$5 = 1536, w$2 = 16;
	switch (o$10.bookType) {
		case "biff8": break;
		case "biff5":
			h$5 = 1280;
			w$2 = 8;
			break;
		case "biff4":
			h$5 = 4;
			w$2 = 6;
			break;
		case "biff3":
			h$5 = 3;
			w$2 = 6;
			break;
		case "biff2":
			h$5 = 2;
			w$2 = 4;
			break;
		case "xla": break;
		default: throw new Error("unsupported BIFF version");
	}
	var out = new_buf(w$2);
	out.write_shift(2, h$5);
	out.write_shift(2, t$6);
	if (w$2 > 4) out.write_shift(2, 29282);
	if (w$2 > 6) out.write_shift(2, 1997);
	if (w$2 > 8) {
		out.write_shift(2, 49161);
		out.write_shift(2, 1);
		out.write_shift(2, 1798);
		out.write_shift(2, 0);
	}
	return out;
}
function parse_InterfaceHdr(blob, length) {
	if (length === 0) return 1200;
	if (blob.read_shift(2) !== 1200) {}
	return 1200;
}
function parse_WriteAccess(blob, length, opts) {
	if (opts.enc) {
		blob.l += length;
		return "";
	}
	var l$3 = blob.l;
	var UserName = parse_XLUnicodeString2(blob, 0, opts);
	blob.read_shift(length + l$3 - blob.l);
	return UserName;
}
function write_WriteAccess(s$5, opts) {
	var b8 = !opts || opts.biff == 8;
	var o$10 = new_buf(b8 ? 112 : 54);
	o$10.write_shift(opts.biff == 8 ? 2 : 1, 7);
	if (b8) o$10.write_shift(1, 0);
	o$10.write_shift(4, 859007059);
	o$10.write_shift(4, 5458548 | (b8 ? 0 : 536870912));
	while (o$10.l < o$10.length) o$10.write_shift(1, b8 ? 0 : 32);
	return o$10;
}
function parse_WsBool(blob, length, opts) {
	var flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);
	return {
		fDialog: flags & 16,
		fBelow: flags & 64,
		fRight: flags & 128
	};
}
function parse_BoundSheet8(blob, length, opts) {
	var name = "";
	if (opts.biff == 4) {
		name = parse_ShortXLUnicodeString(blob, 0, opts);
		if (name.length === 0) name = "Sheet1";
		return { name };
	}
	var pos = blob.read_shift(4);
	var hidden = blob.read_shift(1) & 3;
	var dt = blob.read_shift(1);
	switch (dt) {
		case 0:
			dt = "Worksheet";
			break;
		case 1:
			dt = "Macrosheet";
			break;
		case 2:
			dt = "Chartsheet";
			break;
		case 6:
			dt = "VBAModule";
			break;
	}
	name = parse_ShortXLUnicodeString(blob, 0, opts);
	if (name.length === 0) name = "Sheet1";
	return {
		pos,
		hs: hidden,
		dt,
		name
	};
}
function write_BoundSheet8(data, opts) {
	var w$2 = !opts || opts.biff >= 8 ? 2 : 1;
	var o$10 = new_buf(8 + w$2 * data.name.length);
	o$10.write_shift(4, data.pos);
	o$10.write_shift(1, data.hs || 0);
	o$10.write_shift(1, data.dt);
	o$10.write_shift(1, data.name.length);
	if (opts.biff >= 8) o$10.write_shift(1, 1);
	o$10.write_shift(w$2 * data.name.length, data.name, opts.biff < 8 ? "sbcs" : "utf16le");
	var out = o$10.slice(0, o$10.l);
	out.l = o$10.l;
	return out;
}
function parse_SST(blob, length) {
	var end = blob.l + length;
	var cnt = blob.read_shift(4);
	var ucnt = blob.read_shift(4);
	var strs$1 = [];
	for (var i$7 = 0; i$7 != ucnt && blob.l < end; ++i$7) {
		strs$1.push(parse_XLUnicodeRichExtendedString(blob));
	}
	strs$1.Count = cnt;
	strs$1.Unique = ucnt;
	return strs$1;
}
function write_SST(sst, opts) {
	var header = new_buf(8);
	header.write_shift(4, sst.Count);
	header.write_shift(4, sst.Unique);
	var strs$1 = [];
	for (var j$2 = 0; j$2 < sst.length; ++j$2) strs$1[j$2] = write_XLUnicodeRichExtendedString(sst[j$2], opts);
	var o$10 = bconcat([header].concat(strs$1));
	o$10.parts = [header.length].concat(strs$1.map(function(str) {
		return str.length;
	}));
	return o$10;
}
function parse_ExtSST(blob, length) {
	var extsst = {};
	extsst.dsst = blob.read_shift(2);
	blob.l += length - 2;
	return extsst;
}
function parse_Row(blob) {
	var z$2 = {};
	z$2.r = blob.read_shift(2);
	z$2.c = blob.read_shift(2);
	z$2.cnt = blob.read_shift(2) - z$2.c;
	var miyRw = blob.read_shift(2);
	blob.l += 4;
	var flags = blob.read_shift(1);
	blob.l += 3;
	if (flags & 7) z$2.level = flags & 7;
	if (flags & 32) z$2.hidden = true;
	if (flags & 64) z$2.hpt = miyRw / 20;
	return z$2;
}
function parse_ForceFullCalculation(blob) {
	var header = parse_frtHeader(blob);
	if (header.type != 2211) throw new Error("Invalid Future Record " + header.type);
	var fullcalc = blob.read_shift(4);
	return fullcalc !== 0;
}
function parse_RecalcId(blob) {
	blob.read_shift(2);
	return blob.read_shift(4);
}
function parse_DefaultRowHeight(blob, length, opts) {
	var f$4 = 0;
	if (!(opts && opts.biff == 2)) {
		f$4 = blob.read_shift(2);
	}
	var miyRw = blob.read_shift(2);
	if (opts && opts.biff == 2) {
		f$4 = 1 - (miyRw >> 15);
		miyRw &= 32767;
	}
	var fl = {
		Unsynced: f$4 & 1,
		DyZero: (f$4 & 2) >> 1,
		ExAsc: (f$4 & 4) >> 2,
		ExDsc: (f$4 & 8) >> 3
	};
	return [fl, miyRw];
}
function parse_Window1(blob) {
	var xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);
	var flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);
	var ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);
	return {
		Pos: [xWn, yWn],
		Dim: [dxWn, dyWn],
		Flags: flags,
		CurTab: iTabCur,
		FirstTab: iTabFirst,
		Selected: ctabSel,
		TabRatio: wTabRatio
	};
}
function write_Window1() {
	var o$10 = new_buf(18);
	o$10.write_shift(2, 0);
	o$10.write_shift(2, 0);
	o$10.write_shift(2, 29280);
	o$10.write_shift(2, 17600);
	o$10.write_shift(2, 56);
	o$10.write_shift(2, 0);
	o$10.write_shift(2, 0);
	o$10.write_shift(2, 1);
	o$10.write_shift(2, 500);
	return o$10;
}
function parse_Window2(blob, length, opts) {
	if (opts && opts.biff >= 2 && opts.biff < 5) return {};
	var f$4 = blob.read_shift(2);
	return { RTL: f$4 & 64 };
}
function write_Window2(view) {
	var o$10 = new_buf(18), f$4 = 1718;
	if (view && view.RTL) f$4 |= 64;
	o$10.write_shift(2, f$4);
	o$10.write_shift(4, 0);
	o$10.write_shift(4, 64);
	o$10.write_shift(4, 0);
	o$10.write_shift(4, 0);
	return o$10;
}
function parse_Pane() {}
function parse_Font(blob, length, opts) {
	var o$10 = {
		dyHeight: blob.read_shift(2),
		fl: blob.read_shift(2)
	};
	switch (opts && opts.biff || 8) {
		case 2: break;
		case 3:
		case 4:
			blob.l += 2;
			break;
		default:
			blob.l += 10;
			break;
	}
	o$10.name = parse_ShortXLUnicodeString(blob, 0, opts);
	return o$10;
}
function write_Font(data, opts) {
	var name = data.name || "Arial";
	var b5 = opts && opts.biff == 5, w$2 = b5 ? 15 + name.length : 16 + 2 * name.length;
	var o$10 = new_buf(w$2);
	o$10.write_shift(2, (data.sz || 12) * 20);
	o$10.write_shift(4, 0);
	o$10.write_shift(2, 400);
	o$10.write_shift(4, 0);
	o$10.write_shift(2, 0);
	o$10.write_shift(1, name.length);
	if (!b5) o$10.write_shift(1, 1);
	o$10.write_shift((b5 ? 1 : 2) * name.length, name, b5 ? "sbcs" : "utf16le");
	return o$10;
}
function parse_LabelSst(blob, length, opts) {
	var cell = parse_XLSCell(blob, length, opts);
	cell.isst = blob.read_shift(4);
	return cell;
}
function write_LabelSst(R$1, C$2, v$3, os) {
	var o$10 = new_buf(10);
	write_XLSCell(R$1, C$2, os, o$10);
	o$10.write_shift(4, v$3);
	return o$10;
}
function parse_Label(blob, length, opts) {
	if (opts.biffguess && opts.biff == 2) opts.biff = 5;
	var target = blob.l + length;
	var cell = parse_XLSCell(blob, length, opts);
	var str = parse_XLUnicodeString(blob, target - blob.l, opts);
	cell.val = str;
	return cell;
}
function write_Label(R$1, C$2, v$3, os, opts) {
	var b8 = !opts || opts.biff == 8;
	var o$10 = new_buf(6 + 2 + +b8 + (1 + b8) * v$3.length);
	write_XLSCell(R$1, C$2, os, o$10);
	o$10.write_shift(2, v$3.length);
	if (b8) o$10.write_shift(1, 1);
	o$10.write_shift((1 + b8) * v$3.length, v$3, b8 ? "utf16le" : "sbcs");
	return o$10;
}
function parse_Format(blob, length, opts) {
	var numFmtId = blob.read_shift(2);
	var fmtstr = parse_XLUnicodeString2(blob, 0, opts);
	return [numFmtId, fmtstr];
}
function write_Format(i$7, f$4, opts, o$10) {
	var b5 = opts && opts.biff == 5;
	if (!o$10) o$10 = new_buf(b5 ? 3 + f$4.length : 5 + 2 * f$4.length);
	o$10.write_shift(2, i$7);
	o$10.write_shift(b5 ? 1 : 2, f$4.length);
	if (!b5) o$10.write_shift(1, 1);
	o$10.write_shift((b5 ? 1 : 2) * f$4.length, f$4, b5 ? "sbcs" : "utf16le");
	var out = o$10.length > o$10.l ? o$10.slice(0, o$10.l) : o$10;
	if (out.l == null) out.l = out.length;
	return out;
}
function write_BIFF2Format(f$4) {
	var o$10 = new_buf(1 + f$4.length);
	o$10.write_shift(1, f$4.length);
	o$10.write_shift(f$4.length, f$4, "sbcs");
	return o$10;
}
function write_BIFF4Format(f$4) {
	var o$10 = new_buf(3 + f$4.length);
	o$10.l += 2;
	o$10.write_shift(1, f$4.length);
	o$10.write_shift(f$4.length, f$4, "sbcs");
	return o$10;
}
function parse_Dimensions(blob, length, opts) {
	var end = blob.l + length;
	var w$2 = opts.biff == 8 || !opts.biff ? 4 : 2;
	var r$10 = blob.read_shift(w$2), R$1 = blob.read_shift(w$2);
	var c$7 = blob.read_shift(2), C$2 = blob.read_shift(2);
	blob.l = end;
	return {
		s: {
			r: r$10,
			c: c$7
		},
		e: {
			r: R$1,
			c: C$2
		}
	};
}
function write_Dimensions(range, opts) {
	var w$2 = opts.biff == 8 || !opts.biff ? 4 : 2;
	var o$10 = new_buf(2 * w$2 + 6);
	o$10.write_shift(w$2, range.s.r);
	o$10.write_shift(w$2, range.e.r + 1);
	o$10.write_shift(2, range.s.c);
	o$10.write_shift(2, range.e.c + 1);
	o$10.write_shift(2, 0);
	return o$10;
}
function parse_RK(blob) {
	var rw = blob.read_shift(2), col = blob.read_shift(2);
	var rkrec = parse_RkRec(blob);
	return {
		r: rw,
		c: col,
		ixfe: rkrec[0],
		rknum: rkrec[1]
	};
}
function parse_MulRk(blob, length) {
	var target = blob.l + length - 2;
	var rw = blob.read_shift(2), col = blob.read_shift(2);
	var rkrecs = [];
	while (blob.l < target) rkrecs.push(parse_RkRec(blob));
	if (blob.l !== target) throw new Error("MulRK read error");
	var lastcol = blob.read_shift(2);
	if (rkrecs.length != lastcol - col + 1) throw new Error("MulRK length mismatch");
	return {
		r: rw,
		c: col,
		C: lastcol,
		rkrec: rkrecs
	};
}
function parse_MulBlank(blob, length) {
	var target = blob.l + length - 2;
	var rw = blob.read_shift(2), col = blob.read_shift(2);
	var ixfes = [];
	while (blob.l < target) ixfes.push(blob.read_shift(2));
	if (blob.l !== target) throw new Error("MulBlank read error");
	var lastcol = blob.read_shift(2);
	if (ixfes.length != lastcol - col + 1) throw new Error("MulBlank length mismatch");
	return {
		r: rw,
		c: col,
		C: lastcol,
		ixfe: ixfes
	};
}
function parse_CellStyleXF(blob, length, style, opts) {
	var o$10 = {};
	var a$2 = blob.read_shift(4), b$3 = blob.read_shift(4);
	var c$7 = blob.read_shift(4), d$5 = blob.read_shift(2);
	o$10.patternType = XLSFillPattern[c$7 >> 26];
	if (!opts.cellStyles) return o$10;
	o$10.alc = a$2 & 7;
	o$10.fWrap = a$2 >> 3 & 1;
	o$10.alcV = a$2 >> 4 & 7;
	o$10.fJustLast = a$2 >> 7 & 1;
	o$10.trot = a$2 >> 8 & 255;
	o$10.cIndent = a$2 >> 16 & 15;
	o$10.fShrinkToFit = a$2 >> 20 & 1;
	o$10.iReadOrder = a$2 >> 22 & 2;
	o$10.fAtrNum = a$2 >> 26 & 1;
	o$10.fAtrFnt = a$2 >> 27 & 1;
	o$10.fAtrAlc = a$2 >> 28 & 1;
	o$10.fAtrBdr = a$2 >> 29 & 1;
	o$10.fAtrPat = a$2 >> 30 & 1;
	o$10.fAtrProt = a$2 >> 31 & 1;
	o$10.dgLeft = b$3 & 15;
	o$10.dgRight = b$3 >> 4 & 15;
	o$10.dgTop = b$3 >> 8 & 15;
	o$10.dgBottom = b$3 >> 12 & 15;
	o$10.icvLeft = b$3 >> 16 & 127;
	o$10.icvRight = b$3 >> 23 & 127;
	o$10.grbitDiag = b$3 >> 30 & 3;
	o$10.icvTop = c$7 & 127;
	o$10.icvBottom = c$7 >> 7 & 127;
	o$10.icvDiag = c$7 >> 14 & 127;
	o$10.dgDiag = c$7 >> 21 & 15;
	o$10.icvFore = d$5 & 127;
	o$10.icvBack = d$5 >> 7 & 127;
	o$10.fsxButton = d$5 >> 14 & 1;
	return o$10;
}
function parse_XF(blob, length, opts) {
	var o$10 = {};
	o$10.ifnt = blob.read_shift(2);
	o$10.numFmtId = blob.read_shift(2);
	o$10.flags = blob.read_shift(2);
	o$10.fStyle = o$10.flags >> 2 & 1;
	length -= 6;
	o$10.data = parse_CellStyleXF(blob, length, o$10.fStyle, opts);
	return o$10;
}
function write_XF(data, ixfeP, opts, o$10) {
	var b5 = opts && opts.biff == 5;
	if (!o$10) o$10 = new_buf(b5 ? 16 : 20);
	o$10.write_shift(2, 0);
	if (data.style) {
		o$10.write_shift(2, data.numFmtId || 0);
		o$10.write_shift(2, 65524);
	} else {
		o$10.write_shift(2, data.numFmtId || 0);
		o$10.write_shift(2, ixfeP << 4);
	}
	var f$4 = 0;
	if (data.numFmtId > 0 && b5) f$4 |= 1024;
	o$10.write_shift(4, f$4);
	o$10.write_shift(4, 0);
	if (!b5) o$10.write_shift(4, 0);
	o$10.write_shift(2, 0);
	return o$10;
}
function parse_BIFF2XF(blob) {
	var o$10 = {};
	o$10.ifnt = blob.read_shift(1);
	blob.l++;
	o$10.flags = blob.read_shift(1);
	o$10.numFmtId = o$10.flags & 63;
	o$10.flags >>= 6;
	o$10.fStyle = 0;
	o$10.data = {};
	return o$10;
}
function write_BIFF2XF(xf) {
	var o$10 = new_buf(4);
	o$10.l += 2;
	o$10.write_shift(1, xf.numFmtId);
	o$10.l++;
	return o$10;
}
function write_BIFF3XF(xf) {
	var o$10 = new_buf(12);
	o$10.l++;
	o$10.write_shift(1, xf.numFmtId);
	o$10.l += 10;
	return o$10;
}
function parse_BIFF3XF(blob) {
	var o$10 = {};
	o$10.ifnt = blob.read_shift(1);
	o$10.numFmtId = blob.read_shift(1);
	o$10.flags = blob.read_shift(2);
	o$10.fStyle = o$10.flags >> 2 & 1;
	o$10.data = {};
	return o$10;
}
function parse_BIFF4XF(blob) {
	var o$10 = {};
	o$10.ifnt = blob.read_shift(1);
	o$10.numFmtId = blob.read_shift(1);
	o$10.flags = blob.read_shift(2);
	o$10.fStyle = o$10.flags >> 2 & 1;
	o$10.data = {};
	return o$10;
}
function parse_Guts(blob) {
	blob.l += 4;
	var out = [blob.read_shift(2), blob.read_shift(2)];
	if (out[0] !== 0) out[0]--;
	if (out[1] !== 0) out[1]--;
	if (out[0] > 7 || out[1] > 7) throw new Error("Bad Gutters: " + out.join("|"));
	return out;
}
function write_Guts(guts) {
	var o$10 = new_buf(8);
	o$10.write_shift(4, 0);
	o$10.write_shift(2, guts[0] ? guts[0] + 1 : 0);
	o$10.write_shift(2, guts[1] ? guts[1] + 1 : 0);
	return o$10;
}
function parse_BoolErr(blob, length, opts) {
	var cell = parse_XLSCell(blob, 6, opts);
	var val$1 = parse_Bes(blob, 2);
	cell.val = val$1;
	cell.t = val$1 === true || val$1 === false ? "b" : "e";
	return cell;
}
function write_BoolErr(R$1, C$2, v$3, os, opts, t$6) {
	var o$10 = new_buf(8);
	write_XLSCell(R$1, C$2, os, o$10);
	write_Bes(v$3, t$6, o$10);
	return o$10;
}
function parse_Number(blob, length, opts) {
	if (opts.biffguess && opts.biff == 2) opts.biff = 5;
	var cell = parse_XLSCell(blob, 6, opts);
	var xnum = parse_Xnum(blob, 8);
	cell.val = xnum;
	return cell;
}
function write_Number(R$1, C$2, v$3, os) {
	var o$10 = new_buf(14);
	write_XLSCell(R$1, C$2, os, o$10);
	write_Xnum(v$3, o$10);
	return o$10;
}
function parse_SupBook(blob, length, opts) {
	var end = blob.l + length;
	var ctab = blob.read_shift(2);
	var cch = blob.read_shift(2);
	opts.sbcch = cch;
	if (cch == 1025 || cch == 14849) return [cch, ctab];
	if (cch < 1 || cch > 255) throw new Error("Unexpected SupBook type: " + cch);
	var virtPath = parse_XLUnicodeStringNoCch(blob, cch);
	var rgst = [];
	while (end > blob.l) rgst.push(parse_XLUnicodeString(blob));
	return [
		cch,
		ctab,
		virtPath,
		rgst
	];
}
function parse_ExternName(blob, length, opts) {
	var flags = blob.read_shift(2);
	var body;
	var o$10 = {
		fBuiltIn: flags & 1,
		fWantAdvise: flags >>> 1 & 1,
		fWantPict: flags >>> 2 & 1,
		fOle: flags >>> 3 & 1,
		fOleLink: flags >>> 4 & 1,
		cf: flags >>> 5 & 1023,
		fIcon: flags >>> 15 & 1
	};
	if (opts.sbcch === 14849) body = parse_AddinUdf(blob, length - 2, opts);
	o$10.body = body || blob.read_shift(length - 2);
	if (typeof body === "string") o$10.Name = body;
	return o$10;
}
function parse_Lbl(blob, length, opts) {
	var target = blob.l + length;
	var flags = blob.read_shift(2);
	var chKey = blob.read_shift(1);
	var cch = blob.read_shift(1);
	var cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);
	var itab = 0;
	if (!opts || opts.biff >= 5) {
		if (opts.biff != 5) blob.l += 2;
		itab = blob.read_shift(2);
		if (opts.biff == 5) blob.l += 2;
		blob.l += 4;
	}
	var name = parse_XLUnicodeStringNoCch(blob, cch, opts);
	if (flags & 32) name = XLSLblBuiltIn[name.charCodeAt(0)];
	var npflen = target - blob.l;
	if (opts && opts.biff == 2) --npflen;
	var rgce = target == blob.l || cce === 0 || !(npflen > 0) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);
	return {
		chKey,
		Name: name,
		itab,
		rgce
	};
}
function parse_ExternSheet(blob, length, opts) {
	if (opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);
	if (!(opts.biff > 8) && length == blob[blob.l] + (blob[blob.l + 1] == 3 ? 1 : 0) + 1) return parse_BIFF5ExternSheet(blob, length, opts);
	var o$10 = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);
	while (len-- !== 0) o$10.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));
	if (blob.l != target) throw new Error("Bad ExternSheet: " + blob.l + " != " + target);
	return o$10;
}
function parse_BIFF5ExternSheet(blob, length, opts) {
	if (blob[blob.l + 1] == 3) blob[blob.l]++;
	var o$10 = parse_ShortXLUnicodeString(blob, length, opts);
	return o$10.charCodeAt(0) == 3 ? o$10.slice(1) : o$10;
}
function parse_NameCmt(blob, length, opts) {
	if (opts.biff < 8) {
		blob.l += length;
		return;
	}
	var cchName = blob.read_shift(2);
	var cchComment = blob.read_shift(2);
	var name = parse_XLUnicodeStringNoCch(blob, cchName, opts);
	var comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);
	return [name, comment];
}
function parse_ShrFmla(blob, length, opts) {
	var ref = parse_RefU(blob, 6);
	blob.l++;
	var cUse = blob.read_shift(1);
	length -= 8;
	return [
		parse_SharedParsedFormula(blob, length, opts),
		cUse,
		ref
	];
}
function parse_Array(blob, length, opts) {
	var ref = parse_Ref(blob, 6);
	switch (opts.biff) {
		case 2:
			blob.l++;
			length -= 7;
			break;
		case 3:
		case 4:
			blob.l += 2;
			length -= 8;
			break;
		default:
			blob.l += 6;
			length -= 12;
	}
	return [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];
}
function parse_MTRSettings(blob) {
	var fMTREnabled = blob.read_shift(4) !== 0;
	var fUserSetThreadCount = blob.read_shift(4) !== 0;
	var cUserThreadCount = blob.read_shift(4);
	return [
		fMTREnabled,
		fUserSetThreadCount,
		cUserThreadCount
	];
}
function parse_NoteSh(blob, length, opts) {
	var row = blob.read_shift(2), col = blob.read_shift(2);
	var flags = blob.read_shift(2), idObj = blob.read_shift(2);
	var stAuthor = parse_XLUnicodeString2(blob, 0, opts);
	return [
		{
			r: row,
			c: col
		},
		stAuthor,
		idObj,
		flags
	];
}
function parse_Note(blob, length, opts) {
	if (opts && opts.biff < 8) {
		var row = blob.read_shift(2), col = blob.read_shift(2);
		if (row == 65535 || row == -1) return;
		var cch = blob.read_shift(2);
		var cmnt = blob.read_shift(Math.min(cch, 2048), "cpstr");
		return [{
			r: row,
			c: col
		}, cmnt];
	}
	return parse_NoteSh(blob, length, opts);
}
function write_NOTE_BIFF2(text$2, R$1, C$2, len) {
	var o$10 = new_buf(6 + (len || text$2.length));
	o$10.write_shift(2, R$1);
	o$10.write_shift(2, C$2);
	o$10.write_shift(2, len || text$2.length);
	o$10.write_shift(text$2.length, text$2, "sbcs");
	return o$10;
}
function parse_MergeCells(blob, length) {
	var merges = [];
	var cmcs = blob.read_shift(2);
	while (cmcs--) merges.push(parse_Ref8U(blob, length));
	return merges;
}
function write_MergeCells(merges) {
	var o$10 = new_buf(2 + merges.length * 8);
	o$10.write_shift(2, merges.length);
	for (var i$7 = 0; i$7 < merges.length; ++i$7) write_Ref8U(merges[i$7], o$10);
	return o$10;
}
function parse_Obj(blob, length, opts) {
	if (opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);
	var cmo = parse_FtCmo(blob, 22);
	var fts = parse_FtArray(blob, length - 22, cmo[1]);
	return {
		cmo,
		ft: fts
	};
}
function parse_BIFF5Obj(blob, length, opts) {
	blob.l += 4;
	var ot = blob.read_shift(2);
	var id = blob.read_shift(2);
	var grbit = blob.read_shift(2);
	blob.l += 2;
	blob.l += 2;
	blob.l += 2;
	blob.l += 2;
	blob.l += 2;
	blob.l += 2;
	blob.l += 2;
	blob.l += 2;
	blob.l += 2;
	blob.l += 6;
	length -= 36;
	var fts = [];
	fts.push((parse_BIFF5OT[ot] || parsenoop)(blob, length, opts));
	return {
		cmo: [
			id,
			ot,
			grbit
		],
		ft: fts
	};
}
function parse_TxO(blob, length, opts) {
	var s$5 = blob.l;
	var texts = "";
	try {
		blob.l += 4;
		var ot = (opts.lastobj || { cmo: [0, 0] }).cmo[1];
		var controlInfo;
		if ([
			0,
			5,
			7,
			11,
			12,
			14
		].indexOf(ot) == -1) blob.l += 6;
		else controlInfo = parse_ControlInfo(blob, 6, opts);
		var cchText = blob.read_shift(2);
		blob.read_shift(2);
		parseuint16(blob, 2);
		var len = blob.read_shift(2);
		blob.l += len;
		for (var i$7 = 1; i$7 < blob.lens.length - 1; ++i$7) {
			if (blob.l - s$5 != blob.lens[i$7]) throw new Error("TxO: bad continue record");
			var hdr = blob[blob.l];
			var t$6 = parse_XLUnicodeStringNoCch(blob, blob.lens[i$7 + 1] - blob.lens[i$7] - 1);
			texts += t$6;
			if (texts.length >= (hdr ? cchText : 2 * cchText)) break;
		}
		if (texts.length !== cchText && texts.length !== cchText * 2) {
			throw new Error("cchText: " + cchText + " != " + texts.length);
		}
		blob.l = s$5 + length;
		return { t: texts };
	} catch (e$10) {
		blob.l = s$5 + length;
		return { t: texts };
	}
}
function parse_HLink(blob, length) {
	var ref = parse_Ref8U(blob, 8);
	blob.l += 16;
	var hlink = parse_Hyperlink(blob, length - 24);
	return [ref, hlink];
}
function write_HLink(hl) {
	var O = new_buf(24);
	var ref = decode_cell(hl[0]);
	O.write_shift(2, ref.r);
	O.write_shift(2, ref.r);
	O.write_shift(2, ref.c);
	O.write_shift(2, ref.c);
	var clsid = "d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b".split(" ");
	for (var i$7 = 0; i$7 < 16; ++i$7) O.write_shift(1, parseInt(clsid[i$7], 16));
	return bconcat([O, write_Hyperlink(hl[1])]);
}
function parse_HLinkTooltip(blob, length) {
	blob.read_shift(2);
	var ref = parse_Ref8U(blob, 8);
	var wzTooltip = blob.read_shift((length - 10) / 2, "dbcs-cont");
	wzTooltip = wzTooltip.replace(chr0, "");
	return [ref, wzTooltip];
}
function write_HLinkTooltip(hl) {
	var TT = hl[1].Tooltip;
	var O = new_buf(10 + 2 * (TT.length + 1));
	O.write_shift(2, 2048);
	var ref = decode_cell(hl[0]);
	O.write_shift(2, ref.r);
	O.write_shift(2, ref.r);
	O.write_shift(2, ref.c);
	O.write_shift(2, ref.c);
	for (var i$7 = 0; i$7 < TT.length; ++i$7) O.write_shift(2, TT.charCodeAt(i$7));
	O.write_shift(2, 0);
	return O;
}
function parse_Country(blob) {
	var o$10 = [0, 0], d$5;
	d$5 = blob.read_shift(2);
	o$10[0] = CountryEnum[d$5] || d$5;
	d$5 = blob.read_shift(2);
	o$10[1] = CountryEnum[d$5] || d$5;
	return o$10;
}
function write_Country(o$10) {
	if (!o$10) o$10 = new_buf(4);
	o$10.write_shift(2, 1);
	o$10.write_shift(2, 1);
	return o$10;
}
function parse_ClrtClient(blob) {
	var ccv = blob.read_shift(2);
	var o$10 = [];
	while (ccv-- > 0) o$10.push(parse_LongRGB(blob, 8));
	return o$10;
}
function parse_Palette(blob) {
	var ccv = blob.read_shift(2);
	var o$10 = [];
	while (ccv-- > 0) o$10.push(parse_LongRGB(blob, 8));
	return o$10;
}
function parse_XFCRC(blob) {
	blob.l += 2;
	var o$10 = {
		cxfs: 0,
		crc: 0
	};
	o$10.cxfs = blob.read_shift(2);
	o$10.crc = blob.read_shift(4);
	return o$10;
}
function parse_ColInfo(blob, length, opts) {
	if (!opts.cellStyles) return parsenoop(blob, length);
	var w$2 = opts && opts.biff >= 12 ? 4 : 2;
	var colFirst = blob.read_shift(w$2);
	var colLast = blob.read_shift(w$2);
	var coldx = blob.read_shift(w$2);
	var ixfe = blob.read_shift(w$2);
	var flags = blob.read_shift(2);
	if (w$2 == 2) blob.l += 2;
	var o$10 = {
		s: colFirst,
		e: colLast,
		w: coldx,
		ixfe,
		flags
	};
	if (opts.biff >= 5 || !opts.biff) o$10.level = flags >> 8 & 7;
	return o$10;
}
function write_ColInfo(col, idx) {
	var o$10 = new_buf(12);
	o$10.write_shift(2, idx);
	o$10.write_shift(2, idx);
	o$10.write_shift(2, col.width * 256);
	o$10.write_shift(2, 0);
	var f$4 = 0;
	if (col.hidden) f$4 |= 1;
	o$10.write_shift(1, f$4);
	f$4 = col.level || 0;
	o$10.write_shift(1, f$4);
	o$10.write_shift(2, 0);
	return o$10;
}
function parse_Setup(blob, length) {
	var o$10 = {};
	if (length < 32) return o$10;
	blob.l += 16;
	o$10.header = parse_Xnum(blob, 8);
	o$10.footer = parse_Xnum(blob, 8);
	blob.l += 2;
	return o$10;
}
function parse_ShtProps(blob, length, opts) {
	var def = { area: false };
	if (opts.biff != 5) {
		blob.l += length;
		return def;
	}
	var d$5 = blob.read_shift(1);
	blob.l += 3;
	if (d$5 & 16) def.area = true;
	return def;
}
function write_RRTabId(n$9) {
	var out = new_buf(2 * n$9);
	for (var i$7 = 0; i$7 < n$9; ++i$7) out.write_shift(2, i$7 + 1);
	return out;
}
function parse_ImData(blob) {
	var cf = blob.read_shift(2);
	var env = blob.read_shift(2);
	var lcb = blob.read_shift(4);
	var o$10 = {
		fmt: cf,
		env,
		len: lcb,
		data: blob.slice(blob.l, blob.l + lcb)
	};
	blob.l += lcb;
	return o$10;
}
function write_BIFF2Cell(out, r$10, c$7, ixfe, ifmt) {
	if (!out) out = new_buf(7);
	out.write_shift(2, r$10);
	out.write_shift(2, c$7);
	out.write_shift(1, ixfe || 0);
	out.write_shift(1, ifmt || 0);
	out.write_shift(1, 0);
	return out;
}
function parse_BIFF2STR(blob, length, opts) {
	if (opts.biffguess && opts.biff == 5) opts.biff = 2;
	var cell = parse_XLSCell(blob, 7, opts);
	var str = parse_XLUnicodeString2(blob, length - 7, opts);
	cell.t = "str";
	cell.val = str;
	return cell;
}
function parse_BIFF2NUM(blob, length, opts) {
	var cell = parse_XLSCell(blob, 7, opts);
	var num = parse_Xnum(blob, 8);
	cell.t = "n";
	cell.val = num;
	return cell;
}
function write_BIFF2NUM(r$10, c$7, val$1, ixfe, ifmt) {
	var out = new_buf(15);
	write_BIFF2Cell(out, r$10, c$7, ixfe || 0, ifmt || 0);
	out.write_shift(8, val$1, "f");
	return out;
}
function parse_BIFF2INT(blob, length, opts) {
	var cell = parse_XLSCell(blob, 7, opts);
	var num = blob.read_shift(2);
	cell.t = "n";
	cell.val = num;
	return cell;
}
function write_BIFF2INT(r$10, c$7, val$1, ixfe, ifmt) {
	var out = new_buf(9);
	write_BIFF2Cell(out, r$10, c$7, ixfe || 0, ifmt || 0);
	out.write_shift(2, val$1);
	return out;
}
function parse_BIFF2STRING(blob) {
	var cch = blob.read_shift(1);
	if (cch === 0) {
		blob.l++;
		return "";
	}
	return blob.read_shift(cch, "sbcs-cont");
}
function parse_BIFF2BOOLERR(blob, length, opts) {
	var bestart = blob.l + 7;
	var cell = parse_XLSCell(blob, 6, opts);
	blob.l = bestart;
	var val$1 = parse_Bes(blob, 2);
	cell.val = val$1;
	cell.t = val$1 === true || val$1 === false ? "b" : "e";
	return cell;
}
function parse_BIFF2FONTXTRA(blob, length) {
	blob.l += 6;
	blob.l += 2;
	blob.l += 1;
	blob.l += 3;
	blob.l += 1;
	blob.l += length - 13;
}
function parse_RString(blob, length, opts) {
	var end = blob.l + length;
	var cell = parse_XLSCell(blob, 6, opts);
	var cch = blob.read_shift(2);
	var str = parse_XLUnicodeStringNoCch(blob, cch, opts);
	blob.l = end;
	cell.t = "str";
	cell.val = str;
	return cell;
}
function parse_BIFF4SheetInfo(blob) {
	var flags = blob.read_shift(4);
	var cch = blob.read_shift(1), name = blob.read_shift(cch, "sbcs");
	if (name.length === 0) name = "Sheet1";
	return {
		flags,
		name
	};
}
function read_wb_ID(d$5, opts) {
	var o$10 = opts || {}, OLD_WTF = !!o$10.WTF;
	o$10.WTF = true;
	try {
		var out = SYLK.to_workbook(d$5, o$10);
		o$10.WTF = OLD_WTF;
		return out;
	} catch (e$10) {
		o$10.WTF = OLD_WTF;
		if (e$10.message.indexOf("SYLK bad record ID") == -1 && OLD_WTF) throw e$10;
		return PRN.to_workbook(d$5, opts);
	}
}
function parse_rpr(rpr) {
	var font = {}, m$3 = rpr.match(tagregex), i$7 = 0;
	var pass = false;
	if (m$3) for (; i$7 != m$3.length; ++i$7) {
		var y$3 = parsexmltag(m$3[i$7]);
		switch (y$3[0].replace(/<\w*:/g, "<")) {
			case "<condense": break;
			case "<extend": break;
			case "<shadow": if (!y$3.val) break;
			case "<shadow>":
			case "<shadow/>":
				font.shadow = 1;
				break;
			case "</shadow>": break;
			case "<charset":
				if (y$3.val == "1") break;
				font.cp = CS2CP[parseInt(y$3.val, 10)];
				break;
			case "<outline": if (!y$3.val) break;
			case "<outline>":
			case "<outline/>":
				font.outline = 1;
				break;
			case "</outline>": break;
			case "<rFont":
				font.name = y$3.val;
				break;
			case "<sz":
				font.sz = y$3.val;
				break;
			case "<strike": if (!y$3.val) break;
			case "<strike>":
			case "<strike/>":
				font.strike = 1;
				break;
			case "</strike>": break;
			case "<u":
				if (!y$3.val) break;
				switch (y$3.val) {
					case "double":
						font.uval = "double";
						break;
					case "singleAccounting":
						font.uval = "single-accounting";
						break;
					case "doubleAccounting":
						font.uval = "double-accounting";
						break;
				}
			case "<u>":
			case "<u/>":
				font.u = 1;
				break;
			case "</u>": break;
			case "<b": if (y$3.val == "0") break;
			case "<b>":
			case "<b/>":
				font.b = 1;
				break;
			case "</b>": break;
			case "<i": if (y$3.val == "0") break;
			case "<i>":
			case "<i/>":
				font.i = 1;
				break;
			case "</i>": break;
			case "<color":
				if (y$3.rgb) font.color = y$3.rgb.slice(2, 8);
				break;
			case "<color>":
			case "<color/>":
			case "</color>": break;
			case "<family":
				font.family = y$3.val;
				break;
			case "<family>":
			case "<family/>":
			case "</family>": break;
			case "<vertAlign":
				font.valign = y$3.val;
				break;
			case "<vertAlign>":
			case "<vertAlign/>":
			case "</vertAlign>": break;
			case "<scheme": break;
			case "<scheme>":
			case "<scheme/>":
			case "</scheme>": break;
			case "<extLst":
			case "<extLst>":
			case "</extLst>": break;
			case "<ext":
				pass = true;
				break;
			case "</ext>":
				pass = false;
				break;
			default: if (y$3[0].charCodeAt(1) !== 47 && !pass) throw new Error("Unrecognized rich format " + y$3[0]);
		}
	}
	return font;
}
function parse_si(x$2, opts) {
	var html = opts ? opts.cellHTML : true;
	var z$2 = {};
	if (!x$2) return { t: "" };
	if (x$2.match(/^\s*<(?:\w+:)?t[^>]*>/)) {
		z$2.t = unescapexml(utf8read(x$2.slice(x$2.indexOf(">") + 1).split(/<\/(?:\w+:)?t>/)[0] || ""), true);
		z$2.r = utf8read(x$2);
		if (html) z$2.h = escapehtml(z$2.t);
	} else if (x$2.match(sirregex)) {
		z$2.r = utf8read(x$2);
		z$2.t = unescapexml(utf8read((str_remove_xml_ns_g(x$2, "rPh").match(sitregex) || []).join("").replace(tagregex, "")), true);
		if (html) z$2.h = rs_to_html(parse_rs(z$2.r));
	}
	return z$2;
}
function parse_sst_xml(data, opts) {
	var s$5 = [], ss = "";
	if (!data) return s$5;
	var sst = str_match_xml_ns(data, "sst");
	if (sst) {
		ss = sst[1].replace(sstr1, "").split(sstr2);
		for (var i$7 = 0; i$7 != ss.length; ++i$7) {
			var o$10 = parse_si(ss[i$7].trim(), opts);
			if (o$10 != null) s$5[s$5.length] = o$10;
		}
		sst = parsexmltag(sst[0].slice(0, sst[0].indexOf(">")));
		s$5.Count = sst.count;
		s$5.Unique = sst.uniqueCount;
	}
	return s$5;
}
function write_sst_xml(sst, opts) {
	if (!opts.bookSST) return "";
	var o$10 = [XML_HEADER];
	o$10[o$10.length] = writextag("sst", null, {
		xmlns: XMLNS_main[0],
		count: sst.Count,
		uniqueCount: sst.Unique
	});
	for (var i$7 = 0; i$7 != sst.length; ++i$7) {
		if (sst[i$7] == null) continue;
		var s$5 = sst[i$7];
		var sitag = "<si>";
		if (s$5.r) sitag += s$5.r;
		else {
			sitag += "<t";
			if (!s$5.t) s$5.t = "";
			if (typeof s$5.t !== "string") s$5.t = String(s$5.t);
			if (s$5.t.match(straywsregex)) sitag += " xml:space=\"preserve\"";
			sitag += ">" + escapexml(s$5.t) + "</t>";
		}
		sitag += "</si>";
		o$10[o$10.length] = sitag;
	}
	if (o$10.length > 2) {
		o$10[o$10.length] = "</sst>";
		o$10[1] = o$10[1].replace("/>", ">");
	}
	return o$10.join("");
}
function parse_BrtBeginSst(data) {
	return [data.read_shift(4), data.read_shift(4)];
}
function parse_sst_bin(data, opts) {
	var s$5 = [];
	var pass = false;
	recordhopper(data, function hopper_sst(val$1, R$1, RT) {
		switch (RT) {
			case 159:
				s$5.Count = val$1[0];
				s$5.Unique = val$1[1];
				break;
			case 19:
				s$5.push(val$1);
				break;
			case 160: return true;
			case 35:
				pass = true;
				break;
			case 36:
				pass = false;
				break;
			default:
				if (R$1.T) {}
				if (!pass || opts.WTF) throw new Error("Unexpected record 0x" + RT.toString(16));
		}
	});
	return s$5;
}
function write_BrtBeginSst(sst, o$10) {
	if (!o$10) o$10 = new_buf(8);
	o$10.write_shift(4, sst.Count);
	o$10.write_shift(4, sst.Unique);
	return o$10;
}
function write_sst_bin(sst) {
	var ba = buf_array();
	write_record(ba, 159, write_BrtBeginSst(sst));
	for (var i$7 = 0; i$7 < sst.length; ++i$7) write_record(ba, 19, write_BrtSSTItem(sst[i$7]));
	write_record(ba, 160);
	return ba.end();
}
function _JS2ANSI(str) {
	if (typeof $cptable !== "undefined") return $cptable.utils.encode(current_ansi, str);
	var o$10 = [], oo = str.split("");
	for (var i$7 = 0; i$7 < oo.length; ++i$7) o$10[i$7] = oo[i$7].charCodeAt(0);
	return o$10;
}
function parse_CRYPTOVersion(blob, length) {
	var o$10 = {};
	o$10.Major = blob.read_shift(2);
	o$10.Minor = blob.read_shift(2);
	if (length >= 4) blob.l += length - 4;
	return o$10;
}
function parse_DataSpaceVersionInfo(blob) {
	var o$10 = {};
	o$10.id = blob.read_shift(0, "lpp4");
	o$10.R = parse_CRYPTOVersion(blob, 4);
	o$10.U = parse_CRYPTOVersion(blob, 4);
	o$10.W = parse_CRYPTOVersion(blob, 4);
	return o$10;
}
function parse_DataSpaceMapEntry(blob) {
	var len = blob.read_shift(4);
	var end = blob.l + len - 4;
	var o$10 = {};
	var cnt = blob.read_shift(4);
	var comps = [];
	while (cnt-- > 0) comps.push({
		t: blob.read_shift(4),
		v: blob.read_shift(0, "lpp4")
	});
	o$10.name = blob.read_shift(0, "lpp4");
	o$10.comps = comps;
	if (blob.l != end) throw new Error("Bad DataSpaceMapEntry: " + blob.l + " != " + end);
	return o$10;
}
function parse_DataSpaceMap(blob) {
	var o$10 = [];
	blob.l += 4;
	var cnt = blob.read_shift(4);
	while (cnt-- > 0) o$10.push(parse_DataSpaceMapEntry(blob));
	return o$10;
}
function parse_DataSpaceDefinition(blob) {
	var o$10 = [];
	blob.l += 4;
	var cnt = blob.read_shift(4);
	while (cnt-- > 0) o$10.push(blob.read_shift(0, "lpp4"));
	return o$10;
}
function parse_TransformInfoHeader(blob) {
	var o$10 = {};
	blob.read_shift(4);
	blob.l += 4;
	o$10.id = blob.read_shift(0, "lpp4");
	o$10.name = blob.read_shift(0, "lpp4");
	o$10.R = parse_CRYPTOVersion(blob, 4);
	o$10.U = parse_CRYPTOVersion(blob, 4);
	o$10.W = parse_CRYPTOVersion(blob, 4);
	return o$10;
}
function parse_Primary(blob) {
	var hdr = parse_TransformInfoHeader(blob);
	hdr.ename = blob.read_shift(0, "8lpp4");
	hdr.blksz = blob.read_shift(4);
	hdr.cmode = blob.read_shift(4);
	if (blob.read_shift(4) != 4) throw new Error("Bad !Primary record");
	return hdr;
}
function parse_EncryptionHeader(blob, length) {
	var tgt = blob.l + length;
	var o$10 = {};
	o$10.Flags = blob.read_shift(4) & 63;
	blob.l += 4;
	o$10.AlgID = blob.read_shift(4);
	var valid = false;
	switch (o$10.AlgID) {
		case 26126:
		case 26127:
		case 26128:
			valid = o$10.Flags == 36;
			break;
		case 26625:
			valid = o$10.Flags == 4;
			break;
		case 0:
			valid = o$10.Flags == 16 || o$10.Flags == 4 || o$10.Flags == 36;
			break;
		default: throw "Unrecognized encryption algorithm: " + o$10.AlgID;
	}
	if (!valid) throw new Error("Encryption Flags/AlgID mismatch");
	o$10.AlgIDHash = blob.read_shift(4);
	o$10.KeySize = blob.read_shift(4);
	o$10.ProviderType = blob.read_shift(4);
	blob.l += 8;
	o$10.CSPName = blob.read_shift(tgt - blob.l >> 1, "utf16le");
	blob.l = tgt;
	return o$10;
}
function parse_EncryptionVerifier(blob, length) {
	var o$10 = {}, tgt = blob.l + length;
	blob.l += 4;
	o$10.Salt = blob.slice(blob.l, blob.l + 16);
	blob.l += 16;
	o$10.Verifier = blob.slice(blob.l, blob.l + 16);
	blob.l += 16;
	blob.read_shift(4);
	o$10.VerifierHash = blob.slice(blob.l, tgt);
	blob.l = tgt;
	return o$10;
}
function parse_EncryptionInfo(blob) {
	var vers = parse_CRYPTOVersion(blob);
	switch (vers.Minor) {
		case 2: return [vers.Minor, parse_EncInfoStd(blob, vers)];
		case 3: return [vers.Minor, parse_EncInfoExt(blob, vers)];
		case 4: return [vers.Minor, parse_EncInfoAgl(blob, vers)];
	}
	throw new Error("ECMA-376 Encrypted file unrecognized Version: " + vers.Minor);
}
function parse_EncInfoStd(blob) {
	var flags = blob.read_shift(4);
	if ((flags & 63) != 36) throw new Error("EncryptionInfo mismatch");
	var sz = blob.read_shift(4);
	var hdr = parse_EncryptionHeader(blob, sz);
	var verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);
	return {
		t: "Std",
		h: hdr,
		v: verifier
	};
}
function parse_EncInfoExt() {
	throw new Error("File is password-protected: ECMA-376 Extensible");
}
function parse_EncInfoAgl(blob) {
	var KeyData = [
		"saltSize",
		"blockSize",
		"keyBits",
		"hashSize",
		"cipherAlgorithm",
		"cipherChaining",
		"hashAlgorithm",
		"saltValue"
	];
	blob.l += 4;
	var xml$2 = blob.read_shift(blob.length - blob.l, "utf8");
	var o$10 = {};
	xml$2.replace(tagregex, function xml_agile(x$2) {
		var y$3 = parsexmltag(x$2);
		switch (strip_ns(y$3[0])) {
			case "<?xml": break;
			case "<encryption":
			case "</encryption>": break;
			case "<keyData":
				KeyData.forEach(function(k$2) {
					o$10[k$2] = y$3[k$2];
				});
				break;
			case "<dataIntegrity":
				o$10.encryptedHmacKey = y$3.encryptedHmacKey;
				o$10.encryptedHmacValue = y$3.encryptedHmacValue;
				break;
			case "<keyEncryptors>":
			case "<keyEncryptors":
				o$10.encs = [];
				break;
			case "</keyEncryptors>": break;
			case "<keyEncryptor":
				o$10.uri = y$3.uri;
				break;
			case "</keyEncryptor>": break;
			case "<encryptedKey":
				o$10.encs.push(y$3);
				break;
			default: throw y$3[0];
		}
	});
	return o$10;
}
function parse_RC4CryptoHeader(blob, length) {
	var o$10 = {};
	var vers = o$10.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);
	length -= 4;
	if (vers.Minor != 2) throw new Error("unrecognized minor version code: " + vers.Minor);
	if (vers.Major > 4 || vers.Major < 2) throw new Error("unrecognized major version code: " + vers.Major);
	o$10.Flags = blob.read_shift(4);
	length -= 4;
	var sz = blob.read_shift(4);
	length -= 4;
	o$10.EncryptionHeader = parse_EncryptionHeader(blob, sz);
	length -= sz;
	o$10.EncryptionVerifier = parse_EncryptionVerifier(blob, length);
	return o$10;
}
function parse_RC4Header(blob) {
	var o$10 = {};
	var vers = o$10.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);
	if (vers.Major != 1 || vers.Minor != 1) throw "unrecognized version code " + vers.Major + " : " + vers.Minor;
	o$10.Salt = blob.read_shift(16);
	o$10.EncryptedVerifier = blob.read_shift(16);
	o$10.EncryptedVerifierHash = blob.read_shift(16);
	return o$10;
}
function crypto_CreatePasswordVerifier_Method1(Password) {
	var Verifier = 0, PasswordArray;
	var PasswordDecoded = _JS2ANSI(Password);
	var len = PasswordDecoded.length + 1, i$7, PasswordByte;
	var Intermediate1, Intermediate2, Intermediate3;
	PasswordArray = new_raw_buf(len);
	PasswordArray[0] = PasswordDecoded.length;
	for (i$7 = 1; i$7 != len; ++i$7) PasswordArray[i$7] = PasswordDecoded[i$7 - 1];
	for (i$7 = len - 1; i$7 >= 0; --i$7) {
		PasswordByte = PasswordArray[i$7];
		Intermediate1 = (Verifier & 16384) === 0 ? 0 : 1;
		Intermediate2 = Verifier << 1 & 32767;
		Intermediate3 = Intermediate1 | Intermediate2;
		Verifier = Intermediate3 ^ PasswordByte;
	}
	return Verifier ^ 52811;
}
function parse_XORObfuscation(blob, length, opts, out) {
	var o$10 = {
		key: parseuint16(blob),
		verificationBytes: parseuint16(blob)
	};
	if (opts.password) o$10.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);
	out.valid = o$10.verificationBytes === o$10.verifier;
	if (out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);
	return o$10;
}
function parse_FilePassHeader(blob, length, oo) {
	var o$10 = oo || {};
	o$10.Info = blob.read_shift(2);
	blob.l -= 2;
	if (o$10.Info === 1) o$10.Data = parse_RC4Header(blob, length);
	else o$10.Data = parse_RC4CryptoHeader(blob, length);
	return o$10;
}
function parse_FilePass(blob, length, opts) {
	var o$10 = { Type: opts.biff >= 8 ? blob.read_shift(2) : 0 };
	if (o$10.Type) parse_FilePassHeader(blob, length - 2, o$10);
	else parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o$10);
	return o$10;
}
function rtf_to_sheet(d$5, opts) {
	switch (opts.type) {
		case "base64": return rtf_to_sheet_str(Base64_decode(d$5), opts);
		case "binary": return rtf_to_sheet_str(d$5, opts);
		case "buffer": return rtf_to_sheet_str(has_buf && Buffer.isBuffer(d$5) ? d$5.toString("binary") : a2s(d$5), opts);
		case "array": return rtf_to_sheet_str(cc2str(d$5), opts);
	}
	throw new Error("Unrecognized type " + opts.type);
}
function rtf_to_sheet_str(str, opts) {
	var o$10 = opts || {};
	var ws = {};
	var dense = o$10.dense;
	if (dense) ws["!data"] = [];
	var rows = str_match_ng(str, "\\trowd", "\\row");
	if (!rows) throw new Error("RTF missing table");
	var range = {
		s: {
			c: 0,
			r: 0
		},
		e: {
			c: 0,
			r: rows.length - 1
		}
	};
	var row = [];
	rows.forEach(function(rowtf, R$1) {
		if (dense) row = ws["!data"][R$1] = [];
		var rtfre = /\\[\w\-]+\b/g;
		var last_index = 0;
		var res;
		var C$2 = -1;
		var payload = [];
		while ((res = rtfre.exec(rowtf)) != null) {
			var data = rowtf.slice(last_index, rtfre.lastIndex - res[0].length);
			if (data.charCodeAt(0) == 32) data = data.slice(1);
			if (data.length) payload.push(data);
			switch (res[0]) {
				case "\\cell":
					++C$2;
					if (payload.length) {
						var cell = {
							v: payload.join(""),
							t: "s"
						};
						if (cell.v == "TRUE" || cell.v == "FALSE") {
							cell.v = cell.v == "TRUE";
							cell.t = "b";
						} else if (!isNaN(fuzzynum(cell.v))) {
							cell.t = "n";
							if (o$10.cellText !== false) cell.w = cell.v;
							cell.v = fuzzynum(cell.v);
						} else if (RBErr[cell.v] != null) {
							cell.t = "e";
							cell.w = cell.v;
							cell.v = RBErr[cell.v];
						}
						if (dense) row[C$2] = cell;
						else ws[encode_cell({
							r: R$1,
							c: C$2
						})] = cell;
					}
					payload = [];
					break;
				case "\\par":
					payload.push("\n");
					break;
			}
			last_index = rtfre.lastIndex;
		}
		if (C$2 > range.e.c) range.e.c = C$2;
	});
	ws["!ref"] = encode_range(range);
	return ws;
}
function rtf_to_workbook(d$5, opts) {
	var wb = sheet_to_workbook(rtf_to_sheet(d$5, opts), opts);
	wb.bookType = "rtf";
	return wb;
}
function sheet_to_rtf(ws, opts) {
	var o$10 = ["{\\rtf1\\ansi"];
	if (!ws["!ref"]) return o$10[0] + "}";
	var r$10 = safe_decode_range(ws["!ref"]), cell;
	var dense = ws["!data"] != null, row = [];
	for (var R$1 = r$10.s.r; R$1 <= r$10.e.r; ++R$1) {
		o$10.push("\\trowd\\trautofit1");
		for (var C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) o$10.push("\\cellx" + (C$2 + 1));
		o$10.push("\\pard\\intbl");
		if (dense) row = ws["!data"][R$1] || [];
		for (C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
			var coord = encode_cell({
				r: R$1,
				c: C$2
			});
			cell = dense ? row[C$2] : ws[coord];
			if (!cell || cell.v == null && (!cell.f || cell.F)) {
				o$10.push(" \\cell");
				continue;
			}
			o$10.push(" " + (cell.w || (format_cell(cell), cell.w) || "").replace(/[\r\n]/g, "\\par "));
			o$10.push("\\cell");
		}
		o$10.push("\\pard\\intbl\\row");
	}
	return o$10.join("") + "}";
}
function hex2RGB(h$5) {
	var o$10 = h$5.slice(h$5[0] === "#" ? 1 : 0).slice(0, 6);
	return [
		parseInt(o$10.slice(0, 2), 16),
		parseInt(o$10.slice(2, 4), 16),
		parseInt(o$10.slice(4, 6), 16)
	];
}
function rgb2Hex(rgb) {
	for (var i$7 = 0, o$10 = 1; i$7 != 3; ++i$7) o$10 = o$10 * 256 + (rgb[i$7] > 255 ? 255 : rgb[i$7] < 0 ? 0 : rgb[i$7]);
	return o$10.toString(16).toUpperCase().slice(1);
}
function rgb2HSL(rgb) {
	var R$1 = rgb[0] / 255, G$1 = rgb[1] / 255, B$2 = rgb[2] / 255;
	var M$3 = Math.max(R$1, G$1, B$2), m$3 = Math.min(R$1, G$1, B$2), C$2 = M$3 - m$3;
	if (C$2 === 0) return [
		0,
		0,
		R$1
	];
	var H6 = 0, S$4 = 0, L2 = M$3 + m$3;
	S$4 = C$2 / (L2 > 1 ? 2 - L2 : L2);
	switch (M$3) {
		case R$1:
			H6 = ((G$1 - B$2) / C$2 + 6) % 6;
			break;
		case G$1:
			H6 = (B$2 - R$1) / C$2 + 2;
			break;
		case B$2:
			H6 = (R$1 - G$1) / C$2 + 4;
			break;
	}
	return [
		H6 / 6,
		S$4,
		L2 / 2
	];
}
function hsl2RGB(hsl) {
	var H$1 = hsl[0], S$4 = hsl[1], L$2 = hsl[2];
	var C$2 = S$4 * 2 * (L$2 < .5 ? L$2 : 1 - L$2), m$3 = L$2 - C$2 / 2;
	var rgb = [
		m$3,
		m$3,
		m$3
	], h6 = 6 * H$1;
	var X$2;
	if (S$4 !== 0) switch (h6 | 0) {
		case 0:
		case 6:
			X$2 = C$2 * h6;
			rgb[0] += C$2;
			rgb[1] += X$2;
			break;
		case 1:
			X$2 = C$2 * (2 - h6);
			rgb[0] += X$2;
			rgb[1] += C$2;
			break;
		case 2:
			X$2 = C$2 * (h6 - 2);
			rgb[1] += C$2;
			rgb[2] += X$2;
			break;
		case 3:
			X$2 = C$2 * (4 - h6);
			rgb[1] += X$2;
			rgb[2] += C$2;
			break;
		case 4:
			X$2 = C$2 * (h6 - 4);
			rgb[2] += C$2;
			rgb[0] += X$2;
			break;
		case 5:
			X$2 = C$2 * (6 - h6);
			rgb[2] += X$2;
			rgb[0] += C$2;
			break;
	}
	for (var i$7 = 0; i$7 != 3; ++i$7) rgb[i$7] = Math.round(rgb[i$7] * 255);
	return rgb;
}
function rgb_tint(hex, tint) {
	if (tint === 0) return hex;
	var hsl = rgb2HSL(hex2RGB(hex));
	if (tint < 0) hsl[2] = hsl[2] * (1 + tint);
	else hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);
	return rgb2Hex(hsl2RGB(hsl));
}
function width2px(width) {
	return Math.floor((width + Math.round(128 / MDW) / 256) * MDW);
}
function px2char(px) {
	return Math.floor((px - 5) / MDW * 100 + .5) / 100;
}
function char2width(chr) {
	return Math.round((chr * MDW + 5) / MDW * 256) / 256;
}
function cycle_width(collw) {
	return char2width(px2char(width2px(collw)));
}
function find_mdw_colw(collw) {
	var delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;
	if (delta > .005) {
		for (MDW = MIN_MDW; MDW < MAX_MDW; ++MDW) if (Math.abs(collw - cycle_width(collw)) <= delta) {
			delta = Math.abs(collw - cycle_width(collw));
			_MDW = MDW;
		}
	}
	MDW = _MDW;
}
function process_col(coll) {
	if (coll.width) {
		coll.wpx = width2px(coll.width);
		coll.wch = px2char(coll.wpx);
		coll.MDW = MDW;
	} else if (coll.wpx) {
		coll.wch = px2char(coll.wpx);
		coll.width = char2width(coll.wch);
		coll.MDW = MDW;
	} else if (typeof coll.wch == "number") {
		coll.width = char2width(coll.wch);
		coll.wpx = width2px(coll.width);
		coll.MDW = MDW;
	}
	if (coll.customWidth) delete coll.customWidth;
}
function px2pt(px) {
	return px * 96 / PPI;
}
function pt2px(pt) {
	return pt * PPI / 96;
}
function parse_borders(t$6, styles$1, themes, opts) {
	styles$1.Borders = [];
	var border = {};
	var pass = false;
	(t$6.match(tagregex) || []).forEach(function(x$2) {
		var y$3 = parsexmltag(x$2);
		switch (strip_ns(y$3[0])) {
			case "<borders":
			case "<borders>":
			case "</borders>": break;
			case "<border":
			case "<border>":
			case "<border/>":
				border = {};
				if (y$3.diagonalUp) border.diagonalUp = parsexmlbool(y$3.diagonalUp);
				if (y$3.diagonalDown) border.diagonalDown = parsexmlbool(y$3.diagonalDown);
				styles$1.Borders.push(border);
				break;
			case "</border>": break;
			case "<left/>": break;
			case "<left":
			case "<left>": break;
			case "</left>": break;
			case "<right/>": break;
			case "<right":
			case "<right>": break;
			case "</right>": break;
			case "<top/>": break;
			case "<top":
			case "<top>": break;
			case "</top>": break;
			case "<bottom/>": break;
			case "<bottom":
			case "<bottom>": break;
			case "</bottom>": break;
			case "<diagonal":
			case "<diagonal>":
			case "<diagonal/>": break;
			case "</diagonal>": break;
			case "<horizontal":
			case "<horizontal>":
			case "<horizontal/>": break;
			case "</horizontal>": break;
			case "<vertical":
			case "<vertical>":
			case "<vertical/>": break;
			case "</vertical>": break;
			case "<start":
			case "<start>":
			case "<start/>": break;
			case "</start>": break;
			case "<end":
			case "<end>":
			case "<end/>": break;
			case "</end>": break;
			case "<color":
			case "<color>": break;
			case "<color/>":
			case "</color>": break;
			case "<extLst":
			case "<extLst>":
			case "</extLst>": break;
			case "<ext":
				pass = true;
				break;
			case "</ext>":
				pass = false;
				break;
			default: if (opts && opts.WTF) {
				if (!pass) throw new Error("unrecognized " + y$3[0] + " in borders");
			}
		}
	});
}
function parse_fills(t$6, styles$1, themes, opts) {
	styles$1.Fills = [];
	var fill$1 = {};
	var pass = false;
	(t$6.match(tagregex) || []).forEach(function(x$2) {
		var y$3 = parsexmltag(x$2);
		switch (strip_ns(y$3[0])) {
			case "<fills":
			case "<fills>":
			case "</fills>": break;
			case "<fill>":
			case "<fill":
			case "<fill/>":
				fill$1 = {};
				styles$1.Fills.push(fill$1);
				break;
			case "</fill>": break;
			case "<gradientFill>": break;
			case "<gradientFill":
			case "</gradientFill>":
				styles$1.Fills.push(fill$1);
				fill$1 = {};
				break;
			case "<patternFill":
			case "<patternFill>":
				if (y$3.patternType) fill$1.patternType = y$3.patternType;
				break;
			case "<patternFill/>":
			case "</patternFill>": break;
			case "<bgColor":
				if (!fill$1.bgColor) fill$1.bgColor = {};
				if (y$3.indexed) fill$1.bgColor.indexed = parseInt(y$3.indexed, 10);
				if (y$3.theme) fill$1.bgColor.theme = parseInt(y$3.theme, 10);
				if (y$3.tint) fill$1.bgColor.tint = parseFloat(y$3.tint);
				if (y$3.rgb) fill$1.bgColor.rgb = y$3.rgb.slice(-6);
				break;
			case "<bgColor/>":
			case "</bgColor>": break;
			case "<fgColor":
				if (!fill$1.fgColor) fill$1.fgColor = {};
				if (y$3.theme) fill$1.fgColor.theme = parseInt(y$3.theme, 10);
				if (y$3.tint) fill$1.fgColor.tint = parseFloat(y$3.tint);
				if (y$3.rgb != null) fill$1.fgColor.rgb = y$3.rgb.slice(-6);
				break;
			case "<fgColor/>":
			case "</fgColor>": break;
			case "<stop":
			case "<stop/>": break;
			case "</stop>": break;
			case "<color":
			case "<color/>": break;
			case "</color>": break;
			case "<extLst":
			case "<extLst>":
			case "</extLst>": break;
			case "<ext":
				pass = true;
				break;
			case "</ext>":
				pass = false;
				break;
			default: if (opts && opts.WTF) {
				if (!pass) throw new Error("unrecognized " + y$3[0] + " in fills");
			}
		}
	});
}
function parse_fonts(t$6, styles$1, themes, opts) {
	styles$1.Fonts = [];
	var font = {};
	var pass = false;
	(t$6.match(tagregex) || []).forEach(function(x$2) {
		var y$3 = parsexmltag(x$2);
		switch (strip_ns(y$3[0])) {
			case "<fonts":
			case "<fonts>":
			case "</fonts>": break;
			case "<font":
			case "<font>": break;
			case "</font>":
			case "<font/>":
				styles$1.Fonts.push(font);
				font = {};
				break;
			case "<name":
				if (y$3.val) font.name = utf8read(y$3.val);
				break;
			case "<name/>":
			case "</name>": break;
			case "<b":
				font.bold = y$3.val ? parsexmlbool(y$3.val) : 1;
				break;
			case "<b/>":
				font.bold = 1;
				break;
			case "</b>":
			case "</b": break;
			case "<i":
				font.italic = y$3.val ? parsexmlbool(y$3.val) : 1;
				break;
			case "<i/>":
				font.italic = 1;
				break;
			case "</i>":
			case "</i": break;
			case "<u":
				switch (y$3.val) {
					case "none":
						font.underline = 0;
						break;
					case "single":
						font.underline = 1;
						break;
					case "double":
						font.underline = 2;
						break;
					case "singleAccounting":
						font.underline = 33;
						break;
					case "doubleAccounting":
						font.underline = 34;
						break;
				}
				break;
			case "<u/>":
				font.underline = 1;
				break;
			case "</u>":
			case "</u": break;
			case "<strike":
				font.strike = y$3.val ? parsexmlbool(y$3.val) : 1;
				break;
			case "<strike/>":
				font.strike = 1;
				break;
			case "</strike>":
			case "</strike": break;
			case "<outline":
				font.outline = y$3.val ? parsexmlbool(y$3.val) : 1;
				break;
			case "<outline/>":
				font.outline = 1;
				break;
			case "</outline>":
			case "</outline": break;
			case "<shadow":
				font.shadow = y$3.val ? parsexmlbool(y$3.val) : 1;
				break;
			case "<shadow/>":
				font.shadow = 1;
				break;
			case "</shadow>":
			case "</shadow": break;
			case "<condense":
				font.condense = y$3.val ? parsexmlbool(y$3.val) : 1;
				break;
			case "<condense/>":
				font.condense = 1;
				break;
			case "</condense>":
			case "</condense": break;
			case "<extend":
				font.extend = y$3.val ? parsexmlbool(y$3.val) : 1;
				break;
			case "<extend/>":
				font.extend = 1;
				break;
			case "</extend>":
			case "</extend": break;
			case "<sz":
				if (y$3.val) font.sz = +y$3.val;
				break;
			case "<sz/>":
			case "</sz>":
			case "</sz": break;
			case "<vertAlign":
				if (y$3.val) font.vertAlign = y$3.val;
				break;
			case "<vertAlign/>":
			case "</vertAlign>":
			case "</vertAlign": break;
			case "<family":
				if (y$3.val) font.family = parseInt(y$3.val, 10);
				break;
			case "<family/>":
			case "</family>":
			case "</family": break;
			case "<scheme":
				if (y$3.val) font.scheme = y$3.val;
				break;
			case "<scheme/>":
			case "</scheme>":
			case "</scheme": break;
			case "<charset":
				if (y$3.val == "1") break;
				y$3.codepage = CS2CP[parseInt(y$3.val, 10)];
				break;
			case "<charset/>":
			case "</charset>":
			case "</charset": break;
			case "<color":
				if (!font.color) font.color = {};
				if (y$3.auto) font.color.auto = parsexmlbool(y$3.auto);
				if (y$3.rgb) font.color.rgb = y$3.rgb.slice(-6);
				else if (y$3.indexed) {
					font.color.index = parseInt(y$3.indexed, 10);
					var icv = XLSIcv[font.color.index];
					if (font.color.index == 81) icv = XLSIcv[1];
					if (!icv) icv = XLSIcv[1];
					font.color.rgb = icv[0].toString(16) + icv[1].toString(16) + icv[2].toString(16);
				} else if (y$3.theme) {
					font.color.theme = parseInt(y$3.theme, 10);
					if (y$3.tint) font.color.tint = parseFloat(y$3.tint);
					if (y$3.theme && themes.themeElements && themes.themeElements.clrScheme) {
						font.color.rgb = rgb_tint(themes.themeElements.clrScheme[font.color.theme].rgb, font.color.tint || 0);
					}
				}
				break;
			case "<color/>":
			case "</color>":
			case "</color": break;
			case "<AlternateContent":
				pass = true;
				break;
			case "</AlternateContent>":
			case "</AlternateContent":
				pass = false;
				break;
			case "<extLst":
			case "<extLst>":
			case "</extLst>": break;
			case "<ext":
				pass = true;
				break;
			case "</ext>":
				pass = false;
				break;
			default: if (opts && opts.WTF) {
				if (!pass) throw new Error("unrecognized " + y$3[0] + " in fonts");
			}
		}
	});
}
function parse_numFmts(t$6, styles$1, opts) {
	styles$1.NumberFmt = [];
	var k$2 = keys(table_fmt);
	for (var i$7 = 0; i$7 < k$2.length; ++i$7) styles$1.NumberFmt[k$2[i$7]] = table_fmt[k$2[i$7]];
	var m$3 = t$6.match(tagregex);
	if (!m$3) return;
	for (i$7 = 0; i$7 < m$3.length; ++i$7) {
		var y$3 = parsexmltag(m$3[i$7]);
		switch (strip_ns(y$3[0])) {
			case "<numFmts":
			case "</numFmts>":
			case "<numFmts/>":
			case "<numFmts>": break;
			case "<numFmt":
				{
					var f$4 = unescapexml(utf8read(y$3.formatCode)), j$2 = parseInt(y$3.numFmtId, 10);
					styles$1.NumberFmt[j$2] = f$4;
					if (j$2 > 0) {
						if (j$2 > 392) {
							for (j$2 = 392; j$2 > 60; --j$2) if (styles$1.NumberFmt[j$2] == null) break;
							styles$1.NumberFmt[j$2] = f$4;
						}
						SSF__load(f$4, j$2);
					}
				}
				break;
			case "</numFmt>": break;
			default: if (opts.WTF) throw new Error("unrecognized " + y$3[0] + " in numFmts");
		}
	}
}
function write_numFmts(NF) {
	var o$10 = ["<numFmts>"];
	[
		[5, 8],
		[23, 26],
		[41, 44],
		[50, 392]
	].forEach(function(r$10) {
		for (var i$7 = r$10[0]; i$7 <= r$10[1]; ++i$7) if (NF[i$7] != null) o$10[o$10.length] = writextag("numFmt", null, {
			numFmtId: i$7,
			formatCode: escapexml(NF[i$7])
		});
	});
	if (o$10.length === 1) return "";
	o$10[o$10.length] = "</numFmts>";
	o$10[0] = writextag("numFmts", null, { count: o$10.length - 2 }).replace("/>", ">");
	return o$10.join("");
}
function parse_cellXfs(t$6, styles$1, opts) {
	styles$1.CellXf = [];
	var xf;
	var pass = false;
	(t$6.match(tagregex) || []).forEach(function(x$2) {
		var y$3 = parsexmltag(x$2), i$7 = 0;
		switch (strip_ns(y$3[0])) {
			case "<cellXfs":
			case "<cellXfs>":
			case "<cellXfs/>":
			case "</cellXfs>": break;
			case "<xf":
			case "<xf/>":
			case "<xf>":
				xf = y$3;
				delete xf[0];
				for (i$7 = 0; i$7 < cellXF_uint.length; ++i$7) if (xf[cellXF_uint[i$7]]) xf[cellXF_uint[i$7]] = parseInt(xf[cellXF_uint[i$7]], 10);
				for (i$7 = 0; i$7 < cellXF_bool.length; ++i$7) if (xf[cellXF_bool[i$7]]) xf[cellXF_bool[i$7]] = parsexmlbool(xf[cellXF_bool[i$7]]);
				if (styles$1.NumberFmt && xf.numFmtId > 392) {
					for (i$7 = 392; i$7 > 60; --i$7) if (styles$1.NumberFmt[xf.numFmtId] == styles$1.NumberFmt[i$7]) {
						xf.numFmtId = i$7;
						break;
					}
				}
				styles$1.CellXf.push(xf);
				break;
			case "</xf>": break;
			case "<alignment":
			case "<alignment/>":
			case "<alignment>":
				var alignment = {};
				if (y$3.vertical) alignment.vertical = y$3.vertical;
				if (y$3.horizontal) alignment.horizontal = y$3.horizontal;
				if (y$3.textRotation != null) alignment.textRotation = y$3.textRotation;
				if (y$3.indent) alignment.indent = y$3.indent;
				if (y$3.wrapText) alignment.wrapText = parsexmlbool(y$3.wrapText);
				xf.alignment = alignment;
				break;
			case "</alignment>": break;
			case "<protection":
			case "<protection>": break;
			case "</protection>":
			case "<protection/>": break;
			case "<AlternateContent":
			case "<AlternateContent>":
				pass = true;
				break;
			case "</AlternateContent>":
				pass = false;
				break;
			case "<extLst":
			case "<extLst>":
			case "</extLst>": break;
			case "<ext":
				pass = true;
				break;
			case "</ext>":
				pass = false;
				break;
			default: if (opts && opts.WTF) {
				if (!pass) throw new Error("unrecognized " + y$3[0] + " in cellXfs");
			}
		}
	});
}
function write_cellXfs(cellXfs) {
	var o$10 = [];
	o$10[o$10.length] = writextag("cellXfs", null);
	cellXfs.forEach(function(c$7) {
		o$10[o$10.length] = writextag("xf", null, c$7);
	});
	o$10[o$10.length] = "</cellXfs>";
	if (o$10.length === 2) return "";
	o$10[0] = writextag("cellXfs", null, { count: o$10.length - 2 }).replace("/>", ">");
	return o$10.join("");
}
function write_sty_xml(wb, opts) {
	var o$10 = [XML_HEADER, writextag("styleSheet", null, {
		"xmlns": XMLNS_main[0],
		"xmlns:vt": XMLNS.vt
	})], w$2;
	if (wb.SSF && (w$2 = write_numFmts(wb.SSF)) != null) o$10[o$10.length] = w$2;
	o$10[o$10.length] = "<fonts count=\"1\"><font><sz val=\"12\"/><color theme=\"1\"/><name val=\"Calibri\"/><family val=\"2\"/><scheme val=\"minor\"/></font></fonts>";
	o$10[o$10.length] = "<fills count=\"2\"><fill><patternFill patternType=\"none\"/></fill><fill><patternFill patternType=\"gray125\"/></fill></fills>";
	o$10[o$10.length] = "<borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders>";
	o$10[o$10.length] = "<cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>";
	if (w$2 = write_cellXfs(opts.cellXfs)) o$10[o$10.length] = w$2;
	o$10[o$10.length] = "<cellStyles count=\"1\"><cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\"/></cellStyles>";
	o$10[o$10.length] = "<dxfs count=\"0\"/>";
	o$10[o$10.length] = "<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\"/>";
	if (o$10.length > 2) {
		o$10[o$10.length] = "</styleSheet>";
		o$10[1] = o$10[1].replace("/>", ">");
	}
	return o$10.join("");
}
function parse_BrtFmt(data, length) {
	var numFmtId = data.read_shift(2);
	var stFmtCode = parse_XLWideString(data, length - 2);
	return [numFmtId, stFmtCode];
}
function write_BrtFmt(i$7, f$4, o$10) {
	if (!o$10) o$10 = new_buf(6 + 4 * f$4.length);
	o$10.write_shift(2, i$7);
	write_XLWideString(f$4, o$10);
	var out = o$10.length > o$10.l ? o$10.slice(0, o$10.l) : o$10;
	if (o$10.l == null) o$10.l = o$10.length;
	return out;
}
function parse_BrtFont(data, length, opts) {
	var out = {};
	out.sz = data.read_shift(2) / 20;
	var grbit = parse_FontFlags(data, 2, opts);
	if (grbit.fItalic) out.italic = 1;
	if (grbit.fCondense) out.condense = 1;
	if (grbit.fExtend) out.extend = 1;
	if (grbit.fShadow) out.shadow = 1;
	if (grbit.fOutline) out.outline = 1;
	if (grbit.fStrikeout) out.strike = 1;
	var bls = data.read_shift(2);
	if (bls === 700) out.bold = 1;
	switch (data.read_shift(2)) {
		case 1:
			out.vertAlign = "superscript";
			break;
		case 2:
			out.vertAlign = "subscript";
			break;
	}
	var underline = data.read_shift(1);
	if (underline != 0) out.underline = underline;
	var family = data.read_shift(1);
	if (family > 0) out.family = family;
	var bCharSet = data.read_shift(1);
	if (bCharSet > 0) out.charset = bCharSet;
	data.l++;
	out.color = parse_BrtColor(data, 8);
	switch (data.read_shift(1)) {
		case 1:
			out.scheme = "major";
			break;
		case 2:
			out.scheme = "minor";
			break;
	}
	out.name = parse_XLWideString(data, length - 21);
	return out;
}
function write_BrtFont(font, o$10) {
	if (!o$10) o$10 = new_buf(25 + 4 * 32);
	o$10.write_shift(2, font.sz * 20);
	write_FontFlags(font, o$10);
	o$10.write_shift(2, font.bold ? 700 : 400);
	var sss = 0;
	if (font.vertAlign == "superscript") sss = 1;
	else if (font.vertAlign == "subscript") sss = 2;
	o$10.write_shift(2, sss);
	o$10.write_shift(1, font.underline || 0);
	o$10.write_shift(1, font.family || 0);
	o$10.write_shift(1, font.charset || 0);
	o$10.write_shift(1, 0);
	write_BrtColor(font.color, o$10);
	var scheme$1 = 0;
	if (font.scheme == "major") scheme$1 = 1;
	if (font.scheme == "minor") scheme$1 = 2;
	o$10.write_shift(1, scheme$1);
	write_XLWideString(font.name, o$10);
	return o$10.length > o$10.l ? o$10.slice(0, o$10.l) : o$10;
}
function write_BrtFill(fill$1, o$10) {
	if (!o$10) o$10 = new_buf(4 * 3 + 8 * 7 + 16 * 1);
	if (!rev_XLSBFillPTNames) rev_XLSBFillPTNames = evert(XLSBFillPTNames);
	var fls = rev_XLSBFillPTNames[fill$1.patternType];
	if (fls == null) fls = 40;
	o$10.write_shift(4, fls);
	var j$2 = 0;
	if (fls != 40) {
		write_BrtColor({ auto: 1 }, o$10);
		write_BrtColor({ auto: 1 }, o$10);
		for (; j$2 < 12; ++j$2) o$10.write_shift(4, 0);
	} else {
		for (; j$2 < 4; ++j$2) o$10.write_shift(4, 0);
		for (; j$2 < 12; ++j$2) o$10.write_shift(4, 0);
	}
	return o$10.length > o$10.l ? o$10.slice(0, o$10.l) : o$10;
}
function parse_BrtXF(data, length) {
	var tgt = data.l + length;
	var ixfeParent = data.read_shift(2);
	var ifmt = data.read_shift(2);
	data.l = tgt;
	return {
		ixfe: ixfeParent,
		numFmtId: ifmt
	};
}
function write_BrtXF(data, ixfeP, o$10) {
	if (!o$10) o$10 = new_buf(16);
	o$10.write_shift(2, ixfeP || 0);
	o$10.write_shift(2, data.numFmtId || 0);
	o$10.write_shift(2, 0);
	o$10.write_shift(2, 0);
	o$10.write_shift(2, 0);
	o$10.write_shift(1, 0);
	o$10.write_shift(1, 0);
	var flow = 0;
	o$10.write_shift(1, flow);
	o$10.write_shift(1, 0);
	o$10.write_shift(1, 0);
	o$10.write_shift(1, 0);
	return o$10;
}
function write_Blxf(data, o$10) {
	if (!o$10) o$10 = new_buf(10);
	o$10.write_shift(1, 0);
	o$10.write_shift(1, 0);
	o$10.write_shift(4, 0);
	o$10.write_shift(4, 0);
	return o$10;
}
function write_BrtBorder(border, o$10) {
	if (!o$10) o$10 = new_buf(51);
	o$10.write_shift(1, 0);
	write_Blxf(null, o$10);
	write_Blxf(null, o$10);
	write_Blxf(null, o$10);
	write_Blxf(null, o$10);
	write_Blxf(null, o$10);
	return o$10.length > o$10.l ? o$10.slice(0, o$10.l) : o$10;
}
function write_BrtStyle(style, o$10) {
	if (!o$10) o$10 = new_buf(12 + 4 * 10);
	o$10.write_shift(4, style.xfId);
	o$10.write_shift(2, 1);
	o$10.write_shift(1, +style.builtinId);
	o$10.write_shift(1, 0);
	write_XLNullableWideString(style.name || "", o$10);
	return o$10.length > o$10.l ? o$10.slice(0, o$10.l) : o$10;
}
function write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {
	var o$10 = new_buf(4 + 256 * 2 * 4);
	o$10.write_shift(4, cnt);
	write_XLNullableWideString(defTableStyle, o$10);
	write_XLNullableWideString(defPivotStyle, o$10);
	return o$10.length > o$10.l ? o$10.slice(0, o$10.l) : o$10;
}
function parse_sty_bin(data, themes, opts) {
	var styles$1 = {};
	styles$1.NumberFmt = [];
	for (var y$3 in table_fmt) styles$1.NumberFmt[y$3] = table_fmt[y$3];
	styles$1.CellXf = [];
	styles$1.Fonts = [];
	var state$1 = [];
	var pass = false;
	recordhopper(data, function hopper_sty(val$1, R$1, RT) {
		switch (RT) {
			case 44:
				styles$1.NumberFmt[val$1[0]] = val$1[1];
				SSF__load(val$1[1], val$1[0]);
				break;
			case 43:
				styles$1.Fonts.push(val$1);
				if (val$1.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {
					val$1.color.rgb = rgb_tint(themes.themeElements.clrScheme[val$1.color.theme].rgb, val$1.color.tint || 0);
				}
				break;
			case 1025: break;
			case 45: break;
			case 46: break;
			case 47:
				if (state$1[state$1.length - 1] == 617) {
					styles$1.CellXf.push(val$1);
				}
				break;
			case 48:
			case 507:
			case 572:
			case 475: break;
			case 1171:
			case 2102:
			case 1130:
			case 512:
			case 2095:
			case 3072: break;
			case 35:
				pass = true;
				break;
			case 36:
				pass = false;
				break;
			case 37:
				state$1.push(RT);
				pass = true;
				break;
			case 38:
				state$1.pop();
				pass = false;
				break;
			default: if (R$1.T > 0) state$1.push(RT);
			else if (R$1.T < 0) state$1.pop();
			else if (!pass || opts.WTF && state$1[state$1.length - 1] != 37) throw new Error("Unexpected record 0x" + RT.toString(16));
		}
	});
	return styles$1;
}
function write_FMTS_bin(ba, NF) {
	if (!NF) return;
	var cnt = 0;
	[
		[5, 8],
		[23, 26],
		[41, 44],
		[50, 392]
	].forEach(function(r$10) {
		for (var i$7 = r$10[0]; i$7 <= r$10[1]; ++i$7) if (NF[i$7] != null) ++cnt;
	});
	if (cnt == 0) return;
	write_record(ba, 615, write_UInt32LE(cnt));
	[
		[5, 8],
		[23, 26],
		[41, 44],
		[50, 392]
	].forEach(function(r$10) {
		for (var i$7 = r$10[0]; i$7 <= r$10[1]; ++i$7) if (NF[i$7] != null) write_record(ba, 44, write_BrtFmt(i$7, NF[i$7]));
	});
	write_record(ba, 616);
}
function write_FONTS_bin(ba) {
	var cnt = 1;
	if (cnt == 0) return;
	write_record(ba, 611, write_UInt32LE(cnt));
	write_record(ba, 43, write_BrtFont({
		sz: 12,
		color: { theme: 1 },
		name: "Calibri",
		family: 2,
		scheme: "minor"
	}));
	write_record(ba, 612);
}
function write_FILLS_bin(ba) {
	var cnt = 2;
	if (cnt == 0) return;
	write_record(ba, 603, write_UInt32LE(cnt));
	write_record(ba, 45, write_BrtFill({ patternType: "none" }));
	write_record(ba, 45, write_BrtFill({ patternType: "gray125" }));
	write_record(ba, 604);
}
function write_BORDERS_bin(ba) {
	var cnt = 1;
	if (cnt == 0) return;
	write_record(ba, 613, write_UInt32LE(cnt));
	write_record(ba, 46, write_BrtBorder({}));
	write_record(ba, 614);
}
function write_CELLSTYLEXFS_bin(ba) {
	var cnt = 1;
	write_record(ba, 626, write_UInt32LE(cnt));
	write_record(ba, 47, write_BrtXF({
		numFmtId: 0,
		fontId: 0,
		fillId: 0,
		borderId: 0
	}, 65535));
	write_record(ba, 627);
}
function write_CELLXFS_bin(ba, data) {
	write_record(ba, 617, write_UInt32LE(data.length));
	data.forEach(function(c$7) {
		write_record(ba, 47, write_BrtXF(c$7, 0));
	});
	write_record(ba, 618);
}
function write_STYLES_bin(ba) {
	var cnt = 1;
	write_record(ba, 619, write_UInt32LE(cnt));
	write_record(ba, 48, write_BrtStyle({
		xfId: 0,
		builtinId: 0,
		name: "Normal"
	}));
	write_record(ba, 620);
}
function write_DXFS_bin(ba) {
	var cnt = 0;
	write_record(ba, 505, write_UInt32LE(cnt));
	write_record(ba, 506);
}
function write_TABLESTYLES_bin(ba) {
	var cnt = 0;
	write_record(ba, 508, write_BrtBeginTableStyles(cnt, "TableStyleMedium9", "PivotStyleMedium4"));
	write_record(ba, 509);
}
function write_COLORPALETTE_bin() {
	return;
}
function write_sty_bin(wb, opts) {
	var ba = buf_array();
	write_record(ba, 278);
	write_FMTS_bin(ba, wb.SSF);
	write_FONTS_bin(ba, wb);
	write_FILLS_bin(ba, wb);
	write_BORDERS_bin(ba, wb);
	write_CELLSTYLEXFS_bin(ba, wb);
	write_CELLXFS_bin(ba, opts.cellXfs);
	write_STYLES_bin(ba, wb);
	write_DXFS_bin(ba, wb);
	write_TABLESTYLES_bin(ba, wb);
	write_COLORPALETTE_bin(ba, wb);
	write_record(ba, 279);
	return ba.end();
}
function parse_clrScheme(t$6, themes, opts) {
	themes.themeElements.clrScheme = [];
	var color = {};
	(t$6[0].match(tagregex) || []).forEach(function(x$2) {
		var y$3 = parsexmltag(x$2);
		switch (y$3[0]) {
			case "<a:clrScheme":
			case "</a:clrScheme>": break;
			case "<a:srgbClr":
				color.rgb = y$3.val;
				break;
			case "</a:srgbClr>": break;
			case "<a:sysClr":
				color.rgb = y$3.lastClr;
				break;
			case "</a:sysClr>": break;
			case "</a:dk1>":
			case "</a:lt1>":
			case "<a:dk1>":
			case "<a:lt1>":
			case "<a:dk2>":
			case "</a:dk2>":
			case "<a:lt2>":
			case "</a:lt2>":
			case "<a:accent1>":
			case "</a:accent1>":
			case "<a:accent2>":
			case "</a:accent2>":
			case "<a:accent3>":
			case "</a:accent3>":
			case "<a:accent4>":
			case "</a:accent4>":
			case "<a:accent5>":
			case "</a:accent5>":
			case "<a:accent6>":
			case "</a:accent6>":
			case "<a:hlink>":
			case "</a:hlink>":
			case "<a:folHlink>":
			case "</a:folHlink>":
				if (y$3[0].charAt(1) === "/") {
					themes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y$3[0])] = color;
					color = {};
				} else {
					color.name = y$3[0].slice(3, y$3[0].length - 1);
				}
				break;
			default: if (opts && opts.WTF) throw new Error("Unrecognized " + y$3[0] + " in clrScheme");
		}
	});
}
function parse_fontScheme() {}
function parse_fmtScheme() {}
function parse_themeElements(data, themes, opts) {
	themes.themeElements = {};
	var t$6;
	if (!(t$6 = str_match_xml(data, "a:clrScheme"))) throw new Error("clrScheme not found in themeElements");
	parse_clrScheme(t$6, themes, opts);
	if (!(t$6 = str_match_xml(data, "a:fontScheme"))) throw new Error("fontScheme not found in themeElements");
	parse_fontScheme(t$6, themes, opts);
	if (!(t$6 = str_match_xml(data, "a:fmtScheme"))) throw new Error("fmtScheme not found in themeElements");
	parse_fmtScheme(t$6, themes, opts);
}
function parse_theme_xml(data, opts) {
	if (!data || data.length === 0) data = write_theme();
	var t$6;
	var themes = {};
	if (!(t$6 = str_match_xml(data, "a:themeElements"))) throw new Error("themeElements not found in theme");
	parse_themeElements(t$6[0], themes, opts);
	themes.raw = data;
	return themes;
}
function write_theme(Themes, opts) {
	if (opts && opts.themeXLSX) return opts.themeXLSX;
	if (Themes && typeof Themes.raw == "string") return Themes.raw;
	var o$10 = [XML_HEADER];
	o$10[o$10.length] = "<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">";
	o$10[o$10.length] = "<a:themeElements>";
	o$10[o$10.length] = "<a:clrScheme name=\"Office\">";
	o$10[o$10.length] = "<a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1>";
	o$10[o$10.length] = "<a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1>";
	o$10[o$10.length] = "<a:dk2><a:srgbClr val=\"1F497D\"/></a:dk2>";
	o$10[o$10.length] = "<a:lt2><a:srgbClr val=\"EEECE1\"/></a:lt2>";
	o$10[o$10.length] = "<a:accent1><a:srgbClr val=\"4F81BD\"/></a:accent1>";
	o$10[o$10.length] = "<a:accent2><a:srgbClr val=\"C0504D\"/></a:accent2>";
	o$10[o$10.length] = "<a:accent3><a:srgbClr val=\"9BBB59\"/></a:accent3>";
	o$10[o$10.length] = "<a:accent4><a:srgbClr val=\"8064A2\"/></a:accent4>";
	o$10[o$10.length] = "<a:accent5><a:srgbClr val=\"4BACC6\"/></a:accent5>";
	o$10[o$10.length] = "<a:accent6><a:srgbClr val=\"F79646\"/></a:accent6>";
	o$10[o$10.length] = "<a:hlink><a:srgbClr val=\"0000FF\"/></a:hlink>";
	o$10[o$10.length] = "<a:folHlink><a:srgbClr val=\"800080\"/></a:folHlink>";
	o$10[o$10.length] = "</a:clrScheme>";
	o$10[o$10.length] = "<a:fontScheme name=\"Office\">";
	o$10[o$10.length] = "<a:majorFont>";
	o$10[o$10.length] = "<a:latin typeface=\"Cambria\"/>";
	o$10[o$10.length] = "<a:ea typeface=\"\"/>";
	o$10[o$10.length] = "<a:cs typeface=\"\"/>";
	o$10[o$10.length] = "<a:font script=\"Jpan\" typeface=\"ＭＳ Ｐゴシック\"/>";
	o$10[o$10.length] = "<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>";
	o$10[o$10.length] = "<a:font script=\"Hans\" typeface=\"宋体\"/>";
	o$10[o$10.length] = "<a:font script=\"Hant\" typeface=\"新細明體\"/>";
	o$10[o$10.length] = "<a:font script=\"Arab\" typeface=\"Times New Roman\"/>";
	o$10[o$10.length] = "<a:font script=\"Hebr\" typeface=\"Times New Roman\"/>";
	o$10[o$10.length] = "<a:font script=\"Thai\" typeface=\"Tahoma\"/>";
	o$10[o$10.length] = "<a:font script=\"Ethi\" typeface=\"Nyala\"/>";
	o$10[o$10.length] = "<a:font script=\"Beng\" typeface=\"Vrinda\"/>";
	o$10[o$10.length] = "<a:font script=\"Gujr\" typeface=\"Shruti\"/>";
	o$10[o$10.length] = "<a:font script=\"Khmr\" typeface=\"MoolBoran\"/>";
	o$10[o$10.length] = "<a:font script=\"Knda\" typeface=\"Tunga\"/>";
	o$10[o$10.length] = "<a:font script=\"Guru\" typeface=\"Raavi\"/>";
	o$10[o$10.length] = "<a:font script=\"Cans\" typeface=\"Euphemia\"/>";
	o$10[o$10.length] = "<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>";
	o$10[o$10.length] = "<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>";
	o$10[o$10.length] = "<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>";
	o$10[o$10.length] = "<a:font script=\"Thaa\" typeface=\"MV Boli\"/>";
	o$10[o$10.length] = "<a:font script=\"Deva\" typeface=\"Mangal\"/>";
	o$10[o$10.length] = "<a:font script=\"Telu\" typeface=\"Gautami\"/>";
	o$10[o$10.length] = "<a:font script=\"Taml\" typeface=\"Latha\"/>";
	o$10[o$10.length] = "<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>";
	o$10[o$10.length] = "<a:font script=\"Orya\" typeface=\"Kalinga\"/>";
	o$10[o$10.length] = "<a:font script=\"Mlym\" typeface=\"Kartika\"/>";
	o$10[o$10.length] = "<a:font script=\"Laoo\" typeface=\"DokChampa\"/>";
	o$10[o$10.length] = "<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>";
	o$10[o$10.length] = "<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>";
	o$10[o$10.length] = "<a:font script=\"Viet\" typeface=\"Times New Roman\"/>";
	o$10[o$10.length] = "<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>";
	o$10[o$10.length] = "<a:font script=\"Geor\" typeface=\"Sylfaen\"/>";
	o$10[o$10.length] = "</a:majorFont>";
	o$10[o$10.length] = "<a:minorFont>";
	o$10[o$10.length] = "<a:latin typeface=\"Calibri\"/>";
	o$10[o$10.length] = "<a:ea typeface=\"\"/>";
	o$10[o$10.length] = "<a:cs typeface=\"\"/>";
	o$10[o$10.length] = "<a:font script=\"Jpan\" typeface=\"ＭＳ Ｐゴシック\"/>";
	o$10[o$10.length] = "<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>";
	o$10[o$10.length] = "<a:font script=\"Hans\" typeface=\"宋体\"/>";
	o$10[o$10.length] = "<a:font script=\"Hant\" typeface=\"新細明體\"/>";
	o$10[o$10.length] = "<a:font script=\"Arab\" typeface=\"Arial\"/>";
	o$10[o$10.length] = "<a:font script=\"Hebr\" typeface=\"Arial\"/>";
	o$10[o$10.length] = "<a:font script=\"Thai\" typeface=\"Tahoma\"/>";
	o$10[o$10.length] = "<a:font script=\"Ethi\" typeface=\"Nyala\"/>";
	o$10[o$10.length] = "<a:font script=\"Beng\" typeface=\"Vrinda\"/>";
	o$10[o$10.length] = "<a:font script=\"Gujr\" typeface=\"Shruti\"/>";
	o$10[o$10.length] = "<a:font script=\"Khmr\" typeface=\"DaunPenh\"/>";
	o$10[o$10.length] = "<a:font script=\"Knda\" typeface=\"Tunga\"/>";
	o$10[o$10.length] = "<a:font script=\"Guru\" typeface=\"Raavi\"/>";
	o$10[o$10.length] = "<a:font script=\"Cans\" typeface=\"Euphemia\"/>";
	o$10[o$10.length] = "<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>";
	o$10[o$10.length] = "<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>";
	o$10[o$10.length] = "<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>";
	o$10[o$10.length] = "<a:font script=\"Thaa\" typeface=\"MV Boli\"/>";
	o$10[o$10.length] = "<a:font script=\"Deva\" typeface=\"Mangal\"/>";
	o$10[o$10.length] = "<a:font script=\"Telu\" typeface=\"Gautami\"/>";
	o$10[o$10.length] = "<a:font script=\"Taml\" typeface=\"Latha\"/>";
	o$10[o$10.length] = "<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>";
	o$10[o$10.length] = "<a:font script=\"Orya\" typeface=\"Kalinga\"/>";
	o$10[o$10.length] = "<a:font script=\"Mlym\" typeface=\"Kartika\"/>";
	o$10[o$10.length] = "<a:font script=\"Laoo\" typeface=\"DokChampa\"/>";
	o$10[o$10.length] = "<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>";
	o$10[o$10.length] = "<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>";
	o$10[o$10.length] = "<a:font script=\"Viet\" typeface=\"Arial\"/>";
	o$10[o$10.length] = "<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>";
	o$10[o$10.length] = "<a:font script=\"Geor\" typeface=\"Sylfaen\"/>";
	o$10[o$10.length] = "</a:minorFont>";
	o$10[o$10.length] = "</a:fontScheme>";
	o$10[o$10.length] = "<a:fmtScheme name=\"Office\">";
	o$10[o$10.length] = "<a:fillStyleLst>";
	o$10[o$10.length] = "<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>";
	o$10[o$10.length] = "<a:gradFill rotWithShape=\"1\">";
	o$10[o$10.length] = "<a:gsLst>";
	o$10[o$10.length] = "<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>";
	o$10[o$10.length] = "<a:gs pos=\"35000\"><a:schemeClr val=\"phClr\"><a:tint val=\"37000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>";
	o$10[o$10.length] = "<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"15000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>";
	o$10[o$10.length] = "</a:gsLst>";
	o$10[o$10.length] = "<a:lin ang=\"16200000\" scaled=\"1\"/>";
	o$10[o$10.length] = "</a:gradFill>";
	o$10[o$10.length] = "<a:gradFill rotWithShape=\"1\">";
	o$10[o$10.length] = "<a:gsLst>";
	o$10[o$10.length] = "<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"100000\"/><a:shade val=\"100000\"/><a:satMod val=\"130000\"/></a:schemeClr></a:gs>";
	o$10[o$10.length] = "<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:shade val=\"100000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>";
	o$10[o$10.length] = "</a:gsLst>";
	o$10[o$10.length] = "<a:lin ang=\"16200000\" scaled=\"0\"/>";
	o$10[o$10.length] = "</a:gradFill>";
	o$10[o$10.length] = "</a:fillStyleLst>";
	o$10[o$10.length] = "<a:lnStyleLst>";
	o$10[o$10.length] = "<a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"><a:shade val=\"95000\"/><a:satMod val=\"105000\"/></a:schemeClr></a:solidFill><a:prstDash val=\"solid\"/></a:ln>";
	o$10[o$10.length] = "<a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>";
	o$10[o$10.length] = "<a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>";
	o$10[o$10.length] = "</a:lnStyleLst>";
	o$10[o$10.length] = "<a:effectStyleLst>";
	o$10[o$10.length] = "<a:effectStyle>";
	o$10[o$10.length] = "<a:effectLst>";
	o$10[o$10.length] = "<a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"38000\"/></a:srgbClr></a:outerShdw>";
	o$10[o$10.length] = "</a:effectLst>";
	o$10[o$10.length] = "</a:effectStyle>";
	o$10[o$10.length] = "<a:effectStyle>";
	o$10[o$10.length] = "<a:effectLst>";
	o$10[o$10.length] = "<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>";
	o$10[o$10.length] = "</a:effectLst>";
	o$10[o$10.length] = "</a:effectStyle>";
	o$10[o$10.length] = "<a:effectStyle>";
	o$10[o$10.length] = "<a:effectLst>";
	o$10[o$10.length] = "<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>";
	o$10[o$10.length] = "</a:effectLst>";
	o$10[o$10.length] = "<a:scene3d><a:camera prst=\"orthographicFront\"><a:rot lat=\"0\" lon=\"0\" rev=\"0\"/></a:camera><a:lightRig rig=\"threePt\" dir=\"t\"><a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/></a:lightRig></a:scene3d>";
	o$10[o$10.length] = "<a:sp3d><a:bevelT w=\"63500\" h=\"25400\"/></a:sp3d>";
	o$10[o$10.length] = "</a:effectStyle>";
	o$10[o$10.length] = "</a:effectStyleLst>";
	o$10[o$10.length] = "<a:bgFillStyleLst>";
	o$10[o$10.length] = "<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>";
	o$10[o$10.length] = "<a:gradFill rotWithShape=\"1\">";
	o$10[o$10.length] = "<a:gsLst>";
	o$10[o$10.length] = "<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"40000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>";
	o$10[o$10.length] = "<a:gs pos=\"40000\"><a:schemeClr val=\"phClr\"><a:tint val=\"45000\"/><a:shade val=\"99000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>";
	o$10[o$10.length] = "<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"20000\"/><a:satMod val=\"255000\"/></a:schemeClr></a:gs>";
	o$10[o$10.length] = "</a:gsLst>";
	o$10[o$10.length] = "<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/></a:path>";
	o$10[o$10.length] = "</a:gradFill>";
	o$10[o$10.length] = "<a:gradFill rotWithShape=\"1\">";
	o$10[o$10.length] = "<a:gsLst>";
	o$10[o$10.length] = "<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"80000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>";
	o$10[o$10.length] = "<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"30000\"/><a:satMod val=\"200000\"/></a:schemeClr></a:gs>";
	o$10[o$10.length] = "</a:gsLst>";
	o$10[o$10.length] = "<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/></a:path>";
	o$10[o$10.length] = "</a:gradFill>";
	o$10[o$10.length] = "</a:bgFillStyleLst>";
	o$10[o$10.length] = "</a:fmtScheme>";
	o$10[o$10.length] = "</a:themeElements>";
	o$10[o$10.length] = "<a:objectDefaults>";
	o$10[o$10.length] = "<a:spDef>";
	o$10[o$10.length] = "<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"3\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"lt1\"/></a:fontRef></a:style>";
	o$10[o$10.length] = "</a:spDef>";
	o$10[o$10.length] = "<a:lnDef>";
	o$10[o$10.length] = "<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"0\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"tx1\"/></a:fontRef></a:style>";
	o$10[o$10.length] = "</a:lnDef>";
	o$10[o$10.length] = "</a:objectDefaults>";
	o$10[o$10.length] = "<a:extraClrSchemeLst/>";
	o$10[o$10.length] = "</a:theme>";
	return o$10.join("");
}
function parse_Theme(blob, length, opts) {
	var end = blob.l + length;
	var dwThemeVersion = blob.read_shift(4);
	if (dwThemeVersion === 124226) return;
	if (!opts.cellStyles) {
		blob.l = end;
		return;
	}
	var data = blob.slice(blob.l);
	blob.l = end;
	var zip;
	try {
		zip = zip_read(data, { type: "array" });
	} catch (e$10) {
		return;
	}
	var themeXML = getzipstr(zip, "theme/theme/theme1.xml", true);
	if (!themeXML) return;
	return parse_theme_xml(themeXML, opts);
}
function parse_ColorTheme(blob) {
	return blob.read_shift(4);
}
function parse_FullColorExt(blob) {
	var o$10 = {};
	o$10.xclrType = blob.read_shift(2);
	o$10.nTintShade = blob.read_shift(2);
	switch (o$10.xclrType) {
		case 0:
			blob.l += 4;
			break;
		case 1:
			o$10.xclrValue = parse_IcvXF(blob, 4);
			break;
		case 2:
			o$10.xclrValue = parse_LongRGBA(blob, 4);
			break;
		case 3:
			o$10.xclrValue = parse_ColorTheme(blob, 4);
			break;
		case 4:
			blob.l += 4;
			break;
	}
	blob.l += 8;
	return o$10;
}
function parse_IcvXF(blob, length) {
	return parsenoop(blob, length);
}
function parse_XFExtGradient(blob, length) {
	return parsenoop(blob, length);
}
function parse_ExtProp(blob) {
	var extType = blob.read_shift(2);
	var cb = blob.read_shift(2) - 4;
	var o$10 = [extType];
	switch (extType) {
		case 4:
		case 5:
		case 7:
		case 8:
		case 9:
		case 10:
		case 11:
		case 13:
			o$10[1] = parse_FullColorExt(blob, cb);
			break;
		case 6:
			o$10[1] = parse_XFExtGradient(blob, cb);
			break;
		case 14:
		case 15:
			o$10[1] = blob.read_shift(cb === 1 ? 1 : 2);
			break;
		default: throw new Error("Unrecognized ExtProp type: " + extType + " " + cb);
	}
	return o$10;
}
function parse_XFExt(blob, length) {
	var end = blob.l + length;
	blob.l += 2;
	var ixfe = blob.read_shift(2);
	blob.l += 2;
	var cexts = blob.read_shift(2);
	var ext = [];
	while (cexts-- > 0) ext.push(parse_ExtProp(blob, end - blob.l));
	return {
		ixfe,
		ext
	};
}
function update_xfext(xf, xfext) {
	xfext.forEach(function(xfe) {
		switch (xfe[0]) {
			case 4: break;
			case 5: break;
			case 6: break;
			case 7: break;
			case 8: break;
			case 9: break;
			case 10: break;
			case 11: break;
			case 13: break;
			case 14: break;
			case 15: break;
		}
	});
}
function parse_BrtMdtinfo(data, length) {
	return {
		flags: data.read_shift(4),
		version: data.read_shift(4),
		name: parse_XLWideString(data, length - 8)
	};
}
function write_BrtMdtinfo(data) {
	var o$10 = new_buf(12 + 2 * data.name.length);
	o$10.write_shift(4, data.flags);
	o$10.write_shift(4, data.version);
	write_XLWideString(data.name, o$10);
	return o$10.slice(0, o$10.l);
}
function parse_BrtMdb(data) {
	var out = [];
	var cnt = data.read_shift(4);
	while (cnt-- > 0) out.push([data.read_shift(4), data.read_shift(4)]);
	return out;
}
function write_BrtMdb(mdb) {
	var o$10 = new_buf(4 + 8 * mdb.length);
	o$10.write_shift(4, mdb.length);
	for (var i$7 = 0; i$7 < mdb.length; ++i$7) {
		o$10.write_shift(4, mdb[i$7][0]);
		o$10.write_shift(4, mdb[i$7][1]);
	}
	return o$10;
}
function write_BrtBeginEsfmd(cnt, name) {
	var o$10 = new_buf(8 + 2 * name.length);
	o$10.write_shift(4, cnt);
	write_XLWideString(name, o$10);
	return o$10.slice(0, o$10.l);
}
function parse_BrtBeginEsmdb(data) {
	data.l += 4;
	return data.read_shift(4) != 0;
}
function write_BrtBeginEsmdb(cnt, cm) {
	var o$10 = new_buf(8);
	o$10.write_shift(4, cnt);
	o$10.write_shift(4, cm ? 1 : 0);
	return o$10;
}
function parse_xlmeta_bin(data, name, _opts) {
	var out = {
		Types: [],
		Cell: [],
		Value: []
	};
	var opts = _opts || {};
	var state$1 = [];
	var pass = false;
	var metatype = 2;
	recordhopper(data, function(val$1, R$1, RT) {
		switch (RT) {
			case 335:
				out.Types.push({ name: val$1.name });
				break;
			case 51:
				val$1.forEach(function(r$10) {
					if (metatype == 1) out.Cell.push({
						type: out.Types[r$10[0] - 1].name,
						index: r$10[1]
					});
					else if (metatype == 0) out.Value.push({
						type: out.Types[r$10[0] - 1].name,
						index: r$10[1]
					});
				});
				break;
			case 337:
				metatype = val$1 ? 1 : 0;
				break;
			case 338:
				metatype = 2;
				break;
			case 35:
				state$1.push(RT);
				pass = true;
				break;
			case 36:
				state$1.pop();
				pass = false;
				break;
			default: if (R$1.T) {} else if (!pass || opts.WTF && state$1[state$1.length - 1] != 35) throw new Error("Unexpected record 0x" + RT.toString(16));
		}
	});
	return out;
}
function write_xlmeta_bin() {
	var ba = buf_array();
	write_record(ba, 332);
	write_record(ba, 334, write_UInt32LE(1));
	write_record(ba, 335, write_BrtMdtinfo({
		name: "XLDAPR",
		version: 12e4,
		flags: 3496657072
	}));
	write_record(ba, 336);
	write_record(ba, 339, write_BrtBeginEsfmd(1, "XLDAPR"));
	write_record(ba, 52);
	write_record(ba, 35, write_UInt32LE(514));
	write_record(ba, 4096, write_UInt32LE(0));
	write_record(ba, 4097, writeuint16(1));
	write_record(ba, 36);
	write_record(ba, 53);
	write_record(ba, 340);
	write_record(ba, 337, write_BrtBeginEsmdb(1, true));
	write_record(ba, 51, write_BrtMdb([[1, 0]]));
	write_record(ba, 338);
	write_record(ba, 333);
	return ba.end();
}
function parse_xlmeta_xml(data, name, opts) {
	var out = {
		Types: [],
		Cell: [],
		Value: []
	};
	if (!data) return out;
	var pass = false;
	var metatype = 2;
	var lastmeta;
	data.replace(tagregex, function(x$2) {
		var y$3 = parsexmltag(x$2);
		switch (strip_ns(y$3[0])) {
			case "<?xml": break;
			case "<metadata":
			case "</metadata>": break;
			case "<metadataTypes":
			case "</metadataTypes>": break;
			case "<metadataType":
				out.Types.push({ name: y$3.name });
				break;
			case "</metadataType>": break;
			case "<futureMetadata":
				for (var j$2 = 0; j$2 < out.Types.length; ++j$2) if (out.Types[j$2].name == y$3.name) lastmeta = out.Types[j$2];
				break;
			case "</futureMetadata>": break;
			case "<bk>": break;
			case "</bk>": break;
			case "<rc":
				if (metatype == 1) out.Cell.push({
					type: out.Types[y$3.t - 1].name,
					index: +y$3.v
				});
				else if (metatype == 0) out.Value.push({
					type: out.Types[y$3.t - 1].name,
					index: +y$3.v
				});
				break;
			case "</rc>": break;
			case "<cellMetadata":
				metatype = 1;
				break;
			case "</cellMetadata>":
				metatype = 2;
				break;
			case "<valueMetadata":
				metatype = 0;
				break;
			case "</valueMetadata>":
				metatype = 2;
				break;
			case "<extLst":
			case "<extLst>":
			case "</extLst>":
			case "<extLst/>": break;
			case "<ext":
				pass = true;
				break;
			case "</ext>":
				pass = false;
				break;
			case "<rvb":
				if (!lastmeta) break;
				if (!lastmeta.offsets) lastmeta.offsets = [];
				lastmeta.offsets.push(+y$3.i);
				break;
			default: if (!pass && (opts == null ? void 0 : opts.WTF)) throw new Error("unrecognized " + y$3[0] + " in metadata");
		}
		return x$2;
	});
	return out;
}
function write_xlmeta_xml() {
	var o$10 = [XML_HEADER];
	o$10.push("<metadata xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:xlrd=\"http://schemas.microsoft.com/office/spreadsheetml/2017/richdata\" xmlns:xda=\"http://schemas.microsoft.com/office/spreadsheetml/2017/dynamicarray\">\n  <metadataTypes count=\"1\">\n    <metadataType name=\"XLDAPR\" minSupportedVersion=\"120000\" copy=\"1\" pasteAll=\"1\" pasteValues=\"1\" merge=\"1\" splitFirst=\"1\" rowColShift=\"1\" clearFormats=\"1\" clearComments=\"1\" assign=\"1\" coerce=\"1\" cellMeta=\"1\"/>\n  </metadataTypes>\n  <futureMetadata name=\"XLDAPR\" count=\"1\">\n    <bk>\n      <extLst>\n        <ext uri=\"{bdbb8cdc-fa1e-496e-a857-3c3f30c029c3}\">\n          <xda:dynamicArrayProperties fDynamic=\"1\" fCollapsed=\"0\"/>\n        </ext>\n      </extLst>\n    </bk>\n  </futureMetadata>\n  <cellMetadata count=\"1\">\n    <bk>\n      <rc t=\"1\" v=\"0\"/>\n    </bk>\n  </cellMetadata>\n</metadata>");
	return o$10.join("");
}
function parse_cc_xml(data) {
	var d$5 = [];
	if (!data) return d$5;
	var i$7 = 1;
	(data.match(tagregex) || []).forEach(function(x$2) {
		var y$3 = parsexmltag(x$2);
		switch (y$3[0]) {
			case "<?xml": break;
			case "<calcChain":
			case "<calcChain>":
			case "</calcChain>": break;
			case "<c":
				delete y$3[0];
				if (y$3.i) i$7 = y$3.i;
				else y$3.i = i$7;
				d$5.push(y$3);
				break;
		}
	});
	return d$5;
}
function parse_BrtCalcChainItem$(data) {
	var out = {};
	out.i = data.read_shift(4);
	var cell = {};
	cell.r = data.read_shift(4);
	cell.c = data.read_shift(4);
	out.r = encode_cell(cell);
	var flags = data.read_shift(1);
	if (flags & 2) out.l = "1";
	if (flags & 8) out.a = "1";
	return out;
}
function parse_cc_bin(data, name, opts) {
	var out = [];
	var pass = false;
	recordhopper(data, function hopper_cc(val$1, R$1, RT) {
		switch (RT) {
			case 63:
				out.push(val$1);
				break;
			default: if (R$1.T) {} else if (!pass || opts.WTF) throw new Error("Unexpected record 0x" + RT.toString(16));
		}
	});
	return out;
}
function parse_xlink_xml() {}
function parse_xlink_bin(data, rel$1, name, _opts) {
	if (!data) return data;
	var opts = _opts || {};
	var pass = false, end = false;
	recordhopper(data, function xlink_parse(val$1, R$1, RT) {
		if (end) return;
		switch (RT) {
			case 359:
			case 363:
			case 364:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 371:
			case 472:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 585:
			case 586:
			case 587: break;
			case 35:
				pass = true;
				break;
			case 36:
				pass = false;
				break;
			default: if (R$1.T) {} else if (!pass || opts.WTF) throw new Error("Unexpected record 0x" + RT.toString(16));
		}
	}, opts);
}
function parse_drawing(data, rels) {
	if (!data) return "??";
	var id = (data.match(/<c:chart [^<>]*r:id="([^<>"]*)"/) || ["", ""])[1];
	return rels["!id"][id].Target;
}
function parse_vml(data, sheet, comments) {
	var cidx = 0;
	(str_match_xml_ns_g(data, "shape") || []).forEach(function(m$3) {
		var type = "";
		var hidden = true;
		var aidx = -1;
		var R$1 = -1, C$2 = -1;
		m$3.replace(tagregex, function(x$2, idx) {
			var y$3 = parsexmltag(x$2);
			switch (strip_ns(y$3[0])) {
				case "<ClientData":
					if (y$3.ObjectType) type = y$3.ObjectType;
					break;
				case "<Visible":
				case "<Visible/>":
					hidden = false;
					break;
				case "<Row":
				case "<Row>":
					aidx = idx + x$2.length;
					break;
				case "</Row>":
					R$1 = +m$3.slice(aidx, idx).trim();
					break;
				case "<Column":
				case "<Column>":
					aidx = idx + x$2.length;
					break;
				case "</Column>":
					C$2 = +m$3.slice(aidx, idx).trim();
					break;
			}
			return "";
		});
		switch (type) {
			case "Note":
				var cell = ws_get_cell_stub(sheet, R$1 >= 0 && C$2 >= 0 ? encode_cell({
					r: R$1,
					c: C$2
				}) : comments[cidx].ref);
				if (cell.c) {
					cell.c.hidden = hidden;
				}
				++cidx;
				break;
		}
	});
}
function write_vml(rId, comments, ws) {
	var csize = [21600, 21600];
	var bbox = [
		"m0,0l0",
		csize[1],
		csize[0],
		csize[1],
		csize[0],
		"0xe"
	].join(",");
	var o$10 = [writextag("xml", null, {
		"xmlns:v": XLMLNS.v,
		"xmlns:o": XLMLNS.o,
		"xmlns:x": XLMLNS.x,
		"xmlns:mv": XLMLNS.mv
	}).replace(/\/>/, ">"), writextag("o:shapelayout", writextag("o:idmap", null, {
		"v:ext": "edit",
		"data": rId
	}), { "v:ext": "edit" })];
	var _shapeid = 65536 * rId;
	var _comments = comments || [];
	if (_comments.length > 0) o$10.push(writextag("v:shapetype", [writextag("v:stroke", null, { joinstyle: "miter" }), writextag("v:path", null, {
		gradientshapeok: "t",
		"o:connecttype": "rect"
	})].join(""), {
		id: "_x0000_t202",
		coordsize: csize.join(","),
		"o:spt": 202,
		path: bbox
	}));
	_comments.forEach(function(x$2) {
		++_shapeid;
		o$10.push(write_vml_comment(x$2, _shapeid));
	});
	o$10.push("</xml>");
	return o$10.join("");
}
function write_vml_comment(x$2, _shapeid, ws) {
	var c$7 = decode_cell(x$2[0]);
	var fillopts = {
		"color2": "#BEFF82",
		"type": "gradient"
	};
	if (fillopts.type == "gradient") fillopts.angle = "-180";
	var fillparm = fillopts.type == "gradient" ? writextag("o:fill", null, {
		type: "gradientUnscaled",
		"v:ext": "view"
	}) : null;
	var fillxml = writextag("v:fill", fillparm, fillopts);
	var shadata = {
		on: "t",
		"obscured": "t"
	};
	return [
		"<v:shape" + wxt_helper({
			id: "_x0000_s" + _shapeid,
			type: "#_x0000_t202",
			style: "position:absolute; margin-left:80pt;margin-top:5pt;width:104pt;height:64pt;z-index:10" + (x$2[1].hidden ? ";visibility:hidden" : ""),
			fillcolor: "#ECFAD4",
			strokecolor: "#edeaa1"
		}) + ">",
		fillxml,
		writextag("v:shadow", null, shadata),
		writextag("v:path", null, { "o:connecttype": "none" }),
		"<v:textbox><div style=\"text-align:left\"></div></v:textbox>",
		"<x:ClientData ObjectType=\"Note\">",
		"<x:MoveWithCells/>",
		"<x:SizeWithCells/>",
		writetag("x:Anchor", [
			c$7.c + 1,
			0,
			c$7.r + 1,
			0,
			c$7.c + 3,
			20,
			c$7.r + 5,
			20
		].join(",")),
		writetag("x:AutoFill", "False"),
		writetag("x:Row", String(c$7.r)),
		writetag("x:Column", String(c$7.c)),
		x$2[1].hidden ? "" : "<x:Visible/>",
		"</x:ClientData>",
		"</v:shape>"
	].join("");
}
function sheet_insert_comments(sheet, comments, threaded, people) {
	var dense = sheet["!data"] != null;
	var cell;
	comments.forEach(function(comment) {
		var r$10 = decode_cell(comment.ref);
		if (r$10.r < 0 || r$10.c < 0) return;
		if (dense) {
			if (!sheet["!data"][r$10.r]) sheet["!data"][r$10.r] = [];
			cell = sheet["!data"][r$10.r][r$10.c];
		} else cell = sheet[comment.ref];
		if (!cell) {
			cell = { t: "z" };
			if (dense) sheet["!data"][r$10.r][r$10.c] = cell;
			else sheet[comment.ref] = cell;
			var range = safe_decode_range(sheet["!ref"] || "BDWGO1000001:A1");
			if (range.s.r > r$10.r) range.s.r = r$10.r;
			if (range.e.r < r$10.r) range.e.r = r$10.r;
			if (range.s.c > r$10.c) range.s.c = r$10.c;
			if (range.e.c < r$10.c) range.e.c = r$10.c;
			var encoded = encode_range(range);
			sheet["!ref"] = encoded;
		}
		if (!cell.c) cell.c = [];
		var o$10 = {
			a: comment.author,
			t: comment.t,
			r: comment.r,
			T: threaded
		};
		if (comment.h) o$10.h = comment.h;
		for (var i$7 = cell.c.length - 1; i$7 >= 0; --i$7) {
			if (!threaded && cell.c[i$7].T) return;
			if (threaded && !cell.c[i$7].T) cell.c.splice(i$7, 1);
		}
		if (threaded && people) for (i$7 = 0; i$7 < people.length; ++i$7) {
			if (o$10.a == people[i$7].id) {
				o$10.a = people[i$7].name || o$10.a;
				break;
			}
		}
		cell.c.push(o$10);
	});
}
function parse_comments_xml(data, opts) {
	if (data.match(/<(?:\w+:)?comments *\/>/)) return [];
	var authors = [];
	var commentList = [];
	var authtag = str_match_xml_ns(data, "authors");
	if (authtag && authtag[1]) authtag[1].split(/<\/\w*:?author>/).forEach(function(x$2) {
		if (x$2 === "" || x$2.trim() === "") return;
		var a$2 = x$2.match(/<(?:\w+:)?author[^<>]*>(.*)/);
		if (a$2) authors.push(a$2[1]);
	});
	var cmnttag = str_match_xml_ns(data, "commentList");
	if (cmnttag && cmnttag[1]) cmnttag[1].split(/<\/\w*:?comment>/).forEach(function(x$2) {
		if (x$2 === "" || x$2.trim() === "") return;
		var cm = x$2.match(/<(?:\w+:)?comment[^<>]*>/);
		if (!cm) return;
		var y$3 = parsexmltag(cm[0]);
		var comment = {
			author: y$3.authorId && authors[y$3.authorId] || "sheetjsghost",
			ref: y$3.ref,
			guid: y$3.guid
		};
		var cell = decode_cell(y$3.ref);
		if (opts.sheetRows && opts.sheetRows <= cell.r) return;
		var textMatch = str_match_xml_ns(x$2, "text");
		var rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {
			r: "",
			t: "",
			h: ""
		};
		comment.r = rt.r;
		if (rt.r == "<t></t>") rt.t = rt.h = "";
		comment.t = (rt.t || "").replace(/\r\n/g, "\n").replace(/\r/g, "\n");
		if (opts.cellHTML) comment.h = rt.h;
		commentList.push(comment);
	});
	return commentList;
}
function write_comments_xml(data) {
	var o$10 = [XML_HEADER, writextag("comments", null, { "xmlns": XMLNS_main[0] })];
	var iauthor = [];
	o$10.push("<authors>");
	data.forEach(function(x$2) {
		x$2[1].forEach(function(w$2) {
			var a$2 = escapexml(w$2.a);
			if (iauthor.indexOf(a$2) == -1) {
				iauthor.push(a$2);
				o$10.push("<author>" + a$2 + "</author>");
			}
			if (w$2.T && w$2.ID && iauthor.indexOf("tc=" + w$2.ID) == -1) {
				iauthor.push("tc=" + w$2.ID);
				o$10.push("<author>" + "tc=" + w$2.ID + "</author>");
			}
		});
	});
	if (iauthor.length == 0) {
		iauthor.push("SheetJ5");
		o$10.push("<author>SheetJ5</author>");
	}
	o$10.push("</authors>");
	o$10.push("<commentList>");
	data.forEach(function(d$5) {
		var lastauthor = 0, ts = [], tcnt = 0;
		if (d$5[1][0] && d$5[1][0].T && d$5[1][0].ID) lastauthor = iauthor.indexOf("tc=" + d$5[1][0].ID);
		d$5[1].forEach(function(c$7) {
			if (c$7.a) lastauthor = iauthor.indexOf(escapexml(c$7.a));
			if (c$7.T) ++tcnt;
			ts.push(c$7.t == null ? "" : escapexml(c$7.t));
		});
		if (tcnt === 0) {
			d$5[1].forEach(function(c$7) {
				o$10.push("<comment ref=\"" + d$5[0] + "\" authorId=\"" + iauthor.indexOf(escapexml(c$7.a)) + "\"><text>");
				o$10.push(writetag("t", c$7.t == null ? "" : escapexml(c$7.t)));
				o$10.push("</text></comment>");
			});
		} else {
			if (d$5[1][0] && d$5[1][0].T && d$5[1][0].ID) lastauthor = iauthor.indexOf("tc=" + d$5[1][0].ID);
			o$10.push("<comment ref=\"" + d$5[0] + "\" authorId=\"" + lastauthor + "\"><text>");
			var t$6 = "Comment:\n    " + ts[0] + "\n";
			for (var i$7 = 1; i$7 < ts.length; ++i$7) t$6 += "Reply:\n    " + ts[i$7] + "\n";
			o$10.push(writetag("t", escapexml(t$6)));
			o$10.push("</text></comment>");
		}
	});
	o$10.push("</commentList>");
	if (o$10.length > 2) {
		o$10[o$10.length] = "</comments>";
		o$10[1] = o$10[1].replace("/>", ">");
	}
	return o$10.join("");
}
function parse_tcmnt_xml(data, opts) {
	var out = [];
	var pass = false, comment = {}, tidx = 0;
	data.replace(tagregex, function xml_tcmnt(x$2, idx) {
		var y$3 = parsexmltag(x$2);
		switch (strip_ns(y$3[0])) {
			case "<?xml": break;
			case "<ThreadedComments": break;
			case "</ThreadedComments>": break;
			case "<threadedComment":
				comment = {
					author: y$3.personId,
					guid: y$3.id,
					ref: y$3.ref,
					T: 1
				};
				break;
			case "</threadedComment>":
				if (comment.t != null) out.push(comment);
				break;
			case "<text>":
			case "<text":
				tidx = idx + x$2.length;
				break;
			case "</text>":
				comment.t = data.slice(tidx, idx).replace(/\r\n/g, "\n").replace(/\r/g, "\n");
				break;
			case "<mentions":
			case "<mentions>":
				pass = true;
				break;
			case "</mentions>":
				pass = false;
				break;
			case "<extLst":
			case "<extLst>":
			case "</extLst>":
			case "<extLst/>": break;
			case "<ext":
				pass = true;
				break;
			case "</ext>":
				pass = false;
				break;
			default: if (!pass && opts.WTF) throw new Error("unrecognized " + y$3[0] + " in threaded comments");
		}
		return x$2;
	});
	return out;
}
function write_tcmnt_xml(comments, people, opts) {
	var o$10 = [XML_HEADER, writextag("ThreadedComments", null, { "xmlns": XMLNS.TCMNT }).replace(/[\/]>/, ">")];
	comments.forEach(function(carr) {
		var rootid = "";
		(carr[1] || []).forEach(function(c$7, idx) {
			if (!c$7.T) {
				delete c$7.ID;
				return;
			}
			if (c$7.a && people.indexOf(c$7.a) == -1) people.push(c$7.a);
			var tcopts = {
				ref: carr[0],
				id: "{54EE7951-7262-4200-6969-" + ("000000000000" + opts.tcid++).slice(-12) + "}"
			};
			if (idx == 0) rootid = tcopts.id;
			else tcopts.parentId = rootid;
			c$7.ID = tcopts.id;
			if (c$7.a) tcopts.personId = "{54EE7950-7262-4200-6969-" + ("000000000000" + people.indexOf(c$7.a)).slice(-12) + "}";
			o$10.push(writextag("threadedComment", writetag("text", c$7.t || ""), tcopts));
		});
	});
	o$10.push("</ThreadedComments>");
	return o$10.join("");
}
function parse_people_xml(data, opts) {
	var out = [];
	var pass = false;
	data.replace(tagregex, function xml_tcmnt(x$2) {
		var y$3 = parsexmltag(x$2);
		switch (strip_ns(y$3[0])) {
			case "<?xml": break;
			case "<personList": break;
			case "</personList>": break;
			case "<person":
				out.push({
					name: y$3.displayname,
					id: y$3.id
				});
				break;
			case "</person>": break;
			case "<extLst":
			case "<extLst>":
			case "</extLst>":
			case "<extLst/>": break;
			case "<ext":
				pass = true;
				break;
			case "</ext>":
				pass = false;
				break;
			default: if (!pass && opts.WTF) throw new Error("unrecognized " + y$3[0] + " in threaded comments");
		}
		return x$2;
	});
	return out;
}
function write_people_xml(people) {
	var o$10 = [XML_HEADER, writextag("personList", null, {
		"xmlns": XMLNS.TCMNT,
		"xmlns:x": XMLNS_main[0]
	}).replace(/[\/]>/, ">")];
	people.forEach(function(person, idx) {
		o$10.push(writextag("person", null, {
			displayName: person,
			id: "{54EE7950-7262-4200-6969-" + ("000000000000" + idx).slice(-12) + "}",
			userId: person,
			providerId: "None"
		}));
	});
	o$10.push("</personList>");
	return o$10.join("");
}
function parse_BrtBeginComment(data) {
	var out = {};
	out.iauthor = data.read_shift(4);
	var rfx = parse_UncheckedRfX(data, 16);
	out.rfx = rfx.s;
	out.ref = encode_cell(rfx.s);
	data.l += 16;
	return out;
}
function write_BrtBeginComment(data, o$10) {
	if (o$10 == null) o$10 = new_buf(36);
	o$10.write_shift(4, data[1].iauthor);
	write_UncheckedRfX(data[0], o$10);
	o$10.write_shift(4, 0);
	o$10.write_shift(4, 0);
	o$10.write_shift(4, 0);
	o$10.write_shift(4, 0);
	return o$10;
}
function write_BrtCommentAuthor(data) {
	return write_XLWideString(data.slice(0, 54));
}
function parse_comments_bin(data, opts) {
	var out = [];
	var authors = [];
	var c$7 = {};
	var pass = false;
	recordhopper(data, function hopper_cmnt(val$1, R$1, RT) {
		switch (RT) {
			case 632:
				authors.push(val$1);
				break;
			case 635:
				c$7 = val$1;
				break;
			case 637:
				c$7.t = val$1.t;
				c$7.h = val$1.h;
				c$7.r = val$1.r;
				break;
			case 636:
				c$7.author = authors[c$7.iauthor];
				delete c$7.iauthor;
				if (opts.sheetRows && c$7.rfx && opts.sheetRows <= c$7.rfx.r) break;
				if (!c$7.t) c$7.t = "";
				delete c$7.rfx;
				out.push(c$7);
				break;
			case 3072: break;
			case 35:
				pass = true;
				break;
			case 36:
				pass = false;
				break;
			case 37: break;
			case 38: break;
			default: if (R$1.T) {} else if (!pass || opts.WTF) throw new Error("Unexpected record 0x" + RT.toString(16));
		}
	});
	return out;
}
function write_comments_bin(data) {
	var ba = buf_array();
	var iauthor = [];
	write_record(ba, 628);
	write_record(ba, 630);
	data.forEach(function(comment) {
		comment[1].forEach(function(c$7) {
			if (iauthor.indexOf(c$7.a) > -1) return;
			iauthor.push(c$7.a.slice(0, 54));
			write_record(ba, 632, write_BrtCommentAuthor(c$7.a));
			if (c$7.T && c$7.ID && iauthor.indexOf("tc=" + c$7.ID) == -1) {
				iauthor.push("tc=" + c$7.ID);
				write_record(ba, 632, write_BrtCommentAuthor("tc=" + c$7.ID));
			}
		});
	});
	write_record(ba, 631);
	write_record(ba, 633);
	data.forEach(function(comment) {
		comment[1].forEach(function(c$7) {
			var _ia = -1;
			if (c$7.ID) _ia = iauthor.indexOf("tc=" + c$7.ID);
			if (_ia == -1 && comment[1][0].T && comment[1][0].ID) _ia = iauthor.indexOf("tc=" + comment[1][0].ID);
			if (_ia == -1) _ia = iauthor.indexOf(c$7.a);
			c$7.iauthor = _ia;
			var range = {
				s: decode_cell(comment[0]),
				e: decode_cell(comment[0])
			};
			write_record(ba, 635, write_BrtBeginComment([range, c$7]));
			if (c$7.t && c$7.t.length > 0) write_record(ba, 637, write_BrtCommentText(c$7));
			write_record(ba, 636);
			delete c$7.iauthor;
		});
	});
	write_record(ba, 634);
	write_record(ba, 629);
	return ba.end();
}
function make_vba_xls(cfb) {
	var newcfb = CFB.utils.cfb_new({ root: "R" });
	cfb.FullPaths.forEach(function(p$3, i$7) {
		if (p$3.slice(-1) === "/" || !p$3.match(/_VBA_PROJECT_CUR/)) return;
		var newpath = p$3.replace(/^[^\/]*/, "R").replace(/\/_VBA_PROJECT_CUR\u0000*/, "");
		CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i$7].content);
	});
	return CFB.write(newcfb);
}
function fill_vba_xls(cfb, vba) {
	vba.FullPaths.forEach(function(p$3, i$7) {
		if (i$7 == 0) return;
		var newpath = p$3.replace(/^[\/]*[^\/]*[\/]/, "/_VBA_PROJECT_CUR/");
		if (newpath.slice(-1) !== "/") CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i$7].content);
	});
}
function parse_ds_bin() {
	return { "!type": "dialog" };
}
function parse_ds_xml() {
	return { "!type": "dialog" };
}
function parse_ms_bin() {
	return { "!type": "macro" };
}
function parse_ms_xml() {
	return { "!type": "macro" };
}
function shift_formula_str(f$4, delta) {
	return f$4.replace(crefregex, function($0, $1, $2, $3, $4, $5) {
		return $1 + ($2 == "$" ? $2 + $3 : encode_col(decode_col($3) + delta.c)) + ($4 == "$" ? $4 + $5 : encode_row(decode_row($5) + delta.r));
	});
}
function shift_formula_xlsx(f$4, range, cell) {
	var r$10 = decode_range(range), s$5 = r$10.s, c$7 = decode_cell(cell);
	var delta = {
		r: c$7.r - s$5.r,
		c: c$7.c - s$5.c
	};
	return shift_formula_str(f$4, delta);
}
function fuzzyfmla(f$4) {
	if (f$4.length == 1) return false;
	return true;
}
function _xlfn(f$4) {
	return f$4.replace(/_xlfn\./g, "");
}
function parseread1(blob) {
	blob.l += 1;
	return;
}
function parse_ColRelU(blob, length) {
	var c$7 = blob.read_shift(length == 1 ? 1 : 2);
	return [
		c$7 & 16383,
		c$7 >> 14 & 1,
		c$7 >> 15 & 1
	];
}
function parse_RgceArea(blob, length, opts) {
	var w$2 = 2;
	if (opts) {
		if (opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);
		else if (opts.biff == 12) w$2 = 4;
	}
	var r$10 = blob.read_shift(w$2), R$1 = blob.read_shift(w$2);
	var c$7 = parse_ColRelU(blob, 2);
	var C$2 = parse_ColRelU(blob, 2);
	return {
		s: {
			r: r$10,
			c: c$7[0],
			cRel: c$7[1],
			rRel: c$7[2]
		},
		e: {
			r: R$1,
			c: C$2[0],
			cRel: C$2[1],
			rRel: C$2[2]
		}
	};
}
function parse_RgceArea_BIFF2(blob) {
	var r$10 = parse_ColRelU(blob, 2), R$1 = parse_ColRelU(blob, 2);
	var c$7 = blob.read_shift(1);
	var C$2 = blob.read_shift(1);
	return {
		s: {
			r: r$10[0],
			c: c$7,
			cRel: r$10[1],
			rRel: r$10[2]
		},
		e: {
			r: R$1[0],
			c: C$2,
			cRel: R$1[1],
			rRel: R$1[2]
		}
	};
}
function parse_RgceAreaRel(blob, length, opts) {
	if (opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);
	var r$10 = blob.read_shift(opts.biff == 12 ? 4 : 2), R$1 = blob.read_shift(opts.biff == 12 ? 4 : 2);
	var c$7 = parse_ColRelU(blob, 2);
	var C$2 = parse_ColRelU(blob, 2);
	return {
		s: {
			r: r$10,
			c: c$7[0],
			cRel: c$7[1],
			rRel: c$7[2]
		},
		e: {
			r: R$1,
			c: C$2[0],
			cRel: C$2[1],
			rRel: C$2[2]
		}
	};
}
function parse_RgceLoc(blob, length, opts) {
	if (opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);
	var r$10 = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);
	var c$7 = parse_ColRelU(blob, 2);
	return {
		r: r$10,
		c: c$7[0],
		cRel: c$7[1],
		rRel: c$7[2]
	};
}
function parse_RgceLoc_BIFF2(blob) {
	var r$10 = parse_ColRelU(blob, 2);
	var c$7 = blob.read_shift(1);
	return {
		r: r$10[0],
		c: c$7,
		cRel: r$10[1],
		rRel: r$10[2]
	};
}
function parse_RgceElfLoc(blob) {
	var r$10 = blob.read_shift(2);
	var c$7 = blob.read_shift(2);
	return {
		r: r$10,
		c: c$7 & 255,
		fQuoted: !!(c$7 & 16384),
		cRel: c$7 >> 15,
		rRel: c$7 >> 15
	};
}
function parse_RgceLocRel(blob, length, opts) {
	var biff = opts && opts.biff ? opts.biff : 8;
	if (biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);
	var r$10 = blob.read_shift(biff >= 12 ? 4 : 2);
	var cl = blob.read_shift(2);
	var cRel = (cl & 16384) >> 14, rRel = (cl & 32768) >> 15;
	cl &= 16383;
	if (rRel == 1) while (r$10 > 524287) r$10 -= 1048576;
	if (cRel == 1) while (cl > 8191) cl = cl - 16384;
	return {
		r: r$10,
		c: cl,
		cRel,
		rRel
	};
}
function parse_RgceLocRel_BIFF2(blob) {
	var rl = blob.read_shift(2);
	var c$7 = blob.read_shift(1);
	var rRel = (rl & 32768) >> 15, cRel = (rl & 16384) >> 14;
	rl &= 16383;
	if (rRel == 1 && rl >= 8192) rl = rl - 16384;
	if (cRel == 1 && c$7 >= 128) c$7 = c$7 - 256;
	return {
		r: rl,
		c: c$7,
		cRel,
		rRel
	};
}
function parse_PtgArea(blob, length, opts) {
	var type = (blob[blob.l++] & 96) >> 5;
	var area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);
	return [type, area];
}
function parse_PtgArea3d(blob, length, opts) {
	var type = (blob[blob.l++] & 96) >> 5;
	var ixti = blob.read_shift(2, "i");
	var w$2 = 8;
	if (opts) switch (opts.biff) {
		case 5:
			blob.l += 12;
			w$2 = 6;
			break;
		case 12:
			w$2 = 12;
			break;
	}
	var area = parse_RgceArea(blob, w$2, opts);
	return [
		type,
		ixti,
		area
	];
}
function parse_PtgAreaErr(blob, length, opts) {
	var type = (blob[blob.l++] & 96) >> 5;
	blob.l += opts && opts.biff > 8 ? 12 : opts.biff < 8 ? 6 : 8;
	return [type];
}
function parse_PtgAreaErr3d(blob, length, opts) {
	var type = (blob[blob.l++] & 96) >> 5;
	var ixti = blob.read_shift(2);
	var w$2 = 8;
	if (opts) switch (opts.biff) {
		case 5:
			blob.l += 12;
			w$2 = 6;
			break;
		case 12:
			w$2 = 12;
			break;
	}
	blob.l += w$2;
	return [type, ixti];
}
function parse_PtgAreaN(blob, length, opts) {
	var type = (blob[blob.l++] & 96) >> 5;
	var area = parse_RgceAreaRel(blob, length - 1, opts);
	return [type, area];
}
function parse_PtgArray(blob, length, opts) {
	var type = (blob[blob.l++] & 96) >> 5;
	blob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;
	return [type];
}
function parse_PtgAttrBaxcel(blob) {
	var bitSemi = blob[blob.l + 1] & 1;
	var bitBaxcel = 1;
	blob.l += 4;
	return [bitSemi, bitBaxcel];
}
function parse_PtgAttrChoose(blob, length, opts) {
	blob.l += 2;
	var offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);
	var o$10 = [];
	for (var i$7 = 0; i$7 <= offset; ++i$7) o$10.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));
	return o$10;
}
function parse_PtgAttrGoto(blob, length, opts) {
	var bitGoto = blob[blob.l + 1] & 255 ? 1 : 0;
	blob.l += 2;
	return [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];
}
function parse_PtgAttrIf(blob, length, opts) {
	var bitIf = blob[blob.l + 1] & 255 ? 1 : 0;
	blob.l += 2;
	return [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];
}
function parse_PtgAttrIfError(blob) {
	var bitIf = blob[blob.l + 1] & 255 ? 1 : 0;
	blob.l += 2;
	return [bitIf, blob.read_shift(2)];
}
function parse_PtgAttrSemi(blob, length, opts) {
	var bitSemi = blob[blob.l + 1] & 255 ? 1 : 0;
	blob.l += opts && opts.biff == 2 ? 3 : 4;
	return [bitSemi];
}
function parse_PtgAttrSpaceType(blob) {
	var type = blob.read_shift(1), cch = blob.read_shift(1);
	return [type, cch];
}
function parse_PtgAttrSpace(blob) {
	blob.read_shift(2);
	return parse_PtgAttrSpaceType(blob, 2);
}
function parse_PtgAttrSpaceSemi(blob) {
	blob.read_shift(2);
	return parse_PtgAttrSpaceType(blob, 2);
}
function parse_PtgRef(blob, length, opts) {
	var type = (blob[blob.l] & 96) >> 5;
	blob.l += 1;
	var loc = parse_RgceLoc(blob, 0, opts);
	return [type, loc];
}
function parse_PtgRefN(blob, length, opts) {
	var type = (blob[blob.l] & 96) >> 5;
	blob.l += 1;
	var loc = parse_RgceLocRel(blob, 0, opts);
	return [type, loc];
}
function parse_PtgRef3d(blob, length, opts) {
	var type = (blob[blob.l] & 96) >> 5;
	blob.l += 1;
	var ixti = blob.read_shift(2);
	if (opts && opts.biff == 5) blob.l += 12;
	var loc = parse_RgceLoc(blob, 0, opts);
	return [
		type,
		ixti,
		loc
	];
}
function parse_PtgFunc(blob, length, opts) {
	var type = (blob[blob.l] & 96) >> 5;
	blob.l += 1;
	var iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);
	return [
		FtabArgc[iftab],
		Ftab[iftab],
		type
	];
}
function parse_PtgFuncVar(blob, length, opts) {
	var type = blob[blob.l++];
	var cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [type == 88 ? -1 : 0, blob.read_shift(1)] : parsetab(blob);
	return [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];
}
function parsetab(blob) {
	return [blob[blob.l + 1] >> 7, blob.read_shift(2) & 32767];
}
function parse_PtgAttrSum(blob, length, opts) {
	blob.l += opts && opts.biff == 2 ? 3 : 4;
	return;
}
function parse_PtgExp(blob, length, opts) {
	blob.l++;
	if (opts && opts.biff == 12) return [blob.read_shift(4, "i"), 0];
	var row = blob.read_shift(2);
	var col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);
	return [row, col];
}
function parse_PtgErr(blob) {
	blob.l++;
	return BErr[blob.read_shift(1)];
}
function parse_PtgInt(blob) {
	blob.l++;
	return blob.read_shift(2);
}
function parse_PtgBool(blob) {
	blob.l++;
	return blob.read_shift(1) !== 0;
}
function parse_PtgNum(blob) {
	blob.l++;
	return parse_Xnum(blob, 8);
}
function parse_PtgStr(blob, length, opts) {
	blob.l++;
	return parse_ShortXLUnicodeString(blob, length - 1, opts);
}
function parse_SerAr(blob, biff) {
	var val$1 = [blob.read_shift(1)];
	if (biff == 12) switch (val$1[0]) {
		case 2:
			val$1[0] = 4;
			break;
		case 4:
			val$1[0] = 16;
			break;
		case 0:
			val$1[0] = 1;
			break;
		case 1:
			val$1[0] = 2;
			break;
	}
	switch (val$1[0]) {
		case 4:
			val$1[1] = parsebool(blob, 1) ? "TRUE" : "FALSE";
			if (biff != 12) blob.l += 7;
			break;
		case 37:
		case 16:
			val$1[1] = BErr[blob[blob.l]];
			blob.l += biff == 12 ? 4 : 8;
			break;
		case 0:
			blob.l += 8;
			break;
		case 1:
			val$1[1] = parse_Xnum(blob, 8);
			break;
		case 2:
			val$1[1] = parse_XLUnicodeString2(blob, 0, { biff: biff > 0 && biff < 8 ? 2 : biff });
			break;
		default: throw new Error("Bad SerAr: " + val$1[0]);
	}
	return val$1;
}
function parse_PtgExtraMem(blob, cce, opts) {
	var count = blob.read_shift(opts.biff == 12 ? 4 : 2);
	var out = [];
	for (var i$7 = 0; i$7 != count; ++i$7) out.push((opts.biff == 12 ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));
	return out;
}
function parse_PtgExtraArray(blob, length, opts) {
	var rows = 0, cols = 0;
	if (opts.biff == 12) {
		rows = blob.read_shift(4);
		cols = blob.read_shift(4);
	} else {
		cols = 1 + blob.read_shift(1);
		rows = 1 + blob.read_shift(2);
	}
	if (opts.biff >= 2 && opts.biff < 8) {
		--rows;
		if (--cols == 0) cols = 256;
	}
	for (var i$7 = 0, o$10 = []; i$7 != rows && (o$10[i$7] = []); ++i$7) for (var j$2 = 0; j$2 != cols; ++j$2) o$10[i$7][j$2] = parse_SerAr(blob, opts.biff);
	return o$10;
}
function parse_PtgName(blob, length, opts) {
	var type = blob.read_shift(1) >>> 5 & 3;
	var w$2 = !opts || opts.biff >= 8 ? 4 : 2;
	var nameindex = blob.read_shift(w$2);
	switch (opts.biff) {
		case 2:
			blob.l += 5;
			break;
		case 3:
		case 4:
			blob.l += 8;
			break;
		case 5:
			blob.l += 12;
			break;
	}
	return [
		type,
		0,
		nameindex
	];
}
function parse_PtgNameX(blob, length, opts) {
	if (opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);
	var type = blob.read_shift(1) >>> 5 & 3;
	var ixti = blob.read_shift(2);
	var nameindex = blob.read_shift(4);
	return [
		type,
		ixti,
		nameindex
	];
}
function parse_PtgNameX_BIFF5(blob) {
	var type = blob.read_shift(1) >>> 5 & 3;
	var ixti = blob.read_shift(2, "i");
	blob.l += 8;
	var nameindex = blob.read_shift(2);
	blob.l += 12;
	return [
		type,
		ixti,
		nameindex
	];
}
function parse_PtgMemArea(blob, length, opts) {
	var type = blob.read_shift(1) >>> 5 & 3;
	blob.l += opts && opts.biff == 2 ? 3 : 4;
	var cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);
	return [type, cce];
}
function parse_PtgMemFunc(blob, length, opts) {
	var type = blob.read_shift(1) >>> 5 & 3;
	var cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);
	return [type, cce];
}
function parse_PtgRefErr(blob, length, opts) {
	var type = blob.read_shift(1) >>> 5 & 3;
	blob.l += 4;
	if (opts.biff < 8) blob.l--;
	if (opts.biff == 12) blob.l += 2;
	return [type];
}
function parse_PtgRefErr3d(blob, length, opts) {
	var type = (blob[blob.l++] & 96) >> 5;
	var ixti = blob.read_shift(2);
	var w$2 = 4;
	if (opts) switch (opts.biff) {
		case 5:
			w$2 = 15;
			break;
		case 12:
			w$2 = 6;
			break;
	}
	blob.l += w$2;
	return [type, ixti];
}
function parse_PtgElfLoc(blob, length, opts) {
	blob.l += 2;
	return [parse_RgceElfLoc(blob, 4, opts)];
}
function parse_PtgElfNoop(blob) {
	blob.l += 6;
	return [];
}
function parse_PtgElfLel(blob) {
	blob.l += 2;
	return [parseuint16(blob), blob.read_shift(2) & 1];
}
function parse_PtgList(blob) {
	blob.l += 2;
	var ixti = blob.read_shift(2);
	var flags = blob.read_shift(2);
	var idx = blob.read_shift(4);
	var c$7 = blob.read_shift(2);
	var C$2 = blob.read_shift(2);
	var rt = PtgListRT[flags >> 2 & 31];
	return {
		ixti,
		coltype: flags & 3,
		rt,
		idx,
		c: c$7,
		C: C$2
	};
}
function parse_PtgSxName(blob) {
	blob.l += 2;
	return [blob.read_shift(4)];
}
function parse_PtgSheet(blob, length, opts) {
	blob.l += 5;
	blob.l += 2;
	blob.l += opts.biff == 2 ? 1 : 4;
	return ["PTGSHEET"];
}
function parse_PtgEndSheet(blob, length, opts) {
	blob.l += opts.biff == 2 ? 4 : 5;
	return ["PTGENDSHEET"];
}
function parse_PtgMemAreaN(blob) {
	var type = blob.read_shift(1) >>> 5 & 3;
	var cce = blob.read_shift(2);
	return [type, cce];
}
function parse_PtgMemNoMemN(blob) {
	var type = blob.read_shift(1) >>> 5 & 3;
	var cce = blob.read_shift(2);
	return [type, cce];
}
function parse_PtgAttrNoop(blob) {
	blob.l += 4;
	return [0, 0];
}
function parse_RgbExtra(blob, length, rgce, opts) {
	if (opts.biff < 8) return parsenoop(blob, length);
	var target = blob.l + length;
	var o$10 = [];
	for (var i$7 = 0; i$7 !== rgce.length; ++i$7) {
		switch (rgce[i$7][0]) {
			case "PtgArray":
				rgce[i$7][1] = parse_PtgExtraArray(blob, 0, opts);
				o$10.push(rgce[i$7][1]);
				break;
			case "PtgMemArea":
				rgce[i$7][2] = parse_PtgExtraMem(blob, rgce[i$7][1], opts);
				o$10.push(rgce[i$7][2]);
				break;
			case "PtgExp":
				if (opts && opts.biff == 12) {
					rgce[i$7][1][1] = blob.read_shift(4);
					o$10.push(rgce[i$7][1]);
				}
				break;
			case "PtgList":
			case "PtgElfRadicalS":
			case "PtgElfColS":
			case "PtgElfColSV": throw "Unsupported " + rgce[i$7][0];
			default: break;
		}
	}
	length = target - blob.l;
	if (length !== 0) o$10.push(parsenoop(blob, length));
	return o$10;
}
function parse_Rgce(blob, length, opts) {
	var target = blob.l + length;
	var R$1, id, ptgs = [];
	while (target != blob.l) {
		length = target - blob.l;
		id = blob[blob.l];
		R$1 = PtgTypes[id] || PtgTypes[PtgDupes[id]];
		if (id === 24 || id === 25) R$1 = (id === 24 ? Ptg18 : Ptg19)[blob[blob.l + 1]];
		if (!R$1 || !R$1.f) {
			parsenoop(blob, length);
		} else {
			ptgs.push([R$1.n, R$1.f(blob, length, opts)]);
		}
	}
	return ptgs;
}
function stringify_array(f$4) {
	var o$10 = [];
	for (var i$7 = 0; i$7 < f$4.length; ++i$7) {
		var x$2 = f$4[i$7], r$10 = [];
		for (var j$2 = 0; j$2 < x$2.length; ++j$2) {
			var y$3 = x$2[j$2];
			if (y$3) switch (y$3[0]) {
				case 2:
					r$10.push("\"" + y$3[1].replace(/"/g, "\"\"") + "\"");
					break;
				default: r$10.push(y$3[1]);
			}
			else r$10.push("");
		}
		o$10.push(r$10.join(","));
	}
	return o$10.join(";");
}
function make_3d_range(start, end) {
	var s$5 = start.lastIndexOf("!"), e$10 = end.lastIndexOf("!");
	if (s$5 == -1 && e$10 == -1) return start + ":" + end;
	if (s$5 > 0 && e$10 > 0 && start.slice(0, s$5).toLowerCase() == end.slice(0, e$10).toLowerCase()) return start + ":" + end.slice(e$10 + 1);
	console.error("Cannot hydrate range", start, end);
	return start + ":" + end;
}
function get_ixti_raw(supbooks, ixti, opts) {
	if (!supbooks) return "SH33TJSERR0";
	if (opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];
	if (!supbooks.XTI) return "SH33TJSERR6";
	var XTI = supbooks.XTI[ixti];
	if (opts.biff < 8) {
		if (ixti > 1e4) ixti -= 65536;
		if (ixti < 0) ixti = -ixti;
		return ixti == 0 ? "" : supbooks.XTI[ixti - 1];
	}
	if (!XTI) return "SH33TJSERR1";
	var o$10 = "";
	if (opts.biff > 8) switch (supbooks[XTI[0]][0]) {
		case 357:
			o$10 = XTI[1] == -1 ? "#REF" : supbooks.SheetNames[XTI[1]];
			return XTI[1] == XTI[2] ? o$10 : o$10 + ":" + supbooks.SheetNames[XTI[2]];
		case 358:
			if (opts.SID != null) return supbooks.SheetNames[opts.SID];
			return "SH33TJSSAME" + supbooks[XTI[0]][0];
		case 355:
		default: return "SH33TJSSRC" + supbooks[XTI[0]][0];
	}
	switch (supbooks[XTI[0]][0][0]) {
		case 1025:
			o$10 = XTI[1] == -1 ? "#REF" : supbooks.SheetNames[XTI[1]] || "SH33TJSERR3";
			return XTI[1] == XTI[2] ? o$10 : o$10 + ":" + supbooks.SheetNames[XTI[2]];
		case 14849: return supbooks[XTI[0]].slice(1).map(function(name) {
			return name.Name;
		}).join(";;");
		default:
			if (!supbooks[XTI[0]][0][3]) return "SH33TJSERR2";
			o$10 = XTI[1] == -1 ? "#REF" : supbooks[XTI[0]][0][3][XTI[1]] || "SH33TJSERR4";
			return XTI[1] == XTI[2] ? o$10 : o$10 + ":" + supbooks[XTI[0]][0][3][XTI[2]];
	}
}
function get_ixti(supbooks, ixti, opts) {
	var ixtiraw = get_ixti_raw(supbooks, ixti, opts);
	return ixtiraw == "#REF" ? ixtiraw : formula_quote_sheet_name(ixtiraw, opts);
}
function stringify_formula(formula, range, cell, supbooks, opts) {
	var biff = opts && opts.biff || 8;
	var _range = {
		s: {
			c: 0,
			r: 0
		},
		e: {
			c: 0,
			r: 0
		}
	};
	var stack = [], e1, e2, c$7, ixti = 0, nameidx = 0, r$10, sname = "";
	if (!formula[0] || !formula[0][0]) return "";
	var last_sp = -1, sp = "";
	for (var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {
		var f$4 = formula[0][ff];
		switch (f$4[0]) {
			case "PtgUminus":
				stack.push("-" + stack.pop());
				break;
			case "PtgUplus":
				stack.push("+" + stack.pop());
				break;
			case "PtgPercent":
				stack.push(stack.pop() + "%");
				break;
			case "PtgAdd":
			case "PtgConcat":
			case "PtgDiv":
			case "PtgEq":
			case "PtgGe":
			case "PtgGt":
			case "PtgLe":
			case "PtgLt":
			case "PtgMul":
			case "PtgNe":
			case "PtgPower":
			case "PtgSub":
				e1 = stack.pop();
				e2 = stack.pop();
				if (last_sp >= 0) {
					switch (formula[0][last_sp][1][0]) {
						case 0:
							sp = fill(" ", formula[0][last_sp][1][1]);
							break;
						case 1:
							sp = fill("\r", formula[0][last_sp][1][1]);
							break;
						default:
							sp = "";
							if (opts.WTF) throw new Error("Unexpected PtgAttrSpaceType " + formula[0][last_sp][1][0]);
					}
					e2 = e2 + sp;
					last_sp = -1;
				}
				stack.push(e2 + PtgBinOp[f$4[0]] + e1);
				break;
			case "PtgIsect":
				e1 = stack.pop();
				e2 = stack.pop();
				stack.push(e2 + " " + e1);
				break;
			case "PtgUnion":
				e1 = stack.pop();
				e2 = stack.pop();
				stack.push(e2 + "," + e1);
				break;
			case "PtgRange":
				e1 = stack.pop();
				e2 = stack.pop();
				stack.push(make_3d_range(e2, e1));
				break;
			case "PtgAttrChoose": break;
			case "PtgAttrGoto": break;
			case "PtgAttrIf": break;
			case "PtgAttrIfError": break;
			case "PtgRef":
				c$7 = shift_cell_xls(f$4[1][1], _range, opts);
				stack.push(encode_cell_xls(c$7, biff));
				break;
			case "PtgRefN":
				c$7 = cell ? shift_cell_xls(f$4[1][1], cell, opts) : f$4[1][1];
				stack.push(encode_cell_xls(c$7, biff));
				break;
			case "PtgRef3d":
				ixti = f$4[1][1];
				c$7 = shift_cell_xls(f$4[1][2], _range, opts);
				sname = get_ixti(supbooks, ixti, opts);
				var w$2 = sname;
				stack.push(sname + "!" + encode_cell_xls(c$7, biff));
				break;
			case "PtgFunc":
			case "PtgFuncVar":
				var argc = f$4[1][0], func = f$4[1][1];
				if (!argc) argc = 0;
				argc &= 127;
				var args = argc == 0 ? [] : stack.slice(-argc);
				stack.length -= argc;
				if (func === "User") func = args.shift();
				stack.push(func + "(" + args.join(",") + ")");
				break;
			case "PtgBool":
				stack.push(f$4[1] ? "TRUE" : "FALSE");
				break;
			case "PtgInt":
				stack.push(f$4[1]);
				break;
			case "PtgNum":
				stack.push(String(f$4[1]));
				break;
			case "PtgStr":
				stack.push("\"" + f$4[1].replace(/"/g, "\"\"") + "\"");
				break;
			case "PtgErr":
				stack.push(f$4[1]);
				break;
			case "PtgAreaN":
				r$10 = shift_range_xls(f$4[1][1], cell ? { s: cell } : _range, opts);
				stack.push(encode_range_xls(r$10, opts));
				break;
			case "PtgArea":
				r$10 = shift_range_xls(f$4[1][1], _range, opts);
				stack.push(encode_range_xls(r$10, opts));
				break;
			case "PtgArea3d":
				ixti = f$4[1][1];
				r$10 = f$4[1][2];
				sname = get_ixti(supbooks, ixti, opts);
				stack.push(sname + "!" + encode_range_xls(r$10, opts));
				break;
			case "PtgAttrSum":
				stack.push("SUM(" + stack.pop() + ")");
				break;
			case "PtgAttrBaxcel":
			case "PtgAttrSemi": break;
			case "PtgName":
				nameidx = f$4[1][2];
				var lbl = (supbooks.names || [])[nameidx - 1] || (supbooks[0] || [])[nameidx];
				var name = lbl ? lbl.Name : "SH33TJSNAME" + String(nameidx);
				if (name && name.slice(0, 6) == "_xlfn." && !opts.xlfn) name = name.slice(6);
				stack.push(name);
				break;
			case "PtgNameX":
				var bookidx = f$4[1][1];
				nameidx = f$4[1][2];
				var externbook;
				if (opts.biff <= 5) {
					if (bookidx < 0) bookidx = -bookidx;
					if (supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];
				} else {
					var o$10 = "";
					if (((supbooks[bookidx] || [])[0] || [])[0] == 14849) {} else if (((supbooks[bookidx] || [])[0] || [])[0] == 1025) {
						if (supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {
							o$10 = supbooks.SheetNames[supbooks[bookidx][nameidx].itab - 1] + "!";
						}
					} else o$10 = supbooks.SheetNames[nameidx - 1] + "!";
					if (supbooks[bookidx] && supbooks[bookidx][nameidx]) o$10 += supbooks[bookidx][nameidx].Name;
					else if (supbooks[0] && supbooks[0][nameidx]) o$10 += supbooks[0][nameidx].Name;
					else {
						var ixtidata = (get_ixti_raw(supbooks, bookidx, opts) || "").split(";;");
						if (ixtidata[nameidx - 1]) o$10 = ixtidata[nameidx - 1];
						else o$10 += "SH33TJSERRX";
					}
					stack.push(o$10);
					break;
				}
				if (!externbook) externbook = { Name: "SH33TJSERRY" };
				stack.push(externbook.Name);
				break;
			case "PtgParen":
				var lp = "(", rp = ")";
				if (last_sp >= 0) {
					sp = "";
					switch (formula[0][last_sp][1][0]) {
						case 2:
							lp = fill(" ", formula[0][last_sp][1][1]) + lp;
							break;
						case 3:
							lp = fill("\r", formula[0][last_sp][1][1]) + lp;
							break;
						case 4:
							rp = fill(" ", formula[0][last_sp][1][1]) + rp;
							break;
						case 5:
							rp = fill("\r", formula[0][last_sp][1][1]) + rp;
							break;
						default: if (opts.WTF) throw new Error("Unexpected PtgAttrSpaceType " + formula[0][last_sp][1][0]);
					}
					last_sp = -1;
				}
				stack.push(lp + stack.pop() + rp);
				break;
			case "PtgRefErr":
				stack.push("#REF!");
				break;
			case "PtgRefErr3d":
				stack.push("#REF!");
				break;
			case "PtgExp":
				c$7 = {
					c: f$4[1][1],
					r: f$4[1][0]
				};
				var q$2 = {
					c: cell.c,
					r: cell.r
				};
				if (supbooks.sharedf[encode_cell(c$7)]) {
					var parsedf = supbooks.sharedf[encode_cell(c$7)];
					stack.push(stringify_formula(parsedf, _range, q$2, supbooks, opts));
				} else {
					var fnd = false;
					for (e1 = 0; e1 != supbooks.arrayf.length; ++e1) {
						e2 = supbooks.arrayf[e1];
						if (c$7.c < e2[0].s.c || c$7.c > e2[0].e.c) continue;
						if (c$7.r < e2[0].s.r || c$7.r > e2[0].e.r) continue;
						stack.push(stringify_formula(e2[1], _range, q$2, supbooks, opts));
						fnd = true;
						break;
					}
					if (!fnd) stack.push(f$4[1]);
				}
				break;
			case "PtgArray":
				stack.push("{" + stringify_array(f$4[1]) + "}");
				break;
			case "PtgMemArea": break;
			case "PtgAttrSpace":
			case "PtgAttrSpaceSemi":
				last_sp = ff;
				break;
			case "PtgTbl": break;
			case "PtgMemErr": break;
			case "PtgMissArg":
				stack.push("");
				break;
			case "PtgAreaErr":
				stack.push("#REF!");
				break;
			case "PtgAreaErr3d":
				stack.push("#REF!");
				break;
			case "PtgList":
				stack.push("Table" + f$4[1].idx + "[#" + f$4[1].rt + "]");
				break;
			case "PtgMemAreaN":
			case "PtgMemNoMemN":
			case "PtgAttrNoop":
			case "PtgSheet":
			case "PtgEndSheet": break;
			case "PtgMemFunc": break;
			case "PtgMemNoMem": break;
			case "PtgElfCol":
			case "PtgElfColS":
			case "PtgElfColSV":
			case "PtgElfColV":
			case "PtgElfLel":
			case "PtgElfRadical":
			case "PtgElfRadicalLel":
			case "PtgElfRadicalS":
			case "PtgElfRw":
			case "PtgElfRwV": throw new Error("Unsupported ELFs");
			case "PtgSxName": throw new Error("Unrecognized Formula Token: " + String(f$4));
			default: throw new Error("Unrecognized Formula Token: " + String(f$4));
		}
		var PtgNonDisp = [
			"PtgAttrSpace",
			"PtgAttrSpaceSemi",
			"PtgAttrGoto"
		];
		if (opts.biff != 3) {
			if (last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {
				f$4 = formula[0][last_sp];
				var _left = true;
				switch (f$4[1][0]) {
					case 4: _left = false;
					case 0:
						sp = fill(" ", f$4[1][1]);
						break;
					case 5: _left = false;
					case 1:
						sp = fill("\r", f$4[1][1]);
						break;
					default:
						sp = "";
						if (opts.WTF) throw new Error("Unexpected PtgAttrSpaceType " + f$4[1][0]);
				}
				stack.push((_left ? sp : "") + stack.pop() + (_left ? "" : sp));
				last_sp = -1;
			}
		}
	}
	if (stack.length > 1 && opts.WTF) throw new Error("bad formula stack");
	if (stack[0] == "TRUE") return true;
	if (stack[0] == "FALSE") return false;
	return stack[0];
}
function parse_ArrayParsedFormula(blob, length, opts) {
	var target = blob.l + length, len = opts.biff == 2 ? 1 : 2;
	var rgcb, cce = blob.read_shift(len);
	if (cce == 65535) return [[], parsenoop(blob, length - 2)];
	var rgce = parse_Rgce(blob, cce, opts);
	if (length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);
	blob.l = target;
	return [rgce, rgcb];
}
function parse_XLSCellParsedFormula(blob, length, opts) {
	var target = blob.l + length, len = opts.biff == 2 ? 1 : 2;
	var rgcb, cce = blob.read_shift(len);
	if (cce == 65535) return [[], parsenoop(blob, length - 2)];
	var rgce = parse_Rgce(blob, cce, opts);
	if (length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);
	blob.l = target;
	return [rgce, rgcb];
}
function parse_NameParsedFormula(blob, length, opts, cce) {
	var target = blob.l + length;
	var rgce = parse_Rgce(blob, cce, opts);
	var rgcb;
	if (target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);
	return [rgce, rgcb];
}
function parse_SharedParsedFormula(blob, length, opts) {
	var target = blob.l + length;
	var rgcb, cce = blob.read_shift(2);
	var rgce = parse_Rgce(blob, cce, opts);
	if (cce == 65535) return [[], parsenoop(blob, length - 2)];
	if (length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);
	return [rgce, rgcb];
}
function parse_FormulaValue(blob) {
	var b$3;
	if (__readUInt16LE(blob, blob.l + 6) !== 65535) return [parse_Xnum(blob), "n"];
	switch (blob[blob.l]) {
		case 0:
			blob.l += 8;
			return ["String", "s"];
		case 1:
			b$3 = blob[blob.l + 2] === 1;
			blob.l += 8;
			return [b$3, "b"];
		case 2:
			b$3 = blob[blob.l + 2];
			blob.l += 8;
			return [b$3, "e"];
		case 3:
			blob.l += 8;
			return ["", "s"];
	}
	return [];
}
function write_FormulaValue(value) {
	if (value == null) {
		var o$10 = new_buf(8);
		o$10.write_shift(1, 3);
		o$10.write_shift(1, 0);
		o$10.write_shift(2, 0);
		o$10.write_shift(2, 0);
		o$10.write_shift(2, 65535);
		return o$10;
	} else if (typeof value == "number") return write_Xnum(value);
	return write_Xnum(0);
}
function parse_Formula(blob, length, opts) {
	var end = blob.l + length;
	var cell = parse_XLSCell(blob, 6, opts);
	var val$1 = parse_FormulaValue(blob, 8);
	var flags = blob.read_shift(1);
	if (opts.biff != 2) {
		blob.read_shift(1);
		if (opts.biff >= 5) {
			blob.read_shift(4);
		}
	}
	var cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);
	return {
		cell,
		val: val$1[0],
		formula: cbf,
		shared: flags >> 3 & 1,
		tt: val$1[1]
	};
}
function write_Formula(cell, R$1, C$2, opts, os) {
	var o1 = write_XLSCell(R$1, C$2, os);
	var o2 = write_FormulaValue(cell.v);
	var o3 = new_buf(6);
	var flags = 1 | 32;
	o3.write_shift(2, flags);
	o3.write_shift(4, 0);
	var bf = new_buf(cell.bf.length);
	for (var i$7 = 0; i$7 < cell.bf.length; ++i$7) bf[i$7] = cell.bf[i$7];
	var out = bconcat([
		o1,
		o2,
		o3,
		bf
	]);
	return out;
}
function parse_XLSBParsedFormula(data, length, opts) {
	var cce = data.read_shift(4);
	var rgce = parse_Rgce(data, cce, opts);
	var cb = data.read_shift(4);
	var rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;
	return [rgce, rgcb];
}
function write_XLSBFormulaNum(val$1) {
	if ((val$1 | 0) == val$1 && val$1 < Math.pow(2, 16) && val$1 >= 0) {
		var oint = new_buf(11);
		oint.write_shift(4, 3);
		oint.write_shift(1, 30);
		oint.write_shift(2, val$1);
		oint.write_shift(4, 0);
		return oint;
	}
	var num = new_buf(17);
	num.write_shift(4, 11);
	num.write_shift(1, 31);
	num.write_shift(8, val$1);
	num.write_shift(4, 0);
	return num;
}
function write_XLSBFormulaErr(val$1) {
	var oint = new_buf(10);
	oint.write_shift(4, 2);
	oint.write_shift(1, 28);
	oint.write_shift(1, val$1);
	oint.write_shift(4, 0);
	return oint;
}
function write_XLSBFormulaBool(val$1) {
	var oint = new_buf(10);
	oint.write_shift(4, 2);
	oint.write_shift(1, 29);
	oint.write_shift(1, val$1 ? 1 : 0);
	oint.write_shift(4, 0);
	return oint;
}
function write_XLSBFormulaStr(val$1) {
	var preamble = new_buf(7);
	preamble.write_shift(4, 3 + 2 * val$1.length);
	preamble.write_shift(1, 23);
	preamble.write_shift(2, val$1.length);
	var body = new_buf(2 * val$1.length);
	body.write_shift(2 * val$1.length, val$1, "utf16le");
	var postamble = new_buf(4);
	postamble.write_shift(4, 0);
	return bconcat([
		preamble,
		body,
		postamble
	]);
}
function write_XLSBFormulaRef(str) {
	var cell = decode_cell(str);
	var out = new_buf(15);
	out.write_shift(4, 7);
	out.write_shift(1, 4 | 1 << 5);
	out.write_shift(4, cell.r);
	out.write_shift(2, cell.c | (str.charAt(0) == "$" ? 0 : 1) << 14 | (str.match(/\$\d/) ? 0 : 1) << 15);
	out.write_shift(4, 0);
	return out;
}
function write_XLSBFormulaRef3D(str, wb) {
	var lastbang = str.lastIndexOf("!");
	var sname = str.slice(0, lastbang);
	str = str.slice(lastbang + 1);
	var cell = decode_cell(str);
	if (sname.charAt(0) == "'") sname = sname.slice(1, -1).replace(/''/g, "'");
	var out = new_buf(17);
	out.write_shift(4, 9);
	out.write_shift(1, 26 | 1 << 5);
	out.write_shift(2, 2 + wb.SheetNames.map(function(n$9) {
		return n$9.toLowerCase();
	}).indexOf(sname.toLowerCase()));
	out.write_shift(4, cell.r);
	out.write_shift(2, cell.c | (str.charAt(0) == "$" ? 0 : 1) << 14 | (str.match(/\$\d/) ? 0 : 1) << 15);
	out.write_shift(4, 0);
	return out;
}
function write_XLSBFormulaRefErr3D(str, wb) {
	var lastbang = str.lastIndexOf("!");
	var sname = str.slice(0, lastbang);
	str = str.slice(lastbang + 1);
	if (sname.charAt(0) == "'") sname = sname.slice(1, -1).replace(/''/g, "'");
	var out = new_buf(17);
	out.write_shift(4, 9);
	out.write_shift(1, 28 | 1 << 5);
	out.write_shift(2, 2 + wb.SheetNames.map(function(n$9) {
		return n$9.toLowerCase();
	}).indexOf(sname.toLowerCase()));
	out.write_shift(4, 0);
	out.write_shift(2, 0);
	out.write_shift(4, 0);
	return out;
}
function write_XLSBFormulaRange(_str) {
	var parts = _str.split(":"), str = parts[0];
	var out = new_buf(23);
	out.write_shift(4, 15);
	str = parts[0];
	var cell = decode_cell(str);
	out.write_shift(1, 4 | 1 << 5);
	out.write_shift(4, cell.r);
	out.write_shift(2, cell.c | (str.charAt(0) == "$" ? 0 : 1) << 14 | (str.match(/\$\d/) ? 0 : 1) << 15);
	out.write_shift(4, 0);
	str = parts[1];
	cell = decode_cell(str);
	out.write_shift(1, 4 | 1 << 5);
	out.write_shift(4, cell.r);
	out.write_shift(2, cell.c | (str.charAt(0) == "$" ? 0 : 1) << 14 | (str.match(/\$\d/) ? 0 : 1) << 15);
	out.write_shift(4, 0);
	out.write_shift(1, 17);
	out.write_shift(4, 0);
	return out;
}
function write_XLSBFormulaRangeWS(_str, wb) {
	var lastbang = _str.lastIndexOf("!");
	var sname = _str.slice(0, lastbang);
	_str = _str.slice(lastbang + 1);
	if (sname.charAt(0) == "'") sname = sname.slice(1, -1).replace(/''/g, "'");
	var parts = _str.split(":");
	var out = new_buf(27);
	out.write_shift(4, 19);
	var str = parts[0], cell = decode_cell(str);
	out.write_shift(1, 26 | 1 << 5);
	out.write_shift(2, 2 + wb.SheetNames.map(function(n$9) {
		return n$9.toLowerCase();
	}).indexOf(sname.toLowerCase()));
	out.write_shift(4, cell.r);
	out.write_shift(2, cell.c | (str.charAt(0) == "$" ? 0 : 1) << 14 | (str.match(/\$\d/) ? 0 : 1) << 15);
	str = parts[1];
	cell = decode_cell(str);
	out.write_shift(1, 26 | 1 << 5);
	out.write_shift(2, 2 + wb.SheetNames.map(function(n$9) {
		return n$9.toLowerCase();
	}).indexOf(sname.toLowerCase()));
	out.write_shift(4, cell.r);
	out.write_shift(2, cell.c | (str.charAt(0) == "$" ? 0 : 1) << 14 | (str.match(/\$\d/) ? 0 : 1) << 15);
	out.write_shift(1, 17);
	out.write_shift(4, 0);
	return out;
}
function write_XLSBFormulaArea3D(_str, wb) {
	var lastbang = _str.lastIndexOf("!");
	var sname = _str.slice(0, lastbang);
	_str = _str.slice(lastbang + 1);
	if (sname.charAt(0) == "'") sname = sname.slice(1, -1).replace(/''/g, "'");
	var range = decode_range(_str);
	var out = new_buf(23);
	out.write_shift(4, 15);
	out.write_shift(1, 27 | 1 << 5);
	out.write_shift(2, 2 + wb.SheetNames.map(function(n$9) {
		return n$9.toLowerCase();
	}).indexOf(sname.toLowerCase()));
	out.write_shift(4, range.s.r);
	out.write_shift(4, range.e.r);
	out.write_shift(2, range.s.c);
	out.write_shift(2, range.e.c);
	out.write_shift(4, 0);
	return out;
}
function write_XLSBFormula(val$1, wb) {
	if (typeof val$1 == "number") return write_XLSBFormulaNum(val$1);
	if (typeof val$1 == "boolean") return write_XLSBFormulaBool(val$1);
	if (/^#(DIV\/0!|GETTING_DATA|N\/A|NAME\?|NULL!|NUM!|REF!|VALUE!)$/.test(val$1)) return write_XLSBFormulaErr(+RBErr[val$1]);
	if (val$1.match(/^\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\$?(?:10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5})$/)) return write_XLSBFormulaRef(val$1);
	if (val$1.match(/^\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\$?(?:10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5}):\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\$?(?:10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5})$/)) return write_XLSBFormulaRange(val$1);
	if (val$1.match(/^#REF!\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\$?(?:10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5}):\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\$?(?:10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5})$/)) return write_XLSBFormulaArea3D(val$1, wb);
	if (val$1.match(/^(?:'[^\\\/?*\[\]:]*'|[^'][^\\\/?*\[\]:'`~!@#$%^()\-=+{}|;,<.>]*)!\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\$?(?:10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5})$/)) return write_XLSBFormulaRef3D(val$1, wb);
	if (val$1.match(/^(?:'[^\\\/?*\[\]:]*'|[^'][^\\\/?*\[\]:'`~!@#$%^()\-=+{}|;,<.>]*)!\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\$?(?:10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5}):\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\$?(?:10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5})$/)) return write_XLSBFormulaRangeWS(val$1, wb);
	if (/^(?:'[^\\\/?*\[\]:]*'|[^'][^\\\/?*\[\]:'`~!@#$%^()\-=+{}|;,<.>]*)!#REF!$/.test(val$1)) return write_XLSBFormulaRefErr3D(val$1, wb);
	if (/^".*"$/.test(val$1)) return write_XLSBFormulaStr(val$1);
	if (/^[+-]\d+$/.test(val$1)) return write_XLSBFormulaNum(parseInt(val$1, 10));
	throw "Formula |" + val$1 + "| not supported for XLSB";
}
function ods_to_csf_formula(f$4) {
	if (f$4.slice(0, 3) == "of:") f$4 = f$4.slice(3);
	if (f$4.charCodeAt(0) == 61) {
		f$4 = f$4.slice(1);
		if (f$4.charCodeAt(0) == 61) f$4 = f$4.slice(1);
	}
	f$4 = f$4.replace(/COM\.MICROSOFT\./g, "");
	f$4 = f$4.replace(/\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g, function($$, $1) {
		return $1.replace(/\./g, "");
	});
	f$4 = f$4.replace(/\$'([^']|'')+'/g, function($$) {
		return $$.slice(1);
	});
	f$4 = f$4.replace(/\$([^\]\. #$]+)/g, function($$, $1) {
		return $1.match(/^([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])?(10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5})?$/) ? $$ : $1;
	});
	f$4 = f$4.replace(/\[.(#[A-Z]*[?!])\]/g, "$1");
	return f$4.replace(/[;~]/g, ",").replace(/\|/g, ";");
}
function csf_to_ods_formula(f$4) {
	var o$10 = "of:=" + f$4.replace(crefregex, "$1[.$2$3$4$5]").replace(/\]:\[/g, ":");
	return o$10.replace(/;/g, "|").replace(/,/g, ";");
}
function ods_to_csf_3D(r$10) {
	r$10 = r$10.replace(/\$'([^']|'')+'/g, function($$) {
		return $$.slice(1);
	});
	r$10 = r$10.replace(/\$([^\]\. #$]+)/g, function($$, $1) {
		return $1.match(/^([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])?(10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5})?$/) ? $$ : $1;
	});
	var a$2 = r$10.split(":");
	var s$5 = a$2[0].split(".")[0];
	return [s$5, a$2[0].split(".")[1] + (a$2.length > 1 ? ":" + (a$2[1].split(".")[1] || a$2[1].split(".")[0]) : "")];
}
function csf_to_ods_3D(r$10) {
	return r$10.replace(/!/, ".").replace(/:/, ":.");
}
function get_sst_id(sst, str, rev) {
	var i$7 = 0, len = sst.length;
	if (rev) {
		if (browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {
			var revarr = browser_has_Map ? rev.get(str) : rev[str];
			for (; i$7 < revarr.length; ++i$7) {
				if (sst[revarr[i$7]].t === str) {
					sst.Count++;
					return revarr[i$7];
				}
			}
		}
	} else for (; i$7 < len; ++i$7) {
		if (sst[i$7].t === str) {
			sst.Count++;
			return i$7;
		}
	}
	sst[len] = { t: str };
	sst.Count++;
	sst.Unique++;
	if (rev) {
		if (browser_has_Map) {
			if (!rev.has(str)) rev.set(str, []);
			rev.get(str).push(len);
		} else {
			if (!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];
			rev[str].push(len);
		}
	}
	return len;
}
function col_obj_w(C$2, col) {
	var p$3 = {
		min: C$2 + 1,
		max: C$2 + 1
	};
	var wch = -1;
	if (col.MDW) MDW = col.MDW;
	if (col.width != null) p$3.customWidth = 1;
	else if (col.wpx != null) wch = px2char(col.wpx);
	else if (col.wch != null) wch = col.wch;
	if (wch > -1) {
		p$3.width = char2width(wch);
		p$3.customWidth = 1;
	} else if (col.width != null) p$3.width = col.width;
	if (col.hidden) p$3.hidden = true;
	if (col.level != null) {
		p$3.outlineLevel = p$3.level = col.level;
	}
	return p$3;
}
function default_margins(margins, mode) {
	if (!margins) return;
	var defs = [
		.7,
		.7,
		.75,
		.75,
		.3,
		.3
	];
	if (mode == "xlml") defs = [
		1,
		1,
		1,
		1,
		.5,
		.5
	];
	if (margins.left == null) margins.left = defs[0];
	if (margins.right == null) margins.right = defs[1];
	if (margins.top == null) margins.top = defs[2];
	if (margins.bottom == null) margins.bottom = defs[3];
	if (margins.header == null) margins.header = defs[4];
	if (margins.footer == null) margins.footer = defs[5];
}
function get_cell_style(styles$1, cell, opts) {
	var z$2 = opts.revssf[cell.z != null ? cell.z : "General"];
	var i$7 = 60, len = styles$1.length;
	if (z$2 == null && opts.ssf) {
		for (; i$7 < 392; ++i$7) if (opts.ssf[i$7] == null) {
			SSF__load(cell.z, i$7);
			opts.ssf[i$7] = cell.z;
			opts.revssf[cell.z] = z$2 = i$7;
			break;
		}
	}
	for (i$7 = 0; i$7 != len; ++i$7) if (styles$1[i$7].numFmtId === z$2) return i$7;
	styles$1[len] = {
		numFmtId: z$2,
		fontId: 0,
		fillId: 0,
		borderId: 0,
		xfId: 0,
		applyNumberFormat: 1
	};
	return len;
}
function safe_format(p$3, fmtid, fillid, opts, themes, styles$1, date1904) {
	try {
		if (opts.cellNF) p$3.z = table_fmt[fmtid];
	} catch (e$10) {
		if (opts.WTF) throw e$10;
	}
	if (p$3.t === "z" && !opts.cellStyles) return;
	if (p$3.t === "d" && typeof p$3.v === "string") p$3.v = parseDate(p$3.v);
	if ((!opts || opts.cellText !== false) && p$3.t !== "z") try {
		if (table_fmt[fmtid] == null) SSF__load(SSFImplicit[fmtid] || "General", fmtid);
		if (p$3.t === "e") p$3.w = p$3.w || BErr[p$3.v];
		else if (fmtid === 0) {
			if (p$3.t === "n") {
				if ((p$3.v | 0) === p$3.v) p$3.w = p$3.v.toString(10);
				else p$3.w = SSF_general_num(p$3.v);
			} else if (p$3.t === "d") {
				var dd = datenum(p$3.v, !!date1904);
				if ((dd | 0) === dd) p$3.w = dd.toString(10);
				else p$3.w = SSF_general_num(dd);
			} else if (p$3.v === undefined) return "";
			else p$3.w = SSF_general(p$3.v, _ssfopts);
		} else if (p$3.t === "d") p$3.w = SSF_format(fmtid, datenum(p$3.v, !!date1904), _ssfopts);
		else p$3.w = SSF_format(fmtid, p$3.v, _ssfopts);
	} catch (e$10) {
		if (opts.WTF) throw e$10;
	}
	if (!opts.cellStyles) return;
	if (fillid != null) try {
		p$3.s = styles$1.Fills[fillid];
		if (p$3.s.fgColor && p$3.s.fgColor.theme && !p$3.s.fgColor.rgb) {
			p$3.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p$3.s.fgColor.theme].rgb, p$3.s.fgColor.tint || 0);
			if (opts.WTF) p$3.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p$3.s.fgColor.theme].rgb;
		}
		if (p$3.s.bgColor && p$3.s.bgColor.theme) {
			p$3.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p$3.s.bgColor.theme].rgb, p$3.s.bgColor.tint || 0);
			if (opts.WTF) p$3.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p$3.s.bgColor.theme].rgb;
		}
	} catch (e$10) {
		if (opts.WTF && styles$1.Fills) throw e$10;
	}
}
function check_ws(ws, sname, i$7) {
	if (ws && ws["!ref"]) {
		var range = safe_decode_range(ws["!ref"]);
		if (range.e.c < range.s.c || range.e.r < range.s.r) throw new Error("Bad range (" + i$7 + "): " + ws["!ref"]);
	}
}
function parse_ws_xml_dim(ws, s$5) {
	var d$5 = safe_decode_range(s$5);
	if (d$5.s.r <= d$5.e.r && d$5.s.c <= d$5.e.c && d$5.s.r >= 0 && d$5.s.c >= 0) ws["!ref"] = encode_range(d$5);
}
function parse_ws_xml(data, opts, idx, rels, wb, themes, styles$1) {
	if (!data) return data;
	if (!rels) rels = { "!id": {} };
	if (DENSE != null && opts.dense == null) opts.dense = DENSE;
	var s$5 = {};
	if (opts.dense) s$5["!data"] = [];
	var refguess = {
		s: {
			r: 2e6,
			c: 2e6
		},
		e: {
			r: 0,
			c: 0
		}
	};
	var data1 = "", data2 = "";
	var mtch = str_match_xml_ns(data, "sheetData");
	if (mtch) {
		data1 = data.slice(0, mtch.index);
		data2 = data.slice(mtch.index + mtch[0].length);
	} else data1 = data2 = data;
	var sheetPr = data1.match(sheetprregex);
	if (sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s$5, wb, idx);
	else if (sheetPr = str_match_xml_ns(data1, "sheetPr")) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1] || "", s$5, wb, idx, styles$1, themes);
	var ridx = (data1.match(/<(?:\w*:)?dimension/) || { index: -1 }).index;
	if (ridx > 0) {
		var ref = data1.slice(ridx, ridx + 50).match(dimregex);
		if (ref && !(opts && opts.nodim)) parse_ws_xml_dim(s$5, ref[1]);
	}
	var svs = str_match_xml_ns(data1, "sheetViews");
	if (svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);
	var columns = [];
	if (opts.cellStyles) {
		var cols = data1.match(colregex);
		if (cols) parse_ws_xml_cols(columns, cols);
	}
	if (mtch) parse_ws_xml_data(mtch[1], s$5, opts, refguess, themes, styles$1, wb);
	var afilter = data2.match(afregex);
	if (afilter) s$5["!autofilter"] = parse_ws_xml_autofilter(afilter[0]);
	var merges = [];
	var _merge = data2.match(mergecregex);
	if (_merge) for (ridx = 0; ridx != _merge.length; ++ridx) merges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf("=") + 2));
	var hlink = data2.match(hlinkregex);
	if (hlink) parse_ws_xml_hlinks(s$5, hlink, rels);
	var margins = data2.match(marginregex);
	if (margins) s$5["!margins"] = parse_ws_xml_margins(parsexmltag(margins[0]));
	var m$3;
	if (m$3 = data2.match(/legacyDrawing r:id="(.*?)"/)) s$5["!legrel"] = m$3[1];
	if (opts && opts.nodim) refguess.s.c = refguess.s.r = 0;
	if (!s$5["!ref"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s$5["!ref"] = encode_range(refguess);
	if (opts.sheetRows > 0 && s$5["!ref"]) {
		var tmpref = safe_decode_range(s$5["!ref"]);
		if (opts.sheetRows <= +tmpref.e.r) {
			tmpref.e.r = opts.sheetRows - 1;
			if (tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;
			if (tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;
			if (tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;
			if (tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;
			s$5["!fullref"] = s$5["!ref"];
			s$5["!ref"] = encode_range(tmpref);
		}
	}
	if (columns.length > 0) s$5["!cols"] = columns;
	if (merges.length > 0) s$5["!merges"] = merges;
	if (rels["!id"][s$5["!legrel"]]) s$5["!legdrawel"] = rels["!id"][s$5["!legrel"]];
	return s$5;
}
function write_ws_xml_merges(merges) {
	if (merges.length === 0) return "";
	var o$10 = "<mergeCells count=\"" + merges.length + "\">";
	for (var i$7 = 0; i$7 != merges.length; ++i$7) o$10 += "<mergeCell ref=\"" + encode_range(merges[i$7]) + "\"/>";
	return o$10 + "</mergeCells>";
}
function parse_ws_xml_sheetpr(sheetPr, s$5, wb, idx) {
	var data = parsexmltag(sheetPr);
	if (!wb.Sheets[idx]) wb.Sheets[idx] = {};
	if (data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));
}
function parse_ws_xml_sheetpr2(sheetPr, body, s$5, wb, idx) {
	parse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(">")), s$5, wb, idx);
}
function write_ws_xml_sheetpr(ws, wb, idx, opts, o$10) {
	var needed = false;
	var props = {}, payload = null;
	if (opts.bookType !== "xlsx" && wb.vbaraw) {
		var cname = wb.SheetNames[idx];
		try {
			if (wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname;
		} catch (e$10) {}
		needed = true;
		props.codeName = utf8write(escapexml(cname));
	}
	if (ws && ws["!outline"]) {
		var outlineprops = {
			summaryBelow: 1,
			summaryRight: 1
		};
		if (ws["!outline"].above) outlineprops.summaryBelow = 0;
		if (ws["!outline"].left) outlineprops.summaryRight = 0;
		payload = (payload || "") + writextag("outlinePr", null, outlineprops);
	}
	if (!needed && !payload) return;
	o$10[o$10.length] = writextag("sheetPr", payload, props);
}
function write_ws_xml_protection(sp) {
	var o$10 = { sheet: 1 };
	sheetprot_deffalse.forEach(function(n$9) {
		if (sp[n$9] != null && sp[n$9]) o$10[n$9] = "1";
	});
	sheetprot_deftrue.forEach(function(n$9) {
		if (sp[n$9] != null && !sp[n$9]) o$10[n$9] = "0";
	});
	if (sp.password) o$10.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();
	return writextag("sheetProtection", null, o$10);
}
function parse_ws_xml_hlinks(s$5, data, rels) {
	var dense = s$5["!data"] != null;
	for (var i$7 = 0; i$7 != data.length; ++i$7) {
		var val$1 = parsexmltag(utf8read(data[i$7]), true);
		if (!val$1.ref) return;
		var rel$1 = ((rels || {})["!id"] || [])[val$1.id];
		if (rel$1) {
			val$1.Target = rel$1.Target;
			if (val$1.location) val$1.Target += "#" + unescapexml(val$1.location);
		} else {
			val$1.Target = "#" + unescapexml(val$1.location);
			rel$1 = {
				Target: val$1.Target,
				TargetMode: "Internal"
			};
		}
		val$1.Rel = rel$1;
		if (val$1.tooltip) {
			val$1.Tooltip = val$1.tooltip;
			delete val$1.tooltip;
		}
		var rng = safe_decode_range(val$1.ref);
		for (var R$1 = rng.s.r; R$1 <= rng.e.r; ++R$1) for (var C$2 = rng.s.c; C$2 <= rng.e.c; ++C$2) {
			var addr = encode_col(C$2) + encode_row(R$1);
			if (dense) {
				if (!s$5["!data"][R$1]) s$5["!data"][R$1] = [];
				if (!s$5["!data"][R$1][C$2]) s$5["!data"][R$1][C$2] = {
					t: "z",
					v: undefined
				};
				s$5["!data"][R$1][C$2].l = val$1;
			} else {
				if (!s$5[addr]) s$5[addr] = {
					t: "z",
					v: undefined
				};
				s$5[addr].l = val$1;
			}
		}
	}
}
function parse_ws_xml_margins(margin) {
	var o$10 = {};
	[
		"left",
		"right",
		"top",
		"bottom",
		"header",
		"footer"
	].forEach(function(k$2) {
		if (margin[k$2]) o$10[k$2] = parseFloat(margin[k$2]);
	});
	return o$10;
}
function write_ws_xml_margins(margin) {
	default_margins(margin);
	return writextag("pageMargins", null, margin);
}
function parse_ws_xml_cols(columns, cols) {
	var seencol = false;
	for (var coli = 0; coli != cols.length; ++coli) {
		var coll = parsexmltag(cols[coli], true);
		if (coll.hidden) coll.hidden = parsexmlbool(coll.hidden);
		var colm = parseInt(coll.min, 10) - 1, colM = parseInt(coll.max, 10) - 1;
		if (coll.outlineLevel) coll.level = +coll.outlineLevel || 0;
		delete coll.min;
		delete coll.max;
		coll.width = +coll.width;
		if (!seencol && coll.width) {
			seencol = true;
			find_mdw_colw(coll.width);
		}
		process_col(coll);
		while (colm <= colM) columns[colm++] = dup(coll);
	}
}
function write_ws_xml_cols(ws, cols) {
	var o$10 = ["<cols>"], col;
	for (var i$7 = 0; i$7 != cols.length; ++i$7) {
		if (!(col = cols[i$7])) continue;
		o$10[o$10.length] = writextag("col", null, col_obj_w(i$7, col));
	}
	o$10[o$10.length] = "</cols>";
	return o$10.join("");
}
function parse_ws_xml_autofilter(data) {
	var o$10 = { ref: (data.match(/ref="([^"]*)"/) || [])[1] };
	return o$10;
}
function write_ws_xml_autofilter(data, ws, wb, idx) {
	var ref = typeof data.ref == "string" ? data.ref : encode_range(data.ref);
	if (!wb.Workbook) wb.Workbook = { Sheets: [] };
	if (!wb.Workbook.Names) wb.Workbook.Names = [];
	var names = wb.Workbook.Names;
	var range = decode_range(ref);
	if (range.s.r == range.e.r) {
		range.e.r = decode_range(ws["!ref"]).e.r;
		ref = encode_range(range);
	}
	for (var i$7 = 0; i$7 < names.length; ++i$7) {
		var name = names[i$7];
		if (name.Name != "_xlnm._FilterDatabase") continue;
		if (name.Sheet != idx) continue;
		name.Ref = formula_quote_sheet_name(wb.SheetNames[idx]) + "!" + fix_range(ref);
		break;
	}
	if (i$7 == names.length) names.push({
		Name: "_xlnm._FilterDatabase",
		Sheet: idx,
		Ref: "'" + wb.SheetNames[idx] + "'!" + ref
	});
	return writextag("autoFilter", null, { ref });
}
function parse_ws_xml_sheetviews(data, wb) {
	if (!wb.Views) wb.Views = [{}];
	(data.match(sviewregex) || []).forEach(function(r$10, i$7) {
		var tag = parsexmltag(r$10);
		if (!wb.Views[i$7]) wb.Views[i$7] = {};
		if (+tag.zoomScale) wb.Views[i$7].zoom = +tag.zoomScale;
		if (tag.rightToLeft && parsexmlbool(tag.rightToLeft)) wb.Views[i$7].RTL = true;
	});
}
function write_ws_xml_sheetviews(ws, opts, idx, wb) {
	var sview = { workbookViewId: "0" };
	if ((((wb || {}).Workbook || {}).Views || [])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? "1" : "0";
	return writextag("sheetViews", writextag("sheetView", null, sview), {});
}
function write_ws_xml_cell(cell, ref, ws, opts, idx, wb, date1904) {
	if (cell.c) ws["!comments"].push([ref, cell.c]);
	if ((cell.v === undefined || cell.t === "z" && !(opts || {}).sheetStubs) && typeof cell.f !== "string" && typeof cell.z == "undefined") return "";
	var vv = "";
	var oldt = cell.t, oldv = cell.v;
	if (cell.t !== "z") switch (cell.t) {
		case "b":
			vv = cell.v ? "1" : "0";
			break;
		case "n":
			if (isNaN(cell.v)) {
				cell.t = "e";
				vv = BErr[cell.v = 36];
			} else if (!isFinite(cell.v)) {
				cell.t = "e";
				vv = BErr[cell.v = 7];
			} else vv = "" + cell.v;
			break;
		case "e":
			vv = BErr[cell.v];
			break;
		case "d":
			if (opts && opts.cellDates) {
				var _vv = parseDate(cell.v, date1904);
				vv = _vv.toISOString();
				if (_vv.getUTCFullYear() < 1900) vv = vv.slice(vv.indexOf("T") + 1).replace("Z", "");
			} else {
				cell = dup(cell);
				cell.t = "n";
				vv = "" + (cell.v = datenum(parseDate(cell.v, date1904), date1904));
			}
			if (typeof cell.z === "undefined") cell.z = table_fmt[14];
			break;
		default:
			vv = cell.v;
			break;
	}
	var v$3 = cell.t == "z" || cell.v == null ? "" : writetag("v", escapexml(vv)), o$10 = { r: ref };
	var os = get_cell_style(opts.cellXfs, cell, opts);
	if (os !== 0) o$10.s = os;
	switch (cell.t) {
		case "n": break;
		case "d":
			o$10.t = "d";
			break;
		case "b":
			o$10.t = "b";
			break;
		case "e":
			o$10.t = "e";
			break;
		case "z": break;
		default:
			if (cell.v == null) {
				delete cell.t;
				break;
			}
			if (cell.v.length > 32767) throw new Error("Text length must not exceed 32767 characters");
			if (opts && opts.bookSST) {
				v$3 = writetag("v", "" + get_sst_id(opts.Strings, cell.v, opts.revStrings));
				o$10.t = "s";
				break;
			} else o$10.t = "str";
			break;
	}
	if (cell.t != oldt) {
		cell.t = oldt;
		cell.v = oldv;
	}
	if (typeof cell.f == "string" && cell.f) {
		var ff = cell.F && cell.F.slice(0, ref.length) == ref ? {
			t: "array",
			ref: cell.F
		} : null;
		v$3 = writextag("f", escapexml(cell.f), ff) + (cell.v != null ? v$3 : "");
	}
	if (cell.l) {
		cell.l.display = escapexml(vv);
		ws["!links"].push([ref, cell.l]);
	}
	if (cell.D) o$10.cm = 1;
	return writextag("c", v$3, o$10);
}
function write_ws_xml_data(ws, opts, idx, wb) {
	var o$10 = [], r$10 = [], range = safe_decode_range(ws["!ref"]), cell = "", ref, rr = "", cols = [], R$1 = 0, C$2 = 0, rows = ws["!rows"];
	var dense = ws["!data"] != null, data = dense ? ws["!data"] : [];
	var params = { r: rr }, row, height = -1;
	var date1904 = (((wb || {}).Workbook || {}).WBProps || {}).date1904;
	for (C$2 = range.s.c; C$2 <= range.e.c; ++C$2) cols[C$2] = encode_col(C$2);
	for (R$1 = range.s.r; R$1 <= range.e.r; ++R$1) {
		r$10 = [];
		rr = encode_row(R$1);
		var data_R = dense ? data[R$1] : [];
		for (C$2 = range.s.c; C$2 <= range.e.c; ++C$2) {
			ref = cols[C$2] + rr;
			var _cell = dense ? data_R[C$2] : ws[ref];
			if (_cell === undefined) continue;
			if ((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb, date1904)) != null) r$10.push(cell);
		}
		if (r$10.length > 0 || rows && rows[R$1]) {
			params = { r: rr };
			if (rows && rows[R$1]) {
				row = rows[R$1];
				if (row.hidden) params.hidden = 1;
				height = -1;
				if (row.hpx) height = px2pt(row.hpx);
				else if (row.hpt) height = row.hpt;
				if (height > -1) {
					params.ht = height;
					params.customHeight = 1;
				}
				if (row.level) {
					params.outlineLevel = row.level;
				}
			}
			o$10[o$10.length] = writextag("row", r$10.join(""), params);
		}
	}
	if (rows) for (; R$1 < rows.length; ++R$1) {
		if (rows && rows[R$1]) {
			params = { r: R$1 + 1 };
			row = rows[R$1];
			if (row.hidden) params.hidden = 1;
			height = -1;
			if (row.hpx) height = px2pt(row.hpx);
			else if (row.hpt) height = row.hpt;
			if (height > -1) {
				params.ht = height;
				params.customHeight = 1;
			}
			if (row.level) {
				params.outlineLevel = row.level;
			}
			o$10[o$10.length] = writextag("row", "", params);
		}
	}
	return o$10.join("");
}
function write_ws_xml(idx, opts, wb, rels) {
	var o$10 = [XML_HEADER, writextag("worksheet", null, {
		"xmlns": XMLNS_main[0],
		"xmlns:r": XMLNS.r
	})];
	var s$5 = wb.SheetNames[idx], sidx = 0, rdata = "";
	var ws = wb.Sheets[s$5];
	if (ws == null) ws = {};
	var ref = ws["!ref"] || "A1";
	var range = safe_decode_range(ref);
	if (range.e.c > 16383 || range.e.r > 1048575) {
		if (opts.WTF) throw new Error("Range " + ref + " exceeds format limit A1:XFD1048576");
		range.e.c = Math.min(range.e.c, 16383);
		range.e.r = Math.min(range.e.c, 1048575);
		ref = encode_range(range);
	}
	if (!rels) rels = {};
	ws["!comments"] = [];
	var _drawing = [];
	write_ws_xml_sheetpr(ws, wb, idx, opts, o$10);
	o$10[o$10.length] = writextag("dimension", null, { "ref": ref });
	o$10[o$10.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);
	if (opts.sheetFormat) o$10[o$10.length] = writextag("sheetFormatPr", null, {
		defaultRowHeight: opts.sheetFormat.defaultRowHeight || "16",
		baseColWidth: opts.sheetFormat.baseColWidth || "10",
		outlineLevelRow: opts.sheetFormat.outlineLevelRow || "7"
	});
	if (ws["!cols"] != null && ws["!cols"].length > 0) o$10[o$10.length] = write_ws_xml_cols(ws, ws["!cols"]);
	o$10[sidx = o$10.length] = "<sheetData/>";
	ws["!links"] = [];
	if (ws["!ref"] != null) {
		rdata = write_ws_xml_data(ws, opts, idx, wb, rels);
		if (rdata.length > 0) o$10[o$10.length] = rdata;
	}
	if (o$10.length > sidx + 1) {
		o$10[o$10.length] = "</sheetData>";
		o$10[sidx] = o$10[sidx].replace("/>", ">");
	}
	if (ws["!protect"]) o$10[o$10.length] = write_ws_xml_protection(ws["!protect"]);
	if (ws["!autofilter"] != null) o$10[o$10.length] = write_ws_xml_autofilter(ws["!autofilter"], ws, wb, idx);
	if (ws["!merges"] != null && ws["!merges"].length > 0) o$10[o$10.length] = write_ws_xml_merges(ws["!merges"]);
	var relc = -1, rel$1, rId = -1;
	if (ws["!links"].length > 0) {
		o$10[o$10.length] = "<hyperlinks>";
		ws["!links"].forEach(function(l$3) {
			if (!l$3[1].Target) return;
			rel$1 = { "ref": l$3[0] };
			if (l$3[1].Target.charAt(0) != "#") {
				rId = add_rels(rels, -1, escapexml(l$3[1].Target).replace(/#[\s\S]*$/, ""), RELS.HLINK);
				rel$1["r:id"] = "rId" + rId;
			}
			if ((relc = l$3[1].Target.indexOf("#")) > -1) rel$1.location = escapexml(l$3[1].Target.slice(relc + 1));
			if (l$3[1].Tooltip) rel$1.tooltip = escapexml(l$3[1].Tooltip);
			rel$1.display = l$3[1].display;
			o$10[o$10.length] = writextag("hyperlink", null, rel$1);
		});
		o$10[o$10.length] = "</hyperlinks>";
	}
	delete ws["!links"];
	if (ws["!margins"] != null) o$10[o$10.length] = write_ws_xml_margins(ws["!margins"]);
	if (!opts || opts.ignoreEC || opts.ignoreEC == void 0) o$10[o$10.length] = writetag("ignoredErrors", writextag("ignoredError", null, {
		numberStoredAsText: 1,
		sqref: ref
	}));
	if (_drawing.length > 0) {
		rId = add_rels(rels, -1, "../drawings/drawing" + (idx + 1) + ".xml", RELS.DRAW);
		o$10[o$10.length] = writextag("drawing", null, { "r:id": "rId" + rId });
		ws["!drawing"] = _drawing;
	}
	if (ws["!comments"].length > 0) {
		rId = add_rels(rels, -1, "../drawings/vmlDrawing" + (idx + 1) + ".vml", RELS.VML);
		o$10[o$10.length] = writextag("legacyDrawing", null, { "r:id": "rId" + rId });
		ws["!legacy"] = rId;
	}
	if (o$10.length > 1) {
		o$10[o$10.length] = "</worksheet>";
		o$10[1] = o$10[1].replace("/>", ">");
	}
	return o$10.join("");
}
function parse_BrtRowHdr(data, length) {
	var z$2 = {};
	var tgt = data.l + length;
	z$2.r = data.read_shift(4);
	data.l += 4;
	var miyRw = data.read_shift(2);
	data.l += 1;
	var flags = data.read_shift(1);
	data.l = tgt;
	if (flags & 7) z$2.level = flags & 7;
	if (flags & 16) z$2.hidden = true;
	if (flags & 32) z$2.hpt = miyRw / 20;
	return z$2;
}
function write_BrtRowHdr(R$1, range, ws) {
	var o$10 = new_buf(17 + 8 * 16);
	var row = (ws["!rows"] || [])[R$1] || {};
	o$10.write_shift(4, R$1);
	o$10.write_shift(4, 0);
	var miyRw = 320;
	if (row.hpx) miyRw = px2pt(row.hpx) * 20;
	else if (row.hpt) miyRw = row.hpt * 20;
	o$10.write_shift(2, miyRw);
	o$10.write_shift(1, 0);
	var flags = 0;
	if (row.level) flags |= row.level;
	if (row.hidden) flags |= 16;
	if (row.hpx || row.hpt) flags |= 32;
	o$10.write_shift(1, flags);
	o$10.write_shift(1, 0);
	var ncolspan = 0, lcs = o$10.l;
	o$10.l += 4;
	var caddr = {
		r: R$1,
		c: 0
	};
	var dense = ws["!data"] != null;
	for (var i$7 = 0; i$7 < 16; ++i$7) {
		if (range.s.c > i$7 + 1 << 10 || range.e.c < i$7 << 10) continue;
		var first = -1, last = -1;
		for (var j$2 = i$7 << 10; j$2 < i$7 + 1 << 10; ++j$2) {
			caddr.c = j$2;
			var cell = dense ? (ws["!data"][caddr.r] || [])[caddr.c] : ws[encode_cell(caddr)];
			if (cell) {
				if (first < 0) first = j$2;
				last = j$2;
			}
		}
		if (first < 0) continue;
		++ncolspan;
		o$10.write_shift(4, first);
		o$10.write_shift(4, last);
	}
	var l$3 = o$10.l;
	o$10.l = lcs;
	o$10.write_shift(4, ncolspan);
	o$10.l = l$3;
	return o$10.length > o$10.l ? o$10.slice(0, o$10.l) : o$10;
}
function write_row_header(ba, ws, range, R$1) {
	var o$10 = write_BrtRowHdr(R$1, range, ws);
	if (o$10.length > 17 || (ws["!rows"] || [])[R$1]) write_record(ba, 0, o$10);
}
function parse_BrtWsFmtInfo() {}
function parse_BrtWsProp(data, length) {
	var z$2 = {};
	var f$4 = data[data.l];
	++data.l;
	z$2.above = !(f$4 & 64);
	z$2.left = !(f$4 & 128);
	data.l += 18;
	z$2.name = parse_XLSBCodeName(data, length - 19);
	return z$2;
}
function write_BrtWsProp(str, outl, o$10) {
	if (o$10 == null) o$10 = new_buf(84 + 4 * str.length);
	var f$4 = 192;
	if (outl) {
		if (outl.above) f$4 &= ~64;
		if (outl.left) f$4 &= ~128;
	}
	o$10.write_shift(1, f$4);
	for (var i$7 = 1; i$7 < 3; ++i$7) o$10.write_shift(1, 0);
	write_BrtColor({ auto: 1 }, o$10);
	o$10.write_shift(-4, -1);
	o$10.write_shift(-4, -1);
	write_XLSBCodeName(str, o$10);
	return o$10.slice(0, o$10.l);
}
function parse_BrtCellBlank(data) {
	var cell = parse_XLSBCell(data);
	return [cell];
}
function write_BrtCellBlank(cell, ncell, o$10) {
	if (o$10 == null) o$10 = new_buf(8);
	return write_XLSBCell(ncell, o$10);
}
function parse_BrtShortBlank(data) {
	var cell = parse_XLSBShortCell(data);
	return [cell];
}
function write_BrtShortBlank(cell, ncell, o$10) {
	if (o$10 == null) o$10 = new_buf(4);
	return write_XLSBShortCell(ncell, o$10);
}
function parse_BrtCellBool(data) {
	var cell = parse_XLSBCell(data);
	var fBool = data.read_shift(1);
	return [
		cell,
		fBool,
		"b"
	];
}
function write_BrtCellBool(cell, ncell, o$10) {
	if (o$10 == null) o$10 = new_buf(9);
	write_XLSBCell(ncell, o$10);
	o$10.write_shift(1, cell.v ? 1 : 0);
	return o$10;
}
function parse_BrtShortBool(data) {
	var cell = parse_XLSBShortCell(data);
	var fBool = data.read_shift(1);
	return [
		cell,
		fBool,
		"b"
	];
}
function write_BrtShortBool(cell, ncell, o$10) {
	if (o$10 == null) o$10 = new_buf(5);
	write_XLSBShortCell(ncell, o$10);
	o$10.write_shift(1, cell.v ? 1 : 0);
	return o$10;
}
function parse_BrtCellError(data) {
	var cell = parse_XLSBCell(data);
	var bError = data.read_shift(1);
	return [
		cell,
		bError,
		"e"
	];
}
function write_BrtCellError(cell, ncell, o$10) {
	if (o$10 == null) o$10 = new_buf(9);
	write_XLSBCell(ncell, o$10);
	o$10.write_shift(1, cell.v);
	return o$10;
}
function parse_BrtShortError(data) {
	var cell = parse_XLSBShortCell(data);
	var bError = data.read_shift(1);
	return [
		cell,
		bError,
		"e"
	];
}
function write_BrtShortError(cell, ncell, o$10) {
	if (o$10 == null) o$10 = new_buf(8);
	write_XLSBShortCell(ncell, o$10);
	o$10.write_shift(1, cell.v);
	o$10.write_shift(2, 0);
	o$10.write_shift(1, 0);
	return o$10;
}
function parse_BrtCellIsst(data) {
	var cell = parse_XLSBCell(data);
	var isst = data.read_shift(4);
	return [
		cell,
		isst,
		"s"
	];
}
function write_BrtCellIsst(cell, ncell, o$10) {
	if (o$10 == null) o$10 = new_buf(12);
	write_XLSBCell(ncell, o$10);
	o$10.write_shift(4, ncell.v);
	return o$10;
}
function parse_BrtShortIsst(data) {
	var cell = parse_XLSBShortCell(data);
	var isst = data.read_shift(4);
	return [
		cell,
		isst,
		"s"
	];
}
function write_BrtShortIsst(cell, ncell, o$10) {
	if (o$10 == null) o$10 = new_buf(8);
	write_XLSBShortCell(ncell, o$10);
	o$10.write_shift(4, ncell.v);
	return o$10;
}
function parse_BrtCellReal(data) {
	var cell = parse_XLSBCell(data);
	var value = parse_Xnum(data);
	return [
		cell,
		value,
		"n"
	];
}
function write_BrtCellReal(cell, ncell, o$10) {
	if (o$10 == null) o$10 = new_buf(16);
	write_XLSBCell(ncell, o$10);
	write_Xnum(cell.v, o$10);
	return o$10;
}
function parse_BrtShortReal(data) {
	var cell = parse_XLSBShortCell(data);
	var value = parse_Xnum(data);
	return [
		cell,
		value,
		"n"
	];
}
function write_BrtShortReal(cell, ncell, o$10) {
	if (o$10 == null) o$10 = new_buf(12);
	write_XLSBShortCell(ncell, o$10);
	write_Xnum(cell.v, o$10);
	return o$10;
}
function parse_BrtCellRk(data) {
	var cell = parse_XLSBCell(data);
	var value = parse_RkNumber(data);
	return [
		cell,
		value,
		"n"
	];
}
function write_BrtCellRk(cell, ncell, o$10) {
	if (o$10 == null) o$10 = new_buf(12);
	write_XLSBCell(ncell, o$10);
	write_RkNumber(cell.v, o$10);
	return o$10;
}
function parse_BrtShortRk(data) {
	var cell = parse_XLSBShortCell(data);
	var value = parse_RkNumber(data);
	return [
		cell,
		value,
		"n"
	];
}
function write_BrtShortRk(cell, ncell, o$10) {
	if (o$10 == null) o$10 = new_buf(8);
	write_XLSBShortCell(ncell, o$10);
	write_RkNumber(cell.v, o$10);
	return o$10;
}
function parse_BrtCellRString(data) {
	var cell = parse_XLSBCell(data);
	var value = parse_RichStr(data);
	return [
		cell,
		value,
		"is"
	];
}
function parse_BrtCellSt(data) {
	var cell = parse_XLSBCell(data);
	var value = parse_XLWideString(data);
	return [
		cell,
		value,
		"str"
	];
}
function write_BrtCellSt(cell, ncell, o$10) {
	var data = cell.v == null ? "" : String(cell.v);
	if (o$10 == null) o$10 = new_buf(12 + 4 * cell.v.length);
	write_XLSBCell(ncell, o$10);
	write_XLWideString(data, o$10);
	return o$10.length > o$10.l ? o$10.slice(0, o$10.l) : o$10;
}
function parse_BrtShortSt(data) {
	var cell = parse_XLSBShortCell(data);
	var value = parse_XLWideString(data);
	return [
		cell,
		value,
		"str"
	];
}
function write_BrtShortSt(cell, ncell, o$10) {
	var data = cell.v == null ? "" : String(cell.v);
	if (o$10 == null) o$10 = new_buf(8 + 4 * data.length);
	write_XLSBShortCell(ncell, o$10);
	write_XLWideString(data, o$10);
	return o$10.length > o$10.l ? o$10.slice(0, o$10.l) : o$10;
}
function parse_BrtFmlaBool(data, length, opts) {
	var end = data.l + length;
	var cell = parse_XLSBCell(data);
	cell.r = opts["!row"];
	var value = data.read_shift(1);
	var o$10 = [
		cell,
		value,
		"b"
	];
	if (opts.cellFormula) {
		data.l += 2;
		var formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);
		o$10[3] = stringify_formula(formula, null, cell, opts.supbooks, opts);
	} else data.l = end;
	return o$10;
}
function parse_BrtFmlaError(data, length, opts) {
	var end = data.l + length;
	var cell = parse_XLSBCell(data);
	cell.r = opts["!row"];
	var value = data.read_shift(1);
	var o$10 = [
		cell,
		value,
		"e"
	];
	if (opts.cellFormula) {
		data.l += 2;
		var formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);
		o$10[3] = stringify_formula(formula, null, cell, opts.supbooks, opts);
	} else data.l = end;
	return o$10;
}
function parse_BrtFmlaNum(data, length, opts) {
	var end = data.l + length;
	var cell = parse_XLSBCell(data);
	cell.r = opts["!row"];
	var value = parse_Xnum(data);
	var o$10 = [
		cell,
		value,
		"n"
	];
	if (opts.cellFormula) {
		data.l += 2;
		var formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);
		o$10[3] = stringify_formula(formula, null, cell, opts.supbooks, opts);
	} else data.l = end;
	return o$10;
}
function parse_BrtFmlaString(data, length, opts) {
	var end = data.l + length;
	var cell = parse_XLSBCell(data);
	cell.r = opts["!row"];
	var value = parse_XLWideString(data);
	var o$10 = [
		cell,
		value,
		"str"
	];
	if (opts.cellFormula) {
		data.l += 2;
		var formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);
		o$10[3] = stringify_formula(formula, null, cell, opts.supbooks, opts);
	} else data.l = end;
	return o$10;
}
function write_BrtBeginMergeCells(cnt, o$10) {
	if (o$10 == null) o$10 = new_buf(4);
	o$10.write_shift(4, cnt);
	return o$10;
}
function parse_BrtHLink(data, length) {
	var end = data.l + length;
	var rfx = parse_UncheckedRfX(data, 16);
	var relId = parse_XLNullableWideString(data);
	var loc = parse_XLWideString(data);
	var tooltip = parse_XLWideString(data);
	var display = parse_XLWideString(data);
	data.l = end;
	var o$10 = {
		rfx,
		relId,
		loc,
		display
	};
	if (tooltip) o$10.Tooltip = tooltip;
	return o$10;
}
function write_BrtHLink(l$3, rId) {
	var o$10 = new_buf(50 + 4 * (l$3[1].Target.length + (l$3[1].Tooltip || "").length));
	write_UncheckedRfX({
		s: decode_cell(l$3[0]),
		e: decode_cell(l$3[0])
	}, o$10);
	write_RelID("rId" + rId, o$10);
	var locidx = l$3[1].Target.indexOf("#");
	var loc = locidx == -1 ? "" : l$3[1].Target.slice(locidx + 1);
	write_XLWideString(loc || "", o$10);
	write_XLWideString(l$3[1].Tooltip || "", o$10);
	write_XLWideString("", o$10);
	return o$10.slice(0, o$10.l);
}
function parse_BrtPane() {}
function parse_BrtArrFmla(data, length, opts) {
	var end = data.l + length;
	var rfx = parse_RfX(data, 16);
	var fAlwaysCalc = data.read_shift(1);
	var o$10 = [rfx];
	o$10[2] = fAlwaysCalc;
	if (opts.cellFormula) {
		var formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);
		o$10[1] = formula;
	} else data.l = end;
	return o$10;
}
function parse_BrtShrFmla(data, length, opts) {
	var end = data.l + length;
	var rfx = parse_UncheckedRfX(data, 16);
	var o$10 = [rfx];
	if (opts.cellFormula) {
		var formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);
		o$10[1] = formula;
		data.l = end;
	} else data.l = end;
	return o$10;
}
function write_BrtColInfo(C$2, col, o$10) {
	if (o$10 == null) o$10 = new_buf(18);
	var p$3 = col_obj_w(C$2, col);
	o$10.write_shift(-4, C$2);
	o$10.write_shift(-4, C$2);
	o$10.write_shift(4, (p$3.width || 10) * 256);
	o$10.write_shift(4, 0);
	var flags = 0;
	if (col.hidden) flags |= 1;
	if (typeof p$3.width == "number") flags |= 2;
	if (col.level) flags |= col.level << 8;
	o$10.write_shift(2, flags);
	return o$10;
}
function parse_BrtMargins(data) {
	var margins = {};
	BrtMarginKeys.forEach(function(k$2) {
		margins[k$2] = parse_Xnum(data, 8);
	});
	return margins;
}
function write_BrtMargins(margins, o$10) {
	if (o$10 == null) o$10 = new_buf(6 * 8);
	default_margins(margins);
	BrtMarginKeys.forEach(function(k$2) {
		write_Xnum(margins[k$2], o$10);
	});
	return o$10;
}
function parse_BrtBeginWsView(data) {
	var f$4 = data.read_shift(2);
	data.l += 28;
	return { RTL: f$4 & 32 };
}
function write_BrtBeginWsView(ws, Workbook, o$10) {
	if (o$10 == null) o$10 = new_buf(30);
	var f$4 = 924;
	if ((((Workbook || {}).Views || [])[0] || {}).RTL) f$4 |= 32;
	o$10.write_shift(2, f$4);
	o$10.write_shift(4, 0);
	o$10.write_shift(4, 0);
	o$10.write_shift(4, 0);
	o$10.write_shift(1, 0);
	o$10.write_shift(1, 0);
	o$10.write_shift(2, 0);
	o$10.write_shift(2, 100);
	o$10.write_shift(2, 0);
	o$10.write_shift(2, 0);
	o$10.write_shift(2, 0);
	o$10.write_shift(4, 0);
	return o$10;
}
function write_BrtCellIgnoreEC(ref) {
	var o$10 = new_buf(24);
	o$10.write_shift(4, 4);
	o$10.write_shift(4, 1);
	write_UncheckedRfX(ref, o$10);
	return o$10;
}
function write_BrtSheetProtection(sp, o$10) {
	if (o$10 == null) o$10 = new_buf(16 * 4 + 2);
	o$10.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);
	o$10.write_shift(4, 1);
	[
		["objects", false],
		["scenarios", false],
		["formatCells", true],
		["formatColumns", true],
		["formatRows", true],
		["insertColumns", true],
		["insertRows", true],
		["insertHyperlinks", true],
		["deleteColumns", true],
		["deleteRows", true],
		["selectLockedCells", false],
		["sort", true],
		["autoFilter", true],
		["pivotTables", true],
		["selectUnlockedCells", false]
	].forEach(function(n$9) {
		if (n$9[1]) o$10.write_shift(4, sp[n$9[0]] != null && !sp[n$9[0]] ? 1 : 0);
		else o$10.write_shift(4, sp[n$9[0]] != null && sp[n$9[0]] ? 0 : 1);
	});
	return o$10;
}
function parse_BrtDVal() {}
function parse_BrtDVal14() {}
function parse_ws_bin(data, _opts, idx, rels, wb, themes, styles$1) {
	if (!data) return data;
	var opts = _opts || {};
	if (!rels) rels = { "!id": {} };
	if (DENSE != null && opts.dense == null) opts.dense = DENSE;
	var s$5 = {};
	if (opts.dense) s$5["!data"] = [];
	var ref;
	var refguess = {
		s: {
			r: 2e6,
			c: 2e6
		},
		e: {
			r: 0,
			c: 0
		}
	};
	var state$1 = [];
	var pass = false, end = false;
	var row, p$3, cf, R$1, C$2, addr, sstr, rr, cell;
	var merges = [];
	opts.biff = 12;
	opts["!row"] = 0;
	var ai = 0, af = false;
	var arrayf = [];
	var sharedf = {};
	var supbooks = opts.supbooks || wb.supbooks || [[]];
	supbooks.sharedf = sharedf;
	supbooks.arrayf = arrayf;
	supbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x$2) {
		return x$2.name;
	});
	if (!opts.supbooks) {
		opts.supbooks = supbooks;
		if (wb.Names) for (var i$7 = 0; i$7 < wb.Names.length; ++i$7) supbooks[0][i$7 + 1] = wb.Names[i$7];
	}
	var colinfo = [], rowinfo = [];
	var seencol = false;
	XLSBRecordEnum[16] = {
		n: "BrtShortReal",
		f: parse_BrtShortReal
	};
	var cm, vm;
	var date1904 = 1462 * +!!((wb || {}).WBProps || {}).date1904;
	recordhopper(data, function ws_parse(val$1, RR, RT) {
		if (end) return;
		switch (RT) {
			case 148:
				ref = val$1;
				break;
			case 0:
				row = val$1;
				if (opts.sheetRows && opts.sheetRows <= row.r) end = true;
				rr = encode_row(R$1 = row.r);
				opts["!row"] = row.r;
				if (val$1.hidden || val$1.hpt || val$1.level != null) {
					if (val$1.hpt) val$1.hpx = pt2px(val$1.hpt);
					rowinfo[val$1.r] = val$1;
				}
				break;
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 62:
				p$3 = { t: val$1[2] };
				switch (val$1[2]) {
					case "n":
						p$3.v = val$1[1];
						break;
					case "s":
						sstr = strs[val$1[1]];
						p$3.v = sstr.t;
						p$3.r = sstr.r;
						break;
					case "b":
						p$3.v = val$1[1] ? true : false;
						break;
					case "e":
						p$3.v = val$1[1];
						if (opts.cellText !== false) p$3.w = BErr[p$3.v];
						break;
					case "str":
						p$3.t = "s";
						p$3.v = val$1[1];
						break;
					case "is":
						p$3.t = "s";
						p$3.v = val$1[1].t;
						break;
				}
				if (cf = styles$1.CellXf[val$1[0].iStyleRef]) safe_format(p$3, cf.numFmtId, null, opts, themes, styles$1, date1904 > 0);
				C$2 = val$1[0].c == -1 ? C$2 + 1 : val$1[0].c;
				if (opts.dense) {
					if (!s$5["!data"][R$1]) s$5["!data"][R$1] = [];
					s$5["!data"][R$1][C$2] = p$3;
				} else s$5[encode_col(C$2) + rr] = p$3;
				if (opts.cellFormula) {
					af = false;
					for (ai = 0; ai < arrayf.length; ++ai) {
						var aii = arrayf[ai];
						if (row.r >= aii[0].s.r && row.r <= aii[0].e.r) {
							if (C$2 >= aii[0].s.c && C$2 <= aii[0].e.c) {
								p$3.F = encode_range(aii[0]);
								af = true;
							}
						}
					}
					if (!af && val$1.length > 3) p$3.f = val$1[3];
				}
				if (refguess.s.r > row.r) refguess.s.r = row.r;
				if (refguess.s.c > C$2) refguess.s.c = C$2;
				if (refguess.e.r < row.r) refguess.e.r = row.r;
				if (refguess.e.c < C$2) refguess.e.c = C$2;
				if (opts.cellDates && cf && p$3.t == "n" && fmt_is_date(table_fmt[cf.numFmtId])) {
					var _d = SSF_parse_date_code(p$3.v + date1904);
					if (_d) {
						p$3.t = "d";
						p$3.v = new Date(Date.UTC(_d.y, _d.m - 1, _d.d, _d.H, _d.M, _d.S, _d.u));
					}
				}
				if (cm) {
					if (cm.type == "XLDAPR") p$3.D = true;
					cm = void 0;
				}
				if (vm) vm = void 0;
				break;
			case 1:
			case 12:
				if (!opts.sheetStubs || pass) break;
				p$3 = {
					t: "z",
					v: void 0
				};
				C$2 = val$1[0].c == -1 ? C$2 + 1 : val$1[0].c;
				if (opts.dense) {
					if (!s$5["!data"][R$1]) s$5["!data"][R$1] = [];
					s$5["!data"][R$1][C$2] = p$3;
				} else s$5[encode_col(C$2) + rr] = p$3;
				if (refguess.s.r > row.r) refguess.s.r = row.r;
				if (refguess.s.c > C$2) refguess.s.c = C$2;
				if (refguess.e.r < row.r) refguess.e.r = row.r;
				if (refguess.e.c < C$2) refguess.e.c = C$2;
				if (cm) {
					if (cm.type == "XLDAPR") p$3.D = true;
					cm = void 0;
				}
				if (vm) vm = void 0;
				break;
			case 176:
				merges.push(val$1);
				break;
			case 49:
				{
					cm = ((opts.xlmeta || {}).Cell || [])[val$1 - 1];
				}
				break;
			case 494:
				var rel$1 = rels["!id"][val$1.relId];
				if (rel$1) {
					val$1.Target = rel$1.Target;
					if (val$1.loc) val$1.Target += "#" + val$1.loc;
					val$1.Rel = rel$1;
				} else if (val$1.relId == "") {
					val$1.Target = "#" + val$1.loc;
				}
				for (R$1 = val$1.rfx.s.r; R$1 <= val$1.rfx.e.r; ++R$1) for (C$2 = val$1.rfx.s.c; C$2 <= val$1.rfx.e.c; ++C$2) {
					if (opts.dense) {
						if (!s$5["!data"][R$1]) s$5["!data"][R$1] = [];
						if (!s$5["!data"][R$1][C$2]) s$5["!data"][R$1][C$2] = {
							t: "z",
							v: undefined
						};
						s$5["!data"][R$1][C$2].l = val$1;
					} else {
						addr = encode_col(C$2) + encode_row(R$1);
						if (!s$5[addr]) s$5[addr] = {
							t: "z",
							v: undefined
						};
						s$5[addr].l = val$1;
					}
				}
				break;
			case 426:
				if (!opts.cellFormula) break;
				arrayf.push(val$1);
				cell = opts.dense ? s$5["!data"][R$1][C$2] : s$5[encode_col(C$2) + rr];
				cell.f = stringify_formula(val$1[1], refguess, {
					r: row.r,
					c: C$2
				}, supbooks, opts);
				cell.F = encode_range(val$1[0]);
				break;
			case 427:
				if (!opts.cellFormula) break;
				sharedf[encode_cell(val$1[0].s)] = val$1[1];
				cell = opts.dense ? s$5["!data"][R$1][C$2] : s$5[encode_col(C$2) + rr];
				cell.f = stringify_formula(val$1[1], refguess, {
					r: row.r,
					c: C$2
				}, supbooks, opts);
				break;
			case 60:
				if (!opts.cellStyles) break;
				while (val$1.e >= val$1.s) {
					colinfo[val$1.e--] = {
						width: val$1.w / 256,
						hidden: !!(val$1.flags & 1),
						level: val$1.level
					};
					if (!seencol) {
						seencol = true;
						find_mdw_colw(val$1.w / 256);
					}
					process_col(colinfo[val$1.e + 1]);
				}
				break;
			case 551:
				if (val$1) s$5["!legrel"] = val$1;
				break;
			case 161:
				s$5["!autofilter"] = { ref: encode_range(val$1) };
				break;
			case 476:
				s$5["!margins"] = val$1;
				break;
			case 147:
				if (!wb.Sheets[idx]) wb.Sheets[idx] = {};
				if (val$1.name) wb.Sheets[idx].CodeName = val$1.name;
				if (val$1.above || val$1.left) s$5["!outline"] = {
					above: val$1.above,
					left: val$1.left
				};
				break;
			case 137:
				if (!wb.Views) wb.Views = [{}];
				if (!wb.Views[0]) wb.Views[0] = {};
				if (val$1.RTL) wb.Views[0].RTL = true;
				break;
			case 485: break;
			case 64:
			case 1053: break;
			case 151: break;
			case 152:
			case 175:
			case 644:
			case 625:
			case 562:
			case 396:
			case 1112:
			case 1146:
			case 471:
			case 1050:
			case 649:
			case 1105:
			case 589:
			case 607:
			case 564:
			case 1055:
			case 168:
			case 174:
			case 1180:
			case 499:
			case 507:
			case 550:
			case 171:
			case 167:
			case 1177:
			case 169:
			case 1181:
			case 552:
			case 661:
			case 639:
			case 478:
			case 537:
			case 477:
			case 536:
			case 1103:
			case 680:
			case 1104:
			case 1024:
			case 663:
			case 535:
			case 678:
			case 504:
			case 1043:
			case 428:
			case 170:
			case 3072:
			case 50:
			case 2070:
			case 1045: break;
			case 35:
				pass = true;
				break;
			case 36:
				pass = false;
				break;
			case 37:
				state$1.push(RT);
				pass = true;
				break;
			case 38:
				state$1.pop();
				pass = false;
				break;
			default: if (RR.T) {} else if (!pass || opts.WTF) throw new Error("Unexpected record 0x" + RT.toString(16));
		}
	}, opts);
	delete opts.supbooks;
	delete opts["!row"];
	if (!s$5["!ref"] && (refguess.s.r < 2e6 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s$5["!ref"] = encode_range(ref || refguess);
	if (opts.sheetRows && s$5["!ref"]) {
		var tmpref = safe_decode_range(s$5["!ref"]);
		if (opts.sheetRows <= +tmpref.e.r) {
			tmpref.e.r = opts.sheetRows - 1;
			if (tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;
			if (tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;
			if (tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;
			if (tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;
			s$5["!fullref"] = s$5["!ref"];
			s$5["!ref"] = encode_range(tmpref);
		}
	}
	if (merges.length > 0) s$5["!merges"] = merges;
	if (colinfo.length > 0) s$5["!cols"] = colinfo;
	if (rowinfo.length > 0) s$5["!rows"] = rowinfo;
	if (rels["!id"][s$5["!legrel"]]) s$5["!legdrawel"] = rels["!id"][s$5["!legrel"]];
	return s$5;
}
function write_ws_bin_cell(ba, cell, R$1, C$2, opts, ws, last_seen, date1904) {
	var o$10 = {
		r: R$1,
		c: C$2
	};
	if (cell.c) ws["!comments"].push([encode_cell(o$10), cell.c]);
	if (cell.v === undefined) return false;
	var vv = "";
	switch (cell.t) {
		case "b":
			vv = cell.v ? "1" : "0";
			break;
		case "d":
			cell = dup(cell);
			cell.z = cell.z || table_fmt[14];
			cell.v = datenum(parseDate(cell.v, date1904), date1904);
			cell.t = "n";
			break;
		case "n":
		case "e":
			vv = "" + cell.v;
			break;
		default:
			vv = cell.v;
			break;
	}
	o$10.s = get_cell_style(opts.cellXfs, cell, opts);
	if (cell.l) ws["!links"].push([encode_cell(o$10), cell.l]);
	switch (cell.t) {
		case "s":
		case "str":
			if (opts.bookSST) {
				vv = get_sst_id(opts.Strings, cell.v == null ? "" : String(cell.v), opts.revStrings);
				o$10.t = "s";
				o$10.v = vv;
				if (last_seen) write_record(ba, 18, write_BrtShortIsst(cell, o$10));
				else write_record(ba, 7, write_BrtCellIsst(cell, o$10));
			} else {
				o$10.t = "str";
				if (last_seen) write_record(ba, 17, write_BrtShortSt(cell, o$10));
				else write_record(ba, 6, write_BrtCellSt(cell, o$10));
			}
			return true;
		case "n":
			if (cell.v == (cell.v | 0) && cell.v > -1e3 && cell.v < 1e3) {
				if (last_seen) write_record(ba, 13, write_BrtShortRk(cell, o$10));
				else write_record(ba, 2, write_BrtCellRk(cell, o$10));
			} else if (!isFinite(cell.v)) {
				o$10.t = "e";
				if (isNaN(cell.v)) {
					if (last_seen) write_record(ba, 14, write_BrtShortError({
						t: "e",
						v: 36
					}, o$10));
					else write_record(ba, 3, write_BrtCellError({
						t: "e",
						v: 36
					}, o$10));
				} else {
					if (last_seen) write_record(ba, 14, write_BrtShortError({
						t: "e",
						v: 7
					}, o$10));
					else write_record(ba, 3, write_BrtCellError({
						t: "e",
						v: 7
					}, o$10));
				}
			} else {
				if (last_seen) write_record(ba, 16, write_BrtShortReal(cell, o$10));
				else write_record(ba, 5, write_BrtCellReal(cell, o$10));
			}
			return true;
		case "b":
			o$10.t = "b";
			if (last_seen) write_record(ba, 15, write_BrtShortBool(cell, o$10));
			else write_record(ba, 4, write_BrtCellBool(cell, o$10));
			return true;
		case "e":
			o$10.t = "e";
			if (last_seen) write_record(ba, 14, write_BrtShortError(cell, o$10));
			else write_record(ba, 3, write_BrtCellError(cell, o$10));
			return true;
	}
	if (last_seen) write_record(ba, 12, write_BrtShortBlank(cell, o$10));
	else write_record(ba, 1, write_BrtCellBlank(cell, o$10));
	return true;
}
function write_CELLTABLE(ba, ws, idx, opts, wb) {
	var range = safe_decode_range(ws["!ref"] || "A1"), rr = "", cols = [];
	var date1904 = (((wb || {}).Workbook || {}).WBProps || {}).date1904;
	write_record(ba, 145);
	var dense = ws["!data"] != null, row = dense ? ws["!data"][range.s.r] : [];
	var cap = range.e.r;
	if (ws["!rows"]) cap = Math.max(range.e.r, ws["!rows"].length - 1);
	for (var R$1 = range.s.r; R$1 <= cap; ++R$1) {
		rr = encode_row(R$1);
		if (dense) row = ws["!data"][R$1];
		write_row_header(ba, ws, range, R$1);
		if (dense && !row) continue;
		var last_seen = false;
		if (R$1 <= range.e.r) for (var C$2 = range.s.c; C$2 <= range.e.c; ++C$2) {
			if (R$1 === range.s.r) cols[C$2] = encode_col(C$2);
			var cell = dense ? row[C$2] : ws[cols[C$2] + rr];
			if (!cell) {
				last_seen = false;
				continue;
			}
			last_seen = write_ws_bin_cell(ba, cell, R$1, C$2, opts, ws, last_seen, date1904);
		}
	}
	write_record(ba, 146);
}
function write_MERGECELLS(ba, ws) {
	if (!ws || !ws["!merges"]) return;
	write_record(ba, 177, write_BrtBeginMergeCells(ws["!merges"].length));
	ws["!merges"].forEach(function(m$3) {
		write_record(ba, 176, write_BrtMergeCell(m$3));
	});
	write_record(ba, 178);
}
function write_COLINFOS(ba, ws) {
	if (!ws || !ws["!cols"]) return;
	write_record(ba, 390);
	ws["!cols"].forEach(function(m$3, i$7) {
		if (m$3) write_record(ba, 60, write_BrtColInfo(i$7, m$3));
	});
	write_record(ba, 391);
}
function write_IGNOREECS(ba, ws) {
	if (!ws || !ws["!ref"]) return;
	write_record(ba, 648);
	write_record(ba, 649, write_BrtCellIgnoreEC(safe_decode_range(ws["!ref"])));
	write_record(ba, 650);
}
function write_HLINKS(ba, ws, rels) {
	ws["!links"].forEach(function(l$3) {
		if (!l$3[1].Target) return;
		var rId = add_rels(rels, -1, l$3[1].Target.replace(/#[\s\S]*$/, ""), RELS.HLINK);
		write_record(ba, 494, write_BrtHLink(l$3, rId));
	});
	delete ws["!links"];
}
function write_LEGACYDRAWING(ba, ws, idx, rels) {
	if (ws["!comments"].length > 0) {
		var rId = add_rels(rels, -1, "../drawings/vmlDrawing" + (idx + 1) + ".vml", RELS.VML);
		write_record(ba, 551, write_RelID("rId" + rId));
		ws["!legacy"] = rId;
	}
}
function write_AUTOFILTER(ba, ws, wb, idx) {
	if (!ws["!autofilter"]) return;
	var data = ws["!autofilter"];
	var ref = typeof data.ref === "string" ? data.ref : encode_range(data.ref);
	if (!wb.Workbook) wb.Workbook = { Sheets: [] };
	if (!wb.Workbook.Names) wb.Workbook.Names = [];
	var names = wb.Workbook.Names;
	var range = decode_range(ref);
	if (range.s.r == range.e.r) {
		range.e.r = decode_range(ws["!ref"]).e.r;
		ref = encode_range(range);
	}
	for (var i$7 = 0; i$7 < names.length; ++i$7) {
		var name = names[i$7];
		if (name.Name != "_xlnm._FilterDatabase") continue;
		if (name.Sheet != idx) continue;
		name.Ref = formula_quote_sheet_name(wb.SheetNames[idx]) + "!" + fix_range(ref);
		break;
	}
	if (i$7 == names.length) names.push({
		Name: "_xlnm._FilterDatabase",
		Sheet: idx,
		Ref: formula_quote_sheet_name(wb.SheetNames[idx]) + "!" + fix_range(ref)
	});
	write_record(ba, 161, write_UncheckedRfX(safe_decode_range(ref)));
	write_record(ba, 162);
}
function write_WSVIEWS2(ba, ws, Workbook) {
	write_record(ba, 133);
	{
		write_record(ba, 137, write_BrtBeginWsView(ws, Workbook));
		write_record(ba, 138);
	}
	write_record(ba, 134);
}
function write_WSFMTINFO() {}
function write_SHEETPROTECT(ba, ws) {
	if (!ws["!protect"]) return;
	write_record(ba, 535, write_BrtSheetProtection(ws["!protect"]));
}
function write_ws_bin(idx, opts, wb, rels) {
	var ba = buf_array();
	var s$5 = wb.SheetNames[idx], ws = wb.Sheets[s$5] || {};
	var c$7 = s$5;
	try {
		if (wb && wb.Workbook) c$7 = wb.Workbook.Sheets[idx].CodeName || c$7;
	} catch (e$10) {}
	var r$10 = safe_decode_range(ws["!ref"] || "A1");
	if (r$10.e.c > 16383 || r$10.e.r > 1048575) {
		if (opts.WTF) throw new Error("Range " + (ws["!ref"] || "A1") + " exceeds format limit A1:XFD1048576");
		r$10.e.c = Math.min(r$10.e.c, 16383);
		r$10.e.r = Math.min(r$10.e.c, 1048575);
	}
	ws["!links"] = [];
	ws["!comments"] = [];
	write_record(ba, 129);
	if (wb.vbaraw || ws["!outline"]) write_record(ba, 147, write_BrtWsProp(c$7, ws["!outline"]));
	write_record(ba, 148, write_BrtWsDim(r$10));
	write_WSVIEWS2(ba, ws, wb.Workbook);
	write_WSFMTINFO(ba, ws);
	write_COLINFOS(ba, ws, idx, opts, wb);
	write_CELLTABLE(ba, ws, idx, opts, wb);
	write_SHEETPROTECT(ba, ws);
	write_AUTOFILTER(ba, ws, wb, idx);
	write_MERGECELLS(ba, ws);
	write_HLINKS(ba, ws, rels);
	if (ws["!margins"]) write_record(ba, 476, write_BrtMargins(ws["!margins"]));
	if (!opts || opts.ignoreEC || opts.ignoreEC == void 0) write_IGNOREECS(ba, ws);
	write_LEGACYDRAWING(ba, ws, idx, rels);
	write_record(ba, 130);
	return ba.end();
}
function parse_Cache(data) {
	var col = [];
	var num = data.match(/^<c:numCache>/);
	var f$4;
	(data.match(/<c:pt idx="(\d*)"[^<>\/]*><c:v>([^<])<\/c:v><\/c:pt>/gm) || []).forEach(function(pt) {
		var q$2 = pt.match(/<c:pt idx="(\d*)"[^<>\/]*><c:v>([^<]*)<\/c:v><\/c:pt>/);
		if (!q$2) return;
		col[+q$2[1]] = num ? +q$2[2] : q$2[2];
	});
	var nf = unescapexml((str_match_xml(data, "c:formatCode") || ["", "General"])[1]);
	(str_match_ng(data, "<c:f>", "</c:f>") || []).forEach(function(F$1) {
		f$4 = F$1.replace(/<[^<>]*>/g, "");
	});
	return [
		col,
		nf,
		f$4
	];
}
function parse_chart(data, name, opts, rels, wb, csheet) {
	var cs = csheet || { "!type": "chart" };
	if (!data) return csheet;
	var C$2 = 0, R$1 = 0, col = "A";
	var refguess = {
		s: {
			r: 2e6,
			c: 2e6
		},
		e: {
			r: 0,
			c: 0
		}
	};
	(str_match_ng(data, "<c:numCache>", "</c:numCache>") || []).forEach(function(nc) {
		var cache = parse_Cache(nc);
		refguess.s.r = refguess.s.c = 0;
		refguess.e.c = C$2;
		col = encode_col(C$2);
		cache[0].forEach(function(n$9, i$7) {
			if (cs["!data"]) {
				if (!cs["!data"][i$7]) cs["!data"][i$7] = [];
				cs["!data"][i$7][C$2] = {
					t: "n",
					v: n$9,
					z: cache[1]
				};
			} else cs[col + encode_row(i$7)] = {
				t: "n",
				v: n$9,
				z: cache[1]
			};
			R$1 = i$7;
		});
		if (refguess.e.r < R$1) refguess.e.r = R$1;
		++C$2;
	});
	if (C$2 > 0) cs["!ref"] = encode_range(refguess);
	return cs;
}
function parse_cs_xml(data, opts, idx, rels, wb) {
	if (!data) return data;
	if (!rels) rels = { "!id": {} };
	var s$5 = {
		"!type": "chart",
		"!drawel": null,
		"!rel": ""
	};
	var m$3;
	var sheetPr = data.match(sheetprregex);
	if (sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s$5, wb, idx);
	if (m$3 = data.match(/drawing r:id="(.*?)"/)) s$5["!rel"] = m$3[1];
	if (rels["!id"][s$5["!rel"]]) s$5["!drawel"] = rels["!id"][s$5["!rel"]];
	return s$5;
}
function parse_BrtCsProp(data, length) {
	data.l += 10;
	var name = parse_XLWideString(data, length - 10);
	return { name };
}
function parse_cs_bin(data, opts, idx, rels, wb) {
	if (!data) return data;
	if (!rels) rels = { "!id": {} };
	var s$5 = {
		"!type": "chart",
		"!drawel": null,
		"!rel": ""
	};
	var state$1 = [];
	var pass = false;
	recordhopper(data, function cs_parse(val$1, R$1, RT) {
		switch (RT) {
			case 550:
				s$5["!rel"] = val$1;
				break;
			case 651:
				if (!wb.Sheets[idx]) wb.Sheets[idx] = {};
				if (val$1.name) wb.Sheets[idx].CodeName = val$1.name;
				break;
			case 562:
			case 652:
			case 669:
			case 679:
			case 551:
			case 552:
			case 476:
			case 3072: break;
			case 35:
				pass = true;
				break;
			case 36:
				pass = false;
				break;
			case 37:
				state$1.push(RT);
				break;
			case 38:
				state$1.pop();
				break;
			default: if (R$1.T > 0) state$1.push(RT);
			else if (R$1.T < 0) state$1.pop();
			else if (!pass || opts.WTF) throw new Error("Unexpected record 0x" + RT.toString(16));
		}
	}, opts);
	if (rels["!id"][s$5["!rel"]]) s$5["!drawel"] = rels["!id"][s$5["!rel"]];
	return s$5;
}
function push_defaults_array(target, defaults) {
	for (var j$2 = 0; j$2 != target.length; ++j$2) {
		var w$2 = target[j$2];
		for (var i$7 = 0; i$7 != defaults.length; ++i$7) {
			var z$2 = defaults[i$7];
			if (w$2[z$2[0]] == null) w$2[z$2[0]] = z$2[1];
			else switch (z$2[2]) {
				case "bool":
					if (typeof w$2[z$2[0]] == "string") w$2[z$2[0]] = parsexmlbool(w$2[z$2[0]]);
					break;
				case "int":
					if (typeof w$2[z$2[0]] == "string") w$2[z$2[0]] = parseInt(w$2[z$2[0]], 10);
					break;
			}
		}
	}
}
function push_defaults(target, defaults) {
	for (var i$7 = 0; i$7 != defaults.length; ++i$7) {
		var z$2 = defaults[i$7];
		if (target[z$2[0]] == null) target[z$2[0]] = z$2[1];
		else switch (z$2[2]) {
			case "bool":
				if (typeof target[z$2[0]] == "string") target[z$2[0]] = parsexmlbool(target[z$2[0]]);
				break;
			case "int":
				if (typeof target[z$2[0]] == "string") target[z$2[0]] = parseInt(target[z$2[0]], 10);
				break;
		}
	}
}
function parse_wb_defaults(wb) {
	push_defaults(wb.WBProps, WBPropsDef);
	push_defaults(wb.CalcPr, CalcPrDef);
	push_defaults_array(wb.WBView, WBViewDef);
	push_defaults_array(wb.Sheets, SheetDef);
	_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);
}
function safe1904(wb) {
	if (!wb.Workbook) return "false";
	if (!wb.Workbook.WBProps) return "false";
	return parsexmlbool(wb.Workbook.WBProps.date1904) ? "true" : "false";
}
function check_ws_name(n$9, safe) {
	try {
		if (n$9 == "") throw new Error("Sheet name cannot be blank");
		if (n$9.length > 31) throw new Error("Sheet name cannot exceed 31 chars");
		if (n$9.charCodeAt(0) == 39 || n$9.charCodeAt(n$9.length - 1) == 39) throw new Error("Sheet name cannot start or end with apostrophe (')");
		if (n$9.toLowerCase() == "history") throw new Error("Sheet name cannot be 'History'");
		badchars.forEach(function(c$7) {
			if (n$9.indexOf(c$7) == -1) return;
			throw new Error("Sheet name cannot contain : \\ / ? * [ ]");
		});
	} catch (e$10) {
		if (safe) return false;
		throw e$10;
	}
	return true;
}
function check_wb_names(N$2, S$4, codes) {
	N$2.forEach(function(n$9, i$7) {
		check_ws_name(n$9);
		for (var j$2 = 0; j$2 < i$7; ++j$2) if (n$9 == N$2[j$2]) throw new Error("Duplicate Sheet Name: " + n$9);
		if (codes) {
			var cn$1 = S$4 && S$4[i$7] && S$4[i$7].CodeName || n$9;
			if (cn$1.charCodeAt(0) == 95 && cn$1.length > 22) throw new Error("Bad Code Name: Worksheet" + cn$1);
		}
	});
}
function check_wb(wb) {
	if (!wb || !wb.SheetNames || !wb.Sheets) throw new Error("Invalid Workbook");
	if (!wb.SheetNames.length) throw new Error("Workbook is empty");
	var Sheets = wb.Workbook && wb.Workbook.Sheets || [];
	check_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);
	for (var i$7 = 0; i$7 < wb.SheetNames.length; ++i$7) check_ws(wb.Sheets[wb.SheetNames[i$7]], wb.SheetNames[i$7], i$7);
	wb.SheetNames.forEach(function(n$9, i$8) {
		var ws = wb.Sheets[n$9];
		if (!ws || !ws["!autofilter"]) return;
		var DN;
		if (!wb.Workbook) wb.Workbook = {};
		if (!wb.Workbook.Names) wb.Workbook.Names = [];
		wb.Workbook.Names.forEach(function(dn) {
			if (dn.Name == "_xlnm._FilterDatabase" && dn.Sheet == i$8) DN = dn;
		});
		var nn = formula_quote_sheet_name(n$9) + "!" + fix_range(ws["!autofilter"].ref);
		if (DN) DN.Ref = nn;
		else wb.Workbook.Names.push({
			Name: "_xlnm._FilterDatabase",
			Sheet: i$8,
			Ref: nn
		});
	});
}
function parse_wb_xml(data, opts) {
	if (!data) throw new Error("Could not find file");
	var wb = {
		AppVersion: {},
		WBProps: {},
		WBView: [],
		Sheets: [],
		CalcPr: {},
		Names: [],
		xmlns: ""
	};
	var pass = false, xmlns = "xmlns";
	var dname = {}, dnstart = 0;
	data.replace(tagregex, function xml_wb(x$2, idx) {
		var y$3 = parsexmltag(x$2);
		switch (strip_ns(y$3[0])) {
			case "<?xml": break;
			case "<workbook":
				if (x$2.match(wbnsregex)) xmlns = "xmlns" + x$2.match(/<(\w+):/)[1];
				wb.xmlns = y$3[xmlns];
				break;
			case "</workbook>": break;
			case "<fileVersion":
				delete y$3[0];
				wb.AppVersion = y$3;
				break;
			case "<fileVersion/>":
			case "</fileVersion>": break;
			case "<fileSharing": break;
			case "<fileSharing/>": break;
			case "<workbookPr":
			case "<workbookPr/>":
				WBPropsDef.forEach(function(w$2) {
					if (y$3[w$2[0]] == null) return;
					switch (w$2[2]) {
						case "bool":
							wb.WBProps[w$2[0]] = parsexmlbool(y$3[w$2[0]]);
							break;
						case "int":
							wb.WBProps[w$2[0]] = parseInt(y$3[w$2[0]], 10);
							break;
						default: wb.WBProps[w$2[0]] = y$3[w$2[0]];
					}
				});
				if (y$3.codeName) wb.WBProps.CodeName = utf8read(y$3.codeName);
				break;
			case "</workbookPr>": break;
			case "<workbookProtection": break;
			case "<workbookProtection/>": break;
			case "<bookViews":
			case "<bookViews>":
			case "</bookViews>": break;
			case "<workbookView":
			case "<workbookView/>":
				delete y$3[0];
				wb.WBView.push(y$3);
				break;
			case "</workbookView>": break;
			case "<sheets":
			case "<sheets>":
			case "</sheets>": break;
			case "<sheet":
				switch (y$3.state) {
					case "hidden":
						y$3.Hidden = 1;
						break;
					case "veryHidden":
						y$3.Hidden = 2;
						break;
					default: y$3.Hidden = 0;
				}
				delete y$3.state;
				y$3.name = unescapexml(utf8read(y$3.name));
				delete y$3[0];
				wb.Sheets.push(y$3);
				break;
			case "</sheet>": break;
			case "<functionGroups":
			case "<functionGroups/>": break;
			case "<functionGroup": break;
			case "<externalReferences":
			case "</externalReferences>":
			case "<externalReferences>": break;
			case "<externalReference": break;
			case "<definedNames/>": break;
			case "<definedNames>":
			case "<definedNames":
				pass = true;
				break;
			case "</definedNames>":
				pass = false;
				break;
			case "<definedName":
				{
					dname = {};
					dname.Name = utf8read(y$3.name);
					if (y$3.comment) dname.Comment = y$3.comment;
					if (y$3.localSheetId) dname.Sheet = +y$3.localSheetId;
					if (parsexmlbool(y$3.hidden || "0")) dname.Hidden = true;
					dnstart = idx + x$2.length;
				}
				break;
			case "</definedName>":
				{
					dname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));
					wb.Names.push(dname);
				}
				break;
			case "<definedName/>": break;
			case "<calcPr":
				delete y$3[0];
				wb.CalcPr = y$3;
				break;
			case "<calcPr/>":
				delete y$3[0];
				wb.CalcPr = y$3;
				break;
			case "</calcPr>": break;
			case "<oleSize": break;
			case "<customWorkbookViews>":
			case "</customWorkbookViews>":
			case "<customWorkbookViews": break;
			case "<customWorkbookView":
			case "</customWorkbookView>": break;
			case "<pivotCaches>":
			case "</pivotCaches>":
			case "<pivotCaches": break;
			case "<pivotCache": break;
			case "<smartTagPr":
			case "<smartTagPr/>": break;
			case "<smartTagTypes":
			case "<smartTagTypes>":
			case "</smartTagTypes>": break;
			case "<smartTagType": break;
			case "<webPublishing":
			case "<webPublishing/>": break;
			case "<fileRecoveryPr":
			case "<fileRecoveryPr/>": break;
			case "<webPublishObjects>":
			case "<webPublishObjects":
			case "</webPublishObjects>": break;
			case "<webPublishObject": break;
			case "<extLst":
			case "<extLst>":
			case "</extLst>":
			case "<extLst/>": break;
			case "<ext":
				pass = true;
				break;
			case "</ext>":
				pass = false;
				break;
			case "<ArchID": break;
			case "<AlternateContent":
			case "<AlternateContent>":
				pass = true;
				break;
			case "</AlternateContent>":
				pass = false;
				break;
			case "<revisionPtr": break;
			default: if (!pass && opts.WTF) throw new Error("unrecognized " + y$3[0] + " in workbook");
		}
		return x$2;
	});
	if (XMLNS_main.indexOf(wb.xmlns) === -1) throw new Error("Unknown Namespace: " + wb.xmlns);
	parse_wb_defaults(wb);
	return wb;
}
function write_wb_xml(wb) {
	var o$10 = [XML_HEADER];
	o$10[o$10.length] = writextag("workbook", null, {
		"xmlns": XMLNS_main[0],
		"xmlns:r": XMLNS.r
	});
	var write_names = wb.Workbook && (wb.Workbook.Names || []).length > 0;
	var workbookPr = { codeName: "ThisWorkbook" };
	if (wb.Workbook && wb.Workbook.WBProps) {
		WBPropsDef.forEach(function(x$2) {
			if (wb.Workbook.WBProps[x$2[0]] == null) return;
			if (wb.Workbook.WBProps[x$2[0]] == x$2[1]) return;
			workbookPr[x$2[0]] = wb.Workbook.WBProps[x$2[0]];
		});
		if (wb.Workbook.WBProps.CodeName) {
			workbookPr.codeName = wb.Workbook.WBProps.CodeName;
			delete workbookPr.CodeName;
		}
	}
	o$10[o$10.length] = writextag("workbookPr", null, workbookPr);
	var sheets = wb.Workbook && wb.Workbook.Sheets || [];
	var i$7 = 0;
	if (sheets && sheets[0] && !!sheets[0].Hidden) {
		o$10[o$10.length] = "<bookViews>";
		for (i$7 = 0; i$7 != wb.SheetNames.length; ++i$7) {
			if (!sheets[i$7]) break;
			if (!sheets[i$7].Hidden) break;
		}
		if (i$7 == wb.SheetNames.length) i$7 = 0;
		o$10[o$10.length] = "<workbookView firstSheet=\"" + i$7 + "\" activeTab=\"" + i$7 + "\"/>";
		o$10[o$10.length] = "</bookViews>";
	}
	o$10[o$10.length] = "<sheets>";
	for (i$7 = 0; i$7 != wb.SheetNames.length; ++i$7) {
		var sht = { name: escapexml(wb.SheetNames[i$7].slice(0, 31)) };
		sht.sheetId = "" + (i$7 + 1);
		sht["r:id"] = "rId" + (i$7 + 1);
		if (sheets[i$7]) switch (sheets[i$7].Hidden) {
			case 1:
				sht.state = "hidden";
				break;
			case 2:
				sht.state = "veryHidden";
				break;
		}
		o$10[o$10.length] = writextag("sheet", null, sht);
	}
	o$10[o$10.length] = "</sheets>";
	if (write_names) {
		o$10[o$10.length] = "<definedNames>";
		if (wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n$9) {
			var d$5 = { name: n$9.Name };
			if (n$9.Comment) d$5.comment = n$9.Comment;
			if (n$9.Sheet != null) d$5.localSheetId = "" + n$9.Sheet;
			if (n$9.Hidden) d$5.hidden = "1";
			if (!n$9.Ref) return;
			o$10[o$10.length] = writextag("definedName", escapexml(n$9.Ref), d$5);
		});
		o$10[o$10.length] = "</definedNames>";
	}
	if (o$10.length > 2) {
		o$10[o$10.length] = "</workbook>";
		o$10[1] = o$10[1].replace("/>", ">");
	}
	return o$10.join("");
}
function parse_BrtBundleSh(data, length) {
	var z$2 = {};
	z$2.Hidden = data.read_shift(4);
	z$2.iTabID = data.read_shift(4);
	z$2.strRelID = parse_RelID(data, length - 8);
	z$2.name = parse_XLWideString(data);
	return z$2;
}
function write_BrtBundleSh(data, o$10) {
	if (!o$10) o$10 = new_buf(127);
	o$10.write_shift(4, data.Hidden);
	o$10.write_shift(4, data.iTabID);
	write_RelID(data.strRelID, o$10);
	write_XLWideString(data.name.slice(0, 31), o$10);
	return o$10.length > o$10.l ? o$10.slice(0, o$10.l) : o$10;
}
function parse_BrtWbProp(data, length) {
	var o$10 = {};
	var flags = data.read_shift(4);
	o$10.defaultThemeVersion = data.read_shift(4);
	var strName = length > 8 ? parse_XLWideString(data) : "";
	if (strName.length > 0) o$10.CodeName = strName;
	o$10.autoCompressPictures = !!(flags & 65536);
	o$10.backupFile = !!(flags & 64);
	o$10.checkCompatibility = !!(flags & 4096);
	o$10.date1904 = !!(flags & 1);
	o$10.filterPrivacy = !!(flags & 8);
	o$10.hidePivotFieldList = !!(flags & 1024);
	o$10.promptedSolutions = !!(flags & 16);
	o$10.publishItems = !!(flags & 2048);
	o$10.refreshAllConnections = !!(flags & 262144);
	o$10.saveExternalLinkValues = !!(flags & 128);
	o$10.showBorderUnselectedTables = !!(flags & 4);
	o$10.showInkAnnotation = !!(flags & 32);
	o$10.showObjects = [
		"all",
		"placeholders",
		"none"
	][flags >> 13 & 3];
	o$10.showPivotChartFilter = !!(flags & 32768);
	o$10.updateLinks = [
		"userSet",
		"never",
		"always"
	][flags >> 8 & 3];
	return o$10;
}
function write_BrtWbProp(data, o$10) {
	if (!o$10) o$10 = new_buf(72);
	var flags = 0;
	if (data) {
		if (data.date1904) flags |= 1;
		if (data.filterPrivacy) flags |= 8;
	}
	o$10.write_shift(4, flags);
	o$10.write_shift(4, 0);
	write_XLSBCodeName(data && data.CodeName || "ThisWorkbook", o$10);
	return o$10.slice(0, o$10.l);
}
function parse_BrtFRTArchID$(data, length) {
	var o$10 = {};
	data.read_shift(4);
	o$10.ArchID = data.read_shift(4);
	data.l += length - 8;
	return o$10;
}
function parse_BrtName(data, length, opts) {
	var end = data.l + length;
	var flags = data.read_shift(4);
	data.l += 1;
	var itab = data.read_shift(4);
	var name = parse_XLNameWideString(data);
	var formula;
	var comment = "";
	try {
		formula = parse_XLSBNameParsedFormula(data, 0, opts);
		try {
			comment = parse_XLNullableWideString(data);
		} catch (e$10) {}
	} catch (e$10) {
		console.error("Could not parse defined name " + name);
	}
	if (flags & 32) name = "_xlnm." + name;
	data.l = end;
	var out = {
		Name: name,
		Ptg: formula,
		Flags: flags
	};
	if (itab < 268435455) out.Sheet = itab;
	if (comment) out.Comment = comment;
	return out;
}
function write_BrtName(name, wb) {
	var o$10 = new_buf(9);
	var flags = 0;
	var dname = name.Name;
	if (XLSLblBuiltIn.indexOf(dname) > -1) {
		flags |= 32;
		dname = dname.slice(6);
	}
	o$10.write_shift(4, flags);
	o$10.write_shift(1, 0);
	o$10.write_shift(4, name.Sheet == null ? 4294967295 : name.Sheet);
	var arr = [
		o$10,
		write_XLWideString(dname),
		write_XLSBNameParsedFormula(name.Ref, wb)
	];
	if (name.Comment) arr.push(write_XLNullableWideString(name.Comment));
	else {
		var x$2 = new_buf(4);
		x$2.write_shift(4, 4294967295);
		arr.push(x$2);
	}
	return bconcat(arr);
}
function parse_wb_bin(data, opts) {
	var wb = {
		AppVersion: {},
		WBProps: {},
		WBView: [],
		Sheets: [],
		CalcPr: {},
		xmlns: ""
	};
	var state$1 = [];
	var pass = false;
	if (!opts) opts = {};
	opts.biff = 12;
	var Names = [];
	var supbooks = [[]];
	supbooks.SheetNames = [];
	supbooks.XTI = [];
	XLSBRecordEnum[16] = {
		n: "BrtFRTArchID$",
		f: parse_BrtFRTArchID$
	};
	recordhopper(data, function hopper_wb(val$1, R$1, RT) {
		switch (RT) {
			case 156:
				supbooks.SheetNames.push(val$1.name);
				wb.Sheets.push(val$1);
				break;
			case 153:
				wb.WBProps = val$1;
				break;
			case 39:
				if (val$1.Sheet != null) opts.SID = val$1.Sheet;
				val$1.Ref = val$1.Ptg ? stringify_formula(val$1.Ptg, null, null, supbooks, opts) : "#REF!";
				delete opts.SID;
				delete val$1.Ptg;
				Names.push(val$1);
				break;
			case 1036: break;
			case 357:
			case 358:
			case 355:
			case 667:
				if (!supbooks[0].length) supbooks[0] = [RT, val$1];
				else supbooks.push([RT, val$1]);
				supbooks[supbooks.length - 1].XTI = [];
				break;
			case 362:
				if (supbooks.length === 0) {
					supbooks[0] = [];
					supbooks[0].XTI = [];
				}
				supbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val$1);
				supbooks.XTI = supbooks.XTI.concat(val$1);
				break;
			case 361: break;
			case 2071:
			case 158:
			case 143:
			case 664:
			case 353: break;
			case 3072:
			case 3073:
			case 534:
			case 677:
			case 157:
			case 610:
			case 2050:
			case 155:
			case 548:
			case 676:
			case 128:
			case 665:
			case 2128:
			case 2125:
			case 549:
			case 2053:
			case 596:
			case 2076:
			case 2075:
			case 2082:
			case 397:
			case 154:
			case 1117:
			case 553:
			case 2091: break;
			case 35:
				state$1.push(RT);
				pass = true;
				break;
			case 36:
				state$1.pop();
				pass = false;
				break;
			case 37:
				state$1.push(RT);
				pass = true;
				break;
			case 38:
				state$1.pop();
				pass = false;
				break;
			case 16: break;
			default: if (R$1.T) {} else if (!pass || opts.WTF && state$1[state$1.length - 1] != 37 && state$1[state$1.length - 1] != 35) throw new Error("Unexpected record 0x" + RT.toString(16));
		}
	}, opts);
	parse_wb_defaults(wb);
	wb.Names = Names;
	wb.supbooks = supbooks;
	return wb;
}
function write_BUNDLESHS(ba, wb) {
	write_record(ba, 143);
	for (var idx = 0; idx != wb.SheetNames.length; ++idx) {
		var viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;
		var d$5 = {
			Hidden: viz,
			iTabID: idx + 1,
			strRelID: "rId" + (idx + 1),
			name: wb.SheetNames[idx]
		};
		write_record(ba, 156, write_BrtBundleSh(d$5));
	}
	write_record(ba, 144);
}
function write_BrtFileVersion(data, o$10) {
	if (!o$10) o$10 = new_buf(127);
	for (var i$7 = 0; i$7 != 4; ++i$7) o$10.write_shift(4, 0);
	write_XLWideString("SheetJS", o$10);
	write_XLWideString(XLSX.version, o$10);
	write_XLWideString(XLSX.version, o$10);
	write_XLWideString("7262", o$10);
	return o$10.length > o$10.l ? o$10.slice(0, o$10.l) : o$10;
}
function write_BrtBookView(idx, o$10) {
	if (!o$10) o$10 = new_buf(29);
	o$10.write_shift(-4, 0);
	o$10.write_shift(-4, 460);
	o$10.write_shift(4, 28800);
	o$10.write_shift(4, 17600);
	o$10.write_shift(4, 500);
	o$10.write_shift(4, idx);
	o$10.write_shift(4, idx);
	var flags = 120;
	o$10.write_shift(1, flags);
	return o$10.length > o$10.l ? o$10.slice(0, o$10.l) : o$10;
}
function write_BOOKVIEWS(ba, wb) {
	if (!wb.Workbook || !wb.Workbook.Sheets) return;
	var sheets = wb.Workbook.Sheets;
	var i$7 = 0, vistab = -1, hidden = -1;
	for (; i$7 < sheets.length; ++i$7) {
		if (!sheets[i$7] || !sheets[i$7].Hidden && vistab == -1) vistab = i$7;
		else if (sheets[i$7].Hidden == 1 && hidden == -1) hidden = i$7;
	}
	if (hidden > vistab) return;
	write_record(ba, 135);
	write_record(ba, 158, write_BrtBookView(vistab));
	write_record(ba, 136);
}
function write_BRTNAMES(ba, wb) {
	if (!wb.Workbook || !wb.Workbook.Names) return;
	wb.Workbook.Names.forEach(function(name) {
		try {
			if (name.Flags & 14) return;
			write_record(ba, 39, write_BrtName(name, wb));
		} catch (e$10) {
			console.error("Could not serialize defined name " + JSON.stringify(name));
		}
	});
}
function write_SELF_EXTERNS_xlsb(wb) {
	var L$2 = wb.SheetNames.length;
	var o$10 = new_buf(12 * L$2 + 28);
	o$10.write_shift(4, L$2 + 2);
	o$10.write_shift(4, 0);
	o$10.write_shift(4, -2);
	o$10.write_shift(4, -2);
	o$10.write_shift(4, 0);
	o$10.write_shift(4, -1);
	o$10.write_shift(4, -1);
	for (var i$7 = 0; i$7 < L$2; ++i$7) {
		o$10.write_shift(4, 0);
		o$10.write_shift(4, i$7);
		o$10.write_shift(4, i$7);
	}
	return o$10;
}
function write_EXTERNALS_xlsb(ba, wb) {
	write_record(ba, 353);
	write_record(ba, 357);
	write_record(ba, 362, write_SELF_EXTERNS_xlsb(wb, 0));
	write_record(ba, 354);
}
function write_wb_bin(wb, opts) {
	var ba = buf_array();
	write_record(ba, 131);
	write_record(ba, 128, write_BrtFileVersion());
	write_record(ba, 153, write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));
	write_BOOKVIEWS(ba, wb, opts);
	write_BUNDLESHS(ba, wb, opts);
	write_EXTERNALS_xlsb(ba, wb);
	if ((wb.Workbook || {}).Names) write_BRTNAMES(ba, wb);
	write_record(ba, 132);
	return ba.end();
}
function parse_wb(data, name, opts) {
	if (name.slice(-4) === ".bin") return parse_wb_bin(data, opts);
	return parse_wb_xml(data, opts);
}
function parse_ws(data, name, idx, opts, rels, wb, themes, styles$1) {
	if (name.slice(-4) === ".bin") return parse_ws_bin(data, opts, idx, rels, wb, themes, styles$1);
	return parse_ws_xml(data, opts, idx, rels, wb, themes, styles$1);
}
function parse_cs(data, name, idx, opts, rels, wb, themes, styles$1) {
	if (name.slice(-4) === ".bin") return parse_cs_bin(data, opts, idx, rels, wb, themes, styles$1);
	return parse_cs_xml(data, opts, idx, rels, wb, themes, styles$1);
}
function parse_ms(data, name, idx, opts, rels, wb, themes, styles$1) {
	if (name.slice(-4) === ".bin") return parse_ms_bin(data, opts, idx, rels, wb, themes, styles$1);
	return parse_ms_xml(data, opts, idx, rels, wb, themes, styles$1);
}
function parse_ds(data, name, idx, opts, rels, wb, themes, styles$1) {
	if (name.slice(-4) === ".bin") return parse_ds_bin(data, opts, idx, rels, wb, themes, styles$1);
	return parse_ds_xml(data, opts, idx, rels, wb, themes, styles$1);
}
function parse_sty(data, name, themes, opts) {
	if (name.slice(-4) === ".bin") return parse_sty_bin(data, themes, opts);
	return parse_sty_xml(data, themes, opts);
}
function parse_sst(data, name, opts) {
	if (name.slice(-4) === ".bin") return parse_sst_bin(data, opts);
	return parse_sst_xml(data, opts);
}
function parse_cmnt(data, name, opts) {
	if (name.slice(-4) === ".bin") return parse_comments_bin(data, opts);
	return parse_comments_xml(data, opts);
}
function parse_cc(data, name, opts) {
	if (name.slice(-4) === ".bin") return parse_cc_bin(data, name, opts);
	return parse_cc_xml(data, name, opts);
}
function parse_xlink(data, rel$1, name, opts) {
	if (name.slice(-4) === ".bin") return parse_xlink_bin(data, rel$1, name, opts);
	return parse_xlink_xml(data, rel$1, name, opts);
}
function parse_xlmeta(data, name, opts) {
	if (name.slice(-4) === ".bin") return parse_xlmeta_bin(data, name, opts);
	return parse_xlmeta_xml(data, name, opts);
}
function xlml_parsexmltag(tag, skip_root) {
	var words = tag.split(/\s+/);
	var z$2 = [];
	if (!skip_root) z$2[0] = words[0];
	if (words.length === 1) return z$2;
	var m$3 = tag.match(attregexg2), y$3, j$2, w$2, i$7;
	if (m$3) for (i$7 = 0; i$7 != m$3.length; ++i$7) {
		y$3 = m$3[i$7].match(attregex2);
		if ((j$2 = y$3[1].indexOf(":")) === -1) z$2[y$3[1]] = y$3[2].slice(1, y$3[2].length - 1);
		else {
			if (y$3[1].slice(0, 6) === "xmlns:") w$2 = "xmlns" + y$3[1].slice(6);
			else w$2 = y$3[1].slice(j$2 + 1);
			z$2[w$2] = y$3[2].slice(1, y$3[2].length - 1);
		}
	}
	return z$2;
}
function xlml_parsexmltagobj(tag) {
	var words = tag.split(/\s+/);
	var z$2 = {};
	if (words.length === 1) return z$2;
	var m$3 = tag.match(attregexg2), y$3, j$2, w$2, i$7;
	if (m$3) for (i$7 = 0; i$7 != m$3.length; ++i$7) {
		y$3 = m$3[i$7].match(attregex2);
		if ((j$2 = y$3[1].indexOf(":")) === -1) z$2[y$3[1]] = y$3[2].slice(1, y$3[2].length - 1);
		else {
			if (y$3[1].slice(0, 6) === "xmlns:") w$2 = "xmlns" + y$3[1].slice(6);
			else w$2 = y$3[1].slice(j$2 + 1);
			z$2[w$2] = y$3[2].slice(1, y$3[2].length - 1);
		}
	}
	return z$2;
}
function xlml_format(format, value, date1904) {
	var fmt = XLMLFormatMap[format] || unescapexml(format);
	if (fmt === "General") return SSF_general(value);
	return SSF_format(fmt, value, { date1904: !!date1904 });
}
function xlml_set_custprop(Custprops, key, cp, val$1) {
	var oval = val$1;
	switch ((cp[0].match(/dt:dt="([\w.]+)"/) || ["", ""])[1]) {
		case "boolean":
			oval = parsexmlbool(val$1);
			break;
		case "i2":
		case "int":
			oval = parseInt(val$1, 10);
			break;
		case "r4":
		case "float":
			oval = parseFloat(val$1);
			break;
		case "date":
		case "dateTime.tz":
			oval = parseDate(val$1);
			break;
		case "i8":
		case "string":
		case "fixed":
		case "uuid":
		case "bin.base64": break;
		default: throw new Error("bad custprop:" + cp[0]);
	}
	Custprops[unescapexml(key)] = oval;
}
function safe_format_xlml(cell, nf, o$10, date1904) {
	if (cell.t === "z") return;
	if (!o$10 || o$10.cellText !== false) try {
		if (cell.t === "e") {
			cell.w = cell.w || BErr[cell.v];
		} else if (nf === "General") {
			if (cell.t === "n") {
				if ((cell.v | 0) === cell.v) cell.w = cell.v.toString(10);
				else cell.w = SSF_general_num(cell.v);
			} else cell.w = SSF_general(cell.v);
		} else cell.w = xlml_format(nf || "General", cell.v, date1904);
	} catch (e$10) {
		if (o$10.WTF) throw e$10;
	}
	try {
		var z$2 = XLMLFormatMap[nf] || nf || "General";
		if (o$10.cellNF) cell.z = z$2;
		if (o$10.cellDates && cell.t == "n" && fmt_is_date(z$2)) {
			var _d = SSF_parse_date_code(cell.v + (date1904 ? 1462 : 0));
			if (_d) {
				cell.t = "d";
				cell.v = new Date(Date.UTC(_d.y, _d.m - 1, _d.d, _d.H, _d.M, _d.S, _d.u));
			}
		}
	} catch (e$10) {
		if (o$10.WTF) throw e$10;
	}
}
function process_style_xlml(styles$1, stag, opts) {
	if (opts.cellStyles) {
		if (stag.Interior) {
			var I$2 = stag.Interior;
			if (I$2.Pattern) I$2.patternType = XLMLPatternTypeMap[I$2.Pattern] || I$2.Pattern;
		}
	}
	styles$1[stag.ID] = stag;
}
function parse_xlml_data(xml$2, ss, data, cell, base, styles$1, csty, row, arrayf, o$10, date1904) {
	var nf = "General", sid = cell.StyleID, S$4 = {};
	o$10 = o$10 || {};
	var interiors = [];
	var i$7 = 0;
	if (sid === undefined && row) sid = row.StyleID;
	if (sid === undefined && csty) sid = csty.StyleID;
	while (styles$1[sid] !== undefined) {
		var ssid = styles$1[sid];
		if (ssid.nf) nf = ssid.nf;
		if (ssid.Interior) interiors.push(ssid.Interior);
		if (!ssid.Parent) break;
		sid = ssid.Parent;
	}
	switch (data.Type) {
		case "Boolean":
			cell.t = "b";
			cell.v = parsexmlbool(xml$2);
			break;
		case "String":
			cell.t = "s";
			cell.r = xlml_fixstr(unescapexml(xml$2));
			cell.v = xml$2.indexOf("<") > -1 ? unescapexml(ss || xml$2).replace(/<[^<>]*>/g, "") : cell.r;
			break;
		case "DateTime":
			if (xml$2.slice(-1) != "Z") xml$2 += "Z";
			cell.v = datenum(parseDate(xml$2, date1904), date1904);
			if (cell.v !== cell.v) cell.v = unescapexml(xml$2);
			if (!nf || nf == "General") nf = "yyyy-mm-dd";
		case "Number":
			if (cell.v === undefined) cell.v = +xml$2;
			if (!cell.t) cell.t = "n";
			break;
		case "Error":
			cell.t = "e";
			cell.v = RBErr[xml$2];
			if (o$10.cellText !== false) cell.w = xml$2;
			break;
		default:
			if (xml$2 == "" && ss == "") {
				cell.t = "z";
			} else {
				cell.t = "s";
				cell.v = xlml_fixstr(ss || xml$2);
			}
			break;
	}
	safe_format_xlml(cell, nf, o$10, date1904);
	if (o$10.cellFormula !== false) {
		if (cell.Formula) {
			var fstr = unescapexml(cell.Formula);
			if (fstr.charCodeAt(0) == 61) fstr = fstr.slice(1);
			cell.f = rc_to_a1(fstr, base);
			delete cell.Formula;
			if (cell.ArrayRange == "RC") cell.F = rc_to_a1("RC:RC", base);
			else if (cell.ArrayRange) {
				cell.F = rc_to_a1(cell.ArrayRange, base);
				arrayf.push([safe_decode_range(cell.F), cell.F]);
			}
		} else {
			for (i$7 = 0; i$7 < arrayf.length; ++i$7) if (base.r >= arrayf[i$7][0].s.r && base.r <= arrayf[i$7][0].e.r) {
				if (base.c >= arrayf[i$7][0].s.c && base.c <= arrayf[i$7][0].e.c) cell.F = arrayf[i$7][1];
			}
		}
	}
	if (o$10.cellStyles) {
		interiors.forEach(function(x$2) {
			if (!S$4.patternType && x$2.patternType) S$4.patternType = x$2.patternType;
		});
		cell.s = S$4;
	}
	if (cell.StyleID !== undefined) cell.ixfe = cell.StyleID;
}
function xlml_prefix_dname(dname) {
	return XLSLblBuiltIn.indexOf("_xlnm." + dname) > -1 ? "_xlnm." + dname : dname;
}
function xlml_clean_comment(comment) {
	comment.t = comment.v || "";
	comment.t = comment.t.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
	comment.v = comment.w = comment.ixfe = undefined;
}
function parse_xlml_xml(d$5, _opts) {
	var opts = _opts || {};
	make_ssf();
	var str = debom(xlml_normalize(d$5));
	if (opts.type == "binary" || opts.type == "array" || opts.type == "base64") {
		if (typeof $cptable !== "undefined") str = $cptable.utils.decode(65001, char_codes(str));
		else str = utf8read(str);
	}
	var opening = str.slice(0, 1024).toLowerCase(), ishtml = false;
	opening = opening.replace(/".*?"/g, "");
	if ((opening.indexOf(">") & 1023) > Math.min(opening.indexOf(",") & 1023, opening.indexOf(";") & 1023)) {
		var _o = dup(opts);
		_o.type = "string";
		return PRN.to_workbook(str, _o);
	}
	if (opening.indexOf("<?xml") == -1) [
		"html",
		"table",
		"head",
		"meta",
		"script",
		"style",
		"div"
	].forEach(function(tag) {
		if (opening.indexOf("<" + tag) >= 0) ishtml = true;
	});
	if (ishtml) return html_to_workbook(str, opts);
	XLMLFormatMap = {
		"General Number": "General",
		"General Date": table_fmt[22],
		"Long Date": "dddd, mmmm dd, yyyy",
		"Medium Date": table_fmt[15],
		"Short Date": table_fmt[14],
		"Long Time": table_fmt[19],
		"Medium Time": table_fmt[18],
		"Short Time": table_fmt[20],
		"Currency": "\"$\"#,##0.00_);[Red]\\(\"$\"#,##0.00\\)",
		"Fixed": table_fmt[2],
		"Standard": table_fmt[4],
		"Percent": table_fmt[10],
		"Scientific": table_fmt[11],
		"Yes/No": "\"Yes\";\"Yes\";\"No\";@",
		"True/False": "\"True\";\"True\";\"False\";@",
		"On/Off": "\"Yes\";\"Yes\";\"No\";@"
	};
	var Rn;
	var state$1 = [], tmp;
	if (DENSE != null && opts.dense == null) opts.dense = DENSE;
	var sheets = {}, sheetnames = [], cursheet = {}, sheetname = "";
	if (opts.dense) cursheet["!data"] = [];
	var cell = {}, row = {};
	var dtag = xlml_parsexmltag("<Data ss:Type=\"String\">"), didx = 0;
	var c$7 = 0, r$10 = 0;
	var refguess = {
		s: {
			r: 2e6,
			c: 2e6
		},
		e: {
			r: 0,
			c: 0
		}
	};
	var styles$1 = {}, stag = {};
	var ss = "", fidx = 0;
	var merges = [];
	var Props = {}, Custprops = {}, pidx = 0, cp = [];
	var comments = [], comment = {};
	var cstys = [], csty, seencol = false;
	var arrayf = [];
	var rowinfo = [], rowobj = {}, cc = 0, rr = 0;
	var Workbook = {
		Sheets: [],
		WBProps: { date1904: false }
	}, wsprops = {};
	xlmlregex.lastIndex = 0;
	str = str_remove_ng(str, "<!--", "-->");
	var raw_Rn3 = "";
	while (Rn = xlmlregex.exec(str)) switch (Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase()) {
		case "data":
			if (raw_Rn3 == "data") {
				if (Rn[1] === "/") {
					if ((tmp = state$1.pop())[0] !== Rn[3]) throw new Error("Bad state: " + tmp.join("|"));
				} else if (Rn[0].charAt(Rn[0].length - 2) !== "/") state$1.push([Rn[3], true]);
				break;
			}
			if (state$1[state$1.length - 1][1]) break;
			if (Rn[1] === "/") parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state$1[state$1.length - 1][0] == "comment" ? comment : cell, {
				c: c$7,
				r: r$10
			}, styles$1, cstys[c$7], row, arrayf, opts, Workbook.WBProps.date1904);
			else {
				ss = "";
				dtag = xlml_parsexmltag(Rn[0]);
				didx = Rn.index + Rn[0].length;
			}
			break;
		case "cell":
			if (Rn[1] === "/") {
				if (comments.length > 0) cell.c = comments;
				if ((!opts.sheetRows || opts.sheetRows > r$10) && cell.v !== void 0) {
					if (opts.dense) {
						if (!cursheet["!data"][r$10]) cursheet["!data"][r$10] = [];
						cursheet["!data"][r$10][c$7] = cell;
					} else cursheet[encode_col(c$7) + encode_row(r$10)] = cell;
				}
				if (cell.HRef) {
					cell.l = { Target: unescapexml(cell.HRef) };
					if (cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;
					delete cell.HRef;
					delete cell.HRefScreenTip;
				}
				if (cell.MergeAcross || cell.MergeDown) {
					cc = c$7 + (parseInt(cell.MergeAcross, 10) | 0);
					rr = r$10 + (parseInt(cell.MergeDown, 10) | 0);
					if (cc > c$7 || rr > r$10) merges.push({
						s: {
							c: c$7,
							r: r$10
						},
						e: {
							c: cc,
							r: rr
						}
					});
				}
				if (!opts.sheetStubs) {
					if (cell.MergeAcross) c$7 = cc + 1;
					else ++c$7;
				} else if (cell.MergeAcross || cell.MergeDown) {
					for (var cma = c$7; cma <= cc; ++cma) {
						for (var cmd = r$10; cmd <= rr; ++cmd) {
							if (cma > c$7 || cmd > r$10) {
								if (opts.dense) {
									if (!cursheet["!data"][cmd]) cursheet["!data"][cmd] = [];
									cursheet["!data"][cmd][cma] = { t: "z" };
								} else cursheet[encode_col(cma) + encode_row(cmd)] = { t: "z" };
							}
						}
					}
					c$7 = cc + 1;
				} else ++c$7;
			} else {
				cell = xlml_parsexmltagobj(Rn[0]);
				if (cell.Index) c$7 = +cell.Index - 1;
				if (c$7 < refguess.s.c) refguess.s.c = c$7;
				if (c$7 > refguess.e.c) refguess.e.c = c$7;
				if (Rn[0].slice(-2) === "/>") ++c$7;
				comments = [];
			}
			break;
		case "row":
			if (Rn[1] === "/" || Rn[0].slice(-2) === "/>") {
				if (r$10 < refguess.s.r) refguess.s.r = r$10;
				if (r$10 > refguess.e.r) refguess.e.r = r$10;
				if (Rn[0].slice(-2) === "/>") {
					row = xlml_parsexmltag(Rn[0]);
					if (row.Index) r$10 = +row.Index - 1;
				}
				c$7 = 0;
				++r$10;
			} else {
				row = xlml_parsexmltag(Rn[0]);
				if (row.Index) r$10 = +row.Index - 1;
				rowobj = {};
				if (row.AutoFitHeight == "0" || row.Height) {
					rowobj.hpx = parseInt(row.Height, 10);
					rowobj.hpt = px2pt(rowobj.hpx);
					rowinfo[r$10] = rowobj;
				}
				if (row.Hidden == "1") {
					rowobj.hidden = true;
					rowinfo[r$10] = rowobj;
				}
			}
			break;
		case "worksheet":
			if (Rn[1] === "/") {
				if ((tmp = state$1.pop())[0] !== Rn[3]) throw new Error("Bad state: " + tmp.join("|"));
				sheetnames.push(sheetname);
				if (refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {
					cursheet["!ref"] = encode_range(refguess);
					if (opts.sheetRows && opts.sheetRows <= refguess.e.r) {
						cursheet["!fullref"] = cursheet["!ref"];
						refguess.e.r = opts.sheetRows - 1;
						cursheet["!ref"] = encode_range(refguess);
					}
				}
				if (merges.length) cursheet["!merges"] = merges;
				if (cstys.length > 0) cursheet["!cols"] = cstys;
				if (rowinfo.length > 0) cursheet["!rows"] = rowinfo;
				sheets[sheetname] = cursheet;
			} else {
				refguess = {
					s: {
						r: 2e6,
						c: 2e6
					},
					e: {
						r: 0,
						c: 0
					}
				};
				r$10 = c$7 = 0;
				state$1.push([Rn[3], false]);
				tmp = xlml_parsexmltag(Rn[0]);
				sheetname = unescapexml(tmp.Name);
				cursheet = {};
				if (opts.dense) cursheet["!data"] = [];
				merges = [];
				arrayf = [];
				rowinfo = [];
				wsprops = {
					name: sheetname,
					Hidden: 0
				};
				Workbook.Sheets.push(wsprops);
			}
			break;
		case "table":
			if (Rn[1] === "/") {
				if ((tmp = state$1.pop())[0] !== Rn[3]) throw new Error("Bad state: " + tmp.join("|"));
			} else if (Rn[0].slice(-2) == "/>") break;
			else {
				state$1.push([Rn[3], false]);
				cstys = [];
				seencol = false;
			}
			break;
		case "style":
			if (Rn[1] === "/") process_style_xlml(styles$1, stag, opts);
			else stag = xlml_parsexmltag(Rn[0]);
			break;
		case "numberformat":
			stag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || "General");
			if (XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];
			for (var ssfidx = 0; ssfidx != 392; ++ssfidx) if (table_fmt[ssfidx] == stag.nf) break;
			if (ssfidx == 392) {
				for (ssfidx = 57; ssfidx != 392; ++ssfidx) if (table_fmt[ssfidx] == null) {
					SSF__load(stag.nf, ssfidx);
					break;
				}
			}
			break;
		case "column":
			if (state$1[state$1.length - 1][0] !== "table") break;
			if (Rn[1] === "/") break;
			csty = xlml_parsexmltag(Rn[0]);
			if (csty.Hidden) {
				csty.hidden = true;
				delete csty.Hidden;
			}
			if (csty.Width) csty.wpx = parseInt(csty.Width, 10);
			if (!seencol && csty.wpx > 10) {
				seencol = true;
				MDW = DEF_MDW;
				for (var _col = 0; _col < cstys.length; ++_col) if (cstys[_col]) process_col(cstys[_col]);
			}
			if (seencol) process_col(csty);
			cstys[csty.Index - 1 || cstys.length] = csty;
			for (var i$7 = 0; i$7 < +csty.Span; ++i$7) cstys[cstys.length] = dup(csty);
			break;
		case "namedrange":
			if (Rn[1] === "/") break;
			if (!Workbook.Names) Workbook.Names = [];
			var _NamedRange = parsexmltag(Rn[0]);
			var _DefinedName = {
				Name: xlml_prefix_dname(_NamedRange.Name),
				Ref: rc_to_a1(_NamedRange.RefersTo.slice(1), {
					r: 0,
					c: 0
				})
			};
			if (Workbook.Sheets.length > 0) _DefinedName.Sheet = Workbook.Sheets.length - 1;
			Workbook.Names.push(_DefinedName);
			break;
		case "namedcell": break;
		case "b": break;
		case "i": break;
		case "u": break;
		case "s": break;
		case "em": break;
		case "h2": break;
		case "h3": break;
		case "sub": break;
		case "sup": break;
		case "span": break;
		case "alignment": break;
		case "borders": break;
		case "border": break;
		case "font":
			if (Rn[0].slice(-2) === "/>") break;
			else if (Rn[1] === "/") ss += str.slice(fidx, Rn.index);
			else fidx = Rn.index + Rn[0].length;
			break;
		case "interior":
			if (!opts.cellStyles) break;
			stag.Interior = xlml_parsexmltag(Rn[0]);
			break;
		case "protection": break;
		case "author":
		case "title":
		case "description":
		case "created":
		case "keywords":
		case "subject":
		case "category":
		case "company":
		case "lastauthor":
		case "lastsaved":
		case "lastprinted":
		case "version":
		case "revision":
		case "totaltime":
		case "hyperlinkbase":
		case "manager":
		case "contentstatus":
		case "identifier":
		case "language":
		case "appname":
			if (Rn[0].slice(-2) === "/>") break;
			else if (Rn[1] === "/") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));
			else pidx = Rn.index + Rn[0].length;
			break;
		case "paragraphs": break;
		case "styles":
		case "workbook":
			if (Rn[1] === "/") {
				if ((tmp = state$1.pop())[0] !== Rn[3]) throw new Error("Bad state: " + tmp.join("|"));
			} else state$1.push([Rn[3], false]);
			break;
		case "comment":
			if (Rn[1] === "/") {
				if ((tmp = state$1.pop())[0] !== Rn[3]) throw new Error("Bad state: " + tmp.join("|"));
				xlml_clean_comment(comment);
				comments.push(comment);
			} else {
				state$1.push([Rn[3], false]);
				tmp = xlml_parsexmltag(Rn[0]);
				if (!parsexmlbool(tmp["ShowAlways"] || "0")) comments.hidden = true;
				comment = { a: tmp.Author };
			}
			break;
		case "autofilter":
			if (Rn[1] === "/") {
				if ((tmp = state$1.pop())[0] !== Rn[3]) throw new Error("Bad state: " + tmp.join("|"));
			} else if (Rn[0].charAt(Rn[0].length - 2) !== "/") {
				var AutoFilter = xlml_parsexmltag(Rn[0]);
				cursheet["!autofilter"] = { ref: rc_to_a1(AutoFilter.Range).replace(/\$/g, "") };
				state$1.push([Rn[3], true]);
			}
			break;
		case "name": break;
		case "datavalidation":
			if (Rn[1] === "/") {
				if ((tmp = state$1.pop())[0] !== Rn[3]) throw new Error("Bad state: " + tmp.join("|"));
			} else {
				if (Rn[0].charAt(Rn[0].length - 2) !== "/") state$1.push([Rn[3], true]);
			}
			break;
		case "pixelsperinch": break;
		case "componentoptions":
		case "documentproperties":
		case "customdocumentproperties":
		case "officedocumentsettings":
		case "pivottable":
		case "pivotcache":
		case "names":
		case "mapinfo":
		case "pagebreaks":
		case "querytable":
		case "sorting":
		case "schema":
		case "conditionalformatting":
		case "smarttagtype":
		case "smarttags":
		case "excelworkbook":
		case "workbookoptions":
		case "worksheetoptions":
			if (Rn[1] === "/") {
				if ((tmp = state$1.pop())[0] !== Rn[3]) throw new Error("Bad state: " + tmp.join("|"));
			} else if (Rn[0].charAt(Rn[0].length - 2) !== "/") state$1.push([Rn[3], true]);
			break;
		case "null": break;
		default:
			if (state$1.length == 0 && Rn[3] == "document") return parse_fods(str, opts);
			if (state$1.length == 0 && Rn[3] == "uof") return parse_fods(str, opts);
			var seen = true;
			switch (state$1[state$1.length - 1][0]) {
				case "officedocumentsettings":
					switch (Rn[3]) {
						case "allowpng": break;
						case "removepersonalinformation": break;
						case "downloadcomponents": break;
						case "locationofcomponents": break;
						case "colors": break;
						case "color": break;
						case "index": break;
						case "rgb": break;
						case "targetscreensize": break;
						case "readonlyrecommended": break;
						default: seen = false;
					}
					break;
				case "componentoptions":
					switch (Rn[3]) {
						case "toolbar": break;
						case "hideofficelogo": break;
						case "spreadsheetautofit": break;
						case "label": break;
						case "caption": break;
						case "maxheight": break;
						case "maxwidth": break;
						case "nextsheetnumber": break;
						default: seen = false;
					}
					break;
				case "excelworkbook":
					switch (Rn[3]) {
						case "date1904":
							Workbook.WBProps.date1904 = true;
							break;
						case "hidehorizontalscrollbar": break;
						case "hideverticalscrollbar": break;
						case "hideworkbooktabs": break;
						case "windowheight": break;
						case "windowwidth": break;
						case "windowtopx": break;
						case "windowtopy": break;
						case "tabratio": break;
						case "protectstructure": break;
						case "protectwindow": break;
						case "protectwindows": break;
						case "activesheet": break;
						case "displayinknotes": break;
						case "firstvisiblesheet": break;
						case "supbook": break;
						case "sheetname": break;
						case "sheetindex": break;
						case "sheetindexfirst": break;
						case "sheetindexlast": break;
						case "dll": break;
						case "acceptlabelsinformulas": break;
						case "donotsavelinkvalues": break;
						case "iteration": break;
						case "maxiterations": break;
						case "maxchange": break;
						case "path": break;
						case "xct": break;
						case "count": break;
						case "selectedsheets": break;
						case "calculation": break;
						case "uncalced": break;
						case "startupprompt": break;
						case "crn": break;
						case "externname": break;
						case "formula": break;
						case "colfirst": break;
						case "collast": break;
						case "wantadvise": break;
						case "boolean": break;
						case "error": break;
						case "text": break;
						case "ole": break;
						case "noautorecover": break;
						case "publishobjects": break;
						case "donotcalculatebeforesave": break;
						case "number": break;
						case "refmoder1c1": break;
						case "embedsavesmarttags": break;
						default: seen = false;
					}
					break;
				case "workbookoptions":
					switch (Rn[3]) {
						case "owcversion": break;
						case "height": break;
						case "width": break;
						default: seen = false;
					}
					break;
				case "worksheetoptions":
					switch (Rn[3]) {
						case "visible":
							if (Rn[0].slice(-2) === "/>") {} else if (Rn[1] === "/") switch (str.slice(pidx, Rn.index)) {
								case "SheetHidden":
									wsprops.Hidden = 1;
									break;
								case "SheetVeryHidden":
									wsprops.Hidden = 2;
									break;
							}
							else pidx = Rn.index + Rn[0].length;
							break;
						case "header":
							if (!cursheet["!margins"]) default_margins(cursheet["!margins"] = {}, "xlml");
							if (!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet["!margins"].header = +parsexmltag(Rn[0]).Margin;
							break;
						case "footer":
							if (!cursheet["!margins"]) default_margins(cursheet["!margins"] = {}, "xlml");
							if (!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet["!margins"].footer = +parsexmltag(Rn[0]).Margin;
							break;
						case "pagemargins":
							var pagemargins = parsexmltag(Rn[0]);
							if (!cursheet["!margins"]) default_margins(cursheet["!margins"] = {}, "xlml");
							if (!isNaN(+pagemargins.Top)) cursheet["!margins"].top = +pagemargins.Top;
							if (!isNaN(+pagemargins.Left)) cursheet["!margins"].left = +pagemargins.Left;
							if (!isNaN(+pagemargins.Right)) cursheet["!margins"].right = +pagemargins.Right;
							if (!isNaN(+pagemargins.Bottom)) cursheet["!margins"].bottom = +pagemargins.Bottom;
							break;
						case "displayrighttoleft":
							if (!Workbook.Views) Workbook.Views = [];
							if (!Workbook.Views[0]) Workbook.Views[0] = {};
							Workbook.Views[0].RTL = true;
							break;
						case "freezepanes": break;
						case "frozennosplit": break;
						case "splithorizontal":
						case "splitvertical": break;
						case "donotdisplaygridlines": break;
						case "activerow": break;
						case "activecol": break;
						case "toprowbottompane": break;
						case "leftcolumnrightpane": break;
						case "unsynced": break;
						case "print": break;
						case "printerrors": break;
						case "panes": break;
						case "scale": break;
						case "pane": break;
						case "number": break;
						case "layout": break;
						case "pagesetup": break;
						case "selected": break;
						case "protectobjects": break;
						case "enableselection": break;
						case "protectscenarios": break;
						case "validprinterinfo": break;
						case "horizontalresolution": break;
						case "verticalresolution": break;
						case "numberofcopies": break;
						case "activepane": break;
						case "toprowvisible": break;
						case "leftcolumnvisible": break;
						case "fittopage": break;
						case "rangeselection": break;
						case "papersizeindex": break;
						case "pagelayoutzoom": break;
						case "pagebreakzoom": break;
						case "filteron": break;
						case "fitwidth": break;
						case "fitheight": break;
						case "commentslayout": break;
						case "zoom": break;
						case "lefttoright": break;
						case "gridlines": break;
						case "allowsort": break;
						case "allowfilter": break;
						case "allowinsertrows": break;
						case "allowdeleterows": break;
						case "allowinsertcols": break;
						case "allowdeletecols": break;
						case "allowinserthyperlinks": break;
						case "allowformatcells": break;
						case "allowsizecols": break;
						case "allowsizerows": break;
						case "nosummaryrowsbelowdetail":
							if (!cursheet["!outline"]) cursheet["!outline"] = {};
							cursheet["!outline"].above = true;
							break;
						case "tabcolorindex": break;
						case "donotdisplayheadings": break;
						case "showpagelayoutzoom": break;
						case "nosummarycolumnsrightdetail":
							if (!cursheet["!outline"]) cursheet["!outline"] = {};
							cursheet["!outline"].left = true;
							break;
						case "blackandwhite": break;
						case "donotdisplayzeros": break;
						case "displaypagebreak": break;
						case "rowcolheadings": break;
						case "donotdisplayoutline": break;
						case "noorientation": break;
						case "allowusepivottables": break;
						case "zeroheight": break;
						case "viewablerange": break;
						case "selection": break;
						case "protectcontents": break;
						default: seen = false;
					}
					break;
				case "pivottable":
				case "pivotcache":
					switch (Rn[3]) {
						case "immediateitemsondrop": break;
						case "showpagemultipleitemlabel": break;
						case "compactrowindent": break;
						case "location": break;
						case "pivotfield": break;
						case "orientation": break;
						case "layoutform": break;
						case "layoutsubtotallocation": break;
						case "layoutcompactrow": break;
						case "position": break;
						case "pivotitem": break;
						case "datatype": break;
						case "datafield": break;
						case "sourcename": break;
						case "parentfield": break;
						case "ptlineitems": break;
						case "ptlineitem": break;
						case "countofsameitems": break;
						case "item": break;
						case "itemtype": break;
						case "ptsource": break;
						case "cacheindex": break;
						case "consolidationreference": break;
						case "filename": break;
						case "reference": break;
						case "nocolumngrand": break;
						case "norowgrand": break;
						case "blanklineafteritems": break;
						case "hidden": break;
						case "subtotal": break;
						case "basefield": break;
						case "mapchilditems": break;
						case "function": break;
						case "refreshonfileopen": break;
						case "printsettitles": break;
						case "mergelabels": break;
						case "defaultversion": break;
						case "refreshname": break;
						case "refreshdate": break;
						case "refreshdatecopy": break;
						case "versionlastrefresh": break;
						case "versionlastupdate": break;
						case "versionupdateablemin": break;
						case "versionrefreshablemin": break;
						case "calculation": break;
						default: seen = false;
					}
					break;
				case "pagebreaks":
					switch (Rn[3]) {
						case "colbreaks": break;
						case "colbreak": break;
						case "rowbreaks": break;
						case "rowbreak": break;
						case "colstart": break;
						case "colend": break;
						case "rowend": break;
						default: seen = false;
					}
					break;
				case "autofilter":
					switch (Rn[3]) {
						case "autofiltercolumn": break;
						case "autofiltercondition": break;
						case "autofilterand": break;
						case "autofilteror": break;
						default: seen = false;
					}
					break;
				case "querytable":
					switch (Rn[3]) {
						case "id": break;
						case "autoformatfont": break;
						case "autoformatpattern": break;
						case "querysource": break;
						case "querytype": break;
						case "enableredirections": break;
						case "refreshedinxl9": break;
						case "urlstring": break;
						case "htmltables": break;
						case "connection": break;
						case "commandtext": break;
						case "refreshinfo": break;
						case "notitles": break;
						case "nextid": break;
						case "columninfo": break;
						case "overwritecells": break;
						case "donotpromptforfile": break;
						case "textwizardsettings": break;
						case "source": break;
						case "number": break;
						case "decimal": break;
						case "thousandseparator": break;
						case "trailingminusnumbers": break;
						case "formatsettings": break;
						case "fieldtype": break;
						case "delimiters": break;
						case "tab": break;
						case "comma": break;
						case "autoformatname": break;
						case "versionlastedit": break;
						case "versionlastrefresh": break;
						default: seen = false;
					}
					break;
				case "datavalidation":
					switch (Rn[3]) {
						case "range": break;
						case "type": break;
						case "min": break;
						case "max": break;
						case "sort": break;
						case "descending": break;
						case "order": break;
						case "casesensitive": break;
						case "value": break;
						case "errorstyle": break;
						case "errormessage": break;
						case "errortitle": break;
						case "inputmessage": break;
						case "inputtitle": break;
						case "combohide": break;
						case "inputhide": break;
						case "condition": break;
						case "qualifier": break;
						case "useblank": break;
						case "value1": break;
						case "value2": break;
						case "format": break;
						case "cellrangelist": break;
						default: seen = false;
					}
					break;
				case "sorting":
				case "conditionalformatting":
					switch (Rn[3]) {
						case "range": break;
						case "type": break;
						case "min": break;
						case "max": break;
						case "sort": break;
						case "descending": break;
						case "order": break;
						case "casesensitive": break;
						case "value": break;
						case "errorstyle": break;
						case "errormessage": break;
						case "errortitle": break;
						case "cellrangelist": break;
						case "inputmessage": break;
						case "inputtitle": break;
						case "combohide": break;
						case "inputhide": break;
						case "condition": break;
						case "qualifier": break;
						case "useblank": break;
						case "value1": break;
						case "value2": break;
						case "format": break;
						default: seen = false;
					}
					break;
				case "mapinfo":
				case "schema":
				case "data":
					switch (Rn[3]) {
						case "map": break;
						case "entry": break;
						case "range": break;
						case "xpath": break;
						case "field": break;
						case "xsdtype": break;
						case "filteron": break;
						case "aggregate": break;
						case "elementtype": break;
						case "attributetype": break;
						case "schema":
						case "element":
						case "complextype":
						case "datatype":
						case "all":
						case "attribute":
						case "extends": break;
						case "row": break;
						default: seen = false;
					}
					break;
				case "smarttags": break;
				default:
					seen = false;
					break;
			}
			if (seen) break;
			if (Rn[3].match(/!\[CDATA/)) break;
			if (!state$1[state$1.length - 1][1]) throw "Unrecognized tag: " + Rn[3] + "|" + state$1.join("|");
			if (state$1[state$1.length - 1][0] === "customdocumentproperties") {
				if (Rn[0].slice(-2) === "/>") break;
				else if (Rn[1] === "/") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));
				else {
					cp = Rn;
					pidx = Rn.index + Rn[0].length;
				}
				break;
			}
			if (opts.WTF) throw "Unrecognized tag: " + Rn[3] + "|" + state$1.join("|");
	}
	var out = {};
	if (!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;
	out.SheetNames = sheetnames;
	out.Workbook = Workbook;
	out.SSF = dup(table_fmt);
	out.Props = Props;
	out.Custprops = Custprops;
	out.bookType = "xlml";
	return out;
}
function parse_xlml(data, opts) {
	fix_read_opts(opts = opts || {});
	switch (opts.type || "base64") {
		case "base64": return parse_xlml_xml(Base64_decode(data), opts);
		case "binary":
		case "buffer":
		case "file": return parse_xlml_xml(data, opts);
		case "array": return parse_xlml_xml(a2s(data), opts);
	}
}
function write_props_xlml(wb, opts) {
	var o$10 = [];
	if (wb.Props) o$10.push(xlml_write_docprops(wb.Props, opts));
	if (wb.Custprops) o$10.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));
	return o$10.join("");
}
function write_wb_xlml(wb) {
	if ((((wb || {}).Workbook || {}).WBProps || {}).date1904) return "<ExcelWorkbook xmlns=\"urn:schemas-microsoft-com:office:excel\"><Date1904/></ExcelWorkbook>";
	return "";
}
function write_sty_xlml(wb, opts) {
	var styles$1 = ["<Style ss:ID=\"Default\" ss:Name=\"Normal\"><NumberFormat/></Style>"];
	opts.cellXfs.forEach(function(xf, id) {
		var payload = [];
		payload.push(writextag("NumberFormat", null, { "ss:Format": escapexml(table_fmt[xf.numFmtId]) }));
		var o$10 = { "ss:ID": "s" + (21 + id) };
		styles$1.push(writextag("Style", payload.join(""), o$10));
	});
	return writextag("Styles", styles$1.join(""));
}
function write_name_xlml(n$9) {
	return writextag("NamedRange", null, {
		"ss:Name": n$9.Name.slice(0, 6) == "_xlnm." ? n$9.Name.slice(6) : n$9.Name,
		"ss:RefersTo": "=" + a1_to_rc(n$9.Ref, {
			r: 0,
			c: 0
		})
	});
}
function write_names_xlml(wb) {
	if (!((wb || {}).Workbook || {}).Names) return "";
	var names = wb.Workbook.Names;
	var out = [];
	for (var i$7 = 0; i$7 < names.length; ++i$7) {
		var n$9 = names[i$7];
		if (n$9.Sheet != null) continue;
		if (n$9.Name.match(/^_xlfn\./)) continue;
		out.push(write_name_xlml(n$9));
	}
	return writextag("Names", out.join(""));
}
function write_ws_xlml_names(ws, opts, idx, wb) {
	if (!ws) return "";
	if (!((wb || {}).Workbook || {}).Names) return "";
	var names = wb.Workbook.Names;
	var out = [];
	for (var i$7 = 0; i$7 < names.length; ++i$7) {
		var n$9 = names[i$7];
		if (n$9.Sheet != idx) continue;
		if (n$9.Name.match(/^_xlfn\./)) continue;
		out.push(write_name_xlml(n$9));
	}
	return out.join("");
}
function write_ws_xlml_wsopts(ws, opts, idx, wb) {
	if (!ws) return "";
	var o$10 = [];
	if (ws["!margins"]) {
		o$10.push("<PageSetup>");
		if (ws["!margins"].header) o$10.push(writextag("Header", null, { "x:Margin": ws["!margins"].header }));
		if (ws["!margins"].footer) o$10.push(writextag("Footer", null, { "x:Margin": ws["!margins"].footer }));
		o$10.push(writextag("PageMargins", null, {
			"x:Bottom": ws["!margins"].bottom || "0.75",
			"x:Left": ws["!margins"].left || "0.7",
			"x:Right": ws["!margins"].right || "0.7",
			"x:Top": ws["!margins"].top || "0.75"
		}));
		o$10.push("</PageSetup>");
	}
	if (wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {
		if (wb.Workbook.Sheets[idx].Hidden) o$10.push(writextag("Visible", wb.Workbook.Sheets[idx].Hidden == 1 ? "SheetHidden" : "SheetVeryHidden", {}));
		else {
			for (var i$7 = 0; i$7 < idx; ++i$7) if (wb.Workbook.Sheets[i$7] && !wb.Workbook.Sheets[i$7].Hidden) break;
			if (i$7 == idx) o$10.push("<Selected/>");
		}
	}
	if (((((wb || {}).Workbook || {}).Views || [])[0] || {}).RTL) o$10.push("<DisplayRightToLeft/>");
	if (ws["!protect"]) {
		o$10.push(writetag("ProtectContents", "True"));
		if (ws["!protect"].objects) o$10.push(writetag("ProtectObjects", "True"));
		if (ws["!protect"].scenarios) o$10.push(writetag("ProtectScenarios", "True"));
		if (ws["!protect"].selectLockedCells != null && !ws["!protect"].selectLockedCells) o$10.push(writetag("EnableSelection", "NoSelection"));
		else if (ws["!protect"].selectUnlockedCells != null && !ws["!protect"].selectUnlockedCells) o$10.push(writetag("EnableSelection", "UnlockedCells"));
		[
			["formatCells", "AllowFormatCells"],
			["formatColumns", "AllowSizeCols"],
			["formatRows", "AllowSizeRows"],
			["insertColumns", "AllowInsertCols"],
			["insertRows", "AllowInsertRows"],
			["insertHyperlinks", "AllowInsertHyperlinks"],
			["deleteColumns", "AllowDeleteCols"],
			["deleteRows", "AllowDeleteRows"],
			["sort", "AllowSort"],
			["autoFilter", "AllowFilter"],
			["pivotTables", "AllowUsePivotTables"]
		].forEach(function(x$2) {
			if (ws["!protect"][x$2[0]]) o$10.push("<" + x$2[1] + "/>");
		});
	}
	if (o$10.length == 0) return "";
	return writextag("WorksheetOptions", o$10.join(""), { xmlns: XLMLNS.x });
}
function write_ws_xlml_comment(comments) {
	return comments.map(function(c$7) {
		var t$6 = xlml_unfixstr(c$7.t || "");
		var d$5 = writextag("ss:Data", t$6, { "xmlns": "http://www.w3.org/TR/REC-html40" });
		var p$3 = {};
		if (c$7.a) p$3["ss:Author"] = c$7.a;
		if (!comments.hidden) p$3["ss:ShowAlways"] = "1";
		return writextag("Comment", d$5, p$3);
	}).join("");
}
function write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr) {
	if (!cell || cell.v == undefined && cell.f == undefined) return "";
	var attr = {};
	if (cell.f) attr["ss:Formula"] = "=" + escapexml(a1_to_rc(cell.f, addr));
	if (cell.F && cell.F.slice(0, ref.length) == ref) {
		var end = decode_cell(cell.F.slice(ref.length + 1));
		attr["ss:ArrayRange"] = "RC:R" + (end.r == addr.r ? "" : "[" + (end.r - addr.r) + "]") + "C" + (end.c == addr.c ? "" : "[" + (end.c - addr.c) + "]");
	}
	if (cell.l && cell.l.Target) {
		attr["ss:HRef"] = escapexml(cell.l.Target);
		if (cell.l.Tooltip) attr["x:HRefScreenTip"] = escapexml(cell.l.Tooltip);
	}
	if (ws["!merges"]) {
		var marr = ws["!merges"];
		for (var mi = 0; mi != marr.length; ++mi) {
			if (marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;
			if (marr[mi].e.c > marr[mi].s.c) attr["ss:MergeAcross"] = marr[mi].e.c - marr[mi].s.c;
			if (marr[mi].e.r > marr[mi].s.r) attr["ss:MergeDown"] = marr[mi].e.r - marr[mi].s.r;
		}
	}
	var t$6 = "", p$3 = "";
	switch (cell.t) {
		case "z":
			if (!opts.sheetStubs) return "";
			break;
		case "n":
			{
				if (!isFinite(cell.v)) {
					t$6 = "Error";
					p$3 = BErr[isNaN(cell.v) ? 36 : 7];
				} else {
					t$6 = "Number";
					p$3 = String(cell.v);
				}
			}
			break;
		case "b":
			t$6 = "Boolean";
			p$3 = cell.v ? "1" : "0";
			break;
		case "e":
			t$6 = "Error";
			p$3 = BErr[cell.v];
			break;
		case "d":
			t$6 = "DateTime";
			p$3 = new Date(cell.v).toISOString();
			if (cell.z == null) cell.z = cell.z || table_fmt[14];
			break;
		case "s":
			t$6 = "String";
			p$3 = escapexlml(cell.v || "");
			break;
	}
	var os = get_cell_style(opts.cellXfs, cell, opts);
	attr["ss:StyleID"] = "s" + (21 + os);
	attr["ss:Index"] = addr.c + 1;
	var _v = cell.v != null ? p$3 : "";
	var m$3 = cell.t == "z" ? "" : "<Data ss:Type=\"" + t$6 + "\">" + _v + "</Data>";
	if ((cell.c || []).length > 0) m$3 += write_ws_xlml_comment(cell.c);
	return writextag("Cell", m$3, attr);
}
function write_ws_xlml_row(R$1, row) {
	var o$10 = "<Row ss:Index=\"" + (R$1 + 1) + "\"";
	if (row) {
		if (row.hpt && !row.hpx) row.hpx = pt2px(row.hpt);
		if (row.hpx) o$10 += " ss:AutoFitHeight=\"0\" ss:Height=\"" + row.hpx + "\"";
		if (row.hidden) o$10 += " ss:Hidden=\"1\"";
	}
	return o$10 + ">";
}
function write_ws_xlml_table(ws, opts, idx, wb) {
	if (!ws["!ref"]) return "";
	var range = safe_decode_range(ws["!ref"]);
	var marr = ws["!merges"] || [], mi = 0;
	var o$10 = [];
	if (ws["!cols"]) ws["!cols"].forEach(function(n$9, i$7) {
		process_col(n$9);
		var w$2 = !!n$9.width;
		var p$3 = col_obj_w(i$7, n$9);
		var k$2 = { "ss:Index": i$7 + 1 };
		if (w$2) k$2["ss:Width"] = width2px(p$3.width);
		if (n$9.hidden) k$2["ss:Hidden"] = "1";
		o$10.push(writextag("Column", null, k$2));
	});
	var dense = ws["!data"] != null;
	var addr = {
		r: 0,
		c: 0
	};
	for (var R$1 = range.s.r; R$1 <= range.e.r; ++R$1) {
		var row = [write_ws_xlml_row(R$1, (ws["!rows"] || [])[R$1])];
		addr.r = R$1;
		for (var C$2 = range.s.c; C$2 <= range.e.c; ++C$2) {
			addr.c = C$2;
			var skip = false;
			for (mi = 0; mi != marr.length; ++mi) {
				if (marr[mi].s.c > C$2) continue;
				if (marr[mi].s.r > R$1) continue;
				if (marr[mi].e.c < C$2) continue;
				if (marr[mi].e.r < R$1) continue;
				if (marr[mi].s.c != C$2 || marr[mi].s.r != R$1) skip = true;
				break;
			}
			if (skip) continue;
			var ref = encode_col(C$2) + encode_row(R$1), cell = dense ? (ws["!data"][R$1] || [])[C$2] : ws[ref];
			row.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));
		}
		row.push("</Row>");
		if (row.length > 2) o$10.push(row.join(""));
	}
	return o$10.join("");
}
function write_ws_xlml(idx, opts, wb) {
	var o$10 = [];
	var s$5 = wb.SheetNames[idx];
	var ws = wb.Sheets[s$5];
	var t$6 = ws ? write_ws_xlml_names(ws, opts, idx, wb) : "";
	if (t$6.length > 0) o$10.push("<Names>" + t$6 + "</Names>");
	t$6 = ws ? write_ws_xlml_table(ws, opts, idx, wb) : "";
	if (t$6.length > 0) o$10.push("<Table>" + t$6 + "</Table>");
	o$10.push(write_ws_xlml_wsopts(ws, opts, idx, wb));
	if (ws && ws["!autofilter"]) o$10.push("<AutoFilter x:Range=\"" + a1_to_rc(fix_range(ws["!autofilter"].ref), {
		r: 0,
		c: 0
	}) + "\" xmlns=\"urn:schemas-microsoft-com:office:excel\"></AutoFilter>");
	return o$10.join("");
}
function write_xlml(wb, opts) {
	if (!opts) opts = {};
	if (!wb.SSF) wb.SSF = dup(table_fmt);
	if (wb.SSF) {
		make_ssf();
		SSF_load_table(wb.SSF);
		opts.revssf = evert_num(wb.SSF);
		opts.revssf[wb.SSF[65535]] = 0;
		opts.ssf = wb.SSF;
		opts.cellXfs = [];
		get_cell_style(opts.cellXfs, {}, { revssf: { "General": 0 } });
	}
	var d$5 = [];
	d$5.push(write_props_xlml(wb, opts));
	d$5.push(write_wb_xlml(wb, opts));
	d$5.push("");
	d$5.push(write_names_xlml(wb, opts));
	for (var i$7 = 0; i$7 < wb.SheetNames.length; ++i$7) d$5.push(writextag("Worksheet", write_ws_xlml(i$7, opts, wb), { "ss:Name": escapexml(wb.SheetNames[i$7]) }));
	d$5[2] = write_sty_xlml(wb, opts);
	return XML_HEADER + writextag("Workbook", d$5.join(""), {
		"xmlns": XLMLNS.ss,
		"xmlns:o": XLMLNS.o,
		"xmlns:x": XLMLNS.x,
		"xmlns:ss": XLMLNS.ss,
		"xmlns:dt": XLMLNS.dt,
		"xmlns:html": XLMLNS.html
	});
}
function parse_compobj(obj) {
	var v$3 = {};
	var o$10 = obj.content;
	o$10.l = 28;
	v$3.AnsiUserType = o$10.read_shift(0, "lpstr-ansi");
	v$3.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o$10);
	if (o$10.length - o$10.l <= 4) return v$3;
	var m$3 = o$10.read_shift(4);
	if (m$3 == 0 || m$3 > 40) return v$3;
	o$10.l -= 4;
	v$3.Reserved1 = o$10.read_shift(0, "lpstr-ansi");
	if (o$10.length - o$10.l <= 4) return v$3;
	m$3 = o$10.read_shift(4);
	if (m$3 !== 1907505652) return v$3;
	v$3.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o$10);
	m$3 = o$10.read_shift(4);
	if (m$3 == 0 || m$3 > 40) return v$3;
	o$10.l -= 4;
	v$3.Reserved2 = o$10.read_shift(0, "lpwstr");
}
function slurp(RecordType, R$1, blob, length, opts) {
	var l$3 = length;
	var bufs = [];
	var d$5 = blob.slice(blob.l, blob.l + l$3);
	if (opts && opts.enc && opts.enc.insitu && d$5.length > 0) switch (RecordType) {
		case 9:
		case 521:
		case 1033:
		case 2057:
		case 47:
		case 405:
		case 225:
		case 406:
		case 312:
		case 404:
		case 10: break;
		case 133: break;
		default: opts.enc.insitu(d$5);
	}
	bufs.push(d$5);
	blob.l += l$3;
	var nextrt = __readUInt16LE(blob, blob.l), next = XLSRecordEnum[nextrt];
	var start = 0;
	while (next != null && CONTINUE_RT.indexOf(nextrt) > -1) {
		l$3 = __readUInt16LE(blob, blob.l + 2);
		start = blob.l + 4;
		if (nextrt == 2066) start += 4;
		else if (nextrt == 2165 || nextrt == 2175) {
			start += 12;
		}
		d$5 = blob.slice(start, blob.l + 4 + l$3);
		bufs.push(d$5);
		blob.l += 4 + l$3;
		next = XLSRecordEnum[nextrt = __readUInt16LE(blob, blob.l)];
	}
	var b$3 = bconcat(bufs);
	prep_blob(b$3, 0);
	var ll = 0;
	b$3.lens = [];
	for (var j$2 = 0; j$2 < bufs.length; ++j$2) {
		b$3.lens.push(ll);
		ll += bufs[j$2].length;
	}
	if (b$3.length < length) throw "XLS Record 0x" + RecordType.toString(16) + " Truncated: " + b$3.length + " < " + length;
	return R$1.f(b$3, b$3.length, opts);
}
function safe_format_xf(p$3, opts, date1904) {
	if (p$3.t === "z") return;
	if (!p$3.XF) return;
	var fmtid = 0;
	try {
		fmtid = p$3.z || p$3.XF.numFmtId || 0;
		if (opts.cellNF && p$3.z == null) p$3.z = table_fmt[fmtid];
	} catch (e$10) {
		if (opts.WTF) throw e$10;
	}
	if (!opts || opts.cellText !== false) try {
		if (p$3.t === "e") {
			p$3.w = p$3.w || BErr[p$3.v];
		} else if (fmtid === 0 || fmtid == "General") {
			if (p$3.t === "n") {
				if ((p$3.v | 0) === p$3.v) p$3.w = p$3.v.toString(10);
				else p$3.w = SSF_general_num(p$3.v);
			} else p$3.w = SSF_general(p$3.v);
		} else p$3.w = SSF_format(fmtid, p$3.v, {
			date1904: !!date1904,
			dateNF: opts && opts.dateNF
		});
	} catch (e$10) {
		if (opts.WTF) throw e$10;
	}
	if (opts.cellDates && fmtid && p$3.t == "n" && fmt_is_date(table_fmt[fmtid] || String(fmtid))) {
		var _d = SSF_parse_date_code(p$3.v + (date1904 ? 1462 : 0));
		if (_d) {
			p$3.t = "d";
			p$3.v = new Date(Date.UTC(_d.y, _d.m - 1, _d.d, _d.H, _d.M, _d.S, _d.u));
		}
	}
}
function make_cell(val$1, ixfe, t$6) {
	return {
		v: val$1,
		ixfe,
		t: t$6
	};
}
function parse_workbook(blob, options) {
	var wb = { opts: {} };
	var Sheets = {};
	if (DENSE != null && options.dense == null) options.dense = DENSE;
	var out = {};
	if (options.dense) out["!data"] = [];
	var Directory = {};
	var range = {};
	var last_formula = null;
	var sst = [];
	var cur_sheet = "";
	var Preamble = {};
	var lastcell, last_cell = "", cc, cmnt, rngC, rngR;
	var sharedf = {};
	var arrayf = [];
	var temp_val;
	var country;
	var XFs = [];
	var palette$1 = [];
	var Workbook = {
		Sheets: [],
		WBProps: { date1904: false },
		Views: [{}]
	}, wsprops = {};
	var biff4w = false;
	var get_rgb = function getrgb(icv) {
		if (icv < 8) return XLSIcv[icv];
		if (icv < 64) return palette$1[icv - 8] || XLSIcv[icv];
		return XLSIcv[icv];
	};
	var process_cell_style = function pcs(line, options$1) {
		var xfd = line.XF.data;
		if (!xfd || !xfd.patternType || !options$1 || !options$1.cellStyles) return;
		line.s = {};
		line.s.patternType = xfd.patternType;
		var t$6;
		if (t$6 = rgb2Hex(get_rgb(xfd.icvFore))) {
			line.s.fgColor = { rgb: t$6 };
		}
		if (t$6 = rgb2Hex(get_rgb(xfd.icvBack))) {
			line.s.bgColor = { rgb: t$6 };
		}
	};
	var addcell = function addcell$1(cell, line, options$1) {
		if (!biff4w && file_depth > 1) return;
		if (options$1.sheetRows && cell.r >= options$1.sheetRows) return;
		if (options$1.cellStyles && line.XF && line.XF.data) process_cell_style(line, options$1);
		delete line.ixfe;
		delete line.XF;
		lastcell = cell;
		last_cell = encode_cell(cell);
		if (!range || !range.s || !range.e) range = {
			s: {
				r: 0,
				c: 0
			},
			e: {
				r: 0,
				c: 0
			}
		};
		if (cell.r < range.s.r) range.s.r = cell.r;
		if (cell.c < range.s.c) range.s.c = cell.c;
		if (cell.r + 1 > range.e.r) range.e.r = cell.r + 1;
		if (cell.c + 1 > range.e.c) range.e.c = cell.c + 1;
		if (options$1.cellFormula && line.f) {
			for (var afi = 0; afi < arrayf.length; ++afi) {
				if (arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;
				if (arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;
				line.F = encode_range(arrayf[afi][0]);
				if (arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;
				if (line.f) line.f = "" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);
				break;
			}
		}
		{
			if (options$1.dense) {
				if (!out["!data"][cell.r]) out["!data"][cell.r] = [];
				out["!data"][cell.r][cell.c] = line;
			} else out[last_cell] = line;
		}
	};
	var opts = {
		enc: false,
		sbcch: 0,
		snames: [],
		sharedf,
		arrayf,
		rrtabid: [],
		lastuser: "",
		biff: 8,
		codepage: 0,
		winlocked: 0,
		cellStyles: !!options && !!options.cellStyles,
		WTF: !!options && !!options.wtf
	};
	if (options.password) opts.password = options.password;
	var themes;
	var merges = [];
	var objects = [];
	var colinfo = [], rowinfo = [];
	var seencol = false;
	var supbooks = [];
	supbooks.SheetNames = opts.snames;
	supbooks.sharedf = opts.sharedf;
	supbooks.arrayf = opts.arrayf;
	supbooks.names = [];
	supbooks.XTI = [];
	var last_RT = 0;
	var file_depth = 0;
	var BIFF2Fmt = 0, BIFF2FmtTable = [];
	var FilterDatabases = [];
	var last_lbl;
	opts.codepage = 1200;
	set_cp(1200);
	var seen_codepage = false;
	while (blob.l < blob.length - 1) {
		var s$5 = blob.l;
		var RecordType = blob.read_shift(2);
		if (RecordType === 0 && last_RT === 10) break;
		var length = blob.l === blob.length ? 0 : blob.read_shift(2);
		var R$1 = XLSRecordEnum[RecordType];
		if (file_depth == 0 && [
			9,
			521,
			1033,
			2057
		].indexOf(RecordType) == -1) break;
		if (R$1 && R$1.f) {
			if (options.bookSheets) {
				if (last_RT === 133 && RecordType !== 133) break;
			}
			last_RT = RecordType;
			if (R$1.r === 2 || R$1.r == 12) {
				var rt = blob.read_shift(2);
				length -= 2;
				if (!opts.enc && rt !== RecordType && ((rt & 255) << 8 | rt >> 8) !== RecordType) throw new Error("rt mismatch: " + rt + "!=" + RecordType);
				if (R$1.r == 12) {
					blob.l += 10;
					length -= 10;
				}
			}
			var val$1 = {};
			if (RecordType === 10) val$1 = R$1.f(blob, length, opts);
			else val$1 = slurp(RecordType, R$1, blob, length, opts);
			if (file_depth == 0 && [
				9,
				521,
				1033,
				2057
			].indexOf(last_RT) === -1) continue;
			switch (RecordType) {
				case 34:
					wb.opts.Date1904 = Workbook.WBProps.date1904 = val$1;
					break;
				case 134:
					wb.opts.WriteProtect = true;
					break;
				case 47:
					if (!opts.enc) blob.l = 0;
					opts.enc = val$1;
					if (!options.password) throw new Error("File is password-protected");
					if (val$1.valid == null) throw new Error("Encryption scheme unsupported");
					if (!val$1.valid) throw new Error("Password is incorrect");
					break;
				case 92:
					opts.lastuser = val$1;
					break;
				case 66:
					var cpval = Number(val$1);
					switch (cpval) {
						case 21010:
							cpval = 1200;
							break;
						case 32768:
							cpval = 1e4;
							break;
						case 32769:
							cpval = 1252;
							break;
					}
					set_cp(opts.codepage = cpval);
					seen_codepage = true;
					break;
				case 317:
					opts.rrtabid = val$1;
					break;
				case 25:
					opts.winlocked = val$1;
					break;
				case 439:
					wb.opts["RefreshAll"] = val$1;
					break;
				case 12:
					wb.opts["CalcCount"] = val$1;
					break;
				case 16:
					wb.opts["CalcDelta"] = val$1;
					break;
				case 17:
					wb.opts["CalcIter"] = val$1;
					break;
				case 13:
					wb.opts["CalcMode"] = val$1;
					break;
				case 14:
					wb.opts["CalcPrecision"] = val$1;
					break;
				case 95:
					wb.opts["CalcSaveRecalc"] = val$1;
					break;
				case 15:
					opts.CalcRefMode = val$1;
					break;
				case 2211:
					wb.opts.FullCalc = val$1;
					break;
				case 129:
					if (val$1.fDialog) out["!type"] = "dialog";
					if (!val$1.fBelow) (out["!outline"] || (out["!outline"] = {})).above = true;
					if (!val$1.fRight) (out["!outline"] || (out["!outline"] = {})).left = true;
					break;
				case 67:
				case 579:
				case 1091:
				case 224:
					XFs.push(val$1);
					break;
				case 430:
					supbooks.push([val$1]);
					supbooks[supbooks.length - 1].XTI = [];
					break;
				case 35:
				case 547:
					supbooks[supbooks.length - 1].push(val$1);
					break;
				case 24:
				case 536:
					last_lbl = {
						Name: val$1.Name,
						Ref: stringify_formula(val$1.rgce, range, null, supbooks, opts)
					};
					if (val$1.itab > 0) last_lbl.Sheet = val$1.itab - 1;
					supbooks.names.push(last_lbl);
					if (!supbooks[0]) {
						supbooks[0] = [];
						supbooks[0].XTI = [];
					}
					supbooks[supbooks.length - 1].push(val$1);
					if (val$1.Name == "_xlnm._FilterDatabase" && val$1.itab > 0) {
						if (val$1.rgce && val$1.rgce[0] && val$1.rgce[0][0] && val$1.rgce[0][0][0] == "PtgArea3d") FilterDatabases[val$1.itab - 1] = { ref: encode_range(val$1.rgce[0][0][1][2]) };
					}
					break;
				case 22:
					opts.ExternCount = val$1;
					break;
				case 23:
					if (supbooks.length == 0) {
						supbooks[0] = [];
						supbooks[0].XTI = [];
					}
					supbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val$1);
					supbooks.XTI = supbooks.XTI.concat(val$1);
					break;
				case 2196:
					if (opts.biff < 8) break;
					if (last_lbl != null) last_lbl.Comment = val$1[1];
					break;
				case 18:
					out["!protect"] = val$1;
					break;
				case 19:
					if (val$1 !== 0 && opts.WTF) console.error("Password verifier: " + val$1);
					break;
				case 133:
					{
						Directory[opts.biff == 4 ? opts.snames.length : val$1.pos] = val$1;
						opts.snames.push(val$1.name);
					}
					break;
				case 10:
					{
						if (--file_depth ? !biff4w : biff4w) break;
						if (range.e) {
							if (range.e.r > 0 && range.e.c > 0) {
								range.e.r--;
								range.e.c--;
								out["!ref"] = encode_range(range);
								if (options.sheetRows && options.sheetRows <= range.e.r) {
									var tmpri = range.e.r;
									range.e.r = options.sheetRows - 1;
									out["!fullref"] = out["!ref"];
									out["!ref"] = encode_range(range);
									range.e.r = tmpri;
								}
								range.e.r++;
								range.e.c++;
							}
							if (merges.length > 0) out["!merges"] = merges;
							if (objects.length > 0) out["!objects"] = objects;
							if (colinfo.length > 0) out["!cols"] = colinfo;
							if (rowinfo.length > 0) out["!rows"] = rowinfo;
							Workbook.Sheets.push(wsprops);
						}
						if (cur_sheet === "") Preamble = out;
						else Sheets[cur_sheet] = out;
						out = {};
						if (options.dense) out["!data"] = [];
					}
					break;
				case 9:
				case 521:
				case 1033:
				case 2057:
					{
						if (opts.biff === 8) opts.biff = {
							9: 2,
							521: 3,
							1033: 4
						}[RecordType] || {
							512: 2,
							768: 3,
							1024: 4,
							1280: 5,
							1536: 8,
							2: 2,
							7: 2
						}[val$1.BIFFVer] || 8;
						opts.biffguess = val$1.BIFFVer == 0;
						if (val$1.BIFFVer == 0 && val$1.dt == 4096) {
							opts.biff = 5;
							seen_codepage = true;
							set_cp(opts.codepage = 28591);
						}
						if (opts.biff == 4 && val$1.dt & 256) biff4w = true;
						if (opts.biff == 8 && val$1.BIFFVer == 0 && val$1.dt == 16) opts.biff = 2;
						if (file_depth++ && !biff4w) break;
						out = {};
						if (options.dense) out["!data"] = [];
						if (opts.biff < 8 && !seen_codepage) {
							seen_codepage = true;
							set_cp(opts.codepage = options.codepage || 1252);
						}
						if (opts.biff == 4 && biff4w) {
							cur_sheet = (Directory[opts.snames.indexOf(cur_sheet) + 1] || { name: "" }).name;
						} else if (opts.biff < 5 || val$1.BIFFVer == 0 && val$1.dt == 4096) {
							if (cur_sheet === "") cur_sheet = "Sheet1";
							range = {
								s: {
									r: 0,
									c: 0
								},
								e: {
									r: 0,
									c: 0
								}
							};
							var fakebs8 = {
								pos: blob.l - length,
								name: cur_sheet
							};
							Directory[fakebs8.pos] = fakebs8;
							opts.snames.push(cur_sheet);
						} else cur_sheet = (Directory[s$5] || { name: "" }).name;
						if (val$1.dt == 32) out["!type"] = "chart";
						if (val$1.dt == 64) out["!type"] = "macro";
						merges = [];
						objects = [];
						opts.arrayf = arrayf = [];
						colinfo = [];
						rowinfo = [];
						seencol = false;
						wsprops = {
							Hidden: (Directory[s$5] || { hs: 0 }).hs,
							name: cur_sheet
						};
					}
					break;
				case 515:
				case 3:
				case 2:
					{
						if (out["!type"] == "chart") {
							if (options.dense ? (out["!data"][val$1.r] || [])[val$1.c] : out[encode_col(val$1.c) + encode_row(val$1.r)]) ++val$1.c;
						}
						temp_val = {
							ixfe: val$1.ixfe,
							XF: XFs[val$1.ixfe] || {},
							v: val$1.val,
							t: "n"
						};
						if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
						safe_format_xf(temp_val, options, wb.opts.Date1904);
						addcell({
							c: val$1.c,
							r: val$1.r
						}, temp_val, options);
					}
					break;
				case 5:
				case 517:
					{
						temp_val = {
							ixfe: val$1.ixfe,
							XF: XFs[val$1.ixfe],
							v: val$1.val,
							t: val$1.t
						};
						if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
						safe_format_xf(temp_val, options, wb.opts.Date1904);
						addcell({
							c: val$1.c,
							r: val$1.r
						}, temp_val, options);
					}
					break;
				case 638:
					{
						temp_val = {
							ixfe: val$1.ixfe,
							XF: XFs[val$1.ixfe],
							v: val$1.rknum,
							t: "n"
						};
						if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
						safe_format_xf(temp_val, options, wb.opts.Date1904);
						addcell({
							c: val$1.c,
							r: val$1.r
						}, temp_val, options);
					}
					break;
				case 189:
					{
						for (var j$2 = val$1.c; j$2 <= val$1.C; ++j$2) {
							var ixfe = val$1.rkrec[j$2 - val$1.c][0];
							temp_val = {
								ixfe,
								XF: XFs[ixfe],
								v: val$1.rkrec[j$2 - val$1.c][1],
								t: "n"
							};
							if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
							safe_format_xf(temp_val, options, wb.opts.Date1904);
							addcell({
								c: j$2,
								r: val$1.r
							}, temp_val, options);
						}
					}
					break;
				case 6:
				case 518:
				case 1030:
					{
						if (val$1.val == "String") {
							last_formula = val$1;
							break;
						}
						temp_val = make_cell(val$1.val, val$1.cell.ixfe, val$1.tt);
						temp_val.XF = XFs[temp_val.ixfe];
						if (options.cellFormula) {
							var _f = val$1.formula;
							if (_f && _f[0] && _f[0][0] && _f[0][0][0] == "PtgExp") {
								var _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];
								var _fe = encode_cell({
									r: _fr,
									c: _fc
								});
								if (sharedf[_fe]) temp_val.f = "" + stringify_formula(val$1.formula, range, val$1.cell, supbooks, opts);
								else temp_val.F = ((options.dense ? (out["!data"][_fr] || [])[_fc] : out[_fe]) || {}).F;
							} else temp_val.f = "" + stringify_formula(val$1.formula, range, val$1.cell, supbooks, opts);
						}
						if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
						safe_format_xf(temp_val, options, wb.opts.Date1904);
						addcell(val$1.cell, temp_val, options);
						last_formula = val$1;
					}
					break;
				case 7:
				case 519:
					{
						if (last_formula) {
							last_formula.val = val$1;
							temp_val = make_cell(val$1, last_formula.cell.ixfe, "s");
							temp_val.XF = XFs[temp_val.ixfe];
							if (options.cellFormula) {
								temp_val.f = "" + stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);
							}
							if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
							safe_format_xf(temp_val, options, wb.opts.Date1904);
							addcell(last_formula.cell, temp_val, options);
							last_formula = null;
						} else throw new Error("String record expects Formula");
					}
					break;
				case 33:
				case 545:
					{
						arrayf.push(val$1);
						var _arraystart = encode_cell(val$1[0].s);
						cc = options.dense ? (out["!data"][val$1[0].s.r] || [])[val$1[0].s.c] : out[_arraystart];
						if (options.cellFormula && cc) {
							if (!last_formula) break;
							if (!_arraystart || !cc) break;
							cc.f = "" + stringify_formula(val$1[1], range, val$1[0], supbooks, opts);
							cc.F = encode_range(val$1[0]);
						}
					}
					break;
				case 1212:
					{
						if (!options.cellFormula) break;
						if (last_cell) {
							if (!last_formula) break;
							sharedf[encode_cell(last_formula.cell)] = val$1[0];
							cc = options.dense ? (out["!data"][last_formula.cell.r] || [])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];
							(cc || {}).f = "" + stringify_formula(val$1[0], range, lastcell, supbooks, opts);
						}
					}
					break;
				case 253:
					temp_val = make_cell(sst[val$1.isst].t, val$1.ixfe, "s");
					if (sst[val$1.isst].h) temp_val.h = sst[val$1.isst].h;
					temp_val.XF = XFs[temp_val.ixfe];
					if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
					safe_format_xf(temp_val, options, wb.opts.Date1904);
					addcell({
						c: val$1.c,
						r: val$1.r
					}, temp_val, options);
					break;
				case 513:
					if (options.sheetStubs) {
						temp_val = {
							ixfe: val$1.ixfe,
							XF: XFs[val$1.ixfe],
							t: "z"
						};
						if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
						safe_format_xf(temp_val, options, wb.opts.Date1904);
						addcell({
							c: val$1.c,
							r: val$1.r
						}, temp_val, options);
					}
					break;
				case 190:
					if (options.sheetStubs) {
						for (var _j = val$1.c; _j <= val$1.C; ++_j) {
							var _ixfe = val$1.ixfe[_j - val$1.c];
							temp_val = {
								ixfe: _ixfe,
								XF: XFs[_ixfe],
								t: "z"
							};
							if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
							safe_format_xf(temp_val, options, wb.opts.Date1904);
							addcell({
								c: _j,
								r: val$1.r
							}, temp_val, options);
						}
					}
					break;
				case 214:
				case 516:
				case 4:
					temp_val = make_cell(val$1.val, val$1.ixfe, "s");
					temp_val.XF = XFs[temp_val.ixfe];
					if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
					safe_format_xf(temp_val, options, wb.opts.Date1904);
					addcell({
						c: val$1.c,
						r: val$1.r
					}, temp_val, options);
					break;
				case 0:
				case 512:
					{
						if (file_depth === 1) range = val$1;
					}
					break;
				case 252:
					{
						sst = val$1;
					}
					break;
				case 1054:
					{
						if (opts.biff >= 3 && opts.biff <= 4) {
							BIFF2FmtTable[BIFF2Fmt++] = val$1[1];
							for (var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if (table_fmt[b4idx] == val$1[1]) break;
							if (b4idx >= 163) SSF__load(val$1[1], BIFF2Fmt + 163);
						} else SSF__load(val$1[1], val$1[0]);
					}
					break;
				case 30:
					{
						BIFF2FmtTable[BIFF2Fmt++] = val$1;
						for (var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if (table_fmt[b2idx] == val$1) break;
						if (b2idx >= 163) SSF__load(val$1, BIFF2Fmt + 163);
					}
					break;
				case 229:
					merges = merges.concat(val$1);
					break;
				case 93:
					objects[val$1.cmo[0]] = opts.lastobj = val$1;
					break;
				case 438:
					opts.lastobj.TxO = val$1;
					break;
				case 127:
					opts.lastobj.ImData = val$1;
					break;
				case 440:
					{
						for (rngR = val$1[0].s.r; rngR <= val$1[0].e.r; ++rngR) for (rngC = val$1[0].s.c; rngC <= val$1[0].e.c; ++rngC) {
							cc = options.dense ? (out["!data"][rngR] || [])[rngC] : out[encode_cell({
								c: rngC,
								r: rngR
							})];
							if (cc) cc.l = val$1[1];
						}
					}
					break;
				case 2048:
					{
						for (rngR = val$1[0].s.r; rngR <= val$1[0].e.r; ++rngR) for (rngC = val$1[0].s.c; rngC <= val$1[0].e.c; ++rngC) {
							cc = options.dense ? (out["!data"][rngR] || [])[rngC] : out[encode_cell({
								c: rngC,
								r: rngR
							})];
							if (cc && cc.l) cc.l.Tooltip = val$1[1];
						}
					}
					break;
				case 28:
					{
						cc = options.dense ? (out["!data"][val$1[0].r] || [])[val$1[0].c] : out[encode_cell(val$1[0])];
						if (!cc) {
							if (options.dense) {
								if (!out["!data"][val$1[0].r]) out["!data"][val$1[0].r] = [];
								cc = out["!data"][val$1[0].r][val$1[0].c] = { t: "z" };
							} else {
								cc = out[encode_cell(val$1[0])] = { t: "z" };
							}
							range.e.r = Math.max(range.e.r, val$1[0].r);
							range.s.r = Math.min(range.s.r, val$1[0].r);
							range.e.c = Math.max(range.e.c, val$1[0].c);
							range.s.c = Math.min(range.s.c, val$1[0].c);
						}
						if (!cc.c) cc.c = [];
						if (opts.biff <= 5 && opts.biff >= 2) cmnt = {
							a: "SheetJ5",
							t: val$1[1]
						};
						else {
							var noteobj = objects[val$1[2]];
							cmnt = {
								a: val$1[1],
								t: noteobj.TxO.t
							};
							if (val$1[3] != null && !(val$1[3] & 2)) cc.c.hidden = true;
						}
						cc.c.push(cmnt);
					}
					break;
				case 2173:
					update_xfext(XFs[val$1.ixfe], val$1.ext);
					break;
				case 125:
					{
						if (!opts.cellStyles) break;
						while (val$1.e >= val$1.s) {
							colinfo[val$1.e--] = {
								width: val$1.w / 256,
								level: val$1.level || 0,
								hidden: !!(val$1.flags & 1)
							};
							if (!seencol) {
								seencol = true;
								find_mdw_colw(val$1.w / 256);
							}
							process_col(colinfo[val$1.e + 1]);
						}
					}
					break;
				case 520:
					{
						var rowobj = {};
						if (val$1.level != null) {
							rowinfo[val$1.r] = rowobj;
							rowobj.level = val$1.level;
						}
						if (val$1.hidden) {
							rowinfo[val$1.r] = rowobj;
							rowobj.hidden = true;
						}
						if (val$1.hpt) {
							rowinfo[val$1.r] = rowobj;
							rowobj.hpt = val$1.hpt;
							rowobj.hpx = pt2px(val$1.hpt);
						}
					}
					break;
				case 38:
				case 39:
				case 40:
				case 41:
					if (!out["!margins"]) default_margins(out["!margins"] = {});
					out["!margins"][{
						38: "left",
						39: "right",
						40: "top",
						41: "bottom"
					}[RecordType]] = val$1;
					break;
				case 161:
					if (!out["!margins"]) default_margins(out["!margins"] = {});
					out["!margins"].header = val$1.header;
					out["!margins"].footer = val$1.footer;
					break;
				case 574:
					if (val$1.RTL) Workbook.Views[0].RTL = true;
					break;
				case 146:
					palette$1 = val$1;
					break;
				case 2198:
					themes = val$1;
					break;
				case 140:
					country = val$1;
					break;
				case 442:
					{
						if (!cur_sheet) Workbook.WBProps.CodeName = val$1 || "ThisWorkbook";
						else wsprops.CodeName = val$1 || wsprops.name;
					}
					break;
			}
		} else {
			if (!R$1) console.error("Missing Info for XLS Record 0x" + RecordType.toString(16));
			blob.l += length;
		}
	}
	wb.SheetNames = keys(Directory).sort(function(a$2, b$3) {
		return Number(a$2) - Number(b$3);
	}).map(function(x$2) {
		return Directory[x$2].name;
	});
	if (!options.bookSheets) wb.Sheets = Sheets;
	if (!wb.SheetNames.length && Preamble["!ref"]) {
		wb.SheetNames.push("Sheet1");
		if (wb.Sheets) wb.Sheets["Sheet1"] = Preamble;
	} else wb.Preamble = Preamble;
	if (wb.Sheets) FilterDatabases.forEach(function(r$10, i$7) {
		wb.Sheets[wb.SheetNames[i$7]]["!autofilter"] = r$10;
	});
	wb.Strings = sst;
	wb.SSF = dup(table_fmt);
	if (opts.enc) wb.Encryption = opts.enc;
	if (themes) wb.Themes = themes;
	wb.Metadata = {};
	if (country !== undefined) wb.Metadata.Country = country;
	if (supbooks.names.length > 0) Workbook.Names = supbooks.names;
	wb.Workbook = Workbook;
	return wb;
}
function parse_xls_props(cfb, props, o$10) {
	var DSI = CFB.find(cfb, "/!DocumentSummaryInformation");
	if (DSI && DSI.size > 0) try {
		var DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);
		for (var d$5 in DocSummary) props[d$5] = DocSummary[d$5];
	} catch (e$10) {
		if (o$10.WTF) throw e$10;
	}
	var SI = CFB.find(cfb, "/!SummaryInformation");
	if (SI && SI.size > 0) try {
		var Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);
		for (var s$5 in Summary) if (props[s$5] == null) props[s$5] = Summary[s$5];
	} catch (e$10) {
		if (o$10.WTF) throw e$10;
	}
	if (props.HeadingPairs && props.TitlesOfParts) {
		load_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o$10);
		delete props.HeadingPairs;
		delete props.TitlesOfParts;
	}
}
function write_xls_props(wb, cfb) {
	var DSEntries = [], SEntries = [], CEntries = [];
	var i$7 = 0, Keys;
	var DocSummaryRE = evert_key(DocSummaryPIDDSI, "n");
	var SummaryRE = evert_key(SummaryPIDSI, "n");
	if (wb.Props) {
		Keys = keys(wb.Props);
		for (i$7 = 0; i$7 < Keys.length; ++i$7) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i$7]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i$7]) ? SEntries : CEntries).push([Keys[i$7], wb.Props[Keys[i$7]]]);
	}
	if (wb.Custprops) {
		Keys = keys(wb.Custprops);
		for (i$7 = 0; i$7 < Keys.length; ++i$7) if (!Object.prototype.hasOwnProperty.call(wb.Props || {}, Keys[i$7])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i$7]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i$7]) ? SEntries : CEntries).push([Keys[i$7], wb.Custprops[Keys[i$7]]]);
	}
	var CEntries2 = [];
	for (i$7 = 0; i$7 < CEntries.length; ++i$7) {
		if (XLSPSSkip.indexOf(CEntries[i$7][0]) > -1 || PseudoPropsPairs.indexOf(CEntries[i$7][0]) > -1) continue;
		if (CEntries[i$7][1] == null) continue;
		CEntries2.push(CEntries[i$7]);
	}
	if (SEntries.length) CFB.utils.cfb_add(cfb, "/SummaryInformation", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));
	if (DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, "/DocumentSummaryInformation", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));
}
function parse_xlscfb(cfb, options) {
	if (!options) options = {};
	fix_read_opts(options);
	reset_cp();
	if (options.codepage) set_ansi(options.codepage);
	var CompObj, WB;
	if (cfb.FullPaths) {
		if (CFB.find(cfb, "/encryption")) throw new Error("File is password-protected");
		CompObj = CFB.find(cfb, "!CompObj");
		WB = CFB.find(cfb, "/Workbook") || CFB.find(cfb, "/Book");
	} else {
		switch (options.type) {
			case "base64":
				cfb = s2a(Base64_decode(cfb));
				break;
			case "binary":
				cfb = s2a(cfb);
				break;
			case "buffer": break;
			case "array":
				if (!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb);
				break;
		}
		prep_blob(cfb, 0);
		WB = { content: cfb };
	}
	var WorkbookP;
	var _data;
	if (CompObj) parse_compobj(CompObj);
	if (options.bookProps && !options.bookSheets) WorkbookP = {};
	else {
		var T$3 = has_buf ? "buffer" : "array";
		if (WB && WB.content) WorkbookP = parse_workbook(WB.content, options);
		else if ((_data = CFB.find(cfb, "PerfectOffice_MAIN")) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T$3, options));
		else if ((_data = CFB.find(cfb, "NativeContent_MAIN")) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T$3, options));
		else if ((_data = CFB.find(cfb, "MN0")) && _data.content) throw new Error("Unsupported Works 4 for Mac file");
		else throw new Error("Cannot find Workbook stream");
		if (options.bookVBA && cfb.FullPaths && CFB.find(cfb, "/_VBA_PROJECT_CUR/VBA/dir")) WorkbookP.vbaraw = make_vba_xls(cfb);
	}
	var props = {};
	if (cfb.FullPaths) parse_xls_props(cfb, props, options);
	WorkbookP.Props = WorkbookP.Custprops = props;
	if (options.bookFiles) WorkbookP.cfb = cfb;
	return WorkbookP;
}
function write_xlscfb(wb, opts) {
	var o$10 = opts || {};
	var cfb = CFB.utils.cfb_new({ root: "R" });
	var wbpath = "/Workbook";
	switch (o$10.bookType || "xls") {
		case "xls": o$10.bookType = "biff8";
		case "xla": if (!o$10.bookType) o$10.bookType = "xla";
		case "biff8":
			wbpath = "/Workbook";
			o$10.biff = 8;
			break;
		case "biff5":
			wbpath = "/Book";
			o$10.biff = 5;
			break;
		default: throw new Error("invalid type " + o$10.bookType + " for XLS CFB");
	}
	CFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o$10));
	if (o$10.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);
	if (o$10.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, { type: typeof wb.vbaraw == "string" ? "binary" : "buffer" }));
	return cfb;
}
function write_biff_rec(ba, type, payload, length) {
	var t$6 = type;
	if (isNaN(t$6)) return;
	var len = length || (payload || []).length || 0;
	var o$10 = ba.next(4);
	o$10.write_shift(2, t$6);
	o$10.write_shift(2, len);
	if (len > 0 && is_buf(payload)) ba.push(payload);
}
function write_biff_continue(ba, type, payload, length) {
	var len = length || (payload || []).length || 0;
	if (len <= 8224) return write_biff_rec(ba, type, payload, len);
	var t$6 = type;
	if (isNaN(t$6)) return;
	var parts = payload.parts || [], sidx = 0;
	var i$7 = 0, w$2 = 0;
	while (w$2 + (parts[sidx] || 8224) <= 8224) {
		w$2 += parts[sidx] || 8224;
		sidx++;
	}
	var o$10 = ba.next(4);
	o$10.write_shift(2, t$6);
	o$10.write_shift(2, w$2);
	ba.push(payload.slice(i$7, i$7 + w$2));
	i$7 += w$2;
	while (i$7 < len) {
		o$10 = ba.next(4);
		o$10.write_shift(2, 60);
		w$2 = 0;
		while (w$2 + (parts[sidx] || 8224) <= 8224) {
			w$2 += parts[sidx] || 8224;
			sidx++;
		}
		o$10.write_shift(2, w$2);
		ba.push(payload.slice(i$7, i$7 + w$2));
		i$7 += w$2;
	}
}
function write_BIFF2BERR(r$10, c$7, val$1, t$6) {
	var out = new_buf(9);
	write_BIFF2Cell(out, r$10, c$7);
	write_Bes(val$1, t$6 || "b", out);
	return out;
}
function write_BIFF2LABEL(r$10, c$7, val$1) {
	var out = new_buf(8 + 2 * val$1.length);
	write_BIFF2Cell(out, r$10, c$7);
	out.write_shift(1, val$1.length);
	out.write_shift(val$1.length, val$1, "sbcs");
	return out.l < out.length ? out.slice(0, out.l) : out;
}
function write_comments_biff2(ba, comments) {
	comments.forEach(function(data) {
		var text$2 = data[0].map(function(cc) {
			return cc.t;
		}).join("");
		if (text$2.length <= 2048) return write_biff_rec(ba, 28, write_NOTE_BIFF2(text$2, data[1], data[2]));
		write_biff_rec(ba, 28, write_NOTE_BIFF2(text$2.slice(0, 2048), data[1], data[2], text$2.length));
		for (var i$7 = 2048; i$7 < text$2.length; i$7 += 2048) write_biff_rec(ba, 28, write_NOTE_BIFF2(text$2.slice(i$7, Math.min(i$7 + 2048, text$2.length)), -1, -1, Math.min(2048, text$2.length - i$7)));
	});
}
function write_ws_biff2_cell(ba, cell, R$1, C$2, opts, date1904) {
	var ifmt = 0;
	if (cell.z != null) {
		ifmt = opts._BIFF2FmtTable.indexOf(cell.z);
		if (ifmt == -1) {
			opts._BIFF2FmtTable.push(cell.z);
			ifmt = opts._BIFF2FmtTable.length - 1;
		}
	}
	var ixfe = 0;
	if (cell.z != null) {
		for (; ixfe < opts.cellXfs.length; ++ixfe) if (opts.cellXfs[ixfe].numFmtId == ifmt) break;
		if (ixfe == opts.cellXfs.length) opts.cellXfs.push({ numFmtId: ifmt });
	}
	if (cell.v != null) switch (cell.t) {
		case "d":
		case "n":
			var v$3 = cell.t == "d" ? datenum(parseDate(cell.v, date1904), date1904) : cell.v;
			if (opts.biff == 2 && v$3 == (v$3 | 0) && v$3 >= 0 && v$3 < 65536) write_biff_rec(ba, 2, write_BIFF2INT(R$1, C$2, v$3, ixfe, ifmt));
			else if (isNaN(v$3)) write_biff_rec(ba, 5, write_BIFF2BERR(R$1, C$2, 36, "e"));
			else if (!isFinite(v$3)) write_biff_rec(ba, 5, write_BIFF2BERR(R$1, C$2, 7, "e"));
			else write_biff_rec(ba, 3, write_BIFF2NUM(R$1, C$2, v$3, ixfe, ifmt));
			return;
		case "b":
		case "e":
			write_biff_rec(ba, 5, write_BIFF2BERR(R$1, C$2, cell.v, cell.t));
			return;
		case "s":
		case "str":
			write_biff_rec(ba, 4, write_BIFF2LABEL(R$1, C$2, cell.v == null ? "" : String(cell.v).slice(0, 255)));
			return;
	}
	write_biff_rec(ba, 1, write_BIFF2Cell(null, R$1, C$2));
}
function write_ws_biff2(ba, ws, idx, opts, wb) {
	var dense = ws["!data"] != null;
	var range = safe_decode_range(ws["!ref"] || "A1"), rr = "", cols = [];
	if (range.e.c > 255 || range.e.r > 16383) {
		if (opts.WTF) throw new Error("Range " + (ws["!ref"] || "A1") + " exceeds format limit A1:IV16384");
		range.e.c = Math.min(range.e.c, 255);
		range.e.r = Math.min(range.e.r, 16383);
	}
	var date1904 = (((wb || {}).Workbook || {}).WBProps || {}).date1904;
	var row = [], comments = [];
	for (var C$2 = range.s.c; C$2 <= range.e.c; ++C$2) cols[C$2] = encode_col(C$2);
	for (var R$1 = range.s.r; R$1 <= range.e.r; ++R$1) {
		if (dense) row = ws["!data"][R$1] || [];
		rr = encode_row(R$1);
		for (C$2 = range.s.c; C$2 <= range.e.c; ++C$2) {
			var cell = dense ? row[C$2] : ws[cols[C$2] + rr];
			if (!cell) continue;
			write_ws_biff2_cell(ba, cell, R$1, C$2, opts, date1904);
			if (cell.c) comments.push([
				cell.c,
				R$1,
				C$2
			]);
		}
	}
	write_comments_biff2(ba, comments);
}
function write_biff2_buf(wb, opts) {
	var o$10 = opts || {};
	var ba = buf_array();
	var idx = 0;
	for (var i$7 = 0; i$7 < wb.SheetNames.length; ++i$7) if (wb.SheetNames[i$7] == o$10.sheet) idx = i$7;
	if (idx == 0 && !!o$10.sheet && wb.SheetNames[0] != o$10.sheet) throw new Error("Sheet not found: " + o$10.sheet);
	write_biff_rec(ba, o$10.biff == 4 ? 1033 : o$10.biff == 3 ? 521 : 9, write_BOF(wb, 16, o$10));
	if (((wb.Workbook || {}).WBProps || {}).date1904) write_biff_rec(ba, 34, writebool(true));
	o$10.cellXfs = [{ numFmtId: 0 }];
	o$10._BIFF2FmtTable = ["General"];
	o$10._Fonts = [];
	var body = buf_array();
	write_ws_biff2(body, wb.Sheets[wb.SheetNames[idx]], idx, o$10, wb);
	o$10._BIFF2FmtTable.forEach(function(f$4) {
		if (o$10.biff <= 3) write_biff_rec(ba, 30, write_BIFF2Format(f$4));
		else write_biff_rec(ba, 1054, write_BIFF4Format(f$4));
	});
	o$10.cellXfs.forEach(function(xf) {
		switch (o$10.biff) {
			case 2:
				write_biff_rec(ba, 67, write_BIFF2XF(xf));
				break;
			case 3:
				write_biff_rec(ba, 579, write_BIFF3XF(xf));
				break;
			case 4:
				write_biff_rec(ba, 1091, write_BIFF4XF(xf));
				break;
		}
	});
	delete o$10._BIFF2FmtTable;
	delete o$10.cellXfs;
	delete o$10._Fonts;
	ba.push(body.end());
	write_biff_rec(ba, 10);
	return ba.end();
}
function write_MsoDrawingGroup() {
	var buf = new_buf(82 + 8 * b8ocnts.length);
	buf.write_shift(2, 15);
	buf.write_shift(2, 61440);
	buf.write_shift(4, 74 + 8 * b8ocnts.length);
	{
		buf.write_shift(2, 0);
		buf.write_shift(2, 61446);
		buf.write_shift(4, 16 + 8 * b8ocnts.length);
		{
			buf.write_shift(4, b8oid);
			buf.write_shift(4, b8ocnts.length + 1);
			var acc = 0;
			for (var i$7 = 0; i$7 < b8ocnts.length; ++i$7) acc += b8ocnts[i$7] && b8ocnts[i$7][1] || 0;
			buf.write_shift(4, acc);
			buf.write_shift(4, b8ocnts.length);
		}
		b8ocnts.forEach(function(b8) {
			buf.write_shift(4, b8[0]);
			buf.write_shift(4, b8[2]);
		});
	}
	{
		buf.write_shift(2, 51);
		buf.write_shift(2, 61451);
		buf.write_shift(4, 18);
		buf.write_shift(2, 191);
		buf.write_shift(4, 524296);
		buf.write_shift(2, 385);
		buf.write_shift(4, 134217793);
		buf.write_shift(2, 448);
		buf.write_shift(4, 134217792);
	}
	{
		buf.write_shift(2, 64);
		buf.write_shift(2, 61726);
		buf.write_shift(4, 16);
		buf.write_shift(4, 134217741);
		buf.write_shift(4, 134217740);
		buf.write_shift(4, 134217751);
		buf.write_shift(4, 268435703);
	}
	return buf;
}
function write_comments_biff8(ba, comments) {
	var notes = [], sz = 0, pl = buf_array(), baseid = b8oid;
	var _oasc;
	comments.forEach(function(c$7, ci) {
		var author = "";
		var text$2 = c$7[0].map(function(t$6) {
			if (t$6.a && !author) author = t$6.a;
			return t$6.t;
		}).join("");
		++b8oid;
		{
			var oasc = new_buf(150);
			oasc.write_shift(2, 15);
			oasc.write_shift(2, 61444);
			oasc.write_shift(4, 150);
			{
				oasc.write_shift(2, 3234);
				oasc.write_shift(2, 61450);
				oasc.write_shift(4, 8);
				oasc.write_shift(4, b8oid);
				oasc.write_shift(4, 2560);
			}
			{
				oasc.write_shift(2, 227);
				oasc.write_shift(2, 61451);
				oasc.write_shift(4, 84);
				oasc.write_shift(2, 128);
				oasc.write_shift(4, 0);
				oasc.write_shift(2, 139);
				oasc.write_shift(4, 2);
				oasc.write_shift(2, 191);
				oasc.write_shift(4, 524296);
				oasc.write_shift(2, 344);
				oasc.l += 4;
				oasc.write_shift(2, 385);
				oasc.write_shift(4, 134217808);
				oasc.write_shift(2, 387);
				oasc.write_shift(4, 134217808);
				oasc.write_shift(2, 389);
				oasc.write_shift(4, 268435700);
				oasc.write_shift(2, 447);
				oasc.write_shift(4, 1048592);
				oasc.write_shift(2, 448);
				oasc.write_shift(4, 134217809);
				oasc.write_shift(2, 451);
				oasc.write_shift(4, 268435700);
				oasc.write_shift(2, 513);
				oasc.write_shift(4, 134217809);
				oasc.write_shift(2, 515);
				oasc.write_shift(4, 268435700);
				oasc.write_shift(2, 575);
				oasc.write_shift(4, 196609);
				oasc.write_shift(2, 959);
				oasc.write_shift(4, 131072 | (c$7[0].hidden ? 2 : 0));
			}
			{
				oasc.l += 2;
				oasc.write_shift(2, 61456);
				oasc.write_shift(4, 18);
				oasc.write_shift(2, 3);
				oasc.write_shift(2, c$7[2] + 2);
				oasc.l += 2;
				oasc.write_shift(2, c$7[1] + 1);
				oasc.l += 2;
				oasc.write_shift(2, c$7[2] + 4);
				oasc.l += 2;
				oasc.write_shift(2, c$7[1] + 5);
				oasc.l += 2;
			}
			{
				oasc.l += 2;
				oasc.write_shift(2, 61457);
				oasc.l += 4;
			}
			oasc.l = 150;
			if (ci == 0) _oasc = oasc;
			else write_biff_rec(pl, 236, oasc);
		}
		sz += 150;
		{
			var obj = new_buf(52);
			obj.write_shift(2, 21);
			obj.write_shift(2, 18);
			obj.write_shift(2, 25);
			obj.write_shift(2, b8oid);
			obj.write_shift(2, 0);
			obj.l = 22;
			obj.write_shift(2, 13);
			obj.write_shift(2, 22);
			obj.write_shift(4, 1651663474);
			obj.write_shift(4, 2503426821);
			obj.write_shift(4, 2150634280);
			obj.write_shift(4, 1768515844 + b8oid * 256);
			obj.write_shift(2, 0);
			obj.write_shift(4, 0);
			obj.l += 4;
			write_biff_rec(pl, 93, obj);
		}
		{
			var oact = new_buf(8);
			oact.l += 2;
			oact.write_shift(2, 61453);
			oact.l += 4;
			write_biff_rec(pl, 236, oact);
		}
		sz += 8;
		{
			var txo = new_buf(18);
			txo.write_shift(2, 18);
			txo.l += 8;
			txo.write_shift(2, text$2.length);
			txo.write_shift(2, 16);
			txo.l += 4;
			write_biff_rec(pl, 438, txo);
			{
				var cont = new_buf(1 + text$2.length);
				cont.write_shift(1, 0);
				cont.write_shift(text$2.length, text$2, "sbcs");
				write_biff_rec(pl, 60, cont);
			}
			{
				var conf = new_buf(16);
				conf.l += 8;
				conf.write_shift(2, text$2.length);
				conf.l += 6;
				write_biff_rec(pl, 60, conf);
			}
		}
		{
			var notesh = new_buf(12 + author.length);
			notesh.write_shift(2, c$7[1]);
			notesh.write_shift(2, c$7[2]);
			notesh.write_shift(2, 0 | (c$7[0].hidden ? 0 : 2));
			notesh.write_shift(2, b8oid);
			notesh.write_shift(2, author.length);
			notesh.write_shift(1, 0);
			notesh.write_shift(author.length, author, "sbcs");
			notesh.l++;
			notes.push(notesh);
		}
	});
	{
		var hdr = new_buf(80);
		hdr.write_shift(2, 15);
		hdr.write_shift(2, 61442);
		hdr.write_shift(4, sz + hdr.length - 8);
		{
			hdr.write_shift(2, 16);
			hdr.write_shift(2, 61448);
			hdr.write_shift(4, 8);
			hdr.write_shift(4, comments.length + 1);
			hdr.write_shift(4, b8oid);
		}
		{
			hdr.write_shift(2, 15);
			hdr.write_shift(2, 61443);
			hdr.write_shift(4, sz + 48);
			{
				hdr.write_shift(2, 15);
				hdr.write_shift(2, 61444);
				hdr.write_shift(4, 40);
				{
					hdr.write_shift(2, 1);
					hdr.write_shift(2, 61449);
					hdr.write_shift(4, 16);
					hdr.l += 16;
				}
				{
					hdr.write_shift(2, 2);
					hdr.write_shift(2, 61450);
					hdr.write_shift(4, 8);
					hdr.write_shift(4, baseid);
					hdr.write_shift(4, 5);
				}
			}
		}
		write_biff_rec(ba, 236, _oasc ? bconcat([hdr, _oasc]) : hdr);
	}
	ba.push(pl.end());
	notes.forEach(function(n$9) {
		write_biff_rec(ba, 28, n$9);
	});
	b8ocnts.push([
		baseid,
		comments.length + 1,
		b8oid
	]);
	++b8oid;
}
function write_FONTS_biff8(ba, data, opts) {
	write_biff_rec(ba, 49, write_Font({
		sz: 12,
		color: { theme: 1 },
		name: "Arial",
		family: 2,
		scheme: "minor"
	}, opts));
}
function write_FMTS_biff8(ba, NF, opts) {
	if (!NF) return;
	[
		[5, 8],
		[23, 26],
		[41, 44],
		[50, 392]
	].forEach(function(r$10) {
		for (var i$7 = r$10[0]; i$7 <= r$10[1]; ++i$7) if (NF[i$7] != null) write_biff_rec(ba, 1054, write_Format(i$7, NF[i$7], opts));
	});
}
function write_FEAT(ba, ws) {
	var o$10 = new_buf(19);
	o$10.write_shift(4, 2151);
	o$10.write_shift(4, 0);
	o$10.write_shift(4, 0);
	o$10.write_shift(2, 3);
	o$10.write_shift(1, 1);
	o$10.write_shift(4, 0);
	write_biff_rec(ba, 2151, o$10);
	o$10 = new_buf(39);
	o$10.write_shift(4, 2152);
	o$10.write_shift(4, 0);
	o$10.write_shift(4, 0);
	o$10.write_shift(2, 3);
	o$10.write_shift(1, 0);
	o$10.write_shift(4, 0);
	o$10.write_shift(2, 1);
	o$10.write_shift(4, 4);
	o$10.write_shift(2, 0);
	write_Ref8U(safe_decode_range(ws["!ref"] || "A1"), o$10);
	o$10.write_shift(4, 4);
	write_biff_rec(ba, 2152, o$10);
}
function write_CELLXFS_biff8(ba, opts) {
	for (var i$7 = 0; i$7 < 16; ++i$7) write_biff_rec(ba, 224, write_XF({
		numFmtId: 0,
		style: true
	}, 0, opts));
	opts.cellXfs.forEach(function(c$7) {
		write_biff_rec(ba, 224, write_XF(c$7, 0, opts));
	});
}
function write_ws_biff8_hlinks(ba, ws) {
	for (var R$1 = 0; R$1 < ws["!links"].length; ++R$1) {
		var HL = ws["!links"][R$1];
		write_biff_rec(ba, 440, write_HLink(HL));
		if (HL[1].Tooltip) write_biff_rec(ba, 2048, write_HLinkTooltip(HL));
	}
	delete ws["!links"];
}
function write_ws_cols_biff8(ba, cols) {
	if (!cols) return;
	var cnt = 0;
	cols.forEach(function(col, idx) {
		if (++cnt <= 256 && col) {
			write_biff_rec(ba, 125, write_ColInfo(col_obj_w(idx, col), idx));
		}
	});
}
function write_ws_biff8_cell(ba, cell, R$1, C$2, opts, date1904) {
	var os = 16 + get_cell_style(opts.cellXfs, cell, opts);
	if (cell.v == null && !cell.bf) {
		write_biff_rec(ba, 513, write_XLSCell(R$1, C$2, os));
		return;
	}
	if (cell.bf) write_biff_rec(ba, 6, write_Formula(cell, R$1, C$2, opts, os));
	else switch (cell.t) {
		case "d":
		case "n":
			var v$3 = cell.t == "d" ? datenum(parseDate(cell.v, date1904), date1904) : cell.v;
			if (isNaN(v$3)) write_biff_rec(ba, 517, write_BoolErr(R$1, C$2, 36, os, opts, "e"));
			else if (!isFinite(v$3)) write_biff_rec(ba, 517, write_BoolErr(R$1, C$2, 7, os, opts, "e"));
			else write_biff_rec(ba, 515, write_Number(R$1, C$2, v$3, os, opts));
			break;
		case "b":
		case "e":
			write_biff_rec(ba, 517, write_BoolErr(R$1, C$2, cell.v, os, opts, cell.t));
			break;
		case "s":
		case "str":
			if (opts.bookSST) {
				var isst = get_sst_id(opts.Strings, cell.v == null ? "" : String(cell.v), opts.revStrings);
				write_biff_rec(ba, 253, write_LabelSst(R$1, C$2, isst, os, opts));
			} else write_biff_rec(ba, 516, write_Label(R$1, C$2, (cell.v == null ? "" : String(cell.v)).slice(0, 255), os, opts));
			break;
		default: write_biff_rec(ba, 513, write_XLSCell(R$1, C$2, os));
	}
}
function write_ws_biff8(idx, opts, wb) {
	var ba = buf_array();
	var s$5 = wb.SheetNames[idx], ws = wb.Sheets[s$5] || {};
	var _WB = (wb || {}).Workbook || {};
	var _sheet = (_WB.Sheets || [])[idx] || {};
	var dense = ws["!data"] != null;
	var b8 = opts.biff == 8;
	var ref, rr = "", cols = [];
	var range = safe_decode_range(ws["!ref"] || "A1");
	var MAX_ROWS = b8 ? 65536 : 16384;
	if (range.e.c > 255 || range.e.r >= MAX_ROWS) {
		if (opts.WTF) throw new Error("Range " + (ws["!ref"] || "A1") + " exceeds format limit A1:IV" + MAX_ROWS);
		range.e.c = Math.min(range.e.c, 255);
		range.e.r = Math.min(range.e.r, MAX_ROWS - 1);
	}
	write_biff_rec(ba, 2057, write_BOF(wb, 16, opts));
	write_biff_rec(ba, 13, writeuint16(1));
	write_biff_rec(ba, 12, writeuint16(100));
	write_biff_rec(ba, 15, writebool(true));
	write_biff_rec(ba, 17, writebool(false));
	write_biff_rec(ba, 16, write_Xnum(.001));
	write_biff_rec(ba, 95, writebool(true));
	write_biff_rec(ba, 42, writebool(false));
	write_biff_rec(ba, 43, writebool(false));
	write_biff_rec(ba, 130, writeuint16(1));
	write_biff_rec(ba, 128, write_Guts([0, 0]));
	write_biff_rec(ba, 131, writebool(false));
	write_biff_rec(ba, 132, writebool(false));
	if (b8) write_ws_cols_biff8(ba, ws["!cols"]);
	write_biff_rec(ba, 512, write_Dimensions(range, opts));
	var date1904 = (((wb || {}).Workbook || {}).WBProps || {}).date1904;
	if (b8) ws["!links"] = [];
	for (var C$2 = range.s.c; C$2 <= range.e.c; ++C$2) cols[C$2] = encode_col(C$2);
	var comments = [];
	var row = [];
	for (var R$1 = range.s.r; R$1 <= range.e.r; ++R$1) {
		if (dense) row = ws["!data"][R$1] || [];
		rr = encode_row(R$1);
		for (C$2 = range.s.c; C$2 <= range.e.c; ++C$2) {
			var cell = dense ? row[C$2] : ws[cols[C$2] + rr];
			if (!cell) continue;
			write_ws_biff8_cell(ba, cell, R$1, C$2, opts, date1904);
			if (b8 && cell.l) ws["!links"].push([cols[C$2] + rr, cell.l]);
			if (cell.c) comments.push([
				cell.c,
				R$1,
				C$2
			]);
		}
	}
	var cname = _sheet.CodeName || _sheet.name || s$5;
	if (b8) write_comments_biff8(ba, comments);
	else write_comments_biff2(ba, comments);
	if (b8) write_biff_rec(ba, 574, write_Window2((_WB.Views || [])[0]));
	if (b8 && (ws["!merges"] || []).length) write_biff_rec(ba, 229, write_MergeCells(ws["!merges"]));
	if (b8) write_ws_biff8_hlinks(ba, ws);
	write_biff_rec(ba, 442, write_XLUnicodeString(cname, opts));
	if (b8) write_FEAT(ba, ws);
	write_biff_rec(ba, 10);
	return ba.end();
}
function write_biff8_global(wb, bufs, opts) {
	var A$1 = buf_array();
	var _WB = (wb || {}).Workbook || {};
	var _sheets = _WB.Sheets || [];
	var _wb = _WB.WBProps || {};
	var b8 = opts.biff == 8, b5 = opts.biff == 5;
	write_biff_rec(A$1, 2057, write_BOF(wb, 5, opts));
	if (opts.bookType == "xla") write_biff_rec(A$1, 135);
	write_biff_rec(A$1, 225, b8 ? writeuint16(1200) : null);
	write_biff_rec(A$1, 193, writezeroes(2));
	if (b5) write_biff_rec(A$1, 191);
	if (b5) write_biff_rec(A$1, 192);
	write_biff_rec(A$1, 226);
	write_biff_rec(A$1, 92, write_WriteAccess("SheetJS", opts));
	write_biff_rec(A$1, 66, writeuint16(b8 ? 1200 : 1252));
	if (b8) write_biff_rec(A$1, 353, writeuint16(0));
	if (b8) write_biff_rec(A$1, 448);
	write_biff_rec(A$1, 317, write_RRTabId(wb.SheetNames.length));
	if (b8 && wb.vbaraw) write_biff_rec(A$1, 211);
	if (b8 && wb.vbaraw) {
		var cname = _wb.CodeName || "ThisWorkbook";
		write_biff_rec(A$1, 442, write_XLUnicodeString(cname, opts));
	}
	write_biff_rec(A$1, 156, writeuint16(17));
	write_biff_rec(A$1, 25, writebool(false));
	write_biff_rec(A$1, 18, writebool(false));
	write_biff_rec(A$1, 19, writeuint16(0));
	if (b8) write_biff_rec(A$1, 431, writebool(false));
	if (b8) write_biff_rec(A$1, 444, writeuint16(0));
	write_biff_rec(A$1, 61, write_Window1(opts));
	write_biff_rec(A$1, 64, writebool(false));
	write_biff_rec(A$1, 141, writeuint16(0));
	write_biff_rec(A$1, 34, writebool(safe1904(wb) == "true"));
	write_biff_rec(A$1, 14, writebool(true));
	if (b8) write_biff_rec(A$1, 439, writebool(false));
	write_biff_rec(A$1, 218, writeuint16(0));
	write_FONTS_biff8(A$1, wb, opts);
	write_FMTS_biff8(A$1, wb.SSF, opts);
	write_CELLXFS_biff8(A$1, opts);
	if (b8) write_biff_rec(A$1, 352, writebool(false));
	var a$2 = A$1.end();
	var C$2 = buf_array();
	if (b8) write_biff_rec(C$2, 140, write_Country());
	if (b8 && b8ocnts.length) write_biff_rec(C$2, 235, write_MsoDrawingGroup());
	if (b8 && opts.Strings) write_biff_continue(C$2, 252, write_SST(opts.Strings, opts));
	write_biff_rec(C$2, 10);
	var c$7 = C$2.end();
	var B$2 = buf_array();
	var blen = 0, j$2 = 0;
	for (j$2 = 0; j$2 < wb.SheetNames.length; ++j$2) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j$2].length;
	var start = a$2.length + blen + c$7.length;
	for (j$2 = 0; j$2 < wb.SheetNames.length; ++j$2) {
		var _sheet = _sheets[j$2] || {};
		write_biff_rec(B$2, 133, write_BoundSheet8({
			pos: start,
			hs: _sheet.Hidden || 0,
			dt: 0,
			name: wb.SheetNames[j$2]
		}, opts));
		start += bufs[j$2].length;
	}
	var b$3 = B$2.end();
	if (blen != b$3.length) throw new Error("BS8 " + blen + " != " + b$3.length);
	var out = [];
	if (a$2.length) out.push(a$2);
	if (b$3.length) out.push(b$3);
	if (c$7.length) out.push(c$7);
	return bconcat(out);
}
function write_biff8_buf(wb, opts) {
	var o$10 = opts || {};
	var bufs = [];
	if (wb && !wb.SSF) {
		wb.SSF = dup(table_fmt);
	}
	if (wb && wb.SSF) {
		make_ssf();
		SSF_load_table(wb.SSF);
		o$10.revssf = evert_num(wb.SSF);
		o$10.revssf[wb.SSF[65535]] = 0;
		o$10.ssf = wb.SSF;
	}
	b8oid = 1;
	b8ocnts = [];
	o$10.Strings = [];
	o$10.Strings.Count = 0;
	o$10.Strings.Unique = 0;
	fix_write_opts(o$10);
	o$10.cellXfs = [];
	get_cell_style(o$10.cellXfs, {}, { revssf: { "General": 0 } });
	if (!wb.Props) wb.Props = {};
	for (var i$7 = 0; i$7 < wb.SheetNames.length; ++i$7) bufs[bufs.length] = write_ws_biff8(i$7, o$10, wb);
	bufs.unshift(write_biff8_global(wb, bufs, o$10));
	return bconcat(bufs);
}
function write_biff_buf(wb, opts) {
	for (var i$7 = 0; i$7 <= wb.SheetNames.length; ++i$7) {
		var ws = wb.Sheets[wb.SheetNames[i$7]];
		if (!ws || !ws["!ref"]) continue;
		var range = decode_range(ws["!ref"]);
		if (range.e.c > 255) {
			if (typeof console != "undefined" && console.error) console.error("Worksheet '" + wb.SheetNames[i$7] + "' extends beyond column IV (255).  Data may be lost.");
		}
		if (range.e.r > 65535) {
			if (typeof console != "undefined" && console.error) console.error("Worksheet '" + wb.SheetNames[i$7] + "' extends beyond row 65536.  Data may be lost.");
		}
	}
	var o$10 = opts || {};
	switch (o$10.biff || 2) {
		case 8:
		case 5: return write_biff8_buf(wb, opts);
		case 4:
		case 3:
		case 2: return write_biff2_buf(wb, opts);
	}
	throw new Error("invalid type " + o$10.bookType + " for BIFF");
}
function html_to_sheet(str, _opts) {
	var opts = _opts || {};
	var dense = opts.dense != null ? opts.dense : DENSE;
	var ws = {};
	if (dense) ws["!data"] = [];
	str = str_remove_ng(str, "<!--", "-->");
	var mtch = str.match(/<table/i);
	if (!mtch) throw new Error("Invalid HTML: could not find <table>");
	var mtch2 = str.match(/<\/table/i);
	var i$7 = mtch.index, j$2 = mtch2 && mtch2.index || str.length;
	var rows = split_regex(str.slice(i$7, j$2), /(:?<tr[^<>]*>)/i, "<tr>");
	var R$1 = -1, C$2 = 0, RS = 0, CS = 0;
	var range = {
		s: {
			r: 1e7,
			c: 1e7
		},
		e: {
			r: 0,
			c: 0
		}
	};
	var merges = [];
	for (i$7 = 0; i$7 < rows.length; ++i$7) {
		var row = rows[i$7].trim();
		var hd = row.slice(0, 3).toLowerCase();
		if (hd == "<tr") {
			++R$1;
			if (opts.sheetRows && opts.sheetRows <= R$1) {
				--R$1;
				break;
			}
			C$2 = 0;
			continue;
		}
		if (hd != "<td" && hd != "<th") continue;
		var cells = row.split(/<\/t[dh]>/i);
		for (j$2 = 0; j$2 < cells.length; ++j$2) {
			var cell = cells[j$2].trim();
			if (!cell.match(/<t[dh]/i)) continue;
			var m$3 = cell, cc = 0;
			while (m$3.charAt(0) == "<" && (cc = m$3.indexOf(">")) > -1) m$3 = m$3.slice(cc + 1);
			for (var midx = 0; midx < merges.length; ++midx) {
				var _merge = merges[midx];
				if (_merge.s.c == C$2 && _merge.s.r < R$1 && R$1 <= _merge.e.r) {
					C$2 = _merge.e.c + 1;
					midx = -1;
				}
			}
			var tag = parsexmltag(cell.slice(0, cell.indexOf(">")));
			CS = tag.colspan ? +tag.colspan : 1;
			if ((RS = +tag.rowspan) > 1 || CS > 1) merges.push({
				s: {
					r: R$1,
					c: C$2
				},
				e: {
					r: R$1 + (RS || 1) - 1,
					c: C$2 + CS - 1
				}
			});
			var _t = tag.t || tag["data-t"] || "";
			if (!m$3.length) {
				C$2 += CS;
				continue;
			}
			m$3 = htmldecode(m$3);
			if (range.s.r > R$1) range.s.r = R$1;
			if (range.e.r < R$1) range.e.r = R$1;
			if (range.s.c > C$2) range.s.c = C$2;
			if (range.e.c < C$2) range.e.c = C$2;
			if (!m$3.length) {
				C$2 += CS;
				continue;
			}
			var o$10 = {
				t: "s",
				v: m$3
			};
			if (opts.raw || !m$3.trim().length || _t == "s") {} else if (m$3 === "TRUE") o$10 = {
				t: "b",
				v: true
			};
			else if (m$3 === "FALSE") o$10 = {
				t: "b",
				v: false
			};
			else if (!isNaN(fuzzynum(m$3))) o$10 = {
				t: "n",
				v: fuzzynum(m$3)
			};
			else if (!isNaN(fuzzydate(m$3).getDate())) {
				o$10 = {
					t: "d",
					v: parseDate(m$3)
				};
				if (opts.UTC === false) o$10.v = utc_to_local(o$10.v);
				if (!opts.cellDates) o$10 = {
					t: "n",
					v: datenum(o$10.v)
				};
				o$10.z = opts.dateNF || table_fmt[14];
			} else if (m$3.charCodeAt(0) == 35 && RBErr[m$3] != null) {
				o$10.t = "e";
				o$10.w = m$3;
				o$10.v = RBErr[m$3];
			}
			if (o$10.cellText !== false) o$10.w = m$3;
			if (dense) {
				if (!ws["!data"][R$1]) ws["!data"][R$1] = [];
				ws["!data"][R$1][C$2] = o$10;
			} else ws[encode_cell({
				r: R$1,
				c: C$2
			})] = o$10;
			C$2 += CS;
		}
	}
	ws["!ref"] = encode_range(range);
	if (merges.length) ws["!merges"] = merges;
	return ws;
}
function make_html_row(ws, r$10, R$1, o$10) {
	var M$3 = ws["!merges"] || [];
	var oo = [];
	var sp = {};
	var dense = ws["!data"] != null;
	for (var C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
		var RS = 0, CS = 0;
		for (var j$2 = 0; j$2 < M$3.length; ++j$2) {
			if (M$3[j$2].s.r > R$1 || M$3[j$2].s.c > C$2) continue;
			if (M$3[j$2].e.r < R$1 || M$3[j$2].e.c < C$2) continue;
			if (M$3[j$2].s.r < R$1 || M$3[j$2].s.c < C$2) {
				RS = -1;
				break;
			}
			RS = M$3[j$2].e.r - M$3[j$2].s.r + 1;
			CS = M$3[j$2].e.c - M$3[j$2].s.c + 1;
			break;
		}
		if (RS < 0) continue;
		var coord = encode_col(C$2) + encode_row(R$1);
		var cell = dense ? (ws["!data"][R$1] || [])[C$2] : ws[coord];
		if (cell && cell.t == "n" && cell.v != null && !isFinite(cell.v)) {
			if (isNaN(cell.v)) cell = {
				t: "e",
				v: 36,
				w: BErr[36]
			};
			else cell = {
				t: "e",
				v: 7,
				w: BErr[7]
			};
		}
		var w$2 = cell && cell.v != null && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || "")) || "";
		sp = {};
		if (RS > 1) sp.rowspan = RS;
		if (CS > 1) sp.colspan = CS;
		if (o$10.editable) w$2 = "<span contenteditable=\"true\">" + w$2 + "</span>";
		else if (cell) {
			sp["data-t"] = cell && cell.t || "z";
			if (cell.v != null) sp["data-v"] = escapehtml(cell.v instanceof Date ? cell.v.toISOString() : cell.v);
			if (cell.z != null) sp["data-z"] = cell.z;
			if (cell.l && (cell.l.Target || "#").charAt(0) != "#") w$2 = "<a href=\"" + escapehtml(cell.l.Target) + "\">" + w$2 + "</a>";
		}
		sp.id = (o$10.id || "sjs") + "-" + coord;
		oo.push(writextag("td", w$2, sp));
	}
	var preamble = "<tr>";
	return preamble + oo.join("") + "</tr>";
}
function html_to_workbook(str, opts) {
	var mtch = str_match_xml_ig(str, "table");
	if (!mtch || mtch.length == 0) throw new Error("Invalid HTML: could not find <table>");
	if (mtch.length == 1) {
		var w$2 = sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);
		w$2.bookType = "html";
		return w$2;
	}
	var wb = book_new();
	mtch.forEach(function(s$5, idx) {
		book_append_sheet(wb, html_to_sheet(s$5, opts), "Sheet" + (idx + 1));
	});
	wb.bookType = "html";
	return wb;
}
function make_html_preamble(ws, R$1, o$10) {
	var out = [];
	return out.join("") + "<table" + (o$10 && o$10.id ? " id=\"" + o$10.id + "\"" : "") + ">";
}
function sheet_to_html(ws, opts) {
	var o$10 = opts || {};
	var header = o$10.header != null ? o$10.header : HTML_BEGIN;
	var footer = o$10.footer != null ? o$10.footer : HTML_END;
	var out = [header];
	var r$10 = decode_range(ws["!ref"] || "A1");
	out.push(make_html_preamble(ws, r$10, o$10));
	if (ws["!ref"]) for (var R$1 = r$10.s.r; R$1 <= r$10.e.r; ++R$1) out.push(make_html_row(ws, r$10, R$1, o$10));
	out.push("</table>" + footer);
	return out.join("");
}
function sheet_add_dom(ws, table, _opts) {
	var rows = table.rows;
	if (!rows) {
		throw "Unsupported origin when " + table.tagName + " is not a TABLE";
	}
	var opts = _opts || {};
	var dense = ws["!data"] != null;
	var or_R = 0, or_C = 0;
	if (opts.origin != null) {
		if (typeof opts.origin == "number") or_R = opts.origin;
		else {
			var _origin = typeof opts.origin == "string" ? decode_cell(opts.origin) : opts.origin;
			or_R = _origin.r;
			or_C = _origin.c;
		}
	}
	var sheetRows = Math.min(opts.sheetRows || 1e7, rows.length);
	var range = {
		s: {
			r: 0,
			c: 0
		},
		e: {
			r: or_R,
			c: or_C
		}
	};
	if (ws["!ref"]) {
		var _range = decode_range(ws["!ref"]);
		range.s.r = Math.min(range.s.r, _range.s.r);
		range.s.c = Math.min(range.s.c, _range.s.c);
		range.e.r = Math.max(range.e.r, _range.e.r);
		range.e.c = Math.max(range.e.c, _range.e.c);
		if (or_R == -1) range.e.r = or_R = _range.e.r + 1;
	}
	var merges = [], midx = 0;
	var rowinfo = ws["!rows"] || (ws["!rows"] = []);
	var _R = 0, R$1 = 0, _C = 0, C$2 = 0, RS = 0, CS = 0;
	if (!ws["!cols"]) ws["!cols"] = [];
	for (; _R < rows.length && R$1 < sheetRows; ++_R) {
		var row = rows[_R];
		if (is_dom_element_hidden(row)) {
			if (opts.display) continue;
			rowinfo[R$1] = { hidden: true };
		}
		var elts = row.cells;
		for (_C = C$2 = 0; _C < elts.length; ++_C) {
			var elt = elts[_C];
			if (opts.display && is_dom_element_hidden(elt)) continue;
			var v$3 = elt.hasAttribute("data-v") ? elt.getAttribute("data-v") : elt.hasAttribute("v") ? elt.getAttribute("v") : htmldecode(elt.innerHTML);
			var z$2 = elt.getAttribute("data-z") || elt.getAttribute("z");
			for (midx = 0; midx < merges.length; ++midx) {
				var m$3 = merges[midx];
				if (m$3.s.c == C$2 + or_C && m$3.s.r < R$1 + or_R && R$1 + or_R <= m$3.e.r) {
					C$2 = m$3.e.c + 1 - or_C;
					midx = -1;
				}
			}
			CS = +elt.getAttribute("colspan") || 1;
			if ((RS = +elt.getAttribute("rowspan") || 1) > 1 || CS > 1) merges.push({
				s: {
					r: R$1 + or_R,
					c: C$2 + or_C
				},
				e: {
					r: R$1 + or_R + (RS || 1) - 1,
					c: C$2 + or_C + (CS || 1) - 1
				}
			});
			var o$10 = {
				t: "s",
				v: v$3
			};
			var _t = elt.getAttribute("data-t") || elt.getAttribute("t") || "";
			if (v$3 != null) {
				if (v$3.length == 0) o$10.t = _t || "z";
				else if (opts.raw || v$3.trim().length == 0 || _t == "s") {} else if (_t == "e" && BErr[+v$3]) o$10 = {
					t: "e",
					v: +v$3,
					w: BErr[+v$3]
				};
				else if (v$3 === "TRUE") o$10 = {
					t: "b",
					v: true
				};
				else if (v$3 === "FALSE") o$10 = {
					t: "b",
					v: false
				};
				else if (!isNaN(fuzzynum(v$3))) o$10 = {
					t: "n",
					v: fuzzynum(v$3)
				};
				else if (!isNaN(fuzzydate(v$3).getDate())) {
					o$10 = {
						t: "d",
						v: parseDate(v$3)
					};
					if (opts.UTC) o$10.v = local_to_utc(o$10.v);
					if (!opts.cellDates) o$10 = {
						t: "n",
						v: datenum(o$10.v)
					};
					o$10.z = opts.dateNF || table_fmt[14];
				} else if (v$3.charCodeAt(0) == 35 && RBErr[v$3] != null) o$10 = {
					t: "e",
					v: RBErr[v$3],
					w: v$3
				};
			}
			if (o$10.z === undefined && z$2 != null) o$10.z = z$2;
			var l$3 = "", Aelts = elt.getElementsByTagName("A");
			if (Aelts && Aelts.length) {
				for (var Aelti = 0; Aelti < Aelts.length; ++Aelti) if (Aelts[Aelti].hasAttribute("href")) {
					l$3 = Aelts[Aelti].getAttribute("href");
					if (l$3.charAt(0) != "#") break;
				}
			}
			if (l$3 && l$3.charAt(0) != "#" && l$3.slice(0, 11).toLowerCase() != "javascript:") o$10.l = { Target: l$3 };
			if (dense) {
				if (!ws["!data"][R$1 + or_R]) ws["!data"][R$1 + or_R] = [];
				ws["!data"][R$1 + or_R][C$2 + or_C] = o$10;
			} else ws[encode_cell({
				c: C$2 + or_C,
				r: R$1 + or_R
			})] = o$10;
			if (range.e.c < C$2 + or_C) range.e.c = C$2 + or_C;
			C$2 += CS;
		}
		++R$1;
	}
	if (merges.length) ws["!merges"] = (ws["!merges"] || []).concat(merges);
	range.e.r = Math.max(range.e.r, R$1 - 1 + or_R);
	ws["!ref"] = encode_range(range);
	if (R$1 >= sheetRows) ws["!fullref"] = encode_range((range.e.r = rows.length - _R + R$1 - 1 + or_R, range));
	return ws;
}
function parse_dom_table(table, _opts) {
	var opts = _opts || {};
	var ws = {};
	if (opts.dense) ws["!data"] = [];
	return sheet_add_dom(ws, table, _opts);
}
function table_to_book(table, opts) {
	var o$10 = sheet_to_workbook(parse_dom_table(table, opts), opts);
	return o$10;
}
function is_dom_element_hidden(element) {
	var display = "";
	var get_computed_style = get_get_computed_style_function(element);
	if (get_computed_style) display = get_computed_style(element).getPropertyValue("display");
	if (!display) display = element.style && element.style.display;
	return display === "none";
}
function get_get_computed_style_function(element) {
	if (element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === "function") return element.ownerDocument.defaultView.getComputedStyle;
	if (typeof getComputedStyle === "function") return getComputedStyle;
	return null;
}
function parse_text_p(text$2) {
	var fixed = text$2.replace(/[\t\r\n]/g, " ").trim().replace(/ +/g, " ").replace(/<text:s\/>/g, " ").replace(/<text:s text:c="(\d+)"\/>/g, function($$, $1) {
		return Array(parseInt($1, 10) + 1).join(" ");
	}).replace(/<text:tab[^<>]*\/>/g, "	").replace(/<text:line-break\/>/g, "\n");
	var v$3 = unescapexml(fixed.replace(/<[^<>]*>/g, ""));
	return [v$3];
}
function parse_ods_styles(d$5, _opts, _nfm) {
	var number_format_map = _nfm || {};
	var str = xlml_normalize(d$5);
	xlmlregex.lastIndex = 0;
	str = remove_doctype(str_remove_ng(str, "<!--", "-->"));
	var Rn, NFtag, NF = "", tNF = "", y$3, etpos = 0, tidx = -1, infmt = false, payload = "";
	while (Rn = xlmlregex.exec(str)) {
		switch (Rn[3] = Rn[3].replace(/_[\s\S]*$/, "")) {
			case "number-style":
			case "currency-style":
			case "percentage-style":
			case "date-style":
			case "time-style":
			case "text-style":
				if (Rn[1] === "/") {
					infmt = false;
					if (NFtag["truncate-on-overflow"] == "false") {
						if (NF.match(/h/)) NF = NF.replace(/h+/, "[$&]");
						else if (NF.match(/m/)) NF = NF.replace(/m+/, "[$&]");
						else if (NF.match(/s/)) NF = NF.replace(/s+/, "[$&]");
					}
					number_format_map[NFtag.name] = NF;
					NF = "";
				} else if (Rn[0].charAt(Rn[0].length - 2) !== "/") {
					infmt = true;
					NF = "";
					NFtag = parsexmltag(Rn[0], false);
				}
				break;
			case "boolean-style":
				if (Rn[1] === "/") {
					infmt = false;
					number_format_map[NFtag.name] = "General";
					NF = "";
				} else if (Rn[0].charAt(Rn[0].length - 2) !== "/") {
					infmt = true;
					NF = "";
					NFtag = parsexmltag(Rn[0], false);
				}
				break;
			case "boolean":
				NF += "General";
				break;
			case "text":
				if (Rn[1] === "/") {
					payload = str.slice(tidx, xlmlregex.lastIndex - Rn[0].length);
					if (payload == "%" && NFtag[0] == "<number:percentage-style") NF += "%";
					else NF += "\"" + payload.replace(/"/g, "\"\"") + "\"";
				} else if (Rn[0].charAt(Rn[0].length - 2) !== "/") {
					tidx = xlmlregex.lastIndex;
				}
				break;
			case "day":
				{
					y$3 = parsexmltag(Rn[0], false);
					switch (y$3["style"]) {
						case "short":
							NF += "d";
							break;
						case "long":
							NF += "dd";
							break;
						default:
							NF += "dd";
							break;
					}
				}
				break;
			case "day-of-week":
				{
					y$3 = parsexmltag(Rn[0], false);
					switch (y$3["style"]) {
						case "short":
							NF += "ddd";
							break;
						case "long":
							NF += "dddd";
							break;
						default:
							NF += "ddd";
							break;
					}
				}
				break;
			case "era":
				{
					y$3 = parsexmltag(Rn[0], false);
					switch (y$3["style"]) {
						case "short":
							NF += "ee";
							break;
						case "long":
							NF += "eeee";
							break;
						default:
							NF += "eeee";
							break;
					}
				}
				break;
			case "hours":
				{
					y$3 = parsexmltag(Rn[0], false);
					switch (y$3["style"]) {
						case "short":
							NF += "h";
							break;
						case "long":
							NF += "hh";
							break;
						default:
							NF += "hh";
							break;
					}
				}
				break;
			case "minutes":
				{
					y$3 = parsexmltag(Rn[0], false);
					switch (y$3["style"]) {
						case "short":
							NF += "m";
							break;
						case "long":
							NF += "mm";
							break;
						default:
							NF += "mm";
							break;
					}
				}
				break;
			case "month":
				{
					y$3 = parsexmltag(Rn[0], false);
					if (y$3["textual"]) NF += "mm";
					switch (y$3["style"]) {
						case "short":
							NF += "m";
							break;
						case "long":
							NF += "mm";
							break;
						default:
							NF += "m";
							break;
					}
				}
				break;
			case "seconds":
				{
					y$3 = parsexmltag(Rn[0], false);
					switch (y$3["style"]) {
						case "short":
							NF += "s";
							break;
						case "long":
							NF += "ss";
							break;
						default:
							NF += "ss";
							break;
					}
					if (y$3["decimal-places"]) NF += "." + fill("0", +y$3["decimal-places"]);
				}
				break;
			case "year":
				{
					y$3 = parsexmltag(Rn[0], false);
					switch (y$3["style"]) {
						case "short":
							NF += "yy";
							break;
						case "long":
							NF += "yyyy";
							break;
						default:
							NF += "yy";
							break;
					}
				}
				break;
			case "am-pm":
				NF += "AM/PM";
				break;
			case "week-of-year":
			case "quarter":
				console.error("Excel does not support ODS format token " + Rn[3]);
				break;
			case "fill-character":
				if (Rn[1] === "/") {
					payload = str.slice(tidx, xlmlregex.lastIndex - Rn[0].length);
					NF += "\"" + payload.replace(/"/g, "\"\"") + "\"*";
				} else if (Rn[0].charAt(Rn[0].length - 2) !== "/") {
					tidx = xlmlregex.lastIndex;
				}
				break;
			case "scientific-number":
				y$3 = parsexmltag(Rn[0], false);
				NF += "0." + fill("0", +y$3["min-decimal-places"] || +y$3["decimal-places"] || 2) + fill("?", +y$3["decimal-places"] - +y$3["min-decimal-places"] || 0) + "E" + (parsexmlbool(y$3["forced-exponent-sign"]) ? "+" : "") + fill("0", +y$3["min-exponent-digits"] || 2);
				break;
			case "fraction":
				y$3 = parsexmltag(Rn[0], false);
				if (!+y$3["min-integer-digits"]) NF += "#";
				else NF += fill("0", +y$3["min-integer-digits"]);
				NF += " ";
				NF += fill("?", +y$3["min-numerator-digits"] || 1);
				NF += "/";
				if (+y$3["denominator-value"]) NF += y$3["denominator-value"];
				else NF += fill("?", +y$3["min-denominator-digits"] || 1);
				break;
			case "currency-symbol":
				if (Rn[1] === "/") {
					NF += "\"" + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/"/g, "\"\"") + "\"";
				} else if (Rn[0].charAt(Rn[0].length - 2) !== "/") {
					tidx = xlmlregex.lastIndex;
				} else NF += "$";
				break;
			case "text-properties":
				y$3 = parsexmltag(Rn[0], false);
				switch ((y$3["color"] || "").toLowerCase().replace("#", "")) {
					case "ff0000":
					case "red":
						NF = "[Red]" + NF;
						break;
				}
				break;
			case "text-content":
				NF += "@";
				break;
			case "map":
				y$3 = parsexmltag(Rn[0], false);
				if (unescapexml(y$3["condition"]) == "value()>=0") NF = number_format_map[y$3["apply-style-name"]] + ";" + NF;
				else console.error("ODS number format may be incorrect: " + y$3["condition"]);
				break;
			case "number":
				if (Rn[1] === "/") break;
				y$3 = parsexmltag(Rn[0], false);
				tNF = "";
				tNF += fill("0", +y$3["min-integer-digits"] || 1);
				if (parsexmlbool(y$3["grouping"])) tNF = commaify(fill("#", Math.max(0, 4 - tNF.length)) + tNF);
				if (+y$3["min-decimal-places"] || +y$3["decimal-places"]) tNF += ".";
				if (+y$3["min-decimal-places"]) tNF += fill("0", +y$3["min-decimal-places"] || 1);
				if (+y$3["decimal-places"] - (+y$3["min-decimal-places"] || 0)) tNF += fill("0", +y$3["decimal-places"] - (+y$3["min-decimal-places"] || 0));
				NF += tNF;
				break;
			case "embedded-text":
				if (Rn[1] === "/") {
					if (etpos == 0) NF += "\"" + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/"/g, "\"\"") + "\"";
					else NF = NF.slice(0, etpos) + "\"" + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/"/g, "\"\"") + "\"" + NF.slice(etpos);
				} else if (Rn[0].charAt(Rn[0].length - 2) !== "/") {
					tidx = xlmlregex.lastIndex;
					etpos = -+parsexmltag(Rn[0], false)["position"] || 0;
				}
				break;
		}
	}
	return number_format_map;
}
function parse_content_xml(d$5, _opts, _nfm) {
	var opts = _opts || {};
	if (DENSE != null && opts.dense == null) opts.dense = DENSE;
	var str = xlml_normalize(d$5);
	var state$1 = [], tmp;
	var tag;
	var nfidx, NF = "", pidx = 0;
	var sheetag;
	var rowtag;
	var Sheets = {}, SheetNames = [];
	var ws = {};
	if (opts.dense) ws["!data"] = [];
	var Rn, q$2;
	var ctag = { value: "" }, ctag2 = {};
	var textp = "", textpidx = 0, textptag, oldtextp = "", oldtextpidx = 0;
	var textR = [], oldtextR = [];
	var R$1 = -1, C$2 = -1, range = {
		s: {
			r: 1e6,
			c: 1e7
		},
		e: {
			r: 0,
			c: 0
		}
	};
	var row_ol = 0;
	var number_format_map = _nfm || {}, styles$1 = {};
	var merges = [], mrange = {}, mR = 0, mC = 0;
	var rowinfo = [], rowpeat = 1, colpeat = 1;
	var arrayf = [];
	var WB = {
		Names: [],
		WBProps: {}
	};
	var atag = {};
	var _Ref = ["", ""];
	var comments = [], comment = {};
	var creator = "", creatoridx = 0;
	var isstub = false, intable = false;
	var i$7 = 0;
	xlmlregex.lastIndex = 0;
	str = remove_doctype(str_remove_ng(str, "<!--", "-->"));
	while (Rn = xlmlregex.exec(str)) switch (Rn[3] = Rn[3].replace(/_[\s\S]*$/, "")) {
		case "table":
		case "工作表":
			if (Rn[1] === "/") {
				if (range.e.c >= range.s.c && range.e.r >= range.s.r) ws["!ref"] = encode_range(range);
				else ws["!ref"] = "A1:A1";
				if (opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {
					ws["!fullref"] = ws["!ref"];
					range.e.r = opts.sheetRows - 1;
					ws["!ref"] = encode_range(range);
				}
				if (merges.length) ws["!merges"] = merges;
				if (rowinfo.length) ws["!rows"] = rowinfo;
				sheetag.name = sheetag["名称"] || sheetag.name;
				if (typeof JSON !== "undefined") JSON.stringify(sheetag);
				SheetNames.push(sheetag.name);
				Sheets[sheetag.name] = ws;
				intable = false;
			} else if (Rn[0].charAt(Rn[0].length - 2) !== "/") {
				sheetag = parsexmltag(Rn[0], false);
				R$1 = C$2 = -1;
				range.s.r = range.s.c = 1e7;
				range.e.r = range.e.c = 0;
				ws = {};
				if (opts.dense) ws["!data"] = [];
				merges = [];
				rowinfo = [];
				intable = true;
			}
			break;
		case "table-row-group":
			if (Rn[1] === "/") --row_ol;
			else ++row_ol;
			break;
		case "table-row":
		case "行":
			if (Rn[1] === "/") {
				R$1 += rowpeat;
				rowpeat = 1;
				break;
			}
			rowtag = parsexmltag(Rn[0], false);
			if (rowtag["行号"]) R$1 = rowtag["行号"] - 1;
			else if (R$1 == -1) R$1 = 0;
			rowpeat = +rowtag["number-rows-repeated"] || 1;
			if (rowpeat < 10) {
				for (i$7 = 0; i$7 < rowpeat; ++i$7) if (row_ol > 0) rowinfo[R$1 + i$7] = { level: row_ol };
			}
			C$2 = -1;
			break;
		case "covered-table-cell":
			if (Rn[1] !== "/") {
				++C$2;
				ctag = parsexmltag(Rn[0], false);
				colpeat = parseInt(ctag["number-columns-repeated"] || "1", 10) || 1;
				if (opts.sheetStubs) {
					while (colpeat-- > 0) {
						if (opts.dense) {
							if (!ws["!data"][R$1]) ws["!data"][R$1] = [];
							ws["!data"][R$1][C$2] = { t: "z" };
						} else ws[encode_cell({
							r: R$1,
							c: C$2
						})] = { t: "z" };
						++C$2;
					}
					--C$2;
				} else C$2 += colpeat - 1;
			}
			textp = "";
			textR = [];
			break;
		case "table-cell":
		case "数据":
			if (Rn[0].charAt(Rn[0].length - 2) === "/") {
				++C$2;
				ctag = parsexmltag(Rn[0], false);
				colpeat = parseInt(ctag["number-columns-repeated"] || "1", 10) || 1;
				q$2 = {
					t: "z",
					v: null
				};
				if (ctag.formula && opts.cellFormula != false) q$2.f = ods_to_csf_formula(unescapexml(ctag.formula));
				if (ctag["style-name"] && styles$1[ctag["style-name"]]) q$2.z = styles$1[ctag["style-name"]];
				if ((ctag["数据类型"] || ctag["value-type"]) == "string") {
					q$2.t = "s";
					q$2.v = unescapexml(ctag["string-value"] || "");
					if (opts.dense) {
						if (!ws["!data"][R$1]) ws["!data"][R$1] = [];
						ws["!data"][R$1][C$2] = q$2;
					} else {
						ws[encode_col(C$2) + encode_row(R$1)] = q$2;
					}
				}
				C$2 += colpeat - 1;
			} else if (Rn[1] !== "/") {
				++C$2;
				textp = oldtextp = "";
				textpidx = oldtextpidx = 0;
				textR = [];
				oldtextR = [];
				colpeat = 1;
				var rptR = rowpeat ? R$1 + rowpeat - 1 : R$1;
				if (C$2 > range.e.c) range.e.c = C$2;
				if (C$2 < range.s.c) range.s.c = C$2;
				if (R$1 < range.s.r) range.s.r = R$1;
				if (rptR > range.e.r) range.e.r = rptR;
				ctag = parsexmltag(Rn[0], false);
				ctag2 = parsexmltagraw(Rn[0], true);
				comments = [];
				comment = {};
				q$2 = {
					t: ctag["数据类型"] || ctag["value-type"],
					v: null
				};
				if (ctag["style-name"] && styles$1[ctag["style-name"]]) q$2.z = styles$1[ctag["style-name"]];
				if (opts.cellFormula) {
					if (ctag.formula) ctag.formula = unescapexml(ctag.formula);
					if (ctag["number-matrix-columns-spanned"] && ctag["number-matrix-rows-spanned"]) {
						mR = parseInt(ctag["number-matrix-rows-spanned"], 10) || 0;
						mC = parseInt(ctag["number-matrix-columns-spanned"], 10) || 0;
						mrange = {
							s: {
								r: R$1,
								c: C$2
							},
							e: {
								r: R$1 + mR - 1,
								c: C$2 + mC - 1
							}
						};
						q$2.F = encode_range(mrange);
						arrayf.push([mrange, q$2.F]);
					}
					if (ctag.formula) q$2.f = ods_to_csf_formula(ctag.formula);
					else for (i$7 = 0; i$7 < arrayf.length; ++i$7) if (R$1 >= arrayf[i$7][0].s.r && R$1 <= arrayf[i$7][0].e.r) {
						if (C$2 >= arrayf[i$7][0].s.c && C$2 <= arrayf[i$7][0].e.c) q$2.F = arrayf[i$7][1];
					}
				}
				if (ctag["number-columns-spanned"] || ctag["number-rows-spanned"]) {
					mR = parseInt(ctag["number-rows-spanned"] || "1", 10) || 1;
					mC = parseInt(ctag["number-columns-spanned"] || "1", 10) || 1;
					if (mR * mC > 1) {
						mrange = {
							s: {
								r: R$1,
								c: C$2
							},
							e: {
								r: R$1 + mR - 1,
								c: C$2 + mC - 1
							}
						};
						merges.push(mrange);
					}
				}
				if (ctag["number-columns-repeated"]) colpeat = parseInt(ctag["number-columns-repeated"], 10);
				switch (q$2.t) {
					case "boolean":
						q$2.t = "b";
						q$2.v = parsexmlbool(ctag["boolean-value"]) || +ctag["boolean-value"] >= 1;
						break;
					case "float":
						q$2.t = "n";
						q$2.v = parseFloat(ctag.value);
						if (opts.cellDates && q$2.z && fmt_is_date(q$2.z)) {
							q$2.v = numdate(q$2.v + (WB.WBProps.date1904 ? 1462 : 0));
							q$2.t = typeof q$2.v == "number" ? "n" : "d";
						}
						break;
					case "percentage":
						q$2.t = "n";
						q$2.v = parseFloat(ctag.value);
						break;
					case "currency":
						q$2.t = "n";
						q$2.v = parseFloat(ctag.value);
						break;
					case "date":
						q$2.t = "d";
						q$2.v = parseDate(ctag["date-value"], WB.WBProps.date1904);
						if (!opts.cellDates) {
							q$2.t = "n";
							q$2.v = datenum(q$2.v, WB.WBProps.date1904);
						}
						if (!q$2.z) q$2.z = "m/d/yy";
						break;
					case "time":
						q$2.t = "n";
						q$2.v = parse_isodur(ctag["time-value"]) / 86400;
						if (opts.cellDates) {
							q$2.v = numdate(q$2.v);
							q$2.t = typeof q$2.v == "number" ? "n" : "d";
						}
						if (!q$2.z) q$2.z = "HH:MM:SS";
						break;
					case "number":
						q$2.t = "n";
						q$2.v = parseFloat(ctag["数据数值"]);
						break;
					default: if (q$2.t === "string" || q$2.t === "text" || !q$2.t) {
						q$2.t = "s";
						if (ctag["string-value"] != null) {
							textp = unescapexml(ctag["string-value"]);
							textR = [];
						}
					} else throw new Error("Unsupported value type " + q$2.t);
				}
			} else {
				isstub = false;
				if (ctag2["calcext:value-type"] == "error" && RBErr[textp] != null) {
					q$2.t = "e";
					q$2.w = textp;
					q$2.v = RBErr[textp];
				}
				if (q$2.t === "s") {
					q$2.v = textp || "";
					if (textR.length) q$2.R = textR;
					isstub = textpidx == 0;
				}
				if (atag.Target) q$2.l = atag;
				if (comments.length > 0) {
					q$2.c = comments;
					comments = [];
				}
				if (textp && opts.cellText !== false) q$2.w = textp;
				if (isstub) {
					q$2.t = "z";
					delete q$2.v;
				}
				if (!isstub || opts.sheetStubs) {
					if (!(opts.sheetRows && opts.sheetRows <= R$1)) {
						for (var rpt = 0; rpt < rowpeat; ++rpt) {
							colpeat = parseInt(ctag["number-columns-repeated"] || "1", 10);
							if (opts.dense) {
								if (!ws["!data"][R$1 + rpt]) ws["!data"][R$1 + rpt] = [];
								ws["!data"][R$1 + rpt][C$2] = rpt == 0 ? q$2 : dup(q$2);
								while (--colpeat > 0) ws["!data"][R$1 + rpt][C$2 + colpeat] = dup(q$2);
							} else {
								ws[encode_cell({
									r: R$1 + rpt,
									c: C$2
								})] = q$2;
								while (--colpeat > 0) ws[encode_cell({
									r: R$1 + rpt,
									c: C$2 + colpeat
								})] = dup(q$2);
							}
							if (range.e.c <= C$2) range.e.c = C$2;
						}
					}
				}
				colpeat = parseInt(ctag["number-columns-repeated"] || "1", 10);
				C$2 += colpeat - 1;
				colpeat = 0;
				q$2 = {};
				textp = "";
				textR = [];
			}
			atag = {};
			break;
		case "document":
		case "document-content":
		case "电子表格文档":
		case "spreadsheet":
		case "主体":
		case "scripts":
		case "styles":
		case "font-face-decls":
		case "master-styles":
			if (Rn[1] === "/") {
				if ((tmp = state$1.pop())[0] !== Rn[3]) throw "Bad state: " + tmp;
			} else if (Rn[0].charAt(Rn[0].length - 2) !== "/") state$1.push([Rn[3], true]);
			break;
		case "annotation":
			if (Rn[1] === "/") {
				if ((tmp = state$1.pop())[0] !== Rn[3]) throw "Bad state: " + tmp;
				comment.t = textp;
				if (textR.length) comment.R = textR;
				comment.a = creator;
				comments.push(comment);
				textp = oldtextp;
				textpidx = oldtextpidx;
				textR = oldtextR;
			} else if (Rn[0].charAt(Rn[0].length - 2) !== "/") {
				state$1.push([Rn[3], false]);
				var annotag = parsexmltag(Rn[0], true);
				if (!(annotag["display"] && parsexmlbool(annotag["display"]))) comments.hidden = true;
				oldtextp = textp;
				oldtextpidx = textpidx;
				oldtextR = textR;
				textp = "";
				textpidx = 0;
				textR = [];
			}
			creator = "";
			creatoridx = 0;
			break;
		case "creator":
			if (Rn[1] === "/") {
				creator = str.slice(creatoridx, Rn.index);
			} else creatoridx = Rn.index + Rn[0].length;
			break;
		case "meta":
		case "元数据":
		case "settings":
		case "config-item-set":
		case "config-item-map-indexed":
		case "config-item-map-entry":
		case "config-item-map-named":
		case "shapes":
		case "frame":
		case "text-box":
		case "image":
		case "data-pilot-tables":
		case "list-style":
		case "form":
		case "dde-links":
		case "event-listeners":
		case "chart":
			if (Rn[1] === "/") {
				if ((tmp = state$1.pop())[0] !== Rn[3]) throw "Bad state: " + tmp;
			} else if (Rn[0].charAt(Rn[0].length - 2) !== "/") state$1.push([Rn[3], false]);
			textp = "";
			textpidx = 0;
			textR = [];
			break;
		case "scientific-number":
		case "currency-symbol":
		case "fill-character": break;
		case "text-style":
		case "boolean-style":
		case "number-style":
		case "currency-style":
		case "percentage-style":
		case "date-style":
		case "time-style":
			if (Rn[1] === "/") {
				var xlmlidx = xlmlregex.lastIndex;
				parse_ods_styles(str.slice(nfidx, xlmlregex.lastIndex), _opts, number_format_map);
				xlmlregex.lastIndex = xlmlidx;
			} else if (Rn[0].charAt(Rn[0].length - 2) !== "/") {
				nfidx = xlmlregex.lastIndex - Rn[0].length;
			}
			break;
		case "script": break;
		case "libraries": break;
		case "automatic-styles": break;
		case "default-style":
		case "page-layout": break;
		case "style":
			{
				var styletag = parsexmltag(Rn[0], false);
				if (styletag["family"] == "table-cell" && number_format_map[styletag["data-style-name"]]) styles$1[styletag["name"]] = number_format_map[styletag["data-style-name"]];
			}
			break;
		case "map": break;
		case "font-face": break;
		case "paragraph-properties": break;
		case "table-properties": break;
		case "table-column-properties": break;
		case "table-row-properties": break;
		case "table-cell-properties": break;
		case "number": break;
		case "fraction": break;
		case "day":
		case "month":
		case "year":
		case "era":
		case "day-of-week":
		case "week-of-year":
		case "quarter":
		case "hours":
		case "minutes":
		case "seconds":
		case "am-pm": break;
		case "boolean": break;
		case "text":
			if (Rn[0].slice(-2) === "/>") break;
			else if (Rn[1] === "/") switch (state$1[state$1.length - 1][0]) {
				case "number-style":
				case "date-style":
				case "time-style":
					NF += str.slice(pidx, Rn.index);
					break;
			}
			else pidx = Rn.index + Rn[0].length;
			break;
		case "named-range":
			tag = parsexmltag(Rn[0], false);
			_Ref = ods_to_csf_3D(tag["cell-range-address"]);
			var nrange = {
				Name: tag.name,
				Ref: _Ref[0] + "!" + _Ref[1]
			};
			if (intable) nrange.Sheet = SheetNames.length;
			WB.Names.push(nrange);
			break;
		case "text-content": break;
		case "text-properties": break;
		case "embedded-text": break;
		case "body":
		case "电子表格": break;
		case "forms": break;
		case "table-column": break;
		case "table-header-rows": break;
		case "table-rows": break;
		case "table-column-group": break;
		case "table-header-columns": break;
		case "table-columns": break;
		case "null-date":
			tag = parsexmltag(Rn[0], false);
			switch (tag["date-value"]) {
				case "1904-01-01":
					WB.WBProps.date1904 = true;
					break;
			}
			break;
		case "graphic-properties": break;
		case "calculation-settings": break;
		case "named-expressions": break;
		case "label-range": break;
		case "label-ranges": break;
		case "named-expression": break;
		case "sort": break;
		case "sort-by": break;
		case "sort-groups": break;
		case "tab": break;
		case "line-break": break;
		case "span": break;
		case "p":
		case "文本串":
			if (["master-styles"].indexOf(state$1[state$1.length - 1][0]) > -1) break;
			if (Rn[1] === "/" && (!ctag || !ctag["string-value"])) {
				var ptp = parse_text_p(str.slice(textpidx, Rn.index), textptag);
				textp = (textp.length > 0 ? textp + "\n" : "") + ptp[0];
			} else if (Rn[0].slice(-2) == "/>") {
				textp += "\n";
			} else {
				textptag = parsexmltag(Rn[0], false);
				textpidx = Rn.index + Rn[0].length;
			}
			break;
		case "s": break;
		case "database-range":
			if (Rn[1] === "/") break;
			try {
				_Ref = ods_to_csf_3D(parsexmltag(Rn[0])["target-range-address"]);
				Sheets[_Ref[0]]["!autofilter"] = { ref: _Ref[1] };
			} catch (e$10) {}
			break;
		case "date": break;
		case "object": break;
		case "title":
		case "标题": break;
		case "desc": break;
		case "binary-data": break;
		case "table-source": break;
		case "scenario": break;
		case "iteration": break;
		case "content-validations": break;
		case "content-validation": break;
		case "help-message": break;
		case "error-message": break;
		case "database-ranges": break;
		case "filter": break;
		case "filter-and": break;
		case "filter-or": break;
		case "filter-condition": break;
		case "filter-set-item": break;
		case "list-level-style-bullet": break;
		case "list-level-style-number": break;
		case "list-level-properties": break;
		case "sender-firstname":
		case "sender-lastname":
		case "sender-initials":
		case "sender-title":
		case "sender-position":
		case "sender-email":
		case "sender-phone-private":
		case "sender-fax":
		case "sender-company":
		case "sender-phone-work":
		case "sender-street":
		case "sender-city":
		case "sender-postal-code":
		case "sender-country":
		case "sender-state-or-province":
		case "author-name":
		case "author-initials":
		case "chapter":
		case "file-name":
		case "template-name":
		case "sheet-name": break;
		case "event-listener": break;
		case "initial-creator":
		case "creation-date":
		case "print-date":
		case "generator":
		case "document-statistic":
		case "user-defined":
		case "editing-duration":
		case "editing-cycles": break;
		case "config-item": break;
		case "page-number": break;
		case "page-count": break;
		case "time": break;
		case "cell-range-source": break;
		case "detective": break;
		case "operation": break;
		case "highlighted-range": break;
		case "data-pilot-table":
		case "source-cell-range":
		case "source-service":
		case "data-pilot-field":
		case "data-pilot-level":
		case "data-pilot-subtotals":
		case "data-pilot-subtotal":
		case "data-pilot-members":
		case "data-pilot-member":
		case "data-pilot-display-info":
		case "data-pilot-sort-info":
		case "data-pilot-layout-info":
		case "data-pilot-field-reference":
		case "data-pilot-groups":
		case "data-pilot-group":
		case "data-pilot-group-member": break;
		case "rect": break;
		case "dde-connection-decls":
		case "dde-connection-decl":
		case "dde-link":
		case "dde-source": break;
		case "properties": break;
		case "property": break;
		case "a":
			if (Rn[1] !== "/") {
				atag = parsexmltag(Rn[0], false);
				if (!atag.href) break;
				atag.Target = unescapexml(atag.href);
				delete atag.href;
				if (atag.Target.charAt(0) == "#" && atag.Target.indexOf(".") > -1) {
					_Ref = ods_to_csf_3D(atag.Target.slice(1));
					atag.Target = "#" + _Ref[0] + "!" + _Ref[1];
				} else if (atag.Target.match(/^\.\.[\\\/]/)) atag.Target = atag.Target.slice(3);
			}
			break;
		case "table-protection": break;
		case "data-pilot-grand-total": break;
		case "office-document-common-attrs": break;
		default: switch (Rn[2]) {
			case "dc:":
			case "calcext:":
			case "loext:":
			case "ooo:":
			case "chartooo:":
			case "draw:":
			case "style:":
			case "chart:":
			case "form:":
			case "uof:":
			case "表:":
			case "字:": break;
			default: if (opts.WTF) throw new Error(Rn);
		}
	}
	var out = {
		Sheets,
		SheetNames,
		Workbook: WB
	};
	if (opts.bookSheets) delete out.Sheets;
	return out;
}
function parse_ods(zip, opts) {
	opts = opts || {};
	if (safegetzipfile(zip, "META-INF/manifest.xml")) parse_manifest(getzipdata(zip, "META-INF/manifest.xml"), opts);
	var styles$1 = getzipstr(zip, "styles.xml");
	var Styles = styles$1 && parse_ods_styles(utf8read(styles$1), opts);
	var content = getzipstr(zip, "content.xml");
	if (!content) throw new Error("Missing content.xml in ODS / UOF file");
	var wb = parse_content_xml(utf8read(content), opts, Styles);
	if (safegetzipfile(zip, "meta.xml")) wb.Props = parse_core_props(getzipdata(zip, "meta.xml"));
	wb.bookType = "ods";
	return wb;
}
function parse_fods(data, opts) {
	var wb = parse_content_xml(data, opts);
	wb.bookType = "fods";
	return wb;
}
function write_number_format_ods(nf, nfidx) {
	var type = "number", payload = "", nopts = { "style:name": nfidx }, c$7 = "", i$7 = 0;
	nf = nf.replace(/"[$]"/g, "$");
	j: {
		if (nf.indexOf(";") > -1) {
			console.error("Unsupported ODS Style Map exported.  Using first branch of " + nf);
			nf = nf.slice(0, nf.indexOf(";"));
		}
		if (nf == "@") {
			type = "text";
			payload = "<number:text-content/>";
			break j;
		}
		if (nf.indexOf(/\$/) > -1) {
			type = "currency";
		}
		if (nf[i$7] == "\"") {
			c$7 = "";
			while (nf[++i$7] != "\"" || nf[++i$7] == "\"") c$7 += nf[i$7];
			--i$7;
			if (nf[i$7 + 1] == "*") {
				i$7++;
				payload += "<number:fill-character>" + escapexml(c$7.replace(/""/g, "\"")) + "</number:fill-character>";
			} else {
				payload += "<number:text>" + escapexml(c$7.replace(/""/g, "\"")) + "</number:text>";
			}
			nf = nf.slice(i$7 + 1);
			i$7 = 0;
		}
		var t$6 = nf.match(/# (\?+)\/(\?+)/);
		if (t$6) {
			payload += writextag("number:fraction", null, {
				"number:min-integer-digits": 0,
				"number:min-numerator-digits": t$6[1].length,
				"number:max-denominator-value": Math.max(+t$6[1].replace(/./g, "9"), +t$6[2].replace(/./g, "9"))
			});
			break j;
		}
		if (t$6 = nf.match(/# (\?+)\/(\d+)/)) {
			payload += writextag("number:fraction", null, {
				"number:min-integer-digits": 0,
				"number:min-numerator-digits": t$6[1].length,
				"number:denominator-value": +t$6[2]
			});
			break j;
		}
		if (t$6 = nf.match(/\b(\d+)(|\.\d+)%/)) {
			type = "percentage";
			payload += writextag("number:number", null, {
				"number:decimal-places": t$6[2] && t$6.length - 1 || 0,
				"number:min-decimal-places": t$6[2] && t$6.length - 1 || 0,
				"number:min-integer-digits": t$6[1].length
			}) + "<number:text>%</number:text>";
			break j;
		}
		var has_time = false;
		if ([
			"y",
			"m",
			"d"
		].indexOf(nf[0]) > -1) {
			type = "date";
			k: for (; i$7 < nf.length; ++i$7) switch (c$7 = nf[i$7].toLowerCase()) {
				case "h":
				case "s":
					has_time = true;
					--i$7;
					break k;
				case "m": l: for (var h$5 = i$7 + 1; h$5 < nf.length; ++h$5) switch (nf[h$5]) {
					case "y":
					case "d": break l;
					case "h":
					case "s":
						has_time = true;
						--i$7;
						break k;
				}
				case "y":
				case "d":
					while ((nf[++i$7] || "").toLowerCase() == c$7[0]) c$7 += c$7[0];
					--i$7;
					switch (c$7) {
						case "y":
						case "yy":
							payload += "<number:year/>";
							break;
						case "yyy":
						case "yyyy":
							payload += "<number:year number:style=\"long\"/>";
							break;
						case "mmmmm": console.error("ODS has no equivalent of format |mmmmm|");
						case "m":
						case "mm":
						case "mmm":
						case "mmmm":
							payload += "<number:month number:style=\"" + (c$7.length % 2 ? "short" : "long") + "\" number:textual=\"" + (c$7.length >= 3 ? "true" : "false") + "\"/>";
							break;
						case "d":
						case "dd":
							payload += "<number:day number:style=\"" + (c$7.length % 2 ? "short" : "long") + "\"/>";
							break;
						case "ddd":
						case "dddd":
							payload += "<number:day-of-week number:style=\"" + (c$7.length % 2 ? "short" : "long") + "\"/>";
							break;
					}
					break;
				case "\"":
					while (nf[++i$7] != "\"" || nf[++i$7] == "\"") c$7 += nf[i$7];
					--i$7;
					payload += "<number:text>" + escapexml(c$7.slice(1).replace(/""/g, "\"")) + "</number:text>";
					break;
				case "\\":
					c$7 = nf[++i$7];
					payload += "<number:text>" + escapexml(c$7) + "</number:text>";
					break;
				case "/":
				case ":":
					payload += "<number:text>" + escapexml(c$7) + "</number:text>";
					break;
				default: console.error("unrecognized character " + c$7 + " in ODF format " + nf);
			}
			if (!has_time) break j;
			nf = nf.slice(i$7 + 1);
			i$7 = 0;
		}
		if (nf.match(/^\[?[hms]/)) {
			if (type == "number") type = "time";
			if (nf.match(/\[/)) {
				nf = nf.replace(/[\[\]]/g, "");
				nopts["number:truncate-on-overflow"] = "false";
			}
			for (; i$7 < nf.length; ++i$7) switch (c$7 = nf[i$7].toLowerCase()) {
				case "h":
				case "m":
				case "s":
					while ((nf[++i$7] || "").toLowerCase() == c$7[0]) c$7 += c$7[0];
					--i$7;
					switch (c$7) {
						case "h":
						case "hh":
							payload += "<number:hours number:style=\"" + (c$7.length % 2 ? "short" : "long") + "\"/>";
							break;
						case "m":
						case "mm":
							payload += "<number:minutes number:style=\"" + (c$7.length % 2 ? "short" : "long") + "\"/>";
							break;
						case "s":
						case "ss":
							if (nf[i$7 + 1] == ".") do {
								c$7 += nf[i$7 + 1];
								++i$7;
							} while (nf[i$7 + 1] == "0");
							payload += "<number:seconds number:style=\"" + (c$7.match("ss") ? "long" : "short") + "\"" + (c$7.match(/\./) ? " number:decimal-places=\"" + (c$7.match(/0+/) || [""])[0].length + "\"" : "") + "/>";
							break;
					}
					break;
				case "\"":
					while (nf[++i$7] != "\"" || nf[++i$7] == "\"") c$7 += nf[i$7];
					--i$7;
					payload += "<number:text>" + escapexml(c$7.slice(1).replace(/""/g, "\"")) + "</number:text>";
					break;
				case "/":
				case ":":
					payload += "<number:text>" + escapexml(c$7) + "</number:text>";
					break;
				case "a":
					if (nf.slice(i$7, i$7 + 3).toLowerCase() == "a/p") {
						payload += "<number:am-pm/>";
						i$7 += 2;
						break;
					}
					if (nf.slice(i$7, i$7 + 5).toLowerCase() == "am/pm") {
						payload += "<number:am-pm/>";
						i$7 += 4;
						break;
					}
				default: console.error("unrecognized character " + c$7 + " in ODF format " + nf);
			}
			break j;
		}
		if (nf.indexOf(/\$/) > -1) {
			type = "currency";
		}
		if (nf[0] == "$") {
			payload += "<number:currency-symbol number:language=\"en\" number:country=\"US\">$</number:currency-symbol>";
			nf = nf.slice(1);
			i$7 = 0;
		}
		i$7 = 0;
		if (nf[i$7] == "\"") {
			while (nf[++i$7] != "\"" || nf[++i$7] == "\"") c$7 += nf[i$7];
			--i$7;
			if (nf[i$7 + 1] == "*") {
				i$7++;
				payload += "<number:fill-character>" + escapexml(c$7.replace(/""/g, "\"")) + "</number:fill-character>";
			} else {
				payload += "<number:text>" + escapexml(c$7.replace(/""/g, "\"")) + "</number:text>";
			}
			nf = nf.slice(i$7 + 1);
			i$7 = 0;
		}
		var np = nf.match(/([#0][0#,]*)(\.[0#]*|)(E[+]?0*|)/i);
		if (!np || !np[0]) console.error("Could not find numeric part of " + nf);
		else {
			var base = np[1].replace(/,/g, "");
			payload += "<number:" + (np[3] ? "scientific-" : "") + "number" + " number:min-integer-digits=\"" + (base.indexOf("0") == -1 ? "0" : base.length - base.indexOf("0")) + "\"" + (np[0].indexOf(",") > -1 ? " number:grouping=\"true\"" : "") + (np[2] && " number:decimal-places=\"" + (np[2].length - 1) + "\"" || " number:decimal-places=\"0\"") + (np[3] && np[3].indexOf("+") > -1 ? " number:forced-exponent-sign=\"true\"" : "") + (np[3] ? " number:min-exponent-digits=\"" + np[3].match(/0+/)[0].length + "\"" : "") + ">" + "</number:" + (np[3] ? "scientific-" : "") + "number>";
			i$7 = np.index + np[0].length;
		}
		if (nf[i$7] == "\"") {
			c$7 = "";
			while (nf[++i$7] != "\"" || nf[++i$7] == "\"") c$7 += nf[i$7];
			--i$7;
			payload += "<number:text>" + escapexml(c$7.replace(/""/g, "\"")) + "</number:text>";
		}
	}
	if (!payload) {
		console.error("Could not generate ODS number format for |" + nf + "|");
		return "";
	}
	return writextag("number:" + type + "-style", payload, nopts);
}
function write_names_ods(Names, SheetNames, idx) {
	var scoped = [];
	for (var namei = 0; namei < Names.length; ++namei) {
		var name = Names[namei];
		if (!name) continue;
		if (name.Sheet == (idx == -1 ? null : idx)) scoped.push(name);
	}
	if (!scoped.length) return "";
	return "      <table:named-expressions>\n" + scoped.map(function(name$1) {
		var odsref = (idx == -1 ? "$" : "") + csf_to_ods_3D(name$1.Ref);
		return "        " + writextag("table:named-range", null, {
			"table:name": name$1.Name,
			"table:cell-range-address": odsref,
			"table:base-cell-address": odsref.replace(/[\.][^\.]*$/, ".$A$1")
		});
	}).join("\n") + "\n      </table:named-expressions>\n";
}
function write_ods(wb, opts) {
	if (opts.bookType == "fods") return write_content_ods(wb, opts);
	var zip = zip_new();
	var f$4 = "";
	var manifest = [];
	var rdf = [];
	f$4 = "mimetype";
	zip_add_file(zip, f$4, "application/vnd.oasis.opendocument.spreadsheet");
	f$4 = "content.xml";
	zip_add_file(zip, f$4, write_content_ods(wb, opts));
	manifest.push([f$4, "text/xml"]);
	rdf.push([f$4, "ContentFile"]);
	f$4 = "styles.xml";
	zip_add_file(zip, f$4, write_styles_ods(wb, opts));
	manifest.push([f$4, "text/xml"]);
	rdf.push([f$4, "StylesFile"]);
	f$4 = "meta.xml";
	zip_add_file(zip, f$4, XML_HEADER + write_meta_ods());
	manifest.push([f$4, "text/xml"]);
	rdf.push([f$4, "MetadataFile"]);
	f$4 = "manifest.rdf";
	zip_add_file(zip, f$4, write_rdf(rdf));
	manifest.push([f$4, "application/rdf+xml"]);
	f$4 = "META-INF/manifest.xml";
	zip_add_file(zip, f$4, write_manifest(manifest));
	return zip;
}
function u8_to_dataview(array) {
	return new DataView(array.buffer, array.byteOffset, array.byteLength);
}
function u8str(u8) {
	return typeof TextDecoder != "undefined" ? new TextDecoder().decode(u8) : utf8read(a2s(u8));
}
function stru8(str) {
	return typeof TextEncoder != "undefined" ? new TextEncoder().encode(str) : s2a(utf8write(str));
}
function u8concat(u8a) {
	var len = 0;
	for (var i$7 = 0; i$7 < u8a.length; ++i$7) len += u8a[i$7].length;
	var out = new Uint8Array(len);
	var off = 0;
	for (i$7 = 0; i$7 < u8a.length; ++i$7) {
		var u8 = u8a[i$7], L$2 = u8.length;
		if (L$2 < 250) {
			for (var j$2 = 0; j$2 < L$2; ++j$2) out[off++] = u8[j$2];
		} else {
			out.set(u8, off);
			off += L$2;
		}
	}
	return out;
}
function popcnt(x$2) {
	x$2 -= x$2 >> 1 & 1431655765;
	x$2 = (x$2 & 858993459) + (x$2 >> 2 & 858993459);
	return (x$2 + (x$2 >> 4) & 252645135) * 16843009 >>> 24;
}
function readDecimal128LE(buf, offset) {
	var exp = (buf[offset + 15] & 127) << 7 | buf[offset + 14] >> 1;
	var mantissa = buf[offset + 14] & 1;
	for (var j$2 = offset + 13; j$2 >= offset; --j$2) mantissa = mantissa * 256 + buf[j$2];
	return (buf[offset + 15] & 128 ? -mantissa : mantissa) * Math.pow(10, exp - 6176);
}
function writeDecimal128LE(buf, offset, value) {
	var exp = Math.floor(value == 0 ? 0 : Math.LOG10E * Math.log(Math.abs(value))) + 6176 - 16;
	var mantissa = value / Math.pow(10, exp - 6176);
	buf[offset + 15] |= exp >> 7;
	buf[offset + 14] |= (exp & 127) << 1;
	for (var i$7 = 0; mantissa >= 1; ++i$7, mantissa /= 256) buf[offset + i$7] = mantissa & 255;
	buf[offset + 15] |= value >= 0 ? 0 : 128;
}
function parse_varint49(buf, ptr) {
	var l$3 = ptr.l;
	var usz = buf[l$3] & 127;
	varint: if (buf[l$3++] >= 128) {
		usz |= (buf[l$3] & 127) << 7;
		if (buf[l$3++] < 128) break varint;
		usz |= (buf[l$3] & 127) << 14;
		if (buf[l$3++] < 128) break varint;
		usz |= (buf[l$3] & 127) << 21;
		if (buf[l$3++] < 128) break varint;
		usz += (buf[l$3] & 127) * Math.pow(2, 28);
		++l$3;
		if (buf[l$3++] < 128) break varint;
		usz += (buf[l$3] & 127) * Math.pow(2, 35);
		++l$3;
		if (buf[l$3++] < 128) break varint;
		usz += (buf[l$3] & 127) * Math.pow(2, 42);
		++l$3;
		if (buf[l$3++] < 128) break varint;
	}
	ptr.l = l$3;
	return usz;
}
function write_varint49(v$3) {
	var usz = new Uint8Array(7);
	usz[0] = v$3 & 127;
	var L$2 = 1;
	sz: if (v$3 > 127) {
		usz[L$2 - 1] |= 128;
		usz[L$2] = v$3 >> 7 & 127;
		++L$2;
		if (v$3 <= 16383) break sz;
		usz[L$2 - 1] |= 128;
		usz[L$2] = v$3 >> 14 & 127;
		++L$2;
		if (v$3 <= 2097151) break sz;
		usz[L$2 - 1] |= 128;
		usz[L$2] = v$3 >> 21 & 127;
		++L$2;
		if (v$3 <= 268435455) break sz;
		usz[L$2 - 1] |= 128;
		usz[L$2] = v$3 / 256 >>> 21 & 127;
		++L$2;
		if (v$3 <= 34359738367) break sz;
		usz[L$2 - 1] |= 128;
		usz[L$2] = v$3 / 65536 >>> 21 & 127;
		++L$2;
		if (v$3 <= 4398046511103) break sz;
		usz[L$2 - 1] |= 128;
		usz[L$2] = v$3 / 16777216 >>> 21 & 127;
		++L$2;
	}
	return usz[subarray](0, L$2);
}
function parse_packed_varints(buf) {
	var ptr = { l: 0 };
	var out = [];
	while (ptr.l < buf.length) out.push(parse_varint49(buf, ptr));
	return out;
}
function write_packed_varints(nums) {
	return u8concat(nums.map(function(x$2) {
		return write_varint49(x$2);
	}));
}
function varint_to_i32(buf) {
	var l$3 = 0, i32 = buf[l$3] & 127;
	if (buf[l$3++] < 128) return i32;
	i32 |= (buf[l$3] & 127) << 7;
	if (buf[l$3++] < 128) return i32;
	i32 |= (buf[l$3] & 127) << 14;
	if (buf[l$3++] < 128) return i32;
	i32 |= (buf[l$3] & 127) << 21;
	if (buf[l$3++] < 128) return i32;
	i32 |= (buf[l$3] & 15) << 28;
	return i32;
}
function varint_to_u64(buf) {
	var l$3 = 0, lo = buf[l$3] & 127, hi = 0;
	varint: if (buf[l$3++] >= 128) {
		lo |= (buf[l$3] & 127) << 7;
		if (buf[l$3++] < 128) break varint;
		lo |= (buf[l$3] & 127) << 14;
		if (buf[l$3++] < 128) break varint;
		lo |= (buf[l$3] & 127) << 21;
		if (buf[l$3++] < 128) break varint;
		lo |= (buf[l$3] & 127) << 28;
		hi = buf[l$3] >> 4 & 7;
		if (buf[l$3++] < 128) break varint;
		hi |= (buf[l$3] & 127) << 3;
		if (buf[l$3++] < 128) break varint;
		hi |= (buf[l$3] & 127) << 10;
		if (buf[l$3++] < 128) break varint;
		hi |= (buf[l$3] & 127) << 17;
		if (buf[l$3++] < 128) break varint;
		hi |= (buf[l$3] & 127) << 24;
		if (buf[l$3++] < 128) break varint;
		hi |= (buf[l$3] & 127) << 31;
	}
	return [lo >>> 0, hi >>> 0];
}
function parse_shallow(buf) {
	var out = [], ptr = { l: 0 };
	while (ptr.l < buf.length) {
		var off = ptr.l;
		var num = parse_varint49(buf, ptr);
		var type = num & 7;
		num = num / 8 | 0;
		var data;
		var l$3 = ptr.l;
		switch (type) {
			case 0:
				{
					while (buf[l$3++] >= 128);
					data = buf[subarray](ptr.l, l$3);
					ptr.l = l$3;
				}
				break;
			case 1:
				{
					data = buf[subarray](l$3, l$3 + 8);
					ptr.l = l$3 + 8;
				}
				break;
			case 2:
				{
					var len = parse_varint49(buf, ptr);
					data = buf[subarray](ptr.l, ptr.l + len);
					ptr.l += len;
				}
				break;
			case 5:
				{
					data = buf[subarray](l$3, l$3 + 4);
					ptr.l = l$3 + 4;
				}
				break;
			default: throw new Error("PB Type ".concat(type, " for Field ").concat(num, " at offset ").concat(off));
		}
		var v$3 = {
			data,
			type
		};
		if (out[num] == null) out[num] = [];
		out[num].push(v$3);
	}
	return out;
}
function write_shallow(proto) {
	var out = [];
	proto.forEach(function(field, idx) {
		if (idx == 0) return;
		field.forEach(function(item) {
			if (!item.data) return;
			out.push(write_varint49(idx * 8 + item.type));
			if (item.type == 2) out.push(write_varint49(item.data.length));
			out.push(item.data);
		});
	});
	return u8concat(out);
}
function mappa(data, cb) {
	return (data == null ? void 0 : data.map(function(d$5) {
		return cb(d$5.data);
	})) || [];
}
function parse_iwa_file(buf) {
	var _a;
	var out = [], ptr = { l: 0 };
	while (ptr.l < buf.length) {
		var len = parse_varint49(buf, ptr);
		var ai = parse_shallow(buf[subarray](ptr.l, ptr.l + len));
		ptr.l += len;
		var res = {
			id: varint_to_i32(ai[1][0].data),
			messages: []
		};
		ai[2].forEach(function(b$3) {
			var mi = parse_shallow(b$3.data);
			var fl = varint_to_i32(mi[3][0].data);
			res.messages.push({
				meta: mi,
				data: buf[subarray](ptr.l, ptr.l + fl)
			});
			ptr.l += fl;
		});
		if ((_a = ai[3]) == null ? void 0 : _a[0]) res.merge = varint_to_i32(ai[3][0].data) >>> 0 > 0;
		out.push(res);
	}
	return out;
}
function write_iwa_file(ias) {
	var bufs = [];
	ias.forEach(function(ia) {
		var ai = [
			[],
			[{
				data: write_varint49(ia.id),
				type: 0
			}],
			[]
		];
		if (ia.merge != null) ai[3] = [{
			data: write_varint49(+!!ia.merge),
			type: 0
		}];
		var midata = [];
		ia.messages.forEach(function(mi) {
			midata.push(mi.data);
			mi.meta[3] = [{
				type: 0,
				data: write_varint49(mi.data.length)
			}];
			ai[2].push({
				data: write_shallow(mi.meta),
				type: 2
			});
		});
		var aipayload = write_shallow(ai);
		bufs.push(write_varint49(aipayload.length));
		bufs.push(aipayload);
		midata.forEach(function(mid) {
			return bufs.push(mid);
		});
	});
	return u8concat(bufs);
}
function parse_snappy_chunk(type, buf) {
	if (type != 0) throw new Error("Unexpected Snappy chunk type ".concat(type));
	var ptr = { l: 0 };
	var usz = parse_varint49(buf, ptr);
	var chunks = [];
	var l$3 = ptr.l;
	while (l$3 < buf.length) {
		var tag = buf[l$3] & 3;
		if (tag == 0) {
			var len = buf[l$3++] >> 2;
			if (len < 60) ++len;
			else {
				var c$7 = len - 59;
				len = buf[l$3];
				if (c$7 > 1) len |= buf[l$3 + 1] << 8;
				if (c$7 > 2) len |= buf[l$3 + 2] << 16;
				if (c$7 > 3) len |= buf[l$3 + 3] << 24;
				len >>>= 0;
				len++;
				l$3 += c$7;
			}
			chunks.push(buf[subarray](l$3, l$3 + len));
			l$3 += len;
			continue;
		} else {
			var offset = 0, length = 0;
			if (tag == 1) {
				length = (buf[l$3] >> 2 & 7) + 4;
				offset = (buf[l$3++] & 224) << 3;
				offset |= buf[l$3++];
			} else {
				length = (buf[l$3++] >> 2) + 1;
				if (tag == 2) {
					offset = buf[l$3] | buf[l$3 + 1] << 8;
					l$3 += 2;
				} else {
					offset = (buf[l$3] | buf[l$3 + 1] << 8 | buf[l$3 + 2] << 16 | buf[l$3 + 3] << 24) >>> 0;
					l$3 += 4;
				}
			}
			if (offset == 0) throw new Error("Invalid offset 0");
			var j$2 = chunks.length - 1, off = offset;
			while (j$2 >= 0 && off >= chunks[j$2].length) {
				off -= chunks[j$2].length;
				--j$2;
			}
			if (j$2 < 0) {
				if (off == 0) off = chunks[j$2 = 0].length;
				else throw new Error("Invalid offset beyond length");
			}
			if (length < off) chunks.push(chunks[j$2][subarray](chunks[j$2].length - off, chunks[j$2].length - off + length));
			else {
				if (off > 0) {
					chunks.push(chunks[j$2][subarray](chunks[j$2].length - off));
					length -= off;
				}
				++j$2;
				while (length >= chunks[j$2].length) {
					chunks.push(chunks[j$2]);
					length -= chunks[j$2].length;
					++j$2;
				}
				if (length) chunks.push(chunks[j$2][subarray](0, length));
			}
			if (chunks.length > 25) chunks = [u8concat(chunks)];
		}
	}
	var clen = 0;
	for (var u8i = 0; u8i < chunks.length; ++u8i) clen += chunks[u8i].length;
	if (clen != usz) throw new Error("Unexpected length: ".concat(clen, " != ").concat(usz));
	return chunks;
}
function decompress_iwa_file(buf) {
	if (Array.isArray(buf)) buf = new Uint8Array(buf);
	var out = [];
	var l$3 = 0;
	while (l$3 < buf.length) {
		var t$6 = buf[l$3++];
		var len = buf[l$3] | buf[l$3 + 1] << 8 | buf[l$3 + 2] << 16;
		l$3 += 3;
		out.push.apply(out, parse_snappy_chunk(t$6, buf[subarray](l$3, l$3 + len)));
		l$3 += len;
	}
	if (l$3 !== buf.length) throw new Error("data is not a valid framed stream!");
	return out.length == 1 ? out[0] : u8concat(out);
}
function compress_iwa_file(buf) {
	var out = [];
	var l$3 = 0;
	while (l$3 < buf.length) {
		var c$7 = Math.min(buf.length - l$3, 268435455);
		var frame = new Uint8Array(4);
		out.push(frame);
		var usz = write_varint49(c$7);
		var L$2 = usz.length;
		out.push(usz);
		if (c$7 <= 60) {
			L$2++;
			out.push(new Uint8Array([c$7 - 1 << 2]));
		} else if (c$7 <= 256) {
			L$2 += 2;
			out.push(new Uint8Array([240, c$7 - 1 & 255]));
		} else if (c$7 <= 65536) {
			L$2 += 3;
			out.push(new Uint8Array([
				244,
				c$7 - 1 & 255,
				c$7 - 1 >> 8 & 255
			]));
		} else if (c$7 <= 16777216) {
			L$2 += 4;
			out.push(new Uint8Array([
				248,
				c$7 - 1 & 255,
				c$7 - 1 >> 8 & 255,
				c$7 - 1 >> 16 & 255
			]));
		} else if (c$7 <= 4294967296) {
			L$2 += 5;
			out.push(new Uint8Array([
				252,
				c$7 - 1 & 255,
				c$7 - 1 >> 8 & 255,
				c$7 - 1 >> 16 & 255,
				c$7 - 1 >>> 24 & 255
			]));
		}
		out.push(buf[subarray](l$3, l$3 + c$7));
		L$2 += c$7;
		frame[0] = 0;
		frame[1] = L$2 & 255;
		frame[2] = L$2 >> 8 & 255;
		frame[3] = L$2 >> 16 & 255;
		l$3 += c$7;
	}
	return u8concat(out);
}
function numbers_format_cell(cell, t$6, flags, ofmt, nfmt) {
	var _a, _b, _c, _d;
	var ctype = t$6 & 255, ver = t$6 >> 8;
	var fmt = ver >= 5 ? nfmt : ofmt;
	dur: if (flags & (ver > 4 ? 8 : 4) && cell.t == "n" && ctype == 7) {
		var dstyle = ((_a = fmt[7]) == null ? void 0 : _a[0]) ? varint_to_i32(fmt[7][0].data) : -1;
		if (dstyle == -1) break dur;
		var dmin = ((_b = fmt[15]) == null ? void 0 : _b[0]) ? varint_to_i32(fmt[15][0].data) : -1;
		var dmax = ((_c = fmt[16]) == null ? void 0 : _c[0]) ? varint_to_i32(fmt[16][0].data) : -1;
		var auto = ((_d = fmt[40]) == null ? void 0 : _d[0]) ? varint_to_i32(fmt[40][0].data) : -1;
		var d$5 = cell.v, dd = d$5;
		autodur: if (auto) {
			if (d$5 == 0) {
				dmin = dmax = 2;
				break autodur;
			}
			if (d$5 >= 604800) dmin = 1;
			else if (d$5 >= 86400) dmin = 2;
			else if (d$5 >= 3600) dmin = 4;
			else if (d$5 >= 60) dmin = 8;
			else if (d$5 >= 1) dmin = 16;
			else dmin = 32;
			if (Math.floor(d$5) != d$5) dmax = 32;
			else if (d$5 % 60) dmax = 16;
			else if (d$5 % 3600) dmax = 8;
			else if (d$5 % 86400) dmax = 4;
			else if (d$5 % 604800) dmax = 2;
			if (dmax < dmin) dmax = dmin;
		}
		if (dmin == -1 || dmax == -1) break dur;
		var dstr = [], zstr = [];
		if (dmin == 1) {
			dd = d$5 / 604800;
			if (dmax == 1) {
				zstr.push("d\"d\"");
			} else {
				dd |= 0;
				d$5 -= 604800 * dd;
			}
			dstr.push(dd + (dstyle == 2 ? " week" + (dd == 1 ? "" : "s") : dstyle == 1 ? "w" : ""));
		}
		if (dmin <= 2 && dmax >= 2) {
			dd = d$5 / 86400;
			if (dmax > 2) {
				dd |= 0;
				d$5 -= 86400 * dd;
			}
			zstr.push("d\"d\"");
			dstr.push(dd + (dstyle == 2 ? " day" + (dd == 1 ? "" : "s") : dstyle == 1 ? "d" : ""));
		}
		if (dmin <= 4 && dmax >= 4) {
			dd = d$5 / 3600;
			if (dmax > 4) {
				dd |= 0;
				d$5 -= 3600 * dd;
			}
			zstr.push((dmin >= 4 ? "[h]" : "h") + "\"h\"");
			dstr.push(dd + (dstyle == 2 ? " hour" + (dd == 1 ? "" : "s") : dstyle == 1 ? "h" : ""));
		}
		if (dmin <= 8 && dmax >= 8) {
			dd = d$5 / 60;
			if (dmax > 8) {
				dd |= 0;
				d$5 -= 60 * dd;
			}
			zstr.push((dmin >= 8 ? "[m]" : "m") + "\"m\"");
			if (dstyle == 0) dstr.push((dmin == 8 && dmax == 8 || dd >= 10 ? "" : "0") + dd);
			else dstr.push(dd + (dstyle == 2 ? " minute" + (dd == 1 ? "" : "s") : dstyle == 1 ? "m" : ""));
		}
		if (dmin <= 16 && dmax >= 16) {
			dd = d$5;
			if (dmax > 16) {
				dd |= 0;
				d$5 -= dd;
			}
			zstr.push((dmin >= 16 ? "[s]" : "s") + "\"s\"");
			if (dstyle == 0) dstr.push((dmax == 16 && dmin == 16 || dd >= 10 ? "" : "0") + dd);
			else dstr.push(dd + (dstyle == 2 ? " second" + (dd == 1 ? "" : "s") : dstyle == 1 ? "s" : ""));
		}
		if (dmax >= 32) {
			dd = Math.round(1e3 * d$5);
			if (dmin < 32) zstr.push(".000\"ms\"");
			if (dstyle == 0) dstr.push((dd >= 100 ? "" : dd >= 10 ? "0" : "00") + dd);
			else dstr.push(dd + (dstyle == 2 ? " millisecond" + (dd == 1 ? "" : "s") : dstyle == 1 ? "ms" : ""));
		}
		cell.w = dstr.join(dstyle == 0 ? ":" : " ");
		cell.z = zstr.join(dstyle == 0 ? "\":\"" : " ");
		if (dstyle == 0) cell.w = cell.w.replace(/:(\d\d\d)$/, ".$1");
	}
}
function parse_old_storage(buf, lut, v$3, opts) {
	var dv = u8_to_dataview(buf);
	var flags = dv.getUint32(4, true);
	var ridx = -1, sidx = -1, zidx = -1, ieee = NaN, dc = 0, dt = new Date(Date.UTC(2001, 0, 1));
	var doff = v$3 > 1 ? 12 : 8;
	if (flags & 2) {
		zidx = dv.getUint32(doff, true);
		doff += 4;
	}
	doff += popcnt(flags & (v$3 > 1 ? 3468 : 396)) * 4;
	if (flags & 512) {
		ridx = dv.getUint32(doff, true);
		doff += 4;
	}
	doff += popcnt(flags & (v$3 > 1 ? 12288 : 4096)) * 4;
	if (flags & 16) {
		sidx = dv.getUint32(doff, true);
		doff += 4;
	}
	if (flags & 32) {
		ieee = dv.getFloat64(doff, true);
		doff += 8;
	}
	if (flags & 64) {
		dt.setTime(dt.getTime() + (dc = dv.getFloat64(doff, true)) * 1e3);
		doff += 8;
	}
	if (v$3 > 1) {
		flags = dv.getUint32(8, true) >>> 16;
		if (flags & 255) {
			if (zidx == -1) zidx = dv.getUint32(doff, true);
			doff += 4;
		}
	}
	var ret;
	var t$6 = buf[v$3 >= 4 ? 1 : 2];
	switch (t$6) {
		case 0: return void 0;
		case 2:
			ret = {
				t: "n",
				v: ieee
			};
			break;
		case 3:
			ret = {
				t: "s",
				v: lut.sst[sidx]
			};
			break;
		case 5:
			{
				if (opts == null ? void 0 : opts.cellDates) ret = {
					t: "d",
					v: dt
				};
				else ret = {
					t: "n",
					v: dc / 86400 + 35430,
					z: table_fmt[14]
				};
			}
			break;
		case 6:
			ret = {
				t: "b",
				v: ieee > 0
			};
			break;
		case 7:
			ret = {
				t: "n",
				v: ieee
			};
			break;
		case 8:
			ret = {
				t: "e",
				v: 0
			};
			break;
		case 9:
			{
				if (ridx > -1) {
					var rts = lut.rsst[ridx];
					ret = {
						t: "s",
						v: rts.v
					};
					if (rts.l) ret.l = { Target: rts.l };
				} else throw new Error("Unsupported cell type ".concat(buf[subarray](0, 4)));
			}
			break;
		default: throw new Error("Unsupported cell type ".concat(buf[subarray](0, 4)));
	}
	if (zidx > -1) numbers_format_cell(ret, t$6 | v$3 << 8, flags, lut.ofmt[zidx], lut.nfmt[zidx]);
	if (t$6 == 7) ret.v /= 86400;
	return ret;
}
function parse_new_storage(buf, lut, opts) {
	var dv = u8_to_dataview(buf);
	var flags = dv.getUint32(4, true);
	var fields = dv.getUint32(8, true);
	var doff = 12;
	var ridx = -1, sidx = -1, zidx = -1, d128 = NaN, ieee = NaN, dc = 0, dt = new Date(Date.UTC(2001, 0, 1)), eidx = -1, fidx = -1;
	if (fields & 1) {
		d128 = readDecimal128LE(buf, doff);
		doff += 16;
	}
	if (fields & 2) {
		ieee = dv.getFloat64(doff, true);
		doff += 8;
	}
	if (fields & 4) {
		dt.setTime(dt.getTime() + (dc = dv.getFloat64(doff, true)) * 1e3);
		doff += 8;
	}
	if (fields & 8) {
		sidx = dv.getUint32(doff, true);
		doff += 4;
	}
	if (fields & 16) {
		ridx = dv.getUint32(doff, true);
		doff += 4;
	}
	doff += popcnt(fields & 480) * 4;
	if (fields & 512) {
		fidx = dv.getUint32(doff, true);
		doff += 4;
	}
	doff += popcnt(fields & 1024) * 4;
	if (fields & 2048) {
		eidx = dv.getUint32(doff, true);
		doff += 4;
	}
	var ret;
	var t$6 = buf[1];
	switch (t$6) {
		case 0:
			ret = { t: "z" };
			break;
		case 2:
			ret = {
				t: "n",
				v: d128
			};
			break;
		case 3:
			ret = {
				t: "s",
				v: lut.sst[sidx]
			};
			break;
		case 5:
			{
				if (opts == null ? void 0 : opts.cellDates) ret = {
					t: "d",
					v: dt
				};
				else ret = {
					t: "n",
					v: dc / 86400 + 35430,
					z: table_fmt[14]
				};
			}
			break;
		case 6:
			ret = {
				t: "b",
				v: ieee > 0
			};
			break;
		case 7:
			ret = {
				t: "n",
				v: ieee
			};
			break;
		case 8:
			ret = {
				t: "e",
				v: 0
			};
			break;
		case 9:
			{
				if (ridx > -1) {
					var rts = lut.rsst[ridx];
					ret = {
						t: "s",
						v: rts.v
					};
					if (rts.l) ret.l = { Target: rts.l };
				} else throw new Error("Unsupported cell type ".concat(buf[1], " : ").concat(fields & 31, " : ").concat(buf[subarray](0, 4)));
			}
			break;
		case 10:
			ret = {
				t: "n",
				v: d128
			};
			break;
		default: throw new Error("Unsupported cell type ".concat(buf[1], " : ").concat(fields & 31, " : ").concat(buf[subarray](0, 4)));
	}
	doff += popcnt(fields & 4096) * 4;
	if (fields & 516096) {
		if (zidx == -1) zidx = dv.getUint32(doff, true);
		doff += 4;
	}
	if (fields & 524288) {
		var cmntidx = dv.getUint32(doff, true);
		doff += 4;
		if (lut.cmnt[cmntidx]) ret.c = iwa_to_s5s_comment(lut.cmnt[cmntidx]);
	}
	if (zidx > -1) numbers_format_cell(ret, t$6 | 5 << 8, fields >> 13, lut.ofmt[zidx], lut.nfmt[zidx]);
	if (t$6 == 7) ret.v /= 86400;
	return ret;
}
function write_new_storage(cell, lut) {
	var out = new Uint8Array(32), dv = u8_to_dataview(out), l$3 = 12, fields = 0;
	out[0] = 5;
	switch (cell.t) {
		case "n":
			if (cell.z && fmt_is_date(cell.z)) {
				out[1] = 5;
				dv.setFloat64(l$3, (numdate(cell.v + 1462).getTime() - Date.UTC(2001, 0, 1)) / 1e3, true);
				fields |= 4;
				l$3 += 8;
				break;
			} else {
				out[1] = 2;
				writeDecimal128LE(out, l$3, cell.v);
				fields |= 1;
				l$3 += 16;
			}
			break;
		case "b":
			out[1] = 6;
			dv.setFloat64(l$3, cell.v ? 1 : 0, true);
			fields |= 2;
			l$3 += 8;
			break;
		case "s":
			{
				var s$5 = cell.v == null ? "" : String(cell.v);
				if (cell.l) {
					var irsst = lut.rsst.findIndex(function(v$3) {
						var _a;
						return v$3.v == s$5 && v$3.l == ((_a = cell.l) == null ? void 0 : _a.Target);
					});
					if (irsst == -1) lut.rsst[irsst = lut.rsst.length] = {
						v: s$5,
						l: cell.l.Target
					};
					out[1] = 9;
					dv.setUint32(l$3, irsst, true);
					fields |= 16;
					l$3 += 4;
				} else {
					var isst = lut.sst.indexOf(s$5);
					if (isst == -1) lut.sst[isst = lut.sst.length] = s$5;
					out[1] = 3;
					dv.setUint32(l$3, isst, true);
					fields |= 8;
					l$3 += 4;
				}
			}
			break;
		case "d":
			out[1] = 5;
			dv.setFloat64(l$3, (cell.v.getTime() - Date.UTC(2001, 0, 1)) / 1e3, true);
			fields |= 4;
			l$3 += 8;
			break;
		case "z":
			out[1] = 0;
			break;
		default: throw "unsupported cell type " + cell.t;
	}
	if (cell.c) {
		lut.cmnt.push(s5s_to_iwa_comment(cell.c));
		dv.setUint32(l$3, lut.cmnt.length - 1, true);
		fields |= 524288;
		l$3 += 4;
	}
	dv.setUint32(8, fields, true);
	return out[subarray](0, l$3);
}
function write_old_storage(cell, lut) {
	var out = new Uint8Array(32), dv = u8_to_dataview(out), l$3 = 12, fields = 0, s$5 = "";
	out[0] = 4;
	switch (cell.t) {
		case "n": break;
		case "b": break;
		case "s":
			{
				s$5 = cell.v == null ? "" : String(cell.v);
				if (cell.l) {
					var irsst = lut.rsst.findIndex(function(v$3) {
						var _a;
						return v$3.v == s$5 && v$3.l == ((_a = cell.l) == null ? void 0 : _a.Target);
					});
					if (irsst == -1) lut.rsst[irsst = lut.rsst.length] = {
						v: s$5,
						l: cell.l.Target
					};
					out[1] = 9;
					dv.setUint32(l$3, irsst, true);
					fields |= 512;
					l$3 += 4;
				} else {}
			}
			break;
		case "d": break;
		case "e": break;
		case "z": break;
		default: throw "unsupported cell type " + cell.t;
	}
	if (cell.c) {
		dv.setUint32(l$3, lut.cmnt.length - 1, true);
		fields |= 4096;
		l$3 += 4;
	}
	switch (cell.t) {
		case "n":
			out[1] = 2;
			dv.setFloat64(l$3, cell.v, true);
			fields |= 32;
			l$3 += 8;
			break;
		case "b":
			out[1] = 6;
			dv.setFloat64(l$3, cell.v ? 1 : 0, true);
			fields |= 32;
			l$3 += 8;
			break;
		case "s":
			{
				s$5 = cell.v == null ? "" : String(cell.v);
				if (cell.l) {} else {
					var isst = lut.sst.indexOf(s$5);
					if (isst == -1) lut.sst[isst = lut.sst.length] = s$5;
					out[1] = 3;
					dv.setUint32(l$3, isst, true);
					fields |= 16;
					l$3 += 4;
				}
			}
			break;
		case "d":
			out[1] = 5;
			dv.setFloat64(l$3, (cell.v.getTime() - Date.UTC(2001, 0, 1)) / 1e3, true);
			fields |= 64;
			l$3 += 8;
			break;
		case "z":
			out[1] = 0;
			break;
		default: throw "unsupported cell type " + cell.t;
	}
	dv.setUint32(8, fields, true);
	return out[subarray](0, l$3);
}
function parse_cell_storage(buf, lut, opts) {
	switch (buf[0]) {
		case 0:
		case 1:
		case 2:
		case 3:
		case 4: return parse_old_storage(buf, lut, buf[0], opts);
		case 5: return parse_new_storage(buf, lut, opts);
		default: throw new Error("Unsupported payload version ".concat(buf[0]));
	}
}
function parse_TSP_Reference(buf) {
	var pb = parse_shallow(buf);
	return varint_to_i32(pb[1][0].data);
}
function write_TSP_Reference(idx) {
	return write_shallow([[], [{
		type: 0,
		data: write_varint49(idx)
	}]]);
}
function numbers_add_oref(iwa, ref) {
	var _a;
	var orefs = ((_a = iwa.messages[0].meta[5]) == null ? void 0 : _a[0]) ? parse_packed_varints(iwa.messages[0].meta[5][0].data) : [];
	var orefidx = orefs.indexOf(ref);
	if (orefidx == -1) {
		orefs.push(ref);
		iwa.messages[0].meta[5] = [{
			type: 2,
			data: write_packed_varints(orefs)
		}];
	}
}
function numbers_del_oref(iwa, ref) {
	var _a;
	var orefs = ((_a = iwa.messages[0].meta[5]) == null ? void 0 : _a[0]) ? parse_packed_varints(iwa.messages[0].meta[5][0].data) : [];
	iwa.messages[0].meta[5] = [{
		type: 2,
		data: write_packed_varints(orefs.filter(function(r$10) {
			return r$10 != ref;
		}))
	}];
}
function parse_TST_TableDataList(M$3, root) {
	var pb = parse_shallow(root.data);
	var type = varint_to_i32(pb[1][0].data);
	var entries = pb[3];
	var data = [];
	(entries || []).forEach(function(entry) {
		var _a, _b;
		var le$1 = parse_shallow(entry.data);
		if (!le$1[1]) return;
		var key = varint_to_i32(le$1[1][0].data) >>> 0;
		switch (type) {
			case 1:
				data[key] = u8str(le$1[3][0].data);
				break;
			case 8:
				{
					var rt = M$3[parse_TSP_Reference(le$1[9][0].data)][0];
					var rtp = parse_shallow(rt.data);
					var rtpref = M$3[parse_TSP_Reference(rtp[1][0].data)][0];
					var mtype = varint_to_i32(rtpref.meta[1][0].data);
					if (mtype != 2001) throw new Error("2000 unexpected reference to ".concat(mtype));
					var tswpsa = parse_shallow(rtpref.data);
					var richtext = { v: tswpsa[3].map(function(x$2) {
						return u8str(x$2.data);
					}).join("") };
					data[key] = richtext;
					sfields: if ((_a = tswpsa == null ? void 0 : tswpsa[11]) == null ? void 0 : _a[0]) {
						var smartfields = (_b = parse_shallow(tswpsa[11][0].data)) == null ? void 0 : _b[1];
						if (!smartfields) break sfields;
						smartfields.forEach(function(sf) {
							var _a2, _b2, _c;
							var attr = parse_shallow(sf.data);
							if ((_a2 = attr[2]) == null ? void 0 : _a2[0]) {
								var obj = M$3[parse_TSP_Reference((_b2 = attr[2]) == null ? void 0 : _b2[0].data)][0];
								var objtype = varint_to_i32(obj.meta[1][0].data);
								switch (objtype) {
									case 2032:
										var hlink = parse_shallow(obj.data);
										if (((_c = hlink == null ? void 0 : hlink[2]) == null ? void 0 : _c[0]) && !richtext.l) richtext.l = u8str(hlink[2][0].data);
										break;
									case 2039: break;
									default: console.log("unrecognized ObjectAttribute type ".concat(objtype));
								}
							}
						});
					}
				}
				break;
			case 2:
				data[key] = parse_shallow(le$1[6][0].data);
				break;
			case 3:
				data[key] = parse_shallow(le$1[5][0].data);
				break;
			case 10:
				{
					var cs = M$3[parse_TSP_Reference(le$1[10][0].data)][0];
					data[key] = parse_TSD_CommentStorageArchive(M$3, cs.data);
				}
				break;
			default: throw type;
		}
	});
	return data;
}
function parse_TST_TileRowInfo(u8, type) {
	var _a, _b, _c, _d, _e$1, _f, _g, _h, _i$1, _j, _k, _l, _m, _n;
	var pb = parse_shallow(u8);
	var R$1 = varint_to_i32(pb[1][0].data) >>> 0;
	var cnt = varint_to_i32(pb[2][0].data) >>> 0;
	var wide_offsets = ((_b = (_a = pb[8]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) && varint_to_i32(pb[8][0].data) > 0 || false;
	var used_storage_u8, used_storage;
	if (((_d = (_c = pb[7]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && type != 0) {
		used_storage_u8 = (_f = (_e$1 = pb[7]) == null ? void 0 : _e$1[0]) == null ? void 0 : _f.data;
		used_storage = (_h = (_g = pb[6]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data;
	} else if (((_j = (_i$1 = pb[4]) == null ? void 0 : _i$1[0]) == null ? void 0 : _j.data) && type != 1) {
		used_storage_u8 = (_l = (_k = pb[4]) == null ? void 0 : _k[0]) == null ? void 0 : _l.data;
		used_storage = (_n = (_m = pb[3]) == null ? void 0 : _m[0]) == null ? void 0 : _n.data;
	} else throw "NUMBERS Tile missing ".concat(type, " cell storage");
	var width = wide_offsets ? 4 : 1;
	var used_storage_offsets = u8_to_dataview(used_storage_u8);
	var offsets = [];
	for (var C$2 = 0; C$2 < used_storage_u8.length / 2; ++C$2) {
		var off = used_storage_offsets.getUint16(C$2 * 2, true);
		if (off < 65535) offsets.push([C$2, off]);
	}
	if (offsets.length != cnt) throw "Expected ".concat(cnt, " cells, found ").concat(offsets.length);
	var cells = [];
	for (C$2 = 0; C$2 < offsets.length - 1; ++C$2) cells[offsets[C$2][0]] = used_storage[subarray](offsets[C$2][1] * width, offsets[C$2 + 1][1] * width);
	if (offsets.length >= 1) cells[offsets[offsets.length - 1][0]] = used_storage[subarray](offsets[offsets.length - 1][1] * width);
	return {
		R: R$1,
		cells
	};
}
function parse_TST_Tile(M$3, root) {
	var _a;
	var pb = parse_shallow(root.data);
	var storage = -1;
	if ((_a = pb == null ? void 0 : pb[7]) == null ? void 0 : _a[0]) {
		if (varint_to_i32(pb[7][0].data) >>> 0) storage = 1;
		else storage = 0;
	}
	var ri = mappa(pb[5], function(u8) {
		return parse_TST_TileRowInfo(u8, storage);
	});
	return {
		nrows: varint_to_i32(pb[4][0].data) >>> 0,
		data: ri.reduce(function(acc, x$2) {
			if (!acc[x$2.R]) acc[x$2.R] = [];
			x$2.cells.forEach(function(cell, C$2) {
				if (acc[x$2.R][C$2]) throw new Error("Duplicate cell r=".concat(x$2.R, " c=").concat(C$2));
				acc[x$2.R][C$2] = cell;
			});
			return acc;
		}, [])
	};
}
function parse_TSD_CommentStorageArchive(M$3, data) {
	var _a, _b, _c, _d, _e$1, _f, _g, _h, _i$1, _j;
	var out = {
		t: "",
		a: ""
	};
	var csp$1 = parse_shallow(data);
	if ((_b = (_a = csp$1 == null ? void 0 : csp$1[1]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) out.t = u8str((_d = (_c = csp$1 == null ? void 0 : csp$1[1]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) || "";
	if ((_f = (_e$1 = csp$1 == null ? void 0 : csp$1[3]) == null ? void 0 : _e$1[0]) == null ? void 0 : _f.data) {
		var as = M$3[parse_TSP_Reference((_h = (_g = csp$1 == null ? void 0 : csp$1[3]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data)][0];
		var asp = parse_shallow(as.data);
		if ((_j = (_i$1 = asp[1]) == null ? void 0 : _i$1[0]) == null ? void 0 : _j.data) out.a = u8str(asp[1][0].data);
	}
	if (csp$1 == null ? void 0 : csp$1[4]) {
		out.replies = [];
		csp$1[4].forEach(function(pi) {
			var cs = M$3[parse_TSP_Reference(pi.data)][0];
			out.replies.push(parse_TSD_CommentStorageArchive(M$3, cs.data));
		});
	}
	return out;
}
function iwa_to_s5s_comment(iwa) {
	var out = [];
	out.push({
		t: iwa.t || "",
		a: iwa.a,
		T: iwa.replies && iwa.replies.length > 0
	});
	if (iwa.replies) iwa.replies.forEach(function(reply) {
		out.push({
			t: reply.t || "",
			a: reply.a,
			T: true
		});
	});
	return out;
}
function s5s_to_iwa_comment(s5s) {
	var out = {
		a: "",
		t: "",
		replies: []
	};
	for (var i$7 = 0; i$7 < s5s.length; ++i$7) {
		if (i$7 == 0) {
			out.a = s5s[i$7].a;
			out.t = s5s[i$7].t;
		} else {
			out.replies.push({
				a: s5s[i$7].a,
				t: s5s[i$7].t
			});
		}
	}
	return out;
}
function parse_TST_TableModelArchive(M$3, root, ws, opts) {
	var _a, _b, _c, _d, _e$1, _f, _g, _h, _i$1, _j, _k, _l, _m, _n;
	var pb = parse_shallow(root.data);
	var range = {
		s: {
			r: 0,
			c: 0
		},
		e: {
			r: 0,
			c: 0
		}
	};
	range.e.r = (varint_to_i32(pb[6][0].data) >>> 0) - 1;
	if (range.e.r < 0) throw new Error("Invalid row varint ".concat(pb[6][0].data));
	range.e.c = (varint_to_i32(pb[7][0].data) >>> 0) - 1;
	if (range.e.c < 0) throw new Error("Invalid col varint ".concat(pb[7][0].data));
	ws["!ref"] = encode_range(range);
	var dense = ws["!data"] != null, dws = ws;
	var store = parse_shallow(pb[4][0].data);
	var lut = numbers_lut_new();
	if ((_a = store[4]) == null ? void 0 : _a[0]) lut.sst = parse_TST_TableDataList(M$3, M$3[parse_TSP_Reference(store[4][0].data)][0]);
	if ((_b = store[6]) == null ? void 0 : _b[0]) lut.fmla = parse_TST_TableDataList(M$3, M$3[parse_TSP_Reference(store[6][0].data)][0]);
	if ((_c = store[11]) == null ? void 0 : _c[0]) lut.ofmt = parse_TST_TableDataList(M$3, M$3[parse_TSP_Reference(store[11][0].data)][0]);
	if ((_d = store[12]) == null ? void 0 : _d[0]) lut.ferr = parse_TST_TableDataList(M$3, M$3[parse_TSP_Reference(store[12][0].data)][0]);
	if ((_e$1 = store[17]) == null ? void 0 : _e$1[0]) lut.rsst = parse_TST_TableDataList(M$3, M$3[parse_TSP_Reference(store[17][0].data)][0]);
	if ((_f = store[19]) == null ? void 0 : _f[0]) lut.cmnt = parse_TST_TableDataList(M$3, M$3[parse_TSP_Reference(store[19][0].data)][0]);
	if ((_g = store[22]) == null ? void 0 : _g[0]) lut.nfmt = parse_TST_TableDataList(M$3, M$3[parse_TSP_Reference(store[22][0].data)][0]);
	var tile = parse_shallow(store[3][0].data);
	var _R = 0;
	if (!((_h = store[9]) == null ? void 0 : _h[0])) throw "NUMBERS file missing row tree";
	var rtt = parse_shallow(store[9][0].data)[1].map(function(p$3) {
		return parse_shallow(p$3.data);
	});
	rtt.forEach(function(kv) {
		_R = varint_to_i32(kv[1][0].data);
		var tidx = varint_to_i32(kv[2][0].data);
		var t$6 = tile[1][tidx];
		if (!t$6) throw "NUMBERS missing tile " + tidx;
		var tl = parse_shallow(t$6.data);
		var ref2 = M$3[parse_TSP_Reference(tl[2][0].data)][0];
		var mtype2 = varint_to_i32(ref2.meta[1][0].data);
		if (mtype2 != 6002) throw new Error("6001 unexpected reference to ".concat(mtype2));
		var _tile = parse_TST_Tile(M$3, ref2);
		_tile.data.forEach(function(row, R$1) {
			row.forEach(function(buf, C$2) {
				var res = parse_cell_storage(buf, lut, opts);
				if (res) {
					if (dense) {
						if (!dws["!data"][_R + R$1]) dws["!data"][_R + R$1] = [];
						dws["!data"][_R + R$1][C$2] = res;
					} else {
						ws[encode_col(C$2) + encode_row(_R + R$1)] = res;
					}
				}
			});
		});
		_R += _tile.nrows;
	});
	if ((_i$1 = store[13]) == null ? void 0 : _i$1[0]) {
		var ref = M$3[parse_TSP_Reference(store[13][0].data)][0];
		var mtype = varint_to_i32(ref.meta[1][0].data);
		if (mtype != 6144) throw new Error("Expected merge type 6144, found ".concat(mtype));
		ws["!merges"] = (_j = parse_shallow(ref.data)) == null ? void 0 : _j[1].map(function(pi) {
			var merge = parse_shallow(pi.data);
			var origin = u8_to_dataview(parse_shallow(merge[1][0].data)[1][0].data), size = u8_to_dataview(parse_shallow(merge[2][0].data)[1][0].data);
			return {
				s: {
					r: origin.getUint16(0, true),
					c: origin.getUint16(2, true)
				},
				e: {
					r: origin.getUint16(0, true) + size.getUint16(0, true) - 1,
					c: origin.getUint16(2, true) + size.getUint16(2, true) - 1
				}
			};
		});
	}
	if (!((_k = ws["!merges"]) == null ? void 0 : _k.length) && ((_l = pb[47]) == null ? void 0 : _l[0])) {
		var merge_owner = parse_shallow(pb[47][0].data);
		if ((_m = merge_owner[2]) == null ? void 0 : _m[0]) {
			var formula_store = parse_shallow(merge_owner[2][0].data);
			if ((_n = formula_store[3]) == null ? void 0 : _n[0]) {
				ws["!merges"] = mappa(formula_store[3], function(u$4) {
					var _a2, _b2, _c2, _d2, _e2;
					var formula_pair = parse_shallow(u$4);
					var formula = parse_shallow(formula_pair[2][0].data);
					var AST_node_array = parse_shallow(formula[1][0].data);
					if (!((_a2 = AST_node_array[1]) == null ? void 0 : _a2[0])) return;
					var AST_node0 = parse_shallow(AST_node_array[1][0].data);
					var AST_node_type = varint_to_i32(AST_node0[1][0].data);
					if (AST_node_type != 67) return;
					var AST_colon_tract = parse_shallow(AST_node0[40][0].data);
					if (!((_b2 = AST_colon_tract[3]) == null ? void 0 : _b2[0]) || !((_c2 = AST_colon_tract[4]) == null ? void 0 : _c2[0])) return;
					var colrange = parse_shallow(AST_colon_tract[3][0].data);
					var rowrange = parse_shallow(AST_colon_tract[4][0].data);
					var c$7 = varint_to_i32(colrange[1][0].data);
					var C$2 = ((_d2 = colrange[2]) == null ? void 0 : _d2[0]) ? varint_to_i32(colrange[2][0].data) : c$7;
					var r$10 = varint_to_i32(rowrange[1][0].data);
					var R$1 = ((_e2 = rowrange[2]) == null ? void 0 : _e2[0]) ? varint_to_i32(rowrange[2][0].data) : r$10;
					return {
						s: {
							r: r$10,
							c: c$7
						},
						e: {
							r: R$1,
							c: C$2
						}
					};
				}).filter(function(x$2) {
					return x$2 != null;
				});
			}
		}
	}
}
function parse_TST_TableInfoArchive(M$3, root, opts) {
	var pb = parse_shallow(root.data);
	var out = { "!ref": "A1" };
	if (opts == null ? void 0 : opts.dense) out["!data"] = [];
	var tableref = M$3[parse_TSP_Reference(pb[2][0].data)];
	var mtype = varint_to_i32(tableref[0].meta[1][0].data);
	if (mtype != 6001) throw new Error("6000 unexpected reference to ".concat(mtype));
	parse_TST_TableModelArchive(M$3, tableref[0], out, opts);
	return out;
}
function parse_TN_SheetArchive(M$3, root, opts) {
	var _a;
	var pb = parse_shallow(root.data);
	var out = {
		name: ((_a = pb[1]) == null ? void 0 : _a[0]) ? u8str(pb[1][0].data) : "",
		sheets: []
	};
	var shapeoffs = mappa(pb[2], parse_TSP_Reference);
	shapeoffs.forEach(function(off) {
		M$3[off].forEach(function(m$3) {
			var mtype = varint_to_i32(m$3.meta[1][0].data);
			if (mtype == 6e3) out.sheets.push(parse_TST_TableInfoArchive(M$3, m$3, opts));
		});
	});
	return out;
}
function parse_TN_DocumentArchive(M$3, root, opts) {
	var _a;
	var out = book_new();
	out.Workbook = { WBProps: { date1904: true } };
	var pb = parse_shallow(root.data);
	if ((_a = pb[2]) == null ? void 0 : _a[0]) throw new Error("Keynote presentations are not supported");
	var sheetoffs = mappa(pb[1], parse_TSP_Reference);
	sheetoffs.forEach(function(off) {
		M$3[off].forEach(function(m$3) {
			var mtype = varint_to_i32(m$3.meta[1][0].data);
			if (mtype == 2) {
				var root2 = parse_TN_SheetArchive(M$3, m$3, opts);
				root2.sheets.forEach(function(sheet, idx) {
					book_append_sheet(out, sheet, idx == 0 ? root2.name : root2.name + "_" + idx, true);
				});
			}
		});
	});
	if (out.SheetNames.length == 0) throw new Error("Empty NUMBERS file");
	out.bookType = "numbers";
	return out;
}
function parse_numbers_iwa(cfb, opts) {
	var _a, _b, _c, _d, _e$1, _f, _g;
	var M$3 = {}, indices = [];
	cfb.FullPaths.forEach(function(p$3) {
		if (p$3.match(/\.iwpv2/)) throw new Error("Unsupported password protection");
	});
	cfb.FileIndex.forEach(function(s$5) {
		if (!s$5.name.match(/\.iwa$/)) return;
		if (s$5.content[0] != 0) return;
		var o$10;
		try {
			o$10 = decompress_iwa_file(s$5.content);
		} catch (e$10) {
			return console.log("?? " + s$5.content.length + " " + (e$10.message || e$10));
		}
		var packets;
		try {
			packets = parse_iwa_file(o$10);
		} catch (e$10) {
			return console.log("## " + (e$10.message || e$10));
		}
		packets.forEach(function(packet) {
			M$3[packet.id] = packet.messages;
			indices.push(packet.id);
		});
	});
	if (!indices.length) throw new Error("File has no messages");
	if (((_c = (_b = (_a = M$3 == null ? void 0 : M$3[1]) == null ? void 0 : _a[0].meta) == null ? void 0 : _b[1]) == null ? void 0 : _c[0].data) && varint_to_i32(M$3[1][0].meta[1][0].data) == 1e4) throw new Error("Pages documents are not supported");
	var docroot = ((_g = (_f = (_e$1 = (_d = M$3 == null ? void 0 : M$3[1]) == null ? void 0 : _d[0]) == null ? void 0 : _e$1.meta) == null ? void 0 : _f[1]) == null ? void 0 : _g[0].data) && varint_to_i32(M$3[1][0].meta[1][0].data) == 1 && M$3[1][0];
	if (!docroot) indices.forEach(function(idx) {
		M$3[idx].forEach(function(iwam) {
			var mtype = varint_to_i32(iwam.meta[1][0].data) >>> 0;
			if (mtype == 1) {
				if (!docroot) docroot = iwam;
				else throw new Error("Document has multiple roots");
			}
		});
	});
	if (!docroot) throw new Error("Cannot find Document root");
	return parse_TN_DocumentArchive(M$3, docroot, opts);
}
function write_TST_TileRowInfo(data, lut, wide) {
	var _a, _b, _c;
	var tri = [
		[],
		[{
			type: 0,
			data: write_varint49(0)
		}],
		[{
			type: 0,
			data: write_varint49(0)
		}],
		[{
			type: 2,
			data: new Uint8Array([])
		}],
		[{
			type: 2,
			data: new Uint8Array(Array.from({ length: 510 }, function() {
				return 255;
			}))
		}],
		[{
			type: 0,
			data: write_varint49(5)
		}],
		[{
			type: 2,
			data: new Uint8Array([])
		}],
		[{
			type: 2,
			data: new Uint8Array(Array.from({ length: 510 }, function() {
				return 255;
			}))
		}],
		[{
			type: 0,
			data: write_varint49(1)
		}]
	];
	if (!((_a = tri[6]) == null ? void 0 : _a[0]) || !((_b = tri[7]) == null ? void 0 : _b[0])) throw "Mutation only works on post-BNC storages!";
	var cnt = 0;
	if (tri[7][0].data.length < 2 * data.length) {
		var new_7 = new Uint8Array(2 * data.length);
		new_7.set(tri[7][0].data);
		tri[7][0].data = new_7;
	}
	if (tri[4][0].data.length < 2 * data.length) {
		var new_4 = new Uint8Array(2 * data.length);
		new_4.set(tri[4][0].data);
		tri[4][0].data = new_4;
	}
	var dv = u8_to_dataview(tri[7][0].data), last_offset = 0, cell_storage = [];
	var _dv = u8_to_dataview(tri[4][0].data), _last_offset = 0, _cell_storage = [];
	var width = wide ? 4 : 1;
	for (var C$2 = 0; C$2 < data.length; ++C$2) {
		if (data[C$2] == null || data[C$2].t == "z" && !((_c = data[C$2].c) == null ? void 0 : _c.length) || data[C$2].t == "e") {
			dv.setUint16(C$2 * 2, 65535, true);
			_dv.setUint16(C$2 * 2, 65535);
			continue;
		}
		dv.setUint16(C$2 * 2, last_offset / width, true);
		_dv.setUint16(C$2 * 2, _last_offset / width, true);
		var celload, _celload;
		switch (data[C$2].t) {
			case "d":
				if (data[C$2].v instanceof Date) {
					celload = write_new_storage(data[C$2], lut);
					_celload = write_old_storage(data[C$2], lut);
					break;
				}
				celload = write_new_storage(data[C$2], lut);
				_celload = write_old_storage(data[C$2], lut);
				break;
			case "s":
			case "n":
			case "b":
			case "z":
				celload = write_new_storage(data[C$2], lut);
				_celload = write_old_storage(data[C$2], lut);
				break;
			default: throw new Error("Unsupported value " + data[C$2]);
		}
		cell_storage.push(celload);
		last_offset += celload.length;
		{
			_cell_storage.push(_celload);
			_last_offset += _celload.length;
		}
		++cnt;
	}
	tri[2][0].data = write_varint49(cnt);
	tri[5][0].data = write_varint49(5);
	for (; C$2 < tri[7][0].data.length / 2; ++C$2) {
		dv.setUint16(C$2 * 2, 65535, true);
		_dv.setUint16(C$2 * 2, 65535, true);
	}
	tri[6][0].data = u8concat(cell_storage);
	tri[3][0].data = u8concat(_cell_storage);
	tri[8] = [{
		type: 0,
		data: write_varint49(wide ? 1 : 0)
	}];
	return tri;
}
function write_iwam(type, payload) {
	return {
		meta: [[], [{
			type: 0,
			data: write_varint49(type)
		}]],
		data: payload
	};
}
function get_unique_msgid(dep, dependents) {
	if (!dependents.last) dependents.last = 927262;
	for (var i$7 = dependents.last; i$7 < 2e6; ++i$7) if (!dependents[i$7]) {
		dependents[dependents.last = i$7] = dep;
		return i$7;
	}
	throw new Error("Too many messages");
}
function build_numbers_deps(cfb) {
	var dependents = {};
	var indices = [];
	cfb.FileIndex.map(function(fi, idx) {
		return [fi, cfb.FullPaths[idx]];
	}).forEach(function(row) {
		var fi = row[0], fp = row[1];
		if (fi.type != 2) return;
		if (!fi.name.match(/\.iwa/)) return;
		if (fi.content[0] != 0) return;
		parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(packet) {
			indices.push(packet.id);
			dependents[packet.id] = {
				deps: [],
				location: fp,
				type: varint_to_i32(packet.messages[0].meta[1][0].data)
			};
		});
	});
	cfb.FileIndex.forEach(function(fi) {
		if (!fi.name.match(/\.iwa/)) return;
		if (fi.content[0] != 0) return;
		parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(ia) {
			ia.messages.forEach(function(mess) {
				[5, 6].forEach(function(f$4) {
					if (!mess.meta[f$4]) return;
					mess.meta[f$4].forEach(function(x$2) {
						dependents[ia.id].deps.push(varint_to_i32(x$2.data));
					});
				});
			});
		});
	});
	return dependents;
}
function write_TSP_Color_RGB(r$10, g$1, b$3) {
	return write_shallow([
		[],
		[{
			type: 0,
			data: write_varint49(1)
		}],
		[],
		[{
			type: 5,
			data: new Uint8Array(Float32Array.from([r$10 / 255]).buffer)
		}],
		[{
			type: 5,
			data: new Uint8Array(Float32Array.from([g$1 / 255]).buffer)
		}],
		[{
			type: 5,
			data: new Uint8Array(Float32Array.from([b$3 / 255]).buffer)
		}],
		[{
			type: 5,
			data: new Uint8Array(Float32Array.from([1]).buffer)
		}],
		[],
		[],
		[],
		[],
		[],
		[{
			type: 0,
			data: write_varint49(1)
		}]
	]);
}
function get_author_color(n$9) {
	switch (n$9) {
		case 0: return write_TSP_Color_RGB(99, 222, 171);
		case 1: return write_TSP_Color_RGB(162, 197, 240);
		case 2: return write_TSP_Color_RGB(255, 189, 189);
	}
	return write_TSP_Color_RGB(Math.random() * 255, Math.random() * 255, Math.random() * 255);
}
function write_numbers_iwa(wb, opts) {
	if (!opts || !opts.numbers) throw new Error("Must pass a `numbers` option -- check the README");
	var cfb = CFB.read(opts.numbers, { type: "base64" });
	var deps = build_numbers_deps(cfb);
	var docroot = numbers_iwa_find(cfb, deps, 1);
	if (docroot == null) throw "Could not find message ".concat(1, " in Numbers template");
	var sheetrefs = mappa(parse_shallow(docroot.messages[0].data)[1], parse_TSP_Reference);
	if (sheetrefs.length > 1) throw new Error("Template NUMBERS file must have exactly one sheet");
	wb.SheetNames.forEach(function(name, idx) {
		if (idx >= 1) {
			numbers_add_ws(cfb, deps, idx + 1);
			docroot = numbers_iwa_find(cfb, deps, 1);
			sheetrefs = mappa(parse_shallow(docroot.messages[0].data)[1], parse_TSP_Reference);
		}
		write_numbers_ws(cfb, deps, wb.Sheets[name], name, idx, sheetrefs[idx]);
	});
	return cfb;
}
function numbers_iwa_doit(cfb, deps, id, cb) {
	var entry = CFB.find(cfb, deps[id].location);
	if (!entry) throw "Could not find ".concat(deps[id].location, " in Numbers template");
	var x$2 = parse_iwa_file(decompress_iwa_file(entry.content));
	var ainfo = x$2.find(function(packet) {
		return packet.id == id;
	});
	cb(ainfo, x$2);
	entry.content = compress_iwa_file(write_iwa_file(x$2));
	entry.size = entry.content.length;
}
function numbers_iwa_find(cfb, deps, id) {
	var entry = CFB.find(cfb, deps[id].location);
	if (!entry) throw "Could not find ".concat(deps[id].location, " in Numbers template");
	var x$2 = parse_iwa_file(decompress_iwa_file(entry.content));
	var ainfo = x$2.find(function(packet) {
		return packet.id == id;
	});
	return ainfo;
}
function numbers_add_meta(mlist, newid, newloc) {
	mlist[3].push({
		type: 2,
		data: write_shallow([
			[],
			[{
				type: 0,
				data: write_varint49(newid)
			}],
			[{
				type: 2,
				data: stru8(newloc.replace(/-[\s\S]*$/, ""))
			}],
			[{
				type: 2,
				data: stru8(newloc)
			}],
			[{
				type: 2,
				data: new Uint8Array([
					2,
					0,
					0
				])
			}],
			[{
				type: 2,
				data: new Uint8Array([
					2,
					0,
					0
				])
			}],
			[],
			[],
			[],
			[],
			[{
				type: 0,
				data: write_varint49(0)
			}],
			[],
			[{
				type: 0,
				data: write_varint49(0)
			}]
		])
	});
	mlist[1] = [{
		type: 0,
		data: write_varint49(Math.max(newid + 1, varint_to_i32(mlist[1][0].data)))
	}];
}
function numbers_add_msg(cfb, type, msg, path$1, deps, id) {
	if (!id) id = get_unique_msgid({
		deps: [],
		location: "",
		type
	}, deps);
	var loc = "".concat(path$1, "-").concat(id, ".iwa");
	deps[id].location = "Root Entry" + loc;
	CFB.utils.cfb_add(cfb, loc, compress_iwa_file(write_iwa_file([{
		id,
		messages: [write_iwam(type, write_shallow(msg))]
	}])));
	var newloc = loc.replace(/^[\/]/, "").replace(/^Index\//, "").replace(/\.iwa$/, "");
	numbers_iwa_doit(cfb, deps, 2, function(ai) {
		var mlist = parse_shallow(ai.messages[0].data);
		numbers_add_meta(mlist, id || 0, newloc);
		ai.messages[0].data = write_shallow(mlist);
	});
	return id;
}
function numbers_meta_add_dep(mlist, deps, id, dep) {
	var loc = deps[id].location.replace(/^Root Entry\//, "").replace(/^Index\//, "").replace(/\.iwa$/, "");
	var parentidx = mlist[3].findIndex(function(m$3) {
		var _a, _b;
		var mm = parse_shallow(m$3.data);
		if ((_a = mm[3]) == null ? void 0 : _a[0]) return u8str(mm[3][0].data) == loc;
		if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc) return true;
		return false;
	});
	var parent = parse_shallow(mlist[3][parentidx].data);
	if (!parent[6]) parent[6] = [];
	(Array.isArray(dep) ? dep : [dep]).forEach(function(dep2) {
		parent[6].push({
			type: 2,
			data: write_shallow([[], [{
				type: 0,
				data: write_varint49(dep2)
			}]])
		});
	});
	mlist[3][parentidx].data = write_shallow(parent);
}
function numbers_meta_del_dep(mlist, deps, id, dep) {
	var loc = deps[id].location.replace(/^Root Entry\//, "").replace(/^Index\//, "").replace(/\.iwa$/, "");
	var parentidx = mlist[3].findIndex(function(m$3) {
		var _a, _b;
		var mm = parse_shallow(m$3.data);
		if ((_a = mm[3]) == null ? void 0 : _a[0]) return u8str(mm[3][0].data) == loc;
		if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc) return true;
		return false;
	});
	var parent = parse_shallow(mlist[3][parentidx].data);
	if (!parent[6]) parent[6] = [];
	parent[6] = parent[6].filter(function(m$3) {
		return varint_to_i32(parse_shallow(m$3.data)[1][0].data) != dep;
	});
	mlist[3][parentidx].data = write_shallow(parent);
}
function numbers_add_ws(cfb, deps, wsidx) {
	var sheetref = -1, newsheetref = -1;
	var remap = {};
	numbers_iwa_doit(cfb, deps, 1, function(docroot, arch) {
		var doc = parse_shallow(docroot.messages[0].data);
		sheetref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[1][0].data);
		newsheetref = get_unique_msgid({
			deps: [1],
			location: deps[sheetref].location,
			type: 2
		}, deps);
		remap[sheetref] = newsheetref;
		numbers_add_oref(docroot, newsheetref);
		doc[1].push({
			type: 2,
			data: write_TSP_Reference(newsheetref)
		});
		var sheet = numbers_iwa_find(cfb, deps, sheetref);
		sheet.id = newsheetref;
		if (deps[1].location == deps[newsheetref].location) arch.push(sheet);
		else numbers_iwa_doit(cfb, deps, newsheetref, function(_$2, x$2) {
			return x$2.push(sheet);
		});
		docroot.messages[0].data = write_shallow(doc);
	});
	var tiaref = -1;
	numbers_iwa_doit(cfb, deps, newsheetref, function(sheetroot, arch) {
		var sa = parse_shallow(sheetroot.messages[0].data);
		for (var i$7 = 3; i$7 <= 69; ++i$7) delete sa[i$7];
		var drawables = mappa(sa[2], parse_TSP_Reference);
		drawables.forEach(function(n$9) {
			return numbers_del_oref(sheetroot, n$9);
		});
		tiaref = get_unique_msgid({
			deps: [newsheetref],
			location: deps[drawables[0]].location,
			type: deps[drawables[0]].type
		}, deps);
		numbers_add_oref(sheetroot, tiaref);
		remap[drawables[0]] = tiaref;
		sa[2] = [{
			type: 2,
			data: write_TSP_Reference(tiaref)
		}];
		var tia = numbers_iwa_find(cfb, deps, drawables[0]);
		tia.id = tiaref;
		if (deps[drawables[0]].location == deps[newsheetref].location) arch.push(tia);
		else {
			numbers_iwa_doit(cfb, deps, 2, function(ai) {
				var mlist = parse_shallow(ai.messages[0].data);
				numbers_meta_add_dep(mlist, deps, newsheetref, tiaref);
				ai.messages[0].data = write_shallow(mlist);
			});
			numbers_iwa_doit(cfb, deps, tiaref, function(_$2, x$2) {
				return x$2.push(tia);
			});
		}
		sheetroot.messages[0].data = write_shallow(sa);
	});
	var tmaref = -1;
	numbers_iwa_doit(cfb, deps, tiaref, function(tiaroot, arch) {
		var tia = parse_shallow(tiaroot.messages[0].data);
		var da = parse_shallow(tia[1][0].data);
		for (var i$7 = 3; i$7 <= 69; ++i$7) delete da[i$7];
		var dap = parse_TSP_Reference(da[2][0].data);
		da[2][0].data = write_TSP_Reference(remap[dap]);
		tia[1][0].data = write_shallow(da);
		var oldtmaref = parse_TSP_Reference(tia[2][0].data);
		numbers_del_oref(tiaroot, oldtmaref);
		tmaref = get_unique_msgid({
			deps: [tiaref],
			location: deps[oldtmaref].location,
			type: deps[oldtmaref].type
		}, deps);
		numbers_add_oref(tiaroot, tmaref);
		remap[oldtmaref] = tmaref;
		tia[2][0].data = write_TSP_Reference(tmaref);
		var tma = numbers_iwa_find(cfb, deps, oldtmaref);
		tma.id = tmaref;
		if (deps[tiaref].location == deps[tmaref].location) arch.push(tma);
		else numbers_iwa_doit(cfb, deps, tmaref, function(_$2, x$2) {
			return x$2.push(tma);
		});
		tiaroot.messages[0].data = write_shallow(tia);
	});
	numbers_iwa_doit(cfb, deps, tmaref, function(tmaroot, arch) {
		var _a, _b;
		var tma = parse_shallow(tmaroot.messages[0].data);
		var uuid = u8str(tma[1][0].data), new_uuid = uuid.replace(/-[A-Z0-9]*/, "-".concat(("0000" + wsidx.toString(16)).slice(-4)));
		tma[1][0].data = stru8(new_uuid);
		[
			12,
			13,
			29,
			31,
			32,
			33,
			39,
			44,
			47,
			81,
			82,
			84
		].forEach(function(n$9) {
			return delete tma[n$9];
		});
		if (tma[45]) {
			var srrta = parse_shallow(tma[45][0].data);
			var ref = parse_TSP_Reference(srrta[1][0].data);
			numbers_del_oref(tmaroot, ref);
			delete tma[45];
		}
		if (tma[70]) {
			var hsoa = parse_shallow(tma[70][0].data);
			(_a = hsoa[2]) == null ? void 0 : _a.forEach(function(item) {
				var hsa = parse_shallow(item.data);
				[2, 3].map(function(n$9) {
					return hsa[n$9][0];
				}).forEach(function(hseadata) {
					var hsea = parse_shallow(hseadata.data);
					if (!hsea[8]) return;
					var ref2 = parse_TSP_Reference(hsea[8][0].data);
					numbers_del_oref(tmaroot, ref2);
				});
			});
			delete tma[70];
		}
		[
			46,
			30,
			34,
			35,
			36,
			38,
			48,
			49,
			60,
			61,
			62,
			63,
			64,
			71,
			72,
			73,
			74,
			75,
			85,
			86,
			87,
			88,
			89
		].forEach(function(n$9) {
			if (!tma[n$9]) return;
			var ref2 = parse_TSP_Reference(tma[n$9][0].data);
			delete tma[n$9];
			numbers_del_oref(tmaroot, ref2);
		});
		var store = parse_shallow(tma[4][0].data);
		{
			[
				2,
				4,
				5,
				6,
				11,
				12,
				13,
				15,
				16,
				17,
				18,
				19,
				20,
				21,
				22
			].forEach(function(n$9) {
				var _a2;
				if (!((_a2 = store[n$9]) == null ? void 0 : _a2[0])) return;
				var oldref = parse_TSP_Reference(store[n$9][0].data);
				var newref = get_unique_msgid({
					deps: [tmaref],
					location: deps[oldref].location,
					type: deps[oldref].type
				}, deps);
				numbers_del_oref(tmaroot, oldref);
				numbers_add_oref(tmaroot, newref);
				remap[oldref] = newref;
				var msg = numbers_iwa_find(cfb, deps, oldref);
				msg.id = newref;
				if (deps[oldref].location == deps[tmaref].location) arch.push(msg);
				else {
					deps[newref].location = deps[oldref].location.replace(oldref.toString(), newref.toString());
					if (deps[newref].location == deps[oldref].location) deps[newref].location = deps[newref].location.replace(/\.iwa/, "-".concat(newref, ".iwa"));
					CFB.utils.cfb_add(cfb, deps[newref].location, compress_iwa_file(write_iwa_file([msg])));
					var newloc = deps[newref].location.replace(/^Root Entry\//, "").replace(/^Index\//, "").replace(/\.iwa$/, "");
					numbers_iwa_doit(cfb, deps, 2, function(ai) {
						var mlist = parse_shallow(ai.messages[0].data);
						numbers_add_meta(mlist, newref, newloc);
						numbers_meta_add_dep(mlist, deps, tmaref, newref);
						ai.messages[0].data = write_shallow(mlist);
					});
				}
				store[n$9][0].data = write_TSP_Reference(newref);
			});
			var row_headers = parse_shallow(store[1][0].data);
			{
				(_b = row_headers[2]) == null ? void 0 : _b.forEach(function(tspref) {
					var oldref = parse_TSP_Reference(tspref.data);
					var newref = get_unique_msgid({
						deps: [tmaref],
						location: deps[oldref].location,
						type: deps[oldref].type
					}, deps);
					numbers_del_oref(tmaroot, oldref);
					numbers_add_oref(tmaroot, newref);
					remap[oldref] = newref;
					var msg = numbers_iwa_find(cfb, deps, oldref);
					msg.id = newref;
					if (deps[oldref].location == deps[tmaref].location) {
						arch.push(msg);
					} else {
						deps[newref].location = deps[oldref].location.replace(oldref.toString(), newref.toString());
						if (deps[newref].location == deps[oldref].location) deps[newref].location = deps[newref].location.replace(/\.iwa/, "-".concat(newref, ".iwa"));
						CFB.utils.cfb_add(cfb, deps[newref].location, compress_iwa_file(write_iwa_file([msg])));
						var newloc = deps[newref].location.replace(/^Root Entry\//, "").replace(/^Index\//, "").replace(/\.iwa$/, "");
						numbers_iwa_doit(cfb, deps, 2, function(ai) {
							var mlist = parse_shallow(ai.messages[0].data);
							numbers_add_meta(mlist, newref, newloc);
							numbers_meta_add_dep(mlist, deps, tmaref, newref);
							ai.messages[0].data = write_shallow(mlist);
						});
					}
					tspref.data = write_TSP_Reference(newref);
				});
			}
			store[1][0].data = write_shallow(row_headers);
			var tiles = parse_shallow(store[3][0].data);
			{
				tiles[1].forEach(function(t$6) {
					var tst = parse_shallow(t$6.data);
					var oldtileref = parse_TSP_Reference(tst[2][0].data);
					var newtileref = remap[oldtileref];
					if (!remap[oldtileref]) {
						newtileref = get_unique_msgid({
							deps: [tmaref],
							location: "",
							type: deps[oldtileref].type
						}, deps);
						deps[newtileref].location = "Root Entry/Index/Tables/Tile-".concat(newtileref, ".iwa");
						remap[oldtileref] = newtileref;
						var oldtile = numbers_iwa_find(cfb, deps, oldtileref);
						oldtile.id = newtileref;
						numbers_del_oref(tmaroot, oldtileref);
						numbers_add_oref(tmaroot, newtileref);
						CFB.utils.cfb_add(cfb, "/Index/Tables/Tile-".concat(newtileref, ".iwa"), compress_iwa_file(write_iwa_file([oldtile])));
						numbers_iwa_doit(cfb, deps, 2, function(ai) {
							var mlist = parse_shallow(ai.messages[0].data);
							mlist[3].push({
								type: 2,
								data: write_shallow([
									[],
									[{
										type: 0,
										data: write_varint49(newtileref)
									}],
									[{
										type: 2,
										data: stru8("Tables/Tile")
									}],
									[{
										type: 2,
										data: stru8("Tables/Tile-".concat(newtileref))
									}],
									[{
										type: 2,
										data: new Uint8Array([
											2,
											0,
											0
										])
									}],
									[{
										type: 2,
										data: new Uint8Array([
											2,
											0,
											0
										])
									}],
									[],
									[],
									[],
									[],
									[{
										type: 0,
										data: write_varint49(0)
									}],
									[],
									[{
										type: 0,
										data: write_varint49(0)
									}]
								])
							});
							mlist[1] = [{
								type: 0,
								data: write_varint49(Math.max(newtileref + 1, varint_to_i32(mlist[1][0].data)))
							}];
							numbers_meta_add_dep(mlist, deps, tmaref, newtileref);
							ai.messages[0].data = write_shallow(mlist);
						});
					}
					tst[2][0].data = write_TSP_Reference(newtileref);
					t$6.data = write_shallow(tst);
				});
			}
			store[3][0].data = write_shallow(tiles);
		}
		tma[4][0].data = write_shallow(store);
		tmaroot.messages[0].data = write_shallow(tma);
	});
}
function write_numbers_ws(cfb, deps, ws, wsname, sheetidx, rootref) {
	var drawables = [];
	numbers_iwa_doit(cfb, deps, rootref, function(docroot) {
		var sheetref = parse_shallow(docroot.messages[0].data);
		{
			sheetref[1] = [{
				type: 2,
				data: stru8(wsname)
			}];
			drawables = mappa(sheetref[2], parse_TSP_Reference);
		}
		docroot.messages[0].data = write_shallow(sheetref);
	});
	var tia = numbers_iwa_find(cfb, deps, drawables[0]);
	var tmaref = parse_TSP_Reference(parse_shallow(tia.messages[0].data)[2][0].data);
	numbers_iwa_doit(cfb, deps, tmaref, function(docroot, x$2) {
		return write_numbers_tma(cfb, deps, ws, docroot, x$2, tmaref);
	});
}
function write_numbers_tma(cfb, deps, ws, tmaroot, tmafile, tmaref) {
	if (!ws["!ref"]) throw new Error("Cannot export empty sheet to NUMBERS");
	var range = decode_range(ws["!ref"]);
	range.s.r = range.s.c = 0;
	var trunc = false;
	if (range.e.c > 999) {
		trunc = true;
		range.e.c = 999;
	}
	if (range.e.r > 999999) {
		trunc = true;
		range.e.r = 999999;
	}
	if (trunc) console.error("Truncating to ".concat(encode_range(range)));
	var data = [];
	if (ws["!data"]) data = ws["!data"];
	else {
		var colstr = [];
		for (var _C = 0; _C <= range.e.c; ++_C) colstr[_C] = encode_col(_C);
		for (var R_ = 0; R_ <= range.e.r; ++R_) {
			data[R_] = [];
			var _R = "" + (R_ + 1);
			for (_C = 0; _C <= range.e.c; ++_C) {
				var _cell = ws[colstr[_C] + _R];
				if (!_cell) continue;
				data[R_][_C] = _cell;
			}
		}
	}
	var LUT = {
		cmnt: [{
			a: "~54ee77S~",
			t: "... the people who are crazy enough to think they can change the world, are the ones who do."
		}],
		ferr: [],
		fmla: [],
		nfmt: [],
		ofmt: [],
		rsst: [{
			v: "~54ee77S~",
			l: "https://sheetjs.com/"
		}],
		sst: ["~Sh33tJ5~"]
	};
	var pb = parse_shallow(tmaroot.messages[0].data);
	{
		pb[6][0].data = write_varint49(range.e.r + 1);
		pb[7][0].data = write_varint49(range.e.c + 1);
		delete pb[46];
		var store = parse_shallow(pb[4][0].data);
		{
			var row_header_ref = parse_TSP_Reference(parse_shallow(store[1][0].data)[2][0].data);
			numbers_iwa_doit(cfb, deps, row_header_ref, function(rowhead, _x) {
				var _a;
				var base_bucket = parse_shallow(rowhead.messages[0].data);
				if ((_a = base_bucket == null ? void 0 : base_bucket[2]) == null ? void 0 : _a[0]) for (var R2 = 0; R2 < data.length; ++R2) {
					var _bucket = parse_shallow(base_bucket[2][0].data);
					_bucket[1][0].data = write_varint49(R2);
					_bucket[4][0].data = write_varint49(data[R2].length);
					base_bucket[2][R2] = {
						type: base_bucket[2][0].type,
						data: write_shallow(_bucket)
					};
				}
				rowhead.messages[0].data = write_shallow(base_bucket);
			});
			var col_header_ref = parse_TSP_Reference(store[2][0].data);
			numbers_iwa_doit(cfb, deps, col_header_ref, function(colhead, _x) {
				var base_bucket = parse_shallow(colhead.messages[0].data);
				for (var C$2 = 0; C$2 <= range.e.c; ++C$2) {
					var _bucket = parse_shallow(base_bucket[2][0].data);
					_bucket[1][0].data = write_varint49(C$2);
					_bucket[4][0].data = write_varint49(range.e.r + 1);
					base_bucket[2][C$2] = {
						type: base_bucket[2][0].type,
						data: write_shallow(_bucket)
					};
				}
				colhead.messages[0].data = write_shallow(base_bucket);
			});
			var rbtree = parse_shallow(store[9][0].data);
			rbtree[1] = [];
			var tilestore = parse_shallow(store[3][0].data);
			{
				var tstride = 256;
				tilestore[2] = [{
					type: 0,
					data: write_varint49(tstride)
				}];
				var tileref = parse_TSP_Reference(parse_shallow(tilestore[1][0].data)[2][0].data);
				var save_token = function() {
					var metadata = numbers_iwa_find(cfb, deps, 2);
					var mlist = parse_shallow(metadata.messages[0].data);
					var mlst = mlist[3].filter(function(m$3) {
						return varint_to_i32(parse_shallow(m$3.data)[1][0].data) == tileref;
					});
					return (mlst == null ? void 0 : mlst.length) ? varint_to_i32(parse_shallow(mlst[0].data)[12][0].data) : 0;
				}();
				{
					CFB.utils.cfb_del(cfb, deps[tileref].location);
					numbers_iwa_doit(cfb, deps, 2, function(ai) {
						var mlist = parse_shallow(ai.messages[0].data);
						mlist[3] = mlist[3].filter(function(m$3) {
							return varint_to_i32(parse_shallow(m$3.data)[1][0].data) != tileref;
						});
						numbers_meta_del_dep(mlist, deps, tmaref, tileref);
						ai.messages[0].data = write_shallow(mlist);
					});
					numbers_del_oref(tmaroot, tileref);
				}
				tilestore[1] = [];
				var ntiles = Math.ceil((range.e.r + 1) / tstride);
				for (var tidx = 0; tidx < ntiles; ++tidx) {
					var newtileid = get_unique_msgid({
						deps: [],
						location: "",
						type: 6002
					}, deps);
					deps[newtileid].location = "Root Entry/Index/Tables/Tile-".concat(newtileid, ".iwa");
					var tiledata = [
						[],
						[{
							type: 0,
							data: write_varint49(0)
						}],
						[{
							type: 0,
							data: write_varint49(Math.min(range.e.r + 1, (tidx + 1) * tstride))
						}],
						[{
							type: 0,
							data: write_varint49(0)
						}],
						[{
							type: 0,
							data: write_varint49(Math.min((tidx + 1) * tstride, range.e.r + 1) - tidx * tstride)
						}],
						[],
						[{
							type: 0,
							data: write_varint49(5)
						}],
						[{
							type: 0,
							data: write_varint49(1)
						}],
						[{
							type: 0,
							data: write_varint49(USE_WIDE_ROWS ? 1 : 0)
						}]
					];
					for (var R$1 = tidx * tstride; R$1 <= Math.min(range.e.r, (tidx + 1) * tstride - 1); ++R$1) {
						var tilerow = write_TST_TileRowInfo(data[R$1], LUT, USE_WIDE_ROWS);
						tilerow[1][0].data = write_varint49(R$1 - tidx * tstride);
						tiledata[5].push({
							data: write_shallow(tilerow),
							type: 2
						});
					}
					tilestore[1].push({
						type: 2,
						data: write_shallow([
							[],
							[{
								type: 0,
								data: write_varint49(tidx)
							}],
							[{
								type: 2,
								data: write_TSP_Reference(newtileid)
							}]
						])
					});
					var newtile = {
						id: newtileid,
						messages: [write_iwam(6002, write_shallow(tiledata))]
					};
					var tilecontent = compress_iwa_file(write_iwa_file([newtile]));
					CFB.utils.cfb_add(cfb, "/Index/Tables/Tile-".concat(newtileid, ".iwa"), tilecontent);
					numbers_iwa_doit(cfb, deps, 2, function(ai) {
						var mlist = parse_shallow(ai.messages[0].data);
						mlist[3].push({
							type: 2,
							data: write_shallow([
								[],
								[{
									type: 0,
									data: write_varint49(newtileid)
								}],
								[{
									type: 2,
									data: stru8("Tables/Tile")
								}],
								[{
									type: 2,
									data: stru8("Tables/Tile-".concat(newtileid))
								}],
								[{
									type: 2,
									data: new Uint8Array([
										2,
										0,
										0
									])
								}],
								[{
									type: 2,
									data: new Uint8Array([
										2,
										0,
										0
									])
								}],
								[],
								[],
								[],
								[],
								[{
									type: 0,
									data: write_varint49(0)
								}],
								[],
								[{
									type: 0,
									data: write_varint49(save_token)
								}]
							])
						});
						mlist[1] = [{
							type: 0,
							data: write_varint49(Math.max(newtileid + 1, varint_to_i32(mlist[1][0].data)))
						}];
						numbers_meta_add_dep(mlist, deps, tmaref, newtileid);
						ai.messages[0].data = write_shallow(mlist);
					});
					numbers_add_oref(tmaroot, newtileid);
					rbtree[1].push({
						type: 2,
						data: write_shallow([
							[],
							[{
								type: 0,
								data: write_varint49(tidx * tstride)
							}],
							[{
								type: 0,
								data: write_varint49(tidx)
							}]
						])
					});
				}
			}
			store[3][0].data = write_shallow(tilestore);
			store[9][0].data = write_shallow(rbtree);
			store[10] = [{
				type: 2,
				data: new Uint8Array([])
			}];
			if (ws["!merges"]) {
				var mergeid = get_unique_msgid({
					type: 6144,
					deps: [tmaref],
					location: deps[tmaref].location
				}, deps);
				tmafile.push({
					id: mergeid,
					messages: [write_iwam(6144, write_shallow([[], ws["!merges"].map(function(m$3) {
						return {
							type: 2,
							data: write_shallow([
								[],
								[{
									type: 2,
									data: write_shallow([[], [{
										type: 5,
										data: new Uint8Array(new Uint16Array([m$3.s.r, m$3.s.c]).buffer)
									}]])
								}],
								[{
									type: 2,
									data: write_shallow([[], [{
										type: 5,
										data: new Uint8Array(new Uint16Array([m$3.e.r - m$3.s.r + 1, m$3.e.c - m$3.s.c + 1]).buffer)
									}]])
								}]
							])
						};
					})]))]
				});
				store[13] = [{
					type: 2,
					data: write_TSP_Reference(mergeid)
				}];
				numbers_iwa_doit(cfb, deps, 2, function(ai) {
					var mlist = parse_shallow(ai.messages[0].data);
					numbers_meta_add_dep(mlist, deps, tmaref, mergeid);
					ai.messages[0].data = write_shallow(mlist);
				});
				numbers_add_oref(tmaroot, mergeid);
			} else delete store[13];
			var sstref = parse_TSP_Reference(store[4][0].data);
			numbers_iwa_doit(cfb, deps, sstref, function(sstroot) {
				var sstdata = parse_shallow(sstroot.messages[0].data);
				{
					sstdata[3] = [];
					LUT.sst.forEach(function(str, i$7) {
						if (i$7 == 0) return;
						sstdata[3].push({
							type: 2,
							data: write_shallow([
								[],
								[{
									type: 0,
									data: write_varint49(i$7)
								}],
								[{
									type: 0,
									data: write_varint49(1)
								}],
								[{
									type: 2,
									data: stru8(str)
								}]
							])
						});
					});
				}
				sstroot.messages[0].data = write_shallow(sstdata);
			});
			var rsstref = parse_TSP_Reference(store[17][0].data);
			numbers_iwa_doit(cfb, deps, rsstref, function(rsstroot) {
				var rsstdata = parse_shallow(rsstroot.messages[0].data);
				rsstdata[3] = [];
				var style_indices = [
					904980,
					903835,
					903815,
					903845
				];
				LUT.rsst.forEach(function(rsst, i$7) {
					if (i$7 == 0) return;
					var tswpsa = [
						[],
						[{
							type: 0,
							data: new Uint8Array([5])
						}],
						[],
						[{
							type: 2,
							data: stru8(rsst.v)
						}]
					];
					tswpsa[10] = [{
						type: 0,
						data: new Uint8Array([1])
					}];
					tswpsa[19] = [{
						type: 2,
						data: new Uint8Array([
							10,
							6,
							8,
							0,
							18,
							2,
							101,
							110
						])
					}];
					tswpsa[5] = [{
						type: 2,
						data: new Uint8Array([
							10,
							8,
							8,
							0,
							18,
							4,
							8,
							155,
							149,
							55
						])
					}];
					tswpsa[2] = [{
						type: 2,
						data: new Uint8Array([
							8,
							148,
							158,
							55
						])
					}];
					tswpsa[6] = [{
						type: 2,
						data: new Uint8Array([
							10,
							6,
							8,
							0,
							16,
							0,
							24,
							0
						])
					}];
					tswpsa[7] = [{
						type: 2,
						data: new Uint8Array([
							10,
							8,
							8,
							0,
							18,
							4,
							8,
							135,
							149,
							55
						])
					}];
					tswpsa[8] = [{
						type: 2,
						data: new Uint8Array([
							10,
							8,
							8,
							0,
							18,
							4,
							8,
							165,
							149,
							55
						])
					}];
					tswpsa[14] = [{
						type: 2,
						data: new Uint8Array([
							10,
							6,
							8,
							0,
							16,
							0,
							24,
							0
						])
					}];
					tswpsa[24] = [{
						type: 2,
						data: new Uint8Array([
							10,
							6,
							8,
							0,
							16,
							0,
							24,
							0
						])
					}];
					var tswpsaid = get_unique_msgid({
						deps: [],
						location: "",
						type: 2001
					}, deps);
					var tswpsarefs = [];
					if (rsst.l) {
						var newhlinkid = numbers_add_msg(cfb, 2032, [
							[],
							[],
							[{
								type: 2,
								data: stru8(rsst.l)
							}]
						], "/Index/Tables/DataList", deps);
						tswpsa[11] = [];
						var smartfield = [[], []];
						if (!smartfield[1]) smartfield[1] = [];
						smartfield[1].push({
							type: 2,
							data: write_shallow([
								[],
								[{
									type: 0,
									data: write_varint49(0)
								}],
								[{
									type: 2,
									data: write_TSP_Reference(newhlinkid)
								}]
							])
						});
						tswpsa[11][0] = {
							type: 2,
							data: write_shallow(smartfield)
						};
						tswpsarefs.push(newhlinkid);
					}
					numbers_add_msg(cfb, 2001, tswpsa, "/Index/Tables/DataList", deps, tswpsaid);
					numbers_iwa_doit(cfb, deps, tswpsaid, function(iwa) {
						style_indices.forEach(function(ref) {
							return numbers_add_oref(iwa, ref);
						});
						tswpsarefs.forEach(function(ref) {
							return numbers_add_oref(iwa, ref);
						});
					});
					var rtpaid = numbers_add_msg(cfb, 6218, [
						[],
						[{
							type: 2,
							data: write_TSP_Reference(tswpsaid)
						}],
						[],
						[{
							type: 2,
							data: new Uint8Array([
								13,
								255,
								255,
								255,
								0,
								18,
								10,
								16,
								255,
								255,
								1,
								24,
								255,
								255,
								255,
								255,
								7
							])
						}]
					], "/Index/Tables/DataList", deps);
					numbers_iwa_doit(cfb, deps, rtpaid, function(iwa) {
						return numbers_add_oref(iwa, tswpsaid);
					});
					rsstdata[3].push({
						type: 2,
						data: write_shallow([
							[],
							[{
								type: 0,
								data: write_varint49(i$7)
							}],
							[{
								type: 0,
								data: write_varint49(1)
							}],
							[],
							[],
							[],
							[],
							[],
							[],
							[{
								type: 2,
								data: write_TSP_Reference(rtpaid)
							}]
						])
					});
					numbers_add_oref(rsstroot, rtpaid);
					numbers_iwa_doit(cfb, deps, 2, function(ai) {
						var mlist = parse_shallow(ai.messages[0].data);
						numbers_meta_add_dep(mlist, deps, rsstref, rtpaid);
						numbers_meta_add_dep(mlist, deps, rtpaid, tswpsaid);
						numbers_meta_add_dep(mlist, deps, tswpsaid, tswpsarefs);
						numbers_meta_add_dep(mlist, deps, tswpsaid, style_indices);
						ai.messages[0].data = write_shallow(mlist);
					});
				});
				rsstroot.messages[0].data = write_shallow(rsstdata);
			});
			if (LUT.cmnt.length > 1) {
				var cmntref = parse_TSP_Reference(store[19][0].data);
				var authors = {}, iauthor = 0;
				numbers_iwa_doit(cfb, deps, cmntref, function(cmntroot) {
					var cmntdata = parse_shallow(cmntroot.messages[0].data);
					{
						cmntdata[3] = [];
						LUT.cmnt.forEach(function(cc, i$7) {
							if (i$7 == 0) return;
							var replies = [];
							if (cc.replies) cc.replies.forEach(function(c$7) {
								if (!authors[c$7.a || ""]) authors[c$7.a || ""] = numbers_add_msg(cfb, 212, [
									[],
									[{
										type: 2,
										data: stru8(c$7.a || "")
									}],
									[{
										type: 2,
										data: get_author_color(++iauthor)
									}],
									[],
									[{
										type: 0,
										data: write_varint49(0)
									}]
								], "/Index/Tables/DataList", deps);
								var aaaid2 = authors[c$7.a || ""];
								var csaid2 = numbers_add_msg(cfb, 3056, [
									[],
									[{
										type: 2,
										data: stru8(c$7.t || "")
									}],
									[{
										type: 2,
										data: write_shallow([[], [{
											type: 1,
											data: new Uint8Array([
												0,
												0,
												0,
												128,
												116,
												109,
												182,
												65
											])
										}]])
									}],
									[{
										type: 2,
										data: write_TSP_Reference(aaaid2)
									}]
								], "/Index/Tables/DataList", deps);
								numbers_iwa_doit(cfb, deps, csaid2, function(iwa) {
									return numbers_add_oref(iwa, aaaid2);
								});
								replies.push(csaid2);
								numbers_iwa_doit(cfb, deps, 2, function(ai) {
									var mlist = parse_shallow(ai.messages[0].data);
									numbers_meta_add_dep(mlist, deps, csaid2, aaaid2);
									ai.messages[0].data = write_shallow(mlist);
								});
							});
							if (!authors[cc.a || ""]) authors[cc.a || ""] = numbers_add_msg(cfb, 212, [
								[],
								[{
									type: 2,
									data: stru8(cc.a || "")
								}],
								[{
									type: 2,
									data: get_author_color(++iauthor)
								}],
								[],
								[{
									type: 0,
									data: write_varint49(0)
								}]
							], "/Index/Tables/DataList", deps);
							var aaaid = authors[cc.a || ""];
							var csaid = numbers_add_msg(cfb, 3056, [
								[],
								[{
									type: 2,
									data: stru8(cc.t || "")
								}],
								[{
									type: 2,
									data: write_shallow([[], [{
										type: 1,
										data: new Uint8Array([
											0,
											0,
											0,
											128,
											116,
											109,
											182,
											65
										])
									}]])
								}],
								[{
									type: 2,
									data: write_TSP_Reference(aaaid)
								}],
								replies.map(function(r$10) {
									return {
										type: 2,
										data: write_TSP_Reference(r$10)
									};
								}),
								[{
									type: 2,
									data: write_shallow([
										[],
										[{
											type: 0,
											data: write_varint49(i$7)
										}],
										[{
											type: 0,
											data: write_varint49(0)
										}]
									])
								}]
							], "/Index/Tables/DataList", deps);
							numbers_iwa_doit(cfb, deps, csaid, function(iwa) {
								numbers_add_oref(iwa, aaaid);
								replies.forEach(function(r$10) {
									return numbers_add_oref(iwa, r$10);
								});
							});
							cmntdata[3].push({
								type: 2,
								data: write_shallow([
									[],
									[{
										type: 0,
										data: write_varint49(i$7)
									}],
									[{
										type: 0,
										data: write_varint49(1)
									}],
									[],
									[],
									[],
									[],
									[],
									[],
									[],
									[{
										type: 2,
										data: write_TSP_Reference(csaid)
									}]
								])
							});
							numbers_add_oref(cmntroot, csaid);
							numbers_iwa_doit(cfb, deps, 2, function(ai) {
								var mlist = parse_shallow(ai.messages[0].data);
								numbers_meta_add_dep(mlist, deps, cmntref, csaid);
								numbers_meta_add_dep(mlist, deps, csaid, aaaid);
								if (replies.length) numbers_meta_add_dep(mlist, deps, csaid, replies);
								ai.messages[0].data = write_shallow(mlist);
							});
						});
					}
					cmntdata[2][0].data = write_varint49(LUT.cmnt.length + 1);
					cmntroot.messages[0].data = write_shallow(cmntdata);
				});
			}
		}
		pb[4][0].data = write_shallow(store);
	}
	tmaroot.messages[0].data = write_shallow(pb);
}
function fix_opts_func(defaults) {
	return function fix_opts(opts) {
		for (var i$7 = 0; i$7 != defaults.length; ++i$7) {
			var d$5 = defaults[i$7];
			if (opts[d$5[0]] === undefined) opts[d$5[0]] = d$5[1];
			if (d$5[2] === "n") opts[d$5[0]] = Number(opts[d$5[0]]);
		}
	};
}
function fix_read_opts(opts) {
	fix_opts_func([
		["cellNF", false],
		["cellHTML", true],
		["cellFormula", true],
		["cellStyles", false],
		["cellText", true],
		["cellDates", false],
		["sheetStubs", false],
		[
			"sheetRows",
			0,
			"n"
		],
		["bookDeps", false],
		["bookSheets", false],
		["bookProps", false],
		["bookFiles", false],
		["bookVBA", false],
		["password", ""],
		["WTF", false]
	])(opts);
}
function fix_write_opts(opts) {
	fix_opts_func([
		["cellDates", false],
		["bookSST", false],
		["bookType", "xlsx"],
		["compression", false],
		["WTF", false]
	])(opts);
}
function get_sheet_type(n$9) {
	if (RELS.WS.indexOf(n$9) > -1) return "sheet";
	if (RELS.CS && n$9 == RELS.CS) return "chart";
	if (RELS.DS && n$9 == RELS.DS) return "dialog";
	if (RELS.MS && n$9 == RELS.MS) return "macro";
	return n$9 && n$9.length ? n$9 : "sheet";
}
function safe_parse_wbrels(wbrels, sheets) {
	if (!wbrels) return 0;
	try {
		wbrels = sheets.map(function pwbr(w$2) {
			if (!w$2.id) w$2.id = w$2.strRelID;
			return [
				w$2.name,
				wbrels["!id"][w$2.id].Target,
				get_sheet_type(wbrels["!id"][w$2.id].Type)
			];
		});
	} catch (e$10) {
		return null;
	}
	return !wbrels || wbrels.length === 0 ? null : wbrels;
}
function parse_sheet_legacy_drawing(sheet, type, zip, path$1, idx, opts, wb, comments) {
	if (!sheet || !sheet["!legdrawel"]) return;
	var dfile = resolve_path(sheet["!legdrawel"].Target, path$1);
	var draw = getzipstr(zip, dfile, true);
	if (draw) parse_vml(utf8read(draw), sheet, comments || []);
}
function safe_parse_sheet(zip, path$1, relsPath, sheet, idx, sheetRels, sheets, stype, opts, wb, themes, styles$1) {
	try {
		sheetRels[sheet] = parse_rels(getzipstr(zip, relsPath, true), path$1);
		var data = getzipdata(zip, path$1);
		var _ws;
		switch (stype) {
			case "sheet":
				_ws = parse_ws(data, path$1, idx, opts, sheetRels[sheet], wb, themes, styles$1);
				break;
			case "chart":
				_ws = parse_cs(data, path$1, idx, opts, sheetRels[sheet], wb, themes, styles$1);
				if (!_ws || !_ws["!drawel"]) break;
				var dfile = resolve_path(_ws["!drawel"].Target, path$1);
				var drelsp = get_rels_path(dfile);
				var draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));
				var chartp = resolve_path(draw, dfile);
				var crelsp = get_rels_path(chartp);
				_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);
				break;
			case "macro":
				_ws = parse_ms(data, path$1, idx, opts, sheetRels[sheet], wb, themes, styles$1);
				break;
			case "dialog":
				_ws = parse_ds(data, path$1, idx, opts, sheetRels[sheet], wb, themes, styles$1);
				break;
			default: throw new Error("Unrecognized sheet type " + stype);
		}
		sheets[sheet] = _ws;
		var comments = [], tcomments = [];
		if (sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n$9) {
			var dfile$1 = "";
			if (sheetRels[sheet][n$9].Type == RELS.CMNT) {
				dfile$1 = resolve_path(sheetRels[sheet][n$9].Target, path$1);
				comments = parse_cmnt(getzipdata(zip, dfile$1, true), dfile$1, opts);
				if (!comments || !comments.length) return;
				sheet_insert_comments(_ws, comments, false);
			}
			if (sheetRels[sheet][n$9].Type == RELS.TCMNT) {
				dfile$1 = resolve_path(sheetRels[sheet][n$9].Target, path$1);
				tcomments = tcomments.concat(parse_tcmnt_xml(getzipdata(zip, dfile$1, true), opts));
			}
		});
		if (tcomments && tcomments.length) sheet_insert_comments(_ws, tcomments, true, opts.people || []);
		parse_sheet_legacy_drawing(_ws, stype, zip, path$1, idx, opts, wb, comments);
	} catch (e$10) {
		if (opts.WTF) throw e$10;
	}
}
function strip_front_slash(x$2) {
	return x$2.charAt(0) == "/" ? x$2.slice(1) : x$2;
}
function parse_zip(zip, opts) {
	make_ssf();
	opts = opts || {};
	fix_read_opts(opts);
	if (safegetzipfile(zip, "META-INF/manifest.xml")) return parse_ods(zip, opts);
	if (safegetzipfile(zip, "objectdata.xml")) return parse_ods(zip, opts);
	if (safegetzipfile(zip, "Index/Document.iwa")) {
		if (typeof Uint8Array == "undefined") throw new Error("NUMBERS file parsing requires Uint8Array support");
		if (typeof parse_numbers_iwa != "undefined") {
			if (zip.FileIndex) return parse_numbers_iwa(zip, opts);
			var _zip = CFB.utils.cfb_new();
			zipentries(zip).forEach(function(e$10) {
				zip_add_file(_zip, e$10, getzipbin(zip, e$10));
			});
			return parse_numbers_iwa(_zip, opts);
		}
		throw new Error("Unsupported NUMBERS file");
	}
	if (!safegetzipfile(zip, "[Content_Types].xml")) {
		if (safegetzipfile(zip, "index.xml.gz")) throw new Error("Unsupported NUMBERS 08 file");
		if (safegetzipfile(zip, "index.xml")) throw new Error("Unsupported NUMBERS 09 file");
		var index_zip = CFB.find(zip, "Index.zip");
		if (index_zip) {
			opts = dup(opts);
			delete opts.type;
			if (typeof index_zip.content == "string") opts.type = "binary";
			if (typeof Bun !== "undefined" && Buffer.isBuffer(index_zip.content)) return readSync(new Uint8Array(index_zip.content), opts);
			return readSync(index_zip.content, opts);
		}
		throw new Error("Unsupported ZIP file");
	}
	var entries = zipentries(zip);
	var dir = parse_ct(getzipstr(zip, "[Content_Types].xml"));
	var xlsb = false;
	var sheets, binname;
	if (dir.workbooks.length === 0) {
		binname = "xl/workbook.xml";
		if (getzipdata(zip, binname, true)) dir.workbooks.push(binname);
	}
	if (dir.workbooks.length === 0) {
		binname = "xl/workbook.bin";
		if (!getzipdata(zip, binname, true)) throw new Error("Could not find workbook");
		dir.workbooks.push(binname);
		xlsb = true;
	}
	if (dir.workbooks[0].slice(-3) == "bin") xlsb = true;
	var themes = {};
	var styles$1 = {};
	if (!opts.bookSheets && !opts.bookProps) {
		strs = [];
		if (dir.sst) try {
			strs = parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts);
		} catch (e$10) {
			if (opts.WTF) throw e$10;
		}
		if (opts.cellStyles && dir.themes.length) themes = parse_theme_xml(getzipstr(zip, dir.themes[0].replace(/^\//, ""), true) || "", opts);
		if (dir.style) styles$1 = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);
	}
	dir.links.map(function(link) {
		try {
			var rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);
			return parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);
		} catch (e$10) {}
	});
	var wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);
	var props = {}, propdata = "";
	if (dir.coreprops.length) {
		propdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);
		if (propdata) props = parse_core_props(propdata);
		if (dir.extprops.length !== 0) {
			propdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);
			if (propdata) parse_ext_props(propdata, props, opts);
		}
	}
	var custprops = {};
	if (!opts.bookSheets || opts.bookProps) {
		if (dir.custprops.length !== 0) {
			propdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);
			if (propdata) custprops = parse_cust_props(propdata, opts);
		}
	}
	var out = {};
	if (opts.bookSheets || opts.bookProps) {
		if (wb.Sheets) sheets = wb.Sheets.map(function pluck(x$2) {
			return x$2.name;
		});
		else if (props.Worksheets && props.SheetNames.length > 0) sheets = props.SheetNames;
		if (opts.bookProps) {
			out.Props = props;
			out.Custprops = custprops;
		}
		if (opts.bookSheets && typeof sheets !== "undefined") out.SheetNames = sheets;
		if (opts.bookSheets ? out.SheetNames : opts.bookProps) return out;
	}
	sheets = {};
	var deps = {};
	if (opts.bookDeps && dir.calcchain) deps = parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)), dir.calcchain, opts);
	var i$7 = 0;
	var sheetRels = {};
	var path$1, relsPath;
	{
		var wbsheets = wb.Sheets;
		props.Worksheets = wbsheets.length;
		props.SheetNames = [];
		for (var j$2 = 0; j$2 != wbsheets.length; ++j$2) {
			props.SheetNames[j$2] = wbsheets[j$2].name;
		}
	}
	var wbext = xlsb ? "bin" : "xml";
	var wbrelsi = dir.workbooks[0].lastIndexOf("/");
	var wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi + 1) + "_rels/" + dir.workbooks[0].slice(wbrelsi + 1) + ".rels").replace(/^\//, "");
	if (!safegetzipfile(zip, wbrelsfile)) wbrelsfile = "xl/_rels/workbook." + wbext + ".rels";
	var wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile.replace(/_rels.*/, "s5s"));
	if ((dir.metadata || []).length >= 1) {
		opts.xlmeta = parse_xlmeta(getzipdata(zip, strip_front_slash(dir.metadata[0])), dir.metadata[0], opts);
	}
	if ((dir.people || []).length >= 1) {
		opts.people = parse_people_xml(getzipdata(zip, strip_front_slash(dir.people[0])), opts);
	}
	if (wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);
	var nmode = getzipdata(zip, "xl/worksheets/sheet.xml", true) ? 1 : 0;
	wsloop: for (i$7 = 0; i$7 != props.Worksheets; ++i$7) {
		var stype = "sheet";
		if (wbrels && wbrels[i$7]) {
			path$1 = "xl/" + wbrels[i$7][1].replace(/[\/]?xl\//, "");
			if (!safegetzipfile(zip, path$1)) path$1 = wbrels[i$7][1];
			if (!safegetzipfile(zip, path$1)) path$1 = wbrelsfile.replace(/_rels\/[\S\s]*$/, "") + wbrels[i$7][1];
			stype = wbrels[i$7][2];
		} else {
			path$1 = "xl/worksheets/sheet" + (i$7 + 1 - nmode) + "." + wbext;
			path$1 = path$1.replace(/sheet0\./, "sheet.");
		}
		relsPath = path$1.replace(/^(.*)(\/)([^\/]*)$/, "$1/_rels/$3.rels");
		if (opts && opts.sheets != null) switch (typeof opts.sheets) {
			case "number":
				if (i$7 != opts.sheets) continue wsloop;
				break;
			case "string":
				if (props.SheetNames[i$7].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop;
				break;
			default: if (Array.isArray && Array.isArray(opts.sheets)) {
				var snjseen = false;
				for (var snj = 0; snj != opts.sheets.length; ++snj) {
					if (typeof opts.sheets[snj] == "number" && opts.sheets[snj] == i$7) snjseen = 1;
					if (typeof opts.sheets[snj] == "string" && opts.sheets[snj].toLowerCase() == props.SheetNames[i$7].toLowerCase()) snjseen = 1;
				}
				if (!snjseen) continue wsloop;
			}
		}
		safe_parse_sheet(zip, path$1, relsPath, props.SheetNames[i$7], i$7, sheetRels, sheets, stype, opts, wb, themes, styles$1);
	}
	out = {
		Directory: dir,
		Workbook: wb,
		Props: props,
		Custprops: custprops,
		Deps: deps,
		Sheets: sheets,
		SheetNames: props.SheetNames,
		Strings: strs,
		Styles: styles$1,
		Themes: themes,
		SSF: dup(table_fmt)
	};
	if (opts && opts.bookFiles) {
		if (zip.files) {
			out.keys = entries;
			out.files = zip.files;
		} else {
			out.keys = [];
			out.files = {};
			zip.FullPaths.forEach(function(p$3, idx) {
				p$3 = p$3.replace(/^Root Entry[\/]/, "");
				out.keys.push(p$3);
				out.files[p$3] = zip.FileIndex[idx];
			});
		}
	}
	if (opts && opts.bookVBA) {
		if (dir.vba.length > 0) out.vbaraw = getzipdata(zip, strip_front_slash(dir.vba[0]), true);
		else if (dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, "xl/vbaProject.bin", true);
	}
	out.bookType = xlsb ? "xlsb" : "xlsx";
	return out;
}
function parse_xlsxcfb(cfb, _opts) {
	var opts = _opts || {};
	var f$4 = "Workbook", data = CFB.find(cfb, f$4);
	try {
		f$4 = "/!DataSpaces/Version";
		data = CFB.find(cfb, f$4);
		if (!data || !data.content) throw new Error("ECMA-376 Encrypted file missing " + f$4);
		parse_DataSpaceVersionInfo(data.content);
		f$4 = "/!DataSpaces/DataSpaceMap";
		data = CFB.find(cfb, f$4);
		if (!data || !data.content) throw new Error("ECMA-376 Encrypted file missing " + f$4);
		var dsm = parse_DataSpaceMap(data.content);
		if (dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== "StrongEncryptionDataSpace" || dsm[0].comps[0].v !== "EncryptedPackage") throw new Error("ECMA-376 Encrypted file bad " + f$4);
		f$4 = "/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace";
		data = CFB.find(cfb, f$4);
		if (!data || !data.content) throw new Error("ECMA-376 Encrypted file missing " + f$4);
		var seds = parse_DataSpaceDefinition(data.content);
		if (seds.length != 1 || seds[0] != "StrongEncryptionTransform") throw new Error("ECMA-376 Encrypted file bad " + f$4);
		f$4 = "/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary";
		data = CFB.find(cfb, f$4);
		if (!data || !data.content) throw new Error("ECMA-376 Encrypted file missing " + f$4);
		parse_Primary(data.content);
	} catch (e$10) {}
	f$4 = "/EncryptionInfo";
	data = CFB.find(cfb, f$4);
	if (!data || !data.content) throw new Error("ECMA-376 Encrypted file missing " + f$4);
	var einfo = parse_EncryptionInfo(data.content);
	f$4 = "/EncryptedPackage";
	data = CFB.find(cfb, f$4);
	if (!data || !data.content) throw new Error("ECMA-376 Encrypted file missing " + f$4);
	if (einfo[0] == 4 && typeof decrypt_agile !== "undefined") return decrypt_agile(einfo[1], data.content, opts.password || "", opts);
	if (einfo[0] == 2 && typeof decrypt_std76 !== "undefined") return decrypt_std76(einfo[1], data.content, opts.password || "", opts);
	throw new Error("File is password-protected");
}
function write_zip_xlsb(wb, opts) {
	if (wb && !wb.SSF) {
		wb.SSF = dup(table_fmt);
	}
	if (wb && wb.SSF) {
		make_ssf();
		SSF_load_table(wb.SSF);
		opts.revssf = evert_num(wb.SSF);
		opts.revssf[wb.SSF[65535]] = 0;
		opts.ssf = wb.SSF;
	}
	opts.rels = {};
	opts.wbrels = {};
	opts.Strings = [];
	opts.Strings.Count = 0;
	opts.Strings.Unique = 0;
	if (browser_has_Map) opts.revStrings = new Map();
	else {
		opts.revStrings = {};
		opts.revStrings.foo = [];
		delete opts.revStrings.foo;
	}
	var wbext = "bin";
	var vbafmt = true;
	var ct = new_ct();
	fix_write_opts(opts = opts || {});
	var zip = zip_new();
	var f$4 = "", rId = 0;
	opts.cellXfs = [];
	get_cell_style(opts.cellXfs, {}, { revssf: { "General": 0 } });
	if (!wb.Props) wb.Props = {};
	f$4 = "docProps/core.xml";
	zip_add_file(zip, f$4, write_core_props(wb.Props, opts));
	ct.coreprops.push(f$4);
	add_rels(opts.rels, 2, f$4, RELS.CORE_PROPS);
	f$4 = "docProps/app.xml";
	if (wb.Props && wb.Props.SheetNames) {} else if (!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;
	else {
		var _sn = [];
		for (var _i$1 = 0; _i$1 < wb.SheetNames.length; ++_i$1) if ((wb.Workbook.Sheets[_i$1] || {}).Hidden != 2) _sn.push(wb.SheetNames[_i$1]);
		wb.Props.SheetNames = _sn;
	}
	wb.Props.Worksheets = wb.Props.SheetNames.length;
	zip_add_file(zip, f$4, write_ext_props(wb.Props, opts));
	ct.extprops.push(f$4);
	add_rels(opts.rels, 3, f$4, RELS.EXT_PROPS);
	if (wb.Custprops !== wb.Props && keys(wb.Custprops || {}).length > 0) {
		f$4 = "docProps/custom.xml";
		zip_add_file(zip, f$4, write_cust_props(wb.Custprops, opts));
		ct.custprops.push(f$4);
		add_rels(opts.rels, 4, f$4, RELS.CUST_PROPS);
	}
	var people = ["SheetJ5"];
	opts.tcid = 0;
	for (rId = 1; rId <= wb.SheetNames.length; ++rId) {
		var wsrels = { "!id": {} };
		var ws = wb.Sheets[wb.SheetNames[rId - 1]];
		var _type = (ws || {})["!type"] || "sheet";
		switch (_type) {
			case "chart":
			default:
				f$4 = "xl/worksheets/sheet" + rId + "." + wbext;
				zip_add_file(zip, f$4, write_ws_bin(rId - 1, opts, wb, wsrels));
				ct.sheets.push(f$4);
				add_rels(opts.wbrels, -1, "worksheets/sheet" + rId + "." + wbext, RELS.WS[0]);
		}
		if (ws) {
			var comments = ws["!comments"];
			var need_vml = false;
			var cf = "";
			if (comments && comments.length > 0) {
				var needtc = false;
				comments.forEach(function(carr) {
					carr[1].forEach(function(c$7) {
						if (c$7.T == true) needtc = true;
					});
				});
				if (needtc) {
					cf = "xl/threadedComments/threadedComment" + rId + ".xml";
					zip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));
					ct.threadedcomments.push(cf);
					add_rels(wsrels, -1, "../threadedComments/threadedComment" + rId + ".xml", RELS.TCMNT);
				}
				cf = "xl/comments" + rId + "." + wbext;
				zip_add_file(zip, cf, write_comments_bin(comments, opts));
				ct.comments.push(cf);
				add_rels(wsrels, -1, "../comments" + rId + "." + wbext, RELS.CMNT);
				need_vml = true;
			}
			if (ws["!legacy"]) {
				if (need_vml) zip_add_file(zip, "xl/drawings/vmlDrawing" + rId + ".vml", write_vml(rId, ws["!comments"]));
			}
			delete ws["!comments"];
			delete ws["!legacy"];
		}
		if (wsrels["!id"].rId1) zip_add_file(zip, get_rels_path(f$4), write_rels(wsrels));
	}
	if (opts.Strings != null && opts.Strings.length > 0) {
		f$4 = "xl/sharedStrings." + wbext;
		zip_add_file(zip, f$4, write_sst_bin(opts.Strings, opts));
		ct.strs.push(f$4);
		add_rels(opts.wbrels, -1, "sharedStrings." + wbext, RELS.SST);
	}
	f$4 = "xl/workbook." + wbext;
	zip_add_file(zip, f$4, write_wb_bin(wb, opts));
	ct.workbooks.push(f$4);
	add_rels(opts.rels, 1, f$4, RELS.WB);
	f$4 = "xl/theme/theme1.xml";
	var ww = write_theme(wb.Themes, opts);
	zip_add_file(zip, f$4, ww);
	ct.themes.push(f$4);
	add_rels(opts.wbrels, -1, "theme/theme1.xml", RELS.THEME);
	f$4 = "xl/styles." + wbext;
	zip_add_file(zip, f$4, write_sty_bin(wb, opts));
	ct.styles.push(f$4);
	add_rels(opts.wbrels, -1, "styles." + wbext, RELS.STY);
	if (wb.vbaraw && vbafmt) {
		f$4 = "xl/vbaProject.bin";
		zip_add_file(zip, f$4, wb.vbaraw);
		ct.vba.push(f$4);
		add_rels(opts.wbrels, -1, "vbaProject.bin", RELS.VBA);
	}
	f$4 = "xl/metadata." + wbext;
	zip_add_file(zip, f$4, write_xlmeta_bin());
	ct.metadata.push(f$4);
	add_rels(opts.wbrels, -1, "metadata." + wbext, RELS.XLMETA);
	if (people.length > 1) {
		f$4 = "xl/persons/person.xml";
		zip_add_file(zip, f$4, write_people_xml(people, opts));
		ct.people.push(f$4);
		add_rels(opts.wbrels, -1, "persons/person.xml", RELS.PEOPLE);
	}
	zip_add_file(zip, "[Content_Types].xml", write_ct(ct, opts));
	zip_add_file(zip, "_rels/.rels", write_rels(opts.rels));
	zip_add_file(zip, "xl/_rels/workbook." + wbext + ".rels", write_rels(opts.wbrels));
	delete opts.revssf;
	delete opts.ssf;
	return zip;
}
function write_zip_xlsx(wb, opts) {
	if (wb && !wb.SSF) {
		wb.SSF = dup(table_fmt);
	}
	if (wb && wb.SSF) {
		make_ssf();
		SSF_load_table(wb.SSF);
		opts.revssf = evert_num(wb.SSF);
		opts.revssf[wb.SSF[65535]] = 0;
		opts.ssf = wb.SSF;
	}
	opts.rels = {};
	opts.wbrels = {};
	opts.Strings = [];
	opts.Strings.Count = 0;
	opts.Strings.Unique = 0;
	if (browser_has_Map) opts.revStrings = new Map();
	else {
		opts.revStrings = {};
		opts.revStrings.foo = [];
		delete opts.revStrings.foo;
	}
	var wbext = "xml";
	var vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;
	var ct = new_ct();
	fix_write_opts(opts = opts || {});
	var zip = zip_new();
	var f$4 = "", rId = 0;
	opts.cellXfs = [];
	get_cell_style(opts.cellXfs, {}, { revssf: { "General": 0 } });
	if (!wb.Props) wb.Props = {};
	f$4 = "docProps/core.xml";
	zip_add_file(zip, f$4, write_core_props(wb.Props, opts));
	ct.coreprops.push(f$4);
	add_rels(opts.rels, 2, f$4, RELS.CORE_PROPS);
	f$4 = "docProps/app.xml";
	if (wb.Props && wb.Props.SheetNames) {} else if (!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;
	else {
		var _sn = [];
		for (var _i$1 = 0; _i$1 < wb.SheetNames.length; ++_i$1) if ((wb.Workbook.Sheets[_i$1] || {}).Hidden != 2) _sn.push(wb.SheetNames[_i$1]);
		wb.Props.SheetNames = _sn;
	}
	wb.Props.Worksheets = wb.Props.SheetNames.length;
	zip_add_file(zip, f$4, write_ext_props(wb.Props, opts));
	ct.extprops.push(f$4);
	add_rels(opts.rels, 3, f$4, RELS.EXT_PROPS);
	if (wb.Custprops !== wb.Props && keys(wb.Custprops || {}).length > 0) {
		f$4 = "docProps/custom.xml";
		zip_add_file(zip, f$4, write_cust_props(wb.Custprops, opts));
		ct.custprops.push(f$4);
		add_rels(opts.rels, 4, f$4, RELS.CUST_PROPS);
	}
	var people = ["SheetJ5"];
	opts.tcid = 0;
	for (rId = 1; rId <= wb.SheetNames.length; ++rId) {
		var wsrels = { "!id": {} };
		var ws = wb.Sheets[wb.SheetNames[rId - 1]];
		var _type = (ws || {})["!type"] || "sheet";
		switch (_type) {
			case "chart":
			default:
				f$4 = "xl/worksheets/sheet" + rId + "." + wbext;
				zip_add_file(zip, f$4, write_ws_xml(rId - 1, opts, wb, wsrels));
				ct.sheets.push(f$4);
				add_rels(opts.wbrels, -1, "worksheets/sheet" + rId + "." + wbext, RELS.WS[0]);
		}
		if (ws) {
			var comments = ws["!comments"];
			var need_vml = false;
			var cf = "";
			if (comments && comments.length > 0) {
				var needtc = false;
				comments.forEach(function(carr) {
					carr[1].forEach(function(c$7) {
						if (c$7.T == true) needtc = true;
					});
				});
				if (needtc) {
					cf = "xl/threadedComments/threadedComment" + rId + ".xml";
					zip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));
					ct.threadedcomments.push(cf);
					add_rels(wsrels, -1, "../threadedComments/threadedComment" + rId + ".xml", RELS.TCMNT);
				}
				cf = "xl/comments" + rId + "." + wbext;
				zip_add_file(zip, cf, write_comments_xml(comments, opts));
				ct.comments.push(cf);
				add_rels(wsrels, -1, "../comments" + rId + "." + wbext, RELS.CMNT);
				need_vml = true;
			}
			if (ws["!legacy"]) {
				if (need_vml) zip_add_file(zip, "xl/drawings/vmlDrawing" + rId + ".vml", write_vml(rId, ws["!comments"]));
			}
			delete ws["!comments"];
			delete ws["!legacy"];
		}
		if (wsrels["!id"].rId1) zip_add_file(zip, get_rels_path(f$4), write_rels(wsrels));
	}
	if (opts.Strings != null && opts.Strings.length > 0) {
		f$4 = "xl/sharedStrings." + wbext;
		zip_add_file(zip, f$4, write_sst_xml(opts.Strings, opts));
		ct.strs.push(f$4);
		add_rels(opts.wbrels, -1, "sharedStrings." + wbext, RELS.SST);
	}
	f$4 = "xl/workbook." + wbext;
	zip_add_file(zip, f$4, write_wb_xml(wb, opts));
	ct.workbooks.push(f$4);
	add_rels(opts.rels, 1, f$4, RELS.WB);
	f$4 = "xl/theme/theme1.xml";
	zip_add_file(zip, f$4, write_theme(wb.Themes, opts));
	ct.themes.push(f$4);
	add_rels(opts.wbrels, -1, "theme/theme1.xml", RELS.THEME);
	f$4 = "xl/styles." + wbext;
	zip_add_file(zip, f$4, write_sty_xml(wb, opts));
	ct.styles.push(f$4);
	add_rels(opts.wbrels, -1, "styles." + wbext, RELS.STY);
	if (wb.vbaraw && vbafmt) {
		f$4 = "xl/vbaProject.bin";
		zip_add_file(zip, f$4, wb.vbaraw);
		ct.vba.push(f$4);
		add_rels(opts.wbrels, -1, "vbaProject.bin", RELS.VBA);
	}
	f$4 = "xl/metadata." + wbext;
	zip_add_file(zip, f$4, write_xlmeta_xml());
	ct.metadata.push(f$4);
	add_rels(opts.wbrels, -1, "metadata." + wbext, RELS.XLMETA);
	if (people.length > 1) {
		f$4 = "xl/persons/person.xml";
		zip_add_file(zip, f$4, write_people_xml(people, opts));
		ct.people.push(f$4);
		add_rels(opts.wbrels, -1, "persons/person.xml", RELS.PEOPLE);
	}
	zip_add_file(zip, "[Content_Types].xml", write_ct(ct, opts));
	zip_add_file(zip, "_rels/.rels", write_rels(opts.rels));
	zip_add_file(zip, "xl/_rels/workbook." + wbext + ".rels", write_rels(opts.wbrels));
	delete opts.revssf;
	delete opts.ssf;
	return zip;
}
function firstbyte(f$4, o$10) {
	var x$2 = "";
	switch ((o$10 || {}).type || "base64") {
		case "buffer": return [
			f$4[0],
			f$4[1],
			f$4[2],
			f$4[3],
			f$4[4],
			f$4[5],
			f$4[6],
			f$4[7]
		];
		case "base64":
			x$2 = Base64_decode(f$4.slice(0, 12));
			break;
		case "binary":
			x$2 = f$4;
			break;
		case "array": return [
			f$4[0],
			f$4[1],
			f$4[2],
			f$4[3],
			f$4[4],
			f$4[5],
			f$4[6],
			f$4[7]
		];
		default: throw new Error("Unrecognized type " + (o$10 && o$10.type || "undefined"));
	}
	return [
		x$2.charCodeAt(0),
		x$2.charCodeAt(1),
		x$2.charCodeAt(2),
		x$2.charCodeAt(3),
		x$2.charCodeAt(4),
		x$2.charCodeAt(5),
		x$2.charCodeAt(6),
		x$2.charCodeAt(7)
	];
}
function read_cfb(cfb, opts) {
	if (CFB.find(cfb, "EncryptedPackage")) return parse_xlsxcfb(cfb, opts);
	return parse_xlscfb(cfb, opts);
}
function read_zip(data, opts) {
	var zip, d$5 = data;
	var o$10 = opts || {};
	if (!o$10.type) o$10.type = has_buf && Buffer.isBuffer(data) ? "buffer" : "base64";
	zip = zip_read(d$5, o$10);
	return parse_zip(zip, o$10);
}
function read_plaintext(data, o$10) {
	var i$7 = 0;
	main: while (i$7 < data.length) switch (data.charCodeAt(i$7)) {
		case 10:
		case 13:
		case 32:
			++i$7;
			break;
		case 60: return parse_xlml(data.slice(i$7), o$10);
		default: break main;
	}
	return PRN.to_workbook(data, o$10);
}
function read_plaintext_raw(data, o$10) {
	var str = "", bytes = firstbyte(data, o$10);
	switch (o$10.type) {
		case "base64":
			str = Base64_decode(data);
			break;
		case "binary":
			str = data;
			break;
		case "buffer":
			str = data.toString("binary");
			break;
		case "array":
			str = cc2str(data);
			break;
		default: throw new Error("Unrecognized type " + o$10.type);
	}
	if (bytes[0] == 239 && bytes[1] == 187 && bytes[2] == 191) str = utf8read(str);
	o$10.type = "binary";
	return read_plaintext(str, o$10);
}
function read_utf16(data, o$10) {
	var d$5 = data;
	if (o$10.type == "base64") d$5 = Base64_decode(d$5);
	if (typeof ArrayBuffer !== "undefined" && data instanceof ArrayBuffer) d$5 = new Uint8Array(data);
	d$5 = typeof $cptable !== "undefined" ? $cptable.utils.decode(1200, d$5.slice(2), "str") : has_buf && Buffer.isBuffer(data) ? data.slice(2).toString("utf16le") : typeof Uint8Array !== "undefined" && d$5 instanceof Uint8Array ? typeof TextDecoder !== "undefined" ? new TextDecoder("utf-16le").decode(d$5.slice(2)) : utf16lereadu(d$5.slice(2)) : utf16leread(d$5.slice(2));
	o$10.type = "binary";
	return read_plaintext(d$5, o$10);
}
function bstrify(data) {
	return !data.match(/[^\x00-\x7F]/) ? data : utf8write(data);
}
function read_prn(data, d$5, o$10, str) {
	if (str) {
		o$10.type = "string";
		return PRN.to_workbook(data, o$10);
	}
	return PRN.to_workbook(d$5, o$10);
}
function readSync(data, opts) {
	reset_cp();
	var o$10 = opts || {};
	if (o$10.codepage && typeof $cptable === "undefined") console.error("Codepage tables are not loaded.  Non-ASCII characters may not give expected results");
	if (typeof ArrayBuffer !== "undefined" && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o$10 = dup(o$10), o$10.type = "array", o$10));
	if (typeof Int8Array !== "undefined" && data instanceof Int8Array) return readSync(new Uint8Array(data.buffer, data.byteOffset, data.length), o$10);
	if (typeof Uint8Array !== "undefined" && data instanceof Uint8Array && !o$10.type) o$10.type = typeof Deno !== "undefined" ? "buffer" : "array";
	var d$5 = data, n$9 = [
		0,
		0,
		0,
		0
	], str = false;
	if (o$10.cellStyles) {
		o$10.cellNF = true;
		o$10.sheetStubs = true;
	}
	_ssfopts = {};
	if (o$10.dateNF) _ssfopts.dateNF = o$10.dateNF;
	if (!o$10.type) o$10.type = has_buf && Buffer.isBuffer(data) ? "buffer" : "base64";
	if (o$10.type == "file") {
		o$10.type = has_buf ? "buffer" : "binary";
		d$5 = read_binary(data);
		if (typeof Uint8Array !== "undefined" && !has_buf) o$10.type = "array";
	}
	if (o$10.type == "string") {
		str = true;
		o$10.type = "binary";
		o$10.codepage = 65001;
		d$5 = bstrify(data);
	}
	if (o$10.type == "array" && typeof Uint8Array !== "undefined" && data instanceof Uint8Array && typeof ArrayBuffer !== "undefined") {
		var ab = new ArrayBuffer(3), vu = new Uint8Array(ab);
		vu.foo = "bar";
		if (!vu.foo) {
			o$10 = dup(o$10);
			o$10.type = "array";
			return readSync(ab2a(d$5), o$10);
		}
	}
	switch ((n$9 = firstbyte(d$5, o$10))[0]) {
		case 208:
			if (n$9[1] === 207 && n$9[2] === 17 && n$9[3] === 224 && n$9[4] === 161 && n$9[5] === 177 && n$9[6] === 26 && n$9[7] === 225) return read_cfb(CFB.read(d$5, o$10), o$10);
			break;
		case 9:
			if (n$9[1] <= 8) return parse_xlscfb(d$5, o$10);
			break;
		case 60: return parse_xlml(d$5, o$10);
		case 73:
			if (n$9[1] === 73 && n$9[2] === 42 && n$9[3] === 0) throw new Error("TIFF Image File is not a spreadsheet");
			if (n$9[1] === 68) return read_wb_ID(d$5, o$10);
			break;
		case 84:
			if (n$9[1] === 65 && n$9[2] === 66 && n$9[3] === 76) return DIF.to_workbook(d$5, o$10);
			break;
		case 80: return n$9[1] === 75 && n$9[2] < 9 && n$9[3] < 9 ? read_zip(d$5, o$10) : read_prn(data, d$5, o$10, str);
		case 239: return n$9[3] === 60 ? parse_xlml(d$5, o$10) : read_prn(data, d$5, o$10, str);
		case 255:
			if (n$9[1] === 254) {
				return read_utf16(d$5, o$10);
			} else if (n$9[1] === 0 && n$9[2] === 2 && n$9[3] === 0) return WK_.to_workbook(d$5, o$10);
			break;
		case 0:
			if (n$9[1] === 0) {
				if (n$9[2] >= 2 && n$9[3] === 0) return WK_.to_workbook(d$5, o$10);
				if (n$9[2] === 0 && (n$9[3] === 8 || n$9[3] === 9)) return WK_.to_workbook(d$5, o$10);
			}
			break;
		case 3:
		case 131:
		case 139:
		case 140: return DBF.to_workbook(d$5, o$10);
		case 123:
			if (n$9[1] === 92 && n$9[2] === 114 && n$9[3] === 116) return rtf_to_workbook(d$5, o$10);
			break;
		case 10:
		case 13:
		case 32: return read_plaintext_raw(d$5, o$10);
		case 137:
			if (n$9[1] === 80 && n$9[2] === 78 && n$9[3] === 71) throw new Error("PNG Image File is not a spreadsheet");
			break;
		case 8:
			if (n$9[1] === 231) throw new Error("Unsupported Multiplan 1.x file!");
			break;
		case 12:
			if (n$9[1] === 236) throw new Error("Unsupported Multiplan 2.x file!");
			if (n$9[1] === 237) throw new Error("Unsupported Multiplan 3.x file!");
			break;
	}
	if (DBF_SUPPORTED_VERSIONS.indexOf(n$9[0]) > -1 && n$9[2] <= 12 && n$9[3] <= 31) return DBF.to_workbook(d$5, o$10);
	return read_prn(data, d$5, o$10, str);
}
function readFileSync(filename, opts) {
	var o$10 = opts || {};
	o$10.type = "file";
	return readSync(filename, o$10);
}
function write_cfb_ctr(cfb, o$10) {
	switch (o$10.type) {
		case "base64":
		case "binary": break;
		case "buffer":
		case "array":
			o$10.type = "";
			break;
		case "file": return write_dl(o$10.file, CFB.write(cfb, { type: has_buf ? "buffer" : "" }));
		case "string": throw new Error("'string' output type invalid for '" + o$10.bookType + "' files");
		default: throw new Error("Unrecognized type " + o$10.type);
	}
	return CFB.write(cfb, o$10);
}
function write_zip(wb, opts) {
	switch (opts.bookType) {
		case "ods": return write_ods(wb, opts);
		case "numbers": return write_numbers_iwa(wb, opts);
		case "xlsb": return write_zip_xlsb(wb, opts);
		default: return write_zip_xlsx(wb, opts);
	}
}
function write_zip_type(wb, opts) {
	var o$10 = dup(opts || {});
	var z$2 = write_zip(wb, o$10);
	return write_zip_denouement(z$2, o$10);
}
function write_zip_typeXLSX(wb, opts) {
	var o$10 = dup(opts || {});
	var z$2 = write_zip_xlsx(wb, o$10);
	return write_zip_denouement(z$2, o$10);
}
function write_zip_denouement(z$2, o$10) {
	var oopts = {};
	var ftype = has_buf ? "nodebuffer" : typeof Uint8Array !== "undefined" ? "array" : "string";
	if (o$10.compression) oopts.compression = "DEFLATE";
	if (o$10.password) oopts.type = ftype;
	else switch (o$10.type) {
		case "base64":
			oopts.type = "base64";
			break;
		case "binary":
			oopts.type = "string";
			break;
		case "string": throw new Error("'string' output type invalid for '" + o$10.bookType + "' files");
		case "buffer":
		case "file":
			oopts.type = ftype;
			break;
		default: throw new Error("Unrecognized type " + o$10.type);
	}
	var out = z$2.FullPaths ? CFB.write(z$2, {
		fileType: "zip",
		type: {
			"nodebuffer": "buffer",
			"string": "binary"
		}[oopts.type] || oopts.type,
		compression: !!o$10.compression
	}) : z$2.generate(oopts);
	if (typeof Deno !== "undefined") {
		if (typeof out == "string") {
			if (o$10.type == "binary" || o$10.type == "base64") return out;
			out = new Uint8Array(s2ab(out));
		}
	}
	if (o$10.password && typeof encrypt_agile !== "undefined") return write_cfb_ctr(encrypt_agile(out, o$10.password), o$10);
	if (o$10.type === "file") return write_dl(o$10.file, out);
	return o$10.type == "string" ? utf8read(out) : out;
}
function write_cfb_type(wb, opts) {
	var o$10 = opts || {};
	var cfb = write_xlscfb(wb, o$10);
	return write_cfb_ctr(cfb, o$10);
}
function write_string_type(out, opts, bom) {
	if (!bom) bom = "";
	var o$10 = bom + out;
	switch (opts.type) {
		case "base64": return Base64_encode(utf8write(o$10));
		case "binary": return utf8write(o$10);
		case "string": return out;
		case "file": return write_dl(opts.file, o$10, "utf8");
		case "buffer": {
			if (has_buf) return Buffer_from(o$10, "utf8");
			else if (typeof TextEncoder !== "undefined") return new TextEncoder().encode(o$10);
			else return write_string_type(o$10, { type: "binary" }).split("").map(function(c$7) {
				return c$7.charCodeAt(0);
			});
		}
	}
	throw new Error("Unrecognized type " + opts.type);
}
function write_stxt_type(out, opts) {
	switch (opts.type) {
		case "base64": return Base64_encode_pass(out);
		case "binary": return out;
		case "string": return out;
		case "file": return write_dl(opts.file, out, "binary");
		case "buffer": {
			if (has_buf) return Buffer_from(out, "binary");
			else return out.split("").map(function(c$7) {
				return c$7.charCodeAt(0);
			});
		}
	}
	throw new Error("Unrecognized type " + opts.type);
}
function write_binary_type(out, opts) {
	switch (opts.type) {
		case "string":
		case "base64":
		case "binary":
			var bstr = "";
			for (var i$7 = 0; i$7 < out.length; ++i$7) bstr += String.fromCharCode(out[i$7]);
			return opts.type == "base64" ? Base64_encode(bstr) : opts.type == "string" ? utf8read(bstr) : bstr;
		case "file": return write_dl(opts.file, out);
		case "buffer": return out;
		default: throw new Error("Unrecognized type " + opts.type);
	}
}
function writeSyncXLSX(wb, opts) {
	reset_cp();
	check_wb(wb);
	var o$10 = dup(opts || {});
	if (o$10.cellStyles) {
		o$10.cellNF = true;
		o$10.sheetStubs = true;
	}
	if (o$10.type == "array") {
		o$10.type = "binary";
		var out = writeSyncXLSX(wb, o$10);
		o$10.type = "array";
		return s2ab(out);
	}
	return write_zip_typeXLSX(wb, o$10);
}
function writeSync(wb, opts) {
	reset_cp();
	check_wb(wb);
	var o$10 = dup(opts || {});
	if (o$10.cellStyles) {
		o$10.cellNF = true;
		o$10.sheetStubs = true;
	}
	if (o$10.type == "array") {
		o$10.type = "binary";
		var out = writeSync(wb, o$10);
		o$10.type = "array";
		return s2ab(out);
	}
	var idx = 0;
	if (o$10.sheet) {
		if (typeof o$10.sheet == "number") idx = o$10.sheet;
		else idx = wb.SheetNames.indexOf(o$10.sheet);
		if (!wb.SheetNames[idx]) throw new Error("Sheet not found: " + o$10.sheet + " : " + typeof o$10.sheet);
	}
	switch (o$10.bookType || "xlsb") {
		case "xml":
		case "xlml": return write_string_type(write_xlml(wb, o$10), o$10);
		case "slk":
		case "sylk": return write_string_type(SYLK.from_sheet(wb.Sheets[wb.SheetNames[idx]], o$10, wb), o$10);
		case "htm":
		case "html": return write_string_type(sheet_to_html(wb.Sheets[wb.SheetNames[idx]], o$10), o$10);
		case "txt": return write_stxt_type(sheet_to_txt(wb.Sheets[wb.SheetNames[idx]], o$10), o$10);
		case "csv": return write_string_type(sheet_to_csv(wb.Sheets[wb.SheetNames[idx]], o$10), o$10, "﻿");
		case "dif": return write_string_type(DIF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o$10), o$10);
		case "dbf": return write_binary_type(DBF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o$10), o$10);
		case "prn": return write_string_type(PRN.from_sheet(wb.Sheets[wb.SheetNames[idx]], o$10), o$10);
		case "rtf": return write_string_type(sheet_to_rtf(wb.Sheets[wb.SheetNames[idx]], o$10), o$10);
		case "eth": return write_string_type(ETH.from_sheet(wb.Sheets[wb.SheetNames[idx]], o$10), o$10);
		case "fods": return write_string_type(write_ods(wb, o$10), o$10);
		case "wk1": return write_binary_type(WK_.sheet_to_wk1(wb.Sheets[wb.SheetNames[idx]], o$10), o$10);
		case "wk3": return write_binary_type(WK_.book_to_wk3(wb, o$10), o$10);
		case "biff2": if (!o$10.biff) o$10.biff = 2;
		case "biff3": if (!o$10.biff) o$10.biff = 3;
		case "biff4":
			if (!o$10.biff) o$10.biff = 4;
			return write_binary_type(write_biff_buf(wb, o$10), o$10);
		case "biff5": if (!o$10.biff) o$10.biff = 5;
		case "biff8":
		case "xla":
		case "xls":
			if (!o$10.biff) o$10.biff = 8;
			return write_cfb_type(wb, o$10);
		case "xlsx":
		case "xlsm":
		case "xlam":
		case "xlsb":
		case "numbers":
		case "ods": return write_zip_type(wb, o$10);
		default: throw new Error("Unrecognized bookType |" + o$10.bookType + "|");
	}
}
function resolve_book_type(o$10) {
	if (o$10.bookType) return;
	var _BT = {
		"xls": "biff8",
		"htm": "html",
		"slk": "sylk",
		"socialcalc": "eth",
		"Sh33tJS": "WTF"
	};
	var ext = o$10.file.slice(o$10.file.lastIndexOf(".")).toLowerCase();
	if (ext.match(/^\.[a-z]+$/)) o$10.bookType = ext.slice(1);
	o$10.bookType = _BT[o$10.bookType] || o$10.bookType;
}
function writeFileSync(wb, filename, opts) {
	var o$10 = opts || {};
	o$10.type = "file";
	o$10.file = filename;
	resolve_book_type(o$10);
	return writeSync(wb, o$10);
}
function writeFileSyncXLSX(wb, filename, opts) {
	var o$10 = opts || {};
	o$10.type = "file";
	o$10.file = filename;
	resolve_book_type(o$10);
	return writeSyncXLSX(wb, o$10);
}
function writeFileAsync(filename, wb, opts, cb) {
	var o$10 = opts || {};
	o$10.type = "file";
	o$10.file = filename;
	resolve_book_type(o$10);
	o$10.type = "buffer";
	var _cb = cb;
	if (!(_cb instanceof Function)) _cb = opts;
	return _fs.writeFile(filename, writeSync(wb, o$10), _cb);
}
function make_json_row(sheet, r$10, R$1, cols, header, hdr, o$10) {
	var rr = encode_row(R$1);
	var defval = o$10.defval, raw = o$10.raw || !Object.prototype.hasOwnProperty.call(o$10, "raw");
	var isempty = true, dense = sheet["!data"] != null;
	var row = header === 1 ? [] : {};
	if (header !== 1) {
		if (Object.defineProperty) try {
			Object.defineProperty(row, "__rowNum__", {
				value: R$1,
				enumerable: false
			});
		} catch (e$10) {
			row.__rowNum__ = R$1;
		}
		else row.__rowNum__ = R$1;
	}
	if (!dense || sheet["!data"][R$1]) for (var C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
		var val$1 = dense ? (sheet["!data"][R$1] || [])[C$2] : sheet[cols[C$2] + rr];
		if (val$1 == null || val$1.t === undefined) {
			if (defval === undefined) continue;
			if (hdr[C$2] != null) {
				row[hdr[C$2]] = defval;
			}
			continue;
		}
		var v$3 = val$1.v;
		switch (val$1.t) {
			case "z":
				if (v$3 == null) break;
				continue;
			case "e":
				v$3 = v$3 == 0 ? null : void 0;
				break;
			case "s":
			case "b":
			case "n":
				if (!val$1.z || !fmt_is_date(val$1.z)) break;
				v$3 = numdate(v$3);
				if (typeof v$3 == "number") break;
			case "d":
				if (!(o$10 && (o$10.UTC || o$10.raw === false))) v$3 = utc_to_local(new Date(v$3));
				break;
			default: throw new Error("unrecognized type " + val$1.t);
		}
		if (hdr[C$2] != null) {
			if (v$3 == null) {
				if (val$1.t == "e" && v$3 === null) row[hdr[C$2]] = null;
				else if (defval !== undefined) row[hdr[C$2]] = defval;
				else if (raw && v$3 === null) row[hdr[C$2]] = null;
				else continue;
			} else {
				row[hdr[C$2]] = (val$1.t === "n" && typeof o$10.rawNumbers === "boolean" ? o$10.rawNumbers : raw) ? v$3 : format_cell(val$1, v$3, o$10);
			}
			if (v$3 != null) isempty = false;
		}
	}
	return {
		row,
		isempty
	};
}
function sheet_to_json(sheet, opts) {
	if (sheet == null || sheet["!ref"] == null) return [];
	var val$1 = {
		t: "n",
		v: 0
	}, header = 0, offset = 1, hdr = [], v$3 = 0, vv = "";
	var r$10 = {
		s: {
			r: 0,
			c: 0
		},
		e: {
			r: 0,
			c: 0
		}
	};
	var o$10 = opts || {};
	var range = o$10.range != null ? o$10.range : sheet["!ref"];
	if (o$10.header === 1) header = 1;
	else if (o$10.header === "A") header = 2;
	else if (Array.isArray(o$10.header)) header = 3;
	else if (o$10.header == null) header = 0;
	switch (typeof range) {
		case "string":
			r$10 = safe_decode_range(range);
			break;
		case "number":
			r$10 = safe_decode_range(sheet["!ref"]);
			r$10.s.r = range;
			break;
		default: r$10 = range;
	}
	if (header > 0) offset = 0;
	var rr = encode_row(r$10.s.r);
	var cols = [];
	var out = [];
	var outi = 0, counter = 0;
	var dense = sheet["!data"] != null;
	var R$1 = r$10.s.r, C$2 = 0;
	var header_cnt = {};
	if (dense && !sheet["!data"][R$1]) sheet["!data"][R$1] = [];
	var colinfo = o$10.skipHidden && sheet["!cols"] || [];
	var rowinfo = o$10.skipHidden && sheet["!rows"] || [];
	for (C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
		if ((colinfo[C$2] || {}).hidden) continue;
		cols[C$2] = encode_col(C$2);
		val$1 = dense ? sheet["!data"][R$1][C$2] : sheet[cols[C$2] + rr];
		switch (header) {
			case 1:
				hdr[C$2] = C$2 - r$10.s.c;
				break;
			case 2:
				hdr[C$2] = cols[C$2];
				break;
			case 3:
				hdr[C$2] = o$10.header[C$2 - r$10.s.c];
				break;
			default:
				if (val$1 == null) val$1 = {
					w: "__EMPTY",
					t: "s"
				};
				vv = v$3 = format_cell(val$1, null, o$10);
				counter = header_cnt[v$3] || 0;
				if (!counter) header_cnt[v$3] = 1;
				else {
					do {
						vv = v$3 + "_" + counter++;
					} while (header_cnt[vv]);
					header_cnt[v$3] = counter;
					header_cnt[vv] = 1;
				}
				hdr[C$2] = vv;
		}
	}
	for (R$1 = r$10.s.r + offset; R$1 <= r$10.e.r; ++R$1) {
		if ((rowinfo[R$1] || {}).hidden) continue;
		var row = make_json_row(sheet, r$10, R$1, cols, header, hdr, o$10);
		if (row.isempty === false || (header === 1 ? o$10.blankrows !== false : !!o$10.blankrows)) out[outi++] = row.row;
	}
	out.length = outi;
	return out;
}
function make_csv_row(sheet, r$10, R$1, cols, fs, rs, FS, w$2, o$10) {
	var isempty = true;
	var row = [], txt = "", rr = encode_row(R$1);
	var dense = sheet["!data"] != null;
	var datarow = dense && sheet["!data"][R$1] || [];
	for (var C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
		if (!cols[C$2]) continue;
		var val$1 = dense ? datarow[C$2] : sheet[cols[C$2] + rr];
		if (val$1 == null) txt = "";
		else if (val$1.v != null) {
			isempty = false;
			txt = "" + (o$10.rawNumbers && val$1.t == "n" ? val$1.v : format_cell(val$1, null, o$10));
			for (var i$7 = 0, cc = 0; i$7 !== txt.length; ++i$7) if ((cc = txt.charCodeAt(i$7)) === fs || cc === rs || cc === 34 || o$10.forceQuotes) {
				txt = "\"" + txt.replace(qreg, "\"\"") + "\"";
				break;
			}
			if (txt == "ID" && w$2 == 0 && row.length == 0) txt = "\"ID\"";
		} else if (val$1.f != null && !val$1.F) {
			isempty = false;
			txt = "=" + val$1.f;
			if (txt.indexOf(",") >= 0) txt = "\"" + txt.replace(qreg, "\"\"") + "\"";
		} else txt = "";
		row.push(txt);
	}
	if (o$10.strip) while (row[row.length - 1] === "") --row.length;
	if (o$10.blankrows === false && isempty) return null;
	return row.join(FS);
}
function sheet_to_csv(sheet, opts) {
	var out = [];
	var o$10 = opts == null ? {} : opts;
	if (sheet == null || sheet["!ref"] == null) return "";
	var r$10 = safe_decode_range(sheet["!ref"]);
	var FS = o$10.FS !== undefined ? o$10.FS : ",", fs = FS.charCodeAt(0);
	var RS = o$10.RS !== undefined ? o$10.RS : "\n", rs = RS.charCodeAt(0);
	var row = "", cols = [];
	var colinfo = o$10.skipHidden && sheet["!cols"] || [];
	var rowinfo = o$10.skipHidden && sheet["!rows"] || [];
	for (var C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) if (!(colinfo[C$2] || {}).hidden) cols[C$2] = encode_col(C$2);
	var w$2 = 0;
	for (var R$1 = r$10.s.r; R$1 <= r$10.e.r; ++R$1) {
		if ((rowinfo[R$1] || {}).hidden) continue;
		row = make_csv_row(sheet, r$10, R$1, cols, fs, rs, FS, w$2, o$10);
		if (row == null) {
			continue;
		}
		if (row || o$10.blankrows !== false) out.push((w$2++ ? RS : "") + row);
	}
	return out.join("");
}
function sheet_to_txt(sheet, opts) {
	if (!opts) opts = {};
	opts.FS = "	";
	opts.RS = "\n";
	var s$5 = sheet_to_csv(sheet, opts);
	if (typeof $cptable == "undefined" || opts.type == "string") return s$5;
	var o$10 = $cptable.utils.encode(1200, s$5, "str");
	return String.fromCharCode(255) + String.fromCharCode(254) + o$10;
}
function sheet_to_formulae(sheet, opts) {
	var y$3 = "", x$2, val$1 = "";
	if (sheet == null || sheet["!ref"] == null) return [];
	var r$10 = safe_decode_range(sheet["!ref"]), rr = "", cols = [], C$2;
	var cmds = [];
	var dense = sheet["!data"] != null;
	for (C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) cols[C$2] = encode_col(C$2);
	for (var R$1 = r$10.s.r; R$1 <= r$10.e.r; ++R$1) {
		rr = encode_row(R$1);
		for (C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
			y$3 = cols[C$2] + rr;
			x$2 = dense ? (sheet["!data"][R$1] || [])[C$2] : sheet[y$3];
			val$1 = "";
			if (x$2 === undefined) continue;
			else if (x$2.F != null) {
				y$3 = x$2.F;
				if (!x$2.f) continue;
				val$1 = x$2.f;
				if (y$3.indexOf(":") == -1) y$3 = y$3 + ":" + y$3;
			}
			if (x$2.f != null) val$1 = x$2.f;
			else if (opts && opts.values === false) continue;
			else if (x$2.t == "z") continue;
			else if (x$2.t == "n" && x$2.v != null) val$1 = "" + x$2.v;
			else if (x$2.t == "b") val$1 = x$2.v ? "TRUE" : "FALSE";
			else if (x$2.w !== undefined) val$1 = "'" + x$2.w;
			else if (x$2.v === undefined) continue;
			else if (x$2.t == "s") val$1 = "'" + x$2.v;
			else val$1 = "" + x$2.v;
			cmds[cmds.length] = y$3 + "=" + val$1;
		}
	}
	return cmds;
}
function sheet_add_json(_ws, js, opts) {
	var o$10 = opts || {};
	var dense = _ws ? _ws["!data"] != null : o$10.dense;
	if (DENSE != null && dense == null) dense = DENSE;
	var offset = +!o$10.skipHeader;
	var ws = _ws || {};
	if (!_ws && dense) ws["!data"] = [];
	var _R = 0, _C = 0;
	if (ws && o$10.origin != null) {
		if (typeof o$10.origin == "number") _R = o$10.origin;
		else {
			var _origin = typeof o$10.origin == "string" ? decode_cell(o$10.origin) : o$10.origin;
			_R = _origin.r;
			_C = _origin.c;
		}
	}
	var range = {
		s: {
			c: 0,
			r: 0
		},
		e: {
			c: _C,
			r: _R + js.length - 1 + offset
		}
	};
	if (ws["!ref"]) {
		var _range = safe_decode_range(ws["!ref"]);
		range.e.c = Math.max(range.e.c, _range.e.c);
		range.e.r = Math.max(range.e.r, _range.e.r);
		if (_R == -1) {
			_R = _range.e.r + 1;
			range.e.r = _R + js.length - 1 + offset;
		}
	} else {
		if (_R == -1) {
			_R = 0;
			range.e.r = js.length - 1 + offset;
		}
	}
	var hdr = o$10.header || [], C$2 = 0;
	var ROW = [];
	js.forEach(function(JS, R$1) {
		if (dense && !ws["!data"][_R + R$1 + offset]) ws["!data"][_R + R$1 + offset] = [];
		if (dense) ROW = ws["!data"][_R + R$1 + offset];
		keys(JS).forEach(function(k$2) {
			if ((C$2 = hdr.indexOf(k$2)) == -1) hdr[C$2 = hdr.length] = k$2;
			var v$3 = JS[k$2];
			var t$6 = "z";
			var z$2 = "";
			var ref = dense ? "" : encode_col(_C + C$2) + encode_row(_R + R$1 + offset);
			var cell = dense ? ROW[_C + C$2] : ws[ref];
			if (v$3 && typeof v$3 === "object" && !(v$3 instanceof Date)) {
				if (dense) ROW[_C + C$2] = v$3;
				else ws[ref] = v$3;
			} else {
				if (typeof v$3 == "number") t$6 = "n";
				else if (typeof v$3 == "boolean") t$6 = "b";
				else if (typeof v$3 == "string") t$6 = "s";
				else if (v$3 instanceof Date) {
					t$6 = "d";
					if (!o$10.UTC) v$3 = local_to_utc(v$3);
					if (!o$10.cellDates) {
						t$6 = "n";
						v$3 = datenum(v$3);
					}
					z$2 = cell != null && cell.z && fmt_is_date(cell.z) ? cell.z : o$10.dateNF || table_fmt[14];
				} else if (v$3 === null && o$10.nullError) {
					t$6 = "e";
					v$3 = 0;
				}
				if (!cell) {
					if (!dense) ws[ref] = cell = {
						t: t$6,
						v: v$3
					};
					else ROW[_C + C$2] = cell = {
						t: t$6,
						v: v$3
					};
				} else {
					cell.t = t$6;
					cell.v = v$3;
					delete cell.w;
					delete cell.R;
					if (z$2) cell.z = z$2;
				}
				if (z$2) cell.z = z$2;
			}
		});
	});
	range.e.c = Math.max(range.e.c, _C + hdr.length - 1);
	var __R = encode_row(_R);
	if (dense && !ws["!data"][_R]) ws["!data"][_R] = [];
	if (offset) for (C$2 = 0; C$2 < hdr.length; ++C$2) {
		if (dense) ws["!data"][_R][C$2 + _C] = {
			t: "s",
			v: hdr[C$2]
		};
		else ws[encode_col(C$2 + _C) + __R] = {
			t: "s",
			v: hdr[C$2]
		};
	}
	ws["!ref"] = encode_range(range);
	return ws;
}
function json_to_sheet(js, opts) {
	return sheet_add_json(null, js, opts);
}
function ws_get_cell_stub(ws, R$1, C$2) {
	if (typeof R$1 == "string") {
		if (ws["!data"] != null) {
			var RC = decode_cell(R$1);
			if (!ws["!data"][RC.r]) ws["!data"][RC.r] = [];
			return ws["!data"][RC.r][RC.c] || (ws["!data"][RC.r][RC.c] = { t: "z" });
		}
		return ws[R$1] || (ws[R$1] = { t: "z" });
	}
	if (typeof R$1 != "number") return ws_get_cell_stub(ws, encode_cell(R$1));
	return ws_get_cell_stub(ws, encode_col(C$2 || 0) + encode_row(R$1));
}
function wb_sheet_idx(wb, sh) {
	if (typeof sh == "number") {
		if (sh >= 0 && wb.SheetNames.length > sh) return sh;
		throw new Error("Cannot find sheet # " + sh);
	} else if (typeof sh == "string") {
		var idx = wb.SheetNames.indexOf(sh);
		if (idx > -1) return idx;
		throw new Error("Cannot find sheet name |" + sh + "|");
	} else throw new Error("Cannot find sheet |" + sh + "|");
}
function book_new(ws, wsname) {
	var wb = {
		SheetNames: [],
		Sheets: {}
	};
	if (ws) book_append_sheet(wb, ws, wsname || "Sheet1");
	return wb;
}
function book_append_sheet(wb, ws, name, roll) {
	var i$7 = 1;
	if (!name) {
		for (; i$7 <= 65535; ++i$7, name = undefined) if (wb.SheetNames.indexOf(name = "Sheet" + i$7) == -1) break;
	}
	if (!name || wb.SheetNames.length >= 65535) throw new Error("Too many worksheets");
	if (roll && wb.SheetNames.indexOf(name) >= 0 && name.length < 32) {
		var m$3 = name.match(/\d+$/);
		i$7 = m$3 && +m$3[0] || 0;
		var root = m$3 && name.slice(0, m$3.index) || name;
		for (++i$7; i$7 <= 65535; ++i$7) if (wb.SheetNames.indexOf(name = root + i$7) == -1) break;
	}
	check_ws_name(name);
	if (wb.SheetNames.indexOf(name) >= 0) throw new Error("Worksheet with name |" + name + "| already exists!");
	wb.SheetNames.push(name);
	wb.Sheets[name] = ws;
	return name;
}
function book_set_sheet_visibility(wb, sh, vis) {
	if (!wb.Workbook) wb.Workbook = {};
	if (!wb.Workbook.Sheets) wb.Workbook.Sheets = [];
	var idx = wb_sheet_idx(wb, sh);
	if (!wb.Workbook.Sheets[idx]) wb.Workbook.Sheets[idx] = {};
	switch (vis) {
		case 0:
		case 1:
		case 2: break;
		default: throw new Error("Bad sheet visibility setting " + vis);
	}
	wb.Workbook.Sheets[idx].Hidden = vis;
}
function cell_set_number_format(cell, fmt) {
	cell.z = fmt;
	return cell;
}
function cell_set_hyperlink(cell, target, tooltip) {
	if (!target) {
		delete cell.l;
	} else {
		cell.l = { Target: target };
		if (tooltip) cell.l.Tooltip = tooltip;
	}
	return cell;
}
function cell_set_internal_link(cell, range, tooltip) {
	return cell_set_hyperlink(cell, "#" + range, tooltip);
}
function cell_add_comment(cell, text$2, author) {
	if (!cell.c) cell.c = [];
	cell.c.push({
		t: text$2,
		a: author || "SheetJS"
	});
}
function sheet_set_array_formula(ws, range, formula, dynamic) {
	var rng = typeof range != "string" ? range : safe_decode_range(range);
	var rngstr = typeof range == "string" ? range : encode_range(range);
	for (var R$1 = rng.s.r; R$1 <= rng.e.r; ++R$1) for (var C$2 = rng.s.c; C$2 <= rng.e.c; ++C$2) {
		var cell = ws_get_cell_stub(ws, R$1, C$2);
		cell.t = "n";
		cell.F = rngstr;
		delete cell.v;
		if (R$1 == rng.s.r && C$2 == rng.s.c) {
			cell.f = formula;
			if (dynamic) cell.D = true;
		}
	}
	var wsr = decode_range(ws["!ref"]);
	if (wsr.s.r > rng.s.r) wsr.s.r = rng.s.r;
	if (wsr.s.c > rng.s.c) wsr.s.c = rng.s.c;
	if (wsr.e.r < rng.e.r) wsr.e.r = rng.e.r;
	if (wsr.e.c < rng.e.c) wsr.e.c = rng.e.c;
	ws["!ref"] = encode_range(wsr);
	return ws;
}
function set_readable(R$1) {
	_Readable = R$1;
}
function write_csv_stream(sheet, opts) {
	var stream = _Readable();
	var o$10 = opts == null ? {} : opts;
	if (sheet == null || sheet["!ref"] == null) {
		stream.push(null);
		return stream;
	}
	var r$10 = safe_decode_range(sheet["!ref"]);
	var FS = o$10.FS !== undefined ? o$10.FS : ",", fs = FS.charCodeAt(0);
	var RS = o$10.RS !== undefined ? o$10.RS : "\n", rs = RS.charCodeAt(0);
	var row = "", cols = [];
	var colinfo = o$10.skipHidden && sheet["!cols"] || [];
	var rowinfo = o$10.skipHidden && sheet["!rows"] || [];
	for (var C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) if (!(colinfo[C$2] || {}).hidden) cols[C$2] = encode_col(C$2);
	var R$1 = r$10.s.r;
	var BOM = false, w$2 = 0;
	stream._read = function() {
		if (!BOM) {
			BOM = true;
			return stream.push("﻿");
		}
		while (R$1 <= r$10.e.r) {
			++R$1;
			if ((rowinfo[R$1 - 1] || {}).hidden) continue;
			row = make_csv_row(sheet, r$10, R$1 - 1, cols, fs, rs, FS, w$2, o$10);
			if (row != null) {
				if (row || o$10.blankrows !== false) return stream.push((w$2++ ? RS : "") + row);
			}
		}
		return stream.push(null);
	};
	return stream;
}
function write_html_stream(ws, opts) {
	var stream = _Readable();
	var o$10 = opts || {};
	var header = o$10.header != null ? o$10.header : HTML_BEGIN;
	var footer = o$10.footer != null ? o$10.footer : HTML_END;
	stream.push(header);
	var r$10 = decode_range(ws["!ref"]);
	stream.push(make_html_preamble(ws, r$10, o$10));
	var R$1 = r$10.s.r;
	var end = false;
	stream._read = function() {
		if (R$1 > r$10.e.r) {
			if (!end) {
				end = true;
				stream.push("</table>" + footer);
			}
			return stream.push(null);
		}
		while (R$1 <= r$10.e.r) {
			stream.push(make_html_row(ws, r$10, R$1, o$10));
			++R$1;
			break;
		}
	};
	return stream;
}
function write_json_stream(sheet, opts) {
	var stream = _Readable({ objectMode: true });
	if (sheet == null || sheet["!ref"] == null) {
		stream.push(null);
		return stream;
	}
	var val$1 = {
		t: "n",
		v: 0
	}, header = 0, offset = 1, hdr = [], v$3 = 0, vv = "";
	var r$10 = {
		s: {
			r: 0,
			c: 0
		},
		e: {
			r: 0,
			c: 0
		}
	};
	var o$10 = opts || {};
	var range = o$10.range != null ? o$10.range : sheet["!ref"];
	if (o$10.header === 1) header = 1;
	else if (o$10.header === "A") header = 2;
	else if (Array.isArray(o$10.header)) header = 3;
	switch (typeof range) {
		case "string":
			r$10 = safe_decode_range(range);
			break;
		case "number":
			r$10 = safe_decode_range(sheet["!ref"]);
			r$10.s.r = range;
			break;
		default: r$10 = range;
	}
	if (header > 0) offset = 0;
	var rr = encode_row(r$10.s.r);
	var cols = [];
	var counter = 0;
	var dense = sheet["!data"] != null;
	var R$1 = r$10.s.r, C$2 = 0;
	var header_cnt = {};
	if (dense && !sheet["!data"][R$1]) sheet["!data"][R$1] = [];
	var colinfo = o$10.skipHidden && sheet["!cols"] || [];
	var rowinfo = o$10.skipHidden && sheet["!rows"] || [];
	for (C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
		if ((colinfo[C$2] || {}).hidden) continue;
		cols[C$2] = encode_col(C$2);
		val$1 = dense ? sheet["!data"][R$1][C$2] : sheet[cols[C$2] + rr];
		switch (header) {
			case 1:
				hdr[C$2] = C$2 - r$10.s.c;
				break;
			case 2:
				hdr[C$2] = cols[C$2];
				break;
			case 3:
				hdr[C$2] = o$10.header[C$2 - r$10.s.c];
				break;
			default:
				if (val$1 == null) val$1 = {
					w: "__EMPTY",
					t: "s"
				};
				vv = v$3 = format_cell(val$1, null, o$10);
				counter = header_cnt[v$3] || 0;
				if (!counter) header_cnt[v$3] = 1;
				else {
					do {
						vv = v$3 + "_" + counter++;
					} while (header_cnt[vv]);
					header_cnt[v$3] = counter;
					header_cnt[vv] = 1;
				}
				hdr[C$2] = vv;
		}
	}
	R$1 = r$10.s.r + offset;
	stream._read = function() {
		while (R$1 <= r$10.e.r) {
			if ((rowinfo[R$1 - 1] || {}).hidden) continue;
			var row = make_json_row(sheet, r$10, R$1, cols, header, hdr, o$10);
			++R$1;
			if (row.isempty === false || (header === 1 ? o$10.blankrows !== false : !!o$10.blankrows)) {
				stream.push(row.row);
				return;
			}
		}
		return stream.push(null);
	};
	return stream;
}
function write_xlml_stream(wb, o$10) {
	var stream = _Readable();
	var opts = o$10 == null ? {} : o$10;
	var stride = +opts.stride || 10;
	if (!wb.SSF) wb.SSF = dup(table_fmt);
	if (wb.SSF) {
		make_ssf();
		SSF_load_table(wb.SSF);
		opts.revssf = evert_num(wb.SSF);
		opts.revssf[wb.SSF[65535]] = 0;
		opts.ssf = wb.SSF;
		opts.cellXfs = [];
		get_cell_style(opts.cellXfs, {}, { revssf: { "General": 0 } });
	}
	wb.SheetNames.forEach(function(n$9) {
		var ws$1 = wb.Sheets[n$9];
		if (!ws$1 || !ws$1["!ref"]) return;
		var range$1 = decode_range(ws$1["!ref"]);
		var dense$1 = ws$1["!data"] != null;
		var ddata = dense$1 ? ws$1["!data"] : [];
		var addr$1 = {
			r: 0,
			c: 0
		};
		for (var R$2 = range$1.s.r; R$2 <= range$1.e.r; ++R$2) {
			addr$1.r = R$2;
			if (dense$1 && !ddata[R$2]) continue;
			for (var C$2 = range$1.s.c; C$2 <= range$1.e.c; ++C$2) {
				addr$1.c = C$2;
				var cell = dense$1 ? ddata[R$2][C$2] : ws$1[encode_col(C$2) + encode_row(R$2)];
				if (!cell) continue;
				if (cell.t == "d" && cell.z == null) {
					cell = dup(cell);
					cell.z = table_fmt[14];
				}
				void get_cell_style(opts.cellXfs, cell, opts);
			}
		}
	});
	var sty = write_sty_xlml(wb, opts);
	var stage = 0, wsidx = 0, ws = wb.Sheets[wb.SheetNames[wsidx]], range = safe_decode_range(ws), R$1 = -1, T$3 = false;
	var marr = [], mi = 0, dense = false, darr = [], addr = {
		r: 0,
		c: 0
	};
	stream._read = function() {
		switch (stage) {
			case 0:
				{
					stage = 1;
					stream.push(XML_HEADER);
					stream.push("<Workbook" + wxt_helper({
						"xmlns": XLMLNS.ss,
						"xmlns:o": XLMLNS.o,
						"xmlns:x": XLMLNS.x,
						"xmlns:ss": XLMLNS.ss,
						"xmlns:dt": XLMLNS.dt,
						"xmlns:html": XLMLNS.html
					}) + ">");
				}
				break;
			case 1:
				{
					stage = 2;
					stream.push(write_props_xlml(wb, opts));
					stream.push(write_wb_xlml(wb, opts));
				}
				break;
			case 2:
				{
					stage = 3;
					stream.push(sty);
					stream.push(write_names_xlml(wb, opts));
				}
				break;
			case 3:
				{
					T$3 = false;
					if (wsidx >= wb.SheetNames.length) {
						stage = -1;
						stream.push("");
						break;
					}
					stream.push("<Worksheet" + wxt_helper({ "ss:Name": escapexml(wb.SheetNames[wsidx]) }) + ">");
					ws = wb.Sheets[wb.SheetNames[wsidx]];
					if (!ws) {
						stream.push("</Worksheet>");
						return void ++wsidx;
					}
					var names = write_ws_xlml_names(ws, opts, wsidx, wb);
					if (names.length) stream.push("<Names>" + names + "</Names>");
					if (!ws["!ref"]) return stage = 5;
					range = safe_decode_range(ws["!ref"]);
					R$1 = range.s.r;
					stage = 4;
				}
				break;
			case 4:
				{
					if (R$1 < 0 || R$1 > range.e.r) {
						if (T$3) stream.push("</Table>");
						return void (stage = 5);
					}
					if (R$1 <= range.s.r) {
						if (ws["!cols"]) ws["!cols"].forEach(function(n$9, i$7) {
							process_col(n$9);
							var w$2 = !!n$9.width;
							var p$3 = col_obj_w(i$7, n$9);
							var k$2 = { "ss:Index": i$7 + 1 };
							if (w$2) k$2["ss:Width"] = width2px(p$3.width);
							if (n$9.hidden) k$2["ss:Hidden"] = "1";
							if (!T$3) {
								T$3 = true;
								stream.push("<Table>");
							}
							stream.push(writextag("Column", null, k$2));
						});
						dense = ws["!data"] != null;
						if (dense) darr = ws["!data"];
						addr.r = addr.c = 0;
					}
					for (var cnt = 0; R$1 <= range.e.r && cnt < stride; ++R$1, ++cnt) {
						var row = [write_ws_xlml_row(R$1, (ws["!rows"] || [])[R$1])];
						addr.r = R$1;
						if (!(dense && !darr[R$1])) for (var C$2 = range.s.c; C$2 <= range.e.c; ++C$2) {
							addr.c = C$2;
							var skip = false;
							for (mi = 0; mi != marr.length; ++mi) {
								if (marr[mi].s.c > C$2) continue;
								if (marr[mi].s.r > R$1) continue;
								if (marr[mi].e.c < C$2) continue;
								if (marr[mi].e.r < R$1) continue;
								if (marr[mi].s.c != C$2 || marr[mi].s.r != R$1) skip = true;
								break;
							}
							if (skip) continue;
							var ref = encode_col(C$2) + encode_row(R$1), cell = dense ? darr[R$1][C$2] : ws[ref];
							row.push(write_ws_xlml_cell(cell, ref, ws, opts, wsidx, wb, addr));
						}
						row.push("</Row>");
						if (!T$3) {
							T$3 = true;
							stream.push("<Table>");
						}
						stream.push(row.join(""));
					}
				}
				break;
			case 5: {
				stream.push(write_ws_xlml_wsopts(ws, opts, wsidx, wb));
				if (ws && ws["!autofilter"]) stream.push("<AutoFilter x:Range=\"" + a1_to_rc(fix_range(ws["!autofilter"].ref), {
					r: 0,
					c: 0
				}) + "\" xmlns=\"urn:schemas-microsoft-com:office:excel\"></AutoFilter>");
				stream.push("</Worksheet>");
				wsidx++;
				R$1 = -1;
				return void (stage = 3);
			}
			case -1:
				{
					stage = -2;
					stream.push("</Workbook>");
				}
				break;
			case -2:
				stream.push(null);
				break;
		}
	};
	return stream;
}
var XLSX, current_codepage, current_ansi, $cptable, VALID_ANSI, CS2CP, set_ansi, set_cp, debom, _getchar, _getansi, DENSE, DIF_XL, Base64_map, has_buf, Buffer_from, buf_utf16le, s2a, bconcat, chr0, chr1, p2_32, days, months, table_fmt, SSF_default_map, SSF_default_str, pct1, frac1, dec1, closeparen, phone, SSF_abstime, cfregex2, SSF, SSFImplicit, dateNFregex, bad_formats, CRC32, CFB, _fs, dnthresh, dnthresh1, dnthresh2, pdre1, pdre2, pdre3, FDRE1, FDRE2, FDISO, utc_append_works, lower_months, split_regex, xml_boundary, str_match_xml_ns, str_match_xml_ns_g, str_remove_xml_ns_g, str_match_xml_ig, XML_HEADER, attregexg, tagregex1, tagregex2, tagregex, nsregex, nsregex2, encodings, rencoding, unescapexml, decregex, charegex, htmlcharegex, xlml_fixstr, utf8corpus, utf8read, utf8write, htmldecode, vtvregex, vtmregex, wtregex, xlmlregex, XMLNS, XMLNS_main, XLMLNS, ___toBuffer, __toBuffer, ___utf16le, __utf16le, ___hexlify, __hexlify, ___utf8, __utf8, ___lpstr, __lpstr, ___cpstr, __cpstr, ___lpwstr, __lpwstr, ___lpp4, __lpp4, ___8lpp4, __8lpp4, ___double, __double, is_buf, __readUInt8, __readUInt16LE, __readInt16LE, __readUInt32LE, __readInt32LE, __readInt32BE, __writeUInt32LE, __writeInt32LE, __writeUInt16LE, parse_BrtCommentText, parse_XLSBCodeName, write_XLSBCodeName, parse_XLNameWideString, parse_RelID, write_RelID, parse_UncheckedRfX, write_UncheckedRfX, VT_I2, VT_I4, VT_BOOL, VT_VARIANT, VT_UI4, VT_FILETIME, VT_BLOB, VT_CF, VT_VECTOR_VARIANT, VT_VECTOR_LPSTR, VT_STRING, VT_USTR, VT_CUSTOM, DocSummaryPIDDSI, SummaryPIDSI, CountryEnum, XLSFillPattern, _XLSIcv, XLSIcv, BErr, RBErr, XLSLblBuiltIn, ct2type, CT_LIST, RELS, CT_ODS, CORE_PROPS, EXT_PROPS, PseudoPropsPairs, custregex, XLMLDocPropsMap, evert_XLMLDPM, XLSPSSkip, parse_Ref, FtTab, parse_BIFF2Format, write_BIFF4XF, parse_XLHeaderFooter, parse_BIFF5OT, parse_Blank, parse_Scl, parse_String, DBF_SUPPORTED_VERSIONS, DBF, SYLK, DIF, ETH, PRN, WK_, parse_rs, rs_to_html, sitregex, sirregex, sstr1, sstr2, straywsregex, write_BrtSSTItem, crypto_CreateXorArray_Method1, crypto_DecryptData_Method1, crypto_MakeXorDecryptor, DEF_MDW, MAX_MDW, MIN_MDW, MDW, DEF_PPI, PPI, XLMLPatternTypeMap, cellXF_uint, cellXF_bool, parse_sty_xml, XLSBFillPTNames, rev_XLSBFillPTNames, parse_BrtFill, parse_BrtBorder, XLSXThemeClrScheme, parse_BrtCommentAuthor, CT_VBA, VBAFMTS, rc_to_a1, crefregex, a1_to_rc, parse_PtgMemErr, parse_PtgMemNoMem, parse_PtgTbl, parse_PtgElfCol, parse_PtgElfColS, parse_PtgElfColSV, parse_PtgElfColV, parse_PtgElfRadical, parse_PtgElfRadicalLel, parse_PtgElfRadicalS, parse_PtgElfRw, parse_PtgElfRwV, PtgListRT, PtgTypes, PtgDupes, Ptg18, Ptg19, PtgBinOp, parse_XLSBArrayParsedFormula, parse_XLSBCellParsedFormula, parse_XLSBNameParsedFormula, parse_XLSBSharedParsedFormula, write_XLSBNameParsedFormula, Cetab, Ftab, FtabArgc, strs, _ssfopts, browser_has_Map, mergecregex, hlinkregex, dimregex, colregex, afregex, marginregex, sheetprregex, sheetprot_deffalse, sheetprot_deftrue, sviewregex, parse_ws_xml_data, parse_BrtWsDim, write_BrtWsDim, parse_BrtMergeCell, write_BrtMergeCell, BrtMarginKeys, WBPropsDef, WBViewDef, SheetDef, CalcPrDef, badchars, wbnsregex, attregexg2, attregex2, XLMLFormatMap, CONTINUE_RT, PSCLSID, XLSBRecordEnum, XLSRecordEnum, b8oid, b8ocnts, HTML_BEGIN, HTML_END, write_styles_ods, write_content_ods, subarray, numbers_lut_new, USE_WIDE_ROWS, qreg, utils$1, _Readable, __stream, version$3, xlsx_default;
var init_xlsx = __esmMin((() => {
	XLSX = {};
	XLSX.version = "0.20.3";
	current_codepage = 1200, current_ansi = 1252;
	;
	VALID_ANSI = [
		874,
		932,
		936,
		949,
		950,
		1250,
		1251,
		1252,
		1253,
		1254,
		1255,
		1256,
		1257,
		1258,
		1e4
	];
	CS2CP = {
		0: 1252,
		1: 65001,
		2: 65001,
		77: 1e4,
		128: 932,
		129: 949,
		130: 1361,
		134: 936,
		136: 950,
		161: 1253,
		162: 1254,
		163: 1258,
		177: 1255,
		178: 1256,
		186: 1257,
		204: 1251,
		222: 874,
		238: 1250,
		255: 1252,
		69: 6969
	};
	set_ansi = function(cp) {
		if (VALID_ANSI.indexOf(cp) == -1) return;
		current_ansi = CS2CP[0] = cp;
	};
	set_cp = function(cp) {
		current_codepage = cp;
		set_ansi(cp);
	};
	debom = function(data) {
		var c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);
		if (c1 == 255 && c2 == 254) return utf16leread(data.slice(2));
		if (c1 == 254 && c2 == 255) return utf16beread(data.slice(2));
		if (c1 == 65279) return data.slice(1);
		return data;
	};
	_getchar = function _gc1(x$2) {
		return String.fromCharCode(x$2);
	};
	_getansi = function _ga1(x$2) {
		return String.fromCharCode(x$2);
	};
	DENSE = null;
	DIF_XL = true;
	Base64_map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
	has_buf = /* @__PURE__ */ (function() {
		return typeof Buffer !== "undefined" && typeof process !== "undefined" && typeof process.versions !== "undefined" && !!process.versions.node;
	})();
	Buffer_from = /* @__PURE__ */ (function() {
		if (typeof Buffer !== "undefined") {
			var nbfs = !Buffer.from;
			if (!nbfs) try {
				Buffer.from("foo", "utf8");
			} catch (e$10) {
				nbfs = true;
			}
			return nbfs ? function(buf, enc) {
				return enc ? new Buffer(buf, enc) : new Buffer(buf);
			} : Buffer.from.bind(Buffer);
		}
		return function() {};
	})();
	buf_utf16le = /* @__PURE__ */ (function() {
		if (typeof Buffer === "undefined") return false;
		var x$2 = Buffer_from([65, 0]);
		if (!x$2) return false;
		var o$10 = x$2.toString("utf16le");
		return o$10.length == 1;
	})();
	s2a = function s2a$1(s$5) {
		if (has_buf) return Buffer_from(s$5, "binary");
		return s$5.split("").map(function(x$2) {
			return x$2.charCodeAt(0) & 255;
		});
	};
	bconcat = has_buf ? function(bufs) {
		return Buffer.concat(bufs.map(function(buf) {
			return Buffer.isBuffer(buf) ? buf : Buffer_from(buf);
		}));
	} : function(bufs) {
		if (typeof Uint8Array !== "undefined") {
			var i$7 = 0, maxlen = 0;
			for (i$7 = 0; i$7 < bufs.length; ++i$7) maxlen += bufs[i$7].length;
			var o$10 = new Uint8Array(maxlen);
			var len = 0;
			for (i$7 = 0, maxlen = 0; i$7 < bufs.length; maxlen += len, ++i$7) {
				len = bufs[i$7].length;
				if (bufs[i$7] instanceof Uint8Array) o$10.set(bufs[i$7], maxlen);
				else if (typeof bufs[i$7] == "string") o$10.set(new Uint8Array(s2a(bufs[i$7])), maxlen);
				else o$10.set(new Uint8Array(bufs[i$7]), maxlen);
			}
			return o$10;
		}
		return [].concat.apply([], bufs.map(function(buf) {
			return Array.isArray(buf) ? buf : [].slice.call(buf);
		}));
	};
	chr0 = /\u0000/g, chr1 = /[\u0001-\u0006]/g;
	p2_32 = /* @__PURE__ */ Math.pow(2, 32);
	days = [
		["Sun", "Sunday"],
		["Mon", "Monday"],
		["Tue", "Tuesday"],
		["Wed", "Wednesday"],
		["Thu", "Thursday"],
		["Fri", "Friday"],
		["Sat", "Saturday"]
	];
	months = [
		[
			"J",
			"Jan",
			"January"
		],
		[
			"F",
			"Feb",
			"February"
		],
		[
			"M",
			"Mar",
			"March"
		],
		[
			"A",
			"Apr",
			"April"
		],
		[
			"M",
			"May",
			"May"
		],
		[
			"J",
			"Jun",
			"June"
		],
		[
			"J",
			"Jul",
			"July"
		],
		[
			"A",
			"Aug",
			"August"
		],
		[
			"S",
			"Sep",
			"September"
		],
		[
			"O",
			"Oct",
			"October"
		],
		[
			"N",
			"Nov",
			"November"
		],
		[
			"D",
			"Dec",
			"December"
		]
	];
	table_fmt = {
		0: "General",
		1: "0",
		2: "0.00",
		3: "#,##0",
		4: "#,##0.00",
		9: "0%",
		10: "0.00%",
		11: "0.00E+00",
		12: "# ?/?",
		13: "# ??/??",
		14: "m/d/yy",
		15: "d-mmm-yy",
		16: "d-mmm",
		17: "mmm-yy",
		18: "h:mm AM/PM",
		19: "h:mm:ss AM/PM",
		20: "h:mm",
		21: "h:mm:ss",
		22: "m/d/yy h:mm",
		37: "#,##0 ;(#,##0)",
		38: "#,##0 ;[Red](#,##0)",
		39: "#,##0.00;(#,##0.00)",
		40: "#,##0.00;[Red](#,##0.00)",
		45: "mm:ss",
		46: "[h]:mm:ss",
		47: "mmss.0",
		48: "##0.0E+0",
		49: "@",
		56: "\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \""
	};
	SSF_default_map = {
		5: 37,
		6: 38,
		7: 39,
		8: 40,
		23: 0,
		24: 0,
		25: 0,
		26: 0,
		27: 14,
		28: 14,
		29: 14,
		30: 14,
		31: 14,
		50: 14,
		51: 14,
		52: 14,
		53: 14,
		54: 14,
		55: 14,
		56: 14,
		57: 14,
		58: 14,
		59: 1,
		60: 2,
		61: 3,
		62: 4,
		67: 9,
		68: 10,
		69: 12,
		70: 13,
		71: 14,
		72: 14,
		73: 15,
		74: 16,
		75: 17,
		76: 20,
		77: 21,
		78: 22,
		79: 45,
		80: 46,
		81: 47,
		82: 0
	};
	SSF_default_str = {
		5: "\"$\"#,##0_);\\(\"$\"#,##0\\)",
		63: "\"$\"#,##0_);\\(\"$\"#,##0\\)",
		6: "\"$\"#,##0_);[Red]\\(\"$\"#,##0\\)",
		64: "\"$\"#,##0_);[Red]\\(\"$\"#,##0\\)",
		7: "\"$\"#,##0.00_);\\(\"$\"#,##0.00\\)",
		65: "\"$\"#,##0.00_);\\(\"$\"#,##0.00\\)",
		8: "\"$\"#,##0.00_);[Red]\\(\"$\"#,##0.00\\)",
		66: "\"$\"#,##0.00_);[Red]\\(\"$\"#,##0.00\\)",
		41: "_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)",
		42: "_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)",
		43: "_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)",
		44: "_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)"
	};
	pct1 = /%/g;
	frac1 = /# (\?+)( ?)\/( ?)(\d+)/;
	dec1 = /^#*0*\.([0#]+)/;
	closeparen = /\)[^)]*[0#]/;
	phone = /\(###\) ###\\?-####/;
	SSF_abstime = /\[[HhMmSs\u0E0A\u0E19\u0E17]*\]/;
	cfregex2 = /\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;
	SSF = {
		format: SSF_format,
		load: SSF_load,
		_table: table_fmt,
		load_table: SSF_load_table,
		parse_date_code: SSF_parse_date_code,
		is_date: fmt_is_date,
		get_table: function get_table() {
			return SSF._table = table_fmt;
		}
	};
	SSFImplicit = {
		"5": "\"$\"#,##0_);\\(\"$\"#,##0\\)",
		"6": "\"$\"#,##0_);[Red]\\(\"$\"#,##0\\)",
		"7": "\"$\"#,##0.00_);\\(\"$\"#,##0.00\\)",
		"8": "\"$\"#,##0.00_);[Red]\\(\"$\"#,##0.00\\)",
		"23": "General",
		"24": "General",
		"25": "General",
		"26": "General",
		"27": "m/d/yy",
		"28": "m/d/yy",
		"29": "m/d/yy",
		"30": "m/d/yy",
		"31": "m/d/yy",
		"32": "h:mm:ss",
		"33": "h:mm:ss",
		"34": "h:mm:ss",
		"35": "h:mm:ss",
		"36": "m/d/yy",
		"41": "_(* #,##0_);_(* (#,##0);_(* \"-\"_);_(@_)",
		"42": "_(\"$\"* #,##0_);_(\"$\"* (#,##0);_(\"$\"* \"-\"_);_(@_)",
		"43": "_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)",
		"44": "_(\"$\"* #,##0.00_);_(\"$\"* (#,##0.00);_(\"$\"* \"-\"??_);_(@_)",
		"50": "m/d/yy",
		"51": "m/d/yy",
		"52": "m/d/yy",
		"53": "m/d/yy",
		"54": "m/d/yy",
		"55": "m/d/yy",
		"56": "m/d/yy",
		"57": "m/d/yy",
		"58": "m/d/yy",
		"59": "0",
		"60": "0.00",
		"61": "#,##0",
		"62": "#,##0.00",
		"63": "\"$\"#,##0_);\\(\"$\"#,##0\\)",
		"64": "\"$\"#,##0_);[Red]\\(\"$\"#,##0\\)",
		"65": "\"$\"#,##0.00_);\\(\"$\"#,##0.00\\)",
		"66": "\"$\"#,##0.00_);[Red]\\(\"$\"#,##0.00\\)",
		"67": "0%",
		"68": "0.00%",
		"69": "# ?/?",
		"70": "# ??/??",
		"71": "m/d/yy",
		"72": "m/d/yy",
		"73": "d-mmm-yy",
		"74": "d-mmm",
		"75": "mmm-yy",
		"76": "h:mm",
		"77": "h:mm:ss",
		"78": "m/d/yy h:mm",
		"79": "mm:ss",
		"80": "[h]:mm:ss",
		"81": "mmss.0"
	};
	dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;
	bad_formats = { "d.m": "d\\.m" };
	CRC32 = /* @__PURE__ */ (function() {
		var CRC32$1 = {};
		CRC32$1.version = "1.2.0";
		function signed_crc_table() {
			var c$7 = 0, table = new Array(256);
			for (var n$9 = 0; n$9 != 256; ++n$9) {
				c$7 = n$9;
				c$7 = c$7 & 1 ? -306674912 ^ c$7 >>> 1 : c$7 >>> 1;
				c$7 = c$7 & 1 ? -306674912 ^ c$7 >>> 1 : c$7 >>> 1;
				c$7 = c$7 & 1 ? -306674912 ^ c$7 >>> 1 : c$7 >>> 1;
				c$7 = c$7 & 1 ? -306674912 ^ c$7 >>> 1 : c$7 >>> 1;
				c$7 = c$7 & 1 ? -306674912 ^ c$7 >>> 1 : c$7 >>> 1;
				c$7 = c$7 & 1 ? -306674912 ^ c$7 >>> 1 : c$7 >>> 1;
				c$7 = c$7 & 1 ? -306674912 ^ c$7 >>> 1 : c$7 >>> 1;
				c$7 = c$7 & 1 ? -306674912 ^ c$7 >>> 1 : c$7 >>> 1;
				table[n$9] = c$7;
			}
			return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;
		}
		var T0 = signed_crc_table();
		function slice_by_16_tables(T$3) {
			var c$7 = 0, v$3 = 0, n$9 = 0, table = typeof Int32Array !== "undefined" ? new Int32Array(4096) : new Array(4096);
			for (n$9 = 0; n$9 != 256; ++n$9) table[n$9] = T$3[n$9];
			for (n$9 = 0; n$9 != 256; ++n$9) {
				v$3 = T$3[n$9];
				for (c$7 = 256 + n$9; c$7 < 4096; c$7 += 256) v$3 = table[c$7] = v$3 >>> 8 ^ T$3[v$3 & 255];
			}
			var out = [];
			for (n$9 = 1; n$9 != 16; ++n$9) out[n$9 - 1] = typeof Int32Array !== "undefined" && typeof table.subarray == "function" ? table.subarray(n$9 * 256, n$9 * 256 + 256) : table.slice(n$9 * 256, n$9 * 256 + 256);
			return out;
		}
		var TT = slice_by_16_tables(T0);
		var T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];
		var T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];
		var Tb = TT[10], Tc$1 = TT[11], Td = TT[12], Te$1 = TT[13], Tf = TT[14];
		function crc32_bstr(bstr, seed) {
			var C$2 = seed ^ -1;
			for (var i$7 = 0, L$2 = bstr.length; i$7 < L$2;) C$2 = C$2 >>> 8 ^ T0[(C$2 ^ bstr.charCodeAt(i$7++)) & 255];
			return ~C$2;
		}
		function crc32_buf(B$2, seed) {
			var C$2 = seed ^ -1, L$2 = B$2.length - 15, i$7 = 0;
			for (; i$7 < L$2;) C$2 = Tf[B$2[i$7++] ^ C$2 & 255] ^ Te$1[B$2[i$7++] ^ C$2 >> 8 & 255] ^ Td[B$2[i$7++] ^ C$2 >> 16 & 255] ^ Tc$1[B$2[i$7++] ^ C$2 >>> 24] ^ Tb[B$2[i$7++]] ^ Ta[B$2[i$7++]] ^ T9[B$2[i$7++]] ^ T8[B$2[i$7++]] ^ T7[B$2[i$7++]] ^ T6[B$2[i$7++]] ^ T5[B$2[i$7++]] ^ T4[B$2[i$7++]] ^ T3[B$2[i$7++]] ^ T2[B$2[i$7++]] ^ T1[B$2[i$7++]] ^ T0[B$2[i$7++]];
			L$2 += 15;
			while (i$7 < L$2) C$2 = C$2 >>> 8 ^ T0[(C$2 ^ B$2[i$7++]) & 255];
			return ~C$2;
		}
		function crc32_str(str, seed) {
			var C$2 = seed ^ -1;
			for (var i$7 = 0, L$2 = str.length, c$7 = 0, d$5 = 0; i$7 < L$2;) {
				c$7 = str.charCodeAt(i$7++);
				if (c$7 < 128) {
					C$2 = C$2 >>> 8 ^ T0[(C$2 ^ c$7) & 255];
				} else if (c$7 < 2048) {
					C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (192 | c$7 >> 6 & 31)) & 255];
					C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (128 | c$7 & 63)) & 255];
				} else if (c$7 >= 55296 && c$7 < 57344) {
					c$7 = (c$7 & 1023) + 64;
					d$5 = str.charCodeAt(i$7++) & 1023;
					C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (240 | c$7 >> 8 & 7)) & 255];
					C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (128 | c$7 >> 2 & 63)) & 255];
					C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (128 | d$5 >> 6 & 15 | (c$7 & 3) << 4)) & 255];
					C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (128 | d$5 & 63)) & 255];
				} else {
					C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (224 | c$7 >> 12 & 15)) & 255];
					C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (128 | c$7 >> 6 & 63)) & 255];
					C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (128 | c$7 & 63)) & 255];
				}
			}
			return ~C$2;
		}
		CRC32$1.table = T0;
		CRC32$1.bstr = crc32_bstr;
		CRC32$1.buf = crc32_buf;
		CRC32$1.str = crc32_str;
		return CRC32$1;
	})();
	CFB = /* @__PURE__ */ (function _CFB() {
		var exports$1 = {};
		exports$1.version = "1.2.2";
		function namecmp(l$3, r$10) {
			var L$2 = l$3.split("/"), R$1 = r$10.split("/");
			for (var i$8 = 0, c$7 = 0, Z$1 = Math.min(L$2.length, R$1.length); i$8 < Z$1; ++i$8) {
				if (c$7 = L$2[i$8].length - R$1[i$8].length) return c$7;
				if (L$2[i$8] != R$1[i$8]) return L$2[i$8] < R$1[i$8] ? -1 : 1;
			}
			return L$2.length - R$1.length;
		}
		function dirname(p$3) {
			if (p$3.charAt(p$3.length - 1) == "/") return p$3.slice(0, -1).indexOf("/") === -1 ? p$3 : dirname(p$3.slice(0, -1));
			var c$7 = p$3.lastIndexOf("/");
			return c$7 === -1 ? p$3 : p$3.slice(0, c$7 + 1);
		}
		function filename(p$3) {
			if (p$3.charAt(p$3.length - 1) == "/") return filename(p$3.slice(0, -1));
			var c$7 = p$3.lastIndexOf("/");
			return c$7 === -1 ? p$3 : p$3.slice(c$7 + 1);
		}
		function write_dos_date(buf, date) {
			if (typeof date === "string") date = new Date(date);
			var hms = date.getHours();
			hms = hms << 6 | date.getMinutes();
			hms = hms << 5 | date.getSeconds() >>> 1;
			buf.write_shift(2, hms);
			var ymd = date.getFullYear() - 1980;
			ymd = ymd << 4 | date.getMonth() + 1;
			ymd = ymd << 5 | date.getDate();
			buf.write_shift(2, ymd);
		}
		function parse_dos_date(buf) {
			var hms = buf.read_shift(2) & 65535;
			var ymd = buf.read_shift(2) & 65535;
			var val$1 = new Date();
			var d$5 = ymd & 31;
			ymd >>>= 5;
			var m$3 = ymd & 15;
			ymd >>>= 4;
			val$1.setMilliseconds(0);
			val$1.setFullYear(ymd + 1980);
			val$1.setMonth(m$3 - 1);
			val$1.setDate(d$5);
			var S$4 = hms & 31;
			hms >>>= 5;
			var M$3 = hms & 63;
			hms >>>= 6;
			val$1.setHours(hms);
			val$1.setMinutes(M$3);
			val$1.setSeconds(S$4 << 1);
			return val$1;
		}
		function parse_extra_field(blob) {
			prep_blob(blob, 0);
			var o$10 = {};
			var flags = 0;
			while (blob.l <= blob.length - 4) {
				var type = blob.read_shift(2);
				var sz = blob.read_shift(2), tgt = blob.l + sz;
				var p$3 = {};
				switch (type) {
					case 21589:
						{
							flags = blob.read_shift(1);
							if (flags & 1) p$3.mtime = blob.read_shift(4);
							if (sz > 5) {
								if (flags & 2) p$3.atime = blob.read_shift(4);
								if (flags & 4) p$3.ctime = blob.read_shift(4);
							}
							if (p$3.mtime) p$3.mt = new Date(p$3.mtime * 1e3);
						}
						break;
					case 1:
						{
							var sz1 = blob.read_shift(4), sz2 = blob.read_shift(4);
							p$3.usz = sz2 * Math.pow(2, 32) + sz1;
							sz1 = blob.read_shift(4);
							sz2 = blob.read_shift(4);
							p$3.csz = sz2 * Math.pow(2, 32) + sz1;
						}
						break;
				}
				blob.l = tgt;
				o$10[type] = p$3;
			}
			return o$10;
		}
		var fs;
		function get_fs() {
			return fs || (fs = _fs);
		}
		function parse(file, options) {
			if (file[0] == 80 && file[1] == 75) return parse_zip$1(file, options);
			if ((file[0] | 32) == 109 && (file[1] | 32) == 105) return parse_mad(file, options);
			if (file.length < 512) throw new Error("CFB file size " + file.length + " < 512");
			var mver = 3;
			var ssz = 512;
			var nmfs = 0;
			var difat_sec_cnt = 0;
			var dir_start = 0;
			var minifat_start = 0;
			var difat_start = 0;
			var fat_addrs = [];
			var blob = file.slice(0, 512);
			prep_blob(blob, 0);
			var mv = check_get_mver(blob);
			mver = mv[0];
			switch (mver) {
				case 3:
					ssz = 512;
					break;
				case 4:
					ssz = 4096;
					break;
				case 0: if (mv[1] == 0) return parse_zip$1(file, options);
				default: throw new Error("Major Version: Expected 3 or 4 saw " + mver);
			}
			if (ssz !== 512) {
				blob = file.slice(0, ssz);
				prep_blob(blob, 28);
			}
			var header = file.slice(0, ssz);
			check_shifts(blob, mver);
			var dir_cnt = blob.read_shift(4, "i");
			if (mver === 3 && dir_cnt !== 0) throw new Error("# Directory Sectors: Expected 0 saw " + dir_cnt);
			blob.l += 4;
			dir_start = blob.read_shift(4, "i");
			blob.l += 4;
			blob.chk("00100000", "Mini Stream Cutoff Size: ");
			minifat_start = blob.read_shift(4, "i");
			nmfs = blob.read_shift(4, "i");
			difat_start = blob.read_shift(4, "i");
			difat_sec_cnt = blob.read_shift(4, "i");
			for (var q$3 = -1, j$2 = 0; j$2 < 109; ++j$2) {
				q$3 = blob.read_shift(4, "i");
				if (q$3 < 0) break;
				fat_addrs[j$2] = q$3;
			}
			/** Break the file up into sectors */
			var sectors = sectorify(file, ssz);
			sleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);
			/** Chains */
			var sector_list = make_sector_list(sectors, dir_start, fat_addrs, ssz);
			if (dir_start < sector_list.length) sector_list[dir_start].name = "!Directory";
			if (nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = "!MiniFAT";
			sector_list[fat_addrs[0]].name = "!FAT";
			sector_list.fat_addrs = fat_addrs;
			sector_list.ssz = ssz;
			var files = {}, Paths = [], FileIndex = [], FullPaths = [];
			read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);
			build_full_paths(FileIndex, FullPaths, Paths);
			Paths.shift();
			var o$10 = {
				FileIndex,
				FullPaths
			};
			if (options && options.raw) o$10.raw = {
				header,
				sectors
			};
			return o$10;
		}
		function check_get_mver(blob) {
			if (blob[blob.l] == 80 && blob[blob.l + 1] == 75) return [0, 0];
			blob.chk(HEADER_SIGNATURE, "Header Signature: ");
			blob.l += 16;
			var mver = blob.read_shift(2, "u");
			return [blob.read_shift(2, "u"), mver];
		}
		function check_shifts(blob, mver) {
			var shift = 9;
			blob.l += 2;
			switch (shift = blob.read_shift(2)) {
				case 9:
					if (mver != 3) throw new Error("Sector Shift: Expected 9 saw " + shift);
					break;
				case 12:
					if (mver != 4) throw new Error("Sector Shift: Expected 12 saw " + shift);
					break;
				default: throw new Error("Sector Shift: Expected 9 or 12 saw " + shift);
			}
			blob.chk("0600", "Mini Sector Shift: ");
			blob.chk("000000000000", "Reserved: ");
		}
		/** Break the file up into sectors */
		function sectorify(file, ssz) {
			var nsectors = Math.ceil(file.length / ssz) - 1;
			var sectors = [];
			for (var i$8 = 1; i$8 < nsectors; ++i$8) sectors[i$8 - 1] = file.slice(i$8 * ssz, (i$8 + 1) * ssz);
			sectors[nsectors - 1] = file.slice(nsectors * ssz);
			return sectors;
		}
		function build_full_paths(FI, FP, Paths) {
			var i$8 = 0, L$2 = 0, R$1 = 0, C$2 = 0, j$2 = 0, pl = Paths.length;
			var dad = [], q$3 = [];
			for (; i$8 < pl; ++i$8) {
				dad[i$8] = q$3[i$8] = i$8;
				FP[i$8] = Paths[i$8];
			}
			for (; j$2 < q$3.length; ++j$2) {
				i$8 = q$3[j$2];
				L$2 = FI[i$8].L;
				R$1 = FI[i$8].R;
				C$2 = FI[i$8].C;
				if (dad[i$8] === i$8) {
					if (L$2 !== -1 && dad[L$2] !== L$2) dad[i$8] = dad[L$2];
					if (R$1 !== -1 && dad[R$1] !== R$1) dad[i$8] = dad[R$1];
				}
				if (C$2 !== -1) dad[C$2] = i$8;
				if (L$2 !== -1 && i$8 != dad[i$8]) {
					dad[L$2] = dad[i$8];
					if (q$3.lastIndexOf(L$2) < j$2) q$3.push(L$2);
				}
				if (R$1 !== -1 && i$8 != dad[i$8]) {
					dad[R$1] = dad[i$8];
					if (q$3.lastIndexOf(R$1) < j$2) q$3.push(R$1);
				}
			}
			for (i$8 = 1; i$8 < pl; ++i$8) if (dad[i$8] === i$8) {
				if (R$1 !== -1 && dad[R$1] !== R$1) dad[i$8] = dad[R$1];
				else if (L$2 !== -1 && dad[L$2] !== L$2) dad[i$8] = dad[L$2];
			}
			for (i$8 = 1; i$8 < pl; ++i$8) {
				if (FI[i$8].type === 0) continue;
				j$2 = i$8;
				if (j$2 != dad[j$2]) do {
					j$2 = dad[j$2];
					FP[i$8] = FP[j$2] + "/" + FP[i$8];
				} while (j$2 !== 0 && -1 !== dad[j$2] && j$2 != dad[j$2]);
				dad[i$8] = -1;
			}
			FP[0] += "/";
			for (i$8 = 1; i$8 < pl; ++i$8) {
				if (FI[i$8].type !== 2) FP[i$8] += "/";
			}
		}
		function get_mfat_entry(entry, payload, mini) {
			var start = entry.start, size = entry.size;
			var o$10 = [];
			var idx = start;
			while (mini && size > 0 && idx >= 0) {
				o$10.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));
				size -= MSSZ;
				idx = __readInt32LE(mini, idx * 4);
			}
			if (o$10.length === 0) return new_buf(0);
			return bconcat(o$10).slice(0, entry.size);
		}
		/** Chase down the rest of the DIFAT chain to build a comprehensive list
		DIFAT chains by storing the next sector number as the last 32 bits */
		function sleuth_fat(idx, cnt, sectors, ssz, fat_addrs) {
			var q$3 = ENDOFCHAIN;
			if (idx === ENDOFCHAIN) {
				if (cnt !== 0) throw new Error("DIFAT chain shorter than expected");
			} else if (idx !== -1) {
				var sector = sectors[idx], m$3 = (ssz >>> 2) - 1;
				if (!sector) return;
				for (var i$8 = 0; i$8 < m$3; ++i$8) {
					if ((q$3 = __readInt32LE(sector, i$8 * 4)) === ENDOFCHAIN) break;
					fat_addrs.push(q$3);
				}
				if (cnt >= 1) sleuth_fat(__readInt32LE(sector, ssz - 4), cnt - 1, sectors, ssz, fat_addrs);
			}
		}
		/** Follow the linked list of sectors for a given starting point */
		function get_sector_list(sectors, start, fat_addrs, ssz, chkd) {
			var buf = [], buf_chain = [];
			if (!chkd) chkd = [];
			var modulus = ssz - 1, j$2 = 0, jj = 0;
			for (j$2 = start; j$2 >= 0;) {
				chkd[j$2] = true;
				buf[buf.length] = j$2;
				buf_chain.push(sectors[j$2]);
				var addr = fat_addrs[Math.floor(j$2 * 4 / ssz)];
				jj = j$2 * 4 & modulus;
				if (ssz < 4 + jj) throw new Error("FAT boundary crossed: " + j$2 + " 4 " + ssz);
				if (!sectors[addr]) break;
				j$2 = __readInt32LE(sectors[addr], jj);
			}
			return {
				nodes: buf,
				data: __toBuffer([buf_chain])
			};
		}
		/** Chase down the sector linked lists */
		function make_sector_list(sectors, dir_start, fat_addrs, ssz) {
			var sl = sectors.length, sector_list = [];
			var chkd = [], buf = [], buf_chain = [];
			var modulus = ssz - 1, i$8 = 0, j$2 = 0, k$2 = 0, jj = 0;
			for (i$8 = 0; i$8 < sl; ++i$8) {
				buf = [];
				k$2 = i$8 + dir_start;
				if (k$2 >= sl) k$2 -= sl;
				if (chkd[k$2]) continue;
				buf_chain = [];
				var seen = [];
				for (j$2 = k$2; j$2 >= 0;) {
					seen[j$2] = true;
					chkd[j$2] = true;
					buf[buf.length] = j$2;
					buf_chain.push(sectors[j$2]);
					var addr = fat_addrs[Math.floor(j$2 * 4 / ssz)];
					jj = j$2 * 4 & modulus;
					if (ssz < 4 + jj) throw new Error("FAT boundary crossed: " + j$2 + " 4 " + ssz);
					if (!sectors[addr]) break;
					j$2 = __readInt32LE(sectors[addr], jj);
					if (seen[j$2]) break;
				}
				sector_list[k$2] = {
					nodes: buf,
					data: __toBuffer([buf_chain])
				};
			}
			return sector_list;
		}
		function read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, mini) {
			var minifat_store = 0, pl = Paths.length ? 2 : 0;
			var sector = sector_list[dir_start].data;
			var i$8 = 0, namelen = 0, name;
			for (; i$8 < sector.length; i$8 += 128) {
				var blob = sector.slice(i$8, i$8 + 128);
				prep_blob(blob, 64);
				namelen = blob.read_shift(2);
				name = __utf16le(blob, 0, namelen - pl);
				Paths.push(name);
				var o$10 = {
					name,
					type: blob.read_shift(1),
					color: blob.read_shift(1),
					L: blob.read_shift(4, "i"),
					R: blob.read_shift(4, "i"),
					C: blob.read_shift(4, "i"),
					clsid: blob.read_shift(16),
					state: blob.read_shift(4, "i"),
					start: 0,
					size: 0
				};
				var ctime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);
				if (ctime !== 0) o$10.ct = read_date(blob, blob.l - 8);
				var mtime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);
				if (mtime !== 0) o$10.mt = read_date(blob, blob.l - 8);
				o$10.start = blob.read_shift(4, "i");
				o$10.size = blob.read_shift(4, "i");
				if (o$10.size < 0 && o$10.start < 0) {
					o$10.size = o$10.type = 0;
					o$10.start = ENDOFCHAIN;
					o$10.name = "";
				}
				if (o$10.type === 5) {
					minifat_store = o$10.start;
					if (nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = "!StreamData";
				} else if (o$10.size >= 4096) {
					o$10.storage = "fat";
					if (sector_list[o$10.start] === undefined) sector_list[o$10.start] = get_sector_list(sectors, o$10.start, sector_list.fat_addrs, sector_list.ssz);
					sector_list[o$10.start].name = o$10.name;
					o$10.content = sector_list[o$10.start].data.slice(0, o$10.size);
				} else {
					o$10.storage = "minifat";
					if (o$10.size < 0) o$10.size = 0;
					else if (minifat_store !== ENDOFCHAIN && o$10.start !== ENDOFCHAIN && sector_list[minifat_store]) {
						o$10.content = get_mfat_entry(o$10, sector_list[minifat_store].data, (sector_list[mini] || {}).data);
					}
				}
				if (o$10.content) prep_blob(o$10.content, 0);
				files[name] = o$10;
				FileIndex.push(o$10);
			}
		}
		function read_date(blob, offset) {
			return new Date((__readUInt32LE(blob, offset + 4) / 1e7 * Math.pow(2, 32) + __readUInt32LE(blob, offset) / 1e7 - 11644473600) * 1e3);
		}
		function read_file(filename$1, options) {
			get_fs();
			return parse(fs.readFileSync(filename$1), options);
		}
		function read(blob, options) {
			var type = options && options.type;
			if (!type) {
				if (has_buf && Buffer.isBuffer(blob)) type = "buffer";
			}
			switch (type || "base64") {
				case "file": return read_file(blob, options);
				case "base64": return parse(s2a(Base64_decode(blob)), options);
				case "binary": return parse(s2a(blob), options);
			}
			return parse(blob, options);
		}
		function init_cfb(cfb, opts) {
			var o$10 = opts || {}, root = o$10.root || "Root Entry";
			if (!cfb.FullPaths) cfb.FullPaths = [];
			if (!cfb.FileIndex) cfb.FileIndex = [];
			if (cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error("inconsistent CFB structure");
			if (cfb.FullPaths.length === 0) {
				cfb.FullPaths[0] = root + "/";
				cfb.FileIndex[0] = {
					name: root,
					type: 5
				};
			}
			if (o$10.CLSID) cfb.FileIndex[0].clsid = o$10.CLSID;
			seed_cfb(cfb);
		}
		function seed_cfb(cfb) {
			var nm = "Sh33tJ5";
			if (CFB.find(cfb, "/" + nm)) return;
			var p$3 = new_buf(4);
			p$3[0] = 55;
			p$3[1] = p$3[3] = 50;
			p$3[2] = 54;
			cfb.FileIndex.push({
				name: nm,
				type: 2,
				content: p$3,
				size: 4,
				L: 69,
				R: 69,
				C: 69
			});
			cfb.FullPaths.push(cfb.FullPaths[0] + nm);
			rebuild_cfb(cfb);
		}
		function rebuild_cfb(cfb, f$4) {
			init_cfb(cfb);
			var gc = false, s$5 = false;
			for (var i$8 = cfb.FullPaths.length - 1; i$8 >= 0; --i$8) {
				var _file = cfb.FileIndex[i$8];
				switch (_file.type) {
					case 0:
						if (s$5) gc = true;
						else {
							cfb.FileIndex.pop();
							cfb.FullPaths.pop();
						}
						break;
					case 1:
					case 2:
					case 5:
						s$5 = true;
						if (isNaN(_file.R * _file.L * _file.C)) gc = true;
						if (_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;
						break;
					default:
						gc = true;
						break;
				}
			}
			if (!gc && !f$4) return;
			var now = new Date(1987, 1, 19), j$2 = 0;
			var fullPaths = Object.create ? Object.create(null) : {};
			var data = [];
			for (i$8 = 0; i$8 < cfb.FullPaths.length; ++i$8) {
				fullPaths[cfb.FullPaths[i$8]] = true;
				if (cfb.FileIndex[i$8].type === 0) continue;
				data.push([cfb.FullPaths[i$8], cfb.FileIndex[i$8]]);
			}
			for (i$8 = 0; i$8 < data.length; ++i$8) {
				var dad = dirname(data[i$8][0]);
				s$5 = fullPaths[dad];
				while (!s$5) {
					while (dirname(dad) && !fullPaths[dirname(dad)]) dad = dirname(dad);
					data.push([dad, {
						name: filename(dad).replace("/", ""),
						type: 1,
						clsid: HEADER_CLSID,
						ct: now,
						mt: now,
						content: null
					}]);
					fullPaths[dad] = true;
					dad = dirname(data[i$8][0]);
					s$5 = fullPaths[dad];
				}
			}
			data.sort(function(x$2, y$3) {
				return namecmp(x$2[0], y$3[0]);
			});
			cfb.FullPaths = [];
			cfb.FileIndex = [];
			for (i$8 = 0; i$8 < data.length; ++i$8) {
				cfb.FullPaths[i$8] = data[i$8][0];
				cfb.FileIndex[i$8] = data[i$8][1];
			}
			for (i$8 = 0; i$8 < data.length; ++i$8) {
				var elt = cfb.FileIndex[i$8];
				var nm = cfb.FullPaths[i$8];
				elt.name = filename(nm).replace("/", "");
				elt.L = elt.R = elt.C = -(elt.color = 1);
				elt.size = elt.content ? elt.content.length : 0;
				elt.start = 0;
				elt.clsid = elt.clsid || HEADER_CLSID;
				if (i$8 === 0) {
					elt.C = data.length > 1 ? 1 : -1;
					elt.size = 0;
					elt.type = 5;
				} else if (nm.slice(-1) == "/") {
					for (j$2 = i$8 + 1; j$2 < data.length; ++j$2) if (dirname(cfb.FullPaths[j$2]) == nm) break;
					elt.C = j$2 >= data.length ? -1 : j$2;
					for (j$2 = i$8 + 1; j$2 < data.length; ++j$2) if (dirname(cfb.FullPaths[j$2]) == dirname(nm)) break;
					elt.R = j$2 >= data.length ? -1 : j$2;
					elt.type = 1;
				} else {
					if (dirname(cfb.FullPaths[i$8 + 1] || "") == dirname(nm)) elt.R = i$8 + 1;
					elt.type = 2;
				}
			}
		}
		function _write(cfb, options) {
			var _opts = options || {};
			if (_opts.fileType == "mad") return write_mad(cfb, _opts);
			rebuild_cfb(cfb);
			switch (_opts.fileType) {
				case "zip": return write_zip$1(cfb, _opts);
			}
			var L$2 = (function(cfb$1) {
				var mini_size = 0, fat_size = 0;
				for (var i$9 = 0; i$9 < cfb$1.FileIndex.length; ++i$9) {
					var file$1 = cfb$1.FileIndex[i$9];
					if (!file$1.content) continue;
					var flen$1 = file$1.content.length;
					if (flen$1 > 0) {
						if (flen$1 < 4096) mini_size += flen$1 + 63 >> 6;
						else fat_size += flen$1 + 511 >> 9;
					}
				}
				var dir_cnt = cfb$1.FullPaths.length + 3 >> 2;
				var mini_cnt = mini_size + 7 >> 3;
				var mfat_cnt = mini_size + 127 >> 7;
				var fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;
				var fat_cnt = fat_base + 127 >> 7;
				var difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt - 109) / 127);
				while (fat_base + fat_cnt + difat_cnt + 127 >> 7 > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt - 109) / 127);
				var L$3 = [
					1,
					difat_cnt,
					fat_cnt,
					mfat_cnt,
					dir_cnt,
					fat_size,
					mini_size,
					0
				];
				cfb$1.FileIndex[0].size = mini_size << 6;
				L$3[7] = (cfb$1.FileIndex[0].start = L$3[0] + L$3[1] + L$3[2] + L$3[3] + L$3[4] + L$3[5]) + (L$3[6] + 7 >> 3);
				return L$3;
			})(cfb);
			var o$10 = new_buf(L$2[7] << 9);
			var i$8 = 0, T$3 = 0;
			{
				for (i$8 = 0; i$8 < 8; ++i$8) o$10.write_shift(1, HEADER_SIG[i$8]);
				for (i$8 = 0; i$8 < 8; ++i$8) o$10.write_shift(2, 0);
				o$10.write_shift(2, 62);
				o$10.write_shift(2, 3);
				o$10.write_shift(2, 65534);
				o$10.write_shift(2, 9);
				o$10.write_shift(2, 6);
				for (i$8 = 0; i$8 < 3; ++i$8) o$10.write_shift(2, 0);
				o$10.write_shift(4, 0);
				o$10.write_shift(4, L$2[2]);
				o$10.write_shift(4, L$2[0] + L$2[1] + L$2[2] + L$2[3] - 1);
				o$10.write_shift(4, 0);
				o$10.write_shift(4, 1 << 12);
				o$10.write_shift(4, L$2[3] ? L$2[0] + L$2[1] + L$2[2] - 1 : ENDOFCHAIN);
				o$10.write_shift(4, L$2[3]);
				o$10.write_shift(-4, L$2[1] ? L$2[0] - 1 : ENDOFCHAIN);
				o$10.write_shift(4, L$2[1]);
				for (i$8 = 0; i$8 < 109; ++i$8) o$10.write_shift(-4, i$8 < L$2[2] ? L$2[1] + i$8 : -1);
			}
			if (L$2[1]) {
				for (T$3 = 0; T$3 < L$2[1]; ++T$3) {
					for (; i$8 < 236 + T$3 * 127; ++i$8) o$10.write_shift(-4, i$8 < L$2[2] ? L$2[1] + i$8 : -1);
					o$10.write_shift(-4, T$3 === L$2[1] - 1 ? ENDOFCHAIN : T$3 + 1);
				}
			}
			var chainit = function(w$2) {
				for (T$3 += w$2; i$8 < T$3 - 1; ++i$8) o$10.write_shift(-4, i$8 + 1);
				if (w$2) {
					++i$8;
					o$10.write_shift(-4, ENDOFCHAIN);
				}
			};
			T$3 = i$8 = 0;
			for (T$3 += L$2[1]; i$8 < T$3; ++i$8) o$10.write_shift(-4, consts.DIFSECT);
			for (T$3 += L$2[2]; i$8 < T$3; ++i$8) o$10.write_shift(-4, consts.FATSECT);
			chainit(L$2[3]);
			chainit(L$2[4]);
			var j$2 = 0, flen = 0;
			var file = cfb.FileIndex[0];
			for (; j$2 < cfb.FileIndex.length; ++j$2) {
				file = cfb.FileIndex[j$2];
				if (!file.content) continue;
				flen = file.content.length;
				if (flen < 4096) continue;
				file.start = T$3;
				chainit(flen + 511 >> 9);
			}
			chainit(L$2[6] + 7 >> 3);
			while (o$10.l & 511) o$10.write_shift(-4, consts.ENDOFCHAIN);
			T$3 = i$8 = 0;
			for (j$2 = 0; j$2 < cfb.FileIndex.length; ++j$2) {
				file = cfb.FileIndex[j$2];
				if (!file.content) continue;
				flen = file.content.length;
				if (!flen || flen >= 4096) continue;
				file.start = T$3;
				chainit(flen + 63 >> 6);
			}
			while (o$10.l & 511) o$10.write_shift(-4, consts.ENDOFCHAIN);
			for (i$8 = 0; i$8 < L$2[4] << 2; ++i$8) {
				var nm = cfb.FullPaths[i$8];
				if (!nm || nm.length === 0) {
					for (j$2 = 0; j$2 < 17; ++j$2) o$10.write_shift(4, 0);
					for (j$2 = 0; j$2 < 3; ++j$2) o$10.write_shift(4, -1);
					for (j$2 = 0; j$2 < 12; ++j$2) o$10.write_shift(4, 0);
					continue;
				}
				file = cfb.FileIndex[i$8];
				if (i$8 === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;
				var _nm = i$8 === 0 && _opts.root || file.name;
				if (_nm.length > 31) {
					console.error("Name " + _nm + " will be truncated to " + _nm.slice(0, 31));
					_nm = _nm.slice(0, 31);
				}
				flen = 2 * (_nm.length + 1);
				o$10.write_shift(64, _nm, "utf16le");
				o$10.write_shift(2, flen);
				o$10.write_shift(1, file.type);
				o$10.write_shift(1, file.color);
				o$10.write_shift(-4, file.L);
				o$10.write_shift(-4, file.R);
				o$10.write_shift(-4, file.C);
				if (!file.clsid) for (j$2 = 0; j$2 < 4; ++j$2) o$10.write_shift(4, 0);
				else o$10.write_shift(16, file.clsid, "hex");
				o$10.write_shift(4, file.state || 0);
				o$10.write_shift(4, 0);
				o$10.write_shift(4, 0);
				o$10.write_shift(4, 0);
				o$10.write_shift(4, 0);
				o$10.write_shift(4, file.start);
				o$10.write_shift(4, file.size);
				o$10.write_shift(4, 0);
			}
			for (i$8 = 1; i$8 < cfb.FileIndex.length; ++i$8) {
				file = cfb.FileIndex[i$8];
				if (file.size >= 4096) {
					o$10.l = file.start + 1 << 9;
					if (has_buf && Buffer.isBuffer(file.content)) {
						file.content.copy(o$10, o$10.l, 0, file.size);
						o$10.l += file.size + 511 & -512;
					} else {
						for (j$2 = 0; j$2 < file.size; ++j$2) o$10.write_shift(1, file.content[j$2]);
						for (; j$2 & 511; ++j$2) o$10.write_shift(1, 0);
					}
				}
			}
			for (i$8 = 1; i$8 < cfb.FileIndex.length; ++i$8) {
				file = cfb.FileIndex[i$8];
				if (file.size > 0 && file.size < 4096) {
					if (has_buf && Buffer.isBuffer(file.content)) {
						file.content.copy(o$10, o$10.l, 0, file.size);
						o$10.l += file.size + 63 & -64;
					} else {
						for (j$2 = 0; j$2 < file.size; ++j$2) o$10.write_shift(1, file.content[j$2]);
						for (; j$2 & 63; ++j$2) o$10.write_shift(1, 0);
					}
				}
			}
			if (has_buf) {
				o$10.l = o$10.length;
			} else {
				while (o$10.l < o$10.length) o$10.write_shift(1, 0);
			}
			return o$10;
		}
		function find(cfb, path$1) {
			var UCFullPaths = cfb.FullPaths.map(function(x$2) {
				return x$2.toUpperCase();
			});
			var UCPaths = UCFullPaths.map(function(x$2) {
				var y$3 = x$2.split("/");
				return y$3[y$3.length - (x$2.slice(-1) == "/" ? 2 : 1)];
			});
			var k$2 = false;
			if (path$1.charCodeAt(0) === 47) {
				k$2 = true;
				path$1 = UCFullPaths[0].slice(0, -1) + path$1;
			} else k$2 = path$1.indexOf("/") !== -1;
			var UCPath = path$1.toUpperCase();
			var w$2 = k$2 === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);
			if (w$2 !== -1) return cfb.FileIndex[w$2];
			var m$3 = !UCPath.match(chr1);
			UCPath = UCPath.replace(chr0, "");
			if (m$3) UCPath = UCPath.replace(chr1, "!");
			for (w$2 = 0; w$2 < UCFullPaths.length; ++w$2) {
				if ((m$3 ? UCFullPaths[w$2].replace(chr1, "!") : UCFullPaths[w$2]).replace(chr0, "") == UCPath) return cfb.FileIndex[w$2];
				if ((m$3 ? UCPaths[w$2].replace(chr1, "!") : UCPaths[w$2]).replace(chr0, "") == UCPath) return cfb.FileIndex[w$2];
			}
			return null;
		}
		/** CFB Constants */
		var MSSZ = 64;
		var ENDOFCHAIN = -2;
		var HEADER_SIGNATURE = "d0cf11e0a1b11ae1";
		var HEADER_SIG = [
			208,
			207,
			17,
			224,
			161,
			177,
			26,
			225
		];
		var HEADER_CLSID = "00000000000000000000000000000000";
		var consts = {
			MAXREGSECT: -6,
			DIFSECT: -4,
			FATSECT: -3,
			ENDOFCHAIN,
			FREESECT: -1,
			HEADER_SIGNATURE,
			HEADER_MINOR_VERSION: "3e00",
			MAXREGSID: -6,
			NOSTREAM: -1,
			HEADER_CLSID,
			EntryTypes: [
				"unknown",
				"storage",
				"stream",
				"lockbytes",
				"property",
				"root"
			]
		};
		function write_file(cfb, filename$1, options) {
			get_fs();
			var o$10 = _write(cfb, options);
			fs.writeFileSync(filename$1, o$10);
		}
		function a2s$1(o$10) {
			var out = new Array(o$10.length);
			for (var i$8 = 0; i$8 < o$10.length; ++i$8) out[i$8] = String.fromCharCode(o$10[i$8]);
			return out.join("");
		}
		function write(cfb, options) {
			var o$10 = _write(cfb, options);
			switch (options && options.type || "buffer") {
				case "file":
					get_fs();
					fs.writeFileSync(options.filename, o$10);
					return o$10;
				case "binary": return typeof o$10 == "string" ? o$10 : a2s$1(o$10);
				case "base64": return Base64_encode(typeof o$10 == "string" ? o$10 : a2s$1(o$10));
				case "buffer": if (has_buf) return Buffer.isBuffer(o$10) ? o$10 : Buffer_from(o$10);
				case "array": return typeof o$10 == "string" ? s2a(o$10) : o$10;
			}
			return o$10;
		}
		var _zlib;
		function use_zlib(zlib) {
			try {
				var InflateRaw = zlib.InflateRaw;
				var InflRaw = new InflateRaw();
				InflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);
				if (InflRaw.bytesRead) _zlib = zlib;
				else throw new Error("zlib does not expose bytesRead");
			} catch (e$10) {
				console.error("cannot use native zlib: " + (e$10.message || e$10));
			}
		}
		function _inflateRawSync(payload, usz) {
			if (!_zlib) return _inflate(payload, usz);
			var InflateRaw = _zlib.InflateRaw;
			var InflRaw = new InflateRaw();
			var out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);
			payload.l += InflRaw.bytesRead;
			return out;
		}
		function _deflateRawSync(payload) {
			return _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);
		}
		var CLEN_ORDER = [
			16,
			17,
			18,
			0,
			8,
			7,
			9,
			6,
			10,
			5,
			11,
			4,
			12,
			3,
			13,
			2,
			14,
			1,
			15
		];
		var LEN_LN = [
			3,
			4,
			5,
			6,
			7,
			8,
			9,
			10,
			11,
			13,
			15,
			17,
			19,
			23,
			27,
			31,
			35,
			43,
			51,
			59,
			67,
			83,
			99,
			115,
			131,
			163,
			195,
			227,
			258
		];
		var DST_LN = [
			1,
			2,
			3,
			4,
			5,
			7,
			9,
			13,
			17,
			25,
			33,
			49,
			65,
			97,
			129,
			193,
			257,
			385,
			513,
			769,
			1025,
			1537,
			2049,
			3073,
			4097,
			6145,
			8193,
			12289,
			16385,
			24577
		];
		function bit_swap_8(n$9) {
			var t$6 = (n$9 << 1 | n$9 << 11) & 139536 | (n$9 << 5 | n$9 << 15) & 558144;
			return (t$6 >> 16 | t$6 >> 8 | t$6) & 255;
		}
		var use_typed_arrays = typeof Uint8Array !== "undefined";
		var bitswap8 = use_typed_arrays ? new Uint8Array(1 << 8) : [];
		for (var q$2 = 0; q$2 < 1 << 8; ++q$2) bitswap8[q$2] = bit_swap_8(q$2);
		function bit_swap_n(n$9, b$3) {
			var rev = bitswap8[n$9 & 255];
			if (b$3 <= 8) return rev >>> 8 - b$3;
			rev = rev << 8 | bitswap8[n$9 >> 8 & 255];
			if (b$3 <= 16) return rev >>> 16 - b$3;
			rev = rev << 8 | bitswap8[n$9 >> 16 & 255];
			return rev >>> 24 - b$3;
		}
		function read_bits_2(buf, bl) {
			var w$2 = bl & 7, h$5 = bl >>> 3;
			return (buf[h$5] | (w$2 <= 6 ? 0 : buf[h$5 + 1] << 8)) >>> w$2 & 3;
		}
		function read_bits_3(buf, bl) {
			var w$2 = bl & 7, h$5 = bl >>> 3;
			return (buf[h$5] | (w$2 <= 5 ? 0 : buf[h$5 + 1] << 8)) >>> w$2 & 7;
		}
		function read_bits_4(buf, bl) {
			var w$2 = bl & 7, h$5 = bl >>> 3;
			return (buf[h$5] | (w$2 <= 4 ? 0 : buf[h$5 + 1] << 8)) >>> w$2 & 15;
		}
		function read_bits_5(buf, bl) {
			var w$2 = bl & 7, h$5 = bl >>> 3;
			return (buf[h$5] | (w$2 <= 3 ? 0 : buf[h$5 + 1] << 8)) >>> w$2 & 31;
		}
		function read_bits_7(buf, bl) {
			var w$2 = bl & 7, h$5 = bl >>> 3;
			return (buf[h$5] | (w$2 <= 1 ? 0 : buf[h$5 + 1] << 8)) >>> w$2 & 127;
		}
		function read_bits_n(buf, bl, n$9) {
			var w$2 = bl & 7, h$5 = bl >>> 3, f$4 = (1 << n$9) - 1;
			var v$3 = buf[h$5] >>> w$2;
			if (n$9 < 8 - w$2) return v$3 & f$4;
			v$3 |= buf[h$5 + 1] << 8 - w$2;
			if (n$9 < 16 - w$2) return v$3 & f$4;
			v$3 |= buf[h$5 + 2] << 16 - w$2;
			if (n$9 < 24 - w$2) return v$3 & f$4;
			v$3 |= buf[h$5 + 3] << 24 - w$2;
			return v$3 & f$4;
		}
		function write_bits_3(buf, bl, v$3) {
			var w$2 = bl & 7, h$5 = bl >>> 3;
			if (w$2 <= 5) buf[h$5] |= (v$3 & 7) << w$2;
			else {
				buf[h$5] |= v$3 << w$2 & 255;
				buf[h$5 + 1] = (v$3 & 7) >> 8 - w$2;
			}
			return bl + 3;
		}
		function write_bits_1(buf, bl, v$3) {
			var w$2 = bl & 7, h$5 = bl >>> 3;
			v$3 = (v$3 & 1) << w$2;
			buf[h$5] |= v$3;
			return bl + 1;
		}
		function write_bits_8(buf, bl, v$3) {
			var w$2 = bl & 7, h$5 = bl >>> 3;
			v$3 <<= w$2;
			buf[h$5] |= v$3 & 255;
			v$3 >>>= 8;
			buf[h$5 + 1] = v$3;
			return bl + 8;
		}
		function write_bits_16(buf, bl, v$3) {
			var w$2 = bl & 7, h$5 = bl >>> 3;
			v$3 <<= w$2;
			buf[h$5] |= v$3 & 255;
			v$3 >>>= 8;
			buf[h$5 + 1] = v$3 & 255;
			buf[h$5 + 2] = v$3 >>> 8;
			return bl + 16;
		}
		function realloc(b$3, sz) {
			var L$2 = b$3.length, M$3 = 2 * L$2 > sz ? 2 * L$2 : sz + 5, i$8 = 0;
			if (L$2 >= sz) return b$3;
			if (has_buf) {
				var o$10 = new_unsafe_buf(M$3);
				if (b$3.copy) b$3.copy(o$10);
				else for (; i$8 < b$3.length; ++i$8) o$10[i$8] = b$3[i$8];
				return o$10;
			} else if (use_typed_arrays) {
				var a$2 = new Uint8Array(M$3);
				if (a$2.set) a$2.set(b$3);
				else for (; i$8 < L$2; ++i$8) a$2[i$8] = b$3[i$8];
				return a$2;
			}
			b$3.length = M$3;
			return b$3;
		}
		function zero_fill_array(n$9) {
			var o$10 = new Array(n$9);
			for (var i$8 = 0; i$8 < n$9; ++i$8) o$10[i$8] = 0;
			return o$10;
		}
		function build_tree(clens, cmap, MAX) {
			var maxlen = 1, w$2 = 0, i$8 = 0, j$2 = 0, ccode = 0, L$2 = clens.length;
			var bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);
			for (i$8 = 0; i$8 < 32; ++i$8) bl_count[i$8] = 0;
			for (i$8 = L$2; i$8 < MAX; ++i$8) clens[i$8] = 0;
			L$2 = clens.length;
			var ctree = use_typed_arrays ? new Uint16Array(L$2) : zero_fill_array(L$2);
			for (i$8 = 0; i$8 < L$2; ++i$8) {
				bl_count[w$2 = clens[i$8]]++;
				if (maxlen < w$2) maxlen = w$2;
				ctree[i$8] = 0;
			}
			bl_count[0] = 0;
			for (i$8 = 1; i$8 <= maxlen; ++i$8) bl_count[i$8 + 16] = ccode = ccode + bl_count[i$8 - 1] << 1;
			for (i$8 = 0; i$8 < L$2; ++i$8) {
				ccode = clens[i$8];
				if (ccode != 0) ctree[i$8] = bl_count[ccode + 16]++;
			}
			var cleni = 0;
			for (i$8 = 0; i$8 < L$2; ++i$8) {
				cleni = clens[i$8];
				if (cleni != 0) {
					ccode = bit_swap_n(ctree[i$8], maxlen) >> maxlen - cleni;
					for (j$2 = (1 << maxlen + 4 - cleni) - 1; j$2 >= 0; --j$2) cmap[ccode | j$2 << cleni] = cleni & 15 | i$8 << 4;
				}
			}
			return maxlen;
		}
		var fix_lmap = use_typed_arrays ? new Uint16Array(512) : zero_fill_array(512);
		var fix_dmap = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);
		if (!use_typed_arrays) {
			for (var i$7 = 0; i$7 < 512; ++i$7) fix_lmap[i$7] = 0;
			for (i$7 = 0; i$7 < 32; ++i$7) fix_dmap[i$7] = 0;
		}
		(function() {
			var dlens = [];
			var i$8 = 0;
			for (; i$8 < 32; i$8++) dlens.push(5);
			build_tree(dlens, fix_dmap, 32);
			var clens = [];
			i$8 = 0;
			for (; i$8 <= 143; i$8++) clens.push(8);
			for (; i$8 <= 255; i$8++) clens.push(9);
			for (; i$8 <= 279; i$8++) clens.push(7);
			for (; i$8 <= 287; i$8++) clens.push(8);
			build_tree(clens, fix_lmap, 288);
		})();
		var _deflateRaw = /* @__PURE__ */ (function _deflateRawIIFE() {
			var DST_LN_RE = use_typed_arrays ? new Uint8Array(32768) : [];
			var j$2 = 0, k$2 = 0;
			for (; j$2 < DST_LN.length - 1; ++j$2) {
				for (; k$2 < DST_LN[j$2 + 1]; ++k$2) DST_LN_RE[k$2] = j$2;
			}
			for (; k$2 < 32768; ++k$2) DST_LN_RE[k$2] = 29;
			var LEN_LN_RE = use_typed_arrays ? new Uint8Array(259) : [];
			for (j$2 = 0, k$2 = 0; j$2 < LEN_LN.length - 1; ++j$2) {
				for (; k$2 < LEN_LN[j$2 + 1]; ++k$2) LEN_LN_RE[k$2] = j$2;
			}
			function write_stored(data, out) {
				var boff = 0;
				while (boff < data.length) {
					var L$2 = Math.min(65535, data.length - boff);
					var h$5 = boff + L$2 == data.length;
					out.write_shift(1, +h$5);
					out.write_shift(2, L$2);
					out.write_shift(2, ~L$2 & 65535);
					while (L$2-- > 0) out[out.l++] = data[boff++];
				}
				return out.l;
			}
			function write_huff_fixed(data, out) {
				var bl = 0;
				var boff = 0;
				var addrs = use_typed_arrays ? new Uint16Array(32768) : [];
				while (boff < data.length) {
					var L$2 = Math.min(65535, data.length - boff);
					if (L$2 < 10) {
						bl = write_bits_3(out, bl, +!!(boff + L$2 == data.length));
						if (bl & 7) bl += 8 - (bl & 7);
						out.l = bl / 8 | 0;
						out.write_shift(2, L$2);
						out.write_shift(2, ~L$2 & 65535);
						while (L$2-- > 0) out[out.l++] = data[boff++];
						bl = out.l * 8;
						continue;
					}
					bl = write_bits_3(out, bl, +!!(boff + L$2 == data.length) + 2);
					var hash = 0;
					while (L$2-- > 0) {
						var d$5 = data[boff];
						hash = (hash << 5 ^ d$5) & 32767;
						var match = -1, mlen = 0;
						if (match = addrs[hash]) {
							match |= boff & ~32767;
							if (match > boff) match -= 32768;
							if (match < boff) while (data[match + mlen] == data[boff + mlen] && mlen < 250) ++mlen;
						}
						if (mlen > 2) {
							d$5 = LEN_LN_RE[mlen];
							if (d$5 <= 22) bl = write_bits_8(out, bl, bitswap8[d$5 + 1] >> 1) - 1;
							else {
								write_bits_8(out, bl, 3);
								bl += 5;
								write_bits_8(out, bl, bitswap8[d$5 - 23] >> 5);
								bl += 3;
							}
							var len_eb = d$5 < 8 ? 0 : d$5 - 4 >> 2;
							if (len_eb > 0) {
								write_bits_16(out, bl, mlen - LEN_LN[d$5]);
								bl += len_eb;
							}
							d$5 = DST_LN_RE[boff - match];
							bl = write_bits_8(out, bl, bitswap8[d$5] >> 3);
							bl -= 3;
							var dst_eb = d$5 < 4 ? 0 : d$5 - 2 >> 1;
							if (dst_eb > 0) {
								write_bits_16(out, bl, boff - match - DST_LN[d$5]);
								bl += dst_eb;
							}
							for (var q$3 = 0; q$3 < mlen; ++q$3) {
								addrs[hash] = boff & 32767;
								hash = (hash << 5 ^ data[boff]) & 32767;
								++boff;
							}
							L$2 -= mlen - 1;
						} else {
							if (d$5 <= 143) d$5 = d$5 + 48;
							else bl = write_bits_1(out, bl, 1);
							bl = write_bits_8(out, bl, bitswap8[d$5]);
							addrs[hash] = boff & 32767;
							++boff;
						}
					}
					bl = write_bits_8(out, bl, 0) - 1;
				}
				out.l = (bl + 7) / 8 | 0;
				return out.l;
			}
			return function _deflateRaw$1(data, out) {
				if (data.length < 8) return write_stored(data, out);
				return write_huff_fixed(data, out);
			};
		})();
		function _deflate(data) {
			var buf = new_buf(50 + Math.floor(data.length * 1.1));
			var off = _deflateRaw(data, buf);
			return buf.slice(0, off);
		}
		var dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);
		var dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);
		var dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);
		var dyn_len_1 = 1, dyn_len_2 = 1;
		function dyn(data, boff) {
			var _HLIT = read_bits_5(data, boff) + 257;
			boff += 5;
			var _HDIST = read_bits_5(data, boff) + 1;
			boff += 5;
			var _HCLEN = read_bits_4(data, boff) + 4;
			boff += 4;
			var w$2 = 0;
			var clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);
			var ctree = [
				0,
				0,
				0,
				0,
				0,
				0,
				0,
				0,
				0,
				0,
				0,
				0,
				0,
				0,
				0,
				0,
				0,
				0,
				0
			];
			var maxlen = 1;
			var bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);
			var next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);
			var L$2 = clens.length;
			for (var i$8 = 0; i$8 < _HCLEN; ++i$8) {
				clens[CLEN_ORDER[i$8]] = w$2 = read_bits_3(data, boff);
				if (maxlen < w$2) maxlen = w$2;
				bl_count[w$2]++;
				boff += 3;
			}
			var ccode = 0;
			bl_count[0] = 0;
			for (i$8 = 1; i$8 <= maxlen; ++i$8) next_code[i$8] = ccode = ccode + bl_count[i$8 - 1] << 1;
			for (i$8 = 0; i$8 < L$2; ++i$8) if ((ccode = clens[i$8]) != 0) ctree[i$8] = next_code[ccode]++;
			var cleni = 0;
			for (i$8 = 0; i$8 < L$2; ++i$8) {
				cleni = clens[i$8];
				if (cleni != 0) {
					ccode = bitswap8[ctree[i$8]] >> 8 - cleni;
					for (var j$2 = (1 << 7 - cleni) - 1; j$2 >= 0; --j$2) dyn_cmap[ccode | j$2 << cleni] = cleni & 7 | i$8 << 3;
				}
			}
			var hcodes = [];
			maxlen = 1;
			for (; hcodes.length < _HLIT + _HDIST;) {
				ccode = dyn_cmap[read_bits_7(data, boff)];
				boff += ccode & 7;
				switch (ccode >>>= 3) {
					case 16:
						w$2 = 3 + read_bits_2(data, boff);
						boff += 2;
						ccode = hcodes[hcodes.length - 1];
						while (w$2-- > 0) hcodes.push(ccode);
						break;
					case 17:
						w$2 = 3 + read_bits_3(data, boff);
						boff += 3;
						while (w$2-- > 0) hcodes.push(0);
						break;
					case 18:
						w$2 = 11 + read_bits_7(data, boff);
						boff += 7;
						while (w$2-- > 0) hcodes.push(0);
						break;
					default:
						hcodes.push(ccode);
						if (maxlen < ccode) maxlen = ccode;
						break;
				}
			}
			var h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);
			for (i$8 = _HLIT; i$8 < 286; ++i$8) h1[i$8] = 0;
			for (i$8 = _HDIST; i$8 < 30; ++i$8) h2[i$8] = 0;
			dyn_len_1 = build_tree(h1, dyn_lmap, 286);
			dyn_len_2 = build_tree(h2, dyn_dmap, 30);
			return boff;
		}
		function inflate(data, usz) {
			if (data[0] == 3 && !(data[1] & 3)) {
				return [new_raw_buf(usz), 2];
			}
			var boff = 0;
			var header = 0;
			var outbuf = new_unsafe_buf(usz ? usz : 1 << 18);
			var woff = 0;
			var OL = outbuf.length >>> 0;
			var max_len_1 = 0, max_len_2 = 0;
			while ((header & 1) == 0) {
				header = read_bits_3(data, boff);
				boff += 3;
				if (header >>> 1 == 0) {
					if (boff & 7) boff += 8 - (boff & 7);
					var sz = data[boff >>> 3] | data[(boff >>> 3) + 1] << 8;
					boff += 32;
					if (sz > 0) {
						if (!usz && OL < woff + sz) {
							outbuf = realloc(outbuf, woff + sz);
							OL = outbuf.length;
						}
						while (sz-- > 0) {
							outbuf[woff++] = data[boff >>> 3];
							boff += 8;
						}
					}
					continue;
				} else if (header >> 1 == 1) {
					max_len_1 = 9;
					max_len_2 = 5;
				} else {
					boff = dyn(data, boff);
					max_len_1 = dyn_len_1;
					max_len_2 = dyn_len_2;
				}
				for (;;) {
					if (!usz && OL < woff + 32767) {
						outbuf = realloc(outbuf, woff + 32767);
						OL = outbuf.length;
					}
					var bits = read_bits_n(data, boff, max_len_1);
					var code = header >>> 1 == 1 ? fix_lmap[bits] : dyn_lmap[bits];
					boff += code & 15;
					code >>>= 4;
					if ((code >>> 8 & 255) === 0) outbuf[woff++] = code;
					else if (code == 256) break;
					else {
						code -= 257;
						var len_eb = code < 8 ? 0 : code - 4 >> 2;
						if (len_eb > 5) len_eb = 0;
						var tgt = woff + LEN_LN[code];
						if (len_eb > 0) {
							tgt += read_bits_n(data, boff, len_eb);
							boff += len_eb;
						}
						bits = read_bits_n(data, boff, max_len_2);
						code = header >>> 1 == 1 ? fix_dmap[bits] : dyn_dmap[bits];
						boff += code & 15;
						code >>>= 4;
						var dst_eb = code < 4 ? 0 : code - 2 >> 1;
						var dst = DST_LN[code];
						if (dst_eb > 0) {
							dst += read_bits_n(data, boff, dst_eb);
							boff += dst_eb;
						}
						if (!usz && OL < tgt) {
							outbuf = realloc(outbuf, tgt + 100);
							OL = outbuf.length;
						}
						while (woff < tgt) {
							outbuf[woff] = outbuf[woff - dst];
							++woff;
						}
					}
				}
			}
			if (usz) return [outbuf, boff + 7 >>> 3];
			return [outbuf.slice(0, woff), boff + 7 >>> 3];
		}
		function _inflate(payload, usz) {
			var data = payload.slice(payload.l || 0);
			var out = inflate(data, usz);
			payload.l += out[1];
			return out[0];
		}
		function warn_or_throw(wrn, msg) {
			if (wrn) {
				if (typeof console !== "undefined") console.error(msg);
			} else throw new Error(msg);
		}
		function parse_zip$1(file, options) {
			var blob = file;
			prep_blob(blob, 0);
			var FileIndex = [], FullPaths = [];
			var o$10 = {
				FileIndex,
				FullPaths
			};
			init_cfb(o$10, { root: options.root });
			var i$8 = blob.length - 4;
			while ((blob[i$8] != 80 || blob[i$8 + 1] != 75 || blob[i$8 + 2] != 5 || blob[i$8 + 3] != 6) && i$8 >= 0) --i$8;
			blob.l = i$8 + 4;
			blob.l += 4;
			var fcnt = blob.read_shift(2);
			blob.l += 6;
			var start_cd = blob.read_shift(4);
			blob.l = start_cd;
			for (i$8 = 0; i$8 < fcnt; ++i$8) {
				blob.l += 20;
				var csz = blob.read_shift(4);
				var usz = blob.read_shift(4);
				var namelen = blob.read_shift(2);
				var efsz = blob.read_shift(2);
				var fcsz = blob.read_shift(2);
				blob.l += 8;
				var offset = blob.read_shift(4);
				var EF = parse_extra_field(blob.slice(blob.l + namelen, blob.l + namelen + efsz));
				blob.l += namelen + efsz + fcsz;
				var L$2 = blob.l;
				blob.l = offset + 4;
				if (EF && EF[1]) {
					if ((EF[1] || {}).usz) usz = EF[1].usz;
					if ((EF[1] || {}).csz) csz = EF[1].csz;
				}
				parse_local_file(blob, csz, usz, o$10, EF);
				blob.l = L$2;
			}
			return o$10;
		}
		function parse_local_file(blob, csz, usz, o$10, EF) {
			blob.l += 2;
			var flags = blob.read_shift(2);
			var meth = blob.read_shift(2);
			var date = parse_dos_date(blob);
			if (flags & 8257) throw new Error("Unsupported ZIP encryption");
			var crc32 = blob.read_shift(4);
			var _csz = blob.read_shift(4);
			var _usz = blob.read_shift(4);
			var namelen = blob.read_shift(2);
			var efsz = blob.read_shift(2);
			var name = "";
			for (var i$8 = 0; i$8 < namelen; ++i$8) name += String.fromCharCode(blob[blob.l++]);
			if (efsz) {
				var ef = parse_extra_field(blob.slice(blob.l, blob.l + efsz));
				if ((ef[21589] || {}).mt) date = ef[21589].mt;
				if ((ef[1] || {}).usz) _usz = ef[1].usz;
				if ((ef[1] || {}).csz) _csz = ef[1].csz;
				if (EF) {
					if ((EF[21589] || {}).mt) date = EF[21589].mt;
					if ((EF[1] || {}).usz) _usz = EF[1].usz;
					if ((EF[1] || {}).csz) _csz = EF[1].csz;
				}
			}
			blob.l += efsz;
			var data = blob.slice(blob.l, blob.l + _csz);
			switch (meth) {
				case 8:
					data = _inflateRawSync(blob, _usz);
					break;
				case 0:
					blob.l += _csz;
					break;
				default: throw new Error("Unsupported ZIP Compression method " + meth);
			}
			var wrn = false;
			if (flags & 8) {
				crc32 = blob.read_shift(4);
				if (crc32 == 134695760) {
					crc32 = blob.read_shift(4);
					wrn = true;
				}
				_csz = blob.read_shift(4);
				_usz = blob.read_shift(4);
			}
			if (_csz != csz) warn_or_throw(wrn, "Bad compressed size: " + csz + " != " + _csz);
			if (_usz != usz) warn_or_throw(wrn, "Bad uncompressed size: " + usz + " != " + _usz);
			cfb_add(o$10, name, data, {
				unsafe: true,
				mt: date
			});
		}
		function write_zip$1(cfb, options) {
			var _opts = options || {};
			var out = [], cdirs = [];
			var o$10 = new_buf(1);
			var method = _opts.compression ? 8 : 0, flags = 0;
			var desc = false;
			if (desc) flags |= 8;
			var i$8 = 0, j$2 = 0;
			var start_cd = 0, fcnt = 0;
			var root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];
			var crcs = [];
			var sz_cd = 0;
			for (i$8 = 1; i$8 < cfb.FullPaths.length; ++i$8) {
				fp = cfb.FullPaths[i$8].slice(root.length);
				fi = cfb.FileIndex[i$8];
				if (!fi.size || !fi.content || Array.isArray(fi.content) && fi.content.length == 0 || fp == "Sh33tJ5") continue;
				var start = start_cd;
				var namebuf = new_buf(fp.length);
				for (j$2 = 0; j$2 < fp.length; ++j$2) namebuf.write_shift(1, fp.charCodeAt(j$2) & 127);
				namebuf = namebuf.slice(0, namebuf.l);
				crcs[fcnt] = typeof fi.content == "string" ? CRC32.bstr(fi.content, 0) : CRC32.buf(fi.content, 0);
				var outbuf = typeof fi.content == "string" ? s2a(fi.content) : fi.content;
				if (method == 8) outbuf = _deflateRawSync(outbuf);
				o$10 = new_buf(30);
				o$10.write_shift(4, 67324752);
				o$10.write_shift(2, 20);
				o$10.write_shift(2, flags);
				o$10.write_shift(2, method);
				if (fi.mt) write_dos_date(o$10, fi.mt);
				else o$10.write_shift(4, 0);
				o$10.write_shift(-4, flags & 8 ? 0 : crcs[fcnt]);
				o$10.write_shift(4, flags & 8 ? 0 : outbuf.length);
				o$10.write_shift(4, flags & 8 ? 0 : fi.content.length);
				o$10.write_shift(2, namebuf.length);
				o$10.write_shift(2, 0);
				start_cd += o$10.length;
				out.push(o$10);
				start_cd += namebuf.length;
				out.push(namebuf);
				start_cd += outbuf.length;
				out.push(outbuf);
				if (flags & 8) {
					o$10 = new_buf(12);
					o$10.write_shift(-4, crcs[fcnt]);
					o$10.write_shift(4, outbuf.length);
					o$10.write_shift(4, fi.content.length);
					start_cd += o$10.l;
					out.push(o$10);
				}
				o$10 = new_buf(46);
				o$10.write_shift(4, 33639248);
				o$10.write_shift(2, 0);
				o$10.write_shift(2, 20);
				o$10.write_shift(2, flags);
				o$10.write_shift(2, method);
				o$10.write_shift(4, 0);
				o$10.write_shift(-4, crcs[fcnt]);
				o$10.write_shift(4, outbuf.length);
				o$10.write_shift(4, fi.content.length);
				o$10.write_shift(2, namebuf.length);
				o$10.write_shift(2, 0);
				o$10.write_shift(2, 0);
				o$10.write_shift(2, 0);
				o$10.write_shift(2, 0);
				o$10.write_shift(4, 0);
				o$10.write_shift(4, start);
				sz_cd += o$10.l;
				cdirs.push(o$10);
				sz_cd += namebuf.length;
				cdirs.push(namebuf);
				++fcnt;
			}
			o$10 = new_buf(22);
			o$10.write_shift(4, 101010256);
			o$10.write_shift(2, 0);
			o$10.write_shift(2, 0);
			o$10.write_shift(2, fcnt);
			o$10.write_shift(2, fcnt);
			o$10.write_shift(4, sz_cd);
			o$10.write_shift(4, start_cd);
			o$10.write_shift(2, 0);
			return bconcat([
				bconcat(out),
				bconcat(cdirs),
				o$10
			]);
		}
		var ContentTypeMap = {
			"htm": "text/html",
			"xml": "text/xml",
			"gif": "image/gif",
			"jpg": "image/jpeg",
			"png": "image/png",
			"mso": "application/x-mso",
			"thmx": "application/vnd.ms-officetheme",
			"sh33tj5": "application/octet-stream"
		};
		function get_content_type(fi, fp) {
			if (fi.ctype) return fi.ctype;
			var ext = fi.name || "", m$3 = ext.match(/\.([^\.]+)$/);
			if (m$3 && ContentTypeMap[m$3[1]]) return ContentTypeMap[m$3[1]];
			if (fp) {
				m$3 = (ext = fp).match(/[\.\\]([^\.\\])+$/);
				if (m$3 && ContentTypeMap[m$3[1]]) return ContentTypeMap[m$3[1]];
			}
			return "application/octet-stream";
		}
		function write_base64_76(bstr) {
			var data = Base64_encode(bstr);
			var o$10 = [];
			for (var i$8 = 0; i$8 < data.length; i$8 += 76) o$10.push(data.slice(i$8, i$8 + 76));
			return o$10.join("\r\n") + "\r\n";
		}
		function write_quoted_printable(text$2) {
			var encoded = text$2.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7E-\xFF=]/g, function(c$7) {
				var w$2 = c$7.charCodeAt(0).toString(16).toUpperCase();
				return "=" + (w$2.length == 1 ? "0" + w$2 : w$2);
			});
			encoded = encoded.replace(/ $/gm, "=20").replace(/\t$/gm, "=09");
			if (encoded.charAt(0) == "\n") encoded = "=0D" + encoded.slice(1);
			encoded = encoded.replace(/\r(?!\n)/gm, "=0D").replace(/\n\n/gm, "\n=0A").replace(/([^\r\n])\n/gm, "$1=0A");
			var o$10 = [], split = encoded.split("\r\n");
			for (var si = 0; si < split.length; ++si) {
				var str = split[si];
				if (str.length == 0) {
					o$10.push("");
					continue;
				}
				for (var i$8 = 0; i$8 < str.length;) {
					var end = 76;
					var tmp = str.slice(i$8, i$8 + end);
					if (tmp.charAt(end - 1) == "=") end--;
					else if (tmp.charAt(end - 2) == "=") end -= 2;
					else if (tmp.charAt(end - 3) == "=") end -= 3;
					tmp = str.slice(i$8, i$8 + end);
					i$8 += end;
					if (i$8 < str.length) tmp += "=";
					o$10.push(tmp);
				}
			}
			return o$10.join("\r\n");
		}
		function parse_quoted_printable(data) {
			var o$10 = [];
			for (var di = 0; di < data.length; ++di) {
				var line = data[di];
				while (di <= data.length && line.charAt(line.length - 1) == "=") line = line.slice(0, line.length - 1) + data[++di];
				o$10.push(line);
			}
			for (var oi = 0; oi < o$10.length; ++oi) o$10[oi] = o$10[oi].replace(/[=][0-9A-Fa-f]{2}/g, function($$) {
				return String.fromCharCode(parseInt($$.slice(1), 16));
			});
			return s2a(o$10.join("\r\n"));
		}
		function parse_mime(cfb, data, root) {
			var fname = "", cte = "", ctype = "", fdata;
			var di = 0;
			for (; di < 10; ++di) {
				var line = data[di];
				if (!line || line.match(/^\s*$/)) break;
				var m$3 = line.match(/^([^:]*?):\s*([^\s].*)$/);
				if (m$3) switch (m$3[1].toLowerCase()) {
					case "content-location":
						fname = m$3[2].trim();
						break;
					case "content-type":
						ctype = m$3[2].trim();
						break;
					case "content-transfer-encoding":
						cte = m$3[2].trim();
						break;
				}
			}
			++di;
			switch (cte.toLowerCase()) {
				case "base64":
					fdata = s2a(Base64_decode(data.slice(di).join("")));
					break;
				case "quoted-printable":
					fdata = parse_quoted_printable(data.slice(di));
					break;
				default: throw new Error("Unsupported Content-Transfer-Encoding " + cte);
			}
			var file = cfb_add(cfb, fname.slice(root.length), fdata, { unsafe: true });
			if (ctype) file.ctype = ctype;
		}
		function parse_mad(file, options) {
			if (a2s$1(file.slice(0, 13)).toLowerCase() != "mime-version:") throw new Error("Unsupported MAD header");
			var root = options && options.root || "";
			var data = (has_buf && Buffer.isBuffer(file) ? file.toString("binary") : a2s$1(file)).split("\r\n");
			var di = 0, row = "";
			for (di = 0; di < data.length; ++di) {
				row = data[di];
				if (!/^Content-Location:/i.test(row)) continue;
				row = row.slice(row.indexOf("file"));
				if (!root) root = row.slice(0, row.lastIndexOf("/") + 1);
				if (row.slice(0, root.length) == root) continue;
				while (root.length > 0) {
					root = root.slice(0, root.length - 1);
					root = root.slice(0, root.lastIndexOf("/") + 1);
					if (row.slice(0, root.length) == root) break;
				}
			}
			var mboundary = (data[1] || "").match(/boundary="(.*?)"/);
			if (!mboundary) throw new Error("MAD cannot find boundary");
			var boundary = "--" + (mboundary[1] || "");
			var FileIndex = [], FullPaths = [];
			var o$10 = {
				FileIndex,
				FullPaths
			};
			init_cfb(o$10);
			var start_di, fcnt = 0;
			for (di = 0; di < data.length; ++di) {
				var line = data[di];
				if (line !== boundary && line !== boundary + "--") continue;
				if (fcnt++) parse_mime(o$10, data.slice(start_di, di), root);
				start_di = di;
			}
			return o$10;
		}
		function write_mad(cfb, options) {
			var opts = options || {};
			var boundary = opts.boundary || "SheetJS";
			boundary = "------=" + boundary;
			var out = [
				"MIME-Version: 1.0",
				"Content-Type: multipart/related; boundary=\"" + boundary.slice(2) + "\"",
				"",
				"",
				""
			];
			var root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];
			for (var i$8 = 1; i$8 < cfb.FullPaths.length; ++i$8) {
				fp = cfb.FullPaths[i$8].slice(root.length);
				fi = cfb.FileIndex[i$8];
				if (!fi.size || !fi.content || fp == "Sh33tJ5") continue;
				fp = fp.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7E-\xFF]/g, function(c$7) {
					return "_x" + c$7.charCodeAt(0).toString(16) + "_";
				}).replace(/[\u0080-\uFFFF]/g, function(u$4) {
					return "_u" + u$4.charCodeAt(0).toString(16) + "_";
				});
				var ca = fi.content;
				var cstr = has_buf && Buffer.isBuffer(ca) ? ca.toString("binary") : a2s$1(ca);
				var dispcnt = 0, L$2 = Math.min(1024, cstr.length), cc = 0;
				for (var csl = 0; csl <= L$2; ++csl) if ((cc = cstr.charCodeAt(csl)) >= 32 && cc < 128) ++dispcnt;
				var qp = dispcnt >= L$2 * 4 / 5;
				out.push(boundary);
				out.push("Content-Location: " + (opts.root || "file:///C:/SheetJS/") + fp);
				out.push("Content-Transfer-Encoding: " + (qp ? "quoted-printable" : "base64"));
				out.push("Content-Type: " + get_content_type(fi, fp));
				out.push("");
				out.push(qp ? write_quoted_printable(cstr) : write_base64_76(cstr));
			}
			out.push(boundary + "--\r\n");
			return out.join("\r\n");
		}
		function cfb_new(opts) {
			var o$10 = {};
			init_cfb(o$10, opts);
			return o$10;
		}
		function cfb_add(cfb, name, content, opts) {
			var unsafe = opts && opts.unsafe;
			if (!unsafe) init_cfb(cfb);
			var file = !unsafe && CFB.find(cfb, name);
			if (!file) {
				var fpath = cfb.FullPaths[0];
				if (name.slice(0, fpath.length) == fpath) fpath = name;
				else {
					if (fpath.slice(-1) != "/") fpath += "/";
					fpath = (fpath + name).replace("//", "/");
				}
				file = {
					name: filename(name),
					type: 2
				};
				cfb.FileIndex.push(file);
				cfb.FullPaths.push(fpath);
				if (!unsafe) CFB.utils.cfb_gc(cfb);
			}
			file.content = content;
			file.size = content ? content.length : 0;
			if (opts) {
				if (opts.CLSID) file.clsid = opts.CLSID;
				if (opts.mt) file.mt = opts.mt;
				if (opts.ct) file.ct = opts.ct;
			}
			return file;
		}
		function cfb_del(cfb, name) {
			init_cfb(cfb);
			var file = CFB.find(cfb, name);
			if (file) {
				for (var j$2 = 0; j$2 < cfb.FileIndex.length; ++j$2) if (cfb.FileIndex[j$2] == file) {
					cfb.FileIndex.splice(j$2, 1);
					cfb.FullPaths.splice(j$2, 1);
					return true;
				}
			}
			return false;
		}
		function cfb_mov(cfb, old_name, new_name) {
			init_cfb(cfb);
			var file = CFB.find(cfb, old_name);
			if (file) {
				for (var j$2 = 0; j$2 < cfb.FileIndex.length; ++j$2) if (cfb.FileIndex[j$2] == file) {
					cfb.FileIndex[j$2].name = filename(new_name);
					cfb.FullPaths[j$2] = new_name;
					return true;
				}
			}
			return false;
		}
		function cfb_gc(cfb) {
			rebuild_cfb(cfb, true);
		}
		exports$1.find = find;
		exports$1.read = read;
		exports$1.parse = parse;
		exports$1.write = write;
		exports$1.writeFile = write_file;
		exports$1.utils = {
			cfb_new,
			cfb_add,
			cfb_del,
			cfb_mov,
			cfb_gc,
			ReadShift,
			CheckField,
			prep_blob,
			bconcat,
			use_zlib,
			_deflateRaw: _deflate,
			_inflateRaw: _inflate,
			consts
		};
		return exports$1;
	})();
	;
	dnthresh = /* @__PURE__ */ Date.UTC(1899, 11, 30, 0, 0, 0);
	dnthresh1 = /* @__PURE__ */ Date.UTC(1899, 11, 31, 0, 0, 0);
	dnthresh2 = /* @__PURE__ */ Date.UTC(1904, 0, 1, 0, 0, 0);
	pdre1 = /^(\d+):(\d+)(:\d+)?(\.\d+)?$/;
	pdre2 = /^(\d+)-(\d+)-(\d+)$/;
	pdre3 = /^(\d+)-(\d+)-(\d+)[T ](\d+):(\d+)(:\d+)?(\.\d+)?$/;
	FDRE1 = /^(0?\d|1[0-2])(?:|:([0-5]?\d)(?:|(\.\d+)(?:|:([0-5]?\d))|:([0-5]?\d)(|\.\d+)))\s+([ap])m?$/;
	FDRE2 = /^([01]?\d|2[0-3])(?:|:([0-5]?\d)(?:|(\.\d+)(?:|:([0-5]?\d))|:([0-5]?\d)(|\.\d+)))$/;
	FDISO = /^(\d+)-(\d+)-(\d+)[T ](\d+):(\d+)(:\d+)(\.\d+)?[Z]?$/;
	utc_append_works = new Date("6/9/69 00:00 UTC").valueOf() == -177984e5;
	lower_months = [
		"january",
		"february",
		"march",
		"april",
		"may",
		"june",
		"july",
		"august",
		"september",
		"october",
		"november",
		"december"
	];
	split_regex = /* @__PURE__ */ (function() {
		var safe_split_regex = "abacaba".split(/(:?b)/i).length == 5;
		return function split_regex$1(str, re$1, def) {
			if (safe_split_regex || typeof re$1 == "string") return str.split(re$1);
			var p$3 = str.split(re$1), o$10 = [p$3[0]];
			for (var i$7 = 1; i$7 < p$3.length; ++i$7) {
				o$10.push(def);
				o$10.push(p$3[i$7]);
			}
			return o$10;
		};
	})();
	xml_boundary = {
		" ": 1,
		"	": 1,
		"\r": 1,
		"\n": 1,
		">": 1
	};
	str_match_xml_ns = /* @__PURE__ */ (function() {
		var str_match_xml_ns_cache = {};
		return function str_match_xml_ns$1(str, tag) {
			var res = str_match_xml_ns_cache[tag];
			if (!res) str_match_xml_ns_cache[tag] = res = [new RegExp("<(?:\\w+:)?" + tag + "\\b[^<>]*>", "g"), new RegExp("</(?:\\w+:)?" + tag + ">", "g")];
			res[0].lastIndex = res[1].lastIndex = 0;
			var m$3 = res[0].exec(str);
			if (!m$3) return null;
			var si = m$3.index;
			var sf = res[0].lastIndex;
			res[1].lastIndex = res[0].lastIndex;
			m$3 = res[1].exec(str);
			if (!m$3) return null;
			var ei = m$3.index;
			var ef = res[1].lastIndex;
			return [str.slice(si, ef), str.slice(sf, ei)];
		};
	})();
	str_match_xml_ns_g = /* @__PURE__ */ (function() {
		var str_match_xml_ns_cache = {};
		return function str_match_xml_ns$1(str, tag) {
			var out = [];
			var res = str_match_xml_ns_cache[tag];
			if (!res) str_match_xml_ns_cache[tag] = res = [new RegExp("<(?:\\w+:)?" + tag + "\\b[^<>]*>", "g"), new RegExp("</(?:\\w+:)?" + tag + ">", "g")];
			res[0].lastIndex = res[1].lastIndex = 0;
			var m$3;
			while (m$3 = res[0].exec(str)) {
				var si = m$3.index;
				res[1].lastIndex = res[0].lastIndex;
				m$3 = res[1].exec(str);
				if (!m$3) return null;
				var ef = res[1].lastIndex;
				out.push(str.slice(si, ef));
				res[0].lastIndex = res[1].lastIndex;
			}
			return out.length == 0 ? null : out;
		};
	})();
	str_remove_xml_ns_g = /* @__PURE__ */ (function() {
		var str_remove_xml_ns_cache = {};
		return function str_remove_xml_ns_g$1(str, tag) {
			var out = [];
			var res = str_remove_xml_ns_cache[tag];
			if (!res) str_remove_xml_ns_cache[tag] = res = [new RegExp("<(?:\\w+:)?" + tag + "\\b[^<>]*>", "g"), new RegExp("</(?:\\w+:)?" + tag + ">", "g")];
			res[0].lastIndex = res[1].lastIndex = 0;
			var m$3;
			var si = 0, ef = 0;
			while (m$3 = res[0].exec(str)) {
				si = m$3.index;
				out.push(str.slice(ef, si));
				ef = si;
				res[1].lastIndex = res[0].lastIndex;
				m$3 = res[1].exec(str);
				if (!m$3) return null;
				ef = res[1].lastIndex;
				res[0].lastIndex = res[1].lastIndex;
			}
			out.push(str.slice(ef));
			return out.length == 0 ? "" : out.join("");
		};
	})();
	str_match_xml_ig = /* @__PURE__ */ (function() {
		var str_match_xml_ns_cache = {};
		return function str_match_xml_ns$1(str, tag) {
			var out = [];
			var res = str_match_xml_ns_cache[tag];
			if (!res) str_match_xml_ns_cache[tag] = res = [new RegExp("<" + tag + "\\b[^<>]*>", "ig"), new RegExp("</" + tag + ">", "ig")];
			res[0].lastIndex = res[1].lastIndex = 0;
			var m$3;
			while (m$3 = res[0].exec(str)) {
				var si = m$3.index;
				res[1].lastIndex = res[0].lastIndex;
				m$3 = res[1].exec(str);
				if (!m$3) return null;
				var ef = res[1].lastIndex;
				out.push(str.slice(si, ef));
				res[0].lastIndex = res[1].lastIndex;
			}
			return out.length == 0 ? null : out;
		};
	})();
	XML_HEADER = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n";
	attregexg = /\s([^"\s?>\/]+)\s*=\s*((?:")([^"]*)(?:")|(?:')([^']*)(?:')|([^'">\s]+))/g;
	tagregex1 = /<[\/\?]?[a-zA-Z0-9:_-]+(?:\s+[^"\s?<>\/]+\s*=\s*(?:"[^"]*"|'[^']*'|[^'"<>\s=]+))*\s*[\/\?]?>/gm, tagregex2 = /<[^<>]*>/g;
	tagregex = /* @__PURE__ */ XML_HEADER.match(tagregex1) ? tagregex1 : tagregex2;
	nsregex = /<\w*:/, nsregex2 = /<(\/?)\w+:/;
	encodings = {
		"&quot;": "\"",
		"&apos;": "'",
		"&gt;": ">",
		"&lt;": "<",
		"&amp;": "&"
	};
	rencoding = /* @__PURE__ */ evert(encodings);
	unescapexml = /* @__PURE__ */ (function() {
		var encregex = /&(?:quot|apos|gt|lt|amp|#x?([\da-fA-F]+));/gi, coderegex = /_x([\da-fA-F]{4})_/gi;
		function raw_unescapexml(text$2) {
			var s$5 = text$2 + "", i$7 = s$5.indexOf("<![CDATA[");
			if (i$7 == -1) return s$5.replace(encregex, function($$, $1) {
				return encodings[$$] || String.fromCharCode(parseInt($1, $$.indexOf("x") > -1 ? 16 : 10)) || $$;
			}).replace(coderegex, function(m$3, c$7) {
				return String.fromCharCode(parseInt(c$7, 16));
			});
			var j$2 = s$5.indexOf("]]>");
			return raw_unescapexml(s$5.slice(0, i$7)) + s$5.slice(i$7 + 9, j$2) + raw_unescapexml(s$5.slice(j$2 + 3));
		}
		return function unescapexml$1(text$2, xlsx) {
			var out = raw_unescapexml(text$2);
			return xlsx ? out.replace(/\r\n/g, "\n") : out;
		};
	})();
	decregex = /[&<>'"]/g, charegex = /[\u0000-\u0008\u000b-\u001f\uFFFE-\uFFFF]/g;
	htmlcharegex = /[\u0000-\u001f]/g;
	xlml_fixstr = /* @__PURE__ */ (function() {
		var entregex = /&#(\d+);/g;
		function entrepl($$, $1) {
			return String.fromCharCode(parseInt($1, 10));
		}
		return function xlml_fixstr$1(str) {
			return str.replace(entregex, entrepl);
		};
	})();
	utf8corpus = "foo bar bazâð£";
	utf8read = has_buf && (/* @__PURE__ */ utf8readc(utf8corpus) == /* @__PURE__ */ utf8reada(utf8corpus) && utf8readc || /* @__PURE__ */ utf8readb(utf8corpus) == /* @__PURE__ */ utf8reada(utf8corpus) && utf8readb) || utf8reada;
	utf8write = has_buf ? function(data) {
		return Buffer_from(data, "utf8").toString("binary");
	} : function(orig) {
		var out = [], i$7 = 0, c$7 = 0, d$5 = 0;
		while (i$7 < orig.length) {
			c$7 = orig.charCodeAt(i$7++);
			switch (true) {
				case c$7 < 128:
					out.push(String.fromCharCode(c$7));
					break;
				case c$7 < 2048:
					out.push(String.fromCharCode(192 + (c$7 >> 6)));
					out.push(String.fromCharCode(128 + (c$7 & 63)));
					break;
				case c$7 >= 55296 && c$7 < 57344:
					c$7 -= 55296;
					d$5 = orig.charCodeAt(i$7++) - 56320 + (c$7 << 10);
					out.push(String.fromCharCode(240 + (d$5 >> 18 & 7)));
					out.push(String.fromCharCode(144 + (d$5 >> 12 & 63)));
					out.push(String.fromCharCode(128 + (d$5 >> 6 & 63)));
					out.push(String.fromCharCode(128 + (d$5 & 63)));
					break;
				default:
					out.push(String.fromCharCode(224 + (c$7 >> 12)));
					out.push(String.fromCharCode(128 + (c$7 >> 6 & 63)));
					out.push(String.fromCharCode(128 + (c$7 & 63)));
			}
		}
		return out.join("");
	};
	htmldecode = /* @__PURE__ */ (function() {
		var entities = [
			["nbsp", " "],
			["middot", "·"],
			["quot", "\""],
			["apos", "'"],
			["gt", ">"],
			["lt", "<"],
			["amp", "&"]
		].map(function(x$2) {
			return [new RegExp("&" + x$2[0] + ";", "ig"), x$2[1]];
		});
		return function htmldecode$1(str) {
			var o$10 = str.replace(/^[\t\n\r ]+/, "").replace(/(^|[^\t\n\r ])[\t\n\r ]+$/, "$1").replace(/>\s+/g, ">").replace(/\b\s+</g, "<").replace(/[\t\n\r ]+/g, " ").replace(/<\s*[bB][rR]\s*\/?>/g, "\n").replace(/<[^<>]*>/g, "");
			for (var i$7 = 0; i$7 < entities.length; ++i$7) o$10 = o$10.replace(entities[i$7][0], entities[i$7][1]);
			return o$10;
		};
	})();
	vtvregex = /<\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^<"'>]*)>([\s\S]*)</;
	wtregex = /(^\s|\s$|\n)/;
	xlmlregex = /<([\/]?)([^\s?><!\/:"]*:|)([^\s?<>:\/"]+)(?:\s+[^<>=?"'\s]+="[^"]*?")*\s*[\/]?>/gm;
	XMLNS = {
		CORE_PROPS: "http://schemas.openxmlformats.org/package/2006/metadata/core-properties",
		CUST_PROPS: "http://schemas.openxmlformats.org/officeDocument/2006/custom-properties",
		EXT_PROPS: "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties",
		CT: "http://schemas.openxmlformats.org/package/2006/content-types",
		RELS: "http://schemas.openxmlformats.org/package/2006/relationships",
		TCMNT: "http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments",
		"dc": "http://purl.org/dc/elements/1.1/",
		"dcterms": "http://purl.org/dc/terms/",
		"dcmitype": "http://purl.org/dc/dcmitype/",
		"mx": "http://schemas.microsoft.com/office/mac/excel/2008/main",
		"r": "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
		"sjs": "http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",
		"vt": "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",
		"xsi": "http://www.w3.org/2001/XMLSchema-instance",
		"xsd": "http://www.w3.org/2001/XMLSchema"
	};
	XMLNS_main = [
		"http://schemas.openxmlformats.org/spreadsheetml/2006/main",
		"http://purl.oclc.org/ooxml/spreadsheetml/main",
		"http://schemas.microsoft.com/office/excel/2006/main",
		"http://schemas.microsoft.com/office/excel/2006/2"
	];
	XLMLNS = {
		"o": "urn:schemas-microsoft-com:office:office",
		"x": "urn:schemas-microsoft-com:office:excel",
		"ss": "urn:schemas-microsoft-com:office:spreadsheet",
		"dt": "uuid:C2F41010-65B3-11d1-A29F-00AA00C14882",
		"mv": "http://macVmlSchemaUri",
		"v": "urn:schemas-microsoft-com:vml",
		"html": "http://www.w3.org/TR/REC-html40"
	};
	___toBuffer = function(bufs) {
		var x$2 = [], w$2 = 10240;
		for (var i$7 = 0; i$7 < bufs[0].length; ++i$7) if (bufs[0][i$7]) for (var j$2 = 0, L$2 = bufs[0][i$7].length; j$2 < L$2; j$2 += w$2) x$2.push.apply(x$2, bufs[0][i$7].slice(j$2, j$2 + w$2));
		return x$2;
	};
	__toBuffer = has_buf ? function(bufs) {
		return bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0]) ? Buffer.concat(bufs[0].map(function(x$2) {
			return Buffer.isBuffer(x$2) ? x$2 : Buffer_from(x$2);
		})) : ___toBuffer(bufs);
	} : ___toBuffer;
	___utf16le = function(b$3, s$5, e$10) {
		var ss = [];
		for (var i$7 = s$5; i$7 < e$10; i$7 += 2) ss.push(String.fromCharCode(__readUInt16LE(b$3, i$7)));
		return ss.join("").replace(chr0, "");
	};
	__utf16le = has_buf ? function(b$3, s$5, e$10) {
		if (!Buffer.isBuffer(b$3) || !buf_utf16le) return ___utf16le(b$3, s$5, e$10);
		return b$3.toString("utf16le", s$5, e$10).replace(chr0, "");
	} : ___utf16le;
	___hexlify = function(b$3, s$5, l$3) {
		var ss = [];
		for (var i$7 = s$5; i$7 < s$5 + l$3; ++i$7) ss.push(("0" + b$3[i$7].toString(16)).slice(-2));
		return ss.join("");
	};
	__hexlify = has_buf ? function(b$3, s$5, l$3) {
		return Buffer.isBuffer(b$3) ? b$3.toString("hex", s$5, s$5 + l$3) : ___hexlify(b$3, s$5, l$3);
	} : ___hexlify;
	___utf8 = function(b$3, s$5, e$10) {
		var ss = [];
		for (var i$7 = s$5; i$7 < e$10; i$7++) ss.push(String.fromCharCode(__readUInt8(b$3, i$7)));
		return ss.join("");
	};
	__utf8 = has_buf ? function utf8_b(b$3, s$5, e$10) {
		return Buffer.isBuffer(b$3) ? b$3.toString("utf8", s$5, e$10) : ___utf8(b$3, s$5, e$10);
	} : ___utf8;
	___lpstr = function(b$3, i$7) {
		var len = __readUInt32LE(b$3, i$7);
		return len > 0 ? __utf8(b$3, i$7 + 4, i$7 + 4 + len - 1) : "";
	};
	__lpstr = ___lpstr;
	___cpstr = function(b$3, i$7) {
		var len = __readUInt32LE(b$3, i$7);
		return len > 0 ? __utf8(b$3, i$7 + 4, i$7 + 4 + len - 1) : "";
	};
	__cpstr = ___cpstr;
	___lpwstr = function(b$3, i$7) {
		var len = 2 * __readUInt32LE(b$3, i$7);
		return len > 0 ? __utf8(b$3, i$7 + 4, i$7 + 4 + len - 1) : "";
	};
	__lpwstr = ___lpwstr;
	___lpp4 = function lpp4_(b$3, i$7) {
		var len = __readUInt32LE(b$3, i$7);
		return len > 0 ? __utf16le(b$3, i$7 + 4, i$7 + 4 + len) : "";
	};
	__lpp4 = ___lpp4;
	___8lpp4 = function(b$3, i$7) {
		var len = __readUInt32LE(b$3, i$7);
		return len > 0 ? __utf8(b$3, i$7 + 4, i$7 + 4 + len) : "";
	};
	__8lpp4 = ___8lpp4;
	___double = function(b$3, idx) {
		return read_double_le(b$3, idx);
	};
	__double = ___double;
	is_buf = function is_buf_a(a$2) {
		return Array.isArray(a$2) || typeof Uint8Array !== "undefined" && a$2 instanceof Uint8Array;
	};
	if (has_buf) {
		__lpstr = function lpstr_b(b$3, i$7) {
			if (!Buffer.isBuffer(b$3)) return ___lpstr(b$3, i$7);
			var len = b$3.readUInt32LE(i$7);
			return len > 0 ? b$3.toString("utf8", i$7 + 4, i$7 + 4 + len - 1) : "";
		};
		__cpstr = function cpstr_b(b$3, i$7) {
			if (!Buffer.isBuffer(b$3)) return ___cpstr(b$3, i$7);
			var len = b$3.readUInt32LE(i$7);
			return len > 0 ? b$3.toString("utf8", i$7 + 4, i$7 + 4 + len - 1) : "";
		};
		__lpwstr = function lpwstr_b(b$3, i$7) {
			if (!Buffer.isBuffer(b$3) || !buf_utf16le) return ___lpwstr(b$3, i$7);
			var len = 2 * b$3.readUInt32LE(i$7);
			return b$3.toString("utf16le", i$7 + 4, i$7 + 4 + len - 1);
		};
		__lpp4 = function lpp4_b(b$3, i$7) {
			if (!Buffer.isBuffer(b$3) || !buf_utf16le) return ___lpp4(b$3, i$7);
			var len = b$3.readUInt32LE(i$7);
			return b$3.toString("utf16le", i$7 + 4, i$7 + 4 + len);
		};
		__8lpp4 = function lpp4_8b(b$3, i$7) {
			if (!Buffer.isBuffer(b$3)) return ___8lpp4(b$3, i$7);
			var len = b$3.readUInt32LE(i$7);
			return b$3.toString("utf8", i$7 + 4, i$7 + 4 + len);
		};
		__double = function double_(b$3, i$7) {
			if (Buffer.isBuffer(b$3)) return b$3.readDoubleLE(i$7);
			return ___double(b$3, i$7);
		};
		is_buf = function is_buf_b(a$2) {
			return Buffer.isBuffer(a$2) || Array.isArray(a$2) || typeof Uint8Array !== "undefined" && a$2 instanceof Uint8Array;
		};
	}
	if (typeof $cptable !== "undefined") cpdoit();
	__readUInt8 = function(b$3, idx) {
		return b$3[idx];
	};
	__readUInt16LE = function(b$3, idx) {
		return b$3[idx + 1] * (1 << 8) + b$3[idx];
	};
	__readInt16LE = function(b$3, idx) {
		var u$4 = b$3[idx + 1] * (1 << 8) + b$3[idx];
		return u$4 < 32768 ? u$4 : (65535 - u$4 + 1) * -1;
	};
	__readUInt32LE = function(b$3, idx) {
		return b$3[idx + 3] * (1 << 24) + (b$3[idx + 2] << 16) + (b$3[idx + 1] << 8) + b$3[idx];
	};
	__readInt32LE = function(b$3, idx) {
		return b$3[idx + 3] << 24 | b$3[idx + 2] << 16 | b$3[idx + 1] << 8 | b$3[idx];
	};
	__readInt32BE = function(b$3, idx) {
		return b$3[idx] << 24 | b$3[idx + 1] << 16 | b$3[idx + 2] << 8 | b$3[idx + 3];
	};
	__writeUInt32LE = function(b$3, val$1, idx) {
		b$3[idx] = val$1 & 255;
		b$3[idx + 1] = val$1 >>> 8 & 255;
		b$3[idx + 2] = val$1 >>> 16 & 255;
		b$3[idx + 3] = val$1 >>> 24 & 255;
	};
	__writeInt32LE = function(b$3, val$1, idx) {
		b$3[idx] = val$1 & 255;
		b$3[idx + 1] = val$1 >> 8 & 255;
		b$3[idx + 2] = val$1 >> 16 & 255;
		b$3[idx + 3] = val$1 >> 24 & 255;
	};
	__writeUInt16LE = function(b$3, val$1, idx) {
		b$3[idx] = val$1 & 255;
		b$3[idx + 1] = val$1 >>> 8 & 255;
	};
	parse_BrtCommentText = parse_RichStr;
	parse_XLSBCodeName = parse_XLWideString;
	write_XLSBCodeName = write_XLWideString;
	parse_XLNameWideString = parse_XLWideString;
	parse_RelID = parse_XLNullableWideString;
	write_RelID = write_XLNullableWideString;
	parse_UncheckedRfX = parse_RfX;
	write_UncheckedRfX = write_RfX;
	VT_I2 = 2;
	VT_I4 = 3;
	VT_BOOL = 11;
	VT_VARIANT = 12;
	VT_UI4 = 19;
	VT_FILETIME = 64;
	VT_BLOB = 65;
	VT_CF = 71;
	VT_VECTOR_VARIANT = 4108;
	VT_VECTOR_LPSTR = 4126;
	VT_STRING = 80;
	VT_USTR = 81;
	VT_CUSTOM = [VT_STRING, VT_USTR];
	DocSummaryPIDDSI = {
		1: {
			n: "CodePage",
			t: VT_I2
		},
		2: {
			n: "Category",
			t: VT_STRING
		},
		3: {
			n: "PresentationFormat",
			t: VT_STRING
		},
		4: {
			n: "ByteCount",
			t: VT_I4
		},
		5: {
			n: "LineCount",
			t: VT_I4
		},
		6: {
			n: "ParagraphCount",
			t: VT_I4
		},
		7: {
			n: "SlideCount",
			t: VT_I4
		},
		8: {
			n: "NoteCount",
			t: VT_I4
		},
		9: {
			n: "HiddenCount",
			t: VT_I4
		},
		10: {
			n: "MultimediaClipCount",
			t: VT_I4
		},
		11: {
			n: "ScaleCrop",
			t: VT_BOOL
		},
		12: {
			n: "HeadingPairs",
			t: VT_VECTOR_VARIANT
		},
		13: {
			n: "TitlesOfParts",
			t: VT_VECTOR_LPSTR
		},
		14: {
			n: "Manager",
			t: VT_STRING
		},
		15: {
			n: "Company",
			t: VT_STRING
		},
		16: {
			n: "LinksUpToDate",
			t: VT_BOOL
		},
		17: {
			n: "CharacterCount",
			t: VT_I4
		},
		19: {
			n: "SharedDoc",
			t: VT_BOOL
		},
		22: {
			n: "HyperlinksChanged",
			t: VT_BOOL
		},
		23: {
			n: "AppVersion",
			t: VT_I4,
			p: "version"
		},
		24: {
			n: "DigSig",
			t: VT_BLOB
		},
		26: {
			n: "ContentType",
			t: VT_STRING
		},
		27: {
			n: "ContentStatus",
			t: VT_STRING
		},
		28: {
			n: "Language",
			t: VT_STRING
		},
		29: {
			n: "Version",
			t: VT_STRING
		},
		255: {},
		2147483648: {
			n: "Locale",
			t: VT_UI4
		},
		2147483651: {
			n: "Behavior",
			t: VT_UI4
		},
		1919054434: {}
	};
	SummaryPIDSI = {
		1: {
			n: "CodePage",
			t: VT_I2
		},
		2: {
			n: "Title",
			t: VT_STRING
		},
		3: {
			n: "Subject",
			t: VT_STRING
		},
		4: {
			n: "Author",
			t: VT_STRING
		},
		5: {
			n: "Keywords",
			t: VT_STRING
		},
		6: {
			n: "Comments",
			t: VT_STRING
		},
		7: {
			n: "Template",
			t: VT_STRING
		},
		8: {
			n: "LastAuthor",
			t: VT_STRING
		},
		9: {
			n: "RevNumber",
			t: VT_STRING
		},
		10: {
			n: "EditTime",
			t: VT_FILETIME
		},
		11: {
			n: "LastPrinted",
			t: VT_FILETIME
		},
		12: {
			n: "CreatedDate",
			t: VT_FILETIME
		},
		13: {
			n: "ModifiedDate",
			t: VT_FILETIME
		},
		14: {
			n: "PageCount",
			t: VT_I4
		},
		15: {
			n: "WordCount",
			t: VT_I4
		},
		16: {
			n: "CharCount",
			t: VT_I4
		},
		17: {
			n: "Thumbnail",
			t: VT_CF
		},
		18: {
			n: "Application",
			t: VT_STRING
		},
		19: {
			n: "DocSecurity",
			t: VT_I4
		},
		255: {},
		2147483648: {
			n: "Locale",
			t: VT_UI4
		},
		2147483651: {
			n: "Behavior",
			t: VT_UI4
		},
		1919054434: {}
	};
	CountryEnum = {
		1: "US",
		2: "CA",
		3: "",
		7: "RU",
		20: "EG",
		30: "GR",
		31: "NL",
		32: "BE",
		33: "FR",
		34: "ES",
		36: "HU",
		39: "IT",
		41: "CH",
		43: "AT",
		44: "GB",
		45: "DK",
		46: "SE",
		47: "NO",
		48: "PL",
		49: "DE",
		52: "MX",
		55: "BR",
		61: "AU",
		64: "NZ",
		66: "TH",
		81: "JP",
		82: "KR",
		84: "VN",
		86: "CN",
		90: "TR",
		105: "JS",
		213: "DZ",
		216: "MA",
		218: "LY",
		351: "PT",
		354: "IS",
		358: "FI",
		420: "CZ",
		886: "TW",
		961: "LB",
		962: "JO",
		963: "SY",
		964: "IQ",
		965: "KW",
		966: "SA",
		971: "AE",
		972: "IL",
		974: "QA",
		981: "IR",
		65535: "US"
	};
	XLSFillPattern = [
		null,
		"solid",
		"mediumGray",
		"darkGray",
		"lightGray",
		"darkHorizontal",
		"darkVertical",
		"darkDown",
		"darkUp",
		"darkGrid",
		"darkTrellis",
		"lightHorizontal",
		"lightVertical",
		"lightDown",
		"lightUp",
		"lightGrid",
		"lightTrellis",
		"gray125",
		"gray0625"
	];
	_XLSIcv = /* @__PURE__ */ rgbify([
		0,
		16777215,
		16711680,
		65280,
		255,
		16776960,
		16711935,
		65535,
		0,
		16777215,
		16711680,
		65280,
		255,
		16776960,
		16711935,
		65535,
		8388608,
		32768,
		128,
		8421376,
		8388736,
		32896,
		12632256,
		8421504,
		10066431,
		10040166,
		16777164,
		13434879,
		6684774,
		16744576,
		26316,
		13421823,
		128,
		16711935,
		16776960,
		65535,
		8388736,
		8388608,
		32896,
		255,
		52479,
		13434879,
		13434828,
		16777113,
		10079487,
		16751052,
		13408767,
		16764057,
		3368703,
		3394764,
		10079232,
		16763904,
		16750848,
		16737792,
		6710937,
		9868950,
		13158,
		3381606,
		13056,
		3355392,
		10040064,
		10040166,
		3355545,
		3355443,
		0,
		16777215,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		0
	]);
	XLSIcv = /* @__PURE__ */ dup(_XLSIcv);
	BErr = {
		0: "#NULL!",
		7: "#DIV/0!",
		15: "#VALUE!",
		23: "#REF!",
		29: "#NAME?",
		36: "#NUM!",
		42: "#N/A",
		43: "#GETTING_DATA",
		255: "#WTF?"
	};
	RBErr = {
		"#NULL!": 0,
		"#DIV/0!": 7,
		"#VALUE!": 15,
		"#REF!": 23,
		"#NAME?": 29,
		"#NUM!": 36,
		"#N/A": 42,
		"#GETTING_DATA": 43,
		"#WTF?": 255
	};
	XLSLblBuiltIn = [
		"_xlnm.Consolidate_Area",
		"_xlnm.Auto_Open",
		"_xlnm.Auto_Close",
		"_xlnm.Extract",
		"_xlnm.Database",
		"_xlnm.Criteria",
		"_xlnm.Print_Area",
		"_xlnm.Print_Titles",
		"_xlnm.Recorder",
		"_xlnm.Data_Form",
		"_xlnm.Auto_Activate",
		"_xlnm.Auto_Deactivate",
		"_xlnm.Sheet_Title",
		"_xlnm._FilterDatabase"
	];
	ct2type = {
		"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": "workbooks",
		"application/vnd.ms-excel.sheet.macroEnabled.main+xml": "workbooks",
		"application/vnd.ms-excel.sheet.binary.macroEnabled.main": "workbooks",
		"application/vnd.ms-excel.addin.macroEnabled.main+xml": "workbooks",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": "workbooks",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": "sheets",
		"application/vnd.ms-excel.worksheet": "sheets",
		"application/vnd.ms-excel.binIndexWs": "TODO",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": "charts",
		"application/vnd.ms-excel.chartsheet": "charts",
		"application/vnd.ms-excel.macrosheet+xml": "macros",
		"application/vnd.ms-excel.macrosheet": "macros",
		"application/vnd.ms-excel.intlmacrosheet": "TODO",
		"application/vnd.ms-excel.binIndexMs": "TODO",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": "dialogs",
		"application/vnd.ms-excel.dialogsheet": "dialogs",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml": "strs",
		"application/vnd.ms-excel.sharedStrings": "strs",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": "styles",
		"application/vnd.ms-excel.styles": "styles",
		"application/vnd.openxmlformats-package.core-properties+xml": "coreprops",
		"application/vnd.openxmlformats-officedocument.custom-properties+xml": "custprops",
		"application/vnd.openxmlformats-officedocument.extended-properties+xml": "extprops",
		"application/vnd.openxmlformats-officedocument.customXmlProperties+xml": "TODO",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty": "TODO",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": "comments",
		"application/vnd.ms-excel.comments": "comments",
		"application/vnd.ms-excel.threadedcomments+xml": "threadedcomments",
		"application/vnd.ms-excel.person+xml": "people",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml": "metadata",
		"application/vnd.ms-excel.sheetMetadata": "metadata",
		"application/vnd.ms-excel.pivotTable": "TODO",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml": "TODO",
		"application/vnd.openxmlformats-officedocument.drawingml.chart+xml": "TODO",
		"application/vnd.ms-office.chartcolorstyle+xml": "TODO",
		"application/vnd.ms-office.chartstyle+xml": "TODO",
		"application/vnd.ms-office.chartex+xml": "TODO",
		"application/vnd.ms-excel.calcChain": "calcchains",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml": "calcchains",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings": "TODO",
		"application/vnd.ms-office.activeX": "TODO",
		"application/vnd.ms-office.activeX+xml": "TODO",
		"application/vnd.ms-excel.attachedToolbars": "TODO",
		"application/vnd.ms-excel.connections": "TODO",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": "TODO",
		"application/vnd.ms-excel.externalLink": "links",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml": "links",
		"application/vnd.ms-excel.pivotCacheDefinition": "TODO",
		"application/vnd.ms-excel.pivotCacheRecords": "TODO",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml": "TODO",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml": "TODO",
		"application/vnd.ms-excel.queryTable": "TODO",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml": "TODO",
		"application/vnd.ms-excel.userNames": "TODO",
		"application/vnd.ms-excel.revisionHeaders": "TODO",
		"application/vnd.ms-excel.revisionLog": "TODO",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml": "TODO",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml": "TODO",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml": "TODO",
		"application/vnd.ms-excel.tableSingleCells": "TODO",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml": "TODO",
		"application/vnd.ms-excel.slicer": "TODO",
		"application/vnd.ms-excel.slicerCache": "TODO",
		"application/vnd.ms-excel.slicer+xml": "TODO",
		"application/vnd.ms-excel.slicerCache+xml": "TODO",
		"application/vnd.ms-excel.wsSortMap": "TODO",
		"application/vnd.ms-excel.table": "TODO",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": "TODO",
		"application/vnd.openxmlformats-officedocument.theme+xml": "themes",
		"application/vnd.openxmlformats-officedocument.themeOverride+xml": "TODO",
		"application/vnd.ms-excel.Timeline+xml": "TODO",
		"application/vnd.ms-excel.TimelineCache+xml": "TODO",
		"application/vnd.ms-office.vbaProject": "vba",
		"application/vnd.ms-office.vbaProjectSignature": "TODO",
		"application/vnd.ms-office.volatileDependencies": "TODO",
		"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml": "TODO",
		"application/vnd.ms-excel.controlproperties+xml": "TODO",
		"application/vnd.openxmlformats-officedocument.model+data": "TODO",
		"application/vnd.ms-excel.Survey+xml": "TODO",
		"application/vnd.openxmlformats-officedocument.drawing+xml": "drawings",
		"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": "TODO",
		"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml": "TODO",
		"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml": "TODO",
		"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml": "TODO",
		"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml": "TODO",
		"application/vnd.openxmlformats-officedocument.vmlDrawing": "TODO",
		"application/vnd.openxmlformats-package.relationships+xml": "rels",
		"application/vnd.openxmlformats-officedocument.oleObject": "TODO",
		"image/png": "TODO",
		"sheet": "js"
	};
	CT_LIST = {
		workbooks: {
			xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",
			xlsm: "application/vnd.ms-excel.sheet.macroEnabled.main+xml",
			xlsb: "application/vnd.ms-excel.sheet.binary.macroEnabled.main",
			xlam: "application/vnd.ms-excel.addin.macroEnabled.main+xml",
			xltx: "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"
		},
		strs: {
			xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",
			xlsb: "application/vnd.ms-excel.sharedStrings"
		},
		comments: {
			xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",
			xlsb: "application/vnd.ms-excel.comments"
		},
		sheets: {
			xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",
			xlsb: "application/vnd.ms-excel.worksheet"
		},
		charts: {
			xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",
			xlsb: "application/vnd.ms-excel.chartsheet"
		},
		dialogs: {
			xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml",
			xlsb: "application/vnd.ms-excel.dialogsheet"
		},
		macros: {
			xlsx: "application/vnd.ms-excel.macrosheet+xml",
			xlsb: "application/vnd.ms-excel.macrosheet"
		},
		metadata: {
			xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml",
			xlsb: "application/vnd.ms-excel.sheetMetadata"
		},
		styles: {
			xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",
			xlsb: "application/vnd.ms-excel.styles"
		}
	};
	RELS = {
		WB: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",
		SHEET: "http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",
		HLINK: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",
		VML: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",
		XPATH: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath",
		XMISS: "http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing",
		XLINK: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink",
		CXML: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml",
		CXMLP: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps",
		CMNT: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments",
		CORE_PROPS: "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties",
		EXT_PROPS: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties",
		CUST_PROPS: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties",
		SST: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings",
		STY: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles",
		THEME: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",
		CHART: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",
		CHARTEX: "http://schemas.microsoft.com/office/2014/relationships/chartEx",
		CS: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet",
		WS: ["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet", "http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"],
		DS: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet",
		MS: "http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet",
		IMG: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
		DRAW: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",
		XLMETA: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata",
		TCMNT: "http://schemas.microsoft.com/office/2017/10/relationships/threadedComment",
		PEOPLE: "http://schemas.microsoft.com/office/2017/10/relationships/person",
		CONN: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/connections",
		VBA: "http://schemas.microsoft.com/office/2006/relationships/vbaProject"
	};
	CT_ODS = "application/vnd.oasis.opendocument.spreadsheet";
	CORE_PROPS = [
		["cp:category", "Category"],
		["cp:contentStatus", "ContentStatus"],
		["cp:keywords", "Keywords"],
		["cp:lastModifiedBy", "LastAuthor"],
		["cp:lastPrinted", "LastPrinted"],
		["cp:revision", "RevNumber"],
		["cp:version", "Version"],
		["dc:creator", "Author"],
		["dc:description", "Comments"],
		["dc:identifier", "Identifier"],
		["dc:language", "Language"],
		["dc:subject", "Subject"],
		["dc:title", "Title"],
		[
			"dcterms:created",
			"CreatedDate",
			"date"
		],
		[
			"dcterms:modified",
			"ModifiedDate",
			"date"
		]
	];
	EXT_PROPS = [
		[
			"Application",
			"Application",
			"string"
		],
		[
			"AppVersion",
			"AppVersion",
			"string"
		],
		[
			"Company",
			"Company",
			"string"
		],
		[
			"DocSecurity",
			"DocSecurity",
			"string"
		],
		[
			"Manager",
			"Manager",
			"string"
		],
		[
			"HyperlinksChanged",
			"HyperlinksChanged",
			"bool"
		],
		[
			"SharedDoc",
			"SharedDoc",
			"bool"
		],
		[
			"LinksUpToDate",
			"LinksUpToDate",
			"bool"
		],
		[
			"ScaleCrop",
			"ScaleCrop",
			"bool"
		],
		[
			"HeadingPairs",
			"HeadingPairs",
			"raw"
		],
		[
			"TitlesOfParts",
			"TitlesOfParts",
			"raw"
		]
	];
	PseudoPropsPairs = [
		"Worksheets",
		"SheetNames",
		"NamedRanges",
		"DefinedNames",
		"Chartsheets",
		"ChartNames"
	];
	custregex = /<[^<>]+>[^<]*/g;
	XLMLDocPropsMap = {
		Title: "Title",
		Subject: "Subject",
		Author: "Author",
		Keywords: "Keywords",
		Comments: "Description",
		LastAuthor: "LastAuthor",
		RevNumber: "Revision",
		Application: "AppName",
		LastPrinted: "LastPrinted",
		CreatedDate: "Created",
		ModifiedDate: "LastSaved",
		Category: "Category",
		Manager: "Manager",
		Company: "Company",
		AppVersion: "Version",
		ContentStatus: "ContentStatus",
		Identifier: "Identifier",
		Language: "Language"
	};
	;
	XLSPSSkip = [
		"CodePage",
		"Thumbnail",
		"_PID_LINKBASE",
		"_PID_HLINKS",
		"SystemIdentifier",
		"FMTID"
	];
	parse_Ref = parse_RefU;
	FtTab = {
		0: parse_FtSkip,
		4: parse_FtSkip,
		5: parse_FtSkip,
		6: parse_FtSkip,
		7: parse_FtCf,
		8: parse_FtSkip,
		9: parse_FtSkip,
		10: parse_FtSkip,
		11: parse_FtSkip,
		12: parse_FtSkip,
		13: parse_FtNts,
		14: parse_FtSkip,
		15: parse_FtSkip,
		16: parse_FtSkip,
		17: parse_FtSkip,
		18: parse_FtSkip,
		19: parse_FtSkip,
		20: parse_FtSkip,
		21: parse_FtCmo
	};
	parse_BIFF2Format = parse_XLUnicodeString2;
	write_BIFF4XF = write_BIFF3XF;
	parse_XLHeaderFooter = parse_OptXLUnicodeString;
	parse_BIFF5OT = { 8: function(blob, length) {
		var tgt = blob.l + length;
		blob.l += 10;
		var cf = blob.read_shift(2);
		blob.l += 4;
		blob.l += 2;
		blob.l += 2;
		blob.l += 2;
		blob.l += 4;
		var cchName = blob.read_shift(1);
		blob.l += cchName;
		blob.l = tgt;
		return { fmt: cf };
	} };
	parse_Blank = parse_XLSCell;
	parse_Scl = parseuint16a;
	parse_String = parse_XLUnicodeString;
	DBF_SUPPORTED_VERSIONS = [
		2,
		3,
		48,
		49,
		131,
		139,
		140,
		245
	];
	DBF = /* @__PURE__ */ (function() {
		var dbf_codepage_map = {
			1: 437,
			2: 850,
			3: 1252,
			4: 1e4,
			100: 852,
			101: 866,
			102: 865,
			103: 861,
			104: 895,
			105: 620,
			106: 737,
			107: 857,
			120: 950,
			121: 949,
			122: 936,
			123: 932,
			124: 874,
			125: 1255,
			126: 1256,
			150: 10007,
			151: 10029,
			152: 10006,
			200: 1250,
			201: 1251,
			202: 1254,
			203: 1253,
			0: 20127,
			8: 865,
			9: 437,
			10: 850,
			11: 437,
			13: 437,
			14: 850,
			15: 437,
			16: 850,
			17: 437,
			18: 850,
			19: 932,
			20: 850,
			21: 437,
			22: 850,
			23: 865,
			24: 437,
			25: 437,
			26: 850,
			27: 437,
			28: 863,
			29: 850,
			31: 852,
			34: 852,
			35: 852,
			36: 860,
			37: 850,
			38: 866,
			55: 850,
			64: 852,
			77: 936,
			78: 949,
			79: 950,
			80: 874,
			87: 1252,
			88: 1252,
			89: 1252,
			108: 863,
			134: 737,
			135: 852,
			136: 857,
			204: 1257,
			255: 16969
		};
		var dbf_reverse_map = evert({
			1: 437,
			2: 850,
			3: 1252,
			4: 1e4,
			100: 852,
			101: 866,
			102: 865,
			103: 861,
			104: 895,
			105: 620,
			106: 737,
			107: 857,
			120: 950,
			121: 949,
			122: 936,
			123: 932,
			124: 874,
			125: 1255,
			126: 1256,
			150: 10007,
			151: 10029,
			152: 10006,
			200: 1250,
			201: 1251,
			202: 1254,
			203: 1253,
			0: 20127
		});
		function dbf_to_aoa(buf, opts) {
			var out = [];
			var d$5 = new_raw_buf(1);
			switch (opts.type) {
				case "base64":
					d$5 = s2a(Base64_decode(buf));
					break;
				case "binary":
					d$5 = s2a(buf);
					break;
				case "buffer":
				case "array":
					d$5 = buf;
					break;
			}
			prep_blob(d$5, 0);
			var ft = d$5.read_shift(1);
			var memo = !!(ft & 136);
			var vfp = false, l7 = false;
			switch (ft) {
				case 2: break;
				case 3: break;
				case 48:
					vfp = true;
					memo = true;
					break;
				case 49:
					vfp = true;
					memo = true;
					break;
				case 131: break;
				case 139: break;
				case 140:
					l7 = true;
					break;
				case 245: break;
				default: throw new Error("DBF Unsupported Version: " + ft.toString(16));
			}
			var nrow = 0, fpos = 521;
			if (ft == 2) nrow = d$5.read_shift(2);
			d$5.l += 3;
			if (ft != 2) nrow = d$5.read_shift(4);
			if (nrow > 1048576) nrow = 1e6;
			if (ft != 2) fpos = d$5.read_shift(2);
			var rlen = d$5.read_shift(2);
			var current_cp = opts.codepage || 1252;
			if (ft != 2) {
				d$5.l += 16;
				d$5.read_shift(1);
				if (d$5[d$5.l] !== 0) current_cp = dbf_codepage_map[d$5[d$5.l]];
				d$5.l += 1;
				d$5.l += 2;
			}
			if (l7) d$5.l += 36;
			var fields = [], field = {};
			var hend = Math.min(d$5.length, ft == 2 ? 521 : fpos - 10 - (vfp ? 264 : 0));
			var ww = l7 ? 32 : 11;
			while (d$5.l < hend && d$5[d$5.l] != 13) {
				field = {};
				field.name = (typeof $cptable !== "undefined" ? $cptable.utils.decode(current_cp, d$5.slice(d$5.l, d$5.l + ww)) : a2s(d$5.slice(d$5.l, d$5.l + ww))).replace(/[\u0000\r\n][\S\s]*$/g, "");
				d$5.l += ww;
				field.type = String.fromCharCode(d$5.read_shift(1));
				if (ft != 2 && !l7) field.offset = d$5.read_shift(4);
				field.len = d$5.read_shift(1);
				if (ft == 2) field.offset = d$5.read_shift(2);
				field.dec = d$5.read_shift(1);
				if (field.name.length) fields.push(field);
				if (ft != 2) d$5.l += l7 ? 13 : 14;
				switch (field.type) {
					case "B":
						if ((!vfp || field.len != 8) && opts.WTF) console.log("Skipping " + field.name + ":" + field.type);
						break;
					case "G":
					case "P":
						if (opts.WTF) console.log("Skipping " + field.name + ":" + field.type);
						break;
					case "+":
					case "0":
					case "@":
					case "C":
					case "D":
					case "F":
					case "I":
					case "L":
					case "M":
					case "N":
					case "O":
					case "T":
					case "Y": break;
					default: throw new Error("Unknown Field Type: " + field.type);
				}
			}
			if (d$5[d$5.l] !== 13) d$5.l = fpos - 1;
			if (d$5.read_shift(1) !== 13) throw new Error("DBF Terminator not found " + d$5.l + " " + d$5[d$5.l]);
			d$5.l = fpos;
			var R$1 = 0, C$2 = 0;
			out[0] = [];
			for (C$2 = 0; C$2 != fields.length; ++C$2) out[0][C$2] = fields[C$2].name;
			while (nrow-- > 0) {
				if (d$5[d$5.l] === 42) {
					d$5.l += rlen;
					continue;
				}
				++d$5.l;
				out[++R$1] = [];
				C$2 = 0;
				for (C$2 = 0; C$2 != fields.length; ++C$2) {
					var dd = d$5.slice(d$5.l, d$5.l + fields[C$2].len);
					d$5.l += fields[C$2].len;
					prep_blob(dd, 0);
					var s$5 = typeof $cptable !== "undefined" ? $cptable.utils.decode(current_cp, dd) : a2s(dd);
					switch (fields[C$2].type) {
						case "C":
							if (s$5.trim().length) out[R$1][C$2] = s$5.replace(/([^\s])\s+$/, "$1");
							break;
						case "D":
							if (s$5.length === 8) {
								out[R$1][C$2] = new Date(Date.UTC(+s$5.slice(0, 4), +s$5.slice(4, 6) - 1, +s$5.slice(6, 8), 0, 0, 0, 0));
								if (!(opts && opts.UTC)) {
									out[R$1][C$2] = utc_to_local(out[R$1][C$2]);
								}
							} else out[R$1][C$2] = s$5;
							break;
						case "F":
							out[R$1][C$2] = parseFloat(s$5.trim());
							break;
						case "+":
						case "I":
							out[R$1][C$2] = l7 ? dd.read_shift(-4, "i") ^ 2147483648 : dd.read_shift(4, "i");
							break;
						case "L":
							switch (s$5.trim().toUpperCase()) {
								case "Y":
								case "T":
									out[R$1][C$2] = true;
									break;
								case "N":
								case "F":
									out[R$1][C$2] = false;
									break;
								case "":
								case "\0":
								case "?": break;
								default: throw new Error("DBF Unrecognized L:|" + s$5 + "|");
							}
							break;
						case "M":
							if (!memo) throw new Error("DBF Unexpected MEMO for type " + ft.toString(16));
							out[R$1][C$2] = "##MEMO##" + (l7 ? parseInt(s$5.trim(), 10) : dd.read_shift(4));
							break;
						case "N":
							s$5 = s$5.replace(/\u0000/g, "").trim();
							if (s$5 && s$5 != ".") out[R$1][C$2] = +s$5 || 0;
							break;
						case "@":
							out[R$1][C$2] = new Date(dd.read_shift(-8, "f") - 621356832e5);
							break;
						case "T":
							{
								var hi = dd.read_shift(4), lo = dd.read_shift(4);
								if (hi == 0 && lo == 0) break;
								out[R$1][C$2] = new Date((hi - 2440588) * 864e5 + lo);
								if (!(opts && opts.UTC)) out[R$1][C$2] = utc_to_local(out[R$1][C$2]);
							}
							break;
						case "Y":
							out[R$1][C$2] = dd.read_shift(4, "i") / 1e4 + dd.read_shift(4, "i") / 1e4 * Math.pow(2, 32);
							break;
						case "O":
							out[R$1][C$2] = -dd.read_shift(-8, "f");
							break;
						case "B": if (vfp && fields[C$2].len == 8) {
							out[R$1][C$2] = dd.read_shift(8, "f");
							break;
						}
						case "G":
						case "P":
							dd.l += fields[C$2].len;
							break;
						case "0": if (fields[C$2].name === "_NullFlags") break;
						default: throw new Error("DBF Unsupported data type " + fields[C$2].type);
					}
				}
			}
			if (ft != 2) {
				if (d$5.l < d$5.length && d$5[d$5.l++] != 26) throw new Error("DBF EOF Marker missing " + (d$5.l - 1) + " of " + d$5.length + " " + d$5[d$5.l - 1].toString(16));
			}
			if (opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);
			opts.DBF = fields;
			return out;
		}
		function dbf_to_sheet(buf, opts) {
			var o$10 = opts || {};
			if (!o$10.dateNF) o$10.dateNF = "yyyymmdd";
			var ws = aoa_to_sheet(dbf_to_aoa(buf, o$10), o$10);
			ws["!cols"] = o$10.DBF.map(function(field) {
				return {
					wch: field.len,
					DBF: field
				};
			});
			delete o$10.DBF;
			return ws;
		}
		function dbf_to_workbook(buf, opts) {
			try {
				var o$10 = sheet_to_workbook(dbf_to_sheet(buf, opts), opts);
				o$10.bookType = "dbf";
				return o$10;
			} catch (e$10) {
				if (opts && opts.WTF) throw e$10;
			}
			return {
				SheetNames: [],
				Sheets: {}
			};
		}
		var _RLEN = {
			"B": 8,
			"C": 250,
			"L": 1,
			"D": 8,
			"?": 0,
			"": 0
		};
		function sheet_to_dbf(ws, opts) {
			if (!ws["!ref"]) throw new Error("Cannot export empty sheet to DBF");
			var o$10 = opts || {};
			var old_cp = current_codepage;
			if (+o$10.codepage >= 0) set_cp(+o$10.codepage);
			if (o$10.type == "string") throw new Error("Cannot write DBF to JS string");
			var ba = buf_array();
			var aoa = sheet_to_json(ws, {
				header: 1,
				raw: true,
				cellDates: true
			});
			var headers = aoa[0], data = aoa.slice(1), cols = ws["!cols"] || [];
			var i$7 = 0, j$2 = 0, hcnt = 0, rlen = 1;
			for (i$7 = 0; i$7 < headers.length; ++i$7) {
				if (((cols[i$7] || {}).DBF || {}).name) {
					headers[i$7] = cols[i$7].DBF.name;
					++hcnt;
					continue;
				}
				if (headers[i$7] == null) continue;
				++hcnt;
				if (typeof headers[i$7] === "number") headers[i$7] = headers[i$7].toString(10);
				if (typeof headers[i$7] !== "string") throw new Error("DBF Invalid column name " + headers[i$7] + " |" + typeof headers[i$7] + "|");
				if (headers.indexOf(headers[i$7]) !== i$7) {
					for (j$2 = 0; j$2 < 1024; ++j$2) if (headers.indexOf(headers[i$7] + "_" + j$2) == -1) {
						headers[i$7] += "_" + j$2;
						break;
					}
				}
			}
			var range = safe_decode_range(ws["!ref"]);
			var coltypes = [];
			var colwidths = [];
			var coldecimals = [];
			for (i$7 = 0; i$7 <= range.e.c - range.s.c; ++i$7) {
				var guess = "", _guess = "", maxlen = 0;
				var col = [];
				for (j$2 = 0; j$2 < data.length; ++j$2) {
					if (data[j$2][i$7] != null) col.push(data[j$2][i$7]);
				}
				if (col.length == 0 || headers[i$7] == null) {
					coltypes[i$7] = "?";
					continue;
				}
				for (j$2 = 0; j$2 < col.length; ++j$2) {
					switch (typeof col[j$2]) {
						case "number":
							_guess = "B";
							break;
						case "string":
							_guess = "C";
							break;
						case "boolean":
							_guess = "L";
							break;
						case "object":
							_guess = col[j$2] instanceof Date ? "D" : "C";
							break;
						default: _guess = "C";
					}
					maxlen = Math.max(maxlen, (typeof $cptable !== "undefined" && typeof col[j$2] == "string" ? $cptable.utils.encode(current_ansi, col[j$2]) : String(col[j$2])).length);
					guess = guess && guess != _guess ? "C" : _guess;
				}
				if (maxlen > 250) maxlen = 250;
				_guess = ((cols[i$7] || {}).DBF || {}).type;
				if (_guess == "C") {
					if (cols[i$7].DBF.len > maxlen) maxlen = cols[i$7].DBF.len;
				}
				if (guess == "B" && _guess == "N") {
					guess = "N";
					coldecimals[i$7] = cols[i$7].DBF.dec;
					maxlen = cols[i$7].DBF.len;
				}
				colwidths[i$7] = guess == "C" || _guess == "N" ? maxlen : _RLEN[guess] || 0;
				rlen += colwidths[i$7];
				coltypes[i$7] = guess;
			}
			var h$5 = ba.next(32);
			h$5.write_shift(4, 318902576);
			h$5.write_shift(4, data.length);
			h$5.write_shift(2, 296 + 32 * hcnt);
			h$5.write_shift(2, rlen);
			for (i$7 = 0; i$7 < 4; ++i$7) h$5.write_shift(4, 0);
			var cp = +dbf_reverse_map[current_codepage] || 3;
			h$5.write_shift(4, 0 | cp << 8);
			if (dbf_codepage_map[cp] != +o$10.codepage) {
				if (o$10.codepage) console.error("DBF Unsupported codepage " + current_codepage + ", using 1252");
				current_codepage = 1252;
			}
			for (i$7 = 0, j$2 = 0; i$7 < headers.length; ++i$7) {
				if (headers[i$7] == null) continue;
				var hf = ba.next(32);
				var _f = (headers[i$7].slice(-10) + "\0\0\0\0\0\0\0\0\0\0\0").slice(0, 11);
				hf.write_shift(1, _f, "sbcs");
				hf.write_shift(1, coltypes[i$7] == "?" ? "C" : coltypes[i$7], "sbcs");
				hf.write_shift(4, j$2);
				hf.write_shift(1, colwidths[i$7] || _RLEN[coltypes[i$7]] || 0);
				hf.write_shift(1, coldecimals[i$7] || 0);
				hf.write_shift(1, 2);
				hf.write_shift(4, 0);
				hf.write_shift(1, 0);
				hf.write_shift(4, 0);
				hf.write_shift(4, 0);
				j$2 += colwidths[i$7] || _RLEN[coltypes[i$7]] || 0;
			}
			var hb = ba.next(264);
			hb.write_shift(4, 13);
			for (i$7 = 0; i$7 < 65; ++i$7) hb.write_shift(4, 0);
			for (i$7 = 0; i$7 < data.length; ++i$7) {
				var rout = ba.next(rlen);
				rout.write_shift(1, 0);
				for (j$2 = 0; j$2 < headers.length; ++j$2) {
					if (headers[j$2] == null) continue;
					switch (coltypes[j$2]) {
						case "L":
							rout.write_shift(1, data[i$7][j$2] == null ? 63 : data[i$7][j$2] ? 84 : 70);
							break;
						case "B":
							rout.write_shift(8, data[i$7][j$2] || 0, "f");
							break;
						case "N":
							var _n = "0";
							if (typeof data[i$7][j$2] == "number") _n = data[i$7][j$2].toFixed(coldecimals[j$2] || 0);
							if (_n.length > colwidths[j$2]) _n = _n.slice(0, colwidths[j$2]);
							for (hcnt = 0; hcnt < colwidths[j$2] - _n.length; ++hcnt) rout.write_shift(1, 32);
							rout.write_shift(1, _n, "sbcs");
							break;
						case "D":
							if (!data[i$7][j$2]) rout.write_shift(8, "00000000", "sbcs");
							else {
								rout.write_shift(4, ("0000" + data[i$7][j$2].getFullYear()).slice(-4), "sbcs");
								rout.write_shift(2, ("00" + (data[i$7][j$2].getMonth() + 1)).slice(-2), "sbcs");
								rout.write_shift(2, ("00" + data[i$7][j$2].getDate()).slice(-2), "sbcs");
							}
							break;
						case "C":
							var _l = rout.l;
							var _s = String(data[i$7][j$2] != null ? data[i$7][j$2] : "").slice(0, colwidths[j$2]);
							rout.write_shift(1, _s, "cpstr");
							_l += colwidths[j$2] - rout.l;
							for (hcnt = 0; hcnt < _l; ++hcnt) rout.write_shift(1, 32);
							break;
					}
				}
			}
			current_codepage = old_cp;
			ba.next(1).write_shift(1, 26);
			return ba.end();
		}
		return {
			to_workbook: dbf_to_workbook,
			to_sheet: dbf_to_sheet,
			from_sheet: sheet_to_dbf
		};
	})();
	SYLK = /* @__PURE__ */ (function() {
		var sylk_escapes = {
			AA: "À",
			BA: "Á",
			CA: "Â",
			DA: 195,
			HA: "Ä",
			JA: 197,
			AE: "È",
			BE: "É",
			CE: "Ê",
			HE: "Ë",
			AI: "Ì",
			BI: "Í",
			CI: "Î",
			HI: "Ï",
			AO: "Ò",
			BO: "Ó",
			CO: "Ô",
			DO: 213,
			HO: "Ö",
			AU: "Ù",
			BU: "Ú",
			CU: "Û",
			HU: "Ü",
			Aa: "à",
			Ba: "á",
			Ca: "â",
			Da: 227,
			Ha: "ä",
			Ja: 229,
			Ae: "è",
			Be: "é",
			Ce: "ê",
			He: "ë",
			Ai: "ì",
			Bi: "í",
			Ci: "î",
			Hi: "ï",
			Ao: "ò",
			Bo: "ó",
			Co: "ô",
			Do: 245,
			Ho: "ö",
			Au: "ù",
			Bu: "ú",
			Cu: "û",
			Hu: "ü",
			KC: "Ç",
			Kc: "ç",
			q: "æ",
			z: "œ",
			a: "Æ",
			j: "Œ",
			DN: 209,
			Dn: 241,
			Hy: 255,
			S: 169,
			c: 170,
			R: 174,
			"B ": 180,
			0: 176,
			1: 177,
			2: 178,
			3: 179,
			5: 181,
			6: 182,
			7: 183,
			Q: 185,
			k: 186,
			b: 208,
			i: 216,
			l: 222,
			s: 240,
			y: 248,
			"!": 161,
			"\"": 162,
			"#": 163,
			"(": 164,
			"%": 165,
			"'": 167,
			"H ": 168,
			"+": 171,
			";": 187,
			"<": 188,
			"=": 189,
			">": 190,
			"?": 191,
			"{": 223
		};
		var sylk_char_regex = new RegExp("\x1BN(" + keys(sylk_escapes).join("|").replace(/\|\|\|/, "|\\||").replace(/([?()+])/g, "\\$1").replace("{", "\\{") + "|\\|)", "gm");
		try {
			sylk_char_regex = new RegExp("\x1BN(" + keys(sylk_escapes).join("|").replace(/\|\|\|/, "|\\||").replace(/([?()+])/g, "\\$1") + "|\\|)", "gm");
		} catch (e$10) {}
		var sylk_char_fn = function(_$2, $1) {
			var o$10 = sylk_escapes[$1];
			return typeof o$10 == "number" ? _getansi(o$10) : o$10;
		};
		var decode_sylk_char = function($$, $1, $2) {
			var newcc = $1.charCodeAt(0) - 32 << 4 | $2.charCodeAt(0) - 48;
			return newcc == 59 ? $$ : _getansi(newcc);
		};
		sylk_escapes["|"] = 254;
		var encode_sylk_str = function($$) {
			return $$.replace(/\n/g, "\x1B :").replace(/\r/g, "\x1B =");
		};
		function sylk_to_aoa(d$5, opts) {
			switch (opts.type) {
				case "base64": return sylk_to_aoa_str(Base64_decode(d$5), opts);
				case "binary": return sylk_to_aoa_str(d$5, opts);
				case "buffer": return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d$5) ? d$5.toString("binary") : a2s(d$5), opts);
				case "array": return sylk_to_aoa_str(cc2str(d$5), opts);
			}
			throw new Error("Unrecognized type " + opts.type);
		}
		function sylk_to_aoa_str(str, opts) {
			var records = str.split(/[\n\r]+/), R$1 = -1, C$2 = -1, ri = 0, rj = 0, arr = [];
			var formats = [];
			var next_cell_format = null;
			var sht = {}, rowinfo = [], colinfo = [], cw = [];
			var Mval = 0, j$2;
			var wb = { Workbook: {
				WBProps: {},
				Names: []
			} };
			if (+opts.codepage >= 0) set_cp(+opts.codepage);
			for (; ri !== records.length; ++ri) {
				Mval = 0;
				var rstr = records[ri].trim().replace(/\x1B([\x20-\x2F])([\x30-\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);
				var record = rstr.replace(/;;/g, "\0").split(";").map(function(x$2) {
					return x$2.replace(/\u0000/g, ";");
				});
				var RT = record[0], val$1;
				if (rstr.length > 0) switch (RT) {
					case "ID": break;
					case "E": break;
					case "B": break;
					case "O":
						for (rj = 1; rj < record.length; ++rj) switch (record[rj].charAt(0)) {
							case "V":
								{
									var d1904 = parseInt(record[rj].slice(1), 10);
									if (d1904 >= 1 && d1904 <= 4) wb.Workbook.WBProps.date1904 = true;
								}
								break;
						}
						break;
					case "W": break;
					case "P":
						switch (record[1].charAt(0)) {
							case "P":
								formats.push(rstr.slice(3).replace(/;;/g, ";"));
								break;
						}
						break;
					case "NN":
						{
							var nn = { Sheet: 0 };
							for (rj = 1; rj < record.length; ++rj) switch (record[rj].charAt(0)) {
								case "N":
									nn.Name = record[rj].slice(1);
									break;
								case "E":
									nn.Ref = (opts && opts.sheet || "Sheet1") + "!" + rc_to_a1(record[rj].slice(1));
									break;
							}
							wb.Workbook.Names.push(nn);
						}
						break;
					case "C":
						var C_seen_K = false, C_seen_X = false, C_seen_S = false, C_seen_E = false, _R = -1, _C = -1, formula = "", cell_t = "z";
						var cmnt = "";
						for (rj = 1; rj < record.length; ++rj) switch (record[rj].charAt(0)) {
							case "A":
								cmnt = record[rj].slice(1);
								break;
							case "X":
								C$2 = parseInt(record[rj].slice(1), 10) - 1;
								C_seen_X = true;
								break;
							case "Y":
								R$1 = parseInt(record[rj].slice(1), 10) - 1;
								if (!C_seen_X) C$2 = 0;
								for (j$2 = arr.length; j$2 <= R$1; ++j$2) arr[j$2] = [];
								break;
							case "K":
								val$1 = record[rj].slice(1);
								if (val$1.charAt(0) === "\"") {
									val$1 = val$1.slice(1, val$1.length - 1);
									cell_t = "s";
								} else if (val$1 === "TRUE" || val$1 === "FALSE") {
									val$1 = val$1 === "TRUE";
									cell_t = "b";
								} else if (val$1.charAt(0) == "#" && RBErr[val$1] != null) {
									cell_t = "e";
									val$1 = RBErr[val$1];
								} else if (!isNaN(fuzzynum(val$1))) {
									val$1 = fuzzynum(val$1);
									cell_t = "n";
									if (next_cell_format !== null && fmt_is_date(next_cell_format) && opts.cellDates) {
										val$1 = numdate(wb.Workbook.WBProps.date1904 ? val$1 + 1462 : val$1);
										cell_t = typeof val$1 == "number" ? "n" : "d";
									}
								}
								if (typeof $cptable !== "undefined" && typeof val$1 == "string" && (opts || {}).type != "string" && (opts || {}).codepage) val$1 = $cptable.utils.decode(opts.codepage, val$1);
								C_seen_K = true;
								break;
							case "E":
								C_seen_E = true;
								formula = rc_to_a1(record[rj].slice(1), {
									r: R$1,
									c: C$2
								});
								break;
							case "S":
								C_seen_S = true;
								break;
							case "G": break;
							case "R":
								_R = parseInt(record[rj].slice(1), 10) - 1;
								break;
							case "C":
								_C = parseInt(record[rj].slice(1), 10) - 1;
								break;
							default: if (opts && opts.WTF) throw new Error("SYLK bad record " + rstr);
						}
						if (C_seen_K) {
							if (!arr[R$1][C$2]) arr[R$1][C$2] = {
								t: cell_t,
								v: val$1
							};
							else {
								arr[R$1][C$2].t = cell_t;
								arr[R$1][C$2].v = val$1;
							}
							if (next_cell_format) arr[R$1][C$2].z = next_cell_format;
							if (opts.cellText !== false && next_cell_format) arr[R$1][C$2].w = SSF_format(arr[R$1][C$2].z, arr[R$1][C$2].v, { date1904: wb.Workbook.WBProps.date1904 });
							next_cell_format = null;
						}
						if (C_seen_S) {
							if (C_seen_E) throw new Error("SYLK shared formula cannot have own formula");
							var shrbase = _R > -1 && arr[_R][_C];
							if (!shrbase || !shrbase[1]) throw new Error("SYLK shared formula cannot find base");
							formula = shift_formula_str(shrbase[1], {
								r: R$1 - _R,
								c: C$2 - _C
							});
						}
						if (formula) {
							if (!arr[R$1][C$2]) arr[R$1][C$2] = {
								t: "n",
								f: formula
							};
							else arr[R$1][C$2].f = formula;
						}
						if (cmnt) {
							if (!arr[R$1][C$2]) arr[R$1][C$2] = { t: "z" };
							arr[R$1][C$2].c = [{
								a: "SheetJSYLK",
								t: cmnt
							}];
						}
						break;
					case "F":
						var F_seen = 0;
						for (rj = 1; rj < record.length; ++rj) switch (record[rj].charAt(0)) {
							case "X":
								C$2 = parseInt(record[rj].slice(1), 10) - 1;
								++F_seen;
								break;
							case "Y":
								R$1 = parseInt(record[rj].slice(1), 10) - 1;
								for (j$2 = arr.length; j$2 <= R$1; ++j$2) arr[j$2] = [];
								break;
							case "M":
								Mval = parseInt(record[rj].slice(1), 10) / 20;
								break;
							case "F": break;
							case "G": break;
							case "P":
								next_cell_format = formats[parseInt(record[rj].slice(1), 10)];
								break;
							case "S": break;
							case "D": break;
							case "N": break;
							case "W":
								cw = record[rj].slice(1).split(" ");
								for (j$2 = parseInt(cw[0], 10); j$2 <= parseInt(cw[1], 10); ++j$2) {
									Mval = parseInt(cw[2], 10);
									colinfo[j$2 - 1] = Mval === 0 ? { hidden: true } : { wch: Mval };
								}
								break;
							case "C":
								C$2 = parseInt(record[rj].slice(1), 10) - 1;
								if (!colinfo[C$2]) colinfo[C$2] = {};
								break;
							case "R":
								R$1 = parseInt(record[rj].slice(1), 10) - 1;
								if (!rowinfo[R$1]) rowinfo[R$1] = {};
								if (Mval > 0) {
									rowinfo[R$1].hpt = Mval;
									rowinfo[R$1].hpx = pt2px(Mval);
								} else if (Mval === 0) rowinfo[R$1].hidden = true;
								break;
							default: if (opts && opts.WTF) throw new Error("SYLK bad record " + rstr);
						}
						if (F_seen < 1) next_cell_format = null;
						break;
					default: if (opts && opts.WTF) throw new Error("SYLK bad record " + rstr);
				}
			}
			if (rowinfo.length > 0) sht["!rows"] = rowinfo;
			if (colinfo.length > 0) sht["!cols"] = colinfo;
			colinfo.forEach(function(col) {
				process_col(col);
			});
			if (opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);
			return [
				arr,
				sht,
				wb
			];
		}
		function sylk_to_workbook(d$5, opts) {
			var aoasht = sylk_to_aoa(d$5, opts);
			var aoa = aoasht[0], ws = aoasht[1], wb = aoasht[2];
			var _opts = dup(opts);
			_opts.date1904 = (((wb || {}).Workbook || {}).WBProps || {}).date1904;
			var o$10 = aoa_to_sheet(aoa, _opts);
			keys(ws).forEach(function(k$2) {
				o$10[k$2] = ws[k$2];
			});
			var outwb = sheet_to_workbook(o$10, opts);
			keys(wb).forEach(function(k$2) {
				outwb[k$2] = wb[k$2];
			});
			outwb.bookType = "sylk";
			return outwb;
		}
		function write_ws_cell_sylk(cell, ws, R$1, C$2, opts, date1904) {
			var o$10 = "C;Y" + (R$1 + 1) + ";X" + (C$2 + 1) + ";K";
			switch (cell.t) {
				case "n":
					o$10 += isFinite(cell.v) ? cell.v || 0 : BErr[isNaN(cell.v) ? 36 : 7];
					if (cell.f && !cell.F) o$10 += ";E" + a1_to_rc(cell.f, {
						r: R$1,
						c: C$2
					});
					break;
				case "b":
					o$10 += cell.v ? "TRUE" : "FALSE";
					break;
				case "e":
					o$10 += cell.w || BErr[cell.v] || cell.v;
					break;
				case "d":
					o$10 += datenum(parseDate(cell.v, date1904), date1904);
					break;
				case "s":
					o$10 += "\"" + (cell.v == null ? "" : String(cell.v)).replace(/"/g, "").replace(/;/g, ";;") + "\"";
					break;
			}
			return o$10;
		}
		function write_ws_cmnt_sylk(cmnt, R$1, C$2) {
			var o$10 = "C;Y" + (R$1 + 1) + ";X" + (C$2 + 1) + ";A";
			o$10 += encode_sylk_str(cmnt.map(function(c$7) {
				return c$7.t;
			}).join(""));
			return o$10;
		}
		function write_ws_cols_sylk(out, cols) {
			cols.forEach(function(col, i$7) {
				var rec = "F;W" + (i$7 + 1) + " " + (i$7 + 1) + " ";
				if (col.hidden) rec += "0";
				else {
					if (typeof col.width == "number" && !col.wpx) col.wpx = width2px(col.width);
					if (typeof col.wpx == "number" && !col.wch) col.wch = px2char(col.wpx);
					if (typeof col.wch == "number") rec += Math.round(col.wch);
				}
				if (rec.charAt(rec.length - 1) != " ") out.push(rec);
			});
		}
		function write_ws_rows_sylk(out, rows) {
			rows.forEach(function(row, i$7) {
				var rec = "F;";
				if (row.hidden) rec += "M0;";
				else if (row.hpt) rec += "M" + 20 * row.hpt + ";";
				else if (row.hpx) rec += "M" + 20 * px2pt(row.hpx) + ";";
				if (rec.length > 2) out.push(rec + "R" + (i$7 + 1));
			});
		}
		function sheet_to_sylk(ws, opts, wb) {
			if (!opts) opts = {};
			opts._formats = ["General"];
			var preamble = ["ID;PSheetJS;N;E"], o$10 = [];
			var r$10 = safe_decode_range(ws["!ref"] || "A1"), cell;
			var dense = ws["!data"] != null;
			var RS = "\r\n";
			var d1904 = (((wb || {}).Workbook || {}).WBProps || {}).date1904;
			var _lastfmt = "General";
			preamble.push("P;PGeneral");
			var R$1 = r$10.s.r, C$2 = r$10.s.c, p$3 = [];
			if (ws["!ref"]) for (R$1 = r$10.s.r; R$1 <= r$10.e.r; ++R$1) {
				if (dense && !ws["!data"][R$1]) continue;
				p$3 = [];
				for (C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
					cell = dense ? ws["!data"][R$1][C$2] : ws[encode_col(C$2) + encode_row(R$1)];
					if (!cell || !cell.c) continue;
					p$3.push(write_ws_cmnt_sylk(cell.c, R$1, C$2));
				}
				if (p$3.length) o$10.push(p$3.join(RS));
			}
			if (ws["!ref"]) for (R$1 = r$10.s.r; R$1 <= r$10.e.r; ++R$1) {
				if (dense && !ws["!data"][R$1]) continue;
				p$3 = [];
				for (C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
					cell = dense ? ws["!data"][R$1][C$2] : ws[encode_col(C$2) + encode_row(R$1)];
					if (!cell || cell.v == null && (!cell.f || cell.F)) continue;
					if ((cell.z || (cell.t == "d" ? table_fmt[14] : "General")) != _lastfmt) {
						var ifmt = opts._formats.indexOf(cell.z);
						if (ifmt == -1) {
							opts._formats.push(cell.z);
							ifmt = opts._formats.length - 1;
							preamble.push("P;P" + cell.z.replace(/;/g, ";;"));
						}
						p$3.push("F;P" + ifmt + ";Y" + (R$1 + 1) + ";X" + (C$2 + 1));
					}
					p$3.push(write_ws_cell_sylk(cell, ws, R$1, C$2, opts, d1904));
				}
				o$10.push(p$3.join(RS));
			}
			preamble.push("F;P0;DG0G8;M255");
			if (ws["!cols"]) write_ws_cols_sylk(preamble, ws["!cols"]);
			if (ws["!rows"]) write_ws_rows_sylk(preamble, ws["!rows"]);
			if (ws["!ref"]) preamble.push("B;Y" + (r$10.e.r - r$10.s.r + 1) + ";X" + (r$10.e.c - r$10.s.c + 1) + ";D" + [
				r$10.s.c,
				r$10.s.r,
				r$10.e.c,
				r$10.e.r
			].join(" "));
			preamble.push("O;L;D;B" + (d1904 ? ";V4" : "") + ";K47;G100 0.001");
			delete opts._formats;
			return preamble.join(RS) + RS + o$10.join(RS) + RS + "E" + RS;
		}
		return {
			to_workbook: sylk_to_workbook,
			from_sheet: sheet_to_sylk
		};
	})();
	DIF = /* @__PURE__ */ (function() {
		function dif_to_aoa(d$5, opts) {
			switch (opts.type) {
				case "base64": return dif_to_aoa_str(Base64_decode(d$5), opts);
				case "binary": return dif_to_aoa_str(d$5, opts);
				case "buffer": return dif_to_aoa_str(has_buf && Buffer.isBuffer(d$5) ? d$5.toString("binary") : a2s(d$5), opts);
				case "array": return dif_to_aoa_str(cc2str(d$5), opts);
			}
			throw new Error("Unrecognized type " + opts.type);
		}
		function dif_to_aoa_str(str, opts) {
			var records = str.split("\n"), R$1 = -1, C$2 = -1, ri = 0, arr = [];
			for (; ri !== records.length; ++ri) {
				if (records[ri].trim() === "BOT") {
					arr[++R$1] = [];
					C$2 = 0;
					continue;
				}
				if (R$1 < 0) continue;
				var metadata = records[ri].trim().split(",");
				var type = metadata[0], value = metadata[1];
				++ri;
				var data = records[ri] || "";
				while ((data.match(/["]/g) || []).length & 1 && ri < records.length - 1) data += "\n" + records[++ri];
				data = data.trim();
				switch (+type) {
					case -1:
						if (data === "BOT") {
							arr[++R$1] = [];
							C$2 = 0;
							continue;
						} else if (data !== "EOD") throw new Error("Unrecognized DIF special command " + data);
						break;
					case 0:
						if (data === "TRUE") arr[R$1][C$2] = true;
						else if (data === "FALSE") arr[R$1][C$2] = false;
						else if (!isNaN(fuzzynum(value))) arr[R$1][C$2] = fuzzynum(value);
						else if (!isNaN(fuzzydate(value).getDate())) {
							arr[R$1][C$2] = parseDate(value);
							if (!(opts && opts.UTC)) {
								arr[R$1][C$2] = utc_to_local(arr[R$1][C$2]);
							}
						} else arr[R$1][C$2] = value;
						++C$2;
						break;
					case 1:
						data = data.slice(1, data.length - 1);
						data = data.replace(/""/g, "\"");
						if (DIF_XL && data && data.match(/^=".*"$/)) data = data.slice(2, -1);
						arr[R$1][C$2++] = data !== "" ? data : null;
						break;
				}
				if (data === "EOD") break;
			}
			if (opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);
			return arr;
		}
		function dif_to_sheet(str, opts) {
			return aoa_to_sheet(dif_to_aoa(str, opts), opts);
		}
		function dif_to_workbook(str, opts) {
			var o$10 = sheet_to_workbook(dif_to_sheet(str, opts), opts);
			o$10.bookType = "dif";
			return o$10;
		}
		function make_value(v$3, s$5) {
			return "0," + String(v$3) + "\r\n" + s$5;
		}
		function make_value_str(s$5) {
			return "1,0\r\n\"" + s$5.replace(/"/g, "\"\"") + "\"";
		}
		function sheet_to_dif(ws) {
			var _DIF_XL = DIF_XL;
			if (!ws["!ref"]) throw new Error("Cannot export empty sheet to DIF");
			var r$10 = safe_decode_range(ws["!ref"]);
			var dense = ws["!data"] != null;
			var o$10 = [
				"TABLE\r\n0,1\r\n\"sheetjs\"\r\n",
				"VECTORS\r\n0," + (r$10.e.r - r$10.s.r + 1) + "\r\n\"\"\r\n",
				"TUPLES\r\n0," + (r$10.e.c - r$10.s.c + 1) + "\r\n\"\"\r\n",
				"DATA\r\n0,0\r\n\"\"\r\n"
			];
			for (var R$1 = r$10.s.r; R$1 <= r$10.e.r; ++R$1) {
				var row = dense ? ws["!data"][R$1] : [];
				var p$3 = "-1,0\r\nBOT\r\n";
				for (var C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
					var cell = dense ? row && row[C$2] : ws[encode_cell({
						r: R$1,
						c: C$2
					})];
					if (cell == null) {
						p$3 += "1,0\r\n\"\"\r\n";
						continue;
					}
					switch (cell.t) {
						case "n":
							if (_DIF_XL) {
								if (cell.w != null) p$3 += "0," + cell.w + "\r\nV";
								else if (cell.v != null) p$3 += make_value(cell.v, "V");
								else if (cell.f != null && !cell.F) p$3 += make_value_str("=" + cell.f);
								else p$3 += "1,0\r\n\"\"";
							} else {
								if (cell.v == null) p$3 += "1,0\r\n\"\"";
								else p$3 += make_value(cell.v, "V");
							}
							break;
						case "b":
							p$3 += cell.v ? make_value(1, "TRUE") : make_value(0, "FALSE");
							break;
						case "s":
							p$3 += make_value_str(!_DIF_XL || isNaN(+cell.v) ? cell.v : "=\"" + cell.v + "\"");
							break;
						case "d":
							if (!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));
							if (_DIF_XL) p$3 += make_value(cell.w, "V");
							else p$3 += make_value_str(cell.w);
							break;
						default: p$3 += "1,0\r\n\"\"";
					}
					p$3 += "\r\n";
				}
				o$10.push(p$3);
			}
			return o$10.join("") + "-1,0\r\nEOD";
		}
		return {
			to_workbook: dif_to_workbook,
			to_sheet: dif_to_sheet,
			from_sheet: sheet_to_dif
		};
	})();
	ETH = /* @__PURE__ */ (function() {
		function decode(s$5) {
			return s$5.replace(/\\b/g, "\\").replace(/\\c/g, ":").replace(/\\n/g, "\n");
		}
		function encode(s$5) {
			return s$5.replace(/\\/g, "\\b").replace(/:/g, "\\c").replace(/\n/g, "\\n");
		}
		function eth_to_aoa(str, opts) {
			var records = str.split("\n"), R$1 = -1, C$2 = -1, ri = 0, arr = [];
			for (; ri !== records.length; ++ri) {
				var record = records[ri].trim().split(":");
				if (record[0] !== "cell") continue;
				var addr = decode_cell(record[1]);
				if (arr.length <= addr.r) {
					for (R$1 = arr.length; R$1 <= addr.r; ++R$1) if (!arr[R$1]) arr[R$1] = [];
				}
				R$1 = addr.r;
				C$2 = addr.c;
				switch (record[2]) {
					case "t":
						arr[R$1][C$2] = decode(record[3]);
						break;
					case "v":
						arr[R$1][C$2] = +record[3];
						break;
					case "vtf": var _f = record[record.length - 1];
					case "vtc":
						switch (record[3]) {
							case "nl":
								arr[R$1][C$2] = +record[4] ? true : false;
								break;
							default:
								arr[R$1][C$2] = record[record.length - 1].charAt(0) == "#" ? {
									t: "e",
									v: RBErr[record[record.length - 1]]
								} : +record[4];
								break;
						}
						if (record[2] == "vtf") arr[R$1][C$2] = [arr[R$1][C$2], _f];
				}
			}
			if (opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);
			return arr;
		}
		function eth_to_sheet(d$5, opts) {
			return aoa_to_sheet(eth_to_aoa(d$5, opts), opts);
		}
		function eth_to_workbook(d$5, opts) {
			return sheet_to_workbook(eth_to_sheet(d$5, opts), opts);
		}
		var header = [
			"socialcalc:version:1.5",
			"MIME-Version: 1.0",
			"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave"
		].join("\n");
		var sep = ["--SocialCalcSpreadsheetControlSave", "Content-type: text/plain; charset=UTF-8"].join("\n") + "\n";
		var meta = ["# SocialCalc Spreadsheet Control Save", "part:sheet"].join("\n");
		var end = "--SocialCalcSpreadsheetControlSave--";
		function sheet_to_eth_data(ws) {
			if (!ws || !ws["!ref"]) return "";
			var o$10 = [], oo = [], cell, coord = "";
			var r$10 = decode_range(ws["!ref"]);
			var dense = ws["!data"] != null;
			for (var R$1 = r$10.s.r; R$1 <= r$10.e.r; ++R$1) {
				for (var C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
					coord = encode_cell({
						r: R$1,
						c: C$2
					});
					cell = dense ? (ws["!data"][R$1] || [])[C$2] : ws[coord];
					if (!cell || cell.v == null || cell.t === "z") continue;
					oo = [
						"cell",
						coord,
						"t"
					];
					switch (cell.t) {
						case "s":
							oo.push(encode(cell.v));
							break;
						case "b":
							oo[2] = "vt" + (cell.f ? "f" : "c");
							oo[3] = "nl";
							oo[4] = cell.v ? "1" : "0";
							oo[5] = encode(cell.f || (cell.v ? "TRUE" : "FALSE"));
							break;
						case "d":
							var t$6 = datenum(parseDate(cell.v));
							oo[2] = "vtc";
							oo[3] = "nd";
							oo[4] = "" + t$6;
							oo[5] = cell.w || SSF_format(cell.z || table_fmt[14], t$6);
							break;
						case "n":
							if (isFinite(cell.v)) {
								if (!cell.f) {
									oo[2] = "v";
									oo[3] = cell.v;
								} else {
									oo[2] = "vtf";
									oo[3] = "n";
									oo[4] = cell.v;
									oo[5] = encode(cell.f);
								}
							} else {
								oo[2] = "vt" + (cell.f ? "f" : "c");
								oo[3] = "e" + BErr[isNaN(cell.v) ? 36 : 7];
								oo[4] = "0";
								oo[5] = cell.f || oo[3].slice(1);
								oo[6] = "e";
								oo[7] = oo[3].slice(1);
							}
							break;
						case "e": continue;
					}
					o$10.push(oo.join(":"));
				}
			}
			o$10.push("sheet:c:" + (r$10.e.c - r$10.s.c + 1) + ":r:" + (r$10.e.r - r$10.s.r + 1) + ":tvf:1");
			o$10.push("valueformat:1:text-wiki");
			return o$10.join("\n");
		}
		function sheet_to_eth(ws) {
			return [
				header,
				sep,
				meta,
				sep,
				sheet_to_eth_data(ws),
				end
			].join("\n");
		}
		return {
			to_workbook: eth_to_workbook,
			to_sheet: eth_to_sheet,
			from_sheet: sheet_to_eth
		};
	})();
	PRN = /* @__PURE__ */ (function() {
		function set_text_arr(data, arr, R$1, C$2, o$10) {
			if (o$10.raw) arr[R$1][C$2] = data;
			else if (data === "") {} else if (data === "TRUE") arr[R$1][C$2] = true;
			else if (data === "FALSE") arr[R$1][C$2] = false;
			else if (!isNaN(fuzzynum(data))) arr[R$1][C$2] = fuzzynum(data);
			else if (!isNaN(fuzzydate(data).getDate())) arr[R$1][C$2] = parseDate(data);
			else if (data.charCodeAt(0) == 35 && RBErr[data] != null) arr[R$1][C$2] = {
				t: "e",
				v: RBErr[data],
				w: data
			};
			else arr[R$1][C$2] = data;
		}
		function prn_to_aoa_str(f$4, opts) {
			var o$10 = opts || {};
			var arr = [];
			if (!f$4 || f$4.length === 0) return arr;
			var lines = f$4.split(/[\r\n]/);
			var L$2 = lines.length - 1;
			while (L$2 >= 0 && lines[L$2].length === 0) --L$2;
			var start = 10, idx = 0;
			var R$1 = 0;
			for (; R$1 <= L$2; ++R$1) {
				idx = lines[R$1].indexOf(" ");
				if (idx == -1) idx = lines[R$1].length;
				else idx++;
				start = Math.max(start, idx);
			}
			for (R$1 = 0; R$1 <= L$2; ++R$1) {
				arr[R$1] = [];
				var C$2 = 0;
				set_text_arr(lines[R$1].slice(0, start).trim(), arr, R$1, C$2, o$10);
				for (C$2 = 1; C$2 <= (lines[R$1].length - start) / 10 + 1; ++C$2) set_text_arr(lines[R$1].slice(start + (C$2 - 1) * 10, start + C$2 * 10).trim(), arr, R$1, C$2, o$10);
			}
			if (o$10.sheetRows) arr = arr.slice(0, o$10.sheetRows);
			return arr;
		}
		var guess_seps = {
			44: ",",
			9: "	",
			59: ";",
			124: "|"
		};
		var guess_sep_weights = {
			44: 3,
			9: 2,
			59: 1,
			124: 0
		};
		function guess_sep(str) {
			var cnt = {}, instr = false, end = 0, cc = 0;
			for (; end < str.length; ++end) {
				if ((cc = str.charCodeAt(end)) == 34) instr = !instr;
				else if (!instr && cc in guess_seps) cnt[cc] = (cnt[cc] || 0) + 1;
			}
			cc = [];
			for (end in cnt) if (Object.prototype.hasOwnProperty.call(cnt, end)) {
				cc.push([cnt[end], end]);
			}
			if (!cc.length) {
				cnt = guess_sep_weights;
				for (end in cnt) if (Object.prototype.hasOwnProperty.call(cnt, end)) {
					cc.push([cnt[end], end]);
				}
			}
			cc.sort(function(a$2, b$3) {
				return a$2[0] - b$3[0] || guess_sep_weights[a$2[1]] - guess_sep_weights[b$3[1]];
			});
			return guess_seps[cc.pop()[1]] || 44;
		}
		function dsv_to_sheet_str(str, opts) {
			var o$10 = opts || {};
			var sep = "";
			if (DENSE != null && o$10.dense == null) o$10.dense = DENSE;
			var ws = {};
			if (o$10.dense) ws["!data"] = [];
			var range = {
				s: {
					c: 0,
					r: 0
				},
				e: {
					c: 0,
					r: 0
				}
			};
			if (str.slice(0, 4) == "sep=") {
				if (str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10) {
					sep = str.charAt(4);
					str = str.slice(7);
				} else if (str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10) {
					sep = str.charAt(4);
					str = str.slice(6);
				} else sep = guess_sep(str.slice(0, 1024));
			} else if (o$10 && o$10.FS) sep = o$10.FS;
			else sep = guess_sep(str.slice(0, 1024));
			var R$1 = 0, C$2 = 0, v$3 = 0;
			var start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc = 0, startcc = str.charCodeAt(0);
			var _re = o$10.dateNF != null ? dateNF_regex(o$10.dateNF) : null;
			function finish_cell() {
				var s$5 = str.slice(start, end);
				if (s$5.slice(-1) == "\r") s$5 = s$5.slice(0, -1);
				var cell = {};
				if (s$5.charAt(0) == "\"" && s$5.charAt(s$5.length - 1) == "\"") s$5 = s$5.slice(1, -1).replace(/""/g, "\"");
				if (o$10.cellText !== false) cell.w = s$5;
				if (s$5.length === 0) cell.t = "z";
				else if (o$10.raw) {
					cell.t = "s";
					cell.v = s$5;
				} else if (s$5.trim().length === 0) {
					cell.t = "s";
					cell.v = s$5;
				} else if (s$5.charCodeAt(0) == 61) {
					if (s$5.charCodeAt(1) == 34 && s$5.charCodeAt(s$5.length - 1) == 34) {
						cell.t = "s";
						cell.v = s$5.slice(2, -1).replace(/""/g, "\"");
					} else if (fuzzyfmla(s$5)) {
						cell.t = "s";
						cell.f = s$5.slice(1);
						cell.v = s$5;
					} else {
						cell.t = "s";
						cell.v = s$5;
					}
				} else if (s$5 == "TRUE") {
					cell.t = "b";
					cell.v = true;
				} else if (s$5 == "FALSE") {
					cell.t = "b";
					cell.v = false;
				} else if (!isNaN(v$3 = fuzzynum(s$5))) {
					cell.t = "n";
					cell.v = v$3;
				} else if (!isNaN((v$3 = fuzzydate(s$5)).getDate()) || _re && s$5.match(_re)) {
					cell.z = o$10.dateNF || table_fmt[14];
					if (_re && s$5.match(_re)) {
						var news = dateNF_fix(s$5, o$10.dateNF, s$5.match(_re) || []);
						v$3 = parseDate(news);
						if (o$10 && o$10.UTC === false) v$3 = utc_to_local(v$3);
					} else if (o$10 && o$10.UTC === false) v$3 = utc_to_local(v$3);
					else if (o$10.cellText !== false && o$10.dateNF) cell.w = SSF_format(cell.z, v$3);
					if (o$10.cellDates) {
						cell.t = "d";
						cell.v = v$3;
					} else {
						cell.t = "n";
						cell.v = datenum(v$3);
					}
					if (!o$10.cellNF) delete cell.z;
				} else if (s$5.charCodeAt(0) == 35 && RBErr[s$5] != null) {
					cell.t = "e";
					cell.w = s$5;
					cell.v = RBErr[s$5];
				} else {
					cell.t = "s";
					cell.v = s$5;
				}
				if (cell.t == "z") {} else if (o$10.dense) {
					if (!ws["!data"][R$1]) ws["!data"][R$1] = [];
					ws["!data"][R$1][C$2] = cell;
				} else ws[encode_cell({
					c: C$2,
					r: R$1
				})] = cell;
				start = end + 1;
				startcc = str.charCodeAt(start);
				if (range.e.c < C$2) range.e.c = C$2;
				if (range.e.r < R$1) range.e.r = R$1;
				if (cc == sepcc) ++C$2;
				else {
					C$2 = 0;
					++R$1;
					if (o$10.sheetRows && o$10.sheetRows <= R$1) return true;
				}
			}
			outer: for (; end < str.length; ++end) switch (cc = str.charCodeAt(end)) {
				case 34:
					if (startcc === 34) instr = !instr;
					break;
				case 13:
					if (instr) break;
					if (str.charCodeAt(end + 1) == 10) ++end;
				case sepcc:
				case 10:
					if (!instr && finish_cell()) break outer;
					break;
				default: break;
			}
			if (end - start > 0) finish_cell();
			ws["!ref"] = encode_range(range);
			return ws;
		}
		function prn_to_sheet_str(str, opts) {
			if (!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);
			if (opts.FS) return dsv_to_sheet_str(str, opts);
			if (str.slice(0, 4) == "sep=") return dsv_to_sheet_str(str, opts);
			if (str.indexOf("	") >= 0 || str.indexOf(",") >= 0 || str.indexOf(";") >= 0) return dsv_to_sheet_str(str, opts);
			return aoa_to_sheet(prn_to_aoa_str(str, opts), opts);
		}
		function prn_to_sheet(d$5, opts) {
			var str = "", bytes = opts.type == "string" ? [
				0,
				0,
				0,
				0
			] : firstbyte(d$5, opts);
			switch (opts.type) {
				case "base64":
					str = Base64_decode(d$5);
					break;
				case "binary":
					str = d$5;
					break;
				case "buffer":
					if (opts.codepage == 65001) str = d$5.toString("utf8");
					else if (opts.codepage && typeof $cptable !== "undefined") str = $cptable.utils.decode(opts.codepage, d$5);
					else str = has_buf && Buffer.isBuffer(d$5) ? d$5.toString("binary") : a2s(d$5);
					break;
				case "array":
					str = cc2str(d$5);
					break;
				case "string":
					str = d$5;
					break;
				default: throw new Error("Unrecognized type " + opts.type);
			}
			if (bytes[0] == 239 && bytes[1] == 187 && bytes[2] == 191) str = utf8read(str.slice(3));
			else if (opts.type != "string" && opts.type != "buffer" && opts.codepage == 65001) str = utf8read(str);
			else if (opts.type == "binary" && typeof $cptable !== "undefined" && opts.codepage) str = $cptable.utils.decode(opts.codepage, $cptable.utils.encode(28591, str));
			if (str.slice(0, 19) == "socialcalc:version:") return ETH.to_sheet(opts.type == "string" ? str : utf8read(str), opts);
			return prn_to_sheet_str(str, opts);
		}
		function prn_to_workbook(d$5, opts) {
			return sheet_to_workbook(prn_to_sheet(d$5, opts), opts);
		}
		function sheet_to_prn(ws) {
			var o$10 = [];
			if (!ws["!ref"]) return "";
			var r$10 = safe_decode_range(ws["!ref"]), cell;
			var dense = ws["!data"] != null;
			for (var R$1 = r$10.s.r; R$1 <= r$10.e.r; ++R$1) {
				var oo = [];
				for (var C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
					var coord = encode_cell({
						r: R$1,
						c: C$2
					});
					cell = dense ? (ws["!data"][R$1] || [])[C$2] : ws[coord];
					if (!cell || cell.v == null) {
						oo.push("          ");
						continue;
					}
					var w$2 = (cell.w || (format_cell(cell), cell.w) || "").slice(0, 10);
					while (w$2.length < 10) w$2 += " ";
					oo.push(w$2 + (C$2 === 0 ? " " : ""));
				}
				o$10.push(oo.join(""));
			}
			return o$10.join("\n");
		}
		return {
			to_workbook: prn_to_workbook,
			to_sheet: prn_to_sheet,
			from_sheet: sheet_to_prn
		};
	})();
	WK_ = /* @__PURE__ */ (function() {
		function lotushopper(data, cb, opts) {
			if (!data) return;
			prep_blob(data, data.l || 0);
			var Enum$1 = opts.Enum || WK1Enum;
			while (data.l < data.length) {
				var RT = data.read_shift(2);
				var R$1 = Enum$1[RT] || Enum$1[65535];
				var length = data.read_shift(2);
				var tgt = data.l + length;
				var d$5 = R$1.f && R$1.f(data, length, opts);
				data.l = tgt;
				if (cb(d$5, R$1, RT)) return;
			}
		}
		function lotus_to_workbook(d$5, opts) {
			switch (opts.type) {
				case "base64": return lotus_to_workbook_buf(s2a(Base64_decode(d$5)), opts);
				case "binary": return lotus_to_workbook_buf(s2a(d$5), opts);
				case "buffer":
				case "array": return lotus_to_workbook_buf(d$5, opts);
			}
			throw "Unsupported type " + opts.type;
		}
		var LOTUS_DATE_FMTS = [
			"mmmm",
			"dd-mmm-yyyy",
			"dd-mmm",
			"mmm-yyyy",
			"@",
			"mm/dd",
			"hh:mm:ss AM/PM",
			"hh:mm AM/PM",
			"mm/dd/yyyy",
			"mm/dd",
			"hh:mm:ss",
			"hh:mm"
		];
		function lotus_to_workbook_buf(d$5, opts) {
			if (!d$5) return d$5;
			var o$10 = opts || {};
			if (DENSE != null && o$10.dense == null) o$10.dense = DENSE;
			var s$5 = {}, n$9 = "Sheet1", next_n = "", sidx = 0;
			var sheets = {}, snames = [], realnames = [], sdata = [];
			if (o$10.dense) sdata = s$5["!data"] = [];
			var refguess = {
				s: {
					r: 0,
					c: 0
				},
				e: {
					r: 0,
					c: 0
				}
			};
			var sheetRows = o$10.sheetRows || 0;
			var lastcell = {};
			if (d$5[4] == 81 && d$5[5] == 80 && d$5[6] == 87) return qpw_to_workbook_buf(d$5, opts);
			if (d$5[2] == 0) {
				if (d$5[3] == 8 || d$5[3] == 9) {
					if (d$5.length >= 16 && d$5[14] == 5 && d$5[15] === 108) throw new Error("Unsupported Works 3 for Mac file");
				}
			}
			if (d$5[2] == 2) {
				o$10.Enum = WK1Enum;
				lotushopper(d$5, function(val$1, R$1, RT) {
					switch (RT) {
						case 0:
							o$10.vers = val$1;
							if (val$1 >= 4096) o$10.qpro = true;
							break;
						case 255:
							o$10.vers = val$1;
							o$10.works = true;
							break;
						case 6:
							refguess = val$1;
							break;
						case 204:
							if (val$1) next_n = val$1;
							break;
						case 222:
							next_n = val$1;
							break;
						case 15:
						case 51:
							if ((!o$10.qpro && !o$10.works || RT == 51) && val$1[1].v.charCodeAt(0) < 48) val$1[1].v = val$1[1].v.slice(1);
							if (o$10.works || o$10.works2) val$1[1].v = val$1[1].v.replace(/\r\n/g, "\n");
						case 13:
						case 14:
						case 16:
							if ((val$1[2] & 112) == 112 && (val$1[2] & 15) > 1 && (val$1[2] & 15) < 15) {
								val$1[1].z = o$10.dateNF || LOTUS_DATE_FMTS[(val$1[2] & 15) - 1] || table_fmt[14];
								if (o$10.cellDates) {
									val$1[1].v = numdate(val$1[1].v);
									val$1[1].t = typeof val$1[1].v == "number" ? "n" : "d";
								}
							}
							if (o$10.qpro) {
								if (val$1[3] > sidx) {
									s$5["!ref"] = encode_range(refguess);
									sheets[n$9] = s$5;
									snames.push(n$9);
									s$5 = {};
									if (o$10.dense) sdata = s$5["!data"] = [];
									refguess = {
										s: {
											r: 0,
											c: 0
										},
										e: {
											r: 0,
											c: 0
										}
									};
									sidx = val$1[3];
									n$9 = next_n || "Sheet" + (sidx + 1);
									next_n = "";
								}
							}
							var tmpcell = o$10.dense ? (sdata[val$1[0].r] || [])[val$1[0].c] : s$5[encode_cell(val$1[0])];
							if (tmpcell) {
								tmpcell.t = val$1[1].t;
								tmpcell.v = val$1[1].v;
								if (val$1[1].z != null) tmpcell.z = val$1[1].z;
								if (val$1[1].f != null) tmpcell.f = val$1[1].f;
								lastcell = tmpcell;
								break;
							}
							if (o$10.dense) {
								if (!sdata[val$1[0].r]) sdata[val$1[0].r] = [];
								sdata[val$1[0].r][val$1[0].c] = val$1[1];
							} else s$5[encode_cell(val$1[0])] = val$1[1];
							lastcell = val$1[1];
							break;
						case 21509:
							o$10.works2 = true;
							break;
						case 21506:
							{
								if (val$1 == 5281) {
									lastcell.z = "hh:mm:ss";
									if (o$10.cellDates && lastcell.t == "n") {
										lastcell.v = numdate(lastcell.v);
										lastcell.t = typeof lastcell.v == "number" ? "n" : "d";
									}
								}
							}
							break;
					}
				}, o$10);
			} else if (d$5[2] == 26 || d$5[2] == 14) {
				o$10.Enum = WK3Enum;
				if (d$5[2] == 14) {
					o$10.qpro = true;
					d$5.l = 0;
				}
				lotushopper(d$5, function(val$1, R$1, RT) {
					switch (RT) {
						case 204:
							n$9 = val$1;
							break;
						case 22:
							if (val$1[1].v.charCodeAt(0) < 48) val$1[1].v = val$1[1].v.slice(1);
							val$1[1].v = val$1[1].v.replace(/\x0F./g, function($$) {
								return String.fromCharCode($$.charCodeAt(1) - 32);
							}).replace(/\r\n/g, "\n");
						case 23:
						case 24:
						case 25:
						case 37:
						case 39:
						case 40:
							if (val$1[3] > sidx) {
								s$5["!ref"] = encode_range(refguess);
								sheets[n$9] = s$5;
								snames.push(n$9);
								s$5 = {};
								if (o$10.dense) sdata = s$5["!data"] = [];
								refguess = {
									s: {
										r: 0,
										c: 0
									},
									e: {
										r: 0,
										c: 0
									}
								};
								sidx = val$1[3];
								n$9 = "Sheet" + (sidx + 1);
							}
							if (sheetRows > 0 && val$1[0].r >= sheetRows) break;
							if (o$10.dense) {
								if (!sdata[val$1[0].r]) sdata[val$1[0].r] = [];
								sdata[val$1[0].r][val$1[0].c] = val$1[1];
							} else s$5[encode_cell(val$1[0])] = val$1[1];
							if (refguess.e.c < val$1[0].c) refguess.e.c = val$1[0].c;
							if (refguess.e.r < val$1[0].r) refguess.e.r = val$1[0].r;
							break;
						case 27:
							if (val$1[14e3]) realnames[val$1[14e3][0]] = val$1[14e3][1];
							break;
						case 1537:
							realnames[val$1[0]] = val$1[1];
							if (val$1[0] == sidx) n$9 = val$1[1];
							break;
						default: break;
					}
				}, o$10);
			} else throw new Error("Unrecognized LOTUS BOF " + d$5[2]);
			s$5["!ref"] = encode_range(refguess);
			sheets[next_n || n$9] = s$5;
			snames.push(next_n || n$9);
			if (!realnames.length) return {
				SheetNames: snames,
				Sheets: sheets
			};
			var osheets = {}, rnames = [];
			for (var i$7 = 0; i$7 < realnames.length; ++i$7) if (sheets[snames[i$7]]) {
				rnames.push(realnames[i$7] || snames[i$7]);
				osheets[realnames[i$7]] = sheets[realnames[i$7]] || sheets[snames[i$7]];
			} else {
				rnames.push(realnames[i$7]);
				osheets[realnames[i$7]] = { "!ref": "A1" };
			}
			return {
				SheetNames: rnames,
				Sheets: osheets
			};
		}
		function sheet_to_wk1(ws, opts) {
			var o$10 = opts || {};
			if (+o$10.codepage >= 0) set_cp(+o$10.codepage);
			if (o$10.type == "string") throw new Error("Cannot write WK1 to JS string");
			var ba = buf_array();
			if (!ws["!ref"]) throw new Error("Cannot export empty sheet to WK1");
			var range = safe_decode_range(ws["!ref"]);
			var dense = ws["!data"] != null;
			var cols = [];
			write_biff_rec(ba, 0, write_BOF_WK1(1030));
			write_biff_rec(ba, 6, write_RANGE(range));
			var max_R = Math.min(range.e.r, 8191);
			for (var C$2 = range.s.c; C$2 <= range.e.c; ++C$2) cols[C$2] = encode_col(C$2);
			for (var R$1 = range.s.r; R$1 <= max_R; ++R$1) {
				var rr = encode_row(R$1);
				for (C$2 = range.s.c; C$2 <= range.e.c; ++C$2) {
					var cell = dense ? (ws["!data"][R$1] || [])[C$2] : ws[cols[C$2] + rr];
					if (!cell || cell.t == "z") continue;
					switch (cell.t) {
						case "n":
							if ((cell.v | 0) == cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 13, write_INTEGER(R$1, C$2, cell));
							else write_biff_rec(ba, 14, write_NUMBER(R$1, C$2, cell));
							break;
						case "d":
							var dc = datenum(cell.v);
							if ((dc | 0) == dc && dc >= -32768 && dc <= 32767) write_biff_rec(ba, 13, write_INTEGER(R$1, C$2, {
								t: "n",
								v: dc,
								z: cell.z || table_fmt[14]
							}));
							else write_biff_rec(ba, 14, write_NUMBER(R$1, C$2, {
								t: "n",
								v: dc,
								z: cell.z || table_fmt[14]
							}));
							break;
						default:
							var str = format_cell(cell);
							write_biff_rec(ba, 15, write_LABEL(R$1, C$2, str.slice(0, 239)));
					}
				}
			}
			write_biff_rec(ba, 1);
			return ba.end();
		}
		function book_to_wk3(wb, opts) {
			var o$10 = opts || {};
			if (+o$10.codepage >= 0) set_cp(+o$10.codepage);
			if (o$10.type == "string") throw new Error("Cannot write WK3 to JS string");
			var ba = buf_array();
			write_biff_rec(ba, 0, write_BOF_WK3(wb));
			for (var i$7 = 0, cnt = 0; i$7 < wb.SheetNames.length; ++i$7) if ((wb.Sheets[wb.SheetNames[i$7]] || {})["!ref"]) write_biff_rec(ba, 27, write_XFORMAT_SHEETNAME(wb.SheetNames[i$7], cnt++));
			var wsidx = 0;
			for (i$7 = 0; i$7 < wb.SheetNames.length; ++i$7) {
				var ws = wb.Sheets[wb.SheetNames[i$7]];
				if (!ws || !ws["!ref"]) continue;
				var range = safe_decode_range(ws["!ref"]);
				var dense = ws["!data"] != null;
				var cols = [];
				var max_R = Math.min(range.e.r, 8191);
				for (var R$1 = range.s.r; R$1 <= max_R; ++R$1) {
					var rr = encode_row(R$1);
					for (var C$2 = range.s.c; C$2 <= range.e.c; ++C$2) {
						if (R$1 === range.s.r) cols[C$2] = encode_col(C$2);
						var ref = cols[C$2] + rr;
						var cell = dense ? (ws["!data"][R$1] || [])[C$2] : ws[ref];
						if (!cell || cell.t == "z") continue;
						if (cell.t == "n") {
							write_biff_rec(ba, 23, write_NUMBER_17(R$1, C$2, wsidx, cell.v));
						} else {
							var str = format_cell(cell);
							write_biff_rec(ba, 22, write_LABEL_16(R$1, C$2, wsidx, str.slice(0, 239)));
						}
					}
				}
				++wsidx;
			}
			write_biff_rec(ba, 1);
			return ba.end();
		}
		function write_BOF_WK1(v$3) {
			var out = new_buf(2);
			out.write_shift(2, v$3);
			return out;
		}
		function write_BOF_WK3(wb) {
			var out = new_buf(26);
			out.write_shift(2, 4096);
			out.write_shift(2, 4);
			out.write_shift(4, 0);
			var rows = 0, cols = 0, wscnt = 0;
			for (var i$7 = 0; i$7 < wb.SheetNames.length; ++i$7) {
				var name = wb.SheetNames[i$7];
				var ws = wb.Sheets[name];
				if (!ws || !ws["!ref"]) continue;
				++wscnt;
				var range = decode_range(ws["!ref"]);
				if (rows < range.e.r) rows = range.e.r;
				if (cols < range.e.c) cols = range.e.c;
			}
			if (rows > 8191) rows = 8191;
			out.write_shift(2, rows);
			out.write_shift(1, wscnt);
			out.write_shift(1, cols);
			out.write_shift(2, 0);
			out.write_shift(2, 0);
			out.write_shift(1, 1);
			out.write_shift(1, 2);
			out.write_shift(4, 0);
			out.write_shift(4, 0);
			return out;
		}
		function parse_RANGE(blob, length, opts) {
			var o$10 = {
				s: {
					c: 0,
					r: 0
				},
				e: {
					c: 0,
					r: 0
				}
			};
			if (length == 8 && opts.qpro) {
				o$10.s.c = blob.read_shift(1);
				blob.l++;
				o$10.s.r = blob.read_shift(2);
				o$10.e.c = blob.read_shift(1);
				blob.l++;
				o$10.e.r = blob.read_shift(2);
				return o$10;
			}
			o$10.s.c = blob.read_shift(2);
			o$10.s.r = blob.read_shift(2);
			if (length == 12 && opts.qpro) blob.l += 2;
			o$10.e.c = blob.read_shift(2);
			o$10.e.r = blob.read_shift(2);
			if (length == 12 && opts.qpro) blob.l += 2;
			if (o$10.s.c == 65535) o$10.s.c = o$10.e.c = o$10.s.r = o$10.e.r = 0;
			return o$10;
		}
		function write_RANGE(range) {
			var out = new_buf(8);
			out.write_shift(2, range.s.c);
			out.write_shift(2, range.s.r);
			out.write_shift(2, range.e.c);
			out.write_shift(2, range.e.r);
			return out;
		}
		function parse_cell(blob, length, opts) {
			var o$10 = [
				{
					c: 0,
					r: 0
				},
				{
					t: "n",
					v: 0
				},
				0,
				0
			];
			if (opts.qpro && opts.vers != 20768) {
				o$10[0].c = blob.read_shift(1);
				o$10[3] = blob.read_shift(1);
				o$10[0].r = blob.read_shift(2);
				blob.l += 2;
			} else if (opts.works) {
				o$10[0].c = blob.read_shift(2);
				o$10[0].r = blob.read_shift(2);
				o$10[2] = blob.read_shift(2);
			} else {
				o$10[2] = blob.read_shift(1);
				o$10[0].c = blob.read_shift(2);
				o$10[0].r = blob.read_shift(2);
			}
			return o$10;
		}
		function get_wk1_fmt(cell) {
			if (cell.z && fmt_is_date(cell.z)) {
				return 240 | (LOTUS_DATE_FMTS.indexOf(cell.z) + 1 || 2);
			}
			return 255;
		}
		function parse_LABEL(blob, length, opts) {
			var tgt = blob.l + length;
			var o$10 = parse_cell(blob, length, opts);
			o$10[1].t = "s";
			if ((opts.vers & 65534) == 20768) {
				blob.l++;
				var len = blob.read_shift(1);
				o$10[1].v = blob.read_shift(len, "utf8");
				return o$10;
			}
			if (opts.qpro) blob.l++;
			o$10[1].v = blob.read_shift(tgt - blob.l, "cstr");
			return o$10;
		}
		function write_LABEL(R$1, C$2, s$5) {
			var o$10 = new_buf(7 + s$5.length);
			o$10.write_shift(1, 255);
			o$10.write_shift(2, C$2);
			o$10.write_shift(2, R$1);
			o$10.write_shift(1, 39);
			for (var i$7 = 0; i$7 < o$10.length; ++i$7) {
				var cc = s$5.charCodeAt(i$7);
				o$10.write_shift(1, cc >= 128 ? 95 : cc);
			}
			o$10.write_shift(1, 0);
			return o$10;
		}
		function parse_STRING(blob, length, opts) {
			var tgt = blob.l + length;
			var o$10 = parse_cell(blob, length, opts);
			o$10[1].t = "s";
			if (opts.vers == 20768) {
				var len = blob.read_shift(1);
				o$10[1].v = blob.read_shift(len, "utf8");
				return o$10;
			}
			o$10[1].v = blob.read_shift(tgt - blob.l, "cstr");
			return o$10;
		}
		function parse_INTEGER(blob, length, opts) {
			var o$10 = parse_cell(blob, length, opts);
			o$10[1].v = blob.read_shift(2, "i");
			return o$10;
		}
		function write_INTEGER(R$1, C$2, cell) {
			var o$10 = new_buf(7);
			o$10.write_shift(1, get_wk1_fmt(cell));
			o$10.write_shift(2, C$2);
			o$10.write_shift(2, R$1);
			o$10.write_shift(2, cell.v, "i");
			return o$10;
		}
		function parse_NUMBER(blob, length, opts) {
			var o$10 = parse_cell(blob, length, opts);
			o$10[1].v = blob.read_shift(8, "f");
			return o$10;
		}
		function write_NUMBER(R$1, C$2, cell) {
			var o$10 = new_buf(13);
			o$10.write_shift(1, get_wk1_fmt(cell));
			o$10.write_shift(2, C$2);
			o$10.write_shift(2, R$1);
			o$10.write_shift(8, cell.v, "f");
			return o$10;
		}
		function parse_FORMULA(blob, length, opts) {
			var tgt = blob.l + length;
			var o$10 = parse_cell(blob, length, opts);
			o$10[1].v = blob.read_shift(8, "f");
			if (opts.qpro) blob.l = tgt;
			else {
				var flen = blob.read_shift(2);
				wk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o$10);
				blob.l += flen;
			}
			return o$10;
		}
		function wk1_parse_rc(B$2, V$2, col) {
			var rel$1 = V$2 & 32768;
			V$2 &= ~32768;
			V$2 = (rel$1 ? B$2 : 0) + (V$2 >= 8192 ? V$2 - 16384 : V$2);
			return (rel$1 ? "" : "$") + (col ? encode_col(V$2) : encode_row(V$2));
		}
		var FuncTab = {
			31: ["NA", 0],
			33: ["ABS", 1],
			34: ["TRUNC", 1],
			35: ["SQRT", 1],
			36: ["LOG", 1],
			37: ["LN", 1],
			38: ["PI", 0],
			39: ["SIN", 1],
			40: ["COS", 1],
			41: ["TAN", 1],
			42: ["ATAN2", 2],
			43: ["ATAN", 1],
			44: ["ASIN", 1],
			45: ["ACOS", 1],
			46: ["EXP", 1],
			47: ["MOD", 2],
			49: ["ISNA", 1],
			50: ["ISERR", 1],
			51: ["FALSE", 0],
			52: ["TRUE", 0],
			53: ["RAND", 0],
			54: ["DATE", 3],
			63: ["ROUND", 2],
			64: ["TIME", 3],
			68: ["ISNUMBER", 1],
			69: ["ISTEXT", 1],
			70: ["LEN", 1],
			71: ["VALUE", 1],
			73: ["MID", 3],
			74: ["CHAR", 1],
			80: ["SUM", 69],
			81: ["AVERAGEA", 69],
			82: ["COUNTA", 69],
			83: ["MINA", 69],
			84: ["MAXA", 69],
			102: ["UPPER", 1],
			103: ["LOWER", 1],
			107: ["PROPER", 1],
			109: ["TRIM", 1],
			111: ["T", 1]
		};
		var BinOpTab = [
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"+",
			"-",
			"*",
			"/",
			"^",
			"=",
			"<>",
			"<=",
			">=",
			"<",
			">",
			"",
			"",
			"",
			"",
			"&",
			"",
			"",
			"",
			"",
			"",
			"",
			""
		];
		function wk1_fmla_to_csf(blob, o$10) {
			prep_blob(blob, 0);
			var out = [], argc = 0, R$1 = "", C$2 = "", argL = "", argR = "";
			while (blob.l < blob.length) {
				var cc = blob[blob.l++];
				switch (cc) {
					case 0:
						out.push(blob.read_shift(8, "f"));
						break;
					case 1:
						{
							C$2 = wk1_parse_rc(o$10[0].c, blob.read_shift(2), true);
							R$1 = wk1_parse_rc(o$10[0].r, blob.read_shift(2), false);
							out.push(C$2 + R$1);
						}
						break;
					case 2:
						{
							var c$7 = wk1_parse_rc(o$10[0].c, blob.read_shift(2), true);
							var r$10 = wk1_parse_rc(o$10[0].r, blob.read_shift(2), false);
							C$2 = wk1_parse_rc(o$10[0].c, blob.read_shift(2), true);
							R$1 = wk1_parse_rc(o$10[0].r, blob.read_shift(2), false);
							out.push(c$7 + r$10 + ":" + C$2 + R$1);
						}
						break;
					case 3:
						if (blob.l < blob.length) {
							console.error("WK1 premature formula end");
							return;
						}
						break;
					case 4:
						out.push("(" + out.pop() + ")");
						break;
					case 5:
						out.push(blob.read_shift(2));
						break;
					case 6:
						{
							var Z$1 = "";
							while (cc = blob[blob.l++]) Z$1 += String.fromCharCode(cc);
							out.push("\"" + Z$1.replace(/"/g, "\"\"") + "\"");
						}
						break;
					case 8:
						out.push("-" + out.pop());
						break;
					case 23:
						out.push("+" + out.pop());
						break;
					case 22:
						out.push("NOT(" + out.pop() + ")");
						break;
					case 20:
					case 21:
						{
							argR = out.pop();
							argL = out.pop();
							out.push(["AND", "OR"][cc - 20] + "(" + argL + "," + argR + ")");
						}
						break;
					default: if (cc < 32 && BinOpTab[cc]) {
						argR = out.pop();
						argL = out.pop();
						out.push(argL + BinOpTab[cc] + argR);
					} else if (FuncTab[cc]) {
						argc = FuncTab[cc][1];
						if (argc == 69) argc = blob[blob.l++];
						if (argc > out.length) {
							console.error("WK1 bad formula parse 0x" + cc.toString(16) + ":|" + out.join("|") + "|");
							return;
						}
						var args = out.slice(-argc);
						out.length -= argc;
						out.push(FuncTab[cc][0] + "(" + args.join(",") + ")");
					} else if (cc <= 7) return console.error("WK1 invalid opcode " + cc.toString(16));
					else if (cc <= 24) return console.error("WK1 unsupported op " + cc.toString(16));
					else if (cc <= 30) return console.error("WK1 invalid opcode " + cc.toString(16));
					else if (cc <= 115) return console.error("WK1 unsupported function opcode " + cc.toString(16));
					else return console.error("WK1 unrecognized opcode " + cc.toString(16));
				}
			}
			if (out.length == 1) o$10[1].f = "" + out[0];
			else console.error("WK1 bad formula parse |" + out.join("|") + "|");
		}
		function parse_cell_3(blob) {
			var o$10 = [
				{
					c: 0,
					r: 0
				},
				{
					t: "n",
					v: 0
				},
				0
			];
			o$10[0].r = blob.read_shift(2);
			o$10[3] = blob[blob.l++];
			o$10[0].c = blob[blob.l++];
			return o$10;
		}
		function parse_LABEL_16(blob, length) {
			var o$10 = parse_cell_3(blob, length);
			o$10[1].t = "s";
			o$10[1].v = blob.read_shift(length - 4, "cstr");
			return o$10;
		}
		function write_LABEL_16(R$1, C$2, wsidx, s$5) {
			var o$10 = new_buf(6 + s$5.length);
			o$10.write_shift(2, R$1);
			o$10.write_shift(1, wsidx);
			o$10.write_shift(1, C$2);
			o$10.write_shift(1, 39);
			for (var i$7 = 0; i$7 < s$5.length; ++i$7) {
				var cc = s$5.charCodeAt(i$7);
				o$10.write_shift(1, cc >= 128 ? 95 : cc);
			}
			o$10.write_shift(1, 0);
			return o$10;
		}
		function parse_NUMBER_18(blob, length) {
			var o$10 = parse_cell_3(blob, length);
			o$10[1].v = blob.read_shift(2);
			var v$3 = o$10[1].v >> 1;
			if (o$10[1].v & 1) {
				switch (v$3 & 7) {
					case 0:
						v$3 = (v$3 >> 3) * 5e3;
						break;
					case 1:
						v$3 = (v$3 >> 3) * 500;
						break;
					case 2:
						v$3 = (v$3 >> 3) / 20;
						break;
					case 3:
						v$3 = (v$3 >> 3) / 200;
						break;
					case 4:
						v$3 = (v$3 >> 3) / 2e3;
						break;
					case 5:
						v$3 = (v$3 >> 3) / 2e4;
						break;
					case 6:
						v$3 = (v$3 >> 3) / 16;
						break;
					case 7:
						v$3 = (v$3 >> 3) / 64;
						break;
				}
			}
			o$10[1].v = v$3;
			return o$10;
		}
		function parse_NUMBER_17(blob, length) {
			var o$10 = parse_cell_3(blob, length);
			var v1 = blob.read_shift(4);
			var v2 = blob.read_shift(4);
			var e$10 = blob.read_shift(2);
			if (e$10 == 65535) {
				if (v1 === 0 && v2 === 3221225472) {
					o$10[1].t = "e";
					o$10[1].v = 15;
				} else if (v1 === 0 && v2 === 3489660928) {
					o$10[1].t = "e";
					o$10[1].v = 42;
				} else o$10[1].v = 0;
				return o$10;
			}
			var s$5 = e$10 & 32768;
			e$10 = (e$10 & 32767) - 16446;
			o$10[1].v = (1 - s$5 * 2) * (v2 * Math.pow(2, e$10 + 32) + v1 * Math.pow(2, e$10));
			return o$10;
		}
		function write_NUMBER_17(R$1, C$2, wsidx, v$3) {
			var o$10 = new_buf(14);
			o$10.write_shift(2, R$1);
			o$10.write_shift(1, wsidx);
			o$10.write_shift(1, C$2);
			if (v$3 == 0) {
				o$10.write_shift(4, 0);
				o$10.write_shift(4, 0);
				o$10.write_shift(2, 65535);
				return o$10;
			}
			var s$5 = 0, e$10 = 0, v1 = 0, v2 = 0;
			if (v$3 < 0) {
				s$5 = 1;
				v$3 = -v$3;
			}
			e$10 = Math.log2(v$3) | 0;
			v$3 /= Math.pow(2, e$10 - 31);
			v2 = v$3 >>> 0;
			if ((v2 & 2147483648) == 0) {
				v$3 /= 2;
				++e$10;
				v2 = v$3 >>> 0;
			}
			v$3 -= v2;
			v2 |= 2147483648;
			v2 >>>= 0;
			v$3 *= Math.pow(2, 32);
			v1 = v$3 >>> 0;
			o$10.write_shift(4, v1);
			o$10.write_shift(4, v2);
			e$10 += 16383 + (s$5 ? 32768 : 0);
			o$10.write_shift(2, e$10);
			return o$10;
		}
		function parse_FORMULA_19(blob, length) {
			var o$10 = parse_NUMBER_17(blob, 14);
			blob.l += length - 14;
			return o$10;
		}
		function parse_NUMBER_25(blob, length) {
			var o$10 = parse_cell_3(blob, length);
			var v1 = blob.read_shift(4);
			o$10[1].v = v1 >> 6;
			return o$10;
		}
		function parse_NUMBER_27(blob, length) {
			var o$10 = parse_cell_3(blob, length);
			var v1 = blob.read_shift(8, "f");
			o$10[1].v = v1;
			return o$10;
		}
		function parse_FORMULA_28(blob, length) {
			var o$10 = parse_NUMBER_27(blob, 12);
			blob.l += length - 12;
			return o$10;
		}
		function parse_SHEETNAMECS(blob, length) {
			return blob[blob.l + length - 1] == 0 ? blob.read_shift(length, "cstr") : "";
		}
		function parse_SHEETNAMELP(blob, length) {
			var len = blob[blob.l++];
			if (len > length - 1) len = length - 1;
			var o$10 = "";
			while (o$10.length < len) o$10 += String.fromCharCode(blob[blob.l++]);
			return o$10;
		}
		function parse_SHEETINFOQP(blob, length, opts) {
			if (!opts.qpro || length < 21) return;
			var id = blob.read_shift(1);
			blob.l += 17;
			blob.l += 1;
			blob.l += 2;
			var nm = blob.read_shift(length - 21, "cstr");
			return [id, nm];
		}
		function parse_XFORMAT(blob, length) {
			var o$10 = {}, tgt = blob.l + length;
			while (blob.l < tgt) {
				var dt = blob.read_shift(2);
				if (dt == 14e3) {
					o$10[dt] = [0, ""];
					o$10[dt][0] = blob.read_shift(2);
					while (blob[blob.l]) {
						o$10[dt][1] += String.fromCharCode(blob[blob.l]);
						blob.l++;
					}
					blob.l++;
				}
			}
			return o$10;
		}
		function write_XFORMAT_SHEETNAME(name, wsidx) {
			var out = new_buf(5 + name.length);
			out.write_shift(2, 14e3);
			out.write_shift(2, wsidx);
			for (var i$7 = 0; i$7 < name.length; ++i$7) {
				var cc = name.charCodeAt(i$7);
				out[out.l++] = cc > 127 ? 95 : cc;
			}
			out[out.l++] = 0;
			return out;
		}
		var WK1Enum = {
			0: {
				n: "BOF",
				f: parseuint16
			},
			1: { n: "EOF" },
			2: { n: "CALCMODE" },
			3: { n: "CALCORDER" },
			4: { n: "SPLIT" },
			5: { n: "SYNC" },
			6: {
				n: "RANGE",
				f: parse_RANGE
			},
			7: { n: "WINDOW1" },
			8: { n: "COLW1" },
			9: { n: "WINTWO" },
			10: { n: "COLW2" },
			11: { n: "NAME" },
			12: { n: "BLANK" },
			13: {
				n: "INTEGER",
				f: parse_INTEGER
			},
			14: {
				n: "NUMBER",
				f: parse_NUMBER
			},
			15: {
				n: "LABEL",
				f: parse_LABEL
			},
			16: {
				n: "FORMULA",
				f: parse_FORMULA
			},
			24: { n: "TABLE" },
			25: { n: "ORANGE" },
			26: { n: "PRANGE" },
			27: { n: "SRANGE" },
			28: { n: "FRANGE" },
			29: { n: "KRANGE1" },
			32: { n: "HRANGE" },
			35: { n: "KRANGE2" },
			36: { n: "PROTEC" },
			37: { n: "FOOTER" },
			38: { n: "HEADER" },
			39: { n: "SETUP" },
			40: { n: "MARGINS" },
			41: { n: "LABELFMT" },
			42: { n: "TITLES" },
			43: { n: "SHEETJS" },
			45: { n: "GRAPH" },
			46: { n: "NGRAPH" },
			47: { n: "CALCCOUNT" },
			48: { n: "UNFORMATTED" },
			49: { n: "CURSORW12" },
			50: { n: "WINDOW" },
			51: {
				n: "STRING",
				f: parse_STRING
			},
			55: { n: "PASSWORD" },
			56: { n: "LOCKED" },
			60: { n: "QUERY" },
			61: { n: "QUERYNAME" },
			62: { n: "PRINT" },
			63: { n: "PRINTNAME" },
			64: { n: "GRAPH2" },
			65: { n: "GRAPHNAME" },
			66: { n: "ZOOM" },
			67: { n: "SYMSPLIT" },
			68: { n: "NSROWS" },
			69: { n: "NSCOLS" },
			70: { n: "RULER" },
			71: { n: "NNAME" },
			72: { n: "ACOMM" },
			73: { n: "AMACRO" },
			74: { n: "PARSE" },
			102: { n: "PRANGES??" },
			103: { n: "RRANGES??" },
			104: { n: "FNAME??" },
			105: { n: "MRANGES??" },
			204: {
				n: "SHEETNAMECS",
				f: parse_SHEETNAMECS
			},
			222: {
				n: "SHEETNAMELP",
				f: parse_SHEETNAMELP
			},
			255: {
				n: "BOF",
				f: parseuint16
			},
			21506: {
				n: "WKSNF",
				f: parseuint16
			},
			65535: { n: "" }
		};
		var WK3Enum = {
			0: { n: "BOF" },
			1: { n: "EOF" },
			2: { n: "PASSWORD" },
			3: { n: "CALCSET" },
			4: { n: "WINDOWSET" },
			5: { n: "SHEETCELLPTR" },
			6: { n: "SHEETLAYOUT" },
			7: { n: "COLUMNWIDTH" },
			8: { n: "HIDDENCOLUMN" },
			9: { n: "USERRANGE" },
			10: { n: "SYSTEMRANGE" },
			11: { n: "ZEROFORCE" },
			12: { n: "SORTKEYDIR" },
			13: { n: "FILESEAL" },
			14: { n: "DATAFILLNUMS" },
			15: { n: "PRINTMAIN" },
			16: { n: "PRINTSTRING" },
			17: { n: "GRAPHMAIN" },
			18: { n: "GRAPHSTRING" },
			19: { n: "??" },
			20: { n: "ERRCELL" },
			21: { n: "NACELL" },
			22: {
				n: "LABEL16",
				f: parse_LABEL_16
			},
			23: {
				n: "NUMBER17",
				f: parse_NUMBER_17
			},
			24: {
				n: "NUMBER18",
				f: parse_NUMBER_18
			},
			25: {
				n: "FORMULA19",
				f: parse_FORMULA_19
			},
			26: { n: "FORMULA1A" },
			27: {
				n: "XFORMAT",
				f: parse_XFORMAT
			},
			28: { n: "DTLABELMISC" },
			29: { n: "DTLABELCELL" },
			30: { n: "GRAPHWINDOW" },
			31: { n: "CPA" },
			32: { n: "LPLAUTO" },
			33: { n: "QUERY" },
			34: { n: "HIDDENSHEET" },
			35: { n: "??" },
			37: {
				n: "NUMBER25",
				f: parse_NUMBER_25
			},
			38: { n: "??" },
			39: {
				n: "NUMBER27",
				f: parse_NUMBER_27
			},
			40: {
				n: "FORMULA28",
				f: parse_FORMULA_28
			},
			142: { n: "??" },
			147: { n: "??" },
			150: { n: "??" },
			151: { n: "??" },
			152: { n: "??" },
			153: { n: "??" },
			154: { n: "??" },
			155: { n: "??" },
			156: { n: "??" },
			163: { n: "??" },
			174: { n: "??" },
			175: { n: "??" },
			176: { n: "??" },
			177: { n: "??" },
			184: { n: "??" },
			185: { n: "??" },
			186: { n: "??" },
			187: { n: "??" },
			188: { n: "??" },
			195: { n: "??" },
			201: { n: "??" },
			204: {
				n: "SHEETNAMECS",
				f: parse_SHEETNAMECS
			},
			205: { n: "??" },
			206: { n: "??" },
			207: { n: "??" },
			208: { n: "??" },
			256: { n: "??" },
			259: { n: "??" },
			260: { n: "??" },
			261: { n: "??" },
			262: { n: "??" },
			263: { n: "??" },
			265: { n: "??" },
			266: { n: "??" },
			267: { n: "??" },
			268: { n: "??" },
			270: { n: "??" },
			271: { n: "??" },
			384: { n: "??" },
			389: { n: "??" },
			390: { n: "??" },
			393: { n: "??" },
			396: { n: "??" },
			512: { n: "??" },
			514: { n: "??" },
			513: { n: "??" },
			516: { n: "??" },
			517: { n: "??" },
			640: { n: "??" },
			641: { n: "??" },
			642: { n: "??" },
			643: { n: "??" },
			644: { n: "??" },
			645: { n: "??" },
			646: { n: "??" },
			647: { n: "??" },
			648: { n: "??" },
			658: { n: "??" },
			659: { n: "??" },
			660: { n: "??" },
			661: { n: "??" },
			662: { n: "??" },
			665: { n: "??" },
			666: { n: "??" },
			768: { n: "??" },
			772: { n: "??" },
			1537: {
				n: "SHEETINFOQP",
				f: parse_SHEETINFOQP
			},
			1600: { n: "??" },
			1602: { n: "??" },
			1793: { n: "??" },
			1794: { n: "??" },
			1795: { n: "??" },
			1796: { n: "??" },
			1920: { n: "??" },
			2048: { n: "??" },
			2049: { n: "??" },
			2052: { n: "??" },
			2688: { n: "??" },
			10998: { n: "??" },
			12849: { n: "??" },
			28233: { n: "??" },
			28484: { n: "??" },
			65535: { n: "" }
		};
		var QPWNFTable = {
			5: "dd-mmm-yy",
			6: "dd-mmm",
			7: "mmm-yy",
			8: "mm/dd/yy",
			10: "hh:mm:ss AM/PM",
			11: "hh:mm AM/PM",
			14: "dd-mmm-yyyy",
			15: "mmm-yyyy",
			34: "0.00",
			50: "0.00;[Red]0.00",
			66: "0.00;(0.00)",
			82: "0.00;[Red](0.00)",
			162: "\"$\"#,##0.00;\\(\"$\"#,##0.00\\)",
			288: "0%",
			304: "0E+00",
			320: "# ?/?"
		};
		function parse_qpw_str(p$3) {
			var cch = p$3.read_shift(2);
			var flags = p$3.read_shift(1);
			if (flags != 0) throw "unsupported QPW string type " + flags.toString(16);
			return p$3.read_shift(cch, "sbcs-cont");
		}
		function qpw_to_workbook_buf(d$5, opts) {
			prep_blob(d$5, 0);
			var o$10 = opts || {};
			if (DENSE != null && o$10.dense == null) o$10.dense = DENSE;
			var s$5 = {};
			if (o$10.dense) s$5["!data"] = [];
			var SST = [], sname = "", formulae = [];
			var range = {
				s: {
					r: -1,
					c: -1
				},
				e: {
					r: -1,
					c: -1
				}
			};
			var cnt = 0, type = 0, C$2 = 0, R$1 = 0;
			var wb = {
				SheetNames: [],
				Sheets: {}
			};
			var FMTS = [];
			outer: while (d$5.l < d$5.length) {
				var RT = d$5.read_shift(2), length = d$5.read_shift(2);
				var p$3 = d$5.slice(d$5.l, d$5.l + length);
				prep_blob(p$3, 0);
				switch (RT) {
					case 1:
						if (p$3.read_shift(4) != 962023505) throw "Bad QPW9 BOF!";
						break;
					case 2: break outer;
					case 8: break;
					case 10:
						{
							var fcnt = p$3.read_shift(4);
							var step = (p$3.length - p$3.l) / fcnt | 0;
							for (var ifmt = 0; ifmt < fcnt; ++ifmt) {
								var end = p$3.l + step;
								var fmt = {};
								p$3.l += 2;
								fmt.numFmtId = p$3.read_shift(2);
								if (QPWNFTable[fmt.numFmtId]) fmt.z = QPWNFTable[fmt.numFmtId];
								p$3.l = end;
								FMTS.push(fmt);
							}
						}
						break;
					case 1025: break;
					case 1026: break;
					case 1031:
						{
							p$3.l += 12;
							while (p$3.l < p$3.length) {
								cnt = p$3.read_shift(2);
								type = p$3.read_shift(1);
								SST.push(p$3.read_shift(cnt, "cstr"));
							}
						}
						break;
					case 1032:
						{}
						break;
					case 1537:
						{
							var sidx = p$3.read_shift(2);
							s$5 = {};
							if (o$10.dense) s$5["!data"] = [];
							range.s.c = p$3.read_shift(2);
							range.e.c = p$3.read_shift(2);
							range.s.r = p$3.read_shift(4);
							range.e.r = p$3.read_shift(4);
							p$3.l += 4;
							if (p$3.l + 2 < p$3.length) {
								cnt = p$3.read_shift(2);
								type = p$3.read_shift(1);
								sname = cnt == 0 ? "" : p$3.read_shift(cnt, "cstr");
							}
							if (!sname) sname = encode_col(sidx);
						}
						break;
					case 1538:
						{
							if (range.s.c > 255 || range.s.r > 999999) break;
							if (range.e.c < range.s.c) range.e.c = range.s.c;
							if (range.e.r < range.s.r) range.e.r = range.s.r;
							s$5["!ref"] = encode_range(range);
							book_append_sheet(wb, s$5, sname);
						}
						break;
					case 2561:
						{
							C$2 = p$3.read_shift(2);
							if (range.e.c < C$2) range.e.c = C$2;
							if (range.s.c > C$2) range.s.c = C$2;
							R$1 = p$3.read_shift(4);
							if (range.s.r > R$1) range.s.r = R$1;
							R$1 = p$3.read_shift(4);
							if (range.e.r < R$1) range.e.r = R$1;
						}
						break;
					case 3073:
						{
							R$1 = p$3.read_shift(4), cnt = p$3.read_shift(4);
							if (range.s.r > R$1) range.s.r = R$1;
							if (range.e.r < R$1 + cnt - 1) range.e.r = R$1 + cnt - 1;
							var CC = encode_col(C$2);
							while (p$3.l < p$3.length) {
								var cell = { t: "z" };
								var flags = p$3.read_shift(1), fmtidx = -1;
								if (flags & 128) fmtidx = p$3.read_shift(2);
								var mul = flags & 64 ? p$3.read_shift(2) - 1 : 0;
								switch (flags & 31) {
									case 0: break;
									case 1: break;
									case 2:
										cell = {
											t: "n",
											v: p$3.read_shift(2)
										};
										break;
									case 3:
										cell = {
											t: "n",
											v: p$3.read_shift(2, "i")
										};
										break;
									case 4:
										cell = {
											t: "n",
											v: parse_RkNumber(p$3)
										};
										break;
									case 5:
										cell = {
											t: "n",
											v: p$3.read_shift(8, "f")
										};
										break;
									case 7:
										cell = {
											t: "s",
											v: SST[type = p$3.read_shift(4) - 1]
										};
										break;
									case 8:
										cell = {
											t: "n",
											v: p$3.read_shift(8, "f")
										};
										p$3.l += 2;
										p$3.l += 4;
										if (isNaN(cell.v)) cell = {
											t: "e",
											v: 15
										};
										break;
									default: throw "Unrecognized QPW cell type " + (flags & 31);
								}
								if (fmtidx != -1 && (FMTS[fmtidx - 1] || {}).z) cell.z = FMTS[fmtidx - 1].z;
								var delta = 0;
								if (flags & 32) switch (flags & 31) {
									case 2:
										delta = p$3.read_shift(2);
										break;
									case 3:
										delta = p$3.read_shift(2, "i");
										break;
									case 7:
										delta = p$3.read_shift(2);
										break;
									default: throw "Unsupported delta for QPW cell type " + (flags & 31);
								}
								if (!(!o$10.sheetStubs && cell.t == "z")) {
									var newcell = dup(cell);
									if (cell.t == "n" && cell.z && fmt_is_date(cell.z) && o$10.cellDates) {
										newcell.v = numdate(cell.v);
										newcell.t = typeof newcell.v == "number" ? "n" : "d";
									}
									if (s$5["!data"] != null) {
										if (!s$5["!data"][R$1]) s$5["!data"][R$1] = [];
										s$5["!data"][R$1][C$2] = newcell;
									} else s$5[CC + encode_row(R$1)] = newcell;
								}
								++R$1;
								--cnt;
								while (mul-- > 0 && cnt >= 0) {
									if (flags & 32) switch (flags & 31) {
										case 2:
											cell = {
												t: "n",
												v: cell.v + delta & 65535
											};
											break;
										case 3:
											cell = {
												t: "n",
												v: cell.v + delta & 65535
											};
											if (cell.v > 32767) cell.v -= 65536;
											break;
										case 7:
											cell = {
												t: "s",
												v: SST[type = type + delta >>> 0]
											};
											break;
										default: throw "Cannot apply delta for QPW cell type " + (flags & 31);
									}
									else switch (flags & 31) {
										case 1:
											cell = { t: "z" };
											break;
										case 2:
											cell = {
												t: "n",
												v: p$3.read_shift(2)
											};
											break;
										case 7:
											cell = {
												t: "s",
												v: SST[type = p$3.read_shift(4) - 1]
											};
											break;
										default: throw "Cannot apply repeat for QPW cell type " + (flags & 31);
									}
									if (fmtidx != -1);
									if (!(!o$10.sheetStubs && cell.t == "z")) {
										if (s$5["!data"] != null) {
											if (!s$5["!data"][R$1]) s$5["!data"][R$1] = [];
											s$5["!data"][R$1][C$2] = cell;
										} else s$5[CC + encode_row(R$1)] = cell;
									}
									++R$1;
									--cnt;
								}
							}
						}
						break;
					case 3074:
						{
							C$2 = p$3.read_shift(2);
							R$1 = p$3.read_shift(4);
							var str = parse_qpw_str(p$3);
							if (s$5["!data"] != null) {
								if (!s$5["!data"][R$1]) s$5["!data"][R$1] = [];
								s$5["!data"][R$1][C$2] = {
									t: "s",
									v: str
								};
							} else s$5[encode_col(C$2) + encode_row(R$1)] = {
								t: "s",
								v: str
							};
						}
						break;
					default: break;
				}
				d$5.l += length;
			}
			return wb;
		}
		return {
			sheet_to_wk1,
			book_to_wk3,
			to_workbook: lotus_to_workbook
		};
	})();
	parse_rs = /* @__PURE__ */ (function() {
		function parse_r(r$10) {
			var t$6 = str_match_xml_ns(r$10, "t");
			if (!t$6) return {
				t: "s",
				v: ""
			};
			var o$10 = {
				t: "s",
				v: unescapexml(t$6[1])
			};
			var rpr = str_match_xml_ns(r$10, "rPr");
			if (rpr) o$10.s = parse_rpr(rpr[1]);
			return o$10;
		}
		var rregex = /<(?:\w+:)?r>/g, rend = /<\/(?:\w+:)?r>/;
		return function parse_rs$1(rs) {
			return rs.replace(rregex, "").split(rend).map(parse_r).filter(function(r$10) {
				return r$10.v;
			});
		};
	})();
	rs_to_html = /* @__PURE__ */ (function parse_rs_factory() {
		var nlregex = /(\r\n|\n)/g;
		function parse_rpr2(font, intro, outro) {
			var style = [];
			if (font.u) style.push("text-decoration: underline;");
			if (font.uval) style.push("text-underline-style:" + font.uval + ";");
			if (font.sz) style.push("font-size:" + font.sz + "pt;");
			if (font.outline) style.push("text-effect: outline;");
			if (font.shadow) style.push("text-shadow: auto;");
			intro.push("<span style=\"" + style.join("") + "\">");
			if (font.b) {
				intro.push("<b>");
				outro.push("</b>");
			}
			if (font.i) {
				intro.push("<i>");
				outro.push("</i>");
			}
			if (font.strike) {
				intro.push("<s>");
				outro.push("</s>");
			}
			var align = font.valign || "";
			if (align == "superscript" || align == "super") align = "sup";
			else if (align == "subscript") align = "sub";
			if (align != "") {
				intro.push("<" + align + ">");
				outro.push("</" + align + ">");
			}
			outro.push("</span>");
			return font;
		}
		function r_to_html(r$10) {
			var terms = [
				[],
				r$10.v,
				[]
			];
			if (!r$10.v) return "";
			if (r$10.s) parse_rpr2(r$10.s, terms[0], terms[2]);
			return terms[0].join("") + terms[1].replace(nlregex, "<br/>") + terms[2].join("");
		}
		return function parse_rs$1(rs) {
			return rs.map(r_to_html).join("");
		};
	})();
	sitregex = /<(?:\w+:)?t\b[^<>]*>([^<]*)<\/(?:\w+:)?t>/g, sirregex = /<(?:\w+:)?r\b[^<>]*>/;
	sstr1 = /<(?:\w+:)?(?:si|sstItem)>/g;
	sstr2 = /<\/(?:\w+:)?(?:si|sstItem)>/;
	straywsregex = /^\s|\s$|[\t\n\r]/;
	write_BrtSSTItem = write_RichStr;
	crypto_CreateXorArray_Method1 = /* @__PURE__ */ (function() {
		var PadArray = [
			187,
			255,
			255,
			186,
			255,
			255,
			185,
			128,
			0,
			190,
			15,
			0,
			191,
			15,
			0
		];
		var InitialCode = [
			57840,
			7439,
			52380,
			33984,
			4364,
			3600,
			61902,
			12606,
			6258,
			57657,
			54287,
			34041,
			10252,
			43370,
			20163
		];
		var XorMatrix = [
			44796,
			19929,
			39858,
			10053,
			20106,
			40212,
			10761,
			31585,
			63170,
			64933,
			60267,
			50935,
			40399,
			11199,
			17763,
			35526,
			1453,
			2906,
			5812,
			11624,
			23248,
			885,
			1770,
			3540,
			7080,
			14160,
			28320,
			56640,
			55369,
			41139,
			20807,
			41614,
			21821,
			43642,
			17621,
			28485,
			56970,
			44341,
			19019,
			38038,
			14605,
			29210,
			60195,
			50791,
			40175,
			10751,
			21502,
			43004,
			24537,
			18387,
			36774,
			3949,
			7898,
			15796,
			31592,
			63184,
			47201,
			24803,
			49606,
			37805,
			14203,
			28406,
			56812,
			17824,
			35648,
			1697,
			3394,
			6788,
			13576,
			27152,
			43601,
			17539,
			35078,
			557,
			1114,
			2228,
			4456,
			30388,
			60776,
			51953,
			34243,
			7079,
			14158,
			28316,
			14128,
			28256,
			56512,
			43425,
			17251,
			34502,
			7597,
			13105,
			26210,
			52420,
			35241,
			883,
			1766,
			3532,
			4129,
			8258,
			16516,
			33032,
			4657,
			9314,
			18628
		];
		var Ror = function(Byte) {
			return (Byte / 2 | Byte * 128) & 255;
		};
		var XorRor = function(byte1, byte2) {
			return Ror(byte1 ^ byte2);
		};
		var CreateXorKey_Method1 = function(Password) {
			var XorKey = InitialCode[Password.length - 1];
			var CurrentElement = 104;
			for (var i$7 = Password.length - 1; i$7 >= 0; --i$7) {
				var Char = Password[i$7];
				for (var j$2 = 0; j$2 != 7; ++j$2) {
					if (Char & 64) XorKey ^= XorMatrix[CurrentElement];
					Char *= 2;
					--CurrentElement;
				}
			}
			return XorKey;
		};
		return function(password) {
			var Password = _JS2ANSI(password);
			var XorKey = CreateXorKey_Method1(Password);
			var Index$1 = Password.length;
			var ObfuscationArray = new_raw_buf(16);
			for (var i$7 = 0; i$7 != 16; ++i$7) ObfuscationArray[i$7] = 0;
			var Temp, PasswordLastChar, PadIndex;
			if ((Index$1 & 1) === 1) {
				Temp = XorKey >> 8;
				ObfuscationArray[Index$1] = XorRor(PadArray[0], Temp);
				--Index$1;
				Temp = XorKey & 255;
				PasswordLastChar = Password[Password.length - 1];
				ObfuscationArray[Index$1] = XorRor(PasswordLastChar, Temp);
			}
			while (Index$1 > 0) {
				--Index$1;
				Temp = XorKey >> 8;
				ObfuscationArray[Index$1] = XorRor(Password[Index$1], Temp);
				--Index$1;
				Temp = XorKey & 255;
				ObfuscationArray[Index$1] = XorRor(Password[Index$1], Temp);
			}
			Index$1 = 15;
			PadIndex = 15 - Password.length;
			while (PadIndex > 0) {
				Temp = XorKey >> 8;
				ObfuscationArray[Index$1] = XorRor(PadArray[PadIndex], Temp);
				--Index$1;
				--PadIndex;
				Temp = XorKey & 255;
				ObfuscationArray[Index$1] = XorRor(Password[Index$1], Temp);
				--Index$1;
				--PadIndex;
			}
			return ObfuscationArray;
		};
	})();
	crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) {
		if (!O) O = Data;
		if (!XorArray) XorArray = crypto_CreateXorArray_Method1(password);
		var Index$1, Value;
		for (Index$1 = 0; Index$1 != Data.length; ++Index$1) {
			Value = Data[Index$1];
			Value ^= XorArray[XorArrayIndex];
			Value = (Value >> 5 | Value << 3) & 255;
			O[Index$1] = Value;
			++XorArrayIndex;
		}
		return [
			O,
			XorArrayIndex,
			XorArray
		];
	};
	crypto_MakeXorDecryptor = function(password) {
		var XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);
		return function(Data) {
			var O = crypto_DecryptData_Method1("", Data, XorArrayIndex, XorArray);
			XorArrayIndex = O[1];
			return O[0];
		};
	};
	DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;
	DEF_PPI = 96, PPI = DEF_PPI;
	XLMLPatternTypeMap = {
		"None": "none",
		"Solid": "solid",
		"Gray50": "mediumGray",
		"Gray75": "darkGray",
		"Gray25": "lightGray",
		"HorzStripe": "darkHorizontal",
		"VertStripe": "darkVertical",
		"ReverseDiagStripe": "darkDown",
		"DiagStripe": "darkUp",
		"DiagCross": "darkGrid",
		"ThickDiagCross": "darkTrellis",
		"ThinHorzStripe": "lightHorizontal",
		"ThinVertStripe": "lightVertical",
		"ThinReverseDiagStripe": "lightDown",
		"ThinHorzCross": "lightGrid"
	};
	cellXF_uint = [
		"numFmtId",
		"fillId",
		"fontId",
		"borderId",
		"xfId"
	];
	cellXF_bool = [
		"applyAlignment",
		"applyBorder",
		"applyFill",
		"applyFont",
		"applyNumberFormat",
		"applyProtection",
		"pivotButton",
		"quotePrefix"
	];
	parse_sty_xml = /* @__PURE__ */ (function make_pstyx() {
		return function parse_sty_xml$1(data, themes, opts) {
			var styles$1 = {};
			if (!data) return styles$1;
			data = remove_doctype(str_remove_ng(data, "<!--", "-->"));
			var t$6;
			if (t$6 = str_match_xml_ns(data, "numFmts")) parse_numFmts(t$6[0], styles$1, opts);
			if (t$6 = str_match_xml_ns(data, "fonts")) parse_fonts(t$6[0], styles$1, themes, opts);
			if (t$6 = str_match_xml_ns(data, "fills")) parse_fills(t$6[0], styles$1, themes, opts);
			if (t$6 = str_match_xml_ns(data, "borders")) parse_borders(t$6[0], styles$1, themes, opts);
			if (t$6 = str_match_xml_ns(data, "cellXfs")) parse_cellXfs(t$6[0], styles$1, opts);
			return styles$1;
		};
	})();
	XLSBFillPTNames = [
		"none",
		"solid",
		"mediumGray",
		"darkGray",
		"lightGray",
		"darkHorizontal",
		"darkVertical",
		"darkDown",
		"darkUp",
		"darkGrid",
		"darkTrellis",
		"lightHorizontal",
		"lightVertical",
		"lightDown",
		"lightUp",
		"lightGrid",
		"lightTrellis",
		"gray125",
		"gray0625"
	];
	;
	parse_BrtFill = parsenoop;
	parse_BrtBorder = parsenoop;
	XLSXThemeClrScheme = [
		"</a:lt1>",
		"</a:dk1>",
		"</a:lt2>",
		"</a:dk2>",
		"</a:accent1>",
		"</a:accent2>",
		"</a:accent3>",
		"</a:accent4>",
		"</a:accent5>",
		"</a:accent6>",
		"</a:hlink>",
		"</a:folHlink>"
	];
	parse_BrtCommentAuthor = parse_XLWideString;
	CT_VBA = "application/vnd.ms-office.vbaProject";
	VBAFMTS = [
		"xlsb",
		"xlsm",
		"xlam",
		"biff8",
		"xla"
	];
	rc_to_a1 = /* @__PURE__ */ (function() {
		var rcregex = /(^|[^A-Za-z_])R(\[?-?\d+\]|[1-9]\d*|)C(\[?-?\d+\]|[1-9]\d*|)(?![A-Za-z0-9_])/g;
		var rcbase = {
			r: 0,
			c: 0
		};
		function rcfunc($$, $1, $2, $3) {
			var cRel = false, rRel = false;
			if ($2.length == 0) rRel = true;
			else if ($2.charAt(0) == "[") {
				rRel = true;
				$2 = $2.slice(1, -1);
			}
			if ($3.length == 0) cRel = true;
			else if ($3.charAt(0) == "[") {
				cRel = true;
				$3 = $3.slice(1, -1);
			}
			var R$1 = $2.length > 0 ? parseInt($2, 10) | 0 : 0, C$2 = $3.length > 0 ? parseInt($3, 10) | 0 : 0;
			if (cRel) C$2 += rcbase.c;
			else --C$2;
			if (rRel) R$1 += rcbase.r;
			else --R$1;
			return $1 + (cRel ? "" : "$") + encode_col(C$2) + (rRel ? "" : "$") + encode_row(R$1);
		}
		return function rc_to_a1$1(fstr, base) {
			rcbase = base;
			return fstr.replace(rcregex, rcfunc);
		};
	})();
	crefregex = /(^|[^._A-Z0-9])(\$?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])(\$?)(\d{1,7})(?![_.\(A-Za-z0-9])/g;
	try {
		crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5})(?![_.\(A-Za-z0-9])/g;
	} catch (e$10) {}
	a1_to_rc = /* @__PURE__ */ (function() {
		return function a1_to_rc$1(fstr, base) {
			return fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {
				var c$7 = decode_col($3) - ($2 ? 0 : base.c);
				var r$10 = decode_row($5) - ($4 ? 0 : base.r);
				var R$1 = $4 == "$" ? r$10 + 1 : r$10 == 0 ? "" : "[" + r$10 + "]";
				var C$2 = $2 == "$" ? c$7 + 1 : c$7 == 0 ? "" : "[" + c$7 + "]";
				return $1 + "R" + R$1 + "C" + C$2;
			});
		};
	})();
	parse_PtgMemErr = parsenoop;
	parse_PtgMemNoMem = parsenoop;
	parse_PtgTbl = parsenoop;
	parse_PtgElfCol = parse_PtgElfLoc;
	parse_PtgElfColS = parse_PtgElfNoop;
	parse_PtgElfColSV = parse_PtgElfNoop;
	parse_PtgElfColV = parse_PtgElfLoc;
	parse_PtgElfRadical = parse_PtgElfLoc;
	parse_PtgElfRadicalLel = parse_PtgElfLel;
	parse_PtgElfRadicalS = parse_PtgElfNoop;
	parse_PtgElfRw = parse_PtgElfLoc;
	parse_PtgElfRwV = parse_PtgElfLoc;
	PtgListRT = [
		"Data",
		"All",
		"Headers",
		"??",
		"?Data2",
		"??",
		"?DataHeaders",
		"??",
		"Totals",
		"??",
		"??",
		"??",
		"?DataTotals",
		"??",
		"??",
		"??",
		"?Current"
	];
	PtgTypes = {
		1: {
			n: "PtgExp",
			f: parse_PtgExp
		},
		2: {
			n: "PtgTbl",
			f: parse_PtgTbl
		},
		3: {
			n: "PtgAdd",
			f: parseread1
		},
		4: {
			n: "PtgSub",
			f: parseread1
		},
		5: {
			n: "PtgMul",
			f: parseread1
		},
		6: {
			n: "PtgDiv",
			f: parseread1
		},
		7: {
			n: "PtgPower",
			f: parseread1
		},
		8: {
			n: "PtgConcat",
			f: parseread1
		},
		9: {
			n: "PtgLt",
			f: parseread1
		},
		10: {
			n: "PtgLe",
			f: parseread1
		},
		11: {
			n: "PtgEq",
			f: parseread1
		},
		12: {
			n: "PtgGe",
			f: parseread1
		},
		13: {
			n: "PtgGt",
			f: parseread1
		},
		14: {
			n: "PtgNe",
			f: parseread1
		},
		15: {
			n: "PtgIsect",
			f: parseread1
		},
		16: {
			n: "PtgUnion",
			f: parseread1
		},
		17: {
			n: "PtgRange",
			f: parseread1
		},
		18: {
			n: "PtgUplus",
			f: parseread1
		},
		19: {
			n: "PtgUminus",
			f: parseread1
		},
		20: {
			n: "PtgPercent",
			f: parseread1
		},
		21: {
			n: "PtgParen",
			f: parseread1
		},
		22: {
			n: "PtgMissArg",
			f: parseread1
		},
		23: {
			n: "PtgStr",
			f: parse_PtgStr
		},
		26: {
			n: "PtgSheet",
			f: parse_PtgSheet
		},
		27: {
			n: "PtgEndSheet",
			f: parse_PtgEndSheet
		},
		28: {
			n: "PtgErr",
			f: parse_PtgErr
		},
		29: {
			n: "PtgBool",
			f: parse_PtgBool
		},
		30: {
			n: "PtgInt",
			f: parse_PtgInt
		},
		31: {
			n: "PtgNum",
			f: parse_PtgNum
		},
		32: {
			n: "PtgArray",
			f: parse_PtgArray
		},
		33: {
			n: "PtgFunc",
			f: parse_PtgFunc
		},
		34: {
			n: "PtgFuncVar",
			f: parse_PtgFuncVar
		},
		35: {
			n: "PtgName",
			f: parse_PtgName
		},
		36: {
			n: "PtgRef",
			f: parse_PtgRef
		},
		37: {
			n: "PtgArea",
			f: parse_PtgArea
		},
		38: {
			n: "PtgMemArea",
			f: parse_PtgMemArea
		},
		39: {
			n: "PtgMemErr",
			f: parse_PtgMemErr
		},
		40: {
			n: "PtgMemNoMem",
			f: parse_PtgMemNoMem
		},
		41: {
			n: "PtgMemFunc",
			f: parse_PtgMemFunc
		},
		42: {
			n: "PtgRefErr",
			f: parse_PtgRefErr
		},
		43: {
			n: "PtgAreaErr",
			f: parse_PtgAreaErr
		},
		44: {
			n: "PtgRefN",
			f: parse_PtgRefN
		},
		45: {
			n: "PtgAreaN",
			f: parse_PtgAreaN
		},
		46: {
			n: "PtgMemAreaN",
			f: parse_PtgMemAreaN
		},
		47: {
			n: "PtgMemNoMemN",
			f: parse_PtgMemNoMemN
		},
		57: {
			n: "PtgNameX",
			f: parse_PtgNameX
		},
		58: {
			n: "PtgRef3d",
			f: parse_PtgRef3d
		},
		59: {
			n: "PtgArea3d",
			f: parse_PtgArea3d
		},
		60: {
			n: "PtgRefErr3d",
			f: parse_PtgRefErr3d
		},
		61: {
			n: "PtgAreaErr3d",
			f: parse_PtgAreaErr3d
		},
		255: {}
	};
	PtgDupes = {
		64: 32,
		96: 32,
		65: 33,
		97: 33,
		66: 34,
		98: 34,
		67: 35,
		99: 35,
		68: 36,
		100: 36,
		69: 37,
		101: 37,
		70: 38,
		102: 38,
		71: 39,
		103: 39,
		72: 40,
		104: 40,
		73: 41,
		105: 41,
		74: 42,
		106: 42,
		75: 43,
		107: 43,
		76: 44,
		108: 44,
		77: 45,
		109: 45,
		78: 46,
		110: 46,
		79: 47,
		111: 47,
		88: 34,
		120: 34,
		89: 57,
		121: 57,
		90: 58,
		122: 58,
		91: 59,
		123: 59,
		92: 60,
		124: 60,
		93: 61,
		125: 61
	};
	Ptg18 = {
		1: {
			n: "PtgElfLel",
			f: parse_PtgElfLel
		},
		2: {
			n: "PtgElfRw",
			f: parse_PtgElfRw
		},
		3: {
			n: "PtgElfCol",
			f: parse_PtgElfCol
		},
		6: {
			n: "PtgElfRwV",
			f: parse_PtgElfRwV
		},
		7: {
			n: "PtgElfColV",
			f: parse_PtgElfColV
		},
		10: {
			n: "PtgElfRadical",
			f: parse_PtgElfRadical
		},
		11: {
			n: "PtgElfRadicalS",
			f: parse_PtgElfRadicalS
		},
		13: {
			n: "PtgElfColS",
			f: parse_PtgElfColS
		},
		15: {
			n: "PtgElfColSV",
			f: parse_PtgElfColSV
		},
		16: {
			n: "PtgElfRadicalLel",
			f: parse_PtgElfRadicalLel
		},
		25: {
			n: "PtgList",
			f: parse_PtgList
		},
		29: {
			n: "PtgSxName",
			f: parse_PtgSxName
		},
		255: {}
	};
	Ptg19 = {
		0: {
			n: "PtgAttrNoop",
			f: parse_PtgAttrNoop
		},
		1: {
			n: "PtgAttrSemi",
			f: parse_PtgAttrSemi
		},
		2: {
			n: "PtgAttrIf",
			f: parse_PtgAttrIf
		},
		4: {
			n: "PtgAttrChoose",
			f: parse_PtgAttrChoose
		},
		8: {
			n: "PtgAttrGoto",
			f: parse_PtgAttrGoto
		},
		16: {
			n: "PtgAttrSum",
			f: parse_PtgAttrSum
		},
		32: {
			n: "PtgAttrBaxcel",
			f: parse_PtgAttrBaxcel
		},
		33: {
			n: "PtgAttrBaxcel",
			f: parse_PtgAttrBaxcel
		},
		64: {
			n: "PtgAttrSpace",
			f: parse_PtgAttrSpace
		},
		65: {
			n: "PtgAttrSpaceSemi",
			f: parse_PtgAttrSpaceSemi
		},
		128: {
			n: "PtgAttrIfError",
			f: parse_PtgAttrIfError
		},
		255: {}
	};
	PtgBinOp = {
		PtgAdd: "+",
		PtgConcat: "&",
		PtgDiv: "/",
		PtgEq: "=",
		PtgGe: ">=",
		PtgGt: ">",
		PtgLe: "<=",
		PtgLt: "<",
		PtgMul: "*",
		PtgNe: "<>",
		PtgPower: "^",
		PtgSub: "-"
	};
	parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;
	parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;
	parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;
	parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;
	write_XLSBNameParsedFormula = write_XLSBFormula;
	Cetab = {
		0: "BEEP",
		1: "OPEN",
		2: "OPEN.LINKS",
		3: "CLOSE.ALL",
		4: "SAVE",
		5: "SAVE.AS",
		6: "FILE.DELETE",
		7: "PAGE.SETUP",
		8: "PRINT",
		9: "PRINTER.SETUP",
		10: "QUIT",
		11: "NEW.WINDOW",
		12: "ARRANGE.ALL",
		13: "WINDOW.SIZE",
		14: "WINDOW.MOVE",
		15: "FULL",
		16: "CLOSE",
		17: "RUN",
		22: "SET.PRINT.AREA",
		23: "SET.PRINT.TITLES",
		24: "SET.PAGE.BREAK",
		25: "REMOVE.PAGE.BREAK",
		26: "FONT",
		27: "DISPLAY",
		28: "PROTECT.DOCUMENT",
		29: "PRECISION",
		30: "A1.R1C1",
		31: "CALCULATE.NOW",
		32: "CALCULATION",
		34: "DATA.FIND",
		35: "EXTRACT",
		36: "DATA.DELETE",
		37: "SET.DATABASE",
		38: "SET.CRITERIA",
		39: "SORT",
		40: "DATA.SERIES",
		41: "TABLE",
		42: "FORMAT.NUMBER",
		43: "ALIGNMENT",
		44: "STYLE",
		45: "BORDER",
		46: "CELL.PROTECTION",
		47: "COLUMN.WIDTH",
		48: "UNDO",
		49: "CUT",
		50: "COPY",
		51: "PASTE",
		52: "CLEAR",
		53: "PASTE.SPECIAL",
		54: "EDIT.DELETE",
		55: "INSERT",
		56: "FILL.RIGHT",
		57: "FILL.DOWN",
		61: "DEFINE.NAME",
		62: "CREATE.NAMES",
		63: "FORMULA.GOTO",
		64: "FORMULA.FIND",
		65: "SELECT.LAST.CELL",
		66: "SHOW.ACTIVE.CELL",
		67: "GALLERY.AREA",
		68: "GALLERY.BAR",
		69: "GALLERY.COLUMN",
		70: "GALLERY.LINE",
		71: "GALLERY.PIE",
		72: "GALLERY.SCATTER",
		73: "COMBINATION",
		74: "PREFERRED",
		75: "ADD.OVERLAY",
		76: "GRIDLINES",
		77: "SET.PREFERRED",
		78: "AXES",
		79: "LEGEND",
		80: "ATTACH.TEXT",
		81: "ADD.ARROW",
		82: "SELECT.CHART",
		83: "SELECT.PLOT.AREA",
		84: "PATTERNS",
		85: "MAIN.CHART",
		86: "OVERLAY",
		87: "SCALE",
		88: "FORMAT.LEGEND",
		89: "FORMAT.TEXT",
		90: "EDIT.REPEAT",
		91: "PARSE",
		92: "JUSTIFY",
		93: "HIDE",
		94: "UNHIDE",
		95: "WORKSPACE",
		96: "FORMULA",
		97: "FORMULA.FILL",
		98: "FORMULA.ARRAY",
		99: "DATA.FIND.NEXT",
		100: "DATA.FIND.PREV",
		101: "FORMULA.FIND.NEXT",
		102: "FORMULA.FIND.PREV",
		103: "ACTIVATE",
		104: "ACTIVATE.NEXT",
		105: "ACTIVATE.PREV",
		106: "UNLOCKED.NEXT",
		107: "UNLOCKED.PREV",
		108: "COPY.PICTURE",
		109: "SELECT",
		110: "DELETE.NAME",
		111: "DELETE.FORMAT",
		112: "VLINE",
		113: "HLINE",
		114: "VPAGE",
		115: "HPAGE",
		116: "VSCROLL",
		117: "HSCROLL",
		118: "ALERT",
		119: "NEW",
		120: "CANCEL.COPY",
		121: "SHOW.CLIPBOARD",
		122: "MESSAGE",
		124: "PASTE.LINK",
		125: "APP.ACTIVATE",
		126: "DELETE.ARROW",
		127: "ROW.HEIGHT",
		128: "FORMAT.MOVE",
		129: "FORMAT.SIZE",
		130: "FORMULA.REPLACE",
		131: "SEND.KEYS",
		132: "SELECT.SPECIAL",
		133: "APPLY.NAMES",
		134: "REPLACE.FONT",
		135: "FREEZE.PANES",
		136: "SHOW.INFO",
		137: "SPLIT",
		138: "ON.WINDOW",
		139: "ON.DATA",
		140: "DISABLE.INPUT",
		142: "OUTLINE",
		143: "LIST.NAMES",
		144: "FILE.CLOSE",
		145: "SAVE.WORKBOOK",
		146: "DATA.FORM",
		147: "COPY.CHART",
		148: "ON.TIME",
		149: "WAIT",
		150: "FORMAT.FONT",
		151: "FILL.UP",
		152: "FILL.LEFT",
		153: "DELETE.OVERLAY",
		155: "SHORT.MENUS",
		159: "SET.UPDATE.STATUS",
		161: "COLOR.PALETTE",
		162: "DELETE.STYLE",
		163: "WINDOW.RESTORE",
		164: "WINDOW.MAXIMIZE",
		166: "CHANGE.LINK",
		167: "CALCULATE.DOCUMENT",
		168: "ON.KEY",
		169: "APP.RESTORE",
		170: "APP.MOVE",
		171: "APP.SIZE",
		172: "APP.MINIMIZE",
		173: "APP.MAXIMIZE",
		174: "BRING.TO.FRONT",
		175: "SEND.TO.BACK",
		185: "MAIN.CHART.TYPE",
		186: "OVERLAY.CHART.TYPE",
		187: "SELECT.END",
		188: "OPEN.MAIL",
		189: "SEND.MAIL",
		190: "STANDARD.FONT",
		191: "CONSOLIDATE",
		192: "SORT.SPECIAL",
		193: "GALLERY.3D.AREA",
		194: "GALLERY.3D.COLUMN",
		195: "GALLERY.3D.LINE",
		196: "GALLERY.3D.PIE",
		197: "VIEW.3D",
		198: "GOAL.SEEK",
		199: "WORKGROUP",
		200: "FILL.GROUP",
		201: "UPDATE.LINK",
		202: "PROMOTE",
		203: "DEMOTE",
		204: "SHOW.DETAIL",
		206: "UNGROUP",
		207: "OBJECT.PROPERTIES",
		208: "SAVE.NEW.OBJECT",
		209: "SHARE",
		210: "SHARE.NAME",
		211: "DUPLICATE",
		212: "APPLY.STYLE",
		213: "ASSIGN.TO.OBJECT",
		214: "OBJECT.PROTECTION",
		215: "HIDE.OBJECT",
		216: "SET.EXTRACT",
		217: "CREATE.PUBLISHER",
		218: "SUBSCRIBE.TO",
		219: "ATTRIBUTES",
		220: "SHOW.TOOLBAR",
		222: "PRINT.PREVIEW",
		223: "EDIT.COLOR",
		224: "SHOW.LEVELS",
		225: "FORMAT.MAIN",
		226: "FORMAT.OVERLAY",
		227: "ON.RECALC",
		228: "EDIT.SERIES",
		229: "DEFINE.STYLE",
		240: "LINE.PRINT",
		243: "ENTER.DATA",
		249: "GALLERY.RADAR",
		250: "MERGE.STYLES",
		251: "EDITION.OPTIONS",
		252: "PASTE.PICTURE",
		253: "PASTE.PICTURE.LINK",
		254: "SPELLING",
		256: "ZOOM",
		259: "INSERT.OBJECT",
		260: "WINDOW.MINIMIZE",
		265: "SOUND.NOTE",
		266: "SOUND.PLAY",
		267: "FORMAT.SHAPE",
		268: "EXTEND.POLYGON",
		269: "FORMAT.AUTO",
		272: "GALLERY.3D.BAR",
		273: "GALLERY.3D.SURFACE",
		274: "FILL.AUTO",
		276: "CUSTOMIZE.TOOLBAR",
		277: "ADD.TOOL",
		278: "EDIT.OBJECT",
		279: "ON.DOUBLECLICK",
		280: "ON.ENTRY",
		281: "WORKBOOK.ADD",
		282: "WORKBOOK.MOVE",
		283: "WORKBOOK.COPY",
		284: "WORKBOOK.OPTIONS",
		285: "SAVE.WORKSPACE",
		288: "CHART.WIZARD",
		289: "DELETE.TOOL",
		290: "MOVE.TOOL",
		291: "WORKBOOK.SELECT",
		292: "WORKBOOK.ACTIVATE",
		293: "ASSIGN.TO.TOOL",
		295: "COPY.TOOL",
		296: "RESET.TOOL",
		297: "CONSTRAIN.NUMERIC",
		298: "PASTE.TOOL",
		302: "WORKBOOK.NEW",
		305: "SCENARIO.CELLS",
		306: "SCENARIO.DELETE",
		307: "SCENARIO.ADD",
		308: "SCENARIO.EDIT",
		309: "SCENARIO.SHOW",
		310: "SCENARIO.SHOW.NEXT",
		311: "SCENARIO.SUMMARY",
		312: "PIVOT.TABLE.WIZARD",
		313: "PIVOT.FIELD.PROPERTIES",
		314: "PIVOT.FIELD",
		315: "PIVOT.ITEM",
		316: "PIVOT.ADD.FIELDS",
		318: "OPTIONS.CALCULATION",
		319: "OPTIONS.EDIT",
		320: "OPTIONS.VIEW",
		321: "ADDIN.MANAGER",
		322: "MENU.EDITOR",
		323: "ATTACH.TOOLBARS",
		324: "VBAActivate",
		325: "OPTIONS.CHART",
		328: "VBA.INSERT.FILE",
		330: "VBA.PROCEDURE.DEFINITION",
		336: "ROUTING.SLIP",
		338: "ROUTE.DOCUMENT",
		339: "MAIL.LOGON",
		342: "INSERT.PICTURE",
		343: "EDIT.TOOL",
		344: "GALLERY.DOUGHNUT",
		350: "CHART.TREND",
		352: "PIVOT.ITEM.PROPERTIES",
		354: "WORKBOOK.INSERT",
		355: "OPTIONS.TRANSITION",
		356: "OPTIONS.GENERAL",
		370: "FILTER.ADVANCED",
		373: "MAIL.ADD.MAILER",
		374: "MAIL.DELETE.MAILER",
		375: "MAIL.REPLY",
		376: "MAIL.REPLY.ALL",
		377: "MAIL.FORWARD",
		378: "MAIL.NEXT.LETTER",
		379: "DATA.LABEL",
		380: "INSERT.TITLE",
		381: "FONT.PROPERTIES",
		382: "MACRO.OPTIONS",
		383: "WORKBOOK.HIDE",
		384: "WORKBOOK.UNHIDE",
		385: "WORKBOOK.DELETE",
		386: "WORKBOOK.NAME",
		388: "GALLERY.CUSTOM",
		390: "ADD.CHART.AUTOFORMAT",
		391: "DELETE.CHART.AUTOFORMAT",
		392: "CHART.ADD.DATA",
		393: "AUTO.OUTLINE",
		394: "TAB.ORDER",
		395: "SHOW.DIALOG",
		396: "SELECT.ALL",
		397: "UNGROUP.SHEETS",
		398: "SUBTOTAL.CREATE",
		399: "SUBTOTAL.REMOVE",
		400: "RENAME.OBJECT",
		412: "WORKBOOK.SCROLL",
		413: "WORKBOOK.NEXT",
		414: "WORKBOOK.PREV",
		415: "WORKBOOK.TAB.SPLIT",
		416: "FULL.SCREEN",
		417: "WORKBOOK.PROTECT",
		420: "SCROLLBAR.PROPERTIES",
		421: "PIVOT.SHOW.PAGES",
		422: "TEXT.TO.COLUMNS",
		423: "FORMAT.CHARTTYPE",
		424: "LINK.FORMAT",
		425: "TRACER.DISPLAY",
		430: "TRACER.NAVIGATE",
		431: "TRACER.CLEAR",
		432: "TRACER.ERROR",
		433: "PIVOT.FIELD.GROUP",
		434: "PIVOT.FIELD.UNGROUP",
		435: "CHECKBOX.PROPERTIES",
		436: "LABEL.PROPERTIES",
		437: "LISTBOX.PROPERTIES",
		438: "EDITBOX.PROPERTIES",
		439: "PIVOT.REFRESH",
		440: "LINK.COMBO",
		441: "OPEN.TEXT",
		442: "HIDE.DIALOG",
		443: "SET.DIALOG.FOCUS",
		444: "ENABLE.OBJECT",
		445: "PUSHBUTTON.PROPERTIES",
		446: "SET.DIALOG.DEFAULT",
		447: "FILTER",
		448: "FILTER.SHOW.ALL",
		449: "CLEAR.OUTLINE",
		450: "FUNCTION.WIZARD",
		451: "ADD.LIST.ITEM",
		452: "SET.LIST.ITEM",
		453: "REMOVE.LIST.ITEM",
		454: "SELECT.LIST.ITEM",
		455: "SET.CONTROL.VALUE",
		456: "SAVE.COPY.AS",
		458: "OPTIONS.LISTS.ADD",
		459: "OPTIONS.LISTS.DELETE",
		460: "SERIES.AXES",
		461: "SERIES.X",
		462: "SERIES.Y",
		463: "ERRORBAR.X",
		464: "ERRORBAR.Y",
		465: "FORMAT.CHART",
		466: "SERIES.ORDER",
		467: "MAIL.LOGOFF",
		468: "CLEAR.ROUTING.SLIP",
		469: "APP.ACTIVATE.MICROSOFT",
		470: "MAIL.EDIT.MAILER",
		471: "ON.SHEET",
		472: "STANDARD.WIDTH",
		473: "SCENARIO.MERGE",
		474: "SUMMARY.INFO",
		475: "FIND.FILE",
		476: "ACTIVE.CELL.FONT",
		477: "ENABLE.TIPWIZARD",
		478: "VBA.MAKE.ADDIN",
		480: "INSERTDATATABLE",
		481: "WORKGROUP.OPTIONS",
		482: "MAIL.SEND.MAILER",
		485: "AUTOCORRECT",
		489: "POST.DOCUMENT",
		491: "PICKLIST",
		493: "VIEW.SHOW",
		494: "VIEW.DEFINE",
		495: "VIEW.DELETE",
		509: "SHEET.BACKGROUND",
		510: "INSERT.MAP.OBJECT",
		511: "OPTIONS.MENONO",
		517: "MSOCHECKS",
		518: "NORMAL",
		519: "LAYOUT",
		520: "RM.PRINT.AREA",
		521: "CLEAR.PRINT.AREA",
		522: "ADD.PRINT.AREA",
		523: "MOVE.BRK",
		545: "HIDECURR.NOTE",
		546: "HIDEALL.NOTES",
		547: "DELETE.NOTE",
		548: "TRAVERSE.NOTES",
		549: "ACTIVATE.NOTES",
		620: "PROTECT.REVISIONS",
		621: "UNPROTECT.REVISIONS",
		647: "OPTIONS.ME",
		653: "WEB.PUBLISH",
		667: "NEWWEBQUERY",
		673: "PIVOT.TABLE.CHART",
		753: "OPTIONS.SAVE",
		755: "OPTIONS.SPELL",
		808: "HIDEALL.INKANNOTS"
	};
	Ftab = {
		0: "COUNT",
		1: "IF",
		2: "ISNA",
		3: "ISERROR",
		4: "SUM",
		5: "AVERAGE",
		6: "MIN",
		7: "MAX",
		8: "ROW",
		9: "COLUMN",
		10: "NA",
		11: "NPV",
		12: "STDEV",
		13: "DOLLAR",
		14: "FIXED",
		15: "SIN",
		16: "COS",
		17: "TAN",
		18: "ATAN",
		19: "PI",
		20: "SQRT",
		21: "EXP",
		22: "LN",
		23: "LOG10",
		24: "ABS",
		25: "INT",
		26: "SIGN",
		27: "ROUND",
		28: "LOOKUP",
		29: "INDEX",
		30: "REPT",
		31: "MID",
		32: "LEN",
		33: "VALUE",
		34: "TRUE",
		35: "FALSE",
		36: "AND",
		37: "OR",
		38: "NOT",
		39: "MOD",
		40: "DCOUNT",
		41: "DSUM",
		42: "DAVERAGE",
		43: "DMIN",
		44: "DMAX",
		45: "DSTDEV",
		46: "VAR",
		47: "DVAR",
		48: "TEXT",
		49: "LINEST",
		50: "TREND",
		51: "LOGEST",
		52: "GROWTH",
		53: "GOTO",
		54: "HALT",
		55: "RETURN",
		56: "PV",
		57: "FV",
		58: "NPER",
		59: "PMT",
		60: "RATE",
		61: "MIRR",
		62: "IRR",
		63: "RAND",
		64: "MATCH",
		65: "DATE",
		66: "TIME",
		67: "DAY",
		68: "MONTH",
		69: "YEAR",
		70: "WEEKDAY",
		71: "HOUR",
		72: "MINUTE",
		73: "SECOND",
		74: "NOW",
		75: "AREAS",
		76: "ROWS",
		77: "COLUMNS",
		78: "OFFSET",
		79: "ABSREF",
		80: "RELREF",
		81: "ARGUMENT",
		82: "SEARCH",
		83: "TRANSPOSE",
		84: "ERROR",
		85: "STEP",
		86: "TYPE",
		87: "ECHO",
		88: "SET.NAME",
		89: "CALLER",
		90: "DEREF",
		91: "WINDOWS",
		92: "SERIES",
		93: "DOCUMENTS",
		94: "ACTIVE.CELL",
		95: "SELECTION",
		96: "RESULT",
		97: "ATAN2",
		98: "ASIN",
		99: "ACOS",
		100: "CHOOSE",
		101: "HLOOKUP",
		102: "VLOOKUP",
		103: "LINKS",
		104: "INPUT",
		105: "ISREF",
		106: "GET.FORMULA",
		107: "GET.NAME",
		108: "SET.VALUE",
		109: "LOG",
		110: "EXEC",
		111: "CHAR",
		112: "LOWER",
		113: "UPPER",
		114: "PROPER",
		115: "LEFT",
		116: "RIGHT",
		117: "EXACT",
		118: "TRIM",
		119: "REPLACE",
		120: "SUBSTITUTE",
		121: "CODE",
		122: "NAMES",
		123: "DIRECTORY",
		124: "FIND",
		125: "CELL",
		126: "ISERR",
		127: "ISTEXT",
		128: "ISNUMBER",
		129: "ISBLANK",
		130: "T",
		131: "N",
		132: "FOPEN",
		133: "FCLOSE",
		134: "FSIZE",
		135: "FREADLN",
		136: "FREAD",
		137: "FWRITELN",
		138: "FWRITE",
		139: "FPOS",
		140: "DATEVALUE",
		141: "TIMEVALUE",
		142: "SLN",
		143: "SYD",
		144: "DDB",
		145: "GET.DEF",
		146: "REFTEXT",
		147: "TEXTREF",
		148: "INDIRECT",
		149: "REGISTER",
		150: "CALL",
		151: "ADD.BAR",
		152: "ADD.MENU",
		153: "ADD.COMMAND",
		154: "ENABLE.COMMAND",
		155: "CHECK.COMMAND",
		156: "RENAME.COMMAND",
		157: "SHOW.BAR",
		158: "DELETE.MENU",
		159: "DELETE.COMMAND",
		160: "GET.CHART.ITEM",
		161: "DIALOG.BOX",
		162: "CLEAN",
		163: "MDETERM",
		164: "MINVERSE",
		165: "MMULT",
		166: "FILES",
		167: "IPMT",
		168: "PPMT",
		169: "COUNTA",
		170: "CANCEL.KEY",
		171: "FOR",
		172: "WHILE",
		173: "BREAK",
		174: "NEXT",
		175: "INITIATE",
		176: "REQUEST",
		177: "POKE",
		178: "EXECUTE",
		179: "TERMINATE",
		180: "RESTART",
		181: "HELP",
		182: "GET.BAR",
		183: "PRODUCT",
		184: "FACT",
		185: "GET.CELL",
		186: "GET.WORKSPACE",
		187: "GET.WINDOW",
		188: "GET.DOCUMENT",
		189: "DPRODUCT",
		190: "ISNONTEXT",
		191: "GET.NOTE",
		192: "NOTE",
		193: "STDEVP",
		194: "VARP",
		195: "DSTDEVP",
		196: "DVARP",
		197: "TRUNC",
		198: "ISLOGICAL",
		199: "DCOUNTA",
		200: "DELETE.BAR",
		201: "UNREGISTER",
		204: "USDOLLAR",
		205: "FINDB",
		206: "SEARCHB",
		207: "REPLACEB",
		208: "LEFTB",
		209: "RIGHTB",
		210: "MIDB",
		211: "LENB",
		212: "ROUNDUP",
		213: "ROUNDDOWN",
		214: "ASC",
		215: "DBCS",
		216: "RANK",
		219: "ADDRESS",
		220: "DAYS360",
		221: "TODAY",
		222: "VDB",
		223: "ELSE",
		224: "ELSE.IF",
		225: "END.IF",
		226: "FOR.CELL",
		227: "MEDIAN",
		228: "SUMPRODUCT",
		229: "SINH",
		230: "COSH",
		231: "TANH",
		232: "ASINH",
		233: "ACOSH",
		234: "ATANH",
		235: "DGET",
		236: "CREATE.OBJECT",
		237: "VOLATILE",
		238: "LAST.ERROR",
		239: "CUSTOM.UNDO",
		240: "CUSTOM.REPEAT",
		241: "FORMULA.CONVERT",
		242: "GET.LINK.INFO",
		243: "TEXT.BOX",
		244: "INFO",
		245: "GROUP",
		246: "GET.OBJECT",
		247: "DB",
		248: "PAUSE",
		251: "RESUME",
		252: "FREQUENCY",
		253: "ADD.TOOLBAR",
		254: "DELETE.TOOLBAR",
		255: "User",
		256: "RESET.TOOLBAR",
		257: "EVALUATE",
		258: "GET.TOOLBAR",
		259: "GET.TOOL",
		260: "SPELLING.CHECK",
		261: "ERROR.TYPE",
		262: "APP.TITLE",
		263: "WINDOW.TITLE",
		264: "SAVE.TOOLBAR",
		265: "ENABLE.TOOL",
		266: "PRESS.TOOL",
		267: "REGISTER.ID",
		268: "GET.WORKBOOK",
		269: "AVEDEV",
		270: "BETADIST",
		271: "GAMMALN",
		272: "BETAINV",
		273: "BINOMDIST",
		274: "CHIDIST",
		275: "CHIINV",
		276: "COMBIN",
		277: "CONFIDENCE",
		278: "CRITBINOM",
		279: "EVEN",
		280: "EXPONDIST",
		281: "FDIST",
		282: "FINV",
		283: "FISHER",
		284: "FISHERINV",
		285: "FLOOR",
		286: "GAMMADIST",
		287: "GAMMAINV",
		288: "CEILING",
		289: "HYPGEOMDIST",
		290: "LOGNORMDIST",
		291: "LOGINV",
		292: "NEGBINOMDIST",
		293: "NORMDIST",
		294: "NORMSDIST",
		295: "NORMINV",
		296: "NORMSINV",
		297: "STANDARDIZE",
		298: "ODD",
		299: "PERMUT",
		300: "POISSON",
		301: "TDIST",
		302: "WEIBULL",
		303: "SUMXMY2",
		304: "SUMX2MY2",
		305: "SUMX2PY2",
		306: "CHITEST",
		307: "CORREL",
		308: "COVAR",
		309: "FORECAST",
		310: "FTEST",
		311: "INTERCEPT",
		312: "PEARSON",
		313: "RSQ",
		314: "STEYX",
		315: "SLOPE",
		316: "TTEST",
		317: "PROB",
		318: "DEVSQ",
		319: "GEOMEAN",
		320: "HARMEAN",
		321: "SUMSQ",
		322: "KURT",
		323: "SKEW",
		324: "ZTEST",
		325: "LARGE",
		326: "SMALL",
		327: "QUARTILE",
		328: "PERCENTILE",
		329: "PERCENTRANK",
		330: "MODE",
		331: "TRIMMEAN",
		332: "TINV",
		334: "MOVIE.COMMAND",
		335: "GET.MOVIE",
		336: "CONCATENATE",
		337: "POWER",
		338: "PIVOT.ADD.DATA",
		339: "GET.PIVOT.TABLE",
		340: "GET.PIVOT.FIELD",
		341: "GET.PIVOT.ITEM",
		342: "RADIANS",
		343: "DEGREES",
		344: "SUBTOTAL",
		345: "SUMIF",
		346: "COUNTIF",
		347: "COUNTBLANK",
		348: "SCENARIO.GET",
		349: "OPTIONS.LISTS.GET",
		350: "ISPMT",
		351: "DATEDIF",
		352: "DATESTRING",
		353: "NUMBERSTRING",
		354: "ROMAN",
		355: "OPEN.DIALOG",
		356: "SAVE.DIALOG",
		357: "VIEW.GET",
		358: "GETPIVOTDATA",
		359: "HYPERLINK",
		360: "PHONETIC",
		361: "AVERAGEA",
		362: "MAXA",
		363: "MINA",
		364: "STDEVPA",
		365: "VARPA",
		366: "STDEVA",
		367: "VARA",
		368: "BAHTTEXT",
		369: "THAIDAYOFWEEK",
		370: "THAIDIGIT",
		371: "THAIMONTHOFYEAR",
		372: "THAINUMSOUND",
		373: "THAINUMSTRING",
		374: "THAISTRINGLENGTH",
		375: "ISTHAIDIGIT",
		376: "ROUNDBAHTDOWN",
		377: "ROUNDBAHTUP",
		378: "THAIYEAR",
		379: "RTD",
		380: "CUBEVALUE",
		381: "CUBEMEMBER",
		382: "CUBEMEMBERPROPERTY",
		383: "CUBERANKEDMEMBER",
		384: "HEX2BIN",
		385: "HEX2DEC",
		386: "HEX2OCT",
		387: "DEC2BIN",
		388: "DEC2HEX",
		389: "DEC2OCT",
		390: "OCT2BIN",
		391: "OCT2HEX",
		392: "OCT2DEC",
		393: "BIN2DEC",
		394: "BIN2OCT",
		395: "BIN2HEX",
		396: "IMSUB",
		397: "IMDIV",
		398: "IMPOWER",
		399: "IMABS",
		400: "IMSQRT",
		401: "IMLN",
		402: "IMLOG2",
		403: "IMLOG10",
		404: "IMSIN",
		405: "IMCOS",
		406: "IMEXP",
		407: "IMARGUMENT",
		408: "IMCONJUGATE",
		409: "IMAGINARY",
		410: "IMREAL",
		411: "COMPLEX",
		412: "IMSUM",
		413: "IMPRODUCT",
		414: "SERIESSUM",
		415: "FACTDOUBLE",
		416: "SQRTPI",
		417: "QUOTIENT",
		418: "DELTA",
		419: "GESTEP",
		420: "ISEVEN",
		421: "ISODD",
		422: "MROUND",
		423: "ERF",
		424: "ERFC",
		425: "BESSELJ",
		426: "BESSELK",
		427: "BESSELY",
		428: "BESSELI",
		429: "XIRR",
		430: "XNPV",
		431: "PRICEMAT",
		432: "YIELDMAT",
		433: "INTRATE",
		434: "RECEIVED",
		435: "DISC",
		436: "PRICEDISC",
		437: "YIELDDISC",
		438: "TBILLEQ",
		439: "TBILLPRICE",
		440: "TBILLYIELD",
		441: "PRICE",
		442: "YIELD",
		443: "DOLLARDE",
		444: "DOLLARFR",
		445: "NOMINAL",
		446: "EFFECT",
		447: "CUMPRINC",
		448: "CUMIPMT",
		449: "EDATE",
		450: "EOMONTH",
		451: "YEARFRAC",
		452: "COUPDAYBS",
		453: "COUPDAYS",
		454: "COUPDAYSNC",
		455: "COUPNCD",
		456: "COUPNUM",
		457: "COUPPCD",
		458: "DURATION",
		459: "MDURATION",
		460: "ODDLPRICE",
		461: "ODDLYIELD",
		462: "ODDFPRICE",
		463: "ODDFYIELD",
		464: "RANDBETWEEN",
		465: "WEEKNUM",
		466: "AMORDEGRC",
		467: "AMORLINC",
		468: "CONVERT",
		724: "SHEETJS",
		469: "ACCRINT",
		470: "ACCRINTM",
		471: "WORKDAY",
		472: "NETWORKDAYS",
		473: "GCD",
		474: "MULTINOMIAL",
		475: "LCM",
		476: "FVSCHEDULE",
		477: "CUBEKPIMEMBER",
		478: "CUBESET",
		479: "CUBESETCOUNT",
		480: "IFERROR",
		481: "COUNTIFS",
		482: "SUMIFS",
		483: "AVERAGEIF",
		484: "AVERAGEIFS"
	};
	FtabArgc = {
		2: 1,
		3: 1,
		10: 0,
		15: 1,
		16: 1,
		17: 1,
		18: 1,
		19: 0,
		20: 1,
		21: 1,
		22: 1,
		23: 1,
		24: 1,
		25: 1,
		26: 1,
		27: 2,
		30: 2,
		31: 3,
		32: 1,
		33: 1,
		34: 0,
		35: 0,
		38: 1,
		39: 2,
		40: 3,
		41: 3,
		42: 3,
		43: 3,
		44: 3,
		45: 3,
		47: 3,
		48: 2,
		53: 1,
		61: 3,
		63: 0,
		65: 3,
		66: 3,
		67: 1,
		68: 1,
		69: 1,
		70: 1,
		71: 1,
		72: 1,
		73: 1,
		74: 0,
		75: 1,
		76: 1,
		77: 1,
		79: 2,
		80: 2,
		83: 1,
		85: 0,
		86: 1,
		89: 0,
		90: 1,
		94: 0,
		95: 0,
		97: 2,
		98: 1,
		99: 1,
		101: 3,
		102: 3,
		105: 1,
		106: 1,
		108: 2,
		111: 1,
		112: 1,
		113: 1,
		114: 1,
		117: 2,
		118: 1,
		119: 4,
		121: 1,
		126: 1,
		127: 1,
		128: 1,
		129: 1,
		130: 1,
		131: 1,
		133: 1,
		134: 1,
		135: 1,
		136: 2,
		137: 2,
		138: 2,
		140: 1,
		141: 1,
		142: 3,
		143: 4,
		144: 4,
		161: 1,
		162: 1,
		163: 1,
		164: 1,
		165: 2,
		172: 1,
		175: 2,
		176: 2,
		177: 3,
		178: 2,
		179: 1,
		184: 1,
		186: 1,
		189: 3,
		190: 1,
		195: 3,
		196: 3,
		197: 1,
		198: 1,
		199: 3,
		201: 1,
		207: 4,
		210: 3,
		211: 1,
		212: 2,
		213: 2,
		214: 1,
		215: 1,
		225: 0,
		229: 1,
		230: 1,
		231: 1,
		232: 1,
		233: 1,
		234: 1,
		235: 3,
		244: 1,
		247: 4,
		252: 2,
		257: 1,
		261: 1,
		271: 1,
		273: 4,
		274: 2,
		275: 2,
		276: 2,
		277: 3,
		278: 3,
		279: 1,
		280: 3,
		281: 3,
		282: 3,
		283: 1,
		284: 1,
		285: 2,
		286: 4,
		287: 3,
		288: 2,
		289: 4,
		290: 3,
		291: 3,
		292: 3,
		293: 4,
		294: 1,
		295: 3,
		296: 1,
		297: 3,
		298: 1,
		299: 2,
		300: 3,
		301: 3,
		302: 4,
		303: 2,
		304: 2,
		305: 2,
		306: 2,
		307: 2,
		308: 2,
		309: 3,
		310: 2,
		311: 2,
		312: 2,
		313: 2,
		314: 2,
		315: 2,
		316: 4,
		325: 2,
		326: 2,
		327: 2,
		328: 2,
		331: 2,
		332: 2,
		337: 2,
		342: 1,
		343: 1,
		346: 2,
		347: 1,
		350: 4,
		351: 3,
		352: 1,
		353: 2,
		360: 1,
		368: 1,
		369: 1,
		370: 1,
		371: 1,
		372: 1,
		373: 1,
		374: 1,
		375: 1,
		376: 1,
		377: 1,
		378: 1,
		382: 3,
		385: 1,
		392: 1,
		393: 1,
		396: 2,
		397: 2,
		398: 2,
		399: 1,
		400: 1,
		401: 1,
		402: 1,
		403: 1,
		404: 1,
		405: 1,
		406: 1,
		407: 1,
		408: 1,
		409: 1,
		410: 1,
		414: 4,
		415: 1,
		416: 1,
		417: 2,
		420: 1,
		421: 1,
		422: 2,
		424: 1,
		425: 2,
		426: 2,
		427: 2,
		428: 2,
		430: 3,
		438: 3,
		439: 3,
		440: 3,
		443: 2,
		444: 2,
		445: 2,
		446: 2,
		447: 6,
		448: 6,
		449: 2,
		450: 2,
		464: 2,
		468: 3,
		476: 2,
		479: 1,
		480: 2,
		65535: 0
	};
	strs = {};
	_ssfopts = {};
	browser_has_Map = typeof Map !== "undefined";
	mergecregex = /<(?:\w+:)?mergeCell ref=["'][A-Z0-9:]+['"]\s*[\/]?>/g;
	hlinkregex = /<(?:\w+:)?hyperlink [^<>]*>/gm;
	dimregex = /"(\w*:\w*)"/;
	colregex = /<(?:\w+:)?col\b[^<>]*[\/]?>/g;
	afregex = /<(?:\w+:)?autoFilter[^>]*/g;
	marginregex = /<(?:\w+:)?pageMargins[^<>]*\/>/g;
	sheetprregex = /<(?:\w+:)?sheetPr\b[^<>]*?\/>/;
	sheetprot_deffalse = [
		"objects",
		"scenarios",
		"selectLockedCells",
		"selectUnlockedCells"
	];
	sheetprot_deftrue = [
		"formatColumns",
		"formatRows",
		"formatCells",
		"insertColumns",
		"insertRows",
		"insertHyperlinks",
		"deleteColumns",
		"deleteRows",
		"sort",
		"autoFilter",
		"pivotTables"
	];
	sviewregex = /<(?:\w:)?sheetView(?:[^<>a-z][^<>]*)?\/?>/g;
	parse_ws_xml_data = /* @__PURE__ */ (function() {
		var cellregex = /<(?:\w+:)?c[ \/>]/, rowregex = /<\/(?:\w+:)?row>/;
		var rregex = /r=["']([^"']*)["']/;
		var refregex = /ref=["']([^"']*)["']/;
		return function parse_ws_xml_data$1(sdata, s$5, opts, guess, themes, styles$1, wb) {
			var ri = 0, x$2 = "", cells = [], cref = [], idx = 0, i$7 = 0, cc = 0, d$5 = "", p$3;
			var tag, tagr = 0, tagc = 0;
			var sstr, ftag;
			var fmtid = 0, fillid = 0;
			var do_format = Array.isArray(styles$1.CellXf), cf;
			var arrayf = [];
			var sharedf = [];
			var dense = s$5["!data"] != null;
			var rows = [], rowobj = {}, rowrite = false;
			var sheetStubs = !!opts.sheetStubs;
			var date1904 = !!((wb || {}).WBProps || {}).date1904;
			for (var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {
				x$2 = marr[mt].trim();
				var xlen = x$2.length;
				if (xlen === 0) continue;
				var rstarti = 0;
				outa: for (ri = 0; ri < xlen; ++ri) switch (x$2[ri]) {
					case ">":
						if (x$2[ri - 1] != "/") {
							++ri;
							break outa;
						}
						if (opts && opts.cellStyles) {
							tag = parsexmltag(x$2.slice(rstarti, ri), true);
							tagr = tag.r != null ? parseInt(tag.r, 10) : tagr + 1;
							tagc = -1;
							if (opts.sheetRows && opts.sheetRows < tagr) continue;
							rowobj = {};
							rowrite = false;
							if (tag.ht) {
								rowrite = true;
								rowobj.hpt = parseFloat(tag.ht);
								rowobj.hpx = pt2px(rowobj.hpt);
							}
							if (tag.hidden && parsexmlbool(tag.hidden)) {
								rowrite = true;
								rowobj.hidden = true;
							}
							if (tag.outlineLevel != null) {
								rowrite = true;
								rowobj.level = +tag.outlineLevel;
							}
							if (rowrite) rows[tagr - 1] = rowobj;
						}
						break;
					case "<":
						rstarti = ri;
						break;
				}
				if (rstarti >= ri) break;
				tag = parsexmltag(x$2.slice(rstarti, ri), true);
				tagr = tag.r != null ? parseInt(tag.r, 10) : tagr + 1;
				tagc = -1;
				if (opts.sheetRows && opts.sheetRows < tagr) continue;
				if (!opts.nodim) {
					if (guess.s.r > tagr - 1) guess.s.r = tagr - 1;
					if (guess.e.r < tagr - 1) guess.e.r = tagr - 1;
				}
				if (opts && opts.cellStyles) {
					rowobj = {};
					rowrite = false;
					if (tag.ht) {
						rowrite = true;
						rowobj.hpt = parseFloat(tag.ht);
						rowobj.hpx = pt2px(rowobj.hpt);
					}
					if (tag.hidden && parsexmlbool(tag.hidden)) {
						rowrite = true;
						rowobj.hidden = true;
					}
					if (tag.outlineLevel != null) {
						rowrite = true;
						rowobj.level = +tag.outlineLevel;
					}
					if (rowrite) rows[tagr - 1] = rowobj;
				}
				cells = x$2.slice(ri).split(cellregex);
				for (var rslice = 0; rslice != cells.length; ++rslice) if (cells[rslice].trim().charAt(0) != "<") break;
				cells = cells.slice(rslice);
				for (ri = 0; ri != cells.length; ++ri) {
					x$2 = cells[ri].trim();
					if (x$2.length === 0) continue;
					cref = x$2.match(rregex);
					idx = ri;
					i$7 = 0;
					cc = 0;
					x$2 = "<c " + (x$2.slice(0, 1) == "<" ? ">" : "") + x$2;
					if (cref != null && cref.length === 2) {
						idx = 0;
						d$5 = cref[1];
						for (i$7 = 0; i$7 != d$5.length; ++i$7) {
							if ((cc = d$5.charCodeAt(i$7) - 64) < 1 || cc > 26) break;
							idx = 26 * idx + cc;
						}
						--idx;
						tagc = idx;
					} else ++tagc;
					for (i$7 = 0; i$7 != x$2.length; ++i$7) if (x$2.charCodeAt(i$7) === 62) break;
					++i$7;
					tag = parsexmltag(x$2.slice(0, i$7), true);
					if (!tag.r) tag.r = encode_cell({
						r: tagr - 1,
						c: tagc
					});
					d$5 = x$2.slice(i$7);
					p$3 = { t: "" };
					if ((cref = str_match_xml_ns(d$5, "v")) != null && cref[1] !== "") p$3.v = unescapexml(cref[1]);
					if (opts.cellFormula) {
						if ((cref = str_match_xml_ns(d$5, "f")) != null) {
							if (cref[1] == "") {
								if (cref[0].indexOf("t=\"shared\"") > -1) {
									ftag = parsexmltag(cref[0]);
									if (sharedf[ftag.si]) p$3.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2], tag.r);
								}
							} else {
								p$3.f = unescapexml(utf8read(cref[1]), true);
								if (!opts.xlfn) p$3.f = _xlfn(p$3.f);
								if (cref[0].indexOf("t=\"array\"") > -1) {
									p$3.F = (d$5.match(refregex) || [])[1];
									if (p$3.F.indexOf(":") > -1) arrayf.push([safe_decode_range(p$3.F), p$3.F]);
								} else if (cref[0].indexOf("t=\"shared\"") > -1) {
									ftag = parsexmltag(cref[0]);
									var ___f = unescapexml(utf8read(cref[1]));
									if (!opts.xlfn) ___f = _xlfn(___f);
									sharedf[parseInt(ftag.si, 10)] = [
										ftag,
										___f,
										tag.r
									];
								}
							}
						} else if (cref = d$5.match(/<f[^<>]*\/>/)) {
							ftag = parsexmltag(cref[0]);
							if (sharedf[ftag.si]) p$3.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2], tag.r);
						}
						var _tag = decode_cell(tag.r);
						for (i$7 = 0; i$7 < arrayf.length; ++i$7) if (_tag.r >= arrayf[i$7][0].s.r && _tag.r <= arrayf[i$7][0].e.r) {
							if (_tag.c >= arrayf[i$7][0].s.c && _tag.c <= arrayf[i$7][0].e.c) p$3.F = arrayf[i$7][1];
						}
					}
					if (tag.t == null && p$3.v === undefined) {
						if (p$3.f || p$3.F) {
							p$3.v = 0;
							p$3.t = "n";
						} else if (!sheetStubs) continue;
						else p$3.t = "z";
					} else p$3.t = tag.t || "n";
					if (guess.s.c > tagc) guess.s.c = tagc;
					if (guess.e.c < tagc) guess.e.c = tagc;
					switch (p$3.t) {
						case "n":
							if (p$3.v == "" || p$3.v == null) {
								if (!sheetStubs) continue;
								p$3.t = "z";
							} else p$3.v = parseFloat(p$3.v);
							break;
						case "s":
							if (typeof p$3.v == "undefined") {
								if (!sheetStubs) continue;
								p$3.t = "z";
							} else {
								sstr = strs[parseInt(p$3.v, 10)];
								p$3.v = sstr.t;
								p$3.r = sstr.r;
								if (opts.cellHTML) p$3.h = sstr.h;
							}
							break;
						case "str":
							p$3.t = "s";
							p$3.v = p$3.v != null ? unescapexml(utf8read(p$3.v), true) : "";
							if (opts.cellHTML) p$3.h = escapehtml(p$3.v);
							break;
						case "inlineStr":
							cref = str_match_xml_ns(d$5, "is");
							p$3.t = "s";
							if (cref != null && (sstr = parse_si(cref[1]))) {
								p$3.v = sstr.t;
								if (opts.cellHTML) p$3.h = sstr.h;
							} else p$3.v = "";
							break;
						case "b":
							p$3.v = parsexmlbool(p$3.v);
							break;
						case "d":
							if (opts.cellDates) p$3.v = parseDate(p$3.v, date1904);
							else {
								p$3.v = datenum(parseDate(p$3.v, date1904), date1904);
								p$3.t = "n";
							}
							break;
						case "e":
							if (!opts || opts.cellText !== false) p$3.w = p$3.v;
							p$3.v = RBErr[p$3.v];
							break;
					}
					fmtid = fillid = 0;
					cf = null;
					if (do_format && tag.s !== undefined) {
						cf = styles$1.CellXf[tag.s];
						if (cf != null) {
							if (cf.numFmtId != null) fmtid = cf.numFmtId;
							if (opts.cellStyles) {
								if (cf.fillId != null) fillid = cf.fillId;
							}
						}
					}
					safe_format(p$3, fmtid, fillid, opts, themes, styles$1, date1904);
					if (opts.cellDates && do_format && p$3.t == "n" && fmt_is_date(table_fmt[fmtid])) {
						p$3.v = numdate(p$3.v + (date1904 ? 1462 : 0));
						p$3.t = typeof p$3.v == "number" ? "n" : "d";
					}
					if (tag.cm && opts.xlmeta) {
						var cm = (opts.xlmeta.Cell || [])[+tag.cm - 1];
						if (cm && cm.type == "XLDAPR") p$3.D = true;
					}
					var _r;
					if (opts.nodim) {
						_r = decode_cell(tag.r);
						if (guess.s.r > _r.r) guess.s.r = _r.r;
						if (guess.e.r < _r.r) guess.e.r = _r.r;
					}
					if (dense) {
						_r = decode_cell(tag.r);
						if (!s$5["!data"][_r.r]) s$5["!data"][_r.r] = [];
						s$5["!data"][_r.r][_r.c] = p$3;
					} else s$5[tag.r] = p$3;
				}
			}
			if (rows.length > 0) s$5["!rows"] = rows;
		};
	})();
	parse_BrtWsDim = parse_UncheckedRfX;
	write_BrtWsDim = write_UncheckedRfX;
	parse_BrtMergeCell = parse_UncheckedRfX;
	write_BrtMergeCell = write_UncheckedRfX;
	BrtMarginKeys = [
		"left",
		"right",
		"top",
		"bottom",
		"header",
		"footer"
	];
	WBPropsDef = [
		[
			"allowRefreshQuery",
			false,
			"bool"
		],
		[
			"autoCompressPictures",
			true,
			"bool"
		],
		[
			"backupFile",
			false,
			"bool"
		],
		[
			"checkCompatibility",
			false,
			"bool"
		],
		["CodeName", ""],
		[
			"date1904",
			false,
			"bool"
		],
		[
			"defaultThemeVersion",
			0,
			"int"
		],
		[
			"filterPrivacy",
			false,
			"bool"
		],
		[
			"hidePivotFieldList",
			false,
			"bool"
		],
		[
			"promptedSolutions",
			false,
			"bool"
		],
		[
			"publishItems",
			false,
			"bool"
		],
		[
			"refreshAllConnections",
			false,
			"bool"
		],
		[
			"saveExternalLinkValues",
			true,
			"bool"
		],
		[
			"showBorderUnselectedTables",
			true,
			"bool"
		],
		[
			"showInkAnnotation",
			true,
			"bool"
		],
		["showObjects", "all"],
		[
			"showPivotChartFilter",
			false,
			"bool"
		],
		["updateLinks", "userSet"]
	];
	WBViewDef = [
		[
			"activeTab",
			0,
			"int"
		],
		[
			"autoFilterDateGrouping",
			true,
			"bool"
		],
		[
			"firstSheet",
			0,
			"int"
		],
		[
			"minimized",
			false,
			"bool"
		],
		[
			"showHorizontalScroll",
			true,
			"bool"
		],
		[
			"showSheetTabs",
			true,
			"bool"
		],
		[
			"showVerticalScroll",
			true,
			"bool"
		],
		[
			"tabRatio",
			600,
			"int"
		],
		["visibility", "visible"]
	];
	SheetDef = [];
	CalcPrDef = [
		["calcCompleted", "true"],
		["calcMode", "auto"],
		["calcOnSave", "true"],
		["concurrentCalc", "true"],
		["fullCalcOnLoad", "false"],
		["fullPrecision", "true"],
		["iterate", "false"],
		["iterateCount", "100"],
		["iterateDelta", "0.001"],
		["refMode", "A1"]
	];
	badchars = /* @__PURE__ */ ":][*?/\\".split("");
	wbnsregex = /<\w+:workbook/;
	attregexg2 = /\b((?:\w+:)?[\w]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g;
	attregex2 = /\b((?:\w+:)?[\w]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;
	;
	CONTINUE_RT = [
		60,
		1084,
		2066,
		2165,
		2175
	];
	PSCLSID = {
		SI: "e0859ff2f94f6810ab9108002b27b3d9",
		DSI: "02d5cdd59c2e1b10939708002b2cf9ae",
		UDI: "05d5cdd59c2e1b10939708002b2cf9ae"
	};
	XLSBRecordEnum = {
		0: { f: parse_BrtRowHdr },
		1: { f: parse_BrtCellBlank },
		2: { f: parse_BrtCellRk },
		3: { f: parse_BrtCellError },
		4: { f: parse_BrtCellBool },
		5: { f: parse_BrtCellReal },
		6: { f: parse_BrtCellSt },
		7: { f: parse_BrtCellIsst },
		8: { f: parse_BrtFmlaString },
		9: { f: parse_BrtFmlaNum },
		10: { f: parse_BrtFmlaBool },
		11: { f: parse_BrtFmlaError },
		12: { f: parse_BrtShortBlank },
		13: { f: parse_BrtShortRk },
		14: { f: parse_BrtShortError },
		15: { f: parse_BrtShortBool },
		16: { f: parse_BrtShortReal },
		17: { f: parse_BrtShortSt },
		18: { f: parse_BrtShortIsst },
		19: { f: parse_RichStr },
		20: {},
		21: {},
		22: {},
		23: {},
		24: {},
		25: {},
		26: {},
		27: {},
		28: {},
		29: {},
		30: {},
		31: {},
		32: {},
		33: {},
		34: {},
		35: { T: 1 },
		36: { T: -1 },
		37: { T: 1 },
		38: { T: -1 },
		39: { f: parse_BrtName },
		40: {},
		42: {},
		43: { f: parse_BrtFont },
		44: { f: parse_BrtFmt },
		45: { f: parse_BrtFill },
		46: { f: parse_BrtBorder },
		47: { f: parse_BrtXF },
		48: {},
		49: { f: parse_Int32LE },
		50: {},
		51: { f: parse_BrtMdb },
		52: { T: 1 },
		53: { T: -1 },
		54: { T: 1 },
		55: { T: -1 },
		56: { T: 1 },
		57: { T: -1 },
		58: {},
		59: {},
		60: { f: parse_ColInfo },
		62: { f: parse_BrtCellRString },
		63: { f: parse_BrtCalcChainItem$ },
		64: { f: parse_BrtDVal },
		65: {},
		66: {},
		67: {},
		68: {},
		69: {},
		70: {},
		128: {},
		129: { T: 1 },
		130: { T: -1 },
		131: {
			T: 1,
			f: parsenoop,
			p: 0
		},
		132: { T: -1 },
		133: { T: 1 },
		134: { T: -1 },
		135: { T: 1 },
		136: { T: -1 },
		137: {
			T: 1,
			f: parse_BrtBeginWsView
		},
		138: { T: -1 },
		139: { T: 1 },
		140: { T: -1 },
		141: { T: 1 },
		142: { T: -1 },
		143: { T: 1 },
		144: { T: -1 },
		145: { T: 1 },
		146: { T: -1 },
		147: { f: parse_BrtWsProp },
		148: {
			f: parse_BrtWsDim,
			p: 16
		},
		151: { f: parse_BrtPane },
		152: {},
		153: { f: parse_BrtWbProp },
		154: {},
		155: {},
		156: { f: parse_BrtBundleSh },
		157: {},
		158: {},
		159: {
			T: 1,
			f: parse_BrtBeginSst
		},
		160: { T: -1 },
		161: {
			T: 1,
			f: parse_UncheckedRfX
		},
		162: { T: -1 },
		163: { T: 1 },
		164: { T: -1 },
		165: { T: 1 },
		166: { T: -1 },
		167: {},
		168: {},
		169: {},
		170: {},
		171: {},
		172: { T: 1 },
		173: { T: -1 },
		174: {},
		175: {},
		176: { f: parse_BrtMergeCell },
		177: { T: 1 },
		178: { T: -1 },
		179: { T: 1 },
		180: { T: -1 },
		181: { T: 1 },
		182: { T: -1 },
		183: { T: 1 },
		184: { T: -1 },
		185: { T: 1 },
		186: { T: -1 },
		187: { T: 1 },
		188: { T: -1 },
		189: { T: 1 },
		190: { T: -1 },
		191: { T: 1 },
		192: { T: -1 },
		193: { T: 1 },
		194: { T: -1 },
		195: { T: 1 },
		196: { T: -1 },
		197: { T: 1 },
		198: { T: -1 },
		199: { T: 1 },
		200: { T: -1 },
		201: { T: 1 },
		202: { T: -1 },
		203: { T: 1 },
		204: { T: -1 },
		205: { T: 1 },
		206: { T: -1 },
		207: { T: 1 },
		208: { T: -1 },
		209: { T: 1 },
		210: { T: -1 },
		211: { T: 1 },
		212: { T: -1 },
		213: { T: 1 },
		214: { T: -1 },
		215: { T: 1 },
		216: { T: -1 },
		217: { T: 1 },
		218: { T: -1 },
		219: { T: 1 },
		220: { T: -1 },
		221: { T: 1 },
		222: { T: -1 },
		223: { T: 1 },
		224: { T: -1 },
		225: { T: 1 },
		226: { T: -1 },
		227: { T: 1 },
		228: { T: -1 },
		229: { T: 1 },
		230: { T: -1 },
		231: { T: 1 },
		232: { T: -1 },
		233: { T: 1 },
		234: { T: -1 },
		235: { T: 1 },
		236: { T: -1 },
		237: { T: 1 },
		238: { T: -1 },
		239: { T: 1 },
		240: { T: -1 },
		241: { T: 1 },
		242: { T: -1 },
		243: { T: 1 },
		244: { T: -1 },
		245: { T: 1 },
		246: { T: -1 },
		247: { T: 1 },
		248: { T: -1 },
		249: { T: 1 },
		250: { T: -1 },
		251: { T: 1 },
		252: { T: -1 },
		253: { T: 1 },
		254: { T: -1 },
		255: { T: 1 },
		256: { T: -1 },
		257: { T: 1 },
		258: { T: -1 },
		259: { T: 1 },
		260: { T: -1 },
		261: { T: 1 },
		262: { T: -1 },
		263: { T: 1 },
		264: { T: -1 },
		265: { T: 1 },
		266: { T: -1 },
		267: { T: 1 },
		268: { T: -1 },
		269: { T: 1 },
		270: { T: -1 },
		271: { T: 1 },
		272: { T: -1 },
		273: { T: 1 },
		274: { T: -1 },
		275: { T: 1 },
		276: { T: -1 },
		277: {},
		278: { T: 1 },
		279: { T: -1 },
		280: { T: 1 },
		281: { T: -1 },
		282: { T: 1 },
		283: { T: 1 },
		284: { T: -1 },
		285: { T: 1 },
		286: { T: -1 },
		287: { T: 1 },
		288: { T: -1 },
		289: { T: 1 },
		290: { T: -1 },
		291: { T: 1 },
		292: { T: -1 },
		293: { T: 1 },
		294: { T: -1 },
		295: { T: 1 },
		296: { T: -1 },
		297: { T: 1 },
		298: { T: -1 },
		299: { T: 1 },
		300: { T: -1 },
		301: { T: 1 },
		302: { T: -1 },
		303: { T: 1 },
		304: { T: -1 },
		305: { T: 1 },
		306: { T: -1 },
		307: { T: 1 },
		308: { T: -1 },
		309: { T: 1 },
		310: { T: -1 },
		311: { T: 1 },
		312: { T: -1 },
		313: { T: -1 },
		314: { T: 1 },
		315: { T: -1 },
		316: { T: 1 },
		317: { T: -1 },
		318: { T: 1 },
		319: { T: -1 },
		320: { T: 1 },
		321: { T: -1 },
		322: { T: 1 },
		323: { T: -1 },
		324: { T: 1 },
		325: { T: -1 },
		326: { T: 1 },
		327: { T: -1 },
		328: { T: 1 },
		329: { T: -1 },
		330: { T: 1 },
		331: { T: -1 },
		332: { T: 1 },
		333: { T: -1 },
		334: { T: 1 },
		335: { f: parse_BrtMdtinfo },
		336: { T: -1 },
		337: {
			f: parse_BrtBeginEsmdb,
			T: 1
		},
		338: { T: -1 },
		339: { T: 1 },
		340: { T: -1 },
		341: { T: 1 },
		342: { T: -1 },
		343: { T: 1 },
		344: { T: -1 },
		345: { T: 1 },
		346: { T: -1 },
		347: { T: 1 },
		348: { T: -1 },
		349: { T: 1 },
		350: { T: -1 },
		351: {},
		352: {},
		353: { T: 1 },
		354: { T: -1 },
		355: { f: parse_RelID },
		357: {},
		358: {},
		359: {},
		360: { T: 1 },
		361: {},
		362: { f: parse_ExternSheet },
		363: {},
		364: {},
		366: {},
		367: {},
		368: {},
		369: {},
		370: {},
		371: {},
		372: { T: 1 },
		373: { T: -1 },
		374: { T: 1 },
		375: { T: -1 },
		376: { T: 1 },
		377: { T: -1 },
		378: { T: 1 },
		379: { T: -1 },
		380: { T: 1 },
		381: { T: -1 },
		382: { T: 1 },
		383: { T: -1 },
		384: { T: 1 },
		385: { T: -1 },
		386: { T: 1 },
		387: { T: -1 },
		388: { T: 1 },
		389: { T: -1 },
		390: { T: 1 },
		391: { T: -1 },
		392: { T: 1 },
		393: { T: -1 },
		394: { T: 1 },
		395: { T: -1 },
		396: {},
		397: {},
		398: {},
		399: {},
		400: {},
		401: { T: 1 },
		403: {},
		404: {},
		405: {},
		406: {},
		407: {},
		408: {},
		409: {},
		410: {},
		411: {},
		412: {},
		413: {},
		414: {},
		415: {},
		416: {},
		417: {},
		418: {},
		419: {},
		420: {},
		421: {},
		422: { T: 1 },
		423: { T: 1 },
		424: { T: -1 },
		425: { T: -1 },
		426: { f: parse_BrtArrFmla },
		427: { f: parse_BrtShrFmla },
		428: {},
		429: { T: 1 },
		430: { T: -1 },
		431: { T: 1 },
		432: { T: -1 },
		433: { T: 1 },
		434: { T: -1 },
		435: { T: 1 },
		436: { T: -1 },
		437: { T: 1 },
		438: { T: -1 },
		439: { T: 1 },
		440: { T: -1 },
		441: { T: 1 },
		442: { T: -1 },
		443: { T: 1 },
		444: { T: -1 },
		445: { T: 1 },
		446: { T: -1 },
		447: { T: 1 },
		448: { T: -1 },
		449: { T: 1 },
		450: { T: -1 },
		451: { T: 1 },
		452: { T: -1 },
		453: { T: 1 },
		454: { T: -1 },
		455: { T: 1 },
		456: { T: -1 },
		457: { T: 1 },
		458: { T: -1 },
		459: { T: 1 },
		460: { T: -1 },
		461: { T: 1 },
		462: { T: -1 },
		463: { T: 1 },
		464: { T: -1 },
		465: { T: 1 },
		466: { T: -1 },
		467: { T: 1 },
		468: { T: -1 },
		469: { T: 1 },
		470: { T: -1 },
		471: {},
		472: {},
		473: { T: 1 },
		474: { T: -1 },
		475: {},
		476: { f: parse_BrtMargins },
		477: {},
		478: {},
		479: { T: 1 },
		480: { T: -1 },
		481: { T: 1 },
		482: { T: -1 },
		483: { T: 1 },
		484: { T: -1 },
		485: { f: parse_BrtWsFmtInfo },
		486: { T: 1 },
		487: { T: -1 },
		488: { T: 1 },
		489: { T: -1 },
		490: { T: 1 },
		491: { T: -1 },
		492: { T: 1 },
		493: { T: -1 },
		494: { f: parse_BrtHLink },
		495: { T: 1 },
		496: { T: -1 },
		497: { T: 1 },
		498: { T: -1 },
		499: {},
		500: { T: 1 },
		501: { T: -1 },
		502: { T: 1 },
		503: { T: -1 },
		504: {},
		505: { T: 1 },
		506: { T: -1 },
		507: {},
		508: { T: 1 },
		509: { T: -1 },
		510: { T: 1 },
		511: { T: -1 },
		512: {},
		513: {},
		514: { T: 1 },
		515: { T: -1 },
		516: { T: 1 },
		517: { T: -1 },
		518: { T: 1 },
		519: { T: -1 },
		520: { T: 1 },
		521: { T: -1 },
		522: {},
		523: {},
		524: {},
		525: {},
		526: {},
		527: {},
		528: { T: 1 },
		529: { T: -1 },
		530: { T: 1 },
		531: { T: -1 },
		532: { T: 1 },
		533: { T: -1 },
		534: {},
		535: {},
		536: {},
		537: {},
		538: { T: 1 },
		539: { T: -1 },
		540: { T: 1 },
		541: { T: -1 },
		542: { T: 1 },
		548: {},
		549: {},
		550: { f: parse_RelID },
		551: { f: parse_XLNullableWideString },
		552: {},
		553: {},
		554: { T: 1 },
		555: { T: -1 },
		556: { T: 1 },
		557: { T: -1 },
		558: { T: 1 },
		559: { T: -1 },
		560: { T: 1 },
		561: { T: -1 },
		562: {},
		564: {},
		565: { T: 1 },
		566: { T: -1 },
		569: { T: 1 },
		570: { T: -1 },
		572: {},
		573: { T: 1 },
		574: { T: -1 },
		577: {},
		578: {},
		579: {},
		580: {},
		581: {},
		582: {},
		583: {},
		584: {},
		585: {},
		586: {},
		587: {},
		588: { T: -1 },
		589: {},
		590: { T: 1 },
		591: { T: -1 },
		592: { T: 1 },
		593: { T: -1 },
		594: { T: 1 },
		595: { T: -1 },
		596: {},
		597: { T: 1 },
		598: { T: -1 },
		599: { T: 1 },
		600: { T: -1 },
		601: { T: 1 },
		602: { T: -1 },
		603: { T: 1 },
		604: { T: -1 },
		605: { T: 1 },
		606: { T: -1 },
		607: {},
		608: { T: 1 },
		609: { T: -1 },
		610: {},
		611: { T: 1 },
		612: { T: -1 },
		613: { T: 1 },
		614: { T: -1 },
		615: { T: 1 },
		616: { T: -1 },
		617: { T: 1 },
		618: { T: -1 },
		619: { T: 1 },
		620: { T: -1 },
		625: {},
		626: { T: 1 },
		627: { T: -1 },
		628: { T: 1 },
		629: { T: -1 },
		630: { T: 1 },
		631: { T: -1 },
		632: { f: parse_BrtCommentAuthor },
		633: { T: 1 },
		634: { T: -1 },
		635: {
			T: 1,
			f: parse_BrtBeginComment
		},
		636: { T: -1 },
		637: { f: parse_BrtCommentText },
		638: { T: 1 },
		639: {},
		640: { T: -1 },
		641: { T: 1 },
		642: { T: -1 },
		643: { T: 1 },
		644: {},
		645: { T: -1 },
		646: { T: 1 },
		648: { T: 1 },
		649: {},
		650: { T: -1 },
		651: { f: parse_BrtCsProp },
		652: {},
		653: { T: 1 },
		654: { T: -1 },
		655: { T: 1 },
		656: { T: -1 },
		657: { T: 1 },
		658: { T: -1 },
		659: {},
		660: { T: 1 },
		661: {},
		662: { T: -1 },
		663: {},
		664: { T: 1 },
		665: {},
		666: { T: -1 },
		667: {},
		668: {},
		669: {},
		671: { T: 1 },
		672: { T: -1 },
		673: { T: 1 },
		674: { T: -1 },
		675: {},
		676: {},
		677: {},
		678: {},
		679: {},
		680: {},
		681: {},
		1024: {},
		1025: {},
		1026: { T: 1 },
		1027: { T: -1 },
		1028: { T: 1 },
		1029: { T: -1 },
		1030: {},
		1031: { T: 1 },
		1032: { T: -1 },
		1033: { T: 1 },
		1034: { T: -1 },
		1035: {},
		1036: {},
		1037: {},
		1038: { T: 1 },
		1039: { T: -1 },
		1040: {},
		1041: { T: 1 },
		1042: { T: -1 },
		1043: {},
		1044: {},
		1045: {},
		1046: { T: 1 },
		1047: { T: -1 },
		1048: { T: 1 },
		1049: { T: -1 },
		1050: {},
		1051: { T: 1 },
		1052: { T: 1 },
		1053: { f: parse_BrtDVal14 },
		1054: { T: 1 },
		1055: {},
		1056: { T: 1 },
		1057: { T: -1 },
		1058: { T: 1 },
		1059: { T: -1 },
		1061: {},
		1062: { T: 1 },
		1063: { T: -1 },
		1064: { T: 1 },
		1065: { T: -1 },
		1066: { T: 1 },
		1067: { T: -1 },
		1068: { T: 1 },
		1069: { T: -1 },
		1070: { T: 1 },
		1071: { T: -1 },
		1072: { T: 1 },
		1073: { T: -1 },
		1075: { T: 1 },
		1076: { T: -1 },
		1077: { T: 1 },
		1078: { T: -1 },
		1079: { T: 1 },
		1080: { T: -1 },
		1081: { T: 1 },
		1082: { T: -1 },
		1083: { T: 1 },
		1084: { T: -1 },
		1085: {},
		1086: { T: 1 },
		1087: { T: -1 },
		1088: { T: 1 },
		1089: { T: -1 },
		1090: { T: 1 },
		1091: { T: -1 },
		1092: { T: 1 },
		1093: { T: -1 },
		1094: { T: 1 },
		1095: { T: -1 },
		1096: {},
		1097: { T: 1 },
		1098: {},
		1099: { T: -1 },
		1100: { T: 1 },
		1101: { T: -1 },
		1102: {},
		1103: {},
		1104: {},
		1105: {},
		1111: {},
		1112: {},
		1113: { T: 1 },
		1114: { T: -1 },
		1115: { T: 1 },
		1116: { T: -1 },
		1117: {},
		1118: { T: 1 },
		1119: { T: -1 },
		1120: { T: 1 },
		1121: { T: -1 },
		1122: { T: 1 },
		1123: { T: -1 },
		1124: { T: 1 },
		1125: { T: -1 },
		1126: {},
		1128: { T: 1 },
		1129: { T: -1 },
		1130: {},
		1131: { T: 1 },
		1132: { T: -1 },
		1133: { T: 1 },
		1134: { T: -1 },
		1135: { T: 1 },
		1136: { T: -1 },
		1137: { T: 1 },
		1138: { T: -1 },
		1139: { T: 1 },
		1140: { T: -1 },
		1141: {},
		1142: { T: 1 },
		1143: { T: -1 },
		1144: { T: 1 },
		1145: { T: -1 },
		1146: {},
		1147: { T: 1 },
		1148: { T: -1 },
		1149: { T: 1 },
		1150: { T: -1 },
		1152: { T: 1 },
		1153: { T: -1 },
		1154: { T: -1 },
		1155: { T: -1 },
		1156: { T: -1 },
		1157: { T: 1 },
		1158: { T: -1 },
		1159: { T: 1 },
		1160: { T: -1 },
		1161: { T: 1 },
		1162: { T: -1 },
		1163: { T: 1 },
		1164: { T: -1 },
		1165: { T: 1 },
		1166: { T: -1 },
		1167: { T: 1 },
		1168: { T: -1 },
		1169: { T: 1 },
		1170: { T: -1 },
		1171: {},
		1172: { T: 1 },
		1173: { T: -1 },
		1177: {},
		1178: { T: 1 },
		1180: {},
		1181: {},
		1182: {},
		2048: { T: 1 },
		2049: { T: -1 },
		2050: {},
		2051: { T: 1 },
		2052: { T: -1 },
		2053: {},
		2054: {},
		2055: { T: 1 },
		2056: { T: -1 },
		2057: { T: 1 },
		2058: { T: -1 },
		2060: {},
		2067: {},
		2068: { T: 1 },
		2069: { T: -1 },
		2070: {},
		2071: {},
		2072: { T: 1 },
		2073: { T: -1 },
		2075: {},
		2076: {},
		2077: { T: 1 },
		2078: { T: -1 },
		2079: {},
		2080: { T: 1 },
		2081: { T: -1 },
		2082: {},
		2083: { T: 1 },
		2084: { T: -1 },
		2085: { T: 1 },
		2086: { T: -1 },
		2087: { T: 1 },
		2088: { T: -1 },
		2089: { T: 1 },
		2090: { T: -1 },
		2091: {},
		2092: {},
		2093: { T: 1 },
		2094: { T: -1 },
		2095: {},
		2096: { T: 1 },
		2097: { T: -1 },
		2098: { T: 1 },
		2099: { T: -1 },
		2100: { T: 1 },
		2101: { T: -1 },
		2102: {},
		2103: { T: 1 },
		2104: { T: -1 },
		2105: {},
		2106: { T: 1 },
		2107: { T: -1 },
		2108: {},
		2109: { T: 1 },
		2110: { T: -1 },
		2111: { T: 1 },
		2112: { T: -1 },
		2113: { T: 1 },
		2114: { T: -1 },
		2115: {},
		2116: {},
		2117: {},
		2118: { T: 1 },
		2119: { T: -1 },
		2120: {},
		2121: { T: 1 },
		2122: { T: -1 },
		2123: { T: 1 },
		2124: { T: -1 },
		2125: {},
		2126: { T: 1 },
		2127: { T: -1 },
		2128: {},
		2129: { T: 1 },
		2130: { T: -1 },
		2131: { T: 1 },
		2132: { T: -1 },
		2133: { T: 1 },
		2134: {},
		2135: {},
		2136: {},
		2137: { T: 1 },
		2138: { T: -1 },
		2139: { T: 1 },
		2140: { T: -1 },
		2141: {},
		3072: {},
		3073: {},
		4096: { T: 1 },
		4097: { T: -1 },
		5002: { T: 1 },
		5003: { T: -1 },
		5081: { T: 1 },
		5082: { T: -1 },
		5083: {},
		5084: { T: 1 },
		5085: { T: -1 },
		5086: { T: 1 },
		5087: { T: -1 },
		5088: {},
		5089: {},
		5090: {},
		5092: { T: 1 },
		5093: { T: -1 },
		5094: {},
		5095: { T: 1 },
		5096: { T: -1 },
		5097: {},
		5099: {},
		65535: { n: "" }
	};
	XLSRecordEnum = {
		6: { f: parse_Formula },
		10: { f: parsenoop2 },
		12: { f: parseuint16 },
		13: { f: parseuint16 },
		14: { f: parsebool },
		15: { f: parsebool },
		16: { f: parse_Xnum },
		17: { f: parsebool },
		18: { f: parsebool },
		19: { f: parseuint16 },
		20: { f: parse_XLHeaderFooter },
		21: { f: parse_XLHeaderFooter },
		23: { f: parse_ExternSheet },
		24: { f: parse_Lbl },
		25: { f: parsebool },
		26: {},
		27: {},
		28: { f: parse_Note },
		29: {},
		34: { f: parsebool },
		35: { f: parse_ExternName },
		38: { f: parse_Xnum },
		39: { f: parse_Xnum },
		40: { f: parse_Xnum },
		41: { f: parse_Xnum },
		42: { f: parsebool },
		43: { f: parsebool },
		47: { f: parse_FilePass },
		49: { f: parse_Font },
		51: { f: parseuint16 },
		60: {},
		61: { f: parse_Window1 },
		64: { f: parsebool },
		65: { f: parse_Pane },
		66: { f: parseuint16 },
		77: {},
		80: {},
		81: {},
		82: {},
		85: { f: parseuint16 },
		89: {},
		90: {},
		91: {},
		92: { f: parse_WriteAccess },
		93: { f: parse_Obj },
		94: {},
		95: { f: parsebool },
		96: {},
		97: {},
		99: { f: parsebool },
		125: { f: parse_ColInfo },
		128: { f: parse_Guts },
		129: { f: parse_WsBool },
		130: { f: parseuint16 },
		131: { f: parsebool },
		132: { f: parsebool },
		133: { f: parse_BoundSheet8 },
		134: {},
		140: { f: parse_Country },
		141: { f: parseuint16 },
		144: {},
		146: { f: parse_Palette },
		151: {},
		152: {},
		153: {},
		154: {},
		155: {},
		156: { f: parseuint16 },
		157: {},
		158: {},
		160: { f: parse_Scl },
		161: { f: parse_Setup },
		174: {},
		175: {},
		176: {},
		177: {},
		178: {},
		180: {},
		181: {},
		182: {},
		184: {},
		185: {},
		189: { f: parse_MulRk },
		190: { f: parse_MulBlank },
		193: { f: parsenoop2 },
		197: {},
		198: {},
		199: {},
		200: {},
		201: {},
		202: { f: parsebool },
		203: {},
		204: {},
		205: {},
		206: {},
		207: {},
		208: {},
		209: {},
		210: {},
		211: {},
		213: {},
		215: {},
		216: {},
		217: {},
		218: { f: parseuint16 },
		220: {},
		221: { f: parsebool },
		222: {},
		224: { f: parse_XF },
		225: { f: parse_InterfaceHdr },
		226: { f: parsenoop2 },
		227: {},
		229: { f: parse_MergeCells },
		233: {},
		235: {},
		236: {},
		237: {},
		239: {},
		240: {},
		241: {},
		242: {},
		244: {},
		245: {},
		246: {},
		247: {},
		248: {},
		249: {},
		251: {},
		252: { f: parse_SST },
		253: { f: parse_LabelSst },
		255: { f: parse_ExtSST },
		256: {},
		259: {},
		290: {},
		311: {},
		312: {},
		315: {},
		317: { f: parseuint16a },
		318: {},
		319: {},
		320: {},
		330: {},
		331: {},
		333: {},
		334: {},
		335: {},
		336: {},
		337: {},
		338: {},
		339: {},
		340: {},
		351: {},
		352: { f: parsebool },
		353: { f: parsenoop2 },
		401: {},
		402: {},
		403: {},
		404: {},
		405: {},
		406: {},
		407: {},
		408: {},
		425: {},
		426: {},
		427: {},
		428: {},
		429: {},
		430: { f: parse_SupBook },
		431: { f: parsebool },
		432: {},
		433: {},
		434: {},
		437: {},
		438: { f: parse_TxO },
		439: { f: parsebool },
		440: { f: parse_HLink },
		441: {},
		442: { f: parse_XLUnicodeString },
		443: {},
		444: { f: parseuint16 },
		445: {},
		446: {},
		448: { f: parsenoop2 },
		449: {
			f: parse_RecalcId,
			r: 2
		},
		450: { f: parsenoop2 },
		512: { f: parse_Dimensions },
		513: { f: parse_Blank },
		515: { f: parse_Number },
		516: { f: parse_Label },
		517: { f: parse_BoolErr },
		519: { f: parse_String },
		520: { f: parse_Row },
		523: {},
		545: { f: parse_Array },
		549: { f: parse_DefaultRowHeight },
		566: {},
		574: { f: parse_Window2 },
		638: { f: parse_RK },
		659: {},
		1048: {},
		1054: { f: parse_Format },
		1084: {},
		1212: { f: parse_ShrFmla },
		2048: { f: parse_HLinkTooltip },
		2049: {},
		2050: {},
		2051: {},
		2052: {},
		2053: {},
		2054: {},
		2055: {},
		2056: {},
		2057: { f: parse_BOF },
		2058: {},
		2059: {},
		2060: {},
		2061: {},
		2062: {},
		2063: {},
		2064: {},
		2066: {},
		2067: {},
		2128: {},
		2129: {},
		2130: {},
		2131: {},
		2132: {},
		2133: {},
		2134: {},
		2135: {},
		2136: {},
		2137: {},
		2138: {},
		2146: {},
		2147: { r: 12 },
		2148: {},
		2149: {},
		2150: {},
		2151: { f: parsenoop2 },
		2152: {},
		2154: {},
		2155: {},
		2156: {},
		2161: {},
		2162: {},
		2164: {},
		2165: {},
		2166: {},
		2167: {},
		2168: {},
		2169: {},
		2170: {},
		2171: {},
		2172: {
			f: parse_XFCRC,
			r: 12
		},
		2173: {
			f: parse_XFExt,
			r: 12
		},
		2174: {},
		2175: {},
		2180: {},
		2181: {},
		2182: {},
		2183: {},
		2184: {},
		2185: {},
		2186: {},
		2187: {},
		2188: {
			f: parsebool,
			r: 12
		},
		2189: {},
		2190: { r: 12 },
		2191: {},
		2192: {},
		2194: {},
		2195: {},
		2196: {
			f: parse_NameCmt,
			r: 12
		},
		2197: {},
		2198: {
			f: parse_Theme,
			r: 12
		},
		2199: {},
		2200: {},
		2201: {},
		2202: {
			f: parse_MTRSettings,
			r: 12
		},
		2203: { f: parsenoop2 },
		2204: {},
		2205: {},
		2206: {},
		2207: {},
		2211: { f: parse_ForceFullCalculation },
		2212: {},
		2213: {},
		2214: {},
		2215: {},
		4097: {},
		4098: {},
		4099: {},
		4102: {},
		4103: {},
		4105: {},
		4106: {},
		4107: {},
		4108: {},
		4109: {},
		4116: {},
		4117: {},
		4118: {},
		4119: {},
		4120: {},
		4121: {},
		4122: {},
		4123: {},
		4124: {},
		4125: {},
		4126: {},
		4127: {},
		4128: {},
		4129: {},
		4130: {},
		4132: {},
		4133: {},
		4134: { f: parseuint16 },
		4135: {},
		4146: {},
		4147: {},
		4148: {},
		4149: {},
		4154: {},
		4156: {},
		4157: {},
		4158: {},
		4159: {},
		4160: {},
		4161: {},
		4163: {},
		4164: { f: parse_ShtProps },
		4165: {},
		4166: {},
		4168: {},
		4170: {},
		4171: {},
		4174: {},
		4175: {},
		4176: {},
		4177: {},
		4187: {},
		4188: { f: parse_ClrtClient },
		4189: {},
		4191: {},
		4192: {},
		4193: {},
		4194: {},
		4195: {},
		4196: {},
		4197: {},
		4198: {},
		4199: {},
		4200: {},
		0: { f: parse_Dimensions },
		1: {},
		2: { f: parse_BIFF2INT },
		3: { f: parse_BIFF2NUM },
		4: { f: parse_BIFF2STR },
		5: { f: parse_BIFF2BOOLERR },
		7: { f: parse_BIFF2STRING },
		8: {},
		9: { f: parse_BOF },
		11: {},
		22: { f: parseuint16 },
		30: { f: parse_BIFF2Format },
		31: {},
		32: {},
		33: { f: parse_Array },
		36: {},
		37: { f: parse_DefaultRowHeight },
		50: { f: parse_BIFF2FONTXTRA },
		62: {},
		52: {},
		67: { f: parse_BIFF2XF },
		68: { f: parseuint16 },
		69: {},
		86: {},
		126: {},
		127: { f: parse_ImData },
		135: {},
		136: {},
		137: {},
		143: { f: parse_BIFF4SheetInfo },
		145: {},
		148: {},
		149: {},
		150: {},
		169: {},
		171: {},
		188: {},
		191: {},
		192: {},
		194: {},
		195: {},
		214: { f: parse_RString },
		223: {},
		234: {},
		354: {},
		421: {},
		518: { f: parse_Formula },
		521: { f: parse_BOF },
		536: { f: parse_Lbl },
		547: { f: parse_ExternName },
		561: {},
		579: { f: parse_BIFF3XF },
		1030: { f: parse_Formula },
		1033: { f: parse_BOF },
		1091: { f: parse_BIFF4XF },
		2157: {},
		2163: {},
		2177: {},
		2240: {},
		2241: {},
		2242: {},
		2243: {},
		2244: {},
		2245: {},
		2246: {},
		2247: {},
		2248: {},
		2249: {},
		2250: {},
		2251: {},
		2262: { r: 12 },
		101: {},
		102: {},
		105: {},
		106: {},
		107: {},
		109: {},
		112: {},
		114: {},
		29282: {}
	};
	b8oid = 1, b8ocnts = [];
	HTML_BEGIN = "<html><head><meta charset=\"utf-8\"/><title>SheetJS Table Export</title></head><body>";
	HTML_END = "</body></html>";
	write_styles_ods = /* @__PURE__ */ (function() {
		var master_styles = [
			"<office:master-styles>",
			"<style:master-page style:name=\"mp1\" style:page-layout-name=\"mp1\">",
			"<style:header/>",
			"<style:header-left style:display=\"false\"/>",
			"<style:footer/>",
			"<style:footer-left style:display=\"false\"/>",
			"</style:master-page>",
			"</office:master-styles>"
		].join("");
		var payload = "<office:document-styles " + wxt_helper({
			"xmlns:office": "urn:oasis:names:tc:opendocument:xmlns:office:1.0",
			"xmlns:table": "urn:oasis:names:tc:opendocument:xmlns:table:1.0",
			"xmlns:style": "urn:oasis:names:tc:opendocument:xmlns:style:1.0",
			"xmlns:text": "urn:oasis:names:tc:opendocument:xmlns:text:1.0",
			"xmlns:draw": "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",
			"xmlns:fo": "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
			"xmlns:xlink": "http://www.w3.org/1999/xlink",
			"xmlns:dc": "http://purl.org/dc/elements/1.1/",
			"xmlns:number": "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0",
			"xmlns:svg": "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0",
			"xmlns:of": "urn:oasis:names:tc:opendocument:xmlns:of:1.2",
			"office:version": "1.2"
		}) + ">" + master_styles + "</office:document-styles>";
		return function wso() {
			return XML_HEADER + payload;
		};
	})();
	write_content_ods = /* @__PURE__ */ (function() {
		var write_text_p = function(text$2, span) {
			return escapexml(text$2).replace(/  +/g, function($$) {
				return "<text:s text:c=\"" + $$.length + "\"/>";
			}).replace(/\t/g, "<text:tab/>").replace(/\n/g, span ? "<text:line-break/>" : "</text:p><text:p>").replace(/^ /, "<text:s/>").replace(/ $/, "<text:s/>");
		};
		var null_cell_xml = "          <table:table-cell />\n";
		var write_ws = function(ws, wb, i$7, opts, nfs, date1904) {
			var o$10 = [];
			o$10.push("      <table:table table:name=\"" + escapexml(wb.SheetNames[i$7]) + "\" table:style-name=\"ta1\">\n");
			var R$1 = 0, C$2 = 0, range = decode_range(ws["!ref"] || "A1");
			var marr = ws["!merges"] || [], mi = 0;
			var dense = ws["!data"] != null;
			if (ws["!cols"]) {
				for (C$2 = 0; C$2 <= range.e.c; ++C$2) o$10.push("        <table:table-column" + (ws["!cols"][C$2] ? " table:style-name=\"co" + ws["!cols"][C$2].ods + "\"" : "") + "></table:table-column>\n");
			}
			var H$1 = "", ROWS = ws["!rows"] || [];
			for (R$1 = 0; R$1 < range.s.r; ++R$1) {
				H$1 = ROWS[R$1] ? " table:style-name=\"ro" + ROWS[R$1].ods + "\"" : "";
				o$10.push("        <table:table-row" + H$1 + "></table:table-row>\n");
			}
			for (; R$1 <= range.e.r; ++R$1) {
				H$1 = ROWS[R$1] ? " table:style-name=\"ro" + ROWS[R$1].ods + "\"" : "";
				o$10.push("        <table:table-row" + H$1 + ">\n");
				for (C$2 = 0; C$2 < range.s.c; ++C$2) o$10.push(null_cell_xml);
				for (; C$2 <= range.e.c; ++C$2) {
					var skip = false, ct = {}, textp = "";
					for (mi = 0; mi != marr.length; ++mi) {
						if (marr[mi].s.c > C$2) continue;
						if (marr[mi].s.r > R$1) continue;
						if (marr[mi].e.c < C$2) continue;
						if (marr[mi].e.r < R$1) continue;
						if (marr[mi].s.c != C$2 || marr[mi].s.r != R$1) skip = true;
						ct["table:number-columns-spanned"] = marr[mi].e.c - marr[mi].s.c + 1;
						ct["table:number-rows-spanned"] = marr[mi].e.r - marr[mi].s.r + 1;
						break;
					}
					if (skip) {
						o$10.push("          <table:covered-table-cell/>\n");
						continue;
					}
					var ref = encode_cell({
						r: R$1,
						c: C$2
					}), cell = dense ? (ws["!data"][R$1] || [])[C$2] : ws[ref];
					if (cell && cell.f) {
						ct["table:formula"] = escapexml(csf_to_ods_formula(cell.f));
						if (cell.F) {
							if (cell.F.slice(0, ref.length) == ref) {
								var _Fref = decode_range(cell.F);
								ct["table:number-matrix-columns-spanned"] = _Fref.e.c - _Fref.s.c + 1;
								ct["table:number-matrix-rows-spanned"] = _Fref.e.r - _Fref.s.r + 1;
							}
						}
					}
					if (!cell) {
						o$10.push(null_cell_xml);
						continue;
					}
					switch (cell.t) {
						case "b":
							textp = cell.v ? "TRUE" : "FALSE";
							ct["office:value-type"] = "boolean";
							ct["office:boolean-value"] = cell.v ? "true" : "false";
							break;
						case "n":
							if (!isFinite(cell.v)) {
								if (isNaN(cell.v)) {
									textp = "#NUM!";
									ct["table:formula"] = "of:=#NUM!";
								} else {
									textp = "#DIV/0!";
									ct["table:formula"] = "of:=" + (cell.v < 0 ? "-" : "") + "1/0";
								}
								ct["office:string-value"] = "";
								ct["office:value-type"] = "string";
								ct["calcext:value-type"] = "error";
							} else {
								textp = cell.w || String(cell.v || 0);
								ct["office:value-type"] = "float";
								ct["office:value"] = cell.v || 0;
							}
							break;
						case "s":
						case "str":
							textp = cell.v == null ? "" : cell.v;
							ct["office:value-type"] = "string";
							break;
						case "d":
							textp = cell.w || parseDate(cell.v, date1904).toISOString();
							ct["office:value-type"] = "date";
							ct["office:date-value"] = parseDate(cell.v, date1904).toISOString();
							ct["table:style-name"] = "ce1";
							break;
						default:
							o$10.push(null_cell_xml);
							continue;
					}
					var text_p = write_text_p(textp);
					if (cell.l && cell.l.Target) {
						var _tgt = cell.l.Target;
						_tgt = _tgt.charAt(0) == "#" ? "#" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;
						if (_tgt.charAt(0) != "#" && !_tgt.match(/^\w+:/)) _tgt = "../" + _tgt;
						text_p = writextag("text:a", text_p, { "xlink:href": _tgt.replace(/&/g, "&amp;") });
					}
					if (nfs[cell.z]) ct["table:style-name"] = "ce" + nfs[cell.z].slice(1);
					var payload = writextag("text:p", text_p, {});
					if (cell.c) {
						var acreator = "", apayload = "", aprops = {};
						for (var ci = 0; ci < cell.c.length; ++ci) {
							if (!acreator && cell.c[ci].a) acreator = cell.c[ci].a;
							apayload += "<text:p>" + write_text_p(cell.c[ci].t) + "</text:p>";
						}
						if (!cell.c.hidden) aprops["office:display"] = true;
						payload = writextag("office:annotation", apayload, aprops) + payload;
					}
					o$10.push("          " + writextag("table:table-cell", payload, ct) + "\n");
				}
				o$10.push("        </table:table-row>\n");
			}
			if ((wb.Workbook || {}).Names) o$10.push(write_names_ods(wb.Workbook.Names, wb.SheetNames, i$7));
			o$10.push("      </table:table>\n");
			return o$10.join("");
		};
		var write_automatic_styles_ods = function(o$10, wb) {
			o$10.push(" <office:automatic-styles>\n");
			var cidx = 0;
			wb.SheetNames.map(function(n$9) {
				return wb.Sheets[n$9];
			}).forEach(function(ws) {
				if (!ws) return;
				if (ws["!cols"]) {
					for (var C$2 = 0; C$2 < ws["!cols"].length; ++C$2) if (ws["!cols"][C$2]) {
						var colobj = ws["!cols"][C$2];
						if (colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;
						process_col(colobj);
						colobj.ods = cidx;
						var w$2 = ws["!cols"][C$2].wpx + "px";
						o$10.push("  <style:style style:name=\"co" + cidx + "\" style:family=\"table-column\">\n");
						o$10.push("   <style:table-column-properties fo:break-before=\"auto\" style:column-width=\"" + w$2 + "\"/>\n");
						o$10.push("  </style:style>\n");
						++cidx;
					}
				}
			});
			var ridx = 0;
			wb.SheetNames.map(function(n$9) {
				return wb.Sheets[n$9];
			}).forEach(function(ws) {
				if (!ws) return;
				if (ws["!rows"]) {
					for (var R$1 = 0; R$1 < ws["!rows"].length; ++R$1) if (ws["!rows"][R$1]) {
						ws["!rows"][R$1].ods = ridx;
						var h$5 = ws["!rows"][R$1].hpx + "px";
						o$10.push("  <style:style style:name=\"ro" + ridx + "\" style:family=\"table-row\">\n");
						o$10.push("   <style:table-row-properties fo:break-before=\"auto\" style:row-height=\"" + h$5 + "\"/>\n");
						o$10.push("  </style:style>\n");
						++ridx;
					}
				}
			});
			o$10.push("  <style:style style:name=\"ta1\" style:family=\"table\" style:master-page-name=\"mp1\">\n");
			o$10.push("   <style:table-properties table:display=\"true\" style:writing-mode=\"lr-tb\"/>\n");
			o$10.push("  </style:style>\n");
			o$10.push("  <number:date-style style:name=\"N37\" number:automatic-order=\"true\">\n");
			o$10.push("   <number:month number:style=\"long\"/>\n");
			o$10.push("   <number:text>/</number:text>\n");
			o$10.push("   <number:day number:style=\"long\"/>\n");
			o$10.push("   <number:text>/</number:text>\n");
			o$10.push("   <number:year/>\n");
			o$10.push("  </number:date-style>\n");
			var nfs = {};
			var nfi = 69;
			wb.SheetNames.map(function(n$9) {
				return wb.Sheets[n$9];
			}).forEach(function(ws) {
				if (!ws) return;
				var dense = ws["!data"] != null;
				if (!ws["!ref"]) return;
				var range = decode_range(ws["!ref"]);
				for (var R$1 = 0; R$1 <= range.e.r; ++R$1) for (var C$2 = 0; C$2 <= range.e.c; ++C$2) {
					var c$7 = dense ? (ws["!data"][R$1] || [])[C$2] : ws[encode_cell({
						r: R$1,
						c: C$2
					})];
					if (!c$7 || !c$7.z || c$7.z.toLowerCase() == "general") continue;
					if (!nfs[c$7.z]) {
						var out = write_number_format_ods(c$7.z, "N" + nfi);
						if (out) {
							nfs[c$7.z] = "N" + nfi;
							++nfi;
							o$10.push(out + "\n");
						}
					}
				}
			});
			o$10.push("  <style:style style:name=\"ce1\" style:family=\"table-cell\" style:parent-style-name=\"Default\" style:data-style-name=\"N37\"/>\n");
			keys(nfs).forEach(function(nf) {
				o$10.push("<style:style style:name=\"ce" + nfs[nf].slice(1) + "\" style:family=\"table-cell\" style:parent-style-name=\"Default\" style:data-style-name=\"" + nfs[nf] + "\"/>\n");
			});
			o$10.push(" </office:automatic-styles>\n");
			return nfs;
		};
		return function wcx(wb, opts) {
			var o$10 = [XML_HEADER];
			var attr = wxt_helper({
				"xmlns:office": "urn:oasis:names:tc:opendocument:xmlns:office:1.0",
				"xmlns:table": "urn:oasis:names:tc:opendocument:xmlns:table:1.0",
				"xmlns:style": "urn:oasis:names:tc:opendocument:xmlns:style:1.0",
				"xmlns:text": "urn:oasis:names:tc:opendocument:xmlns:text:1.0",
				"xmlns:draw": "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",
				"xmlns:fo": "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
				"xmlns:xlink": "http://www.w3.org/1999/xlink",
				"xmlns:dc": "http://purl.org/dc/elements/1.1/",
				"xmlns:meta": "urn:oasis:names:tc:opendocument:xmlns:meta:1.0",
				"xmlns:number": "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0",
				"xmlns:presentation": "urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",
				"xmlns:svg": "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0",
				"xmlns:chart": "urn:oasis:names:tc:opendocument:xmlns:chart:1.0",
				"xmlns:dr3d": "urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0",
				"xmlns:math": "http://www.w3.org/1998/Math/MathML",
				"xmlns:form": "urn:oasis:names:tc:opendocument:xmlns:form:1.0",
				"xmlns:script": "urn:oasis:names:tc:opendocument:xmlns:script:1.0",
				"xmlns:ooo": "http://openoffice.org/2004/office",
				"xmlns:ooow": "http://openoffice.org/2004/writer",
				"xmlns:oooc": "http://openoffice.org/2004/calc",
				"xmlns:dom": "http://www.w3.org/2001/xml-events",
				"xmlns:xforms": "http://www.w3.org/2002/xforms",
				"xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
				"xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
				"xmlns:sheet": "urn:oasis:names:tc:opendocument:sh33tjs:1.0",
				"xmlns:rpt": "http://openoffice.org/2005/report",
				"xmlns:of": "urn:oasis:names:tc:opendocument:xmlns:of:1.2",
				"xmlns:xhtml": "http://www.w3.org/1999/xhtml",
				"xmlns:grddl": "http://www.w3.org/2003/g/data-view#",
				"xmlns:tableooo": "http://openoffice.org/2009/table",
				"xmlns:drawooo": "http://openoffice.org/2010/draw",
				"xmlns:calcext": "urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0",
				"xmlns:loext": "urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0",
				"xmlns:field": "urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0",
				"xmlns:formx": "urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0",
				"xmlns:css3t": "http://www.w3.org/TR/css3-text/",
				"office:version": "1.2"
			});
			var fods = wxt_helper({
				"xmlns:config": "urn:oasis:names:tc:opendocument:xmlns:config:1.0",
				"office:mimetype": "application/vnd.oasis.opendocument.spreadsheet"
			});
			if (opts.bookType == "fods") {
				o$10.push("<office:document" + attr + fods + ">\n");
				o$10.push(write_meta_ods().replace(/<office:document-meta[^<>]*?>/, "").replace(/<\/office:document-meta>/, "") + "\n");
			} else o$10.push("<office:document-content" + attr + ">\n");
			var nfs = write_automatic_styles_ods(o$10, wb);
			o$10.push("  <office:body>\n");
			o$10.push("    <office:spreadsheet>\n");
			if (((wb.Workbook || {}).WBProps || {}).date1904) o$10.push("      <table:calculation-settings table:case-sensitive=\"false\" table:search-criteria-must-apply-to-whole-cell=\"true\" table:use-wildcards=\"true\" table:use-regular-expressions=\"false\" table:automatic-find-labels=\"false\">\n        <table:null-date table:date-value=\"1904-01-01\"/>\n      </table:calculation-settings>\n");
			for (var i$7 = 0; i$7 != wb.SheetNames.length; ++i$7) o$10.push(write_ws(wb.Sheets[wb.SheetNames[i$7]], wb, i$7, opts, nfs, ((wb.Workbook || {}).WBProps || {}).date1904));
			if ((wb.Workbook || {}).Names) o$10.push(write_names_ods(wb.Workbook.Names, wb.SheetNames, -1));
			o$10.push("    </office:spreadsheet>\n");
			o$10.push("  </office:body>\n");
			if (opts.bookType == "fods") o$10.push("</office:document>");
			else o$10.push("</office:document-content>");
			return o$10.join("");
		};
	})();
	subarray = function() {
		try {
			if (typeof Uint8Array == "undefined") return "slice";
			if (typeof Uint8Array.prototype.subarray == "undefined") return "slice";
			if (typeof Buffer !== "undefined") {
				if (typeof Buffer.prototype.subarray == "undefined") return "slice";
				if ((typeof Buffer.from == "function" ? Buffer.from([72, 62]) : new Buffer([72, 62])) instanceof Uint8Array) return "subarray";
				return "slice";
			}
			return "subarray";
		} catch (e$10) {
			return "slice";
		}
	}();
	numbers_lut_new = function() {
		return {
			sst: [],
			rsst: [],
			ofmt: [],
			nfmt: [],
			fmla: [],
			ferr: [],
			cmnt: []
		};
	};
	USE_WIDE_ROWS = true;
	qreg = /"/g;
	utils$1 = {
		encode_col,
		encode_row,
		encode_cell,
		encode_range,
		decode_col,
		decode_row,
		split_cell,
		decode_cell,
		decode_range,
		format_cell,
		sheet_new,
		sheet_add_aoa,
		sheet_add_json,
		sheet_add_dom,
		aoa_to_sheet,
		json_to_sheet,
		table_to_sheet: parse_dom_table,
		table_to_book,
		sheet_to_csv,
		sheet_to_txt,
		sheet_to_json,
		sheet_to_html,
		sheet_to_formulae,
		sheet_to_row_object_array: sheet_to_json,
		sheet_get_cell: ws_get_cell_stub,
		book_new,
		book_append_sheet,
		book_set_sheet_visibility,
		cell_set_number_format,
		cell_set_hyperlink,
		cell_set_internal_link,
		cell_add_comment,
		sheet_set_array_formula,
		consts: {
			SHEET_VISIBLE: 0,
			SHEET_HIDDEN: 1,
			SHEET_VERY_HIDDEN: 2
		}
	};
	;
	__stream = {
		to_json: write_json_stream,
		to_html: write_html_stream,
		to_csv: write_csv_stream,
		to_xlml: write_xlml_stream,
		set_readable
	};
	version$3 = XLSX.version;
	xlsx_default = {
		parse_xlscfb,
		parse_zip,
		read: readSync,
		readFile: readFileSync,
		readFileSync,
		write: writeSync,
		writeFile: writeFileSync,
		writeFileSync,
		writeFileAsync,
		writeXLSX: writeSyncXLSX,
		writeFileXLSX: writeFileSyncXLSX,
		utils: utils$1,
		set_fs,
		set_cptable,
		stream: __stream,
		SSF,
		CFB
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/utils/attachment-utils.js
/**
* Load an attachment from various sources
* @param source - URL string, File, Blob, or ArrayBuffer
* @param fileName - Optional filename override
* @returns Promise<Attachment>
* @throws Error if loading fails
*/
async function loadAttachment(source$4, fileName) {
	let arrayBuffer;
	let detectedFileName = fileName || "unnamed";
	let mimeType = "application/octet-stream";
	let size = 0;
	if (typeof source$4 === "string") {
		const response = await fetch(source$4);
		if (!response.ok) {
			throw new Error(i18n("Failed to fetch file"));
		}
		arrayBuffer = await response.arrayBuffer();
		size = arrayBuffer.byteLength;
		mimeType = response.headers.get("content-type") || mimeType;
		if (!fileName) {
			const urlParts = source$4.split("/");
			detectedFileName = urlParts[urlParts.length - 1] || "document";
		}
	} else if (source$4 instanceof File) {
		arrayBuffer = await source$4.arrayBuffer();
		size = source$4.size;
		mimeType = source$4.type || mimeType;
		detectedFileName = fileName || source$4.name;
	} else if (source$4 instanceof Blob) {
		arrayBuffer = await source$4.arrayBuffer();
		size = source$4.size;
		mimeType = source$4.type || mimeType;
	} else if (source$4 instanceof ArrayBuffer) {
		arrayBuffer = source$4;
		size = source$4.byteLength;
	} else {
		throw new Error(i18n("Invalid source type"));
	}
	const uint8Array = new Uint8Array(arrayBuffer);
	let binary = "";
	const chunkSize = 32768;
	for (let i$7 = 0; i$7 < uint8Array.length; i$7 += chunkSize) {
		const chunk = uint8Array.slice(i$7, i$7 + chunkSize);
		binary += String.fromCharCode(...chunk);
	}
	const base64Content = btoa(binary);
	const id = `${detectedFileName}_${Date.now()}_${Math.random()}`;
	if (mimeType === "application/pdf" || detectedFileName.toLowerCase().endsWith(".pdf")) {
		const { extractedText, preview } = await processPdf(arrayBuffer, detectedFileName);
		return {
			id,
			type: "document",
			fileName: detectedFileName,
			mimeType: "application/pdf",
			size,
			content: base64Content,
			extractedText,
			preview
		};
	}
	if (mimeType === "application/vnd.openxmlformats-officedocument.wordprocessingml.document" || detectedFileName.toLowerCase().endsWith(".docx")) {
		const { extractedText } = await processDocx(arrayBuffer, detectedFileName);
		return {
			id,
			type: "document",
			fileName: detectedFileName,
			mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
			size,
			content: base64Content,
			extractedText
		};
	}
	if (mimeType === "application/vnd.openxmlformats-officedocument.presentationml.presentation" || detectedFileName.toLowerCase().endsWith(".pptx")) {
		const { extractedText } = await processPptx(arrayBuffer, detectedFileName);
		return {
			id,
			type: "document",
			fileName: detectedFileName,
			mimeType: "application/vnd.openxmlformats-officedocument.presentationml.presentation",
			size,
			content: base64Content,
			extractedText
		};
	}
	const excelMimeTypes = ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/vnd.ms-excel"];
	if (excelMimeTypes.includes(mimeType) || detectedFileName.toLowerCase().endsWith(".xlsx") || detectedFileName.toLowerCase().endsWith(".xls")) {
		const { extractedText } = await processExcel(arrayBuffer, detectedFileName);
		return {
			id,
			type: "document",
			fileName: detectedFileName,
			mimeType: mimeType.startsWith("application/vnd") ? mimeType : "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
			size,
			content: base64Content,
			extractedText
		};
	}
	if (mimeType.startsWith("image/")) {
		return {
			id,
			type: "image",
			fileName: detectedFileName,
			mimeType,
			size,
			content: base64Content,
			preview: base64Content
		};
	}
	const textExtensions = [
		".txt",
		".md",
		".json",
		".xml",
		".html",
		".css",
		".js",
		".ts",
		".jsx",
		".tsx",
		".yml",
		".yaml"
	];
	const isTextFile = mimeType.startsWith("text/") || textExtensions.some((ext) => detectedFileName.toLowerCase().endsWith(ext));
	if (isTextFile) {
		const decoder = new TextDecoder();
		const text$2 = decoder.decode(arrayBuffer);
		return {
			id,
			type: "document",
			fileName: detectedFileName,
			mimeType: mimeType.startsWith("text/") ? mimeType : "text/plain",
			size,
			content: base64Content,
			extractedText: text$2
		};
	}
	throw new Error(`Unsupported file type: ${mimeType}`);
}
async function processPdf(arrayBuffer, fileName) {
	let pdf = null;
	try {
		pdf = await getDocument({ data: arrayBuffer }).promise;
		let extractedText = `<pdf filename="${fileName}">`;
		for (let i$7 = 1; i$7 <= pdf.numPages; i$7++) {
			const page = await pdf.getPage(i$7);
			const textContent = await page.getTextContent();
			const pageText = textContent.items.map((item) => item.str).filter((str) => str.trim()).join(" ");
			extractedText += `\n<page number="${i$7}">\n${pageText}\n</page>`;
		}
		extractedText += "\n</pdf>";
		const preview = await generatePdfPreview(pdf);
		return {
			extractedText,
			preview
		};
	} catch (error$2) {
		console.error("Error processing PDF:", error$2);
		throw new Error(`Failed to process PDF: ${String(error$2)}`);
	} finally {
		if (pdf) {
			pdf.destroy();
		}
	}
}
async function generatePdfPreview(pdf) {
	try {
		const page = await pdf.getPage(1);
		const viewport = page.getViewport({ scale: 1 });
		const scale = Math.min(160 / viewport.width, 160 / viewport.height);
		const scaledViewport = page.getViewport({ scale });
		const canvas = document.createElement("canvas");
		const context = canvas.getContext("2d");
		if (!context) {
			return undefined;
		}
		canvas.height = scaledViewport.height;
		canvas.width = scaledViewport.width;
		const renderContext = {
			canvasContext: context,
			viewport: scaledViewport,
			canvas
		};
		await page.render(renderContext).promise;
		return canvas.toDataURL("image/png").split(",")[1];
	} catch (error$2) {
		console.error("Error generating PDF preview:", error$2);
		return undefined;
	}
}
async function processDocx(arrayBuffer, fileName) {
	try {
		const wordDoc = await (0, import_docx_preview$2.parseAsync)(arrayBuffer);
		let extractedText = `<docx filename="${fileName}">\n<page number="1">\n`;
		const body = wordDoc.documentPart?.body;
		if (body?.children) {
			const texts = [];
			for (const element of body.children) {
				const text$2 = extractTextFromElement(element);
				if (text$2) {
					texts.push(text$2);
				}
			}
			extractedText += texts.join("\n");
		}
		extractedText += `\n</page>\n</docx>`;
		return { extractedText };
	} catch (error$2) {
		console.error("Error processing DOCX:", error$2);
		throw new Error(`Failed to process DOCX: ${String(error$2)}`);
	}
}
function extractTextFromElement(element) {
	let text$2 = "";
	const elementType = element.type?.toLowerCase() || "";
	if (elementType === "paragraph" && element.children) {
		for (const child of element.children) {
			const childType = child.type?.toLowerCase() || "";
			if (childType === "run" && child.children) {
				for (const textChild of child.children) {
					const textType = textChild.type?.toLowerCase() || "";
					if (textType === "text") {
						text$2 += textChild.text || "";
					}
				}
			} else if (childType === "text") {
				text$2 += child.text || "";
			}
		}
	} else if (elementType === "table") {
		if (element.children) {
			const tableTexts = [];
			for (const row of element.children) {
				const rowType = row.type?.toLowerCase() || "";
				if (rowType === "tablerow" && row.children) {
					const rowTexts = [];
					for (const cell of row.children) {
						const cellType = cell.type?.toLowerCase() || "";
						if (cellType === "tablecell" && cell.children) {
							const cellTexts = [];
							for (const cellElement of cell.children) {
								const cellText = extractTextFromElement(cellElement);
								if (cellText) cellTexts.push(cellText);
							}
							if (cellTexts.length > 0) rowTexts.push(cellTexts.join(" "));
						}
					}
					if (rowTexts.length > 0) tableTexts.push(rowTexts.join(" | "));
				}
			}
			if (tableTexts.length > 0) {
				text$2 = "\n[Table]\n" + tableTexts.join("\n") + "\n[/Table]\n";
			}
		}
	} else if (element.children && Array.isArray(element.children)) {
		const childTexts = [];
		for (const child of element.children) {
			const childText = extractTextFromElement(child);
			if (childText) childTexts.push(childText);
		}
		text$2 = childTexts.join(" ");
	}
	return text$2.trim();
}
async function processPptx(arrayBuffer, fileName) {
	try {
		const zip = await import_jszip_min.default.loadAsync(arrayBuffer);
		let extractedText = `<pptx filename="${fileName}">`;
		const slideFiles = Object.keys(zip.files).filter((name) => name.match(/ppt\/slides\/slide\d+\.xml$/)).sort((a$2, b$3) => {
			const numA = Number.parseInt(a$2.match(/slide(\d+)\.xml$/)?.[1] || "0", 10);
			const numB = Number.parseInt(b$3.match(/slide(\d+)\.xml$/)?.[1] || "0", 10);
			return numA - numB;
		});
		for (let i$7 = 0; i$7 < slideFiles.length; i$7++) {
			const slideFile = zip.file(slideFiles[i$7]);
			if (slideFile) {
				const slideXml = await slideFile.async("text");
				const textMatches = slideXml.match(/<a:t[^>]*>([^<]+)<\/a:t>/g);
				if (textMatches) {
					extractedText += `\n<slide number="${i$7 + 1}">`;
					const slideTexts = textMatches.map((match) => {
						const textMatch = match.match(/<a:t[^>]*>([^<]+)<\/a:t>/);
						return textMatch ? textMatch[1] : "";
					}).filter((t$6) => t$6.trim());
					if (slideTexts.length > 0) {
						extractedText += "\n" + slideTexts.join("\n");
					}
					extractedText += "\n</slide>";
				}
			}
		}
		const notesFiles = Object.keys(zip.files).filter((name) => name.match(/ppt\/notesSlides\/notesSlide\d+\.xml$/)).sort((a$2, b$3) => {
			const numA = Number.parseInt(a$2.match(/notesSlide(\d+)\.xml$/)?.[1] || "0", 10);
			const numB = Number.parseInt(b$3.match(/notesSlide(\d+)\.xml$/)?.[1] || "0", 10);
			return numA - numB;
		});
		if (notesFiles.length > 0) {
			extractedText += "\n<notes>";
			for (const noteFile of notesFiles) {
				const file = zip.file(noteFile);
				if (file) {
					const noteXml = await file.async("text");
					const textMatches = noteXml.match(/<a:t[^>]*>([^<]+)<\/a:t>/g);
					if (textMatches) {
						const noteTexts = textMatches.map((match) => {
							const textMatch = match.match(/<a:t[^>]*>([^<]+)<\/a:t>/);
							return textMatch ? textMatch[1] : "";
						}).filter((t$6) => t$6.trim());
						if (noteTexts.length > 0) {
							const slideNum = noteFile.match(/notesSlide(\d+)\.xml$/)?.[1];
							extractedText += `\n[Slide ${slideNum} notes]: ${noteTexts.join(" ")}`;
						}
					}
				}
			}
			extractedText += "\n</notes>";
		}
		extractedText += "\n</pptx>";
		return { extractedText };
	} catch (error$2) {
		console.error("Error processing PPTX:", error$2);
		throw new Error(`Failed to process PPTX: ${String(error$2)}`);
	}
}
async function processExcel(arrayBuffer, fileName) {
	try {
		const workbook = readSync(arrayBuffer, { type: "array" });
		let extractedText = `<excel filename="${fileName}">`;
		for (const [index, sheetName] of workbook.SheetNames.entries()) {
			const worksheet = workbook.Sheets[sheetName];
			const csvText = utils$1.sheet_to_csv(worksheet);
			extractedText += `\n<sheet name="${sheetName}" index="${index + 1}">\n${csvText}\n</sheet>`;
		}
		extractedText += "\n</excel>";
		return { extractedText };
	} catch (error$2) {
		console.error("Error processing Excel:", error$2);
		throw new Error(`Failed to process Excel: ${String(error$2)}`);
	}
}
var import_docx_preview$2, import_jszip_min;
var init_attachment_utils = __esmMin((() => {
	import_docx_preview$2 = require_docx_preview();
	import_jszip_min = /* @__PURE__ */ __toESM(require_jszip_min(), 1);
	init_pdf();
	init_xlsx();
	init_i18n();
	GlobalWorkerOptions.workerSrc = new URL("pdfjs-dist/build/pdf.worker.min.mjs", import.meta.url).toString();
}));

//#endregion
//#region node_modules/lit/html.js
var init_html = __esmMin((() => {
	init_lit_html();
}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/dist/ModeToggle.js
var __decorate$26, ModeToggle;
var init_ModeToggle = __esmMin((() => {
	init_lit();
	init_decorators();
	init_i18n$1();
	__decorate$26 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	ModeToggle = class ModeToggle$1 extends i {
		constructor() {
			super(...arguments);
			this.modes = [i18n("Mode 1"), i18n("Mode 2")];
			this.selectedIndex = 0;
		}
		createRenderRoot() {
			return this;
		}
		setMode(index) {
			if (this.selectedIndex !== index && index >= 0 && index < this.modes.length) {
				this.selectedIndex = index;
				this.dispatchEvent(new CustomEvent("mode-change", {
					detail: {
						index,
						mode: this.modes[index]
					},
					bubbles: true
				}));
			}
		}
		render() {
			if (this.modes.length < 2) return x``;
			return x`
         <div class="inline-flex items-center h-7 rounded-md overflow-hidden border border-border bg-muted/60">
            ${this.modes.map((mode, index) => x`
                  <button
                     class="px-3 h-full flex items-center text-sm font-medium transition-colors
								${index === this.selectedIndex ? "bg-card text-foreground shadow-sm" : "text-muted-foreground hover:text-accent-foreground"}"
                     @click=${() => this.setMode(index)}
                     title="${mode}"
                  >
                     ${mode}
                  </button>
               `)}
         </div>
      `;
		}
	};
	__decorate$26([n$1({ type: Array })], ModeToggle.prototype, "modes", void 0);
	__decorate$26([n$1({ type: Number })], ModeToggle.prototype, "selectedIndex", void 0);
	ModeToggle = __decorate$26([t("mode-toggle")], ModeToggle);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/dialogs/AttachmentOverlay.js
var import_docx_preview$1, __decorate$25, AttachmentOverlay;
var init_AttachmentOverlay = __esmMin((() => {
	init_ModeToggle();
	init_dist();
	init_Button();
	import_docx_preview$1 = require_docx_preview();
	init_lit();
	init_decorators();
	init_lucide();
	init_pdf();
	init_xlsx();
	init_i18n();
	__decorate$25 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	AttachmentOverlay = class AttachmentOverlay extends i {
		constructor() {
			super(...arguments);
			this.showExtractedText = false;
			this.error = null;
			this.currentLoadingTask = null;
			this.handleBackdropClick = () => {
				this.close();
			};
			this.handleDownload = () => {
				if (!this.attachment) return;
				const byteCharacters = atob(this.attachment.content);
				const byteNumbers = new Array(byteCharacters.length);
				for (let i$7 = 0; i$7 < byteCharacters.length; i$7++) {
					byteNumbers[i$7] = byteCharacters.charCodeAt(i$7);
				}
				const byteArray = new Uint8Array(byteNumbers);
				const blob = new Blob([byteArray], { type: this.attachment.mimeType });
				const url = URL.createObjectURL(blob);
				const a$2 = document.createElement("a");
				a$2.href = url;
				a$2.download = this.attachment.fileName;
				document.body.appendChild(a$2);
				a$2.click();
				document.body.removeChild(a$2);
				URL.revokeObjectURL(url);
			};
		}
		createRenderRoot() {
			return this;
		}
		static open(attachment, onClose) {
			const overlay = new AttachmentOverlay();
			overlay.attachment = attachment;
			overlay.onCloseCallback = onClose;
			document.body.appendChild(overlay);
			overlay.setupEventListeners();
		}
		setupEventListeners() {
			this.boundHandleKeyDown = (e$10) => {
				if (e$10.key === "Escape") {
					this.close();
				}
			};
			window.addEventListener("keydown", this.boundHandleKeyDown);
		}
		close() {
			this.cleanup();
			if (this.boundHandleKeyDown) {
				window.removeEventListener("keydown", this.boundHandleKeyDown);
			}
			this.onCloseCallback?.();
			this.remove();
		}
		getFileType() {
			if (!this.attachment) return "text";
			if (this.attachment.type === "image") return "image";
			if (this.attachment.mimeType === "application/pdf") return "pdf";
			if (this.attachment.mimeType?.includes("wordprocessingml")) return "docx";
			if (this.attachment.mimeType?.includes("presentationml") || this.attachment.fileName.toLowerCase().endsWith(".pptx")) return "pptx";
			if (this.attachment.mimeType?.includes("spreadsheetml") || this.attachment.mimeType?.includes("ms-excel") || this.attachment.fileName.toLowerCase().endsWith(".xlsx") || this.attachment.fileName.toLowerCase().endsWith(".xls")) return "excel";
			return "text";
		}
		getFileTypeLabel() {
			const type = this.getFileType();
			switch (type) {
				case "pdf": return i18n("PDF");
				case "docx": return i18n("Document");
				case "pptx": return i18n("Presentation");
				case "excel": return i18n("Spreadsheet");
				default: return "";
			}
		}
		cleanup() {
			this.showExtractedText = false;
			this.error = null;
			if (this.currentLoadingTask) {
				this.currentLoadingTask.destroy();
				this.currentLoadingTask = null;
			}
		}
		render() {
			if (!this.attachment) return x``;
			return x`
			<!-- Full screen overlay -->
			<div class="fixed inset-0 bg-black/90 z-50 flex flex-col" @click=${this.handleBackdropClick}>
				<!-- Compact header bar -->
				<div class="bg-background/95 backdrop-blur border-b border-border" @click=${(e$10) => e$10.stopPropagation()}>
					<div class="px-4 py-2 flex items-center justify-between">
						<div class="flex items-center gap-3 min-w-0">
							<span class="text-sm font-medium text-foreground truncate">${this.attachment.fileName}</span>
						</div>
						<div class="flex items-center gap-2">
							${this.renderToggle()}
							${Button({
				variant: "ghost",
				size: "icon",
				onClick: this.handleDownload,
				children: icon(Download, "sm"),
				className: "h-8 w-8"
			})}
							${Button({
				variant: "ghost",
				size: "icon",
				onClick: () => this.close(),
				children: icon(X, "sm"),
				className: "h-8 w-8"
			})}
						</div>
					</div>
				</div>

				<!-- Content container -->
				<div class="flex-1 flex items-center justify-center overflow-auto" @click=${(e$10) => e$10.stopPropagation()}>
					${this.renderContent()}
				</div>
			</div>
		`;
		}
		renderToggle() {
			if (!this.attachment) return x``;
			const fileType = this.getFileType();
			const hasExtractedText = !!this.attachment.extractedText;
			const showToggle = fileType !== "image" && fileType !== "text" && fileType !== "pptx" && hasExtractedText;
			if (!showToggle) return x``;
			const fileTypeLabel = this.getFileTypeLabel();
			return x`
			<mode-toggle
				.modes=${[fileTypeLabel, i18n("Text")]}
				.selectedIndex=${this.showExtractedText ? 1 : 0}
				@mode-change=${(e$10) => {
				e$10.stopPropagation();
				this.showExtractedText = e$10.detail.index === 1;
				this.error = null;
			}}
			></mode-toggle>
		`;
		}
		renderContent() {
			if (!this.attachment) return x``;
			if (this.error) {
				return x`
				<div class="bg-destructive/10 border border-destructive text-destructive p-4 rounded-lg max-w-2xl">
					<div class="font-medium mb-1">${i18n("Error loading file")}</div>
					<div class="text-sm opacity-90">${this.error}</div>
				</div>
			`;
			}
			return this.renderFileContent();
		}
		renderFileContent() {
			if (!this.attachment) return x``;
			const fileType = this.getFileType();
			if (this.showExtractedText && fileType !== "image") {
				return x`
				<div class="bg-card border border-border text-foreground p-6 w-full h-full max-w-4xl overflow-auto">
					<pre class="whitespace-pre-wrap font-mono text-xs leading-relaxed">${this.attachment.extractedText || i18n("No text content available")}</pre>
				</div>
			`;
			}
			switch (fileType) {
				case "image": {
					const imageUrl = `data:${this.attachment.mimeType};base64,${this.attachment.content}`;
					return x`
					<img src="${imageUrl}" class="max-w-full max-h-full object-contain rounded-lg shadow-lg" alt="${this.attachment.fileName}" />
				`;
				}
				case "pdf": return x`
					<div
						id="pdf-container"
						class="bg-card text-foreground overflow-auto shadow-lg border border-border w-full h-full max-w-[1000px]"
					></div>
				`;
				case "docx": return x`
					<div
						id="docx-container"
						class="bg-card text-foreground overflow-auto shadow-lg border border-border w-full h-full max-w-[1000px]"
					></div>
				`;
				case "excel": return x` <div id="excel-container" class="bg-card text-foreground overflow-auto w-full h-full"></div> `;
				case "pptx": return x`
					<div
						id="pptx-container"
						class="bg-card text-foreground overflow-auto shadow-lg border border-border w-full h-full max-w-[1000px]"
					></div>
				`;
				default: return x`
					<div class="bg-card border border-border text-foreground p-6 w-full h-full max-w-4xl overflow-auto">
						<pre class="whitespace-pre-wrap font-mono text-sm">${this.attachment.extractedText || i18n("No content available")}</pre>
					</div>
				`;
			}
		}
		async updated(changedProperties) {
			super.updated(changedProperties);
			if ((changedProperties.has("attachment") || changedProperties.has("showExtractedText")) && this.attachment && !this.showExtractedText && !this.error) {
				const fileType = this.getFileType();
				switch (fileType) {
					case "pdf":
						await this.renderPdf();
						break;
					case "docx":
						await this.renderDocx();
						break;
					case "excel":
						await this.renderExcel();
						break;
					case "pptx":
						await this.renderExtractedText();
						break;
				}
			}
		}
		async renderPdf() {
			const container = this.querySelector("#pdf-container");
			if (!container || !this.attachment) return;
			let pdf = null;
			try {
				const arrayBuffer = this.base64ToArrayBuffer(this.attachment.content);
				if (this.currentLoadingTask) {
					this.currentLoadingTask.destroy();
				}
				this.currentLoadingTask = getDocument({ data: arrayBuffer });
				pdf = await this.currentLoadingTask.promise;
				this.currentLoadingTask = null;
				container.innerHTML = "";
				const wrapper = document.createElement("div");
				wrapper.className = "";
				container.appendChild(wrapper);
				for (let pageNum = 1; pageNum <= pdf.numPages; pageNum++) {
					const page = await pdf.getPage(pageNum);
					const pageContainer = document.createElement("div");
					pageContainer.className = "mb-4 last:mb-0";
					const canvas = document.createElement("canvas");
					const context = canvas.getContext("2d");
					const viewport = page.getViewport({ scale: 1.5 });
					canvas.height = viewport.height;
					canvas.width = viewport.width;
					canvas.className = "w-full max-w-full h-auto block mx-auto bg-white rounded shadow-sm border border-border";
					if (context) {
						context.fillStyle = "white";
						context.fillRect(0, 0, canvas.width, canvas.height);
					}
					await page.render({
						canvasContext: context,
						viewport,
						canvas
					}).promise;
					pageContainer.appendChild(canvas);
					if (pageNum < pdf.numPages) {
						const separator = document.createElement("div");
						separator.className = "h-px bg-border my-4";
						pageContainer.appendChild(separator);
					}
					wrapper.appendChild(pageContainer);
				}
			} catch (error$2) {
				console.error("Error rendering PDF:", error$2);
				this.error = error$2?.message || i18n("Failed to load PDF");
			} finally {
				if (pdf) {
					pdf.destroy();
				}
			}
		}
		async renderDocx() {
			const container = this.querySelector("#docx-container");
			if (!container || !this.attachment) return;
			try {
				const arrayBuffer = this.base64ToArrayBuffer(this.attachment.content);
				container.innerHTML = "";
				const wrapper = document.createElement("div");
				wrapper.className = "docx-wrapper-custom";
				container.appendChild(wrapper);
				await (0, import_docx_preview$1.renderAsync)(arrayBuffer, wrapper, undefined, {
					className: "docx",
					inWrapper: true,
					ignoreWidth: true,
					ignoreHeight: false,
					ignoreFonts: false,
					breakPages: true,
					ignoreLastRenderedPageBreak: true,
					experimental: false,
					trimXmlDeclaration: true,
					useBase64URL: false,
					renderHeaders: true,
					renderFooters: true,
					renderFootnotes: true,
					renderEndnotes: true
				});
				const style = document.createElement("style");
				style.textContent = `
				#docx-container {
					padding: 0;
				}

				#docx-container .docx-wrapper-custom {
					max-width: 100%;
					overflow-x: auto;
				}

				#docx-container .docx-wrapper {
					max-width: 100% !important;
					margin: 0 !important;
					background: transparent !important;
					padding: 0em !important;
				}

				#docx-container .docx-wrapper > section.docx {
					box-shadow: none !important;
					border: none !important;
					border-radius: 0 !important;
					margin: 0 !important;
					padding: 2em !important;
					background: white !important;
					color: black !important;
					max-width: 100% !important;
					width: 100% !important;
					min-width: 0 !important;
					overflow-x: auto !important;
				}

				/* Fix tables and wide content */
				#docx-container table {
					max-width: 100% !important;
					width: auto !important;
					overflow-x: auto !important;
					display: block !important;
				}

				#docx-container img {
					max-width: 100% !important;
					height: auto !important;
				}

				/* Fix paragraphs and text */
				#docx-container p,
				#docx-container span,
				#docx-container div {
					max-width: 100% !important;
					word-wrap: break-word !important;
					overflow-wrap: break-word !important;
				}

				/* Hide page breaks in web view */
				#docx-container .docx-page-break {
					display: none !important;
				}
			`;
				container.appendChild(style);
			} catch (error$2) {
				console.error("Error rendering DOCX:", error$2);
				this.error = error$2?.message || i18n("Failed to load document");
			}
		}
		async renderExcel() {
			const container = this.querySelector("#excel-container");
			if (!container || !this.attachment) return;
			try {
				const arrayBuffer = this.base64ToArrayBuffer(this.attachment.content);
				const workbook = readSync(arrayBuffer, { type: "array" });
				container.innerHTML = "";
				const wrapper = document.createElement("div");
				wrapper.className = "overflow-auto h-full flex flex-col";
				container.appendChild(wrapper);
				if (workbook.SheetNames.length > 1) {
					const tabContainer = document.createElement("div");
					tabContainer.className = "flex gap-2 mb-4 border-b border-border sticky top-0 bg-card z-10";
					const sheetContents = [];
					workbook.SheetNames.forEach((sheetName, index) => {
						const tab = document.createElement("button");
						tab.textContent = sheetName;
						tab.className = index === 0 ? "px-4 py-2 text-sm font-medium border-b-2 border-primary text-primary" : "px-4 py-2 text-sm font-medium text-muted-foreground hover:text-foreground hover:border-b-2 hover:border-border transition-colors";
						const sheetDiv = document.createElement("div");
						sheetDiv.style.display = index === 0 ? "flex" : "none";
						sheetDiv.className = "flex-1 overflow-auto";
						sheetDiv.appendChild(this.renderExcelSheet(workbook.Sheets[sheetName], sheetName));
						sheetContents.push(sheetDiv);
						tab.onclick = () => {
							tabContainer.querySelectorAll("button").forEach((btn, btnIndex) => {
								if (btnIndex === index) {
									btn.className = "px-4 py-2 text-sm font-medium border-b-2 border-primary text-primary";
								} else {
									btn.className = "px-4 py-2 text-sm font-medium text-muted-foreground hover:text-foreground hover:border-b-2 hover:border-border transition-colors";
								}
							});
							sheetContents.forEach((content, contentIndex) => {
								content.style.display = contentIndex === index ? "flex" : "none";
							});
						};
						tabContainer.appendChild(tab);
					});
					wrapper.appendChild(tabContainer);
					sheetContents.forEach((content) => {
						wrapper.appendChild(content);
					});
				} else {
					const sheetName = workbook.SheetNames[0];
					wrapper.appendChild(this.renderExcelSheet(workbook.Sheets[sheetName], sheetName));
				}
			} catch (error$2) {
				console.error("Error rendering Excel:", error$2);
				this.error = error$2?.message || i18n("Failed to load spreadsheet");
			}
		}
		renderExcelSheet(worksheet, sheetName) {
			const sheetDiv = document.createElement("div");
			const htmlTable = utils$1.sheet_to_html(worksheet, { id: `sheet-${sheetName}` });
			const tempDiv = document.createElement("div");
			tempDiv.innerHTML = htmlTable;
			const table = tempDiv.querySelector("table");
			if (table) {
				table.className = "w-full border-collapse text-foreground";
				table.querySelectorAll("td, th").forEach((cell) => {
					const cellEl = cell;
					cellEl.className = "border border-border px-3 py-2 text-sm text-left";
				});
				const headerCells = table.querySelectorAll("thead th, tr:first-child td");
				if (headerCells.length > 0) {
					headerCells.forEach((th) => {
						const thEl = th;
						thEl.className = "border border-border px-3 py-2 text-sm font-semibold bg-muted text-foreground sticky top-0";
					});
				}
				table.querySelectorAll("tbody tr:nth-child(even)").forEach((row) => {
					const rowEl = row;
					rowEl.className = "bg-muted/30";
				});
				sheetDiv.appendChild(table);
			}
			return sheetDiv;
		}
		base64ToArrayBuffer(base64) {
			const binaryString = atob(base64);
			const bytes = new Uint8Array(binaryString.length);
			for (let i$7 = 0; i$7 < binaryString.length; i$7++) {
				bytes[i$7] = binaryString.charCodeAt(i$7);
			}
			return bytes.buffer;
		}
		async renderExtractedText() {
			const container = this.querySelector("#pptx-container");
			if (!container || !this.attachment) return;
			try {
				container.innerHTML = "";
				const wrapper = document.createElement("div");
				wrapper.className = "p-6 overflow-auto";
				const pre = document.createElement("pre");
				pre.className = "whitespace-pre-wrap text-sm text-foreground font-mono";
				pre.textContent = this.attachment.extractedText || i18n("No text content available");
				wrapper.appendChild(pre);
				container.appendChild(wrapper);
			} catch (error$2) {
				console.error("Error rendering extracted text:", error$2);
				this.error = error$2?.message || i18n("Failed to display text content");
			}
		}
	};
	__decorate$25([r()], AttachmentOverlay.prototype, "attachment", void 0);
	__decorate$25([r()], AttachmentOverlay.prototype, "showExtractedText", void 0);
	__decorate$25([r()], AttachmentOverlay.prototype, "error", void 0);
	if (!customElements.get("attachment-overlay")) {
		customElements.define("attachment-overlay", AttachmentOverlay);
	}
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/AttachmentTile.js
var __decorate$24, AttachmentTile;
var init_AttachmentTile = __esmMin((() => {
	init_icons();
	init_lit();
	init_decorators();
	init_html();
	init_lucide();
	init_AttachmentOverlay();
	init_i18n();
	__decorate$24 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	AttachmentTile = class AttachmentTile$1 extends i {
		constructor() {
			super(...arguments);
			this.showDelete = false;
			this.handleClick = () => {
				AttachmentOverlay.open(this.attachment);
			};
		}
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.style.display = "block";
			this.classList.add("max-h-16");
		}
		render() {
			const hasPreview = !!this.attachment.preview;
			const isImage$1 = this.attachment.type === "image";
			const isPdf = this.attachment.mimeType === "application/pdf";
			const isDocx = this.attachment.mimeType?.includes("wordprocessingml") || this.attachment.fileName.toLowerCase().endsWith(".docx");
			const isPptx = this.attachment.mimeType?.includes("presentationml") || this.attachment.fileName.toLowerCase().endsWith(".pptx");
			const isExcel = this.attachment.mimeType?.includes("spreadsheetml") || this.attachment.fileName.toLowerCase().endsWith(".xlsx") || this.attachment.fileName.toLowerCase().endsWith(".xls");
			const getDocumentIcon = () => {
				if (isExcel) return icon(FileSpreadsheet, "md");
				return icon(FileText, "md");
			};
			return x`
			<div class="relative group inline-block">
				${hasPreview ? x`
							<div class="relative">
								<img
									src="data:${isImage$1 ? this.attachment.mimeType : "image/png"};base64,${this.attachment.preview}"
									class="w-16 h-16 object-cover rounded-lg border border-input cursor-pointer hover:opacity-80 transition-opacity"
									alt="${this.attachment.fileName}"
									title="${this.attachment.fileName}"
									@click=${this.handleClick}
								/>
								${isPdf ? x`
											<!-- PDF badge overlay -->
											<div class="absolute bottom-0 left-0 right-0 bg-background/90 px-1 py-0.5 rounded-b-lg">
												<div class="text-[10px] text-muted-foreground text-center font-medium">${i18n("PDF")}</div>
											</div>
										` : ""}
							</div>
						` : x`
							<!-- Fallback: document icon + filename -->
							<div
								class="w-16 h-16 rounded-lg border border-input cursor-pointer hover:opacity-80 transition-opacity bg-muted text-muted-foreground flex flex-col items-center justify-center p-2"
								@click=${this.handleClick}
								title="${this.attachment.fileName}"
							>
								${getDocumentIcon()}
								<div class="text-[10px] text-center truncate w-full">
									${this.attachment.fileName.length > 10 ? this.attachment.fileName.substring(0, 8) + "..." : this.attachment.fileName}
								</div>
							</div>
						`}
				${this.showDelete ? x`
							<button
								@click=${(e$10) => {
				e$10.stopPropagation();
				this.onDelete?.();
			}}
								class="absolute -top-1 -right-1 w-5 h-5 bg-background hover:bg-muted text-muted-foreground hover:text-foreground rounded-full flex items-center justify-center opacity-100 hover:opacity-100 [@media(hover:hover)]:opacity-0 [@media(hover:hover)]:group-hover:opacity-100 transition-opacity border border-input shadow-sm"
								title="${i18n("Remove")}"
							>
								${icon(X, "xs")}
							</button>
						` : ""}
			</div>
		`;
		}
	};
	__decorate$24([n$1({ type: Object })], AttachmentTile.prototype, "attachment", void 0);
	__decorate$24([n$1({ type: Boolean })], AttachmentTile.prototype, "showDelete", void 0);
	__decorate$24([n$1()], AttachmentTile.prototype, "onDelete", void 0);
	AttachmentTile = __decorate$24([t("attachment-tile")], AttachmentTile);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/MessageEditor.js
var __decorate$23, MessageEditor;
var init_MessageEditor = __esmMin((() => {
	init_dist();
	init_Button();
	init_Select();
	init_lit();
	init_decorators();
	init_ref$2();
	init_lucide();
	init_attachment_utils();
	init_i18n();
	init_AttachmentTile();
	__decorate$23 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	MessageEditor = class MessageEditor$1 extends i {
		constructor() {
			super(...arguments);
			this._value = "";
			this.textareaRef = e();
			this.isStreaming = false;
			this.thinkingLevel = "off";
			this.showAttachmentButton = true;
			this.showModelSelector = true;
			this.showThinkingSelector = true;
			this.attachments = [];
			this.maxFiles = 10;
			this.maxFileSize = 20 * 1024 * 1024;
			this.acceptedTypes = "image/*,application/pdf,.docx,.pptx,.xlsx,.xls,.txt,.md,.json,.xml,.html,.css,.js,.ts,.jsx,.tsx,.yml,.yaml";
			this.processingFiles = false;
			this.isDragging = false;
			this.fileInputRef = e();
			this.handleTextareaInput = (e$10) => {
				const textarea = e$10.target;
				this.value = textarea.value;
				this.onInput?.(this.value);
			};
			this.handleKeyDown = (e$10) => {
				if (e$10.key === "Enter" && !e$10.shiftKey) {
					e$10.preventDefault();
					if (!this.isStreaming && !this.processingFiles && (this.value.trim() || this.attachments.length > 0)) {
						this.handleSend();
					}
				} else if (e$10.key === "Escape" && this.isStreaming) {
					e$10.preventDefault();
					this.onAbort?.();
				}
			};
			this.handlePaste = async (e$10) => {
				const items = e$10.clipboardData?.items;
				if (!items) return;
				const imageFiles = [];
				for (let i$7 = 0; i$7 < items.length; i$7++) {
					const item = items[i$7];
					if (item.type.startsWith("image/")) {
						const file = item.getAsFile();
						if (file) {
							imageFiles.push(file);
						}
					}
				}
				if (imageFiles.length > 0) {
					e$10.preventDefault();
					if (imageFiles.length + this.attachments.length > this.maxFiles) {
						alert(`Maximum ${this.maxFiles} files allowed`);
						return;
					}
					this.processingFiles = true;
					const newAttachments = [];
					for (const file of imageFiles) {
						try {
							if (file.size > this.maxFileSize) {
								alert(`Image exceeds maximum size of ${Math.round(this.maxFileSize / 1024 / 1024)}MB`);
								continue;
							}
							const attachment = await loadAttachment(file);
							newAttachments.push(attachment);
						} catch (error$2) {
							console.error("Error processing pasted image:", error$2);
							alert(`Failed to process pasted image: ${String(error$2)}`);
						}
					}
					this.attachments = [...this.attachments, ...newAttachments];
					this.onFilesChange?.(this.attachments);
					this.processingFiles = false;
				}
			};
			this.handleSend = () => {
				this.onSend?.(this.value, this.attachments);
			};
			this.handleAttachmentClick = () => {
				this.fileInputRef.value?.click();
			};
			this.handleDragOver = (e$10) => {
				e$10.preventDefault();
				e$10.stopPropagation();
				if (!this.isDragging) {
					this.isDragging = true;
				}
			};
			this.handleDragLeave = (e$10) => {
				e$10.preventDefault();
				e$10.stopPropagation();
				const rect = e$10.currentTarget.getBoundingClientRect();
				const x$2 = e$10.clientX;
				const y$3 = e$10.clientY;
				if (x$2 <= rect.left || x$2 >= rect.right || y$3 <= rect.top || y$3 >= rect.bottom) {
					this.isDragging = false;
				}
			};
			this.handleDrop = async (e$10) => {
				e$10.preventDefault();
				e$10.stopPropagation();
				this.isDragging = false;
				const files = Array.from(e$10.dataTransfer?.files || []);
				if (files.length === 0) return;
				if (files.length + this.attachments.length > this.maxFiles) {
					alert(`Maximum ${this.maxFiles} files allowed`);
					return;
				}
				this.processingFiles = true;
				const newAttachments = [];
				for (const file of files) {
					try {
						if (file.size > this.maxFileSize) {
							alert(`${file.name} exceeds maximum size of ${Math.round(this.maxFileSize / 1024 / 1024)}MB`);
							continue;
						}
						const attachment = await loadAttachment(file);
						newAttachments.push(attachment);
					} catch (error$2) {
						console.error(`Error processing ${file.name}:`, error$2);
						alert(`Failed to process ${file.name}: ${String(error$2)}`);
					}
				}
				this.attachments = [...this.attachments, ...newAttachments];
				this.onFilesChange?.(this.attachments);
				this.processingFiles = false;
			};
		}
		get value() {
			return this._value;
		}
		set value(val$1) {
			const oldValue = this._value;
			this._value = val$1;
			this.requestUpdate("value", oldValue);
		}
		createRenderRoot() {
			return this;
		}
		async handleFilesSelected(e$10) {
			const input = e$10.target;
			const files = Array.from(input.files || []);
			if (files.length === 0) return;
			if (files.length + this.attachments.length > this.maxFiles) {
				alert(`Maximum ${this.maxFiles} files allowed`);
				input.value = "";
				return;
			}
			this.processingFiles = true;
			const newAttachments = [];
			for (const file of files) {
				try {
					if (file.size > this.maxFileSize) {
						alert(`${file.name} exceeds maximum size of ${Math.round(this.maxFileSize / 1024 / 1024)}MB`);
						continue;
					}
					const attachment = await loadAttachment(file);
					newAttachments.push(attachment);
				} catch (error$2) {
					console.error(`Error processing ${file.name}:`, error$2);
					alert(`Failed to process ${file.name}: ${String(error$2)}`);
				}
			}
			this.attachments = [...this.attachments, ...newAttachments];
			this.onFilesChange?.(this.attachments);
			this.processingFiles = false;
			input.value = "";
		}
		removeFile(fileId) {
			this.attachments = this.attachments.filter((f$4) => f$4.id !== fileId);
			this.onFilesChange?.(this.attachments);
		}
		firstUpdated() {
			const textarea = this.textareaRef.value;
			if (textarea) {
				textarea.focus();
			}
		}
		render() {
			const model = this.currentModel;
			const supportsThinking = model?.reasoning === true;
			return x`
			<div
				class="bg-card rounded-xl border shadow-sm relative ${this.isDragging ? "border-primary border-2 bg-primary/5" : "border-border"}"
				@dragover=${this.handleDragOver}
				@dragleave=${this.handleDragLeave}
				@drop=${this.handleDrop}
			>
				<!-- Drag overlay -->
				${this.isDragging ? x`
					<div class="absolute inset-0 bg-primary/10 rounded-xl pointer-events-none z-10 flex items-center justify-center">
						<div class="text-primary font-medium">${i18n("Drop files here")}</div>
					</div>
				` : ""}

				<!-- Attachments -->
				${this.attachments.length > 0 ? x`
							<div class="px-4 pt-3 pb-2 flex flex-wrap gap-2">
								${this.attachments.map((attachment) => x`
										<attachment-tile
											.attachment=${attachment}
											.showDelete=${true}
											.onDelete=${() => this.removeFile(attachment.id)}
										></attachment-tile>
									`)}
							</div>
						` : ""}

				<textarea
					class="w-full bg-transparent p-4 text-foreground placeholder-muted-foreground outline-none resize-none overflow-y-auto"
					placeholder=${i18n("Type a message...")}
					rows="1"
					style="max-height: 200px; field-sizing: content; min-height: 1lh; height: auto;"
					.value=${this.value}
					@input=${this.handleTextareaInput}
					@keydown=${this.handleKeyDown}
					@paste=${this.handlePaste}
					${n(this.textareaRef)}
				></textarea>

				<!-- Hidden file input -->
				<input
					type="file"
					${n(this.fileInputRef)}
					@change=${this.handleFilesSelected}
					accept=${this.acceptedTypes}
					multiple
					style="display: none;"
				/>

				<!-- Button Row -->
				<div class="px-2 pb-2 flex items-center justify-between">
					<!-- Left side - attachment and thinking selector -->
					<div class="flex gap-2 items-center">
						${this.showAttachmentButton ? this.processingFiles ? x`
										<div class="h-8 w-8 flex items-center justify-center">
											${icon(LoaderCircle, "sm", "animate-spin text-muted-foreground")}
										</div>
									` : x`
										${Button({
				variant: "ghost",
				size: "icon",
				className: "h-8 w-8",
				onClick: this.handleAttachmentClick,
				children: icon(Paperclip, "sm")
			})}
									` : ""}
						${supportsThinking && this.showThinkingSelector ? x`
									${Select({
				value: this.thinkingLevel,
				placeholder: i18n("Off"),
				options: [
					{
						value: "off",
						label: i18n("Off"),
						icon: icon(Brain, "sm")
					},
					{
						value: "minimal",
						label: i18n("Minimal"),
						icon: icon(Brain, "sm")
					},
					{
						value: "low",
						label: i18n("Low"),
						icon: icon(Brain, "sm")
					},
					{
						value: "medium",
						label: i18n("Medium"),
						icon: icon(Brain, "sm")
					},
					{
						value: "high",
						label: i18n("High"),
						icon: icon(Brain, "sm")
					}
				],
				onChange: (value) => {
					this.onThinkingChange?.(value);
				},
				width: "80px",
				size: "sm",
				variant: "ghost",
				fitContent: true
			})}
								` : ""}
					</div>

					<!-- Model selector and send on the right -->
					<div class="flex gap-2 items-center">
						${this.showModelSelector && this.currentModel ? x`
									${Button({
				variant: "ghost",
				size: "sm",
				onClick: () => {
					this.textareaRef.value?.focus();
					requestAnimationFrame(() => {
						this.onModelSelect?.();
					});
				},
				children: x`
											${icon(Sparkles, "sm")}
											<span class="ml-1">${this.currentModel.id}</span>
										`,
				className: "h-8 text-xs truncate"
			})}
								` : ""}
						${this.isStreaming ? x`
									${Button({
				variant: "ghost",
				size: "icon",
				onClick: this.onAbort,
				children: icon(Square, "sm"),
				className: "h-8 w-8"
			})}
								` : x`
									${Button({
				variant: "ghost",
				size: "icon",
				onClick: this.handleSend,
				disabled: !this.value.trim() && this.attachments.length === 0 || this.processingFiles,
				children: x`<div style="transform: rotate(-45deg)">${icon(Send, "sm")}</div>`,
				className: "h-8 w-8"
			})}
								`}
					</div>
				</div>
			</div>
		`;
		}
	};
	__decorate$23([n$1()], MessageEditor.prototype, "value", null);
	__decorate$23([n$1()], MessageEditor.prototype, "isStreaming", void 0);
	__decorate$23([n$1()], MessageEditor.prototype, "currentModel", void 0);
	__decorate$23([n$1()], MessageEditor.prototype, "thinkingLevel", void 0);
	__decorate$23([n$1()], MessageEditor.prototype, "showAttachmentButton", void 0);
	__decorate$23([n$1()], MessageEditor.prototype, "showModelSelector", void 0);
	__decorate$23([n$1()], MessageEditor.prototype, "showThinkingSelector", void 0);
	__decorate$23([n$1()], MessageEditor.prototype, "onInput", void 0);
	__decorate$23([n$1()], MessageEditor.prototype, "onSend", void 0);
	__decorate$23([n$1()], MessageEditor.prototype, "onAbort", void 0);
	__decorate$23([n$1()], MessageEditor.prototype, "onModelSelect", void 0);
	__decorate$23([n$1()], MessageEditor.prototype, "onThinkingChange", void 0);
	__decorate$23([n$1()], MessageEditor.prototype, "onFilesChange", void 0);
	__decorate$23([n$1()], MessageEditor.prototype, "attachments", void 0);
	__decorate$23([n$1()], MessageEditor.prototype, "maxFiles", void 0);
	__decorate$23([n$1()], MessageEditor.prototype, "maxFileSize", void 0);
	__decorate$23([n$1()], MessageEditor.prototype, "acceptedTypes", void 0);
	__decorate$23([r()], MessageEditor.prototype, "processingFiles", void 0);
	__decorate$23([r()], MessageEditor.prototype, "isDragging", void 0);
	MessageEditor = __decorate$23([t("message-editor")], MessageEditor);
}));

//#endregion
//#region node_modules/lit-html/directives/repeat.js
var u, c;
var init_repeat$1 = __esmMin((() => {
	init_lit_html();
	init_directive();
	init_directive_helpers();
	u = (e$10, s$5, t$6) => {
		const r$10 = new Map();
		for (let l$3 = s$5; l$3 <= t$6; l$3++) r$10.set(e$10[l$3], l$3);
		return r$10;
	}, c = e$2(class extends i$2 {
		constructor(e$10) {
			if (super(e$10), e$10.type !== t$1.CHILD) throw Error("repeat() can only be used in text expressions");
		}
		dt(e$10, s$5, t$6) {
			let r$10;
			void 0 === t$6 ? t$6 = s$5 : void 0 !== s$5 && (r$10 = s$5);
			const l$3 = [], o$10 = [];
			let i$7 = 0;
			for (const s$6 of e$10) l$3[i$7] = r$10 ? r$10(s$6, i$7) : i$7, o$10[i$7] = t$6(s$6, i$7), i$7++;
			return {
				values: o$10,
				keys: l$3
			};
		}
		render(e$10, s$5, t$6) {
			return this.dt(e$10, s$5, t$6).values;
		}
		update(s$5, [t$6, r$10, c$7]) {
			const d$5 = p(s$5), { values: p$3, keys: a$2 } = this.dt(t$6, r$10, c$7);
			if (!Array.isArray(d$5)) return this.ut = a$2, p$3;
			const h$5 = this.ut ??= [], v$3 = [];
			let m$3, y$3, x$2 = 0, j$2 = d$5.length - 1, k$2 = 0, w$2 = p$3.length - 1;
			for (; x$2 <= j$2 && k$2 <= w$2;) if (null === d$5[x$2]) x$2++;
			else if (null === d$5[j$2]) j$2--;
			else if (h$5[x$2] === a$2[k$2]) v$3[k$2] = v$1(d$5[x$2], p$3[k$2]), x$2++, k$2++;
			else if (h$5[j$2] === a$2[w$2]) v$3[w$2] = v$1(d$5[j$2], p$3[w$2]), j$2--, w$2--;
			else if (h$5[x$2] === a$2[w$2]) v$3[w$2] = v$1(d$5[x$2], p$3[w$2]), s(s$5, v$3[w$2 + 1], d$5[x$2]), x$2++, w$2--;
			else if (h$5[j$2] === a$2[k$2]) v$3[k$2] = v$1(d$5[j$2], p$3[k$2]), s(s$5, d$5[x$2], d$5[j$2]), j$2--, k$2++;
			else if (void 0 === m$3 && (m$3 = u(a$2, k$2, w$2), y$3 = u(h$5, x$2, j$2)), m$3.has(h$5[x$2])) if (m$3.has(h$5[j$2])) {
				const e$10 = y$3.get(a$2[k$2]), t$7 = void 0 !== e$10 ? d$5[e$10] : null;
				if (null === t$7) {
					const e$11 = s(s$5, d$5[x$2]);
					v$1(e$11, p$3[k$2]), v$3[k$2] = e$11;
				} else v$3[k$2] = v$1(t$7, p$3[k$2]), s(s$5, d$5[x$2], t$7), d$5[e$10] = null;
				k$2++;
			} else M$1(d$5[j$2]), j$2--;
			else M$1(d$5[x$2]), x$2++;
			for (; k$2 <= w$2;) {
				const e$10 = s(s$5, v$3[w$2 + 1]);
				v$1(e$10, p$3[k$2]), v$3[k$2++] = e$10;
			}
			for (; x$2 <= j$2;) {
				const e$10 = d$5[x$2++];
				null !== e$10 && M$1(e$10);
			}
			return this.ut = a$2, m$1(s$5, v$3), T$2;
		}
	});
}));

//#endregion
//#region node_modules/lit/directives/repeat.js
var init_repeat = __esmMin((() => {
	init_repeat$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/message-renderer-registry.js
function registerMessageRenderer(role, renderer) {
	messageRenderers.set(role, renderer);
}
function getMessageRenderer(role) {
	return messageRenderers.get(role);
}
function renderMessage(message) {
	return messageRenderers.get(message.role)?.render(message);
}
var messageRenderers;
var init_message_renderer_registry = __esmMin((() => {
	messageRenderers = new Map();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/MessageList.js
var __decorate$22, MessageList;
var init_MessageList = __esmMin((() => {
	init_lit();
	init_decorators();
	init_repeat();
	init_message_renderer_registry();
	__decorate$22 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	MessageList = class extends i {
		constructor() {
			super(...arguments);
			this.messages = [];
			this.tools = [];
			this.isStreaming = false;
		}
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.style.display = "block";
		}
		buildRenderItems() {
			const resultByCallId = new Map();
			for (const message of this.messages) {
				if (message.role === "toolResult") {
					resultByCallId.set(message.toolCallId, message);
				}
			}
			const items = [];
			let index = 0;
			for (const msg of this.messages) {
				if (msg.role === "artifact") {
					continue;
				}
				const customTemplate = renderMessage(msg);
				if (customTemplate) {
					items.push({
						key: `msg:${index}`,
						template: customTemplate
					});
					index++;
					continue;
				}
				if (msg.role === "user") {
					items.push({
						key: `msg:${index}`,
						template: x`<user-message .message=${msg}></user-message>`
					});
					index++;
				} else if (msg.role === "assistant") {
					const amsg = msg;
					items.push({
						key: `msg:${index}`,
						template: x`<assistant-message
						.message=${amsg}
						.tools=${this.tools}
						.isStreaming=${false}
						.pendingToolCalls=${this.pendingToolCalls}
						.toolResultsById=${resultByCallId}
						.hideToolCalls=${false}
						.onCostClick=${this.onCostClick}
					></assistant-message>`
					});
					index++;
				} else {}
			}
			return items;
		}
		render() {
			const items = this.buildRenderItems();
			return x`<div class="flex flex-col gap-3">
			${c(items, (it) => it.key, (it) => it.template)}
		</div>`;
		}
	};
	__decorate$22([n$1({ type: Array })], MessageList.prototype, "messages", void 0);
	__decorate$22([n$1({ type: Array })], MessageList.prototype, "tools", void 0);
	__decorate$22([n$1({ type: Object })], MessageList.prototype, "pendingToolCalls", void 0);
	__decorate$22([n$1({ type: Boolean })], MessageList.prototype, "isStreaming", void 0);
	__decorate$22([n$1({ attribute: false })], MessageList.prototype, "onCostClick", void 0);
	if (!customElements.get("message-list")) {
		customElements.define("message-list", MessageList);
	}
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/guard/value.mjs
/** Returns true if this value has this property key */
function HasPropertyKey$1(value, key) {
	return key in value;
}
/** Returns true if this value is an async iterator */
function IsAsyncIterator(value) {
	return IsObject$1(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.asyncIterator in value;
}
/** Returns true if this value is an array */
function IsArray(value) {
	return Array.isArray(value);
}
/** Returns true if this value is bigint */
function IsBigInt(value) {
	return typeof value === "bigint";
}
/** Returns true if this value is a boolean */
function IsBoolean$1(value) {
	return typeof value === "boolean";
}
/** Returns true if this value is a Date object */
function IsDate(value) {
	return value instanceof globalThis.Date;
}
/** Returns true if this value is a function */
function IsFunction(value) {
	return typeof value === "function";
}
/** Returns true if this value is an iterator */
function IsIterator(value) {
	return IsObject$1(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.iterator in value;
}
/** Returns true if this value is null */
function IsNull(value) {
	return value === null;
}
/** Returns true if this value is number */
function IsNumber$1(value) {
	return typeof value === "number";
}
/** Returns true if this value is an object */
function IsObject$1(value) {
	return typeof value === "object" && value !== null;
}
/** Returns true if this value is RegExp */
function IsRegExp$3(value) {
	return value instanceof globalThis.RegExp;
}
/** Returns true if this value is string */
function IsString(value) {
	return typeof value === "string";
}
/** Returns true if this value is symbol */
function IsSymbol(value) {
	return typeof value === "symbol";
}
/** Returns true if this value is a Uint8Array */
function IsUint8Array(value) {
	return value instanceof globalThis.Uint8Array;
}
/** Returns true if this value is undefined */
function IsUndefined(value) {
	return value === undefined;
}
var init_value$1 = __esmMin((() => {}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/clone/value.mjs
function ArrayType(value) {
	return value.map((value$1) => Visit$2(value$1));
}
function DateType(value) {
	return new Date(value.getTime());
}
function Uint8ArrayType(value) {
	return new Uint8Array(value);
}
function RegExpType(value) {
	return new RegExp(value.source, value.flags);
}
function ObjectType(value) {
	const result = {};
	for (const key of Object.getOwnPropertyNames(value)) {
		result[key] = Visit$2(value[key]);
	}
	for (const key of Object.getOwnPropertySymbols(value)) {
		result[key] = Visit$2(value[key]);
	}
	return result;
}
function Visit$2(value) {
	return IsArray(value) ? ArrayType(value) : IsDate(value) ? DateType(value) : IsUint8Array(value) ? Uint8ArrayType(value) : IsRegExp$3(value) ? RegExpType(value) : IsObject$1(value) ? ObjectType(value) : value;
}
/** Clones a value */
function Clone(value) {
	return Visit$2(value);
}
var init_value = __esmMin((() => {
	init_value$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/clone/type.mjs
/** Clones a Rest */
function CloneRest(schemas) {
	return schemas.map((schema) => CloneType(schema));
}
/** Clones a Type */
function CloneType(schema, options) {
	return options === undefined ? Clone(schema) : Clone({
		...options,
		...schema
	});
}
var init_type$5 = __esmMin((() => {
	init_value();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/clone/index.mjs
var init_clone = __esmMin((() => {
	init_type$5();
	init_value();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/value/guard/guard.mjs
/** Returns true if this value is an async iterator */
function IsAsyncIterator$3(value) {
	return IsObject$3(value) && globalThis.Symbol.asyncIterator in value;
}
/** Returns true if this value is an iterator */
function IsIterator$3(value) {
	return IsObject$3(value) && globalThis.Symbol.iterator in value;
}
/** Returns true if this value is not an instance of a class */
function IsStandardObject(value) {
	return IsObject$3(value) && (globalThis.Object.getPrototypeOf(value) === Object.prototype || globalThis.Object.getPrototypeOf(value) === null);
}
/** Returns true if this value is an instance of a class */
function IsInstanceObject(value) {
	return IsObject$3(value) && !IsArray$3(value) && IsFunction$3(value.constructor) && value.constructor.name !== "Object";
}
/** Returns true if this value is a Promise */
function IsPromise$2(value) {
	return value instanceof globalThis.Promise;
}
/** Returns true if this value is a Date */
function IsDate$3(value) {
	return value instanceof Date && globalThis.Number.isFinite(value.getTime());
}
/** Returns true if this value is an instance of Map<K, T> */
function IsMap(value) {
	return value instanceof globalThis.Map;
}
/** Returns true if this value is an instance of Set<T> */
function IsSet(value) {
	return value instanceof globalThis.Set;
}
/** Returns true if this value is RegExp */
function IsRegExp$2(value) {
	return value instanceof globalThis.RegExp;
}
/** Returns true if this value is a typed array */
function IsTypedArray(value) {
	return globalThis.ArrayBuffer.isView(value);
}
/** Returns true if the value is a Int8Array */
function IsInt8Array(value) {
	return value instanceof globalThis.Int8Array;
}
/** Returns true if the value is a Uint8Array */
function IsUint8Array$3(value) {
	return value instanceof globalThis.Uint8Array;
}
/** Returns true if the value is a Uint8ClampedArray */
function IsUint8ClampedArray(value) {
	return value instanceof globalThis.Uint8ClampedArray;
}
/** Returns true if the value is a Int16Array */
function IsInt16Array(value) {
	return value instanceof globalThis.Int16Array;
}
/** Returns true if the value is a Uint16Array */
function IsUint16Array(value) {
	return value instanceof globalThis.Uint16Array;
}
/** Returns true if the value is a Int32Array */
function IsInt32Array(value) {
	return value instanceof globalThis.Int32Array;
}
/** Returns true if the value is a Uint32Array */
function IsUint32Array(value) {
	return value instanceof globalThis.Uint32Array;
}
/** Returns true if the value is a Float32Array */
function IsFloat32Array(value) {
	return value instanceof globalThis.Float32Array;
}
/** Returns true if the value is a Float64Array */
function IsFloat64Array(value) {
	return value instanceof globalThis.Float64Array;
}
/** Returns true if the value is a BigInt64Array */
function IsBigInt64Array(value) {
	return value instanceof globalThis.BigInt64Array;
}
/** Returns true if the value is a BigUint64Array */
function IsBigUint64Array(value) {
	return value instanceof globalThis.BigUint64Array;
}
/** Returns true if this value has this property key */
function HasPropertyKey(value, key) {
	return key in value;
}
/** Returns true of this value is an object type */
function IsObject$3(value) {
	return value !== null && typeof value === "object";
}
/** Returns true if this value is an array, but not a typed array */
function IsArray$3(value) {
	return globalThis.Array.isArray(value) && !globalThis.ArrayBuffer.isView(value);
}
/** Returns true if this value is an undefined */
function IsUndefined$3(value) {
	return value === undefined;
}
/** Returns true if this value is an null */
function IsNull$3(value) {
	return value === null;
}
/** Returns true if this value is an boolean */
function IsBoolean$3(value) {
	return typeof value === "boolean";
}
/** Returns true if this value is an number */
function IsNumber$3(value) {
	return typeof value === "number";
}
/** Returns true if this value is an integer */
function IsInteger$2(value) {
	return globalThis.Number.isInteger(value);
}
/** Returns true if this value is bigint */
function IsBigInt$3(value) {
	return typeof value === "bigint";
}
/** Returns true if this value is string */
function IsString$3(value) {
	return typeof value === "string";
}
/** Returns true if this value is a function */
function IsFunction$3(value) {
	return typeof value === "function";
}
/** Returns true if this value is a symbol */
function IsSymbol$3(value) {
	return typeof value === "symbol";
}
/** Returns true if this value is a value type such as number, string, boolean */
function IsValueType(value) {
	return IsBigInt$3(value) || IsBoolean$3(value) || IsNull$3(value) || IsNumber$3(value) || IsString$3(value) || IsSymbol$3(value) || IsUndefined$3(value);
}
var init_guard$2 = __esmMin((() => {}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/value/guard/index.mjs
var init_guard$1 = __esmMin((() => {
	init_guard$2();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/system/policy.mjs
var TypeSystemPolicy;
var init_policy = __esmMin((() => {
	init_guard$1();
	;
	(function(TypeSystemPolicy$1) {
		/**
		* Configures the instantiation behavior of TypeBox types. The `default` option assigns raw JavaScript
		* references for embedded types, which may cause side effects if type properties are explicitly updated
		* outside the TypeBox type builder. The `clone` option creates copies of any shared types upon creation,
		* preventing unintended side effects. The `freeze` option applies `Object.freeze()` to the type, making
		* it fully readonly and immutable. Implementations should use `default` whenever possible, as it is the
		* fastest way to instantiate types. The default setting is `default`.
		*/
		TypeSystemPolicy$1.InstanceMode = "default";
		/** Sets whether TypeBox should assert optional properties using the TypeScript `exactOptionalPropertyTypes` assertion policy. The default is `false` */
		TypeSystemPolicy$1.ExactOptionalPropertyTypes = false;
		/** Sets whether arrays should be treated as a kind of objects. The default is `false` */
		TypeSystemPolicy$1.AllowArrayObject = false;
		/** Sets whether `NaN` or `Infinity` should be treated as valid numeric values. The default is `false` */
		TypeSystemPolicy$1.AllowNaN = false;
		/** Sets whether `null` should validate for void types. The default is `false` */
		TypeSystemPolicy$1.AllowNullVoid = false;
		/** Checks this value using the ExactOptionalPropertyTypes policy */
		function IsExactOptionalProperty(value, key) {
			return TypeSystemPolicy$1.ExactOptionalPropertyTypes ? key in value : value[key] !== undefined;
		}
		TypeSystemPolicy$1.IsExactOptionalProperty = IsExactOptionalProperty;
		/** Checks this value using the AllowArrayObjects policy */
		function IsObjectLike(value) {
			const isObject = IsObject$3(value);
			return TypeSystemPolicy$1.AllowArrayObject ? isObject : isObject && !IsArray$3(value);
		}
		TypeSystemPolicy$1.IsObjectLike = IsObjectLike;
		/** Checks this value as a record using the AllowArrayObjects policy */
		function IsRecordLike(value) {
			return IsObjectLike(value) && !(value instanceof Date) && !(value instanceof Uint8Array);
		}
		TypeSystemPolicy$1.IsRecordLike = IsRecordLike;
		/** Checks this value using the AllowNaN policy */
		function IsNumberLike(value) {
			return TypeSystemPolicy$1.AllowNaN ? IsNumber$3(value) : Number.isFinite(value);
		}
		TypeSystemPolicy$1.IsNumberLike = IsNumberLike;
		/** Checks this value using the AllowVoidNull policy */
		function IsVoidLike(value) {
			const isUndefined = IsUndefined$3(value);
			return TypeSystemPolicy$1.AllowNullVoid ? isUndefined || value === null : isUndefined;
		}
		TypeSystemPolicy$1.IsVoidLike = IsVoidLike;
	})(TypeSystemPolicy || (TypeSystemPolicy = {}));
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/create/immutable.mjs
function ImmutableArray(value) {
	return globalThis.Object.freeze(value).map((value$1) => Immutable(value$1));
}
function ImmutableDate(value) {
	return value;
}
function ImmutableUint8Array(value) {
	return value;
}
function ImmutableRegExp(value) {
	return value;
}
function ImmutableObject(value) {
	const result = {};
	for (const key of Object.getOwnPropertyNames(value)) {
		result[key] = Immutable(value[key]);
	}
	for (const key of Object.getOwnPropertySymbols(value)) {
		result[key] = Immutable(value[key]);
	}
	return globalThis.Object.freeze(result);
}
/** Specialized deep immutable value. Applies freeze recursively to the given value */
function Immutable(value) {
	return IsArray(value) ? ImmutableArray(value) : IsDate(value) ? ImmutableDate(value) : IsUint8Array(value) ? ImmutableUint8Array(value) : IsRegExp$3(value) ? ImmutableRegExp(value) : IsObject$1(value) ? ImmutableObject(value) : value;
}
var init_immutable = __esmMin((() => {
	init_value$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/create/type.mjs
/** Creates TypeBox schematics using the configured InstanceMode */
function CreateType(schema, options) {
	const result = options !== undefined ? {
		...options,
		...schema
	} : schema;
	switch (TypeSystemPolicy.InstanceMode) {
		case "freeze": return Immutable(result);
		case "clone": return Clone(result);
		default: return result;
	}
}
var init_type$4 = __esmMin((() => {
	init_policy();
	init_immutable();
	init_value();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/create/index.mjs
var init_create$1 = __esmMin((() => {
	init_type$4();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/error/error.mjs
var TypeBoxError;
var init_error$1 = __esmMin((() => {
	TypeBoxError = class extends Error {
		constructor(message) {
			super(message);
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/error/index.mjs
var init_error = __esmMin((() => {
	init_error$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/symbols/symbols.mjs
var TransformKind, ReadonlyKind, OptionalKind, Hint, Kind;
var init_symbols$1 = __esmMin((() => {
	TransformKind = Symbol.for("TypeBox.Transform");
	ReadonlyKind = Symbol.for("TypeBox.Readonly");
	OptionalKind = Symbol.for("TypeBox.Optional");
	Hint = Symbol.for("TypeBox.Hint");
	Kind = Symbol.for("TypeBox.Kind");
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/symbols/index.mjs
var init_symbols = __esmMin((() => {
	init_symbols$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/guard/kind.mjs
/** `[Kind-Only]` Returns true if this value has a Readonly symbol */
function IsReadonly(value) {
	return IsObject$1(value) && value[ReadonlyKind] === "Readonly";
}
/** `[Kind-Only]` Returns true if this value has a Optional symbol */
function IsOptional(value) {
	return IsObject$1(value) && value[OptionalKind] === "Optional";
}
/** `[Kind-Only]` Returns true if the given value is TAny */
function IsAny(value) {
	return IsKindOf$1(value, "Any");
}
/** `[Kind-Only]` Returns true if the given value is TArgument */
function IsArgument$1(value) {
	return IsKindOf$1(value, "Argument");
}
/** `[Kind-Only]` Returns true if the given value is TArray */
function IsArray$1(value) {
	return IsKindOf$1(value, "Array");
}
/** `[Kind-Only]` Returns true if the given value is TAsyncIterator */
function IsAsyncIterator$1(value) {
	return IsKindOf$1(value, "AsyncIterator");
}
/** `[Kind-Only]` Returns true if the given value is TBigInt */
function IsBigInt$1(value) {
	return IsKindOf$1(value, "BigInt");
}
/** `[Kind-Only]` Returns true if the given value is TBoolean */
function IsBoolean(value) {
	return IsKindOf$1(value, "Boolean");
}
/** `[Kind-Only]` Returns true if the given value is TComputed */
function IsComputed(value) {
	return IsKindOf$1(value, "Computed");
}
/** `[Kind-Only]` Returns true if the given value is TConstructor */
function IsConstructor(value) {
	return IsKindOf$1(value, "Constructor");
}
/** `[Kind-Only]` Returns true if the given value is TDate */
function IsDate$2(value) {
	return IsKindOf$1(value, "Date");
}
/** `[Kind-Only]` Returns true if the given value is TFunction */
function IsFunction$1(value) {
	return IsKindOf$1(value, "Function");
}
/** `[Kind-Only]` Returns true if the given value is TInteger */
function IsImport$1(value) {
	return IsKindOf$1(value, "Import");
}
/** `[Kind-Only]` Returns true if the given value is TInteger */
function IsInteger(value) {
	return IsKindOf$1(value, "Integer");
}
/** `[Kind-Only]` Returns true if the given schema is TProperties */
function IsProperties$1(value) {
	return IsObject$1(value);
}
/** `[Kind-Only]` Returns true if the given value is TIntersect */
function IsIntersect(value) {
	return IsKindOf$1(value, "Intersect");
}
/** `[Kind-Only]` Returns true if the given value is TIterator */
function IsIterator$1(value) {
	return IsKindOf$1(value, "Iterator");
}
/** `[Kind-Only]` Returns true if the given value is a TKind with the given name. */
function IsKindOf$1(value, kind) {
	return IsObject$1(value) && Kind in value && value[Kind] === kind;
}
/** `[Kind-Only]` Returns true if the given value is TLiteral<string> */
function IsLiteralString$1(value) {
	return IsLiteral(value) && IsString(value.const);
}
/** `[Kind-Only]` Returns true if the given value is TLiteral<number> */
function IsLiteralNumber$1(value) {
	return IsLiteral(value) && IsNumber$1(value.const);
}
/** `[Kind-Only]` Returns true if the given value is TLiteral<boolean> */
function IsLiteralBoolean$1(value) {
	return IsLiteral(value) && IsBoolean$1(value.const);
}
/** `[Kind-Only]` Returns true if the given value is TLiteralValue */
function IsLiteralValue(value) {
	return IsBoolean$1(value) || IsNumber$1(value) || IsString(value);
}
/** `[Kind-Only]` Returns true if the given value is TLiteral */
function IsLiteral(value) {
	return IsKindOf$1(value, "Literal");
}
/** `[Kind-Only]` Returns true if the given value is a TMappedKey */
function IsMappedKey(value) {
	return IsKindOf$1(value, "MappedKey");
}
/** `[Kind-Only]` Returns true if the given value is TMappedResult */
function IsMappedResult(value) {
	return IsKindOf$1(value, "MappedResult");
}
/** `[Kind-Only]` Returns true if the given value is TNever */
function IsNever(value) {
	return IsKindOf$1(value, "Never");
}
/** `[Kind-Only]` Returns true if the given value is TNot */
function IsNot$1(value) {
	return IsKindOf$1(value, "Not");
}
/** `[Kind-Only]` Returns true if the given value is TNull */
function IsNull$2(value) {
	return IsKindOf$1(value, "Null");
}
/** `[Kind-Only]` Returns true if the given value is TNumber */
function IsNumber(value) {
	return IsKindOf$1(value, "Number");
}
/** `[Kind-Only]` Returns true if the given value is TObject */
function IsObject(value) {
	return IsKindOf$1(value, "Object");
}
/** `[Kind-Only]` Returns true if the given value is TPromise */
function IsPromise(value) {
	return IsKindOf$1(value, "Promise");
}
/** `[Kind-Only]` Returns true if the given value is TRecord */
function IsRecord(value) {
	return IsKindOf$1(value, "Record");
}
/** `[Kind-Only]` Returns true if this value is TRecursive */
function IsRecursive$1(value) {
	return IsObject$1(value) && Hint in value && value[Hint] === "Recursive";
}
/** `[Kind-Only]` Returns true if the given value is TRef */
function IsRef(value) {
	return IsKindOf$1(value, "Ref");
}
/** `[Kind-Only]` Returns true if the given value is TRegExp */
function IsRegExp(value) {
	return IsKindOf$1(value, "RegExp");
}
/** `[Kind-Only]` Returns true if the given value is TString */
function IsString$1(value) {
	return IsKindOf$1(value, "String");
}
/** `[Kind-Only]` Returns true if the given value is TSymbol */
function IsSymbol$2(value) {
	return IsKindOf$1(value, "Symbol");
}
/** `[Kind-Only]` Returns true if the given value is TTemplateLiteral */
function IsTemplateLiteral(value) {
	return IsKindOf$1(value, "TemplateLiteral");
}
/** `[Kind-Only]` Returns true if the given value is TThis */
function IsThis$1(value) {
	return IsKindOf$1(value, "This");
}
/** `[Kind-Only]` Returns true of this value is TTransform */
function IsTransform(value) {
	return IsObject$1(value) && TransformKind in value;
}
/** `[Kind-Only]` Returns true if the given value is TTuple */
function IsTuple(value) {
	return IsKindOf$1(value, "Tuple");
}
/** `[Kind-Only]` Returns true if the given value is TUndefined */
function IsUndefined$2(value) {
	return IsKindOf$1(value, "Undefined");
}
/** `[Kind-Only]` Returns true if the given value is TUnion */
function IsUnion(value) {
	return IsKindOf$1(value, "Union");
}
/** `[Kind-Only]` Returns true if the given value is TUint8Array */
function IsUint8Array$2(value) {
	return IsKindOf$1(value, "Uint8Array");
}
/** `[Kind-Only]` Returns true if the given value is TUnknown */
function IsUnknown$1(value) {
	return IsKindOf$1(value, "Unknown");
}
/** `[Kind-Only]` Returns true if the given value is a raw TUnsafe */
function IsUnsafe$1(value) {
	return IsKindOf$1(value, "Unsafe");
}
/** `[Kind-Only]` Returns true if the given value is TVoid */
function IsVoid$1(value) {
	return IsKindOf$1(value, "Void");
}
/** `[Kind-Only]` Returns true if the given value is TKind */
function IsKind$1(value) {
	return IsObject$1(value) && Kind in value && IsString(value[Kind]);
}
/** `[Kind-Only]` Returns true if the given value is TSchema */
function IsSchema(value) {
	return IsAny(value) || IsArgument$1(value) || IsArray$1(value) || IsBoolean(value) || IsBigInt$1(value) || IsAsyncIterator$1(value) || IsComputed(value) || IsConstructor(value) || IsDate$2(value) || IsFunction$1(value) || IsInteger(value) || IsIntersect(value) || IsIterator$1(value) || IsLiteral(value) || IsMappedKey(value) || IsMappedResult(value) || IsNever(value) || IsNot$1(value) || IsNull$2(value) || IsNumber(value) || IsObject(value) || IsPromise(value) || IsRecord(value) || IsRef(value) || IsRegExp(value) || IsString$1(value) || IsSymbol$2(value) || IsTemplateLiteral(value) || IsThis$1(value) || IsTuple(value) || IsUndefined$2(value) || IsUnion(value) || IsUint8Array$2(value) || IsUnknown$1(value) || IsUnsafe$1(value) || IsVoid$1(value) || IsKind$1(value);
}
var init_kind = __esmMin((() => {
	init_value$1();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/guard/type.mjs
function IsPattern(value) {
	try {
		new RegExp(value);
		return true;
	} catch {
		return false;
	}
}
function IsControlCharacterFree(value) {
	if (!IsString(value)) return false;
	for (let i$7 = 0; i$7 < value.length; i$7++) {
		const code = value.charCodeAt(i$7);
		if (code >= 7 && code <= 13 || code === 27 || code === 127) {
			return false;
		}
	}
	return true;
}
function IsAdditionalProperties(value) {
	return IsOptionalBoolean(value) || IsSchema$1(value);
}
function IsOptionalBigInt(value) {
	return IsUndefined(value) || IsBigInt(value);
}
function IsOptionalNumber(value) {
	return IsUndefined(value) || IsNumber$1(value);
}
function IsOptionalBoolean(value) {
	return IsUndefined(value) || IsBoolean$1(value);
}
function IsOptionalString(value) {
	return IsUndefined(value) || IsString(value);
}
function IsOptionalPattern(value) {
	return IsUndefined(value) || IsString(value) && IsControlCharacterFree(value) && IsPattern(value);
}
function IsOptionalFormat(value) {
	return IsUndefined(value) || IsString(value) && IsControlCharacterFree(value);
}
function IsOptionalSchema(value) {
	return IsUndefined(value) || IsSchema$1(value);
}
/** Returns true if this value has a Readonly symbol */
function IsReadonly$1(value) {
	return IsObject$1(value) && value[ReadonlyKind] === "Readonly";
}
/** Returns true if this value has a Optional symbol */
function IsOptional$1(value) {
	return IsObject$1(value) && value[OptionalKind] === "Optional";
}
/** Returns true if the given value is TAny */
function IsAny$1(value) {
	return IsKindOf(value, "Any") && IsOptionalString(value.$id);
}
/** Returns true if the given value is TArgument */
function IsArgument(value) {
	return IsKindOf(value, "Argument") && IsNumber$1(value.index);
}
/** Returns true if the given value is TArray */
function IsArray$2(value) {
	return IsKindOf(value, "Array") && value.type === "array" && IsOptionalString(value.$id) && IsSchema$1(value.items) && IsOptionalNumber(value.minItems) && IsOptionalNumber(value.maxItems) && IsOptionalBoolean(value.uniqueItems) && IsOptionalSchema(value.contains) && IsOptionalNumber(value.minContains) && IsOptionalNumber(value.maxContains);
}
/** Returns true if the given value is TAsyncIterator */
function IsAsyncIterator$2(value) {
	return IsKindOf(value, "AsyncIterator") && value.type === "AsyncIterator" && IsOptionalString(value.$id) && IsSchema$1(value.items);
}
/** Returns true if the given value is TBigInt */
function IsBigInt$2(value) {
	return IsKindOf(value, "BigInt") && value.type === "bigint" && IsOptionalString(value.$id) && IsOptionalBigInt(value.exclusiveMaximum) && IsOptionalBigInt(value.exclusiveMinimum) && IsOptionalBigInt(value.maximum) && IsOptionalBigInt(value.minimum) && IsOptionalBigInt(value.multipleOf);
}
/** Returns true if the given value is TBoolean */
function IsBoolean$2(value) {
	return IsKindOf(value, "Boolean") && value.type === "boolean" && IsOptionalString(value.$id);
}
/** Returns true if the given value is TComputed */
function IsComputed$1(value) {
	return IsKindOf(value, "Computed") && IsString(value.target) && IsArray(value.parameters) && value.parameters.every((schema) => IsSchema$1(schema));
}
/** Returns true if the given value is TConstructor */
function IsConstructor$1(value) {
	return IsKindOf(value, "Constructor") && value.type === "Constructor" && IsOptionalString(value.$id) && IsArray(value.parameters) && value.parameters.every((schema) => IsSchema$1(schema)) && IsSchema$1(value.returns);
}
/** Returns true if the given value is TDate */
function IsDate$1(value) {
	return IsKindOf(value, "Date") && value.type === "Date" && IsOptionalString(value.$id) && IsOptionalNumber(value.exclusiveMaximumTimestamp) && IsOptionalNumber(value.exclusiveMinimumTimestamp) && IsOptionalNumber(value.maximumTimestamp) && IsOptionalNumber(value.minimumTimestamp) && IsOptionalNumber(value.multipleOfTimestamp);
}
/** Returns true if the given value is TFunction */
function IsFunction$2(value) {
	return IsKindOf(value, "Function") && value.type === "Function" && IsOptionalString(value.$id) && IsArray(value.parameters) && value.parameters.every((schema) => IsSchema$1(schema)) && IsSchema$1(value.returns);
}
/** Returns true if the given value is TImport */
function IsImport(value) {
	return IsKindOf(value, "Import") && HasPropertyKey$1(value, "$defs") && IsObject$1(value.$defs) && IsProperties(value.$defs) && HasPropertyKey$1(value, "$ref") && IsString(value.$ref) && value.$ref in value.$defs;
}
/** Returns true if the given value is TInteger */
function IsInteger$1(value) {
	return IsKindOf(value, "Integer") && value.type === "integer" && IsOptionalString(value.$id) && IsOptionalNumber(value.exclusiveMaximum) && IsOptionalNumber(value.exclusiveMinimum) && IsOptionalNumber(value.maximum) && IsOptionalNumber(value.minimum) && IsOptionalNumber(value.multipleOf);
}
/** Returns true if the given schema is TProperties */
function IsProperties(value) {
	return IsObject$1(value) && Object.entries(value).every(([key, schema]) => IsControlCharacterFree(key) && IsSchema$1(schema));
}
/** Returns true if the given value is TIntersect */
function IsIntersect$1(value) {
	return IsKindOf(value, "Intersect") && (IsString(value.type) && value.type !== "object" ? false : true) && IsArray(value.allOf) && value.allOf.every((schema) => IsSchema$1(schema) && !IsTransform$1(schema)) && IsOptionalString(value.type) && (IsOptionalBoolean(value.unevaluatedProperties) || IsOptionalSchema(value.unevaluatedProperties)) && IsOptionalString(value.$id);
}
/** Returns true if the given value is TIterator */
function IsIterator$2(value) {
	return IsKindOf(value, "Iterator") && value.type === "Iterator" && IsOptionalString(value.$id) && IsSchema$1(value.items);
}
/** Returns true if the given value is a TKind with the given name. */
function IsKindOf(value, kind) {
	return IsObject$1(value) && Kind in value && value[Kind] === kind;
}
/** Returns true if the given value is TLiteral<string> */
function IsLiteralString(value) {
	return IsLiteral$1(value) && IsString(value.const);
}
/** Returns true if the given value is TLiteral<number> */
function IsLiteralNumber(value) {
	return IsLiteral$1(value) && IsNumber$1(value.const);
}
/** Returns true if the given value is TLiteral<boolean> */
function IsLiteralBoolean(value) {
	return IsLiteral$1(value) && IsBoolean$1(value.const);
}
/** Returns true if the given value is TLiteral */
function IsLiteral$1(value) {
	return IsKindOf(value, "Literal") && IsOptionalString(value.$id) && IsLiteralValue$1(value.const);
}
/** Returns true if the given value is a TLiteralValue */
function IsLiteralValue$1(value) {
	return IsBoolean$1(value) || IsNumber$1(value) || IsString(value);
}
/** Returns true if the given value is a TMappedKey */
function IsMappedKey$1(value) {
	return IsKindOf(value, "MappedKey") && IsArray(value.keys) && value.keys.every((key) => IsNumber$1(key) || IsString(key));
}
/** Returns true if the given value is TMappedResult */
function IsMappedResult$1(value) {
	return IsKindOf(value, "MappedResult") && IsProperties(value.properties);
}
/** Returns true if the given value is TNever */
function IsNever$1(value) {
	return IsKindOf(value, "Never") && IsObject$1(value.not) && Object.getOwnPropertyNames(value.not).length === 0;
}
/** Returns true if the given value is TNot */
function IsNot(value) {
	return IsKindOf(value, "Not") && IsSchema$1(value.not);
}
/** Returns true if the given value is TNull */
function IsNull$1(value) {
	return IsKindOf(value, "Null") && value.type === "null" && IsOptionalString(value.$id);
}
/** Returns true if the given value is TNumber */
function IsNumber$2(value) {
	return IsKindOf(value, "Number") && value.type === "number" && IsOptionalString(value.$id) && IsOptionalNumber(value.exclusiveMaximum) && IsOptionalNumber(value.exclusiveMinimum) && IsOptionalNumber(value.maximum) && IsOptionalNumber(value.minimum) && IsOptionalNumber(value.multipleOf);
}
/** Returns true if the given value is TObject */
function IsObject$2(value) {
	return IsKindOf(value, "Object") && value.type === "object" && IsOptionalString(value.$id) && IsProperties(value.properties) && IsAdditionalProperties(value.additionalProperties) && IsOptionalNumber(value.minProperties) && IsOptionalNumber(value.maxProperties);
}
/** Returns true if the given value is TPromise */
function IsPromise$1(value) {
	return IsKindOf(value, "Promise") && value.type === "Promise" && IsOptionalString(value.$id) && IsSchema$1(value.item);
}
/** Returns true if the given value is TRecord */
function IsRecord$1(value) {
	return IsKindOf(value, "Record") && value.type === "object" && IsOptionalString(value.$id) && IsAdditionalProperties(value.additionalProperties) && IsObject$1(value.patternProperties) && ((schema) => {
		const keys$1 = Object.getOwnPropertyNames(schema.patternProperties);
		return keys$1.length === 1 && IsPattern(keys$1[0]) && IsObject$1(schema.patternProperties) && IsSchema$1(schema.patternProperties[keys$1[0]]);
	})(value);
}
/** Returns true if this value is TRecursive */
function IsRecursive(value) {
	return IsObject$1(value) && Hint in value && value[Hint] === "Recursive";
}
/** Returns true if the given value is TRef */
function IsRef$1(value) {
	return IsKindOf(value, "Ref") && IsOptionalString(value.$id) && IsString(value.$ref);
}
/** Returns true if the given value is TRegExp */
function IsRegExp$1(value) {
	return IsKindOf(value, "RegExp") && IsOptionalString(value.$id) && IsString(value.source) && IsString(value.flags) && IsOptionalNumber(value.maxLength) && IsOptionalNumber(value.minLength);
}
/** Returns true if the given value is TString */
function IsString$2(value) {
	return IsKindOf(value, "String") && value.type === "string" && IsOptionalString(value.$id) && IsOptionalNumber(value.minLength) && IsOptionalNumber(value.maxLength) && IsOptionalPattern(value.pattern) && IsOptionalFormat(value.format);
}
/** Returns true if the given value is TSymbol */
function IsSymbol$1(value) {
	return IsKindOf(value, "Symbol") && value.type === "symbol" && IsOptionalString(value.$id);
}
/** Returns true if the given value is TTemplateLiteral */
function IsTemplateLiteral$1(value) {
	return IsKindOf(value, "TemplateLiteral") && value.type === "string" && IsString(value.pattern) && value.pattern[0] === "^" && value.pattern[value.pattern.length - 1] === "$";
}
/** Returns true if the given value is TThis */
function IsThis(value) {
	return IsKindOf(value, "This") && IsOptionalString(value.$id) && IsString(value.$ref);
}
/** Returns true of this value is TTransform */
function IsTransform$1(value) {
	return IsObject$1(value) && TransformKind in value;
}
/** Returns true if the given value is TTuple */
function IsTuple$1(value) {
	return IsKindOf(value, "Tuple") && value.type === "array" && IsOptionalString(value.$id) && IsNumber$1(value.minItems) && IsNumber$1(value.maxItems) && value.minItems === value.maxItems && (IsUndefined(value.items) && IsUndefined(value.additionalItems) && value.minItems === 0 || IsArray(value.items) && value.items.every((schema) => IsSchema$1(schema)));
}
/** Returns true if the given value is TUndefined */
function IsUndefined$1(value) {
	return IsKindOf(value, "Undefined") && value.type === "undefined" && IsOptionalString(value.$id);
}
/** Returns true if the given value is TUnion<Literal<string | number>[]> */
function IsUnionLiteral(value) {
	return IsUnion$1(value) && value.anyOf.every((schema) => IsLiteralString(schema) || IsLiteralNumber(schema));
}
/** Returns true if the given value is TUnion */
function IsUnion$1(value) {
	return IsKindOf(value, "Union") && IsOptionalString(value.$id) && IsObject$1(value) && IsArray(value.anyOf) && value.anyOf.every((schema) => IsSchema$1(schema));
}
/** Returns true if the given value is TUint8Array */
function IsUint8Array$1(value) {
	return IsKindOf(value, "Uint8Array") && value.type === "Uint8Array" && IsOptionalString(value.$id) && IsOptionalNumber(value.minByteLength) && IsOptionalNumber(value.maxByteLength);
}
/** Returns true if the given value is TUnknown */
function IsUnknown(value) {
	return IsKindOf(value, "Unknown") && IsOptionalString(value.$id);
}
/** Returns true if the given value is a raw TUnsafe */
function IsUnsafe(value) {
	return IsKindOf(value, "Unsafe");
}
/** Returns true if the given value is TVoid */
function IsVoid(value) {
	return IsKindOf(value, "Void") && value.type === "void" && IsOptionalString(value.$id);
}
/** Returns true if the given value is TKind */
function IsKind(value) {
	return IsObject$1(value) && Kind in value && IsString(value[Kind]) && !KnownTypes.includes(value[Kind]);
}
/** Returns true if the given value is TSchema */
function IsSchema$1(value) {
	return IsObject$1(value) && (IsAny$1(value) || IsArgument(value) || IsArray$2(value) || IsBoolean$2(value) || IsBigInt$2(value) || IsAsyncIterator$2(value) || IsComputed$1(value) || IsConstructor$1(value) || IsDate$1(value) || IsFunction$2(value) || IsInteger$1(value) || IsIntersect$1(value) || IsIterator$2(value) || IsLiteral$1(value) || IsMappedKey$1(value) || IsMappedResult$1(value) || IsNever$1(value) || IsNot(value) || IsNull$1(value) || IsNumber$2(value) || IsObject$2(value) || IsPromise$1(value) || IsRecord$1(value) || IsRef$1(value) || IsRegExp$1(value) || IsString$2(value) || IsSymbol$1(value) || IsTemplateLiteral$1(value) || IsThis(value) || IsTuple$1(value) || IsUndefined$1(value) || IsUnion$1(value) || IsUint8Array$1(value) || IsUnknown(value) || IsUnsafe(value) || IsVoid(value) || IsKind(value));
}
var TypeGuardUnknownTypeError, KnownTypes;
var init_type$3 = __esmMin((() => {
	init_value$1();
	init_symbols();
	init_error();
	TypeGuardUnknownTypeError = class extends TypeBoxError {};
	KnownTypes = [
		"Argument",
		"Any",
		"Array",
		"AsyncIterator",
		"BigInt",
		"Boolean",
		"Computed",
		"Constructor",
		"Date",
		"Enum",
		"Function",
		"Integer",
		"Intersect",
		"Iterator",
		"Literal",
		"MappedKey",
		"MappedResult",
		"Not",
		"Null",
		"Number",
		"Object",
		"Promise",
		"Record",
		"Ref",
		"RegExp",
		"String",
		"Symbol",
		"TemplateLiteral",
		"This",
		"Tuple",
		"Undefined",
		"Union",
		"Uint8Array",
		"Unknown",
		"Void"
	];
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/guard/index.mjs
var init_guard = __esmMin((() => {
	init_kind();
	init_type$3();
	init_value$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/helpers/helpers.mjs
/** Increments the given string value + 1 */
function Increment(T$3) {
	return (parseInt(T$3) + 1).toString();
}
var init_helpers$1 = __esmMin((() => {}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/helpers/index.mjs
var init_helpers = __esmMin((() => {
	init_helpers$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/patterns/patterns.mjs
var PatternBoolean, PatternNumber, PatternString, PatternNever, PatternBooleanExact, PatternNumberExact, PatternStringExact, PatternNeverExact;
var init_patterns$1 = __esmMin((() => {
	PatternBoolean = "(true|false)";
	PatternNumber = "(0|[1-9][0-9]*)";
	PatternString = "(.*)";
	PatternNever = "(?!.*)";
	PatternBooleanExact = `^${PatternBoolean}$`;
	PatternNumberExact = `^${PatternNumber}$`;
	PatternStringExact = `^${PatternString}$`;
	PatternNeverExact = `^${PatternNever}$`;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/patterns/index.mjs
var init_patterns = __esmMin((() => {
	init_patterns$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/registry/format.mjs
/** Returns the entries in this registry */
function Entries$1() {
	return new Map(map$1);
}
/** Clears all user defined string formats */
function Clear$1() {
	return map$1.clear();
}
/** Deletes a registered format */
function Delete$1(format) {
	return map$1.delete(format);
}
/** Returns true if the user defined string format exists */
function Has$1(format) {
	return map$1.has(format);
}
/** Sets a validation function for a user defined string format */
function Set$2(format, func) {
	map$1.set(format, func);
}
/** Gets a validation function for a user defined string format */
function Get$1(format) {
	return map$1.get(format);
}
var map$1;
var init_format = __esmMin((() => {
	map$1 = new Map();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/registry/type.mjs
/** Returns the entries in this registry */
function Entries() {
	return new Map(map);
}
/** Clears all user defined types */
function Clear() {
	return map.clear();
}
/** Deletes a registered type */
function Delete(kind) {
	return map.delete(kind);
}
/** Returns true if this registry contains this kind */
function Has(kind) {
	return map.has(kind);
}
/** Sets a validation function for a user defined type */
function Set$1(kind, func) {
	map.set(kind, func);
}
/** Gets a custom validation function for a user defined type */
function Get(kind) {
	return map.get(kind);
}
var map;
var init_type$2 = __esmMin((() => {
	map = new Map();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/registry/index.mjs
var init_registry = __esmMin((() => {
	init_format();
	init_type$2();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/sets/set.mjs
/** Returns true if element right is in the set of left */
function SetIncludes(T$3, S$4) {
	return T$3.includes(S$4);
}
/** Returns true if left is a subset of right */
function SetIsSubset(T$3, S$4) {
	return T$3.every((L$2) => SetIncludes(S$4, L$2));
}
/** Returns a distinct set of elements */
function SetDistinct(T$3) {
	return [...new Set(T$3)];
}
/** Returns the Intersect of the given sets */
function SetIntersect(T$3, S$4) {
	return T$3.filter((L$2) => S$4.includes(L$2));
}
/** Returns the Union of the given sets */
function SetUnion(T$3, S$4) {
	return [...T$3, ...S$4];
}
/** Returns the Complement by omitting elements in T that are in S */
function SetComplement(T$3, S$4) {
	return T$3.filter((L$2) => !S$4.includes(L$2));
}
function SetIntersectManyResolve(T$3, Init) {
	return T$3.reduce((Acc, L$2) => {
		return SetIntersect(Acc, L$2);
	}, Init);
}
function SetIntersectMany(T$3) {
	return T$3.length === 1 ? T$3[0] : T$3.length > 1 ? SetIntersectManyResolve(T$3.slice(1), T$3[0]) : [];
}
/** Returns the Union of multiple sets */
function SetUnionMany(T$3) {
	const Acc = [];
	for (const L$2 of T$3) Acc.push(...L$2);
	return Acc;
}
var init_set = __esmMin((() => {}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/sets/index.mjs
var init_sets = __esmMin((() => {
	init_set();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/any/any.mjs
/** `[Json]` Creates an Any type */
function Any(options) {
	return CreateType({ [Kind]: "Any" }, options);
}
var init_any$1 = __esmMin((() => {
	init_create$1();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/any/index.mjs
var init_any = __esmMin((() => {
	init_any$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/array/array.mjs
/** `[Json]` Creates an Array type */
function Array$1(items, options) {
	return CreateType({
		[Kind]: "Array",
		type: "array",
		items
	}, options);
}
var init_array$2 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/array/index.mjs
var init_array$1 = __esmMin((() => {
	init_array$2();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/argument/argument.mjs
/** `[JavaScript]` Creates an Argument Type. */
function Argument(index) {
	return CreateType({
		[Kind]: "Argument",
		index
	});
}
var init_argument$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/argument/index.mjs
var init_argument = __esmMin((() => {
	init_argument$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/async-iterator/async-iterator.mjs
/** `[JavaScript]` Creates a AsyncIterator type */
function AsyncIterator(items, options) {
	return CreateType({
		[Kind]: "AsyncIterator",
		type: "AsyncIterator",
		items
	}, options);
}
var init_async_iterator$1 = __esmMin((() => {
	init_symbols();
	init_type$4();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/async-iterator/index.mjs
var init_async_iterator = __esmMin((() => {
	init_async_iterator$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/computed/computed.mjs
/** `[Internal]` Creates a deferred computed type. This type is used exclusively in modules to defer resolution of computable types that contain interior references  */
function Computed(target, parameters, options) {
	return CreateType({
		[Kind]: "Computed",
		target,
		parameters
	}, options);
}
var init_computed$1 = __esmMin((() => {
	init_create$1();
	init_symbols$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/computed/index.mjs
var init_computed = __esmMin((() => {
	init_computed$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/discard/discard.mjs
function DiscardKey(value, key) {
	const { [key]: _$2, ...rest } = value;
	return rest;
}
/** Discards property keys from the given value. This function returns a shallow Clone. */
function Discard(value, keys$1) {
	return keys$1.reduce((acc, key) => DiscardKey(acc, key), value);
}
var init_discard$1 = __esmMin((() => {}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/discard/index.mjs
var init_discard = __esmMin((() => {
	init_discard$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/never/never.mjs
/** `[Json]` Creates a Never type */
function Never(options) {
	return CreateType({
		[Kind]: "Never",
		not: {}
	}, options);
}
var init_never$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/never/index.mjs
var init_never = __esmMin((() => {
	init_never$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/mapped/mapped-key.mjs
function MappedKey(T$3) {
	return CreateType({
		[Kind]: "MappedKey",
		keys: T$3
	});
}
var init_mapped_key = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/mapped/mapped-result.mjs
function MappedResult(properties$1) {
	return CreateType({
		[Kind]: "MappedResult",
		properties: properties$1
	});
}
var init_mapped_result = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/constructor/constructor.mjs
/** `[JavaScript]` Creates a Constructor type */
function Constructor(parameters, returns, options) {
	return CreateType({
		[Kind]: "Constructor",
		type: "Constructor",
		parameters,
		returns
	}, options);
}
var init_constructor$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/constructor/index.mjs
var init_constructor = __esmMin((() => {
	init_constructor$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/function/function.mjs
/** `[JavaScript]` Creates a Function type */
function Function$1(parameters, returns, options) {
	return CreateType({
		[Kind]: "Function",
		type: "Function",
		parameters,
		returns
	}, options);
}
var init_function$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/function/index.mjs
var init_function = __esmMin((() => {
	init_function$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/union/union-create.mjs
function UnionCreate(T$3, options) {
	return CreateType({
		[Kind]: "Union",
		anyOf: T$3
	}, options);
}
var init_union_create = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/union/union-evaluated.mjs
function IsUnionOptional(types) {
	return types.some((type) => IsOptional(type));
}
function RemoveOptionalFromRest$1(types) {
	return types.map((left) => IsOptional(left) ? RemoveOptionalFromType$1(left) : left);
}
function RemoveOptionalFromType$1(T$3) {
	return Discard(T$3, [OptionalKind]);
}
function ResolveUnion(types, options) {
	const isOptional = IsUnionOptional(types);
	return isOptional ? Optional(UnionCreate(RemoveOptionalFromRest$1(types), options)) : UnionCreate(RemoveOptionalFromRest$1(types), options);
}
/** `[Json]` Creates an evaluated Union type */
function UnionEvaluated(T$3, options) {
	return T$3.length === 1 ? CreateType(T$3[0], options) : T$3.length === 0 ? Never(options) : ResolveUnion(T$3, options);
}
var init_union_evaluated = __esmMin((() => {
	init_type$4();
	init_symbols();
	init_discard();
	init_never();
	init_optional();
	init_union_create();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/union/union-type.mjs
var init_union_type = __esmMin((() => {
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/union/union.mjs
/** `[Json]` Creates a Union type */
function Union(types, options) {
	return types.length === 0 ? Never(options) : types.length === 1 ? CreateType(types[0], options) : UnionCreate(types, options);
}
var init_union$2 = __esmMin((() => {
	init_never();
	init_type$4();
	init_union_create();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/union/index.mjs
var init_union$1 = __esmMin((() => {
	init_union_evaluated();
	init_union_type();
	init_union$2();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/template-literal/parse.mjs
function Unescape(pattern) {
	return pattern.replace(/\\\$/g, "$").replace(/\\\*/g, "*").replace(/\\\^/g, "^").replace(/\\\|/g, "|").replace(/\\\(/g, "(").replace(/\\\)/g, ")");
}
function IsNonEscaped(pattern, index, char) {
	return pattern[index] === char && pattern.charCodeAt(index - 1) !== 92;
}
function IsOpenParen(pattern, index) {
	return IsNonEscaped(pattern, index, "(");
}
function IsCloseParen(pattern, index) {
	return IsNonEscaped(pattern, index, ")");
}
function IsSeparator(pattern, index) {
	return IsNonEscaped(pattern, index, "|");
}
function IsGroup(pattern) {
	if (!(IsOpenParen(pattern, 0) && IsCloseParen(pattern, pattern.length - 1))) return false;
	let count = 0;
	for (let index = 0; index < pattern.length; index++) {
		if (IsOpenParen(pattern, index)) count += 1;
		if (IsCloseParen(pattern, index)) count -= 1;
		if (count === 0 && index !== pattern.length - 1) return false;
	}
	return true;
}
function InGroup(pattern) {
	return pattern.slice(1, pattern.length - 1);
}
function IsPrecedenceOr(pattern) {
	let count = 0;
	for (let index = 0; index < pattern.length; index++) {
		if (IsOpenParen(pattern, index)) count += 1;
		if (IsCloseParen(pattern, index)) count -= 1;
		if (IsSeparator(pattern, index) && count === 0) return true;
	}
	return false;
}
function IsPrecedenceAnd(pattern) {
	for (let index = 0; index < pattern.length; index++) {
		if (IsOpenParen(pattern, index)) return true;
	}
	return false;
}
function Or(pattern) {
	let [count, start] = [0, 0];
	const expressions = [];
	for (let index = 0; index < pattern.length; index++) {
		if (IsOpenParen(pattern, index)) count += 1;
		if (IsCloseParen(pattern, index)) count -= 1;
		if (IsSeparator(pattern, index) && count === 0) {
			const range$1 = pattern.slice(start, index);
			if (range$1.length > 0) expressions.push(TemplateLiteralParse(range$1));
			start = index + 1;
		}
	}
	const range = pattern.slice(start);
	if (range.length > 0) expressions.push(TemplateLiteralParse(range));
	if (expressions.length === 0) return {
		type: "const",
		const: ""
	};
	if (expressions.length === 1) return expressions[0];
	return {
		type: "or",
		expr: expressions
	};
}
function And(pattern) {
	function Group$1(value, index) {
		if (!IsOpenParen(value, index)) throw new TemplateLiteralParserError(`TemplateLiteralParser: Index must point to open parens`);
		let count = 0;
		for (let scan = index; scan < value.length; scan++) {
			if (IsOpenParen(value, scan)) count += 1;
			if (IsCloseParen(value, scan)) count -= 1;
			if (count === 0) return [index, scan];
		}
		throw new TemplateLiteralParserError(`TemplateLiteralParser: Unclosed group parens in expression`);
	}
	function Range$1(pattern$1, index) {
		for (let scan = index; scan < pattern$1.length; scan++) {
			if (IsOpenParen(pattern$1, scan)) return [index, scan];
		}
		return [index, pattern$1.length];
	}
	const expressions = [];
	for (let index = 0; index < pattern.length; index++) {
		if (IsOpenParen(pattern, index)) {
			const [start, end] = Group$1(pattern, index);
			const range = pattern.slice(start, end + 1);
			expressions.push(TemplateLiteralParse(range));
			index = end;
		} else {
			const [start, end] = Range$1(pattern, index);
			const range = pattern.slice(start, end);
			if (range.length > 0) expressions.push(TemplateLiteralParse(range));
			index = end - 1;
		}
	}
	return expressions.length === 0 ? {
		type: "const",
		const: ""
	} : expressions.length === 1 ? expressions[0] : {
		type: "and",
		expr: expressions
	};
}
/** Parses a pattern and returns an expression tree */
function TemplateLiteralParse(pattern) {
	return IsGroup(pattern) ? TemplateLiteralParse(InGroup(pattern)) : IsPrecedenceOr(pattern) ? Or(pattern) : IsPrecedenceAnd(pattern) ? And(pattern) : {
		type: "const",
		const: Unescape(pattern)
	};
}
/** Parses a pattern and strips forward and trailing ^ and $ */
function TemplateLiteralParseExact(pattern) {
	return TemplateLiteralParse(pattern.slice(1, pattern.length - 1));
}
var TemplateLiteralParserError;
var init_parse$1 = __esmMin((() => {
	init_error();
	TemplateLiteralParserError = class extends TypeBoxError {};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/template-literal/finite.mjs
function IsNumberExpression(expression) {
	return expression.type === "or" && expression.expr.length === 2 && expression.expr[0].type === "const" && expression.expr[0].const === "0" && expression.expr[1].type === "const" && expression.expr[1].const === "[1-9][0-9]*";
}
function IsBooleanExpression(expression) {
	return expression.type === "or" && expression.expr.length === 2 && expression.expr[0].type === "const" && expression.expr[0].const === "true" && expression.expr[1].type === "const" && expression.expr[1].const === "false";
}
function IsStringExpression(expression) {
	return expression.type === "const" && expression.const === ".*";
}
function IsTemplateLiteralExpressionFinite(expression) {
	return IsNumberExpression(expression) || IsStringExpression(expression) ? false : IsBooleanExpression(expression) ? true : expression.type === "and" ? expression.expr.every((expr) => IsTemplateLiteralExpressionFinite(expr)) : expression.type === "or" ? expression.expr.every((expr) => IsTemplateLiteralExpressionFinite(expr)) : expression.type === "const" ? true : (() => {
		throw new TemplateLiteralFiniteError(`Unknown expression type`);
	})();
}
/** Returns true if this TemplateLiteral resolves to a finite set of values */
function IsTemplateLiteralFinite(schema) {
	const expression = TemplateLiteralParseExact(schema.pattern);
	return IsTemplateLiteralExpressionFinite(expression);
}
var TemplateLiteralFiniteError;
var init_finite = __esmMin((() => {
	init_parse$1();
	init_error();
	TemplateLiteralFiniteError = class extends TypeBoxError {};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/template-literal/generate.mjs
function* GenerateReduce(buffer) {
	if (buffer.length === 1) return yield* buffer[0];
	for (const left of buffer[0]) {
		for (const right of GenerateReduce(buffer.slice(1))) {
			yield `${left}${right}`;
		}
	}
}
function* GenerateAnd(expression) {
	return yield* GenerateReduce(expression.expr.map((expr) => [...TemplateLiteralExpressionGenerate(expr)]));
}
function* GenerateOr(expression) {
	for (const expr of expression.expr) yield* TemplateLiteralExpressionGenerate(expr);
}
function* GenerateConst(expression) {
	return yield expression.const;
}
function* TemplateLiteralExpressionGenerate(expression) {
	return expression.type === "and" ? yield* GenerateAnd(expression) : expression.type === "or" ? yield* GenerateOr(expression) : expression.type === "const" ? yield* GenerateConst(expression) : (() => {
		throw new TemplateLiteralGenerateError("Unknown expression");
	})();
}
/** Generates a tuple of strings from the given TemplateLiteral. Returns an empty tuple if infinite. */
function TemplateLiteralGenerate(schema) {
	const expression = TemplateLiteralParseExact(schema.pattern);
	return IsTemplateLiteralExpressionFinite(expression) ? [...TemplateLiteralExpressionGenerate(expression)] : [];
}
var TemplateLiteralGenerateError;
var init_generate = __esmMin((() => {
	init_finite();
	init_parse$1();
	init_error();
	TemplateLiteralGenerateError = class extends TypeBoxError {};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/literal/literal.mjs
/** `[Json]` Creates a Literal type */
function Literal(value, options) {
	return CreateType({
		[Kind]: "Literal",
		const: value,
		type: typeof value
	}, options);
}
var init_literal$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/literal/index.mjs
var init_literal = __esmMin((() => {
	init_literal$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/boolean/boolean.mjs
/** `[Json]` Creates a Boolean type */
function Boolean$1(options) {
	return CreateType({
		[Kind]: "Boolean",
		type: "boolean"
	}, options);
}
var init_boolean$1 = __esmMin((() => {
	init_symbols();
	init_create$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/boolean/index.mjs
var init_boolean = __esmMin((() => {
	init_boolean$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/bigint/bigint.mjs
/** `[JavaScript]` Creates a BigInt type */
function BigInt(options) {
	return CreateType({
		[Kind]: "BigInt",
		type: "bigint"
	}, options);
}
var init_bigint$1 = __esmMin((() => {
	init_symbols();
	init_create$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/bigint/index.mjs
var init_bigint = __esmMin((() => {
	init_bigint$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/number/number.mjs
/** `[Json]` Creates a Number type */
function Number$1(options) {
	return CreateType({
		[Kind]: "Number",
		type: "number"
	}, options);
}
var init_number$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/number/index.mjs
var init_number = __esmMin((() => {
	init_number$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/string/string.mjs
/** `[Json]` Creates a String type */
function String$1(options) {
	return CreateType({
		[Kind]: "String",
		type: "string"
	}, options);
}
var init_string$2 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/string/index.mjs
var init_string$1 = __esmMin((() => {
	init_string$2();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/template-literal/syntax.mjs
function* FromUnion$9(syntax) {
	const trim = syntax.trim().replace(/"|'/g, "");
	return trim === "boolean" ? yield Boolean$1() : trim === "number" ? yield Number$1() : trim === "bigint" ? yield BigInt() : trim === "string" ? yield String$1() : yield (() => {
		const literals$1 = trim.split("|").map((literal) => Literal(literal.trim()));
		return literals$1.length === 0 ? Never() : literals$1.length === 1 ? literals$1[0] : UnionEvaluated(literals$1);
	})();
}
function* FromTerminal(syntax) {
	if (syntax[1] !== "{") {
		const L$2 = Literal("$");
		const R$1 = FromSyntax(syntax.slice(1));
		return yield* [L$2, ...R$1];
	}
	for (let i$7 = 2; i$7 < syntax.length; i$7++) {
		if (syntax[i$7] === "}") {
			const L$2 = FromUnion$9(syntax.slice(2, i$7));
			const R$1 = FromSyntax(syntax.slice(i$7 + 1));
			return yield* [...L$2, ...R$1];
		}
	}
	yield Literal(syntax);
}
function* FromSyntax(syntax) {
	for (let i$7 = 0; i$7 < syntax.length; i$7++) {
		if (syntax[i$7] === "$") {
			const L$2 = Literal(syntax.slice(0, i$7));
			const R$1 = FromTerminal(syntax.slice(i$7));
			return yield* [L$2, ...R$1];
		}
	}
	yield Literal(syntax);
}
/** Parses TemplateLiteralSyntax and returns a tuple of TemplateLiteralKinds */
function TemplateLiteralSyntax(syntax) {
	return [...FromSyntax(syntax)];
}
var init_syntax = __esmMin((() => {
	init_literal();
	init_boolean();
	init_bigint();
	init_number();
	init_string$1();
	init_union$1();
	init_never();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/template-literal/pattern.mjs
function Escape(value) {
	return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
}
function Visit$1(schema, acc) {
	return IsTemplateLiteral(schema) ? schema.pattern.slice(1, schema.pattern.length - 1) : IsUnion(schema) ? `(${schema.anyOf.map((schema$1) => Visit$1(schema$1, acc)).join("|")})` : IsNumber(schema) ? `${acc}${PatternNumber}` : IsInteger(schema) ? `${acc}${PatternNumber}` : IsBigInt$1(schema) ? `${acc}${PatternNumber}` : IsString$1(schema) ? `${acc}${PatternString}` : IsLiteral(schema) ? `${acc}${Escape(schema.const.toString())}` : IsBoolean(schema) ? `${acc}${PatternBoolean}` : (() => {
		throw new TemplateLiteralPatternError(`Unexpected Kind '${schema[Kind]}'`);
	})();
}
function TemplateLiteralPattern(kinds) {
	return `^${kinds.map((schema) => Visit$1(schema, "")).join("")}\$`;
}
var TemplateLiteralPatternError;
var init_pattern = __esmMin((() => {
	init_patterns();
	init_symbols();
	init_error();
	init_kind();
	TemplateLiteralPatternError = class extends TypeBoxError {};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/template-literal/union.mjs
/** Returns a Union from the given TemplateLiteral */
function TemplateLiteralToUnion(schema) {
	const R$1 = TemplateLiteralGenerate(schema);
	const L$2 = R$1.map((S$4) => Literal(S$4));
	return UnionEvaluated(L$2);
}
var init_union = __esmMin((() => {
	init_union$1();
	init_literal();
	init_generate();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/template-literal/template-literal.mjs
/** `[Json]` Creates a TemplateLiteral type */
function TemplateLiteral(unresolved, options) {
	const pattern = IsString(unresolved) ? TemplateLiteralPattern(TemplateLiteralSyntax(unresolved)) : TemplateLiteralPattern(unresolved);
	return CreateType({
		[Kind]: "TemplateLiteral",
		type: "string",
		pattern
	}, options);
}
var init_template_literal$1 = __esmMin((() => {
	init_type$4();
	init_syntax();
	init_pattern();
	init_value$1();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/template-literal/index.mjs
var init_template_literal = __esmMin((() => {
	init_finite();
	init_generate();
	init_syntax();
	init_parse$1();
	init_pattern();
	init_union();
	init_template_literal$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/indexed/indexed-property-keys.mjs
function FromTemplateLiteral$2(templateLiteral) {
	const keys$1 = TemplateLiteralGenerate(templateLiteral);
	return keys$1.map((key) => key.toString());
}
function FromUnion$8(types) {
	const result = [];
	for (const type of types) result.push(...IndexPropertyKeys(type));
	return result;
}
function FromLiteral$1(literalValue) {
	return [literalValue.toString()];
}
/** Returns a tuple of PropertyKeys derived from the given TSchema */
function IndexPropertyKeys(type) {
	return [...new Set(IsTemplateLiteral(type) ? FromTemplateLiteral$2(type) : IsUnion(type) ? FromUnion$8(type.anyOf) : IsLiteral(type) ? FromLiteral$1(type.const) : IsNumber(type) ? ["[number]"] : IsInteger(type) ? ["[number]"] : [])];
}
var init_indexed_property_keys = __esmMin((() => {
	init_template_literal();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-result.mjs
function FromProperties$18(type, properties$1, options) {
	const result = {};
	for (const K2 of Object.getOwnPropertyNames(properties$1)) {
		result[K2] = Index(type, IndexPropertyKeys(properties$1[K2]), options);
	}
	return result;
}
function FromMappedResult$11(type, mappedResult, options) {
	return FromProperties$18(type, mappedResult.properties, options);
}
function IndexFromMappedResult(type, mappedResult, options) {
	const properties$1 = FromMappedResult$11(type, mappedResult, options);
	return MappedResult(properties$1);
}
var init_indexed_from_mapped_result = __esmMin((() => {
	init_mapped();
	init_indexed_property_keys();
	init_indexed();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/indexed/indexed.mjs
function FromRest$6(types, key) {
	return types.map((type) => IndexFromPropertyKey(type, key));
}
function FromIntersectRest(types) {
	return types.filter((type) => !IsNever(type));
}
function FromIntersect$7(types, key) {
	return IntersectEvaluated(FromIntersectRest(FromRest$6(types, key)));
}
function FromUnionRest(types) {
	return types.some((L$2) => IsNever(L$2)) ? [] : types;
}
function FromUnion$7(types, key) {
	return UnionEvaluated(FromUnionRest(FromRest$6(types, key)));
}
function FromTuple$4(types, key) {
	return key in types ? types[key] : key === "[number]" ? UnionEvaluated(types) : Never();
}
function FromArray$5(type, key) {
	return key === "[number]" ? type : Never();
}
function FromProperty$2(properties$1, propertyKey) {
	return propertyKey in properties$1 ? properties$1[propertyKey] : Never();
}
function IndexFromPropertyKey(type, propertyKey) {
	return IsIntersect(type) ? FromIntersect$7(type.allOf, propertyKey) : IsUnion(type) ? FromUnion$7(type.anyOf, propertyKey) : IsTuple(type) ? FromTuple$4(type.items ?? [], propertyKey) : IsArray$1(type) ? FromArray$5(type.items, propertyKey) : IsObject(type) ? FromProperty$2(type.properties, propertyKey) : Never();
}
function IndexFromPropertyKeys(type, propertyKeys) {
	return propertyKeys.map((propertyKey) => IndexFromPropertyKey(type, propertyKey));
}
function FromSchema(type, propertyKeys) {
	return UnionEvaluated(IndexFromPropertyKeys(type, propertyKeys));
}
function IndexFromComputed(type, key) {
	return Computed("Index", [type, key]);
}
/** `[Json]` Returns an Indexed property type for the given keys */
function Index(type, key, options) {
	if (IsRef(type) || IsRef(key)) {
		const error$2 = `Index types using Ref parameters require both Type and Key to be of TSchema`;
		if (!IsSchema(type) || !IsSchema(key)) throw new TypeBoxError(error$2);
		return Computed("Index", [type, key]);
	}
	if (IsMappedResult(key)) return IndexFromMappedResult(type, key, options);
	if (IsMappedKey(key)) return IndexFromMappedKey(type, key, options);
	return CreateType(IsSchema(key) ? FromSchema(type, IndexPropertyKeys(key)) : FromSchema(type, key), options);
}
var init_indexed$1 = __esmMin((() => {
	init_type$4();
	init_error();
	init_computed();
	init_never();
	init_intersect();
	init_union$1();
	init_indexed_property_keys();
	init_indexed_from_mapped_key();
	init_indexed_from_mapped_result();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-key.mjs
function MappedIndexPropertyKey(type, key, options) {
	return { [key]: Index(type, [key], Clone(options)) };
}
function MappedIndexPropertyKeys(type, propertyKeys, options) {
	return propertyKeys.reduce((result, left) => {
		return {
			...result,
			...MappedIndexPropertyKey(type, left, options)
		};
	}, {});
}
function MappedIndexProperties(type, mappedKey, options) {
	return MappedIndexPropertyKeys(type, mappedKey.keys, options);
}
function IndexFromMappedKey(type, mappedKey, options) {
	const properties$1 = MappedIndexProperties(type, mappedKey, options);
	return MappedResult(properties$1);
}
var init_indexed_from_mapped_key = __esmMin((() => {
	init_indexed$1();
	init_mapped();
	init_value();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/indexed/index.mjs
var init_indexed = __esmMin((() => {
	init_indexed_from_mapped_key();
	init_indexed_from_mapped_result();
	init_indexed_property_keys();
	init_indexed$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/iterator/iterator.mjs
/** `[JavaScript]` Creates an Iterator type */
function Iterator(items, options) {
	return CreateType({
		[Kind]: "Iterator",
		type: "Iterator",
		items
	}, options);
}
var init_iterator$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/iterator/index.mjs
var init_iterator = __esmMin((() => {
	init_iterator$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/object/object.mjs
function RequiredKeys(properties$1) {
	const keys$1 = [];
	for (let key in properties$1) {
		if (!IsOptional(properties$1[key])) keys$1.push(key);
	}
	return keys$1;
}
/** `[Json]` Creates an Object type */
function _Object(properties$1, options) {
	const required = RequiredKeys(properties$1);
	const schematic = required.length > 0 ? {
		[Kind]: "Object",
		type: "object",
		properties: properties$1,
		required
	} : {
		[Kind]: "Object",
		type: "object",
		properties: properties$1
	};
	return CreateType(schematic, options);
}
var Object$1;
var init_object$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
	init_kind();
	Object$1 = _Object;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/object/index.mjs
var init_object = __esmMin((() => {
	init_object$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/promise/promise.mjs
/** `[JavaScript]` Creates a Promise type */
function Promise$1(item, options) {
	return CreateType({
		[Kind]: "Promise",
		type: "Promise",
		item
	}, options);
}
var init_promise$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/promise/index.mjs
var init_promise = __esmMin((() => {
	init_promise$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/readonly/readonly.mjs
function RemoveReadonly(schema) {
	return CreateType(Discard(schema, [ReadonlyKind]));
}
function AddReadonly(schema) {
	return CreateType({
		...schema,
		[ReadonlyKind]: "Readonly"
	});
}
function ReadonlyWithFlag(schema, F$1) {
	return F$1 === false ? RemoveReadonly(schema) : AddReadonly(schema);
}
/** `[Json]` Creates a Readonly property */
function Readonly(schema, enable) {
	const F$1 = enable ?? true;
	return IsMappedResult(schema) ? ReadonlyFromMappedResult(schema, F$1) : ReadonlyWithFlag(schema, F$1);
}
var init_readonly$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
	init_discard();
	init_readonly_from_mapped_result();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/readonly/readonly-from-mapped-result.mjs
function FromProperties$17(K$1, F$1) {
	const Acc = {};
	for (const K2 of globalThis.Object.getOwnPropertyNames(K$1)) Acc[K2] = Readonly(K$1[K2], F$1);
	return Acc;
}
function FromMappedResult$10(R$1, F$1) {
	return FromProperties$17(R$1.properties, F$1);
}
function ReadonlyFromMappedResult(R$1, F$1) {
	const P$2 = FromMappedResult$10(R$1, F$1);
	return MappedResult(P$2);
}
var init_readonly_from_mapped_result = __esmMin((() => {
	init_mapped();
	init_readonly$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/readonly/index.mjs
var init_readonly = __esmMin((() => {
	init_readonly_from_mapped_result();
	init_readonly$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/tuple/tuple.mjs
/** `[Json]` Creates a Tuple type */
function Tuple(types, options) {
	return CreateType(types.length > 0 ? {
		[Kind]: "Tuple",
		type: "array",
		items: types,
		additionalItems: false,
		minItems: types.length,
		maxItems: types.length
	} : {
		[Kind]: "Tuple",
		type: "array",
		minItems: types.length,
		maxItems: types.length
	}, options);
}
var init_tuple$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/tuple/index.mjs
var init_tuple = __esmMin((() => {
	init_tuple$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/mapped/mapped.mjs
function FromMappedResult$9(K$1, P$2) {
	return K$1 in P$2 ? FromSchemaType(K$1, P$2[K$1]) : MappedResult(P$2);
}
function MappedKeyToKnownMappedResultProperties(K$1) {
	return { [K$1]: Literal(K$1) };
}
function MappedKeyToUnknownMappedResultProperties(P$2) {
	const Acc = {};
	for (const L$2 of P$2) Acc[L$2] = Literal(L$2);
	return Acc;
}
function MappedKeyToMappedResultProperties(K$1, P$2) {
	return SetIncludes(P$2, K$1) ? MappedKeyToKnownMappedResultProperties(K$1) : MappedKeyToUnknownMappedResultProperties(P$2);
}
function FromMappedKey$3(K$1, P$2) {
	const R$1 = MappedKeyToMappedResultProperties(K$1, P$2);
	return FromMappedResult$9(K$1, R$1);
}
function FromRest$5(K$1, T$3) {
	return T$3.map((L$2) => FromSchemaType(K$1, L$2));
}
function FromProperties$16(K$1, T$3) {
	const Acc = {};
	for (const K2 of globalThis.Object.getOwnPropertyNames(T$3)) Acc[K2] = FromSchemaType(K$1, T$3[K2]);
	return Acc;
}
function FromSchemaType(K$1, T$3) {
	const options = { ...T$3 };
	return IsOptional(T$3) ? Optional(FromSchemaType(K$1, Discard(T$3, [OptionalKind]))) : IsReadonly(T$3) ? Readonly(FromSchemaType(K$1, Discard(T$3, [ReadonlyKind]))) : IsMappedResult(T$3) ? FromMappedResult$9(K$1, T$3.properties) : IsMappedKey(T$3) ? FromMappedKey$3(K$1, T$3.keys) : IsConstructor(T$3) ? Constructor(FromRest$5(K$1, T$3.parameters), FromSchemaType(K$1, T$3.returns), options) : IsFunction$1(T$3) ? Function$1(FromRest$5(K$1, T$3.parameters), FromSchemaType(K$1, T$3.returns), options) : IsAsyncIterator$1(T$3) ? AsyncIterator(FromSchemaType(K$1, T$3.items), options) : IsIterator$1(T$3) ? Iterator(FromSchemaType(K$1, T$3.items), options) : IsIntersect(T$3) ? Intersect(FromRest$5(K$1, T$3.allOf), options) : IsUnion(T$3) ? Union(FromRest$5(K$1, T$3.anyOf), options) : IsTuple(T$3) ? Tuple(FromRest$5(K$1, T$3.items ?? []), options) : IsObject(T$3) ? Object$1(FromProperties$16(K$1, T$3.properties), options) : IsArray$1(T$3) ? Array$1(FromSchemaType(K$1, T$3.items), options) : IsPromise(T$3) ? Promise$1(FromSchemaType(K$1, T$3.item), options) : T$3;
}
function MappedFunctionReturnType(K$1, T$3) {
	const Acc = {};
	for (const L$2 of K$1) Acc[L$2] = FromSchemaType(L$2, T$3);
	return Acc;
}
/** `[Json]` Creates a Mapped object type */
function Mapped(key, map$2, options) {
	const K$1 = IsSchema(key) ? IndexPropertyKeys(key) : key;
	const RT = map$2({
		[Kind]: "MappedKey",
		keys: K$1
	});
	const R$1 = MappedFunctionReturnType(K$1, RT);
	return Object$1(R$1, options);
}
var init_mapped$1 = __esmMin((() => {
	init_symbols();
	init_discard();
	init_array$1();
	init_async_iterator();
	init_constructor();
	init_function();
	init_indexed();
	init_intersect();
	init_iterator();
	init_literal();
	init_object();
	init_optional();
	init_promise();
	init_readonly();
	init_tuple();
	init_union$1();
	init_sets();
	init_mapped_result();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/mapped/index.mjs
var init_mapped = __esmMin((() => {
	init_mapped_key();
	init_mapped_result();
	init_mapped$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/optional/optional.mjs
function RemoveOptional(schema) {
	return CreateType(Discard(schema, [OptionalKind]));
}
function AddOptional(schema) {
	return CreateType({
		...schema,
		[OptionalKind]: "Optional"
	});
}
function OptionalWithFlag(schema, F$1) {
	return F$1 === false ? RemoveOptional(schema) : AddOptional(schema);
}
/** `[Json]` Creates a Optional property */
function Optional(schema, enable) {
	const F$1 = enable ?? true;
	return IsMappedResult(schema) ? OptionalFromMappedResult(schema, F$1) : OptionalWithFlag(schema, F$1);
}
var init_optional$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
	init_discard();
	init_optional_from_mapped_result();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/optional/optional-from-mapped-result.mjs
function FromProperties$15(P$2, F$1) {
	const Acc = {};
	for (const K2 of globalThis.Object.getOwnPropertyNames(P$2)) Acc[K2] = Optional(P$2[K2], F$1);
	return Acc;
}
function FromMappedResult$8(R$1, F$1) {
	return FromProperties$15(R$1.properties, F$1);
}
function OptionalFromMappedResult(R$1, F$1) {
	const P$2 = FromMappedResult$8(R$1, F$1);
	return MappedResult(P$2);
}
var init_optional_from_mapped_result = __esmMin((() => {
	init_mapped();
	init_optional$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/optional/index.mjs
var init_optional = __esmMin((() => {
	init_optional_from_mapped_result();
	init_optional$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intersect/intersect-create.mjs
function IntersectCreate(T$3, options = {}) {
	const allObjects = T$3.every((schema) => IsObject(schema));
	const clonedUnevaluatedProperties = IsSchema(options.unevaluatedProperties) ? { unevaluatedProperties: options.unevaluatedProperties } : {};
	return CreateType(options.unevaluatedProperties === false || IsSchema(options.unevaluatedProperties) || allObjects ? {
		...clonedUnevaluatedProperties,
		[Kind]: "Intersect",
		type: "object",
		allOf: T$3
	} : {
		...clonedUnevaluatedProperties,
		[Kind]: "Intersect",
		allOf: T$3
	}, options);
}
var init_intersect_create = __esmMin((() => {
	init_type$4();
	init_symbols();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intersect/intersect-evaluated.mjs
function IsIntersectOptional(types) {
	return types.every((left) => IsOptional(left));
}
function RemoveOptionalFromType(type) {
	return Discard(type, [OptionalKind]);
}
function RemoveOptionalFromRest(types) {
	return types.map((left) => IsOptional(left) ? RemoveOptionalFromType(left) : left);
}
function ResolveIntersect(types, options) {
	return IsIntersectOptional(types) ? Optional(IntersectCreate(RemoveOptionalFromRest(types), options)) : IntersectCreate(RemoveOptionalFromRest(types), options);
}
/** `[Json]` Creates an evaluated Intersect type */
function IntersectEvaluated(types, options = {}) {
	if (types.length === 1) return CreateType(types[0], options);
	if (types.length === 0) return Never(options);
	if (types.some((schema) => IsTransform(schema))) throw new Error("Cannot intersect transform types");
	return ResolveIntersect(types, options);
}
var init_intersect_evaluated = __esmMin((() => {
	init_symbols();
	init_type$4();
	init_discard();
	init_never();
	init_optional();
	init_intersect_create();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intersect/intersect-type.mjs
var init_intersect_type = __esmMin((() => {
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intersect/intersect.mjs
/** `[Json]` Creates an evaluated Intersect type */
function Intersect(types, options) {
	if (types.length === 1) return CreateType(types[0], options);
	if (types.length === 0) return Never(options);
	if (types.some((schema) => IsTransform(schema))) throw new Error("Cannot intersect transform types");
	return IntersectCreate(types, options);
}
var init_intersect$1 = __esmMin((() => {
	init_type$4();
	init_never();
	init_intersect_create();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intersect/index.mjs
var init_intersect = __esmMin((() => {
	init_intersect_evaluated();
	init_intersect_type();
	init_intersect$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/ref/ref.mjs
/** `[Json]` Creates a Ref type. The referenced type must contain a $id */
function Ref(...args) {
	const [$ref, options] = typeof args[0] === "string" ? [args[0], args[1]] : [args[0].$id, args[1]];
	if (typeof $ref !== "string") throw new TypeBoxError("Ref: $ref must be a string");
	return CreateType({
		[Kind]: "Ref",
		$ref
	}, options);
}
var init_ref$1 = __esmMin((() => {
	init_error();
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/ref/index.mjs
var init_ref = __esmMin((() => {
	init_ref$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/awaited/awaited.mjs
function FromComputed$4(target, parameters) {
	return Computed("Awaited", [Computed(target, parameters)]);
}
function FromRef$3($ref) {
	return Computed("Awaited", [Ref($ref)]);
}
function FromIntersect$6(types) {
	return Intersect(FromRest$4(types));
}
function FromUnion$6(types) {
	return Union(FromRest$4(types));
}
function FromPromise$2(type) {
	return Awaited(type);
}
function FromRest$4(types) {
	return types.map((type) => Awaited(type));
}
/** `[JavaScript]` Constructs a type by recursively unwrapping Promise types */
function Awaited(type, options) {
	return CreateType(IsComputed(type) ? FromComputed$4(type.target, type.parameters) : IsIntersect(type) ? FromIntersect$6(type.allOf) : IsUnion(type) ? FromUnion$6(type.anyOf) : IsPromise(type) ? FromPromise$2(type.item) : IsRef(type) ? FromRef$3(type.$ref) : type, options);
}
var init_awaited$1 = __esmMin((() => {
	init_type$4();
	init_computed();
	init_intersect();
	init_union$1();
	init_ref();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/awaited/index.mjs
var init_awaited = __esmMin((() => {
	init_awaited$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/keyof/keyof-property-keys.mjs
function FromRest$3(types) {
	const result = [];
	for (const L$2 of types) result.push(KeyOfPropertyKeys(L$2));
	return result;
}
function FromIntersect$5(types) {
	const propertyKeysArray = FromRest$3(types);
	const propertyKeys = SetUnionMany(propertyKeysArray);
	return propertyKeys;
}
function FromUnion$5(types) {
	const propertyKeysArray = FromRest$3(types);
	const propertyKeys = SetIntersectMany(propertyKeysArray);
	return propertyKeys;
}
function FromTuple$3(types) {
	return types.map((_$2, indexer) => indexer.toString());
}
function FromArray$4(_$2) {
	return ["[number]"];
}
function FromProperties$14(T$3) {
	return globalThis.Object.getOwnPropertyNames(T$3);
}
function FromPatternProperties(patternProperties) {
	if (!includePatternProperties) return [];
	const patternPropertyKeys = globalThis.Object.getOwnPropertyNames(patternProperties);
	return patternPropertyKeys.map((key) => {
		return key[0] === "^" && key[key.length - 1] === "$" ? key.slice(1, key.length - 1) : key;
	});
}
/** Returns a tuple of PropertyKeys derived from the given TSchema. */
function KeyOfPropertyKeys(type) {
	return IsIntersect(type) ? FromIntersect$5(type.allOf) : IsUnion(type) ? FromUnion$5(type.anyOf) : IsTuple(type) ? FromTuple$3(type.items ?? []) : IsArray$1(type) ? FromArray$4(type.items) : IsObject(type) ? FromProperties$14(type.properties) : IsRecord(type) ? FromPatternProperties(type.patternProperties) : [];
}
/** Returns a regular expression pattern derived from the given TSchema */
function KeyOfPattern(schema) {
	includePatternProperties = true;
	const keys$1 = KeyOfPropertyKeys(schema);
	includePatternProperties = false;
	const pattern = keys$1.map((key) => `(${key})`);
	return `^(${pattern.join("|")})$`;
}
var includePatternProperties;
var init_keyof_property_keys = __esmMin((() => {
	init_sets();
	init_kind();
	includePatternProperties = false;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/keyof/keyof.mjs
function FromComputed$3(target, parameters) {
	return Computed("KeyOf", [Computed(target, parameters)]);
}
function FromRef$2($ref) {
	return Computed("KeyOf", [Ref($ref)]);
}
function KeyOfFromType(type, options) {
	const propertyKeys = KeyOfPropertyKeys(type);
	const propertyKeyTypes = KeyOfPropertyKeysToRest(propertyKeys);
	const result = UnionEvaluated(propertyKeyTypes);
	return CreateType(result, options);
}
function KeyOfPropertyKeysToRest(propertyKeys) {
	return propertyKeys.map((L$2) => L$2 === "[number]" ? Number$1() : Literal(L$2));
}
/** `[Json]` Creates a KeyOf type */
function KeyOf(type, options) {
	return IsComputed(type) ? FromComputed$3(type.target, type.parameters) : IsRef(type) ? FromRef$2(type.$ref) : IsMappedResult(type) ? KeyOfFromMappedResult(type, options) : KeyOfFromType(type, options);
}
var init_keyof$1 = __esmMin((() => {
	init_type$4();
	init_literal();
	init_number();
	init_computed();
	init_ref();
	init_keyof_property_keys();
	init_union$1();
	init_keyof_from_mapped_result();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/keyof/keyof-from-mapped-result.mjs
function FromProperties$13(properties$1, options) {
	const result = {};
	for (const K2 of globalThis.Object.getOwnPropertyNames(properties$1)) result[K2] = KeyOf(properties$1[K2], Clone(options));
	return result;
}
function FromMappedResult$7(mappedResult, options) {
	return FromProperties$13(mappedResult.properties, options);
}
function KeyOfFromMappedResult(mappedResult, options) {
	const properties$1 = FromMappedResult$7(mappedResult, options);
	return MappedResult(properties$1);
}
var init_keyof_from_mapped_result = __esmMin((() => {
	init_mapped();
	init_keyof$1();
	init_value();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/keyof/keyof-property-entries.mjs
/**
* `[Utility]` Resolves an array of keys and schemas from the given schema. This method is faster
* than obtaining the keys and resolving each individually via indexing. This method was written
* accellerate Intersect and Union encoding.
*/
function KeyOfPropertyEntries(schema) {
	const keys$1 = KeyOfPropertyKeys(schema);
	const schemas = IndexFromPropertyKeys(schema, keys$1);
	return keys$1.map((_$2, index) => [keys$1[index], schemas[index]]);
}
var init_keyof_property_entries = __esmMin((() => {
	init_indexed$1();
	init_keyof_property_keys();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/keyof/index.mjs
var init_keyof = __esmMin((() => {
	init_keyof_from_mapped_result();
	init_keyof_property_entries();
	init_keyof_property_keys();
	init_keyof$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/composite/composite.mjs
function CompositeKeys(T$3) {
	const Acc = [];
	for (const L$2 of T$3) Acc.push(...KeyOfPropertyKeys(L$2));
	return SetDistinct(Acc);
}
function FilterNever(T$3) {
	return T$3.filter((L$2) => !IsNever(L$2));
}
function CompositeProperty(T$3, K$1) {
	const Acc = [];
	for (const L$2 of T$3) Acc.push(...IndexFromPropertyKeys(L$2, [K$1]));
	return FilterNever(Acc);
}
function CompositeProperties(T$3, K$1) {
	const Acc = {};
	for (const L$2 of K$1) {
		Acc[L$2] = IntersectEvaluated(CompositeProperty(T$3, L$2));
	}
	return Acc;
}
function Composite(T$3, options) {
	const K$1 = CompositeKeys(T$3);
	const P$2 = CompositeProperties(T$3, K$1);
	const R$1 = Object$1(P$2, options);
	return R$1;
}
var init_composite$1 = __esmMin((() => {
	init_intersect();
	init_indexed();
	init_keyof();
	init_object();
	init_sets();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/composite/index.mjs
var init_composite = __esmMin((() => {
	init_composite$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/date/date.mjs
/** `[JavaScript]` Creates a Date type */
function Date$1(options) {
	return CreateType({
		[Kind]: "Date",
		type: "Date"
	}, options);
}
var init_date$1 = __esmMin((() => {
	init_symbols();
	init_type$4();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/date/index.mjs
var init_date = __esmMin((() => {
	init_date$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/null/null.mjs
/** `[Json]` Creates a Null type */
function Null(options) {
	return CreateType({
		[Kind]: "Null",
		type: "null"
	}, options);
}
var init_null$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/null/index.mjs
var init_null = __esmMin((() => {
	init_null$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/symbol/symbol.mjs
/** `[JavaScript]` Creates a Symbol type */
function Symbol$1(options) {
	return CreateType({
		[Kind]: "Symbol",
		type: "symbol"
	}, options);
}
var init_symbol$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/symbol/index.mjs
var init_symbol = __esmMin((() => {
	init_symbol$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/undefined/undefined.mjs
/** `[JavaScript]` Creates a Undefined type */
function Undefined(options) {
	return CreateType({
		[Kind]: "Undefined",
		type: "undefined"
	}, options);
}
var init_undefined$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/undefined/index.mjs
var init_undefined = __esmMin((() => {
	init_undefined$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/uint8array/uint8array.mjs
/** `[JavaScript]` Creates a Uint8Array type */
function Uint8Array$1(options) {
	return CreateType({
		[Kind]: "Uint8Array",
		type: "Uint8Array"
	}, options);
}
var init_uint8array$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/uint8array/index.mjs
var init_uint8array = __esmMin((() => {
	init_uint8array$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/unknown/unknown.mjs
/** `[Json]` Creates an Unknown type */
function Unknown(options) {
	return CreateType({ [Kind]: "Unknown" }, options);
}
var init_unknown$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/unknown/index.mjs
var init_unknown = __esmMin((() => {
	init_unknown$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/const/const.mjs
function FromArray$3(T$3) {
	return T$3.map((L$2) => FromValue(L$2, false));
}
function FromProperties$12(value) {
	const Acc = {};
	for (const K$1 of globalThis.Object.getOwnPropertyNames(value)) Acc[K$1] = Readonly(FromValue(value[K$1], false));
	return Acc;
}
function ConditionalReadonly(T$3, root) {
	return root === true ? T$3 : Readonly(T$3);
}
function FromValue(value, root) {
	return IsAsyncIterator(value) ? ConditionalReadonly(Any(), root) : IsIterator(value) ? ConditionalReadonly(Any(), root) : IsArray(value) ? Readonly(Tuple(FromArray$3(value))) : IsUint8Array(value) ? Uint8Array$1() : IsDate(value) ? Date$1() : IsObject$1(value) ? ConditionalReadonly(Object$1(FromProperties$12(value)), root) : IsFunction(value) ? ConditionalReadonly(Function$1([], Unknown()), root) : IsUndefined(value) ? Undefined() : IsNull(value) ? Null() : IsSymbol(value) ? Symbol$1() : IsBigInt(value) ? BigInt() : IsNumber$1(value) ? Literal(value) : IsBoolean$1(value) ? Literal(value) : IsString(value) ? Literal(value) : Object$1({});
}
/** `[JavaScript]` Creates a readonly const type from the given value. */
function Const(T$3, options) {
	return CreateType(FromValue(T$3, true), options);
}
var init_const$1 = __esmMin((() => {
	init_any();
	init_bigint();
	init_date();
	init_function();
	init_literal();
	init_null();
	init_object();
	init_symbol();
	init_tuple();
	init_readonly();
	init_undefined();
	init_uint8array();
	init_unknown();
	init_create$1();
	init_value$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/const/index.mjs
var init_const = __esmMin((() => {
	init_const$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/constructor-parameters/constructor-parameters.mjs
/** `[JavaScript]` Extracts the ConstructorParameters from the given Constructor type */
function ConstructorParameters(schema, options) {
	return IsConstructor(schema) ? Tuple(schema.parameters, options) : Never(options);
}
var init_constructor_parameters$1 = __esmMin((() => {
	init_tuple();
	init_never();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/constructor-parameters/index.mjs
var init_constructor_parameters = __esmMin((() => {
	init_constructor_parameters$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/enum/enum.mjs
/** `[Json]` Creates a Enum type */
function Enum(item, options) {
	if (IsUndefined(item)) throw new Error("Enum undefined or empty");
	const values1 = globalThis.Object.getOwnPropertyNames(item).filter((key) => isNaN(key)).map((key) => item[key]);
	const values2 = [...new Set(values1)];
	const anyOf = values2.map((value) => Literal(value));
	return Union(anyOf, {
		...options,
		[Hint]: "Enum"
	});
}
var init_enum$1 = __esmMin((() => {
	init_literal();
	init_symbols();
	init_union$1();
	init_value$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/enum/index.mjs
var init_enum = __esmMin((() => {
	init_enum$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extends/extends-check.mjs
function IntoBooleanResult(result) {
	return result === ExtendsResult.False ? result : ExtendsResult.True;
}
function Throw(message) {
	throw new ExtendsResolverError(message);
}
function IsStructuralRight(right) {
	return IsNever$1(right) || IsIntersect$1(right) || IsUnion$1(right) || IsUnknown(right) || IsAny$1(right);
}
function StructuralRight(left, right) {
	return IsNever$1(right) ? FromNeverRight(left, right) : IsIntersect$1(right) ? FromIntersectRight(left, right) : IsUnion$1(right) ? FromUnionRight(left, right) : IsUnknown(right) ? FromUnknownRight(left, right) : IsAny$1(right) ? FromAnyRight(left, right) : Throw("StructuralRight");
}
function FromAnyRight(left, right) {
	return ExtendsResult.True;
}
function FromAny(left, right) {
	return IsIntersect$1(right) ? FromIntersectRight(left, right) : IsUnion$1(right) && right.anyOf.some((schema) => IsAny$1(schema) || IsUnknown(schema)) ? ExtendsResult.True : IsUnion$1(right) ? ExtendsResult.Union : IsUnknown(right) ? ExtendsResult.True : IsAny$1(right) ? ExtendsResult.True : ExtendsResult.Union;
}
function FromArrayRight(left, right) {
	return IsUnknown(left) ? ExtendsResult.False : IsAny$1(left) ? ExtendsResult.Union : IsNever$1(left) ? ExtendsResult.True : ExtendsResult.False;
}
function FromArray$2(left, right) {
	return IsObject$2(right) && IsObjectArrayLike(right) ? ExtendsResult.True : IsStructuralRight(right) ? StructuralRight(left, right) : !IsArray$2(right) ? ExtendsResult.False : IntoBooleanResult(Visit(left.items, right.items));
}
function FromAsyncIterator$2(left, right) {
	return IsStructuralRight(right) ? StructuralRight(left, right) : !IsAsyncIterator$2(right) ? ExtendsResult.False : IntoBooleanResult(Visit(left.items, right.items));
}
function FromBigInt(left, right) {
	return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsBigInt$2(right) ? ExtendsResult.True : ExtendsResult.False;
}
function FromBooleanRight(left, right) {
	return IsLiteralBoolean(left) ? ExtendsResult.True : IsBoolean$2(left) ? ExtendsResult.True : ExtendsResult.False;
}
function FromBoolean(left, right) {
	return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsBoolean$2(right) ? ExtendsResult.True : ExtendsResult.False;
}
function FromConstructor$2(left, right) {
	return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : !IsConstructor$1(right) ? ExtendsResult.False : left.parameters.length > right.parameters.length ? ExtendsResult.False : !left.parameters.every((schema, index) => IntoBooleanResult(Visit(right.parameters[index], schema)) === ExtendsResult.True) ? ExtendsResult.False : IntoBooleanResult(Visit(left.returns, right.returns));
}
function FromDate(left, right) {
	return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsDate$1(right) ? ExtendsResult.True : ExtendsResult.False;
}
function FromFunction$2(left, right) {
	return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : !IsFunction$2(right) ? ExtendsResult.False : left.parameters.length > right.parameters.length ? ExtendsResult.False : !left.parameters.every((schema, index) => IntoBooleanResult(Visit(right.parameters[index], schema)) === ExtendsResult.True) ? ExtendsResult.False : IntoBooleanResult(Visit(left.returns, right.returns));
}
function FromIntegerRight(left, right) {
	return IsLiteral$1(left) && IsNumber$1(left.const) ? ExtendsResult.True : IsNumber$2(left) || IsInteger$1(left) ? ExtendsResult.True : ExtendsResult.False;
}
function FromInteger(left, right) {
	return IsInteger$1(right) || IsNumber$2(right) ? ExtendsResult.True : IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : ExtendsResult.False;
}
function FromIntersectRight(left, right) {
	return right.allOf.every((schema) => Visit(left, schema) === ExtendsResult.True) ? ExtendsResult.True : ExtendsResult.False;
}
function FromIntersect$4(left, right) {
	return left.allOf.some((schema) => Visit(schema, right) === ExtendsResult.True) ? ExtendsResult.True : ExtendsResult.False;
}
function FromIterator$2(left, right) {
	return IsStructuralRight(right) ? StructuralRight(left, right) : !IsIterator$2(right) ? ExtendsResult.False : IntoBooleanResult(Visit(left.items, right.items));
}
function FromLiteral(left, right) {
	return IsLiteral$1(right) && right.const === left.const ? ExtendsResult.True : IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsString$2(right) ? FromStringRight(left, right) : IsNumber$2(right) ? FromNumberRight(left, right) : IsInteger$1(right) ? FromIntegerRight(left, right) : IsBoolean$2(right) ? FromBooleanRight(left, right) : ExtendsResult.False;
}
function FromNeverRight(left, right) {
	return ExtendsResult.False;
}
function FromNever(left, right) {
	return ExtendsResult.True;
}
function UnwrapTNot(schema) {
	let [current, depth] = [schema, 0];
	while (true) {
		if (!IsNot(current)) break;
		current = current.not;
		depth += 1;
	}
	return depth % 2 === 0 ? current : Unknown();
}
function FromNot(left, right) {
	return IsNot(left) ? Visit(UnwrapTNot(left), right) : IsNot(right) ? Visit(left, UnwrapTNot(right)) : Throw("Invalid fallthrough for Not");
}
function FromNull(left, right) {
	return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsNull$1(right) ? ExtendsResult.True : ExtendsResult.False;
}
function FromNumberRight(left, right) {
	return IsLiteralNumber(left) ? ExtendsResult.True : IsNumber$2(left) || IsInteger$1(left) ? ExtendsResult.True : ExtendsResult.False;
}
function FromNumber(left, right) {
	return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsInteger$1(right) || IsNumber$2(right) ? ExtendsResult.True : ExtendsResult.False;
}
function IsObjectPropertyCount(schema, count) {
	return Object.getOwnPropertyNames(schema.properties).length === count;
}
function IsObjectStringLike(schema) {
	return IsObjectArrayLike(schema);
}
function IsObjectSymbolLike(schema) {
	return IsObjectPropertyCount(schema, 0) || IsObjectPropertyCount(schema, 1) && "description" in schema.properties && IsUnion$1(schema.properties.description) && schema.properties.description.anyOf.length === 2 && (IsString$2(schema.properties.description.anyOf[0]) && IsUndefined$1(schema.properties.description.anyOf[1]) || IsString$2(schema.properties.description.anyOf[1]) && IsUndefined$1(schema.properties.description.anyOf[0]));
}
function IsObjectNumberLike(schema) {
	return IsObjectPropertyCount(schema, 0);
}
function IsObjectBooleanLike(schema) {
	return IsObjectPropertyCount(schema, 0);
}
function IsObjectBigIntLike(schema) {
	return IsObjectPropertyCount(schema, 0);
}
function IsObjectDateLike(schema) {
	return IsObjectPropertyCount(schema, 0);
}
function IsObjectUint8ArrayLike(schema) {
	return IsObjectArrayLike(schema);
}
function IsObjectFunctionLike(schema) {
	const length = Number$1();
	return IsObjectPropertyCount(schema, 0) || IsObjectPropertyCount(schema, 1) && "length" in schema.properties && IntoBooleanResult(Visit(schema.properties["length"], length)) === ExtendsResult.True;
}
function IsObjectConstructorLike(schema) {
	return IsObjectPropertyCount(schema, 0);
}
function IsObjectArrayLike(schema) {
	const length = Number$1();
	return IsObjectPropertyCount(schema, 0) || IsObjectPropertyCount(schema, 1) && "length" in schema.properties && IntoBooleanResult(Visit(schema.properties["length"], length)) === ExtendsResult.True;
}
function IsObjectPromiseLike(schema) {
	const then = Function$1([Any()], Any());
	return IsObjectPropertyCount(schema, 0) || IsObjectPropertyCount(schema, 1) && "then" in schema.properties && IntoBooleanResult(Visit(schema.properties["then"], then)) === ExtendsResult.True;
}
function Property(left, right) {
	return Visit(left, right) === ExtendsResult.False ? ExtendsResult.False : IsOptional$1(left) && !IsOptional$1(right) ? ExtendsResult.False : ExtendsResult.True;
}
function FromObjectRight(left, right) {
	return IsUnknown(left) ? ExtendsResult.False : IsAny$1(left) ? ExtendsResult.Union : IsNever$1(left) || IsLiteralString(left) && IsObjectStringLike(right) || IsLiteralNumber(left) && IsObjectNumberLike(right) || IsLiteralBoolean(left) && IsObjectBooleanLike(right) || IsSymbol$1(left) && IsObjectSymbolLike(right) || IsBigInt$2(left) && IsObjectBigIntLike(right) || IsString$2(left) && IsObjectStringLike(right) || IsSymbol$1(left) && IsObjectSymbolLike(right) || IsNumber$2(left) && IsObjectNumberLike(right) || IsInteger$1(left) && IsObjectNumberLike(right) || IsBoolean$2(left) && IsObjectBooleanLike(right) || IsUint8Array$1(left) && IsObjectUint8ArrayLike(right) || IsDate$1(left) && IsObjectDateLike(right) || IsConstructor$1(left) && IsObjectConstructorLike(right) || IsFunction$2(left) && IsObjectFunctionLike(right) ? ExtendsResult.True : IsRecord$1(left) && IsString$2(RecordKey$1(left)) ? (() => {
		return right[Hint] === "Record" ? ExtendsResult.True : ExtendsResult.False;
	})() : IsRecord$1(left) && IsNumber$2(RecordKey$1(left)) ? (() => {
		return IsObjectPropertyCount(right, 0) ? ExtendsResult.True : ExtendsResult.False;
	})() : ExtendsResult.False;
}
function FromObject$6(left, right) {
	return IsStructuralRight(right) ? StructuralRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : !IsObject$2(right) ? ExtendsResult.False : (() => {
		for (const key of Object.getOwnPropertyNames(right.properties)) {
			if (!(key in left.properties) && !IsOptional$1(right.properties[key])) {
				return ExtendsResult.False;
			}
			if (IsOptional$1(right.properties[key])) {
				return ExtendsResult.True;
			}
			if (Property(left.properties[key], right.properties[key]) === ExtendsResult.False) {
				return ExtendsResult.False;
			}
		}
		return ExtendsResult.True;
	})();
}
function FromPromise$1(left, right) {
	return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) && IsObjectPromiseLike(right) ? ExtendsResult.True : !IsPromise$1(right) ? ExtendsResult.False : IntoBooleanResult(Visit(left.item, right.item));
}
function RecordKey$1(schema) {
	return PatternNumberExact in schema.patternProperties ? Number$1() : PatternStringExact in schema.patternProperties ? String$1() : Throw("Unknown record key pattern");
}
function RecordValue$1(schema) {
	return PatternNumberExact in schema.patternProperties ? schema.patternProperties[PatternNumberExact] : PatternStringExact in schema.patternProperties ? schema.patternProperties[PatternStringExact] : Throw("Unable to get record value schema");
}
function FromRecordRight(left, right) {
	const [Key$1, Value] = [RecordKey$1(right), RecordValue$1(right)];
	return IsLiteralString(left) && IsNumber$2(Key$1) && IntoBooleanResult(Visit(left, Value)) === ExtendsResult.True ? ExtendsResult.True : IsUint8Array$1(left) && IsNumber$2(Key$1) ? Visit(left, Value) : IsString$2(left) && IsNumber$2(Key$1) ? Visit(left, Value) : IsArray$2(left) && IsNumber$2(Key$1) ? Visit(left, Value) : IsObject$2(left) ? (() => {
		for (const key of Object.getOwnPropertyNames(left.properties)) {
			if (Property(Value, left.properties[key]) === ExtendsResult.False) {
				return ExtendsResult.False;
			}
		}
		return ExtendsResult.True;
	})() : ExtendsResult.False;
}
function FromRecord$2(left, right) {
	return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : !IsRecord$1(right) ? ExtendsResult.False : Visit(RecordValue$1(left), RecordValue$1(right));
}
function FromRegExp(left, right) {
	const L$2 = IsRegExp$1(left) ? String$1() : left;
	const R$1 = IsRegExp$1(right) ? String$1() : right;
	return Visit(L$2, R$1);
}
function FromStringRight(left, right) {
	return IsLiteral$1(left) && IsString(left.const) ? ExtendsResult.True : IsString$2(left) ? ExtendsResult.True : ExtendsResult.False;
}
function FromString(left, right) {
	return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsString$2(right) ? ExtendsResult.True : ExtendsResult.False;
}
function FromSymbol(left, right) {
	return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsSymbol$1(right) ? ExtendsResult.True : ExtendsResult.False;
}
function FromTemplateLiteral$1(left, right) {
	return IsTemplateLiteral$1(left) ? Visit(TemplateLiteralToUnion(left), right) : IsTemplateLiteral$1(right) ? Visit(left, TemplateLiteralToUnion(right)) : Throw("Invalid fallthrough for TemplateLiteral");
}
function IsArrayOfTuple(left, right) {
	return IsArray$2(right) && left.items !== undefined && left.items.every((schema) => Visit(schema, right.items) === ExtendsResult.True);
}
function FromTupleRight(left, right) {
	return IsNever$1(left) ? ExtendsResult.True : IsUnknown(left) ? ExtendsResult.False : IsAny$1(left) ? ExtendsResult.Union : ExtendsResult.False;
}
function FromTuple$2(left, right) {
	return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) && IsObjectArrayLike(right) ? ExtendsResult.True : IsArray$2(right) && IsArrayOfTuple(left, right) ? ExtendsResult.True : !IsTuple$1(right) ? ExtendsResult.False : IsUndefined(left.items) && !IsUndefined(right.items) || !IsUndefined(left.items) && IsUndefined(right.items) ? ExtendsResult.False : IsUndefined(left.items) && !IsUndefined(right.items) ? ExtendsResult.True : left.items.every((schema, index) => Visit(schema, right.items[index]) === ExtendsResult.True) ? ExtendsResult.True : ExtendsResult.False;
}
function FromUint8Array(left, right) {
	return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsUint8Array$1(right) ? ExtendsResult.True : ExtendsResult.False;
}
function FromUndefined(left, right) {
	return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsVoid(right) ? FromVoidRight(left, right) : IsUndefined$1(right) ? ExtendsResult.True : ExtendsResult.False;
}
function FromUnionRight(left, right) {
	return right.anyOf.some((schema) => Visit(left, schema) === ExtendsResult.True) ? ExtendsResult.True : ExtendsResult.False;
}
function FromUnion$4(left, right) {
	return left.anyOf.every((schema) => Visit(schema, right) === ExtendsResult.True) ? ExtendsResult.True : ExtendsResult.False;
}
function FromUnknownRight(left, right) {
	return ExtendsResult.True;
}
function FromUnknown(left, right) {
	return IsNever$1(right) ? FromNeverRight(left, right) : IsIntersect$1(right) ? FromIntersectRight(left, right) : IsUnion$1(right) ? FromUnionRight(left, right) : IsAny$1(right) ? FromAnyRight(left, right) : IsString$2(right) ? FromStringRight(left, right) : IsNumber$2(right) ? FromNumberRight(left, right) : IsInteger$1(right) ? FromIntegerRight(left, right) : IsBoolean$2(right) ? FromBooleanRight(left, right) : IsArray$2(right) ? FromArrayRight(left, right) : IsTuple$1(right) ? FromTupleRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsUnknown(right) ? ExtendsResult.True : ExtendsResult.False;
}
function FromVoidRight(left, right) {
	return IsUndefined$1(left) ? ExtendsResult.True : IsUndefined$1(left) ? ExtendsResult.True : ExtendsResult.False;
}
function FromVoid(left, right) {
	return IsIntersect$1(right) ? FromIntersectRight(left, right) : IsUnion$1(right) ? FromUnionRight(left, right) : IsUnknown(right) ? FromUnknownRight(left, right) : IsAny$1(right) ? FromAnyRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsVoid(right) ? ExtendsResult.True : ExtendsResult.False;
}
function Visit(left, right) {
	return IsTemplateLiteral$1(left) || IsTemplateLiteral$1(right) ? FromTemplateLiteral$1(left, right) : IsRegExp$1(left) || IsRegExp$1(right) ? FromRegExp(left, right) : IsNot(left) || IsNot(right) ? FromNot(left, right) : IsAny$1(left) ? FromAny(left, right) : IsArray$2(left) ? FromArray$2(left, right) : IsBigInt$2(left) ? FromBigInt(left, right) : IsBoolean$2(left) ? FromBoolean(left, right) : IsAsyncIterator$2(left) ? FromAsyncIterator$2(left, right) : IsConstructor$1(left) ? FromConstructor$2(left, right) : IsDate$1(left) ? FromDate(left, right) : IsFunction$2(left) ? FromFunction$2(left, right) : IsInteger$1(left) ? FromInteger(left, right) : IsIntersect$1(left) ? FromIntersect$4(left, right) : IsIterator$2(left) ? FromIterator$2(left, right) : IsLiteral$1(left) ? FromLiteral(left, right) : IsNever$1(left) ? FromNever(left, right) : IsNull$1(left) ? FromNull(left, right) : IsNumber$2(left) ? FromNumber(left, right) : IsObject$2(left) ? FromObject$6(left, right) : IsRecord$1(left) ? FromRecord$2(left, right) : IsString$2(left) ? FromString(left, right) : IsSymbol$1(left) ? FromSymbol(left, right) : IsTuple$1(left) ? FromTuple$2(left, right) : IsPromise$1(left) ? FromPromise$1(left, right) : IsUint8Array$1(left) ? FromUint8Array(left, right) : IsUndefined$1(left) ? FromUndefined(left, right) : IsUnion$1(left) ? FromUnion$4(left, right) : IsUnknown(left) ? FromUnknown(left, right) : IsVoid(left) ? FromVoid(left, right) : Throw(`Unknown left type operand '${left[Kind]}'`);
}
function ExtendsCheck(left, right) {
	return Visit(left, right);
}
var ExtendsResolverError, ExtendsResult;
var init_extends_check = __esmMin((() => {
	init_any();
	init_function();
	init_number();
	init_string$1();
	init_unknown();
	init_template_literal();
	init_patterns();
	init_symbols();
	init_error();
	init_guard();
	ExtendsResolverError = class extends TypeBoxError {};
	;
	(function(ExtendsResult$1) {
		ExtendsResult$1[ExtendsResult$1["Union"] = 0] = "Union";
		ExtendsResult$1[ExtendsResult$1["True"] = 1] = "True";
		ExtendsResult$1[ExtendsResult$1["False"] = 2] = "False";
	})(ExtendsResult || (ExtendsResult = {}));
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-result.mjs
function FromProperties$11(P$2, Right, True, False, options) {
	const Acc = {};
	for (const K2 of globalThis.Object.getOwnPropertyNames(P$2)) Acc[K2] = Extends(P$2[K2], Right, True, False, Clone(options));
	return Acc;
}
function FromMappedResult$6(Left, Right, True, False, options) {
	return FromProperties$11(Left.properties, Right, True, False, options);
}
function ExtendsFromMappedResult(Left, Right, True, False, options) {
	const P$2 = FromMappedResult$6(Left, Right, True, False, options);
	return MappedResult(P$2);
}
var init_extends_from_mapped_result = __esmMin((() => {
	init_mapped();
	init_extends$1();
	init_value();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extends/extends.mjs
function ExtendsResolve(left, right, trueType, falseType) {
	const R$1 = ExtendsCheck(left, right);
	return R$1 === ExtendsResult.Union ? Union([trueType, falseType]) : R$1 === ExtendsResult.True ? trueType : falseType;
}
/** `[Json]` Creates a Conditional type */
function Extends(L$2, R$1, T$3, F$1, options) {
	return IsMappedResult(L$2) ? ExtendsFromMappedResult(L$2, R$1, T$3, F$1, options) : IsMappedKey(L$2) ? CreateType(ExtendsFromMappedKey(L$2, R$1, T$3, F$1, options)) : CreateType(ExtendsResolve(L$2, R$1, T$3, F$1), options);
}
var init_extends$1 = __esmMin((() => {
	init_type$4();
	init_union$1();
	init_extends_check();
	init_extends_from_mapped_key();
	init_extends_from_mapped_result();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-key.mjs
function FromPropertyKey$2(K$1, U$1, L$2, R$1, options) {
	return { [K$1]: Extends(Literal(K$1), U$1, L$2, R$1, Clone(options)) };
}
function FromPropertyKeys$2(K$1, U$1, L$2, R$1, options) {
	return K$1.reduce((Acc, LK) => {
		return {
			...Acc,
			...FromPropertyKey$2(LK, U$1, L$2, R$1, options)
		};
	}, {});
}
function FromMappedKey$2(K$1, U$1, L$2, R$1, options) {
	return FromPropertyKeys$2(K$1.keys, U$1, L$2, R$1, options);
}
function ExtendsFromMappedKey(T$3, U$1, L$2, R$1, options) {
	const P$2 = FromMappedKey$2(T$3, U$1, L$2, R$1, options);
	return MappedResult(P$2);
}
var init_extends_from_mapped_key = __esmMin((() => {
	init_mapped();
	init_literal();
	init_extends$1();
	init_value();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extends/extends-undefined.mjs
/** Fast undefined check used for properties of type undefined */
function Intersect$1(schema) {
	return schema.allOf.every((schema$1) => ExtendsUndefinedCheck(schema$1));
}
function Union$1(schema) {
	return schema.anyOf.some((schema$1) => ExtendsUndefinedCheck(schema$1));
}
function Not$1(schema) {
	return !ExtendsUndefinedCheck(schema.not);
}
/** Fast undefined check used for properties of type undefined */
function ExtendsUndefinedCheck(schema) {
	return schema[Kind] === "Intersect" ? Intersect$1(schema) : schema[Kind] === "Union" ? Union$1(schema) : schema[Kind] === "Not" ? Not$1(schema) : schema[Kind] === "Undefined" ? true : false;
}
var init_extends_undefined = __esmMin((() => {
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extends/index.mjs
var init_extends = __esmMin((() => {
	init_extends_check();
	init_extends_from_mapped_key();
	init_extends_from_mapped_result();
	init_extends_undefined();
	init_extends$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/exclude/exclude-from-template-literal.mjs
function ExcludeFromTemplateLiteral(L$2, R$1) {
	return Exclude(TemplateLiteralToUnion(L$2), R$1);
}
var init_exclude_from_template_literal = __esmMin((() => {
	init_exclude$1();
	init_template_literal();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/exclude/exclude.mjs
function ExcludeRest(L$2, R$1) {
	const excluded = L$2.filter((inner$1) => ExtendsCheck(inner$1, R$1) === ExtendsResult.False);
	return excluded.length === 1 ? excluded[0] : Union(excluded);
}
/** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */
function Exclude(L$2, R$1, options = {}) {
	if (IsTemplateLiteral(L$2)) return CreateType(ExcludeFromTemplateLiteral(L$2, R$1), options);
	if (IsMappedResult(L$2)) return CreateType(ExcludeFromMappedResult(L$2, R$1), options);
	return CreateType(IsUnion(L$2) ? ExcludeRest(L$2.anyOf, R$1) : ExtendsCheck(L$2, R$1) !== ExtendsResult.False ? Never() : L$2, options);
}
var init_exclude$1 = __esmMin((() => {
	init_type$4();
	init_union$1();
	init_never();
	init_extends();
	init_exclude_from_mapped_result();
	init_exclude_from_template_literal();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/exclude/exclude-from-mapped-result.mjs
function FromProperties$10(P$2, U$1) {
	const Acc = {};
	for (const K2 of globalThis.Object.getOwnPropertyNames(P$2)) Acc[K2] = Exclude(P$2[K2], U$1);
	return Acc;
}
function FromMappedResult$5(R$1, T$3) {
	return FromProperties$10(R$1.properties, T$3);
}
function ExcludeFromMappedResult(R$1, T$3) {
	const P$2 = FromMappedResult$5(R$1, T$3);
	return MappedResult(P$2);
}
var init_exclude_from_mapped_result = __esmMin((() => {
	init_mapped();
	init_exclude$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/exclude/index.mjs
var init_exclude = __esmMin((() => {
	init_exclude_from_mapped_result();
	init_exclude_from_template_literal();
	init_exclude$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extract/extract-from-template-literal.mjs
function ExtractFromTemplateLiteral(L$2, R$1) {
	return Extract(TemplateLiteralToUnion(L$2), R$1);
}
var init_extract_from_template_literal = __esmMin((() => {
	init_extract$1();
	init_template_literal();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extract/extract.mjs
function ExtractRest(L$2, R$1) {
	const extracted = L$2.filter((inner$1) => ExtendsCheck(inner$1, R$1) !== ExtendsResult.False);
	return extracted.length === 1 ? extracted[0] : Union(extracted);
}
/** `[Json]` Constructs a type by extracting from type all union members that are assignable to union */
function Extract(L$2, R$1, options) {
	if (IsTemplateLiteral(L$2)) return CreateType(ExtractFromTemplateLiteral(L$2, R$1), options);
	if (IsMappedResult(L$2)) return CreateType(ExtractFromMappedResult(L$2, R$1), options);
	return CreateType(IsUnion(L$2) ? ExtractRest(L$2.anyOf, R$1) : ExtendsCheck(L$2, R$1) !== ExtendsResult.False ? L$2 : Never(), options);
}
var init_extract$1 = __esmMin((() => {
	init_type$4();
	init_union$1();
	init_never();
	init_extends();
	init_extract_from_mapped_result();
	init_extract_from_template_literal();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extract/extract-from-mapped-result.mjs
function FromProperties$9(P$2, T$3) {
	const Acc = {};
	for (const K2 of globalThis.Object.getOwnPropertyNames(P$2)) Acc[K2] = Extract(P$2[K2], T$3);
	return Acc;
}
function FromMappedResult$4(R$1, T$3) {
	return FromProperties$9(R$1.properties, T$3);
}
function ExtractFromMappedResult(R$1, T$3) {
	const P$2 = FromMappedResult$4(R$1, T$3);
	return MappedResult(P$2);
}
var init_extract_from_mapped_result = __esmMin((() => {
	init_mapped();
	init_extract$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extract/index.mjs
var init_extract = __esmMin((() => {
	init_extract_from_mapped_result();
	init_extract_from_template_literal();
	init_extract$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/instance-type/instance-type.mjs
/** `[JavaScript]` Extracts the InstanceType from the given Constructor type */
function InstanceType(schema, options) {
	return IsConstructor(schema) ? CreateType(schema.returns, options) : Never(options);
}
var init_instance_type$1 = __esmMin((() => {
	init_type$4();
	init_never();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/instance-type/index.mjs
var init_instance_type = __esmMin((() => {
	init_instance_type$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/readonly-optional/readonly-optional.mjs
/** `[Json]` Creates a Readonly and Optional property */
function ReadonlyOptional(schema) {
	return Readonly(Optional(schema));
}
var init_readonly_optional$1 = __esmMin((() => {
	init_readonly();
	init_optional();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/readonly-optional/index.mjs
var init_readonly_optional = __esmMin((() => {
	init_readonly_optional$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/record/record.mjs
function RecordCreateFromPattern(pattern, T$3, options) {
	return CreateType({
		[Kind]: "Record",
		type: "object",
		patternProperties: { [pattern]: T$3 }
	}, options);
}
function RecordCreateFromKeys(K$1, T$3, options) {
	const result = {};
	for (const K2 of K$1) result[K2] = T$3;
	return Object$1(result, {
		...options,
		[Hint]: "Record"
	});
}
function FromTemplateLiteralKey(K$1, T$3, options) {
	return IsTemplateLiteralFinite(K$1) ? RecordCreateFromKeys(IndexPropertyKeys(K$1), T$3, options) : RecordCreateFromPattern(K$1.pattern, T$3, options);
}
function FromUnionKey(key, type, options) {
	return RecordCreateFromKeys(IndexPropertyKeys(Union(key)), type, options);
}
function FromLiteralKey(key, type, options) {
	return RecordCreateFromKeys([key.toString()], type, options);
}
function FromRegExpKey(key, type, options) {
	return RecordCreateFromPattern(key.source, type, options);
}
function FromStringKey(key, type, options) {
	const pattern = IsUndefined(key.pattern) ? PatternStringExact : key.pattern;
	return RecordCreateFromPattern(pattern, type, options);
}
function FromAnyKey(_$2, type, options) {
	return RecordCreateFromPattern(PatternStringExact, type, options);
}
function FromNeverKey(_key, type, options) {
	return RecordCreateFromPattern(PatternNeverExact, type, options);
}
function FromBooleanKey(_key, type, options) {
	return Object$1({
		true: type,
		false: type
	}, options);
}
function FromIntegerKey(_key, type, options) {
	return RecordCreateFromPattern(PatternNumberExact, type, options);
}
function FromNumberKey(_$2, type, options) {
	return RecordCreateFromPattern(PatternNumberExact, type, options);
}
/** `[Json]` Creates a Record type */
function Record(key, type, options = {}) {
	return IsUnion(key) ? FromUnionKey(key.anyOf, type, options) : IsTemplateLiteral(key) ? FromTemplateLiteralKey(key, type, options) : IsLiteral(key) ? FromLiteralKey(key.const, type, options) : IsBoolean(key) ? FromBooleanKey(key, type, options) : IsInteger(key) ? FromIntegerKey(key, type, options) : IsNumber(key) ? FromNumberKey(key, type, options) : IsRegExp(key) ? FromRegExpKey(key, type, options) : IsString$1(key) ? FromStringKey(key, type, options) : IsAny(key) ? FromAnyKey(key, type, options) : IsNever(key) ? FromNeverKey(key, type, options) : Never(options);
}
/** Gets the Records Pattern */
function RecordPattern(record) {
	return globalThis.Object.getOwnPropertyNames(record.patternProperties)[0];
}
/** Gets the Records Key Type */
function RecordKey(type) {
	const pattern = RecordPattern(type);
	return pattern === PatternStringExact ? String$1() : pattern === PatternNumberExact ? Number$1() : String$1({ pattern });
}
/** Gets a Record Value Type */
function RecordValue(type) {
	return type.patternProperties[RecordPattern(type)];
}
var init_record$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
	init_never();
	init_number();
	init_object();
	init_string$1();
	init_union$1();
	init_template_literal();
	init_patterns();
	init_indexed();
	init_value$1();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/record/index.mjs
var init_record = __esmMin((() => {
	init_record$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/instantiate/instantiate.mjs
function FromConstructor$1(args, type) {
	type.parameters = FromTypes$1(args, type.parameters);
	type.returns = FromType$1(args, type.returns);
	return type;
}
function FromFunction$1(args, type) {
	type.parameters = FromTypes$1(args, type.parameters);
	type.returns = FromType$1(args, type.returns);
	return type;
}
function FromIntersect$3(args, type) {
	type.allOf = FromTypes$1(args, type.allOf);
	return type;
}
function FromUnion$3(args, type) {
	type.anyOf = FromTypes$1(args, type.anyOf);
	return type;
}
function FromTuple$1(args, type) {
	if (IsUndefined(type.items)) return type;
	type.items = FromTypes$1(args, type.items);
	return type;
}
function FromArray$1(args, type) {
	type.items = FromType$1(args, type.items);
	return type;
}
function FromAsyncIterator$1(args, type) {
	type.items = FromType$1(args, type.items);
	return type;
}
function FromIterator$1(args, type) {
	type.items = FromType$1(args, type.items);
	return type;
}
function FromPromise(args, type) {
	type.item = FromType$1(args, type.item);
	return type;
}
function FromObject$5(args, type) {
	const mappedProperties = FromProperties$8(args, type.properties);
	return {
		...type,
		...Object$1(mappedProperties)
	};
}
function FromRecord$1(args, type) {
	const mappedKey = FromType$1(args, RecordKey(type));
	const mappedValue = FromType$1(args, RecordValue(type));
	const result = Record(mappedKey, mappedValue);
	return {
		...type,
		...result
	};
}
function FromArgument(args, argument) {
	return argument.index in args ? args[argument.index] : Unknown();
}
function FromProperty$1(args, type) {
	const isReadonly = IsReadonly(type);
	const isOptional = IsOptional(type);
	const mapped = FromType$1(args, type);
	return isReadonly && isOptional ? ReadonlyOptional(mapped) : isReadonly && !isOptional ? Readonly(mapped) : !isReadonly && isOptional ? Optional(mapped) : mapped;
}
function FromProperties$8(args, properties$1) {
	return globalThis.Object.getOwnPropertyNames(properties$1).reduce((result, key) => {
		return {
			...result,
			[key]: FromProperty$1(args, properties$1[key])
		};
	}, {});
}
function FromTypes$1(args, types) {
	return types.map((type) => FromType$1(args, type));
}
function FromType$1(args, type) {
	return IsConstructor(type) ? FromConstructor$1(args, type) : IsFunction$1(type) ? FromFunction$1(args, type) : IsIntersect(type) ? FromIntersect$3(args, type) : IsUnion(type) ? FromUnion$3(args, type) : IsTuple(type) ? FromTuple$1(args, type) : IsArray$1(type) ? FromArray$1(args, type) : IsAsyncIterator$1(type) ? FromAsyncIterator$1(args, type) : IsIterator$1(type) ? FromIterator$1(args, type) : IsPromise(type) ? FromPromise(args, type) : IsObject(type) ? FromObject$5(args, type) : IsRecord(type) ? FromRecord$1(args, type) : IsArgument$1(type) ? FromArgument(args, type) : type;
}
/** `[JavaScript]` Instantiates a type with the given parameters */
function Instantiate(type, args) {
	return FromType$1(args, CloneType(type));
}
var init_instantiate$1 = __esmMin((() => {
	init_type$5();
	init_unknown();
	init_readonly_optional();
	init_readonly();
	init_optional();
	init_object();
	init_record();
	init_value$1();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/instantiate/index.mjs
var init_instantiate = __esmMin((() => {
	init_instantiate$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/integer/integer.mjs
/** `[Json]` Creates an Integer type */
function Integer(options) {
	return CreateType({
		[Kind]: "Integer",
		type: "integer"
	}, options);
}
var init_integer$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/integer/index.mjs
var init_integer = __esmMin((() => {
	init_integer$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intrinsic/intrinsic-from-mapped-key.mjs
function MappedIntrinsicPropertyKey(K$1, M$3, options) {
	return { [K$1]: Intrinsic(Literal(K$1), M$3, Clone(options)) };
}
function MappedIntrinsicPropertyKeys(K$1, M$3, options) {
	const result = K$1.reduce((Acc, L$2) => {
		return {
			...Acc,
			...MappedIntrinsicPropertyKey(L$2, M$3, options)
		};
	}, {});
	return result;
}
function MappedIntrinsicProperties(T$3, M$3, options) {
	return MappedIntrinsicPropertyKeys(T$3["keys"], M$3, options);
}
function IntrinsicFromMappedKey(T$3, M$3, options) {
	const P$2 = MappedIntrinsicProperties(T$3, M$3, options);
	return MappedResult(P$2);
}
var init_intrinsic_from_mapped_key = __esmMin((() => {
	init_mapped();
	init_intrinsic$1();
	init_literal();
	init_value();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intrinsic/intrinsic.mjs
function ApplyUncapitalize(value) {
	const [first, rest] = [value.slice(0, 1), value.slice(1)];
	return [first.toLowerCase(), rest].join("");
}
function ApplyCapitalize(value) {
	const [first, rest] = [value.slice(0, 1), value.slice(1)];
	return [first.toUpperCase(), rest].join("");
}
function ApplyUppercase(value) {
	return value.toUpperCase();
}
function ApplyLowercase(value) {
	return value.toLowerCase();
}
function FromTemplateLiteral(schema, mode, options) {
	const expression = TemplateLiteralParseExact(schema.pattern);
	const finite = IsTemplateLiteralExpressionFinite(expression);
	if (!finite) return {
		...schema,
		pattern: FromLiteralValue(schema.pattern, mode)
	};
	const strings = [...TemplateLiteralExpressionGenerate(expression)];
	const literals$1 = strings.map((value) => Literal(value));
	const mapped = FromRest$2(literals$1, mode);
	const union = Union(mapped);
	return TemplateLiteral([union], options);
}
function FromLiteralValue(value, mode) {
	return typeof value === "string" ? mode === "Uncapitalize" ? ApplyUncapitalize(value) : mode === "Capitalize" ? ApplyCapitalize(value) : mode === "Uppercase" ? ApplyUppercase(value) : mode === "Lowercase" ? ApplyLowercase(value) : value : value.toString();
}
function FromRest$2(T$3, M$3) {
	return T$3.map((L$2) => Intrinsic(L$2, M$3));
}
/** Applies an intrinsic string manipulation to the given type. */
function Intrinsic(schema, mode, options = {}) {
	return IsMappedKey(schema) ? IntrinsicFromMappedKey(schema, mode, options) : IsTemplateLiteral(schema) ? FromTemplateLiteral(schema, mode, options) : IsUnion(schema) ? Union(FromRest$2(schema.anyOf, mode), options) : IsLiteral(schema) ? Literal(FromLiteralValue(schema.const, mode), options) : CreateType(schema, options);
}
var init_intrinsic$1 = __esmMin((() => {
	init_type$4();
	init_template_literal();
	init_intrinsic_from_mapped_key();
	init_literal();
	init_union$1();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intrinsic/capitalize.mjs
/** `[Json]` Intrinsic function to Capitalize LiteralString types */
function Capitalize(T$3, options = {}) {
	return Intrinsic(T$3, "Capitalize", options);
}
var init_capitalize = __esmMin((() => {
	init_intrinsic$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intrinsic/lowercase.mjs
/** `[Json]` Intrinsic function to Lowercase LiteralString types */
function Lowercase(T$3, options = {}) {
	return Intrinsic(T$3, "Lowercase", options);
}
var init_lowercase = __esmMin((() => {
	init_intrinsic$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intrinsic/uncapitalize.mjs
/** `[Json]` Intrinsic function to Uncapitalize LiteralString types */
function Uncapitalize(T$3, options = {}) {
	return Intrinsic(T$3, "Uncapitalize", options);
}
var init_uncapitalize = __esmMin((() => {
	init_intrinsic$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intrinsic/uppercase.mjs
/** `[Json]` Intrinsic function to Uppercase LiteralString types */
function Uppercase(T$3, options = {}) {
	return Intrinsic(T$3, "Uppercase", options);
}
var init_uppercase = __esmMin((() => {
	init_intrinsic$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intrinsic/index.mjs
var init_intrinsic = __esmMin((() => {
	init_capitalize();
	init_intrinsic_from_mapped_key();
	init_intrinsic$1();
	init_lowercase();
	init_uncapitalize();
	init_uppercase();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-result.mjs
function FromProperties$7(properties$1, propertyKeys, options) {
	const result = {};
	for (const K2 of globalThis.Object.getOwnPropertyNames(properties$1)) result[K2] = Omit(properties$1[K2], propertyKeys, Clone(options));
	return result;
}
function FromMappedResult$3(mappedResult, propertyKeys, options) {
	return FromProperties$7(mappedResult.properties, propertyKeys, options);
}
function OmitFromMappedResult(mappedResult, propertyKeys, options) {
	const properties$1 = FromMappedResult$3(mappedResult, propertyKeys, options);
	return MappedResult(properties$1);
}
var init_omit_from_mapped_result = __esmMin((() => {
	init_mapped();
	init_omit$1();
	init_value();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/omit/omit.mjs
function FromIntersect$2(types, propertyKeys) {
	return types.map((type) => OmitResolve(type, propertyKeys));
}
function FromUnion$2(types, propertyKeys) {
	return types.map((type) => OmitResolve(type, propertyKeys));
}
function FromProperty(properties$1, key) {
	const { [key]: _$2, ...R$1 } = properties$1;
	return R$1;
}
function FromProperties$6(properties$1, propertyKeys) {
	return propertyKeys.reduce((T$3, K2) => FromProperty(T$3, K2), properties$1);
}
function FromObject$4(properties$1, propertyKeys) {
	const options = Discard(properties$1, [
		TransformKind,
		"$id",
		"required",
		"properties"
	]);
	const omittedProperties = FromProperties$6(properties$1["properties"], propertyKeys);
	return Object$1(omittedProperties, options);
}
function UnionFromPropertyKeys$1(propertyKeys) {
	const result = propertyKeys.reduce((result$1, key) => IsLiteralValue(key) ? [...result$1, Literal(key)] : result$1, []);
	return Union(result);
}
function OmitResolve(properties$1, propertyKeys) {
	return IsIntersect(properties$1) ? Intersect(FromIntersect$2(properties$1.allOf, propertyKeys)) : IsUnion(properties$1) ? Union(FromUnion$2(properties$1.anyOf, propertyKeys)) : IsObject(properties$1) ? FromObject$4(properties$1, propertyKeys) : Object$1({});
}
/** `[Json]` Constructs a type whose keys are picked from the given type */
function Omit(type, key, options) {
	const typeKey = IsArray(key) ? UnionFromPropertyKeys$1(key) : key;
	const propertyKeys = IsSchema(key) ? IndexPropertyKeys(key) : key;
	const isTypeRef = IsRef(type);
	const isKeyRef = IsRef(key);
	return IsMappedResult(type) ? OmitFromMappedResult(type, propertyKeys, options) : IsMappedKey(key) ? OmitFromMappedKey(type, key, options) : isTypeRef && isKeyRef ? Computed("Omit", [type, typeKey], options) : !isTypeRef && isKeyRef ? Computed("Omit", [type, typeKey], options) : isTypeRef && !isKeyRef ? Computed("Omit", [type, typeKey], options) : CreateType({
		...OmitResolve(type, propertyKeys),
		...options
	});
}
var init_omit$1 = __esmMin((() => {
	init_type$4();
	init_discard$1();
	init_symbols$1();
	init_computed();
	init_literal();
	init_indexed();
	init_intersect();
	init_union$1();
	init_object();
	init_omit_from_mapped_key();
	init_omit_from_mapped_result();
	init_kind();
	init_value$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-key.mjs
function FromPropertyKey$1(type, key, options) {
	return { [key]: Omit(type, [key], Clone(options)) };
}
function FromPropertyKeys$1(type, propertyKeys, options) {
	return propertyKeys.reduce((Acc, LK) => {
		return {
			...Acc,
			...FromPropertyKey$1(type, LK, options)
		};
	}, {});
}
function FromMappedKey$1(type, mappedKey, options) {
	return FromPropertyKeys$1(type, mappedKey.keys, options);
}
function OmitFromMappedKey(type, mappedKey, options) {
	const properties$1 = FromMappedKey$1(type, mappedKey, options);
	return MappedResult(properties$1);
}
var init_omit_from_mapped_key = __esmMin((() => {
	init_mapped();
	init_omit$1();
	init_value();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/omit/index.mjs
var init_omit = __esmMin((() => {
	init_omit_from_mapped_key();
	init_omit_from_mapped_result();
	init_omit$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-result.mjs
function FromProperties$5(properties$1, propertyKeys, options) {
	const result = {};
	for (const K2 of globalThis.Object.getOwnPropertyNames(properties$1)) result[K2] = Pick(properties$1[K2], propertyKeys, Clone(options));
	return result;
}
function FromMappedResult$2(mappedResult, propertyKeys, options) {
	return FromProperties$5(mappedResult.properties, propertyKeys, options);
}
function PickFromMappedResult(mappedResult, propertyKeys, options) {
	const properties$1 = FromMappedResult$2(mappedResult, propertyKeys, options);
	return MappedResult(properties$1);
}
var init_pick_from_mapped_result = __esmMin((() => {
	init_mapped();
	init_pick$1();
	init_value();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/pick/pick.mjs
function FromIntersect$1(types, propertyKeys) {
	return types.map((type) => PickResolve(type, propertyKeys));
}
function FromUnion$1(types, propertyKeys) {
	return types.map((type) => PickResolve(type, propertyKeys));
}
function FromProperties$4(properties$1, propertyKeys) {
	const result = {};
	for (const K2 of propertyKeys) if (K2 in properties$1) result[K2] = properties$1[K2];
	return result;
}
function FromObject$3(T$3, K$1) {
	const options = Discard(T$3, [
		TransformKind,
		"$id",
		"required",
		"properties"
	]);
	const properties$1 = FromProperties$4(T$3["properties"], K$1);
	return Object$1(properties$1, options);
}
function UnionFromPropertyKeys(propertyKeys) {
	const result = propertyKeys.reduce((result$1, key) => IsLiteralValue(key) ? [...result$1, Literal(key)] : result$1, []);
	return Union(result);
}
function PickResolve(properties$1, propertyKeys) {
	return IsIntersect(properties$1) ? Intersect(FromIntersect$1(properties$1.allOf, propertyKeys)) : IsUnion(properties$1) ? Union(FromUnion$1(properties$1.anyOf, propertyKeys)) : IsObject(properties$1) ? FromObject$3(properties$1, propertyKeys) : Object$1({});
}
/** `[Json]` Constructs a type whose keys are picked from the given type */
function Pick(type, key, options) {
	const typeKey = IsArray(key) ? UnionFromPropertyKeys(key) : key;
	const propertyKeys = IsSchema(key) ? IndexPropertyKeys(key) : key;
	const isTypeRef = IsRef(type);
	const isKeyRef = IsRef(key);
	return IsMappedResult(type) ? PickFromMappedResult(type, propertyKeys, options) : IsMappedKey(key) ? PickFromMappedKey(type, key, options) : isTypeRef && isKeyRef ? Computed("Pick", [type, typeKey], options) : !isTypeRef && isKeyRef ? Computed("Pick", [type, typeKey], options) : isTypeRef && !isKeyRef ? Computed("Pick", [type, typeKey], options) : CreateType({
		...PickResolve(type, propertyKeys),
		...options
	});
}
var init_pick$1 = __esmMin((() => {
	init_type$4();
	init_discard$1();
	init_computed();
	init_intersect();
	init_literal();
	init_object();
	init_union$1();
	init_indexed();
	init_symbols$1();
	init_kind();
	init_value$1();
	init_pick_from_mapped_key();
	init_pick_from_mapped_result();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-key.mjs
function FromPropertyKey(type, key, options) {
	return { [key]: Pick(type, [key], Clone(options)) };
}
function FromPropertyKeys(type, propertyKeys, options) {
	return propertyKeys.reduce((result, leftKey) => {
		return {
			...result,
			...FromPropertyKey(type, leftKey, options)
		};
	}, {});
}
function FromMappedKey(type, mappedKey, options) {
	return FromPropertyKeys(type, mappedKey.keys, options);
}
function PickFromMappedKey(type, mappedKey, options) {
	const properties$1 = FromMappedKey(type, mappedKey, options);
	return MappedResult(properties$1);
}
var init_pick_from_mapped_key = __esmMin((() => {
	init_mapped();
	init_pick$1();
	init_value();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/pick/index.mjs
var init_pick = __esmMin((() => {
	init_pick_from_mapped_key();
	init_pick_from_mapped_result();
	init_pick$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/partial/partial.mjs
function FromComputed$2(target, parameters) {
	return Computed("Partial", [Computed(target, parameters)]);
}
function FromRef$1($ref) {
	return Computed("Partial", [Ref($ref)]);
}
function FromProperties$3(properties$1) {
	const partialProperties = {};
	for (const K$1 of globalThis.Object.getOwnPropertyNames(properties$1)) partialProperties[K$1] = Optional(properties$1[K$1]);
	return partialProperties;
}
function FromObject$2(type) {
	const options = Discard(type, [
		TransformKind,
		"$id",
		"required",
		"properties"
	]);
	const properties$1 = FromProperties$3(type["properties"]);
	return Object$1(properties$1, options);
}
function FromRest$1(types) {
	return types.map((type) => PartialResolve(type));
}
function PartialResolve(type) {
	return IsComputed(type) ? FromComputed$2(type.target, type.parameters) : IsRef(type) ? FromRef$1(type.$ref) : IsIntersect(type) ? Intersect(FromRest$1(type.allOf)) : IsUnion(type) ? Union(FromRest$1(type.anyOf)) : IsObject(type) ? FromObject$2(type) : IsBigInt$1(type) ? type : IsBoolean(type) ? type : IsInteger(type) ? type : IsLiteral(type) ? type : IsNull$2(type) ? type : IsNumber(type) ? type : IsString$1(type) ? type : IsSymbol$2(type) ? type : IsUndefined$2(type) ? type : Object$1({});
}
/** `[Json]` Constructs a type where all properties are optional */
function Partial(type, options) {
	if (IsMappedResult(type)) {
		return PartialFromMappedResult(type, options);
	} else {
		return CreateType({
			...PartialResolve(type),
			...options
		});
	}
}
var init_partial$1 = __esmMin((() => {
	init_type$4();
	init_computed();
	init_optional();
	init_object();
	init_intersect();
	init_union$1();
	init_ref();
	init_discard();
	init_symbols();
	init_partial_from_mapped_result();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/partial/partial-from-mapped-result.mjs
function FromProperties$2(K$1, options) {
	const Acc = {};
	for (const K2 of globalThis.Object.getOwnPropertyNames(K$1)) Acc[K2] = Partial(K$1[K2], Clone(options));
	return Acc;
}
function FromMappedResult$1(R$1, options) {
	return FromProperties$2(R$1.properties, options);
}
function PartialFromMappedResult(R$1, options) {
	const P$2 = FromMappedResult$1(R$1, options);
	return MappedResult(P$2);
}
var init_partial_from_mapped_result = __esmMin((() => {
	init_mapped();
	init_partial$1();
	init_value();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/partial/index.mjs
var init_partial = __esmMin((() => {
	init_partial_from_mapped_result();
	init_partial$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/required/required.mjs
function FromComputed$1(target, parameters) {
	return Computed("Required", [Computed(target, parameters)]);
}
function FromRef($ref) {
	return Computed("Required", [Ref($ref)]);
}
function FromProperties$1(properties$1) {
	const requiredProperties = {};
	for (const K$1 of globalThis.Object.getOwnPropertyNames(properties$1)) requiredProperties[K$1] = Discard(properties$1[K$1], [OptionalKind]);
	return requiredProperties;
}
function FromObject$1(type) {
	const options = Discard(type, [
		TransformKind,
		"$id",
		"required",
		"properties"
	]);
	const properties$1 = FromProperties$1(type["properties"]);
	return Object$1(properties$1, options);
}
function FromRest(types) {
	return types.map((type) => RequiredResolve(type));
}
function RequiredResolve(type) {
	return IsComputed(type) ? FromComputed$1(type.target, type.parameters) : IsRef(type) ? FromRef(type.$ref) : IsIntersect(type) ? Intersect(FromRest(type.allOf)) : IsUnion(type) ? Union(FromRest(type.anyOf)) : IsObject(type) ? FromObject$1(type) : IsBigInt$1(type) ? type : IsBoolean(type) ? type : IsInteger(type) ? type : IsLiteral(type) ? type : IsNull$2(type) ? type : IsNumber(type) ? type : IsString$1(type) ? type : IsSymbol$2(type) ? type : IsUndefined$2(type) ? type : Object$1({});
}
/** `[Json]` Constructs a type where all properties are required */
function Required(type, options) {
	if (IsMappedResult(type)) {
		return RequiredFromMappedResult(type, options);
	} else {
		return CreateType({
			...RequiredResolve(type),
			...options
		});
	}
}
var init_required$1 = __esmMin((() => {
	init_type$4();
	init_computed();
	init_object();
	init_intersect();
	init_union$1();
	init_ref();
	init_symbols();
	init_discard();
	init_required_from_mapped_result();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/required/required-from-mapped-result.mjs
function FromProperties(P$2, options) {
	const Acc = {};
	for (const K2 of globalThis.Object.getOwnPropertyNames(P$2)) Acc[K2] = Required(P$2[K2], options);
	return Acc;
}
function FromMappedResult(R$1, options) {
	return FromProperties(R$1.properties, options);
}
function RequiredFromMappedResult(R$1, options) {
	const P$2 = FromMappedResult(R$1, options);
	return MappedResult(P$2);
}
var init_required_from_mapped_result = __esmMin((() => {
	init_mapped();
	init_required$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/required/index.mjs
var init_required = __esmMin((() => {
	init_required_from_mapped_result();
	init_required$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/module/compute.mjs
function DereferenceParameters(moduleProperties, types) {
	return types.map((type) => {
		return IsRef(type) ? Dereference(moduleProperties, type.$ref) : FromType(moduleProperties, type);
	});
}
function Dereference(moduleProperties, ref) {
	return ref in moduleProperties ? IsRef(moduleProperties[ref]) ? Dereference(moduleProperties, moduleProperties[ref].$ref) : FromType(moduleProperties, moduleProperties[ref]) : Never();
}
function FromAwaited(parameters) {
	return Awaited(parameters[0]);
}
function FromIndex(parameters) {
	return Index(parameters[0], parameters[1]);
}
function FromKeyOf(parameters) {
	return KeyOf(parameters[0]);
}
function FromPartial(parameters) {
	return Partial(parameters[0]);
}
function FromOmit(parameters) {
	return Omit(parameters[0], parameters[1]);
}
function FromPick(parameters) {
	return Pick(parameters[0], parameters[1]);
}
function FromRequired(parameters) {
	return Required(parameters[0]);
}
function FromComputed(moduleProperties, target, parameters) {
	const dereferenced = DereferenceParameters(moduleProperties, parameters);
	return target === "Awaited" ? FromAwaited(dereferenced) : target === "Index" ? FromIndex(dereferenced) : target === "KeyOf" ? FromKeyOf(dereferenced) : target === "Partial" ? FromPartial(dereferenced) : target === "Omit" ? FromOmit(dereferenced) : target === "Pick" ? FromPick(dereferenced) : target === "Required" ? FromRequired(dereferenced) : Never();
}
function FromArray(moduleProperties, type) {
	return Array$1(FromType(moduleProperties, type));
}
function FromAsyncIterator(moduleProperties, type) {
	return AsyncIterator(FromType(moduleProperties, type));
}
function FromConstructor(moduleProperties, parameters, instanceType) {
	return Constructor(FromTypes(moduleProperties, parameters), FromType(moduleProperties, instanceType));
}
function FromFunction(moduleProperties, parameters, returnType) {
	return Function$1(FromTypes(moduleProperties, parameters), FromType(moduleProperties, returnType));
}
function FromIntersect(moduleProperties, types) {
	return Intersect(FromTypes(moduleProperties, types));
}
function FromIterator(moduleProperties, type) {
	return Iterator(FromType(moduleProperties, type));
}
function FromObject(moduleProperties, properties$1) {
	return Object$1(globalThis.Object.keys(properties$1).reduce((result, key) => {
		return {
			...result,
			[key]: FromType(moduleProperties, properties$1[key])
		};
	}, {}));
}
function FromRecord(moduleProperties, type) {
	const [value, pattern] = [FromType(moduleProperties, RecordValue(type)), RecordPattern(type)];
	const result = CloneType(type);
	result.patternProperties[pattern] = value;
	return result;
}
function FromTransform(moduleProperties, transform) {
	return IsRef(transform) ? {
		...Dereference(moduleProperties, transform.$ref),
		[TransformKind]: transform[TransformKind]
	} : transform;
}
function FromTuple(moduleProperties, types) {
	return Tuple(FromTypes(moduleProperties, types));
}
function FromUnion(moduleProperties, types) {
	return Union(FromTypes(moduleProperties, types));
}
function FromTypes(moduleProperties, types) {
	return types.map((type) => FromType(moduleProperties, type));
}
function FromType(moduleProperties, type) {
	return IsOptional(type) ? CreateType(FromType(moduleProperties, Discard(type, [OptionalKind])), type) : IsReadonly(type) ? CreateType(FromType(moduleProperties, Discard(type, [ReadonlyKind])), type) : IsTransform(type) ? CreateType(FromTransform(moduleProperties, type), type) : IsArray$1(type) ? CreateType(FromArray(moduleProperties, type.items), type) : IsAsyncIterator$1(type) ? CreateType(FromAsyncIterator(moduleProperties, type.items), type) : IsComputed(type) ? CreateType(FromComputed(moduleProperties, type.target, type.parameters)) : IsConstructor(type) ? CreateType(FromConstructor(moduleProperties, type.parameters, type.returns), type) : IsFunction$1(type) ? CreateType(FromFunction(moduleProperties, type.parameters, type.returns), type) : IsIntersect(type) ? CreateType(FromIntersect(moduleProperties, type.allOf), type) : IsIterator$1(type) ? CreateType(FromIterator(moduleProperties, type.items), type) : IsObject(type) ? CreateType(FromObject(moduleProperties, type.properties), type) : IsRecord(type) ? CreateType(FromRecord(moduleProperties, type)) : IsTuple(type) ? CreateType(FromTuple(moduleProperties, type.items || []), type) : IsUnion(type) ? CreateType(FromUnion(moduleProperties, type.anyOf), type) : type;
}
function ComputeType(moduleProperties, key) {
	return key in moduleProperties ? FromType(moduleProperties, moduleProperties[key]) : Never();
}
function ComputeModuleProperties(moduleProperties) {
	return globalThis.Object.getOwnPropertyNames(moduleProperties).reduce((result, key) => {
		return {
			...result,
			[key]: ComputeType(moduleProperties, key)
		};
	}, {});
}
var init_compute = __esmMin((() => {
	init_create$1();
	init_clone();
	init_discard();
	init_array$1();
	init_awaited();
	init_async_iterator();
	init_constructor();
	init_indexed();
	init_function();
	init_intersect();
	init_iterator();
	init_keyof();
	init_object();
	init_omit();
	init_pick();
	init_never();
	init_partial();
	init_record();
	init_required();
	init_tuple();
	init_union$1();
	init_symbols();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/module/module.mjs
/** `[Json]` Creates a Type Definition Module. */
function Module(properties$1) {
	return new TModule(properties$1);
}
var TModule;
var init_module$1 = __esmMin((() => {
	init_create$1();
	init_symbols();
	init_compute();
	TModule = class {
		constructor($defs) {
			const computed = ComputeModuleProperties($defs);
			const identified = this.WithIdentifiers(computed);
			this.$defs = identified;
		}
		/** `[Json]` Imports a Type by Key. */
		Import(key, options) {
			const $defs = {
				...this.$defs,
				[key]: CreateType(this.$defs[key], options)
			};
			return CreateType({
				[Kind]: "Import",
				$defs,
				$ref: key
			});
		}
		WithIdentifiers($defs) {
			return globalThis.Object.getOwnPropertyNames($defs).reduce((result, key) => {
				return {
					...result,
					[key]: {
						...$defs[key],
						$id: key
					}
				};
			}, {});
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/module/index.mjs
var init_module = __esmMin((() => {
	init_module$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/not/not.mjs
/** `[Json]` Creates a Not type */
function Not(type, options) {
	return CreateType({
		[Kind]: "Not",
		not: type
	}, options);
}
var init_not$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/not/index.mjs
var init_not = __esmMin((() => {
	init_not$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/parameters/parameters.mjs
/** `[JavaScript]` Extracts the Parameters from the given Function type */
function Parameters(schema, options) {
	return IsFunction$1(schema) ? Tuple(schema.parameters, options) : Never();
}
var init_parameters$1 = __esmMin((() => {
	init_tuple();
	init_never();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/parameters/index.mjs
var init_parameters = __esmMin((() => {
	init_parameters$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/recursive/recursive.mjs
/** `[Json]` Creates a Recursive type */
function Recursive(callback, options = {}) {
	if (IsUndefined(options.$id)) options.$id = `T${Ordinal++}`;
	const thisType = CloneType(callback({
		[Kind]: "This",
		$ref: `${options.$id}`
	}));
	thisType.$id = options.$id;
	return CreateType({
		[Hint]: "Recursive",
		...thisType
	}, options);
}
var Ordinal;
var init_recursive$1 = __esmMin((() => {
	init_type$5();
	init_type$4();
	init_value$1();
	init_symbols();
	Ordinal = 0;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/recursive/index.mjs
var init_recursive = __esmMin((() => {
	init_recursive$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/regexp/regexp.mjs
/** `[JavaScript]` Creates a RegExp type */
function RegExp$1(unresolved, options) {
	const expr = IsString(unresolved) ? new globalThis.RegExp(unresolved) : unresolved;
	return CreateType({
		[Kind]: "RegExp",
		type: "RegExp",
		source: expr.source,
		flags: expr.flags
	}, options);
}
var init_regexp$1 = __esmMin((() => {
	init_type$4();
	init_value$1();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/regexp/index.mjs
var init_regexp = __esmMin((() => {
	init_regexp$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/rest/rest.mjs
function RestResolve(T$3) {
	return IsIntersect(T$3) ? T$3.allOf : IsUnion(T$3) ? T$3.anyOf : IsTuple(T$3) ? T$3.items ?? [] : [];
}
/** `[Json]` Extracts interior Rest elements from Tuple, Intersect and Union types */
function Rest(T$3) {
	return RestResolve(T$3);
}
var init_rest$1 = __esmMin((() => {
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/rest/index.mjs
var init_rest = __esmMin((() => {
	init_rest$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/return-type/return-type.mjs
/** `[JavaScript]` Extracts the ReturnType from the given Function type */
function ReturnType(schema, options) {
	return IsFunction$1(schema) ? CreateType(schema.returns, options) : Never(options);
}
var init_return_type$1 = __esmMin((() => {
	init_type$4();
	init_never();
	init_kind();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/return-type/index.mjs
var init_return_type = __esmMin((() => {
	init_return_type$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/schema/anyschema.mjs
var init_anyschema = __esmMin((() => {}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/schema/schema.mjs
var init_schema$1 = __esmMin((() => {
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/schema/index.mjs
var init_schema = __esmMin((() => {
	init_anyschema();
	init_schema$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/static/static.mjs
var init_static$1 = __esmMin((() => {}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/static/index.mjs
var init_static = __esmMin((() => {
	init_static$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/transform/transform.mjs
/** `[Json]` Creates a Transform type */
function Transform(schema) {
	return new TransformDecodeBuilder(schema);
}
var TransformDecodeBuilder, TransformEncodeBuilder;
var init_transform$1 = __esmMin((() => {
	init_symbols();
	init_kind();
	TransformDecodeBuilder = class {
		constructor(schema) {
			this.schema = schema;
		}
		Decode(decode) {
			return new TransformEncodeBuilder(this.schema, decode);
		}
	};
	TransformEncodeBuilder = class {
		constructor(schema, decode) {
			this.schema = schema;
			this.decode = decode;
		}
		EncodeTransform(encode, schema) {
			const Encode = (value) => schema[TransformKind].Encode(encode(value));
			const Decode = (value) => this.decode(schema[TransformKind].Decode(value));
			const Codec = {
				Encode,
				Decode
			};
			return {
				...schema,
				[TransformKind]: Codec
			};
		}
		EncodeSchema(encode, schema) {
			const Codec = {
				Decode: this.decode,
				Encode: encode
			};
			return {
				...schema,
				[TransformKind]: Codec
			};
		}
		Encode(encode) {
			return IsTransform(this.schema) ? this.EncodeTransform(encode, this.schema) : this.EncodeSchema(encode, this.schema);
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/transform/index.mjs
var init_transform = __esmMin((() => {
	init_transform$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/unsafe/unsafe.mjs
/** `[Json]` Creates a Unsafe type that will infers as the generic argument T */
function Unsafe(options = {}) {
	return CreateType({ [Kind]: options[Kind] ?? "Unsafe" }, options);
}
var init_unsafe$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/unsafe/index.mjs
var init_unsafe = __esmMin((() => {
	init_unsafe$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/void/void.mjs
/** `[JavaScript]` Creates a Void type */
function Void(options) {
	return CreateType({
		[Kind]: "Void",
		type: "void"
	}, options);
}
var init_void$1 = __esmMin((() => {
	init_type$4();
	init_symbols();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/void/index.mjs
var init_void = __esmMin((() => {
	init_void$1();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/type/json.mjs
var JsonTypeBuilder;
var init_json$2 = __esmMin((() => {
	init_any();
	init_array$1();
	init_boolean();
	init_composite();
	init_const();
	init_enum();
	init_exclude();
	init_extends();
	init_extract();
	init_indexed();
	init_integer();
	init_intersect();
	init_intrinsic();
	init_keyof();
	init_literal();
	init_mapped();
	init_never();
	init_not();
	init_null();
	init_module();
	init_number();
	init_object();
	init_omit();
	init_optional();
	init_partial();
	init_pick();
	init_readonly();
	init_readonly_optional();
	init_record();
	init_recursive();
	init_ref();
	init_required();
	init_rest();
	init_string$1();
	init_template_literal();
	init_transform();
	init_tuple();
	init_union$1();
	init_unknown();
	init_unsafe();
	JsonTypeBuilder = class {
		/** `[Json]` Creates a Readonly and Optional property */
		ReadonlyOptional(type) {
			return ReadonlyOptional(type);
		}
		/** `[Json]` Creates a Readonly property */
		Readonly(type, enable) {
			return Readonly(type, enable ?? true);
		}
		/** `[Json]` Creates a Optional property */
		Optional(type, enable) {
			return Optional(type, enable ?? true);
		}
		/** `[Json]` Creates an Any type */
		Any(options) {
			return Any(options);
		}
		/** `[Json]` Creates an Array type */
		Array(items, options) {
			return Array$1(items, options);
		}
		/** `[Json]` Creates a Boolean type */
		Boolean(options) {
			return Boolean$1(options);
		}
		/** `[Json]` Intrinsic function to Capitalize LiteralString types */
		Capitalize(schema, options) {
			return Capitalize(schema, options);
		}
		/** `[Json]` Creates a Composite object type */
		Composite(schemas, options) {
			return Composite(schemas, options);
		}
		/** `[JavaScript]` Creates a readonly const type from the given value. */
		Const(value, options) {
			return Const(value, options);
		}
		/** `[Json]` Creates a Enum type */
		Enum(item, options) {
			return Enum(item, options);
		}
		/** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */
		Exclude(unionType, excludedMembers, options) {
			return Exclude(unionType, excludedMembers, options);
		}
		/** `[Json]` Creates a Conditional type */
		Extends(L$2, R$1, T$3, F$1, options) {
			return Extends(L$2, R$1, T$3, F$1, options);
		}
		/** `[Json]` Constructs a type by extracting from type all union members that are assignable to union */
		Extract(type, union, options) {
			return Extract(type, union, options);
		}
		/** `[Json]` Returns an Indexed property type for the given keys */
		Index(type, key, options) {
			return Index(type, key, options);
		}
		/** `[Json]` Creates an Integer type */
		Integer(options) {
			return Integer(options);
		}
		/** `[Json]` Creates an Intersect type */
		Intersect(types, options) {
			return Intersect(types, options);
		}
		/** `[Json]` Creates a KeyOf type */
		KeyOf(type, options) {
			return KeyOf(type, options);
		}
		/** `[Json]` Creates a Literal type */
		Literal(literalValue, options) {
			return Literal(literalValue, options);
		}
		/** `[Json]` Intrinsic function to Lowercase LiteralString types */
		Lowercase(type, options) {
			return Lowercase(type, options);
		}
		/** `[Json]` Creates a Mapped object type */
		Mapped(key, map$2, options) {
			return Mapped(key, map$2, options);
		}
		/** `[Json]` Creates a Type Definition Module. */
		Module(properties$1) {
			return Module(properties$1);
		}
		/** `[Json]` Creates a Never type */
		Never(options) {
			return Never(options);
		}
		/** `[Json]` Creates a Not type */
		Not(type, options) {
			return Not(type, options);
		}
		/** `[Json]` Creates a Null type */
		Null(options) {
			return Null(options);
		}
		/** `[Json]` Creates a Number type */
		Number(options) {
			return Number$1(options);
		}
		/** `[Json]` Creates an Object type */
		Object(properties$1, options) {
			return Object$1(properties$1, options);
		}
		/** `[Json]` Constructs a type whose keys are omitted from the given type */
		Omit(schema, selector, options) {
			return Omit(schema, selector, options);
		}
		/** `[Json]` Constructs a type where all properties are optional */
		Partial(type, options) {
			return Partial(type, options);
		}
		/** `[Json]` Constructs a type whose keys are picked from the given type */
		Pick(type, key, options) {
			return Pick(type, key, options);
		}
		/** `[Json]` Creates a Record type */
		Record(key, value, options) {
			return Record(key, value, options);
		}
		/** `[Json]` Creates a Recursive type */
		Recursive(callback, options) {
			return Recursive(callback, options);
		}
		/** `[Json]` Creates a Ref type. The referenced type must contain a $id */
		Ref(...args) {
			return Ref(args[0], args[1]);
		}
		/** `[Json]` Constructs a type where all properties are required */
		Required(type, options) {
			return Required(type, options);
		}
		/** `[Json]` Extracts interior Rest elements from Tuple, Intersect and Union types */
		Rest(type) {
			return Rest(type);
		}
		/** `[Json]` Creates a String type */
		String(options) {
			return String$1(options);
		}
		/** `[Json]` Creates a TemplateLiteral type */
		TemplateLiteral(unresolved, options) {
			return TemplateLiteral(unresolved, options);
		}
		/** `[Json]` Creates a Transform type */
		Transform(type) {
			return Transform(type);
		}
		/** `[Json]` Creates a Tuple type */
		Tuple(types, options) {
			return Tuple(types, options);
		}
		/** `[Json]` Intrinsic function to Uncapitalize LiteralString types */
		Uncapitalize(type, options) {
			return Uncapitalize(type, options);
		}
		/** `[Json]` Creates a Union type */
		Union(types, options) {
			return Union(types, options);
		}
		/** `[Json]` Creates an Unknown type */
		Unknown(options) {
			return Unknown(options);
		}
		/** `[Json]` Creates a Unsafe type that will infers as the generic argument T */
		Unsafe(options) {
			return Unsafe(options);
		}
		/** `[Json]` Intrinsic function to Uppercase LiteralString types */
		Uppercase(schema, options) {
			return Uppercase(schema, options);
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/type/type.mjs
var type_exports = /* @__PURE__ */ __export({
	Any: () => Any,
	Argument: () => Argument,
	Array: () => Array$1,
	AsyncIterator: () => AsyncIterator,
	Awaited: () => Awaited,
	BigInt: () => BigInt,
	Boolean: () => Boolean$1,
	Capitalize: () => Capitalize,
	Composite: () => Composite,
	Const: () => Const,
	Constructor: () => Constructor,
	ConstructorParameters: () => ConstructorParameters,
	Date: () => Date$1,
	Enum: () => Enum,
	Exclude: () => Exclude,
	Extends: () => Extends,
	Extract: () => Extract,
	Function: () => Function$1,
	Index: () => Index,
	InstanceType: () => InstanceType,
	Instantiate: () => Instantiate,
	Integer: () => Integer,
	Intersect: () => Intersect,
	Iterator: () => Iterator,
	KeyOf: () => KeyOf,
	Literal: () => Literal,
	Lowercase: () => Lowercase,
	Mapped: () => Mapped,
	Module: () => Module,
	Never: () => Never,
	Not: () => Not,
	Null: () => Null,
	Number: () => Number$1,
	Object: () => Object$1,
	Omit: () => Omit,
	Optional: () => Optional,
	Parameters: () => Parameters,
	Partial: () => Partial,
	Pick: () => Pick,
	Promise: () => Promise$1,
	Readonly: () => Readonly,
	ReadonlyOptional: () => ReadonlyOptional,
	Record: () => Record,
	Recursive: () => Recursive,
	Ref: () => Ref,
	RegExp: () => RegExp$1,
	Required: () => Required,
	Rest: () => Rest,
	ReturnType: () => ReturnType,
	String: () => String$1,
	Symbol: () => Symbol$1,
	TemplateLiteral: () => TemplateLiteral,
	Transform: () => Transform,
	Tuple: () => Tuple,
	Uint8Array: () => Uint8Array$1,
	Uncapitalize: () => Uncapitalize,
	Undefined: () => Undefined,
	Union: () => Union,
	Unknown: () => Unknown,
	Unsafe: () => Unsafe,
	Uppercase: () => Uppercase,
	Void: () => Void
});
var init_type$1 = __esmMin((() => {
	init_any();
	init_argument();
	init_array$1();
	init_async_iterator();
	init_awaited();
	init_bigint();
	init_boolean();
	init_composite();
	init_const();
	init_constructor();
	init_constructor_parameters();
	init_date();
	init_enum();
	init_exclude();
	init_extends();
	init_extract();
	init_function();
	init_indexed();
	init_instance_type();
	init_instantiate();
	init_integer();
	init_intersect();
	init_intrinsic();
	init_iterator();
	init_keyof();
	init_literal();
	init_mapped();
	init_module();
	init_never();
	init_not();
	init_null();
	init_number();
	init_object();
	init_omit();
	init_optional();
	init_parameters();
	init_partial();
	init_pick();
	init_promise();
	init_readonly();
	init_readonly_optional();
	init_record();
	init_recursive();
	init_ref();
	init_regexp();
	init_required();
	init_rest();
	init_return_type();
	init_string$1();
	init_symbol();
	init_template_literal();
	init_transform();
	init_tuple();
	init_uint8array();
	init_undefined();
	init_union$1();
	init_unknown();
	init_unsafe();
	init_void();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/type/javascript.mjs
var JavaScriptTypeBuilder;
var init_javascript$1 = __esmMin((() => {
	init_json$2();
	init_argument();
	init_async_iterator();
	init_awaited();
	init_bigint();
	init_constructor();
	init_constructor_parameters();
	init_date();
	init_function();
	init_instance_type();
	init_instantiate();
	init_iterator();
	init_parameters();
	init_promise();
	init_regexp();
	init_return_type();
	init_symbol();
	init_uint8array();
	init_undefined();
	init_void();
	JavaScriptTypeBuilder = class extends JsonTypeBuilder {
		/** `[JavaScript]` Creates a Generic Argument Type */
		Argument(index) {
			return Argument(index);
		}
		/** `[JavaScript]` Creates a AsyncIterator type */
		AsyncIterator(items, options) {
			return AsyncIterator(items, options);
		}
		/** `[JavaScript]` Constructs a type by recursively unwrapping Promise types */
		Awaited(schema, options) {
			return Awaited(schema, options);
		}
		/** `[JavaScript]` Creates a BigInt type */
		BigInt(options) {
			return BigInt(options);
		}
		/** `[JavaScript]` Extracts the ConstructorParameters from the given Constructor type */
		ConstructorParameters(schema, options) {
			return ConstructorParameters(schema, options);
		}
		/** `[JavaScript]` Creates a Constructor type */
		Constructor(parameters, instanceType, options) {
			return Constructor(parameters, instanceType, options);
		}
		/** `[JavaScript]` Creates a Date type */
		Date(options = {}) {
			return Date$1(options);
		}
		/** `[JavaScript]` Creates a Function type */
		Function(parameters, returnType, options) {
			return Function$1(parameters, returnType, options);
		}
		/** `[JavaScript]` Extracts the InstanceType from the given Constructor type */
		InstanceType(schema, options) {
			return InstanceType(schema, options);
		}
		/** `[JavaScript]` Instantiates a type with the given parameters */
		Instantiate(schema, parameters) {
			return Instantiate(schema, parameters);
		}
		/** `[JavaScript]` Creates an Iterator type */
		Iterator(items, options) {
			return Iterator(items, options);
		}
		/** `[JavaScript]` Extracts the Parameters from the given Function type */
		Parameters(schema, options) {
			return Parameters(schema, options);
		}
		/** `[JavaScript]` Creates a Promise type */
		Promise(item, options) {
			return Promise$1(item, options);
		}
		/** `[JavaScript]` Creates a RegExp type */
		RegExp(unresolved, options) {
			return RegExp$1(unresolved, options);
		}
		/** `[JavaScript]` Extracts the ReturnType from the given Function type */
		ReturnType(type, options) {
			return ReturnType(type, options);
		}
		/** `[JavaScript]` Creates a Symbol type */
		Symbol(options) {
			return Symbol$1(options);
		}
		/** `[JavaScript]` Creates a Undefined type */
		Undefined(options) {
			return Undefined(options);
		}
		/** `[JavaScript]` Creates a Uint8Array type */
		Uint8Array(options) {
			return Uint8Array$1(options);
		}
		/** `[JavaScript]` Creates a Void type */
		Void(options) {
			return Void(options);
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/type/index.mjs
var Type;
var init_type = __esmMin((() => {
	init_json$2();
	init_type$1();
	init_javascript$1();
	Type = type_exports;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/index.mjs
var init_esm = __esmMin((() => {
	init_clone();
	init_create$1();
	init_error();
	init_guard();
	init_helpers();
	init_patterns();
	init_registry();
	init_sets();
	init_symbols();
	init_any();
	init_array$1();
	init_argument();
	init_async_iterator();
	init_awaited();
	init_bigint();
	init_boolean();
	init_composite();
	init_const();
	init_constructor();
	init_constructor_parameters();
	init_date();
	init_enum();
	init_exclude();
	init_extends();
	init_extract();
	init_function();
	init_indexed();
	init_instance_type();
	init_instantiate();
	init_integer();
	init_intersect();
	init_iterator();
	init_intrinsic();
	init_keyof();
	init_literal();
	init_module();
	init_mapped();
	init_never();
	init_not();
	init_null();
	init_number();
	init_object();
	init_omit();
	init_optional();
	init_parameters();
	init_partial();
	init_pick();
	init_promise();
	init_readonly();
	init_readonly_optional();
	init_record();
	init_recursive();
	init_ref();
	init_regexp();
	init_required();
	init_rest();
	init_return_type();
	init_schema();
	init_static();
	init_string$1();
	init_symbol();
	init_template_literal();
	init_transform();
	init_tuple();
	init_uint8array();
	init_undefined();
	init_union$1();
	init_unknown();
	init_unsafe();
	init_void();
	init_type();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/sandbox/ConsoleRuntimeProvider.js
var ConsoleRuntimeProvider;
var init_ConsoleRuntimeProvider = __esmMin((() => {
	ConsoleRuntimeProvider = class {
		constructor() {
			this.logs = [];
			this.completionError = null;
			this.completed = false;
		}
		getData() {
			return {};
		}
		getDescription() {
			return "";
		}
		getRuntime() {
			return (_sandboxId) => {
				if (!window.__originalConsole) {
					window.__originalConsole = {
						log: console.log.bind(console),
						error: console.error.bind(console),
						warn: console.warn.bind(console),
						info: console.info.bind(console)
					};
				}
				const originalConsole = window.__originalConsole;
				const pendingSends = [];
				[
					"log",
					"error",
					"warn",
					"info"
				].forEach((method) => {
					console[method] = (...args) => {
						const text$2 = args.map((arg) => {
							try {
								return typeof arg === "object" ? JSON.stringify(arg) : String(arg);
							} catch {
								return String(arg);
							}
						}).join(" ");
						originalConsole[method].apply(console, args);
						if (window.sendRuntimeMessage) {
							const sendPromise = window.sendRuntimeMessage({
								type: "console",
								method,
								text: text$2,
								args
							}).catch(() => {});
							pendingSends.push(sendPromise);
						}
					};
				});
				if (window.onCompleted) {
					window.onCompleted(async (_success) => {
						if (pendingSends.length > 0) {
							await Promise.all(pendingSends);
						}
					});
				}
				let lastError = null;
				window.addEventListener("error", (e$10) => {
					const text$2 = (e$10.error?.stack || e$10.message || String(e$10)) + " at line " + (e$10.lineno || "?") + ":" + (e$10.colno || "?");
					lastError = {
						message: e$10.error?.message || e$10.message || String(e$10),
						stack: e$10.error?.stack || text$2
					};
				});
				window.addEventListener("unhandledrejection", (e$10) => {
					const text$2 = "Unhandled promise rejection: " + (e$10.reason?.message || e$10.reason || "Unknown error");
					lastError = {
						message: e$10.reason?.message || String(e$10.reason) || "Unhandled promise rejection",
						stack: e$10.reason?.stack || text$2
					};
				});
				let completionSent = false;
				window.complete = async (error$2, returnValue) => {
					if (completionSent) return;
					completionSent = true;
					const finalError = error$2 || lastError;
					if (window.sendRuntimeMessage) {
						if (finalError) {
							await window.sendRuntimeMessage({
								type: "execution-error",
								error: finalError
							});
						} else {
							await window.sendRuntimeMessage({
								type: "execution-complete",
								returnValue
							});
						}
					}
				};
			};
		}
		async handleMessage(message, respond) {
			if (message.type === "console") {
				this.logs.push({
					type: message.method === "error" ? "error" : message.method === "warn" ? "warn" : message.method === "info" ? "info" : "log",
					text: message.text,
					args: message.args
				});
				respond({ success: true });
			}
		}
		/**
		* Get collected console logs
		*/
		getLogs() {
			return this.logs;
		}
		/**
		* Get completion status
		*/
		isCompleted() {
			return this.completed;
		}
		/**
		* Get completion error if any
		*/
		getCompletionError() {
			return this.completionError;
		}
		/**
		* Reset state for reuse
		*/
		reset() {
			this.logs = [];
			this.completionError = null;
			this.completed = false;
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/sandbox/RuntimeMessageBridge.js
var RuntimeMessageBridge;
var init_RuntimeMessageBridge = __esmMin((() => {
	RuntimeMessageBridge = class RuntimeMessageBridge {
		/**
		* Generate sendRuntimeMessage() function as injectable string.
		* Returns the function source code to be injected into target context.
		*/
		static generateBridgeCode(options) {
			if (options.context === "sandbox-iframe") {
				return RuntimeMessageBridge.generateSandboxBridge(options.sandboxId);
			} else {
				return RuntimeMessageBridge.generateUserScriptBridge(options.sandboxId);
			}
		}
		static generateSandboxBridge(sandboxId) {
			return `
window.__completionCallbacks = [];
window.sendRuntimeMessage = async (message) => {
    const messageId = 'msg_' + Date.now() + '_' + Math.random().toString(36).substring(2, 9);

    return new Promise((resolve, reject) => {
        const handler = (e) => {
            if (e.data.type === 'runtime-response' && e.data.messageId === messageId) {
                window.removeEventListener('message', handler);
                if (e.data.success) {
                    resolve(e.data);
                } else {
                    reject(new Error(e.data.error || 'Operation failed'));
                }
            }
        };

        window.addEventListener('message', handler);

        window.parent.postMessage({
            ...message,
            sandboxId: ${JSON.stringify(sandboxId)},
            messageId: messageId
        }, '*');

        // Timeout after 30s
        setTimeout(() => {
            window.removeEventListener('message', handler);
            reject(new Error('Runtime message timeout'));
        }, 30000);
    });
};
window.onCompleted = (callback) => {
    window.__completionCallbacks.push(callback);
};
`.trim();
		}
		static generateUserScriptBridge(sandboxId) {
			return `
window.__completionCallbacks = [];
window.sendRuntimeMessage = async (message) => {
    return await chrome.runtime.sendMessage({
        ...message,
        sandboxId: ${JSON.stringify(sandboxId)}
    });
};
window.onCompleted = (callback) => {
    window.__completionCallbacks.push(callback);
};
`.trim();
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/sandbox/RuntimeMessageRouter.js
var RuntimeMessageRouter, RUNTIME_MESSAGE_ROUTER;
var init_RuntimeMessageRouter = __esmMin((() => {
	RuntimeMessageRouter = class {
		constructor() {
			this.sandboxes = new Map();
			this.messageListener = null;
			this.userScriptMessageListener = null;
		}
		/**
		* Register a new sandbox with its runtime providers.
		* Call this BEFORE creating the iframe (for sandbox contexts) or executing user script.
		*/
		registerSandbox(sandboxId, providers, consumers) {
			this.sandboxes.set(sandboxId, {
				sandboxId,
				iframe: null,
				providers,
				consumers: new Set(consumers)
			});
			this.setupListener();
		}
		/**
		* Update the iframe reference for a sandbox.
		* Call this AFTER creating the iframe.
		* This is needed so providers can send responses back to the sandbox.
		*/
		setSandboxIframe(sandboxId, iframe) {
			const context = this.sandboxes.get(sandboxId);
			if (context) {
				context.iframe = iframe;
			}
		}
		/**
		* Unregister a sandbox and remove all its consumers.
		* Call this when the sandbox is destroyed.
		*/
		unregisterSandbox(sandboxId) {
			this.sandboxes.delete(sandboxId);
			if (this.sandboxes.size === 0) {
				if (this.messageListener) {
					window.removeEventListener("message", this.messageListener);
					this.messageListener = null;
				}
				if (this.userScriptMessageListener && typeof chrome !== "undefined" && chrome.runtime?.onUserScriptMessage) {
					chrome.runtime.onUserScriptMessage.removeListener(this.userScriptMessageListener);
					this.userScriptMessageListener = null;
				}
			}
		}
		/**
		* Add a message consumer for a sandbox.
		* Consumers receive broadcast messages (console, execution-complete, etc.)
		*/
		addConsumer(sandboxId, consumer) {
			const context = this.sandboxes.get(sandboxId);
			if (context) {
				context.consumers.add(consumer);
			}
		}
		/**
		* Remove a message consumer from a sandbox.
		*/
		removeConsumer(sandboxId, consumer) {
			const context = this.sandboxes.get(sandboxId);
			if (context) {
				context.consumers.delete(consumer);
			}
		}
		/**
		* Setup the global message listeners (called automatically)
		*/
		setupListener() {
			if (!this.messageListener) {
				this.messageListener = async (e$10) => {
					const { sandboxId, messageId } = e$10.data;
					if (!sandboxId) return;
					const context = this.sandboxes.get(sandboxId);
					if (!context) {
						return;
					}
					const respond = (response) => {
						context.iframe?.contentWindow?.postMessage({
							type: "runtime-response",
							messageId,
							sandboxId,
							...response
						}, "*");
					};
					for (const provider of context.providers) {
						if (provider.handleMessage) {
							await provider.handleMessage(e$10.data, respond);
						}
					}
					for (const consumer of context.consumers) {
						await consumer.handleMessage(e$10.data);
					}
				};
				window.addEventListener("message", this.messageListener);
			}
			if (!this.userScriptMessageListener) {
				if (typeof chrome === "undefined" || !chrome.runtime?.onUserScriptMessage) {
					return;
				}
				this.userScriptMessageListener = (message, _sender, sendResponse) => {
					const { sandboxId } = message;
					if (!sandboxId) return false;
					const context = this.sandboxes.get(sandboxId);
					if (!context) return false;
					const respond = (response) => {
						sendResponse({
							...response,
							sandboxId
						});
					};
					(async () => {
						for (const provider of context.providers) {
							if (provider.handleMessage) {
								await provider.handleMessage(message, respond);
							}
						}
						for (const consumer of context.consumers) {
							await consumer.handleMessage(message);
						}
					})();
					return true;
				};
				chrome.runtime.onUserScriptMessage.addListener(this.userScriptMessageListener);
			}
		}
	};
	RUNTIME_MESSAGE_ROUTER = new RuntimeMessageRouter();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/SandboxedIframe.js
/**
* Escape HTML special sequences in code to prevent premature tag closure
* @param code Code that will be injected into <script> tags
* @returns Escaped code safe for injection
*/
function escapeScriptContent(code) {
	return code.replace(/<\/script/gi, "<\\/script");
}
var __decorate$21, SandboxIframe;
var init_SandboxedIframe = __esmMin((() => {
	init_lit();
	init_decorators();
	init_ConsoleRuntimeProvider();
	init_RuntimeMessageBridge();
	init_RuntimeMessageRouter();
	__decorate$21 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	SandboxIframe = class SandboxIframe$1 extends i {
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
		}
		disconnectedCallback() {
			super.disconnectedCallback();
			this.iframe?.remove();
		}
		/**
		* Load HTML content into sandbox and keep it displayed (for HTML artifacts)
		* @param sandboxId Unique ID
		* @param htmlContent Full HTML content
		* @param providers Runtime providers to inject
		* @param consumers Message consumers to register (optional)
		*/
		loadContent(sandboxId, htmlContent, providers = [], consumers = []) {
			try {
				RUNTIME_MESSAGE_ROUTER.unregisterSandbox(sandboxId);
			} catch {}
			providers = [new ConsoleRuntimeProvider(), ...providers];
			RUNTIME_MESSAGE_ROUTER.registerSandbox(sandboxId, providers, consumers);
			const completeHtml = this.prepareHtmlDocument(sandboxId, htmlContent, providers, {
				isHtmlArtifact: true,
				isStandalone: false
			});
			const validationError = this.validateHtml(completeHtml);
			if (validationError) {
				console.error("HTML validation failed:", validationError);
				this.iframe?.remove();
				this.iframe = document.createElement("iframe");
				this.iframe.style.cssText = "width: 100%; height: 100%; border: none;";
				this.iframe.srcdoc = `
				<html>
				<body style="font-family: monospace; padding: 20px; background: #fff; color: #000;">
					<h3 style="color: #c00;">HTML Validation Error</h3>
					<pre style="background: #f5f5f5; padding: 10px; border-radius: 4px; overflow-x: auto; white-space: pre-wrap;">${validationError}</pre>
				</body>
				</html>
			`;
				this.appendChild(this.iframe);
				return;
			}
			this.iframe?.remove();
			if (this.sandboxUrlProvider) {
				this.loadViaSandboxUrl(sandboxId, completeHtml);
			} else {
				this.loadViaSrcdoc(sandboxId, completeHtml);
			}
		}
		loadViaSandboxUrl(sandboxId, completeHtml) {
			this.iframe = document.createElement("iframe");
			this.iframe.sandbox.add("allow-scripts");
			this.iframe.sandbox.add("allow-modals");
			this.iframe.style.width = "100%";
			this.iframe.style.height = "100%";
			this.iframe.style.border = "none";
			this.iframe.src = this.sandboxUrlProvider();
			RUNTIME_MESSAGE_ROUTER.setSandboxIframe(sandboxId, this.iframe);
			const externalUrlHandler = (e$10) => {
				if (e$10.data.type === "open-external-url" && e$10.source === this.iframe?.contentWindow) {
					const chromeAPI = globalThis.chrome;
					if (chromeAPI?.tabs) {
						chromeAPI.tabs.create({ url: e$10.data.url });
					} else {
						window.open(e$10.data.url, "_blank");
					}
				}
			};
			window.addEventListener("message", externalUrlHandler);
			const readyHandler = (e$10) => {
				if (e$10.data.type === "sandbox-ready" && e$10.source === this.iframe?.contentWindow) {
					window.removeEventListener("message", readyHandler);
					window.removeEventListener("message", errorHandler);
					this.iframe?.contentWindow?.postMessage({
						type: "sandbox-load",
						sandboxId,
						code: completeHtml
					}, "*");
				}
			};
			const errorHandler = (e$10) => {
				if (e$10.data.type === "sandbox-error" && e$10.source === this.iframe?.contentWindow) {
					window.removeEventListener("message", readyHandler);
					window.removeEventListener("message", errorHandler);
					window.postMessage({
						sandboxId,
						type: "execution-error",
						error: {
							message: e$10.data.error,
							stack: e$10.data.stack
						}
					}, "*");
				}
			};
			window.addEventListener("message", readyHandler);
			window.addEventListener("message", errorHandler);
			this.appendChild(this.iframe);
		}
		loadViaSrcdoc(sandboxId, completeHtml) {
			this.iframe = document.createElement("iframe");
			this.iframe.sandbox.add("allow-scripts");
			this.iframe.sandbox.add("allow-modals");
			this.iframe.style.width = "100%";
			this.iframe.style.height = "100%";
			this.iframe.style.border = "none";
			this.iframe.srcdoc = completeHtml;
			RUNTIME_MESSAGE_ROUTER.setSandboxIframe(sandboxId, this.iframe);
			const externalUrlHandler = (e$10) => {
				if (e$10.data.type === "open-external-url" && e$10.source === this.iframe?.contentWindow) {
					window.open(e$10.data.url, "_blank");
				}
			};
			window.addEventListener("message", externalUrlHandler);
			this.appendChild(this.iframe);
		}
		/**
		* Execute code in sandbox
		* @param sandboxId Unique ID for this execution
		* @param code User code (plain JS for REPL, or full HTML for artifacts)
		* @param providers Runtime providers to inject
		* @param consumers Additional message consumers (optional, execute has its own internal consumer)
		* @param signal Abort signal
		* @returns Promise resolving to execution result
		*/
		async execute(sandboxId, code, providers = [], consumers = [], signal, isHtmlArtifact = false) {
			if (signal?.aborted) {
				throw new Error("Execution aborted");
			}
			const consoleProvider = new ConsoleRuntimeProvider();
			providers = [consoleProvider, ...providers];
			RUNTIME_MESSAGE_ROUTER.registerSandbox(sandboxId, providers, consumers);
			for (const provider of providers) {
				provider.onExecutionStart?.(sandboxId, signal);
			}
			const files = [];
			let completed = false;
			return new Promise((resolve, reject) => {
				const executionConsumer = { async handleMessage(message) {
					if (message.type === "file-returned") {
						files.push({
							fileName: message.fileName,
							content: message.content,
							mimeType: message.mimeType
						});
					} else if (message.type === "execution-complete") {
						completed = true;
						cleanup();
						resolve({
							success: true,
							console: consoleProvider.getLogs(),
							files,
							returnValue: message.returnValue
						});
					} else if (message.type === "execution-error") {
						completed = true;
						cleanup();
						resolve({
							success: false,
							console: consoleProvider.getLogs(),
							error: message.error,
							files
						});
					}
				} };
				RUNTIME_MESSAGE_ROUTER.addConsumer(sandboxId, executionConsumer);
				const cleanup = () => {
					for (const provider of providers) {
						provider.onExecutionEnd?.(sandboxId);
					}
					RUNTIME_MESSAGE_ROUTER.unregisterSandbox(sandboxId);
					signal?.removeEventListener("abort", abortHandler);
					clearTimeout(timeoutId);
					this.iframe?.remove();
					this.iframe = undefined;
				};
				const abortHandler = () => {
					if (!completed) {
						completed = true;
						cleanup();
						reject(new Error("Execution aborted"));
					}
				};
				if (signal) {
					signal.addEventListener("abort", abortHandler);
				}
				const timeoutId = setTimeout(() => {
					if (!completed) {
						completed = true;
						cleanup();
						resolve({
							success: false,
							console: consoleProvider.getLogs(),
							error: {
								message: "Execution timeout (120s)",
								stack: ""
							},
							files
						});
					}
				}, 12e4);
				const completeHtml = this.prepareHtmlDocument(sandboxId, code, providers, {
					isHtmlArtifact,
					isStandalone: false
				});
				const validationError = this.validateHtml(completeHtml);
				if (validationError) {
					reject(new Error(`HTML validation failed: ${validationError}`));
					return;
				}
				if (this.sandboxUrlProvider) {
					this.iframe = document.createElement("iframe");
					this.iframe.sandbox.add("allow-scripts", "allow-modals");
					this.iframe.style.cssText = "width: 100%; height: 100%; border: none;";
					this.iframe.src = this.sandboxUrlProvider();
					RUNTIME_MESSAGE_ROUTER.setSandboxIframe(sandboxId, this.iframe);
					const readyHandler = (e$10) => {
						if (e$10.data.type === "sandbox-ready" && e$10.source === this.iframe?.contentWindow) {
							window.removeEventListener("message", readyHandler);
							window.removeEventListener("message", errorHandler);
							this.iframe?.contentWindow?.postMessage({
								type: "sandbox-load",
								sandboxId,
								code: completeHtml
							}, "*");
						}
					};
					const errorHandler = (e$10) => {
						if (e$10.data.type === "sandbox-error" && e$10.source === this.iframe?.contentWindow) {
							window.removeEventListener("message", readyHandler);
							window.removeEventListener("message", errorHandler);
							window.postMessage({
								sandboxId,
								type: "execution-error",
								error: {
									message: e$10.data.error,
									stack: e$10.data.stack
								}
							}, "*");
						}
					};
					window.addEventListener("message", readyHandler);
					window.addEventListener("message", errorHandler);
					this.appendChild(this.iframe);
				} else {
					this.iframe = document.createElement("iframe");
					this.iframe.sandbox.add("allow-scripts", "allow-modals");
					this.iframe.style.cssText = "width: 100%; height: 100%; border: none; display: none;";
					this.iframe.srcdoc = completeHtml;
					RUNTIME_MESSAGE_ROUTER.setSandboxIframe(sandboxId, this.iframe);
					this.appendChild(this.iframe);
				}
			});
		}
		/**
		* Validate HTML using DOMParser - returns error message if invalid, null if valid
		* Note: JavaScript syntax validation is done in sandbox.js to avoid CSP restrictions
		*/
		validateHtml(html) {
			try {
				const parser = new DOMParser();
				const doc = parser.parseFromString(html, "text/html");
				const parserError = doc.querySelector("parsererror");
				if (parserError) {
					return parserError.textContent || "Unknown parse error";
				}
				return null;
			} catch (error$2) {
				return error$2.message || "Unknown validation error";
			}
		}
		/**
		* Prepare complete HTML document with runtime + user code
		* PUBLIC so HtmlArtifact can use it for download button
		*/
		prepareHtmlDocument(sandboxId, userCode, providers = [], options) {
			const opts = {
				isHtmlArtifact: false,
				isStandalone: false,
				...options
			};
			const runtime = this.getRuntimeScript(sandboxId, providers, opts.isStandalone || false);
			if (opts.isHtmlArtifact) {
				const headMatch = userCode.match(/<head[^>]*>/i);
				if (headMatch) {
					const index = headMatch.index + headMatch[0].length;
					return userCode.slice(0, index) + runtime + userCode.slice(index);
				}
				const htmlMatch = userCode.match(/<html[^>]*>/i);
				if (htmlMatch) {
					const index = htmlMatch.index + htmlMatch[0].length;
					return userCode.slice(0, index) + runtime + userCode.slice(index);
				}
				return runtime + userCode;
			} else {
				const escapedUserCode = escapeScriptContent(userCode);
				return `<!DOCTYPE html>
<html>
<head>
	${runtime}
</head>
<body>
	<script type="module">
		(async () => {
			try {
				// Wrap user code in async function to capture return value
				const userCodeFunc = async () => {
					${escapedUserCode}
				};

				const returnValue = await userCodeFunc();

				// Call completion callbacks before complete()
				if (window.__completionCallbacks && window.__completionCallbacks.length > 0) {
					try {
						await Promise.all(window.__completionCallbacks.map(cb => cb(true)));
					} catch (e) {
						console.error('Completion callback error:', e);
					}
				}

				await window.complete(null, returnValue);
			} catch (error) {

				// Call completion callbacks before complete() (error path)
				if (window.__completionCallbacks && window.__completionCallbacks.length > 0) {
					try {
						await Promise.all(window.__completionCallbacks.map(cb => cb(false)));
					} catch (e) {
						console.error('Completion callback error:', e);
					}
				}

				await window.complete({
					message: error?.message || String(error),
					stack: error?.stack || new Error().stack
				});
			}
		})();
	<\/script>
</body>
</html>`;
			}
		}
		/**
		* Generate runtime script from providers
		* @param sandboxId Unique sandbox ID
		* @param providers Runtime providers
		* @param isStandalone If true, skip runtime bridge and navigation interceptor (for standalone downloads)
		*/
		getRuntimeScript(sandboxId, providers = [], isStandalone = false) {
			const allData = {};
			for (const provider of providers) {
				Object.assign(allData, provider.getData());
			}
			const bridgeCode = isStandalone ? "" : RuntimeMessageBridge.generateBridgeCode({
				context: "sandbox-iframe",
				sandboxId
			});
			const runtimeFunctions = [];
			for (const provider of providers) {
				runtimeFunctions.push(`(${provider.getRuntime().toString()})(${JSON.stringify(sandboxId)});`);
			}
			const dataInjection = Object.entries(allData).map(([key, value]) => {
				const jsonStr = JSON.stringify(value).replace(/<\/script/gi, "<\\/script");
				return `window.${key} = ${jsonStr};`;
			}).join("\n");
			const navigationInterceptor = isStandalone ? "" : `
// Navigation interceptor: prevent all navigation and open externally
(function() {
	// Intercept link clicks
	document.addEventListener('click', function(e) {
		const link = e.target.closest('a');
		if (link && link.href) {
			// Check if it's an external link (not javascript: or #hash)
			if (link.href.startsWith('http://') || link.href.startsWith('https://')) {
				e.preventDefault();
				e.stopPropagation();
				window.parent.postMessage({ type: 'open-external-url', url: link.href }, '*');
			}
		}
	}, true);

	// Intercept form submissions
	document.addEventListener('submit', function(e) {
		const form = e.target;
		if (form && form.action) {
			e.preventDefault();
			e.stopPropagation();
			window.parent.postMessage({ type: 'open-external-url', url: form.action }, '*');
		}
	}, true);

	// Prevent window.location changes (only if not already redefined)
	try {
		const originalLocation = window.location;
		Object.defineProperty(window, 'location', {
			get: function() { return originalLocation; },
			set: function(url) {
				window.parent.postMessage({ type: 'open-external-url', url: url.toString() }, '*');
			}
		});
	} catch (e) {
		// Already defined, skip
	}
})();
`;
			return `<style>
html, body {
	font-size: initial;
}
</style>
<script>
window.sandboxId = ${JSON.stringify(sandboxId)};
${dataInjection}
${bridgeCode}
${runtimeFunctions.join("\n")}
${navigationInterceptor}
<\/script>`;
		}
	};
	__decorate$21([n$1({ attribute: false })], SandboxIframe.prototype, "sandboxUrlProvider", void 0);
	SandboxIframe = __decorate$21([t("sandbox-iframe")], SandboxIframe);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/prompts/prompts.js
var JAVASCRIPT_REPL_TOOL_DESCRIPTION, ARTIFACTS_TOOL_DESCRIPTION, ARTIFACTS_RUNTIME_PROVIDER_DESCRIPTION_RW, ARTIFACTS_RUNTIME_PROVIDER_DESCRIPTION_RO, ATTACHMENTS_RUNTIME_DESCRIPTION, EXTRACT_DOCUMENT_DESCRIPTION;
var init_prompts = __esmMin((() => {
	JAVASCRIPT_REPL_TOOL_DESCRIPTION = (runtimeProviderDescriptions) => `# JavaScript REPL

## Purpose
Execute JavaScript code in a sandboxed browser environment with full Web APIs.

## When to Use
- Quick calculations or data transformations
- Testing JavaScript code snippets in isolation
- Processing data with libraries (XLSX, CSV, etc.)
- Creating artifacts from data

## Environment
- ES2023+ JavaScript (async/await, optional chaining, nullish coalescing, etc.)
- All browser APIs: DOM, Canvas, WebGL, Fetch, Web Workers, WebSockets, Crypto, etc.
- Import any npm package: await import('https://esm.run/package-name')

## Common Libraries
- XLSX: const XLSX = await import('https://esm.run/xlsx');
- CSV: const Papa = (await import('https://esm.run/papaparse')).default;
- Chart.js: const Chart = (await import('https://esm.run/chart.js/auto')).default;
- Three.js: const THREE = await import('https://esm.run/three');

## Persistence between tool calls
- Objects stored on global scope do not persist between calls.
- Use artifacts as a key-value JSON object store:
  - Use createOrUpdateArtifact(filename, content) to persist data between calls. JSON objects are auto-stringified.
  - Use listArtifacts() and getArtifact(filename) to read persisted data. JSON files are auto-parsed to objects.
  - Prefer to use a single artifact throughout the session to store intermediate data (e.g. 'data.json').

## Input
- You have access to the user's attachments via listAttachments(), readTextAttachment(id), and readBinaryAttachment(id)
- You have access to previously created artifacts via listArtifacts() and getArtifact(filename)

## Output
- All console.log() calls are captured for you to inspect. The user does not see these logs.
- Create artifacts for file results (images, JSON, CSV, etc.) which persiste throughout the
  session and are accessible to you and the user.

## Example
const data = [10, 20, 15, 25];
const sum = data.reduce((a, b) => a + b, 0);
const avg = sum / data.length;
console.log('Sum:', sum, 'Average:', avg);

## Important Notes
- Graphics: Use fixed dimensions (800x600), NOT window.innerWidth/Height
- Chart.js: Set options: { responsive: false, animation: false }
- Three.js: renderer.setSize(800, 600) with matching aspect ratio

## Helper Functions (Automatically Available)

These functions are injected into the execution environment and available globally:

${runtimeProviderDescriptions.join("\n\n")}
`;
	ARTIFACTS_TOOL_DESCRIPTION = (runtimeProviderDescriptions) => `# Artifacts

Create and manage persistent files that live alongside the conversation.

## When to Use - Artifacts Tool vs REPL

**Use artifacts tool when YOU are the author:**
- Writing research summaries, analysis, ideas, documentation
- Creating markdown notes for user to read
- Building HTML applications/visualizations that present data
- Creating HTML artifacts that render charts from programmatically generated data

**Use repl + artifact storage functions when CODE processes data:**
- Scraping workflows that extract and store data
- Processing CSV/Excel files programmatically
- Data transformation pipelines
- Binary file generation requiring libraries (PDF, DOCX)

**Pattern: REPL generates data → Artifacts tool creates HTML that visualizes it**
Example: repl scrapes products → stores products.json → you author dashboard.html that reads products.json and renders Chart.js visualizations

## Input
- { action: "create", filename: "notes.md", content: "..." } - Create new file
- { action: "update", filename: "notes.md", old_str: "...", new_str: "..." } - Update part of file (PREFERRED)
- { action: "rewrite", filename: "notes.md", content: "..." } - Replace entire file (LAST RESORT)
- { action: "get", filename: "data.json" } - Retrieve file content
- { action: "delete", filename: "old.csv" } - Delete file
- { action: "htmlArtifactLogs", filename: "app.html" } - Get console logs from HTML artifact

## Returns
Depends on action:
- create/update/rewrite/delete: Success status or error
- get: File content
- htmlArtifactLogs: Console logs and errors

## Supported File Types
✅ Text-based files you author: .md, .txt, .html, .js, .css, .json, .csv, .svg
❌ Binary files requiring libraries (use repl): .pdf, .docx

## Critical - Prefer Update Over Rewrite
❌ NEVER: get entire file + rewrite to change small sections
✅ ALWAYS: update for targeted edits (token efficient)
✅ Ask: Can I describe the change as old_str → new_str? Use update.

---

## HTML Artifacts

Interactive HTML applications that can visualize data from other artifacts.

### Data Access
- Can read artifacts created by repl and user attachments
- Use to build dashboards, visualizations, interactive tools
- See Helper Functions section below for available functions

### Requirements
- Self-contained single file
- Import ES modules from esm.sh: <script type="module">import X from 'https://esm.sh/pkg';<\/script>
- Use Tailwind CDN: <script src="https://cdn.tailwindcss.com"><\/script>
- Can embed images from any domain: <img src="https://example.com/image.jpg">
- MUST set background color explicitly (avoid transparent)
- Inline CSS or Tailwind utility classes
- No localStorage/sessionStorage

### Styling
- Use Tailwind utility classes for clean, functional designs
- Ensure responsive layout (iframe may be resized)
- Avoid purple gradients, AI aesthetic clichés, and emojis

### Helper Functions (Automatically Available)

These functions are injected into HTML artifact sandbox:

${runtimeProviderDescriptions.join("\n\n")}
`;
	ARTIFACTS_RUNTIME_PROVIDER_DESCRIPTION_RW = `
### Artifacts Storage

Create, read, update, and delete files in artifacts storage.

#### When to Use
- Store intermediate results between tool calls
- Save generated files (images, CSVs, processed data) for user to view and download

#### Do NOT Use For
- Content you author directly, like summaries of content you read (use artifacts tool instead)

#### Functions
- listArtifacts() - List all artifact filenames, returns Promise<string[]>
- getArtifact(filename) - Read artifact content, returns Promise<string | object>. JSON files auto-parse to objects, binary files return base64 string
- createOrUpdateArtifact(filename, content, mimeType?) - Create or update artifact, returns Promise<void>. JSON files auto-stringify objects, binary requires base64 string with mimeType
- deleteArtifact(filename) - Delete artifact, returns Promise<void>

#### Example
JSON workflow:
\`\`\`javascript
// Fetch and save
const response = await fetch('https://api.example.com/products');
const products = await response.json();
await createOrUpdateArtifact('products.json', products);

// Later: read and filter
const all = await getArtifact('products.json');
const cheap = all.filter(p => p.price < 100);
await createOrUpdateArtifact('cheap.json', cheap);
\`\`\`

Binary file (image):
\`\`\`javascript
const canvas = document.createElement('canvas');
canvas.width = 800; canvas.height = 600;
const ctx = canvas.getContext('2d');
ctx.fillStyle = 'blue';
ctx.fillRect(0, 0, 800, 600);
// Remove data:image/png;base64, prefix
const base64 = canvas.toDataURL().split(',')[1];
await createOrUpdateArtifact('chart.png', base64, 'image/png');
\`\`\`
`;
	ARTIFACTS_RUNTIME_PROVIDER_DESCRIPTION_RO = `
### Artifacts Storage

Read files from artifacts storage.

#### When to Use
- Read artifacts created by REPL or artifacts tool
- Access data from other HTML artifacts
- Load configuration or data files

#### Do NOT Use For
- Creating new artifacts (not available in HTML artifacts)
- Modifying artifacts (read-only access)

#### Functions
- listArtifacts() - List all artifact filenames, returns Promise<string[]>
- getArtifact(filename) - Read artifact content, returns Promise<string | object>. JSON files auto-parse to objects, binary files return base64 string

#### Example
JSON data:
\`\`\`javascript
const products = await getArtifact('products.json');
const html = products.map(p => \`<div>\${p.name}: $\${p.price}</div>\`).join('');
document.body.innerHTML = html;
\`\`\`

Binary image:
\`\`\`javascript
const base64 = await getArtifact('chart.png');
const img = document.createElement('img');
img.src = 'data:image/png;base64,' + base64;
document.body.appendChild(img);
\`\`\`
`;
	ATTACHMENTS_RUNTIME_DESCRIPTION = `
### User Attachments

Read files the user uploaded to the conversation.

#### When to Use
- Process user-uploaded files (CSV, JSON, Excel, images, PDFs)

#### Functions
- listAttachments() - List all attachments, returns array of {id, fileName, mimeType, size}
- readTextAttachment(id) - Read attachment as text, returns string
- readBinaryAttachment(id) - Read attachment as binary data, returns Uint8Array

#### Example
CSV file:
\`\`\`javascript
const files = listAttachments();
const csvFile = files.find(f => f.fileName.endsWith('.csv'));
const csvData = readTextAttachment(csvFile.id);
const rows = csvData.split('\\n').map(row => row.split(','));
\`\`\`

Excel file:
\`\`\`javascript
const XLSX = await import('https://esm.run/xlsx');
const files = listAttachments();
const xlsxFile = files.find(f => f.fileName.endsWith('.xlsx'));
const bytes = readBinaryAttachment(xlsxFile.id);
const workbook = XLSX.read(bytes);
const data = XLSX.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]]);
\`\`\`
`;
	EXTRACT_DOCUMENT_DESCRIPTION = `# Extract Document

Extract plain text from documents on the web (PDF, DOCX, XLSX, PPTX).

## When to Use
User wants you to read a document at a URL.

## Input
- { url: "https://example.com/document.pdf" } - URL to PDF, DOCX, XLSX, or PPTX

## Returns
Structured plain text with page/sheet/slide delimiters.`;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/renderer-registry.js
/**
* Register a custom tool renderer
*/
function registerToolRenderer(toolName, renderer) {
	toolRenderers.set(toolName, renderer);
}
/**
* Get a tool renderer by name
*/
function getToolRenderer(toolName) {
	return toolRenderers.get(toolName);
}
/**
* Helper to render a header for tool renderers
* Shows icon on left when complete/error, spinner on right when in progress
*/
function renderHeader(state$1, toolIcon, text$2) {
	const statusIcon = (iconComponent, color) => x`<span class="inline-block ${color}">${icon(iconComponent, "sm")}</span>`;
	switch (state$1) {
		case "inprogress": return x`
				<div class="flex items-center justify-between gap-2 text-sm text-muted-foreground">
					<div class="flex items-center gap-2">
						${statusIcon(toolIcon, "text-foreground")}
						${text$2}
					</div>
					${statusIcon(Loader, "text-foreground animate-spin")}
				</div>
			`;
		case "complete": return x`
				<div class="flex items-center gap-2 text-sm text-muted-foreground">
					${statusIcon(toolIcon, "text-green-600 dark:text-green-500")}
					${text$2}
				</div>
			`;
		case "error": return x`
				<div class="flex items-center gap-2 text-sm text-muted-foreground">
					${statusIcon(toolIcon, "text-destructive")}
					${text$2}
				</div>
			`;
	}
}
/**
* Helper to render a collapsible header for tool renderers
* Same as renderHeader but with a chevron button that toggles visibility of content
*/
function renderCollapsibleHeader(state$1, toolIcon, text$2, contentRef, chevronRef, defaultExpanded = false) {
	const statusIcon = (iconComponent, color) => x`<span class="inline-block ${color}">${icon(iconComponent, "sm")}</span>`;
	const toggleContent = (e$10) => {
		e$10.preventDefault();
		const content = contentRef.value;
		const chevron = chevronRef.value;
		if (content && chevron) {
			const isCollapsed = content.classList.contains("max-h-0");
			if (isCollapsed) {
				content.classList.remove("max-h-0");
				content.classList.add("max-h-[2000px]", "mt-3");
				const upIcon = chevron.querySelector(".chevron-up");
				const downIcon = chevron.querySelector(".chevrons-up-down");
				if (upIcon && downIcon) {
					upIcon.classList.remove("hidden");
					downIcon.classList.add("hidden");
				}
			} else {
				content.classList.remove("max-h-[2000px]", "mt-3");
				content.classList.add("max-h-0");
				const upIcon = chevron.querySelector(".chevron-up");
				const downIcon = chevron.querySelector(".chevrons-up-down");
				if (upIcon && downIcon) {
					upIcon.classList.add("hidden");
					downIcon.classList.remove("hidden");
				}
			}
		}
	};
	const toolIconColor = state$1 === "complete" ? "text-green-600 dark:text-green-500" : state$1 === "error" ? "text-destructive" : "text-foreground";
	return x`
		<button @click=${toggleContent} class="flex items-center justify-between gap-2 text-sm text-muted-foreground w-full text-left hover:text-foreground transition-colors cursor-pointer">
			<div class="flex items-center gap-2">
				${state$1 === "inprogress" ? statusIcon(Loader, "text-foreground animate-spin") : ""}
				${statusIcon(toolIcon, toolIconColor)}
				${text$2}
			</div>
			<span class="inline-block text-muted-foreground" ${n(chevronRef)}>
				<span class="chevron-up ${defaultExpanded ? "" : "hidden"}">${icon(ChevronUp, "sm")}</span>
				<span class="chevrons-up-down ${defaultExpanded ? "hidden" : ""}">${icon(ChevronsUpDown, "sm")}</span>
			</span>
		</button>
	`;
}
var toolRenderers;
var init_renderer_registry = __esmMin((() => {
	init_dist();
	init_lit();
	init_ref$2();
	init_lucide();
	toolRenderers = new Map();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/javascript-repl.js
async function executeJavaScript(code, runtimeProviders, signal, sandboxUrlProvider) {
	if (!code) {
		throw new Error("Code parameter is required");
	}
	if (signal?.aborted) {
		throw new Error("Execution aborted");
	}
	const sandbox = new SandboxIframe();
	if (sandboxUrlProvider) {
		sandbox.sandboxUrlProvider = sandboxUrlProvider;
	}
	sandbox.style.display = "none";
	document.body.appendChild(sandbox);
	try {
		const sandboxId = `repl-${Date.now()}-${Math.random().toString(36).substring(7)}`;
		const result = await sandbox.execute(sandboxId, code, runtimeProviders, [], signal);
		sandbox.remove();
		let output = "";
		if (result.console && result.console.length > 0) {
			for (const entry of result.console) {
				output += entry.text + "\n";
			}
		}
		if (!result.success) {
			if (output) output += "\n";
			output += `Error: ${result.error?.message || "Unknown error"}\n${result.error?.stack || ""}`;
			throw new Error(output.trim());
		}
		if (result.returnValue !== undefined) {
			if (output) output += "\n";
			output += `=> ${typeof result.returnValue === "object" ? JSON.stringify(result.returnValue, null, 2) : result.returnValue}`;
		}
		if (result.files && result.files.length > 0) {
			output += `\n[Files returned: ${result.files.length}]\n`;
			for (const file of result.files) {
				output += `  - ${file.fileName} (${file.mimeType})\n`;
			}
		} else {
			if (code.includes("returnFile")) {
				output += "\n[No files returned - check async operations]";
			}
		}
		return {
			output: output.trim() || "Code executed successfully (no output)",
			files: result.files
		};
	} catch (error$2) {
		sandbox.remove();
		throw new Error(error$2.message || "Execution failed");
	}
}
function createJavaScriptReplTool() {
	return {
		label: "JavaScript REPL",
		name: "javascript_repl",
		runtimeProvidersFactory: () => [],
		sandboxUrlProvider: undefined,
		get description() {
			const runtimeProviderDescriptions = this.runtimeProvidersFactory?.().map((d$5) => d$5.getDescription()).filter((d$5) => d$5.trim().length > 0) || [];
			return JAVASCRIPT_REPL_TOOL_DESCRIPTION(runtimeProviderDescriptions);
		},
		parameters: javascriptReplSchema,
		execute: async function(_toolCallId, args, signal) {
			const result = await executeJavaScript(args.code, this.runtimeProvidersFactory?.() ?? [], signal, this.sandboxUrlProvider);
			const files = (result.files || []).map((f$4) => {
				const toBase64 = (input) => {
					if (input instanceof Uint8Array) {
						let binary = "";
						const chunk = 32768;
						for (let i$7 = 0; i$7 < input.length; i$7 += chunk) {
							binary += String.fromCharCode(...input.subarray(i$7, i$7 + chunk));
						}
						return {
							base64: btoa(binary),
							size: input.length
						};
					} else if (typeof input === "string") {
						const enc = new TextEncoder();
						const bytes = enc.encode(input);
						let binary = "";
						const chunk = 32768;
						for (let i$7 = 0; i$7 < bytes.length; i$7 += chunk) {
							binary += String.fromCharCode(...bytes.subarray(i$7, i$7 + chunk));
						}
						return {
							base64: btoa(binary),
							size: bytes.length
						};
					} else {
						const s$5 = String(input);
						const enc = new TextEncoder();
						const bytes = enc.encode(s$5);
						let binary = "";
						const chunk = 32768;
						for (let i$7 = 0; i$7 < bytes.length; i$7 += chunk) {
							binary += String.fromCharCode(...bytes.subarray(i$7, i$7 + chunk));
						}
						return {
							base64: btoa(binary),
							size: bytes.length
						};
					}
				};
				const { base64, size } = toBase64(f$4.content);
				return {
					fileName: f$4.fileName || "file",
					mimeType: f$4.mimeType || "application/octet-stream",
					size,
					contentBase64: base64
				};
			});
			return {
				content: [{
					type: "text",
					text: result.output
				}],
				details: { files }
			};
		}
	};
}
var javascriptReplSchema, javascriptReplTool, javascriptReplRenderer;
var init_javascript_repl = __esmMin((() => {
	init_dist();
	init_esm();
	init_lit();
	init_ref$2();
	init_lucide();
	init_SandboxedIframe();
	init_prompts();
	init_renderer_registry();
	javascriptReplSchema = Type.Object({
		title: Type.String({ description: "Brief title describing what the code snippet tries to achieve in active form, e.g. 'Calculating sum'" }),
		code: Type.String({ description: "JavaScript code to execute" })
	});
	javascriptReplTool = createJavaScriptReplTool();
	javascriptReplRenderer = { render(params, result, isStreaming) {
		const state$1 = result ? result.isError ? "error" : "complete" : isStreaming ? "inprogress" : "complete";
		const codeContentRef = e();
		const codeChevronRef = e();
		if (result && params) {
			const output = result.content?.filter((c$7) => c$7.type === "text").map((c$7) => c$7.text).join("\n") || "";
			const files = result.details?.files || [];
			const attachments = files.map((f$4, i$7) => {
				let extractedText;
				const isTextBased = f$4.mimeType?.startsWith("text/") || f$4.mimeType === "application/json" || f$4.mimeType === "application/javascript" || f$4.mimeType?.includes("xml");
				if (isTextBased && f$4.contentBase64) {
					try {
						extractedText = atob(f$4.contentBase64);
					} catch (e$10) {
						console.warn("Failed to decode base64 content for", f$4.fileName);
					}
				}
				return {
					id: `repl-${Date.now()}-${i$7}`,
					type: f$4.mimeType?.startsWith("image/") ? "image" : "document",
					fileName: f$4.fileName || `file-${i$7}`,
					mimeType: f$4.mimeType || "application/octet-stream",
					size: f$4.size ?? 0,
					content: f$4.contentBase64,
					preview: f$4.mimeType?.startsWith("image/") ? f$4.contentBase64 : undefined,
					extractedText
				};
			});
			return {
				content: x`
					<div>
						${renderCollapsibleHeader(state$1, Code, params.title ? params.title : i18n("Executing JavaScript"), codeContentRef, codeChevronRef, false)}
						<div ${n(codeContentRef)} class="max-h-0 overflow-hidden transition-all duration-300 space-y-3">
							<code-block .code=${params.code || ""} language="javascript"></code-block>
							${output ? x`<console-block .content=${output} .variant=${result.isError ? "error" : "default"}></console-block>` : ""}
						</div>
						${attachments.length ? x`<div class="flex flex-wrap gap-2 mt-3">
									${attachments.map((att) => x`<attachment-tile .attachment=${att}></attachment-tile>`)}
							  </div>` : ""}
					</div>
				`,
				isCustom: false
			};
		}
		if (params) {
			return {
				content: x`
					<div>
						${renderCollapsibleHeader(state$1, Code, params.title ? params.title : i18n("Executing JavaScript"), codeContentRef, codeChevronRef, false)}
						<div ${n(codeContentRef)} class="max-h-0 overflow-hidden transition-all duration-300">
							${params.code ? x`<code-block .code=${params.code} language="javascript"></code-block>` : ""}
						</div>
					</div>
				`,
				isCustom: false
			};
		}
		return {
			content: renderHeader(state$1, Code, i18n("Preparing JavaScript...")),
			isCustom: false
		};
	} };
	registerToolRenderer(javascriptReplTool.name, javascriptReplRenderer);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/utils/proxy-utils.js
/**
* Centralized proxy decision logic.
*
* Determines whether to use a CORS proxy for LLM API requests based on:
* - Provider name
* - API key pattern (for providers where it matters)
*/
/**
* Check if a provider/API key combination requires a CORS proxy.
*
* @param provider - Provider name (e.g., "anthropic", "openai", "zai")
* @param apiKey - API key for the provider
* @returns true if proxy is required, false otherwise
*/
function shouldUseProxyForProvider(provider, apiKey) {
	switch (provider.toLowerCase()) {
		case "zai": return true;
		case "anthropic": return apiKey.startsWith("sk-ant-oat");
		case "openai":
		case "google":
		case "groq":
		case "openrouter":
		case "cerebras":
		case "xai":
		case "ollama":
		case "lmstudio": return false;
		default: return false;
	}
}
/**
* Apply CORS proxy to a model's baseUrl if needed.
*
* @param model - The model to potentially proxy
* @param apiKey - API key for the provider
* @param proxyUrl - CORS proxy URL (e.g., "https://proxy.mariozechner.at/proxy")
* @returns Model with modified baseUrl if proxy is needed, otherwise original model
*/
function applyProxyIfNeeded(model, apiKey, proxyUrl) {
	if (!proxyUrl) {
		return model;
	}
	if (!model.baseUrl) {
		return model;
	}
	if (!shouldUseProxyForProvider(model.provider, apiKey)) {
		return model;
	}
	return {
		...model,
		baseUrl: `${proxyUrl}/?url=${encodeURIComponent(model.baseUrl)}`
	};
}
/**
* Check if an error is likely a CORS error.
*
* CORS errors in browsers typically manifest as:
* - TypeError with message "Failed to fetch"
* - NetworkError
*
* @param error - The error to check
* @returns true if error is likely a CORS error
*/
function isCorsError(error$2) {
	if (!(error$2 instanceof Error)) {
		return false;
	}
	const message = error$2.message.toLowerCase();
	if (error$2.name === "TypeError" && message.includes("failed to fetch")) {
		return true;
	}
	if (error$2.name === "NetworkError") {
		return true;
	}
	if (message.includes("cors") || message.includes("cross-origin")) {
		return true;
	}
	return false;
}
var init_proxy_utils = __esmMin((() => {}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/extract-document.js
function createExtractDocumentTool() {
	const tool = {
		label: "Extract Document",
		name: "extract_document",
		corsProxyUrl: undefined,
		description: EXTRACT_DOCUMENT_DESCRIPTION,
		parameters: extractDocumentSchema,
		execute: async (_toolCallId, args, signal) => {
			if (signal?.aborted) {
				throw new Error("Extract document aborted");
			}
			const url = args.url.trim();
			if (!url) {
				throw new Error("URL is required");
			}
			try {
				new URL(url);
			} catch {
				throw new Error(`Invalid URL: ${url}`);
			}
			const MAX_SIZE = 50 * 1024 * 1024;
			const fetchAndProcess = async (fetchUrl) => {
				const response = await fetch(fetchUrl, { signal });
				if (!response.ok) {
					throw new Error(`TELL USER: Unable to download the document (${response.status} ${response.statusText}). The site likely blocks automated downloads.\n\n` + `INSTRUCT USER: Please download the file manually and attach it to your message using the attachment button (paperclip icon) in the message input area. I can then extract the text from the attached file.`);
				}
				const contentLength = response.headers.get("content-length");
				if (contentLength) {
					const size$1 = Number.parseInt(contentLength, 10);
					if (size$1 > MAX_SIZE) {
						throw new Error(`Document is too large (${(size$1 / 1024 / 1024).toFixed(1)}MB). Maximum supported size is 50MB.`);
					}
				}
				const arrayBuffer$1 = await response.arrayBuffer();
				const size = arrayBuffer$1.byteLength;
				if (size > MAX_SIZE) {
					throw new Error(`Document is too large (${(size / 1024 / 1024).toFixed(1)}MB). Maximum supported size is 50MB.`);
				}
				return arrayBuffer$1;
			};
			let arrayBuffer;
			try {
				arrayBuffer = await fetchAndProcess(url);
			} catch (directError) {
				if (isCorsError(directError) && tool.corsProxyUrl) {
					try {
						const proxiedUrl = tool.corsProxyUrl + encodeURIComponent(url);
						arrayBuffer = await fetchAndProcess(proxiedUrl);
					} catch (proxyError) {
						throw new Error(`TELL USER: Unable to fetch the document due to CORS restrictions.\n\n` + `Tried with proxy but it also failed: ${proxyError.message}\n\n` + `INSTRUCT USER: Please download the file manually and attach it to your message using the attachment button (paperclip icon) in the message input area. I can then extract the text from the attached file.`);
					}
				} else if (isCorsError(directError) && !tool.corsProxyUrl) {
					throw new Error(`TELL USER: Unable to fetch the document due to CORS restrictions (the server blocks requests from browser extensions).\n\n` + `To fix this, you need to configure a CORS proxy in Sitegeist settings:\n` + `1. Open Sitegeist settings\n` + `2. Find "CORS Proxy URL" setting\n` + `3. Enter a proxy URL like: https://corsproxy.io/?\n` + `4. Save and try again\n\n` + `Alternatively, download the file manually and attach it to your message using the attachment button (paperclip icon).`);
				} else {
					throw directError;
				}
			}
			const urlParts = url.split("/");
			let fileName = urlParts[urlParts.length - 1]?.split("?")[0] || "document";
			if (url.startsWith("https://arxiv.org/")) {
				fileName = fileName + ".pdf";
			}
			const attachment = await loadAttachment(arrayBuffer, fileName);
			if (!attachment.extractedText) {
				throw new Error(`Document format not supported. Supported formats:\n` + `- PDF (.pdf)\n` + `- Word (.docx)\n` + `- Excel (.xlsx, .xls)\n` + `- PowerPoint (.pptx)`);
			}
			let format = "unknown";
			if (attachment.mimeType.includes("pdf")) {
				format = "pdf";
			} else if (attachment.mimeType.includes("wordprocessingml")) {
				format = "docx";
			} else if (attachment.mimeType.includes("spreadsheetml") || attachment.mimeType.includes("ms-excel")) {
				format = "xlsx";
			} else if (attachment.mimeType.includes("presentationml")) {
				format = "pptx";
			}
			return {
				content: [{
					type: "text",
					text: attachment.extractedText
				}],
				details: {
					extractedText: attachment.extractedText,
					format,
					fileName: attachment.fileName,
					size: attachment.size
				}
			};
		}
	};
	return tool;
}
var extractDocumentSchema, extractDocumentTool, extractDocumentRenderer;
var init_extract_document = __esmMin((() => {
	init_esm();
	init_lit();
	init_ref$2();
	init_lucide();
	init_prompts();
	init_attachment_utils();
	init_proxy_utils();
	init_renderer_registry();
	extractDocumentSchema = Type.Object({ url: Type.String({ description: "URL of the document to extract text from (PDF, DOCX, XLSX, or PPTX)" }) });
	extractDocumentTool = createExtractDocumentTool();
	extractDocumentRenderer = { render(params, result, isStreaming) {
		const state$1 = result ? result.isError ? "error" : "complete" : isStreaming ? "inprogress" : "complete";
		const contentRef = e();
		const chevronRef = e();
		if (result && params) {
			const details = result.details;
			const title = details ? result.isError ? `Failed to extract ${details.fileName || "document"}` : `Extracted text from ${details.fileName} (${details.format.toUpperCase()}, ${(details.size / 1024).toFixed(1)}KB)` : result.isError ? "Failed to extract document" : "Extracted text from document";
			const output = result.content?.filter((c$7) => c$7.type === "text").map((c$7) => c$7.text).join("\n") || "";
			return {
				content: x`
					<div>
						${renderCollapsibleHeader(state$1, FileText, title, contentRef, chevronRef, false)}
						<div ${n(contentRef)} class="max-h-0 overflow-hidden transition-all duration-300 space-y-3">
							${params.url ? x`<div class="text-sm text-gray-600 dark:text-gray-400">
										<strong>URL:</strong> ${params.url}
								  </div>` : ""}
							${output && !result.isError ? x`<code-block .code=${output} language="plaintext"></code-block>` : ""}
							${result.isError && output ? x`<console-block .content=${output} .variant=${"error"}></console-block>` : ""}
						</div>
					</div>
				`,
				isCustom: false
			};
		}
		if (params) {
			const title = "Extracting document...";
			return {
				content: x`
					<div>
						${renderCollapsibleHeader(state$1, FileText, title, contentRef, chevronRef, false)}
						<div ${n(contentRef)} class="max-h-0 overflow-hidden transition-all duration-300">
							<div class="text-sm text-gray-600 dark:text-gray-400"><strong>URL:</strong> ${params.url}</div>
						</div>
					</div>
				`,
				isCustom: false
			};
		}
		return {
			content: renderHeader(state$1, FileText, "Preparing extraction..."),
			isCustom: false
		};
	} };
	registerToolRenderer("extract_document", extractDocumentRenderer);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/renderers/BashRenderer.js
var BashRenderer;
var init_BashRenderer = __esmMin((() => {
	init_lit();
	init_lucide();
	init_i18n();
	init_renderer_registry();
	BashRenderer = class {
		render(params, result) {
			const state$1 = result ? result.isError ? "error" : "complete" : "inprogress";
			if (result && params?.command) {
				const output = result.content?.filter((c$7) => c$7.type === "text").map((c$7) => c$7.text).join("\n") || "";
				const combined = output ? `> ${params.command}\n\n${output}` : `> ${params.command}`;
				return {
					content: x`
					<div class="space-y-3">
						${renderHeader(state$1, SquareTerminal, i18n("Running command..."))}
						<console-block .content=${combined} .variant=${result.isError ? "error" : "default"}></console-block>
					</div>
				`,
					isCustom: false
				};
			}
			if (params?.command) {
				return {
					content: x`
					<div class="space-y-3">
						${renderHeader(state$1, SquareTerminal, i18n("Running command..."))}
						<console-block .content=${`> ${params.command}`}></console-block>
					</div>
				`,
					isCustom: false
				};
			}
			return {
				content: renderHeader(state$1, SquareTerminal, i18n("Waiting for command...")),
				isCustom: false
			};
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/renderers/DefaultRenderer.js
var DefaultRenderer;
var init_DefaultRenderer = __esmMin((() => {
	init_lit();
	init_lucide();
	init_i18n();
	init_renderer_registry();
	DefaultRenderer = class {
		render(params, result, isStreaming) {
			const state$1 = result ? result.isError ? "error" : "complete" : isStreaming ? "inprogress" : "complete";
			let paramsJson = "";
			if (params) {
				try {
					paramsJson = JSON.stringify(JSON.parse(params), null, 2);
				} catch {
					try {
						paramsJson = JSON.stringify(params, null, 2);
					} catch {
						paramsJson = String(params);
					}
				}
			}
			if (result) {
				let outputJson = result.content?.filter((c$7) => c$7.type === "text").map((c$7) => c$7.text).join("\n") || i18n("(no output)");
				let outputLanguage = "text";
				try {
					const parsed = JSON.parse(outputJson);
					outputJson = JSON.stringify(parsed, null, 2);
					outputLanguage = "json";
				} catch {}
				return {
					content: x`
					<div class="space-y-3">
						${renderHeader(state$1, Code, "Tool Call")}
						${paramsJson ? x`<div>
							<div class="text-xs font-medium mb-1 text-muted-foreground">${i18n("Input")}</div>
							<code-block .code=${paramsJson} language="json"></code-block>
						</div>` : ""}
						<div>
							<div class="text-xs font-medium mb-1 text-muted-foreground">${i18n("Output")}</div>
							<code-block .code=${outputJson} language="${outputLanguage}"></code-block>
						</div>
					</div>
				`,
					isCustom: false
				};
			}
			if (params) {
				if (isStreaming && (!paramsJson || paramsJson === "{}" || paramsJson === "null")) {
					return {
						content: x`
						<div>
							${renderHeader(state$1, Code, "Preparing tool parameters...")}
						</div>
					`,
						isCustom: false
					};
				}
				return {
					content: x`
					<div class="space-y-3">
						${renderHeader(state$1, Code, "Tool Call")}
						<div>
							<div class="text-xs font-medium mb-1 text-muted-foreground">${i18n("Input")}</div>
							<code-block .code=${paramsJson} language="json"></code-block>
						</div>
					</div>
				`,
					isCustom: false
				};
			}
			return {
				content: x`
				<div>
					${renderHeader(state$1, Code, "Preparing tool...")}
				</div>
			`,
				isCustom: false
			};
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/index.js
/**
* Enable or disable show JSON mode
* When enabled, all tool renderers will use the default JSON renderer
*/
function setShowJsonMode(enabled) {
	showJsonMode = enabled;
}
/**
* Render tool - unified function that handles params, result, and streaming state
*/
function renderTool(toolName, params, result, isStreaming) {
	if (showJsonMode) {
		return defaultRenderer.render(params, result, isStreaming);
	}
	const renderer = getToolRenderer(toolName);
	if (renderer) {
		return renderer.render(params, result, isStreaming);
	}
	return defaultRenderer.render(params, result, isStreaming);
}
var defaultRenderer, showJsonMode;
var init_tools = __esmMin((() => {
	init_javascript_repl();
	init_extract_document();
	init_renderer_registry();
	init_BashRenderer();
	init_DefaultRenderer();
	registerToolRenderer("bash", new BashRenderer());
	defaultRenderer = new DefaultRenderer();
	showJsonMode = false;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/utils/message-meta.js
function formatClock(ts) {
	if (!ts) return "";
	try {
		const d$5 = new Date(ts);
		return d$5.toLocaleTimeString([], {
			hour: "2-digit",
			minute: "2-digit"
		});
	} catch {
		return "";
	}
}
function renderSurfaceChip(surface, senderHost, senderIp) {
	const key = (surface || "computer").toLowerCase();
	const meta = palette[key] ?? {
		label: surface || i18n("Unknown"),
		class: "bg-slate-500"
	};
	const hostPart = senderHost ? ` • ${senderHost}` : "";
	const ipPart = senderIp ? ` (${senderIp})` : "";
	return x`<span class="inline-flex items-center gap-1 px-2 py-[2px] rounded-full text-[10px] font-semibold text-white ${meta.class}">
      ${meta.label}${hostPart}${ipPart}
    </span>`;
}
var palette;
var init_message_meta = __esmMin((() => {
	init_lit();
	init_i18n();
	palette = {
		whatsapp: {
			label: "WhatsApp",
			class: "bg-emerald-600"
		},
		telegram: {
			label: "Telegram",
			class: "bg-sky-600"
		},
		webchat: {
			label: "WebChat",
			class: "bg-indigo-500"
		},
		computer: {
			label: "Computer",
			class: "bg-slate-600"
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/ThinkingBlock.js
var __decorate$20, ThinkingBlock;
var init_ThinkingBlock = __esmMin((() => {
	init_dist();
	init_lit();
	init_decorators();
	init_lucide();
	__decorate$20 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	ThinkingBlock = class ThinkingBlock$1 extends i {
		constructor() {
			super(...arguments);
			this.isStreaming = false;
			this.isExpanded = false;
		}
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.style.display = "block";
		}
		toggleExpanded() {
			this.isExpanded = !this.isExpanded;
		}
		render() {
			const shimmerClasses = this.isStreaming ? "animate-shimmer bg-gradient-to-r from-muted-foreground via-foreground to-muted-foreground bg-[length:200%_100%] bg-clip-text text-transparent" : "";
			return x`
			<div class="thinking-block">
				<div
					class="thinking-header cursor-pointer select-none flex items-center gap-2 py-1 text-sm text-muted-foreground hover:text-foreground transition-colors"
					@click=${this.toggleExpanded}
				>
					<span class="transition-transform inline-block ${this.isExpanded ? "rotate-90" : ""}">${icon(ChevronRight, "sm")}</span>
					<span class="${shimmerClasses}">Thinking...</span>
				</div>
				${this.isExpanded ? x`<markdown-block .content=${this.content} .isThinking=${true}></markdown-block>` : ""}
			</div>
		`;
		}
	};
	__decorate$20([n$1()], ThinkingBlock.prototype, "content", void 0);
	__decorate$20([n$1({ type: Boolean })], ThinkingBlock.prototype, "isStreaming", void 0);
	__decorate$20([r()], ThinkingBlock.prototype, "isExpanded", void 0);
	ThinkingBlock = __decorate$20([t("thinking-block")], ThinkingBlock);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/Messages.js
var __decorate$19, UserMessage, AssistantMessage, ToolMessageDebugView, ToolMessage, AbortedMessage;
var init_Messages = __esmMin((() => {
	init_lit();
	init_decorators();
	init_tools();
	init_format$1();
	init_i18n();
	init_message_meta();
	init_ThinkingBlock();
	__decorate$19 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	UserMessage = class UserMessage$1 extends i {
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.style.display = "block";
		}
		render() {
			const content = typeof this.message.content === "string" ? this.message.content : this.message.content.find((c$7) => c$7.type === "text")?.text || "";
			return x`
			<div class="px-4 mb-1 flex items-center gap-2 text-[11px] uppercase tracking-[0.08em] text-muted-foreground">
				${renderSurfaceChip(this.message.surface, this.message.senderHost, this.message.senderIp)}
				<span class="opacity-70">${formatClock(this.message.timestamp)}</span>
			</div>
			<div class="flex justify-start mx-4">
				<div class="user-message-container py-2 px-4 rounded-xl">
					<markdown-block .content=${content}></markdown-block>
					${this.message.attachments && this.message.attachments.length > 0 ? x`
								<div class="mt-3 flex flex-wrap gap-2">
									${this.message.attachments.map((attachment) => x` <attachment-tile .attachment=${attachment}></attachment-tile> `)}
								</div>
							` : ""}
				</div>
			</div>
		`;
		}
	};
	__decorate$19([n$1({ type: Object })], UserMessage.prototype, "message", void 0);
	UserMessage = __decorate$19([t("user-message")], UserMessage);
	AssistantMessage = class AssistantMessage$1 extends i {
		constructor() {
			super(...arguments);
			this.hideToolCalls = false;
			this.isStreaming = false;
		}
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.style.display = "block";
		}
		render() {
			const orderedParts = [];
			for (const chunk of this.message.content) {
				if (chunk.type === "text" && chunk.text.trim() !== "") {
					orderedParts.push(x`<markdown-block .content=${chunk.text}></markdown-block>`);
				} else if (chunk.type === "thinking" && chunk.thinking.trim() !== "") {
					orderedParts.push(x`<thinking-block .content=${chunk.thinking} .isStreaming=${this.isStreaming}></thinking-block>`);
				} else if (chunk.type === "toolCall") {
					if (!this.hideToolCalls) {
						const tool = this.tools?.find((t$6) => t$6.name === chunk.name);
						const pending = this.pendingToolCalls?.has(chunk.id) ?? false;
						const result = this.toolResultsById?.get(chunk.id);
						const aborted = this.message.stopReason === "aborted" && !result;
						orderedParts.push(x`<tool-message
							.tool=${tool}
							.toolCall=${chunk}
							.result=${result}
							.pending=${pending}
							.aborted=${aborted}
							.isStreaming=${this.isStreaming}
						></tool-message>`);
					}
				}
			}
			return x`
			<div>
				${orderedParts.length ? x` <div class="px-4 flex flex-col gap-3">${orderedParts}</div> ` : ""}
				${this.message.usage && !this.isStreaming ? this.onCostClick ? x` <div class="px-4 mt-2 text-xs text-muted-foreground cursor-pointer hover:text-foreground transition-colors" @click=${this.onCostClick}>${formatUsage(this.message.usage)}</div> ` : x` <div class="px-4 mt-2 text-xs text-muted-foreground">${formatUsage(this.message.usage)}</div> ` : ""}
				${this.message.stopReason === "error" && this.message.errorMessage ? x`
							<div class="mx-4 mt-3 p-3 bg-destructive/10 text-destructive rounded-lg text-sm overflow-hidden">
								<strong>${i18n("Error:")}</strong> ${this.message.errorMessage}
							</div>
						` : ""}
				${this.message.stopReason === "aborted" ? x`<span class="text-sm text-destructive italic">${i18n("Request aborted")}</span>` : ""}
			</div>
		`;
		}
	};
	__decorate$19([n$1({ type: Object })], AssistantMessage.prototype, "message", void 0);
	__decorate$19([n$1({ type: Array })], AssistantMessage.prototype, "tools", void 0);
	__decorate$19([n$1({ type: Object })], AssistantMessage.prototype, "pendingToolCalls", void 0);
	__decorate$19([n$1({ type: Boolean })], AssistantMessage.prototype, "hideToolCalls", void 0);
	__decorate$19([n$1({ type: Object })], AssistantMessage.prototype, "toolResultsById", void 0);
	__decorate$19([n$1({ type: Boolean })], AssistantMessage.prototype, "isStreaming", void 0);
	__decorate$19([n$1({ attribute: false })], AssistantMessage.prototype, "onCostClick", void 0);
	AssistantMessage = __decorate$19([t("assistant-message")], AssistantMessage);
	ToolMessageDebugView = class ToolMessageDebugView$1 extends i {
		constructor() {
			super(...arguments);
			this.hasResult = false;
		}
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.style.display = "block";
		}
		pretty(value) {
			try {
				if (typeof value === "string") {
					const maybeJson = JSON.parse(value);
					return {
						content: JSON.stringify(maybeJson, null, 2),
						isJson: true
					};
				}
				return {
					content: JSON.stringify(value, null, 2),
					isJson: true
				};
			} catch {
				return {
					content: typeof value === "string" ? value : String(value),
					isJson: false
				};
			}
		}
		render() {
			const textOutput = this.result?.content?.filter((c$7) => c$7.type === "text").map((c$7) => c$7.text).join("\n") || "";
			const output = this.pretty(textOutput);
			const details = this.pretty(this.result?.details);
			return x`
			<div class="mt-3 flex flex-col gap-2">
				<div>
					<div class="text-xs font-medium mb-1 text-muted-foreground">${i18n("Call")}</div>
					<code-block .code=${this.pretty(this.callArgs).content} language="json"></code-block>
				</div>
				<div>
					<div class="text-xs font-medium mb-1 text-muted-foreground">${i18n("Result")}</div>
					${this.hasResult ? x`<code-block .code=${output.content} language="${output.isJson ? "json" : "text"}"></code-block>
								<code-block .code=${details.content} language="${details.isJson ? "json" : "text"}"></code-block>` : x`<div class="text-xs text-muted-foreground">${i18n("(no result)")}</div>`}
				</div>
			</div>
		`;
		}
	};
	__decorate$19([n$1({ type: Object })], ToolMessageDebugView.prototype, "callArgs", void 0);
	__decorate$19([n$1({ type: Object })], ToolMessageDebugView.prototype, "result", void 0);
	__decorate$19([n$1({ type: Boolean })], ToolMessageDebugView.prototype, "hasResult", void 0);
	ToolMessageDebugView = __decorate$19([t("tool-message-debug")], ToolMessageDebugView);
	ToolMessage = class ToolMessage$1 extends i {
		constructor() {
			super(...arguments);
			this.pending = false;
			this.aborted = false;
			this.isStreaming = false;
		}
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.style.display = "block";
		}
		render() {
			const toolName = this.tool?.name || this.toolCall.name;
			const result = this.aborted ? {
				role: "toolResult",
				isError: true,
				content: [],
				toolCallId: this.toolCall.id,
				toolName: this.toolCall.name,
				timestamp: Date.now()
			} : this.result;
			const renderResult = renderTool(toolName, this.toolCall.arguments, result, !this.aborted && (this.isStreaming || this.pending));
			if (renderResult.isCustom) {
				return renderResult.content;
			}
			return x`
			<div class="p-2.5 border border-border rounded-md bg-card text-card-foreground shadow-xs">
				${renderResult.content}
			</div>
		`;
		}
	};
	__decorate$19([n$1({ type: Object })], ToolMessage.prototype, "toolCall", void 0);
	__decorate$19([n$1({ type: Object })], ToolMessage.prototype, "tool", void 0);
	__decorate$19([n$1({ type: Object })], ToolMessage.prototype, "result", void 0);
	__decorate$19([n$1({ type: Boolean })], ToolMessage.prototype, "pending", void 0);
	__decorate$19([n$1({ type: Boolean })], ToolMessage.prototype, "aborted", void 0);
	__decorate$19([n$1({ type: Boolean })], ToolMessage.prototype, "isStreaming", void 0);
	ToolMessage = __decorate$19([t("tool-message")], ToolMessage);
	AbortedMessage = class AbortedMessage$1 extends i {
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.style.display = "block";
		}
		render() {
			return x`<span class="text-sm text-destructive italic">${i18n("Request aborted")}</span>`;
		}
	};
	AbortedMessage = __decorate$19([t("aborted-message")], AbortedMessage);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/StreamingMessageContainer.js
var __decorate$18, StreamingMessageContainer;
var init_StreamingMessageContainer = __esmMin((() => {
	init_lit();
	init_decorators();
	__decorate$18 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	StreamingMessageContainer = class extends i {
		constructor() {
			super(...arguments);
			this.tools = [];
			this.isStreaming = false;
			this._message = null;
			this._pendingMessage = null;
			this._updateScheduled = false;
			this._immediateUpdate = false;
		}
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.style.display = "block";
		}
		setMessage(message, immediate = false) {
			this._pendingMessage = message;
			if (immediate || message === null) {
				this._immediateUpdate = true;
				this._message = message;
				this.requestUpdate();
				this._pendingMessage = null;
				this._updateScheduled = false;
				return;
			}
			if (!this._updateScheduled) {
				this._updateScheduled = true;
				requestAnimationFrame(async () => {
					if (!this._immediateUpdate && this._pendingMessage !== null) {
						this._message = JSON.parse(JSON.stringify(this._pendingMessage));
						this.requestUpdate();
					}
					this._pendingMessage = null;
					this._updateScheduled = false;
					this._immediateUpdate = false;
				});
			}
		}
		render() {
			if (!this._message) {
				if (this.isStreaming) return x`<div class="flex flex-col gap-3 mb-3">
					<span class="mx-4 inline-block w-2 h-4 bg-muted-foreground animate-pulse"></span>
				</div>`;
				return x``;
			}
			const msg = this._message;
			if (msg.role === "toolResult") {
				return x``;
			} else if (msg.role === "user") {
				return x``;
			} else if (msg.role === "assistant") {
				return x`
				<div class="flex flex-col gap-3 mb-3">
					<assistant-message
						.message=${msg}
						.tools=${this.tools}
						.isStreaming=${this.isStreaming}
						.pendingToolCalls=${this.pendingToolCalls}
						.toolResultsById=${this.toolResultsById}
						.hideToolCalls=${false}
						.onCostClick=${this.onCostClick}
					></assistant-message>
					${this.isStreaming ? x`<span class="mx-4 inline-block w-2 h-4 bg-muted-foreground animate-pulse"></span>` : ""}
				</div>
			`;
			}
		}
	};
	__decorate$18([n$1({ type: Array })], StreamingMessageContainer.prototype, "tools", void 0);
	__decorate$18([n$1({ type: Boolean })], StreamingMessageContainer.prototype, "isStreaming", void 0);
	__decorate$18([n$1({ type: Object })], StreamingMessageContainer.prototype, "pendingToolCalls", void 0);
	__decorate$18([n$1({ type: Object })], StreamingMessageContainer.prototype, "toolResultsById", void 0);
	__decorate$18([n$1({ attribute: false })], StreamingMessageContainer.prototype, "onCostClick", void 0);
	__decorate$18([r()], StreamingMessageContainer.prototype, "_message", void 0);
	if (!customElements.get("streaming-message-container")) {
		customElements.define("streaming-message-container", StreamingMessageContainer);
	}
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/AgentInterface.js
var __decorate$17, AgentInterface;
var init_AgentInterface = __esmMin((() => {
	init_lit();
	init_decorators();
	init_ModelSelector();
	init_MessageEditor();
	init_MessageList();
	init_Messages();
	init_app_storage();
	init_StreamingMessageContainer();
	init_format$1();
	init_i18n();
	__decorate$17 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	AgentInterface = class AgentInterface$1 extends i {
		constructor() {
			super(...arguments);
			this.enableAttachments = true;
			this.enableModelSelector = true;
			this.enableThinkingSelector = true;
			this.showThemeToggle = false;
			this.sessionThinkingLevel = "off";
			this.pendingThinkingLevel = null;
			this._autoScroll = true;
			this._lastScrollTop = 0;
			this._lastClientHeight = 0;
			this._handleScroll = (_ev) => {
				if (!this._scrollContainer) return;
				const currentScrollTop = this._scrollContainer.scrollTop;
				const scrollHeight = this._scrollContainer.scrollHeight;
				const clientHeight = this._scrollContainer.clientHeight;
				const distanceFromBottom = scrollHeight - currentScrollTop - clientHeight;
				if (clientHeight < this._lastClientHeight) {
					this._lastClientHeight = clientHeight;
					return;
				}
				if (currentScrollTop !== 0 && currentScrollTop < this._lastScrollTop && distanceFromBottom > 50) {
					this._autoScroll = false;
				} else if (distanceFromBottom < 10) {
					this._autoScroll = true;
				}
				this._lastScrollTop = currentScrollTop;
				this._lastClientHeight = clientHeight;
			};
		}
		setInput(text$2, attachments) {
			const update = () => {
				if (!this._messageEditor) requestAnimationFrame(update);
				else {
					this._messageEditor.value = text$2;
					this._messageEditor.attachments = attachments || [];
				}
			};
			update();
		}
		setAutoScroll(enabled) {
			this._autoScroll = enabled;
		}
		createRenderRoot() {
			return this;
		}
		willUpdate(changedProperties) {
			super.willUpdate(changedProperties);
			if (changedProperties.has("session")) {
				this.setupSessionSubscription();
			}
		}
		async connectedCallback() {
			super.connectedCallback();
			this.style.display = "flex";
			this.style.flexDirection = "column";
			this.style.height = "100%";
			this.style.minHeight = "0";
			await this.updateComplete;
			this._scrollContainer = this.querySelector(".overflow-y-auto");
			if (this._scrollContainer) {
				this._resizeObserver = new ResizeObserver(() => {
					if (this._autoScroll && this._scrollContainer) {
						this._scrollContainer.scrollTop = this._scrollContainer.scrollHeight;
					}
				});
				const contentContainer = this._scrollContainer.querySelector(".max-w-3xl");
				if (contentContainer) {
					this._resizeObserver.observe(contentContainer);
				}
				this._scrollContainer.addEventListener("scroll", this._handleScroll);
			}
			this.setupSessionSubscription();
		}
		disconnectedCallback() {
			super.disconnectedCallback();
			if (this._resizeObserver) {
				this._resizeObserver.disconnect();
				this._resizeObserver = undefined;
			}
			if (this._scrollContainer) {
				this._scrollContainer.removeEventListener("scroll", this._handleScroll);
			}
			if (this._unsubscribeSession) {
				this._unsubscribeSession();
				this._unsubscribeSession = undefined;
			}
		}
		setupSessionSubscription() {
			if (this._unsubscribeSession) {
				this._unsubscribeSession();
				this._unsubscribeSession = undefined;
			}
			if (!this.session) return;
			this._unsubscribeSession = this.session.subscribe(async (ev) => {
				if (ev.type === "state-update") {
					if (this.pendingThinkingLevel === null && ev.state.thinkingLevel) {
						this.sessionThinkingLevel = ev.state.thinkingLevel;
					}
					if (this._streamingContainer) {
						this._streamingContainer.isStreaming = ev.state.isStreaming;
						this._streamingContainer.setMessage(ev.state.streamMessage, !ev.state.isStreaming);
					}
					this.requestUpdate();
				} else if (ev.type === "error-no-model") {} else if (ev.type === "error-no-api-key") {}
			});
		}
		async sendMessage(input, attachments) {
			if (!input.trim() && attachments?.length === 0 || this.session?.state.isStreaming) return;
			const session = this.session;
			if (!session) throw new Error("No session set on AgentInterface");
			if (!session.state.model) throw new Error("No model set on AgentInterface");
			const provider = session.state.model.provider;
			const apiKey = await getAppStorage().providerKeys.get(provider);
			if (!apiKey) {
				if (!this.onApiKeyRequired) {
					console.error("No API key configured and no onApiKeyRequired handler set");
					return;
				}
				const success = await this.onApiKeyRequired(provider);
				if (!success) {
					return;
				}
			}
			if (this.onBeforeSend) {
				await this.onBeforeSend();
			}
			const baseThinking = this.sessionThinkingLevel || session.state.thinkingLevel || "off";
			const thinkingOverride = this.pendingThinkingLevel ?? baseThinking;
			const transient = this.pendingThinkingLevel !== null && this.pendingThinkingLevel !== baseThinking;
			this._messageEditor.value = "";
			this._messageEditor.attachments = [];
			this._autoScroll = true;
			await this.session?.prompt(input, attachments, {
				thinkingOverride,
				transient
			});
			this.pendingThinkingLevel = null;
			if (this._messageEditor) {
				this._messageEditor.thinkingLevel = this.sessionThinkingLevel || "off";
			}
		}
		renderMessages() {
			if (!this.session) return x`<div class="p-4 text-center text-muted-foreground">${i18n("No session available")}</div>`;
			const state$1 = this.session.state;
			const toolResultsById = new Map();
			for (const message of state$1.messages) {
				if (message.role === "toolResult") {
					toolResultsById.set(message.toolCallId, message);
				}
			}
			return x`
			<div class="flex flex-col gap-3">
				<!-- Stable messages list - won't re-render during streaming -->
				<message-list
					.messages=${this.session.state.messages}
					.tools=${state$1.tools}
					.pendingToolCalls=${this.session ? this.session.state.pendingToolCalls : new Set()}
					.isStreaming=${state$1.isStreaming}
					.onCostClick=${this.onCostClick}
				></message-list>

				<!-- Streaming message container - manages its own updates -->
				<streaming-message-container
					class="${state$1.isStreaming ? "" : "hidden"}"
					.tools=${state$1.tools}
					.isStreaming=${state$1.isStreaming}
					.pendingToolCalls=${state$1.pendingToolCalls}
					.toolResultsById=${toolResultsById}
					.onCostClick=${this.onCostClick}
				></streaming-message-container>
			</div>
		`;
		}
		renderStats() {
			if (!this.session) return x`<div class="text-xs h-5"></div>`;
			const state$1 = this.session.state;
			const totals = state$1.messages.filter((m$3) => m$3.role === "assistant").reduce((acc, msg) => {
				const usage = msg.usage;
				if (usage) {
					acc.input += usage.input;
					acc.output += usage.output;
					acc.cacheRead += usage.cacheRead;
					acc.cacheWrite += usage.cacheWrite;
					acc.cost.total += usage.cost.total;
				}
				return acc;
			}, {
				input: 0,
				output: 0,
				cacheRead: 0,
				cacheWrite: 0,
				cost: {
					input: 0,
					output: 0,
					cacheRead: 0,
					cacheWrite: 0,
					total: 0
				}
			});
			const hasTotals = totals.input || totals.output || totals.cacheRead || totals.cacheWrite;
			const totalsText = hasTotals ? formatUsage(totals) : "";
			return x`
			<div class="text-xs text-muted-foreground flex justify-between items-center h-5">
				<div class="flex items-center gap-1">
					${this.showThemeToggle ? x`<theme-toggle></theme-toggle>` : x``}
				</div>
				<div class="flex ml-auto items-center gap-3">
					${totalsText ? this.onCostClick ? x`<span class="cursor-pointer hover:text-foreground transition-colors" @click=${this.onCostClick}>${totalsText}</span>` : x`<span>${totalsText}</span>` : ""}
				</div>
			</div>
		`;
		}
		render() {
			if (!this.session) return x`<div class="p-4 text-center text-muted-foreground">${i18n("No session set")}</div>`;
			const session = this.session;
			const state$1 = this.session.state;
			return x`
			<div class="flex flex-col h-full bg-background text-foreground">
				<!-- Messages Area -->
				<div class="flex-1 overflow-y-auto">
					<div class="max-w-3xl mx-auto p-4 pb-0">${this.renderMessages()}</div>
				</div>

				<!-- Input Area -->
				<div class="shrink-0">
					<div class="max-w-3xl mx-auto px-2">
						<message-editor
							.isStreaming=${state$1.isStreaming}
                            .currentModel=${state$1.model}
                            .thinkingLevel=${this.pendingThinkingLevel ?? this.sessionThinkingLevel ?? state$1.thinkingLevel}
                            .showAttachmentButton=${this.enableAttachments}
                            .showModelSelector=${this.enableModelSelector}
                            .showThinkingSelector=${this.enableThinkingSelector}
                            .onSend=${(input, attachments) => {
				this.sendMessage(input, attachments);
			}}
							.onAbort=${() => session.abort()}
							.onModelSelect=${() => {
				ModelSelector.open(state$1.model, (model) => session.setModel(model));
			}}
							.onThinkingChange=${this.enableThinkingSelector ? (level) => {
				this.pendingThinkingLevel = level;
				if (this._messageEditor) {
					this._messageEditor.thinkingLevel = level;
				}
				this.requestUpdate();
			} : undefined}
						></message-editor>
						${this.renderStats()}
					</div>
				</div>
			</div>
		`;
		}
	};
	__decorate$17([n$1({ attribute: false })], AgentInterface.prototype, "session", void 0);
	__decorate$17([n$1({ type: Boolean })], AgentInterface.prototype, "enableAttachments", void 0);
	__decorate$17([n$1({ type: Boolean })], AgentInterface.prototype, "enableModelSelector", void 0);
	__decorate$17([n$1({ type: Boolean })], AgentInterface.prototype, "enableThinkingSelector", void 0);
	__decorate$17([n$1({ type: String })], AgentInterface.prototype, "sessionThinkingLevel", void 0);
	__decorate$17([n$1({ type: Boolean })], AgentInterface.prototype, "showThemeToggle", void 0);
	__decorate$17([n$1({ attribute: false })], AgentInterface.prototype, "onApiKeyRequired", void 0);
	__decorate$17([n$1({ attribute: false })], AgentInterface.prototype, "onBeforeSend", void 0);
	__decorate$17([n$1({ attribute: false })], AgentInterface.prototype, "onBeforeToolCall", void 0);
	__decorate$17([n$1({ attribute: false })], AgentInterface.prototype, "onCostClick", void 0);
	__decorate$17([e$1("message-editor")], AgentInterface.prototype, "_messageEditor", void 0);
	__decorate$17([e$1("streaming-message-container")], AgentInterface.prototype, "_streamingContainer", void 0);
	__decorate$17([r()], AgentInterface.prototype, "pendingThinkingLevel", void 0);
	AgentInterface = __decorate$17([t("agent-interface")], AgentInterface);
	if (!customElements.get("agent-interface")) {
		customElements.define("agent-interface", AgentInterface);
	}
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/sandbox/ArtifactsRuntimeProvider.js
var ArtifactsRuntimeProvider;
var init_ArtifactsRuntimeProvider = __esmMin((() => {
	init_prompts();
	ArtifactsRuntimeProvider = class {
		constructor(artifactsPanel, agent, readWrite = true) {
			this.artifactsPanel = artifactsPanel;
			this.agent = agent;
			this.readWrite = readWrite;
		}
		getData() {
			const snapshot = {};
			this.artifactsPanel.artifacts.forEach((artifact, filename) => {
				snapshot[filename] = artifact.content;
			});
			return { artifacts: snapshot };
		}
		getRuntime() {
			return (_sandboxId) => {
				const isJsonFile = (filename) => filename.endsWith(".json");
				window.listArtifacts = async () => {
					if (window.sendRuntimeMessage) {
						const response = await window.sendRuntimeMessage({
							type: "artifact-operation",
							action: "list"
						});
						if (!response.success) throw new Error(response.error);
						return response.result;
					} else {
						return Object.keys(window.artifacts || {});
					}
				};
				window.getArtifact = async (filename) => {
					let content;
					if (window.sendRuntimeMessage) {
						const response = await window.sendRuntimeMessage({
							type: "artifact-operation",
							action: "get",
							filename
						});
						if (!response.success) throw new Error(response.error);
						content = response.result;
					} else {
						if (!window.artifacts?.[filename]) {
							throw new Error(`Artifact not found (offline mode): ${filename}`);
						}
						content = window.artifacts[filename];
					}
					if (isJsonFile(filename)) {
						try {
							return JSON.parse(content);
						} catch (e$10) {
							throw new Error(`Failed to parse JSON from ${filename}: ${e$10}`);
						}
					}
					return content;
				};
				window.createOrUpdateArtifact = async (filename, content, mimeType) => {
					if (!window.sendRuntimeMessage) {
						throw new Error("Cannot create/update artifacts in offline mode (read-only)");
					}
					let finalContent = content;
					if (isJsonFile(filename) && typeof content !== "string") {
						finalContent = JSON.stringify(content, null, 2);
					} else if (typeof content !== "string") {
						finalContent = JSON.stringify(content, null, 2);
					}
					const response = await window.sendRuntimeMessage({
						type: "artifact-operation",
						action: "createOrUpdate",
						filename,
						content: finalContent,
						mimeType
					});
					if (!response.success) throw new Error(response.error);
				};
				window.deleteArtifact = async (filename) => {
					if (!window.sendRuntimeMessage) {
						throw new Error("Cannot delete artifacts in offline mode (read-only)");
					}
					const response = await window.sendRuntimeMessage({
						type: "artifact-operation",
						action: "delete",
						filename
					});
					if (!response.success) throw new Error(response.error);
				};
			};
		}
		async handleMessage(message, respond) {
			if (message.type !== "artifact-operation") {
				return;
			}
			const { action, filename, content, mimeType } = message;
			try {
				switch (action) {
					case "list": {
						const filenames = Array.from(this.artifactsPanel.artifacts.keys());
						respond({
							success: true,
							result: filenames
						});
						break;
					}
					case "get": {
						const artifact = this.artifactsPanel.artifacts.get(filename);
						if (!artifact) {
							respond({
								success: false,
								error: `Artifact not found: ${filename}`
							});
						} else {
							respond({
								success: true,
								result: artifact.content
							});
						}
						break;
					}
					case "createOrUpdate": {
						try {
							const exists = this.artifactsPanel.artifacts.has(filename);
							const command = exists ? "rewrite" : "create";
							const action$1 = exists ? "update" : "create";
							await this.artifactsPanel.tool.execute("", {
								command,
								filename,
								content
							});
							this.agent?.appendMessage({
								role: "artifact",
								action: action$1,
								filename,
								content,
								...action$1 === "create" && { title: filename },
								timestamp: new Date().toISOString()
							});
							respond({ success: true });
						} catch (err) {
							respond({
								success: false,
								error: err.message
							});
						}
						break;
					}
					case "delete": {
						try {
							await this.artifactsPanel.tool.execute("", {
								command: "delete",
								filename
							});
							this.agent?.appendMessage({
								role: "artifact",
								action: "delete",
								filename,
								timestamp: new Date().toISOString()
							});
							respond({ success: true });
						} catch (err) {
							respond({
								success: false,
								error: err.message
							});
						}
						break;
					}
					default: respond({
						success: false,
						error: `Unknown artifact action: ${action}`
					});
				}
			} catch (error$2) {
				respond({
					success: false,
					error: error$2.message
				});
			}
		}
		getDescription() {
			return this.readWrite ? ARTIFACTS_RUNTIME_PROVIDER_DESCRIPTION_RW : ARTIFACTS_RUNTIME_PROVIDER_DESCRIPTION_RO;
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/sandbox/AttachmentsRuntimeProvider.js
var AttachmentsRuntimeProvider;
var init_AttachmentsRuntimeProvider = __esmMin((() => {
	init_prompts();
	AttachmentsRuntimeProvider = class {
		constructor(attachments) {
			this.attachments = attachments;
		}
		getData() {
			const attachmentsData = this.attachments.map((a$2) => ({
				id: a$2.id,
				fileName: a$2.fileName,
				mimeType: a$2.mimeType,
				size: a$2.size,
				content: a$2.content,
				extractedText: a$2.extractedText
			}));
			return { attachments: attachmentsData };
		}
		getRuntime() {
			return (_sandboxId) => {
				window.listAttachments = () => (window.attachments || []).map((a$2) => ({
					id: a$2.id,
					fileName: a$2.fileName,
					mimeType: a$2.mimeType,
					size: a$2.size
				}));
				window.readTextAttachment = (attachmentId) => {
					const a$2 = (window.attachments || []).find((x$2) => x$2.id === attachmentId);
					if (!a$2) throw new Error("Attachment not found: " + attachmentId);
					if (a$2.extractedText) return a$2.extractedText;
					try {
						return atob(a$2.content);
					} catch {
						throw new Error("Failed to decode text content for: " + attachmentId);
					}
				};
				window.readBinaryAttachment = (attachmentId) => {
					const a$2 = (window.attachments || []).find((x$2) => x$2.id === attachmentId);
					if (!a$2) throw new Error("Attachment not found: " + attachmentId);
					const bin$1 = atob(a$2.content);
					const bytes = new Uint8Array(bin$1.length);
					for (let i$7 = 0; i$7 < bin$1.length; i$7++) bytes[i$7] = bin$1.charCodeAt(i$7);
					return bytes;
				};
			};
		}
		getDescription() {
			return ATTACHMENTS_RUNTIME_DESCRIPTION;
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/artifacts/ArtifactElement.js
var ArtifactElement;
var init_ArtifactElement = __esmMin((() => {
	init_lit();
	ArtifactElement = class extends i {
		constructor() {
			super(...arguments);
			this.filename = "";
		}
		createRenderRoot() {
			return this;
		}
	};
}));

//#endregion
//#region node_modules/katex/dist/katex.mjs
/**
* Escapes text to prevent scripting attacks.
*/
function escape$4(text$2) {
	return String(text$2).replace(ESCAPE_REGEX, (match) => ESCAPE_LOOKUP[match]);
}
function getDefaultValue(schema) {
	if (schema.default) {
		return schema.default;
	}
	var type = schema.type;
	var defaultType = Array.isArray(type) ? type[0] : type;
	if (typeof defaultType !== "string") {
		return defaultType.enum[0];
	}
	switch (defaultType) {
		case "boolean": return false;
		case "string": return "";
		case "number": return 0;
		case "object": return {};
	}
}
/**
* Given a codepoint, return the name of the script or script family
* it is from, or null if it is not part of a known block
*/
function scriptFromCodepoint(codepoint) {
	for (var i$7 = 0; i$7 < scriptData.length; i$7++) {
		var script = scriptData[i$7];
		for (var _i$1 = 0; _i$1 < script.blocks.length; _i$1++) {
			var block = script.blocks[_i$1];
			if (codepoint >= block[0] && codepoint <= block[1]) {
				return script.name;
			}
		}
	}
	return null;
}
/**
* Given a codepoint, return true if it falls within one of the
* scripts or script families defined above and false otherwise.
*
* Micro benchmarks shows that this is faster than
* /[\u3000-\u30FF\u4E00-\u9FAF\uFF00-\uFF60\uAC00-\uD7AF\u0900-\u109F]/.test()
* in Firefox, Chrome and Node.
*/
function supportedCodepoint(codepoint) {
	for (var i$7 = 0; i$7 < allBlocks.length; i$7 += 2) {
		if (codepoint >= allBlocks[i$7] && codepoint <= allBlocks[i$7 + 1]) {
			return true;
		}
	}
	return false;
}
/**
* This function adds new font metrics to default metricMap
* It can also override existing metrics
*/
function setFontMetrics(fontName, metrics) {
	fontMetricsData[fontName] = metrics;
}
/**
* This function is a convenience function for looking up information in the
* metricMap table. It takes a character as a string, and a font.
*
* Note: the `width` property may be undefined if fontMetricsData.js wasn't
* built using `Make extended_metrics`.
*/
function getCharacterMetrics(character, font, mode) {
	if (!fontMetricsData[font]) {
		throw new Error("Font metrics not found for font: " + font + ".");
	}
	var ch$1 = character.charCodeAt(0);
	var metrics = fontMetricsData[font][ch$1];
	if (!metrics && character[0] in extraCharacterMap) {
		ch$1 = extraCharacterMap[character[0]].charCodeAt(0);
		metrics = fontMetricsData[font][ch$1];
	}
	if (!metrics && mode === "text") {
		if (supportedCodepoint(ch$1)) {
			metrics = fontMetricsData[font][77];
		}
	}
	if (metrics) {
		return {
			depth: metrics[0],
			height: metrics[1],
			italic: metrics[2],
			skew: metrics[3],
			width: metrics[4]
		};
	}
}
/**
* Get the font metrics for a given size.
*/
function getGlobalMetrics(size) {
	var sizeIndex;
	if (size >= 5) {
		sizeIndex = 0;
	} else if (size >= 3) {
		sizeIndex = 1;
	} else {
		sizeIndex = 2;
	}
	if (!fontMetricsBySizeIndex[sizeIndex]) {
		var metrics = fontMetricsBySizeIndex[sizeIndex] = { cssEmPerMu: sigmasAndXis.quad[sizeIndex] / 18 };
		for (var key in sigmasAndXis) {
			if (sigmasAndXis.hasOwnProperty(key)) {
				metrics[key] = sigmasAndXis[key][sizeIndex];
			}
		}
	}
	return fontMetricsBySizeIndex[sizeIndex];
}
function assertSymbolDomNode(group) {
	if (group instanceof SymbolNode) {
		return group;
	} else {
		throw new Error("Expected symbolNode but got " + String(group) + ".");
	}
}
function assertSpan(group) {
	if (group instanceof Span) {
		return group;
	} else {
		throw new Error("Expected span<HtmlDomNode> but got " + String(group) + ".");
	}
}
/** `acceptUnicodeChar = true` is only applicable if `replace` is set. */
function defineSymbol(mode, font, group, replace, name, acceptUnicodeChar) {
	symbols[mode][name] = {
		font,
		group,
		replace
	};
	if (acceptUnicodeChar && replace) {
		symbols[mode][replace] = symbols[mode][name];
	}
}
function defineFunction(_ref) {
	var { type, names, props, handler, htmlBuilder: htmlBuilder$10, mathmlBuilder: mathmlBuilder$10 } = _ref;
	var data = {
		type,
		numArgs: props.numArgs,
		argTypes: props.argTypes,
		allowedInArgument: !!props.allowedInArgument,
		allowedInText: !!props.allowedInText,
		allowedInMath: props.allowedInMath === undefined ? true : props.allowedInMath,
		numOptionalArgs: props.numOptionalArgs || 0,
		infix: !!props.infix,
		primitive: !!props.primitive,
		handler
	};
	for (var i$7 = 0; i$7 < names.length; ++i$7) {
		_functions[names[i$7]] = data;
	}
	if (type) {
		if (htmlBuilder$10) {
			_htmlGroupBuilders[type] = htmlBuilder$10;
		}
		if (mathmlBuilder$10) {
			_mathmlGroupBuilders[type] = mathmlBuilder$10;
		}
	}
}
/**
* Use this to register only the HTML and MathML builders for a function (e.g.
* if the function's ParseNode is generated in Parser.js rather than via a
* stand-alone handler provided to `defineFunction`).
*/
function defineFunctionBuilders(_ref2) {
	var { type, htmlBuilder: htmlBuilder$10, mathmlBuilder: mathmlBuilder$10 } = _ref2;
	defineFunction({
		type,
		names: [],
		props: { numArgs: 0 },
		handler() {
			throw new Error("Should never be called.");
		},
		htmlBuilder: htmlBuilder$10,
		mathmlBuilder: mathmlBuilder$10
	});
}
/**
* Combine an array of HTML DOM nodes (e.g., the output of `buildExpression`)
* into an unbreakable HTML node of class .base, with proper struts to
* guarantee correct vertical extent.  `buildHTML` calls this repeatedly to
* make up the entire expression as a sequence of unbreakable units.
*/
function buildHTMLUnbreakable(children, options) {
	var body = makeSpan$1(["base"], children, options);
	var strut = makeSpan$1(["strut"]);
	strut.style.height = makeEm(body.height + body.depth);
	if (body.depth) {
		strut.style.verticalAlign = makeEm(-body.depth);
	}
	body.children.unshift(strut);
	return body;
}
/**
* Take an entire parse tree, and build it into an appropriate set of HTML
* nodes.
*/
function buildHTML(tree, options) {
	var tag = null;
	if (tree.length === 1 && tree[0].type === "tag") {
		tag = tree[0].tag;
		tree = tree[0].body;
	}
	var expression = buildExpression$1(tree, options, "root");
	var eqnNum;
	if (expression.length === 2 && expression[1].hasClass("tag")) {
		eqnNum = expression.pop();
	}
	var children = [];
	var parts = [];
	for (var i$7 = 0; i$7 < expression.length; i$7++) {
		parts.push(expression[i$7]);
		if (expression[i$7].hasClass("mbin") || expression[i$7].hasClass("mrel") || expression[i$7].hasClass("allowbreak")) {
			var nobreak = false;
			while (i$7 < expression.length - 1 && expression[i$7 + 1].hasClass("mspace") && !expression[i$7 + 1].hasClass("newline")) {
				i$7++;
				parts.push(expression[i$7]);
				if (expression[i$7].hasClass("nobreak")) {
					nobreak = true;
				}
			}
			if (!nobreak) {
				children.push(buildHTMLUnbreakable(parts, options));
				parts = [];
			}
		} else if (expression[i$7].hasClass("newline")) {
			parts.pop();
			if (parts.length > 0) {
				children.push(buildHTMLUnbreakable(parts, options));
				parts = [];
			}
			children.push(expression[i$7]);
		}
	}
	if (parts.length > 0) {
		children.push(buildHTMLUnbreakable(parts, options));
	}
	var tagChild;
	if (tag) {
		tagChild = buildHTMLUnbreakable(buildExpression$1(tag, options, true));
		tagChild.classes = ["tag"];
		children.push(tagChild);
	} else if (eqnNum) {
		children.push(eqnNum);
	}
	var htmlNode = makeSpan$1(["katex-html"], children);
	htmlNode.setAttribute("aria-hidden", "true");
	if (tagChild) {
		var strut = tagChild.children[0];
		strut.style.height = makeEm(htmlNode.height + htmlNode.depth);
		if (htmlNode.depth) {
			strut.style.verticalAlign = makeEm(-htmlNode.depth);
		}
	}
	return htmlNode;
}
/**
* These objects store data about MathML nodes. This is the MathML equivalent
* of the types in domTree.js. Since MathML handles its own rendering, and
* since we're mainly using MathML to improve accessibility, we don't manage
* any of the styling state that the plain DOM nodes do.
*
* The `toNode` and `toMarkup` functions work similarly to how they do in
* domTree.js, creating namespaced DOM nodes and HTML text markup respectively.
*/
function newDocumentFragment(children) {
	return new DocumentFragment$1(children);
}
/**
* Check for <mi>.</mi> which is how a dot renders in MathML,
* or <mo separator="true" lspace="0em" rspace="0em">,</mo>
* which is how a braced comma {,} renders in MathML
*/
function isNumberPunctuation(group) {
	if (!group) {
		return false;
	}
	if (group.type === "mi" && group.children.length === 1) {
		var child = group.children[0];
		return child instanceof TextNode && child.text === ".";
	} else if (group.type === "mo" && group.children.length === 1 && group.getAttribute("separator") === "true" && group.getAttribute("lspace") === "0em" && group.getAttribute("rspace") === "0em") {
		var _child = group.children[0];
		return _child instanceof TextNode && _child.text === ",";
	} else {
		return false;
	}
}
/**
* Takes a full parse tree and settings and builds a MathML representation of
* it. In particular, we put the elements from building the parse tree into a
* <semantics> tag so we can also include that TeX source as an annotation.
*
* Note that we actually return a domTree element with a `<math>` inside it so
* we can do appropriate styling.
*/
function buildMathML(tree, texExpression, options, isDisplayMode, forMathmlOnly) {
	var expression = buildExpression(tree, options);
	var wrapper;
	if (expression.length === 1 && expression[0] instanceof MathNode && ["mrow", "mtable"].includes(expression[0].type)) {
		wrapper = expression[0];
	} else {
		wrapper = new mathMLTree.MathNode("mrow", expression);
	}
	var annotation = new mathMLTree.MathNode("annotation", [new mathMLTree.TextNode(texExpression)]);
	annotation.setAttribute("encoding", "application/x-tex");
	var semantics = new mathMLTree.MathNode("semantics", [wrapper, annotation]);
	var math$1 = new mathMLTree.MathNode("math", [semantics]);
	math$1.setAttribute("xmlns", "http://www.w3.org/1998/Math/MathML");
	if (isDisplayMode) {
		math$1.setAttribute("display", "block");
	}
	var wrapperClass = forMathmlOnly ? "katex" : "katex-mathml";
	return buildCommon.makeSpan([wrapperClass], [math$1]);
}
/**
* Asserts that the node is of the given type and returns it with stricter
* typing. Throws if the node's type does not match.
*/
function assertNodeType(node, type) {
	if (!node || node.type !== type) {
		throw new Error("Expected node of type " + type + ", but got " + (node ? "node of type " + node.type : String(node)));
	}
	return node;
}
/**
* Returns the node more strictly typed iff it is of the given type. Otherwise,
* returns null.
*/
function assertSymbolNodeType(node) {
	var typedNode = checkSymbolNodeType(node);
	if (!typedNode) {
		throw new Error("Expected node of symbol group type, but got " + (node ? "node of type " + node.type : String(node)));
	}
	return typedNode;
}
/**
* Returns the node more strictly typed iff it is of the given type. Otherwise,
* returns null.
*/
function checkSymbolNodeType(node) {
	if (node && (node.type === "atom" || NON_ATOMS.hasOwnProperty(node.type))) {
		return node;
	}
	return null;
}
function htmlBuilder$9(group, options) {
	var elements = buildExpression$1(group.body, options, true);
	return makeSpan([group.mclass], elements, options);
}
function mathmlBuilder$8(group, options) {
	var node;
	var inner$1 = buildExpression(group.body, options);
	if (group.mclass === "minner") {
		node = new mathMLTree.MathNode("mpadded", inner$1);
	} else if (group.mclass === "mord") {
		if (group.isCharacterBox) {
			node = inner$1[0];
			node.type = "mi";
		} else {
			node = new mathMLTree.MathNode("mi", inner$1);
		}
	} else {
		if (group.isCharacterBox) {
			node = inner$1[0];
			node.type = "mo";
		} else {
			node = new mathMLTree.MathNode("mo", inner$1);
		}
		if (group.mclass === "mbin") {
			node.attributes.lspace = "0.22em";
			node.attributes.rspace = "0.22em";
		} else if (group.mclass === "mpunct") {
			node.attributes.lspace = "0em";
			node.attributes.rspace = "0.17em";
		} else if (group.mclass === "mopen" || group.mclass === "mclose") {
			node.attributes.lspace = "0em";
			node.attributes.rspace = "0em";
		} else if (group.mclass === "minner") {
			node.attributes.lspace = "0.0556em";
			node.attributes.width = "+0.1111em";
		}
	}
	return node;
}
function cdArrow(arrowChar, labels, parser) {
	var funcName = cdArrowFunctionName[arrowChar];
	switch (funcName) {
		case "\\\\cdrightarrow":
		case "\\\\cdleftarrow": return parser.callFunction(funcName, [labels[0]], [labels[1]]);
		case "\\uparrow":
		case "\\downarrow": {
			var leftLabel = parser.callFunction("\\\\cdleft", [labels[0]], []);
			var bareArrow = {
				type: "atom",
				text: funcName,
				mode: "math",
				family: "rel"
			};
			var sizedArrow = parser.callFunction("\\Big", [bareArrow], []);
			var rightLabel = parser.callFunction("\\\\cdright", [labels[1]], []);
			var arrowGroup = {
				type: "ordgroup",
				mode: "math",
				body: [
					leftLabel,
					sizedArrow,
					rightLabel
				]
			};
			return parser.callFunction("\\\\cdparent", [arrowGroup], []);
		}
		case "\\\\cdlongequal": return parser.callFunction("\\\\cdlongequal", [], []);
		case "\\Vert": {
			var arrow = {
				type: "textord",
				text: "\\Vert",
				mode: "math"
			};
			return parser.callFunction("\\Big", [arrow], []);
		}
		default: return {
			type: "textord",
			text: " ",
			mode: "math"
		};
	}
}
function parseCD(parser) {
	var parsedRows = [];
	parser.gullet.beginGroup();
	parser.gullet.macros.set("\\cr", "\\\\\\relax");
	parser.gullet.beginGroup();
	while (true) {
		parsedRows.push(parser.parseExpression(false, "\\\\"));
		parser.gullet.endGroup();
		parser.gullet.beginGroup();
		var next = parser.fetch().text;
		if (next === "&" || next === "\\\\") {
			parser.consume();
		} else if (next === "\\end") {
			if (parsedRows[parsedRows.length - 1].length === 0) {
				parsedRows.pop();
			}
			break;
		} else {
			throw new ParseError("Expected \\\\ or \\cr or \\end", parser.nextToken);
		}
	}
	var row = [];
	var body = [row];
	for (var i$7 = 0; i$7 < parsedRows.length; i$7++) {
		var rowNodes = parsedRows[i$7];
		var cell = newCell();
		for (var j$2 = 0; j$2 < rowNodes.length; j$2++) {
			if (!isStartOfArrow(rowNodes[j$2])) {
				cell.body.push(rowNodes[j$2]);
			} else {
				row.push(cell);
				j$2 += 1;
				var arrowChar = assertSymbolNodeType(rowNodes[j$2]).text;
				var labels = new Array(2);
				labels[0] = {
					type: "ordgroup",
					mode: "math",
					body: []
				};
				labels[1] = {
					type: "ordgroup",
					mode: "math",
					body: []
				};
				if ("=|.".indexOf(arrowChar) > -1);
				else if ("<>AV".indexOf(arrowChar) > -1) {
					for (var labelNum = 0; labelNum < 2; labelNum++) {
						var inLabel = true;
						for (var k$2 = j$2 + 1; k$2 < rowNodes.length; k$2++) {
							if (isLabelEnd(rowNodes[k$2], arrowChar)) {
								inLabel = false;
								j$2 = k$2;
								break;
							}
							if (isStartOfArrow(rowNodes[k$2])) {
								throw new ParseError("Missing a " + arrowChar + " character to complete a CD arrow.", rowNodes[k$2]);
							}
							labels[labelNum].body.push(rowNodes[k$2]);
						}
						if (inLabel) {
							throw new ParseError("Missing a " + arrowChar + " character to complete a CD arrow.", rowNodes[j$2]);
						}
					}
				} else {
					throw new ParseError("Expected one of \"<>AV=|.\" after @", rowNodes[j$2]);
				}
				var arrow = cdArrow(arrowChar, labels, parser);
				var wrappedArrow = {
					type: "styling",
					body: [arrow],
					mode: "math",
					style: "display"
				};
				row.push(wrappedArrow);
				cell = newCell();
			}
		}
		if (i$7 % 2 === 0) {
			row.push(cell);
		} else {
			row.shift();
		}
		row = [];
		body.push(row);
	}
	parser.gullet.endGroup();
	parser.gullet.endGroup();
	var cols = new Array(body[0].length).fill({
		type: "align",
		align: "c",
		pregap: .25,
		postgap: .25
	});
	return {
		type: "array",
		mode: "math",
		body,
		arraystretch: 1,
		addJot: true,
		rowGaps: [null],
		cols,
		colSeparationType: "CD",
		hLinesBeforeRow: new Array(body.length + 1).fill([])
	};
}
function checkDelimiter(delim, context) {
	var symDelim = checkSymbolNodeType(delim);
	if (symDelim && delimiters.includes(symDelim.text)) {
		return symDelim;
	} else if (symDelim) {
		throw new ParseError("Invalid delimiter '" + symDelim.text + "' after '" + context.funcName + "'", delim);
	} else {
		throw new ParseError("Invalid delimiter type '" + delim.type + "'", delim);
	}
}
function assertParsed(group) {
	if (!group.body) {
		throw new Error("Bug: The leftright ParseNode wasn't fully parsed.");
	}
}
function defineEnvironment(_ref) {
	var { type, names, props, handler, htmlBuilder: htmlBuilder$10, mathmlBuilder: mathmlBuilder$10 } = _ref;
	var data = {
		type,
		numArgs: props.numArgs || 0,
		allowedInText: false,
		numOptionalArgs: 0,
		handler
	};
	for (var i$7 = 0; i$7 < names.length; ++i$7) {
		_environments[names[i$7]] = data;
	}
	if (htmlBuilder$10) {
		_htmlGroupBuilders[type] = htmlBuilder$10;
	}
	if (mathmlBuilder$10) {
		_mathmlGroupBuilders[type] = mathmlBuilder$10;
	}
}
function defineMacro(name, body) {
	_macros[name] = body;
}
function getHLines(parser) {
	var hlineInfo = [];
	parser.consumeSpaces();
	var nxt = parser.fetch().text;
	if (nxt === "\\relax") {
		parser.consume();
		parser.consumeSpaces();
		nxt = parser.fetch().text;
	}
	while (nxt === "\\hline" || nxt === "\\hdashline") {
		parser.consume();
		hlineInfo.push(nxt === "\\hdashline");
		parser.consumeSpaces();
		nxt = parser.fetch().text;
	}
	return hlineInfo;
}
function getAutoTag(name) {
	if (name.indexOf("ed") === -1) {
		return name.indexOf("*") === -1;
	}
}
/**
* Parse the body of the environment, with rows delimited by \\ and
* columns delimited by &, and create a nested list in row-major order
* with one group per cell.  If given an optional argument style
* ("text", "display", etc.), then each cell is cast into that style.
*/
function parseArray(parser, _ref, style) {
	var { hskipBeforeAndAfter, addJot, cols, arraystretch, colSeparationType, autoTag, singleRow, emptySingleRow, maxNumCols, leqno } = _ref;
	parser.gullet.beginGroup();
	if (!singleRow) {
		parser.gullet.macros.set("\\cr", "\\\\\\relax");
	}
	if (!arraystretch) {
		var stretch = parser.gullet.expandMacroAsText("\\arraystretch");
		if (stretch == null) {
			arraystretch = 1;
		} else {
			arraystretch = parseFloat(stretch);
			if (!arraystretch || arraystretch < 0) {
				throw new ParseError("Invalid \\arraystretch: " + stretch);
			}
		}
	}
	parser.gullet.beginGroup();
	var row = [];
	var body = [row];
	var rowGaps = [];
	var hLinesBeforeRow = [];
	var tags = autoTag != null ? [] : undefined;
	function beginRow() {
		if (autoTag) {
			parser.gullet.macros.set("\\@eqnsw", "1", true);
		}
	}
	function endRow() {
		if (tags) {
			if (parser.gullet.macros.get("\\df@tag")) {
				tags.push(parser.subparse([new Token("\\df@tag")]));
				parser.gullet.macros.set("\\df@tag", undefined, true);
			} else {
				tags.push(Boolean(autoTag) && parser.gullet.macros.get("\\@eqnsw") === "1");
			}
		}
	}
	beginRow();
	hLinesBeforeRow.push(getHLines(parser));
	while (true) {
		var cell = parser.parseExpression(false, singleRow ? "\\end" : "\\\\");
		parser.gullet.endGroup();
		parser.gullet.beginGroup();
		cell = {
			type: "ordgroup",
			mode: parser.mode,
			body: cell
		};
		if (style) {
			cell = {
				type: "styling",
				mode: parser.mode,
				style,
				body: [cell]
			};
		}
		row.push(cell);
		var next = parser.fetch().text;
		if (next === "&") {
			if (maxNumCols && row.length === maxNumCols) {
				if (singleRow || colSeparationType) {
					throw new ParseError("Too many tab characters: &", parser.nextToken);
				} else {
					parser.settings.reportNonstrict("textEnv", "Too few columns " + "specified in the {array} column argument.");
				}
			}
			parser.consume();
		} else if (next === "\\end") {
			endRow();
			if (row.length === 1 && cell.type === "styling" && cell.body[0].body.length === 0 && (body.length > 1 || !emptySingleRow)) {
				body.pop();
			}
			if (hLinesBeforeRow.length < body.length + 1) {
				hLinesBeforeRow.push([]);
			}
			break;
		} else if (next === "\\\\") {
			parser.consume();
			var size = void 0;
			if (parser.gullet.future().text !== " ") {
				size = parser.parseSizeGroup(true);
			}
			rowGaps.push(size ? size.value : null);
			endRow();
			hLinesBeforeRow.push(getHLines(parser));
			row = [];
			body.push(row);
			beginRow();
		} else {
			throw new ParseError("Expected & or \\\\ or \\cr or \\end", parser.nextToken);
		}
	}
	parser.gullet.endGroup();
	parser.gullet.endGroup();
	return {
		type: "array",
		mode: parser.mode,
		addJot,
		arraystretch,
		body,
		cols,
		rowGaps,
		hskipBeforeAndAfter,
		hLinesBeforeRow,
		colSeparationType,
		tags,
		leqno
	};
}
function dCellStyle(envName) {
	if (envName.slice(0, 1) === "d") {
		return "display";
	} else {
		return "text";
	}
}
function sizingGroup(value, options, baseOptions) {
	var inner$1 = buildExpression$1(value, options, false);
	var multiplier = options.sizeMultiplier / baseOptions.sizeMultiplier;
	for (var i$7 = 0; i$7 < inner$1.length; i$7++) {
		var pos = inner$1[i$7].classes.indexOf("sizing");
		if (pos < 0) {
			Array.prototype.push.apply(inner$1[i$7].classes, options.sizingClasses(baseOptions));
		} else if (inner$1[i$7].classes[pos + 1] === "reset-size" + options.size) {
			inner$1[i$7].classes[pos + 1] = "reset-size" + baseOptions.size;
		}
		inner$1[i$7].height *= multiplier;
		inner$1[i$7].depth *= multiplier;
	}
	return buildCommon.makeFragment(inner$1);
}
var SourceLocation, Token, ParseError, deflt, uppercase, hyphenate, ESCAPE_LOOKUP, ESCAPE_REGEX, getBaseElem, isCharacterBox, assert, protocolFromUrl, utils, SETTINGS_SCHEMA, Settings, Style, D$1, Dc, T$1, Tc, S$1, Sc, SS, SSc, styles, sup, sub, fracNum, fracDen, cramp, text$1, Style$1, scriptData, allBlocks, hLinePad, sqrtMain, sqrtSize1, sqrtSize2, sqrtSize3, sqrtSize4, phasePath, sqrtTall, sqrtPath, innerPath, path, tallDelim, DocumentFragment$1, fontMetricsData, sigmasAndXis, extraCharacterMap, fontMetricsBySizeIndex, sizeStyleMap, sizeMultipliers, sizeAtStyle, Options, ptPerUnit, relativeUnit, validUnit, calculateSize, makeEm, createClass, initNode, toNode, invalidAttributeNameRegex, toMarkup, Span, Anchor, Img, iCombinations, SymbolNode, SvgNode, PathNode, LineNode, ATOMS, NON_ATOMS, symbols, math, text, main, ams, accent, bin, close, inner, mathord, op, open, punct, rel, spacing, textord, ligatures, mathTextSymbols, i$1, ch, textSymbols, _i, _ch, letters, _i2, _ch2, wideChar, _i3, _ch3, _i4, _ch4, extraLatin, _i5, _ch5, wideLatinLetterData, wideNumeralData, wideCharacterFont, lookupSymbol, makeSymbol, mathsym, boldsymbol, makeOrd, canCombine, tryCombineChars, sizeElementFromChildren, makeSpan$2, makeSvgSpan, makeLineSpan, makeAnchor, makeFragment, wrapFragment, getVListChildrenAndDepth, makeVList, makeGlue, retrieveTextFontName, fontMap, svgData, staticSvg, buildCommon, thinspace, mediumspace, thickspace, spacings, tightSpacings, _functions, _htmlGroupBuilders, _mathmlGroupBuilders, normalizeArgument, ordargument, makeSpan$1, binLeftCanceller, binRightCanceller, styleMap$1, DomEnum, buildExpression$1, traverseNonSpaceNodes, checkPartialGroup, getOutermostNode, getTypeOfDomTree, makeNullDelimiter, buildGroup$1, MathNode, TextNode, SpaceNode, mathMLTree, makeText, makeRow, getVariant, buildExpression, buildExpressionRow, buildGroup, optionsFromSettings, displayWrap, buildTree, buildHTMLTree, stretchyCodePoint, mathMLnode, katexImagesData, groupLength, svgSpan, encloseSpan, stretchy, htmlBuilder$a, mathmlBuilder$9, NON_STRETCHY_ACCENT_REGEX, paddedNode, makeSpan, binrelClass, cdArrowFunctionName, newCell, isStartOfArrow, isLabelEnd, htmlBuilder$8, mathmlBuilder$7, globalMap, checkControlSequence, getRHS, letCommand, getMetrics, styleWrap, centerSpan, makeSmallDelim, mathrmSize, makeLargeDelim, makeGlyphSpan, makeInner, lapInEms, lap, verts, doubleVerts, makeStackedDelim, vbPad, emPad, sqrtSvg, makeSqrtImage, stackLargeDelimiters, stackAlwaysDelimiters, stackNeverDelimiters, sizeToMaxHeight, makeSizedDelim, stackNeverDelimiterSequence, stackAlwaysDelimiterSequence, stackLargeDelimiterSequence, delimTypeToFont, traverseSequence, makeCustomSizedDelim, makeLeftRightDelim, delimiter, delimiterSizes, delimiters, htmlBuilder$7, mathmlBuilder$6, _environments, _macros, validateAmsEnvironmentContext, htmlBuilder$6, alignMap, mathmlBuilder$5, alignedHandler, environments, htmlBuilder$5, mathmlBuilder$4, fontAliases, adjustStyle, htmlBuilder$4, mathmlBuilder$3, stylArray, delimFromValue, htmlBuilder$3, mathmlBuilder$2, sizeData, chooseMathStyle, assembleSupSub, noSuccessor, htmlBuilder$2, mathmlBuilder$1, singleCharBigOps, singleCharIntegrals, htmlBuilder$1, mathmlBuilder, sizeFuncs, htmlBuilder, styleMap, htmlBuilderDelegate, defaultVariant, cssSpace, regularSpace, pad, textFontFamilies, textFontWeights, textFontShapes, optionsWithFont, makeVerb, functions, spaceRegexString, controlWordRegexString, controlSymbolRegexString, controlWordWhitespaceRegexString, controlSpaceRegexString, combiningDiacriticalMarkString, combiningDiacriticalMarksEndRegex, tokenRegexString, Lexer, Namespace, macros, digitToNumber, newcommand, dotsByToken, spaceAfterDots, latexRaiseA, braketHelper, implicitCommands, MacroExpander, unicodeSubRegEx, uSubsAndSups, unicodeAccents, unicodeSymbols, Parser, parseTree, render, renderToString, generateParseTree, renderError, renderToDomTree, renderToHTMLTree, version$2, __domTree, katex;
var init_katex = __esmMin((() => {
	SourceLocation = class SourceLocation {
		constructor(lexer, start, end) {
			this.lexer = void 0;
			this.start = void 0;
			this.end = void 0;
			this.lexer = lexer;
			this.start = start;
			this.end = end;
		}
		/**
		* Merges two `SourceLocation`s from location providers, given they are
		* provided in order of appearance.
		* - Returns the first one's location if only the first is provided.
		* - Returns a merged range of the first and the last if both are provided
		*   and their lexers match.
		* - Otherwise, returns null.
		*/
		static range(first, second) {
			if (!second) {
				return first && first.loc;
			} else if (!first || !first.loc || !second.loc || first.loc.lexer !== second.loc.lexer) {
				return null;
			} else {
				return new SourceLocation(first.loc.lexer, first.loc.start, second.loc.end);
			}
		}
	};
	Token = class Token {
		constructor(text$2, loc) {
			this.text = void 0;
			this.loc = void 0;
			this.noexpand = void 0;
			this.treatAsRelax = void 0;
			this.text = text$2;
			this.loc = loc;
		}
		/**
		* Given a pair of tokens (this and endToken), compute a `Token` encompassing
		* the whole input range enclosed by these two.
		*/
		range(endToken, text$2) {
			return new Token(text$2, SourceLocation.range(this, endToken));
		}
	};
	ParseError = class ParseError {
		constructor(message, token) {
			this.name = void 0;
			this.position = void 0;
			this.length = void 0;
			this.rawMessage = void 0;
			var error$2 = "KaTeX parse error: " + message;
			var start;
			var end;
			var loc = token && token.loc;
			if (loc && loc.start <= loc.end) {
				var input = loc.lexer.input;
				start = loc.start;
				end = loc.end;
				if (start === input.length) {
					error$2 += " at end of input: ";
				} else {
					error$2 += " at position " + (start + 1) + ": ";
				}
				var underlined = input.slice(start, end).replace(/[^]/g, "$&̲");
				var left;
				if (start > 15) {
					left = "…" + input.slice(start - 15, start);
				} else {
					left = input.slice(0, start);
				}
				var right;
				if (end + 15 < input.length) {
					right = input.slice(end, end + 15) + "…";
				} else {
					right = input.slice(end);
				}
				error$2 += left + underlined + right;
			}
			var self$1 = new Error(error$2);
			self$1.name = "ParseError";
			self$1.__proto__ = ParseError.prototype;
			self$1.position = start;
			if (start != null && end != null) {
				self$1.length = end - start;
			}
			self$1.rawMessage = message;
			return self$1;
		}
	};
	ParseError.prototype.__proto__ = Error.prototype;
	deflt = function deflt$1(setting, defaultIfUndefined) {
		return setting === undefined ? defaultIfUndefined : setting;
	};
	uppercase = /([A-Z])/g;
	hyphenate = function hyphenate$1(str) {
		return str.replace(uppercase, "-$1").toLowerCase();
	};
	ESCAPE_LOOKUP = {
		"&": "&amp;",
		">": "&gt;",
		"<": "&lt;",
		"\"": "&quot;",
		"'": "&#x27;"
	};
	ESCAPE_REGEX = /[&><"']/g;
	getBaseElem = function getBaseElem$1(group) {
		if (group.type === "ordgroup") {
			if (group.body.length === 1) {
				return getBaseElem$1(group.body[0]);
			} else {
				return group;
			}
		} else if (group.type === "color") {
			if (group.body.length === 1) {
				return getBaseElem$1(group.body[0]);
			} else {
				return group;
			}
		} else if (group.type === "font") {
			return getBaseElem$1(group.body);
		} else {
			return group;
		}
	};
	isCharacterBox = function isCharacterBox$1(group) {
		var baseElem = getBaseElem(group);
		return baseElem.type === "mathord" || baseElem.type === "textord" || baseElem.type === "atom";
	};
	assert = function assert$2(value) {
		if (!value) {
			throw new Error("Expected non-null, but got " + String(value));
		}
		return value;
	};
	protocolFromUrl = function protocolFromUrl$1(url) {
		var protocol = /^[\x00-\x20]*([^\\/#?]*?)(:|&#0*58|&#x0*3a|&colon)/i.exec(url);
		if (!protocol) {
			return "_relative";
		}
		if (protocol[2] !== ":") {
			return null;
		}
		if (!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(protocol[1])) {
			return null;
		}
		return protocol[1].toLowerCase();
	};
	utils = {
		deflt,
		escape: escape$4,
		hyphenate,
		getBaseElem,
		isCharacterBox,
		protocolFromUrl
	};
	SETTINGS_SCHEMA = {
		displayMode: {
			type: "boolean",
			description: "Render math in display mode, which puts the math in " + "display style (so \\int and \\sum are large, for example), and " + "centers the math on the page on its own line.",
			cli: "-d, --display-mode"
		},
		output: {
			type: { enum: [
				"htmlAndMathml",
				"html",
				"mathml"
			] },
			description: "Determines the markup language of the output.",
			cli: "-F, --format <type>"
		},
		leqno: {
			type: "boolean",
			description: "Render display math in leqno style (left-justified tags)."
		},
		fleqn: {
			type: "boolean",
			description: "Render display math flush left."
		},
		throwOnError: {
			type: "boolean",
			default: true,
			cli: "-t, --no-throw-on-error",
			cliDescription: "Render errors (in the color given by --error-color) ins" + "tead of throwing a ParseError exception when encountering an error."
		},
		errorColor: {
			type: "string",
			default: "#cc0000",
			cli: "-c, --error-color <color>",
			cliDescription: "A color string given in the format 'rgb' or 'rrggbb' " + "(no #). This option determines the color of errors rendered by the " + "-t option.",
			cliProcessor: (color) => "#" + color
		},
		macros: {
			type: "object",
			cli: "-m, --macro <def>",
			cliDescription: "Define custom macro of the form '\\foo:expansion' (use " + "multiple -m arguments for multiple macros).",
			cliDefault: [],
			cliProcessor: (def, defs) => {
				defs.push(def);
				return defs;
			}
		},
		minRuleThickness: {
			type: "number",
			description: "Specifies a minimum thickness, in ems, for fraction lines," + " `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, " + "`\\hdashline`, `\\underline`, `\\overline`, and the borders of " + "`\\fbox`, `\\boxed`, and `\\fcolorbox`.",
			processor: (t$6) => Math.max(0, t$6),
			cli: "--min-rule-thickness <size>",
			cliProcessor: parseFloat
		},
		colorIsTextColor: {
			type: "boolean",
			description: "Makes \\color behave like LaTeX's 2-argument \\textcolor, " + "instead of LaTeX's one-argument \\color mode change.",
			cli: "-b, --color-is-text-color"
		},
		strict: {
			type: [
				{ enum: [
					"warn",
					"ignore",
					"error"
				] },
				"boolean",
				"function"
			],
			description: "Turn on strict / LaTeX faithfulness mode, which throws an " + "error if the input uses features that are not supported by LaTeX.",
			cli: "-S, --strict",
			cliDefault: false
		},
		trust: {
			type: ["boolean", "function"],
			description: "Trust the input, enabling all HTML features such as \\url.",
			cli: "-T, --trust"
		},
		maxSize: {
			type: "number",
			default: Infinity,
			description: "If non-zero, all user-specified sizes, e.g. in " + "\\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, " + "elements and spaces can be arbitrarily large",
			processor: (s$5) => Math.max(0, s$5),
			cli: "-s, --max-size <n>",
			cliProcessor: parseInt
		},
		maxExpand: {
			type: "number",
			default: 1e3,
			description: "Limit the number of macro expansions to the specified " + "number, to prevent e.g. infinite macro loops. If set to Infinity, " + "the macro expander will try to fully expand as in LaTeX.",
			processor: (n$9) => Math.max(0, n$9),
			cli: "-e, --max-expand <n>",
			cliProcessor: (n$9) => n$9 === "Infinity" ? Infinity : parseInt(n$9)
		},
		globalGroup: {
			type: "boolean",
			cli: false
		}
	};
	Settings = class {
		constructor(options) {
			this.displayMode = void 0;
			this.output = void 0;
			this.leqno = void 0;
			this.fleqn = void 0;
			this.throwOnError = void 0;
			this.errorColor = void 0;
			this.macros = void 0;
			this.minRuleThickness = void 0;
			this.colorIsTextColor = void 0;
			this.strict = void 0;
			this.trust = void 0;
			this.maxSize = void 0;
			this.maxExpand = void 0;
			this.globalGroup = void 0;
			options = options || {};
			for (var prop in SETTINGS_SCHEMA) {
				if (SETTINGS_SCHEMA.hasOwnProperty(prop)) {
					var schema = SETTINGS_SCHEMA[prop];
					this[prop] = options[prop] !== undefined ? schema.processor ? schema.processor(options[prop]) : options[prop] : getDefaultValue(schema);
				}
			}
		}
		/**
		* Report nonstrict (non-LaTeX-compatible) input.
		* Can safely not be called if `this.strict` is false in JavaScript.
		*/
		reportNonstrict(errorCode, errorMsg, token) {
			var strict = this.strict;
			if (typeof strict === "function") {
				strict = strict(errorCode, errorMsg, token);
			}
			if (!strict || strict === "ignore") {
				return;
			} else if (strict === true || strict === "error") {
				throw new ParseError("LaTeX-incompatible input and strict mode is set to 'error': " + (errorMsg + " [" + errorCode + "]"), token);
			} else if (strict === "warn") {
				typeof console !== "undefined" && console.warn("LaTeX-incompatible input and strict mode is set to 'warn': " + (errorMsg + " [" + errorCode + "]"));
			} else {
				typeof console !== "undefined" && console.warn("LaTeX-incompatible input and strict mode is set to " + ("unrecognized '" + strict + "': " + errorMsg + " [" + errorCode + "]"));
			}
		}
		/**
		* Check whether to apply strict (LaTeX-adhering) behavior for unusual
		* input (like `\\`).  Unlike `nonstrict`, will not throw an error;
		* instead, "error" translates to a return value of `true`, while "ignore"
		* translates to a return value of `false`.  May still print a warning:
		* "warn" prints a warning and returns `false`.
		* This is for the second category of `errorCode`s listed in the README.
		*/
		useStrictBehavior(errorCode, errorMsg, token) {
			var strict = this.strict;
			if (typeof strict === "function") {
				try {
					strict = strict(errorCode, errorMsg, token);
				} catch (error$2) {
					strict = "error";
				}
			}
			if (!strict || strict === "ignore") {
				return false;
			} else if (strict === true || strict === "error") {
				return true;
			} else if (strict === "warn") {
				typeof console !== "undefined" && console.warn("LaTeX-incompatible input and strict mode is set to 'warn': " + (errorMsg + " [" + errorCode + "]"));
				return false;
			} else {
				typeof console !== "undefined" && console.warn("LaTeX-incompatible input and strict mode is set to " + ("unrecognized '" + strict + "': " + errorMsg + " [" + errorCode + "]"));
				return false;
			}
		}
		/**
		* Check whether to test potentially dangerous input, and return
		* `true` (trusted) or `false` (untrusted).  The sole argument `context`
		* should be an object with `command` field specifying the relevant LaTeX
		* command (as a string starting with `\`), and any other arguments, etc.
		* If `context` has a `url` field, a `protocol` field will automatically
		* get added by this function (changing the specified object).
		*/
		isTrusted(context) {
			if (context.url && !context.protocol) {
				var protocol = utils.protocolFromUrl(context.url);
				if (protocol == null) {
					return false;
				}
				context.protocol = protocol;
			}
			var trust = typeof this.trust === "function" ? this.trust(context) : this.trust;
			return Boolean(trust);
		}
	};
	Style = class {
		constructor(id, size, cramped) {
			this.id = void 0;
			this.size = void 0;
			this.cramped = void 0;
			this.id = id;
			this.size = size;
			this.cramped = cramped;
		}
		/**
		* Get the style of a superscript given a base in the current style.
		*/
		sup() {
			return styles[sup[this.id]];
		}
		/**
		* Get the style of a subscript given a base in the current style.
		*/
		sub() {
			return styles[sub[this.id]];
		}
		/**
		* Get the style of a fraction numerator given the fraction in the current
		* style.
		*/
		fracNum() {
			return styles[fracNum[this.id]];
		}
		/**
		* Get the style of a fraction denominator given the fraction in the current
		* style.
		*/
		fracDen() {
			return styles[fracDen[this.id]];
		}
		/**
		* Get the cramped version of a style (in particular, cramping a cramped style
		* doesn't change the style).
		*/
		cramp() {
			return styles[cramp[this.id]];
		}
		/**
		* Get a text or display version of this style.
		*/
		text() {
			return styles[text$1[this.id]];
		}
		/**
		* Return true if this style is tightly spaced (scriptstyle/scriptscriptstyle)
		*/
		isTight() {
			return this.size >= 2;
		}
	};
	D$1 = 0;
	Dc = 1;
	T$1 = 2;
	Tc = 3;
	S$1 = 4;
	Sc = 5;
	SS = 6;
	SSc = 7;
	styles = [
		new Style(D$1, 0, false),
		new Style(Dc, 0, true),
		new Style(T$1, 1, false),
		new Style(Tc, 1, true),
		new Style(S$1, 2, false),
		new Style(Sc, 2, true),
		new Style(SS, 3, false),
		new Style(SSc, 3, true)
	];
	sup = [
		S$1,
		Sc,
		S$1,
		Sc,
		SS,
		SSc,
		SS,
		SSc
	];
	sub = [
		Sc,
		Sc,
		Sc,
		Sc,
		SSc,
		SSc,
		SSc,
		SSc
	];
	fracNum = [
		T$1,
		Tc,
		S$1,
		Sc,
		SS,
		SSc,
		SS,
		SSc
	];
	fracDen = [
		Tc,
		Tc,
		Sc,
		Sc,
		SSc,
		SSc,
		SSc,
		SSc
	];
	cramp = [
		Dc,
		Dc,
		Tc,
		Tc,
		Sc,
		Sc,
		SSc,
		SSc
	];
	text$1 = [
		D$1,
		Dc,
		T$1,
		Tc,
		T$1,
		Tc,
		T$1,
		Tc
	];
	Style$1 = {
		DISPLAY: styles[D$1],
		TEXT: styles[T$1],
		SCRIPT: styles[S$1],
		SCRIPTSCRIPT: styles[SS]
	};
	scriptData = [
		{
			name: "latin",
			blocks: [[256, 591], [768, 879]]
		},
		{
			name: "cyrillic",
			blocks: [[1024, 1279]]
		},
		{
			name: "armenian",
			blocks: [[1328, 1423]]
		},
		{
			name: "brahmic",
			blocks: [[2304, 4255]]
		},
		{
			name: "georgian",
			blocks: [[4256, 4351]]
		},
		{
			name: "cjk",
			blocks: [
				[12288, 12543],
				[19968, 40879],
				[65280, 65376]
			]
		},
		{
			name: "hangul",
			blocks: [[44032, 55215]]
		}
	];
	allBlocks = [];
	scriptData.forEach((s$5) => s$5.blocks.forEach((b$3) => allBlocks.push(...b$3)));
	hLinePad = 80;
	sqrtMain = function sqrtMain$1(extraVinculum, hLinePad$1) {
		return "M95," + (622 + extraVinculum + hLinePad$1) + "\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl" + extraVinculum / 2.075 + " -" + extraVinculum + "\nc5.3,-9.3,12,-14,20,-14\nH400000v" + (40 + extraVinculum) + "H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM" + (834 + extraVinculum) + " " + hLinePad$1 + "h400000v" + (40 + extraVinculum) + "h-400000z";
	};
	sqrtSize1 = function sqrtSize1$1(extraVinculum, hLinePad$1) {
		return "M263," + (601 + extraVinculum + hLinePad$1) + "c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl" + extraVinculum / 2.084 + " -" + extraVinculum + "\nc4.7,-7.3,11,-11,19,-11\nH40000v" + (40 + extraVinculum) + "H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM" + (1001 + extraVinculum) + " " + hLinePad$1 + "h400000v" + (40 + extraVinculum) + "h-400000z";
	};
	sqrtSize2 = function sqrtSize2$1(extraVinculum, hLinePad$1) {
		return "M983 " + (10 + extraVinculum + hLinePad$1) + "\nl" + extraVinculum / 3.13 + " -" + extraVinculum + "\nc4,-6.7,10,-10,18,-10 H400000v" + (40 + extraVinculum) + "\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM" + (1001 + extraVinculum) + " " + hLinePad$1 + "h400000v" + (40 + extraVinculum) + "h-400000z";
	};
	sqrtSize3 = function sqrtSize3$1(extraVinculum, hLinePad$1) {
		return "M424," + (2398 + extraVinculum + hLinePad$1) + "\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl" + extraVinculum / 4.223 + " -" + extraVinculum + "c4,-6.7,10,-10,18,-10 H400000\nv" + (40 + extraVinculum) + "H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M" + (1001 + extraVinculum) + " " + hLinePad$1 + "\nh400000v" + (40 + extraVinculum) + "h-400000z";
	};
	sqrtSize4 = function sqrtSize4$1(extraVinculum, hLinePad$1) {
		return "M473," + (2713 + extraVinculum + hLinePad$1) + "\nc339.3,-1799.3,509.3,-2700,510,-2702 l" + extraVinculum / 5.298 + " -" + extraVinculum + "\nc3.3,-7.3,9.3,-11,18,-11 H400000v" + (40 + extraVinculum) + "H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM" + (1001 + extraVinculum) + " " + hLinePad$1 + "h400000v" + (40 + extraVinculum) + "H1017.7z";
	};
	phasePath = function phasePath$1(y$3) {
		var x$2 = y$3 / 2;
		return "M400000 " + y$3 + " H0 L" + x$2 + " 0 l65 45 L145 " + (y$3 - 80) + " H400000z";
	};
	sqrtTall = function sqrtTall$1(extraVinculum, hLinePad$1, viewBoxHeight) {
		var vertSegment = viewBoxHeight - 54 - hLinePad$1 - extraVinculum;
		return "M702 " + (extraVinculum + hLinePad$1) + "H400000" + (40 + extraVinculum) + "\nH742v" + vertSegment + "l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 " + hLinePad$1 + "H400000v" + (40 + extraVinculum) + "H742z";
	};
	sqrtPath = function sqrtPath$1(size, extraVinculum, viewBoxHeight) {
		extraVinculum = 1e3 * extraVinculum;
		var path$1 = "";
		switch (size) {
			case "sqrtMain":
				path$1 = sqrtMain(extraVinculum, hLinePad);
				break;
			case "sqrtSize1":
				path$1 = sqrtSize1(extraVinculum, hLinePad);
				break;
			case "sqrtSize2":
				path$1 = sqrtSize2(extraVinculum, hLinePad);
				break;
			case "sqrtSize3":
				path$1 = sqrtSize3(extraVinculum, hLinePad);
				break;
			case "sqrtSize4":
				path$1 = sqrtSize4(extraVinculum, hLinePad);
				break;
			case "sqrtTall": path$1 = sqrtTall(extraVinculum, hLinePad, viewBoxHeight);
		}
		return path$1;
	};
	innerPath = function innerPath$1(name, height) {
		switch (name) {
			case "⎜": return "M291 0 H417 V" + height + " H291z M291 0 H417 V" + height + " H291z";
			case "∣": return "M145 0 H188 V" + height + " H145z M145 0 H188 V" + height + " H145z";
			case "∥": return "M145 0 H188 V" + height + " H145z M145 0 H188 V" + height + " H145z" + ("M367 0 H410 V" + height + " H367z M367 0 H410 V" + height + " H367z");
			case "⎟": return "M457 0 H583 V" + height + " H457z M457 0 H583 V" + height + " H457z";
			case "⎢": return "M319 0 H403 V" + height + " H319z M319 0 H403 V" + height + " H319z";
			case "⎥": return "M263 0 H347 V" + height + " H263z M263 0 H347 V" + height + " H263z";
			case "⎪": return "M384 0 H504 V" + height + " H384z M384 0 H504 V" + height + " H384z";
			case "⏐": return "M312 0 H355 V" + height + " H312z M312 0 H355 V" + height + " H312z";
			case "‖": return "M257 0 H300 V" + height + " H257z M257 0 H300 V" + height + " H257z" + ("M478 0 H521 V" + height + " H478z M478 0 H521 V" + height + " H478z");
			default: return "";
		}
	};
	path = {
		doubleleftarrow: "M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",
		doublerightarrow: "M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",
		leftarrow: "M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",
		leftbrace: "M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",
		leftbraceunder: "M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",
		leftgroup: "M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",
		leftgroupunder: "M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",
		leftharpoon: "M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",
		leftharpoonplus: "M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",
		leftharpoondown: "M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",
		leftharpoondownplus: "M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",
		lefthook: "M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",
		leftlinesegment: "M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",
		leftmapsto: "M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",
		leftToFrom: "M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",
		longequal: "M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",
		midbrace: "M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",
		midbraceunder: "M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",
		oiintSize1: "M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",
		oiintSize2: "M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",
		oiiintSize1: "M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",
		oiiintSize2: "M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",
		rightarrow: "M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",
		rightbrace: "M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",
		rightbraceunder: "M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",
		rightgroup: "M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",
		rightgroupunder: "M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",
		rightharpoon: "M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",
		rightharpoonplus: "M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",
		rightharpoondown: "M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",
		rightharpoondownplus: "M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",
		righthook: "M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",
		rightlinesegment: "M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",
		rightToFrom: "M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",
		twoheadleftarrow: "M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",
		twoheadrightarrow: "M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",
		tilde1: "M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",
		tilde2: "M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",
		tilde3: "M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",
		tilde4: "M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",
		vec: "M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",
		widehat1: "M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",
		widehat2: "M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",
		widehat3: "M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",
		widehat4: "M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",
		widecheck1: "M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",
		widecheck2: "M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",
		widecheck3: "M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",
		widecheck4: "M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",
		baraboveleftarrow: "M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",
		rightarrowabovebar: "M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",
		baraboveshortleftharpoon: "M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",
		rightharpoonaboveshortbar: "M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",
		shortbaraboveleftharpoon: "M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",
		shortrightharpoonabovebar: "M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"
	};
	tallDelim = function tallDelim$1(label, midHeight) {
		switch (label) {
			case "lbrack": return "M403 1759 V84 H666 V0 H319 V1759 v" + midHeight + " v1759 h347 v-84\nH403z M403 1759 V0 H319 V1759 v" + midHeight + " v1759 h84z";
			case "rbrack": return "M347 1759 V0 H0 V84 H263 V1759 v" + midHeight + " v1759 H0 v84 H347z\nM347 1759 V0 H263 V1759 v" + midHeight + " v1759 h84z";
			case "vert": return "M145 15 v585 v" + midHeight + " v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v" + -midHeight + " v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v" + midHeight + " v585 h43z";
			case "doublevert": return "M145 15 v585 v" + midHeight + " v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v" + -midHeight + " v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v" + midHeight + " v585 h43z\nM367 15 v585 v" + midHeight + " v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v" + -midHeight + " v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M410 15 H367 v585 v" + midHeight + " v585 h43z";
			case "lfloor": return "M319 602 V0 H403 V602 v" + midHeight + " v1715 h263 v84 H319z\nMM319 602 V0 H403 V602 v" + midHeight + " v1715 H319z";
			case "rfloor": return "M319 602 V0 H403 V602 v" + midHeight + " v1799 H0 v-84 H319z\nMM319 602 V0 H403 V602 v" + midHeight + " v1715 H319z";
			case "lceil": return "M403 1759 V84 H666 V0 H319 V1759 v" + midHeight + " v602 h84z\nM403 1759 V0 H319 V1759 v" + midHeight + " v602 h84z";
			case "rceil": return "M347 1759 V0 H0 V84 H263 V1759 v" + midHeight + " v602 h84z\nM347 1759 V0 h-84 V1759 v" + midHeight + " v602 h84z";
			case "lparen": return "M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1\nc-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,\n-36,557 l0," + (midHeight + 84) + "c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,\n949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9\nc0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,\n-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189\nl0,-" + (midHeight + 92) + "c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,\n-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z";
			case "rparen": return "M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,\n63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5\nc11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0," + (midHeight + 9) + "\nc-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664\nc-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11\nc0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17\nc242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558\nl0,-" + (midHeight + 144) + "c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,\n-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z";
			default: throw new Error("Unknown stretchy delimiter.");
		}
	};
	DocumentFragment$1 = class {
		constructor(children) {
			this.children = void 0;
			this.classes = void 0;
			this.height = void 0;
			this.depth = void 0;
			this.maxFontSize = void 0;
			this.style = void 0;
			this.children = children;
			this.classes = [];
			this.height = 0;
			this.depth = 0;
			this.maxFontSize = 0;
			this.style = {};
		}
		hasClass(className) {
			return this.classes.includes(className);
		}
		/** Convert the fragment into a node. */
		toNode() {
			var frag = document.createDocumentFragment();
			for (var i$7 = 0; i$7 < this.children.length; i$7++) {
				frag.appendChild(this.children[i$7].toNode());
			}
			return frag;
		}
		/** Convert the fragment into HTML markup. */
		toMarkup() {
			var markup = "";
			for (var i$7 = 0; i$7 < this.children.length; i$7++) {
				markup += this.children[i$7].toMarkup();
			}
			return markup;
		}
		/**
		* Converts the math node into a string, similar to innerText. Applies to
		* MathDomNode's only.
		*/
		toText() {
			var toText = (child) => child.toText();
			return this.children.map(toText).join("");
		}
	};
	fontMetricsData = {
		"AMS-Regular": {
			"32": [
				0,
				0,
				0,
				0,
				.25
			],
			"65": [
				0,
				.68889,
				0,
				0,
				.72222
			],
			"66": [
				0,
				.68889,
				0,
				0,
				.66667
			],
			"67": [
				0,
				.68889,
				0,
				0,
				.72222
			],
			"68": [
				0,
				.68889,
				0,
				0,
				.72222
			],
			"69": [
				0,
				.68889,
				0,
				0,
				.66667
			],
			"70": [
				0,
				.68889,
				0,
				0,
				.61111
			],
			"71": [
				0,
				.68889,
				0,
				0,
				.77778
			],
			"72": [
				0,
				.68889,
				0,
				0,
				.77778
			],
			"73": [
				0,
				.68889,
				0,
				0,
				.38889
			],
			"74": [
				.16667,
				.68889,
				0,
				0,
				.5
			],
			"75": [
				0,
				.68889,
				0,
				0,
				.77778
			],
			"76": [
				0,
				.68889,
				0,
				0,
				.66667
			],
			"77": [
				0,
				.68889,
				0,
				0,
				.94445
			],
			"78": [
				0,
				.68889,
				0,
				0,
				.72222
			],
			"79": [
				.16667,
				.68889,
				0,
				0,
				.77778
			],
			"80": [
				0,
				.68889,
				0,
				0,
				.61111
			],
			"81": [
				.16667,
				.68889,
				0,
				0,
				.77778
			],
			"82": [
				0,
				.68889,
				0,
				0,
				.72222
			],
			"83": [
				0,
				.68889,
				0,
				0,
				.55556
			],
			"84": [
				0,
				.68889,
				0,
				0,
				.66667
			],
			"85": [
				0,
				.68889,
				0,
				0,
				.72222
			],
			"86": [
				0,
				.68889,
				0,
				0,
				.72222
			],
			"87": [
				0,
				.68889,
				0,
				0,
				1
			],
			"88": [
				0,
				.68889,
				0,
				0,
				.72222
			],
			"89": [
				0,
				.68889,
				0,
				0,
				.72222
			],
			"90": [
				0,
				.68889,
				0,
				0,
				.66667
			],
			"107": [
				0,
				.68889,
				0,
				0,
				.55556
			],
			"160": [
				0,
				0,
				0,
				0,
				.25
			],
			"165": [
				0,
				.675,
				.025,
				0,
				.75
			],
			"174": [
				.15559,
				.69224,
				0,
				0,
				.94666
			],
			"240": [
				0,
				.68889,
				0,
				0,
				.55556
			],
			"295": [
				0,
				.68889,
				0,
				0,
				.54028
			],
			"710": [
				0,
				.825,
				0,
				0,
				2.33334
			],
			"732": [
				0,
				.9,
				0,
				0,
				2.33334
			],
			"770": [
				0,
				.825,
				0,
				0,
				2.33334
			],
			"771": [
				0,
				.9,
				0,
				0,
				2.33334
			],
			"989": [
				.08167,
				.58167,
				0,
				0,
				.77778
			],
			"1008": [
				0,
				.43056,
				.04028,
				0,
				.66667
			],
			"8245": [
				0,
				.54986,
				0,
				0,
				.275
			],
			"8463": [
				0,
				.68889,
				0,
				0,
				.54028
			],
			"8487": [
				0,
				.68889,
				0,
				0,
				.72222
			],
			"8498": [
				0,
				.68889,
				0,
				0,
				.55556
			],
			"8502": [
				0,
				.68889,
				0,
				0,
				.66667
			],
			"8503": [
				0,
				.68889,
				0,
				0,
				.44445
			],
			"8504": [
				0,
				.68889,
				0,
				0,
				.66667
			],
			"8513": [
				0,
				.68889,
				0,
				0,
				.63889
			],
			"8592": [
				-.03598,
				.46402,
				0,
				0,
				.5
			],
			"8594": [
				-.03598,
				.46402,
				0,
				0,
				.5
			],
			"8602": [
				-.13313,
				.36687,
				0,
				0,
				1
			],
			"8603": [
				-.13313,
				.36687,
				0,
				0,
				1
			],
			"8606": [
				.01354,
				.52239,
				0,
				0,
				1
			],
			"8608": [
				.01354,
				.52239,
				0,
				0,
				1
			],
			"8610": [
				.01354,
				.52239,
				0,
				0,
				1.11111
			],
			"8611": [
				.01354,
				.52239,
				0,
				0,
				1.11111
			],
			"8619": [
				0,
				.54986,
				0,
				0,
				1
			],
			"8620": [
				0,
				.54986,
				0,
				0,
				1
			],
			"8621": [
				-.13313,
				.37788,
				0,
				0,
				1.38889
			],
			"8622": [
				-.13313,
				.36687,
				0,
				0,
				1
			],
			"8624": [
				0,
				.69224,
				0,
				0,
				.5
			],
			"8625": [
				0,
				.69224,
				0,
				0,
				.5
			],
			"8630": [
				0,
				.43056,
				0,
				0,
				1
			],
			"8631": [
				0,
				.43056,
				0,
				0,
				1
			],
			"8634": [
				.08198,
				.58198,
				0,
				0,
				.77778
			],
			"8635": [
				.08198,
				.58198,
				0,
				0,
				.77778
			],
			"8638": [
				.19444,
				.69224,
				0,
				0,
				.41667
			],
			"8639": [
				.19444,
				.69224,
				0,
				0,
				.41667
			],
			"8642": [
				.19444,
				.69224,
				0,
				0,
				.41667
			],
			"8643": [
				.19444,
				.69224,
				0,
				0,
				.41667
			],
			"8644": [
				.1808,
				.675,
				0,
				0,
				1
			],
			"8646": [
				.1808,
				.675,
				0,
				0,
				1
			],
			"8647": [
				.1808,
				.675,
				0,
				0,
				1
			],
			"8648": [
				.19444,
				.69224,
				0,
				0,
				.83334
			],
			"8649": [
				.1808,
				.675,
				0,
				0,
				1
			],
			"8650": [
				.19444,
				.69224,
				0,
				0,
				.83334
			],
			"8651": [
				.01354,
				.52239,
				0,
				0,
				1
			],
			"8652": [
				.01354,
				.52239,
				0,
				0,
				1
			],
			"8653": [
				-.13313,
				.36687,
				0,
				0,
				1
			],
			"8654": [
				-.13313,
				.36687,
				0,
				0,
				1
			],
			"8655": [
				-.13313,
				.36687,
				0,
				0,
				1
			],
			"8666": [
				.13667,
				.63667,
				0,
				0,
				1
			],
			"8667": [
				.13667,
				.63667,
				0,
				0,
				1
			],
			"8669": [
				-.13313,
				.37788,
				0,
				0,
				1
			],
			"8672": [
				-.064,
				.437,
				0,
				0,
				1.334
			],
			"8674": [
				-.064,
				.437,
				0,
				0,
				1.334
			],
			"8705": [
				0,
				.825,
				0,
				0,
				.5
			],
			"8708": [
				0,
				.68889,
				0,
				0,
				.55556
			],
			"8709": [
				.08167,
				.58167,
				0,
				0,
				.77778
			],
			"8717": [
				0,
				.43056,
				0,
				0,
				.42917
			],
			"8722": [
				-.03598,
				.46402,
				0,
				0,
				.5
			],
			"8724": [
				.08198,
				.69224,
				0,
				0,
				.77778
			],
			"8726": [
				.08167,
				.58167,
				0,
				0,
				.77778
			],
			"8733": [
				0,
				.69224,
				0,
				0,
				.77778
			],
			"8736": [
				0,
				.69224,
				0,
				0,
				.72222
			],
			"8737": [
				0,
				.69224,
				0,
				0,
				.72222
			],
			"8738": [
				.03517,
				.52239,
				0,
				0,
				.72222
			],
			"8739": [
				.08167,
				.58167,
				0,
				0,
				.22222
			],
			"8740": [
				.25142,
				.74111,
				0,
				0,
				.27778
			],
			"8741": [
				.08167,
				.58167,
				0,
				0,
				.38889
			],
			"8742": [
				.25142,
				.74111,
				0,
				0,
				.5
			],
			"8756": [
				0,
				.69224,
				0,
				0,
				.66667
			],
			"8757": [
				0,
				.69224,
				0,
				0,
				.66667
			],
			"8764": [
				-.13313,
				.36687,
				0,
				0,
				.77778
			],
			"8765": [
				-.13313,
				.37788,
				0,
				0,
				.77778
			],
			"8769": [
				-.13313,
				.36687,
				0,
				0,
				.77778
			],
			"8770": [
				-.03625,
				.46375,
				0,
				0,
				.77778
			],
			"8774": [
				.30274,
				.79383,
				0,
				0,
				.77778
			],
			"8776": [
				-.01688,
				.48312,
				0,
				0,
				.77778
			],
			"8778": [
				.08167,
				.58167,
				0,
				0,
				.77778
			],
			"8782": [
				.06062,
				.54986,
				0,
				0,
				.77778
			],
			"8783": [
				.06062,
				.54986,
				0,
				0,
				.77778
			],
			"8785": [
				.08198,
				.58198,
				0,
				0,
				.77778
			],
			"8786": [
				.08198,
				.58198,
				0,
				0,
				.77778
			],
			"8787": [
				.08198,
				.58198,
				0,
				0,
				.77778
			],
			"8790": [
				0,
				.69224,
				0,
				0,
				.77778
			],
			"8791": [
				.22958,
				.72958,
				0,
				0,
				.77778
			],
			"8796": [
				.08198,
				.91667,
				0,
				0,
				.77778
			],
			"8806": [
				.25583,
				.75583,
				0,
				0,
				.77778
			],
			"8807": [
				.25583,
				.75583,
				0,
				0,
				.77778
			],
			"8808": [
				.25142,
				.75726,
				0,
				0,
				.77778
			],
			"8809": [
				.25142,
				.75726,
				0,
				0,
				.77778
			],
			"8812": [
				.25583,
				.75583,
				0,
				0,
				.5
			],
			"8814": [
				.20576,
				.70576,
				0,
				0,
				.77778
			],
			"8815": [
				.20576,
				.70576,
				0,
				0,
				.77778
			],
			"8816": [
				.30274,
				.79383,
				0,
				0,
				.77778
			],
			"8817": [
				.30274,
				.79383,
				0,
				0,
				.77778
			],
			"8818": [
				.22958,
				.72958,
				0,
				0,
				.77778
			],
			"8819": [
				.22958,
				.72958,
				0,
				0,
				.77778
			],
			"8822": [
				.1808,
				.675,
				0,
				0,
				.77778
			],
			"8823": [
				.1808,
				.675,
				0,
				0,
				.77778
			],
			"8828": [
				.13667,
				.63667,
				0,
				0,
				.77778
			],
			"8829": [
				.13667,
				.63667,
				0,
				0,
				.77778
			],
			"8830": [
				.22958,
				.72958,
				0,
				0,
				.77778
			],
			"8831": [
				.22958,
				.72958,
				0,
				0,
				.77778
			],
			"8832": [
				.20576,
				.70576,
				0,
				0,
				.77778
			],
			"8833": [
				.20576,
				.70576,
				0,
				0,
				.77778
			],
			"8840": [
				.30274,
				.79383,
				0,
				0,
				.77778
			],
			"8841": [
				.30274,
				.79383,
				0,
				0,
				.77778
			],
			"8842": [
				.13597,
				.63597,
				0,
				0,
				.77778
			],
			"8843": [
				.13597,
				.63597,
				0,
				0,
				.77778
			],
			"8847": [
				.03517,
				.54986,
				0,
				0,
				.77778
			],
			"8848": [
				.03517,
				.54986,
				0,
				0,
				.77778
			],
			"8858": [
				.08198,
				.58198,
				0,
				0,
				.77778
			],
			"8859": [
				.08198,
				.58198,
				0,
				0,
				.77778
			],
			"8861": [
				.08198,
				.58198,
				0,
				0,
				.77778
			],
			"8862": [
				0,
				.675,
				0,
				0,
				.77778
			],
			"8863": [
				0,
				.675,
				0,
				0,
				.77778
			],
			"8864": [
				0,
				.675,
				0,
				0,
				.77778
			],
			"8865": [
				0,
				.675,
				0,
				0,
				.77778
			],
			"8872": [
				0,
				.69224,
				0,
				0,
				.61111
			],
			"8873": [
				0,
				.69224,
				0,
				0,
				.72222
			],
			"8874": [
				0,
				.69224,
				0,
				0,
				.88889
			],
			"8876": [
				0,
				.68889,
				0,
				0,
				.61111
			],
			"8877": [
				0,
				.68889,
				0,
				0,
				.61111
			],
			"8878": [
				0,
				.68889,
				0,
				0,
				.72222
			],
			"8879": [
				0,
				.68889,
				0,
				0,
				.72222
			],
			"8882": [
				.03517,
				.54986,
				0,
				0,
				.77778
			],
			"8883": [
				.03517,
				.54986,
				0,
				0,
				.77778
			],
			"8884": [
				.13667,
				.63667,
				0,
				0,
				.77778
			],
			"8885": [
				.13667,
				.63667,
				0,
				0,
				.77778
			],
			"8888": [
				0,
				.54986,
				0,
				0,
				1.11111
			],
			"8890": [
				.19444,
				.43056,
				0,
				0,
				.55556
			],
			"8891": [
				.19444,
				.69224,
				0,
				0,
				.61111
			],
			"8892": [
				.19444,
				.69224,
				0,
				0,
				.61111
			],
			"8901": [
				0,
				.54986,
				0,
				0,
				.27778
			],
			"8903": [
				.08167,
				.58167,
				0,
				0,
				.77778
			],
			"8905": [
				.08167,
				.58167,
				0,
				0,
				.77778
			],
			"8906": [
				.08167,
				.58167,
				0,
				0,
				.77778
			],
			"8907": [
				0,
				.69224,
				0,
				0,
				.77778
			],
			"8908": [
				0,
				.69224,
				0,
				0,
				.77778
			],
			"8909": [
				-.03598,
				.46402,
				0,
				0,
				.77778
			],
			"8910": [
				0,
				.54986,
				0,
				0,
				.76042
			],
			"8911": [
				0,
				.54986,
				0,
				0,
				.76042
			],
			"8912": [
				.03517,
				.54986,
				0,
				0,
				.77778
			],
			"8913": [
				.03517,
				.54986,
				0,
				0,
				.77778
			],
			"8914": [
				0,
				.54986,
				0,
				0,
				.66667
			],
			"8915": [
				0,
				.54986,
				0,
				0,
				.66667
			],
			"8916": [
				0,
				.69224,
				0,
				0,
				.66667
			],
			"8918": [
				.0391,
				.5391,
				0,
				0,
				.77778
			],
			"8919": [
				.0391,
				.5391,
				0,
				0,
				.77778
			],
			"8920": [
				.03517,
				.54986,
				0,
				0,
				1.33334
			],
			"8921": [
				.03517,
				.54986,
				0,
				0,
				1.33334
			],
			"8922": [
				.38569,
				.88569,
				0,
				0,
				.77778
			],
			"8923": [
				.38569,
				.88569,
				0,
				0,
				.77778
			],
			"8926": [
				.13667,
				.63667,
				0,
				0,
				.77778
			],
			"8927": [
				.13667,
				.63667,
				0,
				0,
				.77778
			],
			"8928": [
				.30274,
				.79383,
				0,
				0,
				.77778
			],
			"8929": [
				.30274,
				.79383,
				0,
				0,
				.77778
			],
			"8934": [
				.23222,
				.74111,
				0,
				0,
				.77778
			],
			"8935": [
				.23222,
				.74111,
				0,
				0,
				.77778
			],
			"8936": [
				.23222,
				.74111,
				0,
				0,
				.77778
			],
			"8937": [
				.23222,
				.74111,
				0,
				0,
				.77778
			],
			"8938": [
				.20576,
				.70576,
				0,
				0,
				.77778
			],
			"8939": [
				.20576,
				.70576,
				0,
				0,
				.77778
			],
			"8940": [
				.30274,
				.79383,
				0,
				0,
				.77778
			],
			"8941": [
				.30274,
				.79383,
				0,
				0,
				.77778
			],
			"8994": [
				.19444,
				.69224,
				0,
				0,
				.77778
			],
			"8995": [
				.19444,
				.69224,
				0,
				0,
				.77778
			],
			"9416": [
				.15559,
				.69224,
				0,
				0,
				.90222
			],
			"9484": [
				0,
				.69224,
				0,
				0,
				.5
			],
			"9488": [
				0,
				.69224,
				0,
				0,
				.5
			],
			"9492": [
				0,
				.37788,
				0,
				0,
				.5
			],
			"9496": [
				0,
				.37788,
				0,
				0,
				.5
			],
			"9585": [
				.19444,
				.68889,
				0,
				0,
				.88889
			],
			"9586": [
				.19444,
				.74111,
				0,
				0,
				.88889
			],
			"9632": [
				0,
				.675,
				0,
				0,
				.77778
			],
			"9633": [
				0,
				.675,
				0,
				0,
				.77778
			],
			"9650": [
				0,
				.54986,
				0,
				0,
				.72222
			],
			"9651": [
				0,
				.54986,
				0,
				0,
				.72222
			],
			"9654": [
				.03517,
				.54986,
				0,
				0,
				.77778
			],
			"9660": [
				0,
				.54986,
				0,
				0,
				.72222
			],
			"9661": [
				0,
				.54986,
				0,
				0,
				.72222
			],
			"9664": [
				.03517,
				.54986,
				0,
				0,
				.77778
			],
			"9674": [
				.11111,
				.69224,
				0,
				0,
				.66667
			],
			"9733": [
				.19444,
				.69224,
				0,
				0,
				.94445
			],
			"10003": [
				0,
				.69224,
				0,
				0,
				.83334
			],
			"10016": [
				0,
				.69224,
				0,
				0,
				.83334
			],
			"10731": [
				.11111,
				.69224,
				0,
				0,
				.66667
			],
			"10846": [
				.19444,
				.75583,
				0,
				0,
				.61111
			],
			"10877": [
				.13667,
				.63667,
				0,
				0,
				.77778
			],
			"10878": [
				.13667,
				.63667,
				0,
				0,
				.77778
			],
			"10885": [
				.25583,
				.75583,
				0,
				0,
				.77778
			],
			"10886": [
				.25583,
				.75583,
				0,
				0,
				.77778
			],
			"10887": [
				.13597,
				.63597,
				0,
				0,
				.77778
			],
			"10888": [
				.13597,
				.63597,
				0,
				0,
				.77778
			],
			"10889": [
				.26167,
				.75726,
				0,
				0,
				.77778
			],
			"10890": [
				.26167,
				.75726,
				0,
				0,
				.77778
			],
			"10891": [
				.48256,
				.98256,
				0,
				0,
				.77778
			],
			"10892": [
				.48256,
				.98256,
				0,
				0,
				.77778
			],
			"10901": [
				.13667,
				.63667,
				0,
				0,
				.77778
			],
			"10902": [
				.13667,
				.63667,
				0,
				0,
				.77778
			],
			"10933": [
				.25142,
				.75726,
				0,
				0,
				.77778
			],
			"10934": [
				.25142,
				.75726,
				0,
				0,
				.77778
			],
			"10935": [
				.26167,
				.75726,
				0,
				0,
				.77778
			],
			"10936": [
				.26167,
				.75726,
				0,
				0,
				.77778
			],
			"10937": [
				.26167,
				.75726,
				0,
				0,
				.77778
			],
			"10938": [
				.26167,
				.75726,
				0,
				0,
				.77778
			],
			"10949": [
				.25583,
				.75583,
				0,
				0,
				.77778
			],
			"10950": [
				.25583,
				.75583,
				0,
				0,
				.77778
			],
			"10955": [
				.28481,
				.79383,
				0,
				0,
				.77778
			],
			"10956": [
				.28481,
				.79383,
				0,
				0,
				.77778
			],
			"57350": [
				.08167,
				.58167,
				0,
				0,
				.22222
			],
			"57351": [
				.08167,
				.58167,
				0,
				0,
				.38889
			],
			"57352": [
				.08167,
				.58167,
				0,
				0,
				.77778
			],
			"57353": [
				0,
				.43056,
				.04028,
				0,
				.66667
			],
			"57356": [
				.25142,
				.75726,
				0,
				0,
				.77778
			],
			"57357": [
				.25142,
				.75726,
				0,
				0,
				.77778
			],
			"57358": [
				.41951,
				.91951,
				0,
				0,
				.77778
			],
			"57359": [
				.30274,
				.79383,
				0,
				0,
				.77778
			],
			"57360": [
				.30274,
				.79383,
				0,
				0,
				.77778
			],
			"57361": [
				.41951,
				.91951,
				0,
				0,
				.77778
			],
			"57366": [
				.25142,
				.75726,
				0,
				0,
				.77778
			],
			"57367": [
				.25142,
				.75726,
				0,
				0,
				.77778
			],
			"57368": [
				.25142,
				.75726,
				0,
				0,
				.77778
			],
			"57369": [
				.25142,
				.75726,
				0,
				0,
				.77778
			],
			"57370": [
				.13597,
				.63597,
				0,
				0,
				.77778
			],
			"57371": [
				.13597,
				.63597,
				0,
				0,
				.77778
			]
		},
		"Caligraphic-Regular": {
			"32": [
				0,
				0,
				0,
				0,
				.25
			],
			"65": [
				0,
				.68333,
				0,
				.19445,
				.79847
			],
			"66": [
				0,
				.68333,
				.03041,
				.13889,
				.65681
			],
			"67": [
				0,
				.68333,
				.05834,
				.13889,
				.52653
			],
			"68": [
				0,
				.68333,
				.02778,
				.08334,
				.77139
			],
			"69": [
				0,
				.68333,
				.08944,
				.11111,
				.52778
			],
			"70": [
				0,
				.68333,
				.09931,
				.11111,
				.71875
			],
			"71": [
				.09722,
				.68333,
				.0593,
				.11111,
				.59487
			],
			"72": [
				0,
				.68333,
				.00965,
				.11111,
				.84452
			],
			"73": [
				0,
				.68333,
				.07382,
				0,
				.54452
			],
			"74": [
				.09722,
				.68333,
				.18472,
				.16667,
				.67778
			],
			"75": [
				0,
				.68333,
				.01445,
				.05556,
				.76195
			],
			"76": [
				0,
				.68333,
				0,
				.13889,
				.68972
			],
			"77": [
				0,
				.68333,
				0,
				.13889,
				1.2009
			],
			"78": [
				0,
				.68333,
				.14736,
				.08334,
				.82049
			],
			"79": [
				0,
				.68333,
				.02778,
				.11111,
				.79611
			],
			"80": [
				0,
				.68333,
				.08222,
				.08334,
				.69556
			],
			"81": [
				.09722,
				.68333,
				0,
				.11111,
				.81667
			],
			"82": [
				0,
				.68333,
				0,
				.08334,
				.8475
			],
			"83": [
				0,
				.68333,
				.075,
				.13889,
				.60556
			],
			"84": [
				0,
				.68333,
				.25417,
				0,
				.54464
			],
			"85": [
				0,
				.68333,
				.09931,
				.08334,
				.62583
			],
			"86": [
				0,
				.68333,
				.08222,
				0,
				.61278
			],
			"87": [
				0,
				.68333,
				.08222,
				.08334,
				.98778
			],
			"88": [
				0,
				.68333,
				.14643,
				.13889,
				.7133
			],
			"89": [
				.09722,
				.68333,
				.08222,
				.08334,
				.66834
			],
			"90": [
				0,
				.68333,
				.07944,
				.13889,
				.72473
			],
			"160": [
				0,
				0,
				0,
				0,
				.25
			]
		},
		"Fraktur-Regular": {
			"32": [
				0,
				0,
				0,
				0,
				.25
			],
			"33": [
				0,
				.69141,
				0,
				0,
				.29574
			],
			"34": [
				0,
				.69141,
				0,
				0,
				.21471
			],
			"38": [
				0,
				.69141,
				0,
				0,
				.73786
			],
			"39": [
				0,
				.69141,
				0,
				0,
				.21201
			],
			"40": [
				.24982,
				.74947,
				0,
				0,
				.38865
			],
			"41": [
				.24982,
				.74947,
				0,
				0,
				.38865
			],
			"42": [
				0,
				.62119,
				0,
				0,
				.27764
			],
			"43": [
				.08319,
				.58283,
				0,
				0,
				.75623
			],
			"44": [
				0,
				.10803,
				0,
				0,
				.27764
			],
			"45": [
				.08319,
				.58283,
				0,
				0,
				.75623
			],
			"46": [
				0,
				.10803,
				0,
				0,
				.27764
			],
			"47": [
				.24982,
				.74947,
				0,
				0,
				.50181
			],
			"48": [
				0,
				.47534,
				0,
				0,
				.50181
			],
			"49": [
				0,
				.47534,
				0,
				0,
				.50181
			],
			"50": [
				0,
				.47534,
				0,
				0,
				.50181
			],
			"51": [
				.18906,
				.47534,
				0,
				0,
				.50181
			],
			"52": [
				.18906,
				.47534,
				0,
				0,
				.50181
			],
			"53": [
				.18906,
				.47534,
				0,
				0,
				.50181
			],
			"54": [
				0,
				.69141,
				0,
				0,
				.50181
			],
			"55": [
				.18906,
				.47534,
				0,
				0,
				.50181
			],
			"56": [
				0,
				.69141,
				0,
				0,
				.50181
			],
			"57": [
				.18906,
				.47534,
				0,
				0,
				.50181
			],
			"58": [
				0,
				.47534,
				0,
				0,
				.21606
			],
			"59": [
				.12604,
				.47534,
				0,
				0,
				.21606
			],
			"61": [
				-.13099,
				.36866,
				0,
				0,
				.75623
			],
			"63": [
				0,
				.69141,
				0,
				0,
				.36245
			],
			"65": [
				0,
				.69141,
				0,
				0,
				.7176
			],
			"66": [
				0,
				.69141,
				0,
				0,
				.88397
			],
			"67": [
				0,
				.69141,
				0,
				0,
				.61254
			],
			"68": [
				0,
				.69141,
				0,
				0,
				.83158
			],
			"69": [
				0,
				.69141,
				0,
				0,
				.66278
			],
			"70": [
				.12604,
				.69141,
				0,
				0,
				.61119
			],
			"71": [
				0,
				.69141,
				0,
				0,
				.78539
			],
			"72": [
				.06302,
				.69141,
				0,
				0,
				.7203
			],
			"73": [
				0,
				.69141,
				0,
				0,
				.55448
			],
			"74": [
				.12604,
				.69141,
				0,
				0,
				.55231
			],
			"75": [
				0,
				.69141,
				0,
				0,
				.66845
			],
			"76": [
				0,
				.69141,
				0,
				0,
				.66602
			],
			"77": [
				0,
				.69141,
				0,
				0,
				1.04953
			],
			"78": [
				0,
				.69141,
				0,
				0,
				.83212
			],
			"79": [
				0,
				.69141,
				0,
				0,
				.82699
			],
			"80": [
				.18906,
				.69141,
				0,
				0,
				.82753
			],
			"81": [
				.03781,
				.69141,
				0,
				0,
				.82699
			],
			"82": [
				0,
				.69141,
				0,
				0,
				.82807
			],
			"83": [
				0,
				.69141,
				0,
				0,
				.82861
			],
			"84": [
				0,
				.69141,
				0,
				0,
				.66899
			],
			"85": [
				0,
				.69141,
				0,
				0,
				.64576
			],
			"86": [
				0,
				.69141,
				0,
				0,
				.83131
			],
			"87": [
				0,
				.69141,
				0,
				0,
				1.04602
			],
			"88": [
				0,
				.69141,
				0,
				0,
				.71922
			],
			"89": [
				.18906,
				.69141,
				0,
				0,
				.83293
			],
			"90": [
				.12604,
				.69141,
				0,
				0,
				.60201
			],
			"91": [
				.24982,
				.74947,
				0,
				0,
				.27764
			],
			"93": [
				.24982,
				.74947,
				0,
				0,
				.27764
			],
			"94": [
				0,
				.69141,
				0,
				0,
				.49965
			],
			"97": [
				0,
				.47534,
				0,
				0,
				.50046
			],
			"98": [
				0,
				.69141,
				0,
				0,
				.51315
			],
			"99": [
				0,
				.47534,
				0,
				0,
				.38946
			],
			"100": [
				0,
				.62119,
				0,
				0,
				.49857
			],
			"101": [
				0,
				.47534,
				0,
				0,
				.40053
			],
			"102": [
				.18906,
				.69141,
				0,
				0,
				.32626
			],
			"103": [
				.18906,
				.47534,
				0,
				0,
				.5037
			],
			"104": [
				.18906,
				.69141,
				0,
				0,
				.52126
			],
			"105": [
				0,
				.69141,
				0,
				0,
				.27899
			],
			"106": [
				0,
				.69141,
				0,
				0,
				.28088
			],
			"107": [
				0,
				.69141,
				0,
				0,
				.38946
			],
			"108": [
				0,
				.69141,
				0,
				0,
				.27953
			],
			"109": [
				0,
				.47534,
				0,
				0,
				.76676
			],
			"110": [
				0,
				.47534,
				0,
				0,
				.52666
			],
			"111": [
				0,
				.47534,
				0,
				0,
				.48885
			],
			"112": [
				.18906,
				.52396,
				0,
				0,
				.50046
			],
			"113": [
				.18906,
				.47534,
				0,
				0,
				.48912
			],
			"114": [
				0,
				.47534,
				0,
				0,
				.38919
			],
			"115": [
				0,
				.47534,
				0,
				0,
				.44266
			],
			"116": [
				0,
				.62119,
				0,
				0,
				.33301
			],
			"117": [
				0,
				.47534,
				0,
				0,
				.5172
			],
			"118": [
				0,
				.52396,
				0,
				0,
				.5118
			],
			"119": [
				0,
				.52396,
				0,
				0,
				.77351
			],
			"120": [
				.18906,
				.47534,
				0,
				0,
				.38865
			],
			"121": [
				.18906,
				.47534,
				0,
				0,
				.49884
			],
			"122": [
				.18906,
				.47534,
				0,
				0,
				.39054
			],
			"160": [
				0,
				0,
				0,
				0,
				.25
			],
			"8216": [
				0,
				.69141,
				0,
				0,
				.21471
			],
			"8217": [
				0,
				.69141,
				0,
				0,
				.21471
			],
			"58112": [
				0,
				.62119,
				0,
				0,
				.49749
			],
			"58113": [
				0,
				.62119,
				0,
				0,
				.4983
			],
			"58114": [
				.18906,
				.69141,
				0,
				0,
				.33328
			],
			"58115": [
				.18906,
				.69141,
				0,
				0,
				.32923
			],
			"58116": [
				.18906,
				.47534,
				0,
				0,
				.50343
			],
			"58117": [
				0,
				.69141,
				0,
				0,
				.33301
			],
			"58118": [
				0,
				.62119,
				0,
				0,
				.33409
			],
			"58119": [
				0,
				.47534,
				0,
				0,
				.50073
			]
		},
		"Main-Bold": {
			"32": [
				0,
				0,
				0,
				0,
				.25
			],
			"33": [
				0,
				.69444,
				0,
				0,
				.35
			],
			"34": [
				0,
				.69444,
				0,
				0,
				.60278
			],
			"35": [
				.19444,
				.69444,
				0,
				0,
				.95833
			],
			"36": [
				.05556,
				.75,
				0,
				0,
				.575
			],
			"37": [
				.05556,
				.75,
				0,
				0,
				.95833
			],
			"38": [
				0,
				.69444,
				0,
				0,
				.89444
			],
			"39": [
				0,
				.69444,
				0,
				0,
				.31944
			],
			"40": [
				.25,
				.75,
				0,
				0,
				.44722
			],
			"41": [
				.25,
				.75,
				0,
				0,
				.44722
			],
			"42": [
				0,
				.75,
				0,
				0,
				.575
			],
			"43": [
				.13333,
				.63333,
				0,
				0,
				.89444
			],
			"44": [
				.19444,
				.15556,
				0,
				0,
				.31944
			],
			"45": [
				0,
				.44444,
				0,
				0,
				.38333
			],
			"46": [
				0,
				.15556,
				0,
				0,
				.31944
			],
			"47": [
				.25,
				.75,
				0,
				0,
				.575
			],
			"48": [
				0,
				.64444,
				0,
				0,
				.575
			],
			"49": [
				0,
				.64444,
				0,
				0,
				.575
			],
			"50": [
				0,
				.64444,
				0,
				0,
				.575
			],
			"51": [
				0,
				.64444,
				0,
				0,
				.575
			],
			"52": [
				0,
				.64444,
				0,
				0,
				.575
			],
			"53": [
				0,
				.64444,
				0,
				0,
				.575
			],
			"54": [
				0,
				.64444,
				0,
				0,
				.575
			],
			"55": [
				0,
				.64444,
				0,
				0,
				.575
			],
			"56": [
				0,
				.64444,
				0,
				0,
				.575
			],
			"57": [
				0,
				.64444,
				0,
				0,
				.575
			],
			"58": [
				0,
				.44444,
				0,
				0,
				.31944
			],
			"59": [
				.19444,
				.44444,
				0,
				0,
				.31944
			],
			"60": [
				.08556,
				.58556,
				0,
				0,
				.89444
			],
			"61": [
				-.10889,
				.39111,
				0,
				0,
				.89444
			],
			"62": [
				.08556,
				.58556,
				0,
				0,
				.89444
			],
			"63": [
				0,
				.69444,
				0,
				0,
				.54305
			],
			"64": [
				0,
				.69444,
				0,
				0,
				.89444
			],
			"65": [
				0,
				.68611,
				0,
				0,
				.86944
			],
			"66": [
				0,
				.68611,
				0,
				0,
				.81805
			],
			"67": [
				0,
				.68611,
				0,
				0,
				.83055
			],
			"68": [
				0,
				.68611,
				0,
				0,
				.88194
			],
			"69": [
				0,
				.68611,
				0,
				0,
				.75555
			],
			"70": [
				0,
				.68611,
				0,
				0,
				.72361
			],
			"71": [
				0,
				.68611,
				0,
				0,
				.90416
			],
			"72": [
				0,
				.68611,
				0,
				0,
				.9
			],
			"73": [
				0,
				.68611,
				0,
				0,
				.43611
			],
			"74": [
				0,
				.68611,
				0,
				0,
				.59444
			],
			"75": [
				0,
				.68611,
				0,
				0,
				.90138
			],
			"76": [
				0,
				.68611,
				0,
				0,
				.69166
			],
			"77": [
				0,
				.68611,
				0,
				0,
				1.09166
			],
			"78": [
				0,
				.68611,
				0,
				0,
				.9
			],
			"79": [
				0,
				.68611,
				0,
				0,
				.86388
			],
			"80": [
				0,
				.68611,
				0,
				0,
				.78611
			],
			"81": [
				.19444,
				.68611,
				0,
				0,
				.86388
			],
			"82": [
				0,
				.68611,
				0,
				0,
				.8625
			],
			"83": [
				0,
				.68611,
				0,
				0,
				.63889
			],
			"84": [
				0,
				.68611,
				0,
				0,
				.8
			],
			"85": [
				0,
				.68611,
				0,
				0,
				.88472
			],
			"86": [
				0,
				.68611,
				.01597,
				0,
				.86944
			],
			"87": [
				0,
				.68611,
				.01597,
				0,
				1.18888
			],
			"88": [
				0,
				.68611,
				0,
				0,
				.86944
			],
			"89": [
				0,
				.68611,
				.02875,
				0,
				.86944
			],
			"90": [
				0,
				.68611,
				0,
				0,
				.70277
			],
			"91": [
				.25,
				.75,
				0,
				0,
				.31944
			],
			"92": [
				.25,
				.75,
				0,
				0,
				.575
			],
			"93": [
				.25,
				.75,
				0,
				0,
				.31944
			],
			"94": [
				0,
				.69444,
				0,
				0,
				.575
			],
			"95": [
				.31,
				.13444,
				.03194,
				0,
				.575
			],
			"97": [
				0,
				.44444,
				0,
				0,
				.55902
			],
			"98": [
				0,
				.69444,
				0,
				0,
				.63889
			],
			"99": [
				0,
				.44444,
				0,
				0,
				.51111
			],
			"100": [
				0,
				.69444,
				0,
				0,
				.63889
			],
			"101": [
				0,
				.44444,
				0,
				0,
				.52708
			],
			"102": [
				0,
				.69444,
				.10903,
				0,
				.35139
			],
			"103": [
				.19444,
				.44444,
				.01597,
				0,
				.575
			],
			"104": [
				0,
				.69444,
				0,
				0,
				.63889
			],
			"105": [
				0,
				.69444,
				0,
				0,
				.31944
			],
			"106": [
				.19444,
				.69444,
				0,
				0,
				.35139
			],
			"107": [
				0,
				.69444,
				0,
				0,
				.60694
			],
			"108": [
				0,
				.69444,
				0,
				0,
				.31944
			],
			"109": [
				0,
				.44444,
				0,
				0,
				.95833
			],
			"110": [
				0,
				.44444,
				0,
				0,
				.63889
			],
			"111": [
				0,
				.44444,
				0,
				0,
				.575
			],
			"112": [
				.19444,
				.44444,
				0,
				0,
				.63889
			],
			"113": [
				.19444,
				.44444,
				0,
				0,
				.60694
			],
			"114": [
				0,
				.44444,
				0,
				0,
				.47361
			],
			"115": [
				0,
				.44444,
				0,
				0,
				.45361
			],
			"116": [
				0,
				.63492,
				0,
				0,
				.44722
			],
			"117": [
				0,
				.44444,
				0,
				0,
				.63889
			],
			"118": [
				0,
				.44444,
				.01597,
				0,
				.60694
			],
			"119": [
				0,
				.44444,
				.01597,
				0,
				.83055
			],
			"120": [
				0,
				.44444,
				0,
				0,
				.60694
			],
			"121": [
				.19444,
				.44444,
				.01597,
				0,
				.60694
			],
			"122": [
				0,
				.44444,
				0,
				0,
				.51111
			],
			"123": [
				.25,
				.75,
				0,
				0,
				.575
			],
			"124": [
				.25,
				.75,
				0,
				0,
				.31944
			],
			"125": [
				.25,
				.75,
				0,
				0,
				.575
			],
			"126": [
				.35,
				.34444,
				0,
				0,
				.575
			],
			"160": [
				0,
				0,
				0,
				0,
				.25
			],
			"163": [
				0,
				.69444,
				0,
				0,
				.86853
			],
			"168": [
				0,
				.69444,
				0,
				0,
				.575
			],
			"172": [
				0,
				.44444,
				0,
				0,
				.76666
			],
			"176": [
				0,
				.69444,
				0,
				0,
				.86944
			],
			"177": [
				.13333,
				.63333,
				0,
				0,
				.89444
			],
			"184": [
				.17014,
				0,
				0,
				0,
				.51111
			],
			"198": [
				0,
				.68611,
				0,
				0,
				1.04166
			],
			"215": [
				.13333,
				.63333,
				0,
				0,
				.89444
			],
			"216": [
				.04861,
				.73472,
				0,
				0,
				.89444
			],
			"223": [
				0,
				.69444,
				0,
				0,
				.59722
			],
			"230": [
				0,
				.44444,
				0,
				0,
				.83055
			],
			"247": [
				.13333,
				.63333,
				0,
				0,
				.89444
			],
			"248": [
				.09722,
				.54167,
				0,
				0,
				.575
			],
			"305": [
				0,
				.44444,
				0,
				0,
				.31944
			],
			"338": [
				0,
				.68611,
				0,
				0,
				1.16944
			],
			"339": [
				0,
				.44444,
				0,
				0,
				.89444
			],
			"567": [
				.19444,
				.44444,
				0,
				0,
				.35139
			],
			"710": [
				0,
				.69444,
				0,
				0,
				.575
			],
			"711": [
				0,
				.63194,
				0,
				0,
				.575
			],
			"713": [
				0,
				.59611,
				0,
				0,
				.575
			],
			"714": [
				0,
				.69444,
				0,
				0,
				.575
			],
			"715": [
				0,
				.69444,
				0,
				0,
				.575
			],
			"728": [
				0,
				.69444,
				0,
				0,
				.575
			],
			"729": [
				0,
				.69444,
				0,
				0,
				.31944
			],
			"730": [
				0,
				.69444,
				0,
				0,
				.86944
			],
			"732": [
				0,
				.69444,
				0,
				0,
				.575
			],
			"733": [
				0,
				.69444,
				0,
				0,
				.575
			],
			"915": [
				0,
				.68611,
				0,
				0,
				.69166
			],
			"916": [
				0,
				.68611,
				0,
				0,
				.95833
			],
			"920": [
				0,
				.68611,
				0,
				0,
				.89444
			],
			"923": [
				0,
				.68611,
				0,
				0,
				.80555
			],
			"926": [
				0,
				.68611,
				0,
				0,
				.76666
			],
			"928": [
				0,
				.68611,
				0,
				0,
				.9
			],
			"931": [
				0,
				.68611,
				0,
				0,
				.83055
			],
			"933": [
				0,
				.68611,
				0,
				0,
				.89444
			],
			"934": [
				0,
				.68611,
				0,
				0,
				.83055
			],
			"936": [
				0,
				.68611,
				0,
				0,
				.89444
			],
			"937": [
				0,
				.68611,
				0,
				0,
				.83055
			],
			"8211": [
				0,
				.44444,
				.03194,
				0,
				.575
			],
			"8212": [
				0,
				.44444,
				.03194,
				0,
				1.14999
			],
			"8216": [
				0,
				.69444,
				0,
				0,
				.31944
			],
			"8217": [
				0,
				.69444,
				0,
				0,
				.31944
			],
			"8220": [
				0,
				.69444,
				0,
				0,
				.60278
			],
			"8221": [
				0,
				.69444,
				0,
				0,
				.60278
			],
			"8224": [
				.19444,
				.69444,
				0,
				0,
				.51111
			],
			"8225": [
				.19444,
				.69444,
				0,
				0,
				.51111
			],
			"8242": [
				0,
				.55556,
				0,
				0,
				.34444
			],
			"8407": [
				0,
				.72444,
				.15486,
				0,
				.575
			],
			"8463": [
				0,
				.69444,
				0,
				0,
				.66759
			],
			"8465": [
				0,
				.69444,
				0,
				0,
				.83055
			],
			"8467": [
				0,
				.69444,
				0,
				0,
				.47361
			],
			"8472": [
				.19444,
				.44444,
				0,
				0,
				.74027
			],
			"8476": [
				0,
				.69444,
				0,
				0,
				.83055
			],
			"8501": [
				0,
				.69444,
				0,
				0,
				.70277
			],
			"8592": [
				-.10889,
				.39111,
				0,
				0,
				1.14999
			],
			"8593": [
				.19444,
				.69444,
				0,
				0,
				.575
			],
			"8594": [
				-.10889,
				.39111,
				0,
				0,
				1.14999
			],
			"8595": [
				.19444,
				.69444,
				0,
				0,
				.575
			],
			"8596": [
				-.10889,
				.39111,
				0,
				0,
				1.14999
			],
			"8597": [
				.25,
				.75,
				0,
				0,
				.575
			],
			"8598": [
				.19444,
				.69444,
				0,
				0,
				1.14999
			],
			"8599": [
				.19444,
				.69444,
				0,
				0,
				1.14999
			],
			"8600": [
				.19444,
				.69444,
				0,
				0,
				1.14999
			],
			"8601": [
				.19444,
				.69444,
				0,
				0,
				1.14999
			],
			"8636": [
				-.10889,
				.39111,
				0,
				0,
				1.14999
			],
			"8637": [
				-.10889,
				.39111,
				0,
				0,
				1.14999
			],
			"8640": [
				-.10889,
				.39111,
				0,
				0,
				1.14999
			],
			"8641": [
				-.10889,
				.39111,
				0,
				0,
				1.14999
			],
			"8656": [
				-.10889,
				.39111,
				0,
				0,
				1.14999
			],
			"8657": [
				.19444,
				.69444,
				0,
				0,
				.70277
			],
			"8658": [
				-.10889,
				.39111,
				0,
				0,
				1.14999
			],
			"8659": [
				.19444,
				.69444,
				0,
				0,
				.70277
			],
			"8660": [
				-.10889,
				.39111,
				0,
				0,
				1.14999
			],
			"8661": [
				.25,
				.75,
				0,
				0,
				.70277
			],
			"8704": [
				0,
				.69444,
				0,
				0,
				.63889
			],
			"8706": [
				0,
				.69444,
				.06389,
				0,
				.62847
			],
			"8707": [
				0,
				.69444,
				0,
				0,
				.63889
			],
			"8709": [
				.05556,
				.75,
				0,
				0,
				.575
			],
			"8711": [
				0,
				.68611,
				0,
				0,
				.95833
			],
			"8712": [
				.08556,
				.58556,
				0,
				0,
				.76666
			],
			"8715": [
				.08556,
				.58556,
				0,
				0,
				.76666
			],
			"8722": [
				.13333,
				.63333,
				0,
				0,
				.89444
			],
			"8723": [
				.13333,
				.63333,
				0,
				0,
				.89444
			],
			"8725": [
				.25,
				.75,
				0,
				0,
				.575
			],
			"8726": [
				.25,
				.75,
				0,
				0,
				.575
			],
			"8727": [
				-.02778,
				.47222,
				0,
				0,
				.575
			],
			"8728": [
				-.02639,
				.47361,
				0,
				0,
				.575
			],
			"8729": [
				-.02639,
				.47361,
				0,
				0,
				.575
			],
			"8730": [
				.18,
				.82,
				0,
				0,
				.95833
			],
			"8733": [
				0,
				.44444,
				0,
				0,
				.89444
			],
			"8734": [
				0,
				.44444,
				0,
				0,
				1.14999
			],
			"8736": [
				0,
				.69224,
				0,
				0,
				.72222
			],
			"8739": [
				.25,
				.75,
				0,
				0,
				.31944
			],
			"8741": [
				.25,
				.75,
				0,
				0,
				.575
			],
			"8743": [
				0,
				.55556,
				0,
				0,
				.76666
			],
			"8744": [
				0,
				.55556,
				0,
				0,
				.76666
			],
			"8745": [
				0,
				.55556,
				0,
				0,
				.76666
			],
			"8746": [
				0,
				.55556,
				0,
				0,
				.76666
			],
			"8747": [
				.19444,
				.69444,
				.12778,
				0,
				.56875
			],
			"8764": [
				-.10889,
				.39111,
				0,
				0,
				.89444
			],
			"8768": [
				.19444,
				.69444,
				0,
				0,
				.31944
			],
			"8771": [
				.00222,
				.50222,
				0,
				0,
				.89444
			],
			"8773": [
				.027,
				.638,
				0,
				0,
				.894
			],
			"8776": [
				.02444,
				.52444,
				0,
				0,
				.89444
			],
			"8781": [
				.00222,
				.50222,
				0,
				0,
				.89444
			],
			"8801": [
				.00222,
				.50222,
				0,
				0,
				.89444
			],
			"8804": [
				.19667,
				.69667,
				0,
				0,
				.89444
			],
			"8805": [
				.19667,
				.69667,
				0,
				0,
				.89444
			],
			"8810": [
				.08556,
				.58556,
				0,
				0,
				1.14999
			],
			"8811": [
				.08556,
				.58556,
				0,
				0,
				1.14999
			],
			"8826": [
				.08556,
				.58556,
				0,
				0,
				.89444
			],
			"8827": [
				.08556,
				.58556,
				0,
				0,
				.89444
			],
			"8834": [
				.08556,
				.58556,
				0,
				0,
				.89444
			],
			"8835": [
				.08556,
				.58556,
				0,
				0,
				.89444
			],
			"8838": [
				.19667,
				.69667,
				0,
				0,
				.89444
			],
			"8839": [
				.19667,
				.69667,
				0,
				0,
				.89444
			],
			"8846": [
				0,
				.55556,
				0,
				0,
				.76666
			],
			"8849": [
				.19667,
				.69667,
				0,
				0,
				.89444
			],
			"8850": [
				.19667,
				.69667,
				0,
				0,
				.89444
			],
			"8851": [
				0,
				.55556,
				0,
				0,
				.76666
			],
			"8852": [
				0,
				.55556,
				0,
				0,
				.76666
			],
			"8853": [
				.13333,
				.63333,
				0,
				0,
				.89444
			],
			"8854": [
				.13333,
				.63333,
				0,
				0,
				.89444
			],
			"8855": [
				.13333,
				.63333,
				0,
				0,
				.89444
			],
			"8856": [
				.13333,
				.63333,
				0,
				0,
				.89444
			],
			"8857": [
				.13333,
				.63333,
				0,
				0,
				.89444
			],
			"8866": [
				0,
				.69444,
				0,
				0,
				.70277
			],
			"8867": [
				0,
				.69444,
				0,
				0,
				.70277
			],
			"8868": [
				0,
				.69444,
				0,
				0,
				.89444
			],
			"8869": [
				0,
				.69444,
				0,
				0,
				.89444
			],
			"8900": [
				-.02639,
				.47361,
				0,
				0,
				.575
			],
			"8901": [
				-.02639,
				.47361,
				0,
				0,
				.31944
			],
			"8902": [
				-.02778,
				.47222,
				0,
				0,
				.575
			],
			"8968": [
				.25,
				.75,
				0,
				0,
				.51111
			],
			"8969": [
				.25,
				.75,
				0,
				0,
				.51111
			],
			"8970": [
				.25,
				.75,
				0,
				0,
				.51111
			],
			"8971": [
				.25,
				.75,
				0,
				0,
				.51111
			],
			"8994": [
				-.13889,
				.36111,
				0,
				0,
				1.14999
			],
			"8995": [
				-.13889,
				.36111,
				0,
				0,
				1.14999
			],
			"9651": [
				.19444,
				.69444,
				0,
				0,
				1.02222
			],
			"9657": [
				-.02778,
				.47222,
				0,
				0,
				.575
			],
			"9661": [
				.19444,
				.69444,
				0,
				0,
				1.02222
			],
			"9667": [
				-.02778,
				.47222,
				0,
				0,
				.575
			],
			"9711": [
				.19444,
				.69444,
				0,
				0,
				1.14999
			],
			"9824": [
				.12963,
				.69444,
				0,
				0,
				.89444
			],
			"9825": [
				.12963,
				.69444,
				0,
				0,
				.89444
			],
			"9826": [
				.12963,
				.69444,
				0,
				0,
				.89444
			],
			"9827": [
				.12963,
				.69444,
				0,
				0,
				.89444
			],
			"9837": [
				0,
				.75,
				0,
				0,
				.44722
			],
			"9838": [
				.19444,
				.69444,
				0,
				0,
				.44722
			],
			"9839": [
				.19444,
				.69444,
				0,
				0,
				.44722
			],
			"10216": [
				.25,
				.75,
				0,
				0,
				.44722
			],
			"10217": [
				.25,
				.75,
				0,
				0,
				.44722
			],
			"10815": [
				0,
				.68611,
				0,
				0,
				.9
			],
			"10927": [
				.19667,
				.69667,
				0,
				0,
				.89444
			],
			"10928": [
				.19667,
				.69667,
				0,
				0,
				.89444
			],
			"57376": [
				.19444,
				.69444,
				0,
				0,
				0
			]
		},
		"Main-BoldItalic": {
			"32": [
				0,
				0,
				0,
				0,
				.25
			],
			"33": [
				0,
				.69444,
				.11417,
				0,
				.38611
			],
			"34": [
				0,
				.69444,
				.07939,
				0,
				.62055
			],
			"35": [
				.19444,
				.69444,
				.06833,
				0,
				.94444
			],
			"37": [
				.05556,
				.75,
				.12861,
				0,
				.94444
			],
			"38": [
				0,
				.69444,
				.08528,
				0,
				.88555
			],
			"39": [
				0,
				.69444,
				.12945,
				0,
				.35555
			],
			"40": [
				.25,
				.75,
				.15806,
				0,
				.47333
			],
			"41": [
				.25,
				.75,
				.03306,
				0,
				.47333
			],
			"42": [
				0,
				.75,
				.14333,
				0,
				.59111
			],
			"43": [
				.10333,
				.60333,
				.03306,
				0,
				.88555
			],
			"44": [
				.19444,
				.14722,
				0,
				0,
				.35555
			],
			"45": [
				0,
				.44444,
				.02611,
				0,
				.41444
			],
			"46": [
				0,
				.14722,
				0,
				0,
				.35555
			],
			"47": [
				.25,
				.75,
				.15806,
				0,
				.59111
			],
			"48": [
				0,
				.64444,
				.13167,
				0,
				.59111
			],
			"49": [
				0,
				.64444,
				.13167,
				0,
				.59111
			],
			"50": [
				0,
				.64444,
				.13167,
				0,
				.59111
			],
			"51": [
				0,
				.64444,
				.13167,
				0,
				.59111
			],
			"52": [
				.19444,
				.64444,
				.13167,
				0,
				.59111
			],
			"53": [
				0,
				.64444,
				.13167,
				0,
				.59111
			],
			"54": [
				0,
				.64444,
				.13167,
				0,
				.59111
			],
			"55": [
				.19444,
				.64444,
				.13167,
				0,
				.59111
			],
			"56": [
				0,
				.64444,
				.13167,
				0,
				.59111
			],
			"57": [
				0,
				.64444,
				.13167,
				0,
				.59111
			],
			"58": [
				0,
				.44444,
				.06695,
				0,
				.35555
			],
			"59": [
				.19444,
				.44444,
				.06695,
				0,
				.35555
			],
			"61": [
				-.10889,
				.39111,
				.06833,
				0,
				.88555
			],
			"63": [
				0,
				.69444,
				.11472,
				0,
				.59111
			],
			"64": [
				0,
				.69444,
				.09208,
				0,
				.88555
			],
			"65": [
				0,
				.68611,
				0,
				0,
				.86555
			],
			"66": [
				0,
				.68611,
				.0992,
				0,
				.81666
			],
			"67": [
				0,
				.68611,
				.14208,
				0,
				.82666
			],
			"68": [
				0,
				.68611,
				.09062,
				0,
				.87555
			],
			"69": [
				0,
				.68611,
				.11431,
				0,
				.75666
			],
			"70": [
				0,
				.68611,
				.12903,
				0,
				.72722
			],
			"71": [
				0,
				.68611,
				.07347,
				0,
				.89527
			],
			"72": [
				0,
				.68611,
				.17208,
				0,
				.8961
			],
			"73": [
				0,
				.68611,
				.15681,
				0,
				.47166
			],
			"74": [
				0,
				.68611,
				.145,
				0,
				.61055
			],
			"75": [
				0,
				.68611,
				.14208,
				0,
				.89499
			],
			"76": [
				0,
				.68611,
				0,
				0,
				.69777
			],
			"77": [
				0,
				.68611,
				.17208,
				0,
				1.07277
			],
			"78": [
				0,
				.68611,
				.17208,
				0,
				.8961
			],
			"79": [
				0,
				.68611,
				.09062,
				0,
				.85499
			],
			"80": [
				0,
				.68611,
				.0992,
				0,
				.78721
			],
			"81": [
				.19444,
				.68611,
				.09062,
				0,
				.85499
			],
			"82": [
				0,
				.68611,
				.02559,
				0,
				.85944
			],
			"83": [
				0,
				.68611,
				.11264,
				0,
				.64999
			],
			"84": [
				0,
				.68611,
				.12903,
				0,
				.7961
			],
			"85": [
				0,
				.68611,
				.17208,
				0,
				.88083
			],
			"86": [
				0,
				.68611,
				.18625,
				0,
				.86555
			],
			"87": [
				0,
				.68611,
				.18625,
				0,
				1.15999
			],
			"88": [
				0,
				.68611,
				.15681,
				0,
				.86555
			],
			"89": [
				0,
				.68611,
				.19803,
				0,
				.86555
			],
			"90": [
				0,
				.68611,
				.14208,
				0,
				.70888
			],
			"91": [
				.25,
				.75,
				.1875,
				0,
				.35611
			],
			"93": [
				.25,
				.75,
				.09972,
				0,
				.35611
			],
			"94": [
				0,
				.69444,
				.06709,
				0,
				.59111
			],
			"95": [
				.31,
				.13444,
				.09811,
				0,
				.59111
			],
			"97": [
				0,
				.44444,
				.09426,
				0,
				.59111
			],
			"98": [
				0,
				.69444,
				.07861,
				0,
				.53222
			],
			"99": [
				0,
				.44444,
				.05222,
				0,
				.53222
			],
			"100": [
				0,
				.69444,
				.10861,
				0,
				.59111
			],
			"101": [
				0,
				.44444,
				.085,
				0,
				.53222
			],
			"102": [
				.19444,
				.69444,
				.21778,
				0,
				.4
			],
			"103": [
				.19444,
				.44444,
				.105,
				0,
				.53222
			],
			"104": [
				0,
				.69444,
				.09426,
				0,
				.59111
			],
			"105": [
				0,
				.69326,
				.11387,
				0,
				.35555
			],
			"106": [
				.19444,
				.69326,
				.1672,
				0,
				.35555
			],
			"107": [
				0,
				.69444,
				.11111,
				0,
				.53222
			],
			"108": [
				0,
				.69444,
				.10861,
				0,
				.29666
			],
			"109": [
				0,
				.44444,
				.09426,
				0,
				.94444
			],
			"110": [
				0,
				.44444,
				.09426,
				0,
				.64999
			],
			"111": [
				0,
				.44444,
				.07861,
				0,
				.59111
			],
			"112": [
				.19444,
				.44444,
				.07861,
				0,
				.59111
			],
			"113": [
				.19444,
				.44444,
				.105,
				0,
				.53222
			],
			"114": [
				0,
				.44444,
				.11111,
				0,
				.50167
			],
			"115": [
				0,
				.44444,
				.08167,
				0,
				.48694
			],
			"116": [
				0,
				.63492,
				.09639,
				0,
				.385
			],
			"117": [
				0,
				.44444,
				.09426,
				0,
				.62055
			],
			"118": [
				0,
				.44444,
				.11111,
				0,
				.53222
			],
			"119": [
				0,
				.44444,
				.11111,
				0,
				.76777
			],
			"120": [
				0,
				.44444,
				.12583,
				0,
				.56055
			],
			"121": [
				.19444,
				.44444,
				.105,
				0,
				.56166
			],
			"122": [
				0,
				.44444,
				.13889,
				0,
				.49055
			],
			"126": [
				.35,
				.34444,
				.11472,
				0,
				.59111
			],
			"160": [
				0,
				0,
				0,
				0,
				.25
			],
			"168": [
				0,
				.69444,
				.11473,
				0,
				.59111
			],
			"176": [
				0,
				.69444,
				0,
				0,
				.94888
			],
			"184": [
				.17014,
				0,
				0,
				0,
				.53222
			],
			"198": [
				0,
				.68611,
				.11431,
				0,
				1.02277
			],
			"216": [
				.04861,
				.73472,
				.09062,
				0,
				.88555
			],
			"223": [
				.19444,
				.69444,
				.09736,
				0,
				.665
			],
			"230": [
				0,
				.44444,
				.085,
				0,
				.82666
			],
			"248": [
				.09722,
				.54167,
				.09458,
				0,
				.59111
			],
			"305": [
				0,
				.44444,
				.09426,
				0,
				.35555
			],
			"338": [
				0,
				.68611,
				.11431,
				0,
				1.14054
			],
			"339": [
				0,
				.44444,
				.085,
				0,
				.82666
			],
			"567": [
				.19444,
				.44444,
				.04611,
				0,
				.385
			],
			"710": [
				0,
				.69444,
				.06709,
				0,
				.59111
			],
			"711": [
				0,
				.63194,
				.08271,
				0,
				.59111
			],
			"713": [
				0,
				.59444,
				.10444,
				0,
				.59111
			],
			"714": [
				0,
				.69444,
				.08528,
				0,
				.59111
			],
			"715": [
				0,
				.69444,
				0,
				0,
				.59111
			],
			"728": [
				0,
				.69444,
				.10333,
				0,
				.59111
			],
			"729": [
				0,
				.69444,
				.12945,
				0,
				.35555
			],
			"730": [
				0,
				.69444,
				0,
				0,
				.94888
			],
			"732": [
				0,
				.69444,
				.11472,
				0,
				.59111
			],
			"733": [
				0,
				.69444,
				.11472,
				0,
				.59111
			],
			"915": [
				0,
				.68611,
				.12903,
				0,
				.69777
			],
			"916": [
				0,
				.68611,
				0,
				0,
				.94444
			],
			"920": [
				0,
				.68611,
				.09062,
				0,
				.88555
			],
			"923": [
				0,
				.68611,
				0,
				0,
				.80666
			],
			"926": [
				0,
				.68611,
				.15092,
				0,
				.76777
			],
			"928": [
				0,
				.68611,
				.17208,
				0,
				.8961
			],
			"931": [
				0,
				.68611,
				.11431,
				0,
				.82666
			],
			"933": [
				0,
				.68611,
				.10778,
				0,
				.88555
			],
			"934": [
				0,
				.68611,
				.05632,
				0,
				.82666
			],
			"936": [
				0,
				.68611,
				.10778,
				0,
				.88555
			],
			"937": [
				0,
				.68611,
				.0992,
				0,
				.82666
			],
			"8211": [
				0,
				.44444,
				.09811,
				0,
				.59111
			],
			"8212": [
				0,
				.44444,
				.09811,
				0,
				1.18221
			],
			"8216": [
				0,
				.69444,
				.12945,
				0,
				.35555
			],
			"8217": [
				0,
				.69444,
				.12945,
				0,
				.35555
			],
			"8220": [
				0,
				.69444,
				.16772,
				0,
				.62055
			],
			"8221": [
				0,
				.69444,
				.07939,
				0,
				.62055
			]
		},
		"Main-Italic": {
			"32": [
				0,
				0,
				0,
				0,
				.25
			],
			"33": [
				0,
				.69444,
				.12417,
				0,
				.30667
			],
			"34": [
				0,
				.69444,
				.06961,
				0,
				.51444
			],
			"35": [
				.19444,
				.69444,
				.06616,
				0,
				.81777
			],
			"37": [
				.05556,
				.75,
				.13639,
				0,
				.81777
			],
			"38": [
				0,
				.69444,
				.09694,
				0,
				.76666
			],
			"39": [
				0,
				.69444,
				.12417,
				0,
				.30667
			],
			"40": [
				.25,
				.75,
				.16194,
				0,
				.40889
			],
			"41": [
				.25,
				.75,
				.03694,
				0,
				.40889
			],
			"42": [
				0,
				.75,
				.14917,
				0,
				.51111
			],
			"43": [
				.05667,
				.56167,
				.03694,
				0,
				.76666
			],
			"44": [
				.19444,
				.10556,
				0,
				0,
				.30667
			],
			"45": [
				0,
				.43056,
				.02826,
				0,
				.35778
			],
			"46": [
				0,
				.10556,
				0,
				0,
				.30667
			],
			"47": [
				.25,
				.75,
				.16194,
				0,
				.51111
			],
			"48": [
				0,
				.64444,
				.13556,
				0,
				.51111
			],
			"49": [
				0,
				.64444,
				.13556,
				0,
				.51111
			],
			"50": [
				0,
				.64444,
				.13556,
				0,
				.51111
			],
			"51": [
				0,
				.64444,
				.13556,
				0,
				.51111
			],
			"52": [
				.19444,
				.64444,
				.13556,
				0,
				.51111
			],
			"53": [
				0,
				.64444,
				.13556,
				0,
				.51111
			],
			"54": [
				0,
				.64444,
				.13556,
				0,
				.51111
			],
			"55": [
				.19444,
				.64444,
				.13556,
				0,
				.51111
			],
			"56": [
				0,
				.64444,
				.13556,
				0,
				.51111
			],
			"57": [
				0,
				.64444,
				.13556,
				0,
				.51111
			],
			"58": [
				0,
				.43056,
				.0582,
				0,
				.30667
			],
			"59": [
				.19444,
				.43056,
				.0582,
				0,
				.30667
			],
			"61": [
				-.13313,
				.36687,
				.06616,
				0,
				.76666
			],
			"63": [
				0,
				.69444,
				.1225,
				0,
				.51111
			],
			"64": [
				0,
				.69444,
				.09597,
				0,
				.76666
			],
			"65": [
				0,
				.68333,
				0,
				0,
				.74333
			],
			"66": [
				0,
				.68333,
				.10257,
				0,
				.70389
			],
			"67": [
				0,
				.68333,
				.14528,
				0,
				.71555
			],
			"68": [
				0,
				.68333,
				.09403,
				0,
				.755
			],
			"69": [
				0,
				.68333,
				.12028,
				0,
				.67833
			],
			"70": [
				0,
				.68333,
				.13305,
				0,
				.65277
			],
			"71": [
				0,
				.68333,
				.08722,
				0,
				.77361
			],
			"72": [
				0,
				.68333,
				.16389,
				0,
				.74333
			],
			"73": [
				0,
				.68333,
				.15806,
				0,
				.38555
			],
			"74": [
				0,
				.68333,
				.14028,
				0,
				.525
			],
			"75": [
				0,
				.68333,
				.14528,
				0,
				.76888
			],
			"76": [
				0,
				.68333,
				0,
				0,
				.62722
			],
			"77": [
				0,
				.68333,
				.16389,
				0,
				.89666
			],
			"78": [
				0,
				.68333,
				.16389,
				0,
				.74333
			],
			"79": [
				0,
				.68333,
				.09403,
				0,
				.76666
			],
			"80": [
				0,
				.68333,
				.10257,
				0,
				.67833
			],
			"81": [
				.19444,
				.68333,
				.09403,
				0,
				.76666
			],
			"82": [
				0,
				.68333,
				.03868,
				0,
				.72944
			],
			"83": [
				0,
				.68333,
				.11972,
				0,
				.56222
			],
			"84": [
				0,
				.68333,
				.13305,
				0,
				.71555
			],
			"85": [
				0,
				.68333,
				.16389,
				0,
				.74333
			],
			"86": [
				0,
				.68333,
				.18361,
				0,
				.74333
			],
			"87": [
				0,
				.68333,
				.18361,
				0,
				.99888
			],
			"88": [
				0,
				.68333,
				.15806,
				0,
				.74333
			],
			"89": [
				0,
				.68333,
				.19383,
				0,
				.74333
			],
			"90": [
				0,
				.68333,
				.14528,
				0,
				.61333
			],
			"91": [
				.25,
				.75,
				.1875,
				0,
				.30667
			],
			"93": [
				.25,
				.75,
				.10528,
				0,
				.30667
			],
			"94": [
				0,
				.69444,
				.06646,
				0,
				.51111
			],
			"95": [
				.31,
				.12056,
				.09208,
				0,
				.51111
			],
			"97": [
				0,
				.43056,
				.07671,
				0,
				.51111
			],
			"98": [
				0,
				.69444,
				.06312,
				0,
				.46
			],
			"99": [
				0,
				.43056,
				.05653,
				0,
				.46
			],
			"100": [
				0,
				.69444,
				.10333,
				0,
				.51111
			],
			"101": [
				0,
				.43056,
				.07514,
				0,
				.46
			],
			"102": [
				.19444,
				.69444,
				.21194,
				0,
				.30667
			],
			"103": [
				.19444,
				.43056,
				.08847,
				0,
				.46
			],
			"104": [
				0,
				.69444,
				.07671,
				0,
				.51111
			],
			"105": [
				0,
				.65536,
				.1019,
				0,
				.30667
			],
			"106": [
				.19444,
				.65536,
				.14467,
				0,
				.30667
			],
			"107": [
				0,
				.69444,
				.10764,
				0,
				.46
			],
			"108": [
				0,
				.69444,
				.10333,
				0,
				.25555
			],
			"109": [
				0,
				.43056,
				.07671,
				0,
				.81777
			],
			"110": [
				0,
				.43056,
				.07671,
				0,
				.56222
			],
			"111": [
				0,
				.43056,
				.06312,
				0,
				.51111
			],
			"112": [
				.19444,
				.43056,
				.06312,
				0,
				.51111
			],
			"113": [
				.19444,
				.43056,
				.08847,
				0,
				.46
			],
			"114": [
				0,
				.43056,
				.10764,
				0,
				.42166
			],
			"115": [
				0,
				.43056,
				.08208,
				0,
				.40889
			],
			"116": [
				0,
				.61508,
				.09486,
				0,
				.33222
			],
			"117": [
				0,
				.43056,
				.07671,
				0,
				.53666
			],
			"118": [
				0,
				.43056,
				.10764,
				0,
				.46
			],
			"119": [
				0,
				.43056,
				.10764,
				0,
				.66444
			],
			"120": [
				0,
				.43056,
				.12042,
				0,
				.46389
			],
			"121": [
				.19444,
				.43056,
				.08847,
				0,
				.48555
			],
			"122": [
				0,
				.43056,
				.12292,
				0,
				.40889
			],
			"126": [
				.35,
				.31786,
				.11585,
				0,
				.51111
			],
			"160": [
				0,
				0,
				0,
				0,
				.25
			],
			"168": [
				0,
				.66786,
				.10474,
				0,
				.51111
			],
			"176": [
				0,
				.69444,
				0,
				0,
				.83129
			],
			"184": [
				.17014,
				0,
				0,
				0,
				.46
			],
			"198": [
				0,
				.68333,
				.12028,
				0,
				.88277
			],
			"216": [
				.04861,
				.73194,
				.09403,
				0,
				.76666
			],
			"223": [
				.19444,
				.69444,
				.10514,
				0,
				.53666
			],
			"230": [
				0,
				.43056,
				.07514,
				0,
				.71555
			],
			"248": [
				.09722,
				.52778,
				.09194,
				0,
				.51111
			],
			"338": [
				0,
				.68333,
				.12028,
				0,
				.98499
			],
			"339": [
				0,
				.43056,
				.07514,
				0,
				.71555
			],
			"710": [
				0,
				.69444,
				.06646,
				0,
				.51111
			],
			"711": [
				0,
				.62847,
				.08295,
				0,
				.51111
			],
			"713": [
				0,
				.56167,
				.10333,
				0,
				.51111
			],
			"714": [
				0,
				.69444,
				.09694,
				0,
				.51111
			],
			"715": [
				0,
				.69444,
				0,
				0,
				.51111
			],
			"728": [
				0,
				.69444,
				.10806,
				0,
				.51111
			],
			"729": [
				0,
				.66786,
				.11752,
				0,
				.30667
			],
			"730": [
				0,
				.69444,
				0,
				0,
				.83129
			],
			"732": [
				0,
				.66786,
				.11585,
				0,
				.51111
			],
			"733": [
				0,
				.69444,
				.1225,
				0,
				.51111
			],
			"915": [
				0,
				.68333,
				.13305,
				0,
				.62722
			],
			"916": [
				0,
				.68333,
				0,
				0,
				.81777
			],
			"920": [
				0,
				.68333,
				.09403,
				0,
				.76666
			],
			"923": [
				0,
				.68333,
				0,
				0,
				.69222
			],
			"926": [
				0,
				.68333,
				.15294,
				0,
				.66444
			],
			"928": [
				0,
				.68333,
				.16389,
				0,
				.74333
			],
			"931": [
				0,
				.68333,
				.12028,
				0,
				.71555
			],
			"933": [
				0,
				.68333,
				.11111,
				0,
				.76666
			],
			"934": [
				0,
				.68333,
				.05986,
				0,
				.71555
			],
			"936": [
				0,
				.68333,
				.11111,
				0,
				.76666
			],
			"937": [
				0,
				.68333,
				.10257,
				0,
				.71555
			],
			"8211": [
				0,
				.43056,
				.09208,
				0,
				.51111
			],
			"8212": [
				0,
				.43056,
				.09208,
				0,
				1.02222
			],
			"8216": [
				0,
				.69444,
				.12417,
				0,
				.30667
			],
			"8217": [
				0,
				.69444,
				.12417,
				0,
				.30667
			],
			"8220": [
				0,
				.69444,
				.1685,
				0,
				.51444
			],
			"8221": [
				0,
				.69444,
				.06961,
				0,
				.51444
			],
			"8463": [
				0,
				.68889,
				0,
				0,
				.54028
			]
		},
		"Main-Regular": {
			"32": [
				0,
				0,
				0,
				0,
				.25
			],
			"33": [
				0,
				.69444,
				0,
				0,
				.27778
			],
			"34": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"35": [
				.19444,
				.69444,
				0,
				0,
				.83334
			],
			"36": [
				.05556,
				.75,
				0,
				0,
				.5
			],
			"37": [
				.05556,
				.75,
				0,
				0,
				.83334
			],
			"38": [
				0,
				.69444,
				0,
				0,
				.77778
			],
			"39": [
				0,
				.69444,
				0,
				0,
				.27778
			],
			"40": [
				.25,
				.75,
				0,
				0,
				.38889
			],
			"41": [
				.25,
				.75,
				0,
				0,
				.38889
			],
			"42": [
				0,
				.75,
				0,
				0,
				.5
			],
			"43": [
				.08333,
				.58333,
				0,
				0,
				.77778
			],
			"44": [
				.19444,
				.10556,
				0,
				0,
				.27778
			],
			"45": [
				0,
				.43056,
				0,
				0,
				.33333
			],
			"46": [
				0,
				.10556,
				0,
				0,
				.27778
			],
			"47": [
				.25,
				.75,
				0,
				0,
				.5
			],
			"48": [
				0,
				.64444,
				0,
				0,
				.5
			],
			"49": [
				0,
				.64444,
				0,
				0,
				.5
			],
			"50": [
				0,
				.64444,
				0,
				0,
				.5
			],
			"51": [
				0,
				.64444,
				0,
				0,
				.5
			],
			"52": [
				0,
				.64444,
				0,
				0,
				.5
			],
			"53": [
				0,
				.64444,
				0,
				0,
				.5
			],
			"54": [
				0,
				.64444,
				0,
				0,
				.5
			],
			"55": [
				0,
				.64444,
				0,
				0,
				.5
			],
			"56": [
				0,
				.64444,
				0,
				0,
				.5
			],
			"57": [
				0,
				.64444,
				0,
				0,
				.5
			],
			"58": [
				0,
				.43056,
				0,
				0,
				.27778
			],
			"59": [
				.19444,
				.43056,
				0,
				0,
				.27778
			],
			"60": [
				.0391,
				.5391,
				0,
				0,
				.77778
			],
			"61": [
				-.13313,
				.36687,
				0,
				0,
				.77778
			],
			"62": [
				.0391,
				.5391,
				0,
				0,
				.77778
			],
			"63": [
				0,
				.69444,
				0,
				0,
				.47222
			],
			"64": [
				0,
				.69444,
				0,
				0,
				.77778
			],
			"65": [
				0,
				.68333,
				0,
				0,
				.75
			],
			"66": [
				0,
				.68333,
				0,
				0,
				.70834
			],
			"67": [
				0,
				.68333,
				0,
				0,
				.72222
			],
			"68": [
				0,
				.68333,
				0,
				0,
				.76389
			],
			"69": [
				0,
				.68333,
				0,
				0,
				.68056
			],
			"70": [
				0,
				.68333,
				0,
				0,
				.65278
			],
			"71": [
				0,
				.68333,
				0,
				0,
				.78472
			],
			"72": [
				0,
				.68333,
				0,
				0,
				.75
			],
			"73": [
				0,
				.68333,
				0,
				0,
				.36111
			],
			"74": [
				0,
				.68333,
				0,
				0,
				.51389
			],
			"75": [
				0,
				.68333,
				0,
				0,
				.77778
			],
			"76": [
				0,
				.68333,
				0,
				0,
				.625
			],
			"77": [
				0,
				.68333,
				0,
				0,
				.91667
			],
			"78": [
				0,
				.68333,
				0,
				0,
				.75
			],
			"79": [
				0,
				.68333,
				0,
				0,
				.77778
			],
			"80": [
				0,
				.68333,
				0,
				0,
				.68056
			],
			"81": [
				.19444,
				.68333,
				0,
				0,
				.77778
			],
			"82": [
				0,
				.68333,
				0,
				0,
				.73611
			],
			"83": [
				0,
				.68333,
				0,
				0,
				.55556
			],
			"84": [
				0,
				.68333,
				0,
				0,
				.72222
			],
			"85": [
				0,
				.68333,
				0,
				0,
				.75
			],
			"86": [
				0,
				.68333,
				.01389,
				0,
				.75
			],
			"87": [
				0,
				.68333,
				.01389,
				0,
				1.02778
			],
			"88": [
				0,
				.68333,
				0,
				0,
				.75
			],
			"89": [
				0,
				.68333,
				.025,
				0,
				.75
			],
			"90": [
				0,
				.68333,
				0,
				0,
				.61111
			],
			"91": [
				.25,
				.75,
				0,
				0,
				.27778
			],
			"92": [
				.25,
				.75,
				0,
				0,
				.5
			],
			"93": [
				.25,
				.75,
				0,
				0,
				.27778
			],
			"94": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"95": [
				.31,
				.12056,
				.02778,
				0,
				.5
			],
			"97": [
				0,
				.43056,
				0,
				0,
				.5
			],
			"98": [
				0,
				.69444,
				0,
				0,
				.55556
			],
			"99": [
				0,
				.43056,
				0,
				0,
				.44445
			],
			"100": [
				0,
				.69444,
				0,
				0,
				.55556
			],
			"101": [
				0,
				.43056,
				0,
				0,
				.44445
			],
			"102": [
				0,
				.69444,
				.07778,
				0,
				.30556
			],
			"103": [
				.19444,
				.43056,
				.01389,
				0,
				.5
			],
			"104": [
				0,
				.69444,
				0,
				0,
				.55556
			],
			"105": [
				0,
				.66786,
				0,
				0,
				.27778
			],
			"106": [
				.19444,
				.66786,
				0,
				0,
				.30556
			],
			"107": [
				0,
				.69444,
				0,
				0,
				.52778
			],
			"108": [
				0,
				.69444,
				0,
				0,
				.27778
			],
			"109": [
				0,
				.43056,
				0,
				0,
				.83334
			],
			"110": [
				0,
				.43056,
				0,
				0,
				.55556
			],
			"111": [
				0,
				.43056,
				0,
				0,
				.5
			],
			"112": [
				.19444,
				.43056,
				0,
				0,
				.55556
			],
			"113": [
				.19444,
				.43056,
				0,
				0,
				.52778
			],
			"114": [
				0,
				.43056,
				0,
				0,
				.39167
			],
			"115": [
				0,
				.43056,
				0,
				0,
				.39445
			],
			"116": [
				0,
				.61508,
				0,
				0,
				.38889
			],
			"117": [
				0,
				.43056,
				0,
				0,
				.55556
			],
			"118": [
				0,
				.43056,
				.01389,
				0,
				.52778
			],
			"119": [
				0,
				.43056,
				.01389,
				0,
				.72222
			],
			"120": [
				0,
				.43056,
				0,
				0,
				.52778
			],
			"121": [
				.19444,
				.43056,
				.01389,
				0,
				.52778
			],
			"122": [
				0,
				.43056,
				0,
				0,
				.44445
			],
			"123": [
				.25,
				.75,
				0,
				0,
				.5
			],
			"124": [
				.25,
				.75,
				0,
				0,
				.27778
			],
			"125": [
				.25,
				.75,
				0,
				0,
				.5
			],
			"126": [
				.35,
				.31786,
				0,
				0,
				.5
			],
			"160": [
				0,
				0,
				0,
				0,
				.25
			],
			"163": [
				0,
				.69444,
				0,
				0,
				.76909
			],
			"167": [
				.19444,
				.69444,
				0,
				0,
				.44445
			],
			"168": [
				0,
				.66786,
				0,
				0,
				.5
			],
			"172": [
				0,
				.43056,
				0,
				0,
				.66667
			],
			"176": [
				0,
				.69444,
				0,
				0,
				.75
			],
			"177": [
				.08333,
				.58333,
				0,
				0,
				.77778
			],
			"182": [
				.19444,
				.69444,
				0,
				0,
				.61111
			],
			"184": [
				.17014,
				0,
				0,
				0,
				.44445
			],
			"198": [
				0,
				.68333,
				0,
				0,
				.90278
			],
			"215": [
				.08333,
				.58333,
				0,
				0,
				.77778
			],
			"216": [
				.04861,
				.73194,
				0,
				0,
				.77778
			],
			"223": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"230": [
				0,
				.43056,
				0,
				0,
				.72222
			],
			"247": [
				.08333,
				.58333,
				0,
				0,
				.77778
			],
			"248": [
				.09722,
				.52778,
				0,
				0,
				.5
			],
			"305": [
				0,
				.43056,
				0,
				0,
				.27778
			],
			"338": [
				0,
				.68333,
				0,
				0,
				1.01389
			],
			"339": [
				0,
				.43056,
				0,
				0,
				.77778
			],
			"567": [
				.19444,
				.43056,
				0,
				0,
				.30556
			],
			"710": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"711": [
				0,
				.62847,
				0,
				0,
				.5
			],
			"713": [
				0,
				.56778,
				0,
				0,
				.5
			],
			"714": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"715": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"728": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"729": [
				0,
				.66786,
				0,
				0,
				.27778
			],
			"730": [
				0,
				.69444,
				0,
				0,
				.75
			],
			"732": [
				0,
				.66786,
				0,
				0,
				.5
			],
			"733": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"915": [
				0,
				.68333,
				0,
				0,
				.625
			],
			"916": [
				0,
				.68333,
				0,
				0,
				.83334
			],
			"920": [
				0,
				.68333,
				0,
				0,
				.77778
			],
			"923": [
				0,
				.68333,
				0,
				0,
				.69445
			],
			"926": [
				0,
				.68333,
				0,
				0,
				.66667
			],
			"928": [
				0,
				.68333,
				0,
				0,
				.75
			],
			"931": [
				0,
				.68333,
				0,
				0,
				.72222
			],
			"933": [
				0,
				.68333,
				0,
				0,
				.77778
			],
			"934": [
				0,
				.68333,
				0,
				0,
				.72222
			],
			"936": [
				0,
				.68333,
				0,
				0,
				.77778
			],
			"937": [
				0,
				.68333,
				0,
				0,
				.72222
			],
			"8211": [
				0,
				.43056,
				.02778,
				0,
				.5
			],
			"8212": [
				0,
				.43056,
				.02778,
				0,
				1
			],
			"8216": [
				0,
				.69444,
				0,
				0,
				.27778
			],
			"8217": [
				0,
				.69444,
				0,
				0,
				.27778
			],
			"8220": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"8221": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"8224": [
				.19444,
				.69444,
				0,
				0,
				.44445
			],
			"8225": [
				.19444,
				.69444,
				0,
				0,
				.44445
			],
			"8230": [
				0,
				.123,
				0,
				0,
				1.172
			],
			"8242": [
				0,
				.55556,
				0,
				0,
				.275
			],
			"8407": [
				0,
				.71444,
				.15382,
				0,
				.5
			],
			"8463": [
				0,
				.68889,
				0,
				0,
				.54028
			],
			"8465": [
				0,
				.69444,
				0,
				0,
				.72222
			],
			"8467": [
				0,
				.69444,
				0,
				.11111,
				.41667
			],
			"8472": [
				.19444,
				.43056,
				0,
				.11111,
				.63646
			],
			"8476": [
				0,
				.69444,
				0,
				0,
				.72222
			],
			"8501": [
				0,
				.69444,
				0,
				0,
				.61111
			],
			"8592": [
				-.13313,
				.36687,
				0,
				0,
				1
			],
			"8593": [
				.19444,
				.69444,
				0,
				0,
				.5
			],
			"8594": [
				-.13313,
				.36687,
				0,
				0,
				1
			],
			"8595": [
				.19444,
				.69444,
				0,
				0,
				.5
			],
			"8596": [
				-.13313,
				.36687,
				0,
				0,
				1
			],
			"8597": [
				.25,
				.75,
				0,
				0,
				.5
			],
			"8598": [
				.19444,
				.69444,
				0,
				0,
				1
			],
			"8599": [
				.19444,
				.69444,
				0,
				0,
				1
			],
			"8600": [
				.19444,
				.69444,
				0,
				0,
				1
			],
			"8601": [
				.19444,
				.69444,
				0,
				0,
				1
			],
			"8614": [
				.011,
				.511,
				0,
				0,
				1
			],
			"8617": [
				.011,
				.511,
				0,
				0,
				1.126
			],
			"8618": [
				.011,
				.511,
				0,
				0,
				1.126
			],
			"8636": [
				-.13313,
				.36687,
				0,
				0,
				1
			],
			"8637": [
				-.13313,
				.36687,
				0,
				0,
				1
			],
			"8640": [
				-.13313,
				.36687,
				0,
				0,
				1
			],
			"8641": [
				-.13313,
				.36687,
				0,
				0,
				1
			],
			"8652": [
				.011,
				.671,
				0,
				0,
				1
			],
			"8656": [
				-.13313,
				.36687,
				0,
				0,
				1
			],
			"8657": [
				.19444,
				.69444,
				0,
				0,
				.61111
			],
			"8658": [
				-.13313,
				.36687,
				0,
				0,
				1
			],
			"8659": [
				.19444,
				.69444,
				0,
				0,
				.61111
			],
			"8660": [
				-.13313,
				.36687,
				0,
				0,
				1
			],
			"8661": [
				.25,
				.75,
				0,
				0,
				.61111
			],
			"8704": [
				0,
				.69444,
				0,
				0,
				.55556
			],
			"8706": [
				0,
				.69444,
				.05556,
				.08334,
				.5309
			],
			"8707": [
				0,
				.69444,
				0,
				0,
				.55556
			],
			"8709": [
				.05556,
				.75,
				0,
				0,
				.5
			],
			"8711": [
				0,
				.68333,
				0,
				0,
				.83334
			],
			"8712": [
				.0391,
				.5391,
				0,
				0,
				.66667
			],
			"8715": [
				.0391,
				.5391,
				0,
				0,
				.66667
			],
			"8722": [
				.08333,
				.58333,
				0,
				0,
				.77778
			],
			"8723": [
				.08333,
				.58333,
				0,
				0,
				.77778
			],
			"8725": [
				.25,
				.75,
				0,
				0,
				.5
			],
			"8726": [
				.25,
				.75,
				0,
				0,
				.5
			],
			"8727": [
				-.03472,
				.46528,
				0,
				0,
				.5
			],
			"8728": [
				-.05555,
				.44445,
				0,
				0,
				.5
			],
			"8729": [
				-.05555,
				.44445,
				0,
				0,
				.5
			],
			"8730": [
				.2,
				.8,
				0,
				0,
				.83334
			],
			"8733": [
				0,
				.43056,
				0,
				0,
				.77778
			],
			"8734": [
				0,
				.43056,
				0,
				0,
				1
			],
			"8736": [
				0,
				.69224,
				0,
				0,
				.72222
			],
			"8739": [
				.25,
				.75,
				0,
				0,
				.27778
			],
			"8741": [
				.25,
				.75,
				0,
				0,
				.5
			],
			"8743": [
				0,
				.55556,
				0,
				0,
				.66667
			],
			"8744": [
				0,
				.55556,
				0,
				0,
				.66667
			],
			"8745": [
				0,
				.55556,
				0,
				0,
				.66667
			],
			"8746": [
				0,
				.55556,
				0,
				0,
				.66667
			],
			"8747": [
				.19444,
				.69444,
				.11111,
				0,
				.41667
			],
			"8764": [
				-.13313,
				.36687,
				0,
				0,
				.77778
			],
			"8768": [
				.19444,
				.69444,
				0,
				0,
				.27778
			],
			"8771": [
				-.03625,
				.46375,
				0,
				0,
				.77778
			],
			"8773": [
				-.022,
				.589,
				0,
				0,
				.778
			],
			"8776": [
				-.01688,
				.48312,
				0,
				0,
				.77778
			],
			"8781": [
				-.03625,
				.46375,
				0,
				0,
				.77778
			],
			"8784": [
				-.133,
				.673,
				0,
				0,
				.778
			],
			"8801": [
				-.03625,
				.46375,
				0,
				0,
				.77778
			],
			"8804": [
				.13597,
				.63597,
				0,
				0,
				.77778
			],
			"8805": [
				.13597,
				.63597,
				0,
				0,
				.77778
			],
			"8810": [
				.0391,
				.5391,
				0,
				0,
				1
			],
			"8811": [
				.0391,
				.5391,
				0,
				0,
				1
			],
			"8826": [
				.0391,
				.5391,
				0,
				0,
				.77778
			],
			"8827": [
				.0391,
				.5391,
				0,
				0,
				.77778
			],
			"8834": [
				.0391,
				.5391,
				0,
				0,
				.77778
			],
			"8835": [
				.0391,
				.5391,
				0,
				0,
				.77778
			],
			"8838": [
				.13597,
				.63597,
				0,
				0,
				.77778
			],
			"8839": [
				.13597,
				.63597,
				0,
				0,
				.77778
			],
			"8846": [
				0,
				.55556,
				0,
				0,
				.66667
			],
			"8849": [
				.13597,
				.63597,
				0,
				0,
				.77778
			],
			"8850": [
				.13597,
				.63597,
				0,
				0,
				.77778
			],
			"8851": [
				0,
				.55556,
				0,
				0,
				.66667
			],
			"8852": [
				0,
				.55556,
				0,
				0,
				.66667
			],
			"8853": [
				.08333,
				.58333,
				0,
				0,
				.77778
			],
			"8854": [
				.08333,
				.58333,
				0,
				0,
				.77778
			],
			"8855": [
				.08333,
				.58333,
				0,
				0,
				.77778
			],
			"8856": [
				.08333,
				.58333,
				0,
				0,
				.77778
			],
			"8857": [
				.08333,
				.58333,
				0,
				0,
				.77778
			],
			"8866": [
				0,
				.69444,
				0,
				0,
				.61111
			],
			"8867": [
				0,
				.69444,
				0,
				0,
				.61111
			],
			"8868": [
				0,
				.69444,
				0,
				0,
				.77778
			],
			"8869": [
				0,
				.69444,
				0,
				0,
				.77778
			],
			"8872": [
				.249,
				.75,
				0,
				0,
				.867
			],
			"8900": [
				-.05555,
				.44445,
				0,
				0,
				.5
			],
			"8901": [
				-.05555,
				.44445,
				0,
				0,
				.27778
			],
			"8902": [
				-.03472,
				.46528,
				0,
				0,
				.5
			],
			"8904": [
				.005,
				.505,
				0,
				0,
				.9
			],
			"8942": [
				.03,
				.903,
				0,
				0,
				.278
			],
			"8943": [
				-.19,
				.313,
				0,
				0,
				1.172
			],
			"8945": [
				-.1,
				.823,
				0,
				0,
				1.282
			],
			"8968": [
				.25,
				.75,
				0,
				0,
				.44445
			],
			"8969": [
				.25,
				.75,
				0,
				0,
				.44445
			],
			"8970": [
				.25,
				.75,
				0,
				0,
				.44445
			],
			"8971": [
				.25,
				.75,
				0,
				0,
				.44445
			],
			"8994": [
				-.14236,
				.35764,
				0,
				0,
				1
			],
			"8995": [
				-.14236,
				.35764,
				0,
				0,
				1
			],
			"9136": [
				.244,
				.744,
				0,
				0,
				.412
			],
			"9137": [
				.244,
				.745,
				0,
				0,
				.412
			],
			"9651": [
				.19444,
				.69444,
				0,
				0,
				.88889
			],
			"9657": [
				-.03472,
				.46528,
				0,
				0,
				.5
			],
			"9661": [
				.19444,
				.69444,
				0,
				0,
				.88889
			],
			"9667": [
				-.03472,
				.46528,
				0,
				0,
				.5
			],
			"9711": [
				.19444,
				.69444,
				0,
				0,
				1
			],
			"9824": [
				.12963,
				.69444,
				0,
				0,
				.77778
			],
			"9825": [
				.12963,
				.69444,
				0,
				0,
				.77778
			],
			"9826": [
				.12963,
				.69444,
				0,
				0,
				.77778
			],
			"9827": [
				.12963,
				.69444,
				0,
				0,
				.77778
			],
			"9837": [
				0,
				.75,
				0,
				0,
				.38889
			],
			"9838": [
				.19444,
				.69444,
				0,
				0,
				.38889
			],
			"9839": [
				.19444,
				.69444,
				0,
				0,
				.38889
			],
			"10216": [
				.25,
				.75,
				0,
				0,
				.38889
			],
			"10217": [
				.25,
				.75,
				0,
				0,
				.38889
			],
			"10222": [
				.244,
				.744,
				0,
				0,
				.412
			],
			"10223": [
				.244,
				.745,
				0,
				0,
				.412
			],
			"10229": [
				.011,
				.511,
				0,
				0,
				1.609
			],
			"10230": [
				.011,
				.511,
				0,
				0,
				1.638
			],
			"10231": [
				.011,
				.511,
				0,
				0,
				1.859
			],
			"10232": [
				.024,
				.525,
				0,
				0,
				1.609
			],
			"10233": [
				.024,
				.525,
				0,
				0,
				1.638
			],
			"10234": [
				.024,
				.525,
				0,
				0,
				1.858
			],
			"10236": [
				.011,
				.511,
				0,
				0,
				1.638
			],
			"10815": [
				0,
				.68333,
				0,
				0,
				.75
			],
			"10927": [
				.13597,
				.63597,
				0,
				0,
				.77778
			],
			"10928": [
				.13597,
				.63597,
				0,
				0,
				.77778
			],
			"57376": [
				.19444,
				.69444,
				0,
				0,
				0
			]
		},
		"Math-BoldItalic": {
			"32": [
				0,
				0,
				0,
				0,
				.25
			],
			"48": [
				0,
				.44444,
				0,
				0,
				.575
			],
			"49": [
				0,
				.44444,
				0,
				0,
				.575
			],
			"50": [
				0,
				.44444,
				0,
				0,
				.575
			],
			"51": [
				.19444,
				.44444,
				0,
				0,
				.575
			],
			"52": [
				.19444,
				.44444,
				0,
				0,
				.575
			],
			"53": [
				.19444,
				.44444,
				0,
				0,
				.575
			],
			"54": [
				0,
				.64444,
				0,
				0,
				.575
			],
			"55": [
				.19444,
				.44444,
				0,
				0,
				.575
			],
			"56": [
				0,
				.64444,
				0,
				0,
				.575
			],
			"57": [
				.19444,
				.44444,
				0,
				0,
				.575
			],
			"65": [
				0,
				.68611,
				0,
				0,
				.86944
			],
			"66": [
				0,
				.68611,
				.04835,
				0,
				.8664
			],
			"67": [
				0,
				.68611,
				.06979,
				0,
				.81694
			],
			"68": [
				0,
				.68611,
				.03194,
				0,
				.93812
			],
			"69": [
				0,
				.68611,
				.05451,
				0,
				.81007
			],
			"70": [
				0,
				.68611,
				.15972,
				0,
				.68889
			],
			"71": [
				0,
				.68611,
				0,
				0,
				.88673
			],
			"72": [
				0,
				.68611,
				.08229,
				0,
				.98229
			],
			"73": [
				0,
				.68611,
				.07778,
				0,
				.51111
			],
			"74": [
				0,
				.68611,
				.10069,
				0,
				.63125
			],
			"75": [
				0,
				.68611,
				.06979,
				0,
				.97118
			],
			"76": [
				0,
				.68611,
				0,
				0,
				.75555
			],
			"77": [
				0,
				.68611,
				.11424,
				0,
				1.14201
			],
			"78": [
				0,
				.68611,
				.11424,
				0,
				.95034
			],
			"79": [
				0,
				.68611,
				.03194,
				0,
				.83666
			],
			"80": [
				0,
				.68611,
				.15972,
				0,
				.72309
			],
			"81": [
				.19444,
				.68611,
				0,
				0,
				.86861
			],
			"82": [
				0,
				.68611,
				.00421,
				0,
				.87235
			],
			"83": [
				0,
				.68611,
				.05382,
				0,
				.69271
			],
			"84": [
				0,
				.68611,
				.15972,
				0,
				.63663
			],
			"85": [
				0,
				.68611,
				.11424,
				0,
				.80027
			],
			"86": [
				0,
				.68611,
				.25555,
				0,
				.67778
			],
			"87": [
				0,
				.68611,
				.15972,
				0,
				1.09305
			],
			"88": [
				0,
				.68611,
				.07778,
				0,
				.94722
			],
			"89": [
				0,
				.68611,
				.25555,
				0,
				.67458
			],
			"90": [
				0,
				.68611,
				.06979,
				0,
				.77257
			],
			"97": [
				0,
				.44444,
				0,
				0,
				.63287
			],
			"98": [
				0,
				.69444,
				0,
				0,
				.52083
			],
			"99": [
				0,
				.44444,
				0,
				0,
				.51342
			],
			"100": [
				0,
				.69444,
				0,
				0,
				.60972
			],
			"101": [
				0,
				.44444,
				0,
				0,
				.55361
			],
			"102": [
				.19444,
				.69444,
				.11042,
				0,
				.56806
			],
			"103": [
				.19444,
				.44444,
				.03704,
				0,
				.5449
			],
			"104": [
				0,
				.69444,
				0,
				0,
				.66759
			],
			"105": [
				0,
				.69326,
				0,
				0,
				.4048
			],
			"106": [
				.19444,
				.69326,
				.0622,
				0,
				.47083
			],
			"107": [
				0,
				.69444,
				.01852,
				0,
				.6037
			],
			"108": [
				0,
				.69444,
				.0088,
				0,
				.34815
			],
			"109": [
				0,
				.44444,
				0,
				0,
				1.0324
			],
			"110": [
				0,
				.44444,
				0,
				0,
				.71296
			],
			"111": [
				0,
				.44444,
				0,
				0,
				.58472
			],
			"112": [
				.19444,
				.44444,
				0,
				0,
				.60092
			],
			"113": [
				.19444,
				.44444,
				.03704,
				0,
				.54213
			],
			"114": [
				0,
				.44444,
				.03194,
				0,
				.5287
			],
			"115": [
				0,
				.44444,
				0,
				0,
				.53125
			],
			"116": [
				0,
				.63492,
				0,
				0,
				.41528
			],
			"117": [
				0,
				.44444,
				0,
				0,
				.68102
			],
			"118": [
				0,
				.44444,
				.03704,
				0,
				.56666
			],
			"119": [
				0,
				.44444,
				.02778,
				0,
				.83148
			],
			"120": [
				0,
				.44444,
				0,
				0,
				.65903
			],
			"121": [
				.19444,
				.44444,
				.03704,
				0,
				.59028
			],
			"122": [
				0,
				.44444,
				.04213,
				0,
				.55509
			],
			"160": [
				0,
				0,
				0,
				0,
				.25
			],
			"915": [
				0,
				.68611,
				.15972,
				0,
				.65694
			],
			"916": [
				0,
				.68611,
				0,
				0,
				.95833
			],
			"920": [
				0,
				.68611,
				.03194,
				0,
				.86722
			],
			"923": [
				0,
				.68611,
				0,
				0,
				.80555
			],
			"926": [
				0,
				.68611,
				.07458,
				0,
				.84125
			],
			"928": [
				0,
				.68611,
				.08229,
				0,
				.98229
			],
			"931": [
				0,
				.68611,
				.05451,
				0,
				.88507
			],
			"933": [
				0,
				.68611,
				.15972,
				0,
				.67083
			],
			"934": [
				0,
				.68611,
				0,
				0,
				.76666
			],
			"936": [
				0,
				.68611,
				.11653,
				0,
				.71402
			],
			"937": [
				0,
				.68611,
				.04835,
				0,
				.8789
			],
			"945": [
				0,
				.44444,
				0,
				0,
				.76064
			],
			"946": [
				.19444,
				.69444,
				.03403,
				0,
				.65972
			],
			"947": [
				.19444,
				.44444,
				.06389,
				0,
				.59003
			],
			"948": [
				0,
				.69444,
				.03819,
				0,
				.52222
			],
			"949": [
				0,
				.44444,
				0,
				0,
				.52882
			],
			"950": [
				.19444,
				.69444,
				.06215,
				0,
				.50833
			],
			"951": [
				.19444,
				.44444,
				.03704,
				0,
				.6
			],
			"952": [
				0,
				.69444,
				.03194,
				0,
				.5618
			],
			"953": [
				0,
				.44444,
				0,
				0,
				.41204
			],
			"954": [
				0,
				.44444,
				0,
				0,
				.66759
			],
			"955": [
				0,
				.69444,
				0,
				0,
				.67083
			],
			"956": [
				.19444,
				.44444,
				0,
				0,
				.70787
			],
			"957": [
				0,
				.44444,
				.06898,
				0,
				.57685
			],
			"958": [
				.19444,
				.69444,
				.03021,
				0,
				.50833
			],
			"959": [
				0,
				.44444,
				0,
				0,
				.58472
			],
			"960": [
				0,
				.44444,
				.03704,
				0,
				.68241
			],
			"961": [
				.19444,
				.44444,
				0,
				0,
				.6118
			],
			"962": [
				.09722,
				.44444,
				.07917,
				0,
				.42361
			],
			"963": [
				0,
				.44444,
				.03704,
				0,
				.68588
			],
			"964": [
				0,
				.44444,
				.13472,
				0,
				.52083
			],
			"965": [
				0,
				.44444,
				.03704,
				0,
				.63055
			],
			"966": [
				.19444,
				.44444,
				0,
				0,
				.74722
			],
			"967": [
				.19444,
				.44444,
				0,
				0,
				.71805
			],
			"968": [
				.19444,
				.69444,
				.03704,
				0,
				.75833
			],
			"969": [
				0,
				.44444,
				.03704,
				0,
				.71782
			],
			"977": [
				0,
				.69444,
				0,
				0,
				.69155
			],
			"981": [
				.19444,
				.69444,
				0,
				0,
				.7125
			],
			"982": [
				0,
				.44444,
				.03194,
				0,
				.975
			],
			"1009": [
				.19444,
				.44444,
				0,
				0,
				.6118
			],
			"1013": [
				0,
				.44444,
				0,
				0,
				.48333
			],
			"57649": [
				0,
				.44444,
				0,
				0,
				.39352
			],
			"57911": [
				.19444,
				.44444,
				0,
				0,
				.43889
			]
		},
		"Math-Italic": {
			"32": [
				0,
				0,
				0,
				0,
				.25
			],
			"48": [
				0,
				.43056,
				0,
				0,
				.5
			],
			"49": [
				0,
				.43056,
				0,
				0,
				.5
			],
			"50": [
				0,
				.43056,
				0,
				0,
				.5
			],
			"51": [
				.19444,
				.43056,
				0,
				0,
				.5
			],
			"52": [
				.19444,
				.43056,
				0,
				0,
				.5
			],
			"53": [
				.19444,
				.43056,
				0,
				0,
				.5
			],
			"54": [
				0,
				.64444,
				0,
				0,
				.5
			],
			"55": [
				.19444,
				.43056,
				0,
				0,
				.5
			],
			"56": [
				0,
				.64444,
				0,
				0,
				.5
			],
			"57": [
				.19444,
				.43056,
				0,
				0,
				.5
			],
			"65": [
				0,
				.68333,
				0,
				.13889,
				.75
			],
			"66": [
				0,
				.68333,
				.05017,
				.08334,
				.75851
			],
			"67": [
				0,
				.68333,
				.07153,
				.08334,
				.71472
			],
			"68": [
				0,
				.68333,
				.02778,
				.05556,
				.82792
			],
			"69": [
				0,
				.68333,
				.05764,
				.08334,
				.7382
			],
			"70": [
				0,
				.68333,
				.13889,
				.08334,
				.64306
			],
			"71": [
				0,
				.68333,
				0,
				.08334,
				.78625
			],
			"72": [
				0,
				.68333,
				.08125,
				.05556,
				.83125
			],
			"73": [
				0,
				.68333,
				.07847,
				.11111,
				.43958
			],
			"74": [
				0,
				.68333,
				.09618,
				.16667,
				.55451
			],
			"75": [
				0,
				.68333,
				.07153,
				.05556,
				.84931
			],
			"76": [
				0,
				.68333,
				0,
				.02778,
				.68056
			],
			"77": [
				0,
				.68333,
				.10903,
				.08334,
				.97014
			],
			"78": [
				0,
				.68333,
				.10903,
				.08334,
				.80347
			],
			"79": [
				0,
				.68333,
				.02778,
				.08334,
				.76278
			],
			"80": [
				0,
				.68333,
				.13889,
				.08334,
				.64201
			],
			"81": [
				.19444,
				.68333,
				0,
				.08334,
				.79056
			],
			"82": [
				0,
				.68333,
				.00773,
				.08334,
				.75929
			],
			"83": [
				0,
				.68333,
				.05764,
				.08334,
				.6132
			],
			"84": [
				0,
				.68333,
				.13889,
				.08334,
				.58438
			],
			"85": [
				0,
				.68333,
				.10903,
				.02778,
				.68278
			],
			"86": [
				0,
				.68333,
				.22222,
				0,
				.58333
			],
			"87": [
				0,
				.68333,
				.13889,
				0,
				.94445
			],
			"88": [
				0,
				.68333,
				.07847,
				.08334,
				.82847
			],
			"89": [
				0,
				.68333,
				.22222,
				0,
				.58056
			],
			"90": [
				0,
				.68333,
				.07153,
				.08334,
				.68264
			],
			"97": [
				0,
				.43056,
				0,
				0,
				.52859
			],
			"98": [
				0,
				.69444,
				0,
				0,
				.42917
			],
			"99": [
				0,
				.43056,
				0,
				.05556,
				.43276
			],
			"100": [
				0,
				.69444,
				0,
				.16667,
				.52049
			],
			"101": [
				0,
				.43056,
				0,
				.05556,
				.46563
			],
			"102": [
				.19444,
				.69444,
				.10764,
				.16667,
				.48959
			],
			"103": [
				.19444,
				.43056,
				.03588,
				.02778,
				.47697
			],
			"104": [
				0,
				.69444,
				0,
				0,
				.57616
			],
			"105": [
				0,
				.65952,
				0,
				0,
				.34451
			],
			"106": [
				.19444,
				.65952,
				.05724,
				0,
				.41181
			],
			"107": [
				0,
				.69444,
				.03148,
				0,
				.5206
			],
			"108": [
				0,
				.69444,
				.01968,
				.08334,
				.29838
			],
			"109": [
				0,
				.43056,
				0,
				0,
				.87801
			],
			"110": [
				0,
				.43056,
				0,
				0,
				.60023
			],
			"111": [
				0,
				.43056,
				0,
				.05556,
				.48472
			],
			"112": [
				.19444,
				.43056,
				0,
				.08334,
				.50313
			],
			"113": [
				.19444,
				.43056,
				.03588,
				.08334,
				.44641
			],
			"114": [
				0,
				.43056,
				.02778,
				.05556,
				.45116
			],
			"115": [
				0,
				.43056,
				0,
				.05556,
				.46875
			],
			"116": [
				0,
				.61508,
				0,
				.08334,
				.36111
			],
			"117": [
				0,
				.43056,
				0,
				.02778,
				.57246
			],
			"118": [
				0,
				.43056,
				.03588,
				.02778,
				.48472
			],
			"119": [
				0,
				.43056,
				.02691,
				.08334,
				.71592
			],
			"120": [
				0,
				.43056,
				0,
				.02778,
				.57153
			],
			"121": [
				.19444,
				.43056,
				.03588,
				.05556,
				.49028
			],
			"122": [
				0,
				.43056,
				.04398,
				.05556,
				.46505
			],
			"160": [
				0,
				0,
				0,
				0,
				.25
			],
			"915": [
				0,
				.68333,
				.13889,
				.08334,
				.61528
			],
			"916": [
				0,
				.68333,
				0,
				.16667,
				.83334
			],
			"920": [
				0,
				.68333,
				.02778,
				.08334,
				.76278
			],
			"923": [
				0,
				.68333,
				0,
				.16667,
				.69445
			],
			"926": [
				0,
				.68333,
				.07569,
				.08334,
				.74236
			],
			"928": [
				0,
				.68333,
				.08125,
				.05556,
				.83125
			],
			"931": [
				0,
				.68333,
				.05764,
				.08334,
				.77986
			],
			"933": [
				0,
				.68333,
				.13889,
				.05556,
				.58333
			],
			"934": [
				0,
				.68333,
				0,
				.08334,
				.66667
			],
			"936": [
				0,
				.68333,
				.11,
				.05556,
				.61222
			],
			"937": [
				0,
				.68333,
				.05017,
				.08334,
				.7724
			],
			"945": [
				0,
				.43056,
				.0037,
				.02778,
				.6397
			],
			"946": [
				.19444,
				.69444,
				.05278,
				.08334,
				.56563
			],
			"947": [
				.19444,
				.43056,
				.05556,
				0,
				.51773
			],
			"948": [
				0,
				.69444,
				.03785,
				.05556,
				.44444
			],
			"949": [
				0,
				.43056,
				0,
				.08334,
				.46632
			],
			"950": [
				.19444,
				.69444,
				.07378,
				.08334,
				.4375
			],
			"951": [
				.19444,
				.43056,
				.03588,
				.05556,
				.49653
			],
			"952": [
				0,
				.69444,
				.02778,
				.08334,
				.46944
			],
			"953": [
				0,
				.43056,
				0,
				.05556,
				.35394
			],
			"954": [
				0,
				.43056,
				0,
				0,
				.57616
			],
			"955": [
				0,
				.69444,
				0,
				0,
				.58334
			],
			"956": [
				.19444,
				.43056,
				0,
				.02778,
				.60255
			],
			"957": [
				0,
				.43056,
				.06366,
				.02778,
				.49398
			],
			"958": [
				.19444,
				.69444,
				.04601,
				.11111,
				.4375
			],
			"959": [
				0,
				.43056,
				0,
				.05556,
				.48472
			],
			"960": [
				0,
				.43056,
				.03588,
				0,
				.57003
			],
			"961": [
				.19444,
				.43056,
				0,
				.08334,
				.51702
			],
			"962": [
				.09722,
				.43056,
				.07986,
				.08334,
				.36285
			],
			"963": [
				0,
				.43056,
				.03588,
				0,
				.57141
			],
			"964": [
				0,
				.43056,
				.1132,
				.02778,
				.43715
			],
			"965": [
				0,
				.43056,
				.03588,
				.02778,
				.54028
			],
			"966": [
				.19444,
				.43056,
				0,
				.08334,
				.65417
			],
			"967": [
				.19444,
				.43056,
				0,
				.05556,
				.62569
			],
			"968": [
				.19444,
				.69444,
				.03588,
				.11111,
				.65139
			],
			"969": [
				0,
				.43056,
				.03588,
				0,
				.62245
			],
			"977": [
				0,
				.69444,
				0,
				.08334,
				.59144
			],
			"981": [
				.19444,
				.69444,
				0,
				.08334,
				.59583
			],
			"982": [
				0,
				.43056,
				.02778,
				0,
				.82813
			],
			"1009": [
				.19444,
				.43056,
				0,
				.08334,
				.51702
			],
			"1013": [
				0,
				.43056,
				0,
				.05556,
				.4059
			],
			"57649": [
				0,
				.43056,
				0,
				.02778,
				.32246
			],
			"57911": [
				.19444,
				.43056,
				0,
				.08334,
				.38403
			]
		},
		"SansSerif-Bold": {
			"32": [
				0,
				0,
				0,
				0,
				.25
			],
			"33": [
				0,
				.69444,
				0,
				0,
				.36667
			],
			"34": [
				0,
				.69444,
				0,
				0,
				.55834
			],
			"35": [
				.19444,
				.69444,
				0,
				0,
				.91667
			],
			"36": [
				.05556,
				.75,
				0,
				0,
				.55
			],
			"37": [
				.05556,
				.75,
				0,
				0,
				1.02912
			],
			"38": [
				0,
				.69444,
				0,
				0,
				.83056
			],
			"39": [
				0,
				.69444,
				0,
				0,
				.30556
			],
			"40": [
				.25,
				.75,
				0,
				0,
				.42778
			],
			"41": [
				.25,
				.75,
				0,
				0,
				.42778
			],
			"42": [
				0,
				.75,
				0,
				0,
				.55
			],
			"43": [
				.11667,
				.61667,
				0,
				0,
				.85556
			],
			"44": [
				.10556,
				.13056,
				0,
				0,
				.30556
			],
			"45": [
				0,
				.45833,
				0,
				0,
				.36667
			],
			"46": [
				0,
				.13056,
				0,
				0,
				.30556
			],
			"47": [
				.25,
				.75,
				0,
				0,
				.55
			],
			"48": [
				0,
				.69444,
				0,
				0,
				.55
			],
			"49": [
				0,
				.69444,
				0,
				0,
				.55
			],
			"50": [
				0,
				.69444,
				0,
				0,
				.55
			],
			"51": [
				0,
				.69444,
				0,
				0,
				.55
			],
			"52": [
				0,
				.69444,
				0,
				0,
				.55
			],
			"53": [
				0,
				.69444,
				0,
				0,
				.55
			],
			"54": [
				0,
				.69444,
				0,
				0,
				.55
			],
			"55": [
				0,
				.69444,
				0,
				0,
				.55
			],
			"56": [
				0,
				.69444,
				0,
				0,
				.55
			],
			"57": [
				0,
				.69444,
				0,
				0,
				.55
			],
			"58": [
				0,
				.45833,
				0,
				0,
				.30556
			],
			"59": [
				.10556,
				.45833,
				0,
				0,
				.30556
			],
			"61": [
				-.09375,
				.40625,
				0,
				0,
				.85556
			],
			"63": [
				0,
				.69444,
				0,
				0,
				.51945
			],
			"64": [
				0,
				.69444,
				0,
				0,
				.73334
			],
			"65": [
				0,
				.69444,
				0,
				0,
				.73334
			],
			"66": [
				0,
				.69444,
				0,
				0,
				.73334
			],
			"67": [
				0,
				.69444,
				0,
				0,
				.70278
			],
			"68": [
				0,
				.69444,
				0,
				0,
				.79445
			],
			"69": [
				0,
				.69444,
				0,
				0,
				.64167
			],
			"70": [
				0,
				.69444,
				0,
				0,
				.61111
			],
			"71": [
				0,
				.69444,
				0,
				0,
				.73334
			],
			"72": [
				0,
				.69444,
				0,
				0,
				.79445
			],
			"73": [
				0,
				.69444,
				0,
				0,
				.33056
			],
			"74": [
				0,
				.69444,
				0,
				0,
				.51945
			],
			"75": [
				0,
				.69444,
				0,
				0,
				.76389
			],
			"76": [
				0,
				.69444,
				0,
				0,
				.58056
			],
			"77": [
				0,
				.69444,
				0,
				0,
				.97778
			],
			"78": [
				0,
				.69444,
				0,
				0,
				.79445
			],
			"79": [
				0,
				.69444,
				0,
				0,
				.79445
			],
			"80": [
				0,
				.69444,
				0,
				0,
				.70278
			],
			"81": [
				.10556,
				.69444,
				0,
				0,
				.79445
			],
			"82": [
				0,
				.69444,
				0,
				0,
				.70278
			],
			"83": [
				0,
				.69444,
				0,
				0,
				.61111
			],
			"84": [
				0,
				.69444,
				0,
				0,
				.73334
			],
			"85": [
				0,
				.69444,
				0,
				0,
				.76389
			],
			"86": [
				0,
				.69444,
				.01528,
				0,
				.73334
			],
			"87": [
				0,
				.69444,
				.01528,
				0,
				1.03889
			],
			"88": [
				0,
				.69444,
				0,
				0,
				.73334
			],
			"89": [
				0,
				.69444,
				.0275,
				0,
				.73334
			],
			"90": [
				0,
				.69444,
				0,
				0,
				.67223
			],
			"91": [
				.25,
				.75,
				0,
				0,
				.34306
			],
			"93": [
				.25,
				.75,
				0,
				0,
				.34306
			],
			"94": [
				0,
				.69444,
				0,
				0,
				.55
			],
			"95": [
				.35,
				.10833,
				.03056,
				0,
				.55
			],
			"97": [
				0,
				.45833,
				0,
				0,
				.525
			],
			"98": [
				0,
				.69444,
				0,
				0,
				.56111
			],
			"99": [
				0,
				.45833,
				0,
				0,
				.48889
			],
			"100": [
				0,
				.69444,
				0,
				0,
				.56111
			],
			"101": [
				0,
				.45833,
				0,
				0,
				.51111
			],
			"102": [
				0,
				.69444,
				.07639,
				0,
				.33611
			],
			"103": [
				.19444,
				.45833,
				.01528,
				0,
				.55
			],
			"104": [
				0,
				.69444,
				0,
				0,
				.56111
			],
			"105": [
				0,
				.69444,
				0,
				0,
				.25556
			],
			"106": [
				.19444,
				.69444,
				0,
				0,
				.28611
			],
			"107": [
				0,
				.69444,
				0,
				0,
				.53056
			],
			"108": [
				0,
				.69444,
				0,
				0,
				.25556
			],
			"109": [
				0,
				.45833,
				0,
				0,
				.86667
			],
			"110": [
				0,
				.45833,
				0,
				0,
				.56111
			],
			"111": [
				0,
				.45833,
				0,
				0,
				.55
			],
			"112": [
				.19444,
				.45833,
				0,
				0,
				.56111
			],
			"113": [
				.19444,
				.45833,
				0,
				0,
				.56111
			],
			"114": [
				0,
				.45833,
				.01528,
				0,
				.37222
			],
			"115": [
				0,
				.45833,
				0,
				0,
				.42167
			],
			"116": [
				0,
				.58929,
				0,
				0,
				.40417
			],
			"117": [
				0,
				.45833,
				0,
				0,
				.56111
			],
			"118": [
				0,
				.45833,
				.01528,
				0,
				.5
			],
			"119": [
				0,
				.45833,
				.01528,
				0,
				.74445
			],
			"120": [
				0,
				.45833,
				0,
				0,
				.5
			],
			"121": [
				.19444,
				.45833,
				.01528,
				0,
				.5
			],
			"122": [
				0,
				.45833,
				0,
				0,
				.47639
			],
			"126": [
				.35,
				.34444,
				0,
				0,
				.55
			],
			"160": [
				0,
				0,
				0,
				0,
				.25
			],
			"168": [
				0,
				.69444,
				0,
				0,
				.55
			],
			"176": [
				0,
				.69444,
				0,
				0,
				.73334
			],
			"180": [
				0,
				.69444,
				0,
				0,
				.55
			],
			"184": [
				.17014,
				0,
				0,
				0,
				.48889
			],
			"305": [
				0,
				.45833,
				0,
				0,
				.25556
			],
			"567": [
				.19444,
				.45833,
				0,
				0,
				.28611
			],
			"710": [
				0,
				.69444,
				0,
				0,
				.55
			],
			"711": [
				0,
				.63542,
				0,
				0,
				.55
			],
			"713": [
				0,
				.63778,
				0,
				0,
				.55
			],
			"728": [
				0,
				.69444,
				0,
				0,
				.55
			],
			"729": [
				0,
				.69444,
				0,
				0,
				.30556
			],
			"730": [
				0,
				.69444,
				0,
				0,
				.73334
			],
			"732": [
				0,
				.69444,
				0,
				0,
				.55
			],
			"733": [
				0,
				.69444,
				0,
				0,
				.55
			],
			"915": [
				0,
				.69444,
				0,
				0,
				.58056
			],
			"916": [
				0,
				.69444,
				0,
				0,
				.91667
			],
			"920": [
				0,
				.69444,
				0,
				0,
				.85556
			],
			"923": [
				0,
				.69444,
				0,
				0,
				.67223
			],
			"926": [
				0,
				.69444,
				0,
				0,
				.73334
			],
			"928": [
				0,
				.69444,
				0,
				0,
				.79445
			],
			"931": [
				0,
				.69444,
				0,
				0,
				.79445
			],
			"933": [
				0,
				.69444,
				0,
				0,
				.85556
			],
			"934": [
				0,
				.69444,
				0,
				0,
				.79445
			],
			"936": [
				0,
				.69444,
				0,
				0,
				.85556
			],
			"937": [
				0,
				.69444,
				0,
				0,
				.79445
			],
			"8211": [
				0,
				.45833,
				.03056,
				0,
				.55
			],
			"8212": [
				0,
				.45833,
				.03056,
				0,
				1.10001
			],
			"8216": [
				0,
				.69444,
				0,
				0,
				.30556
			],
			"8217": [
				0,
				.69444,
				0,
				0,
				.30556
			],
			"8220": [
				0,
				.69444,
				0,
				0,
				.55834
			],
			"8221": [
				0,
				.69444,
				0,
				0,
				.55834
			]
		},
		"SansSerif-Italic": {
			"32": [
				0,
				0,
				0,
				0,
				.25
			],
			"33": [
				0,
				.69444,
				.05733,
				0,
				.31945
			],
			"34": [
				0,
				.69444,
				.00316,
				0,
				.5
			],
			"35": [
				.19444,
				.69444,
				.05087,
				0,
				.83334
			],
			"36": [
				.05556,
				.75,
				.11156,
				0,
				.5
			],
			"37": [
				.05556,
				.75,
				.03126,
				0,
				.83334
			],
			"38": [
				0,
				.69444,
				.03058,
				0,
				.75834
			],
			"39": [
				0,
				.69444,
				.07816,
				0,
				.27778
			],
			"40": [
				.25,
				.75,
				.13164,
				0,
				.38889
			],
			"41": [
				.25,
				.75,
				.02536,
				0,
				.38889
			],
			"42": [
				0,
				.75,
				.11775,
				0,
				.5
			],
			"43": [
				.08333,
				.58333,
				.02536,
				0,
				.77778
			],
			"44": [
				.125,
				.08333,
				0,
				0,
				.27778
			],
			"45": [
				0,
				.44444,
				.01946,
				0,
				.33333
			],
			"46": [
				0,
				.08333,
				0,
				0,
				.27778
			],
			"47": [
				.25,
				.75,
				.13164,
				0,
				.5
			],
			"48": [
				0,
				.65556,
				.11156,
				0,
				.5
			],
			"49": [
				0,
				.65556,
				.11156,
				0,
				.5
			],
			"50": [
				0,
				.65556,
				.11156,
				0,
				.5
			],
			"51": [
				0,
				.65556,
				.11156,
				0,
				.5
			],
			"52": [
				0,
				.65556,
				.11156,
				0,
				.5
			],
			"53": [
				0,
				.65556,
				.11156,
				0,
				.5
			],
			"54": [
				0,
				.65556,
				.11156,
				0,
				.5
			],
			"55": [
				0,
				.65556,
				.11156,
				0,
				.5
			],
			"56": [
				0,
				.65556,
				.11156,
				0,
				.5
			],
			"57": [
				0,
				.65556,
				.11156,
				0,
				.5
			],
			"58": [
				0,
				.44444,
				.02502,
				0,
				.27778
			],
			"59": [
				.125,
				.44444,
				.02502,
				0,
				.27778
			],
			"61": [
				-.13,
				.37,
				.05087,
				0,
				.77778
			],
			"63": [
				0,
				.69444,
				.11809,
				0,
				.47222
			],
			"64": [
				0,
				.69444,
				.07555,
				0,
				.66667
			],
			"65": [
				0,
				.69444,
				0,
				0,
				.66667
			],
			"66": [
				0,
				.69444,
				.08293,
				0,
				.66667
			],
			"67": [
				0,
				.69444,
				.11983,
				0,
				.63889
			],
			"68": [
				0,
				.69444,
				.07555,
				0,
				.72223
			],
			"69": [
				0,
				.69444,
				.11983,
				0,
				.59722
			],
			"70": [
				0,
				.69444,
				.13372,
				0,
				.56945
			],
			"71": [
				0,
				.69444,
				.11983,
				0,
				.66667
			],
			"72": [
				0,
				.69444,
				.08094,
				0,
				.70834
			],
			"73": [
				0,
				.69444,
				.13372,
				0,
				.27778
			],
			"74": [
				0,
				.69444,
				.08094,
				0,
				.47222
			],
			"75": [
				0,
				.69444,
				.11983,
				0,
				.69445
			],
			"76": [
				0,
				.69444,
				0,
				0,
				.54167
			],
			"77": [
				0,
				.69444,
				.08094,
				0,
				.875
			],
			"78": [
				0,
				.69444,
				.08094,
				0,
				.70834
			],
			"79": [
				0,
				.69444,
				.07555,
				0,
				.73611
			],
			"80": [
				0,
				.69444,
				.08293,
				0,
				.63889
			],
			"81": [
				.125,
				.69444,
				.07555,
				0,
				.73611
			],
			"82": [
				0,
				.69444,
				.08293,
				0,
				.64584
			],
			"83": [
				0,
				.69444,
				.09205,
				0,
				.55556
			],
			"84": [
				0,
				.69444,
				.13372,
				0,
				.68056
			],
			"85": [
				0,
				.69444,
				.08094,
				0,
				.6875
			],
			"86": [
				0,
				.69444,
				.1615,
				0,
				.66667
			],
			"87": [
				0,
				.69444,
				.1615,
				0,
				.94445
			],
			"88": [
				0,
				.69444,
				.13372,
				0,
				.66667
			],
			"89": [
				0,
				.69444,
				.17261,
				0,
				.66667
			],
			"90": [
				0,
				.69444,
				.11983,
				0,
				.61111
			],
			"91": [
				.25,
				.75,
				.15942,
				0,
				.28889
			],
			"93": [
				.25,
				.75,
				.08719,
				0,
				.28889
			],
			"94": [
				0,
				.69444,
				.0799,
				0,
				.5
			],
			"95": [
				.35,
				.09444,
				.08616,
				0,
				.5
			],
			"97": [
				0,
				.44444,
				.00981,
				0,
				.48056
			],
			"98": [
				0,
				.69444,
				.03057,
				0,
				.51667
			],
			"99": [
				0,
				.44444,
				.08336,
				0,
				.44445
			],
			"100": [
				0,
				.69444,
				.09483,
				0,
				.51667
			],
			"101": [
				0,
				.44444,
				.06778,
				0,
				.44445
			],
			"102": [
				0,
				.69444,
				.21705,
				0,
				.30556
			],
			"103": [
				.19444,
				.44444,
				.10836,
				0,
				.5
			],
			"104": [
				0,
				.69444,
				.01778,
				0,
				.51667
			],
			"105": [
				0,
				.67937,
				.09718,
				0,
				.23889
			],
			"106": [
				.19444,
				.67937,
				.09162,
				0,
				.26667
			],
			"107": [
				0,
				.69444,
				.08336,
				0,
				.48889
			],
			"108": [
				0,
				.69444,
				.09483,
				0,
				.23889
			],
			"109": [
				0,
				.44444,
				.01778,
				0,
				.79445
			],
			"110": [
				0,
				.44444,
				.01778,
				0,
				.51667
			],
			"111": [
				0,
				.44444,
				.06613,
				0,
				.5
			],
			"112": [
				.19444,
				.44444,
				.0389,
				0,
				.51667
			],
			"113": [
				.19444,
				.44444,
				.04169,
				0,
				.51667
			],
			"114": [
				0,
				.44444,
				.10836,
				0,
				.34167
			],
			"115": [
				0,
				.44444,
				.0778,
				0,
				.38333
			],
			"116": [
				0,
				.57143,
				.07225,
				0,
				.36111
			],
			"117": [
				0,
				.44444,
				.04169,
				0,
				.51667
			],
			"118": [
				0,
				.44444,
				.10836,
				0,
				.46111
			],
			"119": [
				0,
				.44444,
				.10836,
				0,
				.68334
			],
			"120": [
				0,
				.44444,
				.09169,
				0,
				.46111
			],
			"121": [
				.19444,
				.44444,
				.10836,
				0,
				.46111
			],
			"122": [
				0,
				.44444,
				.08752,
				0,
				.43472
			],
			"126": [
				.35,
				.32659,
				.08826,
				0,
				.5
			],
			"160": [
				0,
				0,
				0,
				0,
				.25
			],
			"168": [
				0,
				.67937,
				.06385,
				0,
				.5
			],
			"176": [
				0,
				.69444,
				0,
				0,
				.73752
			],
			"184": [
				.17014,
				0,
				0,
				0,
				.44445
			],
			"305": [
				0,
				.44444,
				.04169,
				0,
				.23889
			],
			"567": [
				.19444,
				.44444,
				.04169,
				0,
				.26667
			],
			"710": [
				0,
				.69444,
				.0799,
				0,
				.5
			],
			"711": [
				0,
				.63194,
				.08432,
				0,
				.5
			],
			"713": [
				0,
				.60889,
				.08776,
				0,
				.5
			],
			"714": [
				0,
				.69444,
				.09205,
				0,
				.5
			],
			"715": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"728": [
				0,
				.69444,
				.09483,
				0,
				.5
			],
			"729": [
				0,
				.67937,
				.07774,
				0,
				.27778
			],
			"730": [
				0,
				.69444,
				0,
				0,
				.73752
			],
			"732": [
				0,
				.67659,
				.08826,
				0,
				.5
			],
			"733": [
				0,
				.69444,
				.09205,
				0,
				.5
			],
			"915": [
				0,
				.69444,
				.13372,
				0,
				.54167
			],
			"916": [
				0,
				.69444,
				0,
				0,
				.83334
			],
			"920": [
				0,
				.69444,
				.07555,
				0,
				.77778
			],
			"923": [
				0,
				.69444,
				0,
				0,
				.61111
			],
			"926": [
				0,
				.69444,
				.12816,
				0,
				.66667
			],
			"928": [
				0,
				.69444,
				.08094,
				0,
				.70834
			],
			"931": [
				0,
				.69444,
				.11983,
				0,
				.72222
			],
			"933": [
				0,
				.69444,
				.09031,
				0,
				.77778
			],
			"934": [
				0,
				.69444,
				.04603,
				0,
				.72222
			],
			"936": [
				0,
				.69444,
				.09031,
				0,
				.77778
			],
			"937": [
				0,
				.69444,
				.08293,
				0,
				.72222
			],
			"8211": [
				0,
				.44444,
				.08616,
				0,
				.5
			],
			"8212": [
				0,
				.44444,
				.08616,
				0,
				1
			],
			"8216": [
				0,
				.69444,
				.07816,
				0,
				.27778
			],
			"8217": [
				0,
				.69444,
				.07816,
				0,
				.27778
			],
			"8220": [
				0,
				.69444,
				.14205,
				0,
				.5
			],
			"8221": [
				0,
				.69444,
				.00316,
				0,
				.5
			]
		},
		"SansSerif-Regular": {
			"32": [
				0,
				0,
				0,
				0,
				.25
			],
			"33": [
				0,
				.69444,
				0,
				0,
				.31945
			],
			"34": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"35": [
				.19444,
				.69444,
				0,
				0,
				.83334
			],
			"36": [
				.05556,
				.75,
				0,
				0,
				.5
			],
			"37": [
				.05556,
				.75,
				0,
				0,
				.83334
			],
			"38": [
				0,
				.69444,
				0,
				0,
				.75834
			],
			"39": [
				0,
				.69444,
				0,
				0,
				.27778
			],
			"40": [
				.25,
				.75,
				0,
				0,
				.38889
			],
			"41": [
				.25,
				.75,
				0,
				0,
				.38889
			],
			"42": [
				0,
				.75,
				0,
				0,
				.5
			],
			"43": [
				.08333,
				.58333,
				0,
				0,
				.77778
			],
			"44": [
				.125,
				.08333,
				0,
				0,
				.27778
			],
			"45": [
				0,
				.44444,
				0,
				0,
				.33333
			],
			"46": [
				0,
				.08333,
				0,
				0,
				.27778
			],
			"47": [
				.25,
				.75,
				0,
				0,
				.5
			],
			"48": [
				0,
				.65556,
				0,
				0,
				.5
			],
			"49": [
				0,
				.65556,
				0,
				0,
				.5
			],
			"50": [
				0,
				.65556,
				0,
				0,
				.5
			],
			"51": [
				0,
				.65556,
				0,
				0,
				.5
			],
			"52": [
				0,
				.65556,
				0,
				0,
				.5
			],
			"53": [
				0,
				.65556,
				0,
				0,
				.5
			],
			"54": [
				0,
				.65556,
				0,
				0,
				.5
			],
			"55": [
				0,
				.65556,
				0,
				0,
				.5
			],
			"56": [
				0,
				.65556,
				0,
				0,
				.5
			],
			"57": [
				0,
				.65556,
				0,
				0,
				.5
			],
			"58": [
				0,
				.44444,
				0,
				0,
				.27778
			],
			"59": [
				.125,
				.44444,
				0,
				0,
				.27778
			],
			"61": [
				-.13,
				.37,
				0,
				0,
				.77778
			],
			"63": [
				0,
				.69444,
				0,
				0,
				.47222
			],
			"64": [
				0,
				.69444,
				0,
				0,
				.66667
			],
			"65": [
				0,
				.69444,
				0,
				0,
				.66667
			],
			"66": [
				0,
				.69444,
				0,
				0,
				.66667
			],
			"67": [
				0,
				.69444,
				0,
				0,
				.63889
			],
			"68": [
				0,
				.69444,
				0,
				0,
				.72223
			],
			"69": [
				0,
				.69444,
				0,
				0,
				.59722
			],
			"70": [
				0,
				.69444,
				0,
				0,
				.56945
			],
			"71": [
				0,
				.69444,
				0,
				0,
				.66667
			],
			"72": [
				0,
				.69444,
				0,
				0,
				.70834
			],
			"73": [
				0,
				.69444,
				0,
				0,
				.27778
			],
			"74": [
				0,
				.69444,
				0,
				0,
				.47222
			],
			"75": [
				0,
				.69444,
				0,
				0,
				.69445
			],
			"76": [
				0,
				.69444,
				0,
				0,
				.54167
			],
			"77": [
				0,
				.69444,
				0,
				0,
				.875
			],
			"78": [
				0,
				.69444,
				0,
				0,
				.70834
			],
			"79": [
				0,
				.69444,
				0,
				0,
				.73611
			],
			"80": [
				0,
				.69444,
				0,
				0,
				.63889
			],
			"81": [
				.125,
				.69444,
				0,
				0,
				.73611
			],
			"82": [
				0,
				.69444,
				0,
				0,
				.64584
			],
			"83": [
				0,
				.69444,
				0,
				0,
				.55556
			],
			"84": [
				0,
				.69444,
				0,
				0,
				.68056
			],
			"85": [
				0,
				.69444,
				0,
				0,
				.6875
			],
			"86": [
				0,
				.69444,
				.01389,
				0,
				.66667
			],
			"87": [
				0,
				.69444,
				.01389,
				0,
				.94445
			],
			"88": [
				0,
				.69444,
				0,
				0,
				.66667
			],
			"89": [
				0,
				.69444,
				.025,
				0,
				.66667
			],
			"90": [
				0,
				.69444,
				0,
				0,
				.61111
			],
			"91": [
				.25,
				.75,
				0,
				0,
				.28889
			],
			"93": [
				.25,
				.75,
				0,
				0,
				.28889
			],
			"94": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"95": [
				.35,
				.09444,
				.02778,
				0,
				.5
			],
			"97": [
				0,
				.44444,
				0,
				0,
				.48056
			],
			"98": [
				0,
				.69444,
				0,
				0,
				.51667
			],
			"99": [
				0,
				.44444,
				0,
				0,
				.44445
			],
			"100": [
				0,
				.69444,
				0,
				0,
				.51667
			],
			"101": [
				0,
				.44444,
				0,
				0,
				.44445
			],
			"102": [
				0,
				.69444,
				.06944,
				0,
				.30556
			],
			"103": [
				.19444,
				.44444,
				.01389,
				0,
				.5
			],
			"104": [
				0,
				.69444,
				0,
				0,
				.51667
			],
			"105": [
				0,
				.67937,
				0,
				0,
				.23889
			],
			"106": [
				.19444,
				.67937,
				0,
				0,
				.26667
			],
			"107": [
				0,
				.69444,
				0,
				0,
				.48889
			],
			"108": [
				0,
				.69444,
				0,
				0,
				.23889
			],
			"109": [
				0,
				.44444,
				0,
				0,
				.79445
			],
			"110": [
				0,
				.44444,
				0,
				0,
				.51667
			],
			"111": [
				0,
				.44444,
				0,
				0,
				.5
			],
			"112": [
				.19444,
				.44444,
				0,
				0,
				.51667
			],
			"113": [
				.19444,
				.44444,
				0,
				0,
				.51667
			],
			"114": [
				0,
				.44444,
				.01389,
				0,
				.34167
			],
			"115": [
				0,
				.44444,
				0,
				0,
				.38333
			],
			"116": [
				0,
				.57143,
				0,
				0,
				.36111
			],
			"117": [
				0,
				.44444,
				0,
				0,
				.51667
			],
			"118": [
				0,
				.44444,
				.01389,
				0,
				.46111
			],
			"119": [
				0,
				.44444,
				.01389,
				0,
				.68334
			],
			"120": [
				0,
				.44444,
				0,
				0,
				.46111
			],
			"121": [
				.19444,
				.44444,
				.01389,
				0,
				.46111
			],
			"122": [
				0,
				.44444,
				0,
				0,
				.43472
			],
			"126": [
				.35,
				.32659,
				0,
				0,
				.5
			],
			"160": [
				0,
				0,
				0,
				0,
				.25
			],
			"168": [
				0,
				.67937,
				0,
				0,
				.5
			],
			"176": [
				0,
				.69444,
				0,
				0,
				.66667
			],
			"184": [
				.17014,
				0,
				0,
				0,
				.44445
			],
			"305": [
				0,
				.44444,
				0,
				0,
				.23889
			],
			"567": [
				.19444,
				.44444,
				0,
				0,
				.26667
			],
			"710": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"711": [
				0,
				.63194,
				0,
				0,
				.5
			],
			"713": [
				0,
				.60889,
				0,
				0,
				.5
			],
			"714": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"715": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"728": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"729": [
				0,
				.67937,
				0,
				0,
				.27778
			],
			"730": [
				0,
				.69444,
				0,
				0,
				.66667
			],
			"732": [
				0,
				.67659,
				0,
				0,
				.5
			],
			"733": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"915": [
				0,
				.69444,
				0,
				0,
				.54167
			],
			"916": [
				0,
				.69444,
				0,
				0,
				.83334
			],
			"920": [
				0,
				.69444,
				0,
				0,
				.77778
			],
			"923": [
				0,
				.69444,
				0,
				0,
				.61111
			],
			"926": [
				0,
				.69444,
				0,
				0,
				.66667
			],
			"928": [
				0,
				.69444,
				0,
				0,
				.70834
			],
			"931": [
				0,
				.69444,
				0,
				0,
				.72222
			],
			"933": [
				0,
				.69444,
				0,
				0,
				.77778
			],
			"934": [
				0,
				.69444,
				0,
				0,
				.72222
			],
			"936": [
				0,
				.69444,
				0,
				0,
				.77778
			],
			"937": [
				0,
				.69444,
				0,
				0,
				.72222
			],
			"8211": [
				0,
				.44444,
				.02778,
				0,
				.5
			],
			"8212": [
				0,
				.44444,
				.02778,
				0,
				1
			],
			"8216": [
				0,
				.69444,
				0,
				0,
				.27778
			],
			"8217": [
				0,
				.69444,
				0,
				0,
				.27778
			],
			"8220": [
				0,
				.69444,
				0,
				0,
				.5
			],
			"8221": [
				0,
				.69444,
				0,
				0,
				.5
			]
		},
		"Script-Regular": {
			"32": [
				0,
				0,
				0,
				0,
				.25
			],
			"65": [
				0,
				.7,
				.22925,
				0,
				.80253
			],
			"66": [
				0,
				.7,
				.04087,
				0,
				.90757
			],
			"67": [
				0,
				.7,
				.1689,
				0,
				.66619
			],
			"68": [
				0,
				.7,
				.09371,
				0,
				.77443
			],
			"69": [
				0,
				.7,
				.18583,
				0,
				.56162
			],
			"70": [
				0,
				.7,
				.13634,
				0,
				.89544
			],
			"71": [
				0,
				.7,
				.17322,
				0,
				.60961
			],
			"72": [
				0,
				.7,
				.29694,
				0,
				.96919
			],
			"73": [
				0,
				.7,
				.19189,
				0,
				.80907
			],
			"74": [
				.27778,
				.7,
				.19189,
				0,
				1.05159
			],
			"75": [
				0,
				.7,
				.31259,
				0,
				.91364
			],
			"76": [
				0,
				.7,
				.19189,
				0,
				.87373
			],
			"77": [
				0,
				.7,
				.15981,
				0,
				1.08031
			],
			"78": [
				0,
				.7,
				.3525,
				0,
				.9015
			],
			"79": [
				0,
				.7,
				.08078,
				0,
				.73787
			],
			"80": [
				0,
				.7,
				.08078,
				0,
				1.01262
			],
			"81": [
				0,
				.7,
				.03305,
				0,
				.88282
			],
			"82": [
				0,
				.7,
				.06259,
				0,
				.85
			],
			"83": [
				0,
				.7,
				.19189,
				0,
				.86767
			],
			"84": [
				0,
				.7,
				.29087,
				0,
				.74697
			],
			"85": [
				0,
				.7,
				.25815,
				0,
				.79996
			],
			"86": [
				0,
				.7,
				.27523,
				0,
				.62204
			],
			"87": [
				0,
				.7,
				.27523,
				0,
				.80532
			],
			"88": [
				0,
				.7,
				.26006,
				0,
				.94445
			],
			"89": [
				0,
				.7,
				.2939,
				0,
				.70961
			],
			"90": [
				0,
				.7,
				.24037,
				0,
				.8212
			],
			"160": [
				0,
				0,
				0,
				0,
				.25
			]
		},
		"Size1-Regular": {
			"32": [
				0,
				0,
				0,
				0,
				.25
			],
			"40": [
				.35001,
				.85,
				0,
				0,
				.45834
			],
			"41": [
				.35001,
				.85,
				0,
				0,
				.45834
			],
			"47": [
				.35001,
				.85,
				0,
				0,
				.57778
			],
			"91": [
				.35001,
				.85,
				0,
				0,
				.41667
			],
			"92": [
				.35001,
				.85,
				0,
				0,
				.57778
			],
			"93": [
				.35001,
				.85,
				0,
				0,
				.41667
			],
			"123": [
				.35001,
				.85,
				0,
				0,
				.58334
			],
			"125": [
				.35001,
				.85,
				0,
				0,
				.58334
			],
			"160": [
				0,
				0,
				0,
				0,
				.25
			],
			"710": [
				0,
				.72222,
				0,
				0,
				.55556
			],
			"732": [
				0,
				.72222,
				0,
				0,
				.55556
			],
			"770": [
				0,
				.72222,
				0,
				0,
				.55556
			],
			"771": [
				0,
				.72222,
				0,
				0,
				.55556
			],
			"8214": [
				-99e-5,
				.601,
				0,
				0,
				.77778
			],
			"8593": [
				1e-5,
				.6,
				0,
				0,
				.66667
			],
			"8595": [
				1e-5,
				.6,
				0,
				0,
				.66667
			],
			"8657": [
				1e-5,
				.6,
				0,
				0,
				.77778
			],
			"8659": [
				1e-5,
				.6,
				0,
				0,
				.77778
			],
			"8719": [
				.25001,
				.75,
				0,
				0,
				.94445
			],
			"8720": [
				.25001,
				.75,
				0,
				0,
				.94445
			],
			"8721": [
				.25001,
				.75,
				0,
				0,
				1.05556
			],
			"8730": [
				.35001,
				.85,
				0,
				0,
				1
			],
			"8739": [
				-.00599,
				.606,
				0,
				0,
				.33333
			],
			"8741": [
				-.00599,
				.606,
				0,
				0,
				.55556
			],
			"8747": [
				.30612,
				.805,
				.19445,
				0,
				.47222
			],
			"8748": [
				.306,
				.805,
				.19445,
				0,
				.47222
			],
			"8749": [
				.306,
				.805,
				.19445,
				0,
				.47222
			],
			"8750": [
				.30612,
				.805,
				.19445,
				0,
				.47222
			],
			"8896": [
				.25001,
				.75,
				0,
				0,
				.83334
			],
			"8897": [
				.25001,
				.75,
				0,
				0,
				.83334
			],
			"8898": [
				.25001,
				.75,
				0,
				0,
				.83334
			],
			"8899": [
				.25001,
				.75,
				0,
				0,
				.83334
			],
			"8968": [
				.35001,
				.85,
				0,
				0,
				.47222
			],
			"8969": [
				.35001,
				.85,
				0,
				0,
				.47222
			],
			"8970": [
				.35001,
				.85,
				0,
				0,
				.47222
			],
			"8971": [
				.35001,
				.85,
				0,
				0,
				.47222
			],
			"9168": [
				-99e-5,
				.601,
				0,
				0,
				.66667
			],
			"10216": [
				.35001,
				.85,
				0,
				0,
				.47222
			],
			"10217": [
				.35001,
				.85,
				0,
				0,
				.47222
			],
			"10752": [
				.25001,
				.75,
				0,
				0,
				1.11111
			],
			"10753": [
				.25001,
				.75,
				0,
				0,
				1.11111
			],
			"10754": [
				.25001,
				.75,
				0,
				0,
				1.11111
			],
			"10756": [
				.25001,
				.75,
				0,
				0,
				.83334
			],
			"10758": [
				.25001,
				.75,
				0,
				0,
				.83334
			]
		},
		"Size2-Regular": {
			"32": [
				0,
				0,
				0,
				0,
				.25
			],
			"40": [
				.65002,
				1.15,
				0,
				0,
				.59722
			],
			"41": [
				.65002,
				1.15,
				0,
				0,
				.59722
			],
			"47": [
				.65002,
				1.15,
				0,
				0,
				.81111
			],
			"91": [
				.65002,
				1.15,
				0,
				0,
				.47222
			],
			"92": [
				.65002,
				1.15,
				0,
				0,
				.81111
			],
			"93": [
				.65002,
				1.15,
				0,
				0,
				.47222
			],
			"123": [
				.65002,
				1.15,
				0,
				0,
				.66667
			],
			"125": [
				.65002,
				1.15,
				0,
				0,
				.66667
			],
			"160": [
				0,
				0,
				0,
				0,
				.25
			],
			"710": [
				0,
				.75,
				0,
				0,
				1
			],
			"732": [
				0,
				.75,
				0,
				0,
				1
			],
			"770": [
				0,
				.75,
				0,
				0,
				1
			],
			"771": [
				0,
				.75,
				0,
				0,
				1
			],
			"8719": [
				.55001,
				1.05,
				0,
				0,
				1.27778
			],
			"8720": [
				.55001,
				1.05,
				0,
				0,
				1.27778
			],
			"8721": [
				.55001,
				1.05,
				0,
				0,
				1.44445
			],
			"8730": [
				.65002,
				1.15,
				0,
				0,
				1
			],
			"8747": [
				.86225,
				1.36,
				.44445,
				0,
				.55556
			],
			"8748": [
				.862,
				1.36,
				.44445,
				0,
				.55556
			],
			"8749": [
				.862,
				1.36,
				.44445,
				0,
				.55556
			],
			"8750": [
				.86225,
				1.36,
				.44445,
				0,
				.55556
			],
			"8896": [
				.55001,
				1.05,
				0,
				0,
				1.11111
			],
			"8897": [
				.55001,
				1.05,
				0,
				0,
				1.11111
			],
			"8898": [
				.55001,
				1.05,
				0,
				0,
				1.11111
			],
			"8899": [
				.55001,
				1.05,
				0,
				0,
				1.11111
			],
			"8968": [
				.65002,
				1.15,
				0,
				0,
				.52778
			],
			"8969": [
				.65002,
				1.15,
				0,
				0,
				.52778
			],
			"8970": [
				.65002,
				1.15,
				0,
				0,
				.52778
			],
			"8971": [
				.65002,
				1.15,
				0,
				0,
				.52778
			],
			"10216": [
				.65002,
				1.15,
				0,
				0,
				.61111
			],
			"10217": [
				.65002,
				1.15,
				0,
				0,
				.61111
			],
			"10752": [
				.55001,
				1.05,
				0,
				0,
				1.51112
			],
			"10753": [
				.55001,
				1.05,
				0,
				0,
				1.51112
			],
			"10754": [
				.55001,
				1.05,
				0,
				0,
				1.51112
			],
			"10756": [
				.55001,
				1.05,
				0,
				0,
				1.11111
			],
			"10758": [
				.55001,
				1.05,
				0,
				0,
				1.11111
			]
		},
		"Size3-Regular": {
			"32": [
				0,
				0,
				0,
				0,
				.25
			],
			"40": [
				.95003,
				1.45,
				0,
				0,
				.73611
			],
			"41": [
				.95003,
				1.45,
				0,
				0,
				.73611
			],
			"47": [
				.95003,
				1.45,
				0,
				0,
				1.04445
			],
			"91": [
				.95003,
				1.45,
				0,
				0,
				.52778
			],
			"92": [
				.95003,
				1.45,
				0,
				0,
				1.04445
			],
			"93": [
				.95003,
				1.45,
				0,
				0,
				.52778
			],
			"123": [
				.95003,
				1.45,
				0,
				0,
				.75
			],
			"125": [
				.95003,
				1.45,
				0,
				0,
				.75
			],
			"160": [
				0,
				0,
				0,
				0,
				.25
			],
			"710": [
				0,
				.75,
				0,
				0,
				1.44445
			],
			"732": [
				0,
				.75,
				0,
				0,
				1.44445
			],
			"770": [
				0,
				.75,
				0,
				0,
				1.44445
			],
			"771": [
				0,
				.75,
				0,
				0,
				1.44445
			],
			"8730": [
				.95003,
				1.45,
				0,
				0,
				1
			],
			"8968": [
				.95003,
				1.45,
				0,
				0,
				.58334
			],
			"8969": [
				.95003,
				1.45,
				0,
				0,
				.58334
			],
			"8970": [
				.95003,
				1.45,
				0,
				0,
				.58334
			],
			"8971": [
				.95003,
				1.45,
				0,
				0,
				.58334
			],
			"10216": [
				.95003,
				1.45,
				0,
				0,
				.75
			],
			"10217": [
				.95003,
				1.45,
				0,
				0,
				.75
			]
		},
		"Size4-Regular": {
			"32": [
				0,
				0,
				0,
				0,
				.25
			],
			"40": [
				1.25003,
				1.75,
				0,
				0,
				.79167
			],
			"41": [
				1.25003,
				1.75,
				0,
				0,
				.79167
			],
			"47": [
				1.25003,
				1.75,
				0,
				0,
				1.27778
			],
			"91": [
				1.25003,
				1.75,
				0,
				0,
				.58334
			],
			"92": [
				1.25003,
				1.75,
				0,
				0,
				1.27778
			],
			"93": [
				1.25003,
				1.75,
				0,
				0,
				.58334
			],
			"123": [
				1.25003,
				1.75,
				0,
				0,
				.80556
			],
			"125": [
				1.25003,
				1.75,
				0,
				0,
				.80556
			],
			"160": [
				0,
				0,
				0,
				0,
				.25
			],
			"710": [
				0,
				.825,
				0,
				0,
				1.8889
			],
			"732": [
				0,
				.825,
				0,
				0,
				1.8889
			],
			"770": [
				0,
				.825,
				0,
				0,
				1.8889
			],
			"771": [
				0,
				.825,
				0,
				0,
				1.8889
			],
			"8730": [
				1.25003,
				1.75,
				0,
				0,
				1
			],
			"8968": [
				1.25003,
				1.75,
				0,
				0,
				.63889
			],
			"8969": [
				1.25003,
				1.75,
				0,
				0,
				.63889
			],
			"8970": [
				1.25003,
				1.75,
				0,
				0,
				.63889
			],
			"8971": [
				1.25003,
				1.75,
				0,
				0,
				.63889
			],
			"9115": [
				.64502,
				1.155,
				0,
				0,
				.875
			],
			"9116": [
				1e-5,
				.6,
				0,
				0,
				.875
			],
			"9117": [
				.64502,
				1.155,
				0,
				0,
				.875
			],
			"9118": [
				.64502,
				1.155,
				0,
				0,
				.875
			],
			"9119": [
				1e-5,
				.6,
				0,
				0,
				.875
			],
			"9120": [
				.64502,
				1.155,
				0,
				0,
				.875
			],
			"9121": [
				.64502,
				1.155,
				0,
				0,
				.66667
			],
			"9122": [
				-99e-5,
				.601,
				0,
				0,
				.66667
			],
			"9123": [
				.64502,
				1.155,
				0,
				0,
				.66667
			],
			"9124": [
				.64502,
				1.155,
				0,
				0,
				.66667
			],
			"9125": [
				-99e-5,
				.601,
				0,
				0,
				.66667
			],
			"9126": [
				.64502,
				1.155,
				0,
				0,
				.66667
			],
			"9127": [
				1e-5,
				.9,
				0,
				0,
				.88889
			],
			"9128": [
				.65002,
				1.15,
				0,
				0,
				.88889
			],
			"9129": [
				.90001,
				0,
				0,
				0,
				.88889
			],
			"9130": [
				0,
				.3,
				0,
				0,
				.88889
			],
			"9131": [
				1e-5,
				.9,
				0,
				0,
				.88889
			],
			"9132": [
				.65002,
				1.15,
				0,
				0,
				.88889
			],
			"9133": [
				.90001,
				0,
				0,
				0,
				.88889
			],
			"9143": [
				.88502,
				.915,
				0,
				0,
				1.05556
			],
			"10216": [
				1.25003,
				1.75,
				0,
				0,
				.80556
			],
			"10217": [
				1.25003,
				1.75,
				0,
				0,
				.80556
			],
			"57344": [
				-.00499,
				.605,
				0,
				0,
				1.05556
			],
			"57345": [
				-.00499,
				.605,
				0,
				0,
				1.05556
			],
			"57680": [
				0,
				.12,
				0,
				0,
				.45
			],
			"57681": [
				0,
				.12,
				0,
				0,
				.45
			],
			"57682": [
				0,
				.12,
				0,
				0,
				.45
			],
			"57683": [
				0,
				.12,
				0,
				0,
				.45
			]
		},
		"Typewriter-Regular": {
			"32": [
				0,
				0,
				0,
				0,
				.525
			],
			"33": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"34": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"35": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"36": [
				.08333,
				.69444,
				0,
				0,
				.525
			],
			"37": [
				.08333,
				.69444,
				0,
				0,
				.525
			],
			"38": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"39": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"40": [
				.08333,
				.69444,
				0,
				0,
				.525
			],
			"41": [
				.08333,
				.69444,
				0,
				0,
				.525
			],
			"42": [
				0,
				.52083,
				0,
				0,
				.525
			],
			"43": [
				-.08056,
				.53055,
				0,
				0,
				.525
			],
			"44": [
				.13889,
				.125,
				0,
				0,
				.525
			],
			"45": [
				-.08056,
				.53055,
				0,
				0,
				.525
			],
			"46": [
				0,
				.125,
				0,
				0,
				.525
			],
			"47": [
				.08333,
				.69444,
				0,
				0,
				.525
			],
			"48": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"49": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"50": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"51": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"52": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"53": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"54": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"55": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"56": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"57": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"58": [
				0,
				.43056,
				0,
				0,
				.525
			],
			"59": [
				.13889,
				.43056,
				0,
				0,
				.525
			],
			"60": [
				-.05556,
				.55556,
				0,
				0,
				.525
			],
			"61": [
				-.19549,
				.41562,
				0,
				0,
				.525
			],
			"62": [
				-.05556,
				.55556,
				0,
				0,
				.525
			],
			"63": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"64": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"65": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"66": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"67": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"68": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"69": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"70": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"71": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"72": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"73": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"74": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"75": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"76": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"77": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"78": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"79": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"80": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"81": [
				.13889,
				.61111,
				0,
				0,
				.525
			],
			"82": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"83": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"84": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"85": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"86": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"87": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"88": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"89": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"90": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"91": [
				.08333,
				.69444,
				0,
				0,
				.525
			],
			"92": [
				.08333,
				.69444,
				0,
				0,
				.525
			],
			"93": [
				.08333,
				.69444,
				0,
				0,
				.525
			],
			"94": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"95": [
				.09514,
				0,
				0,
				0,
				.525
			],
			"96": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"97": [
				0,
				.43056,
				0,
				0,
				.525
			],
			"98": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"99": [
				0,
				.43056,
				0,
				0,
				.525
			],
			"100": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"101": [
				0,
				.43056,
				0,
				0,
				.525
			],
			"102": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"103": [
				.22222,
				.43056,
				0,
				0,
				.525
			],
			"104": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"105": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"106": [
				.22222,
				.61111,
				0,
				0,
				.525
			],
			"107": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"108": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"109": [
				0,
				.43056,
				0,
				0,
				.525
			],
			"110": [
				0,
				.43056,
				0,
				0,
				.525
			],
			"111": [
				0,
				.43056,
				0,
				0,
				.525
			],
			"112": [
				.22222,
				.43056,
				0,
				0,
				.525
			],
			"113": [
				.22222,
				.43056,
				0,
				0,
				.525
			],
			"114": [
				0,
				.43056,
				0,
				0,
				.525
			],
			"115": [
				0,
				.43056,
				0,
				0,
				.525
			],
			"116": [
				0,
				.55358,
				0,
				0,
				.525
			],
			"117": [
				0,
				.43056,
				0,
				0,
				.525
			],
			"118": [
				0,
				.43056,
				0,
				0,
				.525
			],
			"119": [
				0,
				.43056,
				0,
				0,
				.525
			],
			"120": [
				0,
				.43056,
				0,
				0,
				.525
			],
			"121": [
				.22222,
				.43056,
				0,
				0,
				.525
			],
			"122": [
				0,
				.43056,
				0,
				0,
				.525
			],
			"123": [
				.08333,
				.69444,
				0,
				0,
				.525
			],
			"124": [
				.08333,
				.69444,
				0,
				0,
				.525
			],
			"125": [
				.08333,
				.69444,
				0,
				0,
				.525
			],
			"126": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"127": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"160": [
				0,
				0,
				0,
				0,
				.525
			],
			"176": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"184": [
				.19445,
				0,
				0,
				0,
				.525
			],
			"305": [
				0,
				.43056,
				0,
				0,
				.525
			],
			"567": [
				.22222,
				.43056,
				0,
				0,
				.525
			],
			"711": [
				0,
				.56597,
				0,
				0,
				.525
			],
			"713": [
				0,
				.56555,
				0,
				0,
				.525
			],
			"714": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"715": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"728": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"730": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"770": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"771": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"776": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"915": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"916": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"920": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"923": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"926": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"928": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"931": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"933": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"934": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"936": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"937": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"8216": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"8217": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"8242": [
				0,
				.61111,
				0,
				0,
				.525
			],
			"9251": [
				.11111,
				.21944,
				0,
				0,
				.525
			]
		}
	};
	sigmasAndXis = {
		slant: [
			.25,
			.25,
			.25
		],
		space: [
			0,
			0,
			0
		],
		stretch: [
			0,
			0,
			0
		],
		shrink: [
			0,
			0,
			0
		],
		xHeight: [
			.431,
			.431,
			.431
		],
		quad: [
			1,
			1.171,
			1.472
		],
		extraSpace: [
			0,
			0,
			0
		],
		num1: [
			.677,
			.732,
			.925
		],
		num2: [
			.394,
			.384,
			.387
		],
		num3: [
			.444,
			.471,
			.504
		],
		denom1: [
			.686,
			.752,
			1.025
		],
		denom2: [
			.345,
			.344,
			.532
		],
		sup1: [
			.413,
			.503,
			.504
		],
		sup2: [
			.363,
			.431,
			.404
		],
		sup3: [
			.289,
			.286,
			.294
		],
		sub1: [
			.15,
			.143,
			.2
		],
		sub2: [
			.247,
			.286,
			.4
		],
		supDrop: [
			.386,
			.353,
			.494
		],
		subDrop: [
			.05,
			.071,
			.1
		],
		delim1: [
			2.39,
			1.7,
			1.98
		],
		delim2: [
			1.01,
			1.157,
			1.42
		],
		axisHeight: [
			.25,
			.25,
			.25
		],
		defaultRuleThickness: [
			.04,
			.049,
			.049
		],
		bigOpSpacing1: [
			.111,
			.111,
			.111
		],
		bigOpSpacing2: [
			.166,
			.166,
			.166
		],
		bigOpSpacing3: [
			.2,
			.2,
			.2
		],
		bigOpSpacing4: [
			.6,
			.611,
			.611
		],
		bigOpSpacing5: [
			.1,
			.143,
			.143
		],
		sqrtRuleThickness: [
			.04,
			.04,
			.04
		],
		ptPerEm: [
			10,
			10,
			10
		],
		doubleRuleSep: [
			.2,
			.2,
			.2
		],
		arrayRuleWidth: [
			.04,
			.04,
			.04
		],
		fboxsep: [
			.3,
			.3,
			.3
		],
		fboxrule: [
			.04,
			.04,
			.04
		]
	};
	extraCharacterMap = {
		"Å": "A",
		"Ð": "D",
		"Þ": "o",
		"å": "a",
		"ð": "d",
		"þ": "o",
		"А": "A",
		"Б": "B",
		"В": "B",
		"Г": "F",
		"Д": "A",
		"Е": "E",
		"Ж": "K",
		"З": "3",
		"И": "N",
		"Й": "N",
		"К": "K",
		"Л": "N",
		"М": "M",
		"Н": "H",
		"О": "O",
		"П": "N",
		"Р": "P",
		"С": "C",
		"Т": "T",
		"У": "y",
		"Ф": "O",
		"Х": "X",
		"Ц": "U",
		"Ч": "h",
		"Ш": "W",
		"Щ": "W",
		"Ъ": "B",
		"Ы": "X",
		"Ь": "B",
		"Э": "3",
		"Ю": "X",
		"Я": "R",
		"а": "a",
		"б": "b",
		"в": "a",
		"г": "r",
		"д": "y",
		"е": "e",
		"ж": "m",
		"з": "e",
		"и": "n",
		"й": "n",
		"к": "n",
		"л": "n",
		"м": "m",
		"н": "n",
		"о": "o",
		"п": "n",
		"р": "p",
		"с": "c",
		"т": "o",
		"у": "y",
		"ф": "b",
		"х": "x",
		"ц": "n",
		"ч": "n",
		"ш": "w",
		"щ": "w",
		"ъ": "a",
		"ы": "m",
		"ь": "a",
		"э": "e",
		"ю": "m",
		"я": "r"
	};
	fontMetricsBySizeIndex = {};
	sizeStyleMap = [
		[
			1,
			1,
			1
		],
		[
			2,
			1,
			1
		],
		[
			3,
			1,
			1
		],
		[
			4,
			2,
			1
		],
		[
			5,
			2,
			1
		],
		[
			6,
			3,
			1
		],
		[
			7,
			4,
			2
		],
		[
			8,
			6,
			3
		],
		[
			9,
			7,
			6
		],
		[
			10,
			8,
			7
		],
		[
			11,
			10,
			9
		]
	];
	sizeMultipliers = [
		.5,
		.6,
		.7,
		.8,
		.9,
		1,
		1.2,
		1.44,
		1.728,
		2.074,
		2.488
	];
	sizeAtStyle = function sizeAtStyle$1(size, style) {
		return style.size < 2 ? size : sizeStyleMap[size - 1][style.size - 1];
	};
	Options = class Options {
		/**
		* The base size index.
		*/
		constructor(data) {
			this.style = void 0;
			this.color = void 0;
			this.size = void 0;
			this.textSize = void 0;
			this.phantom = void 0;
			this.font = void 0;
			this.fontFamily = void 0;
			this.fontWeight = void 0;
			this.fontShape = void 0;
			this.sizeMultiplier = void 0;
			this.maxSize = void 0;
			this.minRuleThickness = void 0;
			this._fontMetrics = void 0;
			this.style = data.style;
			this.color = data.color;
			this.size = data.size || Options.BASESIZE;
			this.textSize = data.textSize || this.size;
			this.phantom = !!data.phantom;
			this.font = data.font || "";
			this.fontFamily = data.fontFamily || "";
			this.fontWeight = data.fontWeight || "";
			this.fontShape = data.fontShape || "";
			this.sizeMultiplier = sizeMultipliers[this.size - 1];
			this.maxSize = data.maxSize;
			this.minRuleThickness = data.minRuleThickness;
			this._fontMetrics = undefined;
		}
		/**
		* Returns a new options object with the same properties as "this".  Properties
		* from "extension" will be copied to the new options object.
		*/
		extend(extension) {
			var data = {
				style: this.style,
				size: this.size,
				textSize: this.textSize,
				color: this.color,
				phantom: this.phantom,
				font: this.font,
				fontFamily: this.fontFamily,
				fontWeight: this.fontWeight,
				fontShape: this.fontShape,
				maxSize: this.maxSize,
				minRuleThickness: this.minRuleThickness
			};
			for (var key in extension) {
				if (extension.hasOwnProperty(key)) {
					data[key] = extension[key];
				}
			}
			return new Options(data);
		}
		/**
		* Return an options object with the given style. If `this.style === style`,
		* returns `this`.
		*/
		havingStyle(style) {
			if (this.style === style) {
				return this;
			} else {
				return this.extend({
					style,
					size: sizeAtStyle(this.textSize, style)
				});
			}
		}
		/**
		* Return an options object with a cramped version of the current style. If
		* the current style is cramped, returns `this`.
		*/
		havingCrampedStyle() {
			return this.havingStyle(this.style.cramp());
		}
		/**
		* Return an options object with the given size and in at least `\textstyle`.
		* Returns `this` if appropriate.
		*/
		havingSize(size) {
			if (this.size === size && this.textSize === size) {
				return this;
			} else {
				return this.extend({
					style: this.style.text(),
					size,
					textSize: size,
					sizeMultiplier: sizeMultipliers[size - 1]
				});
			}
		}
		/**
		* Like `this.havingSize(BASESIZE).havingStyle(style)`. If `style` is omitted,
		* changes to at least `\textstyle`.
		*/
		havingBaseStyle(style) {
			style = style || this.style.text();
			var wantSize = sizeAtStyle(Options.BASESIZE, style);
			if (this.size === wantSize && this.textSize === Options.BASESIZE && this.style === style) {
				return this;
			} else {
				return this.extend({
					style,
					size: wantSize
				});
			}
		}
		/**
		* Remove the effect of sizing changes such as \Huge.
		* Keep the effect of the current style, such as \scriptstyle.
		*/
		havingBaseSizing() {
			var size;
			switch (this.style.id) {
				case 4:
				case 5:
					size = 3;
					break;
				case 6:
				case 7:
					size = 1;
					break;
				default: size = 6;
			}
			return this.extend({
				style: this.style.text(),
				size
			});
		}
		/**
		* Create a new options object with the given color.
		*/
		withColor(color) {
			return this.extend({ color });
		}
		/**
		* Create a new options object with "phantom" set to true.
		*/
		withPhantom() {
			return this.extend({ phantom: true });
		}
		/**
		* Creates a new options object with the given math font or old text font.
		* @type {[type]}
		*/
		withFont(font) {
			return this.extend({ font });
		}
		/**
		* Create a new options objects with the given fontFamily.
		*/
		withTextFontFamily(fontFamily) {
			return this.extend({
				fontFamily,
				font: ""
			});
		}
		/**
		* Creates a new options object with the given font weight
		*/
		withTextFontWeight(fontWeight) {
			return this.extend({
				fontWeight,
				font: ""
			});
		}
		/**
		* Creates a new options object with the given font weight
		*/
		withTextFontShape(fontShape) {
			return this.extend({
				fontShape,
				font: ""
			});
		}
		/**
		* Return the CSS sizing classes required to switch from enclosing options
		* `oldOptions` to `this`. Returns an array of classes.
		*/
		sizingClasses(oldOptions) {
			if (oldOptions.size !== this.size) {
				return [
					"sizing",
					"reset-size" + oldOptions.size,
					"size" + this.size
				];
			} else {
				return [];
			}
		}
		/**
		* Return the CSS sizing classes required to switch to the base size. Like
		* `this.havingSize(BASESIZE).sizingClasses(this)`.
		*/
		baseSizingClasses() {
			if (this.size !== Options.BASESIZE) {
				return [
					"sizing",
					"reset-size" + this.size,
					"size" + Options.BASESIZE
				];
			} else {
				return [];
			}
		}
		/**
		* Return the font metrics for this size.
		*/
		fontMetrics() {
			if (!this._fontMetrics) {
				this._fontMetrics = getGlobalMetrics(this.size);
			}
			return this._fontMetrics;
		}
		/**
		* Gets the CSS color of the current options object
		*/
		getColor() {
			if (this.phantom) {
				return "transparent";
			} else {
				return this.color;
			}
		}
	};
	Options.BASESIZE = 6;
	ptPerUnit = {
		"pt": 1,
		"mm": 7227 / 2540,
		"cm": 7227 / 254,
		"in": 72.27,
		"bp": 803 / 800,
		"pc": 12,
		"dd": 1238 / 1157,
		"cc": 14856 / 1157,
		"nd": 685 / 642,
		"nc": 1370 / 107,
		"sp": 1 / 65536,
		"px": 803 / 800
	};
	relativeUnit = {
		"ex": true,
		"em": true,
		"mu": true
	};
	validUnit = function validUnit$1(unit) {
		if (typeof unit !== "string") {
			unit = unit.unit;
		}
		return unit in ptPerUnit || unit in relativeUnit || unit === "ex";
	};
	calculateSize = function calculateSize$1(sizeValue, options) {
		var scale;
		if (sizeValue.unit in ptPerUnit) {
			scale = ptPerUnit[sizeValue.unit] / options.fontMetrics().ptPerEm / options.sizeMultiplier;
		} else if (sizeValue.unit === "mu") {
			scale = options.fontMetrics().cssEmPerMu;
		} else {
			var unitOptions;
			if (options.style.isTight()) {
				unitOptions = options.havingStyle(options.style.text());
			} else {
				unitOptions = options;
			}
			if (sizeValue.unit === "ex") {
				scale = unitOptions.fontMetrics().xHeight;
			} else if (sizeValue.unit === "em") {
				scale = unitOptions.fontMetrics().quad;
			} else {
				throw new ParseError("Invalid unit: '" + sizeValue.unit + "'");
			}
			if (unitOptions !== options) {
				scale *= unitOptions.sizeMultiplier / options.sizeMultiplier;
			}
		}
		return Math.min(sizeValue.number * scale, options.maxSize);
	};
	makeEm = function makeEm$1(n$9) {
		return +n$9.toFixed(4) + "em";
	};
	createClass = function createClass$1(classes) {
		return classes.filter((cls) => cls).join(" ");
	};
	initNode = function initNode$1(classes, options, style) {
		this.classes = classes || [];
		this.attributes = {};
		this.height = 0;
		this.depth = 0;
		this.maxFontSize = 0;
		this.style = style || {};
		if (options) {
			if (options.style.isTight()) {
				this.classes.push("mtight");
			}
			var color = options.getColor();
			if (color) {
				this.style.color = color;
			}
		}
	};
	toNode = function toNode$1(tagName) {
		var node = document.createElement(tagName);
		node.className = createClass(this.classes);
		for (var style in this.style) {
			if (this.style.hasOwnProperty(style)) {
				node.style[style] = this.style[style];
			}
		}
		for (var attr in this.attributes) {
			if (this.attributes.hasOwnProperty(attr)) {
				node.setAttribute(attr, this.attributes[attr]);
			}
		}
		for (var i$7 = 0; i$7 < this.children.length; i$7++) {
			node.appendChild(this.children[i$7].toNode());
		}
		return node;
	};
	invalidAttributeNameRegex = /[\s"'>/=\x00-\x1f]/;
	toMarkup = function toMarkup$1(tagName) {
		var markup = "<" + tagName;
		if (this.classes.length) {
			markup += " class=\"" + utils.escape(createClass(this.classes)) + "\"";
		}
		var styles$1 = "";
		for (var style in this.style) {
			if (this.style.hasOwnProperty(style)) {
				styles$1 += utils.hyphenate(style) + ":" + this.style[style] + ";";
			}
		}
		if (styles$1) {
			markup += " style=\"" + utils.escape(styles$1) + "\"";
		}
		for (var attr in this.attributes) {
			if (this.attributes.hasOwnProperty(attr)) {
				if (invalidAttributeNameRegex.test(attr)) {
					throw new ParseError("Invalid attribute name '" + attr + "'");
				}
				markup += " " + attr + "=\"" + utils.escape(this.attributes[attr]) + "\"";
			}
		}
		markup += ">";
		for (var i$7 = 0; i$7 < this.children.length; i$7++) {
			markup += this.children[i$7].toMarkup();
		}
		markup += "</" + tagName + ">";
		return markup;
	};
	Span = class {
		constructor(classes, children, options, style) {
			this.children = void 0;
			this.attributes = void 0;
			this.classes = void 0;
			this.height = void 0;
			this.depth = void 0;
			this.width = void 0;
			this.maxFontSize = void 0;
			this.style = void 0;
			initNode.call(this, classes, options, style);
			this.children = children || [];
		}
		/**
		* Sets an arbitrary attribute on the span. Warning: use this wisely. Not
		* all browsers support attributes the same, and having too many custom
		* attributes is probably bad.
		*/
		setAttribute(attribute, value) {
			this.attributes[attribute] = value;
		}
		hasClass(className) {
			return this.classes.includes(className);
		}
		toNode() {
			return toNode.call(this, "span");
		}
		toMarkup() {
			return toMarkup.call(this, "span");
		}
	};
	Anchor = class {
		constructor(href, classes, children, options) {
			this.children = void 0;
			this.attributes = void 0;
			this.classes = void 0;
			this.height = void 0;
			this.depth = void 0;
			this.maxFontSize = void 0;
			this.style = void 0;
			initNode.call(this, classes, options);
			this.children = children || [];
			this.setAttribute("href", href);
		}
		setAttribute(attribute, value) {
			this.attributes[attribute] = value;
		}
		hasClass(className) {
			return this.classes.includes(className);
		}
		toNode() {
			return toNode.call(this, "a");
		}
		toMarkup() {
			return toMarkup.call(this, "a");
		}
	};
	Img = class {
		constructor(src, alt, style) {
			this.src = void 0;
			this.alt = void 0;
			this.classes = void 0;
			this.height = void 0;
			this.depth = void 0;
			this.maxFontSize = void 0;
			this.style = void 0;
			this.alt = alt;
			this.src = src;
			this.classes = ["mord"];
			this.style = style;
		}
		hasClass(className) {
			return this.classes.includes(className);
		}
		toNode() {
			var node = document.createElement("img");
			node.src = this.src;
			node.alt = this.alt;
			node.className = "mord";
			for (var style in this.style) {
				if (this.style.hasOwnProperty(style)) {
					node.style[style] = this.style[style];
				}
			}
			return node;
		}
		toMarkup() {
			var markup = "<img src=\"" + utils.escape(this.src) + "\"" + (" alt=\"" + utils.escape(this.alt) + "\"");
			var styles$1 = "";
			for (var style in this.style) {
				if (this.style.hasOwnProperty(style)) {
					styles$1 += utils.hyphenate(style) + ":" + this.style[style] + ";";
				}
			}
			if (styles$1) {
				markup += " style=\"" + utils.escape(styles$1) + "\"";
			}
			markup += "'/>";
			return markup;
		}
	};
	iCombinations = {
		"î": "ı̂",
		"ï": "ı̈",
		"í": "ı́",
		"ì": "ı̀"
	};
	SymbolNode = class {
		constructor(text$2, height, depth, italic, skew, width, classes, style) {
			this.text = void 0;
			this.height = void 0;
			this.depth = void 0;
			this.italic = void 0;
			this.skew = void 0;
			this.width = void 0;
			this.maxFontSize = void 0;
			this.classes = void 0;
			this.style = void 0;
			this.text = text$2;
			this.height = height || 0;
			this.depth = depth || 0;
			this.italic = italic || 0;
			this.skew = skew || 0;
			this.width = width || 0;
			this.classes = classes || [];
			this.style = style || {};
			this.maxFontSize = 0;
			var script = scriptFromCodepoint(this.text.charCodeAt(0));
			if (script) {
				this.classes.push(script + "_fallback");
			}
			if (/[îïíì]/.test(this.text)) {
				this.text = iCombinations[this.text];
			}
		}
		hasClass(className) {
			return this.classes.includes(className);
		}
		/**
		* Creates a text node or span from a symbol node. Note that a span is only
		* created if it is needed.
		*/
		toNode() {
			var node = document.createTextNode(this.text);
			var span = null;
			if (this.italic > 0) {
				span = document.createElement("span");
				span.style.marginRight = makeEm(this.italic);
			}
			if (this.classes.length > 0) {
				span = span || document.createElement("span");
				span.className = createClass(this.classes);
			}
			for (var style in this.style) {
				if (this.style.hasOwnProperty(style)) {
					span = span || document.createElement("span");
					span.style[style] = this.style[style];
				}
			}
			if (span) {
				span.appendChild(node);
				return span;
			} else {
				return node;
			}
		}
		/**
		* Creates markup for a symbol node.
		*/
		toMarkup() {
			var needsSpan = false;
			var markup = "<span";
			if (this.classes.length) {
				needsSpan = true;
				markup += " class=\"";
				markup += utils.escape(createClass(this.classes));
				markup += "\"";
			}
			var styles$1 = "";
			if (this.italic > 0) {
				styles$1 += "margin-right:" + this.italic + "em;";
			}
			for (var style in this.style) {
				if (this.style.hasOwnProperty(style)) {
					styles$1 += utils.hyphenate(style) + ":" + this.style[style] + ";";
				}
			}
			if (styles$1) {
				needsSpan = true;
				markup += " style=\"" + utils.escape(styles$1) + "\"";
			}
			var escaped = utils.escape(this.text);
			if (needsSpan) {
				markup += ">";
				markup += escaped;
				markup += "</span>";
				return markup;
			} else {
				return escaped;
			}
		}
	};
	SvgNode = class {
		constructor(children, attributes) {
			this.children = void 0;
			this.attributes = void 0;
			this.children = children || [];
			this.attributes = attributes || {};
		}
		toNode() {
			var svgNS = "http://www.w3.org/2000/svg";
			var node = document.createElementNS(svgNS, "svg");
			for (var attr in this.attributes) {
				if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {
					node.setAttribute(attr, this.attributes[attr]);
				}
			}
			for (var i$7 = 0; i$7 < this.children.length; i$7++) {
				node.appendChild(this.children[i$7].toNode());
			}
			return node;
		}
		toMarkup() {
			var markup = "<svg xmlns=\"http://www.w3.org/2000/svg\"";
			for (var attr in this.attributes) {
				if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {
					markup += " " + attr + "=\"" + utils.escape(this.attributes[attr]) + "\"";
				}
			}
			markup += ">";
			for (var i$7 = 0; i$7 < this.children.length; i$7++) {
				markup += this.children[i$7].toMarkup();
			}
			markup += "</svg>";
			return markup;
		}
	};
	PathNode = class {
		constructor(pathName, alternate) {
			this.pathName = void 0;
			this.alternate = void 0;
			this.pathName = pathName;
			this.alternate = alternate;
		}
		toNode() {
			var svgNS = "http://www.w3.org/2000/svg";
			var node = document.createElementNS(svgNS, "path");
			if (this.alternate) {
				node.setAttribute("d", this.alternate);
			} else {
				node.setAttribute("d", path[this.pathName]);
			}
			return node;
		}
		toMarkup() {
			if (this.alternate) {
				return "<path d=\"" + utils.escape(this.alternate) + "\"/>";
			} else {
				return "<path d=\"" + utils.escape(path[this.pathName]) + "\"/>";
			}
		}
	};
	LineNode = class {
		constructor(attributes) {
			this.attributes = void 0;
			this.attributes = attributes || {};
		}
		toNode() {
			var svgNS = "http://www.w3.org/2000/svg";
			var node = document.createElementNS(svgNS, "line");
			for (var attr in this.attributes) {
				if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {
					node.setAttribute(attr, this.attributes[attr]);
				}
			}
			return node;
		}
		toMarkup() {
			var markup = "<line";
			for (var attr in this.attributes) {
				if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {
					markup += " " + attr + "=\"" + utils.escape(this.attributes[attr]) + "\"";
				}
			}
			markup += "/>";
			return markup;
		}
	};
	ATOMS = {
		"bin": 1,
		"close": 1,
		"inner": 1,
		"open": 1,
		"punct": 1,
		"rel": 1
	};
	NON_ATOMS = {
		"accent-token": 1,
		"mathord": 1,
		"op-token": 1,
		"spacing": 1,
		"textord": 1
	};
	symbols = {
		"math": {},
		"text": {}
	};
	math = "math";
	text = "text";
	main = "main";
	ams = "ams";
	accent = "accent-token";
	bin = "bin";
	close = "close";
	inner = "inner";
	mathord = "mathord";
	op = "op-token";
	open = "open";
	punct = "punct";
	rel = "rel";
	spacing = "spacing";
	textord = "textord";
	defineSymbol(math, main, rel, "≡", "\\equiv", true);
	defineSymbol(math, main, rel, "≺", "\\prec", true);
	defineSymbol(math, main, rel, "≻", "\\succ", true);
	defineSymbol(math, main, rel, "∼", "\\sim", true);
	defineSymbol(math, main, rel, "⊥", "\\perp");
	defineSymbol(math, main, rel, "⪯", "\\preceq", true);
	defineSymbol(math, main, rel, "⪰", "\\succeq", true);
	defineSymbol(math, main, rel, "≃", "\\simeq", true);
	defineSymbol(math, main, rel, "∣", "\\mid", true);
	defineSymbol(math, main, rel, "≪", "\\ll", true);
	defineSymbol(math, main, rel, "≫", "\\gg", true);
	defineSymbol(math, main, rel, "≍", "\\asymp", true);
	defineSymbol(math, main, rel, "∥", "\\parallel");
	defineSymbol(math, main, rel, "⋈", "\\bowtie", true);
	defineSymbol(math, main, rel, "⌣", "\\smile", true);
	defineSymbol(math, main, rel, "⊑", "\\sqsubseteq", true);
	defineSymbol(math, main, rel, "⊒", "\\sqsupseteq", true);
	defineSymbol(math, main, rel, "≐", "\\doteq", true);
	defineSymbol(math, main, rel, "⌢", "\\frown", true);
	defineSymbol(math, main, rel, "∋", "\\ni", true);
	defineSymbol(math, main, rel, "∝", "\\propto", true);
	defineSymbol(math, main, rel, "⊢", "\\vdash", true);
	defineSymbol(math, main, rel, "⊣", "\\dashv", true);
	defineSymbol(math, main, rel, "∋", "\\owns");
	defineSymbol(math, main, punct, ".", "\\ldotp");
	defineSymbol(math, main, punct, "⋅", "\\cdotp");
	defineSymbol(math, main, textord, "#", "\\#");
	defineSymbol(text, main, textord, "#", "\\#");
	defineSymbol(math, main, textord, "&", "\\&");
	defineSymbol(text, main, textord, "&", "\\&");
	defineSymbol(math, main, textord, "ℵ", "\\aleph", true);
	defineSymbol(math, main, textord, "∀", "\\forall", true);
	defineSymbol(math, main, textord, "ℏ", "\\hbar", true);
	defineSymbol(math, main, textord, "∃", "\\exists", true);
	defineSymbol(math, main, textord, "∇", "\\nabla", true);
	defineSymbol(math, main, textord, "♭", "\\flat", true);
	defineSymbol(math, main, textord, "ℓ", "\\ell", true);
	defineSymbol(math, main, textord, "♮", "\\natural", true);
	defineSymbol(math, main, textord, "♣", "\\clubsuit", true);
	defineSymbol(math, main, textord, "℘", "\\wp", true);
	defineSymbol(math, main, textord, "♯", "\\sharp", true);
	defineSymbol(math, main, textord, "♢", "\\diamondsuit", true);
	defineSymbol(math, main, textord, "ℜ", "\\Re", true);
	defineSymbol(math, main, textord, "♡", "\\heartsuit", true);
	defineSymbol(math, main, textord, "ℑ", "\\Im", true);
	defineSymbol(math, main, textord, "♠", "\\spadesuit", true);
	defineSymbol(math, main, textord, "§", "\\S", true);
	defineSymbol(text, main, textord, "§", "\\S");
	defineSymbol(math, main, textord, "¶", "\\P", true);
	defineSymbol(text, main, textord, "¶", "\\P");
	defineSymbol(math, main, textord, "†", "\\dag");
	defineSymbol(text, main, textord, "†", "\\dag");
	defineSymbol(text, main, textord, "†", "\\textdagger");
	defineSymbol(math, main, textord, "‡", "\\ddag");
	defineSymbol(text, main, textord, "‡", "\\ddag");
	defineSymbol(text, main, textord, "‡", "\\textdaggerdbl");
	defineSymbol(math, main, close, "⎱", "\\rmoustache", true);
	defineSymbol(math, main, open, "⎰", "\\lmoustache", true);
	defineSymbol(math, main, close, "⟯", "\\rgroup", true);
	defineSymbol(math, main, open, "⟮", "\\lgroup", true);
	defineSymbol(math, main, bin, "∓", "\\mp", true);
	defineSymbol(math, main, bin, "⊖", "\\ominus", true);
	defineSymbol(math, main, bin, "⊎", "\\uplus", true);
	defineSymbol(math, main, bin, "⊓", "\\sqcap", true);
	defineSymbol(math, main, bin, "∗", "\\ast");
	defineSymbol(math, main, bin, "⊔", "\\sqcup", true);
	defineSymbol(math, main, bin, "◯", "\\bigcirc", true);
	defineSymbol(math, main, bin, "∙", "\\bullet", true);
	defineSymbol(math, main, bin, "‡", "\\ddagger");
	defineSymbol(math, main, bin, "≀", "\\wr", true);
	defineSymbol(math, main, bin, "⨿", "\\amalg");
	defineSymbol(math, main, bin, "&", "\\And");
	defineSymbol(math, main, rel, "⟵", "\\longleftarrow", true);
	defineSymbol(math, main, rel, "⇐", "\\Leftarrow", true);
	defineSymbol(math, main, rel, "⟸", "\\Longleftarrow", true);
	defineSymbol(math, main, rel, "⟶", "\\longrightarrow", true);
	defineSymbol(math, main, rel, "⇒", "\\Rightarrow", true);
	defineSymbol(math, main, rel, "⟹", "\\Longrightarrow", true);
	defineSymbol(math, main, rel, "↔", "\\leftrightarrow", true);
	defineSymbol(math, main, rel, "⟷", "\\longleftrightarrow", true);
	defineSymbol(math, main, rel, "⇔", "\\Leftrightarrow", true);
	defineSymbol(math, main, rel, "⟺", "\\Longleftrightarrow", true);
	defineSymbol(math, main, rel, "↦", "\\mapsto", true);
	defineSymbol(math, main, rel, "⟼", "\\longmapsto", true);
	defineSymbol(math, main, rel, "↗", "\\nearrow", true);
	defineSymbol(math, main, rel, "↩", "\\hookleftarrow", true);
	defineSymbol(math, main, rel, "↪", "\\hookrightarrow", true);
	defineSymbol(math, main, rel, "↘", "\\searrow", true);
	defineSymbol(math, main, rel, "↼", "\\leftharpoonup", true);
	defineSymbol(math, main, rel, "⇀", "\\rightharpoonup", true);
	defineSymbol(math, main, rel, "↙", "\\swarrow", true);
	defineSymbol(math, main, rel, "↽", "\\leftharpoondown", true);
	defineSymbol(math, main, rel, "⇁", "\\rightharpoondown", true);
	defineSymbol(math, main, rel, "↖", "\\nwarrow", true);
	defineSymbol(math, main, rel, "⇌", "\\rightleftharpoons", true);
	defineSymbol(math, ams, rel, "≮", "\\nless", true);
	defineSymbol(math, ams, rel, "", "\\@nleqslant");
	defineSymbol(math, ams, rel, "", "\\@nleqq");
	defineSymbol(math, ams, rel, "⪇", "\\lneq", true);
	defineSymbol(math, ams, rel, "≨", "\\lneqq", true);
	defineSymbol(math, ams, rel, "", "\\@lvertneqq");
	defineSymbol(math, ams, rel, "⋦", "\\lnsim", true);
	defineSymbol(math, ams, rel, "⪉", "\\lnapprox", true);
	defineSymbol(math, ams, rel, "⊀", "\\nprec", true);
	defineSymbol(math, ams, rel, "⋠", "\\npreceq", true);
	defineSymbol(math, ams, rel, "⋨", "\\precnsim", true);
	defineSymbol(math, ams, rel, "⪹", "\\precnapprox", true);
	defineSymbol(math, ams, rel, "≁", "\\nsim", true);
	defineSymbol(math, ams, rel, "", "\\@nshortmid");
	defineSymbol(math, ams, rel, "∤", "\\nmid", true);
	defineSymbol(math, ams, rel, "⊬", "\\nvdash", true);
	defineSymbol(math, ams, rel, "⊭", "\\nvDash", true);
	defineSymbol(math, ams, rel, "⋪", "\\ntriangleleft");
	defineSymbol(math, ams, rel, "⋬", "\\ntrianglelefteq", true);
	defineSymbol(math, ams, rel, "⊊", "\\subsetneq", true);
	defineSymbol(math, ams, rel, "", "\\@varsubsetneq");
	defineSymbol(math, ams, rel, "⫋", "\\subsetneqq", true);
	defineSymbol(math, ams, rel, "", "\\@varsubsetneqq");
	defineSymbol(math, ams, rel, "≯", "\\ngtr", true);
	defineSymbol(math, ams, rel, "", "\\@ngeqslant");
	defineSymbol(math, ams, rel, "", "\\@ngeqq");
	defineSymbol(math, ams, rel, "⪈", "\\gneq", true);
	defineSymbol(math, ams, rel, "≩", "\\gneqq", true);
	defineSymbol(math, ams, rel, "", "\\@gvertneqq");
	defineSymbol(math, ams, rel, "⋧", "\\gnsim", true);
	defineSymbol(math, ams, rel, "⪊", "\\gnapprox", true);
	defineSymbol(math, ams, rel, "⊁", "\\nsucc", true);
	defineSymbol(math, ams, rel, "⋡", "\\nsucceq", true);
	defineSymbol(math, ams, rel, "⋩", "\\succnsim", true);
	defineSymbol(math, ams, rel, "⪺", "\\succnapprox", true);
	defineSymbol(math, ams, rel, "≆", "\\ncong", true);
	defineSymbol(math, ams, rel, "", "\\@nshortparallel");
	defineSymbol(math, ams, rel, "∦", "\\nparallel", true);
	defineSymbol(math, ams, rel, "⊯", "\\nVDash", true);
	defineSymbol(math, ams, rel, "⋫", "\\ntriangleright");
	defineSymbol(math, ams, rel, "⋭", "\\ntrianglerighteq", true);
	defineSymbol(math, ams, rel, "", "\\@nsupseteqq");
	defineSymbol(math, ams, rel, "⊋", "\\supsetneq", true);
	defineSymbol(math, ams, rel, "", "\\@varsupsetneq");
	defineSymbol(math, ams, rel, "⫌", "\\supsetneqq", true);
	defineSymbol(math, ams, rel, "", "\\@varsupsetneqq");
	defineSymbol(math, ams, rel, "⊮", "\\nVdash", true);
	defineSymbol(math, ams, rel, "⪵", "\\precneqq", true);
	defineSymbol(math, ams, rel, "⪶", "\\succneqq", true);
	defineSymbol(math, ams, rel, "", "\\@nsubseteqq");
	defineSymbol(math, ams, bin, "⊴", "\\unlhd");
	defineSymbol(math, ams, bin, "⊵", "\\unrhd");
	defineSymbol(math, ams, rel, "↚", "\\nleftarrow", true);
	defineSymbol(math, ams, rel, "↛", "\\nrightarrow", true);
	defineSymbol(math, ams, rel, "⇍", "\\nLeftarrow", true);
	defineSymbol(math, ams, rel, "⇏", "\\nRightarrow", true);
	defineSymbol(math, ams, rel, "↮", "\\nleftrightarrow", true);
	defineSymbol(math, ams, rel, "⇎", "\\nLeftrightarrow", true);
	defineSymbol(math, ams, rel, "△", "\\vartriangle");
	defineSymbol(math, ams, textord, "ℏ", "\\hslash");
	defineSymbol(math, ams, textord, "▽", "\\triangledown");
	defineSymbol(math, ams, textord, "◊", "\\lozenge");
	defineSymbol(math, ams, textord, "Ⓢ", "\\circledS");
	defineSymbol(math, ams, textord, "®", "\\circledR");
	defineSymbol(text, ams, textord, "®", "\\circledR");
	defineSymbol(math, ams, textord, "∡", "\\measuredangle", true);
	defineSymbol(math, ams, textord, "∄", "\\nexists");
	defineSymbol(math, ams, textord, "℧", "\\mho");
	defineSymbol(math, ams, textord, "Ⅎ", "\\Finv", true);
	defineSymbol(math, ams, textord, "⅁", "\\Game", true);
	defineSymbol(math, ams, textord, "‵", "\\backprime");
	defineSymbol(math, ams, textord, "▲", "\\blacktriangle");
	defineSymbol(math, ams, textord, "▼", "\\blacktriangledown");
	defineSymbol(math, ams, textord, "■", "\\blacksquare");
	defineSymbol(math, ams, textord, "⧫", "\\blacklozenge");
	defineSymbol(math, ams, textord, "★", "\\bigstar");
	defineSymbol(math, ams, textord, "∢", "\\sphericalangle", true);
	defineSymbol(math, ams, textord, "∁", "\\complement", true);
	defineSymbol(math, ams, textord, "ð", "\\eth", true);
	defineSymbol(text, main, textord, "ð", "ð");
	defineSymbol(math, ams, textord, "╱", "\\diagup");
	defineSymbol(math, ams, textord, "╲", "\\diagdown");
	defineSymbol(math, ams, textord, "□", "\\square");
	defineSymbol(math, ams, textord, "□", "\\Box");
	defineSymbol(math, ams, textord, "◊", "\\Diamond");
	defineSymbol(math, ams, textord, "¥", "\\yen", true);
	defineSymbol(text, ams, textord, "¥", "\\yen", true);
	defineSymbol(math, ams, textord, "✓", "\\checkmark", true);
	defineSymbol(text, ams, textord, "✓", "\\checkmark");
	defineSymbol(math, ams, textord, "ℶ", "\\beth", true);
	defineSymbol(math, ams, textord, "ℸ", "\\daleth", true);
	defineSymbol(math, ams, textord, "ℷ", "\\gimel", true);
	defineSymbol(math, ams, textord, "ϝ", "\\digamma", true);
	defineSymbol(math, ams, textord, "ϰ", "\\varkappa");
	defineSymbol(math, ams, open, "┌", "\\@ulcorner", true);
	defineSymbol(math, ams, close, "┐", "\\@urcorner", true);
	defineSymbol(math, ams, open, "└", "\\@llcorner", true);
	defineSymbol(math, ams, close, "┘", "\\@lrcorner", true);
	defineSymbol(math, ams, rel, "≦", "\\leqq", true);
	defineSymbol(math, ams, rel, "⩽", "\\leqslant", true);
	defineSymbol(math, ams, rel, "⪕", "\\eqslantless", true);
	defineSymbol(math, ams, rel, "≲", "\\lesssim", true);
	defineSymbol(math, ams, rel, "⪅", "\\lessapprox", true);
	defineSymbol(math, ams, rel, "≊", "\\approxeq", true);
	defineSymbol(math, ams, bin, "⋖", "\\lessdot");
	defineSymbol(math, ams, rel, "⋘", "\\lll", true);
	defineSymbol(math, ams, rel, "≶", "\\lessgtr", true);
	defineSymbol(math, ams, rel, "⋚", "\\lesseqgtr", true);
	defineSymbol(math, ams, rel, "⪋", "\\lesseqqgtr", true);
	defineSymbol(math, ams, rel, "≑", "\\doteqdot");
	defineSymbol(math, ams, rel, "≓", "\\risingdotseq", true);
	defineSymbol(math, ams, rel, "≒", "\\fallingdotseq", true);
	defineSymbol(math, ams, rel, "∽", "\\backsim", true);
	defineSymbol(math, ams, rel, "⋍", "\\backsimeq", true);
	defineSymbol(math, ams, rel, "⫅", "\\subseteqq", true);
	defineSymbol(math, ams, rel, "⋐", "\\Subset", true);
	defineSymbol(math, ams, rel, "⊏", "\\sqsubset", true);
	defineSymbol(math, ams, rel, "≼", "\\preccurlyeq", true);
	defineSymbol(math, ams, rel, "⋞", "\\curlyeqprec", true);
	defineSymbol(math, ams, rel, "≾", "\\precsim", true);
	defineSymbol(math, ams, rel, "⪷", "\\precapprox", true);
	defineSymbol(math, ams, rel, "⊲", "\\vartriangleleft");
	defineSymbol(math, ams, rel, "⊴", "\\trianglelefteq");
	defineSymbol(math, ams, rel, "⊨", "\\vDash", true);
	defineSymbol(math, ams, rel, "⊪", "\\Vvdash", true);
	defineSymbol(math, ams, rel, "⌣", "\\smallsmile");
	defineSymbol(math, ams, rel, "⌢", "\\smallfrown");
	defineSymbol(math, ams, rel, "≏", "\\bumpeq", true);
	defineSymbol(math, ams, rel, "≎", "\\Bumpeq", true);
	defineSymbol(math, ams, rel, "≧", "\\geqq", true);
	defineSymbol(math, ams, rel, "⩾", "\\geqslant", true);
	defineSymbol(math, ams, rel, "⪖", "\\eqslantgtr", true);
	defineSymbol(math, ams, rel, "≳", "\\gtrsim", true);
	defineSymbol(math, ams, rel, "⪆", "\\gtrapprox", true);
	defineSymbol(math, ams, bin, "⋗", "\\gtrdot");
	defineSymbol(math, ams, rel, "⋙", "\\ggg", true);
	defineSymbol(math, ams, rel, "≷", "\\gtrless", true);
	defineSymbol(math, ams, rel, "⋛", "\\gtreqless", true);
	defineSymbol(math, ams, rel, "⪌", "\\gtreqqless", true);
	defineSymbol(math, ams, rel, "≖", "\\eqcirc", true);
	defineSymbol(math, ams, rel, "≗", "\\circeq", true);
	defineSymbol(math, ams, rel, "≜", "\\triangleq", true);
	defineSymbol(math, ams, rel, "∼", "\\thicksim");
	defineSymbol(math, ams, rel, "≈", "\\thickapprox");
	defineSymbol(math, ams, rel, "⫆", "\\supseteqq", true);
	defineSymbol(math, ams, rel, "⋑", "\\Supset", true);
	defineSymbol(math, ams, rel, "⊐", "\\sqsupset", true);
	defineSymbol(math, ams, rel, "≽", "\\succcurlyeq", true);
	defineSymbol(math, ams, rel, "⋟", "\\curlyeqsucc", true);
	defineSymbol(math, ams, rel, "≿", "\\succsim", true);
	defineSymbol(math, ams, rel, "⪸", "\\succapprox", true);
	defineSymbol(math, ams, rel, "⊳", "\\vartriangleright");
	defineSymbol(math, ams, rel, "⊵", "\\trianglerighteq");
	defineSymbol(math, ams, rel, "⊩", "\\Vdash", true);
	defineSymbol(math, ams, rel, "∣", "\\shortmid");
	defineSymbol(math, ams, rel, "∥", "\\shortparallel");
	defineSymbol(math, ams, rel, "≬", "\\between", true);
	defineSymbol(math, ams, rel, "⋔", "\\pitchfork", true);
	defineSymbol(math, ams, rel, "∝", "\\varpropto");
	defineSymbol(math, ams, rel, "◀", "\\blacktriangleleft");
	defineSymbol(math, ams, rel, "∴", "\\therefore", true);
	defineSymbol(math, ams, rel, "∍", "\\backepsilon");
	defineSymbol(math, ams, rel, "▶", "\\blacktriangleright");
	defineSymbol(math, ams, rel, "∵", "\\because", true);
	defineSymbol(math, ams, rel, "⋘", "\\llless");
	defineSymbol(math, ams, rel, "⋙", "\\gggtr");
	defineSymbol(math, ams, bin, "⊲", "\\lhd");
	defineSymbol(math, ams, bin, "⊳", "\\rhd");
	defineSymbol(math, ams, rel, "≂", "\\eqsim", true);
	defineSymbol(math, main, rel, "⋈", "\\Join");
	defineSymbol(math, ams, rel, "≑", "\\Doteq", true);
	defineSymbol(math, ams, bin, "∔", "\\dotplus", true);
	defineSymbol(math, ams, bin, "∖", "\\smallsetminus");
	defineSymbol(math, ams, bin, "⋒", "\\Cap", true);
	defineSymbol(math, ams, bin, "⋓", "\\Cup", true);
	defineSymbol(math, ams, bin, "⩞", "\\doublebarwedge", true);
	defineSymbol(math, ams, bin, "⊟", "\\boxminus", true);
	defineSymbol(math, ams, bin, "⊞", "\\boxplus", true);
	defineSymbol(math, ams, bin, "⋇", "\\divideontimes", true);
	defineSymbol(math, ams, bin, "⋉", "\\ltimes", true);
	defineSymbol(math, ams, bin, "⋊", "\\rtimes", true);
	defineSymbol(math, ams, bin, "⋋", "\\leftthreetimes", true);
	defineSymbol(math, ams, bin, "⋌", "\\rightthreetimes", true);
	defineSymbol(math, ams, bin, "⋏", "\\curlywedge", true);
	defineSymbol(math, ams, bin, "⋎", "\\curlyvee", true);
	defineSymbol(math, ams, bin, "⊝", "\\circleddash", true);
	defineSymbol(math, ams, bin, "⊛", "\\circledast", true);
	defineSymbol(math, ams, bin, "⋅", "\\centerdot");
	defineSymbol(math, ams, bin, "⊺", "\\intercal", true);
	defineSymbol(math, ams, bin, "⋒", "\\doublecap");
	defineSymbol(math, ams, bin, "⋓", "\\doublecup");
	defineSymbol(math, ams, bin, "⊠", "\\boxtimes", true);
	defineSymbol(math, ams, rel, "⇢", "\\dashrightarrow", true);
	defineSymbol(math, ams, rel, "⇠", "\\dashleftarrow", true);
	defineSymbol(math, ams, rel, "⇇", "\\leftleftarrows", true);
	defineSymbol(math, ams, rel, "⇆", "\\leftrightarrows", true);
	defineSymbol(math, ams, rel, "⇚", "\\Lleftarrow", true);
	defineSymbol(math, ams, rel, "↞", "\\twoheadleftarrow", true);
	defineSymbol(math, ams, rel, "↢", "\\leftarrowtail", true);
	defineSymbol(math, ams, rel, "↫", "\\looparrowleft", true);
	defineSymbol(math, ams, rel, "⇋", "\\leftrightharpoons", true);
	defineSymbol(math, ams, rel, "↶", "\\curvearrowleft", true);
	defineSymbol(math, ams, rel, "↺", "\\circlearrowleft", true);
	defineSymbol(math, ams, rel, "↰", "\\Lsh", true);
	defineSymbol(math, ams, rel, "⇈", "\\upuparrows", true);
	defineSymbol(math, ams, rel, "↿", "\\upharpoonleft", true);
	defineSymbol(math, ams, rel, "⇃", "\\downharpoonleft", true);
	defineSymbol(math, main, rel, "⊶", "\\origof", true);
	defineSymbol(math, main, rel, "⊷", "\\imageof", true);
	defineSymbol(math, ams, rel, "⊸", "\\multimap", true);
	defineSymbol(math, ams, rel, "↭", "\\leftrightsquigarrow", true);
	defineSymbol(math, ams, rel, "⇉", "\\rightrightarrows", true);
	defineSymbol(math, ams, rel, "⇄", "\\rightleftarrows", true);
	defineSymbol(math, ams, rel, "↠", "\\twoheadrightarrow", true);
	defineSymbol(math, ams, rel, "↣", "\\rightarrowtail", true);
	defineSymbol(math, ams, rel, "↬", "\\looparrowright", true);
	defineSymbol(math, ams, rel, "↷", "\\curvearrowright", true);
	defineSymbol(math, ams, rel, "↻", "\\circlearrowright", true);
	defineSymbol(math, ams, rel, "↱", "\\Rsh", true);
	defineSymbol(math, ams, rel, "⇊", "\\downdownarrows", true);
	defineSymbol(math, ams, rel, "↾", "\\upharpoonright", true);
	defineSymbol(math, ams, rel, "⇂", "\\downharpoonright", true);
	defineSymbol(math, ams, rel, "⇝", "\\rightsquigarrow", true);
	defineSymbol(math, ams, rel, "⇝", "\\leadsto");
	defineSymbol(math, ams, rel, "⇛", "\\Rrightarrow", true);
	defineSymbol(math, ams, rel, "↾", "\\restriction");
	defineSymbol(math, main, textord, "‘", "`");
	defineSymbol(math, main, textord, "$", "\\$");
	defineSymbol(text, main, textord, "$", "\\$");
	defineSymbol(text, main, textord, "$", "\\textdollar");
	defineSymbol(math, main, textord, "%", "\\%");
	defineSymbol(text, main, textord, "%", "\\%");
	defineSymbol(math, main, textord, "_", "\\_");
	defineSymbol(text, main, textord, "_", "\\_");
	defineSymbol(text, main, textord, "_", "\\textunderscore");
	defineSymbol(math, main, textord, "∠", "\\angle", true);
	defineSymbol(math, main, textord, "∞", "\\infty", true);
	defineSymbol(math, main, textord, "′", "\\prime");
	defineSymbol(math, main, textord, "△", "\\triangle");
	defineSymbol(math, main, textord, "Γ", "\\Gamma", true);
	defineSymbol(math, main, textord, "Δ", "\\Delta", true);
	defineSymbol(math, main, textord, "Θ", "\\Theta", true);
	defineSymbol(math, main, textord, "Λ", "\\Lambda", true);
	defineSymbol(math, main, textord, "Ξ", "\\Xi", true);
	defineSymbol(math, main, textord, "Π", "\\Pi", true);
	defineSymbol(math, main, textord, "Σ", "\\Sigma", true);
	defineSymbol(math, main, textord, "Υ", "\\Upsilon", true);
	defineSymbol(math, main, textord, "Φ", "\\Phi", true);
	defineSymbol(math, main, textord, "Ψ", "\\Psi", true);
	defineSymbol(math, main, textord, "Ω", "\\Omega", true);
	defineSymbol(math, main, textord, "A", "Α");
	defineSymbol(math, main, textord, "B", "Β");
	defineSymbol(math, main, textord, "E", "Ε");
	defineSymbol(math, main, textord, "Z", "Ζ");
	defineSymbol(math, main, textord, "H", "Η");
	defineSymbol(math, main, textord, "I", "Ι");
	defineSymbol(math, main, textord, "K", "Κ");
	defineSymbol(math, main, textord, "M", "Μ");
	defineSymbol(math, main, textord, "N", "Ν");
	defineSymbol(math, main, textord, "O", "Ο");
	defineSymbol(math, main, textord, "P", "Ρ");
	defineSymbol(math, main, textord, "T", "Τ");
	defineSymbol(math, main, textord, "X", "Χ");
	defineSymbol(math, main, textord, "¬", "\\neg", true);
	defineSymbol(math, main, textord, "¬", "\\lnot");
	defineSymbol(math, main, textord, "⊤", "\\top");
	defineSymbol(math, main, textord, "⊥", "\\bot");
	defineSymbol(math, main, textord, "∅", "\\emptyset");
	defineSymbol(math, ams, textord, "∅", "\\varnothing");
	defineSymbol(math, main, mathord, "α", "\\alpha", true);
	defineSymbol(math, main, mathord, "β", "\\beta", true);
	defineSymbol(math, main, mathord, "γ", "\\gamma", true);
	defineSymbol(math, main, mathord, "δ", "\\delta", true);
	defineSymbol(math, main, mathord, "ϵ", "\\epsilon", true);
	defineSymbol(math, main, mathord, "ζ", "\\zeta", true);
	defineSymbol(math, main, mathord, "η", "\\eta", true);
	defineSymbol(math, main, mathord, "θ", "\\theta", true);
	defineSymbol(math, main, mathord, "ι", "\\iota", true);
	defineSymbol(math, main, mathord, "κ", "\\kappa", true);
	defineSymbol(math, main, mathord, "λ", "\\lambda", true);
	defineSymbol(math, main, mathord, "μ", "\\mu", true);
	defineSymbol(math, main, mathord, "ν", "\\nu", true);
	defineSymbol(math, main, mathord, "ξ", "\\xi", true);
	defineSymbol(math, main, mathord, "ο", "\\omicron", true);
	defineSymbol(math, main, mathord, "π", "\\pi", true);
	defineSymbol(math, main, mathord, "ρ", "\\rho", true);
	defineSymbol(math, main, mathord, "σ", "\\sigma", true);
	defineSymbol(math, main, mathord, "τ", "\\tau", true);
	defineSymbol(math, main, mathord, "υ", "\\upsilon", true);
	defineSymbol(math, main, mathord, "ϕ", "\\phi", true);
	defineSymbol(math, main, mathord, "χ", "\\chi", true);
	defineSymbol(math, main, mathord, "ψ", "\\psi", true);
	defineSymbol(math, main, mathord, "ω", "\\omega", true);
	defineSymbol(math, main, mathord, "ε", "\\varepsilon", true);
	defineSymbol(math, main, mathord, "ϑ", "\\vartheta", true);
	defineSymbol(math, main, mathord, "ϖ", "\\varpi", true);
	defineSymbol(math, main, mathord, "ϱ", "\\varrho", true);
	defineSymbol(math, main, mathord, "ς", "\\varsigma", true);
	defineSymbol(math, main, mathord, "φ", "\\varphi", true);
	defineSymbol(math, main, bin, "∗", "*", true);
	defineSymbol(math, main, bin, "+", "+");
	defineSymbol(math, main, bin, "−", "-", true);
	defineSymbol(math, main, bin, "⋅", "\\cdot", true);
	defineSymbol(math, main, bin, "∘", "\\circ", true);
	defineSymbol(math, main, bin, "÷", "\\div", true);
	defineSymbol(math, main, bin, "±", "\\pm", true);
	defineSymbol(math, main, bin, "×", "\\times", true);
	defineSymbol(math, main, bin, "∩", "\\cap", true);
	defineSymbol(math, main, bin, "∪", "\\cup", true);
	defineSymbol(math, main, bin, "∖", "\\setminus", true);
	defineSymbol(math, main, bin, "∧", "\\land");
	defineSymbol(math, main, bin, "∨", "\\lor");
	defineSymbol(math, main, bin, "∧", "\\wedge", true);
	defineSymbol(math, main, bin, "∨", "\\vee", true);
	defineSymbol(math, main, textord, "√", "\\surd");
	defineSymbol(math, main, open, "⟨", "\\langle", true);
	defineSymbol(math, main, open, "∣", "\\lvert");
	defineSymbol(math, main, open, "∥", "\\lVert");
	defineSymbol(math, main, close, "?", "?");
	defineSymbol(math, main, close, "!", "!");
	defineSymbol(math, main, close, "⟩", "\\rangle", true);
	defineSymbol(math, main, close, "∣", "\\rvert");
	defineSymbol(math, main, close, "∥", "\\rVert");
	defineSymbol(math, main, rel, "=", "=");
	defineSymbol(math, main, rel, ":", ":");
	defineSymbol(math, main, rel, "≈", "\\approx", true);
	defineSymbol(math, main, rel, "≅", "\\cong", true);
	defineSymbol(math, main, rel, "≥", "\\ge");
	defineSymbol(math, main, rel, "≥", "\\geq", true);
	defineSymbol(math, main, rel, "←", "\\gets");
	defineSymbol(math, main, rel, ">", "\\gt", true);
	defineSymbol(math, main, rel, "∈", "\\in", true);
	defineSymbol(math, main, rel, "", "\\@not");
	defineSymbol(math, main, rel, "⊂", "\\subset", true);
	defineSymbol(math, main, rel, "⊃", "\\supset", true);
	defineSymbol(math, main, rel, "⊆", "\\subseteq", true);
	defineSymbol(math, main, rel, "⊇", "\\supseteq", true);
	defineSymbol(math, ams, rel, "⊈", "\\nsubseteq", true);
	defineSymbol(math, ams, rel, "⊉", "\\nsupseteq", true);
	defineSymbol(math, main, rel, "⊨", "\\models");
	defineSymbol(math, main, rel, "←", "\\leftarrow", true);
	defineSymbol(math, main, rel, "≤", "\\le");
	defineSymbol(math, main, rel, "≤", "\\leq", true);
	defineSymbol(math, main, rel, "<", "\\lt", true);
	defineSymbol(math, main, rel, "→", "\\rightarrow", true);
	defineSymbol(math, main, rel, "→", "\\to");
	defineSymbol(math, ams, rel, "≱", "\\ngeq", true);
	defineSymbol(math, ams, rel, "≰", "\\nleq", true);
	defineSymbol(math, main, spacing, "\xA0", "\\ ");
	defineSymbol(math, main, spacing, "\xA0", "\\space");
	defineSymbol(math, main, spacing, "\xA0", "\\nobreakspace");
	defineSymbol(text, main, spacing, "\xA0", "\\ ");
	defineSymbol(text, main, spacing, "\xA0", " ");
	defineSymbol(text, main, spacing, "\xA0", "\\space");
	defineSymbol(text, main, spacing, "\xA0", "\\nobreakspace");
	defineSymbol(math, main, spacing, null, "\\nobreak");
	defineSymbol(math, main, spacing, null, "\\allowbreak");
	defineSymbol(math, main, punct, ",", ",");
	defineSymbol(math, main, punct, ";", ";");
	defineSymbol(math, ams, bin, "⊼", "\\barwedge", true);
	defineSymbol(math, ams, bin, "⊻", "\\veebar", true);
	defineSymbol(math, main, bin, "⊙", "\\odot", true);
	defineSymbol(math, main, bin, "⊕", "\\oplus", true);
	defineSymbol(math, main, bin, "⊗", "\\otimes", true);
	defineSymbol(math, main, textord, "∂", "\\partial", true);
	defineSymbol(math, main, bin, "⊘", "\\oslash", true);
	defineSymbol(math, ams, bin, "⊚", "\\circledcirc", true);
	defineSymbol(math, ams, bin, "⊡", "\\boxdot", true);
	defineSymbol(math, main, bin, "△", "\\bigtriangleup");
	defineSymbol(math, main, bin, "▽", "\\bigtriangledown");
	defineSymbol(math, main, bin, "†", "\\dagger");
	defineSymbol(math, main, bin, "⋄", "\\diamond");
	defineSymbol(math, main, bin, "⋆", "\\star");
	defineSymbol(math, main, bin, "◃", "\\triangleleft");
	defineSymbol(math, main, bin, "▹", "\\triangleright");
	defineSymbol(math, main, open, "{", "\\{");
	defineSymbol(text, main, textord, "{", "\\{");
	defineSymbol(text, main, textord, "{", "\\textbraceleft");
	defineSymbol(math, main, close, "}", "\\}");
	defineSymbol(text, main, textord, "}", "\\}");
	defineSymbol(text, main, textord, "}", "\\textbraceright");
	defineSymbol(math, main, open, "{", "\\lbrace");
	defineSymbol(math, main, close, "}", "\\rbrace");
	defineSymbol(math, main, open, "[", "\\lbrack", true);
	defineSymbol(text, main, textord, "[", "\\lbrack", true);
	defineSymbol(math, main, close, "]", "\\rbrack", true);
	defineSymbol(text, main, textord, "]", "\\rbrack", true);
	defineSymbol(math, main, open, "(", "\\lparen", true);
	defineSymbol(math, main, close, ")", "\\rparen", true);
	defineSymbol(text, main, textord, "<", "\\textless", true);
	defineSymbol(text, main, textord, ">", "\\textgreater", true);
	defineSymbol(math, main, open, "⌊", "\\lfloor", true);
	defineSymbol(math, main, close, "⌋", "\\rfloor", true);
	defineSymbol(math, main, open, "⌈", "\\lceil", true);
	defineSymbol(math, main, close, "⌉", "\\rceil", true);
	defineSymbol(math, main, textord, "\\", "\\backslash");
	defineSymbol(math, main, textord, "∣", "|");
	defineSymbol(math, main, textord, "∣", "\\vert");
	defineSymbol(text, main, textord, "|", "\\textbar", true);
	defineSymbol(math, main, textord, "∥", "\\|");
	defineSymbol(math, main, textord, "∥", "\\Vert");
	defineSymbol(text, main, textord, "∥", "\\textbardbl");
	defineSymbol(text, main, textord, "~", "\\textasciitilde");
	defineSymbol(text, main, textord, "\\", "\\textbackslash");
	defineSymbol(text, main, textord, "^", "\\textasciicircum");
	defineSymbol(math, main, rel, "↑", "\\uparrow", true);
	defineSymbol(math, main, rel, "⇑", "\\Uparrow", true);
	defineSymbol(math, main, rel, "↓", "\\downarrow", true);
	defineSymbol(math, main, rel, "⇓", "\\Downarrow", true);
	defineSymbol(math, main, rel, "↕", "\\updownarrow", true);
	defineSymbol(math, main, rel, "⇕", "\\Updownarrow", true);
	defineSymbol(math, main, op, "∐", "\\coprod");
	defineSymbol(math, main, op, "⋁", "\\bigvee");
	defineSymbol(math, main, op, "⋀", "\\bigwedge");
	defineSymbol(math, main, op, "⨄", "\\biguplus");
	defineSymbol(math, main, op, "⋂", "\\bigcap");
	defineSymbol(math, main, op, "⋃", "\\bigcup");
	defineSymbol(math, main, op, "∫", "\\int");
	defineSymbol(math, main, op, "∫", "\\intop");
	defineSymbol(math, main, op, "∬", "\\iint");
	defineSymbol(math, main, op, "∭", "\\iiint");
	defineSymbol(math, main, op, "∏", "\\prod");
	defineSymbol(math, main, op, "∑", "\\sum");
	defineSymbol(math, main, op, "⨂", "\\bigotimes");
	defineSymbol(math, main, op, "⨁", "\\bigoplus");
	defineSymbol(math, main, op, "⨀", "\\bigodot");
	defineSymbol(math, main, op, "∮", "\\oint");
	defineSymbol(math, main, op, "∯", "\\oiint");
	defineSymbol(math, main, op, "∰", "\\oiiint");
	defineSymbol(math, main, op, "⨆", "\\bigsqcup");
	defineSymbol(math, main, op, "∫", "\\smallint");
	defineSymbol(text, main, inner, "…", "\\textellipsis");
	defineSymbol(math, main, inner, "…", "\\mathellipsis");
	defineSymbol(text, main, inner, "…", "\\ldots", true);
	defineSymbol(math, main, inner, "…", "\\ldots", true);
	defineSymbol(math, main, inner, "⋯", "\\@cdots", true);
	defineSymbol(math, main, inner, "⋱", "\\ddots", true);
	defineSymbol(math, main, textord, "⋮", "\\varvdots");
	defineSymbol(text, main, textord, "⋮", "\\varvdots");
	defineSymbol(math, main, accent, "ˊ", "\\acute");
	defineSymbol(math, main, accent, "ˋ", "\\grave");
	defineSymbol(math, main, accent, "¨", "\\ddot");
	defineSymbol(math, main, accent, "~", "\\tilde");
	defineSymbol(math, main, accent, "ˉ", "\\bar");
	defineSymbol(math, main, accent, "˘", "\\breve");
	defineSymbol(math, main, accent, "ˇ", "\\check");
	defineSymbol(math, main, accent, "^", "\\hat");
	defineSymbol(math, main, accent, "⃗", "\\vec");
	defineSymbol(math, main, accent, "˙", "\\dot");
	defineSymbol(math, main, accent, "˚", "\\mathring");
	defineSymbol(math, main, mathord, "", "\\@imath");
	defineSymbol(math, main, mathord, "", "\\@jmath");
	defineSymbol(math, main, textord, "ı", "ı");
	defineSymbol(math, main, textord, "ȷ", "ȷ");
	defineSymbol(text, main, textord, "ı", "\\i", true);
	defineSymbol(text, main, textord, "ȷ", "\\j", true);
	defineSymbol(text, main, textord, "ß", "\\ss", true);
	defineSymbol(text, main, textord, "æ", "\\ae", true);
	defineSymbol(text, main, textord, "œ", "\\oe", true);
	defineSymbol(text, main, textord, "ø", "\\o", true);
	defineSymbol(text, main, textord, "Æ", "\\AE", true);
	defineSymbol(text, main, textord, "Œ", "\\OE", true);
	defineSymbol(text, main, textord, "Ø", "\\O", true);
	defineSymbol(text, main, accent, "ˊ", "\\'");
	defineSymbol(text, main, accent, "ˋ", "\\`");
	defineSymbol(text, main, accent, "ˆ", "\\^");
	defineSymbol(text, main, accent, "˜", "\\~");
	defineSymbol(text, main, accent, "ˉ", "\\=");
	defineSymbol(text, main, accent, "˘", "\\u");
	defineSymbol(text, main, accent, "˙", "\\.");
	defineSymbol(text, main, accent, "¸", "\\c");
	defineSymbol(text, main, accent, "˚", "\\r");
	defineSymbol(text, main, accent, "ˇ", "\\v");
	defineSymbol(text, main, accent, "¨", "\\\"");
	defineSymbol(text, main, accent, "˝", "\\H");
	defineSymbol(text, main, accent, "◯", "\\textcircled");
	ligatures = {
		"--": true,
		"---": true,
		"``": true,
		"''": true
	};
	defineSymbol(text, main, textord, "–", "--", true);
	defineSymbol(text, main, textord, "–", "\\textendash");
	defineSymbol(text, main, textord, "—", "---", true);
	defineSymbol(text, main, textord, "—", "\\textemdash");
	defineSymbol(text, main, textord, "‘", "`", true);
	defineSymbol(text, main, textord, "‘", "\\textquoteleft");
	defineSymbol(text, main, textord, "’", "'", true);
	defineSymbol(text, main, textord, "’", "\\textquoteright");
	defineSymbol(text, main, textord, "“", "``", true);
	defineSymbol(text, main, textord, "“", "\\textquotedblleft");
	defineSymbol(text, main, textord, "”", "''", true);
	defineSymbol(text, main, textord, "”", "\\textquotedblright");
	defineSymbol(math, main, textord, "°", "\\degree", true);
	defineSymbol(text, main, textord, "°", "\\degree");
	defineSymbol(text, main, textord, "°", "\\textdegree", true);
	defineSymbol(math, main, textord, "£", "\\pounds");
	defineSymbol(math, main, textord, "£", "\\mathsterling", true);
	defineSymbol(text, main, textord, "£", "\\pounds");
	defineSymbol(text, main, textord, "£", "\\textsterling", true);
	defineSymbol(math, ams, textord, "✠", "\\maltese");
	defineSymbol(text, ams, textord, "✠", "\\maltese");
	mathTextSymbols = "0123456789/@.\"";
	for (i$1 = 0; i$1 < mathTextSymbols.length; i$1++) {
		ch = mathTextSymbols.charAt(i$1);
		defineSymbol(math, main, textord, ch, ch);
	}
	textSymbols = "0123456789!@*()-=+\";:?/.,";
	for (_i = 0; _i < textSymbols.length; _i++) {
		_ch = textSymbols.charAt(_i);
		defineSymbol(text, main, textord, _ch, _ch);
	}
	letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	for (_i2 = 0; _i2 < letters.length; _i2++) {
		_ch2 = letters.charAt(_i2);
		defineSymbol(math, main, mathord, _ch2, _ch2);
		defineSymbol(text, main, textord, _ch2, _ch2);
	}
	defineSymbol(math, ams, textord, "C", "ℂ");
	defineSymbol(text, ams, textord, "C", "ℂ");
	defineSymbol(math, ams, textord, "H", "ℍ");
	defineSymbol(text, ams, textord, "H", "ℍ");
	defineSymbol(math, ams, textord, "N", "ℕ");
	defineSymbol(text, ams, textord, "N", "ℕ");
	defineSymbol(math, ams, textord, "P", "ℙ");
	defineSymbol(text, ams, textord, "P", "ℙ");
	defineSymbol(math, ams, textord, "Q", "ℚ");
	defineSymbol(text, ams, textord, "Q", "ℚ");
	defineSymbol(math, ams, textord, "R", "ℝ");
	defineSymbol(text, ams, textord, "R", "ℝ");
	defineSymbol(math, ams, textord, "Z", "ℤ");
	defineSymbol(text, ams, textord, "Z", "ℤ");
	defineSymbol(math, main, mathord, "h", "ℎ");
	defineSymbol(text, main, mathord, "h", "ℎ");
	wideChar = "";
	for (_i3 = 0; _i3 < letters.length; _i3++) {
		_ch3 = letters.charAt(_i3);
		wideChar = String.fromCharCode(55349, 56320 + _i3);
		defineSymbol(math, main, mathord, _ch3, wideChar);
		defineSymbol(text, main, textord, _ch3, wideChar);
		wideChar = String.fromCharCode(55349, 56372 + _i3);
		defineSymbol(math, main, mathord, _ch3, wideChar);
		defineSymbol(text, main, textord, _ch3, wideChar);
		wideChar = String.fromCharCode(55349, 56424 + _i3);
		defineSymbol(math, main, mathord, _ch3, wideChar);
		defineSymbol(text, main, textord, _ch3, wideChar);
		wideChar = String.fromCharCode(55349, 56580 + _i3);
		defineSymbol(math, main, mathord, _ch3, wideChar);
		defineSymbol(text, main, textord, _ch3, wideChar);
		wideChar = String.fromCharCode(55349, 56684 + _i3);
		defineSymbol(math, main, mathord, _ch3, wideChar);
		defineSymbol(text, main, textord, _ch3, wideChar);
		wideChar = String.fromCharCode(55349, 56736 + _i3);
		defineSymbol(math, main, mathord, _ch3, wideChar);
		defineSymbol(text, main, textord, _ch3, wideChar);
		wideChar = String.fromCharCode(55349, 56788 + _i3);
		defineSymbol(math, main, mathord, _ch3, wideChar);
		defineSymbol(text, main, textord, _ch3, wideChar);
		wideChar = String.fromCharCode(55349, 56840 + _i3);
		defineSymbol(math, main, mathord, _ch3, wideChar);
		defineSymbol(text, main, textord, _ch3, wideChar);
		wideChar = String.fromCharCode(55349, 56944 + _i3);
		defineSymbol(math, main, mathord, _ch3, wideChar);
		defineSymbol(text, main, textord, _ch3, wideChar);
		if (_i3 < 26) {
			wideChar = String.fromCharCode(55349, 56632 + _i3);
			defineSymbol(math, main, mathord, _ch3, wideChar);
			defineSymbol(text, main, textord, _ch3, wideChar);
			wideChar = String.fromCharCode(55349, 56476 + _i3);
			defineSymbol(math, main, mathord, _ch3, wideChar);
			defineSymbol(text, main, textord, _ch3, wideChar);
		}
	}
	wideChar = String.fromCharCode(55349, 56668);
	defineSymbol(math, main, mathord, "k", wideChar);
	defineSymbol(text, main, textord, "k", wideChar);
	for (_i4 = 0; _i4 < 10; _i4++) {
		_ch4 = _i4.toString();
		wideChar = String.fromCharCode(55349, 57294 + _i4);
		defineSymbol(math, main, mathord, _ch4, wideChar);
		defineSymbol(text, main, textord, _ch4, wideChar);
		wideChar = String.fromCharCode(55349, 57314 + _i4);
		defineSymbol(math, main, mathord, _ch4, wideChar);
		defineSymbol(text, main, textord, _ch4, wideChar);
		wideChar = String.fromCharCode(55349, 57324 + _i4);
		defineSymbol(math, main, mathord, _ch4, wideChar);
		defineSymbol(text, main, textord, _ch4, wideChar);
		wideChar = String.fromCharCode(55349, 57334 + _i4);
		defineSymbol(math, main, mathord, _ch4, wideChar);
		defineSymbol(text, main, textord, _ch4, wideChar);
	}
	extraLatin = "ÐÞþ";
	for (_i5 = 0; _i5 < extraLatin.length; _i5++) {
		_ch5 = extraLatin.charAt(_i5);
		defineSymbol(math, main, mathord, _ch5, _ch5);
		defineSymbol(text, main, textord, _ch5, _ch5);
	}
	wideLatinLetterData = [
		[
			"mathbf",
			"textbf",
			"Main-Bold"
		],
		[
			"mathbf",
			"textbf",
			"Main-Bold"
		],
		[
			"mathnormal",
			"textit",
			"Math-Italic"
		],
		[
			"mathnormal",
			"textit",
			"Math-Italic"
		],
		[
			"boldsymbol",
			"boldsymbol",
			"Main-BoldItalic"
		],
		[
			"boldsymbol",
			"boldsymbol",
			"Main-BoldItalic"
		],
		[
			"mathscr",
			"textscr",
			"Script-Regular"
		],
		[
			"",
			"",
			""
		],
		[
			"",
			"",
			""
		],
		[
			"",
			"",
			""
		],
		[
			"mathfrak",
			"textfrak",
			"Fraktur-Regular"
		],
		[
			"mathfrak",
			"textfrak",
			"Fraktur-Regular"
		],
		[
			"mathbb",
			"textbb",
			"AMS-Regular"
		],
		[
			"mathbb",
			"textbb",
			"AMS-Regular"
		],
		[
			"mathboldfrak",
			"textboldfrak",
			"Fraktur-Regular"
		],
		[
			"mathboldfrak",
			"textboldfrak",
			"Fraktur-Regular"
		],
		[
			"mathsf",
			"textsf",
			"SansSerif-Regular"
		],
		[
			"mathsf",
			"textsf",
			"SansSerif-Regular"
		],
		[
			"mathboldsf",
			"textboldsf",
			"SansSerif-Bold"
		],
		[
			"mathboldsf",
			"textboldsf",
			"SansSerif-Bold"
		],
		[
			"mathitsf",
			"textitsf",
			"SansSerif-Italic"
		],
		[
			"mathitsf",
			"textitsf",
			"SansSerif-Italic"
		],
		[
			"",
			"",
			""
		],
		[
			"",
			"",
			""
		],
		[
			"mathtt",
			"texttt",
			"Typewriter-Regular"
		],
		[
			"mathtt",
			"texttt",
			"Typewriter-Regular"
		]
	];
	wideNumeralData = [
		[
			"mathbf",
			"textbf",
			"Main-Bold"
		],
		[
			"",
			"",
			""
		],
		[
			"mathsf",
			"textsf",
			"SansSerif-Regular"
		],
		[
			"mathboldsf",
			"textboldsf",
			"SansSerif-Bold"
		],
		[
			"mathtt",
			"texttt",
			"Typewriter-Regular"
		]
	];
	wideCharacterFont = function wideCharacterFont$1(wideChar$1, mode) {
		var H$1 = wideChar$1.charCodeAt(0);
		var L$2 = wideChar$1.charCodeAt(1);
		var codePoint = (H$1 - 55296) * 1024 + (L$2 - 56320) + 65536;
		var j$2 = mode === "math" ? 0 : 1;
		if (119808 <= codePoint && codePoint < 120484) {
			var i$7 = Math.floor((codePoint - 119808) / 26);
			return [wideLatinLetterData[i$7][2], wideLatinLetterData[i$7][j$2]];
		} else if (120782 <= codePoint && codePoint <= 120831) {
			var _i$1 = Math.floor((codePoint - 120782) / 10);
			return [wideNumeralData[_i$1][2], wideNumeralData[_i$1][j$2]];
		} else if (codePoint === 120485 || codePoint === 120486) {
			return [wideLatinLetterData[0][2], wideLatinLetterData[0][j$2]];
		} else if (120486 < codePoint && codePoint < 120782) {
			return ["", ""];
		} else {
			throw new ParseError("Unsupported character: " + wideChar$1);
		}
	};
	lookupSymbol = function lookupSymbol$1(value, fontName, mode) {
		if (symbols[mode][value] && symbols[mode][value].replace) {
			value = symbols[mode][value].replace;
		}
		return {
			value,
			metrics: getCharacterMetrics(value, fontName, mode)
		};
	};
	makeSymbol = function makeSymbol$1(value, fontName, mode, options, classes) {
		var lookup = lookupSymbol(value, fontName, mode);
		var metrics = lookup.metrics;
		value = lookup.value;
		var symbolNode;
		if (metrics) {
			var italic = metrics.italic;
			if (mode === "text" || options && options.font === "mathit") {
				italic = 0;
			}
			symbolNode = new SymbolNode(value, metrics.height, metrics.depth, italic, metrics.skew, metrics.width, classes);
		} else {
			typeof console !== "undefined" && console.warn("No character metrics " + ("for '" + value + "' in style '" + fontName + "' and mode '" + mode + "'"));
			symbolNode = new SymbolNode(value, 0, 0, 0, 0, 0, classes);
		}
		if (options) {
			symbolNode.maxFontSize = options.sizeMultiplier;
			if (options.style.isTight()) {
				symbolNode.classes.push("mtight");
			}
			var color = options.getColor();
			if (color) {
				symbolNode.style.color = color;
			}
		}
		return symbolNode;
	};
	mathsym = function mathsym$1(value, mode, options, classes) {
		if (classes === void 0) {
			classes = [];
		}
		if (options.font === "boldsymbol" && lookupSymbol(value, "Main-Bold", mode).metrics) {
			return makeSymbol(value, "Main-Bold", mode, options, classes.concat(["mathbf"]));
		} else if (value === "\\" || symbols[mode][value].font === "main") {
			return makeSymbol(value, "Main-Regular", mode, options, classes);
		} else {
			return makeSymbol(value, "AMS-Regular", mode, options, classes.concat(["amsrm"]));
		}
	};
	boldsymbol = function boldsymbol$1(value, mode, options, classes, type) {
		if (type !== "textord" && lookupSymbol(value, "Math-BoldItalic", mode).metrics) {
			return {
				fontName: "Math-BoldItalic",
				fontClass: "boldsymbol"
			};
		} else {
			return {
				fontName: "Main-Bold",
				fontClass: "mathbf"
			};
		}
	};
	makeOrd = function makeOrd$1(group, options, type) {
		var mode = group.mode;
		var text$2 = group.text;
		var classes = ["mord"];
		var isFont = mode === "math" || mode === "text" && options.font;
		var fontOrFamily = isFont ? options.font : options.fontFamily;
		var wideFontName = "";
		var wideFontClass = "";
		if (text$2.charCodeAt(0) === 55349) {
			[wideFontName, wideFontClass] = wideCharacterFont(text$2, mode);
		}
		if (wideFontName.length > 0) {
			return makeSymbol(text$2, wideFontName, mode, options, classes.concat(wideFontClass));
		} else if (fontOrFamily) {
			var fontName;
			var fontClasses;
			if (fontOrFamily === "boldsymbol") {
				var fontData = boldsymbol(text$2, mode, options, classes, type);
				fontName = fontData.fontName;
				fontClasses = [fontData.fontClass];
			} else if (isFont) {
				fontName = fontMap[fontOrFamily].fontName;
				fontClasses = [fontOrFamily];
			} else {
				fontName = retrieveTextFontName(fontOrFamily, options.fontWeight, options.fontShape);
				fontClasses = [
					fontOrFamily,
					options.fontWeight,
					options.fontShape
				];
			}
			if (lookupSymbol(text$2, fontName, mode).metrics) {
				return makeSymbol(text$2, fontName, mode, options, classes.concat(fontClasses));
			} else if (ligatures.hasOwnProperty(text$2) && fontName.slice(0, 10) === "Typewriter") {
				var parts = [];
				for (var i$7 = 0; i$7 < text$2.length; i$7++) {
					parts.push(makeSymbol(text$2[i$7], fontName, mode, options, classes.concat(fontClasses)));
				}
				return makeFragment(parts);
			}
		}
		if (type === "mathord") {
			return makeSymbol(text$2, "Math-Italic", mode, options, classes.concat(["mathnormal"]));
		} else if (type === "textord") {
			var font = symbols[mode][text$2] && symbols[mode][text$2].font;
			if (font === "ams") {
				var _fontName = retrieveTextFontName("amsrm", options.fontWeight, options.fontShape);
				return makeSymbol(text$2, _fontName, mode, options, classes.concat("amsrm", options.fontWeight, options.fontShape));
			} else if (font === "main" || !font) {
				var _fontName2 = retrieveTextFontName("textrm", options.fontWeight, options.fontShape);
				return makeSymbol(text$2, _fontName2, mode, options, classes.concat(options.fontWeight, options.fontShape));
			} else {
				var _fontName3 = retrieveTextFontName(font, options.fontWeight, options.fontShape);
				return makeSymbol(text$2, _fontName3, mode, options, classes.concat(_fontName3, options.fontWeight, options.fontShape));
			}
		} else {
			throw new Error("unexpected type: " + type + " in makeOrd");
		}
	};
	canCombine = (prev, next) => {
		if (createClass(prev.classes) !== createClass(next.classes) || prev.skew !== next.skew || prev.maxFontSize !== next.maxFontSize) {
			return false;
		}
		if (prev.classes.length === 1) {
			var cls = prev.classes[0];
			if (cls === "mbin" || cls === "mord") {
				return false;
			}
		}
		for (var style in prev.style) {
			if (prev.style.hasOwnProperty(style) && prev.style[style] !== next.style[style]) {
				return false;
			}
		}
		for (var _style in next.style) {
			if (next.style.hasOwnProperty(_style) && prev.style[_style] !== next.style[_style]) {
				return false;
			}
		}
		return true;
	};
	tryCombineChars = (chars) => {
		for (var i$7 = 0; i$7 < chars.length - 1; i$7++) {
			var prev = chars[i$7];
			var next = chars[i$7 + 1];
			if (prev instanceof SymbolNode && next instanceof SymbolNode && canCombine(prev, next)) {
				prev.text += next.text;
				prev.height = Math.max(prev.height, next.height);
				prev.depth = Math.max(prev.depth, next.depth);
				prev.italic = next.italic;
				chars.splice(i$7 + 1, 1);
				i$7--;
			}
		}
		return chars;
	};
	sizeElementFromChildren = function sizeElementFromChildren$1(elem) {
		var height = 0;
		var depth = 0;
		var maxFontSize = 0;
		for (var i$7 = 0; i$7 < elem.children.length; i$7++) {
			var child = elem.children[i$7];
			if (child.height > height) {
				height = child.height;
			}
			if (child.depth > depth) {
				depth = child.depth;
			}
			if (child.maxFontSize > maxFontSize) {
				maxFontSize = child.maxFontSize;
			}
		}
		elem.height = height;
		elem.depth = depth;
		elem.maxFontSize = maxFontSize;
	};
	makeSpan$2 = function makeSpan$3(classes, children, options, style) {
		var span = new Span(classes, children, options, style);
		sizeElementFromChildren(span);
		return span;
	};
	makeSvgSpan = (classes, children, options, style) => new Span(classes, children, options, style);
	makeLineSpan = function makeLineSpan$1(className, options, thickness) {
		var line = makeSpan$2([className], [], options);
		line.height = Math.max(thickness || options.fontMetrics().defaultRuleThickness, options.minRuleThickness);
		line.style.borderBottomWidth = makeEm(line.height);
		line.maxFontSize = 1;
		return line;
	};
	makeAnchor = function makeAnchor$1(href, classes, children, options) {
		var anchor = new Anchor(href, classes, children, options);
		sizeElementFromChildren(anchor);
		return anchor;
	};
	makeFragment = function makeFragment$1(children) {
		var fragment = new DocumentFragment$1(children);
		sizeElementFromChildren(fragment);
		return fragment;
	};
	wrapFragment = function wrapFragment$1(group, options) {
		if (group instanceof DocumentFragment$1) {
			return makeSpan$2([], [group], options);
		}
		return group;
	};
	getVListChildrenAndDepth = function getVListChildrenAndDepth$1(params) {
		if (params.positionType === "individualShift") {
			var oldChildren = params.children;
			var children = [oldChildren[0]];
			var _depth = -oldChildren[0].shift - oldChildren[0].elem.depth;
			var currPos = _depth;
			for (var i$7 = 1; i$7 < oldChildren.length; i$7++) {
				var diff$1 = -oldChildren[i$7].shift - currPos - oldChildren[i$7].elem.depth;
				var size = diff$1 - (oldChildren[i$7 - 1].elem.height + oldChildren[i$7 - 1].elem.depth);
				currPos = currPos + diff$1;
				children.push({
					type: "kern",
					size
				});
				children.push(oldChildren[i$7]);
			}
			return {
				children,
				depth: _depth
			};
		}
		var depth;
		if (params.positionType === "top") {
			var bottom = params.positionData;
			for (var _i$1 = 0; _i$1 < params.children.length; _i$1++) {
				var child = params.children[_i$1];
				bottom -= child.type === "kern" ? child.size : child.elem.height + child.elem.depth;
			}
			depth = bottom;
		} else if (params.positionType === "bottom") {
			depth = -params.positionData;
		} else {
			var firstChild = params.children[0];
			if (firstChild.type !== "elem") {
				throw new Error("First child must have type \"elem\".");
			}
			if (params.positionType === "shift") {
				depth = -firstChild.elem.depth - params.positionData;
			} else if (params.positionType === "firstBaseline") {
				depth = -firstChild.elem.depth;
			} else {
				throw new Error("Invalid positionType " + params.positionType + ".");
			}
		}
		return {
			children: params.children,
			depth
		};
	};
	makeVList = function makeVList$1(params, options) {
		var { children, depth } = getVListChildrenAndDepth(params);
		var pstrutSize = 0;
		for (var i$7 = 0; i$7 < children.length; i$7++) {
			var child = children[i$7];
			if (child.type === "elem") {
				var elem = child.elem;
				pstrutSize = Math.max(pstrutSize, elem.maxFontSize, elem.height);
			}
		}
		pstrutSize += 2;
		var pstrut = makeSpan$2(["pstrut"], []);
		pstrut.style.height = makeEm(pstrutSize);
		var realChildren = [];
		var minPos = depth;
		var maxPos = depth;
		var currPos = depth;
		for (var _i2$1 = 0; _i2$1 < children.length; _i2$1++) {
			var _child = children[_i2$1];
			if (_child.type === "kern") {
				currPos += _child.size;
			} else {
				var _elem = _child.elem;
				var classes = _child.wrapperClasses || [];
				var style = _child.wrapperStyle || {};
				var childWrap = makeSpan$2(classes, [pstrut, _elem], undefined, style);
				childWrap.style.top = makeEm(-pstrutSize - currPos - _elem.depth);
				if (_child.marginLeft) {
					childWrap.style.marginLeft = _child.marginLeft;
				}
				if (_child.marginRight) {
					childWrap.style.marginRight = _child.marginRight;
				}
				realChildren.push(childWrap);
				currPos += _elem.height + _elem.depth;
			}
			minPos = Math.min(minPos, currPos);
			maxPos = Math.max(maxPos, currPos);
		}
		var vlist = makeSpan$2(["vlist"], realChildren);
		vlist.style.height = makeEm(maxPos);
		var rows;
		if (minPos < 0) {
			var emptySpan = makeSpan$2([], []);
			var depthStrut = makeSpan$2(["vlist"], [emptySpan]);
			depthStrut.style.height = makeEm(-minPos);
			var topStrut = makeSpan$2(["vlist-s"], [new SymbolNode("​")]);
			rows = [makeSpan$2(["vlist-r"], [vlist, topStrut]), makeSpan$2(["vlist-r"], [depthStrut])];
		} else {
			rows = [makeSpan$2(["vlist-r"], [vlist])];
		}
		var vtable = makeSpan$2(["vlist-t"], rows);
		if (rows.length === 2) {
			vtable.classes.push("vlist-t2");
		}
		vtable.height = maxPos;
		vtable.depth = -minPos;
		return vtable;
	};
	makeGlue = (measurement, options) => {
		var rule = makeSpan$2(["mspace"], [], options);
		var size = calculateSize(measurement, options);
		rule.style.marginRight = makeEm(size);
		return rule;
	};
	retrieveTextFontName = function retrieveTextFontName$1(fontFamily, fontWeight, fontShape) {
		var baseFontName = "";
		switch (fontFamily) {
			case "amsrm":
				baseFontName = "AMS";
				break;
			case "textrm":
				baseFontName = "Main";
				break;
			case "textsf":
				baseFontName = "SansSerif";
				break;
			case "texttt":
				baseFontName = "Typewriter";
				break;
			default: baseFontName = fontFamily;
		}
		var fontStylesName;
		if (fontWeight === "textbf" && fontShape === "textit") {
			fontStylesName = "BoldItalic";
		} else if (fontWeight === "textbf") {
			fontStylesName = "Bold";
		} else if (fontWeight === "textit") {
			fontStylesName = "Italic";
		} else {
			fontStylesName = "Regular";
		}
		return baseFontName + "-" + fontStylesName;
	};
	fontMap = {
		"mathbf": {
			variant: "bold",
			fontName: "Main-Bold"
		},
		"mathrm": {
			variant: "normal",
			fontName: "Main-Regular"
		},
		"textit": {
			variant: "italic",
			fontName: "Main-Italic"
		},
		"mathit": {
			variant: "italic",
			fontName: "Main-Italic"
		},
		"mathnormal": {
			variant: "italic",
			fontName: "Math-Italic"
		},
		"mathsfit": {
			variant: "sans-serif-italic",
			fontName: "SansSerif-Italic"
		},
		"mathbb": {
			variant: "double-struck",
			fontName: "AMS-Regular"
		},
		"mathcal": {
			variant: "script",
			fontName: "Caligraphic-Regular"
		},
		"mathfrak": {
			variant: "fraktur",
			fontName: "Fraktur-Regular"
		},
		"mathscr": {
			variant: "script",
			fontName: "Script-Regular"
		},
		"mathsf": {
			variant: "sans-serif",
			fontName: "SansSerif-Regular"
		},
		"mathtt": {
			variant: "monospace",
			fontName: "Typewriter-Regular"
		}
	};
	svgData = {
		vec: [
			"vec",
			.471,
			.714
		],
		oiintSize1: [
			"oiintSize1",
			.957,
			.499
		],
		oiintSize2: [
			"oiintSize2",
			1.472,
			.659
		],
		oiiintSize1: [
			"oiiintSize1",
			1.304,
			.499
		],
		oiiintSize2: [
			"oiiintSize2",
			1.98,
			.659
		]
	};
	staticSvg = function staticSvg$1(value, options) {
		var [pathName, width, height] = svgData[value];
		var path$1 = new PathNode(pathName);
		var svgNode = new SvgNode([path$1], {
			"width": makeEm(width),
			"height": makeEm(height),
			"style": "width:" + makeEm(width),
			"viewBox": "0 0 " + 1e3 * width + " " + 1e3 * height,
			"preserveAspectRatio": "xMinYMin"
		});
		var span = makeSvgSpan(["overlay"], [svgNode], options);
		span.height = height;
		span.style.height = makeEm(height);
		span.style.width = makeEm(width);
		return span;
	};
	buildCommon = {
		fontMap,
		makeSymbol,
		mathsym,
		makeSpan: makeSpan$2,
		makeSvgSpan,
		makeLineSpan,
		makeAnchor,
		makeFragment,
		wrapFragment,
		makeVList,
		makeOrd,
		makeGlue,
		staticSvg,
		svgData,
		tryCombineChars
	};
	thinspace = {
		number: 3,
		unit: "mu"
	};
	mediumspace = {
		number: 4,
		unit: "mu"
	};
	thickspace = {
		number: 5,
		unit: "mu"
	};
	spacings = {
		mord: {
			mop: thinspace,
			mbin: mediumspace,
			mrel: thickspace,
			minner: thinspace
		},
		mop: {
			mord: thinspace,
			mop: thinspace,
			mrel: thickspace,
			minner: thinspace
		},
		mbin: {
			mord: mediumspace,
			mop: mediumspace,
			mopen: mediumspace,
			minner: mediumspace
		},
		mrel: {
			mord: thickspace,
			mop: thickspace,
			mopen: thickspace,
			minner: thickspace
		},
		mopen: {},
		mclose: {
			mop: thinspace,
			mbin: mediumspace,
			mrel: thickspace,
			minner: thinspace
		},
		mpunct: {
			mord: thinspace,
			mop: thinspace,
			mrel: thickspace,
			mopen: thinspace,
			mclose: thinspace,
			mpunct: thinspace,
			minner: thinspace
		},
		minner: {
			mord: thinspace,
			mop: thinspace,
			mbin: mediumspace,
			mrel: thickspace,
			mopen: thinspace,
			mpunct: thinspace,
			minner: thinspace
		}
	};
	tightSpacings = {
		mord: { mop: thinspace },
		mop: {
			mord: thinspace,
			mop: thinspace
		},
		mbin: {},
		mrel: {},
		mopen: {},
		mclose: { mop: thinspace },
		mpunct: {},
		minner: { mop: thinspace }
	};
	_functions = {};
	_htmlGroupBuilders = {};
	_mathmlGroupBuilders = {};
	normalizeArgument = function normalizeArgument$1(arg) {
		return arg.type === "ordgroup" && arg.body.length === 1 ? arg.body[0] : arg;
	};
	ordargument = function ordargument$1(arg) {
		return arg.type === "ordgroup" ? arg.body : [arg];
	};
	makeSpan$1 = buildCommon.makeSpan;
	binLeftCanceller = [
		"leftmost",
		"mbin",
		"mopen",
		"mrel",
		"mop",
		"mpunct"
	];
	binRightCanceller = [
		"rightmost",
		"mrel",
		"mclose",
		"mpunct"
	];
	styleMap$1 = {
		"display": Style$1.DISPLAY,
		"text": Style$1.TEXT,
		"script": Style$1.SCRIPT,
		"scriptscript": Style$1.SCRIPTSCRIPT
	};
	DomEnum = {
		mord: "mord",
		mop: "mop",
		mbin: "mbin",
		mrel: "mrel",
		mopen: "mopen",
		mclose: "mclose",
		mpunct: "mpunct",
		minner: "minner"
	};
	buildExpression$1 = function buildExpression$2(expression, options, isRealGroup, surrounding) {
		if (surrounding === void 0) {
			surrounding = [null, null];
		}
		var groups = [];
		for (var i$7 = 0; i$7 < expression.length; i$7++) {
			var output = buildGroup$1(expression[i$7], options);
			if (output instanceof DocumentFragment$1) {
				var children = output.children;
				groups.push(...children);
			} else {
				groups.push(output);
			}
		}
		buildCommon.tryCombineChars(groups);
		if (!isRealGroup) {
			return groups;
		}
		var glueOptions = options;
		if (expression.length === 1) {
			var node = expression[0];
			if (node.type === "sizing") {
				glueOptions = options.havingSize(node.size);
			} else if (node.type === "styling") {
				glueOptions = options.havingStyle(styleMap$1[node.style]);
			}
		}
		var dummyPrev = makeSpan$1([surrounding[0] || "leftmost"], [], options);
		var dummyNext = makeSpan$1([surrounding[1] || "rightmost"], [], options);
		var isRoot = isRealGroup === "root";
		traverseNonSpaceNodes(groups, (node$1, prev) => {
			var prevType = prev.classes[0];
			var type = node$1.classes[0];
			if (prevType === "mbin" && binRightCanceller.includes(type)) {
				prev.classes[0] = "mord";
			} else if (type === "mbin" && binLeftCanceller.includes(prevType)) {
				node$1.classes[0] = "mord";
			}
		}, { node: dummyPrev }, dummyNext, isRoot);
		traverseNonSpaceNodes(groups, (node$1, prev) => {
			var prevType = getTypeOfDomTree(prev);
			var type = getTypeOfDomTree(node$1);
			var space = prevType && type ? node$1.hasClass("mtight") ? tightSpacings[prevType][type] : spacings[prevType][type] : null;
			if (space) {
				return buildCommon.makeGlue(space, glueOptions);
			}
		}, { node: dummyPrev }, dummyNext, isRoot);
		return groups;
	};
	traverseNonSpaceNodes = function traverseNonSpaceNodes$1(nodes, callback, prev, next, isRoot) {
		if (next) {
			nodes.push(next);
		}
		var i$7 = 0;
		for (; i$7 < nodes.length; i$7++) {
			var node = nodes[i$7];
			var partialGroup = checkPartialGroup(node);
			if (partialGroup) {
				traverseNonSpaceNodes$1(partialGroup.children, callback, prev, null, isRoot);
				continue;
			}
			var nonspace = !node.hasClass("mspace");
			if (nonspace) {
				var result = callback(node, prev.node);
				if (result) {
					if (prev.insertAfter) {
						prev.insertAfter(result);
					} else {
						nodes.unshift(result);
						i$7++;
					}
				}
			}
			if (nonspace) {
				prev.node = node;
			} else if (isRoot && node.hasClass("newline")) {
				prev.node = makeSpan$1(["leftmost"]);
			}
			prev.insertAfter = ((index) => (n$9) => {
				nodes.splice(index + 1, 0, n$9);
				i$7++;
			})(i$7);
		}
		if (next) {
			nodes.pop();
		}
	};
	checkPartialGroup = function checkPartialGroup$1(node) {
		if (node instanceof DocumentFragment$1 || node instanceof Anchor || node instanceof Span && node.hasClass("enclosing")) {
			return node;
		}
		return null;
	};
	getOutermostNode = function getOutermostNode$1(node, side) {
		var partialGroup = checkPartialGroup(node);
		if (partialGroup) {
			var children = partialGroup.children;
			if (children.length) {
				if (side === "right") {
					return getOutermostNode$1(children[children.length - 1], "right");
				} else if (side === "left") {
					return getOutermostNode$1(children[0], "left");
				}
			}
		}
		return node;
	};
	getTypeOfDomTree = function getTypeOfDomTree$1(node, side) {
		if (!node) {
			return null;
		}
		if (side) {
			node = getOutermostNode(node, side);
		}
		return DomEnum[node.classes[0]] || null;
	};
	makeNullDelimiter = function makeNullDelimiter$1(options, classes) {
		var moreClasses = ["nulldelimiter"].concat(options.baseSizingClasses());
		return makeSpan$1(classes.concat(moreClasses));
	};
	buildGroup$1 = function buildGroup$2(group, options, baseOptions) {
		if (!group) {
			return makeSpan$1();
		}
		if (_htmlGroupBuilders[group.type]) {
			var groupNode = _htmlGroupBuilders[group.type](group, options);
			if (baseOptions && options.size !== baseOptions.size) {
				groupNode = makeSpan$1(options.sizingClasses(baseOptions), [groupNode], options);
				var multiplier = options.sizeMultiplier / baseOptions.sizeMultiplier;
				groupNode.height *= multiplier;
				groupNode.depth *= multiplier;
			}
			return groupNode;
		} else {
			throw new ParseError("Got group of unknown type: '" + group.type + "'");
		}
	};
	MathNode = class {
		constructor(type, children, classes) {
			this.type = void 0;
			this.attributes = void 0;
			this.children = void 0;
			this.classes = void 0;
			this.type = type;
			this.attributes = {};
			this.children = children || [];
			this.classes = classes || [];
		}
		/**
		* Sets an attribute on a MathML node. MathML depends on attributes to convey a
		* semantic content, so this is used heavily.
		*/
		setAttribute(name, value) {
			this.attributes[name] = value;
		}
		/**
		* Gets an attribute on a MathML node.
		*/
		getAttribute(name) {
			return this.attributes[name];
		}
		/**
		* Converts the math node into a MathML-namespaced DOM element.
		*/
		toNode() {
			var node = document.createElementNS("http://www.w3.org/1998/Math/MathML", this.type);
			for (var attr in this.attributes) {
				if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {
					node.setAttribute(attr, this.attributes[attr]);
				}
			}
			if (this.classes.length > 0) {
				node.className = createClass(this.classes);
			}
			for (var i$7 = 0; i$7 < this.children.length; i$7++) {
				if (this.children[i$7] instanceof TextNode && this.children[i$7 + 1] instanceof TextNode) {
					var text$2 = this.children[i$7].toText() + this.children[++i$7].toText();
					while (this.children[i$7 + 1] instanceof TextNode) {
						text$2 += this.children[++i$7].toText();
					}
					node.appendChild(new TextNode(text$2).toNode());
				} else {
					node.appendChild(this.children[i$7].toNode());
				}
			}
			return node;
		}
		/**
		* Converts the math node into an HTML markup string.
		*/
		toMarkup() {
			var markup = "<" + this.type;
			for (var attr in this.attributes) {
				if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {
					markup += " " + attr + "=\"";
					markup += utils.escape(this.attributes[attr]);
					markup += "\"";
				}
			}
			if (this.classes.length > 0) {
				markup += " class =\"" + utils.escape(createClass(this.classes)) + "\"";
			}
			markup += ">";
			for (var i$7 = 0; i$7 < this.children.length; i$7++) {
				markup += this.children[i$7].toMarkup();
			}
			markup += "</" + this.type + ">";
			return markup;
		}
		/**
		* Converts the math node into a string, similar to innerText, but escaped.
		*/
		toText() {
			return this.children.map((child) => child.toText()).join("");
		}
	};
	TextNode = class {
		constructor(text$2) {
			this.text = void 0;
			this.text = text$2;
		}
		/**
		* Converts the text node into a DOM text node.
		*/
		toNode() {
			return document.createTextNode(this.text);
		}
		/**
		* Converts the text node into escaped HTML markup
		* (representing the text itself).
		*/
		toMarkup() {
			return utils.escape(this.toText());
		}
		/**
		* Converts the text node into a string
		* (representing the text itself).
		*/
		toText() {
			return this.text;
		}
	};
	SpaceNode = class {
		/**
		* Create a Space node with width given in CSS ems.
		*/
		constructor(width) {
			this.width = void 0;
			this.character = void 0;
			this.width = width;
			if (width >= .05555 && width <= .05556) {
				this.character = " ";
			} else if (width >= .1666 && width <= .1667) {
				this.character = " ";
			} else if (width >= .2222 && width <= .2223) {
				this.character = " ";
			} else if (width >= .2777 && width <= .2778) {
				this.character = "  ";
			} else if (width >= -.05556 && width <= -.05555) {
				this.character = " ⁣";
			} else if (width >= -.1667 && width <= -.1666) {
				this.character = " ⁣";
			} else if (width >= -.2223 && width <= -.2222) {
				this.character = " ⁣";
			} else if (width >= -.2778 && width <= -.2777) {
				this.character = " ⁣";
			} else {
				this.character = null;
			}
		}
		/**
		* Converts the math node into a MathML-namespaced DOM element.
		*/
		toNode() {
			if (this.character) {
				return document.createTextNode(this.character);
			} else {
				var node = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mspace");
				node.setAttribute("width", makeEm(this.width));
				return node;
			}
		}
		/**
		* Converts the math node into an HTML markup string.
		*/
		toMarkup() {
			if (this.character) {
				return "<mtext>" + this.character + "</mtext>";
			} else {
				return "<mspace width=\"" + makeEm(this.width) + "\"/>";
			}
		}
		/**
		* Converts the math node into a string, similar to innerText.
		*/
		toText() {
			if (this.character) {
				return this.character;
			} else {
				return " ";
			}
		}
	};
	mathMLTree = {
		MathNode,
		TextNode,
		SpaceNode,
		newDocumentFragment
	};
	makeText = function makeText$1(text$2, mode, options) {
		if (symbols[mode][text$2] && symbols[mode][text$2].replace && text$2.charCodeAt(0) !== 55349 && !(ligatures.hasOwnProperty(text$2) && options && (options.fontFamily && options.fontFamily.slice(4, 6) === "tt" || options.font && options.font.slice(4, 6) === "tt"))) {
			text$2 = symbols[mode][text$2].replace;
		}
		return new mathMLTree.TextNode(text$2);
	};
	makeRow = function makeRow$1(body) {
		if (body.length === 1) {
			return body[0];
		} else {
			return new mathMLTree.MathNode("mrow", body);
		}
	};
	getVariant = function getVariant$1(group, options) {
		if (options.fontFamily === "texttt") {
			return "monospace";
		} else if (options.fontFamily === "textsf") {
			if (options.fontShape === "textit" && options.fontWeight === "textbf") {
				return "sans-serif-bold-italic";
			} else if (options.fontShape === "textit") {
				return "sans-serif-italic";
			} else if (options.fontWeight === "textbf") {
				return "bold-sans-serif";
			} else {
				return "sans-serif";
			}
		} else if (options.fontShape === "textit" && options.fontWeight === "textbf") {
			return "bold-italic";
		} else if (options.fontShape === "textit") {
			return "italic";
		} else if (options.fontWeight === "textbf") {
			return "bold";
		}
		var font = options.font;
		if (!font || font === "mathnormal") {
			return null;
		}
		var mode = group.mode;
		if (font === "mathit") {
			return "italic";
		} else if (font === "boldsymbol") {
			return group.type === "textord" ? "bold" : "bold-italic";
		} else if (font === "mathbf") {
			return "bold";
		} else if (font === "mathbb") {
			return "double-struck";
		} else if (font === "mathsfit") {
			return "sans-serif-italic";
		} else if (font === "mathfrak") {
			return "fraktur";
		} else if (font === "mathscr" || font === "mathcal") {
			return "script";
		} else if (font === "mathsf") {
			return "sans-serif";
		} else if (font === "mathtt") {
			return "monospace";
		}
		var text$2 = group.text;
		if (["\\imath", "\\jmath"].includes(text$2)) {
			return null;
		}
		if (symbols[mode][text$2] && symbols[mode][text$2].replace) {
			text$2 = symbols[mode][text$2].replace;
		}
		var fontName = buildCommon.fontMap[font].fontName;
		if (getCharacterMetrics(text$2, fontName, mode)) {
			return buildCommon.fontMap[font].variant;
		}
		return null;
	};
	buildExpression = function buildExpression$2(expression, options, isOrdgroup) {
		if (expression.length === 1) {
			var group = buildGroup(expression[0], options);
			if (isOrdgroup && group instanceof MathNode && group.type === "mo") {
				group.setAttribute("lspace", "0em");
				group.setAttribute("rspace", "0em");
			}
			return [group];
		}
		var groups = [];
		var lastGroup;
		for (var i$7 = 0; i$7 < expression.length; i$7++) {
			var _group = buildGroup(expression[i$7], options);
			if (_group instanceof MathNode && lastGroup instanceof MathNode) {
				if (_group.type === "mtext" && lastGroup.type === "mtext" && _group.getAttribute("mathvariant") === lastGroup.getAttribute("mathvariant")) {
					lastGroup.children.push(..._group.children);
					continue;
				} else if (_group.type === "mn" && lastGroup.type === "mn") {
					lastGroup.children.push(..._group.children);
					continue;
				} else if (isNumberPunctuation(_group) && lastGroup.type === "mn") {
					lastGroup.children.push(..._group.children);
					continue;
				} else if (_group.type === "mn" && isNumberPunctuation(lastGroup)) {
					_group.children = [...lastGroup.children, ..._group.children];
					groups.pop();
				} else if ((_group.type === "msup" || _group.type === "msub") && _group.children.length >= 1 && (lastGroup.type === "mn" || isNumberPunctuation(lastGroup))) {
					var base = _group.children[0];
					if (base instanceof MathNode && base.type === "mn") {
						base.children = [...lastGroup.children, ...base.children];
						groups.pop();
					}
				} else if (lastGroup.type === "mi" && lastGroup.children.length === 1) {
					var lastChild = lastGroup.children[0];
					if (lastChild instanceof TextNode && lastChild.text === "̸" && (_group.type === "mo" || _group.type === "mi" || _group.type === "mn")) {
						var child = _group.children[0];
						if (child instanceof TextNode && child.text.length > 0) {
							child.text = child.text.slice(0, 1) + "̸" + child.text.slice(1);
							groups.pop();
						}
					}
				}
			}
			groups.push(_group);
			lastGroup = _group;
		}
		return groups;
	};
	buildExpressionRow = function buildExpressionRow$1(expression, options, isOrdgroup) {
		return makeRow(buildExpression(expression, options, isOrdgroup));
	};
	buildGroup = function buildGroup$2(group, options) {
		if (!group) {
			return new mathMLTree.MathNode("mrow");
		}
		if (_mathmlGroupBuilders[group.type]) {
			var result = _mathmlGroupBuilders[group.type](group, options);
			return result;
		} else {
			throw new ParseError("Got group of unknown type: '" + group.type + "'");
		}
	};
	optionsFromSettings = function optionsFromSettings$1(settings) {
		return new Options({
			style: settings.displayMode ? Style$1.DISPLAY : Style$1.TEXT,
			maxSize: settings.maxSize,
			minRuleThickness: settings.minRuleThickness
		});
	};
	displayWrap = function displayWrap$1(node, settings) {
		if (settings.displayMode) {
			var classes = ["katex-display"];
			if (settings.leqno) {
				classes.push("leqno");
			}
			if (settings.fleqn) {
				classes.push("fleqn");
			}
			node = buildCommon.makeSpan(classes, [node]);
		}
		return node;
	};
	buildTree = function buildTree$1(tree, expression, settings) {
		var options = optionsFromSettings(settings);
		var katexNode;
		if (settings.output === "mathml") {
			return buildMathML(tree, expression, options, settings.displayMode, true);
		} else if (settings.output === "html") {
			var htmlNode = buildHTML(tree, options);
			katexNode = buildCommon.makeSpan(["katex"], [htmlNode]);
		} else {
			var mathMLNode = buildMathML(tree, expression, options, settings.displayMode, false);
			var _htmlNode = buildHTML(tree, options);
			katexNode = buildCommon.makeSpan(["katex"], [mathMLNode, _htmlNode]);
		}
		return displayWrap(katexNode, settings);
	};
	buildHTMLTree = function buildHTMLTree$1(tree, expression, settings) {
		var options = optionsFromSettings(settings);
		var htmlNode = buildHTML(tree, options);
		var katexNode = buildCommon.makeSpan(["katex"], [htmlNode]);
		return displayWrap(katexNode, settings);
	};
	stretchyCodePoint = {
		widehat: "^",
		widecheck: "ˇ",
		widetilde: "~",
		utilde: "~",
		overleftarrow: "←",
		underleftarrow: "←",
		xleftarrow: "←",
		overrightarrow: "→",
		underrightarrow: "→",
		xrightarrow: "→",
		underbrace: "⏟",
		overbrace: "⏞",
		overgroup: "⏠",
		undergroup: "⏡",
		overleftrightarrow: "↔",
		underleftrightarrow: "↔",
		xleftrightarrow: "↔",
		Overrightarrow: "⇒",
		xRightarrow: "⇒",
		overleftharpoon: "↼",
		xleftharpoonup: "↼",
		overrightharpoon: "⇀",
		xrightharpoonup: "⇀",
		xLeftarrow: "⇐",
		xLeftrightarrow: "⇔",
		xhookleftarrow: "↩",
		xhookrightarrow: "↪",
		xmapsto: "↦",
		xrightharpoondown: "⇁",
		xleftharpoondown: "↽",
		xrightleftharpoons: "⇌",
		xleftrightharpoons: "⇋",
		xtwoheadleftarrow: "↞",
		xtwoheadrightarrow: "↠",
		xlongequal: "=",
		xtofrom: "⇄",
		xrightleftarrows: "⇄",
		xrightequilibrium: "⇌",
		xleftequilibrium: "⇋",
		"\\cdrightarrow": "→",
		"\\cdleftarrow": "←",
		"\\cdlongequal": "="
	};
	mathMLnode = function mathMLnode$1(label) {
		var node = new mathMLTree.MathNode("mo", [new mathMLTree.TextNode(stretchyCodePoint[label.replace(/^\\/, "")])]);
		node.setAttribute("stretchy", "true");
		return node;
	};
	katexImagesData = {
		overrightarrow: [
			["rightarrow"],
			.888,
			522,
			"xMaxYMin"
		],
		overleftarrow: [
			["leftarrow"],
			.888,
			522,
			"xMinYMin"
		],
		underrightarrow: [
			["rightarrow"],
			.888,
			522,
			"xMaxYMin"
		],
		underleftarrow: [
			["leftarrow"],
			.888,
			522,
			"xMinYMin"
		],
		xrightarrow: [
			["rightarrow"],
			1.469,
			522,
			"xMaxYMin"
		],
		"\\cdrightarrow": [
			["rightarrow"],
			3,
			522,
			"xMaxYMin"
		],
		xleftarrow: [
			["leftarrow"],
			1.469,
			522,
			"xMinYMin"
		],
		"\\cdleftarrow": [
			["leftarrow"],
			3,
			522,
			"xMinYMin"
		],
		Overrightarrow: [
			["doublerightarrow"],
			.888,
			560,
			"xMaxYMin"
		],
		xRightarrow: [
			["doublerightarrow"],
			1.526,
			560,
			"xMaxYMin"
		],
		xLeftarrow: [
			["doubleleftarrow"],
			1.526,
			560,
			"xMinYMin"
		],
		overleftharpoon: [
			["leftharpoon"],
			.888,
			522,
			"xMinYMin"
		],
		xleftharpoonup: [
			["leftharpoon"],
			.888,
			522,
			"xMinYMin"
		],
		xleftharpoondown: [
			["leftharpoondown"],
			.888,
			522,
			"xMinYMin"
		],
		overrightharpoon: [
			["rightharpoon"],
			.888,
			522,
			"xMaxYMin"
		],
		xrightharpoonup: [
			["rightharpoon"],
			.888,
			522,
			"xMaxYMin"
		],
		xrightharpoondown: [
			["rightharpoondown"],
			.888,
			522,
			"xMaxYMin"
		],
		xlongequal: [
			["longequal"],
			.888,
			334,
			"xMinYMin"
		],
		"\\cdlongequal": [
			["longequal"],
			3,
			334,
			"xMinYMin"
		],
		xtwoheadleftarrow: [
			["twoheadleftarrow"],
			.888,
			334,
			"xMinYMin"
		],
		xtwoheadrightarrow: [
			["twoheadrightarrow"],
			.888,
			334,
			"xMaxYMin"
		],
		overleftrightarrow: [
			["leftarrow", "rightarrow"],
			.888,
			522
		],
		overbrace: [
			[
				"leftbrace",
				"midbrace",
				"rightbrace"
			],
			1.6,
			548
		],
		underbrace: [
			[
				"leftbraceunder",
				"midbraceunder",
				"rightbraceunder"
			],
			1.6,
			548
		],
		underleftrightarrow: [
			["leftarrow", "rightarrow"],
			.888,
			522
		],
		xleftrightarrow: [
			["leftarrow", "rightarrow"],
			1.75,
			522
		],
		xLeftrightarrow: [
			["doubleleftarrow", "doublerightarrow"],
			1.75,
			560
		],
		xrightleftharpoons: [
			["leftharpoondownplus", "rightharpoonplus"],
			1.75,
			716
		],
		xleftrightharpoons: [
			["leftharpoonplus", "rightharpoondownplus"],
			1.75,
			716
		],
		xhookleftarrow: [
			["leftarrow", "righthook"],
			1.08,
			522
		],
		xhookrightarrow: [
			["lefthook", "rightarrow"],
			1.08,
			522
		],
		overlinesegment: [
			["leftlinesegment", "rightlinesegment"],
			.888,
			522
		],
		underlinesegment: [
			["leftlinesegment", "rightlinesegment"],
			.888,
			522
		],
		overgroup: [
			["leftgroup", "rightgroup"],
			.888,
			342
		],
		undergroup: [
			["leftgroupunder", "rightgroupunder"],
			.888,
			342
		],
		xmapsto: [
			["leftmapsto", "rightarrow"],
			1.5,
			522
		],
		xtofrom: [
			["leftToFrom", "rightToFrom"],
			1.75,
			528
		],
		xrightleftarrows: [
			["baraboveleftarrow", "rightarrowabovebar"],
			1.75,
			901
		],
		xrightequilibrium: [
			["baraboveshortleftharpoon", "rightharpoonaboveshortbar"],
			1.75,
			716
		],
		xleftequilibrium: [
			["shortbaraboveleftharpoon", "shortrightharpoonabovebar"],
			1.75,
			716
		]
	};
	groupLength = function groupLength$1(arg) {
		if (arg.type === "ordgroup") {
			return arg.body.length;
		} else {
			return 1;
		}
	};
	svgSpan = function svgSpan$1(group, options) {
		function buildSvgSpan_() {
			var viewBoxWidth = 4e5;
			var label = group.label.slice(1);
			if ([
				"widehat",
				"widecheck",
				"widetilde",
				"utilde"
			].includes(label)) {
				var grp = group;
				var numChars = groupLength(grp.base);
				var viewBoxHeight;
				var pathName;
				var _height;
				if (numChars > 5) {
					if (label === "widehat" || label === "widecheck") {
						viewBoxHeight = 420;
						viewBoxWidth = 2364;
						_height = .42;
						pathName = label + "4";
					} else {
						viewBoxHeight = 312;
						viewBoxWidth = 2340;
						_height = .34;
						pathName = "tilde4";
					}
				} else {
					var imgIndex = [
						1,
						1,
						2,
						2,
						3,
						3
					][numChars];
					if (label === "widehat" || label === "widecheck") {
						viewBoxWidth = [
							0,
							1062,
							2364,
							2364,
							2364
						][imgIndex];
						viewBoxHeight = [
							0,
							239,
							300,
							360,
							420
						][imgIndex];
						_height = [
							0,
							.24,
							.3,
							.3,
							.36,
							.42
						][imgIndex];
						pathName = label + imgIndex;
					} else {
						viewBoxWidth = [
							0,
							600,
							1033,
							2339,
							2340
						][imgIndex];
						viewBoxHeight = [
							0,
							260,
							286,
							306,
							312
						][imgIndex];
						_height = [
							0,
							.26,
							.286,
							.3,
							.306,
							.34
						][imgIndex];
						pathName = "tilde" + imgIndex;
					}
				}
				var path$1 = new PathNode(pathName);
				var svgNode = new SvgNode([path$1], {
					"width": "100%",
					"height": makeEm(_height),
					"viewBox": "0 0 " + viewBoxWidth + " " + viewBoxHeight,
					"preserveAspectRatio": "none"
				});
				return {
					span: buildCommon.makeSvgSpan([], [svgNode], options),
					minWidth: 0,
					height: _height
				};
			} else {
				var spans = [];
				var data = katexImagesData[label];
				var [paths, _minWidth, _viewBoxHeight] = data;
				var _height2 = _viewBoxHeight / 1e3;
				var numSvgChildren = paths.length;
				var widthClasses;
				var aligns;
				if (numSvgChildren === 1) {
					var align1 = data[3];
					widthClasses = ["hide-tail"];
					aligns = [align1];
				} else if (numSvgChildren === 2) {
					widthClasses = ["halfarrow-left", "halfarrow-right"];
					aligns = ["xMinYMin", "xMaxYMin"];
				} else if (numSvgChildren === 3) {
					widthClasses = [
						"brace-left",
						"brace-center",
						"brace-right"
					];
					aligns = [
						"xMinYMin",
						"xMidYMin",
						"xMaxYMin"
					];
				} else {
					throw new Error("Correct katexImagesData or update code here to support\n                    " + numSvgChildren + " children.");
				}
				for (var i$7 = 0; i$7 < numSvgChildren; i$7++) {
					var _path = new PathNode(paths[i$7]);
					var _svgNode = new SvgNode([_path], {
						"width": "400em",
						"height": makeEm(_height2),
						"viewBox": "0 0 " + viewBoxWidth + " " + _viewBoxHeight,
						"preserveAspectRatio": aligns[i$7] + " slice"
					});
					var _span = buildCommon.makeSvgSpan([widthClasses[i$7]], [_svgNode], options);
					if (numSvgChildren === 1) {
						return {
							span: _span,
							minWidth: _minWidth,
							height: _height2
						};
					} else {
						_span.style.height = makeEm(_height2);
						spans.push(_span);
					}
				}
				return {
					span: buildCommon.makeSpan(["stretchy"], spans, options),
					minWidth: _minWidth,
					height: _height2
				};
			}
		}
		var { span, minWidth, height } = buildSvgSpan_();
		span.height = height;
		span.style.height = makeEm(height);
		if (minWidth > 0) {
			span.style.minWidth = makeEm(minWidth);
		}
		return span;
	};
	encloseSpan = function encloseSpan$1(inner$1, label, topPad, bottomPad, options) {
		var img;
		var totalHeight = inner$1.height + inner$1.depth + topPad + bottomPad;
		if (/fbox|color|angl/.test(label)) {
			img = buildCommon.makeSpan(["stretchy", label], [], options);
			if (label === "fbox") {
				var color = options.color && options.getColor();
				if (color) {
					img.style.borderColor = color;
				}
			}
		} else {
			var lines = [];
			if (/^[bx]cancel$/.test(label)) {
				lines.push(new LineNode({
					"x1": "0",
					"y1": "0",
					"x2": "100%",
					"y2": "100%",
					"stroke-width": "0.046em"
				}));
			}
			if (/^x?cancel$/.test(label)) {
				lines.push(new LineNode({
					"x1": "0",
					"y1": "100%",
					"x2": "100%",
					"y2": "0",
					"stroke-width": "0.046em"
				}));
			}
			var svgNode = new SvgNode(lines, {
				"width": "100%",
				"height": makeEm(totalHeight)
			});
			img = buildCommon.makeSvgSpan([], [svgNode], options);
		}
		img.height = totalHeight;
		img.style.height = makeEm(totalHeight);
		return img;
	};
	stretchy = {
		encloseSpan,
		mathMLnode,
		svgSpan
	};
	htmlBuilder$a = (grp, options) => {
		var base;
		var group;
		var supSubGroup;
		if (grp && grp.type === "supsub") {
			group = assertNodeType(grp.base, "accent");
			base = group.base;
			grp.base = base;
			supSubGroup = assertSpan(buildGroup$1(grp, options));
			grp.base = group;
		} else {
			group = assertNodeType(grp, "accent");
			base = group.base;
		}
		var body = buildGroup$1(base, options.havingCrampedStyle());
		var mustShift = group.isShifty && utils.isCharacterBox(base);
		var skew = 0;
		if (mustShift) {
			var baseChar = utils.getBaseElem(base);
			var baseGroup = buildGroup$1(baseChar, options.havingCrampedStyle());
			skew = assertSymbolDomNode(baseGroup).skew;
		}
		var accentBelow = group.label === "\\c";
		var clearance = accentBelow ? body.height + body.depth : Math.min(body.height, options.fontMetrics().xHeight);
		var accentBody;
		if (!group.isStretchy) {
			var accent$1;
			var width;
			if (group.label === "\\vec") {
				accent$1 = buildCommon.staticSvg("vec", options);
				width = buildCommon.svgData.vec[1];
			} else {
				accent$1 = buildCommon.makeOrd({
					mode: group.mode,
					text: group.label
				}, options, "textord");
				accent$1 = assertSymbolDomNode(accent$1);
				accent$1.italic = 0;
				width = accent$1.width;
				if (accentBelow) {
					clearance += accent$1.depth;
				}
			}
			accentBody = buildCommon.makeSpan(["accent-body"], [accent$1]);
			var accentFull = group.label === "\\textcircled";
			if (accentFull) {
				accentBody.classes.push("accent-full");
				clearance = body.height;
			}
			var left = skew;
			if (!accentFull) {
				left -= width / 2;
			}
			accentBody.style.left = makeEm(left);
			if (group.label === "\\textcircled") {
				accentBody.style.top = ".2em";
			}
			accentBody = buildCommon.makeVList({
				positionType: "firstBaseline",
				children: [
					{
						type: "elem",
						elem: body
					},
					{
						type: "kern",
						size: -clearance
					},
					{
						type: "elem",
						elem: accentBody
					}
				]
			}, options);
		} else {
			accentBody = stretchy.svgSpan(group, options);
			accentBody = buildCommon.makeVList({
				positionType: "firstBaseline",
				children: [{
					type: "elem",
					elem: body
				}, {
					type: "elem",
					elem: accentBody,
					wrapperClasses: ["svg-align"],
					wrapperStyle: skew > 0 ? {
						width: "calc(100% - " + makeEm(2 * skew) + ")",
						marginLeft: makeEm(2 * skew)
					} : undefined
				}]
			}, options);
		}
		var accentWrap = buildCommon.makeSpan(["mord", "accent"], [accentBody], options);
		if (supSubGroup) {
			supSubGroup.children[0] = accentWrap;
			supSubGroup.height = Math.max(accentWrap.height, supSubGroup.height);
			supSubGroup.classes[0] = "mord";
			return supSubGroup;
		} else {
			return accentWrap;
		}
	};
	mathmlBuilder$9 = (group, options) => {
		var accentNode = group.isStretchy ? stretchy.mathMLnode(group.label) : new mathMLTree.MathNode("mo", [makeText(group.label, group.mode)]);
		var node = new mathMLTree.MathNode("mover", [buildGroup(group.base, options), accentNode]);
		node.setAttribute("accent", "true");
		return node;
	};
	NON_STRETCHY_ACCENT_REGEX = new RegExp([
		"\\acute",
		"\\grave",
		"\\ddot",
		"\\tilde",
		"\\bar",
		"\\breve",
		"\\check",
		"\\hat",
		"\\vec",
		"\\dot",
		"\\mathring"
	].map((accent$1) => "\\" + accent$1).join("|"));
	defineFunction({
		type: "accent",
		names: [
			"\\acute",
			"\\grave",
			"\\ddot",
			"\\tilde",
			"\\bar",
			"\\breve",
			"\\check",
			"\\hat",
			"\\vec",
			"\\dot",
			"\\mathring",
			"\\widecheck",
			"\\widehat",
			"\\widetilde",
			"\\overrightarrow",
			"\\overleftarrow",
			"\\Overrightarrow",
			"\\overleftrightarrow",
			"\\overgroup",
			"\\overlinesegment",
			"\\overleftharpoon",
			"\\overrightharpoon"
		],
		props: { numArgs: 1 },
		handler: (context, args) => {
			var base = normalizeArgument(args[0]);
			var isStretchy = !NON_STRETCHY_ACCENT_REGEX.test(context.funcName);
			var isShifty = !isStretchy || context.funcName === "\\widehat" || context.funcName === "\\widetilde" || context.funcName === "\\widecheck";
			return {
				type: "accent",
				mode: context.parser.mode,
				label: context.funcName,
				isStretchy,
				isShifty,
				base
			};
		},
		htmlBuilder: htmlBuilder$a,
		mathmlBuilder: mathmlBuilder$9
	});
	defineFunction({
		type: "accent",
		names: [
			"\\'",
			"\\`",
			"\\^",
			"\\~",
			"\\=",
			"\\u",
			"\\.",
			"\\\"",
			"\\c",
			"\\r",
			"\\H",
			"\\v",
			"\\textcircled"
		],
		props: {
			numArgs: 1,
			allowedInText: true,
			allowedInMath: true,
			argTypes: ["primitive"]
		},
		handler: (context, args) => {
			var base = args[0];
			var mode = context.parser.mode;
			if (mode === "math") {
				context.parser.settings.reportNonstrict("mathVsTextAccents", "LaTeX's accent " + context.funcName + " works only in text mode");
				mode = "text";
			}
			return {
				type: "accent",
				mode,
				label: context.funcName,
				isStretchy: false,
				isShifty: true,
				base
			};
		},
		htmlBuilder: htmlBuilder$a,
		mathmlBuilder: mathmlBuilder$9
	});
	defineFunction({
		type: "accentUnder",
		names: [
			"\\underleftarrow",
			"\\underrightarrow",
			"\\underleftrightarrow",
			"\\undergroup",
			"\\underlinesegment",
			"\\utilde"
		],
		props: { numArgs: 1 },
		handler: (_ref, args) => {
			var { parser, funcName } = _ref;
			var base = args[0];
			return {
				type: "accentUnder",
				mode: parser.mode,
				label: funcName,
				base
			};
		},
		htmlBuilder: (group, options) => {
			var innerGroup = buildGroup$1(group.base, options);
			var accentBody = stretchy.svgSpan(group, options);
			var kern = group.label === "\\utilde" ? .12 : 0;
			var vlist = buildCommon.makeVList({
				positionType: "top",
				positionData: innerGroup.height,
				children: [
					{
						type: "elem",
						elem: accentBody,
						wrapperClasses: ["svg-align"]
					},
					{
						type: "kern",
						size: kern
					},
					{
						type: "elem",
						elem: innerGroup
					}
				]
			}, options);
			return buildCommon.makeSpan(["mord", "accentunder"], [vlist], options);
		},
		mathmlBuilder: (group, options) => {
			var accentNode = stretchy.mathMLnode(group.label);
			var node = new mathMLTree.MathNode("munder", [buildGroup(group.base, options), accentNode]);
			node.setAttribute("accentunder", "true");
			return node;
		}
	});
	paddedNode = (group) => {
		var node = new mathMLTree.MathNode("mpadded", group ? [group] : []);
		node.setAttribute("width", "+0.6em");
		node.setAttribute("lspace", "0.3em");
		return node;
	};
	defineFunction({
		type: "xArrow",
		names: [
			"\\xleftarrow",
			"\\xrightarrow",
			"\\xLeftarrow",
			"\\xRightarrow",
			"\\xleftrightarrow",
			"\\xLeftrightarrow",
			"\\xhookleftarrow",
			"\\xhookrightarrow",
			"\\xmapsto",
			"\\xrightharpoondown",
			"\\xrightharpoonup",
			"\\xleftharpoondown",
			"\\xleftharpoonup",
			"\\xrightleftharpoons",
			"\\xleftrightharpoons",
			"\\xlongequal",
			"\\xtwoheadrightarrow",
			"\\xtwoheadleftarrow",
			"\\xtofrom",
			"\\xrightleftarrows",
			"\\xrightequilibrium",
			"\\xleftequilibrium",
			"\\\\cdrightarrow",
			"\\\\cdleftarrow",
			"\\\\cdlongequal"
		],
		props: {
			numArgs: 1,
			numOptionalArgs: 1
		},
		handler(_ref, args, optArgs) {
			var { parser, funcName } = _ref;
			return {
				type: "xArrow",
				mode: parser.mode,
				label: funcName,
				body: args[0],
				below: optArgs[0]
			};
		},
		htmlBuilder(group, options) {
			var style = options.style;
			var newOptions = options.havingStyle(style.sup());
			var upperGroup = buildCommon.wrapFragment(buildGroup$1(group.body, newOptions, options), options);
			var arrowPrefix = group.label.slice(0, 2) === "\\x" ? "x" : "cd";
			upperGroup.classes.push(arrowPrefix + "-arrow-pad");
			var lowerGroup;
			if (group.below) {
				newOptions = options.havingStyle(style.sub());
				lowerGroup = buildCommon.wrapFragment(buildGroup$1(group.below, newOptions, options), options);
				lowerGroup.classes.push(arrowPrefix + "-arrow-pad");
			}
			var arrowBody = stretchy.svgSpan(group, options);
			var arrowShift = -options.fontMetrics().axisHeight + .5 * arrowBody.height;
			var upperShift = -options.fontMetrics().axisHeight - .5 * arrowBody.height - .111;
			if (upperGroup.depth > .25 || group.label === "\\xleftequilibrium") {
				upperShift -= upperGroup.depth;
			}
			var vlist;
			if (lowerGroup) {
				var lowerShift = -options.fontMetrics().axisHeight + lowerGroup.height + .5 * arrowBody.height + .111;
				vlist = buildCommon.makeVList({
					positionType: "individualShift",
					children: [
						{
							type: "elem",
							elem: upperGroup,
							shift: upperShift
						},
						{
							type: "elem",
							elem: arrowBody,
							shift: arrowShift
						},
						{
							type: "elem",
							elem: lowerGroup,
							shift: lowerShift
						}
					]
				}, options);
			} else {
				vlist = buildCommon.makeVList({
					positionType: "individualShift",
					children: [{
						type: "elem",
						elem: upperGroup,
						shift: upperShift
					}, {
						type: "elem",
						elem: arrowBody,
						shift: arrowShift
					}]
				}, options);
			}
			vlist.children[0].children[0].children[1].classes.push("svg-align");
			return buildCommon.makeSpan(["mrel", "x-arrow"], [vlist], options);
		},
		mathmlBuilder(group, options) {
			var arrowNode = stretchy.mathMLnode(group.label);
			arrowNode.setAttribute("minsize", group.label.charAt(0) === "x" ? "1.75em" : "3.0em");
			var node;
			if (group.body) {
				var upperNode = paddedNode(buildGroup(group.body, options));
				if (group.below) {
					var lowerNode = paddedNode(buildGroup(group.below, options));
					node = new mathMLTree.MathNode("munderover", [
						arrowNode,
						lowerNode,
						upperNode
					]);
				} else {
					node = new mathMLTree.MathNode("mover", [arrowNode, upperNode]);
				}
			} else if (group.below) {
				var _lowerNode = paddedNode(buildGroup(group.below, options));
				node = new mathMLTree.MathNode("munder", [arrowNode, _lowerNode]);
			} else {
				node = paddedNode();
				node = new mathMLTree.MathNode("mover", [arrowNode, node]);
			}
			return node;
		}
	});
	makeSpan = buildCommon.makeSpan;
	defineFunction({
		type: "mclass",
		names: [
			"\\mathord",
			"\\mathbin",
			"\\mathrel",
			"\\mathopen",
			"\\mathclose",
			"\\mathpunct",
			"\\mathinner"
		],
		props: {
			numArgs: 1,
			primitive: true
		},
		handler(_ref, args) {
			var { parser, funcName } = _ref;
			var body = args[0];
			return {
				type: "mclass",
				mode: parser.mode,
				mclass: "m" + funcName.slice(5),
				body: ordargument(body),
				isCharacterBox: utils.isCharacterBox(body)
			};
		},
		htmlBuilder: htmlBuilder$9,
		mathmlBuilder: mathmlBuilder$8
	});
	binrelClass = (arg) => {
		var atom = arg.type === "ordgroup" && arg.body.length ? arg.body[0] : arg;
		if (atom.type === "atom" && (atom.family === "bin" || atom.family === "rel")) {
			return "m" + atom.family;
		} else {
			return "mord";
		}
	};
	defineFunction({
		type: "mclass",
		names: ["\\@binrel"],
		props: { numArgs: 2 },
		handler(_ref2, args) {
			var { parser } = _ref2;
			return {
				type: "mclass",
				mode: parser.mode,
				mclass: binrelClass(args[0]),
				body: ordargument(args[1]),
				isCharacterBox: utils.isCharacterBox(args[1])
			};
		}
	});
	defineFunction({
		type: "mclass",
		names: [
			"\\stackrel",
			"\\overset",
			"\\underset"
		],
		props: { numArgs: 2 },
		handler(_ref3, args) {
			var { parser, funcName } = _ref3;
			var baseArg = args[1];
			var shiftedArg = args[0];
			var mclass;
			if (funcName !== "\\stackrel") {
				mclass = binrelClass(baseArg);
			} else {
				mclass = "mrel";
			}
			var baseOp = {
				type: "op",
				mode: baseArg.mode,
				limits: true,
				alwaysHandleSupSub: true,
				parentIsSupSub: false,
				symbol: false,
				suppressBaseShift: funcName !== "\\stackrel",
				body: ordargument(baseArg)
			};
			var supsub = {
				type: "supsub",
				mode: shiftedArg.mode,
				base: baseOp,
				sup: funcName === "\\underset" ? null : shiftedArg,
				sub: funcName === "\\underset" ? shiftedArg : null
			};
			return {
				type: "mclass",
				mode: parser.mode,
				mclass,
				body: [supsub],
				isCharacterBox: utils.isCharacterBox(supsub)
			};
		},
		htmlBuilder: htmlBuilder$9,
		mathmlBuilder: mathmlBuilder$8
	});
	defineFunction({
		type: "pmb",
		names: ["\\pmb"],
		props: {
			numArgs: 1,
			allowedInText: true
		},
		handler(_ref, args) {
			var { parser } = _ref;
			return {
				type: "pmb",
				mode: parser.mode,
				mclass: binrelClass(args[0]),
				body: ordargument(args[0])
			};
		},
		htmlBuilder(group, options) {
			var elements = buildExpression$1(group.body, options, true);
			var node = buildCommon.makeSpan([group.mclass], elements, options);
			node.style.textShadow = "0.02em 0.01em 0.04px";
			return node;
		},
		mathmlBuilder(group, style) {
			var inner$1 = buildExpression(group.body, style);
			var node = new mathMLTree.MathNode("mstyle", inner$1);
			node.setAttribute("style", "text-shadow: 0.02em 0.01em 0.04px");
			return node;
		}
	});
	cdArrowFunctionName = {
		">": "\\\\cdrightarrow",
		"<": "\\\\cdleftarrow",
		"=": "\\\\cdlongequal",
		"A": "\\uparrow",
		"V": "\\downarrow",
		"|": "\\Vert",
		".": "no arrow"
	};
	newCell = () => {
		return {
			type: "styling",
			body: [],
			mode: "math",
			style: "display"
		};
	};
	isStartOfArrow = (node) => {
		return node.type === "textord" && node.text === "@";
	};
	isLabelEnd = (node, endChar) => {
		return (node.type === "mathord" || node.type === "atom") && node.text === endChar;
	};
	defineFunction({
		type: "cdlabel",
		names: ["\\\\cdleft", "\\\\cdright"],
		props: { numArgs: 1 },
		handler(_ref, args) {
			var { parser, funcName } = _ref;
			return {
				type: "cdlabel",
				mode: parser.mode,
				side: funcName.slice(4),
				label: args[0]
			};
		},
		htmlBuilder(group, options) {
			var newOptions = options.havingStyle(options.style.sup());
			var label = buildCommon.wrapFragment(buildGroup$1(group.label, newOptions, options), options);
			label.classes.push("cd-label-" + group.side);
			label.style.bottom = makeEm(.8 - label.depth);
			label.height = 0;
			label.depth = 0;
			return label;
		},
		mathmlBuilder(group, options) {
			var label = new mathMLTree.MathNode("mrow", [buildGroup(group.label, options)]);
			label = new mathMLTree.MathNode("mpadded", [label]);
			label.setAttribute("width", "0");
			if (group.side === "left") {
				label.setAttribute("lspace", "-1width");
			}
			label.setAttribute("voffset", "0.7em");
			label = new mathMLTree.MathNode("mstyle", [label]);
			label.setAttribute("displaystyle", "false");
			label.setAttribute("scriptlevel", "1");
			return label;
		}
	});
	defineFunction({
		type: "cdlabelparent",
		names: ["\\\\cdparent"],
		props: { numArgs: 1 },
		handler(_ref2, args) {
			var { parser } = _ref2;
			return {
				type: "cdlabelparent",
				mode: parser.mode,
				fragment: args[0]
			};
		},
		htmlBuilder(group, options) {
			var parent = buildCommon.wrapFragment(buildGroup$1(group.fragment, options), options);
			parent.classes.push("cd-vert-arrow");
			return parent;
		},
		mathmlBuilder(group, options) {
			return new mathMLTree.MathNode("mrow", [buildGroup(group.fragment, options)]);
		}
	});
	defineFunction({
		type: "textord",
		names: ["\\@char"],
		props: {
			numArgs: 1,
			allowedInText: true
		},
		handler(_ref, args) {
			var { parser } = _ref;
			var arg = assertNodeType(args[0], "ordgroup");
			var group = arg.body;
			var number = "";
			for (var i$7 = 0; i$7 < group.length; i$7++) {
				var node = assertNodeType(group[i$7], "textord");
				number += node.text;
			}
			var code = parseInt(number);
			var text$2;
			if (isNaN(code)) {
				throw new ParseError("\\@char has non-numeric argument " + number);
			} else if (code < 0 || code >= 1114111) {
				throw new ParseError("\\@char with invalid code point " + number);
			} else if (code <= 65535) {
				text$2 = String.fromCharCode(code);
			} else {
				code -= 65536;
				text$2 = String.fromCharCode((code >> 10) + 55296, (code & 1023) + 56320);
			}
			return {
				type: "textord",
				mode: parser.mode,
				text: text$2
			};
		}
	});
	htmlBuilder$8 = (group, options) => {
		var elements = buildExpression$1(group.body, options.withColor(group.color), false);
		return buildCommon.makeFragment(elements);
	};
	mathmlBuilder$7 = (group, options) => {
		var inner$1 = buildExpression(group.body, options.withColor(group.color));
		var node = new mathMLTree.MathNode("mstyle", inner$1);
		node.setAttribute("mathcolor", group.color);
		return node;
	};
	defineFunction({
		type: "color",
		names: ["\\textcolor"],
		props: {
			numArgs: 2,
			allowedInText: true,
			argTypes: ["color", "original"]
		},
		handler(_ref, args) {
			var { parser } = _ref;
			var color = assertNodeType(args[0], "color-token").color;
			var body = args[1];
			return {
				type: "color",
				mode: parser.mode,
				color,
				body: ordargument(body)
			};
		},
		htmlBuilder: htmlBuilder$8,
		mathmlBuilder: mathmlBuilder$7
	});
	defineFunction({
		type: "color",
		names: ["\\color"],
		props: {
			numArgs: 1,
			allowedInText: true,
			argTypes: ["color"]
		},
		handler(_ref2, args) {
			var { parser, breakOnTokenText } = _ref2;
			var color = assertNodeType(args[0], "color-token").color;
			parser.gullet.macros.set("\\current@color", color);
			var body = parser.parseExpression(true, breakOnTokenText);
			return {
				type: "color",
				mode: parser.mode,
				color,
				body
			};
		},
		htmlBuilder: htmlBuilder$8,
		mathmlBuilder: mathmlBuilder$7
	});
	defineFunction({
		type: "cr",
		names: ["\\\\"],
		props: {
			numArgs: 0,
			numOptionalArgs: 0,
			allowedInText: true
		},
		handler(_ref, args, optArgs) {
			var { parser } = _ref;
			var size = parser.gullet.future().text === "[" ? parser.parseSizeGroup(true) : null;
			var newLine = !parser.settings.displayMode || !parser.settings.useStrictBehavior("newLineInDisplayMode", "In LaTeX, \\\\ or \\newline " + "does nothing in display mode");
			return {
				type: "cr",
				mode: parser.mode,
				newLine,
				size: size && assertNodeType(size, "size").value
			};
		},
		htmlBuilder(group, options) {
			var span = buildCommon.makeSpan(["mspace"], [], options);
			if (group.newLine) {
				span.classes.push("newline");
				if (group.size) {
					span.style.marginTop = makeEm(calculateSize(group.size, options));
				}
			}
			return span;
		},
		mathmlBuilder(group, options) {
			var node = new mathMLTree.MathNode("mspace");
			if (group.newLine) {
				node.setAttribute("linebreak", "newline");
				if (group.size) {
					node.setAttribute("height", makeEm(calculateSize(group.size, options)));
				}
			}
			return node;
		}
	});
	globalMap = {
		"\\global": "\\global",
		"\\long": "\\\\globallong",
		"\\\\globallong": "\\\\globallong",
		"\\def": "\\gdef",
		"\\gdef": "\\gdef",
		"\\edef": "\\xdef",
		"\\xdef": "\\xdef",
		"\\let": "\\\\globallet",
		"\\futurelet": "\\\\globalfuture"
	};
	checkControlSequence = (tok) => {
		var name = tok.text;
		if (/^(?:[\\{}$&#^_]|EOF)$/.test(name)) {
			throw new ParseError("Expected a control sequence", tok);
		}
		return name;
	};
	getRHS = (parser) => {
		var tok = parser.gullet.popToken();
		if (tok.text === "=") {
			tok = parser.gullet.popToken();
			if (tok.text === " ") {
				tok = parser.gullet.popToken();
			}
		}
		return tok;
	};
	letCommand = (parser, name, tok, global$1) => {
		var macro = parser.gullet.macros.get(tok.text);
		if (macro == null) {
			tok.noexpand = true;
			macro = {
				tokens: [tok],
				numArgs: 0,
				unexpandable: !parser.gullet.isExpandable(tok.text)
			};
		}
		parser.gullet.macros.set(name, macro, global$1);
	};
	defineFunction({
		type: "internal",
		names: [
			"\\global",
			"\\long",
			"\\\\globallong"
		],
		props: {
			numArgs: 0,
			allowedInText: true
		},
		handler(_ref) {
			var { parser, funcName } = _ref;
			parser.consumeSpaces();
			var token = parser.fetch();
			if (globalMap[token.text]) {
				if (funcName === "\\global" || funcName === "\\\\globallong") {
					token.text = globalMap[token.text];
				}
				return assertNodeType(parser.parseFunction(), "internal");
			}
			throw new ParseError("Invalid token after macro prefix", token);
		}
	});
	defineFunction({
		type: "internal",
		names: [
			"\\def",
			"\\gdef",
			"\\edef",
			"\\xdef"
		],
		props: {
			numArgs: 0,
			allowedInText: true,
			primitive: true
		},
		handler(_ref2) {
			var { parser, funcName } = _ref2;
			var tok = parser.gullet.popToken();
			var name = tok.text;
			if (/^(?:[\\{}$&#^_]|EOF)$/.test(name)) {
				throw new ParseError("Expected a control sequence", tok);
			}
			var numArgs = 0;
			var insert;
			var delimiters$1 = [[]];
			while (parser.gullet.future().text !== "{") {
				tok = parser.gullet.popToken();
				if (tok.text === "#") {
					if (parser.gullet.future().text === "{") {
						insert = parser.gullet.future();
						delimiters$1[numArgs].push("{");
						break;
					}
					tok = parser.gullet.popToken();
					if (!/^[1-9]$/.test(tok.text)) {
						throw new ParseError("Invalid argument number \"" + tok.text + "\"");
					}
					if (parseInt(tok.text) !== numArgs + 1) {
						throw new ParseError("Argument number \"" + tok.text + "\" out of order");
					}
					numArgs++;
					delimiters$1.push([]);
				} else if (tok.text === "EOF") {
					throw new ParseError("Expected a macro definition");
				} else {
					delimiters$1[numArgs].push(tok.text);
				}
			}
			var { tokens } = parser.gullet.consumeArg();
			if (insert) {
				tokens.unshift(insert);
			}
			if (funcName === "\\edef" || funcName === "\\xdef") {
				tokens = parser.gullet.expandTokens(tokens);
				tokens.reverse();
			}
			parser.gullet.macros.set(name, {
				tokens,
				numArgs,
				delimiters: delimiters$1
			}, funcName === globalMap[funcName]);
			return {
				type: "internal",
				mode: parser.mode
			};
		}
	});
	defineFunction({
		type: "internal",
		names: ["\\let", "\\\\globallet"],
		props: {
			numArgs: 0,
			allowedInText: true,
			primitive: true
		},
		handler(_ref3) {
			var { parser, funcName } = _ref3;
			var name = checkControlSequence(parser.gullet.popToken());
			parser.gullet.consumeSpaces();
			var tok = getRHS(parser);
			letCommand(parser, name, tok, funcName === "\\\\globallet");
			return {
				type: "internal",
				mode: parser.mode
			};
		}
	});
	defineFunction({
		type: "internal",
		names: ["\\futurelet", "\\\\globalfuture"],
		props: {
			numArgs: 0,
			allowedInText: true,
			primitive: true
		},
		handler(_ref4) {
			var { parser, funcName } = _ref4;
			var name = checkControlSequence(parser.gullet.popToken());
			var middle = parser.gullet.popToken();
			var tok = parser.gullet.popToken();
			letCommand(parser, name, tok, funcName === "\\\\globalfuture");
			parser.gullet.pushToken(tok);
			parser.gullet.pushToken(middle);
			return {
				type: "internal",
				mode: parser.mode
			};
		}
	});
	getMetrics = function getMetrics$1(symbol, font, mode) {
		var replace = symbols.math[symbol] && symbols.math[symbol].replace;
		var metrics = getCharacterMetrics(replace || symbol, font, mode);
		if (!metrics) {
			throw new Error("Unsupported symbol " + symbol + " and font size " + font + ".");
		}
		return metrics;
	};
	styleWrap = function styleWrap$1(delim, toStyle, options, classes) {
		var newOptions = options.havingBaseStyle(toStyle);
		var span = buildCommon.makeSpan(classes.concat(newOptions.sizingClasses(options)), [delim], options);
		var delimSizeMultiplier = newOptions.sizeMultiplier / options.sizeMultiplier;
		span.height *= delimSizeMultiplier;
		span.depth *= delimSizeMultiplier;
		span.maxFontSize = newOptions.sizeMultiplier;
		return span;
	};
	centerSpan = function centerSpan$1(span, options, style) {
		var newOptions = options.havingBaseStyle(style);
		var shift = (1 - options.sizeMultiplier / newOptions.sizeMultiplier) * options.fontMetrics().axisHeight;
		span.classes.push("delimcenter");
		span.style.top = makeEm(shift);
		span.height -= shift;
		span.depth += shift;
	};
	makeSmallDelim = function makeSmallDelim$1(delim, style, center, options, mode, classes) {
		var text$2 = buildCommon.makeSymbol(delim, "Main-Regular", mode, options);
		var span = styleWrap(text$2, style, options, classes);
		if (center) {
			centerSpan(span, options, style);
		}
		return span;
	};
	mathrmSize = function mathrmSize$1(value, size, mode, options) {
		return buildCommon.makeSymbol(value, "Size" + size + "-Regular", mode, options);
	};
	makeLargeDelim = function makeLargeDelim$1(delim, size, center, options, mode, classes) {
		var inner$1 = mathrmSize(delim, size, mode, options);
		var span = styleWrap(buildCommon.makeSpan(["delimsizing", "size" + size], [inner$1], options), Style$1.TEXT, options, classes);
		if (center) {
			centerSpan(span, options, Style$1.TEXT);
		}
		return span;
	};
	makeGlyphSpan = function makeGlyphSpan$1(symbol, font, mode) {
		var sizeClass;
		if (font === "Size1-Regular") {
			sizeClass = "delim-size1";
		} else {
			sizeClass = "delim-size4";
		}
		var corner = buildCommon.makeSpan(["delimsizinginner", sizeClass], [buildCommon.makeSpan([], [buildCommon.makeSymbol(symbol, font, mode)])]);
		return {
			type: "elem",
			elem: corner
		};
	};
	makeInner = function makeInner$1(ch$1, height, options) {
		var width = fontMetricsData["Size4-Regular"][ch$1.charCodeAt(0)] ? fontMetricsData["Size4-Regular"][ch$1.charCodeAt(0)][4] : fontMetricsData["Size1-Regular"][ch$1.charCodeAt(0)][4];
		var path$1 = new PathNode("inner", innerPath(ch$1, Math.round(1e3 * height)));
		var svgNode = new SvgNode([path$1], {
			"width": makeEm(width),
			"height": makeEm(height),
			"style": "width:" + makeEm(width),
			"viewBox": "0 0 " + 1e3 * width + " " + Math.round(1e3 * height),
			"preserveAspectRatio": "xMinYMin"
		});
		var span = buildCommon.makeSvgSpan([], [svgNode], options);
		span.height = height;
		span.style.height = makeEm(height);
		span.style.width = makeEm(width);
		return {
			type: "elem",
			elem: span
		};
	};
	lapInEms = .008;
	lap = {
		type: "kern",
		size: -1 * lapInEms
	};
	verts = [
		"|",
		"\\lvert",
		"\\rvert",
		"\\vert"
	];
	doubleVerts = [
		"\\|",
		"\\lVert",
		"\\rVert",
		"\\Vert"
	];
	makeStackedDelim = function makeStackedDelim$1(delim, heightTotal, center, options, mode, classes) {
		var top;
		var middle;
		var repeat;
		var bottom;
		var svgLabel = "";
		var viewBoxWidth = 0;
		top = repeat = bottom = delim;
		middle = null;
		var font = "Size1-Regular";
		if (delim === "\\uparrow") {
			repeat = bottom = "⏐";
		} else if (delim === "\\Uparrow") {
			repeat = bottom = "‖";
		} else if (delim === "\\downarrow") {
			top = repeat = "⏐";
		} else if (delim === "\\Downarrow") {
			top = repeat = "‖";
		} else if (delim === "\\updownarrow") {
			top = "\\uparrow";
			repeat = "⏐";
			bottom = "\\downarrow";
		} else if (delim === "\\Updownarrow") {
			top = "\\Uparrow";
			repeat = "‖";
			bottom = "\\Downarrow";
		} else if (verts.includes(delim)) {
			repeat = "∣";
			svgLabel = "vert";
			viewBoxWidth = 333;
		} else if (doubleVerts.includes(delim)) {
			repeat = "∥";
			svgLabel = "doublevert";
			viewBoxWidth = 556;
		} else if (delim === "[" || delim === "\\lbrack") {
			top = "⎡";
			repeat = "⎢";
			bottom = "⎣";
			font = "Size4-Regular";
			svgLabel = "lbrack";
			viewBoxWidth = 667;
		} else if (delim === "]" || delim === "\\rbrack") {
			top = "⎤";
			repeat = "⎥";
			bottom = "⎦";
			font = "Size4-Regular";
			svgLabel = "rbrack";
			viewBoxWidth = 667;
		} else if (delim === "\\lfloor" || delim === "⌊") {
			repeat = top = "⎢";
			bottom = "⎣";
			font = "Size4-Regular";
			svgLabel = "lfloor";
			viewBoxWidth = 667;
		} else if (delim === "\\lceil" || delim === "⌈") {
			top = "⎡";
			repeat = bottom = "⎢";
			font = "Size4-Regular";
			svgLabel = "lceil";
			viewBoxWidth = 667;
		} else if (delim === "\\rfloor" || delim === "⌋") {
			repeat = top = "⎥";
			bottom = "⎦";
			font = "Size4-Regular";
			svgLabel = "rfloor";
			viewBoxWidth = 667;
		} else if (delim === "\\rceil" || delim === "⌉") {
			top = "⎤";
			repeat = bottom = "⎥";
			font = "Size4-Regular";
			svgLabel = "rceil";
			viewBoxWidth = 667;
		} else if (delim === "(" || delim === "\\lparen") {
			top = "⎛";
			repeat = "⎜";
			bottom = "⎝";
			font = "Size4-Regular";
			svgLabel = "lparen";
			viewBoxWidth = 875;
		} else if (delim === ")" || delim === "\\rparen") {
			top = "⎞";
			repeat = "⎟";
			bottom = "⎠";
			font = "Size4-Regular";
			svgLabel = "rparen";
			viewBoxWidth = 875;
		} else if (delim === "\\{" || delim === "\\lbrace") {
			top = "⎧";
			middle = "⎨";
			bottom = "⎩";
			repeat = "⎪";
			font = "Size4-Regular";
		} else if (delim === "\\}" || delim === "\\rbrace") {
			top = "⎫";
			middle = "⎬";
			bottom = "⎭";
			repeat = "⎪";
			font = "Size4-Regular";
		} else if (delim === "\\lgroup" || delim === "⟮") {
			top = "⎧";
			bottom = "⎩";
			repeat = "⎪";
			font = "Size4-Regular";
		} else if (delim === "\\rgroup" || delim === "⟯") {
			top = "⎫";
			bottom = "⎭";
			repeat = "⎪";
			font = "Size4-Regular";
		} else if (delim === "\\lmoustache" || delim === "⎰") {
			top = "⎧";
			bottom = "⎭";
			repeat = "⎪";
			font = "Size4-Regular";
		} else if (delim === "\\rmoustache" || delim === "⎱") {
			top = "⎫";
			bottom = "⎩";
			repeat = "⎪";
			font = "Size4-Regular";
		}
		var topMetrics = getMetrics(top, font, mode);
		var topHeightTotal = topMetrics.height + topMetrics.depth;
		var repeatMetrics = getMetrics(repeat, font, mode);
		var repeatHeightTotal = repeatMetrics.height + repeatMetrics.depth;
		var bottomMetrics = getMetrics(bottom, font, mode);
		var bottomHeightTotal = bottomMetrics.height + bottomMetrics.depth;
		var middleHeightTotal = 0;
		var middleFactor = 1;
		if (middle !== null) {
			var middleMetrics = getMetrics(middle, font, mode);
			middleHeightTotal = middleMetrics.height + middleMetrics.depth;
			middleFactor = 2;
		}
		var minHeight = topHeightTotal + bottomHeightTotal + middleHeightTotal;
		var repeatCount = Math.max(0, Math.ceil((heightTotal - minHeight) / (middleFactor * repeatHeightTotal)));
		var realHeightTotal = minHeight + repeatCount * middleFactor * repeatHeightTotal;
		var axisHeight = options.fontMetrics().axisHeight;
		if (center) {
			axisHeight *= options.sizeMultiplier;
		}
		var depth = realHeightTotal / 2 - axisHeight;
		var stack = [];
		if (svgLabel.length > 0) {
			var midHeight = realHeightTotal - topHeightTotal - bottomHeightTotal;
			var viewBoxHeight = Math.round(realHeightTotal * 1e3);
			var pathStr = tallDelim(svgLabel, Math.round(midHeight * 1e3));
			var path$1 = new PathNode(svgLabel, pathStr);
			var width = (viewBoxWidth / 1e3).toFixed(3) + "em";
			var height = (viewBoxHeight / 1e3).toFixed(3) + "em";
			var svg = new SvgNode([path$1], {
				"width": width,
				"height": height,
				"viewBox": "0 0 " + viewBoxWidth + " " + viewBoxHeight
			});
			var wrapper = buildCommon.makeSvgSpan([], [svg], options);
			wrapper.height = viewBoxHeight / 1e3;
			wrapper.style.width = width;
			wrapper.style.height = height;
			stack.push({
				type: "elem",
				elem: wrapper
			});
		} else {
			stack.push(makeGlyphSpan(bottom, font, mode));
			stack.push(lap);
			if (middle === null) {
				var innerHeight = realHeightTotal - topHeightTotal - bottomHeightTotal + 2 * lapInEms;
				stack.push(makeInner(repeat, innerHeight, options));
			} else {
				var _innerHeight = (realHeightTotal - topHeightTotal - bottomHeightTotal - middleHeightTotal) / 2 + 2 * lapInEms;
				stack.push(makeInner(repeat, _innerHeight, options));
				stack.push(lap);
				stack.push(makeGlyphSpan(middle, font, mode));
				stack.push(lap);
				stack.push(makeInner(repeat, _innerHeight, options));
			}
			stack.push(lap);
			stack.push(makeGlyphSpan(top, font, mode));
		}
		var newOptions = options.havingBaseStyle(Style$1.TEXT);
		var inner$1 = buildCommon.makeVList({
			positionType: "bottom",
			positionData: depth,
			children: stack
		}, newOptions);
		return styleWrap(buildCommon.makeSpan(["delimsizing", "mult"], [inner$1], newOptions), Style$1.TEXT, options, classes);
	};
	vbPad = 80;
	emPad = .08;
	sqrtSvg = function sqrtSvg$1(sqrtName, height, viewBoxHeight, extraVinculum, options) {
		var path$1 = sqrtPath(sqrtName, extraVinculum, viewBoxHeight);
		var pathNode = new PathNode(sqrtName, path$1);
		var svg = new SvgNode([pathNode], {
			"width": "400em",
			"height": makeEm(height),
			"viewBox": "0 0 400000 " + viewBoxHeight,
			"preserveAspectRatio": "xMinYMin slice"
		});
		return buildCommon.makeSvgSpan(["hide-tail"], [svg], options);
	};
	makeSqrtImage = function makeSqrtImage$1(height, options) {
		var newOptions = options.havingBaseSizing();
		var delim = traverseSequence("\\surd", height * newOptions.sizeMultiplier, stackLargeDelimiterSequence, newOptions);
		var sizeMultiplier = newOptions.sizeMultiplier;
		var extraVinculum = Math.max(0, options.minRuleThickness - options.fontMetrics().sqrtRuleThickness);
		var span;
		var spanHeight = 0;
		var texHeight = 0;
		var viewBoxHeight = 0;
		var advanceWidth;
		if (delim.type === "small") {
			viewBoxHeight = 1e3 + 1e3 * extraVinculum + vbPad;
			if (height < 1) {
				sizeMultiplier = 1;
			} else if (height < 1.4) {
				sizeMultiplier = .7;
			}
			spanHeight = (1 + extraVinculum + emPad) / sizeMultiplier;
			texHeight = (1 + extraVinculum) / sizeMultiplier;
			span = sqrtSvg("sqrtMain", spanHeight, viewBoxHeight, extraVinculum, options);
			span.style.minWidth = "0.853em";
			advanceWidth = .833 / sizeMultiplier;
		} else if (delim.type === "large") {
			viewBoxHeight = (1e3 + vbPad) * sizeToMaxHeight[delim.size];
			texHeight = (sizeToMaxHeight[delim.size] + extraVinculum) / sizeMultiplier;
			spanHeight = (sizeToMaxHeight[delim.size] + extraVinculum + emPad) / sizeMultiplier;
			span = sqrtSvg("sqrtSize" + delim.size, spanHeight, viewBoxHeight, extraVinculum, options);
			span.style.minWidth = "1.02em";
			advanceWidth = 1 / sizeMultiplier;
		} else {
			spanHeight = height + extraVinculum + emPad;
			texHeight = height + extraVinculum;
			viewBoxHeight = Math.floor(1e3 * height + extraVinculum) + vbPad;
			span = sqrtSvg("sqrtTall", spanHeight, viewBoxHeight, extraVinculum, options);
			span.style.minWidth = "0.742em";
			advanceWidth = 1.056;
		}
		span.height = texHeight;
		span.style.height = makeEm(spanHeight);
		return {
			span,
			advanceWidth,
			ruleWidth: (options.fontMetrics().sqrtRuleThickness + extraVinculum) * sizeMultiplier
		};
	};
	stackLargeDelimiters = [
		"(",
		"\\lparen",
		")",
		"\\rparen",
		"[",
		"\\lbrack",
		"]",
		"\\rbrack",
		"\\{",
		"\\lbrace",
		"\\}",
		"\\rbrace",
		"\\lfloor",
		"\\rfloor",
		"⌊",
		"⌋",
		"\\lceil",
		"\\rceil",
		"⌈",
		"⌉",
		"\\surd"
	];
	stackAlwaysDelimiters = [
		"\\uparrow",
		"\\downarrow",
		"\\updownarrow",
		"\\Uparrow",
		"\\Downarrow",
		"\\Updownarrow",
		"|",
		"\\|",
		"\\vert",
		"\\Vert",
		"\\lvert",
		"\\rvert",
		"\\lVert",
		"\\rVert",
		"\\lgroup",
		"\\rgroup",
		"⟮",
		"⟯",
		"\\lmoustache",
		"\\rmoustache",
		"⎰",
		"⎱"
	];
	stackNeverDelimiters = [
		"<",
		">",
		"\\langle",
		"\\rangle",
		"/",
		"\\backslash",
		"\\lt",
		"\\gt"
	];
	sizeToMaxHeight = [
		0,
		1.2,
		1.8,
		2.4,
		3
	];
	makeSizedDelim = function makeSizedDelim$1(delim, size, options, mode, classes) {
		if (delim === "<" || delim === "\\lt" || delim === "⟨") {
			delim = "\\langle";
		} else if (delim === ">" || delim === "\\gt" || delim === "⟩") {
			delim = "\\rangle";
		}
		if (stackLargeDelimiters.includes(delim) || stackNeverDelimiters.includes(delim)) {
			return makeLargeDelim(delim, size, false, options, mode, classes);
		} else if (stackAlwaysDelimiters.includes(delim)) {
			return makeStackedDelim(delim, sizeToMaxHeight[size], false, options, mode, classes);
		} else {
			throw new ParseError("Illegal delimiter: '" + delim + "'");
		}
	};
	stackNeverDelimiterSequence = [
		{
			type: "small",
			style: Style$1.SCRIPTSCRIPT
		},
		{
			type: "small",
			style: Style$1.SCRIPT
		},
		{
			type: "small",
			style: Style$1.TEXT
		},
		{
			type: "large",
			size: 1
		},
		{
			type: "large",
			size: 2
		},
		{
			type: "large",
			size: 3
		},
		{
			type: "large",
			size: 4
		}
	];
	stackAlwaysDelimiterSequence = [
		{
			type: "small",
			style: Style$1.SCRIPTSCRIPT
		},
		{
			type: "small",
			style: Style$1.SCRIPT
		},
		{
			type: "small",
			style: Style$1.TEXT
		},
		{ type: "stack" }
	];
	stackLargeDelimiterSequence = [
		{
			type: "small",
			style: Style$1.SCRIPTSCRIPT
		},
		{
			type: "small",
			style: Style$1.SCRIPT
		},
		{
			type: "small",
			style: Style$1.TEXT
		},
		{
			type: "large",
			size: 1
		},
		{
			type: "large",
			size: 2
		},
		{
			type: "large",
			size: 3
		},
		{
			type: "large",
			size: 4
		},
		{ type: "stack" }
	];
	delimTypeToFont = function delimTypeToFont$1(type) {
		if (type.type === "small") {
			return "Main-Regular";
		} else if (type.type === "large") {
			return "Size" + type.size + "-Regular";
		} else if (type.type === "stack") {
			return "Size4-Regular";
		} else {
			throw new Error("Add support for delim type '" + type.type + "' here.");
		}
	};
	traverseSequence = function traverseSequence$1(delim, height, sequence, options) {
		var start = Math.min(2, 3 - options.style.size);
		for (var i$7 = start; i$7 < sequence.length; i$7++) {
			if (sequence[i$7].type === "stack") {
				break;
			}
			var metrics = getMetrics(delim, delimTypeToFont(sequence[i$7]), "math");
			var heightDepth = metrics.height + metrics.depth;
			if (sequence[i$7].type === "small") {
				var newOptions = options.havingBaseStyle(sequence[i$7].style);
				heightDepth *= newOptions.sizeMultiplier;
			}
			if (heightDepth > height) {
				return sequence[i$7];
			}
		}
		return sequence[sequence.length - 1];
	};
	makeCustomSizedDelim = function makeCustomSizedDelim$1(delim, height, center, options, mode, classes) {
		if (delim === "<" || delim === "\\lt" || delim === "⟨") {
			delim = "\\langle";
		} else if (delim === ">" || delim === "\\gt" || delim === "⟩") {
			delim = "\\rangle";
		}
		var sequence;
		if (stackNeverDelimiters.includes(delim)) {
			sequence = stackNeverDelimiterSequence;
		} else if (stackLargeDelimiters.includes(delim)) {
			sequence = stackLargeDelimiterSequence;
		} else {
			sequence = stackAlwaysDelimiterSequence;
		}
		var delimType = traverseSequence(delim, height, sequence, options);
		if (delimType.type === "small") {
			return makeSmallDelim(delim, delimType.style, center, options, mode, classes);
		} else if (delimType.type === "large") {
			return makeLargeDelim(delim, delimType.size, center, options, mode, classes);
		} else {
			return makeStackedDelim(delim, height, center, options, mode, classes);
		}
	};
	makeLeftRightDelim = function makeLeftRightDelim$1(delim, height, depth, options, mode, classes) {
		var axisHeight = options.fontMetrics().axisHeight * options.sizeMultiplier;
		var delimiterFactor = 901;
		var delimiterExtend = 5 / options.fontMetrics().ptPerEm;
		var maxDistFromAxis = Math.max(height - axisHeight, depth + axisHeight);
		var totalHeight = Math.max(maxDistFromAxis / 500 * delimiterFactor, 2 * maxDistFromAxis - delimiterExtend);
		return makeCustomSizedDelim(delim, totalHeight, true, options, mode, classes);
	};
	delimiter = {
		sqrtImage: makeSqrtImage,
		sizedDelim: makeSizedDelim,
		sizeToMaxHeight,
		customSizedDelim: makeCustomSizedDelim,
		leftRightDelim: makeLeftRightDelim
	};
	delimiterSizes = {
		"\\bigl": {
			mclass: "mopen",
			size: 1
		},
		"\\Bigl": {
			mclass: "mopen",
			size: 2
		},
		"\\biggl": {
			mclass: "mopen",
			size: 3
		},
		"\\Biggl": {
			mclass: "mopen",
			size: 4
		},
		"\\bigr": {
			mclass: "mclose",
			size: 1
		},
		"\\Bigr": {
			mclass: "mclose",
			size: 2
		},
		"\\biggr": {
			mclass: "mclose",
			size: 3
		},
		"\\Biggr": {
			mclass: "mclose",
			size: 4
		},
		"\\bigm": {
			mclass: "mrel",
			size: 1
		},
		"\\Bigm": {
			mclass: "mrel",
			size: 2
		},
		"\\biggm": {
			mclass: "mrel",
			size: 3
		},
		"\\Biggm": {
			mclass: "mrel",
			size: 4
		},
		"\\big": {
			mclass: "mord",
			size: 1
		},
		"\\Big": {
			mclass: "mord",
			size: 2
		},
		"\\bigg": {
			mclass: "mord",
			size: 3
		},
		"\\Bigg": {
			mclass: "mord",
			size: 4
		}
	};
	delimiters = [
		"(",
		"\\lparen",
		")",
		"\\rparen",
		"[",
		"\\lbrack",
		"]",
		"\\rbrack",
		"\\{",
		"\\lbrace",
		"\\}",
		"\\rbrace",
		"\\lfloor",
		"\\rfloor",
		"⌊",
		"⌋",
		"\\lceil",
		"\\rceil",
		"⌈",
		"⌉",
		"<",
		">",
		"\\langle",
		"⟨",
		"\\rangle",
		"⟩",
		"\\lt",
		"\\gt",
		"\\lvert",
		"\\rvert",
		"\\lVert",
		"\\rVert",
		"\\lgroup",
		"\\rgroup",
		"⟮",
		"⟯",
		"\\lmoustache",
		"\\rmoustache",
		"⎰",
		"⎱",
		"/",
		"\\backslash",
		"|",
		"\\vert",
		"\\|",
		"\\Vert",
		"\\uparrow",
		"\\Uparrow",
		"\\downarrow",
		"\\Downarrow",
		"\\updownarrow",
		"\\Updownarrow",
		"."
	];
	defineFunction({
		type: "delimsizing",
		names: [
			"\\bigl",
			"\\Bigl",
			"\\biggl",
			"\\Biggl",
			"\\bigr",
			"\\Bigr",
			"\\biggr",
			"\\Biggr",
			"\\bigm",
			"\\Bigm",
			"\\biggm",
			"\\Biggm",
			"\\big",
			"\\Big",
			"\\bigg",
			"\\Bigg"
		],
		props: {
			numArgs: 1,
			argTypes: ["primitive"]
		},
		handler: (context, args) => {
			var delim = checkDelimiter(args[0], context);
			return {
				type: "delimsizing",
				mode: context.parser.mode,
				size: delimiterSizes[context.funcName].size,
				mclass: delimiterSizes[context.funcName].mclass,
				delim: delim.text
			};
		},
		htmlBuilder: (group, options) => {
			if (group.delim === ".") {
				return buildCommon.makeSpan([group.mclass]);
			}
			return delimiter.sizedDelim(group.delim, group.size, options, group.mode, [group.mclass]);
		},
		mathmlBuilder: (group) => {
			var children = [];
			if (group.delim !== ".") {
				children.push(makeText(group.delim, group.mode));
			}
			var node = new mathMLTree.MathNode("mo", children);
			if (group.mclass === "mopen" || group.mclass === "mclose") {
				node.setAttribute("fence", "true");
			} else {
				node.setAttribute("fence", "false");
			}
			node.setAttribute("stretchy", "true");
			var size = makeEm(delimiter.sizeToMaxHeight[group.size]);
			node.setAttribute("minsize", size);
			node.setAttribute("maxsize", size);
			return node;
		}
	});
	defineFunction({
		type: "leftright-right",
		names: ["\\right"],
		props: {
			numArgs: 1,
			primitive: true
		},
		handler: (context, args) => {
			var color = context.parser.gullet.macros.get("\\current@color");
			if (color && typeof color !== "string") {
				throw new ParseError("\\current@color set to non-string in \\right");
			}
			return {
				type: "leftright-right",
				mode: context.parser.mode,
				delim: checkDelimiter(args[0], context).text,
				color
			};
		}
	});
	defineFunction({
		type: "leftright",
		names: ["\\left"],
		props: {
			numArgs: 1,
			primitive: true
		},
		handler: (context, args) => {
			var delim = checkDelimiter(args[0], context);
			var parser = context.parser;
			++parser.leftrightDepth;
			var body = parser.parseExpression(false);
			--parser.leftrightDepth;
			parser.expect("\\right", false);
			var right = assertNodeType(parser.parseFunction(), "leftright-right");
			return {
				type: "leftright",
				mode: parser.mode,
				body,
				left: delim.text,
				right: right.delim,
				rightColor: right.color
			};
		},
		htmlBuilder: (group, options) => {
			assertParsed(group);
			var inner$1 = buildExpression$1(group.body, options, true, ["mopen", "mclose"]);
			var innerHeight = 0;
			var innerDepth = 0;
			var hadMiddle = false;
			for (var i$7 = 0; i$7 < inner$1.length; i$7++) {
				if (inner$1[i$7].isMiddle) {
					hadMiddle = true;
				} else {
					innerHeight = Math.max(inner$1[i$7].height, innerHeight);
					innerDepth = Math.max(inner$1[i$7].depth, innerDepth);
				}
			}
			innerHeight *= options.sizeMultiplier;
			innerDepth *= options.sizeMultiplier;
			var leftDelim;
			if (group.left === ".") {
				leftDelim = makeNullDelimiter(options, ["mopen"]);
			} else {
				leftDelim = delimiter.leftRightDelim(group.left, innerHeight, innerDepth, options, group.mode, ["mopen"]);
			}
			inner$1.unshift(leftDelim);
			if (hadMiddle) {
				for (var _i$1 = 1; _i$1 < inner$1.length; _i$1++) {
					var middleDelim = inner$1[_i$1];
					var isMiddle = middleDelim.isMiddle;
					if (isMiddle) {
						inner$1[_i$1] = delimiter.leftRightDelim(isMiddle.delim, innerHeight, innerDepth, isMiddle.options, group.mode, []);
					}
				}
			}
			var rightDelim;
			if (group.right === ".") {
				rightDelim = makeNullDelimiter(options, ["mclose"]);
			} else {
				var colorOptions = group.rightColor ? options.withColor(group.rightColor) : options;
				rightDelim = delimiter.leftRightDelim(group.right, innerHeight, innerDepth, colorOptions, group.mode, ["mclose"]);
			}
			inner$1.push(rightDelim);
			return buildCommon.makeSpan(["minner"], inner$1, options);
		},
		mathmlBuilder: (group, options) => {
			assertParsed(group);
			var inner$1 = buildExpression(group.body, options);
			if (group.left !== ".") {
				var leftNode = new mathMLTree.MathNode("mo", [makeText(group.left, group.mode)]);
				leftNode.setAttribute("fence", "true");
				inner$1.unshift(leftNode);
			}
			if (group.right !== ".") {
				var rightNode = new mathMLTree.MathNode("mo", [makeText(group.right, group.mode)]);
				rightNode.setAttribute("fence", "true");
				if (group.rightColor) {
					rightNode.setAttribute("mathcolor", group.rightColor);
				}
				inner$1.push(rightNode);
			}
			return makeRow(inner$1);
		}
	});
	defineFunction({
		type: "middle",
		names: ["\\middle"],
		props: {
			numArgs: 1,
			primitive: true
		},
		handler: (context, args) => {
			var delim = checkDelimiter(args[0], context);
			if (!context.parser.leftrightDepth) {
				throw new ParseError("\\middle without preceding \\left", delim);
			}
			return {
				type: "middle",
				mode: context.parser.mode,
				delim: delim.text
			};
		},
		htmlBuilder: (group, options) => {
			var middleDelim;
			if (group.delim === ".") {
				middleDelim = makeNullDelimiter(options, []);
			} else {
				middleDelim = delimiter.sizedDelim(group.delim, 1, options, group.mode, []);
				var isMiddle = {
					delim: group.delim,
					options
				};
				middleDelim.isMiddle = isMiddle;
			}
			return middleDelim;
		},
		mathmlBuilder: (group, options) => {
			var textNode = group.delim === "\\vert" || group.delim === "|" ? makeText("|", "text") : makeText(group.delim, group.mode);
			var middleNode = new mathMLTree.MathNode("mo", [textNode]);
			middleNode.setAttribute("fence", "true");
			middleNode.setAttribute("lspace", "0.05em");
			middleNode.setAttribute("rspace", "0.05em");
			return middleNode;
		}
	});
	htmlBuilder$7 = (group, options) => {
		var inner$1 = buildCommon.wrapFragment(buildGroup$1(group.body, options), options);
		var label = group.label.slice(1);
		var scale = options.sizeMultiplier;
		var img;
		var imgShift = 0;
		var isSingleChar = utils.isCharacterBox(group.body);
		if (label === "sout") {
			img = buildCommon.makeSpan(["stretchy", "sout"]);
			img.height = options.fontMetrics().defaultRuleThickness / scale;
			imgShift = -.5 * options.fontMetrics().xHeight;
		} else if (label === "phase") {
			var lineWeight = calculateSize({
				number: .6,
				unit: "pt"
			}, options);
			var clearance = calculateSize({
				number: .35,
				unit: "ex"
			}, options);
			var newOptions = options.havingBaseSizing();
			scale = scale / newOptions.sizeMultiplier;
			var angleHeight = inner$1.height + inner$1.depth + lineWeight + clearance;
			inner$1.style.paddingLeft = makeEm(angleHeight / 2 + lineWeight);
			var viewBoxHeight = Math.floor(1e3 * angleHeight * scale);
			var path$1 = phasePath(viewBoxHeight);
			var svgNode = new SvgNode([new PathNode("phase", path$1)], {
				"width": "400em",
				"height": makeEm(viewBoxHeight / 1e3),
				"viewBox": "0 0 400000 " + viewBoxHeight,
				"preserveAspectRatio": "xMinYMin slice"
			});
			img = buildCommon.makeSvgSpan(["hide-tail"], [svgNode], options);
			img.style.height = makeEm(angleHeight);
			imgShift = inner$1.depth + lineWeight + clearance;
		} else {
			if (/cancel/.test(label)) {
				if (!isSingleChar) {
					inner$1.classes.push("cancel-pad");
				}
			} else if (label === "angl") {
				inner$1.classes.push("anglpad");
			} else {
				inner$1.classes.push("boxpad");
			}
			var topPad = 0;
			var bottomPad = 0;
			var ruleThickness = 0;
			if (/box/.test(label)) {
				ruleThickness = Math.max(options.fontMetrics().fboxrule, options.minRuleThickness);
				topPad = options.fontMetrics().fboxsep + (label === "colorbox" ? 0 : ruleThickness);
				bottomPad = topPad;
			} else if (label === "angl") {
				ruleThickness = Math.max(options.fontMetrics().defaultRuleThickness, options.minRuleThickness);
				topPad = 4 * ruleThickness;
				bottomPad = Math.max(0, .25 - inner$1.depth);
			} else {
				topPad = isSingleChar ? .2 : 0;
				bottomPad = topPad;
			}
			img = stretchy.encloseSpan(inner$1, label, topPad, bottomPad, options);
			if (/fbox|boxed|fcolorbox/.test(label)) {
				img.style.borderStyle = "solid";
				img.style.borderWidth = makeEm(ruleThickness);
			} else if (label === "angl" && ruleThickness !== .049) {
				img.style.borderTopWidth = makeEm(ruleThickness);
				img.style.borderRightWidth = makeEm(ruleThickness);
			}
			imgShift = inner$1.depth + bottomPad;
			if (group.backgroundColor) {
				img.style.backgroundColor = group.backgroundColor;
				if (group.borderColor) {
					img.style.borderColor = group.borderColor;
				}
			}
		}
		var vlist;
		if (group.backgroundColor) {
			vlist = buildCommon.makeVList({
				positionType: "individualShift",
				children: [{
					type: "elem",
					elem: img,
					shift: imgShift
				}, {
					type: "elem",
					elem: inner$1,
					shift: 0
				}]
			}, options);
		} else {
			var classes = /cancel|phase/.test(label) ? ["svg-align"] : [];
			vlist = buildCommon.makeVList({
				positionType: "individualShift",
				children: [{
					type: "elem",
					elem: inner$1,
					shift: 0
				}, {
					type: "elem",
					elem: img,
					shift: imgShift,
					wrapperClasses: classes
				}]
			}, options);
		}
		if (/cancel/.test(label)) {
			vlist.height = inner$1.height;
			vlist.depth = inner$1.depth;
		}
		if (/cancel/.test(label) && !isSingleChar) {
			return buildCommon.makeSpan(["mord", "cancel-lap"], [vlist], options);
		} else {
			return buildCommon.makeSpan(["mord"], [vlist], options);
		}
	};
	mathmlBuilder$6 = (group, options) => {
		var fboxsep = 0;
		var node = new mathMLTree.MathNode(group.label.indexOf("colorbox") > -1 ? "mpadded" : "menclose", [buildGroup(group.body, options)]);
		switch (group.label) {
			case "\\cancel":
				node.setAttribute("notation", "updiagonalstrike");
				break;
			case "\\bcancel":
				node.setAttribute("notation", "downdiagonalstrike");
				break;
			case "\\phase":
				node.setAttribute("notation", "phasorangle");
				break;
			case "\\sout":
				node.setAttribute("notation", "horizontalstrike");
				break;
			case "\\fbox":
				node.setAttribute("notation", "box");
				break;
			case "\\angl":
				node.setAttribute("notation", "actuarial");
				break;
			case "\\fcolorbox":
			case "\\colorbox":
				fboxsep = options.fontMetrics().fboxsep * options.fontMetrics().ptPerEm;
				node.setAttribute("width", "+" + 2 * fboxsep + "pt");
				node.setAttribute("height", "+" + 2 * fboxsep + "pt");
				node.setAttribute("lspace", fboxsep + "pt");
				node.setAttribute("voffset", fboxsep + "pt");
				if (group.label === "\\fcolorbox") {
					var thk = Math.max(options.fontMetrics().fboxrule, options.minRuleThickness);
					node.setAttribute("style", "border: " + thk + "em solid " + String(group.borderColor));
				}
				break;
			case "\\xcancel":
				node.setAttribute("notation", "updiagonalstrike downdiagonalstrike");
				break;
		}
		if (group.backgroundColor) {
			node.setAttribute("mathbackground", group.backgroundColor);
		}
		return node;
	};
	defineFunction({
		type: "enclose",
		names: ["\\colorbox"],
		props: {
			numArgs: 2,
			allowedInText: true,
			argTypes: ["color", "text"]
		},
		handler(_ref, args, optArgs) {
			var { parser, funcName } = _ref;
			var color = assertNodeType(args[0], "color-token").color;
			var body = args[1];
			return {
				type: "enclose",
				mode: parser.mode,
				label: funcName,
				backgroundColor: color,
				body
			};
		},
		htmlBuilder: htmlBuilder$7,
		mathmlBuilder: mathmlBuilder$6
	});
	defineFunction({
		type: "enclose",
		names: ["\\fcolorbox"],
		props: {
			numArgs: 3,
			allowedInText: true,
			argTypes: [
				"color",
				"color",
				"text"
			]
		},
		handler(_ref2, args, optArgs) {
			var { parser, funcName } = _ref2;
			var borderColor = assertNodeType(args[0], "color-token").color;
			var backgroundColor = assertNodeType(args[1], "color-token").color;
			var body = args[2];
			return {
				type: "enclose",
				mode: parser.mode,
				label: funcName,
				backgroundColor,
				borderColor,
				body
			};
		},
		htmlBuilder: htmlBuilder$7,
		mathmlBuilder: mathmlBuilder$6
	});
	defineFunction({
		type: "enclose",
		names: ["\\fbox"],
		props: {
			numArgs: 1,
			argTypes: ["hbox"],
			allowedInText: true
		},
		handler(_ref3, args) {
			var { parser } = _ref3;
			return {
				type: "enclose",
				mode: parser.mode,
				label: "\\fbox",
				body: args[0]
			};
		}
	});
	defineFunction({
		type: "enclose",
		names: [
			"\\cancel",
			"\\bcancel",
			"\\xcancel",
			"\\sout",
			"\\phase"
		],
		props: { numArgs: 1 },
		handler(_ref4, args) {
			var { parser, funcName } = _ref4;
			var body = args[0];
			return {
				type: "enclose",
				mode: parser.mode,
				label: funcName,
				body
			};
		},
		htmlBuilder: htmlBuilder$7,
		mathmlBuilder: mathmlBuilder$6
	});
	defineFunction({
		type: "enclose",
		names: ["\\angl"],
		props: {
			numArgs: 1,
			argTypes: ["hbox"],
			allowedInText: false
		},
		handler(_ref5, args) {
			var { parser } = _ref5;
			return {
				type: "enclose",
				mode: parser.mode,
				label: "\\angl",
				body: args[0]
			};
		}
	});
	_environments = {};
	_macros = {};
	validateAmsEnvironmentContext = (context) => {
		var settings = context.parser.settings;
		if (!settings.displayMode) {
			throw new ParseError("{" + context.envName + "} can be used only in" + " display mode.");
		}
	};
	htmlBuilder$6 = function htmlBuilder$10(group, options) {
		var r$10;
		var c$7;
		var nr = group.body.length;
		var hLinesBeforeRow = group.hLinesBeforeRow;
		var nc = 0;
		var body = new Array(nr);
		var hlines = [];
		var ruleThickness = Math.max(options.fontMetrics().arrayRuleWidth, options.minRuleThickness);
		var pt = 1 / options.fontMetrics().ptPerEm;
		var arraycolsep = 5 * pt;
		if (group.colSeparationType && group.colSeparationType === "small") {
			var localMultiplier = options.havingStyle(Style$1.SCRIPT).sizeMultiplier;
			arraycolsep = .2778 * (localMultiplier / options.sizeMultiplier);
		}
		var baselineskip = group.colSeparationType === "CD" ? calculateSize({
			number: 3,
			unit: "ex"
		}, options) : 12 * pt;
		var jot = 3 * pt;
		var arrayskip = group.arraystretch * baselineskip;
		var arstrutHeight = .7 * arrayskip;
		var arstrutDepth = .3 * arrayskip;
		var totalHeight = 0;
		function setHLinePos(hlinesInGap) {
			for (var i$7 = 0; i$7 < hlinesInGap.length; ++i$7) {
				if (i$7 > 0) {
					totalHeight += .25;
				}
				hlines.push({
					pos: totalHeight,
					isDashed: hlinesInGap[i$7]
				});
			}
		}
		setHLinePos(hLinesBeforeRow[0]);
		for (r$10 = 0; r$10 < group.body.length; ++r$10) {
			var inrow = group.body[r$10];
			var height = arstrutHeight;
			var depth = arstrutDepth;
			if (nc < inrow.length) {
				nc = inrow.length;
			}
			var outrow = new Array(inrow.length);
			for (c$7 = 0; c$7 < inrow.length; ++c$7) {
				var elt = buildGroup$1(inrow[c$7], options);
				if (depth < elt.depth) {
					depth = elt.depth;
				}
				if (height < elt.height) {
					height = elt.height;
				}
				outrow[c$7] = elt;
			}
			var rowGap = group.rowGaps[r$10];
			var gap = 0;
			if (rowGap) {
				gap = calculateSize(rowGap, options);
				if (gap > 0) {
					gap += arstrutDepth;
					if (depth < gap) {
						depth = gap;
					}
					gap = 0;
				}
			}
			if (group.addJot) {
				depth += jot;
			}
			outrow.height = height;
			outrow.depth = depth;
			totalHeight += height;
			outrow.pos = totalHeight;
			totalHeight += depth + gap;
			body[r$10] = outrow;
			setHLinePos(hLinesBeforeRow[r$10 + 1]);
		}
		var offset = totalHeight / 2 + options.fontMetrics().axisHeight;
		var colDescriptions = group.cols || [];
		var cols = [];
		var colSep;
		var colDescrNum;
		var tagSpans = [];
		if (group.tags && group.tags.some((tag$1) => tag$1)) {
			for (r$10 = 0; r$10 < nr; ++r$10) {
				var rw = body[r$10];
				var shift = rw.pos - offset;
				var tag = group.tags[r$10];
				var tagSpan = void 0;
				if (tag === true) {
					tagSpan = buildCommon.makeSpan(["eqn-num"], [], options);
				} else if (tag === false) {
					tagSpan = buildCommon.makeSpan([], [], options);
				} else {
					tagSpan = buildCommon.makeSpan([], buildExpression$1(tag, options, true), options);
				}
				tagSpan.depth = rw.depth;
				tagSpan.height = rw.height;
				tagSpans.push({
					type: "elem",
					elem: tagSpan,
					shift
				});
			}
		}
		for (c$7 = 0, colDescrNum = 0; c$7 < nc || colDescrNum < colDescriptions.length; ++c$7, ++colDescrNum) {
			var colDescr = colDescriptions[colDescrNum] || {};
			var firstSeparator = true;
			while (colDescr.type === "separator") {
				if (!firstSeparator) {
					colSep = buildCommon.makeSpan(["arraycolsep"], []);
					colSep.style.width = makeEm(options.fontMetrics().doubleRuleSep);
					cols.push(colSep);
				}
				if (colDescr.separator === "|" || colDescr.separator === ":") {
					var lineType = colDescr.separator === "|" ? "solid" : "dashed";
					var separator = buildCommon.makeSpan(["vertical-separator"], [], options);
					separator.style.height = makeEm(totalHeight);
					separator.style.borderRightWidth = makeEm(ruleThickness);
					separator.style.borderRightStyle = lineType;
					separator.style.margin = "0 " + makeEm(-ruleThickness / 2);
					var _shift = totalHeight - offset;
					if (_shift) {
						separator.style.verticalAlign = makeEm(-_shift);
					}
					cols.push(separator);
				} else {
					throw new ParseError("Invalid separator type: " + colDescr.separator);
				}
				colDescrNum++;
				colDescr = colDescriptions[colDescrNum] || {};
				firstSeparator = false;
			}
			if (c$7 >= nc) {
				continue;
			}
			var sepwidth = void 0;
			if (c$7 > 0 || group.hskipBeforeAndAfter) {
				sepwidth = utils.deflt(colDescr.pregap, arraycolsep);
				if (sepwidth !== 0) {
					colSep = buildCommon.makeSpan(["arraycolsep"], []);
					colSep.style.width = makeEm(sepwidth);
					cols.push(colSep);
				}
			}
			var col = [];
			for (r$10 = 0; r$10 < nr; ++r$10) {
				var row = body[r$10];
				var elem = row[c$7];
				if (!elem) {
					continue;
				}
				var _shift2 = row.pos - offset;
				elem.depth = row.depth;
				elem.height = row.height;
				col.push({
					type: "elem",
					elem,
					shift: _shift2
				});
			}
			col = buildCommon.makeVList({
				positionType: "individualShift",
				children: col
			}, options);
			col = buildCommon.makeSpan(["col-align-" + (colDescr.align || "c")], [col]);
			cols.push(col);
			if (c$7 < nc - 1 || group.hskipBeforeAndAfter) {
				sepwidth = utils.deflt(colDescr.postgap, arraycolsep);
				if (sepwidth !== 0) {
					colSep = buildCommon.makeSpan(["arraycolsep"], []);
					colSep.style.width = makeEm(sepwidth);
					cols.push(colSep);
				}
			}
		}
		body = buildCommon.makeSpan(["mtable"], cols);
		if (hlines.length > 0) {
			var line = buildCommon.makeLineSpan("hline", options, ruleThickness);
			var dashes = buildCommon.makeLineSpan("hdashline", options, ruleThickness);
			var vListElems = [{
				type: "elem",
				elem: body,
				shift: 0
			}];
			while (hlines.length > 0) {
				var hline = hlines.pop();
				var lineShift = hline.pos - offset;
				if (hline.isDashed) {
					vListElems.push({
						type: "elem",
						elem: dashes,
						shift: lineShift
					});
				} else {
					vListElems.push({
						type: "elem",
						elem: line,
						shift: lineShift
					});
				}
			}
			body = buildCommon.makeVList({
				positionType: "individualShift",
				children: vListElems
			}, options);
		}
		if (tagSpans.length === 0) {
			return buildCommon.makeSpan(["mord"], [body], options);
		} else {
			var eqnNumCol = buildCommon.makeVList({
				positionType: "individualShift",
				children: tagSpans
			}, options);
			eqnNumCol = buildCommon.makeSpan(["tag"], [eqnNumCol], options);
			return buildCommon.makeFragment([body, eqnNumCol]);
		}
	};
	alignMap = {
		c: "center ",
		l: "left ",
		r: "right "
	};
	mathmlBuilder$5 = function mathmlBuilder$10(group, options) {
		var tbl = [];
		var glue = new mathMLTree.MathNode("mtd", [], ["mtr-glue"]);
		var tag = new mathMLTree.MathNode("mtd", [], ["mml-eqn-num"]);
		for (var i$7 = 0; i$7 < group.body.length; i$7++) {
			var rw = group.body[i$7];
			var row = [];
			for (var j$2 = 0; j$2 < rw.length; j$2++) {
				row.push(new mathMLTree.MathNode("mtd", [buildGroup(rw[j$2], options)]));
			}
			if (group.tags && group.tags[i$7]) {
				row.unshift(glue);
				row.push(glue);
				if (group.leqno) {
					row.unshift(tag);
				} else {
					row.push(tag);
				}
			}
			tbl.push(new mathMLTree.MathNode("mtr", row));
		}
		var table = new mathMLTree.MathNode("mtable", tbl);
		var gap = group.arraystretch === .5 ? .1 : .16 + group.arraystretch - 1 + (group.addJot ? .09 : 0);
		table.setAttribute("rowspacing", makeEm(gap));
		var menclose = "";
		var align = "";
		if (group.cols && group.cols.length > 0) {
			var cols = group.cols;
			var columnLines = "";
			var prevTypeWasAlign = false;
			var iStart = 0;
			var iEnd = cols.length;
			if (cols[0].type === "separator") {
				menclose += "top ";
				iStart = 1;
			}
			if (cols[cols.length - 1].type === "separator") {
				menclose += "bottom ";
				iEnd -= 1;
			}
			for (var _i$1 = iStart; _i$1 < iEnd; _i$1++) {
				if (cols[_i$1].type === "align") {
					align += alignMap[cols[_i$1].align];
					if (prevTypeWasAlign) {
						columnLines += "none ";
					}
					prevTypeWasAlign = true;
				} else if (cols[_i$1].type === "separator") {
					if (prevTypeWasAlign) {
						columnLines += cols[_i$1].separator === "|" ? "solid " : "dashed ";
						prevTypeWasAlign = false;
					}
				}
			}
			table.setAttribute("columnalign", align.trim());
			if (/[sd]/.test(columnLines)) {
				table.setAttribute("columnlines", columnLines.trim());
			}
		}
		if (group.colSeparationType === "align") {
			var _cols = group.cols || [];
			var spacing$1 = "";
			for (var _i2$1 = 1; _i2$1 < _cols.length; _i2$1++) {
				spacing$1 += _i2$1 % 2 ? "0em " : "1em ";
			}
			table.setAttribute("columnspacing", spacing$1.trim());
		} else if (group.colSeparationType === "alignat" || group.colSeparationType === "gather") {
			table.setAttribute("columnspacing", "0em");
		} else if (group.colSeparationType === "small") {
			table.setAttribute("columnspacing", "0.2778em");
		} else if (group.colSeparationType === "CD") {
			table.setAttribute("columnspacing", "0.5em");
		} else {
			table.setAttribute("columnspacing", "1em");
		}
		var rowLines = "";
		var hlines = group.hLinesBeforeRow;
		menclose += hlines[0].length > 0 ? "left " : "";
		menclose += hlines[hlines.length - 1].length > 0 ? "right " : "";
		for (var _i3$1 = 1; _i3$1 < hlines.length - 1; _i3$1++) {
			rowLines += hlines[_i3$1].length === 0 ? "none " : hlines[_i3$1][0] ? "dashed " : "solid ";
		}
		if (/[sd]/.test(rowLines)) {
			table.setAttribute("rowlines", rowLines.trim());
		}
		if (menclose !== "") {
			table = new mathMLTree.MathNode("menclose", [table]);
			table.setAttribute("notation", menclose.trim());
		}
		if (group.arraystretch && group.arraystretch < 1) {
			table = new mathMLTree.MathNode("mstyle", [table]);
			table.setAttribute("scriptlevel", "1");
		}
		return table;
	};
	alignedHandler = function alignedHandler$1(context, args) {
		if (context.envName.indexOf("ed") === -1) {
			validateAmsEnvironmentContext(context);
		}
		var cols = [];
		var separationType = context.envName.indexOf("at") > -1 ? "alignat" : "align";
		var isSplit = context.envName === "split";
		var res = parseArray(context.parser, {
			cols,
			addJot: true,
			autoTag: isSplit ? undefined : getAutoTag(context.envName),
			emptySingleRow: true,
			colSeparationType: separationType,
			maxNumCols: isSplit ? 2 : undefined,
			leqno: context.parser.settings.leqno
		}, "display");
		var numMaths;
		var numCols = 0;
		var emptyGroup = {
			type: "ordgroup",
			mode: context.mode,
			body: []
		};
		if (args[0] && args[0].type === "ordgroup") {
			var arg0 = "";
			for (var i$7 = 0; i$7 < args[0].body.length; i$7++) {
				var textord$1 = assertNodeType(args[0].body[i$7], "textord");
				arg0 += textord$1.text;
			}
			numMaths = Number(arg0);
			numCols = numMaths * 2;
		}
		var isAligned = !numCols;
		res.body.forEach(function(row) {
			for (var _i4$1 = 1; _i4$1 < row.length; _i4$1 += 2) {
				var styling = assertNodeType(row[_i4$1], "styling");
				var ordgroup = assertNodeType(styling.body[0], "ordgroup");
				ordgroup.body.unshift(emptyGroup);
			}
			if (!isAligned) {
				var curMaths = row.length / 2;
				if (numMaths < curMaths) {
					throw new ParseError("Too many math in a row: " + ("expected " + numMaths + ", but got " + curMaths), row[0]);
				}
			} else if (numCols < row.length) {
				numCols = row.length;
			}
		});
		for (var _i5$1 = 0; _i5$1 < numCols; ++_i5$1) {
			var align = "r";
			var pregap = 0;
			if (_i5$1 % 2 === 1) {
				align = "l";
			} else if (_i5$1 > 0 && isAligned) {
				pregap = 1;
			}
			cols[_i5$1] = {
				type: "align",
				align,
				pregap,
				postgap: 0
			};
		}
		res.colSeparationType = isAligned ? "align" : "alignat";
		return res;
	};
	defineEnvironment({
		type: "array",
		names: ["array", "darray"],
		props: { numArgs: 1 },
		handler(context, args) {
			var symNode = checkSymbolNodeType(args[0]);
			var colalign = symNode ? [args[0]] : assertNodeType(args[0], "ordgroup").body;
			var cols = colalign.map(function(nde) {
				var node = assertSymbolNodeType(nde);
				var ca = node.text;
				if ("lcr".indexOf(ca) !== -1) {
					return {
						type: "align",
						align: ca
					};
				} else if (ca === "|") {
					return {
						type: "separator",
						separator: "|"
					};
				} else if (ca === ":") {
					return {
						type: "separator",
						separator: ":"
					};
				}
				throw new ParseError("Unknown column alignment: " + ca, nde);
			});
			var res = {
				cols,
				hskipBeforeAndAfter: true,
				maxNumCols: cols.length
			};
			return parseArray(context.parser, res, dCellStyle(context.envName));
		},
		htmlBuilder: htmlBuilder$6,
		mathmlBuilder: mathmlBuilder$5
	});
	defineEnvironment({
		type: "array",
		names: [
			"matrix",
			"pmatrix",
			"bmatrix",
			"Bmatrix",
			"vmatrix",
			"Vmatrix",
			"matrix*",
			"pmatrix*",
			"bmatrix*",
			"Bmatrix*",
			"vmatrix*",
			"Vmatrix*"
		],
		props: { numArgs: 0 },
		handler(context) {
			var delimiters$1 = {
				"matrix": null,
				"pmatrix": ["(", ")"],
				"bmatrix": ["[", "]"],
				"Bmatrix": ["\\{", "\\}"],
				"vmatrix": ["|", "|"],
				"Vmatrix": ["\\Vert", "\\Vert"]
			}[context.envName.replace("*", "")];
			var colAlign = "c";
			var payload = {
				hskipBeforeAndAfter: false,
				cols: [{
					type: "align",
					align: colAlign
				}]
			};
			if (context.envName.charAt(context.envName.length - 1) === "*") {
				var parser = context.parser;
				parser.consumeSpaces();
				if (parser.fetch().text === "[") {
					parser.consume();
					parser.consumeSpaces();
					colAlign = parser.fetch().text;
					if ("lcr".indexOf(colAlign) === -1) {
						throw new ParseError("Expected l or c or r", parser.nextToken);
					}
					parser.consume();
					parser.consumeSpaces();
					parser.expect("]");
					parser.consume();
					payload.cols = [{
						type: "align",
						align: colAlign
					}];
				}
			}
			var res = parseArray(context.parser, payload, dCellStyle(context.envName));
			var numCols = Math.max(0, ...res.body.map((row) => row.length));
			res.cols = new Array(numCols).fill({
				type: "align",
				align: colAlign
			});
			return delimiters$1 ? {
				type: "leftright",
				mode: context.mode,
				body: [res],
				left: delimiters$1[0],
				right: delimiters$1[1],
				rightColor: undefined
			} : res;
		},
		htmlBuilder: htmlBuilder$6,
		mathmlBuilder: mathmlBuilder$5
	});
	defineEnvironment({
		type: "array",
		names: ["smallmatrix"],
		props: { numArgs: 0 },
		handler(context) {
			var payload = { arraystretch: .5 };
			var res = parseArray(context.parser, payload, "script");
			res.colSeparationType = "small";
			return res;
		},
		htmlBuilder: htmlBuilder$6,
		mathmlBuilder: mathmlBuilder$5
	});
	defineEnvironment({
		type: "array",
		names: ["subarray"],
		props: { numArgs: 1 },
		handler(context, args) {
			var symNode = checkSymbolNodeType(args[0]);
			var colalign = symNode ? [args[0]] : assertNodeType(args[0], "ordgroup").body;
			var cols = colalign.map(function(nde) {
				var node = assertSymbolNodeType(nde);
				var ca = node.text;
				if ("lc".indexOf(ca) !== -1) {
					return {
						type: "align",
						align: ca
					};
				}
				throw new ParseError("Unknown column alignment: " + ca, nde);
			});
			if (cols.length > 1) {
				throw new ParseError("{subarray} can contain only one column");
			}
			var res = {
				cols,
				hskipBeforeAndAfter: false,
				arraystretch: .5
			};
			res = parseArray(context.parser, res, "script");
			if (res.body.length > 0 && res.body[0].length > 1) {
				throw new ParseError("{subarray} can contain only one column");
			}
			return res;
		},
		htmlBuilder: htmlBuilder$6,
		mathmlBuilder: mathmlBuilder$5
	});
	defineEnvironment({
		type: "array",
		names: [
			"cases",
			"dcases",
			"rcases",
			"drcases"
		],
		props: { numArgs: 0 },
		handler(context) {
			var payload = {
				arraystretch: 1.2,
				cols: [{
					type: "align",
					align: "l",
					pregap: 0,
					postgap: 1
				}, {
					type: "align",
					align: "l",
					pregap: 0,
					postgap: 0
				}]
			};
			var res = parseArray(context.parser, payload, dCellStyle(context.envName));
			return {
				type: "leftright",
				mode: context.mode,
				body: [res],
				left: context.envName.indexOf("r") > -1 ? "." : "\\{",
				right: context.envName.indexOf("r") > -1 ? "\\}" : ".",
				rightColor: undefined
			};
		},
		htmlBuilder: htmlBuilder$6,
		mathmlBuilder: mathmlBuilder$5
	});
	defineEnvironment({
		type: "array",
		names: [
			"align",
			"align*",
			"aligned",
			"split"
		],
		props: { numArgs: 0 },
		handler: alignedHandler,
		htmlBuilder: htmlBuilder$6,
		mathmlBuilder: mathmlBuilder$5
	});
	defineEnvironment({
		type: "array",
		names: [
			"gathered",
			"gather",
			"gather*"
		],
		props: { numArgs: 0 },
		handler(context) {
			if (["gather", "gather*"].includes(context.envName)) {
				validateAmsEnvironmentContext(context);
			}
			var res = {
				cols: [{
					type: "align",
					align: "c"
				}],
				addJot: true,
				colSeparationType: "gather",
				autoTag: getAutoTag(context.envName),
				emptySingleRow: true,
				leqno: context.parser.settings.leqno
			};
			return parseArray(context.parser, res, "display");
		},
		htmlBuilder: htmlBuilder$6,
		mathmlBuilder: mathmlBuilder$5
	});
	defineEnvironment({
		type: "array",
		names: [
			"alignat",
			"alignat*",
			"alignedat"
		],
		props: { numArgs: 1 },
		handler: alignedHandler,
		htmlBuilder: htmlBuilder$6,
		mathmlBuilder: mathmlBuilder$5
	});
	defineEnvironment({
		type: "array",
		names: ["equation", "equation*"],
		props: { numArgs: 0 },
		handler(context) {
			validateAmsEnvironmentContext(context);
			var res = {
				autoTag: getAutoTag(context.envName),
				emptySingleRow: true,
				singleRow: true,
				maxNumCols: 1,
				leqno: context.parser.settings.leqno
			};
			return parseArray(context.parser, res, "display");
		},
		htmlBuilder: htmlBuilder$6,
		mathmlBuilder: mathmlBuilder$5
	});
	defineEnvironment({
		type: "array",
		names: ["CD"],
		props: { numArgs: 0 },
		handler(context) {
			validateAmsEnvironmentContext(context);
			return parseCD(context.parser);
		},
		htmlBuilder: htmlBuilder$6,
		mathmlBuilder: mathmlBuilder$5
	});
	defineMacro("\\nonumber", "\\gdef\\@eqnsw{0}");
	defineMacro("\\notag", "\\nonumber");
	defineFunction({
		type: "text",
		names: ["\\hline", "\\hdashline"],
		props: {
			numArgs: 0,
			allowedInText: true,
			allowedInMath: true
		},
		handler(context, args) {
			throw new ParseError(context.funcName + " valid only within array environment");
		}
	});
	environments = _environments;
	defineFunction({
		type: "environment",
		names: ["\\begin", "\\end"],
		props: {
			numArgs: 1,
			argTypes: ["text"]
		},
		handler(_ref, args) {
			var { parser, funcName } = _ref;
			var nameGroup = args[0];
			if (nameGroup.type !== "ordgroup") {
				throw new ParseError("Invalid environment name", nameGroup);
			}
			var envName = "";
			for (var i$7 = 0; i$7 < nameGroup.body.length; ++i$7) {
				envName += assertNodeType(nameGroup.body[i$7], "textord").text;
			}
			if (funcName === "\\begin") {
				if (!environments.hasOwnProperty(envName)) {
					throw new ParseError("No such environment: " + envName, nameGroup);
				}
				var env = environments[envName];
				var { args: _args, optArgs } = parser.parseArguments("\\begin{" + envName + "}", env);
				var context = {
					mode: parser.mode,
					envName,
					parser
				};
				var result = env.handler(context, _args, optArgs);
				parser.expect("\\end", false);
				var endNameToken = parser.nextToken;
				var end = assertNodeType(parser.parseFunction(), "environment");
				if (end.name !== envName) {
					throw new ParseError("Mismatch: \\begin{" + envName + "} matched by \\end{" + end.name + "}", endNameToken);
				}
				return result;
			}
			return {
				type: "environment",
				mode: parser.mode,
				name: envName,
				nameGroup
			};
		}
	});
	htmlBuilder$5 = (group, options) => {
		var font = group.font;
		var newOptions = options.withFont(font);
		return buildGroup$1(group.body, newOptions);
	};
	mathmlBuilder$4 = (group, options) => {
		var font = group.font;
		var newOptions = options.withFont(font);
		return buildGroup(group.body, newOptions);
	};
	fontAliases = {
		"\\Bbb": "\\mathbb",
		"\\bold": "\\mathbf",
		"\\frak": "\\mathfrak",
		"\\bm": "\\boldsymbol"
	};
	defineFunction({
		type: "font",
		names: [
			"\\mathrm",
			"\\mathit",
			"\\mathbf",
			"\\mathnormal",
			"\\mathsfit",
			"\\mathbb",
			"\\mathcal",
			"\\mathfrak",
			"\\mathscr",
			"\\mathsf",
			"\\mathtt",
			"\\Bbb",
			"\\bold",
			"\\frak"
		],
		props: {
			numArgs: 1,
			allowedInArgument: true
		},
		handler: (_ref, args) => {
			var { parser, funcName } = _ref;
			var body = normalizeArgument(args[0]);
			var func = funcName;
			if (func in fontAliases) {
				func = fontAliases[func];
			}
			return {
				type: "font",
				mode: parser.mode,
				font: func.slice(1),
				body
			};
		},
		htmlBuilder: htmlBuilder$5,
		mathmlBuilder: mathmlBuilder$4
	});
	defineFunction({
		type: "mclass",
		names: ["\\boldsymbol", "\\bm"],
		props: { numArgs: 1 },
		handler: (_ref2, args) => {
			var { parser } = _ref2;
			var body = args[0];
			var isCharacterBox$1 = utils.isCharacterBox(body);
			return {
				type: "mclass",
				mode: parser.mode,
				mclass: binrelClass(body),
				body: [{
					type: "font",
					mode: parser.mode,
					font: "boldsymbol",
					body
				}],
				isCharacterBox: isCharacterBox$1
			};
		}
	});
	defineFunction({
		type: "font",
		names: [
			"\\rm",
			"\\sf",
			"\\tt",
			"\\bf",
			"\\it",
			"\\cal"
		],
		props: {
			numArgs: 0,
			allowedInText: true
		},
		handler: (_ref3, args) => {
			var { parser, funcName, breakOnTokenText } = _ref3;
			var { mode } = parser;
			var body = parser.parseExpression(true, breakOnTokenText);
			var style = "math" + funcName.slice(1);
			return {
				type: "font",
				mode,
				font: style,
				body: {
					type: "ordgroup",
					mode: parser.mode,
					body
				}
			};
		},
		htmlBuilder: htmlBuilder$5,
		mathmlBuilder: mathmlBuilder$4
	});
	adjustStyle = (size, originalStyle) => {
		var style = originalStyle;
		if (size === "display") {
			style = style.id >= Style$1.SCRIPT.id ? style.text() : Style$1.DISPLAY;
		} else if (size === "text" && style.size === Style$1.DISPLAY.size) {
			style = Style$1.TEXT;
		} else if (size === "script") {
			style = Style$1.SCRIPT;
		} else if (size === "scriptscript") {
			style = Style$1.SCRIPTSCRIPT;
		}
		return style;
	};
	htmlBuilder$4 = (group, options) => {
		var style = adjustStyle(group.size, options.style);
		var nstyle = style.fracNum();
		var dstyle = style.fracDen();
		var newOptions;
		newOptions = options.havingStyle(nstyle);
		var numerm = buildGroup$1(group.numer, newOptions, options);
		if (group.continued) {
			var hStrut = 8.5 / options.fontMetrics().ptPerEm;
			var dStrut = 3.5 / options.fontMetrics().ptPerEm;
			numerm.height = numerm.height < hStrut ? hStrut : numerm.height;
			numerm.depth = numerm.depth < dStrut ? dStrut : numerm.depth;
		}
		newOptions = options.havingStyle(dstyle);
		var denomm = buildGroup$1(group.denom, newOptions, options);
		var rule;
		var ruleWidth;
		var ruleSpacing;
		if (group.hasBarLine) {
			if (group.barSize) {
				ruleWidth = calculateSize(group.barSize, options);
				rule = buildCommon.makeLineSpan("frac-line", options, ruleWidth);
			} else {
				rule = buildCommon.makeLineSpan("frac-line", options);
			}
			ruleWidth = rule.height;
			ruleSpacing = rule.height;
		} else {
			rule = null;
			ruleWidth = 0;
			ruleSpacing = options.fontMetrics().defaultRuleThickness;
		}
		var numShift;
		var clearance;
		var denomShift;
		if (style.size === Style$1.DISPLAY.size || group.size === "display") {
			numShift = options.fontMetrics().num1;
			if (ruleWidth > 0) {
				clearance = 3 * ruleSpacing;
			} else {
				clearance = 7 * ruleSpacing;
			}
			denomShift = options.fontMetrics().denom1;
		} else {
			if (ruleWidth > 0) {
				numShift = options.fontMetrics().num2;
				clearance = ruleSpacing;
			} else {
				numShift = options.fontMetrics().num3;
				clearance = 3 * ruleSpacing;
			}
			denomShift = options.fontMetrics().denom2;
		}
		var frac$2;
		if (!rule) {
			var candidateClearance = numShift - numerm.depth - (denomm.height - denomShift);
			if (candidateClearance < clearance) {
				numShift += .5 * (clearance - candidateClearance);
				denomShift += .5 * (clearance - candidateClearance);
			}
			frac$2 = buildCommon.makeVList({
				positionType: "individualShift",
				children: [{
					type: "elem",
					elem: denomm,
					shift: denomShift
				}, {
					type: "elem",
					elem: numerm,
					shift: -numShift
				}]
			}, options);
		} else {
			var axisHeight = options.fontMetrics().axisHeight;
			if (numShift - numerm.depth - (axisHeight + .5 * ruleWidth) < clearance) {
				numShift += clearance - (numShift - numerm.depth - (axisHeight + .5 * ruleWidth));
			}
			if (axisHeight - .5 * ruleWidth - (denomm.height - denomShift) < clearance) {
				denomShift += clearance - (axisHeight - .5 * ruleWidth - (denomm.height - denomShift));
			}
			var midShift = -(axisHeight - .5 * ruleWidth);
			frac$2 = buildCommon.makeVList({
				positionType: "individualShift",
				children: [
					{
						type: "elem",
						elem: denomm,
						shift: denomShift
					},
					{
						type: "elem",
						elem: rule,
						shift: midShift
					},
					{
						type: "elem",
						elem: numerm,
						shift: -numShift
					}
				]
			}, options);
		}
		newOptions = options.havingStyle(style);
		frac$2.height *= newOptions.sizeMultiplier / options.sizeMultiplier;
		frac$2.depth *= newOptions.sizeMultiplier / options.sizeMultiplier;
		var delimSize;
		if (style.size === Style$1.DISPLAY.size) {
			delimSize = options.fontMetrics().delim1;
		} else if (style.size === Style$1.SCRIPTSCRIPT.size) {
			delimSize = options.havingStyle(Style$1.SCRIPT).fontMetrics().delim2;
		} else {
			delimSize = options.fontMetrics().delim2;
		}
		var leftDelim;
		var rightDelim;
		if (group.leftDelim == null) {
			leftDelim = makeNullDelimiter(options, ["mopen"]);
		} else {
			leftDelim = delimiter.customSizedDelim(group.leftDelim, delimSize, true, options.havingStyle(style), group.mode, ["mopen"]);
		}
		if (group.continued) {
			rightDelim = buildCommon.makeSpan([]);
		} else if (group.rightDelim == null) {
			rightDelim = makeNullDelimiter(options, ["mclose"]);
		} else {
			rightDelim = delimiter.customSizedDelim(group.rightDelim, delimSize, true, options.havingStyle(style), group.mode, ["mclose"]);
		}
		return buildCommon.makeSpan(["mord"].concat(newOptions.sizingClasses(options)), [
			leftDelim,
			buildCommon.makeSpan(["mfrac"], [frac$2]),
			rightDelim
		], options);
	};
	mathmlBuilder$3 = (group, options) => {
		var node = new mathMLTree.MathNode("mfrac", [buildGroup(group.numer, options), buildGroup(group.denom, options)]);
		if (!group.hasBarLine) {
			node.setAttribute("linethickness", "0px");
		} else if (group.barSize) {
			var ruleWidth = calculateSize(group.barSize, options);
			node.setAttribute("linethickness", makeEm(ruleWidth));
		}
		var style = adjustStyle(group.size, options.style);
		if (style.size !== options.style.size) {
			node = new mathMLTree.MathNode("mstyle", [node]);
			var isDisplay = style.size === Style$1.DISPLAY.size ? "true" : "false";
			node.setAttribute("displaystyle", isDisplay);
			node.setAttribute("scriptlevel", "0");
		}
		if (group.leftDelim != null || group.rightDelim != null) {
			var withDelims = [];
			if (group.leftDelim != null) {
				var leftOp = new mathMLTree.MathNode("mo", [new mathMLTree.TextNode(group.leftDelim.replace("\\", ""))]);
				leftOp.setAttribute("fence", "true");
				withDelims.push(leftOp);
			}
			withDelims.push(node);
			if (group.rightDelim != null) {
				var rightOp = new mathMLTree.MathNode("mo", [new mathMLTree.TextNode(group.rightDelim.replace("\\", ""))]);
				rightOp.setAttribute("fence", "true");
				withDelims.push(rightOp);
			}
			return makeRow(withDelims);
		}
		return node;
	};
	defineFunction({
		type: "genfrac",
		names: [
			"\\dfrac",
			"\\frac",
			"\\tfrac",
			"\\dbinom",
			"\\binom",
			"\\tbinom",
			"\\\\atopfrac",
			"\\\\bracefrac",
			"\\\\brackfrac"
		],
		props: {
			numArgs: 2,
			allowedInArgument: true
		},
		handler: (_ref, args) => {
			var { parser, funcName } = _ref;
			var numer = args[0];
			var denom = args[1];
			var hasBarLine;
			var leftDelim = null;
			var rightDelim = null;
			var size = "auto";
			switch (funcName) {
				case "\\dfrac":
				case "\\frac":
				case "\\tfrac":
					hasBarLine = true;
					break;
				case "\\\\atopfrac":
					hasBarLine = false;
					break;
				case "\\dbinom":
				case "\\binom":
				case "\\tbinom":
					hasBarLine = false;
					leftDelim = "(";
					rightDelim = ")";
					break;
				case "\\\\bracefrac":
					hasBarLine = false;
					leftDelim = "\\{";
					rightDelim = "\\}";
					break;
				case "\\\\brackfrac":
					hasBarLine = false;
					leftDelim = "[";
					rightDelim = "]";
					break;
				default: throw new Error("Unrecognized genfrac command");
			}
			switch (funcName) {
				case "\\dfrac":
				case "\\dbinom":
					size = "display";
					break;
				case "\\tfrac":
				case "\\tbinom":
					size = "text";
					break;
			}
			return {
				type: "genfrac",
				mode: parser.mode,
				continued: false,
				numer,
				denom,
				hasBarLine,
				leftDelim,
				rightDelim,
				size,
				barSize: null
			};
		},
		htmlBuilder: htmlBuilder$4,
		mathmlBuilder: mathmlBuilder$3
	});
	defineFunction({
		type: "genfrac",
		names: ["\\cfrac"],
		props: { numArgs: 2 },
		handler: (_ref2, args) => {
			var { parser, funcName } = _ref2;
			var numer = args[0];
			var denom = args[1];
			return {
				type: "genfrac",
				mode: parser.mode,
				continued: true,
				numer,
				denom,
				hasBarLine: true,
				leftDelim: null,
				rightDelim: null,
				size: "display",
				barSize: null
			};
		}
	});
	defineFunction({
		type: "infix",
		names: [
			"\\over",
			"\\choose",
			"\\atop",
			"\\brace",
			"\\brack"
		],
		props: {
			numArgs: 0,
			infix: true
		},
		handler(_ref3) {
			var { parser, funcName, token } = _ref3;
			var replaceWith;
			switch (funcName) {
				case "\\over":
					replaceWith = "\\frac";
					break;
				case "\\choose":
					replaceWith = "\\binom";
					break;
				case "\\atop":
					replaceWith = "\\\\atopfrac";
					break;
				case "\\brace":
					replaceWith = "\\\\bracefrac";
					break;
				case "\\brack":
					replaceWith = "\\\\brackfrac";
					break;
				default: throw new Error("Unrecognized infix genfrac command");
			}
			return {
				type: "infix",
				mode: parser.mode,
				replaceWith,
				token
			};
		}
	});
	stylArray = [
		"display",
		"text",
		"script",
		"scriptscript"
	];
	delimFromValue = function delimFromValue$1(delimString) {
		var delim = null;
		if (delimString.length > 0) {
			delim = delimString;
			delim = delim === "." ? null : delim;
		}
		return delim;
	};
	defineFunction({
		type: "genfrac",
		names: ["\\genfrac"],
		props: {
			numArgs: 6,
			allowedInArgument: true,
			argTypes: [
				"math",
				"math",
				"size",
				"text",
				"math",
				"math"
			]
		},
		handler(_ref4, args) {
			var { parser } = _ref4;
			var numer = args[4];
			var denom = args[5];
			var leftNode = normalizeArgument(args[0]);
			var leftDelim = leftNode.type === "atom" && leftNode.family === "open" ? delimFromValue(leftNode.text) : null;
			var rightNode = normalizeArgument(args[1]);
			var rightDelim = rightNode.type === "atom" && rightNode.family === "close" ? delimFromValue(rightNode.text) : null;
			var barNode = assertNodeType(args[2], "size");
			var hasBarLine;
			var barSize = null;
			if (barNode.isBlank) {
				hasBarLine = true;
			} else {
				barSize = barNode.value;
				hasBarLine = barSize.number > 0;
			}
			var size = "auto";
			var styl = args[3];
			if (styl.type === "ordgroup") {
				if (styl.body.length > 0) {
					var textOrd = assertNodeType(styl.body[0], "textord");
					size = stylArray[Number(textOrd.text)];
				}
			} else {
				styl = assertNodeType(styl, "textord");
				size = stylArray[Number(styl.text)];
			}
			return {
				type: "genfrac",
				mode: parser.mode,
				numer,
				denom,
				continued: false,
				hasBarLine,
				barSize,
				leftDelim,
				rightDelim,
				size
			};
		},
		htmlBuilder: htmlBuilder$4,
		mathmlBuilder: mathmlBuilder$3
	});
	defineFunction({
		type: "infix",
		names: ["\\above"],
		props: {
			numArgs: 1,
			argTypes: ["size"],
			infix: true
		},
		handler(_ref5, args) {
			var { parser, funcName, token } = _ref5;
			return {
				type: "infix",
				mode: parser.mode,
				replaceWith: "\\\\abovefrac",
				size: assertNodeType(args[0], "size").value,
				token
			};
		}
	});
	defineFunction({
		type: "genfrac",
		names: ["\\\\abovefrac"],
		props: {
			numArgs: 3,
			argTypes: [
				"math",
				"size",
				"math"
			]
		},
		handler: (_ref6, args) => {
			var { parser, funcName } = _ref6;
			var numer = args[0];
			var barSize = assert(assertNodeType(args[1], "infix").size);
			var denom = args[2];
			var hasBarLine = barSize.number > 0;
			return {
				type: "genfrac",
				mode: parser.mode,
				numer,
				denom,
				continued: false,
				hasBarLine,
				barSize,
				leftDelim: null,
				rightDelim: null,
				size: "auto"
			};
		},
		htmlBuilder: htmlBuilder$4,
		mathmlBuilder: mathmlBuilder$3
	});
	htmlBuilder$3 = (grp, options) => {
		var style = options.style;
		var supSubGroup;
		var group;
		if (grp.type === "supsub") {
			supSubGroup = grp.sup ? buildGroup$1(grp.sup, options.havingStyle(style.sup()), options) : buildGroup$1(grp.sub, options.havingStyle(style.sub()), options);
			group = assertNodeType(grp.base, "horizBrace");
		} else {
			group = assertNodeType(grp, "horizBrace");
		}
		var body = buildGroup$1(group.base, options.havingBaseStyle(Style$1.DISPLAY));
		var braceBody = stretchy.svgSpan(group, options);
		var vlist;
		if (group.isOver) {
			vlist = buildCommon.makeVList({
				positionType: "firstBaseline",
				children: [
					{
						type: "elem",
						elem: body
					},
					{
						type: "kern",
						size: .1
					},
					{
						type: "elem",
						elem: braceBody
					}
				]
			}, options);
			vlist.children[0].children[0].children[1].classes.push("svg-align");
		} else {
			vlist = buildCommon.makeVList({
				positionType: "bottom",
				positionData: body.depth + .1 + braceBody.height,
				children: [
					{
						type: "elem",
						elem: braceBody
					},
					{
						type: "kern",
						size: .1
					},
					{
						type: "elem",
						elem: body
					}
				]
			}, options);
			vlist.children[0].children[0].children[0].classes.push("svg-align");
		}
		if (supSubGroup) {
			var vSpan = buildCommon.makeSpan(["mord", group.isOver ? "mover" : "munder"], [vlist], options);
			if (group.isOver) {
				vlist = buildCommon.makeVList({
					positionType: "firstBaseline",
					children: [
						{
							type: "elem",
							elem: vSpan
						},
						{
							type: "kern",
							size: .2
						},
						{
							type: "elem",
							elem: supSubGroup
						}
					]
				}, options);
			} else {
				vlist = buildCommon.makeVList({
					positionType: "bottom",
					positionData: vSpan.depth + .2 + supSubGroup.height + supSubGroup.depth,
					children: [
						{
							type: "elem",
							elem: supSubGroup
						},
						{
							type: "kern",
							size: .2
						},
						{
							type: "elem",
							elem: vSpan
						}
					]
				}, options);
			}
		}
		return buildCommon.makeSpan(["mord", group.isOver ? "mover" : "munder"], [vlist], options);
	};
	mathmlBuilder$2 = (group, options) => {
		var accentNode = stretchy.mathMLnode(group.label);
		return new mathMLTree.MathNode(group.isOver ? "mover" : "munder", [buildGroup(group.base, options), accentNode]);
	};
	defineFunction({
		type: "horizBrace",
		names: ["\\overbrace", "\\underbrace"],
		props: { numArgs: 1 },
		handler(_ref, args) {
			var { parser, funcName } = _ref;
			return {
				type: "horizBrace",
				mode: parser.mode,
				label: funcName,
				isOver: /^\\over/.test(funcName),
				base: args[0]
			};
		},
		htmlBuilder: htmlBuilder$3,
		mathmlBuilder: mathmlBuilder$2
	});
	defineFunction({
		type: "href",
		names: ["\\href"],
		props: {
			numArgs: 2,
			argTypes: ["url", "original"],
			allowedInText: true
		},
		handler: (_ref, args) => {
			var { parser } = _ref;
			var body = args[1];
			var href = assertNodeType(args[0], "url").url;
			if (!parser.settings.isTrusted({
				command: "\\href",
				url: href
			})) {
				return parser.formatUnsupportedCmd("\\href");
			}
			return {
				type: "href",
				mode: parser.mode,
				href,
				body: ordargument(body)
			};
		},
		htmlBuilder: (group, options) => {
			var elements = buildExpression$1(group.body, options, false);
			return buildCommon.makeAnchor(group.href, [], elements, options);
		},
		mathmlBuilder: (group, options) => {
			var math$1 = buildExpressionRow(group.body, options);
			if (!(math$1 instanceof MathNode)) {
				math$1 = new MathNode("mrow", [math$1]);
			}
			math$1.setAttribute("href", group.href);
			return math$1;
		}
	});
	defineFunction({
		type: "href",
		names: ["\\url"],
		props: {
			numArgs: 1,
			argTypes: ["url"],
			allowedInText: true
		},
		handler: (_ref2, args) => {
			var { parser } = _ref2;
			var href = assertNodeType(args[0], "url").url;
			if (!parser.settings.isTrusted({
				command: "\\url",
				url: href
			})) {
				return parser.formatUnsupportedCmd("\\url");
			}
			var chars = [];
			for (var i$7 = 0; i$7 < href.length; i$7++) {
				var c$7 = href[i$7];
				if (c$7 === "~") {
					c$7 = "\\textasciitilde";
				}
				chars.push({
					type: "textord",
					mode: "text",
					text: c$7
				});
			}
			var body = {
				type: "text",
				mode: parser.mode,
				font: "\\texttt",
				body: chars
			};
			return {
				type: "href",
				mode: parser.mode,
				href,
				body: ordargument(body)
			};
		}
	});
	defineFunction({
		type: "hbox",
		names: ["\\hbox"],
		props: {
			numArgs: 1,
			argTypes: ["text"],
			allowedInText: true,
			primitive: true
		},
		handler(_ref, args) {
			var { parser } = _ref;
			return {
				type: "hbox",
				mode: parser.mode,
				body: ordargument(args[0])
			};
		},
		htmlBuilder(group, options) {
			var elements = buildExpression$1(group.body, options, false);
			return buildCommon.makeFragment(elements);
		},
		mathmlBuilder(group, options) {
			return new mathMLTree.MathNode("mrow", buildExpression(group.body, options));
		}
	});
	defineFunction({
		type: "html",
		names: [
			"\\htmlClass",
			"\\htmlId",
			"\\htmlStyle",
			"\\htmlData"
		],
		props: {
			numArgs: 2,
			argTypes: ["raw", "original"],
			allowedInText: true
		},
		handler: (_ref, args) => {
			var { parser, funcName, token } = _ref;
			var value = assertNodeType(args[0], "raw").string;
			var body = args[1];
			if (parser.settings.strict) {
				parser.settings.reportNonstrict("htmlExtension", "HTML extension is disabled on strict mode");
			}
			var trustContext;
			var attributes = {};
			switch (funcName) {
				case "\\htmlClass":
					attributes.class = value;
					trustContext = {
						command: "\\htmlClass",
						class: value
					};
					break;
				case "\\htmlId":
					attributes.id = value;
					trustContext = {
						command: "\\htmlId",
						id: value
					};
					break;
				case "\\htmlStyle":
					attributes.style = value;
					trustContext = {
						command: "\\htmlStyle",
						style: value
					};
					break;
				case "\\htmlData": {
					var data = value.split(",");
					for (var i$7 = 0; i$7 < data.length; i$7++) {
						var item = data[i$7];
						var firstEquals = item.indexOf("=");
						if (firstEquals < 0) {
							throw new ParseError("\\htmlData key/value '" + item + "'" + " missing equals sign");
						}
						var key = item.slice(0, firstEquals);
						var _value = item.slice(firstEquals + 1);
						attributes["data-" + key.trim()] = _value;
					}
					trustContext = {
						command: "\\htmlData",
						attributes
					};
					break;
				}
				default: throw new Error("Unrecognized html command");
			}
			if (!parser.settings.isTrusted(trustContext)) {
				return parser.formatUnsupportedCmd(funcName);
			}
			return {
				type: "html",
				mode: parser.mode,
				attributes,
				body: ordargument(body)
			};
		},
		htmlBuilder: (group, options) => {
			var elements = buildExpression$1(group.body, options, false);
			var classes = ["enclosing"];
			if (group.attributes.class) {
				classes.push(...group.attributes.class.trim().split(/\s+/));
			}
			var span = buildCommon.makeSpan(classes, elements, options);
			for (var attr in group.attributes) {
				if (attr !== "class" && group.attributes.hasOwnProperty(attr)) {
					span.setAttribute(attr, group.attributes[attr]);
				}
			}
			return span;
		},
		mathmlBuilder: (group, options) => {
			return buildExpressionRow(group.body, options);
		}
	});
	defineFunction({
		type: "htmlmathml",
		names: ["\\html@mathml"],
		props: {
			numArgs: 2,
			allowedInText: true
		},
		handler: (_ref, args) => {
			var { parser } = _ref;
			return {
				type: "htmlmathml",
				mode: parser.mode,
				html: ordargument(args[0]),
				mathml: ordargument(args[1])
			};
		},
		htmlBuilder: (group, options) => {
			var elements = buildExpression$1(group.html, options, false);
			return buildCommon.makeFragment(elements);
		},
		mathmlBuilder: (group, options) => {
			return buildExpressionRow(group.mathml, options);
		}
	});
	sizeData = function sizeData$1(str) {
		if (/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(str)) {
			return {
				number: +str,
				unit: "bp"
			};
		} else {
			var match = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(str);
			if (!match) {
				throw new ParseError("Invalid size: '" + str + "' in \\includegraphics");
			}
			var data = {
				number: +(match[1] + match[2]),
				unit: match[3]
			};
			if (!validUnit(data)) {
				throw new ParseError("Invalid unit: '" + data.unit + "' in \\includegraphics.");
			}
			return data;
		}
	};
	defineFunction({
		type: "includegraphics",
		names: ["\\includegraphics"],
		props: {
			numArgs: 1,
			numOptionalArgs: 1,
			argTypes: ["raw", "url"],
			allowedInText: false
		},
		handler: (_ref, args, optArgs) => {
			var { parser } = _ref;
			var width = {
				number: 0,
				unit: "em"
			};
			var height = {
				number: .9,
				unit: "em"
			};
			var totalheight = {
				number: 0,
				unit: "em"
			};
			var alt = "";
			if (optArgs[0]) {
				var attributeStr = assertNodeType(optArgs[0], "raw").string;
				var attributes = attributeStr.split(",");
				for (var i$7 = 0; i$7 < attributes.length; i$7++) {
					var keyVal = attributes[i$7].split("=");
					if (keyVal.length === 2) {
						var str = keyVal[1].trim();
						switch (keyVal[0].trim()) {
							case "alt":
								alt = str;
								break;
							case "width":
								width = sizeData(str);
								break;
							case "height":
								height = sizeData(str);
								break;
							case "totalheight":
								totalheight = sizeData(str);
								break;
							default: throw new ParseError("Invalid key: '" + keyVal[0] + "' in \\includegraphics.");
						}
					}
				}
			}
			var src = assertNodeType(args[0], "url").url;
			if (alt === "") {
				alt = src;
				alt = alt.replace(/^.*[\\/]/, "");
				alt = alt.substring(0, alt.lastIndexOf("."));
			}
			if (!parser.settings.isTrusted({
				command: "\\includegraphics",
				url: src
			})) {
				return parser.formatUnsupportedCmd("\\includegraphics");
			}
			return {
				type: "includegraphics",
				mode: parser.mode,
				alt,
				width,
				height,
				totalheight,
				src
			};
		},
		htmlBuilder: (group, options) => {
			var height = calculateSize(group.height, options);
			var depth = 0;
			if (group.totalheight.number > 0) {
				depth = calculateSize(group.totalheight, options) - height;
			}
			var width = 0;
			if (group.width.number > 0) {
				width = calculateSize(group.width, options);
			}
			var style = { height: makeEm(height + depth) };
			if (width > 0) {
				style.width = makeEm(width);
			}
			if (depth > 0) {
				style.verticalAlign = makeEm(-depth);
			}
			var node = new Img(group.src, group.alt, style);
			node.height = height;
			node.depth = depth;
			return node;
		},
		mathmlBuilder: (group, options) => {
			var node = new mathMLTree.MathNode("mglyph", []);
			node.setAttribute("alt", group.alt);
			var height = calculateSize(group.height, options);
			var depth = 0;
			if (group.totalheight.number > 0) {
				depth = calculateSize(group.totalheight, options) - height;
				node.setAttribute("valign", makeEm(-depth));
			}
			node.setAttribute("height", makeEm(height + depth));
			if (group.width.number > 0) {
				var width = calculateSize(group.width, options);
				node.setAttribute("width", makeEm(width));
			}
			node.setAttribute("src", group.src);
			return node;
		}
	});
	defineFunction({
		type: "kern",
		names: [
			"\\kern",
			"\\mkern",
			"\\hskip",
			"\\mskip"
		],
		props: {
			numArgs: 1,
			argTypes: ["size"],
			primitive: true,
			allowedInText: true
		},
		handler(_ref, args) {
			var { parser, funcName } = _ref;
			var size = assertNodeType(args[0], "size");
			if (parser.settings.strict) {
				var mathFunction = funcName[1] === "m";
				var muUnit = size.value.unit === "mu";
				if (mathFunction) {
					if (!muUnit) {
						parser.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + funcName + " supports only mu units, " + ("not " + size.value.unit + " units"));
					}
					if (parser.mode !== "math") {
						parser.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + funcName + " works only in math mode");
					}
				} else {
					if (muUnit) {
						parser.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + funcName + " doesn't support mu units");
					}
				}
			}
			return {
				type: "kern",
				mode: parser.mode,
				dimension: size.value
			};
		},
		htmlBuilder(group, options) {
			return buildCommon.makeGlue(group.dimension, options);
		},
		mathmlBuilder(group, options) {
			var dimension = calculateSize(group.dimension, options);
			return new mathMLTree.SpaceNode(dimension);
		}
	});
	defineFunction({
		type: "lap",
		names: [
			"\\mathllap",
			"\\mathrlap",
			"\\mathclap"
		],
		props: {
			numArgs: 1,
			allowedInText: true
		},
		handler: (_ref, args) => {
			var { parser, funcName } = _ref;
			var body = args[0];
			return {
				type: "lap",
				mode: parser.mode,
				alignment: funcName.slice(5),
				body
			};
		},
		htmlBuilder: (group, options) => {
			var inner$1;
			if (group.alignment === "clap") {
				inner$1 = buildCommon.makeSpan([], [buildGroup$1(group.body, options)]);
				inner$1 = buildCommon.makeSpan(["inner"], [inner$1], options);
			} else {
				inner$1 = buildCommon.makeSpan(["inner"], [buildGroup$1(group.body, options)]);
			}
			var fix$1 = buildCommon.makeSpan(["fix"], []);
			var node = buildCommon.makeSpan([group.alignment], [inner$1, fix$1], options);
			var strut = buildCommon.makeSpan(["strut"]);
			strut.style.height = makeEm(node.height + node.depth);
			if (node.depth) {
				strut.style.verticalAlign = makeEm(-node.depth);
			}
			node.children.unshift(strut);
			node = buildCommon.makeSpan(["thinbox"], [node], options);
			return buildCommon.makeSpan(["mord", "vbox"], [node], options);
		},
		mathmlBuilder: (group, options) => {
			var node = new mathMLTree.MathNode("mpadded", [buildGroup(group.body, options)]);
			if (group.alignment !== "rlap") {
				var offset = group.alignment === "llap" ? "-1" : "-0.5";
				node.setAttribute("lspace", offset + "width");
			}
			node.setAttribute("width", "0px");
			return node;
		}
	});
	defineFunction({
		type: "styling",
		names: ["\\(", "$"],
		props: {
			numArgs: 0,
			allowedInText: true,
			allowedInMath: false
		},
		handler(_ref, args) {
			var { funcName, parser } = _ref;
			var outerMode = parser.mode;
			parser.switchMode("math");
			var close$1 = funcName === "\\(" ? "\\)" : "$";
			var body = parser.parseExpression(false, close$1);
			parser.expect(close$1);
			parser.switchMode(outerMode);
			return {
				type: "styling",
				mode: parser.mode,
				style: "text",
				body
			};
		}
	});
	defineFunction({
		type: "text",
		names: ["\\)", "\\]"],
		props: {
			numArgs: 0,
			allowedInText: true,
			allowedInMath: false
		},
		handler(context, args) {
			throw new ParseError("Mismatched " + context.funcName);
		}
	});
	chooseMathStyle = (group, options) => {
		switch (options.style.size) {
			case Style$1.DISPLAY.size: return group.display;
			case Style$1.TEXT.size: return group.text;
			case Style$1.SCRIPT.size: return group.script;
			case Style$1.SCRIPTSCRIPT.size: return group.scriptscript;
			default: return group.text;
		}
	};
	defineFunction({
		type: "mathchoice",
		names: ["\\mathchoice"],
		props: {
			numArgs: 4,
			primitive: true
		},
		handler: (_ref, args) => {
			var { parser } = _ref;
			return {
				type: "mathchoice",
				mode: parser.mode,
				display: ordargument(args[0]),
				text: ordargument(args[1]),
				script: ordargument(args[2]),
				scriptscript: ordargument(args[3])
			};
		},
		htmlBuilder: (group, options) => {
			var body = chooseMathStyle(group, options);
			var elements = buildExpression$1(body, options, false);
			return buildCommon.makeFragment(elements);
		},
		mathmlBuilder: (group, options) => {
			var body = chooseMathStyle(group, options);
			return buildExpressionRow(body, options);
		}
	});
	assembleSupSub = (base, supGroup, subGroup, options, style, slant, baseShift) => {
		base = buildCommon.makeSpan([], [base]);
		var subIsSingleCharacter = subGroup && utils.isCharacterBox(subGroup);
		var sub$1;
		var sup$1;
		if (supGroup) {
			var elem = buildGroup$1(supGroup, options.havingStyle(style.sup()), options);
			sup$1 = {
				elem,
				kern: Math.max(options.fontMetrics().bigOpSpacing1, options.fontMetrics().bigOpSpacing3 - elem.depth)
			};
		}
		if (subGroup) {
			var _elem = buildGroup$1(subGroup, options.havingStyle(style.sub()), options);
			sub$1 = {
				elem: _elem,
				kern: Math.max(options.fontMetrics().bigOpSpacing2, options.fontMetrics().bigOpSpacing4 - _elem.height)
			};
		}
		var finalGroup;
		if (sup$1 && sub$1) {
			var bottom = options.fontMetrics().bigOpSpacing5 + sub$1.elem.height + sub$1.elem.depth + sub$1.kern + base.depth + baseShift;
			finalGroup = buildCommon.makeVList({
				positionType: "bottom",
				positionData: bottom,
				children: [
					{
						type: "kern",
						size: options.fontMetrics().bigOpSpacing5
					},
					{
						type: "elem",
						elem: sub$1.elem,
						marginLeft: makeEm(-slant)
					},
					{
						type: "kern",
						size: sub$1.kern
					},
					{
						type: "elem",
						elem: base
					},
					{
						type: "kern",
						size: sup$1.kern
					},
					{
						type: "elem",
						elem: sup$1.elem,
						marginLeft: makeEm(slant)
					},
					{
						type: "kern",
						size: options.fontMetrics().bigOpSpacing5
					}
				]
			}, options);
		} else if (sub$1) {
			var top = base.height - baseShift;
			finalGroup = buildCommon.makeVList({
				positionType: "top",
				positionData: top,
				children: [
					{
						type: "kern",
						size: options.fontMetrics().bigOpSpacing5
					},
					{
						type: "elem",
						elem: sub$1.elem,
						marginLeft: makeEm(-slant)
					},
					{
						type: "kern",
						size: sub$1.kern
					},
					{
						type: "elem",
						elem: base
					}
				]
			}, options);
		} else if (sup$1) {
			var _bottom = base.depth + baseShift;
			finalGroup = buildCommon.makeVList({
				positionType: "bottom",
				positionData: _bottom,
				children: [
					{
						type: "elem",
						elem: base
					},
					{
						type: "kern",
						size: sup$1.kern
					},
					{
						type: "elem",
						elem: sup$1.elem,
						marginLeft: makeEm(slant)
					},
					{
						type: "kern",
						size: options.fontMetrics().bigOpSpacing5
					}
				]
			}, options);
		} else {
			return base;
		}
		var parts = [finalGroup];
		if (sub$1 && slant !== 0 && !subIsSingleCharacter) {
			var spacer = buildCommon.makeSpan(["mspace"], [], options);
			spacer.style.marginRight = makeEm(slant);
			parts.unshift(spacer);
		}
		return buildCommon.makeSpan(["mop", "op-limits"], parts, options);
	};
	noSuccessor = ["\\smallint"];
	htmlBuilder$2 = (grp, options) => {
		var supGroup;
		var subGroup;
		var hasLimits = false;
		var group;
		if (grp.type === "supsub") {
			supGroup = grp.sup;
			subGroup = grp.sub;
			group = assertNodeType(grp.base, "op");
			hasLimits = true;
		} else {
			group = assertNodeType(grp, "op");
		}
		var style = options.style;
		var large = false;
		if (style.size === Style$1.DISPLAY.size && group.symbol && !noSuccessor.includes(group.name)) {
			large = true;
		}
		var base;
		if (group.symbol) {
			var fontName = large ? "Size2-Regular" : "Size1-Regular";
			var stash = "";
			if (group.name === "\\oiint" || group.name === "\\oiiint") {
				stash = group.name.slice(1);
				group.name = stash === "oiint" ? "\\iint" : "\\iiint";
			}
			base = buildCommon.makeSymbol(group.name, fontName, "math", options, [
				"mop",
				"op-symbol",
				large ? "large-op" : "small-op"
			]);
			if (stash.length > 0) {
				var italic = base.italic;
				var oval = buildCommon.staticSvg(stash + "Size" + (large ? "2" : "1"), options);
				base = buildCommon.makeVList({
					positionType: "individualShift",
					children: [{
						type: "elem",
						elem: base,
						shift: 0
					}, {
						type: "elem",
						elem: oval,
						shift: large ? .08 : 0
					}]
				}, options);
				group.name = "\\" + stash;
				base.classes.unshift("mop");
				base.italic = italic;
			}
		} else if (group.body) {
			var inner$1 = buildExpression$1(group.body, options, true);
			if (inner$1.length === 1 && inner$1[0] instanceof SymbolNode) {
				base = inner$1[0];
				base.classes[0] = "mop";
			} else {
				base = buildCommon.makeSpan(["mop"], inner$1, options);
			}
		} else {
			var output = [];
			for (var i$7 = 1; i$7 < group.name.length; i$7++) {
				output.push(buildCommon.mathsym(group.name[i$7], group.mode, options));
			}
			base = buildCommon.makeSpan(["mop"], output, options);
		}
		var baseShift = 0;
		var slant = 0;
		if ((base instanceof SymbolNode || group.name === "\\oiint" || group.name === "\\oiiint") && !group.suppressBaseShift) {
			baseShift = (base.height - base.depth) / 2 - options.fontMetrics().axisHeight;
			slant = base.italic;
		}
		if (hasLimits) {
			return assembleSupSub(base, supGroup, subGroup, options, style, slant, baseShift);
		} else {
			if (baseShift) {
				base.style.position = "relative";
				base.style.top = makeEm(baseShift);
			}
			return base;
		}
	};
	mathmlBuilder$1 = (group, options) => {
		var node;
		if (group.symbol) {
			node = new MathNode("mo", [makeText(group.name, group.mode)]);
			if (noSuccessor.includes(group.name)) {
				node.setAttribute("largeop", "false");
			}
		} else if (group.body) {
			node = new MathNode("mo", buildExpression(group.body, options));
		} else {
			node = new MathNode("mi", [new TextNode(group.name.slice(1))]);
			var operator$1 = new MathNode("mo", [makeText("⁡", "text")]);
			if (group.parentIsSupSub) {
				node = new MathNode("mrow", [node, operator$1]);
			} else {
				node = newDocumentFragment([node, operator$1]);
			}
		}
		return node;
	};
	singleCharBigOps = {
		"∏": "\\prod",
		"∐": "\\coprod",
		"∑": "\\sum",
		"⋀": "\\bigwedge",
		"⋁": "\\bigvee",
		"⋂": "\\bigcap",
		"⋃": "\\bigcup",
		"⨀": "\\bigodot",
		"⨁": "\\bigoplus",
		"⨂": "\\bigotimes",
		"⨄": "\\biguplus",
		"⨆": "\\bigsqcup"
	};
	defineFunction({
		type: "op",
		names: [
			"\\coprod",
			"\\bigvee",
			"\\bigwedge",
			"\\biguplus",
			"\\bigcap",
			"\\bigcup",
			"\\intop",
			"\\prod",
			"\\sum",
			"\\bigotimes",
			"\\bigoplus",
			"\\bigodot",
			"\\bigsqcup",
			"\\smallint",
			"∏",
			"∐",
			"∑",
			"⋀",
			"⋁",
			"⋂",
			"⋃",
			"⨀",
			"⨁",
			"⨂",
			"⨄",
			"⨆"
		],
		props: { numArgs: 0 },
		handler: (_ref, args) => {
			var { parser, funcName } = _ref;
			var fName = funcName;
			if (fName.length === 1) {
				fName = singleCharBigOps[fName];
			}
			return {
				type: "op",
				mode: parser.mode,
				limits: true,
				parentIsSupSub: false,
				symbol: true,
				name: fName
			};
		},
		htmlBuilder: htmlBuilder$2,
		mathmlBuilder: mathmlBuilder$1
	});
	defineFunction({
		type: "op",
		names: ["\\mathop"],
		props: {
			numArgs: 1,
			primitive: true
		},
		handler: (_ref2, args) => {
			var { parser } = _ref2;
			var body = args[0];
			return {
				type: "op",
				mode: parser.mode,
				limits: false,
				parentIsSupSub: false,
				symbol: false,
				body: ordargument(body)
			};
		},
		htmlBuilder: htmlBuilder$2,
		mathmlBuilder: mathmlBuilder$1
	});
	singleCharIntegrals = {
		"∫": "\\int",
		"∬": "\\iint",
		"∭": "\\iiint",
		"∮": "\\oint",
		"∯": "\\oiint",
		"∰": "\\oiiint"
	};
	defineFunction({
		type: "op",
		names: [
			"\\arcsin",
			"\\arccos",
			"\\arctan",
			"\\arctg",
			"\\arcctg",
			"\\arg",
			"\\ch",
			"\\cos",
			"\\cosec",
			"\\cosh",
			"\\cot",
			"\\cotg",
			"\\coth",
			"\\csc",
			"\\ctg",
			"\\cth",
			"\\deg",
			"\\dim",
			"\\exp",
			"\\hom",
			"\\ker",
			"\\lg",
			"\\ln",
			"\\log",
			"\\sec",
			"\\sin",
			"\\sinh",
			"\\sh",
			"\\tan",
			"\\tanh",
			"\\tg",
			"\\th"
		],
		props: { numArgs: 0 },
		handler(_ref3) {
			var { parser, funcName } = _ref3;
			return {
				type: "op",
				mode: parser.mode,
				limits: false,
				parentIsSupSub: false,
				symbol: false,
				name: funcName
			};
		},
		htmlBuilder: htmlBuilder$2,
		mathmlBuilder: mathmlBuilder$1
	});
	defineFunction({
		type: "op",
		names: [
			"\\det",
			"\\gcd",
			"\\inf",
			"\\lim",
			"\\max",
			"\\min",
			"\\Pr",
			"\\sup"
		],
		props: { numArgs: 0 },
		handler(_ref4) {
			var { parser, funcName } = _ref4;
			return {
				type: "op",
				mode: parser.mode,
				limits: true,
				parentIsSupSub: false,
				symbol: false,
				name: funcName
			};
		},
		htmlBuilder: htmlBuilder$2,
		mathmlBuilder: mathmlBuilder$1
	});
	defineFunction({
		type: "op",
		names: [
			"\\int",
			"\\iint",
			"\\iiint",
			"\\oint",
			"\\oiint",
			"\\oiiint",
			"∫",
			"∬",
			"∭",
			"∮",
			"∯",
			"∰"
		],
		props: {
			numArgs: 0,
			allowedInArgument: true
		},
		handler(_ref5) {
			var { parser, funcName } = _ref5;
			var fName = funcName;
			if (fName.length === 1) {
				fName = singleCharIntegrals[fName];
			}
			return {
				type: "op",
				mode: parser.mode,
				limits: false,
				parentIsSupSub: false,
				symbol: true,
				name: fName
			};
		},
		htmlBuilder: htmlBuilder$2,
		mathmlBuilder: mathmlBuilder$1
	});
	htmlBuilder$1 = (grp, options) => {
		var supGroup;
		var subGroup;
		var hasLimits = false;
		var group;
		if (grp.type === "supsub") {
			supGroup = grp.sup;
			subGroup = grp.sub;
			group = assertNodeType(grp.base, "operatorname");
			hasLimits = true;
		} else {
			group = assertNodeType(grp, "operatorname");
		}
		var base;
		if (group.body.length > 0) {
			var body = group.body.map((child$1) => {
				var childText = child$1.text;
				if (typeof childText === "string") {
					return {
						type: "textord",
						mode: child$1.mode,
						text: childText
					};
				} else {
					return child$1;
				}
			});
			var expression = buildExpression$1(body, options.withFont("mathrm"), true);
			for (var i$7 = 0; i$7 < expression.length; i$7++) {
				var child = expression[i$7];
				if (child instanceof SymbolNode) {
					child.text = child.text.replace(/\u2212/, "-").replace(/\u2217/, "*");
				}
			}
			base = buildCommon.makeSpan(["mop"], expression, options);
		} else {
			base = buildCommon.makeSpan(["mop"], [], options);
		}
		if (hasLimits) {
			return assembleSupSub(base, supGroup, subGroup, options, options.style, 0, 0);
		} else {
			return base;
		}
	};
	mathmlBuilder = (group, options) => {
		var expression = buildExpression(group.body, options.withFont("mathrm"));
		var isAllString = true;
		for (var i$7 = 0; i$7 < expression.length; i$7++) {
			var node = expression[i$7];
			if (node instanceof mathMLTree.SpaceNode);
			else if (node instanceof mathMLTree.MathNode) {
				switch (node.type) {
					case "mi":
					case "mn":
					case "ms":
					case "mspace":
					case "mtext": break;
					case "mo": {
						var child = node.children[0];
						if (node.children.length === 1 && child instanceof mathMLTree.TextNode) {
							child.text = child.text.replace(/\u2212/, "-").replace(/\u2217/, "*");
						} else {
							isAllString = false;
						}
						break;
					}
					default: isAllString = false;
				}
			} else {
				isAllString = false;
			}
		}
		if (isAllString) {
			var word = expression.map((node$1) => node$1.toText()).join("");
			expression = [new mathMLTree.TextNode(word)];
		}
		var identifier$1 = new mathMLTree.MathNode("mi", expression);
		identifier$1.setAttribute("mathvariant", "normal");
		var operator$1 = new mathMLTree.MathNode("mo", [makeText("⁡", "text")]);
		if (group.parentIsSupSub) {
			return new mathMLTree.MathNode("mrow", [identifier$1, operator$1]);
		} else {
			return mathMLTree.newDocumentFragment([identifier$1, operator$1]);
		}
	};
	defineFunction({
		type: "operatorname",
		names: ["\\operatorname@", "\\operatornamewithlimits"],
		props: { numArgs: 1 },
		handler: (_ref, args) => {
			var { parser, funcName } = _ref;
			var body = args[0];
			return {
				type: "operatorname",
				mode: parser.mode,
				body: ordargument(body),
				alwaysHandleSupSub: funcName === "\\operatornamewithlimits",
				limits: false,
				parentIsSupSub: false
			};
		},
		htmlBuilder: htmlBuilder$1,
		mathmlBuilder
	});
	defineMacro("\\operatorname", "\\@ifstar\\operatornamewithlimits\\operatorname@");
	defineFunctionBuilders({
		type: "ordgroup",
		htmlBuilder(group, options) {
			if (group.semisimple) {
				return buildCommon.makeFragment(buildExpression$1(group.body, options, false));
			}
			return buildCommon.makeSpan(["mord"], buildExpression$1(group.body, options, true), options);
		},
		mathmlBuilder(group, options) {
			return buildExpressionRow(group.body, options, true);
		}
	});
	defineFunction({
		type: "overline",
		names: ["\\overline"],
		props: { numArgs: 1 },
		handler(_ref, args) {
			var { parser } = _ref;
			var body = args[0];
			return {
				type: "overline",
				mode: parser.mode,
				body
			};
		},
		htmlBuilder(group, options) {
			var innerGroup = buildGroup$1(group.body, options.havingCrampedStyle());
			var line = buildCommon.makeLineSpan("overline-line", options);
			var defaultRuleThickness = options.fontMetrics().defaultRuleThickness;
			var vlist = buildCommon.makeVList({
				positionType: "firstBaseline",
				children: [
					{
						type: "elem",
						elem: innerGroup
					},
					{
						type: "kern",
						size: 3 * defaultRuleThickness
					},
					{
						type: "elem",
						elem: line
					},
					{
						type: "kern",
						size: defaultRuleThickness
					}
				]
			}, options);
			return buildCommon.makeSpan(["mord", "overline"], [vlist], options);
		},
		mathmlBuilder(group, options) {
			var operator$1 = new mathMLTree.MathNode("mo", [new mathMLTree.TextNode("‾")]);
			operator$1.setAttribute("stretchy", "true");
			var node = new mathMLTree.MathNode("mover", [buildGroup(group.body, options), operator$1]);
			node.setAttribute("accent", "true");
			return node;
		}
	});
	defineFunction({
		type: "phantom",
		names: ["\\phantom"],
		props: {
			numArgs: 1,
			allowedInText: true
		},
		handler: (_ref, args) => {
			var { parser } = _ref;
			var body = args[0];
			return {
				type: "phantom",
				mode: parser.mode,
				body: ordargument(body)
			};
		},
		htmlBuilder: (group, options) => {
			var elements = buildExpression$1(group.body, options.withPhantom(), false);
			return buildCommon.makeFragment(elements);
		},
		mathmlBuilder: (group, options) => {
			var inner$1 = buildExpression(group.body, options);
			return new mathMLTree.MathNode("mphantom", inner$1);
		}
	});
	defineFunction({
		type: "hphantom",
		names: ["\\hphantom"],
		props: {
			numArgs: 1,
			allowedInText: true
		},
		handler: (_ref2, args) => {
			var { parser } = _ref2;
			var body = args[0];
			return {
				type: "hphantom",
				mode: parser.mode,
				body
			};
		},
		htmlBuilder: (group, options) => {
			var node = buildCommon.makeSpan([], [buildGroup$1(group.body, options.withPhantom())]);
			node.height = 0;
			node.depth = 0;
			if (node.children) {
				for (var i$7 = 0; i$7 < node.children.length; i$7++) {
					node.children[i$7].height = 0;
					node.children[i$7].depth = 0;
				}
			}
			node = buildCommon.makeVList({
				positionType: "firstBaseline",
				children: [{
					type: "elem",
					elem: node
				}]
			}, options);
			return buildCommon.makeSpan(["mord"], [node], options);
		},
		mathmlBuilder: (group, options) => {
			var inner$1 = buildExpression(ordargument(group.body), options);
			var phantom = new mathMLTree.MathNode("mphantom", inner$1);
			var node = new mathMLTree.MathNode("mpadded", [phantom]);
			node.setAttribute("height", "0px");
			node.setAttribute("depth", "0px");
			return node;
		}
	});
	defineFunction({
		type: "vphantom",
		names: ["\\vphantom"],
		props: {
			numArgs: 1,
			allowedInText: true
		},
		handler: (_ref3, args) => {
			var { parser } = _ref3;
			var body = args[0];
			return {
				type: "vphantom",
				mode: parser.mode,
				body
			};
		},
		htmlBuilder: (group, options) => {
			var inner$1 = buildCommon.makeSpan(["inner"], [buildGroup$1(group.body, options.withPhantom())]);
			var fix$1 = buildCommon.makeSpan(["fix"], []);
			return buildCommon.makeSpan(["mord", "rlap"], [inner$1, fix$1], options);
		},
		mathmlBuilder: (group, options) => {
			var inner$1 = buildExpression(ordargument(group.body), options);
			var phantom = new mathMLTree.MathNode("mphantom", inner$1);
			var node = new mathMLTree.MathNode("mpadded", [phantom]);
			node.setAttribute("width", "0px");
			return node;
		}
	});
	defineFunction({
		type: "raisebox",
		names: ["\\raisebox"],
		props: {
			numArgs: 2,
			argTypes: ["size", "hbox"],
			allowedInText: true
		},
		handler(_ref, args) {
			var { parser } = _ref;
			var amount = assertNodeType(args[0], "size").value;
			var body = args[1];
			return {
				type: "raisebox",
				mode: parser.mode,
				dy: amount,
				body
			};
		},
		htmlBuilder(group, options) {
			var body = buildGroup$1(group.body, options);
			var dy = calculateSize(group.dy, options);
			return buildCommon.makeVList({
				positionType: "shift",
				positionData: -dy,
				children: [{
					type: "elem",
					elem: body
				}]
			}, options);
		},
		mathmlBuilder(group, options) {
			var node = new mathMLTree.MathNode("mpadded", [buildGroup(group.body, options)]);
			var dy = group.dy.number + group.dy.unit;
			node.setAttribute("voffset", dy);
			return node;
		}
	});
	defineFunction({
		type: "internal",
		names: ["\\relax"],
		props: {
			numArgs: 0,
			allowedInText: true,
			allowedInArgument: true
		},
		handler(_ref) {
			var { parser } = _ref;
			return {
				type: "internal",
				mode: parser.mode
			};
		}
	});
	defineFunction({
		type: "rule",
		names: ["\\rule"],
		props: {
			numArgs: 2,
			numOptionalArgs: 1,
			allowedInText: true,
			allowedInMath: true,
			argTypes: [
				"size",
				"size",
				"size"
			]
		},
		handler(_ref, args, optArgs) {
			var { parser } = _ref;
			var shift = optArgs[0];
			var width = assertNodeType(args[0], "size");
			var height = assertNodeType(args[1], "size");
			return {
				type: "rule",
				mode: parser.mode,
				shift: shift && assertNodeType(shift, "size").value,
				width: width.value,
				height: height.value
			};
		},
		htmlBuilder(group, options) {
			var rule = buildCommon.makeSpan(["mord", "rule"], [], options);
			var width = calculateSize(group.width, options);
			var height = calculateSize(group.height, options);
			var shift = group.shift ? calculateSize(group.shift, options) : 0;
			rule.style.borderRightWidth = makeEm(width);
			rule.style.borderTopWidth = makeEm(height);
			rule.style.bottom = makeEm(shift);
			rule.width = width;
			rule.height = height + shift;
			rule.depth = -shift;
			rule.maxFontSize = height * 1.125 * options.sizeMultiplier;
			return rule;
		},
		mathmlBuilder(group, options) {
			var width = calculateSize(group.width, options);
			var height = calculateSize(group.height, options);
			var shift = group.shift ? calculateSize(group.shift, options) : 0;
			var color = options.color && options.getColor() || "black";
			var rule = new mathMLTree.MathNode("mspace");
			rule.setAttribute("mathbackground", color);
			rule.setAttribute("width", makeEm(width));
			rule.setAttribute("height", makeEm(height));
			var wrapper = new mathMLTree.MathNode("mpadded", [rule]);
			if (shift >= 0) {
				wrapper.setAttribute("height", makeEm(shift));
			} else {
				wrapper.setAttribute("height", makeEm(shift));
				wrapper.setAttribute("depth", makeEm(-shift));
			}
			wrapper.setAttribute("voffset", makeEm(shift));
			return wrapper;
		}
	});
	sizeFuncs = [
		"\\tiny",
		"\\sixptsize",
		"\\scriptsize",
		"\\footnotesize",
		"\\small",
		"\\normalsize",
		"\\large",
		"\\Large",
		"\\LARGE",
		"\\huge",
		"\\Huge"
	];
	htmlBuilder = (group, options) => {
		var newOptions = options.havingSize(group.size);
		return sizingGroup(group.body, newOptions, options);
	};
	defineFunction({
		type: "sizing",
		names: sizeFuncs,
		props: {
			numArgs: 0,
			allowedInText: true
		},
		handler: (_ref, args) => {
			var { breakOnTokenText, funcName, parser } = _ref;
			var body = parser.parseExpression(false, breakOnTokenText);
			return {
				type: "sizing",
				mode: parser.mode,
				size: sizeFuncs.indexOf(funcName) + 1,
				body
			};
		},
		htmlBuilder,
		mathmlBuilder: (group, options) => {
			var newOptions = options.havingSize(group.size);
			var inner$1 = buildExpression(group.body, newOptions);
			var node = new mathMLTree.MathNode("mstyle", inner$1);
			node.setAttribute("mathsize", makeEm(newOptions.sizeMultiplier));
			return node;
		}
	});
	defineFunction({
		type: "smash",
		names: ["\\smash"],
		props: {
			numArgs: 1,
			numOptionalArgs: 1,
			allowedInText: true
		},
		handler: (_ref, args, optArgs) => {
			var { parser } = _ref;
			var smashHeight = false;
			var smashDepth = false;
			var tbArg = optArgs[0] && assertNodeType(optArgs[0], "ordgroup");
			if (tbArg) {
				var letter = "";
				for (var i$7 = 0; i$7 < tbArg.body.length; ++i$7) {
					var node = tbArg.body[i$7];
					letter = node.text;
					if (letter === "t") {
						smashHeight = true;
					} else if (letter === "b") {
						smashDepth = true;
					} else {
						smashHeight = false;
						smashDepth = false;
						break;
					}
				}
			} else {
				smashHeight = true;
				smashDepth = true;
			}
			var body = args[0];
			return {
				type: "smash",
				mode: parser.mode,
				body,
				smashHeight,
				smashDepth
			};
		},
		htmlBuilder: (group, options) => {
			var node = buildCommon.makeSpan([], [buildGroup$1(group.body, options)]);
			if (!group.smashHeight && !group.smashDepth) {
				return node;
			}
			if (group.smashHeight) {
				node.height = 0;
				if (node.children) {
					for (var i$7 = 0; i$7 < node.children.length; i$7++) {
						node.children[i$7].height = 0;
					}
				}
			}
			if (group.smashDepth) {
				node.depth = 0;
				if (node.children) {
					for (var _i$1 = 0; _i$1 < node.children.length; _i$1++) {
						node.children[_i$1].depth = 0;
					}
				}
			}
			var smashedNode = buildCommon.makeVList({
				positionType: "firstBaseline",
				children: [{
					type: "elem",
					elem: node
				}]
			}, options);
			return buildCommon.makeSpan(["mord"], [smashedNode], options);
		},
		mathmlBuilder: (group, options) => {
			var node = new mathMLTree.MathNode("mpadded", [buildGroup(group.body, options)]);
			if (group.smashHeight) {
				node.setAttribute("height", "0px");
			}
			if (group.smashDepth) {
				node.setAttribute("depth", "0px");
			}
			return node;
		}
	});
	defineFunction({
		type: "sqrt",
		names: ["\\sqrt"],
		props: {
			numArgs: 1,
			numOptionalArgs: 1
		},
		handler(_ref, args, optArgs) {
			var { parser } = _ref;
			var index = optArgs[0];
			var body = args[0];
			return {
				type: "sqrt",
				mode: parser.mode,
				body,
				index
			};
		},
		htmlBuilder(group, options) {
			var inner$1 = buildGroup$1(group.body, options.havingCrampedStyle());
			if (inner$1.height === 0) {
				inner$1.height = options.fontMetrics().xHeight;
			}
			inner$1 = buildCommon.wrapFragment(inner$1, options);
			var metrics = options.fontMetrics();
			var theta = metrics.defaultRuleThickness;
			var phi = theta;
			if (options.style.id < Style$1.TEXT.id) {
				phi = options.fontMetrics().xHeight;
			}
			var lineClearance = theta + phi / 4;
			var minDelimiterHeight = inner$1.height + inner$1.depth + lineClearance + theta;
			var { span: img, ruleWidth, advanceWidth } = delimiter.sqrtImage(minDelimiterHeight, options);
			var delimDepth = img.height - ruleWidth;
			if (delimDepth > inner$1.height + inner$1.depth + lineClearance) {
				lineClearance = (lineClearance + delimDepth - inner$1.height - inner$1.depth) / 2;
			}
			var imgShift = img.height - inner$1.height - lineClearance - ruleWidth;
			inner$1.style.paddingLeft = makeEm(advanceWidth);
			var body = buildCommon.makeVList({
				positionType: "firstBaseline",
				children: [
					{
						type: "elem",
						elem: inner$1,
						wrapperClasses: ["svg-align"]
					},
					{
						type: "kern",
						size: -(inner$1.height + imgShift)
					},
					{
						type: "elem",
						elem: img
					},
					{
						type: "kern",
						size: ruleWidth
					}
				]
			}, options);
			if (!group.index) {
				return buildCommon.makeSpan(["mord", "sqrt"], [body], options);
			} else {
				var newOptions = options.havingStyle(Style$1.SCRIPTSCRIPT);
				var rootm = buildGroup$1(group.index, newOptions, options);
				var toShift = .6 * (body.height - body.depth);
				var rootVList = buildCommon.makeVList({
					positionType: "shift",
					positionData: -toShift,
					children: [{
						type: "elem",
						elem: rootm
					}]
				}, options);
				var rootVListWrap = buildCommon.makeSpan(["root"], [rootVList]);
				return buildCommon.makeSpan(["mord", "sqrt"], [rootVListWrap, body], options);
			}
		},
		mathmlBuilder(group, options) {
			var { body, index } = group;
			return index ? new mathMLTree.MathNode("mroot", [buildGroup(body, options), buildGroup(index, options)]) : new mathMLTree.MathNode("msqrt", [buildGroup(body, options)]);
		}
	});
	styleMap = {
		"display": Style$1.DISPLAY,
		"text": Style$1.TEXT,
		"script": Style$1.SCRIPT,
		"scriptscript": Style$1.SCRIPTSCRIPT
	};
	defineFunction({
		type: "styling",
		names: [
			"\\displaystyle",
			"\\textstyle",
			"\\scriptstyle",
			"\\scriptscriptstyle"
		],
		props: {
			numArgs: 0,
			allowedInText: true,
			primitive: true
		},
		handler(_ref, args) {
			var { breakOnTokenText, funcName, parser } = _ref;
			var body = parser.parseExpression(true, breakOnTokenText);
			var style = funcName.slice(1, funcName.length - 5);
			return {
				type: "styling",
				mode: parser.mode,
				style,
				body
			};
		},
		htmlBuilder(group, options) {
			var newStyle = styleMap[group.style];
			var newOptions = options.havingStyle(newStyle).withFont("");
			return sizingGroup(group.body, newOptions, options);
		},
		mathmlBuilder(group, options) {
			var newStyle = styleMap[group.style];
			var newOptions = options.havingStyle(newStyle);
			var inner$1 = buildExpression(group.body, newOptions);
			var node = new mathMLTree.MathNode("mstyle", inner$1);
			var styleAttributes = {
				"display": ["0", "true"],
				"text": ["0", "false"],
				"script": ["1", "false"],
				"scriptscript": ["2", "false"]
			};
			var attr = styleAttributes[group.style];
			node.setAttribute("scriptlevel", attr[0]);
			node.setAttribute("displaystyle", attr[1]);
			return node;
		}
	});
	htmlBuilderDelegate = function htmlBuilderDelegate$1(group, options) {
		var base = group.base;
		if (!base) {
			return null;
		} else if (base.type === "op") {
			var delegate = base.limits && (options.style.size === Style$1.DISPLAY.size || base.alwaysHandleSupSub);
			return delegate ? htmlBuilder$2 : null;
		} else if (base.type === "operatorname") {
			var _delegate = base.alwaysHandleSupSub && (options.style.size === Style$1.DISPLAY.size || base.limits);
			return _delegate ? htmlBuilder$1 : null;
		} else if (base.type === "accent") {
			return utils.isCharacterBox(base.base) ? htmlBuilder$a : null;
		} else if (base.type === "horizBrace") {
			var isSup = !group.sub;
			return isSup === base.isOver ? htmlBuilder$3 : null;
		} else {
			return null;
		}
	};
	defineFunctionBuilders({
		type: "supsub",
		htmlBuilder(group, options) {
			var builderDelegate = htmlBuilderDelegate(group, options);
			if (builderDelegate) {
				return builderDelegate(group, options);
			}
			var { base: valueBase, sup: valueSup, sub: valueSub } = group;
			var base = buildGroup$1(valueBase, options);
			var supm;
			var subm;
			var metrics = options.fontMetrics();
			var supShift = 0;
			var subShift = 0;
			var isCharacterBox$1 = valueBase && utils.isCharacterBox(valueBase);
			if (valueSup) {
				var newOptions = options.havingStyle(options.style.sup());
				supm = buildGroup$1(valueSup, newOptions, options);
				if (!isCharacterBox$1) {
					supShift = base.height - newOptions.fontMetrics().supDrop * newOptions.sizeMultiplier / options.sizeMultiplier;
				}
			}
			if (valueSub) {
				var _newOptions = options.havingStyle(options.style.sub());
				subm = buildGroup$1(valueSub, _newOptions, options);
				if (!isCharacterBox$1) {
					subShift = base.depth + _newOptions.fontMetrics().subDrop * _newOptions.sizeMultiplier / options.sizeMultiplier;
				}
			}
			var minSupShift;
			if (options.style === Style$1.DISPLAY) {
				minSupShift = metrics.sup1;
			} else if (options.style.cramped) {
				minSupShift = metrics.sup3;
			} else {
				minSupShift = metrics.sup2;
			}
			var multiplier = options.sizeMultiplier;
			var marginRight = makeEm(.5 / metrics.ptPerEm / multiplier);
			var marginLeft = null;
			if (subm) {
				var isOiint = group.base && group.base.type === "op" && group.base.name && (group.base.name === "\\oiint" || group.base.name === "\\oiiint");
				if (base instanceof SymbolNode || isOiint) {
					marginLeft = makeEm(-base.italic);
				}
			}
			var supsub;
			if (supm && subm) {
				supShift = Math.max(supShift, minSupShift, supm.depth + .25 * metrics.xHeight);
				subShift = Math.max(subShift, metrics.sub2);
				var ruleWidth = metrics.defaultRuleThickness;
				var maxWidth = 4 * ruleWidth;
				if (supShift - supm.depth - (subm.height - subShift) < maxWidth) {
					subShift = maxWidth - (supShift - supm.depth) + subm.height;
					var psi = .8 * metrics.xHeight - (supShift - supm.depth);
					if (psi > 0) {
						supShift += psi;
						subShift -= psi;
					}
				}
				var vlistElem = [{
					type: "elem",
					elem: subm,
					shift: subShift,
					marginRight,
					marginLeft
				}, {
					type: "elem",
					elem: supm,
					shift: -supShift,
					marginRight
				}];
				supsub = buildCommon.makeVList({
					positionType: "individualShift",
					children: vlistElem
				}, options);
			} else if (subm) {
				subShift = Math.max(subShift, metrics.sub1, subm.height - .8 * metrics.xHeight);
				var _vlistElem = [{
					type: "elem",
					elem: subm,
					marginLeft,
					marginRight
				}];
				supsub = buildCommon.makeVList({
					positionType: "shift",
					positionData: subShift,
					children: _vlistElem
				}, options);
			} else if (supm) {
				supShift = Math.max(supShift, minSupShift, supm.depth + .25 * metrics.xHeight);
				supsub = buildCommon.makeVList({
					positionType: "shift",
					positionData: -supShift,
					children: [{
						type: "elem",
						elem: supm,
						marginRight
					}]
				}, options);
			} else {
				throw new Error("supsub must have either sup or sub.");
			}
			var mclass = getTypeOfDomTree(base, "right") || "mord";
			return buildCommon.makeSpan([mclass], [base, buildCommon.makeSpan(["msupsub"], [supsub])], options);
		},
		mathmlBuilder(group, options) {
			var isBrace = false;
			var isOver;
			var isSup;
			if (group.base && group.base.type === "horizBrace") {
				isSup = !!group.sup;
				if (isSup === group.base.isOver) {
					isBrace = true;
					isOver = group.base.isOver;
				}
			}
			if (group.base && (group.base.type === "op" || group.base.type === "operatorname")) {
				group.base.parentIsSupSub = true;
			}
			var children = [buildGroup(group.base, options)];
			if (group.sub) {
				children.push(buildGroup(group.sub, options));
			}
			if (group.sup) {
				children.push(buildGroup(group.sup, options));
			}
			var nodeType;
			if (isBrace) {
				nodeType = isOver ? "mover" : "munder";
			} else if (!group.sub) {
				var base = group.base;
				if (base && base.type === "op" && base.limits && (options.style === Style$1.DISPLAY || base.alwaysHandleSupSub)) {
					nodeType = "mover";
				} else if (base && base.type === "operatorname" && base.alwaysHandleSupSub && (base.limits || options.style === Style$1.DISPLAY)) {
					nodeType = "mover";
				} else {
					nodeType = "msup";
				}
			} else if (!group.sup) {
				var _base = group.base;
				if (_base && _base.type === "op" && _base.limits && (options.style === Style$1.DISPLAY || _base.alwaysHandleSupSub)) {
					nodeType = "munder";
				} else if (_base && _base.type === "operatorname" && _base.alwaysHandleSupSub && (_base.limits || options.style === Style$1.DISPLAY)) {
					nodeType = "munder";
				} else {
					nodeType = "msub";
				}
			} else {
				var _base2 = group.base;
				if (_base2 && _base2.type === "op" && _base2.limits && options.style === Style$1.DISPLAY) {
					nodeType = "munderover";
				} else if (_base2 && _base2.type === "operatorname" && _base2.alwaysHandleSupSub && (options.style === Style$1.DISPLAY || _base2.limits)) {
					nodeType = "munderover";
				} else {
					nodeType = "msubsup";
				}
			}
			return new mathMLTree.MathNode(nodeType, children);
		}
	});
	defineFunctionBuilders({
		type: "atom",
		htmlBuilder(group, options) {
			return buildCommon.mathsym(group.text, group.mode, options, ["m" + group.family]);
		},
		mathmlBuilder(group, options) {
			var node = new mathMLTree.MathNode("mo", [makeText(group.text, group.mode)]);
			if (group.family === "bin") {
				var variant = getVariant(group, options);
				if (variant === "bold-italic") {
					node.setAttribute("mathvariant", variant);
				}
			} else if (group.family === "punct") {
				node.setAttribute("separator", "true");
			} else if (group.family === "open" || group.family === "close") {
				node.setAttribute("stretchy", "false");
			}
			return node;
		}
	});
	defaultVariant = {
		"mi": "italic",
		"mn": "normal",
		"mtext": "normal"
	};
	defineFunctionBuilders({
		type: "mathord",
		htmlBuilder(group, options) {
			return buildCommon.makeOrd(group, options, "mathord");
		},
		mathmlBuilder(group, options) {
			var node = new mathMLTree.MathNode("mi", [makeText(group.text, group.mode, options)]);
			var variant = getVariant(group, options) || "italic";
			if (variant !== defaultVariant[node.type]) {
				node.setAttribute("mathvariant", variant);
			}
			return node;
		}
	});
	defineFunctionBuilders({
		type: "textord",
		htmlBuilder(group, options) {
			return buildCommon.makeOrd(group, options, "textord");
		},
		mathmlBuilder(group, options) {
			var text$2 = makeText(group.text, group.mode, options);
			var variant = getVariant(group, options) || "normal";
			var node;
			if (group.mode === "text") {
				node = new mathMLTree.MathNode("mtext", [text$2]);
			} else if (/[0-9]/.test(group.text)) {
				node = new mathMLTree.MathNode("mn", [text$2]);
			} else if (group.text === "\\prime") {
				node = new mathMLTree.MathNode("mo", [text$2]);
			} else {
				node = new mathMLTree.MathNode("mi", [text$2]);
			}
			if (variant !== defaultVariant[node.type]) {
				node.setAttribute("mathvariant", variant);
			}
			return node;
		}
	});
	cssSpace = {
		"\\nobreak": "nobreak",
		"\\allowbreak": "allowbreak"
	};
	regularSpace = {
		" ": {},
		"\\ ": {},
		"~": { className: "nobreak" },
		"\\space": {},
		"\\nobreakspace": { className: "nobreak" }
	};
	defineFunctionBuilders({
		type: "spacing",
		htmlBuilder(group, options) {
			if (regularSpace.hasOwnProperty(group.text)) {
				var className = regularSpace[group.text].className || "";
				if (group.mode === "text") {
					var ord = buildCommon.makeOrd(group, options, "textord");
					ord.classes.push(className);
					return ord;
				} else {
					return buildCommon.makeSpan(["mspace", className], [buildCommon.mathsym(group.text, group.mode, options)], options);
				}
			} else if (cssSpace.hasOwnProperty(group.text)) {
				return buildCommon.makeSpan(["mspace", cssSpace[group.text]], [], options);
			} else {
				throw new ParseError("Unknown type of space \"" + group.text + "\"");
			}
		},
		mathmlBuilder(group, options) {
			var node;
			if (regularSpace.hasOwnProperty(group.text)) {
				node = new mathMLTree.MathNode("mtext", [new mathMLTree.TextNode("\xA0")]);
			} else if (cssSpace.hasOwnProperty(group.text)) {
				return new mathMLTree.MathNode("mspace");
			} else {
				throw new ParseError("Unknown type of space \"" + group.text + "\"");
			}
			return node;
		}
	});
	pad = () => {
		var padNode = new mathMLTree.MathNode("mtd", []);
		padNode.setAttribute("width", "50%");
		return padNode;
	};
	defineFunctionBuilders({
		type: "tag",
		mathmlBuilder(group, options) {
			var table = new mathMLTree.MathNode("mtable", [new mathMLTree.MathNode("mtr", [
				pad(),
				new mathMLTree.MathNode("mtd", [buildExpressionRow(group.body, options)]),
				pad(),
				new mathMLTree.MathNode("mtd", [buildExpressionRow(group.tag, options)])
			])]);
			table.setAttribute("width", "100%");
			return table;
		}
	});
	textFontFamilies = {
		"\\text": undefined,
		"\\textrm": "textrm",
		"\\textsf": "textsf",
		"\\texttt": "texttt",
		"\\textnormal": "textrm"
	};
	textFontWeights = {
		"\\textbf": "textbf",
		"\\textmd": "textmd"
	};
	textFontShapes = {
		"\\textit": "textit",
		"\\textup": "textup"
	};
	optionsWithFont = (group, options) => {
		var font = group.font;
		if (!font) {
			return options;
		} else if (textFontFamilies[font]) {
			return options.withTextFontFamily(textFontFamilies[font]);
		} else if (textFontWeights[font]) {
			return options.withTextFontWeight(textFontWeights[font]);
		} else if (font === "\\emph") {
			return options.fontShape === "textit" ? options.withTextFontShape("textup") : options.withTextFontShape("textit");
		}
		return options.withTextFontShape(textFontShapes[font]);
	};
	defineFunction({
		type: "text",
		names: [
			"\\text",
			"\\textrm",
			"\\textsf",
			"\\texttt",
			"\\textnormal",
			"\\textbf",
			"\\textmd",
			"\\textit",
			"\\textup",
			"\\emph"
		],
		props: {
			numArgs: 1,
			argTypes: ["text"],
			allowedInArgument: true,
			allowedInText: true
		},
		handler(_ref, args) {
			var { parser, funcName } = _ref;
			var body = args[0];
			return {
				type: "text",
				mode: parser.mode,
				body: ordargument(body),
				font: funcName
			};
		},
		htmlBuilder(group, options) {
			var newOptions = optionsWithFont(group, options);
			var inner$1 = buildExpression$1(group.body, newOptions, true);
			return buildCommon.makeSpan(["mord", "text"], inner$1, newOptions);
		},
		mathmlBuilder(group, options) {
			var newOptions = optionsWithFont(group, options);
			return buildExpressionRow(group.body, newOptions);
		}
	});
	defineFunction({
		type: "underline",
		names: ["\\underline"],
		props: {
			numArgs: 1,
			allowedInText: true
		},
		handler(_ref, args) {
			var { parser } = _ref;
			return {
				type: "underline",
				mode: parser.mode,
				body: args[0]
			};
		},
		htmlBuilder(group, options) {
			var innerGroup = buildGroup$1(group.body, options);
			var line = buildCommon.makeLineSpan("underline-line", options);
			var defaultRuleThickness = options.fontMetrics().defaultRuleThickness;
			var vlist = buildCommon.makeVList({
				positionType: "top",
				positionData: innerGroup.height,
				children: [
					{
						type: "kern",
						size: defaultRuleThickness
					},
					{
						type: "elem",
						elem: line
					},
					{
						type: "kern",
						size: 3 * defaultRuleThickness
					},
					{
						type: "elem",
						elem: innerGroup
					}
				]
			}, options);
			return buildCommon.makeSpan(["mord", "underline"], [vlist], options);
		},
		mathmlBuilder(group, options) {
			var operator$1 = new mathMLTree.MathNode("mo", [new mathMLTree.TextNode("‾")]);
			operator$1.setAttribute("stretchy", "true");
			var node = new mathMLTree.MathNode("munder", [buildGroup(group.body, options), operator$1]);
			node.setAttribute("accentunder", "true");
			return node;
		}
	});
	defineFunction({
		type: "vcenter",
		names: ["\\vcenter"],
		props: {
			numArgs: 1,
			argTypes: ["original"],
			allowedInText: false
		},
		handler(_ref, args) {
			var { parser } = _ref;
			return {
				type: "vcenter",
				mode: parser.mode,
				body: args[0]
			};
		},
		htmlBuilder(group, options) {
			var body = buildGroup$1(group.body, options);
			var axisHeight = options.fontMetrics().axisHeight;
			var dy = .5 * (body.height - axisHeight - (body.depth + axisHeight));
			return buildCommon.makeVList({
				positionType: "shift",
				positionData: dy,
				children: [{
					type: "elem",
					elem: body
				}]
			}, options);
		},
		mathmlBuilder(group, options) {
			return new mathMLTree.MathNode("mpadded", [buildGroup(group.body, options)], ["vcenter"]);
		}
	});
	defineFunction({
		type: "verb",
		names: ["\\verb"],
		props: {
			numArgs: 0,
			allowedInText: true
		},
		handler(context, args, optArgs) {
			throw new ParseError("\\verb ended by end of line instead of matching delimiter");
		},
		htmlBuilder(group, options) {
			var text$2 = makeVerb(group);
			var body = [];
			var newOptions = options.havingStyle(options.style.text());
			for (var i$7 = 0; i$7 < text$2.length; i$7++) {
				var c$7 = text$2[i$7];
				if (c$7 === "~") {
					c$7 = "\\textasciitilde";
				}
				body.push(buildCommon.makeSymbol(c$7, "Typewriter-Regular", group.mode, newOptions, ["mord", "texttt"]));
			}
			return buildCommon.makeSpan(["mord", "text"].concat(newOptions.sizingClasses(options)), buildCommon.tryCombineChars(body), newOptions);
		},
		mathmlBuilder(group, options) {
			var text$2 = new mathMLTree.TextNode(makeVerb(group));
			var node = new mathMLTree.MathNode("mtext", [text$2]);
			node.setAttribute("mathvariant", "monospace");
			return node;
		}
	});
	makeVerb = (group) => group.body.replace(/ /g, group.star ? "␣" : "\xA0");
	functions = _functions;
	spaceRegexString = "[ \r\n	]";
	controlWordRegexString = "\\\\[a-zA-Z@]+";
	controlSymbolRegexString = "\\\\[^\ud800-\udfff]";
	controlWordWhitespaceRegexString = "(" + controlWordRegexString + ")" + spaceRegexString + "*";
	controlSpaceRegexString = "\\\\(\n|[ \r	]+\n?)[ \r	]*";
	combiningDiacriticalMarkString = "[̀-ͯ]";
	combiningDiacriticalMarksEndRegex = new RegExp(combiningDiacriticalMarkString + "+$");
	tokenRegexString = "(" + spaceRegexString + "+)|" + (controlSpaceRegexString + "|") + "([!-\\[\\]-‧‪-퟿豈-]" + (combiningDiacriticalMarkString + "*") + "|[\ud800-\udbff][\udc00-\udfff]" + (combiningDiacriticalMarkString + "*") + "|\\\\verb\\*([^]).*?\\4" + "|\\\\verb([^*a-zA-Z]).*?\\5" + ("|" + controlWordWhitespaceRegexString) + ("|" + controlSymbolRegexString + ")");
	Lexer = class {
		constructor(input, settings) {
			this.input = void 0;
			this.settings = void 0;
			this.tokenRegex = void 0;
			this.catcodes = void 0;
			this.input = input;
			this.settings = settings;
			this.tokenRegex = new RegExp(tokenRegexString, "g");
			this.catcodes = {
				"%": 14,
				"~": 13
			};
		}
		setCatcode(char, code) {
			this.catcodes[char] = code;
		}
		/**
		* This function lexes a single token.
		*/
		lex() {
			var input = this.input;
			var pos = this.tokenRegex.lastIndex;
			if (pos === input.length) {
				return new Token("EOF", new SourceLocation(this, pos, pos));
			}
			var match = this.tokenRegex.exec(input);
			if (match === null || match.index !== pos) {
				throw new ParseError("Unexpected character: '" + input[pos] + "'", new Token(input[pos], new SourceLocation(this, pos, pos + 1)));
			}
			var text$2 = match[6] || match[3] || (match[2] ? "\\ " : " ");
			if (this.catcodes[text$2] === 14) {
				var nlIndex = input.indexOf("\n", this.tokenRegex.lastIndex);
				if (nlIndex === -1) {
					this.tokenRegex.lastIndex = input.length;
					this.settings.reportNonstrict("commentAtEnd", "% comment has no terminating newline; LaTeX would " + "fail because of commenting the end of math mode (e.g. $)");
				} else {
					this.tokenRegex.lastIndex = nlIndex + 1;
				}
				return this.lex();
			}
			return new Token(text$2, new SourceLocation(this, pos, this.tokenRegex.lastIndex));
		}
	};
	Namespace = class {
		/**
		* Both arguments are optional.  The first argument is an object of
		* built-in mappings which never change.  The second argument is an object
		* of initial (global-level) mappings, which will constantly change
		* according to any global/top-level `set`s done.
		*/
		constructor(builtins, globalMacros) {
			if (builtins === void 0) {
				builtins = {};
			}
			if (globalMacros === void 0) {
				globalMacros = {};
			}
			this.current = void 0;
			this.builtins = void 0;
			this.undefStack = void 0;
			this.current = globalMacros;
			this.builtins = builtins;
			this.undefStack = [];
		}
		/**
		* Start a new nested group, affecting future local `set`s.
		*/
		beginGroup() {
			this.undefStack.push({});
		}
		/**
		* End current nested group, restoring values before the group began.
		*/
		endGroup() {
			if (this.undefStack.length === 0) {
				throw new ParseError("Unbalanced namespace destruction: attempt " + "to pop global namespace; please report this as a bug");
			}
			var undefs = this.undefStack.pop();
			for (var undef in undefs) {
				if (undefs.hasOwnProperty(undef)) {
					if (undefs[undef] == null) {
						delete this.current[undef];
					} else {
						this.current[undef] = undefs[undef];
					}
				}
			}
		}
		/**
		* Ends all currently nested groups (if any), restoring values before the
		* groups began.  Useful in case of an error in the middle of parsing.
		*/
		endGroups() {
			while (this.undefStack.length > 0) {
				this.endGroup();
			}
		}
		/**
		* Detect whether `name` has a definition.  Equivalent to
		* `get(name) != null`.
		*/
		has(name) {
			return this.current.hasOwnProperty(name) || this.builtins.hasOwnProperty(name);
		}
		/**
		* Get the current value of a name, or `undefined` if there is no value.
		*
		* Note: Do not use `if (namespace.get(...))` to detect whether a macro
		* is defined, as the definition may be the empty string which evaluates
		* to `false` in JavaScript.  Use `if (namespace.get(...) != null)` or
		* `if (namespace.has(...))`.
		*/
		get(name) {
			if (this.current.hasOwnProperty(name)) {
				return this.current[name];
			} else {
				return this.builtins[name];
			}
		}
		/**
		* Set the current value of a name, and optionally set it globally too.
		* Local set() sets the current value and (when appropriate) adds an undo
		* operation to the undo stack.  Global set() may change the undo
		* operation at every level, so takes time linear in their number.
		* A value of undefined means to delete existing definitions.
		*/
		set(name, value, global$1) {
			if (global$1 === void 0) {
				global$1 = false;
			}
			if (global$1) {
				for (var i$7 = 0; i$7 < this.undefStack.length; i$7++) {
					delete this.undefStack[i$7][name];
				}
				if (this.undefStack.length > 0) {
					this.undefStack[this.undefStack.length - 1][name] = value;
				}
			} else {
				var top = this.undefStack[this.undefStack.length - 1];
				if (top && !top.hasOwnProperty(name)) {
					top[name] = this.current[name];
				}
			}
			if (value == null) {
				delete this.current[name];
			} else {
				this.current[name] = value;
			}
		}
	};
	macros = _macros;
	defineMacro("\\noexpand", function(context) {
		var t$6 = context.popToken();
		if (context.isExpandable(t$6.text)) {
			t$6.noexpand = true;
			t$6.treatAsRelax = true;
		}
		return {
			tokens: [t$6],
			numArgs: 0
		};
	});
	defineMacro("\\expandafter", function(context) {
		var t$6 = context.popToken();
		context.expandOnce(true);
		return {
			tokens: [t$6],
			numArgs: 0
		};
	});
	defineMacro("\\@firstoftwo", function(context) {
		var args = context.consumeArgs(2);
		return {
			tokens: args[0],
			numArgs: 0
		};
	});
	defineMacro("\\@secondoftwo", function(context) {
		var args = context.consumeArgs(2);
		return {
			tokens: args[1],
			numArgs: 0
		};
	});
	defineMacro("\\@ifnextchar", function(context) {
		var args = context.consumeArgs(3);
		context.consumeSpaces();
		var nextToken = context.future();
		if (args[0].length === 1 && args[0][0].text === nextToken.text) {
			return {
				tokens: args[1],
				numArgs: 0
			};
		} else {
			return {
				tokens: args[2],
				numArgs: 0
			};
		}
	});
	defineMacro("\\@ifstar", "\\@ifnextchar *{\\@firstoftwo{#1}}");
	defineMacro("\\TextOrMath", function(context) {
		var args = context.consumeArgs(2);
		if (context.mode === "text") {
			return {
				tokens: args[0],
				numArgs: 0
			};
		} else {
			return {
				tokens: args[1],
				numArgs: 0
			};
		}
	});
	digitToNumber = {
		"0": 0,
		"1": 1,
		"2": 2,
		"3": 3,
		"4": 4,
		"5": 5,
		"6": 6,
		"7": 7,
		"8": 8,
		"9": 9,
		"a": 10,
		"A": 10,
		"b": 11,
		"B": 11,
		"c": 12,
		"C": 12,
		"d": 13,
		"D": 13,
		"e": 14,
		"E": 14,
		"f": 15,
		"F": 15
	};
	defineMacro("\\char", function(context) {
		var token = context.popToken();
		var base;
		var number = "";
		if (token.text === "'") {
			base = 8;
			token = context.popToken();
		} else if (token.text === "\"") {
			base = 16;
			token = context.popToken();
		} else if (token.text === "`") {
			token = context.popToken();
			if (token.text[0] === "\\") {
				number = token.text.charCodeAt(1);
			} else if (token.text === "EOF") {
				throw new ParseError("\\char` missing argument");
			} else {
				number = token.text.charCodeAt(0);
			}
		} else {
			base = 10;
		}
		if (base) {
			number = digitToNumber[token.text];
			if (number == null || number >= base) {
				throw new ParseError("Invalid base-" + base + " digit " + token.text);
			}
			var digit;
			while ((digit = digitToNumber[context.future().text]) != null && digit < base) {
				number *= base;
				number += digit;
				context.popToken();
			}
		}
		return "\\@char{" + number + "}";
	});
	newcommand = (context, existsOK, nonexistsOK, skipIfExists) => {
		var arg = context.consumeArg().tokens;
		if (arg.length !== 1) {
			throw new ParseError("\\newcommand's first argument must be a macro name");
		}
		var name = arg[0].text;
		var exists = context.isDefined(name);
		if (exists && !existsOK) {
			throw new ParseError("\\newcommand{" + name + "} attempting to redefine " + (name + "; use \\renewcommand"));
		}
		if (!exists && !nonexistsOK) {
			throw new ParseError("\\renewcommand{" + name + "} when command " + name + " " + "does not yet exist; use \\newcommand");
		}
		var numArgs = 0;
		arg = context.consumeArg().tokens;
		if (arg.length === 1 && arg[0].text === "[") {
			var argText = "";
			var token = context.expandNextToken();
			while (token.text !== "]" && token.text !== "EOF") {
				argText += token.text;
				token = context.expandNextToken();
			}
			if (!argText.match(/^\s*[0-9]+\s*$/)) {
				throw new ParseError("Invalid number of arguments: " + argText);
			}
			numArgs = parseInt(argText);
			arg = context.consumeArg().tokens;
		}
		if (!(exists && skipIfExists)) {
			context.macros.set(name, {
				tokens: arg,
				numArgs
			});
		}
		return "";
	};
	defineMacro("\\newcommand", (context) => newcommand(context, false, true, false));
	defineMacro("\\renewcommand", (context) => newcommand(context, true, false, false));
	defineMacro("\\providecommand", (context) => newcommand(context, true, true, true));
	defineMacro("\\message", (context) => {
		var arg = context.consumeArgs(1)[0];
		console.log(arg.reverse().map((token) => token.text).join(""));
		return "";
	});
	defineMacro("\\errmessage", (context) => {
		var arg = context.consumeArgs(1)[0];
		console.error(arg.reverse().map((token) => token.text).join(""));
		return "";
	});
	defineMacro("\\show", (context) => {
		var tok = context.popToken();
		var name = tok.text;
		console.log(tok, context.macros.get(name), functions[name], symbols.math[name], symbols.text[name]);
		return "";
	});
	defineMacro("\\bgroup", "{");
	defineMacro("\\egroup", "}");
	defineMacro("~", "\\nobreakspace");
	defineMacro("\\lq", "`");
	defineMacro("\\rq", "'");
	defineMacro("\\aa", "\\r a");
	defineMacro("\\AA", "\\r A");
	defineMacro("\\textcopyright", "\\html@mathml{\\textcircled{c}}{\\char`©}");
	defineMacro("\\copyright", "\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");
	defineMacro("\\textregistered", "\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}");
	defineMacro("ℬ", "\\mathscr{B}");
	defineMacro("ℰ", "\\mathscr{E}");
	defineMacro("ℱ", "\\mathscr{F}");
	defineMacro("ℋ", "\\mathscr{H}");
	defineMacro("ℐ", "\\mathscr{I}");
	defineMacro("ℒ", "\\mathscr{L}");
	defineMacro("ℳ", "\\mathscr{M}");
	defineMacro("ℛ", "\\mathscr{R}");
	defineMacro("ℭ", "\\mathfrak{C}");
	defineMacro("ℌ", "\\mathfrak{H}");
	defineMacro("ℨ", "\\mathfrak{Z}");
	defineMacro("\\Bbbk", "\\Bbb{k}");
	defineMacro("·", "\\cdotp");
	defineMacro("\\llap", "\\mathllap{\\textrm{#1}}");
	defineMacro("\\rlap", "\\mathrlap{\\textrm{#1}}");
	defineMacro("\\clap", "\\mathclap{\\textrm{#1}}");
	defineMacro("\\mathstrut", "\\vphantom{(}");
	defineMacro("\\underbar", "\\underline{\\text{#1}}");
	defineMacro("\\not", "\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char\"338}");
	defineMacro("\\neq", "\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}");
	defineMacro("\\ne", "\\neq");
	defineMacro("≠", "\\neq");
	defineMacro("\\notin", "\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}" + "{\\mathrel{\\char`∉}}");
	defineMacro("∉", "\\notin");
	defineMacro("≘", "\\html@mathml{" + "\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}" + "}{\\mathrel{\\char`≘}}");
	defineMacro("≙", "\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}");
	defineMacro("≚", "\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}");
	defineMacro("≛", "\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}" + "{\\mathrel{\\char`≛}}");
	defineMacro("≝", "\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}" + "{\\mathrel{\\char`≝}}");
	defineMacro("≞", "\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}" + "{\\mathrel{\\char`≞}}");
	defineMacro("≟", "\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}");
	defineMacro("⟂", "\\perp");
	defineMacro("‼", "\\mathclose{!\\mkern-0.8mu!}");
	defineMacro("∌", "\\notni");
	defineMacro("⌜", "\\ulcorner");
	defineMacro("⌝", "\\urcorner");
	defineMacro("⌞", "\\llcorner");
	defineMacro("⌟", "\\lrcorner");
	defineMacro("©", "\\copyright");
	defineMacro("®", "\\textregistered");
	defineMacro("️", "\\textregistered");
	defineMacro("\\ulcorner", "\\html@mathml{\\@ulcorner}{\\mathop{\\char\"231c}}");
	defineMacro("\\urcorner", "\\html@mathml{\\@urcorner}{\\mathop{\\char\"231d}}");
	defineMacro("\\llcorner", "\\html@mathml{\\@llcorner}{\\mathop{\\char\"231e}}");
	defineMacro("\\lrcorner", "\\html@mathml{\\@lrcorner}{\\mathop{\\char\"231f}}");
	defineMacro("\\vdots", "{\\varvdots\\rule{0pt}{15pt}}");
	defineMacro("⋮", "\\vdots");
	defineMacro("\\varGamma", "\\mathit{\\Gamma}");
	defineMacro("\\varDelta", "\\mathit{\\Delta}");
	defineMacro("\\varTheta", "\\mathit{\\Theta}");
	defineMacro("\\varLambda", "\\mathit{\\Lambda}");
	defineMacro("\\varXi", "\\mathit{\\Xi}");
	defineMacro("\\varPi", "\\mathit{\\Pi}");
	defineMacro("\\varSigma", "\\mathit{\\Sigma}");
	defineMacro("\\varUpsilon", "\\mathit{\\Upsilon}");
	defineMacro("\\varPhi", "\\mathit{\\Phi}");
	defineMacro("\\varPsi", "\\mathit{\\Psi}");
	defineMacro("\\varOmega", "\\mathit{\\Omega}");
	defineMacro("\\substack", "\\begin{subarray}{c}#1\\end{subarray}");
	defineMacro("\\colon", "\\nobreak\\mskip2mu\\mathpunct{}" + "\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");
	defineMacro("\\boxed", "\\fbox{$\\displaystyle{#1}$}");
	defineMacro("\\iff", "\\DOTSB\\;\\Longleftrightarrow\\;");
	defineMacro("\\implies", "\\DOTSB\\;\\Longrightarrow\\;");
	defineMacro("\\impliedby", "\\DOTSB\\;\\Longleftarrow\\;");
	defineMacro("\\dddot", "{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}");
	defineMacro("\\ddddot", "{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");
	dotsByToken = {
		",": "\\dotsc",
		"\\not": "\\dotsb",
		"+": "\\dotsb",
		"=": "\\dotsb",
		"<": "\\dotsb",
		">": "\\dotsb",
		"-": "\\dotsb",
		"*": "\\dotsb",
		":": "\\dotsb",
		"\\DOTSB": "\\dotsb",
		"\\coprod": "\\dotsb",
		"\\bigvee": "\\dotsb",
		"\\bigwedge": "\\dotsb",
		"\\biguplus": "\\dotsb",
		"\\bigcap": "\\dotsb",
		"\\bigcup": "\\dotsb",
		"\\prod": "\\dotsb",
		"\\sum": "\\dotsb",
		"\\bigotimes": "\\dotsb",
		"\\bigoplus": "\\dotsb",
		"\\bigodot": "\\dotsb",
		"\\bigsqcup": "\\dotsb",
		"\\And": "\\dotsb",
		"\\longrightarrow": "\\dotsb",
		"\\Longrightarrow": "\\dotsb",
		"\\longleftarrow": "\\dotsb",
		"\\Longleftarrow": "\\dotsb",
		"\\longleftrightarrow": "\\dotsb",
		"\\Longleftrightarrow": "\\dotsb",
		"\\mapsto": "\\dotsb",
		"\\longmapsto": "\\dotsb",
		"\\hookrightarrow": "\\dotsb",
		"\\doteq": "\\dotsb",
		"\\mathbin": "\\dotsb",
		"\\mathrel": "\\dotsb",
		"\\relbar": "\\dotsb",
		"\\Relbar": "\\dotsb",
		"\\xrightarrow": "\\dotsb",
		"\\xleftarrow": "\\dotsb",
		"\\DOTSI": "\\dotsi",
		"\\int": "\\dotsi",
		"\\oint": "\\dotsi",
		"\\iint": "\\dotsi",
		"\\iiint": "\\dotsi",
		"\\iiiint": "\\dotsi",
		"\\idotsint": "\\dotsi",
		"\\DOTSX": "\\dotsx"
	};
	defineMacro("\\dots", function(context) {
		var thedots = "\\dotso";
		var next = context.expandAfterFuture().text;
		if (next in dotsByToken) {
			thedots = dotsByToken[next];
		} else if (next.slice(0, 4) === "\\not") {
			thedots = "\\dotsb";
		} else if (next in symbols.math) {
			if (["bin", "rel"].includes(symbols.math[next].group)) {
				thedots = "\\dotsb";
			}
		}
		return thedots;
	});
	spaceAfterDots = {
		")": true,
		"]": true,
		"\\rbrack": true,
		"\\}": true,
		"\\rbrace": true,
		"\\rangle": true,
		"\\rceil": true,
		"\\rfloor": true,
		"\\rgroup": true,
		"\\rmoustache": true,
		"\\right": true,
		"\\bigr": true,
		"\\biggr": true,
		"\\Bigr": true,
		"\\Biggr": true,
		"$": true,
		";": true,
		".": true,
		",": true
	};
	defineMacro("\\dotso", function(context) {
		var next = context.future().text;
		if (next in spaceAfterDots) {
			return "\\ldots\\,";
		} else {
			return "\\ldots";
		}
	});
	defineMacro("\\dotsc", function(context) {
		var next = context.future().text;
		if (next in spaceAfterDots && next !== ",") {
			return "\\ldots\\,";
		} else {
			return "\\ldots";
		}
	});
	defineMacro("\\cdots", function(context) {
		var next = context.future().text;
		if (next in spaceAfterDots) {
			return "\\@cdots\\,";
		} else {
			return "\\@cdots";
		}
	});
	defineMacro("\\dotsb", "\\cdots");
	defineMacro("\\dotsm", "\\cdots");
	defineMacro("\\dotsi", "\\!\\cdots");
	defineMacro("\\dotsx", "\\ldots\\,");
	defineMacro("\\DOTSI", "\\relax");
	defineMacro("\\DOTSB", "\\relax");
	defineMacro("\\DOTSX", "\\relax");
	defineMacro("\\tmspace", "\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");
	defineMacro("\\,", "\\tmspace+{3mu}{.1667em}");
	defineMacro("\\thinspace", "\\,");
	defineMacro("\\>", "\\mskip{4mu}");
	defineMacro("\\:", "\\tmspace+{4mu}{.2222em}");
	defineMacro("\\medspace", "\\:");
	defineMacro("\\;", "\\tmspace+{5mu}{.2777em}");
	defineMacro("\\thickspace", "\\;");
	defineMacro("\\!", "\\tmspace-{3mu}{.1667em}");
	defineMacro("\\negthinspace", "\\!");
	defineMacro("\\negmedspace", "\\tmspace-{4mu}{.2222em}");
	defineMacro("\\negthickspace", "\\tmspace-{5mu}{.277em}");
	defineMacro("\\enspace", "\\kern.5em ");
	defineMacro("\\enskip", "\\hskip.5em\\relax");
	defineMacro("\\quad", "\\hskip1em\\relax");
	defineMacro("\\qquad", "\\hskip2em\\relax");
	defineMacro("\\tag", "\\@ifstar\\tag@literal\\tag@paren");
	defineMacro("\\tag@paren", "\\tag@literal{({#1})}");
	defineMacro("\\tag@literal", (context) => {
		if (context.macros.get("\\df@tag")) {
			throw new ParseError("Multiple \\tag");
		}
		return "\\gdef\\df@tag{\\text{#1}}";
	});
	defineMacro("\\bmod", "\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}" + "\\mathbin{\\rm mod}" + "\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");
	defineMacro("\\pod", "\\allowbreak" + "\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");
	defineMacro("\\pmod", "\\pod{{\\rm mod}\\mkern6mu#1}");
	defineMacro("\\mod", "\\allowbreak" + "\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}" + "{\\rm mod}\\,\\,#1");
	defineMacro("\\newline", "\\\\\\relax");
	defineMacro("\\TeX", "\\textrm{\\html@mathml{" + "T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX" + "}{TeX}}");
	latexRaiseA = makeEm(fontMetricsData["Main-Regular"]["T".charCodeAt(0)][1] - .7 * fontMetricsData["Main-Regular"]["A".charCodeAt(0)][1]);
	defineMacro("\\LaTeX", "\\textrm{\\html@mathml{" + ("L\\kern-.36em\\raisebox{" + latexRaiseA + "}{\\scriptstyle A}") + "\\kern-.15em\\TeX}{LaTeX}}");
	defineMacro("\\KaTeX", "\\textrm{\\html@mathml{" + ("K\\kern-.17em\\raisebox{" + latexRaiseA + "}{\\scriptstyle A}") + "\\kern-.15em\\TeX}{KaTeX}}");
	defineMacro("\\hspace", "\\@ifstar\\@hspacer\\@hspace");
	defineMacro("\\@hspace", "\\hskip #1\\relax");
	defineMacro("\\@hspacer", "\\rule{0pt}{0pt}\\hskip #1\\relax");
	defineMacro("\\ordinarycolon", ":");
	defineMacro("\\vcentcolon", "\\mathrel{\\mathop\\ordinarycolon}");
	defineMacro("\\dblcolon", "\\html@mathml{" + "\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}" + "{\\mathop{\\char\"2237}}");
	defineMacro("\\coloneqq", "\\html@mathml{" + "\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}" + "{\\mathop{\\char\"2254}}");
	defineMacro("\\Coloneqq", "\\html@mathml{" + "\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}" + "{\\mathop{\\char\"2237\\char\"3d}}");
	defineMacro("\\coloneq", "\\html@mathml{" + "\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}" + "{\\mathop{\\char\"3a\\char\"2212}}");
	defineMacro("\\Coloneq", "\\html@mathml{" + "\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}" + "{\\mathop{\\char\"2237\\char\"2212}}");
	defineMacro("\\eqqcolon", "\\html@mathml{" + "\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}" + "{\\mathop{\\char\"2255}}");
	defineMacro("\\Eqqcolon", "\\html@mathml{" + "\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}" + "{\\mathop{\\char\"3d\\char\"2237}}");
	defineMacro("\\eqcolon", "\\html@mathml{" + "\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}" + "{\\mathop{\\char\"2239}}");
	defineMacro("\\Eqcolon", "\\html@mathml{" + "\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}" + "{\\mathop{\\char\"2212\\char\"2237}}");
	defineMacro("\\colonapprox", "\\html@mathml{" + "\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}" + "{\\mathop{\\char\"3a\\char\"2248}}");
	defineMacro("\\Colonapprox", "\\html@mathml{" + "\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}" + "{\\mathop{\\char\"2237\\char\"2248}}");
	defineMacro("\\colonsim", "\\html@mathml{" + "\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}" + "{\\mathop{\\char\"3a\\char\"223c}}");
	defineMacro("\\Colonsim", "\\html@mathml{" + "\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}" + "{\\mathop{\\char\"2237\\char\"223c}}");
	defineMacro("∷", "\\dblcolon");
	defineMacro("∹", "\\eqcolon");
	defineMacro("≔", "\\coloneqq");
	defineMacro("≕", "\\eqqcolon");
	defineMacro("⩴", "\\Coloneqq");
	defineMacro("\\ratio", "\\vcentcolon");
	defineMacro("\\coloncolon", "\\dblcolon");
	defineMacro("\\colonequals", "\\coloneqq");
	defineMacro("\\coloncolonequals", "\\Coloneqq");
	defineMacro("\\equalscolon", "\\eqqcolon");
	defineMacro("\\equalscoloncolon", "\\Eqqcolon");
	defineMacro("\\colonminus", "\\coloneq");
	defineMacro("\\coloncolonminus", "\\Coloneq");
	defineMacro("\\minuscolon", "\\eqcolon");
	defineMacro("\\minuscoloncolon", "\\Eqcolon");
	defineMacro("\\coloncolonapprox", "\\Colonapprox");
	defineMacro("\\coloncolonsim", "\\Colonsim");
	defineMacro("\\simcolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");
	defineMacro("\\simcoloncolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");
	defineMacro("\\approxcolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");
	defineMacro("\\approxcoloncolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");
	defineMacro("\\notni", "\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}");
	defineMacro("\\limsup", "\\DOTSB\\operatorname*{lim\\,sup}");
	defineMacro("\\liminf", "\\DOTSB\\operatorname*{lim\\,inf}");
	defineMacro("\\injlim", "\\DOTSB\\operatorname*{inj\\,lim}");
	defineMacro("\\projlim", "\\DOTSB\\operatorname*{proj\\,lim}");
	defineMacro("\\varlimsup", "\\DOTSB\\operatorname*{\\overline{lim}}");
	defineMacro("\\varliminf", "\\DOTSB\\operatorname*{\\underline{lim}}");
	defineMacro("\\varinjlim", "\\DOTSB\\operatorname*{\\underrightarrow{lim}}");
	defineMacro("\\varprojlim", "\\DOTSB\\operatorname*{\\underleftarrow{lim}}");
	defineMacro("\\gvertneqq", "\\html@mathml{\\@gvertneqq}{≩}");
	defineMacro("\\lvertneqq", "\\html@mathml{\\@lvertneqq}{≨}");
	defineMacro("\\ngeqq", "\\html@mathml{\\@ngeqq}{≱}");
	defineMacro("\\ngeqslant", "\\html@mathml{\\@ngeqslant}{≱}");
	defineMacro("\\nleqq", "\\html@mathml{\\@nleqq}{≰}");
	defineMacro("\\nleqslant", "\\html@mathml{\\@nleqslant}{≰}");
	defineMacro("\\nshortmid", "\\html@mathml{\\@nshortmid}{∤}");
	defineMacro("\\nshortparallel", "\\html@mathml{\\@nshortparallel}{∦}");
	defineMacro("\\nsubseteqq", "\\html@mathml{\\@nsubseteqq}{⊈}");
	defineMacro("\\nsupseteqq", "\\html@mathml{\\@nsupseteqq}{⊉}");
	defineMacro("\\varsubsetneq", "\\html@mathml{\\@varsubsetneq}{⊊}");
	defineMacro("\\varsubsetneqq", "\\html@mathml{\\@varsubsetneqq}{⫋}");
	defineMacro("\\varsupsetneq", "\\html@mathml{\\@varsupsetneq}{⊋}");
	defineMacro("\\varsupsetneqq", "\\html@mathml{\\@varsupsetneqq}{⫌}");
	defineMacro("\\imath", "\\html@mathml{\\@imath}{ı}");
	defineMacro("\\jmath", "\\html@mathml{\\@jmath}{ȷ}");
	defineMacro("\\llbracket", "\\html@mathml{" + "\\mathopen{[\\mkern-3.2mu[}}" + "{\\mathopen{\\char`⟦}}");
	defineMacro("\\rrbracket", "\\html@mathml{" + "\\mathclose{]\\mkern-3.2mu]}}" + "{\\mathclose{\\char`⟧}}");
	defineMacro("⟦", "\\llbracket");
	defineMacro("⟧", "\\rrbracket");
	defineMacro("\\lBrace", "\\html@mathml{" + "\\mathopen{\\{\\mkern-3.2mu[}}" + "{\\mathopen{\\char`⦃}}");
	defineMacro("\\rBrace", "\\html@mathml{" + "\\mathclose{]\\mkern-3.2mu\\}}}" + "{\\mathclose{\\char`⦄}}");
	defineMacro("⦃", "\\lBrace");
	defineMacro("⦄", "\\rBrace");
	defineMacro("\\minuso", "\\mathbin{\\html@mathml{" + "{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}" + "{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}" + "{\\char`⦵}}");
	defineMacro("⦵", "\\minuso");
	defineMacro("\\darr", "\\downarrow");
	defineMacro("\\dArr", "\\Downarrow");
	defineMacro("\\Darr", "\\Downarrow");
	defineMacro("\\lang", "\\langle");
	defineMacro("\\rang", "\\rangle");
	defineMacro("\\uarr", "\\uparrow");
	defineMacro("\\uArr", "\\Uparrow");
	defineMacro("\\Uarr", "\\Uparrow");
	defineMacro("\\N", "\\mathbb{N}");
	defineMacro("\\R", "\\mathbb{R}");
	defineMacro("\\Z", "\\mathbb{Z}");
	defineMacro("\\alef", "\\aleph");
	defineMacro("\\alefsym", "\\aleph");
	defineMacro("\\Alpha", "\\mathrm{A}");
	defineMacro("\\Beta", "\\mathrm{B}");
	defineMacro("\\bull", "\\bullet");
	defineMacro("\\Chi", "\\mathrm{X}");
	defineMacro("\\clubs", "\\clubsuit");
	defineMacro("\\cnums", "\\mathbb{C}");
	defineMacro("\\Complex", "\\mathbb{C}");
	defineMacro("\\Dagger", "\\ddagger");
	defineMacro("\\diamonds", "\\diamondsuit");
	defineMacro("\\empty", "\\emptyset");
	defineMacro("\\Epsilon", "\\mathrm{E}");
	defineMacro("\\Eta", "\\mathrm{H}");
	defineMacro("\\exist", "\\exists");
	defineMacro("\\harr", "\\leftrightarrow");
	defineMacro("\\hArr", "\\Leftrightarrow");
	defineMacro("\\Harr", "\\Leftrightarrow");
	defineMacro("\\hearts", "\\heartsuit");
	defineMacro("\\image", "\\Im");
	defineMacro("\\infin", "\\infty");
	defineMacro("\\Iota", "\\mathrm{I}");
	defineMacro("\\isin", "\\in");
	defineMacro("\\Kappa", "\\mathrm{K}");
	defineMacro("\\larr", "\\leftarrow");
	defineMacro("\\lArr", "\\Leftarrow");
	defineMacro("\\Larr", "\\Leftarrow");
	defineMacro("\\lrarr", "\\leftrightarrow");
	defineMacro("\\lrArr", "\\Leftrightarrow");
	defineMacro("\\Lrarr", "\\Leftrightarrow");
	defineMacro("\\Mu", "\\mathrm{M}");
	defineMacro("\\natnums", "\\mathbb{N}");
	defineMacro("\\Nu", "\\mathrm{N}");
	defineMacro("\\Omicron", "\\mathrm{O}");
	defineMacro("\\plusmn", "\\pm");
	defineMacro("\\rarr", "\\rightarrow");
	defineMacro("\\rArr", "\\Rightarrow");
	defineMacro("\\Rarr", "\\Rightarrow");
	defineMacro("\\real", "\\Re");
	defineMacro("\\reals", "\\mathbb{R}");
	defineMacro("\\Reals", "\\mathbb{R}");
	defineMacro("\\Rho", "\\mathrm{P}");
	defineMacro("\\sdot", "\\cdot");
	defineMacro("\\sect", "\\S");
	defineMacro("\\spades", "\\spadesuit");
	defineMacro("\\sub", "\\subset");
	defineMacro("\\sube", "\\subseteq");
	defineMacro("\\supe", "\\supseteq");
	defineMacro("\\Tau", "\\mathrm{T}");
	defineMacro("\\thetasym", "\\vartheta");
	defineMacro("\\weierp", "\\wp");
	defineMacro("\\Zeta", "\\mathrm{Z}");
	defineMacro("\\argmin", "\\DOTSB\\operatorname*{arg\\,min}");
	defineMacro("\\argmax", "\\DOTSB\\operatorname*{arg\\,max}");
	defineMacro("\\plim", "\\DOTSB\\mathop{\\operatorname{plim}}\\limits");
	defineMacro("\\bra", "\\mathinner{\\langle{#1}|}");
	defineMacro("\\ket", "\\mathinner{|{#1}\\rangle}");
	defineMacro("\\braket", "\\mathinner{\\langle{#1}\\rangle}");
	defineMacro("\\Bra", "\\left\\langle#1\\right|");
	defineMacro("\\Ket", "\\left|#1\\right\\rangle");
	braketHelper = (one) => (context) => {
		var left = context.consumeArg().tokens;
		var middle = context.consumeArg().tokens;
		var middleDouble = context.consumeArg().tokens;
		var right = context.consumeArg().tokens;
		var oldMiddle = context.macros.get("|");
		var oldMiddleDouble = context.macros.get("\\|");
		context.macros.beginGroup();
		var midMacro = (double) => (context$1) => {
			if (one) {
				context$1.macros.set("|", oldMiddle);
				if (middleDouble.length) {
					context$1.macros.set("\\|", oldMiddleDouble);
				}
			}
			var doubled = double;
			if (!double && middleDouble.length) {
				var nextToken = context$1.future();
				if (nextToken.text === "|") {
					context$1.popToken();
					doubled = true;
				}
			}
			return {
				tokens: doubled ? middleDouble : middle,
				numArgs: 0
			};
		};
		context.macros.set("|", midMacro(false));
		if (middleDouble.length) {
			context.macros.set("\\|", midMacro(true));
		}
		var arg = context.consumeArg().tokens;
		var expanded = context.expandTokens([
			...right,
			...arg,
			...left
		]);
		context.macros.endGroup();
		return {
			tokens: expanded.reverse(),
			numArgs: 0
		};
	};
	defineMacro("\\bra@ket", braketHelper(false));
	defineMacro("\\bra@set", braketHelper(true));
	defineMacro("\\Braket", "\\bra@ket{\\left\\langle}" + "{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");
	defineMacro("\\Set", "\\bra@set{\\left\\{\\:}" + "{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");
	defineMacro("\\set", "\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");
	defineMacro("\\angln", "{\\angl n}");
	defineMacro("\\blue", "\\textcolor{##6495ed}{#1}");
	defineMacro("\\orange", "\\textcolor{##ffa500}{#1}");
	defineMacro("\\pink", "\\textcolor{##ff00af}{#1}");
	defineMacro("\\red", "\\textcolor{##df0030}{#1}");
	defineMacro("\\green", "\\textcolor{##28ae7b}{#1}");
	defineMacro("\\gray", "\\textcolor{gray}{#1}");
	defineMacro("\\purple", "\\textcolor{##9d38bd}{#1}");
	defineMacro("\\blueA", "\\textcolor{##ccfaff}{#1}");
	defineMacro("\\blueB", "\\textcolor{##80f6ff}{#1}");
	defineMacro("\\blueC", "\\textcolor{##63d9ea}{#1}");
	defineMacro("\\blueD", "\\textcolor{##11accd}{#1}");
	defineMacro("\\blueE", "\\textcolor{##0c7f99}{#1}");
	defineMacro("\\tealA", "\\textcolor{##94fff5}{#1}");
	defineMacro("\\tealB", "\\textcolor{##26edd5}{#1}");
	defineMacro("\\tealC", "\\textcolor{##01d1c1}{#1}");
	defineMacro("\\tealD", "\\textcolor{##01a995}{#1}");
	defineMacro("\\tealE", "\\textcolor{##208170}{#1}");
	defineMacro("\\greenA", "\\textcolor{##b6ffb0}{#1}");
	defineMacro("\\greenB", "\\textcolor{##8af281}{#1}");
	defineMacro("\\greenC", "\\textcolor{##74cf70}{#1}");
	defineMacro("\\greenD", "\\textcolor{##1fab54}{#1}");
	defineMacro("\\greenE", "\\textcolor{##0d923f}{#1}");
	defineMacro("\\goldA", "\\textcolor{##ffd0a9}{#1}");
	defineMacro("\\goldB", "\\textcolor{##ffbb71}{#1}");
	defineMacro("\\goldC", "\\textcolor{##ff9c39}{#1}");
	defineMacro("\\goldD", "\\textcolor{##e07d10}{#1}");
	defineMacro("\\goldE", "\\textcolor{##a75a05}{#1}");
	defineMacro("\\redA", "\\textcolor{##fca9a9}{#1}");
	defineMacro("\\redB", "\\textcolor{##ff8482}{#1}");
	defineMacro("\\redC", "\\textcolor{##f9685d}{#1}");
	defineMacro("\\redD", "\\textcolor{##e84d39}{#1}");
	defineMacro("\\redE", "\\textcolor{##bc2612}{#1}");
	defineMacro("\\maroonA", "\\textcolor{##ffbde0}{#1}");
	defineMacro("\\maroonB", "\\textcolor{##ff92c6}{#1}");
	defineMacro("\\maroonC", "\\textcolor{##ed5fa6}{#1}");
	defineMacro("\\maroonD", "\\textcolor{##ca337c}{#1}");
	defineMacro("\\maroonE", "\\textcolor{##9e034e}{#1}");
	defineMacro("\\purpleA", "\\textcolor{##ddd7ff}{#1}");
	defineMacro("\\purpleB", "\\textcolor{##c6b9fc}{#1}");
	defineMacro("\\purpleC", "\\textcolor{##aa87ff}{#1}");
	defineMacro("\\purpleD", "\\textcolor{##7854ab}{#1}");
	defineMacro("\\purpleE", "\\textcolor{##543b78}{#1}");
	defineMacro("\\mintA", "\\textcolor{##f5f9e8}{#1}");
	defineMacro("\\mintB", "\\textcolor{##edf2df}{#1}");
	defineMacro("\\mintC", "\\textcolor{##e0e5cc}{#1}");
	defineMacro("\\grayA", "\\textcolor{##f6f7f7}{#1}");
	defineMacro("\\grayB", "\\textcolor{##f0f1f2}{#1}");
	defineMacro("\\grayC", "\\textcolor{##e3e5e6}{#1}");
	defineMacro("\\grayD", "\\textcolor{##d6d8da}{#1}");
	defineMacro("\\grayE", "\\textcolor{##babec2}{#1}");
	defineMacro("\\grayF", "\\textcolor{##888d93}{#1}");
	defineMacro("\\grayG", "\\textcolor{##626569}{#1}");
	defineMacro("\\grayH", "\\textcolor{##3b3e40}{#1}");
	defineMacro("\\grayI", "\\textcolor{##21242c}{#1}");
	defineMacro("\\kaBlue", "\\textcolor{##314453}{#1}");
	defineMacro("\\kaGreen", "\\textcolor{##71B307}{#1}");
	implicitCommands = {
		"^": true,
		"_": true,
		"\\limits": true,
		"\\nolimits": true
	};
	MacroExpander = class {
		constructor(input, settings, mode) {
			this.settings = void 0;
			this.expansionCount = void 0;
			this.lexer = void 0;
			this.macros = void 0;
			this.stack = void 0;
			this.mode = void 0;
			this.settings = settings;
			this.expansionCount = 0;
			this.feed(input);
			this.macros = new Namespace(macros, settings.macros);
			this.mode = mode;
			this.stack = [];
		}
		/**
		* Feed a new input string to the same MacroExpander
		* (with existing macros etc.).
		*/
		feed(input) {
			this.lexer = new Lexer(input, this.settings);
		}
		/**
		* Switches between "text" and "math" modes.
		*/
		switchMode(newMode) {
			this.mode = newMode;
		}
		/**
		* Start a new group nesting within all namespaces.
		*/
		beginGroup() {
			this.macros.beginGroup();
		}
		/**
		* End current group nesting within all namespaces.
		*/
		endGroup() {
			this.macros.endGroup();
		}
		/**
		* Ends all currently nested groups (if any), restoring values before the
		* groups began.  Useful in case of an error in the middle of parsing.
		*/
		endGroups() {
			this.macros.endGroups();
		}
		/**
		* Returns the topmost token on the stack, without expanding it.
		* Similar in behavior to TeX's `\futurelet`.
		*/
		future() {
			if (this.stack.length === 0) {
				this.pushToken(this.lexer.lex());
			}
			return this.stack[this.stack.length - 1];
		}
		/**
		* Remove and return the next unexpanded token.
		*/
		popToken() {
			this.future();
			return this.stack.pop();
		}
		/**
		* Add a given token to the token stack.  In particular, this get be used
		* to put back a token returned from one of the other methods.
		*/
		pushToken(token) {
			this.stack.push(token);
		}
		/**
		* Append an array of tokens to the token stack.
		*/
		pushTokens(tokens) {
			this.stack.push(...tokens);
		}
		/**
		* Find an macro argument without expanding tokens and append the array of
		* tokens to the token stack. Uses Token as a container for the result.
		*/
		scanArgument(isOptional) {
			var start;
			var end;
			var tokens;
			if (isOptional) {
				this.consumeSpaces();
				if (this.future().text !== "[") {
					return null;
				}
				start = this.popToken();
				({tokens, end} = this.consumeArg(["]"]));
			} else {
				({tokens, start, end} = this.consumeArg());
			}
			this.pushToken(new Token("EOF", end.loc));
			this.pushTokens(tokens);
			return new Token("", SourceLocation.range(start, end));
		}
		/**
		* Consume all following space tokens, without expansion.
		*/
		consumeSpaces() {
			for (;;) {
				var token = this.future();
				if (token.text === " ") {
					this.stack.pop();
				} else {
					break;
				}
			}
		}
		/**
		* Consume an argument from the token stream, and return the resulting array
		* of tokens and start/end token.
		*/
		consumeArg(delims) {
			var tokens = [];
			var isDelimited = delims && delims.length > 0;
			if (!isDelimited) {
				this.consumeSpaces();
			}
			var start = this.future();
			var tok;
			var depth = 0;
			var match = 0;
			do {
				tok = this.popToken();
				tokens.push(tok);
				if (tok.text === "{") {
					++depth;
				} else if (tok.text === "}") {
					--depth;
					if (depth === -1) {
						throw new ParseError("Extra }", tok);
					}
				} else if (tok.text === "EOF") {
					throw new ParseError("Unexpected end of input in a macro argument" + ", expected '" + (delims && isDelimited ? delims[match] : "}") + "'", tok);
				}
				if (delims && isDelimited) {
					if ((depth === 0 || depth === 1 && delims[match] === "{") && tok.text === delims[match]) {
						++match;
						if (match === delims.length) {
							tokens.splice(-match, match);
							break;
						}
					} else {
						match = 0;
					}
				}
			} while (depth !== 0 || isDelimited);
			if (start.text === "{" && tokens[tokens.length - 1].text === "}") {
				tokens.pop();
				tokens.shift();
			}
			tokens.reverse();
			return {
				tokens,
				start,
				end: tok
			};
		}
		/**
		* Consume the specified number of (delimited) arguments from the token
		* stream and return the resulting array of arguments.
		*/
		consumeArgs(numArgs, delimiters$1) {
			if (delimiters$1) {
				if (delimiters$1.length !== numArgs + 1) {
					throw new ParseError("The length of delimiters doesn't match the number of args!");
				}
				var delims = delimiters$1[0];
				for (var i$7 = 0; i$7 < delims.length; i$7++) {
					var tok = this.popToken();
					if (delims[i$7] !== tok.text) {
						throw new ParseError("Use of the macro doesn't match its definition", tok);
					}
				}
			}
			var args = [];
			for (var _i$1 = 0; _i$1 < numArgs; _i$1++) {
				args.push(this.consumeArg(delimiters$1 && delimiters$1[_i$1 + 1]).tokens);
			}
			return args;
		}
		/**
		* Increment `expansionCount` by the specified amount.
		* Throw an error if it exceeds `maxExpand`.
		*/
		countExpansion(amount) {
			this.expansionCount += amount;
			if (this.expansionCount > this.settings.maxExpand) {
				throw new ParseError("Too many expansions: infinite loop or " + "need to increase maxExpand setting");
			}
		}
		/**
		* Expand the next token only once if possible.
		*
		* If the token is expanded, the resulting tokens will be pushed onto
		* the stack in reverse order, and the number of such tokens will be
		* returned.  This number might be zero or positive.
		*
		* If not, the return value is `false`, and the next token remains at the
		* top of the stack.
		*
		* In either case, the next token will be on the top of the stack,
		* or the stack will be empty (in case of empty expansion
		* and no other tokens).
		*
		* Used to implement `expandAfterFuture` and `expandNextToken`.
		*
		* If expandableOnly, only expandable tokens are expanded and
		* an undefined control sequence results in an error.
		*/
		expandOnce(expandableOnly) {
			var topToken = this.popToken();
			var name = topToken.text;
			var expansion = !topToken.noexpand ? this._getExpansion(name) : null;
			if (expansion == null || expandableOnly && expansion.unexpandable) {
				if (expandableOnly && expansion == null && name[0] === "\\" && !this.isDefined(name)) {
					throw new ParseError("Undefined control sequence: " + name);
				}
				this.pushToken(topToken);
				return false;
			}
			this.countExpansion(1);
			var tokens = expansion.tokens;
			var args = this.consumeArgs(expansion.numArgs, expansion.delimiters);
			if (expansion.numArgs) {
				tokens = tokens.slice();
				for (var i$7 = tokens.length - 1; i$7 >= 0; --i$7) {
					var tok = tokens[i$7];
					if (tok.text === "#") {
						if (i$7 === 0) {
							throw new ParseError("Incomplete placeholder at end of macro body", tok);
						}
						tok = tokens[--i$7];
						if (tok.text === "#") {
							tokens.splice(i$7 + 1, 1);
						} else if (/^[1-9]$/.test(tok.text)) {
							tokens.splice(i$7, 2, ...args[+tok.text - 1]);
						} else {
							throw new ParseError("Not a valid argument number", tok);
						}
					}
				}
			}
			this.pushTokens(tokens);
			return tokens.length;
		}
		/**
		* Expand the next token only once (if possible), and return the resulting
		* top token on the stack (without removing anything from the stack).
		* Similar in behavior to TeX's `\expandafter\futurelet`.
		* Equivalent to expandOnce() followed by future().
		*/
		expandAfterFuture() {
			this.expandOnce();
			return this.future();
		}
		/**
		* Recursively expand first token, then return first non-expandable token.
		*/
		expandNextToken() {
			for (;;) {
				if (this.expandOnce() === false) {
					var token = this.stack.pop();
					if (token.treatAsRelax) {
						token.text = "\\relax";
					}
					return token;
				}
			}
			throw new Error();
		}
		/**
		* Fully expand the given macro name and return the resulting list of
		* tokens, or return `undefined` if no such macro is defined.
		*/
		expandMacro(name) {
			return this.macros.has(name) ? this.expandTokens([new Token(name)]) : undefined;
		}
		/**
		* Fully expand the given token stream and return the resulting list of
		* tokens.  Note that the input tokens are in reverse order, but the
		* output tokens are in forward order.
		*/
		expandTokens(tokens) {
			var output = [];
			var oldStackLength = this.stack.length;
			this.pushTokens(tokens);
			while (this.stack.length > oldStackLength) {
				if (this.expandOnce(true) === false) {
					var token = this.stack.pop();
					if (token.treatAsRelax) {
						token.noexpand = false;
						token.treatAsRelax = false;
					}
					output.push(token);
				}
			}
			this.countExpansion(output.length);
			return output;
		}
		/**
		* Fully expand the given macro name and return the result as a string,
		* or return `undefined` if no such macro is defined.
		*/
		expandMacroAsText(name) {
			var tokens = this.expandMacro(name);
			if (tokens) {
				return tokens.map((token) => token.text).join("");
			} else {
				return tokens;
			}
		}
		/**
		* Returns the expanded macro as a reversed array of tokens and a macro
		* argument count.  Or returns `null` if no such macro.
		*/
		_getExpansion(name) {
			var definition = this.macros.get(name);
			if (definition == null) {
				return definition;
			}
			if (name.length === 1) {
				var catcode = this.lexer.catcodes[name];
				if (catcode != null && catcode !== 13) {
					return;
				}
			}
			var expansion = typeof definition === "function" ? definition(this) : definition;
			if (typeof expansion === "string") {
				var numArgs = 0;
				if (expansion.indexOf("#") !== -1) {
					var stripped = expansion.replace(/##/g, "");
					while (stripped.indexOf("#" + (numArgs + 1)) !== -1) {
						++numArgs;
					}
				}
				var bodyLexer = new Lexer(expansion, this.settings);
				var tokens = [];
				var tok = bodyLexer.lex();
				while (tok.text !== "EOF") {
					tokens.push(tok);
					tok = bodyLexer.lex();
				}
				tokens.reverse();
				var expanded = {
					tokens,
					numArgs
				};
				return expanded;
			}
			return expansion;
		}
		/**
		* Determine whether a command is currently "defined" (has some
		* functionality), meaning that it's a macro (in the current group),
		* a function, a symbol, or one of the special commands listed in
		* `implicitCommands`.
		*/
		isDefined(name) {
			return this.macros.has(name) || functions.hasOwnProperty(name) || symbols.math.hasOwnProperty(name) || symbols.text.hasOwnProperty(name) || implicitCommands.hasOwnProperty(name);
		}
		/**
		* Determine whether a command is expandable.
		*/
		isExpandable(name) {
			var macro = this.macros.get(name);
			return macro != null ? typeof macro === "string" || typeof macro === "function" || !macro.unexpandable : functions.hasOwnProperty(name) && !functions[name].primitive;
		}
	};
	unicodeSubRegEx = /^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/;
	uSubsAndSups = Object.freeze({
		"₊": "+",
		"₋": "-",
		"₌": "=",
		"₍": "(",
		"₎": ")",
		"₀": "0",
		"₁": "1",
		"₂": "2",
		"₃": "3",
		"₄": "4",
		"₅": "5",
		"₆": "6",
		"₇": "7",
		"₈": "8",
		"₉": "9",
		"ₐ": "a",
		"ₑ": "e",
		"ₕ": "h",
		"ᵢ": "i",
		"ⱼ": "j",
		"ₖ": "k",
		"ₗ": "l",
		"ₘ": "m",
		"ₙ": "n",
		"ₒ": "o",
		"ₚ": "p",
		"ᵣ": "r",
		"ₛ": "s",
		"ₜ": "t",
		"ᵤ": "u",
		"ᵥ": "v",
		"ₓ": "x",
		"ᵦ": "β",
		"ᵧ": "γ",
		"ᵨ": "ρ",
		"ᵩ": "ϕ",
		"ᵪ": "χ",
		"⁺": "+",
		"⁻": "-",
		"⁼": "=",
		"⁽": "(",
		"⁾": ")",
		"⁰": "0",
		"¹": "1",
		"²": "2",
		"³": "3",
		"⁴": "4",
		"⁵": "5",
		"⁶": "6",
		"⁷": "7",
		"⁸": "8",
		"⁹": "9",
		"ᴬ": "A",
		"ᴮ": "B",
		"ᴰ": "D",
		"ᴱ": "E",
		"ᴳ": "G",
		"ᴴ": "H",
		"ᴵ": "I",
		"ᴶ": "J",
		"ᴷ": "K",
		"ᴸ": "L",
		"ᴹ": "M",
		"ᴺ": "N",
		"ᴼ": "O",
		"ᴾ": "P",
		"ᴿ": "R",
		"ᵀ": "T",
		"ᵁ": "U",
		"ⱽ": "V",
		"ᵂ": "W",
		"ᵃ": "a",
		"ᵇ": "b",
		"ᶜ": "c",
		"ᵈ": "d",
		"ᵉ": "e",
		"ᶠ": "f",
		"ᵍ": "g",
		"ʰ": "h",
		"ⁱ": "i",
		"ʲ": "j",
		"ᵏ": "k",
		"ˡ": "l",
		"ᵐ": "m",
		"ⁿ": "n",
		"ᵒ": "o",
		"ᵖ": "p",
		"ʳ": "r",
		"ˢ": "s",
		"ᵗ": "t",
		"ᵘ": "u",
		"ᵛ": "v",
		"ʷ": "w",
		"ˣ": "x",
		"ʸ": "y",
		"ᶻ": "z",
		"ᵝ": "β",
		"ᵞ": "γ",
		"ᵟ": "δ",
		"ᵠ": "ϕ",
		"ᵡ": "χ",
		"ᶿ": "θ"
	});
	unicodeAccents = {
		"́": {
			"text": "\\'",
			"math": "\\acute"
		},
		"̀": {
			"text": "\\`",
			"math": "\\grave"
		},
		"̈": {
			"text": "\\\"",
			"math": "\\ddot"
		},
		"̃": {
			"text": "\\~",
			"math": "\\tilde"
		},
		"̄": {
			"text": "\\=",
			"math": "\\bar"
		},
		"̆": {
			"text": "\\u",
			"math": "\\breve"
		},
		"̌": {
			"text": "\\v",
			"math": "\\check"
		},
		"̂": {
			"text": "\\^",
			"math": "\\hat"
		},
		"̇": {
			"text": "\\.",
			"math": "\\dot"
		},
		"̊": {
			"text": "\\r",
			"math": "\\mathring"
		},
		"̋": { "text": "\\H" },
		"̧": { "text": "\\c" }
	};
	unicodeSymbols = {
		"á": "á",
		"à": "à",
		"ä": "ä",
		"ǟ": "ǟ",
		"ã": "ã",
		"ā": "ā",
		"ă": "ă",
		"ắ": "ắ",
		"ằ": "ằ",
		"ẵ": "ẵ",
		"ǎ": "ǎ",
		"â": "â",
		"ấ": "ấ",
		"ầ": "ầ",
		"ẫ": "ẫ",
		"ȧ": "ȧ",
		"ǡ": "ǡ",
		"å": "å",
		"ǻ": "ǻ",
		"ḃ": "ḃ",
		"ć": "ć",
		"ḉ": "ḉ",
		"č": "č",
		"ĉ": "ĉ",
		"ċ": "ċ",
		"ç": "ç",
		"ď": "ď",
		"ḋ": "ḋ",
		"ḑ": "ḑ",
		"é": "é",
		"è": "è",
		"ë": "ë",
		"ẽ": "ẽ",
		"ē": "ē",
		"ḗ": "ḗ",
		"ḕ": "ḕ",
		"ĕ": "ĕ",
		"ḝ": "ḝ",
		"ě": "ě",
		"ê": "ê",
		"ế": "ế",
		"ề": "ề",
		"ễ": "ễ",
		"ė": "ė",
		"ȩ": "ȩ",
		"ḟ": "ḟ",
		"ǵ": "ǵ",
		"ḡ": "ḡ",
		"ğ": "ğ",
		"ǧ": "ǧ",
		"ĝ": "ĝ",
		"ġ": "ġ",
		"ģ": "ģ",
		"ḧ": "ḧ",
		"ȟ": "ȟ",
		"ĥ": "ĥ",
		"ḣ": "ḣ",
		"ḩ": "ḩ",
		"í": "í",
		"ì": "ì",
		"ï": "ï",
		"ḯ": "ḯ",
		"ĩ": "ĩ",
		"ī": "ī",
		"ĭ": "ĭ",
		"ǐ": "ǐ",
		"î": "î",
		"ǰ": "ǰ",
		"ĵ": "ĵ",
		"ḱ": "ḱ",
		"ǩ": "ǩ",
		"ķ": "ķ",
		"ĺ": "ĺ",
		"ľ": "ľ",
		"ļ": "ļ",
		"ḿ": "ḿ",
		"ṁ": "ṁ",
		"ń": "ń",
		"ǹ": "ǹ",
		"ñ": "ñ",
		"ň": "ň",
		"ṅ": "ṅ",
		"ņ": "ņ",
		"ó": "ó",
		"ò": "ò",
		"ö": "ö",
		"ȫ": "ȫ",
		"õ": "õ",
		"ṍ": "ṍ",
		"ṏ": "ṏ",
		"ȭ": "ȭ",
		"ō": "ō",
		"ṓ": "ṓ",
		"ṑ": "ṑ",
		"ŏ": "ŏ",
		"ǒ": "ǒ",
		"ô": "ô",
		"ố": "ố",
		"ồ": "ồ",
		"ỗ": "ỗ",
		"ȯ": "ȯ",
		"ȱ": "ȱ",
		"ő": "ő",
		"ṕ": "ṕ",
		"ṗ": "ṗ",
		"ŕ": "ŕ",
		"ř": "ř",
		"ṙ": "ṙ",
		"ŗ": "ŗ",
		"ś": "ś",
		"ṥ": "ṥ",
		"š": "š",
		"ṧ": "ṧ",
		"ŝ": "ŝ",
		"ṡ": "ṡ",
		"ş": "ş",
		"ẗ": "ẗ",
		"ť": "ť",
		"ṫ": "ṫ",
		"ţ": "ţ",
		"ú": "ú",
		"ù": "ù",
		"ü": "ü",
		"ǘ": "ǘ",
		"ǜ": "ǜ",
		"ǖ": "ǖ",
		"ǚ": "ǚ",
		"ũ": "ũ",
		"ṹ": "ṹ",
		"ū": "ū",
		"ṻ": "ṻ",
		"ŭ": "ŭ",
		"ǔ": "ǔ",
		"û": "û",
		"ů": "ů",
		"ű": "ű",
		"ṽ": "ṽ",
		"ẃ": "ẃ",
		"ẁ": "ẁ",
		"ẅ": "ẅ",
		"ŵ": "ŵ",
		"ẇ": "ẇ",
		"ẘ": "ẘ",
		"ẍ": "ẍ",
		"ẋ": "ẋ",
		"ý": "ý",
		"ỳ": "ỳ",
		"ÿ": "ÿ",
		"ỹ": "ỹ",
		"ȳ": "ȳ",
		"ŷ": "ŷ",
		"ẏ": "ẏ",
		"ẙ": "ẙ",
		"ź": "ź",
		"ž": "ž",
		"ẑ": "ẑ",
		"ż": "ż",
		"Á": "Á",
		"À": "À",
		"Ä": "Ä",
		"Ǟ": "Ǟ",
		"Ã": "Ã",
		"Ā": "Ā",
		"Ă": "Ă",
		"Ắ": "Ắ",
		"Ằ": "Ằ",
		"Ẵ": "Ẵ",
		"Ǎ": "Ǎ",
		"Â": "Â",
		"Ấ": "Ấ",
		"Ầ": "Ầ",
		"Ẫ": "Ẫ",
		"Ȧ": "Ȧ",
		"Ǡ": "Ǡ",
		"Å": "Å",
		"Ǻ": "Ǻ",
		"Ḃ": "Ḃ",
		"Ć": "Ć",
		"Ḉ": "Ḉ",
		"Č": "Č",
		"Ĉ": "Ĉ",
		"Ċ": "Ċ",
		"Ç": "Ç",
		"Ď": "Ď",
		"Ḋ": "Ḋ",
		"Ḑ": "Ḑ",
		"É": "É",
		"È": "È",
		"Ë": "Ë",
		"Ẽ": "Ẽ",
		"Ē": "Ē",
		"Ḗ": "Ḗ",
		"Ḕ": "Ḕ",
		"Ĕ": "Ĕ",
		"Ḝ": "Ḝ",
		"Ě": "Ě",
		"Ê": "Ê",
		"Ế": "Ế",
		"Ề": "Ề",
		"Ễ": "Ễ",
		"Ė": "Ė",
		"Ȩ": "Ȩ",
		"Ḟ": "Ḟ",
		"Ǵ": "Ǵ",
		"Ḡ": "Ḡ",
		"Ğ": "Ğ",
		"Ǧ": "Ǧ",
		"Ĝ": "Ĝ",
		"Ġ": "Ġ",
		"Ģ": "Ģ",
		"Ḧ": "Ḧ",
		"Ȟ": "Ȟ",
		"Ĥ": "Ĥ",
		"Ḣ": "Ḣ",
		"Ḩ": "Ḩ",
		"Í": "Í",
		"Ì": "Ì",
		"Ï": "Ï",
		"Ḯ": "Ḯ",
		"Ĩ": "Ĩ",
		"Ī": "Ī",
		"Ĭ": "Ĭ",
		"Ǐ": "Ǐ",
		"Î": "Î",
		"İ": "İ",
		"Ĵ": "Ĵ",
		"Ḱ": "Ḱ",
		"Ǩ": "Ǩ",
		"Ķ": "Ķ",
		"Ĺ": "Ĺ",
		"Ľ": "Ľ",
		"Ļ": "Ļ",
		"Ḿ": "Ḿ",
		"Ṁ": "Ṁ",
		"Ń": "Ń",
		"Ǹ": "Ǹ",
		"Ñ": "Ñ",
		"Ň": "Ň",
		"Ṅ": "Ṅ",
		"Ņ": "Ņ",
		"Ó": "Ó",
		"Ò": "Ò",
		"Ö": "Ö",
		"Ȫ": "Ȫ",
		"Õ": "Õ",
		"Ṍ": "Ṍ",
		"Ṏ": "Ṏ",
		"Ȭ": "Ȭ",
		"Ō": "Ō",
		"Ṓ": "Ṓ",
		"Ṑ": "Ṑ",
		"Ŏ": "Ŏ",
		"Ǒ": "Ǒ",
		"Ô": "Ô",
		"Ố": "Ố",
		"Ồ": "Ồ",
		"Ỗ": "Ỗ",
		"Ȯ": "Ȯ",
		"Ȱ": "Ȱ",
		"Ő": "Ő",
		"Ṕ": "Ṕ",
		"Ṗ": "Ṗ",
		"Ŕ": "Ŕ",
		"Ř": "Ř",
		"Ṙ": "Ṙ",
		"Ŗ": "Ŗ",
		"Ś": "Ś",
		"Ṥ": "Ṥ",
		"Š": "Š",
		"Ṧ": "Ṧ",
		"Ŝ": "Ŝ",
		"Ṡ": "Ṡ",
		"Ş": "Ş",
		"Ť": "Ť",
		"Ṫ": "Ṫ",
		"Ţ": "Ţ",
		"Ú": "Ú",
		"Ù": "Ù",
		"Ü": "Ü",
		"Ǘ": "Ǘ",
		"Ǜ": "Ǜ",
		"Ǖ": "Ǖ",
		"Ǚ": "Ǚ",
		"Ũ": "Ũ",
		"Ṹ": "Ṹ",
		"Ū": "Ū",
		"Ṻ": "Ṻ",
		"Ŭ": "Ŭ",
		"Ǔ": "Ǔ",
		"Û": "Û",
		"Ů": "Ů",
		"Ű": "Ű",
		"Ṽ": "Ṽ",
		"Ẃ": "Ẃ",
		"Ẁ": "Ẁ",
		"Ẅ": "Ẅ",
		"Ŵ": "Ŵ",
		"Ẇ": "Ẇ",
		"Ẍ": "Ẍ",
		"Ẋ": "Ẋ",
		"Ý": "Ý",
		"Ỳ": "Ỳ",
		"Ÿ": "Ÿ",
		"Ỹ": "Ỹ",
		"Ȳ": "Ȳ",
		"Ŷ": "Ŷ",
		"Ẏ": "Ẏ",
		"Ź": "Ź",
		"Ž": "Ž",
		"Ẑ": "Ẑ",
		"Ż": "Ż",
		"ά": "ά",
		"ὰ": "ὰ",
		"ᾱ": "ᾱ",
		"ᾰ": "ᾰ",
		"έ": "έ",
		"ὲ": "ὲ",
		"ή": "ή",
		"ὴ": "ὴ",
		"ί": "ί",
		"ὶ": "ὶ",
		"ϊ": "ϊ",
		"ΐ": "ΐ",
		"ῒ": "ῒ",
		"ῑ": "ῑ",
		"ῐ": "ῐ",
		"ό": "ό",
		"ὸ": "ὸ",
		"ύ": "ύ",
		"ὺ": "ὺ",
		"ϋ": "ϋ",
		"ΰ": "ΰ",
		"ῢ": "ῢ",
		"ῡ": "ῡ",
		"ῠ": "ῠ",
		"ώ": "ώ",
		"ὼ": "ὼ",
		"Ύ": "Ύ",
		"Ὺ": "Ὺ",
		"Ϋ": "Ϋ",
		"Ῡ": "Ῡ",
		"Ῠ": "Ῠ",
		"Ώ": "Ώ",
		"Ὼ": "Ὼ"
	};
	Parser = class Parser {
		constructor(input, settings) {
			this.mode = void 0;
			this.gullet = void 0;
			this.settings = void 0;
			this.leftrightDepth = void 0;
			this.nextToken = void 0;
			this.mode = "math";
			this.gullet = new MacroExpander(input, settings, this.mode);
			this.settings = settings;
			this.leftrightDepth = 0;
		}
		/**
		* Checks a result to make sure it has the right type, and throws an
		* appropriate error otherwise.
		*/
		expect(text$2, consume) {
			if (consume === void 0) {
				consume = true;
			}
			if (this.fetch().text !== text$2) {
				throw new ParseError("Expected '" + text$2 + "', got '" + this.fetch().text + "'", this.fetch());
			}
			if (consume) {
				this.consume();
			}
		}
		/**
		* Discards the current lookahead token, considering it consumed.
		*/
		consume() {
			this.nextToken = null;
		}
		/**
		* Return the current lookahead token, or if there isn't one (at the
		* beginning, or if the previous lookahead token was consume()d),
		* fetch the next token as the new lookahead token and return it.
		*/
		fetch() {
			if (this.nextToken == null) {
				this.nextToken = this.gullet.expandNextToken();
			}
			return this.nextToken;
		}
		/**
		* Switches between "text" and "math" modes.
		*/
		switchMode(newMode) {
			this.mode = newMode;
			this.gullet.switchMode(newMode);
		}
		/**
		* Main parsing function, which parses an entire input.
		*/
		parse() {
			if (!this.settings.globalGroup) {
				this.gullet.beginGroup();
			}
			if (this.settings.colorIsTextColor) {
				this.gullet.macros.set("\\color", "\\textcolor");
			}
			try {
				var parse = this.parseExpression(false);
				this.expect("EOF");
				if (!this.settings.globalGroup) {
					this.gullet.endGroup();
				}
				return parse;
			} finally {
				this.gullet.endGroups();
			}
		}
		/**
		* Fully parse a separate sequence of tokens as a separate job.
		* Tokens should be specified in reverse order, as in a MacroDefinition.
		*/
		subparse(tokens) {
			var oldToken = this.nextToken;
			this.consume();
			this.gullet.pushToken(new Token("}"));
			this.gullet.pushTokens(tokens);
			var parse = this.parseExpression(false);
			this.expect("}");
			this.nextToken = oldToken;
			return parse;
		}
		/**
		* Parses an "expression", which is a list of atoms.
		*
		* `breakOnInfix`: Should the parsing stop when we hit infix nodes? This
		*                 happens when functions have higher precedence han infix
		*                 nodes in implicit parses.
		*
		* `breakOnTokenText`: The text of the token that the expression should end
		*                     with, or `null` if something else should end the
		*                     expression.
		*/
		parseExpression(breakOnInfix, breakOnTokenText) {
			var body = [];
			while (true) {
				if (this.mode === "math") {
					this.consumeSpaces();
				}
				var lex = this.fetch();
				if (Parser.endOfExpression.indexOf(lex.text) !== -1) {
					break;
				}
				if (breakOnTokenText && lex.text === breakOnTokenText) {
					break;
				}
				if (breakOnInfix && functions[lex.text] && functions[lex.text].infix) {
					break;
				}
				var atom = this.parseAtom(breakOnTokenText);
				if (!atom) {
					break;
				} else if (atom.type === "internal") {
					continue;
				}
				body.push(atom);
			}
			if (this.mode === "text") {
				this.formLigatures(body);
			}
			return this.handleInfixNodes(body);
		}
		/**
		* Rewrites infix operators such as \over with corresponding commands such
		* as \frac.
		*
		* There can only be one infix operator per group.  If there's more than one
		* then the expression is ambiguous.  This can be resolved by adding {}.
		*/
		handleInfixNodes(body) {
			var overIndex = -1;
			var funcName;
			for (var i$7 = 0; i$7 < body.length; i$7++) {
				if (body[i$7].type === "infix") {
					if (overIndex !== -1) {
						throw new ParseError("only one infix operator per group", body[i$7].token);
					}
					overIndex = i$7;
					funcName = body[i$7].replaceWith;
				}
			}
			if (overIndex !== -1 && funcName) {
				var numerNode;
				var denomNode;
				var numerBody = body.slice(0, overIndex);
				var denomBody = body.slice(overIndex + 1);
				if (numerBody.length === 1 && numerBody[0].type === "ordgroup") {
					numerNode = numerBody[0];
				} else {
					numerNode = {
						type: "ordgroup",
						mode: this.mode,
						body: numerBody
					};
				}
				if (denomBody.length === 1 && denomBody[0].type === "ordgroup") {
					denomNode = denomBody[0];
				} else {
					denomNode = {
						type: "ordgroup",
						mode: this.mode,
						body: denomBody
					};
				}
				var node;
				if (funcName === "\\\\abovefrac") {
					node = this.callFunction(funcName, [
						numerNode,
						body[overIndex],
						denomNode
					], []);
				} else {
					node = this.callFunction(funcName, [numerNode, denomNode], []);
				}
				return [node];
			} else {
				return body;
			}
		}
		/**
		* Handle a subscript or superscript with nice errors.
		*/
		handleSupSubscript(name) {
			var symbolToken = this.fetch();
			var symbol = symbolToken.text;
			this.consume();
			this.consumeSpaces();
			var group;
			do {
				var _group;
				group = this.parseGroup(name);
			} while (((_group = group) == null ? void 0 : _group.type) === "internal");
			if (!group) {
				throw new ParseError("Expected group after '" + symbol + "'", symbolToken);
			}
			return group;
		}
		/**
		* Converts the textual input of an unsupported command into a text node
		* contained within a color node whose color is determined by errorColor
		*/
		formatUnsupportedCmd(text$2) {
			var textordArray = [];
			for (var i$7 = 0; i$7 < text$2.length; i$7++) {
				textordArray.push({
					type: "textord",
					mode: "text",
					text: text$2[i$7]
				});
			}
			var textNode = {
				type: "text",
				mode: this.mode,
				body: textordArray
			};
			var colorNode = {
				type: "color",
				mode: this.mode,
				color: this.settings.errorColor,
				body: [textNode]
			};
			return colorNode;
		}
		/**
		* Parses a group with optional super/subscripts.
		*/
		parseAtom(breakOnTokenText) {
			var base = this.parseGroup("atom", breakOnTokenText);
			if ((base == null ? void 0 : base.type) === "internal") {
				return base;
			}
			if (this.mode === "text") {
				return base;
			}
			var superscript;
			var subscript;
			while (true) {
				this.consumeSpaces();
				var lex = this.fetch();
				if (lex.text === "\\limits" || lex.text === "\\nolimits") {
					if (base && base.type === "op") {
						var limits = lex.text === "\\limits";
						base.limits = limits;
						base.alwaysHandleSupSub = true;
					} else if (base && base.type === "operatorname") {
						if (base.alwaysHandleSupSub) {
							base.limits = lex.text === "\\limits";
						}
					} else {
						throw new ParseError("Limit controls must follow a math operator", lex);
					}
					this.consume();
				} else if (lex.text === "^") {
					if (superscript) {
						throw new ParseError("Double superscript", lex);
					}
					superscript = this.handleSupSubscript("superscript");
				} else if (lex.text === "_") {
					if (subscript) {
						throw new ParseError("Double subscript", lex);
					}
					subscript = this.handleSupSubscript("subscript");
				} else if (lex.text === "'") {
					if (superscript) {
						throw new ParseError("Double superscript", lex);
					}
					var prime = {
						type: "textord",
						mode: this.mode,
						text: "\\prime"
					};
					var primes = [prime];
					this.consume();
					while (this.fetch().text === "'") {
						primes.push(prime);
						this.consume();
					}
					if (this.fetch().text === "^") {
						primes.push(this.handleSupSubscript("superscript"));
					}
					superscript = {
						type: "ordgroup",
						mode: this.mode,
						body: primes
					};
				} else if (uSubsAndSups[lex.text]) {
					var isSub = unicodeSubRegEx.test(lex.text);
					var subsupTokens = [];
					subsupTokens.push(new Token(uSubsAndSups[lex.text]));
					this.consume();
					while (true) {
						var token = this.fetch().text;
						if (!uSubsAndSups[token]) {
							break;
						}
						if (unicodeSubRegEx.test(token) !== isSub) {
							break;
						}
						subsupTokens.unshift(new Token(uSubsAndSups[token]));
						this.consume();
					}
					var body = this.subparse(subsupTokens);
					if (isSub) {
						subscript = {
							type: "ordgroup",
							mode: "math",
							body
						};
					} else {
						superscript = {
							type: "ordgroup",
							mode: "math",
							body
						};
					}
				} else {
					break;
				}
			}
			if (superscript || subscript) {
				return {
					type: "supsub",
					mode: this.mode,
					base,
					sup: superscript,
					sub: subscript
				};
			} else {
				return base;
			}
		}
		/**
		* Parses an entire function, including its base and all of its arguments.
		*/
		parseFunction(breakOnTokenText, name) {
			var token = this.fetch();
			var func = token.text;
			var funcData = functions[func];
			if (!funcData) {
				return null;
			}
			this.consume();
			if (name && name !== "atom" && !funcData.allowedInArgument) {
				throw new ParseError("Got function '" + func + "' with no arguments" + (name ? " as " + name : ""), token);
			} else if (this.mode === "text" && !funcData.allowedInText) {
				throw new ParseError("Can't use function '" + func + "' in text mode", token);
			} else if (this.mode === "math" && funcData.allowedInMath === false) {
				throw new ParseError("Can't use function '" + func + "' in math mode", token);
			}
			var { args, optArgs } = this.parseArguments(func, funcData);
			return this.callFunction(func, args, optArgs, token, breakOnTokenText);
		}
		/**
		* Call a function handler with a suitable context and arguments.
		*/
		callFunction(name, args, optArgs, token, breakOnTokenText) {
			var context = {
				funcName: name,
				parser: this,
				token,
				breakOnTokenText
			};
			var func = functions[name];
			if (func && func.handler) {
				return func.handler(context, args, optArgs);
			} else {
				throw new ParseError("No function handler for " + name);
			}
		}
		/**
		* Parses the arguments of a function or environment
		*/
		parseArguments(func, funcData) {
			var totalArgs = funcData.numArgs + funcData.numOptionalArgs;
			if (totalArgs === 0) {
				return {
					args: [],
					optArgs: []
				};
			}
			var args = [];
			var optArgs = [];
			for (var i$7 = 0; i$7 < totalArgs; i$7++) {
				var argType = funcData.argTypes && funcData.argTypes[i$7];
				var isOptional = i$7 < funcData.numOptionalArgs;
				if (funcData.primitive && argType == null || funcData.type === "sqrt" && i$7 === 1 && optArgs[0] == null) {
					argType = "primitive";
				}
				var arg = this.parseGroupOfType("argument to '" + func + "'", argType, isOptional);
				if (isOptional) {
					optArgs.push(arg);
				} else if (arg != null) {
					args.push(arg);
				} else {
					throw new ParseError("Null argument, please report this as a bug");
				}
			}
			return {
				args,
				optArgs
			};
		}
		/**
		* Parses a group when the mode is changing.
		*/
		parseGroupOfType(name, type, optional$2) {
			switch (type) {
				case "color": return this.parseColorGroup(optional$2);
				case "size": return this.parseSizeGroup(optional$2);
				case "url": return this.parseUrlGroup(optional$2);
				case "math":
				case "text": return this.parseArgumentGroup(optional$2, type);
				case "hbox": {
					var group = this.parseArgumentGroup(optional$2, "text");
					return group != null ? {
						type: "styling",
						mode: group.mode,
						body: [group],
						style: "text"
					} : null;
				}
				case "raw": {
					var token = this.parseStringGroup("raw", optional$2);
					return token != null ? {
						type: "raw",
						mode: "text",
						string: token.text
					} : null;
				}
				case "primitive": {
					if (optional$2) {
						throw new ParseError("A primitive argument cannot be optional");
					}
					var _group2 = this.parseGroup(name);
					if (_group2 == null) {
						throw new ParseError("Expected group as " + name, this.fetch());
					}
					return _group2;
				}
				case "original":
				case null:
				case undefined: return this.parseArgumentGroup(optional$2);
				default: throw new ParseError("Unknown group type as " + name, this.fetch());
			}
		}
		/**
		* Discard any space tokens, fetching the next non-space token.
		*/
		consumeSpaces() {
			while (this.fetch().text === " ") {
				this.consume();
			}
		}
		/**
		* Parses a group, essentially returning the string formed by the
		* brace-enclosed tokens plus some position information.
		*/
		parseStringGroup(modeName, optional$2) {
			var argToken = this.gullet.scanArgument(optional$2);
			if (argToken == null) {
				return null;
			}
			var str = "";
			var nextToken;
			while ((nextToken = this.fetch()).text !== "EOF") {
				str += nextToken.text;
				this.consume();
			}
			this.consume();
			argToken.text = str;
			return argToken;
		}
		/**
		* Parses a regex-delimited group: the largest sequence of tokens
		* whose concatenated strings match `regex`. Returns the string
		* formed by the tokens plus some position information.
		*/
		parseRegexGroup(regex, modeName) {
			var firstToken = this.fetch();
			var lastToken = firstToken;
			var str = "";
			var nextToken;
			while ((nextToken = this.fetch()).text !== "EOF" && regex.test(str + nextToken.text)) {
				lastToken = nextToken;
				str += lastToken.text;
				this.consume();
			}
			if (str === "") {
				throw new ParseError("Invalid " + modeName + ": '" + firstToken.text + "'", firstToken);
			}
			return firstToken.range(lastToken, str);
		}
		/**
		* Parses a color description.
		*/
		parseColorGroup(optional$2) {
			var res = this.parseStringGroup("color", optional$2);
			if (res == null) {
				return null;
			}
			var match = /^(#[a-f0-9]{3,4}|#[a-f0-9]{6}|#[a-f0-9]{8}|[a-f0-9]{6}|[a-z]+)$/i.exec(res.text);
			if (!match) {
				throw new ParseError("Invalid color: '" + res.text + "'", res);
			}
			var color = match[0];
			if (/^[0-9a-f]{6}$/i.test(color)) {
				color = "#" + color;
			}
			return {
				type: "color-token",
				mode: this.mode,
				color
			};
		}
		/**
		* Parses a size specification, consisting of magnitude and unit.
		*/
		parseSizeGroup(optional$2) {
			var res;
			var isBlank = false;
			this.gullet.consumeSpaces();
			if (!optional$2 && this.gullet.future().text !== "{") {
				res = this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/, "size");
			} else {
				res = this.parseStringGroup("size", optional$2);
			}
			if (!res) {
				return null;
			}
			if (!optional$2 && res.text.length === 0) {
				res.text = "0pt";
				isBlank = true;
			}
			var match = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(res.text);
			if (!match) {
				throw new ParseError("Invalid size: '" + res.text + "'", res);
			}
			var data = {
				number: +(match[1] + match[2]),
				unit: match[3]
			};
			if (!validUnit(data)) {
				throw new ParseError("Invalid unit: '" + data.unit + "'", res);
			}
			return {
				type: "size",
				mode: this.mode,
				value: data,
				isBlank
			};
		}
		/**
		* Parses an URL, checking escaped letters and allowed protocols,
		* and setting the catcode of % as an active character (as in \hyperref).
		*/
		parseUrlGroup(optional$2) {
			this.gullet.lexer.setCatcode("%", 13);
			this.gullet.lexer.setCatcode("~", 12);
			var res = this.parseStringGroup("url", optional$2);
			this.gullet.lexer.setCatcode("%", 14);
			this.gullet.lexer.setCatcode("~", 13);
			if (res == null) {
				return null;
			}
			var url = res.text.replace(/\\([#$%&~_^{}])/g, "$1");
			return {
				type: "url",
				mode: this.mode,
				url
			};
		}
		/**
		* Parses an argument with the mode specified.
		*/
		parseArgumentGroup(optional$2, mode) {
			var argToken = this.gullet.scanArgument(optional$2);
			if (argToken == null) {
				return null;
			}
			var outerMode = this.mode;
			if (mode) {
				this.switchMode(mode);
			}
			this.gullet.beginGroup();
			var expression = this.parseExpression(false, "EOF");
			this.expect("EOF");
			this.gullet.endGroup();
			var result = {
				type: "ordgroup",
				mode: this.mode,
				loc: argToken.loc,
				body: expression
			};
			if (mode) {
				this.switchMode(outerMode);
			}
			return result;
		}
		/**
		* Parses an ordinary group, which is either a single nucleus (like "x")
		* or an expression in braces (like "{x+y}") or an implicit group, a group
		* that starts at the current position, and ends right before a higher explicit
		* group ends, or at EOF.
		*/
		parseGroup(name, breakOnTokenText) {
			var firstToken = this.fetch();
			var text$2 = firstToken.text;
			var result;
			if (text$2 === "{" || text$2 === "\\begingroup") {
				this.consume();
				var groupEnd = text$2 === "{" ? "}" : "\\endgroup";
				this.gullet.beginGroup();
				var expression = this.parseExpression(false, groupEnd);
				var lastToken = this.fetch();
				this.expect(groupEnd);
				this.gullet.endGroup();
				result = {
					type: "ordgroup",
					mode: this.mode,
					loc: SourceLocation.range(firstToken, lastToken),
					body: expression,
					semisimple: text$2 === "\\begingroup" || undefined
				};
			} else {
				result = this.parseFunction(breakOnTokenText, name) || this.parseSymbol();
				if (result == null && text$2[0] === "\\" && !implicitCommands.hasOwnProperty(text$2)) {
					if (this.settings.throwOnError) {
						throw new ParseError("Undefined control sequence: " + text$2, firstToken);
					}
					result = this.formatUnsupportedCmd(text$2);
					this.consume();
				}
			}
			return result;
		}
		/**
		* Form ligature-like combinations of characters for text mode.
		* This includes inputs like "--", "---", "``" and "''".
		* The result will simply replace multiple textord nodes with a single
		* character in each value by a single textord node having multiple
		* characters in its value.  The representation is still ASCII source.
		* The group will be modified in place.
		*/
		formLigatures(group) {
			var n$9 = group.length - 1;
			for (var i$7 = 0; i$7 < n$9; ++i$7) {
				var a$2 = group[i$7];
				var v$3 = a$2.text;
				if (v$3 === "-" && group[i$7 + 1].text === "-") {
					if (i$7 + 1 < n$9 && group[i$7 + 2].text === "-") {
						group.splice(i$7, 3, {
							type: "textord",
							mode: "text",
							loc: SourceLocation.range(a$2, group[i$7 + 2]),
							text: "---"
						});
						n$9 -= 2;
					} else {
						group.splice(i$7, 2, {
							type: "textord",
							mode: "text",
							loc: SourceLocation.range(a$2, group[i$7 + 1]),
							text: "--"
						});
						n$9 -= 1;
					}
				}
				if ((v$3 === "'" || v$3 === "`") && group[i$7 + 1].text === v$3) {
					group.splice(i$7, 2, {
						type: "textord",
						mode: "text",
						loc: SourceLocation.range(a$2, group[i$7 + 1]),
						text: v$3 + v$3
					});
					n$9 -= 1;
				}
			}
		}
		/**
		* Parse a single symbol out of the string. Here, we handle single character
		* symbols and special functions like \verb.
		*/
		parseSymbol() {
			var nucleus = this.fetch();
			var text$2 = nucleus.text;
			if (/^\\verb[^a-zA-Z]/.test(text$2)) {
				this.consume();
				var arg = text$2.slice(5);
				var star = arg.charAt(0) === "*";
				if (star) {
					arg = arg.slice(1);
				}
				if (arg.length < 2 || arg.charAt(0) !== arg.slice(-1)) {
					throw new ParseError("\\verb assertion failed --\n                    please report what input caused this bug");
				}
				arg = arg.slice(1, -1);
				return {
					type: "verb",
					mode: "text",
					body: arg,
					star
				};
			}
			if (unicodeSymbols.hasOwnProperty(text$2[0]) && !symbols[this.mode][text$2[0]]) {
				if (this.settings.strict && this.mode === "math") {
					this.settings.reportNonstrict("unicodeTextInMathMode", "Accented Unicode text character \"" + text$2[0] + "\" used in " + "math mode", nucleus);
				}
				text$2 = unicodeSymbols[text$2[0]] + text$2.slice(1);
			}
			var match = combiningDiacriticalMarksEndRegex.exec(text$2);
			if (match) {
				text$2 = text$2.substring(0, match.index);
				if (text$2 === "i") {
					text$2 = "ı";
				} else if (text$2 === "j") {
					text$2 = "ȷ";
				}
			}
			var symbol;
			if (symbols[this.mode][text$2]) {
				if (this.settings.strict && this.mode === "math" && extraLatin.indexOf(text$2) >= 0) {
					this.settings.reportNonstrict("unicodeTextInMathMode", "Latin-1/Unicode text character \"" + text$2[0] + "\" used in " + "math mode", nucleus);
				}
				var group = symbols[this.mode][text$2].group;
				var loc = SourceLocation.range(nucleus);
				var s$5;
				if (ATOMS.hasOwnProperty(group)) {
					var family = group;
					s$5 = {
						type: "atom",
						mode: this.mode,
						family,
						loc,
						text: text$2
					};
				} else {
					s$5 = {
						type: group,
						mode: this.mode,
						loc,
						text: text$2
					};
				}
				symbol = s$5;
			} else if (text$2.charCodeAt(0) >= 128) {
				if (this.settings.strict) {
					if (!supportedCodepoint(text$2.charCodeAt(0))) {
						this.settings.reportNonstrict("unknownSymbol", "Unrecognized Unicode character \"" + text$2[0] + "\"" + (" (" + text$2.charCodeAt(0) + ")"), nucleus);
					} else if (this.mode === "math") {
						this.settings.reportNonstrict("unicodeTextInMathMode", "Unicode text character \"" + text$2[0] + "\" used in math mode", nucleus);
					}
				}
				symbol = {
					type: "textord",
					mode: "text",
					loc: SourceLocation.range(nucleus),
					text: text$2
				};
			} else {
				return null;
			}
			this.consume();
			if (match) {
				for (var i$7 = 0; i$7 < match[0].length; i$7++) {
					var accent$1 = match[0][i$7];
					if (!unicodeAccents[accent$1]) {
						throw new ParseError("Unknown accent ' " + accent$1 + "'", nucleus);
					}
					var command = unicodeAccents[accent$1][this.mode] || unicodeAccents[accent$1].text;
					if (!command) {
						throw new ParseError("Accent " + accent$1 + " unsupported in " + this.mode + " mode", nucleus);
					}
					symbol = {
						type: "accent",
						mode: this.mode,
						loc: SourceLocation.range(nucleus),
						label: command,
						isStretchy: false,
						isShifty: true,
						base: symbol
					};
				}
			}
			return symbol;
		}
	};
	Parser.endOfExpression = [
		"}",
		"\\endgroup",
		"\\end",
		"\\right",
		"&"
	];
	parseTree = function parseTree$1(toParse, settings) {
		if (!(typeof toParse === "string" || toParse instanceof String)) {
			throw new TypeError("KaTeX can only parse string typed expression");
		}
		var parser = new Parser(toParse, settings);
		delete parser.gullet.macros.current["\\df@tag"];
		var tree = parser.parse();
		delete parser.gullet.macros.current["\\current@color"];
		delete parser.gullet.macros.current["\\color"];
		if (parser.gullet.macros.get("\\df@tag")) {
			if (!settings.displayMode) {
				throw new ParseError("\\tag works only in display equations");
			}
			tree = [{
				type: "tag",
				mode: "text",
				body: tree,
				tag: parser.subparse([new Token("\\df@tag")])
			}];
		}
		return tree;
	};
	render = function render$1(expression, baseNode, options) {
		baseNode.textContent = "";
		var node = renderToDomTree(expression, options).toNode();
		baseNode.appendChild(node);
	};
	if (typeof document !== "undefined") {
		if (document.compatMode !== "CSS1Compat") {
			typeof console !== "undefined" && console.warn("Warning: KaTeX doesn't work in quirks mode. Make sure your " + "website has a suitable doctype.");
			render = function render$1() {
				throw new ParseError("KaTeX doesn't work in quirks mode.");
			};
		}
	}
	renderToString = function renderToString$1(expression, options) {
		var markup = renderToDomTree(expression, options).toMarkup();
		return markup;
	};
	generateParseTree = function generateParseTree$1(expression, options) {
		var settings = new Settings(options);
		return parseTree(expression, settings);
	};
	renderError = function renderError$1(error$2, expression, options) {
		if (options.throwOnError || !(error$2 instanceof ParseError)) {
			throw error$2;
		}
		var node = buildCommon.makeSpan(["katex-error"], [new SymbolNode(expression)]);
		node.setAttribute("title", error$2.toString());
		node.setAttribute("style", "color:" + options.errorColor);
		return node;
	};
	renderToDomTree = function renderToDomTree$1(expression, options) {
		var settings = new Settings(options);
		try {
			var tree = parseTree(expression, settings);
			return buildTree(tree, expression, settings);
		} catch (error$2) {
			return renderError(error$2, expression, settings);
		}
	};
	renderToHTMLTree = function renderToHTMLTree$1(expression, options) {
		var settings = new Settings(options);
		try {
			var tree = parseTree(expression, settings);
			return buildHTMLTree(tree, expression, settings);
		} catch (error$2) {
			return renderError(error$2, expression, settings);
		}
	};
	version$2 = "0.16.27";
	__domTree = {
		Span,
		Anchor,
		SymbolNode,
		SvgNode,
		PathNode,
		LineNode
	};
	katex = {
		version: version$2,
		render,
		renderToString,
		ParseError,
		SETTINGS_SCHEMA,
		__parse: generateParseTree,
		__renderToDomTree: renderToDomTree,
		__renderToHTMLTree: renderToHTMLTree,
		__setFontMetrics: setFontMetrics,
		__defineSymbol: defineSymbol,
		__defineFunction: defineFunction,
		__defineMacro: defineMacro,
		__domTree
	};
}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/node_modules/marked/lib/marked.esm.js
/**
* marked v16.4.2 - a markdown parser
* Copyright (c) 2018-2025, MarkedJS. (MIT License)
* Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License)
* https://github.com/markedjs/marked
*/
/**
* DO NOT EDIT THIS FILE
* The code in this file is generated from files in ./src/
*/
function L() {
	return {
		async: !1,
		breaks: !1,
		extensions: null,
		gfm: !0,
		hooks: null,
		pedantic: !1,
		renderer: null,
		silent: !1,
		tokenizer: null,
		walkTokens: null
	};
}
function G(l$3) {
	T = l$3;
}
function d$1(l$3, e$10 = "") {
	let t$6 = typeof l$3 == "string" ? l$3 : l$3.source, n$9 = {
		replace: (r$10, i$7) => {
			let s$5 = typeof i$7 == "string" ? i$7 : i$7.source;
			return s$5 = s$5.replace(m.caret, "$1"), t$6 = t$6.replace(r$10, s$5), n$9;
		},
		getRegex: () => new RegExp(t$6, e$10)
	};
	return n$9;
}
function w(l$3, e$10) {
	if (e$10) {
		if (m.escapeTest.test(l$3)) return l$3.replace(m.escapeReplace, ge);
	} else if (m.escapeTestNoEncode.test(l$3)) return l$3.replace(m.escapeReplaceNoEncode, ge);
	return l$3;
}
function J(l$3) {
	try {
		l$3 = encodeURI(l$3).replace(m.percentDecode, "%");
	} catch {
		return null;
	}
	return l$3;
}
function V(l$3, e$10) {
	let t$6 = l$3.replace(m.findPipe, (i$7, s$5, a$2) => {
		let o$10 = !1, p$3 = s$5;
		for (; --p$3 >= 0 && a$2[p$3] === "\\";) o$10 = !o$10;
		return o$10 ? "|" : " |";
	}), n$9 = t$6.split(m.splitPipe), r$10 = 0;
	if (n$9[0].trim() || n$9.shift(), n$9.length > 0 && !n$9.at(-1)?.trim() && n$9.pop(), e$10) if (n$9.length > e$10) n$9.splice(e$10);
	else for (; n$9.length < e$10;) n$9.push("");
	for (; r$10 < n$9.length; r$10++) n$9[r$10] = n$9[r$10].trim().replace(m.slashPipe, "|");
	return n$9;
}
function z(l$3, e$10, t$6) {
	let n$9 = l$3.length;
	if (n$9 === 0) return "";
	let r$10 = 0;
	for (; r$10 < n$9;) {
		let i$7 = l$3.charAt(n$9 - r$10 - 1);
		if (i$7 === e$10 && !t$6) r$10++;
		else if (i$7 !== e$10 && t$6) r$10++;
		else break;
	}
	return l$3.slice(0, n$9 - r$10);
}
function fe(l$3, e$10) {
	if (l$3.indexOf(e$10[1]) === -1) return -1;
	let t$6 = 0;
	for (let n$9 = 0; n$9 < l$3.length; n$9++) if (l$3[n$9] === "\\") n$9++;
	else if (l$3[n$9] === e$10[0]) t$6++;
	else if (l$3[n$9] === e$10[1] && (t$6--, t$6 < 0)) return n$9;
	return t$6 > 0 ? -2 : -1;
}
function me(l$3, e$10, t$6, n$9, r$10) {
	let i$7 = e$10.href, s$5 = e$10.title || null, a$2 = l$3[1].replace(r$10.other.outputLinkReplace, "$1");
	n$9.state.inLink = !0;
	let o$10 = {
		type: l$3[0].charAt(0) === "!" ? "image" : "link",
		raw: t$6,
		href: i$7,
		title: s$5,
		text: a$2,
		tokens: n$9.inlineTokens(a$2)
	};
	return n$9.state.inLink = !1, o$10;
}
function Ye(l$3, e$10, t$6) {
	let n$9 = l$3.match(t$6.other.indentCodeCompensation);
	if (n$9 === null) return e$10;
	let r$10 = n$9[1];
	return e$10.split(`
`).map((i$7) => {
		let s$5 = i$7.match(t$6.other.beginningSpace);
		if (s$5 === null) return i$7;
		let [a$2] = s$5;
		return a$2.length >= r$10.length ? i$7.slice(r$10.length) : i$7;
	}).join(`
`);
}
function k(l$3, e$10) {
	return _.parse(l$3, e$10);
}
var T, E, be, m, Re, Te, Oe, I, we, F, ie, oe, ye, j, Pe, Q, Se, $e, v, U, _e, ae, Le, K, re, Me, ze, Ae, Ee, le, Ie, D, W, ue, Ce, pe, Be, qe, ve, ce, De, He, he, Ze, Ge, Ne, Fe, je, Qe, Ue, q$1, Ke, de, ke, We, se, X$1, Xe, N, Je, C, M, Ve, ge, y, x$1, P, $$1, b, S, B, _, Zt, Gt, Nt, Ft, jt, Qt, Ut, Kt;
var init_marked_esm = __esmMin((() => {
	T = L();
	E = { exec: () => null };
	be = (() => {
		try {
			return !!new RegExp("(?<=1)(?<!1)");
		} catch {
			return !1;
		}
	})(), m = {
		codeRemoveIndent: /^(?: {1,4}| {0,3}\t)/gm,
		outputLinkReplace: /\\([\[\]])/g,
		indentCodeCompensation: /^(\s+)(?:```)/,
		beginningSpace: /^\s+/,
		endingHash: /#$/,
		startingSpaceChar: /^ /,
		endingSpaceChar: / $/,
		nonSpaceChar: /[^ ]/,
		newLineCharGlobal: /\n/g,
		tabCharGlobal: /\t/g,
		multipleSpaceGlobal: /\s+/g,
		blankLine: /^[ \t]*$/,
		doubleBlankLine: /\n[ \t]*\n[ \t]*$/,
		blockquoteStart: /^ {0,3}>/,
		blockquoteSetextReplace: /\n {0,3}((?:=+|-+) *)(?=\n|$)/g,
		blockquoteSetextReplace2: /^ {0,3}>[ \t]?/gm,
		listReplaceTabs: /^\t+/,
		listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g,
		listIsTask: /^\[[ xX]\] /,
		listReplaceTask: /^\[[ xX]\] +/,
		anyLine: /\n.*\n/,
		hrefBrackets: /^<(.*)>$/,
		tableDelimiter: /[:|]/,
		tableAlignChars: /^\||\| *$/g,
		tableRowBlankLine: /\n[ \t]*$/,
		tableAlignRight: /^ *-+: *$/,
		tableAlignCenter: /^ *:-+: *$/,
		tableAlignLeft: /^ *:-+ *$/,
		startATag: /^<a /i,
		endATag: /^<\/a>/i,
		startPreScriptTag: /^<(pre|code|kbd|script)(\s|>)/i,
		endPreScriptTag: /^<\/(pre|code|kbd|script)(\s|>)/i,
		startAngleBracket: /^</,
		endAngleBracket: />$/,
		pedanticHrefTitle: /^([^'"]*[^\s])\s+(['"])(.*)\2/,
		unicodeAlphaNumeric: /[\p{L}\p{N}]/u,
		escapeTest: /[&<>"']/,
		escapeReplace: /[&<>"']/g,
		escapeTestNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,
		escapeReplaceNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,
		unescapeTest: /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,
		caret: /(^|[^\[])\^/g,
		percentDecode: /%25/g,
		findPipe: /\|/g,
		splitPipe: / \|/,
		slashPipe: /\\\|/g,
		carriageReturn: /\r\n|\r/g,
		spaceLine: /^ +$/gm,
		notSpaceStart: /^\S*/,
		endingNewline: /\n$/,
		listItemRegex: (l$3) => new RegExp(`^( {0,3}${l$3})((?:[	 ][^\\n]*)?(?:\\n|$))`),
		nextBulletRegex: (l$3) => new RegExp(`^ {0,${Math.min(3, l$3 - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ 	][^\\n]*)?(?:\\n|$))`),
		hrRegex: (l$3) => new RegExp(`^ {0,${Math.min(3, l$3 - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),
		fencesBeginRegex: (l$3) => new RegExp(`^ {0,${Math.min(3, l$3 - 1)}}(?:\`\`\`|~~~)`),
		headingBeginRegex: (l$3) => new RegExp(`^ {0,${Math.min(3, l$3 - 1)}}#`),
		htmlBeginRegex: (l$3) => new RegExp(`^ {0,${Math.min(3, l$3 - 1)}}<(?:[a-z].*>|!--)`, "i")
	}, Re = /^(?:[ \t]*(?:\n|$))+/, Te = /^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/, Oe = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/, I = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/, we = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/, F = /(?:[*+-]|\d{1,9}[.)])/, ie = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/, oe = d$1(ie).replace(/bull/g, F).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/\|table/g, "").getRegex(), ye = d$1(ie).replace(/bull/g, F).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/table/g, / {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(), j = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/, Pe = /^[^\n]+/, Q = /(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/, Se = d$1(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label", Q).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(), $e = d$1(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g, F).getRegex(), v = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul", U = /<!--(?:-?>|[\s\S]*?(?:-->|$))/, _e = d$1("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ 	]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ 	]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ 	]*)+\\n|$))", "i").replace("comment", U).replace("tag", v).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(), ae = d$1(j).replace("hr", I).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("|table", "").replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", v).getRegex(), Le = d$1(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", ae).getRegex(), K = {
		blockquote: Le,
		code: Te,
		def: Se,
		fences: Oe,
		heading: we,
		hr: I,
		html: _e,
		lheading: oe,
		list: $e,
		newline: Re,
		paragraph: ae,
		table: E,
		text: Pe
	}, re = d$1("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr", I).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("blockquote", " {0,3}>").replace("code", "(?: {4}| {0,3}	)[^\\n]").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", v).getRegex(), Me = {
		...K,
		lheading: ye,
		table: re,
		paragraph: d$1(j).replace("hr", I).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", re).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", v).getRegex()
	}, ze = {
		...K,
		html: d$1(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment", U).replace(/tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),
		def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
		heading: /^(#{1,6})(.*)(?:\n+|$)/,
		fences: E,
		lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,
		paragraph: d$1(j).replace("hr", I).replace("heading", ` *#{1,6} *[^
]`).replace("lheading", oe).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex()
	}, Ae = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, Ee = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, le = /^( {2,}|\\)\n(?!\s*$)/, Ie = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/, D = /[\p{P}\p{S}]/u, W = /[\s\p{P}\p{S}]/u, ue = /[^\s\p{P}\p{S}]/u, Ce = d$1(/^((?![*_])punctSpace)/, "u").replace(/punctSpace/g, W).getRegex(), pe = /(?!~)[\p{P}\p{S}]/u, Be = /(?!~)[\s\p{P}\p{S}]/u, qe = /(?:[^\s\p{P}\p{S}]|~)/u, ve = d$1(/link|precode-code|html/, "g").replace("link", /\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-", be ? "(?<!`)()" : "(^^|[^`])").replace("code", /(?<b>`+)[^`]+\k<b>(?!`)/).replace("html", /<(?! )[^<>]*?>/).getRegex(), ce = /^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/, De = d$1(ce, "u").replace(/punct/g, D).getRegex(), He = d$1(ce, "u").replace(/punct/g, pe).getRegex(), he = "^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)", Ze = d$1(he, "gu").replace(/notPunctSpace/g, ue).replace(/punctSpace/g, W).replace(/punct/g, D).getRegex(), Ge = d$1(he, "gu").replace(/notPunctSpace/g, qe).replace(/punctSpace/g, Be).replace(/punct/g, pe).getRegex(), Ne = d$1("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)", "gu").replace(/notPunctSpace/g, ue).replace(/punctSpace/g, W).replace(/punct/g, D).getRegex(), Fe = d$1(/\\(punct)/, "gu").replace(/punct/g, D).getRegex(), je = d$1(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(), Qe = d$1(U).replace("(?:-->|$)", "-->").getRegex(), Ue = d$1("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment", Qe).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(), q$1 = /(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/, Ke = d$1(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label", q$1).replace("href", /<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(), de = d$1(/^!?\[(label)\]\[(ref)\]/).replace("label", q$1).replace("ref", Q).getRegex(), ke = d$1(/^!?\[(ref)\](?:\[\])?/).replace("ref", Q).getRegex(), We = d$1("reflink|nolink(?!\\()", "g").replace("reflink", de).replace("nolink", ke).getRegex(), se = /[hH][tT][tT][pP][sS]?|[fF][tT][pP]/, X$1 = {
		_backpedal: E,
		anyPunctuation: Fe,
		autolink: je,
		blockSkip: ve,
		br: le,
		code: Ee,
		del: E,
		emStrongLDelim: De,
		emStrongRDelimAst: Ze,
		emStrongRDelimUnd: Ne,
		escape: Ae,
		link: Ke,
		nolink: ke,
		punctuation: Ce,
		reflink: de,
		reflinkSearch: We,
		tag: Ue,
		text: Ie,
		url: E
	}, Xe = {
		...X$1,
		link: d$1(/^!?\[(label)\]\((.*?)\)/).replace("label", q$1).getRegex(),
		reflink: d$1(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", q$1).getRegex()
	}, N = {
		...X$1,
		emStrongRDelimAst: Ge,
		emStrongLDelim: He,
		url: d$1(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol", se).replace("email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),
		_backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,
		del: /^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,
		text: d$1(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol", se).getRegex()
	}, Je = {
		...N,
		br: d$1(le).replace("{2,}", "*").getRegex(),
		text: d$1(N.text).replace("\\b_", "\\b_| {2,}\\n").replace(/\{2,\}/g, "*").getRegex()
	}, C = {
		normal: K,
		gfm: Me,
		pedantic: ze
	}, M = {
		normal: X$1,
		gfm: N,
		breaks: Je,
		pedantic: Xe
	};
	Ve = {
		"&": "&amp;",
		"<": "&lt;",
		">": "&gt;",
		"\"": "&quot;",
		"'": "&#39;"
	}, ge = (l$3) => Ve[l$3];
	y = class {
		options;
		rules;
		lexer;
		constructor(e$10) {
			this.options = e$10 || T;
		}
		space(e$10) {
			let t$6 = this.rules.block.newline.exec(e$10);
			if (t$6 && t$6[0].length > 0) return {
				type: "space",
				raw: t$6[0]
			};
		}
		code(e$10) {
			let t$6 = this.rules.block.code.exec(e$10);
			if (t$6) {
				let n$9 = t$6[0].replace(this.rules.other.codeRemoveIndent, "");
				return {
					type: "code",
					raw: t$6[0],
					codeBlockStyle: "indented",
					text: this.options.pedantic ? n$9 : z(n$9, `
`)
				};
			}
		}
		fences(e$10) {
			let t$6 = this.rules.block.fences.exec(e$10);
			if (t$6) {
				let n$9 = t$6[0], r$10 = Ye(n$9, t$6[3] || "", this.rules);
				return {
					type: "code",
					raw: n$9,
					lang: t$6[2] ? t$6[2].trim().replace(this.rules.inline.anyPunctuation, "$1") : t$6[2],
					text: r$10
				};
			}
		}
		heading(e$10) {
			let t$6 = this.rules.block.heading.exec(e$10);
			if (t$6) {
				let n$9 = t$6[2].trim();
				if (this.rules.other.endingHash.test(n$9)) {
					let r$10 = z(n$9, "#");
					(this.options.pedantic || !r$10 || this.rules.other.endingSpaceChar.test(r$10)) && (n$9 = r$10.trim());
				}
				return {
					type: "heading",
					raw: t$6[0],
					depth: t$6[1].length,
					text: n$9,
					tokens: this.lexer.inline(n$9)
				};
			}
		}
		hr(e$10) {
			let t$6 = this.rules.block.hr.exec(e$10);
			if (t$6) return {
				type: "hr",
				raw: z(t$6[0], `
`)
			};
		}
		blockquote(e$10) {
			let t$6 = this.rules.block.blockquote.exec(e$10);
			if (t$6) {
				let n$9 = z(t$6[0], `
`).split(`
`), r$10 = "", i$7 = "", s$5 = [];
				for (; n$9.length > 0;) {
					let a$2 = !1, o$10 = [], p$3;
					for (p$3 = 0; p$3 < n$9.length; p$3++) if (this.rules.other.blockquoteStart.test(n$9[p$3])) o$10.push(n$9[p$3]), a$2 = !0;
					else if (!a$2) o$10.push(n$9[p$3]);
					else break;
					n$9 = n$9.slice(p$3);
					let u$4 = o$10.join(`
`), c$7 = u$4.replace(this.rules.other.blockquoteSetextReplace, `
    $1`).replace(this.rules.other.blockquoteSetextReplace2, "");
					r$10 = r$10 ? `${r$10}
${u$4}` : u$4, i$7 = i$7 ? `${i$7}
${c$7}` : c$7;
					let g$1 = this.lexer.state.top;
					if (this.lexer.state.top = !0, this.lexer.blockTokens(c$7, s$5, !0), this.lexer.state.top = g$1, n$9.length === 0) break;
					let h$5 = s$5.at(-1);
					if (h$5?.type === "code") break;
					if (h$5?.type === "blockquote") {
						let R$1 = h$5, f$4 = R$1.raw + `
` + n$9.join(`
`), O = this.blockquote(f$4);
						s$5[s$5.length - 1] = O, r$10 = r$10.substring(0, r$10.length - R$1.raw.length) + O.raw, i$7 = i$7.substring(0, i$7.length - R$1.text.length) + O.text;
						break;
					} else if (h$5?.type === "list") {
						let R$1 = h$5, f$4 = R$1.raw + `
` + n$9.join(`
`), O = this.list(f$4);
						s$5[s$5.length - 1] = O, r$10 = r$10.substring(0, r$10.length - h$5.raw.length) + O.raw, i$7 = i$7.substring(0, i$7.length - R$1.raw.length) + O.raw, n$9 = f$4.substring(s$5.at(-1).raw.length).split(`
`);
						continue;
					}
				}
				return {
					type: "blockquote",
					raw: r$10,
					tokens: s$5,
					text: i$7
				};
			}
		}
		list(e$10) {
			let t$6 = this.rules.block.list.exec(e$10);
			if (t$6) {
				let n$9 = t$6[1].trim(), r$10 = n$9.length > 1, i$7 = {
					type: "list",
					raw: "",
					ordered: r$10,
					start: r$10 ? +n$9.slice(0, -1) : "",
					loose: !1,
					items: []
				};
				n$9 = r$10 ? `\\d{1,9}\\${n$9.slice(-1)}` : `\\${n$9}`, this.options.pedantic && (n$9 = r$10 ? n$9 : "[*+-]");
				let s$5 = this.rules.other.listItemRegex(n$9), a$2 = !1;
				for (; e$10;) {
					let p$3 = !1, u$4 = "", c$7 = "";
					if (!(t$6 = s$5.exec(e$10)) || this.rules.block.hr.test(e$10)) break;
					u$4 = t$6[0], e$10 = e$10.substring(u$4.length);
					let g$1 = t$6[2].split(`
`, 1)[0].replace(this.rules.other.listReplaceTabs, (H$1) => " ".repeat(3 * H$1.length)), h$5 = e$10.split(`
`, 1)[0], R$1 = !g$1.trim(), f$4 = 0;
					if (this.options.pedantic ? (f$4 = 2, c$7 = g$1.trimStart()) : R$1 ? f$4 = t$6[1].length + 1 : (f$4 = t$6[2].search(this.rules.other.nonSpaceChar), f$4 = f$4 > 4 ? 1 : f$4, c$7 = g$1.slice(f$4), f$4 += t$6[1].length), R$1 && this.rules.other.blankLine.test(h$5) && (u$4 += h$5 + `
`, e$10 = e$10.substring(h$5.length + 1), p$3 = !0), !p$3) {
						let H$1 = this.rules.other.nextBulletRegex(f$4), ee = this.rules.other.hrRegex(f$4), te = this.rules.other.fencesBeginRegex(f$4), ne = this.rules.other.headingBeginRegex(f$4), xe = this.rules.other.htmlBeginRegex(f$4);
						for (; e$10;) {
							let Z$1 = e$10.split(`
`, 1)[0], A$1;
							if (h$5 = Z$1, this.options.pedantic ? (h$5 = h$5.replace(this.rules.other.listReplaceNesting, "  "), A$1 = h$5) : A$1 = h$5.replace(this.rules.other.tabCharGlobal, "    "), te.test(h$5) || ne.test(h$5) || xe.test(h$5) || H$1.test(h$5) || ee.test(h$5)) break;
							if (A$1.search(this.rules.other.nonSpaceChar) >= f$4 || !h$5.trim()) c$7 += `
` + A$1.slice(f$4);
							else {
								if (R$1 || g$1.replace(this.rules.other.tabCharGlobal, "    ").search(this.rules.other.nonSpaceChar) >= 4 || te.test(g$1) || ne.test(g$1) || ee.test(g$1)) break;
								c$7 += `
` + h$5;
							}
							!R$1 && !h$5.trim() && (R$1 = !0), u$4 += Z$1 + `
`, e$10 = e$10.substring(Z$1.length + 1), g$1 = A$1.slice(f$4);
						}
					}
					i$7.loose || (a$2 ? i$7.loose = !0 : this.rules.other.doubleBlankLine.test(u$4) && (a$2 = !0));
					let O = null, Y;
					this.options.gfm && (O = this.rules.other.listIsTask.exec(c$7), O && (Y = O[0] !== "[ ] ", c$7 = c$7.replace(this.rules.other.listReplaceTask, ""))), i$7.items.push({
						type: "list_item",
						raw: u$4,
						task: !!O,
						checked: Y,
						loose: !1,
						text: c$7,
						tokens: []
					}), i$7.raw += u$4;
				}
				let o$10 = i$7.items.at(-1);
				if (o$10) o$10.raw = o$10.raw.trimEnd(), o$10.text = o$10.text.trimEnd();
				else return;
				i$7.raw = i$7.raw.trimEnd();
				for (let p$3 = 0; p$3 < i$7.items.length; p$3++) if (this.lexer.state.top = !1, i$7.items[p$3].tokens = this.lexer.blockTokens(i$7.items[p$3].text, []), !i$7.loose) {
					let u$4 = i$7.items[p$3].tokens.filter((g$1) => g$1.type === "space"), c$7 = u$4.length > 0 && u$4.some((g$1) => this.rules.other.anyLine.test(g$1.raw));
					i$7.loose = c$7;
				}
				if (i$7.loose) for (let p$3 = 0; p$3 < i$7.items.length; p$3++) i$7.items[p$3].loose = !0;
				return i$7;
			}
		}
		html(e$10) {
			let t$6 = this.rules.block.html.exec(e$10);
			if (t$6) return {
				type: "html",
				block: !0,
				raw: t$6[0],
				pre: t$6[1] === "pre" || t$6[1] === "script" || t$6[1] === "style",
				text: t$6[0]
			};
		}
		def(e$10) {
			let t$6 = this.rules.block.def.exec(e$10);
			if (t$6) {
				let n$9 = t$6[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, " "), r$10 = t$6[2] ? t$6[2].replace(this.rules.other.hrefBrackets, "$1").replace(this.rules.inline.anyPunctuation, "$1") : "", i$7 = t$6[3] ? t$6[3].substring(1, t$6[3].length - 1).replace(this.rules.inline.anyPunctuation, "$1") : t$6[3];
				return {
					type: "def",
					tag: n$9,
					raw: t$6[0],
					href: r$10,
					title: i$7
				};
			}
		}
		table(e$10) {
			let t$6 = this.rules.block.table.exec(e$10);
			if (!t$6 || !this.rules.other.tableDelimiter.test(t$6[2])) return;
			let n$9 = V(t$6[1]), r$10 = t$6[2].replace(this.rules.other.tableAlignChars, "").split("|"), i$7 = t$6[3]?.trim() ? t$6[3].replace(this.rules.other.tableRowBlankLine, "").split(`
`) : [], s$5 = {
				type: "table",
				raw: t$6[0],
				header: [],
				align: [],
				rows: []
			};
			if (n$9.length === r$10.length) {
				for (let a$2 of r$10) this.rules.other.tableAlignRight.test(a$2) ? s$5.align.push("right") : this.rules.other.tableAlignCenter.test(a$2) ? s$5.align.push("center") : this.rules.other.tableAlignLeft.test(a$2) ? s$5.align.push("left") : s$5.align.push(null);
				for (let a$2 = 0; a$2 < n$9.length; a$2++) s$5.header.push({
					text: n$9[a$2],
					tokens: this.lexer.inline(n$9[a$2]),
					header: !0,
					align: s$5.align[a$2]
				});
				for (let a$2 of i$7) s$5.rows.push(V(a$2, s$5.header.length).map((o$10, p$3) => ({
					text: o$10,
					tokens: this.lexer.inline(o$10),
					header: !1,
					align: s$5.align[p$3]
				})));
				return s$5;
			}
		}
		lheading(e$10) {
			let t$6 = this.rules.block.lheading.exec(e$10);
			if (t$6) return {
				type: "heading",
				raw: t$6[0],
				depth: t$6[2].charAt(0) === "=" ? 1 : 2,
				text: t$6[1],
				tokens: this.lexer.inline(t$6[1])
			};
		}
		paragraph(e$10) {
			let t$6 = this.rules.block.paragraph.exec(e$10);
			if (t$6) {
				let n$9 = t$6[1].charAt(t$6[1].length - 1) === `
` ? t$6[1].slice(0, -1) : t$6[1];
				return {
					type: "paragraph",
					raw: t$6[0],
					text: n$9,
					tokens: this.lexer.inline(n$9)
				};
			}
		}
		text(e$10) {
			let t$6 = this.rules.block.text.exec(e$10);
			if (t$6) return {
				type: "text",
				raw: t$6[0],
				text: t$6[0],
				tokens: this.lexer.inline(t$6[0])
			};
		}
		escape(e$10) {
			let t$6 = this.rules.inline.escape.exec(e$10);
			if (t$6) return {
				type: "escape",
				raw: t$6[0],
				text: t$6[1]
			};
		}
		tag(e$10) {
			let t$6 = this.rules.inline.tag.exec(e$10);
			if (t$6) return !this.lexer.state.inLink && this.rules.other.startATag.test(t$6[0]) ? this.lexer.state.inLink = !0 : this.lexer.state.inLink && this.rules.other.endATag.test(t$6[0]) && (this.lexer.state.inLink = !1), !this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(t$6[0]) ? this.lexer.state.inRawBlock = !0 : this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(t$6[0]) && (this.lexer.state.inRawBlock = !1), {
				type: "html",
				raw: t$6[0],
				inLink: this.lexer.state.inLink,
				inRawBlock: this.lexer.state.inRawBlock,
				block: !1,
				text: t$6[0]
			};
		}
		link(e$10) {
			let t$6 = this.rules.inline.link.exec(e$10);
			if (t$6) {
				let n$9 = t$6[2].trim();
				if (!this.options.pedantic && this.rules.other.startAngleBracket.test(n$9)) {
					if (!this.rules.other.endAngleBracket.test(n$9)) return;
					let s$5 = z(n$9.slice(0, -1), "\\");
					if ((n$9.length - s$5.length) % 2 === 0) return;
				} else {
					let s$5 = fe(t$6[2], "()");
					if (s$5 === -2) return;
					if (s$5 > -1) {
						let o$10 = (t$6[0].indexOf("!") === 0 ? 5 : 4) + t$6[1].length + s$5;
						t$6[2] = t$6[2].substring(0, s$5), t$6[0] = t$6[0].substring(0, o$10).trim(), t$6[3] = "";
					}
				}
				let r$10 = t$6[2], i$7 = "";
				if (this.options.pedantic) {
					let s$5 = this.rules.other.pedanticHrefTitle.exec(r$10);
					s$5 && (r$10 = s$5[1], i$7 = s$5[3]);
				} else i$7 = t$6[3] ? t$6[3].slice(1, -1) : "";
				return r$10 = r$10.trim(), this.rules.other.startAngleBracket.test(r$10) && (this.options.pedantic && !this.rules.other.endAngleBracket.test(n$9) ? r$10 = r$10.slice(1) : r$10 = r$10.slice(1, -1)), me(t$6, {
					href: r$10 && r$10.replace(this.rules.inline.anyPunctuation, "$1"),
					title: i$7 && i$7.replace(this.rules.inline.anyPunctuation, "$1")
				}, t$6[0], this.lexer, this.rules);
			}
		}
		reflink(e$10, t$6) {
			let n$9;
			if ((n$9 = this.rules.inline.reflink.exec(e$10)) || (n$9 = this.rules.inline.nolink.exec(e$10))) {
				let r$10 = (n$9[2] || n$9[1]).replace(this.rules.other.multipleSpaceGlobal, " "), i$7 = t$6[r$10.toLowerCase()];
				if (!i$7) {
					let s$5 = n$9[0].charAt(0);
					return {
						type: "text",
						raw: s$5,
						text: s$5
					};
				}
				return me(n$9, i$7, n$9[0], this.lexer, this.rules);
			}
		}
		emStrong(e$10, t$6, n$9 = "") {
			let r$10 = this.rules.inline.emStrongLDelim.exec(e$10);
			if (!r$10 || r$10[3] && n$9.match(this.rules.other.unicodeAlphaNumeric)) return;
			if (!(r$10[1] || r$10[2] || "") || !n$9 || this.rules.inline.punctuation.exec(n$9)) {
				let s$5 = [...r$10[0]].length - 1, a$2, o$10, p$3 = s$5, u$4 = 0, c$7 = r$10[0][0] === "*" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;
				for (c$7.lastIndex = 0, t$6 = t$6.slice(-1 * e$10.length + s$5); (r$10 = c$7.exec(t$6)) != null;) {
					if (a$2 = r$10[1] || r$10[2] || r$10[3] || r$10[4] || r$10[5] || r$10[6], !a$2) continue;
					if (o$10 = [...a$2].length, r$10[3] || r$10[4]) {
						p$3 += o$10;
						continue;
					} else if ((r$10[5] || r$10[6]) && s$5 % 3 && !((s$5 + o$10) % 3)) {
						u$4 += o$10;
						continue;
					}
					if (p$3 -= o$10, p$3 > 0) continue;
					o$10 = Math.min(o$10, o$10 + p$3 + u$4);
					let g$1 = [...r$10[0]][0].length, h$5 = e$10.slice(0, s$5 + r$10.index + g$1 + o$10);
					if (Math.min(s$5, o$10) % 2) {
						let f$4 = h$5.slice(1, -1);
						return {
							type: "em",
							raw: h$5,
							text: f$4,
							tokens: this.lexer.inlineTokens(f$4)
						};
					}
					let R$1 = h$5.slice(2, -2);
					return {
						type: "strong",
						raw: h$5,
						text: R$1,
						tokens: this.lexer.inlineTokens(R$1)
					};
				}
			}
		}
		codespan(e$10) {
			let t$6 = this.rules.inline.code.exec(e$10);
			if (t$6) {
				let n$9 = t$6[2].replace(this.rules.other.newLineCharGlobal, " "), r$10 = this.rules.other.nonSpaceChar.test(n$9), i$7 = this.rules.other.startingSpaceChar.test(n$9) && this.rules.other.endingSpaceChar.test(n$9);
				return r$10 && i$7 && (n$9 = n$9.substring(1, n$9.length - 1)), {
					type: "codespan",
					raw: t$6[0],
					text: n$9
				};
			}
		}
		br(e$10) {
			let t$6 = this.rules.inline.br.exec(e$10);
			if (t$6) return {
				type: "br",
				raw: t$6[0]
			};
		}
		del(e$10) {
			let t$6 = this.rules.inline.del.exec(e$10);
			if (t$6) return {
				type: "del",
				raw: t$6[0],
				text: t$6[2],
				tokens: this.lexer.inlineTokens(t$6[2])
			};
		}
		autolink(e$10) {
			let t$6 = this.rules.inline.autolink.exec(e$10);
			if (t$6) {
				let n$9, r$10;
				return t$6[2] === "@" ? (n$9 = t$6[1], r$10 = "mailto:" + n$9) : (n$9 = t$6[1], r$10 = n$9), {
					type: "link",
					raw: t$6[0],
					text: n$9,
					href: r$10,
					tokens: [{
						type: "text",
						raw: n$9,
						text: n$9
					}]
				};
			}
		}
		url(e$10) {
			let t$6;
			if (t$6 = this.rules.inline.url.exec(e$10)) {
				let n$9, r$10;
				if (t$6[2] === "@") n$9 = t$6[0], r$10 = "mailto:" + n$9;
				else {
					let i$7;
					do
						i$7 = t$6[0], t$6[0] = this.rules.inline._backpedal.exec(t$6[0])?.[0] ?? "";
					while (i$7 !== t$6[0]);
					n$9 = t$6[0], t$6[1] === "www." ? r$10 = "http://" + t$6[0] : r$10 = t$6[0];
				}
				return {
					type: "link",
					raw: t$6[0],
					text: n$9,
					href: r$10,
					tokens: [{
						type: "text",
						raw: n$9,
						text: n$9
					}]
				};
			}
		}
		inlineText(e$10) {
			let t$6 = this.rules.inline.text.exec(e$10);
			if (t$6) {
				let n$9 = this.lexer.state.inRawBlock;
				return {
					type: "text",
					raw: t$6[0],
					text: t$6[0],
					escaped: n$9
				};
			}
		}
	};
	x$1 = class l$3 {
		tokens;
		options;
		state;
		tokenizer;
		inlineQueue;
		constructor(e$10) {
			this.tokens = [], this.tokens.links = Object.create(null), this.options = e$10 || T, this.options.tokenizer = this.options.tokenizer || new y(), this.tokenizer = this.options.tokenizer, this.tokenizer.options = this.options, this.tokenizer.lexer = this, this.inlineQueue = [], this.state = {
				inLink: !1,
				inRawBlock: !1,
				top: !0
			};
			let t$6 = {
				other: m,
				block: C.normal,
				inline: M.normal
			};
			this.options.pedantic ? (t$6.block = C.pedantic, t$6.inline = M.pedantic) : this.options.gfm && (t$6.block = C.gfm, this.options.breaks ? t$6.inline = M.breaks : t$6.inline = M.gfm), this.tokenizer.rules = t$6;
		}
		static get rules() {
			return {
				block: C,
				inline: M
			};
		}
		static lex(e$10, t$6) {
			return new l$3(t$6).lex(e$10);
		}
		static lexInline(e$10, t$6) {
			return new l$3(t$6).inlineTokens(e$10);
		}
		lex(e$10) {
			e$10 = e$10.replace(m.carriageReturn, `
`), this.blockTokens(e$10, this.tokens);
			for (let t$6 = 0; t$6 < this.inlineQueue.length; t$6++) {
				let n$9 = this.inlineQueue[t$6];
				this.inlineTokens(n$9.src, n$9.tokens);
			}
			return this.inlineQueue = [], this.tokens;
		}
		blockTokens(e$10, t$6 = [], n$9 = !1) {
			for (this.options.pedantic && (e$10 = e$10.replace(m.tabCharGlobal, "    ").replace(m.spaceLine, "")); e$10;) {
				let r$10;
				if (this.options.extensions?.block?.some((s$5) => (r$10 = s$5.call({ lexer: this }, e$10, t$6)) ? (e$10 = e$10.substring(r$10.raw.length), t$6.push(r$10), !0) : !1)) continue;
				if (r$10 = this.tokenizer.space(e$10)) {
					e$10 = e$10.substring(r$10.raw.length);
					let s$5 = t$6.at(-1);
					r$10.raw.length === 1 && s$5 !== void 0 ? s$5.raw += `
` : t$6.push(r$10);
					continue;
				}
				if (r$10 = this.tokenizer.code(e$10)) {
					e$10 = e$10.substring(r$10.raw.length);
					let s$5 = t$6.at(-1);
					s$5?.type === "paragraph" || s$5?.type === "text" ? (s$5.raw += (s$5.raw.endsWith(`
`) ? "" : `
`) + r$10.raw, s$5.text += `
` + r$10.text, this.inlineQueue.at(-1).src = s$5.text) : t$6.push(r$10);
					continue;
				}
				if (r$10 = this.tokenizer.fences(e$10)) {
					e$10 = e$10.substring(r$10.raw.length), t$6.push(r$10);
					continue;
				}
				if (r$10 = this.tokenizer.heading(e$10)) {
					e$10 = e$10.substring(r$10.raw.length), t$6.push(r$10);
					continue;
				}
				if (r$10 = this.tokenizer.hr(e$10)) {
					e$10 = e$10.substring(r$10.raw.length), t$6.push(r$10);
					continue;
				}
				if (r$10 = this.tokenizer.blockquote(e$10)) {
					e$10 = e$10.substring(r$10.raw.length), t$6.push(r$10);
					continue;
				}
				if (r$10 = this.tokenizer.list(e$10)) {
					e$10 = e$10.substring(r$10.raw.length), t$6.push(r$10);
					continue;
				}
				if (r$10 = this.tokenizer.html(e$10)) {
					e$10 = e$10.substring(r$10.raw.length), t$6.push(r$10);
					continue;
				}
				if (r$10 = this.tokenizer.def(e$10)) {
					e$10 = e$10.substring(r$10.raw.length);
					let s$5 = t$6.at(-1);
					s$5?.type === "paragraph" || s$5?.type === "text" ? (s$5.raw += (s$5.raw.endsWith(`
`) ? "" : `
`) + r$10.raw, s$5.text += `
` + r$10.raw, this.inlineQueue.at(-1).src = s$5.text) : this.tokens.links[r$10.tag] || (this.tokens.links[r$10.tag] = {
						href: r$10.href,
						title: r$10.title
					}, t$6.push(r$10));
					continue;
				}
				if (r$10 = this.tokenizer.table(e$10)) {
					e$10 = e$10.substring(r$10.raw.length), t$6.push(r$10);
					continue;
				}
				if (r$10 = this.tokenizer.lheading(e$10)) {
					e$10 = e$10.substring(r$10.raw.length), t$6.push(r$10);
					continue;
				}
				let i$7 = e$10;
				if (this.options.extensions?.startBlock) {
					let s$5 = 1 / 0, a$2 = e$10.slice(1), o$10;
					this.options.extensions.startBlock.forEach((p$3) => {
						o$10 = p$3.call({ lexer: this }, a$2), typeof o$10 == "number" && o$10 >= 0 && (s$5 = Math.min(s$5, o$10));
					}), s$5 < 1 / 0 && s$5 >= 0 && (i$7 = e$10.substring(0, s$5 + 1));
				}
				if (this.state.top && (r$10 = this.tokenizer.paragraph(i$7))) {
					let s$5 = t$6.at(-1);
					n$9 && s$5?.type === "paragraph" ? (s$5.raw += (s$5.raw.endsWith(`
`) ? "" : `
`) + r$10.raw, s$5.text += `
` + r$10.text, this.inlineQueue.pop(), this.inlineQueue.at(-1).src = s$5.text) : t$6.push(r$10), n$9 = i$7.length !== e$10.length, e$10 = e$10.substring(r$10.raw.length);
					continue;
				}
				if (r$10 = this.tokenizer.text(e$10)) {
					e$10 = e$10.substring(r$10.raw.length);
					let s$5 = t$6.at(-1);
					s$5?.type === "text" ? (s$5.raw += (s$5.raw.endsWith(`
`) ? "" : `
`) + r$10.raw, s$5.text += `
` + r$10.text, this.inlineQueue.pop(), this.inlineQueue.at(-1).src = s$5.text) : t$6.push(r$10);
					continue;
				}
				if (e$10) {
					let s$5 = "Infinite loop on byte: " + e$10.charCodeAt(0);
					if (this.options.silent) {
						console.error(s$5);
						break;
					} else throw new Error(s$5);
				}
			}
			return this.state.top = !0, t$6;
		}
		inline(e$10, t$6 = []) {
			return this.inlineQueue.push({
				src: e$10,
				tokens: t$6
			}), t$6;
		}
		inlineTokens(e$10, t$6 = []) {
			let n$9 = e$10, r$10 = null;
			if (this.tokens.links) {
				let o$10 = Object.keys(this.tokens.links);
				if (o$10.length > 0) for (; (r$10 = this.tokenizer.rules.inline.reflinkSearch.exec(n$9)) != null;) o$10.includes(r$10[0].slice(r$10[0].lastIndexOf("[") + 1, -1)) && (n$9 = n$9.slice(0, r$10.index) + "[" + "a".repeat(r$10[0].length - 2) + "]" + n$9.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex));
			}
			for (; (r$10 = this.tokenizer.rules.inline.anyPunctuation.exec(n$9)) != null;) n$9 = n$9.slice(0, r$10.index) + "++" + n$9.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);
			let i$7;
			for (; (r$10 = this.tokenizer.rules.inline.blockSkip.exec(n$9)) != null;) i$7 = r$10[2] ? r$10[2].length : 0, n$9 = n$9.slice(0, r$10.index + i$7) + "[" + "a".repeat(r$10[0].length - i$7 - 2) + "]" + n$9.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
			n$9 = this.options.hooks?.emStrongMask?.call({ lexer: this }, n$9) ?? n$9;
			let s$5 = !1, a$2 = "";
			for (; e$10;) {
				s$5 || (a$2 = ""), s$5 = !1;
				let o$10;
				if (this.options.extensions?.inline?.some((u$4) => (o$10 = u$4.call({ lexer: this }, e$10, t$6)) ? (e$10 = e$10.substring(o$10.raw.length), t$6.push(o$10), !0) : !1)) continue;
				if (o$10 = this.tokenizer.escape(e$10)) {
					e$10 = e$10.substring(o$10.raw.length), t$6.push(o$10);
					continue;
				}
				if (o$10 = this.tokenizer.tag(e$10)) {
					e$10 = e$10.substring(o$10.raw.length), t$6.push(o$10);
					continue;
				}
				if (o$10 = this.tokenizer.link(e$10)) {
					e$10 = e$10.substring(o$10.raw.length), t$6.push(o$10);
					continue;
				}
				if (o$10 = this.tokenizer.reflink(e$10, this.tokens.links)) {
					e$10 = e$10.substring(o$10.raw.length);
					let u$4 = t$6.at(-1);
					o$10.type === "text" && u$4?.type === "text" ? (u$4.raw += o$10.raw, u$4.text += o$10.text) : t$6.push(o$10);
					continue;
				}
				if (o$10 = this.tokenizer.emStrong(e$10, n$9, a$2)) {
					e$10 = e$10.substring(o$10.raw.length), t$6.push(o$10);
					continue;
				}
				if (o$10 = this.tokenizer.codespan(e$10)) {
					e$10 = e$10.substring(o$10.raw.length), t$6.push(o$10);
					continue;
				}
				if (o$10 = this.tokenizer.br(e$10)) {
					e$10 = e$10.substring(o$10.raw.length), t$6.push(o$10);
					continue;
				}
				if (o$10 = this.tokenizer.del(e$10)) {
					e$10 = e$10.substring(o$10.raw.length), t$6.push(o$10);
					continue;
				}
				if (o$10 = this.tokenizer.autolink(e$10)) {
					e$10 = e$10.substring(o$10.raw.length), t$6.push(o$10);
					continue;
				}
				if (!this.state.inLink && (o$10 = this.tokenizer.url(e$10))) {
					e$10 = e$10.substring(o$10.raw.length), t$6.push(o$10);
					continue;
				}
				let p$3 = e$10;
				if (this.options.extensions?.startInline) {
					let u$4 = 1 / 0, c$7 = e$10.slice(1), g$1;
					this.options.extensions.startInline.forEach((h$5) => {
						g$1 = h$5.call({ lexer: this }, c$7), typeof g$1 == "number" && g$1 >= 0 && (u$4 = Math.min(u$4, g$1));
					}), u$4 < 1 / 0 && u$4 >= 0 && (p$3 = e$10.substring(0, u$4 + 1));
				}
				if (o$10 = this.tokenizer.inlineText(p$3)) {
					e$10 = e$10.substring(o$10.raw.length), o$10.raw.slice(-1) !== "_" && (a$2 = o$10.raw.slice(-1)), s$5 = !0;
					let u$4 = t$6.at(-1);
					u$4?.type === "text" ? (u$4.raw += o$10.raw, u$4.text += o$10.text) : t$6.push(o$10);
					continue;
				}
				if (e$10) {
					let u$4 = "Infinite loop on byte: " + e$10.charCodeAt(0);
					if (this.options.silent) {
						console.error(u$4);
						break;
					} else throw new Error(u$4);
				}
			}
			return t$6;
		}
	};
	P = class {
		options;
		parser;
		constructor(e$10) {
			this.options = e$10 || T;
		}
		space(e$10) {
			return "";
		}
		code({ text: e$10, lang: t$6, escaped: n$9 }) {
			let r$10 = (t$6 || "").match(m.notSpaceStart)?.[0], i$7 = e$10.replace(m.endingNewline, "") + `
`;
			return r$10 ? "<pre><code class=\"language-" + w(r$10) + "\">" + (n$9 ? i$7 : w(i$7, !0)) + `</code></pre>
` : "<pre><code>" + (n$9 ? i$7 : w(i$7, !0)) + `</code></pre>
`;
		}
		blockquote({ tokens: e$10 }) {
			return `<blockquote>
${this.parser.parse(e$10)}</blockquote>
`;
		}
		html({ text: e$10 }) {
			return e$10;
		}
		def(e$10) {
			return "";
		}
		heading({ tokens: e$10, depth: t$6 }) {
			return `<h${t$6}>${this.parser.parseInline(e$10)}</h${t$6}>
`;
		}
		hr(e$10) {
			return `<hr>
`;
		}
		list(e$10) {
			let t$6 = e$10.ordered, n$9 = e$10.start, r$10 = "";
			for (let a$2 = 0; a$2 < e$10.items.length; a$2++) {
				let o$10 = e$10.items[a$2];
				r$10 += this.listitem(o$10);
			}
			let i$7 = t$6 ? "ol" : "ul", s$5 = t$6 && n$9 !== 1 ? " start=\"" + n$9 + "\"" : "";
			return "<" + i$7 + s$5 + `>
` + r$10 + "</" + i$7 + `>
`;
		}
		listitem(e$10) {
			let t$6 = "";
			if (e$10.task) {
				let n$9 = this.checkbox({ checked: !!e$10.checked });
				e$10.loose ? e$10.tokens[0]?.type === "paragraph" ? (e$10.tokens[0].text = n$9 + " " + e$10.tokens[0].text, e$10.tokens[0].tokens && e$10.tokens[0].tokens.length > 0 && e$10.tokens[0].tokens[0].type === "text" && (e$10.tokens[0].tokens[0].text = n$9 + " " + w(e$10.tokens[0].tokens[0].text), e$10.tokens[0].tokens[0].escaped = !0)) : e$10.tokens.unshift({
					type: "text",
					raw: n$9 + " ",
					text: n$9 + " ",
					escaped: !0
				}) : t$6 += n$9 + " ";
			}
			return t$6 += this.parser.parse(e$10.tokens, !!e$10.loose), `<li>${t$6}</li>
`;
		}
		checkbox({ checked: e$10 }) {
			return "<input " + (e$10 ? "checked=\"\" " : "") + "disabled=\"\" type=\"checkbox\">";
		}
		paragraph({ tokens: e$10 }) {
			return `<p>${this.parser.parseInline(e$10)}</p>
`;
		}
		table(e$10) {
			let t$6 = "", n$9 = "";
			for (let i$7 = 0; i$7 < e$10.header.length; i$7++) n$9 += this.tablecell(e$10.header[i$7]);
			t$6 += this.tablerow({ text: n$9 });
			let r$10 = "";
			for (let i$7 = 0; i$7 < e$10.rows.length; i$7++) {
				let s$5 = e$10.rows[i$7];
				n$9 = "";
				for (let a$2 = 0; a$2 < s$5.length; a$2++) n$9 += this.tablecell(s$5[a$2]);
				r$10 += this.tablerow({ text: n$9 });
			}
			return r$10 && (r$10 = `<tbody>${r$10}</tbody>`), `<table>
<thead>
` + t$6 + `</thead>
` + r$10 + `</table>
`;
		}
		tablerow({ text: e$10 }) {
			return `<tr>
${e$10}</tr>
`;
		}
		tablecell(e$10) {
			let t$6 = this.parser.parseInline(e$10.tokens), n$9 = e$10.header ? "th" : "td";
			return (e$10.align ? `<${n$9} align="${e$10.align}">` : `<${n$9}>`) + t$6 + `</${n$9}>
`;
		}
		strong({ tokens: e$10 }) {
			return `<strong>${this.parser.parseInline(e$10)}</strong>`;
		}
		em({ tokens: e$10 }) {
			return `<em>${this.parser.parseInline(e$10)}</em>`;
		}
		codespan({ text: e$10 }) {
			return `<code>${w(e$10, !0)}</code>`;
		}
		br(e$10) {
			return "<br>";
		}
		del({ tokens: e$10 }) {
			return `<del>${this.parser.parseInline(e$10)}</del>`;
		}
		link({ href: e$10, title: t$6, tokens: n$9 }) {
			let r$10 = this.parser.parseInline(n$9), i$7 = J(e$10);
			if (i$7 === null) return r$10;
			e$10 = i$7;
			let s$5 = "<a href=\"" + e$10 + "\"";
			return t$6 && (s$5 += " title=\"" + w(t$6) + "\""), s$5 += ">" + r$10 + "</a>", s$5;
		}
		image({ href: e$10, title: t$6, text: n$9, tokens: r$10 }) {
			r$10 && (n$9 = this.parser.parseInline(r$10, this.parser.textRenderer));
			let i$7 = J(e$10);
			if (i$7 === null) return w(n$9);
			e$10 = i$7;
			let s$5 = `<img src="${e$10}" alt="${n$9}"`;
			return t$6 && (s$5 += ` title="${w(t$6)}"`), s$5 += ">", s$5;
		}
		text(e$10) {
			return "tokens" in e$10 && e$10.tokens ? this.parser.parseInline(e$10.tokens) : "escaped" in e$10 && e$10.escaped ? e$10.text : w(e$10.text);
		}
	};
	$$1 = class {
		strong({ text: e$10 }) {
			return e$10;
		}
		em({ text: e$10 }) {
			return e$10;
		}
		codespan({ text: e$10 }) {
			return e$10;
		}
		del({ text: e$10 }) {
			return e$10;
		}
		html({ text: e$10 }) {
			return e$10;
		}
		text({ text: e$10 }) {
			return e$10;
		}
		link({ text: e$10 }) {
			return "" + e$10;
		}
		image({ text: e$10 }) {
			return "" + e$10;
		}
		br() {
			return "";
		}
	};
	b = class l$3 {
		options;
		renderer;
		textRenderer;
		constructor(e$10) {
			this.options = e$10 || T, this.options.renderer = this.options.renderer || new P(), this.renderer = this.options.renderer, this.renderer.options = this.options, this.renderer.parser = this, this.textRenderer = new $$1();
		}
		static parse(e$10, t$6) {
			return new l$3(t$6).parse(e$10);
		}
		static parseInline(e$10, t$6) {
			return new l$3(t$6).parseInline(e$10);
		}
		parse(e$10, t$6 = !0) {
			let n$9 = "";
			for (let r$10 = 0; r$10 < e$10.length; r$10++) {
				let i$7 = e$10[r$10];
				if (this.options.extensions?.renderers?.[i$7.type]) {
					let a$2 = i$7, o$10 = this.options.extensions.renderers[a$2.type].call({ parser: this }, a$2);
					if (o$10 !== !1 || ![
						"space",
						"hr",
						"heading",
						"code",
						"table",
						"blockquote",
						"list",
						"html",
						"def",
						"paragraph",
						"text"
					].includes(a$2.type)) {
						n$9 += o$10 || "";
						continue;
					}
				}
				let s$5 = i$7;
				switch (s$5.type) {
					case "space": {
						n$9 += this.renderer.space(s$5);
						continue;
					}
					case "hr": {
						n$9 += this.renderer.hr(s$5);
						continue;
					}
					case "heading": {
						n$9 += this.renderer.heading(s$5);
						continue;
					}
					case "code": {
						n$9 += this.renderer.code(s$5);
						continue;
					}
					case "table": {
						n$9 += this.renderer.table(s$5);
						continue;
					}
					case "blockquote": {
						n$9 += this.renderer.blockquote(s$5);
						continue;
					}
					case "list": {
						n$9 += this.renderer.list(s$5);
						continue;
					}
					case "html": {
						n$9 += this.renderer.html(s$5);
						continue;
					}
					case "def": {
						n$9 += this.renderer.def(s$5);
						continue;
					}
					case "paragraph": {
						n$9 += this.renderer.paragraph(s$5);
						continue;
					}
					case "text": {
						let a$2 = s$5, o$10 = this.renderer.text(a$2);
						for (; r$10 + 1 < e$10.length && e$10[r$10 + 1].type === "text";) a$2 = e$10[++r$10], o$10 += `
` + this.renderer.text(a$2);
						t$6 ? n$9 += this.renderer.paragraph({
							type: "paragraph",
							raw: o$10,
							text: o$10,
							tokens: [{
								type: "text",
								raw: o$10,
								text: o$10,
								escaped: !0
							}]
						}) : n$9 += o$10;
						continue;
					}
					default: {
						let a$2 = "Token with \"" + s$5.type + "\" type was not found.";
						if (this.options.silent) return console.error(a$2), "";
						throw new Error(a$2);
					}
				}
			}
			return n$9;
		}
		parseInline(e$10, t$6 = this.renderer) {
			let n$9 = "";
			for (let r$10 = 0; r$10 < e$10.length; r$10++) {
				let i$7 = e$10[r$10];
				if (this.options.extensions?.renderers?.[i$7.type]) {
					let a$2 = this.options.extensions.renderers[i$7.type].call({ parser: this }, i$7);
					if (a$2 !== !1 || ![
						"escape",
						"html",
						"link",
						"image",
						"strong",
						"em",
						"codespan",
						"br",
						"del",
						"text"
					].includes(i$7.type)) {
						n$9 += a$2 || "";
						continue;
					}
				}
				let s$5 = i$7;
				switch (s$5.type) {
					case "escape": {
						n$9 += t$6.text(s$5);
						break;
					}
					case "html": {
						n$9 += t$6.html(s$5);
						break;
					}
					case "link": {
						n$9 += t$6.link(s$5);
						break;
					}
					case "image": {
						n$9 += t$6.image(s$5);
						break;
					}
					case "strong": {
						n$9 += t$6.strong(s$5);
						break;
					}
					case "em": {
						n$9 += t$6.em(s$5);
						break;
					}
					case "codespan": {
						n$9 += t$6.codespan(s$5);
						break;
					}
					case "br": {
						n$9 += t$6.br(s$5);
						break;
					}
					case "del": {
						n$9 += t$6.del(s$5);
						break;
					}
					case "text": {
						n$9 += t$6.text(s$5);
						break;
					}
					default: {
						let a$2 = "Token with \"" + s$5.type + "\" type was not found.";
						if (this.options.silent) return console.error(a$2), "";
						throw new Error(a$2);
					}
				}
			}
			return n$9;
		}
	};
	S = class {
		options;
		block;
		constructor(e$10) {
			this.options = e$10 || T;
		}
		static passThroughHooks = new Set([
			"preprocess",
			"postprocess",
			"processAllTokens",
			"emStrongMask"
		]);
		static passThroughHooksRespectAsync = new Set([
			"preprocess",
			"postprocess",
			"processAllTokens"
		]);
		preprocess(e$10) {
			return e$10;
		}
		postprocess(e$10) {
			return e$10;
		}
		processAllTokens(e$10) {
			return e$10;
		}
		emStrongMask(e$10) {
			return e$10;
		}
		provideLexer() {
			return this.block ? x$1.lex : x$1.lexInline;
		}
		provideParser() {
			return this.block ? b.parse : b.parseInline;
		}
	};
	B = class {
		defaults = L();
		options = this.setOptions;
		parse = this.parseMarkdown(!0);
		parseInline = this.parseMarkdown(!1);
		Parser = b;
		Renderer = P;
		TextRenderer = $$1;
		Lexer = x$1;
		Tokenizer = y;
		Hooks = S;
		constructor(...e$10) {
			this.use(...e$10);
		}
		walkTokens(e$10, t$6) {
			let n$9 = [];
			for (let r$10 of e$10) switch (n$9 = n$9.concat(t$6.call(this, r$10)), r$10.type) {
				case "table": {
					let i$7 = r$10;
					for (let s$5 of i$7.header) n$9 = n$9.concat(this.walkTokens(s$5.tokens, t$6));
					for (let s$5 of i$7.rows) for (let a$2 of s$5) n$9 = n$9.concat(this.walkTokens(a$2.tokens, t$6));
					break;
				}
				case "list": {
					let i$7 = r$10;
					n$9 = n$9.concat(this.walkTokens(i$7.items, t$6));
					break;
				}
				default: {
					let i$7 = r$10;
					this.defaults.extensions?.childTokens?.[i$7.type] ? this.defaults.extensions.childTokens[i$7.type].forEach((s$5) => {
						let a$2 = i$7[s$5].flat(1 / 0);
						n$9 = n$9.concat(this.walkTokens(a$2, t$6));
					}) : i$7.tokens && (n$9 = n$9.concat(this.walkTokens(i$7.tokens, t$6)));
				}
			}
			return n$9;
		}
		use(...e$10) {
			let t$6 = this.defaults.extensions || {
				renderers: {},
				childTokens: {}
			};
			return e$10.forEach((n$9) => {
				let r$10 = { ...n$9 };
				if (r$10.async = this.defaults.async || r$10.async || !1, n$9.extensions && (n$9.extensions.forEach((i$7) => {
					if (!i$7.name) throw new Error("extension name required");
					if ("renderer" in i$7) {
						let s$5 = t$6.renderers[i$7.name];
						s$5 ? t$6.renderers[i$7.name] = function(...a$2) {
							let o$10 = i$7.renderer.apply(this, a$2);
							return o$10 === !1 && (o$10 = s$5.apply(this, a$2)), o$10;
						} : t$6.renderers[i$7.name] = i$7.renderer;
					}
					if ("tokenizer" in i$7) {
						if (!i$7.level || i$7.level !== "block" && i$7.level !== "inline") throw new Error("extension level must be 'block' or 'inline'");
						let s$5 = t$6[i$7.level];
						s$5 ? s$5.unshift(i$7.tokenizer) : t$6[i$7.level] = [i$7.tokenizer], i$7.start && (i$7.level === "block" ? t$6.startBlock ? t$6.startBlock.push(i$7.start) : t$6.startBlock = [i$7.start] : i$7.level === "inline" && (t$6.startInline ? t$6.startInline.push(i$7.start) : t$6.startInline = [i$7.start]));
					}
					"childTokens" in i$7 && i$7.childTokens && (t$6.childTokens[i$7.name] = i$7.childTokens);
				}), r$10.extensions = t$6), n$9.renderer) {
					let i$7 = this.defaults.renderer || new P(this.defaults);
					for (let s$5 in n$9.renderer) {
						if (!(s$5 in i$7)) throw new Error(`renderer '${s$5}' does not exist`);
						if (["options", "parser"].includes(s$5)) continue;
						let a$2 = s$5, o$10 = n$9.renderer[a$2], p$3 = i$7[a$2];
						i$7[a$2] = (...u$4) => {
							let c$7 = o$10.apply(i$7, u$4);
							return c$7 === !1 && (c$7 = p$3.apply(i$7, u$4)), c$7 || "";
						};
					}
					r$10.renderer = i$7;
				}
				if (n$9.tokenizer) {
					let i$7 = this.defaults.tokenizer || new y(this.defaults);
					for (let s$5 in n$9.tokenizer) {
						if (!(s$5 in i$7)) throw new Error(`tokenizer '${s$5}' does not exist`);
						if ([
							"options",
							"rules",
							"lexer"
						].includes(s$5)) continue;
						let a$2 = s$5, o$10 = n$9.tokenizer[a$2], p$3 = i$7[a$2];
						i$7[a$2] = (...u$4) => {
							let c$7 = o$10.apply(i$7, u$4);
							return c$7 === !1 && (c$7 = p$3.apply(i$7, u$4)), c$7;
						};
					}
					r$10.tokenizer = i$7;
				}
				if (n$9.hooks) {
					let i$7 = this.defaults.hooks || new S();
					for (let s$5 in n$9.hooks) {
						if (!(s$5 in i$7)) throw new Error(`hook '${s$5}' does not exist`);
						if (["options", "block"].includes(s$5)) continue;
						let a$2 = s$5, o$10 = n$9.hooks[a$2], p$3 = i$7[a$2];
						S.passThroughHooks.has(s$5) ? i$7[a$2] = (u$4) => {
							if (this.defaults.async && S.passThroughHooksRespectAsync.has(s$5)) return (async () => {
								let g$1 = await o$10.call(i$7, u$4);
								return p$3.call(i$7, g$1);
							})();
							let c$7 = o$10.call(i$7, u$4);
							return p$3.call(i$7, c$7);
						} : i$7[a$2] = (...u$4) => {
							if (this.defaults.async) return (async () => {
								let g$1 = await o$10.apply(i$7, u$4);
								return g$1 === !1 && (g$1 = await p$3.apply(i$7, u$4)), g$1;
							})();
							let c$7 = o$10.apply(i$7, u$4);
							return c$7 === !1 && (c$7 = p$3.apply(i$7, u$4)), c$7;
						};
					}
					r$10.hooks = i$7;
				}
				if (n$9.walkTokens) {
					let i$7 = this.defaults.walkTokens, s$5 = n$9.walkTokens;
					r$10.walkTokens = function(a$2) {
						let o$10 = [];
						return o$10.push(s$5.call(this, a$2)), i$7 && (o$10 = o$10.concat(i$7.call(this, a$2))), o$10;
					};
				}
				this.defaults = {
					...this.defaults,
					...r$10
				};
			}), this;
		}
		setOptions(e$10) {
			return this.defaults = {
				...this.defaults,
				...e$10
			}, this;
		}
		lexer(e$10, t$6) {
			return x$1.lex(e$10, t$6 ?? this.defaults);
		}
		parser(e$10, t$6) {
			return b.parse(e$10, t$6 ?? this.defaults);
		}
		parseMarkdown(e$10) {
			return (n$9, r$10) => {
				let i$7 = { ...r$10 }, s$5 = {
					...this.defaults,
					...i$7
				}, a$2 = this.onError(!!s$5.silent, !!s$5.async);
				if (this.defaults.async === !0 && i$7.async === !1) return a$2(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));
				if (typeof n$9 > "u" || n$9 === null) return a$2(new Error("marked(): input parameter is undefined or null"));
				if (typeof n$9 != "string") return a$2(new Error("marked(): input parameter is of type " + Object.prototype.toString.call(n$9) + ", string expected"));
				if (s$5.hooks && (s$5.hooks.options = s$5, s$5.hooks.block = e$10), s$5.async) return (async () => {
					let o$10 = s$5.hooks ? await s$5.hooks.preprocess(n$9) : n$9, u$4 = await (s$5.hooks ? await s$5.hooks.provideLexer() : e$10 ? x$1.lex : x$1.lexInline)(o$10, s$5), c$7 = s$5.hooks ? await s$5.hooks.processAllTokens(u$4) : u$4;
					s$5.walkTokens && await Promise.all(this.walkTokens(c$7, s$5.walkTokens));
					let h$5 = await (s$5.hooks ? await s$5.hooks.provideParser() : e$10 ? b.parse : b.parseInline)(c$7, s$5);
					return s$5.hooks ? await s$5.hooks.postprocess(h$5) : h$5;
				})().catch(a$2);
				try {
					s$5.hooks && (n$9 = s$5.hooks.preprocess(n$9));
					let p$3 = (s$5.hooks ? s$5.hooks.provideLexer() : e$10 ? x$1.lex : x$1.lexInline)(n$9, s$5);
					s$5.hooks && (p$3 = s$5.hooks.processAllTokens(p$3)), s$5.walkTokens && this.walkTokens(p$3, s$5.walkTokens);
					let c$7 = (s$5.hooks ? s$5.hooks.provideParser() : e$10 ? b.parse : b.parseInline)(p$3, s$5);
					return s$5.hooks && (c$7 = s$5.hooks.postprocess(c$7)), c$7;
				} catch (o$10) {
					return a$2(o$10);
				}
			};
		}
		onError(e$10, t$6) {
			return (n$9) => {
				if (n$9.message += `
Please report this to https://github.com/markedjs/marked.`, e$10) {
					let r$10 = "<p>An error occurred:</p><pre>" + w(n$9.message + "", !0) + "</pre>";
					return t$6 ? Promise.resolve(r$10) : r$10;
				}
				if (t$6) return Promise.reject(n$9);
				throw n$9;
			};
		}
	};
	_ = new B();
	k.options = k.setOptions = function(l$3) {
		return _.setOptions(l$3), k.defaults = _.defaults, G(k.defaults), k;
	};
	k.getDefaults = L;
	k.defaults = T;
	k.use = function(...l$3) {
		return _.use(...l$3), k.defaults = _.defaults, G(k.defaults), k;
	};
	k.walkTokens = function(l$3, e$10) {
		return _.walkTokens(l$3, e$10);
	};
	k.parseInline = _.parseInline;
	k.Parser = b;
	k.parser = b.parse;
	k.Renderer = P;
	k.TextRenderer = $$1;
	k.Lexer = x$1;
	k.lexer = x$1.lex;
	k.Tokenizer = y;
	k.Hooks = S;
	k.parse = k;
	Zt = k.options, Gt = k.setOptions, Nt = k.use, Ft = k.walkTokens, jt = k.parseInline, Qt = k, Ut = b.parse, Kt = x$1.lex;
}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/dist/MarkdownBlock.js
var __decorate$16, MarkdownBlock;
var init_MarkdownBlock = __esmMin((() => {
	init_katex();
	init_lit();
	init_decorators();
	init_unsafe_html();
	init_marked_esm();
	__decorate$16 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	MarkdownBlock = class MarkdownBlock$1 extends i {
		constructor() {
			super(...arguments);
			this.content = "";
			this.isThinking = false;
			this.escapeHtml = true;
		}
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.classList.add("markdown-content");
			this.style.display = "block";
		}
		render() {
			if (!this.content) {
				return x``;
			}
			let preservedContent = this.content;
			if (this.escapeHtml) {
				const codeBlocks = [];
				preservedContent = this.content.replace(/```[\s\S]*?```|`[^`\n]+`/g, (match) => {
					const index = codeBlocks.length;
					codeBlocks.push(match);
					return `__CODE_BLOCK_${index}__`;
				});
				preservedContent = preservedContent.replace(/<(\w+)([^>]*)>/g, "&lt;$1$2&gt;").replace(/<\/(\w+)>/g, "&lt;/$1&gt;").replace(/<(\w+)([^>]*)\s*\/>/g, "&lt;$1$2/&gt;").replace(/<(?![^\s])/g, "&lt;");
				codeBlocks.forEach((block, index) => {
					preservedContent = preservedContent.replace(`__CODE_BLOCK_${index}__`, block);
				});
			}
			const katexMode = "html";
			k.use({ extensions: [
				{
					name: "inlineMathDollar",
					level: "inline",
					start(src) {
						return src.indexOf("$");
					},
					tokenizer(src) {
						const match = /^\$([^$\n]+?)\$/s.exec(src);
						if (match) {
							return {
								type: "inlineMathDollar",
								raw: match[0],
								text: match[1].trim()
							};
						}
						return undefined;
					},
					renderer(token) {
						try {
							return katex.renderToString(token.text, {
								throwOnError: false,
								displayMode: false,
								output: katexMode
							});
						} catch (e$10) {
							console.error("KaTeX error:", e$10);
							return `<span class="text-red-500 font-mono">$${token.text}$</span>`;
						}
					}
				},
				{
					name: "blockMathDollar",
					level: "block",
					start(src) {
						return src.indexOf("$$");
					},
					tokenizer(src) {
						const match = /^\$\$([^$]+?)\$\$/s.exec(src);
						if (match) {
							return {
								type: "blockMathDollar",
								raw: match[0],
								text: match[1].trim()
							};
						}
						return undefined;
					},
					renderer(token) {
						try {
							return `<div class="my-4">${katex.renderToString(token.text, {
								throwOnError: false,
								displayMode: true,
								output: katexMode
							})}</div>`;
						} catch (e$10) {
							console.error("KaTeX error:", e$10);
							return `<div class="my-4 text-red-500 font-mono">$$${token.text}$$</div>`;
						}
					}
				},
				{
					name: "inlineMathLatex",
					level: "inline",
					start(src) {
						return src.indexOf("\\(");
					},
					tokenizer(src) {
						const match = /^\\\((.+?)\\\)/s.exec(src);
						if (match) {
							return {
								type: "inlineMathLatex",
								raw: match[0],
								text: match[1].trim()
							};
						}
						return undefined;
					},
					renderer(token) {
						try {
							return katex.renderToString(token.text, {
								throwOnError: false,
								displayMode: false,
								output: katexMode
							});
						} catch (e$10) {
							console.error("KaTeX error:", e$10);
							return `<span class="text-red-500 font-mono">\\(${token.text}\\)</span>`;
						}
					}
				},
				{
					name: "blockMathLatex",
					level: "block",
					start(src) {
						return src.indexOf("\\[");
					},
					tokenizer(src) {
						const match = /^\\\[(.+?)\\\]/s.exec(src);
						if (match) {
							return {
								type: "blockMathLatex",
								raw: match[0],
								text: match[1].trim()
							};
						}
						return undefined;
					},
					renderer(token) {
						try {
							return `<div class="my-4">${katex.renderToString(token.text, {
								throwOnError: false,
								displayMode: true,
								output: katexMode
							})}</div>`;
						} catch (e$10) {
							console.error("KaTeX error:", e$10);
							return `<div class="my-4 text-red-500 font-mono">\\[${token.text}\\]</div>`;
						}
					}
				}
			] });
			const renderer = new k.Renderer();
			const originalLink = renderer.link;
			renderer.link = function(token) {
				const link = originalLink.call(this, token);
				return link.replace("<a ", "<a target=\"_blank\" rel=\"noopener noreferrer\" ");
			};
			const originalTable = renderer.table;
			renderer.table = function(token) {
				const table = originalTable.call(this, token);
				return `<div class="overflow-x-auto my-2 border border-border rounded">${table}</div>`;
			};
			const parsedContent = k.parse(preservedContent, {
				async: false,
				renderer
			});
			let highlightedContent = parsedContent.replace(/<pre><code class="language-(\w+)">([\s\S]+?)<\/code><\/pre>/g, (_match, lang, code) => {
				const unescaped = code.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, "\"").replace(/&#39;/g, "'").replace(/&#x27;/g, "'").replace(/&amp;/g, "&");
				const base64Code = btoa(unescape(encodeURIComponent(unescaped)));
				return `<div class="mt-2"><code-block language="${lang}" code="${base64Code}"></code-block></div>`;
			});
			highlightedContent = highlightedContent.replace(/<pre><code>([\s\S]+?)<\/code><\/pre>/g, (_match, code) => {
				const unescaped = code.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, "\"").replace(/&#39;/g, "'").replace(/&#x27;/g, "'").replace(/&amp;/g, "&");
				const base64Code = btoa(unescape(encodeURIComponent(unescaped)));
				return `<div class="mt-2"><code-block language="text" code="${base64Code}"></code-block></div>`;
			});
			const containerClasses = this.isThinking ? "text-muted-foreground italic max-w-none break-words overflow-wrap-anywhere text-sm [&>*:last-child]:!mb-0" : "text-foreground max-w-none break-words overflow-wrap-anywhere [&>*:last-child]:!mb-0";
			return x` <div class="${containerClasses}">${o(highlightedContent)}</div> `;
		}
	};
	__decorate$16([n$1()], MarkdownBlock.prototype, "content", void 0);
	__decorate$16([n$1()], MarkdownBlock.prototype, "isThinking", void 0);
	__decorate$16([n$1()], MarkdownBlock.prototype, "escapeHtml", void 0);
	MarkdownBlock = __decorate$16([t("markdown-block")], MarkdownBlock);
}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/dist/DownloadButton.js
function DownloadButton({ content, filename, mimeType = "text/plain", title = i18n("Download"), showText = false, size = "sm", variant = "ghost", iconSize = "sm", isBase64 = false }) {
	const handleDownload = () => {
		let blobContent;
		if (content instanceof Uint8Array) {
			blobContent = content.buffer.slice(content.byteOffset, content.byteOffset + content.byteLength);
		} else if (typeof content === "string") {
			const base64Regex = /^[A-Za-z0-9+/]*={0,2}$/;
			const isBase64String = isBase64 || content.length >= 4 && content.length % 4 === 0 && base64Regex.test(content);
			if (isBase64String) {
				try {
					const binaryString = atob(content);
					const bytes = new Uint8Array(binaryString.length);
					for (let i$7 = 0; i$7 < binaryString.length; i$7++) {
						bytes[i$7] = binaryString.charCodeAt(i$7);
					}
					blobContent = bytes;
				} catch {
					blobContent = content;
				}
			} else {
				blobContent = content;
			}
		} else {
			blobContent = "";
		}
		const blob = new Blob([blobContent], { type: mimeType });
		const url = URL.createObjectURL(blob);
		const a$2 = document.createElement("a");
		a$2.href = url;
		a$2.download = filename;
		a$2.click();
		URL.revokeObjectURL(url);
	};
	return Button({
		variant,
		size,
		onClick: handleDownload,
		title,
		children: x` ${icon(Download, iconSize)} ${showText ? x`<span>${i18n("Download")}</span>` : ""} `
	});
}
var init_DownloadButton = __esmMin((() => {
	init_lit();
	init_lucide();
	init_Button();
	init_i18n$1();
	init_icons();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/artifacts/DocxArtifact.js
var import_docx_preview, __decorate$15, DocxArtifact;
var init_DocxArtifact = __esmMin((() => {
	init_DownloadButton();
	import_docx_preview = require_docx_preview();
	init_lit();
	init_decorators();
	init_i18n();
	init_ArtifactElement();
	__decorate$15 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	DocxArtifact = class DocxArtifact$1 extends ArtifactElement {
		constructor() {
			super(...arguments);
			this._content = "";
			this.error = null;
		}
		get content() {
			return this._content;
		}
		set content(value) {
			this._content = value;
			this.error = null;
			this.requestUpdate();
		}
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.style.display = "block";
			this.style.height = "100%";
		}
		base64ToArrayBuffer(base64) {
			let base64Data = base64;
			if (base64.startsWith("data:")) {
				const base64Match = base64.match(/base64,(.+)/);
				if (base64Match) {
					base64Data = base64Match[1];
				}
			}
			const binaryString = atob(base64Data);
			const bytes = new Uint8Array(binaryString.length);
			for (let i$7 = 0; i$7 < binaryString.length; i$7++) {
				bytes[i$7] = binaryString.charCodeAt(i$7);
			}
			return bytes.buffer;
		}
		decodeBase64() {
			let base64Data = this._content;
			if (this._content.startsWith("data:")) {
				const base64Match = this._content.match(/base64,(.+)/);
				if (base64Match) {
					base64Data = base64Match[1];
				}
			}
			const binaryString = atob(base64Data);
			const bytes = new Uint8Array(binaryString.length);
			for (let i$7 = 0; i$7 < binaryString.length; i$7++) {
				bytes[i$7] = binaryString.charCodeAt(i$7);
			}
			return bytes;
		}
		getHeaderButtons() {
			return x`
			<div class="flex items-center gap-1">
				${DownloadButton({
				content: this.decodeBase64(),
				filename: this.filename,
				mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
				title: i18n("Download")
			})}
			</div>
		`;
		}
		async updated(changedProperties) {
			super.updated(changedProperties);
			if (changedProperties.has("_content") && this._content && !this.error) {
				await this.renderDocx();
			}
		}
		async renderDocx() {
			const container = this.querySelector("#docx-container");
			if (!container || !this._content) return;
			try {
				const arrayBuffer = this.base64ToArrayBuffer(this._content);
				container.innerHTML = "";
				const wrapper = document.createElement("div");
				wrapper.className = "docx-wrapper-custom";
				container.appendChild(wrapper);
				await (0, import_docx_preview.renderAsync)(arrayBuffer, wrapper, undefined, {
					className: "docx",
					inWrapper: true,
					ignoreWidth: true,
					ignoreHeight: false,
					ignoreFonts: false,
					breakPages: true,
					ignoreLastRenderedPageBreak: true,
					experimental: false,
					trimXmlDeclaration: true,
					useBase64URL: false,
					renderHeaders: true,
					renderFooters: true,
					renderFootnotes: true,
					renderEndnotes: true
				});
				const style = document.createElement("style");
				style.textContent = `
				#docx-container {
					padding: 0;
				}

				#docx-container .docx-wrapper-custom {
					max-width: 100%;
					overflow-x: auto;
				}

				#docx-container .docx-wrapper {
					max-width: 100% !important;
					margin: 0 !important;
					background: transparent !important;
					padding: 0em !important;
				}

				#docx-container .docx-wrapper > section.docx {
					box-shadow: none !important;
					border: none !important;
					border-radius: 0 !important;
					margin: 0 !important;
					padding: 2em !important;
					background: white !important;
					color: black !important;
					max-width: 100% !important;
					width: 100% !important;
					min-width: 0 !important;
					overflow-x: auto !important;
				}

				/* Fix tables and wide content */
				#docx-container table {
					max-width: 100% !important;
					width: auto !important;
					overflow-x: auto !important;
					display: block !important;
				}

				#docx-container img {
					max-width: 100% !important;
					height: auto !important;
				}

				/* Fix paragraphs and text */
				#docx-container p,
				#docx-container span,
				#docx-container div {
					max-width: 100% !important;
					word-wrap: break-word !important;
					overflow-wrap: break-word !important;
				}

				/* Hide page breaks in web view */
				#docx-container .docx-page-break {
					display: none !important;
				}
			`;
				container.appendChild(style);
			} catch (error$2) {
				console.error("Error rendering DOCX:", error$2);
				this.error = error$2?.message || i18n("Failed to load document");
			}
		}
		render() {
			if (this.error) {
				return x`
				<div class="h-full flex items-center justify-center bg-background p-4">
					<div class="bg-destructive/10 border border-destructive text-destructive p-4 rounded-lg max-w-2xl">
						<div class="font-medium mb-1">${i18n("Error loading document")}</div>
						<div class="text-sm opacity-90">${this.error}</div>
					</div>
				</div>
			`;
			}
			return x`
			<div class="h-full flex flex-col bg-background overflow-auto">
				<div id="docx-container" class="flex-1 overflow-auto"></div>
			</div>
		`;
		}
	};
	__decorate$15([n$1({ type: String })], DocxArtifact.prototype, "_content", void 0);
	__decorate$15([r()], DocxArtifact.prototype, "error", void 0);
	DocxArtifact = __decorate$15([t("docx-artifact")], DocxArtifact);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/artifacts/ExcelArtifact.js
var __decorate$14, ExcelArtifact;
var init_ExcelArtifact = __esmMin((() => {
	init_DownloadButton();
	init_lit();
	init_decorators();
	init_xlsx();
	init_i18n();
	init_ArtifactElement();
	__decorate$14 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	ExcelArtifact = class ExcelArtifact$1 extends ArtifactElement {
		constructor() {
			super(...arguments);
			this._content = "";
			this.error = null;
		}
		get content() {
			return this._content;
		}
		set content(value) {
			this._content = value;
			this.error = null;
			this.requestUpdate();
		}
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.style.display = "block";
			this.style.height = "100%";
		}
		base64ToArrayBuffer(base64) {
			let base64Data = base64;
			if (base64.startsWith("data:")) {
				const base64Match = base64.match(/base64,(.+)/);
				if (base64Match) {
					base64Data = base64Match[1];
				}
			}
			const binaryString = atob(base64Data);
			const bytes = new Uint8Array(binaryString.length);
			for (let i$7 = 0; i$7 < binaryString.length; i$7++) {
				bytes[i$7] = binaryString.charCodeAt(i$7);
			}
			return bytes.buffer;
		}
		decodeBase64() {
			let base64Data = this._content;
			if (this._content.startsWith("data:")) {
				const base64Match = this._content.match(/base64,(.+)/);
				if (base64Match) {
					base64Data = base64Match[1];
				}
			}
			const binaryString = atob(base64Data);
			const bytes = new Uint8Array(binaryString.length);
			for (let i$7 = 0; i$7 < binaryString.length; i$7++) {
				bytes[i$7] = binaryString.charCodeAt(i$7);
			}
			return bytes;
		}
		getMimeType() {
			const ext = this.filename.split(".").pop()?.toLowerCase();
			if (ext === "xls") return "application/vnd.ms-excel";
			return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
		}
		getHeaderButtons() {
			return x`
			<div class="flex items-center gap-1">
				${DownloadButton({
				content: this.decodeBase64(),
				filename: this.filename,
				mimeType: this.getMimeType(),
				title: i18n("Download")
			})}
			</div>
		`;
		}
		async updated(changedProperties) {
			super.updated(changedProperties);
			if (changedProperties.has("_content") && this._content && !this.error) {
				await this.renderExcel();
			}
		}
		async renderExcel() {
			const container = this.querySelector("#excel-container");
			if (!container || !this._content) return;
			try {
				const arrayBuffer = this.base64ToArrayBuffer(this._content);
				const workbook = readSync(arrayBuffer, { type: "array" });
				container.innerHTML = "";
				const wrapper = document.createElement("div");
				wrapper.className = "overflow-auto h-full flex flex-col";
				container.appendChild(wrapper);
				if (workbook.SheetNames.length > 1) {
					const tabContainer = document.createElement("div");
					tabContainer.className = "flex gap-2 mb-4 border-b border-border sticky top-0 bg-background z-10";
					const sheetContents = [];
					workbook.SheetNames.forEach((sheetName, index) => {
						const tab = document.createElement("button");
						tab.textContent = sheetName;
						tab.className = index === 0 ? "px-4 py-2 text-sm font-medium border-b-2 border-primary text-primary" : "px-4 py-2 text-sm font-medium text-muted-foreground hover:text-foreground hover:border-b-2 hover:border-border transition-colors";
						const sheetDiv = document.createElement("div");
						sheetDiv.style.display = index === 0 ? "flex" : "none";
						sheetDiv.className = "flex-1 overflow-auto";
						sheetDiv.appendChild(this.renderExcelSheet(workbook.Sheets[sheetName], sheetName));
						sheetContents.push(sheetDiv);
						tab.onclick = () => {
							tabContainer.querySelectorAll("button").forEach((btn, btnIndex) => {
								if (btnIndex === index) {
									btn.className = "px-4 py-2 text-sm font-medium border-b-2 border-primary text-primary";
								} else {
									btn.className = "px-4 py-2 text-sm font-medium text-muted-foreground hover:text-foreground hover:border-b-2 hover:border-border transition-colors";
								}
							});
							sheetContents.forEach((content, contentIndex) => {
								content.style.display = contentIndex === index ? "flex" : "none";
							});
						};
						tabContainer.appendChild(tab);
					});
					wrapper.appendChild(tabContainer);
					sheetContents.forEach((content) => {
						wrapper.appendChild(content);
					});
				} else {
					const sheetName = workbook.SheetNames[0];
					wrapper.appendChild(this.renderExcelSheet(workbook.Sheets[sheetName], sheetName));
				}
			} catch (error$2) {
				console.error("Error rendering Excel:", error$2);
				this.error = error$2?.message || i18n("Failed to load spreadsheet");
			}
		}
		renderExcelSheet(worksheet, sheetName) {
			const sheetDiv = document.createElement("div");
			const htmlTable = utils$1.sheet_to_html(worksheet, { id: `sheet-${sheetName}` });
			const tempDiv = document.createElement("div");
			tempDiv.innerHTML = htmlTable;
			const table = tempDiv.querySelector("table");
			if (table) {
				table.className = "w-full border-collapse text-foreground";
				table.querySelectorAll("td, th").forEach((cell) => {
					const cellEl = cell;
					cellEl.className = "border border-border px-3 py-2 text-sm text-left";
				});
				const headerCells = table.querySelectorAll("thead th, tr:first-child td");
				if (headerCells.length > 0) {
					headerCells.forEach((th) => {
						const thEl = th;
						thEl.className = "border border-border px-3 py-2 text-sm font-semibold bg-muted text-foreground sticky top-0";
					});
				}
				table.querySelectorAll("tbody tr:nth-child(even)").forEach((row) => {
					const rowEl = row;
					rowEl.className = "bg-muted/30";
				});
				sheetDiv.appendChild(table);
			}
			return sheetDiv;
		}
		render() {
			if (this.error) {
				return x`
				<div class="h-full flex items-center justify-center bg-background p-4">
					<div class="bg-destructive/10 border border-destructive text-destructive p-4 rounded-lg max-w-2xl">
						<div class="font-medium mb-1">${i18n("Error loading spreadsheet")}</div>
						<div class="text-sm opacity-90">${this.error}</div>
					</div>
				</div>
			`;
			}
			return x`
			<div class="h-full flex flex-col bg-background overflow-auto">
				<div id="excel-container" class="flex-1 overflow-auto"></div>
			</div>
		`;
		}
	};
	__decorate$14([n$1({ type: String })], ExcelArtifact.prototype, "_content", void 0);
	__decorate$14([r()], ExcelArtifact.prototype, "error", void 0);
	ExcelArtifact = __decorate$14([t("excel-artifact")], ExcelArtifact);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/artifacts/GenericArtifact.js
var __decorate$13, GenericArtifact;
var init_GenericArtifact = __esmMin((() => {
	init_DownloadButton();
	init_lit();
	init_decorators();
	init_i18n();
	init_ArtifactElement();
	__decorate$13 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	GenericArtifact = class GenericArtifact$1 extends ArtifactElement {
		constructor() {
			super(...arguments);
			this._content = "";
		}
		get content() {
			return this._content;
		}
		set content(value) {
			this._content = value;
			this.requestUpdate();
		}
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.style.display = "block";
			this.style.height = "100%";
		}
		decodeBase64() {
			let base64Data = this._content;
			if (this._content.startsWith("data:")) {
				const base64Match = this._content.match(/base64,(.+)/);
				if (base64Match) {
					base64Data = base64Match[1];
				}
			}
			const binaryString = atob(base64Data);
			const bytes = new Uint8Array(binaryString.length);
			for (let i$7 = 0; i$7 < binaryString.length; i$7++) {
				bytes[i$7] = binaryString.charCodeAt(i$7);
			}
			return bytes;
		}
		getMimeType() {
			const ext = this.filename.split(".").pop()?.toLowerCase();
			const mimeTypes = {
				pdf: "application/pdf",
				zip: "application/zip",
				tar: "application/x-tar",
				gz: "application/gzip",
				rar: "application/vnd.rar",
				"7z": "application/x-7z-compressed",
				mp3: "audio/mpeg",
				mp4: "video/mp4",
				avi: "video/x-msvideo",
				mov: "video/quicktime",
				wav: "audio/wav",
				ogg: "audio/ogg",
				json: "application/json",
				xml: "application/xml",
				bin: "application/octet-stream"
			};
			return mimeTypes[ext || ""] || "application/octet-stream";
		}
		getHeaderButtons() {
			return x`
			<div class="flex items-center gap-1">
				${DownloadButton({
				content: this.decodeBase64(),
				filename: this.filename,
				mimeType: this.getMimeType(),
				title: i18n("Download")
			})}
			</div>
		`;
		}
		render() {
			return x`
			<div class="h-full flex items-center justify-center bg-background p-8">
				<div class="text-center max-w-md">
					<div class="text-muted-foreground text-lg mb-4">
						<svg
							xmlns="http://www.w3.org/2000/svg"
							class="h-16 w-16 mx-auto mb-4 text-muted-foreground/50"
							fill="none"
							viewBox="0 0 24 24"
							stroke="currentColor"
						>
							<path
								stroke-linecap="round"
								stroke-linejoin="round"
								stroke-width="1.5"
								d="M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v14a2 2 0 002 2z"
							/>
						</svg>
						<div class="font-medium text-foreground mb-2">${this.filename}</div>
						<p class="text-sm">
							${i18n("Preview not available for this file type.")} ${i18n("Click the download button above to view it on your computer.")}
						</p>
					</div>
				</div>
			</div>
		`;
		}
	};
	__decorate$13([n$1({ type: String })], GenericArtifact.prototype, "_content", void 0);
	GenericArtifact = __decorate$13([t("generic-artifact")], GenericArtifact);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/core.js
var require_core$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function deepFreeze$1(obj) {
		if (obj instanceof Map) {
			obj.clear = obj.delete = obj.set = function() {
				throw new Error("map is read-only");
			};
		} else if (obj instanceof Set) {
			obj.add = obj.clear = obj.delete = function() {
				throw new Error("set is read-only");
			};
		}
		Object.freeze(obj);
		Object.getOwnPropertyNames(obj).forEach((name) => {
			const prop = obj[name];
			const type = typeof prop;
			if ((type === "object" || type === "function") && !Object.isFrozen(prop)) {
				deepFreeze$1(prop);
			}
		});
		return obj;
	}
	/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */
	/** @typedef {import('highlight.js').CompiledMode} CompiledMode */
	/** @implements CallbackResponse */
	var Response$2 = class {
		/**
		* @param {CompiledMode} mode
		*/
		constructor(mode) {
			if (mode.data === undefined) mode.data = {};
			this.data = mode.data;
			this.isMatchIgnored = false;
		}
		ignoreMatch() {
			this.isMatchIgnored = true;
		}
	};
	/**
	* @param {string} value
	* @returns {string}
	*/
	function escapeHTML$2(value) {
		return value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#x27;");
	}
	/**
	* performs a shallow merge of multiple objects into one
	*
	* @template T
	* @param {T} original
	* @param {Record<string,any>[]} objects
	* @returns {T} a single new object
	*/
	function inherit$1$1(original, ...objects) {
		/** @type Record<string,any> */
		const result = Object.create(null);
		for (const key in original) {
			result[key] = original[key];
		}
		objects.forEach(function(obj) {
			for (const key in obj) {
				result[key] = obj[key];
			}
		});
		return result;
	}
	/**
	* @typedef {object} Renderer
	* @property {(text: string) => void} addText
	* @property {(node: Node) => void} openNode
	* @property {(node: Node) => void} closeNode
	* @property {() => string} value
	*/
	/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */
	/** @typedef {{walk: (r: Renderer) => void}} Tree */
	/** */
	const SPAN_CLOSE$1 = "</span>";
	/**
	* Determines if a node needs to be wrapped in <span>
	*
	* @param {Node} node */
	const emitsWrappingTags$1 = (node) => {
		return !!node.scope;
	};
	/**
	*
	* @param {string} name
	* @param {{prefix:string}} options
	*/
	const scopeToCSSClass$1 = (name, { prefix }) => {
		if (name.startsWith("language:")) {
			return name.replace("language:", "language-");
		}
		if (name.includes(".")) {
			const pieces = name.split(".");
			return [`${prefix}${pieces.shift()}`, ...pieces.map((x$2, i$7) => `${x$2}${"_".repeat(i$7 + 1)}`)].join(" ");
		}
		return `${prefix}${name}`;
	};
	/** @type {Renderer} */
	var HTMLRenderer$1 = class {
		/**
		* Creates a new HTMLRenderer
		*
		* @param {Tree} parseTree - the parse tree (must support `walk` API)
		* @param {{classPrefix: string}} options
		*/
		constructor(parseTree$1, options) {
			this.buffer = "";
			this.classPrefix = options.classPrefix;
			parseTree$1.walk(this);
		}
		/**
		* Adds texts to the output stream
		*
		* @param {string} text */
		addText(text$2) {
			this.buffer += escapeHTML$2(text$2);
		}
		/**
		* Adds a node open to the output stream (if needed)
		*
		* @param {Node} node */
		openNode(node) {
			if (!emitsWrappingTags$1(node)) return;
			const className = scopeToCSSClass$1(node.scope, { prefix: this.classPrefix });
			this.span(className);
		}
		/**
		* Adds a node close to the output stream (if needed)
		*
		* @param {Node} node */
		closeNode(node) {
			if (!emitsWrappingTags$1(node)) return;
			this.buffer += SPAN_CLOSE$1;
		}
		/**
		* returns the accumulated buffer
		*/
		value() {
			return this.buffer;
		}
		/**
		* Builds a span element
		*
		* @param {string} className */
		span(className) {
			this.buffer += `<span class="${className}">`;
		}
	};
	/** @typedef {{scope?: string, language?: string, children: Node[]} | string} Node */
	/** @typedef {{scope?: string, language?: string, children: Node[]} } DataNode */
	/** @typedef {import('highlight.js').Emitter} Emitter */
	/**  */
	/** @returns {DataNode} */
	const newNode$1 = (opts = {}) => {
		/** @type DataNode */
		const result = { children: [] };
		Object.assign(result, opts);
		return result;
	};
	var TokenTree$1 = class TokenTree$1 {
		constructor() {
			/** @type DataNode */
			this.rootNode = newNode$1();
			this.stack = [this.rootNode];
		}
		get top() {
			return this.stack[this.stack.length - 1];
		}
		get root() {
			return this.rootNode;
		}
		/** @param {Node} node */
		add(node) {
			this.top.children.push(node);
		}
		/** @param {string} scope */
		openNode(scope) {
			/** @type Node */
			const node = newNode$1({ scope });
			this.add(node);
			this.stack.push(node);
		}
		closeNode() {
			if (this.stack.length > 1) {
				return this.stack.pop();
			}
			return undefined;
		}
		closeAllNodes() {
			while (this.closeNode());
		}
		toJSON() {
			return JSON.stringify(this.rootNode, null, 4);
		}
		/**
		* @typedef { import("./html_renderer").Renderer } Renderer
		* @param {Renderer} builder
		*/
		walk(builder) {
			return this.constructor._walk(builder, this.rootNode);
		}
		/**
		* @param {Renderer} builder
		* @param {Node} node
		*/
		static _walk(builder, node) {
			if (typeof node === "string") {
				builder.addText(node);
			} else if (node.children) {
				builder.openNode(node);
				node.children.forEach((child) => this._walk(builder, child));
				builder.closeNode(node);
			}
			return builder;
		}
		/**
		* @param {Node} node
		*/
		static _collapse(node) {
			if (typeof node === "string") return;
			if (!node.children) return;
			if (node.children.every((el) => typeof el === "string")) {
				node.children = [node.children.join("")];
			} else {
				node.children.forEach((child) => {
					TokenTree$1._collapse(child);
				});
			}
		}
	};
	/**
	Currently this is all private API, but this is the minimal API necessary
	that an Emitter must implement to fully support the parser.
	
	Minimal interface:
	
	- addText(text)
	- __addSublanguage(emitter, subLanguageName)
	- startScope(scope)
	- endScope()
	- finalize()
	- toHTML()
	
	*/
	/**
	* @implements {Emitter}
	*/
	var TokenTreeEmitter$1 = class extends TokenTree$1 {
		/**
		* @param {*} options
		*/
		constructor(options) {
			super();
			this.options = options;
		}
		/**
		* @param {string} text
		*/
		addText(text$2) {
			if (text$2 === "") {
				return;
			}
			this.add(text$2);
		}
		/** @param {string} scope */
		startScope(scope) {
			this.openNode(scope);
		}
		endScope() {
			this.closeNode();
		}
		/**
		* @param {Emitter & {root: DataNode}} emitter
		* @param {string} name
		*/
		__addSublanguage(emitter, name) {
			/** @type DataNode */
			const node = emitter.root;
			if (name) node.scope = `language:${name}`;
			this.add(node);
		}
		toHTML() {
			const renderer = new HTMLRenderer$1(this, this.options);
			return renderer.value();
		}
		finalize() {
			this.closeAllNodes();
			return true;
		}
	};
	/**
	* @param {string} value
	* @returns {RegExp}
	* */
	/**
	* @param {RegExp | string } re
	* @returns {string}
	*/
	function source$3(re$1) {
		if (!re$1) return null;
		if (typeof re$1 === "string") return re$1;
		return re$1.source;
	}
	/**
	* @param {RegExp | string } re
	* @returns {string}
	*/
	function lookahead$3(re$1) {
		return concat$3("(?=", re$1, ")");
	}
	/**
	* @param {RegExp | string } re
	* @returns {string}
	*/
	function anyNumberOfTimes$1(re$1) {
		return concat$3("(?:", re$1, ")*");
	}
	/**
	* @param {RegExp | string } re
	* @returns {string}
	*/
	function optional$1(re$1) {
		return concat$3("(?:", re$1, ")?");
	}
	/**
	* @param {...(RegExp | string) } args
	* @returns {string}
	*/
	function concat$3(...args) {
		const joined = args.map((x$2) => source$3(x$2)).join("");
		return joined;
	}
	/**
	* @param { Array<string | RegExp | Object> } args
	* @returns {object}
	*/
	function stripOptionsFromArgs$3(args) {
		const opts = args[args.length - 1];
		if (typeof opts === "object" && opts.constructor === Object) {
			args.splice(args.length - 1, 1);
			return opts;
		} else {
			return {};
		}
	}
	/** @typedef { {capture?: boolean} } RegexEitherOptions */
	/**
	* Any of the passed expresssions may match
	*
	* Creates a huge this | this | that | that match
	* @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args
	* @returns {string}
	*/
	function either$3(...args) {
		/** @type { object & {capture?: boolean} }  */
		const opts = stripOptionsFromArgs$3(args);
		const joined = "(" + (opts.capture ? "" : "?:") + args.map((x$2) => source$3(x$2)).join("|") + ")";
		return joined;
	}
	/**
	* @param {RegExp | string} re
	* @returns {number}
	*/
	function countMatchGroups$1(re$1) {
		return new RegExp(re$1.toString() + "|").exec("").length - 1;
	}
	/**
	* Does lexeme start with a regular expression match at the beginning
	* @param {RegExp} re
	* @param {string} lexeme
	*/
	function startsWith$1(re$1, lexeme) {
		const match = re$1 && re$1.exec(lexeme);
		return match && match.index === 0;
	}
	const BACKREF_RE$1 = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;
	/**
	* @param {(string | RegExp)[]} regexps
	* @param {{joinWith: string}} opts
	* @returns {string}
	*/
	function _rewriteBackreferences$1(regexps, { joinWith }) {
		let numCaptures = 0;
		return regexps.map((regex) => {
			numCaptures += 1;
			const offset = numCaptures;
			let re$1 = source$3(regex);
			let out = "";
			while (re$1.length > 0) {
				const match = BACKREF_RE$1.exec(re$1);
				if (!match) {
					out += re$1;
					break;
				}
				out += re$1.substring(0, match.index);
				re$1 = re$1.substring(match.index + match[0].length);
				if (match[0][0] === "\\" && match[1]) {
					out += "\\" + String(Number(match[1]) + offset);
				} else {
					out += match[0];
					if (match[0] === "(") {
						numCaptures++;
					}
				}
			}
			return out;
		}).map((re$1) => `(${re$1})`).join(joinWith);
	}
	/** @typedef {import('highlight.js').Mode} Mode */
	/** @typedef {import('highlight.js').ModeCallback} ModeCallback */
	const MATCH_NOTHING_RE$1 = /\b\B/;
	const IDENT_RE$5 = "[a-zA-Z]\\w*";
	const UNDERSCORE_IDENT_RE$1 = "[a-zA-Z_]\\w*";
	const NUMBER_RE$1 = "\\b\\d+(\\.\\d+)?";
	const C_NUMBER_RE$1 = "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";
	const BINARY_NUMBER_RE$1 = "\\b(0b[01]+)";
	const RE_STARTERS_RE$1 = "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";
	/**
	* @param { Partial<Mode> & {binary?: string | RegExp} } opts
	*/
	const SHEBANG$1 = (opts = {}) => {
		const beginShebang = /^#![ ]*\//;
		if (opts.binary) {
			opts.begin = concat$3(beginShebang, /.*\b/, opts.binary, /\b.*/);
		}
		return inherit$1$1({
			scope: "meta",
			begin: beginShebang,
			end: /$/,
			relevance: 0,
			"on:begin": (m$3, resp) => {
				if (m$3.index !== 0) resp.ignoreMatch();
			}
		}, opts);
	};
	const BACKSLASH_ESCAPE$1 = {
		begin: "\\\\[\\s\\S]",
		relevance: 0
	};
	const APOS_STRING_MODE$1 = {
		scope: "string",
		begin: "'",
		end: "'",
		illegal: "\\n",
		contains: [BACKSLASH_ESCAPE$1]
	};
	const QUOTE_STRING_MODE$1 = {
		scope: "string",
		begin: "\"",
		end: "\"",
		illegal: "\\n",
		contains: [BACKSLASH_ESCAPE$1]
	};
	const PHRASAL_WORDS_MODE$1 = { 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/ };
	/**
	* Creates a comment mode
	*
	* @param {string | RegExp} begin
	* @param {string | RegExp} end
	* @param {Mode | {}} [modeOptions]
	* @returns {Partial<Mode>}
	*/
	const COMMENT$1 = function(begin, end, modeOptions = {}) {
		const mode = inherit$1$1({
			scope: "comment",
			begin,
			end,
			contains: []
		}, modeOptions);
		mode.contains.push({
			scope: "doctag",
			begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
			end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,
			excludeBegin: true,
			relevance: 0
		});
		const ENGLISH_WORD = either$3("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,}/);
		mode.contains.push({ begin: concat$3(/[ ]+/, "(", ENGLISH_WORD, /[.]?[:]?([.][ ]|[ ])/, "){3}") });
		return mode;
	};
	const C_LINE_COMMENT_MODE$1 = COMMENT$1("//", "$");
	const C_BLOCK_COMMENT_MODE$1 = COMMENT$1("/\\*", "\\*/");
	const HASH_COMMENT_MODE$1 = COMMENT$1("#", "$");
	const NUMBER_MODE$1 = {
		scope: "number",
		begin: NUMBER_RE$1,
		relevance: 0
	};
	const C_NUMBER_MODE$1 = {
		scope: "number",
		begin: C_NUMBER_RE$1,
		relevance: 0
	};
	const BINARY_NUMBER_MODE$1 = {
		scope: "number",
		begin: BINARY_NUMBER_RE$1,
		relevance: 0
	};
	const REGEXP_MODE$1 = {
		scope: "regexp",
		begin: /\/(?=[^/\n]*\/)/,
		end: /\/[gimuy]*/,
		contains: [BACKSLASH_ESCAPE$1, {
			begin: /\[/,
			end: /\]/,
			relevance: 0,
			contains: [BACKSLASH_ESCAPE$1]
		}]
	};
	const TITLE_MODE$1 = {
		scope: "title",
		begin: IDENT_RE$5,
		relevance: 0
	};
	const UNDERSCORE_TITLE_MODE$1 = {
		scope: "title",
		begin: UNDERSCORE_IDENT_RE$1,
		relevance: 0
	};
	const METHOD_GUARD$1 = {
		begin: "\\.\\s*" + UNDERSCORE_IDENT_RE$1,
		relevance: 0
	};
	/**
	* Adds end same as begin mechanics to a mode
	*
	* Your mode must include at least a single () match group as that first match
	* group is what is used for comparison
	* @param {Partial<Mode>} mode
	*/
	const END_SAME_AS_BEGIN$1 = function(mode) {
		return Object.assign(mode, {
			"on:begin": (m$3, resp) => {
				resp.data._beginMatch = m$3[1];
			},
			"on:end": (m$3, resp) => {
				if (resp.data._beginMatch !== m$3[1]) resp.ignoreMatch();
			}
		});
	};
	var MODES$6 = /* @__PURE__ */ Object.freeze({
		__proto__: null,
		APOS_STRING_MODE: APOS_STRING_MODE$1,
		BACKSLASH_ESCAPE: BACKSLASH_ESCAPE$1,
		BINARY_NUMBER_MODE: BINARY_NUMBER_MODE$1,
		BINARY_NUMBER_RE: BINARY_NUMBER_RE$1,
		COMMENT: COMMENT$1,
		C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE$1,
		C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE$1,
		C_NUMBER_MODE: C_NUMBER_MODE$1,
		C_NUMBER_RE: C_NUMBER_RE$1,
		END_SAME_AS_BEGIN: END_SAME_AS_BEGIN$1,
		HASH_COMMENT_MODE: HASH_COMMENT_MODE$1,
		IDENT_RE: IDENT_RE$5,
		MATCH_NOTHING_RE: MATCH_NOTHING_RE$1,
		METHOD_GUARD: METHOD_GUARD$1,
		NUMBER_MODE: NUMBER_MODE$1,
		NUMBER_RE: NUMBER_RE$1,
		PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE$1,
		QUOTE_STRING_MODE: QUOTE_STRING_MODE$1,
		REGEXP_MODE: REGEXP_MODE$1,
		RE_STARTERS_RE: RE_STARTERS_RE$1,
		SHEBANG: SHEBANG$1,
		TITLE_MODE: TITLE_MODE$1,
		UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE$1,
		UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE$1
	});
	/**
	@typedef {import('highlight.js').CallbackResponse} CallbackResponse
	@typedef {import('highlight.js').CompilerExt} CompilerExt
	*/
	/**
	* Skip a match if it has a preceding dot
	*
	* This is used for `beginKeywords` to prevent matching expressions such as
	* `bob.keyword.do()`. The mode compiler automatically wires this up as a
	* special _internal_ 'on:begin' callback for modes with `beginKeywords`
	* @param {RegExpMatchArray} match
	* @param {CallbackResponse} response
	*/
	function skipIfHasPrecedingDot$1(match, response) {
		const before = match.input[match.index - 1];
		if (before === ".") {
			response.ignoreMatch();
		}
	}
	/**
	*
	* @type {CompilerExt}
	*/
	function scopeClassName$1(mode, _parent) {
		if (mode.className !== undefined) {
			mode.scope = mode.className;
			delete mode.className;
		}
	}
	/**
	* `beginKeywords` syntactic sugar
	* @type {CompilerExt}
	*/
	function beginKeywords$1(mode, parent) {
		if (!parent) return;
		if (!mode.beginKeywords) return;
		mode.begin = "\\b(" + mode.beginKeywords.split(" ").join("|") + ")(?!\\.)(?=\\b|\\s)";
		mode.__beforeBegin = skipIfHasPrecedingDot$1;
		mode.keywords = mode.keywords || mode.beginKeywords;
		delete mode.beginKeywords;
		if (mode.relevance === undefined) mode.relevance = 0;
	}
	/**
	* Allow `illegal` to contain an array of illegal values
	* @type {CompilerExt}
	*/
	function compileIllegal$1(mode, _parent) {
		if (!Array.isArray(mode.illegal)) return;
		mode.illegal = either$3(...mode.illegal);
	}
	/**
	* `match` to match a single expression for readability
	* @type {CompilerExt}
	*/
	function compileMatch$1(mode, _parent) {
		if (!mode.match) return;
		if (mode.begin || mode.end) throw new Error("begin & end are not supported with match");
		mode.begin = mode.match;
		delete mode.match;
	}
	/**
	* provides the default 1 relevance to all modes
	* @type {CompilerExt}
	*/
	function compileRelevance$1(mode, _parent) {
		if (mode.relevance === undefined) mode.relevance = 1;
	}
	const beforeMatchExt$1 = (mode, parent) => {
		if (!mode.beforeMatch) return;
		if (mode.starts) throw new Error("beforeMatch cannot be used with starts");
		const originalMode = Object.assign({}, mode);
		Object.keys(mode).forEach((key) => {
			delete mode[key];
		});
		mode.keywords = originalMode.keywords;
		mode.begin = concat$3(originalMode.beforeMatch, lookahead$3(originalMode.begin));
		mode.starts = {
			relevance: 0,
			contains: [Object.assign(originalMode, { endsParent: true })]
		};
		mode.relevance = 0;
		delete originalMode.beforeMatch;
	};
	const COMMON_KEYWORDS$1 = [
		"of",
		"and",
		"for",
		"in",
		"not",
		"or",
		"if",
		"then",
		"parent",
		"list",
		"value"
	];
	const DEFAULT_KEYWORD_SCOPE$1 = "keyword";
	/**
	* Given raw keywords from a language definition, compile them.
	*
	* @param {string | Record<string,string|string[]> | Array<string>} rawKeywords
	* @param {boolean} caseInsensitive
	*/
	function compileKeywords$1(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE$1) {
		/** @type {import("highlight.js/private").KeywordDict} */
		const compiledKeywords = Object.create(null);
		if (typeof rawKeywords === "string") {
			compileList(scopeName, rawKeywords.split(" "));
		} else if (Array.isArray(rawKeywords)) {
			compileList(scopeName, rawKeywords);
		} else {
			Object.keys(rawKeywords).forEach(function(scopeName$1) {
				Object.assign(compiledKeywords, compileKeywords$1(rawKeywords[scopeName$1], caseInsensitive, scopeName$1));
			});
		}
		return compiledKeywords;
		/**
		* Compiles an individual list of keywords
		*
		* Ex: "for if when while|5"
		*
		* @param {string} scopeName
		* @param {Array<string>} keywordList
		*/
		function compileList(scopeName$1, keywordList) {
			if (caseInsensitive) {
				keywordList = keywordList.map((x$2) => x$2.toLowerCase());
			}
			keywordList.forEach(function(keyword) {
				const pair = keyword.split("|");
				compiledKeywords[pair[0]] = [scopeName$1, scoreForKeyword$1(pair[0], pair[1])];
			});
		}
	}
	/**
	* Returns the proper score for a given keyword
	*
	* Also takes into account comment keywords, which will be scored 0 UNLESS
	* another score has been manually assigned.
	* @param {string} keyword
	* @param {string} [providedScore]
	*/
	function scoreForKeyword$1(keyword, providedScore) {
		if (providedScore) {
			return Number(providedScore);
		}
		return commonKeyword$1(keyword) ? 0 : 1;
	}
	/**
	* Determines if a given keyword is common or not
	*
	* @param {string} keyword */
	function commonKeyword$1(keyword) {
		return COMMON_KEYWORDS$1.includes(keyword.toLowerCase());
	}
	/**
	* @type {Record<string, boolean>}
	*/
	const seenDeprecations$1 = {};
	/**
	* @param {string} message
	*/
	const error$1 = (message) => {
		console.error(message);
	};
	/**
	* @param {string} message
	* @param {any} args
	*/
	const warn$1 = (message, ...args) => {
		console.log(`WARN: ${message}`, ...args);
	};
	/**
	* @param {string} version
	* @param {string} message
	*/
	const deprecated$1 = (version$6, message) => {
		if (seenDeprecations$1[`${version$6}/${message}`]) return;
		console.log(`Deprecated as of ${version$6}. ${message}`);
		seenDeprecations$1[`${version$6}/${message}`] = true;
	};
	/**
	@typedef {import('highlight.js').CompiledMode} CompiledMode
	*/
	const MultiClassError$1 = new Error();
	/**
	* Renumbers labeled scope names to account for additional inner match
	* groups that otherwise would break everything.
	*
	* Lets say we 3 match scopes:
	*
	*   { 1 => ..., 2 => ..., 3 => ... }
	*
	* So what we need is a clean match like this:
	*
	*   (a)(b)(c) => [ "a", "b", "c" ]
	*
	* But this falls apart with inner match groups:
	*
	* (a)(((b)))(c) => ["a", "b", "b", "b", "c" ]
	*
	* Our scopes are now "out of alignment" and we're repeating `b` 3 times.
	* What needs to happen is the numbers are remapped:
	*
	*   { 1 => ..., 2 => ..., 5 => ... }
	*
	* We also need to know that the ONLY groups that should be output
	* are 1, 2, and 5.  This function handles this behavior.
	*
	* @param {CompiledMode} mode
	* @param {Array<RegExp | string>} regexes
	* @param {{key: "beginScope"|"endScope"}} opts
	*/
	function remapScopeNames$1(mode, regexes, { key }) {
		let offset = 0;
		const scopeNames = mode[key];
		/** @type Record<number,boolean> */
		const emit = {};
		/** @type Record<number,string> */
		const positions = {};
		for (let i$7 = 1; i$7 <= regexes.length; i$7++) {
			positions[i$7 + offset] = scopeNames[i$7];
			emit[i$7 + offset] = true;
			offset += countMatchGroups$1(regexes[i$7 - 1]);
		}
		mode[key] = positions;
		mode[key]._emit = emit;
		mode[key]._multi = true;
	}
	/**
	* @param {CompiledMode} mode
	*/
	function beginMultiClass$1(mode) {
		if (!Array.isArray(mode.begin)) return;
		if (mode.skip || mode.excludeBegin || mode.returnBegin) {
			error$1("skip, excludeBegin, returnBegin not compatible with beginScope: {}");
			throw MultiClassError$1;
		}
		if (typeof mode.beginScope !== "object" || mode.beginScope === null) {
			error$1("beginScope must be object");
			throw MultiClassError$1;
		}
		remapScopeNames$1(mode, mode.begin, { key: "beginScope" });
		mode.begin = _rewriteBackreferences$1(mode.begin, { joinWith: "" });
	}
	/**
	* @param {CompiledMode} mode
	*/
	function endMultiClass$1(mode) {
		if (!Array.isArray(mode.end)) return;
		if (mode.skip || mode.excludeEnd || mode.returnEnd) {
			error$1("skip, excludeEnd, returnEnd not compatible with endScope: {}");
			throw MultiClassError$1;
		}
		if (typeof mode.endScope !== "object" || mode.endScope === null) {
			error$1("endScope must be object");
			throw MultiClassError$1;
		}
		remapScopeNames$1(mode, mode.end, { key: "endScope" });
		mode.end = _rewriteBackreferences$1(mode.end, { joinWith: "" });
	}
	/**
	* this exists only to allow `scope: {}` to be used beside `match:`
	* Otherwise `beginScope` would necessary and that would look weird
	
	{
	match: [ /def/, /\w+/ ]
	scope: { 1: "keyword" , 2: "title" }
	}
	
	* @param {CompiledMode} mode
	*/
	function scopeSugar$1(mode) {
		if (mode.scope && typeof mode.scope === "object" && mode.scope !== null) {
			mode.beginScope = mode.scope;
			delete mode.scope;
		}
	}
	/**
	* @param {CompiledMode} mode
	*/
	function MultiClass$1(mode) {
		scopeSugar$1(mode);
		if (typeof mode.beginScope === "string") {
			mode.beginScope = { _wrap: mode.beginScope };
		}
		if (typeof mode.endScope === "string") {
			mode.endScope = { _wrap: mode.endScope };
		}
		beginMultiClass$1(mode);
		endMultiClass$1(mode);
	}
	/**
	@typedef {import('highlight.js').Mode} Mode
	@typedef {import('highlight.js').CompiledMode} CompiledMode
	@typedef {import('highlight.js').Language} Language
	@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin
	@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage
	*/
	/**
	* Compiles a language definition result
	*
	* Given the raw result of a language definition (Language), compiles this so
	* that it is ready for highlighting code.
	* @param {Language} language
	* @returns {CompiledLanguage}
	*/
	function compileLanguage$1(language) {
		/**
		* Builds a regex with the case sensitivity of the current language
		*
		* @param {RegExp | string} value
		* @param {boolean} [global]
		*/
		function langRe(value, global$1) {
			return new RegExp(source$3(value), "m" + (language.case_insensitive ? "i" : "") + (language.unicodeRegex ? "u" : "") + (global$1 ? "g" : ""));
		}
		/**
		Stores multiple regular expressions and allows you to quickly search for
		them all in a string simultaneously - returning the first match.  It does
		this by creating a huge (a|b|c) regex - each individual item wrapped with ()
		and joined by `|` - using match groups to track position.  When a match is
		found checking which position in the array has content allows us to figure
		out which of the original regexes / match groups triggered the match.
		
		The match object itself (the result of `Regex.exec`) is returned but also
		enhanced by merging in any meta-data that was registered with the regex.
		This is how we keep track of which mode matched, and what type of rule
		(`illegal`, `begin`, end, etc).
		*/
		class MultiRegex {
			constructor() {
				this.matchIndexes = {};
				this.regexes = [];
				this.matchAt = 1;
				this.position = 0;
			}
			addRule(re$1, opts) {
				opts.position = this.position++;
				this.matchIndexes[this.matchAt] = opts;
				this.regexes.push([opts, re$1]);
				this.matchAt += countMatchGroups$1(re$1) + 1;
			}
			compile() {
				if (this.regexes.length === 0) {
					this.exec = () => null;
				}
				const terminators = this.regexes.map((el) => el[1]);
				this.matcherRe = langRe(_rewriteBackreferences$1(terminators, { joinWith: "|" }), true);
				this.lastIndex = 0;
			}
			/** @param {string} s */
			exec(s$5) {
				this.matcherRe.lastIndex = this.lastIndex;
				const match = this.matcherRe.exec(s$5);
				if (!match) {
					return null;
				}
				const i$7 = match.findIndex((el, i$8) => i$8 > 0 && el !== undefined);
				const matchData = this.matchIndexes[i$7];
				match.splice(0, i$7);
				return Object.assign(match, matchData);
			}
		}
		class ResumableMultiRegex {
			constructor() {
				this.rules = [];
				this.multiRegexes = [];
				this.count = 0;
				this.lastIndex = 0;
				this.regexIndex = 0;
			}
			getMatcher(index) {
				if (this.multiRegexes[index]) return this.multiRegexes[index];
				const matcher = new MultiRegex();
				this.rules.slice(index).forEach(([re$1, opts]) => matcher.addRule(re$1, opts));
				matcher.compile();
				this.multiRegexes[index] = matcher;
				return matcher;
			}
			resumingScanAtSamePosition() {
				return this.regexIndex !== 0;
			}
			considerAll() {
				this.regexIndex = 0;
			}
			addRule(re$1, opts) {
				this.rules.push([re$1, opts]);
				if (opts.type === "begin") this.count++;
			}
			/** @param {string} s */
			exec(s$5) {
				const m$3 = this.getMatcher(this.regexIndex);
				m$3.lastIndex = this.lastIndex;
				let result = m$3.exec(s$5);
				if (this.resumingScanAtSamePosition()) {
					if (result && result.index === this.lastIndex);
					else {
						const m2 = this.getMatcher(0);
						m2.lastIndex = this.lastIndex + 1;
						result = m2.exec(s$5);
					}
				}
				if (result) {
					this.regexIndex += result.position + 1;
					if (this.regexIndex === this.count) {
						this.considerAll();
					}
				}
				return result;
			}
		}
		/**
		* Given a mode, builds a huge ResumableMultiRegex that can be used to walk
		* the content and find matches.
		*
		* @param {CompiledMode} mode
		* @returns {ResumableMultiRegex}
		*/
		function buildModeRegex(mode) {
			const mm = new ResumableMultiRegex();
			mode.contains.forEach((term) => mm.addRule(term.begin, {
				rule: term,
				type: "begin"
			}));
			if (mode.terminatorEnd) {
				mm.addRule(mode.terminatorEnd, { type: "end" });
			}
			if (mode.illegal) {
				mm.addRule(mode.illegal, { type: "illegal" });
			}
			return mm;
		}
		/** skip vs abort vs ignore
		*
		* @skip   - The mode is still entered and exited normally (and contains rules apply),
		*           but all content is held and added to the parent buffer rather than being
		*           output when the mode ends.  Mostly used with `sublanguage` to build up
		*           a single large buffer than can be parsed by sublanguage.
		*
		*             - The mode begin ands ends normally.
		*             - Content matched is added to the parent mode buffer.
		*             - The parser cursor is moved forward normally.
		*
		* @abort  - A hack placeholder until we have ignore.  Aborts the mode (as if it
		*           never matched) but DOES NOT continue to match subsequent `contains`
		*           modes.  Abort is bad/suboptimal because it can result in modes
		*           farther down not getting applied because an earlier rule eats the
		*           content but then aborts.
		*
		*             - The mode does not begin.
		*             - Content matched by `begin` is added to the mode buffer.
		*             - The parser cursor is moved forward accordingly.
		*
		* @ignore - Ignores the mode (as if it never matched) and continues to match any
		*           subsequent `contains` modes.  Ignore isn't technically possible with
		*           the current parser implementation.
		*
		*             - The mode does not begin.
		*             - Content matched by `begin` is ignored.
		*             - The parser cursor is not moved forward.
		*/
		/**
		* Compiles an individual mode
		*
		* This can raise an error if the mode contains certain detectable known logic
		* issues.
		* @param {Mode} mode
		* @param {CompiledMode | null} [parent]
		* @returns {CompiledMode | never}
		*/
		function compileMode(mode, parent) {
			const cmode = mode;
			if (mode.isCompiled) return cmode;
			[
				scopeClassName$1,
				compileMatch$1,
				MultiClass$1,
				beforeMatchExt$1
			].forEach((ext) => ext(mode, parent));
			language.compilerExtensions.forEach((ext) => ext(mode, parent));
			mode.__beforeBegin = null;
			[
				beginKeywords$1,
				compileIllegal$1,
				compileRelevance$1
			].forEach((ext) => ext(mode, parent));
			mode.isCompiled = true;
			let keywordPattern = null;
			if (typeof mode.keywords === "object" && mode.keywords.$pattern) {
				mode.keywords = Object.assign({}, mode.keywords);
				keywordPattern = mode.keywords.$pattern;
				delete mode.keywords.$pattern;
			}
			keywordPattern = keywordPattern || /\w+/;
			if (mode.keywords) {
				mode.keywords = compileKeywords$1(mode.keywords, language.case_insensitive);
			}
			cmode.keywordPatternRe = langRe(keywordPattern, true);
			if (parent) {
				if (!mode.begin) mode.begin = /\B|\b/;
				cmode.beginRe = langRe(cmode.begin);
				if (!mode.end && !mode.endsWithParent) mode.end = /\B|\b/;
				if (mode.end) cmode.endRe = langRe(cmode.end);
				cmode.terminatorEnd = source$3(cmode.end) || "";
				if (mode.endsWithParent && parent.terminatorEnd) {
					cmode.terminatorEnd += (mode.end ? "|" : "") + parent.terminatorEnd;
				}
			}
			if (mode.illegal) cmode.illegalRe = langRe(
				/** @type {RegExp | string} */
				mode.illegal
			);
			if (!mode.contains) mode.contains = [];
			mode.contains = [].concat(...mode.contains.map(function(c$7) {
				return expandOrCloneMode$1(c$7 === "self" ? mode : c$7);
			}));
			mode.contains.forEach(function(c$7) {
				compileMode(
					/** @type Mode */
					c$7,
					cmode
				);
			});
			if (mode.starts) {
				compileMode(mode.starts, parent);
			}
			cmode.matcher = buildModeRegex(cmode);
			return cmode;
		}
		if (!language.compilerExtensions) language.compilerExtensions = [];
		if (language.contains && language.contains.includes("self")) {
			throw new Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.");
		}
		language.classNameAliases = inherit$1$1(language.classNameAliases || {});
		return compileMode(
			/** @type Mode */
			language
		);
	}
	/**
	* Determines if a mode has a dependency on it's parent or not
	*
	* If a mode does have a parent dependency then often we need to clone it if
	* it's used in multiple places so that each copy points to the correct parent,
	* where-as modes without a parent can often safely be re-used at the bottom of
	* a mode chain.
	*
	* @param {Mode | null} mode
	* @returns {boolean} - is there a dependency on the parent?
	* */
	function dependencyOnParent$1(mode) {
		if (!mode) return false;
		return mode.endsWithParent || dependencyOnParent$1(mode.starts);
	}
	/**
	* Expands a mode or clones it if necessary
	*
	* This is necessary for modes with parental dependenceis (see notes on
	* `dependencyOnParent`) and for nodes that have `variants` - which must then be
	* exploded into their own individual modes at compile time.
	*
	* @param {Mode} mode
	* @returns {Mode | Mode[]}
	* */
	function expandOrCloneMode$1(mode) {
		if (mode.variants && !mode.cachedVariants) {
			mode.cachedVariants = mode.variants.map(function(variant) {
				return inherit$1$1(mode, { variants: null }, variant);
			});
		}
		if (mode.cachedVariants) {
			return mode.cachedVariants;
		}
		if (dependencyOnParent$1(mode)) {
			return inherit$1$1(mode, { starts: mode.starts ? inherit$1$1(mode.starts) : null });
		}
		if (Object.isFrozen(mode)) {
			return inherit$1$1(mode);
		}
		return mode;
	}
	var version$1 = "11.11.1";
	var HTMLInjectionError$1 = class extends Error {
		constructor(reason, html) {
			super(reason);
			this.name = "HTMLInjectionError";
			this.html = html;
		}
	};
	/**
	@typedef {import('highlight.js').Mode} Mode
	@typedef {import('highlight.js').CompiledMode} CompiledMode
	@typedef {import('highlight.js').CompiledScope} CompiledScope
	@typedef {import('highlight.js').Language} Language
	@typedef {import('highlight.js').HLJSApi} HLJSApi
	@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin
	@typedef {import('highlight.js').PluginEvent} PluginEvent
	@typedef {import('highlight.js').HLJSOptions} HLJSOptions
	@typedef {import('highlight.js').LanguageFn} LanguageFn
	@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement
	@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext
	@typedef {import('highlight.js/private').MatchType} MatchType
	@typedef {import('highlight.js/private').KeywordData} KeywordData
	@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch
	@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError
	@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult
	@typedef {import('highlight.js').HighlightOptions} HighlightOptions
	@typedef {import('highlight.js').HighlightResult} HighlightResult
	*/
	const escape$3 = escapeHTML$2;
	const inherit$2 = inherit$1$1;
	const NO_MATCH$1 = Symbol("nomatch");
	const MAX_KEYWORD_HITS$1 = 7;
	/**
	* @param {any} hljs - object that is extended (legacy)
	* @returns {HLJSApi}
	*/
	const HLJS$1 = function(hljs$1) {
		/** @type {Record<string, Language>} */
		const languages = Object.create(null);
		/** @type {Record<string, string>} */
		const aliases = Object.create(null);
		/** @type {HLJSPlugin[]} */
		const plugins = [];
		let SAFE_MODE = true;
		const LANGUAGE_NOT_FOUND = "Could not find the language '{}', did you forget to load/include a language module?";
		/** @type {Language} */
		const PLAINTEXT_LANGUAGE = {
			disableAutodetect: true,
			name: "Plain text",
			contains: []
		};
		/** @type HLJSOptions */
		let options = {
			ignoreUnescapedHTML: false,
			throwUnescapedHTML: false,
			noHighlightRe: /^(no-?highlight)$/i,
			languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i,
			classPrefix: "hljs-",
			cssSelector: "pre code",
			languages: null,
			__emitter: TokenTreeEmitter$1
		};
		/**
		* Tests a language name to see if highlighting should be skipped
		* @param {string} languageName
		*/
		function shouldNotHighlight(languageName) {
			return options.noHighlightRe.test(languageName);
		}
		/**
		* @param {HighlightedHTMLElement} block - the HTML element to determine language for
		*/
		function blockLanguage(block) {
			let classes = block.className + " ";
			classes += block.parentNode ? block.parentNode.className : "";
			const match = options.languageDetectRe.exec(classes);
			if (match) {
				const language = getLanguage(match[1]);
				if (!language) {
					warn$1(LANGUAGE_NOT_FOUND.replace("{}", match[1]));
					warn$1("Falling back to no-highlight mode for this block.", block);
				}
				return language ? match[1] : "no-highlight";
			}
			return classes.split(/\s+/).find((_class) => shouldNotHighlight(_class) || getLanguage(_class));
		}
		/**
		* Core highlighting function.
		*
		* OLD API
		* highlight(lang, code, ignoreIllegals, continuation)
		*
		* NEW API
		* highlight(code, {lang, ignoreIllegals})
		*
		* @param {string} codeOrLanguageName - the language to use for highlighting
		* @param {string | HighlightOptions} optionsOrCode - the code to highlight
		* @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail
		*
		* @returns {HighlightResult} Result - an object that represents the result
		* @property {string} language - the language name
		* @property {number} relevance - the relevance score
		* @property {string} value - the highlighted HTML code
		* @property {string} code - the original raw code
		* @property {CompiledMode} top - top of the current mode stack
		* @property {boolean} illegal - indicates whether any illegal matches were found
		*/
		function highlight$2(codeOrLanguageName, optionsOrCode, ignoreIllegals) {
			let code = "";
			let languageName = "";
			if (typeof optionsOrCode === "object") {
				code = codeOrLanguageName;
				ignoreIllegals = optionsOrCode.ignoreIllegals;
				languageName = optionsOrCode.language;
			} else {
				deprecated$1("10.7.0", "highlight(lang, code, ...args) has been deprecated.");
				deprecated$1("10.7.0", "Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277");
				languageName = codeOrLanguageName;
				code = optionsOrCode;
			}
			if (ignoreIllegals === undefined) {
				ignoreIllegals = true;
			}
			/** @type {BeforeHighlightContext} */
			const context = {
				code,
				language: languageName
			};
			fire("before:highlight", context);
			const result = context.result ? context.result : _highlight(context.language, context.code, ignoreIllegals);
			result.code = context.code;
			fire("after:highlight", result);
			return result;
		}
		/**
		* private highlight that's used internally and does not fire callbacks
		*
		* @param {string} languageName - the language to use for highlighting
		* @param {string} codeToHighlight - the code to highlight
		* @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail
		* @param {CompiledMode?} [continuation] - current continuation mode, if any
		* @returns {HighlightResult} - result of the highlight operation
		*/
		function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {
			const keywordHits = Object.create(null);
			/**
			* Return keyword data if a match is a keyword
			* @param {CompiledMode} mode - current mode
			* @param {string} matchText - the textual match
			* @returns {KeywordData | false}
			*/
			function keywordData(mode, matchText) {
				return mode.keywords[matchText];
			}
			function processKeywords() {
				if (!top.keywords) {
					emitter.addText(modeBuffer);
					return;
				}
				let lastIndex = 0;
				top.keywordPatternRe.lastIndex = 0;
				let match = top.keywordPatternRe.exec(modeBuffer);
				let buf = "";
				while (match) {
					buf += modeBuffer.substring(lastIndex, match.index);
					const word = language.case_insensitive ? match[0].toLowerCase() : match[0];
					const data = keywordData(top, word);
					if (data) {
						const [kind, keywordRelevance] = data;
						emitter.addText(buf);
						buf = "";
						keywordHits[word] = (keywordHits[word] || 0) + 1;
						if (keywordHits[word] <= MAX_KEYWORD_HITS$1) relevance += keywordRelevance;
						if (kind.startsWith("_")) {
							buf += match[0];
						} else {
							const cssClass = language.classNameAliases[kind] || kind;
							emitKeyword(match[0], cssClass);
						}
					} else {
						buf += match[0];
					}
					lastIndex = top.keywordPatternRe.lastIndex;
					match = top.keywordPatternRe.exec(modeBuffer);
				}
				buf += modeBuffer.substring(lastIndex);
				emitter.addText(buf);
			}
			function processSubLanguage() {
				if (modeBuffer === "") return;
				/** @type HighlightResult */
				let result$1 = null;
				if (typeof top.subLanguage === "string") {
					if (!languages[top.subLanguage]) {
						emitter.addText(modeBuffer);
						return;
					}
					result$1 = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);
					continuations[top.subLanguage] = result$1._top;
				} else {
					result$1 = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);
				}
				if (top.relevance > 0) {
					relevance += result$1.relevance;
				}
				emitter.__addSublanguage(result$1._emitter, result$1.language);
			}
			function processBuffer() {
				if (top.subLanguage != null) {
					processSubLanguage();
				} else {
					processKeywords();
				}
				modeBuffer = "";
			}
			/**
			* @param {string} text
			* @param {string} scope
			*/
			function emitKeyword(keyword, scope) {
				if (keyword === "") return;
				emitter.startScope(scope);
				emitter.addText(keyword);
				emitter.endScope();
			}
			/**
			* @param {CompiledScope} scope
			* @param {RegExpMatchArray} match
			*/
			function emitMultiClass(scope, match) {
				let i$7 = 1;
				const max = match.length - 1;
				while (i$7 <= max) {
					if (!scope._emit[i$7]) {
						i$7++;
						continue;
					}
					const klass = language.classNameAliases[scope[i$7]] || scope[i$7];
					const text$2 = match[i$7];
					if (klass) {
						emitKeyword(text$2, klass);
					} else {
						modeBuffer = text$2;
						processKeywords();
						modeBuffer = "";
					}
					i$7++;
				}
			}
			/**
			* @param {CompiledMode} mode - new mode to start
			* @param {RegExpMatchArray} match
			*/
			function startNewMode(mode, match) {
				if (mode.scope && typeof mode.scope === "string") {
					emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);
				}
				if (mode.beginScope) {
					if (mode.beginScope._wrap) {
						emitKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);
						modeBuffer = "";
					} else if (mode.beginScope._multi) {
						emitMultiClass(mode.beginScope, match);
						modeBuffer = "";
					}
				}
				top = Object.create(mode, { parent: { value: top } });
				return top;
			}
			/**
			* @param {CompiledMode } mode - the mode to potentially end
			* @param {RegExpMatchArray} match - the latest match
			* @param {string} matchPlusRemainder - match plus remainder of content
			* @returns {CompiledMode | void} - the next mode, or if void continue on in current mode
			*/
			function endOfMode(mode, match, matchPlusRemainder) {
				let matched = startsWith$1(mode.endRe, matchPlusRemainder);
				if (matched) {
					if (mode["on:end"]) {
						const resp = new Response$2(mode);
						mode["on:end"](match, resp);
						if (resp.isMatchIgnored) matched = false;
					}
					if (matched) {
						while (mode.endsParent && mode.parent) {
							mode = mode.parent;
						}
						return mode;
					}
				}
				if (mode.endsWithParent) {
					return endOfMode(mode.parent, match, matchPlusRemainder);
				}
			}
			/**
			* Handle matching but then ignoring a sequence of text
			*
			* @param {string} lexeme - string containing full match text
			*/
			function doIgnore(lexeme) {
				if (top.matcher.regexIndex === 0) {
					modeBuffer += lexeme[0];
					return 1;
				} else {
					resumeScanAtSamePosition = true;
					return 0;
				}
			}
			/**
			* Handle the start of a new potential mode match
			*
			* @param {EnhancedMatch} match - the current match
			* @returns {number} how far to advance the parse cursor
			*/
			function doBeginMatch(match) {
				const lexeme = match[0];
				const newMode = match.rule;
				const resp = new Response$2(newMode);
				const beforeCallbacks = [newMode.__beforeBegin, newMode["on:begin"]];
				for (const cb of beforeCallbacks) {
					if (!cb) continue;
					cb(match, resp);
					if (resp.isMatchIgnored) return doIgnore(lexeme);
				}
				if (newMode.skip) {
					modeBuffer += lexeme;
				} else {
					if (newMode.excludeBegin) {
						modeBuffer += lexeme;
					}
					processBuffer();
					if (!newMode.returnBegin && !newMode.excludeBegin) {
						modeBuffer = lexeme;
					}
				}
				startNewMode(newMode, match);
				return newMode.returnBegin ? 0 : lexeme.length;
			}
			/**
			* Handle the potential end of mode
			*
			* @param {RegExpMatchArray} match - the current match
			*/
			function doEndMatch(match) {
				const lexeme = match[0];
				const matchPlusRemainder = codeToHighlight.substring(match.index);
				const endMode = endOfMode(top, match, matchPlusRemainder);
				if (!endMode) {
					return NO_MATCH$1;
				}
				const origin = top;
				if (top.endScope && top.endScope._wrap) {
					processBuffer();
					emitKeyword(lexeme, top.endScope._wrap);
				} else if (top.endScope && top.endScope._multi) {
					processBuffer();
					emitMultiClass(top.endScope, match);
				} else if (origin.skip) {
					modeBuffer += lexeme;
				} else {
					if (!(origin.returnEnd || origin.excludeEnd)) {
						modeBuffer += lexeme;
					}
					processBuffer();
					if (origin.excludeEnd) {
						modeBuffer = lexeme;
					}
				}
				do {
					if (top.scope) {
						emitter.closeNode();
					}
					if (!top.skip && !top.subLanguage) {
						relevance += top.relevance;
					}
					top = top.parent;
				} while (top !== endMode.parent);
				if (endMode.starts) {
					startNewMode(endMode.starts, match);
				}
				return origin.returnEnd ? 0 : lexeme.length;
			}
			function processContinuations() {
				const list = [];
				for (let current = top; current !== language; current = current.parent) {
					if (current.scope) {
						list.unshift(current.scope);
					}
				}
				list.forEach((item) => emitter.openNode(item));
			}
			/** @type {{type?: MatchType, index?: number, rule?: Mode}}} */
			let lastMatch = {};
			/**
			*  Process an individual match
			*
			* @param {string} textBeforeMatch - text preceding the match (since the last match)
			* @param {EnhancedMatch} [match] - the match itself
			*/
			function processLexeme(textBeforeMatch, match) {
				const lexeme = match && match[0];
				modeBuffer += textBeforeMatch;
				if (lexeme == null) {
					processBuffer();
					return 0;
				}
				if (lastMatch.type === "begin" && match.type === "end" && lastMatch.index === match.index && lexeme === "") {
					modeBuffer += codeToHighlight.slice(match.index, match.index + 1);
					if (!SAFE_MODE) {
						/** @type {AnnotatedError} */
						const err = new Error(`0 width match regex (${languageName})`);
						err.languageName = languageName;
						err.badRule = lastMatch.rule;
						throw err;
					}
					return 1;
				}
				lastMatch = match;
				if (match.type === "begin") {
					return doBeginMatch(match);
				} else if (match.type === "illegal" && !ignoreIllegals) {
					/** @type {AnnotatedError} */
					const err = new Error("Illegal lexeme \"" + lexeme + "\" for mode \"" + (top.scope || "<unnamed>") + "\"");
					err.mode = top;
					throw err;
				} else if (match.type === "end") {
					const processed = doEndMatch(match);
					if (processed !== NO_MATCH$1) {
						return processed;
					}
				}
				if (match.type === "illegal" && lexeme === "") {
					modeBuffer += "\n";
					return 1;
				}
				if (iterations > 1e5 && iterations > match.index * 3) {
					const err = new Error("potential infinite loop, way more iterations than matches");
					throw err;
				}
				modeBuffer += lexeme;
				return lexeme.length;
			}
			const language = getLanguage(languageName);
			if (!language) {
				error$1(LANGUAGE_NOT_FOUND.replace("{}", languageName));
				throw new Error("Unknown language: \"" + languageName + "\"");
			}
			const md = compileLanguage$1(language);
			let result = "";
			/** @type {CompiledMode} */
			let top = continuation || md;
			/** @type Record<string,CompiledMode> */
			const continuations = {};
			const emitter = new options.__emitter(options);
			processContinuations();
			let modeBuffer = "";
			let relevance = 0;
			let index = 0;
			let iterations = 0;
			let resumeScanAtSamePosition = false;
			try {
				if (!language.__emitTokens) {
					top.matcher.considerAll();
					for (;;) {
						iterations++;
						if (resumeScanAtSamePosition) {
							resumeScanAtSamePosition = false;
						} else {
							top.matcher.considerAll();
						}
						top.matcher.lastIndex = index;
						const match = top.matcher.exec(codeToHighlight);
						if (!match) break;
						const beforeMatch = codeToHighlight.substring(index, match.index);
						const processedCount = processLexeme(beforeMatch, match);
						index = match.index + processedCount;
					}
					processLexeme(codeToHighlight.substring(index));
				} else {
					language.__emitTokens(codeToHighlight, emitter);
				}
				emitter.finalize();
				result = emitter.toHTML();
				return {
					language: languageName,
					value: result,
					relevance,
					illegal: false,
					_emitter: emitter,
					_top: top
				};
			} catch (err) {
				if (err.message && err.message.includes("Illegal")) {
					return {
						language: languageName,
						value: escape$3(codeToHighlight),
						illegal: true,
						relevance: 0,
						_illegalBy: {
							message: err.message,
							index,
							context: codeToHighlight.slice(index - 100, index + 100),
							mode: err.mode,
							resultSoFar: result
						},
						_emitter: emitter
					};
				} else if (SAFE_MODE) {
					return {
						language: languageName,
						value: escape$3(codeToHighlight),
						illegal: false,
						relevance: 0,
						errorRaised: err,
						_emitter: emitter,
						_top: top
					};
				} else {
					throw err;
				}
			}
		}
		/**
		* returns a valid highlight result, without actually doing any actual work,
		* auto highlight starts with this and it's possible for small snippets that
		* auto-detection may not find a better match
		* @param {string} code
		* @returns {HighlightResult}
		*/
		function justTextHighlightResult(code) {
			const result = {
				value: escape$3(code),
				illegal: false,
				relevance: 0,
				_top: PLAINTEXT_LANGUAGE,
				_emitter: new options.__emitter(options)
			};
			result._emitter.addText(code);
			return result;
		}
		/**
		Highlighting with language detection. Accepts a string with the code to
		highlight. Returns an object with the following properties:
		
		- language (detected language)
		- relevance (int)
		- value (an HTML string with highlighting markup)
		- secondBest (object with the same structure for second-best heuristically
		detected language, may be absent)
		
		@param {string} code
		@param {Array<string>} [languageSubset]
		@returns {AutoHighlightResult}
		*/
		function highlightAuto(code, languageSubset) {
			languageSubset = languageSubset || options.languages || Object.keys(languages);
			const plaintext$1 = justTextHighlightResult(code);
			const results = languageSubset.filter(getLanguage).filter(autoDetection).map((name) => _highlight(name, code, false));
			results.unshift(plaintext$1);
			const sorted = results.sort((a$2, b$3) => {
				if (a$2.relevance !== b$3.relevance) return b$3.relevance - a$2.relevance;
				if (a$2.language && b$3.language) {
					if (getLanguage(a$2.language).supersetOf === b$3.language) {
						return 1;
					} else if (getLanguage(b$3.language).supersetOf === a$2.language) {
						return -1;
					}
				}
				return 0;
			});
			const [best, secondBest] = sorted;
			/** @type {AutoHighlightResult} */
			const result = best;
			result.secondBest = secondBest;
			return result;
		}
		/**
		* Builds new class name for block given the language name
		*
		* @param {HTMLElement} element
		* @param {string} [currentLang]
		* @param {string} [resultLang]
		*/
		function updateClassName(element, currentLang, resultLang) {
			const language = currentLang && aliases[currentLang] || resultLang;
			element.classList.add("hljs");
			element.classList.add(`language-${language}`);
		}
		/**
		* Applies highlighting to a DOM node containing code.
		*
		* @param {HighlightedHTMLElement} element - the HTML element to highlight
		*/
		function highlightElement(element) {
			/** @type HTMLElement */
			let node = null;
			const language = blockLanguage(element);
			if (shouldNotHighlight(language)) return;
			fire("before:highlightElement", {
				el: element,
				language
			});
			if (element.dataset.highlighted) {
				console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.", element);
				return;
			}
			if (element.children.length > 0) {
				if (!options.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(element);
				}
				if (options.throwUnescapedHTML) {
					const err = new HTMLInjectionError$1("One of your code blocks includes unescaped HTML.", element.innerHTML);
					throw err;
				}
			}
			node = element;
			const text$2 = node.textContent;
			const result = language ? highlight$2(text$2, {
				language,
				ignoreIllegals: true
			}) : highlightAuto(text$2);
			element.innerHTML = result.value;
			element.dataset.highlighted = "yes";
			updateClassName(element, language, result.language);
			element.result = {
				language: result.language,
				re: result.relevance,
				relevance: result.relevance
			};
			if (result.secondBest) {
				element.secondBest = {
					language: result.secondBest.language,
					relevance: result.secondBest.relevance
				};
			}
			fire("after:highlightElement", {
				el: element,
				result,
				text: text$2
			});
		}
		/**
		* Updates highlight.js global options with the passed options
		*
		* @param {Partial<HLJSOptions>} userOptions
		*/
		function configure(userOptions) {
			options = inherit$2(options, userOptions);
		}
		const initHighlighting = () => {
			highlightAll();
			deprecated$1("10.6.0", "initHighlighting() deprecated.  Use highlightAll() now.");
		};
		function initHighlightingOnLoad() {
			highlightAll();
			deprecated$1("10.6.0", "initHighlightingOnLoad() deprecated.  Use highlightAll() now.");
		}
		let wantsHighlight = false;
		/**
		* auto-highlights all pre>code elements on the page
		*/
		function highlightAll() {
			function boot() {
				highlightAll();
			}
			if (document.readyState === "loading") {
				if (!wantsHighlight) {
					window.addEventListener("DOMContentLoaded", boot, false);
				}
				wantsHighlight = true;
				return;
			}
			const blocks = document.querySelectorAll(options.cssSelector);
			blocks.forEach(highlightElement);
		}
		/**
		* Register a language grammar module
		*
		* @param {string} languageName
		* @param {LanguageFn} languageDefinition
		*/
		function registerLanguage(languageName, languageDefinition) {
			let lang = null;
			try {
				lang = languageDefinition(hljs$1);
			} catch (error$1$1) {
				error$1("Language definition for '{}' could not be registered.".replace("{}", languageName));
				if (!SAFE_MODE) {
					throw error$1$1;
				} else {
					error$1(error$1$1);
				}
				lang = PLAINTEXT_LANGUAGE;
			}
			if (!lang.name) lang.name = languageName;
			languages[languageName] = lang;
			lang.rawDefinition = languageDefinition.bind(null, hljs$1);
			if (lang.aliases) {
				registerAliases(lang.aliases, { languageName });
			}
		}
		/**
		* Remove a language grammar module
		*
		* @param {string} languageName
		*/
		function unregisterLanguage(languageName) {
			delete languages[languageName];
			for (const alias of Object.keys(aliases)) {
				if (aliases[alias] === languageName) {
					delete aliases[alias];
				}
			}
		}
		/**
		* @returns {string[]} List of language internal names
		*/
		function listLanguages() {
			return Object.keys(languages);
		}
		/**
		* @param {string} name - name of the language to retrieve
		* @returns {Language | undefined}
		*/
		function getLanguage(name) {
			name = (name || "").toLowerCase();
			return languages[name] || languages[aliases[name]];
		}
		/**
		*
		* @param {string|string[]} aliasList - single alias or list of aliases
		* @param {{languageName: string}} opts
		*/
		function registerAliases(aliasList, { languageName }) {
			if (typeof aliasList === "string") {
				aliasList = [aliasList];
			}
			aliasList.forEach((alias) => {
				aliases[alias.toLowerCase()] = languageName;
			});
		}
		/**
		* Determines if a given language has auto-detection enabled
		* @param {string} name - name of the language
		*/
		function autoDetection(name) {
			const lang = getLanguage(name);
			return lang && !lang.disableAutodetect;
		}
		/**
		* Upgrades the old highlightBlock plugins to the new
		* highlightElement API
		* @param {HLJSPlugin} plugin
		*/
		function upgradePluginAPI(plugin) {
			if (plugin["before:highlightBlock"] && !plugin["before:highlightElement"]) {
				plugin["before:highlightElement"] = (data) => {
					plugin["before:highlightBlock"](Object.assign({ block: data.el }, data));
				};
			}
			if (plugin["after:highlightBlock"] && !plugin["after:highlightElement"]) {
				plugin["after:highlightElement"] = (data) => {
					plugin["after:highlightBlock"](Object.assign({ block: data.el }, data));
				};
			}
		}
		/**
		* @param {HLJSPlugin} plugin
		*/
		function addPlugin(plugin) {
			upgradePluginAPI(plugin);
			plugins.push(plugin);
		}
		/**
		* @param {HLJSPlugin} plugin
		*/
		function removePlugin(plugin) {
			const index = plugins.indexOf(plugin);
			if (index !== -1) {
				plugins.splice(index, 1);
			}
		}
		/**
		*
		* @param {PluginEvent} event
		* @param {any} args
		*/
		function fire(event, args) {
			const cb = event;
			plugins.forEach(function(plugin) {
				if (plugin[cb]) {
					plugin[cb](args);
				}
			});
		}
		/**
		* DEPRECATED
		* @param {HighlightedHTMLElement} el
		*/
		function deprecateHighlightBlock(el) {
			deprecated$1("10.7.0", "highlightBlock will be removed entirely in v12.0");
			deprecated$1("10.7.0", "Please use highlightElement now.");
			return highlightElement(el);
		}
		Object.assign(hljs$1, {
			highlight: highlight$2,
			highlightAuto,
			highlightAll,
			highlightElement,
			highlightBlock: deprecateHighlightBlock,
			configure,
			initHighlighting,
			initHighlightingOnLoad,
			registerLanguage,
			unregisterLanguage,
			listLanguages,
			getLanguage,
			registerAliases,
			autoDetection,
			inherit: inherit$2,
			addPlugin,
			removePlugin
		});
		hljs$1.debugMode = function() {
			SAFE_MODE = false;
		};
		hljs$1.safeMode = function() {
			SAFE_MODE = true;
		};
		hljs$1.versionString = version$1;
		hljs$1.regex = {
			concat: concat$3,
			lookahead: lookahead$3,
			either: either$3,
			optional: optional$1,
			anyNumberOfTimes: anyNumberOfTimes$1
		};
		for (const key in MODES$6) {
			if (typeof MODES$6[key] === "object") {
				deepFreeze$1(MODES$6[key]);
			}
		}
		Object.assign(hljs$1, MODES$6);
		return hljs$1;
	};
	const highlight$1 = HLJS$1({});
	highlight$1.newInstance = () => HLJS$1({});
	module.exports = highlight$1;
	highlight$1.HighlightJS = highlight$1;
	highlight$1.default = highlight$1;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/1c.js
var require__1c = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function _1c(hljs$1) {
		const UNDERSCORE_IDENT_RE$2 = "[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+";
		const v7_keywords = "далее ";
		const v8_keywords = "возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли " + "конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ";
		const KEYWORD = v7_keywords + v8_keywords;
		const v7_meta_keywords = "загрузитьизфайла ";
		const v8_meta_keywords = "вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер " + "наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед " + "после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ";
		const METAKEYWORD = v7_meta_keywords + v8_meta_keywords;
		const v7_system_constants = "разделительстраниц разделительстрок символтабуляции ";
		const v7_global_context_methods = "ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов " + "датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя " + "кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца " + "коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид " + "назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца " + "начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов " + "основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута " + "получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта " + "префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына " + "рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента " + "счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон ";
		const v8_global_context_methods = "acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока " + "xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение " + "ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации " + "выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода " + "деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы " + "загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации " + "заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию " + "значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла " + "изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке " + "каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку " + "кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты " + "конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы " + "копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти " + "найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы " + "началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя " + "начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты " + "начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов " + "начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя " + "начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога " + "начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией " + "начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы " + "номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения " + "обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении " + "отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения " + "открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально " + "отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа " + "перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту " + "подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения " + "подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки " + "показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение " + "показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя " + "получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса " + "получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора " + "получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса " + "получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации " + "получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла " + "получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации " + "получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления " + "получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу " + "получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы " + "получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет " + "получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима " + "получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения " + "получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути " + "получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы " + "получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю " + "получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных " + "получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию " + "получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище " + "поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода " + "представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение " + "прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока " + "рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных " + "раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени " + "смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить " + "состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс " + "строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений " + "стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах " + "текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации " + "текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы " + "удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим " + "установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту " + "установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных " + "установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации " + "установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения " + "установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования " + "установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима " + "установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим " + "установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией " + "установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы " + "установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса " + "формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища ";
		const v8_global_context_property = "wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы " + "внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль " + "документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты " + "историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений " + "отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик " + "планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок " + "рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений " + "регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа " + "средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек " + "хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков " + "хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ";
		const BUILTIN = v7_system_constants + v7_global_context_methods + v8_global_context_methods + v8_global_context_property;
		const v8_system_sets_of_values = "webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля ";
		const v8_system_enums_interface = "автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий " + "анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы " + "вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы " + "виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя " + "видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение " + "горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы " + "группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания " + "интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки " + "используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы " + "источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева " + "начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы " + "ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме " + "отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы " + "отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы " + "отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы " + "отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска " + "отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования " + "отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта " + "отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы " + "поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы " + "поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы " + "положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы " + "положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы " + "положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском " + "положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы " + "размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта " + "режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты " + "режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения " + "режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра " + "режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения " + "режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы " + "режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки " + "режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание " + "сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы " + "способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление " + "статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы " + "типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы " + "типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления " + "типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы " + "типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы " + "типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений " + "типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы " + "типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы " + "типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы " + "факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени " + "форматкартинки ширинаподчиненныхэлементовформы ";
		const v8_system_enums_objects_properties = "виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса " + "использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения " + "использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента ";
		const v8_system_enums_exchange_plans = "авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных ";
		const v8_system_enums_tabular_document = "использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы " + "положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента " + "способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента " + "типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента " + "типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы " + "типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента " + "типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц ";
		const v8_system_enums_sheduler = "отображениевремениэлементовпланировщика ";
		const v8_system_enums_formatted_document = "типфайлаформатированногодокумента ";
		const v8_system_enums_query = "обходрезультатазапроса типзаписизапроса ";
		const v8_system_enums_report_builder = "видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов ";
		const v8_system_enums_files = "доступкфайлу режимдиалогавыборафайла режимоткрытияфайла ";
		const v8_system_enums_query_builder = "типизмеренияпостроителязапроса ";
		const v8_system_enums_data_analysis = "видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных " + "типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений " + "типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций " + "типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных " + "типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных " + "типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений ";
		const v8_system_enums_xml_json_xs_dom_xdto_ws = "wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto " + "действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs " + "исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs " + "методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs " + "ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson " + "типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs " + "форматдатыjson экранированиесимволовjson ";
		const v8_system_enums_data_composition_system = "видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных " + "расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных " + "расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных " + "расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных " + "типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных " + "типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных " + "типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных " + "расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных " + "режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных " + "режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных " + "вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных " + "использованиеусловногооформлениякомпоновкиданных ";
		const v8_system_enums_email = "важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения " + "способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты " + "статусразборапочтовогосообщения ";
		const v8_system_enums_logbook = "режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации ";
		const v8_system_enums_cryptography = "расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии " + "типхранилищасертификатовкриптографии ";
		const v8_system_enums_zip = "кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip " + "режимсохраненияпутейzip уровеньсжатияzip ";
		const v8_system_enums_other = "звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных " + "сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp ";
		const v8_system_enums_request_schema = "направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса " + "типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса ";
		const v8_system_enums_properties_of_metadata_objects = "httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления " + "видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование " + "использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения " + "использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита " + "назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных " + "оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи " + "основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении " + "периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений " + "повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение " + "разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита " + "режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности " + "режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов " + "режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса " + "режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов " + "сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования " + "типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса " + "типномерадокумента типномеразадачи типформы удалениедвижений ";
		const v8_system_enums_differents = "важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения " + "вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки " + "видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак " + "использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога " + "кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных " + "отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения " + "режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных " + "способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter " + "типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты";
		const CLASS = v8_system_sets_of_values + v8_system_enums_interface + v8_system_enums_objects_properties + v8_system_enums_exchange_plans + v8_system_enums_tabular_document + v8_system_enums_sheduler + v8_system_enums_formatted_document + v8_system_enums_query + v8_system_enums_report_builder + v8_system_enums_files + v8_system_enums_query_builder + v8_system_enums_data_analysis + v8_system_enums_xml_json_xs_dom_xdto_ws + v8_system_enums_data_composition_system + v8_system_enums_email + v8_system_enums_logbook + v8_system_enums_cryptography + v8_system_enums_zip + v8_system_enums_other + v8_system_enums_request_schema + v8_system_enums_properties_of_metadata_objects + v8_system_enums_differents;
		const v8_shared_object = "comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs " + "блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема " + "географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма " + "диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания " + "диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление " + "записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom " + "запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта " + "интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs " + "использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных " + "итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла " + "компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных " + "конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных " + "макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson " + "обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs " + "объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации " + "описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных " + "описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs " + "определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom " + "определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных " + "параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных " + "полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных " + "построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml " + "процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент " + "процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml " + "результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto " + "сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows " + "сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш " + "сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент " + "текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток " + "фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs " + "фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs " + "фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs " + "фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент " + "фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла " + "чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных ";
		const v8_universal_collection = "comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура " + "фиксированноесоответствие фиксированныймассив ";
		const TYPE = v8_shared_object + v8_universal_collection;
		const LITERAL = "null истина ложь неопределено";
		const NUMBERS = hljs$1.inherit(hljs$1.NUMBER_MODE);
		const STRINGS = {
			className: "string",
			begin: "\"|\\|",
			end: "\"|$",
			contains: [{ begin: "\"\"" }]
		};
		const DATE = {
			begin: "'",
			end: "'",
			excludeBegin: true,
			excludeEnd: true,
			contains: [{
				className: "number",
				begin: "\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}"
			}]
		};
		const PUNCTUATION = {
			match: /[;()+\-:=,]/,
			className: "punctuation",
			relevance: 0
		};
		const COMMENTS = hljs$1.inherit(hljs$1.C_LINE_COMMENT_MODE);
		const META = {
			className: "meta",
			begin: "#|&",
			end: "$",
			keywords: {
				$pattern: UNDERSCORE_IDENT_RE$2,
				keyword: KEYWORD + METAKEYWORD
			},
			contains: [COMMENTS]
		};
		const SYMBOL = {
			className: "symbol",
			begin: "~",
			end: ";|:",
			excludeEnd: true
		};
		const FUNCTION = {
			className: "function",
			variants: [{
				begin: "процедура|функция",
				end: "\\)",
				keywords: "процедура функция"
			}, {
				begin: "конецпроцедуры|конецфункции",
				keywords: "конецпроцедуры конецфункции"
			}],
			contains: [{
				begin: "\\(",
				end: "\\)",
				endsParent: true,
				contains: [{
					className: "params",
					begin: UNDERSCORE_IDENT_RE$2,
					end: ",",
					excludeEnd: true,
					endsWithParent: true,
					keywords: {
						$pattern: UNDERSCORE_IDENT_RE$2,
						keyword: "знач",
						literal: LITERAL
					},
					contains: [
						NUMBERS,
						STRINGS,
						DATE
					]
				}, COMMENTS]
			}, hljs$1.inherit(hljs$1.TITLE_MODE, { begin: UNDERSCORE_IDENT_RE$2 })]
		};
		return {
			name: "1C:Enterprise",
			case_insensitive: true,
			keywords: {
				$pattern: UNDERSCORE_IDENT_RE$2,
				keyword: KEYWORD,
				built_in: BUILTIN,
				class: CLASS,
				type: TYPE,
				literal: LITERAL
			},
			contains: [
				META,
				FUNCTION,
				COMMENTS,
				SYMBOL,
				NUMBERS,
				STRINGS,
				DATE,
				PUNCTUATION
			]
		};
	}
	module.exports = _1c;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/abnf.js
var require_abnf = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function abnf(hljs$1) {
		const regex = hljs$1.regex;
		const IDENT = /^[a-zA-Z][a-zA-Z0-9-]*/;
		const KEYWORDS$6 = [
			"ALPHA",
			"BIT",
			"CHAR",
			"CR",
			"CRLF",
			"CTL",
			"DIGIT",
			"DQUOTE",
			"HEXDIG",
			"HTAB",
			"LF",
			"LWSP",
			"OCTET",
			"SP",
			"VCHAR",
			"WSP"
		];
		const COMMENT$2 = hljs$1.COMMENT(/;/, /$/);
		const TERMINAL_BINARY = {
			scope: "symbol",
			match: /%b[0-1]+(-[0-1]+|(\.[0-1]+)+)?/
		};
		const TERMINAL_DECIMAL = {
			scope: "symbol",
			match: /%d[0-9]+(-[0-9]+|(\.[0-9]+)+)?/
		};
		const TERMINAL_HEXADECIMAL = {
			scope: "symbol",
			match: /%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+)?/
		};
		const CASE_SENSITIVITY = {
			scope: "symbol",
			match: /%[si](?=".*")/
		};
		const RULE_DECLARATION = {
			scope: "attribute",
			match: regex.concat(IDENT, /(?=\s*=)/)
		};
		const ASSIGNMENT = {
			scope: "operator",
			match: /=\/?/
		};
		return {
			name: "Augmented Backus-Naur Form",
			illegal: /[!@#$^&',?+~`|:]/,
			keywords: KEYWORDS$6,
			contains: [
				ASSIGNMENT,
				RULE_DECLARATION,
				COMMENT$2,
				TERMINAL_BINARY,
				TERMINAL_DECIMAL,
				TERMINAL_HEXADECIMAL,
				CASE_SENSITIVITY,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.NUMBER_MODE
			]
		};
	}
	module.exports = abnf;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/accesslog.js
var require_accesslog = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function accesslog(hljs$1) {
		const regex = hljs$1.regex;
		const HTTP_VERBS = [
			"GET",
			"POST",
			"HEAD",
			"PUT",
			"DELETE",
			"CONNECT",
			"OPTIONS",
			"PATCH",
			"TRACE"
		];
		return {
			name: "Apache Access Log",
			contains: [
				{
					className: "number",
					begin: /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/,
					relevance: 5
				},
				{
					className: "number",
					begin: /\b\d+\b/,
					relevance: 0
				},
				{
					className: "string",
					begin: regex.concat(/"/, regex.either(...HTTP_VERBS)),
					end: /"/,
					keywords: HTTP_VERBS,
					illegal: /\n/,
					relevance: 5,
					contains: [{
						begin: /HTTP\/[12]\.\d'/,
						relevance: 5
					}]
				},
				{
					className: "string",
					begin: /\[\d[^\]\n]{8,}\]/,
					illegal: /\n/,
					relevance: 1
				},
				{
					className: "string",
					begin: /\[/,
					end: /\]/,
					illegal: /\n/,
					relevance: 0
				},
				{
					className: "string",
					begin: /"Mozilla\/\d\.\d \(/,
					end: /"/,
					illegal: /\n/,
					relevance: 3
				},
				{
					className: "string",
					begin: /"/,
					end: /"/,
					illegal: /\n/,
					relevance: 0
				}
			]
		};
	}
	module.exports = accesslog;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/actionscript.js
var require_actionscript = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function actionscript(hljs$1) {
		const regex = hljs$1.regex;
		const IDENT_RE$6 = /[a-zA-Z_$][a-zA-Z0-9_$]*/;
		const PKG_NAME_RE = regex.concat(IDENT_RE$6, regex.concat("(\\.", IDENT_RE$6, ")*"));
		const IDENT_FUNC_RETURN_TYPE_RE = /([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/;
		const AS3_REST_ARG_MODE = {
			className: "rest_arg",
			begin: /[.]{3}/,
			end: IDENT_RE$6,
			relevance: 10
		};
		const KEYWORDS$6 = [
			"as",
			"break",
			"case",
			"catch",
			"class",
			"const",
			"continue",
			"default",
			"delete",
			"do",
			"dynamic",
			"each",
			"else",
			"extends",
			"final",
			"finally",
			"for",
			"function",
			"get",
			"if",
			"implements",
			"import",
			"in",
			"include",
			"instanceof",
			"interface",
			"internal",
			"is",
			"namespace",
			"native",
			"new",
			"override",
			"package",
			"private",
			"protected",
			"public",
			"return",
			"set",
			"static",
			"super",
			"switch",
			"this",
			"throw",
			"try",
			"typeof",
			"use",
			"var",
			"void",
			"while",
			"with"
		];
		const LITERALS$6 = [
			"true",
			"false",
			"null",
			"undefined"
		];
		return {
			name: "ActionScript",
			aliases: ["as"],
			keywords: {
				keyword: KEYWORDS$6,
				literal: LITERALS$6
			},
			contains: [
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.C_NUMBER_MODE,
				{
					match: [
						/\bpackage/,
						/\s+/,
						PKG_NAME_RE
					],
					className: {
						1: "keyword",
						3: "title.class"
					}
				},
				{
					match: [
						/\b(?:class|interface|extends|implements)/,
						/\s+/,
						IDENT_RE$6
					],
					className: {
						1: "keyword",
						3: "title.class"
					}
				},
				{
					className: "meta",
					beginKeywords: "import include",
					end: /;/,
					keywords: { keyword: "import include" }
				},
				{
					beginKeywords: "function",
					end: /[{;]/,
					excludeEnd: true,
					illegal: /\S/,
					contains: [
						hljs$1.inherit(hljs$1.TITLE_MODE, { className: "title.function" }),
						{
							className: "params",
							begin: /\(/,
							end: /\)/,
							contains: [
								hljs$1.APOS_STRING_MODE,
								hljs$1.QUOTE_STRING_MODE,
								hljs$1.C_LINE_COMMENT_MODE,
								hljs$1.C_BLOCK_COMMENT_MODE,
								AS3_REST_ARG_MODE
							]
						},
						{ begin: regex.concat(/:\s*/, IDENT_FUNC_RETURN_TYPE_RE) }
					]
				},
				hljs$1.METHOD_GUARD
			],
			illegal: /#/
		};
	}
	module.exports = actionscript;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/ada.js
var require_ada = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function ada(hljs$1) {
		const INTEGER_RE = "\\d(_|\\d)*";
		const EXPONENT_RE = "[eE][-+]?" + INTEGER_RE;
		const DECIMAL_LITERAL_RE = INTEGER_RE + "(\\." + INTEGER_RE + ")?" + "(" + EXPONENT_RE + ")?";
		const BASED_INTEGER_RE = "\\w+";
		const BASED_LITERAL_RE = INTEGER_RE + "#" + BASED_INTEGER_RE + "(\\." + BASED_INTEGER_RE + ")?" + "#" + "(" + EXPONENT_RE + ")?";
		const NUMBER_RE$2 = "\\b(" + BASED_LITERAL_RE + "|" + DECIMAL_LITERAL_RE + ")";
		const ID_REGEX = "[A-Za-z](_?[A-Za-z0-9.])*";
		const BAD_CHARS = `[]\\{\\}%#'"`;
		const COMMENTS = hljs$1.COMMENT("--", "$");
		const VAR_DECLS = {
			begin: "\\s+:\\s+",
			end: "\\s*(:=|;|\\)|=>|$)",
			illegal: BAD_CHARS,
			contains: [
				{
					beginKeywords: "loop for declare others",
					endsParent: true
				},
				{
					className: "keyword",
					beginKeywords: "not null constant access function procedure in out aliased exception"
				},
				{
					className: "type",
					begin: ID_REGEX,
					endsParent: true,
					relevance: 0
				}
			]
		};
		const KEYWORDS$6 = [
			"abort",
			"else",
			"new",
			"return",
			"abs",
			"elsif",
			"not",
			"reverse",
			"abstract",
			"end",
			"accept",
			"entry",
			"select",
			"access",
			"exception",
			"of",
			"separate",
			"aliased",
			"exit",
			"or",
			"some",
			"all",
			"others",
			"subtype",
			"and",
			"for",
			"out",
			"synchronized",
			"array",
			"function",
			"overriding",
			"at",
			"tagged",
			"generic",
			"package",
			"task",
			"begin",
			"goto",
			"pragma",
			"terminate",
			"body",
			"private",
			"then",
			"if",
			"procedure",
			"type",
			"case",
			"in",
			"protected",
			"constant",
			"interface",
			"is",
			"raise",
			"use",
			"declare",
			"range",
			"delay",
			"limited",
			"record",
			"when",
			"delta",
			"loop",
			"rem",
			"while",
			"digits",
			"renames",
			"with",
			"do",
			"mod",
			"requeue",
			"xor"
		];
		return {
			name: "Ada",
			case_insensitive: true,
			keywords: {
				keyword: KEYWORDS$6,
				literal: ["True", "False"]
			},
			contains: [
				COMMENTS,
				{
					className: "string",
					begin: /"/,
					end: /"/,
					contains: [{
						begin: /""/,
						relevance: 0
					}]
				},
				{
					className: "string",
					begin: /'.'/
				},
				{
					className: "number",
					begin: NUMBER_RE$2,
					relevance: 0
				},
				{
					className: "symbol",
					begin: "'" + ID_REGEX
				},
				{
					className: "title",
					begin: "(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",
					end: "(is|$)",
					keywords: "package body",
					excludeBegin: true,
					excludeEnd: true,
					illegal: BAD_CHARS
				},
				{
					begin: "(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+",
					end: "(\\bis|\\bwith|\\brenames|\\)\\s*;)",
					keywords: "overriding function procedure with is renames return",
					returnBegin: true,
					contains: [
						COMMENTS,
						{
							className: "title",
							begin: "(\\bwith\\s+)?\\b(function|procedure)\\s+",
							end: "(\\(|\\s+|$)",
							excludeBegin: true,
							excludeEnd: true,
							illegal: BAD_CHARS
						},
						VAR_DECLS,
						{
							className: "type",
							begin: "\\breturn\\s+",
							end: "(\\s+|;|$)",
							keywords: "return",
							excludeBegin: true,
							excludeEnd: true,
							endsParent: true,
							illegal: BAD_CHARS
						}
					]
				},
				{
					className: "type",
					begin: "\\b(sub)?type\\s+",
					end: "\\s+",
					keywords: "type",
					excludeBegin: true,
					illegal: BAD_CHARS
				},
				VAR_DECLS
			]
		};
	}
	module.exports = ada;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/angelscript.js
var require_angelscript = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function angelscript(hljs$1) {
		const builtInTypeMode = {
			className: "built_in",
			begin: "\\b(void|bool|int8|int16|int32|int64|int|uint8|uint16|uint32|uint64|uint|string|ref|array|double|float|auto|dictionary)"
		};
		const objectHandleMode = {
			className: "symbol",
			begin: "[a-zA-Z0-9_]+@"
		};
		const genericMode = {
			className: "keyword",
			begin: "<",
			end: ">",
			contains: [builtInTypeMode, objectHandleMode]
		};
		builtInTypeMode.contains = [genericMode];
		objectHandleMode.contains = [genericMode];
		const KEYWORDS$6 = [
			"for",
			"in|0",
			"break",
			"continue",
			"while",
			"do|0",
			"return",
			"if",
			"else",
			"case",
			"switch",
			"namespace",
			"is",
			"cast",
			"or",
			"and",
			"xor",
			"not",
			"get|0",
			"in",
			"inout|10",
			"out",
			"override",
			"set|0",
			"private",
			"public",
			"const",
			"default|0",
			"final",
			"shared",
			"external",
			"mixin|10",
			"enum",
			"typedef",
			"funcdef",
			"this",
			"super",
			"import",
			"from",
			"interface",
			"abstract|0",
			"try",
			"catch",
			"protected",
			"explicit",
			"property"
		];
		return {
			name: "AngelScript",
			aliases: ["asc"],
			keywords: KEYWORDS$6,
			illegal: "(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\\s*[^\\(])",
			contains: [
				{
					className: "string",
					begin: "'",
					end: "'",
					illegal: "\\n",
					contains: [hljs$1.BACKSLASH_ESCAPE],
					relevance: 0
				},
				{
					className: "string",
					begin: "\"\"\"",
					end: "\"\"\""
				},
				{
					className: "string",
					begin: "\"",
					end: "\"",
					illegal: "\\n",
					contains: [hljs$1.BACKSLASH_ESCAPE],
					relevance: 0
				},
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				{
					className: "string",
					begin: "^\\s*\\[",
					end: "\\]"
				},
				{
					beginKeywords: "interface namespace",
					end: /\{/,
					illegal: "[;.\\-]",
					contains: [{
						className: "symbol",
						begin: "[a-zA-Z0-9_]+"
					}]
				},
				{
					beginKeywords: "class",
					end: /\{/,
					illegal: "[;.\\-]",
					contains: [{
						className: "symbol",
						begin: "[a-zA-Z0-9_]+",
						contains: [{
							begin: "[:,]\\s*",
							contains: [{
								className: "symbol",
								begin: "[a-zA-Z0-9_]+"
							}]
						}]
					}]
				},
				builtInTypeMode,
				objectHandleMode,
				{
					className: "literal",
					begin: "\\b(null|true|false)"
				},
				{
					className: "number",
					relevance: 0,
					begin: "(-?)(\\b0[xXbBoOdD][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)"
				}
			]
		};
	}
	module.exports = angelscript;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/apache.js
var require_apache = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function apache(hljs$1) {
		const NUMBER_REF = {
			className: "number",
			begin: /[$%]\d+/
		};
		const NUMBER = {
			className: "number",
			begin: /\b\d+/
		};
		const IP_ADDRESS = {
			className: "number",
			begin: /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/
		};
		const PORT_NUMBER = {
			className: "number",
			begin: /:\d{1,5}/
		};
		return {
			name: "Apache config",
			aliases: ["apacheconf"],
			case_insensitive: true,
			contains: [
				hljs$1.HASH_COMMENT_MODE,
				{
					className: "section",
					begin: /<\/?/,
					end: />/,
					contains: [
						IP_ADDRESS,
						PORT_NUMBER,
						hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { relevance: 0 })
					]
				},
				{
					className: "attribute",
					begin: /\w+/,
					relevance: 0,
					keywords: { _: [
						"order",
						"deny",
						"allow",
						"setenv",
						"rewriterule",
						"rewriteengine",
						"rewritecond",
						"documentroot",
						"sethandler",
						"errordocument",
						"loadmodule",
						"options",
						"header",
						"listen",
						"serverroot",
						"servername"
					] },
					starts: {
						end: /$/,
						relevance: 0,
						keywords: { literal: "on off all deny allow" },
						contains: [
							{
								scope: "punctuation",
								match: /\\\n/
							},
							{
								className: "meta",
								begin: /\s\[/,
								end: /\]$/
							},
							{
								className: "variable",
								begin: /[\$%]\{/,
								end: /\}/,
								contains: ["self", NUMBER_REF]
							},
							IP_ADDRESS,
							NUMBER,
							hljs$1.QUOTE_STRING_MODE
						]
					}
				}
			],
			illegal: /\S/
		};
	}
	module.exports = apache;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/applescript.js
var require_applescript = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function applescript(hljs$1) {
		const regex = hljs$1.regex;
		const STRING = hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { illegal: null });
		const PARAMS = {
			className: "params",
			begin: /\(/,
			end: /\)/,
			contains: [
				"self",
				hljs$1.C_NUMBER_MODE,
				STRING
			]
		};
		const COMMENT_MODE_1 = hljs$1.COMMENT(/--/, /$/);
		const COMMENT_MODE_2 = hljs$1.COMMENT(/\(\*/, /\*\)/, { contains: ["self", COMMENT_MODE_1] });
		const COMMENTS = [
			COMMENT_MODE_1,
			COMMENT_MODE_2,
			hljs$1.HASH_COMMENT_MODE
		];
		const KEYWORD_PATTERNS = [
			/apart from/,
			/aside from/,
			/instead of/,
			/out of/,
			/greater than/,
			/isn't|(doesn't|does not) (equal|come before|come after|contain)/,
			/(greater|less) than( or equal)?/,
			/(starts?|ends|begins?) with/,
			/contained by/,
			/comes (before|after)/,
			/a (ref|reference)/,
			/POSIX (file|path)/,
			/(date|time) string/,
			/quoted form/
		];
		const BUILT_IN_PATTERNS = [
			/clipboard info/,
			/the clipboard/,
			/info for/,
			/list (disks|folder)/,
			/mount volume/,
			/path to/,
			/(close|open for) access/,
			/(get|set) eof/,
			/current date/,
			/do shell script/,
			/get volume settings/,
			/random number/,
			/set volume/,
			/system attribute/,
			/system info/,
			/time to GMT/,
			/(load|run|store) script/,
			/scripting components/,
			/ASCII (character|number)/,
			/localized string/,
			/choose (application|color|file|file name|folder|from list|remote application|URL)/,
			/display (alert|dialog)/
		];
		return {
			name: "AppleScript",
			aliases: ["osascript"],
			keywords: {
				keyword: "about above after against and around as at back before beginning " + "behind below beneath beside between but by considering " + "contain contains continue copy div does eighth else end equal " + "equals error every exit fifth first for fourth from front " + "get given global if ignoring in into is it its last local me " + "middle mod my ninth not of on onto or over prop property put ref " + "reference repeat returning script second set seventh since " + "sixth some tell tenth that the|0 then third through thru " + "timeout times to transaction try until where while whose with " + "without",
				literal: "AppleScript false linefeed return pi quote result space tab true",
				built_in: "alias application boolean class constant date file integer list " + "number real record string text " + "activate beep count delay launch log offset read round " + "run say summarize write " + "character characters contents day frontmost id item length " + "month name|0 paragraph paragraphs rest reverse running time version " + "weekday word words year"
			},
			contains: [
				STRING,
				hljs$1.C_NUMBER_MODE,
				{
					className: "built_in",
					begin: regex.concat(/\b/, regex.either(...BUILT_IN_PATTERNS), /\b/)
				},
				{
					className: "built_in",
					begin: /^\s*return\b/
				},
				{
					className: "literal",
					begin: /\b(text item delimiters|current application|missing value)\b/
				},
				{
					className: "keyword",
					begin: regex.concat(/\b/, regex.either(...KEYWORD_PATTERNS), /\b/)
				},
				{
					beginKeywords: "on",
					illegal: /[${=;\n]/,
					contains: [hljs$1.UNDERSCORE_TITLE_MODE, PARAMS]
				},
				...COMMENTS
			],
			illegal: /\/\/|->|=>|\[\[/
		};
	}
	module.exports = applescript;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/arcade.js
var require_arcade = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function arcade(hljs$1) {
		const regex = hljs$1.regex;
		const IDENT_RE$6 = "[A-Za-z_][0-9A-Za-z_]*";
		const KEYWORDS$6 = {
			keyword: [
				"break",
				"case",
				"catch",
				"continue",
				"debugger",
				"do",
				"else",
				"export",
				"for",
				"function",
				"if",
				"import",
				"in",
				"new",
				"of",
				"return",
				"switch",
				"try",
				"var",
				"void",
				"while"
			],
			literal: [
				"BackSlash",
				"DoubleQuote",
				"ForwardSlash",
				"Infinity",
				"NaN",
				"NewLine",
				"PI",
				"SingleQuote",
				"Tab",
				"TextFormatting",
				"false",
				"null",
				"true",
				"undefined"
			],
			built_in: [
				"Abs",
				"Acos",
				"All",
				"Angle",
				"Any",
				"Area",
				"AreaGeodetic",
				"Array",
				"Asin",
				"Atan",
				"Atan2",
				"Attachments",
				"Average",
				"Back",
				"Bearing",
				"Boolean",
				"Buffer",
				"BufferGeodetic",
				"Ceil",
				"Centroid",
				"ChangeTimeZone",
				"Clip",
				"Concatenate",
				"Console",
				"Constrain",
				"Contains",
				"ConvertDirection",
				"ConvexHull",
				"Cos",
				"Count",
				"Crosses",
				"Cut",
				"Date|0",
				"DateAdd",
				"DateDiff",
				"DateOnly",
				"Day",
				"Decode",
				"DefaultValue",
				"Densify",
				"DensifyGeodetic",
				"Dictionary",
				"Difference",
				"Disjoint",
				"Distance",
				"DistanceGeodetic",
				"DistanceToCoordinate",
				"Distinct",
				"Domain",
				"DomainCode",
				"DomainName",
				"EnvelopeIntersects",
				"Equals",
				"Erase",
				"Exp",
				"Expects",
				"Extent",
				"Feature",
				"FeatureInFilter",
				"FeatureSet",
				"FeatureSetByAssociation",
				"FeatureSetById",
				"FeatureSetByName",
				"FeatureSetByPortalItem",
				"FeatureSetByRelationshipClass",
				"FeatureSetByRelationshipName",
				"Filter",
				"FilterBySubtypeCode",
				"Find",
				"First|0",
				"Floor",
				"FromCharCode",
				"FromCodePoint",
				"FromJSON",
				"Front",
				"GdbVersion",
				"Generalize",
				"Geometry",
				"GetEnvironment",
				"GetFeatureSet",
				"GetFeatureSetInfo",
				"GetUser",
				"GroupBy",
				"Guid",
				"HasKey",
				"HasValue",
				"Hash",
				"Hour",
				"IIf",
				"ISOMonth",
				"ISOWeek",
				"ISOWeekday",
				"ISOYear",
				"Includes",
				"IndexOf",
				"Insert",
				"Intersection",
				"Intersects",
				"IsEmpty",
				"IsNan",
				"IsSelfIntersecting",
				"IsSimple",
				"KnowledgeGraphByPortalItem",
				"Left|0",
				"Length",
				"Length3D",
				"LengthGeodetic",
				"Log",
				"Lower",
				"Map",
				"Max",
				"Mean",
				"MeasureToCoordinate",
				"Mid",
				"Millisecond",
				"Min",
				"Minute",
				"Month",
				"MultiPartToSinglePart",
				"Multipoint",
				"NearestCoordinate",
				"NearestVertex",
				"NextSequenceValue",
				"None",
				"Now",
				"Number",
				"Offset",
				"OrderBy",
				"Overlaps",
				"Point",
				"PointToCoordinate",
				"Polygon",
				"Polyline",
				"Pop",
				"Portal",
				"Pow",
				"Proper",
				"Push",
				"QueryGraph",
				"Random",
				"Reduce",
				"Relate",
				"Replace",
				"Resize",
				"Reverse",
				"Right|0",
				"RingIsClockwise",
				"Rotate",
				"Round",
				"Schema",
				"Second",
				"SetGeometry",
				"Simplify",
				"Sin",
				"Slice",
				"Sort",
				"Splice",
				"Split",
				"Sqrt",
				"StandardizeFilename",
				"StandardizeGuid",
				"Stdev",
				"SubtypeCode",
				"SubtypeName",
				"Subtypes",
				"Sum",
				"SymmetricDifference",
				"Tan",
				"Text",
				"Time",
				"TimeZone",
				"TimeZoneOffset",
				"Timestamp",
				"ToCharCode",
				"ToCodePoint",
				"ToHex",
				"ToLocal",
				"ToUTC",
				"Today",
				"Top|0",
				"Touches",
				"TrackAccelerationAt",
				"TrackAccelerationWindow",
				"TrackCurrentAcceleration",
				"TrackCurrentDistance",
				"TrackCurrentSpeed",
				"TrackCurrentTime",
				"TrackDistanceAt",
				"TrackDistanceWindow",
				"TrackDuration",
				"TrackFieldWindow",
				"TrackGeometryWindow",
				"TrackIndex",
				"TrackSpeedAt",
				"TrackSpeedWindow",
				"TrackStartTime",
				"TrackWindow",
				"Trim",
				"TypeOf",
				"Union",
				"Upper",
				"UrlEncode",
				"Variance",
				"Week",
				"Weekday",
				"When|0",
				"Within",
				"Year|0"
			]
		};
		const PROFILE_VARS = [
			"aggregatedFeatures",
			"analytic",
			"config",
			"datapoint",
			"datastore",
			"editcontext",
			"feature",
			"featureSet",
			"feedfeature",
			"fencefeature",
			"fencenotificationtype",
			"graph",
			"join",
			"layer",
			"locationupdate",
			"map",
			"measure",
			"measure",
			"originalFeature",
			"record",
			"reference",
			"rowindex",
			"sourcedatastore",
			"sourcefeature",
			"sourcelayer",
			"target",
			"targetdatastore",
			"targetfeature",
			"targetlayer",
			"userInput",
			"value",
			"variables",
			"view"
		];
		const SYMBOL = {
			className: "symbol",
			begin: "\\$" + regex.either(...PROFILE_VARS)
		};
		const NUMBER = {
			className: "number",
			variants: [
				{ begin: "\\b(0[bB][01]+)" },
				{ begin: "\\b(0[oO][0-7]+)" },
				{ begin: hljs$1.C_NUMBER_RE }
			],
			relevance: 0
		};
		const SUBST = {
			className: "subst",
			begin: "\\$\\{",
			end: "\\}",
			keywords: KEYWORDS$6,
			contains: []
		};
		const TEMPLATE_STRING = {
			className: "string",
			begin: "`",
			end: "`",
			contains: [hljs$1.BACKSLASH_ESCAPE, SUBST]
		};
		SUBST.contains = [
			hljs$1.APOS_STRING_MODE,
			hljs$1.QUOTE_STRING_MODE,
			TEMPLATE_STRING,
			NUMBER,
			hljs$1.REGEXP_MODE
		];
		const PARAMS_CONTAINS = SUBST.contains.concat([hljs$1.C_BLOCK_COMMENT_MODE, hljs$1.C_LINE_COMMENT_MODE]);
		return {
			name: "ArcGIS Arcade",
			case_insensitive: true,
			keywords: KEYWORDS$6,
			contains: [
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				TEMPLATE_STRING,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				SYMBOL,
				NUMBER,
				{
					begin: /[{,]\s*/,
					relevance: 0,
					contains: [{
						begin: IDENT_RE$6 + "\\s*:",
						returnBegin: true,
						relevance: 0,
						contains: [{
							className: "attr",
							begin: IDENT_RE$6,
							relevance: 0
						}]
					}]
				},
				{
					begin: "(" + hljs$1.RE_STARTERS_RE + "|\\b(return)\\b)\\s*",
					keywords: "return",
					contains: [
						hljs$1.C_LINE_COMMENT_MODE,
						hljs$1.C_BLOCK_COMMENT_MODE,
						hljs$1.REGEXP_MODE,
						{
							className: "function",
							begin: "(\\(.*?\\)|" + IDENT_RE$6 + ")\\s*=>",
							returnBegin: true,
							end: "\\s*=>",
							contains: [{
								className: "params",
								variants: [
									{ begin: IDENT_RE$6 },
									{ begin: /\(\s*\)/ },
									{
										begin: /\(/,
										end: /\)/,
										excludeBegin: true,
										excludeEnd: true,
										keywords: KEYWORDS$6,
										contains: PARAMS_CONTAINS
									}
								]
							}]
						}
					],
					relevance: 0
				},
				{
					beginKeywords: "function",
					end: /\{/,
					excludeEnd: true,
					contains: [hljs$1.inherit(hljs$1.TITLE_MODE, {
						className: "title.function",
						begin: IDENT_RE$6
					}), {
						className: "params",
						begin: /\(/,
						end: /\)/,
						excludeBegin: true,
						excludeEnd: true,
						contains: PARAMS_CONTAINS
					}],
					illegal: /\[|%/
				},
				{ begin: /\$[(.]/ }
			],
			illegal: /#(?!!)/
		};
	}
	module.exports = arcade;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/arduino.js
var require_arduino = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function cPlusPlus(hljs$1) {
		const regex = hljs$1.regex;
		const C_LINE_COMMENT_MODE$2 = hljs$1.COMMENT("//", "$", { contains: [{ begin: /\\\n/ }] });
		const DECLTYPE_AUTO_RE = "decltype\\(auto\\)";
		const NAMESPACE_RE = "[a-zA-Z_]\\w*::";
		const TEMPLATE_ARGUMENT_RE = "<[^<>]+>";
		const FUNCTION_TYPE_RE = "(?!struct)(" + DECLTYPE_AUTO_RE + "|" + regex.optional(NAMESPACE_RE) + "[a-zA-Z_]\\w*" + regex.optional(TEMPLATE_ARGUMENT_RE) + ")";
		const CPP_PRIMITIVE_TYPES = {
			className: "type",
			begin: "\\b[a-z\\d_]*_t\\b"
		};
		const CHARACTER_ESCAPES = "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)";
		const STRINGS = {
			className: "string",
			variants: [
				{
					begin: "(u8?|U|L)?\"",
					end: "\"",
					illegal: "\\n",
					contains: [hljs$1.BACKSLASH_ESCAPE]
				},
				{
					begin: "(u8?|U|L)?'(" + CHARACTER_ESCAPES + "|.)",
					end: "'",
					illegal: "."
				},
				hljs$1.END_SAME_AS_BEGIN({
					begin: /(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,
					end: /\)([^()\\ ]{0,16})"/
				})
			]
		};
		const NUMBERS = {
			className: "number",
			variants: [{ begin: "[+-]?(?:" + "(?:" + "[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?" + "|\\.[0-9](?:'?[0-9])*" + ")(?:[Ee][+-]?[0-9](?:'?[0-9])*)?" + "|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*" + "|0[Xx](?:" + "[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?" + "|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*" + ")[Pp][+-]?[0-9](?:'?[0-9])*" + ")(?:" + "[Ff](?:16|32|64|128)?" + "|(BF|bf)16" + "|[Ll]" + "|" + ")" }, { begin: "[+-]?\\b(?:" + "0[Bb][01](?:'?[01])*" + "|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*" + "|0(?:'?[0-7])*" + "|[1-9](?:'?[0-9])*" + ")(?:" + "[Uu](?:LL?|ll?)" + "|[Uu][Zz]?" + "|(?:LL?|ll?)[Uu]?" + "|[Zz][Uu]" + "|" + ")" }],
			relevance: 0
		};
		const PREPROCESSOR = {
			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
				},
				hljs$1.inherit(STRINGS, { className: "string" }),
				{
					className: "string",
					begin: /<.*?>/
				},
				C_LINE_COMMENT_MODE$2,
				hljs$1.C_BLOCK_COMMENT_MODE
			]
		};
		const TITLE_MODE$2 = {
			className: "title",
			begin: regex.optional(NAMESPACE_RE) + hljs$1.IDENT_RE,
			relevance: 0
		};
		const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs$1.IDENT_RE + "\\s*\\(";
		const RESERVED_KEYWORDS = [
			"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"
		];
		const RESERVED_TYPES = [
			"bool",
			"char",
			"char16_t",
			"char32_t",
			"char8_t",
			"double",
			"float",
			"int",
			"long",
			"short",
			"void",
			"wchar_t",
			"unsigned",
			"signed",
			"const",
			"static"
		];
		const TYPE_HINTS = [
			"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"
		];
		const FUNCTION_HINTS = [
			"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"
		];
		const LITERALS$6 = [
			"NULL",
			"false",
			"nullopt",
			"nullptr",
			"true"
		];
		const BUILT_IN = ["_Pragma"];
		const CPP_KEYWORDS = {
			type: RESERVED_TYPES,
			keyword: RESERVED_KEYWORDS,
			literal: LITERALS$6,
			built_in: BUILT_IN,
			_type_hints: TYPE_HINTS
		};
		const FUNCTION_DISPATCH = {
			className: "function.dispatch",
			relevance: 0,
			keywords: { _hint: FUNCTION_HINTS },
			begin: regex.concat(/\b/, /(?!decltype)/, /(?!if)/, /(?!for)/, /(?!switch)/, /(?!while)/, hljs$1.IDENT_RE, regex.lookahead(/(<[^<>]+>|)\s*\(/))
		};
		const EXPRESSION_CONTAINS = [
			FUNCTION_DISPATCH,
			PREPROCESSOR,
			CPP_PRIMITIVE_TYPES,
			C_LINE_COMMENT_MODE$2,
			hljs$1.C_BLOCK_COMMENT_MODE,
			NUMBERS,
			STRINGS
		];
		const EXPRESSION_CONTEXT = {
			variants: [
				{
					begin: /=/,
					end: /;/
				},
				{
					begin: /\(/,
					end: /\)/
				},
				{
					beginKeywords: "new throw return else",
					end: /;/
				}
			],
			keywords: CPP_KEYWORDS,
			contains: EXPRESSION_CONTAINS.concat([{
				begin: /\(/,
				end: /\)/,
				keywords: CPP_KEYWORDS,
				contains: EXPRESSION_CONTAINS.concat(["self"]),
				relevance: 0
			}]),
			relevance: 0
		};
		const FUNCTION_DECLARATION = {
			className: "function",
			begin: "(" + FUNCTION_TYPE_RE + "[\\*&\\s]+)+" + FUNCTION_TITLE,
			returnBegin: true,
			end: /[{;=]/,
			excludeEnd: true,
			keywords: CPP_KEYWORDS,
			illegal: /[^\w\s\*&:<>.]/,
			contains: [
				{
					begin: DECLTYPE_AUTO_RE,
					keywords: CPP_KEYWORDS,
					relevance: 0
				},
				{
					begin: FUNCTION_TITLE,
					returnBegin: true,
					contains: [TITLE_MODE$2],
					relevance: 0
				},
				{
					begin: /::/,
					relevance: 0
				},
				{
					begin: /:/,
					endsWithParent: true,
					contains: [STRINGS, NUMBERS]
				},
				{
					relevance: 0,
					match: /,/
				},
				{
					className: "params",
					begin: /\(/,
					end: /\)/,
					keywords: CPP_KEYWORDS,
					relevance: 0,
					contains: [
						C_LINE_COMMENT_MODE$2,
						hljs$1.C_BLOCK_COMMENT_MODE,
						STRINGS,
						NUMBERS,
						CPP_PRIMITIVE_TYPES,
						{
							begin: /\(/,
							end: /\)/,
							keywords: CPP_KEYWORDS,
							relevance: 0,
							contains: [
								"self",
								C_LINE_COMMENT_MODE$2,
								hljs$1.C_BLOCK_COMMENT_MODE,
								STRINGS,
								NUMBERS,
								CPP_PRIMITIVE_TYPES
							]
						}
					]
				},
				CPP_PRIMITIVE_TYPES,
				C_LINE_COMMENT_MODE$2,
				hljs$1.C_BLOCK_COMMENT_MODE,
				PREPROCESSOR
			]
		};
		return {
			name: "C++",
			aliases: [
				"cc",
				"c++",
				"h++",
				"hpp",
				"hh",
				"hxx",
				"cxx"
			],
			keywords: CPP_KEYWORDS,
			illegal: "</",
			classNameAliases: { "function.dispatch": "built_in" },
			contains: [].concat(EXPRESSION_CONTEXT, FUNCTION_DECLARATION, FUNCTION_DISPATCH, EXPRESSION_CONTAINS, [
				PREPROCESSOR,
				{
					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: CPP_KEYWORDS,
					contains: ["self", CPP_PRIMITIVE_TYPES]
				},
				{
					begin: hljs$1.IDENT_RE + "::",
					keywords: CPP_KEYWORDS
				},
				{
					match: [
						/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,
						/\s+/,
						/\w+/
					],
					className: {
						1: "keyword",
						3: "title.class"
					}
				}
			])
		};
	}
	/** @type LanguageFn */
	function arduino(hljs$1) {
		const ARDUINO_KW = {
			type: [
				"boolean",
				"byte",
				"word",
				"String"
			],
			built_in: [
				"KeyboardController",
				"MouseController",
				"SoftwareSerial",
				"EthernetServer",
				"EthernetClient",
				"LiquidCrystal",
				"RobotControl",
				"GSMVoiceCall",
				"EthernetUDP",
				"EsploraTFT",
				"HttpClient",
				"RobotMotor",
				"WiFiClient",
				"GSMScanner",
				"FileSystem",
				"Scheduler",
				"GSMServer",
				"YunClient",
				"YunServer",
				"IPAddress",
				"GSMClient",
				"GSMModem",
				"Keyboard",
				"Ethernet",
				"Console",
				"GSMBand",
				"Esplora",
				"Stepper",
				"Process",
				"WiFiUDP",
				"GSM_SMS",
				"Mailbox",
				"USBHost",
				"Firmata",
				"PImage",
				"Client",
				"Server",
				"GSMPIN",
				"FileIO",
				"Bridge",
				"Serial",
				"EEPROM",
				"Stream",
				"Mouse",
				"Audio",
				"Servo",
				"File",
				"Task",
				"GPRS",
				"WiFi",
				"Wire",
				"TFT",
				"GSM",
				"SPI",
				"SD"
			],
			_hints: [
				"setup",
				"loop",
				"runShellCommandAsynchronously",
				"analogWriteResolution",
				"retrieveCallingNumber",
				"printFirmwareVersion",
				"analogReadResolution",
				"sendDigitalPortPair",
				"noListenOnLocalhost",
				"readJoystickButton",
				"setFirmwareVersion",
				"readJoystickSwitch",
				"scrollDisplayRight",
				"getVoiceCallStatus",
				"scrollDisplayLeft",
				"writeMicroseconds",
				"delayMicroseconds",
				"beginTransmission",
				"getSignalStrength",
				"runAsynchronously",
				"getAsynchronously",
				"listenOnLocalhost",
				"getCurrentCarrier",
				"readAccelerometer",
				"messageAvailable",
				"sendDigitalPorts",
				"lineFollowConfig",
				"countryNameWrite",
				"runShellCommand",
				"readStringUntil",
				"rewindDirectory",
				"readTemperature",
				"setClockDivider",
				"readLightSensor",
				"endTransmission",
				"analogReference",
				"detachInterrupt",
				"countryNameRead",
				"attachInterrupt",
				"encryptionType",
				"readBytesUntil",
				"robotNameWrite",
				"readMicrophone",
				"robotNameRead",
				"cityNameWrite",
				"userNameWrite",
				"readJoystickY",
				"readJoystickX",
				"mouseReleased",
				"openNextFile",
				"scanNetworks",
				"noInterrupts",
				"digitalWrite",
				"beginSpeaker",
				"mousePressed",
				"isActionDone",
				"mouseDragged",
				"displayLogos",
				"noAutoscroll",
				"addParameter",
				"remoteNumber",
				"getModifiers",
				"keyboardRead",
				"userNameRead",
				"waitContinue",
				"processInput",
				"parseCommand",
				"printVersion",
				"readNetworks",
				"writeMessage",
				"blinkVersion",
				"cityNameRead",
				"readMessage",
				"setDataMode",
				"parsePacket",
				"isListening",
				"setBitOrder",
				"beginPacket",
				"isDirectory",
				"motorsWrite",
				"drawCompass",
				"digitalRead",
				"clearScreen",
				"serialEvent",
				"rightToLeft",
				"setTextSize",
				"leftToRight",
				"requestFrom",
				"keyReleased",
				"compassRead",
				"analogWrite",
				"interrupts",
				"WiFiServer",
				"disconnect",
				"playMelody",
				"parseFloat",
				"autoscroll",
				"getPINUsed",
				"setPINUsed",
				"setTimeout",
				"sendAnalog",
				"readSlider",
				"analogRead",
				"beginWrite",
				"createChar",
				"motorsStop",
				"keyPressed",
				"tempoWrite",
				"readButton",
				"subnetMask",
				"debugPrint",
				"macAddress",
				"writeGreen",
				"randomSeed",
				"attachGPRS",
				"readString",
				"sendString",
				"remotePort",
				"releaseAll",
				"mouseMoved",
				"background",
				"getXChange",
				"getYChange",
				"answerCall",
				"getResult",
				"voiceCall",
				"endPacket",
				"constrain",
				"getSocket",
				"writeJSON",
				"getButton",
				"available",
				"connected",
				"findUntil",
				"readBytes",
				"exitValue",
				"readGreen",
				"writeBlue",
				"startLoop",
				"IPAddress",
				"isPressed",
				"sendSysex",
				"pauseMode",
				"gatewayIP",
				"setCursor",
				"getOemKey",
				"tuneWrite",
				"noDisplay",
				"loadImage",
				"switchPIN",
				"onRequest",
				"onReceive",
				"changePIN",
				"playFile",
				"noBuffer",
				"parseInt",
				"overflow",
				"checkPIN",
				"knobRead",
				"beginTFT",
				"bitClear",
				"updateIR",
				"bitWrite",
				"position",
				"writeRGB",
				"highByte",
				"writeRed",
				"setSpeed",
				"readBlue",
				"noStroke",
				"remoteIP",
				"transfer",
				"shutdown",
				"hangCall",
				"beginSMS",
				"endWrite",
				"attached",
				"maintain",
				"noCursor",
				"checkReg",
				"checkPUK",
				"shiftOut",
				"isValid",
				"shiftIn",
				"pulseIn",
				"connect",
				"println",
				"localIP",
				"pinMode",
				"getIMEI",
				"display",
				"noBlink",
				"process",
				"getBand",
				"running",
				"beginSD",
				"drawBMP",
				"lowByte",
				"setBand",
				"release",
				"bitRead",
				"prepare",
				"pointTo",
				"readRed",
				"setMode",
				"noFill",
				"remove",
				"listen",
				"stroke",
				"detach",
				"attach",
				"noTone",
				"exists",
				"buffer",
				"height",
				"bitSet",
				"circle",
				"config",
				"cursor",
				"random",
				"IRread",
				"setDNS",
				"endSMS",
				"getKey",
				"micros",
				"millis",
				"begin",
				"print",
				"write",
				"ready",
				"flush",
				"width",
				"isPIN",
				"blink",
				"clear",
				"press",
				"mkdir",
				"rmdir",
				"close",
				"point",
				"yield",
				"image",
				"BSSID",
				"click",
				"delay",
				"read",
				"text",
				"move",
				"peek",
				"beep",
				"rect",
				"line",
				"open",
				"seek",
				"fill",
				"size",
				"turn",
				"stop",
				"home",
				"find",
				"step",
				"tone",
				"sqrt",
				"RSSI",
				"SSID",
				"end",
				"bit",
				"tan",
				"cos",
				"sin",
				"pow",
				"map",
				"abs",
				"max",
				"min",
				"get",
				"run",
				"put"
			],
			literal: [
				"DIGITAL_MESSAGE",
				"FIRMATA_STRING",
				"ANALOG_MESSAGE",
				"REPORT_DIGITAL",
				"REPORT_ANALOG",
				"INPUT_PULLUP",
				"SET_PIN_MODE",
				"INTERNAL2V56",
				"SYSTEM_RESET",
				"LED_BUILTIN",
				"INTERNAL1V1",
				"SYSEX_START",
				"INTERNAL",
				"EXTERNAL",
				"DEFAULT",
				"OUTPUT",
				"INPUT",
				"HIGH",
				"LOW"
			]
		};
		const ARDUINO = cPlusPlus(hljs$1);
		const kws = ARDUINO.keywords;
		kws.type = [...kws.type, ...ARDUINO_KW.type];
		kws.literal = [...kws.literal, ...ARDUINO_KW.literal];
		kws.built_in = [...kws.built_in, ...ARDUINO_KW.built_in];
		kws._hints = ARDUINO_KW._hints;
		ARDUINO.name = "Arduino";
		ARDUINO.aliases = ["ino"];
		ARDUINO.supersetOf = "cpp";
		return ARDUINO;
	}
	module.exports = arduino;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/armasm.js
var require_armasm = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function armasm(hljs$1) {
		const COMMENT$2 = { variants: [
			hljs$1.COMMENT("^[ \\t]*(?=#)", "$", {
				relevance: 0,
				excludeBegin: true
			}),
			hljs$1.COMMENT("[;@]", "$", { relevance: 0 }),
			hljs$1.C_LINE_COMMENT_MODE,
			hljs$1.C_BLOCK_COMMENT_MODE
		] };
		return {
			name: "ARM Assembly",
			case_insensitive: true,
			aliases: ["arm"],
			keywords: {
				$pattern: "\\.?" + hljs$1.IDENT_RE,
				meta: ".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg " + "ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",
				built_in: "r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 " + "w0 w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14 w15 " + "w16 w17 w18 w19 w20 w21 w22 w23 w24 w25 w26 w27 w28 w29 w30 " + "x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 " + "x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 " + "pc lr sp ip sl sb fp " + "a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 " + "p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 " + "c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 " + "q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 " + "cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf " + "spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf " + "s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 " + "s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 " + "d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 " + "d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 " + "{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"
			},
			contains: [
				{
					className: "keyword",
					begin: "\\b(" + "adc|" + "(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|" + "and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|" + "bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|" + "setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|" + "ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|" + "mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|" + "mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|" + "mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|" + "rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|" + "stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|" + "[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|" + "wfe|wfi|yield" + ")" + "(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?" + "[sptrx]?" + "(?=\\s)"
				},
				COMMENT$2,
				hljs$1.QUOTE_STRING_MODE,
				{
					className: "string",
					begin: "'",
					end: "[^\\\\]'",
					relevance: 0
				},
				{
					className: "title",
					begin: "\\|",
					end: "\\|",
					illegal: "\\n",
					relevance: 0
				},
				{
					className: "number",
					variants: [
						{ begin: "[#$=]?0x[0-9a-f]+" },
						{ begin: "[#$=]?0b[01]+" },
						{ begin: "[#$=]\\d+" },
						{ begin: "\\b\\d+" }
					],
					relevance: 0
				},
				{
					className: "symbol",
					variants: [
						{ begin: "^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:" },
						{ begin: "^[a-z_\\.\\$][a-z0-9_\\.\\$]+" },
						{ begin: "[=#]\\w+" }
					],
					relevance: 0
				}
			]
		};
	}
	module.exports = armasm;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/xml.js
var require_xml = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function xml$1(hljs$1) {
		const regex = hljs$1.regex;
		const TAG_NAME_RE = regex.concat(/[\p{L}_]/u, regex.optional(/[\p{L}0-9_.-]*:/u), /[\p{L}0-9_.-]*/u);
		const XML_IDENT_RE = /[\p{L}0-9._:-]+/u;
		const XML_ENTITIES = {
			className: "symbol",
			begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/
		};
		const XML_META_KEYWORDS = {
			begin: /\s/,
			contains: [{
				className: "keyword",
				begin: /#?[a-z_][a-z1-9_-]+/,
				illegal: /\n/
			}]
		};
		const XML_META_PAR_KEYWORDS = hljs$1.inherit(XML_META_KEYWORDS, {
			begin: /\(/,
			end: /\)/
		});
		const APOS_META_STRING_MODE = hljs$1.inherit(hljs$1.APOS_STRING_MODE, { className: "string" });
		const QUOTE_META_STRING_MODE = hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { className: "string" });
		const TAG_INTERNALS = {
			endsWithParent: true,
			illegal: /</,
			relevance: 0,
			contains: [{
				className: "attr",
				begin: XML_IDENT_RE,
				relevance: 0
			}, {
				begin: /=\s*/,
				relevance: 0,
				contains: [{
					className: "string",
					endsParent: true,
					variants: [
						{
							begin: /"/,
							end: /"/,
							contains: [XML_ENTITIES]
						},
						{
							begin: /'/,
							end: /'/,
							contains: [XML_ENTITIES]
						},
						{ begin: /[^\s"'=<>`]+/ }
					]
				}]
			}]
		};
		return {
			name: "HTML, XML",
			aliases: [
				"html",
				"xhtml",
				"rss",
				"atom",
				"xjb",
				"xsd",
				"xsl",
				"plist",
				"wsf",
				"svg"
			],
			case_insensitive: true,
			unicodeRegex: true,
			contains: [
				{
					className: "meta",
					begin: /<![a-z]/,
					end: />/,
					relevance: 10,
					contains: [
						XML_META_KEYWORDS,
						QUOTE_META_STRING_MODE,
						APOS_META_STRING_MODE,
						XML_META_PAR_KEYWORDS,
						{
							begin: /\[/,
							end: /\]/,
							contains: [{
								className: "meta",
								begin: /<![a-z]/,
								end: />/,
								contains: [
									XML_META_KEYWORDS,
									XML_META_PAR_KEYWORDS,
									QUOTE_META_STRING_MODE,
									APOS_META_STRING_MODE
								]
							}]
						}
					]
				},
				hljs$1.COMMENT(/<!--/, /-->/, { relevance: 10 }),
				{
					begin: /<!\[CDATA\[/,
					end: /\]\]>/,
					relevance: 10
				},
				XML_ENTITIES,
				{
					className: "meta",
					end: /\?>/,
					variants: [{
						begin: /<\?xml/,
						relevance: 10,
						contains: [QUOTE_META_STRING_MODE]
					}, { begin: /<\?[a-z][a-z0-9]+/ }]
				},
				{
					className: "tag",
					begin: /<style(?=\s|>)/,
					end: />/,
					keywords: { name: "style" },
					contains: [TAG_INTERNALS],
					starts: {
						end: /<\/style>/,
						returnEnd: true,
						subLanguage: ["css", "xml"]
					}
				},
				{
					className: "tag",
					begin: /<script(?=\s|>)/,
					end: />/,
					keywords: { name: "script" },
					contains: [TAG_INTERNALS],
					starts: {
						end: /<\/script>/,
						returnEnd: true,
						subLanguage: [
							"javascript",
							"handlebars",
							"xml"
						]
					}
				},
				{
					className: "tag",
					begin: /<>|<\/>/
				},
				{
					className: "tag",
					begin: regex.concat(/</, regex.lookahead(regex.concat(TAG_NAME_RE, regex.either(/\/>/, />/, /\s/)))),
					end: /\/?>/,
					contains: [{
						className: "name",
						begin: TAG_NAME_RE,
						relevance: 0,
						starts: TAG_INTERNALS
					}]
				},
				{
					className: "tag",
					begin: regex.concat(/<\//, regex.lookahead(regex.concat(TAG_NAME_RE, />/))),
					contains: [{
						className: "name",
						begin: TAG_NAME_RE,
						relevance: 0
					}, {
						begin: />/,
						relevance: 0,
						endsParent: true
					}]
				}
			]
		};
	}
	module.exports = xml$1;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/asciidoc.js
var require_asciidoc = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function asciidoc(hljs$1) {
		const regex = hljs$1.regex;
		const HORIZONTAL_RULE = {
			begin: "^'{3,}[ \\t]*$",
			relevance: 10
		};
		const ESCAPED_FORMATTING = [
			{ begin: /\\[*_`]/ },
			{ begin: /\\\\\*{2}[^\n]*?\*{2}/ },
			{ begin: /\\\\_{2}[^\n]*_{2}/ },
			{ begin: /\\\\`{2}[^\n]*`{2}/ },
			{ begin: /[:;}][*_`](?![*_`])/ }
		];
		const STRONG = [
			{
				className: "strong",
				begin: /\*{2}([^\n]+?)\*{2}/
			},
			{
				className: "strong",
				begin: regex.concat(/\*\*/, /((\*(?!\*)|\\[^\n]|[^*\n\\])+\n)+/, /(\*(?!\*)|\\[^\n]|[^*\n\\])*/, /\*\*/),
				relevance: 0
			},
			{
				className: "strong",
				begin: /\B\*(\S|\S[^\n]*?\S)\*(?!\w)/
			},
			{
				className: "strong",
				begin: /\*[^\s]([^\n]+\n)+([^\n]+)\*/
			}
		];
		const EMPHASIS = [
			{
				className: "emphasis",
				begin: /_{2}([^\n]+?)_{2}/
			},
			{
				className: "emphasis",
				begin: regex.concat(/__/, /((_(?!_)|\\[^\n]|[^_\n\\])+\n)+/, /(_(?!_)|\\[^\n]|[^_\n\\])*/, /__/),
				relevance: 0
			},
			{
				className: "emphasis",
				begin: /\b_(\S|\S[^\n]*?\S)_(?!\w)/
			},
			{
				className: "emphasis",
				begin: /_[^\s]([^\n]+\n)+([^\n]+)_/
			},
			{
				className: "emphasis",
				begin: "\\B'(?!['\\s])",
				end: "(\\n{2}|')",
				contains: [{
					begin: "\\\\'\\w",
					relevance: 0
				}],
				relevance: 0
			}
		];
		const ADMONITION = {
			className: "symbol",
			begin: "^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",
			relevance: 10
		};
		const BULLET_LIST = {
			className: "bullet",
			begin: "^(\\*+|-+|\\.+|[^\\n]+?::)\\s+"
		};
		return {
			name: "AsciiDoc",
			aliases: ["adoc"],
			contains: [
				hljs$1.COMMENT("^/{4,}\\n", "\\n/{4,}$", { relevance: 10 }),
				hljs$1.COMMENT("^//", "$", { relevance: 0 }),
				{
					className: "title",
					begin: "^\\.\\w.*$"
				},
				{
					begin: "^[=\\*]{4,}\\n",
					end: "\\n^[=\\*]{4,}$",
					relevance: 10
				},
				{
					className: "section",
					relevance: 10,
					variants: [{ begin: "^(={1,6})[ 	].+?([ 	]\\1)?$" }, { begin: "^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$" }]
				},
				{
					className: "meta",
					begin: "^:.+?:",
					end: "\\s",
					excludeEnd: true,
					relevance: 10
				},
				{
					className: "meta",
					begin: "^\\[.+?\\]$",
					relevance: 0
				},
				{
					className: "quote",
					begin: "^_{4,}\\n",
					end: "\\n_{4,}$",
					relevance: 10
				},
				{
					className: "code",
					begin: "^[\\-\\.]{4,}\\n",
					end: "\\n[\\-\\.]{4,}$",
					relevance: 10
				},
				{
					begin: "^\\+{4,}\\n",
					end: "\\n\\+{4,}$",
					contains: [{
						begin: "<",
						end: ">",
						subLanguage: "xml",
						relevance: 0
					}],
					relevance: 10
				},
				BULLET_LIST,
				ADMONITION,
				...ESCAPED_FORMATTING,
				...STRONG,
				...EMPHASIS,
				{
					className: "string",
					variants: [{ begin: "``.+?''" }, { begin: "`.+?'" }]
				},
				{
					className: "code",
					begin: /`{2}/,
					end: /(\n{2}|`{2})/
				},
				{
					className: "code",
					begin: "(`.+?`|\\+.+?\\+)",
					relevance: 0
				},
				{
					className: "code",
					begin: "^[ \\t]",
					end: "$",
					relevance: 0
				},
				HORIZONTAL_RULE,
				{
					begin: "(link:)?(http|https|ftp|file|irc|image:?):\\S+?\\[[^[]*?\\]",
					returnBegin: true,
					contains: [
						{
							begin: "(link|image:?):",
							relevance: 0
						},
						{
							className: "link",
							begin: "\\w",
							end: "[^\\[]+",
							relevance: 0
						},
						{
							className: "string",
							begin: "\\[",
							end: "\\]",
							excludeBegin: true,
							excludeEnd: true,
							relevance: 0
						}
					],
					relevance: 10
				}
			]
		};
	}
	module.exports = asciidoc;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/aspectj.js
var require_aspectj = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function aspectj(hljs$1) {
		const regex = hljs$1.regex;
		const KEYWORDS$6 = [
			"false",
			"synchronized",
			"int",
			"abstract",
			"float",
			"private",
			"char",
			"boolean",
			"static",
			"null",
			"if",
			"const",
			"for",
			"true",
			"while",
			"long",
			"throw",
			"strictfp",
			"finally",
			"protected",
			"import",
			"native",
			"final",
			"return",
			"void",
			"enum",
			"else",
			"extends",
			"implements",
			"break",
			"transient",
			"new",
			"catch",
			"instanceof",
			"byte",
			"super",
			"volatile",
			"case",
			"assert",
			"short",
			"package",
			"default",
			"double",
			"public",
			"try",
			"this",
			"switch",
			"continue",
			"throws",
			"privileged",
			"aspectOf",
			"adviceexecution",
			"proceed",
			"cflowbelow",
			"cflow",
			"initialization",
			"preinitialization",
			"staticinitialization",
			"withincode",
			"target",
			"within",
			"execution",
			"getWithinTypeName",
			"handler",
			"thisJoinPoint",
			"thisJoinPointStaticPart",
			"thisEnclosingJoinPointStaticPart",
			"declare",
			"parents",
			"warning",
			"error",
			"soft",
			"precedence",
			"thisAspectInstance"
		];
		const SHORTKEYS = [
			"get",
			"set",
			"args",
			"call"
		];
		return {
			name: "AspectJ",
			keywords: KEYWORDS$6,
			illegal: /<\/|#/,
			contains: [
				hljs$1.COMMENT(/\/\*\*/, /\*\//, {
					relevance: 0,
					contains: [{
						begin: /\w+@/,
						relevance: 0
					}, {
						className: "doctag",
						begin: /@[A-Za-z]+/
					}]
				}),
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				{
					className: "class",
					beginKeywords: "aspect",
					end: /[{;=]/,
					excludeEnd: true,
					illegal: /[:;"\[\]]/,
					contains: [
						{ beginKeywords: "extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton" },
						hljs$1.UNDERSCORE_TITLE_MODE,
						{
							begin: /\([^\)]*/,
							end: /[)]+/,
							keywords: KEYWORDS$6.concat(SHORTKEYS),
							excludeEnd: false
						}
					]
				},
				{
					className: "class",
					beginKeywords: "class interface",
					end: /[{;=]/,
					excludeEnd: true,
					relevance: 0,
					keywords: "class interface",
					illegal: /[:"\[\]]/,
					contains: [{ beginKeywords: "extends implements" }, hljs$1.UNDERSCORE_TITLE_MODE]
				},
				{
					beginKeywords: "pointcut after before around throwing returning",
					end: /[)]/,
					excludeEnd: false,
					illegal: /["\[\]]/,
					contains: [{
						begin: regex.concat(hljs$1.UNDERSCORE_IDENT_RE, /\s*\(/),
						returnBegin: true,
						contains: [hljs$1.UNDERSCORE_TITLE_MODE]
					}]
				},
				{
					begin: /[:]/,
					returnBegin: true,
					end: /[{;]/,
					relevance: 0,
					excludeEnd: false,
					keywords: KEYWORDS$6,
					illegal: /["\[\]]/,
					contains: [{
						begin: regex.concat(hljs$1.UNDERSCORE_IDENT_RE, /\s*\(/),
						keywords: KEYWORDS$6.concat(SHORTKEYS),
						relevance: 0
					}, hljs$1.QUOTE_STRING_MODE]
				},
				{
					beginKeywords: "new throw",
					relevance: 0
				},
				{
					className: "function",
					begin: /\w+ +\w+(\.\w+)?\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,
					returnBegin: true,
					end: /[{;=]/,
					keywords: KEYWORDS$6,
					excludeEnd: true,
					contains: [
						{
							begin: regex.concat(hljs$1.UNDERSCORE_IDENT_RE, /\s*\(/),
							returnBegin: true,
							relevance: 0,
							contains: [hljs$1.UNDERSCORE_TITLE_MODE]
						},
						{
							className: "params",
							begin: /\(/,
							end: /\)/,
							relevance: 0,
							keywords: KEYWORDS$6,
							contains: [
								hljs$1.APOS_STRING_MODE,
								hljs$1.QUOTE_STRING_MODE,
								hljs$1.C_NUMBER_MODE,
								hljs$1.C_BLOCK_COMMENT_MODE
							]
						},
						hljs$1.C_LINE_COMMENT_MODE,
						hljs$1.C_BLOCK_COMMENT_MODE
					]
				},
				hljs$1.C_NUMBER_MODE,
				{
					className: "meta",
					begin: /@[A-Za-z]+/
				}
			]
		};
	}
	module.exports = aspectj;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/autohotkey.js
var require_autohotkey = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function autohotkey(hljs$1) {
		const BACKTICK_ESCAPE = { begin: "`[\\s\\S]" };
		return {
			name: "AutoHotkey",
			case_insensitive: true,
			aliases: ["ahk"],
			keywords: {
				keyword: "Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group",
				literal: "true false NOT AND OR",
				built_in: "ComSpec Clipboard ClipboardAll ErrorLevel"
			},
			contains: [
				BACKTICK_ESCAPE,
				hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { contains: [BACKTICK_ESCAPE] }),
				hljs$1.COMMENT(";", "$", { relevance: 0 }),
				hljs$1.C_BLOCK_COMMENT_MODE,
				{
					className: "number",
					begin: hljs$1.NUMBER_RE,
					relevance: 0
				},
				{
					className: "variable",
					begin: "%[a-zA-Z0-9#_$@]+%"
				},
				{
					className: "built_in",
					begin: "^\\s*\\w+\\s*(,|%)"
				},
				{
					className: "title",
					variants: [{ begin: "^[^\\n\";]+::(?!=)" }, {
						begin: "^[^\\n\";]+:(?!=)",
						relevance: 0
					}]
				},
				{
					className: "meta",
					begin: "^\\s*#\\w+",
					end: "$",
					relevance: 0
				},
				{
					className: "built_in",
					begin: "A_[a-zA-Z0-9]+"
				},
				{ begin: ",\\s*," }
			]
		};
	}
	module.exports = autohotkey;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/autoit.js
var require_autoit = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function autoit(hljs$1) {
		const KEYWORDS$6 = "ByRef Case Const ContinueCase ContinueLoop " + "Dim Do Else ElseIf EndFunc EndIf EndSelect " + "EndSwitch EndWith Enum Exit ExitLoop For Func " + "Global If In Local Next ReDim Return Select Static " + "Step Switch Then To Until Volatile WEnd While With";
		const DIRECTIVES = [
			"EndRegion",
			"forcedef",
			"forceref",
			"ignorefunc",
			"include",
			"include-once",
			"NoTrayIcon",
			"OnAutoItStartRegister",
			"pragma",
			"Region",
			"RequireAdmin",
			"Tidy_Off",
			"Tidy_On",
			"Tidy_Parameters"
		];
		const LITERAL = "True False And Null Not Or Default";
		const BUILT_IN = "Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive";
		const COMMENT$2 = { variants: [
			hljs$1.COMMENT(";", "$", { relevance: 0 }),
			hljs$1.COMMENT("#cs", "#ce"),
			hljs$1.COMMENT("#comments-start", "#comments-end")
		] };
		const VARIABLE = { begin: "\\$[A-z0-9_]+" };
		const STRING = {
			className: "string",
			variants: [{
				begin: /"/,
				end: /"/,
				contains: [{
					begin: /""/,
					relevance: 0
				}]
			}, {
				begin: /'/,
				end: /'/,
				contains: [{
					begin: /''/,
					relevance: 0
				}]
			}]
		};
		const NUMBER = { variants: [hljs$1.BINARY_NUMBER_MODE, hljs$1.C_NUMBER_MODE] };
		const PREPROCESSOR = {
			className: "meta",
			begin: "#",
			end: "$",
			keywords: { keyword: DIRECTIVES },
			contains: [
				{
					begin: /\\\n/,
					relevance: 0
				},
				{
					beginKeywords: "include",
					keywords: { keyword: "include" },
					end: "$",
					contains: [STRING, {
						className: "string",
						variants: [
							{
								begin: "<",
								end: ">"
							},
							{
								begin: /"/,
								end: /"/,
								contains: [{
									begin: /""/,
									relevance: 0
								}]
							},
							{
								begin: /'/,
								end: /'/,
								contains: [{
									begin: /''/,
									relevance: 0
								}]
							}
						]
					}]
				},
				STRING,
				COMMENT$2
			]
		};
		const CONSTANT = {
			className: "symbol",
			begin: "@[A-z0-9_]+"
		};
		const FUNCTION = {
			beginKeywords: "Func",
			end: "$",
			illegal: "\\$|\\[|%",
			contains: [hljs$1.inherit(hljs$1.UNDERSCORE_TITLE_MODE, { className: "title.function" }), {
				className: "params",
				begin: "\\(",
				end: "\\)",
				contains: [
					VARIABLE,
					STRING,
					NUMBER
				]
			}]
		};
		return {
			name: "AutoIt",
			case_insensitive: true,
			illegal: /\/\*/,
			keywords: {
				keyword: KEYWORDS$6,
				built_in: BUILT_IN,
				literal: LITERAL
			},
			contains: [
				COMMENT$2,
				VARIABLE,
				STRING,
				NUMBER,
				PREPROCESSOR,
				CONSTANT,
				FUNCTION
			]
		};
	}
	module.exports = autoit;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/avrasm.js
var require_avrasm = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function avrasm(hljs$1) {
		return {
			name: "AVR Assembly",
			case_insensitive: true,
			keywords: {
				$pattern: "\\.?" + hljs$1.IDENT_RE,
				keyword: "adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs " + "brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr " + "clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor " + "fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul " + "muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs " + "sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub " + "subi swap tst wdr",
				built_in: "r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 " + "r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl " + "ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h " + "tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c " + "ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg " + "ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk " + "tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al " + "ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr " + "porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 " + "ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf",
				meta: ".byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list " + ".listmac .macro .nolist .org .set"
			},
			contains: [
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.COMMENT(";", "$", { relevance: 0 }),
				hljs$1.C_NUMBER_MODE,
				hljs$1.BINARY_NUMBER_MODE,
				{
					className: "number",
					begin: "\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"
				},
				hljs$1.QUOTE_STRING_MODE,
				{
					className: "string",
					begin: "'",
					end: "[^\\\\]'",
					illegal: "[^\\\\][^']"
				},
				{
					className: "symbol",
					begin: "^[A-Za-z0-9_.$]+:"
				},
				{
					className: "meta",
					begin: "#",
					end: "$"
				},
				{
					className: "subst",
					begin: "@[0-9]+"
				}
			]
		};
	}
	module.exports = avrasm;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/awk.js
var require_awk = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function awk(hljs$1) {
		const VARIABLE = {
			className: "variable",
			variants: [{ begin: /\$[\w\d#@][\w\d_]*/ }, { begin: /\$\{(.*?)\}/ }]
		};
		const KEYWORDS$6 = "BEGIN END if else while do for in break continue delete next nextfile function func exit|10";
		const STRING = {
			className: "string",
			contains: [hljs$1.BACKSLASH_ESCAPE],
			variants: [
				{
					begin: /(u|b)?r?'''/,
					end: /'''/,
					relevance: 10
				},
				{
					begin: /(u|b)?r?"""/,
					end: /"""/,
					relevance: 10
				},
				{
					begin: /(u|r|ur)'/,
					end: /'/,
					relevance: 10
				},
				{
					begin: /(u|r|ur)"/,
					end: /"/,
					relevance: 10
				},
				{
					begin: /(b|br)'/,
					end: /'/
				},
				{
					begin: /(b|br)"/,
					end: /"/
				},
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE
			]
		};
		return {
			name: "Awk",
			keywords: { keyword: KEYWORDS$6 },
			contains: [
				VARIABLE,
				STRING,
				hljs$1.REGEXP_MODE,
				hljs$1.HASH_COMMENT_MODE,
				hljs$1.NUMBER_MODE
			]
		};
	}
	module.exports = awk;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/axapta.js
var require_axapta = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function axapta(hljs$1) {
		const IDENT_RE$6 = hljs$1.UNDERSCORE_IDENT_RE;
		const BUILT_IN_KEYWORDS = [
			"anytype",
			"boolean",
			"byte",
			"char",
			"container",
			"date",
			"double",
			"enum",
			"guid",
			"int",
			"int64",
			"long",
			"real",
			"short",
			"str",
			"utcdatetime",
			"var"
		];
		const LITERAL_KEYWORDS = [
			"default",
			"false",
			"null",
			"true"
		];
		const NORMAL_KEYWORDS = [
			"abstract",
			"as",
			"asc",
			"avg",
			"break",
			"breakpoint",
			"by",
			"byref",
			"case",
			"catch",
			"changecompany",
			"class",
			"client",
			"client",
			"common",
			"const",
			"continue",
			"count",
			"crosscompany",
			"delegate",
			"delete_from",
			"desc",
			"display",
			"div",
			"do",
			"edit",
			"else",
			"eventhandler",
			"exists",
			"extends",
			"final",
			"finally",
			"firstfast",
			"firstonly",
			"firstonly1",
			"firstonly10",
			"firstonly100",
			"firstonly1000",
			"flush",
			"for",
			"forceliterals",
			"forcenestedloop",
			"forceplaceholders",
			"forceselectorder",
			"forupdate",
			"from",
			"generateonly",
			"group",
			"hint",
			"if",
			"implements",
			"in",
			"index",
			"insert_recordset",
			"interface",
			"internal",
			"is",
			"join",
			"like",
			"maxof",
			"minof",
			"mod",
			"namespace",
			"new",
			"next",
			"nofetch",
			"notexists",
			"optimisticlock",
			"order",
			"outer",
			"pessimisticlock",
			"print",
			"private",
			"protected",
			"public",
			"readonly",
			"repeatableread",
			"retry",
			"return",
			"reverse",
			"select",
			"server",
			"setting",
			"static",
			"sum",
			"super",
			"switch",
			"this",
			"throw",
			"try",
			"ttsabort",
			"ttsbegin",
			"ttscommit",
			"unchecked",
			"update_recordset",
			"using",
			"validtimestate",
			"void",
			"where",
			"while"
		];
		const KEYWORDS$6 = {
			keyword: NORMAL_KEYWORDS,
			built_in: BUILT_IN_KEYWORDS,
			literal: LITERAL_KEYWORDS
		};
		const CLASS_DEFINITION = {
			variants: [{ match: [
				/(class|interface)\s+/,
				IDENT_RE$6,
				/\s+(extends|implements)\s+/,
				IDENT_RE$6
			] }, { match: [/class\s+/, IDENT_RE$6] }],
			scope: {
				2: "title.class",
				4: "title.class.inherited"
			},
			keywords: KEYWORDS$6
		};
		return {
			name: "X++",
			aliases: ["x++"],
			keywords: KEYWORDS$6,
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.C_NUMBER_MODE,
				{
					className: "meta",
					begin: "#",
					end: "$"
				},
				CLASS_DEFINITION
			]
		};
	}
	module.exports = axapta;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/bash.js
var require_bash = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function bash$1(hljs$1) {
		const regex = hljs$1.regex;
		const VAR = {};
		const BRACED_VAR = {
			begin: /\$\{/,
			end: /\}/,
			contains: ["self", {
				begin: /:-/,
				contains: [VAR]
			}]
		};
		Object.assign(VAR, {
			className: "variable",
			variants: [{ begin: regex.concat(/\$[\w\d#@][\w\d_]*/, `(?![\\w\\d])(?![$])`) }, BRACED_VAR]
		});
		const SUBST = {
			className: "subst",
			begin: /\$\(/,
			end: /\)/,
			contains: [hljs$1.BACKSLASH_ESCAPE]
		};
		const COMMENT$2 = hljs$1.inherit(hljs$1.COMMENT(), {
			match: [/(^|\s)/, /#.*$/],
			scope: { 2: "comment" }
		});
		const HERE_DOC = {
			begin: /<<-?\s*(?=\w+)/,
			starts: { contains: [hljs$1.END_SAME_AS_BEGIN({
				begin: /(\w+)/,
				end: /(\w+)/,
				className: "string"
			})] }
		};
		const QUOTE_STRING = {
			className: "string",
			begin: /"/,
			end: /"/,
			contains: [
				hljs$1.BACKSLASH_ESCAPE,
				VAR,
				SUBST
			]
		};
		SUBST.contains.push(QUOTE_STRING);
		const ESCAPED_QUOTE = { match: /\\"/ };
		const APOS_STRING = {
			className: "string",
			begin: /'/,
			end: /'/
		};
		const ESCAPED_APOS = { match: /\\'/ };
		const ARITHMETIC = {
			begin: /\$?\(\(/,
			end: /\)\)/,
			contains: [
				{
					begin: /\d+#[0-9a-f]+/,
					className: "number"
				},
				hljs$1.NUMBER_MODE,
				VAR
			]
		};
		const SH_LIKE_SHELLS = [
			"fish",
			"bash",
			"zsh",
			"sh",
			"csh",
			"ksh",
			"tcsh",
			"dash",
			"scsh"
		];
		const KNOWN_SHEBANG = hljs$1.SHEBANG({
			binary: `(${SH_LIKE_SHELLS.join("|")})`,
			relevance: 10
		});
		const FUNCTION = {
			className: "function",
			begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/,
			returnBegin: true,
			contains: [hljs$1.inherit(hljs$1.TITLE_MODE, { begin: /\w[\w\d_]*/ })],
			relevance: 0
		};
		const KEYWORDS$6 = [
			"if",
			"then",
			"else",
			"elif",
			"fi",
			"time",
			"for",
			"while",
			"until",
			"in",
			"do",
			"done",
			"case",
			"esac",
			"coproc",
			"function",
			"select"
		];
		const LITERALS$6 = ["true", "false"];
		const PATH_MODE = { match: /(\/[a-z._-]+)+/ };
		const SHELL_BUILT_INS = [
			"break",
			"cd",
			"continue",
			"eval",
			"exec",
			"exit",
			"export",
			"getopts",
			"hash",
			"pwd",
			"readonly",
			"return",
			"shift",
			"test",
			"times",
			"trap",
			"umask",
			"unset"
		];
		const BASH_BUILT_INS = [
			"alias",
			"bind",
			"builtin",
			"caller",
			"command",
			"declare",
			"echo",
			"enable",
			"help",
			"let",
			"local",
			"logout",
			"mapfile",
			"printf",
			"read",
			"readarray",
			"source",
			"sudo",
			"type",
			"typeset",
			"ulimit",
			"unalias"
		];
		const ZSH_BUILT_INS = [
			"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"
		];
		const GNU_CORE_UTILS = [
			"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: KEYWORDS$6,
				literal: LITERALS$6,
				built_in: [
					...SHELL_BUILT_INS,
					...BASH_BUILT_INS,
					"set",
					"shopt",
					...ZSH_BUILT_INS,
					...GNU_CORE_UTILS
				]
			},
			contains: [
				KNOWN_SHEBANG,
				hljs$1.SHEBANG(),
				FUNCTION,
				ARITHMETIC,
				COMMENT$2,
				HERE_DOC,
				PATH_MODE,
				QUOTE_STRING,
				ESCAPED_QUOTE,
				APOS_STRING,
				ESCAPED_APOS,
				VAR
			]
		};
	}
	module.exports = bash$1;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/basic.js
var require_basic = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function basic(hljs$1) {
		const KEYWORDS$6 = [
			"ABS",
			"ASC",
			"AND",
			"ATN",
			"AUTO|0",
			"BEEP",
			"BLOAD|10",
			"BSAVE|10",
			"CALL",
			"CALLS",
			"CDBL",
			"CHAIN",
			"CHDIR",
			"CHR$|10",
			"CINT",
			"CIRCLE",
			"CLEAR",
			"CLOSE",
			"CLS",
			"COLOR",
			"COM",
			"COMMON",
			"CONT",
			"COS",
			"CSNG",
			"CSRLIN",
			"CVD",
			"CVI",
			"CVS",
			"DATA",
			"DATE$",
			"DEFDBL",
			"DEFINT",
			"DEFSNG",
			"DEFSTR",
			"DEF|0",
			"SEG",
			"USR",
			"DELETE",
			"DIM",
			"DRAW",
			"EDIT",
			"END",
			"ENVIRON",
			"ENVIRON$",
			"EOF",
			"EQV",
			"ERASE",
			"ERDEV",
			"ERDEV$",
			"ERL",
			"ERR",
			"ERROR",
			"EXP",
			"FIELD",
			"FILES",
			"FIX",
			"FOR|0",
			"FRE",
			"GET",
			"GOSUB|10",
			"GOTO",
			"HEX$",
			"IF",
			"THEN",
			"ELSE|0",
			"INKEY$",
			"INP",
			"INPUT",
			"INPUT#",
			"INPUT$",
			"INSTR",
			"IMP",
			"INT",
			"IOCTL",
			"IOCTL$",
			"KEY",
			"ON",
			"OFF",
			"LIST",
			"KILL",
			"LEFT$",
			"LEN",
			"LET",
			"LINE",
			"LLIST",
			"LOAD",
			"LOC",
			"LOCATE",
			"LOF",
			"LOG",
			"LPRINT",
			"USING",
			"LSET",
			"MERGE",
			"MID$",
			"MKDIR",
			"MKD$",
			"MKI$",
			"MKS$",
			"MOD",
			"NAME",
			"NEW",
			"NEXT",
			"NOISE",
			"NOT",
			"OCT$",
			"ON",
			"OR",
			"PEN",
			"PLAY",
			"STRIG",
			"OPEN",
			"OPTION",
			"BASE",
			"OUT",
			"PAINT",
			"PALETTE",
			"PCOPY",
			"PEEK",
			"PMAP",
			"POINT",
			"POKE",
			"POS",
			"PRINT",
			"PRINT]",
			"PSET",
			"PRESET",
			"PUT",
			"RANDOMIZE",
			"READ",
			"REM",
			"RENUM",
			"RESET|0",
			"RESTORE",
			"RESUME",
			"RETURN|0",
			"RIGHT$",
			"RMDIR",
			"RND",
			"RSET",
			"RUN",
			"SAVE",
			"SCREEN",
			"SGN",
			"SHELL",
			"SIN",
			"SOUND",
			"SPACE$",
			"SPC",
			"SQR",
			"STEP",
			"STICK",
			"STOP",
			"STR$",
			"STRING$",
			"SWAP",
			"SYSTEM",
			"TAB",
			"TAN",
			"TIME$",
			"TIMER",
			"TROFF",
			"TRON",
			"TO",
			"USR",
			"VAL",
			"VARPTR",
			"VARPTR$",
			"VIEW",
			"WAIT",
			"WHILE",
			"WEND",
			"WIDTH",
			"WINDOW",
			"WRITE",
			"XOR"
		];
		return {
			name: "BASIC",
			case_insensitive: true,
			illegal: "^.",
			keywords: {
				$pattern: "[a-zA-Z][a-zA-Z0-9_$%!#]*",
				keyword: KEYWORDS$6
			},
			contains: [
				{
					scope: "string",
					begin: /"/,
					end: /"|$/,
					contains: [hljs$1.BACKSLASH_ESCAPE]
				},
				hljs$1.COMMENT("REM", "$", { relevance: 10 }),
				hljs$1.COMMENT("'", "$", { relevance: 0 }),
				{
					className: "symbol",
					begin: "^[0-9]+ ",
					relevance: 10
				},
				{
					className: "number",
					begin: "\\b\\d+(\\.\\d+)?([edED]\\d+)?[#!]?",
					relevance: 0
				},
				{
					className: "number",
					begin: "(&[hH][0-9a-fA-F]{1,4})"
				},
				{
					className: "number",
					begin: "(&[oO][0-7]{1,6})"
				}
			]
		};
	}
	module.exports = basic;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/bnf.js
var require_bnf = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function bnf(hljs$1) {
		return {
			name: "Backus–Naur Form",
			contains: [{
				className: "attribute",
				begin: /</,
				end: />/
			}, {
				begin: /::=/,
				end: /$/,
				contains: [
					{
						begin: /</,
						end: />/
					},
					hljs$1.C_LINE_COMMENT_MODE,
					hljs$1.C_BLOCK_COMMENT_MODE,
					hljs$1.APOS_STRING_MODE,
					hljs$1.QUOTE_STRING_MODE
				]
			}]
		};
	}
	module.exports = bnf;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/brainfuck.js
var require_brainfuck = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function brainfuck(hljs$1) {
		const LITERAL = {
			className: "literal",
			begin: /[+-]+/,
			relevance: 0
		};
		return {
			name: "Brainfuck",
			aliases: ["bf"],
			contains: [
				hljs$1.COMMENT(/[^\[\]\.,\+\-<> \r\n]/, /[\[\]\.,\+\-<> \r\n]/, {
					contains: [{
						match: /[ ]+[^\[\]\.,\+\-<> \r\n]/,
						relevance: 0
					}],
					returnEnd: true,
					relevance: 0
				}),
				{
					className: "title",
					begin: "[\\[\\]]",
					relevance: 0
				},
				{
					className: "string",
					begin: "[\\.,]",
					relevance: 0
				},
				{
					begin: /(?=\+\+|--)/,
					contains: [LITERAL]
				},
				LITERAL
			]
		};
	}
	module.exports = brainfuck;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/c.js
var require_c = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function c$1(hljs$1) {
		const regex = hljs$1.regex;
		const C_LINE_COMMENT_MODE$2 = hljs$1.COMMENT("//", "$", { contains: [{ begin: /\\\n/ }] });
		const DECLTYPE_AUTO_RE = "decltype\\(auto\\)";
		const NAMESPACE_RE = "[a-zA-Z_]\\w*::";
		const TEMPLATE_ARGUMENT_RE = "<[^<>]+>";
		const FUNCTION_TYPE_RE = "(" + DECLTYPE_AUTO_RE + "|" + regex.optional(NAMESPACE_RE) + "[a-zA-Z_]\\w*" + regex.optional(TEMPLATE_ARGUMENT_RE) + ")";
		const TYPES$6 = {
			className: "type",
			variants: [{ begin: "\\b[a-z\\d_]*_t\\b" }, { match: /\batomic_[a-z]{3,6}\b/ }]
		};
		const CHARACTER_ESCAPES = "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)";
		const STRINGS = {
			className: "string",
			variants: [
				{
					begin: "(u8?|U|L)?\"",
					end: "\"",
					illegal: "\\n",
					contains: [hljs$1.BACKSLASH_ESCAPE]
				},
				{
					begin: "(u8?|U|L)?'(" + CHARACTER_ESCAPES + "|.)",
					end: "'",
					illegal: "."
				},
				hljs$1.END_SAME_AS_BEGIN({
					begin: /(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,
					end: /\)([^()\\ ]{0,16})"/
				})
			]
		};
		const NUMBERS = {
			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
		};
		const PREPROCESSOR = {
			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
				},
				hljs$1.inherit(STRINGS, { className: "string" }),
				{
					className: "string",
					begin: /<.*?>/
				},
				C_LINE_COMMENT_MODE$2,
				hljs$1.C_BLOCK_COMMENT_MODE
			]
		};
		const TITLE_MODE$2 = {
			className: "title",
			begin: regex.optional(NAMESPACE_RE) + hljs$1.IDENT_RE,
			relevance: 0
		};
		const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs$1.IDENT_RE + "\\s*\\(";
		const C_KEYWORDS = [
			"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"
		];
		const C_TYPES = [
			"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"
		];
		const KEYWORDS$6 = {
			keyword: C_KEYWORDS,
			type: C_TYPES,
			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"
		};
		const EXPRESSION_CONTAINS = [
			PREPROCESSOR,
			TYPES$6,
			C_LINE_COMMENT_MODE$2,
			hljs$1.C_BLOCK_COMMENT_MODE,
			NUMBERS,
			STRINGS
		];
		const EXPRESSION_CONTEXT = {
			variants: [
				{
					begin: /=/,
					end: /;/
				},
				{
					begin: /\(/,
					end: /\)/
				},
				{
					beginKeywords: "new throw return else",
					end: /;/
				}
			],
			keywords: KEYWORDS$6,
			contains: EXPRESSION_CONTAINS.concat([{
				begin: /\(/,
				end: /\)/,
				keywords: KEYWORDS$6,
				contains: EXPRESSION_CONTAINS.concat(["self"]),
				relevance: 0
			}]),
			relevance: 0
		};
		const FUNCTION_DECLARATION = {
			begin: "(" + FUNCTION_TYPE_RE + "[\\*&\\s]+)+" + FUNCTION_TITLE,
			returnBegin: true,
			end: /[{;=]/,
			excludeEnd: true,
			keywords: KEYWORDS$6,
			illegal: /[^\w\s\*&:<>.]/,
			contains: [
				{
					begin: DECLTYPE_AUTO_RE,
					keywords: KEYWORDS$6,
					relevance: 0
				},
				{
					begin: FUNCTION_TITLE,
					returnBegin: true,
					contains: [hljs$1.inherit(TITLE_MODE$2, { className: "title.function" })],
					relevance: 0
				},
				{
					relevance: 0,
					match: /,/
				},
				{
					className: "params",
					begin: /\(/,
					end: /\)/,
					keywords: KEYWORDS$6,
					relevance: 0,
					contains: [
						C_LINE_COMMENT_MODE$2,
						hljs$1.C_BLOCK_COMMENT_MODE,
						STRINGS,
						NUMBERS,
						TYPES$6,
						{
							begin: /\(/,
							end: /\)/,
							keywords: KEYWORDS$6,
							relevance: 0,
							contains: [
								"self",
								C_LINE_COMMENT_MODE$2,
								hljs$1.C_BLOCK_COMMENT_MODE,
								STRINGS,
								NUMBERS,
								TYPES$6
							]
						}
					]
				},
				TYPES$6,
				C_LINE_COMMENT_MODE$2,
				hljs$1.C_BLOCK_COMMENT_MODE,
				PREPROCESSOR
			]
		};
		return {
			name: "C",
			aliases: ["h"],
			keywords: KEYWORDS$6,
			disableAutodetect: true,
			illegal: "</",
			contains: [].concat(EXPRESSION_CONTEXT, FUNCTION_DECLARATION, EXPRESSION_CONTAINS, [
				PREPROCESSOR,
				{
					begin: hljs$1.IDENT_RE + "::",
					keywords: KEYWORDS$6
				},
				{
					className: "class",
					beginKeywords: "enum class struct union",
					end: /[{;:<>=]/,
					contains: [{ beginKeywords: "final class struct" }, hljs$1.TITLE_MODE]
				}
			]),
			exports: {
				preprocessor: PREPROCESSOR,
				strings: STRINGS,
				keywords: KEYWORDS$6
			}
		};
	}
	module.exports = c$1;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/cal.js
var require_cal = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function cal(hljs$1) {
		const regex = hljs$1.regex;
		const KEYWORDS$6 = [
			"div",
			"mod",
			"in",
			"and",
			"or",
			"not",
			"xor",
			"asserterror",
			"begin",
			"case",
			"do",
			"downto",
			"else",
			"end",
			"exit",
			"for",
			"local",
			"if",
			"of",
			"repeat",
			"then",
			"to",
			"until",
			"while",
			"with",
			"var"
		];
		const LITERALS$6 = "false true";
		const COMMENT_MODES = [
			hljs$1.C_LINE_COMMENT_MODE,
			hljs$1.COMMENT(/\{/, /\}/, { relevance: 0 }),
			hljs$1.COMMENT(/\(\*/, /\*\)/, { relevance: 10 })
		];
		const STRING = {
			className: "string",
			begin: /'/,
			end: /'/,
			contains: [{ begin: /''/ }]
		};
		const CHAR_STRING = {
			className: "string",
			begin: /(#\d+)+/
		};
		const DATE = {
			className: "number",
			begin: "\\b\\d+(\\.\\d+)?(DT|D|T)",
			relevance: 0
		};
		const DBL_QUOTED_VARIABLE = {
			className: "string",
			begin: "\"",
			end: "\""
		};
		const PROCEDURE = {
			match: [
				/procedure/,
				/\s+/,
				/[a-zA-Z_][\w@]*/,
				/\s*/
			],
			scope: {
				1: "keyword",
				3: "title.function"
			},
			contains: [{
				className: "params",
				begin: /\(/,
				end: /\)/,
				keywords: KEYWORDS$6,
				contains: [
					STRING,
					CHAR_STRING,
					hljs$1.NUMBER_MODE
				]
			}, ...COMMENT_MODES]
		};
		const OBJECT_TYPES = [
			"Table",
			"Form",
			"Report",
			"Dataport",
			"Codeunit",
			"XMLport",
			"MenuSuite",
			"Page",
			"Query"
		];
		const OBJECT = {
			match: [
				/OBJECT/,
				/\s+/,
				regex.either(...OBJECT_TYPES),
				/\s+/,
				/\d+/,
				/\s+(?=[^\s])/,
				/.*/,
				/$/
			],
			relevance: 3,
			scope: {
				1: "keyword",
				3: "type",
				5: "number",
				7: "title"
			}
		};
		const PROPERTY = {
			match: /[\w]+(?=\=)/,
			scope: "attribute",
			relevance: 0
		};
		return {
			name: "C/AL",
			case_insensitive: true,
			keywords: {
				keyword: KEYWORDS$6,
				literal: LITERALS$6
			},
			illegal: /\/\*/,
			contains: [
				PROPERTY,
				STRING,
				CHAR_STRING,
				DATE,
				DBL_QUOTED_VARIABLE,
				hljs$1.NUMBER_MODE,
				OBJECT,
				PROCEDURE
			]
		};
	}
	module.exports = cal;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/capnproto.js
var require_capnproto = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function capnproto(hljs$1) {
		const KEYWORDS$6 = [
			"struct",
			"enum",
			"interface",
			"union",
			"group",
			"import",
			"using",
			"const",
			"annotation",
			"extends",
			"in",
			"of",
			"on",
			"as",
			"with",
			"from",
			"fixed"
		];
		const TYPES$6 = [
			"Void",
			"Bool",
			"Int8",
			"Int16",
			"Int32",
			"Int64",
			"UInt8",
			"UInt16",
			"UInt32",
			"UInt64",
			"Float32",
			"Float64",
			"Text",
			"Data",
			"AnyPointer",
			"AnyStruct",
			"Capability",
			"List"
		];
		const LITERALS$6 = ["true", "false"];
		const CLASS_DEFINITION = {
			variants: [{ match: [
				/(struct|enum|interface)/,
				/\s+/,
				hljs$1.IDENT_RE
			] }, { match: [
				/extends/,
				/\s*\(/,
				hljs$1.IDENT_RE,
				/\s*\)/
			] }],
			scope: {
				1: "keyword",
				3: "title.class"
			}
		};
		return {
			name: "Cap’n Proto",
			aliases: ["capnp"],
			keywords: {
				keyword: KEYWORDS$6,
				type: TYPES$6,
				literal: LITERALS$6
			},
			contains: [
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.NUMBER_MODE,
				hljs$1.HASH_COMMENT_MODE,
				{
					className: "meta",
					begin: /@0x[\w\d]{16};/,
					illegal: /\n/
				},
				{
					className: "symbol",
					begin: /@\d+\b/
				},
				CLASS_DEFINITION
			]
		};
	}
	module.exports = capnproto;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/ceylon.js
var require_ceylon = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function ceylon(hljs$1) {
		const KEYWORDS$6 = [
			"assembly",
			"module",
			"package",
			"import",
			"alias",
			"class",
			"interface",
			"object",
			"given",
			"value",
			"assign",
			"void",
			"function",
			"new",
			"of",
			"extends",
			"satisfies",
			"abstracts",
			"in",
			"out",
			"return",
			"break",
			"continue",
			"throw",
			"assert",
			"dynamic",
			"if",
			"else",
			"switch",
			"case",
			"for",
			"while",
			"try",
			"catch",
			"finally",
			"then",
			"let",
			"this",
			"outer",
			"super",
			"is",
			"exists",
			"nonempty"
		];
		const DECLARATION_MODIFIERS = [
			"shared",
			"abstract",
			"formal",
			"default",
			"actual",
			"variable",
			"late",
			"native",
			"deprecated",
			"final",
			"sealed",
			"annotation",
			"suppressWarnings",
			"small"
		];
		const DOCUMENTATION = [
			"doc",
			"by",
			"license",
			"see",
			"throws",
			"tagged"
		];
		const SUBST = {
			className: "subst",
			excludeBegin: true,
			excludeEnd: true,
			begin: /``/,
			end: /``/,
			keywords: KEYWORDS$6,
			relevance: 10
		};
		const EXPRESSIONS = [
			{
				className: "string",
				begin: "\"\"\"",
				end: "\"\"\"",
				relevance: 10
			},
			{
				className: "string",
				begin: "\"",
				end: "\"",
				contains: [SUBST]
			},
			{
				className: "string",
				begin: "'",
				end: "'"
			},
			{
				className: "number",
				begin: "#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?",
				relevance: 0
			}
		];
		SUBST.contains = EXPRESSIONS;
		return {
			name: "Ceylon",
			keywords: {
				keyword: KEYWORDS$6.concat(DECLARATION_MODIFIERS),
				meta: DOCUMENTATION
			},
			illegal: "\\$[^01]|#[^0-9a-fA-F]",
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.COMMENT("/\\*", "\\*/", { contains: ["self"] }),
				{
					className: "meta",
					begin: "@[a-z]\\w*(?::\"[^\"]*\")?"
				}
			].concat(EXPRESSIONS)
		};
	}
	module.exports = ceylon;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/clean.js
var require_clean = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function clean(hljs$1) {
		const KEYWORDS$6 = [
			"if",
			"let",
			"in",
			"with",
			"where",
			"case",
			"of",
			"class",
			"instance",
			"otherwise",
			"implementation",
			"definition",
			"system",
			"module",
			"from",
			"import",
			"qualified",
			"as",
			"special",
			"code",
			"inline",
			"foreign",
			"export",
			"ccall",
			"stdcall",
			"generic",
			"derive",
			"infix",
			"infixl",
			"infixr"
		];
		return {
			name: "Clean",
			aliases: ["icl", "dcl"],
			keywords: {
				keyword: KEYWORDS$6,
				built_in: "Int Real Char Bool",
				literal: "True False"
			},
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.C_NUMBER_MODE,
				{ begin: "->|<-[|:]?|#!?|>>=|\\{\\||\\|\\}|:==|=:|<>" }
			]
		};
	}
	module.exports = clean;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/clojure.js
var require_clojure = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function clojure(hljs$1) {
		const SYMBOLSTART = "a-zA-Z_\\-!.?+*=<>&'";
		const SYMBOL_RE = "[#]?[" + SYMBOLSTART + "][" + SYMBOLSTART + "0-9/;:$#]*";
		const globals = "def defonce defprotocol defstruct defmulti defmethod defn- defn defmacro deftype defrecord";
		const keywords$1 = {
			$pattern: SYMBOL_RE,
			built_in: globals + " " + "cond apply if-not if-let if not not= =|0 <|0 >|0 <=|0 >=|0 ==|0 +|0 /|0 *|0 -|0 rem " + "quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? " + "set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? " + "class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? " + "string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . " + "inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last " + "drop-while while intern condp case reduced cycle split-at split-with repeat replicate " + "iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext " + "nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends " + "add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler " + "set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter " + "monitor-exit macroexpand macroexpand-1 for dosync and or " + "when when-not when-let comp juxt partial sequence memoize constantly complement identity assert " + "peek pop doto proxy first rest cons cast coll last butlast " + "sigs reify second ffirst fnext nfirst nnext meta with-meta ns in-ns create-ns import " + "refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! " + "assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger " + "bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline " + "flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking " + "assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! " + "reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! " + "new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty " + "hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list " + "disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer " + "chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate " + "unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta " + "lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"
		};
		const SYMBOL = {
			begin: SYMBOL_RE,
			relevance: 0
		};
		const NUMBER = {
			scope: "number",
			relevance: 0,
			variants: [
				{ match: /[-+]?0[xX][0-9a-fA-F]+N?/ },
				{ match: /[-+]?0[0-7]+N?/ },
				{ match: /[-+]?[1-9][0-9]?[rR][0-9a-zA-Z]+N?/ },
				{ match: /[-+]?[0-9]+\/[0-9]+N?/ },
				{ match: /[-+]?[0-9]+((\.[0-9]*([eE][+-]?[0-9]+)?M?)|([eE][+-]?[0-9]+M?|M))/ },
				{ match: /[-+]?([1-9][0-9]*|0)N?/ }
			]
		};
		const CHARACTER = {
			scope: "character",
			variants: [
				{ match: /\\o[0-3]?[0-7]{1,2}/ },
				{ match: /\\u[0-9a-fA-F]{4}/ },
				{ match: /\\(newline|space|tab|formfeed|backspace|return)/ },
				{
					match: /\\\S/,
					relevance: 0
				}
			]
		};
		const REGEX = {
			scope: "regex",
			begin: /#"/,
			end: /"/,
			contains: [hljs$1.BACKSLASH_ESCAPE]
		};
		const STRING = hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { illegal: null });
		const COMMA = {
			scope: "punctuation",
			match: /,/,
			relevance: 0
		};
		const COMMENT$2 = hljs$1.COMMENT(";", "$", { relevance: 0 });
		const LITERAL = {
			className: "literal",
			begin: /\b(true|false|nil)\b/
		};
		const COLLECTION = {
			begin: "\\[|(#::?" + SYMBOL_RE + ")?\\{",
			end: "[\\]\\}]",
			relevance: 0
		};
		const KEY = {
			className: "symbol",
			begin: "[:]{1,2}" + SYMBOL_RE
		};
		const LIST = {
			begin: "\\(",
			end: "\\)"
		};
		const BODY = {
			endsWithParent: true,
			relevance: 0
		};
		const NAME = {
			keywords: keywords$1,
			className: "name",
			begin: SYMBOL_RE,
			relevance: 0,
			starts: BODY
		};
		const DEFAULT_CONTAINS = [
			COMMA,
			LIST,
			CHARACTER,
			REGEX,
			STRING,
			COMMENT$2,
			KEY,
			COLLECTION,
			NUMBER,
			LITERAL,
			SYMBOL
		];
		const GLOBAL = {
			beginKeywords: globals,
			keywords: {
				$pattern: SYMBOL_RE,
				keyword: globals
			},
			end: "(\\[|#|\\d|\"|:|\\{|\\)|\\(|$)",
			contains: [{
				className: "title",
				begin: SYMBOL_RE,
				relevance: 0,
				excludeEnd: true,
				endsParent: true
			}].concat(DEFAULT_CONTAINS)
		};
		LIST.contains = [
			GLOBAL,
			NAME,
			BODY
		];
		BODY.contains = DEFAULT_CONTAINS;
		COLLECTION.contains = DEFAULT_CONTAINS;
		return {
			name: "Clojure",
			aliases: ["clj", "edn"],
			illegal: /\S/,
			contains: [
				COMMA,
				LIST,
				CHARACTER,
				REGEX,
				STRING,
				COMMENT$2,
				KEY,
				COLLECTION,
				NUMBER,
				LITERAL
			]
		};
	}
	module.exports = clojure;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/clojure-repl.js
var require_clojure_repl = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function clojureRepl(hljs$1) {
		return {
			name: "Clojure REPL",
			contains: [{
				className: "meta.prompt",
				begin: /^([\w.-]+|\s*#_)?=>/,
				starts: {
					end: /$/,
					subLanguage: "clojure"
				}
			}]
		};
	}
	module.exports = clojureRepl;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/cmake.js
var require_cmake = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function cmake(hljs$1) {
		return {
			name: "CMake",
			aliases: ["cmake.in"],
			case_insensitive: true,
			keywords: { keyword: "break cmake_host_system_information cmake_minimum_required cmake_parse_arguments " + "cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro " + "endwhile execute_process file find_file find_library find_package find_path " + "find_program foreach function get_cmake_property get_directory_property " + "get_filename_component get_property if include include_guard list macro " + "mark_as_advanced math message option return separate_arguments " + "set_directory_properties set_property set site_name string unset variable_watch while " + "add_compile_definitions add_compile_options add_custom_command add_custom_target " + "add_definitions add_dependencies add_executable add_library add_link_options " + "add_subdirectory add_test aux_source_directory build_command create_test_sourcelist " + "define_property enable_language enable_testing export fltk_wrap_ui " + "get_source_file_property get_target_property get_test_property include_directories " + "include_external_msproject include_regular_expression install link_directories " + "link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions " + "set_source_files_properties set_target_properties set_tests_properties source_group " + "target_compile_definitions target_compile_features target_compile_options " + "target_include_directories target_link_directories target_link_libraries " + "target_link_options target_sources try_compile try_run " + "ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck " + "ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit " + "ctest_test ctest_update ctest_upload " + "build_name exec_program export_library_dependencies install_files install_programs " + "install_targets load_command make_directory output_required_files remove " + "subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file " + "qt5_use_modules qt5_use_package qt5_wrap_cpp " + "on off true false and or not command policy target test exists is_newer_than " + "is_directory is_symlink is_absolute matches less greater equal less_equal " + "greater_equal strless strgreater strequal strless_equal strgreater_equal version_less " + "version_greater version_equal version_less_equal version_greater_equal in_list defined" },
			contains: [
				{
					className: "variable",
					begin: /\$\{/,
					end: /\}/
				},
				hljs$1.COMMENT(/#\[\[/, /]]/),
				hljs$1.HASH_COMMENT_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.NUMBER_MODE
			]
		};
	}
	module.exports = cmake;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/coffeescript.js
var require_coffeescript = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	const KEYWORDS$5 = [
		"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"
	];
	const LITERALS$5 = [
		"true",
		"false",
		"null",
		"undefined",
		"NaN",
		"Infinity"
	];
	const TYPES$5 = [
		"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"
	];
	const ERROR_TYPES$5 = [
		"Error",
		"EvalError",
		"InternalError",
		"RangeError",
		"ReferenceError",
		"SyntaxError",
		"TypeError",
		"URIError"
	];
	const BUILT_IN_GLOBALS$5 = [
		"setInterval",
		"setTimeout",
		"clearInterval",
		"clearTimeout",
		"require",
		"exports",
		"eval",
		"isFinite",
		"isNaN",
		"parseFloat",
		"parseInt",
		"decodeURI",
		"decodeURIComponent",
		"encodeURI",
		"encodeURIComponent",
		"escape",
		"unescape"
	];
	const BUILT_INS$5 = [].concat(BUILT_IN_GLOBALS$5, TYPES$5, ERROR_TYPES$5);
	/** @type LanguageFn */
	function coffeescript(hljs$1) {
		const COFFEE_BUILT_INS = ["npm", "print"];
		const COFFEE_LITERALS = [
			"yes",
			"no",
			"on",
			"off"
		];
		const COFFEE_KEYWORDS = [
			"then",
			"unless",
			"until",
			"loop",
			"by",
			"when",
			"and",
			"or",
			"is",
			"isnt",
			"not"
		];
		const NOT_VALID_KEYWORDS = [
			"var",
			"const",
			"let",
			"function",
			"static"
		];
		const excluding = (list) => (kw) => !list.includes(kw);
		const KEYWORDS$1$1 = {
			keyword: KEYWORDS$5.concat(COFFEE_KEYWORDS).filter(excluding(NOT_VALID_KEYWORDS)),
			literal: LITERALS$5.concat(COFFEE_LITERALS),
			built_in: BUILT_INS$5.concat(COFFEE_BUILT_INS)
		};
		const JS_IDENT_RE = "[A-Za-z$_][0-9A-Za-z$_]*";
		const SUBST = {
			className: "subst",
			begin: /#\{/,
			end: /\}/,
			keywords: KEYWORDS$1$1
		};
		const EXPRESSIONS = [
			hljs$1.BINARY_NUMBER_MODE,
			hljs$1.inherit(hljs$1.C_NUMBER_MODE, { starts: {
				end: "(\\s*/)?",
				relevance: 0
			} }),
			{
				className: "string",
				variants: [
					{
						begin: /'''/,
						end: /'''/,
						contains: [hljs$1.BACKSLASH_ESCAPE]
					},
					{
						begin: /'/,
						end: /'/,
						contains: [hljs$1.BACKSLASH_ESCAPE]
					},
					{
						begin: /"""/,
						end: /"""/,
						contains: [hljs$1.BACKSLASH_ESCAPE, SUBST]
					},
					{
						begin: /"/,
						end: /"/,
						contains: [hljs$1.BACKSLASH_ESCAPE, SUBST]
					}
				]
			},
			{
				className: "regexp",
				variants: [
					{
						begin: "///",
						end: "///",
						contains: [SUBST, hljs$1.HASH_COMMENT_MODE]
					},
					{
						begin: "//[gim]{0,3}(?=\\W)",
						relevance: 0
					},
					{ begin: /\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/ }
				]
			},
			{ begin: "@" + JS_IDENT_RE },
			{
				subLanguage: "javascript",
				excludeBegin: true,
				excludeEnd: true,
				variants: [{
					begin: "```",
					end: "```"
				}, {
					begin: "`",
					end: "`"
				}]
			}
		];
		SUBST.contains = EXPRESSIONS;
		const TITLE = hljs$1.inherit(hljs$1.TITLE_MODE, { begin: JS_IDENT_RE });
		const POSSIBLE_PARAMS_RE = "(\\(.*\\)\\s*)?\\B[-=]>";
		const PARAMS = {
			className: "params",
			begin: "\\([^\\(]",
			returnBegin: true,
			contains: [{
				begin: /\(/,
				end: /\)/,
				keywords: KEYWORDS$1$1,
				contains: ["self"].concat(EXPRESSIONS)
			}]
		};
		const CLASS_DEFINITION = {
			variants: [{ match: [
				/class\s+/,
				JS_IDENT_RE,
				/\s+extends\s+/,
				JS_IDENT_RE
			] }, { match: [/class\s+/, JS_IDENT_RE] }],
			scope: {
				2: "title.class",
				4: "title.class.inherited"
			},
			keywords: KEYWORDS$1$1
		};
		return {
			name: "CoffeeScript",
			aliases: [
				"coffee",
				"cson",
				"iced"
			],
			keywords: KEYWORDS$1$1,
			illegal: /\/\*/,
			contains: [
				...EXPRESSIONS,
				hljs$1.COMMENT("###", "###"),
				hljs$1.HASH_COMMENT_MODE,
				{
					className: "function",
					begin: "^\\s*" + JS_IDENT_RE + "\\s*=\\s*" + POSSIBLE_PARAMS_RE,
					end: "[-=]>",
					returnBegin: true,
					contains: [TITLE, PARAMS]
				},
				{
					begin: /[:\(,=]\s*/,
					relevance: 0,
					contains: [{
						className: "function",
						begin: POSSIBLE_PARAMS_RE,
						end: "[-=]>",
						returnBegin: true,
						contains: [PARAMS]
					}]
				},
				CLASS_DEFINITION,
				{
					begin: JS_IDENT_RE + ":",
					end: ":",
					returnBegin: true,
					returnEnd: true,
					relevance: 0
				}
			]
		};
	}
	module.exports = coffeescript;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/coq.js
var require_coq = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function coq(hljs$1) {
		const KEYWORDS$6 = [
			"_|0",
			"as",
			"at",
			"cofix",
			"else",
			"end",
			"exists",
			"exists2",
			"fix",
			"for",
			"forall",
			"fun",
			"if",
			"IF",
			"in",
			"let",
			"match",
			"mod",
			"Prop",
			"return",
			"Set",
			"then",
			"Type",
			"using",
			"where",
			"with",
			"Abort",
			"About",
			"Add",
			"Admit",
			"Admitted",
			"All",
			"Arguments",
			"Assumptions",
			"Axiom",
			"Back",
			"BackTo",
			"Backtrack",
			"Bind",
			"Blacklist",
			"Canonical",
			"Cd",
			"Check",
			"Class",
			"Classes",
			"Close",
			"Coercion",
			"Coercions",
			"CoFixpoint",
			"CoInductive",
			"Collection",
			"Combined",
			"Compute",
			"Conjecture",
			"Conjectures",
			"Constant",
			"constr",
			"Constraint",
			"Constructors",
			"Context",
			"Corollary",
			"CreateHintDb",
			"Cut",
			"Declare",
			"Defined",
			"Definition",
			"Delimit",
			"Dependencies",
			"Dependent",
			"Derive",
			"Drop",
			"eauto",
			"End",
			"Equality",
			"Eval",
			"Example",
			"Existential",
			"Existentials",
			"Existing",
			"Export",
			"exporting",
			"Extern",
			"Extract",
			"Extraction",
			"Fact",
			"Field",
			"Fields",
			"File",
			"Fixpoint",
			"Focus",
			"for",
			"From",
			"Function",
			"Functional",
			"Generalizable",
			"Global",
			"Goal",
			"Grab",
			"Grammar",
			"Graph",
			"Guarded",
			"Heap",
			"Hint",
			"HintDb",
			"Hints",
			"Hypotheses",
			"Hypothesis",
			"ident",
			"Identity",
			"If",
			"Immediate",
			"Implicit",
			"Import",
			"Include",
			"Inductive",
			"Infix",
			"Info",
			"Initial",
			"Inline",
			"Inspect",
			"Instance",
			"Instances",
			"Intro",
			"Intros",
			"Inversion",
			"Inversion_clear",
			"Language",
			"Left",
			"Lemma",
			"Let",
			"Libraries",
			"Library",
			"Load",
			"LoadPath",
			"Local",
			"Locate",
			"Ltac",
			"ML",
			"Mode",
			"Module",
			"Modules",
			"Monomorphic",
			"Morphism",
			"Next",
			"NoInline",
			"Notation",
			"Obligation",
			"Obligations",
			"Opaque",
			"Open",
			"Optimize",
			"Options",
			"Parameter",
			"Parameters",
			"Parametric",
			"Path",
			"Paths",
			"pattern",
			"Polymorphic",
			"Preterm",
			"Print",
			"Printing",
			"Program",
			"Projections",
			"Proof",
			"Proposition",
			"Pwd",
			"Qed",
			"Quit",
			"Rec",
			"Record",
			"Recursive",
			"Redirect",
			"Relation",
			"Remark",
			"Remove",
			"Require",
			"Reserved",
			"Reset",
			"Resolve",
			"Restart",
			"Rewrite",
			"Right",
			"Ring",
			"Rings",
			"Save",
			"Scheme",
			"Scope",
			"Scopes",
			"Script",
			"Search",
			"SearchAbout",
			"SearchHead",
			"SearchPattern",
			"SearchRewrite",
			"Section",
			"Separate",
			"Set",
			"Setoid",
			"Show",
			"Solve",
			"Sorted",
			"Step",
			"Strategies",
			"Strategy",
			"Structure",
			"SubClass",
			"Table",
			"Tables",
			"Tactic",
			"Term",
			"Test",
			"Theorem",
			"Time",
			"Timeout",
			"Transparent",
			"Type",
			"Typeclasses",
			"Types",
			"Undelimit",
			"Undo",
			"Unfocus",
			"Unfocused",
			"Unfold",
			"Universe",
			"Universes",
			"Unset",
			"Unshelve",
			"using",
			"Variable",
			"Variables",
			"Variant",
			"Verbose",
			"Visibility",
			"where",
			"with"
		];
		const BUILT_INS$6 = [
			"abstract",
			"absurd",
			"admit",
			"after",
			"apply",
			"as",
			"assert",
			"assumption",
			"at",
			"auto",
			"autorewrite",
			"autounfold",
			"before",
			"bottom",
			"btauto",
			"by",
			"case",
			"case_eq",
			"cbn",
			"cbv",
			"change",
			"classical_left",
			"classical_right",
			"clear",
			"clearbody",
			"cofix",
			"compare",
			"compute",
			"congruence",
			"constr_eq",
			"constructor",
			"contradict",
			"contradiction",
			"cut",
			"cutrewrite",
			"cycle",
			"decide",
			"decompose",
			"dependent",
			"destruct",
			"destruction",
			"dintuition",
			"discriminate",
			"discrR",
			"do",
			"double",
			"dtauto",
			"eapply",
			"eassumption",
			"eauto",
			"ecase",
			"econstructor",
			"edestruct",
			"ediscriminate",
			"eelim",
			"eexact",
			"eexists",
			"einduction",
			"einjection",
			"eleft",
			"elim",
			"elimtype",
			"enough",
			"equality",
			"erewrite",
			"eright",
			"esimplify_eq",
			"esplit",
			"evar",
			"exact",
			"exactly_once",
			"exfalso",
			"exists",
			"f_equal",
			"fail",
			"field",
			"field_simplify",
			"field_simplify_eq",
			"first",
			"firstorder",
			"fix",
			"fold",
			"fourier",
			"functional",
			"generalize",
			"generalizing",
			"gfail",
			"give_up",
			"has_evar",
			"hnf",
			"idtac",
			"in",
			"induction",
			"injection",
			"instantiate",
			"intro",
			"intro_pattern",
			"intros",
			"intuition",
			"inversion",
			"inversion_clear",
			"is_evar",
			"is_var",
			"lapply",
			"lazy",
			"left",
			"lia",
			"lra",
			"move",
			"native_compute",
			"nia",
			"nsatz",
			"omega",
			"once",
			"pattern",
			"pose",
			"progress",
			"proof",
			"psatz",
			"quote",
			"record",
			"red",
			"refine",
			"reflexivity",
			"remember",
			"rename",
			"repeat",
			"replace",
			"revert",
			"revgoals",
			"rewrite",
			"rewrite_strat",
			"right",
			"ring",
			"ring_simplify",
			"rtauto",
			"set",
			"setoid_reflexivity",
			"setoid_replace",
			"setoid_rewrite",
			"setoid_symmetry",
			"setoid_transitivity",
			"shelve",
			"shelve_unifiable",
			"simpl",
			"simple",
			"simplify_eq",
			"solve",
			"specialize",
			"split",
			"split_Rabs",
			"split_Rmult",
			"stepl",
			"stepr",
			"subst",
			"sum",
			"swap",
			"symmetry",
			"tactic",
			"tauto",
			"time",
			"timeout",
			"top",
			"transitivity",
			"trivial",
			"try",
			"tryif",
			"unfold",
			"unify",
			"until",
			"using",
			"vm_compute",
			"with"
		];
		return {
			name: "Coq",
			keywords: {
				keyword: KEYWORDS$6,
				built_in: BUILT_INS$6
			},
			contains: [
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.COMMENT("\\(\\*", "\\*\\)"),
				hljs$1.C_NUMBER_MODE,
				{
					className: "type",
					excludeBegin: true,
					begin: "\\|\\s*",
					end: "\\w+"
				},
				{ begin: /[-=]>/ }
			]
		};
	}
	module.exports = coq;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/cos.js
var require_cos = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function cos(hljs$1) {
		const STRINGS = {
			className: "string",
			variants: [{
				begin: "\"",
				end: "\"",
				contains: [{
					begin: "\"\"",
					relevance: 0
				}]
			}]
		};
		const NUMBERS = {
			className: "number",
			begin: "\\b(\\d+(\\.\\d*)?|\\.\\d+)",
			relevance: 0
		};
		const COS_KEYWORDS = "property parameter class classmethod clientmethod extends as break " + "catch close continue do d|0 else elseif for goto halt hang h|0 if job " + "j|0 kill k|0 lock l|0 merge new open quit q|0 read r|0 return set s|0 " + "tcommit throw trollback try tstart use view while write w|0 xecute x|0 " + "zkill znspace zn ztrap zwrite zw zzdump zzwrite print zbreak zinsert " + "zload zprint zremove zsave zzprint mv mvcall mvcrt mvdim mvprint zquit " + "zsync ascii";
		return {
			name: "Caché Object Script",
			case_insensitive: true,
			aliases: ["cls"],
			keywords: COS_KEYWORDS,
			contains: [
				NUMBERS,
				STRINGS,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				{
					className: "comment",
					begin: /;/,
					end: "$",
					relevance: 0
				},
				{
					className: "built_in",
					begin: /(?:\$\$?|\.\.)\^?[a-zA-Z]+/
				},
				{
					className: "built_in",
					begin: /\$\$\$[a-zA-Z]+/
				},
				{
					className: "built_in",
					begin: /%[a-z]+(?:\.[a-z]+)*/
				},
				{
					className: "symbol",
					begin: /\^%?[a-zA-Z][\w]*/
				},
				{
					className: "keyword",
					begin: /##class|##super|#define|#dim/
				},
				{
					begin: /&sql\(/,
					end: /\)/,
					excludeBegin: true,
					excludeEnd: true,
					subLanguage: "sql"
				},
				{
					begin: /&(js|jscript|javascript)</,
					end: />/,
					excludeBegin: true,
					excludeEnd: true,
					subLanguage: "javascript"
				},
				{
					begin: /&html<\s*</,
					end: />\s*>/,
					subLanguage: "xml"
				}
			]
		};
	}
	module.exports = cos;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/cpp.js
var require_cpp = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function cpp(hljs$1) {
		const regex = hljs$1.regex;
		const C_LINE_COMMENT_MODE$2 = hljs$1.COMMENT("//", "$", { contains: [{ begin: /\\\n/ }] });
		const DECLTYPE_AUTO_RE = "decltype\\(auto\\)";
		const NAMESPACE_RE = "[a-zA-Z_]\\w*::";
		const TEMPLATE_ARGUMENT_RE = "<[^<>]+>";
		const FUNCTION_TYPE_RE = "(?!struct)(" + DECLTYPE_AUTO_RE + "|" + regex.optional(NAMESPACE_RE) + "[a-zA-Z_]\\w*" + regex.optional(TEMPLATE_ARGUMENT_RE) + ")";
		const CPP_PRIMITIVE_TYPES = {
			className: "type",
			begin: "\\b[a-z\\d_]*_t\\b"
		};
		const CHARACTER_ESCAPES = "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)";
		const STRINGS = {
			className: "string",
			variants: [
				{
					begin: "(u8?|U|L)?\"",
					end: "\"",
					illegal: "\\n",
					contains: [hljs$1.BACKSLASH_ESCAPE]
				},
				{
					begin: "(u8?|U|L)?'(" + CHARACTER_ESCAPES + "|.)",
					end: "'",
					illegal: "."
				},
				hljs$1.END_SAME_AS_BEGIN({
					begin: /(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,
					end: /\)([^()\\ ]{0,16})"/
				})
			]
		};
		const NUMBERS = {
			className: "number",
			variants: [{ begin: "[+-]?(?:" + "(?:" + "[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?" + "|\\.[0-9](?:'?[0-9])*" + ")(?:[Ee][+-]?[0-9](?:'?[0-9])*)?" + "|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*" + "|0[Xx](?:" + "[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?" + "|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*" + ")[Pp][+-]?[0-9](?:'?[0-9])*" + ")(?:" + "[Ff](?:16|32|64|128)?" + "|(BF|bf)16" + "|[Ll]" + "|" + ")" }, { begin: "[+-]?\\b(?:" + "0[Bb][01](?:'?[01])*" + "|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*" + "|0(?:'?[0-7])*" + "|[1-9](?:'?[0-9])*" + ")(?:" + "[Uu](?:LL?|ll?)" + "|[Uu][Zz]?" + "|(?:LL?|ll?)[Uu]?" + "|[Zz][Uu]" + "|" + ")" }],
			relevance: 0
		};
		const PREPROCESSOR = {
			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
				},
				hljs$1.inherit(STRINGS, { className: "string" }),
				{
					className: "string",
					begin: /<.*?>/
				},
				C_LINE_COMMENT_MODE$2,
				hljs$1.C_BLOCK_COMMENT_MODE
			]
		};
		const TITLE_MODE$2 = {
			className: "title",
			begin: regex.optional(NAMESPACE_RE) + hljs$1.IDENT_RE,
			relevance: 0
		};
		const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs$1.IDENT_RE + "\\s*\\(";
		const RESERVED_KEYWORDS = [
			"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"
		];
		const RESERVED_TYPES = [
			"bool",
			"char",
			"char16_t",
			"char32_t",
			"char8_t",
			"double",
			"float",
			"int",
			"long",
			"short",
			"void",
			"wchar_t",
			"unsigned",
			"signed",
			"const",
			"static"
		];
		const TYPE_HINTS = [
			"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"
		];
		const FUNCTION_HINTS = [
			"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"
		];
		const LITERALS$6 = [
			"NULL",
			"false",
			"nullopt",
			"nullptr",
			"true"
		];
		const BUILT_IN = ["_Pragma"];
		const CPP_KEYWORDS = {
			type: RESERVED_TYPES,
			keyword: RESERVED_KEYWORDS,
			literal: LITERALS$6,
			built_in: BUILT_IN,
			_type_hints: TYPE_HINTS
		};
		const FUNCTION_DISPATCH = {
			className: "function.dispatch",
			relevance: 0,
			keywords: { _hint: FUNCTION_HINTS },
			begin: regex.concat(/\b/, /(?!decltype)/, /(?!if)/, /(?!for)/, /(?!switch)/, /(?!while)/, hljs$1.IDENT_RE, regex.lookahead(/(<[^<>]+>|)\s*\(/))
		};
		const EXPRESSION_CONTAINS = [
			FUNCTION_DISPATCH,
			PREPROCESSOR,
			CPP_PRIMITIVE_TYPES,
			C_LINE_COMMENT_MODE$2,
			hljs$1.C_BLOCK_COMMENT_MODE,
			NUMBERS,
			STRINGS
		];
		const EXPRESSION_CONTEXT = {
			variants: [
				{
					begin: /=/,
					end: /;/
				},
				{
					begin: /\(/,
					end: /\)/
				},
				{
					beginKeywords: "new throw return else",
					end: /;/
				}
			],
			keywords: CPP_KEYWORDS,
			contains: EXPRESSION_CONTAINS.concat([{
				begin: /\(/,
				end: /\)/,
				keywords: CPP_KEYWORDS,
				contains: EXPRESSION_CONTAINS.concat(["self"]),
				relevance: 0
			}]),
			relevance: 0
		};
		const FUNCTION_DECLARATION = {
			className: "function",
			begin: "(" + FUNCTION_TYPE_RE + "[\\*&\\s]+)+" + FUNCTION_TITLE,
			returnBegin: true,
			end: /[{;=]/,
			excludeEnd: true,
			keywords: CPP_KEYWORDS,
			illegal: /[^\w\s\*&:<>.]/,
			contains: [
				{
					begin: DECLTYPE_AUTO_RE,
					keywords: CPP_KEYWORDS,
					relevance: 0
				},
				{
					begin: FUNCTION_TITLE,
					returnBegin: true,
					contains: [TITLE_MODE$2],
					relevance: 0
				},
				{
					begin: /::/,
					relevance: 0
				},
				{
					begin: /:/,
					endsWithParent: true,
					contains: [STRINGS, NUMBERS]
				},
				{
					relevance: 0,
					match: /,/
				},
				{
					className: "params",
					begin: /\(/,
					end: /\)/,
					keywords: CPP_KEYWORDS,
					relevance: 0,
					contains: [
						C_LINE_COMMENT_MODE$2,
						hljs$1.C_BLOCK_COMMENT_MODE,
						STRINGS,
						NUMBERS,
						CPP_PRIMITIVE_TYPES,
						{
							begin: /\(/,
							end: /\)/,
							keywords: CPP_KEYWORDS,
							relevance: 0,
							contains: [
								"self",
								C_LINE_COMMENT_MODE$2,
								hljs$1.C_BLOCK_COMMENT_MODE,
								STRINGS,
								NUMBERS,
								CPP_PRIMITIVE_TYPES
							]
						}
					]
				},
				CPP_PRIMITIVE_TYPES,
				C_LINE_COMMENT_MODE$2,
				hljs$1.C_BLOCK_COMMENT_MODE,
				PREPROCESSOR
			]
		};
		return {
			name: "C++",
			aliases: [
				"cc",
				"c++",
				"h++",
				"hpp",
				"hh",
				"hxx",
				"cxx"
			],
			keywords: CPP_KEYWORDS,
			illegal: "</",
			classNameAliases: { "function.dispatch": "built_in" },
			contains: [].concat(EXPRESSION_CONTEXT, FUNCTION_DECLARATION, FUNCTION_DISPATCH, EXPRESSION_CONTAINS, [
				PREPROCESSOR,
				{
					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: CPP_KEYWORDS,
					contains: ["self", CPP_PRIMITIVE_TYPES]
				},
				{
					begin: hljs$1.IDENT_RE + "::",
					keywords: CPP_KEYWORDS
				},
				{
					match: [
						/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,
						/\s+/,
						/\w+/
					],
					className: {
						1: "keyword",
						3: "title.class"
					}
				}
			])
		};
	}
	module.exports = cpp;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/crmsh.js
var require_crmsh = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function crmsh(hljs$1) {
		const RESOURCES = "primitive rsc_template";
		const COMMANDS = "group clone ms master location colocation order fencing_topology " + "rsc_ticket acl_target acl_group user role " + "tag xml";
		const PROPERTY_SETS = "property rsc_defaults op_defaults";
		const KEYWORDS$6 = "params meta operations op rule attributes utilization";
		const OPERATORS = "read write deny defined not_defined in_range date spec in " + "ref reference attribute type xpath version and or lt gt tag " + "lte gte eq ne \\";
		const TYPES$6 = "number string";
		const LITERALS$6 = "Master Started Slave Stopped start promote demote stop monitor true false";
		return {
			name: "crmsh",
			aliases: ["crm", "pcmk"],
			case_insensitive: true,
			keywords: {
				keyword: KEYWORDS$6 + " " + OPERATORS + " " + TYPES$6,
				literal: LITERALS$6
			},
			contains: [
				hljs$1.HASH_COMMENT_MODE,
				{
					beginKeywords: "node",
					starts: {
						end: "\\s*([\\w_-]+:)?",
						starts: {
							className: "title",
							end: "\\s*[\\$\\w_][\\w_-]*"
						}
					}
				},
				{
					beginKeywords: RESOURCES,
					starts: {
						className: "title",
						end: "\\s*[\\$\\w_][\\w_-]*",
						starts: { end: "\\s*@?[\\w_][\\w_\\.:-]*" }
					}
				},
				{
					begin: "\\b(" + COMMANDS.split(" ").join("|") + ")\\s+",
					keywords: COMMANDS,
					starts: {
						className: "title",
						end: "[\\$\\w_][\\w_-]*"
					}
				},
				{
					beginKeywords: PROPERTY_SETS,
					starts: {
						className: "title",
						end: "\\s*([\\w_-]+:)?"
					}
				},
				hljs$1.QUOTE_STRING_MODE,
				{
					className: "meta",
					begin: "(ocf|systemd|service|lsb):[\\w_:-]+",
					relevance: 0
				},
				{
					className: "number",
					begin: "\\b\\d+(\\.\\d+)?(ms|s|h|m)?",
					relevance: 0
				},
				{
					className: "literal",
					begin: "[-]?(infinity|inf)",
					relevance: 0
				},
				{
					className: "attr",
					begin: /([A-Za-z$_#][\w_-]+)=/,
					relevance: 0
				},
				{
					className: "tag",
					begin: "</?",
					end: "/?>",
					relevance: 0
				}
			]
		};
	}
	module.exports = crmsh;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/crystal.js
var require_crystal = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function crystal(hljs$1) {
		const INT_SUFFIX = "(_?[ui](8|16|32|64|128))?";
		const FLOAT_SUFFIX = "(_?f(32|64))?";
		const CRYSTAL_IDENT_RE = "[a-zA-Z_]\\w*[!?=]?";
		const CRYSTAL_METHOD_RE = "[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\*\\*|\\[\\][=?]?";
		const CRYSTAL_PATH_RE = "[A-Za-z_]\\w*(::\\w+)*(\\?|!)?";
		const CRYSTAL_KEYWORDS = {
			$pattern: CRYSTAL_IDENT_RE,
			keyword: "abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if " + "include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? " + "return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield " + "__DIR__ __END_LINE__ __FILE__ __LINE__",
			literal: "false nil true"
		};
		const SUBST = {
			className: "subst",
			begin: /#\{/,
			end: /\}/,
			keywords: CRYSTAL_KEYWORDS
		};
		const VARIABLE = {
			className: "variable",
			begin: "(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])" + `(?![A-Za-z])(?![@$?'])`
		};
		const EXPANSION = {
			className: "template-variable",
			variants: [{
				begin: "\\{\\{",
				end: "\\}\\}"
			}, {
				begin: "\\{%",
				end: "%\\}"
			}],
			keywords: CRYSTAL_KEYWORDS
		};
		function recursiveParen(begin, end) {
			const contains = [{
				begin,
				end
			}];
			contains[0].contains = contains;
			return contains;
		}
		const STRING = {
			className: "string",
			contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
			variants: [
				{
					begin: /'/,
					end: /'/
				},
				{
					begin: /"/,
					end: /"/
				},
				{
					begin: /`/,
					end: /`/
				},
				{
					begin: "%[Qwi]?\\(",
					end: "\\)",
					contains: recursiveParen("\\(", "\\)")
				},
				{
					begin: "%[Qwi]?\\[",
					end: "\\]",
					contains: recursiveParen("\\[", "\\]")
				},
				{
					begin: "%[Qwi]?\\{",
					end: /\}/,
					contains: recursiveParen(/\{/, /\}/)
				},
				{
					begin: "%[Qwi]?<",
					end: ">",
					contains: recursiveParen("<", ">")
				},
				{
					begin: "%[Qwi]?\\|",
					end: "\\|"
				},
				{
					begin: /<<-\w+$/,
					end: /^\s*\w+$/
				}
			],
			relevance: 0
		};
		const Q_STRING = {
			className: "string",
			variants: [
				{
					begin: "%q\\(",
					end: "\\)",
					contains: recursiveParen("\\(", "\\)")
				},
				{
					begin: "%q\\[",
					end: "\\]",
					contains: recursiveParen("\\[", "\\]")
				},
				{
					begin: "%q\\{",
					end: /\}/,
					contains: recursiveParen(/\{/, /\}/)
				},
				{
					begin: "%q<",
					end: ">",
					contains: recursiveParen("<", ">")
				},
				{
					begin: "%q\\|",
					end: "\\|"
				},
				{
					begin: /<<-'\w+'$/,
					end: /^\s*\w+$/
				}
			],
			relevance: 0
		};
		const REGEXP = {
			begin: "(?!%\\})(" + hljs$1.RE_STARTERS_RE + "|\\n|\\b(case|if|select|unless|until|when|while)\\b)\\s*",
			keywords: "case if select unless until when while",
			contains: [{
				className: "regexp",
				contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
				variants: [{
					begin: "//[a-z]*",
					relevance: 0
				}, {
					begin: "/(?!\\/)",
					end: "/[a-z]*"
				}]
			}],
			relevance: 0
		};
		const REGEXP2 = {
			className: "regexp",
			contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
			variants: [
				{
					begin: "%r\\(",
					end: "\\)",
					contains: recursiveParen("\\(", "\\)")
				},
				{
					begin: "%r\\[",
					end: "\\]",
					contains: recursiveParen("\\[", "\\]")
				},
				{
					begin: "%r\\{",
					end: /\}/,
					contains: recursiveParen(/\{/, /\}/)
				},
				{
					begin: "%r<",
					end: ">",
					contains: recursiveParen("<", ">")
				},
				{
					begin: "%r\\|",
					end: "\\|"
				}
			],
			relevance: 0
		};
		const ATTRIBUTE = {
			className: "meta",
			begin: "@\\[",
			end: "\\]",
			contains: [hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { className: "string" })]
		};
		const CRYSTAL_DEFAULT_CONTAINS = [
			EXPANSION,
			STRING,
			Q_STRING,
			REGEXP2,
			REGEXP,
			ATTRIBUTE,
			VARIABLE,
			hljs$1.HASH_COMMENT_MODE,
			{
				className: "class",
				beginKeywords: "class module struct",
				end: "$|;",
				illegal: /=/,
				contains: [
					hljs$1.HASH_COMMENT_MODE,
					hljs$1.inherit(hljs$1.TITLE_MODE, { begin: CRYSTAL_PATH_RE }),
					{ begin: "<" }
				]
			},
			{
				className: "class",
				beginKeywords: "lib enum union",
				end: "$|;",
				illegal: /=/,
				contains: [hljs$1.HASH_COMMENT_MODE, hljs$1.inherit(hljs$1.TITLE_MODE, { begin: CRYSTAL_PATH_RE })]
			},
			{
				beginKeywords: "annotation",
				end: "$|;",
				illegal: /=/,
				contains: [hljs$1.HASH_COMMENT_MODE, hljs$1.inherit(hljs$1.TITLE_MODE, { begin: CRYSTAL_PATH_RE })],
				relevance: 2
			},
			{
				className: "function",
				beginKeywords: "def",
				end: /\B\b/,
				contains: [hljs$1.inherit(hljs$1.TITLE_MODE, {
					begin: CRYSTAL_METHOD_RE,
					endsParent: true
				})]
			},
			{
				className: "function",
				beginKeywords: "fun macro",
				end: /\B\b/,
				contains: [hljs$1.inherit(hljs$1.TITLE_MODE, {
					begin: CRYSTAL_METHOD_RE,
					endsParent: true
				})],
				relevance: 2
			},
			{
				className: "symbol",
				begin: hljs$1.UNDERSCORE_IDENT_RE + "(!|\\?)?:",
				relevance: 0
			},
			{
				className: "symbol",
				begin: ":",
				contains: [STRING, { begin: CRYSTAL_METHOD_RE }],
				relevance: 0
			},
			{
				className: "number",
				variants: [
					{ begin: "\\b0b([01_]+)" + INT_SUFFIX },
					{ begin: "\\b0o([0-7_]+)" + INT_SUFFIX },
					{ begin: "\\b0x([A-Fa-f0-9_]+)" + INT_SUFFIX },
					{ begin: "\\b([1-9][0-9_]*[0-9]|[0-9])(\\.[0-9][0-9_]*)?([eE]_?[-+]?[0-9_]*)?" + FLOAT_SUFFIX + "(?!_)" },
					{ begin: "\\b([1-9][0-9_]*|0)" + INT_SUFFIX }
				],
				relevance: 0
			}
		];
		SUBST.contains = CRYSTAL_DEFAULT_CONTAINS;
		EXPANSION.contains = CRYSTAL_DEFAULT_CONTAINS.slice(1);
		return {
			name: "Crystal",
			aliases: ["cr"],
			keywords: CRYSTAL_KEYWORDS,
			contains: CRYSTAL_DEFAULT_CONTAINS
		};
	}
	module.exports = crystal;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/csharp.js
var require_csharp = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function csharp(hljs$1) {
		const BUILT_IN_KEYWORDS = [
			"bool",
			"byte",
			"char",
			"decimal",
			"delegate",
			"double",
			"dynamic",
			"enum",
			"float",
			"int",
			"long",
			"nint",
			"nuint",
			"object",
			"sbyte",
			"short",
			"string",
			"ulong",
			"uint",
			"ushort"
		];
		const FUNCTION_MODIFIERS = [
			"public",
			"private",
			"protected",
			"static",
			"internal",
			"protected",
			"abstract",
			"async",
			"extern",
			"override",
			"unsafe",
			"virtual",
			"new",
			"sealed",
			"partial"
		];
		const LITERAL_KEYWORDS = [
			"default",
			"false",
			"null",
			"true"
		];
		const NORMAL_KEYWORDS = [
			"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"
		];
		const CONTEXTUAL_KEYWORDS = [
			"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"
		];
		const KEYWORDS$6 = {
			keyword: NORMAL_KEYWORDS.concat(CONTEXTUAL_KEYWORDS),
			built_in: BUILT_IN_KEYWORDS,
			literal: LITERAL_KEYWORDS
		};
		const TITLE_MODE$2 = hljs$1.inherit(hljs$1.TITLE_MODE, { begin: "[a-zA-Z](\\.?\\w)*" });
		const NUMBERS = {
			className: "number",
			variants: [
				{ begin: "\\b(0b[01']+)" },
				{ begin: "(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)" },
				{ begin: "(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" }
			],
			relevance: 0
		};
		const RAW_STRING = {
			className: "string",
			begin: /"""("*)(?!")(.|\n)*?"""\1/,
			relevance: 1
		};
		const VERBATIM_STRING = {
			className: "string",
			begin: "@\"",
			end: "\"",
			contains: [{ begin: "\"\"" }]
		};
		const VERBATIM_STRING_NO_LF = hljs$1.inherit(VERBATIM_STRING, { illegal: /\n/ });
		const SUBST = {
			className: "subst",
			begin: /\{/,
			end: /\}/,
			keywords: KEYWORDS$6
		};
		const SUBST_NO_LF = hljs$1.inherit(SUBST, { illegal: /\n/ });
		const INTERPOLATED_STRING = {
			className: "string",
			begin: /\$"/,
			end: "\"",
			illegal: /\n/,
			contains: [
				{ begin: /\{\{/ },
				{ begin: /\}\}/ },
				hljs$1.BACKSLASH_ESCAPE,
				SUBST_NO_LF
			]
		};
		const INTERPOLATED_VERBATIM_STRING = {
			className: "string",
			begin: /\$@"/,
			end: "\"",
			contains: [
				{ begin: /\{\{/ },
				{ begin: /\}\}/ },
				{ begin: "\"\"" },
				SUBST
			]
		};
		const INTERPOLATED_VERBATIM_STRING_NO_LF = hljs$1.inherit(INTERPOLATED_VERBATIM_STRING, {
			illegal: /\n/,
			contains: [
				{ begin: /\{\{/ },
				{ begin: /\}\}/ },
				{ begin: "\"\"" },
				SUBST_NO_LF
			]
		});
		SUBST.contains = [
			INTERPOLATED_VERBATIM_STRING,
			INTERPOLATED_STRING,
			VERBATIM_STRING,
			hljs$1.APOS_STRING_MODE,
			hljs$1.QUOTE_STRING_MODE,
			NUMBERS,
			hljs$1.C_BLOCK_COMMENT_MODE
		];
		SUBST_NO_LF.contains = [
			INTERPOLATED_VERBATIM_STRING_NO_LF,
			INTERPOLATED_STRING,
			VERBATIM_STRING_NO_LF,
			hljs$1.APOS_STRING_MODE,
			hljs$1.QUOTE_STRING_MODE,
			NUMBERS,
			hljs$1.inherit(hljs$1.C_BLOCK_COMMENT_MODE, { illegal: /\n/ })
		];
		const STRING = { variants: [
			RAW_STRING,
			INTERPOLATED_VERBATIM_STRING,
			INTERPOLATED_STRING,
			VERBATIM_STRING,
			hljs$1.APOS_STRING_MODE,
			hljs$1.QUOTE_STRING_MODE
		] };
		const GENERIC_MODIFIER = {
			begin: "<",
			end: ">",
			contains: [{ beginKeywords: "in out" }, TITLE_MODE$2]
		};
		const TYPE_IDENT_RE = hljs$1.IDENT_RE + "(<" + hljs$1.IDENT_RE + "(\\s*,\\s*" + hljs$1.IDENT_RE + ")*>)?(\\[\\])?";
		const AT_IDENTIFIER = {
			begin: "@" + hljs$1.IDENT_RE,
			relevance: 0
		};
		return {
			name: "C#",
			aliases: ["cs", "c#"],
			keywords: KEYWORDS$6,
			illegal: /::/,
			contains: [
				hljs$1.COMMENT("///", "$", {
					returnBegin: true,
					contains: [{
						className: "doctag",
						variants: [
							{
								begin: "///",
								relevance: 0
							},
							{ begin: "<!--|-->" },
							{
								begin: "</?",
								end: ">"
							}
						]
					}]
				}),
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				{
					className: "meta",
					begin: "#",
					end: "$",
					keywords: { keyword: "if else elif endif define undef warning error line region endregion pragma checksum" }
				},
				STRING,
				NUMBERS,
				{
					beginKeywords: "class interface",
					relevance: 0,
					end: /[{;=]/,
					illegal: /[^\s:,]/,
					contains: [
						{ beginKeywords: "where class" },
						TITLE_MODE$2,
						GENERIC_MODIFIER,
						hljs$1.C_LINE_COMMENT_MODE,
						hljs$1.C_BLOCK_COMMENT_MODE
					]
				},
				{
					beginKeywords: "namespace",
					relevance: 0,
					end: /[{;=]/,
					illegal: /[^\s:]/,
					contains: [
						TITLE_MODE$2,
						hljs$1.C_LINE_COMMENT_MODE,
						hljs$1.C_BLOCK_COMMENT_MODE
					]
				},
				{
					beginKeywords: "record",
					relevance: 0,
					end: /[{;=]/,
					illegal: /[^\s:]/,
					contains: [
						TITLE_MODE$2,
						GENERIC_MODIFIER,
						hljs$1.C_LINE_COMMENT_MODE,
						hljs$1.C_BLOCK_COMMENT_MODE
					]
				},
				{
					className: "meta",
					begin: "^\\s*\\[(?=[\\w])",
					excludeBegin: true,
					end: "\\]",
					excludeEnd: true,
					contains: [{
						className: "string",
						begin: /"/,
						end: /"/
					}]
				},
				{
					beginKeywords: "new return throw await else",
					relevance: 0
				},
				{
					className: "function",
					begin: "(" + TYPE_IDENT_RE + "\\s+)+" + hljs$1.IDENT_RE + "\\s*(<[^=]+>\\s*)?\\(",
					returnBegin: true,
					end: /\s*[{;=]/,
					excludeEnd: true,
					keywords: KEYWORDS$6,
					contains: [
						{
							beginKeywords: FUNCTION_MODIFIERS.join(" "),
							relevance: 0
						},
						{
							begin: hljs$1.IDENT_RE + "\\s*(<[^=]+>\\s*)?\\(",
							returnBegin: true,
							contains: [hljs$1.TITLE_MODE, GENERIC_MODIFIER],
							relevance: 0
						},
						{ match: /\(\)/ },
						{
							className: "params",
							begin: /\(/,
							end: /\)/,
							excludeBegin: true,
							excludeEnd: true,
							keywords: KEYWORDS$6,
							relevance: 0,
							contains: [
								STRING,
								NUMBERS,
								hljs$1.C_BLOCK_COMMENT_MODE
							]
						},
						hljs$1.C_LINE_COMMENT_MODE,
						hljs$1.C_BLOCK_COMMENT_MODE
					]
				},
				AT_IDENTIFIER
			]
		};
	}
	module.exports = csharp;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/csp.js
var require_csp = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function csp(hljs$1) {
		const KEYWORDS$6 = [
			"base-uri",
			"child-src",
			"connect-src",
			"default-src",
			"font-src",
			"form-action",
			"frame-ancestors",
			"frame-src",
			"img-src",
			"manifest-src",
			"media-src",
			"object-src",
			"plugin-types",
			"report-uri",
			"sandbox",
			"script-src",
			"style-src",
			"trusted-types",
			"unsafe-hashes",
			"worker-src"
		];
		return {
			name: "CSP",
			case_insensitive: false,
			keywords: {
				$pattern: "[a-zA-Z][a-zA-Z0-9_-]*",
				keyword: KEYWORDS$6
			},
			contains: [{
				className: "string",
				begin: "'",
				end: "'"
			}, {
				className: "attribute",
				begin: "^Content",
				end: ":",
				excludeEnd: true
			}]
		};
	}
	module.exports = csp;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/css.js
var require_css = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	const MODES$5 = (hljs$1) => {
		return {
			IMPORTANT: {
				scope: "meta",
				begin: "!important"
			},
			BLOCK_COMMENT: hljs$1.C_BLOCK_COMMENT_MODE,
			HEXCOLOR: {
				scope: "number",
				begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/
			},
			FUNCTION_DISPATCH: {
				className: "built_in",
				begin: /[\w-]+(?=\()/
			},
			ATTRIBUTE_SELECTOR_MODE: {
				scope: "selector-attr",
				begin: /\[/,
				end: /\]/,
				illegal: "$",
				contains: [hljs$1.APOS_STRING_MODE, hljs$1.QUOTE_STRING_MODE]
			},
			CSS_NUMBER_MODE: {
				scope: "number",
				begin: hljs$1.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_-]*/
			}
		};
	};
	const HTML_TAGS$4 = [
		"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"
	];
	const SVG_TAGS$4 = [
		"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"
	];
	const TAGS$4 = [...HTML_TAGS$4, ...SVG_TAGS$4];
	const MEDIA_FEATURES$4 = [
		"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();
	const PSEUDO_CLASSES$4 = [
		"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();
	const PSEUDO_ELEMENTS$4 = [
		"after",
		"backdrop",
		"before",
		"cue",
		"cue-region",
		"first-letter",
		"first-line",
		"grammar-error",
		"marker",
		"part",
		"placeholder",
		"selection",
		"slotted",
		"spelling-error"
	].sort().reverse();
	const ATTRIBUTES$4 = [
		"accent-color",
		"align-content",
		"align-items",
		"align-self",
		"alignment-baseline",
		"all",
		"anchor-name",
		"animation",
		"animation-composition",
		"animation-delay",
		"animation-direction",
		"animation-duration",
		"animation-fill-mode",
		"animation-iteration-count",
		"animation-name",
		"animation-play-state",
		"animation-range",
		"animation-range-end",
		"animation-range-start",
		"animation-timeline",
		"animation-timing-function",
		"appearance",
		"aspect-ratio",
		"backdrop-filter",
		"backface-visibility",
		"background",
		"background-attachment",
		"background-blend-mode",
		"background-clip",
		"background-color",
		"background-image",
		"background-origin",
		"background-position",
		"background-position-x",
		"background-position-y",
		"background-repeat",
		"background-size",
		"baseline-shift",
		"block-size",
		"border",
		"border-block",
		"border-block-color",
		"border-block-end",
		"border-block-end-color",
		"border-block-end-style",
		"border-block-end-width",
		"border-block-start",
		"border-block-start-color",
		"border-block-start-style",
		"border-block-start-width",
		"border-block-style",
		"border-block-width",
		"border-bottom",
		"border-bottom-color",
		"border-bottom-left-radius",
		"border-bottom-right-radius",
		"border-bottom-style",
		"border-bottom-width",
		"border-collapse",
		"border-color",
		"border-end-end-radius",
		"border-end-start-radius",
		"border-image",
		"border-image-outset",
		"border-image-repeat",
		"border-image-slice",
		"border-image-source",
		"border-image-width",
		"border-inline",
		"border-inline-color",
		"border-inline-end",
		"border-inline-end-color",
		"border-inline-end-style",
		"border-inline-end-width",
		"border-inline-start",
		"border-inline-start-color",
		"border-inline-start-style",
		"border-inline-start-width",
		"border-inline-style",
		"border-inline-width",
		"border-left",
		"border-left-color",
		"border-left-style",
		"border-left-width",
		"border-radius",
		"border-right",
		"border-right-color",
		"border-right-style",
		"border-right-width",
		"border-spacing",
		"border-start-end-radius",
		"border-start-start-radius",
		"border-style",
		"border-top",
		"border-top-color",
		"border-top-left-radius",
		"border-top-right-radius",
		"border-top-style",
		"border-top-width",
		"border-width",
		"bottom",
		"box-align",
		"box-decoration-break",
		"box-direction",
		"box-flex",
		"box-flex-group",
		"box-lines",
		"box-ordinal-group",
		"box-orient",
		"box-pack",
		"box-shadow",
		"box-sizing",
		"break-after",
		"break-before",
		"break-inside",
		"caption-side",
		"caret-color",
		"clear",
		"clip",
		"clip-path",
		"clip-rule",
		"color",
		"color-interpolation",
		"color-interpolation-filters",
		"color-profile",
		"color-rendering",
		"color-scheme",
		"column-count",
		"column-fill",
		"column-gap",
		"column-rule",
		"column-rule-color",
		"column-rule-style",
		"column-rule-width",
		"column-span",
		"column-width",
		"columns",
		"contain",
		"contain-intrinsic-block-size",
		"contain-intrinsic-height",
		"contain-intrinsic-inline-size",
		"contain-intrinsic-size",
		"contain-intrinsic-width",
		"container",
		"container-name",
		"container-type",
		"content",
		"content-visibility",
		"counter-increment",
		"counter-reset",
		"counter-set",
		"cue",
		"cue-after",
		"cue-before",
		"cursor",
		"cx",
		"cy",
		"direction",
		"display",
		"dominant-baseline",
		"empty-cells",
		"enable-background",
		"field-sizing",
		"fill",
		"fill-opacity",
		"fill-rule",
		"filter",
		"flex",
		"flex-basis",
		"flex-direction",
		"flex-flow",
		"flex-grow",
		"flex-shrink",
		"flex-wrap",
		"float",
		"flood-color",
		"flood-opacity",
		"flow",
		"font",
		"font-display",
		"font-family",
		"font-feature-settings",
		"font-kerning",
		"font-language-override",
		"font-optical-sizing",
		"font-palette",
		"font-size",
		"font-size-adjust",
		"font-smooth",
		"font-smoothing",
		"font-stretch",
		"font-style",
		"font-synthesis",
		"font-synthesis-position",
		"font-synthesis-small-caps",
		"font-synthesis-style",
		"font-synthesis-weight",
		"font-variant",
		"font-variant-alternates",
		"font-variant-caps",
		"font-variant-east-asian",
		"font-variant-emoji",
		"font-variant-ligatures",
		"font-variant-numeric",
		"font-variant-position",
		"font-variation-settings",
		"font-weight",
		"forced-color-adjust",
		"gap",
		"glyph-orientation-horizontal",
		"glyph-orientation-vertical",
		"grid",
		"grid-area",
		"grid-auto-columns",
		"grid-auto-flow",
		"grid-auto-rows",
		"grid-column",
		"grid-column-end",
		"grid-column-start",
		"grid-gap",
		"grid-row",
		"grid-row-end",
		"grid-row-start",
		"grid-template",
		"grid-template-areas",
		"grid-template-columns",
		"grid-template-rows",
		"hanging-punctuation",
		"height",
		"hyphenate-character",
		"hyphenate-limit-chars",
		"hyphens",
		"icon",
		"image-orientation",
		"image-rendering",
		"image-resolution",
		"ime-mode",
		"initial-letter",
		"initial-letter-align",
		"inline-size",
		"inset",
		"inset-area",
		"inset-block",
		"inset-block-end",
		"inset-block-start",
		"inset-inline",
		"inset-inline-end",
		"inset-inline-start",
		"isolation",
		"justify-content",
		"justify-items",
		"justify-self",
		"kerning",
		"left",
		"letter-spacing",
		"lighting-color",
		"line-break",
		"line-height",
		"line-height-step",
		"list-style",
		"list-style-image",
		"list-style-position",
		"list-style-type",
		"margin",
		"margin-block",
		"margin-block-end",
		"margin-block-start",
		"margin-bottom",
		"margin-inline",
		"margin-inline-end",
		"margin-inline-start",
		"margin-left",
		"margin-right",
		"margin-top",
		"margin-trim",
		"marker",
		"marker-end",
		"marker-mid",
		"marker-start",
		"marks",
		"mask",
		"mask-border",
		"mask-border-mode",
		"mask-border-outset",
		"mask-border-repeat",
		"mask-border-slice",
		"mask-border-source",
		"mask-border-width",
		"mask-clip",
		"mask-composite",
		"mask-image",
		"mask-mode",
		"mask-origin",
		"mask-position",
		"mask-repeat",
		"mask-size",
		"mask-type",
		"masonry-auto-flow",
		"math-depth",
		"math-shift",
		"math-style",
		"max-block-size",
		"max-height",
		"max-inline-size",
		"max-width",
		"min-block-size",
		"min-height",
		"min-inline-size",
		"min-width",
		"mix-blend-mode",
		"nav-down",
		"nav-index",
		"nav-left",
		"nav-right",
		"nav-up",
		"none",
		"normal",
		"object-fit",
		"object-position",
		"offset",
		"offset-anchor",
		"offset-distance",
		"offset-path",
		"offset-position",
		"offset-rotate",
		"opacity",
		"order",
		"orphans",
		"outline",
		"outline-color",
		"outline-offset",
		"outline-style",
		"outline-width",
		"overflow",
		"overflow-anchor",
		"overflow-block",
		"overflow-clip-margin",
		"overflow-inline",
		"overflow-wrap",
		"overflow-x",
		"overflow-y",
		"overlay",
		"overscroll-behavior",
		"overscroll-behavior-block",
		"overscroll-behavior-inline",
		"overscroll-behavior-x",
		"overscroll-behavior-y",
		"padding",
		"padding-block",
		"padding-block-end",
		"padding-block-start",
		"padding-bottom",
		"padding-inline",
		"padding-inline-end",
		"padding-inline-start",
		"padding-left",
		"padding-right",
		"padding-top",
		"page",
		"page-break-after",
		"page-break-before",
		"page-break-inside",
		"paint-order",
		"pause",
		"pause-after",
		"pause-before",
		"perspective",
		"perspective-origin",
		"place-content",
		"place-items",
		"place-self",
		"pointer-events",
		"position",
		"position-anchor",
		"position-visibility",
		"print-color-adjust",
		"quotes",
		"r",
		"resize",
		"rest",
		"rest-after",
		"rest-before",
		"right",
		"rotate",
		"row-gap",
		"ruby-align",
		"ruby-position",
		"scale",
		"scroll-behavior",
		"scroll-margin",
		"scroll-margin-block",
		"scroll-margin-block-end",
		"scroll-margin-block-start",
		"scroll-margin-bottom",
		"scroll-margin-inline",
		"scroll-margin-inline-end",
		"scroll-margin-inline-start",
		"scroll-margin-left",
		"scroll-margin-right",
		"scroll-margin-top",
		"scroll-padding",
		"scroll-padding-block",
		"scroll-padding-block-end",
		"scroll-padding-block-start",
		"scroll-padding-bottom",
		"scroll-padding-inline",
		"scroll-padding-inline-end",
		"scroll-padding-inline-start",
		"scroll-padding-left",
		"scroll-padding-right",
		"scroll-padding-top",
		"scroll-snap-align",
		"scroll-snap-stop",
		"scroll-snap-type",
		"scroll-timeline",
		"scroll-timeline-axis",
		"scroll-timeline-name",
		"scrollbar-color",
		"scrollbar-gutter",
		"scrollbar-width",
		"shape-image-threshold",
		"shape-margin",
		"shape-outside",
		"shape-rendering",
		"speak",
		"speak-as",
		"src",
		"stop-color",
		"stop-opacity",
		"stroke",
		"stroke-dasharray",
		"stroke-dashoffset",
		"stroke-linecap",
		"stroke-linejoin",
		"stroke-miterlimit",
		"stroke-opacity",
		"stroke-width",
		"tab-size",
		"table-layout",
		"text-align",
		"text-align-all",
		"text-align-last",
		"text-anchor",
		"text-combine-upright",
		"text-decoration",
		"text-decoration-color",
		"text-decoration-line",
		"text-decoration-skip",
		"text-decoration-skip-ink",
		"text-decoration-style",
		"text-decoration-thickness",
		"text-emphasis",
		"text-emphasis-color",
		"text-emphasis-position",
		"text-emphasis-style",
		"text-indent",
		"text-justify",
		"text-orientation",
		"text-overflow",
		"text-rendering",
		"text-shadow",
		"text-size-adjust",
		"text-transform",
		"text-underline-offset",
		"text-underline-position",
		"text-wrap",
		"text-wrap-mode",
		"text-wrap-style",
		"timeline-scope",
		"top",
		"touch-action",
		"transform",
		"transform-box",
		"transform-origin",
		"transform-style",
		"transition",
		"transition-behavior",
		"transition-delay",
		"transition-duration",
		"transition-property",
		"transition-timing-function",
		"translate",
		"unicode-bidi",
		"user-modify",
		"user-select",
		"vector-effect",
		"vertical-align",
		"view-timeline",
		"view-timeline-axis",
		"view-timeline-inset",
		"view-timeline-name",
		"view-transition-name",
		"visibility",
		"voice-balance",
		"voice-duration",
		"voice-family",
		"voice-pitch",
		"voice-range",
		"voice-rate",
		"voice-stress",
		"voice-volume",
		"white-space",
		"white-space-collapse",
		"widows",
		"width",
		"will-change",
		"word-break",
		"word-spacing",
		"word-wrap",
		"writing-mode",
		"x",
		"y",
		"z-index",
		"zoom"
	].sort().reverse();
	/** @type LanguageFn */
	function css$1(hljs$1) {
		const regex = hljs$1.regex;
		const modes = MODES$5(hljs$1);
		const VENDOR_PREFIX = { begin: /-(webkit|moz|ms|o)-(?=[a-z])/ };
		const AT_MODIFIERS = "and or not only";
		const AT_PROPERTY_RE = /@-?\w[\w]*(-\w+)*/;
		const IDENT_RE$6 = "[a-zA-Z-][a-zA-Z0-9_-]*";
		const STRINGS = [hljs$1.APOS_STRING_MODE, hljs$1.QUOTE_STRING_MODE];
		return {
			name: "CSS",
			case_insensitive: true,
			illegal: /[=|'\$]/,
			keywords: { keyframePosition: "from to" },
			classNameAliases: { keyframePosition: "selector-tag" },
			contains: [
				modes.BLOCK_COMMENT,
				VENDOR_PREFIX,
				modes.CSS_NUMBER_MODE,
				{
					className: "selector-id",
					begin: /#[A-Za-z0-9_-]+/,
					relevance: 0
				},
				{
					className: "selector-class",
					begin: "\\." + IDENT_RE$6,
					relevance: 0
				},
				modes.ATTRIBUTE_SELECTOR_MODE,
				{
					className: "selector-pseudo",
					variants: [{ begin: ":(" + PSEUDO_CLASSES$4.join("|") + ")" }, { begin: ":(:)?(" + PSEUDO_ELEMENTS$4.join("|") + ")" }]
				},
				modes.CSS_VARIABLE,
				{
					className: "attribute",
					begin: "\\b(" + ATTRIBUTES$4.join("|") + ")\\b"
				},
				{
					begin: /:/,
					end: /[;}{]/,
					contains: [
						modes.BLOCK_COMMENT,
						modes.HEXCOLOR,
						modes.IMPORTANT,
						modes.CSS_NUMBER_MODE,
						...STRINGS,
						{
							begin: /(url|data-uri)\(/,
							end: /\)/,
							relevance: 0,
							keywords: { built_in: "url data-uri" },
							contains: [...STRINGS, {
								className: "string",
								begin: /[^)]/,
								endsWithParent: true,
								excludeEnd: true
							}]
						},
						modes.FUNCTION_DISPATCH
					]
				},
				{
					begin: regex.lookahead(/@/),
					end: "[{;]",
					relevance: 0,
					illegal: /:/,
					contains: [{
						className: "keyword",
						begin: AT_PROPERTY_RE
					}, {
						begin: /\s/,
						endsWithParent: true,
						excludeEnd: true,
						relevance: 0,
						keywords: {
							$pattern: /[a-z-]+/,
							keyword: AT_MODIFIERS,
							attribute: MEDIA_FEATURES$4.join(" ")
						},
						contains: [
							{
								begin: /[a-z-]+(?=:)/,
								className: "attribute"
							},
							...STRINGS,
							modes.CSS_NUMBER_MODE
						]
					}]
				},
				{
					className: "selector-tag",
					begin: "\\b(" + TAGS$4.join("|") + ")\\b"
				}
			]
		};
	}
	module.exports = css$1;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/d.js
var require_d = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/**
	* Known issues:
	*
	* - invalid hex string literals will be recognized as a double quoted strings
	*   but 'x' at the beginning of string will not be matched
	*
	* - delimited string literals are not checked for matching end delimiter
	*   (not possible to do with js regexp)
	*
	* - content of token string is colored as a string (i.e. no keyword coloring inside a token string)
	*   also, content of token string is not validated to contain only valid D tokens
	*
	* - special token sequence rule is not strictly following D grammar (anything following #line
	*   up to the end of line is matched as special token sequence)
	*/
	/** @type LanguageFn */
	function d(hljs$1) {
		/**
		* Language keywords
		*
		* @type {Object}
		*/
		const D_KEYWORDS = {
			$pattern: hljs$1.UNDERSCORE_IDENT_RE,
			keyword: "abstract alias align asm assert auto body break byte case cast catch class " + "const continue debug default delete deprecated do else enum export extern final " + "finally for foreach foreach_reverse|10 goto if immutable import in inout int " + "interface invariant is lazy macro mixin module new nothrow out override package " + "pragma private protected public pure ref return scope shared static struct " + "super switch synchronized template this throw try typedef typeid typeof union " + "unittest version void volatile while with __FILE__ __LINE__ __gshared|10 " + "__thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",
			built_in: "bool cdouble cent cfloat char creal dchar delegate double dstring float function " + "idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar " + "wstring",
			literal: "false null true"
		};
		/**
		* Number literal regexps
		*
		* @type {String}
		*/
		const decimal_integer_re = "(0|[1-9][\\d_]*)";
		const decimal_integer_nosus_re = "(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)";
		const binary_integer_re = "0[bB][01_]+";
		const hexadecimal_digits_re = "([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)";
		const hexadecimal_integer_re = "0[xX]" + hexadecimal_digits_re;
		const decimal_exponent_re = "([eE][+-]?" + decimal_integer_nosus_re + ")";
		const decimal_float_re = "(" + decimal_integer_nosus_re + "(\\.\\d*|" + decimal_exponent_re + ")|" + "\\d+\\." + decimal_integer_nosus_re + "|" + "\\." + decimal_integer_re + decimal_exponent_re + "?" + ")";
		const hexadecimal_float_re = "(0[xX](" + hexadecimal_digits_re + "\\." + hexadecimal_digits_re + "|" + "\\.?" + hexadecimal_digits_re + ")[pP][+-]?" + decimal_integer_nosus_re + ")";
		const integer_re = "(" + decimal_integer_re + "|" + binary_integer_re + "|" + hexadecimal_integer_re + ")";
		const float_re = "(" + hexadecimal_float_re + "|" + decimal_float_re + ")";
		/**
		* Escape sequence supported in D string and character literals
		*
		* @type {String}
		*/
		const escape_sequence_re = "\\\\(" + "['\"\\?\\\\abfnrtv]|" + "u[\\dA-Fa-f]{4}|" + "[0-7]{1,3}|" + "x[\\dA-Fa-f]{2}|" + "U[\\dA-Fa-f]{8}" + ")|" + "&[a-zA-Z\\d]{2,};";
		/**
		* D integer number literals
		*
		* @type {Object}
		*/
		const D_INTEGER_MODE = {
			className: "number",
			begin: "\\b" + integer_re + "(L|u|U|Lu|LU|uL|UL)?",
			relevance: 0
		};
		/**
		* [D_FLOAT_MODE description]
		* @type {Object}
		*/
		const D_FLOAT_MODE = {
			className: "number",
			begin: "\\b(" + float_re + "([fF]|L|i|[fF]i|Li)?|" + integer_re + "(i|[fF]i|Li)" + ")",
			relevance: 0
		};
		/**
		* D character literal
		*
		* @type {Object}
		*/
		const D_CHARACTER_MODE = {
			className: "string",
			begin: "'(" + escape_sequence_re + "|.)",
			end: "'",
			illegal: "."
		};
		/**
		* D string escape sequence
		*
		* @type {Object}
		*/
		const D_ESCAPE_SEQUENCE = {
			begin: escape_sequence_re,
			relevance: 0
		};
		/**
		* D double quoted string literal
		*
		* @type {Object}
		*/
		const D_STRING_MODE = {
			className: "string",
			begin: "\"",
			contains: [D_ESCAPE_SEQUENCE],
			end: "\"[cwd]?"
		};
		/**
		* D wysiwyg and delimited string literals
		*
		* @type {Object}
		*/
		const D_WYSIWYG_DELIMITED_STRING_MODE = {
			className: "string",
			begin: "[rq]\"",
			end: "\"[cwd]?",
			relevance: 5
		};
		/**
		* D alternate wysiwyg string literal
		*
		* @type {Object}
		*/
		const D_ALTERNATE_WYSIWYG_STRING_MODE = {
			className: "string",
			begin: "`",
			end: "`[cwd]?"
		};
		/**
		* D hexadecimal string literal
		*
		* @type {Object}
		*/
		const D_HEX_STRING_MODE = {
			className: "string",
			begin: "x\"[\\da-fA-F\\s\\n\\r]*\"[cwd]?",
			relevance: 10
		};
		/**
		* D delimited string literal
		*
		* @type {Object}
		*/
		const D_TOKEN_STRING_MODE = {
			className: "string",
			begin: "q\"\\{",
			end: "\\}\""
		};
		/**
		* Hashbang support
		*
		* @type {Object}
		*/
		const D_HASHBANG_MODE = {
			className: "meta",
			begin: "^#!",
			end: "$",
			relevance: 5
		};
		/**
		* D special token sequence
		*
		* @type {Object}
		*/
		const D_SPECIAL_TOKEN_SEQUENCE_MODE = {
			className: "meta",
			begin: "#(line)",
			end: "$",
			relevance: 5
		};
		/**
		* D attributes
		*
		* @type {Object}
		*/
		const D_ATTRIBUTE_MODE = {
			className: "keyword",
			begin: "@[a-zA-Z_][a-zA-Z_\\d]*"
		};
		/**
		* D nesting comment
		*
		* @type {Object}
		*/
		const D_NESTING_COMMENT_MODE = hljs$1.COMMENT("\\/\\+", "\\+\\/", {
			contains: ["self"],
			relevance: 10
		});
		return {
			name: "D",
			keywords: D_KEYWORDS,
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				D_NESTING_COMMENT_MODE,
				D_HEX_STRING_MODE,
				D_STRING_MODE,
				D_WYSIWYG_DELIMITED_STRING_MODE,
				D_ALTERNATE_WYSIWYG_STRING_MODE,
				D_TOKEN_STRING_MODE,
				D_FLOAT_MODE,
				D_INTEGER_MODE,
				D_CHARACTER_MODE,
				D_HASHBANG_MODE,
				D_SPECIAL_TOKEN_SEQUENCE_MODE,
				D_ATTRIBUTE_MODE
			]
		};
	}
	module.exports = d;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/markdown.js
var require_markdown = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function markdown(hljs$1) {
		const regex = hljs$1.regex;
		const INLINE_HTML = {
			begin: /<\/?[A-Za-z_]/,
			end: ">",
			subLanguage: "xml",
			relevance: 0
		};
		const HORIZONTAL_RULE = {
			begin: "^[-\\*]{3,}",
			end: "$"
		};
		const CODE = {
			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
				}
			]
		};
		const LIST = {
			className: "bullet",
			begin: "^[ 	]*([*+-]|(\\d+\\.))(?=\\s+)",
			end: "\\s+",
			excludeEnd: true
		};
		const LINK_REFERENCE = {
			begin: /^\[[^\n]+\]:/,
			returnBegin: true,
			contains: [{
				className: "symbol",
				begin: /\[/,
				end: /\]/,
				excludeBegin: true,
				excludeEnd: true
			}, {
				className: "link",
				begin: /:\s*/,
				end: /$/,
				excludeBegin: true
			}]
		};
		const URL_SCHEME = /[A-Za-z][A-Za-z0-9+.-]*/;
		const LINK = {
			variants: [
				{
					begin: /\[.+?\]\[.*?\]/,
					relevance: 0
				},
				{
					begin: /\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,
					relevance: 2
				},
				{
					begin: regex.concat(/\[.+?\]\(/, URL_SCHEME, /:\/\/.*?\)/),
					relevance: 2
				},
				{
					begin: /\[.+?\]\([./?&#].*?\)/,
					relevance: 1
				},
				{
					begin: /\[.*?\]\(.*?\)/,
					relevance: 0
				}
			],
			returnBegin: true,
			contains: [
				{ match: /\[(?=\])/ },
				{
					className: "string",
					relevance: 0,
					begin: "\\[",
					end: "\\]",
					excludeBegin: true,
					returnEnd: true
				},
				{
					className: "link",
					relevance: 0,
					begin: "\\]\\(",
					end: "\\)",
					excludeBegin: true,
					excludeEnd: true
				},
				{
					className: "symbol",
					relevance: 0,
					begin: "\\]\\[",
					end: "\\]",
					excludeBegin: true,
					excludeEnd: true
				}
			]
		};
		const BOLD = {
			className: "strong",
			contains: [],
			variants: [{
				begin: /_{2}(?!\s)/,
				end: /_{2}/
			}, {
				begin: /\*{2}(?!\s)/,
				end: /\*{2}/
			}]
		};
		const ITALIC = {
			className: "emphasis",
			contains: [],
			variants: [{
				begin: /\*(?![*\s])/,
				end: /\*/
			}, {
				begin: /_(?![_\s])/,
				end: /_/,
				relevance: 0
			}]
		};
		const BOLD_WITHOUT_ITALIC = hljs$1.inherit(BOLD, { contains: [] });
		const ITALIC_WITHOUT_BOLD = hljs$1.inherit(ITALIC, { contains: [] });
		BOLD.contains.push(ITALIC_WITHOUT_BOLD);
		ITALIC.contains.push(BOLD_WITHOUT_ITALIC);
		let CONTAINABLE = [INLINE_HTML, LINK];
		[
			BOLD,
			ITALIC,
			BOLD_WITHOUT_ITALIC,
			ITALIC_WITHOUT_BOLD
		].forEach((m$3) => {
			m$3.contains = m$3.contains.concat(CONTAINABLE);
		});
		CONTAINABLE = CONTAINABLE.concat(BOLD, ITALIC);
		const HEADER = {
			className: "section",
			variants: [{
				begin: "^#{1,6}",
				end: "$",
				contains: CONTAINABLE
			}, {
				begin: "(?=^.+?\\n[=-]{2,}$)",
				contains: [{ begin: "^[=-]*$" }, {
					begin: "^",
					end: "\\n",
					contains: CONTAINABLE
				}]
			}]
		};
		const BLOCKQUOTE = {
			className: "quote",
			begin: "^>\\s+",
			contains: CONTAINABLE,
			end: "$"
		};
		const ENTITY = {
			scope: "literal",
			match: /&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/
		};
		return {
			name: "Markdown",
			aliases: [
				"md",
				"mkdown",
				"mkd"
			],
			contains: [
				HEADER,
				INLINE_HTML,
				LIST,
				BOLD,
				ITALIC,
				BLOCKQUOTE,
				CODE,
				HORIZONTAL_RULE,
				LINK,
				LINK_REFERENCE,
				ENTITY
			]
		};
	}
	module.exports = markdown;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/dart.js
var require_dart = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function dart(hljs$1) {
		const SUBST = {
			className: "subst",
			variants: [{ begin: "\\$[A-Za-z0-9_]+" }]
		};
		const BRACED_SUBST = {
			className: "subst",
			variants: [{
				begin: /\$\{/,
				end: /\}/
			}],
			keywords: "true false null this is new super"
		};
		const NUMBER = {
			className: "number",
			relevance: 0,
			variants: [{ match: /\b[0-9][0-9_]*(\.[0-9][0-9_]*)?([eE][+-]?[0-9][0-9_]*)?\b/ }, { match: /\b0[xX][0-9A-Fa-f][0-9A-Fa-f_]*\b/ }]
		};
		const STRING = {
			className: "string",
			variants: [
				{
					begin: "r'''",
					end: "'''"
				},
				{
					begin: "r\"\"\"",
					end: "\"\"\""
				},
				{
					begin: "r'",
					end: "'",
					illegal: "\\n"
				},
				{
					begin: "r\"",
					end: "\"",
					illegal: "\\n"
				},
				{
					begin: "'''",
					end: "'''",
					contains: [
						hljs$1.BACKSLASH_ESCAPE,
						SUBST,
						BRACED_SUBST
					]
				},
				{
					begin: "\"\"\"",
					end: "\"\"\"",
					contains: [
						hljs$1.BACKSLASH_ESCAPE,
						SUBST,
						BRACED_SUBST
					]
				},
				{
					begin: "'",
					end: "'",
					illegal: "\\n",
					contains: [
						hljs$1.BACKSLASH_ESCAPE,
						SUBST,
						BRACED_SUBST
					]
				},
				{
					begin: "\"",
					end: "\"",
					illegal: "\\n",
					contains: [
						hljs$1.BACKSLASH_ESCAPE,
						SUBST,
						BRACED_SUBST
					]
				}
			]
		};
		BRACED_SUBST.contains = [NUMBER, STRING];
		const BUILT_IN_TYPES = [
			"Comparable",
			"DateTime",
			"Duration",
			"Function",
			"Iterable",
			"Iterator",
			"List",
			"Map",
			"Match",
			"Object",
			"Pattern",
			"RegExp",
			"Set",
			"Stopwatch",
			"String",
			"StringBuffer",
			"StringSink",
			"Symbol",
			"Type",
			"Uri",
			"bool",
			"double",
			"int",
			"num",
			"Element",
			"ElementList"
		];
		const NULLABLE_BUILT_IN_TYPES = BUILT_IN_TYPES.map((e$10) => `${e$10}?`);
		const BASIC_KEYWORDS = [
			"abstract",
			"as",
			"assert",
			"async",
			"await",
			"base",
			"break",
			"case",
			"catch",
			"class",
			"const",
			"continue",
			"covariant",
			"default",
			"deferred",
			"do",
			"dynamic",
			"else",
			"enum",
			"export",
			"extends",
			"extension",
			"external",
			"factory",
			"false",
			"final",
			"finally",
			"for",
			"Function",
			"get",
			"hide",
			"if",
			"implements",
			"import",
			"in",
			"interface",
			"is",
			"late",
			"library",
			"mixin",
			"new",
			"null",
			"on",
			"operator",
			"part",
			"required",
			"rethrow",
			"return",
			"sealed",
			"set",
			"show",
			"static",
			"super",
			"switch",
			"sync",
			"this",
			"throw",
			"true",
			"try",
			"typedef",
			"var",
			"void",
			"when",
			"while",
			"with",
			"yield"
		];
		const KEYWORDS$6 = {
			keyword: BASIC_KEYWORDS,
			built_in: BUILT_IN_TYPES.concat(NULLABLE_BUILT_IN_TYPES).concat([
				"Never",
				"Null",
				"dynamic",
				"print",
				"document",
				"querySelector",
				"querySelectorAll",
				"window"
			]),
			$pattern: /[A-Za-z][A-Za-z0-9_]*\??/
		};
		return {
			name: "Dart",
			keywords: KEYWORDS$6,
			contains: [
				STRING,
				hljs$1.COMMENT(/\/\*\*(?!\/)/, /\*\//, {
					subLanguage: "markdown",
					relevance: 0
				}),
				hljs$1.COMMENT(/\/{3,} ?/, /$/, { contains: [{
					subLanguage: "markdown",
					begin: ".",
					end: "$",
					relevance: 0
				}] }),
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				{
					className: "class",
					beginKeywords: "class interface",
					end: /\{/,
					excludeEnd: true,
					contains: [{ beginKeywords: "extends implements" }, hljs$1.UNDERSCORE_TITLE_MODE]
				},
				NUMBER,
				{
					className: "meta",
					begin: "@[A-Za-z]+"
				},
				{ begin: "=>" }
			]
		};
	}
	module.exports = dart;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/delphi.js
var require_delphi = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function delphi(hljs$1) {
		const KEYWORDS$6 = [
			"exports",
			"register",
			"file",
			"shl",
			"array",
			"record",
			"property",
			"for",
			"mod",
			"while",
			"set",
			"ally",
			"label",
			"uses",
			"raise",
			"not",
			"stored",
			"class",
			"safecall",
			"var",
			"interface",
			"or",
			"private",
			"static",
			"exit",
			"index",
			"inherited",
			"to",
			"else",
			"stdcall",
			"override",
			"shr",
			"asm",
			"far",
			"resourcestring",
			"finalization",
			"packed",
			"virtual",
			"out",
			"and",
			"protected",
			"library",
			"do",
			"xorwrite",
			"goto",
			"near",
			"function",
			"end",
			"div",
			"overload",
			"object",
			"unit",
			"begin",
			"string",
			"on",
			"inline",
			"repeat",
			"until",
			"destructor",
			"write",
			"message",
			"program",
			"with",
			"read",
			"initialization",
			"except",
			"default",
			"nil",
			"if",
			"case",
			"cdecl",
			"in",
			"downto",
			"threadvar",
			"of",
			"try",
			"pascal",
			"const",
			"external",
			"constructor",
			"type",
			"public",
			"then",
			"implementation",
			"finally",
			"published",
			"procedure",
			"absolute",
			"reintroduce",
			"operator",
			"as",
			"is",
			"abstract",
			"alias",
			"assembler",
			"bitpacked",
			"break",
			"continue",
			"cppdecl",
			"cvar",
			"enumerator",
			"experimental",
			"platform",
			"deprecated",
			"unimplemented",
			"dynamic",
			"export",
			"far16",
			"forward",
			"generic",
			"helper",
			"implements",
			"interrupt",
			"iochecks",
			"local",
			"name",
			"nodefault",
			"noreturn",
			"nostackframe",
			"oldfpccall",
			"otherwise",
			"saveregisters",
			"softfloat",
			"specialize",
			"strict",
			"unaligned",
			"varargs"
		];
		const COMMENT_MODES = [
			hljs$1.C_LINE_COMMENT_MODE,
			hljs$1.COMMENT(/\{/, /\}/, { relevance: 0 }),
			hljs$1.COMMENT(/\(\*/, /\*\)/, { relevance: 10 })
		];
		const DIRECTIVE = {
			className: "meta",
			variants: [{
				begin: /\{\$/,
				end: /\}/
			}, {
				begin: /\(\*\$/,
				end: /\*\)/
			}]
		};
		const STRING = {
			className: "string",
			begin: /'/,
			end: /'/,
			contains: [{ begin: /''/ }]
		};
		const NUMBER = {
			className: "number",
			relevance: 0,
			variants: [
				{ match: /\b\d[\d_]*(\.\d[\d_]*)?/ },
				{ match: /\$[\dA-Fa-f_]+/ },
				{
					match: /\$/,
					relevance: 0
				},
				{ match: /&[0-7][0-7_]*/ },
				{ match: /%[01_]+/ },
				{
					match: /%/,
					relevance: 0
				}
			]
		};
		const CHAR_STRING = {
			className: "string",
			variants: [
				{ match: /#\d[\d_]*/ },
				{ match: /#\$[\dA-Fa-f][\dA-Fa-f_]*/ },
				{ match: /#&[0-7][0-7_]*/ },
				{ match: /#%[01][01_]*/ }
			]
		};
		const CLASS = {
			begin: hljs$1.IDENT_RE + "\\s*=\\s*class\\s*\\(",
			returnBegin: true,
			contains: [hljs$1.TITLE_MODE]
		};
		const FUNCTION = {
			className: "function",
			beginKeywords: "function constructor destructor procedure",
			end: /[:;]/,
			keywords: "function constructor|10 destructor|10 procedure|10",
			contains: [
				hljs$1.TITLE_MODE,
				{
					className: "params",
					begin: /\(/,
					end: /\)/,
					keywords: KEYWORDS$6,
					contains: [
						STRING,
						CHAR_STRING,
						DIRECTIVE
					].concat(COMMENT_MODES)
				},
				DIRECTIVE
			].concat(COMMENT_MODES)
		};
		return {
			name: "Delphi",
			aliases: [
				"dpr",
				"dfm",
				"pas",
				"pascal"
			],
			case_insensitive: true,
			keywords: KEYWORDS$6,
			illegal: /"|\$[G-Zg-z]|\/\*|<\/|\|/,
			contains: [
				STRING,
				CHAR_STRING,
				NUMBER,
				CLASS,
				FUNCTION,
				DIRECTIVE
			].concat(COMMENT_MODES)
		};
	}
	module.exports = delphi;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/diff.js
var require_diff = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function diff(hljs$1) {
		const regex = hljs$1.regex;
		return {
			name: "Diff",
			aliases: ["patch"],
			contains: [
				{
					className: "meta",
					relevance: 10,
					match: regex.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/, /^\*\*\* +\d+,\d+ +\*\*\*\*$/, /^--- +\d+,\d+ +----$/)
				},
				{
					className: "comment",
					variants: [{
						begin: regex.either(/Index: /, /^index/, /={3,}/, /^-{3}/, /^\*{3} /, /^\+{3}/, /^diff --git/),
						end: /$/
					}, { match: /^\*{15}$/ }]
				},
				{
					className: "addition",
					begin: /^\+/,
					end: /$/
				},
				{
					className: "deletion",
					begin: /^-/,
					end: /$/
				},
				{
					className: "addition",
					begin: /^!/,
					end: /$/
				}
			]
		};
	}
	module.exports = diff;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/django.js
var require_django = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function django(hljs$1) {
		const FILTER = {
			begin: /\|[A-Za-z]+:?/,
			keywords: { name: "truncatewords removetags linebreaksbr yesno get_digit timesince random striptags " + "filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands " + "title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode " + "timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort " + "dictsortreversed default_if_none pluralize lower join center default " + "truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first " + "escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize " + "localtime utc timezone" },
			contains: [hljs$1.QUOTE_STRING_MODE, hljs$1.APOS_STRING_MODE]
		};
		return {
			name: "Django",
			aliases: ["jinja"],
			case_insensitive: true,
			subLanguage: "xml",
			contains: [
				hljs$1.COMMENT(/\{%\s*comment\s*%\}/, /\{%\s*endcomment\s*%\}/),
				hljs$1.COMMENT(/\{#/, /#\}/),
				{
					className: "template-tag",
					begin: /\{%/,
					end: /%\}/,
					contains: [{
						className: "name",
						begin: /\w+/,
						keywords: { name: "comment endcomment load templatetag ifchanged endifchanged if endif firstof for " + "endfor ifnotequal endifnotequal widthratio extends include spaceless " + "endspaceless regroup ifequal endifequal ssi now with cycle url filter " + "endfilter debug block endblock else autoescape endautoescape csrf_token empty elif " + "endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix " + "plural get_current_language language get_available_languages " + "get_current_language_bidi get_language_info get_language_info_list localize " + "endlocalize localtime endlocaltime timezone endtimezone get_current_timezone " + "verbatim" },
						starts: {
							endsWithParent: true,
							keywords: "in by as",
							contains: [FILTER],
							relevance: 0
						}
					}]
				},
				{
					className: "template-variable",
					begin: /\{\{/,
					end: /\}\}/,
					contains: [FILTER]
				}
			]
		};
	}
	module.exports = django;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/dns.js
var require_dns = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function dns(hljs$1) {
		const KEYWORDS$6 = [
			"IN",
			"A",
			"AAAA",
			"AFSDB",
			"APL",
			"CAA",
			"CDNSKEY",
			"CDS",
			"CERT",
			"CNAME",
			"DHCID",
			"DLV",
			"DNAME",
			"DNSKEY",
			"DS",
			"HIP",
			"IPSECKEY",
			"KEY",
			"KX",
			"LOC",
			"MX",
			"NAPTR",
			"NS",
			"NSEC",
			"NSEC3",
			"NSEC3PARAM",
			"PTR",
			"RRSIG",
			"RP",
			"SIG",
			"SOA",
			"SRV",
			"SSHFP",
			"TA",
			"TKEY",
			"TLSA",
			"TSIG",
			"TXT"
		];
		return {
			name: "DNS Zone",
			aliases: ["bind", "zone"],
			keywords: KEYWORDS$6,
			contains: [
				hljs$1.COMMENT(";", "$", { relevance: 0 }),
				{
					className: "meta",
					begin: /^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/
				},
				{
					className: "number",
					begin: "((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))\\b"
				},
				{
					className: "number",
					begin: "((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b"
				},
				hljs$1.inherit(hljs$1.NUMBER_MODE, { begin: /\b\d+[dhwm]?/ })
			]
		};
	}
	module.exports = dns;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/dockerfile.js
var require_dockerfile = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function dockerfile(hljs$1) {
		const KEYWORDS$6 = [
			"from",
			"maintainer",
			"expose",
			"env",
			"arg",
			"user",
			"onbuild",
			"stopsignal"
		];
		return {
			name: "Dockerfile",
			aliases: ["docker"],
			case_insensitive: true,
			keywords: KEYWORDS$6,
			contains: [
				hljs$1.HASH_COMMENT_MODE,
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.NUMBER_MODE,
				{
					beginKeywords: "run cmd entrypoint volume add copy workdir label healthcheck shell",
					starts: {
						end: /[^\\]$/,
						subLanguage: "bash"
					}
				}
			],
			illegal: "</"
		};
	}
	module.exports = dockerfile;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/dos.js
var require_dos = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function dos(hljs$1) {
		const COMMENT$2 = hljs$1.COMMENT(/^\s*@?rem\b/, /$/, { relevance: 10 });
		const LABEL = {
			className: "symbol",
			begin: "^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)",
			relevance: 0
		};
		const KEYWORDS$6 = [
			"if",
			"else",
			"goto",
			"for",
			"in",
			"do",
			"call",
			"exit",
			"not",
			"exist",
			"errorlevel",
			"defined",
			"equ",
			"neq",
			"lss",
			"leq",
			"gtr",
			"geq"
		];
		const BUILT_INS$6 = [
			"prn",
			"nul",
			"lpt3",
			"lpt2",
			"lpt1",
			"con",
			"com4",
			"com3",
			"com2",
			"com1",
			"aux",
			"shift",
			"cd",
			"dir",
			"echo",
			"setlocal",
			"endlocal",
			"set",
			"pause",
			"copy",
			"append",
			"assoc",
			"at",
			"attrib",
			"break",
			"cacls",
			"cd",
			"chcp",
			"chdir",
			"chkdsk",
			"chkntfs",
			"cls",
			"cmd",
			"color",
			"comp",
			"compact",
			"convert",
			"date",
			"dir",
			"diskcomp",
			"diskcopy",
			"doskey",
			"erase",
			"fs",
			"find",
			"findstr",
			"format",
			"ftype",
			"graftabl",
			"help",
			"keyb",
			"label",
			"md",
			"mkdir",
			"mode",
			"more",
			"move",
			"path",
			"pause",
			"print",
			"popd",
			"pushd",
			"promt",
			"rd",
			"recover",
			"rem",
			"rename",
			"replace",
			"restore",
			"rmdir",
			"shift",
			"sort",
			"start",
			"subst",
			"time",
			"title",
			"tree",
			"type",
			"ver",
			"verify",
			"vol",
			"ping",
			"net",
			"ipconfig",
			"taskkill",
			"xcopy",
			"ren",
			"del"
		];
		return {
			name: "Batch file (DOS)",
			aliases: ["bat", "cmd"],
			case_insensitive: true,
			illegal: /\/\*/,
			keywords: {
				keyword: KEYWORDS$6,
				built_in: BUILT_INS$6
			},
			contains: [
				{
					className: "variable",
					begin: /%%[^ ]|%[^ ]+?%|![^ ]+?!/
				},
				{
					className: "function",
					begin: LABEL.begin,
					end: "goto:eof",
					contains: [hljs$1.inherit(hljs$1.TITLE_MODE, { begin: "([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*" }), COMMENT$2]
				},
				{
					className: "number",
					begin: "\\b\\d+",
					relevance: 0
				},
				COMMENT$2
			]
		};
	}
	module.exports = dos;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/dsconfig.js
var require_dsconfig = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function dsconfig(hljs$1) {
		const QUOTED_PROPERTY = {
			className: "string",
			begin: /"/,
			end: /"/
		};
		const APOS_PROPERTY = {
			className: "string",
			begin: /'/,
			end: /'/
		};
		const UNQUOTED_PROPERTY = {
			className: "string",
			begin: /[\w\-?]+:\w+/,
			end: /\W/,
			relevance: 0
		};
		const VALUELESS_PROPERTY = {
			className: "string",
			begin: /\w+(\-\w+)*/,
			end: /(?=\W)/,
			relevance: 0
		};
		return {
			keywords: "dsconfig",
			contains: [
				{
					className: "keyword",
					begin: "^dsconfig",
					end: /\s/,
					excludeEnd: true,
					relevance: 10
				},
				{
					className: "built_in",
					begin: /(list|create|get|set|delete)-(\w+)/,
					end: /\s/,
					excludeEnd: true,
					illegal: "!@#$%^&*()",
					relevance: 10
				},
				{
					className: "built_in",
					begin: /--(\w+)/,
					end: /\s/,
					excludeEnd: true
				},
				QUOTED_PROPERTY,
				APOS_PROPERTY,
				UNQUOTED_PROPERTY,
				VALUELESS_PROPERTY,
				hljs$1.HASH_COMMENT_MODE
			]
		};
	}
	module.exports = dsconfig;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/dts.js
var require_dts = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function dts(hljs$1) {
		const STRINGS = {
			className: "string",
			variants: [
				hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { begin: "((u8?|U)|L)?\"" }),
				{
					begin: "(u8?|U)?R\"",
					end: "\"",
					contains: [hljs$1.BACKSLASH_ESCAPE]
				},
				{
					begin: "'\\\\?.",
					end: "'",
					illegal: "."
				}
			]
		};
		const NUMBERS = {
			className: "number",
			variants: [{ begin: "\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)" }, { begin: hljs$1.C_NUMBER_RE }],
			relevance: 0
		};
		const PREPROCESSOR = {
			className: "meta",
			begin: "#",
			end: "$",
			keywords: { keyword: "if else elif endif define undef ifdef ifndef" },
			contains: [
				{
					begin: /\\\n/,
					relevance: 0
				},
				{
					beginKeywords: "include",
					end: "$",
					keywords: { keyword: "include" },
					contains: [hljs$1.inherit(STRINGS, { className: "string" }), {
						className: "string",
						begin: "<",
						end: ">",
						illegal: "\\n"
					}]
				},
				STRINGS,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE
			]
		};
		const REFERENCE = {
			className: "variable",
			begin: /&[a-z\d_]*\b/
		};
		const KEYWORD = {
			className: "keyword",
			begin: "/[a-z][a-z\\d-]*/"
		};
		const LABEL = {
			className: "symbol",
			begin: "^\\s*[a-zA-Z_][a-zA-Z\\d_]*:"
		};
		const CELL_PROPERTY = {
			className: "params",
			relevance: 0,
			begin: "<",
			end: ">",
			contains: [NUMBERS, REFERENCE]
		};
		const NODE = {
			className: "title.class",
			begin: /[a-zA-Z_][a-zA-Z\d_@-]*(?=\s\{)/,
			relevance: .2
		};
		const ROOT_NODE = {
			className: "title.class",
			begin: /^\/(?=\s*\{)/,
			relevance: 10
		};
		const ATTR_NO_VALUE = {
			match: /[a-z][a-z-,]+(?=;)/,
			relevance: 0,
			scope: "attr"
		};
		const ATTR = {
			relevance: 0,
			match: [
				/[a-z][a-z-,]+/,
				/\s*/,
				/=/
			],
			scope: {
				1: "attr",
				3: "operator"
			}
		};
		const PUNC = {
			scope: "punctuation",
			relevance: 0,
			match: /\};|[;{}]/
		};
		return {
			name: "Device Tree",
			contains: [
				ROOT_NODE,
				REFERENCE,
				KEYWORD,
				LABEL,
				NODE,
				ATTR,
				ATTR_NO_VALUE,
				CELL_PROPERTY,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				NUMBERS,
				STRINGS,
				PREPROCESSOR,
				PUNC,
				{
					begin: hljs$1.IDENT_RE + "::",
					keywords: ""
				}
			]
		};
	}
	module.exports = dts;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/dust.js
var require_dust = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function dust(hljs$1) {
		const EXPRESSION_KEYWORDS = "if eq ne lt lte gt gte select default math sep";
		return {
			name: "Dust",
			aliases: ["dst"],
			case_insensitive: true,
			subLanguage: "xml",
			contains: [{
				className: "template-tag",
				begin: /\{[#\/]/,
				end: /\}/,
				illegal: /;/,
				contains: [{
					className: "name",
					begin: /[a-zA-Z\.-]+/,
					starts: {
						endsWithParent: true,
						relevance: 0,
						contains: [hljs$1.QUOTE_STRING_MODE]
					}
				}]
			}, {
				className: "template-variable",
				begin: /\{/,
				end: /\}/,
				illegal: /;/,
				keywords: EXPRESSION_KEYWORDS
			}]
		};
	}
	module.exports = dust;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/ebnf.js
var require_ebnf = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function ebnf(hljs$1) {
		const commentMode = hljs$1.COMMENT(/\(\*/, /\*\)/);
		const nonTerminalMode = {
			className: "attribute",
			begin: /^[ ]*[a-zA-Z]+([\s_-]+[a-zA-Z]+)*/
		};
		const specialSequenceMode = {
			className: "meta",
			begin: /\?.*\?/
		};
		const ruleBodyMode = {
			begin: /=/,
			end: /[.;]/,
			contains: [
				commentMode,
				specialSequenceMode,
				{
					className: "string",
					variants: [
						hljs$1.APOS_STRING_MODE,
						hljs$1.QUOTE_STRING_MODE,
						{
							begin: "`",
							end: "`"
						}
					]
				}
			]
		};
		return {
			name: "Extended Backus-Naur Form",
			illegal: /\S/,
			contains: [
				commentMode,
				nonTerminalMode,
				ruleBodyMode
			]
		};
	}
	module.exports = ebnf;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/elixir.js
var require_elixir = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function elixir(hljs$1) {
		const regex = hljs$1.regex;
		const ELIXIR_IDENT_RE = "[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?";
		const ELIXIR_METHOD_RE = "[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";
		const KEYWORDS$6 = [
			"after",
			"alias",
			"and",
			"case",
			"catch",
			"cond",
			"defstruct",
			"defguard",
			"do",
			"else",
			"end",
			"fn",
			"for",
			"if",
			"import",
			"in",
			"not",
			"or",
			"quote",
			"raise",
			"receive",
			"require",
			"reraise",
			"rescue",
			"try",
			"unless",
			"unquote",
			"unquote_splicing",
			"use",
			"when",
			"with|0"
		];
		const LITERALS$6 = [
			"false",
			"nil",
			"true"
		];
		const KWS = {
			$pattern: ELIXIR_IDENT_RE,
			keyword: KEYWORDS$6,
			literal: LITERALS$6
		};
		const SUBST = {
			className: "subst",
			begin: /#\{/,
			end: /\}/,
			keywords: KWS
		};
		const NUMBER = {
			className: "number",
			begin: "(\\b0o[0-7_]+)|(\\b0b[01_]+)|(\\b0x[0-9a-fA-F_]+)|(-?\\b[0-9][0-9_]*(\\.[0-9_]+([eE][-+]?[0-9]+)?)?)",
			relevance: 0
		};
		const ESCAPES_RE = /\\[\s\S]/;
		const BACKSLASH_ESCAPE$2 = {
			match: ESCAPES_RE,
			scope: "char.escape",
			relevance: 0
		};
		const SIGIL_DELIMITERS = "[/|([{<\"']";
		const SIGIL_DELIMITER_MODES = [
			{
				begin: /"/,
				end: /"/
			},
			{
				begin: /'/,
				end: /'/
			},
			{
				begin: /\//,
				end: /\//
			},
			{
				begin: /\|/,
				end: /\|/
			},
			{
				begin: /\(/,
				end: /\)/
			},
			{
				begin: /\[/,
				end: /\]/
			},
			{
				begin: /\{/,
				end: /\}/
			},
			{
				begin: /</,
				end: />/
			}
		];
		const escapeSigilEnd = (end) => {
			return {
				scope: "char.escape",
				begin: regex.concat(/\\/, end),
				relevance: 0
			};
		};
		const LOWERCASE_SIGIL = {
			className: "string",
			begin: "~[a-z]" + "(?=" + SIGIL_DELIMITERS + ")",
			contains: SIGIL_DELIMITER_MODES.map((x$2) => hljs$1.inherit(x$2, { contains: [
				escapeSigilEnd(x$2.end),
				BACKSLASH_ESCAPE$2,
				SUBST
			] }))
		};
		const UPCASE_SIGIL = {
			className: "string",
			begin: "~[A-Z]" + "(?=" + SIGIL_DELIMITERS + ")",
			contains: SIGIL_DELIMITER_MODES.map((x$2) => hljs$1.inherit(x$2, { contains: [escapeSigilEnd(x$2.end)] }))
		};
		const REGEX_SIGIL = {
			className: "regex",
			variants: [{
				begin: "~r" + "(?=" + SIGIL_DELIMITERS + ")",
				contains: SIGIL_DELIMITER_MODES.map((x$2) => hljs$1.inherit(x$2, {
					end: regex.concat(x$2.end, /[uismxfU]{0,7}/),
					contains: [
						escapeSigilEnd(x$2.end),
						BACKSLASH_ESCAPE$2,
						SUBST
					]
				}))
			}, {
				begin: "~R" + "(?=" + SIGIL_DELIMITERS + ")",
				contains: SIGIL_DELIMITER_MODES.map((x$2) => hljs$1.inherit(x$2, {
					end: regex.concat(x$2.end, /[uismxfU]{0,7}/),
					contains: [escapeSigilEnd(x$2.end)]
				}))
			}]
		};
		const STRING = {
			className: "string",
			contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
			variants: [
				{
					begin: /"""/,
					end: /"""/
				},
				{
					begin: /'''/,
					end: /'''/
				},
				{
					begin: /~S"""/,
					end: /"""/,
					contains: []
				},
				{
					begin: /~S"/,
					end: /"/,
					contains: []
				},
				{
					begin: /~S'''/,
					end: /'''/,
					contains: []
				},
				{
					begin: /~S'/,
					end: /'/,
					contains: []
				},
				{
					begin: /'/,
					end: /'/
				},
				{
					begin: /"/,
					end: /"/
				}
			]
		};
		const FUNCTION = {
			className: "function",
			beginKeywords: "def defp defmacro defmacrop",
			end: /\B\b/,
			contains: [hljs$1.inherit(hljs$1.TITLE_MODE, {
				begin: ELIXIR_IDENT_RE,
				endsParent: true
			})]
		};
		const CLASS = hljs$1.inherit(FUNCTION, {
			className: "class",
			beginKeywords: "defimpl defmodule defprotocol defrecord",
			end: /\bdo\b|$|;/
		});
		const ELIXIR_DEFAULT_CONTAINS = [
			STRING,
			REGEX_SIGIL,
			UPCASE_SIGIL,
			LOWERCASE_SIGIL,
			hljs$1.HASH_COMMENT_MODE,
			CLASS,
			FUNCTION,
			{ begin: "::" },
			{
				className: "symbol",
				begin: ":(?![\\s:])",
				contains: [STRING, { begin: ELIXIR_METHOD_RE }],
				relevance: 0
			},
			{
				className: "symbol",
				begin: ELIXIR_IDENT_RE + ":(?!:)",
				relevance: 0
			},
			{
				className: "title.class",
				begin: /(\b[A-Z][a-zA-Z0-9_]+)/,
				relevance: 0
			},
			NUMBER,
			{
				className: "variable",
				begin: "(\\$\\W)|((\\$|@@?)(\\w+))"
			}
		];
		SUBST.contains = ELIXIR_DEFAULT_CONTAINS;
		return {
			name: "Elixir",
			aliases: ["ex", "exs"],
			keywords: KWS,
			contains: ELIXIR_DEFAULT_CONTAINS
		};
	}
	module.exports = elixir;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/elm.js
var require_elm = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function elm(hljs$1) {
		const COMMENT$2 = { variants: [hljs$1.COMMENT("--", "$"), hljs$1.COMMENT(/\{-/, /-\}/, { contains: ["self"] })] };
		const CONSTRUCTOR = {
			className: "type",
			begin: "\\b[A-Z][\\w']*",
			relevance: 0
		};
		const LIST = {
			begin: "\\(",
			end: "\\)",
			illegal: "\"",
			contains: [{
				className: "type",
				begin: "\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"
			}, COMMENT$2]
		};
		const RECORD = {
			begin: /\{/,
			end: /\}/,
			contains: LIST.contains
		};
		const CHARACTER = {
			className: "string",
			begin: "'\\\\?.",
			end: "'",
			illegal: "."
		};
		const KEYWORDS$6 = [
			"let",
			"in",
			"if",
			"then",
			"else",
			"case",
			"of",
			"where",
			"module",
			"import",
			"exposing",
			"type",
			"alias",
			"as",
			"infix",
			"infixl",
			"infixr",
			"port",
			"effect",
			"command",
			"subscription"
		];
		return {
			name: "Elm",
			keywords: KEYWORDS$6,
			contains: [
				{
					beginKeywords: "port effect module",
					end: "exposing",
					keywords: "port effect module where command subscription exposing",
					contains: [LIST, COMMENT$2],
					illegal: "\\W\\.|;"
				},
				{
					begin: "import",
					end: "$",
					keywords: "import as exposing",
					contains: [LIST, COMMENT$2],
					illegal: "\\W\\.|;"
				},
				{
					begin: "type",
					end: "$",
					keywords: "type alias",
					contains: [
						CONSTRUCTOR,
						LIST,
						RECORD,
						COMMENT$2
					]
				},
				{
					beginKeywords: "infix infixl infixr",
					end: "$",
					contains: [hljs$1.C_NUMBER_MODE, COMMENT$2]
				},
				{
					begin: "port",
					end: "$",
					keywords: "port",
					contains: [COMMENT$2]
				},
				CHARACTER,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.C_NUMBER_MODE,
				CONSTRUCTOR,
				hljs$1.inherit(hljs$1.TITLE_MODE, { begin: "^[_a-z][\\w']*" }),
				COMMENT$2,
				{ begin: "->|<-" }
			],
			illegal: /;/
		};
	}
	module.exports = elm;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/ruby.js
var require_ruby = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function ruby(hljs$1) {
		const regex = hljs$1.regex;
		const RUBY_METHOD_RE = "([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)";
		const CLASS_NAME_RE = regex.either(/\b([A-Z]+[a-z0-9]+)+/, /\b([A-Z]+[a-z0-9]+)+[A-Z]+/);
		const CLASS_NAME_WITH_NAMESPACE_RE = regex.concat(CLASS_NAME_RE, /(::\w+)*/);
		const PSEUDO_KWS = [
			"include",
			"extend",
			"prepend",
			"public",
			"private",
			"protected",
			"raise",
			"throw"
		];
		const RUBY_KEYWORDS = {
			"variable.constant": [
				"__FILE__",
				"__LINE__",
				"__ENCODING__"
			],
			"variable.language": ["self", "super"],
			keyword: [
				"alias",
				"and",
				"begin",
				"BEGIN",
				"break",
				"case",
				"class",
				"defined",
				"do",
				"else",
				"elsif",
				"end",
				"END",
				"ensure",
				"for",
				"if",
				"in",
				"module",
				"next",
				"not",
				"or",
				"redo",
				"require",
				"rescue",
				"retry",
				"return",
				"then",
				"undef",
				"unless",
				"until",
				"when",
				"while",
				"yield",
				...PSEUDO_KWS
			],
			built_in: [
				"proc",
				"lambda",
				"attr_accessor",
				"attr_reader",
				"attr_writer",
				"define_method",
				"private_constant",
				"module_function"
			],
			literal: [
				"true",
				"false",
				"nil"
			]
		};
		const YARDOCTAG = {
			className: "doctag",
			begin: "@[A-Za-z]+"
		};
		const IRB_OBJECT = {
			begin: "#<",
			end: ">"
		};
		const COMMENT_MODES = [
			hljs$1.COMMENT("#", "$", { contains: [YARDOCTAG] }),
			hljs$1.COMMENT("^=begin", "^=end", {
				contains: [YARDOCTAG],
				relevance: 10
			}),
			hljs$1.COMMENT("^__END__", hljs$1.MATCH_NOTHING_RE)
		];
		const SUBST = {
			className: "subst",
			begin: /#\{/,
			end: /\}/,
			keywords: RUBY_KEYWORDS
		};
		const STRING = {
			className: "string",
			contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
			variants: [
				{
					begin: /'/,
					end: /'/
				},
				{
					begin: /"/,
					end: /"/
				},
				{
					begin: /`/,
					end: /`/
				},
				{
					begin: /%[qQwWx]?\(/,
					end: /\)/
				},
				{
					begin: /%[qQwWx]?\[/,
					end: /\]/
				},
				{
					begin: /%[qQwWx]?\{/,
					end: /\}/
				},
				{
					begin: /%[qQwWx]?</,
					end: />/
				},
				{
					begin: /%[qQwWx]?\//,
					end: /\//
				},
				{
					begin: /%[qQwWx]?%/,
					end: /%/
				},
				{
					begin: /%[qQwWx]?-/,
					end: /-/
				},
				{
					begin: /%[qQwWx]?\|/,
					end: /\|/
				},
				{ begin: /\B\?(\\\d{1,3})/ },
				{ begin: /\B\?(\\x[A-Fa-f0-9]{1,2})/ },
				{ begin: /\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/ },
				{ begin: /\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/ },
				{ begin: /\B\?\\(c|C-)[\x20-\x7e]/ },
				{ begin: /\B\?\\?\S/ },
				{
					begin: regex.concat(/<<[-~]?'?/, regex.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),
					contains: [hljs$1.END_SAME_AS_BEGIN({
						begin: /(\w+)/,
						end: /(\w+)/,
						contains: [hljs$1.BACKSLASH_ESCAPE, SUBST]
					})]
				}
			]
		};
		const decimal = "[1-9](_?[0-9])*|0";
		const digits = "[0-9](_?[0-9])*";
		const NUMBER = {
			className: "number",
			relevance: 0,
			variants: [
				{ begin: `\\b(${decimal})(\\.(${digits}))?([eE][+-]?(${digits})|r)?i?\\b` },
				{ begin: "\\b0[dD][0-9](_?[0-9])*r?i?\\b" },
				{ begin: "\\b0[bB][0-1](_?[0-1])*r?i?\\b" },
				{ begin: "\\b0[oO][0-7](_?[0-7])*r?i?\\b" },
				{ begin: "\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b" },
				{ begin: "\\b0(_?[0-7])+r?i?\\b" }
			]
		};
		const PARAMS = { variants: [{ match: /\(\)/ }, {
			className: "params",
			begin: /\(/,
			end: /(?=\))/,
			excludeBegin: true,
			endsParent: true,
			keywords: RUBY_KEYWORDS
		}] };
		const INCLUDE_EXTEND = {
			match: [/(include|extend)\s+/, CLASS_NAME_WITH_NAMESPACE_RE],
			scope: { 2: "title.class" },
			keywords: RUBY_KEYWORDS
		};
		const CLASS_DEFINITION = {
			variants: [{ match: [
				/class\s+/,
				CLASS_NAME_WITH_NAMESPACE_RE,
				/\s+<\s+/,
				CLASS_NAME_WITH_NAMESPACE_RE
			] }, { match: [/\b(class|module)\s+/, CLASS_NAME_WITH_NAMESPACE_RE] }],
			scope: {
				2: "title.class",
				4: "title.class.inherited"
			},
			keywords: RUBY_KEYWORDS
		};
		const UPPER_CASE_CONSTANT = {
			relevance: 0,
			match: /\b[A-Z][A-Z_0-9]+\b/,
			className: "variable.constant"
		};
		const METHOD_DEFINITION = {
			match: [
				/def/,
				/\s+/,
				RUBY_METHOD_RE
			],
			scope: {
				1: "keyword",
				3: "title.function"
			},
			contains: [PARAMS]
		};
		const OBJECT_CREATION = {
			relevance: 0,
			match: [CLASS_NAME_WITH_NAMESPACE_RE, /\.new[. (]/],
			scope: { 1: "title.class" }
		};
		const CLASS_REFERENCE = {
			relevance: 0,
			match: CLASS_NAME_RE,
			scope: "title.class"
		};
		const RUBY_DEFAULT_CONTAINS = [
			STRING,
			CLASS_DEFINITION,
			INCLUDE_EXTEND,
			OBJECT_CREATION,
			UPPER_CASE_CONSTANT,
			CLASS_REFERENCE,
			METHOD_DEFINITION,
			{ begin: hljs$1.IDENT_RE + "::" },
			{
				className: "symbol",
				begin: hljs$1.UNDERSCORE_IDENT_RE + "(!|\\?)?:",
				relevance: 0
			},
			{
				className: "symbol",
				begin: ":(?!\\s)",
				contains: [STRING, { begin: RUBY_METHOD_RE }],
				relevance: 0
			},
			NUMBER,
			{
				className: "variable",
				begin: "(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])" + `(?![A-Za-z])(?![@$?'])`
			},
			{
				className: "params",
				begin: /\|(?!=)/,
				end: /\|/,
				excludeBegin: true,
				excludeEnd: true,
				relevance: 0,
				keywords: RUBY_KEYWORDS
			},
			{
				begin: "(" + hljs$1.RE_STARTERS_RE + "|unless)\\s*",
				keywords: "unless",
				contains: [{
					className: "regexp",
					contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
					illegal: /\n/,
					variants: [
						{
							begin: "/",
							end: "/[a-z]*"
						},
						{
							begin: /%r\{/,
							end: /\}[a-z]*/
						},
						{
							begin: "%r\\(",
							end: "\\)[a-z]*"
						},
						{
							begin: "%r!",
							end: "![a-z]*"
						},
						{
							begin: "%r\\[",
							end: "\\][a-z]*"
						}
					]
				}].concat(IRB_OBJECT, COMMENT_MODES),
				relevance: 0
			}
		].concat(IRB_OBJECT, COMMENT_MODES);
		SUBST.contains = RUBY_DEFAULT_CONTAINS;
		PARAMS.contains = RUBY_DEFAULT_CONTAINS;
		const SIMPLE_PROMPT = "[>?]>";
		const DEFAULT_PROMPT = "[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]";
		const RVM_PROMPT = "(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>";
		const IRB_DEFAULT = [{
			begin: /^\s*=>/,
			starts: {
				end: "$",
				contains: RUBY_DEFAULT_CONTAINS
			}
		}, {
			className: "meta.prompt",
			begin: "^(" + SIMPLE_PROMPT + "|" + DEFAULT_PROMPT + "|" + RVM_PROMPT + ")(?=[ ])",
			starts: {
				end: "$",
				keywords: RUBY_KEYWORDS,
				contains: RUBY_DEFAULT_CONTAINS
			}
		}];
		COMMENT_MODES.unshift(IRB_OBJECT);
		return {
			name: "Ruby",
			aliases: [
				"rb",
				"gemspec",
				"podspec",
				"thor",
				"irb"
			],
			keywords: RUBY_KEYWORDS,
			illegal: /\/\*/,
			contains: [hljs$1.SHEBANG({ binary: "ruby" })].concat(IRB_DEFAULT).concat(COMMENT_MODES).concat(RUBY_DEFAULT_CONTAINS)
		};
	}
	module.exports = ruby;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/erb.js
var require_erb = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function erb(hljs$1) {
		return {
			name: "ERB",
			subLanguage: "xml",
			contains: [hljs$1.COMMENT("<%#", "%>"), {
				begin: "<%[%=-]?",
				end: "[%-]?%>",
				subLanguage: "ruby",
				excludeBegin: true,
				excludeEnd: true
			}]
		};
	}
	module.exports = erb;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/erlang-repl.js
var require_erlang_repl = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function erlangRepl(hljs$1) {
		const regex = hljs$1.regex;
		return {
			name: "Erlang REPL",
			keywords: {
				built_in: "spawn spawn_link self",
				keyword: "after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if " + "let not of or orelse|10 query receive rem try when xor"
			},
			contains: [
				{
					className: "meta.prompt",
					begin: "^[0-9]+> ",
					relevance: 10
				},
				hljs$1.COMMENT("%", "$"),
				{
					className: "number",
					begin: "\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)",
					relevance: 0
				},
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				{ begin: regex.concat(/\?(::)?/, /([A-Z]\w*)/, /((::)[A-Z]\w*)*/) },
				{ begin: "->" },
				{ begin: "ok" },
				{ begin: "!" },
				{
					begin: "(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",
					relevance: 0
				},
				{
					begin: "[A-Z][a-zA-Z0-9_']*",
					relevance: 0
				}
			]
		};
	}
	module.exports = erlangRepl;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/erlang.js
var require_erlang = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function erlang(hljs$1) {
		const BASIC_ATOM_RE = "[a-z'][a-zA-Z0-9_']*";
		const FUNCTION_NAME_RE = "(" + BASIC_ATOM_RE + ":" + BASIC_ATOM_RE + "|" + BASIC_ATOM_RE + ")";
		const ERLANG_RESERVED = {
			keyword: "after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if " + "let not of orelse|10 query receive rem try when xor maybe else",
			literal: "false true"
		};
		const COMMENT$2 = hljs$1.COMMENT("%", "$");
		const NUMBER = {
			className: "number",
			begin: "\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)",
			relevance: 0
		};
		const NAMED_FUN = { begin: "fun\\s+" + BASIC_ATOM_RE + "/\\d+" };
		const FUNCTION_CALL = {
			begin: FUNCTION_NAME_RE + "\\(",
			end: "\\)",
			returnBegin: true,
			relevance: 0,
			contains: [{
				begin: FUNCTION_NAME_RE,
				relevance: 0
			}, {
				begin: "\\(",
				end: "\\)",
				endsWithParent: true,
				returnEnd: true,
				relevance: 0
			}]
		};
		const TUPLE = {
			begin: /\{/,
			end: /\}/,
			relevance: 0
		};
		const VAR1 = {
			begin: "\\b_([A-Z][A-Za-z0-9_]*)?",
			relevance: 0
		};
		const VAR2 = {
			begin: "[A-Z][a-zA-Z0-9_]*",
			relevance: 0
		};
		const RECORD_ACCESS = {
			begin: "#" + hljs$1.UNDERSCORE_IDENT_RE,
			relevance: 0,
			returnBegin: true,
			contains: [{
				begin: "#" + hljs$1.UNDERSCORE_IDENT_RE,
				relevance: 0
			}, {
				begin: /\{/,
				end: /\}/,
				relevance: 0
			}]
		};
		const CHAR_LITERAL = {
			scope: "string",
			match: /\$(\\([^0-9]|[0-9]{1,3}|)|.)/
		};
		const TRIPLE_QUOTE = {
			scope: "string",
			match: /"""("*)(?!")[\s\S]*?"""\1/
		};
		const SIGIL = {
			scope: "string",
			contains: [hljs$1.BACKSLASH_ESCAPE],
			variants: [
				{ match: /~\w?"""("*)(?!")[\s\S]*?"""\1/ },
				{
					begin: /~\w?\(/,
					end: /\)/
				},
				{
					begin: /~\w?\[/,
					end: /\]/
				},
				{
					begin: /~\w?{/,
					end: /}/
				},
				{
					begin: /~\w?</,
					end: />/
				},
				{
					begin: /~\w?\//,
					end: /\//
				},
				{
					begin: /~\w?\|/,
					end: /\|/
				},
				{
					begin: /~\w?'/,
					end: /'/
				},
				{
					begin: /~\w?"/,
					end: /"/
				},
				{
					begin: /~\w?`/,
					end: /`/
				},
				{
					begin: /~\w?#/,
					end: /#/
				}
			]
		};
		const BLOCK_STATEMENTS = {
			beginKeywords: "fun receive if try case maybe",
			end: "end",
			keywords: ERLANG_RESERVED
		};
		BLOCK_STATEMENTS.contains = [
			COMMENT$2,
			NAMED_FUN,
			hljs$1.inherit(hljs$1.APOS_STRING_MODE, { className: "" }),
			BLOCK_STATEMENTS,
			FUNCTION_CALL,
			SIGIL,
			TRIPLE_QUOTE,
			hljs$1.QUOTE_STRING_MODE,
			NUMBER,
			TUPLE,
			VAR1,
			VAR2,
			RECORD_ACCESS,
			CHAR_LITERAL
		];
		const BASIC_MODES = [
			COMMENT$2,
			NAMED_FUN,
			BLOCK_STATEMENTS,
			FUNCTION_CALL,
			SIGIL,
			TRIPLE_QUOTE,
			hljs$1.QUOTE_STRING_MODE,
			NUMBER,
			TUPLE,
			VAR1,
			VAR2,
			RECORD_ACCESS,
			CHAR_LITERAL
		];
		FUNCTION_CALL.contains[1].contains = BASIC_MODES;
		TUPLE.contains = BASIC_MODES;
		RECORD_ACCESS.contains[1].contains = BASIC_MODES;
		const DIRECTIVES = [
			"-module",
			"-record",
			"-undef",
			"-export",
			"-ifdef",
			"-ifndef",
			"-author",
			"-copyright",
			"-doc",
			"-moduledoc",
			"-vsn",
			"-import",
			"-include",
			"-include_lib",
			"-compile",
			"-define",
			"-else",
			"-endif",
			"-file",
			"-behaviour",
			"-behavior",
			"-spec",
			"-on_load",
			"-nifs"
		];
		const PARAMS = {
			className: "params",
			begin: "\\(",
			end: "\\)",
			contains: BASIC_MODES
		};
		return {
			name: "Erlang",
			aliases: ["erl"],
			keywords: ERLANG_RESERVED,
			illegal: "(</|\\*=|\\+=|-=|/\\*|\\*/|\\(\\*|\\*\\))",
			contains: [
				{
					className: "function",
					begin: "^" + BASIC_ATOM_RE + "\\s*\\(",
					end: "->",
					returnBegin: true,
					illegal: "\\(|#|//|/\\*|\\\\|:|;",
					contains: [PARAMS, hljs$1.inherit(hljs$1.TITLE_MODE, { begin: BASIC_ATOM_RE })],
					starts: {
						end: ";|\\.",
						keywords: ERLANG_RESERVED,
						contains: BASIC_MODES
					}
				},
				COMMENT$2,
				{
					begin: "^-",
					end: "\\.",
					relevance: 0,
					excludeEnd: true,
					returnBegin: true,
					keywords: {
						$pattern: "-" + hljs$1.IDENT_RE,
						keyword: DIRECTIVES.map((x$2) => `${x$2}|1.5`).join(" ")
					},
					contains: [
						PARAMS,
						SIGIL,
						TRIPLE_QUOTE,
						hljs$1.QUOTE_STRING_MODE
					]
				},
				NUMBER,
				SIGIL,
				TRIPLE_QUOTE,
				hljs$1.QUOTE_STRING_MODE,
				RECORD_ACCESS,
				VAR1,
				VAR2,
				TUPLE,
				CHAR_LITERAL,
				{ begin: /\.$/ }
			]
		};
	}
	module.exports = erlang;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/excel.js
var require_excel = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function excel(hljs$1) {
		const BUILT_INS$6 = [
			"ABS",
			"ACCRINT",
			"ACCRINTM",
			"ACOS",
			"ACOSH",
			"ACOT",
			"ACOTH",
			"AGGREGATE",
			"ADDRESS",
			"AMORDEGRC",
			"AMORLINC",
			"AND",
			"ARABIC",
			"AREAS",
			"ARRAYTOTEXT",
			"ASC",
			"ASIN",
			"ASINH",
			"ATAN",
			"ATAN2",
			"ATANH",
			"AVEDEV",
			"AVERAGE",
			"AVERAGEA",
			"AVERAGEIF",
			"AVERAGEIFS",
			"BAHTTEXT",
			"BASE",
			"BESSELI",
			"BESSELJ",
			"BESSELK",
			"BESSELY",
			"BETADIST",
			"BETA.DIST",
			"BETAINV",
			"BETA.INV",
			"BIN2DEC",
			"BIN2HEX",
			"BIN2OCT",
			"BINOMDIST",
			"BINOM.DIST",
			"BINOM.DIST.RANGE",
			"BINOM.INV",
			"BITAND",
			"BITLSHIFT",
			"BITOR",
			"BITRSHIFT",
			"BITXOR",
			"BYCOL",
			"BYROW",
			"CALL",
			"CEILING",
			"CEILING.MATH",
			"CEILING.PRECISE",
			"CELL",
			"CHAR",
			"CHIDIST",
			"CHIINV",
			"CHITEST",
			"CHISQ.DIST",
			"CHISQ.DIST.RT",
			"CHISQ.INV",
			"CHISQ.INV.RT",
			"CHISQ.TEST",
			"CHOOSE",
			"CHOOSECOLS",
			"CHOOSEROWS",
			"CLEAN",
			"CODE",
			"COLUMN",
			"COLUMNS",
			"COMBIN",
			"COMBINA",
			"COMPLEX",
			"CONCAT",
			"CONCATENATE",
			"CONFIDENCE",
			"CONFIDENCE.NORM",
			"CONFIDENCE.T",
			"CONVERT",
			"CORREL",
			"COS",
			"COSH",
			"COT",
			"COTH",
			"COUNT",
			"COUNTA",
			"COUNTBLANK",
			"COUNTIF",
			"COUNTIFS",
			"COUPDAYBS",
			"COUPDAYS",
			"COUPDAYSNC",
			"COUPNCD",
			"COUPNUM",
			"COUPPCD",
			"COVAR",
			"COVARIANCE.P",
			"COVARIANCE.S",
			"CRITBINOM",
			"CSC",
			"CSCH",
			"CUBEKPIMEMBER",
			"CUBEMEMBER",
			"CUBEMEMBERPROPERTY",
			"CUBERANKEDMEMBER",
			"CUBESET",
			"CUBESETCOUNT",
			"CUBEVALUE",
			"CUMIPMT",
			"CUMPRINC",
			"DATE",
			"DATEDIF",
			"DATEVALUE",
			"DAVERAGE",
			"DAY",
			"DAYS",
			"DAYS360",
			"DB",
			"DBCS",
			"DCOUNT",
			"DCOUNTA",
			"DDB",
			"DEC2BIN",
			"DEC2HEX",
			"DEC2OCT",
			"DECIMAL",
			"DEGREES",
			"DELTA",
			"DEVSQ",
			"DGET",
			"DISC",
			"DMAX",
			"DMIN",
			"DOLLAR",
			"DOLLARDE",
			"DOLLARFR",
			"DPRODUCT",
			"DROP",
			"DSTDEV",
			"DSTDEVP",
			"DSUM",
			"DURATION",
			"DVAR",
			"DVARP",
			"EDATE",
			"EFFECT",
			"ENCODEURL",
			"EOMONTH",
			"ERF",
			"ERF.PRECISE",
			"ERFC",
			"ERFC.PRECISE",
			"ERROR.TYPE",
			"EUROCONVERT",
			"EVEN",
			"EXACT",
			"EXP",
			"EXPAND",
			"EXPON.DIST",
			"EXPONDIST",
			"FACT",
			"FACTDOUBLE",
			"FALSE",
			"F.DIST",
			"FDIST",
			"F.DIST.RT",
			"FILTER",
			"FILTERXML",
			"FIND",
			"FINDB",
			"F.INV",
			"F.INV.RT",
			"FINV",
			"FISHER",
			"FISHERINV",
			"FIXED",
			"FLOOR",
			"FLOOR.MATH",
			"FLOOR.PRECISE",
			"FORECAST",
			"FORECAST.ETS",
			"FORECAST.ETS.CONFINT",
			"FORECAST.ETS.SEASONALITY",
			"FORECAST.ETS.STAT",
			"FORECAST.LINEAR",
			"FORMULATEXT",
			"FREQUENCY",
			"F.TEST",
			"FTEST",
			"FV",
			"FVSCHEDULE",
			"GAMMA",
			"GAMMA.DIST",
			"GAMMADIST",
			"GAMMA.INV",
			"GAMMAINV",
			"GAMMALN",
			"GAMMALN.PRECISE",
			"GAUSS",
			"GCD",
			"GEOMEAN",
			"GESTEP",
			"GETPIVOTDATA",
			"GROWTH",
			"HARMEAN",
			"HEX2BIN",
			"HEX2DEC",
			"HEX2OCT",
			"HLOOKUP",
			"HOUR",
			"HSTACK",
			"HYPERLINK",
			"HYPGEOM.DIST",
			"HYPGEOMDIST",
			"IF",
			"IFERROR",
			"IFNA",
			"IFS",
			"IMABS",
			"IMAGE",
			"IMAGINARY",
			"IMARGUMENT",
			"IMCONJUGATE",
			"IMCOS",
			"IMCOSH",
			"IMCOT",
			"IMCSC",
			"IMCSCH",
			"IMDIV",
			"IMEXP",
			"IMLN",
			"IMLOG10",
			"IMLOG2",
			"IMPOWER",
			"IMPRODUCT",
			"IMREAL",
			"IMSEC",
			"IMSECH",
			"IMSIN",
			"IMSINH",
			"IMSQRT",
			"IMSUB",
			"IMSUM",
			"IMTAN",
			"INDEX",
			"INDIRECT",
			"INFO",
			"INT",
			"INTERCEPT",
			"INTRATE",
			"IPMT",
			"IRR",
			"ISBLANK",
			"ISERR",
			"ISERROR",
			"ISEVEN",
			"ISFORMULA",
			"ISLOGICAL",
			"ISNA",
			"ISNONTEXT",
			"ISNUMBER",
			"ISODD",
			"ISOMITTED",
			"ISREF",
			"ISTEXT",
			"ISO.CEILING",
			"ISOWEEKNUM",
			"ISPMT",
			"JIS",
			"KURT",
			"LAMBDA",
			"LARGE",
			"LCM",
			"LEFT",
			"LEFTB",
			"LEN",
			"LENB",
			"LET",
			"LINEST",
			"LN",
			"LOG",
			"LOG10",
			"LOGEST",
			"LOGINV",
			"LOGNORM.DIST",
			"LOGNORMDIST",
			"LOGNORM.INV",
			"LOOKUP",
			"LOWER",
			"MAKEARRAY",
			"MAP",
			"MATCH",
			"MAX",
			"MAXA",
			"MAXIFS",
			"MDETERM",
			"MDURATION",
			"MEDIAN",
			"MID",
			"MIDB",
			"MIN",
			"MINIFS",
			"MINA",
			"MINUTE",
			"MINVERSE",
			"MIRR",
			"MMULT",
			"MOD",
			"MODE",
			"MODE.MULT",
			"MODE.SNGL",
			"MONTH",
			"MROUND",
			"MULTINOMIAL",
			"MUNIT",
			"N",
			"NA",
			"NEGBINOM.DIST",
			"NEGBINOMDIST",
			"NETWORKDAYS",
			"NETWORKDAYS.INTL",
			"NOMINAL",
			"NORM.DIST",
			"NORMDIST",
			"NORMINV",
			"NORM.INV",
			"NORM.S.DIST",
			"NORMSDIST",
			"NORM.S.INV",
			"NORMSINV",
			"NOT",
			"NOW",
			"NPER",
			"NPV",
			"NUMBERVALUE",
			"OCT2BIN",
			"OCT2DEC",
			"OCT2HEX",
			"ODD",
			"ODDFPRICE",
			"ODDFYIELD",
			"ODDLPRICE",
			"ODDLYIELD",
			"OFFSET",
			"OR",
			"PDURATION",
			"PEARSON",
			"PERCENTILE.EXC",
			"PERCENTILE.INC",
			"PERCENTILE",
			"PERCENTRANK.EXC",
			"PERCENTRANK.INC",
			"PERCENTRANK",
			"PERMUT",
			"PERMUTATIONA",
			"PHI",
			"PHONETIC",
			"PI",
			"PMT",
			"POISSON.DIST",
			"POISSON",
			"POWER",
			"PPMT",
			"PRICE",
			"PRICEDISC",
			"PRICEMAT",
			"PROB",
			"PRODUCT",
			"PROPER",
			"PV",
			"QUARTILE",
			"QUARTILE.EXC",
			"QUARTILE.INC",
			"QUOTIENT",
			"RADIANS",
			"RAND",
			"RANDARRAY",
			"RANDBETWEEN",
			"RANK.AVG",
			"RANK.EQ",
			"RANK",
			"RATE",
			"RECEIVED",
			"REDUCE",
			"REGISTER.ID",
			"REPLACE",
			"REPLACEB",
			"REPT",
			"RIGHT",
			"RIGHTB",
			"ROMAN",
			"ROUND",
			"ROUNDDOWN",
			"ROUNDUP",
			"ROW",
			"ROWS",
			"RRI",
			"RSQ",
			"RTD",
			"SCAN",
			"SEARCH",
			"SEARCHB",
			"SEC",
			"SECH",
			"SECOND",
			"SEQUENCE",
			"SERIESSUM",
			"SHEET",
			"SHEETS",
			"SIGN",
			"SIN",
			"SINH",
			"SKEW",
			"SKEW.P",
			"SLN",
			"SLOPE",
			"SMALL",
			"SORT",
			"SORTBY",
			"SQRT",
			"SQRTPI",
			"SQL.REQUEST",
			"STANDARDIZE",
			"STOCKHISTORY",
			"STDEV",
			"STDEV.P",
			"STDEV.S",
			"STDEVA",
			"STDEVP",
			"STDEVPA",
			"STEYX",
			"SUBSTITUTE",
			"SUBTOTAL",
			"SUM",
			"SUMIF",
			"SUMIFS",
			"SUMPRODUCT",
			"SUMSQ",
			"SUMX2MY2",
			"SUMX2PY2",
			"SUMXMY2",
			"SWITCH",
			"SYD",
			"T",
			"TAN",
			"TANH",
			"TAKE",
			"TBILLEQ",
			"TBILLPRICE",
			"TBILLYIELD",
			"T.DIST",
			"T.DIST.2T",
			"T.DIST.RT",
			"TDIST",
			"TEXT",
			"TEXTAFTER",
			"TEXTBEFORE",
			"TEXTJOIN",
			"TEXTSPLIT",
			"TIME",
			"TIMEVALUE",
			"T.INV",
			"T.INV.2T",
			"TINV",
			"TOCOL",
			"TOROW",
			"TODAY",
			"TRANSPOSE",
			"TREND",
			"TRIM",
			"TRIMMEAN",
			"TRUE",
			"TRUNC",
			"T.TEST",
			"TTEST",
			"TYPE",
			"UNICHAR",
			"UNICODE",
			"UNIQUE",
			"UPPER",
			"VALUE",
			"VALUETOTEXT",
			"VAR",
			"VAR.P",
			"VAR.S",
			"VARA",
			"VARP",
			"VARPA",
			"VDB",
			"VLOOKUP",
			"VSTACK",
			"WEBSERVICE",
			"WEEKDAY",
			"WEEKNUM",
			"WEIBULL",
			"WEIBULL.DIST",
			"WORKDAY",
			"WORKDAY.INTL",
			"WRAPCOLS",
			"WRAPROWS",
			"XIRR",
			"XLOOKUP",
			"XMATCH",
			"XNPV",
			"XOR",
			"YEAR",
			"YEARFRAC",
			"YIELD",
			"YIELDDISC",
			"YIELDMAT",
			"Z.TEST",
			"ZTEST"
		];
		return {
			name: "Excel formulae",
			aliases: ["xlsx", "xls"],
			case_insensitive: true,
			keywords: {
				$pattern: /[a-zA-Z][\w\.]*/,
				built_in: BUILT_INS$6
			},
			contains: [
				{
					begin: /^=/,
					end: /[^=]/,
					returnEnd: true,
					illegal: /=/,
					relevance: 10
				},
				{
					className: "symbol",
					begin: /\b[A-Z]{1,2}\d+\b/,
					end: /[^\d]/,
					excludeEnd: true,
					relevance: 0
				},
				{
					className: "symbol",
					begin: /[A-Z]{0,2}\d*:[A-Z]{0,2}\d*/,
					relevance: 0
				},
				hljs$1.BACKSLASH_ESCAPE,
				hljs$1.QUOTE_STRING_MODE,
				{
					className: "number",
					begin: hljs$1.NUMBER_RE + "(%)?",
					relevance: 0
				},
				hljs$1.COMMENT(/\bN\(/, /\)/, {
					excludeBegin: true,
					excludeEnd: true,
					illegal: /\n/
				})
			]
		};
	}
	module.exports = excel;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/fix.js
var require_fix = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function fix(hljs$1) {
		return {
			name: "FIX",
			contains: [{
				begin: /[^\u2401\u0001]+/,
				end: /[\u2401\u0001]/,
				excludeEnd: true,
				returnBegin: true,
				returnEnd: false,
				contains: [{
					begin: /([^\u2401\u0001=]+)/,
					end: /=([^\u2401\u0001=]+)/,
					returnEnd: true,
					returnBegin: false,
					className: "attr"
				}, {
					begin: /=/,
					end: /([\u2401\u0001])/,
					excludeEnd: true,
					excludeBegin: true,
					className: "string"
				}]
			}],
			case_insensitive: true
		};
	}
	module.exports = fix;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/flix.js
var require_flix = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function flix(hljs$1) {
		const CHAR = {
			className: "string",
			begin: /'(.|\\[xXuU][a-zA-Z0-9]+)'/
		};
		const STRING = {
			className: "string",
			variants: [{
				begin: "\"",
				end: "\""
			}]
		};
		const NAME = {
			className: "title",
			relevance: 0,
			begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/
		};
		const METHOD = {
			className: "function",
			beginKeywords: "def",
			end: /[:={\[(\n;]/,
			excludeEnd: true,
			contains: [NAME]
		};
		return {
			name: "Flix",
			keywords: {
				keyword: [
					"case",
					"class",
					"def",
					"else",
					"enum",
					"if",
					"impl",
					"import",
					"in",
					"lat",
					"rel",
					"index",
					"let",
					"match",
					"namespace",
					"switch",
					"type",
					"yield",
					"with"
				],
				literal: ["true", "false"]
			},
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				CHAR,
				STRING,
				METHOD,
				hljs$1.C_NUMBER_MODE
			]
		};
	}
	module.exports = flix;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/fortran.js
var require_fortran = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function fortran(hljs$1) {
		const regex = hljs$1.regex;
		const PARAMS = {
			className: "params",
			begin: "\\(",
			end: "\\)"
		};
		const COMMENT$2 = { variants: [
			hljs$1.COMMENT("!", "$", { relevance: 0 }),
			hljs$1.COMMENT("^C[ ]", "$", { relevance: 0 }),
			hljs$1.COMMENT("^C$", "$", { relevance: 0 })
		] };
		const OPTIONAL_NUMBER_SUFFIX = /(_[a-z_\d]+)?/;
		const OPTIONAL_NUMBER_EXP = /([de][+-]?\d+)?/;
		const NUMBER = {
			className: "number",
			variants: [
				{ begin: regex.concat(/\b\d+/, /\.(\d*)/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX) },
				{ begin: regex.concat(/\b\d+/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX) },
				{ begin: regex.concat(/\.\d+/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX) }
			],
			relevance: 0
		};
		const FUNCTION_DEF = {
			className: "function",
			beginKeywords: "subroutine function program",
			illegal: "[${=\\n]",
			contains: [hljs$1.UNDERSCORE_TITLE_MODE, PARAMS]
		};
		const STRING = {
			className: "string",
			relevance: 0,
			variants: [hljs$1.APOS_STRING_MODE, hljs$1.QUOTE_STRING_MODE]
		};
		const KEYWORDS$6 = [
			"kind",
			"do",
			"concurrent",
			"local",
			"shared",
			"while",
			"private",
			"call",
			"intrinsic",
			"where",
			"elsewhere",
			"type",
			"endtype",
			"endmodule",
			"endselect",
			"endinterface",
			"end",
			"enddo",
			"endif",
			"if",
			"forall",
			"endforall",
			"only",
			"contains",
			"default",
			"return",
			"stop",
			"then",
			"block",
			"endblock",
			"endassociate",
			"public",
			"subroutine|10",
			"function",
			"program",
			".and.",
			".or.",
			".not.",
			".le.",
			".eq.",
			".ge.",
			".gt.",
			".lt.",
			"goto",
			"save",
			"else",
			"use",
			"module",
			"select",
			"case",
			"access",
			"blank",
			"direct",
			"exist",
			"file",
			"fmt",
			"form",
			"formatted",
			"iostat",
			"name",
			"named",
			"nextrec",
			"number",
			"opened",
			"rec",
			"recl",
			"sequential",
			"status",
			"unformatted",
			"unit",
			"continue",
			"format",
			"pause",
			"cycle",
			"exit",
			"c_null_char",
			"c_alert",
			"c_backspace",
			"c_form_feed",
			"flush",
			"wait",
			"decimal",
			"round",
			"iomsg",
			"synchronous",
			"nopass",
			"non_overridable",
			"pass",
			"protected",
			"volatile",
			"abstract",
			"extends",
			"import",
			"non_intrinsic",
			"value",
			"deferred",
			"generic",
			"final",
			"enumerator",
			"class",
			"associate",
			"bind",
			"enum",
			"c_int",
			"c_short",
			"c_long",
			"c_long_long",
			"c_signed_char",
			"c_size_t",
			"c_int8_t",
			"c_int16_t",
			"c_int32_t",
			"c_int64_t",
			"c_int_least8_t",
			"c_int_least16_t",
			"c_int_least32_t",
			"c_int_least64_t",
			"c_int_fast8_t",
			"c_int_fast16_t",
			"c_int_fast32_t",
			"c_int_fast64_t",
			"c_intmax_t",
			"C_intptr_t",
			"c_float",
			"c_double",
			"c_long_double",
			"c_float_complex",
			"c_double_complex",
			"c_long_double_complex",
			"c_bool",
			"c_char",
			"c_null_ptr",
			"c_null_funptr",
			"c_new_line",
			"c_carriage_return",
			"c_horizontal_tab",
			"c_vertical_tab",
			"iso_c_binding",
			"c_loc",
			"c_funloc",
			"c_associated",
			"c_f_pointer",
			"c_ptr",
			"c_funptr",
			"iso_fortran_env",
			"character_storage_size",
			"error_unit",
			"file_storage_size",
			"input_unit",
			"iostat_end",
			"iostat_eor",
			"numeric_storage_size",
			"output_unit",
			"c_f_procpointer",
			"ieee_arithmetic",
			"ieee_support_underflow_control",
			"ieee_get_underflow_mode",
			"ieee_set_underflow_mode",
			"newunit",
			"contiguous",
			"recursive",
			"pad",
			"position",
			"action",
			"delim",
			"readwrite",
			"eor",
			"advance",
			"nml",
			"interface",
			"procedure",
			"namelist",
			"include",
			"sequence",
			"elemental",
			"pure",
			"impure",
			"integer",
			"real",
			"character",
			"complex",
			"logical",
			"codimension",
			"dimension",
			"allocatable|10",
			"parameter",
			"external",
			"implicit|10",
			"none",
			"double",
			"precision",
			"assign",
			"intent",
			"optional",
			"pointer",
			"target",
			"in",
			"out",
			"common",
			"equivalence",
			"data"
		];
		const LITERALS$6 = [".False.", ".True."];
		const BUILT_INS$6 = [
			"alog",
			"alog10",
			"amax0",
			"amax1",
			"amin0",
			"amin1",
			"amod",
			"cabs",
			"ccos",
			"cexp",
			"clog",
			"csin",
			"csqrt",
			"dabs",
			"dacos",
			"dasin",
			"datan",
			"datan2",
			"dcos",
			"dcosh",
			"ddim",
			"dexp",
			"dint",
			"dlog",
			"dlog10",
			"dmax1",
			"dmin1",
			"dmod",
			"dnint",
			"dsign",
			"dsin",
			"dsinh",
			"dsqrt",
			"dtan",
			"dtanh",
			"float",
			"iabs",
			"idim",
			"idint",
			"idnint",
			"ifix",
			"isign",
			"max0",
			"max1",
			"min0",
			"min1",
			"sngl",
			"algama",
			"cdabs",
			"cdcos",
			"cdexp",
			"cdlog",
			"cdsin",
			"cdsqrt",
			"cqabs",
			"cqcos",
			"cqexp",
			"cqlog",
			"cqsin",
			"cqsqrt",
			"dcmplx",
			"dconjg",
			"derf",
			"derfc",
			"dfloat",
			"dgamma",
			"dimag",
			"dlgama",
			"iqint",
			"qabs",
			"qacos",
			"qasin",
			"qatan",
			"qatan2",
			"qcmplx",
			"qconjg",
			"qcos",
			"qcosh",
			"qdim",
			"qerf",
			"qerfc",
			"qexp",
			"qgamma",
			"qimag",
			"qlgama",
			"qlog",
			"qlog10",
			"qmax1",
			"qmin1",
			"qmod",
			"qnint",
			"qsign",
			"qsin",
			"qsinh",
			"qsqrt",
			"qtan",
			"qtanh",
			"abs",
			"acos",
			"aimag",
			"aint",
			"anint",
			"asin",
			"atan",
			"atan2",
			"char",
			"cmplx",
			"conjg",
			"cos",
			"cosh",
			"exp",
			"ichar",
			"index",
			"int",
			"log",
			"log10",
			"max",
			"min",
			"nint",
			"sign",
			"sin",
			"sinh",
			"sqrt",
			"tan",
			"tanh",
			"print",
			"write",
			"dim",
			"lge",
			"lgt",
			"lle",
			"llt",
			"mod",
			"nullify",
			"allocate",
			"deallocate",
			"adjustl",
			"adjustr",
			"all",
			"allocated",
			"any",
			"associated",
			"bit_size",
			"btest",
			"ceiling",
			"count",
			"cshift",
			"date_and_time",
			"digits",
			"dot_product",
			"eoshift",
			"epsilon",
			"exponent",
			"floor",
			"fraction",
			"huge",
			"iand",
			"ibclr",
			"ibits",
			"ibset",
			"ieor",
			"ior",
			"ishft",
			"ishftc",
			"lbound",
			"len_trim",
			"matmul",
			"maxexponent",
			"maxloc",
			"maxval",
			"merge",
			"minexponent",
			"minloc",
			"minval",
			"modulo",
			"mvbits",
			"nearest",
			"pack",
			"present",
			"product",
			"radix",
			"random_number",
			"random_seed",
			"range",
			"repeat",
			"reshape",
			"rrspacing",
			"scale",
			"scan",
			"selected_int_kind",
			"selected_real_kind",
			"set_exponent",
			"shape",
			"size",
			"spacing",
			"spread",
			"sum",
			"system_clock",
			"tiny",
			"transpose",
			"trim",
			"ubound",
			"unpack",
			"verify",
			"achar",
			"iachar",
			"transfer",
			"dble",
			"entry",
			"dprod",
			"cpu_time",
			"command_argument_count",
			"get_command",
			"get_command_argument",
			"get_environment_variable",
			"is_iostat_end",
			"ieee_arithmetic",
			"ieee_support_underflow_control",
			"ieee_get_underflow_mode",
			"ieee_set_underflow_mode",
			"is_iostat_eor",
			"move_alloc",
			"new_line",
			"selected_char_kind",
			"same_type_as",
			"extends_type_of",
			"acosh",
			"asinh",
			"atanh",
			"bessel_j0",
			"bessel_j1",
			"bessel_jn",
			"bessel_y0",
			"bessel_y1",
			"bessel_yn",
			"erf",
			"erfc",
			"erfc_scaled",
			"gamma",
			"log_gamma",
			"hypot",
			"norm2",
			"atomic_define",
			"atomic_ref",
			"execute_command_line",
			"leadz",
			"trailz",
			"storage_size",
			"merge_bits",
			"bge",
			"bgt",
			"ble",
			"blt",
			"dshiftl",
			"dshiftr",
			"findloc",
			"iall",
			"iany",
			"iparity",
			"image_index",
			"lcobound",
			"ucobound",
			"maskl",
			"maskr",
			"num_images",
			"parity",
			"popcnt",
			"poppar",
			"shifta",
			"shiftl",
			"shiftr",
			"this_image",
			"sync",
			"change",
			"team",
			"co_broadcast",
			"co_max",
			"co_min",
			"co_sum",
			"co_reduce"
		];
		return {
			name: "Fortran",
			case_insensitive: true,
			aliases: ["f90", "f95"],
			keywords: {
				$pattern: /\b[a-z][a-z0-9_]+\b|\.[a-z][a-z0-9_]+\./,
				keyword: KEYWORDS$6,
				literal: LITERALS$6,
				built_in: BUILT_INS$6
			},
			illegal: /\/\*/,
			contains: [
				STRING,
				FUNCTION_DEF,
				{
					begin: /^C\s*=(?!=)/,
					relevance: 0
				},
				COMMENT$2,
				NUMBER
			]
		};
	}
	module.exports = fortran;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/fsharp.js
var require_fsharp = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/**
	* @param {string} value
	* @returns {RegExp}
	* */
	function escape$2(value) {
		return new RegExp(value.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&"), "m");
	}
	/**
	* @param {RegExp | string } re
	* @returns {string}
	*/
	function source$2(re$1) {
		if (!re$1) return null;
		if (typeof re$1 === "string") return re$1;
		return re$1.source;
	}
	/**
	* @param {RegExp | string } re
	* @returns {string}
	*/
	function lookahead$2(re$1) {
		return concat$2("(?=", re$1, ")");
	}
	/**
	* @param {...(RegExp | string) } args
	* @returns {string}
	*/
	function concat$2(...args) {
		const joined = args.map((x$2) => source$2(x$2)).join("");
		return joined;
	}
	/**
	* @param { Array<string | RegExp | Object> } args
	* @returns {object}
	*/
	function stripOptionsFromArgs$2(args) {
		const opts = args[args.length - 1];
		if (typeof opts === "object" && opts.constructor === Object) {
			args.splice(args.length - 1, 1);
			return opts;
		} else {
			return {};
		}
	}
	/** @typedef { {capture?: boolean} } RegexEitherOptions */
	/**
	* Any of the passed expresssions may match
	*
	* Creates a huge this | this | that | that match
	* @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args
	* @returns {string}
	*/
	function either$2(...args) {
		/** @type { object & {capture?: boolean} }  */
		const opts = stripOptionsFromArgs$2(args);
		const joined = "(" + (opts.capture ? "" : "?:") + args.map((x$2) => source$2(x$2)).join("|") + ")";
		return joined;
	}
	/** @type LanguageFn */
	function fsharp(hljs$1) {
		const KEYWORDS$6 = [
			"abstract",
			"and",
			"as",
			"assert",
			"base",
			"begin",
			"class",
			"default",
			"delegate",
			"do",
			"done",
			"downcast",
			"downto",
			"elif",
			"else",
			"end",
			"exception",
			"extern",
			"finally",
			"fixed",
			"for",
			"fun",
			"function",
			"global",
			"if",
			"in",
			"inherit",
			"inline",
			"interface",
			"internal",
			"lazy",
			"let",
			"match",
			"member",
			"module",
			"mutable",
			"namespace",
			"new",
			"of",
			"open",
			"or",
			"override",
			"private",
			"public",
			"rec",
			"return",
			"static",
			"struct",
			"then",
			"to",
			"try",
			"type",
			"upcast",
			"use",
			"val",
			"void",
			"when",
			"while",
			"with",
			"yield"
		];
		const BANG_KEYWORD_MODE = {
			scope: "keyword",
			match: /\b(yield|return|let|do|match|use)!/
		};
		const PREPROCESSOR_KEYWORDS = [
			"if",
			"else",
			"endif",
			"line",
			"nowarn",
			"light",
			"r",
			"i",
			"I",
			"load",
			"time",
			"help",
			"quit"
		];
		const LITERALS$6 = [
			"true",
			"false",
			"null",
			"Some",
			"None",
			"Ok",
			"Error",
			"infinity",
			"infinityf",
			"nan",
			"nanf"
		];
		const SPECIAL_IDENTIFIERS = [
			"__LINE__",
			"__SOURCE_DIRECTORY__",
			"__SOURCE_FILE__"
		];
		const KNOWN_TYPES = [
			"bool",
			"byte",
			"sbyte",
			"int8",
			"int16",
			"int32",
			"uint8",
			"uint16",
			"uint32",
			"int",
			"uint",
			"int64",
			"uint64",
			"nativeint",
			"unativeint",
			"decimal",
			"float",
			"double",
			"float32",
			"single",
			"char",
			"string",
			"unit",
			"bigint",
			"option",
			"voption",
			"list",
			"array",
			"seq",
			"byref",
			"exn",
			"inref",
			"nativeptr",
			"obj",
			"outref",
			"voidptr",
			"Result"
		];
		const BUILTINS = [
			"not",
			"ref",
			"raise",
			"reraise",
			"dict",
			"readOnlyDict",
			"set",
			"get",
			"enum",
			"sizeof",
			"typeof",
			"typedefof",
			"nameof",
			"nullArg",
			"invalidArg",
			"invalidOp",
			"id",
			"fst",
			"snd",
			"ignore",
			"lock",
			"using",
			"box",
			"unbox",
			"tryUnbox",
			"printf",
			"printfn",
			"sprintf",
			"eprintf",
			"eprintfn",
			"fprintf",
			"fprintfn",
			"failwith",
			"failwithf"
		];
		const ALL_KEYWORDS = {
			keyword: KEYWORDS$6,
			literal: LITERALS$6,
			built_in: BUILTINS,
			"variable.constant": SPECIAL_IDENTIFIERS
		};
		const ML_COMMENT = hljs$1.COMMENT(/\(\*(?!\))/, /\*\)/, { contains: ["self"] });
		const COMMENT$2 = { variants: [ML_COMMENT, hljs$1.C_LINE_COMMENT_MODE] };
		const IDENTIFIER_RE = /[a-zA-Z_](\w|')*/;
		const QUOTED_IDENTIFIER = {
			scope: "variable",
			begin: /``/,
			end: /``/
		};
		const BEGIN_GENERIC_TYPE_SYMBOL_RE = /\B('|\^)/;
		const GENERIC_TYPE_SYMBOL = {
			scope: "symbol",
			variants: [{ match: concat$2(BEGIN_GENERIC_TYPE_SYMBOL_RE, /``.*?``/) }, { match: concat$2(BEGIN_GENERIC_TYPE_SYMBOL_RE, hljs$1.UNDERSCORE_IDENT_RE) }],
			relevance: 0
		};
		const makeOperatorMode = function({ includeEqual }) {
			let allOperatorChars;
			if (includeEqual) allOperatorChars = "!%&*+-/<=>@^|~?";
			else allOperatorChars = "!%&*+-/<>@^|~?";
			const OPERATOR_CHARS = Array.from(allOperatorChars);
			const OPERATOR_CHAR_RE = concat$2("[", ...OPERATOR_CHARS.map(escape$2), "]");
			const OPERATOR_CHAR_OR_DOT_RE = either$2(OPERATOR_CHAR_RE, /\./);
			const OPERATOR_FIRST_CHAR_OF_MULTIPLE_RE = concat$2(OPERATOR_CHAR_OR_DOT_RE, lookahead$2(OPERATOR_CHAR_OR_DOT_RE));
			const SYMBOLIC_OPERATOR_RE = either$2(concat$2(OPERATOR_FIRST_CHAR_OF_MULTIPLE_RE, OPERATOR_CHAR_OR_DOT_RE, "*"), concat$2(OPERATOR_CHAR_RE, "+"));
			return {
				scope: "operator",
				match: either$2(SYMBOLIC_OPERATOR_RE, /:\?>/, /:\?/, /:>/, /:=/, /::?/, /\$/),
				relevance: 0
			};
		};
		const OPERATOR = makeOperatorMode({ includeEqual: true });
		const OPERATOR_WITHOUT_EQUAL = makeOperatorMode({ includeEqual: false });
		const makeTypeAnnotationMode = function(prefix, prefixScope) {
			return {
				begin: concat$2(prefix, lookahead$2(concat$2(/\s*/, either$2(/\w/, /'/, /\^/, /#/, /``/, /\(/, /{\|/)))),
				beginScope: prefixScope,
				end: lookahead$2(either$2(/\n/, /=/)),
				relevance: 0,
				keywords: hljs$1.inherit(ALL_KEYWORDS, { type: KNOWN_TYPES }),
				contains: [
					COMMENT$2,
					GENERIC_TYPE_SYMBOL,
					hljs$1.inherit(QUOTED_IDENTIFIER, { scope: null }),
					OPERATOR_WITHOUT_EQUAL
				]
			};
		};
		const TYPE_ANNOTATION = makeTypeAnnotationMode(/:/, "operator");
		const DISCRIMINATED_UNION_TYPE_ANNOTATION = makeTypeAnnotationMode(/\bof\b/, "keyword");
		const TYPE_DECLARATION = {
			begin: [
				/(^|\s+)/,
				/type/,
				/\s+/,
				IDENTIFIER_RE
			],
			beginScope: {
				2: "keyword",
				4: "title.class"
			},
			end: lookahead$2(/\(|=|$/),
			keywords: ALL_KEYWORDS,
			contains: [
				COMMENT$2,
				hljs$1.inherit(QUOTED_IDENTIFIER, { scope: null }),
				GENERIC_TYPE_SYMBOL,
				{
					scope: "operator",
					match: /<|>/
				},
				TYPE_ANNOTATION
			]
		};
		const COMPUTATION_EXPRESSION = {
			scope: "computation-expression",
			match: /\b[_a-z]\w*(?=\s*\{)/
		};
		const PREPROCESSOR = {
			begin: [
				/^\s*/,
				concat$2(/#/, either$2(...PREPROCESSOR_KEYWORDS)),
				/\b/
			],
			beginScope: { 2: "meta" },
			end: lookahead$2(/\s|$/)
		};
		const NUMBER = { variants: [hljs$1.BINARY_NUMBER_MODE, hljs$1.C_NUMBER_MODE] };
		const QUOTED_STRING = {
			scope: "string",
			begin: /"/,
			end: /"/,
			contains: [hljs$1.BACKSLASH_ESCAPE]
		};
		const VERBATIM_STRING = {
			scope: "string",
			begin: /@"/,
			end: /"/,
			contains: [{ match: /""/ }, hljs$1.BACKSLASH_ESCAPE]
		};
		const TRIPLE_QUOTED_STRING = {
			scope: "string",
			begin: /"""/,
			end: /"""/,
			relevance: 2
		};
		const SUBST = {
			scope: "subst",
			begin: /\{/,
			end: /\}/,
			keywords: ALL_KEYWORDS
		};
		const INTERPOLATED_STRING = {
			scope: "string",
			begin: /\$"/,
			end: /"/,
			contains: [
				{ match: /\{\{/ },
				{ match: /\}\}/ },
				hljs$1.BACKSLASH_ESCAPE,
				SUBST
			]
		};
		const INTERPOLATED_VERBATIM_STRING = {
			scope: "string",
			begin: /(\$@|@\$)"/,
			end: /"/,
			contains: [
				{ match: /\{\{/ },
				{ match: /\}\}/ },
				{ match: /""/ },
				hljs$1.BACKSLASH_ESCAPE,
				SUBST
			]
		};
		const INTERPOLATED_TRIPLE_QUOTED_STRING = {
			scope: "string",
			begin: /\$"""/,
			end: /"""/,
			contains: [
				{ match: /\{\{/ },
				{ match: /\}\}/ },
				SUBST
			],
			relevance: 2
		};
		const CHAR_LITERAL = {
			scope: "string",
			match: concat$2(/'/, either$2(/[^\\']/, /\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8})/), /'/)
		};
		SUBST.contains = [
			INTERPOLATED_VERBATIM_STRING,
			INTERPOLATED_STRING,
			VERBATIM_STRING,
			QUOTED_STRING,
			CHAR_LITERAL,
			BANG_KEYWORD_MODE,
			COMMENT$2,
			QUOTED_IDENTIFIER,
			TYPE_ANNOTATION,
			COMPUTATION_EXPRESSION,
			PREPROCESSOR,
			NUMBER,
			GENERIC_TYPE_SYMBOL,
			OPERATOR
		];
		const STRING = { variants: [
			INTERPOLATED_TRIPLE_QUOTED_STRING,
			INTERPOLATED_VERBATIM_STRING,
			INTERPOLATED_STRING,
			TRIPLE_QUOTED_STRING,
			VERBATIM_STRING,
			QUOTED_STRING,
			CHAR_LITERAL
		] };
		return {
			name: "F#",
			aliases: ["fs", "f#"],
			keywords: ALL_KEYWORDS,
			illegal: /\/\*/,
			classNameAliases: { "computation-expression": "keyword" },
			contains: [
				BANG_KEYWORD_MODE,
				STRING,
				COMMENT$2,
				QUOTED_IDENTIFIER,
				TYPE_DECLARATION,
				{
					scope: "meta",
					begin: /\[</,
					end: />\]/,
					relevance: 2,
					contains: [
						QUOTED_IDENTIFIER,
						TRIPLE_QUOTED_STRING,
						VERBATIM_STRING,
						QUOTED_STRING,
						CHAR_LITERAL,
						NUMBER
					]
				},
				DISCRIMINATED_UNION_TYPE_ANNOTATION,
				TYPE_ANNOTATION,
				COMPUTATION_EXPRESSION,
				PREPROCESSOR,
				NUMBER,
				GENERIC_TYPE_SYMBOL,
				OPERATOR
			]
		};
	}
	module.exports = fsharp;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/gams.js
var require_gams = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function gams(hljs$1) {
		const regex = hljs$1.regex;
		const KEYWORDS$6 = {
			keyword: "abort acronym acronyms alias all and assign binary card diag display " + "else eq file files for free ge gt if integer le loop lt maximizing " + "minimizing model models ne negative no not option options or ord " + "positive prod put putpage puttl repeat sameas semicont semiint smax " + "smin solve sos1 sos2 sum system table then until using while xor yes",
			literal: "eps inf na",
			built_in: "abs arccos arcsin arctan arctan2 Beta betaReg binomial ceil centropy " + "cos cosh cvPower div div0 eDist entropy errorf execSeed exp fact " + "floor frac gamma gammaReg log logBeta logGamma log10 log2 mapVal max " + "min mod ncpCM ncpF ncpVUpow ncpVUsin normal pi poly power " + "randBinomial randLinear randTriangle round rPower sigmoid sign " + "signPower sin sinh slexp sllog10 slrec sqexp sqlog10 sqr sqrec sqrt " + "tan tanh trunc uniform uniformInt vcPower bool_and bool_eqv bool_imp " + "bool_not bool_or bool_xor ifThen rel_eq rel_ge rel_gt rel_le rel_lt " + "rel_ne gday gdow ghour gleap gmillisec gminute gmonth gsecond gyear " + "jdate jnow jstart jtime errorLevel execError gamsRelease gamsVersion " + "handleCollect handleDelete handleStatus handleSubmit heapFree " + "heapLimit heapSize jobHandle jobKill jobStatus jobTerminate " + "licenseLevel licenseStatus maxExecError sleep timeClose timeComp " + "timeElapsed timeExec timeStart"
		};
		const PARAMS = {
			className: "params",
			begin: /\(/,
			end: /\)/,
			excludeBegin: true,
			excludeEnd: true
		};
		const SYMBOLS = {
			className: "symbol",
			variants: [{ begin: /=[lgenxc]=/ }, { begin: /\$/ }]
		};
		const QSTR = {
			className: "comment",
			variants: [{
				begin: "'",
				end: "'"
			}, {
				begin: "\"",
				end: "\""
			}],
			illegal: "\\n",
			contains: [hljs$1.BACKSLASH_ESCAPE]
		};
		const ASSIGNMENT = {
			begin: "/",
			end: "/",
			keywords: KEYWORDS$6,
			contains: [
				QSTR,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.APOS_STRING_MODE,
				hljs$1.C_NUMBER_MODE
			]
		};
		const COMMENT_WORD = /[a-z0-9&#*=?@\\><:,()$[\]_.{}!+%^-]+/;
		const DESCTEXT = {
			begin: /[a-z][a-z0-9_]*(\([a-z0-9_, ]*\))?[ \t]+/,
			excludeBegin: true,
			end: "$",
			endsWithParent: true,
			contains: [
				QSTR,
				ASSIGNMENT,
				{
					className: "comment",
					begin: regex.concat(COMMENT_WORD, regex.anyNumberOfTimes(regex.concat(/[ ]+/, COMMENT_WORD))),
					relevance: 0
				}
			]
		};
		return {
			name: "GAMS",
			aliases: ["gms"],
			case_insensitive: true,
			keywords: KEYWORDS$6,
			contains: [
				hljs$1.COMMENT(/^\$ontext/, /^\$offtext/),
				{
					className: "meta",
					begin: "^\\$[a-z0-9]+",
					end: "$",
					returnBegin: true,
					contains: [{
						className: "keyword",
						begin: "^\\$[a-z0-9]+"
					}]
				},
				hljs$1.COMMENT("^\\*", "$"),
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.APOS_STRING_MODE,
				{
					beginKeywords: "set sets parameter parameters variable variables " + "scalar scalars equation equations",
					end: ";",
					contains: [
						hljs$1.COMMENT("^\\*", "$"),
						hljs$1.C_LINE_COMMENT_MODE,
						hljs$1.C_BLOCK_COMMENT_MODE,
						hljs$1.QUOTE_STRING_MODE,
						hljs$1.APOS_STRING_MODE,
						ASSIGNMENT,
						DESCTEXT
					]
				},
				{
					beginKeywords: "table",
					end: ";",
					returnBegin: true,
					contains: [
						{
							beginKeywords: "table",
							end: "$",
							contains: [DESCTEXT]
						},
						hljs$1.COMMENT("^\\*", "$"),
						hljs$1.C_LINE_COMMENT_MODE,
						hljs$1.C_BLOCK_COMMENT_MODE,
						hljs$1.QUOTE_STRING_MODE,
						hljs$1.APOS_STRING_MODE,
						hljs$1.C_NUMBER_MODE
					]
				},
				{
					className: "function",
					begin: /^[a-z][a-z0-9_,\-+' ()$]+\.{2}/,
					returnBegin: true,
					contains: [
						{
							className: "title",
							begin: /^[a-z0-9_]+/
						},
						PARAMS,
						SYMBOLS
					]
				},
				hljs$1.C_NUMBER_MODE,
				SYMBOLS
			]
		};
	}
	module.exports = gams;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/gauss.js
var require_gauss = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function gauss(hljs$1) {
		const KEYWORDS$6 = {
			keyword: "bool break call callexe checkinterrupt clear clearg closeall cls comlog compile " + "continue create debug declare delete disable dlibrary dllcall do dos ed edit else " + "elseif enable end endfor endif endp endo errorlog errorlogat expr external fn " + "for format goto gosub graph if keyword let lib library line load loadarray loadexe " + "loadf loadk loadm loadp loads loadx local locate loopnextindex lprint lpwidth lshow " + "matrix msym ndpclex new open output outwidth plot plotsym pop prcsn print " + "printdos proc push retp return rndcon rndmod rndmult rndseed run save saveall screen " + "scroll setarray show sparse stop string struct system trace trap threadfor " + "threadendfor threadbegin threadjoin threadstat threadend until use while winprint " + "ne ge le gt lt and xor or not eq eqv",
			built_in: "abs acf aconcat aeye amax amean AmericanBinomCall AmericanBinomCall_Greeks AmericanBinomCall_ImpVol " + "AmericanBinomPut AmericanBinomPut_Greeks AmericanBinomPut_ImpVol AmericanBSCall AmericanBSCall_Greeks " + "AmericanBSCall_ImpVol AmericanBSPut AmericanBSPut_Greeks AmericanBSPut_ImpVol amin amult annotationGetDefaults " + "annotationSetBkd annotationSetFont annotationSetLineColor annotationSetLineStyle annotationSetLineThickness " + "annualTradingDays arccos arcsin areshape arrayalloc arrayindex arrayinit arraytomat asciiload asclabel astd " + "astds asum atan atan2 atranspose axmargin balance band bandchol bandcholsol bandltsol bandrv bandsolpd bar " + "base10 begwind besselj bessely beta box boxcox cdfBeta cdfBetaInv cdfBinomial cdfBinomialInv cdfBvn cdfBvn2 " + "cdfBvn2e cdfCauchy cdfCauchyInv cdfChic cdfChii cdfChinc cdfChincInv cdfExp cdfExpInv cdfFc cdfFnc cdfFncInv " + "cdfGam cdfGenPareto cdfHyperGeo cdfLaplace cdfLaplaceInv cdfLogistic cdfLogisticInv cdfmControlCreate cdfMvn " + "cdfMvn2e cdfMvnce cdfMvne cdfMvt2e cdfMvtce cdfMvte cdfN cdfN2 cdfNc cdfNegBinomial cdfNegBinomialInv cdfNi " + "cdfPoisson cdfPoissonInv cdfRayleigh cdfRayleighInv cdfTc cdfTci cdfTnc cdfTvn cdfWeibull cdfWeibullInv cdir " + "ceil ChangeDir chdir chiBarSquare chol choldn cholsol cholup chrs close code cols colsf combinate combinated " + "complex con cond conj cons ConScore contour conv convertsatostr convertstrtosa corrm corrms corrvc corrx corrxs " + "cos cosh counts countwts crossprd crout croutp csrcol csrlin csvReadM csvReadSA cumprodc cumsumc curve cvtos " + "datacreate datacreatecomplex datalist dataload dataloop dataopen datasave date datestr datestring datestrymd " + "dayinyr dayofweek dbAddDatabase dbClose dbCommit dbCreateQuery dbExecQuery dbGetConnectOptions dbGetDatabaseName " + "dbGetDriverName dbGetDrivers dbGetHostName dbGetLastErrorNum dbGetLastErrorText dbGetNumericalPrecPolicy " + "dbGetPassword dbGetPort dbGetTableHeaders dbGetTables dbGetUserName dbHasFeature dbIsDriverAvailable dbIsOpen " + "dbIsOpenError dbOpen dbQueryBindValue dbQueryClear dbQueryCols dbQueryExecPrepared dbQueryFetchAllM dbQueryFetchAllSA " + "dbQueryFetchOneM dbQueryFetchOneSA dbQueryFinish dbQueryGetBoundValue dbQueryGetBoundValues dbQueryGetField " + "dbQueryGetLastErrorNum dbQueryGetLastErrorText dbQueryGetLastInsertID dbQueryGetLastQuery dbQueryGetPosition " + "dbQueryIsActive dbQueryIsForwardOnly dbQueryIsNull dbQueryIsSelect dbQueryIsValid dbQueryPrepare dbQueryRows " + "dbQuerySeek dbQuerySeekFirst dbQuerySeekLast dbQuerySeekNext dbQuerySeekPrevious dbQuerySetForwardOnly " + "dbRemoveDatabase dbRollback dbSetConnectOptions dbSetDatabaseName dbSetHostName dbSetNumericalPrecPolicy " + "dbSetPort dbSetUserName dbTransaction DeleteFile delif delrows denseToSp denseToSpRE denToZero design det detl " + "dfft dffti diag diagrv digamma doswin DOSWinCloseall DOSWinOpen dotfeq dotfeqmt dotfge dotfgemt dotfgt dotfgtmt " + "dotfle dotflemt dotflt dotfltmt dotfne dotfnemt draw drop dsCreate dstat dstatmt dstatmtControlCreate dtdate dtday " + "dttime dttodtv dttostr dttoutc dtvnormal dtvtodt dtvtoutc dummy dummybr dummydn eig eigh eighv eigv elapsedTradingDays " + "endwind envget eof eqSolve eqSolvemt eqSolvemtControlCreate eqSolvemtOutCreate eqSolveset erf erfc erfccplx erfcplx error " + "etdays ethsec etstr EuropeanBinomCall EuropeanBinomCall_Greeks EuropeanBinomCall_ImpVol EuropeanBinomPut " + "EuropeanBinomPut_Greeks EuropeanBinomPut_ImpVol EuropeanBSCall EuropeanBSCall_Greeks EuropeanBSCall_ImpVol " + "EuropeanBSPut EuropeanBSPut_Greeks EuropeanBSPut_ImpVol exctsmpl exec execbg exp extern eye fcheckerr fclearerr feq " + "feqmt fflush fft ffti fftm fftmi fftn fge fgemt fgets fgetsa fgetsat fgetst fgt fgtmt fileinfo filesa fle flemt " + "floor flt fltmt fmod fne fnemt fonts fopen formatcv formatnv fputs fputst fseek fstrerror ftell ftocv ftos ftostrC " + "gamma gammacplx gammaii gausset gdaAppend gdaCreate gdaDStat gdaDStatMat gdaGetIndex gdaGetName gdaGetNames gdaGetOrders " + "gdaGetType gdaGetTypes gdaGetVarInfo gdaIsCplx gdaLoad gdaPack gdaRead gdaReadByIndex gdaReadSome gdaReadSparse " + "gdaReadStruct gdaReportVarInfo gdaSave gdaUpdate gdaUpdateAndPack gdaVars gdaWrite gdaWrite32 gdaWriteSome getarray " + "getdims getf getGAUSShome getmatrix getmatrix4D getname getnamef getNextTradingDay getNextWeekDay getnr getorders " + "getpath getPreviousTradingDay getPreviousWeekDay getRow getscalar3D getscalar4D getTrRow getwind glm gradcplx gradMT " + "gradMTm gradMTT gradMTTm gradp graphprt graphset hasimag header headermt hess hessMT hessMTg hessMTgw hessMTm " + "hessMTmw hessMTT hessMTTg hessMTTgw hessMTTm hessMTw hessp hist histf histp hsec imag indcv indexcat indices indices2 " + "indicesf indicesfn indnv indsav integrate1d integrateControlCreate intgrat2 intgrat3 inthp1 inthp2 inthp3 inthp4 " + "inthpControlCreate intquad1 intquad2 intquad3 intrleav intrleavsa intrsect intsimp inv invpd invswp iscplx iscplxf " + "isden isinfnanmiss ismiss key keyav keyw lag lag1 lagn lapEighb lapEighi lapEighvb lapEighvi lapgEig lapgEigh lapgEighv " + "lapgEigv lapgSchur lapgSvdcst lapgSvds lapgSvdst lapSvdcusv lapSvds lapSvdusv ldlp ldlsol linSolve listwise ln lncdfbvn " + "lncdfbvn2 lncdfmvn lncdfn lncdfn2 lncdfnc lnfact lngammacplx lnpdfmvn lnpdfmvt lnpdfn lnpdft loadd loadstruct loadwind " + "loess loessmt loessmtControlCreate log loglog logx logy lower lowmat lowmat1 ltrisol lu lusol machEpsilon make makevars " + "makewind margin matalloc matinit mattoarray maxbytes maxc maxindc maxv maxvec mbesselei mbesselei0 mbesselei1 mbesseli " + "mbesseli0 mbesseli1 meanc median mergeby mergevar minc minindc minv miss missex missrv moment momentd movingave " + "movingaveExpwgt movingaveWgt nextindex nextn nextnevn nextwind ntos null null1 numCombinations ols olsmt olsmtControlCreate " + "olsqr olsqr2 olsqrmt ones optn optnevn orth outtyp pacf packedToSp packr parse pause pdfCauchy pdfChi pdfExp pdfGenPareto " + "pdfHyperGeo pdfLaplace pdfLogistic pdfn pdfPoisson pdfRayleigh pdfWeibull pi pinv pinvmt plotAddArrow plotAddBar plotAddBox " + "plotAddHist plotAddHistF plotAddHistP plotAddPolar plotAddScatter plotAddShape plotAddTextbox plotAddTS plotAddXY plotArea " + "plotBar plotBox plotClearLayout plotContour plotCustomLayout plotGetDefaults plotHist plotHistF plotHistP plotLayout " + "plotLogLog plotLogX plotLogY plotOpenWindow plotPolar plotSave plotScatter plotSetAxesPen plotSetBar plotSetBarFill " + "plotSetBarStacked plotSetBkdColor plotSetFill plotSetGrid plotSetLegend plotSetLineColor plotSetLineStyle plotSetLineSymbol " + "plotSetLineThickness plotSetNewWindow plotSetTitle plotSetWhichYAxis plotSetXAxisShow plotSetXLabel plotSetXRange " + "plotSetXTicInterval plotSetXTicLabel plotSetYAxisShow plotSetYLabel plotSetYRange plotSetZAxisShow plotSetZLabel " + "plotSurface plotTS plotXY polar polychar polyeval polygamma polyint polymake polymat polymroot polymult polyroot " + "pqgwin previousindex princomp printfm printfmt prodc psi putarray putf putvals pvCreate pvGetIndex pvGetParNames " + "pvGetParVector pvLength pvList pvPack pvPacki pvPackm pvPackmi pvPacks pvPacksi pvPacksm pvPacksmi pvPutParVector " + "pvTest pvUnpack QNewton QNewtonmt QNewtonmtControlCreate QNewtonmtOutCreate QNewtonSet QProg QProgmt QProgmtInCreate " + "qqr qqre qqrep qr qre qrep qrsol qrtsol qtyr qtyre qtyrep quantile quantiled qyr qyre qyrep qz rank rankindx readr " + "real reclassify reclassifyCuts recode recserar recsercp recserrc rerun rescale reshape rets rev rfft rffti rfftip rfftn " + "rfftnp rfftp rndBernoulli rndBeta rndBinomial rndCauchy rndChiSquare rndCon rndCreateState rndExp rndGamma rndGeo rndGumbel " + "rndHyperGeo rndi rndKMbeta rndKMgam rndKMi rndKMn rndKMnb rndKMp rndKMu rndKMvm rndLaplace rndLCbeta rndLCgam rndLCi rndLCn " + "rndLCnb rndLCp rndLCu rndLCvm rndLogNorm rndMTu rndMVn rndMVt rndn rndnb rndNegBinomial rndp rndPoisson rndRayleigh " + "rndStateSkip rndu rndvm rndWeibull rndWishart rotater round rows rowsf rref sampleData satostrC saved saveStruct savewind " + "scale scale3d scalerr scalinfnanmiss scalmiss schtoc schur searchsourcepath seekr select selif seqa seqm setdif setdifsa " + "setvars setvwrmode setwind shell shiftr sin singleindex sinh sleep solpd sortc sortcc sortd sorthc sorthcc sortind " + "sortindc sortmc sortr sortrc spBiconjGradSol spChol spConjGradSol spCreate spDenseSubmat spDiagRvMat spEigv spEye spLDL " + "spline spLU spNumNZE spOnes spreadSheetReadM spreadSheetReadSA spreadSheetWrite spScale spSubmat spToDense spTrTDense " + "spTScalar spZeros sqpSolve sqpSolveMT sqpSolveMTControlCreate sqpSolveMTlagrangeCreate sqpSolveMToutCreate sqpSolveSet " + "sqrt statements stdc stdsc stocv stof strcombine strindx strlen strput strrindx strsect strsplit strsplitPad strtodt " + "strtof strtofcplx strtriml strtrimr strtrunc strtruncl strtruncpad strtruncr submat subscat substute subvec sumc sumr " + "surface svd svd1 svd2 svdcusv svds svdusv sysstate tab tan tanh tempname " + "time timedt timestr timeutc title tkf2eps tkf2ps tocart todaydt toeplitz token topolar trapchk " + "trigamma trimr trunc type typecv typef union unionsa uniqindx uniqindxsa unique uniquesa upmat upmat1 upper utctodt " + "utctodtv utrisol vals varCovMS varCovXS varget vargetl varmall varmares varput varputl vartypef vcm vcms vcx vcxs " + "vec vech vecr vector vget view viewxyz vlist vnamecv volume vput vread vtypecv wait waitc walkindex where window " + "writer xlabel xlsGetSheetCount xlsGetSheetSize xlsGetSheetTypes xlsMakeRange xlsReadM xlsReadSA xlsWrite xlsWriteM " + "xlsWriteSA xpnd xtics xy xyz ylabel ytics zeros zeta zlabel ztics cdfEmpirical dot h5create h5open h5read h5readAttribute " + "h5write h5writeAttribute ldl plotAddErrorBar plotAddSurface plotCDFEmpirical plotSetColormap plotSetContourLabels " + "plotSetLegendFont plotSetTextInterpreter plotSetXTicCount plotSetYTicCount plotSetZLevels powerm strjoin sylvester " + "strtrim",
			literal: "DB_AFTER_LAST_ROW DB_ALL_TABLES DB_BATCH_OPERATIONS DB_BEFORE_FIRST_ROW DB_BLOB DB_EVENT_NOTIFICATIONS " + "DB_FINISH_QUERY DB_HIGH_PRECISION DB_LAST_INSERT_ID DB_LOW_PRECISION_DOUBLE DB_LOW_PRECISION_INT32 " + "DB_LOW_PRECISION_INT64 DB_LOW_PRECISION_NUMBERS DB_MULTIPLE_RESULT_SETS DB_NAMED_PLACEHOLDERS " + "DB_POSITIONAL_PLACEHOLDERS DB_PREPARED_QUERIES DB_QUERY_SIZE DB_SIMPLE_LOCKING DB_SYSTEM_TABLES DB_TABLES " + "DB_TRANSACTIONS DB_UNICODE DB_VIEWS __STDIN __STDOUT __STDERR __FILE_DIR"
		};
		const AT_COMMENT_MODE = hljs$1.COMMENT("@", "@");
		const PREPROCESSOR = {
			className: "meta",
			begin: "#",
			end: "$",
			keywords: { keyword: "define definecs|10 undef ifdef ifndef iflight ifdllcall ifmac ifos2win ifunix else endif lineson linesoff srcfile srcline" },
			contains: [
				{
					begin: /\\\n/,
					relevance: 0
				},
				{
					beginKeywords: "include",
					end: "$",
					keywords: { keyword: "include" },
					contains: [{
						className: "string",
						begin: "\"",
						end: "\"",
						illegal: "\\n"
					}]
				},
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				AT_COMMENT_MODE
			]
		};
		const STRUCT_TYPE = {
			begin: /\bstruct\s+/,
			end: /\s/,
			keywords: "struct",
			contains: [{
				className: "type",
				begin: hljs$1.UNDERSCORE_IDENT_RE,
				relevance: 0
			}]
		};
		const PARSE_PARAMS = [{
			className: "params",
			begin: /\(/,
			end: /\)/,
			excludeBegin: true,
			excludeEnd: true,
			endsWithParent: true,
			relevance: 0,
			contains: [
				{
					className: "literal",
					begin: /\.\.\./
				},
				hljs$1.C_NUMBER_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				AT_COMMENT_MODE,
				STRUCT_TYPE
			]
		}];
		const FUNCTION_DEF = {
			className: "title",
			begin: hljs$1.UNDERSCORE_IDENT_RE,
			relevance: 0
		};
		const DEFINITION = function(beginKeywords$2, end, inherits) {
			const mode = hljs$1.inherit({
				className: "function",
				beginKeywords: beginKeywords$2,
				end,
				excludeEnd: true,
				contains: [].concat(PARSE_PARAMS)
			}, {});
			mode.contains.push(FUNCTION_DEF);
			mode.contains.push(hljs$1.C_NUMBER_MODE);
			mode.contains.push(hljs$1.C_BLOCK_COMMENT_MODE);
			mode.contains.push(AT_COMMENT_MODE);
			return mode;
		};
		const BUILT_IN_REF = {
			className: "built_in",
			begin: "\\b(" + KEYWORDS$6.built_in.split(" ").join("|") + ")\\b"
		};
		const STRING_REF = {
			className: "string",
			begin: "\"",
			end: "\"",
			contains: [hljs$1.BACKSLASH_ESCAPE],
			relevance: 0
		};
		const FUNCTION_REF = {
			begin: hljs$1.UNDERSCORE_IDENT_RE + "\\s*\\(",
			returnBegin: true,
			keywords: KEYWORDS$6,
			relevance: 0,
			contains: [
				{ beginKeywords: KEYWORDS$6.keyword },
				BUILT_IN_REF,
				{
					className: "built_in",
					begin: hljs$1.UNDERSCORE_IDENT_RE,
					relevance: 0
				}
			]
		};
		const FUNCTION_REF_PARAMS = {
			begin: /\(/,
			end: /\)/,
			relevance: 0,
			keywords: {
				built_in: KEYWORDS$6.built_in,
				literal: KEYWORDS$6.literal
			},
			contains: [
				hljs$1.C_NUMBER_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				AT_COMMENT_MODE,
				BUILT_IN_REF,
				FUNCTION_REF,
				STRING_REF,
				"self"
			]
		};
		FUNCTION_REF.contains.push(FUNCTION_REF_PARAMS);
		return {
			name: "GAUSS",
			aliases: ["gss"],
			case_insensitive: true,
			keywords: KEYWORDS$6,
			illegal: /(\{[%#]|[%#]\}| <- )/,
			contains: [
				hljs$1.C_NUMBER_MODE,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				AT_COMMENT_MODE,
				STRING_REF,
				PREPROCESSOR,
				{
					className: "keyword",
					begin: /\bexternal (matrix|string|array|sparse matrix|struct|proc|keyword|fn)/
				},
				DEFINITION("proc keyword", ";"),
				DEFINITION("fn", "="),
				{
					beginKeywords: "for threadfor",
					end: /;/,
					relevance: 0,
					contains: [
						hljs$1.C_BLOCK_COMMENT_MODE,
						AT_COMMENT_MODE,
						FUNCTION_REF_PARAMS
					]
				},
				{
					variants: [{ begin: hljs$1.UNDERSCORE_IDENT_RE + "\\." + hljs$1.UNDERSCORE_IDENT_RE }, { begin: hljs$1.UNDERSCORE_IDENT_RE + "\\s*=" }],
					relevance: 0
				},
				FUNCTION_REF,
				STRUCT_TYPE
			]
		};
	}
	module.exports = gauss;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/gcode.js
var require_gcode = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function gcode(hljs$1) {
		const regex = hljs$1.regex;
		const GCODE_KEYWORDS = {
			$pattern: /[A-Z]+|%/,
			keyword: [
				"THEN",
				"ELSE",
				"ENDIF",
				"IF",
				"GOTO",
				"DO",
				"WHILE",
				"WH",
				"END",
				"CALL",
				"SUB",
				"ENDSUB",
				"EQ",
				"NE",
				"LT",
				"GT",
				"LE",
				"GE",
				"AND",
				"OR",
				"XOR",
				"%"
			],
			built_in: [
				"ATAN",
				"ABS",
				"ACOS",
				"ASIN",
				"COS",
				"EXP",
				"FIX",
				"FUP",
				"ROUND",
				"LN",
				"SIN",
				"SQRT",
				"TAN",
				"EXISTS"
			]
		};
		const LETTER_BOUNDARY_RE = /\b/;
		function LETTER_BOUNDARY_CALLBACK(matchdata, response) {
			if (matchdata.index === 0) {
				return;
			}
			const charBeforeMatch = matchdata.input[matchdata.index - 1];
			if (charBeforeMatch >= "0" && charBeforeMatch <= "9") {
				return;
			}
			if (charBeforeMatch === "_") {
				return;
			}
			response.ignoreMatch();
		}
		const NUMBER_RE$2 = /[+-]?((\.\d+)|(\d+)(\.\d*)?)/;
		const GENERAL_MISC_FUNCTION_RE = /[GM]\s*\d+(\.\d+)?/;
		const TOOLS_RE = /T\s*\d+/;
		const SUBROUTINE_RE = /O\s*\d+/;
		const SUBROUTINE_NAMED_RE = /O<.+>/;
		const AXES_RE = /[ABCUVWXYZ]\s*/;
		const PARAMETERS_RE = /[FHIJKPQRS]\s*/;
		const GCODE_CODE = [
			hljs$1.COMMENT(/\(/, /\)/),
			hljs$1.COMMENT(/;/, /$/),
			hljs$1.APOS_STRING_MODE,
			hljs$1.QUOTE_STRING_MODE,
			hljs$1.C_NUMBER_MODE,
			{
				scope: "title.function",
				variants: [
					{ match: regex.concat(LETTER_BOUNDARY_RE, GENERAL_MISC_FUNCTION_RE) },
					{
						begin: GENERAL_MISC_FUNCTION_RE,
						"on:begin": LETTER_BOUNDARY_CALLBACK
					},
					{ match: regex.concat(LETTER_BOUNDARY_RE, TOOLS_RE) },
					{
						begin: TOOLS_RE,
						"on:begin": LETTER_BOUNDARY_CALLBACK
					}
				]
			},
			{
				scope: "symbol",
				variants: [
					{ match: regex.concat(LETTER_BOUNDARY_RE, SUBROUTINE_RE) },
					{
						begin: SUBROUTINE_RE,
						"on:begin": LETTER_BOUNDARY_CALLBACK
					},
					{ match: regex.concat(LETTER_BOUNDARY_RE, SUBROUTINE_NAMED_RE) },
					{
						begin: SUBROUTINE_NAMED_RE,
						"on:begin": LETTER_BOUNDARY_CALLBACK
					},
					{ match: /\*\s*\d+\s*$/ }
				]
			},
			{
				scope: "operator",
				match: /^N\s*\d+/
			},
			{
				scope: "variable",
				match: /-?#\s*\d+/
			},
			{
				scope: "property",
				variants: [{ match: regex.concat(LETTER_BOUNDARY_RE, AXES_RE, NUMBER_RE$2) }, {
					begin: regex.concat(AXES_RE, NUMBER_RE$2),
					"on:begin": LETTER_BOUNDARY_CALLBACK
				}]
			},
			{
				scope: "params",
				variants: [{ match: regex.concat(LETTER_BOUNDARY_RE, PARAMETERS_RE, NUMBER_RE$2) }, {
					begin: regex.concat(PARAMETERS_RE, NUMBER_RE$2),
					"on:begin": LETTER_BOUNDARY_CALLBACK
				}]
			}
		];
		return {
			name: "G-code (ISO 6983)",
			aliases: ["nc"],
			case_insensitive: true,
			disableAutodetect: true,
			keywords: GCODE_KEYWORDS,
			contains: GCODE_CODE
		};
	}
	module.exports = gcode;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/gherkin.js
var require_gherkin = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function gherkin(hljs$1) {
		return {
			name: "Gherkin",
			aliases: ["feature"],
			keywords: "Feature Background Ability Business Need Scenario Scenarios Scenario Outline Scenario Template Examples Given And Then But When",
			contains: [
				{
					className: "symbol",
					begin: "\\*",
					relevance: 0
				},
				{
					className: "meta",
					begin: "@[^@\\s]+"
				},
				{
					begin: "\\|",
					end: "\\|\\w*$",
					contains: [{
						className: "string",
						begin: "[^|]+"
					}]
				},
				{
					className: "variable",
					begin: "<",
					end: ">"
				},
				hljs$1.HASH_COMMENT_MODE,
				{
					className: "string",
					begin: "\"\"\"",
					end: "\"\"\""
				},
				hljs$1.QUOTE_STRING_MODE
			]
		};
	}
	module.exports = gherkin;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/glsl.js
var require_glsl = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function glsl(hljs$1) {
		return {
			name: "GLSL",
			keywords: {
				keyword: "break continue discard do else for if return while switch case default " + "attribute binding buffer ccw centroid centroid varying coherent column_major const cw " + "depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing " + "flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant " + "invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y " + "local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left " + "out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f " + "r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict " + "rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 " + "rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 " + "rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip " + "triangles triangles_adjacency uniform varying vertices volatile writeonly",
				type: "atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 " + "dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray " + "iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer " + "iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray " + "image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray " + "isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D " + "isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 " + "mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray " + "sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow " + "sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D " + "samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow " + "image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect " + "uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray " + "usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D " + "samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void",
				built_in: "gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes " + "gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms " + "gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers " + "gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits " + "gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize " + "gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters " + "gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors " + "gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers " + "gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents " + "gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits " + "gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents " + "gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset " + "gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms " + "gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits " + "gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents " + "gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters " + "gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents " + "gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents " + "gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits " + "gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors " + "gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms " + "gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits " + "gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset " + "gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial " + "gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color " + "gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord " + "gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor " + "gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial " + "gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel " + "gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix " + "gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose " + "gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose " + "gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 " + "gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 " + "gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ " + "gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord " + "gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse " + "gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask " + "gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter " + "gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose " + "gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out " + "EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin " + "asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement " + "atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier " + "bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross " + "dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB " + "floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan " + "greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap " + "imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad " + "imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset " + "interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log " + "log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer " + "memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 " + "normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 " + "packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod " + "shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh " + "smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod " + "texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod " + "texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod " + "textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset " + "textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset " + "textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod " + "textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 " + "unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow",
				literal: "true false"
			},
			illegal: "\"",
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.C_NUMBER_MODE,
				{
					className: "meta",
					begin: "#",
					end: "$"
				}
			]
		};
	}
	module.exports = glsl;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/gml.js
var require_gml = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function gml(hljs$1) {
		const KEYWORDS$6 = [
			"#endregion",
			"#macro",
			"#region",
			"and",
			"begin",
			"break",
			"case",
			"constructor",
			"continue",
			"default",
			"delete",
			"div",
			"do",
			"else",
			"end",
			"enum",
			"exit",
			"for",
			"function",
			"globalvar",
			"if",
			"mod",
			"new",
			"not",
			"or",
			"repeat",
			"return",
			"static",
			"switch",
			"then",
			"until",
			"var",
			"while",
			"with",
			"xor"
		];
		const BUILT_INS$6 = [
			"abs",
			"alarm_get",
			"alarm_set",
			"angle_difference",
			"animcurve_channel_evaluate",
			"animcurve_channel_new",
			"animcurve_create",
			"animcurve_destroy",
			"animcurve_exists",
			"animcurve_get",
			"animcurve_get_channel",
			"animcurve_get_channel_index",
			"animcurve_point_new",
			"ansi_char",
			"application_get_position",
			"application_surface_draw_enable",
			"application_surface_enable",
			"application_surface_is_enabled",
			"arccos",
			"arcsin",
			"arctan",
			"arctan2",
			"array_all",
			"array_any",
			"array_concat",
			"array_contains",
			"array_contains_ext",
			"array_copy",
			"array_copy_while",
			"array_create",
			"array_create_ext",
			"array_delete",
			"array_equals",
			"array_filter",
			"array_filter_ext",
			"array_find_index",
			"array_first",
			"array_foreach",
			"array_get",
			"array_get_index",
			"array_insert",
			"array_intersection",
			"array_last",
			"array_length",
			"array_map",
			"array_map_ext",
			"array_pop",
			"array_push",
			"array_reduce",
			"array_resize",
			"array_reverse",
			"array_reverse_ext",
			"array_set",
			"array_shuffle",
			"array_shuffle_ext",
			"array_sort",
			"array_union",
			"array_unique",
			"array_unique_ext",
			"asset_add_tags",
			"asset_clear_tags",
			"asset_get_ids",
			"asset_get_index",
			"asset_get_tags",
			"asset_get_type",
			"asset_has_any_tag",
			"asset_has_tags",
			"asset_remove_tags",
			"audio_bus_clear_emitters",
			"audio_bus_create",
			"audio_bus_get_emitters",
			"audio_channel_num",
			"audio_create_buffer_sound",
			"audio_create_play_queue",
			"audio_create_stream",
			"audio_create_sync_group",
			"audio_debug",
			"audio_destroy_stream",
			"audio_destroy_sync_group",
			"audio_effect_create",
			"audio_emitter_bus",
			"audio_emitter_create",
			"audio_emitter_exists",
			"audio_emitter_falloff",
			"audio_emitter_free",
			"audio_emitter_gain",
			"audio_emitter_get_bus",
			"audio_emitter_get_gain",
			"audio_emitter_get_listener_mask",
			"audio_emitter_get_pitch",
			"audio_emitter_get_vx",
			"audio_emitter_get_vy",
			"audio_emitter_get_vz",
			"audio_emitter_get_x",
			"audio_emitter_get_y",
			"audio_emitter_get_z",
			"audio_emitter_pitch",
			"audio_emitter_position",
			"audio_emitter_set_listener_mask",
			"audio_emitter_velocity",
			"audio_exists",
			"audio_falloff_set_model",
			"audio_free_buffer_sound",
			"audio_free_play_queue",
			"audio_get_listener_count",
			"audio_get_listener_info",
			"audio_get_listener_mask",
			"audio_get_master_gain",
			"audio_get_name",
			"audio_get_recorder_count",
			"audio_get_recorder_info",
			"audio_get_type",
			"audio_group_get_assets",
			"audio_group_get_gain",
			"audio_group_is_loaded",
			"audio_group_load",
			"audio_group_load_progress",
			"audio_group_name",
			"audio_group_set_gain",
			"audio_group_stop_all",
			"audio_group_unload",
			"audio_is_paused",
			"audio_is_playing",
			"audio_listener_get_data",
			"audio_listener_orientation",
			"audio_listener_position",
			"audio_listener_set_orientation",
			"audio_listener_set_position",
			"audio_listener_set_velocity",
			"audio_listener_velocity",
			"audio_master_gain",
			"audio_pause_all",
			"audio_pause_sound",
			"audio_pause_sync_group",
			"audio_play_in_sync_group",
			"audio_play_sound",
			"audio_play_sound_at",
			"audio_play_sound_ext",
			"audio_play_sound_on",
			"audio_queue_sound",
			"audio_resume_all",
			"audio_resume_sound",
			"audio_resume_sync_group",
			"audio_set_listener_mask",
			"audio_set_master_gain",
			"audio_sound_gain",
			"audio_sound_get_audio_group",
			"audio_sound_get_gain",
			"audio_sound_get_listener_mask",
			"audio_sound_get_loop",
			"audio_sound_get_loop_end",
			"audio_sound_get_loop_start",
			"audio_sound_get_pitch",
			"audio_sound_get_track_position",
			"audio_sound_is_playable",
			"audio_sound_length",
			"audio_sound_loop",
			"audio_sound_loop_end",
			"audio_sound_loop_start",
			"audio_sound_pitch",
			"audio_sound_set_listener_mask",
			"audio_sound_set_track_position",
			"audio_start_recording",
			"audio_start_sync_group",
			"audio_stop_all",
			"audio_stop_recording",
			"audio_stop_sound",
			"audio_stop_sync_group",
			"audio_sync_group_debug",
			"audio_sync_group_get_track_pos",
			"audio_sync_group_is_paused",
			"audio_sync_group_is_playing",
			"audio_system_is_available",
			"audio_system_is_initialised",
			"base64_decode",
			"base64_encode",
			"bool",
			"browser_input_capture",
			"buffer_async_group_begin",
			"buffer_async_group_end",
			"buffer_async_group_option",
			"buffer_base64_decode",
			"buffer_base64_decode_ext",
			"buffer_base64_encode",
			"buffer_compress",
			"buffer_copy",
			"buffer_copy_from_vertex_buffer",
			"buffer_copy_stride",
			"buffer_crc32",
			"buffer_create",
			"buffer_create_from_vertex_buffer",
			"buffer_create_from_vertex_buffer_ext",
			"buffer_decompress",
			"buffer_delete",
			"buffer_exists",
			"buffer_fill",
			"buffer_get_address",
			"buffer_get_alignment",
			"buffer_get_size",
			"buffer_get_surface",
			"buffer_get_type",
			"buffer_load",
			"buffer_load_async",
			"buffer_load_ext",
			"buffer_load_partial",
			"buffer_md5",
			"buffer_peek",
			"buffer_poke",
			"buffer_read",
			"buffer_resize",
			"buffer_save",
			"buffer_save_async",
			"buffer_save_ext",
			"buffer_seek",
			"buffer_set_surface",
			"buffer_set_used_size",
			"buffer_sha1",
			"buffer_sizeof",
			"buffer_tell",
			"buffer_write",
			"call_cancel",
			"call_later",
			"camera_apply",
			"camera_copy_transforms",
			"camera_create",
			"camera_create_view",
			"camera_destroy",
			"camera_get_active",
			"camera_get_begin_script",
			"camera_get_default",
			"camera_get_end_script",
			"camera_get_proj_mat",
			"camera_get_update_script",
			"camera_get_view_angle",
			"camera_get_view_border_x",
			"camera_get_view_border_y",
			"camera_get_view_height",
			"camera_get_view_mat",
			"camera_get_view_speed_x",
			"camera_get_view_speed_y",
			"camera_get_view_target",
			"camera_get_view_width",
			"camera_get_view_x",
			"camera_get_view_y",
			"camera_set_begin_script",
			"camera_set_default",
			"camera_set_end_script",
			"camera_set_proj_mat",
			"camera_set_update_script",
			"camera_set_view_angle",
			"camera_set_view_border",
			"camera_set_view_mat",
			"camera_set_view_pos",
			"camera_set_view_size",
			"camera_set_view_speed",
			"camera_set_view_target",
			"ceil",
			"choose",
			"chr",
			"clamp",
			"clickable_add",
			"clickable_add_ext",
			"clickable_change",
			"clickable_change_ext",
			"clickable_delete",
			"clickable_exists",
			"clickable_set_style",
			"clipboard_get_text",
			"clipboard_has_text",
			"clipboard_set_text",
			"cloud_file_save",
			"cloud_string_save",
			"cloud_synchronise",
			"code_is_compiled",
			"collision_circle",
			"collision_circle_list",
			"collision_ellipse",
			"collision_ellipse_list",
			"collision_line",
			"collision_line_list",
			"collision_point",
			"collision_point_list",
			"collision_rectangle",
			"collision_rectangle_list",
			"color_get_blue",
			"color_get_green",
			"color_get_hue",
			"color_get_red",
			"color_get_saturation",
			"color_get_value",
			"colour_get_blue",
			"colour_get_green",
			"colour_get_hue",
			"colour_get_red",
			"colour_get_saturation",
			"colour_get_value",
			"cos",
			"darccos",
			"darcsin",
			"darctan",
			"darctan2",
			"date_compare_date",
			"date_compare_datetime",
			"date_compare_time",
			"date_create_datetime",
			"date_current_datetime",
			"date_date_of",
			"date_date_string",
			"date_datetime_string",
			"date_day_span",
			"date_days_in_month",
			"date_days_in_year",
			"date_get_day",
			"date_get_day_of_year",
			"date_get_hour",
			"date_get_hour_of_year",
			"date_get_minute",
			"date_get_minute_of_year",
			"date_get_month",
			"date_get_second",
			"date_get_second_of_year",
			"date_get_timezone",
			"date_get_week",
			"date_get_weekday",
			"date_get_year",
			"date_hour_span",
			"date_inc_day",
			"date_inc_hour",
			"date_inc_minute",
			"date_inc_month",
			"date_inc_second",
			"date_inc_week",
			"date_inc_year",
			"date_is_today",
			"date_leap_year",
			"date_minute_span",
			"date_month_span",
			"date_second_span",
			"date_set_timezone",
			"date_time_of",
			"date_time_string",
			"date_valid_datetime",
			"date_week_span",
			"date_year_span",
			"db_to_lin",
			"dbg_add_font_glyphs",
			"dbg_button",
			"dbg_checkbox",
			"dbg_color",
			"dbg_colour",
			"dbg_drop_down",
			"dbg_same_line",
			"dbg_section",
			"dbg_section_delete",
			"dbg_section_exists",
			"dbg_slider",
			"dbg_slider_int",
			"dbg_sprite",
			"dbg_text",
			"dbg_text_input",
			"dbg_view",
			"dbg_view_delete",
			"dbg_view_exists",
			"dbg_watch",
			"dcos",
			"debug_event",
			"debug_get_callstack",
			"degtorad",
			"device_get_tilt_x",
			"device_get_tilt_y",
			"device_get_tilt_z",
			"device_is_keypad_open",
			"device_mouse_check_button",
			"device_mouse_check_button_pressed",
			"device_mouse_check_button_released",
			"device_mouse_dbclick_enable",
			"device_mouse_raw_x",
			"device_mouse_raw_y",
			"device_mouse_x",
			"device_mouse_x_to_gui",
			"device_mouse_y",
			"device_mouse_y_to_gui",
			"directory_create",
			"directory_destroy",
			"directory_exists",
			"display_get_dpi_x",
			"display_get_dpi_y",
			"display_get_frequency",
			"display_get_gui_height",
			"display_get_gui_width",
			"display_get_height",
			"display_get_orientation",
			"display_get_sleep_margin",
			"display_get_timing_method",
			"display_get_width",
			"display_mouse_get_x",
			"display_mouse_get_y",
			"display_mouse_set",
			"display_reset",
			"display_set_gui_maximise",
			"display_set_gui_maximize",
			"display_set_gui_size",
			"display_set_sleep_margin",
			"display_set_timing_method",
			"display_set_ui_visibility",
			"distance_to_object",
			"distance_to_point",
			"dot_product",
			"dot_product_3d",
			"dot_product_3d_normalised",
			"dot_product_3d_normalized",
			"dot_product_normalised",
			"dot_product_normalized",
			"draw_arrow",
			"draw_button",
			"draw_circle",
			"draw_circle_color",
			"draw_circle_colour",
			"draw_clear",
			"draw_clear_alpha",
			"draw_ellipse",
			"draw_ellipse_color",
			"draw_ellipse_colour",
			"draw_enable_drawevent",
			"draw_enable_skeleton_blendmodes",
			"draw_enable_swf_aa",
			"draw_flush",
			"draw_get_alpha",
			"draw_get_color",
			"draw_get_colour",
			"draw_get_enable_skeleton_blendmodes",
			"draw_get_font",
			"draw_get_halign",
			"draw_get_lighting",
			"draw_get_swf_aa_level",
			"draw_get_valign",
			"draw_getpixel",
			"draw_getpixel_ext",
			"draw_healthbar",
			"draw_highscore",
			"draw_light_define_ambient",
			"draw_light_define_direction",
			"draw_light_define_point",
			"draw_light_enable",
			"draw_light_get",
			"draw_light_get_ambient",
			"draw_line",
			"draw_line_color",
			"draw_line_colour",
			"draw_line_width",
			"draw_line_width_color",
			"draw_line_width_colour",
			"draw_path",
			"draw_point",
			"draw_point_color",
			"draw_point_colour",
			"draw_primitive_begin",
			"draw_primitive_begin_texture",
			"draw_primitive_end",
			"draw_rectangle",
			"draw_rectangle_color",
			"draw_rectangle_colour",
			"draw_roundrect",
			"draw_roundrect_color",
			"draw_roundrect_color_ext",
			"draw_roundrect_colour",
			"draw_roundrect_colour_ext",
			"draw_roundrect_ext",
			"draw_self",
			"draw_set_alpha",
			"draw_set_circle_precision",
			"draw_set_color",
			"draw_set_colour",
			"draw_set_font",
			"draw_set_halign",
			"draw_set_lighting",
			"draw_set_swf_aa_level",
			"draw_set_valign",
			"draw_skeleton",
			"draw_skeleton_collision",
			"draw_skeleton_instance",
			"draw_skeleton_time",
			"draw_sprite",
			"draw_sprite_ext",
			"draw_sprite_general",
			"draw_sprite_part",
			"draw_sprite_part_ext",
			"draw_sprite_pos",
			"draw_sprite_stretched",
			"draw_sprite_stretched_ext",
			"draw_sprite_tiled",
			"draw_sprite_tiled_ext",
			"draw_surface",
			"draw_surface_ext",
			"draw_surface_general",
			"draw_surface_part",
			"draw_surface_part_ext",
			"draw_surface_stretched",
			"draw_surface_stretched_ext",
			"draw_surface_tiled",
			"draw_surface_tiled_ext",
			"draw_text",
			"draw_text_color",
			"draw_text_colour",
			"draw_text_ext",
			"draw_text_ext_color",
			"draw_text_ext_colour",
			"draw_text_ext_transformed",
			"draw_text_ext_transformed_color",
			"draw_text_ext_transformed_colour",
			"draw_text_transformed",
			"draw_text_transformed_color",
			"draw_text_transformed_colour",
			"draw_texture_flush",
			"draw_tile",
			"draw_tilemap",
			"draw_triangle",
			"draw_triangle_color",
			"draw_triangle_colour",
			"draw_vertex",
			"draw_vertex_color",
			"draw_vertex_colour",
			"draw_vertex_texture",
			"draw_vertex_texture_color",
			"draw_vertex_texture_colour",
			"ds_exists",
			"ds_grid_add",
			"ds_grid_add_disk",
			"ds_grid_add_grid_region",
			"ds_grid_add_region",
			"ds_grid_clear",
			"ds_grid_copy",
			"ds_grid_create",
			"ds_grid_destroy",
			"ds_grid_get",
			"ds_grid_get_disk_max",
			"ds_grid_get_disk_mean",
			"ds_grid_get_disk_min",
			"ds_grid_get_disk_sum",
			"ds_grid_get_max",
			"ds_grid_get_mean",
			"ds_grid_get_min",
			"ds_grid_get_sum",
			"ds_grid_height",
			"ds_grid_multiply",
			"ds_grid_multiply_disk",
			"ds_grid_multiply_grid_region",
			"ds_grid_multiply_region",
			"ds_grid_read",
			"ds_grid_resize",
			"ds_grid_set",
			"ds_grid_set_disk",
			"ds_grid_set_grid_region",
			"ds_grid_set_region",
			"ds_grid_shuffle",
			"ds_grid_sort",
			"ds_grid_to_mp_grid",
			"ds_grid_value_disk_exists",
			"ds_grid_value_disk_x",
			"ds_grid_value_disk_y",
			"ds_grid_value_exists",
			"ds_grid_value_x",
			"ds_grid_value_y",
			"ds_grid_width",
			"ds_grid_write",
			"ds_list_add",
			"ds_list_clear",
			"ds_list_copy",
			"ds_list_create",
			"ds_list_delete",
			"ds_list_destroy",
			"ds_list_empty",
			"ds_list_find_index",
			"ds_list_find_value",
			"ds_list_insert",
			"ds_list_is_list",
			"ds_list_is_map",
			"ds_list_mark_as_list",
			"ds_list_mark_as_map",
			"ds_list_read",
			"ds_list_replace",
			"ds_list_set",
			"ds_list_shuffle",
			"ds_list_size",
			"ds_list_sort",
			"ds_list_write",
			"ds_map_add",
			"ds_map_add_list",
			"ds_map_add_map",
			"ds_map_clear",
			"ds_map_copy",
			"ds_map_create",
			"ds_map_delete",
			"ds_map_destroy",
			"ds_map_empty",
			"ds_map_exists",
			"ds_map_find_first",
			"ds_map_find_last",
			"ds_map_find_next",
			"ds_map_find_previous",
			"ds_map_find_value",
			"ds_map_is_list",
			"ds_map_is_map",
			"ds_map_keys_to_array",
			"ds_map_read",
			"ds_map_replace",
			"ds_map_replace_list",
			"ds_map_replace_map",
			"ds_map_secure_load",
			"ds_map_secure_load_buffer",
			"ds_map_secure_save",
			"ds_map_secure_save_buffer",
			"ds_map_set",
			"ds_map_size",
			"ds_map_values_to_array",
			"ds_map_write",
			"ds_priority_add",
			"ds_priority_change_priority",
			"ds_priority_clear",
			"ds_priority_copy",
			"ds_priority_create",
			"ds_priority_delete_max",
			"ds_priority_delete_min",
			"ds_priority_delete_value",
			"ds_priority_destroy",
			"ds_priority_empty",
			"ds_priority_find_max",
			"ds_priority_find_min",
			"ds_priority_find_priority",
			"ds_priority_read",
			"ds_priority_size",
			"ds_priority_write",
			"ds_queue_clear",
			"ds_queue_copy",
			"ds_queue_create",
			"ds_queue_dequeue",
			"ds_queue_destroy",
			"ds_queue_empty",
			"ds_queue_enqueue",
			"ds_queue_head",
			"ds_queue_read",
			"ds_queue_size",
			"ds_queue_tail",
			"ds_queue_write",
			"ds_set_precision",
			"ds_stack_clear",
			"ds_stack_copy",
			"ds_stack_create",
			"ds_stack_destroy",
			"ds_stack_empty",
			"ds_stack_pop",
			"ds_stack_push",
			"ds_stack_read",
			"ds_stack_size",
			"ds_stack_top",
			"ds_stack_write",
			"dsin",
			"dtan",
			"effect_clear",
			"effect_create_above",
			"effect_create_below",
			"effect_create_depth",
			"effect_create_layer",
			"environment_get_variable",
			"event_inherited",
			"event_perform",
			"event_perform_async",
			"event_perform_object",
			"event_user",
			"exception_unhandled_handler",
			"exp",
			"extension_exists",
			"extension_get_option_count",
			"extension_get_option_names",
			"extension_get_option_value",
			"extension_get_options",
			"extension_get_version",
			"external_call",
			"external_define",
			"external_free",
			"file_attributes",
			"file_bin_close",
			"file_bin_open",
			"file_bin_position",
			"file_bin_read_byte",
			"file_bin_rewrite",
			"file_bin_seek",
			"file_bin_size",
			"file_bin_write_byte",
			"file_copy",
			"file_delete",
			"file_exists",
			"file_find_close",
			"file_find_first",
			"file_find_next",
			"file_rename",
			"file_text_close",
			"file_text_eof",
			"file_text_eoln",
			"file_text_open_append",
			"file_text_open_from_string",
			"file_text_open_read",
			"file_text_open_write",
			"file_text_read_real",
			"file_text_read_string",
			"file_text_readln",
			"file_text_write_real",
			"file_text_write_string",
			"file_text_writeln",
			"filename_change_ext",
			"filename_dir",
			"filename_drive",
			"filename_ext",
			"filename_name",
			"filename_path",
			"floor",
			"font_add",
			"font_add_enable_aa",
			"font_add_get_enable_aa",
			"font_add_sprite",
			"font_add_sprite_ext",
			"font_cache_glyph",
			"font_delete",
			"font_enable_effects",
			"font_enable_sdf",
			"font_exists",
			"font_get_bold",
			"font_get_first",
			"font_get_fontname",
			"font_get_info",
			"font_get_italic",
			"font_get_last",
			"font_get_name",
			"font_get_sdf_enabled",
			"font_get_sdf_spread",
			"font_get_size",
			"font_get_texture",
			"font_get_uvs",
			"font_replace_sprite",
			"font_replace_sprite_ext",
			"font_sdf_spread",
			"font_set_cache_size",
			"frac",
			"fx_create",
			"fx_get_name",
			"fx_get_parameter",
			"fx_get_parameter_names",
			"fx_get_parameters",
			"fx_get_single_layer",
			"fx_set_parameter",
			"fx_set_parameters",
			"fx_set_single_layer",
			"game_change",
			"game_end",
			"game_get_speed",
			"game_load",
			"game_load_buffer",
			"game_restart",
			"game_save",
			"game_save_buffer",
			"game_set_speed",
			"gamepad_axis_count",
			"gamepad_axis_value",
			"gamepad_button_check",
			"gamepad_button_check_pressed",
			"gamepad_button_check_released",
			"gamepad_button_count",
			"gamepad_button_value",
			"gamepad_get_axis_deadzone",
			"gamepad_get_button_threshold",
			"gamepad_get_description",
			"gamepad_get_device_count",
			"gamepad_get_guid",
			"gamepad_get_mapping",
			"gamepad_get_option",
			"gamepad_hat_count",
			"gamepad_hat_value",
			"gamepad_is_connected",
			"gamepad_is_supported",
			"gamepad_remove_mapping",
			"gamepad_set_axis_deadzone",
			"gamepad_set_button_threshold",
			"gamepad_set_color",
			"gamepad_set_colour",
			"gamepad_set_option",
			"gamepad_set_vibration",
			"gamepad_test_mapping",
			"gc_collect",
			"gc_enable",
			"gc_get_stats",
			"gc_get_target_frame_time",
			"gc_is_enabled",
			"gc_target_frame_time",
			"gesture_double_tap_distance",
			"gesture_double_tap_time",
			"gesture_drag_distance",
			"gesture_drag_time",
			"gesture_flick_speed",
			"gesture_get_double_tap_distance",
			"gesture_get_double_tap_time",
			"gesture_get_drag_distance",
			"gesture_get_drag_time",
			"gesture_get_flick_speed",
			"gesture_get_pinch_angle_away",
			"gesture_get_pinch_angle_towards",
			"gesture_get_pinch_distance",
			"gesture_get_rotate_angle",
			"gesture_get_rotate_time",
			"gesture_get_tap_count",
			"gesture_pinch_angle_away",
			"gesture_pinch_angle_towards",
			"gesture_pinch_distance",
			"gesture_rotate_angle",
			"gesture_rotate_time",
			"gesture_tap_count",
			"get_integer",
			"get_integer_async",
			"get_login_async",
			"get_open_filename",
			"get_open_filename_ext",
			"get_save_filename",
			"get_save_filename_ext",
			"get_string",
			"get_string_async",
			"get_timer",
			"gif_add_surface",
			"gif_open",
			"gif_save",
			"gif_save_buffer",
			"gml_pragma",
			"gml_release_mode",
			"gpu_get_alphatestenable",
			"gpu_get_alphatestref",
			"gpu_get_blendenable",
			"gpu_get_blendmode",
			"gpu_get_blendmode_dest",
			"gpu_get_blendmode_destalpha",
			"gpu_get_blendmode_ext",
			"gpu_get_blendmode_ext_sepalpha",
			"gpu_get_blendmode_src",
			"gpu_get_blendmode_srcalpha",
			"gpu_get_colorwriteenable",
			"gpu_get_colourwriteenable",
			"gpu_get_cullmode",
			"gpu_get_depth",
			"gpu_get_fog",
			"gpu_get_state",
			"gpu_get_tex_filter",
			"gpu_get_tex_filter_ext",
			"gpu_get_tex_max_aniso",
			"gpu_get_tex_max_aniso_ext",
			"gpu_get_tex_max_mip",
			"gpu_get_tex_max_mip_ext",
			"gpu_get_tex_min_mip",
			"gpu_get_tex_min_mip_ext",
			"gpu_get_tex_mip_bias",
			"gpu_get_tex_mip_bias_ext",
			"gpu_get_tex_mip_enable",
			"gpu_get_tex_mip_enable_ext",
			"gpu_get_tex_mip_filter",
			"gpu_get_tex_mip_filter_ext",
			"gpu_get_tex_repeat",
			"gpu_get_tex_repeat_ext",
			"gpu_get_texfilter",
			"gpu_get_texfilter_ext",
			"gpu_get_texrepeat",
			"gpu_get_texrepeat_ext",
			"gpu_get_zfunc",
			"gpu_get_ztestenable",
			"gpu_get_zwriteenable",
			"gpu_pop_state",
			"gpu_push_state",
			"gpu_set_alphatestenable",
			"gpu_set_alphatestref",
			"gpu_set_blendenable",
			"gpu_set_blendmode",
			"gpu_set_blendmode_ext",
			"gpu_set_blendmode_ext_sepalpha",
			"gpu_set_colorwriteenable",
			"gpu_set_colourwriteenable",
			"gpu_set_cullmode",
			"gpu_set_depth",
			"gpu_set_fog",
			"gpu_set_state",
			"gpu_set_tex_filter",
			"gpu_set_tex_filter_ext",
			"gpu_set_tex_max_aniso",
			"gpu_set_tex_max_aniso_ext",
			"gpu_set_tex_max_mip",
			"gpu_set_tex_max_mip_ext",
			"gpu_set_tex_min_mip",
			"gpu_set_tex_min_mip_ext",
			"gpu_set_tex_mip_bias",
			"gpu_set_tex_mip_bias_ext",
			"gpu_set_tex_mip_enable",
			"gpu_set_tex_mip_enable_ext",
			"gpu_set_tex_mip_filter",
			"gpu_set_tex_mip_filter_ext",
			"gpu_set_tex_repeat",
			"gpu_set_tex_repeat_ext",
			"gpu_set_texfilter",
			"gpu_set_texfilter_ext",
			"gpu_set_texrepeat",
			"gpu_set_texrepeat_ext",
			"gpu_set_zfunc",
			"gpu_set_ztestenable",
			"gpu_set_zwriteenable",
			"handle_parse",
			"highscore_add",
			"highscore_clear",
			"highscore_name",
			"highscore_value",
			"http_get",
			"http_get_file",
			"http_get_request_crossorigin",
			"http_post_string",
			"http_request",
			"http_set_request_crossorigin",
			"iap_acquire",
			"iap_activate",
			"iap_consume",
			"iap_enumerate_products",
			"iap_product_details",
			"iap_purchase_details",
			"iap_restore_all",
			"iap_status",
			"ini_close",
			"ini_key_delete",
			"ini_key_exists",
			"ini_open",
			"ini_open_from_string",
			"ini_read_real",
			"ini_read_string",
			"ini_section_delete",
			"ini_section_exists",
			"ini_write_real",
			"ini_write_string",
			"instance_activate_all",
			"instance_activate_layer",
			"instance_activate_object",
			"instance_activate_region",
			"instance_change",
			"instance_copy",
			"instance_create_depth",
			"instance_create_layer",
			"instance_deactivate_all",
			"instance_deactivate_layer",
			"instance_deactivate_object",
			"instance_deactivate_region",
			"instance_destroy",
			"instance_exists",
			"instance_find",
			"instance_furthest",
			"instance_id_get",
			"instance_nearest",
			"instance_number",
			"instance_place",
			"instance_place_list",
			"instance_position",
			"instance_position_list",
			"instanceof",
			"int64",
			"io_clear",
			"irandom",
			"irandom_range",
			"is_array",
			"is_bool",
			"is_callable",
			"is_debug_overlay_open",
			"is_handle",
			"is_infinity",
			"is_instanceof",
			"is_int32",
			"is_int64",
			"is_keyboard_used_debug_overlay",
			"is_method",
			"is_mouse_over_debug_overlay",
			"is_nan",
			"is_numeric",
			"is_ptr",
			"is_real",
			"is_string",
			"is_struct",
			"is_undefined",
			"json_decode",
			"json_encode",
			"json_parse",
			"json_stringify",
			"keyboard_check",
			"keyboard_check_direct",
			"keyboard_check_pressed",
			"keyboard_check_released",
			"keyboard_clear",
			"keyboard_get_map",
			"keyboard_get_numlock",
			"keyboard_key_press",
			"keyboard_key_release",
			"keyboard_set_map",
			"keyboard_set_numlock",
			"keyboard_unset_map",
			"keyboard_virtual_height",
			"keyboard_virtual_hide",
			"keyboard_virtual_show",
			"keyboard_virtual_status",
			"layer_add_instance",
			"layer_background_alpha",
			"layer_background_blend",
			"layer_background_change",
			"layer_background_create",
			"layer_background_destroy",
			"layer_background_exists",
			"layer_background_get_alpha",
			"layer_background_get_blend",
			"layer_background_get_htiled",
			"layer_background_get_id",
			"layer_background_get_index",
			"layer_background_get_speed",
			"layer_background_get_sprite",
			"layer_background_get_stretch",
			"layer_background_get_visible",
			"layer_background_get_vtiled",
			"layer_background_get_xscale",
			"layer_background_get_yscale",
			"layer_background_htiled",
			"layer_background_index",
			"layer_background_speed",
			"layer_background_sprite",
			"layer_background_stretch",
			"layer_background_visible",
			"layer_background_vtiled",
			"layer_background_xscale",
			"layer_background_yscale",
			"layer_clear_fx",
			"layer_create",
			"layer_depth",
			"layer_destroy",
			"layer_destroy_instances",
			"layer_element_move",
			"layer_enable_fx",
			"layer_exists",
			"layer_force_draw_depth",
			"layer_fx_is_enabled",
			"layer_get_all",
			"layer_get_all_elements",
			"layer_get_depth",
			"layer_get_element_layer",
			"layer_get_element_type",
			"layer_get_forced_depth",
			"layer_get_fx",
			"layer_get_hspeed",
			"layer_get_id",
			"layer_get_id_at_depth",
			"layer_get_name",
			"layer_get_script_begin",
			"layer_get_script_end",
			"layer_get_shader",
			"layer_get_target_room",
			"layer_get_visible",
			"layer_get_vspeed",
			"layer_get_x",
			"layer_get_y",
			"layer_has_instance",
			"layer_hspeed",
			"layer_instance_get_instance",
			"layer_is_draw_depth_forced",
			"layer_reset_target_room",
			"layer_script_begin",
			"layer_script_end",
			"layer_sequence_angle",
			"layer_sequence_create",
			"layer_sequence_destroy",
			"layer_sequence_exists",
			"layer_sequence_get_angle",
			"layer_sequence_get_headdir",
			"layer_sequence_get_headpos",
			"layer_sequence_get_instance",
			"layer_sequence_get_length",
			"layer_sequence_get_sequence",
			"layer_sequence_get_speedscale",
			"layer_sequence_get_x",
			"layer_sequence_get_xscale",
			"layer_sequence_get_y",
			"layer_sequence_get_yscale",
			"layer_sequence_headdir",
			"layer_sequence_headpos",
			"layer_sequence_is_finished",
			"layer_sequence_is_paused",
			"layer_sequence_pause",
			"layer_sequence_play",
			"layer_sequence_speedscale",
			"layer_sequence_x",
			"layer_sequence_xscale",
			"layer_sequence_y",
			"layer_sequence_yscale",
			"layer_set_fx",
			"layer_set_target_room",
			"layer_set_visible",
			"layer_shader",
			"layer_sprite_alpha",
			"layer_sprite_angle",
			"layer_sprite_blend",
			"layer_sprite_change",
			"layer_sprite_create",
			"layer_sprite_destroy",
			"layer_sprite_exists",
			"layer_sprite_get_alpha",
			"layer_sprite_get_angle",
			"layer_sprite_get_blend",
			"layer_sprite_get_id",
			"layer_sprite_get_index",
			"layer_sprite_get_speed",
			"layer_sprite_get_sprite",
			"layer_sprite_get_x",
			"layer_sprite_get_xscale",
			"layer_sprite_get_y",
			"layer_sprite_get_yscale",
			"layer_sprite_index",
			"layer_sprite_speed",
			"layer_sprite_x",
			"layer_sprite_xscale",
			"layer_sprite_y",
			"layer_sprite_yscale",
			"layer_tile_alpha",
			"layer_tile_blend",
			"layer_tile_change",
			"layer_tile_create",
			"layer_tile_destroy",
			"layer_tile_exists",
			"layer_tile_get_alpha",
			"layer_tile_get_blend",
			"layer_tile_get_region",
			"layer_tile_get_sprite",
			"layer_tile_get_visible",
			"layer_tile_get_x",
			"layer_tile_get_xscale",
			"layer_tile_get_y",
			"layer_tile_get_yscale",
			"layer_tile_region",
			"layer_tile_visible",
			"layer_tile_x",
			"layer_tile_xscale",
			"layer_tile_y",
			"layer_tile_yscale",
			"layer_tilemap_create",
			"layer_tilemap_destroy",
			"layer_tilemap_exists",
			"layer_tilemap_get_id",
			"layer_vspeed",
			"layer_x",
			"layer_y",
			"lengthdir_x",
			"lengthdir_y",
			"lerp",
			"lin_to_db",
			"ln",
			"load_csv",
			"log10",
			"log2",
			"logn",
			"make_color_hsv",
			"make_color_rgb",
			"make_colour_hsv",
			"make_colour_rgb",
			"math_get_epsilon",
			"math_set_epsilon",
			"matrix_build",
			"matrix_build_identity",
			"matrix_build_lookat",
			"matrix_build_projection_ortho",
			"matrix_build_projection_perspective",
			"matrix_build_projection_perspective_fov",
			"matrix_get",
			"matrix_multiply",
			"matrix_set",
			"matrix_stack_clear",
			"matrix_stack_is_empty",
			"matrix_stack_pop",
			"matrix_stack_push",
			"matrix_stack_set",
			"matrix_stack_top",
			"matrix_transform_vertex",
			"max",
			"md5_file",
			"md5_string_unicode",
			"md5_string_utf8",
			"mean",
			"median",
			"merge_color",
			"merge_colour",
			"method",
			"method_call",
			"method_get_index",
			"method_get_self",
			"min",
			"motion_add",
			"motion_set",
			"mouse_check_button",
			"mouse_check_button_pressed",
			"mouse_check_button_released",
			"mouse_clear",
			"mouse_wheel_down",
			"mouse_wheel_up",
			"move_and_collide",
			"move_bounce_all",
			"move_bounce_solid",
			"move_contact_all",
			"move_contact_solid",
			"move_outside_all",
			"move_outside_solid",
			"move_random",
			"move_snap",
			"move_towards_point",
			"move_wrap",
			"mp_grid_add_cell",
			"mp_grid_add_instances",
			"mp_grid_add_rectangle",
			"mp_grid_clear_all",
			"mp_grid_clear_cell",
			"mp_grid_clear_rectangle",
			"mp_grid_create",
			"mp_grid_destroy",
			"mp_grid_draw",
			"mp_grid_get_cell",
			"mp_grid_path",
			"mp_grid_to_ds_grid",
			"mp_linear_path",
			"mp_linear_path_object",
			"mp_linear_step",
			"mp_linear_step_object",
			"mp_potential_path",
			"mp_potential_path_object",
			"mp_potential_settings",
			"mp_potential_step",
			"mp_potential_step_object",
			"nameof",
			"network_connect",
			"network_connect_async",
			"network_connect_raw",
			"network_connect_raw_async",
			"network_create_server",
			"network_create_server_raw",
			"network_create_socket",
			"network_create_socket_ext",
			"network_destroy",
			"network_resolve",
			"network_send_broadcast",
			"network_send_packet",
			"network_send_raw",
			"network_send_udp",
			"network_send_udp_raw",
			"network_set_config",
			"network_set_timeout",
			"object_exists",
			"object_get_mask",
			"object_get_name",
			"object_get_parent",
			"object_get_persistent",
			"object_get_physics",
			"object_get_solid",
			"object_get_sprite",
			"object_get_visible",
			"object_is_ancestor",
			"object_set_mask",
			"object_set_persistent",
			"object_set_solid",
			"object_set_sprite",
			"object_set_visible",
			"ord",
			"os_check_permission",
			"os_get_config",
			"os_get_info",
			"os_get_language",
			"os_get_region",
			"os_is_network_connected",
			"os_is_paused",
			"os_lock_orientation",
			"os_powersave_enable",
			"os_request_permission",
			"os_set_orientation_lock",
			"parameter_count",
			"parameter_string",
			"part_emitter_burst",
			"part_emitter_clear",
			"part_emitter_create",
			"part_emitter_delay",
			"part_emitter_destroy",
			"part_emitter_destroy_all",
			"part_emitter_enable",
			"part_emitter_exists",
			"part_emitter_interval",
			"part_emitter_region",
			"part_emitter_relative",
			"part_emitter_stream",
			"part_particles_burst",
			"part_particles_clear",
			"part_particles_count",
			"part_particles_create",
			"part_particles_create_color",
			"part_particles_create_colour",
			"part_system_angle",
			"part_system_automatic_draw",
			"part_system_automatic_update",
			"part_system_clear",
			"part_system_color",
			"part_system_colour",
			"part_system_create",
			"part_system_create_layer",
			"part_system_depth",
			"part_system_destroy",
			"part_system_draw_order",
			"part_system_drawit",
			"part_system_exists",
			"part_system_get_info",
			"part_system_get_layer",
			"part_system_global_space",
			"part_system_layer",
			"part_system_position",
			"part_system_update",
			"part_type_alpha1",
			"part_type_alpha2",
			"part_type_alpha3",
			"part_type_blend",
			"part_type_clear",
			"part_type_color1",
			"part_type_color2",
			"part_type_color3",
			"part_type_color_hsv",
			"part_type_color_mix",
			"part_type_color_rgb",
			"part_type_colour1",
			"part_type_colour2",
			"part_type_colour3",
			"part_type_colour_hsv",
			"part_type_colour_mix",
			"part_type_colour_rgb",
			"part_type_create",
			"part_type_death",
			"part_type_destroy",
			"part_type_direction",
			"part_type_exists",
			"part_type_gravity",
			"part_type_life",
			"part_type_orientation",
			"part_type_scale",
			"part_type_shape",
			"part_type_size",
			"part_type_size_x",
			"part_type_size_y",
			"part_type_speed",
			"part_type_sprite",
			"part_type_step",
			"part_type_subimage",
			"particle_exists",
			"particle_get_info",
			"path_add",
			"path_add_point",
			"path_append",
			"path_assign",
			"path_change_point",
			"path_clear_points",
			"path_delete",
			"path_delete_point",
			"path_duplicate",
			"path_end",
			"path_exists",
			"path_flip",
			"path_get_closed",
			"path_get_kind",
			"path_get_length",
			"path_get_name",
			"path_get_number",
			"path_get_point_speed",
			"path_get_point_x",
			"path_get_point_y",
			"path_get_precision",
			"path_get_speed",
			"path_get_x",
			"path_get_y",
			"path_insert_point",
			"path_mirror",
			"path_rescale",
			"path_reverse",
			"path_rotate",
			"path_set_closed",
			"path_set_kind",
			"path_set_precision",
			"path_shift",
			"path_start",
			"physics_apply_angular_impulse",
			"physics_apply_force",
			"physics_apply_impulse",
			"physics_apply_local_force",
			"physics_apply_local_impulse",
			"physics_apply_torque",
			"physics_draw_debug",
			"physics_fixture_add_point",
			"physics_fixture_bind",
			"physics_fixture_bind_ext",
			"physics_fixture_create",
			"physics_fixture_delete",
			"physics_fixture_set_angular_damping",
			"physics_fixture_set_awake",
			"physics_fixture_set_box_shape",
			"physics_fixture_set_chain_shape",
			"physics_fixture_set_circle_shape",
			"physics_fixture_set_collision_group",
			"physics_fixture_set_density",
			"physics_fixture_set_edge_shape",
			"physics_fixture_set_friction",
			"physics_fixture_set_kinematic",
			"physics_fixture_set_linear_damping",
			"physics_fixture_set_polygon_shape",
			"physics_fixture_set_restitution",
			"physics_fixture_set_sensor",
			"physics_get_density",
			"physics_get_friction",
			"physics_get_restitution",
			"physics_joint_delete",
			"physics_joint_distance_create",
			"physics_joint_enable_motor",
			"physics_joint_friction_create",
			"physics_joint_gear_create",
			"physics_joint_get_value",
			"physics_joint_prismatic_create",
			"physics_joint_pulley_create",
			"physics_joint_revolute_create",
			"physics_joint_rope_create",
			"physics_joint_set_value",
			"physics_joint_weld_create",
			"physics_joint_wheel_create",
			"physics_mass_properties",
			"physics_particle_count",
			"physics_particle_create",
			"physics_particle_delete",
			"physics_particle_delete_region_box",
			"physics_particle_delete_region_circle",
			"physics_particle_delete_region_poly",
			"physics_particle_draw",
			"physics_particle_draw_ext",
			"physics_particle_get_damping",
			"physics_particle_get_data",
			"physics_particle_get_data_particle",
			"physics_particle_get_density",
			"physics_particle_get_gravity_scale",
			"physics_particle_get_group_flags",
			"physics_particle_get_max_count",
			"physics_particle_get_radius",
			"physics_particle_group_add_point",
			"physics_particle_group_begin",
			"physics_particle_group_box",
			"physics_particle_group_circle",
			"physics_particle_group_count",
			"physics_particle_group_delete",
			"physics_particle_group_end",
			"physics_particle_group_get_ang_vel",
			"physics_particle_group_get_angle",
			"physics_particle_group_get_centre_x",
			"physics_particle_group_get_centre_y",
			"physics_particle_group_get_data",
			"physics_particle_group_get_inertia",
			"physics_particle_group_get_mass",
			"physics_particle_group_get_vel_x",
			"physics_particle_group_get_vel_y",
			"physics_particle_group_get_x",
			"physics_particle_group_get_y",
			"physics_particle_group_join",
			"physics_particle_group_polygon",
			"physics_particle_set_category_flags",
			"physics_particle_set_damping",
			"physics_particle_set_density",
			"physics_particle_set_flags",
			"physics_particle_set_gravity_scale",
			"physics_particle_set_group_flags",
			"physics_particle_set_max_count",
			"physics_particle_set_radius",
			"physics_pause_enable",
			"physics_remove_fixture",
			"physics_set_density",
			"physics_set_friction",
			"physics_set_restitution",
			"physics_test_overlap",
			"physics_world_create",
			"physics_world_draw_debug",
			"physics_world_gravity",
			"physics_world_update_iterations",
			"physics_world_update_speed",
			"place_empty",
			"place_free",
			"place_meeting",
			"place_snapped",
			"point_direction",
			"point_distance",
			"point_distance_3d",
			"point_in_circle",
			"point_in_rectangle",
			"point_in_triangle",
			"position_change",
			"position_destroy",
			"position_empty",
			"position_meeting",
			"power",
			"ptr",
			"radtodeg",
			"random",
			"random_get_seed",
			"random_range",
			"random_set_seed",
			"randomise",
			"randomize",
			"real",
			"rectangle_in_circle",
			"rectangle_in_rectangle",
			"rectangle_in_triangle",
			"ref_create",
			"rollback_chat",
			"rollback_create_game",
			"rollback_define_extra_network_latency",
			"rollback_define_input",
			"rollback_define_input_frame_delay",
			"rollback_define_mock_input",
			"rollback_define_player",
			"rollback_display_events",
			"rollback_get_info",
			"rollback_get_input",
			"rollback_get_player_prefs",
			"rollback_join_game",
			"rollback_leave_game",
			"rollback_set_player_prefs",
			"rollback_start_game",
			"rollback_sync_on_frame",
			"rollback_use_late_join",
			"rollback_use_manual_start",
			"rollback_use_player_prefs",
			"rollback_use_random_input",
			"room_add",
			"room_assign",
			"room_duplicate",
			"room_exists",
			"room_get_camera",
			"room_get_info",
			"room_get_name",
			"room_get_viewport",
			"room_goto",
			"room_goto_next",
			"room_goto_previous",
			"room_instance_add",
			"room_instance_clear",
			"room_next",
			"room_previous",
			"room_restart",
			"room_set_camera",
			"room_set_height",
			"room_set_persistent",
			"room_set_view_enabled",
			"room_set_viewport",
			"room_set_width",
			"round",
			"scheduler_resolution_get",
			"scheduler_resolution_set",
			"screen_save",
			"screen_save_part",
			"script_execute",
			"script_execute_ext",
			"script_exists",
			"script_get_name",
			"sequence_create",
			"sequence_destroy",
			"sequence_exists",
			"sequence_get",
			"sequence_get_objects",
			"sequence_instance_override_object",
			"sequence_keyframe_new",
			"sequence_keyframedata_new",
			"sequence_track_new",
			"sha1_file",
			"sha1_string_unicode",
			"sha1_string_utf8",
			"shader_current",
			"shader_enable_corner_id",
			"shader_get_name",
			"shader_get_sampler_index",
			"shader_get_uniform",
			"shader_is_compiled",
			"shader_reset",
			"shader_set",
			"shader_set_uniform_f",
			"shader_set_uniform_f_array",
			"shader_set_uniform_f_buffer",
			"shader_set_uniform_i",
			"shader_set_uniform_i_array",
			"shader_set_uniform_matrix",
			"shader_set_uniform_matrix_array",
			"shaders_are_supported",
			"shop_leave_rating",
			"show_debug_message",
			"show_debug_message_ext",
			"show_debug_overlay",
			"show_error",
			"show_message",
			"show_message_async",
			"show_question",
			"show_question_async",
			"sign",
			"sin",
			"skeleton_animation_clear",
			"skeleton_animation_get",
			"skeleton_animation_get_duration",
			"skeleton_animation_get_event_frames",
			"skeleton_animation_get_ext",
			"skeleton_animation_get_frame",
			"skeleton_animation_get_frames",
			"skeleton_animation_get_position",
			"skeleton_animation_is_finished",
			"skeleton_animation_is_looping",
			"skeleton_animation_list",
			"skeleton_animation_mix",
			"skeleton_animation_set",
			"skeleton_animation_set_ext",
			"skeleton_animation_set_frame",
			"skeleton_animation_set_position",
			"skeleton_attachment_create",
			"skeleton_attachment_create_color",
			"skeleton_attachment_create_colour",
			"skeleton_attachment_destroy",
			"skeleton_attachment_exists",
			"skeleton_attachment_get",
			"skeleton_attachment_replace",
			"skeleton_attachment_replace_color",
			"skeleton_attachment_replace_colour",
			"skeleton_attachment_set",
			"skeleton_bone_data_get",
			"skeleton_bone_data_set",
			"skeleton_bone_list",
			"skeleton_bone_state_get",
			"skeleton_bone_state_set",
			"skeleton_collision_draw_set",
			"skeleton_find_slot",
			"skeleton_get_bounds",
			"skeleton_get_minmax",
			"skeleton_get_num_bounds",
			"skeleton_skin_create",
			"skeleton_skin_get",
			"skeleton_skin_list",
			"skeleton_skin_set",
			"skeleton_slot_alpha_get",
			"skeleton_slot_color_get",
			"skeleton_slot_color_set",
			"skeleton_slot_colour_get",
			"skeleton_slot_colour_set",
			"skeleton_slot_data",
			"skeleton_slot_data_instance",
			"skeleton_slot_list",
			"sprite_add",
			"sprite_add_ext",
			"sprite_add_from_surface",
			"sprite_assign",
			"sprite_collision_mask",
			"sprite_create_from_surface",
			"sprite_delete",
			"sprite_duplicate",
			"sprite_exists",
			"sprite_flush",
			"sprite_flush_multi",
			"sprite_get_bbox_bottom",
			"sprite_get_bbox_left",
			"sprite_get_bbox_mode",
			"sprite_get_bbox_right",
			"sprite_get_bbox_top",
			"sprite_get_height",
			"sprite_get_info",
			"sprite_get_name",
			"sprite_get_nineslice",
			"sprite_get_number",
			"sprite_get_speed",
			"sprite_get_speed_type",
			"sprite_get_texture",
			"sprite_get_tpe",
			"sprite_get_uvs",
			"sprite_get_width",
			"sprite_get_xoffset",
			"sprite_get_yoffset",
			"sprite_merge",
			"sprite_nineslice_create",
			"sprite_prefetch",
			"sprite_prefetch_multi",
			"sprite_replace",
			"sprite_save",
			"sprite_save_strip",
			"sprite_set_alpha_from_sprite",
			"sprite_set_bbox",
			"sprite_set_bbox_mode",
			"sprite_set_cache_size",
			"sprite_set_cache_size_ext",
			"sprite_set_nineslice",
			"sprite_set_offset",
			"sprite_set_speed",
			"sqr",
			"sqrt",
			"static_get",
			"static_set",
			"string",
			"string_byte_at",
			"string_byte_length",
			"string_char_at",
			"string_concat",
			"string_concat_ext",
			"string_copy",
			"string_count",
			"string_delete",
			"string_digits",
			"string_ends_with",
			"string_ext",
			"string_foreach",
			"string_format",
			"string_hash_to_newline",
			"string_height",
			"string_height_ext",
			"string_insert",
			"string_join",
			"string_join_ext",
			"string_last_pos",
			"string_last_pos_ext",
			"string_length",
			"string_letters",
			"string_lettersdigits",
			"string_lower",
			"string_ord_at",
			"string_pos",
			"string_pos_ext",
			"string_repeat",
			"string_replace",
			"string_replace_all",
			"string_set_byte_at",
			"string_split",
			"string_split_ext",
			"string_starts_with",
			"string_trim",
			"string_trim_end",
			"string_trim_start",
			"string_upper",
			"string_width",
			"string_width_ext",
			"struct_exists",
			"struct_foreach",
			"struct_get",
			"struct_get_from_hash",
			"struct_get_names",
			"struct_names_count",
			"struct_remove",
			"struct_set",
			"struct_set_from_hash",
			"surface_copy",
			"surface_copy_part",
			"surface_create",
			"surface_create_ext",
			"surface_depth_disable",
			"surface_exists",
			"surface_format_is_supported",
			"surface_free",
			"surface_get_depth_disable",
			"surface_get_format",
			"surface_get_height",
			"surface_get_target",
			"surface_get_target_ext",
			"surface_get_texture",
			"surface_get_width",
			"surface_getpixel",
			"surface_getpixel_ext",
			"surface_reset_target",
			"surface_resize",
			"surface_save",
			"surface_save_part",
			"surface_set_target",
			"surface_set_target_ext",
			"tag_get_asset_ids",
			"tag_get_assets",
			"tan",
			"texture_debug_messages",
			"texture_flush",
			"texture_get_height",
			"texture_get_texel_height",
			"texture_get_texel_width",
			"texture_get_uvs",
			"texture_get_width",
			"texture_global_scale",
			"texture_is_ready",
			"texture_prefetch",
			"texture_set_stage",
			"texturegroup_get_fonts",
			"texturegroup_get_names",
			"texturegroup_get_sprites",
			"texturegroup_get_status",
			"texturegroup_get_textures",
			"texturegroup_get_tilesets",
			"texturegroup_load",
			"texturegroup_set_mode",
			"texturegroup_unload",
			"tile_get_empty",
			"tile_get_flip",
			"tile_get_index",
			"tile_get_mirror",
			"tile_get_rotate",
			"tile_set_empty",
			"tile_set_flip",
			"tile_set_index",
			"tile_set_mirror",
			"tile_set_rotate",
			"tilemap_clear",
			"tilemap_get",
			"tilemap_get_at_pixel",
			"tilemap_get_cell_x_at_pixel",
			"tilemap_get_cell_y_at_pixel",
			"tilemap_get_frame",
			"tilemap_get_global_mask",
			"tilemap_get_height",
			"tilemap_get_mask",
			"tilemap_get_tile_height",
			"tilemap_get_tile_width",
			"tilemap_get_tileset",
			"tilemap_get_width",
			"tilemap_get_x",
			"tilemap_get_y",
			"tilemap_set",
			"tilemap_set_at_pixel",
			"tilemap_set_global_mask",
			"tilemap_set_height",
			"tilemap_set_mask",
			"tilemap_set_width",
			"tilemap_tileset",
			"tilemap_x",
			"tilemap_y",
			"tileset_get_info",
			"tileset_get_name",
			"tileset_get_texture",
			"tileset_get_uvs",
			"time_bpm_to_seconds",
			"time_seconds_to_bpm",
			"time_source_create",
			"time_source_destroy",
			"time_source_exists",
			"time_source_get_children",
			"time_source_get_parent",
			"time_source_get_period",
			"time_source_get_reps_completed",
			"time_source_get_reps_remaining",
			"time_source_get_state",
			"time_source_get_time_remaining",
			"time_source_get_units",
			"time_source_pause",
			"time_source_reconfigure",
			"time_source_reset",
			"time_source_resume",
			"time_source_start",
			"time_source_stop",
			"timeline_add",
			"timeline_clear",
			"timeline_delete",
			"timeline_exists",
			"timeline_get_name",
			"timeline_max_moment",
			"timeline_moment_add_script",
			"timeline_moment_clear",
			"timeline_size",
			"typeof",
			"url_get_domain",
			"url_open",
			"url_open_ext",
			"url_open_full",
			"uwp_device_touchscreen_available",
			"uwp_livetile_badge_clear",
			"uwp_livetile_badge_notification",
			"uwp_livetile_notification_begin",
			"uwp_livetile_notification_end",
			"uwp_livetile_notification_expiry",
			"uwp_livetile_notification_image_add",
			"uwp_livetile_notification_secondary_begin",
			"uwp_livetile_notification_tag",
			"uwp_livetile_notification_template_add",
			"uwp_livetile_notification_text_add",
			"uwp_livetile_queue_enable",
			"uwp_livetile_tile_clear",
			"uwp_secondarytile_badge_clear",
			"uwp_secondarytile_badge_notification",
			"uwp_secondarytile_delete",
			"uwp_secondarytile_pin",
			"uwp_secondarytile_tile_clear",
			"variable_clone",
			"variable_get_hash",
			"variable_global_exists",
			"variable_global_get",
			"variable_global_set",
			"variable_instance_exists",
			"variable_instance_get",
			"variable_instance_get_names",
			"variable_instance_names_count",
			"variable_instance_set",
			"variable_struct_exists",
			"variable_struct_get",
			"variable_struct_get_names",
			"variable_struct_names_count",
			"variable_struct_remove",
			"variable_struct_set",
			"vertex_argb",
			"vertex_begin",
			"vertex_color",
			"vertex_colour",
			"vertex_create_buffer",
			"vertex_create_buffer_ext",
			"vertex_create_buffer_from_buffer",
			"vertex_create_buffer_from_buffer_ext",
			"vertex_delete_buffer",
			"vertex_end",
			"vertex_float1",
			"vertex_float2",
			"vertex_float3",
			"vertex_float4",
			"vertex_format_add_color",
			"vertex_format_add_colour",
			"vertex_format_add_custom",
			"vertex_format_add_normal",
			"vertex_format_add_position",
			"vertex_format_add_position_3d",
			"vertex_format_add_texcoord",
			"vertex_format_begin",
			"vertex_format_delete",
			"vertex_format_end",
			"vertex_format_get_info",
			"vertex_freeze",
			"vertex_get_buffer_size",
			"vertex_get_number",
			"vertex_normal",
			"vertex_position",
			"vertex_position_3d",
			"vertex_submit",
			"vertex_submit_ext",
			"vertex_texcoord",
			"vertex_ubyte4",
			"vertex_update_buffer_from_buffer",
			"vertex_update_buffer_from_vertex",
			"video_close",
			"video_draw",
			"video_enable_loop",
			"video_get_duration",
			"video_get_format",
			"video_get_position",
			"video_get_status",
			"video_get_volume",
			"video_is_looping",
			"video_open",
			"video_pause",
			"video_resume",
			"video_seek_to",
			"video_set_volume",
			"view_get_camera",
			"view_get_hport",
			"view_get_surface_id",
			"view_get_visible",
			"view_get_wport",
			"view_get_xport",
			"view_get_yport",
			"view_set_camera",
			"view_set_hport",
			"view_set_surface_id",
			"view_set_visible",
			"view_set_wport",
			"view_set_xport",
			"view_set_yport",
			"virtual_key_add",
			"virtual_key_delete",
			"virtual_key_hide",
			"virtual_key_show",
			"wallpaper_set_config",
			"wallpaper_set_subscriptions",
			"weak_ref_alive",
			"weak_ref_any_alive",
			"weak_ref_create",
			"window_center",
			"window_device",
			"window_enable_borderless_fullscreen",
			"window_get_borderless_fullscreen",
			"window_get_caption",
			"window_get_color",
			"window_get_colour",
			"window_get_cursor",
			"window_get_fullscreen",
			"window_get_height",
			"window_get_showborder",
			"window_get_visible_rects",
			"window_get_width",
			"window_get_x",
			"window_get_y",
			"window_handle",
			"window_has_focus",
			"window_mouse_get_delta_x",
			"window_mouse_get_delta_y",
			"window_mouse_get_locked",
			"window_mouse_get_x",
			"window_mouse_get_y",
			"window_mouse_set",
			"window_mouse_set_locked",
			"window_set_caption",
			"window_set_color",
			"window_set_colour",
			"window_set_cursor",
			"window_set_fullscreen",
			"window_set_max_height",
			"window_set_max_width",
			"window_set_min_height",
			"window_set_min_width",
			"window_set_position",
			"window_set_rectangle",
			"window_set_showborder",
			"window_set_size",
			"window_view_mouse_get_x",
			"window_view_mouse_get_y",
			"window_views_mouse_get_x",
			"window_views_mouse_get_y",
			"winphone_tile_background_color",
			"winphone_tile_background_colour",
			"zip_add_file",
			"zip_create",
			"zip_save",
			"zip_unzip",
			"zip_unzip_async"
		];
		const SYMBOLS = [
			"AudioEffect",
			"AudioEffectType",
			"AudioLFOType",
			"GM_build_date",
			"GM_build_type",
			"GM_is_sandboxed",
			"GM_project_filename",
			"GM_runtime_version",
			"GM_version",
			"NaN",
			"_GMFILE_",
			"_GMFUNCTION_",
			"_GMLINE_",
			"alignmentH",
			"alignmentV",
			"all",
			"animcurvetype_bezier",
			"animcurvetype_catmullrom",
			"animcurvetype_linear",
			"asset_animationcurve",
			"asset_font",
			"asset_object",
			"asset_path",
			"asset_room",
			"asset_script",
			"asset_sequence",
			"asset_shader",
			"asset_sound",
			"asset_sprite",
			"asset_tiles",
			"asset_timeline",
			"asset_unknown",
			"audio_3D",
			"audio_bus_main",
			"audio_falloff_exponent_distance",
			"audio_falloff_exponent_distance_clamped",
			"audio_falloff_exponent_distance_scaled",
			"audio_falloff_inverse_distance",
			"audio_falloff_inverse_distance_clamped",
			"audio_falloff_inverse_distance_scaled",
			"audio_falloff_linear_distance",
			"audio_falloff_linear_distance_clamped",
			"audio_falloff_none",
			"audio_mono",
			"audio_stereo",
			"bboxkind_diamond",
			"bboxkind_ellipse",
			"bboxkind_precise",
			"bboxkind_rectangular",
			"bboxmode_automatic",
			"bboxmode_fullimage",
			"bboxmode_manual",
			"bm_add",
			"bm_dest_alpha",
			"bm_dest_color",
			"bm_dest_colour",
			"bm_inv_dest_alpha",
			"bm_inv_dest_color",
			"bm_inv_dest_colour",
			"bm_inv_src_alpha",
			"bm_inv_src_color",
			"bm_inv_src_colour",
			"bm_max",
			"bm_normal",
			"bm_one",
			"bm_src_alpha",
			"bm_src_alpha_sat",
			"bm_src_color",
			"bm_src_colour",
			"bm_subtract",
			"bm_zero",
			"browser_chrome",
			"browser_edge",
			"browser_firefox",
			"browser_ie",
			"browser_ie_mobile",
			"browser_not_a_browser",
			"browser_opera",
			"browser_safari",
			"browser_safari_mobile",
			"browser_tizen",
			"browser_unknown",
			"browser_windows_store",
			"buffer_bool",
			"buffer_f16",
			"buffer_f32",
			"buffer_f64",
			"buffer_fast",
			"buffer_fixed",
			"buffer_grow",
			"buffer_s16",
			"buffer_s32",
			"buffer_s8",
			"buffer_seek_end",
			"buffer_seek_relative",
			"buffer_seek_start",
			"buffer_string",
			"buffer_text",
			"buffer_u16",
			"buffer_u32",
			"buffer_u64",
			"buffer_u8",
			"buffer_vbuffer",
			"buffer_wrap",
			"c_aqua",
			"c_black",
			"c_blue",
			"c_dkgray",
			"c_dkgrey",
			"c_fuchsia",
			"c_gray",
			"c_green",
			"c_grey",
			"c_lime",
			"c_ltgray",
			"c_ltgrey",
			"c_maroon",
			"c_navy",
			"c_olive",
			"c_orange",
			"c_purple",
			"c_red",
			"c_silver",
			"c_teal",
			"c_white",
			"c_yellow",
			"cache_directory",
			"characterSpacing",
			"cmpfunc_always",
			"cmpfunc_equal",
			"cmpfunc_greater",
			"cmpfunc_greaterequal",
			"cmpfunc_less",
			"cmpfunc_lessequal",
			"cmpfunc_never",
			"cmpfunc_notequal",
			"coreColor",
			"coreColour",
			"cr_appstart",
			"cr_arrow",
			"cr_beam",
			"cr_cross",
			"cr_default",
			"cr_drag",
			"cr_handpoint",
			"cr_hourglass",
			"cr_none",
			"cr_size_all",
			"cr_size_nesw",
			"cr_size_ns",
			"cr_size_nwse",
			"cr_size_we",
			"cr_uparrow",
			"cull_clockwise",
			"cull_counterclockwise",
			"cull_noculling",
			"device_emulator",
			"device_ios_ipad",
			"device_ios_ipad_retina",
			"device_ios_iphone",
			"device_ios_iphone5",
			"device_ios_iphone6",
			"device_ios_iphone6plus",
			"device_ios_iphone_retina",
			"device_ios_unknown",
			"device_tablet",
			"display_landscape",
			"display_landscape_flipped",
			"display_portrait",
			"display_portrait_flipped",
			"dll_cdecl",
			"dll_stdcall",
			"dropShadowEnabled",
			"dropShadowEnabled",
			"ds_type_grid",
			"ds_type_list",
			"ds_type_map",
			"ds_type_priority",
			"ds_type_queue",
			"ds_type_stack",
			"ef_cloud",
			"ef_ellipse",
			"ef_explosion",
			"ef_firework",
			"ef_flare",
			"ef_rain",
			"ef_ring",
			"ef_smoke",
			"ef_smokeup",
			"ef_snow",
			"ef_spark",
			"ef_star",
			"effectsEnabled",
			"effectsEnabled",
			"ev_alarm",
			"ev_animation_end",
			"ev_animation_event",
			"ev_animation_update",
			"ev_async_audio_playback",
			"ev_async_audio_playback_ended",
			"ev_async_audio_recording",
			"ev_async_dialog",
			"ev_async_push_notification",
			"ev_async_save_load",
			"ev_async_save_load",
			"ev_async_social",
			"ev_async_system_event",
			"ev_async_web",
			"ev_async_web_cloud",
			"ev_async_web_iap",
			"ev_async_web_image_load",
			"ev_async_web_networking",
			"ev_async_web_steam",
			"ev_audio_playback",
			"ev_audio_playback_ended",
			"ev_audio_recording",
			"ev_boundary",
			"ev_boundary_view0",
			"ev_boundary_view1",
			"ev_boundary_view2",
			"ev_boundary_view3",
			"ev_boundary_view4",
			"ev_boundary_view5",
			"ev_boundary_view6",
			"ev_boundary_view7",
			"ev_broadcast_message",
			"ev_cleanup",
			"ev_collision",
			"ev_create",
			"ev_destroy",
			"ev_dialog_async",
			"ev_draw",
			"ev_draw_begin",
			"ev_draw_end",
			"ev_draw_normal",
			"ev_draw_post",
			"ev_draw_pre",
			"ev_end_of_path",
			"ev_game_end",
			"ev_game_start",
			"ev_gesture",
			"ev_gesture_double_tap",
			"ev_gesture_drag_end",
			"ev_gesture_drag_start",
			"ev_gesture_dragging",
			"ev_gesture_flick",
			"ev_gesture_pinch_end",
			"ev_gesture_pinch_in",
			"ev_gesture_pinch_out",
			"ev_gesture_pinch_start",
			"ev_gesture_rotate_end",
			"ev_gesture_rotate_start",
			"ev_gesture_rotating",
			"ev_gesture_tap",
			"ev_global_gesture_double_tap",
			"ev_global_gesture_drag_end",
			"ev_global_gesture_drag_start",
			"ev_global_gesture_dragging",
			"ev_global_gesture_flick",
			"ev_global_gesture_pinch_end",
			"ev_global_gesture_pinch_in",
			"ev_global_gesture_pinch_out",
			"ev_global_gesture_pinch_start",
			"ev_global_gesture_rotate_end",
			"ev_global_gesture_rotate_start",
			"ev_global_gesture_rotating",
			"ev_global_gesture_tap",
			"ev_global_left_button",
			"ev_global_left_press",
			"ev_global_left_release",
			"ev_global_middle_button",
			"ev_global_middle_press",
			"ev_global_middle_release",
			"ev_global_right_button",
			"ev_global_right_press",
			"ev_global_right_release",
			"ev_gui",
			"ev_gui_begin",
			"ev_gui_end",
			"ev_joystick1_button1",
			"ev_joystick1_button2",
			"ev_joystick1_button3",
			"ev_joystick1_button4",
			"ev_joystick1_button5",
			"ev_joystick1_button6",
			"ev_joystick1_button7",
			"ev_joystick1_button8",
			"ev_joystick1_down",
			"ev_joystick1_left",
			"ev_joystick1_right",
			"ev_joystick1_up",
			"ev_joystick2_button1",
			"ev_joystick2_button2",
			"ev_joystick2_button3",
			"ev_joystick2_button4",
			"ev_joystick2_button5",
			"ev_joystick2_button6",
			"ev_joystick2_button7",
			"ev_joystick2_button8",
			"ev_joystick2_down",
			"ev_joystick2_left",
			"ev_joystick2_right",
			"ev_joystick2_up",
			"ev_keyboard",
			"ev_keypress",
			"ev_keyrelease",
			"ev_left_button",
			"ev_left_press",
			"ev_left_release",
			"ev_middle_button",
			"ev_middle_press",
			"ev_middle_release",
			"ev_mouse",
			"ev_mouse_enter",
			"ev_mouse_leave",
			"ev_mouse_wheel_down",
			"ev_mouse_wheel_up",
			"ev_no_button",
			"ev_no_more_health",
			"ev_no_more_lives",
			"ev_other",
			"ev_outside",
			"ev_outside_view0",
			"ev_outside_view1",
			"ev_outside_view2",
			"ev_outside_view3",
			"ev_outside_view4",
			"ev_outside_view5",
			"ev_outside_view6",
			"ev_outside_view7",
			"ev_pre_create",
			"ev_push_notification",
			"ev_right_button",
			"ev_right_press",
			"ev_right_release",
			"ev_room_end",
			"ev_room_start",
			"ev_social",
			"ev_step",
			"ev_step_begin",
			"ev_step_end",
			"ev_step_normal",
			"ev_system_event",
			"ev_trigger",
			"ev_user0",
			"ev_user1",
			"ev_user10",
			"ev_user11",
			"ev_user12",
			"ev_user13",
			"ev_user14",
			"ev_user15",
			"ev_user2",
			"ev_user3",
			"ev_user4",
			"ev_user5",
			"ev_user6",
			"ev_user7",
			"ev_user8",
			"ev_user9",
			"ev_web_async",
			"ev_web_cloud",
			"ev_web_iap",
			"ev_web_image_load",
			"ev_web_networking",
			"ev_web_sound_load",
			"ev_web_steam",
			"fa_archive",
			"fa_bottom",
			"fa_center",
			"fa_directory",
			"fa_hidden",
			"fa_left",
			"fa_middle",
			"fa_none",
			"fa_readonly",
			"fa_right",
			"fa_sysfile",
			"fa_top",
			"fa_volumeid",
			"false",
			"frameSizeX",
			"frameSizeY",
			"gamespeed_fps",
			"gamespeed_microseconds",
			"global",
			"glowColor",
			"glowColour",
			"glowEnabled",
			"glowEnabled",
			"glowEnd",
			"glowStart",
			"gp_axis_acceleration_x",
			"gp_axis_acceleration_y",
			"gp_axis_acceleration_z",
			"gp_axis_angular_velocity_x",
			"gp_axis_angular_velocity_y",
			"gp_axis_angular_velocity_z",
			"gp_axis_orientation_w",
			"gp_axis_orientation_x",
			"gp_axis_orientation_y",
			"gp_axis_orientation_z",
			"gp_axislh",
			"gp_axislv",
			"gp_axisrh",
			"gp_axisrv",
			"gp_face1",
			"gp_face2",
			"gp_face3",
			"gp_face4",
			"gp_padd",
			"gp_padl",
			"gp_padr",
			"gp_padu",
			"gp_select",
			"gp_shoulderl",
			"gp_shoulderlb",
			"gp_shoulderr",
			"gp_shoulderrb",
			"gp_start",
			"gp_stickl",
			"gp_stickr",
			"iap_available",
			"iap_canceled",
			"iap_ev_consume",
			"iap_ev_product",
			"iap_ev_purchase",
			"iap_ev_restore",
			"iap_ev_storeload",
			"iap_failed",
			"iap_purchased",
			"iap_refunded",
			"iap_status_available",
			"iap_status_loading",
			"iap_status_processing",
			"iap_status_restoring",
			"iap_status_unavailable",
			"iap_status_uninitialised",
			"iap_storeload_failed",
			"iap_storeload_ok",
			"iap_unavailable",
			"infinity",
			"kbv_autocapitalize_characters",
			"kbv_autocapitalize_none",
			"kbv_autocapitalize_sentences",
			"kbv_autocapitalize_words",
			"kbv_returnkey_continue",
			"kbv_returnkey_default",
			"kbv_returnkey_done",
			"kbv_returnkey_emergency",
			"kbv_returnkey_go",
			"kbv_returnkey_google",
			"kbv_returnkey_join",
			"kbv_returnkey_next",
			"kbv_returnkey_route",
			"kbv_returnkey_search",
			"kbv_returnkey_send",
			"kbv_returnkey_yahoo",
			"kbv_type_ascii",
			"kbv_type_default",
			"kbv_type_email",
			"kbv_type_numbers",
			"kbv_type_phone",
			"kbv_type_phone_name",
			"kbv_type_url",
			"layerelementtype_background",
			"layerelementtype_instance",
			"layerelementtype_oldtilemap",
			"layerelementtype_particlesystem",
			"layerelementtype_sequence",
			"layerelementtype_sprite",
			"layerelementtype_tile",
			"layerelementtype_tilemap",
			"layerelementtype_undefined",
			"leaderboard_type_number",
			"leaderboard_type_time_mins_secs",
			"lighttype_dir",
			"lighttype_point",
			"lineSpacing",
			"m_axisx",
			"m_axisx_gui",
			"m_axisy",
			"m_axisy_gui",
			"m_scroll_down",
			"m_scroll_up",
			"matrix_projection",
			"matrix_view",
			"matrix_world",
			"mb_any",
			"mb_left",
			"mb_middle",
			"mb_none",
			"mb_right",
			"mb_side1",
			"mb_side2",
			"mip_markedonly",
			"mip_off",
			"mip_on",
			"network_config_avoid_time_wait",
			"network_config_connect_timeout",
			"network_config_disable_multicast",
			"network_config_disable_reliable_udp",
			"network_config_enable_multicast",
			"network_config_enable_reliable_udp",
			"network_config_use_non_blocking_socket",
			"network_config_websocket_protocol",
			"network_connect_active",
			"network_connect_blocking",
			"network_connect_nonblocking",
			"network_connect_none",
			"network_connect_passive",
			"network_send_binary",
			"network_send_text",
			"network_socket_bluetooth",
			"network_socket_tcp",
			"network_socket_udp",
			"network_socket_ws",
			"network_socket_wss",
			"network_type_connect",
			"network_type_data",
			"network_type_disconnect",
			"network_type_down",
			"network_type_non_blocking_connect",
			"network_type_up",
			"network_type_up_failed",
			"nineslice_blank",
			"nineslice_bottom",
			"nineslice_center",
			"nineslice_centre",
			"nineslice_hide",
			"nineslice_left",
			"nineslice_mirror",
			"nineslice_repeat",
			"nineslice_right",
			"nineslice_stretch",
			"nineslice_top",
			"noone",
			"of_challenge_lose",
			"of_challenge_tie",
			"of_challenge_win",
			"os_android",
			"os_gdk",
			"os_gxgames",
			"os_ios",
			"os_linux",
			"os_macosx",
			"os_operagx",
			"os_permission_denied",
			"os_permission_denied_dont_request",
			"os_permission_granted",
			"os_ps3",
			"os_ps4",
			"os_ps5",
			"os_psvita",
			"os_switch",
			"os_tvos",
			"os_unknown",
			"os_uwp",
			"os_win8native",
			"os_windows",
			"os_winphone",
			"os_xboxone",
			"os_xboxseriesxs",
			"other",
			"outlineColor",
			"outlineColour",
			"outlineDist",
			"outlineEnabled",
			"outlineEnabled",
			"paragraphSpacing",
			"path_action_continue",
			"path_action_restart",
			"path_action_reverse",
			"path_action_stop",
			"phy_debug_render_aabb",
			"phy_debug_render_collision_pairs",
			"phy_debug_render_coms",
			"phy_debug_render_core_shapes",
			"phy_debug_render_joints",
			"phy_debug_render_obb",
			"phy_debug_render_shapes",
			"phy_joint_anchor_1_x",
			"phy_joint_anchor_1_y",
			"phy_joint_anchor_2_x",
			"phy_joint_anchor_2_y",
			"phy_joint_angle",
			"phy_joint_angle_limits",
			"phy_joint_damping_ratio",
			"phy_joint_frequency",
			"phy_joint_length_1",
			"phy_joint_length_2",
			"phy_joint_lower_angle_limit",
			"phy_joint_max_force",
			"phy_joint_max_length",
			"phy_joint_max_motor_force",
			"phy_joint_max_motor_torque",
			"phy_joint_max_torque",
			"phy_joint_motor_force",
			"phy_joint_motor_speed",
			"phy_joint_motor_torque",
			"phy_joint_reaction_force_x",
			"phy_joint_reaction_force_y",
			"phy_joint_reaction_torque",
			"phy_joint_speed",
			"phy_joint_translation",
			"phy_joint_upper_angle_limit",
			"phy_particle_data_flag_category",
			"phy_particle_data_flag_color",
			"phy_particle_data_flag_colour",
			"phy_particle_data_flag_position",
			"phy_particle_data_flag_typeflags",
			"phy_particle_data_flag_velocity",
			"phy_particle_flag_colormixing",
			"phy_particle_flag_colourmixing",
			"phy_particle_flag_elastic",
			"phy_particle_flag_powder",
			"phy_particle_flag_spring",
			"phy_particle_flag_tensile",
			"phy_particle_flag_viscous",
			"phy_particle_flag_wall",
			"phy_particle_flag_water",
			"phy_particle_flag_zombie",
			"phy_particle_group_flag_rigid",
			"phy_particle_group_flag_solid",
			"pi",
			"pointer_invalid",
			"pointer_null",
			"pr_linelist",
			"pr_linestrip",
			"pr_pointlist",
			"pr_trianglefan",
			"pr_trianglelist",
			"pr_trianglestrip",
			"ps_distr_gaussian",
			"ps_distr_invgaussian",
			"ps_distr_linear",
			"ps_mode_burst",
			"ps_mode_stream",
			"ps_shape_diamond",
			"ps_shape_ellipse",
			"ps_shape_line",
			"ps_shape_rectangle",
			"pt_shape_circle",
			"pt_shape_cloud",
			"pt_shape_disk",
			"pt_shape_explosion",
			"pt_shape_flare",
			"pt_shape_line",
			"pt_shape_pixel",
			"pt_shape_ring",
			"pt_shape_smoke",
			"pt_shape_snow",
			"pt_shape_spark",
			"pt_shape_sphere",
			"pt_shape_square",
			"pt_shape_star",
			"rollback_chat_message",
			"rollback_connect_error",
			"rollback_connect_info",
			"rollback_connected_to_peer",
			"rollback_connection_rejected",
			"rollback_disconnected_from_peer",
			"rollback_end_game",
			"rollback_game_full",
			"rollback_game_info",
			"rollback_game_interrupted",
			"rollback_game_resumed",
			"rollback_high_latency",
			"rollback_player_prefs",
			"rollback_protocol_rejected",
			"rollback_synchronized_with_peer",
			"rollback_synchronizing_with_peer",
			"self",
			"seqaudiokey_loop",
			"seqaudiokey_oneshot",
			"seqdir_left",
			"seqdir_right",
			"seqinterpolation_assign",
			"seqinterpolation_lerp",
			"seqplay_loop",
			"seqplay_oneshot",
			"seqplay_pingpong",
			"seqtextkey_bottom",
			"seqtextkey_center",
			"seqtextkey_justify",
			"seqtextkey_left",
			"seqtextkey_middle",
			"seqtextkey_right",
			"seqtextkey_top",
			"seqtracktype_audio",
			"seqtracktype_bool",
			"seqtracktype_clipmask",
			"seqtracktype_clipmask_mask",
			"seqtracktype_clipmask_subject",
			"seqtracktype_color",
			"seqtracktype_colour",
			"seqtracktype_empty",
			"seqtracktype_graphic",
			"seqtracktype_group",
			"seqtracktype_instance",
			"seqtracktype_message",
			"seqtracktype_moment",
			"seqtracktype_particlesystem",
			"seqtracktype_real",
			"seqtracktype_sequence",
			"seqtracktype_spriteframes",
			"seqtracktype_string",
			"seqtracktype_text",
			"shadowColor",
			"shadowColour",
			"shadowOffsetX",
			"shadowOffsetY",
			"shadowSoftness",
			"sprite_add_ext_error_cancelled",
			"sprite_add_ext_error_decompressfailed",
			"sprite_add_ext_error_loadfailed",
			"sprite_add_ext_error_setupfailed",
			"sprite_add_ext_error_spritenotfound",
			"sprite_add_ext_error_unknown",
			"spritespeed_framespergameframe",
			"spritespeed_framespersecond",
			"surface_r16float",
			"surface_r32float",
			"surface_r8unorm",
			"surface_rg8unorm",
			"surface_rgba16float",
			"surface_rgba32float",
			"surface_rgba4unorm",
			"surface_rgba8unorm",
			"texturegroup_status_fetched",
			"texturegroup_status_loaded",
			"texturegroup_status_loading",
			"texturegroup_status_unloaded",
			"tf_anisotropic",
			"tf_linear",
			"tf_point",
			"thickness",
			"tile_flip",
			"tile_index_mask",
			"tile_mirror",
			"tile_rotate",
			"time_source_expire_after",
			"time_source_expire_nearest",
			"time_source_game",
			"time_source_global",
			"time_source_state_active",
			"time_source_state_initial",
			"time_source_state_paused",
			"time_source_state_stopped",
			"time_source_units_frames",
			"time_source_units_seconds",
			"timezone_local",
			"timezone_utc",
			"tm_countvsyncs",
			"tm_sleep",
			"tm_systemtiming",
			"true",
			"ty_real",
			"ty_string",
			"undefined",
			"vertex_type_color",
			"vertex_type_colour",
			"vertex_type_float1",
			"vertex_type_float2",
			"vertex_type_float3",
			"vertex_type_float4",
			"vertex_type_ubyte4",
			"vertex_usage_binormal",
			"vertex_usage_blendindices",
			"vertex_usage_blendweight",
			"vertex_usage_color",
			"vertex_usage_colour",
			"vertex_usage_depth",
			"vertex_usage_fog",
			"vertex_usage_normal",
			"vertex_usage_position",
			"vertex_usage_psize",
			"vertex_usage_sample",
			"vertex_usage_tangent",
			"vertex_usage_texcoord",
			"video_format_rgba",
			"video_format_yuv",
			"video_status_closed",
			"video_status_paused",
			"video_status_playing",
			"video_status_preparing",
			"vk_add",
			"vk_alt",
			"vk_anykey",
			"vk_backspace",
			"vk_control",
			"vk_decimal",
			"vk_delete",
			"vk_divide",
			"vk_down",
			"vk_end",
			"vk_enter",
			"vk_escape",
			"vk_f1",
			"vk_f10",
			"vk_f11",
			"vk_f12",
			"vk_f2",
			"vk_f3",
			"vk_f4",
			"vk_f5",
			"vk_f6",
			"vk_f7",
			"vk_f8",
			"vk_f9",
			"vk_home",
			"vk_insert",
			"vk_lalt",
			"vk_lcontrol",
			"vk_left",
			"vk_lshift",
			"vk_multiply",
			"vk_nokey",
			"vk_numpad0",
			"vk_numpad1",
			"vk_numpad2",
			"vk_numpad3",
			"vk_numpad4",
			"vk_numpad5",
			"vk_numpad6",
			"vk_numpad7",
			"vk_numpad8",
			"vk_numpad9",
			"vk_pagedown",
			"vk_pageup",
			"vk_pause",
			"vk_printscreen",
			"vk_ralt",
			"vk_rcontrol",
			"vk_return",
			"vk_right",
			"vk_rshift",
			"vk_shift",
			"vk_space",
			"vk_subtract",
			"vk_tab",
			"vk_up",
			"wallpaper_config",
			"wallpaper_subscription_data",
			"wrap"
		];
		const LANGUAGE_VARIABLES = [
			"alarm",
			"application_surface",
			"argument",
			"argument0",
			"argument1",
			"argument2",
			"argument3",
			"argument4",
			"argument5",
			"argument6",
			"argument7",
			"argument8",
			"argument9",
			"argument10",
			"argument11",
			"argument12",
			"argument13",
			"argument14",
			"argument15",
			"argument_count",
			"async_load",
			"background_color",
			"background_colour",
			"background_showcolor",
			"background_showcolour",
			"bbox_bottom",
			"bbox_left",
			"bbox_right",
			"bbox_top",
			"browser_height",
			"browser_width",
			"colour?ColourTrack",
			"current_day",
			"current_hour",
			"current_minute",
			"current_month",
			"current_second",
			"current_time",
			"current_weekday",
			"current_year",
			"cursor_sprite",
			"debug_mode",
			"delta_time",
			"depth",
			"direction",
			"display_aa",
			"drawn_by_sequence",
			"event_action",
			"event_data",
			"event_number",
			"event_object",
			"event_type",
			"font_texture_page_size",
			"fps",
			"fps_real",
			"friction",
			"game_display_name",
			"game_id",
			"game_project_name",
			"game_save_id",
			"gravity",
			"gravity_direction",
			"health",
			"hspeed",
			"iap_data",
			"id",
			"image_alpha",
			"image_angle",
			"image_blend",
			"image_index",
			"image_number",
			"image_speed",
			"image_xscale",
			"image_yscale",
			"in_collision_tree",
			"in_sequence",
			"instance_count",
			"instance_id",
			"keyboard_key",
			"keyboard_lastchar",
			"keyboard_lastkey",
			"keyboard_string",
			"layer",
			"lives",
			"longMessage",
			"managed",
			"mask_index",
			"message",
			"mouse_button",
			"mouse_lastbutton",
			"mouse_x",
			"mouse_y",
			"object_index",
			"os_browser",
			"os_device",
			"os_type",
			"os_version",
			"path_endaction",
			"path_index",
			"path_orientation",
			"path_position",
			"path_positionprevious",
			"path_scale",
			"path_speed",
			"persistent",
			"phy_active",
			"phy_angular_damping",
			"phy_angular_velocity",
			"phy_bullet",
			"phy_col_normal_x",
			"phy_col_normal_y",
			"phy_collision_points",
			"phy_collision_x",
			"phy_collision_y",
			"phy_com_x",
			"phy_com_y",
			"phy_dynamic",
			"phy_fixed_rotation",
			"phy_inertia",
			"phy_kinematic",
			"phy_linear_damping",
			"phy_linear_velocity_x",
			"phy_linear_velocity_y",
			"phy_mass",
			"phy_position_x",
			"phy_position_xprevious",
			"phy_position_y",
			"phy_position_yprevious",
			"phy_rotation",
			"phy_sleeping",
			"phy_speed",
			"phy_speed_x",
			"phy_speed_y",
			"player_avatar_sprite",
			"player_avatar_url",
			"player_id",
			"player_local",
			"player_type",
			"player_user_id",
			"program_directory",
			"rollback_api_server",
			"rollback_confirmed_frame",
			"rollback_current_frame",
			"rollback_event_id",
			"rollback_event_param",
			"rollback_game_running",
			"room",
			"room_first",
			"room_height",
			"room_last",
			"room_persistent",
			"room_speed",
			"room_width",
			"score",
			"script",
			"sequence_instance",
			"solid",
			"speed",
			"sprite_height",
			"sprite_index",
			"sprite_width",
			"sprite_xoffset",
			"sprite_yoffset",
			"stacktrace",
			"temp_directory",
			"timeline_index",
			"timeline_loop",
			"timeline_position",
			"timeline_running",
			"timeline_speed",
			"view_camera",
			"view_current",
			"view_enabled",
			"view_hport",
			"view_surface_id",
			"view_visible",
			"view_wport",
			"view_xport",
			"view_yport",
			"visible",
			"vspeed",
			"webgl_enabled",
			"working_directory",
			"x",
			"xprevious",
			"xstart",
			"y",
			"yprevious",
			"ystart"
		];
		return {
			name: "GML",
			case_insensitive: false,
			keywords: {
				keyword: KEYWORDS$6,
				built_in: BUILT_INS$6,
				symbol: SYMBOLS,
				"variable.language": LANGUAGE_VARIABLES
			},
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.C_NUMBER_MODE
			]
		};
	}
	module.exports = gml;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/go.js
var require_go = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function go(hljs$1) {
		const LITERALS$6 = [
			"true",
			"false",
			"iota",
			"nil"
		];
		const BUILT_INS$6 = [
			"append",
			"cap",
			"close",
			"complex",
			"copy",
			"imag",
			"len",
			"make",
			"new",
			"panic",
			"print",
			"println",
			"real",
			"recover",
			"delete"
		];
		const TYPES$6 = [
			"bool",
			"byte",
			"complex64",
			"complex128",
			"error",
			"float32",
			"float64",
			"int8",
			"int16",
			"int32",
			"int64",
			"string",
			"uint8",
			"uint16",
			"uint32",
			"uint64",
			"int",
			"uint",
			"uintptr",
			"rune"
		];
		const KWS = [
			"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"
		];
		const KEYWORDS$6 = {
			keyword: KWS,
			type: TYPES$6,
			literal: LITERALS$6,
			built_in: BUILT_INS$6
		};
		return {
			name: "Go",
			aliases: ["golang"],
			keywords: KEYWORDS$6,
			illegal: "</",
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				{
					className: "string",
					variants: [
						hljs$1.QUOTE_STRING_MODE,
						hljs$1.APOS_STRING_MODE,
						{
							begin: "`",
							end: "`"
						}
					]
				},
				{
					className: "number",
					variants: [
						{
							match: /-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,
							relevance: 0
						},
						{
							match: /-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,
							relevance: 0
						},
						{
							match: /-?\b0[oO](_?[0-7])*i?/,
							relevance: 0
						},
						{
							match: /-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,
							relevance: 0
						},
						{
							match: /-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,
							relevance: 0
						}
					]
				},
				{ begin: /:=/ },
				{
					className: "function",
					beginKeywords: "func",
					end: "\\s*(\\{|$)",
					excludeEnd: true,
					contains: [hljs$1.TITLE_MODE, {
						className: "params",
						begin: /\(/,
						end: /\)/,
						endsParent: true,
						keywords: KEYWORDS$6,
						illegal: /["']/
					}]
				}
			]
		};
	}
	module.exports = go;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/golo.js
var require_golo = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function golo(hljs$1) {
		const KEYWORDS$6 = [
			"println",
			"readln",
			"print",
			"import",
			"module",
			"function",
			"local",
			"return",
			"let",
			"var",
			"while",
			"for",
			"foreach",
			"times",
			"in",
			"case",
			"when",
			"match",
			"with",
			"break",
			"continue",
			"augment",
			"augmentation",
			"each",
			"find",
			"filter",
			"reduce",
			"if",
			"then",
			"else",
			"otherwise",
			"try",
			"catch",
			"finally",
			"raise",
			"throw",
			"orIfNull",
			"DynamicObject|10",
			"DynamicVariable",
			"struct",
			"Observable",
			"map",
			"set",
			"vector",
			"list",
			"array"
		];
		return {
			name: "Golo",
			keywords: {
				keyword: KEYWORDS$6,
				literal: [
					"true",
					"false",
					"null"
				]
			},
			contains: [
				hljs$1.HASH_COMMENT_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.C_NUMBER_MODE,
				{
					className: "meta",
					begin: "@[A-Za-z]+"
				}
			]
		};
	}
	module.exports = golo;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/gradle.js
var require_gradle = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function gradle(hljs$1) {
		const KEYWORDS$6 = [
			"task",
			"project",
			"allprojects",
			"subprojects",
			"artifacts",
			"buildscript",
			"configurations",
			"dependencies",
			"repositories",
			"sourceSets",
			"description",
			"delete",
			"from",
			"into",
			"include",
			"exclude",
			"source",
			"classpath",
			"destinationDir",
			"includes",
			"options",
			"sourceCompatibility",
			"targetCompatibility",
			"group",
			"flatDir",
			"doLast",
			"doFirst",
			"flatten",
			"todir",
			"fromdir",
			"ant",
			"def",
			"abstract",
			"break",
			"case",
			"catch",
			"continue",
			"default",
			"do",
			"else",
			"extends",
			"final",
			"finally",
			"for",
			"if",
			"implements",
			"instanceof",
			"native",
			"new",
			"private",
			"protected",
			"public",
			"return",
			"static",
			"switch",
			"synchronized",
			"throw",
			"throws",
			"transient",
			"try",
			"volatile",
			"while",
			"strictfp",
			"package",
			"import",
			"false",
			"null",
			"super",
			"this",
			"true",
			"antlrtask",
			"checkstyle",
			"codenarc",
			"copy",
			"boolean",
			"byte",
			"char",
			"class",
			"double",
			"float",
			"int",
			"interface",
			"long",
			"short",
			"void",
			"compile",
			"runTime",
			"file",
			"fileTree",
			"abs",
			"any",
			"append",
			"asList",
			"asWritable",
			"call",
			"collect",
			"compareTo",
			"count",
			"div",
			"dump",
			"each",
			"eachByte",
			"eachFile",
			"eachLine",
			"every",
			"find",
			"findAll",
			"flatten",
			"getAt",
			"getErr",
			"getIn",
			"getOut",
			"getText",
			"grep",
			"immutable",
			"inject",
			"inspect",
			"intersect",
			"invokeMethods",
			"isCase",
			"join",
			"leftShift",
			"minus",
			"multiply",
			"newInputStream",
			"newOutputStream",
			"newPrintWriter",
			"newReader",
			"newWriter",
			"next",
			"plus",
			"pop",
			"power",
			"previous",
			"print",
			"println",
			"push",
			"putAt",
			"read",
			"readBytes",
			"readLines",
			"reverse",
			"reverseEach",
			"round",
			"size",
			"sort",
			"splitEachLine",
			"step",
			"subMap",
			"times",
			"toInteger",
			"toList",
			"tokenize",
			"upto",
			"waitForOrKill",
			"withPrintWriter",
			"withReader",
			"withStream",
			"withWriter",
			"withWriterAppend",
			"write",
			"writeLine"
		];
		return {
			name: "Gradle",
			case_insensitive: true,
			keywords: KEYWORDS$6,
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.NUMBER_MODE,
				hljs$1.REGEXP_MODE
			]
		};
	}
	module.exports = gradle;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/graphql.js
var require_graphql = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function graphql(hljs$1) {
		const regex = hljs$1.regex;
		const GQL_NAME = /[_A-Za-z][_0-9A-Za-z]*/;
		return {
			name: "GraphQL",
			aliases: ["gql"],
			case_insensitive: true,
			disableAutodetect: false,
			keywords: {
				keyword: [
					"query",
					"mutation",
					"subscription",
					"type",
					"input",
					"schema",
					"directive",
					"interface",
					"union",
					"scalar",
					"fragment",
					"enum",
					"on"
				],
				literal: [
					"true",
					"false",
					"null"
				]
			},
			contains: [
				hljs$1.HASH_COMMENT_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.NUMBER_MODE,
				{
					scope: "punctuation",
					match: /[.]{3}/,
					relevance: 0
				},
				{
					scope: "punctuation",
					begin: /[\!\(\)\:\=\[\]\{\|\}]{1}/,
					relevance: 0
				},
				{
					scope: "variable",
					begin: /\$/,
					end: /\W/,
					excludeEnd: true,
					relevance: 0
				},
				{
					scope: "meta",
					match: /@\w+/,
					excludeEnd: true
				},
				{
					scope: "symbol",
					begin: regex.concat(GQL_NAME, regex.lookahead(/\s*:/)),
					relevance: 0
				}
			],
			illegal: [/[;<']/, /BEGIN/]
		};
	}
	module.exports = graphql;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/groovy.js
var require_groovy = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function variants(variants$1, obj = {}) {
		obj.variants = variants$1;
		return obj;
	}
	function groovy(hljs$1) {
		const regex = hljs$1.regex;
		const IDENT_RE$6 = "[A-Za-z0-9_$]+";
		const COMMENT$2 = variants([
			hljs$1.C_LINE_COMMENT_MODE,
			hljs$1.C_BLOCK_COMMENT_MODE,
			hljs$1.COMMENT("/\\*\\*", "\\*/", {
				relevance: 0,
				contains: [{
					begin: /\w+@/,
					relevance: 0
				}, {
					className: "doctag",
					begin: "@[A-Za-z]+"
				}]
			})
		]);
		const REGEXP = {
			className: "regexp",
			begin: /~?\/[^\/\n]+\//,
			contains: [hljs$1.BACKSLASH_ESCAPE]
		};
		const NUMBER = variants([hljs$1.BINARY_NUMBER_MODE, hljs$1.C_NUMBER_MODE]);
		const STRING = variants([
			{
				begin: /"""/,
				end: /"""/
			},
			{
				begin: /'''/,
				end: /'''/
			},
			{
				begin: "\\$/",
				end: "/\\$",
				relevance: 10
			},
			hljs$1.APOS_STRING_MODE,
			hljs$1.QUOTE_STRING_MODE
		], { className: "string" });
		const CLASS_DEFINITION = {
			match: [
				/(class|interface|trait|enum|record|extends|implements)/,
				/\s+/,
				hljs$1.UNDERSCORE_IDENT_RE
			],
			scope: {
				1: "keyword",
				3: "title.class"
			}
		};
		const TYPES$6 = [
			"byte",
			"short",
			"char",
			"int",
			"long",
			"boolean",
			"float",
			"double",
			"void"
		];
		const KEYWORDS$6 = [
			"def",
			"as",
			"in",
			"assert",
			"trait",
			"abstract",
			"static",
			"volatile",
			"transient",
			"public",
			"private",
			"protected",
			"synchronized",
			"final",
			"class",
			"interface",
			"enum",
			"if",
			"else",
			"for",
			"while",
			"switch",
			"case",
			"break",
			"default",
			"continue",
			"throw",
			"throws",
			"try",
			"catch",
			"finally",
			"implements",
			"extends",
			"new",
			"import",
			"package",
			"return",
			"instanceof",
			"var"
		];
		return {
			name: "Groovy",
			keywords: {
				"variable.language": "this super",
				literal: "true false null",
				type: TYPES$6,
				keyword: KEYWORDS$6
			},
			contains: [
				hljs$1.SHEBANG({
					binary: "groovy",
					relevance: 10
				}),
				COMMENT$2,
				STRING,
				REGEXP,
				NUMBER,
				CLASS_DEFINITION,
				{
					className: "meta",
					begin: "@[A-Za-z]+",
					relevance: 0
				},
				{
					className: "attr",
					begin: IDENT_RE$6 + "[ 	]*:",
					relevance: 0
				},
				{
					begin: /\?/,
					end: /:/,
					relevance: 0,
					contains: [
						COMMENT$2,
						STRING,
						REGEXP,
						NUMBER,
						"self"
					]
				},
				{
					className: "symbol",
					begin: "^[ 	]*" + regex.lookahead(IDENT_RE$6 + ":"),
					excludeBegin: true,
					end: IDENT_RE$6 + ":",
					relevance: 0
				}
			],
			illegal: /#|<\//
		};
	}
	module.exports = groovy;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/haml.js
var require_haml = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function haml(hljs$1) {
		return {
			name: "HAML",
			case_insensitive: true,
			contains: [
				{
					className: "meta",
					begin: "^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",
					relevance: 10
				},
				hljs$1.COMMENT("^\\s*(!=#|=#|-#|/).*$", null, { relevance: 0 }),
				{
					begin: "^\\s*(-|=|!=)(?!#)",
					end: /$/,
					subLanguage: "ruby",
					excludeBegin: true,
					excludeEnd: true
				},
				{
					className: "tag",
					begin: "^\\s*%",
					contains: [
						{
							className: "selector-tag",
							begin: "\\w+"
						},
						{
							className: "selector-id",
							begin: "#[\\w-]+"
						},
						{
							className: "selector-class",
							begin: "\\.[\\w-]+"
						},
						{
							begin: /\{\s*/,
							end: /\s*\}/,
							contains: [{
								begin: ":\\w+\\s*=>",
								end: ",\\s+",
								returnBegin: true,
								endsWithParent: true,
								contains: [
									{
										className: "attr",
										begin: ":\\w+"
									},
									hljs$1.APOS_STRING_MODE,
									hljs$1.QUOTE_STRING_MODE,
									{
										begin: "\\w+",
										relevance: 0
									}
								]
							}]
						},
						{
							begin: "\\(\\s*",
							end: "\\s*\\)",
							excludeEnd: true,
							contains: [{
								begin: "\\w+\\s*=",
								end: "\\s+",
								returnBegin: true,
								endsWithParent: true,
								contains: [
									{
										className: "attr",
										begin: "\\w+",
										relevance: 0
									},
									hljs$1.APOS_STRING_MODE,
									hljs$1.QUOTE_STRING_MODE,
									{
										begin: "\\w+",
										relevance: 0
									}
								]
							}]
						}
					]
				},
				{ begin: "^\\s*[=~]\\s*" },
				{
					begin: /#\{/,
					end: /\}/,
					subLanguage: "ruby",
					excludeBegin: true,
					excludeEnd: true
				}
			]
		};
	}
	module.exports = haml;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/handlebars.js
var require_handlebars = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function handlebars(hljs$1) {
		const regex = hljs$1.regex;
		const BUILT_INS$6 = {
			$pattern: /[\w.\/]+/,
			built_in: [
				"action",
				"bindattr",
				"collection",
				"component",
				"concat",
				"debugger",
				"each",
				"each-in",
				"get",
				"hash",
				"if",
				"in",
				"input",
				"link-to",
				"loc",
				"log",
				"lookup",
				"mut",
				"outlet",
				"partial",
				"query-params",
				"render",
				"template",
				"textarea",
				"unbound",
				"unless",
				"view",
				"with",
				"yield"
			]
		};
		const LITERALS$6 = {
			$pattern: /[\w.\/]+/,
			literal: [
				"true",
				"false",
				"undefined",
				"null"
			]
		};
		const DOUBLE_QUOTED_ID_REGEX = /""|"[^"]+"/;
		const SINGLE_QUOTED_ID_REGEX = /''|'[^']+'/;
		const BRACKET_QUOTED_ID_REGEX = /\[\]|\[[^\]]+\]/;
		const PLAIN_ID_REGEX = /[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/;
		const PATH_DELIMITER_REGEX = /(\.|\/)/;
		const ANY_ID = regex.either(DOUBLE_QUOTED_ID_REGEX, SINGLE_QUOTED_ID_REGEX, BRACKET_QUOTED_ID_REGEX, PLAIN_ID_REGEX);
		const IDENTIFIER_REGEX = regex.concat(regex.optional(/\.|\.\/|\//), ANY_ID, regex.anyNumberOfTimes(regex.concat(PATH_DELIMITER_REGEX, ANY_ID)));
		const HASH_PARAM_REGEX = regex.concat("(", BRACKET_QUOTED_ID_REGEX, "|", PLAIN_ID_REGEX, ")(?==)");
		const HELPER_NAME_OR_PATH_EXPRESSION = { begin: IDENTIFIER_REGEX };
		const HELPER_PARAMETER = hljs$1.inherit(HELPER_NAME_OR_PATH_EXPRESSION, { keywords: LITERALS$6 });
		const SUB_EXPRESSION = {
			begin: /\(/,
			end: /\)/
		};
		const HASH = {
			className: "attr",
			begin: HASH_PARAM_REGEX,
			relevance: 0,
			starts: {
				begin: /=/,
				end: /=/,
				starts: { contains: [
					hljs$1.NUMBER_MODE,
					hljs$1.QUOTE_STRING_MODE,
					hljs$1.APOS_STRING_MODE,
					HELPER_PARAMETER,
					SUB_EXPRESSION
				] }
			}
		};
		const BLOCK_PARAMS = {
			begin: /as\s+\|/,
			keywords: { keyword: "as" },
			end: /\|/,
			contains: [{ begin: /\w+/ }]
		};
		const HELPER_PARAMETERS = {
			contains: [
				hljs$1.NUMBER_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.APOS_STRING_MODE,
				BLOCK_PARAMS,
				HASH,
				HELPER_PARAMETER,
				SUB_EXPRESSION
			],
			returnEnd: true
		};
		const SUB_EXPRESSION_CONTENTS = hljs$1.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {
			className: "name",
			keywords: BUILT_INS$6,
			starts: hljs$1.inherit(HELPER_PARAMETERS, { end: /\)/ })
		});
		SUB_EXPRESSION.contains = [SUB_EXPRESSION_CONTENTS];
		const OPENING_BLOCK_MUSTACHE_CONTENTS = hljs$1.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {
			keywords: BUILT_INS$6,
			className: "name",
			starts: hljs$1.inherit(HELPER_PARAMETERS, { end: /\}\}/ })
		});
		const CLOSING_BLOCK_MUSTACHE_CONTENTS = hljs$1.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {
			keywords: BUILT_INS$6,
			className: "name"
		});
		const BASIC_MUSTACHE_CONTENTS = hljs$1.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {
			className: "name",
			keywords: BUILT_INS$6,
			starts: hljs$1.inherit(HELPER_PARAMETERS, { end: /\}\}/ })
		});
		const ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH = {
			begin: /\\\{\{/,
			skip: true
		};
		const PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH = {
			begin: /\\\\(?=\{\{)/,
			skip: true
		};
		return {
			name: "Handlebars",
			aliases: [
				"hbs",
				"html.hbs",
				"html.handlebars",
				"htmlbars"
			],
			case_insensitive: true,
			subLanguage: "xml",
			contains: [
				ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH,
				PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH,
				hljs$1.COMMENT(/\{\{!--/, /--\}\}/),
				hljs$1.COMMENT(/\{\{!/, /\}\}/),
				{
					className: "template-tag",
					begin: /\{\{\{\{(?!\/)/,
					end: /\}\}\}\}/,
					contains: [OPENING_BLOCK_MUSTACHE_CONTENTS],
					starts: {
						end: /\{\{\{\{\//,
						returnEnd: true,
						subLanguage: "xml"
					}
				},
				{
					className: "template-tag",
					begin: /\{\{\{\{\//,
					end: /\}\}\}\}/,
					contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS]
				},
				{
					className: "template-tag",
					begin: /\{\{#/,
					end: /\}\}/,
					contains: [OPENING_BLOCK_MUSTACHE_CONTENTS]
				},
				{
					className: "template-tag",
					begin: /\{\{(?=else\}\})/,
					end: /\}\}/,
					keywords: "else"
				},
				{
					className: "template-tag",
					begin: /\{\{(?=else if)/,
					end: /\}\}/,
					keywords: "else if"
				},
				{
					className: "template-tag",
					begin: /\{\{\//,
					end: /\}\}/,
					contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS]
				},
				{
					className: "template-variable",
					begin: /\{\{\{/,
					end: /\}\}\}/,
					contains: [BASIC_MUSTACHE_CONTENTS]
				},
				{
					className: "template-variable",
					begin: /\{\{/,
					end: /\}\}/,
					contains: [BASIC_MUSTACHE_CONTENTS]
				}
			]
		};
	}
	module.exports = handlebars;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/haskell.js
var require_haskell = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function haskell(hljs$1) {
		const decimalDigits$2 = "([0-9]_*)+";
		const hexDigits$2 = "([0-9a-fA-F]_*)+";
		const binaryDigits = "([01]_*)+";
		const octalDigits = "([0-7]_*)+";
		const ascSymbol = "[!#$%&*+.\\/<=>?@\\\\^~-]";
		const uniSymbol = "(\\p{S}|\\p{P})";
		const special = "[(),;\\[\\]`|{}]";
		const symbol = `(${ascSymbol}|(?!(${special}|[_:"']))${uniSymbol})`;
		const COMMENT$2 = { variants: [hljs$1.COMMENT("--+", "$"), hljs$1.COMMENT(/\{-/, /-\}/, { contains: ["self"] })] };
		const PRAGMA = {
			className: "meta",
			begin: /\{-#/,
			end: /#-\}/
		};
		const PREPROCESSOR = {
			className: "meta",
			begin: "^#",
			end: "$"
		};
		const CONSTRUCTOR = {
			className: "type",
			begin: "\\b[A-Z][\\w']*",
			relevance: 0
		};
		const LIST = {
			begin: "\\(",
			end: "\\)",
			illegal: "\"",
			contains: [
				PRAGMA,
				PREPROCESSOR,
				{
					className: "type",
					begin: "\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"
				},
				hljs$1.inherit(hljs$1.TITLE_MODE, { begin: "[_a-z][\\w']*" }),
				COMMENT$2
			]
		};
		const RECORD = {
			begin: /\{/,
			end: /\}/,
			contains: LIST.contains
		};
		const NUMBER = {
			className: "number",
			relevance: 0,
			variants: [
				{ match: `\\b(${decimalDigits$2})(\\.(${decimalDigits$2}))?` + `([eE][+-]?(${decimalDigits$2}))?\\b` },
				{ match: `\\b0[xX]_*(${hexDigits$2})(\\.(${hexDigits$2}))?` + `([pP][+-]?(${decimalDigits$2}))?\\b` },
				{ match: `\\b0[oO](${octalDigits})\\b` },
				{ match: `\\b0[bB](${binaryDigits})\\b` }
			]
		};
		return {
			name: "Haskell",
			aliases: ["hs"],
			keywords: "let in if then else case of where do module import hiding " + "qualified type data newtype deriving class instance as default " + "infix infixl infixr foreign export ccall stdcall cplusplus " + "jvm dotnet safe unsafe family forall mdo proc rec",
			unicodeRegex: true,
			contains: [
				{
					beginKeywords: "module",
					end: "where",
					keywords: "module where",
					contains: [LIST, COMMENT$2],
					illegal: "\\W\\.|;"
				},
				{
					begin: "\\bimport\\b",
					end: "$",
					keywords: "import qualified as hiding",
					contains: [LIST, COMMENT$2],
					illegal: "\\W\\.|;"
				},
				{
					className: "class",
					begin: "^(\\s*)?(class|instance)\\b",
					end: "where",
					keywords: "class family instance where",
					contains: [
						CONSTRUCTOR,
						LIST,
						COMMENT$2
					]
				},
				{
					className: "class",
					begin: "\\b(data|(new)?type)\\b",
					end: "$",
					keywords: "data family type newtype deriving",
					contains: [
						PRAGMA,
						CONSTRUCTOR,
						LIST,
						RECORD,
						COMMENT$2
					]
				},
				{
					beginKeywords: "default",
					end: "$",
					contains: [
						CONSTRUCTOR,
						LIST,
						COMMENT$2
					]
				},
				{
					beginKeywords: "infix infixl infixr",
					end: "$",
					contains: [hljs$1.C_NUMBER_MODE, COMMENT$2]
				},
				{
					begin: "\\bforeign\\b",
					end: "$",
					keywords: "foreign import export ccall stdcall cplusplus jvm " + "dotnet safe unsafe",
					contains: [
						CONSTRUCTOR,
						hljs$1.QUOTE_STRING_MODE,
						COMMENT$2
					]
				},
				{
					className: "meta",
					begin: "#!\\/usr\\/bin\\/env runhaskell",
					end: "$"
				},
				PRAGMA,
				PREPROCESSOR,
				{
					scope: "string",
					begin: /'(?=\\?.')/,
					end: /'/,
					contains: [{
						scope: "char.escape",
						match: /\\./
					}]
				},
				hljs$1.QUOTE_STRING_MODE,
				NUMBER,
				CONSTRUCTOR,
				hljs$1.inherit(hljs$1.TITLE_MODE, { begin: "^[_a-z][\\w']*" }),
				{ begin: `(?!-)${symbol}--+|--+(?!-)${symbol}` },
				COMMENT$2,
				{ begin: "->|<-" }
			]
		};
	}
	module.exports = haskell;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/haxe.js
var require_haxe = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function haxe(hljs$1) {
		const IDENT_RE$6 = "[a-zA-Z_$][a-zA-Z0-9_$]*";
		const HAXE_NUMBER_RE = /(-?)(\b0[xX][a-fA-F0-9_]+|(\b\d+(\.[\d_]*)?|\.[\d_]+)(([eE][-+]?\d+)|i32|u32|i64|f64)?)/;
		const HAXE_BASIC_TYPES = "Int Float String Bool Dynamic Void Array ";
		return {
			name: "Haxe",
			aliases: ["hx"],
			keywords: {
				keyword: "abstract break case cast catch continue default do dynamic else enum extern " + "final for function here if import in inline is macro never new override package private get set " + "public return static super switch this throw trace try typedef untyped using var while " + HAXE_BASIC_TYPES,
				built_in: "trace this",
				literal: "true false null _"
			},
			contains: [
				{
					className: "string",
					begin: "'",
					end: "'",
					contains: [
						hljs$1.BACKSLASH_ESCAPE,
						{
							className: "subst",
							begin: /\$\{/,
							end: /\}/
						},
						{
							className: "subst",
							begin: /\$/,
							end: /\W\}/
						}
					]
				},
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				{
					className: "number",
					begin: HAXE_NUMBER_RE,
					relevance: 0
				},
				{
					className: "variable",
					begin: "\\$" + IDENT_RE$6
				},
				{
					className: "meta",
					begin: /@:?/,
					end: /\(|$/,
					excludeEnd: true
				},
				{
					className: "meta",
					begin: "#",
					end: "$",
					keywords: { keyword: "if else elseif end error" }
				},
				{
					className: "type",
					begin: /:[ \t]*/,
					end: /[^A-Za-z0-9_ \t\->]/,
					excludeBegin: true,
					excludeEnd: true,
					relevance: 0
				},
				{
					className: "type",
					begin: /:[ \t]*/,
					end: /\W/,
					excludeBegin: true,
					excludeEnd: true
				},
				{
					className: "type",
					beginKeywords: "new",
					end: /\W/,
					excludeBegin: true,
					excludeEnd: true
				},
				{
					className: "title.class",
					beginKeywords: "enum",
					end: /\{/,
					contains: [hljs$1.TITLE_MODE]
				},
				{
					className: "title.class",
					begin: "\\babstract\\b(?=\\s*" + hljs$1.IDENT_RE + "\\s*\\()",
					end: /[\{$]/,
					contains: [
						{
							className: "type",
							begin: /\(/,
							end: /\)/,
							excludeBegin: true,
							excludeEnd: true
						},
						{
							className: "type",
							begin: /from +/,
							end: /\W/,
							excludeBegin: true,
							excludeEnd: true
						},
						{
							className: "type",
							begin: /to +/,
							end: /\W/,
							excludeBegin: true,
							excludeEnd: true
						},
						hljs$1.TITLE_MODE
					],
					keywords: { keyword: "abstract from to" }
				},
				{
					className: "title.class",
					begin: /\b(class|interface) +/,
					end: /[\{$]/,
					excludeEnd: true,
					keywords: "class interface",
					contains: [{
						className: "keyword",
						begin: /\b(extends|implements) +/,
						keywords: "extends implements",
						contains: [{
							className: "type",
							begin: hljs$1.IDENT_RE,
							relevance: 0
						}]
					}, hljs$1.TITLE_MODE]
				},
				{
					className: "title.function",
					beginKeywords: "function",
					end: /\(/,
					excludeEnd: true,
					illegal: /\S/,
					contains: [hljs$1.TITLE_MODE]
				}
			],
			illegal: /<\//
		};
	}
	module.exports = haxe;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/hsp.js
var require_hsp = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function hsp(hljs$1) {
		return {
			name: "HSP",
			case_insensitive: true,
			keywords: {
				$pattern: /[\w._]+/,
				keyword: "goto gosub return break repeat loop continue wait await dim sdim foreach dimtype dup dupptr end stop newmod delmod mref run exgoto on mcall assert logmes newlab resume yield onexit onerror onkey onclick oncmd exist delete mkdir chdir dirlist bload bsave bcopy memfile if else poke wpoke lpoke getstr chdpm memexpand memcpy memset notesel noteadd notedel noteload notesave randomize noteunsel noteget split strrep setease button chgdisp exec dialog mmload mmplay mmstop mci pset pget syscolor mes print title pos circle cls font sysfont objsize picload color palcolor palette redraw width gsel gcopy gzoom gmode bmpsave hsvcolor getkey listbox chkbox combox input mesbox buffer screen bgscr mouse objsel groll line clrobj boxf objprm objmode stick grect grotate gsquare gradf objimage objskip objenable celload celdiv celput newcom querycom delcom cnvstow comres axobj winobj sendmsg comevent comevarg sarrayconv callfunc cnvwtos comevdisp libptr system hspstat hspver stat cnt err strsize looplev sublev iparam wparam lparam refstr refdval int rnd strlen length length2 length3 length4 vartype gettime peek wpeek lpeek varptr varuse noteinfo instr abs limit getease str strmid strf getpath strtrim sin cos tan atan sqrt double absf expf logf limitf powf geteasef mousex mousey mousew hwnd hinstance hdc ginfo objinfo dirinfo sysinfo thismod __hspver__ __hsp30__ __date__ __time__ __line__ __file__ _debug __hspdef__ and or xor not screen_normal screen_palette screen_hide screen_fixedsize screen_tool screen_frame gmode_gdi gmode_mem gmode_rgb0 gmode_alpha gmode_rgb0alpha gmode_add gmode_sub gmode_pixela ginfo_mx ginfo_my ginfo_act ginfo_sel ginfo_wx1 ginfo_wy1 ginfo_wx2 ginfo_wy2 ginfo_vx ginfo_vy ginfo_sizex ginfo_sizey ginfo_winx ginfo_winy ginfo_mesx ginfo_mesy ginfo_r ginfo_g ginfo_b ginfo_paluse ginfo_dispx ginfo_dispy ginfo_cx ginfo_cy ginfo_intid ginfo_newid ginfo_sx ginfo_sy objinfo_mode objinfo_bmscr objinfo_hwnd notemax notesize dir_cur dir_exe dir_win dir_sys dir_cmdline dir_desktop dir_mydoc dir_tv font_normal font_bold font_italic font_underline font_strikeout font_antialias objmode_normal objmode_guifont objmode_usefont gsquare_grad msgothic msmincho do until while wend for next _break _continue switch case default swbreak swend ddim ldim alloc m_pi rad2deg deg2rad ease_linear ease_quad_in ease_quad_out ease_quad_inout ease_cubic_in ease_cubic_out ease_cubic_inout ease_quartic_in ease_quartic_out ease_quartic_inout ease_bounce_in ease_bounce_out ease_bounce_inout ease_shake_in ease_shake_out ease_shake_inout ease_loop"
			},
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.APOS_STRING_MODE,
				{
					className: "string",
					begin: /\{"/,
					end: /"\}/,
					contains: [hljs$1.BACKSLASH_ESCAPE]
				},
				hljs$1.COMMENT(";", "$", { relevance: 0 }),
				{
					className: "meta",
					begin: "#",
					end: "$",
					keywords: { keyword: "addion cfunc cmd cmpopt comfunc const defcfunc deffunc define else endif enum epack func global if ifdef ifndef include modcfunc modfunc modinit modterm module pack packopt regcmd runtime undef usecom uselib" },
					contains: [
						hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { className: "string" }),
						hljs$1.NUMBER_MODE,
						hljs$1.C_NUMBER_MODE,
						hljs$1.C_LINE_COMMENT_MODE,
						hljs$1.C_BLOCK_COMMENT_MODE
					]
				},
				{
					className: "symbol",
					begin: "^\\*(\\w+|@)"
				},
				hljs$1.NUMBER_MODE,
				hljs$1.C_NUMBER_MODE
			]
		};
	}
	module.exports = hsp;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/http.js
var require_http = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function http(hljs$1) {
		const regex = hljs$1.regex;
		const VERSION = "HTTP/([32]|1\\.[01])";
		const HEADER_NAME = /[A-Za-z][A-Za-z0-9-]*/;
		const HEADER = {
			className: "attribute",
			begin: regex.concat("^", HEADER_NAME, "(?=\\:\\s)"),
			starts: { contains: [{
				className: "punctuation",
				begin: /: /,
				relevance: 0,
				starts: {
					end: "$",
					relevance: 0
				}
			}] }
		};
		const HEADERS_AND_BODY = [HEADER, {
			begin: "\\n\\n",
			starts: {
				subLanguage: [],
				endsWithParent: true
			}
		}];
		return {
			name: "HTTP",
			aliases: ["https"],
			illegal: /\S/,
			contains: [
				{
					begin: "^(?=" + VERSION + " \\d{3})",
					end: /$/,
					contains: [{
						className: "meta",
						begin: VERSION
					}, {
						className: "number",
						begin: "\\b\\d{3}\\b"
					}],
					starts: {
						end: /\b\B/,
						illegal: /\S/,
						contains: HEADERS_AND_BODY
					}
				},
				{
					begin: "(?=^[A-Z]+ (.*?) " + VERSION + "$)",
					end: /$/,
					contains: [
						{
							className: "string",
							begin: " ",
							end: " ",
							excludeBegin: true,
							excludeEnd: true
						},
						{
							className: "meta",
							begin: VERSION
						},
						{
							className: "keyword",
							begin: "[A-Z]+"
						}
					],
					starts: {
						end: /\b\B/,
						illegal: /\S/,
						contains: HEADERS_AND_BODY
					}
				},
				hljs$1.inherit(HEADER, { relevance: 0 })
			]
		};
	}
	module.exports = http;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/hy.js
var require_hy = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function hy(hljs$1) {
		const SYMBOLSTART = "a-zA-Z_\\-!.?+*=<>&#'";
		const SYMBOL_RE = "[" + SYMBOLSTART + "][" + SYMBOLSTART + "0-9/;:]*";
		const keywords$1 = {
			$pattern: SYMBOL_RE,
			built_in: "!= % %= & &= * ** **= *= *map " + "+ += , --build-class-- --import-- -= . / // //= " + "/= < << <<= <= = > >= >> >>= " + "@ @= ^ ^= abs accumulate all and any ap-compose " + "ap-dotimes ap-each ap-each-while ap-filter ap-first ap-if ap-last ap-map ap-map-when ap-pipe " + "ap-reduce ap-reject apply as-> ascii assert assoc bin break butlast " + "callable calling-module-name car case cdr chain chr coll? combinations compile " + "compress cond cons cons? continue count curry cut cycle dec " + "def default-method defclass defmacro defmacro-alias defmacro/g! defmain defmethod defmulti defn " + "defn-alias defnc defnr defreader defseq del delattr delete-route dict-comp dir " + "disassemble dispatch-reader-macro distinct divmod do doto drop drop-last drop-while empty? " + "end-sequence eval eval-and-compile eval-when-compile even? every? except exec filter first " + "flatten float? fn fnc fnr for for* format fraction genexpr " + "gensym get getattr global globals group-by hasattr hash hex id " + "identity if if* if-not if-python2 import in inc input instance? " + "integer integer-char? integer? interleave interpose is is-coll is-cons is-empty is-even " + "is-every is-float is-instance is-integer is-integer-char is-iterable is-iterator is-keyword is-neg is-none " + "is-not is-numeric is-odd is-pos is-string is-symbol is-zero isinstance islice issubclass " + "iter iterable? iterate iterator? keyword keyword? lambda last len let " + "lif lif-not list* list-comp locals loop macro-error macroexpand macroexpand-1 macroexpand-all " + "map max merge-with method-decorator min multi-decorator multicombinations name neg? next " + "none? nonlocal not not-in not? nth numeric? oct odd? open " + "or ord partition permutations pos? post-route postwalk pow prewalk print " + "product profile/calls profile/cpu put-route quasiquote quote raise range read read-str " + "recursive-replace reduce remove repeat repeatedly repr require rest round route " + "route-with-methods rwm second seq set-comp setattr setv some sorted string " + "string? sum switch symbol? take take-nth take-while tee try unless " + "unquote unquote-splicing vars walk when while with with* with-decorator with-gensyms " + "xi xor yield yield-from zero? zip zip-longest | |= ~"
		};
		const SIMPLE_NUMBER_RE = "[-+]?\\d+(\\.\\d+)?";
		const SYMBOL = {
			begin: SYMBOL_RE,
			relevance: 0
		};
		const NUMBER = {
			className: "number",
			begin: SIMPLE_NUMBER_RE,
			relevance: 0
		};
		const STRING = hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { illegal: null });
		const COMMENT$2 = hljs$1.COMMENT(";", "$", { relevance: 0 });
		const LITERAL = {
			className: "literal",
			begin: /\b([Tt]rue|[Ff]alse|nil|None)\b/
		};
		const COLLECTION = {
			begin: "[\\[\\{]",
			end: "[\\]\\}]",
			relevance: 0
		};
		const HINT = {
			className: "comment",
			begin: "\\^" + SYMBOL_RE
		};
		const HINT_COL = hljs$1.COMMENT("\\^\\{", "\\}");
		const KEY = {
			className: "symbol",
			begin: "[:]{1,2}" + SYMBOL_RE
		};
		const LIST = {
			begin: "\\(",
			end: "\\)"
		};
		const BODY = {
			endsWithParent: true,
			relevance: 0
		};
		const NAME = {
			className: "name",
			relevance: 0,
			keywords: keywords$1,
			begin: SYMBOL_RE,
			starts: BODY
		};
		const DEFAULT_CONTAINS = [
			LIST,
			STRING,
			HINT,
			HINT_COL,
			COMMENT$2,
			KEY,
			COLLECTION,
			NUMBER,
			LITERAL,
			SYMBOL
		];
		LIST.contains = [
			hljs$1.COMMENT("comment", ""),
			NAME,
			BODY
		];
		BODY.contains = DEFAULT_CONTAINS;
		COLLECTION.contains = DEFAULT_CONTAINS;
		return {
			name: "Hy",
			aliases: ["hylang"],
			illegal: /\S/,
			contains: [
				hljs$1.SHEBANG(),
				LIST,
				STRING,
				HINT,
				HINT_COL,
				COMMENT$2,
				KEY,
				COLLECTION,
				NUMBER,
				LITERAL
			]
		};
	}
	module.exports = hy;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/inform7.js
var require_inform7 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function inform7(hljs$1) {
		const START_BRACKET = "\\[";
		const END_BRACKET = "\\]";
		return {
			name: "Inform 7",
			aliases: ["i7"],
			case_insensitive: true,
			keywords: { keyword: "thing room person man woman animal container " + "supporter backdrop door " + "scenery open closed locked inside gender " + "is are say understand " + "kind of rule" },
			contains: [
				{
					className: "string",
					begin: "\"",
					end: "\"",
					relevance: 0,
					contains: [{
						className: "subst",
						begin: START_BRACKET,
						end: END_BRACKET
					}]
				},
				{
					className: "section",
					begin: /^(Volume|Book|Part|Chapter|Section|Table)\b/,
					end: "$"
				},
				{
					begin: /^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,
					end: ":",
					contains: [{
						begin: "\\(This",
						end: "\\)"
					}]
				},
				{
					className: "comment",
					begin: START_BRACKET,
					end: END_BRACKET,
					contains: ["self"]
				}
			]
		};
	}
	module.exports = inform7;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/ini.js
var require_ini = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function ini(hljs$1) {
		const regex = hljs$1.regex;
		const NUMBERS = {
			className: "number",
			relevance: 0,
			variants: [{ begin: /([+-]+)?[\d]+_[\d_]+/ }, { begin: hljs$1.NUMBER_RE }]
		};
		const COMMENTS = hljs$1.COMMENT();
		COMMENTS.variants = [{
			begin: /;/,
			end: /$/
		}, {
			begin: /#/,
			end: /$/
		}];
		const VARIABLES = {
			className: "variable",
			variants: [{ begin: /\$[\w\d"][\w\d_]*/ }, { begin: /\$\{(.*?)\}/ }]
		};
		const LITERALS$6 = {
			className: "literal",
			begin: /\bon|off|true|false|yes|no\b/
		};
		const STRINGS = {
			className: "string",
			contains: [hljs$1.BACKSLASH_ESCAPE],
			variants: [
				{
					begin: "'''",
					end: "'''",
					relevance: 10
				},
				{
					begin: "\"\"\"",
					end: "\"\"\"",
					relevance: 10
				},
				{
					begin: "\"",
					end: "\""
				},
				{
					begin: "'",
					end: "'"
				}
			]
		};
		const ARRAY = {
			begin: /\[/,
			end: /\]/,
			contains: [
				COMMENTS,
				LITERALS$6,
				VARIABLES,
				STRINGS,
				NUMBERS,
				"self"
			],
			relevance: 0
		};
		const BARE_KEY = /[A-Za-z0-9_-]+/;
		const QUOTED_KEY_DOUBLE_QUOTE = /"(\\"|[^"])*"/;
		const QUOTED_KEY_SINGLE_QUOTE = /'[^']*'/;
		const ANY_KEY = regex.either(BARE_KEY, QUOTED_KEY_DOUBLE_QUOTE, QUOTED_KEY_SINGLE_QUOTE);
		const DOTTED_KEY = regex.concat(ANY_KEY, "(\\s*\\.\\s*", ANY_KEY, ")*", regex.lookahead(/\s*=\s*[^#\s]/));
		return {
			name: "TOML, also INI",
			aliases: ["toml"],
			case_insensitive: true,
			illegal: /\S/,
			contains: [
				COMMENTS,
				{
					className: "section",
					begin: /\[+/,
					end: /\]+/
				},
				{
					begin: DOTTED_KEY,
					className: "attr",
					starts: {
						end: /$/,
						contains: [
							COMMENTS,
							ARRAY,
							LITERALS$6,
							VARIABLES,
							STRINGS,
							NUMBERS
						]
					}
				}
			]
		};
	}
	module.exports = ini;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/irpf90.js
var require_irpf90 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function irpf90(hljs$1) {
		const regex = hljs$1.regex;
		const PARAMS = {
			className: "params",
			begin: "\\(",
			end: "\\)"
		};
		const OPTIONAL_NUMBER_SUFFIX = /(_[a-z_\d]+)?/;
		const OPTIONAL_NUMBER_EXP = /([de][+-]?\d+)?/;
		const NUMBER = {
			className: "number",
			variants: [
				{ begin: regex.concat(/\b\d+/, /\.(\d*)/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX) },
				{ begin: regex.concat(/\b\d+/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX) },
				{ begin: regex.concat(/\.\d+/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX) }
			],
			relevance: 0
		};
		const F_KEYWORDS = {
			literal: ".False. .True.",
			keyword: "kind do while private call intrinsic where elsewhere " + "type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then " + "public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. " + "goto save else use module select case " + "access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit " + "continue format pause cycle exit " + "c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg " + "synchronous nopass non_overridable pass protected volatile abstract extends import " + "non_intrinsic value deferred generic final enumerator class associate bind enum " + "c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t " + "c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double " + "c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr " + "c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated  c_f_pointer " + "c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor " + "numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control " + "ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive " + "pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure " + "integer real character complex logical dimension allocatable|10 parameter " + "external implicit|10 none double precision assign intent optional pointer " + "target in out common equivalence data " + "begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch " + "soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read",
			built_in: "alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint " + "dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl " + "algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama " + "iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod " + "qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log " + "log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate " + "adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product " + "eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul " + "maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product " + "radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind " + "set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer " + "dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end " + "ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode " + "is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of " + "acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 " + "atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits " + "bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr " + "num_images parity popcnt poppar shifta shiftl shiftr this_image " + "IRP_ALIGN irp_here"
		};
		return {
			name: "IRPF90",
			case_insensitive: true,
			keywords: F_KEYWORDS,
			illegal: /\/\*/,
			contains: [
				hljs$1.inherit(hljs$1.APOS_STRING_MODE, {
					className: "string",
					relevance: 0
				}),
				hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, {
					className: "string",
					relevance: 0
				}),
				{
					className: "function",
					beginKeywords: "subroutine function program",
					illegal: "[${=\\n]",
					contains: [hljs$1.UNDERSCORE_TITLE_MODE, PARAMS]
				},
				hljs$1.COMMENT("!", "$", { relevance: 0 }),
				hljs$1.COMMENT("begin_doc", "end_doc", { relevance: 10 }),
				NUMBER
			]
		};
	}
	module.exports = irpf90;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/isbl.js
var require_isbl = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function isbl(hljs$1) {
		const UNDERSCORE_IDENT_RE$2 = "[A-Za-zА-Яа-яёЁ_!][A-Za-zА-Яа-яёЁ_0-9]*";
		const FUNCTION_NAME_IDENT_RE = "[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]*";
		const KEYWORD = "and и else иначе endexcept endfinally endforeach конецвсе endif конецесли endwhile конецпока " + "except exitfor finally foreach все if если in в not не or или try while пока ";
		const sysres_constants = "SYSRES_CONST_ACCES_RIGHT_TYPE_EDIT " + "SYSRES_CONST_ACCES_RIGHT_TYPE_FULL " + "SYSRES_CONST_ACCES_RIGHT_TYPE_VIEW " + "SYSRES_CONST_ACCESS_MODE_REQUISITE_CODE " + "SYSRES_CONST_ACCESS_NO_ACCESS_VIEW " + "SYSRES_CONST_ACCESS_NO_ACCESS_VIEW_CODE " + "SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_CODE " + "SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_YES_CODE " + "SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_CODE " + "SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_YES_CODE " + "SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_CODE " + "SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_YES_CODE " + "SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_CODE " + "SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_YES_CODE " + "SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_CODE " + "SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_YES_CODE " + "SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_CODE " + "SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_YES_CODE " + "SYSRES_CONST_ACCESS_RIGHTS_REQUISITE_CODE " + "SYSRES_CONST_ACCESS_RIGHTS_VIEW " + "SYSRES_CONST_ACCESS_RIGHTS_VIEW_CODE " + "SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_CODE " + "SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_YES_CODE " + "SYSRES_CONST_ACCESS_TYPE_CHANGE " + "SYSRES_CONST_ACCESS_TYPE_CHANGE_CODE " + "SYSRES_CONST_ACCESS_TYPE_EXISTS " + "SYSRES_CONST_ACCESS_TYPE_EXISTS_CODE " + "SYSRES_CONST_ACCESS_TYPE_FULL " + "SYSRES_CONST_ACCESS_TYPE_FULL_CODE " + "SYSRES_CONST_ACCESS_TYPE_VIEW " + "SYSRES_CONST_ACCESS_TYPE_VIEW_CODE " + "SYSRES_CONST_ACTION_TYPE_ABORT " + "SYSRES_CONST_ACTION_TYPE_ACCEPT " + "SYSRES_CONST_ACTION_TYPE_ACCESS_RIGHTS " + "SYSRES_CONST_ACTION_TYPE_ADD_ATTACHMENT " + "SYSRES_CONST_ACTION_TYPE_CHANGE_CARD " + "SYSRES_CONST_ACTION_TYPE_CHANGE_KIND " + "SYSRES_CONST_ACTION_TYPE_CHANGE_STORAGE " + "SYSRES_CONST_ACTION_TYPE_CONTINUE " + "SYSRES_CONST_ACTION_TYPE_COPY " + "SYSRES_CONST_ACTION_TYPE_CREATE " + "SYSRES_CONST_ACTION_TYPE_CREATE_VERSION " + "SYSRES_CONST_ACTION_TYPE_DELETE " + "SYSRES_CONST_ACTION_TYPE_DELETE_ATTACHMENT " + "SYSRES_CONST_ACTION_TYPE_DELETE_VERSION " + "SYSRES_CONST_ACTION_TYPE_DISABLE_DELEGATE_ACCESS_RIGHTS " + "SYSRES_CONST_ACTION_TYPE_ENABLE_DELEGATE_ACCESS_RIGHTS " + "SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE " + "SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE_AND_PASSWORD " + "SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_PASSWORD " + "SYSRES_CONST_ACTION_TYPE_EXPORT_WITH_LOCK " + "SYSRES_CONST_ACTION_TYPE_EXPORT_WITHOUT_LOCK " + "SYSRES_CONST_ACTION_TYPE_IMPORT_WITH_UNLOCK " + "SYSRES_CONST_ACTION_TYPE_IMPORT_WITHOUT_UNLOCK " + "SYSRES_CONST_ACTION_TYPE_LIFE_CYCLE_STAGE " + "SYSRES_CONST_ACTION_TYPE_LOCK " + "SYSRES_CONST_ACTION_TYPE_LOCK_FOR_SERVER " + "SYSRES_CONST_ACTION_TYPE_LOCK_MODIFY " + "SYSRES_CONST_ACTION_TYPE_MARK_AS_READED " + "SYSRES_CONST_ACTION_TYPE_MARK_AS_UNREADED " + "SYSRES_CONST_ACTION_TYPE_MODIFY " + "SYSRES_CONST_ACTION_TYPE_MODIFY_CARD " + "SYSRES_CONST_ACTION_TYPE_MOVE_TO_ARCHIVE " + "SYSRES_CONST_ACTION_TYPE_OFF_ENCRYPTION " + "SYSRES_CONST_ACTION_TYPE_PASSWORD_CHANGE " + "SYSRES_CONST_ACTION_TYPE_PERFORM " + "SYSRES_CONST_ACTION_TYPE_RECOVER_FROM_LOCAL_COPY " + "SYSRES_CONST_ACTION_TYPE_RESTART " + "SYSRES_CONST_ACTION_TYPE_RESTORE_FROM_ARCHIVE " + "SYSRES_CONST_ACTION_TYPE_REVISION " + "SYSRES_CONST_ACTION_TYPE_SEND_BY_MAIL " + "SYSRES_CONST_ACTION_TYPE_SIGN " + "SYSRES_CONST_ACTION_TYPE_START " + "SYSRES_CONST_ACTION_TYPE_UNLOCK " + "SYSRES_CONST_ACTION_TYPE_UNLOCK_FROM_SERVER " + "SYSRES_CONST_ACTION_TYPE_VERSION_STATE " + "SYSRES_CONST_ACTION_TYPE_VERSION_VISIBILITY " + "SYSRES_CONST_ACTION_TYPE_VIEW " + "SYSRES_CONST_ACTION_TYPE_VIEW_SHADOW_COPY " + "SYSRES_CONST_ACTION_TYPE_WORKFLOW_DESCRIPTION_MODIFY " + "SYSRES_CONST_ACTION_TYPE_WRITE_HISTORY " + "SYSRES_CONST_ACTIVE_VERSION_STATE_PICK_VALUE " + "SYSRES_CONST_ADD_REFERENCE_MODE_NAME " + "SYSRES_CONST_ADDITION_REQUISITE_CODE " + "SYSRES_CONST_ADDITIONAL_PARAMS_REQUISITE_CODE " + "SYSRES_CONST_ADITIONAL_JOB_END_DATE_REQUISITE_NAME " + "SYSRES_CONST_ADITIONAL_JOB_READ_REQUISITE_NAME " + "SYSRES_CONST_ADITIONAL_JOB_START_DATE_REQUISITE_NAME " + "SYSRES_CONST_ADITIONAL_JOB_STATE_REQUISITE_NAME " + "SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION " + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION_CODE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE " + "SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE_ACTION " + "SYSRES_CONST_ALL_ACCEPT_CONDITION_RUS " + "SYSRES_CONST_ALL_USERS_GROUP " + "SYSRES_CONST_ALL_USERS_GROUP_NAME " + "SYSRES_CONST_ALL_USERS_SERVER_GROUP_NAME " + "SYSRES_CONST_ALLOWED_ACCESS_TYPE_CODE " + "SYSRES_CONST_ALLOWED_ACCESS_TYPE_NAME " + "SYSRES_CONST_APP_VIEWER_TYPE_REQUISITE_CODE " + "SYSRES_CONST_APPROVING_SIGNATURE_NAME " + "SYSRES_CONST_APPROVING_SIGNATURE_REQUISITE_CODE " + "SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE " + "SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE_CODE " + "SYSRES_CONST_ATTACH_TYPE_COMPONENT_TOKEN " + "SYSRES_CONST_ATTACH_TYPE_DOC " + "SYSRES_CONST_ATTACH_TYPE_EDOC " + "SYSRES_CONST_ATTACH_TYPE_FOLDER " + "SYSRES_CONST_ATTACH_TYPE_JOB " + "SYSRES_CONST_ATTACH_TYPE_REFERENCE " + "SYSRES_CONST_ATTACH_TYPE_TASK " + "SYSRES_CONST_AUTH_ENCODED_PASSWORD " + "SYSRES_CONST_AUTH_ENCODED_PASSWORD_CODE " + "SYSRES_CONST_AUTH_NOVELL " + "SYSRES_CONST_AUTH_PASSWORD " + "SYSRES_CONST_AUTH_PASSWORD_CODE " + "SYSRES_CONST_AUTH_WINDOWS " + "SYSRES_CONST_AUTHENTICATING_SIGNATURE_NAME " + "SYSRES_CONST_AUTHENTICATING_SIGNATURE_REQUISITE_CODE " + "SYSRES_CONST_AUTO_ENUM_METHOD_FLAG " + "SYSRES_CONST_AUTO_NUMERATION_CODE " + "SYSRES_CONST_AUTO_STRONG_ENUM_METHOD_FLAG " + "SYSRES_CONST_AUTOTEXT_NAME_REQUISITE_CODE " + "SYSRES_CONST_AUTOTEXT_TEXT_REQUISITE_CODE " + "SYSRES_CONST_AUTOTEXT_USAGE_ALL " + "SYSRES_CONST_AUTOTEXT_USAGE_ALL_CODE " + "SYSRES_CONST_AUTOTEXT_USAGE_SIGN " + "SYSRES_CONST_AUTOTEXT_USAGE_SIGN_CODE " + "SYSRES_CONST_AUTOTEXT_USAGE_WORK " + "SYSRES_CONST_AUTOTEXT_USAGE_WORK_CODE " + "SYSRES_CONST_AUTOTEXT_USE_ANYWHERE_CODE " + "SYSRES_CONST_AUTOTEXT_USE_ON_SIGNING_CODE " + "SYSRES_CONST_AUTOTEXT_USE_ON_WORK_CODE " + "SYSRES_CONST_BEGIN_DATE_REQUISITE_CODE " + "SYSRES_CONST_BLACK_LIFE_CYCLE_STAGE_FONT_COLOR " + "SYSRES_CONST_BLUE_LIFE_CYCLE_STAGE_FONT_COLOR " + "SYSRES_CONST_BTN_PART " + "SYSRES_CONST_CALCULATED_ROLE_TYPE_CODE " + "SYSRES_CONST_CALL_TYPE_VARIABLE_BUTTON_VALUE " + "SYSRES_CONST_CALL_TYPE_VARIABLE_PROGRAM_VALUE " + "SYSRES_CONST_CANCEL_MESSAGE_FUNCTION_RESULT " + "SYSRES_CONST_CARD_PART " + "SYSRES_CONST_CARD_REFERENCE_MODE_NAME " + "SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_ENCRYPT_VALUE " + "SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_AND_ENCRYPT_VALUE " + "SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_VALUE " + "SYSRES_CONST_CHECK_PARAM_VALUE_DATE_PARAM_TYPE " + "SYSRES_CONST_CHECK_PARAM_VALUE_FLOAT_PARAM_TYPE " + "SYSRES_CONST_CHECK_PARAM_VALUE_INTEGER_PARAM_TYPE " + "SYSRES_CONST_CHECK_PARAM_VALUE_PICK_PARAM_TYPE " + "SYSRES_CONST_CHECK_PARAM_VALUE_REEFRENCE_PARAM_TYPE " + "SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_FEMININE " + "SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_MASCULINE " + "SYSRES_CONST_CODE_COMPONENT_TYPE_ADMIN " + "SYSRES_CONST_CODE_COMPONENT_TYPE_DEVELOPER " + "SYSRES_CONST_CODE_COMPONENT_TYPE_DOCS " + "SYSRES_CONST_CODE_COMPONENT_TYPE_EDOC_CARDS " + "SYSRES_CONST_CODE_COMPONENT_TYPE_EXTERNAL_EXECUTABLE " + "SYSRES_CONST_CODE_COMPONENT_TYPE_OTHER " + "SYSRES_CONST_CODE_COMPONENT_TYPE_REFERENCE " + "SYSRES_CONST_CODE_COMPONENT_TYPE_REPORT " + "SYSRES_CONST_CODE_COMPONENT_TYPE_SCRIPT " + "SYSRES_CONST_CODE_COMPONENT_TYPE_URL " + "SYSRES_CONST_CODE_REQUISITE_ACCESS " + "SYSRES_CONST_CODE_REQUISITE_CODE " + "SYSRES_CONST_CODE_REQUISITE_COMPONENT " + "SYSRES_CONST_CODE_REQUISITE_DESCRIPTION " + "SYSRES_CONST_CODE_REQUISITE_EXCLUDE_COMPONENT " + "SYSRES_CONST_CODE_REQUISITE_RECORD " + "SYSRES_CONST_COMMENT_REQ_CODE " + "SYSRES_CONST_COMMON_SETTINGS_REQUISITE_CODE " + "SYSRES_CONST_COMP_CODE_GRD " + "SYSRES_CONST_COMPONENT_GROUP_TYPE_REQUISITE_CODE " + "SYSRES_CONST_COMPONENT_TYPE_ADMIN_COMPONENTS " + "SYSRES_CONST_COMPONENT_TYPE_DEVELOPER_COMPONENTS " + "SYSRES_CONST_COMPONENT_TYPE_DOCS " + "SYSRES_CONST_COMPONENT_TYPE_EDOC_CARDS " + "SYSRES_CONST_COMPONENT_TYPE_EDOCS " + "SYSRES_CONST_COMPONENT_TYPE_EXTERNAL_EXECUTABLE " + "SYSRES_CONST_COMPONENT_TYPE_OTHER " + "SYSRES_CONST_COMPONENT_TYPE_REFERENCE_TYPES " + "SYSRES_CONST_COMPONENT_TYPE_REFERENCES " + "SYSRES_CONST_COMPONENT_TYPE_REPORTS " + "SYSRES_CONST_COMPONENT_TYPE_SCRIPTS " + "SYSRES_CONST_COMPONENT_TYPE_URL " + "SYSRES_CONST_COMPONENTS_REMOTE_SERVERS_VIEW_CODE " + "SYSRES_CONST_CONDITION_BLOCK_DESCRIPTION " + "SYSRES_CONST_CONST_FIRM_STATUS_COMMON " + "SYSRES_CONST_CONST_FIRM_STATUS_INDIVIDUAL " + "SYSRES_CONST_CONST_NEGATIVE_VALUE " + "SYSRES_CONST_CONST_POSITIVE_VALUE " + "SYSRES_CONST_CONST_SERVER_STATUS_DONT_REPLICATE " + "SYSRES_CONST_CONST_SERVER_STATUS_REPLICATE " + "SYSRES_CONST_CONTENTS_REQUISITE_CODE " + "SYSRES_CONST_DATA_TYPE_BOOLEAN " + "SYSRES_CONST_DATA_TYPE_DATE " + "SYSRES_CONST_DATA_TYPE_FLOAT " + "SYSRES_CONST_DATA_TYPE_INTEGER " + "SYSRES_CONST_DATA_TYPE_PICK " + "SYSRES_CONST_DATA_TYPE_REFERENCE " + "SYSRES_CONST_DATA_TYPE_STRING " + "SYSRES_CONST_DATA_TYPE_TEXT " + "SYSRES_CONST_DATA_TYPE_VARIANT " + "SYSRES_CONST_DATE_CLOSE_REQ_CODE " + "SYSRES_CONST_DATE_FORMAT_DATE_ONLY_CHAR " + "SYSRES_CONST_DATE_OPEN_REQ_CODE " + "SYSRES_CONST_DATE_REQUISITE " + "SYSRES_CONST_DATE_REQUISITE_CODE " + "SYSRES_CONST_DATE_REQUISITE_NAME " + "SYSRES_CONST_DATE_REQUISITE_TYPE " + "SYSRES_CONST_DATE_TYPE_CHAR " + "SYSRES_CONST_DATETIME_FORMAT_VALUE " + "SYSRES_CONST_DEA_ACCESS_RIGHTS_ACTION_CODE " + "SYSRES_CONST_DESCRIPTION_LOCALIZE_ID_REQUISITE_CODE " + "SYSRES_CONST_DESCRIPTION_REQUISITE_CODE " + "SYSRES_CONST_DET1_PART " + "SYSRES_CONST_DET2_PART " + "SYSRES_CONST_DET3_PART " + "SYSRES_CONST_DET4_PART " + "SYSRES_CONST_DET5_PART " + "SYSRES_CONST_DET6_PART " + "SYSRES_CONST_DETAIL_DATASET_KEY_REQUISITE_CODE " + "SYSRES_CONST_DETAIL_PICK_REQUISITE_CODE " + "SYSRES_CONST_DETAIL_REQ_CODE " + "SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_CODE " + "SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_NAME " + "SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_CODE " + "SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_NAME " + "SYSRES_CONST_DOCUMENT_STORAGES_CODE " + "SYSRES_CONST_DOCUMENT_TEMPLATES_TYPE_NAME " + "SYSRES_CONST_DOUBLE_REQUISITE_CODE " + "SYSRES_CONST_EDITOR_CLOSE_FILE_OBSERV_TYPE_CODE " + "SYSRES_CONST_EDITOR_CLOSE_PROCESS_OBSERV_TYPE_CODE " + "SYSRES_CONST_EDITOR_TYPE_REQUISITE_CODE " + "SYSRES_CONST_EDITORS_APPLICATION_NAME_REQUISITE_CODE " + "SYSRES_CONST_EDITORS_CREATE_SEVERAL_PROCESSES_REQUISITE_CODE " + "SYSRES_CONST_EDITORS_EXTENSION_REQUISITE_CODE " + "SYSRES_CONST_EDITORS_OBSERVER_BY_PROCESS_TYPE " + "SYSRES_CONST_EDITORS_REFERENCE_CODE " + "SYSRES_CONST_EDITORS_REPLACE_SPEC_CHARS_REQUISITE_CODE " + "SYSRES_CONST_EDITORS_USE_PLUGINS_REQUISITE_CODE " + "SYSRES_CONST_EDITORS_VIEW_DOCUMENT_OPENED_TO_EDIT_CODE " + "SYSRES_CONST_EDOC_CARD_TYPE_REQUISITE_CODE " + "SYSRES_CONST_EDOC_CARD_TYPES_LINK_REQUISITE_CODE " + "SYSRES_CONST_EDOC_CERTIFICATE_AND_PASSWORD_ENCODE_CODE " + "SYSRES_CONST_EDOC_CERTIFICATE_ENCODE_CODE " + "SYSRES_CONST_EDOC_DATE_REQUISITE_CODE " + "SYSRES_CONST_EDOC_KIND_REFERENCE_CODE " + "SYSRES_CONST_EDOC_KINDS_BY_TEMPLATE_ACTION_CODE " + "SYSRES_CONST_EDOC_MANAGE_ACCESS_CODE " + "SYSRES_CONST_EDOC_NONE_ENCODE_CODE " + "SYSRES_CONST_EDOC_NUMBER_REQUISITE_CODE " + "SYSRES_CONST_EDOC_PASSWORD_ENCODE_CODE " + "SYSRES_CONST_EDOC_READONLY_ACCESS_CODE " + "SYSRES_CONST_EDOC_SHELL_LIFE_TYPE_VIEW_VALUE " + "SYSRES_CONST_EDOC_SIZE_RESTRICTION_PRIORITY_REQUISITE_CODE " + "SYSRES_CONST_EDOC_STORAGE_CHECK_ACCESS_RIGHTS_REQUISITE_CODE " + "SYSRES_CONST_EDOC_STORAGE_COMPUTER_NAME_REQUISITE_CODE " + "SYSRES_CONST_EDOC_STORAGE_DATABASE_NAME_REQUISITE_CODE " + "SYSRES_CONST_EDOC_STORAGE_EDIT_IN_STORAGE_REQUISITE_CODE " + "SYSRES_CONST_EDOC_STORAGE_LOCAL_PATH_REQUISITE_CODE " + "SYSRES_CONST_EDOC_STORAGE_SHARED_SOURCE_NAME_REQUISITE_CODE " + "SYSRES_CONST_EDOC_TEMPLATE_REQUISITE_CODE " + "SYSRES_CONST_EDOC_TYPES_REFERENCE_CODE " + "SYSRES_CONST_EDOC_VERSION_ACTIVE_STAGE_CODE " + "SYSRES_CONST_EDOC_VERSION_DESIGN_STAGE_CODE " + "SYSRES_CONST_EDOC_VERSION_OBSOLETE_STAGE_CODE " + "SYSRES_CONST_EDOC_WRITE_ACCES_CODE " + "SYSRES_CONST_EDOCUMENT_CARD_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE " + "SYSRES_CONST_ENCODE_CERTIFICATE_TYPE_CODE " + "SYSRES_CONST_END_DATE_REQUISITE_CODE " + "SYSRES_CONST_ENUMERATION_TYPE_REQUISITE_CODE " + "SYSRES_CONST_EXECUTE_ACCESS_RIGHTS_TYPE_CODE " + "SYSRES_CONST_EXECUTIVE_FILE_STORAGE_TYPE " + "SYSRES_CONST_EXIST_CONST " + "SYSRES_CONST_EXIST_VALUE " + "SYSRES_CONST_EXPORT_LOCK_TYPE_ASK " + "SYSRES_CONST_EXPORT_LOCK_TYPE_WITH_LOCK " + "SYSRES_CONST_EXPORT_LOCK_TYPE_WITHOUT_LOCK " + "SYSRES_CONST_EXPORT_VERSION_TYPE_ASK " + "SYSRES_CONST_EXPORT_VERSION_TYPE_LAST " + "SYSRES_CONST_EXPORT_VERSION_TYPE_LAST_ACTIVE " + "SYSRES_CONST_EXTENSION_REQUISITE_CODE " + "SYSRES_CONST_FILTER_NAME_REQUISITE_CODE " + "SYSRES_CONST_FILTER_REQUISITE_CODE " + "SYSRES_CONST_FILTER_TYPE_COMMON_CODE " + "SYSRES_CONST_FILTER_TYPE_COMMON_NAME " + "SYSRES_CONST_FILTER_TYPE_USER_CODE " + "SYSRES_CONST_FILTER_TYPE_USER_NAME " + "SYSRES_CONST_FILTER_VALUE_REQUISITE_NAME " + "SYSRES_CONST_FLOAT_NUMBER_FORMAT_CHAR " + "SYSRES_CONST_FLOAT_REQUISITE_TYPE " + "SYSRES_CONST_FOLDER_AUTHOR_VALUE " + "SYSRES_CONST_FOLDER_KIND_ANY_OBJECTS " + "SYSRES_CONST_FOLDER_KIND_COMPONENTS " + "SYSRES_CONST_FOLDER_KIND_EDOCS " + "SYSRES_CONST_FOLDER_KIND_JOBS " + "SYSRES_CONST_FOLDER_KIND_TASKS " + "SYSRES_CONST_FOLDER_TYPE_COMMON " + "SYSRES_CONST_FOLDER_TYPE_COMPONENT " + "SYSRES_CONST_FOLDER_TYPE_FAVORITES " + "SYSRES_CONST_FOLDER_TYPE_INBOX " + "SYSRES_CONST_FOLDER_TYPE_OUTBOX " + "SYSRES_CONST_FOLDER_TYPE_QUICK_LAUNCH " + "SYSRES_CONST_FOLDER_TYPE_SEARCH " + "SYSRES_CONST_FOLDER_TYPE_SHORTCUTS " + "SYSRES_CONST_FOLDER_TYPE_USER " + "SYSRES_CONST_FROM_DICTIONARY_ENUM_METHOD_FLAG " + "SYSRES_CONST_FULL_SUBSTITUTE_TYPE " + "SYSRES_CONST_FULL_SUBSTITUTE_TYPE_CODE " + "SYSRES_CONST_FUNCTION_CANCEL_RESULT " + "SYSRES_CONST_FUNCTION_CATEGORY_SYSTEM " + "SYSRES_CONST_FUNCTION_CATEGORY_USER " + "SYSRES_CONST_FUNCTION_FAILURE_RESULT " + "SYSRES_CONST_FUNCTION_SAVE_RESULT " + "SYSRES_CONST_GENERATED_REQUISITE " + "SYSRES_CONST_GREEN_LIFE_CYCLE_STAGE_FONT_COLOR " + "SYSRES_CONST_GROUP_ACCOUNT_TYPE_VALUE_CODE " + "SYSRES_CONST_GROUP_CATEGORY_NORMAL_CODE " + "SYSRES_CONST_GROUP_CATEGORY_NORMAL_NAME " + "SYSRES_CONST_GROUP_CATEGORY_SERVICE_CODE " + "SYSRES_CONST_GROUP_CATEGORY_SERVICE_NAME " + "SYSRES_CONST_GROUP_COMMON_CATEGORY_FIELD_VALUE " + "SYSRES_CONST_GROUP_FULL_NAME_REQUISITE_CODE " + "SYSRES_CONST_GROUP_NAME_REQUISITE_CODE " + "SYSRES_CONST_GROUP_RIGHTS_T_REQUISITE_CODE " + "SYSRES_CONST_GROUP_SERVER_CODES_REQUISITE_CODE " + "SYSRES_CONST_GROUP_SERVER_NAME_REQUISITE_CODE " + "SYSRES_CONST_GROUP_SERVICE_CATEGORY_FIELD_VALUE " + "SYSRES_CONST_GROUP_USER_REQUISITE_CODE " + "SYSRES_CONST_GROUPS_REFERENCE_CODE " + "SYSRES_CONST_GROUPS_REQUISITE_CODE " + "SYSRES_CONST_HIDDEN_MODE_NAME " + "SYSRES_CONST_HIGH_LVL_REQUISITE_CODE " + "SYSRES_CONST_HISTORY_ACTION_CREATE_CODE " + "SYSRES_CONST_HISTORY_ACTION_DELETE_CODE " + "SYSRES_CONST_HISTORY_ACTION_EDIT_CODE " + "SYSRES_CONST_HOUR_CHAR " + "SYSRES_CONST_ID_REQUISITE_CODE " + "SYSRES_CONST_IDSPS_REQUISITE_CODE " + "SYSRES_CONST_IMAGE_MODE_COLOR " + "SYSRES_CONST_IMAGE_MODE_GREYSCALE " + "SYSRES_CONST_IMAGE_MODE_MONOCHROME " + "SYSRES_CONST_IMPORTANCE_HIGH " + "SYSRES_CONST_IMPORTANCE_LOW " + "SYSRES_CONST_IMPORTANCE_NORMAL " + "SYSRES_CONST_IN_DESIGN_VERSION_STATE_PICK_VALUE " + "SYSRES_CONST_INCOMING_WORK_RULE_TYPE_CODE " + "SYSRES_CONST_INT_REQUISITE " + "SYSRES_CONST_INT_REQUISITE_TYPE " + "SYSRES_CONST_INTEGER_NUMBER_FORMAT_CHAR " + "SYSRES_CONST_INTEGER_TYPE_CHAR " + "SYSRES_CONST_IS_GENERATED_REQUISITE_NEGATIVE_VALUE " + "SYSRES_CONST_IS_PUBLIC_ROLE_REQUISITE_CODE " + "SYSRES_CONST_IS_REMOTE_USER_NEGATIVE_VALUE " + "SYSRES_CONST_IS_REMOTE_USER_POSITIVE_VALUE " + "SYSRES_CONST_IS_STORED_REQUISITE_NEGATIVE_VALUE " + "SYSRES_CONST_IS_STORED_REQUISITE_STORED_VALUE " + "SYSRES_CONST_ITALIC_LIFE_CYCLE_STAGE_DRAW_STYLE " + "SYSRES_CONST_JOB_BLOCK_DESCRIPTION " + "SYSRES_CONST_JOB_KIND_CONTROL_JOB " + "SYSRES_CONST_JOB_KIND_JOB " + "SYSRES_CONST_JOB_KIND_NOTICE " + "SYSRES_CONST_JOB_STATE_ABORTED " + "SYSRES_CONST_JOB_STATE_COMPLETE " + "SYSRES_CONST_JOB_STATE_WORKING " + "SYSRES_CONST_KIND_REQUISITE_CODE " + "SYSRES_CONST_KIND_REQUISITE_NAME " + "SYSRES_CONST_KINDS_CREATE_SHADOW_COPIES_REQUISITE_CODE " + "SYSRES_CONST_KINDS_DEFAULT_EDOC_LIFE_STAGE_REQUISITE_CODE " + "SYSRES_CONST_KINDS_EDOC_ALL_TEPLATES_ALLOWED_REQUISITE_CODE " + "SYSRES_CONST_KINDS_EDOC_ALLOW_LIFE_CYCLE_STAGE_CHANGING_REQUISITE_CODE " + "SYSRES_CONST_KINDS_EDOC_ALLOW_MULTIPLE_ACTIVE_VERSIONS_REQUISITE_CODE " + "SYSRES_CONST_KINDS_EDOC_SHARE_ACCES_RIGHTS_BY_DEFAULT_CODE " + "SYSRES_CONST_KINDS_EDOC_TEMPLATE_REQUISITE_CODE " + "SYSRES_CONST_KINDS_EDOC_TYPE_REQUISITE_CODE " + "SYSRES_CONST_KINDS_SIGNERS_REQUISITES_CODE " + "SYSRES_CONST_KOD_INPUT_TYPE " + "SYSRES_CONST_LAST_UPDATE_DATE_REQUISITE_CODE " + "SYSRES_CONST_LIFE_CYCLE_START_STAGE_REQUISITE_CODE " + "SYSRES_CONST_LILAC_LIFE_CYCLE_STAGE_FONT_COLOR " + "SYSRES_CONST_LINK_OBJECT_KIND_COMPONENT " + "SYSRES_CONST_LINK_OBJECT_KIND_DOCUMENT " + "SYSRES_CONST_LINK_OBJECT_KIND_EDOC " + "SYSRES_CONST_LINK_OBJECT_KIND_FOLDER " + "SYSRES_CONST_LINK_OBJECT_KIND_JOB " + "SYSRES_CONST_LINK_OBJECT_KIND_REFERENCE " + "SYSRES_CONST_LINK_OBJECT_KIND_TASK " + "SYSRES_CONST_LINK_REF_TYPE_REQUISITE_CODE " + "SYSRES_CONST_LIST_REFERENCE_MODE_NAME " + "SYSRES_CONST_LOCALIZATION_DICTIONARY_MAIN_VIEW_CODE " + "SYSRES_CONST_MAIN_VIEW_CODE " + "SYSRES_CONST_MANUAL_ENUM_METHOD_FLAG " + "SYSRES_CONST_MASTER_COMP_TYPE_REQUISITE_CODE " + "SYSRES_CONST_MASTER_TABLE_REC_ID_REQUISITE_CODE " + "SYSRES_CONST_MAXIMIZED_MODE_NAME " + "SYSRES_CONST_ME_VALUE " + "SYSRES_CONST_MESSAGE_ATTENTION_CAPTION " + "SYSRES_CONST_MESSAGE_CONFIRMATION_CAPTION " + "SYSRES_CONST_MESSAGE_ERROR_CAPTION " + "SYSRES_CONST_MESSAGE_INFORMATION_CAPTION " + "SYSRES_CONST_MINIMIZED_MODE_NAME " + "SYSRES_CONST_MINUTE_CHAR " + "SYSRES_CONST_MODULE_REQUISITE_CODE " + "SYSRES_CONST_MONITORING_BLOCK_DESCRIPTION " + "SYSRES_CONST_MONTH_FORMAT_VALUE " + "SYSRES_CONST_NAME_LOCALIZE_ID_REQUISITE_CODE " + "SYSRES_CONST_NAME_REQUISITE_CODE " + "SYSRES_CONST_NAME_SINGULAR_REQUISITE_CODE " + "SYSRES_CONST_NAMEAN_INPUT_TYPE " + "SYSRES_CONST_NEGATIVE_PICK_VALUE " + "SYSRES_CONST_NEGATIVE_VALUE " + "SYSRES_CONST_NO " + "SYSRES_CONST_NO_PICK_VALUE " + "SYSRES_CONST_NO_SIGNATURE_REQUISITE_CODE " + "SYSRES_CONST_NO_VALUE " + "SYSRES_CONST_NONE_ACCESS_RIGHTS_TYPE_CODE " + "SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE " + "SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE_MASCULINE " + "SYSRES_CONST_NORMAL_ACCESS_RIGHTS_TYPE_CODE " + "SYSRES_CONST_NORMAL_LIFE_CYCLE_STAGE_DRAW_STYLE " + "SYSRES_CONST_NORMAL_MODE_NAME " + "SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_CODE " + "SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_NAME " + "SYSRES_CONST_NOTE_REQUISITE_CODE " + "SYSRES_CONST_NOTICE_BLOCK_DESCRIPTION " + "SYSRES_CONST_NUM_REQUISITE " + "SYSRES_CONST_NUM_STR_REQUISITE_CODE " + "SYSRES_CONST_NUMERATION_AUTO_NOT_STRONG " + "SYSRES_CONST_NUMERATION_AUTO_STRONG " + "SYSRES_CONST_NUMERATION_FROM_DICTONARY " + "SYSRES_CONST_NUMERATION_MANUAL " + "SYSRES_CONST_NUMERIC_TYPE_CHAR " + "SYSRES_CONST_NUMREQ_REQUISITE_CODE " + "SYSRES_CONST_OBSOLETE_VERSION_STATE_PICK_VALUE " + "SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE " + "SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_CODE " + "SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_FEMININE " + "SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_MASCULINE " + "SYSRES_CONST_OPTIONAL_FORM_COMP_REQCODE_PREFIX " + "SYSRES_CONST_ORANGE_LIFE_CYCLE_STAGE_FONT_COLOR " + "SYSRES_CONST_ORIGINALREF_REQUISITE_CODE " + "SYSRES_CONST_OURFIRM_REF_CODE " + "SYSRES_CONST_OURFIRM_REQUISITE_CODE " + "SYSRES_CONST_OURFIRM_VAR " + "SYSRES_CONST_OUTGOING_WORK_RULE_TYPE_CODE " + "SYSRES_CONST_PICK_NEGATIVE_RESULT " + "SYSRES_CONST_PICK_POSITIVE_RESULT " + "SYSRES_CONST_PICK_REQUISITE " + "SYSRES_CONST_PICK_REQUISITE_TYPE " + "SYSRES_CONST_PICK_TYPE_CHAR " + "SYSRES_CONST_PLAN_STATUS_REQUISITE_CODE " + "SYSRES_CONST_PLATFORM_VERSION_COMMENT " + "SYSRES_CONST_PLUGINS_SETTINGS_DESCRIPTION_REQUISITE_CODE " + "SYSRES_CONST_POSITIVE_PICK_VALUE " + "SYSRES_CONST_POWER_TO_CREATE_ACTION_CODE " + "SYSRES_CONST_POWER_TO_SIGN_ACTION_CODE " + "SYSRES_CONST_PRIORITY_REQUISITE_CODE " + "SYSRES_CONST_QUALIFIED_TASK_TYPE " + "SYSRES_CONST_QUALIFIED_TASK_TYPE_CODE " + "SYSRES_CONST_RECSTAT_REQUISITE_CODE " + "SYSRES_CONST_RED_LIFE_CYCLE_STAGE_FONT_COLOR " + "SYSRES_CONST_REF_ID_T_REF_TYPE_REQUISITE_CODE " + "SYSRES_CONST_REF_REQUISITE " + "SYSRES_CONST_REF_REQUISITE_TYPE " + "SYSRES_CONST_REF_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE " + "SYSRES_CONST_REFERENCE_RECORD_HISTORY_CREATE_ACTION_CODE " + "SYSRES_CONST_REFERENCE_RECORD_HISTORY_DELETE_ACTION_CODE " + "SYSRES_CONST_REFERENCE_RECORD_HISTORY_MODIFY_ACTION_CODE " + "SYSRES_CONST_REFERENCE_TYPE_CHAR " + "SYSRES_CONST_REFERENCE_TYPE_REQUISITE_NAME " + "SYSRES_CONST_REFERENCES_ADD_PARAMS_REQUISITE_CODE " + "SYSRES_CONST_REFERENCES_DISPLAY_REQUISITE_REQUISITE_CODE " + "SYSRES_CONST_REMOTE_SERVER_STATUS_WORKING " + "SYSRES_CONST_REMOTE_SERVER_TYPE_MAIN " + "SYSRES_CONST_REMOTE_SERVER_TYPE_SECONDARY " + "SYSRES_CONST_REMOTE_USER_FLAG_VALUE_CODE " + "SYSRES_CONST_REPORT_APP_EDITOR_INTERNAL " + "SYSRES_CONST_REPORT_BASE_REPORT_ID_REQUISITE_CODE " + "SYSRES_CONST_REPORT_BASE_REPORT_REQUISITE_CODE " + "SYSRES_CONST_REPORT_SCRIPT_REQUISITE_CODE " + "SYSRES_CONST_REPORT_TEMPLATE_REQUISITE_CODE " + "SYSRES_CONST_REPORT_VIEWER_CODE_REQUISITE_CODE " + "SYSRES_CONST_REQ_ALLOW_COMPONENT_DEFAULT_VALUE " + "SYSRES_CONST_REQ_ALLOW_RECORD_DEFAULT_VALUE " + "SYSRES_CONST_REQ_ALLOW_SERVER_COMPONENT_DEFAULT_VALUE " + "SYSRES_CONST_REQ_MODE_AVAILABLE_CODE " + "SYSRES_CONST_REQ_MODE_EDIT_CODE " + "SYSRES_CONST_REQ_MODE_HIDDEN_CODE " + "SYSRES_CONST_REQ_MODE_NOT_AVAILABLE_CODE " + "SYSRES_CONST_REQ_MODE_VIEW_CODE " + "SYSRES_CONST_REQ_NUMBER_REQUISITE_CODE " + "SYSRES_CONST_REQ_SECTION_VALUE " + "SYSRES_CONST_REQ_TYPE_VALUE " + "SYSRES_CONST_REQUISITE_FORMAT_BY_UNIT " + "SYSRES_CONST_REQUISITE_FORMAT_DATE_FULL " + "SYSRES_CONST_REQUISITE_FORMAT_DATE_TIME " + "SYSRES_CONST_REQUISITE_FORMAT_LEFT " + "SYSRES_CONST_REQUISITE_FORMAT_RIGHT " + "SYSRES_CONST_REQUISITE_FORMAT_WITHOUT_UNIT " + "SYSRES_CONST_REQUISITE_NUMBER_REQUISITE_CODE " + "SYSRES_CONST_REQUISITE_SECTION_ACTIONS " + "SYSRES_CONST_REQUISITE_SECTION_BUTTON " + "SYSRES_CONST_REQUISITE_SECTION_BUTTONS " + "SYSRES_CONST_REQUISITE_SECTION_CARD " + "SYSRES_CONST_REQUISITE_SECTION_TABLE " + "SYSRES_CONST_REQUISITE_SECTION_TABLE10 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE11 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE12 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE13 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE14 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE15 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE16 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE17 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE18 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE19 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE2 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE20 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE21 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE22 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE23 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE24 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE3 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE4 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE5 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE6 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE7 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE8 " + "SYSRES_CONST_REQUISITE_SECTION_TABLE9 " + "SYSRES_CONST_REQUISITES_PSEUDOREFERENCE_REQUISITE_NUMBER_REQUISITE_CODE " + "SYSRES_CONST_RIGHT_ALIGNMENT_CODE " + "SYSRES_CONST_ROLES_REFERENCE_CODE " + "SYSRES_CONST_ROUTE_STEP_AFTER_RUS " + "SYSRES_CONST_ROUTE_STEP_AND_CONDITION_RUS " + "SYSRES_CONST_ROUTE_STEP_OR_CONDITION_RUS " + "SYSRES_CONST_ROUTE_TYPE_COMPLEX " + "SYSRES_CONST_ROUTE_TYPE_PARALLEL " + "SYSRES_CONST_ROUTE_TYPE_SERIAL " + "SYSRES_CONST_SBDATASETDESC_NEGATIVE_VALUE " + "SYSRES_CONST_SBDATASETDESC_POSITIVE_VALUE " + "SYSRES_CONST_SBVIEWSDESC_POSITIVE_VALUE " + "SYSRES_CONST_SCRIPT_BLOCK_DESCRIPTION " + "SYSRES_CONST_SEARCH_BY_TEXT_REQUISITE_CODE " + "SYSRES_CONST_SEARCHES_COMPONENT_CONTENT " + "SYSRES_CONST_SEARCHES_CRITERIA_ACTION_NAME " + "SYSRES_CONST_SEARCHES_EDOC_CONTENT " + "SYSRES_CONST_SEARCHES_FOLDER_CONTENT " + "SYSRES_CONST_SEARCHES_JOB_CONTENT " + "SYSRES_CONST_SEARCHES_REFERENCE_CODE " + "SYSRES_CONST_SEARCHES_TASK_CONTENT " + "SYSRES_CONST_SECOND_CHAR " + "SYSRES_CONST_SECTION_REQUISITE_ACTIONS_VALUE " + "SYSRES_CONST_SECTION_REQUISITE_CARD_VALUE " + "SYSRES_CONST_SECTION_REQUISITE_CODE " + "SYSRES_CONST_SECTION_REQUISITE_DETAIL_1_VALUE " + "SYSRES_CONST_SECTION_REQUISITE_DETAIL_2_VALUE " + "SYSRES_CONST_SECTION_REQUISITE_DETAIL_3_VALUE " + "SYSRES_CONST_SECTION_REQUISITE_DETAIL_4_VALUE " + "SYSRES_CONST_SECTION_REQUISITE_DETAIL_5_VALUE " + "SYSRES_CONST_SECTION_REQUISITE_DETAIL_6_VALUE " + "SYSRES_CONST_SELECT_REFERENCE_MODE_NAME " + "SYSRES_CONST_SELECT_TYPE_SELECTABLE " + "SYSRES_CONST_SELECT_TYPE_SELECTABLE_ONLY_CHILD " + "SYSRES_CONST_SELECT_TYPE_SELECTABLE_WITH_CHILD " + "SYSRES_CONST_SELECT_TYPE_UNSLECTABLE " + "SYSRES_CONST_SERVER_TYPE_MAIN " + "SYSRES_CONST_SERVICE_USER_CATEGORY_FIELD_VALUE " + "SYSRES_CONST_SETTINGS_USER_REQUISITE_CODE " + "SYSRES_CONST_SIGNATURE_AND_ENCODE_CERTIFICATE_TYPE_CODE " + "SYSRES_CONST_SIGNATURE_CERTIFICATE_TYPE_CODE " + "SYSRES_CONST_SINGULAR_TITLE_REQUISITE_CODE " + "SYSRES_CONST_SQL_SERVER_AUTHENTIFICATION_FLAG_VALUE_CODE " + "SYSRES_CONST_SQL_SERVER_ENCODE_AUTHENTIFICATION_FLAG_VALUE_CODE " + "SYSRES_CONST_STANDART_ROUTE_REFERENCE_CODE " + "SYSRES_CONST_STANDART_ROUTE_REFERENCE_COMMENT_REQUISITE_CODE " + "SYSRES_CONST_STANDART_ROUTES_GROUPS_REFERENCE_CODE " + "SYSRES_CONST_STATE_REQ_NAME " + "SYSRES_CONST_STATE_REQUISITE_ACTIVE_VALUE " + "SYSRES_CONST_STATE_REQUISITE_CLOSED_VALUE " + "SYSRES_CONST_STATE_REQUISITE_CODE " + "SYSRES_CONST_STATIC_ROLE_TYPE_CODE " + "SYSRES_CONST_STATUS_PLAN_DEFAULT_VALUE " + "SYSRES_CONST_STATUS_VALUE_AUTOCLEANING " + "SYSRES_CONST_STATUS_VALUE_BLUE_SQUARE " + "SYSRES_CONST_STATUS_VALUE_COMPLETE " + "SYSRES_CONST_STATUS_VALUE_GREEN_SQUARE " + "SYSRES_CONST_STATUS_VALUE_ORANGE_SQUARE " + "SYSRES_CONST_STATUS_VALUE_PURPLE_SQUARE " + "SYSRES_CONST_STATUS_VALUE_RED_SQUARE " + "SYSRES_CONST_STATUS_VALUE_SUSPEND " + "SYSRES_CONST_STATUS_VALUE_YELLOW_SQUARE " + "SYSRES_CONST_STDROUTE_SHOW_TO_USERS_REQUISITE_CODE " + "SYSRES_CONST_STORAGE_TYPE_FILE " + "SYSRES_CONST_STORAGE_TYPE_SQL_SERVER " + "SYSRES_CONST_STR_REQUISITE " + "SYSRES_CONST_STRIKEOUT_LIFE_CYCLE_STAGE_DRAW_STYLE " + "SYSRES_CONST_STRING_FORMAT_LEFT_ALIGN_CHAR " + "SYSRES_CONST_STRING_FORMAT_RIGHT_ALIGN_CHAR " + "SYSRES_CONST_STRING_REQUISITE_CODE " + "SYSRES_CONST_STRING_REQUISITE_TYPE " + "SYSRES_CONST_STRING_TYPE_CHAR " + "SYSRES_CONST_SUBSTITUTES_PSEUDOREFERENCE_CODE " + "SYSRES_CONST_SUBTASK_BLOCK_DESCRIPTION " + "SYSRES_CONST_SYSTEM_SETTING_CURRENT_USER_PARAM_VALUE " + "SYSRES_CONST_SYSTEM_SETTING_EMPTY_VALUE_PARAM_VALUE " + "SYSRES_CONST_SYSTEM_VERSION_COMMENT " + "SYSRES_CONST_TASK_ACCESS_TYPE_ALL " + "SYSRES_CONST_TASK_ACCESS_TYPE_ALL_MEMBERS " + "SYSRES_CONST_TASK_ACCESS_TYPE_MANUAL " + "SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION " + "SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION_AND_PASSWORD " + "SYSRES_CONST_TASK_ENCODE_TYPE_NONE " + "SYSRES_CONST_TASK_ENCODE_TYPE_PASSWORD " + "SYSRES_CONST_TASK_ROUTE_ALL_CONDITION " + "SYSRES_CONST_TASK_ROUTE_AND_CONDITION " + "SYSRES_CONST_TASK_ROUTE_OR_CONDITION " + "SYSRES_CONST_TASK_STATE_ABORTED " + "SYSRES_CONST_TASK_STATE_COMPLETE " + "SYSRES_CONST_TASK_STATE_CONTINUED " + "SYSRES_CONST_TASK_STATE_CONTROL " + "SYSRES_CONST_TASK_STATE_INIT " + "SYSRES_CONST_TASK_STATE_WORKING " + "SYSRES_CONST_TASK_TITLE " + "SYSRES_CONST_TASK_TYPES_GROUPS_REFERENCE_CODE " + "SYSRES_CONST_TASK_TYPES_REFERENCE_CODE " + "SYSRES_CONST_TEMPLATES_REFERENCE_CODE " + "SYSRES_CONST_TEST_DATE_REQUISITE_NAME " + "SYSRES_CONST_TEST_DEV_DATABASE_NAME " + "SYSRES_CONST_TEST_DEV_SYSTEM_CODE " + "SYSRES_CONST_TEST_EDMS_DATABASE_NAME " + "SYSRES_CONST_TEST_EDMS_MAIN_CODE " + "SYSRES_CONST_TEST_EDMS_MAIN_DB_NAME " + "SYSRES_CONST_TEST_EDMS_SECOND_CODE " + "SYSRES_CONST_TEST_EDMS_SECOND_DB_NAME " + "SYSRES_CONST_TEST_EDMS_SYSTEM_CODE " + "SYSRES_CONST_TEST_NUMERIC_REQUISITE_NAME " + "SYSRES_CONST_TEXT_REQUISITE " + "SYSRES_CONST_TEXT_REQUISITE_CODE " + "SYSRES_CONST_TEXT_REQUISITE_TYPE " + "SYSRES_CONST_TEXT_TYPE_CHAR " + "SYSRES_CONST_TYPE_CODE_REQUISITE_CODE " + "SYSRES_CONST_TYPE_REQUISITE_CODE " + "SYSRES_CONST_UNDEFINED_LIFE_CYCLE_STAGE_FONT_COLOR " + "SYSRES_CONST_UNITS_SECTION_ID_REQUISITE_CODE " + "SYSRES_CONST_UNITS_SECTION_REQUISITE_CODE " + "SYSRES_CONST_UNOPERATING_RECORD_FLAG_VALUE_CODE " + "SYSRES_CONST_UNSTORED_DATA_REQUISITE_CODE " + "SYSRES_CONST_UNSTORED_DATA_REQUISITE_NAME " + "SYSRES_CONST_USE_ACCESS_TYPE_CODE " + "SYSRES_CONST_USE_ACCESS_TYPE_NAME " + "SYSRES_CONST_USER_ACCOUNT_TYPE_VALUE_CODE " + "SYSRES_CONST_USER_ADDITIONAL_INFORMATION_REQUISITE_CODE " + "SYSRES_CONST_USER_AND_GROUP_ID_FROM_PSEUDOREFERENCE_REQUISITE_CODE " + "SYSRES_CONST_USER_CATEGORY_NORMAL " + "SYSRES_CONST_USER_CERTIFICATE_REQUISITE_CODE " + "SYSRES_CONST_USER_CERTIFICATE_STATE_REQUISITE_CODE " + "SYSRES_CONST_USER_CERTIFICATE_SUBJECT_NAME_REQUISITE_CODE " + "SYSRES_CONST_USER_CERTIFICATE_THUMBPRINT_REQUISITE_CODE " + "SYSRES_CONST_USER_COMMON_CATEGORY " + "SYSRES_CONST_USER_COMMON_CATEGORY_CODE " + "SYSRES_CONST_USER_FULL_NAME_REQUISITE_CODE " + "SYSRES_CONST_USER_GROUP_TYPE_REQUISITE_CODE " + "SYSRES_CONST_USER_LOGIN_REQUISITE_CODE " + "SYSRES_CONST_USER_REMOTE_CONTROLLER_REQUISITE_CODE " + "SYSRES_CONST_USER_REMOTE_SYSTEM_REQUISITE_CODE " + "SYSRES_CONST_USER_RIGHTS_T_REQUISITE_CODE " + "SYSRES_CONST_USER_SERVER_NAME_REQUISITE_CODE " + "SYSRES_CONST_USER_SERVICE_CATEGORY " + "SYSRES_CONST_USER_SERVICE_CATEGORY_CODE " + "SYSRES_CONST_USER_STATUS_ADMINISTRATOR_CODE " + "SYSRES_CONST_USER_STATUS_ADMINISTRATOR_NAME " + "SYSRES_CONST_USER_STATUS_DEVELOPER_CODE " + "SYSRES_CONST_USER_STATUS_DEVELOPER_NAME " + "SYSRES_CONST_USER_STATUS_DISABLED_CODE " + "SYSRES_CONST_USER_STATUS_DISABLED_NAME " + "SYSRES_CONST_USER_STATUS_SYSTEM_DEVELOPER_CODE " + "SYSRES_CONST_USER_STATUS_USER_CODE " + "SYSRES_CONST_USER_STATUS_USER_NAME " + "SYSRES_CONST_USER_STATUS_USER_NAME_DEPRECATED " + "SYSRES_CONST_USER_TYPE_FIELD_VALUE_USER " + "SYSRES_CONST_USER_TYPE_REQUISITE_CODE " + "SYSRES_CONST_USERS_CONTROLLER_REQUISITE_CODE " + "SYSRES_CONST_USERS_IS_MAIN_SERVER_REQUISITE_CODE " + "SYSRES_CONST_USERS_REFERENCE_CODE " + "SYSRES_CONST_USERS_REGISTRATION_CERTIFICATES_ACTION_NAME " + "SYSRES_CONST_USERS_REQUISITE_CODE " + "SYSRES_CONST_USERS_SYSTEM_REQUISITE_CODE " + "SYSRES_CONST_USERS_USER_ACCESS_RIGHTS_TYPR_REQUISITE_CODE " + "SYSRES_CONST_USERS_USER_AUTHENTICATION_REQUISITE_CODE " + "SYSRES_CONST_USERS_USER_COMPONENT_REQUISITE_CODE " + "SYSRES_CONST_USERS_USER_GROUP_REQUISITE_CODE " + "SYSRES_CONST_USERS_VIEW_CERTIFICATES_ACTION_NAME " + "SYSRES_CONST_VIEW_DEFAULT_CODE " + "SYSRES_CONST_VIEW_DEFAULT_NAME " + "SYSRES_CONST_VIEWER_REQUISITE_CODE " + "SYSRES_CONST_WAITING_BLOCK_DESCRIPTION " + "SYSRES_CONST_WIZARD_FORM_LABEL_TEST_STRING  " + "SYSRES_CONST_WIZARD_QUERY_PARAM_HEIGHT_ETALON_STRING " + "SYSRES_CONST_WIZARD_REFERENCE_COMMENT_REQUISITE_CODE " + "SYSRES_CONST_WORK_RULES_DESCRIPTION_REQUISITE_CODE " + "SYSRES_CONST_WORK_TIME_CALENDAR_REFERENCE_CODE " + "SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE " + "SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE " + "SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE_RUS " + "SYSRES_CONST_WORK_WORKFLOW_SOFT_ROUTE_TYPE_VALUE_CODE_RUS " + "SYSRES_CONST_WORKFLOW_ROUTE_TYPR_HARD " + "SYSRES_CONST_WORKFLOW_ROUTE_TYPR_SOFT " + "SYSRES_CONST_XML_ENCODING " + "SYSRES_CONST_XREC_STAT_REQUISITE_CODE " + "SYSRES_CONST_XRECID_FIELD_NAME " + "SYSRES_CONST_YES " + "SYSRES_CONST_YES_NO_2_REQUISITE_CODE " + "SYSRES_CONST_YES_NO_REQUISITE_CODE " + "SYSRES_CONST_YES_NO_T_REF_TYPE_REQUISITE_CODE " + "SYSRES_CONST_YES_PICK_VALUE " + "SYSRES_CONST_YES_VALUE ";
		const base_constants = "CR FALSE nil NO_VALUE NULL TAB TRUE YES_VALUE ";
		const base_group_name_constants = "ADMINISTRATORS_GROUP_NAME CUSTOMIZERS_GROUP_NAME DEVELOPERS_GROUP_NAME SERVICE_USERS_GROUP_NAME ";
		const decision_block_properties_constants = "DECISION_BLOCK_FIRST_OPERAND_PROPERTY DECISION_BLOCK_NAME_PROPERTY DECISION_BLOCK_OPERATION_PROPERTY " + "DECISION_BLOCK_RESULT_TYPE_PROPERTY DECISION_BLOCK_SECOND_OPERAND_PROPERTY ";
		const file_extension_constants = "ANY_FILE_EXTENTION COMPRESSED_DOCUMENT_EXTENSION EXTENDED_DOCUMENT_EXTENSION " + "SHORT_COMPRESSED_DOCUMENT_EXTENSION SHORT_EXTENDED_DOCUMENT_EXTENSION ";
		const job_block_properties_constants = "JOB_BLOCK_ABORT_DEADLINE_PROPERTY " + "JOB_BLOCK_AFTER_FINISH_EVENT " + "JOB_BLOCK_AFTER_QUERY_PARAMETERS_EVENT " + "JOB_BLOCK_ATTACHMENT_PROPERTY " + "JOB_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY " + "JOB_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY " + "JOB_BLOCK_BEFORE_QUERY_PARAMETERS_EVENT " + "JOB_BLOCK_BEFORE_START_EVENT " + "JOB_BLOCK_CREATED_JOBS_PROPERTY " + "JOB_BLOCK_DEADLINE_PROPERTY " + "JOB_BLOCK_EXECUTION_RESULTS_PROPERTY " + "JOB_BLOCK_IS_PARALLEL_PROPERTY " + "JOB_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY " + "JOB_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " + "JOB_BLOCK_JOB_TEXT_PROPERTY " + "JOB_BLOCK_NAME_PROPERTY " + "JOB_BLOCK_NEED_SIGN_ON_PERFORM_PROPERTY " + "JOB_BLOCK_PERFORMER_PROPERTY " + "JOB_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY " + "JOB_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY " + "JOB_BLOCK_SUBJECT_PROPERTY ";
		const language_code_constants = "ENGLISH_LANGUAGE_CODE RUSSIAN_LANGUAGE_CODE ";
		const launching_external_applications_constants = "smHidden smMaximized smMinimized smNormal wmNo wmYes ";
		const link_kind_constants = "COMPONENT_TOKEN_LINK_KIND " + "DOCUMENT_LINK_KIND " + "EDOCUMENT_LINK_KIND " + "FOLDER_LINK_KIND " + "JOB_LINK_KIND " + "REFERENCE_LINK_KIND " + "TASK_LINK_KIND ";
		const lock_type_constants = "COMPONENT_TOKEN_LOCK_TYPE EDOCUMENT_VERSION_LOCK_TYPE ";
		const monitor_block_properties_constants = "MONITOR_BLOCK_AFTER_FINISH_EVENT " + "MONITOR_BLOCK_BEFORE_START_EVENT " + "MONITOR_BLOCK_DEADLINE_PROPERTY " + "MONITOR_BLOCK_INTERVAL_PROPERTY " + "MONITOR_BLOCK_INTERVAL_TYPE_PROPERTY " + "MONITOR_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " + "MONITOR_BLOCK_NAME_PROPERTY " + "MONITOR_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY " + "MONITOR_BLOCK_SEARCH_SCRIPT_PROPERTY ";
		const notice_block_properties_constants = "NOTICE_BLOCK_AFTER_FINISH_EVENT " + "NOTICE_BLOCK_ATTACHMENT_PROPERTY " + "NOTICE_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY " + "NOTICE_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY " + "NOTICE_BLOCK_BEFORE_START_EVENT " + "NOTICE_BLOCK_CREATED_NOTICES_PROPERTY " + "NOTICE_BLOCK_DEADLINE_PROPERTY " + "NOTICE_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " + "NOTICE_BLOCK_NAME_PROPERTY " + "NOTICE_BLOCK_NOTICE_TEXT_PROPERTY " + "NOTICE_BLOCK_PERFORMER_PROPERTY " + "NOTICE_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY " + "NOTICE_BLOCK_SUBJECT_PROPERTY ";
		const object_events_constants = "dseAfterCancel " + "dseAfterClose " + "dseAfterDelete " + "dseAfterDeleteOutOfTransaction " + "dseAfterInsert " + "dseAfterOpen " + "dseAfterScroll " + "dseAfterUpdate " + "dseAfterUpdateOutOfTransaction " + "dseBeforeCancel " + "dseBeforeClose " + "dseBeforeDelete " + "dseBeforeDetailUpdate " + "dseBeforeInsert " + "dseBeforeOpen " + "dseBeforeUpdate " + "dseOnAnyRequisiteChange " + "dseOnCloseRecord " + "dseOnDeleteError " + "dseOnOpenRecord " + "dseOnPrepareUpdate " + "dseOnUpdateError " + "dseOnUpdateRatifiedRecord " + "dseOnValidDelete " + "dseOnValidUpdate " + "reOnChange " + "reOnChangeValues " + "SELECTION_BEGIN_ROUTE_EVENT " + "SELECTION_END_ROUTE_EVENT ";
		const object_params_constants = "CURRENT_PERIOD_IS_REQUIRED " + "PREVIOUS_CARD_TYPE_NAME " + "SHOW_RECORD_PROPERTIES_FORM ";
		const other_constants = "ACCESS_RIGHTS_SETTING_DIALOG_CODE " + "ADMINISTRATOR_USER_CODE " + "ANALYTIC_REPORT_TYPE " + "asrtHideLocal " + "asrtHideRemote " + "CALCULATED_ROLE_TYPE_CODE " + "COMPONENTS_REFERENCE_DEVELOPER_VIEW_CODE " + "DCTS_TEST_PROTOCOLS_FOLDER_PATH " + "E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED " + "E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED_BY_USER " + "E_EDOC_VERSION_ALREDY_SIGNED " + "E_EDOC_VERSION_ALREDY_SIGNED_BY_USER " + "EDOC_TYPES_CODE_REQUISITE_FIELD_NAME " + "EDOCUMENTS_ALIAS_NAME " + "FILES_FOLDER_PATH " + "FILTER_OPERANDS_DELIMITER " + "FILTER_OPERATIONS_DELIMITER " + "FORMCARD_NAME " + "FORMLIST_NAME " + "GET_EXTENDED_DOCUMENT_EXTENSION_CREATION_MODE " + "GET_EXTENDED_DOCUMENT_EXTENSION_IMPORT_MODE " + "INTEGRATED_REPORT_TYPE " + "IS_BUILDER_APPLICATION_ROLE " + "IS_BUILDER_APPLICATION_ROLE2 " + "IS_BUILDER_USERS " + "ISBSYSDEV " + "LOG_FOLDER_PATH " + "mbCancel " + "mbNo " + "mbNoToAll " + "mbOK " + "mbYes " + "mbYesToAll " + "MEMORY_DATASET_DESRIPTIONS_FILENAME " + "mrNo " + "mrNoToAll " + "mrYes " + "mrYesToAll " + "MULTIPLE_SELECT_DIALOG_CODE " + "NONOPERATING_RECORD_FLAG_FEMININE " + "NONOPERATING_RECORD_FLAG_MASCULINE " + "OPERATING_RECORD_FLAG_FEMININE " + "OPERATING_RECORD_FLAG_MASCULINE " + "PROFILING_SETTINGS_COMMON_SETTINGS_CODE_VALUE " + "PROGRAM_INITIATED_LOOKUP_ACTION " + "ratDelete " + "ratEdit " + "ratInsert " + "REPORT_TYPE " + "REQUIRED_PICK_VALUES_VARIABLE " + "rmCard " + "rmList " + "SBRTE_PROGID_DEV " + "SBRTE_PROGID_RELEASE " + "STATIC_ROLE_TYPE_CODE " + "SUPPRESS_EMPTY_TEMPLATE_CREATION " + "SYSTEM_USER_CODE " + "UPDATE_DIALOG_DATASET " + "USED_IN_OBJECT_HINT_PARAM " + "USER_INITIATED_LOOKUP_ACTION " + "USER_NAME_FORMAT " + "USER_SELECTION_RESTRICTIONS " + "WORKFLOW_TEST_PROTOCOLS_FOLDER_PATH " + "ELS_SUBTYPE_CONTROL_NAME " + "ELS_FOLDER_KIND_CONTROL_NAME " + "REPEAT_PROCESS_CURRENT_OBJECT_EXCEPTION_NAME ";
		const privileges_constants = "PRIVILEGE_COMPONENT_FULL_ACCESS " + "PRIVILEGE_DEVELOPMENT_EXPORT " + "PRIVILEGE_DEVELOPMENT_IMPORT " + "PRIVILEGE_DOCUMENT_DELETE " + "PRIVILEGE_ESD " + "PRIVILEGE_FOLDER_DELETE " + "PRIVILEGE_MANAGE_ACCESS_RIGHTS " + "PRIVILEGE_MANAGE_REPLICATION " + "PRIVILEGE_MANAGE_SESSION_SERVER " + "PRIVILEGE_OBJECT_FULL_ACCESS " + "PRIVILEGE_OBJECT_VIEW " + "PRIVILEGE_RESERVE_LICENSE " + "PRIVILEGE_SYSTEM_CUSTOMIZE " + "PRIVILEGE_SYSTEM_DEVELOP " + "PRIVILEGE_SYSTEM_INSTALL " + "PRIVILEGE_TASK_DELETE " + "PRIVILEGE_USER_PLUGIN_SETTINGS_CUSTOMIZE " + "PRIVILEGES_PSEUDOREFERENCE_CODE ";
		const pseudoreference_code_constants = "ACCESS_TYPES_PSEUDOREFERENCE_CODE " + "ALL_AVAILABLE_COMPONENTS_PSEUDOREFERENCE_CODE " + "ALL_AVAILABLE_PRIVILEGES_PSEUDOREFERENCE_CODE " + "ALL_REPLICATE_COMPONENTS_PSEUDOREFERENCE_CODE " + "AVAILABLE_DEVELOPERS_COMPONENTS_PSEUDOREFERENCE_CODE " + "COMPONENTS_PSEUDOREFERENCE_CODE " + "FILTRATER_SETTINGS_CONFLICTS_PSEUDOREFERENCE_CODE " + "GROUPS_PSEUDOREFERENCE_CODE " + "RECEIVE_PROTOCOL_PSEUDOREFERENCE_CODE " + "REFERENCE_REQUISITE_PSEUDOREFERENCE_CODE " + "REFERENCE_REQUISITES_PSEUDOREFERENCE_CODE " + "REFTYPES_PSEUDOREFERENCE_CODE " + "REPLICATION_SEANCES_DIARY_PSEUDOREFERENCE_CODE " + "SEND_PROTOCOL_PSEUDOREFERENCE_CODE " + "SUBSTITUTES_PSEUDOREFERENCE_CODE " + "SYSTEM_SETTINGS_PSEUDOREFERENCE_CODE " + "UNITS_PSEUDOREFERENCE_CODE " + "USERS_PSEUDOREFERENCE_CODE " + "VIEWERS_PSEUDOREFERENCE_CODE ";
		const requisite_ISBCertificateType_values_constants = "CERTIFICATE_TYPE_ENCRYPT " + "CERTIFICATE_TYPE_SIGN " + "CERTIFICATE_TYPE_SIGN_AND_ENCRYPT ";
		const requisite_ISBEDocStorageType_values_constants = "STORAGE_TYPE_FILE " + "STORAGE_TYPE_NAS_CIFS " + "STORAGE_TYPE_SAPERION " + "STORAGE_TYPE_SQL_SERVER ";
		const requisite_compType2_values_constants = "COMPTYPE2_REQUISITE_DOCUMENTS_VALUE " + "COMPTYPE2_REQUISITE_TASKS_VALUE " + "COMPTYPE2_REQUISITE_FOLDERS_VALUE " + "COMPTYPE2_REQUISITE_REFERENCES_VALUE ";
		const requisite_name_constants = "SYSREQ_CODE " + "SYSREQ_COMPTYPE2 " + "SYSREQ_CONST_AVAILABLE_FOR_WEB " + "SYSREQ_CONST_COMMON_CODE " + "SYSREQ_CONST_COMMON_VALUE " + "SYSREQ_CONST_FIRM_CODE " + "SYSREQ_CONST_FIRM_STATUS " + "SYSREQ_CONST_FIRM_VALUE " + "SYSREQ_CONST_SERVER_STATUS " + "SYSREQ_CONTENTS " + "SYSREQ_DATE_OPEN " + "SYSREQ_DATE_CLOSE " + "SYSREQ_DESCRIPTION " + "SYSREQ_DESCRIPTION_LOCALIZE_ID " + "SYSREQ_DOUBLE " + "SYSREQ_EDOC_ACCESS_TYPE " + "SYSREQ_EDOC_AUTHOR " + "SYSREQ_EDOC_CREATED " + "SYSREQ_EDOC_DELEGATE_RIGHTS_REQUISITE_CODE " + "SYSREQ_EDOC_EDITOR " + "SYSREQ_EDOC_ENCODE_TYPE " + "SYSREQ_EDOC_ENCRYPTION_PLUGIN_NAME " + "SYSREQ_EDOC_ENCRYPTION_PLUGIN_VERSION " + "SYSREQ_EDOC_EXPORT_DATE " + "SYSREQ_EDOC_EXPORTER " + "SYSREQ_EDOC_KIND " + "SYSREQ_EDOC_LIFE_STAGE_NAME " + "SYSREQ_EDOC_LOCKED_FOR_SERVER_CODE " + "SYSREQ_EDOC_MODIFIED " + "SYSREQ_EDOC_NAME " + "SYSREQ_EDOC_NOTE " + "SYSREQ_EDOC_QUALIFIED_ID " + "SYSREQ_EDOC_SESSION_KEY " + "SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_NAME " + "SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_VERSION " + "SYSREQ_EDOC_SIGNATURE_TYPE " + "SYSREQ_EDOC_SIGNED " + "SYSREQ_EDOC_STORAGE " + "SYSREQ_EDOC_STORAGES_ARCHIVE_STORAGE " + "SYSREQ_EDOC_STORAGES_CHECK_RIGHTS " + "SYSREQ_EDOC_STORAGES_COMPUTER_NAME " + "SYSREQ_EDOC_STORAGES_EDIT_IN_STORAGE " + "SYSREQ_EDOC_STORAGES_EXECUTIVE_STORAGE " + "SYSREQ_EDOC_STORAGES_FUNCTION " + "SYSREQ_EDOC_STORAGES_INITIALIZED " + "SYSREQ_EDOC_STORAGES_LOCAL_PATH " + "SYSREQ_EDOC_STORAGES_SAPERION_DATABASE_NAME " + "SYSREQ_EDOC_STORAGES_SEARCH_BY_TEXT " + "SYSREQ_EDOC_STORAGES_SERVER_NAME " + "SYSREQ_EDOC_STORAGES_SHARED_SOURCE_NAME " + "SYSREQ_EDOC_STORAGES_TYPE " + "SYSREQ_EDOC_TEXT_MODIFIED " + "SYSREQ_EDOC_TYPE_ACT_CODE " + "SYSREQ_EDOC_TYPE_ACT_DESCRIPTION " + "SYSREQ_EDOC_TYPE_ACT_DESCRIPTION_LOCALIZE_ID " + "SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE " + "SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE_EXISTS " + "SYSREQ_EDOC_TYPE_ACT_SECTION " + "SYSREQ_EDOC_TYPE_ADD_PARAMS " + "SYSREQ_EDOC_TYPE_COMMENT " + "SYSREQ_EDOC_TYPE_EVENT_TEXT " + "SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR " + "SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID " + "SYSREQ_EDOC_TYPE_NAME_LOCALIZE_ID " + "SYSREQ_EDOC_TYPE_NUMERATION_METHOD " + "SYSREQ_EDOC_TYPE_PSEUDO_REQUISITE_CODE " + "SYSREQ_EDOC_TYPE_REQ_CODE " + "SYSREQ_EDOC_TYPE_REQ_DESCRIPTION " + "SYSREQ_EDOC_TYPE_REQ_DESCRIPTION_LOCALIZE_ID " + "SYSREQ_EDOC_TYPE_REQ_IS_LEADING " + "SYSREQ_EDOC_TYPE_REQ_IS_REQUIRED " + "SYSREQ_EDOC_TYPE_REQ_NUMBER " + "SYSREQ_EDOC_TYPE_REQ_ON_CHANGE " + "SYSREQ_EDOC_TYPE_REQ_ON_CHANGE_EXISTS " + "SYSREQ_EDOC_TYPE_REQ_ON_SELECT " + "SYSREQ_EDOC_TYPE_REQ_ON_SELECT_KIND " + "SYSREQ_EDOC_TYPE_REQ_SECTION " + "SYSREQ_EDOC_TYPE_VIEW_CARD " + "SYSREQ_EDOC_TYPE_VIEW_CODE " + "SYSREQ_EDOC_TYPE_VIEW_COMMENT " + "SYSREQ_EDOC_TYPE_VIEW_IS_MAIN " + "SYSREQ_EDOC_TYPE_VIEW_NAME " + "SYSREQ_EDOC_TYPE_VIEW_NAME_LOCALIZE_ID " + "SYSREQ_EDOC_VERSION_AUTHOR " + "SYSREQ_EDOC_VERSION_CRC " + "SYSREQ_EDOC_VERSION_DATA " + "SYSREQ_EDOC_VERSION_EDITOR " + "SYSREQ_EDOC_VERSION_EXPORT_DATE " + "SYSREQ_EDOC_VERSION_EXPORTER " + "SYSREQ_EDOC_VERSION_HIDDEN " + "SYSREQ_EDOC_VERSION_LIFE_STAGE " + "SYSREQ_EDOC_VERSION_MODIFIED " + "SYSREQ_EDOC_VERSION_NOTE " + "SYSREQ_EDOC_VERSION_SIGNATURE_TYPE " + "SYSREQ_EDOC_VERSION_SIGNED " + "SYSREQ_EDOC_VERSION_SIZE " + "SYSREQ_EDOC_VERSION_SOURCE " + "SYSREQ_EDOC_VERSION_TEXT_MODIFIED " + "SYSREQ_EDOCKIND_DEFAULT_VERSION_STATE_CODE " + "SYSREQ_FOLDER_KIND " + "SYSREQ_FUNC_CATEGORY " + "SYSREQ_FUNC_COMMENT " + "SYSREQ_FUNC_GROUP " + "SYSREQ_FUNC_GROUP_COMMENT " + "SYSREQ_FUNC_GROUP_NUMBER " + "SYSREQ_FUNC_HELP " + "SYSREQ_FUNC_PARAM_DEF_VALUE " + "SYSREQ_FUNC_PARAM_IDENT " + "SYSREQ_FUNC_PARAM_NUMBER " + "SYSREQ_FUNC_PARAM_TYPE " + "SYSREQ_FUNC_TEXT " + "SYSREQ_GROUP_CATEGORY " + "SYSREQ_ID " + "SYSREQ_LAST_UPDATE " + "SYSREQ_LEADER_REFERENCE " + "SYSREQ_LINE_NUMBER " + "SYSREQ_MAIN_RECORD_ID " + "SYSREQ_NAME " + "SYSREQ_NAME_LOCALIZE_ID " + "SYSREQ_NOTE " + "SYSREQ_ORIGINAL_RECORD " + "SYSREQ_OUR_FIRM " + "SYSREQ_PROFILING_SETTINGS_BATCH_LOGING " + "SYSREQ_PROFILING_SETTINGS_BATCH_SIZE " + "SYSREQ_PROFILING_SETTINGS_PROFILING_ENABLED " + "SYSREQ_PROFILING_SETTINGS_SQL_PROFILING_ENABLED " + "SYSREQ_PROFILING_SETTINGS_START_LOGGED " + "SYSREQ_RECORD_STATUS " + "SYSREQ_REF_REQ_FIELD_NAME " + "SYSREQ_REF_REQ_FORMAT " + "SYSREQ_REF_REQ_GENERATED " + "SYSREQ_REF_REQ_LENGTH " + "SYSREQ_REF_REQ_PRECISION " + "SYSREQ_REF_REQ_REFERENCE " + "SYSREQ_REF_REQ_SECTION " + "SYSREQ_REF_REQ_STORED " + "SYSREQ_REF_REQ_TOKENS " + "SYSREQ_REF_REQ_TYPE " + "SYSREQ_REF_REQ_VIEW " + "SYSREQ_REF_TYPE_ACT_CODE " + "SYSREQ_REF_TYPE_ACT_DESCRIPTION " + "SYSREQ_REF_TYPE_ACT_DESCRIPTION_LOCALIZE_ID " + "SYSREQ_REF_TYPE_ACT_ON_EXECUTE " + "SYSREQ_REF_TYPE_ACT_ON_EXECUTE_EXISTS " + "SYSREQ_REF_TYPE_ACT_SECTION " + "SYSREQ_REF_TYPE_ADD_PARAMS " + "SYSREQ_REF_TYPE_COMMENT " + "SYSREQ_REF_TYPE_COMMON_SETTINGS " + "SYSREQ_REF_TYPE_DISPLAY_REQUISITE_NAME " + "SYSREQ_REF_TYPE_EVENT_TEXT " + "SYSREQ_REF_TYPE_MAIN_LEADING_REF " + "SYSREQ_REF_TYPE_NAME_IN_SINGULAR " + "SYSREQ_REF_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID " + "SYSREQ_REF_TYPE_NAME_LOCALIZE_ID " + "SYSREQ_REF_TYPE_NUMERATION_METHOD " + "SYSREQ_REF_TYPE_REQ_CODE " + "SYSREQ_REF_TYPE_REQ_DESCRIPTION " + "SYSREQ_REF_TYPE_REQ_DESCRIPTION_LOCALIZE_ID " + "SYSREQ_REF_TYPE_REQ_IS_CONTROL " + "SYSREQ_REF_TYPE_REQ_IS_FILTER " + "SYSREQ_REF_TYPE_REQ_IS_LEADING " + "SYSREQ_REF_TYPE_REQ_IS_REQUIRED " + "SYSREQ_REF_TYPE_REQ_NUMBER " + "SYSREQ_REF_TYPE_REQ_ON_CHANGE " + "SYSREQ_REF_TYPE_REQ_ON_CHANGE_EXISTS " + "SYSREQ_REF_TYPE_REQ_ON_SELECT " + "SYSREQ_REF_TYPE_REQ_ON_SELECT_KIND " + "SYSREQ_REF_TYPE_REQ_SECTION " + "SYSREQ_REF_TYPE_VIEW_CARD " + "SYSREQ_REF_TYPE_VIEW_CODE " + "SYSREQ_REF_TYPE_VIEW_COMMENT " + "SYSREQ_REF_TYPE_VIEW_IS_MAIN " + "SYSREQ_REF_TYPE_VIEW_NAME " + "SYSREQ_REF_TYPE_VIEW_NAME_LOCALIZE_ID " + "SYSREQ_REFERENCE_TYPE_ID " + "SYSREQ_STATE " + "SYSREQ_STATЕ " + "SYSREQ_SYSTEM_SETTINGS_VALUE " + "SYSREQ_TYPE " + "SYSREQ_UNIT " + "SYSREQ_UNIT_ID " + "SYSREQ_USER_GROUPS_GROUP_FULL_NAME " + "SYSREQ_USER_GROUPS_GROUP_NAME " + "SYSREQ_USER_GROUPS_GROUP_SERVER_NAME " + "SYSREQ_USERS_ACCESS_RIGHTS " + "SYSREQ_USERS_AUTHENTICATION " + "SYSREQ_USERS_CATEGORY " + "SYSREQ_USERS_COMPONENT " + "SYSREQ_USERS_COMPONENT_USER_IS_PUBLIC " + "SYSREQ_USERS_DOMAIN " + "SYSREQ_USERS_FULL_USER_NAME " + "SYSREQ_USERS_GROUP " + "SYSREQ_USERS_IS_MAIN_SERVER " + "SYSREQ_USERS_LOGIN " + "SYSREQ_USERS_REFERENCE_USER_IS_PUBLIC " + "SYSREQ_USERS_STATUS " + "SYSREQ_USERS_USER_CERTIFICATE " + "SYSREQ_USERS_USER_CERTIFICATE_INFO " + "SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_NAME " + "SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_VERSION " + "SYSREQ_USERS_USER_CERTIFICATE_STATE " + "SYSREQ_USERS_USER_CERTIFICATE_SUBJECT_NAME " + "SYSREQ_USERS_USER_CERTIFICATE_THUMBPRINT " + "SYSREQ_USERS_USER_DEFAULT_CERTIFICATE " + "SYSREQ_USERS_USER_DESCRIPTION " + "SYSREQ_USERS_USER_GLOBAL_NAME " + "SYSREQ_USERS_USER_LOGIN " + "SYSREQ_USERS_USER_MAIN_SERVER " + "SYSREQ_USERS_USER_TYPE " + "SYSREQ_WORK_RULES_FOLDER_ID ";
		const result_constants = "RESULT_VAR_NAME RESULT_VAR_NAME_ENG ";
		const rule_identification_constants = "AUTO_NUMERATION_RULE_ID " + "CANT_CHANGE_ID_REQUISITE_RULE_ID " + "CANT_CHANGE_OURFIRM_REQUISITE_RULE_ID " + "CHECK_CHANGING_REFERENCE_RECORD_USE_RULE_ID " + "CHECK_CODE_REQUISITE_RULE_ID " + "CHECK_DELETING_REFERENCE_RECORD_USE_RULE_ID " + "CHECK_FILTRATER_CHANGES_RULE_ID " + "CHECK_RECORD_INTERVAL_RULE_ID " + "CHECK_REFERENCE_INTERVAL_RULE_ID " + "CHECK_REQUIRED_DATA_FULLNESS_RULE_ID " + "CHECK_REQUIRED_REQUISITES_FULLNESS_RULE_ID " + "MAKE_RECORD_UNRATIFIED_RULE_ID " + "RESTORE_AUTO_NUMERATION_RULE_ID " + "SET_FIRM_CONTEXT_FROM_RECORD_RULE_ID " + "SET_FIRST_RECORD_IN_LIST_FORM_RULE_ID " + "SET_IDSPS_VALUE_RULE_ID " + "SET_NEXT_CODE_VALUE_RULE_ID " + "SET_OURFIRM_BOUNDS_RULE_ID " + "SET_OURFIRM_REQUISITE_RULE_ID ";
		const script_block_properties_constants = "SCRIPT_BLOCK_AFTER_FINISH_EVENT " + "SCRIPT_BLOCK_BEFORE_START_EVENT " + "SCRIPT_BLOCK_EXECUTION_RESULTS_PROPERTY " + "SCRIPT_BLOCK_NAME_PROPERTY " + "SCRIPT_BLOCK_SCRIPT_PROPERTY ";
		const subtask_block_properties_constants = "SUBTASK_BLOCK_ABORT_DEADLINE_PROPERTY " + "SUBTASK_BLOCK_AFTER_FINISH_EVENT " + "SUBTASK_BLOCK_ASSIGN_PARAMS_EVENT " + "SUBTASK_BLOCK_ATTACHMENTS_PROPERTY " + "SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY " + "SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY " + "SUBTASK_BLOCK_BEFORE_START_EVENT " + "SUBTASK_BLOCK_CREATED_TASK_PROPERTY " + "SUBTASK_BLOCK_CREATION_EVENT " + "SUBTASK_BLOCK_DEADLINE_PROPERTY " + "SUBTASK_BLOCK_IMPORTANCE_PROPERTY " + "SUBTASK_BLOCK_INITIATOR_PROPERTY " + "SUBTASK_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY " + "SUBTASK_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " + "SUBTASK_BLOCK_JOBS_TYPE_PROPERTY " + "SUBTASK_BLOCK_NAME_PROPERTY " + "SUBTASK_BLOCK_PARALLEL_ROUTE_PROPERTY " + "SUBTASK_BLOCK_PERFORMERS_PROPERTY " + "SUBTASK_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY " + "SUBTASK_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY " + "SUBTASK_BLOCK_REQUIRE_SIGN_PROPERTY " + "SUBTASK_BLOCK_STANDARD_ROUTE_PROPERTY " + "SUBTASK_BLOCK_START_EVENT " + "SUBTASK_BLOCK_STEP_CONTROL_PROPERTY " + "SUBTASK_BLOCK_SUBJECT_PROPERTY " + "SUBTASK_BLOCK_TASK_CONTROL_PROPERTY " + "SUBTASK_BLOCK_TEXT_PROPERTY " + "SUBTASK_BLOCK_UNLOCK_ATTACHMENTS_ON_STOP_PROPERTY " + "SUBTASK_BLOCK_USE_STANDARD_ROUTE_PROPERTY " + "SUBTASK_BLOCK_WAIT_FOR_TASK_COMPLETE_PROPERTY ";
		const system_component_constants = "SYSCOMP_CONTROL_JOBS " + "SYSCOMP_FOLDERS " + "SYSCOMP_JOBS " + "SYSCOMP_NOTICES " + "SYSCOMP_TASKS ";
		const system_dialogs_constants = "SYSDLG_CREATE_EDOCUMENT " + "SYSDLG_CREATE_EDOCUMENT_VERSION " + "SYSDLG_CURRENT_PERIOD " + "SYSDLG_EDIT_FUNCTION_HELP " + "SYSDLG_EDOCUMENT_KINDS_FOR_TEMPLATE " + "SYSDLG_EXPORT_MULTIPLE_EDOCUMENTS " + "SYSDLG_EXPORT_SINGLE_EDOCUMENT " + "SYSDLG_IMPORT_EDOCUMENT " + "SYSDLG_MULTIPLE_SELECT " + "SYSDLG_SETUP_ACCESS_RIGHTS " + "SYSDLG_SETUP_DEFAULT_RIGHTS " + "SYSDLG_SETUP_FILTER_CONDITION " + "SYSDLG_SETUP_SIGN_RIGHTS " + "SYSDLG_SETUP_TASK_OBSERVERS " + "SYSDLG_SETUP_TASK_ROUTE " + "SYSDLG_SETUP_USERS_LIST " + "SYSDLG_SIGN_EDOCUMENT " + "SYSDLG_SIGN_MULTIPLE_EDOCUMENTS ";
		const system_reference_names_constants = "SYSREF_ACCESS_RIGHTS_TYPES " + "SYSREF_ADMINISTRATION_HISTORY " + "SYSREF_ALL_AVAILABLE_COMPONENTS " + "SYSREF_ALL_AVAILABLE_PRIVILEGES " + "SYSREF_ALL_REPLICATING_COMPONENTS " + "SYSREF_AVAILABLE_DEVELOPERS_COMPONENTS " + "SYSREF_CALENDAR_EVENTS " + "SYSREF_COMPONENT_TOKEN_HISTORY " + "SYSREF_COMPONENT_TOKENS " + "SYSREF_COMPONENTS " + "SYSREF_CONSTANTS " + "SYSREF_DATA_RECEIVE_PROTOCOL " + "SYSREF_DATA_SEND_PROTOCOL " + "SYSREF_DIALOGS " + "SYSREF_DIALOGS_REQUISITES " + "SYSREF_EDITORS " + "SYSREF_EDOC_CARDS " + "SYSREF_EDOC_TYPES " + "SYSREF_EDOCUMENT_CARD_REQUISITES " + "SYSREF_EDOCUMENT_CARD_TYPES " + "SYSREF_EDOCUMENT_CARD_TYPES_REFERENCE " + "SYSREF_EDOCUMENT_CARDS " + "SYSREF_EDOCUMENT_HISTORY " + "SYSREF_EDOCUMENT_KINDS " + "SYSREF_EDOCUMENT_REQUISITES " + "SYSREF_EDOCUMENT_SIGNATURES " + "SYSREF_EDOCUMENT_TEMPLATES " + "SYSREF_EDOCUMENT_TEXT_STORAGES " + "SYSREF_EDOCUMENT_VIEWS " + "SYSREF_FILTERER_SETUP_CONFLICTS " + "SYSREF_FILTRATER_SETTING_CONFLICTS " + "SYSREF_FOLDER_HISTORY " + "SYSREF_FOLDERS " + "SYSREF_FUNCTION_GROUPS " + "SYSREF_FUNCTION_PARAMS " + "SYSREF_FUNCTIONS " + "SYSREF_JOB_HISTORY " + "SYSREF_LINKS " + "SYSREF_LOCALIZATION_DICTIONARY " + "SYSREF_LOCALIZATION_LANGUAGES " + "SYSREF_MODULES " + "SYSREF_PRIVILEGES " + "SYSREF_RECORD_HISTORY " + "SYSREF_REFERENCE_REQUISITES " + "SYSREF_REFERENCE_TYPE_VIEWS " + "SYSREF_REFERENCE_TYPES " + "SYSREF_REFERENCES " + "SYSREF_REFERENCES_REQUISITES " + "SYSREF_REMOTE_SERVERS " + "SYSREF_REPLICATION_SESSIONS_LOG " + "SYSREF_REPLICATION_SESSIONS_PROTOCOL " + "SYSREF_REPORTS " + "SYSREF_ROLES " + "SYSREF_ROUTE_BLOCK_GROUPS " + "SYSREF_ROUTE_BLOCKS " + "SYSREF_SCRIPTS " + "SYSREF_SEARCHES " + "SYSREF_SERVER_EVENTS " + "SYSREF_SERVER_EVENTS_HISTORY " + "SYSREF_STANDARD_ROUTE_GROUPS " + "SYSREF_STANDARD_ROUTES " + "SYSREF_STATUSES " + "SYSREF_SYSTEM_SETTINGS " + "SYSREF_TASK_HISTORY " + "SYSREF_TASK_KIND_GROUPS " + "SYSREF_TASK_KINDS " + "SYSREF_TASK_RIGHTS " + "SYSREF_TASK_SIGNATURES " + "SYSREF_TASKS " + "SYSREF_UNITS " + "SYSREF_USER_GROUPS " + "SYSREF_USER_GROUPS_REFERENCE " + "SYSREF_USER_SUBSTITUTION " + "SYSREF_USERS " + "SYSREF_USERS_REFERENCE " + "SYSREF_VIEWERS " + "SYSREF_WORKING_TIME_CALENDARS ";
		const table_name_constants = "ACCESS_RIGHTS_TABLE_NAME " + "EDMS_ACCESS_TABLE_NAME " + "EDOC_TYPES_TABLE_NAME ";
		const test_constants = "TEST_DEV_DB_NAME " + "TEST_DEV_SYSTEM_CODE " + "TEST_EDMS_DB_NAME " + "TEST_EDMS_MAIN_CODE " + "TEST_EDMS_MAIN_DB_NAME " + "TEST_EDMS_SECOND_CODE " + "TEST_EDMS_SECOND_DB_NAME " + "TEST_EDMS_SYSTEM_CODE " + "TEST_ISB5_MAIN_CODE " + "TEST_ISB5_SECOND_CODE " + "TEST_SQL_SERVER_2005_NAME " + "TEST_SQL_SERVER_NAME ";
		const using_the_dialog_windows_constants = "ATTENTION_CAPTION " + "cbsCommandLinks " + "cbsDefault " + "CONFIRMATION_CAPTION " + "ERROR_CAPTION " + "INFORMATION_CAPTION " + "mrCancel " + "mrOk ";
		const using_the_document_constants = "EDOC_VERSION_ACTIVE_STAGE_CODE " + "EDOC_VERSION_DESIGN_STAGE_CODE " + "EDOC_VERSION_OBSOLETE_STAGE_CODE ";
		const using_the_EA_and_encryption_constants = "cpDataEnciphermentEnabled " + "cpDigitalSignatureEnabled " + "cpID " + "cpIssuer " + "cpPluginVersion " + "cpSerial " + "cpSubjectName " + "cpSubjSimpleName " + "cpValidFromDate " + "cpValidToDate ";
		const using_the_ISBL_editor_constants = "ISBL_SYNTAX " + "NO_SYNTAX " + "XML_SYNTAX ";
		const wait_block_properties_constants = "WAIT_BLOCK_AFTER_FINISH_EVENT " + "WAIT_BLOCK_BEFORE_START_EVENT " + "WAIT_BLOCK_DEADLINE_PROPERTY " + "WAIT_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " + "WAIT_BLOCK_NAME_PROPERTY " + "WAIT_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY ";
		const sysres_common_constants = "SYSRES_COMMON " + "SYSRES_CONST " + "SYSRES_MBFUNC " + "SYSRES_SBDATA " + "SYSRES_SBGUI " + "SYSRES_SBINTF " + "SYSRES_SBREFDSC " + "SYSRES_SQLERRORS " + "SYSRES_SYSCOMP ";
		const CONSTANTS = sysres_constants + base_constants + base_group_name_constants + decision_block_properties_constants + file_extension_constants + job_block_properties_constants + language_code_constants + launching_external_applications_constants + link_kind_constants + lock_type_constants + monitor_block_properties_constants + notice_block_properties_constants + object_events_constants + object_params_constants + other_constants + privileges_constants + pseudoreference_code_constants + requisite_ISBCertificateType_values_constants + requisite_ISBEDocStorageType_values_constants + requisite_compType2_values_constants + requisite_name_constants + result_constants + rule_identification_constants + script_block_properties_constants + subtask_block_properties_constants + system_component_constants + system_dialogs_constants + system_reference_names_constants + table_name_constants + test_constants + using_the_dialog_windows_constants + using_the_document_constants + using_the_EA_and_encryption_constants + using_the_ISBL_editor_constants + wait_block_properties_constants + sysres_common_constants;
		const TAccountType = "atUser atGroup atRole ";
		const TActionEnabledMode = "aemEnabledAlways " + "aemDisabledAlways " + "aemEnabledOnBrowse " + "aemEnabledOnEdit " + "aemDisabledOnBrowseEmpty ";
		const TAddPosition = "apBegin apEnd ";
		const TAlignment = "alLeft alRight ";
		const TAreaShowMode = "asmNever " + "asmNoButCustomize " + "asmAsLastTime " + "asmYesButCustomize " + "asmAlways ";
		const TCertificateInvalidationReason = "cirCommon cirRevoked ";
		const TCertificateType = "ctSignature ctEncode ctSignatureEncode ";
		const TCheckListBoxItemState = "clbUnchecked clbChecked clbGrayed ";
		const TCloseOnEsc = "ceISB ceAlways ceNever ";
		const TCompType = "ctDocument " + "ctReference " + "ctScript " + "ctUnknown " + "ctReport " + "ctDialog " + "ctFunction " + "ctFolder " + "ctEDocument " + "ctTask " + "ctJob " + "ctNotice " + "ctControlJob ";
		const TConditionFormat = "cfInternal cfDisplay ";
		const TConnectionIntent = "ciUnspecified ciWrite ciRead ";
		const TContentKind = "ckFolder " + "ckEDocument " + "ckTask " + "ckJob " + "ckComponentToken " + "ckAny " + "ckReference " + "ckScript " + "ckReport " + "ckDialog ";
		const TControlType = "ctISBLEditor " + "ctBevel " + "ctButton " + "ctCheckListBox " + "ctComboBox " + "ctComboEdit " + "ctGrid " + "ctDBCheckBox " + "ctDBComboBox " + "ctDBEdit " + "ctDBEllipsis " + "ctDBMemo " + "ctDBNavigator " + "ctDBRadioGroup " + "ctDBStatusLabel " + "ctEdit " + "ctGroupBox " + "ctInplaceHint " + "ctMemo " + "ctPanel " + "ctListBox " + "ctRadioButton " + "ctRichEdit " + "ctTabSheet " + "ctWebBrowser " + "ctImage " + "ctHyperLink " + "ctLabel " + "ctDBMultiEllipsis " + "ctRibbon " + "ctRichView " + "ctInnerPanel " + "ctPanelGroup " + "ctBitButton ";
		const TCriterionContentType = "cctDate " + "cctInteger " + "cctNumeric " + "cctPick " + "cctReference " + "cctString " + "cctText ";
		const TCultureType = "cltInternal cltPrimary cltGUI ";
		const TDataSetEventType = "dseBeforeOpen " + "dseAfterOpen " + "dseBeforeClose " + "dseAfterClose " + "dseOnValidDelete " + "dseBeforeDelete " + "dseAfterDelete " + "dseAfterDeleteOutOfTransaction " + "dseOnDeleteError " + "dseBeforeInsert " + "dseAfterInsert " + "dseOnValidUpdate " + "dseBeforeUpdate " + "dseOnUpdateRatifiedRecord " + "dseAfterUpdate " + "dseAfterUpdateOutOfTransaction " + "dseOnUpdateError " + "dseAfterScroll " + "dseOnOpenRecord " + "dseOnCloseRecord " + "dseBeforeCancel " + "dseAfterCancel " + "dseOnUpdateDeadlockError " + "dseBeforeDetailUpdate " + "dseOnPrepareUpdate " + "dseOnAnyRequisiteChange ";
		const TDataSetState = "dssEdit dssInsert dssBrowse dssInActive ";
		const TDateFormatType = "dftDate dftShortDate dftDateTime dftTimeStamp ";
		const TDateOffsetType = "dotDays dotHours dotMinutes dotSeconds ";
		const TDateTimeKind = "dtkndLocal dtkndUTC ";
		const TDeaAccessRights = "arNone arView arEdit arFull ";
		const TDocumentDefaultAction = "ddaView ddaEdit ";
		const TEditMode = "emLock " + "emEdit " + "emSign " + "emExportWithLock " + "emImportWithUnlock " + "emChangeVersionNote " + "emOpenForModify " + "emChangeLifeStage " + "emDelete " + "emCreateVersion " + "emImport " + "emUnlockExportedWithLock " + "emStart " + "emAbort " + "emReInit " + "emMarkAsReaded " + "emMarkAsUnreaded " + "emPerform " + "emAccept " + "emResume " + "emChangeRights " + "emEditRoute " + "emEditObserver " + "emRecoveryFromLocalCopy " + "emChangeWorkAccessType " + "emChangeEncodeTypeToCertificate " + "emChangeEncodeTypeToPassword " + "emChangeEncodeTypeToNone " + "emChangeEncodeTypeToCertificatePassword " + "emChangeStandardRoute " + "emGetText " + "emOpenForView " + "emMoveToStorage " + "emCreateObject " + "emChangeVersionHidden " + "emDeleteVersion " + "emChangeLifeCycleStage " + "emApprovingSign " + "emExport " + "emContinue " + "emLockFromEdit " + "emUnLockForEdit " + "emLockForServer " + "emUnlockFromServer " + "emDelegateAccessRights " + "emReEncode ";
		const TEditorCloseObservType = "ecotFile ecotProcess ";
		const TEdmsApplicationAction = "eaGet eaCopy eaCreate eaCreateStandardRoute ";
		const TEDocumentLockType = "edltAll edltNothing edltQuery ";
		const TEDocumentStepShowMode = "essmText essmCard ";
		const TEDocumentStepVersionType = "esvtLast esvtLastActive esvtSpecified ";
		const TEDocumentStorageFunction = "edsfExecutive edsfArchive ";
		const TEDocumentStorageType = "edstSQLServer edstFile ";
		const TEDocumentVersionSourceType = "edvstNone edvstEDocumentVersionCopy edvstFile edvstTemplate edvstScannedFile ";
		const TEDocumentVersionState = "vsDefault vsDesign vsActive vsObsolete ";
		const TEncodeType = "etNone etCertificate etPassword etCertificatePassword ";
		const TExceptionCategory = "ecException ecWarning ecInformation ";
		const TExportedSignaturesType = "estAll estApprovingOnly ";
		const TExportedVersionType = "evtLast evtLastActive evtQuery ";
		const TFieldDataType = "fdtString " + "fdtNumeric " + "fdtInteger " + "fdtDate " + "fdtText " + "fdtUnknown " + "fdtWideString " + "fdtLargeInteger ";
		const TFolderType = "ftInbox " + "ftOutbox " + "ftFavorites " + "ftCommonFolder " + "ftUserFolder " + "ftComponents " + "ftQuickLaunch " + "ftShortcuts " + "ftSearch ";
		const TGridRowHeight = "grhAuto " + "grhX1 " + "grhX2 " + "grhX3 ";
		const THyperlinkType = "hltText " + "hltRTF " + "hltHTML ";
		const TImageFileFormat = "iffBMP " + "iffJPEG " + "iffMultiPageTIFF " + "iffSinglePageTIFF " + "iffTIFF " + "iffPNG ";
		const TImageMode = "im8bGrayscale " + "im24bRGB " + "im1bMonochrome ";
		const TImageType = "itBMP " + "itJPEG " + "itWMF " + "itPNG ";
		const TInplaceHintKind = "ikhInformation " + "ikhWarning " + "ikhError " + "ikhNoIcon ";
		const TISBLContext = "icUnknown " + "icScript " + "icFunction " + "icIntegratedReport " + "icAnalyticReport " + "icDataSetEventHandler " + "icActionHandler " + "icFormEventHandler " + "icLookUpEventHandler " + "icRequisiteChangeEventHandler " + "icBeforeSearchEventHandler " + "icRoleCalculation " + "icSelectRouteEventHandler " + "icBlockPropertyCalculation " + "icBlockQueryParamsEventHandler " + "icChangeSearchResultEventHandler " + "icBlockEventHandler " + "icSubTaskInitEventHandler " + "icEDocDataSetEventHandler " + "icEDocLookUpEventHandler " + "icEDocActionHandler " + "icEDocFormEventHandler " + "icEDocRequisiteChangeEventHandler " + "icStructuredConversionRule " + "icStructuredConversionEventBefore " + "icStructuredConversionEventAfter " + "icWizardEventHandler " + "icWizardFinishEventHandler " + "icWizardStepEventHandler " + "icWizardStepFinishEventHandler " + "icWizardActionEnableEventHandler " + "icWizardActionExecuteEventHandler " + "icCreateJobsHandler " + "icCreateNoticesHandler " + "icBeforeLookUpEventHandler " + "icAfterLookUpEventHandler " + "icTaskAbortEventHandler " + "icWorkflowBlockActionHandler " + "icDialogDataSetEventHandler " + "icDialogActionHandler " + "icDialogLookUpEventHandler " + "icDialogRequisiteChangeEventHandler " + "icDialogFormEventHandler " + "icDialogValidCloseEventHandler " + "icBlockFormEventHandler " + "icTaskFormEventHandler " + "icReferenceMethod " + "icEDocMethod " + "icDialogMethod " + "icProcessMessageHandler ";
		const TItemShow = "isShow " + "isHide " + "isByUserSettings ";
		const TJobKind = "jkJob " + "jkNotice " + "jkControlJob ";
		const TJoinType = "jtInner " + "jtLeft " + "jtRight " + "jtFull " + "jtCross ";
		const TLabelPos = "lbpAbove " + "lbpBelow " + "lbpLeft " + "lbpRight ";
		const TLicensingType = "eltPerConnection " + "eltPerUser ";
		const TLifeCycleStageFontColor = "sfcUndefined " + "sfcBlack " + "sfcGreen " + "sfcRed " + "sfcBlue " + "sfcOrange " + "sfcLilac ";
		const TLifeCycleStageFontStyle = "sfsItalic " + "sfsStrikeout " + "sfsNormal ";
		const TLockableDevelopmentComponentType = "ldctStandardRoute " + "ldctWizard " + "ldctScript " + "ldctFunction " + "ldctRouteBlock " + "ldctIntegratedReport " + "ldctAnalyticReport " + "ldctReferenceType " + "ldctEDocumentType " + "ldctDialog " + "ldctServerEvents ";
		const TMaxRecordCountRestrictionType = "mrcrtNone " + "mrcrtUser " + "mrcrtMaximal " + "mrcrtCustom ";
		const TRangeValueType = "vtEqual " + "vtGreaterOrEqual " + "vtLessOrEqual " + "vtRange ";
		const TRelativeDate = "rdYesterday " + "rdToday " + "rdTomorrow " + "rdThisWeek " + "rdThisMonth " + "rdThisYear " + "rdNextMonth " + "rdNextWeek " + "rdLastWeek " + "rdLastMonth ";
		const TReportDestination = "rdWindow " + "rdFile " + "rdPrinter ";
		const TReqDataType = "rdtString " + "rdtNumeric " + "rdtInteger " + "rdtDate " + "rdtReference " + "rdtAccount " + "rdtText " + "rdtPick " + "rdtUnknown " + "rdtLargeInteger " + "rdtDocument ";
		const TRequisiteEventType = "reOnChange " + "reOnChangeValues ";
		const TSBTimeType = "ttGlobal " + "ttLocal " + "ttUser " + "ttSystem ";
		const TSearchShowMode = "ssmBrowse " + "ssmSelect " + "ssmMultiSelect " + "ssmBrowseModal ";
		const TSelectMode = "smSelect " + "smLike " + "smCard ";
		const TSignatureType = "stNone " + "stAuthenticating " + "stApproving ";
		const TSignerContentType = "sctString " + "sctStream ";
		const TStringsSortType = "sstAnsiSort " + "sstNaturalSort ";
		const TStringValueType = "svtEqual " + "svtContain ";
		const TStructuredObjectAttributeType = "soatString " + "soatNumeric " + "soatInteger " + "soatDatetime " + "soatReferenceRecord " + "soatText " + "soatPick " + "soatBoolean " + "soatEDocument " + "soatAccount " + "soatIntegerCollection " + "soatNumericCollection " + "soatStringCollection " + "soatPickCollection " + "soatDatetimeCollection " + "soatBooleanCollection " + "soatReferenceRecordCollection " + "soatEDocumentCollection " + "soatAccountCollection " + "soatContents " + "soatUnknown ";
		const TTaskAbortReason = "tarAbortByUser " + "tarAbortByWorkflowException ";
		const TTextValueType = "tvtAllWords " + "tvtExactPhrase " + "tvtAnyWord ";
		const TUserObjectStatus = "usNone " + "usCompleted " + "usRedSquare " + "usBlueSquare " + "usYellowSquare " + "usGreenSquare " + "usOrangeSquare " + "usPurpleSquare " + "usFollowUp ";
		const TUserType = "utUnknown " + "utUser " + "utDeveloper " + "utAdministrator " + "utSystemDeveloper " + "utDisconnected ";
		const TValuesBuildType = "btAnd " + "btDetailAnd " + "btOr " + "btNotOr " + "btOnly ";
		const TViewMode = "vmView " + "vmSelect " + "vmNavigation ";
		const TViewSelectionMode = "vsmSingle " + "vsmMultiple " + "vsmMultipleCheck " + "vsmNoSelection ";
		const TWizardActionType = "wfatPrevious " + "wfatNext " + "wfatCancel " + "wfatFinish ";
		const TWizardFormElementProperty = "wfepUndefined " + "wfepText3 " + "wfepText6 " + "wfepText9 " + "wfepSpinEdit " + "wfepDropDown " + "wfepRadioGroup " + "wfepFlag " + "wfepText12 " + "wfepText15 " + "wfepText18 " + "wfepText21 " + "wfepText24 " + "wfepText27 " + "wfepText30 " + "wfepRadioGroupColumn1 " + "wfepRadioGroupColumn2 " + "wfepRadioGroupColumn3 ";
		const TWizardFormElementType = "wfetQueryParameter " + "wfetText " + "wfetDelimiter " + "wfetLabel ";
		const TWizardParamType = "wptString " + "wptInteger " + "wptNumeric " + "wptBoolean " + "wptDateTime " + "wptPick " + "wptText " + "wptUser " + "wptUserList " + "wptEDocumentInfo " + "wptEDocumentInfoList " + "wptReferenceRecordInfo " + "wptReferenceRecordInfoList " + "wptFolderInfo " + "wptTaskInfo " + "wptContents " + "wptFileName " + "wptDate ";
		const TWizardStepResult = "wsrComplete " + "wsrGoNext " + "wsrGoPrevious " + "wsrCustom " + "wsrCancel " + "wsrGoFinal ";
		const TWizardStepType = "wstForm " + "wstEDocument " + "wstTaskCard " + "wstReferenceRecordCard " + "wstFinal ";
		const TWorkAccessType = "waAll " + "waPerformers " + "waManual ";
		const TWorkflowBlockType = "wsbStart " + "wsbFinish " + "wsbNotice " + "wsbStep " + "wsbDecision " + "wsbWait " + "wsbMonitor " + "wsbScript " + "wsbConnector " + "wsbSubTask " + "wsbLifeCycleStage " + "wsbPause ";
		const TWorkflowDataType = "wdtInteger " + "wdtFloat " + "wdtString " + "wdtPick " + "wdtDateTime " + "wdtBoolean " + "wdtTask " + "wdtJob " + "wdtFolder " + "wdtEDocument " + "wdtReferenceRecord " + "wdtUser " + "wdtGroup " + "wdtRole " + "wdtIntegerCollection " + "wdtFloatCollection " + "wdtStringCollection " + "wdtPickCollection " + "wdtDateTimeCollection " + "wdtBooleanCollection " + "wdtTaskCollection " + "wdtJobCollection " + "wdtFolderCollection " + "wdtEDocumentCollection " + "wdtReferenceRecordCollection " + "wdtUserCollection " + "wdtGroupCollection " + "wdtRoleCollection " + "wdtContents " + "wdtUserList " + "wdtSearchDescription " + "wdtDeadLine " + "wdtPickSet " + "wdtAccountCollection ";
		const TWorkImportance = "wiLow " + "wiNormal " + "wiHigh ";
		const TWorkRouteType = "wrtSoft " + "wrtHard ";
		const TWorkState = "wsInit " + "wsRunning " + "wsDone " + "wsControlled " + "wsAborted " + "wsContinued ";
		const TWorkTextBuildingMode = "wtmFull " + "wtmFromCurrent " + "wtmOnlyCurrent ";
		const ENUMS = TAccountType + TActionEnabledMode + TAddPosition + TAlignment + TAreaShowMode + TCertificateInvalidationReason + TCertificateType + TCheckListBoxItemState + TCloseOnEsc + TCompType + TConditionFormat + TConnectionIntent + TContentKind + TControlType + TCriterionContentType + TCultureType + TDataSetEventType + TDataSetState + TDateFormatType + TDateOffsetType + TDateTimeKind + TDeaAccessRights + TDocumentDefaultAction + TEditMode + TEditorCloseObservType + TEdmsApplicationAction + TEDocumentLockType + TEDocumentStepShowMode + TEDocumentStepVersionType + TEDocumentStorageFunction + TEDocumentStorageType + TEDocumentVersionSourceType + TEDocumentVersionState + TEncodeType + TExceptionCategory + TExportedSignaturesType + TExportedVersionType + TFieldDataType + TFolderType + TGridRowHeight + THyperlinkType + TImageFileFormat + TImageMode + TImageType + TInplaceHintKind + TISBLContext + TItemShow + TJobKind + TJoinType + TLabelPos + TLicensingType + TLifeCycleStageFontColor + TLifeCycleStageFontStyle + TLockableDevelopmentComponentType + TMaxRecordCountRestrictionType + TRangeValueType + TRelativeDate + TReportDestination + TReqDataType + TRequisiteEventType + TSBTimeType + TSearchShowMode + TSelectMode + TSignatureType + TSignerContentType + TStringsSortType + TStringValueType + TStructuredObjectAttributeType + TTaskAbortReason + TTextValueType + TUserObjectStatus + TUserType + TValuesBuildType + TViewMode + TViewSelectionMode + TWizardActionType + TWizardFormElementProperty + TWizardFormElementType + TWizardParamType + TWizardStepResult + TWizardStepType + TWorkAccessType + TWorkflowBlockType + TWorkflowDataType + TWorkImportance + TWorkRouteType + TWorkState + TWorkTextBuildingMode;
		const system_functions = "AddSubString " + "AdjustLineBreaks " + "AmountInWords " + "Analysis " + "ArrayDimCount " + "ArrayHighBound " + "ArrayLowBound " + "ArrayOf " + "ArrayReDim " + "Assert " + "Assigned " + "BeginOfMonth " + "BeginOfPeriod " + "BuildProfilingOperationAnalysis " + "CallProcedure " + "CanReadFile " + "CArrayElement " + "CDataSetRequisite " + "ChangeDate " + "ChangeReferenceDataset " + "Char " + "CharPos " + "CheckParam " + "CheckParamValue " + "CompareStrings " + "ConstantExists " + "ControlState " + "ConvertDateStr " + "Copy " + "CopyFile " + "CreateArray " + "CreateCachedReference " + "CreateConnection " + "CreateDialog " + "CreateDualListDialog " + "CreateEditor " + "CreateException " + "CreateFile " + "CreateFolderDialog " + "CreateInputDialog " + "CreateLinkFile " + "CreateList " + "CreateLock " + "CreateMemoryDataSet " + "CreateObject " + "CreateOpenDialog " + "CreateProgress " + "CreateQuery " + "CreateReference " + "CreateReport " + "CreateSaveDialog " + "CreateScript " + "CreateSQLPivotFunction " + "CreateStringList " + "CreateTreeListSelectDialog " + "CSelectSQL " + "CSQL " + "CSubString " + "CurrentUserID " + "CurrentUserName " + "CurrentVersion " + "DataSetLocateEx " + "DateDiff " + "DateTimeDiff " + "DateToStr " + "DayOfWeek " + "DeleteFile " + "DirectoryExists " + "DisableCheckAccessRights " + "DisableCheckFullShowingRestriction " + "DisableMassTaskSendingRestrictions " + "DropTable " + "DupeString " + "EditText " + "EnableCheckAccessRights " + "EnableCheckFullShowingRestriction " + "EnableMassTaskSendingRestrictions " + "EndOfMonth " + "EndOfPeriod " + "ExceptionExists " + "ExceptionsOff " + "ExceptionsOn " + "Execute " + "ExecuteProcess " + "Exit " + "ExpandEnvironmentVariables " + "ExtractFileDrive " + "ExtractFileExt " + "ExtractFileName " + "ExtractFilePath " + "ExtractParams " + "FileExists " + "FileSize " + "FindFile " + "FindSubString " + "FirmContext " + "ForceDirectories " + "Format " + "FormatDate " + "FormatNumeric " + "FormatSQLDate " + "FormatString " + "FreeException " + "GetComponent " + "GetComponentLaunchParam " + "GetConstant " + "GetLastException " + "GetReferenceRecord " + "GetRefTypeByRefID " + "GetTableID " + "GetTempFolder " + "IfThen " + "In " + "IndexOf " + "InputDialog " + "InputDialogEx " + "InteractiveMode " + "IsFileLocked " + "IsGraphicFile " + "IsNumeric " + "Length " + "LoadString " + "LoadStringFmt " + "LocalTimeToUTC " + "LowerCase " + "Max " + "MessageBox " + "MessageBoxEx " + "MimeDecodeBinary " + "MimeDecodeString " + "MimeEncodeBinary " + "MimeEncodeString " + "Min " + "MoneyInWords " + "MoveFile " + "NewID " + "Now " + "OpenFile " + "Ord " + "Precision " + "Raise " + "ReadCertificateFromFile " + "ReadFile " + "ReferenceCodeByID " + "ReferenceNumber " + "ReferenceRequisiteMode " + "ReferenceRequisiteValue " + "RegionDateSettings " + "RegionNumberSettings " + "RegionTimeSettings " + "RegRead " + "RegWrite " + "RenameFile " + "Replace " + "Round " + "SelectServerCode " + "SelectSQL " + "ServerDateTime " + "SetConstant " + "SetManagedFolderFieldsState " + "ShowConstantsInputDialog " + "ShowMessage " + "Sleep " + "Split " + "SQL " + "SQL2XLSTAB " + "SQLProfilingSendReport " + "StrToDate " + "SubString " + "SubStringCount " + "SystemSetting " + "Time " + "TimeDiff " + "Today " + "Transliterate " + "Trim " + "UpperCase " + "UserStatus " + "UTCToLocalTime " + "ValidateXML " + "VarIsClear " + "VarIsEmpty " + "VarIsNull " + "WorkTimeDiff " + "WriteFile " + "WriteFileEx " + "WriteObjectHistory " + "Анализ " + "БазаДанных " + "БлокЕсть " + "БлокЕстьРасш " + "БлокИнфо " + "БлокСнять " + "БлокСнятьРасш " + "БлокУстановить " + "Ввод " + "ВводМеню " + "ВедС " + "ВедСпр " + "ВерхняяГраницаМассива " + "ВнешПрогр " + "Восст " + "ВременнаяПапка " + "Время " + "ВыборSQL " + "ВыбратьЗапись " + "ВыделитьСтр " + "Вызвать " + "Выполнить " + "ВыпПрогр " + "ГрафическийФайл " + "ГруппаДополнительно " + "ДатаВремяСерв " + "ДеньНедели " + "ДиалогДаНет " + "ДлинаСтр " + "ДобПодстр " + "ЕПусто " + "ЕслиТо " + "ЕЧисло " + "ЗамПодстр " + "ЗаписьСправочника " + "ЗначПоляСпр " + "ИДТипСпр " + "ИзвлечьДиск " + "ИзвлечьИмяФайла " + "ИзвлечьПуть " + "ИзвлечьРасширение " + "ИзмДат " + "ИзменитьРазмерМассива " + "ИзмеренийМассива " + "ИмяОрг " + "ИмяПоляСпр " + "Индекс " + "ИндикаторЗакрыть " + "ИндикаторОткрыть " + "ИндикаторШаг " + "ИнтерактивныйРежим " + "ИтогТблСпр " + "КодВидВедСпр " + "КодВидСпрПоИД " + "КодПоAnalit " + "КодСимвола " + "КодСпр " + "КолПодстр " + "КолПроп " + "КонМес " + "Конст " + "КонстЕсть " + "КонстЗнач " + "КонТран " + "КопироватьФайл " + "КопияСтр " + "КПериод " + "КСтрТблСпр " + "Макс " + "МаксСтрТблСпр " + "Массив " + "Меню " + "МенюРасш " + "Мин " + "НаборДанныхНайтиРасш " + "НаимВидСпр " + "НаимПоAnalit " + "НаимСпр " + "НастроитьПереводыСтрок " + "НачМес " + "НачТран " + "НижняяГраницаМассива " + "НомерСпр " + "НПериод " + "Окно " + "Окр " + "Окружение " + "ОтлИнфДобавить " + "ОтлИнфУдалить " + "Отчет " + "ОтчетАнал " + "ОтчетИнт " + "ПапкаСуществует " + "Пауза " + "ПВыборSQL " + "ПереименоватьФайл " + "Переменные " + "ПереместитьФайл " + "Подстр " + "ПоискПодстр " + "ПоискСтр " + "ПолучитьИДТаблицы " + "ПользовательДополнительно " + "ПользовательИД " + "ПользовательИмя " + "ПользовательСтатус " + "Прервать " + "ПроверитьПараметр " + "ПроверитьПараметрЗнач " + "ПроверитьУсловие " + "РазбСтр " + "РазнВремя " + "РазнДат " + "РазнДатаВремя " + "РазнРабВремя " + "РегУстВрем " + "РегУстДат " + "РегУстЧсл " + "РедТекст " + "РеестрЗапись " + "РеестрСписокИменПарам " + "РеестрЧтение " + "РеквСпр " + "РеквСпрПр " + "Сегодня " + "Сейчас " + "Сервер " + "СерверПроцессИД " + "СертификатФайлСчитать " + "СжПроб " + "Символ " + "СистемаДиректумКод " + "СистемаИнформация " + "СистемаКод " + "Содержит " + "СоединениеЗакрыть " + "СоединениеОткрыть " + "СоздатьДиалог " + "СоздатьДиалогВыбораИзДвухСписков " + "СоздатьДиалогВыбораПапки " + "СоздатьДиалогОткрытияФайла " + "СоздатьДиалогСохраненияФайла " + "СоздатьЗапрос " + "СоздатьИндикатор " + "СоздатьИсключение " + "СоздатьКэшированныйСправочник " + "СоздатьМассив " + "СоздатьНаборДанных " + "СоздатьОбъект " + "СоздатьОтчет " + "СоздатьПапку " + "СоздатьРедактор " + "СоздатьСоединение " + "СоздатьСписок " + "СоздатьСписокСтрок " + "СоздатьСправочник " + "СоздатьСценарий " + "СоздСпр " + "СостСпр " + "Сохр " + "СохрСпр " + "СписокСистем " + "Спр " + "Справочник " + "СпрБлокЕсть " + "СпрБлокСнять " + "СпрБлокСнятьРасш " + "СпрБлокУстановить " + "СпрИзмНабДан " + "СпрКод " + "СпрНомер " + "СпрОбновить " + "СпрОткрыть " + "СпрОтменить " + "СпрПарам " + "СпрПолеЗнач " + "СпрПолеИмя " + "СпрРекв " + "СпрРеквВведЗн " + "СпрРеквНовые " + "СпрРеквПр " + "СпрРеквПредЗн " + "СпрРеквРежим " + "СпрРеквТипТекст " + "СпрСоздать " + "СпрСост " + "СпрСохранить " + "СпрТблИтог " + "СпрТблСтр " + "СпрТблСтрКол " + "СпрТблСтрМакс " + "СпрТблСтрМин " + "СпрТблСтрПред " + "СпрТблСтрСлед " + "СпрТблСтрСозд " + "СпрТблСтрУд " + "СпрТекПредст " + "СпрУдалить " + "СравнитьСтр " + "СтрВерхРегистр " + "СтрНижнРегистр " + "СтрТблСпр " + "СумПроп " + "Сценарий " + "СценарийПарам " + "ТекВерсия " + "ТекОрг " + "Точн " + "Тран " + "Транслитерация " + "УдалитьТаблицу " + "УдалитьФайл " + "УдСпр " + "УдСтрТблСпр " + "Уст " + "УстановкиКонстант " + "ФайлАтрибутСчитать " + "ФайлАтрибутУстановить " + "ФайлВремя " + "ФайлВремяУстановить " + "ФайлВыбрать " + "ФайлЗанят " + "ФайлЗаписать " + "ФайлИскать " + "ФайлКопировать " + "ФайлМожноЧитать " + "ФайлОткрыть " + "ФайлПереименовать " + "ФайлПерекодировать " + "ФайлПереместить " + "ФайлПросмотреть " + "ФайлРазмер " + "ФайлСоздать " + "ФайлСсылкаСоздать " + "ФайлСуществует " + "ФайлСчитать " + "ФайлУдалить " + "ФмтSQLДат " + "ФмтДат " + "ФмтСтр " + "ФмтЧсл " + "Формат " + "ЦМассивЭлемент " + "ЦНаборДанныхРеквизит " + "ЦПодстр ";
		const predefined_variables = "AltState " + "Application " + "CallType " + "ComponentTokens " + "CreatedJobs " + "CreatedNotices " + "ControlState " + "DialogResult " + "Dialogs " + "EDocuments " + "EDocumentVersionSource " + "Folders " + "GlobalIDs " + "Job " + "Jobs " + "InputValue " + "LookUpReference " + "LookUpRequisiteNames " + "LookUpSearch " + "Object " + "ParentComponent " + "Processes " + "References " + "Requisite " + "ReportName " + "Reports " + "Result " + "Scripts " + "Searches " + "SelectedAttachments " + "SelectedItems " + "SelectMode " + "Sender " + "ServerEvents " + "ServiceFactory " + "ShiftState " + "SubTask " + "SystemDialogs " + "Tasks " + "Wizard " + "Wizards " + "Work " + "ВызовСпособ " + "ИмяОтчета " + "РеквЗнач ";
		const interfaces = "IApplication " + "IAccessRights " + "IAccountRepository " + "IAccountSelectionRestrictions " + "IAction " + "IActionList " + "IAdministrationHistoryDescription " + "IAnchors " + "IApplication " + "IArchiveInfo " + "IAttachment " + "IAttachmentList " + "ICheckListBox " + "ICheckPointedList " + "IColumn " + "IComponent " + "IComponentDescription " + "IComponentToken " + "IComponentTokenFactory " + "IComponentTokenInfo " + "ICompRecordInfo " + "IConnection " + "IContents " + "IControl " + "IControlJob " + "IControlJobInfo " + "IControlList " + "ICrypto " + "ICrypto2 " + "ICustomJob " + "ICustomJobInfo " + "ICustomListBox " + "ICustomObjectWizardStep " + "ICustomWork " + "ICustomWorkInfo " + "IDataSet " + "IDataSetAccessInfo " + "IDataSigner " + "IDateCriterion " + "IDateRequisite " + "IDateRequisiteDescription " + "IDateValue " + "IDeaAccessRights " + "IDeaObjectInfo " + "IDevelopmentComponentLock " + "IDialog " + "IDialogFactory " + "IDialogPickRequisiteItems " + "IDialogsFactory " + "IDICSFactory " + "IDocRequisite " + "IDocumentInfo " + "IDualListDialog " + "IECertificate " + "IECertificateInfo " + "IECertificates " + "IEditControl " + "IEditorForm " + "IEdmsExplorer " + "IEdmsObject " + "IEdmsObjectDescription " + "IEdmsObjectFactory " + "IEdmsObjectInfo " + "IEDocument " + "IEDocumentAccessRights " + "IEDocumentDescription " + "IEDocumentEditor " + "IEDocumentFactory " + "IEDocumentInfo " + "IEDocumentStorage " + "IEDocumentVersion " + "IEDocumentVersionListDialog " + "IEDocumentVersionSource " + "IEDocumentWizardStep " + "IEDocVerSignature " + "IEDocVersionState " + "IEnabledMode " + "IEncodeProvider " + "IEncrypter " + "IEvent " + "IEventList " + "IException " + "IExternalEvents " + "IExternalHandler " + "IFactory " + "IField " + "IFileDialog " + "IFolder " + "IFolderDescription " + "IFolderDialog " + "IFolderFactory " + "IFolderInfo " + "IForEach " + "IForm " + "IFormTitle " + "IFormWizardStep " + "IGlobalIDFactory " + "IGlobalIDInfo " + "IGrid " + "IHasher " + "IHistoryDescription " + "IHyperLinkControl " + "IImageButton " + "IImageControl " + "IInnerPanel " + "IInplaceHint " + "IIntegerCriterion " + "IIntegerList " + "IIntegerRequisite " + "IIntegerValue " + "IISBLEditorForm " + "IJob " + "IJobDescription " + "IJobFactory " + "IJobForm " + "IJobInfo " + "ILabelControl " + "ILargeIntegerCriterion " + "ILargeIntegerRequisite " + "ILargeIntegerValue " + "ILicenseInfo " + "ILifeCycleStage " + "IList " + "IListBox " + "ILocalIDInfo " + "ILocalization " + "ILock " + "IMemoryDataSet " + "IMessagingFactory " + "IMetadataRepository " + "INotice " + "INoticeInfo " + "INumericCriterion " + "INumericRequisite " + "INumericValue " + "IObject " + "IObjectDescription " + "IObjectImporter " + "IObjectInfo " + "IObserver " + "IPanelGroup " + "IPickCriterion " + "IPickProperty " + "IPickRequisite " + "IPickRequisiteDescription " + "IPickRequisiteItem " + "IPickRequisiteItems " + "IPickValue " + "IPrivilege " + "IPrivilegeList " + "IProcess " + "IProcessFactory " + "IProcessMessage " + "IProgress " + "IProperty " + "IPropertyChangeEvent " + "IQuery " + "IReference " + "IReferenceCriterion " + "IReferenceEnabledMode " + "IReferenceFactory " + "IReferenceHistoryDescription " + "IReferenceInfo " + "IReferenceRecordCardWizardStep " + "IReferenceRequisiteDescription " + "IReferencesFactory " + "IReferenceValue " + "IRefRequisite " + "IReport " + "IReportFactory " + "IRequisite " + "IRequisiteDescription " + "IRequisiteDescriptionList " + "IRequisiteFactory " + "IRichEdit " + "IRouteStep " + "IRule " + "IRuleList " + "ISchemeBlock " + "IScript " + "IScriptFactory " + "ISearchCriteria " + "ISearchCriterion " + "ISearchDescription " + "ISearchFactory " + "ISearchFolderInfo " + "ISearchForObjectDescription " + "ISearchResultRestrictions " + "ISecuredContext " + "ISelectDialog " + "IServerEvent " + "IServerEventFactory " + "IServiceDialog " + "IServiceFactory " + "ISignature " + "ISignProvider " + "ISignProvider2 " + "ISignProvider3 " + "ISimpleCriterion " + "IStringCriterion " + "IStringList " + "IStringRequisite " + "IStringRequisiteDescription " + "IStringValue " + "ISystemDialogsFactory " + "ISystemInfo " + "ITabSheet " + "ITask " + "ITaskAbortReasonInfo " + "ITaskCardWizardStep " + "ITaskDescription " + "ITaskFactory " + "ITaskInfo " + "ITaskRoute " + "ITextCriterion " + "ITextRequisite " + "ITextValue " + "ITreeListSelectDialog " + "IUser " + "IUserList " + "IValue " + "IView " + "IWebBrowserControl " + "IWizard " + "IWizardAction " + "IWizardFactory " + "IWizardFormElement " + "IWizardParam " + "IWizardPickParam " + "IWizardReferenceParam " + "IWizardStep " + "IWorkAccessRights " + "IWorkDescription " + "IWorkflowAskableParam " + "IWorkflowAskableParams " + "IWorkflowBlock " + "IWorkflowBlockResult " + "IWorkflowEnabledMode " + "IWorkflowParam " + "IWorkflowPickParam " + "IWorkflowReferenceParam " + "IWorkState " + "IWorkTreeCustomNode " + "IWorkTreeJobNode " + "IWorkTreeTaskNode " + "IXMLEditorForm " + "SBCrypto ";
		const BUILTIN = CONSTANTS + ENUMS;
		const CLASS = predefined_variables;
		const LITERAL = "null true false nil ";
		const NUMBERS = {
			className: "number",
			begin: hljs$1.NUMBER_RE,
			relevance: 0
		};
		const STRINGS = {
			className: "string",
			variants: [{
				begin: "\"",
				end: "\""
			}, {
				begin: "'",
				end: "'"
			}]
		};
		const DOCTAGS = {
			className: "doctag",
			begin: "\\b(?:TODO|DONE|BEGIN|END|STUB|CHG|FIXME|NOTE|BUG|XXX)\\b",
			relevance: 0
		};
		const ISBL_LINE_COMMENT_MODE = {
			className: "comment",
			begin: "//",
			end: "$",
			relevance: 0,
			contains: [hljs$1.PHRASAL_WORDS_MODE, DOCTAGS]
		};
		const ISBL_BLOCK_COMMENT_MODE = {
			className: "comment",
			begin: "/\\*",
			end: "\\*/",
			relevance: 0,
			contains: [hljs$1.PHRASAL_WORDS_MODE, DOCTAGS]
		};
		const COMMENTS = { variants: [ISBL_LINE_COMMENT_MODE, ISBL_BLOCK_COMMENT_MODE] };
		const KEYWORDS$6 = {
			$pattern: UNDERSCORE_IDENT_RE$2,
			keyword: KEYWORD,
			built_in: BUILTIN,
			class: CLASS,
			literal: LITERAL
		};
		const METHODS = {
			begin: "\\.\\s*" + hljs$1.UNDERSCORE_IDENT_RE,
			keywords: KEYWORDS$6,
			relevance: 0
		};
		const TYPES$6 = {
			className: "type",
			begin: ":[ \\t]*(" + interfaces.trim().replace(/\s/g, "|") + ")",
			end: "[ \\t]*=",
			excludeEnd: true
		};
		const VARIABLES = {
			className: "variable",
			keywords: KEYWORDS$6,
			begin: UNDERSCORE_IDENT_RE$2,
			relevance: 0,
			contains: [TYPES$6, METHODS]
		};
		const FUNCTION_TITLE = FUNCTION_NAME_IDENT_RE + "\\(";
		const TITLE_MODE$2 = {
			className: "title",
			keywords: {
				$pattern: UNDERSCORE_IDENT_RE$2,
				built_in: system_functions
			},
			begin: FUNCTION_TITLE,
			end: "\\(",
			returnBegin: true,
			excludeEnd: true
		};
		const FUNCTIONS = {
			className: "function",
			begin: FUNCTION_TITLE,
			end: "\\)$",
			returnBegin: true,
			keywords: KEYWORDS$6,
			illegal: "[\\[\\]\\|\\$\\?%,~#@]",
			contains: [
				TITLE_MODE$2,
				METHODS,
				VARIABLES,
				STRINGS,
				NUMBERS,
				COMMENTS
			]
		};
		return {
			name: "ISBL",
			case_insensitive: true,
			keywords: KEYWORDS$6,
			illegal: "\\$|\\?|%|,|;$|~|#|@|</",
			contains: [
				FUNCTIONS,
				TYPES$6,
				METHODS,
				VARIABLES,
				STRINGS,
				NUMBERS,
				COMMENTS
			]
		};
	}
	module.exports = isbl;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/java.js
var require_java = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var decimalDigits$1 = "[0-9](_*[0-9])*";
	var frac$1 = `\\.(${decimalDigits$1})`;
	var hexDigits$1 = "[0-9a-fA-F](_*[0-9a-fA-F])*";
	var NUMERIC$1 = {
		className: "number",
		variants: [
			{ begin: `(\\b(${decimalDigits$1})((${frac$1})|\\.)?|(${frac$1}))` + `[eE][+-]?(${decimalDigits$1})[fFdD]?\\b` },
			{ begin: `\\b(${decimalDigits$1})((${frac$1})[fFdD]?\\b|\\.([fFdD]\\b)?)` },
			{ begin: `(${frac$1})[fFdD]?\\b` },
			{ begin: `\\b(${decimalDigits$1})[fFdD]\\b` },
			{ begin: `\\b0[xX]((${hexDigits$1})\\.?|(${hexDigits$1})?\\.(${hexDigits$1}))` + `[pP][+-]?(${decimalDigits$1})[fFdD]?\\b` },
			{ begin: "\\b(0|[1-9](_*[0-9])*)[lL]?\\b" },
			{ begin: `\\b0[xX](${hexDigits$1})[lL]?\\b` },
			{ begin: "\\b0(_*[0-7])*[lL]?\\b" },
			{ begin: "\\b0[bB][01](_*[01])*[lL]?\\b" }
		],
		relevance: 0
	};
	/**
	* Allows recursive regex expressions to a given depth
	*
	* ie: recurRegex("(abc~~~)", /~~~/g, 2) becomes:
	* (abc(abc(abc)))
	*
	* @param {string} re
	* @param {RegExp} substitution (should be a g mode regex)
	* @param {number} depth
	* @returns {string}``
	*/
	function recurRegex(re$1, substitution, depth) {
		if (depth === -1) return "";
		return re$1.replace(substitution, (_$2) => {
			return recurRegex(re$1, substitution, depth - 1);
		});
	}
	/** @type LanguageFn */
	function java(hljs$1) {
		const regex = hljs$1.regex;
		const JAVA_IDENT_RE = "[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*";
		const GENERIC_IDENT_RE = JAVA_IDENT_RE + recurRegex("(?:<" + JAVA_IDENT_RE + "~~~(?:\\s*,\\s*" + JAVA_IDENT_RE + "~~~)*>)?", /~~~/g, 2);
		const MAIN_KEYWORDS = [
			"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"
		];
		const BUILT_INS$6 = ["super", "this"];
		const LITERALS$6 = [
			"false",
			"true",
			"null"
		];
		const TYPES$6 = [
			"char",
			"boolean",
			"long",
			"float",
			"int",
			"byte",
			"short",
			"double"
		];
		const KEYWORDS$6 = {
			keyword: MAIN_KEYWORDS,
			literal: LITERALS$6,
			type: TYPES$6,
			built_in: BUILT_INS$6
		};
		const ANNOTATION = {
			className: "meta",
			begin: "@" + JAVA_IDENT_RE,
			contains: [{
				begin: /\(/,
				end: /\)/,
				contains: ["self"]
			}]
		};
		const PARAMS = {
			className: "params",
			begin: /\(/,
			end: /\)/,
			keywords: KEYWORDS$6,
			relevance: 0,
			contains: [hljs$1.C_BLOCK_COMMENT_MODE],
			endsParent: true
		};
		return {
			name: "Java",
			aliases: ["jsp"],
			keywords: KEYWORDS$6,
			illegal: /<\/|#/,
			contains: [
				hljs$1.COMMENT("/\\*\\*", "\\*/", {
					relevance: 0,
					contains: [{
						begin: /\w+@/,
						relevance: 0
					}, {
						className: "doctag",
						begin: "@[A-Za-z]+"
					}]
				}),
				{
					begin: /import java\.[a-z]+\./,
					keywords: "import",
					relevance: 2
				},
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				{
					begin: /"""/,
					end: /"""/,
					className: "string",
					contains: [hljs$1.BACKSLASH_ESCAPE]
				},
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				{
					match: [
						/\b(?:class|interface|enum|extends|implements|new)/,
						/\s+/,
						JAVA_IDENT_RE
					],
					className: {
						1: "keyword",
						3: "title.class"
					}
				},
				{
					match: /non-sealed/,
					scope: "keyword"
				},
				{
					begin: [
						regex.concat(/(?!else)/, JAVA_IDENT_RE),
						/\s+/,
						JAVA_IDENT_RE,
						/\s+/,
						/=(?!=)/
					],
					className: {
						1: "type",
						3: "variable",
						5: "operator"
					}
				},
				{
					begin: [
						/record/,
						/\s+/,
						JAVA_IDENT_RE
					],
					className: {
						1: "keyword",
						3: "title.class"
					},
					contains: [
						PARAMS,
						hljs$1.C_LINE_COMMENT_MODE,
						hljs$1.C_BLOCK_COMMENT_MODE
					]
				},
				{
					beginKeywords: "new throw return else",
					relevance: 0
				},
				{
					begin: [
						"(?:" + GENERIC_IDENT_RE + "\\s+)",
						hljs$1.UNDERSCORE_IDENT_RE,
						/\s*(?=\()/
					],
					className: { 2: "title.function" },
					keywords: KEYWORDS$6,
					contains: [
						{
							className: "params",
							begin: /\(/,
							end: /\)/,
							keywords: KEYWORDS$6,
							relevance: 0,
							contains: [
								ANNOTATION,
								hljs$1.APOS_STRING_MODE,
								hljs$1.QUOTE_STRING_MODE,
								NUMERIC$1,
								hljs$1.C_BLOCK_COMMENT_MODE
							]
						},
						hljs$1.C_LINE_COMMENT_MODE,
						hljs$1.C_BLOCK_COMMENT_MODE
					]
				},
				NUMERIC$1,
				ANNOTATION
			]
		};
	}
	module.exports = java;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/javascript.js
var require_javascript = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	const IDENT_RE$4 = "[A-Za-z$_][0-9A-Za-z$_]*";
	const KEYWORDS$4 = [
		"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"
	];
	const LITERALS$4 = [
		"true",
		"false",
		"null",
		"undefined",
		"NaN",
		"Infinity"
	];
	const TYPES$4 = [
		"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"
	];
	const ERROR_TYPES$4 = [
		"Error",
		"EvalError",
		"InternalError",
		"RangeError",
		"ReferenceError",
		"SyntaxError",
		"TypeError",
		"URIError"
	];
	const BUILT_IN_GLOBALS$4 = [
		"setInterval",
		"setTimeout",
		"clearInterval",
		"clearTimeout",
		"require",
		"exports",
		"eval",
		"isFinite",
		"isNaN",
		"parseFloat",
		"parseInt",
		"decodeURI",
		"decodeURIComponent",
		"encodeURI",
		"encodeURIComponent",
		"escape",
		"unescape"
	];
	const BUILT_IN_VARIABLES$3 = [
		"arguments",
		"this",
		"super",
		"console",
		"window",
		"document",
		"localStorage",
		"sessionStorage",
		"module",
		"global"
	];
	const BUILT_INS$4 = [].concat(BUILT_IN_GLOBALS$4, TYPES$4, ERROR_TYPES$4);
	/** @type LanguageFn */
	function javascript$3(hljs$1) {
		const regex = hljs$1.regex;
		/**
		* Takes a string like "<Booger" and checks to see
		* if we can find a matching "</Booger" later in the
		* content.
		* @param {RegExpMatchArray} match
		* @param {{after:number}} param1
		*/
		const hasClosingTag = (match, { after }) => {
			const tag = "</" + match[0].slice(1);
			const pos = match.input.indexOf(tag, after);
			return pos !== -1;
		};
		const IDENT_RE$1$1 = IDENT_RE$4;
		const FRAGMENT = {
			begin: "<>",
			end: "</>"
		};
		const XML_SELF_CLOSING = /<[A-Za-z0-9\\._:-]+\s*\/>/;
		const XML_TAG = {
			begin: /<[A-Za-z0-9\\._:-]+/,
			end: /\/[A-Za-z0-9\\._:-]+>|\/>/,
			isTrulyOpeningTag: (match, response) => {
				const afterMatchIndex = match[0].length + match.index;
				const nextChar = match.input[afterMatchIndex];
				if (nextChar === "<" || nextChar === ",") {
					response.ignoreMatch();
					return;
				}
				if (nextChar === ">") {
					if (!hasClosingTag(match, { after: afterMatchIndex })) {
						response.ignoreMatch();
					}
				}
				let m$3;
				const afterMatch = match.input.substring(afterMatchIndex);
				if (m$3 = afterMatch.match(/^\s*=/)) {
					response.ignoreMatch();
					return;
				}
				if (m$3 = afterMatch.match(/^\s+extends\s+/)) {
					if (m$3.index === 0) {
						response.ignoreMatch();
						return;
					}
				}
			}
		};
		const KEYWORDS$1$1 = {
			$pattern: IDENT_RE$4,
			keyword: KEYWORDS$4,
			literal: LITERALS$4,
			built_in: BUILT_INS$4,
			"variable.language": BUILT_IN_VARIABLES$3
		};
		const decimalDigits$2 = "[0-9](_?[0-9])*";
		const frac$2 = `\\.(${decimalDigits$2})`;
		const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;
		const NUMBER = {
			className: "number",
			variants: [
				{ begin: `(\\b(${decimalInteger})((${frac$2})|\\.)?|(${frac$2}))` + `[eE][+-]?(${decimalDigits$2})\\b` },
				{ begin: `\\b(${decimalInteger})\\b((${frac$2})\\b|\\.)?|(${frac$2})\\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
		};
		const SUBST = {
			className: "subst",
			begin: "\\$\\{",
			end: "\\}",
			keywords: KEYWORDS$1$1,
			contains: []
		};
		const HTML_TEMPLATE = {
			begin: ".?html`",
			end: "",
			starts: {
				end: "`",
				returnEnd: false,
				contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
				subLanguage: "xml"
			}
		};
		const CSS_TEMPLATE = {
			begin: ".?css`",
			end: "",
			starts: {
				end: "`",
				returnEnd: false,
				contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
				subLanguage: "css"
			}
		};
		const GRAPHQL_TEMPLATE = {
			begin: ".?gql`",
			end: "",
			starts: {
				end: "`",
				returnEnd: false,
				contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
				subLanguage: "graphql"
			}
		};
		const TEMPLATE_STRING = {
			className: "string",
			begin: "`",
			end: "`",
			contains: [hljs$1.BACKSLASH_ESCAPE, SUBST]
		};
		const JSDOC_COMMENT = hljs$1.COMMENT(/\/\*\*(?!\/)/, "\\*/", {
			relevance: 0,
			contains: [{
				begin: "(?=@[A-Za-z]+)",
				relevance: 0,
				contains: [
					{
						className: "doctag",
						begin: "@[A-Za-z]+"
					},
					{
						className: "type",
						begin: "\\{",
						end: "\\}",
						excludeEnd: true,
						excludeBegin: true,
						relevance: 0
					},
					{
						className: "variable",
						begin: IDENT_RE$1$1 + "(?=\\s*(-)|$)",
						endsParent: true,
						relevance: 0
					},
					{
						begin: /(?=[^\n])\s/,
						relevance: 0
					}
				]
			}]
		});
		const COMMENT$2 = {
			className: "comment",
			variants: [
				JSDOC_COMMENT,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.C_LINE_COMMENT_MODE
			]
		};
		const SUBST_INTERNALS = [
			hljs$1.APOS_STRING_MODE,
			hljs$1.QUOTE_STRING_MODE,
			HTML_TEMPLATE,
			CSS_TEMPLATE,
			GRAPHQL_TEMPLATE,
			TEMPLATE_STRING,
			{ match: /\$\d+/ },
			NUMBER
		];
		SUBST.contains = SUBST_INTERNALS.concat({
			begin: /\{/,
			end: /\}/,
			keywords: KEYWORDS$1$1,
			contains: ["self"].concat(SUBST_INTERNALS)
		});
		const SUBST_AND_COMMENTS = [].concat(COMMENT$2, SUBST.contains);
		const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([{
			begin: /(\s*)\(/,
			end: /\)/,
			keywords: KEYWORDS$1$1,
			contains: ["self"].concat(SUBST_AND_COMMENTS)
		}]);
		const PARAMS = {
			className: "params",
			begin: /(\s*)\(/,
			end: /\)/,
			excludeBegin: true,
			excludeEnd: true,
			keywords: KEYWORDS$1$1,
			contains: PARAMS_CONTAINS
		};
		const CLASS_OR_EXTENDS = { variants: [{
			match: [
				/class/,
				/\s+/,
				IDENT_RE$1$1,
				/\s+/,
				/extends/,
				/\s+/,
				regex.concat(IDENT_RE$1$1, "(", regex.concat(/\./, IDENT_RE$1$1), ")*")
			],
			scope: {
				1: "keyword",
				3: "title.class",
				5: "keyword",
				7: "title.class.inherited"
			}
		}, {
			match: [
				/class/,
				/\s+/,
				IDENT_RE$1$1
			],
			scope: {
				1: "keyword",
				3: "title.class"
			}
		}] };
		const CLASS_REFERENCE = {
			relevance: 0,
			match: regex.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: { _: [...TYPES$4, ...ERROR_TYPES$4] }
		};
		const USE_STRICT = {
			label: "use_strict",
			className: "meta",
			relevance: 10,
			begin: /^\s*['"]use (strict|asm)['"]/
		};
		const FUNCTION_DEFINITION = {
			variants: [{ match: [
				/function/,
				/\s+/,
				IDENT_RE$1$1,
				/(?=\s*\()/
			] }, { match: [/function/, /\s*(?=\()/] }],
			className: {
				1: "keyword",
				3: "title.function"
			},
			label: "func.def",
			contains: [PARAMS],
			illegal: /%/
		};
		const UPPER_CASE_CONSTANT = {
			relevance: 0,
			match: /\b[A-Z][A-Z_0-9]+\b/,
			className: "variable.constant"
		};
		function noneOf(list) {
			return regex.concat("(?!", list.join("|"), ")");
		}
		const FUNCTION_CALL = {
			match: regex.concat(/\b/, noneOf([
				...BUILT_IN_GLOBALS$4,
				"super",
				"import"
			].map((x$2) => `${x$2}\\s*\\(`)), IDENT_RE$1$1, regex.lookahead(/\s*\(/)),
			className: "title.function",
			relevance: 0
		};
		const PROPERTY_ACCESS = {
			begin: regex.concat(/\./, regex.lookahead(regex.concat(IDENT_RE$1$1, /(?![0-9A-Za-z$_(])/))),
			end: IDENT_RE$1$1,
			excludeBegin: true,
			keywords: "prototype",
			className: "property",
			relevance: 0
		};
		const GETTER_OR_SETTER = {
			match: [
				/get|set/,
				/\s+/,
				IDENT_RE$1$1,
				/(?=\()/
			],
			className: {
				1: "keyword",
				3: "title.function"
			},
			contains: [{ begin: /\(\)/ }, PARAMS]
		};
		const FUNC_LEAD_IN_RE = "(\\(" + "[^()]*(\\(" + "[^()]*(\\(" + "[^()]*" + "\\)[^()]*)*" + "\\)[^()]*)*" + "\\)|" + hljs$1.UNDERSCORE_IDENT_RE + ")\\s*=>";
		const FUNCTION_VARIABLE = {
			match: [
				/const|var|let/,
				/\s+/,
				IDENT_RE$1$1,
				/\s*/,
				/=\s*/,
				/(async\s*)?/,
				regex.lookahead(FUNC_LEAD_IN_RE)
			],
			keywords: "async",
			className: {
				1: "keyword",
				3: "title.function"
			},
			contains: [PARAMS]
		};
		return {
			name: "JavaScript",
			aliases: [
				"js",
				"jsx",
				"mjs",
				"cjs"
			],
			keywords: KEYWORDS$1$1,
			exports: {
				PARAMS_CONTAINS,
				CLASS_REFERENCE
			},
			illegal: /#(?![$_A-z])/,
			contains: [
				hljs$1.SHEBANG({
					label: "shebang",
					binary: "node",
					relevance: 5
				}),
				USE_STRICT,
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				HTML_TEMPLATE,
				CSS_TEMPLATE,
				GRAPHQL_TEMPLATE,
				TEMPLATE_STRING,
				COMMENT$2,
				{ match: /\$\d+/ },
				NUMBER,
				CLASS_REFERENCE,
				{
					scope: "attr",
					match: IDENT_RE$1$1 + regex.lookahead(":"),
					relevance: 0
				},
				FUNCTION_VARIABLE,
				{
					begin: "(" + hljs$1.RE_STARTERS_RE + "|\\b(case|return|throw)\\b)\\s*",
					keywords: "return throw case",
					relevance: 0,
					contains: [
						COMMENT$2,
						hljs$1.REGEXP_MODE,
						{
							className: "function",
							begin: FUNC_LEAD_IN_RE,
							returnBegin: true,
							end: "\\s*=>",
							contains: [{
								className: "params",
								variants: [
									{
										begin: hljs$1.UNDERSCORE_IDENT_RE,
										relevance: 0
									},
									{
										className: null,
										begin: /\(\s*\)/,
										skip: true
									},
									{
										begin: /(\s*)\(/,
										end: /\)/,
										excludeBegin: true,
										excludeEnd: true,
										keywords: KEYWORDS$1$1,
										contains: PARAMS_CONTAINS
									}
								]
							}]
						},
						{
							begin: /,/,
							relevance: 0
						},
						{
							match: /\s+/,
							relevance: 0
						},
						{
							variants: [
								{
									begin: FRAGMENT.begin,
									end: FRAGMENT.end
								},
								{ match: XML_SELF_CLOSING },
								{
									begin: XML_TAG.begin,
									"on:begin": XML_TAG.isTrulyOpeningTag,
									end: XML_TAG.end
								}
							],
							subLanguage: "xml",
							contains: [{
								begin: XML_TAG.begin,
								end: XML_TAG.end,
								skip: true,
								contains: ["self"]
							}]
						}
					]
				},
				FUNCTION_DEFINITION,
				{ beginKeywords: "while if switch catch for" },
				{
					begin: "\\b(?!function)" + hljs$1.UNDERSCORE_IDENT_RE + "\\(" + "[^()]*(\\(" + "[^()]*(\\(" + "[^()]*" + "\\)[^()]*)*" + "\\)[^()]*)*" + "\\)\\s*\\{",
					returnBegin: true,
					label: "func.def",
					contains: [PARAMS, hljs$1.inherit(hljs$1.TITLE_MODE, {
						begin: IDENT_RE$1$1,
						className: "title.function"
					})]
				},
				{
					match: /\.\.\./,
					relevance: 0
				},
				PROPERTY_ACCESS,
				{
					match: "\\$" + IDENT_RE$1$1,
					relevance: 0
				},
				{
					match: [/\bconstructor(?=\s*\()/],
					className: { 1: "title.function" },
					contains: [PARAMS]
				},
				FUNCTION_CALL,
				UPPER_CASE_CONSTANT,
				CLASS_OR_EXTENDS,
				GETTER_OR_SETTER,
				{ match: /\$[(.]/ }
			]
		};
	}
	module.exports = javascript$3;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/jboss-cli.js
var require_jboss_cli = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function jbossCli(hljs$1) {
		const PARAM = {
			begin: /[\w-]+ *=/,
			returnBegin: true,
			relevance: 0,
			contains: [{
				className: "attr",
				begin: /[\w-]+/
			}]
		};
		const PARAMSBLOCK = {
			className: "params",
			begin: /\(/,
			end: /\)/,
			contains: [PARAM],
			relevance: 0
		};
		const OPERATION = {
			className: "function",
			begin: /:[\w\-.]+/,
			relevance: 0
		};
		const PATH = {
			className: "string",
			begin: /\B([\/.])[\w\-.\/=]+/
		};
		const COMMAND_PARAMS = {
			className: "params",
			begin: /--[\w\-=\/]+/
		};
		return {
			name: "JBoss CLI",
			aliases: ["wildfly-cli"],
			keywords: {
				$pattern: "[a-z-]+",
				keyword: "alias batch cd clear command connect connection-factory connection-info data-source deploy " + "deployment-info deployment-overlay echo echo-dmr help history if jdbc-driver-info jms-queue|20 jms-topic|20 ls " + "patch pwd quit read-attribute read-operation reload rollout-plan run-batch set shutdown try unalias " + "undeploy unset version xa-data-source",
				literal: "true false"
			},
			contains: [
				hljs$1.HASH_COMMENT_MODE,
				hljs$1.QUOTE_STRING_MODE,
				COMMAND_PARAMS,
				OPERATION,
				PATH,
				PARAMSBLOCK
			]
		};
	}
	module.exports = jbossCli;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/json.js
var require_json = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function json$1(hljs$1) {
		const ATTRIBUTE = {
			className: "attr",
			begin: /"(\\.|[^\\"\r\n])*"(?=\s*:)/,
			relevance: 1.01
		};
		const PUNCTUATION = {
			match: /[{}[\],:]/,
			className: "punctuation",
			relevance: 0
		};
		const LITERALS$6 = [
			"true",
			"false",
			"null"
		];
		const LITERALS_MODE = {
			scope: "literal",
			beginKeywords: LITERALS$6.join(" ")
		};
		return {
			name: "JSON",
			aliases: ["jsonc"],
			keywords: { literal: LITERALS$6 },
			contains: [
				ATTRIBUTE,
				PUNCTUATION,
				hljs$1.QUOTE_STRING_MODE,
				LITERALS_MODE,
				hljs$1.C_NUMBER_MODE,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE
			],
			illegal: "\\S"
		};
	}
	module.exports = json$1;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/julia.js
var require_julia = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function julia(hljs$1) {
		const VARIABLE_NAME_RE = "[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*";
		const KEYWORD_LIST = [
			"baremodule",
			"begin",
			"break",
			"catch",
			"ccall",
			"const",
			"continue",
			"do",
			"else",
			"elseif",
			"end",
			"export",
			"false",
			"finally",
			"for",
			"function",
			"global",
			"if",
			"import",
			"in",
			"isa",
			"let",
			"local",
			"macro",
			"module",
			"quote",
			"return",
			"true",
			"try",
			"using",
			"where",
			"while"
		];
		const LITERAL_LIST = [
			"ARGS",
			"C_NULL",
			"DEPOT_PATH",
			"ENDIAN_BOM",
			"ENV",
			"Inf",
			"Inf16",
			"Inf32",
			"Inf64",
			"InsertionSort",
			"LOAD_PATH",
			"MergeSort",
			"NaN",
			"NaN16",
			"NaN32",
			"NaN64",
			"PROGRAM_FILE",
			"QuickSort",
			"RoundDown",
			"RoundFromZero",
			"RoundNearest",
			"RoundNearestTiesAway",
			"RoundNearestTiesUp",
			"RoundToZero",
			"RoundUp",
			"VERSION|0",
			"devnull",
			"false",
			"im",
			"missing",
			"nothing",
			"pi",
			"stderr",
			"stdin",
			"stdout",
			"true",
			"undef",
			"π",
			"ℯ"
		];
		const BUILT_IN_LIST = [
			"AbstractArray",
			"AbstractChannel",
			"AbstractChar",
			"AbstractDict",
			"AbstractDisplay",
			"AbstractFloat",
			"AbstractIrrational",
			"AbstractMatrix",
			"AbstractRange",
			"AbstractSet",
			"AbstractString",
			"AbstractUnitRange",
			"AbstractVecOrMat",
			"AbstractVector",
			"Any",
			"ArgumentError",
			"Array",
			"AssertionError",
			"BigFloat",
			"BigInt",
			"BitArray",
			"BitMatrix",
			"BitSet",
			"BitVector",
			"Bool",
			"BoundsError",
			"CapturedException",
			"CartesianIndex",
			"CartesianIndices",
			"Cchar",
			"Cdouble",
			"Cfloat",
			"Channel",
			"Char",
			"Cint",
			"Cintmax_t",
			"Clong",
			"Clonglong",
			"Cmd",
			"Colon",
			"Complex",
			"ComplexF16",
			"ComplexF32",
			"ComplexF64",
			"CompositeException",
			"Condition",
			"Cptrdiff_t",
			"Cshort",
			"Csize_t",
			"Cssize_t",
			"Cstring",
			"Cuchar",
			"Cuint",
			"Cuintmax_t",
			"Culong",
			"Culonglong",
			"Cushort",
			"Cvoid",
			"Cwchar_t",
			"Cwstring",
			"DataType",
			"DenseArray",
			"DenseMatrix",
			"DenseVecOrMat",
			"DenseVector",
			"Dict",
			"DimensionMismatch",
			"Dims",
			"DivideError",
			"DomainError",
			"EOFError",
			"Enum",
			"ErrorException",
			"Exception",
			"ExponentialBackOff",
			"Expr",
			"Float16",
			"Float32",
			"Float64",
			"Function",
			"GlobalRef",
			"HTML",
			"IO",
			"IOBuffer",
			"IOContext",
			"IOStream",
			"IdDict",
			"IndexCartesian",
			"IndexLinear",
			"IndexStyle",
			"InexactError",
			"InitError",
			"Int",
			"Int128",
			"Int16",
			"Int32",
			"Int64",
			"Int8",
			"Integer",
			"InterruptException",
			"InvalidStateException",
			"Irrational",
			"KeyError",
			"LinRange",
			"LineNumberNode",
			"LinearIndices",
			"LoadError",
			"MIME",
			"Matrix",
			"Method",
			"MethodError",
			"Missing",
			"MissingException",
			"Module",
			"NTuple",
			"NamedTuple",
			"Nothing",
			"Number",
			"OrdinalRange",
			"OutOfMemoryError",
			"OverflowError",
			"Pair",
			"PartialQuickSort",
			"PermutedDimsArray",
			"Pipe",
			"ProcessFailedException",
			"Ptr",
			"QuoteNode",
			"Rational",
			"RawFD",
			"ReadOnlyMemoryError",
			"Real",
			"ReentrantLock",
			"Ref",
			"Regex",
			"RegexMatch",
			"RoundingMode",
			"SegmentationFault",
			"Set",
			"Signed",
			"Some",
			"StackOverflowError",
			"StepRange",
			"StepRangeLen",
			"StridedArray",
			"StridedMatrix",
			"StridedVecOrMat",
			"StridedVector",
			"String",
			"StringIndexError",
			"SubArray",
			"SubString",
			"SubstitutionString",
			"Symbol",
			"SystemError",
			"Task",
			"TaskFailedException",
			"Text",
			"TextDisplay",
			"Timer",
			"Tuple",
			"Type",
			"TypeError",
			"TypeVar",
			"UInt",
			"UInt128",
			"UInt16",
			"UInt32",
			"UInt64",
			"UInt8",
			"UndefInitializer",
			"UndefKeywordError",
			"UndefRefError",
			"UndefVarError",
			"Union",
			"UnionAll",
			"UnitRange",
			"Unsigned",
			"Val",
			"Vararg",
			"VecElement",
			"VecOrMat",
			"Vector",
			"VersionNumber",
			"WeakKeyDict",
			"WeakRef"
		];
		const KEYWORDS$6 = {
			$pattern: VARIABLE_NAME_RE,
			keyword: KEYWORD_LIST,
			literal: LITERAL_LIST,
			built_in: BUILT_IN_LIST
		};
		const DEFAULT = {
			keywords: KEYWORDS$6,
			illegal: /<\//
		};
		const NUMBER = {
			className: "number",
			begin: /(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,
			relevance: 0
		};
		const CHAR = {
			className: "string",
			begin: /'(.|\\[xXuU][a-zA-Z0-9]+)'/
		};
		const INTERPOLATION = {
			className: "subst",
			begin: /\$\(/,
			end: /\)/,
			keywords: KEYWORDS$6
		};
		const INTERPOLATED_VARIABLE = {
			className: "variable",
			begin: "\\$" + VARIABLE_NAME_RE
		};
		const STRING = {
			className: "string",
			contains: [
				hljs$1.BACKSLASH_ESCAPE,
				INTERPOLATION,
				INTERPOLATED_VARIABLE
			],
			variants: [{
				begin: /\w*"""/,
				end: /"""\w*/,
				relevance: 10
			}, {
				begin: /\w*"/,
				end: /"\w*/
			}]
		};
		const COMMAND = {
			className: "string",
			contains: [
				hljs$1.BACKSLASH_ESCAPE,
				INTERPOLATION,
				INTERPOLATED_VARIABLE
			],
			begin: "`",
			end: "`"
		};
		const MACROCALL = {
			className: "meta",
			begin: "@" + VARIABLE_NAME_RE
		};
		const COMMENT$2 = {
			className: "comment",
			variants: [{
				begin: "#=",
				end: "=#",
				relevance: 10
			}, {
				begin: "#",
				end: "$"
			}]
		};
		DEFAULT.name = "Julia";
		DEFAULT.contains = [
			NUMBER,
			CHAR,
			STRING,
			COMMAND,
			MACROCALL,
			COMMENT$2,
			hljs$1.HASH_COMMENT_MODE,
			{
				className: "keyword",
				begin: "\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b"
			},
			{ begin: /<:/ }
		];
		INTERPOLATION.contains = DEFAULT.contains;
		return DEFAULT;
	}
	module.exports = julia;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/julia-repl.js
var require_julia_repl = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function juliaRepl(hljs$1) {
		return {
			name: "Julia REPL",
			contains: [{
				className: "meta.prompt",
				begin: /^julia>/,
				relevance: 10,
				starts: {
					end: /^(?![ ]{6})/,
					subLanguage: "julia"
				}
			}],
			aliases: ["jldoctest"]
		};
	}
	module.exports = juliaRepl;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/kotlin.js
var require_kotlin = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var decimalDigits = "[0-9](_*[0-9])*";
	var frac = `\\.(${decimalDigits})`;
	var hexDigits = "[0-9a-fA-F](_*[0-9a-fA-F])*";
	var NUMERIC = {
		className: "number",
		variants: [
			{ begin: `(\\b(${decimalDigits})((${frac})|\\.)?|(${frac}))` + `[eE][+-]?(${decimalDigits})[fFdD]?\\b` },
			{ begin: `\\b(${decimalDigits})((${frac})[fFdD]?\\b|\\.([fFdD]\\b)?)` },
			{ begin: `(${frac})[fFdD]?\\b` },
			{ begin: `\\b(${decimalDigits})[fFdD]\\b` },
			{ begin: `\\b0[xX]((${hexDigits})\\.?|(${hexDigits})?\\.(${hexDigits}))` + `[pP][+-]?(${decimalDigits})[fFdD]?\\b` },
			{ begin: "\\b(0|[1-9](_*[0-9])*)[lL]?\\b" },
			{ begin: `\\b0[xX](${hexDigits})[lL]?\\b` },
			{ begin: "\\b0(_*[0-7])*[lL]?\\b" },
			{ begin: "\\b0[bB][01](_*[01])*[lL]?\\b" }
		],
		relevance: 0
	};
	function kotlin(hljs$1) {
		const KEYWORDS$6 = {
			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"
		};
		const KEYWORDS_WITH_LABEL = {
			className: "keyword",
			begin: /\b(break|continue|return|this)\b/,
			starts: { contains: [{
				className: "symbol",
				begin: /@\w+/
			}] }
		};
		const LABEL = {
			className: "symbol",
			begin: hljs$1.UNDERSCORE_IDENT_RE + "@"
		};
		const SUBST = {
			className: "subst",
			begin: /\$\{/,
			end: /\}/,
			contains: [hljs$1.C_NUMBER_MODE]
		};
		const VARIABLE = {
			className: "variable",
			begin: "\\$" + hljs$1.UNDERSCORE_IDENT_RE
		};
		const STRING = {
			className: "string",
			variants: [
				{
					begin: "\"\"\"",
					end: "\"\"\"(?=[^\"])",
					contains: [VARIABLE, SUBST]
				},
				{
					begin: "'",
					end: "'",
					illegal: /\n/,
					contains: [hljs$1.BACKSLASH_ESCAPE]
				},
				{
					begin: "\"",
					end: "\"",
					illegal: /\n/,
					contains: [
						hljs$1.BACKSLASH_ESCAPE,
						VARIABLE,
						SUBST
					]
				}
			]
		};
		SUBST.contains.push(STRING);
		const ANNOTATION_USE_SITE = {
			className: "meta",
			begin: "@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*" + hljs$1.UNDERSCORE_IDENT_RE + ")?"
		};
		const ANNOTATION = {
			className: "meta",
			begin: "@" + hljs$1.UNDERSCORE_IDENT_RE,
			contains: [{
				begin: /\(/,
				end: /\)/,
				contains: [hljs$1.inherit(STRING, { className: "string" }), "self"]
			}]
		};
		const KOTLIN_NUMBER_MODE = NUMERIC;
		const KOTLIN_NESTED_COMMENT = hljs$1.COMMENT("/\\*", "\\*/", { contains: [hljs$1.C_BLOCK_COMMENT_MODE] });
		const KOTLIN_PAREN_TYPE = { variants: [{
			className: "type",
			begin: hljs$1.UNDERSCORE_IDENT_RE
		}, {
			begin: /\(/,
			end: /\)/,
			contains: []
		}] };
		const KOTLIN_PAREN_TYPE2 = KOTLIN_PAREN_TYPE;
		KOTLIN_PAREN_TYPE2.variants[1].contains = [KOTLIN_PAREN_TYPE];
		KOTLIN_PAREN_TYPE.variants[1].contains = [KOTLIN_PAREN_TYPE2];
		return {
			name: "Kotlin",
			aliases: ["kt", "kts"],
			keywords: KEYWORDS$6,
			contains: [
				hljs$1.COMMENT("/\\*\\*", "\\*/", {
					relevance: 0,
					contains: [{
						className: "doctag",
						begin: "@[A-Za-z]+"
					}]
				}),
				hljs$1.C_LINE_COMMENT_MODE,
				KOTLIN_NESTED_COMMENT,
				KEYWORDS_WITH_LABEL,
				LABEL,
				ANNOTATION_USE_SITE,
				ANNOTATION,
				{
					className: "function",
					beginKeywords: "fun",
					end: "[(]|$",
					returnBegin: true,
					excludeEnd: true,
					keywords: KEYWORDS$6,
					relevance: 5,
					contains: [
						{
							begin: hljs$1.UNDERSCORE_IDENT_RE + "\\s*\\(",
							returnBegin: true,
							relevance: 0,
							contains: [hljs$1.UNDERSCORE_TITLE_MODE]
						},
						{
							className: "type",
							begin: /</,
							end: />/,
							keywords: "reified",
							relevance: 0
						},
						{
							className: "params",
							begin: /\(/,
							end: /\)/,
							endsParent: true,
							keywords: KEYWORDS$6,
							relevance: 0,
							contains: [
								{
									begin: /:/,
									end: /[=,\/]/,
									endsWithParent: true,
									contains: [
										KOTLIN_PAREN_TYPE,
										hljs$1.C_LINE_COMMENT_MODE,
										KOTLIN_NESTED_COMMENT
									],
									relevance: 0
								},
								hljs$1.C_LINE_COMMENT_MODE,
								KOTLIN_NESTED_COMMENT,
								ANNOTATION_USE_SITE,
								ANNOTATION,
								STRING,
								hljs$1.C_NUMBER_MODE
							]
						},
						KOTLIN_NESTED_COMMENT
					]
				},
				{
					begin: [
						/class|interface|trait/,
						/\s+/,
						hljs$1.UNDERSCORE_IDENT_RE
					],
					beginScope: { 3: "title.class" },
					keywords: "class interface trait",
					end: /[:\{(]|$/,
					excludeEnd: true,
					illegal: "extends implements",
					contains: [
						{ beginKeywords: "public protected internal private constructor" },
						hljs$1.UNDERSCORE_TITLE_MODE,
						{
							className: "type",
							begin: /</,
							end: />/,
							excludeBegin: true,
							excludeEnd: true,
							relevance: 0
						},
						{
							className: "type",
							begin: /[,:]\s*/,
							end: /[<\(,){\s]|$/,
							excludeBegin: true,
							returnEnd: true
						},
						ANNOTATION_USE_SITE,
						ANNOTATION
					]
				},
				STRING,
				{
					className: "meta",
					begin: "^#!/usr/bin/env",
					end: "$",
					illegal: "\n"
				},
				KOTLIN_NUMBER_MODE
			]
		};
	}
	module.exports = kotlin;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/lasso.js
var require_lasso = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function lasso(hljs$1) {
		const LASSO_IDENT_RE = "[a-zA-Z_][\\w.]*";
		const LASSO_ANGLE_RE = "<\\?(lasso(script)?|=)";
		const LASSO_CLOSE_RE = "\\]|\\?>";
		const LASSO_KEYWORDS = {
			$pattern: LASSO_IDENT_RE + "|&[lg]t;",
			literal: "true false none minimal full all void and or not " + "bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft",
			built_in: "array date decimal duration integer map pair string tag xml null " + "boolean bytes keyword list locale queue set stack staticarray " + "local var variable global data self inherited currentcapture givenblock",
			keyword: "cache database_names database_schemanames database_tablenames " + "define_tag define_type email_batch encode_set html_comment handle " + "handle_error header if inline iterate ljax_target link " + "link_currentaction link_currentgroup link_currentrecord link_detail " + "link_firstgroup link_firstrecord link_lastgroup link_lastrecord " + "link_nextgroup link_nextrecord link_prevgroup link_prevrecord log " + "loop namespace_using output_none portal private protect records " + "referer referrer repeating resultset rows search_args " + "search_arguments select sort_args sort_arguments thread_atomic " + "value_list while abort case else fail_if fail_ifnot fail if_empty " + "if_false if_null if_true loop_abort loop_continue loop_count params " + "params_up return return_value run_children soap_definetag " + "soap_lastrequest soap_lastresponse tag_name ascending average by " + "define descending do equals frozen group handle_failure import in " + "into join let match max min on order parent protected provide public " + "require returnhome skip split_thread sum take thread to trait type " + "where with yield yieldhome"
		};
		const HTML_COMMENT = hljs$1.COMMENT("<!--", "-->", { relevance: 0 });
		const LASSO_NOPROCESS = {
			className: "meta",
			begin: "\\[noprocess\\]",
			starts: {
				end: "\\[/noprocess\\]",
				returnEnd: true,
				contains: [HTML_COMMENT]
			}
		};
		const LASSO_START = {
			className: "meta",
			begin: "\\[/noprocess|" + LASSO_ANGLE_RE
		};
		const LASSO_DATAMEMBER = {
			className: "symbol",
			begin: "'" + LASSO_IDENT_RE + "'"
		};
		const LASSO_CODE = [
			hljs$1.C_LINE_COMMENT_MODE,
			hljs$1.C_BLOCK_COMMENT_MODE,
			hljs$1.inherit(hljs$1.C_NUMBER_MODE, { begin: hljs$1.C_NUMBER_RE + "|(-?infinity|NaN)\\b" }),
			hljs$1.inherit(hljs$1.APOS_STRING_MODE, { illegal: null }),
			hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { illegal: null }),
			{
				className: "string",
				begin: "`",
				end: "`"
			},
			{ variants: [{ begin: "[#$]" + LASSO_IDENT_RE }, {
				begin: "#",
				end: "\\d+",
				illegal: "\\W"
			}] },
			{
				className: "type",
				begin: "::\\s*",
				end: LASSO_IDENT_RE,
				illegal: "\\W"
			},
			{
				className: "params",
				variants: [{
					begin: "-(?!infinity)" + LASSO_IDENT_RE,
					relevance: 0
				}, { begin: "(\\.\\.\\.)" }]
			},
			{
				begin: /(->|\.)\s*/,
				relevance: 0,
				contains: [LASSO_DATAMEMBER]
			},
			{
				className: "class",
				beginKeywords: "define",
				returnEnd: true,
				end: "\\(|=>",
				contains: [hljs$1.inherit(hljs$1.TITLE_MODE, { begin: LASSO_IDENT_RE + "(=(?!>))?|[-+*/%](?!>)" })]
			}
		];
		return {
			name: "Lasso",
			aliases: ["ls", "lassoscript"],
			case_insensitive: true,
			keywords: LASSO_KEYWORDS,
			contains: [
				{
					className: "meta",
					begin: LASSO_CLOSE_RE,
					relevance: 0,
					starts: {
						end: "\\[|" + LASSO_ANGLE_RE,
						returnEnd: true,
						relevance: 0,
						contains: [HTML_COMMENT]
					}
				},
				LASSO_NOPROCESS,
				LASSO_START,
				{
					className: "meta",
					begin: "\\[no_square_brackets",
					starts: {
						end: "\\[/no_square_brackets\\]",
						keywords: LASSO_KEYWORDS,
						contains: [
							{
								className: "meta",
								begin: LASSO_CLOSE_RE,
								relevance: 0,
								starts: {
									end: "\\[noprocess\\]|" + LASSO_ANGLE_RE,
									returnEnd: true,
									contains: [HTML_COMMENT]
								}
							},
							LASSO_NOPROCESS,
							LASSO_START
						].concat(LASSO_CODE)
					}
				},
				{
					className: "meta",
					begin: "\\[",
					relevance: 0
				},
				{
					className: "meta",
					begin: "^#!",
					end: "lasso9$",
					relevance: 10
				}
			].concat(LASSO_CODE)
		};
	}
	module.exports = lasso;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/latex.js
var require_latex = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function latex(hljs$1) {
		const regex = hljs$1.regex;
		const KNOWN_CONTROL_WORDS = regex.either(...[
			"(?:NeedsTeXFormat|RequirePackage|GetIdInfo)",
			"Provides(?:Expl)?(?:Package|Class|File)",
			"(?:DeclareOption|ProcessOptions)",
			"(?:documentclass|usepackage|input|include)",
			"makeat(?:letter|other)",
			"ExplSyntax(?:On|Off)",
			"(?:new|renew|provide)?command",
			"(?:re)newenvironment",
			"(?:New|Renew|Provide|Declare)(?:Expandable)?DocumentCommand",
			"(?:New|Renew|Provide|Declare)DocumentEnvironment",
			"(?:(?:e|g|x)?def|let)",
			"(?:begin|end)",
			"(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph)",
			"caption",
			"(?:label|(?:eq|page|name)?ref|(?:paren|foot|super)?cite)",
			"(?:alpha|beta|[Gg]amma|[Dd]elta|(?:var)?epsilon|zeta|eta|[Tt]heta|vartheta)",
			"(?:iota|(?:var)?kappa|[Ll]ambda|mu|nu|[Xx]i|[Pp]i|varpi|(?:var)rho)",
			"(?:[Ss]igma|varsigma|tau|[Uu]psilon|[Pp]hi|varphi|chi|[Pp]si|[Oo]mega)",
			"(?:frac|sum|prod|lim|infty|times|sqrt|leq|geq|left|right|middle|[bB]igg?)",
			"(?:[lr]angle|q?quad|[lcvdi]?dots|d?dot|hat|tilde|bar)"
		].map((word) => word + "(?![a-zA-Z@:_])"));
		const L3_REGEX = new RegExp([
			"(?:__)?[a-zA-Z]{2,}_[a-zA-Z](?:_?[a-zA-Z])+:[a-zA-Z]*",
			"[lgc]__?[a-zA-Z](?:_?[a-zA-Z])*_[a-zA-Z]{2,}",
			"[qs]__?[a-zA-Z](?:_?[a-zA-Z])+",
			"use(?:_i)?:[a-zA-Z]*",
			"(?:else|fi|or):",
			"(?:if|cs|exp):w",
			"(?:hbox|vbox):n",
			"::[a-zA-Z]_unbraced",
			"::[a-zA-Z:]"
		].map((pattern) => pattern + "(?![a-zA-Z:_])").join("|"));
		const L2_VARIANTS = [{ begin: /[a-zA-Z@]+/ }, { begin: /[^a-zA-Z@]?/ }];
		const DOUBLE_CARET_VARIANTS = [
			{ begin: /\^{6}[0-9a-f]{6}/ },
			{ begin: /\^{5}[0-9a-f]{5}/ },
			{ begin: /\^{4}[0-9a-f]{4}/ },
			{ begin: /\^{3}[0-9a-f]{3}/ },
			{ begin: /\^{2}[0-9a-f]{2}/ },
			{ begin: /\^{2}[\u0000-\u007f]/ }
		];
		const CONTROL_SEQUENCE = {
			className: "keyword",
			begin: /\\/,
			relevance: 0,
			contains: [
				{
					endsParent: true,
					begin: KNOWN_CONTROL_WORDS
				},
				{
					endsParent: true,
					begin: L3_REGEX
				},
				{
					endsParent: true,
					variants: DOUBLE_CARET_VARIANTS
				},
				{
					endsParent: true,
					relevance: 0,
					variants: L2_VARIANTS
				}
			]
		};
		const MACRO_PARAM = {
			className: "params",
			relevance: 0,
			begin: /#+\d?/
		};
		const DOUBLE_CARET_CHAR = { variants: DOUBLE_CARET_VARIANTS };
		const SPECIAL_CATCODE = {
			className: "built_in",
			relevance: 0,
			begin: /[$&^_]/
		};
		const MAGIC_COMMENT = {
			className: "meta",
			begin: /% ?!(T[eE]X|tex|BIB|bib)/,
			end: "$",
			relevance: 10
		};
		const COMMENT$2 = hljs$1.COMMENT("%", "$", { relevance: 0 });
		const EVERYTHING_BUT_VERBATIM = [
			CONTROL_SEQUENCE,
			MACRO_PARAM,
			DOUBLE_CARET_CHAR,
			SPECIAL_CATCODE,
			MAGIC_COMMENT,
			COMMENT$2
		];
		const BRACE_GROUP_NO_VERBATIM = {
			begin: /\{/,
			end: /\}/,
			relevance: 0,
			contains: ["self", ...EVERYTHING_BUT_VERBATIM]
		};
		const ARGUMENT_BRACES = hljs$1.inherit(BRACE_GROUP_NO_VERBATIM, {
			relevance: 0,
			endsParent: true,
			contains: [BRACE_GROUP_NO_VERBATIM, ...EVERYTHING_BUT_VERBATIM]
		});
		const ARGUMENT_BRACKETS = {
			begin: /\[/,
			end: /\]/,
			endsParent: true,
			relevance: 0,
			contains: [BRACE_GROUP_NO_VERBATIM, ...EVERYTHING_BUT_VERBATIM]
		};
		const SPACE_GOBBLER = {
			begin: /\s+/,
			relevance: 0
		};
		const ARGUMENT_M = [ARGUMENT_BRACES];
		const ARGUMENT_O = [ARGUMENT_BRACKETS];
		const ARGUMENT_AND_THEN = function(arg, starts_mode) {
			return {
				contains: [SPACE_GOBBLER],
				starts: {
					relevance: 0,
					contains: arg,
					starts: starts_mode
				}
			};
		};
		const CSNAME = function(csname, starts_mode) {
			return {
				begin: "\\\\" + csname + "(?![a-zA-Z@:_])",
				keywords: {
					$pattern: /\\[a-zA-Z]+/,
					keyword: "\\" + csname
				},
				relevance: 0,
				contains: [SPACE_GOBBLER],
				starts: starts_mode
			};
		};
		const BEGIN_ENV = function(envname, starts_mode) {
			return hljs$1.inherit({
				begin: "\\\\begin(?=[ 	]*(\\r?\\n[ 	]*)?\\{" + envname + "\\})",
				keywords: {
					$pattern: /\\[a-zA-Z]+/,
					keyword: "\\begin"
				},
				relevance: 0
			}, ARGUMENT_AND_THEN(ARGUMENT_M, starts_mode));
		};
		const VERBATIM_DELIMITED_EQUAL = (innerName = "string") => {
			return hljs$1.END_SAME_AS_BEGIN({
				className: innerName,
				begin: /(.|\r?\n)/,
				end: /(.|\r?\n)/,
				excludeBegin: true,
				excludeEnd: true,
				endsParent: true
			});
		};
		const VERBATIM_DELIMITED_ENV = function(envname) {
			return {
				className: "string",
				end: "(?=\\\\end\\{" + envname + "\\})"
			};
		};
		const VERBATIM_DELIMITED_BRACES = (innerName = "string") => {
			return {
				relevance: 0,
				begin: /\{/,
				starts: {
					endsParent: true,
					contains: [{
						className: innerName,
						end: /(?=\})/,
						endsParent: true,
						contains: [{
							begin: /\{/,
							end: /\}/,
							relevance: 0,
							contains: ["self"]
						}]
					}]
				}
			};
		};
		const VERBATIM = [
			...["verb", "lstinline"].map((csname) => CSNAME(csname, { contains: [VERBATIM_DELIMITED_EQUAL()] })),
			CSNAME("mint", ARGUMENT_AND_THEN(ARGUMENT_M, { contains: [VERBATIM_DELIMITED_EQUAL()] })),
			CSNAME("mintinline", ARGUMENT_AND_THEN(ARGUMENT_M, { contains: [VERBATIM_DELIMITED_BRACES(), VERBATIM_DELIMITED_EQUAL()] })),
			CSNAME("url", { contains: [VERBATIM_DELIMITED_BRACES("link"), VERBATIM_DELIMITED_BRACES("link")] }),
			CSNAME("hyperref", { contains: [VERBATIM_DELIMITED_BRACES("link")] }),
			CSNAME("href", ARGUMENT_AND_THEN(ARGUMENT_O, { contains: [VERBATIM_DELIMITED_BRACES("link")] })),
			...[].concat(...["", "\\*"].map((suffix) => [
				BEGIN_ENV("verbatim" + suffix, VERBATIM_DELIMITED_ENV("verbatim" + suffix)),
				BEGIN_ENV("filecontents" + suffix, ARGUMENT_AND_THEN(ARGUMENT_M, VERBATIM_DELIMITED_ENV("filecontents" + suffix))),
				...[
					"",
					"B",
					"L"
				].map((prefix) => BEGIN_ENV(prefix + "Verbatim" + suffix, ARGUMENT_AND_THEN(ARGUMENT_O, VERBATIM_DELIMITED_ENV(prefix + "Verbatim" + suffix))))
			])),
			BEGIN_ENV("minted", ARGUMENT_AND_THEN(ARGUMENT_O, ARGUMENT_AND_THEN(ARGUMENT_M, VERBATIM_DELIMITED_ENV("minted"))))
		];
		return {
			name: "LaTeX",
			aliases: ["tex"],
			contains: [...VERBATIM, ...EVERYTHING_BUT_VERBATIM]
		};
	}
	module.exports = latex;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/ldif.js
var require_ldif = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function ldif(hljs$1) {
		return {
			name: "LDIF",
			contains: [
				{
					className: "attribute",
					match: "^dn(?=:)",
					relevance: 10
				},
				{
					className: "attribute",
					match: "^\\w+(?=:)"
				},
				{
					className: "literal",
					match: "^-"
				},
				hljs$1.HASH_COMMENT_MODE
			]
		};
	}
	module.exports = ldif;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/leaf.js
var require_leaf = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function leaf(hljs$1) {
		const IDENT = /([A-Za-z_][A-Za-z_0-9]*)?/;
		const LITERALS$6 = [
			"true",
			"false",
			"in"
		];
		const PARAMS = {
			scope: "params",
			begin: /\(/,
			end: /\)(?=\:?)/,
			endsParent: true,
			relevance: 7,
			contains: [
				{
					scope: "string",
					begin: "\"",
					end: "\""
				},
				{
					scope: "keyword",
					match: LITERALS$6.join("|")
				},
				{
					scope: "variable",
					match: /[A-Za-z_][A-Za-z_0-9]*/
				},
				{
					scope: "operator",
					match: /\+|\-|\*|\/|\%|\=\=|\=|\!|\>|\<|\&\&|\|\|/
				}
			]
		};
		const INSIDE_DISPATCH = {
			match: [IDENT, /(?=\()/],
			scope: { 1: "keyword" },
			contains: [PARAMS]
		};
		PARAMS.contains.unshift(INSIDE_DISPATCH);
		return {
			name: "Leaf",
			contains: [{
				match: [
					/#+/,
					IDENT,
					/(?=\()/
				],
				scope: {
					1: "punctuation",
					2: "keyword"
				},
				starts: { contains: [{
					match: /\:/,
					scope: "punctuation"
				}] },
				contains: [PARAMS]
			}, {
				match: [
					/#+/,
					IDENT,
					/:?/
				],
				scope: {
					1: "punctuation",
					2: "keyword",
					3: "punctuation"
				}
			}]
		};
	}
	module.exports = leaf;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/less.js
var require_less = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	const MODES$4 = (hljs$1) => {
		return {
			IMPORTANT: {
				scope: "meta",
				begin: "!important"
			},
			BLOCK_COMMENT: hljs$1.C_BLOCK_COMMENT_MODE,
			HEXCOLOR: {
				scope: "number",
				begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/
			},
			FUNCTION_DISPATCH: {
				className: "built_in",
				begin: /[\w-]+(?=\()/
			},
			ATTRIBUTE_SELECTOR_MODE: {
				scope: "selector-attr",
				begin: /\[/,
				end: /\]/,
				illegal: "$",
				contains: [hljs$1.APOS_STRING_MODE, hljs$1.QUOTE_STRING_MODE]
			},
			CSS_NUMBER_MODE: {
				scope: "number",
				begin: hljs$1.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_-]*/
			}
		};
	};
	const HTML_TAGS$3 = [
		"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"
	];
	const SVG_TAGS$3 = [
		"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"
	];
	const TAGS$3 = [...HTML_TAGS$3, ...SVG_TAGS$3];
	const MEDIA_FEATURES$3 = [
		"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();
	const PSEUDO_CLASSES$3 = [
		"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();
	const PSEUDO_ELEMENTS$3 = [
		"after",
		"backdrop",
		"before",
		"cue",
		"cue-region",
		"first-letter",
		"first-line",
		"grammar-error",
		"marker",
		"part",
		"placeholder",
		"selection",
		"slotted",
		"spelling-error"
	].sort().reverse();
	const ATTRIBUTES$3 = [
		"accent-color",
		"align-content",
		"align-items",
		"align-self",
		"alignment-baseline",
		"all",
		"anchor-name",
		"animation",
		"animation-composition",
		"animation-delay",
		"animation-direction",
		"animation-duration",
		"animation-fill-mode",
		"animation-iteration-count",
		"animation-name",
		"animation-play-state",
		"animation-range",
		"animation-range-end",
		"animation-range-start",
		"animation-timeline",
		"animation-timing-function",
		"appearance",
		"aspect-ratio",
		"backdrop-filter",
		"backface-visibility",
		"background",
		"background-attachment",
		"background-blend-mode",
		"background-clip",
		"background-color",
		"background-image",
		"background-origin",
		"background-position",
		"background-position-x",
		"background-position-y",
		"background-repeat",
		"background-size",
		"baseline-shift",
		"block-size",
		"border",
		"border-block",
		"border-block-color",
		"border-block-end",
		"border-block-end-color",
		"border-block-end-style",
		"border-block-end-width",
		"border-block-start",
		"border-block-start-color",
		"border-block-start-style",
		"border-block-start-width",
		"border-block-style",
		"border-block-width",
		"border-bottom",
		"border-bottom-color",
		"border-bottom-left-radius",
		"border-bottom-right-radius",
		"border-bottom-style",
		"border-bottom-width",
		"border-collapse",
		"border-color",
		"border-end-end-radius",
		"border-end-start-radius",
		"border-image",
		"border-image-outset",
		"border-image-repeat",
		"border-image-slice",
		"border-image-source",
		"border-image-width",
		"border-inline",
		"border-inline-color",
		"border-inline-end",
		"border-inline-end-color",
		"border-inline-end-style",
		"border-inline-end-width",
		"border-inline-start",
		"border-inline-start-color",
		"border-inline-start-style",
		"border-inline-start-width",
		"border-inline-style",
		"border-inline-width",
		"border-left",
		"border-left-color",
		"border-left-style",
		"border-left-width",
		"border-radius",
		"border-right",
		"border-right-color",
		"border-right-style",
		"border-right-width",
		"border-spacing",
		"border-start-end-radius",
		"border-start-start-radius",
		"border-style",
		"border-top",
		"border-top-color",
		"border-top-left-radius",
		"border-top-right-radius",
		"border-top-style",
		"border-top-width",
		"border-width",
		"bottom",
		"box-align",
		"box-decoration-break",
		"box-direction",
		"box-flex",
		"box-flex-group",
		"box-lines",
		"box-ordinal-group",
		"box-orient",
		"box-pack",
		"box-shadow",
		"box-sizing",
		"break-after",
		"break-before",
		"break-inside",
		"caption-side",
		"caret-color",
		"clear",
		"clip",
		"clip-path",
		"clip-rule",
		"color",
		"color-interpolation",
		"color-interpolation-filters",
		"color-profile",
		"color-rendering",
		"color-scheme",
		"column-count",
		"column-fill",
		"column-gap",
		"column-rule",
		"column-rule-color",
		"column-rule-style",
		"column-rule-width",
		"column-span",
		"column-width",
		"columns",
		"contain",
		"contain-intrinsic-block-size",
		"contain-intrinsic-height",
		"contain-intrinsic-inline-size",
		"contain-intrinsic-size",
		"contain-intrinsic-width",
		"container",
		"container-name",
		"container-type",
		"content",
		"content-visibility",
		"counter-increment",
		"counter-reset",
		"counter-set",
		"cue",
		"cue-after",
		"cue-before",
		"cursor",
		"cx",
		"cy",
		"direction",
		"display",
		"dominant-baseline",
		"empty-cells",
		"enable-background",
		"field-sizing",
		"fill",
		"fill-opacity",
		"fill-rule",
		"filter",
		"flex",
		"flex-basis",
		"flex-direction",
		"flex-flow",
		"flex-grow",
		"flex-shrink",
		"flex-wrap",
		"float",
		"flood-color",
		"flood-opacity",
		"flow",
		"font",
		"font-display",
		"font-family",
		"font-feature-settings",
		"font-kerning",
		"font-language-override",
		"font-optical-sizing",
		"font-palette",
		"font-size",
		"font-size-adjust",
		"font-smooth",
		"font-smoothing",
		"font-stretch",
		"font-style",
		"font-synthesis",
		"font-synthesis-position",
		"font-synthesis-small-caps",
		"font-synthesis-style",
		"font-synthesis-weight",
		"font-variant",
		"font-variant-alternates",
		"font-variant-caps",
		"font-variant-east-asian",
		"font-variant-emoji",
		"font-variant-ligatures",
		"font-variant-numeric",
		"font-variant-position",
		"font-variation-settings",
		"font-weight",
		"forced-color-adjust",
		"gap",
		"glyph-orientation-horizontal",
		"glyph-orientation-vertical",
		"grid",
		"grid-area",
		"grid-auto-columns",
		"grid-auto-flow",
		"grid-auto-rows",
		"grid-column",
		"grid-column-end",
		"grid-column-start",
		"grid-gap",
		"grid-row",
		"grid-row-end",
		"grid-row-start",
		"grid-template",
		"grid-template-areas",
		"grid-template-columns",
		"grid-template-rows",
		"hanging-punctuation",
		"height",
		"hyphenate-character",
		"hyphenate-limit-chars",
		"hyphens",
		"icon",
		"image-orientation",
		"image-rendering",
		"image-resolution",
		"ime-mode",
		"initial-letter",
		"initial-letter-align",
		"inline-size",
		"inset",
		"inset-area",
		"inset-block",
		"inset-block-end",
		"inset-block-start",
		"inset-inline",
		"inset-inline-end",
		"inset-inline-start",
		"isolation",
		"justify-content",
		"justify-items",
		"justify-self",
		"kerning",
		"left",
		"letter-spacing",
		"lighting-color",
		"line-break",
		"line-height",
		"line-height-step",
		"list-style",
		"list-style-image",
		"list-style-position",
		"list-style-type",
		"margin",
		"margin-block",
		"margin-block-end",
		"margin-block-start",
		"margin-bottom",
		"margin-inline",
		"margin-inline-end",
		"margin-inline-start",
		"margin-left",
		"margin-right",
		"margin-top",
		"margin-trim",
		"marker",
		"marker-end",
		"marker-mid",
		"marker-start",
		"marks",
		"mask",
		"mask-border",
		"mask-border-mode",
		"mask-border-outset",
		"mask-border-repeat",
		"mask-border-slice",
		"mask-border-source",
		"mask-border-width",
		"mask-clip",
		"mask-composite",
		"mask-image",
		"mask-mode",
		"mask-origin",
		"mask-position",
		"mask-repeat",
		"mask-size",
		"mask-type",
		"masonry-auto-flow",
		"math-depth",
		"math-shift",
		"math-style",
		"max-block-size",
		"max-height",
		"max-inline-size",
		"max-width",
		"min-block-size",
		"min-height",
		"min-inline-size",
		"min-width",
		"mix-blend-mode",
		"nav-down",
		"nav-index",
		"nav-left",
		"nav-right",
		"nav-up",
		"none",
		"normal",
		"object-fit",
		"object-position",
		"offset",
		"offset-anchor",
		"offset-distance",
		"offset-path",
		"offset-position",
		"offset-rotate",
		"opacity",
		"order",
		"orphans",
		"outline",
		"outline-color",
		"outline-offset",
		"outline-style",
		"outline-width",
		"overflow",
		"overflow-anchor",
		"overflow-block",
		"overflow-clip-margin",
		"overflow-inline",
		"overflow-wrap",
		"overflow-x",
		"overflow-y",
		"overlay",
		"overscroll-behavior",
		"overscroll-behavior-block",
		"overscroll-behavior-inline",
		"overscroll-behavior-x",
		"overscroll-behavior-y",
		"padding",
		"padding-block",
		"padding-block-end",
		"padding-block-start",
		"padding-bottom",
		"padding-inline",
		"padding-inline-end",
		"padding-inline-start",
		"padding-left",
		"padding-right",
		"padding-top",
		"page",
		"page-break-after",
		"page-break-before",
		"page-break-inside",
		"paint-order",
		"pause",
		"pause-after",
		"pause-before",
		"perspective",
		"perspective-origin",
		"place-content",
		"place-items",
		"place-self",
		"pointer-events",
		"position",
		"position-anchor",
		"position-visibility",
		"print-color-adjust",
		"quotes",
		"r",
		"resize",
		"rest",
		"rest-after",
		"rest-before",
		"right",
		"rotate",
		"row-gap",
		"ruby-align",
		"ruby-position",
		"scale",
		"scroll-behavior",
		"scroll-margin",
		"scroll-margin-block",
		"scroll-margin-block-end",
		"scroll-margin-block-start",
		"scroll-margin-bottom",
		"scroll-margin-inline",
		"scroll-margin-inline-end",
		"scroll-margin-inline-start",
		"scroll-margin-left",
		"scroll-margin-right",
		"scroll-margin-top",
		"scroll-padding",
		"scroll-padding-block",
		"scroll-padding-block-end",
		"scroll-padding-block-start",
		"scroll-padding-bottom",
		"scroll-padding-inline",
		"scroll-padding-inline-end",
		"scroll-padding-inline-start",
		"scroll-padding-left",
		"scroll-padding-right",
		"scroll-padding-top",
		"scroll-snap-align",
		"scroll-snap-stop",
		"scroll-snap-type",
		"scroll-timeline",
		"scroll-timeline-axis",
		"scroll-timeline-name",
		"scrollbar-color",
		"scrollbar-gutter",
		"scrollbar-width",
		"shape-image-threshold",
		"shape-margin",
		"shape-outside",
		"shape-rendering",
		"speak",
		"speak-as",
		"src",
		"stop-color",
		"stop-opacity",
		"stroke",
		"stroke-dasharray",
		"stroke-dashoffset",
		"stroke-linecap",
		"stroke-linejoin",
		"stroke-miterlimit",
		"stroke-opacity",
		"stroke-width",
		"tab-size",
		"table-layout",
		"text-align",
		"text-align-all",
		"text-align-last",
		"text-anchor",
		"text-combine-upright",
		"text-decoration",
		"text-decoration-color",
		"text-decoration-line",
		"text-decoration-skip",
		"text-decoration-skip-ink",
		"text-decoration-style",
		"text-decoration-thickness",
		"text-emphasis",
		"text-emphasis-color",
		"text-emphasis-position",
		"text-emphasis-style",
		"text-indent",
		"text-justify",
		"text-orientation",
		"text-overflow",
		"text-rendering",
		"text-shadow",
		"text-size-adjust",
		"text-transform",
		"text-underline-offset",
		"text-underline-position",
		"text-wrap",
		"text-wrap-mode",
		"text-wrap-style",
		"timeline-scope",
		"top",
		"touch-action",
		"transform",
		"transform-box",
		"transform-origin",
		"transform-style",
		"transition",
		"transition-behavior",
		"transition-delay",
		"transition-duration",
		"transition-property",
		"transition-timing-function",
		"translate",
		"unicode-bidi",
		"user-modify",
		"user-select",
		"vector-effect",
		"vertical-align",
		"view-timeline",
		"view-timeline-axis",
		"view-timeline-inset",
		"view-timeline-name",
		"view-transition-name",
		"visibility",
		"voice-balance",
		"voice-duration",
		"voice-family",
		"voice-pitch",
		"voice-range",
		"voice-rate",
		"voice-stress",
		"voice-volume",
		"white-space",
		"white-space-collapse",
		"widows",
		"width",
		"will-change",
		"word-break",
		"word-spacing",
		"word-wrap",
		"writing-mode",
		"x",
		"y",
		"z-index",
		"zoom"
	].sort().reverse();
	const PSEUDO_SELECTORS = PSEUDO_CLASSES$3.concat(PSEUDO_ELEMENTS$3).sort().reverse();
	/** @type LanguageFn */
	function less(hljs$1) {
		const modes = MODES$4(hljs$1);
		const PSEUDO_SELECTORS$1 = PSEUDO_SELECTORS;
		const AT_MODIFIERS = "and or not only";
		const IDENT_RE$6 = "[\\w-]+";
		const INTERP_IDENT_RE = "(" + IDENT_RE$6 + "|@\\{" + IDENT_RE$6 + "\\})";
		const RULES = [];
		const VALUE_MODES = [];
		const STRING_MODE = function(c$7) {
			return {
				className: "string",
				begin: "~?" + c$7 + ".*?" + c$7
			};
		};
		const IDENT_MODE = function(name, begin, relevance) {
			return {
				className: name,
				begin,
				relevance
			};
		};
		const AT_KEYWORDS = {
			$pattern: /[a-z-]+/,
			keyword: AT_MODIFIERS,
			attribute: MEDIA_FEATURES$3.join(" ")
		};
		const PARENS_MODE = {
			begin: "\\(",
			end: "\\)",
			contains: VALUE_MODES,
			keywords: AT_KEYWORDS,
			relevance: 0
		};
		VALUE_MODES.push(hljs$1.C_LINE_COMMENT_MODE, hljs$1.C_BLOCK_COMMENT_MODE, STRING_MODE("'"), STRING_MODE("\""), modes.CSS_NUMBER_MODE, {
			begin: "(url|data-uri)\\(",
			starts: {
				className: "string",
				end: "[\\)\\n]",
				excludeEnd: true
			}
		}, modes.HEXCOLOR, PARENS_MODE, IDENT_MODE("variable", "@@?" + IDENT_RE$6, 10), IDENT_MODE("variable", "@\\{" + IDENT_RE$6 + "\\}"), IDENT_MODE("built_in", "~?`[^`]*?`"), {
			className: "attribute",
			begin: IDENT_RE$6 + "\\s*:",
			end: ":",
			returnBegin: true,
			excludeEnd: true
		}, modes.IMPORTANT, { beginKeywords: "and not" }, modes.FUNCTION_DISPATCH);
		const VALUE_WITH_RULESETS = VALUE_MODES.concat({
			begin: /\{/,
			end: /\}/,
			contains: RULES
		});
		const MIXIN_GUARD_MODE = {
			beginKeywords: "when",
			endsWithParent: true,
			contains: [{ beginKeywords: "and not" }].concat(VALUE_MODES)
		};
		const RULE_MODE = {
			begin: INTERP_IDENT_RE + "\\s*:",
			returnBegin: true,
			end: /[;}]/,
			relevance: 0,
			contains: [
				{ begin: /-(webkit|moz|ms|o)-/ },
				modes.CSS_VARIABLE,
				{
					className: "attribute",
					begin: "\\b(" + ATTRIBUTES$3.join("|") + ")\\b",
					end: /(?=:)/,
					starts: {
						endsWithParent: true,
						illegal: "[<=$]",
						relevance: 0,
						contains: VALUE_MODES
					}
				}
			]
		};
		const AT_RULE_MODE = {
			className: "keyword",
			begin: "@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",
			starts: {
				end: "[;{}]",
				keywords: AT_KEYWORDS,
				returnEnd: true,
				contains: VALUE_MODES,
				relevance: 0
			}
		};
		const VAR_RULE_MODE = {
			className: "variable",
			variants: [{
				begin: "@" + IDENT_RE$6 + "\\s*:",
				relevance: 15
			}, { begin: "@" + IDENT_RE$6 }],
			starts: {
				end: "[;}]",
				returnEnd: true,
				contains: VALUE_WITH_RULESETS
			}
		};
		const SELECTOR_MODE = {
			variants: [{
				begin: "[\\.#:&\\[>]",
				end: "[;{}]"
			}, {
				begin: INTERP_IDENT_RE,
				end: /\{/
			}],
			returnBegin: true,
			returnEnd: true,
			illegal: "[<='$\"]",
			relevance: 0,
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				MIXIN_GUARD_MODE,
				IDENT_MODE("keyword", "all\\b"),
				IDENT_MODE("variable", "@\\{" + IDENT_RE$6 + "\\}"),
				{
					begin: "\\b(" + TAGS$3.join("|") + ")\\b",
					className: "selector-tag"
				},
				modes.CSS_NUMBER_MODE,
				IDENT_MODE("selector-tag", INTERP_IDENT_RE, 0),
				IDENT_MODE("selector-id", "#" + INTERP_IDENT_RE),
				IDENT_MODE("selector-class", "\\." + INTERP_IDENT_RE, 0),
				IDENT_MODE("selector-tag", "&", 0),
				modes.ATTRIBUTE_SELECTOR_MODE,
				{
					className: "selector-pseudo",
					begin: ":(" + PSEUDO_CLASSES$3.join("|") + ")"
				},
				{
					className: "selector-pseudo",
					begin: ":(:)?(" + PSEUDO_ELEMENTS$3.join("|") + ")"
				},
				{
					begin: /\(/,
					end: /\)/,
					relevance: 0,
					contains: VALUE_WITH_RULESETS
				},
				{ begin: "!important" },
				modes.FUNCTION_DISPATCH
			]
		};
		const PSEUDO_SELECTOR_MODE = {
			begin: IDENT_RE$6 + ":(:)?" + `(${PSEUDO_SELECTORS$1.join("|")})`,
			returnBegin: true,
			contains: [SELECTOR_MODE]
		};
		RULES.push(hljs$1.C_LINE_COMMENT_MODE, hljs$1.C_BLOCK_COMMENT_MODE, AT_RULE_MODE, VAR_RULE_MODE, PSEUDO_SELECTOR_MODE, RULE_MODE, SELECTOR_MODE, MIXIN_GUARD_MODE, modes.FUNCTION_DISPATCH);
		return {
			name: "Less",
			case_insensitive: true,
			illegal: "[=>'/<($\"]",
			contains: RULES
		};
	}
	module.exports = less;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/lisp.js
var require_lisp = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function lisp(hljs$1) {
		const LISP_IDENT_RE = "[a-zA-Z_\\-+\\*\\/<=>&#][a-zA-Z0-9_\\-+*\\/<=>&#!]*";
		const MEC_RE = "\\|[^]*?\\|";
		const LISP_SIMPLE_NUMBER_RE = "(-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|-)?\\d+)?";
		const LITERAL = {
			className: "literal",
			begin: "\\b(t{1}|nil)\\b"
		};
		const NUMBER = {
			className: "number",
			variants: [
				{
					begin: LISP_SIMPLE_NUMBER_RE,
					relevance: 0
				},
				{ begin: "#(b|B)[0-1]+(/[0-1]+)?" },
				{ begin: "#(o|O)[0-7]+(/[0-7]+)?" },
				{ begin: "#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?" },
				{
					begin: "#(c|C)\\(" + LISP_SIMPLE_NUMBER_RE + " +" + LISP_SIMPLE_NUMBER_RE,
					end: "\\)"
				}
			]
		};
		const STRING = hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { illegal: null });
		const COMMENT$2 = hljs$1.COMMENT(";", "$", { relevance: 0 });
		const VARIABLE = {
			begin: "\\*",
			end: "\\*"
		};
		const KEYWORD = {
			className: "symbol",
			begin: "[:&]" + LISP_IDENT_RE
		};
		const IDENT = {
			begin: LISP_IDENT_RE,
			relevance: 0
		};
		const MEC = { begin: MEC_RE };
		const QUOTED_LIST = {
			begin: "\\(",
			end: "\\)",
			contains: [
				"self",
				LITERAL,
				STRING,
				NUMBER,
				IDENT
			]
		};
		const QUOTED = {
			contains: [
				NUMBER,
				STRING,
				VARIABLE,
				KEYWORD,
				QUOTED_LIST,
				IDENT
			],
			variants: [
				{
					begin: "['`]\\(",
					end: "\\)"
				},
				{
					begin: "\\(quote ",
					end: "\\)",
					keywords: { name: "quote" }
				},
				{ begin: "'" + MEC_RE }
			]
		};
		const QUOTED_ATOM = { variants: [{ begin: "'" + LISP_IDENT_RE }, { begin: "#'" + LISP_IDENT_RE + "(::" + LISP_IDENT_RE + ")*" }] };
		const LIST = {
			begin: "\\(\\s*",
			end: "\\)"
		};
		const BODY = {
			endsWithParent: true,
			relevance: 0
		};
		LIST.contains = [{
			className: "name",
			variants: [{
				begin: LISP_IDENT_RE,
				relevance: 0
			}, { begin: MEC_RE }]
		}, BODY];
		BODY.contains = [
			QUOTED,
			QUOTED_ATOM,
			LIST,
			LITERAL,
			NUMBER,
			STRING,
			COMMENT$2,
			VARIABLE,
			KEYWORD,
			MEC,
			IDENT
		];
		return {
			name: "Lisp",
			illegal: /\S/,
			contains: [
				NUMBER,
				hljs$1.SHEBANG(),
				LITERAL,
				STRING,
				COMMENT$2,
				QUOTED,
				QUOTED_ATOM,
				LIST,
				IDENT
			]
		};
	}
	module.exports = lisp;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/livecodeserver.js
var require_livecodeserver = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function livecodeserver(hljs$1) {
		const VARIABLE = {
			className: "variable",
			variants: [{ begin: "\\b([gtps][A-Z]{1}[a-zA-Z0-9]*)(\\[.+\\])?(?:\\s*?)" }, { begin: "\\$_[A-Z]+" }],
			relevance: 0
		};
		const COMMENT_MODES = [
			hljs$1.C_BLOCK_COMMENT_MODE,
			hljs$1.HASH_COMMENT_MODE,
			hljs$1.COMMENT("--", "$"),
			hljs$1.COMMENT("[^:]//", "$")
		];
		const TITLE1 = hljs$1.inherit(hljs$1.TITLE_MODE, { variants: [{ begin: "\\b_*rig[A-Z][A-Za-z0-9_\\-]*" }, { begin: "\\b_[a-z0-9\\-]+" }] });
		const TITLE2 = hljs$1.inherit(hljs$1.TITLE_MODE, { begin: "\\b([A-Za-z0-9_\\-]+)\\b" });
		return {
			name: "LiveCode",
			case_insensitive: false,
			keywords: {
				keyword: "$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER " + "codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph " + "after byte bytes english the until http forever descending using line real8 with seventh " + "for stdout finally element word words fourth before black ninth sixth characters chars stderr " + "uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid " + "at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 " + "int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat " + "end repeat URL in try into switch to words https token binfile each tenth as ticks tick " + "system real4 by dateItems without char character ascending eighth whole dateTime numeric short " + "first ftp integer abbreviated abbr abbrev private case while if " + "div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within " + "contains ends with begins the keys of keys",
				literal: "SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE " + "QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO " + "six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five " + "quote empty one true return cr linefeed right backslash null seven tab three two " + "RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK " + "FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK",
				built_in: "put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode " + "base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum " + "cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress " + "constantNames cos date dateFormat decompress difference directories " + "diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global " + "globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset " + "keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders " + "libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 " + "longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge messageAuthenticationCode messageDigest millisec " + "millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar " + "numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets " + "paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation " + "populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile " + "revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull " + "revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered " + "revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames " + "revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull " + "revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections " + "revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype " + "revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext " + "revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames " + "revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase " + "revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute " + "revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces " + "revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode " + "revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling " + "revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error " + "revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute " + "revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort " + "revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree " + "revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance " + "sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound " + "stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper " + "transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames " + "variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet " + "xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process " + "combine constant convert create new alias folder directory decrypt delete variable word line folder " + "directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile " + "libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetDriver " + "libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime " + "libURLSetStatusCallback load extension loadedExtensions multiply socket prepare process post seek rel relative read from process rename " + "replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase " + "revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees " + "revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord " + "revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase " + "revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD " + "revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost " + "revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData " + "revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel " + "revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback " + "revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop " + "subtract symmetric union unload vectorDotProduct wait write"
			},
			contains: [
				VARIABLE,
				{
					className: "keyword",
					begin: "\\bend\\sif\\b"
				},
				{
					className: "function",
					beginKeywords: "function",
					end: "$",
					contains: [
						VARIABLE,
						TITLE2,
						hljs$1.APOS_STRING_MODE,
						hljs$1.QUOTE_STRING_MODE,
						hljs$1.BINARY_NUMBER_MODE,
						hljs$1.C_NUMBER_MODE,
						TITLE1
					]
				},
				{
					className: "function",
					begin: "\\bend\\s+",
					end: "$",
					keywords: "end",
					contains: [TITLE2, TITLE1],
					relevance: 0
				},
				{
					beginKeywords: "command on",
					end: "$",
					contains: [
						VARIABLE,
						TITLE2,
						hljs$1.APOS_STRING_MODE,
						hljs$1.QUOTE_STRING_MODE,
						hljs$1.BINARY_NUMBER_MODE,
						hljs$1.C_NUMBER_MODE,
						TITLE1
					]
				},
				{
					className: "meta",
					variants: [
						{
							begin: "<\\?(rev|lc|livecode)",
							relevance: 10
						},
						{ begin: "<\\?" },
						{ begin: "\\?>" }
					]
				},
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.BINARY_NUMBER_MODE,
				hljs$1.C_NUMBER_MODE,
				TITLE1
			].concat(COMMENT_MODES),
			illegal: ";$|^\\[|^=|&|\\{"
		};
	}
	module.exports = livecodeserver;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/livescript.js
var require_livescript = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	const KEYWORDS$3 = [
		"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"
	];
	const LITERALS$3 = [
		"true",
		"false",
		"null",
		"undefined",
		"NaN",
		"Infinity"
	];
	const TYPES$3 = [
		"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"
	];
	const ERROR_TYPES$3 = [
		"Error",
		"EvalError",
		"InternalError",
		"RangeError",
		"ReferenceError",
		"SyntaxError",
		"TypeError",
		"URIError"
	];
	const BUILT_IN_GLOBALS$3 = [
		"setInterval",
		"setTimeout",
		"clearInterval",
		"clearTimeout",
		"require",
		"exports",
		"eval",
		"isFinite",
		"isNaN",
		"parseFloat",
		"parseInt",
		"decodeURI",
		"decodeURIComponent",
		"encodeURI",
		"encodeURIComponent",
		"escape",
		"unescape"
	];
	const BUILT_INS$3 = [].concat(BUILT_IN_GLOBALS$3, TYPES$3, ERROR_TYPES$3);
	function livescript(hljs$1) {
		const LIVESCRIPT_BUILT_INS = ["npm", "print"];
		const LIVESCRIPT_LITERALS = [
			"yes",
			"no",
			"on",
			"off",
			"it",
			"that",
			"void"
		];
		const LIVESCRIPT_KEYWORDS = [
			"then",
			"unless",
			"until",
			"loop",
			"of",
			"by",
			"when",
			"and",
			"or",
			"is",
			"isnt",
			"not",
			"it",
			"that",
			"otherwise",
			"from",
			"to",
			"til",
			"fallthrough",
			"case",
			"enum",
			"native",
			"list",
			"map",
			"__hasProp",
			"__extends",
			"__slice",
			"__bind",
			"__indexOf"
		];
		const KEYWORDS$1$1 = {
			keyword: KEYWORDS$3.concat(LIVESCRIPT_KEYWORDS),
			literal: LITERALS$3.concat(LIVESCRIPT_LITERALS),
			built_in: BUILT_INS$3.concat(LIVESCRIPT_BUILT_INS)
		};
		const JS_IDENT_RE = "[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*";
		const TITLE = hljs$1.inherit(hljs$1.TITLE_MODE, { begin: JS_IDENT_RE });
		const SUBST = {
			className: "subst",
			begin: /#\{/,
			end: /\}/,
			keywords: KEYWORDS$1$1
		};
		const SUBST_SIMPLE = {
			className: "subst",
			begin: /#[A-Za-z$_]/,
			end: /(?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,
			keywords: KEYWORDS$1$1
		};
		const EXPRESSIONS = [
			hljs$1.BINARY_NUMBER_MODE,
			{
				className: "number",
				begin: "(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)",
				relevance: 0,
				starts: {
					end: "(\\s*/)?",
					relevance: 0
				}
			},
			{
				className: "string",
				variants: [
					{
						begin: /'''/,
						end: /'''/,
						contains: [hljs$1.BACKSLASH_ESCAPE]
					},
					{
						begin: /'/,
						end: /'/,
						contains: [hljs$1.BACKSLASH_ESCAPE]
					},
					{
						begin: /"""/,
						end: /"""/,
						contains: [
							hljs$1.BACKSLASH_ESCAPE,
							SUBST,
							SUBST_SIMPLE
						]
					},
					{
						begin: /"/,
						end: /"/,
						contains: [
							hljs$1.BACKSLASH_ESCAPE,
							SUBST,
							SUBST_SIMPLE
						]
					},
					{
						begin: /\\/,
						end: /(\s|$)/,
						excludeEnd: true
					}
				]
			},
			{
				className: "regexp",
				variants: [{
					begin: "//",
					end: "//[gim]*",
					contains: [SUBST, hljs$1.HASH_COMMENT_MODE]
				}, { begin: /\/(?![ *])(\\.|[^\\\n])*?\/[gim]*(?=\W)/ }]
			},
			{ begin: "@" + JS_IDENT_RE },
			{
				begin: "``",
				end: "``",
				excludeBegin: true,
				excludeEnd: true,
				subLanguage: "javascript"
			}
		];
		SUBST.contains = EXPRESSIONS;
		const PARAMS = {
			className: "params",
			begin: "\\(",
			returnBegin: true,
			contains: [{
				begin: /\(/,
				end: /\)/,
				keywords: KEYWORDS$1$1,
				contains: ["self"].concat(EXPRESSIONS)
			}]
		};
		const SYMBOLS = { begin: "(#=>|=>|\\|>>|-?->|!->)" };
		const CLASS_DEFINITION = {
			variants: [{ match: [
				/class\s+/,
				JS_IDENT_RE,
				/\s+extends\s+/,
				JS_IDENT_RE
			] }, { match: [/class\s+/, JS_IDENT_RE] }],
			scope: {
				2: "title.class",
				4: "title.class.inherited"
			},
			keywords: KEYWORDS$1$1
		};
		return {
			name: "LiveScript",
			aliases: ["ls"],
			keywords: KEYWORDS$1$1,
			illegal: /\/\*/,
			contains: EXPRESSIONS.concat([
				hljs$1.COMMENT("\\/\\*", "\\*\\/"),
				hljs$1.HASH_COMMENT_MODE,
				SYMBOLS,
				{
					className: "function",
					contains: [TITLE, PARAMS],
					returnBegin: true,
					variants: [
						{
							begin: "(" + JS_IDENT_RE + "\\s*(?:=|:=)\\s*)?(\\(.*\\)\\s*)?\\B->\\*?",
							end: "->\\*?"
						},
						{
							begin: "(" + JS_IDENT_RE + "\\s*(?:=|:=)\\s*)?!?(\\(.*\\)\\s*)?\\B[-~]{1,2}>\\*?",
							end: "[-~]{1,2}>\\*?"
						},
						{
							begin: "(" + JS_IDENT_RE + "\\s*(?:=|:=)\\s*)?(\\(.*\\)\\s*)?\\B!?[-~]{1,2}>\\*?",
							end: "!?[-~]{1,2}>\\*?"
						}
					]
				},
				CLASS_DEFINITION,
				{
					begin: JS_IDENT_RE + ":",
					end: ":",
					returnBegin: true,
					returnEnd: true,
					relevance: 0
				}
			])
		};
	}
	module.exports = livescript;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/llvm.js
var require_llvm = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function llvm(hljs$1) {
		const regex = hljs$1.regex;
		const IDENT_RE$6 = /([-a-zA-Z$._][\w$.-]*)/;
		const TYPE = {
			className: "type",
			begin: /\bi\d+(?=\s|\b)/
		};
		const OPERATOR = {
			className: "operator",
			relevance: 0,
			begin: /=/
		};
		const PUNCTUATION = {
			className: "punctuation",
			relevance: 0,
			begin: /,/
		};
		const NUMBER = {
			className: "number",
			variants: [{ begin: /[su]?0[xX][KMLHR]?[a-fA-F0-9]+/ }, { begin: /[-+]?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/ }],
			relevance: 0
		};
		const LABEL = {
			className: "symbol",
			variants: [{ begin: /^\s*[a-z]+:/ }],
			relevance: 0
		};
		const VARIABLE = {
			className: "variable",
			variants: [
				{ begin: regex.concat(/%/, IDENT_RE$6) },
				{ begin: /%\d+/ },
				{ begin: /#\d+/ }
			]
		};
		const FUNCTION = {
			className: "title",
			variants: [
				{ begin: regex.concat(/@/, IDENT_RE$6) },
				{ begin: /@\d+/ },
				{ begin: regex.concat(/!/, IDENT_RE$6) },
				{ begin: regex.concat(/!\d+/, IDENT_RE$6) },
				{ begin: /!\d+/ }
			]
		};
		return {
			name: "LLVM IR",
			keywords: {
				keyword: "begin end true false declare define global " + "constant private linker_private internal " + "available_externally linkonce linkonce_odr weak " + "weak_odr appending dllimport dllexport common " + "default hidden protected extern_weak external " + "thread_local zeroinitializer undef null to tail " + "target triple datalayout volatile nuw nsw nnan " + "ninf nsz arcp fast exact inbounds align " + "addrspace section alias module asm sideeffect " + "gc dbg linker_private_weak attributes blockaddress " + "initialexec localdynamic localexec prefix unnamed_addr " + "ccc fastcc coldcc x86_stdcallcc x86_fastcallcc " + "arm_apcscc arm_aapcscc arm_aapcs_vfpcc ptx_device " + "ptx_kernel intel_ocl_bicc msp430_intrcc spir_func " + "spir_kernel x86_64_sysvcc x86_64_win64cc x86_thiscallcc " + "cc c signext zeroext inreg sret nounwind " + "noreturn noalias nocapture byval nest readnone " + "readonly inlinehint noinline alwaysinline optsize ssp " + "sspreq noredzone noimplicitfloat naked builtin cold " + "nobuiltin noduplicate nonlazybind optnone returns_twice " + "sanitize_address sanitize_memory sanitize_thread sspstrong " + "uwtable returned type opaque eq ne slt sgt " + "sle sge ult ugt ule uge oeq one olt ogt " + "ole oge ord uno ueq une x acq_rel acquire " + "alignstack atomic catch cleanup filter inteldialect " + "max min monotonic nand personality release seq_cst " + "singlethread umax umin unordered xchg add fadd " + "sub fsub mul fmul udiv sdiv fdiv urem srem " + "frem shl lshr ashr and or xor icmp fcmp " + "phi call trunc zext sext fptrunc fpext uitofp " + "sitofp fptoui fptosi inttoptr ptrtoint bitcast " + "addrspacecast select va_arg ret br switch invoke " + "unwind unreachable indirectbr landingpad resume " + "malloc alloca free load store getelementptr " + "extractelement insertelement shufflevector getresult " + "extractvalue insertvalue atomicrmw cmpxchg fence " + "argmemonly",
				type: "void half bfloat float double fp128 x86_fp80 ppc_fp128 " + "x86_amx x86_mmx ptr label token metadata opaque"
			},
			contains: [
				TYPE,
				hljs$1.COMMENT(/;\s*$/, null, { relevance: 0 }),
				hljs$1.COMMENT(/;/, /$/),
				{
					className: "string",
					begin: /"/,
					end: /"/,
					contains: [{
						className: "char.escape",
						match: /\\\d\d/
					}]
				},
				FUNCTION,
				PUNCTUATION,
				OPERATOR,
				VARIABLE,
				LABEL,
				NUMBER
			]
		};
	}
	module.exports = llvm;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/lsl.js
var require_lsl = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function lsl(hljs$1) {
		const LSL_STRING_ESCAPE_CHARS = {
			className: "subst",
			begin: /\\[tn"\\]/
		};
		const LSL_STRINGS = {
			className: "string",
			begin: "\"",
			end: "\"",
			contains: [LSL_STRING_ESCAPE_CHARS]
		};
		const LSL_NUMBERS = {
			className: "number",
			relevance: 0,
			begin: hljs$1.C_NUMBER_RE
		};
		const LSL_CONSTANTS = {
			className: "literal",
			variants: [
				{ begin: "\\b(PI|TWO_PI|PI_BY_TWO|DEG_TO_RAD|RAD_TO_DEG|SQRT2)\\b" },
				{ begin: "\\b(XP_ERROR_(EXPERIENCES_DISABLED|EXPERIENCE_(DISABLED|SUSPENDED)|INVALID_(EXPERIENCE|PARAMETERS)|KEY_NOT_FOUND|MATURITY_EXCEEDED|NONE|NOT_(FOUND|PERMITTED(_LAND)?)|NO_EXPERIENCE|QUOTA_EXCEEDED|RETRY_UPDATE|STORAGE_EXCEPTION|STORE_DISABLED|THROTTLED|UNKNOWN_ERROR)|JSON_APPEND|STATUS_(PHYSICS|ROTATE_[XYZ]|PHANTOM|SANDBOX|BLOCK_GRAB(_OBJECT)?|(DIE|RETURN)_AT_EDGE|CAST_SHADOWS|OK|MALFORMED_PARAMS|TYPE_MISMATCH|BOUNDS_ERROR|NOT_(FOUND|SUPPORTED)|INTERNAL_ERROR|WHITELIST_FAILED)|AGENT(_(BY_(LEGACY_|USER)NAME|FLYING|ATTACHMENTS|SCRIPTED|MOUSELOOK|SITTING|ON_OBJECT|AWAY|WALKING|IN_AIR|TYPING|CROUCHING|BUSY|ALWAYS_RUN|AUTOPILOT|LIST_(PARCEL(_OWNER)?|REGION)))?|CAMERA_(PITCH|DISTANCE|BEHINDNESS_(ANGLE|LAG)|(FOCUS|POSITION)(_(THRESHOLD|LOCKED|LAG))?|FOCUS_OFFSET|ACTIVE)|ANIM_ON|LOOP|REVERSE|PING_PONG|SMOOTH|ROTATE|SCALE|ALL_SIDES|LINK_(ROOT|SET|ALL_(OTHERS|CHILDREN)|THIS)|ACTIVE|PASS(IVE|_(ALWAYS|IF_NOT_HANDLED|NEVER))|SCRIPTED|CONTROL_(FWD|BACK|(ROT_)?(LEFT|RIGHT)|UP|DOWN|(ML_)?LBUTTON)|PERMISSION_(RETURN_OBJECTS|DEBIT|OVERRIDE_ANIMATIONS|SILENT_ESTATE_MANAGEMENT|TAKE_CONTROLS|TRIGGER_ANIMATION|ATTACH|CHANGE_LINKS|(CONTROL|TRACK)_CAMERA|TELEPORT)|INVENTORY_(TEXTURE|SOUND|OBJECT|SCRIPT|LANDMARK|CLOTHING|NOTECARD|BODYPART|ANIMATION|GESTURE|ALL|NONE)|CHANGED_(INVENTORY|COLOR|SHAPE|SCALE|TEXTURE|LINK|ALLOWED_DROP|OWNER|REGION(_START)?|TELEPORT|MEDIA)|OBJECT_(CLICK_ACTION|HOVER_HEIGHT|LAST_OWNER_ID|(PHYSICS|SERVER|STREAMING)_COST|UNKNOWN_DETAIL|CHARACTER_TIME|PHANTOM|PHYSICS|TEMP_(ATTACHED|ON_REZ)|NAME|DESC|POS|PRIM_(COUNT|EQUIVALENCE)|RETURN_(PARCEL(_OWNER)?|REGION)|REZZER_KEY|ROO?T|VELOCITY|OMEGA|OWNER|GROUP(_TAG)?|CREATOR|ATTACHED_(POINT|SLOTS_AVAILABLE)|RENDER_WEIGHT|(BODY_SHAPE|PATHFINDING)_TYPE|(RUNNING|TOTAL)_SCRIPT_COUNT|TOTAL_INVENTORY_COUNT|SCRIPT_(MEMORY|TIME))|TYPE_(INTEGER|FLOAT|STRING|KEY|VECTOR|ROTATION|INVALID)|(DEBUG|PUBLIC)_CHANNEL|ATTACH_(AVATAR_CENTER|CHEST|HEAD|BACK|PELVIS|MOUTH|CHIN|NECK|NOSE|BELLY|[LR](SHOULDER|HAND|FOOT|EAR|EYE|[UL](ARM|LEG)|HIP)|(LEFT|RIGHT)_PEC|HUD_(CENTER_[12]|TOP_(RIGHT|CENTER|LEFT)|BOTTOM(_(RIGHT|LEFT))?)|[LR]HAND_RING1|TAIL_(BASE|TIP)|[LR]WING|FACE_(JAW|[LR]EAR|[LR]EYE|TOUNGE)|GROIN|HIND_[LR]FOOT)|LAND_(LEVEL|RAISE|LOWER|SMOOTH|NOISE|REVERT)|DATA_(ONLINE|NAME|BORN|SIM_(POS|STATUS|RATING)|PAYINFO)|PAYMENT_INFO_(ON_FILE|USED)|REMOTE_DATA_(CHANNEL|REQUEST|REPLY)|PSYS_(PART_(BF_(ZERO|ONE(_MINUS_(DEST_COLOR|SOURCE_(ALPHA|COLOR)))?|DEST_COLOR|SOURCE_(ALPHA|COLOR))|BLEND_FUNC_(DEST|SOURCE)|FLAGS|(START|END)_(COLOR|ALPHA|SCALE|GLOW)|MAX_AGE|(RIBBON|WIND|INTERP_(COLOR|SCALE)|BOUNCE|FOLLOW_(SRC|VELOCITY)|TARGET_(POS|LINEAR)|EMISSIVE)_MASK)|SRC_(MAX_AGE|PATTERN|ANGLE_(BEGIN|END)|BURST_(RATE|PART_COUNT|RADIUS|SPEED_(MIN|MAX))|ACCEL|TEXTURE|TARGET_KEY|OMEGA|PATTERN_(DROP|EXPLODE|ANGLE(_CONE(_EMPTY)?)?)))|VEHICLE_(REFERENCE_FRAME|TYPE_(NONE|SLED|CAR|BOAT|AIRPLANE|BALLOON)|(LINEAR|ANGULAR)_(FRICTION_TIMESCALE|MOTOR_DIRECTION)|LINEAR_MOTOR_OFFSET|HOVER_(HEIGHT|EFFICIENCY|TIMESCALE)|BUOYANCY|(LINEAR|ANGULAR)_(DEFLECTION_(EFFICIENCY|TIMESCALE)|MOTOR_(DECAY_)?TIMESCALE)|VERTICAL_ATTRACTION_(EFFICIENCY|TIMESCALE)|BANKING_(EFFICIENCY|MIX|TIMESCALE)|FLAG_(NO_DEFLECTION_UP|LIMIT_(ROLL_ONLY|MOTOR_UP)|HOVER_((WATER|TERRAIN|UP)_ONLY|GLOBAL_HEIGHT)|MOUSELOOK_(STEER|BANK)|CAMERA_DECOUPLED))|PRIM_(ALLOW_UNSIT|ALPHA_MODE(_(BLEND|EMISSIVE|MASK|NONE))?|NORMAL|SPECULAR|TYPE(_(BOX|CYLINDER|PRISM|SPHERE|TORUS|TUBE|RING|SCULPT))?|HOLE_(DEFAULT|CIRCLE|SQUARE|TRIANGLE)|MATERIAL(_(STONE|METAL|GLASS|WOOD|FLESH|PLASTIC|RUBBER))?|SHINY_(NONE|LOW|MEDIUM|HIGH)|BUMP_(NONE|BRIGHT|DARK|WOOD|BARK|BRICKS|CHECKER|CONCRETE|TILE|STONE|DISKS|GRAVEL|BLOBS|SIDING|LARGETILE|STUCCO|SUCTION|WEAVE)|TEXGEN_(DEFAULT|PLANAR)|SCRIPTED_SIT_ONLY|SCULPT_(TYPE_(SPHERE|TORUS|PLANE|CYLINDER|MASK)|FLAG_(MIRROR|INVERT))|PHYSICS(_(SHAPE_(CONVEX|NONE|PRIM|TYPE)))?|(POS|ROT)_LOCAL|SLICE|TEXT|FLEXIBLE|POINT_LIGHT|TEMP_ON_REZ|PHANTOM|POSITION|SIT_TARGET|SIZE|ROTATION|TEXTURE|NAME|OMEGA|DESC|LINK_TARGET|COLOR|BUMP_SHINY|FULLBRIGHT|TEXGEN|GLOW|MEDIA_(ALT_IMAGE_ENABLE|CONTROLS|(CURRENT|HOME)_URL|AUTO_(LOOP|PLAY|SCALE|ZOOM)|FIRST_CLICK_INTERACT|(WIDTH|HEIGHT)_PIXELS|WHITELIST(_ENABLE)?|PERMS_(INTERACT|CONTROL)|PARAM_MAX|CONTROLS_(STANDARD|MINI)|PERM_(NONE|OWNER|GROUP|ANYONE)|MAX_(URL_LENGTH|WHITELIST_(SIZE|COUNT)|(WIDTH|HEIGHT)_PIXELS)))|MASK_(BASE|OWNER|GROUP|EVERYONE|NEXT)|PERM_(TRANSFER|MODIFY|COPY|MOVE|ALL)|PARCEL_(MEDIA_COMMAND_(STOP|PAUSE|PLAY|LOOP|TEXTURE|URL|TIME|AGENT|UNLOAD|AUTO_ALIGN|TYPE|SIZE|DESC|LOOP_SET)|FLAG_(ALLOW_(FLY|(GROUP_)?SCRIPTS|LANDMARK|TERRAFORM|DAMAGE|CREATE_(GROUP_)?OBJECTS)|USE_(ACCESS_(GROUP|LIST)|BAN_LIST|LAND_PASS_LIST)|LOCAL_SOUND_ONLY|RESTRICT_PUSHOBJECT|ALLOW_(GROUP|ALL)_OBJECT_ENTRY)|COUNT_(TOTAL|OWNER|GROUP|OTHER|SELECTED|TEMP)|DETAILS_(NAME|DESC|OWNER|GROUP|AREA|ID|SEE_AVATARS))|LIST_STAT_(MAX|MIN|MEAN|MEDIAN|STD_DEV|SUM(_SQUARES)?|NUM_COUNT|GEOMETRIC_MEAN|RANGE)|PAY_(HIDE|DEFAULT)|REGION_FLAG_(ALLOW_DAMAGE|FIXED_SUN|BLOCK_TERRAFORM|SANDBOX|DISABLE_(COLLISIONS|PHYSICS)|BLOCK_FLY|ALLOW_DIRECT_TELEPORT|RESTRICT_PUSHOBJECT)|HTTP_(METHOD|MIMETYPE|BODY_(MAXLENGTH|TRUNCATED)|CUSTOM_HEADER|PRAGMA_NO_CACHE|VERBOSE_THROTTLE|VERIFY_CERT)|SIT_(INVALID_(AGENT|LINK_OBJECT)|NO(T_EXPERIENCE|_(ACCESS|EXPERIENCE_PERMISSION|SIT_TARGET)))|STRING_(TRIM(_(HEAD|TAIL))?)|CLICK_ACTION_(NONE|TOUCH|SIT|BUY|PAY|OPEN(_MEDIA)?|PLAY|ZOOM)|TOUCH_INVALID_FACE|PROFILE_(NONE|SCRIPT_MEMORY)|RC_(DATA_FLAGS|DETECT_PHANTOM|GET_(LINK_NUM|NORMAL|ROOT_KEY)|MAX_HITS|REJECT_(TYPES|AGENTS|(NON)?PHYSICAL|LAND))|RCERR_(CAST_TIME_EXCEEDED|SIM_PERF_LOW|UNKNOWN)|ESTATE_ACCESS_(ALLOWED_(AGENT|GROUP)_(ADD|REMOVE)|BANNED_AGENT_(ADD|REMOVE))|DENSITY|FRICTION|RESTITUTION|GRAVITY_MULTIPLIER|KFM_(COMMAND|CMD_(PLAY|STOP|PAUSE)|MODE|FORWARD|LOOP|PING_PONG|REVERSE|DATA|ROTATION|TRANSLATION)|ERR_(GENERIC|PARCEL_PERMISSIONS|MALFORMED_PARAMS|RUNTIME_PERMISSIONS|THROTTLED)|CHARACTER_(CMD_((SMOOTH_)?STOP|JUMP)|DESIRED_(TURN_)?SPEED|RADIUS|STAY_WITHIN_PARCEL|LENGTH|ORIENTATION|ACCOUNT_FOR_SKIPPED_FRAMES|AVOIDANCE_MODE|TYPE(_([ABCD]|NONE))?|MAX_(DECEL|TURN_RADIUS|(ACCEL|SPEED)))|PURSUIT_(OFFSET|FUZZ_FACTOR|GOAL_TOLERANCE|INTERCEPT)|REQUIRE_LINE_OF_SIGHT|FORCE_DIRECT_PATH|VERTICAL|HORIZONTAL|AVOID_(CHARACTERS|DYNAMIC_OBSTACLES|NONE)|PU_(EVADE_(HIDDEN|SPOTTED)|FAILURE_(DYNAMIC_PATHFINDING_DISABLED|INVALID_(GOAL|START)|NO_(NAVMESH|VALID_DESTINATION)|OTHER|TARGET_GONE|(PARCEL_)?UNREACHABLE)|(GOAL|SLOWDOWN_DISTANCE)_REACHED)|TRAVERSAL_TYPE(_(FAST|NONE|SLOW))?|CONTENT_TYPE_(ATOM|FORM|HTML|JSON|LLSD|RSS|TEXT|XHTML|XML)|GCNP_(RADIUS|STATIC)|(PATROL|WANDER)_PAUSE_AT_WAYPOINTS|OPT_(AVATAR|CHARACTER|EXCLUSION_VOLUME|LEGACY_LINKSET|MATERIAL_VOLUME|OTHER|STATIC_OBSTACLE|WALKABLE)|SIM_STAT_PCT_CHARS_STEPPED)\\b" },
				{ begin: "\\b(FALSE|TRUE)\\b" },
				{ begin: "\\b(ZERO_ROTATION)\\b" },
				{ begin: "\\b(EOF|JSON_(ARRAY|DELETE|FALSE|INVALID|NULL|NUMBER|OBJECT|STRING|TRUE)|NULL_KEY|TEXTURE_(BLANK|DEFAULT|MEDIA|PLYWOOD|TRANSPARENT)|URL_REQUEST_(GRANTED|DENIED))\\b" },
				{ begin: "\\b(ZERO_VECTOR|TOUCH_INVALID_(TEXCOORD|VECTOR))\\b" }
			]
		};
		const LSL_FUNCTIONS = {
			className: "built_in",
			begin: "\\b(ll(AgentInExperience|(Create|DataSize|Delete|KeyCount|Keys|Read|Update)KeyValue|GetExperience(Details|ErrorMessage)|ReturnObjectsBy(ID|Owner)|Json(2List|[GS]etValue|ValueType)|Sin|Cos|Tan|Atan2|Sqrt|Pow|Abs|Fabs|Frand|Floor|Ceil|Round|Vec(Mag|Norm|Dist)|Rot(Between|2(Euler|Fwd|Left|Up))|(Euler|Axes)2Rot|Whisper|(Region|Owner)?Say|Shout|Listen(Control|Remove)?|Sensor(Repeat|Remove)?|Detected(Name|Key|Owner|Type|Pos|Vel|Grab|Rot|Group|LinkNumber)|Die|Ground|Wind|([GS]et)(AnimationOverride|MemoryLimit|PrimMediaParams|ParcelMusicURL|Object(Desc|Name)|PhysicsMaterial|Status|Scale|Color|Alpha|Texture|Pos|Rot|Force|Torque)|ResetAnimationOverride|(Scale|Offset|Rotate)Texture|(Rot)?Target(Remove)?|(Stop)?MoveToTarget|Apply(Rotational)?Impulse|Set(KeyframedMotion|ContentType|RegionPos|(Angular)?Velocity|Buoyancy|HoverHeight|ForceAndTorque|TimerEvent|ScriptState|Damage|TextureAnim|Sound(Queueing|Radius)|Vehicle(Type|(Float|Vector|Rotation)Param)|(Touch|Sit)?Text|Camera(Eye|At)Offset|PrimitiveParams|ClickAction|Link(Alpha|Color|PrimitiveParams(Fast)?|Texture(Anim)?|Camera|Media)|RemoteScriptAccessPin|PayPrice|LocalRot)|ScaleByFactor|Get((Max|Min)ScaleFactor|ClosestNavPoint|StaticPath|SimStats|Env|PrimitiveParams|Link(PrimitiveParams|Number(OfSides)?|Key|Name|Media)|HTTPHeader|FreeURLs|Object(Details|PermMask|PrimCount)|Parcel(MaxPrims|Details|Prim(Count|Owners))|Attached(List)?|(SPMax|Free|Used)Memory|Region(Name|TimeDilation|FPS|Corner|AgentCount)|Root(Position|Rotation)|UnixTime|(Parcel|Region)Flags|(Wall|GMT)clock|SimulatorHostname|BoundingBox|GeometricCenter|Creator|NumberOf(Prims|NotecardLines|Sides)|Animation(List)?|(Camera|Local)(Pos|Rot)|Vel|Accel|Omega|Time(stamp|OfDay)|(Object|CenterOf)?Mass|MassMKS|Energy|Owner|(Owner)?Key|SunDirection|Texture(Offset|Scale|Rot)|Inventory(Number|Name|Key|Type|Creator|PermMask)|Permissions(Key)?|StartParameter|List(Length|EntryType)|Date|Agent(Size|Info|Language|List)|LandOwnerAt|NotecardLine|Script(Name|State))|(Get|Reset|GetAndReset)Time|PlaySound(Slave)?|LoopSound(Master|Slave)?|(Trigger|Stop|Preload)Sound|((Get|Delete)Sub|Insert)String|To(Upper|Lower)|Give(InventoryList|Money)|RezObject|(Stop)?LookAt|Sleep|CollisionFilter|(Take|Release)Controls|DetachFromAvatar|AttachToAvatar(Temp)?|InstantMessage|(GetNext)?Email|StopHover|MinEventDelay|RotLookAt|String(Length|Trim)|(Start|Stop)Animation|TargetOmega|Request(Experience)?Permissions|(Create|Break)Link|BreakAllLinks|(Give|Remove)Inventory|Water|PassTouches|Request(Agent|Inventory)Data|TeleportAgent(Home|GlobalCoords)?|ModifyLand|CollisionSound|ResetScript|MessageLinked|PushObject|PassCollisions|AxisAngle2Rot|Rot2(Axis|Angle)|A(cos|sin)|AngleBetween|AllowInventoryDrop|SubStringIndex|List2(CSV|Integer|Json|Float|String|Key|Vector|Rot|List(Strided)?)|DeleteSubList|List(Statistics|Sort|Randomize|(Insert|Find|Replace)List)|EdgeOfWorld|AdjustSoundVolume|Key2Name|TriggerSoundLimited|EjectFromLand|(CSV|ParseString)2List|OverMyLand|SameGroup|UnSit|Ground(Slope|Normal|Contour)|GroundRepel|(Set|Remove)VehicleFlags|SitOnLink|(AvatarOn)?(Link)?SitTarget|Script(Danger|Profiler)|Dialog|VolumeDetect|ResetOtherScript|RemoteLoadScriptPin|(Open|Close)RemoteDataChannel|SendRemoteData|RemoteDataReply|(Integer|String)ToBase64|XorBase64|Log(10)?|Base64To(String|Integer)|ParseStringKeepNulls|RezAtRoot|RequestSimulatorData|ForceMouselook|(Load|Release|(E|Une)scape)URL|ParcelMedia(CommandList|Query)|ModPow|MapDestination|(RemoveFrom|AddTo|Reset)Land(Pass|Ban)List|(Set|Clear)CameraParams|HTTP(Request|Response)|TextBox|DetectedTouch(UV|Face|Pos|(N|Bin)ormal|ST)|(MD5|SHA1|DumpList2)String|Request(Secure)?URL|Clear(Prim|Link)Media|(Link)?ParticleSystem|(Get|Request)(Username|DisplayName)|RegionSayTo|CastRay|GenerateKey|TransferLindenDollars|ManageEstateAccess|(Create|Delete)Character|ExecCharacterCmd|Evade|FleeFrom|NavigateTo|PatrolPoints|Pursue|UpdateCharacter|WanderWithin))\\b"
		};
		return {
			name: "LSL (Linden Scripting Language)",
			illegal: ":",
			contains: [
				LSL_STRINGS,
				{
					className: "comment",
					variants: [hljs$1.COMMENT("//", "$"), hljs$1.COMMENT("/\\*", "\\*/")],
					relevance: 0
				},
				LSL_NUMBERS,
				{
					className: "section",
					variants: [{ begin: "\\b(state|default)\\b" }, { begin: "\\b(state_(entry|exit)|touch(_(start|end))?|(land_)?collision(_(start|end))?|timer|listen|(no_)?sensor|control|(not_)?at_(rot_)?target|money|email|experience_permissions(_denied)?|run_time_permissions|changed|attach|dataserver|moving_(start|end)|link_message|(on|object)_rez|remote_data|http_re(sponse|quest)|path_update|transaction_result)\\b" }]
				},
				LSL_FUNCTIONS,
				LSL_CONSTANTS,
				{
					className: "type",
					begin: "\\b(integer|float|string|key|vector|quaternion|rotation|list)\\b"
				}
			]
		};
	}
	module.exports = lsl;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/lua.js
var require_lua = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function lua(hljs$1) {
		const OPENING_LONG_BRACKET = "\\[=*\\[";
		const CLOSING_LONG_BRACKET = "\\]=*\\]";
		const LONG_BRACKETS = {
			begin: OPENING_LONG_BRACKET,
			end: CLOSING_LONG_BRACKET,
			contains: ["self"]
		};
		const COMMENTS = [hljs$1.COMMENT("--(?!" + OPENING_LONG_BRACKET + ")", "$"), hljs$1.COMMENT("--" + OPENING_LONG_BRACKET, CLOSING_LONG_BRACKET, {
			contains: [LONG_BRACKETS],
			relevance: 10
		})];
		return {
			name: "Lua",
			aliases: ["pluto"],
			keywords: {
				$pattern: hljs$1.UNDERSCORE_IDENT_RE,
				literal: "true false nil",
				keyword: "and break do else elseif end for goto if in local not or repeat return then until while",
				built_in: "_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len " + "__gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert " + "collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring " + "module next pairs pcall print rawequal rawget rawset require select setfenv " + "setmetatable tonumber tostring type unpack xpcall arg self " + "coroutine resume yield status wrap create running debug getupvalue " + "debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv " + "io lines write close flush open output type read stderr stdin input stdout popen tmpfile " + "math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan " + "os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall " + "string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower " + "table setn insert getn foreachi maxn foreach concat sort remove"
			},
			contains: COMMENTS.concat([
				{
					className: "function",
					beginKeywords: "function",
					end: "\\)",
					contains: [hljs$1.inherit(hljs$1.TITLE_MODE, { begin: "([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*" }), {
						className: "params",
						begin: "\\(",
						endsWithParent: true,
						contains: COMMENTS
					}].concat(COMMENTS)
				},
				hljs$1.C_NUMBER_MODE,
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				{
					className: "string",
					begin: OPENING_LONG_BRACKET,
					end: CLOSING_LONG_BRACKET,
					contains: [LONG_BRACKETS],
					relevance: 5
				}
			])
		};
	}
	module.exports = lua;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/makefile.js
var require_makefile = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function makefile(hljs$1) {
		const VARIABLE = {
			className: "variable",
			variants: [{
				begin: "\\$\\(" + hljs$1.UNDERSCORE_IDENT_RE + "\\)",
				contains: [hljs$1.BACKSLASH_ESCAPE]
			}, { begin: /\$[@%<?\^\+\*]/ }]
		};
		const QUOTE_STRING = {
			className: "string",
			begin: /"/,
			end: /"/,
			contains: [hljs$1.BACKSLASH_ESCAPE, VARIABLE]
		};
		const FUNC = {
			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: [VARIABLE, QUOTE_STRING]
		};
		const ASSIGNMENT = { begin: "^" + hljs$1.UNDERSCORE_IDENT_RE + "\\s*(?=[:+?]?=)" };
		const META = {
			className: "meta",
			begin: /^\.PHONY:/,
			end: /$/,
			keywords: {
				$pattern: /[\.\w]+/,
				keyword: ".PHONY"
			}
		};
		const TARGET = {
			className: "section",
			begin: /^[^\s]+:/,
			end: /$/,
			contains: [VARIABLE]
		};
		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: [
				hljs$1.HASH_COMMENT_MODE,
				VARIABLE,
				QUOTE_STRING,
				FUNC,
				ASSIGNMENT,
				META,
				TARGET
			]
		};
	}
	module.exports = makefile;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/mathematica.js
var require_mathematica = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	const SYSTEM_SYMBOLS = [
		"AASTriangle",
		"AbelianGroup",
		"Abort",
		"AbortKernels",
		"AbortProtect",
		"AbortScheduledTask",
		"Above",
		"Abs",
		"AbsArg",
		"AbsArgPlot",
		"Absolute",
		"AbsoluteCorrelation",
		"AbsoluteCorrelationFunction",
		"AbsoluteCurrentValue",
		"AbsoluteDashing",
		"AbsoluteFileName",
		"AbsoluteOptions",
		"AbsolutePointSize",
		"AbsoluteThickness",
		"AbsoluteTime",
		"AbsoluteTiming",
		"AcceptanceThreshold",
		"AccountingForm",
		"Accumulate",
		"Accuracy",
		"AccuracyGoal",
		"AcousticAbsorbingValue",
		"AcousticImpedanceValue",
		"AcousticNormalVelocityValue",
		"AcousticPDEComponent",
		"AcousticPressureCondition",
		"AcousticRadiationValue",
		"AcousticSoundHardValue",
		"AcousticSoundSoftCondition",
		"ActionDelay",
		"ActionMenu",
		"ActionMenuBox",
		"ActionMenuBoxOptions",
		"Activate",
		"Active",
		"ActiveClassification",
		"ActiveClassificationObject",
		"ActiveItem",
		"ActivePrediction",
		"ActivePredictionObject",
		"ActiveStyle",
		"AcyclicGraphQ",
		"AddOnHelpPath",
		"AddSides",
		"AddTo",
		"AddToSearchIndex",
		"AddUsers",
		"AdjacencyGraph",
		"AdjacencyList",
		"AdjacencyMatrix",
		"AdjacentMeshCells",
		"Adjugate",
		"AdjustmentBox",
		"AdjustmentBoxOptions",
		"AdjustTimeSeriesForecast",
		"AdministrativeDivisionData",
		"AffineHalfSpace",
		"AffineSpace",
		"AffineStateSpaceModel",
		"AffineTransform",
		"After",
		"AggregatedEntityClass",
		"AggregationLayer",
		"AircraftData",
		"AirportData",
		"AirPressureData",
		"AirSoundAttenuation",
		"AirTemperatureData",
		"AiryAi",
		"AiryAiPrime",
		"AiryAiZero",
		"AiryBi",
		"AiryBiPrime",
		"AiryBiZero",
		"AlgebraicIntegerQ",
		"AlgebraicNumber",
		"AlgebraicNumberDenominator",
		"AlgebraicNumberNorm",
		"AlgebraicNumberPolynomial",
		"AlgebraicNumberTrace",
		"AlgebraicRules",
		"AlgebraicRulesData",
		"Algebraics",
		"AlgebraicUnitQ",
		"Alignment",
		"AlignmentMarker",
		"AlignmentPoint",
		"All",
		"AllowAdultContent",
		"AllowChatServices",
		"AllowedCloudExtraParameters",
		"AllowedCloudParameterExtensions",
		"AllowedDimensions",
		"AllowedFrequencyRange",
		"AllowedHeads",
		"AllowGroupClose",
		"AllowIncomplete",
		"AllowInlineCells",
		"AllowKernelInitialization",
		"AllowLooseGrammar",
		"AllowReverseGroupClose",
		"AllowScriptLevelChange",
		"AllowVersionUpdate",
		"AllTrue",
		"Alphabet",
		"AlphabeticOrder",
		"AlphabeticSort",
		"AlphaChannel",
		"AlternateImage",
		"AlternatingFactorial",
		"AlternatingGroup",
		"AlternativeHypothesis",
		"Alternatives",
		"AltitudeMethod",
		"AmbientLight",
		"AmbiguityFunction",
		"AmbiguityList",
		"Analytic",
		"AnatomyData",
		"AnatomyForm",
		"AnatomyPlot3D",
		"AnatomySkinStyle",
		"AnatomyStyling",
		"AnchoredSearch",
		"And",
		"AndersonDarlingTest",
		"AngerJ",
		"AngleBisector",
		"AngleBracket",
		"AnglePath",
		"AnglePath3D",
		"AngleVector",
		"AngularGauge",
		"Animate",
		"AnimatedImage",
		"AnimationCycleOffset",
		"AnimationCycleRepetitions",
		"AnimationDirection",
		"AnimationDisplayTime",
		"AnimationRate",
		"AnimationRepetitions",
		"AnimationRunning",
		"AnimationRunTime",
		"AnimationTimeIndex",
		"AnimationVideo",
		"Animator",
		"AnimatorBox",
		"AnimatorBoxOptions",
		"AnimatorElements",
		"Annotate",
		"Annotation",
		"AnnotationDelete",
		"AnnotationKeys",
		"AnnotationRules",
		"AnnotationValue",
		"Annuity",
		"AnnuityDue",
		"Annulus",
		"AnomalyDetection",
		"AnomalyDetector",
		"AnomalyDetectorFunction",
		"Anonymous",
		"Antialiasing",
		"Antihermitian",
		"AntihermitianMatrixQ",
		"Antisymmetric",
		"AntisymmetricMatrixQ",
		"Antonyms",
		"AnyOrder",
		"AnySubset",
		"AnyTrue",
		"Apart",
		"ApartSquareFree",
		"APIFunction",
		"Appearance",
		"AppearanceElements",
		"AppearanceRules",
		"AppellF1",
		"Append",
		"AppendCheck",
		"AppendLayer",
		"AppendTo",
		"Application",
		"Apply",
		"ApplyReaction",
		"ApplySides",
		"ApplyTo",
		"ArcCos",
		"ArcCosh",
		"ArcCot",
		"ArcCoth",
		"ArcCsc",
		"ArcCsch",
		"ArcCurvature",
		"ARCHProcess",
		"ArcLength",
		"ArcSec",
		"ArcSech",
		"ArcSin",
		"ArcSinDistribution",
		"ArcSinh",
		"ArcTan",
		"ArcTanh",
		"Area",
		"Arg",
		"ArgMax",
		"ArgMin",
		"ArgumentCountQ",
		"ArgumentsOptions",
		"ARIMAProcess",
		"ArithmeticGeometricMean",
		"ARMAProcess",
		"Around",
		"AroundReplace",
		"ARProcess",
		"Array",
		"ArrayComponents",
		"ArrayDepth",
		"ArrayFilter",
		"ArrayFlatten",
		"ArrayMesh",
		"ArrayPad",
		"ArrayPlot",
		"ArrayPlot3D",
		"ArrayQ",
		"ArrayReduce",
		"ArrayResample",
		"ArrayReshape",
		"ArrayRules",
		"Arrays",
		"Arrow",
		"Arrow3DBox",
		"ArrowBox",
		"Arrowheads",
		"ASATriangle",
		"Ask",
		"AskAppend",
		"AskConfirm",
		"AskDisplay",
		"AskedQ",
		"AskedValue",
		"AskFunction",
		"AskState",
		"AskTemplateDisplay",
		"AspectRatio",
		"AspectRatioFixed",
		"Assert",
		"AssessmentFunction",
		"AssessmentResultObject",
		"AssociateTo",
		"Association",
		"AssociationFormat",
		"AssociationMap",
		"AssociationQ",
		"AssociationThread",
		"AssumeDeterministic",
		"Assuming",
		"Assumptions",
		"AstroAngularSeparation",
		"AstroBackground",
		"AstroCenter",
		"AstroDistance",
		"AstroGraphics",
		"AstroGridLines",
		"AstroGridLinesStyle",
		"AstronomicalData",
		"AstroPosition",
		"AstroProjection",
		"AstroRange",
		"AstroRangePadding",
		"AstroReferenceFrame",
		"AstroStyling",
		"AstroZoomLevel",
		"Asymptotic",
		"AsymptoticDSolveValue",
		"AsymptoticEqual",
		"AsymptoticEquivalent",
		"AsymptoticExpectation",
		"AsymptoticGreater",
		"AsymptoticGreaterEqual",
		"AsymptoticIntegrate",
		"AsymptoticLess",
		"AsymptoticLessEqual",
		"AsymptoticOutputTracker",
		"AsymptoticProbability",
		"AsymptoticProduct",
		"AsymptoticRSolveValue",
		"AsymptoticSolve",
		"AsymptoticSum",
		"Asynchronous",
		"AsynchronousTaskObject",
		"AsynchronousTasks",
		"Atom",
		"AtomCoordinates",
		"AtomCount",
		"AtomDiagramCoordinates",
		"AtomLabels",
		"AtomLabelStyle",
		"AtomList",
		"AtomQ",
		"AttachCell",
		"AttachedCell",
		"AttentionLayer",
		"Attributes",
		"Audio",
		"AudioAmplify",
		"AudioAnnotate",
		"AudioAnnotationLookup",
		"AudioBlockMap",
		"AudioCapture",
		"AudioChannelAssignment",
		"AudioChannelCombine",
		"AudioChannelMix",
		"AudioChannels",
		"AudioChannelSeparate",
		"AudioData",
		"AudioDelay",
		"AudioDelete",
		"AudioDevice",
		"AudioDistance",
		"AudioEncoding",
		"AudioFade",
		"AudioFrequencyShift",
		"AudioGenerator",
		"AudioIdentify",
		"AudioInputDevice",
		"AudioInsert",
		"AudioInstanceQ",
		"AudioIntervals",
		"AudioJoin",
		"AudioLabel",
		"AudioLength",
		"AudioLocalMeasurements",
		"AudioLooping",
		"AudioLoudness",
		"AudioMeasurements",
		"AudioNormalize",
		"AudioOutputDevice",
		"AudioOverlay",
		"AudioPad",
		"AudioPan",
		"AudioPartition",
		"AudioPause",
		"AudioPitchShift",
		"AudioPlay",
		"AudioPlot",
		"AudioQ",
		"AudioRecord",
		"AudioReplace",
		"AudioResample",
		"AudioReverb",
		"AudioReverse",
		"AudioSampleRate",
		"AudioSpectralMap",
		"AudioSpectralTransformation",
		"AudioSplit",
		"AudioStop",
		"AudioStream",
		"AudioStreams",
		"AudioTimeStretch",
		"AudioTrackApply",
		"AudioTrackSelection",
		"AudioTrim",
		"AudioType",
		"AugmentedPolyhedron",
		"AugmentedSymmetricPolynomial",
		"Authenticate",
		"Authentication",
		"AuthenticationDialog",
		"AutoAction",
		"Autocomplete",
		"AutocompletionFunction",
		"AutoCopy",
		"AutocorrelationTest",
		"AutoDelete",
		"AutoEvaluateEvents",
		"AutoGeneratedPackage",
		"AutoIndent",
		"AutoIndentSpacings",
		"AutoItalicWords",
		"AutoloadPath",
		"AutoMatch",
		"Automatic",
		"AutomaticImageSize",
		"AutoMultiplicationSymbol",
		"AutoNumberFormatting",
		"AutoOpenNotebooks",
		"AutoOpenPalettes",
		"AutoOperatorRenderings",
		"AutoQuoteCharacters",
		"AutoRefreshed",
		"AutoRemove",
		"AutorunSequencing",
		"AutoScaling",
		"AutoScroll",
		"AutoSpacing",
		"AutoStyleOptions",
		"AutoStyleWords",
		"AutoSubmitting",
		"Axes",
		"AxesEdge",
		"AxesLabel",
		"AxesOrigin",
		"AxesStyle",
		"AxiomaticTheory",
		"Axis",
		"Axis3DBox",
		"Axis3DBoxOptions",
		"AxisBox",
		"AxisBoxOptions",
		"AxisLabel",
		"AxisObject",
		"AxisStyle",
		"BabyMonsterGroupB",
		"Back",
		"BackFaceColor",
		"BackFaceGlowColor",
		"BackFaceOpacity",
		"BackFaceSpecularColor",
		"BackFaceSpecularExponent",
		"BackFaceSurfaceAppearance",
		"BackFaceTexture",
		"Background",
		"BackgroundAppearance",
		"BackgroundTasksSettings",
		"Backslash",
		"Backsubstitution",
		"Backward",
		"Ball",
		"Band",
		"BandpassFilter",
		"BandstopFilter",
		"BarabasiAlbertGraphDistribution",
		"BarChart",
		"BarChart3D",
		"BarcodeImage",
		"BarcodeRecognize",
		"BaringhausHenzeTest",
		"BarLegend",
		"BarlowProschanImportance",
		"BarnesG",
		"BarOrigin",
		"BarSpacing",
		"BartlettHannWindow",
		"BartlettWindow",
		"BaseDecode",
		"BaseEncode",
		"BaseForm",
		"Baseline",
		"BaselinePosition",
		"BaseStyle",
		"BasicRecurrentLayer",
		"BatchNormalizationLayer",
		"BatchSize",
		"BatesDistribution",
		"BattleLemarieWavelet",
		"BayesianMaximization",
		"BayesianMaximizationObject",
		"BayesianMinimization",
		"BayesianMinimizationObject",
		"Because",
		"BeckmannDistribution",
		"Beep",
		"Before",
		"Begin",
		"BeginDialogPacket",
		"BeginPackage",
		"BellB",
		"BellY",
		"Below",
		"BenfordDistribution",
		"BeniniDistribution",
		"BenktanderGibratDistribution",
		"BenktanderWeibullDistribution",
		"BernoulliB",
		"BernoulliDistribution",
		"BernoulliGraphDistribution",
		"BernoulliProcess",
		"BernsteinBasis",
		"BesagL",
		"BesselFilterModel",
		"BesselI",
		"BesselJ",
		"BesselJZero",
		"BesselK",
		"BesselY",
		"BesselYZero",
		"Beta",
		"BetaBinomialDistribution",
		"BetaDistribution",
		"BetaNegativeBinomialDistribution",
		"BetaPrimeDistribution",
		"BetaRegularized",
		"Between",
		"BetweennessCentrality",
		"Beveled",
		"BeveledPolyhedron",
		"BezierCurve",
		"BezierCurve3DBox",
		"BezierCurve3DBoxOptions",
		"BezierCurveBox",
		"BezierCurveBoxOptions",
		"BezierFunction",
		"BilateralFilter",
		"BilateralLaplaceTransform",
		"BilateralZTransform",
		"Binarize",
		"BinaryDeserialize",
		"BinaryDistance",
		"BinaryFormat",
		"BinaryImageQ",
		"BinaryRead",
		"BinaryReadList",
		"BinarySerialize",
		"BinaryWrite",
		"BinCounts",
		"BinLists",
		"BinnedVariogramList",
		"Binomial",
		"BinomialDistribution",
		"BinomialPointProcess",
		"BinomialProcess",
		"BinormalDistribution",
		"BiorthogonalSplineWavelet",
		"BioSequence",
		"BioSequenceBackTranslateList",
		"BioSequenceComplement",
		"BioSequenceInstances",
		"BioSequenceModify",
		"BioSequencePlot",
		"BioSequenceQ",
		"BioSequenceReverseComplement",
		"BioSequenceTranscribe",
		"BioSequenceTranslate",
		"BipartiteGraphQ",
		"BiquadraticFilterModel",
		"BirnbaumImportance",
		"BirnbaumSaundersDistribution",
		"BitAnd",
		"BitClear",
		"BitGet",
		"BitLength",
		"BitNot",
		"BitOr",
		"BitRate",
		"BitSet",
		"BitShiftLeft",
		"BitShiftRight",
		"BitXor",
		"BiweightLocation",
		"BiweightMidvariance",
		"Black",
		"BlackmanHarrisWindow",
		"BlackmanNuttallWindow",
		"BlackmanWindow",
		"Blank",
		"BlankForm",
		"BlankNullSequence",
		"BlankSequence",
		"Blend",
		"Block",
		"BlockchainAddressData",
		"BlockchainBase",
		"BlockchainBlockData",
		"BlockchainContractValue",
		"BlockchainData",
		"BlockchainGet",
		"BlockchainKeyEncode",
		"BlockchainPut",
		"BlockchainTokenData",
		"BlockchainTransaction",
		"BlockchainTransactionData",
		"BlockchainTransactionSign",
		"BlockchainTransactionSubmit",
		"BlockDiagonalMatrix",
		"BlockLowerTriangularMatrix",
		"BlockMap",
		"BlockRandom",
		"BlockUpperTriangularMatrix",
		"BlomqvistBeta",
		"BlomqvistBetaTest",
		"Blue",
		"Blur",
		"Blurring",
		"BodePlot",
		"BohmanWindow",
		"Bold",
		"Bond",
		"BondCount",
		"BondLabels",
		"BondLabelStyle",
		"BondList",
		"BondQ",
		"Bookmarks",
		"Boole",
		"BooleanConsecutiveFunction",
		"BooleanConvert",
		"BooleanCountingFunction",
		"BooleanFunction",
		"BooleanGraph",
		"BooleanMaxterms",
		"BooleanMinimize",
		"BooleanMinterms",
		"BooleanQ",
		"BooleanRegion",
		"Booleans",
		"BooleanStrings",
		"BooleanTable",
		"BooleanVariables",
		"BorderDimensions",
		"BorelTannerDistribution",
		"Bottom",
		"BottomHatTransform",
		"BoundaryDiscretizeGraphics",
		"BoundaryDiscretizeRegion",
		"BoundaryMesh",
		"BoundaryMeshRegion",
		"BoundaryMeshRegionQ",
		"BoundaryStyle",
		"BoundedRegionQ",
		"BoundingRegion",
		"Bounds",
		"Box",
		"BoxBaselineShift",
		"BoxData",
		"BoxDimensions",
		"Boxed",
		"Boxes",
		"BoxForm",
		"BoxFormFormatTypes",
		"BoxFrame",
		"BoxID",
		"BoxMargins",
		"BoxMatrix",
		"BoxObject",
		"BoxRatios",
		"BoxRotation",
		"BoxRotationPoint",
		"BoxStyle",
		"BoxWhiskerChart",
		"Bra",
		"BracketingBar",
		"BraKet",
		"BrayCurtisDistance",
		"BreadthFirstScan",
		"Break",
		"BridgeData",
		"BrightnessEqualize",
		"BroadcastStationData",
		"Brown",
		"BrownForsytheTest",
		"BrownianBridgeProcess",
		"BrowserCategory",
		"BSplineBasis",
		"BSplineCurve",
		"BSplineCurve3DBox",
		"BSplineCurve3DBoxOptions",
		"BSplineCurveBox",
		"BSplineCurveBoxOptions",
		"BSplineFunction",
		"BSplineSurface",
		"BSplineSurface3DBox",
		"BSplineSurface3DBoxOptions",
		"BubbleChart",
		"BubbleChart3D",
		"BubbleScale",
		"BubbleSizes",
		"BuckyballGraph",
		"BuildCompiledComponent",
		"BuildingData",
		"BulletGauge",
		"BusinessDayQ",
		"ButterflyGraph",
		"ButterworthFilterModel",
		"Button",
		"ButtonBar",
		"ButtonBox",
		"ButtonBoxOptions",
		"ButtonCell",
		"ButtonContents",
		"ButtonData",
		"ButtonEvaluator",
		"ButtonExpandable",
		"ButtonFrame",
		"ButtonFunction",
		"ButtonMargins",
		"ButtonMinHeight",
		"ButtonNote",
		"ButtonNotebook",
		"ButtonSource",
		"ButtonStyle",
		"ButtonStyleMenuListing",
		"Byte",
		"ByteArray",
		"ByteArrayFormat",
		"ByteArrayFormatQ",
		"ByteArrayQ",
		"ByteArrayToString",
		"ByteCount",
		"ByteOrdering",
		"C",
		"CachedValue",
		"CacheGraphics",
		"CachePersistence",
		"CalendarConvert",
		"CalendarData",
		"CalendarType",
		"Callout",
		"CalloutMarker",
		"CalloutStyle",
		"CallPacket",
		"CanberraDistance",
		"Cancel",
		"CancelButton",
		"CandlestickChart",
		"CanonicalGraph",
		"CanonicalizePolygon",
		"CanonicalizePolyhedron",
		"CanonicalizeRegion",
		"CanonicalName",
		"CanonicalWarpingCorrespondence",
		"CanonicalWarpingDistance",
		"CantorMesh",
		"CantorStaircase",
		"Canvas",
		"Cap",
		"CapForm",
		"CapitalDifferentialD",
		"Capitalize",
		"CapsuleShape",
		"CaptureRunning",
		"CaputoD",
		"CardinalBSplineBasis",
		"CarlemanLinearize",
		"CarlsonRC",
		"CarlsonRD",
		"CarlsonRE",
		"CarlsonRF",
		"CarlsonRG",
		"CarlsonRJ",
		"CarlsonRK",
		"CarlsonRM",
		"CarmichaelLambda",
		"CaseOrdering",
		"Cases",
		"CaseSensitive",
		"Cashflow",
		"Casoratian",
		"Cast",
		"Catalan",
		"CatalanNumber",
		"Catch",
		"CategoricalDistribution",
		"Catenate",
		"CatenateLayer",
		"CauchyDistribution",
		"CauchyMatrix",
		"CauchyPointProcess",
		"CauchyWindow",
		"CayleyGraph",
		"CDF",
		"CDFDeploy",
		"CDFInformation",
		"CDFWavelet",
		"Ceiling",
		"CelestialSystem",
		"Cell",
		"CellAutoOverwrite",
		"CellBaseline",
		"CellBoundingBox",
		"CellBracketOptions",
		"CellChangeTimes",
		"CellContents",
		"CellContext",
		"CellDingbat",
		"CellDingbatMargin",
		"CellDynamicExpression",
		"CellEditDuplicate",
		"CellElementsBoundingBox",
		"CellElementSpacings",
		"CellEpilog",
		"CellEvaluationDuplicate",
		"CellEvaluationFunction",
		"CellEvaluationLanguage",
		"CellEventActions",
		"CellFrame",
		"CellFrameColor",
		"CellFrameLabelMargins",
		"CellFrameLabels",
		"CellFrameMargins",
		"CellFrameStyle",
		"CellGroup",
		"CellGroupData",
		"CellGrouping",
		"CellGroupingRules",
		"CellHorizontalScrolling",
		"CellID",
		"CellInsertionPointCell",
		"CellLabel",
		"CellLabelAutoDelete",
		"CellLabelMargins",
		"CellLabelPositioning",
		"CellLabelStyle",
		"CellLabelTemplate",
		"CellMargins",
		"CellObject",
		"CellOpen",
		"CellPrint",
		"CellProlog",
		"Cells",
		"CellSize",
		"CellStyle",
		"CellTags",
		"CellTrayPosition",
		"CellTrayWidgets",
		"CellularAutomaton",
		"CensoredDistribution",
		"Censoring",
		"Center",
		"CenterArray",
		"CenterDot",
		"CenteredInterval",
		"CentralFeature",
		"CentralMoment",
		"CentralMomentGeneratingFunction",
		"Cepstrogram",
		"CepstrogramArray",
		"CepstrumArray",
		"CForm",
		"ChampernowneNumber",
		"ChangeOptions",
		"ChannelBase",
		"ChannelBrokerAction",
		"ChannelDatabin",
		"ChannelHistoryLength",
		"ChannelListen",
		"ChannelListener",
		"ChannelListeners",
		"ChannelListenerWait",
		"ChannelObject",
		"ChannelPreSendFunction",
		"ChannelReceiverFunction",
		"ChannelSend",
		"ChannelSubscribers",
		"ChanVeseBinarize",
		"Character",
		"CharacterCounts",
		"CharacterEncoding",
		"CharacterEncodingsPath",
		"CharacteristicFunction",
		"CharacteristicPolynomial",
		"CharacterName",
		"CharacterNormalize",
		"CharacterRange",
		"Characters",
		"ChartBaseStyle",
		"ChartElementData",
		"ChartElementDataFunction",
		"ChartElementFunction",
		"ChartElements",
		"ChartLabels",
		"ChartLayout",
		"ChartLegends",
		"ChartStyle",
		"Chebyshev1FilterModel",
		"Chebyshev2FilterModel",
		"ChebyshevDistance",
		"ChebyshevT",
		"ChebyshevU",
		"Check",
		"CheckAbort",
		"CheckAll",
		"CheckArguments",
		"Checkbox",
		"CheckboxBar",
		"CheckboxBox",
		"CheckboxBoxOptions",
		"ChemicalConvert",
		"ChemicalData",
		"ChemicalFormula",
		"ChemicalInstance",
		"ChemicalReaction",
		"ChessboardDistance",
		"ChiDistribution",
		"ChineseRemainder",
		"ChiSquareDistribution",
		"ChoiceButtons",
		"ChoiceDialog",
		"CholeskyDecomposition",
		"Chop",
		"ChromaticityPlot",
		"ChromaticityPlot3D",
		"ChromaticPolynomial",
		"Circle",
		"CircleBox",
		"CircleDot",
		"CircleMinus",
		"CirclePlus",
		"CirclePoints",
		"CircleThrough",
		"CircleTimes",
		"CirculantGraph",
		"CircularArcThrough",
		"CircularOrthogonalMatrixDistribution",
		"CircularQuaternionMatrixDistribution",
		"CircularRealMatrixDistribution",
		"CircularSymplecticMatrixDistribution",
		"CircularUnitaryMatrixDistribution",
		"Circumsphere",
		"CityData",
		"ClassifierFunction",
		"ClassifierInformation",
		"ClassifierMeasurements",
		"ClassifierMeasurementsObject",
		"Classify",
		"ClassPriors",
		"Clear",
		"ClearAll",
		"ClearAttributes",
		"ClearCookies",
		"ClearPermissions",
		"ClearSystemCache",
		"ClebschGordan",
		"ClickPane",
		"ClickToCopy",
		"ClickToCopyEnabled",
		"Clip",
		"ClipboardNotebook",
		"ClipFill",
		"ClippingStyle",
		"ClipPlanes",
		"ClipPlanesStyle",
		"ClipRange",
		"Clock",
		"ClockGauge",
		"ClockwiseContourIntegral",
		"Close",
		"Closed",
		"CloseKernels",
		"ClosenessCentrality",
		"Closing",
		"ClosingAutoSave",
		"ClosingEvent",
		"CloudAccountData",
		"CloudBase",
		"CloudConnect",
		"CloudConnections",
		"CloudDeploy",
		"CloudDirectory",
		"CloudDisconnect",
		"CloudEvaluate",
		"CloudExport",
		"CloudExpression",
		"CloudExpressions",
		"CloudFunction",
		"CloudGet",
		"CloudImport",
		"CloudLoggingData",
		"CloudObject",
		"CloudObjectInformation",
		"CloudObjectInformationData",
		"CloudObjectNameFormat",
		"CloudObjects",
		"CloudObjectURLType",
		"CloudPublish",
		"CloudPut",
		"CloudRenderingMethod",
		"CloudSave",
		"CloudShare",
		"CloudSubmit",
		"CloudSymbol",
		"CloudUnshare",
		"CloudUserID",
		"ClusterClassify",
		"ClusterDissimilarityFunction",
		"ClusteringComponents",
		"ClusteringMeasurements",
		"ClusteringTree",
		"CMYKColor",
		"Coarse",
		"CodeAssistOptions",
		"Coefficient",
		"CoefficientArrays",
		"CoefficientDomain",
		"CoefficientList",
		"CoefficientRules",
		"CoifletWavelet",
		"Collect",
		"CollinearPoints",
		"Colon",
		"ColonForm",
		"ColorBalance",
		"ColorCombine",
		"ColorConvert",
		"ColorCoverage",
		"ColorData",
		"ColorDataFunction",
		"ColorDetect",
		"ColorDistance",
		"ColorFunction",
		"ColorFunctionBinning",
		"ColorFunctionScaling",
		"Colorize",
		"ColorNegate",
		"ColorOutput",
		"ColorProfileData",
		"ColorQ",
		"ColorQuantize",
		"ColorReplace",
		"ColorRules",
		"ColorSelectorSettings",
		"ColorSeparate",
		"ColorSetter",
		"ColorSetterBox",
		"ColorSetterBoxOptions",
		"ColorSlider",
		"ColorsNear",
		"ColorSpace",
		"ColorToneMapping",
		"Column",
		"ColumnAlignments",
		"ColumnBackgrounds",
		"ColumnForm",
		"ColumnLines",
		"ColumnsEqual",
		"ColumnSpacings",
		"ColumnWidths",
		"CombinatorB",
		"CombinatorC",
		"CombinatorI",
		"CombinatorK",
		"CombinatorS",
		"CombinatorW",
		"CombinatorY",
		"CombinedEntityClass",
		"CombinerFunction",
		"CometData",
		"CommonDefaultFormatTypes",
		"Commonest",
		"CommonestFilter",
		"CommonName",
		"CommonUnits",
		"CommunityBoundaryStyle",
		"CommunityGraphPlot",
		"CommunityLabels",
		"CommunityRegionStyle",
		"CompanyData",
		"CompatibleUnitQ",
		"CompilationOptions",
		"CompilationTarget",
		"Compile",
		"Compiled",
		"CompiledCodeFunction",
		"CompiledComponent",
		"CompiledExpressionDeclaration",
		"CompiledFunction",
		"CompiledLayer",
		"CompilerCallback",
		"CompilerEnvironment",
		"CompilerEnvironmentAppend",
		"CompilerEnvironmentAppendTo",
		"CompilerEnvironmentObject",
		"CompilerOptions",
		"Complement",
		"ComplementedEntityClass",
		"CompleteGraph",
		"CompleteGraphQ",
		"CompleteIntegral",
		"CompleteKaryTree",
		"CompletionsListPacket",
		"Complex",
		"ComplexArrayPlot",
		"ComplexContourPlot",
		"Complexes",
		"ComplexExpand",
		"ComplexInfinity",
		"ComplexityFunction",
		"ComplexListPlot",
		"ComplexPlot",
		"ComplexPlot3D",
		"ComplexRegionPlot",
		"ComplexStreamPlot",
		"ComplexVectorPlot",
		"ComponentMeasurements",
		"ComponentwiseContextMenu",
		"Compose",
		"ComposeList",
		"ComposeSeries",
		"CompositeQ",
		"Composition",
		"CompoundElement",
		"CompoundExpression",
		"CompoundPoissonDistribution",
		"CompoundPoissonProcess",
		"CompoundRenewalProcess",
		"Compress",
		"CompressedData",
		"CompressionLevel",
		"ComputeUncertainty",
		"ConcaveHullMesh",
		"Condition",
		"ConditionalExpression",
		"Conditioned",
		"Cone",
		"ConeBox",
		"ConfidenceLevel",
		"ConfidenceRange",
		"ConfidenceTransform",
		"ConfigurationPath",
		"Confirm",
		"ConfirmAssert",
		"ConfirmBy",
		"ConfirmMatch",
		"ConfirmQuiet",
		"ConformationMethod",
		"ConformAudio",
		"ConformImages",
		"Congruent",
		"ConicGradientFilling",
		"ConicHullRegion",
		"ConicHullRegion3DBox",
		"ConicHullRegion3DBoxOptions",
		"ConicHullRegionBox",
		"ConicHullRegionBoxOptions",
		"ConicOptimization",
		"Conjugate",
		"ConjugateTranspose",
		"Conjunction",
		"Connect",
		"ConnectedComponents",
		"ConnectedGraphComponents",
		"ConnectedGraphQ",
		"ConnectedMeshComponents",
		"ConnectedMoleculeComponents",
		"ConnectedMoleculeQ",
		"ConnectionSettings",
		"ConnectLibraryCallbackFunction",
		"ConnectSystemModelComponents",
		"ConnectSystemModelController",
		"ConnesWindow",
		"ConoverTest",
		"ConservativeConvectionPDETerm",
		"ConsoleMessage",
		"Constant",
		"ConstantArray",
		"ConstantArrayLayer",
		"ConstantImage",
		"ConstantPlusLayer",
		"ConstantRegionQ",
		"Constants",
		"ConstantTimesLayer",
		"ConstellationData",
		"ConstrainedMax",
		"ConstrainedMin",
		"Construct",
		"Containing",
		"ContainsAll",
		"ContainsAny",
		"ContainsExactly",
		"ContainsNone",
		"ContainsOnly",
		"ContentDetectorFunction",
		"ContentFieldOptions",
		"ContentLocationFunction",
		"ContentObject",
		"ContentPadding",
		"ContentsBoundingBox",
		"ContentSelectable",
		"ContentSize",
		"Context",
		"ContextMenu",
		"Contexts",
		"ContextToFileName",
		"Continuation",
		"Continue",
		"ContinuedFraction",
		"ContinuedFractionK",
		"ContinuousAction",
		"ContinuousMarkovProcess",
		"ContinuousTask",
		"ContinuousTimeModelQ",
		"ContinuousWaveletData",
		"ContinuousWaveletTransform",
		"ContourDetect",
		"ContourGraphics",
		"ContourIntegral",
		"ContourLabels",
		"ContourLines",
		"ContourPlot",
		"ContourPlot3D",
		"Contours",
		"ContourShading",
		"ContourSmoothing",
		"ContourStyle",
		"ContraharmonicMean",
		"ContrastiveLossLayer",
		"Control",
		"ControlActive",
		"ControlAlignment",
		"ControlGroupContentsBox",
		"ControllabilityGramian",
		"ControllabilityMatrix",
		"ControllableDecomposition",
		"ControllableModelQ",
		"ControllerDuration",
		"ControllerInformation",
		"ControllerInformationData",
		"ControllerLinking",
		"ControllerManipulate",
		"ControllerMethod",
		"ControllerPath",
		"ControllerState",
		"ControlPlacement",
		"ControlsRendering",
		"ControlType",
		"ConvectionPDETerm",
		"Convergents",
		"ConversionOptions",
		"ConversionRules",
		"ConvertToPostScript",
		"ConvertToPostScriptPacket",
		"ConvexHullMesh",
		"ConvexHullRegion",
		"ConvexOptimization",
		"ConvexPolygonQ",
		"ConvexPolyhedronQ",
		"ConvexRegionQ",
		"ConvolutionLayer",
		"Convolve",
		"ConwayGroupCo1",
		"ConwayGroupCo2",
		"ConwayGroupCo3",
		"CookieFunction",
		"Cookies",
		"CoordinateBoundingBox",
		"CoordinateBoundingBoxArray",
		"CoordinateBounds",
		"CoordinateBoundsArray",
		"CoordinateChartData",
		"CoordinatesToolOptions",
		"CoordinateTransform",
		"CoordinateTransformData",
		"CoplanarPoints",
		"CoprimeQ",
		"Coproduct",
		"CopulaDistribution",
		"Copyable",
		"CopyDatabin",
		"CopyDirectory",
		"CopyFile",
		"CopyFunction",
		"CopyTag",
		"CopyToClipboard",
		"CoreNilpotentDecomposition",
		"CornerFilter",
		"CornerNeighbors",
		"Correlation",
		"CorrelationDistance",
		"CorrelationFunction",
		"CorrelationTest",
		"Cos",
		"Cosh",
		"CoshIntegral",
		"CosineDistance",
		"CosineWindow",
		"CosIntegral",
		"Cot",
		"Coth",
		"CoulombF",
		"CoulombG",
		"CoulombH1",
		"CoulombH2",
		"Count",
		"CountDistinct",
		"CountDistinctBy",
		"CounterAssignments",
		"CounterBox",
		"CounterBoxOptions",
		"CounterClockwiseContourIntegral",
		"CounterEvaluator",
		"CounterFunction",
		"CounterIncrements",
		"CounterStyle",
		"CounterStyleMenuListing",
		"CountRoots",
		"CountryData",
		"Counts",
		"CountsBy",
		"Covariance",
		"CovarianceEstimatorFunction",
		"CovarianceFunction",
		"CoxianDistribution",
		"CoxIngersollRossProcess",
		"CoxModel",
		"CoxModelFit",
		"CramerVonMisesTest",
		"CreateArchive",
		"CreateCellID",
		"CreateChannel",
		"CreateCloudExpression",
		"CreateCompilerEnvironment",
		"CreateDatabin",
		"CreateDataStructure",
		"CreateDataSystemModel",
		"CreateDialog",
		"CreateDirectory",
		"CreateDocument",
		"CreateFile",
		"CreateIntermediateDirectories",
		"CreateLicenseEntitlement",
		"CreateManagedLibraryExpression",
		"CreateNotebook",
		"CreatePacletArchive",
		"CreatePalette",
		"CreatePermissionsGroup",
		"CreateScheduledTask",
		"CreateSearchIndex",
		"CreateSystemModel",
		"CreateTemporary",
		"CreateTypeInstance",
		"CreateUUID",
		"CreateWindow",
		"CriterionFunction",
		"CriticalityFailureImportance",
		"CriticalitySuccessImportance",
		"CriticalSection",
		"Cross",
		"CrossEntropyLossLayer",
		"CrossingCount",
		"CrossingDetect",
		"CrossingPolygon",
		"CrossMatrix",
		"Csc",
		"Csch",
		"CSGRegion",
		"CSGRegionQ",
		"CSGRegionTree",
		"CTCLossLayer",
		"Cube",
		"CubeRoot",
		"Cubics",
		"Cuboid",
		"CuboidBox",
		"CuboidBoxOptions",
		"Cumulant",
		"CumulantGeneratingFunction",
		"CumulativeFeatureImpactPlot",
		"Cup",
		"CupCap",
		"Curl",
		"CurlyDoubleQuote",
		"CurlyQuote",
		"CurrencyConvert",
		"CurrentDate",
		"CurrentImage",
		"CurrentNotebookImage",
		"CurrentScreenImage",
		"CurrentValue",
		"Curry",
		"CurryApplied",
		"CurvatureFlowFilter",
		"CurveClosed",
		"Cyan",
		"CycleGraph",
		"CycleIndexPolynomial",
		"Cycles",
		"CyclicGroup",
		"Cyclotomic",
		"Cylinder",
		"CylinderBox",
		"CylinderBoxOptions",
		"CylindricalDecomposition",
		"CylindricalDecompositionFunction",
		"D",
		"DagumDistribution",
		"DamData",
		"DamerauLevenshteinDistance",
		"DampingFactor",
		"Darker",
		"Dashed",
		"Dashing",
		"DatabaseConnect",
		"DatabaseDisconnect",
		"DatabaseReference",
		"Databin",
		"DatabinAdd",
		"DatabinRemove",
		"Databins",
		"DatabinSubmit",
		"DatabinUpload",
		"DataCompression",
		"DataDistribution",
		"DataRange",
		"DataReversed",
		"Dataset",
		"DatasetDisplayPanel",
		"DatasetTheme",
		"DataStructure",
		"DataStructureQ",
		"Date",
		"DateBounds",
		"Dated",
		"DateDelimiters",
		"DateDifference",
		"DatedUnit",
		"DateFormat",
		"DateFunction",
		"DateGranularity",
		"DateHistogram",
		"DateInterval",
		"DateList",
		"DateListLogPlot",
		"DateListPlot",
		"DateListStepPlot",
		"DateObject",
		"DateObjectQ",
		"DateOverlapsQ",
		"DatePattern",
		"DatePlus",
		"DateRange",
		"DateReduction",
		"DateScale",
		"DateSelect",
		"DateString",
		"DateTicksFormat",
		"DateValue",
		"DateWithinQ",
		"DaubechiesWavelet",
		"DavisDistribution",
		"DawsonF",
		"DayCount",
		"DayCountConvention",
		"DayHemisphere",
		"DaylightQ",
		"DayMatchQ",
		"DayName",
		"DayNightTerminator",
		"DayPlus",
		"DayRange",
		"DayRound",
		"DeBruijnGraph",
		"DeBruijnSequence",
		"Debug",
		"DebugTag",
		"Decapitalize",
		"Decimal",
		"DecimalForm",
		"DeclareCompiledComponent",
		"DeclareKnownSymbols",
		"DeclarePackage",
		"Decompose",
		"DeconvolutionLayer",
		"Decrement",
		"Decrypt",
		"DecryptFile",
		"DedekindEta",
		"DeepSpaceProbeData",
		"Default",
		"Default2DTool",
		"Default3DTool",
		"DefaultAttachedCellStyle",
		"DefaultAxesStyle",
		"DefaultBaseStyle",
		"DefaultBoxStyle",
		"DefaultButton",
		"DefaultColor",
		"DefaultControlPlacement",
		"DefaultDockedCellStyle",
		"DefaultDuplicateCellStyle",
		"DefaultDuration",
		"DefaultElement",
		"DefaultFaceGridsStyle",
		"DefaultFieldHintStyle",
		"DefaultFont",
		"DefaultFontProperties",
		"DefaultFormatType",
		"DefaultFrameStyle",
		"DefaultFrameTicksStyle",
		"DefaultGridLinesStyle",
		"DefaultInlineFormatType",
		"DefaultInputFormatType",
		"DefaultLabelStyle",
		"DefaultMenuStyle",
		"DefaultNaturalLanguage",
		"DefaultNewCellStyle",
		"DefaultNewInlineCellStyle",
		"DefaultNotebook",
		"DefaultOptions",
		"DefaultOutputFormatType",
		"DefaultPrintPrecision",
		"DefaultStyle",
		"DefaultStyleDefinitions",
		"DefaultTextFormatType",
		"DefaultTextInlineFormatType",
		"DefaultTicksStyle",
		"DefaultTooltipStyle",
		"DefaultValue",
		"DefaultValues",
		"Defer",
		"DefineExternal",
		"DefineInputStreamMethod",
		"DefineOutputStreamMethod",
		"DefineResourceFunction",
		"Definition",
		"Degree",
		"DegreeCentrality",
		"DegreeGraphDistribution",
		"DegreeLexicographic",
		"DegreeReverseLexicographic",
		"DEigensystem",
		"DEigenvalues",
		"Deinitialization",
		"Del",
		"DelaunayMesh",
		"Delayed",
		"Deletable",
		"Delete",
		"DeleteAdjacentDuplicates",
		"DeleteAnomalies",
		"DeleteBorderComponents",
		"DeleteCases",
		"DeleteChannel",
		"DeleteCloudExpression",
		"DeleteContents",
		"DeleteDirectory",
		"DeleteDuplicates",
		"DeleteDuplicatesBy",
		"DeleteElements",
		"DeleteFile",
		"DeleteMissing",
		"DeleteObject",
		"DeletePermissionsKey",
		"DeleteSearchIndex",
		"DeleteSmallComponents",
		"DeleteStopwords",
		"DeleteWithContents",
		"DeletionWarning",
		"DelimitedArray",
		"DelimitedSequence",
		"Delimiter",
		"DelimiterAutoMatching",
		"DelimiterFlashTime",
		"DelimiterMatching",
		"Delimiters",
		"DeliveryFunction",
		"Dendrogram",
		"Denominator",
		"DensityGraphics",
		"DensityHistogram",
		"DensityPlot",
		"DensityPlot3D",
		"DependentVariables",
		"Deploy",
		"Deployed",
		"Depth",
		"DepthFirstScan",
		"Derivative",
		"DerivativeFilter",
		"DerivativePDETerm",
		"DerivedKey",
		"DescriptorStateSpace",
		"DesignMatrix",
		"DestroyAfterEvaluation",
		"Det",
		"DeviceClose",
		"DeviceConfigure",
		"DeviceExecute",
		"DeviceExecuteAsynchronous",
		"DeviceObject",
		"DeviceOpen",
		"DeviceOpenQ",
		"DeviceRead",
		"DeviceReadBuffer",
		"DeviceReadLatest",
		"DeviceReadList",
		"DeviceReadTimeSeries",
		"Devices",
		"DeviceStreams",
		"DeviceWrite",
		"DeviceWriteBuffer",
		"DGaussianWavelet",
		"DiacriticalPositioning",
		"Diagonal",
		"DiagonalizableMatrixQ",
		"DiagonalMatrix",
		"DiagonalMatrixQ",
		"Dialog",
		"DialogIndent",
		"DialogInput",
		"DialogLevel",
		"DialogNotebook",
		"DialogProlog",
		"DialogReturn",
		"DialogSymbols",
		"Diamond",
		"DiamondMatrix",
		"DiceDissimilarity",
		"DictionaryLookup",
		"DictionaryWordQ",
		"DifferenceDelta",
		"DifferenceOrder",
		"DifferenceQuotient",
		"DifferenceRoot",
		"DifferenceRootReduce",
		"Differences",
		"DifferentialD",
		"DifferentialRoot",
		"DifferentialRootReduce",
		"DifferentiatorFilter",
		"DiffusionPDETerm",
		"DiggleGatesPointProcess",
		"DiggleGrattonPointProcess",
		"DigitalSignature",
		"DigitBlock",
		"DigitBlockMinimum",
		"DigitCharacter",
		"DigitCount",
		"DigitQ",
		"DihedralAngle",
		"DihedralGroup",
		"Dilation",
		"DimensionalCombinations",
		"DimensionalMeshComponents",
		"DimensionReduce",
		"DimensionReducerFunction",
		"DimensionReduction",
		"Dimensions",
		"DiracComb",
		"DiracDelta",
		"DirectedEdge",
		"DirectedEdges",
		"DirectedGraph",
		"DirectedGraphQ",
		"DirectedInfinity",
		"Direction",
		"DirectionalLight",
		"Directive",
		"Directory",
		"DirectoryName",
		"DirectoryQ",
		"DirectoryStack",
		"DirichletBeta",
		"DirichletCharacter",
		"DirichletCondition",
		"DirichletConvolve",
		"DirichletDistribution",
		"DirichletEta",
		"DirichletL",
		"DirichletLambda",
		"DirichletTransform",
		"DirichletWindow",
		"DisableConsolePrintPacket",
		"DisableFormatting",
		"DiscreteAsymptotic",
		"DiscreteChirpZTransform",
		"DiscreteConvolve",
		"DiscreteDelta",
		"DiscreteHadamardTransform",
		"DiscreteIndicator",
		"DiscreteInputOutputModel",
		"DiscreteLimit",
		"DiscreteLQEstimatorGains",
		"DiscreteLQRegulatorGains",
		"DiscreteLyapunovSolve",
		"DiscreteMarkovProcess",
		"DiscreteMaxLimit",
		"DiscreteMinLimit",
		"DiscretePlot",
		"DiscretePlot3D",
		"DiscreteRatio",
		"DiscreteRiccatiSolve",
		"DiscreteShift",
		"DiscreteTimeModelQ",
		"DiscreteUniformDistribution",
		"DiscreteVariables",
		"DiscreteWaveletData",
		"DiscreteWaveletPacketTransform",
		"DiscreteWaveletTransform",
		"DiscretizeGraphics",
		"DiscretizeRegion",
		"Discriminant",
		"DisjointQ",
		"Disjunction",
		"Disk",
		"DiskBox",
		"DiskBoxOptions",
		"DiskMatrix",
		"DiskSegment",
		"Dispatch",
		"DispatchQ",
		"DispersionEstimatorFunction",
		"Display",
		"DisplayAllSteps",
		"DisplayEndPacket",
		"DisplayForm",
		"DisplayFunction",
		"DisplayPacket",
		"DisplayRules",
		"DisplayString",
		"DisplayTemporary",
		"DisplayWith",
		"DisplayWithRef",
		"DisplayWithVariable",
		"DistanceFunction",
		"DistanceMatrix",
		"DistanceTransform",
		"Distribute",
		"Distributed",
		"DistributedContexts",
		"DistributeDefinitions",
		"DistributionChart",
		"DistributionDomain",
		"DistributionFitTest",
		"DistributionParameterAssumptions",
		"DistributionParameterQ",
		"Dithering",
		"Div",
		"Divergence",
		"Divide",
		"DivideBy",
		"Dividers",
		"DivideSides",
		"Divisible",
		"Divisors",
		"DivisorSigma",
		"DivisorSum",
		"DMSList",
		"DMSString",
		"Do",
		"DockedCell",
		"DockedCells",
		"DocumentGenerator",
		"DocumentGeneratorInformation",
		"DocumentGeneratorInformationData",
		"DocumentGenerators",
		"DocumentNotebook",
		"DocumentWeightingRules",
		"Dodecahedron",
		"DomainRegistrationInformation",
		"DominantColors",
		"DominatorTreeGraph",
		"DominatorVertexList",
		"DOSTextFormat",
		"Dot",
		"DotDashed",
		"DotEqual",
		"DotLayer",
		"DotPlusLayer",
		"Dotted",
		"DoubleBracketingBar",
		"DoubleContourIntegral",
		"DoubleDownArrow",
		"DoubleLeftArrow",
		"DoubleLeftRightArrow",
		"DoubleLeftTee",
		"DoubleLongLeftArrow",
		"DoubleLongLeftRightArrow",
		"DoubleLongRightArrow",
		"DoubleRightArrow",
		"DoubleRightTee",
		"DoubleUpArrow",
		"DoubleUpDownArrow",
		"DoubleVerticalBar",
		"DoublyInfinite",
		"Down",
		"DownArrow",
		"DownArrowBar",
		"DownArrowUpArrow",
		"DownLeftRightVector",
		"DownLeftTeeVector",
		"DownLeftVector",
		"DownLeftVectorBar",
		"DownRightTeeVector",
		"DownRightVector",
		"DownRightVectorBar",
		"Downsample",
		"DownTee",
		"DownTeeArrow",
		"DownValues",
		"DownValuesFunction",
		"DragAndDrop",
		"DrawBackFaces",
		"DrawEdges",
		"DrawFrontFaces",
		"DrawHighlighted",
		"DrazinInverse",
		"Drop",
		"DropoutLayer",
		"DropShadowing",
		"DSolve",
		"DSolveChangeVariables",
		"DSolveValue",
		"Dt",
		"DualLinearProgramming",
		"DualPlanarGraph",
		"DualPolyhedron",
		"DualSystemsModel",
		"DumpGet",
		"DumpSave",
		"DuplicateFreeQ",
		"Duration",
		"Dynamic",
		"DynamicBox",
		"DynamicBoxOptions",
		"DynamicEvaluationTimeout",
		"DynamicGeoGraphics",
		"DynamicImage",
		"DynamicLocation",
		"DynamicModule",
		"DynamicModuleBox",
		"DynamicModuleBoxOptions",
		"DynamicModuleParent",
		"DynamicModuleValues",
		"DynamicName",
		"DynamicNamespace",
		"DynamicReference",
		"DynamicSetting",
		"DynamicUpdating",
		"DynamicWrapper",
		"DynamicWrapperBox",
		"DynamicWrapperBoxOptions",
		"E",
		"EarthImpactData",
		"EarthquakeData",
		"EccentricityCentrality",
		"Echo",
		"EchoEvaluation",
		"EchoFunction",
		"EchoLabel",
		"EchoTiming",
		"EclipseType",
		"EdgeAdd",
		"EdgeBetweennessCentrality",
		"EdgeCapacity",
		"EdgeCapForm",
		"EdgeChromaticNumber",
		"EdgeColor",
		"EdgeConnectivity",
		"EdgeContract",
		"EdgeCost",
		"EdgeCount",
		"EdgeCoverQ",
		"EdgeCycleMatrix",
		"EdgeDashing",
		"EdgeDelete",
		"EdgeDetect",
		"EdgeForm",
		"EdgeIndex",
		"EdgeJoinForm",
		"EdgeLabeling",
		"EdgeLabels",
		"EdgeLabelStyle",
		"EdgeList",
		"EdgeOpacity",
		"EdgeQ",
		"EdgeRenderingFunction",
		"EdgeRules",
		"EdgeShapeFunction",
		"EdgeStyle",
		"EdgeTaggedGraph",
		"EdgeTaggedGraphQ",
		"EdgeTags",
		"EdgeThickness",
		"EdgeTransitiveGraphQ",
		"EdgeValueRange",
		"EdgeValueSizes",
		"EdgeWeight",
		"EdgeWeightedGraphQ",
		"Editable",
		"EditButtonSettings",
		"EditCellTagsSettings",
		"EditDistance",
		"EffectiveInterest",
		"Eigensystem",
		"Eigenvalues",
		"EigenvectorCentrality",
		"Eigenvectors",
		"Element",
		"ElementData",
		"ElementwiseLayer",
		"ElidedForms",
		"Eliminate",
		"EliminationOrder",
		"Ellipsoid",
		"EllipticE",
		"EllipticExp",
		"EllipticExpPrime",
		"EllipticF",
		"EllipticFilterModel",
		"EllipticK",
		"EllipticLog",
		"EllipticNomeQ",
		"EllipticPi",
		"EllipticReducedHalfPeriods",
		"EllipticTheta",
		"EllipticThetaPrime",
		"EmbedCode",
		"EmbeddedHTML",
		"EmbeddedService",
		"EmbeddedSQLEntityClass",
		"EmbeddedSQLExpression",
		"EmbeddingLayer",
		"EmbeddingObject",
		"EmitSound",
		"EmphasizeSyntaxErrors",
		"EmpiricalDistribution",
		"Empty",
		"EmptyGraphQ",
		"EmptyRegion",
		"EmptySpaceF",
		"EnableConsolePrintPacket",
		"Enabled",
		"Enclose",
		"Encode",
		"Encrypt",
		"EncryptedObject",
		"EncryptFile",
		"End",
		"EndAdd",
		"EndDialogPacket",
		"EndOfBuffer",
		"EndOfFile",
		"EndOfLine",
		"EndOfString",
		"EndPackage",
		"EngineEnvironment",
		"EngineeringForm",
		"Enter",
		"EnterExpressionPacket",
		"EnterTextPacket",
		"Entity",
		"EntityClass",
		"EntityClassList",
		"EntityCopies",
		"EntityFunction",
		"EntityGroup",
		"EntityInstance",
		"EntityList",
		"EntityPrefetch",
		"EntityProperties",
		"EntityProperty",
		"EntityPropertyClass",
		"EntityRegister",
		"EntityStore",
		"EntityStores",
		"EntityTypeName",
		"EntityUnregister",
		"EntityValue",
		"Entropy",
		"EntropyFilter",
		"Environment",
		"Epilog",
		"EpilogFunction",
		"Equal",
		"EqualColumns",
		"EqualRows",
		"EqualTilde",
		"EqualTo",
		"EquatedTo",
		"Equilibrium",
		"EquirippleFilterKernel",
		"Equivalent",
		"Erf",
		"Erfc",
		"Erfi",
		"ErlangB",
		"ErlangC",
		"ErlangDistribution",
		"Erosion",
		"ErrorBox",
		"ErrorBoxOptions",
		"ErrorNorm",
		"ErrorPacket",
		"ErrorsDialogSettings",
		"EscapeRadius",
		"EstimatedBackground",
		"EstimatedDistribution",
		"EstimatedPointNormals",
		"EstimatedPointProcess",
		"EstimatedProcess",
		"EstimatedVariogramModel",
		"EstimatorGains",
		"EstimatorRegulator",
		"EuclideanDistance",
		"EulerAngles",
		"EulerCharacteristic",
		"EulerE",
		"EulerGamma",
		"EulerianGraphQ",
		"EulerMatrix",
		"EulerPhi",
		"Evaluatable",
		"Evaluate",
		"Evaluated",
		"EvaluatePacket",
		"EvaluateScheduledTask",
		"EvaluationBox",
		"EvaluationCell",
		"EvaluationCompletionAction",
		"EvaluationData",
		"EvaluationElements",
		"EvaluationEnvironment",
		"EvaluationMode",
		"EvaluationMonitor",
		"EvaluationNotebook",
		"EvaluationObject",
		"EvaluationOrder",
		"EvaluationPrivileges",
		"EvaluationRateLimit",
		"Evaluator",
		"EvaluatorNames",
		"EvenQ",
		"EventData",
		"EventEvaluator",
		"EventHandler",
		"EventHandlerTag",
		"EventLabels",
		"EventSeries",
		"ExactBlackmanWindow",
		"ExactNumberQ",
		"ExactRootIsolation",
		"ExampleData",
		"Except",
		"ExcludedContexts",
		"ExcludedForms",
		"ExcludedLines",
		"ExcludedPhysicalQuantities",
		"ExcludePods",
		"Exclusions",
		"ExclusionsStyle",
		"Exists",
		"Exit",
		"ExitDialog",
		"ExoplanetData",
		"Exp",
		"Expand",
		"ExpandAll",
		"ExpandDenominator",
		"ExpandFileName",
		"ExpandNumerator",
		"Expectation",
		"ExpectationE",
		"ExpectedValue",
		"ExpGammaDistribution",
		"ExpIntegralE",
		"ExpIntegralEi",
		"ExpirationDate",
		"Exponent",
		"ExponentFunction",
		"ExponentialDistribution",
		"ExponentialFamily",
		"ExponentialGeneratingFunction",
		"ExponentialMovingAverage",
		"ExponentialPowerDistribution",
		"ExponentPosition",
		"ExponentStep",
		"Export",
		"ExportAutoReplacements",
		"ExportByteArray",
		"ExportForm",
		"ExportPacket",
		"ExportString",
		"Expression",
		"ExpressionCell",
		"ExpressionGraph",
		"ExpressionPacket",
		"ExpressionTree",
		"ExpressionUUID",
		"ExpToTrig",
		"ExtendedEntityClass",
		"ExtendedGCD",
		"Extension",
		"ExtentElementFunction",
		"ExtentMarkers",
		"ExtentSize",
		"ExternalBundle",
		"ExternalCall",
		"ExternalDataCharacterEncoding",
		"ExternalEvaluate",
		"ExternalFunction",
		"ExternalFunctionName",
		"ExternalIdentifier",
		"ExternalObject",
		"ExternalOptions",
		"ExternalSessionObject",
		"ExternalSessions",
		"ExternalStorageBase",
		"ExternalStorageDownload",
		"ExternalStorageGet",
		"ExternalStorageObject",
		"ExternalStoragePut",
		"ExternalStorageUpload",
		"ExternalTypeSignature",
		"ExternalValue",
		"Extract",
		"ExtractArchive",
		"ExtractLayer",
		"ExtractPacletArchive",
		"ExtremeValueDistribution",
		"FaceAlign",
		"FaceForm",
		"FaceGrids",
		"FaceGridsStyle",
		"FaceRecognize",
		"FacialFeatures",
		"Factor",
		"FactorComplete",
		"Factorial",
		"Factorial2",
		"FactorialMoment",
		"FactorialMomentGeneratingFunction",
		"FactorialPower",
		"FactorInteger",
		"FactorList",
		"FactorSquareFree",
		"FactorSquareFreeList",
		"FactorTerms",
		"FactorTermsList",
		"Fail",
		"Failure",
		"FailureAction",
		"FailureDistribution",
		"FailureQ",
		"False",
		"FareySequence",
		"FARIMAProcess",
		"FeatureDistance",
		"FeatureExtract",
		"FeatureExtraction",
		"FeatureExtractor",
		"FeatureExtractorFunction",
		"FeatureImpactPlot",
		"FeatureNames",
		"FeatureNearest",
		"FeatureSpacePlot",
		"FeatureSpacePlot3D",
		"FeatureTypes",
		"FeatureValueDependencyPlot",
		"FeatureValueImpactPlot",
		"FEDisableConsolePrintPacket",
		"FeedbackLinearize",
		"FeedbackSector",
		"FeedbackSectorStyle",
		"FeedbackType",
		"FEEnableConsolePrintPacket",
		"FetalGrowthData",
		"Fibonacci",
		"Fibonorial",
		"FieldCompletionFunction",
		"FieldHint",
		"FieldHintStyle",
		"FieldMasked",
		"FieldSize",
		"File",
		"FileBaseName",
		"FileByteCount",
		"FileConvert",
		"FileDate",
		"FileExistsQ",
		"FileExtension",
		"FileFormat",
		"FileFormatProperties",
		"FileFormatQ",
		"FileHandler",
		"FileHash",
		"FileInformation",
		"FileName",
		"FileNameDepth",
		"FileNameDialogSettings",
		"FileNameDrop",
		"FileNameForms",
		"FileNameJoin",
		"FileNames",
		"FileNameSetter",
		"FileNameSplit",
		"FileNameTake",
		"FileNameToFormatList",
		"FilePrint",
		"FileSize",
		"FileSystemMap",
		"FileSystemScan",
		"FileSystemTree",
		"FileTemplate",
		"FileTemplateApply",
		"FileType",
		"FilledCurve",
		"FilledCurveBox",
		"FilledCurveBoxOptions",
		"FilledTorus",
		"FillForm",
		"Filling",
		"FillingStyle",
		"FillingTransform",
		"FilteredEntityClass",
		"FilterRules",
		"FinancialBond",
		"FinancialData",
		"FinancialDerivative",
		"FinancialIndicator",
		"Find",
		"FindAnomalies",
		"FindArgMax",
		"FindArgMin",
		"FindChannels",
		"FindClique",
		"FindClusters",
		"FindCookies",
		"FindCurvePath",
		"FindCycle",
		"FindDevices",
		"FindDistribution",
		"FindDistributionParameters",
		"FindDivisions",
		"FindEdgeColoring",
		"FindEdgeCover",
		"FindEdgeCut",
		"FindEdgeIndependentPaths",
		"FindEquationalProof",
		"FindEulerianCycle",
		"FindExternalEvaluators",
		"FindFaces",
		"FindFile",
		"FindFit",
		"FindFormula",
		"FindFundamentalCycles",
		"FindGeneratingFunction",
		"FindGeoLocation",
		"FindGeometricConjectures",
		"FindGeometricTransform",
		"FindGraphCommunities",
		"FindGraphIsomorphism",
		"FindGraphPartition",
		"FindHamiltonianCycle",
		"FindHamiltonianPath",
		"FindHiddenMarkovStates",
		"FindImageText",
		"FindIndependentEdgeSet",
		"FindIndependentVertexSet",
		"FindInstance",
		"FindIntegerNullVector",
		"FindIsomers",
		"FindIsomorphicSubgraph",
		"FindKClan",
		"FindKClique",
		"FindKClub",
		"FindKPlex",
		"FindLibrary",
		"FindLinearRecurrence",
		"FindList",
		"FindMatchingColor",
		"FindMaximum",
		"FindMaximumCut",
		"FindMaximumFlow",
		"FindMaxValue",
		"FindMeshDefects",
		"FindMinimum",
		"FindMinimumCostFlow",
		"FindMinimumCut",
		"FindMinValue",
		"FindMoleculeSubstructure",
		"FindPath",
		"FindPeaks",
		"FindPermutation",
		"FindPlanarColoring",
		"FindPointProcessParameters",
		"FindPostmanTour",
		"FindProcessParameters",
		"FindRegionTransform",
		"FindRepeat",
		"FindRoot",
		"FindSequenceFunction",
		"FindSettings",
		"FindShortestPath",
		"FindShortestTour",
		"FindSpanningTree",
		"FindSubgraphIsomorphism",
		"FindSystemModelEquilibrium",
		"FindTextualAnswer",
		"FindThreshold",
		"FindTransientRepeat",
		"FindVertexColoring",
		"FindVertexCover",
		"FindVertexCut",
		"FindVertexIndependentPaths",
		"Fine",
		"FinishDynamic",
		"FiniteAbelianGroupCount",
		"FiniteGroupCount",
		"FiniteGroupData",
		"First",
		"FirstCase",
		"FirstPassageTimeDistribution",
		"FirstPosition",
		"FischerGroupFi22",
		"FischerGroupFi23",
		"FischerGroupFi24Prime",
		"FisherHypergeometricDistribution",
		"FisherRatioTest",
		"FisherZDistribution",
		"Fit",
		"FitAll",
		"FitRegularization",
		"FittedModel",
		"FixedOrder",
		"FixedPoint",
		"FixedPointList",
		"FlashSelection",
		"Flat",
		"FlatShading",
		"Flatten",
		"FlattenAt",
		"FlattenLayer",
		"FlatTopWindow",
		"FlightData",
		"FlipView",
		"Floor",
		"FlowPolynomial",
		"Fold",
		"FoldList",
		"FoldPair",
		"FoldPairList",
		"FoldWhile",
		"FoldWhileList",
		"FollowRedirects",
		"Font",
		"FontColor",
		"FontFamily",
		"FontForm",
		"FontName",
		"FontOpacity",
		"FontPostScriptName",
		"FontProperties",
		"FontReencoding",
		"FontSize",
		"FontSlant",
		"FontSubstitutions",
		"FontTracking",
		"FontVariations",
		"FontWeight",
		"For",
		"ForAll",
		"ForAllType",
		"ForceVersionInstall",
		"Format",
		"FormatRules",
		"FormatType",
		"FormatTypeAutoConvert",
		"FormatValues",
		"FormBox",
		"FormBoxOptions",
		"FormControl",
		"FormFunction",
		"FormLayoutFunction",
		"FormObject",
		"FormPage",
		"FormProtectionMethod",
		"FormTheme",
		"FormulaData",
		"FormulaLookup",
		"FortranForm",
		"Forward",
		"ForwardBackward",
		"ForwardCloudCredentials",
		"Fourier",
		"FourierCoefficient",
		"FourierCosCoefficient",
		"FourierCosSeries",
		"FourierCosTransform",
		"FourierDCT",
		"FourierDCTFilter",
		"FourierDCTMatrix",
		"FourierDST",
		"FourierDSTMatrix",
		"FourierMatrix",
		"FourierParameters",
		"FourierSequenceTransform",
		"FourierSeries",
		"FourierSinCoefficient",
		"FourierSinSeries",
		"FourierSinTransform",
		"FourierTransform",
		"FourierTrigSeries",
		"FoxH",
		"FoxHReduce",
		"FractionalBrownianMotionProcess",
		"FractionalD",
		"FractionalGaussianNoiseProcess",
		"FractionalPart",
		"FractionBox",
		"FractionBoxOptions",
		"FractionLine",
		"Frame",
		"FrameBox",
		"FrameBoxOptions",
		"Framed",
		"FrameInset",
		"FrameLabel",
		"Frameless",
		"FrameListVideo",
		"FrameMargins",
		"FrameRate",
		"FrameStyle",
		"FrameTicks",
		"FrameTicksStyle",
		"FRatioDistribution",
		"FrechetDistribution",
		"FreeQ",
		"FrenetSerretSystem",
		"FrequencySamplingFilterKernel",
		"FresnelC",
		"FresnelF",
		"FresnelG",
		"FresnelS",
		"Friday",
		"FrobeniusNumber",
		"FrobeniusSolve",
		"FromAbsoluteTime",
		"FromCharacterCode",
		"FromCoefficientRules",
		"FromContinuedFraction",
		"FromDate",
		"FromDateString",
		"FromDigits",
		"FromDMS",
		"FromEntity",
		"FromJulianDate",
		"FromLetterNumber",
		"FromPolarCoordinates",
		"FromRawPointer",
		"FromRomanNumeral",
		"FromSphericalCoordinates",
		"FromUnixTime",
		"Front",
		"FrontEndDynamicExpression",
		"FrontEndEventActions",
		"FrontEndExecute",
		"FrontEndObject",
		"FrontEndResource",
		"FrontEndResourceString",
		"FrontEndStackSize",
		"FrontEndToken",
		"FrontEndTokenExecute",
		"FrontEndValueCache",
		"FrontEndVersion",
		"FrontFaceColor",
		"FrontFaceGlowColor",
		"FrontFaceOpacity",
		"FrontFaceSpecularColor",
		"FrontFaceSpecularExponent",
		"FrontFaceSurfaceAppearance",
		"FrontFaceTexture",
		"Full",
		"FullAxes",
		"FullDefinition",
		"FullForm",
		"FullGraphics",
		"FullInformationOutputRegulator",
		"FullOptions",
		"FullRegion",
		"FullSimplify",
		"Function",
		"FunctionAnalytic",
		"FunctionBijective",
		"FunctionCompile",
		"FunctionCompileExport",
		"FunctionCompileExportByteArray",
		"FunctionCompileExportLibrary",
		"FunctionCompileExportString",
		"FunctionContinuous",
		"FunctionConvexity",
		"FunctionDeclaration",
		"FunctionDiscontinuities",
		"FunctionDomain",
		"FunctionExpand",
		"FunctionInjective",
		"FunctionInterpolation",
		"FunctionLayer",
		"FunctionMeromorphic",
		"FunctionMonotonicity",
		"FunctionPeriod",
		"FunctionPoles",
		"FunctionRange",
		"FunctionSign",
		"FunctionSingularities",
		"FunctionSpace",
		"FunctionSurjective",
		"FussellVeselyImportance",
		"GaborFilter",
		"GaborMatrix",
		"GaborWavelet",
		"GainMargins",
		"GainPhaseMargins",
		"GalaxyData",
		"GalleryView",
		"Gamma",
		"GammaDistribution",
		"GammaRegularized",
		"GapPenalty",
		"GARCHProcess",
		"GatedRecurrentLayer",
		"Gather",
		"GatherBy",
		"GaugeFaceElementFunction",
		"GaugeFaceStyle",
		"GaugeFrameElementFunction",
		"GaugeFrameSize",
		"GaugeFrameStyle",
		"GaugeLabels",
		"GaugeMarkers",
		"GaugeStyle",
		"GaussianFilter",
		"GaussianIntegers",
		"GaussianMatrix",
		"GaussianOrthogonalMatrixDistribution",
		"GaussianSymplecticMatrixDistribution",
		"GaussianUnitaryMatrixDistribution",
		"GaussianWindow",
		"GCD",
		"GegenbauerC",
		"General",
		"GeneralizedLinearModelFit",
		"GenerateAsymmetricKeyPair",
		"GenerateConditions",
		"GeneratedAssetFormat",
		"GeneratedAssetLocation",
		"GeneratedCell",
		"GeneratedCellStyles",
		"GeneratedDocumentBinding",
		"GenerateDerivedKey",
		"GenerateDigitalSignature",
		"GenerateDocument",
		"GeneratedParameters",
		"GeneratedQuantityMagnitudes",
		"GenerateFileSignature",
		"GenerateHTTPResponse",
		"GenerateSecuredAuthenticationKey",
		"GenerateSymmetricKey",
		"GeneratingFunction",
		"GeneratorDescription",
		"GeneratorHistoryLength",
		"GeneratorOutputType",
		"Generic",
		"GenericCylindricalDecomposition",
		"GenomeData",
		"GenomeLookup",
		"GeoAntipode",
		"GeoArea",
		"GeoArraySize",
		"GeoBackground",
		"GeoBoundary",
		"GeoBoundingBox",
		"GeoBounds",
		"GeoBoundsRegion",
		"GeoBoundsRegionBoundary",
		"GeoBubbleChart",
		"GeoCenter",
		"GeoCircle",
		"GeoContourPlot",
		"GeoDensityPlot",
		"GeodesicClosing",
		"GeodesicDilation",
		"GeodesicErosion",
		"GeodesicOpening",
		"GeodesicPolyhedron",
		"GeoDestination",
		"GeodesyData",
		"GeoDirection",
		"GeoDisk",
		"GeoDisplacement",
		"GeoDistance",
		"GeoDistanceList",
		"GeoElevationData",
		"GeoEntities",
		"GeoGraphics",
		"GeoGraphPlot",
		"GeoGraphValuePlot",
		"GeogravityModelData",
		"GeoGridDirectionDifference",
		"GeoGridLines",
		"GeoGridLinesStyle",
		"GeoGridPosition",
		"GeoGridRange",
		"GeoGridRangePadding",
		"GeoGridUnitArea",
		"GeoGridUnitDistance",
		"GeoGridVector",
		"GeoGroup",
		"GeoHemisphere",
		"GeoHemisphereBoundary",
		"GeoHistogram",
		"GeoIdentify",
		"GeoImage",
		"GeoLabels",
		"GeoLength",
		"GeoListPlot",
		"GeoLocation",
		"GeologicalPeriodData",
		"GeomagneticModelData",
		"GeoMarker",
		"GeometricAssertion",
		"GeometricBrownianMotionProcess",
		"GeometricDistribution",
		"GeometricMean",
		"GeometricMeanFilter",
		"GeometricOptimization",
		"GeometricScene",
		"GeometricStep",
		"GeometricStylingRules",
		"GeometricTest",
		"GeometricTransformation",
		"GeometricTransformation3DBox",
		"GeometricTransformation3DBoxOptions",
		"GeometricTransformationBox",
		"GeometricTransformationBoxOptions",
		"GeoModel",
		"GeoNearest",
		"GeoOrientationData",
		"GeoPath",
		"GeoPolygon",
		"GeoPosition",
		"GeoPositionENU",
		"GeoPositionXYZ",
		"GeoProjection",
		"GeoProjectionData",
		"GeoRange",
		"GeoRangePadding",
		"GeoRegionValuePlot",
		"GeoResolution",
		"GeoScaleBar",
		"GeoServer",
		"GeoSmoothHistogram",
		"GeoStreamPlot",
		"GeoStyling",
		"GeoStylingImageFunction",
		"GeoVariant",
		"GeoVector",
		"GeoVectorENU",
		"GeoVectorPlot",
		"GeoVectorXYZ",
		"GeoVisibleRegion",
		"GeoVisibleRegionBoundary",
		"GeoWithinQ",
		"GeoZoomLevel",
		"GestureHandler",
		"GestureHandlerTag",
		"Get",
		"GetContext",
		"GetEnvironment",
		"GetFileName",
		"GetLinebreakInformationPacket",
		"GibbsPointProcess",
		"Glaisher",
		"GlobalClusteringCoefficient",
		"GlobalPreferences",
		"GlobalSession",
		"Glow",
		"GoldenAngle",
		"GoldenRatio",
		"GompertzMakehamDistribution",
		"GoochShading",
		"GoodmanKruskalGamma",
		"GoodmanKruskalGammaTest",
		"Goto",
		"GouraudShading",
		"Grad",
		"Gradient",
		"GradientFilter",
		"GradientFittedMesh",
		"GradientOrientationFilter",
		"GrammarApply",
		"GrammarRules",
		"GrammarToken",
		"Graph",
		"Graph3D",
		"GraphAssortativity",
		"GraphAutomorphismGroup",
		"GraphCenter",
		"GraphComplement",
		"GraphData",
		"GraphDensity",
		"GraphDiameter",
		"GraphDifference",
		"GraphDisjointUnion",
		"GraphDistance",
		"GraphDistanceMatrix",
		"GraphEmbedding",
		"GraphHighlight",
		"GraphHighlightStyle",
		"GraphHub",
		"Graphics",
		"Graphics3D",
		"Graphics3DBox",
		"Graphics3DBoxOptions",
		"GraphicsArray",
		"GraphicsBaseline",
		"GraphicsBox",
		"GraphicsBoxOptions",
		"GraphicsColor",
		"GraphicsColumn",
		"GraphicsComplex",
		"GraphicsComplex3DBox",
		"GraphicsComplex3DBoxOptions",
		"GraphicsComplexBox",
		"GraphicsComplexBoxOptions",
		"GraphicsContents",
		"GraphicsData",
		"GraphicsGrid",
		"GraphicsGridBox",
		"GraphicsGroup",
		"GraphicsGroup3DBox",
		"GraphicsGroup3DBoxOptions",
		"GraphicsGroupBox",
		"GraphicsGroupBoxOptions",
		"GraphicsGrouping",
		"GraphicsHighlightColor",
		"GraphicsRow",
		"GraphicsSpacing",
		"GraphicsStyle",
		"GraphIntersection",
		"GraphJoin",
		"GraphLayerLabels",
		"GraphLayers",
		"GraphLayerStyle",
		"GraphLayout",
		"GraphLinkEfficiency",
		"GraphPeriphery",
		"GraphPlot",
		"GraphPlot3D",
		"GraphPower",
		"GraphProduct",
		"GraphPropertyDistribution",
		"GraphQ",
		"GraphRadius",
		"GraphReciprocity",
		"GraphRoot",
		"GraphStyle",
		"GraphSum",
		"GraphTree",
		"GraphUnion",
		"Gray",
		"GrayLevel",
		"Greater",
		"GreaterEqual",
		"GreaterEqualLess",
		"GreaterEqualThan",
		"GreaterFullEqual",
		"GreaterGreater",
		"GreaterLess",
		"GreaterSlantEqual",
		"GreaterThan",
		"GreaterTilde",
		"GreekStyle",
		"Green",
		"GreenFunction",
		"Grid",
		"GridBaseline",
		"GridBox",
		"GridBoxAlignment",
		"GridBoxBackground",
		"GridBoxDividers",
		"GridBoxFrame",
		"GridBoxItemSize",
		"GridBoxItemStyle",
		"GridBoxOptions",
		"GridBoxSpacings",
		"GridCreationSettings",
		"GridDefaultElement",
		"GridElementStyleOptions",
		"GridFrame",
		"GridFrameMargins",
		"GridGraph",
		"GridLines",
		"GridLinesStyle",
		"GridVideo",
		"GroebnerBasis",
		"GroupActionBase",
		"GroupBy",
		"GroupCentralizer",
		"GroupElementFromWord",
		"GroupElementPosition",
		"GroupElementQ",
		"GroupElements",
		"GroupElementToWord",
		"GroupGenerators",
		"Groupings",
		"GroupMultiplicationTable",
		"GroupOpenerColor",
		"GroupOpenerInsideFrame",
		"GroupOrbits",
		"GroupOrder",
		"GroupPageBreakWithin",
		"GroupSetwiseStabilizer",
		"GroupStabilizer",
		"GroupStabilizerChain",
		"GroupTogetherGrouping",
		"GroupTogetherNestedGrouping",
		"GrowCutComponents",
		"Gudermannian",
		"GuidedFilter",
		"GumbelDistribution",
		"HaarWavelet",
		"HadamardMatrix",
		"HalfLine",
		"HalfNormalDistribution",
		"HalfPlane",
		"HalfSpace",
		"HalftoneShading",
		"HamiltonianGraphQ",
		"HammingDistance",
		"HammingWindow",
		"HandlerFunctions",
		"HandlerFunctionsKeys",
		"HankelH1",
		"HankelH2",
		"HankelMatrix",
		"HankelTransform",
		"HannPoissonWindow",
		"HannWindow",
		"HaradaNortonGroupHN",
		"HararyGraph",
		"HardcorePointProcess",
		"HarmonicMean",
		"HarmonicMeanFilter",
		"HarmonicNumber",
		"Hash",
		"HatchFilling",
		"HatchShading",
		"Haversine",
		"HazardFunction",
		"Head",
		"HeadCompose",
		"HeaderAlignment",
		"HeaderBackground",
		"HeaderDisplayFunction",
		"HeaderLines",
		"Headers",
		"HeaderSize",
		"HeaderStyle",
		"Heads",
		"HeatFluxValue",
		"HeatInsulationValue",
		"HeatOutflowValue",
		"HeatRadiationValue",
		"HeatSymmetryValue",
		"HeatTemperatureCondition",
		"HeatTransferPDEComponent",
		"HeatTransferValue",
		"HeavisideLambda",
		"HeavisidePi",
		"HeavisideTheta",
		"HeldGroupHe",
		"HeldPart",
		"HelmholtzPDEComponent",
		"HelpBrowserLookup",
		"HelpBrowserNotebook",
		"HelpBrowserSettings",
		"HelpViewerSettings",
		"Here",
		"HermiteDecomposition",
		"HermiteH",
		"Hermitian",
		"HermitianMatrixQ",
		"HessenbergDecomposition",
		"Hessian",
		"HeunB",
		"HeunBPrime",
		"HeunC",
		"HeunCPrime",
		"HeunD",
		"HeunDPrime",
		"HeunG",
		"HeunGPrime",
		"HeunT",
		"HeunTPrime",
		"HexadecimalCharacter",
		"Hexahedron",
		"HexahedronBox",
		"HexahedronBoxOptions",
		"HiddenItems",
		"HiddenMarkovProcess",
		"HiddenSurface",
		"Highlighted",
		"HighlightGraph",
		"HighlightImage",
		"HighlightMesh",
		"HighlightString",
		"HighpassFilter",
		"HigmanSimsGroupHS",
		"HilbertCurve",
		"HilbertFilter",
		"HilbertMatrix",
		"Histogram",
		"Histogram3D",
		"HistogramDistribution",
		"HistogramList",
		"HistogramPointDensity",
		"HistogramTransform",
		"HistogramTransformInterpolation",
		"HistoricalPeriodData",
		"HitMissTransform",
		"HITSCentrality",
		"HjorthDistribution",
		"HodgeDual",
		"HoeffdingD",
		"HoeffdingDTest",
		"Hold",
		"HoldAll",
		"HoldAllComplete",
		"HoldComplete",
		"HoldFirst",
		"HoldForm",
		"HoldPattern",
		"HoldRest",
		"HolidayCalendar",
		"HomeDirectory",
		"HomePage",
		"Horizontal",
		"HorizontalForm",
		"HorizontalGauge",
		"HorizontalScrollPosition",
		"HornerForm",
		"HostLookup",
		"HotellingTSquareDistribution",
		"HoytDistribution",
		"HTMLSave",
		"HTTPErrorResponse",
		"HTTPRedirect",
		"HTTPRequest",
		"HTTPRequestData",
		"HTTPResponse",
		"Hue",
		"HumanGrowthData",
		"HumpDownHump",
		"HumpEqual",
		"HurwitzLerchPhi",
		"HurwitzZeta",
		"HyperbolicDistribution",
		"HypercubeGraph",
		"HyperexponentialDistribution",
		"Hyperfactorial",
		"Hypergeometric0F1",
		"Hypergeometric0F1Regularized",
		"Hypergeometric1F1",
		"Hypergeometric1F1Regularized",
		"Hypergeometric2F1",
		"Hypergeometric2F1Regularized",
		"HypergeometricDistribution",
		"HypergeometricPFQ",
		"HypergeometricPFQRegularized",
		"HypergeometricU",
		"Hyperlink",
		"HyperlinkAction",
		"HyperlinkCreationSettings",
		"Hyperplane",
		"Hyphenation",
		"HyphenationOptions",
		"HypoexponentialDistribution",
		"HypothesisTestData",
		"I",
		"IconData",
		"Iconize",
		"IconizedObject",
		"IconRules",
		"Icosahedron",
		"Identity",
		"IdentityMatrix",
		"If",
		"IfCompiled",
		"IgnoreCase",
		"IgnoreDiacritics",
		"IgnoreIsotopes",
		"IgnorePunctuation",
		"IgnoreSpellCheck",
		"IgnoreStereochemistry",
		"IgnoringInactive",
		"Im",
		"Image",
		"Image3D",
		"Image3DProjection",
		"Image3DSlices",
		"ImageAccumulate",
		"ImageAdd",
		"ImageAdjust",
		"ImageAlign",
		"ImageApply",
		"ImageApplyIndexed",
		"ImageAspectRatio",
		"ImageAssemble",
		"ImageAugmentationLayer",
		"ImageBoundingBoxes",
		"ImageCache",
		"ImageCacheValid",
		"ImageCapture",
		"ImageCaptureFunction",
		"ImageCases",
		"ImageChannels",
		"ImageClip",
		"ImageCollage",
		"ImageColorSpace",
		"ImageCompose",
		"ImageContainsQ",
		"ImageContents",
		"ImageConvolve",
		"ImageCooccurrence",
		"ImageCorners",
		"ImageCorrelate",
		"ImageCorrespondingPoints",
		"ImageCrop",
		"ImageData",
		"ImageDeconvolve",
		"ImageDemosaic",
		"ImageDifference",
		"ImageDimensions",
		"ImageDisplacements",
		"ImageDistance",
		"ImageEditMode",
		"ImageEffect",
		"ImageExposureCombine",
		"ImageFeatureTrack",
		"ImageFileApply",
		"ImageFileFilter",
		"ImageFileScan",
		"ImageFilter",
		"ImageFocusCombine",
		"ImageForestingComponents",
		"ImageFormattingWidth",
		"ImageForwardTransformation",
		"ImageGraphics",
		"ImageHistogram",
		"ImageIdentify",
		"ImageInstanceQ",
		"ImageKeypoints",
		"ImageLabels",
		"ImageLegends",
		"ImageLevels",
		"ImageLines",
		"ImageMargins",
		"ImageMarker",
		"ImageMarkers",
		"ImageMeasurements",
		"ImageMesh",
		"ImageMultiply",
		"ImageOffset",
		"ImagePad",
		"ImagePadding",
		"ImagePartition",
		"ImagePeriodogram",
		"ImagePerspectiveTransformation",
		"ImagePosition",
		"ImagePreviewFunction",
		"ImagePyramid",
		"ImagePyramidApply",
		"ImageQ",
		"ImageRangeCache",
		"ImageRecolor",
		"ImageReflect",
		"ImageRegion",
		"ImageResize",
		"ImageResolution",
		"ImageRestyle",
		"ImageRotate",
		"ImageRotated",
		"ImageSaliencyFilter",
		"ImageScaled",
		"ImageScan",
		"ImageSize",
		"ImageSizeAction",
		"ImageSizeCache",
		"ImageSizeMultipliers",
		"ImageSizeRaw",
		"ImageStitch",
		"ImageSubtract",
		"ImageTake",
		"ImageTransformation",
		"ImageTrim",
		"ImageType",
		"ImageValue",
		"ImageValuePositions",
		"ImageVectorscopePlot",
		"ImageWaveformPlot",
		"ImagingDevice",
		"ImplicitD",
		"ImplicitRegion",
		"Implies",
		"Import",
		"ImportAutoReplacements",
		"ImportByteArray",
		"ImportedObject",
		"ImportOptions",
		"ImportString",
		"ImprovementImportance",
		"In",
		"Inactivate",
		"Inactive",
		"InactiveStyle",
		"IncidenceGraph",
		"IncidenceList",
		"IncidenceMatrix",
		"IncludeAromaticBonds",
		"IncludeConstantBasis",
		"IncludedContexts",
		"IncludeDefinitions",
		"IncludeDirectories",
		"IncludeFileExtension",
		"IncludeGeneratorTasks",
		"IncludeHydrogens",
		"IncludeInflections",
		"IncludeMetaInformation",
		"IncludePods",
		"IncludeQuantities",
		"IncludeRelatedTables",
		"IncludeSingularSolutions",
		"IncludeSingularTerm",
		"IncludeWindowTimes",
		"Increment",
		"IndefiniteMatrixQ",
		"Indent",
		"IndentingNewlineSpacings",
		"IndentMaxFraction",
		"IndependenceTest",
		"IndependentEdgeSetQ",
		"IndependentPhysicalQuantity",
		"IndependentUnit",
		"IndependentUnitDimension",
		"IndependentVertexSetQ",
		"Indeterminate",
		"IndeterminateThreshold",
		"IndexCreationOptions",
		"Indexed",
		"IndexEdgeTaggedGraph",
		"IndexGraph",
		"IndexTag",
		"Inequality",
		"InertEvaluate",
		"InertExpression",
		"InexactNumberQ",
		"InexactNumbers",
		"InfiniteFuture",
		"InfiniteLine",
		"InfiniteLineThrough",
		"InfinitePast",
		"InfinitePlane",
		"Infinity",
		"Infix",
		"InflationAdjust",
		"InflationMethod",
		"Information",
		"InformationData",
		"InformationDataGrid",
		"Inherited",
		"InheritScope",
		"InhomogeneousPoissonPointProcess",
		"InhomogeneousPoissonProcess",
		"InitialEvaluationHistory",
		"Initialization",
		"InitializationCell",
		"InitializationCellEvaluation",
		"InitializationCellWarning",
		"InitializationObject",
		"InitializationObjects",
		"InitializationValue",
		"Initialize",
		"InitialSeeding",
		"InlineCounterAssignments",
		"InlineCounterIncrements",
		"InlineRules",
		"Inner",
		"InnerPolygon",
		"InnerPolyhedron",
		"Inpaint",
		"Input",
		"InputAliases",
		"InputAssumptions",
		"InputAutoReplacements",
		"InputField",
		"InputFieldBox",
		"InputFieldBoxOptions",
		"InputForm",
		"InputGrouping",
		"InputNamePacket",
		"InputNotebook",
		"InputPacket",
		"InputPorts",
		"InputSettings",
		"InputStream",
		"InputString",
		"InputStringPacket",
		"InputToBoxFormPacket",
		"Insert",
		"InsertionFunction",
		"InsertionPointObject",
		"InsertLinebreaks",
		"InsertResults",
		"Inset",
		"Inset3DBox",
		"Inset3DBoxOptions",
		"InsetBox",
		"InsetBoxOptions",
		"Insphere",
		"Install",
		"InstallService",
		"InstanceNormalizationLayer",
		"InString",
		"Integer",
		"IntegerDigits",
		"IntegerExponent",
		"IntegerLength",
		"IntegerName",
		"IntegerPart",
		"IntegerPartitions",
		"IntegerQ",
		"IntegerReverse",
		"Integers",
		"IntegerString",
		"Integral",
		"Integrate",
		"IntegrateChangeVariables",
		"Interactive",
		"InteractiveTradingChart",
		"InterfaceSwitched",
		"Interlaced",
		"Interleaving",
		"InternallyBalancedDecomposition",
		"InterpolatingFunction",
		"InterpolatingPolynomial",
		"Interpolation",
		"InterpolationOrder",
		"InterpolationPoints",
		"InterpolationPrecision",
		"Interpretation",
		"InterpretationBox",
		"InterpretationBoxOptions",
		"InterpretationFunction",
		"Interpreter",
		"InterpretTemplate",
		"InterquartileRange",
		"Interrupt",
		"InterruptSettings",
		"IntersectedEntityClass",
		"IntersectingQ",
		"Intersection",
		"Interval",
		"IntervalIntersection",
		"IntervalMarkers",
		"IntervalMarkersStyle",
		"IntervalMemberQ",
		"IntervalSlider",
		"IntervalUnion",
		"Into",
		"Inverse",
		"InverseBetaRegularized",
		"InverseBilateralLaplaceTransform",
		"InverseBilateralZTransform",
		"InverseCDF",
		"InverseChiSquareDistribution",
		"InverseContinuousWaveletTransform",
		"InverseDistanceTransform",
		"InverseEllipticNomeQ",
		"InverseErf",
		"InverseErfc",
		"InverseFourier",
		"InverseFourierCosTransform",
		"InverseFourierSequenceTransform",
		"InverseFourierSinTransform",
		"InverseFourierTransform",
		"InverseFunction",
		"InverseFunctions",
		"InverseGammaDistribution",
		"InverseGammaRegularized",
		"InverseGaussianDistribution",
		"InverseGudermannian",
		"InverseHankelTransform",
		"InverseHaversine",
		"InverseImagePyramid",
		"InverseJacobiCD",
		"InverseJacobiCN",
		"InverseJacobiCS",
		"InverseJacobiDC",
		"InverseJacobiDN",
		"InverseJacobiDS",
		"InverseJacobiNC",
		"InverseJacobiND",
		"InverseJacobiNS",
		"InverseJacobiSC",
		"InverseJacobiSD",
		"InverseJacobiSN",
		"InverseLaplaceTransform",
		"InverseMellinTransform",
		"InversePermutation",
		"InverseRadon",
		"InverseRadonTransform",
		"InverseSeries",
		"InverseShortTimeFourier",
		"InverseSpectrogram",
		"InverseSurvivalFunction",
		"InverseTransformedRegion",
		"InverseWaveletTransform",
		"InverseWeierstrassP",
		"InverseWishartMatrixDistribution",
		"InverseZTransform",
		"Invisible",
		"InvisibleApplication",
		"InvisibleTimes",
		"IPAddress",
		"IrreduciblePolynomialQ",
		"IslandData",
		"IsolatingInterval",
		"IsomorphicGraphQ",
		"IsomorphicSubgraphQ",
		"IsotopeData",
		"Italic",
		"Item",
		"ItemAspectRatio",
		"ItemBox",
		"ItemBoxOptions",
		"ItemDisplayFunction",
		"ItemSize",
		"ItemStyle",
		"ItoProcess",
		"JaccardDissimilarity",
		"JacobiAmplitude",
		"Jacobian",
		"JacobiCD",
		"JacobiCN",
		"JacobiCS",
		"JacobiDC",
		"JacobiDN",
		"JacobiDS",
		"JacobiEpsilon",
		"JacobiNC",
		"JacobiND",
		"JacobiNS",
		"JacobiP",
		"JacobiSC",
		"JacobiSD",
		"JacobiSN",
		"JacobiSymbol",
		"JacobiZeta",
		"JacobiZN",
		"JankoGroupJ1",
		"JankoGroupJ2",
		"JankoGroupJ3",
		"JankoGroupJ4",
		"JarqueBeraALMTest",
		"JohnsonDistribution",
		"Join",
		"JoinAcross",
		"Joined",
		"JoinedCurve",
		"JoinedCurveBox",
		"JoinedCurveBoxOptions",
		"JoinForm",
		"JordanDecomposition",
		"JordanModelDecomposition",
		"JulianDate",
		"JuliaSetBoettcher",
		"JuliaSetIterationCount",
		"JuliaSetPlot",
		"JuliaSetPoints",
		"K",
		"KagiChart",
		"KaiserBesselWindow",
		"KaiserWindow",
		"KalmanEstimator",
		"KalmanFilter",
		"KarhunenLoeveDecomposition",
		"KaryTree",
		"KatzCentrality",
		"KCoreComponents",
		"KDistribution",
		"KEdgeConnectedComponents",
		"KEdgeConnectedGraphQ",
		"KeepExistingVersion",
		"KelvinBei",
		"KelvinBer",
		"KelvinKei",
		"KelvinKer",
		"KendallTau",
		"KendallTauTest",
		"KernelConfiguration",
		"KernelExecute",
		"KernelFunction",
		"KernelMixtureDistribution",
		"KernelObject",
		"Kernels",
		"Ket",
		"Key",
		"KeyCollisionFunction",
		"KeyComplement",
		"KeyDrop",
		"KeyDropFrom",
		"KeyExistsQ",
		"KeyFreeQ",
		"KeyIntersection",
		"KeyMap",
		"KeyMemberQ",
		"KeypointStrength",
		"Keys",
		"KeySelect",
		"KeySort",
		"KeySortBy",
		"KeyTake",
		"KeyUnion",
		"KeyValueMap",
		"KeyValuePattern",
		"Khinchin",
		"KillProcess",
		"KirchhoffGraph",
		"KirchhoffMatrix",
		"KleinInvariantJ",
		"KnapsackSolve",
		"KnightTourGraph",
		"KnotData",
		"KnownUnitQ",
		"KochCurve",
		"KolmogorovSmirnovTest",
		"KroneckerDelta",
		"KroneckerModelDecomposition",
		"KroneckerProduct",
		"KroneckerSymbol",
		"KuiperTest",
		"KumaraswamyDistribution",
		"Kurtosis",
		"KuwaharaFilter",
		"KVertexConnectedComponents",
		"KVertexConnectedGraphQ",
		"LABColor",
		"Label",
		"Labeled",
		"LabeledSlider",
		"LabelingFunction",
		"LabelingSize",
		"LabelStyle",
		"LabelVisibility",
		"LaguerreL",
		"LakeData",
		"LambdaComponents",
		"LambertW",
		"LameC",
		"LameCPrime",
		"LameEigenvalueA",
		"LameEigenvalueB",
		"LameS",
		"LameSPrime",
		"LaminaData",
		"LanczosWindow",
		"LandauDistribution",
		"Language",
		"LanguageCategory",
		"LanguageData",
		"LanguageIdentify",
		"LanguageOptions",
		"LaplaceDistribution",
		"LaplaceTransform",
		"Laplacian",
		"LaplacianFilter",
		"LaplacianGaussianFilter",
		"LaplacianPDETerm",
		"Large",
		"Larger",
		"Last",
		"Latitude",
		"LatitudeLongitude",
		"LatticeData",
		"LatticeReduce",
		"Launch",
		"LaunchKernels",
		"LayeredGraphPlot",
		"LayeredGraphPlot3D",
		"LayerSizeFunction",
		"LayoutInformation",
		"LCHColor",
		"LCM",
		"LeaderSize",
		"LeafCount",
		"LeapVariant",
		"LeapYearQ",
		"LearnDistribution",
		"LearnedDistribution",
		"LearningRate",
		"LearningRateMultipliers",
		"LeastSquares",
		"LeastSquaresFilterKernel",
		"Left",
		"LeftArrow",
		"LeftArrowBar",
		"LeftArrowRightArrow",
		"LeftDownTeeVector",
		"LeftDownVector",
		"LeftDownVectorBar",
		"LeftRightArrow",
		"LeftRightVector",
		"LeftTee",
		"LeftTeeArrow",
		"LeftTeeVector",
		"LeftTriangle",
		"LeftTriangleBar",
		"LeftTriangleEqual",
		"LeftUpDownVector",
		"LeftUpTeeVector",
		"LeftUpVector",
		"LeftUpVectorBar",
		"LeftVector",
		"LeftVectorBar",
		"LegendAppearance",
		"Legended",
		"LegendFunction",
		"LegendLabel",
		"LegendLayout",
		"LegendMargins",
		"LegendMarkers",
		"LegendMarkerSize",
		"LegendreP",
		"LegendreQ",
		"LegendreType",
		"Length",
		"LengthWhile",
		"LerchPhi",
		"Less",
		"LessEqual",
		"LessEqualGreater",
		"LessEqualThan",
		"LessFullEqual",
		"LessGreater",
		"LessLess",
		"LessSlantEqual",
		"LessThan",
		"LessTilde",
		"LetterCharacter",
		"LetterCounts",
		"LetterNumber",
		"LetterQ",
		"Level",
		"LeveneTest",
		"LeviCivitaTensor",
		"LevyDistribution",
		"Lexicographic",
		"LexicographicOrder",
		"LexicographicSort",
		"LibraryDataType",
		"LibraryFunction",
		"LibraryFunctionDeclaration",
		"LibraryFunctionError",
		"LibraryFunctionInformation",
		"LibraryFunctionLoad",
		"LibraryFunctionUnload",
		"LibraryLoad",
		"LibraryUnload",
		"LicenseEntitlementObject",
		"LicenseEntitlements",
		"LicenseID",
		"LicensingSettings",
		"LiftingFilterData",
		"LiftingWaveletTransform",
		"LightBlue",
		"LightBrown",
		"LightCyan",
		"Lighter",
		"LightGray",
		"LightGreen",
		"Lighting",
		"LightingAngle",
		"LightMagenta",
		"LightOrange",
		"LightPink",
		"LightPurple",
		"LightRed",
		"LightSources",
		"LightYellow",
		"Likelihood",
		"Limit",
		"LimitsPositioning",
		"LimitsPositioningTokens",
		"LindleyDistribution",
		"Line",
		"Line3DBox",
		"Line3DBoxOptions",
		"LinearFilter",
		"LinearFractionalOptimization",
		"LinearFractionalTransform",
		"LinearGradientFilling",
		"LinearGradientImage",
		"LinearizingTransformationData",
		"LinearLayer",
		"LinearModelFit",
		"LinearOffsetFunction",
		"LinearOptimization",
		"LinearProgramming",
		"LinearRecurrence",
		"LinearSolve",
		"LinearSolveFunction",
		"LineBox",
		"LineBoxOptions",
		"LineBreak",
		"LinebreakAdjustments",
		"LineBreakChart",
		"LinebreakSemicolonWeighting",
		"LineBreakWithin",
		"LineColor",
		"LineGraph",
		"LineIndent",
		"LineIndentMaxFraction",
		"LineIntegralConvolutionPlot",
		"LineIntegralConvolutionScale",
		"LineLegend",
		"LineOpacity",
		"LineSpacing",
		"LineWrapParts",
		"LinkActivate",
		"LinkClose",
		"LinkConnect",
		"LinkConnectedQ",
		"LinkCreate",
		"LinkError",
		"LinkFlush",
		"LinkFunction",
		"LinkHost",
		"LinkInterrupt",
		"LinkLaunch",
		"LinkMode",
		"LinkObject",
		"LinkOpen",
		"LinkOptions",
		"LinkPatterns",
		"LinkProtocol",
		"LinkRankCentrality",
		"LinkRead",
		"LinkReadHeld",
		"LinkReadyQ",
		"Links",
		"LinkService",
		"LinkWrite",
		"LinkWriteHeld",
		"LiouvilleLambda",
		"List",
		"Listable",
		"ListAnimate",
		"ListContourPlot",
		"ListContourPlot3D",
		"ListConvolve",
		"ListCorrelate",
		"ListCurvePathPlot",
		"ListDeconvolve",
		"ListDensityPlot",
		"ListDensityPlot3D",
		"Listen",
		"ListFormat",
		"ListFourierSequenceTransform",
		"ListInterpolation",
		"ListLineIntegralConvolutionPlot",
		"ListLinePlot",
		"ListLinePlot3D",
		"ListLogLinearPlot",
		"ListLogLogPlot",
		"ListLogPlot",
		"ListPicker",
		"ListPickerBox",
		"ListPickerBoxBackground",
		"ListPickerBoxOptions",
		"ListPlay",
		"ListPlot",
		"ListPlot3D",
		"ListPointPlot3D",
		"ListPolarPlot",
		"ListQ",
		"ListSliceContourPlot3D",
		"ListSliceDensityPlot3D",
		"ListSliceVectorPlot3D",
		"ListStepPlot",
		"ListStreamDensityPlot",
		"ListStreamPlot",
		"ListStreamPlot3D",
		"ListSurfacePlot3D",
		"ListVectorDensityPlot",
		"ListVectorDisplacementPlot",
		"ListVectorDisplacementPlot3D",
		"ListVectorPlot",
		"ListVectorPlot3D",
		"ListZTransform",
		"Literal",
		"LiteralSearch",
		"LiteralType",
		"LoadCompiledComponent",
		"LocalAdaptiveBinarize",
		"LocalCache",
		"LocalClusteringCoefficient",
		"LocalEvaluate",
		"LocalizeDefinitions",
		"LocalizeVariables",
		"LocalObject",
		"LocalObjects",
		"LocalResponseNormalizationLayer",
		"LocalSubmit",
		"LocalSymbol",
		"LocalTime",
		"LocalTimeZone",
		"LocationEquivalenceTest",
		"LocationTest",
		"Locator",
		"LocatorAutoCreate",
		"LocatorBox",
		"LocatorBoxOptions",
		"LocatorCentering",
		"LocatorPane",
		"LocatorPaneBox",
		"LocatorPaneBoxOptions",
		"LocatorRegion",
		"Locked",
		"Log",
		"Log10",
		"Log2",
		"LogBarnesG",
		"LogGamma",
		"LogGammaDistribution",
		"LogicalExpand",
		"LogIntegral",
		"LogisticDistribution",
		"LogisticSigmoid",
		"LogitModelFit",
		"LogLikelihood",
		"LogLinearPlot",
		"LogLogisticDistribution",
		"LogLogPlot",
		"LogMultinormalDistribution",
		"LogNormalDistribution",
		"LogPlot",
		"LogRankTest",
		"LogSeriesDistribution",
		"LongEqual",
		"Longest",
		"LongestCommonSequence",
		"LongestCommonSequencePositions",
		"LongestCommonSubsequence",
		"LongestCommonSubsequencePositions",
		"LongestMatch",
		"LongestOrderedSequence",
		"LongForm",
		"Longitude",
		"LongLeftArrow",
		"LongLeftRightArrow",
		"LongRightArrow",
		"LongShortTermMemoryLayer",
		"Lookup",
		"Loopback",
		"LoopFreeGraphQ",
		"Looping",
		"LossFunction",
		"LowerCaseQ",
		"LowerLeftArrow",
		"LowerRightArrow",
		"LowerTriangularize",
		"LowerTriangularMatrix",
		"LowerTriangularMatrixQ",
		"LowpassFilter",
		"LQEstimatorGains",
		"LQGRegulator",
		"LQOutputRegulatorGains",
		"LQRegulatorGains",
		"LUBackSubstitution",
		"LucasL",
		"LuccioSamiComponents",
		"LUDecomposition",
		"LunarEclipse",
		"LUVColor",
		"LyapunovSolve",
		"LyonsGroupLy",
		"MachineID",
		"MachineName",
		"MachineNumberQ",
		"MachinePrecision",
		"MacintoshSystemPageSetup",
		"Magenta",
		"Magnification",
		"Magnify",
		"MailAddressValidation",
		"MailExecute",
		"MailFolder",
		"MailItem",
		"MailReceiverFunction",
		"MailResponseFunction",
		"MailSearch",
		"MailServerConnect",
		"MailServerConnection",
		"MailSettings",
		"MainSolve",
		"MaintainDynamicCaches",
		"Majority",
		"MakeBoxes",
		"MakeExpression",
		"MakeRules",
		"ManagedLibraryExpressionID",
		"ManagedLibraryExpressionQ",
		"MandelbrotSetBoettcher",
		"MandelbrotSetDistance",
		"MandelbrotSetIterationCount",
		"MandelbrotSetMemberQ",
		"MandelbrotSetPlot",
		"MangoldtLambda",
		"ManhattanDistance",
		"Manipulate",
		"Manipulator",
		"MannedSpaceMissionData",
		"MannWhitneyTest",
		"MantissaExponent",
		"Manual",
		"Map",
		"MapAll",
		"MapApply",
		"MapAt",
		"MapIndexed",
		"MAProcess",
		"MapThread",
		"MarchenkoPasturDistribution",
		"MarcumQ",
		"MardiaCombinedTest",
		"MardiaKurtosisTest",
		"MardiaSkewnessTest",
		"MarginalDistribution",
		"MarkovProcessProperties",
		"Masking",
		"MassConcentrationCondition",
		"MassFluxValue",
		"MassImpermeableBoundaryValue",
		"MassOutflowValue",
		"MassSymmetryValue",
		"MassTransferValue",
		"MassTransportPDEComponent",
		"MatchingDissimilarity",
		"MatchLocalNameQ",
		"MatchLocalNames",
		"MatchQ",
		"Material",
		"MaterialShading",
		"MaternPointProcess",
		"MathematicalFunctionData",
		"MathematicaNotation",
		"MathieuC",
		"MathieuCharacteristicA",
		"MathieuCharacteristicB",
		"MathieuCharacteristicExponent",
		"MathieuCPrime",
		"MathieuGroupM11",
		"MathieuGroupM12",
		"MathieuGroupM22",
		"MathieuGroupM23",
		"MathieuGroupM24",
		"MathieuS",
		"MathieuSPrime",
		"MathMLForm",
		"MathMLText",
		"Matrices",
		"MatrixExp",
		"MatrixForm",
		"MatrixFunction",
		"MatrixLog",
		"MatrixNormalDistribution",
		"MatrixPlot",
		"MatrixPower",
		"MatrixPropertyDistribution",
		"MatrixQ",
		"MatrixRank",
		"MatrixTDistribution",
		"Max",
		"MaxBend",
		"MaxCellMeasure",
		"MaxColorDistance",
		"MaxDate",
		"MaxDetect",
		"MaxDisplayedChildren",
		"MaxDuration",
		"MaxExtraBandwidths",
		"MaxExtraConditions",
		"MaxFeatureDisplacement",
		"MaxFeatures",
		"MaxFilter",
		"MaximalBy",
		"Maximize",
		"MaxItems",
		"MaxIterations",
		"MaxLimit",
		"MaxMemoryUsed",
		"MaxMixtureKernels",
		"MaxOverlapFraction",
		"MaxPlotPoints",
		"MaxPoints",
		"MaxRecursion",
		"MaxStableDistribution",
		"MaxStepFraction",
		"MaxSteps",
		"MaxStepSize",
		"MaxTrainingRounds",
		"MaxValue",
		"MaxwellDistribution",
		"MaxWordGap",
		"McLaughlinGroupMcL",
		"Mean",
		"MeanAbsoluteLossLayer",
		"MeanAround",
		"MeanClusteringCoefficient",
		"MeanDegreeConnectivity",
		"MeanDeviation",
		"MeanFilter",
		"MeanGraphDistance",
		"MeanNeighborDegree",
		"MeanPointDensity",
		"MeanShift",
		"MeanShiftFilter",
		"MeanSquaredLossLayer",
		"Median",
		"MedianDeviation",
		"MedianFilter",
		"MedicalTestData",
		"Medium",
		"MeijerG",
		"MeijerGReduce",
		"MeixnerDistribution",
		"MellinConvolve",
		"MellinTransform",
		"MemberQ",
		"MemoryAvailable",
		"MemoryConstrained",
		"MemoryConstraint",
		"MemoryInUse",
		"MengerMesh",
		"Menu",
		"MenuAppearance",
		"MenuCommandKey",
		"MenuEvaluator",
		"MenuItem",
		"MenuList",
		"MenuPacket",
		"MenuSortingValue",
		"MenuStyle",
		"MenuView",
		"Merge",
		"MergeDifferences",
		"MergingFunction",
		"MersennePrimeExponent",
		"MersennePrimeExponentQ",
		"Mesh",
		"MeshCellCentroid",
		"MeshCellCount",
		"MeshCellHighlight",
		"MeshCellIndex",
		"MeshCellLabel",
		"MeshCellMarker",
		"MeshCellMeasure",
		"MeshCellQuality",
		"MeshCells",
		"MeshCellShapeFunction",
		"MeshCellStyle",
		"MeshConnectivityGraph",
		"MeshCoordinates",
		"MeshFunctions",
		"MeshPrimitives",
		"MeshQualityGoal",
		"MeshRange",
		"MeshRefinementFunction",
		"MeshRegion",
		"MeshRegionQ",
		"MeshShading",
		"MeshStyle",
		"Message",
		"MessageDialog",
		"MessageList",
		"MessageName",
		"MessageObject",
		"MessageOptions",
		"MessagePacket",
		"Messages",
		"MessagesNotebook",
		"MetaCharacters",
		"MetaInformation",
		"MeteorShowerData",
		"Method",
		"MethodOptions",
		"MexicanHatWavelet",
		"MeyerWavelet",
		"Midpoint",
		"MIMETypeToFormatList",
		"Min",
		"MinColorDistance",
		"MinDate",
		"MinDetect",
		"MineralData",
		"MinFilter",
		"MinimalBy",
		"MinimalPolynomial",
		"MinimalStateSpaceModel",
		"Minimize",
		"MinimumTimeIncrement",
		"MinIntervalSize",
		"MinkowskiQuestionMark",
		"MinLimit",
		"MinMax",
		"MinorPlanetData",
		"Minors",
		"MinPointSeparation",
		"MinRecursion",
		"MinSize",
		"MinStableDistribution",
		"Minus",
		"MinusPlus",
		"MinValue",
		"Missing",
		"MissingBehavior",
		"MissingDataMethod",
		"MissingDataRules",
		"MissingQ",
		"MissingString",
		"MissingStyle",
		"MissingValuePattern",
		"MissingValueSynthesis",
		"MittagLefflerE",
		"MixedFractionParts",
		"MixedGraphQ",
		"MixedMagnitude",
		"MixedRadix",
		"MixedRadixQuantity",
		"MixedUnit",
		"MixtureDistribution",
		"Mod",
		"Modal",
		"Mode",
		"ModelPredictiveController",
		"Modular",
		"ModularInverse",
		"ModularLambda",
		"Module",
		"Modulus",
		"MoebiusMu",
		"Molecule",
		"MoleculeAlign",
		"MoleculeContainsQ",
		"MoleculeDraw",
		"MoleculeEquivalentQ",
		"MoleculeFreeQ",
		"MoleculeGraph",
		"MoleculeMatchQ",
		"MoleculeMaximumCommonSubstructure",
		"MoleculeModify",
		"MoleculeName",
		"MoleculePattern",
		"MoleculePlot",
		"MoleculePlot3D",
		"MoleculeProperty",
		"MoleculeQ",
		"MoleculeRecognize",
		"MoleculeSubstructureCount",
		"MoleculeValue",
		"Moment",
		"MomentConvert",
		"MomentEvaluate",
		"MomentGeneratingFunction",
		"MomentOfInertia",
		"Monday",
		"Monitor",
		"MonomialList",
		"MonomialOrder",
		"MonsterGroupM",
		"MoonPhase",
		"MoonPosition",
		"MorletWavelet",
		"MorphologicalBinarize",
		"MorphologicalBranchPoints",
		"MorphologicalComponents",
		"MorphologicalEulerNumber",
		"MorphologicalGraph",
		"MorphologicalPerimeter",
		"MorphologicalTransform",
		"MortalityData",
		"Most",
		"MountainData",
		"MouseAnnotation",
		"MouseAppearance",
		"MouseAppearanceTag",
		"MouseButtons",
		"Mouseover",
		"MousePointerNote",
		"MousePosition",
		"MovieData",
		"MovingAverage",
		"MovingMap",
		"MovingMedian",
		"MoyalDistribution",
		"MultiaxisArrangement",
		"Multicolumn",
		"MultiedgeStyle",
		"MultigraphQ",
		"MultilaunchWarning",
		"MultiLetterItalics",
		"MultiLetterStyle",
		"MultilineFunction",
		"Multinomial",
		"MultinomialDistribution",
		"MultinormalDistribution",
		"MultiplicativeOrder",
		"Multiplicity",
		"MultiplySides",
		"MultiscriptBoxOptions",
		"Multiselection",
		"MultivariateHypergeometricDistribution",
		"MultivariatePoissonDistribution",
		"MultivariateTDistribution",
		"N",
		"NakagamiDistribution",
		"NameQ",
		"Names",
		"NamespaceBox",
		"NamespaceBoxOptions",
		"Nand",
		"NArgMax",
		"NArgMin",
		"NBernoulliB",
		"NBodySimulation",
		"NBodySimulationData",
		"NCache",
		"NCaputoD",
		"NDEigensystem",
		"NDEigenvalues",
		"NDSolve",
		"NDSolveValue",
		"Nearest",
		"NearestFunction",
		"NearestMeshCells",
		"NearestNeighborG",
		"NearestNeighborGraph",
		"NearestTo",
		"NebulaData",
		"NeedlemanWunschSimilarity",
		"Needs",
		"Negative",
		"NegativeBinomialDistribution",
		"NegativeDefiniteMatrixQ",
		"NegativeIntegers",
		"NegativelyOrientedPoints",
		"NegativeMultinomialDistribution",
		"NegativeRationals",
		"NegativeReals",
		"NegativeSemidefiniteMatrixQ",
		"NeighborhoodData",
		"NeighborhoodGraph",
		"Nest",
		"NestedGreaterGreater",
		"NestedLessLess",
		"NestedScriptRules",
		"NestGraph",
		"NestList",
		"NestTree",
		"NestWhile",
		"NestWhileList",
		"NetAppend",
		"NetArray",
		"NetArrayLayer",
		"NetBidirectionalOperator",
		"NetChain",
		"NetDecoder",
		"NetDelete",
		"NetDrop",
		"NetEncoder",
		"NetEvaluationMode",
		"NetExternalObject",
		"NetExtract",
		"NetFlatten",
		"NetFoldOperator",
		"NetGANOperator",
		"NetGraph",
		"NetInformation",
		"NetInitialize",
		"NetInsert",
		"NetInsertSharedArrays",
		"NetJoin",
		"NetMapOperator",
		"NetMapThreadOperator",
		"NetMeasurements",
		"NetModel",
		"NetNestOperator",
		"NetPairEmbeddingOperator",
		"NetPort",
		"NetPortGradient",
		"NetPrepend",
		"NetRename",
		"NetReplace",
		"NetReplacePart",
		"NetSharedArray",
		"NetStateObject",
		"NetTake",
		"NetTrain",
		"NetTrainResultsObject",
		"NetUnfold",
		"NetworkPacketCapture",
		"NetworkPacketRecording",
		"NetworkPacketRecordingDuring",
		"NetworkPacketTrace",
		"NeumannValue",
		"NevilleThetaC",
		"NevilleThetaD",
		"NevilleThetaN",
		"NevilleThetaS",
		"NewPrimitiveStyle",
		"NExpectation",
		"Next",
		"NextCell",
		"NextDate",
		"NextPrime",
		"NextScheduledTaskTime",
		"NeymanScottPointProcess",
		"NFractionalD",
		"NHoldAll",
		"NHoldFirst",
		"NHoldRest",
		"NicholsGridLines",
		"NicholsPlot",
		"NightHemisphere",
		"NIntegrate",
		"NMaximize",
		"NMaxValue",
		"NMinimize",
		"NMinValue",
		"NominalScale",
		"NominalVariables",
		"NonAssociative",
		"NoncentralBetaDistribution",
		"NoncentralChiSquareDistribution",
		"NoncentralFRatioDistribution",
		"NoncentralStudentTDistribution",
		"NonCommutativeMultiply",
		"NonConstants",
		"NondimensionalizationTransform",
		"None",
		"NoneTrue",
		"NonlinearModelFit",
		"NonlinearStateSpaceModel",
		"NonlocalMeansFilter",
		"NonNegative",
		"NonNegativeIntegers",
		"NonNegativeRationals",
		"NonNegativeReals",
		"NonPositive",
		"NonPositiveIntegers",
		"NonPositiveRationals",
		"NonPositiveReals",
		"Nor",
		"NorlundB",
		"Norm",
		"Normal",
		"NormalDistribution",
		"NormalGrouping",
		"NormalizationLayer",
		"Normalize",
		"Normalized",
		"NormalizedSquaredEuclideanDistance",
		"NormalMatrixQ",
		"NormalsFunction",
		"NormFunction",
		"Not",
		"NotCongruent",
		"NotCupCap",
		"NotDoubleVerticalBar",
		"Notebook",
		"NotebookApply",
		"NotebookAutoSave",
		"NotebookBrowseDirectory",
		"NotebookClose",
		"NotebookConvertSettings",
		"NotebookCreate",
		"NotebookDefault",
		"NotebookDelete",
		"NotebookDirectory",
		"NotebookDynamicExpression",
		"NotebookEvaluate",
		"NotebookEventActions",
		"NotebookFileName",
		"NotebookFind",
		"NotebookGet",
		"NotebookImport",
		"NotebookInformation",
		"NotebookInterfaceObject",
		"NotebookLocate",
		"NotebookObject",
		"NotebookOpen",
		"NotebookPath",
		"NotebookPrint",
		"NotebookPut",
		"NotebookRead",
		"Notebooks",
		"NotebookSave",
		"NotebookSelection",
		"NotebooksMenu",
		"NotebookTemplate",
		"NotebookWrite",
		"NotElement",
		"NotEqualTilde",
		"NotExists",
		"NotGreater",
		"NotGreaterEqual",
		"NotGreaterFullEqual",
		"NotGreaterGreater",
		"NotGreaterLess",
		"NotGreaterSlantEqual",
		"NotGreaterTilde",
		"Nothing",
		"NotHumpDownHump",
		"NotHumpEqual",
		"NotificationFunction",
		"NotLeftTriangle",
		"NotLeftTriangleBar",
		"NotLeftTriangleEqual",
		"NotLess",
		"NotLessEqual",
		"NotLessFullEqual",
		"NotLessGreater",
		"NotLessLess",
		"NotLessSlantEqual",
		"NotLessTilde",
		"NotNestedGreaterGreater",
		"NotNestedLessLess",
		"NotPrecedes",
		"NotPrecedesEqual",
		"NotPrecedesSlantEqual",
		"NotPrecedesTilde",
		"NotReverseElement",
		"NotRightTriangle",
		"NotRightTriangleBar",
		"NotRightTriangleEqual",
		"NotSquareSubset",
		"NotSquareSubsetEqual",
		"NotSquareSuperset",
		"NotSquareSupersetEqual",
		"NotSubset",
		"NotSubsetEqual",
		"NotSucceeds",
		"NotSucceedsEqual",
		"NotSucceedsSlantEqual",
		"NotSucceedsTilde",
		"NotSuperset",
		"NotSupersetEqual",
		"NotTilde",
		"NotTildeEqual",
		"NotTildeFullEqual",
		"NotTildeTilde",
		"NotVerticalBar",
		"Now",
		"NoWhitespace",
		"NProbability",
		"NProduct",
		"NProductFactors",
		"NRoots",
		"NSolve",
		"NSolveValues",
		"NSum",
		"NSumTerms",
		"NuclearExplosionData",
		"NuclearReactorData",
		"Null",
		"NullRecords",
		"NullSpace",
		"NullWords",
		"Number",
		"NumberCompose",
		"NumberDecompose",
		"NumberDigit",
		"NumberExpand",
		"NumberFieldClassNumber",
		"NumberFieldDiscriminant",
		"NumberFieldFundamentalUnits",
		"NumberFieldIntegralBasis",
		"NumberFieldNormRepresentatives",
		"NumberFieldRegulator",
		"NumberFieldRootsOfUnity",
		"NumberFieldSignature",
		"NumberForm",
		"NumberFormat",
		"NumberLinePlot",
		"NumberMarks",
		"NumberMultiplier",
		"NumberPadding",
		"NumberPoint",
		"NumberQ",
		"NumberSeparator",
		"NumberSigns",
		"NumberString",
		"Numerator",
		"NumeratorDenominator",
		"NumericalOrder",
		"NumericalSort",
		"NumericArray",
		"NumericArrayQ",
		"NumericArrayType",
		"NumericFunction",
		"NumericQ",
		"NuttallWindow",
		"NValues",
		"NyquistGridLines",
		"NyquistPlot",
		"O",
		"ObjectExistsQ",
		"ObservabilityGramian",
		"ObservabilityMatrix",
		"ObservableDecomposition",
		"ObservableModelQ",
		"OceanData",
		"Octahedron",
		"OddQ",
		"Off",
		"Offset",
		"OLEData",
		"On",
		"ONanGroupON",
		"Once",
		"OneIdentity",
		"Opacity",
		"OpacityFunction",
		"OpacityFunctionScaling",
		"Open",
		"OpenAppend",
		"Opener",
		"OpenerBox",
		"OpenerBoxOptions",
		"OpenerView",
		"OpenFunctionInspectorPacket",
		"Opening",
		"OpenRead",
		"OpenSpecialOptions",
		"OpenTemporary",
		"OpenWrite",
		"Operate",
		"OperatingSystem",
		"OperatorApplied",
		"OptimumFlowData",
		"Optional",
		"OptionalElement",
		"OptionInspectorSettings",
		"OptionQ",
		"Options",
		"OptionsPacket",
		"OptionsPattern",
		"OptionValue",
		"OptionValueBox",
		"OptionValueBoxOptions",
		"Or",
		"Orange",
		"Order",
		"OrderDistribution",
		"OrderedQ",
		"Ordering",
		"OrderingBy",
		"OrderingLayer",
		"Orderless",
		"OrderlessPatternSequence",
		"OrdinalScale",
		"OrnsteinUhlenbeckProcess",
		"Orthogonalize",
		"OrthogonalMatrixQ",
		"Out",
		"Outer",
		"OuterPolygon",
		"OuterPolyhedron",
		"OutputAutoOverwrite",
		"OutputControllabilityMatrix",
		"OutputControllableModelQ",
		"OutputForm",
		"OutputFormData",
		"OutputGrouping",
		"OutputMathEditExpression",
		"OutputNamePacket",
		"OutputPorts",
		"OutputResponse",
		"OutputSizeLimit",
		"OutputStream",
		"Over",
		"OverBar",
		"OverDot",
		"Overflow",
		"OverHat",
		"Overlaps",
		"Overlay",
		"OverlayBox",
		"OverlayBoxOptions",
		"OverlayVideo",
		"Overscript",
		"OverscriptBox",
		"OverscriptBoxOptions",
		"OverTilde",
		"OverVector",
		"OverwriteTarget",
		"OwenT",
		"OwnValues",
		"Package",
		"PackingMethod",
		"PackPaclet",
		"PacletDataRebuild",
		"PacletDirectoryAdd",
		"PacletDirectoryLoad",
		"PacletDirectoryRemove",
		"PacletDirectoryUnload",
		"PacletDisable",
		"PacletEnable",
		"PacletFind",
		"PacletFindRemote",
		"PacletInformation",
		"PacletInstall",
		"PacletInstallSubmit",
		"PacletNewerQ",
		"PacletObject",
		"PacletObjectQ",
		"PacletSite",
		"PacletSiteObject",
		"PacletSiteRegister",
		"PacletSites",
		"PacletSiteUnregister",
		"PacletSiteUpdate",
		"PacletSymbol",
		"PacletUninstall",
		"PacletUpdate",
		"PaddedForm",
		"Padding",
		"PaddingLayer",
		"PaddingSize",
		"PadeApproximant",
		"PadLeft",
		"PadRight",
		"PageBreakAbove",
		"PageBreakBelow",
		"PageBreakWithin",
		"PageFooterLines",
		"PageFooters",
		"PageHeaderLines",
		"PageHeaders",
		"PageHeight",
		"PageRankCentrality",
		"PageTheme",
		"PageWidth",
		"Pagination",
		"PairCorrelationG",
		"PairedBarChart",
		"PairedHistogram",
		"PairedSmoothHistogram",
		"PairedTTest",
		"PairedZTest",
		"PaletteNotebook",
		"PalettePath",
		"PalettesMenuSettings",
		"PalindromeQ",
		"Pane",
		"PaneBox",
		"PaneBoxOptions",
		"Panel",
		"PanelBox",
		"PanelBoxOptions",
		"Paneled",
		"PaneSelector",
		"PaneSelectorBox",
		"PaneSelectorBoxOptions",
		"PaperWidth",
		"ParabolicCylinderD",
		"ParagraphIndent",
		"ParagraphSpacing",
		"ParallelArray",
		"ParallelAxisPlot",
		"ParallelCombine",
		"ParallelDo",
		"Parallelepiped",
		"ParallelEvaluate",
		"Parallelization",
		"Parallelize",
		"ParallelKernels",
		"ParallelMap",
		"ParallelNeeds",
		"Parallelogram",
		"ParallelProduct",
		"ParallelSubmit",
		"ParallelSum",
		"ParallelTable",
		"ParallelTry",
		"Parameter",
		"ParameterEstimator",
		"ParameterMixtureDistribution",
		"ParameterVariables",
		"ParametricConvexOptimization",
		"ParametricFunction",
		"ParametricNDSolve",
		"ParametricNDSolveValue",
		"ParametricPlot",
		"ParametricPlot3D",
		"ParametricRampLayer",
		"ParametricRegion",
		"ParentBox",
		"ParentCell",
		"ParentConnect",
		"ParentDirectory",
		"ParentEdgeLabel",
		"ParentEdgeLabelFunction",
		"ParentEdgeLabelStyle",
		"ParentEdgeShapeFunction",
		"ParentEdgeStyle",
		"ParentEdgeStyleFunction",
		"ParentForm",
		"Parenthesize",
		"ParentList",
		"ParentNotebook",
		"ParetoDistribution",
		"ParetoPickandsDistribution",
		"ParkData",
		"Part",
		"PartBehavior",
		"PartialCorrelationFunction",
		"PartialD",
		"ParticleAcceleratorData",
		"ParticleData",
		"Partition",
		"PartitionGranularity",
		"PartitionsP",
		"PartitionsQ",
		"PartLayer",
		"PartOfSpeech",
		"PartProtection",
		"ParzenWindow",
		"PascalDistribution",
		"PassEventsDown",
		"PassEventsUp",
		"Paste",
		"PasteAutoQuoteCharacters",
		"PasteBoxFormInlineCells",
		"PasteButton",
		"Path",
		"PathGraph",
		"PathGraphQ",
		"Pattern",
		"PatternFilling",
		"PatternReaction",
		"PatternSequence",
		"PatternTest",
		"PauliMatrix",
		"PaulWavelet",
		"Pause",
		"PausedTime",
		"PDF",
		"PeakDetect",
		"PeanoCurve",
		"PearsonChiSquareTest",
		"PearsonCorrelationTest",
		"PearsonDistribution",
		"PenttinenPointProcess",
		"PercentForm",
		"PerfectNumber",
		"PerfectNumberQ",
		"PerformanceGoal",
		"Perimeter",
		"PeriodicBoundaryCondition",
		"PeriodicInterpolation",
		"Periodogram",
		"PeriodogramArray",
		"Permanent",
		"Permissions",
		"PermissionsGroup",
		"PermissionsGroupMemberQ",
		"PermissionsGroups",
		"PermissionsKey",
		"PermissionsKeys",
		"PermutationCycles",
		"PermutationCyclesQ",
		"PermutationGroup",
		"PermutationLength",
		"PermutationList",
		"PermutationListQ",
		"PermutationMatrix",
		"PermutationMax",
		"PermutationMin",
		"PermutationOrder",
		"PermutationPower",
		"PermutationProduct",
		"PermutationReplace",
		"Permutations",
		"PermutationSupport",
		"Permute",
		"PeronaMalikFilter",
		"Perpendicular",
		"PerpendicularBisector",
		"PersistenceLocation",
		"PersistenceTime",
		"PersistentObject",
		"PersistentObjects",
		"PersistentSymbol",
		"PersistentValue",
		"PersonData",
		"PERTDistribution",
		"PetersenGraph",
		"PhaseMargins",
		"PhaseRange",
		"PhongShading",
		"PhysicalSystemData",
		"Pi",
		"Pick",
		"PickedElements",
		"PickMode",
		"PIDData",
		"PIDDerivativeFilter",
		"PIDFeedforward",
		"PIDTune",
		"Piecewise",
		"PiecewiseExpand",
		"PieChart",
		"PieChart3D",
		"PillaiTrace",
		"PillaiTraceTest",
		"PingTime",
		"Pink",
		"PitchRecognize",
		"Pivoting",
		"PixelConstrained",
		"PixelValue",
		"PixelValuePositions",
		"Placed",
		"Placeholder",
		"PlaceholderLayer",
		"PlaceholderReplace",
		"Plain",
		"PlanarAngle",
		"PlanarFaceList",
		"PlanarGraph",
		"PlanarGraphQ",
		"PlanckRadiationLaw",
		"PlaneCurveData",
		"PlanetaryMoonData",
		"PlanetData",
		"PlantData",
		"Play",
		"PlaybackSettings",
		"PlayRange",
		"Plot",
		"Plot3D",
		"Plot3Matrix",
		"PlotDivision",
		"PlotJoined",
		"PlotLabel",
		"PlotLabels",
		"PlotLayout",
		"PlotLegends",
		"PlotMarkers",
		"PlotPoints",
		"PlotRange",
		"PlotRangeClipping",
		"PlotRangeClipPlanesStyle",
		"PlotRangePadding",
		"PlotRegion",
		"PlotStyle",
		"PlotTheme",
		"Pluralize",
		"Plus",
		"PlusMinus",
		"Pochhammer",
		"PodStates",
		"PodWidth",
		"Point",
		"Point3DBox",
		"Point3DBoxOptions",
		"PointBox",
		"PointBoxOptions",
		"PointCountDistribution",
		"PointDensity",
		"PointDensityFunction",
		"PointFigureChart",
		"PointLegend",
		"PointLight",
		"PointProcessEstimator",
		"PointProcessFitTest",
		"PointProcessParameterAssumptions",
		"PointProcessParameterQ",
		"PointSize",
		"PointStatisticFunction",
		"PointValuePlot",
		"PoissonConsulDistribution",
		"PoissonDistribution",
		"PoissonPDEComponent",
		"PoissonPointProcess",
		"PoissonProcess",
		"PoissonWindow",
		"PolarAxes",
		"PolarAxesOrigin",
		"PolarGridLines",
		"PolarPlot",
		"PolarTicks",
		"PoleZeroMarkers",
		"PolyaAeppliDistribution",
		"PolyGamma",
		"Polygon",
		"Polygon3DBox",
		"Polygon3DBoxOptions",
		"PolygonalNumber",
		"PolygonAngle",
		"PolygonBox",
		"PolygonBoxOptions",
		"PolygonCoordinates",
		"PolygonDecomposition",
		"PolygonHoleScale",
		"PolygonIntersections",
		"PolygonScale",
		"Polyhedron",
		"PolyhedronAngle",
		"PolyhedronBox",
		"PolyhedronBoxOptions",
		"PolyhedronCoordinates",
		"PolyhedronData",
		"PolyhedronDecomposition",
		"PolyhedronGenus",
		"PolyLog",
		"PolynomialExpressionQ",
		"PolynomialExtendedGCD",
		"PolynomialForm",
		"PolynomialGCD",
		"PolynomialLCM",
		"PolynomialMod",
		"PolynomialQ",
		"PolynomialQuotient",
		"PolynomialQuotientRemainder",
		"PolynomialReduce",
		"PolynomialRemainder",
		"Polynomials",
		"PolynomialSumOfSquaresList",
		"PoolingLayer",
		"PopupMenu",
		"PopupMenuBox",
		"PopupMenuBoxOptions",
		"PopupView",
		"PopupWindow",
		"Position",
		"PositionIndex",
		"PositionLargest",
		"PositionSmallest",
		"Positive",
		"PositiveDefiniteMatrixQ",
		"PositiveIntegers",
		"PositivelyOrientedPoints",
		"PositiveRationals",
		"PositiveReals",
		"PositiveSemidefiniteMatrixQ",
		"PossibleZeroQ",
		"Postfix",
		"PostScript",
		"Power",
		"PowerDistribution",
		"PowerExpand",
		"PowerMod",
		"PowerModList",
		"PowerRange",
		"PowerSpectralDensity",
		"PowersRepresentations",
		"PowerSymmetricPolynomial",
		"Precedence",
		"PrecedenceForm",
		"Precedes",
		"PrecedesEqual",
		"PrecedesSlantEqual",
		"PrecedesTilde",
		"Precision",
		"PrecisionGoal",
		"PreDecrement",
		"Predict",
		"PredictionRoot",
		"PredictorFunction",
		"PredictorInformation",
		"PredictorMeasurements",
		"PredictorMeasurementsObject",
		"PreemptProtect",
		"PreferencesPath",
		"PreferencesSettings",
		"Prefix",
		"PreIncrement",
		"Prepend",
		"PrependLayer",
		"PrependTo",
		"PreprocessingRules",
		"PreserveColor",
		"PreserveImageOptions",
		"Previous",
		"PreviousCell",
		"PreviousDate",
		"PriceGraphDistribution",
		"PrimaryPlaceholder",
		"Prime",
		"PrimeNu",
		"PrimeOmega",
		"PrimePi",
		"PrimePowerQ",
		"PrimeQ",
		"Primes",
		"PrimeZetaP",
		"PrimitivePolynomialQ",
		"PrimitiveRoot",
		"PrimitiveRootList",
		"PrincipalComponents",
		"PrincipalValue",
		"Print",
		"PrintableASCIIQ",
		"PrintAction",
		"PrintForm",
		"PrintingCopies",
		"PrintingOptions",
		"PrintingPageRange",
		"PrintingStartingPageNumber",
		"PrintingStyleEnvironment",
		"Printout3D",
		"Printout3DPreviewer",
		"PrintPrecision",
		"PrintTemporary",
		"Prism",
		"PrismBox",
		"PrismBoxOptions",
		"PrivateCellOptions",
		"PrivateEvaluationOptions",
		"PrivateFontOptions",
		"PrivateFrontEndOptions",
		"PrivateKey",
		"PrivateNotebookOptions",
		"PrivatePaths",
		"Probability",
		"ProbabilityDistribution",
		"ProbabilityPlot",
		"ProbabilityPr",
		"ProbabilityScalePlot",
		"ProbitModelFit",
		"ProcessConnection",
		"ProcessDirectory",
		"ProcessEnvironment",
		"Processes",
		"ProcessEstimator",
		"ProcessInformation",
		"ProcessObject",
		"ProcessParameterAssumptions",
		"ProcessParameterQ",
		"ProcessStateDomain",
		"ProcessStatus",
		"ProcessTimeDomain",
		"Product",
		"ProductDistribution",
		"ProductLog",
		"ProgressIndicator",
		"ProgressIndicatorBox",
		"ProgressIndicatorBoxOptions",
		"ProgressReporting",
		"Projection",
		"Prolog",
		"PromptForm",
		"ProofObject",
		"PropagateAborts",
		"Properties",
		"Property",
		"PropertyList",
		"PropertyValue",
		"Proportion",
		"Proportional",
		"Protect",
		"Protected",
		"ProteinData",
		"Pruning",
		"PseudoInverse",
		"PsychrometricPropertyData",
		"PublicKey",
		"PublisherID",
		"PulsarData",
		"PunctuationCharacter",
		"Purple",
		"Put",
		"PutAppend",
		"Pyramid",
		"PyramidBox",
		"PyramidBoxOptions",
		"QBinomial",
		"QFactorial",
		"QGamma",
		"QHypergeometricPFQ",
		"QnDispersion",
		"QPochhammer",
		"QPolyGamma",
		"QRDecomposition",
		"QuadraticIrrationalQ",
		"QuadraticOptimization",
		"Quantile",
		"QuantilePlot",
		"Quantity",
		"QuantityArray",
		"QuantityDistribution",
		"QuantityForm",
		"QuantityMagnitude",
		"QuantityQ",
		"QuantityUnit",
		"QuantityVariable",
		"QuantityVariableCanonicalUnit",
		"QuantityVariableDimensions",
		"QuantityVariableIdentifier",
		"QuantityVariablePhysicalQuantity",
		"Quartics",
		"QuartileDeviation",
		"Quartiles",
		"QuartileSkewness",
		"Query",
		"QuestionGenerator",
		"QuestionInterface",
		"QuestionObject",
		"QuestionSelector",
		"QueueingNetworkProcess",
		"QueueingProcess",
		"QueueProperties",
		"Quiet",
		"QuietEcho",
		"Quit",
		"Quotient",
		"QuotientRemainder",
		"RadialAxisPlot",
		"RadialGradientFilling",
		"RadialGradientImage",
		"RadialityCentrality",
		"RadicalBox",
		"RadicalBoxOptions",
		"RadioButton",
		"RadioButtonBar",
		"RadioButtonBox",
		"RadioButtonBoxOptions",
		"Radon",
		"RadonTransform",
		"RamanujanTau",
		"RamanujanTauL",
		"RamanujanTauTheta",
		"RamanujanTauZ",
		"Ramp",
		"Random",
		"RandomArrayLayer",
		"RandomChoice",
		"RandomColor",
		"RandomComplex",
		"RandomDate",
		"RandomEntity",
		"RandomFunction",
		"RandomGeneratorState",
		"RandomGeoPosition",
		"RandomGraph",
		"RandomImage",
		"RandomInstance",
		"RandomInteger",
		"RandomPermutation",
		"RandomPoint",
		"RandomPointConfiguration",
		"RandomPolygon",
		"RandomPolyhedron",
		"RandomPrime",
		"RandomReal",
		"RandomSample",
		"RandomSeed",
		"RandomSeeding",
		"RandomTime",
		"RandomTree",
		"RandomVariate",
		"RandomWalkProcess",
		"RandomWord",
		"Range",
		"RangeFilter",
		"RangeSpecification",
		"RankedMax",
		"RankedMin",
		"RarerProbability",
		"Raster",
		"Raster3D",
		"Raster3DBox",
		"Raster3DBoxOptions",
		"RasterArray",
		"RasterBox",
		"RasterBoxOptions",
		"Rasterize",
		"RasterSize",
		"Rational",
		"RationalExpressionQ",
		"RationalFunctions",
		"Rationalize",
		"Rationals",
		"Ratios",
		"RawArray",
		"RawBoxes",
		"RawData",
		"RawMedium",
		"RayleighDistribution",
		"Re",
		"ReactionBalance",
		"ReactionBalancedQ",
		"ReactionPDETerm",
		"Read",
		"ReadByteArray",
		"ReadLine",
		"ReadList",
		"ReadProtected",
		"ReadString",
		"Real",
		"RealAbs",
		"RealBlockDiagonalForm",
		"RealDigits",
		"RealExponent",
		"Reals",
		"RealSign",
		"Reap",
		"RebuildPacletData",
		"RecalibrationFunction",
		"RecognitionPrior",
		"RecognitionThreshold",
		"ReconstructionMesh",
		"Record",
		"RecordLists",
		"RecordSeparators",
		"Rectangle",
		"RectangleBox",
		"RectangleBoxOptions",
		"RectangleChart",
		"RectangleChart3D",
		"RectangularRepeatingElement",
		"RecurrenceFilter",
		"RecurrenceTable",
		"RecurringDigitsForm",
		"Red",
		"Reduce",
		"RefBox",
		"ReferenceLineStyle",
		"ReferenceMarkers",
		"ReferenceMarkerStyle",
		"Refine",
		"ReflectionMatrix",
		"ReflectionTransform",
		"Refresh",
		"RefreshRate",
		"Region",
		"RegionBinarize",
		"RegionBoundary",
		"RegionBoundaryStyle",
		"RegionBounds",
		"RegionCentroid",
		"RegionCongruent",
		"RegionConvert",
		"RegionDifference",
		"RegionDilation",
		"RegionDimension",
		"RegionDisjoint",
		"RegionDistance",
		"RegionDistanceFunction",
		"RegionEmbeddingDimension",
		"RegionEqual",
		"RegionErosion",
		"RegionFillingStyle",
		"RegionFit",
		"RegionFunction",
		"RegionImage",
		"RegionIntersection",
		"RegionMeasure",
		"RegionMember",
		"RegionMemberFunction",
		"RegionMoment",
		"RegionNearest",
		"RegionNearestFunction",
		"RegionPlot",
		"RegionPlot3D",
		"RegionProduct",
		"RegionQ",
		"RegionResize",
		"RegionSimilar",
		"RegionSize",
		"RegionSymmetricDifference",
		"RegionUnion",
		"RegionWithin",
		"RegisterExternalEvaluator",
		"RegularExpression",
		"Regularization",
		"RegularlySampledQ",
		"RegularPolygon",
		"ReIm",
		"ReImLabels",
		"ReImPlot",
		"ReImStyle",
		"Reinstall",
		"RelationalDatabase",
		"RelationGraph",
		"Release",
		"ReleaseHold",
		"ReliabilityDistribution",
		"ReliefImage",
		"ReliefPlot",
		"RemoteAuthorizationCaching",
		"RemoteBatchJobAbort",
		"RemoteBatchJobObject",
		"RemoteBatchJobs",
		"RemoteBatchMapSubmit",
		"RemoteBatchSubmissionEnvironment",
		"RemoteBatchSubmit",
		"RemoteConnect",
		"RemoteConnectionObject",
		"RemoteEvaluate",
		"RemoteFile",
		"RemoteInputFiles",
		"RemoteKernelObject",
		"RemoteProviderSettings",
		"RemoteRun",
		"RemoteRunProcess",
		"RemovalConditions",
		"Remove",
		"RemoveAlphaChannel",
		"RemoveAsynchronousTask",
		"RemoveAudioStream",
		"RemoveBackground",
		"RemoveChannelListener",
		"RemoveChannelSubscribers",
		"Removed",
		"RemoveDiacritics",
		"RemoveInputStreamMethod",
		"RemoveOutputStreamMethod",
		"RemoveProperty",
		"RemoveScheduledTask",
		"RemoveUsers",
		"RemoveVideoStream",
		"RenameDirectory",
		"RenameFile",
		"RenderAll",
		"RenderingOptions",
		"RenewalProcess",
		"RenkoChart",
		"RepairMesh",
		"Repeated",
		"RepeatedNull",
		"RepeatedString",
		"RepeatedTiming",
		"RepeatingElement",
		"Replace",
		"ReplaceAll",
		"ReplaceAt",
		"ReplaceHeldPart",
		"ReplaceImageValue",
		"ReplaceList",
		"ReplacePart",
		"ReplacePixelValue",
		"ReplaceRepeated",
		"ReplicateLayer",
		"RequiredPhysicalQuantities",
		"Resampling",
		"ResamplingAlgorithmData",
		"ResamplingMethod",
		"Rescale",
		"RescalingTransform",
		"ResetDirectory",
		"ResetScheduledTask",
		"ReshapeLayer",
		"Residue",
		"ResidueSum",
		"ResizeLayer",
		"Resolve",
		"ResolveContextAliases",
		"ResourceAcquire",
		"ResourceData",
		"ResourceFunction",
		"ResourceObject",
		"ResourceRegister",
		"ResourceRemove",
		"ResourceSearch",
		"ResourceSubmissionObject",
		"ResourceSubmit",
		"ResourceSystemBase",
		"ResourceSystemPath",
		"ResourceUpdate",
		"ResourceVersion",
		"ResponseForm",
		"Rest",
		"RestartInterval",
		"Restricted",
		"Resultant",
		"ResumePacket",
		"Return",
		"ReturnCreatesNewCell",
		"ReturnEntersInput",
		"ReturnExpressionPacket",
		"ReturnInputFormPacket",
		"ReturnPacket",
		"ReturnReceiptFunction",
		"ReturnTextPacket",
		"Reverse",
		"ReverseApplied",
		"ReverseBiorthogonalSplineWavelet",
		"ReverseElement",
		"ReverseEquilibrium",
		"ReverseGraph",
		"ReverseSort",
		"ReverseSortBy",
		"ReverseUpEquilibrium",
		"RevolutionAxis",
		"RevolutionPlot3D",
		"RGBColor",
		"RiccatiSolve",
		"RiceDistribution",
		"RidgeFilter",
		"RiemannR",
		"RiemannSiegelTheta",
		"RiemannSiegelZ",
		"RiemannXi",
		"Riffle",
		"Right",
		"RightArrow",
		"RightArrowBar",
		"RightArrowLeftArrow",
		"RightComposition",
		"RightCosetRepresentative",
		"RightDownTeeVector",
		"RightDownVector",
		"RightDownVectorBar",
		"RightTee",
		"RightTeeArrow",
		"RightTeeVector",
		"RightTriangle",
		"RightTriangleBar",
		"RightTriangleEqual",
		"RightUpDownVector",
		"RightUpTeeVector",
		"RightUpVector",
		"RightUpVectorBar",
		"RightVector",
		"RightVectorBar",
		"RipleyK",
		"RipleyRassonRegion",
		"RiskAchievementImportance",
		"RiskReductionImportance",
		"RobustConvexOptimization",
		"RogersTanimotoDissimilarity",
		"RollPitchYawAngles",
		"RollPitchYawMatrix",
		"RomanNumeral",
		"Root",
		"RootApproximant",
		"RootIntervals",
		"RootLocusPlot",
		"RootMeanSquare",
		"RootOfUnityQ",
		"RootReduce",
		"Roots",
		"RootSum",
		"RootTree",
		"Rotate",
		"RotateLabel",
		"RotateLeft",
		"RotateRight",
		"RotationAction",
		"RotationBox",
		"RotationBoxOptions",
		"RotationMatrix",
		"RotationTransform",
		"Round",
		"RoundImplies",
		"RoundingRadius",
		"Row",
		"RowAlignments",
		"RowBackgrounds",
		"RowBox",
		"RowHeights",
		"RowLines",
		"RowMinHeight",
		"RowReduce",
		"RowsEqual",
		"RowSpacings",
		"RSolve",
		"RSolveValue",
		"RudinShapiro",
		"RudvalisGroupRu",
		"Rule",
		"RuleCondition",
		"RuleDelayed",
		"RuleForm",
		"RulePlot",
		"RulerUnits",
		"RulesTree",
		"Run",
		"RunProcess",
		"RunScheduledTask",
		"RunThrough",
		"RuntimeAttributes",
		"RuntimeOptions",
		"RussellRaoDissimilarity",
		"SameAs",
		"SameQ",
		"SameTest",
		"SameTestProperties",
		"SampledEntityClass",
		"SampleDepth",
		"SampledSoundFunction",
		"SampledSoundList",
		"SampleRate",
		"SamplingPeriod",
		"SARIMAProcess",
		"SARMAProcess",
		"SASTriangle",
		"SatelliteData",
		"SatisfiabilityCount",
		"SatisfiabilityInstances",
		"SatisfiableQ",
		"Saturday",
		"Save",
		"Saveable",
		"SaveAutoDelete",
		"SaveConnection",
		"SaveDefinitions",
		"SavitzkyGolayMatrix",
		"SawtoothWave",
		"Scale",
		"Scaled",
		"ScaleDivisions",
		"ScaledMousePosition",
		"ScaleOrigin",
		"ScalePadding",
		"ScaleRanges",
		"ScaleRangeStyle",
		"ScalingFunctions",
		"ScalingMatrix",
		"ScalingTransform",
		"Scan",
		"ScheduledTask",
		"ScheduledTaskActiveQ",
		"ScheduledTaskInformation",
		"ScheduledTaskInformationData",
		"ScheduledTaskObject",
		"ScheduledTasks",
		"SchurDecomposition",
		"ScientificForm",
		"ScientificNotationThreshold",
		"ScorerGi",
		"ScorerGiPrime",
		"ScorerHi",
		"ScorerHiPrime",
		"ScreenRectangle",
		"ScreenStyleEnvironment",
		"ScriptBaselineShifts",
		"ScriptForm",
		"ScriptLevel",
		"ScriptMinSize",
		"ScriptRules",
		"ScriptSizeMultipliers",
		"Scrollbars",
		"ScrollingOptions",
		"ScrollPosition",
		"SearchAdjustment",
		"SearchIndexObject",
		"SearchIndices",
		"SearchQueryString",
		"SearchResultObject",
		"Sec",
		"Sech",
		"SechDistribution",
		"SecondOrderConeOptimization",
		"SectionGrouping",
		"SectorChart",
		"SectorChart3D",
		"SectorOrigin",
		"SectorSpacing",
		"SecuredAuthenticationKey",
		"SecuredAuthenticationKeys",
		"SecurityCertificate",
		"SeedRandom",
		"Select",
		"Selectable",
		"SelectComponents",
		"SelectedCells",
		"SelectedNotebook",
		"SelectFirst",
		"Selection",
		"SelectionAnimate",
		"SelectionCell",
		"SelectionCellCreateCell",
		"SelectionCellDefaultStyle",
		"SelectionCellParentStyle",
		"SelectionCreateCell",
		"SelectionDebuggerTag",
		"SelectionEvaluate",
		"SelectionEvaluateCreateCell",
		"SelectionMove",
		"SelectionPlaceholder",
		"SelectWithContents",
		"SelfLoops",
		"SelfLoopStyle",
		"SemanticImport",
		"SemanticImportString",
		"SemanticInterpretation",
		"SemialgebraicComponentInstances",
		"SemidefiniteOptimization",
		"SendMail",
		"SendMessage",
		"Sequence",
		"SequenceAlignment",
		"SequenceAttentionLayer",
		"SequenceCases",
		"SequenceCount",
		"SequenceFold",
		"SequenceFoldList",
		"SequenceForm",
		"SequenceHold",
		"SequenceIndicesLayer",
		"SequenceLastLayer",
		"SequenceMostLayer",
		"SequencePosition",
		"SequencePredict",
		"SequencePredictorFunction",
		"SequenceReplace",
		"SequenceRestLayer",
		"SequenceReverseLayer",
		"SequenceSplit",
		"Series",
		"SeriesCoefficient",
		"SeriesData",
		"SeriesTermGoal",
		"ServiceConnect",
		"ServiceDisconnect",
		"ServiceExecute",
		"ServiceObject",
		"ServiceRequest",
		"ServiceResponse",
		"ServiceSubmit",
		"SessionSubmit",
		"SessionTime",
		"Set",
		"SetAccuracy",
		"SetAlphaChannel",
		"SetAttributes",
		"Setbacks",
		"SetCloudDirectory",
		"SetCookies",
		"SetDelayed",
		"SetDirectory",
		"SetEnvironment",
		"SetFileDate",
		"SetFileFormatProperties",
		"SetOptions",
		"SetOptionsPacket",
		"SetPermissions",
		"SetPrecision",
		"SetProperty",
		"SetSecuredAuthenticationKey",
		"SetSelectedNotebook",
		"SetSharedFunction",
		"SetSharedVariable",
		"SetStreamPosition",
		"SetSystemModel",
		"SetSystemOptions",
		"Setter",
		"SetterBar",
		"SetterBox",
		"SetterBoxOptions",
		"Setting",
		"SetUsers",
		"Shading",
		"Shallow",
		"ShannonWavelet",
		"ShapiroWilkTest",
		"Share",
		"SharingList",
		"Sharpen",
		"ShearingMatrix",
		"ShearingTransform",
		"ShellRegion",
		"ShenCastanMatrix",
		"ShiftedGompertzDistribution",
		"ShiftRegisterSequence",
		"Short",
		"ShortDownArrow",
		"Shortest",
		"ShortestMatch",
		"ShortestPathFunction",
		"ShortLeftArrow",
		"ShortRightArrow",
		"ShortTimeFourier",
		"ShortTimeFourierData",
		"ShortUpArrow",
		"Show",
		"ShowAutoConvert",
		"ShowAutoSpellCheck",
		"ShowAutoStyles",
		"ShowCellBracket",
		"ShowCellLabel",
		"ShowCellTags",
		"ShowClosedCellArea",
		"ShowCodeAssist",
		"ShowContents",
		"ShowControls",
		"ShowCursorTracker",
		"ShowGroupOpenCloseIcon",
		"ShowGroupOpener",
		"ShowInvisibleCharacters",
		"ShowPageBreaks",
		"ShowPredictiveInterface",
		"ShowSelection",
		"ShowShortBoxForm",
		"ShowSpecialCharacters",
		"ShowStringCharacters",
		"ShowSyntaxStyles",
		"ShrinkingDelay",
		"ShrinkWrapBoundingBox",
		"SiderealTime",
		"SiegelTheta",
		"SiegelTukeyTest",
		"SierpinskiCurve",
		"SierpinskiMesh",
		"Sign",
		"Signature",
		"SignedRankTest",
		"SignedRegionDistance",
		"SignificanceLevel",
		"SignPadding",
		"SignTest",
		"SimilarityRules",
		"SimpleGraph",
		"SimpleGraphQ",
		"SimplePolygonQ",
		"SimplePolyhedronQ",
		"Simplex",
		"Simplify",
		"Sin",
		"Sinc",
		"SinghMaddalaDistribution",
		"SingleEvaluation",
		"SingleLetterItalics",
		"SingleLetterStyle",
		"SingularValueDecomposition",
		"SingularValueList",
		"SingularValuePlot",
		"SingularValues",
		"Sinh",
		"SinhIntegral",
		"SinIntegral",
		"SixJSymbol",
		"Skeleton",
		"SkeletonTransform",
		"SkellamDistribution",
		"Skewness",
		"SkewNormalDistribution",
		"SkinStyle",
		"Skip",
		"SliceContourPlot3D",
		"SliceDensityPlot3D",
		"SliceDistribution",
		"SliceVectorPlot3D",
		"Slider",
		"Slider2D",
		"Slider2DBox",
		"Slider2DBoxOptions",
		"SliderBox",
		"SliderBoxOptions",
		"SlideShowVideo",
		"SlideView",
		"Slot",
		"SlotSequence",
		"Small",
		"SmallCircle",
		"Smaller",
		"SmithDecomposition",
		"SmithDelayCompensator",
		"SmithWatermanSimilarity",
		"SmoothDensityHistogram",
		"SmoothHistogram",
		"SmoothHistogram3D",
		"SmoothKernelDistribution",
		"SmoothPointDensity",
		"SnDispersion",
		"Snippet",
		"SnippetsVideo",
		"SnubPolyhedron",
		"SocialMediaData",
		"Socket",
		"SocketConnect",
		"SocketListen",
		"SocketListener",
		"SocketObject",
		"SocketOpen",
		"SocketReadMessage",
		"SocketReadyQ",
		"Sockets",
		"SocketWaitAll",
		"SocketWaitNext",
		"SoftmaxLayer",
		"SokalSneathDissimilarity",
		"SolarEclipse",
		"SolarSystemFeatureData",
		"SolarTime",
		"SolidAngle",
		"SolidBoundaryLoadValue",
		"SolidData",
		"SolidDisplacementCondition",
		"SolidFixedCondition",
		"SolidMechanicsPDEComponent",
		"SolidMechanicsStrain",
		"SolidMechanicsStress",
		"SolidRegionQ",
		"Solve",
		"SolveAlways",
		"SolveDelayed",
		"SolveValues",
		"Sort",
		"SortBy",
		"SortedBy",
		"SortedEntityClass",
		"Sound",
		"SoundAndGraphics",
		"SoundNote",
		"SoundVolume",
		"SourceLink",
		"SourcePDETerm",
		"Sow",
		"Space",
		"SpaceCurveData",
		"SpaceForm",
		"Spacer",
		"Spacings",
		"Span",
		"SpanAdjustments",
		"SpanCharacterRounding",
		"SpanFromAbove",
		"SpanFromBoth",
		"SpanFromLeft",
		"SpanLineThickness",
		"SpanMaxSize",
		"SpanMinSize",
		"SpanningCharacters",
		"SpanSymmetric",
		"SparseArray",
		"SparseArrayQ",
		"SpatialBinnedPointData",
		"SpatialBoundaryCorrection",
		"SpatialEstimate",
		"SpatialEstimatorFunction",
		"SpatialGraphDistribution",
		"SpatialJ",
		"SpatialMedian",
		"SpatialNoiseLevel",
		"SpatialObservationRegionQ",
		"SpatialPointData",
		"SpatialPointSelect",
		"SpatialRandomnessTest",
		"SpatialTransformationLayer",
		"SpatialTrendFunction",
		"Speak",
		"SpeakerMatchQ",
		"SpearmanRankTest",
		"SpearmanRho",
		"SpeciesData",
		"SpecificityGoal",
		"SpectralLineData",
		"Spectrogram",
		"SpectrogramArray",
		"Specularity",
		"SpeechCases",
		"SpeechInterpreter",
		"SpeechRecognize",
		"SpeechSynthesize",
		"SpellingCorrection",
		"SpellingCorrectionList",
		"SpellingDictionaries",
		"SpellingDictionariesPath",
		"SpellingOptions",
		"Sphere",
		"SphereBox",
		"SphereBoxOptions",
		"SpherePoints",
		"SphericalBesselJ",
		"SphericalBesselY",
		"SphericalHankelH1",
		"SphericalHankelH2",
		"SphericalHarmonicY",
		"SphericalPlot3D",
		"SphericalRegion",
		"SphericalShell",
		"SpheroidalEigenvalue",
		"SpheroidalJoiningFactor",
		"SpheroidalPS",
		"SpheroidalPSPrime",
		"SpheroidalQS",
		"SpheroidalQSPrime",
		"SpheroidalRadialFactor",
		"SpheroidalS1",
		"SpheroidalS1Prime",
		"SpheroidalS2",
		"SpheroidalS2Prime",
		"Splice",
		"SplicedDistribution",
		"SplineClosed",
		"SplineDegree",
		"SplineKnots",
		"SplineWeights",
		"Split",
		"SplitBy",
		"SpokenString",
		"SpotLight",
		"Sqrt",
		"SqrtBox",
		"SqrtBoxOptions",
		"Square",
		"SquaredEuclideanDistance",
		"SquareFreeQ",
		"SquareIntersection",
		"SquareMatrixQ",
		"SquareRepeatingElement",
		"SquaresR",
		"SquareSubset",
		"SquareSubsetEqual",
		"SquareSuperset",
		"SquareSupersetEqual",
		"SquareUnion",
		"SquareWave",
		"SSSTriangle",
		"StabilityMargins",
		"StabilityMarginsStyle",
		"StableDistribution",
		"Stack",
		"StackBegin",
		"StackComplete",
		"StackedDateListPlot",
		"StackedListPlot",
		"StackInhibit",
		"StadiumShape",
		"StandardAtmosphereData",
		"StandardDeviation",
		"StandardDeviationFilter",
		"StandardForm",
		"Standardize",
		"Standardized",
		"StandardOceanData",
		"StandbyDistribution",
		"Star",
		"StarClusterData",
		"StarData",
		"StarGraph",
		"StartAsynchronousTask",
		"StartExternalSession",
		"StartingStepSize",
		"StartOfLine",
		"StartOfString",
		"StartProcess",
		"StartScheduledTask",
		"StartupSound",
		"StartWebSession",
		"StateDimensions",
		"StateFeedbackGains",
		"StateOutputEstimator",
		"StateResponse",
		"StateSpaceModel",
		"StateSpaceRealization",
		"StateSpaceTransform",
		"StateTransformationLinearize",
		"StationaryDistribution",
		"StationaryWaveletPacketTransform",
		"StationaryWaveletTransform",
		"StatusArea",
		"StatusCentrality",
		"StepMonitor",
		"StereochemistryElements",
		"StieltjesGamma",
		"StippleShading",
		"StirlingS1",
		"StirlingS2",
		"StopAsynchronousTask",
		"StoppingPowerData",
		"StopScheduledTask",
		"StrataVariables",
		"StratonovichProcess",
		"StraussHardcorePointProcess",
		"StraussPointProcess",
		"StreamColorFunction",
		"StreamColorFunctionScaling",
		"StreamDensityPlot",
		"StreamMarkers",
		"StreamPlot",
		"StreamPlot3D",
		"StreamPoints",
		"StreamPosition",
		"Streams",
		"StreamScale",
		"StreamStyle",
		"StrictInequalities",
		"String",
		"StringBreak",
		"StringByteCount",
		"StringCases",
		"StringContainsQ",
		"StringCount",
		"StringDelete",
		"StringDrop",
		"StringEndsQ",
		"StringExpression",
		"StringExtract",
		"StringForm",
		"StringFormat",
		"StringFormatQ",
		"StringFreeQ",
		"StringInsert",
		"StringJoin",
		"StringLength",
		"StringMatchQ",
		"StringPadLeft",
		"StringPadRight",
		"StringPart",
		"StringPartition",
		"StringPosition",
		"StringQ",
		"StringRepeat",
		"StringReplace",
		"StringReplaceList",
		"StringReplacePart",
		"StringReverse",
		"StringRiffle",
		"StringRotateLeft",
		"StringRotateRight",
		"StringSkeleton",
		"StringSplit",
		"StringStartsQ",
		"StringTake",
		"StringTakeDrop",
		"StringTemplate",
		"StringToByteArray",
		"StringToStream",
		"StringTrim",
		"StripBoxes",
		"StripOnInput",
		"StripStyleOnPaste",
		"StripWrapperBoxes",
		"StrokeForm",
		"Struckthrough",
		"StructuralImportance",
		"StructuredArray",
		"StructuredArrayHeadQ",
		"StructuredSelection",
		"StruveH",
		"StruveL",
		"Stub",
		"StudentTDistribution",
		"Style",
		"StyleBox",
		"StyleBoxAutoDelete",
		"StyleData",
		"StyleDefinitions",
		"StyleForm",
		"StyleHints",
		"StyleKeyMapping",
		"StyleMenuListing",
		"StyleNameDialogSettings",
		"StyleNames",
		"StylePrint",
		"StyleSheetPath",
		"Subdivide",
		"Subfactorial",
		"Subgraph",
		"SubMinus",
		"SubPlus",
		"SubresultantPolynomialRemainders",
		"SubresultantPolynomials",
		"Subresultants",
		"Subscript",
		"SubscriptBox",
		"SubscriptBoxOptions",
		"Subscripted",
		"Subsequences",
		"Subset",
		"SubsetCases",
		"SubsetCount",
		"SubsetEqual",
		"SubsetMap",
		"SubsetPosition",
		"SubsetQ",
		"SubsetReplace",
		"Subsets",
		"SubStar",
		"SubstitutionSystem",
		"Subsuperscript",
		"SubsuperscriptBox",
		"SubsuperscriptBoxOptions",
		"SubtitleEncoding",
		"SubtitleTrackSelection",
		"Subtract",
		"SubtractFrom",
		"SubtractSides",
		"SubValues",
		"Succeeds",
		"SucceedsEqual",
		"SucceedsSlantEqual",
		"SucceedsTilde",
		"Success",
		"SuchThat",
		"Sum",
		"SumConvergence",
		"SummationLayer",
		"Sunday",
		"SunPosition",
		"Sunrise",
		"Sunset",
		"SuperDagger",
		"SuperMinus",
		"SupernovaData",
		"SuperPlus",
		"Superscript",
		"SuperscriptBox",
		"SuperscriptBoxOptions",
		"Superset",
		"SupersetEqual",
		"SuperStar",
		"Surd",
		"SurdForm",
		"SurfaceAppearance",
		"SurfaceArea",
		"SurfaceColor",
		"SurfaceData",
		"SurfaceGraphics",
		"SurvivalDistribution",
		"SurvivalFunction",
		"SurvivalModel",
		"SurvivalModelFit",
		"SuspendPacket",
		"SuzukiDistribution",
		"SuzukiGroupSuz",
		"SwatchLegend",
		"Switch",
		"Symbol",
		"SymbolName",
		"SymletWavelet",
		"Symmetric",
		"SymmetricDifference",
		"SymmetricGroup",
		"SymmetricKey",
		"SymmetricMatrixQ",
		"SymmetricPolynomial",
		"SymmetricReduction",
		"Symmetrize",
		"SymmetrizedArray",
		"SymmetrizedArrayRules",
		"SymmetrizedDependentComponents",
		"SymmetrizedIndependentComponents",
		"SymmetrizedReplacePart",
		"SynchronousInitialization",
		"SynchronousUpdating",
		"Synonyms",
		"Syntax",
		"SyntaxForm",
		"SyntaxInformation",
		"SyntaxLength",
		"SyntaxPacket",
		"SyntaxQ",
		"SynthesizeMissingValues",
		"SystemCredential",
		"SystemCredentialData",
		"SystemCredentialKey",
		"SystemCredentialKeys",
		"SystemCredentialStoreObject",
		"SystemDialogInput",
		"SystemException",
		"SystemGet",
		"SystemHelpPath",
		"SystemInformation",
		"SystemInformationData",
		"SystemInstall",
		"SystemModel",
		"SystemModeler",
		"SystemModelExamples",
		"SystemModelLinearize",
		"SystemModelMeasurements",
		"SystemModelParametricSimulate",
		"SystemModelPlot",
		"SystemModelProgressReporting",
		"SystemModelReliability",
		"SystemModels",
		"SystemModelSimulate",
		"SystemModelSimulateSensitivity",
		"SystemModelSimulationData",
		"SystemOpen",
		"SystemOptions",
		"SystemProcessData",
		"SystemProcesses",
		"SystemsConnectionsModel",
		"SystemsModelControllerData",
		"SystemsModelDelay",
		"SystemsModelDelayApproximate",
		"SystemsModelDelete",
		"SystemsModelDimensions",
		"SystemsModelExtract",
		"SystemsModelFeedbackConnect",
		"SystemsModelLabels",
		"SystemsModelLinearity",
		"SystemsModelMerge",
		"SystemsModelOrder",
		"SystemsModelParallelConnect",
		"SystemsModelSeriesConnect",
		"SystemsModelStateFeedbackConnect",
		"SystemsModelVectorRelativeOrders",
		"SystemStub",
		"SystemTest",
		"Tab",
		"TabFilling",
		"Table",
		"TableAlignments",
		"TableDepth",
		"TableDirections",
		"TableForm",
		"TableHeadings",
		"TableSpacing",
		"TableView",
		"TableViewBox",
		"TableViewBoxAlignment",
		"TableViewBoxBackground",
		"TableViewBoxHeaders",
		"TableViewBoxItemSize",
		"TableViewBoxItemStyle",
		"TableViewBoxOptions",
		"TabSpacings",
		"TabView",
		"TabViewBox",
		"TabViewBoxOptions",
		"TagBox",
		"TagBoxNote",
		"TagBoxOptions",
		"TaggingRules",
		"TagSet",
		"TagSetDelayed",
		"TagStyle",
		"TagUnset",
		"Take",
		"TakeDrop",
		"TakeLargest",
		"TakeLargestBy",
		"TakeList",
		"TakeSmallest",
		"TakeSmallestBy",
		"TakeWhile",
		"Tally",
		"Tan",
		"Tanh",
		"TargetDevice",
		"TargetFunctions",
		"TargetSystem",
		"TargetUnits",
		"TaskAbort",
		"TaskExecute",
		"TaskObject",
		"TaskRemove",
		"TaskResume",
		"Tasks",
		"TaskSuspend",
		"TaskWait",
		"TautologyQ",
		"TelegraphProcess",
		"TemplateApply",
		"TemplateArgBox",
		"TemplateBox",
		"TemplateBoxOptions",
		"TemplateEvaluate",
		"TemplateExpression",
		"TemplateIf",
		"TemplateObject",
		"TemplateSequence",
		"TemplateSlot",
		"TemplateSlotSequence",
		"TemplateUnevaluated",
		"TemplateVerbatim",
		"TemplateWith",
		"TemporalData",
		"TemporalRegularity",
		"Temporary",
		"TemporaryVariable",
		"TensorContract",
		"TensorDimensions",
		"TensorExpand",
		"TensorProduct",
		"TensorQ",
		"TensorRank",
		"TensorReduce",
		"TensorSymmetry",
		"TensorTranspose",
		"TensorWedge",
		"TerminatedEvaluation",
		"TernaryListPlot",
		"TernaryPlotCorners",
		"TestID",
		"TestReport",
		"TestReportObject",
		"TestResultObject",
		"Tetrahedron",
		"TetrahedronBox",
		"TetrahedronBoxOptions",
		"TeXForm",
		"TeXSave",
		"Text",
		"Text3DBox",
		"Text3DBoxOptions",
		"TextAlignment",
		"TextBand",
		"TextBoundingBox",
		"TextBox",
		"TextCases",
		"TextCell",
		"TextClipboardType",
		"TextContents",
		"TextData",
		"TextElement",
		"TextForm",
		"TextGrid",
		"TextJustification",
		"TextLine",
		"TextPacket",
		"TextParagraph",
		"TextPosition",
		"TextRecognize",
		"TextSearch",
		"TextSearchReport",
		"TextSentences",
		"TextString",
		"TextStructure",
		"TextStyle",
		"TextTranslation",
		"Texture",
		"TextureCoordinateFunction",
		"TextureCoordinateScaling",
		"TextWords",
		"Therefore",
		"ThermodynamicData",
		"ThermometerGauge",
		"Thick",
		"Thickness",
		"Thin",
		"Thinning",
		"ThisLink",
		"ThomasPointProcess",
		"ThompsonGroupTh",
		"Thread",
		"Threaded",
		"ThreadingLayer",
		"ThreeJSymbol",
		"Threshold",
		"Through",
		"Throw",
		"ThueMorse",
		"Thumbnail",
		"Thursday",
		"TickDirection",
		"TickLabelOrientation",
		"TickLabelPositioning",
		"TickLabels",
		"TickLengths",
		"TickPositions",
		"Ticks",
		"TicksStyle",
		"TideData",
		"Tilde",
		"TildeEqual",
		"TildeFullEqual",
		"TildeTilde",
		"TimeConstrained",
		"TimeConstraint",
		"TimeDirection",
		"TimeFormat",
		"TimeGoal",
		"TimelinePlot",
		"TimeObject",
		"TimeObjectQ",
		"TimeRemaining",
		"Times",
		"TimesBy",
		"TimeSeries",
		"TimeSeriesAggregate",
		"TimeSeriesForecast",
		"TimeSeriesInsert",
		"TimeSeriesInvertibility",
		"TimeSeriesMap",
		"TimeSeriesMapThread",
		"TimeSeriesModel",
		"TimeSeriesModelFit",
		"TimeSeriesResample",
		"TimeSeriesRescale",
		"TimeSeriesShift",
		"TimeSeriesThread",
		"TimeSeriesWindow",
		"TimeSystem",
		"TimeSystemConvert",
		"TimeUsed",
		"TimeValue",
		"TimeWarpingCorrespondence",
		"TimeWarpingDistance",
		"TimeZone",
		"TimeZoneConvert",
		"TimeZoneOffset",
		"Timing",
		"Tiny",
		"TitleGrouping",
		"TitsGroupT",
		"ToBoxes",
		"ToCharacterCode",
		"ToColor",
		"ToContinuousTimeModel",
		"ToDate",
		"Today",
		"ToDiscreteTimeModel",
		"ToEntity",
		"ToeplitzMatrix",
		"ToExpression",
		"ToFileName",
		"Together",
		"Toggle",
		"ToggleFalse",
		"Toggler",
		"TogglerBar",
		"TogglerBox",
		"TogglerBoxOptions",
		"ToHeldExpression",
		"ToInvertibleTimeSeries",
		"TokenWords",
		"Tolerance",
		"ToLowerCase",
		"Tomorrow",
		"ToNumberField",
		"TooBig",
		"Tooltip",
		"TooltipBox",
		"TooltipBoxOptions",
		"TooltipDelay",
		"TooltipStyle",
		"ToonShading",
		"Top",
		"TopHatTransform",
		"ToPolarCoordinates",
		"TopologicalSort",
		"ToRadicals",
		"ToRawPointer",
		"ToRules",
		"Torus",
		"TorusGraph",
		"ToSphericalCoordinates",
		"ToString",
		"Total",
		"TotalHeight",
		"TotalLayer",
		"TotalVariationFilter",
		"TotalWidth",
		"TouchPosition",
		"TouchscreenAutoZoom",
		"TouchscreenControlPlacement",
		"ToUpperCase",
		"TourVideo",
		"Tr",
		"Trace",
		"TraceAbove",
		"TraceAction",
		"TraceBackward",
		"TraceDepth",
		"TraceDialog",
		"TraceForward",
		"TraceInternal",
		"TraceLevel",
		"TraceOff",
		"TraceOn",
		"TraceOriginal",
		"TracePrint",
		"TraceScan",
		"TrackCellChangeTimes",
		"TrackedSymbols",
		"TrackingFunction",
		"TracyWidomDistribution",
		"TradingChart",
		"TraditionalForm",
		"TraditionalFunctionNotation",
		"TraditionalNotation",
		"TraditionalOrder",
		"TrainImageContentDetector",
		"TrainingProgressCheckpointing",
		"TrainingProgressFunction",
		"TrainingProgressMeasurements",
		"TrainingProgressReporting",
		"TrainingStoppingCriterion",
		"TrainingUpdateSchedule",
		"TrainTextContentDetector",
		"TransferFunctionCancel",
		"TransferFunctionExpand",
		"TransferFunctionFactor",
		"TransferFunctionModel",
		"TransferFunctionPoles",
		"TransferFunctionTransform",
		"TransferFunctionZeros",
		"TransformationClass",
		"TransformationFunction",
		"TransformationFunctions",
		"TransformationMatrix",
		"TransformedDistribution",
		"TransformedField",
		"TransformedProcess",
		"TransformedRegion",
		"TransitionDirection",
		"TransitionDuration",
		"TransitionEffect",
		"TransitiveClosureGraph",
		"TransitiveReductionGraph",
		"Translate",
		"TranslationOptions",
		"TranslationTransform",
		"Transliterate",
		"Transparent",
		"TransparentColor",
		"Transpose",
		"TransposeLayer",
		"TrapEnterKey",
		"TrapSelection",
		"TravelDirections",
		"TravelDirectionsData",
		"TravelDistance",
		"TravelDistanceList",
		"TravelMethod",
		"TravelTime",
		"Tree",
		"TreeCases",
		"TreeChildren",
		"TreeCount",
		"TreeData",
		"TreeDelete",
		"TreeDepth",
		"TreeElementCoordinates",
		"TreeElementLabel",
		"TreeElementLabelFunction",
		"TreeElementLabelStyle",
		"TreeElementShape",
		"TreeElementShapeFunction",
		"TreeElementSize",
		"TreeElementSizeFunction",
		"TreeElementStyle",
		"TreeElementStyleFunction",
		"TreeExpression",
		"TreeExtract",
		"TreeFold",
		"TreeForm",
		"TreeGraph",
		"TreeGraphQ",
		"TreeInsert",
		"TreeLayout",
		"TreeLeafCount",
		"TreeLeafQ",
		"TreeLeaves",
		"TreeLevel",
		"TreeMap",
		"TreeMapAt",
		"TreeOutline",
		"TreePlot",
		"TreePosition",
		"TreeQ",
		"TreeReplacePart",
		"TreeRules",
		"TreeScan",
		"TreeSelect",
		"TreeSize",
		"TreeTraversalOrder",
		"TrendStyle",
		"Triangle",
		"TriangleCenter",
		"TriangleConstruct",
		"TriangleMeasurement",
		"TriangleWave",
		"TriangularDistribution",
		"TriangulateMesh",
		"Trig",
		"TrigExpand",
		"TrigFactor",
		"TrigFactorList",
		"Trigger",
		"TrigReduce",
		"TrigToExp",
		"TrimmedMean",
		"TrimmedVariance",
		"TropicalStormData",
		"True",
		"TrueQ",
		"TruncatedDistribution",
		"TruncatedPolyhedron",
		"TsallisQExponentialDistribution",
		"TsallisQGaussianDistribution",
		"TTest",
		"Tube",
		"TubeBezierCurveBox",
		"TubeBezierCurveBoxOptions",
		"TubeBox",
		"TubeBoxOptions",
		"TubeBSplineCurveBox",
		"TubeBSplineCurveBoxOptions",
		"Tuesday",
		"TukeyLambdaDistribution",
		"TukeyWindow",
		"TunnelData",
		"Tuples",
		"TuranGraph",
		"TuringMachine",
		"TuttePolynomial",
		"TwoWayRule",
		"Typed",
		"TypeDeclaration",
		"TypeEvaluate",
		"TypeHint",
		"TypeOf",
		"TypeSpecifier",
		"UnateQ",
		"Uncompress",
		"UnconstrainedParameters",
		"Undefined",
		"UnderBar",
		"Underflow",
		"Underlined",
		"Underoverscript",
		"UnderoverscriptBox",
		"UnderoverscriptBoxOptions",
		"Underscript",
		"UnderscriptBox",
		"UnderscriptBoxOptions",
		"UnderseaFeatureData",
		"UndirectedEdge",
		"UndirectedGraph",
		"UndirectedGraphQ",
		"UndoOptions",
		"UndoTrackedVariables",
		"Unequal",
		"UnequalTo",
		"Unevaluated",
		"UniformDistribution",
		"UniformGraphDistribution",
		"UniformPolyhedron",
		"UniformSumDistribution",
		"Uninstall",
		"Union",
		"UnionedEntityClass",
		"UnionPlus",
		"Unique",
		"UniqueElements",
		"UnitaryMatrixQ",
		"UnitBox",
		"UnitConvert",
		"UnitDimensions",
		"Unitize",
		"UnitRootTest",
		"UnitSimplify",
		"UnitStep",
		"UnitSystem",
		"UnitTriangle",
		"UnitVector",
		"UnitVectorLayer",
		"UnityDimensions",
		"UniverseModelData",
		"UniversityData",
		"UnixTime",
		"UnlabeledTree",
		"UnmanageObject",
		"Unprotect",
		"UnregisterExternalEvaluator",
		"UnsameQ",
		"UnsavedVariables",
		"Unset",
		"UnsetShared",
		"Until",
		"UntrackedVariables",
		"Up",
		"UpArrow",
		"UpArrowBar",
		"UpArrowDownArrow",
		"Update",
		"UpdateDynamicObjects",
		"UpdateDynamicObjectsSynchronous",
		"UpdateInterval",
		"UpdatePacletSites",
		"UpdateSearchIndex",
		"UpDownArrow",
		"UpEquilibrium",
		"UpperCaseQ",
		"UpperLeftArrow",
		"UpperRightArrow",
		"UpperTriangularize",
		"UpperTriangularMatrix",
		"UpperTriangularMatrixQ",
		"Upsample",
		"UpSet",
		"UpSetDelayed",
		"UpTee",
		"UpTeeArrow",
		"UpTo",
		"UpValues",
		"URL",
		"URLBuild",
		"URLDecode",
		"URLDispatcher",
		"URLDownload",
		"URLDownloadSubmit",
		"URLEncode",
		"URLExecute",
		"URLExpand",
		"URLFetch",
		"URLFetchAsynchronous",
		"URLParse",
		"URLQueryDecode",
		"URLQueryEncode",
		"URLRead",
		"URLResponseTime",
		"URLSave",
		"URLSaveAsynchronous",
		"URLShorten",
		"URLSubmit",
		"UseEmbeddedLibrary",
		"UseGraphicsRange",
		"UserDefinedWavelet",
		"Using",
		"UsingFrontEnd",
		"UtilityFunction",
		"V2Get",
		"ValenceErrorHandling",
		"ValenceFilling",
		"ValidationLength",
		"ValidationSet",
		"ValueBox",
		"ValueBoxOptions",
		"ValueDimensions",
		"ValueForm",
		"ValuePreprocessingFunction",
		"ValueQ",
		"Values",
		"ValuesData",
		"VandermondeMatrix",
		"Variables",
		"Variance",
		"VarianceEquivalenceTest",
		"VarianceEstimatorFunction",
		"VarianceGammaDistribution",
		"VarianceGammaPointProcess",
		"VarianceTest",
		"VariogramFunction",
		"VariogramModel",
		"VectorAngle",
		"VectorAround",
		"VectorAspectRatio",
		"VectorColorFunction",
		"VectorColorFunctionScaling",
		"VectorDensityPlot",
		"VectorDisplacementPlot",
		"VectorDisplacementPlot3D",
		"VectorGlyphData",
		"VectorGreater",
		"VectorGreaterEqual",
		"VectorLess",
		"VectorLessEqual",
		"VectorMarkers",
		"VectorPlot",
		"VectorPlot3D",
		"VectorPoints",
		"VectorQ",
		"VectorRange",
		"Vectors",
		"VectorScale",
		"VectorScaling",
		"VectorSizes",
		"VectorStyle",
		"Vee",
		"Verbatim",
		"Verbose",
		"VerificationTest",
		"VerifyConvergence",
		"VerifyDerivedKey",
		"VerifyDigitalSignature",
		"VerifyFileSignature",
		"VerifyInterpretation",
		"VerifySecurityCertificates",
		"VerifySolutions",
		"VerifyTestAssumptions",
		"VersionedPreferences",
		"VertexAdd",
		"VertexCapacity",
		"VertexChromaticNumber",
		"VertexColors",
		"VertexComponent",
		"VertexConnectivity",
		"VertexContract",
		"VertexCoordinateRules",
		"VertexCoordinates",
		"VertexCorrelationSimilarity",
		"VertexCosineSimilarity",
		"VertexCount",
		"VertexCoverQ",
		"VertexDataCoordinates",
		"VertexDegree",
		"VertexDelete",
		"VertexDiceSimilarity",
		"VertexEccentricity",
		"VertexInComponent",
		"VertexInComponentGraph",
		"VertexInDegree",
		"VertexIndex",
		"VertexJaccardSimilarity",
		"VertexLabeling",
		"VertexLabels",
		"VertexLabelStyle",
		"VertexList",
		"VertexNormals",
		"VertexOutComponent",
		"VertexOutComponentGraph",
		"VertexOutDegree",
		"VertexQ",
		"VertexRenderingFunction",
		"VertexReplace",
		"VertexShape",
		"VertexShapeFunction",
		"VertexSize",
		"VertexStyle",
		"VertexTextureCoordinates",
		"VertexTransitiveGraphQ",
		"VertexWeight",
		"VertexWeightedGraphQ",
		"Vertical",
		"VerticalBar",
		"VerticalForm",
		"VerticalGauge",
		"VerticalSeparator",
		"VerticalSlider",
		"VerticalTilde",
		"Video",
		"VideoCapture",
		"VideoCombine",
		"VideoDelete",
		"VideoEncoding",
		"VideoExtractFrames",
		"VideoFrameList",
		"VideoFrameMap",
		"VideoGenerator",
		"VideoInsert",
		"VideoIntervals",
		"VideoJoin",
		"VideoMap",
		"VideoMapList",
		"VideoMapTimeSeries",
		"VideoPadding",
		"VideoPause",
		"VideoPlay",
		"VideoQ",
		"VideoRecord",
		"VideoReplace",
		"VideoScreenCapture",
		"VideoSplit",
		"VideoStop",
		"VideoStream",
		"VideoStreams",
		"VideoTimeStretch",
		"VideoTrackSelection",
		"VideoTranscode",
		"VideoTransparency",
		"VideoTrim",
		"ViewAngle",
		"ViewCenter",
		"ViewMatrix",
		"ViewPoint",
		"ViewPointSelectorSettings",
		"ViewPort",
		"ViewProjection",
		"ViewRange",
		"ViewVector",
		"ViewVertical",
		"VirtualGroupData",
		"Visible",
		"VisibleCell",
		"VoiceStyleData",
		"VoigtDistribution",
		"VolcanoData",
		"Volume",
		"VonMisesDistribution",
		"VoronoiMesh",
		"WaitAll",
		"WaitAsynchronousTask",
		"WaitNext",
		"WaitUntil",
		"WakebyDistribution",
		"WalleniusHypergeometricDistribution",
		"WaringYuleDistribution",
		"WarpingCorrespondence",
		"WarpingDistance",
		"WatershedComponents",
		"WatsonUSquareTest",
		"WattsStrogatzGraphDistribution",
		"WaveletBestBasis",
		"WaveletFilterCoefficients",
		"WaveletImagePlot",
		"WaveletListPlot",
		"WaveletMapIndexed",
		"WaveletMatrixPlot",
		"WaveletPhi",
		"WaveletPsi",
		"WaveletScale",
		"WaveletScalogram",
		"WaveletThreshold",
		"WavePDEComponent",
		"WeaklyConnectedComponents",
		"WeaklyConnectedGraphComponents",
		"WeaklyConnectedGraphQ",
		"WeakStationarity",
		"WeatherData",
		"WeatherForecastData",
		"WebAudioSearch",
		"WebColumn",
		"WebElementObject",
		"WeberE",
		"WebExecute",
		"WebImage",
		"WebImageSearch",
		"WebItem",
		"WebPageMetaInformation",
		"WebRow",
		"WebSearch",
		"WebSessionObject",
		"WebSessions",
		"WebWindowObject",
		"Wedge",
		"Wednesday",
		"WeibullDistribution",
		"WeierstrassE1",
		"WeierstrassE2",
		"WeierstrassE3",
		"WeierstrassEta1",
		"WeierstrassEta2",
		"WeierstrassEta3",
		"WeierstrassHalfPeriods",
		"WeierstrassHalfPeriodW1",
		"WeierstrassHalfPeriodW2",
		"WeierstrassHalfPeriodW3",
		"WeierstrassInvariantG2",
		"WeierstrassInvariantG3",
		"WeierstrassInvariants",
		"WeierstrassP",
		"WeierstrassPPrime",
		"WeierstrassSigma",
		"WeierstrassZeta",
		"WeightedAdjacencyGraph",
		"WeightedAdjacencyMatrix",
		"WeightedData",
		"WeightedGraphQ",
		"Weights",
		"WelchWindow",
		"WheelGraph",
		"WhenEvent",
		"Which",
		"While",
		"White",
		"WhiteNoiseProcess",
		"WhitePoint",
		"Whitespace",
		"WhitespaceCharacter",
		"WhittakerM",
		"WhittakerW",
		"WholeCellGroupOpener",
		"WienerFilter",
		"WienerProcess",
		"WignerD",
		"WignerSemicircleDistribution",
		"WikidataData",
		"WikidataSearch",
		"WikipediaData",
		"WikipediaSearch",
		"WilksW",
		"WilksWTest",
		"WindDirectionData",
		"WindingCount",
		"WindingPolygon",
		"WindowClickSelect",
		"WindowElements",
		"WindowFloating",
		"WindowFrame",
		"WindowFrameElements",
		"WindowMargins",
		"WindowMovable",
		"WindowOpacity",
		"WindowPersistentStyles",
		"WindowSelected",
		"WindowSize",
		"WindowStatusArea",
		"WindowTitle",
		"WindowToolbars",
		"WindowWidth",
		"WindSpeedData",
		"WindVectorData",
		"WinsorizedMean",
		"WinsorizedVariance",
		"WishartMatrixDistribution",
		"With",
		"WithCleanup",
		"WithLock",
		"WolframAlpha",
		"WolframAlphaDate",
		"WolframAlphaQuantity",
		"WolframAlphaResult",
		"WolframCloudSettings",
		"WolframLanguageData",
		"Word",
		"WordBoundary",
		"WordCharacter",
		"WordCloud",
		"WordCount",
		"WordCounts",
		"WordData",
		"WordDefinition",
		"WordFrequency",
		"WordFrequencyData",
		"WordList",
		"WordOrientation",
		"WordSearch",
		"WordSelectionFunction",
		"WordSeparators",
		"WordSpacings",
		"WordStem",
		"WordTranslation",
		"WorkingPrecision",
		"WrapAround",
		"Write",
		"WriteLine",
		"WriteString",
		"Wronskian",
		"XMLElement",
		"XMLObject",
		"XMLTemplate",
		"Xnor",
		"Xor",
		"XYZColor",
		"Yellow",
		"Yesterday",
		"YuleDissimilarity",
		"ZernikeR",
		"ZeroSymmetric",
		"ZeroTest",
		"ZeroWidthTimes",
		"Zeta",
		"ZetaZero",
		"ZIPCodeData",
		"ZipfDistribution",
		"ZoomCenter",
		"ZoomFactor",
		"ZTest",
		"ZTransform",
		"$Aborted",
		"$ActivationGroupID",
		"$ActivationKey",
		"$ActivationUserRegistered",
		"$AddOnsDirectory",
		"$AllowDataUpdates",
		"$AllowExternalChannelFunctions",
		"$AllowInternet",
		"$AssertFunction",
		"$Assumptions",
		"$AsynchronousTask",
		"$AudioDecoders",
		"$AudioEncoders",
		"$AudioInputDevices",
		"$AudioOutputDevices",
		"$BaseDirectory",
		"$BasePacletsDirectory",
		"$BatchInput",
		"$BatchOutput",
		"$BlockchainBase",
		"$BoxForms",
		"$ByteOrdering",
		"$CacheBaseDirectory",
		"$Canceled",
		"$ChannelBase",
		"$CharacterEncoding",
		"$CharacterEncodings",
		"$CloudAccountName",
		"$CloudBase",
		"$CloudConnected",
		"$CloudConnection",
		"$CloudCreditsAvailable",
		"$CloudEvaluation",
		"$CloudExpressionBase",
		"$CloudObjectNameFormat",
		"$CloudObjectURLType",
		"$CloudRootDirectory",
		"$CloudSymbolBase",
		"$CloudUserID",
		"$CloudUserUUID",
		"$CloudVersion",
		"$CloudVersionNumber",
		"$CloudWolframEngineVersionNumber",
		"$CommandLine",
		"$CompilationTarget",
		"$CompilerEnvironment",
		"$ConditionHold",
		"$ConfiguredKernels",
		"$Context",
		"$ContextAliases",
		"$ContextPath",
		"$ControlActiveSetting",
		"$Cookies",
		"$CookieStore",
		"$CreationDate",
		"$CryptographicEllipticCurveNames",
		"$CurrentLink",
		"$CurrentTask",
		"$CurrentWebSession",
		"$DataStructures",
		"$DateStringFormat",
		"$DefaultAudioInputDevice",
		"$DefaultAudioOutputDevice",
		"$DefaultFont",
		"$DefaultFrontEnd",
		"$DefaultImagingDevice",
		"$DefaultKernels",
		"$DefaultLocalBase",
		"$DefaultLocalKernel",
		"$DefaultMailbox",
		"$DefaultNetworkInterface",
		"$DefaultPath",
		"$DefaultProxyRules",
		"$DefaultRemoteBatchSubmissionEnvironment",
		"$DefaultRemoteKernel",
		"$DefaultSystemCredentialStore",
		"$Display",
		"$DisplayFunction",
		"$DistributedContexts",
		"$DynamicEvaluation",
		"$Echo",
		"$EmbedCodeEnvironments",
		"$EmbeddableServices",
		"$EntityStores",
		"$Epilog",
		"$EvaluationCloudBase",
		"$EvaluationCloudObject",
		"$EvaluationEnvironment",
		"$ExportFormats",
		"$ExternalIdentifierTypes",
		"$ExternalStorageBase",
		"$Failed",
		"$FinancialDataSource",
		"$FontFamilies",
		"$FormatType",
		"$FrontEnd",
		"$FrontEndSession",
		"$GeneratedAssetLocation",
		"$GeoEntityTypes",
		"$GeoLocation",
		"$GeoLocationCity",
		"$GeoLocationCountry",
		"$GeoLocationPrecision",
		"$GeoLocationSource",
		"$HistoryLength",
		"$HomeDirectory",
		"$HTMLExportRules",
		"$HTTPCookies",
		"$HTTPRequest",
		"$IgnoreEOF",
		"$ImageFormattingWidth",
		"$ImageResolution",
		"$ImagingDevice",
		"$ImagingDevices",
		"$ImportFormats",
		"$IncomingMailSettings",
		"$InitialDirectory",
		"$Initialization",
		"$InitializationContexts",
		"$Input",
		"$InputFileName",
		"$InputStreamMethods",
		"$Inspector",
		"$InstallationDate",
		"$InstallationDirectory",
		"$InterfaceEnvironment",
		"$InterpreterTypes",
		"$IterationLimit",
		"$KernelCount",
		"$KernelID",
		"$Language",
		"$LaunchDirectory",
		"$LibraryPath",
		"$LicenseExpirationDate",
		"$LicenseID",
		"$LicenseProcesses",
		"$LicenseServer",
		"$LicenseSubprocesses",
		"$LicenseType",
		"$Line",
		"$Linked",
		"$LinkSupported",
		"$LoadedFiles",
		"$LocalBase",
		"$LocalSymbolBase",
		"$MachineAddresses",
		"$MachineDomain",
		"$MachineDomains",
		"$MachineEpsilon",
		"$MachineID",
		"$MachineName",
		"$MachinePrecision",
		"$MachineType",
		"$MaxDisplayedChildren",
		"$MaxExtraPrecision",
		"$MaxLicenseProcesses",
		"$MaxLicenseSubprocesses",
		"$MaxMachineNumber",
		"$MaxNumber",
		"$MaxPiecewiseCases",
		"$MaxPrecision",
		"$MaxRootDegree",
		"$MessageGroups",
		"$MessageList",
		"$MessagePrePrint",
		"$Messages",
		"$MinMachineNumber",
		"$MinNumber",
		"$MinorReleaseNumber",
		"$MinPrecision",
		"$MobilePhone",
		"$ModuleNumber",
		"$NetworkConnected",
		"$NetworkInterfaces",
		"$NetworkLicense",
		"$NewMessage",
		"$NewSymbol",
		"$NotebookInlineStorageLimit",
		"$Notebooks",
		"$NoValue",
		"$NumberMarks",
		"$Off",
		"$OperatingSystem",
		"$Output",
		"$OutputForms",
		"$OutputSizeLimit",
		"$OutputStreamMethods",
		"$Packages",
		"$ParentLink",
		"$ParentProcessID",
		"$PasswordFile",
		"$PatchLevelID",
		"$Path",
		"$PathnameSeparator",
		"$PerformanceGoal",
		"$Permissions",
		"$PermissionsGroupBase",
		"$PersistenceBase",
		"$PersistencePath",
		"$PipeSupported",
		"$PlotTheme",
		"$Post",
		"$Pre",
		"$PreferencesDirectory",
		"$PreInitialization",
		"$PrePrint",
		"$PreRead",
		"$PrintForms",
		"$PrintLiteral",
		"$Printout3DPreviewer",
		"$ProcessID",
		"$ProcessorCount",
		"$ProcessorType",
		"$ProductInformation",
		"$ProgramName",
		"$ProgressReporting",
		"$PublisherID",
		"$RandomGeneratorState",
		"$RandomState",
		"$RecursionLimit",
		"$RegisteredDeviceClasses",
		"$RegisteredUserName",
		"$ReleaseNumber",
		"$RequesterAddress",
		"$RequesterCloudUserID",
		"$RequesterCloudUserUUID",
		"$RequesterWolframID",
		"$RequesterWolframUUID",
		"$ResourceSystemBase",
		"$ResourceSystemPath",
		"$RootDirectory",
		"$ScheduledTask",
		"$ScriptCommandLine",
		"$ScriptInputString",
		"$SecuredAuthenticationKeyTokens",
		"$ServiceCreditsAvailable",
		"$Services",
		"$SessionID",
		"$SetParentLink",
		"$SharedFunctions",
		"$SharedVariables",
		"$SoundDisplay",
		"$SoundDisplayFunction",
		"$SourceLink",
		"$SSHAuthentication",
		"$SubtitleDecoders",
		"$SubtitleEncoders",
		"$SummaryBoxDataSizeLimit",
		"$SuppressInputFormHeads",
		"$SynchronousEvaluation",
		"$SyntaxHandler",
		"$System",
		"$SystemCharacterEncoding",
		"$SystemCredentialStore",
		"$SystemID",
		"$SystemMemory",
		"$SystemShell",
		"$SystemTimeZone",
		"$SystemWordLength",
		"$TargetSystems",
		"$TemplatePath",
		"$TemporaryDirectory",
		"$TemporaryPrefix",
		"$TestFileName",
		"$TextStyle",
		"$TimedOut",
		"$TimeUnit",
		"$TimeZone",
		"$TimeZoneEntity",
		"$TopDirectory",
		"$TraceOff",
		"$TraceOn",
		"$TracePattern",
		"$TracePostAction",
		"$TracePreAction",
		"$UnitSystem",
		"$Urgent",
		"$UserAddOnsDirectory",
		"$UserAgentLanguages",
		"$UserAgentMachine",
		"$UserAgentName",
		"$UserAgentOperatingSystem",
		"$UserAgentString",
		"$UserAgentVersion",
		"$UserBaseDirectory",
		"$UserBasePacletsDirectory",
		"$UserDocumentsDirectory",
		"$Username",
		"$UserName",
		"$UserURLBase",
		"$Version",
		"$VersionNumber",
		"$VideoDecoders",
		"$VideoEncoders",
		"$VoiceStyles",
		"$WolframDocumentsDirectory",
		"$WolframID",
		"$WolframUUID"
	];
	/** @type LanguageFn */
	function mathematica(hljs$1) {
		const regex = hljs$1.regex;
		const BASE_RE = /([2-9]|[1-2]\d|[3][0-5])\^\^/;
		const BASE_DIGITS_RE = /(\w*\.\w+|\w+\.\w*|\w+)/;
		const NUMBER_RE$2 = /(\d*\.\d+|\d+\.\d*|\d+)/;
		const BASE_NUMBER_RE = regex.either(regex.concat(BASE_RE, BASE_DIGITS_RE), NUMBER_RE$2);
		const ACCURACY_RE = /``[+-]?(\d*\.\d+|\d+\.\d*|\d+)/;
		const PRECISION_RE = /`([+-]?(\d*\.\d+|\d+\.\d*|\d+))?/;
		const APPROXIMATE_NUMBER_RE = regex.either(ACCURACY_RE, PRECISION_RE);
		const SCIENTIFIC_NOTATION_RE = /\*\^[+-]?\d+/;
		const MATHEMATICA_NUMBER_RE = regex.concat(BASE_NUMBER_RE, regex.optional(APPROXIMATE_NUMBER_RE), regex.optional(SCIENTIFIC_NOTATION_RE));
		const NUMBERS = {
			className: "number",
			relevance: 0,
			begin: MATHEMATICA_NUMBER_RE
		};
		const SYMBOL_RE = /[a-zA-Z$][a-zA-Z0-9$]*/;
		const SYSTEM_SYMBOLS_SET = new Set(SYSTEM_SYMBOLS);
		/** @type {Mode} */
		const SYMBOLS = { variants: [{
			className: "builtin-symbol",
			begin: SYMBOL_RE,
			"on:begin": (match, response) => {
				if (!SYSTEM_SYMBOLS_SET.has(match[0])) response.ignoreMatch();
			}
		}, {
			className: "symbol",
			relevance: 0,
			begin: SYMBOL_RE
		}] };
		const NAMED_CHARACTER = {
			className: "named-character",
			begin: /\\\[[$a-zA-Z][$a-zA-Z0-9]+\]/
		};
		const OPERATORS = {
			className: "operator",
			relevance: 0,
			begin: /[+\-*/,;.:@~=><&|_`'^?!%]+/
		};
		const PATTERNS = {
			className: "pattern",
			relevance: 0,
			begin: /([a-zA-Z$][a-zA-Z0-9$]*)?_+([a-zA-Z$][a-zA-Z0-9$]*)?/
		};
		const SLOTS = {
			className: "slot",
			relevance: 0,
			begin: /#[a-zA-Z$][a-zA-Z0-9$]*|#+[0-9]?/
		};
		const BRACES = {
			className: "brace",
			relevance: 0,
			begin: /[[\](){}]/
		};
		const MESSAGES = {
			className: "message-name",
			relevance: 0,
			begin: regex.concat("::", SYMBOL_RE)
		};
		return {
			name: "Mathematica",
			aliases: ["mma", "wl"],
			classNameAliases: {
				brace: "punctuation",
				pattern: "type",
				slot: "type",
				symbol: "variable",
				"named-character": "variable",
				"builtin-symbol": "built_in",
				"message-name": "string"
			},
			contains: [
				hljs$1.COMMENT(/\(\*/, /\*\)/, { contains: ["self"] }),
				PATTERNS,
				SLOTS,
				MESSAGES,
				SYMBOLS,
				NAMED_CHARACTER,
				hljs$1.QUOTE_STRING_MODE,
				NUMBERS,
				OPERATORS,
				BRACES
			]
		};
	}
	module.exports = mathematica;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/matlab.js
var require_matlab = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function matlab(hljs$1) {
		const TRANSPOSE_RE = "('|\\.')+";
		const TRANSPOSE = {
			relevance: 0,
			contains: [{ begin: TRANSPOSE_RE }]
		};
		return {
			name: "Matlab",
			keywords: {
				keyword: "arguments break case catch classdef continue else elseif end enumeration events for function " + "global if methods otherwise parfor persistent properties return spmd switch try while",
				built_in: "sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan " + "atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot " + "cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog " + "realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal " + "cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli " + "besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma " + "gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms " + "nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones " + "eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length " + "ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril " + "triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute " + "shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i|0 inf nan " + "isnan isinf isfinite j|0 why compan gallery hadamard hankel hilb invhilb magic pascal " + "rosser toeplitz vander wilkinson max min nanmax nanmin mean nanmean type table " + "readtable writetable sortrows sort figure plot plot3 scatter scatter3 cellfun " + "legend intersect ismember procrustes hold num2cell "
			},
			illegal: "(//|\"|#|/\\*|\\s+/\\w+)",
			contains: [
				{
					className: "function",
					beginKeywords: "function",
					end: "$",
					contains: [hljs$1.UNDERSCORE_TITLE_MODE, {
						className: "params",
						variants: [{
							begin: "\\(",
							end: "\\)"
						}, {
							begin: "\\[",
							end: "\\]"
						}]
					}]
				},
				{
					className: "built_in",
					begin: /true|false/,
					relevance: 0,
					starts: TRANSPOSE
				},
				{
					begin: "[a-zA-Z][a-zA-Z_0-9]*" + TRANSPOSE_RE,
					relevance: 0
				},
				{
					className: "number",
					begin: hljs$1.C_NUMBER_RE,
					relevance: 0,
					starts: TRANSPOSE
				},
				{
					className: "string",
					begin: "'",
					end: "'",
					contains: [{ begin: "''" }]
				},
				{
					begin: /\]|\}|\)/,
					relevance: 0,
					starts: TRANSPOSE
				},
				{
					className: "string",
					begin: "\"",
					end: "\"",
					contains: [{ begin: "\"\"" }],
					starts: TRANSPOSE
				},
				hljs$1.COMMENT("^\\s*%\\{\\s*$", "^\\s*%\\}\\s*$"),
				hljs$1.COMMENT("%", "$")
			]
		};
	}
	module.exports = matlab;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/maxima.js
var require_maxima = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function maxima(hljs$1) {
		const KEYWORDS$6 = "if then else elseif for thru do while unless step in and or not";
		const LITERALS$6 = "true false unknown inf minf ind und %e %i %pi %phi %gamma";
		const BUILTIN_FUNCTIONS = " abasep abs absint absolute_real_time acos acosh acot acoth acsc acsch activate" + " addcol add_edge add_edges addmatrices addrow add_vertex add_vertices adjacency_matrix" + " adjoin adjoint af agd airy airy_ai airy_bi airy_dai airy_dbi algsys alg_type" + " alias allroots alphacharp alphanumericp amortization %and annuity_fv" + " annuity_pv antid antidiff AntiDifference append appendfile apply apply1 apply2" + " applyb1 apropos args arit_amortization arithmetic arithsum array arrayapply" + " arrayinfo arraymake arraysetapply ascii asec asech asin asinh askinteger" + " asksign assoc assoc_legendre_p assoc_legendre_q assume assume_external_byte_order" + " asympa at atan atan2 atanh atensimp atom atvalue augcoefmatrix augmented_lagrangian_method" + " av average_degree backtrace bars barsplot barsplot_description base64 base64_decode" + " bashindices batch batchload bc2 bdvac belln benefit_cost bern bernpoly bernstein_approx" + " bernstein_expand bernstein_poly bessel bessel_i bessel_j bessel_k bessel_simplify" + " bessel_y beta beta_incomplete beta_incomplete_generalized beta_incomplete_regularized" + " bezout bfallroots bffac bf_find_root bf_fmin_cobyla bfhzeta bfloat bfloatp" + " bfpsi bfpsi0 bfzeta biconnected_components bimetric binomial bipartition" + " block blockmatrixp bode_gain bode_phase bothcoef box boxplot boxplot_description" + " break bug_report build_info|10 buildq build_sample burn cabs canform canten" + " cardinality carg cartan cartesian_product catch cauchy_matrix cbffac cdf_bernoulli" + " cdf_beta cdf_binomial cdf_cauchy cdf_chi2 cdf_continuous_uniform cdf_discrete_uniform" + " cdf_exp cdf_f cdf_gamma cdf_general_finite_discrete cdf_geometric cdf_gumbel" + " cdf_hypergeometric cdf_laplace cdf_logistic cdf_lognormal cdf_negative_binomial" + " cdf_noncentral_chi2 cdf_noncentral_student_t cdf_normal cdf_pareto cdf_poisson" + " cdf_rank_sum cdf_rayleigh cdf_signed_rank cdf_student_t cdf_weibull cdisplay" + " ceiling central_moment cequal cequalignore cf cfdisrep cfexpand cgeodesic" + " cgreaterp cgreaterpignore changename changevar chaosgame charat charfun charfun2" + " charlist charp charpoly chdir chebyshev_t chebyshev_u checkdiv check_overlaps" + " chinese cholesky christof chromatic_index chromatic_number cint circulant_graph" + " clear_edge_weight clear_rules clear_vertex_label clebsch_gordan clebsch_graph" + " clessp clesspignore close closefile cmetric coeff coefmatrix cograd col collapse" + " collectterms columnop columnspace columnswap columnvector combination combine" + " comp2pui compare compfile compile compile_file complement_graph complete_bipartite_graph" + " complete_graph complex_number_p components compose_functions concan concat" + " conjugate conmetderiv connected_components connect_vertices cons constant" + " constantp constituent constvalue cont2part content continuous_freq contortion" + " contour_plot contract contract_edge contragrad contrib_ode convert coord" + " copy copy_file copy_graph copylist copymatrix cor cos cosh cot coth cov cov1" + " covdiff covect covers crc24sum create_graph create_list csc csch csetup cspline" + " ctaylor ct_coordsys ctransform ctranspose cube_graph cuboctahedron_graph" + " cunlisp cv cycle_digraph cycle_graph cylindrical days360 dblint deactivate" + " declare declare_constvalue declare_dimensions declare_fundamental_dimensions" + " declare_fundamental_units declare_qty declare_translated declare_unit_conversion" + " declare_units declare_weights decsym defcon define define_alt_display define_variable" + " defint defmatch defrule defstruct deftaylor degree_sequence del delete deleten" + " delta demo demoivre denom depends derivdegree derivlist describe desolve" + " determinant dfloat dgauss_a dgauss_b dgeev dgemm dgeqrf dgesv dgesvd diag" + " diagmatrix diag_matrix diagmatrixp diameter diff digitcharp dimacs_export" + " dimacs_import dimension dimensionless dimensions dimensions_as_list direct" + " directory discrete_freq disjoin disjointp disolate disp dispcon dispform" + " dispfun dispJordan display disprule dispterms distrib divide divisors divsum" + " dkummer_m dkummer_u dlange dodecahedron_graph dotproduct dotsimp dpart" + " draw draw2d draw3d drawdf draw_file draw_graph dscalar echelon edge_coloring" + " edge_connectivity edges eigens_by_jacobi eigenvalues eigenvectors eighth" + " einstein eivals eivects elapsed_real_time elapsed_run_time ele2comp ele2polynome" + " ele2pui elem elementp elevation_grid elim elim_allbut eliminate eliminate_using" + " ellipse elliptic_e elliptic_ec elliptic_eu elliptic_f elliptic_kc elliptic_pi" + " ematrix empty_graph emptyp endcons entermatrix entertensor entier equal equalp" + " equiv_classes erf erfc erf_generalized erfi errcatch error errormsg errors" + " euler ev eval_string evenp every evolution evolution2d evundiff example exp" + " expand expandwrt expandwrt_factored expint expintegral_chi expintegral_ci" + " expintegral_e expintegral_e1 expintegral_ei expintegral_e_simplify expintegral_li" + " expintegral_shi expintegral_si explicit explose exponentialize express expt" + " exsec extdiff extract_linear_equations extremal_subset ezgcd %f f90 facsum" + " factcomb factor factorfacsum factorial factorout factorsum facts fast_central_elements" + " fast_linsolve fasttimes featurep fernfale fft fib fibtophi fifth filename_merge" + " file_search file_type fillarray findde find_root find_root_abs find_root_error" + " find_root_rel first fix flatten flength float floatnump floor flower_snark" + " flush flush1deriv flushd flushnd flush_output fmin_cobyla forget fortran" + " fourcos fourexpand fourier fourier_elim fourint fourintcos fourintsin foursimp" + " foursin fourth fposition frame_bracket freeof freshline fresnel_c fresnel_s" + " from_adjacency_matrix frucht_graph full_listify fullmap fullmapl fullratsimp" + " fullratsubst fullsetify funcsolve fundamental_dimensions fundamental_units" + " fundef funmake funp fv g0 g1 gamma gamma_greek gamma_incomplete gamma_incomplete_generalized" + " gamma_incomplete_regularized gauss gauss_a gauss_b gaussprob gcd gcdex gcdivide" + " gcfac gcfactor gd generalized_lambert_w genfact gen_laguerre genmatrix gensym" + " geo_amortization geo_annuity_fv geo_annuity_pv geomap geometric geometric_mean" + " geosum get getcurrentdirectory get_edge_weight getenv get_lu_factors get_output_stream_string" + " get_pixel get_plot_option get_tex_environment get_tex_environment_default" + " get_vertex_label gfactor gfactorsum ggf girth global_variances gn gnuplot_close" + " gnuplot_replot gnuplot_reset gnuplot_restart gnuplot_start go Gosper GosperSum" + " gr2d gr3d gradef gramschmidt graph6_decode graph6_encode graph6_export graph6_import" + " graph_center graph_charpoly graph_eigenvalues graph_flow graph_order graph_periphery" + " graph_product graph_size graph_union great_rhombicosidodecahedron_graph great_rhombicuboctahedron_graph" + " grid_graph grind grobner_basis grotzch_graph hamilton_cycle hamilton_path" + " hankel hankel_1 hankel_2 harmonic harmonic_mean hav heawood_graph hermite" + " hessian hgfred hilbertmap hilbert_matrix hipow histogram histogram_description" + " hodge horner hypergeometric i0 i1 %ibes ic1 ic2 ic_convert ichr1 ichr2 icosahedron_graph" + " icosidodecahedron_graph icurvature ident identfor identity idiff idim idummy" + " ieqn %if ifactors iframes ifs igcdex igeodesic_coords ilt image imagpart" + " imetric implicit implicit_derivative implicit_plot indexed_tensor indices" + " induced_subgraph inferencep inference_result infix info_display init_atensor" + " init_ctensor in_neighbors innerproduct inpart inprod inrt integerp integer_partitions" + " integrate intersect intersection intervalp intopois intosum invariant1 invariant2" + " inverse_fft inverse_jacobi_cd inverse_jacobi_cn inverse_jacobi_cs inverse_jacobi_dc" + " inverse_jacobi_dn inverse_jacobi_ds inverse_jacobi_nc inverse_jacobi_nd inverse_jacobi_ns" + " inverse_jacobi_sc inverse_jacobi_sd inverse_jacobi_sn invert invert_by_adjoint" + " invert_by_lu inv_mod irr is is_biconnected is_bipartite is_connected is_digraph" + " is_edge_in_graph is_graph is_graph_or_digraph ishow is_isomorphic isolate" + " isomorphism is_planar isqrt isreal_p is_sconnected is_tree is_vertex_in_graph" + " items_inference %j j0 j1 jacobi jacobian jacobi_cd jacobi_cn jacobi_cs jacobi_dc" + " jacobi_dn jacobi_ds jacobi_nc jacobi_nd jacobi_ns jacobi_p jacobi_sc jacobi_sd" + " jacobi_sn JF jn join jordan julia julia_set julia_sin %k kdels kdelta kill" + " killcontext kostka kron_delta kronecker_product kummer_m kummer_u kurtosis" + " kurtosis_bernoulli kurtosis_beta kurtosis_binomial kurtosis_chi2 kurtosis_continuous_uniform" + " kurtosis_discrete_uniform kurtosis_exp kurtosis_f kurtosis_gamma kurtosis_general_finite_discrete" + " kurtosis_geometric kurtosis_gumbel kurtosis_hypergeometric kurtosis_laplace" + " kurtosis_logistic kurtosis_lognormal kurtosis_negative_binomial kurtosis_noncentral_chi2" + " kurtosis_noncentral_student_t kurtosis_normal kurtosis_pareto kurtosis_poisson" + " kurtosis_rayleigh kurtosis_student_t kurtosis_weibull label labels lagrange" + " laguerre lambda lambert_w laplace laplacian_matrix last lbfgs lc2kdt lcharp" + " lc_l lcm lc_u ldefint ldisp ldisplay legendre_p legendre_q leinstein length" + " let letrules letsimp levi_civita lfreeof lgtreillis lhs li liediff limit" + " Lindstedt linear linearinterpol linear_program linear_regression line_graph" + " linsolve listarray list_correlations listify list_matrix_entries list_nc_monomials" + " listoftens listofvars listp lmax lmin load loadfile local locate_matrix_entry" + " log logcontract log_gamma lopow lorentz_gauge lowercasep lpart lratsubst" + " lreduce lriemann lsquares_estimates lsquares_estimates_approximate lsquares_estimates_exact" + " lsquares_mse lsquares_residual_mse lsquares_residuals lsum ltreillis lu_backsub" + " lucas lu_factor %m macroexpand macroexpand1 make_array makebox makefact makegamma" + " make_graph make_level_picture makelist makeOrders make_poly_continent make_poly_country" + " make_polygon make_random_state make_rgb_picture makeset make_string_input_stream" + " make_string_output_stream make_transform mandelbrot mandelbrot_set map mapatom" + " maplist matchdeclare matchfix mat_cond mat_fullunblocker mat_function mathml_display" + " mat_norm matrix matrixmap matrixp matrix_size mattrace mat_trace mat_unblocker" + " max max_clique max_degree max_flow maximize_lp max_independent_set max_matching" + " maybe md5sum mean mean_bernoulli mean_beta mean_binomial mean_chi2 mean_continuous_uniform" + " mean_deviation mean_discrete_uniform mean_exp mean_f mean_gamma mean_general_finite_discrete" + " mean_geometric mean_gumbel mean_hypergeometric mean_laplace mean_logistic" + " mean_lognormal mean_negative_binomial mean_noncentral_chi2 mean_noncentral_student_t" + " mean_normal mean_pareto mean_poisson mean_rayleigh mean_student_t mean_weibull" + " median median_deviation member mesh metricexpandall mgf1_sha1 min min_degree" + " min_edge_cut minfactorial minimalPoly minimize_lp minimum_spanning_tree minor" + " minpack_lsquares minpack_solve min_vertex_cover min_vertex_cut mkdir mnewton" + " mod mode_declare mode_identity ModeMatrix moebius mon2schur mono monomial_dimensions" + " multibernstein_poly multi_display_for_texinfo multi_elem multinomial multinomial_coeff" + " multi_orbit multiplot_mode multi_pui multsym multthru mycielski_graph nary" + " natural_unit nc_degree ncexpt ncharpoly negative_picture neighbors new newcontext" + " newdet new_graph newline newton new_variable next_prime nicedummies niceindices" + " ninth nofix nonarray noncentral_moment nonmetricity nonnegintegerp nonscalarp" + " nonzeroandfreeof notequal nounify nptetrad npv nroots nterms ntermst" + " nthroot nullity nullspace num numbered_boundaries numberp number_to_octets" + " num_distinct_partitions numerval numfactor num_partitions nusum nzeta nzetai" + " nzetar octets_to_number octets_to_oid odd_girth oddp ode2 ode_check odelin" + " oid_to_octets op opena opena_binary openr openr_binary openw openw_binary" + " operatorp opsubst optimize %or orbit orbits ordergreat ordergreatp orderless" + " orderlessp orthogonal_complement orthopoly_recur orthopoly_weight outermap" + " out_neighbors outofpois pade parabolic_cylinder_d parametric parametric_surface" + " parg parGosper parse_string parse_timedate part part2cont partfrac partition" + " partition_set partpol path_digraph path_graph pathname_directory pathname_name" + " pathname_type pdf_bernoulli pdf_beta pdf_binomial pdf_cauchy pdf_chi2 pdf_continuous_uniform" + " pdf_discrete_uniform pdf_exp pdf_f pdf_gamma pdf_general_finite_discrete" + " pdf_geometric pdf_gumbel pdf_hypergeometric pdf_laplace pdf_logistic pdf_lognormal" + " pdf_negative_binomial pdf_noncentral_chi2 pdf_noncentral_student_t pdf_normal" + " pdf_pareto pdf_poisson pdf_rank_sum pdf_rayleigh pdf_signed_rank pdf_student_t" + " pdf_weibull pearson_skewness permanent permut permutation permutations petersen_graph" + " petrov pickapart picture_equalp picturep piechart piechart_description planar_embedding" + " playback plog plot2d plot3d plotdf ploteq plsquares pochhammer points poisdiff" + " poisexpt poisint poismap poisplus poissimp poissubst poistimes poistrim polar" + " polarform polartorect polar_to_xy poly_add poly_buchberger poly_buchberger_criterion" + " poly_colon_ideal poly_content polydecomp poly_depends_p poly_elimination_ideal" + " poly_exact_divide poly_expand poly_expt poly_gcd polygon poly_grobner poly_grobner_equal" + " poly_grobner_member poly_grobner_subsetp poly_ideal_intersection poly_ideal_polysaturation" + " poly_ideal_polysaturation1 poly_ideal_saturation poly_ideal_saturation1 poly_lcm" + " poly_minimization polymod poly_multiply polynome2ele polynomialp poly_normal_form" + " poly_normalize poly_normalize_list poly_polysaturation_extension poly_primitive_part" + " poly_pseudo_divide poly_reduced_grobner poly_reduction poly_saturation_extension" + " poly_s_polynomial poly_subtract polytocompanion pop postfix potential power_mod" + " powerseries powerset prefix prev_prime primep primes principal_components" + " print printf printfile print_graph printpois printprops prodrac product properties" + " propvars psi psubst ptriangularize pui pui2comp pui2ele pui2polynome pui_direct" + " puireduc push put pv qput qrange qty quad_control quad_qag quad_qagi quad_qagp" + " quad_qags quad_qawc quad_qawf quad_qawo quad_qaws quadrilateral quantile" + " quantile_bernoulli quantile_beta quantile_binomial quantile_cauchy quantile_chi2" + " quantile_continuous_uniform quantile_discrete_uniform quantile_exp quantile_f" + " quantile_gamma quantile_general_finite_discrete quantile_geometric quantile_gumbel" + " quantile_hypergeometric quantile_laplace quantile_logistic quantile_lognormal" + " quantile_negative_binomial quantile_noncentral_chi2 quantile_noncentral_student_t" + " quantile_normal quantile_pareto quantile_poisson quantile_rayleigh quantile_student_t" + " quantile_weibull quartile_skewness quit qunit quotient racah_v racah_w radcan" + " radius random random_bernoulli random_beta random_binomial random_bipartite_graph" + " random_cauchy random_chi2 random_continuous_uniform random_digraph random_discrete_uniform" + " random_exp random_f random_gamma random_general_finite_discrete random_geometric" + " random_graph random_graph1 random_gumbel random_hypergeometric random_laplace" + " random_logistic random_lognormal random_negative_binomial random_network" + " random_noncentral_chi2 random_noncentral_student_t random_normal random_pareto" + " random_permutation random_poisson random_rayleigh random_regular_graph random_student_t" + " random_tournament random_tree random_weibull range rank rat ratcoef ratdenom" + " ratdiff ratdisrep ratexpand ratinterpol rational rationalize ratnumer ratnump" + " ratp ratsimp ratsubst ratvars ratweight read read_array read_binary_array" + " read_binary_list read_binary_matrix readbyte readchar read_hashed_array readline" + " read_list read_matrix read_nested_list readonly read_xpm real_imagpart_to_conjugate" + " realpart realroots rearray rectangle rectform rectform_log_if_constant recttopolar" + " rediff reduce_consts reduce_order region region_boundaries region_boundaries_plus" + " rem remainder remarray rembox remcomps remcon remcoord remfun remfunction" + " remlet remove remove_constvalue remove_dimensions remove_edge remove_fundamental_dimensions" + " remove_fundamental_units remove_plot_option remove_vertex rempart remrule" + " remsym remvalue rename rename_file reset reset_displays residue resolvante" + " resolvante_alternee1 resolvante_bipartite resolvante_diedrale resolvante_klein" + " resolvante_klein3 resolvante_produit_sym resolvante_unitaire resolvante_vierer" + " rest resultant return reveal reverse revert revert2 rgb2level rhs ricci riemann" + " rinvariant risch rk rmdir rncombine romberg room rootscontract round row" + " rowop rowswap rreduce run_testsuite %s save saving scalarp scaled_bessel_i" + " scaled_bessel_i0 scaled_bessel_i1 scalefactors scanmap scatterplot scatterplot_description" + " scene schur2comp sconcat scopy scsimp scurvature sdowncase sec sech second" + " sequal sequalignore set_alt_display setdifference set_draw_defaults set_edge_weight" + " setelmx setequalp setify setp set_partitions set_plot_option set_prompt set_random_state" + " set_tex_environment set_tex_environment_default setunits setup_autoload set_up_dot_simplifications" + " set_vertex_label seventh sexplode sf sha1sum sha256sum shortest_path shortest_weighted_path" + " show showcomps showratvars sierpinskiale sierpinskimap sign signum similaritytransform" + " simp_inequality simplify_sum simplode simpmetderiv simtran sin sinh sinsert" + " sinvertcase sixth skewness skewness_bernoulli skewness_beta skewness_binomial" + " skewness_chi2 skewness_continuous_uniform skewness_discrete_uniform skewness_exp" + " skewness_f skewness_gamma skewness_general_finite_discrete skewness_geometric" + " skewness_gumbel skewness_hypergeometric skewness_laplace skewness_logistic" + " skewness_lognormal skewness_negative_binomial skewness_noncentral_chi2 skewness_noncentral_student_t" + " skewness_normal skewness_pareto skewness_poisson skewness_rayleigh skewness_student_t" + " skewness_weibull slength smake small_rhombicosidodecahedron_graph small_rhombicuboctahedron_graph" + " smax smin smismatch snowmap snub_cube_graph snub_dodecahedron_graph solve" + " solve_rec solve_rec_rat some somrac sort sparse6_decode sparse6_encode sparse6_export" + " sparse6_import specint spherical spherical_bessel_j spherical_bessel_y spherical_hankel1" + " spherical_hankel2 spherical_harmonic spherical_to_xyz splice split sposition" + " sprint sqfr sqrt sqrtdenest sremove sremovefirst sreverse ssearch ssort sstatus" + " ssubst ssubstfirst staircase standardize standardize_inverse_trig starplot" + " starplot_description status std std1 std_bernoulli std_beta std_binomial" + " std_chi2 std_continuous_uniform std_discrete_uniform std_exp std_f std_gamma" + " std_general_finite_discrete std_geometric std_gumbel std_hypergeometric std_laplace" + " std_logistic std_lognormal std_negative_binomial std_noncentral_chi2 std_noncentral_student_t" + " std_normal std_pareto std_poisson std_rayleigh std_student_t std_weibull" + " stemplot stirling stirling1 stirling2 strim striml strimr string stringout" + " stringp strong_components struve_h struve_l sublis sublist sublist_indices" + " submatrix subsample subset subsetp subst substinpart subst_parallel substpart" + " substring subvar subvarp sum sumcontract summand_to_rec supcase supcontext" + " symbolp symmdifference symmetricp system take_channel take_inference tan" + " tanh taylor taylorinfo taylorp taylor_simplifier taytorat tcl_output tcontract" + " tellrat tellsimp tellsimpafter tentex tenth test_mean test_means_difference" + " test_normality test_proportion test_proportions_difference test_rank_sum" + " test_sign test_signed_rank test_variance test_variance_ratio tex tex1 tex_display" + " texput %th third throw time timedate timer timer_info tldefint tlimit todd_coxeter" + " toeplitz tokens to_lisp topological_sort to_poly to_poly_solve totaldisrep" + " totalfourier totient tpartpol trace tracematrix trace_options transform_sample" + " translate translate_file transpose treefale tree_reduce treillis treinat" + " triangle triangularize trigexpand trigrat trigreduce trigsimp trunc truncate" + " truncated_cube_graph truncated_dodecahedron_graph truncated_icosahedron_graph" + " truncated_tetrahedron_graph tr_warnings_get tube tutte_graph ueivects uforget" + " ultraspherical underlying_graph undiff union unique uniteigenvectors unitp" + " units unit_step unitvector unorder unsum untellrat untimer" + " untrace uppercasep uricci uriemann uvect vandermonde_matrix var var1 var_bernoulli" + " var_beta var_binomial var_chi2 var_continuous_uniform var_discrete_uniform" + " var_exp var_f var_gamma var_general_finite_discrete var_geometric var_gumbel" + " var_hypergeometric var_laplace var_logistic var_lognormal var_negative_binomial" + " var_noncentral_chi2 var_noncentral_student_t var_normal var_pareto var_poisson" + " var_rayleigh var_student_t var_weibull vector vectorpotential vectorsimp" + " verbify vers vertex_coloring vertex_connectivity vertex_degree vertex_distance" + " vertex_eccentricity vertex_in_degree vertex_out_degree vertices vertices_to_cycle" + " vertices_to_path %w weyl wheel_graph wiener_index wigner_3j wigner_6j" + " wigner_9j with_stdout write_binary_data writebyte write_data writefile wronskian" + " xreduce xthru %y Zeilberger zeroequiv zerofor zeromatrix zeromatrixp zeta" + " zgeev zheev zlange zn_add_table zn_carmichael_lambda zn_characteristic_factors" + " zn_determinant zn_factor_generators zn_invert_by_lu zn_log zn_mult_table" + " absboxchar activecontexts adapt_depth additive adim aform algebraic" + " algepsilon algexact aliases allbut all_dotsimp_denoms allocation allsym alphabetic" + " animation antisymmetric arrays askexp assume_pos assume_pos_pred assumescalar" + " asymbol atomgrad atrig1 axes axis_3d axis_bottom axis_left axis_right axis_top" + " azimuth background background_color backsubst berlefact bernstein_explicit" + " besselexpand beta_args_sum_to_integer beta_expand bftorat bftrunc bindtest" + " border boundaries_array box boxchar breakup %c capping cauchysum cbrange" + " cbtics center cflength cframe_flag cnonmet_flag color color_bar color_bar_tics" + " colorbox columns commutative complex cone context contexts contour contour_levels" + " cosnpiflag ctaypov ctaypt ctayswitch ctayvar ct_coords ctorsion_flag ctrgsimp" + " cube current_let_rule_package cylinder data_file_name debugmode decreasing" + " default_let_rule_package delay dependencies derivabbrev derivsubst detout" + " diagmetric diff dim dimensions dispflag display2d|10 display_format_internal" + " distribute_over doallmxops domain domxexpt domxmxops domxnctimes dontfactor" + " doscmxops doscmxplus dot0nscsimp dot0simp dot1simp dotassoc dotconstrules" + " dotdistrib dotexptsimp dotident dotscrules draw_graph_program draw_realpart" + " edge_color edge_coloring edge_partition edge_type edge_width %edispflag" + " elevation %emode endphi endtheta engineering_format_floats enhanced3d %enumer" + " epsilon_lp erfflag erf_representation errormsg error_size error_syms error_type" + " %e_to_numlog eval even evenfun evflag evfun ev_point expandwrt_denom expintexpand" + " expintrep expon expop exptdispflag exptisolate exptsubst facexpand facsum_combine" + " factlim factorflag factorial_expand factors_only fb feature features" + " file_name file_output_append file_search_demo file_search_lisp file_search_maxima|10" + " file_search_tests file_search_usage file_type_lisp file_type_maxima|10 fill_color" + " fill_density filled_func fixed_vertices flipflag float2bf font font_size" + " fortindent fortspaces fpprec fpprintprec functions gamma_expand gammalim" + " gdet genindex gensumnum GGFCFMAX GGFINFINITY globalsolve gnuplot_command" + " gnuplot_curve_styles gnuplot_curve_titles gnuplot_default_term_command gnuplot_dumb_term_command" + " gnuplot_file_args gnuplot_file_name gnuplot_out_file gnuplot_pdf_term_command" + " gnuplot_pm3d gnuplot_png_term_command gnuplot_postamble gnuplot_preamble" + " gnuplot_ps_term_command gnuplot_svg_term_command gnuplot_term gnuplot_view_args" + " Gosper_in_Zeilberger gradefs grid grid2d grind halfangles head_angle head_both" + " head_length head_type height hypergeometric_representation %iargs ibase" + " icc1 icc2 icounter idummyx ieqnprint ifb ifc1 ifc2 ifg ifgi ifr iframe_bracket_form" + " ifri igeowedge_flag ikt1 ikt2 imaginary inchar increasing infeval" + " infinity inflag infolists inm inmc1 inmc2 intanalysis integer integervalued" + " integrate_use_rootsof integration_constant integration_constant_counter interpolate_color" + " intfaclim ip_grid ip_grid_in irrational isolate_wrt_times iterations itr" + " julia_parameter %k1 %k2 keepfloat key key_pos kinvariant kt label label_alignment" + " label_orientation labels lassociative lbfgs_ncorrections lbfgs_nfeval_max" + " leftjust legend letrat let_rule_packages lfg lg lhospitallim limsubst linear" + " linear_solver linechar linel|10 linenum line_type linewidth line_width linsolve_params" + " linsolvewarn lispdisp listarith listconstvars listdummyvars lmxchar load_pathname" + " loadprint logabs logarc logcb logconcoeffp logexpand lognegint logsimp logx" + " logx_secondary logy logy_secondary logz lriem m1pbranch macroexpansion macros" + " mainvar manual_demo maperror mapprint matrix_element_add matrix_element_mult" + " matrix_element_transpose maxapplydepth maxapplyheight maxima_tempdir|10 maxima_userdir|10" + " maxnegex MAX_ORD maxposex maxpsifracdenom maxpsifracnum maxpsinegint maxpsiposint" + " maxtayorder mesh_lines_color method mod_big_prime mode_check_errorp" + " mode_checkp mode_check_warnp mod_test mod_threshold modular_linear_solver" + " modulus multiplicative multiplicities myoptions nary negdistrib negsumdispflag" + " newline newtonepsilon newtonmaxiter nextlayerfactor niceindicespref nm nmc" + " noeval nolabels nonegative_lp noninteger nonscalar noun noundisp nouns np" + " npi nticks ntrig numer numer_pbranch obase odd oddfun opacity opproperties" + " opsubst optimprefix optionset orientation origin orthopoly_returns_intervals" + " outative outchar packagefile palette partswitch pdf_file pfeformat phiresolution" + " %piargs piece pivot_count_sx pivot_max_sx plot_format plot_options plot_realpart" + " png_file pochhammer_max_index points pointsize point_size points_joined point_type" + " poislim poisson poly_coefficient_ring poly_elimination_order polyfactor poly_grobner_algorithm" + " poly_grobner_debug poly_monomial_order poly_primary_elimination_order poly_return_term_list" + " poly_secondary_elimination_order poly_top_reduction_only posfun position" + " powerdisp pred prederror primep_number_of_tests product_use_gamma program" + " programmode promote_float_to_bigfloat prompt proportional_axes props psexpand" + " ps_file radexpand radius radsubstflag rassociative ratalgdenom ratchristof" + " ratdenomdivide rateinstein ratepsilon ratfac rational ratmx ratprint ratriemann" + " ratsimpexpons ratvarswitch ratweights ratweyl ratwtlvl real realonly redraw" + " refcheck resolution restart resultant ric riem rmxchar %rnum_list rombergabs" + " rombergit rombergmin rombergtol rootsconmode rootsepsilon run_viewer same_xy" + " same_xyz savedef savefactors scalar scalarmatrixp scale scale_lp setcheck" + " setcheckbreak setval show_edge_color show_edges show_edge_type show_edge_width" + " show_id show_label showtime show_vertex_color show_vertex_size show_vertex_type" + " show_vertices show_weight simp simplified_output simplify_products simpproduct" + " simpsum sinnpiflag solvedecomposes solveexplicit solvefactors solvenullwarn" + " solveradcan solvetrigwarn space sparse sphere spring_embedding_depth sqrtdispflag" + " stardisp startphi starttheta stats_numer stringdisp structures style sublis_apply_lambda" + " subnumsimp sumexpand sumsplitfact surface surface_hide svg_file symmetric" + " tab taylordepth taylor_logexpand taylor_order_coefficients taylor_truncate_polynomials" + " tensorkill terminal testsuite_files thetaresolution timer_devalue title tlimswitch" + " tr track transcompile transform transform_xy translate_fast_arrays transparent" + " transrun tr_array_as_ref tr_bound_function_applyp tr_file_tty_messagesp tr_float_can_branch_complex" + " tr_function_call_default trigexpandplus trigexpandtimes triginverses trigsign" + " trivial_solutions tr_numer tr_optimize_max_loop tr_semicompile tr_state_vars" + " tr_warn_bad_function_calls tr_warn_fexpr tr_warn_meval tr_warn_mode" + " tr_warn_undeclared tr_warn_undefined_variable tstep ttyoff tube_extremes" + " ufg ug %unitexpand unit_vectors uric uriem use_fast_arrays user_preamble" + " usersetunits values vect_cross verbose vertex_color vertex_coloring vertex_partition" + " vertex_size vertex_type view warnings weyl width windowname windowtitle wired_surface" + " wireframe xaxis xaxis_color xaxis_secondary xaxis_type xaxis_width xlabel" + " xlabel_secondary xlength xrange xrange_secondary xtics xtics_axis xtics_rotate" + " xtics_rotate_secondary xtics_secondary xtics_secondary_axis xu_grid x_voxel" + " xy_file xyplane xy_scale yaxis yaxis_color yaxis_secondary yaxis_type yaxis_width" + " ylabel ylabel_secondary ylength yrange yrange_secondary ytics ytics_axis" + " ytics_rotate ytics_rotate_secondary ytics_secondary ytics_secondary_axis" + " yv_grid y_voxel yx_ratio zaxis zaxis_color zaxis_type zaxis_width zeroa zerob" + " zerobern zeta%pi zlabel zlabel_rotate zlength zmin zn_primroot_limit zn_primroot_pretest";
		const SYMBOLS = "_ __ %|0 %%|0";
		return {
			name: "Maxima",
			keywords: {
				$pattern: "[A-Za-z_%][0-9A-Za-z_%]*",
				keyword: KEYWORDS$6,
				literal: LITERALS$6,
				built_in: BUILTIN_FUNCTIONS,
				symbol: SYMBOLS
			},
			contains: [
				{
					className: "comment",
					begin: "/\\*",
					end: "\\*/",
					contains: ["self"]
				},
				hljs$1.QUOTE_STRING_MODE,
				{
					className: "number",
					relevance: 0,
					variants: [
						{ begin: "\\b(\\d+|\\d+\\.|\\.\\d+|\\d+\\.\\d+)[Ee][-+]?\\d+\\b" },
						{
							begin: "\\b(\\d+|\\d+\\.|\\.\\d+|\\d+\\.\\d+)[Bb][-+]?\\d+\\b",
							relevance: 10
						},
						{ begin: "\\b(\\.\\d+|\\d+\\.\\d+)\\b" },
						{ begin: "\\b(\\d+|0[0-9A-Za-z]+)\\.?\\b" }
					]
				}
			],
			illegal: /@/
		};
	}
	module.exports = maxima;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/mel.js
var require_mel = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function mel(hljs$1) {
		return {
			name: "MEL",
			keywords: "int float string vector matrix if else switch case default while do for in break " + "continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic " + "addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey " + "affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve " + "alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor " + "animDisplay animView annotate appendStringArray applicationName applyAttrPreset " + "applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx " + "artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu " + "artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand " + "assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface " + "attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu " + "attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp " + "attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery " + "autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults " + "bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership " + "bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType " + "boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu " + "buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge " + "cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch " + "catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox " + "character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp " + "checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip " + "clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore " + "closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter " + "cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color " + "colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp " + "colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem " + "componentEditor compositingInterop computePolysetVolume condition cone confirmDialog " + "connectAttr connectControl connectDynamic connectJoint connectionInfo constrain " + "constrainValue constructionHistory container containsMultibyte contextInfo control " + "convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation " + "convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache " + "cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel " + "cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver " + "cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor " + "createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer " + "createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse " + "currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx " + "curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface " + "curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox " + "defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete " + "deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes " + "delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo " + "dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable " + "disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected " + "displayColor displayCull displayLevelOfDetail displayPref displayRGBColor " + "displaySmoothness displayStats displayString displaySurface distanceDimContext " + "distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct " + "doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator " + "duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression " + "dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor " + "dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers " + "editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor " + "editorTemplate effector emit emitter enableDevice encodeString endString endsWith env " + "equivalent equivalentTol erf error eval evalDeferred evalEcho event " + "exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp " + "expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof " + "fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo " + "filetest filletCurve filter filterCurve filterExpand filterStudioImport " + "findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster " + "finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar " + "floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo " + "fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint " + "frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss " + "geometryConstraint getApplicationVersionAsFloat getAttr getClassification " + "getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes " + "getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender " + "glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl " + "gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid " + "gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap " + "HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor " + "HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached " + "HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel " + "headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey " + "hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender " + "hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox " + "iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel " + "ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem " + "ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform " + "insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance " + "instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp " + "interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf " + "isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect " + "itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx " + "jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner " + "keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx " + "keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx " + "keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx " + "keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor " + "layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList " + "lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep " + "listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory " + "listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation " + "listNodeTypes listPanelCategories listRelatives listSets listTransforms " + "listUnselected listerEditor loadFluid loadNewShelf loadPlugin " + "loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log " + "longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive " + "makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext " + "manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx " + "manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout " + "menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp " + "mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move " + "moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute " + "nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast " + "nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint " + "normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect " + "nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref " + "nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType " + "objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface " + "offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit " + "orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier " + "paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration " + "panelHistory paramDimContext paramDimension paramLocator parent parentConstraint " + "particle particleExists particleInstancer particleRenderInfo partition pasteKey " + "pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture " + "pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo " + "pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult " + "pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend " + "polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal " + "polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge " + "polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge " + "polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet " + "polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet " + "polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection " + "polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge " + "polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet " + "polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix " + "polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut " + "polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet " + "polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge " + "polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex " + "polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection " + "polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection " + "polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint " + "polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate " + "polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge " + "polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing " + "polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet " + "polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace " + "popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer " + "projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx " + "propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd " + "python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection " + "radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl " + "readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference " + "referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE " + "registerPluginResource rehash reloadImage removeJoint removeMultiInstance " + "removePanelCategory rename renameAttr renameSelectionList renameUI render " + "renderGlobalsNode renderInfo renderLayerButton renderLayerParent " + "renderLayerPostProcess renderLayerUnparent renderManip renderPartition " + "renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor " + "renderWindowSelectContext renderer reorder reorderDeformers requires reroot " + "resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget " + "reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx " + "rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout " + "runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage " + "saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale " + "scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor " + "sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable " + "scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt " + "searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey " + "selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType " + "selectedNodes selectionConnection separator setAttr setAttrEnumResource " + "setAttrMapping setAttrNiceNameResource setConstraintRestPosition " + "setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr " + "setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe " + "setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag " + "setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject " + "setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets " + "shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare " + "shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField " + "shortNameOf showHelp showHidden showManipCtx showSelectionInTitle " + "showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface " + "size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep " + "snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound " + "soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort " + "spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString " + "startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp " + "stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex " + "stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex " + "stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString " + "stringToStringArray strip stripPrefixFromName stroke subdAutoProjection " + "subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV " + "subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror " + "subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease " + "subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring " + "surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton " + "symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext " + "texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext " + "texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text " + "textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList " + "textToShelf textureDisplacePlane textureHairColor texturePlacementContext " + "textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath " + "toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower " + "toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper " + "trace track trackCtx transferAttributes transformCompare transformLimits translator " + "trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence " + "twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit " + "unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink " + "uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane " + "viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex " + "waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire " + "wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",
			illegal: "</",
			contains: [
				hljs$1.C_NUMBER_MODE,
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				{
					className: "string",
					begin: "`",
					end: "`",
					contains: [hljs$1.BACKSLASH_ESCAPE]
				},
				{ begin: /[$%@](\^\w\b|#\w+|[^\s\w{]|\{\w+\}|\w+)/ },
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE
			]
		};
	}
	module.exports = mel;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/mercury.js
var require_mercury = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function mercury(hljs$1) {
		const KEYWORDS$6 = {
			keyword: "module use_module import_module include_module end_module initialise " + "mutable initialize finalize finalise interface implementation pred " + "mode func type inst solver any_pred any_func is semidet det nondet " + "multi erroneous failure cc_nondet cc_multi typeclass instance where " + "pragma promise external trace atomic or_else require_complete_switch " + "require_det require_semidet require_multi require_nondet " + "require_cc_multi require_cc_nondet require_erroneous require_failure",
			meta: "inline no_inline type_spec source_file fact_table obsolete memo " + "loop_check minimal_model terminates does_not_terminate " + "check_termination promise_equivalent_clauses " + "foreign_proc foreign_decl foreign_code foreign_type " + "foreign_import_module foreign_export_enum foreign_export " + "foreign_enum may_call_mercury will_not_call_mercury thread_safe " + "not_thread_safe maybe_thread_safe promise_pure promise_semipure " + "tabled_for_io local untrailed trailed attach_to_io_state " + "can_pass_as_mercury_type stable will_not_throw_exception " + "may_modify_trail will_not_modify_trail may_duplicate " + "may_not_duplicate affects_liveness does_not_affect_liveness " + "doesnt_affect_liveness no_sharing unknown_sharing sharing",
			built_in: "some all not if then else true fail false try catch catch_any " + "semidet_true semidet_false semidet_fail impure_true impure semipure"
		};
		const COMMENT$2 = hljs$1.COMMENT("%", "$");
		const NUMCODE = {
			className: "number",
			begin: "0'.\\|0[box][0-9a-fA-F]*"
		};
		const ATOM = hljs$1.inherit(hljs$1.APOS_STRING_MODE, { relevance: 0 });
		const STRING = hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { relevance: 0 });
		const STRING_FMT = {
			className: "subst",
			begin: "\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]",
			relevance: 0
		};
		STRING.contains = STRING.contains.slice();
		STRING.contains.push(STRING_FMT);
		const IMPLICATION = {
			className: "built_in",
			variants: [
				{ begin: "<=>" },
				{
					begin: "<=",
					relevance: 0
				},
				{
					begin: "=>",
					relevance: 0
				},
				{ begin: "/\\\\" },
				{ begin: "\\\\/" }
			]
		};
		const HEAD_BODY_CONJUNCTION = {
			className: "built_in",
			variants: [{ begin: ":-\\|-->" }, {
				begin: "=",
				relevance: 0
			}]
		};
		return {
			name: "Mercury",
			aliases: ["m", "moo"],
			keywords: KEYWORDS$6,
			contains: [
				IMPLICATION,
				HEAD_BODY_CONJUNCTION,
				COMMENT$2,
				hljs$1.C_BLOCK_COMMENT_MODE,
				NUMCODE,
				hljs$1.NUMBER_MODE,
				ATOM,
				STRING,
				{ begin: /:-/ },
				{ begin: /\.$/ }
			]
		};
	}
	module.exports = mercury;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/mipsasm.js
var require_mipsasm = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function mipsasm(hljs$1) {
		return {
			name: "MIPS Assembly",
			case_insensitive: true,
			aliases: ["mips"],
			keywords: {
				$pattern: "\\.?" + hljs$1.IDENT_RE,
				meta: ".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .ltorg ",
				built_in: "$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 " + "$16 $17 $18 $19 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $30 $31 " + "zero at v0 v1 a0 a1 a2 a3 a4 a5 a6 a7 " + "t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 s0 s1 s2 s3 s4 s5 s6 s7 s8 " + "k0 k1 gp sp fp ra " + "$f0 $f1 $f2 $f2 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15 " + "$f16 $f17 $f18 $f19 $f20 $f21 $f22 $f23 $f24 $f25 $f26 $f27 $f28 $f29 $f30 $f31 " + "Context Random EntryLo0 EntryLo1 Context PageMask Wired EntryHi " + "HWREna BadVAddr Count Compare SR IntCtl SRSCtl SRSMap Cause EPC PRId " + "EBase Config Config1 Config2 Config3 LLAddr Debug DEPC DESAVE CacheErr " + "ECC ErrorEPC TagLo DataLo TagHi DataHi WatchLo WatchHi PerfCtl PerfCnt "
			},
			contains: [
				{
					className: "keyword",
					begin: "\\b(" + "addi?u?|andi?|b(al)?|beql?|bgez(al)?l?|bgtzl?|blezl?|bltz(al)?l?|" + "bnel?|cl[oz]|divu?|ext|ins|j(al)?|jalr(\\.hb)?|jr(\\.hb)?|lbu?|lhu?|" + "ll|lui|lw[lr]?|maddu?|mfhi|mflo|movn|movz|move|msubu?|mthi|mtlo|mul|" + "multu?|nop|nor|ori?|rotrv?|sb|sc|se[bh]|sh|sllv?|slti?u?|srav?|" + "srlv?|subu?|sw[lr]?|xori?|wsbh|" + "abs\\.[sd]|add\\.[sd]|alnv.ps|bc1[ft]l?|" + "c\\.(s?f|un|u?eq|[ou]lt|[ou]le|ngle?|seq|l[et]|ng[et])\\.[sd]|" + "(ceil|floor|round|trunc)\\.[lw]\\.[sd]|cfc1|cvt\\.d\\.[lsw]|" + "cvt\\.l\\.[dsw]|cvt\\.ps\\.s|cvt\\.s\\.[dlw]|cvt\\.s\\.p[lu]|cvt\\.w\\.[dls]|" + "div\\.[ds]|ldx?c1|luxc1|lwx?c1|madd\\.[sd]|mfc1|mov[fntz]?\\.[ds]|" + "msub\\.[sd]|mth?c1|mul\\.[ds]|neg\\.[ds]|nmadd\\.[ds]|nmsub\\.[ds]|" + "p[lu][lu]\\.ps|recip\\.fmt|r?sqrt\\.[ds]|sdx?c1|sub\\.[ds]|suxc1|" + "swx?c1|" + "break|cache|d?eret|[de]i|ehb|mfc0|mtc0|pause|prefx?|rdhwr|" + "rdpgpr|sdbbp|ssnop|synci?|syscall|teqi?|tgei?u?|tlb(p|r|w[ir])|" + "tlti?u?|tnei?|wait|wrpgpr" + ")",
					end: "\\s"
				},
				hljs$1.COMMENT("[;#](?!\\s*$)", "$"),
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.QUOTE_STRING_MODE,
				{
					className: "string",
					begin: "'",
					end: "[^\\\\]'",
					relevance: 0
				},
				{
					className: "title",
					begin: "\\|",
					end: "\\|",
					illegal: "\\n",
					relevance: 0
				},
				{
					className: "number",
					variants: [{ begin: "0x[0-9a-f]+" }, { begin: "\\b-?\\d+" }],
					relevance: 0
				},
				{
					className: "symbol",
					variants: [
						{ begin: "^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:" },
						{ begin: "^\\s*[0-9]+:" },
						{ begin: "[0-9]+[bf]" }
					],
					relevance: 0
				}
			],
			illegal: /\//
		};
	}
	module.exports = mipsasm;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/mizar.js
var require_mizar = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function mizar(hljs$1) {
		return {
			name: "Mizar",
			keywords: "environ vocabularies notations constructors definitions " + "registrations theorems schemes requirements begin end definition " + "registration cluster existence pred func defpred deffunc theorem " + "proof let take assume then thus hence ex for st holds consider " + "reconsider such that and in provided of as from be being by means " + "equals implies iff redefine define now not or attr is mode " + "suppose per cases set thesis contradiction scheme reserve struct " + "correctness compatibility coherence symmetry assymetry " + "reflexivity irreflexivity connectedness uniqueness commutativity " + "idempotence involutiveness projectivity",
			contains: [hljs$1.COMMENT("::", "$")]
		};
	}
	module.exports = mizar;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/perl.js
var require_perl = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function perl(hljs$1) {
		const regex = hljs$1.regex;
		const KEYWORDS$6 = [
			"abs",
			"accept",
			"alarm",
			"and",
			"atan2",
			"bind",
			"binmode",
			"bless",
			"break",
			"caller",
			"chdir",
			"chmod",
			"chomp",
			"chop",
			"chown",
			"chr",
			"chroot",
			"class",
			"close",
			"closedir",
			"connect",
			"continue",
			"cos",
			"crypt",
			"dbmclose",
			"dbmopen",
			"defined",
			"delete",
			"die",
			"do",
			"dump",
			"each",
			"else",
			"elsif",
			"endgrent",
			"endhostent",
			"endnetent",
			"endprotoent",
			"endpwent",
			"endservent",
			"eof",
			"eval",
			"exec",
			"exists",
			"exit",
			"exp",
			"fcntl",
			"field",
			"fileno",
			"flock",
			"for",
			"foreach",
			"fork",
			"format",
			"formline",
			"getc",
			"getgrent",
			"getgrgid",
			"getgrnam",
			"gethostbyaddr",
			"gethostbyname",
			"gethostent",
			"getlogin",
			"getnetbyaddr",
			"getnetbyname",
			"getnetent",
			"getpeername",
			"getpgrp",
			"getpriority",
			"getprotobyname",
			"getprotobynumber",
			"getprotoent",
			"getpwent",
			"getpwnam",
			"getpwuid",
			"getservbyname",
			"getservbyport",
			"getservent",
			"getsockname",
			"getsockopt",
			"given",
			"glob",
			"gmtime",
			"goto",
			"grep",
			"gt",
			"hex",
			"if",
			"index",
			"int",
			"ioctl",
			"join",
			"keys",
			"kill",
			"last",
			"lc",
			"lcfirst",
			"length",
			"link",
			"listen",
			"local",
			"localtime",
			"log",
			"lstat",
			"lt",
			"ma",
			"map",
			"method",
			"mkdir",
			"msgctl",
			"msgget",
			"msgrcv",
			"msgsnd",
			"my",
			"ne",
			"next",
			"no",
			"not",
			"oct",
			"open",
			"opendir",
			"or",
			"ord",
			"our",
			"pack",
			"package",
			"pipe",
			"pop",
			"pos",
			"print",
			"printf",
			"prototype",
			"push",
			"q|0",
			"qq",
			"quotemeta",
			"qw",
			"qx",
			"rand",
			"read",
			"readdir",
			"readline",
			"readlink",
			"readpipe",
			"recv",
			"redo",
			"ref",
			"rename",
			"require",
			"reset",
			"return",
			"reverse",
			"rewinddir",
			"rindex",
			"rmdir",
			"say",
			"scalar",
			"seek",
			"seekdir",
			"select",
			"semctl",
			"semget",
			"semop",
			"send",
			"setgrent",
			"sethostent",
			"setnetent",
			"setpgrp",
			"setpriority",
			"setprotoent",
			"setpwent",
			"setservent",
			"setsockopt",
			"shift",
			"shmctl",
			"shmget",
			"shmread",
			"shmwrite",
			"shutdown",
			"sin",
			"sleep",
			"socket",
			"socketpair",
			"sort",
			"splice",
			"split",
			"sprintf",
			"sqrt",
			"srand",
			"stat",
			"state",
			"study",
			"sub",
			"substr",
			"symlink",
			"syscall",
			"sysopen",
			"sysread",
			"sysseek",
			"system",
			"syswrite",
			"tell",
			"telldir",
			"tie",
			"tied",
			"time",
			"times",
			"tr",
			"truncate",
			"uc",
			"ucfirst",
			"umask",
			"undef",
			"unless",
			"unlink",
			"unpack",
			"unshift",
			"untie",
			"until",
			"use",
			"utime",
			"values",
			"vec",
			"wait",
			"waitpid",
			"wantarray",
			"warn",
			"when",
			"while",
			"write",
			"x|0",
			"xor",
			"y|0"
		];
		const REGEX_MODIFIERS = /[dualxmsipngr]{0,12}/;
		const PERL_KEYWORDS = {
			$pattern: /[\w.]+/,
			keyword: KEYWORDS$6.join(" ")
		};
		const SUBST = {
			className: "subst",
			begin: "[$@]\\{",
			end: "\\}",
			keywords: PERL_KEYWORDS
		};
		const METHOD = {
			begin: /->\{/,
			end: /\}/
		};
		const ATTR = {
			scope: "attr",
			match: /\s+:\s*\w+(\s*\(.*?\))?/
		};
		const VAR = {
			scope: "variable",
			variants: [
				{ begin: /\$\d/ },
				{ begin: regex.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/, `(?![A-Za-z])(?![@$%])`) },
				{
					begin: /[$%@](?!")[^\s\w{=]|\$=/,
					relevance: 0
				}
			],
			contains: [ATTR]
		};
		const NUMBER = {
			className: "number",
			variants: [
				{ match: /0?\.[0-9][0-9_]+\b/ },
				{ match: /\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/ },
				{ match: /\b0[0-7][0-7_]*\b/ },
				{ match: /\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/ },
				{ match: /\b0b[0-1][0-1_]*\b/ }
			],
			relevance: 0
		};
		const STRING_CONTAINS = [
			hljs$1.BACKSLASH_ESCAPE,
			SUBST,
			VAR
		];
		const REGEX_DELIMS = [
			/!/,
			/\//,
			/\|/,
			/\?/,
			/'/,
			/"/,
			/#/
		];
		/**
		* @param {string|RegExp} prefix
		* @param {string|RegExp} open
		* @param {string|RegExp} close
		*/
		const PAIRED_DOUBLE_RE = (prefix, open$1, close$1 = "\\1") => {
			const middle = close$1 === "\\1" ? close$1 : regex.concat(close$1, open$1);
			return regex.concat(regex.concat("(?:", prefix, ")"), open$1, /(?:\\.|[^\\\/])*?/, middle, /(?:\\.|[^\\\/])*?/, close$1, REGEX_MODIFIERS);
		};
		/**
		* @param {string|RegExp} prefix
		* @param {string|RegExp} open
		* @param {string|RegExp} close
		*/
		const PAIRED_RE = (prefix, open$1, close$1) => {
			return regex.concat(regex.concat("(?:", prefix, ")"), open$1, /(?:\\.|[^\\\/])*?/, close$1, REGEX_MODIFIERS);
		};
		const PERL_DEFAULT_CONTAINS = [
			VAR,
			hljs$1.HASH_COMMENT_MODE,
			hljs$1.COMMENT(/^=\w/, /=cut/, { endsWithParent: true }),
			METHOD,
			{
				className: "string",
				contains: STRING_CONTAINS,
				variants: [
					{
						begin: "q[qwxr]?\\s*\\(",
						end: "\\)",
						relevance: 5
					},
					{
						begin: "q[qwxr]?\\s*\\[",
						end: "\\]",
						relevance: 5
					},
					{
						begin: "q[qwxr]?\\s*\\{",
						end: "\\}",
						relevance: 5
					},
					{
						begin: "q[qwxr]?\\s*\\|",
						end: "\\|",
						relevance: 5
					},
					{
						begin: "q[qwxr]?\\s*<",
						end: ">",
						relevance: 5
					},
					{
						begin: "qw\\s+q",
						end: "q",
						relevance: 5
					},
					{
						begin: "'",
						end: "'",
						contains: [hljs$1.BACKSLASH_ESCAPE]
					},
					{
						begin: "\"",
						end: "\""
					},
					{
						begin: "`",
						end: "`",
						contains: [hljs$1.BACKSLASH_ESCAPE]
					},
					{
						begin: /\{\w+\}/,
						relevance: 0
					},
					{
						begin: "-?\\w+\\s*=>",
						relevance: 0
					}
				]
			},
			NUMBER,
			{
				begin: "(\\/\\/|" + hljs$1.RE_STARTERS_RE + "|\\b(split|return|print|reverse|grep)\\b)\\s*",
				keywords: "split return print reverse grep",
				relevance: 0,
				contains: [
					hljs$1.HASH_COMMENT_MODE,
					{
						className: "regexp",
						variants: [
							{ begin: PAIRED_DOUBLE_RE("s|tr|y", regex.either(...REGEX_DELIMS, { capture: true })) },
							{ begin: PAIRED_DOUBLE_RE("s|tr|y", "\\(", "\\)") },
							{ begin: PAIRED_DOUBLE_RE("s|tr|y", "\\[", "\\]") },
							{ begin: PAIRED_DOUBLE_RE("s|tr|y", "\\{", "\\}") }
						],
						relevance: 2
					},
					{
						className: "regexp",
						variants: [
							{
								begin: /(m|qr)\/\//,
								relevance: 0
							},
							{ begin: PAIRED_RE("(?:m|qr)?", /\//, /\//) },
							{ begin: PAIRED_RE("m|qr", regex.either(...REGEX_DELIMS, { capture: true }), /\1/) },
							{ begin: PAIRED_RE("m|qr", /\(/, /\)/) },
							{ begin: PAIRED_RE("m|qr", /\[/, /\]/) },
							{ begin: PAIRED_RE("m|qr", /\{/, /\}/) }
						]
					}
				]
			},
			{
				className: "function",
				beginKeywords: "sub method",
				end: "(\\s*\\(.*?\\))?[;{]",
				excludeEnd: true,
				relevance: 5,
				contains: [hljs$1.TITLE_MODE, ATTR]
			},
			{
				className: "class",
				beginKeywords: "class",
				end: "[;{]",
				excludeEnd: true,
				relevance: 5,
				contains: [
					hljs$1.TITLE_MODE,
					ATTR,
					NUMBER
				]
			},
			{
				begin: "-\\w\\b",
				relevance: 0
			},
			{
				begin: "^__DATA__$",
				end: "^__END__$",
				subLanguage: "mojolicious",
				contains: [{
					begin: "^@@.*",
					end: "$",
					className: "comment"
				}]
			}
		];
		SUBST.contains = PERL_DEFAULT_CONTAINS;
		METHOD.contains = PERL_DEFAULT_CONTAINS;
		return {
			name: "Perl",
			aliases: ["pl", "pm"],
			keywords: PERL_KEYWORDS,
			contains: PERL_DEFAULT_CONTAINS
		};
	}
	module.exports = perl;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/mojolicious.js
var require_mojolicious = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function mojolicious(hljs$1) {
		return {
			name: "Mojolicious",
			subLanguage: "xml",
			contains: [
				{
					className: "meta",
					begin: "^__(END|DATA)__$"
				},
				{
					begin: "^\\s*%{1,2}={0,2}",
					end: "$",
					subLanguage: "perl"
				},
				{
					begin: "<%{1,2}={0,2}",
					end: "={0,1}%>",
					subLanguage: "perl",
					excludeBegin: true,
					excludeEnd: true
				}
			]
		};
	}
	module.exports = mojolicious;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/monkey.js
var require_monkey = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function monkey(hljs$1) {
		const NUMBER = {
			className: "number",
			relevance: 0,
			variants: [{ begin: "[$][a-fA-F0-9]+" }, hljs$1.NUMBER_MODE]
		};
		const FUNC_DEFINITION = {
			variants: [{ match: [
				/(function|method)/,
				/\s+/,
				hljs$1.UNDERSCORE_IDENT_RE
			] }],
			scope: {
				1: "keyword",
				3: "title.function"
			}
		};
		const CLASS_DEFINITION = {
			variants: [{ match: [
				/(class|interface|extends|implements)/,
				/\s+/,
				hljs$1.UNDERSCORE_IDENT_RE
			] }],
			scope: {
				1: "keyword",
				3: "title.class"
			}
		};
		const BUILT_INS$6 = [
			"DebugLog",
			"DebugStop",
			"Error",
			"Print",
			"ACos",
			"ACosr",
			"ASin",
			"ASinr",
			"ATan",
			"ATan2",
			"ATan2r",
			"ATanr",
			"Abs",
			"Abs",
			"Ceil",
			"Clamp",
			"Clamp",
			"Cos",
			"Cosr",
			"Exp",
			"Floor",
			"Log",
			"Max",
			"Max",
			"Min",
			"Min",
			"Pow",
			"Sgn",
			"Sgn",
			"Sin",
			"Sinr",
			"Sqrt",
			"Tan",
			"Tanr",
			"Seed",
			"PI",
			"HALFPI",
			"TWOPI"
		];
		const LITERALS$6 = [
			"true",
			"false",
			"null"
		];
		const KEYWORDS$6 = [
			"public",
			"private",
			"property",
			"continue",
			"exit",
			"extern",
			"new",
			"try",
			"catch",
			"eachin",
			"not",
			"abstract",
			"final",
			"select",
			"case",
			"default",
			"const",
			"local",
			"global",
			"field",
			"end",
			"if",
			"then",
			"else",
			"elseif",
			"endif",
			"while",
			"wend",
			"repeat",
			"until",
			"forever",
			"for",
			"to",
			"step",
			"next",
			"return",
			"module",
			"inline",
			"throw",
			"import",
			"and",
			"or",
			"shl",
			"shr",
			"mod"
		];
		return {
			name: "Monkey",
			case_insensitive: true,
			keywords: {
				keyword: KEYWORDS$6,
				built_in: BUILT_INS$6,
				literal: LITERALS$6
			},
			illegal: /\/\*/,
			contains: [
				hljs$1.COMMENT("#rem", "#end"),
				hljs$1.COMMENT("'", "$", { relevance: 0 }),
				FUNC_DEFINITION,
				CLASS_DEFINITION,
				{
					className: "variable.language",
					begin: /\b(self|super)\b/
				},
				{
					className: "meta",
					begin: /\s*#/,
					end: "$",
					keywords: { keyword: "if else elseif endif end then" }
				},
				{
					match: [/^\s*/, /strict\b/],
					scope: { 2: "meta" }
				},
				{
					beginKeywords: "alias",
					end: "=",
					contains: [hljs$1.UNDERSCORE_TITLE_MODE]
				},
				hljs$1.QUOTE_STRING_MODE,
				NUMBER
			]
		};
	}
	module.exports = monkey;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/moonscript.js
var require_moonscript = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function moonscript(hljs$1) {
		const KEYWORDS$6 = {
			keyword: "if then not for in while do return else elseif break continue switch and or " + "unless when class extends super local import export from using",
			literal: "true false nil",
			built_in: "_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load " + "loadfile loadstring module next pairs pcall print rawequal rawget rawset require " + "select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug " + "io math os package string table"
		};
		const JS_IDENT_RE = "[A-Za-z$_][0-9A-Za-z$_]*";
		const SUBST = {
			className: "subst",
			begin: /#\{/,
			end: /\}/,
			keywords: KEYWORDS$6
		};
		const EXPRESSIONS = [
			hljs$1.inherit(hljs$1.C_NUMBER_MODE, { starts: {
				end: "(\\s*/)?",
				relevance: 0
			} }),
			{
				className: "string",
				variants: [{
					begin: /'/,
					end: /'/,
					contains: [hljs$1.BACKSLASH_ESCAPE]
				}, {
					begin: /"/,
					end: /"/,
					contains: [hljs$1.BACKSLASH_ESCAPE, SUBST]
				}]
			},
			{
				className: "built_in",
				begin: "@__" + hljs$1.IDENT_RE
			},
			{ begin: "@" + hljs$1.IDENT_RE },
			{ begin: hljs$1.IDENT_RE + "\\\\" + hljs$1.IDENT_RE }
		];
		SUBST.contains = EXPRESSIONS;
		const TITLE = hljs$1.inherit(hljs$1.TITLE_MODE, { begin: JS_IDENT_RE });
		const POSSIBLE_PARAMS_RE = "(\\(.*\\)\\s*)?\\B[-=]>";
		const PARAMS = {
			className: "params",
			begin: "\\([^\\(]",
			returnBegin: true,
			contains: [{
				begin: /\(/,
				end: /\)/,
				keywords: KEYWORDS$6,
				contains: ["self"].concat(EXPRESSIONS)
			}]
		};
		return {
			name: "MoonScript",
			aliases: ["moon"],
			keywords: KEYWORDS$6,
			illegal: /\/\*/,
			contains: EXPRESSIONS.concat([
				hljs$1.COMMENT("--", "$"),
				{
					className: "function",
					begin: "^\\s*" + JS_IDENT_RE + "\\s*=\\s*" + POSSIBLE_PARAMS_RE,
					end: "[-=]>",
					returnBegin: true,
					contains: [TITLE, PARAMS]
				},
				{
					begin: /[\(,:=]\s*/,
					relevance: 0,
					contains: [{
						className: "function",
						begin: POSSIBLE_PARAMS_RE,
						end: "[-=]>",
						returnBegin: true,
						contains: [PARAMS]
					}]
				},
				{
					className: "class",
					beginKeywords: "class",
					end: "$",
					illegal: /[:="\[\]]/,
					contains: [{
						beginKeywords: "extends",
						endsWithParent: true,
						illegal: /[:="\[\]]/,
						contains: [TITLE]
					}, TITLE]
				},
				{
					className: "name",
					begin: JS_IDENT_RE + ":",
					end: ":",
					returnBegin: true,
					returnEnd: true,
					relevance: 0
				}
			])
		};
	}
	module.exports = moonscript;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/n1ql.js
var require_n1ql = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function n1ql(hljs$1) {
		const KEYWORDS$6 = [
			"all",
			"alter",
			"analyze",
			"and",
			"any",
			"array",
			"as",
			"asc",
			"begin",
			"between",
			"binary",
			"boolean",
			"break",
			"bucket",
			"build",
			"by",
			"call",
			"case",
			"cast",
			"cluster",
			"collate",
			"collection",
			"commit",
			"connect",
			"continue",
			"correlate",
			"cover",
			"create",
			"database",
			"dataset",
			"datastore",
			"declare",
			"decrement",
			"delete",
			"derived",
			"desc",
			"describe",
			"distinct",
			"do",
			"drop",
			"each",
			"element",
			"else",
			"end",
			"every",
			"except",
			"exclude",
			"execute",
			"exists",
			"explain",
			"fetch",
			"first",
			"flatten",
			"for",
			"force",
			"from",
			"function",
			"grant",
			"group",
			"gsi",
			"having",
			"if",
			"ignore",
			"ilike",
			"in",
			"include",
			"increment",
			"index",
			"infer",
			"inline",
			"inner",
			"insert",
			"intersect",
			"into",
			"is",
			"join",
			"key",
			"keys",
			"keyspace",
			"known",
			"last",
			"left",
			"let",
			"letting",
			"like",
			"limit",
			"lsm",
			"map",
			"mapping",
			"matched",
			"materialized",
			"merge",
			"minus",
			"namespace",
			"nest",
			"not",
			"number",
			"object",
			"offset",
			"on",
			"option",
			"or",
			"order",
			"outer",
			"over",
			"parse",
			"partition",
			"password",
			"path",
			"pool",
			"prepare",
			"primary",
			"private",
			"privilege",
			"procedure",
			"public",
			"raw",
			"realm",
			"reduce",
			"rename",
			"return",
			"returning",
			"revoke",
			"right",
			"role",
			"rollback",
			"satisfies",
			"schema",
			"select",
			"self",
			"semi",
			"set",
			"show",
			"some",
			"start",
			"statistics",
			"string",
			"system",
			"then",
			"to",
			"transaction",
			"trigger",
			"truncate",
			"under",
			"union",
			"unique",
			"unknown",
			"unnest",
			"unset",
			"update",
			"upsert",
			"use",
			"user",
			"using",
			"validate",
			"value",
			"valued",
			"values",
			"via",
			"view",
			"when",
			"where",
			"while",
			"with",
			"within",
			"work",
			"xor"
		];
		const LITERALS$6 = [
			"true",
			"false",
			"null",
			"missing|5"
		];
		const BUILT_INS$6 = [
			"array_agg",
			"array_append",
			"array_concat",
			"array_contains",
			"array_count",
			"array_distinct",
			"array_ifnull",
			"array_length",
			"array_max",
			"array_min",
			"array_position",
			"array_prepend",
			"array_put",
			"array_range",
			"array_remove",
			"array_repeat",
			"array_replace",
			"array_reverse",
			"array_sort",
			"array_sum",
			"avg",
			"count",
			"max",
			"min",
			"sum",
			"greatest",
			"least",
			"ifmissing",
			"ifmissingornull",
			"ifnull",
			"missingif",
			"nullif",
			"ifinf",
			"ifnan",
			"ifnanorinf",
			"naninf",
			"neginfif",
			"posinfif",
			"clock_millis",
			"clock_str",
			"date_add_millis",
			"date_add_str",
			"date_diff_millis",
			"date_diff_str",
			"date_part_millis",
			"date_part_str",
			"date_trunc_millis",
			"date_trunc_str",
			"duration_to_str",
			"millis",
			"str_to_millis",
			"millis_to_str",
			"millis_to_utc",
			"millis_to_zone_name",
			"now_millis",
			"now_str",
			"str_to_duration",
			"str_to_utc",
			"str_to_zone_name",
			"decode_json",
			"encode_json",
			"encoded_size",
			"poly_length",
			"base64",
			"base64_encode",
			"base64_decode",
			"meta",
			"uuid",
			"abs",
			"acos",
			"asin",
			"atan",
			"atan2",
			"ceil",
			"cos",
			"degrees",
			"e",
			"exp",
			"ln",
			"log",
			"floor",
			"pi",
			"power",
			"radians",
			"random",
			"round",
			"sign",
			"sin",
			"sqrt",
			"tan",
			"trunc",
			"object_length",
			"object_names",
			"object_pairs",
			"object_inner_pairs",
			"object_values",
			"object_inner_values",
			"object_add",
			"object_put",
			"object_remove",
			"object_unwrap",
			"regexp_contains",
			"regexp_like",
			"regexp_position",
			"regexp_replace",
			"contains",
			"initcap",
			"length",
			"lower",
			"ltrim",
			"position",
			"repeat",
			"replace",
			"rtrim",
			"split",
			"substr",
			"title",
			"trim",
			"upper",
			"isarray",
			"isatom",
			"isboolean",
			"isnumber",
			"isobject",
			"isstring",
			"type",
			"toarray",
			"toatom",
			"toboolean",
			"tonumber",
			"toobject",
			"tostring"
		];
		return {
			name: "N1QL",
			case_insensitive: true,
			contains: [{
				beginKeywords: "build create index delete drop explain infer|10 insert merge prepare select update upsert|10",
				end: /;/,
				keywords: {
					keyword: KEYWORDS$6,
					literal: LITERALS$6,
					built_in: BUILT_INS$6
				},
				contains: [
					{
						className: "string",
						begin: "'",
						end: "'",
						contains: [hljs$1.BACKSLASH_ESCAPE]
					},
					{
						className: "string",
						begin: "\"",
						end: "\"",
						contains: [hljs$1.BACKSLASH_ESCAPE]
					},
					{
						className: "symbol",
						begin: "`",
						end: "`",
						contains: [hljs$1.BACKSLASH_ESCAPE]
					},
					hljs$1.C_NUMBER_MODE,
					hljs$1.C_BLOCK_COMMENT_MODE
				]
			}, hljs$1.C_BLOCK_COMMENT_MODE]
		};
	}
	module.exports = n1ql;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/nestedtext.js
var require_nestedtext = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function nestedtext(hljs$1) {
		const NESTED = {
			match: [
				/^\s*(?=\S)/,
				/[^:]+/,
				/:\s*/,
				/$/
			],
			className: {
				2: "attribute",
				3: "punctuation"
			}
		};
		const DICTIONARY_ITEM = {
			match: [
				/^\s*(?=\S)/,
				/[^:]*[^: ]/,
				/[ ]*:/,
				/[ ]/,
				/.*$/
			],
			className: {
				2: "attribute",
				3: "punctuation",
				5: "string"
			}
		};
		const STRING = {
			match: [
				/^\s*/,
				/>/,
				/[ ]/,
				/.*$/
			],
			className: {
				2: "punctuation",
				4: "string"
			}
		};
		const LIST_ITEM = {
			variants: [{ match: [
				/^\s*/,
				/-/,
				/[ ]/,
				/.*$/
			] }, { match: [/^\s*/, /-$/] }],
			className: {
				2: "bullet",
				4: "string"
			}
		};
		return {
			name: "Nested Text",
			aliases: ["nt"],
			contains: [
				hljs$1.inherit(hljs$1.HASH_COMMENT_MODE, {
					begin: /^\s*(?=#)/,
					excludeBegin: true
				}),
				LIST_ITEM,
				STRING,
				NESTED,
				DICTIONARY_ITEM
			]
		};
	}
	module.exports = nestedtext;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/nginx.js
var require_nginx = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function nginx(hljs$1) {
		const regex = hljs$1.regex;
		const VAR = {
			className: "variable",
			variants: [
				{ begin: /\$\d+/ },
				{ begin: /\$\{\w+\}/ },
				{ begin: regex.concat(/[$@]/, hljs$1.UNDERSCORE_IDENT_RE) }
			]
		};
		const LITERALS$6 = [
			"on",
			"off",
			"yes",
			"no",
			"true",
			"false",
			"none",
			"blocked",
			"debug",
			"info",
			"notice",
			"warn",
			"error",
			"crit",
			"select",
			"break",
			"last",
			"permanent",
			"redirect",
			"kqueue",
			"rtsig",
			"epoll",
			"poll",
			"/dev/poll"
		];
		const DEFAULT = {
			endsWithParent: true,
			keywords: {
				$pattern: /[a-z_]{2,}|\/dev\/poll/,
				literal: LITERALS$6
			},
			relevance: 0,
			illegal: "=>",
			contains: [
				hljs$1.HASH_COMMENT_MODE,
				{
					className: "string",
					contains: [hljs$1.BACKSLASH_ESCAPE, VAR],
					variants: [{
						begin: /"/,
						end: /"/
					}, {
						begin: /'/,
						end: /'/
					}]
				},
				{
					begin: "([a-z]+):/",
					end: "\\s",
					endsWithParent: true,
					excludeEnd: true,
					contains: [VAR]
				},
				{
					className: "regexp",
					contains: [hljs$1.BACKSLASH_ESCAPE, VAR],
					variants: [
						{
							begin: "\\s\\^",
							end: "\\s|\\{|;",
							returnEnd: true
						},
						{
							begin: "~\\*?\\s+",
							end: "\\s|\\{|;",
							returnEnd: true
						},
						{ begin: "\\*(\\.[a-z\\-]+)+" },
						{ begin: "([a-z\\-]+\\.)+\\*" }
					]
				},
				{
					className: "number",
					begin: "\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"
				},
				{
					className: "number",
					begin: "\\b\\d+[kKmMgGdshdwy]?\\b",
					relevance: 0
				},
				VAR
			]
		};
		return {
			name: "Nginx config",
			aliases: ["nginxconf"],
			contains: [
				hljs$1.HASH_COMMENT_MODE,
				{
					beginKeywords: "upstream location",
					end: /;|\{/,
					contains: DEFAULT.contains,
					keywords: { section: "upstream location" }
				},
				{
					className: "section",
					begin: regex.concat(hljs$1.UNDERSCORE_IDENT_RE + regex.lookahead(/\s+\{/)),
					relevance: 0
				},
				{
					begin: regex.lookahead(hljs$1.UNDERSCORE_IDENT_RE + "\\s"),
					end: ";|\\{",
					contains: [{
						className: "attribute",
						begin: hljs$1.UNDERSCORE_IDENT_RE,
						starts: DEFAULT
					}],
					relevance: 0
				}
			],
			illegal: "[^\\s\\}\\{]"
		};
	}
	module.exports = nginx;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/nim.js
var require_nim = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function nim(hljs$1) {
		const TYPES$6 = [
			"int",
			"int8",
			"int16",
			"int32",
			"int64",
			"uint",
			"uint8",
			"uint16",
			"uint32",
			"uint64",
			"float",
			"float32",
			"float64",
			"bool",
			"char",
			"string",
			"cstring",
			"pointer",
			"expr",
			"stmt",
			"void",
			"auto",
			"any",
			"range",
			"array",
			"openarray",
			"varargs",
			"seq",
			"set",
			"clong",
			"culong",
			"cchar",
			"cschar",
			"cshort",
			"cint",
			"csize",
			"clonglong",
			"cfloat",
			"cdouble",
			"clongdouble",
			"cuchar",
			"cushort",
			"cuint",
			"culonglong",
			"cstringarray",
			"semistatic"
		];
		const KEYWORDS$6 = [
			"addr",
			"and",
			"as",
			"asm",
			"bind",
			"block",
			"break",
			"case",
			"cast",
			"concept",
			"const",
			"continue",
			"converter",
			"defer",
			"discard",
			"distinct",
			"div",
			"do",
			"elif",
			"else",
			"end",
			"enum",
			"except",
			"export",
			"finally",
			"for",
			"from",
			"func",
			"generic",
			"guarded",
			"if",
			"import",
			"in",
			"include",
			"interface",
			"is",
			"isnot",
			"iterator",
			"let",
			"macro",
			"method",
			"mixin",
			"mod",
			"nil",
			"not",
			"notin",
			"object",
			"of",
			"or",
			"out",
			"proc",
			"ptr",
			"raise",
			"ref",
			"return",
			"shared",
			"shl",
			"shr",
			"static",
			"template",
			"try",
			"tuple",
			"type",
			"using",
			"var",
			"when",
			"while",
			"with",
			"without",
			"xor",
			"yield"
		];
		const BUILT_INS$6 = [
			"stdin",
			"stdout",
			"stderr",
			"result"
		];
		const LITERALS$6 = ["true", "false"];
		return {
			name: "Nim",
			keywords: {
				keyword: KEYWORDS$6,
				literal: LITERALS$6,
				type: TYPES$6,
				built_in: BUILT_INS$6
			},
			contains: [
				{
					className: "meta",
					begin: /\{\./,
					end: /\.\}/,
					relevance: 10
				},
				{
					className: "string",
					begin: /[a-zA-Z]\w*"/,
					end: /"/,
					contains: [{ begin: /""/ }]
				},
				{
					className: "string",
					begin: /([a-zA-Z]\w*)?"""/,
					end: /"""/
				},
				hljs$1.QUOTE_STRING_MODE,
				{
					className: "type",
					begin: /\b[A-Z]\w+\b/,
					relevance: 0
				},
				{
					className: "number",
					relevance: 0,
					variants: [
						{ begin: /\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/ },
						{ begin: /\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/ },
						{ begin: /\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/ },
						{ begin: /\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/ }
					]
				},
				hljs$1.HASH_COMMENT_MODE
			]
		};
	}
	module.exports = nim;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/nix.js
var require_nix = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function nix(hljs$1) {
		const regex = hljs$1.regex;
		const KEYWORDS$6 = {
			keyword: [
				"assert",
				"else",
				"if",
				"in",
				"inherit",
				"let",
				"or",
				"rec",
				"then",
				"with"
			],
			literal: [
				"true",
				"false",
				"null"
			],
			built_in: [
				"abort",
				"baseNameOf",
				"builtins",
				"derivation",
				"derivationStrict",
				"dirOf",
				"fetchGit",
				"fetchMercurial",
				"fetchTarball",
				"fetchTree",
				"fromTOML",
				"import",
				"isNull",
				"map",
				"placeholder",
				"removeAttrs",
				"scopedImport",
				"throw",
				"toString"
			]
		};
		const BUILTINS = {
			scope: "built_in",
			match: regex.either(...[
				"abort",
				"add",
				"addDrvOutputDependencies",
				"addErrorContext",
				"all",
				"any",
				"appendContext",
				"attrNames",
				"attrValues",
				"baseNameOf",
				"bitAnd",
				"bitOr",
				"bitXor",
				"break",
				"builtins",
				"catAttrs",
				"ceil",
				"compareVersions",
				"concatLists",
				"concatMap",
				"concatStringsSep",
				"convertHash",
				"currentSystem",
				"currentTime",
				"deepSeq",
				"derivation",
				"derivationStrict",
				"dirOf",
				"div",
				"elem",
				"elemAt",
				"false",
				"fetchGit",
				"fetchMercurial",
				"fetchTarball",
				"fetchTree",
				"fetchurl",
				"filter",
				"filterSource",
				"findFile",
				"flakeRefToString",
				"floor",
				"foldl'",
				"fromJSON",
				"fromTOML",
				"functionArgs",
				"genList",
				"genericClosure",
				"getAttr",
				"getContext",
				"getEnv",
				"getFlake",
				"groupBy",
				"hasAttr",
				"hasContext",
				"hashFile",
				"hashString",
				"head",
				"import",
				"intersectAttrs",
				"isAttrs",
				"isBool",
				"isFloat",
				"isFunction",
				"isInt",
				"isList",
				"isNull",
				"isPath",
				"isString",
				"langVersion",
				"length",
				"lessThan",
				"listToAttrs",
				"map",
				"mapAttrs",
				"match",
				"mul",
				"nixPath",
				"nixVersion",
				"null",
				"parseDrvName",
				"parseFlakeRef",
				"partition",
				"path",
				"pathExists",
				"placeholder",
				"readDir",
				"readFile",
				"readFileType",
				"removeAttrs",
				"replaceStrings",
				"scopedImport",
				"seq",
				"sort",
				"split",
				"splitVersion",
				"storeDir",
				"storePath",
				"stringLength",
				"sub",
				"substring",
				"tail",
				"throw",
				"toFile",
				"toJSON",
				"toPath",
				"toString",
				"toXML",
				"trace",
				"traceVerbose",
				"true",
				"tryEval",
				"typeOf",
				"unsafeDiscardOutputDependency",
				"unsafeDiscardStringContext",
				"unsafeGetAttrPos",
				"warn",
				"zipAttrsWith"
			].map((b$3) => `builtins\\.${b$3}`)),
			relevance: 10
		};
		const IDENTIFIER_REGEX = "[A-Za-z_][A-Za-z0-9_'-]*";
		const LOOKUP_PATH = {
			scope: "symbol",
			match: new RegExp(`<${IDENTIFIER_REGEX}(/${IDENTIFIER_REGEX})*>`)
		};
		const PATH_PIECE = "[A-Za-z0-9_\\+\\.-]+";
		const PATH = {
			scope: "symbol",
			match: new RegExp(`(\\.\\.|\\.|~)?/(${PATH_PIECE})?(/${PATH_PIECE})*(?=[\\s;])`)
		};
		const OPERATOR_WITHOUT_MINUS_REGEX = regex.either(...[
			"==",
			"=",
			"\\+\\+",
			"\\+",
			"<=",
			"<\\|",
			"<",
			">=",
			">",
			"->",
			"//",
			"/",
			"!=",
			"!",
			"\\|\\|",
			"\\|>",
			"\\?",
			"\\*",
			"&&"
		]);
		const OPERATOR = {
			scope: "operator",
			match: regex.concat(OPERATOR_WITHOUT_MINUS_REGEX, /(?!-)/),
			relevance: 0
		};
		const NUMBER = {
			scope: "number",
			match: new RegExp(`${hljs$1.NUMBER_RE}(?!-)`),
			relevance: 0
		};
		const MINUS_OPERATOR = {
			variants: [
				{
					scope: "operator",
					beforeMatch: /\s/,
					begin: /-(?!>)/
				},
				{
					begin: [
						new RegExp(`${hljs$1.NUMBER_RE}`),
						/-/,
						/(?!>)/
					],
					beginScope: {
						1: "number",
						2: "operator"
					}
				},
				{
					begin: [
						OPERATOR_WITHOUT_MINUS_REGEX,
						/-/,
						/(?!>)/
					],
					beginScope: {
						1: "operator",
						2: "operator"
					}
				}
			],
			relevance: 0
		};
		const ATTRS = {
			beforeMatch: /(^|\{|;)\s*/,
			begin: new RegExp(`${IDENTIFIER_REGEX}(\\.${IDENTIFIER_REGEX})*\\s*=(?!=)`),
			returnBegin: true,
			relevance: 0,
			contains: [{
				scope: "attr",
				match: new RegExp(`${IDENTIFIER_REGEX}(\\.${IDENTIFIER_REGEX})*(?=\\s*=)`),
				relevance: .2
			}]
		};
		const NORMAL_ESCAPED_DOLLAR = {
			scope: "char.escape",
			match: /\\\$/
		};
		const INDENTED_ESCAPED_DOLLAR = {
			scope: "char.escape",
			match: /''\$/
		};
		const ANTIQUOTE = {
			scope: "subst",
			begin: /\$\{/,
			end: /\}/,
			keywords: KEYWORDS$6
		};
		const ESCAPED_DOUBLEQUOTE = {
			scope: "char.escape",
			match: /'''/
		};
		const ESCAPED_LITERAL = {
			scope: "char.escape",
			match: /\\(?!\$)./
		};
		const STRING = {
			scope: "string",
			variants: [{
				begin: "''",
				end: "''",
				contains: [
					INDENTED_ESCAPED_DOLLAR,
					ANTIQUOTE,
					ESCAPED_DOUBLEQUOTE,
					ESCAPED_LITERAL
				]
			}, {
				begin: "\"",
				end: "\"",
				contains: [
					NORMAL_ESCAPED_DOLLAR,
					ANTIQUOTE,
					ESCAPED_LITERAL
				]
			}]
		};
		const FUNCTION_PARAMS = {
			scope: "params",
			match: new RegExp(`${IDENTIFIER_REGEX}\\s*:(?=\\s)`)
		};
		const EXPRESSIONS = [
			NUMBER,
			hljs$1.HASH_COMMENT_MODE,
			hljs$1.C_BLOCK_COMMENT_MODE,
			hljs$1.COMMENT(/\/\*\*(?!\/)/, /\*\//, {
				subLanguage: "markdown",
				relevance: 0
			}),
			BUILTINS,
			STRING,
			LOOKUP_PATH,
			PATH,
			FUNCTION_PARAMS,
			ATTRS,
			MINUS_OPERATOR,
			OPERATOR
		];
		ANTIQUOTE.contains = EXPRESSIONS;
		const REPL = [{
			scope: "meta.prompt",
			match: /^nix-repl>(?=\s)/,
			relevance: 10
		}, {
			scope: "meta",
			beforeMatch: /\s+/,
			begin: /:([a-z]+|\?)/
		}];
		return {
			name: "Nix",
			aliases: ["nixos"],
			keywords: KEYWORDS$6,
			contains: EXPRESSIONS.concat(REPL)
		};
	}
	module.exports = nix;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/node-repl.js
var require_node_repl = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function nodeRepl(hljs$1) {
		return {
			name: "Node REPL",
			contains: [{
				className: "meta.prompt",
				starts: {
					end: / |$/,
					starts: {
						end: "$",
						subLanguage: "javascript"
					}
				},
				variants: [{ begin: /^>(?=[ ]|$)/ }, { begin: /^\.\.\.(?=[ ]|$)/ }]
			}]
		};
	}
	module.exports = nodeRepl;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/nsis.js
var require_nsis = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function nsis(hljs$1) {
		const regex = hljs$1.regex;
		const LANGUAGE_CONSTANTS = [
			"ADMINTOOLS",
			"APPDATA",
			"CDBURN_AREA",
			"CMDLINE",
			"COMMONFILES32",
			"COMMONFILES64",
			"COMMONFILES",
			"COOKIES",
			"DESKTOP",
			"DOCUMENTS",
			"EXEDIR",
			"EXEFILE",
			"EXEPATH",
			"FAVORITES",
			"FONTS",
			"HISTORY",
			"HWNDPARENT",
			"INSTDIR",
			"INTERNET_CACHE",
			"LANGUAGE",
			"LOCALAPPDATA",
			"MUSIC",
			"NETHOOD",
			"OUTDIR",
			"PICTURES",
			"PLUGINSDIR",
			"PRINTHOOD",
			"PROFILE",
			"PROGRAMFILES32",
			"PROGRAMFILES64",
			"PROGRAMFILES",
			"QUICKLAUNCH",
			"RECENT",
			"RESOURCES_LOCALIZED",
			"RESOURCES",
			"SENDTO",
			"SMPROGRAMS",
			"SMSTARTUP",
			"STARTMENU",
			"SYSDIR",
			"TEMP",
			"TEMPLATES",
			"VIDEOS",
			"WINDIR"
		];
		const PARAM_NAMES = [
			"ARCHIVE",
			"FILE_ATTRIBUTE_ARCHIVE",
			"FILE_ATTRIBUTE_NORMAL",
			"FILE_ATTRIBUTE_OFFLINE",
			"FILE_ATTRIBUTE_READONLY",
			"FILE_ATTRIBUTE_SYSTEM",
			"FILE_ATTRIBUTE_TEMPORARY",
			"HKCR",
			"HKCU",
			"HKDD",
			"HKEY_CLASSES_ROOT",
			"HKEY_CURRENT_CONFIG",
			"HKEY_CURRENT_USER",
			"HKEY_DYN_DATA",
			"HKEY_LOCAL_MACHINE",
			"HKEY_PERFORMANCE_DATA",
			"HKEY_USERS",
			"HKLM",
			"HKPD",
			"HKU",
			"IDABORT",
			"IDCANCEL",
			"IDIGNORE",
			"IDNO",
			"IDOK",
			"IDRETRY",
			"IDYES",
			"MB_ABORTRETRYIGNORE",
			"MB_DEFBUTTON1",
			"MB_DEFBUTTON2",
			"MB_DEFBUTTON3",
			"MB_DEFBUTTON4",
			"MB_ICONEXCLAMATION",
			"MB_ICONINFORMATION",
			"MB_ICONQUESTION",
			"MB_ICONSTOP",
			"MB_OK",
			"MB_OKCANCEL",
			"MB_RETRYCANCEL",
			"MB_RIGHT",
			"MB_RTLREADING",
			"MB_SETFOREGROUND",
			"MB_TOPMOST",
			"MB_USERICON",
			"MB_YESNO",
			"NORMAL",
			"OFFLINE",
			"READONLY",
			"SHCTX",
			"SHELL_CONTEXT",
			"SYSTEM|TEMPORARY"
		];
		const COMPILER_FLAGS = [
			"addincludedir",
			"addplugindir",
			"appendfile",
			"assert",
			"cd",
			"define",
			"delfile",
			"echo",
			"else",
			"endif",
			"error",
			"execute",
			"finalize",
			"getdllversion",
			"gettlbversion",
			"if",
			"ifdef",
			"ifmacrodef",
			"ifmacrondef",
			"ifndef",
			"include",
			"insertmacro",
			"macro",
			"macroend",
			"makensis",
			"packhdr",
			"searchparse",
			"searchreplace",
			"system",
			"tempfile",
			"undef",
			"uninstfinalize",
			"verbose",
			"warning"
		];
		const CONSTANTS = {
			className: "variable.constant",
			begin: regex.concat(/\$/, regex.either(...LANGUAGE_CONSTANTS))
		};
		const DEFINES = {
			className: "variable",
			begin: /\$+\{[\!\w.:-]+\}/
		};
		const VARIABLES = {
			className: "variable",
			begin: /\$+\w[\w\.]*/,
			illegal: /\(\)\{\}/
		};
		const LANGUAGES = {
			className: "variable",
			begin: /\$+\([\w^.:!-]+\)/
		};
		const PARAMETERS = {
			className: "params",
			begin: regex.either(...PARAM_NAMES)
		};
		const COMPILER = {
			className: "keyword",
			begin: regex.concat(/!/, regex.either(...COMPILER_FLAGS))
		};
		const ESCAPE_CHARS = {
			className: "char.escape",
			begin: /\$(\\[nrt]|\$)/
		};
		const PLUGINS = {
			className: "title.function",
			begin: /\w+::\w+/
		};
		const STRING = {
			className: "string",
			variants: [
				{
					begin: "\"",
					end: "\""
				},
				{
					begin: "'",
					end: "'"
				},
				{
					begin: "`",
					end: "`"
				}
			],
			illegal: /\n/,
			contains: [
				ESCAPE_CHARS,
				CONSTANTS,
				DEFINES,
				VARIABLES,
				LANGUAGES
			]
		};
		const KEYWORDS$6 = [
			"Abort",
			"AddBrandingImage",
			"AddSize",
			"AllowRootDirInstall",
			"AllowSkipFiles",
			"AutoCloseWindow",
			"BGFont",
			"BGGradient",
			"BrandingText",
			"BringToFront",
			"Call",
			"CallInstDLL",
			"Caption",
			"ChangeUI",
			"CheckBitmap",
			"ClearErrors",
			"CompletedText",
			"ComponentText",
			"CopyFiles",
			"CRCCheck",
			"CreateDirectory",
			"CreateFont",
			"CreateShortCut",
			"Delete",
			"DeleteINISec",
			"DeleteINIStr",
			"DeleteRegKey",
			"DeleteRegValue",
			"DetailPrint",
			"DetailsButtonText",
			"DirText",
			"DirVar",
			"DirVerify",
			"EnableWindow",
			"EnumRegKey",
			"EnumRegValue",
			"Exch",
			"Exec",
			"ExecShell",
			"ExecShellWait",
			"ExecWait",
			"ExpandEnvStrings",
			"File",
			"FileBufSize",
			"FileClose",
			"FileErrorText",
			"FileOpen",
			"FileRead",
			"FileReadByte",
			"FileReadUTF16LE",
			"FileReadWord",
			"FileWriteUTF16LE",
			"FileSeek",
			"FileWrite",
			"FileWriteByte",
			"FileWriteWord",
			"FindClose",
			"FindFirst",
			"FindNext",
			"FindWindow",
			"FlushINI",
			"GetCurInstType",
			"GetCurrentAddress",
			"GetDlgItem",
			"GetDLLVersion",
			"GetDLLVersionLocal",
			"GetErrorLevel",
			"GetFileTime",
			"GetFileTimeLocal",
			"GetFullPathName",
			"GetFunctionAddress",
			"GetInstDirError",
			"GetKnownFolderPath",
			"GetLabelAddress",
			"GetTempFileName",
			"GetWinVer",
			"Goto",
			"HideWindow",
			"Icon",
			"IfAbort",
			"IfErrors",
			"IfFileExists",
			"IfRebootFlag",
			"IfRtlLanguage",
			"IfShellVarContextAll",
			"IfSilent",
			"InitPluginsDir",
			"InstallButtonText",
			"InstallColors",
			"InstallDir",
			"InstallDirRegKey",
			"InstProgressFlags",
			"InstType",
			"InstTypeGetText",
			"InstTypeSetText",
			"Int64Cmp",
			"Int64CmpU",
			"Int64Fmt",
			"IntCmp",
			"IntCmpU",
			"IntFmt",
			"IntOp",
			"IntPtrCmp",
			"IntPtrCmpU",
			"IntPtrOp",
			"IsWindow",
			"LangString",
			"LicenseBkColor",
			"LicenseData",
			"LicenseForceSelection",
			"LicenseLangString",
			"LicenseText",
			"LoadAndSetImage",
			"LoadLanguageFile",
			"LockWindow",
			"LogSet",
			"LogText",
			"ManifestDPIAware",
			"ManifestLongPathAware",
			"ManifestMaxVersionTested",
			"ManifestSupportedOS",
			"MessageBox",
			"MiscButtonText",
			"Name|0",
			"Nop",
			"OutFile",
			"Page",
			"PageCallbacks",
			"PEAddResource",
			"PEDllCharacteristics",
			"PERemoveResource",
			"PESubsysVer",
			"Pop",
			"Push",
			"Quit",
			"ReadEnvStr",
			"ReadINIStr",
			"ReadRegDWORD",
			"ReadRegStr",
			"Reboot",
			"RegDLL",
			"Rename",
			"RequestExecutionLevel",
			"ReserveFile",
			"Return",
			"RMDir",
			"SearchPath",
			"SectionGetFlags",
			"SectionGetInstTypes",
			"SectionGetSize",
			"SectionGetText",
			"SectionIn",
			"SectionSetFlags",
			"SectionSetInstTypes",
			"SectionSetSize",
			"SectionSetText",
			"SendMessage",
			"SetAutoClose",
			"SetBrandingImage",
			"SetCompress",
			"SetCompressor",
			"SetCompressorDictSize",
			"SetCtlColors",
			"SetCurInstType",
			"SetDatablockOptimize",
			"SetDateSave",
			"SetDetailsPrint",
			"SetDetailsView",
			"SetErrorLevel",
			"SetErrors",
			"SetFileAttributes",
			"SetFont",
			"SetOutPath",
			"SetOverwrite",
			"SetRebootFlag",
			"SetRegView",
			"SetShellVarContext",
			"SetSilent",
			"ShowInstDetails",
			"ShowUninstDetails",
			"ShowWindow",
			"SilentInstall",
			"SilentUnInstall",
			"Sleep",
			"SpaceTexts",
			"StrCmp",
			"StrCmpS",
			"StrCpy",
			"StrLen",
			"SubCaption",
			"Unicode",
			"UninstallButtonText",
			"UninstallCaption",
			"UninstallIcon",
			"UninstallSubCaption",
			"UninstallText",
			"UninstPage",
			"UnRegDLL",
			"Var",
			"VIAddVersionKey",
			"VIFileVersion",
			"VIProductVersion",
			"WindowIcon",
			"WriteINIStr",
			"WriteRegBin",
			"WriteRegDWORD",
			"WriteRegExpandStr",
			"WriteRegMultiStr",
			"WriteRegNone",
			"WriteRegStr",
			"WriteUninstaller",
			"XPStyle"
		];
		const LITERALS$6 = [
			"admin",
			"all",
			"auto",
			"both",
			"bottom",
			"bzip2",
			"colored",
			"components",
			"current",
			"custom",
			"directory",
			"false",
			"force",
			"hide",
			"highest",
			"ifdiff",
			"ifnewer",
			"instfiles",
			"lastused",
			"leave",
			"left",
			"license",
			"listonly",
			"lzma",
			"nevershow",
			"none",
			"normal",
			"notset",
			"off",
			"on",
			"open",
			"print",
			"right",
			"show",
			"silent",
			"silentlog",
			"smooth",
			"textonly",
			"top",
			"true",
			"try",
			"un.components",
			"un.custom",
			"un.directory",
			"un.instfiles",
			"un.license",
			"uninstConfirm",
			"user",
			"Win10",
			"Win7",
			"Win8",
			"WinVista",
			"zlib"
		];
		const FUNCTION_DEFINITION = {
			match: [
				/Function/,
				/\s+/,
				regex.concat(/(\.)?/, hljs$1.IDENT_RE)
			],
			scope: {
				1: "keyword",
				3: "title.function"
			}
		};
		const VARIABLE_NAME_RE = /[A-Za-z][\w.]*/;
		const VARIABLE_DEFINITION = {
			match: [
				/Var/,
				/\s+/,
				/(?:\/GLOBAL\s+)?/,
				VARIABLE_NAME_RE
			],
			scope: {
				1: "keyword",
				3: "params",
				4: "variable"
			}
		};
		return {
			name: "NSIS",
			case_insensitive: true,
			keywords: {
				keyword: KEYWORDS$6,
				literal: LITERALS$6
			},
			contains: [
				hljs$1.HASH_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.COMMENT(";", "$", { relevance: 0 }),
				VARIABLE_DEFINITION,
				FUNCTION_DEFINITION,
				{ beginKeywords: "Function PageEx Section SectionGroup FunctionEnd SectionEnd" },
				STRING,
				COMPILER,
				DEFINES,
				VARIABLES,
				LANGUAGES,
				PARAMETERS,
				PLUGINS,
				hljs$1.NUMBER_MODE
			]
		};
	}
	module.exports = nsis;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/objectivec.js
var require_objectivec = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function objectivec(hljs$1) {
		const API_CLASS = {
			className: "built_in",
			begin: "\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"
		};
		const IDENTIFIER_RE = /[a-zA-Z@][a-zA-Z0-9_]*/;
		const TYPES$6 = [
			"int",
			"float",
			"char",
			"unsigned",
			"signed",
			"short",
			"long",
			"double",
			"wchar_t",
			"unichar",
			"void",
			"bool",
			"BOOL",
			"id|0",
			"_Bool"
		];
		const KWS = [
			"while",
			"export",
			"sizeof",
			"typedef",
			"const",
			"struct",
			"for",
			"union",
			"volatile",
			"static",
			"mutable",
			"if",
			"do",
			"return",
			"goto",
			"enum",
			"else",
			"break",
			"extern",
			"asm",
			"case",
			"default",
			"register",
			"explicit",
			"typename",
			"switch",
			"continue",
			"inline",
			"readonly",
			"assign",
			"readwrite",
			"self",
			"@synchronized",
			"id",
			"typeof",
			"nonatomic",
			"IBOutlet",
			"IBAction",
			"strong",
			"weak",
			"copy",
			"in",
			"out",
			"inout",
			"bycopy",
			"byref",
			"oneway",
			"__strong",
			"__weak",
			"__block",
			"__autoreleasing",
			"@private",
			"@protected",
			"@public",
			"@try",
			"@property",
			"@end",
			"@throw",
			"@catch",
			"@finally",
			"@autoreleasepool",
			"@synthesize",
			"@dynamic",
			"@selector",
			"@optional",
			"@required",
			"@encode",
			"@package",
			"@import",
			"@defs",
			"@compatibility_alias",
			"__bridge",
			"__bridge_transfer",
			"__bridge_retained",
			"__bridge_retain",
			"__covariant",
			"__contravariant",
			"__kindof",
			"_Nonnull",
			"_Nullable",
			"_Null_unspecified",
			"__FUNCTION__",
			"__PRETTY_FUNCTION__",
			"__attribute__",
			"getter",
			"setter",
			"retain",
			"unsafe_unretained",
			"nonnull",
			"nullable",
			"null_unspecified",
			"null_resettable",
			"class",
			"instancetype",
			"NS_DESIGNATED_INITIALIZER",
			"NS_UNAVAILABLE",
			"NS_REQUIRES_SUPER",
			"NS_RETURNS_INNER_POINTER",
			"NS_INLINE",
			"NS_AVAILABLE",
			"NS_DEPRECATED",
			"NS_ENUM",
			"NS_OPTIONS",
			"NS_SWIFT_UNAVAILABLE",
			"NS_ASSUME_NONNULL_BEGIN",
			"NS_ASSUME_NONNULL_END",
			"NS_REFINED_FOR_SWIFT",
			"NS_SWIFT_NAME",
			"NS_SWIFT_NOTHROW",
			"NS_DURING",
			"NS_HANDLER",
			"NS_ENDHANDLER",
			"NS_VALUERETURN",
			"NS_VOIDRETURN"
		];
		const LITERALS$6 = [
			"false",
			"true",
			"FALSE",
			"TRUE",
			"nil",
			"YES",
			"NO",
			"NULL"
		];
		const BUILT_INS$6 = [
			"dispatch_once_t",
			"dispatch_queue_t",
			"dispatch_sync",
			"dispatch_async",
			"dispatch_once"
		];
		const KEYWORDS$6 = {
			"variable.language": ["this", "super"],
			$pattern: IDENTIFIER_RE,
			keyword: KWS,
			literal: LITERALS$6,
			built_in: BUILT_INS$6,
			type: TYPES$6
		};
		const CLASS_KEYWORDS = {
			$pattern: IDENTIFIER_RE,
			keyword: [
				"@interface",
				"@class",
				"@protocol",
				"@implementation"
			]
		};
		return {
			name: "Objective-C",
			aliases: [
				"mm",
				"objc",
				"obj-c",
				"obj-c++",
				"objective-c++"
			],
			keywords: KEYWORDS$6,
			illegal: "</",
			contains: [
				API_CLASS,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.C_NUMBER_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.APOS_STRING_MODE,
				{
					className: "string",
					variants: [{
						begin: "@\"",
						end: "\"",
						illegal: "\\n",
						contains: [hljs$1.BACKSLASH_ESCAPE]
					}]
				},
				{
					className: "meta",
					begin: /#\s*[a-z]+\b/,
					end: /$/,
					keywords: { keyword: "if else elif endif define undef warning error line " + "pragma ifdef ifndef include" },
					contains: [
						{
							begin: /\\\n/,
							relevance: 0
						},
						hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { className: "string" }),
						{
							className: "string",
							begin: /<.*?>/,
							end: /$/,
							illegal: "\\n"
						},
						hljs$1.C_LINE_COMMENT_MODE,
						hljs$1.C_BLOCK_COMMENT_MODE
					]
				},
				{
					className: "class",
					begin: "(" + CLASS_KEYWORDS.keyword.join("|") + ")\\b",
					end: /(\{|$)/,
					excludeEnd: true,
					keywords: CLASS_KEYWORDS,
					contains: [hljs$1.UNDERSCORE_TITLE_MODE]
				},
				{
					begin: "\\." + hljs$1.UNDERSCORE_IDENT_RE,
					relevance: 0
				}
			]
		};
	}
	module.exports = objectivec;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/ocaml.js
var require_ocaml = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function ocaml(hljs$1) {
		return {
			name: "OCaml",
			aliases: ["ml"],
			keywords: {
				$pattern: "[a-z_]\\w*!?",
				keyword: "and as assert asr begin class constraint do done downto else end " + "exception external for fun function functor if in include " + "inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method " + "mod module mutable new object of open! open or private rec sig struct " + "then to try type val! val virtual when while with " + "parser value",
				built_in: "array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit " + "in_channel out_channel ref",
				literal: "true false"
			},
			illegal: /\/\/|>>/,
			contains: [
				{
					className: "literal",
					begin: "\\[(\\|\\|)?\\]|\\(\\)",
					relevance: 0
				},
				hljs$1.COMMENT("\\(\\*", "\\*\\)", { contains: ["self"] }),
				{
					className: "symbol",
					begin: "'[A-Za-z_](?!')[\\w']*"
				},
				{
					className: "type",
					begin: "`[A-Z][\\w']*"
				},
				{
					className: "type",
					begin: "\\b[A-Z][\\w']*",
					relevance: 0
				},
				{
					begin: "[a-z_]\\w*'[\\w']*",
					relevance: 0
				},
				hljs$1.inherit(hljs$1.APOS_STRING_MODE, {
					className: "string",
					relevance: 0
				}),
				hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { illegal: null }),
				{
					className: "number",
					begin: "\\b(0[xX][a-fA-F0-9_]+[Lln]?|" + "0[oO][0-7_]+[Lln]?|" + "0[bB][01_]+[Lln]?|" + "[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",
					relevance: 0
				},
				{ begin: /->/ }
			]
		};
	}
	module.exports = ocaml;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/openscad.js
var require_openscad = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function openscad(hljs$1) {
		const SPECIAL_VARS = {
			className: "keyword",
			begin: "\\$(f[asn]|t|vp[rtd]|children)"
		};
		const LITERALS$6 = {
			className: "literal",
			begin: "false|true|PI|undef"
		};
		const NUMBERS = {
			className: "number",
			begin: "\\b\\d+(\\.\\d+)?(e-?\\d+)?",
			relevance: 0
		};
		const STRING = hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { illegal: null });
		const PREPRO = {
			className: "meta",
			keywords: { keyword: "include use" },
			begin: "include|use <",
			end: ">"
		};
		const PARAMS = {
			className: "params",
			begin: "\\(",
			end: "\\)",
			contains: [
				"self",
				NUMBERS,
				STRING,
				SPECIAL_VARS,
				LITERALS$6
			]
		};
		const MODIFIERS = {
			begin: "[*!#%]",
			relevance: 0
		};
		const FUNCTIONS = {
			className: "function",
			beginKeywords: "module function",
			end: /=|\{/,
			contains: [PARAMS, hljs$1.UNDERSCORE_TITLE_MODE]
		};
		return {
			name: "OpenSCAD",
			aliases: ["scad"],
			keywords: {
				keyword: "function module include use for intersection_for if else \\%",
				literal: "false true PI undef",
				built_in: "circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign"
			},
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				NUMBERS,
				PREPRO,
				STRING,
				SPECIAL_VARS,
				MODIFIERS,
				FUNCTIONS
			]
		};
	}
	module.exports = openscad;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/oxygene.js
var require_oxygene = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function oxygene(hljs$1) {
		const OXYGENE_KEYWORDS = {
			$pattern: /\.?\w+/,
			keyword: "abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue " + "create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false " + "final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited " + "inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of " + "old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly " + "record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple " + "type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal " + "register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained"
		};
		const CURLY_COMMENT = hljs$1.COMMENT(/\{/, /\}/, { relevance: 0 });
		const PAREN_COMMENT = hljs$1.COMMENT("\\(\\*", "\\*\\)", { relevance: 10 });
		const STRING = {
			className: "string",
			begin: "'",
			end: "'",
			contains: [{ begin: "''" }]
		};
		const CHAR_STRING = {
			className: "string",
			begin: "(#\\d+)+"
		};
		const FUNCTION = {
			beginKeywords: "function constructor destructor procedure method",
			end: "[:;]",
			keywords: "function constructor|10 destructor|10 procedure|10 method|10",
			contains: [
				hljs$1.inherit(hljs$1.TITLE_MODE, { scope: "title.function" }),
				{
					className: "params",
					begin: "\\(",
					end: "\\)",
					keywords: OXYGENE_KEYWORDS,
					contains: [STRING, CHAR_STRING]
				},
				CURLY_COMMENT,
				PAREN_COMMENT
			]
		};
		const SEMICOLON = {
			scope: "punctuation",
			match: /;/,
			relevance: 0
		};
		return {
			name: "Oxygene",
			case_insensitive: true,
			keywords: OXYGENE_KEYWORDS,
			illegal: "(\"|\\$[G-Zg-z]|\\/\\*|</|=>|->)",
			contains: [
				CURLY_COMMENT,
				PAREN_COMMENT,
				hljs$1.C_LINE_COMMENT_MODE,
				STRING,
				CHAR_STRING,
				hljs$1.NUMBER_MODE,
				FUNCTION,
				SEMICOLON
			]
		};
	}
	module.exports = oxygene;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/parser3.js
var require_parser3 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function parser3(hljs$1) {
		const CURLY_SUBCOMMENT = hljs$1.COMMENT(/\{/, /\}/, { contains: ["self"] });
		return {
			name: "Parser3",
			subLanguage: "xml",
			relevance: 0,
			contains: [
				hljs$1.COMMENT("^#", "$"),
				hljs$1.COMMENT(/\^rem\{/, /\}/, {
					relevance: 10,
					contains: [CURLY_SUBCOMMENT]
				}),
				{
					className: "meta",
					begin: "^@(?:BASE|USE|CLASS|OPTIONS)$",
					relevance: 10
				},
				{
					className: "title",
					begin: "@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"
				},
				{
					className: "variable",
					begin: /\$\{?[\w\-.:]+\}?/
				},
				{
					className: "keyword",
					begin: /\^[\w\-.:]+/
				},
				{
					className: "number",
					begin: "\\^#[0-9a-fA-F]+"
				},
				hljs$1.C_NUMBER_MODE
			]
		};
	}
	module.exports = parser3;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/pf.js
var require_pf = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function pf(hljs$1) {
		const MACRO = {
			className: "variable",
			begin: /\$[\w\d#@][\w\d_]*/,
			relevance: 0
		};
		const TABLE = {
			className: "variable",
			begin: /<(?!\/)/,
			end: />/
		};
		return {
			name: "Packet Filter config",
			aliases: ["pf.conf"],
			keywords: {
				$pattern: /[a-z0-9_<>-]+/,
				built_in: "block match pass load anchor|5 antispoof|10 set table",
				keyword: "in out log quick on rdomain inet inet6 proto from port os to route " + "allow-opts divert-packet divert-reply divert-to flags group icmp-type " + "icmp6-type label once probability recieved-on rtable prio queue " + "tos tag tagged user keep fragment for os drop " + "af-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robin " + "source-hash static-port " + "dup-to reply-to route-to " + "parent bandwidth default min max qlimit " + "block-policy debug fingerprints hostid limit loginterface optimization " + "reassemble ruleset-optimization basic none profile skip state-defaults " + "state-policy timeout " + "const counters persist " + "no modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppy " + "source-track global rule max-src-nodes max-src-states max-src-conn " + "max-src-conn-rate overload flush " + "scrub|5 max-mss min-ttl no-df|10 random-id",
				literal: "all any no-route self urpf-failed egress|5 unknown"
			},
			contains: [
				hljs$1.HASH_COMMENT_MODE,
				hljs$1.NUMBER_MODE,
				hljs$1.QUOTE_STRING_MODE,
				MACRO,
				TABLE
			]
		};
	}
	module.exports = pf;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/pgsql.js
var require_pgsql = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function pgsql(hljs$1) {
		const COMMENT_MODE = hljs$1.COMMENT("--", "$");
		const UNQUOTED_IDENT = "[a-zA-Z_][a-zA-Z_0-9$]*";
		const DOLLAR_STRING = "\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\$";
		const LABEL = "<<\\s*" + UNQUOTED_IDENT + "\\s*>>";
		const SQL_KW = "ABORT ALTER ANALYZE BEGIN CALL CHECKPOINT|10 CLOSE CLUSTER COMMENT COMMIT COPY CREATE DEALLOCATE DECLARE " + "DELETE DISCARD DO DROP END EXECUTE EXPLAIN FETCH GRANT IMPORT INSERT LISTEN LOAD LOCK MOVE NOTIFY " + "PREPARE REASSIGN|10 REFRESH REINDEX RELEASE RESET REVOKE ROLLBACK SAVEPOINT SECURITY SELECT SET SHOW " + "START TRUNCATE UNLISTEN|10 UPDATE VACUUM|10 VALUES " + "AGGREGATE COLLATION CONVERSION|10 DATABASE DEFAULT PRIVILEGES DOMAIN TRIGGER EXTENSION FOREIGN " + "WRAPPER|10 TABLE FUNCTION GROUP LANGUAGE LARGE OBJECT MATERIALIZED VIEW OPERATOR CLASS " + "FAMILY POLICY PUBLICATION|10 ROLE RULE SCHEMA SEQUENCE SERVER STATISTICS SUBSCRIPTION SYSTEM " + "TABLESPACE CONFIGURATION DICTIONARY PARSER TEMPLATE TYPE USER MAPPING PREPARED ACCESS " + "METHOD CAST AS TRANSFORM TRANSACTION OWNED TO INTO SESSION AUTHORIZATION " + "INDEX PROCEDURE ASSERTION " + "ALL ANALYSE AND ANY ARRAY ASC ASYMMETRIC|10 BOTH CASE CHECK " + "COLLATE COLUMN CONCURRENTLY|10 CONSTRAINT CROSS " + "DEFERRABLE RANGE " + "DESC DISTINCT ELSE EXCEPT FOR FREEZE|10 FROM FULL HAVING " + "ILIKE IN INITIALLY INNER INTERSECT IS ISNULL JOIN LATERAL LEADING LIKE LIMIT " + "NATURAL NOT NOTNULL NULL OFFSET ON ONLY OR ORDER OUTER OVERLAPS PLACING PRIMARY " + "REFERENCES RETURNING SIMILAR SOME SYMMETRIC TABLESAMPLE THEN " + "TRAILING UNION UNIQUE USING VARIADIC|10 VERBOSE WHEN WHERE WINDOW WITH " + "BY RETURNS INOUT OUT SETOF|10 IF STRICT CURRENT CONTINUE OWNER LOCATION OVER PARTITION WITHIN " + "BETWEEN ESCAPE EXTERNAL INVOKER DEFINER WORK RENAME VERSION CONNECTION CONNECT " + "TABLES TEMP TEMPORARY FUNCTIONS SEQUENCES TYPES SCHEMAS OPTION CASCADE RESTRICT ADD ADMIN " + "EXISTS VALID VALIDATE ENABLE DISABLE REPLICA|10 ALWAYS PASSING COLUMNS PATH " + "REF VALUE OVERRIDING IMMUTABLE STABLE VOLATILE BEFORE AFTER EACH ROW PROCEDURAL " + "ROUTINE NO HANDLER VALIDATOR OPTIONS STORAGE OIDS|10 WITHOUT INHERIT DEPENDS CALLED " + "INPUT LEAKPROOF|10 COST ROWS NOWAIT SEARCH UNTIL ENCRYPTED|10 PASSWORD CONFLICT|10 " + "INSTEAD INHERITS CHARACTERISTICS WRITE CURSOR ALSO STATEMENT SHARE EXCLUSIVE INLINE " + "ISOLATION REPEATABLE READ COMMITTED SERIALIZABLE UNCOMMITTED LOCAL GLOBAL SQL PROCEDURES " + "RECURSIVE SNAPSHOT ROLLUP CUBE TRUSTED|10 INCLUDE FOLLOWING PRECEDING UNBOUNDED RANGE GROUPS " + "UNENCRYPTED|10 SYSID FORMAT DELIMITER HEADER QUOTE ENCODING FILTER OFF " + "FORCE_QUOTE FORCE_NOT_NULL FORCE_NULL COSTS BUFFERS TIMING SUMMARY DISABLE_PAGE_SKIPPING " + "RESTART CYCLE GENERATED IDENTITY DEFERRED IMMEDIATE LEVEL LOGGED UNLOGGED " + "OF NOTHING NONE EXCLUDE ATTRIBUTE " + "USAGE ROUTINES " + "TRUE FALSE NAN INFINITY ";
		const ROLE_ATTRS = "SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT " + "LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS ";
		const PLPGSQL_KW = "ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS " + "STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT " + "OPEN ";
		const TYPES$6 = "BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR " + "CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 " + "MACADDR MACADDR8 MONEY NUMERIC DEC DECIMAL PATH POINT POLYGON REAL FLOAT4 SMALLINT INT2 " + "SMALLSERIAL|10 SERIAL2|10 SERIAL|10 SERIAL4|10 TEXT TIME ZONE TIMETZ|10 TIMESTAMP TIMESTAMPTZ|10 TSQUERY|10 TSVECTOR|10 " + "TXID_SNAPSHOT|10 UUID XML NATIONAL NCHAR " + "INT4RANGE|10 INT8RANGE|10 NUMRANGE|10 TSRANGE|10 TSTZRANGE|10 DATERANGE|10 " + "ANYELEMENT ANYARRAY ANYNONARRAY ANYENUM ANYRANGE CSTRING INTERNAL " + "RECORD PG_DDL_COMMAND VOID UNKNOWN OPAQUE REFCURSOR " + "NAME " + "OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 " + "REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ";
		const TYPES_RE = TYPES$6.trim().split(" ").map(function(val$1) {
			return val$1.split("|")[0];
		}).join("|");
		const SQL_BI = "CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP " + "CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC ";
		const PLPGSQL_BI = "FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 " + "TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 " + "ROW_COUNT RESULT_OID|10 PG_CONTEXT|10 RETURNED_SQLSTATE COLUMN_NAME CONSTRAINT_NAME " + "PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 " + "PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 ";
		const PLPGSQL_EXCEPTIONS = "SQLSTATE SQLERRM|10 " + "SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING " + "NULL_VALUE_ELIMINATED_IN_SET_FUNCTION PRIVILEGE_NOT_GRANTED PRIVILEGE_NOT_REVOKED " + "STRING_DATA_RIGHT_TRUNCATION DEPRECATED_FEATURE NO_DATA NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED " + "SQL_STATEMENT_NOT_YET_COMPLETE CONNECTION_EXCEPTION CONNECTION_DOES_NOT_EXIST CONNECTION_FAILURE " + "SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION " + "TRANSACTION_RESOLUTION_UNKNOWN PROTOCOL_VIOLATION TRIGGERED_ACTION_EXCEPTION FEATURE_NOT_SUPPORTED " + "INVALID_TRANSACTION_INITIATION LOCATOR_EXCEPTION INVALID_LOCATOR_SPECIFICATION INVALID_GRANTOR " + "INVALID_GRANT_OPERATION INVALID_ROLE_SPECIFICATION DIAGNOSTICS_EXCEPTION " + "STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER CASE_NOT_FOUND CARDINALITY_VIOLATION " + "DATA_EXCEPTION ARRAY_SUBSCRIPT_ERROR CHARACTER_NOT_IN_REPERTOIRE DATETIME_FIELD_OVERFLOW " + "DIVISION_BY_ZERO ERROR_IN_ASSIGNMENT ESCAPE_CHARACTER_CONFLICT INDICATOR_OVERFLOW " + "INTERVAL_FIELD_OVERFLOW INVALID_ARGUMENT_FOR_LOGARITHM INVALID_ARGUMENT_FOR_NTILE_FUNCTION " + "INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION INVALID_ARGUMENT_FOR_POWER_FUNCTION " + "INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION INVALID_CHARACTER_VALUE_FOR_CAST " + "INVALID_DATETIME_FORMAT INVALID_ESCAPE_CHARACTER INVALID_ESCAPE_OCTET INVALID_ESCAPE_SEQUENCE " + "NONSTANDARD_USE_OF_ESCAPE_CHARACTER INVALID_INDICATOR_PARAMETER_VALUE INVALID_PARAMETER_VALUE " + "INVALID_REGULAR_EXPRESSION INVALID_ROW_COUNT_IN_LIMIT_CLAUSE " + "INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE INVALID_TABLESAMPLE_ARGUMENT INVALID_TABLESAMPLE_REPEAT " + "INVALID_TIME_ZONE_DISPLACEMENT_VALUE INVALID_USE_OF_ESCAPE_CHARACTER MOST_SPECIFIC_TYPE_MISMATCH " + "NULL_VALUE_NOT_ALLOWED NULL_VALUE_NO_INDICATOR_PARAMETER NUMERIC_VALUE_OUT_OF_RANGE " + "SEQUENCE_GENERATOR_LIMIT_EXCEEDED STRING_DATA_LENGTH_MISMATCH STRING_DATA_RIGHT_TRUNCATION " + "SUBSTRING_ERROR TRIM_ERROR UNTERMINATED_C_STRING ZERO_LENGTH_CHARACTER_STRING " + "FLOATING_POINT_EXCEPTION INVALID_TEXT_REPRESENTATION INVALID_BINARY_REPRESENTATION " + "BAD_COPY_FILE_FORMAT UNTRANSLATABLE_CHARACTER NOT_AN_XML_DOCUMENT INVALID_XML_DOCUMENT " + "INVALID_XML_CONTENT INVALID_XML_COMMENT INVALID_XML_PROCESSING_INSTRUCTION " + "INTEGRITY_CONSTRAINT_VIOLATION RESTRICT_VIOLATION NOT_NULL_VIOLATION FOREIGN_KEY_VIOLATION " + "UNIQUE_VIOLATION CHECK_VIOLATION EXCLUSION_VIOLATION INVALID_CURSOR_STATE " + "INVALID_TRANSACTION_STATE ACTIVE_SQL_TRANSACTION BRANCH_TRANSACTION_ALREADY_ACTIVE " + "HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION " + "INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION " + "NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION READ_ONLY_SQL_TRANSACTION " + "SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED NO_ACTIVE_SQL_TRANSACTION " + "IN_FAILED_SQL_TRANSACTION IDLE_IN_TRANSACTION_SESSION_TIMEOUT INVALID_SQL_STATEMENT_NAME " + "TRIGGERED_DATA_CHANGE_VIOLATION INVALID_AUTHORIZATION_SPECIFICATION INVALID_PASSWORD " + "DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST DEPENDENT_OBJECTS_STILL_EXIST " + "INVALID_TRANSACTION_TERMINATION SQL_ROUTINE_EXCEPTION FUNCTION_EXECUTED_NO_RETURN_STATEMENT " + "MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED " + "READING_SQL_DATA_NOT_PERMITTED INVALID_CURSOR_NAME EXTERNAL_ROUTINE_EXCEPTION " + "CONTAINING_SQL_NOT_PERMITTED MODIFYING_SQL_DATA_NOT_PERMITTED " + "PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED " + "EXTERNAL_ROUTINE_INVOCATION_EXCEPTION INVALID_SQLSTATE_RETURNED NULL_VALUE_NOT_ALLOWED " + "TRIGGER_PROTOCOL_VIOLATED SRF_PROTOCOL_VIOLATED EVENT_TRIGGER_PROTOCOL_VIOLATED " + "SAVEPOINT_EXCEPTION INVALID_SAVEPOINT_SPECIFICATION INVALID_CATALOG_NAME " + "INVALID_SCHEMA_NAME TRANSACTION_ROLLBACK TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION " + "SERIALIZATION_FAILURE STATEMENT_COMPLETION_UNKNOWN DEADLOCK_DETECTED " + "SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION SYNTAX_ERROR INSUFFICIENT_PRIVILEGE CANNOT_COERCE " + "GROUPING_ERROR WINDOWING_ERROR INVALID_RECURSION INVALID_FOREIGN_KEY INVALID_NAME " + "NAME_TOO_LONG RESERVED_NAME DATATYPE_MISMATCH INDETERMINATE_DATATYPE COLLATION_MISMATCH " + "INDETERMINATE_COLLATION WRONG_OBJECT_TYPE GENERATED_ALWAYS UNDEFINED_COLUMN " + "UNDEFINED_FUNCTION UNDEFINED_TABLE UNDEFINED_PARAMETER UNDEFINED_OBJECT " + "DUPLICATE_COLUMN DUPLICATE_CURSOR DUPLICATE_DATABASE DUPLICATE_FUNCTION " + "DUPLICATE_PREPARED_STATEMENT DUPLICATE_SCHEMA DUPLICATE_TABLE DUPLICATE_ALIAS " + "DUPLICATE_OBJECT AMBIGUOUS_COLUMN AMBIGUOUS_FUNCTION AMBIGUOUS_PARAMETER AMBIGUOUS_ALIAS " + "INVALID_COLUMN_REFERENCE INVALID_COLUMN_DEFINITION INVALID_CURSOR_DEFINITION " + "INVALID_DATABASE_DEFINITION INVALID_FUNCTION_DEFINITION " + "INVALID_PREPARED_STATEMENT_DEFINITION INVALID_SCHEMA_DEFINITION INVALID_TABLE_DEFINITION " + "INVALID_OBJECT_DEFINITION WITH_CHECK_OPTION_VIOLATION INSUFFICIENT_RESOURCES DISK_FULL " + "OUT_OF_MEMORY TOO_MANY_CONNECTIONS CONFIGURATION_LIMIT_EXCEEDED PROGRAM_LIMIT_EXCEEDED " + "STATEMENT_TOO_COMPLEX TOO_MANY_COLUMNS TOO_MANY_ARGUMENTS OBJECT_NOT_IN_PREREQUISITE_STATE " + "OBJECT_IN_USE CANT_CHANGE_RUNTIME_PARAM LOCK_NOT_AVAILABLE OPERATOR_INTERVENTION " + "QUERY_CANCELED ADMIN_SHUTDOWN CRASH_SHUTDOWN CANNOT_CONNECT_NOW DATABASE_DROPPED " + "SYSTEM_ERROR IO_ERROR UNDEFINED_FILE DUPLICATE_FILE SNAPSHOT_TOO_OLD CONFIG_FILE_ERROR " + "LOCK_FILE_EXISTS FDW_ERROR FDW_COLUMN_NAME_NOT_FOUND FDW_DYNAMIC_PARAMETER_VALUE_NEEDED " + "FDW_FUNCTION_SEQUENCE_ERROR FDW_INCONSISTENT_DESCRIPTOR_INFORMATION " + "FDW_INVALID_ATTRIBUTE_VALUE FDW_INVALID_COLUMN_NAME FDW_INVALID_COLUMN_NUMBER " + "FDW_INVALID_DATA_TYPE FDW_INVALID_DATA_TYPE_DESCRIPTORS " + "FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER FDW_INVALID_HANDLE FDW_INVALID_OPTION_INDEX " + "FDW_INVALID_OPTION_NAME FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH " + "FDW_INVALID_STRING_FORMAT FDW_INVALID_USE_OF_NULL_POINTER FDW_TOO_MANY_HANDLES " + "FDW_OUT_OF_MEMORY FDW_NO_SCHEMAS FDW_OPTION_NAME_NOT_FOUND FDW_REPLY_HANDLE " + "FDW_SCHEMA_NOT_FOUND FDW_TABLE_NOT_FOUND FDW_UNABLE_TO_CREATE_EXECUTION " + "FDW_UNABLE_TO_CREATE_REPLY FDW_UNABLE_TO_ESTABLISH_CONNECTION PLPGSQL_ERROR " + "RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED " + "INDEX_CORRUPTED ";
		const FUNCTIONS = "ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG " + "JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG " + "CORR COVAR_POP COVAR_SAMP REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE " + "REGR_SXX REGR_SXY REGR_SYY STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP " + "PERCENTILE_CONT PERCENTILE_DISC " + "ROW_NUMBER RANK DENSE_RANK PERCENT_RANK CUME_DIST NTILE LAG LEAD FIRST_VALUE LAST_VALUE NTH_VALUE " + "NUM_NONNULLS NUM_NULLS " + "ABS CBRT CEIL CEILING DEGREES DIV EXP FLOOR LN LOG MOD PI POWER RADIANS ROUND SCALE SIGN SQRT " + "TRUNC WIDTH_BUCKET " + "RANDOM SETSEED " + "ACOS ACOSD ASIN ASIND ATAN ATAND ATAN2 ATAN2D COS COSD COT COTD SIN SIND TAN TAND " + "BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH LOWER OCTET_LENGTH OVERLAY POSITION SUBSTRING TREAT TRIM UPPER " + "ASCII BTRIM CHR CONCAT CONCAT_WS CONVERT CONVERT_FROM CONVERT_TO DECODE ENCODE INITCAP " + "LEFT LENGTH LPAD LTRIM MD5 PARSE_IDENT PG_CLIENT_ENCODING QUOTE_IDENT|10 QUOTE_LITERAL|10 " + "QUOTE_NULLABLE|10 REGEXP_MATCH REGEXP_MATCHES REGEXP_REPLACE REGEXP_SPLIT_TO_ARRAY " + "REGEXP_SPLIT_TO_TABLE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPLIT_PART STRPOS SUBSTR " + "TO_ASCII TO_HEX TRANSLATE " + "OCTET_LENGTH GET_BIT GET_BYTE SET_BIT SET_BYTE " + "TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP " + "AGE CLOCK_TIMESTAMP|10 DATE_PART DATE_TRUNC ISFINITE JUSTIFY_DAYS JUSTIFY_HOURS JUSTIFY_INTERVAL " + "MAKE_DATE MAKE_INTERVAL|10 MAKE_TIME MAKE_TIMESTAMP|10 MAKE_TIMESTAMPTZ|10 NOW STATEMENT_TIMESTAMP|10 " + "TIMEOFDAY TRANSACTION_TIMESTAMP|10 " + "ENUM_FIRST ENUM_LAST ENUM_RANGE " + "AREA CENTER DIAMETER HEIGHT ISCLOSED ISOPEN NPOINTS PCLOSE POPEN RADIUS WIDTH " + "BOX BOUND_BOX CIRCLE LINE LSEG PATH POLYGON " + "ABBREV BROADCAST HOST HOSTMASK MASKLEN NETMASK NETWORK SET_MASKLEN TEXT INET_SAME_FAMILY " + "INET_MERGE MACADDR8_SET7BIT " + "ARRAY_TO_TSVECTOR GET_CURRENT_TS_CONFIG NUMNODE PLAINTO_TSQUERY PHRASETO_TSQUERY WEBSEARCH_TO_TSQUERY " + "QUERYTREE SETWEIGHT STRIP TO_TSQUERY TO_TSVECTOR JSON_TO_TSVECTOR JSONB_TO_TSVECTOR TS_DELETE " + "TS_FILTER TS_HEADLINE TS_RANK TS_RANK_CD TS_REWRITE TSQUERY_PHRASE TSVECTOR_TO_ARRAY " + "TSVECTOR_UPDATE_TRIGGER TSVECTOR_UPDATE_TRIGGER_COLUMN " + "XMLCOMMENT XMLCONCAT XMLELEMENT XMLFOREST XMLPI XMLROOT " + "XMLEXISTS XML_IS_WELL_FORMED XML_IS_WELL_FORMED_DOCUMENT XML_IS_WELL_FORMED_CONTENT " + "XPATH XPATH_EXISTS XMLTABLE XMLNAMESPACES " + "TABLE_TO_XML TABLE_TO_XMLSCHEMA TABLE_TO_XML_AND_XMLSCHEMA " + "QUERY_TO_XML QUERY_TO_XMLSCHEMA QUERY_TO_XML_AND_XMLSCHEMA " + "CURSOR_TO_XML CURSOR_TO_XMLSCHEMA " + "SCHEMA_TO_XML SCHEMA_TO_XMLSCHEMA SCHEMA_TO_XML_AND_XMLSCHEMA " + "DATABASE_TO_XML DATABASE_TO_XMLSCHEMA DATABASE_TO_XML_AND_XMLSCHEMA " + "XMLATTRIBUTES " + "TO_JSON TO_JSONB ARRAY_TO_JSON ROW_TO_JSON JSON_BUILD_ARRAY JSONB_BUILD_ARRAY JSON_BUILD_OBJECT " + "JSONB_BUILD_OBJECT JSON_OBJECT JSONB_OBJECT JSON_ARRAY_LENGTH JSONB_ARRAY_LENGTH JSON_EACH " + "JSONB_EACH JSON_EACH_TEXT JSONB_EACH_TEXT JSON_EXTRACT_PATH JSONB_EXTRACT_PATH " + "JSON_OBJECT_KEYS JSONB_OBJECT_KEYS JSON_POPULATE_RECORD JSONB_POPULATE_RECORD JSON_POPULATE_RECORDSET " + "JSONB_POPULATE_RECORDSET JSON_ARRAY_ELEMENTS JSONB_ARRAY_ELEMENTS JSON_ARRAY_ELEMENTS_TEXT " + "JSONB_ARRAY_ELEMENTS_TEXT JSON_TYPEOF JSONB_TYPEOF JSON_TO_RECORD JSONB_TO_RECORD JSON_TO_RECORDSET " + "JSONB_TO_RECORDSET JSON_STRIP_NULLS JSONB_STRIP_NULLS JSONB_SET JSONB_INSERT JSONB_PRETTY " + "CURRVAL LASTVAL NEXTVAL SETVAL " + "COALESCE NULLIF GREATEST LEAST " + "ARRAY_APPEND ARRAY_CAT ARRAY_NDIMS ARRAY_DIMS ARRAY_FILL ARRAY_LENGTH ARRAY_LOWER ARRAY_POSITION " + "ARRAY_POSITIONS ARRAY_PREPEND ARRAY_REMOVE ARRAY_REPLACE ARRAY_TO_STRING ARRAY_UPPER CARDINALITY " + "STRING_TO_ARRAY UNNEST " + "ISEMPTY LOWER_INC UPPER_INC LOWER_INF UPPER_INF RANGE_MERGE " + "GENERATE_SERIES GENERATE_SUBSCRIPTS " + "CURRENT_DATABASE CURRENT_QUERY CURRENT_SCHEMA|10 CURRENT_SCHEMAS|10 INET_CLIENT_ADDR INET_CLIENT_PORT " + "INET_SERVER_ADDR INET_SERVER_PORT ROW_SECURITY_ACTIVE FORMAT_TYPE " + "TO_REGCLASS TO_REGPROC TO_REGPROCEDURE TO_REGOPER TO_REGOPERATOR TO_REGTYPE TO_REGNAMESPACE TO_REGROLE " + "COL_DESCRIPTION OBJ_DESCRIPTION SHOBJ_DESCRIPTION " + "TXID_CURRENT TXID_CURRENT_IF_ASSIGNED TXID_CURRENT_SNAPSHOT TXID_SNAPSHOT_XIP TXID_SNAPSHOT_XMAX " + "TXID_SNAPSHOT_XMIN TXID_VISIBLE_IN_SNAPSHOT TXID_STATUS " + "CURRENT_SETTING SET_CONFIG BRIN_SUMMARIZE_NEW_VALUES BRIN_SUMMARIZE_RANGE BRIN_DESUMMARIZE_RANGE " + "GIN_CLEAN_PENDING_LIST " + "SUPPRESS_REDUNDANT_UPDATES_TRIGGER " + "LO_FROM_BYTEA LO_PUT LO_GET LO_CREAT LO_CREATE LO_UNLINK LO_IMPORT LO_EXPORT LOREAD LOWRITE " + "GROUPING CAST ";
		const FUNCTIONS_RE = FUNCTIONS.trim().split(" ").map(function(val$1) {
			return val$1.split("|")[0];
		}).join("|");
		return {
			name: "PostgreSQL",
			aliases: ["postgres", "postgresql"],
			supersetOf: "sql",
			case_insensitive: true,
			keywords: {
				keyword: SQL_KW + PLPGSQL_KW + ROLE_ATTRS,
				built_in: SQL_BI + PLPGSQL_BI + PLPGSQL_EXCEPTIONS
			},
			illegal: /:==|\W\s*\(\*|(^|\s)\$[a-z]|\{\{|[a-z]:\s*$|\.\.\.|TO:|DO:/,
			contains: [
				{
					className: "keyword",
					variants: [
						{ begin: /\bTEXT\s*SEARCH\b/ },
						{ begin: /\b(PRIMARY|FOREIGN|FOR(\s+NO)?)\s+KEY\b/ },
						{ begin: /\bPARALLEL\s+(UNSAFE|RESTRICTED|SAFE)\b/ },
						{ begin: /\bSTORAGE\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\b/ },
						{ begin: /\bMATCH\s+(FULL|PARTIAL|SIMPLE)\b/ },
						{ begin: /\bNULLS\s+(FIRST|LAST)\b/ },
						{ begin: /\bEVENT\s+TRIGGER\b/ },
						{ begin: /\b(MAPPING|OR)\s+REPLACE\b/ },
						{ begin: /\b(FROM|TO)\s+(PROGRAM|STDIN|STDOUT)\b/ },
						{ begin: /\b(SHARE|EXCLUSIVE)\s+MODE\b/ },
						{ begin: /\b(LEFT|RIGHT)\s+(OUTER\s+)?JOIN\b/ },
						{ begin: /\b(FETCH|MOVE)\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\b/ },
						{ begin: /\bPRESERVE\s+ROWS\b/ },
						{ begin: /\bDISCARD\s+PLANS\b/ },
						{ begin: /\bREFERENCING\s+(OLD|NEW)\b/ },
						{ begin: /\bSKIP\s+LOCKED\b/ },
						{ begin: /\bGROUPING\s+SETS\b/ },
						{ begin: /\b(BINARY|INSENSITIVE|SCROLL|NO\s+SCROLL)\s+(CURSOR|FOR)\b/ },
						{ begin: /\b(WITH|WITHOUT)\s+HOLD\b/ },
						{ begin: /\bWITH\s+(CASCADED|LOCAL)\s+CHECK\s+OPTION\b/ },
						{ begin: /\bEXCLUDE\s+(TIES|NO\s+OTHERS)\b/ },
						{ begin: /\bFORMAT\s+(TEXT|XML|JSON|YAML)\b/ },
						{ begin: /\bSET\s+((SESSION|LOCAL)\s+)?NAMES\b/ },
						{ begin: /\bIS\s+(NOT\s+)?UNKNOWN\b/ },
						{ begin: /\bSECURITY\s+LABEL\b/ },
						{ begin: /\bSTANDALONE\s+(YES|NO|NO\s+VALUE)\b/ },
						{ begin: /\bWITH\s+(NO\s+)?DATA\b/ },
						{ begin: /\b(FOREIGN|SET)\s+DATA\b/ },
						{ begin: /\bSET\s+(CATALOG|CONSTRAINTS)\b/ },
						{ begin: /\b(WITH|FOR)\s+ORDINALITY\b/ },
						{ begin: /\bIS\s+(NOT\s+)?DOCUMENT\b/ },
						{ begin: /\bXML\s+OPTION\s+(DOCUMENT|CONTENT)\b/ },
						{ begin: /\b(STRIP|PRESERVE)\s+WHITESPACE\b/ },
						{ begin: /\bNO\s+(ACTION|MAXVALUE|MINVALUE)\b/ },
						{ begin: /\bPARTITION\s+BY\s+(RANGE|LIST|HASH)\b/ },
						{ begin: /\bAT\s+TIME\s+ZONE\b/ },
						{ begin: /\bGRANTED\s+BY\b/ },
						{ begin: /\bRETURN\s+(QUERY|NEXT)\b/ },
						{ begin: /\b(ATTACH|DETACH)\s+PARTITION\b/ },
						{ begin: /\bFORCE\s+ROW\s+LEVEL\s+SECURITY\b/ },
						{ begin: /\b(INCLUDING|EXCLUDING)\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\b/ },
						{ begin: /\bAS\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\b/ }
					]
				},
				{ begin: /\b(FORMAT|FAMILY|VERSION)\s*\(/ },
				{
					begin: /\bINCLUDE\s*\(/,
					keywords: "INCLUDE"
				},
				{ begin: /\bRANGE(?!\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/ },
				{ begin: /\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\s*=/ },
				{
					begin: /\b(PG_\w+?|HAS_[A-Z_]+_PRIVILEGE)\b/,
					relevance: 10
				},
				{
					begin: /\bEXTRACT\s*\(/,
					end: /\bFROM\b/,
					returnEnd: true,
					keywords: { type: "CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS " + "MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR " + "TIMEZONE_MINUTE WEEK YEAR" }
				},
				{
					begin: /\b(XMLELEMENT|XMLPI)\s*\(\s*NAME/,
					keywords: { keyword: "NAME" }
				},
				{
					begin: /\b(XMLPARSE|XMLSERIALIZE)\s*\(\s*(DOCUMENT|CONTENT)/,
					keywords: { keyword: "DOCUMENT CONTENT" }
				},
				{
					beginKeywords: "CACHE INCREMENT MAXVALUE MINVALUE",
					end: hljs$1.C_NUMBER_RE,
					returnEnd: true,
					keywords: "BY CACHE INCREMENT MAXVALUE MINVALUE"
				},
				{
					className: "type",
					begin: /\b(WITH|WITHOUT)\s+TIME\s+ZONE\b/
				},
				{
					className: "type",
					begin: /\bINTERVAL\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\s+TO\s+(MONTH|HOUR|MINUTE|SECOND))?\b/
				},
				{
					begin: /\bRETURNS\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\b/,
					keywords: {
						keyword: "RETURNS",
						type: "LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER"
					}
				},
				{ begin: "\\b(" + FUNCTIONS_RE + ")\\s*\\(" },
				{ begin: "\\.(" + TYPES_RE + ")\\b" },
				{
					begin: "\\b(" + TYPES_RE + ")\\s+PATH\\b",
					keywords: {
						keyword: "PATH",
						type: TYPES$6.replace("PATH ", "")
					}
				},
				{
					className: "type",
					begin: "\\b(" + TYPES_RE + ")\\b"
				},
				{
					className: "string",
					begin: "'",
					end: "'",
					contains: [{ begin: "''" }]
				},
				{
					className: "string",
					begin: "(e|E|u&|U&)'",
					end: "'",
					contains: [{ begin: "\\\\." }],
					relevance: 10
				},
				hljs$1.END_SAME_AS_BEGIN({
					begin: DOLLAR_STRING,
					end: DOLLAR_STRING,
					contains: [{
						subLanguage: [
							"pgsql",
							"perl",
							"python",
							"tcl",
							"r",
							"lua",
							"java",
							"php",
							"ruby",
							"bash",
							"scheme",
							"xml",
							"json"
						],
						endsWithParent: true
					}]
				}),
				{
					begin: "\"",
					end: "\"",
					contains: [{ begin: "\"\"" }]
				},
				hljs$1.C_NUMBER_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				COMMENT_MODE,
				{
					className: "meta",
					variants: [
						{
							begin: "%(ROW)?TYPE",
							relevance: 10
						},
						{ begin: "\\$\\d+" },
						{
							begin: "^#\\w",
							end: "$"
						}
					]
				},
				{
					className: "symbol",
					begin: LABEL,
					relevance: 10
				}
			]
		};
	}
	module.exports = pgsql;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/php.js
var require_php = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/**
	* @param {HLJSApi} hljs
	* @returns {LanguageDetail}
	* */
	function php(hljs$1) {
		const regex = hljs$1.regex;
		const NOT_PERL_ETC = /(?![A-Za-z0-9])(?![$])/;
		const IDENT_RE$6 = regex.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/, NOT_PERL_ETC);
		const PASCAL_CASE_CLASS_NAME_RE = regex.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/, NOT_PERL_ETC);
		const UPCASE_NAME_RE = regex.concat(/[A-Z]+/, NOT_PERL_ETC);
		const VARIABLE = {
			scope: "variable",
			match: "\\$+" + IDENT_RE$6
		};
		const PREPROCESSOR = {
			scope: "meta",
			variants: [
				{
					begin: /<\?php/,
					relevance: 10
				},
				{ begin: /<\?=/ },
				{
					begin: /<\?/,
					relevance: .1
				},
				{ begin: /\?>/ }
			]
		};
		const SUBST = {
			scope: "subst",
			variants: [{ begin: /\$\w+/ }, {
				begin: /\{\$/,
				end: /\}/
			}]
		};
		const SINGLE_QUOTED = hljs$1.inherit(hljs$1.APOS_STRING_MODE, { illegal: null });
		const DOUBLE_QUOTED = hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, {
			illegal: null,
			contains: hljs$1.QUOTE_STRING_MODE.contains.concat(SUBST)
		});
		const HEREDOC = {
			begin: /<<<[ \t]*(?:(\w+)|"(\w+)")\n/,
			end: /[ \t]*(\w+)\b/,
			contains: hljs$1.QUOTE_STRING_MODE.contains.concat(SUBST),
			"on:begin": (m$3, resp) => {
				resp.data._beginMatch = m$3[1] || m$3[2];
			},
			"on:end": (m$3, resp) => {
				if (resp.data._beginMatch !== m$3[1]) resp.ignoreMatch();
			}
		};
		const NOWDOC = hljs$1.END_SAME_AS_BEGIN({
			begin: /<<<[ \t]*'(\w+)'\n/,
			end: /[ \t]*(\w+)\b/
		});
		const WHITESPACE = "[ 	\n]";
		const STRING = {
			scope: "string",
			variants: [
				DOUBLE_QUOTED,
				SINGLE_QUOTED,
				HEREDOC,
				NOWDOC
			]
		};
		const NUMBER = {
			scope: "number",
			variants: [
				{ begin: `\\b0[bB][01]+(?:_[01]+)*\\b` },
				{ begin: `\\b0[oO][0-7]+(?:_[0-7]+)*\\b` },
				{ begin: `\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b` },
				{ begin: `(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?` }
			],
			relevance: 0
		};
		const LITERALS$6 = [
			"false",
			"null",
			"true"
		];
		const KWS = [
			"__CLASS__",
			"__DIR__",
			"__FILE__",
			"__FUNCTION__",
			"__COMPILER_HALT_OFFSET__",
			"__LINE__",
			"__METHOD__",
			"__NAMESPACE__",
			"__TRAIT__",
			"die",
			"echo",
			"exit",
			"include",
			"include_once",
			"print",
			"require",
			"require_once",
			"array",
			"abstract",
			"and",
			"as",
			"binary",
			"bool",
			"boolean",
			"break",
			"callable",
			"case",
			"catch",
			"class",
			"clone",
			"const",
			"continue",
			"declare",
			"default",
			"do",
			"double",
			"else",
			"elseif",
			"empty",
			"enddeclare",
			"endfor",
			"endforeach",
			"endif",
			"endswitch",
			"endwhile",
			"enum",
			"eval",
			"extends",
			"final",
			"finally",
			"float",
			"for",
			"foreach",
			"from",
			"global",
			"goto",
			"if",
			"implements",
			"instanceof",
			"insteadof",
			"int",
			"integer",
			"interface",
			"isset",
			"iterable",
			"list",
			"match|0",
			"mixed",
			"new",
			"never",
			"object",
			"or",
			"private",
			"protected",
			"public",
			"readonly",
			"real",
			"return",
			"string",
			"switch",
			"throw",
			"trait",
			"try",
			"unset",
			"use",
			"var",
			"void",
			"while",
			"xor",
			"yield"
		];
		const BUILT_INS$6 = [
			"Error|0",
			"AppendIterator",
			"ArgumentCountError",
			"ArithmeticError",
			"ArrayIterator",
			"ArrayObject",
			"AssertionError",
			"BadFunctionCallException",
			"BadMethodCallException",
			"CachingIterator",
			"CallbackFilterIterator",
			"CompileError",
			"Countable",
			"DirectoryIterator",
			"DivisionByZeroError",
			"DomainException",
			"EmptyIterator",
			"ErrorException",
			"Exception",
			"FilesystemIterator",
			"FilterIterator",
			"GlobIterator",
			"InfiniteIterator",
			"InvalidArgumentException",
			"IteratorIterator",
			"LengthException",
			"LimitIterator",
			"LogicException",
			"MultipleIterator",
			"NoRewindIterator",
			"OutOfBoundsException",
			"OutOfRangeException",
			"OuterIterator",
			"OverflowException",
			"ParentIterator",
			"ParseError",
			"RangeException",
			"RecursiveArrayIterator",
			"RecursiveCachingIterator",
			"RecursiveCallbackFilterIterator",
			"RecursiveDirectoryIterator",
			"RecursiveFilterIterator",
			"RecursiveIterator",
			"RecursiveIteratorIterator",
			"RecursiveRegexIterator",
			"RecursiveTreeIterator",
			"RegexIterator",
			"RuntimeException",
			"SeekableIterator",
			"SplDoublyLinkedList",
			"SplFileInfo",
			"SplFileObject",
			"SplFixedArray",
			"SplHeap",
			"SplMaxHeap",
			"SplMinHeap",
			"SplObjectStorage",
			"SplObserver",
			"SplPriorityQueue",
			"SplQueue",
			"SplStack",
			"SplSubject",
			"SplTempFileObject",
			"TypeError",
			"UnderflowException",
			"UnexpectedValueException",
			"UnhandledMatchError",
			"ArrayAccess",
			"BackedEnum",
			"Closure",
			"Fiber",
			"Generator",
			"Iterator",
			"IteratorAggregate",
			"Serializable",
			"Stringable",
			"Throwable",
			"Traversable",
			"UnitEnum",
			"WeakReference",
			"WeakMap",
			"Directory",
			"__PHP_Incomplete_Class",
			"parent",
			"php_user_filter",
			"self",
			"static",
			"stdClass"
		];
		/** Dual-case keywords
		*
		* ["then","FILE"] =>
		*     ["then", "THEN", "FILE", "file"]
		*
		* @param {string[]} items */
		const dualCase = (items) => {
			/** @type string[] */
			const result = [];
			items.forEach((item) => {
				result.push(item);
				if (item.toLowerCase() === item) {
					result.push(item.toUpperCase());
				} else {
					result.push(item.toLowerCase());
				}
			});
			return result;
		};
		const KEYWORDS$6 = {
			keyword: KWS,
			literal: dualCase(LITERALS$6),
			built_in: BUILT_INS$6
		};
		/**
		* @param {string[]} items */
		const normalizeKeywords = (items) => {
			return items.map((item) => {
				return item.replace(/\|\d+$/, "");
			});
		};
		const CONSTRUCTOR_CALL = { variants: [{
			match: [
				/new/,
				regex.concat(WHITESPACE, "+"),
				regex.concat("(?!", normalizeKeywords(BUILT_INS$6).join("\\b|"), "\\b)"),
				PASCAL_CASE_CLASS_NAME_RE
			],
			scope: {
				1: "keyword",
				4: "title.class"
			}
		}] };
		const CONSTANT_REFERENCE = regex.concat(IDENT_RE$6, "\\b(?!\\()");
		const LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON = { variants: [
			{
				match: [regex.concat(/::/, regex.lookahead(/(?!class\b)/)), CONSTANT_REFERENCE],
				scope: { 2: "variable.constant" }
			},
			{
				match: [/::/, /class/],
				scope: { 2: "variable.language" }
			},
			{
				match: [
					PASCAL_CASE_CLASS_NAME_RE,
					regex.concat(/::/, regex.lookahead(/(?!class\b)/)),
					CONSTANT_REFERENCE
				],
				scope: {
					1: "title.class",
					3: "variable.constant"
				}
			},
			{
				match: [PASCAL_CASE_CLASS_NAME_RE, regex.concat("::", regex.lookahead(/(?!class\b)/))],
				scope: { 1: "title.class" }
			},
			{
				match: [
					PASCAL_CASE_CLASS_NAME_RE,
					/::/,
					/class/
				],
				scope: {
					1: "title.class",
					3: "variable.language"
				}
			}
		] };
		const NAMED_ARGUMENT = {
			scope: "attr",
			match: regex.concat(IDENT_RE$6, regex.lookahead(":"), regex.lookahead(/(?!::)/))
		};
		const PARAMS_MODE = {
			relevance: 0,
			begin: /\(/,
			end: /\)/,
			keywords: KEYWORDS$6,
			contains: [
				NAMED_ARGUMENT,
				VARIABLE,
				LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,
				hljs$1.C_BLOCK_COMMENT_MODE,
				STRING,
				NUMBER,
				CONSTRUCTOR_CALL
			]
		};
		const FUNCTION_INVOKE = {
			relevance: 0,
			match: [
				/\b/,
				regex.concat("(?!fn\\b|function\\b|", normalizeKeywords(KWS).join("\\b|"), "|", normalizeKeywords(BUILT_INS$6).join("\\b|"), "\\b)"),
				IDENT_RE$6,
				regex.concat(WHITESPACE, "*"),
				regex.lookahead(/(?=\()/)
			],
			scope: { 3: "title.function.invoke" },
			contains: [PARAMS_MODE]
		};
		PARAMS_MODE.contains.push(FUNCTION_INVOKE);
		const ATTRIBUTE_CONTAINS = [
			NAMED_ARGUMENT,
			LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,
			hljs$1.C_BLOCK_COMMENT_MODE,
			STRING,
			NUMBER,
			CONSTRUCTOR_CALL
		];
		const ATTRIBUTES$5 = {
			begin: regex.concat(/#\[\s*\\?/, regex.either(PASCAL_CASE_CLASS_NAME_RE, UPCASE_NAME_RE)),
			beginScope: "meta",
			end: /]/,
			endScope: "meta",
			keywords: {
				literal: LITERALS$6,
				keyword: ["new", "array"]
			},
			contains: [
				{
					begin: /\[/,
					end: /]/,
					keywords: {
						literal: LITERALS$6,
						keyword: ["new", "array"]
					},
					contains: ["self", ...ATTRIBUTE_CONTAINS]
				},
				...ATTRIBUTE_CONTAINS,
				{
					scope: "meta",
					variants: [{ match: PASCAL_CASE_CLASS_NAME_RE }, { match: UPCASE_NAME_RE }]
				}
			]
		};
		return {
			case_insensitive: false,
			keywords: KEYWORDS$6,
			contains: [
				ATTRIBUTES$5,
				hljs$1.HASH_COMMENT_MODE,
				hljs$1.COMMENT("//", "$"),
				hljs$1.COMMENT("/\\*", "\\*/", { contains: [{
					scope: "doctag",
					match: "@[A-Za-z]+"
				}] }),
				{
					match: /__halt_compiler\(\);/,
					keywords: "__halt_compiler",
					starts: {
						scope: "comment",
						end: hljs$1.MATCH_NOTHING_RE,
						contains: [{
							match: /\?>/,
							scope: "meta",
							endsParent: true
						}]
					}
				},
				PREPROCESSOR,
				{
					scope: "variable.language",
					match: /\$this\b/
				},
				VARIABLE,
				FUNCTION_INVOKE,
				LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,
				{
					match: [
						/const/,
						/\s/,
						IDENT_RE$6
					],
					scope: {
						1: "keyword",
						3: "variable.constant"
					}
				},
				CONSTRUCTOR_CALL,
				{
					scope: "function",
					relevance: 0,
					beginKeywords: "fn function",
					end: /[;{]/,
					excludeEnd: true,
					illegal: "[$%\\[]",
					contains: [
						{ beginKeywords: "use" },
						hljs$1.UNDERSCORE_TITLE_MODE,
						{
							begin: "=>",
							endsParent: true
						},
						{
							scope: "params",
							begin: "\\(",
							end: "\\)",
							excludeBegin: true,
							excludeEnd: true,
							keywords: KEYWORDS$6,
							contains: [
								"self",
								ATTRIBUTES$5,
								VARIABLE,
								LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,
								hljs$1.C_BLOCK_COMMENT_MODE,
								STRING,
								NUMBER
							]
						}
					]
				},
				{
					scope: "class",
					variants: [{
						beginKeywords: "enum",
						illegal: /[($"]/
					}, {
						beginKeywords: "class interface trait",
						illegal: /[:($"]/
					}],
					relevance: 0,
					end: /\{/,
					excludeEnd: true,
					contains: [{ beginKeywords: "extends implements" }, hljs$1.UNDERSCORE_TITLE_MODE]
				},
				{
					beginKeywords: "namespace",
					relevance: 0,
					end: ";",
					illegal: /[.']/,
					contains: [hljs$1.inherit(hljs$1.UNDERSCORE_TITLE_MODE, { scope: "title.class" })]
				},
				{
					beginKeywords: "use",
					relevance: 0,
					end: ";",
					contains: [{
						match: /\b(as|const|function)\b/,
						scope: "keyword"
					}, hljs$1.UNDERSCORE_TITLE_MODE]
				},
				STRING,
				NUMBER
			]
		};
	}
	module.exports = php;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/php-template.js
var require_php_template = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function phpTemplate(hljs$1) {
		return {
			name: "PHP template",
			subLanguage: "xml",
			contains: [{
				begin: /<\?(php|=)?/,
				end: /\?>/,
				subLanguage: "php",
				contains: [
					{
						begin: "/\\*",
						end: "\\*/",
						skip: true
					},
					{
						begin: "b\"",
						end: "\"",
						skip: true
					},
					{
						begin: "b'",
						end: "'",
						skip: true
					},
					hljs$1.inherit(hljs$1.APOS_STRING_MODE, {
						illegal: null,
						className: null,
						contains: null,
						skip: true
					}),
					hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, {
						illegal: null,
						className: null,
						contains: null,
						skip: true
					})
				]
			}]
		};
	}
	module.exports = phpTemplate;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/plaintext.js
var require_plaintext = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function plaintext(hljs$1) {
		return {
			name: "Plain text",
			aliases: ["text", "txt"],
			disableAutodetect: true
		};
	}
	module.exports = plaintext;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/pony.js
var require_pony = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function pony(hljs$1) {
		const KEYWORDS$6 = {
			keyword: "actor addressof and as be break class compile_error compile_intrinsic " + "consume continue delegate digestof do else elseif embed end error " + "for fun if ifdef in interface is isnt lambda let match new not object " + "or primitive recover repeat return struct then trait try type until " + "use var where while with xor",
			meta: "iso val tag trn box ref",
			literal: "this false true"
		};
		const TRIPLE_QUOTE_STRING_MODE = {
			className: "string",
			begin: "\"\"\"",
			end: "\"\"\"",
			relevance: 10
		};
		const QUOTE_STRING_MODE$2 = {
			className: "string",
			begin: "\"",
			end: "\"",
			contains: [hljs$1.BACKSLASH_ESCAPE]
		};
		const SINGLE_QUOTE_CHAR_MODE = {
			className: "string",
			begin: "'",
			end: "'",
			contains: [hljs$1.BACKSLASH_ESCAPE],
			relevance: 0
		};
		const TYPE_NAME = {
			className: "type",
			begin: "\\b_?[A-Z][\\w]*",
			relevance: 0
		};
		const PRIMED_NAME = {
			begin: hljs$1.IDENT_RE + "'",
			relevance: 0
		};
		const NUMBER_MODE$2 = {
			className: "number",
			begin: "(-?)(\\b0[xX][a-fA-F0-9]+|\\b0[bB][01]+|(\\b\\d+(_\\d+)?(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",
			relevance: 0
		};
		/**
		* The `FUNCTION` and `CLASS` modes were intentionally removed to simplify
		* highlighting and fix cases like
		* ```
		* interface Iterator[A: A]
		*   fun has_next(): Bool
		*   fun next(): A?
		* ```
		* where it is valid to have a function head without a body
		*/
		return {
			name: "Pony",
			keywords: KEYWORDS$6,
			contains: [
				TYPE_NAME,
				TRIPLE_QUOTE_STRING_MODE,
				QUOTE_STRING_MODE$2,
				SINGLE_QUOTE_CHAR_MODE,
				PRIMED_NAME,
				NUMBER_MODE$2,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE
			]
		};
	}
	module.exports = pony;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/powershell.js
var require_powershell = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function powershell(hljs$1) {
		const TYPES$6 = [
			"string",
			"char",
			"byte",
			"int",
			"long",
			"bool",
			"decimal",
			"single",
			"double",
			"DateTime",
			"xml",
			"array",
			"hashtable",
			"void"
		];
		const VALID_VERBS = "Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|" + "Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|" + "Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|" + "Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|" + "ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|" + "Limit|Merge|Mount|Out|Publish|Restore|Save|Sync|Unpublish|Update|" + "Approve|Assert|Build|Complete|Confirm|Deny|Deploy|Disable|Enable|Install|Invoke|" + "Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|" + "Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|" + "Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|" + "Unprotect|Use|ForEach|Sort|Tee|Where";
		const COMPARISON_OPERATORS = "-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|" + "-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|" + "-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|" + "-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|" + "-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|" + "-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|" + "-split|-wildcard|-xor";
		const KEYWORDS$6 = {
			$pattern: /-?[A-z\.\-]+\b/,
			keyword: "if else foreach return do while until elseif begin for trap data dynamicparam " + "end break throw param continue finally in switch exit filter try process catch " + "hidden static parameter",
			built_in: "ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp " + "cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx " + "fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group " + "gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi " + "iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh " + "popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp " + "rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp " + "spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write"
		};
		const TITLE_NAME_RE = /\w[\w\d]*((-)[\w\d]+)*/;
		const BACKTICK_ESCAPE = {
			begin: "`[\\s\\S]",
			relevance: 0
		};
		const VAR = {
			className: "variable",
			variants: [
				{ begin: /\$\B/ },
				{
					className: "keyword",
					begin: /\$this/
				},
				{ begin: /\$[\w\d][\w\d_:]*/ }
			]
		};
		const LITERAL = {
			className: "literal",
			begin: /\$(null|true|false)\b/
		};
		const QUOTE_STRING = {
			className: "string",
			variants: [{
				begin: /"/,
				end: /"/
			}, {
				begin: /@"/,
				end: /^"@/
			}],
			contains: [
				BACKTICK_ESCAPE,
				VAR,
				{
					className: "variable",
					begin: /\$[A-z]/,
					end: /[^A-z]/
				}
			]
		};
		const APOS_STRING = {
			className: "string",
			variants: [{
				begin: /'/,
				end: /'/
			}, {
				begin: /@'/,
				end: /^'@/
			}]
		};
		const PS_HELPTAGS = {
			className: "doctag",
			variants: [{ begin: /\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/ }, { begin: /\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/ }]
		};
		const PS_COMMENT = hljs$1.inherit(hljs$1.COMMENT(null, null), {
			variants: [{
				begin: /#/,
				end: /$/
			}, {
				begin: /<#/,
				end: /#>/
			}],
			contains: [PS_HELPTAGS]
		});
		const CMDLETS = {
			className: "built_in",
			variants: [{ begin: "(".concat(VALID_VERBS, ")+(-)[\\w\\d]+") }]
		};
		const PS_CLASS = {
			className: "class",
			beginKeywords: "class enum",
			end: /\s*[{]/,
			excludeEnd: true,
			relevance: 0,
			contains: [hljs$1.TITLE_MODE]
		};
		const PS_FUNCTION = {
			className: "function",
			begin: /function\s+/,
			end: /\s*\{|$/,
			excludeEnd: true,
			returnBegin: true,
			relevance: 0,
			contains: [
				{
					begin: "function",
					relevance: 0,
					className: "keyword"
				},
				{
					className: "title",
					begin: TITLE_NAME_RE,
					relevance: 0
				},
				{
					begin: /\(/,
					end: /\)/,
					className: "params",
					relevance: 0,
					contains: [VAR]
				}
			]
		};
		const PS_USING = {
			begin: /using\s/,
			end: /$/,
			returnBegin: true,
			contains: [
				QUOTE_STRING,
				APOS_STRING,
				{
					className: "keyword",
					begin: /(using|assembly|command|module|namespace|type)/
				}
			]
		};
		const PS_ARGUMENTS = { variants: [{
			className: "operator",
			begin: "(".concat(COMPARISON_OPERATORS, ")\\b")
		}, {
			className: "literal",
			begin: /(-){1,2}[\w\d-]+/,
			relevance: 0
		}] };
		const HASH_SIGNS = {
			className: "selector-tag",
			begin: /@\B/,
			relevance: 0
		};
		const PS_METHODS = {
			className: "function",
			begin: /\[.*\]\s*[\w]+[ ]??\(/,
			end: /$/,
			returnBegin: true,
			relevance: 0,
			contains: [{
				className: "keyword",
				begin: "(".concat(KEYWORDS$6.keyword.toString().replace(/\s/g, "|"), ")\\b"),
				endsParent: true,
				relevance: 0
			}, hljs$1.inherit(hljs$1.TITLE_MODE, { endsParent: true })]
		};
		const GENTLEMANS_SET = [
			PS_METHODS,
			PS_COMMENT,
			BACKTICK_ESCAPE,
			hljs$1.NUMBER_MODE,
			QUOTE_STRING,
			APOS_STRING,
			CMDLETS,
			VAR,
			LITERAL,
			HASH_SIGNS
		];
		const PS_TYPE = {
			begin: /\[/,
			end: /\]/,
			excludeBegin: true,
			excludeEnd: true,
			relevance: 0,
			contains: [].concat("self", GENTLEMANS_SET, {
				begin: "(" + TYPES$6.join("|") + ")",
				className: "built_in",
				relevance: 0
			}, {
				className: "type",
				begin: /[\.\w\d]+/,
				relevance: 0
			})
		};
		PS_METHODS.contains.unshift(PS_TYPE);
		return {
			name: "PowerShell",
			aliases: [
				"pwsh",
				"ps",
				"ps1"
			],
			case_insensitive: true,
			keywords: KEYWORDS$6,
			contains: GENTLEMANS_SET.concat(PS_CLASS, PS_FUNCTION, PS_USING, PS_ARGUMENTS, PS_TYPE)
		};
	}
	module.exports = powershell;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/processing.js
var require_processing = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function processing(hljs$1) {
		const regex = hljs$1.regex;
		const BUILT_INS$6 = [
			"displayHeight",
			"displayWidth",
			"mouseY",
			"mouseX",
			"mousePressed",
			"pmouseX",
			"pmouseY",
			"key",
			"keyCode",
			"pixels",
			"focused",
			"frameCount",
			"frameRate",
			"height",
			"width",
			"size",
			"createGraphics",
			"beginDraw",
			"createShape",
			"loadShape",
			"PShape",
			"arc",
			"ellipse",
			"line",
			"point",
			"quad",
			"rect",
			"triangle",
			"bezier",
			"bezierDetail",
			"bezierPoint",
			"bezierTangent",
			"curve",
			"curveDetail",
			"curvePoint",
			"curveTangent",
			"curveTightness",
			"shape",
			"shapeMode",
			"beginContour",
			"beginShape",
			"bezierVertex",
			"curveVertex",
			"endContour",
			"endShape",
			"quadraticVertex",
			"vertex",
			"ellipseMode",
			"noSmooth",
			"rectMode",
			"smooth",
			"strokeCap",
			"strokeJoin",
			"strokeWeight",
			"mouseClicked",
			"mouseDragged",
			"mouseMoved",
			"mousePressed",
			"mouseReleased",
			"mouseWheel",
			"keyPressed",
			"keyPressedkeyReleased",
			"keyTyped",
			"print",
			"println",
			"save",
			"saveFrame",
			"day",
			"hour",
			"millis",
			"minute",
			"month",
			"second",
			"year",
			"background",
			"clear",
			"colorMode",
			"fill",
			"noFill",
			"noStroke",
			"stroke",
			"alpha",
			"blue",
			"brightness",
			"color",
			"green",
			"hue",
			"lerpColor",
			"red",
			"saturation",
			"modelX",
			"modelY",
			"modelZ",
			"screenX",
			"screenY",
			"screenZ",
			"ambient",
			"emissive",
			"shininess",
			"specular",
			"add",
			"createImage",
			"beginCamera",
			"camera",
			"endCamera",
			"frustum",
			"ortho",
			"perspective",
			"printCamera",
			"printProjection",
			"cursor",
			"frameRate",
			"noCursor",
			"exit",
			"loop",
			"noLoop",
			"popStyle",
			"pushStyle",
			"redraw",
			"binary",
			"boolean",
			"byte",
			"char",
			"float",
			"hex",
			"int",
			"str",
			"unbinary",
			"unhex",
			"join",
			"match",
			"matchAll",
			"nf",
			"nfc",
			"nfp",
			"nfs",
			"split",
			"splitTokens",
			"trim",
			"append",
			"arrayCopy",
			"concat",
			"expand",
			"reverse",
			"shorten",
			"sort",
			"splice",
			"subset",
			"box",
			"sphere",
			"sphereDetail",
			"createInput",
			"createReader",
			"loadBytes",
			"loadJSONArray",
			"loadJSONObject",
			"loadStrings",
			"loadTable",
			"loadXML",
			"open",
			"parseXML",
			"saveTable",
			"selectFolder",
			"selectInput",
			"beginRaw",
			"beginRecord",
			"createOutput",
			"createWriter",
			"endRaw",
			"endRecord",
			"PrintWritersaveBytes",
			"saveJSONArray",
			"saveJSONObject",
			"saveStream",
			"saveStrings",
			"saveXML",
			"selectOutput",
			"popMatrix",
			"printMatrix",
			"pushMatrix",
			"resetMatrix",
			"rotate",
			"rotateX",
			"rotateY",
			"rotateZ",
			"scale",
			"shearX",
			"shearY",
			"translate",
			"ambientLight",
			"directionalLight",
			"lightFalloff",
			"lights",
			"lightSpecular",
			"noLights",
			"normal",
			"pointLight",
			"spotLight",
			"image",
			"imageMode",
			"loadImage",
			"noTint",
			"requestImage",
			"tint",
			"texture",
			"textureMode",
			"textureWrap",
			"blend",
			"copy",
			"filter",
			"get",
			"loadPixels",
			"set",
			"updatePixels",
			"blendMode",
			"loadShader",
			"PShaderresetShader",
			"shader",
			"createFont",
			"loadFont",
			"text",
			"textFont",
			"textAlign",
			"textLeading",
			"textMode",
			"textSize",
			"textWidth",
			"textAscent",
			"textDescent",
			"abs",
			"ceil",
			"constrain",
			"dist",
			"exp",
			"floor",
			"lerp",
			"log",
			"mag",
			"map",
			"max",
			"min",
			"norm",
			"pow",
			"round",
			"sq",
			"sqrt",
			"acos",
			"asin",
			"atan",
			"atan2",
			"cos",
			"degrees",
			"radians",
			"sin",
			"tan",
			"noise",
			"noiseDetail",
			"noiseSeed",
			"random",
			"randomGaussian",
			"randomSeed"
		];
		const IDENT = hljs$1.IDENT_RE;
		const FUNC_NAME = { variants: [{
			match: regex.concat(regex.either(...BUILT_INS$6), regex.lookahead(/\s*\(/)),
			className: "built_in"
		}, {
			relevance: 0,
			match: regex.concat(/\b(?!for|if|while)/, IDENT, regex.lookahead(/\s*\(/)),
			className: "title.function"
		}] };
		const NEW_CLASS = {
			match: [/new\s+/, IDENT],
			className: {
				1: "keyword",
				2: "class.title"
			}
		};
		const PROPERTY = {
			relevance: 0,
			match: [/\./, IDENT],
			className: { 2: "property" }
		};
		const CLASS = {
			variants: [{ match: [
				/class/,
				/\s+/,
				IDENT,
				/\s+/,
				/extends/,
				/\s+/,
				IDENT
			] }, { match: [
				/class/,
				/\s+/,
				IDENT
			] }],
			className: {
				1: "keyword",
				3: "title.class",
				5: "keyword",
				7: "title.class.inherited"
			}
		};
		const TYPES$6 = [
			"boolean",
			"byte",
			"char",
			"color",
			"double",
			"float",
			"int",
			"long",
			"short"
		];
		const CLASSES = [
			"BufferedReader",
			"PVector",
			"PFont",
			"PImage",
			"PGraphics",
			"HashMap",
			"String",
			"Array",
			"FloatDict",
			"ArrayList",
			"FloatList",
			"IntDict",
			"IntList",
			"JSONArray",
			"JSONObject",
			"Object",
			"StringDict",
			"StringList",
			"Table",
			"TableRow",
			"XML"
		];
		const JAVA_KEYWORDS = [
			"abstract",
			"assert",
			"break",
			"case",
			"catch",
			"const",
			"continue",
			"default",
			"else",
			"enum",
			"final",
			"finally",
			"for",
			"if",
			"import",
			"instanceof",
			"long",
			"native",
			"new",
			"package",
			"private",
			"private",
			"protected",
			"protected",
			"public",
			"public",
			"return",
			"static",
			"strictfp",
			"switch",
			"synchronized",
			"throw",
			"throws",
			"transient",
			"try",
			"void",
			"volatile",
			"while"
		];
		return {
			name: "Processing",
			aliases: ["pde"],
			keywords: {
				keyword: [...JAVA_KEYWORDS],
				literal: "P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI null true false",
				title: "setup draw",
				variable: "super this",
				built_in: [...BUILT_INS$6, ...CLASSES],
				type: TYPES$6
			},
			contains: [
				CLASS,
				NEW_CLASS,
				FUNC_NAME,
				PROPERTY,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.C_NUMBER_MODE
			]
		};
	}
	module.exports = processing;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/profile.js
var require_profile = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function profile(hljs$1) {
		return {
			name: "Python profiler",
			contains: [
				hljs$1.C_NUMBER_MODE,
				{
					begin: "[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",
					end: ":",
					excludeEnd: true
				},
				{
					begin: "(ncalls|tottime|cumtime)",
					end: "$",
					keywords: "ncalls tottime|10 cumtime|10 filename",
					relevance: 10
				},
				{
					begin: "function calls",
					end: "$",
					contains: [hljs$1.C_NUMBER_MODE],
					relevance: 10
				},
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				{
					className: "string",
					begin: "\\(",
					end: "\\)$",
					excludeBegin: true,
					excludeEnd: true,
					relevance: 0
				}
			]
		};
	}
	module.exports = profile;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/prolog.js
var require_prolog = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function prolog(hljs$1) {
		const ATOM = {
			begin: /[a-z][A-Za-z0-9_]*/,
			relevance: 0
		};
		const VAR = {
			className: "symbol",
			variants: [{ begin: /[A-Z][a-zA-Z0-9_]*/ }, { begin: /_[A-Za-z0-9_]*/ }],
			relevance: 0
		};
		const PARENTED = {
			begin: /\(/,
			end: /\)/,
			relevance: 0
		};
		const LIST = {
			begin: /\[/,
			end: /\]/
		};
		const LINE_COMMENT = {
			className: "comment",
			begin: /%/,
			end: /$/,
			contains: [hljs$1.PHRASAL_WORDS_MODE]
		};
		const BACKTICK_STRING = {
			className: "string",
			begin: /`/,
			end: /`/,
			contains: [hljs$1.BACKSLASH_ESCAPE]
		};
		const CHAR_CODE = {
			className: "string",
			begin: /0'(\\'|.)/
		};
		const SPACE_CODE = {
			className: "string",
			begin: /0'\\s/
		};
		const PRED_OP = { begin: /:-/ };
		const inner$1 = [
			ATOM,
			VAR,
			PARENTED,
			PRED_OP,
			LIST,
			LINE_COMMENT,
			hljs$1.C_BLOCK_COMMENT_MODE,
			hljs$1.QUOTE_STRING_MODE,
			hljs$1.APOS_STRING_MODE,
			BACKTICK_STRING,
			CHAR_CODE,
			SPACE_CODE,
			hljs$1.C_NUMBER_MODE
		];
		PARENTED.contains = inner$1;
		LIST.contains = inner$1;
		return {
			name: "Prolog",
			contains: inner$1.concat([{ begin: /\.$/ }])
		};
	}
	module.exports = prolog;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/properties.js
var require_properties = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function properties(hljs$1) {
		const WS0 = "[ \\t\\f]*";
		const WS1 = "[ \\t\\f]+";
		const EQUAL_DELIM = WS0 + "[:=]" + WS0;
		const WS_DELIM = WS1;
		const DELIM = "(" + EQUAL_DELIM + "|" + WS_DELIM + ")";
		const KEY = "([^\\\\:= \\t\\f\\n]|\\\\.)+";
		const DELIM_AND_VALUE = {
			end: DELIM,
			relevance: 0,
			starts: {
				className: "string",
				end: /$/,
				relevance: 0,
				contains: [{ begin: "\\\\\\\\" }, { begin: "\\\\\\n" }]
			}
		};
		return {
			name: ".properties",
			disableAutodetect: true,
			case_insensitive: true,
			illegal: /\S/,
			contains: [
				hljs$1.COMMENT("^\\s*[!#]", "$"),
				{
					returnBegin: true,
					variants: [{ begin: KEY + EQUAL_DELIM }, { begin: KEY + WS_DELIM }],
					contains: [{
						className: "attr",
						begin: KEY,
						endsParent: true
					}],
					starts: DELIM_AND_VALUE
				},
				{
					className: "attr",
					begin: KEY + WS0 + "$"
				}
			]
		};
	}
	module.exports = properties;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/protobuf.js
var require_protobuf = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function protobuf(hljs$1) {
		const KEYWORDS$6 = [
			"package",
			"import",
			"option",
			"optional",
			"required",
			"repeated",
			"group",
			"oneof"
		];
		const TYPES$6 = [
			"double",
			"float",
			"int32",
			"int64",
			"uint32",
			"uint64",
			"sint32",
			"sint64",
			"fixed32",
			"fixed64",
			"sfixed32",
			"sfixed64",
			"bool",
			"string",
			"bytes"
		];
		const CLASS_DEFINITION = {
			match: [/(message|enum|service)\s+/, hljs$1.IDENT_RE],
			scope: {
				1: "keyword",
				2: "title.class"
			}
		};
		return {
			name: "Protocol Buffers",
			aliases: ["proto"],
			keywords: {
				keyword: KEYWORDS$6,
				type: TYPES$6,
				literal: ["true", "false"]
			},
			contains: [
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.NUMBER_MODE,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				CLASS_DEFINITION,
				{
					className: "function",
					beginKeywords: "rpc",
					end: /[{;]/,
					excludeEnd: true,
					keywords: "rpc returns"
				},
				{ begin: /^\s*[A-Z_]+(?=\s*=[^\n]+;$)/ }
			]
		};
	}
	module.exports = protobuf;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/puppet.js
var require_puppet = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function puppet(hljs$1) {
		const PUPPET_KEYWORDS = {
			keyword: "and case default else elsif false if in import enherits node or true undef unless main settings $string ",
			literal: "alias audit before loglevel noop require subscribe tag " + "owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check " + "en_address ip_address realname command environment hour monute month monthday special target weekday " + "creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore " + "links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source " + "souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid " + "ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel " + "native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options " + "device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use " + "message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform " + "responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running " + "start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age " + "password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled " + "enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist " + "priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey " + "sslverify mounted",
			built_in: "architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers " + "domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces " + "ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion " + "kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease " + "lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major " + "macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease " + "operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion " + "rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced " + "selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime " + "uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version"
		};
		const COMMENT$2 = hljs$1.COMMENT("#", "$");
		const IDENT_RE$6 = "([A-Za-z_]|::)(\\w|::)*";
		const TITLE = hljs$1.inherit(hljs$1.TITLE_MODE, { begin: IDENT_RE$6 });
		const VARIABLE = {
			className: "variable",
			begin: "\\$" + IDENT_RE$6
		};
		const STRING = {
			className: "string",
			contains: [hljs$1.BACKSLASH_ESCAPE, VARIABLE],
			variants: [{
				begin: /'/,
				end: /'/
			}, {
				begin: /"/,
				end: /"/
			}]
		};
		return {
			name: "Puppet",
			aliases: ["pp"],
			contains: [
				COMMENT$2,
				VARIABLE,
				STRING,
				{
					beginKeywords: "class",
					end: "\\{|;",
					illegal: /=/,
					contains: [TITLE, COMMENT$2]
				},
				{
					beginKeywords: "define",
					end: /\{/,
					contains: [{
						className: "section",
						begin: hljs$1.IDENT_RE,
						endsParent: true
					}]
				},
				{
					begin: hljs$1.IDENT_RE + "\\s+\\{",
					returnBegin: true,
					end: /\S/,
					contains: [{
						className: "keyword",
						begin: hljs$1.IDENT_RE,
						relevance: .2
					}, {
						begin: /\{/,
						end: /\}/,
						keywords: PUPPET_KEYWORDS,
						relevance: 0,
						contains: [
							STRING,
							COMMENT$2,
							{
								begin: "[a-zA-Z_]+\\s*=>",
								returnBegin: true,
								end: "=>",
								contains: [{
									className: "attr",
									begin: hljs$1.IDENT_RE
								}]
							},
							{
								className: "number",
								begin: "(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",
								relevance: 0
							},
							VARIABLE
						]
					}],
					relevance: 0
				}
			]
		};
	}
	module.exports = puppet;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/purebasic.js
var require_purebasic = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function purebasic(hljs$1) {
		const STRINGS = {
			className: "string",
			begin: "(~)?\"",
			end: "\"",
			illegal: "\\n"
		};
		const CONSTANTS = {
			className: "symbol",
			begin: "#[a-zA-Z_]\\w*\\$?"
		};
		return {
			name: "PureBASIC",
			aliases: ["pb", "pbi"],
			keywords: "Align And Array As Break CallDebugger Case CompilerCase CompilerDefault " + "CompilerElse CompilerElseIf CompilerEndIf CompilerEndSelect CompilerError " + "CompilerIf CompilerSelect CompilerWarning Continue Data DataSection Debug " + "DebugLevel Declare DeclareC DeclareCDLL DeclareDLL DeclareModule Default " + "Define Dim DisableASM DisableDebugger DisableExplicit Else ElseIf EnableASM " + "EnableDebugger EnableExplicit End EndDataSection EndDeclareModule EndEnumeration " + "EndIf EndImport EndInterface EndMacro EndModule EndProcedure EndSelect " + "EndStructure EndStructureUnion EndWith Enumeration EnumerationBinary Extends " + "FakeReturn For ForEach ForEver Global Gosub Goto If Import ImportC " + "IncludeBinary IncludeFile IncludePath Interface List Macro MacroExpandedCount " + "Map Module NewList NewMap Next Not Or Procedure ProcedureC " + "ProcedureCDLL ProcedureDLL ProcedureReturn Protected Prototype PrototypeC ReDim " + "Read Repeat Restore Return Runtime Select Shared Static Step Structure " + "StructureUnion Swap Threaded To UndefineMacro Until Until  UnuseModule " + "UseModule Wend While With XIncludeFile XOr",
			contains: [
				hljs$1.COMMENT(";", "$", { relevance: 0 }),
				{
					className: "function",
					begin: "\\b(Procedure|Declare)(C|CDLL|DLL)?\\b",
					end: "\\(",
					excludeEnd: true,
					returnBegin: true,
					contains: [
						{
							className: "keyword",
							begin: "(Procedure|Declare)(C|CDLL|DLL)?",
							excludeEnd: true
						},
						{
							className: "type",
							begin: "\\.\\w*"
						},
						hljs$1.UNDERSCORE_TITLE_MODE
					]
				},
				STRINGS,
				CONSTANTS
			]
		};
	}
	module.exports = purebasic;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/python.js
var require_python = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function python$1(hljs$1) {
		const regex = hljs$1.regex;
		const IDENT_RE$6 = /[\p{XID_Start}_]\p{XID_Continue}*/u;
		const RESERVED_WORDS = [
			"and",
			"as",
			"assert",
			"async",
			"await",
			"break",
			"case",
			"class",
			"continue",
			"def",
			"del",
			"elif",
			"else",
			"except",
			"finally",
			"for",
			"from",
			"global",
			"if",
			"import",
			"in",
			"is",
			"lambda",
			"match",
			"nonlocal|10",
			"not",
			"or",
			"pass",
			"raise",
			"return",
			"try",
			"while",
			"with",
			"yield"
		];
		const BUILT_INS$6 = [
			"__import__",
			"abs",
			"all",
			"any",
			"ascii",
			"bin",
			"bool",
			"breakpoint",
			"bytearray",
			"bytes",
			"callable",
			"chr",
			"classmethod",
			"compile",
			"complex",
			"delattr",
			"dict",
			"dir",
			"divmod",
			"enumerate",
			"eval",
			"exec",
			"filter",
			"float",
			"format",
			"frozenset",
			"getattr",
			"globals",
			"hasattr",
			"hash",
			"help",
			"hex",
			"id",
			"input",
			"int",
			"isinstance",
			"issubclass",
			"iter",
			"len",
			"list",
			"locals",
			"map",
			"max",
			"memoryview",
			"min",
			"next",
			"object",
			"oct",
			"open",
			"ord",
			"pow",
			"print",
			"property",
			"range",
			"repr",
			"reversed",
			"round",
			"set",
			"setattr",
			"slice",
			"sorted",
			"staticmethod",
			"str",
			"sum",
			"super",
			"tuple",
			"type",
			"vars",
			"zip"
		];
		const LITERALS$6 = [
			"__debug__",
			"Ellipsis",
			"False",
			"None",
			"NotImplemented",
			"True"
		];
		const TYPES$6 = [
			"Any",
			"Callable",
			"Coroutine",
			"Dict",
			"List",
			"Literal",
			"Generic",
			"Optional",
			"Sequence",
			"Set",
			"Tuple",
			"Type",
			"Union"
		];
		const KEYWORDS$6 = {
			$pattern: /[A-Za-z]\w+|__\w+__/,
			keyword: RESERVED_WORDS,
			built_in: BUILT_INS$6,
			literal: LITERALS$6,
			type: TYPES$6
		};
		const PROMPT = {
			className: "meta",
			begin: /^(>>>|\.\.\.) /
		};
		const SUBST = {
			className: "subst",
			begin: /\{/,
			end: /\}/,
			keywords: KEYWORDS$6,
			illegal: /#/
		};
		const LITERAL_BRACKET = {
			begin: /\{\{/,
			relevance: 0
		};
		const STRING = {
			className: "string",
			contains: [hljs$1.BACKSLASH_ESCAPE],
			variants: [
				{
					begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,
					end: /'''/,
					contains: [hljs$1.BACKSLASH_ESCAPE, PROMPT],
					relevance: 10
				},
				{
					begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,
					end: /"""/,
					contains: [hljs$1.BACKSLASH_ESCAPE, PROMPT],
					relevance: 10
				},
				{
					begin: /([fF][rR]|[rR][fF]|[fF])'''/,
					end: /'''/,
					contains: [
						hljs$1.BACKSLASH_ESCAPE,
						PROMPT,
						LITERAL_BRACKET,
						SUBST
					]
				},
				{
					begin: /([fF][rR]|[rR][fF]|[fF])"""/,
					end: /"""/,
					contains: [
						hljs$1.BACKSLASH_ESCAPE,
						PROMPT,
						LITERAL_BRACKET,
						SUBST
					]
				},
				{
					begin: /([uU]|[rR])'/,
					end: /'/,
					relevance: 10
				},
				{
					begin: /([uU]|[rR])"/,
					end: /"/,
					relevance: 10
				},
				{
					begin: /([bB]|[bB][rR]|[rR][bB])'/,
					end: /'/
				},
				{
					begin: /([bB]|[bB][rR]|[rR][bB])"/,
					end: /"/
				},
				{
					begin: /([fF][rR]|[rR][fF]|[fF])'/,
					end: /'/,
					contains: [
						hljs$1.BACKSLASH_ESCAPE,
						LITERAL_BRACKET,
						SUBST
					]
				},
				{
					begin: /([fF][rR]|[rR][fF]|[fF])"/,
					end: /"/,
					contains: [
						hljs$1.BACKSLASH_ESCAPE,
						LITERAL_BRACKET,
						SUBST
					]
				},
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE
			]
		};
		const digitpart = "[0-9](_?[0-9])*";
		const pointfloat = `(\\b(${digitpart}))?\\.(${digitpart})|\\b(${digitpart})\\.`;
		const lookahead$4 = `\\b|${RESERVED_WORDS.join("|")}`;
		const NUMBER = {
			className: "number",
			relevance: 0,
			variants: [
				{ begin: `(\\b(${digitpart})|(${pointfloat}))[eE][+-]?(${digitpart})[jJ]?(?=${lookahead$4})` },
				{ begin: `(${pointfloat})[jJ]?` },
				{ begin: `\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${lookahead$4})` },
				{ begin: `\\b0[bB](_?[01])+[lL]?(?=${lookahead$4})` },
				{ begin: `\\b0[oO](_?[0-7])+[lL]?(?=${lookahead$4})` },
				{ begin: `\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${lookahead$4})` },
				{ begin: `\\b(${digitpart})[jJ](?=${lookahead$4})` }
			]
		};
		const COMMENT_TYPE = {
			className: "comment",
			begin: regex.lookahead(/# type:/),
			end: /$/,
			keywords: KEYWORDS$6,
			contains: [{ begin: /# type:/ }, {
				begin: /#/,
				end: /\b\B/,
				endsWithParent: true
			}]
		};
		const PARAMS = {
			className: "params",
			variants: [{
				className: "",
				begin: /\(\s*\)/,
				skip: true
			}, {
				begin: /\(/,
				end: /\)/,
				excludeBegin: true,
				excludeEnd: true,
				keywords: KEYWORDS$6,
				contains: [
					"self",
					PROMPT,
					NUMBER,
					STRING,
					hljs$1.HASH_COMMENT_MODE
				]
			}]
		};
		SUBST.contains = [
			STRING,
			NUMBER,
			PROMPT
		];
		return {
			name: "Python",
			aliases: [
				"py",
				"gyp",
				"ipython"
			],
			unicodeRegex: true,
			keywords: KEYWORDS$6,
			illegal: /(<\/|\?)|=>/,
			contains: [
				PROMPT,
				NUMBER,
				{
					scope: "variable.language",
					match: /\bself\b/
				},
				{
					beginKeywords: "if",
					relevance: 0
				},
				{
					match: /\bor\b/,
					scope: "keyword"
				},
				STRING,
				COMMENT_TYPE,
				hljs$1.HASH_COMMENT_MODE,
				{
					match: [
						/\bdef/,
						/\s+/,
						IDENT_RE$6
					],
					scope: {
						1: "keyword",
						3: "title.function"
					},
					contains: [PARAMS]
				},
				{
					variants: [{ match: [
						/\bclass/,
						/\s+/,
						IDENT_RE$6,
						/\s*/,
						/\(\s*/,
						IDENT_RE$6,
						/\s*\)/
					] }, { match: [
						/\bclass/,
						/\s+/,
						IDENT_RE$6
					] }],
					scope: {
						1: "keyword",
						3: "title.class",
						6: "title.class.inherited"
					}
				},
				{
					className: "meta",
					begin: /^[\t ]*@/,
					end: /(?=#)|$/,
					contains: [
						NUMBER,
						PARAMS,
						STRING
					]
				}
			]
		};
	}
	module.exports = python$1;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/python-repl.js
var require_python_repl = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function pythonRepl(hljs$1) {
		return {
			aliases: ["pycon"],
			contains: [{
				className: "meta.prompt",
				starts: {
					end: / |$/,
					starts: {
						end: "$",
						subLanguage: "python"
					}
				},
				variants: [{ begin: /^>>>(?=[ ]|$)/ }, { begin: /^\.\.\.(?=[ ]|$)/ }]
			}]
		};
	}
	module.exports = pythonRepl;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/q.js
var require_q = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function q(hljs$1) {
		const KEYWORDS$6 = {
			$pattern: /(`?)[A-Za-z0-9_]+\b/,
			keyword: "do while select delete by update from",
			literal: "0b 1b",
			built_in: "neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum",
			type: "`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid"
		};
		return {
			name: "Q",
			aliases: ["k", "kdb"],
			keywords: KEYWORDS$6,
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.C_NUMBER_MODE
			]
		};
	}
	module.exports = q;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/qml.js
var require_qml = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function qml(hljs$1) {
		const regex = hljs$1.regex;
		const KEYWORDS$6 = {
			keyword: "in of on if for while finally var new function do return void else break catch " + "instanceof with throw case default try this switch continue typeof delete " + "let yield const export super debugger as async await import",
			literal: "true false null undefined NaN Infinity",
			built_in: "eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent " + "encodeURI encodeURIComponent escape unescape Object Function Boolean Error " + "EvalError InternalError RangeError ReferenceError StopIteration SyntaxError " + "TypeError URIError Number Math Date String RegExp Array Float32Array " + "Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array " + "Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require " + "module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect " + "Behavior bool color coordinate date double enumeration font geocircle georectangle " + "geoshape int list matrix4x4 parent point quaternion real rect " + "size string url variant vector2d vector3d vector4d " + "Promise"
		};
		const QML_IDENT_RE = "[a-zA-Z_][a-zA-Z0-9\\._]*";
		const PROPERTY = {
			className: "keyword",
			begin: "\\bproperty\\b",
			starts: {
				className: "string",
				end: "(:|=|;|,|//|/\\*|$)",
				returnEnd: true
			}
		};
		const SIGNAL = {
			className: "keyword",
			begin: "\\bsignal\\b",
			starts: {
				className: "string",
				end: "(\\(|:|=|;|,|//|/\\*|$)",
				returnEnd: true
			}
		};
		const ID_ID = {
			className: "attribute",
			begin: "\\bid\\s*:",
			starts: {
				className: "string",
				end: QML_IDENT_RE,
				returnEnd: false
			}
		};
		const QML_ATTRIBUTE = {
			begin: QML_IDENT_RE + "\\s*:",
			returnBegin: true,
			contains: [{
				className: "attribute",
				begin: QML_IDENT_RE,
				end: "\\s*:",
				excludeEnd: true,
				relevance: 0
			}],
			relevance: 0
		};
		const QML_OBJECT = {
			begin: regex.concat(QML_IDENT_RE, /\s*\{/),
			end: /\{/,
			returnBegin: true,
			relevance: 0,
			contains: [hljs$1.inherit(hljs$1.TITLE_MODE, { begin: QML_IDENT_RE })]
		};
		return {
			name: "QML",
			aliases: ["qt"],
			case_insensitive: false,
			keywords: KEYWORDS$6,
			contains: [
				{
					className: "meta",
					begin: /^\s*['"]use (strict|asm)['"]/
				},
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				{
					className: "string",
					begin: "`",
					end: "`",
					contains: [hljs$1.BACKSLASH_ESCAPE, {
						className: "subst",
						begin: "\\$\\{",
						end: "\\}"
					}]
				},
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				{
					className: "number",
					variants: [
						{ begin: "\\b(0[bB][01]+)" },
						{ begin: "\\b(0[oO][0-7]+)" },
						{ begin: hljs$1.C_NUMBER_RE }
					],
					relevance: 0
				},
				{
					begin: "(" + hljs$1.RE_STARTERS_RE + "|\\b(case|return|throw)\\b)\\s*",
					keywords: "return throw case",
					contains: [
						hljs$1.C_LINE_COMMENT_MODE,
						hljs$1.C_BLOCK_COMMENT_MODE,
						hljs$1.REGEXP_MODE,
						{
							begin: /</,
							end: />\s*[);\]]/,
							relevance: 0,
							subLanguage: "xml"
						}
					],
					relevance: 0
				},
				SIGNAL,
				PROPERTY,
				{
					className: "function",
					beginKeywords: "function",
					end: /\{/,
					excludeEnd: true,
					contains: [hljs$1.inherit(hljs$1.TITLE_MODE, { begin: /[A-Za-z$_][0-9A-Za-z$_]*/ }), {
						className: "params",
						begin: /\(/,
						end: /\)/,
						excludeBegin: true,
						excludeEnd: true,
						contains: [hljs$1.C_LINE_COMMENT_MODE, hljs$1.C_BLOCK_COMMENT_MODE]
					}],
					illegal: /\[|%/
				},
				{
					begin: "\\." + hljs$1.IDENT_RE,
					relevance: 0
				},
				ID_ID,
				QML_ATTRIBUTE,
				QML_OBJECT
			],
			illegal: /#/
		};
	}
	module.exports = qml;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/r.js
var require_r = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function r$1(hljs$1) {
		const regex = hljs$1.regex;
		const IDENT_RE$6 = /(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/;
		const NUMBER_TYPES_RE = regex.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/, /0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/, /(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/);
		const OPERATORS_RE = /[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/;
		const PUNCTUATION_RE = regex.either(/[()]/, /[{}]/, /\[\[/, /[[\]]/, /\\/, /,/);
		return {
			name: "R",
			keywords: {
				$pattern: IDENT_RE$6,
				keyword: "function if in break next repeat else for while",
				literal: "NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 " + "NA_character_|10 NA_complex_|10",
				built_in: "LETTERS letters month.abb month.name pi T F " + "abs acos acosh all any anyNA Arg as.call as.character " + "as.complex as.double as.environment as.integer as.logical " + "as.null.default as.numeric as.raw asin asinh atan atanh attr " + "attributes baseenv browser c call ceiling class Conj cos cosh " + "cospi cummax cummin cumprod cumsum digamma dim dimnames " + "emptyenv exp expression floor forceAndCall gamma gc.time " + "globalenv Im interactive invisible is.array is.atomic is.call " + "is.character is.complex is.double is.environment is.expression " + "is.finite is.function is.infinite is.integer is.language " + "is.list is.logical is.matrix is.na is.name is.nan is.null " + "is.numeric is.object is.pairlist is.raw is.recursive is.single " + "is.symbol lazyLoadDBfetch length lgamma list log max min " + "missing Mod names nargs nzchar oldClass on.exit pos.to.env " + "proc.time prod quote range Re rep retracemem return round " + "seq_along seq_len seq.int sign signif sin sinh sinpi sqrt " + "standardGeneric substitute sum switch tan tanh tanpi tracemem " + "trigamma trunc unclass untracemem UseMethod xtfrm"
			},
			contains: [
				hljs$1.COMMENT(/#'/, /$/, { contains: [
					{
						scope: "doctag",
						match: /@examples/,
						starts: {
							end: regex.lookahead(regex.either(/\n^#'\s*(?=@[a-zA-Z]+)/, /\n^(?!#')/)),
							endsParent: true
						}
					},
					{
						scope: "doctag",
						begin: "@param",
						end: /$/,
						contains: [{
							scope: "variable",
							variants: [{ match: IDENT_RE$6 }, { match: /`(?:\\.|[^`\\])+`/ }],
							endsParent: true
						}]
					},
					{
						scope: "doctag",
						match: /@[a-zA-Z]+/
					},
					{
						scope: "keyword",
						match: /\\[a-zA-Z]+/
					}
				] }),
				hljs$1.HASH_COMMENT_MODE,
				{
					scope: "string",
					contains: [hljs$1.BACKSLASH_ESCAPE],
					variants: [
						hljs$1.END_SAME_AS_BEGIN({
							begin: /[rR]"(-*)\(/,
							end: /\)(-*)"/
						}),
						hljs$1.END_SAME_AS_BEGIN({
							begin: /[rR]"(-*)\{/,
							end: /\}(-*)"/
						}),
						hljs$1.END_SAME_AS_BEGIN({
							begin: /[rR]"(-*)\[/,
							end: /\](-*)"/
						}),
						hljs$1.END_SAME_AS_BEGIN({
							begin: /[rR]'(-*)\(/,
							end: /\)(-*)'/
						}),
						hljs$1.END_SAME_AS_BEGIN({
							begin: /[rR]'(-*)\{/,
							end: /\}(-*)'/
						}),
						hljs$1.END_SAME_AS_BEGIN({
							begin: /[rR]'(-*)\[/,
							end: /\](-*)'/
						}),
						{
							begin: "\"",
							end: "\"",
							relevance: 0
						},
						{
							begin: "'",
							end: "'",
							relevance: 0
						}
					]
				},
				{
					relevance: 0,
					variants: [
						{
							scope: {
								1: "operator",
								2: "number"
							},
							match: [OPERATORS_RE, NUMBER_TYPES_RE]
						},
						{
							scope: {
								1: "operator",
								2: "number"
							},
							match: [/%[^%]*%/, NUMBER_TYPES_RE]
						},
						{
							scope: {
								1: "punctuation",
								2: "number"
							},
							match: [PUNCTUATION_RE, NUMBER_TYPES_RE]
						},
						{
							scope: { 2: "number" },
							match: [/[^a-zA-Z0-9._]|^/, NUMBER_TYPES_RE]
						}
					]
				},
				{
					scope: { 3: "operator" },
					match: [
						IDENT_RE$6,
						/\s+/,
						/<-/,
						/\s+/
					]
				},
				{
					scope: "operator",
					relevance: 0,
					variants: [{ match: OPERATORS_RE }, { match: /%[^%]*%/ }]
				},
				{
					scope: "punctuation",
					relevance: 0,
					match: PUNCTUATION_RE
				},
				{
					begin: "`",
					end: "`",
					contains: [{ begin: /\\./ }]
				}
			]
		};
	}
	module.exports = r$1;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/reasonml.js
var require_reasonml = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function reasonml(hljs$1) {
		const BUILT_IN_TYPES = [
			"array",
			"bool",
			"bytes",
			"char",
			"exn|5",
			"float",
			"int",
			"int32",
			"int64",
			"list",
			"lazy_t|5",
			"nativeint|5",
			"ref",
			"string",
			"unit"
		];
		return {
			name: "ReasonML",
			aliases: ["re"],
			keywords: {
				$pattern: /[a-z_]\w*!?/,
				keyword: [
					"and",
					"as",
					"asr",
					"assert",
					"begin",
					"class",
					"constraint",
					"do",
					"done",
					"downto",
					"else",
					"end",
					"esfun",
					"exception",
					"external",
					"for",
					"fun",
					"function",
					"functor",
					"if",
					"in",
					"include",
					"inherit",
					"initializer",
					"land",
					"lazy",
					"let",
					"lor",
					"lsl",
					"lsr",
					"lxor",
					"mod",
					"module",
					"mutable",
					"new",
					"nonrec",
					"object",
					"of",
					"open",
					"or",
					"pri",
					"pub",
					"rec",
					"sig",
					"struct",
					"switch",
					"then",
					"to",
					"try",
					"type",
					"val",
					"virtual",
					"when",
					"while",
					"with"
				],
				built_in: BUILT_IN_TYPES,
				literal: ["true", "false"]
			},
			illegal: /(:-|:=|\$\{|\+=)/,
			contains: [
				{
					scope: "literal",
					match: /\[(\|\|)?\]|\(\)/,
					relevance: 0
				},
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.COMMENT(/\/\*/, /\*\//, { illegal: /^(#,\/\/)/ }),
				{
					scope: "symbol",
					match: /\'[A-Za-z_](?!\')[\w\']*/
				},
				{
					scope: "type",
					match: /`[A-Z][\w\']*/
				},
				{
					scope: "type",
					match: /\b[A-Z][\w\']*/,
					relevance: 0
				},
				{
					match: /[a-z_]\w*\'[\w\']*/,
					relevance: 0
				},
				{
					scope: "operator",
					match: /\s+(\|\||\+[\+\.]?|\*[\*\/\.]?|\/[\.]?|\.\.\.|\|>|&&|===?)\s+/,
					relevance: 0
				},
				hljs$1.inherit(hljs$1.APOS_STRING_MODE, {
					scope: "string",
					relevance: 0
				}),
				hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { illegal: null }),
				{
					scope: "number",
					variants: [
						{ match: /\b0[xX][a-fA-F0-9_]+[Lln]?/ },
						{ match: /\b0[oO][0-7_]+[Lln]?/ },
						{ match: /\b0[bB][01_]+[Lln]?/ },
						{ match: /\b[0-9][0-9_]*([Lln]|(\.[0-9_]*)?([eE][-+]?[0-9_]+)?)/ }
					],
					relevance: 0
				}
			]
		};
	}
	module.exports = reasonml;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/rib.js
var require_rib = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function rib(hljs$1) {
		return {
			name: "RenderMan RIB",
			keywords: "ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis " + "Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone " + "CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail " + "DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format " + "FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry " + "Hider Hyperboloid Identity Illuminate Imager Interior LightSource " + "MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte " + "MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option " + "Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples " + "PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection " + "Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow " + "ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere " + "SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd " + "TransformPoints Translate TrimCurve WorldBegin WorldEnd",
			illegal: "</",
			contains: [
				hljs$1.HASH_COMMENT_MODE,
				hljs$1.C_NUMBER_MODE,
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE
			]
		};
	}
	module.exports = rib;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/roboconf.js
var require_roboconf = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function roboconf(hljs$1) {
		const IDENTIFIER = "[a-zA-Z-_][^\\n{]+\\{";
		const PROPERTY = {
			className: "attribute",
			begin: /[a-zA-Z-_]+/,
			end: /\s*:/,
			excludeEnd: true,
			starts: {
				end: ";",
				relevance: 0,
				contains: [{
					className: "variable",
					begin: /\.[a-zA-Z-_]+/
				}, {
					className: "keyword",
					begin: /\(optional\)/
				}]
			}
		};
		return {
			name: "Roboconf",
			aliases: ["graph", "instances"],
			case_insensitive: true,
			keywords: "import",
			contains: [
				{
					begin: "^facet " + IDENTIFIER,
					end: /\}/,
					keywords: "facet",
					contains: [PROPERTY, hljs$1.HASH_COMMENT_MODE]
				},
				{
					begin: "^\\s*instance of " + IDENTIFIER,
					end: /\}/,
					keywords: "name count channels instance-data instance-state instance of",
					illegal: /\S/,
					contains: [
						"self",
						PROPERTY,
						hljs$1.HASH_COMMENT_MODE
					]
				},
				{
					begin: "^" + IDENTIFIER,
					end: /\}/,
					contains: [PROPERTY, hljs$1.HASH_COMMENT_MODE]
				},
				hljs$1.HASH_COMMENT_MODE
			]
		};
	}
	module.exports = roboconf;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/routeros.js
var require_routeros = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function routeros(hljs$1) {
		const STATEMENTS = "foreach do while for if from to step else on-error and or not in";
		const GLOBAL_COMMANDS = "global local beep delay put len typeof pick log time set find environment terminal error execute parse resolve toarray tobool toid toip toip6 tonum tostr totime";
		const COMMON_COMMANDS = "add remove enable disable set get print export edit find run debug error info warning";
		const LITERALS$6 = "true false yes no nothing nil null";
		const OBJECTS = "traffic-flow traffic-generator firewall scheduler aaa accounting address-list address align area bandwidth-server bfd bgp bridge client clock community config connection console customer default dhcp-client dhcp-server discovery dns e-mail ethernet filter firmware gps graphing group hardware health hotspot identity igmp-proxy incoming instance interface ip ipsec ipv6 irq l2tp-server lcd ldp logging mac-server mac-winbox mangle manual mirror mme mpls nat nd neighbor network note ntp ospf ospf-v3 ovpn-server page peer pim ping policy pool port ppp pppoe-client pptp-server prefix profile proposal proxy queue radius resource rip ripng route routing screen script security-profiles server service service-port settings shares smb sms sniffer snmp snooper socks sstp-server system tool tracking type upgrade upnp user-manager users user vlan secret vrrp watchdog web-access wireless pptp pppoe lan wan layer7-protocol lease simple raw";
		const VAR = {
			className: "variable",
			variants: [{ begin: /\$[\w\d#@][\w\d_]*/ }, { begin: /\$\{(.*?)\}/ }]
		};
		const QUOTE_STRING = {
			className: "string",
			begin: /"/,
			end: /"/,
			contains: [
				hljs$1.BACKSLASH_ESCAPE,
				VAR,
				{
					className: "variable",
					begin: /\$\(/,
					end: /\)/,
					contains: [hljs$1.BACKSLASH_ESCAPE]
				}
			]
		};
		const APOS_STRING = {
			className: "string",
			begin: /'/,
			end: /'/
		};
		return {
			name: "MikroTik RouterOS script",
			aliases: ["mikrotik"],
			case_insensitive: true,
			keywords: {
				$pattern: /:?[\w-]+/,
				literal: LITERALS$6,
				keyword: STATEMENTS + " :" + STATEMENTS.split(" ").join(" :") + " :" + GLOBAL_COMMANDS.split(" ").join(" :")
			},
			contains: [
				{
					variants: [
						{
							begin: /\/\*/,
							end: /\*\//
						},
						{
							begin: /\/\//,
							end: /$/
						},
						{
							begin: /<\//,
							end: />/
						}
					],
					illegal: /./
				},
				hljs$1.COMMENT("^#", "$"),
				QUOTE_STRING,
				APOS_STRING,
				VAR,
				{
					begin: /[\w-]+=([^\s{}[\]()>]+)/,
					relevance: 0,
					returnBegin: true,
					contains: [{
						className: "attribute",
						begin: /[^=]+/
					}, {
						begin: /=/,
						endsWithParent: true,
						relevance: 0,
						contains: [
							QUOTE_STRING,
							APOS_STRING,
							VAR,
							{
								className: "literal",
								begin: "\\b(" + LITERALS$6.split(" ").join("|") + ")\\b"
							},
							{ begin: /("[^"]*"|[^\s{}[\]]+)/ }
						]
					}]
				},
				{
					className: "number",
					begin: /\*[0-9a-fA-F]+/
				},
				{
					begin: "\\b(" + COMMON_COMMANDS.split(" ").join("|") + ")([\\s[(\\]|])",
					returnBegin: true,
					contains: [{
						className: "built_in",
						begin: /\w+/
					}]
				},
				{
					className: "built_in",
					variants: [{ begin: "(\\.\\./|/|\\s)((" + OBJECTS.split(" ").join("|") + ");?\\s)+" }, {
						begin: /\.\./,
						relevance: 0
					}]
				}
			]
		};
	}
	module.exports = routeros;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/rsl.js
var require_rsl = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function rsl(hljs$1) {
		const BUILT_INS$6 = [
			"abs",
			"acos",
			"ambient",
			"area",
			"asin",
			"atan",
			"atmosphere",
			"attribute",
			"calculatenormal",
			"ceil",
			"cellnoise",
			"clamp",
			"comp",
			"concat",
			"cos",
			"degrees",
			"depth",
			"Deriv",
			"diffuse",
			"distance",
			"Du",
			"Dv",
			"environment",
			"exp",
			"faceforward",
			"filterstep",
			"floor",
			"format",
			"fresnel",
			"incident",
			"length",
			"lightsource",
			"log",
			"match",
			"max",
			"min",
			"mod",
			"noise",
			"normalize",
			"ntransform",
			"opposite",
			"option",
			"phong",
			"pnoise",
			"pow",
			"printf",
			"ptlined",
			"radians",
			"random",
			"reflect",
			"refract",
			"renderinfo",
			"round",
			"setcomp",
			"setxcomp",
			"setycomp",
			"setzcomp",
			"shadow",
			"sign",
			"sin",
			"smoothstep",
			"specular",
			"specularbrdf",
			"spline",
			"sqrt",
			"step",
			"tan",
			"texture",
			"textureinfo",
			"trace",
			"transform",
			"vtransform",
			"xcomp",
			"ycomp",
			"zcomp"
		];
		const TYPES$6 = [
			"matrix",
			"float",
			"color",
			"point",
			"normal",
			"vector"
		];
		const KEYWORDS$6 = [
			"while",
			"for",
			"if",
			"do",
			"return",
			"else",
			"break",
			"extern",
			"continue"
		];
		const CLASS_DEFINITION = {
			match: [
				/(surface|displacement|light|volume|imager)/,
				/\s+/,
				hljs$1.IDENT_RE
			],
			scope: {
				1: "keyword",
				3: "title.class"
			}
		};
		return {
			name: "RenderMan RSL",
			keywords: {
				keyword: KEYWORDS$6,
				built_in: BUILT_INS$6,
				type: TYPES$6
			},
			illegal: "</",
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.APOS_STRING_MODE,
				hljs$1.C_NUMBER_MODE,
				{
					className: "meta",
					begin: "#",
					end: "$"
				},
				CLASS_DEFINITION,
				{
					beginKeywords: "illuminate illuminance gather",
					end: "\\("
				}
			]
		};
	}
	module.exports = rsl;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/ruleslanguage.js
var require_ruleslanguage = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function ruleslanguage(hljs$1) {
		return {
			name: "Oracle Rules Language",
			keywords: {
				keyword: "BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE " + "INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 " + "INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 " + "INTDCREATEHANDLE|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 " + "INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 " + "INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 " + "INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 " + "INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 " + "INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 " + "INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 " + "INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 " + "INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 " + "INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 " + "INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 " + "INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 " + "MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER " + "OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE " + "NOVALUE SECTION WARN SAVE_UPDATE DETERMINANT LABEL REPORT REVENUE EACH " + "IN FROM TOTAL CHARGE BLOCK AND OR CSV_FILE RATE_CODE AUXILIARY_DEMAND " + "UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME " + "ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE " + "GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE " + "SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING " + "DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF " + "MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY " + "YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE " + "COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR " + "READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES " + "ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE " + "EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE " + "SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL " + "COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN " + "MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING " + "FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM " + "NUMDAYS READ_DATE STAGING",
				built_in: "IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML " + "DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT " + "DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE " + "DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT " + "DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME"
			},
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.C_NUMBER_MODE,
				{
					className: "literal",
					variants: [{
						begin: "#\\s+",
						relevance: 0
					}, { begin: "#[a-zA-Z .]+" }]
				}
			]
		};
	}
	module.exports = ruleslanguage;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/rust.js
var require_rust = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function rust(hljs$1) {
		const regex = hljs$1.regex;
		const RAW_IDENTIFIER = /(r#)?/;
		const UNDERSCORE_IDENT_RE$2 = regex.concat(RAW_IDENTIFIER, hljs$1.UNDERSCORE_IDENT_RE);
		const IDENT_RE$6 = regex.concat(RAW_IDENTIFIER, hljs$1.IDENT_RE);
		const FUNCTION_INVOKE = {
			className: "title.function.invoke",
			relevance: 0,
			begin: regex.concat(/\b/, /(?!let|for|while|if|else|match\b)/, IDENT_RE$6, regex.lookahead(/\s*\(/))
		};
		const NUMBER_SUFFIX = "([ui](8|16|32|64|128|size)|f(32|64))?";
		const KEYWORDS$6 = [
			"abstract",
			"as",
			"async",
			"await",
			"become",
			"box",
			"break",
			"const",
			"continue",
			"crate",
			"do",
			"dyn",
			"else",
			"enum",
			"extern",
			"false",
			"final",
			"fn",
			"for",
			"if",
			"impl",
			"in",
			"let",
			"loop",
			"macro",
			"match",
			"mod",
			"move",
			"mut",
			"override",
			"priv",
			"pub",
			"ref",
			"return",
			"self",
			"Self",
			"static",
			"struct",
			"super",
			"trait",
			"true",
			"try",
			"type",
			"typeof",
			"union",
			"unsafe",
			"unsized",
			"use",
			"virtual",
			"where",
			"while",
			"yield"
		];
		const LITERALS$6 = [
			"true",
			"false",
			"Some",
			"None",
			"Ok",
			"Err"
		];
		const BUILTINS = [
			"drop ",
			"Copy",
			"Send",
			"Sized",
			"Sync",
			"Drop",
			"Fn",
			"FnMut",
			"FnOnce",
			"ToOwned",
			"Clone",
			"Debug",
			"PartialEq",
			"PartialOrd",
			"Eq",
			"Ord",
			"AsRef",
			"AsMut",
			"Into",
			"From",
			"Default",
			"Iterator",
			"Extend",
			"IntoIterator",
			"DoubleEndedIterator",
			"ExactSizeIterator",
			"SliceConcatExt",
			"ToString",
			"assert!",
			"assert_eq!",
			"bitflags!",
			"bytes!",
			"cfg!",
			"col!",
			"concat!",
			"concat_idents!",
			"debug_assert!",
			"debug_assert_eq!",
			"env!",
			"eprintln!",
			"panic!",
			"file!",
			"format!",
			"format_args!",
			"include_bytes!",
			"include_str!",
			"line!",
			"local_data_key!",
			"module_path!",
			"option_env!",
			"print!",
			"println!",
			"select!",
			"stringify!",
			"try!",
			"unimplemented!",
			"unreachable!",
			"vec!",
			"write!",
			"writeln!",
			"macro_rules!",
			"assert_ne!",
			"debug_assert_ne!"
		];
		const TYPES$6 = [
			"i8",
			"i16",
			"i32",
			"i64",
			"i128",
			"isize",
			"u8",
			"u16",
			"u32",
			"u64",
			"u128",
			"usize",
			"f32",
			"f64",
			"str",
			"char",
			"bool",
			"Box",
			"Option",
			"Result",
			"String",
			"Vec"
		];
		return {
			name: "Rust",
			aliases: ["rs"],
			keywords: {
				$pattern: hljs$1.IDENT_RE + "!?",
				type: TYPES$6,
				keyword: KEYWORDS$6,
				literal: LITERALS$6,
				built_in: BUILTINS
			},
			illegal: "</",
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.COMMENT("/\\*", "\\*/", { contains: ["self"] }),
				hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, {
					begin: /b?"/,
					illegal: null
				}),
				{
					className: "symbol",
					begin: /'[a-zA-Z_][a-zA-Z0-9_]*(?!')/
				},
				{
					scope: "string",
					variants: [{ begin: /b?r(#*)"(.|\n)*?"\1(?!#)/ }, {
						begin: /b?'/,
						end: /'/,
						contains: [{
							scope: "char.escape",
							match: /\\('|\w|x\w{2}|u\w{4}|U\w{8})/
						}]
					}]
				},
				{
					className: "number",
					variants: [
						{ begin: "\\b0b([01_]+)" + NUMBER_SUFFIX },
						{ begin: "\\b0o([0-7_]+)" + NUMBER_SUFFIX },
						{ begin: "\\b0x([A-Fa-f0-9_]+)" + NUMBER_SUFFIX },
						{ begin: "\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)" + NUMBER_SUFFIX }
					],
					relevance: 0
				},
				{
					begin: [
						/fn/,
						/\s+/,
						UNDERSCORE_IDENT_RE$2
					],
					className: {
						1: "keyword",
						3: "title.function"
					}
				},
				{
					className: "meta",
					begin: "#!?\\[",
					end: "\\]",
					contains: [{
						className: "string",
						begin: /"/,
						end: /"/,
						contains: [hljs$1.BACKSLASH_ESCAPE]
					}]
				},
				{
					begin: [
						/let/,
						/\s+/,
						/(?:mut\s+)?/,
						UNDERSCORE_IDENT_RE$2
					],
					className: {
						1: "keyword",
						3: "keyword",
						4: "variable"
					}
				},
				{
					begin: [
						/for/,
						/\s+/,
						UNDERSCORE_IDENT_RE$2,
						/\s+/,
						/in/
					],
					className: {
						1: "keyword",
						3: "variable",
						5: "keyword"
					}
				},
				{
					begin: [
						/type/,
						/\s+/,
						UNDERSCORE_IDENT_RE$2
					],
					className: {
						1: "keyword",
						3: "title.class"
					}
				},
				{
					begin: [
						/(?:trait|enum|struct|union|impl|for)/,
						/\s+/,
						UNDERSCORE_IDENT_RE$2
					],
					className: {
						1: "keyword",
						3: "title.class"
					}
				},
				{
					begin: hljs$1.IDENT_RE + "::",
					keywords: {
						keyword: "Self",
						built_in: BUILTINS,
						type: TYPES$6
					}
				},
				{
					className: "punctuation",
					begin: "->"
				},
				FUNCTION_INVOKE
			]
		};
	}
	module.exports = rust;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/sas.js
var require_sas = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function sas(hljs$1) {
		const regex = hljs$1.regex;
		const SAS_KEYWORDS = [
			"do",
			"if",
			"then",
			"else",
			"end",
			"until",
			"while",
			"abort",
			"array",
			"attrib",
			"by",
			"call",
			"cards",
			"cards4",
			"catname",
			"continue",
			"datalines",
			"datalines4",
			"delete",
			"delim",
			"delimiter",
			"display",
			"dm",
			"drop",
			"endsas",
			"error",
			"file",
			"filename",
			"footnote",
			"format",
			"goto",
			"in",
			"infile",
			"informat",
			"input",
			"keep",
			"label",
			"leave",
			"length",
			"libname",
			"link",
			"list",
			"lostcard",
			"merge",
			"missing",
			"modify",
			"options",
			"output",
			"out",
			"page",
			"put",
			"redirect",
			"remove",
			"rename",
			"replace",
			"retain",
			"return",
			"select",
			"set",
			"skip",
			"startsas",
			"stop",
			"title",
			"update",
			"waitsas",
			"where",
			"window",
			"x|0",
			"systask",
			"add",
			"and",
			"alter",
			"as",
			"cascade",
			"check",
			"create",
			"delete",
			"describe",
			"distinct",
			"drop",
			"foreign",
			"from",
			"group",
			"having",
			"index",
			"insert",
			"into",
			"in",
			"key",
			"like",
			"message",
			"modify",
			"msgtype",
			"not",
			"null",
			"on",
			"or",
			"order",
			"primary",
			"references",
			"reset",
			"restrict",
			"select",
			"set",
			"table",
			"unique",
			"update",
			"validate",
			"view",
			"where"
		];
		const FUNCTIONS = [
			"abs",
			"addr",
			"airy",
			"arcos",
			"arsin",
			"atan",
			"attrc",
			"attrn",
			"band",
			"betainv",
			"blshift",
			"bnot",
			"bor",
			"brshift",
			"bxor",
			"byte",
			"cdf",
			"ceil",
			"cexist",
			"cinv",
			"close",
			"cnonct",
			"collate",
			"compbl",
			"compound",
			"compress",
			"cos",
			"cosh",
			"css",
			"curobs",
			"cv",
			"daccdb",
			"daccdbsl",
			"daccsl",
			"daccsyd",
			"dacctab",
			"dairy",
			"date",
			"datejul",
			"datepart",
			"datetime",
			"day",
			"dclose",
			"depdb",
			"depdbsl",
			"depdbsl",
			"depsl",
			"depsl",
			"depsyd",
			"depsyd",
			"deptab",
			"deptab",
			"dequote",
			"dhms",
			"dif",
			"digamma",
			"dim",
			"dinfo",
			"dnum",
			"dopen",
			"doptname",
			"doptnum",
			"dread",
			"dropnote",
			"dsname",
			"erf",
			"erfc",
			"exist",
			"exp",
			"fappend",
			"fclose",
			"fcol",
			"fdelete",
			"fetch",
			"fetchobs",
			"fexist",
			"fget",
			"fileexist",
			"filename",
			"fileref",
			"finfo",
			"finv",
			"fipname",
			"fipnamel",
			"fipstate",
			"floor",
			"fnonct",
			"fnote",
			"fopen",
			"foptname",
			"foptnum",
			"fpoint",
			"fpos",
			"fput",
			"fread",
			"frewind",
			"frlen",
			"fsep",
			"fuzz",
			"fwrite",
			"gaminv",
			"gamma",
			"getoption",
			"getvarc",
			"getvarn",
			"hbound",
			"hms",
			"hosthelp",
			"hour",
			"ibessel",
			"index",
			"indexc",
			"indexw",
			"input",
			"inputc",
			"inputn",
			"int",
			"intck",
			"intnx",
			"intrr",
			"irr",
			"jbessel",
			"juldate",
			"kurtosis",
			"lag",
			"lbound",
			"left",
			"length",
			"lgamma",
			"libname",
			"libref",
			"log",
			"log10",
			"log2",
			"logpdf",
			"logpmf",
			"logsdf",
			"lowcase",
			"max",
			"mdy",
			"mean",
			"min",
			"minute",
			"mod",
			"month",
			"mopen",
			"mort",
			"n",
			"netpv",
			"nmiss",
			"normal",
			"note",
			"npv",
			"open",
			"ordinal",
			"pathname",
			"pdf",
			"peek",
			"peekc",
			"pmf",
			"point",
			"poisson",
			"poke",
			"probbeta",
			"probbnml",
			"probchi",
			"probf",
			"probgam",
			"probhypr",
			"probit",
			"probnegb",
			"probnorm",
			"probt",
			"put",
			"putc",
			"putn",
			"qtr",
			"quote",
			"ranbin",
			"rancau",
			"ranexp",
			"rangam",
			"range",
			"rank",
			"rannor",
			"ranpoi",
			"rantbl",
			"rantri",
			"ranuni",
			"repeat",
			"resolve",
			"reverse",
			"rewind",
			"right",
			"round",
			"saving",
			"scan",
			"sdf",
			"second",
			"sign",
			"sin",
			"sinh",
			"skewness",
			"soundex",
			"spedis",
			"sqrt",
			"std",
			"stderr",
			"stfips",
			"stname",
			"stnamel",
			"substr",
			"sum",
			"symget",
			"sysget",
			"sysmsg",
			"sysprod",
			"sysrc",
			"system",
			"tan",
			"tanh",
			"time",
			"timepart",
			"tinv",
			"tnonct",
			"today",
			"translate",
			"tranwrd",
			"trigamma",
			"trim",
			"trimn",
			"trunc",
			"uniform",
			"upcase",
			"uss",
			"var",
			"varfmt",
			"varinfmt",
			"varlabel",
			"varlen",
			"varname",
			"varnum",
			"varray",
			"varrayx",
			"vartype",
			"verify",
			"vformat",
			"vformatd",
			"vformatdx",
			"vformatn",
			"vformatnx",
			"vformatw",
			"vformatwx",
			"vformatx",
			"vinarray",
			"vinarrayx",
			"vinformat",
			"vinformatd",
			"vinformatdx",
			"vinformatn",
			"vinformatnx",
			"vinformatw",
			"vinformatwx",
			"vinformatx",
			"vlabel",
			"vlabelx",
			"vlength",
			"vlengthx",
			"vname",
			"vnamex",
			"vtype",
			"vtypex",
			"weekday",
			"year",
			"yyq",
			"zipfips",
			"zipname",
			"zipnamel",
			"zipstate"
		];
		const MACRO_FUNCTIONS = [
			"bquote",
			"nrbquote",
			"cmpres",
			"qcmpres",
			"compstor",
			"datatyp",
			"display",
			"do",
			"else",
			"end",
			"eval",
			"global",
			"goto",
			"if",
			"index",
			"input",
			"keydef",
			"label",
			"left",
			"length",
			"let",
			"local",
			"lowcase",
			"macro",
			"mend",
			"nrbquote",
			"nrquote",
			"nrstr",
			"put",
			"qcmpres",
			"qleft",
			"qlowcase",
			"qscan",
			"qsubstr",
			"qsysfunc",
			"qtrim",
			"quote",
			"qupcase",
			"scan",
			"str",
			"substr",
			"superq",
			"syscall",
			"sysevalf",
			"sysexec",
			"sysfunc",
			"sysget",
			"syslput",
			"sysprod",
			"sysrc",
			"sysrput",
			"then",
			"to",
			"trim",
			"unquote",
			"until",
			"upcase",
			"verify",
			"while",
			"window"
		];
		const LITERALS$6 = [
			"null",
			"missing",
			"_all_",
			"_automatic_",
			"_character_",
			"_infile_",
			"_n_",
			"_name_",
			"_null_",
			"_numeric_",
			"_user_",
			"_webout_"
		];
		return {
			name: "SAS",
			case_insensitive: true,
			keywords: {
				literal: LITERALS$6,
				keyword: SAS_KEYWORDS
			},
			contains: [
				{
					className: "keyword",
					begin: /^\s*(proc [\w\d_]+|data|run|quit)[\s;]/
				},
				{
					className: "variable",
					begin: /&[a-zA-Z_&][a-zA-Z0-9_]*\.?/
				},
				{
					begin: [
						/^\s*/,
						/datalines;|cards;/,
						/(?:.*\n)+/,
						/^\s*;\s*$/
					],
					className: {
						2: "keyword",
						3: "string"
					}
				},
				{
					begin: [
						/%mend|%macro/,
						/\s+/,
						/[a-zA-Z_&][a-zA-Z0-9_]*/
					],
					className: {
						1: "built_in",
						3: "title.function"
					}
				},
				{
					className: "built_in",
					begin: "%" + regex.either(...MACRO_FUNCTIONS)
				},
				{
					className: "title.function",
					begin: /%[a-zA-Z_][a-zA-Z_0-9]*/
				},
				{
					className: "meta",
					begin: regex.either(...FUNCTIONS) + "(?=\\()"
				},
				{
					className: "string",
					variants: [hljs$1.APOS_STRING_MODE, hljs$1.QUOTE_STRING_MODE]
				},
				hljs$1.COMMENT("\\*", ";"),
				hljs$1.C_BLOCK_COMMENT_MODE
			]
		};
	}
	module.exports = sas;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/scala.js
var require_scala = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function scala(hljs$1) {
		const regex = hljs$1.regex;
		const ANNOTATION = {
			className: "meta",
			begin: "@[A-Za-z]+"
		};
		const SUBST = {
			className: "subst",
			variants: [{ begin: "\\$[A-Za-z0-9_]+" }, {
				begin: /\$\{/,
				end: /\}/
			}]
		};
		const STRING = {
			className: "string",
			variants: [
				{
					begin: "\"\"\"",
					end: "\"\"\""
				},
				{
					begin: "\"",
					end: "\"",
					illegal: "\\n",
					contains: [hljs$1.BACKSLASH_ESCAPE]
				},
				{
					begin: "[a-z]+\"",
					end: "\"",
					illegal: "\\n",
					contains: [hljs$1.BACKSLASH_ESCAPE, SUBST]
				},
				{
					className: "string",
					begin: "[a-z]+\"\"\"",
					end: "\"\"\"",
					contains: [SUBST],
					relevance: 10
				}
			]
		};
		const TYPE = {
			className: "type",
			begin: "\\b[A-Z][A-Za-z0-9_]*",
			relevance: 0
		};
		const NAME = {
			className: "title",
			begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,
			relevance: 0
		};
		const CLASS = {
			className: "class",
			beginKeywords: "class object trait type",
			end: /[:={\[\n;]/,
			excludeEnd: true,
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				{
					beginKeywords: "extends with",
					relevance: 10
				},
				{
					begin: /\[/,
					end: /\]/,
					excludeBegin: true,
					excludeEnd: true,
					relevance: 0,
					contains: [
						TYPE,
						hljs$1.C_LINE_COMMENT_MODE,
						hljs$1.C_BLOCK_COMMENT_MODE
					]
				},
				{
					className: "params",
					begin: /\(/,
					end: /\)/,
					excludeBegin: true,
					excludeEnd: true,
					relevance: 0,
					contains: [
						TYPE,
						hljs$1.C_LINE_COMMENT_MODE,
						hljs$1.C_BLOCK_COMMENT_MODE
					]
				},
				NAME
			]
		};
		const METHOD = {
			className: "function",
			beginKeywords: "def",
			end: regex.lookahead(/[:={\[(\n;]/),
			contains: [NAME]
		};
		const EXTENSION = {
			begin: [
				/^\s*/,
				"extension",
				/\s+(?=[[(])/
			],
			beginScope: { 2: "keyword" }
		};
		const END = {
			begin: [
				/^\s*/,
				/end/,
				/\s+/,
				/(extension\b)?/
			],
			beginScope: {
				2: "keyword",
				4: "keyword"
			}
		};
		const INLINE_MODES = [{ match: /\.inline\b/ }, {
			begin: /\binline(?=\s)/,
			keywords: "inline"
		}];
		const USING_PARAM_CLAUSE = {
			begin: [
				/\(\s*/,
				/using/,
				/\s+(?!\))/
			],
			beginScope: { 2: "keyword" }
		};
		const DIRECTIVE_VALUE = {
			className: "string",
			begin: /\S+/
		};
		const USING_DIRECTIVE = {
			begin: [
				"//>",
				/\s+/,
				/using/,
				/\s+/,
				/\S+/
			],
			beginScope: {
				1: "comment",
				3: "keyword",
				5: "type"
			},
			end: /$/,
			contains: [DIRECTIVE_VALUE]
		};
		return {
			name: "Scala",
			keywords: {
				literal: "true false null",
				keyword: "type yield lazy override def with val var sealed abstract private trait object if then forSome for while do throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit export enum given transparent"
			},
			contains: [
				USING_DIRECTIVE,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				STRING,
				TYPE,
				METHOD,
				CLASS,
				hljs$1.C_NUMBER_MODE,
				EXTENSION,
				END,
				...INLINE_MODES,
				USING_PARAM_CLAUSE,
				ANNOTATION
			]
		};
	}
	module.exports = scala;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/scheme.js
var require_scheme = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function scheme(hljs$1) {
		const SCHEME_IDENT_RE = "[^\\(\\)\\[\\]\\{\\}\",'`;#|\\\\\\s]+";
		const SCHEME_SIMPLE_NUMBER_RE = "(-|\\+)?\\d+([./]\\d+)?";
		const SCHEME_COMPLEX_NUMBER_RE = SCHEME_SIMPLE_NUMBER_RE + "[+\\-]" + SCHEME_SIMPLE_NUMBER_RE + "i";
		const KEYWORDS$6 = {
			$pattern: SCHEME_IDENT_RE,
			built_in: "case-lambda call/cc class define-class exit-handler field import " + "inherit init-field interface let*-values let-values let/ec mixin " + "opt-lambda override protect provide public rename require " + "require-for-syntax syntax syntax-case syntax-error unit/sig unless " + "when with-syntax and begin call-with-current-continuation " + "call-with-input-file call-with-output-file case cond define " + "define-syntax delay do dynamic-wind else for-each if lambda let let* " + "let-syntax letrec letrec-syntax map or syntax-rules ' * + , ,@ - ... / " + "; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan " + "boolean? caar cadr call-with-input-file call-with-output-file " + "call-with-values car cdddar cddddr cdr ceiling char->integer " + "char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? " + "char-downcase char-lower-case? char-numeric? char-ready? char-upcase " + "char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? " + "char? close-input-port close-output-port complex? cons cos " + "current-input-port current-output-port denominator display eof-object? " + "eq? equal? eqv? eval even? exact->inexact exact? exp expt floor " + "force gcd imag-part inexact->exact inexact? input-port? integer->char " + "integer? interaction-environment lcm length list list->string " + "list->vector list-ref list-tail list? load log magnitude make-polar " + "make-rectangular make-string make-vector max member memq memv min " + "modulo negative? newline not null-environment null? number->string " + "number? numerator odd? open-input-file open-output-file output-port? " + "pair? peek-char port? positive? procedure? quasiquote quote quotient " + "rational? rationalize read read-char real-part real? remainder reverse " + "round scheme-report-environment set! set-car! set-cdr! sin sqrt string " + "string->list string->number string->symbol string-append string-ci<=? " + "string-ci<? string-ci=? string-ci>=? string-ci>? string-copy " + "string-fill! string-length string-ref string-set! string<=? string<? " + "string=? string>=? string>? string? substring symbol->string symbol? " + "tan transcript-off transcript-on truncate values vector " + "vector->list vector-fill! vector-length vector-ref vector-set! " + "with-input-from-file with-output-to-file write write-char zero?"
		};
		const LITERAL = {
			className: "literal",
			begin: "(#t|#f|#\\\\" + SCHEME_IDENT_RE + "|#\\\\.)"
		};
		const NUMBER = {
			className: "number",
			variants: [
				{
					begin: SCHEME_SIMPLE_NUMBER_RE,
					relevance: 0
				},
				{
					begin: SCHEME_COMPLEX_NUMBER_RE,
					relevance: 0
				},
				{ begin: "#b[0-1]+(/[0-1]+)?" },
				{ begin: "#o[0-7]+(/[0-7]+)?" },
				{ begin: "#x[0-9a-f]+(/[0-9a-f]+)?" }
			]
		};
		const STRING = hljs$1.QUOTE_STRING_MODE;
		const COMMENT_MODES = [hljs$1.COMMENT(";", "$", { relevance: 0 }), hljs$1.COMMENT("#\\|", "\\|#")];
		const IDENT = {
			begin: SCHEME_IDENT_RE,
			relevance: 0
		};
		const QUOTED_IDENT = {
			className: "symbol",
			begin: "'" + SCHEME_IDENT_RE
		};
		const BODY = {
			endsWithParent: true,
			relevance: 0
		};
		const QUOTED_LIST = {
			variants: [{ begin: /'/ }, { begin: "`" }],
			contains: [{
				begin: "\\(",
				end: "\\)",
				contains: [
					"self",
					LITERAL,
					STRING,
					NUMBER,
					IDENT,
					QUOTED_IDENT
				]
			}]
		};
		const NAME = {
			className: "name",
			relevance: 0,
			begin: SCHEME_IDENT_RE,
			keywords: KEYWORDS$6
		};
		const LAMBDA = {
			begin: /lambda/,
			endsWithParent: true,
			returnBegin: true,
			contains: [NAME, {
				endsParent: true,
				variants: [{
					begin: /\(/,
					end: /\)/
				}, {
					begin: /\[/,
					end: /\]/
				}],
				contains: [IDENT]
			}]
		};
		const LIST = {
			variants: [{
				begin: "\\(",
				end: "\\)"
			}, {
				begin: "\\[",
				end: "\\]"
			}],
			contains: [
				LAMBDA,
				NAME,
				BODY
			]
		};
		BODY.contains = [
			LITERAL,
			NUMBER,
			STRING,
			IDENT,
			QUOTED_IDENT,
			QUOTED_LIST,
			LIST
		].concat(COMMENT_MODES);
		return {
			name: "Scheme",
			aliases: ["scm"],
			illegal: /\S/,
			contains: [
				hljs$1.SHEBANG(),
				NUMBER,
				STRING,
				QUOTED_IDENT,
				QUOTED_LIST,
				LIST
			].concat(COMMENT_MODES)
		};
	}
	module.exports = scheme;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/scilab.js
var require_scilab = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function scilab(hljs$1) {
		const COMMON_CONTAINS = [hljs$1.C_NUMBER_MODE, {
			className: "string",
			begin: "'|\"",
			end: "'|\"",
			contains: [hljs$1.BACKSLASH_ESCAPE, { begin: "''" }]
		}];
		return {
			name: "Scilab",
			aliases: ["sci"],
			keywords: {
				$pattern: /%?\w+/,
				keyword: "abort break case clear catch continue do elseif else endfunction end for function " + "global if pause return resume select try then while",
				literal: "%f %F %t %T %pi %eps %inf %nan %e %i %z %s",
				built_in: "abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error " + "exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty " + "isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log " + "max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real " + "round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan " + "type typename warning zeros matrix"
			},
			illegal: "(\"|#|/\\*|\\s+/\\w+)",
			contains: [
				{
					className: "function",
					beginKeywords: "function",
					end: "$",
					contains: [hljs$1.UNDERSCORE_TITLE_MODE, {
						className: "params",
						begin: "\\(",
						end: "\\)"
					}]
				},
				{
					begin: "[a-zA-Z_][a-zA-Z_0-9]*[\\.']+",
					relevance: 0
				},
				{
					begin: "\\[",
					end: "\\][\\.']*",
					relevance: 0,
					contains: COMMON_CONTAINS
				},
				hljs$1.COMMENT("//", "$")
			].concat(COMMON_CONTAINS)
		};
	}
	module.exports = scilab;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/scss.js
var require_scss = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	const MODES$3 = (hljs$1) => {
		return {
			IMPORTANT: {
				scope: "meta",
				begin: "!important"
			},
			BLOCK_COMMENT: hljs$1.C_BLOCK_COMMENT_MODE,
			HEXCOLOR: {
				scope: "number",
				begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/
			},
			FUNCTION_DISPATCH: {
				className: "built_in",
				begin: /[\w-]+(?=\()/
			},
			ATTRIBUTE_SELECTOR_MODE: {
				scope: "selector-attr",
				begin: /\[/,
				end: /\]/,
				illegal: "$",
				contains: [hljs$1.APOS_STRING_MODE, hljs$1.QUOTE_STRING_MODE]
			},
			CSS_NUMBER_MODE: {
				scope: "number",
				begin: hljs$1.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_-]*/
			}
		};
	};
	const HTML_TAGS$2 = [
		"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"
	];
	const SVG_TAGS$2 = [
		"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"
	];
	const TAGS$2 = [...HTML_TAGS$2, ...SVG_TAGS$2];
	const MEDIA_FEATURES$2 = [
		"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();
	const PSEUDO_CLASSES$2 = [
		"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();
	const PSEUDO_ELEMENTS$2 = [
		"after",
		"backdrop",
		"before",
		"cue",
		"cue-region",
		"first-letter",
		"first-line",
		"grammar-error",
		"marker",
		"part",
		"placeholder",
		"selection",
		"slotted",
		"spelling-error"
	].sort().reverse();
	const ATTRIBUTES$2 = [
		"accent-color",
		"align-content",
		"align-items",
		"align-self",
		"alignment-baseline",
		"all",
		"anchor-name",
		"animation",
		"animation-composition",
		"animation-delay",
		"animation-direction",
		"animation-duration",
		"animation-fill-mode",
		"animation-iteration-count",
		"animation-name",
		"animation-play-state",
		"animation-range",
		"animation-range-end",
		"animation-range-start",
		"animation-timeline",
		"animation-timing-function",
		"appearance",
		"aspect-ratio",
		"backdrop-filter",
		"backface-visibility",
		"background",
		"background-attachment",
		"background-blend-mode",
		"background-clip",
		"background-color",
		"background-image",
		"background-origin",
		"background-position",
		"background-position-x",
		"background-position-y",
		"background-repeat",
		"background-size",
		"baseline-shift",
		"block-size",
		"border",
		"border-block",
		"border-block-color",
		"border-block-end",
		"border-block-end-color",
		"border-block-end-style",
		"border-block-end-width",
		"border-block-start",
		"border-block-start-color",
		"border-block-start-style",
		"border-block-start-width",
		"border-block-style",
		"border-block-width",
		"border-bottom",
		"border-bottom-color",
		"border-bottom-left-radius",
		"border-bottom-right-radius",
		"border-bottom-style",
		"border-bottom-width",
		"border-collapse",
		"border-color",
		"border-end-end-radius",
		"border-end-start-radius",
		"border-image",
		"border-image-outset",
		"border-image-repeat",
		"border-image-slice",
		"border-image-source",
		"border-image-width",
		"border-inline",
		"border-inline-color",
		"border-inline-end",
		"border-inline-end-color",
		"border-inline-end-style",
		"border-inline-end-width",
		"border-inline-start",
		"border-inline-start-color",
		"border-inline-start-style",
		"border-inline-start-width",
		"border-inline-style",
		"border-inline-width",
		"border-left",
		"border-left-color",
		"border-left-style",
		"border-left-width",
		"border-radius",
		"border-right",
		"border-right-color",
		"border-right-style",
		"border-right-width",
		"border-spacing",
		"border-start-end-radius",
		"border-start-start-radius",
		"border-style",
		"border-top",
		"border-top-color",
		"border-top-left-radius",
		"border-top-right-radius",
		"border-top-style",
		"border-top-width",
		"border-width",
		"bottom",
		"box-align",
		"box-decoration-break",
		"box-direction",
		"box-flex",
		"box-flex-group",
		"box-lines",
		"box-ordinal-group",
		"box-orient",
		"box-pack",
		"box-shadow",
		"box-sizing",
		"break-after",
		"break-before",
		"break-inside",
		"caption-side",
		"caret-color",
		"clear",
		"clip",
		"clip-path",
		"clip-rule",
		"color",
		"color-interpolation",
		"color-interpolation-filters",
		"color-profile",
		"color-rendering",
		"color-scheme",
		"column-count",
		"column-fill",
		"column-gap",
		"column-rule",
		"column-rule-color",
		"column-rule-style",
		"column-rule-width",
		"column-span",
		"column-width",
		"columns",
		"contain",
		"contain-intrinsic-block-size",
		"contain-intrinsic-height",
		"contain-intrinsic-inline-size",
		"contain-intrinsic-size",
		"contain-intrinsic-width",
		"container",
		"container-name",
		"container-type",
		"content",
		"content-visibility",
		"counter-increment",
		"counter-reset",
		"counter-set",
		"cue",
		"cue-after",
		"cue-before",
		"cursor",
		"cx",
		"cy",
		"direction",
		"display",
		"dominant-baseline",
		"empty-cells",
		"enable-background",
		"field-sizing",
		"fill",
		"fill-opacity",
		"fill-rule",
		"filter",
		"flex",
		"flex-basis",
		"flex-direction",
		"flex-flow",
		"flex-grow",
		"flex-shrink",
		"flex-wrap",
		"float",
		"flood-color",
		"flood-opacity",
		"flow",
		"font",
		"font-display",
		"font-family",
		"font-feature-settings",
		"font-kerning",
		"font-language-override",
		"font-optical-sizing",
		"font-palette",
		"font-size",
		"font-size-adjust",
		"font-smooth",
		"font-smoothing",
		"font-stretch",
		"font-style",
		"font-synthesis",
		"font-synthesis-position",
		"font-synthesis-small-caps",
		"font-synthesis-style",
		"font-synthesis-weight",
		"font-variant",
		"font-variant-alternates",
		"font-variant-caps",
		"font-variant-east-asian",
		"font-variant-emoji",
		"font-variant-ligatures",
		"font-variant-numeric",
		"font-variant-position",
		"font-variation-settings",
		"font-weight",
		"forced-color-adjust",
		"gap",
		"glyph-orientation-horizontal",
		"glyph-orientation-vertical",
		"grid",
		"grid-area",
		"grid-auto-columns",
		"grid-auto-flow",
		"grid-auto-rows",
		"grid-column",
		"grid-column-end",
		"grid-column-start",
		"grid-gap",
		"grid-row",
		"grid-row-end",
		"grid-row-start",
		"grid-template",
		"grid-template-areas",
		"grid-template-columns",
		"grid-template-rows",
		"hanging-punctuation",
		"height",
		"hyphenate-character",
		"hyphenate-limit-chars",
		"hyphens",
		"icon",
		"image-orientation",
		"image-rendering",
		"image-resolution",
		"ime-mode",
		"initial-letter",
		"initial-letter-align",
		"inline-size",
		"inset",
		"inset-area",
		"inset-block",
		"inset-block-end",
		"inset-block-start",
		"inset-inline",
		"inset-inline-end",
		"inset-inline-start",
		"isolation",
		"justify-content",
		"justify-items",
		"justify-self",
		"kerning",
		"left",
		"letter-spacing",
		"lighting-color",
		"line-break",
		"line-height",
		"line-height-step",
		"list-style",
		"list-style-image",
		"list-style-position",
		"list-style-type",
		"margin",
		"margin-block",
		"margin-block-end",
		"margin-block-start",
		"margin-bottom",
		"margin-inline",
		"margin-inline-end",
		"margin-inline-start",
		"margin-left",
		"margin-right",
		"margin-top",
		"margin-trim",
		"marker",
		"marker-end",
		"marker-mid",
		"marker-start",
		"marks",
		"mask",
		"mask-border",
		"mask-border-mode",
		"mask-border-outset",
		"mask-border-repeat",
		"mask-border-slice",
		"mask-border-source",
		"mask-border-width",
		"mask-clip",
		"mask-composite",
		"mask-image",
		"mask-mode",
		"mask-origin",
		"mask-position",
		"mask-repeat",
		"mask-size",
		"mask-type",
		"masonry-auto-flow",
		"math-depth",
		"math-shift",
		"math-style",
		"max-block-size",
		"max-height",
		"max-inline-size",
		"max-width",
		"min-block-size",
		"min-height",
		"min-inline-size",
		"min-width",
		"mix-blend-mode",
		"nav-down",
		"nav-index",
		"nav-left",
		"nav-right",
		"nav-up",
		"none",
		"normal",
		"object-fit",
		"object-position",
		"offset",
		"offset-anchor",
		"offset-distance",
		"offset-path",
		"offset-position",
		"offset-rotate",
		"opacity",
		"order",
		"orphans",
		"outline",
		"outline-color",
		"outline-offset",
		"outline-style",
		"outline-width",
		"overflow",
		"overflow-anchor",
		"overflow-block",
		"overflow-clip-margin",
		"overflow-inline",
		"overflow-wrap",
		"overflow-x",
		"overflow-y",
		"overlay",
		"overscroll-behavior",
		"overscroll-behavior-block",
		"overscroll-behavior-inline",
		"overscroll-behavior-x",
		"overscroll-behavior-y",
		"padding",
		"padding-block",
		"padding-block-end",
		"padding-block-start",
		"padding-bottom",
		"padding-inline",
		"padding-inline-end",
		"padding-inline-start",
		"padding-left",
		"padding-right",
		"padding-top",
		"page",
		"page-break-after",
		"page-break-before",
		"page-break-inside",
		"paint-order",
		"pause",
		"pause-after",
		"pause-before",
		"perspective",
		"perspective-origin",
		"place-content",
		"place-items",
		"place-self",
		"pointer-events",
		"position",
		"position-anchor",
		"position-visibility",
		"print-color-adjust",
		"quotes",
		"r",
		"resize",
		"rest",
		"rest-after",
		"rest-before",
		"right",
		"rotate",
		"row-gap",
		"ruby-align",
		"ruby-position",
		"scale",
		"scroll-behavior",
		"scroll-margin",
		"scroll-margin-block",
		"scroll-margin-block-end",
		"scroll-margin-block-start",
		"scroll-margin-bottom",
		"scroll-margin-inline",
		"scroll-margin-inline-end",
		"scroll-margin-inline-start",
		"scroll-margin-left",
		"scroll-margin-right",
		"scroll-margin-top",
		"scroll-padding",
		"scroll-padding-block",
		"scroll-padding-block-end",
		"scroll-padding-block-start",
		"scroll-padding-bottom",
		"scroll-padding-inline",
		"scroll-padding-inline-end",
		"scroll-padding-inline-start",
		"scroll-padding-left",
		"scroll-padding-right",
		"scroll-padding-top",
		"scroll-snap-align",
		"scroll-snap-stop",
		"scroll-snap-type",
		"scroll-timeline",
		"scroll-timeline-axis",
		"scroll-timeline-name",
		"scrollbar-color",
		"scrollbar-gutter",
		"scrollbar-width",
		"shape-image-threshold",
		"shape-margin",
		"shape-outside",
		"shape-rendering",
		"speak",
		"speak-as",
		"src",
		"stop-color",
		"stop-opacity",
		"stroke",
		"stroke-dasharray",
		"stroke-dashoffset",
		"stroke-linecap",
		"stroke-linejoin",
		"stroke-miterlimit",
		"stroke-opacity",
		"stroke-width",
		"tab-size",
		"table-layout",
		"text-align",
		"text-align-all",
		"text-align-last",
		"text-anchor",
		"text-combine-upright",
		"text-decoration",
		"text-decoration-color",
		"text-decoration-line",
		"text-decoration-skip",
		"text-decoration-skip-ink",
		"text-decoration-style",
		"text-decoration-thickness",
		"text-emphasis",
		"text-emphasis-color",
		"text-emphasis-position",
		"text-emphasis-style",
		"text-indent",
		"text-justify",
		"text-orientation",
		"text-overflow",
		"text-rendering",
		"text-shadow",
		"text-size-adjust",
		"text-transform",
		"text-underline-offset",
		"text-underline-position",
		"text-wrap",
		"text-wrap-mode",
		"text-wrap-style",
		"timeline-scope",
		"top",
		"touch-action",
		"transform",
		"transform-box",
		"transform-origin",
		"transform-style",
		"transition",
		"transition-behavior",
		"transition-delay",
		"transition-duration",
		"transition-property",
		"transition-timing-function",
		"translate",
		"unicode-bidi",
		"user-modify",
		"user-select",
		"vector-effect",
		"vertical-align",
		"view-timeline",
		"view-timeline-axis",
		"view-timeline-inset",
		"view-timeline-name",
		"view-transition-name",
		"visibility",
		"voice-balance",
		"voice-duration",
		"voice-family",
		"voice-pitch",
		"voice-range",
		"voice-rate",
		"voice-stress",
		"voice-volume",
		"white-space",
		"white-space-collapse",
		"widows",
		"width",
		"will-change",
		"word-break",
		"word-spacing",
		"word-wrap",
		"writing-mode",
		"x",
		"y",
		"z-index",
		"zoom"
	].sort().reverse();
	/** @type LanguageFn */
	function scss(hljs$1) {
		const modes = MODES$3(hljs$1);
		const PSEUDO_ELEMENTS$1$1 = PSEUDO_ELEMENTS$2;
		const PSEUDO_CLASSES$1$1 = PSEUDO_CLASSES$2;
		const AT_IDENTIFIER = "@[a-z-]+";
		const AT_MODIFIERS = "and or not only";
		const IDENT_RE$6 = "[a-zA-Z-][a-zA-Z0-9_-]*";
		const VARIABLE = {
			className: "variable",
			begin: "(\\$" + IDENT_RE$6 + ")\\b",
			relevance: 0
		};
		return {
			name: "SCSS",
			case_insensitive: true,
			illegal: "[=/|']",
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				modes.CSS_NUMBER_MODE,
				{
					className: "selector-id",
					begin: "#[A-Za-z0-9_-]+",
					relevance: 0
				},
				{
					className: "selector-class",
					begin: "\\.[A-Za-z0-9_-]+",
					relevance: 0
				},
				modes.ATTRIBUTE_SELECTOR_MODE,
				{
					className: "selector-tag",
					begin: "\\b(" + TAGS$2.join("|") + ")\\b",
					relevance: 0
				},
				{
					className: "selector-pseudo",
					begin: ":(" + PSEUDO_CLASSES$1$1.join("|") + ")"
				},
				{
					className: "selector-pseudo",
					begin: ":(:)?(" + PSEUDO_ELEMENTS$1$1.join("|") + ")"
				},
				VARIABLE,
				{
					begin: /\(/,
					end: /\)/,
					contains: [modes.CSS_NUMBER_MODE]
				},
				modes.CSS_VARIABLE,
				{
					className: "attribute",
					begin: "\\b(" + ATTRIBUTES$2.join("|") + ")\\b"
				},
				{ begin: "\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b" },
				{
					begin: /:/,
					end: /[;}{]/,
					relevance: 0,
					contains: [
						modes.BLOCK_COMMENT,
						VARIABLE,
						modes.HEXCOLOR,
						modes.CSS_NUMBER_MODE,
						hljs$1.QUOTE_STRING_MODE,
						hljs$1.APOS_STRING_MODE,
						modes.IMPORTANT,
						modes.FUNCTION_DISPATCH
					]
				},
				{
					begin: "@(page|font-face)",
					keywords: {
						$pattern: AT_IDENTIFIER,
						keyword: "@page @font-face"
					}
				},
				{
					begin: "@",
					end: "[{;]",
					returnBegin: true,
					keywords: {
						$pattern: /[a-z-]+/,
						keyword: AT_MODIFIERS,
						attribute: MEDIA_FEATURES$2.join(" ")
					},
					contains: [
						{
							begin: AT_IDENTIFIER,
							className: "keyword"
						},
						{
							begin: /[a-z-]+(?=:)/,
							className: "attribute"
						},
						VARIABLE,
						hljs$1.QUOTE_STRING_MODE,
						hljs$1.APOS_STRING_MODE,
						modes.HEXCOLOR,
						modes.CSS_NUMBER_MODE
					]
				},
				modes.FUNCTION_DISPATCH
			]
		};
	}
	module.exports = scss;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/shell.js
var require_shell = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function shell(hljs$1) {
		return {
			name: "Shell Session",
			aliases: ["console", "shellsession"],
			contains: [{
				className: "meta.prompt",
				begin: /^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,
				starts: {
					end: /[^\\](?=\s*$)/,
					subLanguage: "bash"
				}
			}]
		};
	}
	module.exports = shell;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/smali.js
var require_smali = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function smali(hljs$1) {
		const smali_instr_low_prio = [
			"add",
			"and",
			"cmp",
			"cmpg",
			"cmpl",
			"const",
			"div",
			"double",
			"float",
			"goto",
			"if",
			"int",
			"long",
			"move",
			"mul",
			"neg",
			"new",
			"nop",
			"not",
			"or",
			"rem",
			"return",
			"shl",
			"shr",
			"sput",
			"sub",
			"throw",
			"ushr",
			"xor"
		];
		const smali_instr_high_prio = [
			"aget",
			"aput",
			"array",
			"check",
			"execute",
			"fill",
			"filled",
			"goto/16",
			"goto/32",
			"iget",
			"instance",
			"invoke",
			"iput",
			"monitor",
			"packed",
			"sget",
			"sparse"
		];
		const smali_keywords = [
			"transient",
			"constructor",
			"abstract",
			"final",
			"synthetic",
			"public",
			"private",
			"protected",
			"static",
			"bridge",
			"system"
		];
		return {
			name: "Smali",
			contains: [
				{
					className: "string",
					begin: "\"",
					end: "\"",
					relevance: 0
				},
				hljs$1.COMMENT("#", "$", { relevance: 0 }),
				{
					className: "keyword",
					variants: [
						{ begin: "\\s*\\.end\\s[a-zA-Z0-9]*" },
						{
							begin: "^[ ]*\\.[a-zA-Z]*",
							relevance: 0
						},
						{
							begin: "\\s:[a-zA-Z_0-9]*",
							relevance: 0
						},
						{ begin: "\\s(" + smali_keywords.join("|") + ")" }
					]
				},
				{
					className: "built_in",
					variants: [
						{ begin: "\\s(" + smali_instr_low_prio.join("|") + ")\\s" },
						{
							begin: "\\s(" + smali_instr_low_prio.join("|") + ")((-|/)[a-zA-Z0-9]+)+\\s",
							relevance: 10
						},
						{
							begin: "\\s(" + smali_instr_high_prio.join("|") + ")((-|/)[a-zA-Z0-9]+)*\\s",
							relevance: 10
						}
					]
				},
				{
					className: "class",
					begin: "L[^(;:\n]*;",
					relevance: 0
				},
				{ begin: "[vp][0-9]+" }
			]
		};
	}
	module.exports = smali;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/smalltalk.js
var require_smalltalk = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function smalltalk(hljs$1) {
		const VAR_IDENT_RE = "[a-z][a-zA-Z0-9_]*";
		const CHAR = {
			className: "string",
			begin: "\\$.{1}"
		};
		const SYMBOL = {
			className: "symbol",
			begin: "#" + hljs$1.UNDERSCORE_IDENT_RE
		};
		return {
			name: "Smalltalk",
			aliases: ["st"],
			keywords: [
				"self",
				"super",
				"nil",
				"true",
				"false",
				"thisContext"
			],
			contains: [
				hljs$1.COMMENT("\"", "\""),
				hljs$1.APOS_STRING_MODE,
				{
					className: "type",
					begin: "\\b[A-Z][A-Za-z0-9_]*",
					relevance: 0
				},
				{
					begin: VAR_IDENT_RE + ":",
					relevance: 0
				},
				hljs$1.C_NUMBER_MODE,
				SYMBOL,
				CHAR,
				{
					begin: "\\|[ ]*" + VAR_IDENT_RE + "([ ]+" + VAR_IDENT_RE + ")*[ ]*\\|",
					returnBegin: true,
					end: /\|/,
					illegal: /\S/,
					contains: [{ begin: "(\\|[ ]*)?" + VAR_IDENT_RE }]
				},
				{
					begin: "#\\(",
					end: "\\)",
					contains: [
						hljs$1.APOS_STRING_MODE,
						CHAR,
						hljs$1.C_NUMBER_MODE,
						SYMBOL
					]
				}
			]
		};
	}
	module.exports = smalltalk;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/sml.js
var require_sml = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function sml(hljs$1) {
		return {
			name: "SML (Standard ML)",
			aliases: ["ml"],
			keywords: {
				$pattern: "[a-z_]\\w*!?",
				keyword: "abstype and andalso as case datatype do else end eqtype " + "exception fn fun functor handle if in include infix infixr " + "let local nonfix of op open orelse raise rec sharing sig " + "signature struct structure then type val with withtype where while",
				built_in: "array bool char exn int list option order real ref string substring vector unit word",
				literal: "true false NONE SOME LESS EQUAL GREATER nil"
			},
			illegal: /\/\/|>>/,
			contains: [
				{
					className: "literal",
					begin: /\[(\|\|)?\]|\(\)/,
					relevance: 0
				},
				hljs$1.COMMENT("\\(\\*", "\\*\\)", { contains: ["self"] }),
				{
					className: "symbol",
					begin: "'[A-Za-z_](?!')[\\w']*"
				},
				{
					className: "type",
					begin: "`[A-Z][\\w']*"
				},
				{
					className: "type",
					begin: "\\b[A-Z][\\w']*",
					relevance: 0
				},
				{ begin: "[a-z_]\\w*'[\\w']*" },
				hljs$1.inherit(hljs$1.APOS_STRING_MODE, {
					className: "string",
					relevance: 0
				}),
				hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { illegal: null }),
				{
					className: "number",
					begin: "\\b(0[xX][a-fA-F0-9_]+[Lln]?|" + "0[oO][0-7_]+[Lln]?|" + "0[bB][01_]+[Lln]?|" + "[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",
					relevance: 0
				},
				{ begin: /[-=]>/ }
			]
		};
	}
	module.exports = sml;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/sqf.js
var require_sqf = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function sqf(hljs$1) {
		const VARIABLE = {
			className: "variable",
			begin: /\b_+[a-zA-Z]\w*/
		};
		const FUNCTION = {
			className: "title",
			begin: /[a-zA-Z][a-zA-Z_0-9]*_fnc_[a-zA-Z_0-9]+/
		};
		const STRINGS = {
			className: "string",
			variants: [{
				begin: "\"",
				end: "\"",
				contains: [{
					begin: "\"\"",
					relevance: 0
				}]
			}, {
				begin: "'",
				end: "'",
				contains: [{
					begin: "''",
					relevance: 0
				}]
			}]
		};
		const KEYWORDS$6 = [
			"break",
			"breakWith",
			"breakOut",
			"breakTo",
			"case",
			"catch",
			"continue",
			"continueWith",
			"default",
			"do",
			"else",
			"exit",
			"exitWith",
			"for",
			"forEach",
			"from",
			"if",
			"local",
			"private",
			"switch",
			"step",
			"then",
			"throw",
			"to",
			"try",
			"waitUntil",
			"while",
			"with"
		];
		const LITERAL = [
			"blufor",
			"civilian",
			"configNull",
			"controlNull",
			"displayNull",
			"diaryRecordNull",
			"east",
			"endl",
			"false",
			"grpNull",
			"independent",
			"lineBreak",
			"locationNull",
			"nil",
			"objNull",
			"opfor",
			"pi",
			"resistance",
			"scriptNull",
			"sideAmbientLife",
			"sideEmpty",
			"sideEnemy",
			"sideFriendly",
			"sideLogic",
			"sideUnknown",
			"taskNull",
			"teamMemberNull",
			"true",
			"west"
		];
		const BUILT_IN = [
			"abs",
			"accTime",
			"acos",
			"action",
			"actionIDs",
			"actionKeys",
			"actionKeysEx",
			"actionKeysImages",
			"actionKeysNames",
			"actionKeysNamesArray",
			"actionName",
			"actionParams",
			"activateAddons",
			"activatedAddons",
			"activateKey",
			"activeTitleEffectParams",
			"add3DENConnection",
			"add3DENEventHandler",
			"add3DENLayer",
			"addAction",
			"addBackpack",
			"addBackpackCargo",
			"addBackpackCargoGlobal",
			"addBackpackGlobal",
			"addBinocularItem",
			"addCamShake",
			"addCuratorAddons",
			"addCuratorCameraArea",
			"addCuratorEditableObjects",
			"addCuratorEditingArea",
			"addCuratorPoints",
			"addEditorObject",
			"addEventHandler",
			"addForce",
			"addForceGeneratorRTD",
			"addGoggles",
			"addGroupIcon",
			"addHandgunItem",
			"addHeadgear",
			"addItem",
			"addItemCargo",
			"addItemCargoGlobal",
			"addItemPool",
			"addItemToBackpack",
			"addItemToUniform",
			"addItemToVest",
			"addLiveStats",
			"addMagazine",
			"addMagazineAmmoCargo",
			"addMagazineCargo",
			"addMagazineCargoGlobal",
			"addMagazineGlobal",
			"addMagazinePool",
			"addMagazines",
			"addMagazineTurret",
			"addMenu",
			"addMenuItem",
			"addMissionEventHandler",
			"addMPEventHandler",
			"addMusicEventHandler",
			"addonFiles",
			"addOwnedMine",
			"addPlayerScores",
			"addPrimaryWeaponItem",
			"addPublicVariableEventHandler",
			"addRating",
			"addResources",
			"addScore",
			"addScoreSide",
			"addSecondaryWeaponItem",
			"addSwitchableUnit",
			"addTeamMember",
			"addToRemainsCollector",
			"addTorque",
			"addUniform",
			"addUserActionEventHandler",
			"addVehicle",
			"addVest",
			"addWaypoint",
			"addWeapon",
			"addWeaponCargo",
			"addWeaponCargoGlobal",
			"addWeaponGlobal",
			"addWeaponItem",
			"addWeaponPool",
			"addWeaponTurret",
			"addWeaponWithAttachmentsCargo",
			"addWeaponWithAttachmentsCargoGlobal",
			"admin",
			"agent",
			"agents",
			"AGLToASL",
			"aimedAtTarget",
			"aimPos",
			"airDensityCurveRTD",
			"airDensityRTD",
			"airplaneThrottle",
			"airportSide",
			"AISFinishHeal",
			"alive",
			"all3DENEntities",
			"allActiveTitleEffects",
			"allAddonsInfo",
			"allAirports",
			"allControls",
			"allCurators",
			"allCutLayers",
			"allDead",
			"allDeadMen",
			"allDiaryRecords",
			"allDiarySubjects",
			"allDisplays",
			"allEnv3DSoundSources",
			"allGroups",
			"allLODs",
			"allMapMarkers",
			"allMines",
			"allMissionObjects",
			"allObjects",
			"allow3DMode",
			"allowCrewInImmobile",
			"allowCuratorLogicIgnoreAreas",
			"allowDamage",
			"allowDammage",
			"allowedService",
			"allowFileOperations",
			"allowFleeing",
			"allowGetIn",
			"allowService",
			"allowSprint",
			"allPlayers",
			"allSimpleObjects",
			"allSites",
			"allTurrets",
			"allUnits",
			"allUnitsUAV",
			"allUsers",
			"allVariables",
			"ambientTemperature",
			"ammo",
			"ammoOnPylon",
			"and",
			"animate",
			"animateBay",
			"animateDoor",
			"animatePylon",
			"animateSource",
			"animationNames",
			"animationPhase",
			"animationSourcePhase",
			"animationState",
			"apertureParams",
			"append",
			"apply",
			"armoryPoints",
			"arrayIntersect",
			"asin",
			"ASLToAGL",
			"ASLToATL",
			"assert",
			"assignAsCargo",
			"assignAsCargoIndex",
			"assignAsCommander",
			"assignAsDriver",
			"assignAsGunner",
			"assignAsTurret",
			"assignCurator",
			"assignedCargo",
			"assignedCommander",
			"assignedDriver",
			"assignedGroup",
			"assignedGunner",
			"assignedItems",
			"assignedTarget",
			"assignedTeam",
			"assignedVehicle",
			"assignedVehicleRole",
			"assignedVehicles",
			"assignItem",
			"assignTeam",
			"assignToAirport",
			"atan",
			"atan2",
			"atg",
			"ATLToASL",
			"attachedObject",
			"attachedObjects",
			"attachedTo",
			"attachObject",
			"attachTo",
			"attackEnabled",
			"awake",
			"backpack",
			"backpackCargo",
			"backpackContainer",
			"backpackItems",
			"backpackMagazines",
			"backpackSpaceFor",
			"behaviour",
			"benchmark",
			"bezierInterpolation",
			"binocular",
			"binocularItems",
			"binocularMagazine",
			"boundingBox",
			"boundingBoxReal",
			"boundingCenter",
			"brakesDisabled",
			"briefingName",
			"buildingExit",
			"buildingPos",
			"buldozer_EnableRoadDiag",
			"buldozer_IsEnabledRoadDiag",
			"buldozer_LoadNewRoads",
			"buldozer_reloadOperMap",
			"buttonAction",
			"buttonSetAction",
			"cadetMode",
			"calculatePath",
			"calculatePlayerVisibilityByFriendly",
			"call",
			"callExtension",
			"camCommand",
			"camCommit",
			"camCommitPrepared",
			"camCommitted",
			"camConstuctionSetParams",
			"camCreate",
			"camDestroy",
			"cameraEffect",
			"cameraEffectEnableHUD",
			"cameraInterest",
			"cameraOn",
			"cameraView",
			"campaignConfigFile",
			"camPreload",
			"camPreloaded",
			"camPrepareBank",
			"camPrepareDir",
			"camPrepareDive",
			"camPrepareFocus",
			"camPrepareFov",
			"camPrepareFovRange",
			"camPreparePos",
			"camPrepareRelPos",
			"camPrepareTarget",
			"camSetBank",
			"camSetDir",
			"camSetDive",
			"camSetFocus",
			"camSetFov",
			"camSetFovRange",
			"camSetPos",
			"camSetRelPos",
			"camSetTarget",
			"camTarget",
			"camUseNVG",
			"canAdd",
			"canAddItemToBackpack",
			"canAddItemToUniform",
			"canAddItemToVest",
			"cancelSimpleTaskDestination",
			"canDeployWeapon",
			"canFire",
			"canMove",
			"canSlingLoad",
			"canStand",
			"canSuspend",
			"canTriggerDynamicSimulation",
			"canUnloadInCombat",
			"canVehicleCargo",
			"captive",
			"captiveNum",
			"cbChecked",
			"cbSetChecked",
			"ceil",
			"channelEnabled",
			"cheatsEnabled",
			"checkAIFeature",
			"checkVisibility",
			"className",
			"clear3DENAttribute",
			"clear3DENInventory",
			"clearAllItemsFromBackpack",
			"clearBackpackCargo",
			"clearBackpackCargoGlobal",
			"clearForcesRTD",
			"clearGroupIcons",
			"clearItemCargo",
			"clearItemCargoGlobal",
			"clearItemPool",
			"clearMagazineCargo",
			"clearMagazineCargoGlobal",
			"clearMagazinePool",
			"clearOverlay",
			"clearRadio",
			"clearWeaponCargo",
			"clearWeaponCargoGlobal",
			"clearWeaponPool",
			"clientOwner",
			"closeDialog",
			"closeDisplay",
			"closeOverlay",
			"collapseObjectTree",
			"collect3DENHistory",
			"collectiveRTD",
			"collisionDisabledWith",
			"combatBehaviour",
			"combatMode",
			"commandArtilleryFire",
			"commandChat",
			"commander",
			"commandFire",
			"commandFollow",
			"commandFSM",
			"commandGetOut",
			"commandingMenu",
			"commandMove",
			"commandRadio",
			"commandStop",
			"commandSuppressiveFire",
			"commandTarget",
			"commandWatch",
			"comment",
			"commitOverlay",
			"compatibleItems",
			"compatibleMagazines",
			"compile",
			"compileFinal",
			"compileScript",
			"completedFSM",
			"composeText",
			"configClasses",
			"configFile",
			"configHierarchy",
			"configName",
			"configOf",
			"configProperties",
			"configSourceAddonList",
			"configSourceMod",
			"configSourceModList",
			"confirmSensorTarget",
			"connectTerminalToUAV",
			"connectToServer",
			"controlsGroupCtrl",
			"conversationDisabled",
			"copyFromClipboard",
			"copyToClipboard",
			"copyWaypoints",
			"cos",
			"count",
			"countEnemy",
			"countFriendly",
			"countSide",
			"countType",
			"countUnknown",
			"create3DENComposition",
			"create3DENEntity",
			"createAgent",
			"createCenter",
			"createDialog",
			"createDiaryLink",
			"createDiaryRecord",
			"createDiarySubject",
			"createDisplay",
			"createGearDialog",
			"createGroup",
			"createGuardedPoint",
			"createHashMap",
			"createHashMapFromArray",
			"createLocation",
			"createMarker",
			"createMarkerLocal",
			"createMenu",
			"createMine",
			"createMissionDisplay",
			"createMPCampaignDisplay",
			"createSimpleObject",
			"createSimpleTask",
			"createSite",
			"createSoundSource",
			"createTask",
			"createTeam",
			"createTrigger",
			"createUnit",
			"createVehicle",
			"createVehicleCrew",
			"createVehicleLocal",
			"crew",
			"ctAddHeader",
			"ctAddRow",
			"ctClear",
			"ctCurSel",
			"ctData",
			"ctFindHeaderRows",
			"ctFindRowHeader",
			"ctHeaderControls",
			"ctHeaderCount",
			"ctRemoveHeaders",
			"ctRemoveRows",
			"ctrlActivate",
			"ctrlAddEventHandler",
			"ctrlAngle",
			"ctrlAnimateModel",
			"ctrlAnimationPhaseModel",
			"ctrlAt",
			"ctrlAutoScrollDelay",
			"ctrlAutoScrollRewind",
			"ctrlAutoScrollSpeed",
			"ctrlBackgroundColor",
			"ctrlChecked",
			"ctrlClassName",
			"ctrlCommit",
			"ctrlCommitted",
			"ctrlCreate",
			"ctrlDelete",
			"ctrlEnable",
			"ctrlEnabled",
			"ctrlFade",
			"ctrlFontHeight",
			"ctrlForegroundColor",
			"ctrlHTMLLoaded",
			"ctrlIDC",
			"ctrlIDD",
			"ctrlMapAnimAdd",
			"ctrlMapAnimClear",
			"ctrlMapAnimCommit",
			"ctrlMapAnimDone",
			"ctrlMapCursor",
			"ctrlMapMouseOver",
			"ctrlMapPosition",
			"ctrlMapScale",
			"ctrlMapScreenToWorld",
			"ctrlMapSetPosition",
			"ctrlMapWorldToScreen",
			"ctrlModel",
			"ctrlModelDirAndUp",
			"ctrlModelScale",
			"ctrlMousePosition",
			"ctrlParent",
			"ctrlParentControlsGroup",
			"ctrlPosition",
			"ctrlRemoveAllEventHandlers",
			"ctrlRemoveEventHandler",
			"ctrlScale",
			"ctrlScrollValues",
			"ctrlSetActiveColor",
			"ctrlSetAngle",
			"ctrlSetAutoScrollDelay",
			"ctrlSetAutoScrollRewind",
			"ctrlSetAutoScrollSpeed",
			"ctrlSetBackgroundColor",
			"ctrlSetChecked",
			"ctrlSetDisabledColor",
			"ctrlSetEventHandler",
			"ctrlSetFade",
			"ctrlSetFocus",
			"ctrlSetFont",
			"ctrlSetFontH1",
			"ctrlSetFontH1B",
			"ctrlSetFontH2",
			"ctrlSetFontH2B",
			"ctrlSetFontH3",
			"ctrlSetFontH3B",
			"ctrlSetFontH4",
			"ctrlSetFontH4B",
			"ctrlSetFontH5",
			"ctrlSetFontH5B",
			"ctrlSetFontH6",
			"ctrlSetFontH6B",
			"ctrlSetFontHeight",
			"ctrlSetFontHeightH1",
			"ctrlSetFontHeightH2",
			"ctrlSetFontHeightH3",
			"ctrlSetFontHeightH4",
			"ctrlSetFontHeightH5",
			"ctrlSetFontHeightH6",
			"ctrlSetFontHeightSecondary",
			"ctrlSetFontP",
			"ctrlSetFontPB",
			"ctrlSetFontSecondary",
			"ctrlSetForegroundColor",
			"ctrlSetModel",
			"ctrlSetModelDirAndUp",
			"ctrlSetModelScale",
			"ctrlSetMousePosition",
			"ctrlSetPixelPrecision",
			"ctrlSetPosition",
			"ctrlSetPositionH",
			"ctrlSetPositionW",
			"ctrlSetPositionX",
			"ctrlSetPositionY",
			"ctrlSetScale",
			"ctrlSetScrollValues",
			"ctrlSetShadow",
			"ctrlSetStructuredText",
			"ctrlSetText",
			"ctrlSetTextColor",
			"ctrlSetTextColorSecondary",
			"ctrlSetTextSecondary",
			"ctrlSetTextSelection",
			"ctrlSetTooltip",
			"ctrlSetTooltipColorBox",
			"ctrlSetTooltipColorShade",
			"ctrlSetTooltipColorText",
			"ctrlSetTooltipMaxWidth",
			"ctrlSetURL",
			"ctrlSetURLOverlayMode",
			"ctrlShadow",
			"ctrlShow",
			"ctrlShown",
			"ctrlStyle",
			"ctrlText",
			"ctrlTextColor",
			"ctrlTextHeight",
			"ctrlTextSecondary",
			"ctrlTextSelection",
			"ctrlTextWidth",
			"ctrlTooltip",
			"ctrlType",
			"ctrlURL",
			"ctrlURLOverlayMode",
			"ctrlVisible",
			"ctRowControls",
			"ctRowCount",
			"ctSetCurSel",
			"ctSetData",
			"ctSetHeaderTemplate",
			"ctSetRowTemplate",
			"ctSetValue",
			"ctValue",
			"curatorAddons",
			"curatorCamera",
			"curatorCameraArea",
			"curatorCameraAreaCeiling",
			"curatorCoef",
			"curatorEditableObjects",
			"curatorEditingArea",
			"curatorEditingAreaType",
			"curatorMouseOver",
			"curatorPoints",
			"curatorRegisteredObjects",
			"curatorSelected",
			"curatorWaypointCost",
			"current3DENOperation",
			"currentChannel",
			"currentCommand",
			"currentMagazine",
			"currentMagazineDetail",
			"currentMagazineDetailTurret",
			"currentMagazineTurret",
			"currentMuzzle",
			"currentNamespace",
			"currentPilot",
			"currentTask",
			"currentTasks",
			"currentThrowable",
			"currentVisionMode",
			"currentWaypoint",
			"currentWeapon",
			"currentWeaponMode",
			"currentWeaponTurret",
			"currentZeroing",
			"cursorObject",
			"cursorTarget",
			"customChat",
			"customRadio",
			"customWaypointPosition",
			"cutFadeOut",
			"cutObj",
			"cutRsc",
			"cutText",
			"damage",
			"date",
			"dateToNumber",
			"dayTime",
			"deActivateKey",
			"debriefingText",
			"debugFSM",
			"debugLog",
			"decayGraphValues",
			"deg",
			"delete3DENEntities",
			"deleteAt",
			"deleteCenter",
			"deleteCollection",
			"deleteEditorObject",
			"deleteGroup",
			"deleteGroupWhenEmpty",
			"deleteIdentity",
			"deleteLocation",
			"deleteMarker",
			"deleteMarkerLocal",
			"deleteRange",
			"deleteResources",
			"deleteSite",
			"deleteStatus",
			"deleteTeam",
			"deleteVehicle",
			"deleteVehicleCrew",
			"deleteWaypoint",
			"detach",
			"detectedMines",
			"diag_activeMissionFSMs",
			"diag_activeScripts",
			"diag_activeSQFScripts",
			"diag_activeSQSScripts",
			"diag_allMissionEventHandlers",
			"diag_captureFrame",
			"diag_captureFrameToFile",
			"diag_captureSlowFrame",
			"diag_codePerformance",
			"diag_deltaTime",
			"diag_drawmode",
			"diag_dumpCalltraceToLog",
			"diag_dumpScriptAssembly",
			"diag_dumpTerrainSynth",
			"diag_dynamicSimulationEnd",
			"diag_enable",
			"diag_enabled",
			"diag_exportConfig",
			"diag_exportTerrainSVG",
			"diag_fps",
			"diag_fpsmin",
			"diag_frameno",
			"diag_getTerrainSegmentOffset",
			"diag_lightNewLoad",
			"diag_list",
			"diag_localized",
			"diag_log",
			"diag_logSlowFrame",
			"diag_mergeConfigFile",
			"diag_recordTurretLimits",
			"diag_resetFSM",
			"diag_resetshapes",
			"diag_scope",
			"diag_setLightNew",
			"diag_stacktrace",
			"diag_tickTime",
			"diag_toggle",
			"dialog",
			"diarySubjectExists",
			"didJIP",
			"didJIPOwner",
			"difficulty",
			"difficultyEnabled",
			"difficultyEnabledRTD",
			"difficultyOption",
			"direction",
			"directionStabilizationEnabled",
			"directSay",
			"disableAI",
			"disableBrakes",
			"disableCollisionWith",
			"disableConversation",
			"disableDebriefingStats",
			"disableMapIndicators",
			"disableNVGEquipment",
			"disableRemoteSensors",
			"disableSerialization",
			"disableTIEquipment",
			"disableUAVConnectability",
			"disableUserInput",
			"displayAddEventHandler",
			"displayChild",
			"displayCtrl",
			"displayParent",
			"displayRemoveAllEventHandlers",
			"displayRemoveEventHandler",
			"displaySetEventHandler",
			"displayUniqueName",
			"displayUpdate",
			"dissolveTeam",
			"distance",
			"distance2D",
			"distanceSqr",
			"distributionRegion",
			"do3DENAction",
			"doArtilleryFire",
			"doFire",
			"doFollow",
			"doFSM",
			"doGetOut",
			"doMove",
			"doorPhase",
			"doStop",
			"doSuppressiveFire",
			"doTarget",
			"doWatch",
			"drawArrow",
			"drawEllipse",
			"drawIcon",
			"drawIcon3D",
			"drawLaser",
			"drawLine",
			"drawLine3D",
			"drawLink",
			"drawLocation",
			"drawPolygon",
			"drawRectangle",
			"drawTriangle",
			"driver",
			"drop",
			"dynamicSimulationDistance",
			"dynamicSimulationDistanceCoef",
			"dynamicSimulationEnabled",
			"dynamicSimulationSystemEnabled",
			"echo",
			"edit3DENMissionAttributes",
			"editObject",
			"editorSetEventHandler",
			"effectiveCommander",
			"elevatePeriscope",
			"emptyPositions",
			"enableAI",
			"enableAIFeature",
			"enableAimPrecision",
			"enableAttack",
			"enableAudioFeature",
			"enableAutoStartUpRTD",
			"enableAutoTrimRTD",
			"enableCamShake",
			"enableCaustics",
			"enableChannel",
			"enableCollisionWith",
			"enableCopilot",
			"enableDebriefingStats",
			"enableDiagLegend",
			"enableDirectionStabilization",
			"enableDynamicSimulation",
			"enableDynamicSimulationSystem",
			"enableEndDialog",
			"enableEngineArtillery",
			"enableEnvironment",
			"enableFatigue",
			"enableGunLights",
			"enableInfoPanelComponent",
			"enableIRLasers",
			"enableMimics",
			"enablePersonTurret",
			"enableRadio",
			"enableReload",
			"enableRopeAttach",
			"enableSatNormalOnDetail",
			"enableSaving",
			"enableSentences",
			"enableSimulation",
			"enableSimulationGlobal",
			"enableStamina",
			"enableStressDamage",
			"enableTeamSwitch",
			"enableTraffic",
			"enableUAVConnectability",
			"enableUAVWaypoints",
			"enableVehicleCargo",
			"enableVehicleSensor",
			"enableWeaponDisassembly",
			"endLoadingScreen",
			"endMission",
			"engineOn",
			"enginesIsOnRTD",
			"enginesPowerRTD",
			"enginesRpmRTD",
			"enginesTorqueRTD",
			"entities",
			"environmentEnabled",
			"environmentVolume",
			"equipmentDisabled",
			"estimatedEndServerTime",
			"estimatedTimeLeft",
			"evalObjectArgument",
			"everyBackpack",
			"everyContainer",
			"exec",
			"execEditorScript",
			"execFSM",
			"execVM",
			"exp",
			"expectedDestination",
			"exportJIPMessages",
			"eyeDirection",
			"eyePos",
			"face",
			"faction",
			"fadeEnvironment",
			"fadeMusic",
			"fadeRadio",
			"fadeSound",
			"fadeSpeech",
			"failMission",
			"fileExists",
			"fillWeaponsFromPool",
			"find",
			"findAny",
			"findCover",
			"findDisplay",
			"findEditorObject",
			"findEmptyPosition",
			"findEmptyPositionReady",
			"findIf",
			"findNearestEnemy",
			"finishMissionInit",
			"finite",
			"fire",
			"fireAtTarget",
			"firstBackpack",
			"flag",
			"flagAnimationPhase",
			"flagOwner",
			"flagSide",
			"flagTexture",
			"flatten",
			"fleeing",
			"floor",
			"flyInHeight",
			"flyInHeightASL",
			"focusedCtrl",
			"fog",
			"fogForecast",
			"fogParams",
			"forceAddUniform",
			"forceAtPositionRTD",
			"forceCadetDifficulty",
			"forcedMap",
			"forceEnd",
			"forceFlagTexture",
			"forceFollowRoad",
			"forceGeneratorRTD",
			"forceMap",
			"forceRespawn",
			"forceSpeed",
			"forceUnicode",
			"forceWalk",
			"forceWeaponFire",
			"forceWeatherChange",
			"forEachMember",
			"forEachMemberAgent",
			"forEachMemberTeam",
			"forgetTarget",
			"format",
			"formation",
			"formationDirection",
			"formationLeader",
			"formationMembers",
			"formationPosition",
			"formationTask",
			"formatText",
			"formLeader",
			"freeExtension",
			"freeLook",
			"fromEditor",
			"fuel",
			"fullCrew",
			"gearIDCAmmoCount",
			"gearSlotAmmoCount",
			"gearSlotData",
			"gestureState",
			"get",
			"get3DENActionState",
			"get3DENAttribute",
			"get3DENCamera",
			"get3DENConnections",
			"get3DENEntity",
			"get3DENEntityID",
			"get3DENGrid",
			"get3DENIconsVisible",
			"get3DENLayerEntities",
			"get3DENLinesVisible",
			"get3DENMissionAttribute",
			"get3DENMouseOver",
			"get3DENSelected",
			"getAimingCoef",
			"getAllEnv3DSoundControllers",
			"getAllEnvSoundControllers",
			"getAllHitPointsDamage",
			"getAllOwnedMines",
			"getAllPylonsInfo",
			"getAllSoundControllers",
			"getAllUnitTraits",
			"getAmmoCargo",
			"getAnimAimPrecision",
			"getAnimSpeedCoef",
			"getArray",
			"getArtilleryAmmo",
			"getArtilleryComputerSettings",
			"getArtilleryETA",
			"getAssetDLCInfo",
			"getAssignedCuratorLogic",
			"getAssignedCuratorUnit",
			"getAttackTarget",
			"getAudioOptionVolumes",
			"getBackpackCargo",
			"getBleedingRemaining",
			"getBurningValue",
			"getCalculatePlayerVisibilityByFriendly",
			"getCameraViewDirection",
			"getCargoIndex",
			"getCenterOfMass",
			"getClientState",
			"getClientStateNumber",
			"getCompatiblePylonMagazines",
			"getConnectedUAV",
			"getConnectedUAVUnit",
			"getContainerMaxLoad",
			"getCorpse",
			"getCruiseControl",
			"getCursorObjectParams",
			"getCustomAimCoef",
			"getCustomSoundController",
			"getCustomSoundControllerCount",
			"getDammage",
			"getDebriefingText",
			"getDescription",
			"getDir",
			"getDirVisual",
			"getDiverState",
			"getDLCAssetsUsage",
			"getDLCAssetsUsageByName",
			"getDLCs",
			"getDLCUsageTime",
			"getEditorCamera",
			"getEditorMode",
			"getEditorObjectScope",
			"getElevationOffset",
			"getEngineTargetRPMRTD",
			"getEnv3DSoundController",
			"getEnvSoundController",
			"getEventHandlerInfo",
			"getFatigue",
			"getFieldManualStartPage",
			"getForcedFlagTexture",
			"getForcedSpeed",
			"getFriend",
			"getFSMVariable",
			"getFuelCargo",
			"getGraphValues",
			"getGroupIcon",
			"getGroupIconParams",
			"getGroupIcons",
			"getHideFrom",
			"getHit",
			"getHitIndex",
			"getHitPointDamage",
			"getItemCargo",
			"getLighting",
			"getLightingAt",
			"getLoadedModsInfo",
			"getMagazineCargo",
			"getMarkerColor",
			"getMarkerPos",
			"getMarkerSize",
			"getMarkerType",
			"getMass",
			"getMissionConfig",
			"getMissionConfigValue",
			"getMissionDLCs",
			"getMissionLayerEntities",
			"getMissionLayers",
			"getMissionPath",
			"getModelInfo",
			"getMousePosition",
			"getMusicPlayedTime",
			"getNumber",
			"getObjectArgument",
			"getObjectChildren",
			"getObjectDLC",
			"getObjectFOV",
			"getObjectID",
			"getObjectMaterials",
			"getObjectProxy",
			"getObjectScale",
			"getObjectTextures",
			"getObjectType",
			"getObjectViewDistance",
			"getOpticsMode",
			"getOrDefault",
			"getOrDefaultCall",
			"getOxygenRemaining",
			"getPersonUsedDLCs",
			"getPilotCameraDirection",
			"getPilotCameraPosition",
			"getPilotCameraRotation",
			"getPilotCameraTarget",
			"getPiPViewDistance",
			"getPlateNumber",
			"getPlayerChannel",
			"getPlayerID",
			"getPlayerScores",
			"getPlayerUID",
			"getPlayerVoNVolume",
			"getPos",
			"getPosASL",
			"getPosASLVisual",
			"getPosASLW",
			"getPosATL",
			"getPosATLVisual",
			"getPosVisual",
			"getPosWorld",
			"getPosWorldVisual",
			"getPylonMagazines",
			"getRelDir",
			"getRelPos",
			"getRemoteSensorsDisabled",
			"getRepairCargo",
			"getResolution",
			"getRoadInfo",
			"getRotorBrakeRTD",
			"getSensorTargets",
			"getSensorThreats",
			"getShadowDistance",
			"getShotParents",
			"getSlingLoad",
			"getSoundController",
			"getSoundControllerResult",
			"getSpeed",
			"getStamina",
			"getStatValue",
			"getSteamFriendsServers",
			"getSubtitleOptions",
			"getSuppression",
			"getTerrainGrid",
			"getTerrainHeight",
			"getTerrainHeightASL",
			"getTerrainInfo",
			"getText",
			"getTextRaw",
			"getTextureInfo",
			"getTextWidth",
			"getTiParameters",
			"getTotalDLCUsageTime",
			"getTrimOffsetRTD",
			"getTurretLimits",
			"getTurretOpticsMode",
			"getUnitFreefallInfo",
			"getUnitLoadout",
			"getUnitTrait",
			"getUnloadInCombat",
			"getUserInfo",
			"getUserMFDText",
			"getUserMFDValue",
			"getVariable",
			"getVehicleCargo",
			"getVehicleTiPars",
			"getWeaponCargo",
			"getWeaponSway",
			"getWingsOrientationRTD",
			"getWingsPositionRTD",
			"getWPPos",
			"glanceAt",
			"globalChat",
			"globalRadio",
			"goggles",
			"goto",
			"group",
			"groupChat",
			"groupFromNetId",
			"groupIconSelectable",
			"groupIconsVisible",
			"groupID",
			"groupOwner",
			"groupRadio",
			"groups",
			"groupSelectedUnits",
			"groupSelectUnit",
			"gunner",
			"gusts",
			"halt",
			"handgunItems",
			"handgunMagazine",
			"handgunWeapon",
			"handsHit",
			"hashValue",
			"hasInterface",
			"hasPilotCamera",
			"hasWeapon",
			"hcAllGroups",
			"hcGroupParams",
			"hcLeader",
			"hcRemoveAllGroups",
			"hcRemoveGroup",
			"hcSelected",
			"hcSelectGroup",
			"hcSetGroup",
			"hcShowBar",
			"hcShownBar",
			"headgear",
			"hideBody",
			"hideObject",
			"hideObjectGlobal",
			"hideSelection",
			"hint",
			"hintC",
			"hintCadet",
			"hintSilent",
			"hmd",
			"hostMission",
			"htmlLoad",
			"HUDMovementLevels",
			"humidity",
			"image",
			"importAllGroups",
			"importance",
			"in",
			"inArea",
			"inAreaArray",
			"incapacitatedState",
			"inflame",
			"inflamed",
			"infoPanel",
			"infoPanelComponentEnabled",
			"infoPanelComponents",
			"infoPanels",
			"inGameUISetEventHandler",
			"inheritsFrom",
			"initAmbientLife",
			"inPolygon",
			"inputAction",
			"inputController",
			"inputMouse",
			"inRangeOfArtillery",
			"insert",
			"insertEditorObject",
			"intersect",
			"is3DEN",
			"is3DENMultiplayer",
			"is3DENPreview",
			"isAbleToBreathe",
			"isActionMenuVisible",
			"isAgent",
			"isAimPrecisionEnabled",
			"isAllowedCrewInImmobile",
			"isArray",
			"isAutoHoverOn",
			"isAutonomous",
			"isAutoStartUpEnabledRTD",
			"isAutotest",
			"isAutoTrimOnRTD",
			"isAwake",
			"isBleeding",
			"isBurning",
			"isClass",
			"isCollisionLightOn",
			"isCopilotEnabled",
			"isDamageAllowed",
			"isDedicated",
			"isDLCAvailable",
			"isEngineOn",
			"isEqualRef",
			"isEqualTo",
			"isEqualType",
			"isEqualTypeAll",
			"isEqualTypeAny",
			"isEqualTypeArray",
			"isEqualTypeParams",
			"isFilePatchingEnabled",
			"isFinal",
			"isFlashlightOn",
			"isFlatEmpty",
			"isForcedWalk",
			"isFormationLeader",
			"isGameFocused",
			"isGamePaused",
			"isGroupDeletedWhenEmpty",
			"isHidden",
			"isInRemainsCollector",
			"isInstructorFigureEnabled",
			"isIRLaserOn",
			"isKeyActive",
			"isKindOf",
			"isLaserOn",
			"isLightOn",
			"isLocalized",
			"isManualFire",
			"isMarkedForCollection",
			"isMissionProfileNamespaceLoaded",
			"isMultiplayer",
			"isMultiplayerSolo",
			"isNil",
			"isNotEqualRef",
			"isNotEqualTo",
			"isNull",
			"isNumber",
			"isObjectHidden",
			"isObjectRTD",
			"isOnRoad",
			"isPiPEnabled",
			"isPlayer",
			"isRealTime",
			"isRemoteExecuted",
			"isRemoteExecutedJIP",
			"isSaving",
			"isSensorTargetConfirmed",
			"isServer",
			"isShowing3DIcons",
			"isSimpleObject",
			"isSprintAllowed",
			"isStaminaEnabled",
			"isSteamMission",
			"isSteamOverlayEnabled",
			"isStreamFriendlyUIEnabled",
			"isStressDamageEnabled",
			"isText",
			"isTouchingGround",
			"isTurnedOut",
			"isTutHintsEnabled",
			"isUAVConnectable",
			"isUAVConnected",
			"isUIContext",
			"isUniformAllowed",
			"isVehicleCargo",
			"isVehicleRadarOn",
			"isVehicleSensorEnabled",
			"isWalking",
			"isWeaponDeployed",
			"isWeaponRested",
			"itemCargo",
			"items",
			"itemsWithMagazines",
			"join",
			"joinAs",
			"joinAsSilent",
			"joinSilent",
			"joinString",
			"kbAddDatabase",
			"kbAddDatabaseTargets",
			"kbAddTopic",
			"kbHasTopic",
			"kbReact",
			"kbRemoveTopic",
			"kbTell",
			"kbWasSaid",
			"keyImage",
			"keyName",
			"keys",
			"knowsAbout",
			"land",
			"landAt",
			"landResult",
			"language",
			"laserTarget",
			"lbAdd",
			"lbClear",
			"lbColor",
			"lbColorRight",
			"lbCurSel",
			"lbData",
			"lbDelete",
			"lbIsSelected",
			"lbPicture",
			"lbPictureRight",
			"lbSelection",
			"lbSetColor",
			"lbSetColorRight",
			"lbSetCurSel",
			"lbSetData",
			"lbSetPicture",
			"lbSetPictureColor",
			"lbSetPictureColorDisabled",
			"lbSetPictureColorSelected",
			"lbSetPictureRight",
			"lbSetPictureRightColor",
			"lbSetPictureRightColorDisabled",
			"lbSetPictureRightColorSelected",
			"lbSetSelectColor",
			"lbSetSelectColorRight",
			"lbSetSelected",
			"lbSetText",
			"lbSetTextRight",
			"lbSetTooltip",
			"lbSetValue",
			"lbSize",
			"lbSort",
			"lbSortBy",
			"lbSortByValue",
			"lbText",
			"lbTextRight",
			"lbTooltip",
			"lbValue",
			"leader",
			"leaderboardDeInit",
			"leaderboardGetRows",
			"leaderboardInit",
			"leaderboardRequestRowsFriends",
			"leaderboardRequestRowsGlobal",
			"leaderboardRequestRowsGlobalAroundUser",
			"leaderboardsRequestUploadScore",
			"leaderboardsRequestUploadScoreKeepBest",
			"leaderboardState",
			"leaveVehicle",
			"libraryCredits",
			"libraryDisclaimers",
			"lifeState",
			"lightAttachObject",
			"lightDetachObject",
			"lightIsOn",
			"lightnings",
			"limitSpeed",
			"linearConversion",
			"lineIntersects",
			"lineIntersectsObjs",
			"lineIntersectsSurfaces",
			"lineIntersectsWith",
			"linkItem",
			"list",
			"listObjects",
			"listRemoteTargets",
			"listVehicleSensors",
			"ln",
			"lnbAddArray",
			"lnbAddColumn",
			"lnbAddRow",
			"lnbClear",
			"lnbColor",
			"lnbColorRight",
			"lnbCurSelRow",
			"lnbData",
			"lnbDeleteColumn",
			"lnbDeleteRow",
			"lnbGetColumnsPosition",
			"lnbPicture",
			"lnbPictureRight",
			"lnbSetColor",
			"lnbSetColorRight",
			"lnbSetColumnsPos",
			"lnbSetCurSelRow",
			"lnbSetData",
			"lnbSetPicture",
			"lnbSetPictureColor",
			"lnbSetPictureColorRight",
			"lnbSetPictureColorSelected",
			"lnbSetPictureColorSelectedRight",
			"lnbSetPictureRight",
			"lnbSetText",
			"lnbSetTextRight",
			"lnbSetTooltip",
			"lnbSetValue",
			"lnbSize",
			"lnbSort",
			"lnbSortBy",
			"lnbSortByValue",
			"lnbText",
			"lnbTextRight",
			"lnbValue",
			"load",
			"loadAbs",
			"loadBackpack",
			"loadConfig",
			"loadFile",
			"loadGame",
			"loadIdentity",
			"loadMagazine",
			"loadOverlay",
			"loadStatus",
			"loadUniform",
			"loadVest",
			"localize",
			"localNamespace",
			"locationPosition",
			"lock",
			"lockCameraTo",
			"lockCargo",
			"lockDriver",
			"locked",
			"lockedCameraTo",
			"lockedCargo",
			"lockedDriver",
			"lockedInventory",
			"lockedTurret",
			"lockIdentity",
			"lockInventory",
			"lockTurret",
			"lockWp",
			"log",
			"logEntities",
			"logNetwork",
			"logNetworkTerminate",
			"lookAt",
			"lookAtPos",
			"magazineCargo",
			"magazines",
			"magazinesAllTurrets",
			"magazinesAmmo",
			"magazinesAmmoCargo",
			"magazinesAmmoFull",
			"magazinesDetail",
			"magazinesDetailBackpack",
			"magazinesDetailUniform",
			"magazinesDetailVest",
			"magazinesTurret",
			"magazineTurretAmmo",
			"mapAnimAdd",
			"mapAnimClear",
			"mapAnimCommit",
			"mapAnimDone",
			"mapCenterOnCamera",
			"mapGridPosition",
			"markAsFinishedOnSteam",
			"markerAlpha",
			"markerBrush",
			"markerChannel",
			"markerColor",
			"markerDir",
			"markerPolyline",
			"markerPos",
			"markerShadow",
			"markerShape",
			"markerSize",
			"markerText",
			"markerType",
			"matrixMultiply",
			"matrixTranspose",
			"max",
			"maxLoad",
			"members",
			"menuAction",
			"menuAdd",
			"menuChecked",
			"menuClear",
			"menuCollapse",
			"menuData",
			"menuDelete",
			"menuEnable",
			"menuEnabled",
			"menuExpand",
			"menuHover",
			"menuPicture",
			"menuSetAction",
			"menuSetCheck",
			"menuSetData",
			"menuSetPicture",
			"menuSetShortcut",
			"menuSetText",
			"menuSetURL",
			"menuSetValue",
			"menuShortcut",
			"menuShortcutText",
			"menuSize",
			"menuSort",
			"menuText",
			"menuURL",
			"menuValue",
			"merge",
			"min",
			"mineActive",
			"mineDetectedBy",
			"missileTarget",
			"missileTargetPos",
			"missionConfigFile",
			"missionDifficulty",
			"missionEnd",
			"missionName",
			"missionNameSource",
			"missionNamespace",
			"missionProfileNamespace",
			"missionStart",
			"missionVersion",
			"mod",
			"modelToWorld",
			"modelToWorldVisual",
			"modelToWorldVisualWorld",
			"modelToWorldWorld",
			"modParams",
			"moonIntensity",
			"moonPhase",
			"morale",
			"move",
			"move3DENCamera",
			"moveInAny",
			"moveInCargo",
			"moveInCommander",
			"moveInDriver",
			"moveInGunner",
			"moveInTurret",
			"moveObjectToEnd",
			"moveOut",
			"moveTime",
			"moveTo",
			"moveToCompleted",
			"moveToFailed",
			"musicVolume",
			"name",
			"namedProperties",
			"nameSound",
			"nearEntities",
			"nearestBuilding",
			"nearestLocation",
			"nearestLocations",
			"nearestLocationWithDubbing",
			"nearestMines",
			"nearestObject",
			"nearestObjects",
			"nearestTerrainObjects",
			"nearObjects",
			"nearObjectsReady",
			"nearRoads",
			"nearSupplies",
			"nearTargets",
			"needReload",
			"needService",
			"netId",
			"netObjNull",
			"newOverlay",
			"nextMenuItemIndex",
			"nextWeatherChange",
			"nMenuItems",
			"not",
			"numberOfEnginesRTD",
			"numberToDate",
			"objectCurators",
			"objectFromNetId",
			"objectParent",
			"objStatus",
			"onBriefingGroup",
			"onBriefingNotes",
			"onBriefingPlan",
			"onBriefingTeamSwitch",
			"onCommandModeChanged",
			"onDoubleClick",
			"onEachFrame",
			"onGroupIconClick",
			"onGroupIconOverEnter",
			"onGroupIconOverLeave",
			"onHCGroupSelectionChanged",
			"onMapSingleClick",
			"onPlayerConnected",
			"onPlayerDisconnected",
			"onPreloadFinished",
			"onPreloadStarted",
			"onShowNewObject",
			"onTeamSwitch",
			"openCuratorInterface",
			"openDLCPage",
			"openGPS",
			"openMap",
			"openSteamApp",
			"openYoutubeVideo",
			"or",
			"orderGetIn",
			"overcast",
			"overcastForecast",
			"owner",
			"param",
			"params",
			"parseNumber",
			"parseSimpleArray",
			"parseText",
			"parsingNamespace",
			"particlesQuality",
			"periscopeElevation",
			"pickWeaponPool",
			"pitch",
			"pixelGrid",
			"pixelGridBase",
			"pixelGridNoUIScale",
			"pixelH",
			"pixelW",
			"playableSlotsNumber",
			"playableUnits",
			"playAction",
			"playActionNow",
			"player",
			"playerRespawnTime",
			"playerSide",
			"playersNumber",
			"playGesture",
			"playMission",
			"playMove",
			"playMoveNow",
			"playMusic",
			"playScriptedMission",
			"playSound",
			"playSound3D",
			"playSoundUI",
			"pose",
			"position",
			"positionCameraToWorld",
			"posScreenToWorld",
			"posWorldToScreen",
			"ppEffectAdjust",
			"ppEffectCommit",
			"ppEffectCommitted",
			"ppEffectCreate",
			"ppEffectDestroy",
			"ppEffectEnable",
			"ppEffectEnabled",
			"ppEffectForceInNVG",
			"precision",
			"preloadCamera",
			"preloadObject",
			"preloadSound",
			"preloadTitleObj",
			"preloadTitleRsc",
			"preprocessFile",
			"preprocessFileLineNumbers",
			"primaryWeapon",
			"primaryWeaponItems",
			"primaryWeaponMagazine",
			"priority",
			"processDiaryLink",
			"productVersion",
			"profileName",
			"profileNamespace",
			"profileNameSteam",
			"progressLoadingScreen",
			"progressPosition",
			"progressSetPosition",
			"publicVariable",
			"publicVariableClient",
			"publicVariableServer",
			"pushBack",
			"pushBackUnique",
			"putWeaponPool",
			"queryItemsPool",
			"queryMagazinePool",
			"queryWeaponPool",
			"rad",
			"radioChannelAdd",
			"radioChannelCreate",
			"radioChannelInfo",
			"radioChannelRemove",
			"radioChannelSetCallSign",
			"radioChannelSetLabel",
			"radioEnabled",
			"radioVolume",
			"rain",
			"rainbow",
			"rainParams",
			"random",
			"rank",
			"rankId",
			"rating",
			"rectangular",
			"regexFind",
			"regexMatch",
			"regexReplace",
			"registeredTasks",
			"registerTask",
			"reload",
			"reloadEnabled",
			"remoteControl",
			"remoteExec",
			"remoteExecCall",
			"remoteExecutedOwner",
			"remove3DENConnection",
			"remove3DENEventHandler",
			"remove3DENLayer",
			"removeAction",
			"removeAll3DENEventHandlers",
			"removeAllActions",
			"removeAllAssignedItems",
			"removeAllBinocularItems",
			"removeAllContainers",
			"removeAllCuratorAddons",
			"removeAllCuratorCameraAreas",
			"removeAllCuratorEditingAreas",
			"removeAllEventHandlers",
			"removeAllHandgunItems",
			"removeAllItems",
			"removeAllItemsWithMagazines",
			"removeAllMissionEventHandlers",
			"removeAllMPEventHandlers",
			"removeAllMusicEventHandlers",
			"removeAllOwnedMines",
			"removeAllPrimaryWeaponItems",
			"removeAllSecondaryWeaponItems",
			"removeAllUserActionEventHandlers",
			"removeAllWeapons",
			"removeBackpack",
			"removeBackpackGlobal",
			"removeBinocularItem",
			"removeCuratorAddons",
			"removeCuratorCameraArea",
			"removeCuratorEditableObjects",
			"removeCuratorEditingArea",
			"removeDiaryRecord",
			"removeDiarySubject",
			"removeDrawIcon",
			"removeDrawLinks",
			"removeEventHandler",
			"removeFromRemainsCollector",
			"removeGoggles",
			"removeGroupIcon",
			"removeHandgunItem",
			"removeHeadgear",
			"removeItem",
			"removeItemFromBackpack",
			"removeItemFromUniform",
			"removeItemFromVest",
			"removeItems",
			"removeMagazine",
			"removeMagazineGlobal",
			"removeMagazines",
			"removeMagazinesTurret",
			"removeMagazineTurret",
			"removeMenuItem",
			"removeMissionEventHandler",
			"removeMPEventHandler",
			"removeMusicEventHandler",
			"removeOwnedMine",
			"removePrimaryWeaponItem",
			"removeSecondaryWeaponItem",
			"removeSimpleTask",
			"removeSwitchableUnit",
			"removeTeamMember",
			"removeUniform",
			"removeUserActionEventHandler",
			"removeVest",
			"removeWeapon",
			"removeWeaponAttachmentCargo",
			"removeWeaponCargo",
			"removeWeaponGlobal",
			"removeWeaponTurret",
			"reportRemoteTarget",
			"requiredVersion",
			"resetCamShake",
			"resetSubgroupDirection",
			"resize",
			"resources",
			"respawnVehicle",
			"restartEditorCamera",
			"reveal",
			"revealMine",
			"reverse",
			"reversedMouseY",
			"roadAt",
			"roadsConnectedTo",
			"roleDescription",
			"ropeAttachedObjects",
			"ropeAttachedTo",
			"ropeAttachEnabled",
			"ropeAttachTo",
			"ropeCreate",
			"ropeCut",
			"ropeDestroy",
			"ropeDetach",
			"ropeEndPosition",
			"ropeLength",
			"ropes",
			"ropesAttachedTo",
			"ropeSegments",
			"ropeUnwind",
			"ropeUnwound",
			"rotorsForcesRTD",
			"rotorsRpmRTD",
			"round",
			"runInitScript",
			"safeZoneH",
			"safeZoneW",
			"safeZoneWAbs",
			"safeZoneX",
			"safeZoneXAbs",
			"safeZoneY",
			"save3DENInventory",
			"saveGame",
			"saveIdentity",
			"saveJoysticks",
			"saveMissionProfileNamespace",
			"saveOverlay",
			"saveProfileNamespace",
			"saveStatus",
			"saveVar",
			"savingEnabled",
			"say",
			"say2D",
			"say3D",
			"scopeName",
			"score",
			"scoreSide",
			"screenshot",
			"screenToWorld",
			"scriptDone",
			"scriptName",
			"scudState",
			"secondaryWeapon",
			"secondaryWeaponItems",
			"secondaryWeaponMagazine",
			"select",
			"selectBestPlaces",
			"selectDiarySubject",
			"selectedEditorObjects",
			"selectEditorObject",
			"selectionNames",
			"selectionPosition",
			"selectionVectorDirAndUp",
			"selectLeader",
			"selectMax",
			"selectMin",
			"selectNoPlayer",
			"selectPlayer",
			"selectRandom",
			"selectRandomWeighted",
			"selectWeapon",
			"selectWeaponTurret",
			"sendAUMessage",
			"sendSimpleCommand",
			"sendTask",
			"sendTaskResult",
			"sendUDPMessage",
			"sentencesEnabled",
			"serverCommand",
			"serverCommandAvailable",
			"serverCommandExecutable",
			"serverName",
			"serverNamespace",
			"serverTime",
			"set",
			"set3DENAttribute",
			"set3DENAttributes",
			"set3DENGrid",
			"set3DENIconsVisible",
			"set3DENLayer",
			"set3DENLinesVisible",
			"set3DENLogicType",
			"set3DENMissionAttribute",
			"set3DENMissionAttributes",
			"set3DENModelsVisible",
			"set3DENObjectType",
			"set3DENSelected",
			"setAccTime",
			"setActualCollectiveRTD",
			"setAirplaneThrottle",
			"setAirportSide",
			"setAmmo",
			"setAmmoCargo",
			"setAmmoOnPylon",
			"setAnimSpeedCoef",
			"setAperture",
			"setApertureNew",
			"setArmoryPoints",
			"setAttributes",
			"setAutonomous",
			"setBehaviour",
			"setBehaviourStrong",
			"setBleedingRemaining",
			"setBrakesRTD",
			"setCameraInterest",
			"setCamShakeDefParams",
			"setCamShakeParams",
			"setCamUseTi",
			"setCaptive",
			"setCenterOfMass",
			"setCollisionLight",
			"setCombatBehaviour",
			"setCombatMode",
			"setCompassOscillation",
			"setConvoySeparation",
			"setCruiseControl",
			"setCuratorCameraAreaCeiling",
			"setCuratorCoef",
			"setCuratorEditingAreaType",
			"setCuratorWaypointCost",
			"setCurrentChannel",
			"setCurrentTask",
			"setCurrentWaypoint",
			"setCustomAimCoef",
			"SetCustomMissionData",
			"setCustomSoundController",
			"setCustomWeightRTD",
			"setDamage",
			"setDammage",
			"setDate",
			"setDebriefingText",
			"setDefaultCamera",
			"setDestination",
			"setDetailMapBlendPars",
			"setDiaryRecordText",
			"setDiarySubjectPicture",
			"setDir",
			"setDirection",
			"setDrawIcon",
			"setDriveOnPath",
			"setDropInterval",
			"setDynamicSimulationDistance",
			"setDynamicSimulationDistanceCoef",
			"setEditorMode",
			"setEditorObjectScope",
			"setEffectCondition",
			"setEffectiveCommander",
			"setEngineRpmRTD",
			"setFace",
			"setFaceanimation",
			"setFatigue",
			"setFeatureType",
			"setFlagAnimationPhase",
			"setFlagOwner",
			"setFlagSide",
			"setFlagTexture",
			"setFog",
			"setForceGeneratorRTD",
			"setFormation",
			"setFormationTask",
			"setFormDir",
			"setFriend",
			"setFromEditor",
			"setFSMVariable",
			"setFuel",
			"setFuelCargo",
			"setGroupIcon",
			"setGroupIconParams",
			"setGroupIconsSelectable",
			"setGroupIconsVisible",
			"setGroupid",
			"setGroupIdGlobal",
			"setGroupOwner",
			"setGusts",
			"setHideBehind",
			"setHit",
			"setHitIndex",
			"setHitPointDamage",
			"setHorizonParallaxCoef",
			"setHUDMovementLevels",
			"setHumidity",
			"setIdentity",
			"setImportance",
			"setInfoPanel",
			"setLeader",
			"setLightAmbient",
			"setLightAttenuation",
			"setLightBrightness",
			"setLightColor",
			"setLightConePars",
			"setLightDayLight",
			"setLightFlareMaxDistance",
			"setLightFlareSize",
			"setLightIntensity",
			"setLightIR",
			"setLightnings",
			"setLightUseFlare",
			"setLightVolumeShape",
			"setLocalWindParams",
			"setMagazineTurretAmmo",
			"setMarkerAlpha",
			"setMarkerAlphaLocal",
			"setMarkerBrush",
			"setMarkerBrushLocal",
			"setMarkerColor",
			"setMarkerColorLocal",
			"setMarkerDir",
			"setMarkerDirLocal",
			"setMarkerPolyline",
			"setMarkerPolylineLocal",
			"setMarkerPos",
			"setMarkerPosLocal",
			"setMarkerShadow",
			"setMarkerShadowLocal",
			"setMarkerShape",
			"setMarkerShapeLocal",
			"setMarkerSize",
			"setMarkerSizeLocal",
			"setMarkerText",
			"setMarkerTextLocal",
			"setMarkerType",
			"setMarkerTypeLocal",
			"setMass",
			"setMaxLoad",
			"setMimic",
			"setMissileTarget",
			"setMissileTargetPos",
			"setMousePosition",
			"setMusicEffect",
			"setMusicEventHandler",
			"setName",
			"setNameSound",
			"setObjectArguments",
			"setObjectMaterial",
			"setObjectMaterialGlobal",
			"setObjectProxy",
			"setObjectScale",
			"setObjectTexture",
			"setObjectTextureGlobal",
			"setObjectViewDistance",
			"setOpticsMode",
			"setOvercast",
			"setOwner",
			"setOxygenRemaining",
			"setParticleCircle",
			"setParticleClass",
			"setParticleFire",
			"setParticleParams",
			"setParticleRandom",
			"setPilotCameraDirection",
			"setPilotCameraRotation",
			"setPilotCameraTarget",
			"setPilotLight",
			"setPiPEffect",
			"setPiPViewDistance",
			"setPitch",
			"setPlateNumber",
			"setPlayable",
			"setPlayerRespawnTime",
			"setPlayerVoNVolume",
			"setPos",
			"setPosASL",
			"setPosASL2",
			"setPosASLW",
			"setPosATL",
			"setPosition",
			"setPosWorld",
			"setPylonLoadout",
			"setPylonsPriority",
			"setRadioMsg",
			"setRain",
			"setRainbow",
			"setRandomLip",
			"setRank",
			"setRectangular",
			"setRepairCargo",
			"setRotorBrakeRTD",
			"setShadowDistance",
			"setShotParents",
			"setSide",
			"setSimpleTaskAlwaysVisible",
			"setSimpleTaskCustomData",
			"setSimpleTaskDescription",
			"setSimpleTaskDestination",
			"setSimpleTaskTarget",
			"setSimpleTaskType",
			"setSimulWeatherLayers",
			"setSize",
			"setSkill",
			"setSlingLoad",
			"setSoundEffect",
			"setSpeaker",
			"setSpeech",
			"setSpeedMode",
			"setStamina",
			"setStaminaScheme",
			"setStatValue",
			"setSuppression",
			"setSystemOfUnits",
			"setTargetAge",
			"setTaskMarkerOffset",
			"setTaskResult",
			"setTaskState",
			"setTerrainGrid",
			"setTerrainHeight",
			"setText",
			"setTimeMultiplier",
			"setTiParameter",
			"setTitleEffect",
			"setTowParent",
			"setTrafficDensity",
			"setTrafficDistance",
			"setTrafficGap",
			"setTrafficSpeed",
			"setTriggerActivation",
			"setTriggerArea",
			"setTriggerInterval",
			"setTriggerStatements",
			"setTriggerText",
			"setTriggerTimeout",
			"setTriggerType",
			"setTurretLimits",
			"setTurretOpticsMode",
			"setType",
			"setUnconscious",
			"setUnitAbility",
			"setUnitCombatMode",
			"setUnitFreefallHeight",
			"setUnitLoadout",
			"setUnitPos",
			"setUnitPosWeak",
			"setUnitRank",
			"setUnitRecoilCoefficient",
			"setUnitTrait",
			"setUnloadInCombat",
			"setUserActionText",
			"setUserMFDText",
			"setUserMFDValue",
			"setVariable",
			"setVectorDir",
			"setVectorDirAndUp",
			"setVectorUp",
			"setVehicleAmmo",
			"setVehicleAmmoDef",
			"setVehicleArmor",
			"setVehicleCargo",
			"setVehicleId",
			"setVehicleLock",
			"setVehiclePosition",
			"setVehicleRadar",
			"setVehicleReceiveRemoteTargets",
			"setVehicleReportOwnPosition",
			"setVehicleReportRemoteTargets",
			"setVehicleTiPars",
			"setVehicleVarName",
			"setVelocity",
			"setVelocityModelSpace",
			"setVelocityTransformation",
			"setViewDistance",
			"setVisibleIfTreeCollapsed",
			"setWantedRPMRTD",
			"setWaves",
			"setWaypointBehaviour",
			"setWaypointCombatMode",
			"setWaypointCompletionRadius",
			"setWaypointDescription",
			"setWaypointForceBehaviour",
			"setWaypointFormation",
			"setWaypointHousePosition",
			"setWaypointLoiterAltitude",
			"setWaypointLoiterRadius",
			"setWaypointLoiterType",
			"setWaypointName",
			"setWaypointPosition",
			"setWaypointScript",
			"setWaypointSpeed",
			"setWaypointStatements",
			"setWaypointTimeout",
			"setWaypointType",
			"setWaypointVisible",
			"setWeaponReloadingTime",
			"setWeaponZeroing",
			"setWind",
			"setWindDir",
			"setWindForce",
			"setWindStr",
			"setWingForceScaleRTD",
			"setWPPos",
			"show3DIcons",
			"showChat",
			"showCinemaBorder",
			"showCommandingMenu",
			"showCompass",
			"showCuratorCompass",
			"showGps",
			"showHUD",
			"showLegend",
			"showMap",
			"shownArtilleryComputer",
			"shownChat",
			"shownCompass",
			"shownCuratorCompass",
			"showNewEditorObject",
			"shownGps",
			"shownHUD",
			"shownMap",
			"shownPad",
			"shownRadio",
			"shownScoretable",
			"shownSubtitles",
			"shownUAVFeed",
			"shownWarrant",
			"shownWatch",
			"showPad",
			"showRadio",
			"showScoretable",
			"showSubtitles",
			"showUAVFeed",
			"showWarrant",
			"showWatch",
			"showWaypoint",
			"showWaypoints",
			"side",
			"sideChat",
			"sideRadio",
			"simpleTasks",
			"simulationEnabled",
			"simulCloudDensity",
			"simulCloudOcclusion",
			"simulInClouds",
			"simulWeatherSync",
			"sin",
			"size",
			"sizeOf",
			"skill",
			"skillFinal",
			"skipTime",
			"sleep",
			"sliderPosition",
			"sliderRange",
			"sliderSetPosition",
			"sliderSetRange",
			"sliderSetSpeed",
			"sliderSpeed",
			"slingLoadAssistantShown",
			"soldierMagazines",
			"someAmmo",
			"sort",
			"soundVolume",
			"spawn",
			"speaker",
			"speechVolume",
			"speed",
			"speedMode",
			"splitString",
			"sqrt",
			"squadParams",
			"stance",
			"startLoadingScreen",
			"stop",
			"stopEngineRTD",
			"stopped",
			"str",
			"sunOrMoon",
			"supportInfo",
			"suppressFor",
			"surfaceIsWater",
			"surfaceNormal",
			"surfaceTexture",
			"surfaceType",
			"swimInDepth",
			"switchableUnits",
			"switchAction",
			"switchCamera",
			"switchGesture",
			"switchLight",
			"switchMove",
			"synchronizedObjects",
			"synchronizedTriggers",
			"synchronizedWaypoints",
			"synchronizeObjectsAdd",
			"synchronizeObjectsRemove",
			"synchronizeTrigger",
			"synchronizeWaypoint",
			"systemChat",
			"systemOfUnits",
			"systemTime",
			"systemTimeUTC",
			"tan",
			"targetKnowledge",
			"targets",
			"targetsAggregate",
			"targetsQuery",
			"taskAlwaysVisible",
			"taskChildren",
			"taskCompleted",
			"taskCustomData",
			"taskDescription",
			"taskDestination",
			"taskHint",
			"taskMarkerOffset",
			"taskName",
			"taskParent",
			"taskResult",
			"taskState",
			"taskType",
			"teamMember",
			"teamName",
			"teams",
			"teamSwitch",
			"teamSwitchEnabled",
			"teamType",
			"terminate",
			"terrainIntersect",
			"terrainIntersectASL",
			"terrainIntersectAtASL",
			"text",
			"textLog",
			"textLogFormat",
			"tg",
			"time",
			"timeMultiplier",
			"titleCut",
			"titleFadeOut",
			"titleObj",
			"titleRsc",
			"titleText",
			"toArray",
			"toFixed",
			"toLower",
			"toLowerANSI",
			"toString",
			"toUpper",
			"toUpperANSI",
			"triggerActivated",
			"triggerActivation",
			"triggerAmmo",
			"triggerArea",
			"triggerAttachedVehicle",
			"triggerAttachObject",
			"triggerAttachVehicle",
			"triggerDynamicSimulation",
			"triggerInterval",
			"triggerStatements",
			"triggerText",
			"triggerTimeout",
			"triggerTimeoutCurrent",
			"triggerType",
			"trim",
			"turretLocal",
			"turretOwner",
			"turretUnit",
			"tvAdd",
			"tvClear",
			"tvCollapse",
			"tvCollapseAll",
			"tvCount",
			"tvCurSel",
			"tvData",
			"tvDelete",
			"tvExpand",
			"tvExpandAll",
			"tvIsSelected",
			"tvPicture",
			"tvPictureRight",
			"tvSelection",
			"tvSetColor",
			"tvSetCurSel",
			"tvSetData",
			"tvSetPicture",
			"tvSetPictureColor",
			"tvSetPictureColorDisabled",
			"tvSetPictureColorSelected",
			"tvSetPictureRight",
			"tvSetPictureRightColor",
			"tvSetPictureRightColorDisabled",
			"tvSetPictureRightColorSelected",
			"tvSetSelectColor",
			"tvSetSelected",
			"tvSetText",
			"tvSetTooltip",
			"tvSetValue",
			"tvSort",
			"tvSortAll",
			"tvSortByValue",
			"tvSortByValueAll",
			"tvText",
			"tvTooltip",
			"tvValue",
			"type",
			"typeName",
			"typeOf",
			"UAVControl",
			"uiNamespace",
			"uiSleep",
			"unassignCurator",
			"unassignItem",
			"unassignTeam",
			"unassignVehicle",
			"underwater",
			"uniform",
			"uniformContainer",
			"uniformItems",
			"uniformMagazines",
			"uniqueUnitItems",
			"unitAddons",
			"unitAimPosition",
			"unitAimPositionVisual",
			"unitBackpack",
			"unitCombatMode",
			"unitIsUAV",
			"unitPos",
			"unitReady",
			"unitRecoilCoefficient",
			"units",
			"unitsBelowHeight",
			"unitTurret",
			"unlinkItem",
			"unlockAchievement",
			"unregisterTask",
			"updateDrawIcon",
			"updateMenuItem",
			"updateObjectTree",
			"useAIOperMapObstructionTest",
			"useAISteeringComponent",
			"useAudioTimeForMoves",
			"userInputDisabled",
			"values",
			"vectorAdd",
			"vectorCos",
			"vectorCrossProduct",
			"vectorDiff",
			"vectorDir",
			"vectorDirVisual",
			"vectorDistance",
			"vectorDistanceSqr",
			"vectorDotProduct",
			"vectorFromTo",
			"vectorLinearConversion",
			"vectorMagnitude",
			"vectorMagnitudeSqr",
			"vectorModelToWorld",
			"vectorModelToWorldVisual",
			"vectorMultiply",
			"vectorNormalized",
			"vectorUp",
			"vectorUpVisual",
			"vectorWorldToModel",
			"vectorWorldToModelVisual",
			"vehicle",
			"vehicleCargoEnabled",
			"vehicleChat",
			"vehicleMoveInfo",
			"vehicleRadio",
			"vehicleReceiveRemoteTargets",
			"vehicleReportOwnPosition",
			"vehicleReportRemoteTargets",
			"vehicles",
			"vehicleVarName",
			"velocity",
			"velocityModelSpace",
			"verifySignature",
			"vest",
			"vestContainer",
			"vestItems",
			"vestMagazines",
			"viewDistance",
			"visibleCompass",
			"visibleGps",
			"visibleMap",
			"visiblePosition",
			"visiblePositionASL",
			"visibleScoretable",
			"visibleWatch",
			"waves",
			"waypointAttachedObject",
			"waypointAttachedVehicle",
			"waypointAttachObject",
			"waypointAttachVehicle",
			"waypointBehaviour",
			"waypointCombatMode",
			"waypointCompletionRadius",
			"waypointDescription",
			"waypointForceBehaviour",
			"waypointFormation",
			"waypointHousePosition",
			"waypointLoiterAltitude",
			"waypointLoiterRadius",
			"waypointLoiterType",
			"waypointName",
			"waypointPosition",
			"waypoints",
			"waypointScript",
			"waypointsEnabledUAV",
			"waypointShow",
			"waypointSpeed",
			"waypointStatements",
			"waypointTimeout",
			"waypointTimeoutCurrent",
			"waypointType",
			"waypointVisible",
			"weaponAccessories",
			"weaponAccessoriesCargo",
			"weaponCargo",
			"weaponDirection",
			"weaponInertia",
			"weaponLowered",
			"weaponReloadingTime",
			"weapons",
			"weaponsInfo",
			"weaponsItems",
			"weaponsItemsCargo",
			"weaponState",
			"weaponsTurret",
			"weightRTD",
			"WFSideText",
			"wind",
			"windDir",
			"windRTD",
			"windStr",
			"wingsForcesRTD",
			"worldName",
			"worldSize",
			"worldToModel",
			"worldToModelVisual",
			"worldToScreen"
		];
		const PREPROCESSOR = {
			className: "meta",
			begin: /#\s*[a-z]+\b/,
			end: /$/,
			keywords: "define undef ifdef ifndef else endif include if",
			contains: [
				{
					begin: /\\\n/,
					relevance: 0
				},
				hljs$1.inherit(STRINGS, { className: "string" }),
				{
					begin: /<[^\n>]*>/,
					end: /$/,
					illegal: "\\n"
				},
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE
			]
		};
		return {
			name: "SQF",
			case_insensitive: true,
			keywords: {
				keyword: KEYWORDS$6,
				built_in: BUILT_IN,
				literal: LITERAL
			},
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.NUMBER_MODE,
				VARIABLE,
				FUNCTION,
				STRINGS,
				PREPROCESSOR
			],
			illegal: [
				/\$[^a-fA-F0-9]/,
				/\w\$/,
				/\?/,
				/@/,
				/ \| /,
				/[a-zA-Z_]\./,
				/\:\=/,
				/\[\:/
			]
		};
	}
	module.exports = sqf;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/sql.js
var require_sql = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function sql$1(hljs$1) {
		const regex = hljs$1.regex;
		const COMMENT_MODE = hljs$1.COMMENT("--", "$");
		const STRING = {
			scope: "string",
			variants: [{
				begin: /'/,
				end: /'/,
				contains: [{ match: /''/ }]
			}]
		};
		const QUOTED_IDENTIFIER = {
			begin: /"/,
			end: /"/,
			contains: [{ match: /""/ }]
		};
		const LITERALS$6 = [
			"true",
			"false",
			"unknown"
		];
		const MULTI_WORD_TYPES = [
			"double precision",
			"large object",
			"with timezone",
			"without timezone"
		];
		const TYPES$6 = [
			"bigint",
			"binary",
			"blob",
			"boolean",
			"char",
			"character",
			"clob",
			"date",
			"dec",
			"decfloat",
			"decimal",
			"float",
			"int",
			"integer",
			"interval",
			"nchar",
			"nclob",
			"national",
			"numeric",
			"real",
			"row",
			"smallint",
			"time",
			"timestamp",
			"varchar",
			"varying",
			"varbinary"
		];
		const NON_RESERVED_WORDS = [
			"add",
			"asc",
			"collation",
			"desc",
			"final",
			"first",
			"last",
			"view"
		];
		const RESERVED_WORDS = [
			"abs",
			"acos",
			"all",
			"allocate",
			"alter",
			"and",
			"any",
			"are",
			"array",
			"array_agg",
			"array_max_cardinality",
			"as",
			"asensitive",
			"asin",
			"asymmetric",
			"at",
			"atan",
			"atomic",
			"authorization",
			"avg",
			"begin",
			"begin_frame",
			"begin_partition",
			"between",
			"bigint",
			"binary",
			"blob",
			"boolean",
			"both",
			"by",
			"call",
			"called",
			"cardinality",
			"cascaded",
			"case",
			"cast",
			"ceil",
			"ceiling",
			"char",
			"char_length",
			"character",
			"character_length",
			"check",
			"classifier",
			"clob",
			"close",
			"coalesce",
			"collate",
			"collect",
			"column",
			"commit",
			"condition",
			"connect",
			"constraint",
			"contains",
			"convert",
			"copy",
			"corr",
			"corresponding",
			"cos",
			"cosh",
			"count",
			"covar_pop",
			"covar_samp",
			"create",
			"cross",
			"cube",
			"cume_dist",
			"current",
			"current_catalog",
			"current_date",
			"current_default_transform_group",
			"current_path",
			"current_role",
			"current_row",
			"current_schema",
			"current_time",
			"current_timestamp",
			"current_path",
			"current_role",
			"current_transform_group_for_type",
			"current_user",
			"cursor",
			"cycle",
			"date",
			"day",
			"deallocate",
			"dec",
			"decimal",
			"decfloat",
			"declare",
			"default",
			"define",
			"delete",
			"dense_rank",
			"deref",
			"describe",
			"deterministic",
			"disconnect",
			"distinct",
			"double",
			"drop",
			"dynamic",
			"each",
			"element",
			"else",
			"empty",
			"end",
			"end_frame",
			"end_partition",
			"end-exec",
			"equals",
			"escape",
			"every",
			"except",
			"exec",
			"execute",
			"exists",
			"exp",
			"external",
			"extract",
			"false",
			"fetch",
			"filter",
			"first_value",
			"float",
			"floor",
			"for",
			"foreign",
			"frame_row",
			"free",
			"from",
			"full",
			"function",
			"fusion",
			"get",
			"global",
			"grant",
			"group",
			"grouping",
			"groups",
			"having",
			"hold",
			"hour",
			"identity",
			"in",
			"indicator",
			"initial",
			"inner",
			"inout",
			"insensitive",
			"insert",
			"int",
			"integer",
			"intersect",
			"intersection",
			"interval",
			"into",
			"is",
			"join",
			"json_array",
			"json_arrayagg",
			"json_exists",
			"json_object",
			"json_objectagg",
			"json_query",
			"json_table",
			"json_table_primitive",
			"json_value",
			"lag",
			"language",
			"large",
			"last_value",
			"lateral",
			"lead",
			"leading",
			"left",
			"like",
			"like_regex",
			"listagg",
			"ln",
			"local",
			"localtime",
			"localtimestamp",
			"log",
			"log10",
			"lower",
			"match",
			"match_number",
			"match_recognize",
			"matches",
			"max",
			"member",
			"merge",
			"method",
			"min",
			"minute",
			"mod",
			"modifies",
			"module",
			"month",
			"multiset",
			"national",
			"natural",
			"nchar",
			"nclob",
			"new",
			"no",
			"none",
			"normalize",
			"not",
			"nth_value",
			"ntile",
			"null",
			"nullif",
			"numeric",
			"octet_length",
			"occurrences_regex",
			"of",
			"offset",
			"old",
			"omit",
			"on",
			"one",
			"only",
			"open",
			"or",
			"order",
			"out",
			"outer",
			"over",
			"overlaps",
			"overlay",
			"parameter",
			"partition",
			"pattern",
			"per",
			"percent",
			"percent_rank",
			"percentile_cont",
			"percentile_disc",
			"period",
			"portion",
			"position",
			"position_regex",
			"power",
			"precedes",
			"precision",
			"prepare",
			"primary",
			"procedure",
			"ptf",
			"range",
			"rank",
			"reads",
			"real",
			"recursive",
			"ref",
			"references",
			"referencing",
			"regr_avgx",
			"regr_avgy",
			"regr_count",
			"regr_intercept",
			"regr_r2",
			"regr_slope",
			"regr_sxx",
			"regr_sxy",
			"regr_syy",
			"release",
			"result",
			"return",
			"returns",
			"revoke",
			"right",
			"rollback",
			"rollup",
			"row",
			"row_number",
			"rows",
			"running",
			"savepoint",
			"scope",
			"scroll",
			"search",
			"second",
			"seek",
			"select",
			"sensitive",
			"session_user",
			"set",
			"show",
			"similar",
			"sin",
			"sinh",
			"skip",
			"smallint",
			"some",
			"specific",
			"specifictype",
			"sql",
			"sqlexception",
			"sqlstate",
			"sqlwarning",
			"sqrt",
			"start",
			"static",
			"stddev_pop",
			"stddev_samp",
			"submultiset",
			"subset",
			"substring",
			"substring_regex",
			"succeeds",
			"sum",
			"symmetric",
			"system",
			"system_time",
			"system_user",
			"table",
			"tablesample",
			"tan",
			"tanh",
			"then",
			"time",
			"timestamp",
			"timezone_hour",
			"timezone_minute",
			"to",
			"trailing",
			"translate",
			"translate_regex",
			"translation",
			"treat",
			"trigger",
			"trim",
			"trim_array",
			"true",
			"truncate",
			"uescape",
			"union",
			"unique",
			"unknown",
			"unnest",
			"update",
			"upper",
			"user",
			"using",
			"value",
			"values",
			"value_of",
			"var_pop",
			"var_samp",
			"varbinary",
			"varchar",
			"varying",
			"versioning",
			"when",
			"whenever",
			"where",
			"width_bucket",
			"window",
			"with",
			"within",
			"without",
			"year"
		];
		const RESERVED_FUNCTIONS = [
			"abs",
			"acos",
			"array_agg",
			"asin",
			"atan",
			"avg",
			"cast",
			"ceil",
			"ceiling",
			"coalesce",
			"corr",
			"cos",
			"cosh",
			"count",
			"covar_pop",
			"covar_samp",
			"cume_dist",
			"dense_rank",
			"deref",
			"element",
			"exp",
			"extract",
			"first_value",
			"floor",
			"json_array",
			"json_arrayagg",
			"json_exists",
			"json_object",
			"json_objectagg",
			"json_query",
			"json_table",
			"json_table_primitive",
			"json_value",
			"lag",
			"last_value",
			"lead",
			"listagg",
			"ln",
			"log",
			"log10",
			"lower",
			"max",
			"min",
			"mod",
			"nth_value",
			"ntile",
			"nullif",
			"percent_rank",
			"percentile_cont",
			"percentile_disc",
			"position",
			"position_regex",
			"power",
			"rank",
			"regr_avgx",
			"regr_avgy",
			"regr_count",
			"regr_intercept",
			"regr_r2",
			"regr_slope",
			"regr_sxx",
			"regr_sxy",
			"regr_syy",
			"row_number",
			"sin",
			"sinh",
			"sqrt",
			"stddev_pop",
			"stddev_samp",
			"substring",
			"substring_regex",
			"sum",
			"tan",
			"tanh",
			"translate",
			"translate_regex",
			"treat",
			"trim",
			"trim_array",
			"unnest",
			"upper",
			"value_of",
			"var_pop",
			"var_samp",
			"width_bucket"
		];
		const POSSIBLE_WITHOUT_PARENS = [
			"current_catalog",
			"current_date",
			"current_default_transform_group",
			"current_path",
			"current_role",
			"current_schema",
			"current_transform_group_for_type",
			"current_user",
			"session_user",
			"system_time",
			"system_user",
			"current_time",
			"localtime",
			"current_timestamp",
			"localtimestamp"
		];
		const COMBOS = [
			"create table",
			"insert into",
			"primary key",
			"foreign key",
			"not null",
			"alter table",
			"add constraint",
			"grouping sets",
			"on overflow",
			"character set",
			"respect nulls",
			"ignore nulls",
			"nulls first",
			"nulls last",
			"depth first",
			"breadth first"
		];
		const FUNCTIONS = RESERVED_FUNCTIONS;
		const KEYWORDS$6 = [...RESERVED_WORDS, ...NON_RESERVED_WORDS].filter((keyword) => {
			return !RESERVED_FUNCTIONS.includes(keyword);
		});
		const VARIABLE = {
			scope: "variable",
			match: /@[a-z0-9][a-z0-9_]*/
		};
		const OPERATOR = {
			scope: "operator",
			match: /[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,
			relevance: 0
		};
		const FUNCTION_CALL = {
			match: regex.concat(/\b/, regex.either(...FUNCTIONS), /\s*\(/),
			relevance: 0,
			keywords: { built_in: FUNCTIONS }
		};
		function kws_to_regex(list) {
			return regex.concat(/\b/, regex.either(...list.map((kw) => {
				return kw.replace(/\s+/, "\\s+");
			})), /\b/);
		}
		const MULTI_WORD_KEYWORDS = {
			scope: "keyword",
			match: kws_to_regex(COMBOS),
			relevance: 0
		};
		function reduceRelevancy(list, { exceptions, when } = {}) {
			const qualifyFn = when;
			exceptions = exceptions || [];
			return list.map((item) => {
				if (item.match(/\|\d+$/) || exceptions.includes(item)) {
					return item;
				} else if (qualifyFn(item)) {
					return `${item}|0`;
				} else {
					return item;
				}
			});
		}
		return {
			name: "SQL",
			case_insensitive: true,
			illegal: /[{}]|<\//,
			keywords: {
				$pattern: /\b[\w\.]+/,
				keyword: reduceRelevancy(KEYWORDS$6, { when: (x$2) => x$2.length < 3 }),
				literal: LITERALS$6,
				type: TYPES$6,
				built_in: POSSIBLE_WITHOUT_PARENS
			},
			contains: [
				{
					scope: "type",
					match: kws_to_regex(MULTI_WORD_TYPES)
				},
				MULTI_WORD_KEYWORDS,
				FUNCTION_CALL,
				VARIABLE,
				STRING,
				QUOTED_IDENTIFIER,
				hljs$1.C_NUMBER_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				COMMENT_MODE,
				OPERATOR
			]
		};
	}
	module.exports = sql$1;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/stan.js
var require_stan = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function stan(hljs$1) {
		const regex = hljs$1.regex;
		const BLOCKS = [
			"functions",
			"model",
			"data",
			"parameters",
			"quantities",
			"transformed",
			"generated"
		];
		const STATEMENTS = [
			"for",
			"in",
			"if",
			"else",
			"while",
			"break",
			"continue",
			"return"
		];
		const TYPES$6 = [
			"array",
			"tuple",
			"complex",
			"int",
			"real",
			"vector",
			"complex_vector",
			"ordered",
			"positive_ordered",
			"simplex",
			"unit_vector",
			"row_vector",
			"complex_row_vector",
			"matrix",
			"complex_matrix",
			"cholesky_factor_corr|10",
			"cholesky_factor_cov|10",
			"corr_matrix|10",
			"cov_matrix|10",
			"void"
		];
		const FUNCTIONS = [
			"abs",
			"acos",
			"acosh",
			"add_diag",
			"algebra_solver",
			"algebra_solver_newton",
			"append_array",
			"append_col",
			"append_row",
			"asin",
			"asinh",
			"atan",
			"atan2",
			"atanh",
			"bessel_first_kind",
			"bessel_second_kind",
			"binary_log_loss",
			"block",
			"cbrt",
			"ceil",
			"chol2inv",
			"cholesky_decompose",
			"choose",
			"col",
			"cols",
			"columns_dot_product",
			"columns_dot_self",
			"complex_schur_decompose",
			"complex_schur_decompose_t",
			"complex_schur_decompose_u",
			"conj",
			"cos",
			"cosh",
			"cov_exp_quad",
			"crossprod",
			"csr_extract",
			"csr_extract_u",
			"csr_extract_v",
			"csr_extract_w",
			"csr_matrix_times_vector",
			"csr_to_dense_matrix",
			"cumulative_sum",
			"dae",
			"dae_tol",
			"determinant",
			"diag_matrix",
			"diagonal",
			"diag_post_multiply",
			"diag_pre_multiply",
			"digamma",
			"dims",
			"distance",
			"dot_product",
			"dot_self",
			"eigendecompose",
			"eigendecompose_sym",
			"eigenvalues",
			"eigenvalues_sym",
			"eigenvectors",
			"eigenvectors_sym",
			"erf",
			"erfc",
			"exp",
			"exp2",
			"expm1",
			"falling_factorial",
			"fdim",
			"fft",
			"fft2",
			"floor",
			"fma",
			"fmax",
			"fmin",
			"fmod",
			"gamma_p",
			"gamma_q",
			"generalized_inverse",
			"get_imag",
			"get_real",
			"head",
			"hmm_hidden_state_prob",
			"hmm_marginal",
			"hypot",
			"identity_matrix",
			"inc_beta",
			"integrate_1d",
			"integrate_ode",
			"integrate_ode_adams",
			"integrate_ode_bdf",
			"integrate_ode_rk45",
			"int_step",
			"inv",
			"inv_cloglog",
			"inv_erfc",
			"inverse",
			"inverse_spd",
			"inv_fft",
			"inv_fft2",
			"inv_inc_beta",
			"inv_logit",
			"inv_Phi",
			"inv_sqrt",
			"inv_square",
			"is_inf",
			"is_nan",
			"lambert_w0",
			"lambert_wm1",
			"lbeta",
			"lchoose",
			"ldexp",
			"lgamma",
			"linspaced_array",
			"linspaced_int_array",
			"linspaced_row_vector",
			"linspaced_vector",
			"lmgamma",
			"lmultiply",
			"log",
			"log1m",
			"log1m_exp",
			"log1m_inv_logit",
			"log1p",
			"log1p_exp",
			"log_determinant",
			"log_diff_exp",
			"log_falling_factorial",
			"log_inv_logit",
			"log_inv_logit_diff",
			"logit",
			"log_mix",
			"log_modified_bessel_first_kind",
			"log_rising_factorial",
			"log_softmax",
			"log_sum_exp",
			"machine_precision",
			"map_rect",
			"matrix_exp",
			"matrix_exp_multiply",
			"matrix_power",
			"max",
			"mdivide_left_spd",
			"mdivide_left_tri_low",
			"mdivide_right_spd",
			"mdivide_right_tri_low",
			"mean",
			"min",
			"modified_bessel_first_kind",
			"modified_bessel_second_kind",
			"multiply_lower_tri_self_transpose",
			"negative_infinity",
			"norm",
			"norm1",
			"norm2",
			"not_a_number",
			"num_elements",
			"ode_adams",
			"ode_adams_tol",
			"ode_adjoint_tol_ctl",
			"ode_bdf",
			"ode_bdf_tol",
			"ode_ckrk",
			"ode_ckrk_tol",
			"ode_rk45",
			"ode_rk45_tol",
			"one_hot_array",
			"one_hot_int_array",
			"one_hot_row_vector",
			"one_hot_vector",
			"ones_array",
			"ones_int_array",
			"ones_row_vector",
			"ones_vector",
			"owens_t",
			"Phi",
			"Phi_approx",
			"polar",
			"positive_infinity",
			"pow",
			"print",
			"prod",
			"proj",
			"qr",
			"qr_Q",
			"qr_R",
			"qr_thin",
			"qr_thin_Q",
			"qr_thin_R",
			"quad_form",
			"quad_form_diag",
			"quad_form_sym",
			"quantile",
			"rank",
			"reduce_sum",
			"reject",
			"rep_array",
			"rep_matrix",
			"rep_row_vector",
			"rep_vector",
			"reverse",
			"rising_factorial",
			"round",
			"row",
			"rows",
			"rows_dot_product",
			"rows_dot_self",
			"scale_matrix_exp_multiply",
			"sd",
			"segment",
			"sin",
			"singular_values",
			"sinh",
			"size",
			"softmax",
			"sort_asc",
			"sort_desc",
			"sort_indices_asc",
			"sort_indices_desc",
			"sqrt",
			"square",
			"squared_distance",
			"step",
			"sub_col",
			"sub_row",
			"sum",
			"svd",
			"svd_U",
			"svd_V",
			"symmetrize_from_lower_tri",
			"tail",
			"tan",
			"tanh",
			"target",
			"tcrossprod",
			"tgamma",
			"to_array_1d",
			"to_array_2d",
			"to_complex",
			"to_int",
			"to_matrix",
			"to_row_vector",
			"to_vector",
			"trace",
			"trace_gen_quad_form",
			"trace_quad_form",
			"trigamma",
			"trunc",
			"uniform_simplex",
			"variance",
			"zeros_array",
			"zeros_int_array",
			"zeros_row_vector"
		];
		const DISTRIBUTIONS = [
			"bernoulli",
			"bernoulli_logit",
			"bernoulli_logit_glm",
			"beta",
			"beta_binomial",
			"beta_proportion",
			"binomial",
			"binomial_logit",
			"categorical",
			"categorical_logit",
			"categorical_logit_glm",
			"cauchy",
			"chi_square",
			"dirichlet",
			"discrete_range",
			"double_exponential",
			"exp_mod_normal",
			"exponential",
			"frechet",
			"gamma",
			"gaussian_dlm_obs",
			"gumbel",
			"hmm_latent",
			"hypergeometric",
			"inv_chi_square",
			"inv_gamma",
			"inv_wishart",
			"inv_wishart_cholesky",
			"lkj_corr",
			"lkj_corr_cholesky",
			"logistic",
			"loglogistic",
			"lognormal",
			"multi_gp",
			"multi_gp_cholesky",
			"multinomial",
			"multinomial_logit",
			"multi_normal",
			"multi_normal_cholesky",
			"multi_normal_prec",
			"multi_student_cholesky_t",
			"multi_student_t",
			"multi_student_t_cholesky",
			"neg_binomial",
			"neg_binomial_2",
			"neg_binomial_2_log",
			"neg_binomial_2_log_glm",
			"normal",
			"normal_id_glm",
			"ordered_logistic",
			"ordered_logistic_glm",
			"ordered_probit",
			"pareto",
			"pareto_type_2",
			"poisson",
			"poisson_log",
			"poisson_log_glm",
			"rayleigh",
			"scaled_inv_chi_square",
			"skew_double_exponential",
			"skew_normal",
			"std_normal",
			"std_normal_log",
			"student_t",
			"uniform",
			"von_mises",
			"weibull",
			"wiener",
			"wishart",
			"wishart_cholesky"
		];
		const BLOCK_COMMENT = hljs$1.COMMENT(/\/\*/, /\*\//, {
			relevance: 0,
			contains: [{
				scope: "doctag",
				match: /@(return|param)/
			}]
		});
		const INCLUDE = {
			scope: "meta",
			begin: /#include\b/,
			end: /$/,
			contains: [{
				match: /[a-z][a-z-._]+/,
				scope: "string"
			}, hljs$1.C_LINE_COMMENT_MODE]
		};
		const RANGE_CONSTRAINTS = [
			"lower",
			"upper",
			"offset",
			"multiplier"
		];
		return {
			name: "Stan",
			aliases: ["stanfuncs"],
			keywords: {
				$pattern: hljs$1.IDENT_RE,
				title: BLOCKS,
				type: TYPES$6,
				keyword: STATEMENTS,
				built_in: FUNCTIONS
			},
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				INCLUDE,
				hljs$1.HASH_COMMENT_MODE,
				BLOCK_COMMENT,
				{
					scope: "built_in",
					match: /\s(pi|e|sqrt2|log2|log10)(?=\()/,
					relevance: 0
				},
				{
					match: regex.concat(/[<,]\s*/, regex.either(...RANGE_CONSTRAINTS), /\s*=/),
					keywords: RANGE_CONSTRAINTS
				},
				{
					scope: "keyword",
					match: /\btarget(?=\s*\+=)/
				},
				{
					match: [
						/~\s*/,
						regex.either(...DISTRIBUTIONS),
						/(?:\(\))/,
						/\s*T(?=\s*\[)/
					],
					scope: {
						2: "built_in",
						4: "keyword"
					}
				},
				{
					scope: "built_in",
					keywords: DISTRIBUTIONS,
					begin: regex.concat(/\w*/, regex.either(...DISTRIBUTIONS), /(_lpdf|_lupdf|_lpmf|_cdf|_lcdf|_lccdf|_qf)(?=\s*[\(.*\)])/)
				},
				{
					begin: [
						/~/,
						/\s*/,
						regex.concat(regex.either(...DISTRIBUTIONS), /(?=\s*[\(.*\)])/)
					],
					scope: { 3: "built_in" }
				},
				{
					begin: [
						/~/,
						/\s*\w+(?=\s*[\(.*\)])/,
						"(?!.*/\b(" + regex.either(...DISTRIBUTIONS) + ")\b)"
					],
					scope: { 2: "title.function" }
				},
				{
					scope: "title.function",
					begin: /\w*(_lpdf|_lupdf|_lpmf|_cdf|_lcdf|_lccdf|_qf)(?=\s*[\(.*\)])/
				},
				{
					scope: "number",
					match: regex.concat(/(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)/, /(?:[eE][+-]?\d+(?:_\d+)*)?i?(?!\w)/),
					relevance: 0
				},
				{
					scope: "string",
					begin: /"/,
					end: /"/
				}
			]
		};
	}
	module.exports = stan;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/stata.js
var require_stata = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function stata(hljs$1) {
		return {
			name: "Stata",
			aliases: ["do", "ado"],
			case_insensitive: true,
			keywords: "if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey bias binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 bubble bubbleplot ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d|0 datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e|0 ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error esize est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 forest forestplot form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate funnel funnelplot g|0 gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h|0 hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l|0 la lab labbe labbeplot labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m|0 ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize menl meqparse mer merg merge meta mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n|0 nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trimfill trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u|0 unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5",
			contains: [
				{
					className: "symbol",
					begin: /`[a-zA-Z0-9_]+'/
				},
				{
					className: "variable",
					begin: /\$\{?[a-zA-Z0-9_]+\}?/,
					relevance: 0
				},
				{
					className: "string",
					variants: [{ begin: "`\"[^\r\n]*?\"'" }, { begin: "\"[^\r\n\"]*\"" }]
				},
				{
					className: "built_in",
					variants: [{ begin: "\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\()" }]
				},
				hljs$1.COMMENT("^[ 	]*\\*.*$", false),
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE
			]
		};
	}
	module.exports = stata;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/step21.js
var require_step21 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function step21(hljs$1) {
		const STEP21_IDENT_RE = "[A-Z_][A-Z0-9_.]*";
		const STEP21_KEYWORDS = {
			$pattern: STEP21_IDENT_RE,
			keyword: [
				"HEADER",
				"ENDSEC",
				"DATA"
			]
		};
		const STEP21_START = {
			className: "meta",
			begin: "ISO-10303-21;",
			relevance: 10
		};
		const STEP21_CLOSE = {
			className: "meta",
			begin: "END-ISO-10303-21;",
			relevance: 10
		};
		return {
			name: "STEP Part 21",
			aliases: [
				"p21",
				"step",
				"stp"
			],
			case_insensitive: true,
			keywords: STEP21_KEYWORDS,
			contains: [
				STEP21_START,
				STEP21_CLOSE,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.COMMENT("/\\*\\*!", "\\*/"),
				hljs$1.C_NUMBER_MODE,
				hljs$1.inherit(hljs$1.APOS_STRING_MODE, { illegal: null }),
				hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { illegal: null }),
				{
					className: "string",
					begin: "'",
					end: "'"
				},
				{
					className: "symbol",
					variants: [{
						begin: "#",
						end: "\\d+",
						illegal: "\\W"
					}]
				}
			]
		};
	}
	module.exports = step21;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/stylus.js
var require_stylus = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	const MODES$2 = (hljs$1) => {
		return {
			IMPORTANT: {
				scope: "meta",
				begin: "!important"
			},
			BLOCK_COMMENT: hljs$1.C_BLOCK_COMMENT_MODE,
			HEXCOLOR: {
				scope: "number",
				begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/
			},
			FUNCTION_DISPATCH: {
				className: "built_in",
				begin: /[\w-]+(?=\()/
			},
			ATTRIBUTE_SELECTOR_MODE: {
				scope: "selector-attr",
				begin: /\[/,
				end: /\]/,
				illegal: "$",
				contains: [hljs$1.APOS_STRING_MODE, hljs$1.QUOTE_STRING_MODE]
			},
			CSS_NUMBER_MODE: {
				scope: "number",
				begin: hljs$1.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_-]*/
			}
		};
	};
	const HTML_TAGS$1 = [
		"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"
	];
	const SVG_TAGS$1 = [
		"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"
	];
	const TAGS$1 = [...HTML_TAGS$1, ...SVG_TAGS$1];
	const MEDIA_FEATURES$1 = [
		"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();
	const PSEUDO_CLASSES$1 = [
		"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();
	const PSEUDO_ELEMENTS$1 = [
		"after",
		"backdrop",
		"before",
		"cue",
		"cue-region",
		"first-letter",
		"first-line",
		"grammar-error",
		"marker",
		"part",
		"placeholder",
		"selection",
		"slotted",
		"spelling-error"
	].sort().reverse();
	const ATTRIBUTES$1 = [
		"accent-color",
		"align-content",
		"align-items",
		"align-self",
		"alignment-baseline",
		"all",
		"anchor-name",
		"animation",
		"animation-composition",
		"animation-delay",
		"animation-direction",
		"animation-duration",
		"animation-fill-mode",
		"animation-iteration-count",
		"animation-name",
		"animation-play-state",
		"animation-range",
		"animation-range-end",
		"animation-range-start",
		"animation-timeline",
		"animation-timing-function",
		"appearance",
		"aspect-ratio",
		"backdrop-filter",
		"backface-visibility",
		"background",
		"background-attachment",
		"background-blend-mode",
		"background-clip",
		"background-color",
		"background-image",
		"background-origin",
		"background-position",
		"background-position-x",
		"background-position-y",
		"background-repeat",
		"background-size",
		"baseline-shift",
		"block-size",
		"border",
		"border-block",
		"border-block-color",
		"border-block-end",
		"border-block-end-color",
		"border-block-end-style",
		"border-block-end-width",
		"border-block-start",
		"border-block-start-color",
		"border-block-start-style",
		"border-block-start-width",
		"border-block-style",
		"border-block-width",
		"border-bottom",
		"border-bottom-color",
		"border-bottom-left-radius",
		"border-bottom-right-radius",
		"border-bottom-style",
		"border-bottom-width",
		"border-collapse",
		"border-color",
		"border-end-end-radius",
		"border-end-start-radius",
		"border-image",
		"border-image-outset",
		"border-image-repeat",
		"border-image-slice",
		"border-image-source",
		"border-image-width",
		"border-inline",
		"border-inline-color",
		"border-inline-end",
		"border-inline-end-color",
		"border-inline-end-style",
		"border-inline-end-width",
		"border-inline-start",
		"border-inline-start-color",
		"border-inline-start-style",
		"border-inline-start-width",
		"border-inline-style",
		"border-inline-width",
		"border-left",
		"border-left-color",
		"border-left-style",
		"border-left-width",
		"border-radius",
		"border-right",
		"border-right-color",
		"border-right-style",
		"border-right-width",
		"border-spacing",
		"border-start-end-radius",
		"border-start-start-radius",
		"border-style",
		"border-top",
		"border-top-color",
		"border-top-left-radius",
		"border-top-right-radius",
		"border-top-style",
		"border-top-width",
		"border-width",
		"bottom",
		"box-align",
		"box-decoration-break",
		"box-direction",
		"box-flex",
		"box-flex-group",
		"box-lines",
		"box-ordinal-group",
		"box-orient",
		"box-pack",
		"box-shadow",
		"box-sizing",
		"break-after",
		"break-before",
		"break-inside",
		"caption-side",
		"caret-color",
		"clear",
		"clip",
		"clip-path",
		"clip-rule",
		"color",
		"color-interpolation",
		"color-interpolation-filters",
		"color-profile",
		"color-rendering",
		"color-scheme",
		"column-count",
		"column-fill",
		"column-gap",
		"column-rule",
		"column-rule-color",
		"column-rule-style",
		"column-rule-width",
		"column-span",
		"column-width",
		"columns",
		"contain",
		"contain-intrinsic-block-size",
		"contain-intrinsic-height",
		"contain-intrinsic-inline-size",
		"contain-intrinsic-size",
		"contain-intrinsic-width",
		"container",
		"container-name",
		"container-type",
		"content",
		"content-visibility",
		"counter-increment",
		"counter-reset",
		"counter-set",
		"cue",
		"cue-after",
		"cue-before",
		"cursor",
		"cx",
		"cy",
		"direction",
		"display",
		"dominant-baseline",
		"empty-cells",
		"enable-background",
		"field-sizing",
		"fill",
		"fill-opacity",
		"fill-rule",
		"filter",
		"flex",
		"flex-basis",
		"flex-direction",
		"flex-flow",
		"flex-grow",
		"flex-shrink",
		"flex-wrap",
		"float",
		"flood-color",
		"flood-opacity",
		"flow",
		"font",
		"font-display",
		"font-family",
		"font-feature-settings",
		"font-kerning",
		"font-language-override",
		"font-optical-sizing",
		"font-palette",
		"font-size",
		"font-size-adjust",
		"font-smooth",
		"font-smoothing",
		"font-stretch",
		"font-style",
		"font-synthesis",
		"font-synthesis-position",
		"font-synthesis-small-caps",
		"font-synthesis-style",
		"font-synthesis-weight",
		"font-variant",
		"font-variant-alternates",
		"font-variant-caps",
		"font-variant-east-asian",
		"font-variant-emoji",
		"font-variant-ligatures",
		"font-variant-numeric",
		"font-variant-position",
		"font-variation-settings",
		"font-weight",
		"forced-color-adjust",
		"gap",
		"glyph-orientation-horizontal",
		"glyph-orientation-vertical",
		"grid",
		"grid-area",
		"grid-auto-columns",
		"grid-auto-flow",
		"grid-auto-rows",
		"grid-column",
		"grid-column-end",
		"grid-column-start",
		"grid-gap",
		"grid-row",
		"grid-row-end",
		"grid-row-start",
		"grid-template",
		"grid-template-areas",
		"grid-template-columns",
		"grid-template-rows",
		"hanging-punctuation",
		"height",
		"hyphenate-character",
		"hyphenate-limit-chars",
		"hyphens",
		"icon",
		"image-orientation",
		"image-rendering",
		"image-resolution",
		"ime-mode",
		"initial-letter",
		"initial-letter-align",
		"inline-size",
		"inset",
		"inset-area",
		"inset-block",
		"inset-block-end",
		"inset-block-start",
		"inset-inline",
		"inset-inline-end",
		"inset-inline-start",
		"isolation",
		"justify-content",
		"justify-items",
		"justify-self",
		"kerning",
		"left",
		"letter-spacing",
		"lighting-color",
		"line-break",
		"line-height",
		"line-height-step",
		"list-style",
		"list-style-image",
		"list-style-position",
		"list-style-type",
		"margin",
		"margin-block",
		"margin-block-end",
		"margin-block-start",
		"margin-bottom",
		"margin-inline",
		"margin-inline-end",
		"margin-inline-start",
		"margin-left",
		"margin-right",
		"margin-top",
		"margin-trim",
		"marker",
		"marker-end",
		"marker-mid",
		"marker-start",
		"marks",
		"mask",
		"mask-border",
		"mask-border-mode",
		"mask-border-outset",
		"mask-border-repeat",
		"mask-border-slice",
		"mask-border-source",
		"mask-border-width",
		"mask-clip",
		"mask-composite",
		"mask-image",
		"mask-mode",
		"mask-origin",
		"mask-position",
		"mask-repeat",
		"mask-size",
		"mask-type",
		"masonry-auto-flow",
		"math-depth",
		"math-shift",
		"math-style",
		"max-block-size",
		"max-height",
		"max-inline-size",
		"max-width",
		"min-block-size",
		"min-height",
		"min-inline-size",
		"min-width",
		"mix-blend-mode",
		"nav-down",
		"nav-index",
		"nav-left",
		"nav-right",
		"nav-up",
		"none",
		"normal",
		"object-fit",
		"object-position",
		"offset",
		"offset-anchor",
		"offset-distance",
		"offset-path",
		"offset-position",
		"offset-rotate",
		"opacity",
		"order",
		"orphans",
		"outline",
		"outline-color",
		"outline-offset",
		"outline-style",
		"outline-width",
		"overflow",
		"overflow-anchor",
		"overflow-block",
		"overflow-clip-margin",
		"overflow-inline",
		"overflow-wrap",
		"overflow-x",
		"overflow-y",
		"overlay",
		"overscroll-behavior",
		"overscroll-behavior-block",
		"overscroll-behavior-inline",
		"overscroll-behavior-x",
		"overscroll-behavior-y",
		"padding",
		"padding-block",
		"padding-block-end",
		"padding-block-start",
		"padding-bottom",
		"padding-inline",
		"padding-inline-end",
		"padding-inline-start",
		"padding-left",
		"padding-right",
		"padding-top",
		"page",
		"page-break-after",
		"page-break-before",
		"page-break-inside",
		"paint-order",
		"pause",
		"pause-after",
		"pause-before",
		"perspective",
		"perspective-origin",
		"place-content",
		"place-items",
		"place-self",
		"pointer-events",
		"position",
		"position-anchor",
		"position-visibility",
		"print-color-adjust",
		"quotes",
		"r",
		"resize",
		"rest",
		"rest-after",
		"rest-before",
		"right",
		"rotate",
		"row-gap",
		"ruby-align",
		"ruby-position",
		"scale",
		"scroll-behavior",
		"scroll-margin",
		"scroll-margin-block",
		"scroll-margin-block-end",
		"scroll-margin-block-start",
		"scroll-margin-bottom",
		"scroll-margin-inline",
		"scroll-margin-inline-end",
		"scroll-margin-inline-start",
		"scroll-margin-left",
		"scroll-margin-right",
		"scroll-margin-top",
		"scroll-padding",
		"scroll-padding-block",
		"scroll-padding-block-end",
		"scroll-padding-block-start",
		"scroll-padding-bottom",
		"scroll-padding-inline",
		"scroll-padding-inline-end",
		"scroll-padding-inline-start",
		"scroll-padding-left",
		"scroll-padding-right",
		"scroll-padding-top",
		"scroll-snap-align",
		"scroll-snap-stop",
		"scroll-snap-type",
		"scroll-timeline",
		"scroll-timeline-axis",
		"scroll-timeline-name",
		"scrollbar-color",
		"scrollbar-gutter",
		"scrollbar-width",
		"shape-image-threshold",
		"shape-margin",
		"shape-outside",
		"shape-rendering",
		"speak",
		"speak-as",
		"src",
		"stop-color",
		"stop-opacity",
		"stroke",
		"stroke-dasharray",
		"stroke-dashoffset",
		"stroke-linecap",
		"stroke-linejoin",
		"stroke-miterlimit",
		"stroke-opacity",
		"stroke-width",
		"tab-size",
		"table-layout",
		"text-align",
		"text-align-all",
		"text-align-last",
		"text-anchor",
		"text-combine-upright",
		"text-decoration",
		"text-decoration-color",
		"text-decoration-line",
		"text-decoration-skip",
		"text-decoration-skip-ink",
		"text-decoration-style",
		"text-decoration-thickness",
		"text-emphasis",
		"text-emphasis-color",
		"text-emphasis-position",
		"text-emphasis-style",
		"text-indent",
		"text-justify",
		"text-orientation",
		"text-overflow",
		"text-rendering",
		"text-shadow",
		"text-size-adjust",
		"text-transform",
		"text-underline-offset",
		"text-underline-position",
		"text-wrap",
		"text-wrap-mode",
		"text-wrap-style",
		"timeline-scope",
		"top",
		"touch-action",
		"transform",
		"transform-box",
		"transform-origin",
		"transform-style",
		"transition",
		"transition-behavior",
		"transition-delay",
		"transition-duration",
		"transition-property",
		"transition-timing-function",
		"translate",
		"unicode-bidi",
		"user-modify",
		"user-select",
		"vector-effect",
		"vertical-align",
		"view-timeline",
		"view-timeline-axis",
		"view-timeline-inset",
		"view-timeline-name",
		"view-transition-name",
		"visibility",
		"voice-balance",
		"voice-duration",
		"voice-family",
		"voice-pitch",
		"voice-range",
		"voice-rate",
		"voice-stress",
		"voice-volume",
		"white-space",
		"white-space-collapse",
		"widows",
		"width",
		"will-change",
		"word-break",
		"word-spacing",
		"word-wrap",
		"writing-mode",
		"x",
		"y",
		"z-index",
		"zoom"
	].sort().reverse();
	/** @type LanguageFn */
	function stylus(hljs$1) {
		const modes = MODES$2(hljs$1);
		const AT_MODIFIERS = "and or not only";
		const VARIABLE = {
			className: "variable",
			begin: "\\$" + hljs$1.IDENT_RE
		};
		const AT_KEYWORDS = [
			"charset",
			"css",
			"debug",
			"extend",
			"font-face",
			"for",
			"import",
			"include",
			"keyframes",
			"media",
			"mixin",
			"page",
			"warn",
			"while"
		];
		const LOOKAHEAD_TAG_END = "(?=[.\\s\\n[:,(])";
		const ILLEGAL = [
			"\\?",
			"(\\bReturn\\b)",
			"(\\bEnd\\b)",
			"(\\bend\\b)",
			"(\\bdef\\b)",
			";",
			"#\\s",
			"\\*\\s",
			"===\\s",
			"\\|",
			"%"
		];
		return {
			name: "Stylus",
			aliases: ["styl"],
			case_insensitive: false,
			keywords: "if else for in",
			illegal: "(" + ILLEGAL.join("|") + ")",
			contains: [
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.APOS_STRING_MODE,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				modes.HEXCOLOR,
				{
					begin: "\\.[a-zA-Z][a-zA-Z0-9_-]*" + LOOKAHEAD_TAG_END,
					className: "selector-class"
				},
				{
					begin: "#[a-zA-Z][a-zA-Z0-9_-]*" + LOOKAHEAD_TAG_END,
					className: "selector-id"
				},
				{
					begin: "\\b(" + TAGS$1.join("|") + ")" + LOOKAHEAD_TAG_END,
					className: "selector-tag"
				},
				{
					className: "selector-pseudo",
					begin: "&?:(" + PSEUDO_CLASSES$1.join("|") + ")" + LOOKAHEAD_TAG_END
				},
				{
					className: "selector-pseudo",
					begin: "&?:(:)?(" + PSEUDO_ELEMENTS$1.join("|") + ")" + LOOKAHEAD_TAG_END
				},
				modes.ATTRIBUTE_SELECTOR_MODE,
				{
					className: "keyword",
					begin: /@media/,
					starts: {
						end: /[{;}]/,
						keywords: {
							$pattern: /[a-z-]+/,
							keyword: AT_MODIFIERS,
							attribute: MEDIA_FEATURES$1.join(" ")
						},
						contains: [modes.CSS_NUMBER_MODE]
					}
				},
				{
					className: "keyword",
					begin: "@((-(o|moz|ms|webkit)-)?(" + AT_KEYWORDS.join("|") + "))\\b"
				},
				VARIABLE,
				modes.CSS_NUMBER_MODE,
				{
					className: "function",
					begin: "^[a-zA-Z][a-zA-Z0-9_-]*\\(.*\\)",
					illegal: "[\\n]",
					returnBegin: true,
					contains: [{
						className: "title",
						begin: "\\b[a-zA-Z][a-zA-Z0-9_-]*"
					}, {
						className: "params",
						begin: /\(/,
						end: /\)/,
						contains: [
							modes.HEXCOLOR,
							VARIABLE,
							hljs$1.APOS_STRING_MODE,
							modes.CSS_NUMBER_MODE,
							hljs$1.QUOTE_STRING_MODE
						]
					}]
				},
				modes.CSS_VARIABLE,
				{
					className: "attribute",
					begin: "\\b(" + ATTRIBUTES$1.join("|") + ")\\b",
					starts: {
						end: /;|$/,
						contains: [
							modes.HEXCOLOR,
							VARIABLE,
							hljs$1.APOS_STRING_MODE,
							hljs$1.QUOTE_STRING_MODE,
							modes.CSS_NUMBER_MODE,
							hljs$1.C_BLOCK_COMMENT_MODE,
							modes.IMPORTANT,
							modes.FUNCTION_DISPATCH
						],
						illegal: /\./,
						relevance: 0
					}
				},
				modes.FUNCTION_DISPATCH
			]
		};
	}
	module.exports = stylus;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/subunit.js
var require_subunit = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function subunit(hljs$1) {
		const DETAILS = {
			className: "string",
			begin: "\\[\n(multipart)?",
			end: "\\]\n"
		};
		const TIME = {
			className: "string",
			begin: "\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}.\\d+Z"
		};
		const PROGRESSVALUE = {
			className: "string",
			begin: "(\\+|-)\\d+"
		};
		const KEYWORDS$6 = {
			className: "keyword",
			relevance: 10,
			variants: [
				{ begin: "^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?" },
				{ begin: "^progress(:?)(\\s+)?(pop|push)?" },
				{ begin: "^tags:" },
				{ begin: "^time:" }
			]
		};
		return {
			name: "SubUnit",
			case_insensitive: true,
			contains: [
				DETAILS,
				TIME,
				PROGRESSVALUE,
				KEYWORDS$6
			]
		};
	}
	module.exports = subunit;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/swift.js
var require_swift = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/**
	* @param {string} value
	* @returns {RegExp}
	* */
	/**
	* @param {RegExp | string } re
	* @returns {string}
	*/
	function source$1(re$1) {
		if (!re$1) return null;
		if (typeof re$1 === "string") return re$1;
		return re$1.source;
	}
	/**
	* @param {RegExp | string } re
	* @returns {string}
	*/
	function lookahead$1(re$1) {
		return concat$1("(?=", re$1, ")");
	}
	/**
	* @param {...(RegExp | string) } args
	* @returns {string}
	*/
	function concat$1(...args) {
		const joined = args.map((x$2) => source$1(x$2)).join("");
		return joined;
	}
	/**
	* @param { Array<string | RegExp | Object> } args
	* @returns {object}
	*/
	function stripOptionsFromArgs$1(args) {
		const opts = args[args.length - 1];
		if (typeof opts === "object" && opts.constructor === Object) {
			args.splice(args.length - 1, 1);
			return opts;
		} else {
			return {};
		}
	}
	/** @typedef { {capture?: boolean} } RegexEitherOptions */
	/**
	* Any of the passed expresssions may match
	*
	* Creates a huge this | this | that | that match
	* @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args
	* @returns {string}
	*/
	function either$1(...args) {
		/** @type { object & {capture?: boolean} }  */
		const opts = stripOptionsFromArgs$1(args);
		const joined = "(" + (opts.capture ? "" : "?:") + args.map((x$2) => source$1(x$2)).join("|") + ")";
		return joined;
	}
	const keywordWrapper = (keyword) => concat$1(/\b/, keyword, /\w$/.test(keyword) ? /\b/ : /\B/);
	const dotKeywords = ["Protocol", "Type"].map(keywordWrapper);
	const optionalDotKeywords = ["init", "self"].map(keywordWrapper);
	const keywordTypes = ["Any", "Self"];
	const keywords = [
		"actor",
		"any",
		"associatedtype",
		"async",
		"await",
		/as\?/,
		/as!/,
		"as",
		"borrowing",
		"break",
		"case",
		"catch",
		"class",
		"consume",
		"consuming",
		"continue",
		"convenience",
		"copy",
		"default",
		"defer",
		"deinit",
		"didSet",
		"distributed",
		"do",
		"dynamic",
		"each",
		"else",
		"enum",
		"extension",
		"fallthrough",
		/fileprivate\(set\)/,
		"fileprivate",
		"final",
		"for",
		"func",
		"get",
		"guard",
		"if",
		"import",
		"indirect",
		"infix",
		/init\?/,
		/init!/,
		"inout",
		/internal\(set\)/,
		"internal",
		"in",
		"is",
		"isolated",
		"nonisolated",
		"lazy",
		"let",
		"macro",
		"mutating",
		"nonmutating",
		/open\(set\)/,
		"open",
		"operator",
		"optional",
		"override",
		"package",
		"postfix",
		"precedencegroup",
		"prefix",
		/private\(set\)/,
		"private",
		"protocol",
		/public\(set\)/,
		"public",
		"repeat",
		"required",
		"rethrows",
		"return",
		"set",
		"some",
		"static",
		"struct",
		"subscript",
		"super",
		"switch",
		"throws",
		"throw",
		/try\?/,
		/try!/,
		"try",
		"typealias",
		/unowned\(safe\)/,
		/unowned\(unsafe\)/,
		"unowned",
		"var",
		"weak",
		"where",
		"while",
		"willSet"
	];
	const literals = [
		"false",
		"nil",
		"true"
	];
	const precedencegroupKeywords = [
		"assignment",
		"associativity",
		"higherThan",
		"left",
		"lowerThan",
		"none",
		"right"
	];
	const numberSignKeywords = [
		"#colorLiteral",
		"#column",
		"#dsohandle",
		"#else",
		"#elseif",
		"#endif",
		"#error",
		"#file",
		"#fileID",
		"#fileLiteral",
		"#filePath",
		"#function",
		"#if",
		"#imageLiteral",
		"#keyPath",
		"#line",
		"#selector",
		"#sourceLocation",
		"#warning"
	];
	const builtIns = [
		"abs",
		"all",
		"any",
		"assert",
		"assertionFailure",
		"debugPrint",
		"dump",
		"fatalError",
		"getVaList",
		"isKnownUniquelyReferenced",
		"max",
		"min",
		"numericCast",
		"pointwiseMax",
		"pointwiseMin",
		"precondition",
		"preconditionFailure",
		"print",
		"readLine",
		"repeatElement",
		"sequence",
		"stride",
		"swap",
		"swift_unboxFromSwiftValueWithType",
		"transcode",
		"type",
		"unsafeBitCast",
		"unsafeDowncast",
		"withExtendedLifetime",
		"withUnsafeMutablePointer",
		"withUnsafePointer",
		"withVaList",
		"withoutActuallyEscaping",
		"zip"
	];
	const operatorHead = either$1(/[/=\-+!*%<>&|^~?]/, /[\u00A1-\u00A7]/, /[\u00A9\u00AB]/, /[\u00AC\u00AE]/, /[\u00B0\u00B1]/, /[\u00B6\u00BB\u00BF\u00D7\u00F7]/, /[\u2016-\u2017]/, /[\u2020-\u2027]/, /[\u2030-\u203E]/, /[\u2041-\u2053]/, /[\u2055-\u205E]/, /[\u2190-\u23FF]/, /[\u2500-\u2775]/, /[\u2794-\u2BFF]/, /[\u2E00-\u2E7F]/, /[\u3001-\u3003]/, /[\u3008-\u3020]/, /[\u3030]/);
	const operatorCharacter = either$1(operatorHead, /[\u0300-\u036F]/, /[\u1DC0-\u1DFF]/, /[\u20D0-\u20FF]/, /[\uFE00-\uFE0F]/, /[\uFE20-\uFE2F]/);
	const operator = concat$1(operatorHead, operatorCharacter, "*");
	const identifierHead = either$1(/[a-zA-Z_]/, /[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/, /[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/, /[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/, /[\u1E00-\u1FFF]/, /[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/, /[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/, /[\u2C00-\u2DFF\u2E80-\u2FFF]/, /[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/, /[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/, /[\uFE47-\uFEFE\uFF00-\uFFFD]/);
	const identifierCharacter = either$1(identifierHead, /\d/, /[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/);
	const identifier = concat$1(identifierHead, identifierCharacter, "*");
	const typeIdentifier = concat$1(/[A-Z]/, identifierCharacter, "*");
	const keywordAttributes = [
		"attached",
		"autoclosure",
		concat$1(/convention\(/, either$1("swift", "block", "c"), /\)/),
		"discardableResult",
		"dynamicCallable",
		"dynamicMemberLookup",
		"escaping",
		"freestanding",
		"frozen",
		"GKInspectable",
		"IBAction",
		"IBDesignable",
		"IBInspectable",
		"IBOutlet",
		"IBSegueAction",
		"inlinable",
		"main",
		"nonobjc",
		"NSApplicationMain",
		"NSCopying",
		"NSManaged",
		concat$1(/objc\(/, identifier, /\)/),
		"objc",
		"objcMembers",
		"propertyWrapper",
		"requires_stored_property_inits",
		"resultBuilder",
		"Sendable",
		"testable",
		"UIApplicationMain",
		"unchecked",
		"unknown",
		"usableFromInline",
		"warn_unqualified_access"
	];
	const availabilityKeywords = [
		"iOS",
		"iOSApplicationExtension",
		"macOS",
		"macOSApplicationExtension",
		"macCatalyst",
		"macCatalystApplicationExtension",
		"watchOS",
		"watchOSApplicationExtension",
		"tvOS",
		"tvOSApplicationExtension",
		"swift"
	];
	/** @type LanguageFn */
	function swift(hljs$1) {
		const WHITESPACE = {
			match: /\s+/,
			relevance: 0
		};
		const BLOCK_COMMENT = hljs$1.COMMENT("/\\*", "\\*/", { contains: ["self"] });
		const COMMENTS = [hljs$1.C_LINE_COMMENT_MODE, BLOCK_COMMENT];
		const DOT_KEYWORD = {
			match: [/\./, either$1(...dotKeywords, ...optionalDotKeywords)],
			className: { 2: "keyword" }
		};
		const KEYWORD_GUARD = {
			match: concat$1(/\./, either$1(...keywords)),
			relevance: 0
		};
		const PLAIN_KEYWORDS = keywords.filter((kw) => typeof kw === "string").concat(["_|0"]);
		const REGEX_KEYWORDS = keywords.filter((kw) => typeof kw !== "string").concat(keywordTypes).map(keywordWrapper);
		const KEYWORD = { variants: [{
			className: "keyword",
			match: either$1(...REGEX_KEYWORDS, ...optionalDotKeywords)
		}] };
		const KEYWORDS$6 = {
			$pattern: either$1(/\b\w+/, /#\w+/),
			keyword: PLAIN_KEYWORDS.concat(numberSignKeywords),
			literal: literals
		};
		const KEYWORD_MODES = [
			DOT_KEYWORD,
			KEYWORD_GUARD,
			KEYWORD
		];
		const BUILT_IN_GUARD = {
			match: concat$1(/\./, either$1(...builtIns)),
			relevance: 0
		};
		const BUILT_IN = {
			className: "built_in",
			match: concat$1(/\b/, either$1(...builtIns), /(?=\()/)
		};
		const BUILT_INS$6 = [BUILT_IN_GUARD, BUILT_IN];
		const OPERATOR_GUARD = {
			match: /->/,
			relevance: 0
		};
		const OPERATOR = {
			className: "operator",
			relevance: 0,
			variants: [{ match: operator }, { match: `\\.(\\.|${operatorCharacter})+` }]
		};
		const OPERATORS = [OPERATOR_GUARD, OPERATOR];
		const decimalDigits$2 = "([0-9]_*)+";
		const hexDigits$2 = "([0-9a-fA-F]_*)+";
		const NUMBER = {
			className: "number",
			relevance: 0,
			variants: [
				{ match: `\\b(${decimalDigits$2})(\\.(${decimalDigits$2}))?` + `([eE][+-]?(${decimalDigits$2}))?\\b` },
				{ match: `\\b0x(${hexDigits$2})(\\.(${hexDigits$2}))?` + `([pP][+-]?(${decimalDigits$2}))?\\b` },
				{ match: /\b0o([0-7]_*)+\b/ },
				{ match: /\b0b([01]_*)+\b/ }
			]
		};
		const ESCAPED_CHARACTER = (rawDelimiter = "") => ({
			className: "subst",
			variants: [{ match: concat$1(/\\/, rawDelimiter, /[0\\tnr"']/) }, { match: concat$1(/\\/, rawDelimiter, /u\{[0-9a-fA-F]{1,8}\}/) }]
		});
		const ESCAPED_NEWLINE = (rawDelimiter = "") => ({
			className: "subst",
			match: concat$1(/\\/, rawDelimiter, /[\t ]*(?:[\r\n]|\r\n)/)
		});
		const INTERPOLATION = (rawDelimiter = "") => ({
			className: "subst",
			label: "interpol",
			begin: concat$1(/\\/, rawDelimiter, /\(/),
			end: /\)/
		});
		const MULTILINE_STRING = (rawDelimiter = "") => ({
			begin: concat$1(rawDelimiter, /"""/),
			end: concat$1(/"""/, rawDelimiter),
			contains: [
				ESCAPED_CHARACTER(rawDelimiter),
				ESCAPED_NEWLINE(rawDelimiter),
				INTERPOLATION(rawDelimiter)
			]
		});
		const SINGLE_LINE_STRING = (rawDelimiter = "") => ({
			begin: concat$1(rawDelimiter, /"/),
			end: concat$1(/"/, rawDelimiter),
			contains: [ESCAPED_CHARACTER(rawDelimiter), INTERPOLATION(rawDelimiter)]
		});
		const STRING = {
			className: "string",
			variants: [
				MULTILINE_STRING(),
				MULTILINE_STRING("#"),
				MULTILINE_STRING("##"),
				MULTILINE_STRING("###"),
				SINGLE_LINE_STRING(),
				SINGLE_LINE_STRING("#"),
				SINGLE_LINE_STRING("##"),
				SINGLE_LINE_STRING("###")
			]
		};
		const REGEXP_CONTENTS = [hljs$1.BACKSLASH_ESCAPE, {
			begin: /\[/,
			end: /\]/,
			relevance: 0,
			contains: [hljs$1.BACKSLASH_ESCAPE]
		}];
		const BARE_REGEXP_LITERAL = {
			begin: /\/[^\s](?=[^/\n]*\/)/,
			end: /\//,
			contains: REGEXP_CONTENTS
		};
		const EXTENDED_REGEXP_LITERAL = (rawDelimiter) => {
			const begin = concat$1(rawDelimiter, /\//);
			const end = concat$1(/\//, rawDelimiter);
			return {
				begin,
				end,
				contains: [...REGEXP_CONTENTS, {
					scope: "comment",
					begin: `#(?!.*${end})`,
					end: /$/
				}]
			};
		};
		const REGEXP = {
			scope: "regexp",
			variants: [
				EXTENDED_REGEXP_LITERAL("###"),
				EXTENDED_REGEXP_LITERAL("##"),
				EXTENDED_REGEXP_LITERAL("#"),
				BARE_REGEXP_LITERAL
			]
		};
		const QUOTED_IDENTIFIER = { match: concat$1(/`/, identifier, /`/) };
		const IMPLICIT_PARAMETER = {
			className: "variable",
			match: /\$\d+/
		};
		const PROPERTY_WRAPPER_PROJECTION = {
			className: "variable",
			match: `\\$${identifierCharacter}+`
		};
		const IDENTIFIERS = [
			QUOTED_IDENTIFIER,
			IMPLICIT_PARAMETER,
			PROPERTY_WRAPPER_PROJECTION
		];
		const AVAILABLE_ATTRIBUTE = {
			match: /(@|#(un)?)available/,
			scope: "keyword",
			starts: { contains: [{
				begin: /\(/,
				end: /\)/,
				keywords: availabilityKeywords,
				contains: [
					...OPERATORS,
					NUMBER,
					STRING
				]
			}] }
		};
		const KEYWORD_ATTRIBUTE = {
			scope: "keyword",
			match: concat$1(/@/, either$1(...keywordAttributes), lookahead$1(either$1(/\(/, /\s+/)))
		};
		const USER_DEFINED_ATTRIBUTE = {
			scope: "meta",
			match: concat$1(/@/, identifier)
		};
		const ATTRIBUTES$5 = [
			AVAILABLE_ATTRIBUTE,
			KEYWORD_ATTRIBUTE,
			USER_DEFINED_ATTRIBUTE
		];
		const TYPE = {
			match: lookahead$1(/\b[A-Z]/),
			relevance: 0,
			contains: [
				{
					className: "type",
					match: concat$1(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/, identifierCharacter, "+")
				},
				{
					className: "type",
					match: typeIdentifier,
					relevance: 0
				},
				{
					match: /[?!]+/,
					relevance: 0
				},
				{
					match: /\.\.\./,
					relevance: 0
				},
				{
					match: concat$1(/\s+&\s+/, lookahead$1(typeIdentifier)),
					relevance: 0
				}
			]
		};
		const GENERIC_ARGUMENTS = {
			begin: /</,
			end: />/,
			keywords: KEYWORDS$6,
			contains: [
				...COMMENTS,
				...KEYWORD_MODES,
				...ATTRIBUTES$5,
				OPERATOR_GUARD,
				TYPE
			]
		};
		TYPE.contains.push(GENERIC_ARGUMENTS);
		const TUPLE_ELEMENT_NAME = {
			match: concat$1(identifier, /\s*:/),
			keywords: "_|0",
			relevance: 0
		};
		const TUPLE = {
			begin: /\(/,
			end: /\)/,
			relevance: 0,
			keywords: KEYWORDS$6,
			contains: [
				"self",
				TUPLE_ELEMENT_NAME,
				...COMMENTS,
				REGEXP,
				...KEYWORD_MODES,
				...BUILT_INS$6,
				...OPERATORS,
				NUMBER,
				STRING,
				...IDENTIFIERS,
				...ATTRIBUTES$5,
				TYPE
			]
		};
		const GENERIC_PARAMETERS = {
			begin: /</,
			end: />/,
			keywords: "repeat each",
			contains: [...COMMENTS, TYPE]
		};
		const FUNCTION_PARAMETER_NAME = {
			begin: either$1(lookahead$1(concat$1(identifier, /\s*:/)), lookahead$1(concat$1(identifier, /\s+/, identifier, /\s*:/))),
			end: /:/,
			relevance: 0,
			contains: [{
				className: "keyword",
				match: /\b_\b/
			}, {
				className: "params",
				match: identifier
			}]
		};
		const FUNCTION_PARAMETERS = {
			begin: /\(/,
			end: /\)/,
			keywords: KEYWORDS$6,
			contains: [
				FUNCTION_PARAMETER_NAME,
				...COMMENTS,
				...KEYWORD_MODES,
				...OPERATORS,
				NUMBER,
				STRING,
				...ATTRIBUTES$5,
				TYPE,
				TUPLE
			],
			endsParent: true,
			illegal: /["']/
		};
		const FUNCTION_OR_MACRO = {
			match: [
				/(func|macro)/,
				/\s+/,
				either$1(QUOTED_IDENTIFIER.match, identifier, operator)
			],
			className: {
				1: "keyword",
				3: "title.function"
			},
			contains: [
				GENERIC_PARAMETERS,
				FUNCTION_PARAMETERS,
				WHITESPACE
			],
			illegal: [/\[/, /%/]
		};
		const INIT_SUBSCRIPT = {
			match: [/\b(?:subscript|init[?!]?)/, /\s*(?=[<(])/],
			className: { 1: "keyword" },
			contains: [
				GENERIC_PARAMETERS,
				FUNCTION_PARAMETERS,
				WHITESPACE
			],
			illegal: /\[|%/
		};
		const OPERATOR_DECLARATION = {
			match: [
				/operator/,
				/\s+/,
				operator
			],
			className: {
				1: "keyword",
				3: "title"
			}
		};
		const PRECEDENCEGROUP = {
			begin: [
				/precedencegroup/,
				/\s+/,
				typeIdentifier
			],
			className: {
				1: "keyword",
				3: "title"
			},
			contains: [TYPE],
			keywords: [...precedencegroupKeywords, ...literals],
			end: /}/
		};
		const CLASS_FUNC_DECLARATION = {
			match: [
				/class\b/,
				/\s+/,
				/func\b/,
				/\s+/,
				/\b[A-Za-z_][A-Za-z0-9_]*\b/
			],
			scope: {
				1: "keyword",
				3: "keyword",
				5: "title.function"
			}
		};
		const CLASS_VAR_DECLARATION = {
			match: [
				/class\b/,
				/\s+/,
				/var\b/
			],
			scope: {
				1: "keyword",
				3: "keyword"
			}
		};
		const TYPE_DECLARATION = {
			begin: [
				/(struct|protocol|class|extension|enum|actor)/,
				/\s+/,
				identifier,
				/\s*/
			],
			beginScope: {
				1: "keyword",
				3: "title.class"
			},
			keywords: KEYWORDS$6,
			contains: [
				GENERIC_PARAMETERS,
				...KEYWORD_MODES,
				{
					begin: /:/,
					end: /\{/,
					keywords: KEYWORDS$6,
					contains: [{
						scope: "title.class.inherited",
						match: typeIdentifier
					}, ...KEYWORD_MODES],
					relevance: 0
				}
			]
		};
		for (const variant of STRING.variants) {
			const interpolation = variant.contains.find((mode) => mode.label === "interpol");
			interpolation.keywords = KEYWORDS$6;
			const submodes = [
				...KEYWORD_MODES,
				...BUILT_INS$6,
				...OPERATORS,
				NUMBER,
				STRING,
				...IDENTIFIERS
			];
			interpolation.contains = [...submodes, {
				begin: /\(/,
				end: /\)/,
				contains: ["self", ...submodes]
			}];
		}
		return {
			name: "Swift",
			keywords: KEYWORDS$6,
			contains: [
				...COMMENTS,
				FUNCTION_OR_MACRO,
				INIT_SUBSCRIPT,
				CLASS_FUNC_DECLARATION,
				CLASS_VAR_DECLARATION,
				TYPE_DECLARATION,
				OPERATOR_DECLARATION,
				PRECEDENCEGROUP,
				{
					beginKeywords: "import",
					end: /$/,
					contains: [...COMMENTS],
					relevance: 0
				},
				REGEXP,
				...KEYWORD_MODES,
				...BUILT_INS$6,
				...OPERATORS,
				NUMBER,
				STRING,
				...IDENTIFIERS,
				...ATTRIBUTES$5,
				TYPE,
				TUPLE
			]
		};
	}
	module.exports = swift;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/taggerscript.js
var require_taggerscript = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function taggerscript(hljs$1) {
		const NOOP = {
			className: "comment",
			begin: /\$noop\(/,
			end: /\)/,
			contains: [{ begin: /\\[()]/ }, {
				begin: /\(/,
				end: /\)/,
				contains: [{ begin: /\\[()]/ }, "self"]
			}],
			relevance: 10
		};
		const FUNCTION = {
			className: "keyword",
			begin: /\$[_a-zA-Z0-9]+(?=\()/
		};
		const VARIABLE = {
			className: "variable",
			begin: /%[_a-zA-Z0-9:]+%/
		};
		const ESCAPE_SEQUENCE_UNICODE = {
			className: "symbol",
			begin: /\\u[a-fA-F0-9]{4}/
		};
		const ESCAPE_SEQUENCE = {
			className: "symbol",
			begin: /\\[\\nt$%,()]/
		};
		return {
			name: "Tagger Script",
			contains: [
				NOOP,
				FUNCTION,
				VARIABLE,
				ESCAPE_SEQUENCE,
				ESCAPE_SEQUENCE_UNICODE
			]
		};
	}
	module.exports = taggerscript;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/yaml.js
var require_yaml = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function yaml(hljs$1) {
		const LITERALS$6 = "true false yes no null";
		const URI_CHARACTERS = "[\\w#;/?:@&=+$,.~*'()[\\]]+";
		const KEY = {
			className: "attr",
			variants: [
				{ begin: /[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/ },
				{ begin: /"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/ },
				{ begin: /'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/ }
			]
		};
		const TEMPLATE_VARIABLES = {
			className: "template-variable",
			variants: [{
				begin: /\{\{/,
				end: /\}\}/
			}, {
				begin: /%\{/,
				end: /\}/
			}]
		};
		const SINGLE_QUOTE_STRING = {
			className: "string",
			relevance: 0,
			begin: /'/,
			end: /'/,
			contains: [{
				match: /''/,
				scope: "char.escape",
				relevance: 0
			}]
		};
		const STRING = {
			className: "string",
			relevance: 0,
			variants: [{
				begin: /"/,
				end: /"/
			}, { begin: /\S+/ }],
			contains: [hljs$1.BACKSLASH_ESCAPE, TEMPLATE_VARIABLES]
		};
		const CONTAINER_STRING = hljs$1.inherit(STRING, { variants: [
			{
				begin: /'/,
				end: /'/,
				contains: [{
					begin: /''/,
					relevance: 0
				}]
			},
			{
				begin: /"/,
				end: /"/
			},
			{ begin: /[^\s,{}[\]]+/ }
		] });
		const DATE_RE = "[0-9]{4}(-[0-9][0-9]){0,2}";
		const TIME_RE = "([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?";
		const FRACTION_RE = "(\\.[0-9]*)?";
		const ZONE_RE = "([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?";
		const TIMESTAMP = {
			className: "number",
			begin: "\\b" + DATE_RE + TIME_RE + FRACTION_RE + ZONE_RE + "\\b"
		};
		const VALUE_CONTAINER = {
			end: ",",
			endsWithParent: true,
			excludeEnd: true,
			keywords: LITERALS$6,
			relevance: 0
		};
		const OBJECT = {
			begin: /\{/,
			end: /\}/,
			contains: [VALUE_CONTAINER],
			illegal: "\\n",
			relevance: 0
		};
		const ARRAY = {
			begin: "\\[",
			end: "\\]",
			contains: [VALUE_CONTAINER],
			illegal: "\\n",
			relevance: 0
		};
		const MODES$7 = [
			KEY,
			{
				className: "meta",
				begin: "^---\\s*$",
				relevance: 10
			},
			{
				className: "string",
				begin: "[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"
			},
			{
				begin: "<%[%=-]?",
				end: "[%-]?%>",
				subLanguage: "ruby",
				excludeBegin: true,
				excludeEnd: true,
				relevance: 0
			},
			{
				className: "type",
				begin: "!\\w+!" + URI_CHARACTERS
			},
			{
				className: "type",
				begin: "!<" + URI_CHARACTERS + ">"
			},
			{
				className: "type",
				begin: "!" + URI_CHARACTERS
			},
			{
				className: "type",
				begin: "!!" + URI_CHARACTERS
			},
			{
				className: "meta",
				begin: "&" + hljs$1.UNDERSCORE_IDENT_RE + "$"
			},
			{
				className: "meta",
				begin: "\\*" + hljs$1.UNDERSCORE_IDENT_RE + "$"
			},
			{
				className: "bullet",
				begin: "-(?=[ ]|$)",
				relevance: 0
			},
			hljs$1.HASH_COMMENT_MODE,
			{
				beginKeywords: LITERALS$6,
				keywords: { literal: LITERALS$6 }
			},
			TIMESTAMP,
			{
				className: "number",
				begin: hljs$1.C_NUMBER_RE + "\\b",
				relevance: 0
			},
			OBJECT,
			ARRAY,
			SINGLE_QUOTE_STRING,
			STRING
		];
		const VALUE_MODES = [...MODES$7];
		VALUE_MODES.pop();
		VALUE_MODES.push(CONTAINER_STRING);
		VALUE_CONTAINER.contains = VALUE_MODES;
		return {
			name: "YAML",
			case_insensitive: true,
			aliases: ["yml"],
			contains: MODES$7
		};
	}
	module.exports = yaml;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/tap.js
var require_tap = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function tap(hljs$1) {
		return {
			name: "Test Anything Protocol",
			case_insensitive: true,
			contains: [
				hljs$1.HASH_COMMENT_MODE,
				{
					className: "meta",
					variants: [{ begin: "^TAP version (\\d+)$" }, { begin: "^1\\.\\.(\\d+)$" }]
				},
				{
					begin: /---$/,
					end: "\\.\\.\\.$",
					subLanguage: "yaml",
					relevance: 0
				},
				{
					className: "number",
					begin: " (\\d+) "
				},
				{
					className: "symbol",
					variants: [{ begin: "^ok" }, { begin: "^not ok" }]
				}
			]
		};
	}
	module.exports = tap;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/tcl.js
var require_tcl = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function tcl(hljs$1) {
		const regex = hljs$1.regex;
		const TCL_IDENT = /[a-zA-Z_][a-zA-Z0-9_]*/;
		const NUMBER = {
			className: "number",
			variants: [hljs$1.BINARY_NUMBER_MODE, hljs$1.C_NUMBER_MODE]
		};
		const KEYWORDS$6 = [
			"after",
			"append",
			"apply",
			"array",
			"auto_execok",
			"auto_import",
			"auto_load",
			"auto_mkindex",
			"auto_mkindex_old",
			"auto_qualify",
			"auto_reset",
			"bgerror",
			"binary",
			"break",
			"catch",
			"cd",
			"chan",
			"clock",
			"close",
			"concat",
			"continue",
			"dde",
			"dict",
			"encoding",
			"eof",
			"error",
			"eval",
			"exec",
			"exit",
			"expr",
			"fblocked",
			"fconfigure",
			"fcopy",
			"file",
			"fileevent",
			"filename",
			"flush",
			"for",
			"foreach",
			"format",
			"gets",
			"glob",
			"global",
			"history",
			"http",
			"if",
			"incr",
			"info",
			"interp",
			"join",
			"lappend|10",
			"lassign|10",
			"lindex|10",
			"linsert|10",
			"list",
			"llength|10",
			"load",
			"lrange|10",
			"lrepeat|10",
			"lreplace|10",
			"lreverse|10",
			"lsearch|10",
			"lset|10",
			"lsort|10",
			"mathfunc",
			"mathop",
			"memory",
			"msgcat",
			"namespace",
			"open",
			"package",
			"parray",
			"pid",
			"pkg::create",
			"pkg_mkIndex",
			"platform",
			"platform::shell",
			"proc",
			"puts",
			"pwd",
			"read",
			"refchan",
			"regexp",
			"registry",
			"regsub|10",
			"rename",
			"return",
			"safe",
			"scan",
			"seek",
			"set",
			"socket",
			"source",
			"split",
			"string",
			"subst",
			"switch",
			"tcl_endOfWord",
			"tcl_findLibrary",
			"tcl_startOfNextWord",
			"tcl_startOfPreviousWord",
			"tcl_wordBreakAfter",
			"tcl_wordBreakBefore",
			"tcltest",
			"tclvars",
			"tell",
			"time",
			"tm",
			"trace",
			"unknown",
			"unload",
			"unset",
			"update",
			"uplevel",
			"upvar",
			"variable",
			"vwait",
			"while"
		];
		return {
			name: "Tcl",
			aliases: ["tk"],
			keywords: KEYWORDS$6,
			contains: [
				hljs$1.COMMENT(";[ \\t]*#", "$"),
				hljs$1.COMMENT("^[ \\t]*#", "$"),
				{
					beginKeywords: "proc",
					end: "[\\{]",
					excludeEnd: true,
					contains: [{
						className: "title",
						begin: "[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",
						end: "[ \\t\\n\\r]",
						endsWithParent: true,
						excludeEnd: true
					}]
				},
				{
					className: "variable",
					variants: [{ begin: regex.concat(/\$/, regex.optional(/::/), TCL_IDENT, "(::", TCL_IDENT, ")*") }, {
						begin: "\\$\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",
						end: "\\}",
						contains: [NUMBER]
					}]
				},
				{
					className: "string",
					contains: [hljs$1.BACKSLASH_ESCAPE],
					variants: [hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { illegal: null })]
				},
				NUMBER
			]
		};
	}
	module.exports = tcl;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/thrift.js
var require_thrift = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function thrift(hljs$1) {
		const TYPES$6 = [
			"bool",
			"byte",
			"i16",
			"i32",
			"i64",
			"double",
			"string",
			"binary"
		];
		const KEYWORDS$6 = [
			"namespace",
			"const",
			"typedef",
			"struct",
			"enum",
			"service",
			"exception",
			"void",
			"oneway",
			"set",
			"list",
			"map",
			"required",
			"optional"
		];
		return {
			name: "Thrift",
			keywords: {
				keyword: KEYWORDS$6,
				type: TYPES$6,
				literal: "true false"
			},
			contains: [
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.NUMBER_MODE,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				{
					className: "class",
					beginKeywords: "struct enum service exception",
					end: /\{/,
					illegal: /\n/,
					contains: [hljs$1.inherit(hljs$1.TITLE_MODE, { starts: {
						endsWithParent: true,
						excludeEnd: true
					} })]
				},
				{
					begin: "\\b(set|list|map)\\s*<",
					keywords: { type: [
						...TYPES$6,
						"set",
						"list",
						"map"
					] },
					end: ">",
					contains: ["self"]
				}
			]
		};
	}
	module.exports = thrift;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/tp.js
var require_tp = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function tp(hljs$1) {
		const TPID = {
			className: "number",
			begin: "[1-9][0-9]*",
			relevance: 0
		};
		const TPLABEL = {
			className: "symbol",
			begin: ":[^\\]]+"
		};
		const TPDATA = {
			className: "built_in",
			begin: "(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|" + "TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[",
			end: "\\]",
			contains: [
				"self",
				TPID,
				TPLABEL
			]
		};
		const TPIO = {
			className: "built_in",
			begin: "(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",
			end: "\\]",
			contains: [
				"self",
				TPID,
				hljs$1.QUOTE_STRING_MODE,
				TPLABEL
			]
		};
		const KEYWORDS$6 = [
			"ABORT",
			"ACC",
			"ADJUST",
			"AND",
			"AP_LD",
			"BREAK",
			"CALL",
			"CNT",
			"COL",
			"CONDITION",
			"CONFIG",
			"DA",
			"DB",
			"DIV",
			"DETECT",
			"ELSE",
			"END",
			"ENDFOR",
			"ERR_NUM",
			"ERROR_PROG",
			"FINE",
			"FOR",
			"GP",
			"GUARD",
			"INC",
			"IF",
			"JMP",
			"LINEAR_MAX_SPEED",
			"LOCK",
			"MOD",
			"MONITOR",
			"OFFSET",
			"Offset",
			"OR",
			"OVERRIDE",
			"PAUSE",
			"PREG",
			"PTH",
			"RT_LD",
			"RUN",
			"SELECT",
			"SKIP",
			"Skip",
			"TA",
			"TB",
			"TO",
			"TOOL_OFFSET",
			"Tool_Offset",
			"UF",
			"UT",
			"UFRAME_NUM",
			"UTOOL_NUM",
			"UNLOCK",
			"WAIT",
			"X",
			"Y",
			"Z",
			"W",
			"P",
			"R",
			"STRLEN",
			"SUBSTR",
			"FINDSTR",
			"VOFFSET",
			"PROG",
			"ATTR",
			"MN",
			"POS"
		];
		const LITERALS$6 = [
			"ON",
			"OFF",
			"max_speed",
			"LPOS",
			"JPOS",
			"ENABLE",
			"DISABLE",
			"START",
			"STOP",
			"RESET"
		];
		return {
			name: "TP",
			keywords: {
				keyword: KEYWORDS$6,
				literal: LITERALS$6
			},
			contains: [
				TPDATA,
				TPIO,
				{
					className: "keyword",
					begin: "/(PROG|ATTR|MN|POS|END)\\b"
				},
				{
					className: "keyword",
					begin: "(CALL|RUN|POINT_LOGIC|LBL)\\b"
				},
				{
					className: "keyword",
					begin: "\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)"
				},
				{
					className: "number",
					begin: "\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",
					relevance: 0
				},
				hljs$1.COMMENT("//", "[;$]"),
				hljs$1.COMMENT("!", "[;$]"),
				hljs$1.COMMENT("--eg:", "$"),
				hljs$1.QUOTE_STRING_MODE,
				{
					className: "string",
					begin: "'",
					end: "'"
				},
				hljs$1.C_NUMBER_MODE,
				{
					className: "variable",
					begin: "\\$[A-Za-z0-9_]+"
				}
			]
		};
	}
	module.exports = tp;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/twig.js
var require_twig = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function twig(hljs$1) {
		const regex = hljs$1.regex;
		const FUNCTION_NAMES = [
			"absolute_url",
			"asset|0",
			"asset_version",
			"attribute",
			"block",
			"constant",
			"controller|0",
			"country_timezones",
			"csrf_token",
			"cycle",
			"date",
			"dump",
			"expression",
			"form|0",
			"form_end",
			"form_errors",
			"form_help",
			"form_label",
			"form_rest",
			"form_row",
			"form_start",
			"form_widget",
			"html_classes",
			"include",
			"is_granted",
			"logout_path",
			"logout_url",
			"max",
			"min",
			"parent",
			"path|0",
			"random",
			"range",
			"relative_path",
			"render",
			"render_esi",
			"source",
			"template_from_string",
			"url|0"
		];
		const FILTERS = [
			"abs",
			"abbr_class",
			"abbr_method",
			"batch",
			"capitalize",
			"column",
			"convert_encoding",
			"country_name",
			"currency_name",
			"currency_symbol",
			"data_uri",
			"date",
			"date_modify",
			"default",
			"escape",
			"file_excerpt",
			"file_link",
			"file_relative",
			"filter",
			"first",
			"format",
			"format_args",
			"format_args_as_text",
			"format_currency",
			"format_date",
			"format_datetime",
			"format_file",
			"format_file_from_text",
			"format_number",
			"format_time",
			"html_to_markdown",
			"humanize",
			"inky_to_html",
			"inline_css",
			"join",
			"json_encode",
			"keys",
			"language_name",
			"last",
			"length",
			"locale_name",
			"lower",
			"map",
			"markdown",
			"markdown_to_html",
			"merge",
			"nl2br",
			"number_format",
			"raw",
			"reduce",
			"replace",
			"reverse",
			"round",
			"slice",
			"slug",
			"sort",
			"spaceless",
			"split",
			"striptags",
			"timezone_name",
			"title",
			"trans",
			"transchoice",
			"trim",
			"u|0",
			"upper",
			"url_encode",
			"yaml_dump",
			"yaml_encode"
		];
		let TAG_NAMES = [
			"apply",
			"autoescape",
			"block",
			"cache",
			"deprecated",
			"do",
			"embed",
			"extends",
			"filter",
			"flush",
			"for",
			"form_theme",
			"from",
			"if",
			"import",
			"include",
			"macro",
			"sandbox",
			"set",
			"stopwatch",
			"trans",
			"trans_default_domain",
			"transchoice",
			"use",
			"verbatim",
			"with"
		];
		TAG_NAMES = TAG_NAMES.concat(TAG_NAMES.map((t$6) => `end${t$6}`));
		const STRING = {
			scope: "string",
			variants: [{
				begin: /'/,
				end: /'/
			}, {
				begin: /"/,
				end: /"/
			}]
		};
		const NUMBER = {
			scope: "number",
			match: /\d+/
		};
		const PARAMS = {
			begin: /\(/,
			end: /\)/,
			excludeBegin: true,
			excludeEnd: true,
			contains: [STRING, NUMBER]
		};
		const FUNCTIONS = {
			beginKeywords: FUNCTION_NAMES.join(" "),
			keywords: { name: FUNCTION_NAMES },
			relevance: 0,
			contains: [PARAMS]
		};
		const FILTER = {
			match: /\|(?=[A-Za-z_]+:?)/,
			beginScope: "punctuation",
			relevance: 0,
			contains: [{
				match: /[A-Za-z_]+:?/,
				keywords: FILTERS
			}]
		};
		const tagNamed = (tagnames, { relevance }) => {
			return {
				beginScope: {
					1: "template-tag",
					3: "name"
				},
				relevance: relevance || 2,
				endScope: "template-tag",
				begin: [
					/\{%/,
					/\s*/,
					regex.either(...tagnames)
				],
				end: /%\}/,
				keywords: "in",
				contains: [
					FILTER,
					FUNCTIONS,
					STRING,
					NUMBER
				]
			};
		};
		const CUSTOM_TAG_RE = /[a-z_]+/;
		const TAG = tagNamed(TAG_NAMES, { relevance: 2 });
		const CUSTOM_TAG = tagNamed([CUSTOM_TAG_RE], { relevance: 1 });
		return {
			name: "Twig",
			aliases: ["craftcms"],
			case_insensitive: true,
			subLanguage: "xml",
			contains: [
				hljs$1.COMMENT(/\{#/, /#\}/),
				TAG,
				CUSTOM_TAG,
				{
					className: "template-variable",
					begin: /\{\{/,
					end: /\}\}/,
					contains: [
						"self",
						FILTER,
						FUNCTIONS,
						STRING,
						NUMBER
					]
				}
			]
		};
	}
	module.exports = twig;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/typescript.js
var require_typescript = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	const IDENT_RE$3 = "[A-Za-z$_][0-9A-Za-z$_]*";
	const KEYWORDS$2 = [
		"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"
	];
	const LITERALS$2 = [
		"true",
		"false",
		"null",
		"undefined",
		"NaN",
		"Infinity"
	];
	const TYPES$2 = [
		"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"
	];
	const ERROR_TYPES$2 = [
		"Error",
		"EvalError",
		"InternalError",
		"RangeError",
		"ReferenceError",
		"SyntaxError",
		"TypeError",
		"URIError"
	];
	const BUILT_IN_GLOBALS$2 = [
		"setInterval",
		"setTimeout",
		"clearInterval",
		"clearTimeout",
		"require",
		"exports",
		"eval",
		"isFinite",
		"isNaN",
		"parseFloat",
		"parseInt",
		"decodeURI",
		"decodeURIComponent",
		"encodeURI",
		"encodeURIComponent",
		"escape",
		"unescape"
	];
	const BUILT_IN_VARIABLES$2 = [
		"arguments",
		"this",
		"super",
		"console",
		"window",
		"document",
		"localStorage",
		"sessionStorage",
		"module",
		"global"
	];
	const BUILT_INS$2 = [].concat(BUILT_IN_GLOBALS$2, TYPES$2, ERROR_TYPES$2);
	/** @type LanguageFn */
	function javascript$2(hljs$1) {
		const regex = hljs$1.regex;
		/**
		* Takes a string like "<Booger" and checks to see
		* if we can find a matching "</Booger" later in the
		* content.
		* @param {RegExpMatchArray} match
		* @param {{after:number}} param1
		*/
		const hasClosingTag = (match, { after }) => {
			const tag = "</" + match[0].slice(1);
			const pos = match.input.indexOf(tag, after);
			return pos !== -1;
		};
		const IDENT_RE$1$1 = IDENT_RE$3;
		const FRAGMENT = {
			begin: "<>",
			end: "</>"
		};
		const XML_SELF_CLOSING = /<[A-Za-z0-9\\._:-]+\s*\/>/;
		const XML_TAG = {
			begin: /<[A-Za-z0-9\\._:-]+/,
			end: /\/[A-Za-z0-9\\._:-]+>|\/>/,
			isTrulyOpeningTag: (match, response) => {
				const afterMatchIndex = match[0].length + match.index;
				const nextChar = match.input[afterMatchIndex];
				if (nextChar === "<" || nextChar === ",") {
					response.ignoreMatch();
					return;
				}
				if (nextChar === ">") {
					if (!hasClosingTag(match, { after: afterMatchIndex })) {
						response.ignoreMatch();
					}
				}
				let m$3;
				const afterMatch = match.input.substring(afterMatchIndex);
				if (m$3 = afterMatch.match(/^\s*=/)) {
					response.ignoreMatch();
					return;
				}
				if (m$3 = afterMatch.match(/^\s+extends\s+/)) {
					if (m$3.index === 0) {
						response.ignoreMatch();
						return;
					}
				}
			}
		};
		const KEYWORDS$1$1 = {
			$pattern: IDENT_RE$3,
			keyword: KEYWORDS$2,
			literal: LITERALS$2,
			built_in: BUILT_INS$2,
			"variable.language": BUILT_IN_VARIABLES$2
		};
		const decimalDigits$2 = "[0-9](_?[0-9])*";
		const frac$2 = `\\.(${decimalDigits$2})`;
		const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;
		const NUMBER = {
			className: "number",
			variants: [
				{ begin: `(\\b(${decimalInteger})((${frac$2})|\\.)?|(${frac$2}))` + `[eE][+-]?(${decimalDigits$2})\\b` },
				{ begin: `\\b(${decimalInteger})\\b((${frac$2})\\b|\\.)?|(${frac$2})\\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
		};
		const SUBST = {
			className: "subst",
			begin: "\\$\\{",
			end: "\\}",
			keywords: KEYWORDS$1$1,
			contains: []
		};
		const HTML_TEMPLATE = {
			begin: ".?html`",
			end: "",
			starts: {
				end: "`",
				returnEnd: false,
				contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
				subLanguage: "xml"
			}
		};
		const CSS_TEMPLATE = {
			begin: ".?css`",
			end: "",
			starts: {
				end: "`",
				returnEnd: false,
				contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
				subLanguage: "css"
			}
		};
		const GRAPHQL_TEMPLATE = {
			begin: ".?gql`",
			end: "",
			starts: {
				end: "`",
				returnEnd: false,
				contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
				subLanguage: "graphql"
			}
		};
		const TEMPLATE_STRING = {
			className: "string",
			begin: "`",
			end: "`",
			contains: [hljs$1.BACKSLASH_ESCAPE, SUBST]
		};
		const JSDOC_COMMENT = hljs$1.COMMENT(/\/\*\*(?!\/)/, "\\*/", {
			relevance: 0,
			contains: [{
				begin: "(?=@[A-Za-z]+)",
				relevance: 0,
				contains: [
					{
						className: "doctag",
						begin: "@[A-Za-z]+"
					},
					{
						className: "type",
						begin: "\\{",
						end: "\\}",
						excludeEnd: true,
						excludeBegin: true,
						relevance: 0
					},
					{
						className: "variable",
						begin: IDENT_RE$1$1 + "(?=\\s*(-)|$)",
						endsParent: true,
						relevance: 0
					},
					{
						begin: /(?=[^\n])\s/,
						relevance: 0
					}
				]
			}]
		});
		const COMMENT$2 = {
			className: "comment",
			variants: [
				JSDOC_COMMENT,
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.C_LINE_COMMENT_MODE
			]
		};
		const SUBST_INTERNALS = [
			hljs$1.APOS_STRING_MODE,
			hljs$1.QUOTE_STRING_MODE,
			HTML_TEMPLATE,
			CSS_TEMPLATE,
			GRAPHQL_TEMPLATE,
			TEMPLATE_STRING,
			{ match: /\$\d+/ },
			NUMBER
		];
		SUBST.contains = SUBST_INTERNALS.concat({
			begin: /\{/,
			end: /\}/,
			keywords: KEYWORDS$1$1,
			contains: ["self"].concat(SUBST_INTERNALS)
		});
		const SUBST_AND_COMMENTS = [].concat(COMMENT$2, SUBST.contains);
		const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([{
			begin: /(\s*)\(/,
			end: /\)/,
			keywords: KEYWORDS$1$1,
			contains: ["self"].concat(SUBST_AND_COMMENTS)
		}]);
		const PARAMS = {
			className: "params",
			begin: /(\s*)\(/,
			end: /\)/,
			excludeBegin: true,
			excludeEnd: true,
			keywords: KEYWORDS$1$1,
			contains: PARAMS_CONTAINS
		};
		const CLASS_OR_EXTENDS = { variants: [{
			match: [
				/class/,
				/\s+/,
				IDENT_RE$1$1,
				/\s+/,
				/extends/,
				/\s+/,
				regex.concat(IDENT_RE$1$1, "(", regex.concat(/\./, IDENT_RE$1$1), ")*")
			],
			scope: {
				1: "keyword",
				3: "title.class",
				5: "keyword",
				7: "title.class.inherited"
			}
		}, {
			match: [
				/class/,
				/\s+/,
				IDENT_RE$1$1
			],
			scope: {
				1: "keyword",
				3: "title.class"
			}
		}] };
		const CLASS_REFERENCE = {
			relevance: 0,
			match: regex.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: { _: [...TYPES$2, ...ERROR_TYPES$2] }
		};
		const USE_STRICT = {
			label: "use_strict",
			className: "meta",
			relevance: 10,
			begin: /^\s*['"]use (strict|asm)['"]/
		};
		const FUNCTION_DEFINITION = {
			variants: [{ match: [
				/function/,
				/\s+/,
				IDENT_RE$1$1,
				/(?=\s*\()/
			] }, { match: [/function/, /\s*(?=\()/] }],
			className: {
				1: "keyword",
				3: "title.function"
			},
			label: "func.def",
			contains: [PARAMS],
			illegal: /%/
		};
		const UPPER_CASE_CONSTANT = {
			relevance: 0,
			match: /\b[A-Z][A-Z_0-9]+\b/,
			className: "variable.constant"
		};
		function noneOf(list) {
			return regex.concat("(?!", list.join("|"), ")");
		}
		const FUNCTION_CALL = {
			match: regex.concat(/\b/, noneOf([
				...BUILT_IN_GLOBALS$2,
				"super",
				"import"
			].map((x$2) => `${x$2}\\s*\\(`)), IDENT_RE$1$1, regex.lookahead(/\s*\(/)),
			className: "title.function",
			relevance: 0
		};
		const PROPERTY_ACCESS = {
			begin: regex.concat(/\./, regex.lookahead(regex.concat(IDENT_RE$1$1, /(?![0-9A-Za-z$_(])/))),
			end: IDENT_RE$1$1,
			excludeBegin: true,
			keywords: "prototype",
			className: "property",
			relevance: 0
		};
		const GETTER_OR_SETTER = {
			match: [
				/get|set/,
				/\s+/,
				IDENT_RE$1$1,
				/(?=\()/
			],
			className: {
				1: "keyword",
				3: "title.function"
			},
			contains: [{ begin: /\(\)/ }, PARAMS]
		};
		const FUNC_LEAD_IN_RE = "(\\(" + "[^()]*(\\(" + "[^()]*(\\(" + "[^()]*" + "\\)[^()]*)*" + "\\)[^()]*)*" + "\\)|" + hljs$1.UNDERSCORE_IDENT_RE + ")\\s*=>";
		const FUNCTION_VARIABLE = {
			match: [
				/const|var|let/,
				/\s+/,
				IDENT_RE$1$1,
				/\s*/,
				/=\s*/,
				/(async\s*)?/,
				regex.lookahead(FUNC_LEAD_IN_RE)
			],
			keywords: "async",
			className: {
				1: "keyword",
				3: "title.function"
			},
			contains: [PARAMS]
		};
		return {
			name: "JavaScript",
			aliases: [
				"js",
				"jsx",
				"mjs",
				"cjs"
			],
			keywords: KEYWORDS$1$1,
			exports: {
				PARAMS_CONTAINS,
				CLASS_REFERENCE
			},
			illegal: /#(?![$_A-z])/,
			contains: [
				hljs$1.SHEBANG({
					label: "shebang",
					binary: "node",
					relevance: 5
				}),
				USE_STRICT,
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				HTML_TEMPLATE,
				CSS_TEMPLATE,
				GRAPHQL_TEMPLATE,
				TEMPLATE_STRING,
				COMMENT$2,
				{ match: /\$\d+/ },
				NUMBER,
				CLASS_REFERENCE,
				{
					scope: "attr",
					match: IDENT_RE$1$1 + regex.lookahead(":"),
					relevance: 0
				},
				FUNCTION_VARIABLE,
				{
					begin: "(" + hljs$1.RE_STARTERS_RE + "|\\b(case|return|throw)\\b)\\s*",
					keywords: "return throw case",
					relevance: 0,
					contains: [
						COMMENT$2,
						hljs$1.REGEXP_MODE,
						{
							className: "function",
							begin: FUNC_LEAD_IN_RE,
							returnBegin: true,
							end: "\\s*=>",
							contains: [{
								className: "params",
								variants: [
									{
										begin: hljs$1.UNDERSCORE_IDENT_RE,
										relevance: 0
									},
									{
										className: null,
										begin: /\(\s*\)/,
										skip: true
									},
									{
										begin: /(\s*)\(/,
										end: /\)/,
										excludeBegin: true,
										excludeEnd: true,
										keywords: KEYWORDS$1$1,
										contains: PARAMS_CONTAINS
									}
								]
							}]
						},
						{
							begin: /,/,
							relevance: 0
						},
						{
							match: /\s+/,
							relevance: 0
						},
						{
							variants: [
								{
									begin: FRAGMENT.begin,
									end: FRAGMENT.end
								},
								{ match: XML_SELF_CLOSING },
								{
									begin: XML_TAG.begin,
									"on:begin": XML_TAG.isTrulyOpeningTag,
									end: XML_TAG.end
								}
							],
							subLanguage: "xml",
							contains: [{
								begin: XML_TAG.begin,
								end: XML_TAG.end,
								skip: true,
								contains: ["self"]
							}]
						}
					]
				},
				FUNCTION_DEFINITION,
				{ beginKeywords: "while if switch catch for" },
				{
					begin: "\\b(?!function)" + hljs$1.UNDERSCORE_IDENT_RE + "\\(" + "[^()]*(\\(" + "[^()]*(\\(" + "[^()]*" + "\\)[^()]*)*" + "\\)[^()]*)*" + "\\)\\s*\\{",
					returnBegin: true,
					label: "func.def",
					contains: [PARAMS, hljs$1.inherit(hljs$1.TITLE_MODE, {
						begin: IDENT_RE$1$1,
						className: "title.function"
					})]
				},
				{
					match: /\.\.\./,
					relevance: 0
				},
				PROPERTY_ACCESS,
				{
					match: "\\$" + IDENT_RE$1$1,
					relevance: 0
				},
				{
					match: [/\bconstructor(?=\s*\()/],
					className: { 1: "title.function" },
					contains: [PARAMS]
				},
				FUNCTION_CALL,
				UPPER_CASE_CONSTANT,
				CLASS_OR_EXTENDS,
				GETTER_OR_SETTER,
				{ match: /\$[(.]/ }
			]
		};
	}
	/** @type LanguageFn */
	function typescript$1(hljs$1) {
		const regex = hljs$1.regex;
		const tsLanguage = javascript$2(hljs$1);
		const IDENT_RE$1$1 = IDENT_RE$3;
		const TYPES$6 = [
			"any",
			"void",
			"number",
			"boolean",
			"string",
			"object",
			"never",
			"symbol",
			"bigint",
			"unknown"
		];
		const NAMESPACE = {
			begin: [
				/namespace/,
				/\s+/,
				hljs$1.IDENT_RE
			],
			beginScope: {
				1: "keyword",
				3: "title.class"
			}
		};
		const INTERFACE = {
			beginKeywords: "interface",
			end: /\{/,
			excludeEnd: true,
			keywords: {
				keyword: "interface extends",
				built_in: TYPES$6
			},
			contains: [tsLanguage.exports.CLASS_REFERENCE]
		};
		const USE_STRICT = {
			className: "meta",
			relevance: 10,
			begin: /^\s*['"]use strict['"]/
		};
		const TS_SPECIFIC_KEYWORDS = [
			"type",
			"interface",
			"public",
			"private",
			"protected",
			"implements",
			"declare",
			"abstract",
			"readonly",
			"enum",
			"override",
			"satisfies"
		];
		const KEYWORDS$1$1 = {
			$pattern: IDENT_RE$3,
			keyword: KEYWORDS$2.concat(TS_SPECIFIC_KEYWORDS),
			literal: LITERALS$2,
			built_in: BUILT_INS$2.concat(TYPES$6),
			"variable.language": BUILT_IN_VARIABLES$2
		};
		const DECORATOR = {
			className: "meta",
			begin: "@" + IDENT_RE$1$1
		};
		const swapMode = (mode, label, replacement) => {
			const indx = mode.contains.findIndex((m$3) => m$3.label === label);
			if (indx === -1) {
				throw new Error("can not find mode to replace");
			}
			mode.contains.splice(indx, 1, replacement);
		};
		Object.assign(tsLanguage.keywords, KEYWORDS$1$1);
		tsLanguage.exports.PARAMS_CONTAINS.push(DECORATOR);
		const ATTRIBUTE_HIGHLIGHT = tsLanguage.contains.find((c$7) => c$7.scope === "attr");
		const OPTIONAL_KEY_OR_ARGUMENT = Object.assign({}, ATTRIBUTE_HIGHLIGHT, { match: regex.concat(IDENT_RE$1$1, regex.lookahead(/\s*\?:/)) });
		tsLanguage.exports.PARAMS_CONTAINS.push([
			tsLanguage.exports.CLASS_REFERENCE,
			ATTRIBUTE_HIGHLIGHT,
			OPTIONAL_KEY_OR_ARGUMENT
		]);
		tsLanguage.contains = tsLanguage.contains.concat([
			DECORATOR,
			NAMESPACE,
			INTERFACE,
			OPTIONAL_KEY_OR_ARGUMENT
		]);
		swapMode(tsLanguage, "shebang", hljs$1.SHEBANG());
		swapMode(tsLanguage, "use_strict", USE_STRICT);
		const functionDeclaration = tsLanguage.contains.find((m$3) => m$3.label === "func.def");
		functionDeclaration.relevance = 0;
		Object.assign(tsLanguage, {
			name: "TypeScript",
			aliases: [
				"ts",
				"tsx",
				"mts",
				"cts"
			]
		});
		return tsLanguage;
	}
	module.exports = typescript$1;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/vala.js
var require_vala = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function vala(hljs$1) {
		return {
			name: "Vala",
			keywords: {
				keyword: "char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 " + "uint16 uint32 uint64 float double bool struct enum string void " + "weak unowned owned " + "async signal static abstract interface override virtual delegate " + "if while do for foreach else switch case break default return try catch " + "public private protected internal " + "using new this get set const stdout stdin stderr var",
				built_in: "DBus GLib CCode Gee Object Gtk Posix",
				literal: "false true null"
			},
			contains: [
				{
					className: "class",
					beginKeywords: "class interface namespace",
					end: /\{/,
					excludeEnd: true,
					illegal: "[^,:\\n\\s\\.]",
					contains: [hljs$1.UNDERSCORE_TITLE_MODE]
				},
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				{
					className: "string",
					begin: "\"\"\"",
					end: "\"\"\"",
					relevance: 5
				},
				hljs$1.APOS_STRING_MODE,
				hljs$1.QUOTE_STRING_MODE,
				hljs$1.C_NUMBER_MODE,
				{
					className: "meta",
					begin: "^#",
					end: "$"
				}
			]
		};
	}
	module.exports = vala;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/vbnet.js
var require_vbnet = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function vbnet(hljs$1) {
		const regex = hljs$1.regex;
		/**
		* Character Literal
		* Either a single character ("a"C) or an escaped double quote (""""C).
		*/
		const CHARACTER = {
			className: "string",
			begin: /"(""|[^/n])"C\b/
		};
		const STRING = {
			className: "string",
			begin: /"/,
			end: /"/,
			illegal: /\n/,
			contains: [{ begin: /""/ }]
		};
		/** Date Literals consist of a date, a time, or both separated by whitespace, surrounded by # */
		const MM_DD_YYYY = /\d{1,2}\/\d{1,2}\/\d{4}/;
		const YYYY_MM_DD = /\d{4}-\d{1,2}-\d{1,2}/;
		const TIME_12H = /(\d|1[012])(:\d+){0,2} *(AM|PM)/;
		const TIME_24H = /\d{1,2}(:\d{1,2}){1,2}/;
		const DATE = {
			className: "literal",
			variants: [
				{ begin: regex.concat(/# */, regex.either(YYYY_MM_DD, MM_DD_YYYY), / *#/) },
				{ begin: regex.concat(/# */, TIME_24H, / *#/) },
				{ begin: regex.concat(/# */, TIME_12H, / *#/) },
				{ begin: regex.concat(/# */, regex.either(YYYY_MM_DD, MM_DD_YYYY), / +/, regex.either(TIME_12H, TIME_24H), / *#/) }
			]
		};
		const NUMBER = {
			className: "number",
			relevance: 0,
			variants: [
				{ begin: /\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/ },
				{ begin: /\b\d[\d_]*((U?[SIL])|[%&])?/ },
				{ begin: /&H[\dA-F_]+((U?[SIL])|[%&])?/ },
				{ begin: /&O[0-7_]+((U?[SIL])|[%&])?/ },
				{ begin: /&B[01_]+((U?[SIL])|[%&])?/ }
			]
		};
		const LABEL = {
			className: "label",
			begin: /^\w+:/
		};
		const DOC_COMMENT = hljs$1.COMMENT(/'''/, /$/, { contains: [{
			className: "doctag",
			begin: /<\/?/,
			end: />/
		}] });
		const COMMENT$2 = hljs$1.COMMENT(null, /$/, { variants: [{ begin: /'/ }, { begin: /([\t ]|^)REM(?=\s)/ }] });
		const DIRECTIVES = {
			className: "meta",
			begin: /[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,
			end: /$/,
			keywords: { keyword: "const disable else elseif enable end externalsource if region then" },
			contains: [COMMENT$2]
		};
		return {
			name: "Visual Basic .NET",
			aliases: ["vb"],
			case_insensitive: true,
			classNameAliases: { label: "symbol" },
			keywords: {
				keyword: "addhandler alias aggregate ansi as async assembly auto binary by byref byval " + "call case catch class compare const continue custom declare default delegate dim distinct do " + "each equals else elseif end enum erase error event exit explicit finally for friend from function " + "get global goto group handles if implements imports in inherits interface into iterator " + "join key let lib loop me mid module mustinherit mustoverride mybase myclass " + "namespace narrowing new next notinheritable notoverridable " + "of off on operator option optional order overloads overridable overrides " + "paramarray partial preserve private property protected public " + "raiseevent readonly redim removehandler resume return " + "select set shadows shared skip static step stop structure strict sub synclock " + "take text then throw to try unicode until using when where while widening with withevents writeonly yield",
				built_in: "addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor " + "cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",
				type: "boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",
				literal: "true false nothing"
			},
			illegal: "//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",
			contains: [
				CHARACTER,
				STRING,
				DATE,
				NUMBER,
				LABEL,
				DOC_COMMENT,
				COMMENT$2,
				DIRECTIVES
			]
		};
	}
	module.exports = vbnet;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/vbscript.js
var require_vbscript = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function vbscript(hljs$1) {
		const regex = hljs$1.regex;
		const BUILT_IN_FUNCTIONS = [
			"lcase",
			"month",
			"vartype",
			"instrrev",
			"ubound",
			"setlocale",
			"getobject",
			"rgb",
			"getref",
			"string",
			"weekdayname",
			"rnd",
			"dateadd",
			"monthname",
			"now",
			"day",
			"minute",
			"isarray",
			"cbool",
			"round",
			"formatcurrency",
			"conversions",
			"csng",
			"timevalue",
			"second",
			"year",
			"space",
			"abs",
			"clng",
			"timeserial",
			"fixs",
			"len",
			"asc",
			"isempty",
			"maths",
			"dateserial",
			"atn",
			"timer",
			"isobject",
			"filter",
			"weekday",
			"datevalue",
			"ccur",
			"isdate",
			"instr",
			"datediff",
			"formatdatetime",
			"replace",
			"isnull",
			"right",
			"sgn",
			"array",
			"snumeric",
			"log",
			"cdbl",
			"hex",
			"chr",
			"lbound",
			"msgbox",
			"ucase",
			"getlocale",
			"cos",
			"cdate",
			"cbyte",
			"rtrim",
			"join",
			"hour",
			"oct",
			"typename",
			"trim",
			"strcomp",
			"int",
			"createobject",
			"loadpicture",
			"tan",
			"formatnumber",
			"mid",
			"split",
			"cint",
			"sin",
			"datepart",
			"ltrim",
			"sqr",
			"time",
			"derived",
			"eval",
			"date",
			"formatpercent",
			"exp",
			"inputbox",
			"left",
			"ascw",
			"chrw",
			"regexp",
			"cstr",
			"err"
		];
		const BUILT_IN_OBJECTS = [
			"server",
			"response",
			"request",
			"scriptengine",
			"scriptenginebuildversion",
			"scriptengineminorversion",
			"scriptenginemajorversion"
		];
		const BUILT_IN_CALL = {
			begin: regex.concat(regex.either(...BUILT_IN_FUNCTIONS), "\\s*\\("),
			relevance: 0,
			keywords: { built_in: BUILT_IN_FUNCTIONS }
		};
		const LITERALS$6 = [
			"true",
			"false",
			"null",
			"nothing",
			"empty"
		];
		const KEYWORDS$6 = [
			"call",
			"class",
			"const",
			"dim",
			"do",
			"loop",
			"erase",
			"execute",
			"executeglobal",
			"exit",
			"for",
			"each",
			"next",
			"function",
			"if",
			"then",
			"else",
			"on",
			"error",
			"option",
			"explicit",
			"new",
			"private",
			"property",
			"let",
			"get",
			"public",
			"randomize",
			"redim",
			"rem",
			"select",
			"case",
			"set",
			"stop",
			"sub",
			"while",
			"wend",
			"with",
			"end",
			"to",
			"elseif",
			"is",
			"or",
			"xor",
			"and",
			"not",
			"class_initialize",
			"class_terminate",
			"default",
			"preserve",
			"in",
			"me",
			"byval",
			"byref",
			"step",
			"resume",
			"goto"
		];
		return {
			name: "VBScript",
			aliases: ["vbs"],
			case_insensitive: true,
			keywords: {
				keyword: KEYWORDS$6,
				built_in: BUILT_IN_OBJECTS,
				literal: LITERALS$6
			},
			illegal: "//",
			contains: [
				BUILT_IN_CALL,
				hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { contains: [{ begin: "\"\"" }] }),
				hljs$1.COMMENT(/'/, /$/, { relevance: 0 }),
				hljs$1.C_NUMBER_MODE
			]
		};
	}
	module.exports = vbscript;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/vbscript-html.js
var require_vbscript_html = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function vbscriptHtml(hljs$1) {
		return {
			name: "VBScript in HTML",
			subLanguage: "xml",
			contains: [{
				begin: "<%",
				end: "%>",
				subLanguage: "vbscript"
			}]
		};
	}
	module.exports = vbscriptHtml;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/verilog.js
var require_verilog = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function verilog(hljs$1) {
		const regex = hljs$1.regex;
		const KEYWORDS$6 = {
			$pattern: /\$?[\w]+(\$[\w]+)*/,
			keyword: [
				"accept_on",
				"alias",
				"always",
				"always_comb",
				"always_ff",
				"always_latch",
				"and",
				"assert",
				"assign",
				"assume",
				"automatic",
				"before",
				"begin",
				"bind",
				"bins",
				"binsof",
				"bit",
				"break",
				"buf|0",
				"bufif0",
				"bufif1",
				"byte",
				"case",
				"casex",
				"casez",
				"cell",
				"chandle",
				"checker",
				"class",
				"clocking",
				"cmos",
				"config",
				"const",
				"constraint",
				"context",
				"continue",
				"cover",
				"covergroup",
				"coverpoint",
				"cross",
				"deassign",
				"default",
				"defparam",
				"design",
				"disable",
				"dist",
				"do",
				"edge",
				"else",
				"end",
				"endcase",
				"endchecker",
				"endclass",
				"endclocking",
				"endconfig",
				"endfunction",
				"endgenerate",
				"endgroup",
				"endinterface",
				"endmodule",
				"endpackage",
				"endprimitive",
				"endprogram",
				"endproperty",
				"endspecify",
				"endsequence",
				"endtable",
				"endtask",
				"enum",
				"event",
				"eventually",
				"expect",
				"export",
				"extends",
				"extern",
				"final",
				"first_match",
				"for",
				"force",
				"foreach",
				"forever",
				"fork",
				"forkjoin",
				"function",
				"generate|5",
				"genvar",
				"global",
				"highz0",
				"highz1",
				"if",
				"iff",
				"ifnone",
				"ignore_bins",
				"illegal_bins",
				"implements",
				"implies",
				"import",
				"incdir",
				"include",
				"initial",
				"inout",
				"input",
				"inside",
				"instance",
				"int",
				"integer",
				"interconnect",
				"interface",
				"intersect",
				"join",
				"join_any",
				"join_none",
				"large",
				"let",
				"liblist",
				"library",
				"local",
				"localparam",
				"logic",
				"longint",
				"macromodule",
				"matches",
				"medium",
				"modport",
				"module",
				"nand",
				"negedge",
				"nettype",
				"new",
				"nexttime",
				"nmos",
				"nor",
				"noshowcancelled",
				"not",
				"notif0",
				"notif1",
				"or",
				"output",
				"package",
				"packed",
				"parameter",
				"pmos",
				"posedge",
				"primitive",
				"priority",
				"program",
				"property",
				"protected",
				"pull0",
				"pull1",
				"pulldown",
				"pullup",
				"pulsestyle_ondetect",
				"pulsestyle_onevent",
				"pure",
				"rand",
				"randc",
				"randcase",
				"randsequence",
				"rcmos",
				"real",
				"realtime",
				"ref",
				"reg",
				"reject_on",
				"release",
				"repeat",
				"restrict",
				"return",
				"rnmos",
				"rpmos",
				"rtran",
				"rtranif0",
				"rtranif1",
				"s_always",
				"s_eventually",
				"s_nexttime",
				"s_until",
				"s_until_with",
				"scalared",
				"sequence",
				"shortint",
				"shortreal",
				"showcancelled",
				"signed",
				"small",
				"soft",
				"solve",
				"specify",
				"specparam",
				"static",
				"string",
				"strong",
				"strong0",
				"strong1",
				"struct",
				"super",
				"supply0",
				"supply1",
				"sync_accept_on",
				"sync_reject_on",
				"table",
				"tagged",
				"task",
				"this",
				"throughout",
				"time",
				"timeprecision",
				"timeunit",
				"tran",
				"tranif0",
				"tranif1",
				"tri",
				"tri0",
				"tri1",
				"triand",
				"trior",
				"trireg",
				"type",
				"typedef",
				"union",
				"unique",
				"unique0",
				"unsigned",
				"until",
				"until_with",
				"untyped",
				"use",
				"uwire",
				"var",
				"vectored",
				"virtual",
				"void",
				"wait",
				"wait_order",
				"wand",
				"weak",
				"weak0",
				"weak1",
				"while",
				"wildcard",
				"wire",
				"with",
				"within",
				"wor",
				"xnor",
				"xor"
			],
			literal: ["null"],
			built_in: [
				"$finish",
				"$stop",
				"$exit",
				"$fatal",
				"$error",
				"$warning",
				"$info",
				"$realtime",
				"$time",
				"$printtimescale",
				"$bitstoreal",
				"$bitstoshortreal",
				"$itor",
				"$signed",
				"$cast",
				"$bits",
				"$stime",
				"$timeformat",
				"$realtobits",
				"$shortrealtobits",
				"$rtoi",
				"$unsigned",
				"$asserton",
				"$assertkill",
				"$assertpasson",
				"$assertfailon",
				"$assertnonvacuouson",
				"$assertoff",
				"$assertcontrol",
				"$assertpassoff",
				"$assertfailoff",
				"$assertvacuousoff",
				"$isunbounded",
				"$sampled",
				"$fell",
				"$changed",
				"$past_gclk",
				"$fell_gclk",
				"$changed_gclk",
				"$rising_gclk",
				"$steady_gclk",
				"$coverage_control",
				"$coverage_get",
				"$coverage_save",
				"$set_coverage_db_name",
				"$rose",
				"$stable",
				"$past",
				"$rose_gclk",
				"$stable_gclk",
				"$future_gclk",
				"$falling_gclk",
				"$changing_gclk",
				"$display",
				"$coverage_get_max",
				"$coverage_merge",
				"$get_coverage",
				"$load_coverage_db",
				"$typename",
				"$unpacked_dimensions",
				"$left",
				"$low",
				"$increment",
				"$clog2",
				"$ln",
				"$log10",
				"$exp",
				"$sqrt",
				"$pow",
				"$floor",
				"$ceil",
				"$sin",
				"$cos",
				"$tan",
				"$countbits",
				"$onehot",
				"$isunknown",
				"$fatal",
				"$warning",
				"$dimensions",
				"$right",
				"$high",
				"$size",
				"$asin",
				"$acos",
				"$atan",
				"$atan2",
				"$hypot",
				"$sinh",
				"$cosh",
				"$tanh",
				"$asinh",
				"$acosh",
				"$atanh",
				"$countones",
				"$onehot0",
				"$error",
				"$info",
				"$random",
				"$dist_chi_square",
				"$dist_erlang",
				"$dist_exponential",
				"$dist_normal",
				"$dist_poisson",
				"$dist_t",
				"$dist_uniform",
				"$q_initialize",
				"$q_remove",
				"$q_exam",
				"$async$and$array",
				"$async$nand$array",
				"$async$or$array",
				"$async$nor$array",
				"$sync$and$array",
				"$sync$nand$array",
				"$sync$or$array",
				"$sync$nor$array",
				"$q_add",
				"$q_full",
				"$psprintf",
				"$async$and$plane",
				"$async$nand$plane",
				"$async$or$plane",
				"$async$nor$plane",
				"$sync$and$plane",
				"$sync$nand$plane",
				"$sync$or$plane",
				"$sync$nor$plane",
				"$system",
				"$display",
				"$displayb",
				"$displayh",
				"$displayo",
				"$strobe",
				"$strobeb",
				"$strobeh",
				"$strobeo",
				"$write",
				"$readmemb",
				"$readmemh",
				"$writememh",
				"$value$plusargs",
				"$dumpvars",
				"$dumpon",
				"$dumplimit",
				"$dumpports",
				"$dumpportson",
				"$dumpportslimit",
				"$writeb",
				"$writeh",
				"$writeo",
				"$monitor",
				"$monitorb",
				"$monitorh",
				"$monitoro",
				"$writememb",
				"$dumpfile",
				"$dumpoff",
				"$dumpall",
				"$dumpflush",
				"$dumpportsoff",
				"$dumpportsall",
				"$dumpportsflush",
				"$fclose",
				"$fdisplay",
				"$fdisplayb",
				"$fdisplayh",
				"$fdisplayo",
				"$fstrobe",
				"$fstrobeb",
				"$fstrobeh",
				"$fstrobeo",
				"$swrite",
				"$swriteb",
				"$swriteh",
				"$swriteo",
				"$fscanf",
				"$fread",
				"$fseek",
				"$fflush",
				"$feof",
				"$fopen",
				"$fwrite",
				"$fwriteb",
				"$fwriteh",
				"$fwriteo",
				"$fmonitor",
				"$fmonitorb",
				"$fmonitorh",
				"$fmonitoro",
				"$sformat",
				"$sformatf",
				"$fgetc",
				"$ungetc",
				"$fgets",
				"$sscanf",
				"$rewind",
				"$ftell",
				"$ferror"
			]
		};
		const BUILT_IN_CONSTANTS = ["__FILE__", "__LINE__"];
		const DIRECTIVES = [
			"begin_keywords",
			"celldefine",
			"default_nettype",
			"default_decay_time",
			"default_trireg_strength",
			"define",
			"delay_mode_distributed",
			"delay_mode_path",
			"delay_mode_unit",
			"delay_mode_zero",
			"else",
			"elsif",
			"end_keywords",
			"endcelldefine",
			"endif",
			"ifdef",
			"ifndef",
			"include",
			"line",
			"nounconnected_drive",
			"pragma",
			"resetall",
			"timescale",
			"unconnected_drive",
			"undef",
			"undefineall"
		];
		return {
			name: "Verilog",
			aliases: [
				"v",
				"sv",
				"svh"
			],
			case_insensitive: false,
			keywords: KEYWORDS$6,
			contains: [
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.QUOTE_STRING_MODE,
				{
					scope: "number",
					contains: [hljs$1.BACKSLASH_ESCAPE],
					variants: [
						{ begin: /\b((\d+'([bhodBHOD]))[0-9xzXZa-fA-F_]+)/ },
						{ begin: /\B(('([bhodBHOD]))[0-9xzXZa-fA-F_]+)/ },
						{
							begin: /\b[0-9][0-9_]*/,
							relevance: 0
						}
					]
				},
				{
					scope: "variable",
					variants: [{ begin: "#\\((?!parameter).+\\)" }, {
						begin: "\\.\\w+",
						relevance: 0
					}]
				},
				{
					scope: "variable.constant",
					match: regex.concat(/`/, regex.either(...BUILT_IN_CONSTANTS))
				},
				{
					scope: "meta",
					begin: regex.concat(/`/, regex.either(...DIRECTIVES)),
					end: /$|\/\/|\/\*/,
					returnEnd: true,
					keywords: DIRECTIVES
				}
			]
		};
	}
	module.exports = verilog;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/vhdl.js
var require_vhdl = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function vhdl(hljs$1) {
		const INTEGER_RE = "\\d(_|\\d)*";
		const EXPONENT_RE = "[eE][-+]?" + INTEGER_RE;
		const DECIMAL_LITERAL_RE = INTEGER_RE + "(\\." + INTEGER_RE + ")?" + "(" + EXPONENT_RE + ")?";
		const BASED_INTEGER_RE = "\\w+";
		const BASED_LITERAL_RE = INTEGER_RE + "#" + BASED_INTEGER_RE + "(\\." + BASED_INTEGER_RE + ")?" + "#" + "(" + EXPONENT_RE + ")?";
		const NUMBER_RE$2 = "\\b(" + BASED_LITERAL_RE + "|" + DECIMAL_LITERAL_RE + ")";
		const KEYWORDS$6 = [
			"abs",
			"access",
			"after",
			"alias",
			"all",
			"and",
			"architecture",
			"array",
			"assert",
			"assume",
			"assume_guarantee",
			"attribute",
			"begin",
			"block",
			"body",
			"buffer",
			"bus",
			"case",
			"component",
			"configuration",
			"constant",
			"context",
			"cover",
			"disconnect",
			"downto",
			"default",
			"else",
			"elsif",
			"end",
			"entity",
			"exit",
			"fairness",
			"file",
			"for",
			"force",
			"function",
			"generate",
			"generic",
			"group",
			"guarded",
			"if",
			"impure",
			"in",
			"inertial",
			"inout",
			"is",
			"label",
			"library",
			"linkage",
			"literal",
			"loop",
			"map",
			"mod",
			"nand",
			"new",
			"next",
			"nor",
			"not",
			"null",
			"of",
			"on",
			"open",
			"or",
			"others",
			"out",
			"package",
			"parameter",
			"port",
			"postponed",
			"procedure",
			"process",
			"property",
			"protected",
			"pure",
			"range",
			"record",
			"register",
			"reject",
			"release",
			"rem",
			"report",
			"restrict",
			"restrict_guarantee",
			"return",
			"rol",
			"ror",
			"select",
			"sequence",
			"severity",
			"shared",
			"signal",
			"sla",
			"sll",
			"sra",
			"srl",
			"strong",
			"subtype",
			"then",
			"to",
			"transport",
			"type",
			"unaffected",
			"units",
			"until",
			"use",
			"variable",
			"view",
			"vmode",
			"vprop",
			"vunit",
			"wait",
			"when",
			"while",
			"with",
			"xnor",
			"xor"
		];
		const BUILT_INS$6 = [
			"boolean",
			"bit",
			"character",
			"integer",
			"time",
			"delay_length",
			"natural",
			"positive",
			"string",
			"bit_vector",
			"file_open_kind",
			"file_open_status",
			"std_logic",
			"std_logic_vector",
			"unsigned",
			"signed",
			"boolean_vector",
			"integer_vector",
			"std_ulogic",
			"std_ulogic_vector",
			"unresolved_unsigned",
			"u_unsigned",
			"unresolved_signed",
			"u_signed",
			"real_vector",
			"time_vector"
		];
		const LITERALS$6 = [
			"false",
			"true",
			"note",
			"warning",
			"error",
			"failure",
			"line",
			"text",
			"side",
			"width"
		];
		return {
			name: "VHDL",
			case_insensitive: true,
			keywords: {
				keyword: KEYWORDS$6,
				built_in: BUILT_INS$6,
				literal: LITERALS$6
			},
			illegal: /\{/,
			contains: [
				hljs$1.C_BLOCK_COMMENT_MODE,
				hljs$1.COMMENT("--", "$"),
				hljs$1.QUOTE_STRING_MODE,
				{
					className: "number",
					begin: NUMBER_RE$2,
					relevance: 0
				},
				{
					className: "string",
					begin: "'(U|X|0|1|Z|W|L|H|-)'",
					contains: [hljs$1.BACKSLASH_ESCAPE]
				},
				{
					className: "symbol",
					begin: "'[A-Za-z](_?[A-Za-z0-9])*",
					contains: [hljs$1.BACKSLASH_ESCAPE]
				}
			]
		};
	}
	module.exports = vhdl;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/vim.js
var require_vim = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function vim(hljs$1) {
		return {
			name: "Vim Script",
			keywords: {
				$pattern: /[!#@\w]+/,
				keyword: "N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope " + "cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc " + "ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 " + "profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor " + "so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew " + "tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ " + "Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload " + "bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap " + "cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor " + "endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap " + "imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview " + "lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap " + "nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext " + "ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding " + "scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace " + "startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious " + "trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew " + "vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank",
				built_in: "synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv " + "complete_check add getwinposx getqflist getwinposy screencol " + "clearmatches empty extend getcmdpos mzeval garbagecollect setreg " + "ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable " + "shiftwidth max sinh isdirectory synID system inputrestore winline " + "atan visualmode inputlist tabpagewinnr round getregtype mapcheck " + "hasmapto histdel argidx findfile sha256 exists toupper getcmdline " + "taglist string getmatches bufnr strftime winwidth bufexists " + "strtrans tabpagebuflist setcmdpos remote_read printf setloclist " + "getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval " + "resolve libcallnr foldclosedend reverse filter has_key bufname " + "str2float strlen setline getcharmod setbufvar index searchpos " + "shellescape undofile foldclosed setqflist buflisted strchars str2nr " + "virtcol floor remove undotree remote_expr winheight gettabwinvar " + "reltime cursor tabpagenr finddir localtime acos getloclist search " + "tanh matchend rename gettabvar strdisplaywidth type abs py3eval " + "setwinvar tolower wildmenumode log10 spellsuggest bufloaded " + "synconcealed nextnonblank server2client complete settabwinvar " + "executable input wincol setmatches getftype hlID inputsave " + "searchpair or screenrow line settabvar histadd deepcopy strpart " + "remote_peek and eval getftime submatch screenchar winsaveview " + "matchadd mkdir screenattr getfontname libcall reltimestr getfsize " + "winnr invert pow getbufline byte2line soundfold repeat fnameescape " + "tagfiles sin strwidth spellbadword trunc maparg log lispindent " + "hostname setpos globpath remote_foreground getchar synIDattr " + "fnamemodify cscope_connection stridx winbufnr indent min " + "complete_add nr2char searchpairpos inputdialog values matchlist " + "items hlexists strridx browsedir expand fmod pathshorten line2byte " + "argc count getwinvar glob foldtextresult getreg foreground cosh " + "matchdelete has char2nr simplify histget searchdecl iconv " + "winrestcmd pumvisible writefile foldlevel haslocaldir keys cos " + "matchstr foldtext histnr tan tempname getcwd byteidx getbufvar " + "islocked escape eventhandler remote_send serverlist winrestview " + "synstack pyeval prevnonblank readfile cindent filereadable changenr " + "exp"
			},
			illegal: /;/,
			contains: [
				hljs$1.NUMBER_MODE,
				{
					className: "string",
					begin: "'",
					end: "'",
					illegal: "\\n"
				},
				{
					className: "string",
					begin: /"(\\"|\n\\|[^"\n])*"/
				},
				hljs$1.COMMENT("\"", "$"),
				{
					className: "variable",
					begin: /[bwtglsav]:[\w\d_]+/
				},
				{
					begin: [
						/\b(?:function|function!)/,
						/\s+/,
						hljs$1.IDENT_RE
					],
					className: {
						1: "keyword",
						3: "title"
					},
					end: "$",
					relevance: 0,
					contains: [{
						className: "params",
						begin: "\\(",
						end: "\\)"
					}]
				},
				{
					className: "symbol",
					begin: /<[\w-]+>/
				}
			]
		};
	}
	module.exports = vim;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/wasm.js
var require_wasm = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function wasm(hljs$1) {
		hljs$1.regex;
		const BLOCK_COMMENT = hljs$1.COMMENT(/\(;/, /;\)/);
		BLOCK_COMMENT.contains.push("self");
		const LINE_COMMENT = hljs$1.COMMENT(/;;/, /$/);
		const KWS = [
			"anyfunc",
			"block",
			"br",
			"br_if",
			"br_table",
			"call",
			"call_indirect",
			"data",
			"drop",
			"elem",
			"else",
			"end",
			"export",
			"func",
			"global.get",
			"global.set",
			"local.get",
			"local.set",
			"local.tee",
			"get_global",
			"get_local",
			"global",
			"if",
			"import",
			"local",
			"loop",
			"memory",
			"memory.grow",
			"memory.size",
			"module",
			"mut",
			"nop",
			"offset",
			"param",
			"result",
			"return",
			"select",
			"set_global",
			"set_local",
			"start",
			"table",
			"tee_local",
			"then",
			"type",
			"unreachable"
		];
		const FUNCTION_REFERENCE = {
			begin: [
				/(?:func|call|call_indirect)/,
				/\s+/,
				/\$[^\s)]+/
			],
			className: {
				1: "keyword",
				3: "title.function"
			}
		};
		const ARGUMENT = {
			className: "variable",
			begin: /\$[\w_]+/
		};
		const PARENS = {
			match: /(\((?!;)|\))+/,
			className: "punctuation",
			relevance: 0
		};
		const NUMBER = {
			className: "number",
			relevance: 0,
			match: /[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/
		};
		const TYPE = {
			match: /(i32|i64|f32|f64)(?!\.)/,
			className: "type"
		};
		const MATH_OPERATIONS = {
			className: "keyword",
			match: /\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/
		};
		const OFFSET_ALIGN = {
			match: [
				/(?:offset|align)/,
				/\s*/,
				/=/
			],
			className: {
				1: "keyword",
				3: "operator"
			}
		};
		return {
			name: "WebAssembly",
			keywords: {
				$pattern: /[\w.]+/,
				keyword: KWS
			},
			contains: [
				LINE_COMMENT,
				BLOCK_COMMENT,
				OFFSET_ALIGN,
				ARGUMENT,
				PARENS,
				FUNCTION_REFERENCE,
				hljs$1.QUOTE_STRING_MODE,
				TYPE,
				MATH_OPERATIONS,
				NUMBER
			]
		};
	}
	module.exports = wasm;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/wren.js
var require_wren = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function wren(hljs$1) {
		const regex = hljs$1.regex;
		const IDENT_RE$6 = /[a-zA-Z]\w*/;
		const KEYWORDS$6 = [
			"as",
			"break",
			"class",
			"construct",
			"continue",
			"else",
			"for",
			"foreign",
			"if",
			"import",
			"in",
			"is",
			"return",
			"static",
			"var",
			"while"
		];
		const LITERALS$6 = [
			"true",
			"false",
			"null"
		];
		const LANGUAGE_VARS = ["this", "super"];
		const CORE_CLASSES = [
			"Bool",
			"Class",
			"Fiber",
			"Fn",
			"List",
			"Map",
			"Null",
			"Num",
			"Object",
			"Range",
			"Sequence",
			"String",
			"System"
		];
		const OPERATORS = [
			"-",
			"~",
			/\*/,
			"%",
			/\.\.\./,
			/\.\./,
			/\+/,
			"<<",
			">>",
			">=",
			"<=",
			"<",
			">",
			/\^/,
			/!=/,
			/!/,
			/\bis\b/,
			"==",
			"&&",
			"&",
			/\|\|/,
			/\|/,
			/\?:/,
			"="
		];
		const FUNCTION = {
			relevance: 0,
			match: regex.concat(/\b(?!(if|while|for|else|super)\b)/, IDENT_RE$6, /(?=\s*[({])/),
			className: "title.function"
		};
		const FUNCTION_DEFINITION = {
			match: regex.concat(regex.either(regex.concat(/\b(?!(if|while|for|else|super)\b)/, IDENT_RE$6), regex.either(...OPERATORS)), /(?=\s*\([^)]+\)\s*\{)/),
			className: "title.function",
			starts: { contains: [{
				begin: /\(/,
				end: /\)/,
				contains: [{
					relevance: 0,
					scope: "params",
					match: IDENT_RE$6
				}]
			}] }
		};
		const CLASS_DEFINITION = {
			variants: [{ match: [
				/class\s+/,
				IDENT_RE$6,
				/\s+is\s+/,
				IDENT_RE$6
			] }, { match: [/class\s+/, IDENT_RE$6] }],
			scope: {
				2: "title.class",
				4: "title.class.inherited"
			},
			keywords: KEYWORDS$6
		};
		const OPERATOR = {
			relevance: 0,
			match: regex.either(...OPERATORS),
			className: "operator"
		};
		const TRIPLE_STRING = {
			className: "string",
			begin: /"""/,
			end: /"""/
		};
		const PROPERTY = {
			className: "property",
			begin: regex.concat(/\./, regex.lookahead(IDENT_RE$6)),
			end: IDENT_RE$6,
			excludeBegin: true,
			relevance: 0
		};
		const FIELD = {
			relevance: 0,
			match: regex.concat(/\b_/, IDENT_RE$6),
			scope: "variable"
		};
		const CLASS_REFERENCE = {
			relevance: 0,
			match: /\b[A-Z]+[a-z]+([A-Z]+[a-z]+)*/,
			scope: "title.class",
			keywords: { _: CORE_CLASSES }
		};
		const NUMBER = hljs$1.C_NUMBER_MODE;
		const SETTER = {
			match: [
				IDENT_RE$6,
				/\s*/,
				/=/,
				/\s*/,
				/\(/,
				IDENT_RE$6,
				/\)\s*\{/
			],
			scope: {
				1: "title.function",
				3: "operator",
				6: "params"
			}
		};
		const COMMENT_DOCS = hljs$1.COMMENT(/\/\*\*/, /\*\//, { contains: [{
			match: /@[a-z]+/,
			scope: "doctag"
		}, "self"] });
		const SUBST = {
			scope: "subst",
			begin: /%\(/,
			end: /\)/,
			contains: [
				NUMBER,
				CLASS_REFERENCE,
				FUNCTION,
				FIELD,
				OPERATOR
			]
		};
		const STRING = {
			scope: "string",
			begin: /"/,
			end: /"/,
			contains: [SUBST, {
				scope: "char.escape",
				variants: [
					{ match: /\\\\|\\["0%abefnrtv]/ },
					{ match: /\\x[0-9A-F]{2}/ },
					{ match: /\\u[0-9A-F]{4}/ },
					{ match: /\\U[0-9A-F]{8}/ }
				]
			}]
		};
		SUBST.contains.push(STRING);
		const ALL_KWS = [
			...KEYWORDS$6,
			...LANGUAGE_VARS,
			...LITERALS$6
		];
		const VARIABLE = {
			relevance: 0,
			match: regex.concat("\\b(?!", ALL_KWS.join("|"), "\\b)", /[a-zA-Z_]\w*(?:[?!]|\b)/),
			className: "variable"
		};
		const ATTRIBUTE = {
			scope: "comment",
			variants: [{
				begin: [/#!?/, /[A-Za-z_]+(?=\()/],
				beginScope: {},
				keywords: { literal: LITERALS$6 },
				contains: [],
				end: /\)/
			}, {
				begin: [/#!?/, /[A-Za-z_]+/],
				beginScope: {},
				end: /$/
			}]
		};
		return {
			name: "Wren",
			keywords: {
				keyword: KEYWORDS$6,
				"variable.language": LANGUAGE_VARS,
				literal: LITERALS$6
			},
			contains: [
				ATTRIBUTE,
				NUMBER,
				STRING,
				TRIPLE_STRING,
				COMMENT_DOCS,
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				CLASS_REFERENCE,
				CLASS_DEFINITION,
				SETTER,
				FUNCTION_DEFINITION,
				FUNCTION,
				OPERATOR,
				FIELD,
				PROPERTY,
				VARIABLE
			]
		};
	}
	module.exports = wren;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/x86asm.js
var require_x86asm = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function x86asm(hljs$1) {
		return {
			name: "Intel x86 Assembly",
			case_insensitive: true,
			keywords: {
				$pattern: "[.%]?" + hljs$1.IDENT_RE,
				keyword: "lock rep repe repz repne repnz xaquire xrelease bnd nobnd " + "aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63",
				built_in: "ip eip rip " + "al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b " + "ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w " + "eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d " + "rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 " + "cs ds es fs gs ss " + "st st0 st1 st2 st3 st4 st5 st6 st7 " + "mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 " + "xmm0  xmm1  xmm2  xmm3  xmm4  xmm5  xmm6  xmm7  xmm8  xmm9 xmm10  xmm11 xmm12 xmm13 xmm14 xmm15 " + "xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 " + "ymm0  ymm1  ymm2  ymm3  ymm4  ymm5  ymm6  ymm7  ymm8  ymm9 ymm10  ymm11 ymm12 ymm13 ymm14 ymm15 " + "ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 " + "zmm0  zmm1  zmm2  zmm3  zmm4  zmm5  zmm6  zmm7  zmm8  zmm9 zmm10  zmm11 zmm12 zmm13 zmm14 zmm15 " + "zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 " + "k0 k1 k2 k3 k4 k5 k6 k7 " + "bnd0 bnd1 bnd2 bnd3 " + "cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 " + "r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b " + "r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d " + "r0h r1h r2h r3h " + "r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l " + "db dw dd dq dt ddq do dy dz " + "resb resw resd resq rest resdq reso resy resz " + "incbin equ times " + "byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr",
				meta: "%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif " + "%if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep " + "%endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment " + ".nolist " + "__FILE__ __LINE__ __SECT__  __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ " + "__UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__  __PASS__ struc endstruc istruc at iend " + "align alignb sectalign daz nodaz up down zero default option assume public " + "bits use16 use32 use64 default section segment absolute extern global common cpu float " + "__utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ " + "__float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ " + "__Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e " + "float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"
			},
			contains: [
				hljs$1.COMMENT(";", "$", { relevance: 0 }),
				{
					className: "number",
					variants: [
						{
							begin: "\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|" + "(0[Xx])?[0-9][0-9_]*(\\.[0-9_]*)?(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",
							relevance: 0
						},
						{
							begin: "\\$[0-9][0-9A-Fa-f]*",
							relevance: 0
						},
						{ begin: "\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b" },
						{ begin: "\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b" }
					]
				},
				hljs$1.QUOTE_STRING_MODE,
				{
					className: "string",
					variants: [{
						begin: "'",
						end: "[^\\\\]'"
					}, {
						begin: "`",
						end: "[^\\\\]`"
					}],
					relevance: 0
				},
				{
					className: "symbol",
					variants: [{ begin: "^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)" }, { begin: "^\\s*%%[A-Za-z0-9_$#@~.?]*:" }],
					relevance: 0
				},
				{
					className: "subst",
					begin: "%[0-9]+",
					relevance: 0
				},
				{
					className: "subst",
					begin: "%!S+",
					relevance: 0
				},
				{
					className: "meta",
					begin: /^\s*\.[\w_-]+/
				}
			]
		};
	}
	module.exports = x86asm;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/xl.js
var require_xl = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function xl(hljs$1) {
		const KWS = [
			"if",
			"then",
			"else",
			"do",
			"while",
			"until",
			"for",
			"loop",
			"import",
			"with",
			"is",
			"as",
			"where",
			"when",
			"by",
			"data",
			"constant",
			"integer",
			"real",
			"text",
			"name",
			"boolean",
			"symbol",
			"infix",
			"prefix",
			"postfix",
			"block",
			"tree"
		];
		const BUILT_INS$6 = [
			"in",
			"mod",
			"rem",
			"and",
			"or",
			"xor",
			"not",
			"abs",
			"sign",
			"floor",
			"ceil",
			"sqrt",
			"sin",
			"cos",
			"tan",
			"asin",
			"acos",
			"atan",
			"exp",
			"expm1",
			"log",
			"log2",
			"log10",
			"log1p",
			"pi",
			"at",
			"text_length",
			"text_range",
			"text_find",
			"text_replace",
			"contains",
			"page",
			"slide",
			"basic_slide",
			"title_slide",
			"title",
			"subtitle",
			"fade_in",
			"fade_out",
			"fade_at",
			"clear_color",
			"color",
			"line_color",
			"line_width",
			"texture_wrap",
			"texture_transform",
			"texture",
			"scale_?x",
			"scale_?y",
			"scale_?z?",
			"translate_?x",
			"translate_?y",
			"translate_?z?",
			"rotate_?x",
			"rotate_?y",
			"rotate_?z?",
			"rectangle",
			"circle",
			"ellipse",
			"sphere",
			"path",
			"line_to",
			"move_to",
			"quad_to",
			"curve_to",
			"theme",
			"background",
			"contents",
			"locally",
			"time",
			"mouse_?x",
			"mouse_?y",
			"mouse_buttons"
		];
		const BUILTIN_MODULES = [
			"ObjectLoader",
			"Animate",
			"MovieCredits",
			"Slides",
			"Filters",
			"Shading",
			"Materials",
			"LensFlare",
			"Mapping",
			"VLCAudioVideo",
			"StereoDecoder",
			"PointCloud",
			"NetworkAccess",
			"RemoteControl",
			"RegExp",
			"ChromaKey",
			"Snowfall",
			"NodeJS",
			"Speech",
			"Charts"
		];
		const LITERALS$6 = [
			"true",
			"false",
			"nil"
		];
		const KEYWORDS$6 = {
			$pattern: /[a-zA-Z][a-zA-Z0-9_?]*/,
			keyword: KWS,
			literal: LITERALS$6,
			built_in: BUILT_INS$6.concat(BUILTIN_MODULES)
		};
		const DOUBLE_QUOTE_TEXT = {
			className: "string",
			begin: "\"",
			end: "\"",
			illegal: "\\n"
		};
		const SINGLE_QUOTE_TEXT = {
			className: "string",
			begin: "'",
			end: "'",
			illegal: "\\n"
		};
		const LONG_TEXT = {
			className: "string",
			begin: "<<",
			end: ">>"
		};
		const BASED_NUMBER = {
			className: "number",
			begin: "[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?"
		};
		const IMPORT = {
			beginKeywords: "import",
			end: "$",
			keywords: KEYWORDS$6,
			contains: [DOUBLE_QUOTE_TEXT]
		};
		const FUNCTION_DEFINITION = {
			className: "function",
			begin: /[a-z][^\n]*->/,
			returnBegin: true,
			end: /->/,
			contains: [hljs$1.inherit(hljs$1.TITLE_MODE, { starts: {
				endsWithParent: true,
				keywords: KEYWORDS$6
			} })]
		};
		return {
			name: "XL",
			aliases: ["tao"],
			keywords: KEYWORDS$6,
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.C_BLOCK_COMMENT_MODE,
				DOUBLE_QUOTE_TEXT,
				SINGLE_QUOTE_TEXT,
				LONG_TEXT,
				FUNCTION_DEFINITION,
				IMPORT,
				BASED_NUMBER,
				hljs$1.NUMBER_MODE
			]
		};
	}
	module.exports = xl;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/xquery.js
var require_xquery = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function xquery(_hljs) {
		const KEYWORDS$6 = [
			"module",
			"schema",
			"namespace",
			"boundary-space",
			"preserve",
			"no-preserve",
			"strip",
			"default",
			"collation",
			"base-uri",
			"ordering",
			"context",
			"decimal-format",
			"decimal-separator",
			"copy-namespaces",
			"empty-sequence",
			"except",
			"exponent-separator",
			"external",
			"grouping-separator",
			"inherit",
			"no-inherit",
			"lax",
			"minus-sign",
			"per-mille",
			"percent",
			"schema-attribute",
			"schema-element",
			"strict",
			"unordered",
			"zero-digit",
			"declare",
			"import",
			"option",
			"function",
			"validate",
			"variable",
			"for",
			"at",
			"in",
			"let",
			"where",
			"order",
			"group",
			"by",
			"return",
			"if",
			"then",
			"else",
			"tumbling",
			"sliding",
			"window",
			"start",
			"when",
			"only",
			"end",
			"previous",
			"next",
			"stable",
			"ascending",
			"descending",
			"allowing",
			"empty",
			"greatest",
			"least",
			"some",
			"every",
			"satisfies",
			"switch",
			"case",
			"typeswitch",
			"try",
			"catch",
			"and",
			"or",
			"to",
			"union",
			"intersect",
			"instance",
			"of",
			"treat",
			"as",
			"castable",
			"cast",
			"map",
			"array",
			"delete",
			"insert",
			"into",
			"replace",
			"value",
			"rename",
			"copy",
			"modify",
			"update"
		];
		const TYPES$6 = [
			"item",
			"document-node",
			"node",
			"attribute",
			"document",
			"element",
			"comment",
			"namespace",
			"namespace-node",
			"processing-instruction",
			"text",
			"construction",
			"xs:anyAtomicType",
			"xs:untypedAtomic",
			"xs:duration",
			"xs:time",
			"xs:decimal",
			"xs:float",
			"xs:double",
			"xs:gYearMonth",
			"xs:gYear",
			"xs:gMonthDay",
			"xs:gMonth",
			"xs:gDay",
			"xs:boolean",
			"xs:base64Binary",
			"xs:hexBinary",
			"xs:anyURI",
			"xs:QName",
			"xs:NOTATION",
			"xs:dateTime",
			"xs:dateTimeStamp",
			"xs:date",
			"xs:string",
			"xs:normalizedString",
			"xs:token",
			"xs:language",
			"xs:NMTOKEN",
			"xs:Name",
			"xs:NCName",
			"xs:ID",
			"xs:IDREF",
			"xs:ENTITY",
			"xs:integer",
			"xs:nonPositiveInteger",
			"xs:negativeInteger",
			"xs:long",
			"xs:int",
			"xs:short",
			"xs:byte",
			"xs:nonNegativeInteger",
			"xs:unisignedLong",
			"xs:unsignedInt",
			"xs:unsignedShort",
			"xs:unsignedByte",
			"xs:positiveInteger",
			"xs:yearMonthDuration",
			"xs:dayTimeDuration"
		];
		const LITERALS$6 = [
			"eq",
			"ne",
			"lt",
			"le",
			"gt",
			"ge",
			"is",
			"self::",
			"child::",
			"descendant::",
			"descendant-or-self::",
			"attribute::",
			"following::",
			"following-sibling::",
			"parent::",
			"ancestor::",
			"ancestor-or-self::",
			"preceding::",
			"preceding-sibling::",
			"NaN"
		];
		const BUILT_IN = {
			className: "built_in",
			variants: [
				{
					begin: /\barray:/,
					end: /(?:append|filter|flatten|fold-(?:left|right)|for-each(?:-pair)?|get|head|insert-before|join|put|remove|reverse|size|sort|subarray|tail)\b/
				},
				{
					begin: /\bmap:/,
					end: /(?:contains|entry|find|for-each|get|keys|merge|put|remove|size)\b/
				},
				{
					begin: /\bmath:/,
					end: /(?:a(?:cos|sin|tan[2]?)|cos|exp(?:10)?|log(?:10)?|pi|pow|sin|sqrt|tan)\b/
				},
				{
					begin: /\bop:/,
					end: /\(/,
					excludeEnd: true
				},
				{
					begin: /\bfn:/,
					end: /\(/,
					excludeEnd: true
				},
				{ begin: /[^</$:'"-]\b(?:abs|accumulator-(?:after|before)|adjust-(?:date(?:Time)?|time)-to-timezone|analyze-string|apply|available-(?:environment-variables|system-properties)|avg|base-uri|boolean|ceiling|codepoints?-(?:equal|to-string)|collation-key|collection|compare|concat|contains(?:-token)?|copy-of|count|current(?:-)?(?:date(?:Time)?|time|group(?:ing-key)?|output-uri|merge-(?:group|key))?data|dateTime|days?-from-(?:date(?:Time)?|duration)|deep-equal|default-(?:collation|language)|distinct-values|document(?:-uri)?|doc(?:-available)?|element-(?:available|with-id)|empty|encode-for-uri|ends-with|environment-variable|error|escape-html-uri|exactly-one|exists|false|filter|floor|fold-(?:left|right)|for-each(?:-pair)?|format-(?:date(?:Time)?|time|integer|number)|function-(?:arity|available|lookup|name)|generate-id|has-children|head|hours-from-(?:dateTime|duration|time)|id(?:ref)?|implicit-timezone|in-scope-prefixes|index-of|innermost|insert-before|iri-to-uri|json-(?:doc|to-xml)|key|lang|last|load-xquery-module|local-name(?:-from-QName)?|(?:lower|upper)-case|matches|max|minutes-from-(?:dateTime|duration|time)|min|months?-from-(?:date(?:Time)?|duration)|name(?:space-uri-?(?:for-prefix|from-QName)?)?|nilled|node-name|normalize-(?:space|unicode)|not|number|one-or-more|outermost|parse-(?:ietf-date|json)|path|position|(?:prefix-from-)?QName|random-number-generator|regex-group|remove|replace|resolve-(?:QName|uri)|reverse|root|round(?:-half-to-even)?|seconds-from-(?:dateTime|duration|time)|snapshot|sort|starts-with|static-base-uri|stream-available|string-?(?:join|length|to-codepoints)?|subsequence|substring-?(?:after|before)?|sum|system-property|tail|timezone-from-(?:date(?:Time)?|time)|tokenize|trace|trans(?:form|late)|true|type-available|unordered|unparsed-(?:entity|text)?-?(?:public-id|uri|available|lines)?|uri-collection|xml-to-json|years?-from-(?:date(?:Time)?|duration)|zero-or-one)\b/ },
				{
					begin: /\blocal:/,
					end: /\(/,
					excludeEnd: true
				},
				{
					begin: /\bzip:/,
					end: /(?:zip-file|(?:xml|html|text|binary)-entry| (?:update-)?entries)\b/
				},
				{
					begin: /\b(?:util|db|functx|app|xdmp|xmldb):/,
					end: /\(/,
					excludeEnd: true
				}
			]
		};
		const TITLE = {
			className: "title",
			begin: /\bxquery version "[13]\.[01]"\s?(?:encoding ".+")?/,
			end: /;/
		};
		const VAR = {
			className: "variable",
			begin: /[$][\w\-:]+/
		};
		const NUMBER = {
			className: "number",
			begin: /(\b0[0-7_]+)|(\b0x[0-9a-fA-F_]+)|(\b[1-9][0-9_]*(\.[0-9_]+)?)|[0_]\b/,
			relevance: 0
		};
		const STRING = {
			className: "string",
			variants: [{
				begin: /"/,
				end: /"/,
				contains: [{
					begin: /""/,
					relevance: 0
				}]
			}, {
				begin: /'/,
				end: /'/,
				contains: [{
					begin: /''/,
					relevance: 0
				}]
			}]
		};
		const ANNOTATION = {
			className: "meta",
			begin: /%[\w\-:]+/
		};
		const COMMENT$2 = {
			className: "comment",
			begin: /\(:/,
			end: /:\)/,
			relevance: 10,
			contains: [{
				className: "doctag",
				begin: /@\w+/
			}]
		};
		const COMPUTED = {
			beginKeywords: "element attribute comment document processing-instruction",
			end: /\{/,
			excludeEnd: true
		};
		const DIRECT = {
			begin: /<([\w._:-]+)(\s+\S*=('|").*('|"))?>/,
			end: /(\/[\w._:-]+>)/,
			subLanguage: "xml",
			contains: [{
				begin: /\{/,
				end: /\}/,
				subLanguage: "xquery"
			}, "self"]
		};
		const CONTAINS = [
			VAR,
			BUILT_IN,
			STRING,
			NUMBER,
			COMMENT$2,
			ANNOTATION,
			TITLE,
			COMPUTED,
			DIRECT
		];
		return {
			name: "XQuery",
			aliases: [
				"xpath",
				"xq",
				"xqm"
			],
			case_insensitive: false,
			illegal: /(proc)|(abstract)|(extends)|(until)|(#)/,
			keywords: {
				$pattern: /[a-zA-Z$][a-zA-Z0-9_:-]*/,
				keyword: KEYWORDS$6,
				type: TYPES$6,
				literal: LITERALS$6
			},
			contains: CONTAINS
		};
	}
	module.exports = xquery;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/languages/zephir.js
var require_zephir = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	/** @type LanguageFn */
	function zephir(hljs$1) {
		const STRING = {
			className: "string",
			contains: [hljs$1.BACKSLASH_ESCAPE],
			variants: [hljs$1.inherit(hljs$1.APOS_STRING_MODE, { illegal: null }), hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { illegal: null })]
		};
		const TITLE_MODE$2 = hljs$1.UNDERSCORE_TITLE_MODE;
		const NUMBER = { variants: [hljs$1.BINARY_NUMBER_MODE, hljs$1.C_NUMBER_MODE] };
		const KEYWORDS$6 = "namespace class interface use extends " + "function return " + "abstract final public protected private static deprecated " + "throw try catch Exception " + "echo empty isset instanceof unset " + "let var new const self " + "require " + "if else elseif switch case default " + "do while loop for continue break " + "likely unlikely " + "__LINE__ __FILE__ __DIR__ __FUNCTION__ __CLASS__ __TRAIT__ __METHOD__ __NAMESPACE__ " + "array boolean float double integer object resource string " + "char long unsigned bool int uint ulong uchar " + "true false null undefined";
		return {
			name: "Zephir",
			aliases: ["zep"],
			keywords: KEYWORDS$6,
			contains: [
				hljs$1.C_LINE_COMMENT_MODE,
				hljs$1.COMMENT(/\/\*/, /\*\//, { contains: [{
					className: "doctag",
					begin: /@[A-Za-z]+/
				}] }),
				{
					className: "string",
					begin: /<<<['"]?\w+['"]?$/,
					end: /^\w+;/,
					contains: [hljs$1.BACKSLASH_ESCAPE]
				},
				{ begin: /(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/ },
				{
					className: "function",
					beginKeywords: "function fn",
					end: /[;{]/,
					excludeEnd: true,
					illegal: /\$|\[|%/,
					contains: [TITLE_MODE$2, {
						className: "params",
						begin: /\(/,
						end: /\)/,
						keywords: KEYWORDS$6,
						contains: [
							"self",
							hljs$1.C_BLOCK_COMMENT_MODE,
							STRING,
							NUMBER
						]
					}]
				},
				{
					className: "class",
					beginKeywords: "class interface",
					end: /\{/,
					excludeEnd: true,
					illegal: /[:($"]/,
					contains: [{ beginKeywords: "extends implements" }, TITLE_MODE$2]
				},
				{
					beginKeywords: "namespace",
					end: /;/,
					illegal: /[.']/,
					contains: [TITLE_MODE$2]
				},
				{
					beginKeywords: "use",
					end: /;/,
					contains: [TITLE_MODE$2]
				},
				{ begin: /=>/ },
				STRING,
				NUMBER
			]
		};
	}
	module.exports = zephir;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/lib/index.js
var require_lib = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	var hljs = require_core$1();
	hljs.registerLanguage("1c", require__1c());
	hljs.registerLanguage("abnf", require_abnf());
	hljs.registerLanguage("accesslog", require_accesslog());
	hljs.registerLanguage("actionscript", require_actionscript());
	hljs.registerLanguage("ada", require_ada());
	hljs.registerLanguage("angelscript", require_angelscript());
	hljs.registerLanguage("apache", require_apache());
	hljs.registerLanguage("applescript", require_applescript());
	hljs.registerLanguage("arcade", require_arcade());
	hljs.registerLanguage("arduino", require_arduino());
	hljs.registerLanguage("armasm", require_armasm());
	hljs.registerLanguage("xml", require_xml());
	hljs.registerLanguage("asciidoc", require_asciidoc());
	hljs.registerLanguage("aspectj", require_aspectj());
	hljs.registerLanguage("autohotkey", require_autohotkey());
	hljs.registerLanguage("autoit", require_autoit());
	hljs.registerLanguage("avrasm", require_avrasm());
	hljs.registerLanguage("awk", require_awk());
	hljs.registerLanguage("axapta", require_axapta());
	hljs.registerLanguage("bash", require_bash());
	hljs.registerLanguage("basic", require_basic());
	hljs.registerLanguage("bnf", require_bnf());
	hljs.registerLanguage("brainfuck", require_brainfuck());
	hljs.registerLanguage("c", require_c());
	hljs.registerLanguage("cal", require_cal());
	hljs.registerLanguage("capnproto", require_capnproto());
	hljs.registerLanguage("ceylon", require_ceylon());
	hljs.registerLanguage("clean", require_clean());
	hljs.registerLanguage("clojure", require_clojure());
	hljs.registerLanguage("clojure-repl", require_clojure_repl());
	hljs.registerLanguage("cmake", require_cmake());
	hljs.registerLanguage("coffeescript", require_coffeescript());
	hljs.registerLanguage("coq", require_coq());
	hljs.registerLanguage("cos", require_cos());
	hljs.registerLanguage("cpp", require_cpp());
	hljs.registerLanguage("crmsh", require_crmsh());
	hljs.registerLanguage("crystal", require_crystal());
	hljs.registerLanguage("csharp", require_csharp());
	hljs.registerLanguage("csp", require_csp());
	hljs.registerLanguage("css", require_css());
	hljs.registerLanguage("d", require_d());
	hljs.registerLanguage("markdown", require_markdown());
	hljs.registerLanguage("dart", require_dart());
	hljs.registerLanguage("delphi", require_delphi());
	hljs.registerLanguage("diff", require_diff());
	hljs.registerLanguage("django", require_django());
	hljs.registerLanguage("dns", require_dns());
	hljs.registerLanguage("dockerfile", require_dockerfile());
	hljs.registerLanguage("dos", require_dos());
	hljs.registerLanguage("dsconfig", require_dsconfig());
	hljs.registerLanguage("dts", require_dts());
	hljs.registerLanguage("dust", require_dust());
	hljs.registerLanguage("ebnf", require_ebnf());
	hljs.registerLanguage("elixir", require_elixir());
	hljs.registerLanguage("elm", require_elm());
	hljs.registerLanguage("ruby", require_ruby());
	hljs.registerLanguage("erb", require_erb());
	hljs.registerLanguage("erlang-repl", require_erlang_repl());
	hljs.registerLanguage("erlang", require_erlang());
	hljs.registerLanguage("excel", require_excel());
	hljs.registerLanguage("fix", require_fix());
	hljs.registerLanguage("flix", require_flix());
	hljs.registerLanguage("fortran", require_fortran());
	hljs.registerLanguage("fsharp", require_fsharp());
	hljs.registerLanguage("gams", require_gams());
	hljs.registerLanguage("gauss", require_gauss());
	hljs.registerLanguage("gcode", require_gcode());
	hljs.registerLanguage("gherkin", require_gherkin());
	hljs.registerLanguage("glsl", require_glsl());
	hljs.registerLanguage("gml", require_gml());
	hljs.registerLanguage("go", require_go());
	hljs.registerLanguage("golo", require_golo());
	hljs.registerLanguage("gradle", require_gradle());
	hljs.registerLanguage("graphql", require_graphql());
	hljs.registerLanguage("groovy", require_groovy());
	hljs.registerLanguage("haml", require_haml());
	hljs.registerLanguage("handlebars", require_handlebars());
	hljs.registerLanguage("haskell", require_haskell());
	hljs.registerLanguage("haxe", require_haxe());
	hljs.registerLanguage("hsp", require_hsp());
	hljs.registerLanguage("http", require_http());
	hljs.registerLanguage("hy", require_hy());
	hljs.registerLanguage("inform7", require_inform7());
	hljs.registerLanguage("ini", require_ini());
	hljs.registerLanguage("irpf90", require_irpf90());
	hljs.registerLanguage("isbl", require_isbl());
	hljs.registerLanguage("java", require_java());
	hljs.registerLanguage("javascript", require_javascript());
	hljs.registerLanguage("jboss-cli", require_jboss_cli());
	hljs.registerLanguage("json", require_json());
	hljs.registerLanguage("julia", require_julia());
	hljs.registerLanguage("julia-repl", require_julia_repl());
	hljs.registerLanguage("kotlin", require_kotlin());
	hljs.registerLanguage("lasso", require_lasso());
	hljs.registerLanguage("latex", require_latex());
	hljs.registerLanguage("ldif", require_ldif());
	hljs.registerLanguage("leaf", require_leaf());
	hljs.registerLanguage("less", require_less());
	hljs.registerLanguage("lisp", require_lisp());
	hljs.registerLanguage("livecodeserver", require_livecodeserver());
	hljs.registerLanguage("livescript", require_livescript());
	hljs.registerLanguage("llvm", require_llvm());
	hljs.registerLanguage("lsl", require_lsl());
	hljs.registerLanguage("lua", require_lua());
	hljs.registerLanguage("makefile", require_makefile());
	hljs.registerLanguage("mathematica", require_mathematica());
	hljs.registerLanguage("matlab", require_matlab());
	hljs.registerLanguage("maxima", require_maxima());
	hljs.registerLanguage("mel", require_mel());
	hljs.registerLanguage("mercury", require_mercury());
	hljs.registerLanguage("mipsasm", require_mipsasm());
	hljs.registerLanguage("mizar", require_mizar());
	hljs.registerLanguage("perl", require_perl());
	hljs.registerLanguage("mojolicious", require_mojolicious());
	hljs.registerLanguage("monkey", require_monkey());
	hljs.registerLanguage("moonscript", require_moonscript());
	hljs.registerLanguage("n1ql", require_n1ql());
	hljs.registerLanguage("nestedtext", require_nestedtext());
	hljs.registerLanguage("nginx", require_nginx());
	hljs.registerLanguage("nim", require_nim());
	hljs.registerLanguage("nix", require_nix());
	hljs.registerLanguage("node-repl", require_node_repl());
	hljs.registerLanguage("nsis", require_nsis());
	hljs.registerLanguage("objectivec", require_objectivec());
	hljs.registerLanguage("ocaml", require_ocaml());
	hljs.registerLanguage("openscad", require_openscad());
	hljs.registerLanguage("oxygene", require_oxygene());
	hljs.registerLanguage("parser3", require_parser3());
	hljs.registerLanguage("pf", require_pf());
	hljs.registerLanguage("pgsql", require_pgsql());
	hljs.registerLanguage("php", require_php());
	hljs.registerLanguage("php-template", require_php_template());
	hljs.registerLanguage("plaintext", require_plaintext());
	hljs.registerLanguage("pony", require_pony());
	hljs.registerLanguage("powershell", require_powershell());
	hljs.registerLanguage("processing", require_processing());
	hljs.registerLanguage("profile", require_profile());
	hljs.registerLanguage("prolog", require_prolog());
	hljs.registerLanguage("properties", require_properties());
	hljs.registerLanguage("protobuf", require_protobuf());
	hljs.registerLanguage("puppet", require_puppet());
	hljs.registerLanguage("purebasic", require_purebasic());
	hljs.registerLanguage("python", require_python());
	hljs.registerLanguage("python-repl", require_python_repl());
	hljs.registerLanguage("q", require_q());
	hljs.registerLanguage("qml", require_qml());
	hljs.registerLanguage("r", require_r());
	hljs.registerLanguage("reasonml", require_reasonml());
	hljs.registerLanguage("rib", require_rib());
	hljs.registerLanguage("roboconf", require_roboconf());
	hljs.registerLanguage("routeros", require_routeros());
	hljs.registerLanguage("rsl", require_rsl());
	hljs.registerLanguage("ruleslanguage", require_ruleslanguage());
	hljs.registerLanguage("rust", require_rust());
	hljs.registerLanguage("sas", require_sas());
	hljs.registerLanguage("scala", require_scala());
	hljs.registerLanguage("scheme", require_scheme());
	hljs.registerLanguage("scilab", require_scilab());
	hljs.registerLanguage("scss", require_scss());
	hljs.registerLanguage("shell", require_shell());
	hljs.registerLanguage("smali", require_smali());
	hljs.registerLanguage("smalltalk", require_smalltalk());
	hljs.registerLanguage("sml", require_sml());
	hljs.registerLanguage("sqf", require_sqf());
	hljs.registerLanguage("sql", require_sql());
	hljs.registerLanguage("stan", require_stan());
	hljs.registerLanguage("stata", require_stata());
	hljs.registerLanguage("step21", require_step21());
	hljs.registerLanguage("stylus", require_stylus());
	hljs.registerLanguage("subunit", require_subunit());
	hljs.registerLanguage("swift", require_swift());
	hljs.registerLanguage("taggerscript", require_taggerscript());
	hljs.registerLanguage("yaml", require_yaml());
	hljs.registerLanguage("tap", require_tap());
	hljs.registerLanguage("tcl", require_tcl());
	hljs.registerLanguage("thrift", require_thrift());
	hljs.registerLanguage("tp", require_tp());
	hljs.registerLanguage("twig", require_twig());
	hljs.registerLanguage("typescript", require_typescript());
	hljs.registerLanguage("vala", require_vala());
	hljs.registerLanguage("vbnet", require_vbnet());
	hljs.registerLanguage("vbscript", require_vbscript());
	hljs.registerLanguage("vbscript-html", require_vbscript_html());
	hljs.registerLanguage("verilog", require_verilog());
	hljs.registerLanguage("vhdl", require_vhdl());
	hljs.registerLanguage("vim", require_vim());
	hljs.registerLanguage("wasm", require_wasm());
	hljs.registerLanguage("wren", require_wren());
	hljs.registerLanguage("x86asm", require_x86asm());
	hljs.registerLanguage("xl", require_xl());
	hljs.registerLanguage("xquery", require_xquery());
	hljs.registerLanguage("zephir", require_zephir());
	hljs.HighlightJS = hljs;
	hljs.default = hljs;
	module.exports = hljs;
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/highlight.js/es/index.js
var import_lib, es_default;
var init_es = __esmMin((() => {
	import_lib = /* @__PURE__ */ __toESM(require_lib(), 1);
	es_default = import_lib.default;
}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/dist/CopyButton.js
var __decorate$12, CopyButton;
var init_CopyButton = __esmMin((() => {
	init_lit();
	init_decorators();
	init_lucide();
	init_Button();
	init_i18n$1();
	init_icons();
	__decorate$12 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	CopyButton = class CopyButton$1 extends i {
		constructor() {
			super(...arguments);
			this.text = "";
			this.title = i18n("Copy");
			this.showText = false;
			this.copied = false;
		}
		createRenderRoot() {
			return this;
		}
		async handleCopy() {
			try {
				await navigator.clipboard.writeText(this.text);
				this.copied = true;
				setTimeout(() => {
					this.copied = false;
				}, 2e3);
			} catch (err) {
				console.error("Failed to copy:", err);
			}
		}
		render() {
			return Button({
				variant: "ghost",
				size: "sm",
				onClick: () => this.handleCopy(),
				title: this.title,
				children: x`
            ${this.copied ? icon(Check, "sm") : icon(Copy, "sm")}
            ${this.copied && this.showText ? x`<span>${i18n("Copied!")}</span>` : ""}
         `
			});
		}
	};
	__decorate$12([n$1()], CopyButton.prototype, "text", void 0);
	__decorate$12([n$1()], CopyButton.prototype, "title", void 0);
	__decorate$12([n$1({
		type: Boolean,
		attribute: "show-text"
	})], CopyButton.prototype, "showText", void 0);
	__decorate$12([r()], CopyButton.prototype, "copied", void 0);
	CopyButton = __decorate$12([t("copy-button")], CopyButton);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/artifacts/Console.js
var __decorate$11, Console;
var init_Console = __esmMin((() => {
	init_dist();
	init_CopyButton();
	init_lit();
	init_decorators();
	init_ref$2();
	init_repeat();
	init_lucide();
	init_i18n();
	__decorate$11 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	Console = class Console$1 extends i {
		constructor() {
			super(...arguments);
			this.logs = [];
			this.expanded = false;
			this.autoscroll = true;
			this.logsContainerRef = e();
		}
		createRenderRoot() {
			return this;
		}
		updated() {
			if (this.autoscroll && this.expanded && this.logsContainerRef.value) {
				this.logsContainerRef.value.scrollTop = this.logsContainerRef.value.scrollHeight;
			}
		}
		getLogsText() {
			return this.logs.map((l$3) => `[${l$3.type}] ${l$3.text}`).join("\n");
		}
		render() {
			const errorCount = this.logs.filter((l$3) => l$3.type === "error").length;
			const summary = errorCount > 0 ? `${i18n("console")} (${errorCount} ${errorCount === 1 ? "error" : "errors"})` : `${i18n("console")} (${this.logs.length})`;
			return x`
			<div class="border-t border-border p-2">
				<div class="flex items-center gap-2 w-full">
					<button
						@click=${() => {
				this.expanded = !this.expanded;
			}}
						class="flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors flex-1 text-left"
					>
						${icon(this.expanded ? ChevronDown : ChevronRight, "sm")}
						<span>${summary}</span>
					</button>
					${this.expanded ? x`
							<button
								@click=${() => {
				this.autoscroll = !this.autoscroll;
			}}
								class="p-1 rounded transition-colors ${this.autoscroll ? "bg-accent text-accent-foreground" : "hover:bg-muted"}"
								title=${this.autoscroll ? i18n("Autoscroll enabled") : i18n("Autoscroll disabled")}
							>
								${icon(this.autoscroll ? ChevronsDown : Lock, "sm")}
							</button>
							<copy-button .text=${this.getLogsText()} title=${i18n("Copy logs")} .showText=${false} class="!bg-transparent hover:!bg-accent"></copy-button>
						` : ""}
				</div>
				${this.expanded ? x`
						<div class="max-h-48 overflow-y-auto space-y-1 mt-2" ${n(this.logsContainerRef)}>
							${c(this.logs, (_log, index) => index, (log) => x`
									<div class="text-xs font-mono ${log.type === "error" ? "text-destructive" : "text-muted-foreground"}">
										[${log.type}] ${log.text}
									</div>
								`)}
						</div>
					` : ""}
			</div>
		`;
		}
	};
	__decorate$11([n$1({ attribute: false })], Console.prototype, "logs", void 0);
	__decorate$11([r()], Console.prototype, "expanded", void 0);
	__decorate$11([r()], Console.prototype, "autoscroll", void 0);
	Console = __decorate$11([t("artifact-console")], Console);
}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/dist/PreviewCodeToggle.js
var __decorate$10, PreviewCodeToggle;
var init_PreviewCodeToggle = __esmMin((() => {
	init_lit();
	init_decorators();
	init_lucide();
	init_i18n$1();
	init_icons();
	__decorate$10 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	PreviewCodeToggle = class PreviewCodeToggle$1 extends i {
		constructor() {
			super(...arguments);
			this.mode = "preview";
		}
		createRenderRoot() {
			return this;
		}
		setMode(mode) {
			if (this.mode !== mode) {
				this.mode = mode;
				this.dispatchEvent(new CustomEvent("mode-change", {
					detail: this.mode,
					bubbles: true
				}));
			}
		}
		render() {
			const isPreview = this.mode === "preview";
			return x`
         <div class="inline-flex items-center h-7 rounded-md overflow-hidden border border-border bg-muted/60">
            <button
               class="px-2 h-full flex items-center ${isPreview ? "bg-card text-foreground" : "text-muted-foreground hover:text-accent-foreground"}"
               @click=${() => this.setMode("preview")}
               title="${i18n("Preview")}"
            >
               ${icon(Eye, "sm")}
            </button>
            <button
               class="px-2 h-full flex items-center ${!isPreview ? "bg-card text-foreground" : "text-muted-foreground hover:text-accent-foreground"}"
               @click=${() => this.setMode("code")}
               title="${i18n("Code")}"
            >
               ${icon(Code, "sm")}
            </button>
         </div>
      `;
		}
	};
	__decorate$10([n$1({ reflect: false })], PreviewCodeToggle.prototype, "mode", void 0);
	PreviewCodeToggle = __decorate$10([t("preview-code-toggle")], PreviewCodeToggle);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/artifacts/HtmlArtifact.js
var __decorate$9, HtmlArtifact;
var init_HtmlArtifact = __esmMin((() => {
	init_es();
	init_lit();
	init_decorators();
	init_ref$2();
	init_unsafe_html();
	init_lucide();
	init_RuntimeMessageRouter();
	init_i18n();
	init_SandboxedIframe();
	init_ArtifactElement();
	init_Console();
	init_dist();
	init_Button();
	init_CopyButton();
	init_DownloadButton();
	init_PreviewCodeToggle();
	__decorate$9 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	HtmlArtifact = class HtmlArtifact$1 extends ArtifactElement {
		constructor() {
			super(...arguments);
			this.filename = "";
			this.runtimeProviders = [];
			this._content = "";
			this.logs = [];
			this.sandboxIframeRef = e();
			this.consoleRef = e();
			this.viewMode = "preview";
		}
		setViewMode(mode) {
			this.viewMode = mode;
		}
		getHeaderButtons() {
			const toggle = new PreviewCodeToggle();
			toggle.mode = this.viewMode;
			toggle.addEventListener("mode-change", (e$10) => {
				this.setViewMode(e$10.detail);
			});
			const copyButton = new CopyButton();
			copyButton.text = this._content;
			copyButton.title = i18n("Copy HTML");
			copyButton.showText = false;
			const sandbox = this.sandboxIframeRef.value;
			const sandboxId = `artifact-${this.filename}`;
			const downloadContent = sandbox?.prepareHtmlDocument(sandboxId, this._content, this.runtimeProviders || [], {
				isHtmlArtifact: true,
				isStandalone: true
			}) || this._content;
			return x`
			<div class="flex items-center gap-2">
				${toggle}
				${Button({
				variant: "ghost",
				size: "sm",
				onClick: () => {
					this.logs = [];
					this.executeContent(this._content);
				},
				title: i18n("Reload HTML"),
				children: icon(RefreshCw, "sm")
			})}
				${copyButton}
				${DownloadButton({
				content: downloadContent,
				filename: this.filename,
				mimeType: "text/html",
				title: i18n("Download HTML")
			})}
			</div>
		`;
		}
		set content(value) {
			const oldValue = this._content;
			this._content = value;
			if (oldValue !== value) {
				this.logs = [];
				this.requestUpdate();
				if (this.sandboxIframeRef.value && value) {
					this.executeContent(value);
				}
			}
		}
		executeContent(html) {
			const sandbox = this.sandboxIframeRef.value;
			if (!sandbox) return;
			if (this.sandboxUrlProvider) {
				sandbox.sandboxUrlProvider = this.sandboxUrlProvider;
			}
			const sandboxId = `artifact-${this.filename}`;
			const consumer = { handleMessage: async (message) => {
				if (message.type === "console") {
					this.logs = [...this.logs, {
						type: message.method === "error" ? "error" : "log",
						text: message.text
					}];
					this.requestUpdate();
				}
			} };
			let modifiedHtml = html;
			if (modifiedHtml.includes("</html>")) {
				modifiedHtml = modifiedHtml.replace("</html>", "<script>if (window.complete) window.complete();<\/script></html>");
			} else {
				modifiedHtml += "<script>if (window.complete) window.complete();<\/script>";
			}
			sandbox.loadContent(sandboxId, modifiedHtml, this.runtimeProviders, [consumer]);
		}
		get content() {
			return this._content;
		}
		disconnectedCallback() {
			super.disconnectedCallback();
			const sandboxId = `artifact-${this.filename}`;
			RUNTIME_MESSAGE_ROUTER.unregisterSandbox(sandboxId);
		}
		firstUpdated() {
			if (this._content && this.sandboxIframeRef.value) {
				this.executeContent(this._content);
			}
		}
		updated(changedProperties) {
			super.updated(changedProperties);
			if (this._content && this.sandboxIframeRef.value && this.logs.length === 0) {
				this.executeContent(this._content);
			}
		}
		getLogs() {
			if (this.logs.length === 0) return i18n("No logs for {filename}").replace("{filename}", this.filename);
			return this.logs.map((l$3) => `[${l$3.type}] ${l$3.text}`).join("\n");
		}
		render() {
			return x`
			<div class="h-full flex flex-col">
				<div class="flex-1 overflow-hidden relative">
					<!-- Preview container - always in DOM, just hidden when not active -->
					<div class="absolute inset-0 flex flex-col" style="display: ${this.viewMode === "preview" ? "flex" : "none"}">
						<sandbox-iframe class="flex-1" ${n(this.sandboxIframeRef)}></sandbox-iframe>
						${this.logs.length > 0 ? x`<artifact-console .logs=${this.logs} ${n(this.consoleRef)}></artifact-console>` : ""}
					</div>

					<!-- Code view - always in DOM, just hidden when not active -->
					<div class="absolute inset-0 overflow-auto bg-background" style="display: ${this.viewMode === "code" ? "block" : "none"}">
						<pre class="m-0 p-4 text-xs"><code class="hljs language-html">${o(es_default.highlight(this._content, { language: "html" }).value)}</code></pre>
					</div>
				</div>
			</div>
		`;
		}
	};
	__decorate$9([n$1()], HtmlArtifact.prototype, "filename", void 0);
	__decorate$9([n$1({ attribute: false })], HtmlArtifact.prototype, "runtimeProviders", void 0);
	__decorate$9([n$1({ attribute: false })], HtmlArtifact.prototype, "sandboxUrlProvider", void 0);
	__decorate$9([r()], HtmlArtifact.prototype, "viewMode", void 0);
	HtmlArtifact = __decorate$9([t("html-artifact")], HtmlArtifact);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/artifacts/ImageArtifact.js
var __decorate$8, ImageArtifact;
var init_ImageArtifact = __esmMin((() => {
	init_DownloadButton();
	init_lit();
	init_decorators();
	init_i18n();
	init_ArtifactElement();
	__decorate$8 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	ImageArtifact = class ImageArtifact$1 extends ArtifactElement {
		constructor() {
			super(...arguments);
			this._content = "";
		}
		get content() {
			return this._content;
		}
		set content(value) {
			this._content = value;
			this.requestUpdate();
		}
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.style.display = "block";
			this.style.height = "100%";
		}
		getMimeType() {
			const ext = this.filename.split(".").pop()?.toLowerCase();
			if (ext === "jpg" || ext === "jpeg") return "image/jpeg";
			if (ext === "gif") return "image/gif";
			if (ext === "webp") return "image/webp";
			if (ext === "svg") return "image/svg+xml";
			if (ext === "bmp") return "image/bmp";
			if (ext === "ico") return "image/x-icon";
			return "image/png";
		}
		getImageUrl() {
			if (this._content.startsWith("data:")) {
				return this._content;
			}
			return `data:${this.getMimeType()};base64,${this._content}`;
		}
		decodeBase64() {
			let base64Data;
			if (this._content.startsWith("data:")) {
				const base64Match = this._content.match(/base64,(.+)/);
				if (base64Match) {
					base64Data = base64Match[1];
				} else {
					return new Uint8Array(0);
				}
			} else {
				base64Data = this._content;
			}
			const binaryString = atob(base64Data);
			const bytes = new Uint8Array(binaryString.length);
			for (let i$7 = 0; i$7 < binaryString.length; i$7++) {
				bytes[i$7] = binaryString.charCodeAt(i$7);
			}
			return bytes;
		}
		getHeaderButtons() {
			return x`
			<div class="flex items-center gap-1">
				${DownloadButton({
				content: this.decodeBase64(),
				filename: this.filename,
				mimeType: this.getMimeType(),
				title: i18n("Download")
			})}
			</div>
		`;
		}
		render() {
			return x`
			<div class="h-full flex flex-col bg-background overflow-auto">
				<div class="flex-1 flex items-center justify-center p-4">
					<img
						src="${this.getImageUrl()}"
						alt="${this.filename}"
						class="max-w-full max-h-full object-contain"
						@error=${(e$10) => {
				const target = e$10.target;
				target.src = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ctext x='50' y='50' text-anchor='middle' dominant-baseline='middle' fill='%23999'%3EImage Error%3C/text%3E%3C/svg%3E";
			}}
					/>
				</div>
			</div>
		`;
		}
	};
	__decorate$8([n$1({ type: String })], ImageArtifact.prototype, "_content", void 0);
	ImageArtifact = __decorate$8([t("image-artifact")], ImageArtifact);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/artifacts/MarkdownArtifact.js
var __decorate$7, MarkdownArtifact;
var init_MarkdownArtifact = __esmMin((() => {
	init_es();
	init_lit();
	init_decorators();
	init_unsafe_html();
	init_i18n();
	init_MarkdownBlock();
	init_CopyButton();
	init_DownloadButton();
	init_PreviewCodeToggle();
	init_ArtifactElement();
	__decorate$7 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	MarkdownArtifact = class MarkdownArtifact$1 extends ArtifactElement {
		constructor() {
			super(...arguments);
			this.filename = "";
			this._content = "";
			this.viewMode = "preview";
		}
		get content() {
			return this._content;
		}
		set content(value) {
			this._content = value;
			this.requestUpdate();
		}
		createRenderRoot() {
			return this;
		}
		setViewMode(mode) {
			this.viewMode = mode;
		}
		getHeaderButtons() {
			const toggle = new PreviewCodeToggle();
			toggle.mode = this.viewMode;
			toggle.addEventListener("mode-change", (e$10) => {
				this.setViewMode(e$10.detail);
			});
			const copyButton = new CopyButton();
			copyButton.text = this._content;
			copyButton.title = i18n("Copy Markdown");
			copyButton.showText = false;
			return x`
			<div class="flex items-center gap-2">
				${toggle}
				${copyButton}
				${DownloadButton({
				content: this._content,
				filename: this.filename,
				mimeType: "text/markdown",
				title: i18n("Download Markdown")
			})}
			</div>
		`;
		}
		render() {
			return x`
			<div class="h-full flex flex-col">
				<div class="flex-1 overflow-auto">
					${this.viewMode === "preview" ? x`<div class="p-4"><markdown-block .content=${this.content}></markdown-block></div>` : x`<pre class="m-0 p-4 text-xs whitespace-pre-wrap break-words"><code class="hljs language-markdown">${o(es_default.highlight(this.content, {
				language: "markdown",
				ignoreIllegals: true
			}).value)}</code></pre>`}
				</div>
			</div>
		`;
		}
	};
	__decorate$7([n$1()], MarkdownArtifact.prototype, "filename", void 0);
	__decorate$7([r()], MarkdownArtifact.prototype, "viewMode", void 0);
	MarkdownArtifact = __decorate$7([t("markdown-artifact")], MarkdownArtifact);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/artifacts/PdfArtifact.js
var __decorate$6, PdfArtifact;
var init_PdfArtifact = __esmMin((() => {
	init_DownloadButton();
	init_lit();
	init_decorators();
	init_pdf();
	init_i18n();
	init_ArtifactElement();
	__decorate$6 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	GlobalWorkerOptions.workerSrc = new URL("pdfjs-dist/build/pdf.worker.min.mjs", import.meta.url).toString();
	PdfArtifact = class PdfArtifact$1 extends ArtifactElement {
		constructor() {
			super(...arguments);
			this._content = "";
			this.error = null;
			this.currentLoadingTask = null;
		}
		get content() {
			return this._content;
		}
		set content(value) {
			this._content = value;
			this.error = null;
			this.requestUpdate();
		}
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.style.display = "block";
			this.style.height = "100%";
		}
		disconnectedCallback() {
			super.disconnectedCallback();
			this.cleanup();
		}
		cleanup() {
			if (this.currentLoadingTask) {
				this.currentLoadingTask.destroy();
				this.currentLoadingTask = null;
			}
		}
		base64ToArrayBuffer(base64) {
			let base64Data = base64;
			if (base64.startsWith("data:")) {
				const base64Match = base64.match(/base64,(.+)/);
				if (base64Match) {
					base64Data = base64Match[1];
				}
			}
			const binaryString = atob(base64Data);
			const bytes = new Uint8Array(binaryString.length);
			for (let i$7 = 0; i$7 < binaryString.length; i$7++) {
				bytes[i$7] = binaryString.charCodeAt(i$7);
			}
			return bytes.buffer;
		}
		decodeBase64() {
			let base64Data = this._content;
			if (this._content.startsWith("data:")) {
				const base64Match = this._content.match(/base64,(.+)/);
				if (base64Match) {
					base64Data = base64Match[1];
				}
			}
			const binaryString = atob(base64Data);
			const bytes = new Uint8Array(binaryString.length);
			for (let i$7 = 0; i$7 < binaryString.length; i$7++) {
				bytes[i$7] = binaryString.charCodeAt(i$7);
			}
			return bytes;
		}
		getHeaderButtons() {
			return x`
			<div class="flex items-center gap-1">
				${DownloadButton({
				content: this.decodeBase64(),
				filename: this.filename,
				mimeType: "application/pdf",
				title: i18n("Download")
			})}
			</div>
		`;
		}
		async updated(changedProperties) {
			super.updated(changedProperties);
			if (changedProperties.has("_content") && this._content && !this.error) {
				await this.renderPdf();
			}
		}
		async renderPdf() {
			const container = this.querySelector("#pdf-container");
			if (!container || !this._content) return;
			let pdf = null;
			try {
				const arrayBuffer = this.base64ToArrayBuffer(this._content);
				if (this.currentLoadingTask) {
					this.currentLoadingTask.destroy();
				}
				this.currentLoadingTask = getDocument({ data: arrayBuffer });
				pdf = await this.currentLoadingTask.promise;
				this.currentLoadingTask = null;
				container.innerHTML = "";
				const wrapper = document.createElement("div");
				wrapper.className = "p-4";
				container.appendChild(wrapper);
				for (let pageNum = 1; pageNum <= pdf.numPages; pageNum++) {
					const page = await pdf.getPage(pageNum);
					const pageContainer = document.createElement("div");
					pageContainer.className = "mb-4 last:mb-0";
					const canvas = document.createElement("canvas");
					const context = canvas.getContext("2d");
					const viewport = page.getViewport({ scale: 1.5 });
					canvas.height = viewport.height;
					canvas.width = viewport.width;
					canvas.className = "w-full max-w-full h-auto block mx-auto bg-white rounded shadow-sm border border-border";
					if (context) {
						context.fillStyle = "white";
						context.fillRect(0, 0, canvas.width, canvas.height);
					}
					await page.render({
						canvasContext: context,
						viewport,
						canvas
					}).promise;
					pageContainer.appendChild(canvas);
					if (pageNum < pdf.numPages) {
						const separator = document.createElement("div");
						separator.className = "h-px bg-border my-4";
						pageContainer.appendChild(separator);
					}
					wrapper.appendChild(pageContainer);
				}
			} catch (error$2) {
				console.error("Error rendering PDF:", error$2);
				this.error = error$2?.message || i18n("Failed to load PDF");
			} finally {
				if (pdf) {
					pdf.destroy();
				}
			}
		}
		render() {
			if (this.error) {
				return x`
				<div class="h-full flex items-center justify-center bg-background p-4">
					<div class="bg-destructive/10 border border-destructive text-destructive p-4 rounded-lg max-w-2xl">
						<div class="font-medium mb-1">${i18n("Error loading PDF")}</div>
						<div class="text-sm opacity-90">${this.error}</div>
					</div>
				</div>
			`;
			}
			return x`
			<div class="h-full flex flex-col bg-background overflow-auto">
				<div id="pdf-container" class="flex-1 overflow-auto"></div>
			</div>
		`;
		}
	};
	__decorate$6([n$1({ type: String })], PdfArtifact.prototype, "_content", void 0);
	__decorate$6([r()], PdfArtifact.prototype, "error", void 0);
	PdfArtifact = __decorate$6([t("pdf-artifact")], PdfArtifact);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/artifacts/SvgArtifact.js
var __decorate$5, SvgArtifact;
var init_SvgArtifact = __esmMin((() => {
	init_CopyButton();
	init_DownloadButton();
	init_PreviewCodeToggle();
	init_es();
	init_lit();
	init_decorators();
	init_unsafe_html();
	init_i18n();
	init_ArtifactElement();
	__decorate$5 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	SvgArtifact = class SvgArtifact$1 extends ArtifactElement {
		constructor() {
			super(...arguments);
			this.filename = "";
			this._content = "";
			this.viewMode = "preview";
		}
		get content() {
			return this._content;
		}
		set content(value) {
			this._content = value;
			this.requestUpdate();
		}
		createRenderRoot() {
			return this;
		}
		setViewMode(mode) {
			this.viewMode = mode;
		}
		getHeaderButtons() {
			const toggle = new PreviewCodeToggle();
			toggle.mode = this.viewMode;
			toggle.addEventListener("mode-change", (e$10) => {
				this.setViewMode(e$10.detail);
			});
			const copyButton = new CopyButton();
			copyButton.text = this._content;
			copyButton.title = i18n("Copy SVG");
			copyButton.showText = false;
			return x`
			<div class="flex items-center gap-2">
				${toggle}
				${copyButton}
				${DownloadButton({
				content: this._content,
				filename: this.filename,
				mimeType: "image/svg+xml",
				title: i18n("Download SVG")
			})}
			</div>
		`;
		}
		render() {
			return x`
			<div class="h-full flex flex-col">
				<div class="flex-1 overflow-auto">
					${this.viewMode === "preview" ? x`<div class="h-full flex items-center justify-center">
								${o(this.content.replace(/<svg(\s|>)/i, (_m, p1) => `<svg class="w-full h-full"${p1}`))}
							</div>` : x`<pre class="m-0 p-4 text-xs"><code class="hljs language-xml">${o(es_default.highlight(this.content, {
				language: "xml",
				ignoreIllegals: true
			}).value)}</code></pre>`}
				</div>
			</div>
		`;
		}
	};
	__decorate$5([n$1()], SvgArtifact.prototype, "filename", void 0);
	__decorate$5([r()], SvgArtifact.prototype, "viewMode", void 0);
	SvgArtifact = __decorate$5([t("svg-artifact")], SvgArtifact);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/artifacts/TextArtifact.js
var __decorate$4, CODE_EXTENSIONS, TextArtifact;
var init_TextArtifact = __esmMin((() => {
	init_CopyButton();
	init_DownloadButton();
	init_es();
	init_lit();
	init_decorators();
	init_unsafe_html();
	init_i18n();
	init_ArtifactElement();
	__decorate$4 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	CODE_EXTENSIONS = [
		"js",
		"javascript",
		"ts",
		"typescript",
		"jsx",
		"tsx",
		"py",
		"python",
		"java",
		"c",
		"cpp",
		"cs",
		"php",
		"rb",
		"ruby",
		"go",
		"rust",
		"swift",
		"kotlin",
		"scala",
		"dart",
		"html",
		"css",
		"scss",
		"sass",
		"less",
		"json",
		"xml",
		"yaml",
		"yml",
		"toml",
		"sql",
		"sh",
		"bash",
		"ps1",
		"bat",
		"r",
		"matlab",
		"julia",
		"lua",
		"perl",
		"vue",
		"svelte"
	];
	TextArtifact = class TextArtifact$1 extends ArtifactElement {
		constructor() {
			super(...arguments);
			this.filename = "";
			this._content = "";
		}
		get content() {
			return this._content;
		}
		set content(value) {
			this._content = value;
			this.requestUpdate();
		}
		createRenderRoot() {
			return this;
		}
		isCode() {
			const ext = this.filename.split(".").pop()?.toLowerCase() || "";
			return CODE_EXTENSIONS.includes(ext);
		}
		getLanguageFromExtension(ext) {
			const languageMap = {
				js: "javascript",
				ts: "typescript",
				py: "python",
				rb: "ruby",
				yml: "yaml",
				ps1: "powershell",
				bat: "batch"
			};
			return languageMap[ext] || ext;
		}
		getMimeType() {
			const ext = this.filename.split(".").pop()?.toLowerCase() || "";
			if (ext === "svg") return "image/svg+xml";
			if (ext === "md" || ext === "markdown") return "text/markdown";
			return "text/plain";
		}
		getHeaderButtons() {
			const copyButton = new CopyButton();
			copyButton.text = this.content;
			copyButton.title = i18n("Copy");
			copyButton.showText = false;
			return x`
			<div class="flex items-center gap-1">
				${copyButton}
				${DownloadButton({
				content: this.content,
				filename: this.filename,
				mimeType: this.getMimeType(),
				title: i18n("Download")
			})}
			</div>
		`;
		}
		render() {
			const isCode = this.isCode();
			const ext = this.filename.split(".").pop() || "";
			return x`
			<div class="h-full flex flex-col">
				<div class="flex-1 overflow-auto">
					${isCode ? x`
								<pre class="m-0 p-4 text-xs"><code class="hljs language-${this.getLanguageFromExtension(ext.toLowerCase())}">${o(es_default.highlight(this.content, {
				language: this.getLanguageFromExtension(ext.toLowerCase()),
				ignoreIllegals: true
			}).value)}</code></pre>
							` : x` <pre class="m-0 p-4 text-xs font-mono">${this.content}</pre> `}
				</div>
			</div>
		`;
		}
	};
	__decorate$4([n$1()], TextArtifact.prototype, "filename", void 0);
	TextArtifact = __decorate$4([t("text-artifact")], TextArtifact);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/artifacts/artifacts.js
var __decorate$3, artifactsParamsSchema, ArtifactsPanel;
var init_artifacts$1 = __esmMin((() => {
	init_dist();
	init_MarkdownBlock();
	init_Button();
	init_pi_ai_stub();
	init_esm();
	init_lit();
	init_decorators();
	init_ref$2();
	init_lucide();
	init_ArtifactsRuntimeProvider();
	init_AttachmentsRuntimeProvider();
	init_prompts();
	init_i18n();
	init_DocxArtifact();
	init_ExcelArtifact();
	init_GenericArtifact();
	init_HtmlArtifact();
	init_ImageArtifact();
	init_MarkdownArtifact();
	init_PdfArtifact();
	init_SvgArtifact();
	init_TextArtifact();
	__decorate$3 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	artifactsParamsSchema = Type.Object({
		command: StringEnum([
			"create",
			"update",
			"rewrite",
			"get",
			"delete",
			"logs"
		], { description: "The operation to perform" }),
		filename: Type.String({ description: "Filename including extension (e.g., 'index.html', 'script.js')" }),
		content: Type.Optional(Type.String({ description: "File content" })),
		old_str: Type.Optional(Type.String({ description: "String to replace (for update command)" })),
		new_str: Type.Optional(Type.String({ description: "Replacement string (for update command)" }))
	});
	ArtifactsPanel = class ArtifactsPanel$1 extends i {
		constructor() {
			super(...arguments);
			this._artifacts = new Map();
			this._activeFilename = null;
			this.artifactElements = new Map();
			this.contentRef = e();
			this.collapsed = false;
			this.overlay = false;
		}
		get artifacts() {
			return this._artifacts;
		}
		getHtmlArtifactRuntimeProviders() {
			const providers = [];
			if (this.agent) {
				const attachments = [];
				for (const message of this.agent.state.messages) {
					if (message.role === "user" && message.attachments) {
						attachments.push(...message.attachments);
					}
				}
				if (attachments.length > 0) {
					providers.push(new AttachmentsRuntimeProvider(attachments));
				}
			}
			providers.push(new ArtifactsRuntimeProvider(this, this.agent, false));
			return providers;
		}
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.style.display = "block";
			this.style.height = "100%";
			requestAnimationFrame(() => {
				const container = this.contentRef.value;
				if (!container) return;
				if (!this._activeFilename && this._artifacts.size > 0) {
					this._activeFilename = Array.from(this._artifacts.keys())[0];
				}
				this.artifactElements.forEach((element, name) => {
					if (!element.parentElement) container.appendChild(element);
					element.style.display = name === this._activeFilename ? "block" : "none";
				});
			});
		}
		disconnectedCallback() {
			super.disconnectedCallback();
		}
		getFileType(filename) {
			const ext = filename.split(".").pop()?.toLowerCase();
			if (ext === "html") return "html";
			if (ext === "svg") return "svg";
			if (ext === "md" || ext === "markdown") return "markdown";
			if (ext === "pdf") return "pdf";
			if (ext === "xlsx" || ext === "xls") return "excel";
			if (ext === "docx") return "docx";
			if (ext === "png" || ext === "jpg" || ext === "jpeg" || ext === "gif" || ext === "webp" || ext === "bmp" || ext === "ico") return "image";
			if (ext === "txt" || ext === "json" || ext === "xml" || ext === "yaml" || ext === "yml" || ext === "csv" || ext === "js" || ext === "ts" || ext === "jsx" || ext === "tsx" || ext === "py" || ext === "java" || ext === "c" || ext === "cpp" || ext === "h" || ext === "css" || ext === "scss" || ext === "sass" || ext === "less" || ext === "sh") return "text";
			return "generic";
		}
		getOrCreateArtifactElement(filename, content) {
			let element = this.artifactElements.get(filename);
			if (!element) {
				const type = this.getFileType(filename);
				if (type === "html") {
					element = new HtmlArtifact();
					element.runtimeProviders = this.getHtmlArtifactRuntimeProviders();
					if (this.sandboxUrlProvider) {
						element.sandboxUrlProvider = this.sandboxUrlProvider;
					}
				} else if (type === "svg") {
					element = new SvgArtifact();
				} else if (type === "markdown") {
					element = new MarkdownArtifact();
				} else if (type === "image") {
					element = new ImageArtifact();
				} else if (type === "pdf") {
					element = new PdfArtifact();
				} else if (type === "excel") {
					element = new ExcelArtifact();
				} else if (type === "docx") {
					element = new DocxArtifact();
				} else if (type === "text") {
					element = new TextArtifact();
				} else {
					element = new GenericArtifact();
				}
				element.filename = filename;
				element.content = content;
				element.style.display = "none";
				element.style.height = "100%";
				this.artifactElements.set(filename, element);
				const newElement = element;
				if (this.contentRef.value) {
					this.contentRef.value.appendChild(newElement);
				} else {
					requestAnimationFrame(() => {
						if (this.contentRef.value && !newElement.parentElement) {
							this.contentRef.value.appendChild(newElement);
						}
					});
				}
			} else {
				element.content = content;
				if (element instanceof HtmlArtifact) {
					element.runtimeProviders = this.getHtmlArtifactRuntimeProviders();
				}
			}
			return element;
		}
		showArtifact(filename) {
			requestAnimationFrame(() => {
				this.artifactElements.forEach((element, name) => {
					if (this.contentRef.value && !element.parentElement) {
						this.contentRef.value.appendChild(element);
					}
					element.style.display = name === filename ? "block" : "none";
				});
			});
			this._activeFilename = filename;
			this.requestUpdate();
			requestAnimationFrame(() => {
				const activeButton = this.querySelector(`button[data-filename="${filename}"]`);
				if (activeButton) {
					activeButton.scrollIntoView({
						behavior: "smooth",
						block: "nearest",
						inline: "center"
					});
				}
			});
		}
		openArtifact(filename) {
			if (this._artifacts.has(filename)) {
				this.showArtifact(filename);
				this.onOpen?.();
			}
		}
		get tool() {
			return {
				label: "Artifacts",
				name: "artifacts",
				get description() {
					const runtimeProviderDescriptions = [ATTACHMENTS_RUNTIME_DESCRIPTION, ARTIFACTS_RUNTIME_PROVIDER_DESCRIPTION_RO];
					return ARTIFACTS_TOOL_DESCRIPTION(runtimeProviderDescriptions);
				},
				parameters: artifactsParamsSchema,
				execute: async (_toolCallId, args, _signal) => {
					const output = await this.executeCommand(args);
					return {
						content: [{
							type: "text",
							text: output
						}],
						details: undefined
					};
				}
			};
		}
		async reconstructFromMessages(messages) {
			const toolCalls = new Map();
			const artifactToolName = "artifacts";
			for (const message of messages) {
				if (message.role === "assistant") {
					for (const block of message.content) {
						if (block.type === "toolCall" && block.name === artifactToolName) {
							toolCalls.set(block.id, block);
						}
					}
				}
			}
			const operations = [];
			for (const m$3 of messages) {
				if (m$3.role === "artifact") {
					const artifactMsg = m$3;
					switch (artifactMsg.action) {
						case "create":
							operations.push({
								command: "create",
								filename: artifactMsg.filename,
								content: artifactMsg.content
							});
							break;
						case "update":
							operations.push({
								command: "rewrite",
								filename: artifactMsg.filename,
								content: artifactMsg.content
							});
							break;
						case "delete":
							operations.push({
								command: "delete",
								filename: artifactMsg.filename
							});
							break;
					}
				} else if (m$3.role === "toolResult" && m$3.toolName === artifactToolName && !m$3.isError) {
					const toolCallId = m$3.toolCallId;
					const call = toolCalls.get(toolCallId);
					if (!call) continue;
					const params = call.arguments;
					if (params.command === "get" || params.command === "logs") continue;
					operations.push(params);
				}
			}
			const finalArtifacts = new Map();
			for (const op$1 of operations) {
				const filename = op$1.filename;
				switch (op$1.command) {
					case "create": {
						if (op$1.content) {
							finalArtifacts.set(filename, op$1.content);
						}
						break;
					}
					case "rewrite": {
						if (op$1.content) {
							finalArtifacts.set(filename, op$1.content);
						}
						break;
					}
					case "update": {
						let existing = finalArtifacts.get(filename);
						if (!existing) break;
						if (op$1.old_str !== undefined && op$1.new_str !== undefined) {
							existing = existing.replace(op$1.old_str, op$1.new_str);
							finalArtifacts.set(filename, existing);
						}
						break;
					}
					case "delete": {
						finalArtifacts.delete(filename);
						break;
					}
					case "get":
					case "logs": break;
				}
			}
			this._artifacts.clear();
			this.artifactElements.forEach((el) => {
				el.remove();
			});
			this.artifactElements.clear();
			this._activeFilename = null;
			this._artifacts = new Map(this._artifacts);
			for (const [filename, content] of finalArtifacts.entries()) {
				const createParams = {
					command: "create",
					filename,
					content
				};
				try {
					await this.createArtifact(createParams, {
						skipWait: true,
						silent: true
					});
				} catch {}
			}
			if (!this._activeFilename && this._artifacts.size > 0) {
				this.showArtifact(Array.from(this._artifacts.keys())[0]);
			}
			this.onArtifactsChange?.();
			this.requestUpdate();
		}
		async executeCommand(params, options = {}) {
			switch (params.command) {
				case "create": return await this.createArtifact(params, options);
				case "update": return await this.updateArtifact(params, options);
				case "rewrite": return await this.rewriteArtifact(params, options);
				case "get": return this.getArtifact(params);
				case "delete": return this.deleteArtifact(params);
				case "logs": return this.getLogs(params);
				default: return `Error: Unknown command ${params.command}`;
			}
		}
		async waitForHtmlExecution(filename) {
			const element = this.artifactElements.get(filename);
			if (!(element instanceof HtmlArtifact)) {
				return "";
			}
			return new Promise((resolve) => {
				setTimeout(() => {
					const logs = element.getLogs();
					resolve(logs);
				}, 1500);
			});
		}
		reloadAllHtmlArtifacts() {
			this.artifactElements.forEach((element) => {
				if (element instanceof HtmlArtifact && element.sandboxIframeRef.value) {
					element.runtimeProviders = this.getHtmlArtifactRuntimeProviders();
					element.executeContent(element.content);
				}
			});
		}
		async createArtifact(params, options = {}) {
			if (!params.filename || !params.content) {
				return "Error: create command requires filename and content";
			}
			if (this._artifacts.has(params.filename)) {
				return `Error: File ${params.filename} already exists`;
			}
			const artifact = {
				filename: params.filename,
				content: params.content,
				createdAt: new Date(),
				updatedAt: new Date()
			};
			this._artifacts.set(params.filename, artifact);
			this._artifacts = new Map(this._artifacts);
			this.getOrCreateArtifactElement(params.filename, params.content);
			if (!options.silent) {
				this.showArtifact(params.filename);
				this.onArtifactsChange?.();
				this.requestUpdate();
			}
			this.reloadAllHtmlArtifacts();
			let result = `Created file ${params.filename}`;
			if (this.getFileType(params.filename) === "html" && !options.skipWait) {
				const logs = await this.waitForHtmlExecution(params.filename);
				result += `\n${logs}`;
			}
			return result;
		}
		async updateArtifact(params, options = {}) {
			const artifact = this._artifacts.get(params.filename);
			if (!artifact) {
				const files = Array.from(this._artifacts.keys());
				if (files.length === 0) return `Error: File ${params.filename} not found. No files have been created yet.`;
				return `Error: File ${params.filename} not found. Available files: ${files.join(", ")}`;
			}
			if (!params.old_str || params.new_str === undefined) {
				return "Error: update command requires old_str and new_str";
			}
			if (!artifact.content.includes(params.old_str)) {
				return `Error: String not found in file. Here is the full content:\n\n${artifact.content}`;
			}
			artifact.content = artifact.content.replace(params.old_str, params.new_str);
			artifact.updatedAt = new Date();
			this._artifacts.set(params.filename, artifact);
			this.getOrCreateArtifactElement(params.filename, artifact.content);
			if (!options.silent) {
				this.onArtifactsChange?.();
				this.requestUpdate();
			}
			this.showArtifact(params.filename);
			this.reloadAllHtmlArtifacts();
			let result = `Updated file ${params.filename}`;
			if (this.getFileType(params.filename) === "html" && !options.skipWait) {
				const logs = await this.waitForHtmlExecution(params.filename);
				result += `\n${logs}`;
			}
			return result;
		}
		async rewriteArtifact(params, options = {}) {
			const artifact = this._artifacts.get(params.filename);
			if (!artifact) {
				const files = Array.from(this._artifacts.keys());
				if (files.length === 0) return `Error: File ${params.filename} not found. No files have been created yet.`;
				return `Error: File ${params.filename} not found. Available files: ${files.join(", ")}`;
			}
			if (!params.content) {
				return "Error: rewrite command requires content";
			}
			artifact.content = params.content;
			artifact.updatedAt = new Date();
			this._artifacts.set(params.filename, artifact);
			this.getOrCreateArtifactElement(params.filename, artifact.content);
			if (!options.silent) {
				this.onArtifactsChange?.();
			}
			this.showArtifact(params.filename);
			this.reloadAllHtmlArtifacts();
			let result = "";
			if (this.getFileType(params.filename) === "html" && !options.skipWait) {
				const logs = await this.waitForHtmlExecution(params.filename);
				result += `\n${logs}`;
			}
			return result;
		}
		getArtifact(params) {
			const artifact = this._artifacts.get(params.filename);
			if (!artifact) {
				const files = Array.from(this._artifacts.keys());
				if (files.length === 0) return `Error: File ${params.filename} not found. No files have been created yet.`;
				return `Error: File ${params.filename} not found. Available files: ${files.join(", ")}`;
			}
			return artifact.content;
		}
		deleteArtifact(params) {
			const artifact = this._artifacts.get(params.filename);
			if (!artifact) {
				const files = Array.from(this._artifacts.keys());
				if (files.length === 0) return `Error: File ${params.filename} not found. No files have been created yet.`;
				return `Error: File ${params.filename} not found. Available files: ${files.join(", ")}`;
			}
			this._artifacts.delete(params.filename);
			this._artifacts = new Map(this._artifacts);
			const element = this.artifactElements.get(params.filename);
			if (element) {
				element.remove();
				this.artifactElements.delete(params.filename);
			}
			if (this._activeFilename === params.filename) {
				const remaining = Array.from(this._artifacts.keys());
				if (remaining.length > 0) {
					this.showArtifact(remaining[0]);
				} else {
					this._activeFilename = null;
					this.requestUpdate();
				}
			}
			this.onArtifactsChange?.();
			this.requestUpdate();
			this.reloadAllHtmlArtifacts();
			return `Deleted file ${params.filename}`;
		}
		getLogs(params) {
			const element = this.artifactElements.get(params.filename);
			if (!element) {
				const files = Array.from(this._artifacts.keys());
				if (files.length === 0) return `Error: File ${params.filename} not found. No files have been created yet.`;
				return `Error: File ${params.filename} not found. Available files: ${files.join(", ")}`;
			}
			if (!(element instanceof HtmlArtifact)) {
				return `Error: File ${params.filename} is not an HTML file. Logs are only available for HTML files.`;
			}
			return element.getLogs();
		}
		render() {
			const artifacts = Array.from(this._artifacts.values());
			const showPanel = artifacts.length > 0 && !this.collapsed;
			return x`
			<div
				class="${showPanel ? "" : "hidden"} ${this.overlay ? "fixed inset-0 z-40 pointer-events-auto backdrop-blur-sm bg-background/95" : "relative"} h-full flex flex-col bg-background text-card-foreground ${!this.overlay ? "border-l border-border" : ""} overflow-hidden shadow-xl"
			>
				<!-- Tab bar (always shown when there are artifacts) -->
				<div class="flex items-center justify-between border-b border-border bg-background">
					<div class="flex overflow-x-auto">
						${artifacts.map((a$2) => {
				const isActive = a$2.filename === this._activeFilename;
				const activeClass = isActive ? "border-primary text-primary" : "border-transparent text-muted-foreground hover:text-foreground";
				return x`
								<button
									class="px-3 py-2 whitespace-nowrap border-b-2 ${activeClass}"
									data-filename="${a$2.filename}"
									@click=${() => this.showArtifact(a$2.filename)}
								>
									<span class="font-mono text-xs">${a$2.filename}</span>
								</button>
							`;
			})}
					</div>
					<div class="flex items-center gap-1 px-2">
						${(() => {
				const active = this._activeFilename ? this.artifactElements.get(this._activeFilename) : undefined;
				return active ? active.getHeaderButtons() : "";
			})()}
						${Button({
				variant: "ghost",
				size: "sm",
				onClick: () => this.onClose?.(),
				title: i18n("Close artifacts"),
				children: icon(X, "sm")
			})}
					</div>
				</div>

				<!-- Content area where artifact elements are added programmatically -->
				<div class="flex-1 overflow-hidden" ${n(this.contentRef)}></div>
			</div>
		`;
		}
	};
	__decorate$3([r()], ArtifactsPanel.prototype, "_artifacts", void 0);
	__decorate$3([r()], ArtifactsPanel.prototype, "_activeFilename", void 0);
	__decorate$3([n$1({ attribute: false })], ArtifactsPanel.prototype, "agent", void 0);
	__decorate$3([n$1({ attribute: false })], ArtifactsPanel.prototype, "sandboxUrlProvider", void 0);
	__decorate$3([n$1({ attribute: false })], ArtifactsPanel.prototype, "onArtifactsChange", void 0);
	__decorate$3([n$1({ attribute: false })], ArtifactsPanel.prototype, "onClose", void 0);
	__decorate$3([n$1({ attribute: false })], ArtifactsPanel.prototype, "onOpen", void 0);
	__decorate$3([n$1({ type: Boolean })], ArtifactsPanel.prototype, "collapsed", void 0);
	__decorate$3([n$1({ type: Boolean })], ArtifactsPanel.prototype, "overlay", void 0);
	ArtifactsPanel = __decorate$3([t("artifacts-panel")], ArtifactsPanel);
}));

//#endregion
//#region node_modules/highlight.js/lib/core.js
var require_core = /* @__PURE__ */ __commonJSMin(((exports, module) => {
	function deepFreeze(obj) {
		if (obj instanceof Map) {
			obj.clear = obj.delete = obj.set = function() {
				throw new Error("map is read-only");
			};
		} else if (obj instanceof Set) {
			obj.add = obj.clear = obj.delete = function() {
				throw new Error("set is read-only");
			};
		}
		Object.freeze(obj);
		Object.getOwnPropertyNames(obj).forEach((name) => {
			const prop = obj[name];
			const type = typeof prop;
			if ((type === "object" || type === "function") && !Object.isFrozen(prop)) {
				deepFreeze(prop);
			}
		});
		return obj;
	}
	/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */
	/** @typedef {import('highlight.js').CompiledMode} CompiledMode */
	/** @implements CallbackResponse */
	var Response$1 = class {
		/**
		* @param {CompiledMode} mode
		*/
		constructor(mode) {
			if (mode.data === undefined) mode.data = {};
			this.data = mode.data;
			this.isMatchIgnored = false;
		}
		ignoreMatch() {
			this.isMatchIgnored = true;
		}
	};
	/**
	* @param {string} value
	* @returns {string}
	*/
	function escapeHTML$1(value) {
		return value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#x27;");
	}
	/**
	* performs a shallow merge of multiple objects into one
	*
	* @template T
	* @param {T} original
	* @param {Record<string,any>[]} objects
	* @returns {T} a single new object
	*/
	function inherit$1(original, ...objects) {
		/** @type Record<string,any> */
		const result = Object.create(null);
		for (const key in original) {
			result[key] = original[key];
		}
		objects.forEach(function(obj) {
			for (const key in obj) {
				result[key] = obj[key];
			}
		});
		return result;
	}
	/**
	* @typedef {object} Renderer
	* @property {(text: string) => void} addText
	* @property {(node: Node) => void} openNode
	* @property {(node: Node) => void} closeNode
	* @property {() => string} value
	*/
	/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */
	/** @typedef {{walk: (r: Renderer) => void}} Tree */
	/** */
	const SPAN_CLOSE = "</span>";
	/**
	* Determines if a node needs to be wrapped in <span>
	*
	* @param {Node} node */
	const emitsWrappingTags = (node) => {
		return !!node.scope;
	};
	/**
	*
	* @param {string} name
	* @param {{prefix:string}} options
	*/
	const scopeToCSSClass = (name, { prefix }) => {
		if (name.startsWith("language:")) {
			return name.replace("language:", "language-");
		}
		if (name.includes(".")) {
			const pieces = name.split(".");
			return [`${prefix}${pieces.shift()}`, ...pieces.map((x$2, i$7) => `${x$2}${"_".repeat(i$7 + 1)}`)].join(" ");
		}
		return `${prefix}${name}`;
	};
	/** @type {Renderer} */
	var HTMLRenderer = class {
		/**
		* Creates a new HTMLRenderer
		*
		* @param {Tree} parseTree - the parse tree (must support `walk` API)
		* @param {{classPrefix: string}} options
		*/
		constructor(parseTree$1, options) {
			this.buffer = "";
			this.classPrefix = options.classPrefix;
			parseTree$1.walk(this);
		}
		/**
		* Adds texts to the output stream
		*
		* @param {string} text */
		addText(text$2) {
			this.buffer += escapeHTML$1(text$2);
		}
		/**
		* Adds a node open to the output stream (if needed)
		*
		* @param {Node} node */
		openNode(node) {
			if (!emitsWrappingTags(node)) return;
			const className = scopeToCSSClass(node.scope, { prefix: this.classPrefix });
			this.span(className);
		}
		/**
		* Adds a node close to the output stream (if needed)
		*
		* @param {Node} node */
		closeNode(node) {
			if (!emitsWrappingTags(node)) return;
			this.buffer += SPAN_CLOSE;
		}
		/**
		* returns the accumulated buffer
		*/
		value() {
			return this.buffer;
		}
		/**
		* Builds a span element
		*
		* @param {string} className */
		span(className) {
			this.buffer += `<span class="${className}">`;
		}
	};
	/** @typedef {{scope?: string, language?: string, children: Node[]} | string} Node */
	/** @typedef {{scope?: string, language?: string, children: Node[]} } DataNode */
	/** @typedef {import('highlight.js').Emitter} Emitter */
	/**  */
	/** @returns {DataNode} */
	const newNode = (opts = {}) => {
		/** @type DataNode */
		const result = { children: [] };
		Object.assign(result, opts);
		return result;
	};
	var TokenTree = class TokenTree {
		constructor() {
			/** @type DataNode */
			this.rootNode = newNode();
			this.stack = [this.rootNode];
		}
		get top() {
			return this.stack[this.stack.length - 1];
		}
		get root() {
			return this.rootNode;
		}
		/** @param {Node} node */
		add(node) {
			this.top.children.push(node);
		}
		/** @param {string} scope */
		openNode(scope) {
			/** @type Node */
			const node = newNode({ scope });
			this.add(node);
			this.stack.push(node);
		}
		closeNode() {
			if (this.stack.length > 1) {
				return this.stack.pop();
			}
			return undefined;
		}
		closeAllNodes() {
			while (this.closeNode());
		}
		toJSON() {
			return JSON.stringify(this.rootNode, null, 4);
		}
		/**
		* @typedef { import("./html_renderer").Renderer } Renderer
		* @param {Renderer} builder
		*/
		walk(builder) {
			return this.constructor._walk(builder, this.rootNode);
		}
		/**
		* @param {Renderer} builder
		* @param {Node} node
		*/
		static _walk(builder, node) {
			if (typeof node === "string") {
				builder.addText(node);
			} else if (node.children) {
				builder.openNode(node);
				node.children.forEach((child) => this._walk(builder, child));
				builder.closeNode(node);
			}
			return builder;
		}
		/**
		* @param {Node} node
		*/
		static _collapse(node) {
			if (typeof node === "string") return;
			if (!node.children) return;
			if (node.children.every((el) => typeof el === "string")) {
				node.children = [node.children.join("")];
			} else {
				node.children.forEach((child) => {
					TokenTree._collapse(child);
				});
			}
		}
	};
	/**
	Currently this is all private API, but this is the minimal API necessary
	that an Emitter must implement to fully support the parser.
	
	Minimal interface:
	
	- addText(text)
	- __addSublanguage(emitter, subLanguageName)
	- startScope(scope)
	- endScope()
	- finalize()
	- toHTML()
	
	*/
	/**
	* @implements {Emitter}
	*/
	var TokenTreeEmitter = class extends TokenTree {
		/**
		* @param {*} options
		*/
		constructor(options) {
			super();
			this.options = options;
		}
		/**
		* @param {string} text
		*/
		addText(text$2) {
			if (text$2 === "") {
				return;
			}
			this.add(text$2);
		}
		/** @param {string} scope */
		startScope(scope) {
			this.openNode(scope);
		}
		endScope() {
			this.closeNode();
		}
		/**
		* @param {Emitter & {root: DataNode}} emitter
		* @param {string} name
		*/
		__addSublanguage(emitter, name) {
			/** @type DataNode */
			const node = emitter.root;
			if (name) node.scope = `language:${name}`;
			this.add(node);
		}
		toHTML() {
			const renderer = new HTMLRenderer(this, this.options);
			return renderer.value();
		}
		finalize() {
			this.closeAllNodes();
			return true;
		}
	};
	/**
	* @param {string} value
	* @returns {RegExp}
	* */
	/**
	* @param {RegExp | string } re
	* @returns {string}
	*/
	function source(re$1) {
		if (!re$1) return null;
		if (typeof re$1 === "string") return re$1;
		return re$1.source;
	}
	/**
	* @param {RegExp | string } re
	* @returns {string}
	*/
	function lookahead(re$1) {
		return concat("(?=", re$1, ")");
	}
	/**
	* @param {RegExp | string } re
	* @returns {string}
	*/
	function anyNumberOfTimes(re$1) {
		return concat("(?:", re$1, ")*");
	}
	/**
	* @param {RegExp | string } re
	* @returns {string}
	*/
	function optional(re$1) {
		return concat("(?:", re$1, ")?");
	}
	/**
	* @param {...(RegExp | string) } args
	* @returns {string}
	*/
	function concat(...args) {
		const joined = args.map((x$2) => source(x$2)).join("");
		return joined;
	}
	/**
	* @param { Array<string | RegExp | Object> } args
	* @returns {object}
	*/
	function stripOptionsFromArgs(args) {
		const opts = args[args.length - 1];
		if (typeof opts === "object" && opts.constructor === Object) {
			args.splice(args.length - 1, 1);
			return opts;
		} else {
			return {};
		}
	}
	/** @typedef { {capture?: boolean} } RegexEitherOptions */
	/**
	* Any of the passed expresssions may match
	*
	* Creates a huge this | this | that | that match
	* @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args
	* @returns {string}
	*/
	function either(...args) {
		/** @type { object & {capture?: boolean} }  */
		const opts = stripOptionsFromArgs(args);
		const joined = "(" + (opts.capture ? "" : "?:") + args.map((x$2) => source(x$2)).join("|") + ")";
		return joined;
	}
	/**
	* @param {RegExp | string} re
	* @returns {number}
	*/
	function countMatchGroups(re$1) {
		return new RegExp(re$1.toString() + "|").exec("").length - 1;
	}
	/**
	* Does lexeme start with a regular expression match at the beginning
	* @param {RegExp} re
	* @param {string} lexeme
	*/
	function startsWith(re$1, lexeme) {
		const match = re$1 && re$1.exec(lexeme);
		return match && match.index === 0;
	}
	const BACKREF_RE = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;
	/**
	* @param {(string | RegExp)[]} regexps
	* @param {{joinWith: string}} opts
	* @returns {string}
	*/
	function _rewriteBackreferences(regexps, { joinWith }) {
		let numCaptures = 0;
		return regexps.map((regex) => {
			numCaptures += 1;
			const offset = numCaptures;
			let re$1 = source(regex);
			let out = "";
			while (re$1.length > 0) {
				const match = BACKREF_RE.exec(re$1);
				if (!match) {
					out += re$1;
					break;
				}
				out += re$1.substring(0, match.index);
				re$1 = re$1.substring(match.index + match[0].length);
				if (match[0][0] === "\\" && match[1]) {
					out += "\\" + String(Number(match[1]) + offset);
				} else {
					out += match[0];
					if (match[0] === "(") {
						numCaptures++;
					}
				}
			}
			return out;
		}).map((re$1) => `(${re$1})`).join(joinWith);
	}
	/** @typedef {import('highlight.js').Mode} Mode */
	/** @typedef {import('highlight.js').ModeCallback} ModeCallback */
	const MATCH_NOTHING_RE = /\b\B/;
	const IDENT_RE$2 = "[a-zA-Z]\\w*";
	const UNDERSCORE_IDENT_RE = "[a-zA-Z_]\\w*";
	const NUMBER_RE = "\\b\\d+(\\.\\d+)?";
	const C_NUMBER_RE = "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";
	const BINARY_NUMBER_RE = "\\b(0b[01]+)";
	const RE_STARTERS_RE = "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";
	/**
	* @param { Partial<Mode> & {binary?: string | RegExp} } opts
	*/
	const SHEBANG = (opts = {}) => {
		const beginShebang = /^#![ ]*\//;
		if (opts.binary) {
			opts.begin = concat(beginShebang, /.*\b/, opts.binary, /\b.*/);
		}
		return inherit$1({
			scope: "meta",
			begin: beginShebang,
			end: /$/,
			relevance: 0,
			"on:begin": (m$3, resp) => {
				if (m$3.index !== 0) resp.ignoreMatch();
			}
		}, opts);
	};
	const BACKSLASH_ESCAPE = {
		begin: "\\\\[\\s\\S]",
		relevance: 0
	};
	const APOS_STRING_MODE = {
		scope: "string",
		begin: "'",
		end: "'",
		illegal: "\\n",
		contains: [BACKSLASH_ESCAPE]
	};
	const QUOTE_STRING_MODE = {
		scope: "string",
		begin: "\"",
		end: "\"",
		illegal: "\\n",
		contains: [BACKSLASH_ESCAPE]
	};
	const PHRASAL_WORDS_MODE = { 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/ };
	/**
	* Creates a comment mode
	*
	* @param {string | RegExp} begin
	* @param {string | RegExp} end
	* @param {Mode | {}} [modeOptions]
	* @returns {Partial<Mode>}
	*/
	const COMMENT = function(begin, end, modeOptions = {}) {
		const mode = inherit$1({
			scope: "comment",
			begin,
			end,
			contains: []
		}, modeOptions);
		mode.contains.push({
			scope: "doctag",
			begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
			end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,
			excludeBegin: true,
			relevance: 0
		});
		const ENGLISH_WORD = either("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,}/);
		mode.contains.push({ begin: concat(/[ ]+/, "(", ENGLISH_WORD, /[.]?[:]?([.][ ]|[ ])/, "){3}") });
		return mode;
	};
	const C_LINE_COMMENT_MODE = COMMENT("//", "$");
	const C_BLOCK_COMMENT_MODE = COMMENT("/\\*", "\\*/");
	const HASH_COMMENT_MODE = COMMENT("#", "$");
	const NUMBER_MODE = {
		scope: "number",
		begin: NUMBER_RE,
		relevance: 0
	};
	const C_NUMBER_MODE = {
		scope: "number",
		begin: C_NUMBER_RE,
		relevance: 0
	};
	const BINARY_NUMBER_MODE = {
		scope: "number",
		begin: BINARY_NUMBER_RE,
		relevance: 0
	};
	const REGEXP_MODE = {
		scope: "regexp",
		begin: /\/(?=[^/\n]*\/)/,
		end: /\/[gimuy]*/,
		contains: [BACKSLASH_ESCAPE, {
			begin: /\[/,
			end: /\]/,
			relevance: 0,
			contains: [BACKSLASH_ESCAPE]
		}]
	};
	const TITLE_MODE = {
		scope: "title",
		begin: IDENT_RE$2,
		relevance: 0
	};
	const UNDERSCORE_TITLE_MODE = {
		scope: "title",
		begin: UNDERSCORE_IDENT_RE,
		relevance: 0
	};
	const METHOD_GUARD = {
		begin: "\\.\\s*" + UNDERSCORE_IDENT_RE,
		relevance: 0
	};
	/**
	* Adds end same as begin mechanics to a mode
	*
	* Your mode must include at least a single () match group as that first match
	* group is what is used for comparison
	* @param {Partial<Mode>} mode
	*/
	const END_SAME_AS_BEGIN = function(mode) {
		return Object.assign(mode, {
			"on:begin": (m$3, resp) => {
				resp.data._beginMatch = m$3[1];
			},
			"on:end": (m$3, resp) => {
				if (resp.data._beginMatch !== m$3[1]) resp.ignoreMatch();
			}
		});
	};
	var MODES$1 = /* @__PURE__ */ Object.freeze({
		__proto__: null,
		APOS_STRING_MODE,
		BACKSLASH_ESCAPE,
		BINARY_NUMBER_MODE,
		BINARY_NUMBER_RE,
		COMMENT,
		C_BLOCK_COMMENT_MODE,
		C_LINE_COMMENT_MODE,
		C_NUMBER_MODE,
		C_NUMBER_RE,
		END_SAME_AS_BEGIN,
		HASH_COMMENT_MODE,
		IDENT_RE: IDENT_RE$2,
		MATCH_NOTHING_RE,
		METHOD_GUARD,
		NUMBER_MODE,
		NUMBER_RE,
		PHRASAL_WORDS_MODE,
		QUOTE_STRING_MODE,
		REGEXP_MODE,
		RE_STARTERS_RE,
		SHEBANG,
		TITLE_MODE,
		UNDERSCORE_IDENT_RE,
		UNDERSCORE_TITLE_MODE
	});
	/**
	@typedef {import('highlight.js').CallbackResponse} CallbackResponse
	@typedef {import('highlight.js').CompilerExt} CompilerExt
	*/
	/**
	* Skip a match if it has a preceding dot
	*
	* This is used for `beginKeywords` to prevent matching expressions such as
	* `bob.keyword.do()`. The mode compiler automatically wires this up as a
	* special _internal_ 'on:begin' callback for modes with `beginKeywords`
	* @param {RegExpMatchArray} match
	* @param {CallbackResponse} response
	*/
	function skipIfHasPrecedingDot(match, response) {
		const before = match.input[match.index - 1];
		if (before === ".") {
			response.ignoreMatch();
		}
	}
	/**
	*
	* @type {CompilerExt}
	*/
	function scopeClassName(mode, _parent) {
		if (mode.className !== undefined) {
			mode.scope = mode.className;
			delete mode.className;
		}
	}
	/**
	* `beginKeywords` syntactic sugar
	* @type {CompilerExt}
	*/
	function beginKeywords(mode, parent) {
		if (!parent) return;
		if (!mode.beginKeywords) return;
		mode.begin = "\\b(" + mode.beginKeywords.split(" ").join("|") + ")(?!\\.)(?=\\b|\\s)";
		mode.__beforeBegin = skipIfHasPrecedingDot;
		mode.keywords = mode.keywords || mode.beginKeywords;
		delete mode.beginKeywords;
		if (mode.relevance === undefined) mode.relevance = 0;
	}
	/**
	* Allow `illegal` to contain an array of illegal values
	* @type {CompilerExt}
	*/
	function compileIllegal(mode, _parent) {
		if (!Array.isArray(mode.illegal)) return;
		mode.illegal = either(...mode.illegal);
	}
	/**
	* `match` to match a single expression for readability
	* @type {CompilerExt}
	*/
	function compileMatch(mode, _parent) {
		if (!mode.match) return;
		if (mode.begin || mode.end) throw new Error("begin & end are not supported with match");
		mode.begin = mode.match;
		delete mode.match;
	}
	/**
	* provides the default 1 relevance to all modes
	* @type {CompilerExt}
	*/
	function compileRelevance(mode, _parent) {
		if (mode.relevance === undefined) mode.relevance = 1;
	}
	const beforeMatchExt = (mode, parent) => {
		if (!mode.beforeMatch) return;
		if (mode.starts) throw new Error("beforeMatch cannot be used with starts");
		const originalMode = Object.assign({}, mode);
		Object.keys(mode).forEach((key) => {
			delete mode[key];
		});
		mode.keywords = originalMode.keywords;
		mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));
		mode.starts = {
			relevance: 0,
			contains: [Object.assign(originalMode, { endsParent: true })]
		};
		mode.relevance = 0;
		delete originalMode.beforeMatch;
	};
	const COMMON_KEYWORDS = [
		"of",
		"and",
		"for",
		"in",
		"not",
		"or",
		"if",
		"then",
		"parent",
		"list",
		"value"
	];
	const DEFAULT_KEYWORD_SCOPE = "keyword";
	/**
	* Given raw keywords from a language definition, compile them.
	*
	* @param {string | Record<string,string|string[]> | Array<string>} rawKeywords
	* @param {boolean} caseInsensitive
	*/
	function compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {
		/** @type {import("highlight.js/private").KeywordDict} */
		const compiledKeywords = Object.create(null);
		if (typeof rawKeywords === "string") {
			compileList(scopeName, rawKeywords.split(" "));
		} else if (Array.isArray(rawKeywords)) {
			compileList(scopeName, rawKeywords);
		} else {
			Object.keys(rawKeywords).forEach(function(scopeName$1) {
				Object.assign(compiledKeywords, compileKeywords(rawKeywords[scopeName$1], caseInsensitive, scopeName$1));
			});
		}
		return compiledKeywords;
		/**
		* Compiles an individual list of keywords
		*
		* Ex: "for if when while|5"
		*
		* @param {string} scopeName
		* @param {Array<string>} keywordList
		*/
		function compileList(scopeName$1, keywordList) {
			if (caseInsensitive) {
				keywordList = keywordList.map((x$2) => x$2.toLowerCase());
			}
			keywordList.forEach(function(keyword) {
				const pair = keyword.split("|");
				compiledKeywords[pair[0]] = [scopeName$1, scoreForKeyword(pair[0], pair[1])];
			});
		}
	}
	/**
	* Returns the proper score for a given keyword
	*
	* Also takes into account comment keywords, which will be scored 0 UNLESS
	* another score has been manually assigned.
	* @param {string} keyword
	* @param {string} [providedScore]
	*/
	function scoreForKeyword(keyword, providedScore) {
		if (providedScore) {
			return Number(providedScore);
		}
		return commonKeyword(keyword) ? 0 : 1;
	}
	/**
	* Determines if a given keyword is common or not
	*
	* @param {string} keyword */
	function commonKeyword(keyword) {
		return COMMON_KEYWORDS.includes(keyword.toLowerCase());
	}
	/**
	* @type {Record<string, boolean>}
	*/
	const seenDeprecations = {};
	/**
	* @param {string} message
	*/
	const error = (message) => {
		console.error(message);
	};
	/**
	* @param {string} message
	* @param {any} args
	*/
	const warn = (message, ...args) => {
		console.log(`WARN: ${message}`, ...args);
	};
	/**
	* @param {string} version
	* @param {string} message
	*/
	const deprecated = (version$6, message) => {
		if (seenDeprecations[`${version$6}/${message}`]) return;
		console.log(`Deprecated as of ${version$6}. ${message}`);
		seenDeprecations[`${version$6}/${message}`] = true;
	};
	/**
	@typedef {import('highlight.js').CompiledMode} CompiledMode
	*/
	const MultiClassError = new Error();
	/**
	* Renumbers labeled scope names to account for additional inner match
	* groups that otherwise would break everything.
	*
	* Lets say we 3 match scopes:
	*
	*   { 1 => ..., 2 => ..., 3 => ... }
	*
	* So what we need is a clean match like this:
	*
	*   (a)(b)(c) => [ "a", "b", "c" ]
	*
	* But this falls apart with inner match groups:
	*
	* (a)(((b)))(c) => ["a", "b", "b", "b", "c" ]
	*
	* Our scopes are now "out of alignment" and we're repeating `b` 3 times.
	* What needs to happen is the numbers are remapped:
	*
	*   { 1 => ..., 2 => ..., 5 => ... }
	*
	* We also need to know that the ONLY groups that should be output
	* are 1, 2, and 5.  This function handles this behavior.
	*
	* @param {CompiledMode} mode
	* @param {Array<RegExp | string>} regexes
	* @param {{key: "beginScope"|"endScope"}} opts
	*/
	function remapScopeNames(mode, regexes, { key }) {
		let offset = 0;
		const scopeNames = mode[key];
		/** @type Record<number,boolean> */
		const emit = {};
		/** @type Record<number,string> */
		const positions = {};
		for (let i$7 = 1; i$7 <= regexes.length; i$7++) {
			positions[i$7 + offset] = scopeNames[i$7];
			emit[i$7 + offset] = true;
			offset += countMatchGroups(regexes[i$7 - 1]);
		}
		mode[key] = positions;
		mode[key]._emit = emit;
		mode[key]._multi = true;
	}
	/**
	* @param {CompiledMode} mode
	*/
	function beginMultiClass(mode) {
		if (!Array.isArray(mode.begin)) return;
		if (mode.skip || mode.excludeBegin || mode.returnBegin) {
			error("skip, excludeBegin, returnBegin not compatible with beginScope: {}");
			throw MultiClassError;
		}
		if (typeof mode.beginScope !== "object" || mode.beginScope === null) {
			error("beginScope must be object");
			throw MultiClassError;
		}
		remapScopeNames(mode, mode.begin, { key: "beginScope" });
		mode.begin = _rewriteBackreferences(mode.begin, { joinWith: "" });
	}
	/**
	* @param {CompiledMode} mode
	*/
	function endMultiClass(mode) {
		if (!Array.isArray(mode.end)) return;
		if (mode.skip || mode.excludeEnd || mode.returnEnd) {
			error("skip, excludeEnd, returnEnd not compatible with endScope: {}");
			throw MultiClassError;
		}
		if (typeof mode.endScope !== "object" || mode.endScope === null) {
			error("endScope must be object");
			throw MultiClassError;
		}
		remapScopeNames(mode, mode.end, { key: "endScope" });
		mode.end = _rewriteBackreferences(mode.end, { joinWith: "" });
	}
	/**
	* this exists only to allow `scope: {}` to be used beside `match:`
	* Otherwise `beginScope` would necessary and that would look weird
	
	{
	match: [ /def/, /\w+/ ]
	scope: { 1: "keyword" , 2: "title" }
	}
	
	* @param {CompiledMode} mode
	*/
	function scopeSugar(mode) {
		if (mode.scope && typeof mode.scope === "object" && mode.scope !== null) {
			mode.beginScope = mode.scope;
			delete mode.scope;
		}
	}
	/**
	* @param {CompiledMode} mode
	*/
	function MultiClass(mode) {
		scopeSugar(mode);
		if (typeof mode.beginScope === "string") {
			mode.beginScope = { _wrap: mode.beginScope };
		}
		if (typeof mode.endScope === "string") {
			mode.endScope = { _wrap: mode.endScope };
		}
		beginMultiClass(mode);
		endMultiClass(mode);
	}
	/**
	@typedef {import('highlight.js').Mode} Mode
	@typedef {import('highlight.js').CompiledMode} CompiledMode
	@typedef {import('highlight.js').Language} Language
	@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin
	@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage
	*/
	/**
	* Compiles a language definition result
	*
	* Given the raw result of a language definition (Language), compiles this so
	* that it is ready for highlighting code.
	* @param {Language} language
	* @returns {CompiledLanguage}
	*/
	function compileLanguage(language) {
		/**
		* Builds a regex with the case sensitivity of the current language
		*
		* @param {RegExp | string} value
		* @param {boolean} [global]
		*/
		function langRe(value, global$1) {
			return new RegExp(source(value), "m" + (language.case_insensitive ? "i" : "") + (language.unicodeRegex ? "u" : "") + (global$1 ? "g" : ""));
		}
		/**
		Stores multiple regular expressions and allows you to quickly search for
		them all in a string simultaneously - returning the first match.  It does
		this by creating a huge (a|b|c) regex - each individual item wrapped with ()
		and joined by `|` - using match groups to track position.  When a match is
		found checking which position in the array has content allows us to figure
		out which of the original regexes / match groups triggered the match.
		
		The match object itself (the result of `Regex.exec`) is returned but also
		enhanced by merging in any meta-data that was registered with the regex.
		This is how we keep track of which mode matched, and what type of rule
		(`illegal`, `begin`, end, etc).
		*/
		class MultiRegex {
			constructor() {
				this.matchIndexes = {};
				this.regexes = [];
				this.matchAt = 1;
				this.position = 0;
			}
			addRule(re$1, opts) {
				opts.position = this.position++;
				this.matchIndexes[this.matchAt] = opts;
				this.regexes.push([opts, re$1]);
				this.matchAt += countMatchGroups(re$1) + 1;
			}
			compile() {
				if (this.regexes.length === 0) {
					this.exec = () => null;
				}
				const terminators = this.regexes.map((el) => el[1]);
				this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: "|" }), true);
				this.lastIndex = 0;
			}
			/** @param {string} s */
			exec(s$5) {
				this.matcherRe.lastIndex = this.lastIndex;
				const match = this.matcherRe.exec(s$5);
				if (!match) {
					return null;
				}
				const i$7 = match.findIndex((el, i$8) => i$8 > 0 && el !== undefined);
				const matchData = this.matchIndexes[i$7];
				match.splice(0, i$7);
				return Object.assign(match, matchData);
			}
		}
		class ResumableMultiRegex {
			constructor() {
				this.rules = [];
				this.multiRegexes = [];
				this.count = 0;
				this.lastIndex = 0;
				this.regexIndex = 0;
			}
			getMatcher(index) {
				if (this.multiRegexes[index]) return this.multiRegexes[index];
				const matcher = new MultiRegex();
				this.rules.slice(index).forEach(([re$1, opts]) => matcher.addRule(re$1, opts));
				matcher.compile();
				this.multiRegexes[index] = matcher;
				return matcher;
			}
			resumingScanAtSamePosition() {
				return this.regexIndex !== 0;
			}
			considerAll() {
				this.regexIndex = 0;
			}
			addRule(re$1, opts) {
				this.rules.push([re$1, opts]);
				if (opts.type === "begin") this.count++;
			}
			/** @param {string} s */
			exec(s$5) {
				const m$3 = this.getMatcher(this.regexIndex);
				m$3.lastIndex = this.lastIndex;
				let result = m$3.exec(s$5);
				if (this.resumingScanAtSamePosition()) {
					if (result && result.index === this.lastIndex);
					else {
						const m2 = this.getMatcher(0);
						m2.lastIndex = this.lastIndex + 1;
						result = m2.exec(s$5);
					}
				}
				if (result) {
					this.regexIndex += result.position + 1;
					if (this.regexIndex === this.count) {
						this.considerAll();
					}
				}
				return result;
			}
		}
		/**
		* Given a mode, builds a huge ResumableMultiRegex that can be used to walk
		* the content and find matches.
		*
		* @param {CompiledMode} mode
		* @returns {ResumableMultiRegex}
		*/
		function buildModeRegex(mode) {
			const mm = new ResumableMultiRegex();
			mode.contains.forEach((term) => mm.addRule(term.begin, {
				rule: term,
				type: "begin"
			}));
			if (mode.terminatorEnd) {
				mm.addRule(mode.terminatorEnd, { type: "end" });
			}
			if (mode.illegal) {
				mm.addRule(mode.illegal, { type: "illegal" });
			}
			return mm;
		}
		/** skip vs abort vs ignore
		*
		* @skip   - The mode is still entered and exited normally (and contains rules apply),
		*           but all content is held and added to the parent buffer rather than being
		*           output when the mode ends.  Mostly used with `sublanguage` to build up
		*           a single large buffer than can be parsed by sublanguage.
		*
		*             - The mode begin ands ends normally.
		*             - Content matched is added to the parent mode buffer.
		*             - The parser cursor is moved forward normally.
		*
		* @abort  - A hack placeholder until we have ignore.  Aborts the mode (as if it
		*           never matched) but DOES NOT continue to match subsequent `contains`
		*           modes.  Abort is bad/suboptimal because it can result in modes
		*           farther down not getting applied because an earlier rule eats the
		*           content but then aborts.
		*
		*             - The mode does not begin.
		*             - Content matched by `begin` is added to the mode buffer.
		*             - The parser cursor is moved forward accordingly.
		*
		* @ignore - Ignores the mode (as if it never matched) and continues to match any
		*           subsequent `contains` modes.  Ignore isn't technically possible with
		*           the current parser implementation.
		*
		*             - The mode does not begin.
		*             - Content matched by `begin` is ignored.
		*             - The parser cursor is not moved forward.
		*/
		/**
		* Compiles an individual mode
		*
		* This can raise an error if the mode contains certain detectable known logic
		* issues.
		* @param {Mode} mode
		* @param {CompiledMode | null} [parent]
		* @returns {CompiledMode | never}
		*/
		function compileMode(mode, parent) {
			const cmode = mode;
			if (mode.isCompiled) return cmode;
			[
				scopeClassName,
				compileMatch,
				MultiClass,
				beforeMatchExt
			].forEach((ext) => ext(mode, parent));
			language.compilerExtensions.forEach((ext) => ext(mode, parent));
			mode.__beforeBegin = null;
			[
				beginKeywords,
				compileIllegal,
				compileRelevance
			].forEach((ext) => ext(mode, parent));
			mode.isCompiled = true;
			let keywordPattern = null;
			if (typeof mode.keywords === "object" && mode.keywords.$pattern) {
				mode.keywords = Object.assign({}, mode.keywords);
				keywordPattern = mode.keywords.$pattern;
				delete mode.keywords.$pattern;
			}
			keywordPattern = keywordPattern || /\w+/;
			if (mode.keywords) {
				mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);
			}
			cmode.keywordPatternRe = langRe(keywordPattern, true);
			if (parent) {
				if (!mode.begin) mode.begin = /\B|\b/;
				cmode.beginRe = langRe(cmode.begin);
				if (!mode.end && !mode.endsWithParent) mode.end = /\B|\b/;
				if (mode.end) cmode.endRe = langRe(cmode.end);
				cmode.terminatorEnd = source(cmode.end) || "";
				if (mode.endsWithParent && parent.terminatorEnd) {
					cmode.terminatorEnd += (mode.end ? "|" : "") + parent.terminatorEnd;
				}
			}
			if (mode.illegal) cmode.illegalRe = langRe(
				/** @type {RegExp | string} */
				mode.illegal
			);
			if (!mode.contains) mode.contains = [];
			mode.contains = [].concat(...mode.contains.map(function(c$7) {
				return expandOrCloneMode(c$7 === "self" ? mode : c$7);
			}));
			mode.contains.forEach(function(c$7) {
				compileMode(
					/** @type Mode */
					c$7,
					cmode
				);
			});
			if (mode.starts) {
				compileMode(mode.starts, parent);
			}
			cmode.matcher = buildModeRegex(cmode);
			return cmode;
		}
		if (!language.compilerExtensions) language.compilerExtensions = [];
		if (language.contains && language.contains.includes("self")) {
			throw new Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.");
		}
		language.classNameAliases = inherit$1(language.classNameAliases || {});
		return compileMode(
			/** @type Mode */
			language
		);
	}
	/**
	* Determines if a mode has a dependency on it's parent or not
	*
	* If a mode does have a parent dependency then often we need to clone it if
	* it's used in multiple places so that each copy points to the correct parent,
	* where-as modes without a parent can often safely be re-used at the bottom of
	* a mode chain.
	*
	* @param {Mode | null} mode
	* @returns {boolean} - is there a dependency on the parent?
	* */
	function dependencyOnParent(mode) {
		if (!mode) return false;
		return mode.endsWithParent || dependencyOnParent(mode.starts);
	}
	/**
	* Expands a mode or clones it if necessary
	*
	* This is necessary for modes with parental dependenceis (see notes on
	* `dependencyOnParent`) and for nodes that have `variants` - which must then be
	* exploded into their own individual modes at compile time.
	*
	* @param {Mode} mode
	* @returns {Mode | Mode[]}
	* */
	function expandOrCloneMode(mode) {
		if (mode.variants && !mode.cachedVariants) {
			mode.cachedVariants = mode.variants.map(function(variant) {
				return inherit$1(mode, { variants: null }, variant);
			});
		}
		if (mode.cachedVariants) {
			return mode.cachedVariants;
		}
		if (dependencyOnParent(mode)) {
			return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });
		}
		if (Object.isFrozen(mode)) {
			return inherit$1(mode);
		}
		return mode;
	}
	var version = "11.11.1";
	var HTMLInjectionError = class extends Error {
		constructor(reason, html) {
			super(reason);
			this.name = "HTMLInjectionError";
			this.html = html;
		}
	};
	/**
	@typedef {import('highlight.js').Mode} Mode
	@typedef {import('highlight.js').CompiledMode} CompiledMode
	@typedef {import('highlight.js').CompiledScope} CompiledScope
	@typedef {import('highlight.js').Language} Language
	@typedef {import('highlight.js').HLJSApi} HLJSApi
	@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin
	@typedef {import('highlight.js').PluginEvent} PluginEvent
	@typedef {import('highlight.js').HLJSOptions} HLJSOptions
	@typedef {import('highlight.js').LanguageFn} LanguageFn
	@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement
	@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext
	@typedef {import('highlight.js/private').MatchType} MatchType
	@typedef {import('highlight.js/private').KeywordData} KeywordData
	@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch
	@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError
	@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult
	@typedef {import('highlight.js').HighlightOptions} HighlightOptions
	@typedef {import('highlight.js').HighlightResult} HighlightResult
	*/
	const escape$1 = escapeHTML$1;
	const inherit = inherit$1;
	const NO_MATCH = Symbol("nomatch");
	const MAX_KEYWORD_HITS = 7;
	/**
	* @param {any} hljs - object that is extended (legacy)
	* @returns {HLJSApi}
	*/
	const HLJS = function(hljs$1) {
		/** @type {Record<string, Language>} */
		const languages = Object.create(null);
		/** @type {Record<string, string>} */
		const aliases = Object.create(null);
		/** @type {HLJSPlugin[]} */
		const plugins = [];
		let SAFE_MODE = true;
		const LANGUAGE_NOT_FOUND = "Could not find the language '{}', did you forget to load/include a language module?";
		/** @type {Language} */
		const PLAINTEXT_LANGUAGE = {
			disableAutodetect: true,
			name: "Plain text",
			contains: []
		};
		/** @type HLJSOptions */
		let options = {
			ignoreUnescapedHTML: false,
			throwUnescapedHTML: false,
			noHighlightRe: /^(no-?highlight)$/i,
			languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i,
			classPrefix: "hljs-",
			cssSelector: "pre code",
			languages: null,
			__emitter: TokenTreeEmitter
		};
		/**
		* Tests a language name to see if highlighting should be skipped
		* @param {string} languageName
		*/
		function shouldNotHighlight(languageName) {
			return options.noHighlightRe.test(languageName);
		}
		/**
		* @param {HighlightedHTMLElement} block - the HTML element to determine language for
		*/
		function blockLanguage(block) {
			let classes = block.className + " ";
			classes += block.parentNode ? block.parentNode.className : "";
			const match = options.languageDetectRe.exec(classes);
			if (match) {
				const language = getLanguage(match[1]);
				if (!language) {
					warn(LANGUAGE_NOT_FOUND.replace("{}", match[1]));
					warn("Falling back to no-highlight mode for this block.", block);
				}
				return language ? match[1] : "no-highlight";
			}
			return classes.split(/\s+/).find((_class) => shouldNotHighlight(_class) || getLanguage(_class));
		}
		/**
		* Core highlighting function.
		*
		* OLD API
		* highlight(lang, code, ignoreIllegals, continuation)
		*
		* NEW API
		* highlight(code, {lang, ignoreIllegals})
		*
		* @param {string} codeOrLanguageName - the language to use for highlighting
		* @param {string | HighlightOptions} optionsOrCode - the code to highlight
		* @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail
		*
		* @returns {HighlightResult} Result - an object that represents the result
		* @property {string} language - the language name
		* @property {number} relevance - the relevance score
		* @property {string} value - the highlighted HTML code
		* @property {string} code - the original raw code
		* @property {CompiledMode} top - top of the current mode stack
		* @property {boolean} illegal - indicates whether any illegal matches were found
		*/
		function highlight$2(codeOrLanguageName, optionsOrCode, ignoreIllegals) {
			let code = "";
			let languageName = "";
			if (typeof optionsOrCode === "object") {
				code = codeOrLanguageName;
				ignoreIllegals = optionsOrCode.ignoreIllegals;
				languageName = optionsOrCode.language;
			} else {
				deprecated("10.7.0", "highlight(lang, code, ...args) has been deprecated.");
				deprecated("10.7.0", "Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277");
				languageName = codeOrLanguageName;
				code = optionsOrCode;
			}
			if (ignoreIllegals === undefined) {
				ignoreIllegals = true;
			}
			/** @type {BeforeHighlightContext} */
			const context = {
				code,
				language: languageName
			};
			fire("before:highlight", context);
			const result = context.result ? context.result : _highlight(context.language, context.code, ignoreIllegals);
			result.code = context.code;
			fire("after:highlight", result);
			return result;
		}
		/**
		* private highlight that's used internally and does not fire callbacks
		*
		* @param {string} languageName - the language to use for highlighting
		* @param {string} codeToHighlight - the code to highlight
		* @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail
		* @param {CompiledMode?} [continuation] - current continuation mode, if any
		* @returns {HighlightResult} - result of the highlight operation
		*/
		function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {
			const keywordHits = Object.create(null);
			/**
			* Return keyword data if a match is a keyword
			* @param {CompiledMode} mode - current mode
			* @param {string} matchText - the textual match
			* @returns {KeywordData | false}
			*/
			function keywordData(mode, matchText) {
				return mode.keywords[matchText];
			}
			function processKeywords() {
				if (!top.keywords) {
					emitter.addText(modeBuffer);
					return;
				}
				let lastIndex = 0;
				top.keywordPatternRe.lastIndex = 0;
				let match = top.keywordPatternRe.exec(modeBuffer);
				let buf = "";
				while (match) {
					buf += modeBuffer.substring(lastIndex, match.index);
					const word = language.case_insensitive ? match[0].toLowerCase() : match[0];
					const data = keywordData(top, word);
					if (data) {
						const [kind, keywordRelevance] = data;
						emitter.addText(buf);
						buf = "";
						keywordHits[word] = (keywordHits[word] || 0) + 1;
						if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;
						if (kind.startsWith("_")) {
							buf += match[0];
						} else {
							const cssClass = language.classNameAliases[kind] || kind;
							emitKeyword(match[0], cssClass);
						}
					} else {
						buf += match[0];
					}
					lastIndex = top.keywordPatternRe.lastIndex;
					match = top.keywordPatternRe.exec(modeBuffer);
				}
				buf += modeBuffer.substring(lastIndex);
				emitter.addText(buf);
			}
			function processSubLanguage() {
				if (modeBuffer === "") return;
				/** @type HighlightResult */
				let result$1 = null;
				if (typeof top.subLanguage === "string") {
					if (!languages[top.subLanguage]) {
						emitter.addText(modeBuffer);
						return;
					}
					result$1 = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);
					continuations[top.subLanguage] = result$1._top;
				} else {
					result$1 = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);
				}
				if (top.relevance > 0) {
					relevance += result$1.relevance;
				}
				emitter.__addSublanguage(result$1._emitter, result$1.language);
			}
			function processBuffer() {
				if (top.subLanguage != null) {
					processSubLanguage();
				} else {
					processKeywords();
				}
				modeBuffer = "";
			}
			/**
			* @param {string} text
			* @param {string} scope
			*/
			function emitKeyword(keyword, scope) {
				if (keyword === "") return;
				emitter.startScope(scope);
				emitter.addText(keyword);
				emitter.endScope();
			}
			/**
			* @param {CompiledScope} scope
			* @param {RegExpMatchArray} match
			*/
			function emitMultiClass(scope, match) {
				let i$7 = 1;
				const max = match.length - 1;
				while (i$7 <= max) {
					if (!scope._emit[i$7]) {
						i$7++;
						continue;
					}
					const klass = language.classNameAliases[scope[i$7]] || scope[i$7];
					const text$2 = match[i$7];
					if (klass) {
						emitKeyword(text$2, klass);
					} else {
						modeBuffer = text$2;
						processKeywords();
						modeBuffer = "";
					}
					i$7++;
				}
			}
			/**
			* @param {CompiledMode} mode - new mode to start
			* @param {RegExpMatchArray} match
			*/
			function startNewMode(mode, match) {
				if (mode.scope && typeof mode.scope === "string") {
					emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);
				}
				if (mode.beginScope) {
					if (mode.beginScope._wrap) {
						emitKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);
						modeBuffer = "";
					} else if (mode.beginScope._multi) {
						emitMultiClass(mode.beginScope, match);
						modeBuffer = "";
					}
				}
				top = Object.create(mode, { parent: { value: top } });
				return top;
			}
			/**
			* @param {CompiledMode } mode - the mode to potentially end
			* @param {RegExpMatchArray} match - the latest match
			* @param {string} matchPlusRemainder - match plus remainder of content
			* @returns {CompiledMode | void} - the next mode, or if void continue on in current mode
			*/
			function endOfMode(mode, match, matchPlusRemainder) {
				let matched = startsWith(mode.endRe, matchPlusRemainder);
				if (matched) {
					if (mode["on:end"]) {
						const resp = new Response$1(mode);
						mode["on:end"](match, resp);
						if (resp.isMatchIgnored) matched = false;
					}
					if (matched) {
						while (mode.endsParent && mode.parent) {
							mode = mode.parent;
						}
						return mode;
					}
				}
				if (mode.endsWithParent) {
					return endOfMode(mode.parent, match, matchPlusRemainder);
				}
			}
			/**
			* Handle matching but then ignoring a sequence of text
			*
			* @param {string} lexeme - string containing full match text
			*/
			function doIgnore(lexeme) {
				if (top.matcher.regexIndex === 0) {
					modeBuffer += lexeme[0];
					return 1;
				} else {
					resumeScanAtSamePosition = true;
					return 0;
				}
			}
			/**
			* Handle the start of a new potential mode match
			*
			* @param {EnhancedMatch} match - the current match
			* @returns {number} how far to advance the parse cursor
			*/
			function doBeginMatch(match) {
				const lexeme = match[0];
				const newMode = match.rule;
				const resp = new Response$1(newMode);
				const beforeCallbacks = [newMode.__beforeBegin, newMode["on:begin"]];
				for (const cb of beforeCallbacks) {
					if (!cb) continue;
					cb(match, resp);
					if (resp.isMatchIgnored) return doIgnore(lexeme);
				}
				if (newMode.skip) {
					modeBuffer += lexeme;
				} else {
					if (newMode.excludeBegin) {
						modeBuffer += lexeme;
					}
					processBuffer();
					if (!newMode.returnBegin && !newMode.excludeBegin) {
						modeBuffer = lexeme;
					}
				}
				startNewMode(newMode, match);
				return newMode.returnBegin ? 0 : lexeme.length;
			}
			/**
			* Handle the potential end of mode
			*
			* @param {RegExpMatchArray} match - the current match
			*/
			function doEndMatch(match) {
				const lexeme = match[0];
				const matchPlusRemainder = codeToHighlight.substring(match.index);
				const endMode = endOfMode(top, match, matchPlusRemainder);
				if (!endMode) {
					return NO_MATCH;
				}
				const origin = top;
				if (top.endScope && top.endScope._wrap) {
					processBuffer();
					emitKeyword(lexeme, top.endScope._wrap);
				} else if (top.endScope && top.endScope._multi) {
					processBuffer();
					emitMultiClass(top.endScope, match);
				} else if (origin.skip) {
					modeBuffer += lexeme;
				} else {
					if (!(origin.returnEnd || origin.excludeEnd)) {
						modeBuffer += lexeme;
					}
					processBuffer();
					if (origin.excludeEnd) {
						modeBuffer = lexeme;
					}
				}
				do {
					if (top.scope) {
						emitter.closeNode();
					}
					if (!top.skip && !top.subLanguage) {
						relevance += top.relevance;
					}
					top = top.parent;
				} while (top !== endMode.parent);
				if (endMode.starts) {
					startNewMode(endMode.starts, match);
				}
				return origin.returnEnd ? 0 : lexeme.length;
			}
			function processContinuations() {
				const list = [];
				for (let current = top; current !== language; current = current.parent) {
					if (current.scope) {
						list.unshift(current.scope);
					}
				}
				list.forEach((item) => emitter.openNode(item));
			}
			/** @type {{type?: MatchType, index?: number, rule?: Mode}}} */
			let lastMatch = {};
			/**
			*  Process an individual match
			*
			* @param {string} textBeforeMatch - text preceding the match (since the last match)
			* @param {EnhancedMatch} [match] - the match itself
			*/
			function processLexeme(textBeforeMatch, match) {
				const lexeme = match && match[0];
				modeBuffer += textBeforeMatch;
				if (lexeme == null) {
					processBuffer();
					return 0;
				}
				if (lastMatch.type === "begin" && match.type === "end" && lastMatch.index === match.index && lexeme === "") {
					modeBuffer += codeToHighlight.slice(match.index, match.index + 1);
					if (!SAFE_MODE) {
						/** @type {AnnotatedError} */
						const err = new Error(`0 width match regex (${languageName})`);
						err.languageName = languageName;
						err.badRule = lastMatch.rule;
						throw err;
					}
					return 1;
				}
				lastMatch = match;
				if (match.type === "begin") {
					return doBeginMatch(match);
				} else if (match.type === "illegal" && !ignoreIllegals) {
					/** @type {AnnotatedError} */
					const err = new Error("Illegal lexeme \"" + lexeme + "\" for mode \"" + (top.scope || "<unnamed>") + "\"");
					err.mode = top;
					throw err;
				} else if (match.type === "end") {
					const processed = doEndMatch(match);
					if (processed !== NO_MATCH) {
						return processed;
					}
				}
				if (match.type === "illegal" && lexeme === "") {
					modeBuffer += "\n";
					return 1;
				}
				if (iterations > 1e5 && iterations > match.index * 3) {
					const err = new Error("potential infinite loop, way more iterations than matches");
					throw err;
				}
				modeBuffer += lexeme;
				return lexeme.length;
			}
			const language = getLanguage(languageName);
			if (!language) {
				error(LANGUAGE_NOT_FOUND.replace("{}", languageName));
				throw new Error("Unknown language: \"" + languageName + "\"");
			}
			const md = compileLanguage(language);
			let result = "";
			/** @type {CompiledMode} */
			let top = continuation || md;
			/** @type Record<string,CompiledMode> */
			const continuations = {};
			const emitter = new options.__emitter(options);
			processContinuations();
			let modeBuffer = "";
			let relevance = 0;
			let index = 0;
			let iterations = 0;
			let resumeScanAtSamePosition = false;
			try {
				if (!language.__emitTokens) {
					top.matcher.considerAll();
					for (;;) {
						iterations++;
						if (resumeScanAtSamePosition) {
							resumeScanAtSamePosition = false;
						} else {
							top.matcher.considerAll();
						}
						top.matcher.lastIndex = index;
						const match = top.matcher.exec(codeToHighlight);
						if (!match) break;
						const beforeMatch = codeToHighlight.substring(index, match.index);
						const processedCount = processLexeme(beforeMatch, match);
						index = match.index + processedCount;
					}
					processLexeme(codeToHighlight.substring(index));
				} else {
					language.__emitTokens(codeToHighlight, emitter);
				}
				emitter.finalize();
				result = emitter.toHTML();
				return {
					language: languageName,
					value: result,
					relevance,
					illegal: false,
					_emitter: emitter,
					_top: top
				};
			} catch (err) {
				if (err.message && err.message.includes("Illegal")) {
					return {
						language: languageName,
						value: escape$1(codeToHighlight),
						illegal: true,
						relevance: 0,
						_illegalBy: {
							message: err.message,
							index,
							context: codeToHighlight.slice(index - 100, index + 100),
							mode: err.mode,
							resultSoFar: result
						},
						_emitter: emitter
					};
				} else if (SAFE_MODE) {
					return {
						language: languageName,
						value: escape$1(codeToHighlight),
						illegal: false,
						relevance: 0,
						errorRaised: err,
						_emitter: emitter,
						_top: top
					};
				} else {
					throw err;
				}
			}
		}
		/**
		* returns a valid highlight result, without actually doing any actual work,
		* auto highlight starts with this and it's possible for small snippets that
		* auto-detection may not find a better match
		* @param {string} code
		* @returns {HighlightResult}
		*/
		function justTextHighlightResult(code) {
			const result = {
				value: escape$1(code),
				illegal: false,
				relevance: 0,
				_top: PLAINTEXT_LANGUAGE,
				_emitter: new options.__emitter(options)
			};
			result._emitter.addText(code);
			return result;
		}
		/**
		Highlighting with language detection. Accepts a string with the code to
		highlight. Returns an object with the following properties:
		
		- language (detected language)
		- relevance (int)
		- value (an HTML string with highlighting markup)
		- secondBest (object with the same structure for second-best heuristically
		detected language, may be absent)
		
		@param {string} code
		@param {Array<string>} [languageSubset]
		@returns {AutoHighlightResult}
		*/
		function highlightAuto(code, languageSubset) {
			languageSubset = languageSubset || options.languages || Object.keys(languages);
			const plaintext$1 = justTextHighlightResult(code);
			const results = languageSubset.filter(getLanguage).filter(autoDetection).map((name) => _highlight(name, code, false));
			results.unshift(plaintext$1);
			const sorted = results.sort((a$2, b$3) => {
				if (a$2.relevance !== b$3.relevance) return b$3.relevance - a$2.relevance;
				if (a$2.language && b$3.language) {
					if (getLanguage(a$2.language).supersetOf === b$3.language) {
						return 1;
					} else if (getLanguage(b$3.language).supersetOf === a$2.language) {
						return -1;
					}
				}
				return 0;
			});
			const [best, secondBest] = sorted;
			/** @type {AutoHighlightResult} */
			const result = best;
			result.secondBest = secondBest;
			return result;
		}
		/**
		* Builds new class name for block given the language name
		*
		* @param {HTMLElement} element
		* @param {string} [currentLang]
		* @param {string} [resultLang]
		*/
		function updateClassName(element, currentLang, resultLang) {
			const language = currentLang && aliases[currentLang] || resultLang;
			element.classList.add("hljs");
			element.classList.add(`language-${language}`);
		}
		/**
		* Applies highlighting to a DOM node containing code.
		*
		* @param {HighlightedHTMLElement} element - the HTML element to highlight
		*/
		function highlightElement(element) {
			/** @type HTMLElement */
			let node = null;
			const language = blockLanguage(element);
			if (shouldNotHighlight(language)) return;
			fire("before:highlightElement", {
				el: element,
				language
			});
			if (element.dataset.highlighted) {
				console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.", element);
				return;
			}
			if (element.children.length > 0) {
				if (!options.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(element);
				}
				if (options.throwUnescapedHTML) {
					const err = new HTMLInjectionError("One of your code blocks includes unescaped HTML.", element.innerHTML);
					throw err;
				}
			}
			node = element;
			const text$2 = node.textContent;
			const result = language ? highlight$2(text$2, {
				language,
				ignoreIllegals: true
			}) : highlightAuto(text$2);
			element.innerHTML = result.value;
			element.dataset.highlighted = "yes";
			updateClassName(element, language, result.language);
			element.result = {
				language: result.language,
				re: result.relevance,
				relevance: result.relevance
			};
			if (result.secondBest) {
				element.secondBest = {
					language: result.secondBest.language,
					relevance: result.secondBest.relevance
				};
			}
			fire("after:highlightElement", {
				el: element,
				result,
				text: text$2
			});
		}
		/**
		* Updates highlight.js global options with the passed options
		*
		* @param {Partial<HLJSOptions>} userOptions
		*/
		function configure(userOptions) {
			options = inherit(options, userOptions);
		}
		const initHighlighting = () => {
			highlightAll();
			deprecated("10.6.0", "initHighlighting() deprecated.  Use highlightAll() now.");
		};
		function initHighlightingOnLoad() {
			highlightAll();
			deprecated("10.6.0", "initHighlightingOnLoad() deprecated.  Use highlightAll() now.");
		}
		let wantsHighlight = false;
		/**
		* auto-highlights all pre>code elements on the page
		*/
		function highlightAll() {
			function boot() {
				highlightAll();
			}
			if (document.readyState === "loading") {
				if (!wantsHighlight) {
					window.addEventListener("DOMContentLoaded", boot, false);
				}
				wantsHighlight = true;
				return;
			}
			const blocks = document.querySelectorAll(options.cssSelector);
			blocks.forEach(highlightElement);
		}
		/**
		* Register a language grammar module
		*
		* @param {string} languageName
		* @param {LanguageFn} languageDefinition
		*/
		function registerLanguage(languageName, languageDefinition) {
			let lang = null;
			try {
				lang = languageDefinition(hljs$1);
			} catch (error$1$1) {
				error("Language definition for '{}' could not be registered.".replace("{}", languageName));
				if (!SAFE_MODE) {
					throw error$1$1;
				} else {
					error(error$1$1);
				}
				lang = PLAINTEXT_LANGUAGE;
			}
			if (!lang.name) lang.name = languageName;
			languages[languageName] = lang;
			lang.rawDefinition = languageDefinition.bind(null, hljs$1);
			if (lang.aliases) {
				registerAliases(lang.aliases, { languageName });
			}
		}
		/**
		* Remove a language grammar module
		*
		* @param {string} languageName
		*/
		function unregisterLanguage(languageName) {
			delete languages[languageName];
			for (const alias of Object.keys(aliases)) {
				if (aliases[alias] === languageName) {
					delete aliases[alias];
				}
			}
		}
		/**
		* @returns {string[]} List of language internal names
		*/
		function listLanguages() {
			return Object.keys(languages);
		}
		/**
		* @param {string} name - name of the language to retrieve
		* @returns {Language | undefined}
		*/
		function getLanguage(name) {
			name = (name || "").toLowerCase();
			return languages[name] || languages[aliases[name]];
		}
		/**
		*
		* @param {string|string[]} aliasList - single alias or list of aliases
		* @param {{languageName: string}} opts
		*/
		function registerAliases(aliasList, { languageName }) {
			if (typeof aliasList === "string") {
				aliasList = [aliasList];
			}
			aliasList.forEach((alias) => {
				aliases[alias.toLowerCase()] = languageName;
			});
		}
		/**
		* Determines if a given language has auto-detection enabled
		* @param {string} name - name of the language
		*/
		function autoDetection(name) {
			const lang = getLanguage(name);
			return lang && !lang.disableAutodetect;
		}
		/**
		* Upgrades the old highlightBlock plugins to the new
		* highlightElement API
		* @param {HLJSPlugin} plugin
		*/
		function upgradePluginAPI(plugin) {
			if (plugin["before:highlightBlock"] && !plugin["before:highlightElement"]) {
				plugin["before:highlightElement"] = (data) => {
					plugin["before:highlightBlock"](Object.assign({ block: data.el }, data));
				};
			}
			if (plugin["after:highlightBlock"] && !plugin["after:highlightElement"]) {
				plugin["after:highlightElement"] = (data) => {
					plugin["after:highlightBlock"](Object.assign({ block: data.el }, data));
				};
			}
		}
		/**
		* @param {HLJSPlugin} plugin
		*/
		function addPlugin(plugin) {
			upgradePluginAPI(plugin);
			plugins.push(plugin);
		}
		/**
		* @param {HLJSPlugin} plugin
		*/
		function removePlugin(plugin) {
			const index = plugins.indexOf(plugin);
			if (index !== -1) {
				plugins.splice(index, 1);
			}
		}
		/**
		*
		* @param {PluginEvent} event
		* @param {any} args
		*/
		function fire(event, args) {
			const cb = event;
			plugins.forEach(function(plugin) {
				if (plugin[cb]) {
					plugin[cb](args);
				}
			});
		}
		/**
		* DEPRECATED
		* @param {HighlightedHTMLElement} el
		*/
		function deprecateHighlightBlock(el) {
			deprecated("10.7.0", "highlightBlock will be removed entirely in v12.0");
			deprecated("10.7.0", "Please use highlightElement now.");
			return highlightElement(el);
		}
		Object.assign(hljs$1, {
			highlight: highlight$2,
			highlightAuto,
			highlightAll,
			highlightElement,
			highlightBlock: deprecateHighlightBlock,
			configure,
			initHighlighting,
			initHighlightingOnLoad,
			registerLanguage,
			unregisterLanguage,
			listLanguages,
			getLanguage,
			registerAliases,
			autoDetection,
			inherit,
			addPlugin,
			removePlugin
		});
		hljs$1.debugMode = function() {
			SAFE_MODE = false;
		};
		hljs$1.safeMode = function() {
			SAFE_MODE = true;
		};
		hljs$1.versionString = version;
		hljs$1.regex = {
			concat,
			lookahead,
			either,
			optional,
			anyNumberOfTimes
		};
		for (const key in MODES$1) {
			if (typeof MODES$1[key] === "object") {
				deepFreeze(MODES$1[key]);
			}
		}
		Object.assign(hljs$1, MODES$1);
		return hljs$1;
	};
	const highlight = HLJS({});
	highlight.newInstance = () => HLJS({});
	module.exports = highlight;
	highlight.HighlightJS = highlight;
	highlight.default = highlight;
}));

//#endregion
//#region node_modules/highlight.js/es/core.js
var import_core, core_default;
var init_core = __esmMin((() => {
	import_core = /* @__PURE__ */ __toESM(require_core(), 1);
	core_default = import_core.default;
}));

//#endregion
//#region node_modules/highlight.js/es/languages/bash.js
/** @type LanguageFn */
function bash(hljs$1) {
	const regex = hljs$1.regex;
	const VAR = {};
	const BRACED_VAR = {
		begin: /\$\{/,
		end: /\}/,
		contains: ["self", {
			begin: /:-/,
			contains: [VAR]
		}]
	};
	Object.assign(VAR, {
		className: "variable",
		variants: [{ begin: regex.concat(/\$[\w\d#@][\w\d_]*/, `(?![\\w\\d])(?![$])`) }, BRACED_VAR]
	});
	const SUBST = {
		className: "subst",
		begin: /\$\(/,
		end: /\)/,
		contains: [hljs$1.BACKSLASH_ESCAPE]
	};
	const COMMENT$2 = hljs$1.inherit(hljs$1.COMMENT(), {
		match: [/(^|\s)/, /#.*$/],
		scope: { 2: "comment" }
	});
	const HERE_DOC = {
		begin: /<<-?\s*(?=\w+)/,
		starts: { contains: [hljs$1.END_SAME_AS_BEGIN({
			begin: /(\w+)/,
			end: /(\w+)/,
			className: "string"
		})] }
	};
	const QUOTE_STRING = {
		className: "string",
		begin: /"/,
		end: /"/,
		contains: [
			hljs$1.BACKSLASH_ESCAPE,
			VAR,
			SUBST
		]
	};
	SUBST.contains.push(QUOTE_STRING);
	const ESCAPED_QUOTE = { match: /\\"/ };
	const APOS_STRING = {
		className: "string",
		begin: /'/,
		end: /'/
	};
	const ESCAPED_APOS = { match: /\\'/ };
	const ARITHMETIC = {
		begin: /\$?\(\(/,
		end: /\)\)/,
		contains: [
			{
				begin: /\d+#[0-9a-f]+/,
				className: "number"
			},
			hljs$1.NUMBER_MODE,
			VAR
		]
	};
	const SH_LIKE_SHELLS = [
		"fish",
		"bash",
		"zsh",
		"sh",
		"csh",
		"ksh",
		"tcsh",
		"dash",
		"scsh"
	];
	const KNOWN_SHEBANG = hljs$1.SHEBANG({
		binary: `(${SH_LIKE_SHELLS.join("|")})`,
		relevance: 10
	});
	const FUNCTION = {
		className: "function",
		begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/,
		returnBegin: true,
		contains: [hljs$1.inherit(hljs$1.TITLE_MODE, { begin: /\w[\w\d_]*/ })],
		relevance: 0
	};
	const KEYWORDS$6 = [
		"if",
		"then",
		"else",
		"elif",
		"fi",
		"time",
		"for",
		"while",
		"until",
		"in",
		"do",
		"done",
		"case",
		"esac",
		"coproc",
		"function",
		"select"
	];
	const LITERALS$6 = ["true", "false"];
	const PATH_MODE = { match: /(\/[a-z._-]+)+/ };
	const SHELL_BUILT_INS = [
		"break",
		"cd",
		"continue",
		"eval",
		"exec",
		"exit",
		"export",
		"getopts",
		"hash",
		"pwd",
		"readonly",
		"return",
		"shift",
		"test",
		"times",
		"trap",
		"umask",
		"unset"
	];
	const BASH_BUILT_INS = [
		"alias",
		"bind",
		"builtin",
		"caller",
		"command",
		"declare",
		"echo",
		"enable",
		"help",
		"let",
		"local",
		"logout",
		"mapfile",
		"printf",
		"read",
		"readarray",
		"source",
		"sudo",
		"type",
		"typeset",
		"ulimit",
		"unalias"
	];
	const ZSH_BUILT_INS = [
		"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"
	];
	const GNU_CORE_UTILS = [
		"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: KEYWORDS$6,
			literal: LITERALS$6,
			built_in: [
				...SHELL_BUILT_INS,
				...BASH_BUILT_INS,
				"set",
				"shopt",
				...ZSH_BUILT_INS,
				...GNU_CORE_UTILS
			]
		},
		contains: [
			KNOWN_SHEBANG,
			hljs$1.SHEBANG(),
			FUNCTION,
			ARITHMETIC,
			COMMENT$2,
			HERE_DOC,
			PATH_MODE,
			QUOTE_STRING,
			ESCAPED_QUOTE,
			APOS_STRING,
			ESCAPED_APOS,
			VAR
		]
	};
}
var init_bash = __esmMin((() => {}));

//#endregion
//#region node_modules/highlight.js/es/languages/css.js
/** @type LanguageFn */
function css(hljs$1) {
	const regex = hljs$1.regex;
	const modes = MODES(hljs$1);
	const VENDOR_PREFIX = { begin: /-(webkit|moz|ms|o)-(?=[a-z])/ };
	const AT_MODIFIERS = "and or not only";
	const AT_PROPERTY_RE = /@-?\w[\w]*(-\w+)*/;
	const IDENT_RE$6 = "[a-zA-Z-][a-zA-Z0-9_-]*";
	const STRINGS = [hljs$1.APOS_STRING_MODE, hljs$1.QUOTE_STRING_MODE];
	return {
		name: "CSS",
		case_insensitive: true,
		illegal: /[=|'\$]/,
		keywords: { keyframePosition: "from to" },
		classNameAliases: { keyframePosition: "selector-tag" },
		contains: [
			modes.BLOCK_COMMENT,
			VENDOR_PREFIX,
			modes.CSS_NUMBER_MODE,
			{
				className: "selector-id",
				begin: /#[A-Za-z0-9_-]+/,
				relevance: 0
			},
			{
				className: "selector-class",
				begin: "\\." + IDENT_RE$6,
				relevance: 0
			},
			modes.ATTRIBUTE_SELECTOR_MODE,
			{
				className: "selector-pseudo",
				variants: [{ begin: ":(" + PSEUDO_CLASSES.join("|") + ")" }, { begin: ":(:)?(" + PSEUDO_ELEMENTS.join("|") + ")" }]
			},
			modes.CSS_VARIABLE,
			{
				className: "attribute",
				begin: "\\b(" + ATTRIBUTES.join("|") + ")\\b"
			},
			{
				begin: /:/,
				end: /[;}{]/,
				contains: [
					modes.BLOCK_COMMENT,
					modes.HEXCOLOR,
					modes.IMPORTANT,
					modes.CSS_NUMBER_MODE,
					...STRINGS,
					{
						begin: /(url|data-uri)\(/,
						end: /\)/,
						relevance: 0,
						keywords: { built_in: "url data-uri" },
						contains: [...STRINGS, {
							className: "string",
							begin: /[^)]/,
							endsWithParent: true,
							excludeEnd: true
						}]
					},
					modes.FUNCTION_DISPATCH
				]
			},
			{
				begin: regex.lookahead(/@/),
				end: "[{;]",
				relevance: 0,
				illegal: /:/,
				contains: [{
					className: "keyword",
					begin: AT_PROPERTY_RE
				}, {
					begin: /\s/,
					endsWithParent: true,
					excludeEnd: true,
					relevance: 0,
					keywords: {
						$pattern: /[a-z-]+/,
						keyword: AT_MODIFIERS,
						attribute: MEDIA_FEATURES.join(" ")
					},
					contains: [
						{
							begin: /[a-z-]+(?=:)/,
							className: "attribute"
						},
						...STRINGS,
						modes.CSS_NUMBER_MODE
					]
				}]
			},
			{
				className: "selector-tag",
				begin: "\\b(" + TAGS.join("|") + ")\\b"
			}
		]
	};
}
var MODES, HTML_TAGS, SVG_TAGS, TAGS, MEDIA_FEATURES, PSEUDO_CLASSES, PSEUDO_ELEMENTS, ATTRIBUTES;
var init_css$1 = __esmMin((() => {
	MODES = (hljs$1) => {
		return {
			IMPORTANT: {
				scope: "meta",
				begin: "!important"
			},
			BLOCK_COMMENT: hljs$1.C_BLOCK_COMMENT_MODE,
			HEXCOLOR: {
				scope: "number",
				begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/
			},
			FUNCTION_DISPATCH: {
				className: "built_in",
				begin: /[\w-]+(?=\()/
			},
			ATTRIBUTE_SELECTOR_MODE: {
				scope: "selector-attr",
				begin: /\[/,
				end: /\]/,
				illegal: "$",
				contains: [hljs$1.APOS_STRING_MODE, hljs$1.QUOTE_STRING_MODE]
			},
			CSS_NUMBER_MODE: {
				scope: "number",
				begin: hljs$1.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_-]*/
			}
		};
	};
	HTML_TAGS = [
		"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"
	];
	SVG_TAGS = [
		"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"
	];
	TAGS = [...HTML_TAGS, ...SVG_TAGS];
	MEDIA_FEATURES = [
		"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();
	PSEUDO_CLASSES = [
		"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();
	PSEUDO_ELEMENTS = [
		"after",
		"backdrop",
		"before",
		"cue",
		"cue-region",
		"first-letter",
		"first-line",
		"grammar-error",
		"marker",
		"part",
		"placeholder",
		"selection",
		"slotted",
		"spelling-error"
	].sort().reverse();
	ATTRIBUTES = [
		"accent-color",
		"align-content",
		"align-items",
		"align-self",
		"alignment-baseline",
		"all",
		"anchor-name",
		"animation",
		"animation-composition",
		"animation-delay",
		"animation-direction",
		"animation-duration",
		"animation-fill-mode",
		"animation-iteration-count",
		"animation-name",
		"animation-play-state",
		"animation-range",
		"animation-range-end",
		"animation-range-start",
		"animation-timeline",
		"animation-timing-function",
		"appearance",
		"aspect-ratio",
		"backdrop-filter",
		"backface-visibility",
		"background",
		"background-attachment",
		"background-blend-mode",
		"background-clip",
		"background-color",
		"background-image",
		"background-origin",
		"background-position",
		"background-position-x",
		"background-position-y",
		"background-repeat",
		"background-size",
		"baseline-shift",
		"block-size",
		"border",
		"border-block",
		"border-block-color",
		"border-block-end",
		"border-block-end-color",
		"border-block-end-style",
		"border-block-end-width",
		"border-block-start",
		"border-block-start-color",
		"border-block-start-style",
		"border-block-start-width",
		"border-block-style",
		"border-block-width",
		"border-bottom",
		"border-bottom-color",
		"border-bottom-left-radius",
		"border-bottom-right-radius",
		"border-bottom-style",
		"border-bottom-width",
		"border-collapse",
		"border-color",
		"border-end-end-radius",
		"border-end-start-radius",
		"border-image",
		"border-image-outset",
		"border-image-repeat",
		"border-image-slice",
		"border-image-source",
		"border-image-width",
		"border-inline",
		"border-inline-color",
		"border-inline-end",
		"border-inline-end-color",
		"border-inline-end-style",
		"border-inline-end-width",
		"border-inline-start",
		"border-inline-start-color",
		"border-inline-start-style",
		"border-inline-start-width",
		"border-inline-style",
		"border-inline-width",
		"border-left",
		"border-left-color",
		"border-left-style",
		"border-left-width",
		"border-radius",
		"border-right",
		"border-right-color",
		"border-right-style",
		"border-right-width",
		"border-spacing",
		"border-start-end-radius",
		"border-start-start-radius",
		"border-style",
		"border-top",
		"border-top-color",
		"border-top-left-radius",
		"border-top-right-radius",
		"border-top-style",
		"border-top-width",
		"border-width",
		"bottom",
		"box-align",
		"box-decoration-break",
		"box-direction",
		"box-flex",
		"box-flex-group",
		"box-lines",
		"box-ordinal-group",
		"box-orient",
		"box-pack",
		"box-shadow",
		"box-sizing",
		"break-after",
		"break-before",
		"break-inside",
		"caption-side",
		"caret-color",
		"clear",
		"clip",
		"clip-path",
		"clip-rule",
		"color",
		"color-interpolation",
		"color-interpolation-filters",
		"color-profile",
		"color-rendering",
		"color-scheme",
		"column-count",
		"column-fill",
		"column-gap",
		"column-rule",
		"column-rule-color",
		"column-rule-style",
		"column-rule-width",
		"column-span",
		"column-width",
		"columns",
		"contain",
		"contain-intrinsic-block-size",
		"contain-intrinsic-height",
		"contain-intrinsic-inline-size",
		"contain-intrinsic-size",
		"contain-intrinsic-width",
		"container",
		"container-name",
		"container-type",
		"content",
		"content-visibility",
		"counter-increment",
		"counter-reset",
		"counter-set",
		"cue",
		"cue-after",
		"cue-before",
		"cursor",
		"cx",
		"cy",
		"direction",
		"display",
		"dominant-baseline",
		"empty-cells",
		"enable-background",
		"field-sizing",
		"fill",
		"fill-opacity",
		"fill-rule",
		"filter",
		"flex",
		"flex-basis",
		"flex-direction",
		"flex-flow",
		"flex-grow",
		"flex-shrink",
		"flex-wrap",
		"float",
		"flood-color",
		"flood-opacity",
		"flow",
		"font",
		"font-display",
		"font-family",
		"font-feature-settings",
		"font-kerning",
		"font-language-override",
		"font-optical-sizing",
		"font-palette",
		"font-size",
		"font-size-adjust",
		"font-smooth",
		"font-smoothing",
		"font-stretch",
		"font-style",
		"font-synthesis",
		"font-synthesis-position",
		"font-synthesis-small-caps",
		"font-synthesis-style",
		"font-synthesis-weight",
		"font-variant",
		"font-variant-alternates",
		"font-variant-caps",
		"font-variant-east-asian",
		"font-variant-emoji",
		"font-variant-ligatures",
		"font-variant-numeric",
		"font-variant-position",
		"font-variation-settings",
		"font-weight",
		"forced-color-adjust",
		"gap",
		"glyph-orientation-horizontal",
		"glyph-orientation-vertical",
		"grid",
		"grid-area",
		"grid-auto-columns",
		"grid-auto-flow",
		"grid-auto-rows",
		"grid-column",
		"grid-column-end",
		"grid-column-start",
		"grid-gap",
		"grid-row",
		"grid-row-end",
		"grid-row-start",
		"grid-template",
		"grid-template-areas",
		"grid-template-columns",
		"grid-template-rows",
		"hanging-punctuation",
		"height",
		"hyphenate-character",
		"hyphenate-limit-chars",
		"hyphens",
		"icon",
		"image-orientation",
		"image-rendering",
		"image-resolution",
		"ime-mode",
		"initial-letter",
		"initial-letter-align",
		"inline-size",
		"inset",
		"inset-area",
		"inset-block",
		"inset-block-end",
		"inset-block-start",
		"inset-inline",
		"inset-inline-end",
		"inset-inline-start",
		"isolation",
		"justify-content",
		"justify-items",
		"justify-self",
		"kerning",
		"left",
		"letter-spacing",
		"lighting-color",
		"line-break",
		"line-height",
		"line-height-step",
		"list-style",
		"list-style-image",
		"list-style-position",
		"list-style-type",
		"margin",
		"margin-block",
		"margin-block-end",
		"margin-block-start",
		"margin-bottom",
		"margin-inline",
		"margin-inline-end",
		"margin-inline-start",
		"margin-left",
		"margin-right",
		"margin-top",
		"margin-trim",
		"marker",
		"marker-end",
		"marker-mid",
		"marker-start",
		"marks",
		"mask",
		"mask-border",
		"mask-border-mode",
		"mask-border-outset",
		"mask-border-repeat",
		"mask-border-slice",
		"mask-border-source",
		"mask-border-width",
		"mask-clip",
		"mask-composite",
		"mask-image",
		"mask-mode",
		"mask-origin",
		"mask-position",
		"mask-repeat",
		"mask-size",
		"mask-type",
		"masonry-auto-flow",
		"math-depth",
		"math-shift",
		"math-style",
		"max-block-size",
		"max-height",
		"max-inline-size",
		"max-width",
		"min-block-size",
		"min-height",
		"min-inline-size",
		"min-width",
		"mix-blend-mode",
		"nav-down",
		"nav-index",
		"nav-left",
		"nav-right",
		"nav-up",
		"none",
		"normal",
		"object-fit",
		"object-position",
		"offset",
		"offset-anchor",
		"offset-distance",
		"offset-path",
		"offset-position",
		"offset-rotate",
		"opacity",
		"order",
		"orphans",
		"outline",
		"outline-color",
		"outline-offset",
		"outline-style",
		"outline-width",
		"overflow",
		"overflow-anchor",
		"overflow-block",
		"overflow-clip-margin",
		"overflow-inline",
		"overflow-wrap",
		"overflow-x",
		"overflow-y",
		"overlay",
		"overscroll-behavior",
		"overscroll-behavior-block",
		"overscroll-behavior-inline",
		"overscroll-behavior-x",
		"overscroll-behavior-y",
		"padding",
		"padding-block",
		"padding-block-end",
		"padding-block-start",
		"padding-bottom",
		"padding-inline",
		"padding-inline-end",
		"padding-inline-start",
		"padding-left",
		"padding-right",
		"padding-top",
		"page",
		"page-break-after",
		"page-break-before",
		"page-break-inside",
		"paint-order",
		"pause",
		"pause-after",
		"pause-before",
		"perspective",
		"perspective-origin",
		"place-content",
		"place-items",
		"place-self",
		"pointer-events",
		"position",
		"position-anchor",
		"position-visibility",
		"print-color-adjust",
		"quotes",
		"r",
		"resize",
		"rest",
		"rest-after",
		"rest-before",
		"right",
		"rotate",
		"row-gap",
		"ruby-align",
		"ruby-position",
		"scale",
		"scroll-behavior",
		"scroll-margin",
		"scroll-margin-block",
		"scroll-margin-block-end",
		"scroll-margin-block-start",
		"scroll-margin-bottom",
		"scroll-margin-inline",
		"scroll-margin-inline-end",
		"scroll-margin-inline-start",
		"scroll-margin-left",
		"scroll-margin-right",
		"scroll-margin-top",
		"scroll-padding",
		"scroll-padding-block",
		"scroll-padding-block-end",
		"scroll-padding-block-start",
		"scroll-padding-bottom",
		"scroll-padding-inline",
		"scroll-padding-inline-end",
		"scroll-padding-inline-start",
		"scroll-padding-left",
		"scroll-padding-right",
		"scroll-padding-top",
		"scroll-snap-align",
		"scroll-snap-stop",
		"scroll-snap-type",
		"scroll-timeline",
		"scroll-timeline-axis",
		"scroll-timeline-name",
		"scrollbar-color",
		"scrollbar-gutter",
		"scrollbar-width",
		"shape-image-threshold",
		"shape-margin",
		"shape-outside",
		"shape-rendering",
		"speak",
		"speak-as",
		"src",
		"stop-color",
		"stop-opacity",
		"stroke",
		"stroke-dasharray",
		"stroke-dashoffset",
		"stroke-linecap",
		"stroke-linejoin",
		"stroke-miterlimit",
		"stroke-opacity",
		"stroke-width",
		"tab-size",
		"table-layout",
		"text-align",
		"text-align-all",
		"text-align-last",
		"text-anchor",
		"text-combine-upright",
		"text-decoration",
		"text-decoration-color",
		"text-decoration-line",
		"text-decoration-skip",
		"text-decoration-skip-ink",
		"text-decoration-style",
		"text-decoration-thickness",
		"text-emphasis",
		"text-emphasis-color",
		"text-emphasis-position",
		"text-emphasis-style",
		"text-indent",
		"text-justify",
		"text-orientation",
		"text-overflow",
		"text-rendering",
		"text-shadow",
		"text-size-adjust",
		"text-transform",
		"text-underline-offset",
		"text-underline-position",
		"text-wrap",
		"text-wrap-mode",
		"text-wrap-style",
		"timeline-scope",
		"top",
		"touch-action",
		"transform",
		"transform-box",
		"transform-origin",
		"transform-style",
		"transition",
		"transition-behavior",
		"transition-delay",
		"transition-duration",
		"transition-property",
		"transition-timing-function",
		"translate",
		"unicode-bidi",
		"user-modify",
		"user-select",
		"vector-effect",
		"vertical-align",
		"view-timeline",
		"view-timeline-axis",
		"view-timeline-inset",
		"view-timeline-name",
		"view-transition-name",
		"visibility",
		"voice-balance",
		"voice-duration",
		"voice-family",
		"voice-pitch",
		"voice-range",
		"voice-rate",
		"voice-stress",
		"voice-volume",
		"white-space",
		"white-space-collapse",
		"widows",
		"width",
		"will-change",
		"word-break",
		"word-spacing",
		"word-wrap",
		"writing-mode",
		"x",
		"y",
		"z-index",
		"zoom"
	].sort().reverse();
}));

//#endregion
//#region node_modules/highlight.js/es/languages/javascript.js
/** @type LanguageFn */
function javascript(hljs$1) {
	const regex = hljs$1.regex;
	/**
	* Takes a string like "<Booger" and checks to see
	* if we can find a matching "</Booger" later in the
	* content.
	* @param {RegExpMatchArray} match
	* @param {{after:number}} param1
	*/
	const hasClosingTag = (match, { after }) => {
		const tag = "</" + match[0].slice(1);
		const pos = match.input.indexOf(tag, after);
		return pos !== -1;
	};
	const IDENT_RE$1$1 = IDENT_RE$1;
	const FRAGMENT = {
		begin: "<>",
		end: "</>"
	};
	const XML_SELF_CLOSING = /<[A-Za-z0-9\\._:-]+\s*\/>/;
	const XML_TAG = {
		begin: /<[A-Za-z0-9\\._:-]+/,
		end: /\/[A-Za-z0-9\\._:-]+>|\/>/,
		isTrulyOpeningTag: (match, response) => {
			const afterMatchIndex = match[0].length + match.index;
			const nextChar = match.input[afterMatchIndex];
			if (nextChar === "<" || nextChar === ",") {
				response.ignoreMatch();
				return;
			}
			if (nextChar === ">") {
				if (!hasClosingTag(match, { after: afterMatchIndex })) {
					response.ignoreMatch();
				}
			}
			let m$3;
			const afterMatch = match.input.substring(afterMatchIndex);
			if (m$3 = afterMatch.match(/^\s*=/)) {
				response.ignoreMatch();
				return;
			}
			if (m$3 = afterMatch.match(/^\s+extends\s+/)) {
				if (m$3.index === 0) {
					response.ignoreMatch();
					return;
				}
			}
		}
	};
	const KEYWORDS$1$1 = {
		$pattern: IDENT_RE$1,
		keyword: KEYWORDS$1,
		literal: LITERALS$1,
		built_in: BUILT_INS$1,
		"variable.language": BUILT_IN_VARIABLES$1
	};
	const decimalDigits$2 = "[0-9](_?[0-9])*";
	const frac$2 = `\\.(${decimalDigits$2})`;
	const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;
	const NUMBER = {
		className: "number",
		variants: [
			{ begin: `(\\b(${decimalInteger})((${frac$2})|\\.)?|(${frac$2}))` + `[eE][+-]?(${decimalDigits$2})\\b` },
			{ begin: `\\b(${decimalInteger})\\b((${frac$2})\\b|\\.)?|(${frac$2})\\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
	};
	const SUBST = {
		className: "subst",
		begin: "\\$\\{",
		end: "\\}",
		keywords: KEYWORDS$1$1,
		contains: []
	};
	const HTML_TEMPLATE = {
		begin: ".?html`",
		end: "",
		starts: {
			end: "`",
			returnEnd: false,
			contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
			subLanguage: "xml"
		}
	};
	const CSS_TEMPLATE = {
		begin: ".?css`",
		end: "",
		starts: {
			end: "`",
			returnEnd: false,
			contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
			subLanguage: "css"
		}
	};
	const GRAPHQL_TEMPLATE = {
		begin: ".?gql`",
		end: "",
		starts: {
			end: "`",
			returnEnd: false,
			contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
			subLanguage: "graphql"
		}
	};
	const TEMPLATE_STRING = {
		className: "string",
		begin: "`",
		end: "`",
		contains: [hljs$1.BACKSLASH_ESCAPE, SUBST]
	};
	const JSDOC_COMMENT = hljs$1.COMMENT(/\/\*\*(?!\/)/, "\\*/", {
		relevance: 0,
		contains: [{
			begin: "(?=@[A-Za-z]+)",
			relevance: 0,
			contains: [
				{
					className: "doctag",
					begin: "@[A-Za-z]+"
				},
				{
					className: "type",
					begin: "\\{",
					end: "\\}",
					excludeEnd: true,
					excludeBegin: true,
					relevance: 0
				},
				{
					className: "variable",
					begin: IDENT_RE$1$1 + "(?=\\s*(-)|$)",
					endsParent: true,
					relevance: 0
				},
				{
					begin: /(?=[^\n])\s/,
					relevance: 0
				}
			]
		}]
	});
	const COMMENT$2 = {
		className: "comment",
		variants: [
			JSDOC_COMMENT,
			hljs$1.C_BLOCK_COMMENT_MODE,
			hljs$1.C_LINE_COMMENT_MODE
		]
	};
	const SUBST_INTERNALS = [
		hljs$1.APOS_STRING_MODE,
		hljs$1.QUOTE_STRING_MODE,
		HTML_TEMPLATE,
		CSS_TEMPLATE,
		GRAPHQL_TEMPLATE,
		TEMPLATE_STRING,
		{ match: /\$\d+/ },
		NUMBER
	];
	SUBST.contains = SUBST_INTERNALS.concat({
		begin: /\{/,
		end: /\}/,
		keywords: KEYWORDS$1$1,
		contains: ["self"].concat(SUBST_INTERNALS)
	});
	const SUBST_AND_COMMENTS = [].concat(COMMENT$2, SUBST.contains);
	const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([{
		begin: /(\s*)\(/,
		end: /\)/,
		keywords: KEYWORDS$1$1,
		contains: ["self"].concat(SUBST_AND_COMMENTS)
	}]);
	const PARAMS = {
		className: "params",
		begin: /(\s*)\(/,
		end: /\)/,
		excludeBegin: true,
		excludeEnd: true,
		keywords: KEYWORDS$1$1,
		contains: PARAMS_CONTAINS
	};
	const CLASS_OR_EXTENDS = { variants: [{
		match: [
			/class/,
			/\s+/,
			IDENT_RE$1$1,
			/\s+/,
			/extends/,
			/\s+/,
			regex.concat(IDENT_RE$1$1, "(", regex.concat(/\./, IDENT_RE$1$1), ")*")
		],
		scope: {
			1: "keyword",
			3: "title.class",
			5: "keyword",
			7: "title.class.inherited"
		}
	}, {
		match: [
			/class/,
			/\s+/,
			IDENT_RE$1$1
		],
		scope: {
			1: "keyword",
			3: "title.class"
		}
	}] };
	const CLASS_REFERENCE = {
		relevance: 0,
		match: regex.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: { _: [...TYPES$1, ...ERROR_TYPES$1] }
	};
	const USE_STRICT = {
		label: "use_strict",
		className: "meta",
		relevance: 10,
		begin: /^\s*['"]use (strict|asm)['"]/
	};
	const FUNCTION_DEFINITION = {
		variants: [{ match: [
			/function/,
			/\s+/,
			IDENT_RE$1$1,
			/(?=\s*\()/
		] }, { match: [/function/, /\s*(?=\()/] }],
		className: {
			1: "keyword",
			3: "title.function"
		},
		label: "func.def",
		contains: [PARAMS],
		illegal: /%/
	};
	const UPPER_CASE_CONSTANT = {
		relevance: 0,
		match: /\b[A-Z][A-Z_0-9]+\b/,
		className: "variable.constant"
	};
	function noneOf(list) {
		return regex.concat("(?!", list.join("|"), ")");
	}
	const FUNCTION_CALL = {
		match: regex.concat(/\b/, noneOf([
			...BUILT_IN_GLOBALS$1,
			"super",
			"import"
		].map((x$2) => `${x$2}\\s*\\(`)), IDENT_RE$1$1, regex.lookahead(/\s*\(/)),
		className: "title.function",
		relevance: 0
	};
	const PROPERTY_ACCESS = {
		begin: regex.concat(/\./, regex.lookahead(regex.concat(IDENT_RE$1$1, /(?![0-9A-Za-z$_(])/))),
		end: IDENT_RE$1$1,
		excludeBegin: true,
		keywords: "prototype",
		className: "property",
		relevance: 0
	};
	const GETTER_OR_SETTER = {
		match: [
			/get|set/,
			/\s+/,
			IDENT_RE$1$1,
			/(?=\()/
		],
		className: {
			1: "keyword",
			3: "title.function"
		},
		contains: [{ begin: /\(\)/ }, PARAMS]
	};
	const FUNC_LEAD_IN_RE = "(\\(" + "[^()]*(\\(" + "[^()]*(\\(" + "[^()]*" + "\\)[^()]*)*" + "\\)[^()]*)*" + "\\)|" + hljs$1.UNDERSCORE_IDENT_RE + ")\\s*=>";
	const FUNCTION_VARIABLE = {
		match: [
			/const|var|let/,
			/\s+/,
			IDENT_RE$1$1,
			/\s*/,
			/=\s*/,
			/(async\s*)?/,
			regex.lookahead(FUNC_LEAD_IN_RE)
		],
		keywords: "async",
		className: {
			1: "keyword",
			3: "title.function"
		},
		contains: [PARAMS]
	};
	return {
		name: "JavaScript",
		aliases: [
			"js",
			"jsx",
			"mjs",
			"cjs"
		],
		keywords: KEYWORDS$1$1,
		exports: {
			PARAMS_CONTAINS,
			CLASS_REFERENCE
		},
		illegal: /#(?![$_A-z])/,
		contains: [
			hljs$1.SHEBANG({
				label: "shebang",
				binary: "node",
				relevance: 5
			}),
			USE_STRICT,
			hljs$1.APOS_STRING_MODE,
			hljs$1.QUOTE_STRING_MODE,
			HTML_TEMPLATE,
			CSS_TEMPLATE,
			GRAPHQL_TEMPLATE,
			TEMPLATE_STRING,
			COMMENT$2,
			{ match: /\$\d+/ },
			NUMBER,
			CLASS_REFERENCE,
			{
				scope: "attr",
				match: IDENT_RE$1$1 + regex.lookahead(":"),
				relevance: 0
			},
			FUNCTION_VARIABLE,
			{
				begin: "(" + hljs$1.RE_STARTERS_RE + "|\\b(case|return|throw)\\b)\\s*",
				keywords: "return throw case",
				relevance: 0,
				contains: [
					COMMENT$2,
					hljs$1.REGEXP_MODE,
					{
						className: "function",
						begin: FUNC_LEAD_IN_RE,
						returnBegin: true,
						end: "\\s*=>",
						contains: [{
							className: "params",
							variants: [
								{
									begin: hljs$1.UNDERSCORE_IDENT_RE,
									relevance: 0
								},
								{
									className: null,
									begin: /\(\s*\)/,
									skip: true
								},
								{
									begin: /(\s*)\(/,
									end: /\)/,
									excludeBegin: true,
									excludeEnd: true,
									keywords: KEYWORDS$1$1,
									contains: PARAMS_CONTAINS
								}
							]
						}]
					},
					{
						begin: /,/,
						relevance: 0
					},
					{
						match: /\s+/,
						relevance: 0
					},
					{
						variants: [
							{
								begin: FRAGMENT.begin,
								end: FRAGMENT.end
							},
							{ match: XML_SELF_CLOSING },
							{
								begin: XML_TAG.begin,
								"on:begin": XML_TAG.isTrulyOpeningTag,
								end: XML_TAG.end
							}
						],
						subLanguage: "xml",
						contains: [{
							begin: XML_TAG.begin,
							end: XML_TAG.end,
							skip: true,
							contains: ["self"]
						}]
					}
				]
			},
			FUNCTION_DEFINITION,
			{ beginKeywords: "while if switch catch for" },
			{
				begin: "\\b(?!function)" + hljs$1.UNDERSCORE_IDENT_RE + "\\(" + "[^()]*(\\(" + "[^()]*(\\(" + "[^()]*" + "\\)[^()]*)*" + "\\)[^()]*)*" + "\\)\\s*\\{",
				returnBegin: true,
				label: "func.def",
				contains: [PARAMS, hljs$1.inherit(hljs$1.TITLE_MODE, {
					begin: IDENT_RE$1$1,
					className: "title.function"
				})]
			},
			{
				match: /\.\.\./,
				relevance: 0
			},
			PROPERTY_ACCESS,
			{
				match: "\\$" + IDENT_RE$1$1,
				relevance: 0
			},
			{
				match: [/\bconstructor(?=\s*\()/],
				className: { 1: "title.function" },
				contains: [PARAMS]
			},
			FUNCTION_CALL,
			UPPER_CASE_CONSTANT,
			CLASS_OR_EXTENDS,
			GETTER_OR_SETTER,
			{ match: /\$[(.]/ }
		]
	};
}
var IDENT_RE$1, KEYWORDS$1, LITERALS$1, TYPES$1, ERROR_TYPES$1, BUILT_IN_GLOBALS$1, BUILT_IN_VARIABLES$1, BUILT_INS$1;
var init_javascript = __esmMin((() => {
	IDENT_RE$1 = "[A-Za-z$_][0-9A-Za-z$_]*";
	KEYWORDS$1 = [
		"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"
	];
	LITERALS$1 = [
		"true",
		"false",
		"null",
		"undefined",
		"NaN",
		"Infinity"
	];
	TYPES$1 = [
		"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"
	];
	ERROR_TYPES$1 = [
		"Error",
		"EvalError",
		"InternalError",
		"RangeError",
		"ReferenceError",
		"SyntaxError",
		"TypeError",
		"URIError"
	];
	BUILT_IN_GLOBALS$1 = [
		"setInterval",
		"setTimeout",
		"clearInterval",
		"clearTimeout",
		"require",
		"exports",
		"eval",
		"isFinite",
		"isNaN",
		"parseFloat",
		"parseInt",
		"decodeURI",
		"decodeURIComponent",
		"encodeURI",
		"encodeURIComponent",
		"escape",
		"unescape"
	];
	BUILT_IN_VARIABLES$1 = [
		"arguments",
		"this",
		"super",
		"console",
		"window",
		"document",
		"localStorage",
		"sessionStorage",
		"module",
		"global"
	];
	BUILT_INS$1 = [].concat(BUILT_IN_GLOBALS$1, TYPES$1, ERROR_TYPES$1);
}));

//#endregion
//#region node_modules/highlight.js/es/languages/json.js
function json(hljs$1) {
	const ATTRIBUTE = {
		className: "attr",
		begin: /"(\\.|[^\\"\r\n])*"(?=\s*:)/,
		relevance: 1.01
	};
	const PUNCTUATION = {
		match: /[{}[\],:]/,
		className: "punctuation",
		relevance: 0
	};
	const LITERALS$6 = [
		"true",
		"false",
		"null"
	];
	const LITERALS_MODE = {
		scope: "literal",
		beginKeywords: LITERALS$6.join(" ")
	};
	return {
		name: "JSON",
		aliases: ["jsonc"],
		keywords: { literal: LITERALS$6 },
		contains: [
			ATTRIBUTE,
			PUNCTUATION,
			hljs$1.QUOTE_STRING_MODE,
			LITERALS_MODE,
			hljs$1.C_NUMBER_MODE,
			hljs$1.C_LINE_COMMENT_MODE,
			hljs$1.C_BLOCK_COMMENT_MODE
		],
		illegal: "\\S"
	};
}
var init_json$1 = __esmMin((() => {}));

//#endregion
//#region node_modules/highlight.js/es/languages/python.js
function python(hljs$1) {
	const regex = hljs$1.regex;
	const IDENT_RE$6 = /[\p{XID_Start}_]\p{XID_Continue}*/u;
	const RESERVED_WORDS = [
		"and",
		"as",
		"assert",
		"async",
		"await",
		"break",
		"case",
		"class",
		"continue",
		"def",
		"del",
		"elif",
		"else",
		"except",
		"finally",
		"for",
		"from",
		"global",
		"if",
		"import",
		"in",
		"is",
		"lambda",
		"match",
		"nonlocal|10",
		"not",
		"or",
		"pass",
		"raise",
		"return",
		"try",
		"while",
		"with",
		"yield"
	];
	const BUILT_INS$6 = [
		"__import__",
		"abs",
		"all",
		"any",
		"ascii",
		"bin",
		"bool",
		"breakpoint",
		"bytearray",
		"bytes",
		"callable",
		"chr",
		"classmethod",
		"compile",
		"complex",
		"delattr",
		"dict",
		"dir",
		"divmod",
		"enumerate",
		"eval",
		"exec",
		"filter",
		"float",
		"format",
		"frozenset",
		"getattr",
		"globals",
		"hasattr",
		"hash",
		"help",
		"hex",
		"id",
		"input",
		"int",
		"isinstance",
		"issubclass",
		"iter",
		"len",
		"list",
		"locals",
		"map",
		"max",
		"memoryview",
		"min",
		"next",
		"object",
		"oct",
		"open",
		"ord",
		"pow",
		"print",
		"property",
		"range",
		"repr",
		"reversed",
		"round",
		"set",
		"setattr",
		"slice",
		"sorted",
		"staticmethod",
		"str",
		"sum",
		"super",
		"tuple",
		"type",
		"vars",
		"zip"
	];
	const LITERALS$6 = [
		"__debug__",
		"Ellipsis",
		"False",
		"None",
		"NotImplemented",
		"True"
	];
	const TYPES$6 = [
		"Any",
		"Callable",
		"Coroutine",
		"Dict",
		"List",
		"Literal",
		"Generic",
		"Optional",
		"Sequence",
		"Set",
		"Tuple",
		"Type",
		"Union"
	];
	const KEYWORDS$6 = {
		$pattern: /[A-Za-z]\w+|__\w+__/,
		keyword: RESERVED_WORDS,
		built_in: BUILT_INS$6,
		literal: LITERALS$6,
		type: TYPES$6
	};
	const PROMPT = {
		className: "meta",
		begin: /^(>>>|\.\.\.) /
	};
	const SUBST = {
		className: "subst",
		begin: /\{/,
		end: /\}/,
		keywords: KEYWORDS$6,
		illegal: /#/
	};
	const LITERAL_BRACKET = {
		begin: /\{\{/,
		relevance: 0
	};
	const STRING = {
		className: "string",
		contains: [hljs$1.BACKSLASH_ESCAPE],
		variants: [
			{
				begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,
				end: /'''/,
				contains: [hljs$1.BACKSLASH_ESCAPE, PROMPT],
				relevance: 10
			},
			{
				begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,
				end: /"""/,
				contains: [hljs$1.BACKSLASH_ESCAPE, PROMPT],
				relevance: 10
			},
			{
				begin: /([fF][rR]|[rR][fF]|[fF])'''/,
				end: /'''/,
				contains: [
					hljs$1.BACKSLASH_ESCAPE,
					PROMPT,
					LITERAL_BRACKET,
					SUBST
				]
			},
			{
				begin: /([fF][rR]|[rR][fF]|[fF])"""/,
				end: /"""/,
				contains: [
					hljs$1.BACKSLASH_ESCAPE,
					PROMPT,
					LITERAL_BRACKET,
					SUBST
				]
			},
			{
				begin: /([uU]|[rR])'/,
				end: /'/,
				relevance: 10
			},
			{
				begin: /([uU]|[rR])"/,
				end: /"/,
				relevance: 10
			},
			{
				begin: /([bB]|[bB][rR]|[rR][bB])'/,
				end: /'/
			},
			{
				begin: /([bB]|[bB][rR]|[rR][bB])"/,
				end: /"/
			},
			{
				begin: /([fF][rR]|[rR][fF]|[fF])'/,
				end: /'/,
				contains: [
					hljs$1.BACKSLASH_ESCAPE,
					LITERAL_BRACKET,
					SUBST
				]
			},
			{
				begin: /([fF][rR]|[rR][fF]|[fF])"/,
				end: /"/,
				contains: [
					hljs$1.BACKSLASH_ESCAPE,
					LITERAL_BRACKET,
					SUBST
				]
			},
			hljs$1.APOS_STRING_MODE,
			hljs$1.QUOTE_STRING_MODE
		]
	};
	const digitpart = "[0-9](_?[0-9])*";
	const pointfloat = `(\\b(${digitpart}))?\\.(${digitpart})|\\b(${digitpart})\\.`;
	const lookahead$4 = `\\b|${RESERVED_WORDS.join("|")}`;
	const NUMBER = {
		className: "number",
		relevance: 0,
		variants: [
			{ begin: `(\\b(${digitpart})|(${pointfloat}))[eE][+-]?(${digitpart})[jJ]?(?=${lookahead$4})` },
			{ begin: `(${pointfloat})[jJ]?` },
			{ begin: `\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${lookahead$4})` },
			{ begin: `\\b0[bB](_?[01])+[lL]?(?=${lookahead$4})` },
			{ begin: `\\b0[oO](_?[0-7])+[lL]?(?=${lookahead$4})` },
			{ begin: `\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${lookahead$4})` },
			{ begin: `\\b(${digitpart})[jJ](?=${lookahead$4})` }
		]
	};
	const COMMENT_TYPE = {
		className: "comment",
		begin: regex.lookahead(/# type:/),
		end: /$/,
		keywords: KEYWORDS$6,
		contains: [{ begin: /# type:/ }, {
			begin: /#/,
			end: /\b\B/,
			endsWithParent: true
		}]
	};
	const PARAMS = {
		className: "params",
		variants: [{
			className: "",
			begin: /\(\s*\)/,
			skip: true
		}, {
			begin: /\(/,
			end: /\)/,
			excludeBegin: true,
			excludeEnd: true,
			keywords: KEYWORDS$6,
			contains: [
				"self",
				PROMPT,
				NUMBER,
				STRING,
				hljs$1.HASH_COMMENT_MODE
			]
		}]
	};
	SUBST.contains = [
		STRING,
		NUMBER,
		PROMPT
	];
	return {
		name: "Python",
		aliases: [
			"py",
			"gyp",
			"ipython"
		],
		unicodeRegex: true,
		keywords: KEYWORDS$6,
		illegal: /(<\/|\?)|=>/,
		contains: [
			PROMPT,
			NUMBER,
			{
				scope: "variable.language",
				match: /\bself\b/
			},
			{
				beginKeywords: "if",
				relevance: 0
			},
			{
				match: /\bor\b/,
				scope: "keyword"
			},
			STRING,
			COMMENT_TYPE,
			hljs$1.HASH_COMMENT_MODE,
			{
				match: [
					/\bdef/,
					/\s+/,
					IDENT_RE$6
				],
				scope: {
					1: "keyword",
					3: "title.function"
				},
				contains: [PARAMS]
			},
			{
				variants: [{ match: [
					/\bclass/,
					/\s+/,
					IDENT_RE$6,
					/\s*/,
					/\(\s*/,
					IDENT_RE$6,
					/\s*\)/
				] }, { match: [
					/\bclass/,
					/\s+/,
					IDENT_RE$6
				] }],
				scope: {
					1: "keyword",
					3: "title.class",
					6: "title.class.inherited"
				}
			},
			{
				className: "meta",
				begin: /^[\t ]*@/,
				end: /(?=#)|$/,
				contains: [
					NUMBER,
					PARAMS,
					STRING
				]
			}
		]
	};
}
var init_python = __esmMin((() => {}));

//#endregion
//#region node_modules/highlight.js/es/languages/sql.js
function sql(hljs$1) {
	const regex = hljs$1.regex;
	const COMMENT_MODE = hljs$1.COMMENT("--", "$");
	const STRING = {
		scope: "string",
		variants: [{
			begin: /'/,
			end: /'/,
			contains: [{ match: /''/ }]
		}]
	};
	const QUOTED_IDENTIFIER = {
		begin: /"/,
		end: /"/,
		contains: [{ match: /""/ }]
	};
	const LITERALS$6 = [
		"true",
		"false",
		"unknown"
	];
	const MULTI_WORD_TYPES = [
		"double precision",
		"large object",
		"with timezone",
		"without timezone"
	];
	const TYPES$6 = [
		"bigint",
		"binary",
		"blob",
		"boolean",
		"char",
		"character",
		"clob",
		"date",
		"dec",
		"decfloat",
		"decimal",
		"float",
		"int",
		"integer",
		"interval",
		"nchar",
		"nclob",
		"national",
		"numeric",
		"real",
		"row",
		"smallint",
		"time",
		"timestamp",
		"varchar",
		"varying",
		"varbinary"
	];
	const NON_RESERVED_WORDS = [
		"add",
		"asc",
		"collation",
		"desc",
		"final",
		"first",
		"last",
		"view"
	];
	const RESERVED_WORDS = [
		"abs",
		"acos",
		"all",
		"allocate",
		"alter",
		"and",
		"any",
		"are",
		"array",
		"array_agg",
		"array_max_cardinality",
		"as",
		"asensitive",
		"asin",
		"asymmetric",
		"at",
		"atan",
		"atomic",
		"authorization",
		"avg",
		"begin",
		"begin_frame",
		"begin_partition",
		"between",
		"bigint",
		"binary",
		"blob",
		"boolean",
		"both",
		"by",
		"call",
		"called",
		"cardinality",
		"cascaded",
		"case",
		"cast",
		"ceil",
		"ceiling",
		"char",
		"char_length",
		"character",
		"character_length",
		"check",
		"classifier",
		"clob",
		"close",
		"coalesce",
		"collate",
		"collect",
		"column",
		"commit",
		"condition",
		"connect",
		"constraint",
		"contains",
		"convert",
		"copy",
		"corr",
		"corresponding",
		"cos",
		"cosh",
		"count",
		"covar_pop",
		"covar_samp",
		"create",
		"cross",
		"cube",
		"cume_dist",
		"current",
		"current_catalog",
		"current_date",
		"current_default_transform_group",
		"current_path",
		"current_role",
		"current_row",
		"current_schema",
		"current_time",
		"current_timestamp",
		"current_path",
		"current_role",
		"current_transform_group_for_type",
		"current_user",
		"cursor",
		"cycle",
		"date",
		"day",
		"deallocate",
		"dec",
		"decimal",
		"decfloat",
		"declare",
		"default",
		"define",
		"delete",
		"dense_rank",
		"deref",
		"describe",
		"deterministic",
		"disconnect",
		"distinct",
		"double",
		"drop",
		"dynamic",
		"each",
		"element",
		"else",
		"empty",
		"end",
		"end_frame",
		"end_partition",
		"end-exec",
		"equals",
		"escape",
		"every",
		"except",
		"exec",
		"execute",
		"exists",
		"exp",
		"external",
		"extract",
		"false",
		"fetch",
		"filter",
		"first_value",
		"float",
		"floor",
		"for",
		"foreign",
		"frame_row",
		"free",
		"from",
		"full",
		"function",
		"fusion",
		"get",
		"global",
		"grant",
		"group",
		"grouping",
		"groups",
		"having",
		"hold",
		"hour",
		"identity",
		"in",
		"indicator",
		"initial",
		"inner",
		"inout",
		"insensitive",
		"insert",
		"int",
		"integer",
		"intersect",
		"intersection",
		"interval",
		"into",
		"is",
		"join",
		"json_array",
		"json_arrayagg",
		"json_exists",
		"json_object",
		"json_objectagg",
		"json_query",
		"json_table",
		"json_table_primitive",
		"json_value",
		"lag",
		"language",
		"large",
		"last_value",
		"lateral",
		"lead",
		"leading",
		"left",
		"like",
		"like_regex",
		"listagg",
		"ln",
		"local",
		"localtime",
		"localtimestamp",
		"log",
		"log10",
		"lower",
		"match",
		"match_number",
		"match_recognize",
		"matches",
		"max",
		"member",
		"merge",
		"method",
		"min",
		"minute",
		"mod",
		"modifies",
		"module",
		"month",
		"multiset",
		"national",
		"natural",
		"nchar",
		"nclob",
		"new",
		"no",
		"none",
		"normalize",
		"not",
		"nth_value",
		"ntile",
		"null",
		"nullif",
		"numeric",
		"octet_length",
		"occurrences_regex",
		"of",
		"offset",
		"old",
		"omit",
		"on",
		"one",
		"only",
		"open",
		"or",
		"order",
		"out",
		"outer",
		"over",
		"overlaps",
		"overlay",
		"parameter",
		"partition",
		"pattern",
		"per",
		"percent",
		"percent_rank",
		"percentile_cont",
		"percentile_disc",
		"period",
		"portion",
		"position",
		"position_regex",
		"power",
		"precedes",
		"precision",
		"prepare",
		"primary",
		"procedure",
		"ptf",
		"range",
		"rank",
		"reads",
		"real",
		"recursive",
		"ref",
		"references",
		"referencing",
		"regr_avgx",
		"regr_avgy",
		"regr_count",
		"regr_intercept",
		"regr_r2",
		"regr_slope",
		"regr_sxx",
		"regr_sxy",
		"regr_syy",
		"release",
		"result",
		"return",
		"returns",
		"revoke",
		"right",
		"rollback",
		"rollup",
		"row",
		"row_number",
		"rows",
		"running",
		"savepoint",
		"scope",
		"scroll",
		"search",
		"second",
		"seek",
		"select",
		"sensitive",
		"session_user",
		"set",
		"show",
		"similar",
		"sin",
		"sinh",
		"skip",
		"smallint",
		"some",
		"specific",
		"specifictype",
		"sql",
		"sqlexception",
		"sqlstate",
		"sqlwarning",
		"sqrt",
		"start",
		"static",
		"stddev_pop",
		"stddev_samp",
		"submultiset",
		"subset",
		"substring",
		"substring_regex",
		"succeeds",
		"sum",
		"symmetric",
		"system",
		"system_time",
		"system_user",
		"table",
		"tablesample",
		"tan",
		"tanh",
		"then",
		"time",
		"timestamp",
		"timezone_hour",
		"timezone_minute",
		"to",
		"trailing",
		"translate",
		"translate_regex",
		"translation",
		"treat",
		"trigger",
		"trim",
		"trim_array",
		"true",
		"truncate",
		"uescape",
		"union",
		"unique",
		"unknown",
		"unnest",
		"update",
		"upper",
		"user",
		"using",
		"value",
		"values",
		"value_of",
		"var_pop",
		"var_samp",
		"varbinary",
		"varchar",
		"varying",
		"versioning",
		"when",
		"whenever",
		"where",
		"width_bucket",
		"window",
		"with",
		"within",
		"without",
		"year"
	];
	const RESERVED_FUNCTIONS = [
		"abs",
		"acos",
		"array_agg",
		"asin",
		"atan",
		"avg",
		"cast",
		"ceil",
		"ceiling",
		"coalesce",
		"corr",
		"cos",
		"cosh",
		"count",
		"covar_pop",
		"covar_samp",
		"cume_dist",
		"dense_rank",
		"deref",
		"element",
		"exp",
		"extract",
		"first_value",
		"floor",
		"json_array",
		"json_arrayagg",
		"json_exists",
		"json_object",
		"json_objectagg",
		"json_query",
		"json_table",
		"json_table_primitive",
		"json_value",
		"lag",
		"last_value",
		"lead",
		"listagg",
		"ln",
		"log",
		"log10",
		"lower",
		"max",
		"min",
		"mod",
		"nth_value",
		"ntile",
		"nullif",
		"percent_rank",
		"percentile_cont",
		"percentile_disc",
		"position",
		"position_regex",
		"power",
		"rank",
		"regr_avgx",
		"regr_avgy",
		"regr_count",
		"regr_intercept",
		"regr_r2",
		"regr_slope",
		"regr_sxx",
		"regr_sxy",
		"regr_syy",
		"row_number",
		"sin",
		"sinh",
		"sqrt",
		"stddev_pop",
		"stddev_samp",
		"substring",
		"substring_regex",
		"sum",
		"tan",
		"tanh",
		"translate",
		"translate_regex",
		"treat",
		"trim",
		"trim_array",
		"unnest",
		"upper",
		"value_of",
		"var_pop",
		"var_samp",
		"width_bucket"
	];
	const POSSIBLE_WITHOUT_PARENS = [
		"current_catalog",
		"current_date",
		"current_default_transform_group",
		"current_path",
		"current_role",
		"current_schema",
		"current_transform_group_for_type",
		"current_user",
		"session_user",
		"system_time",
		"system_user",
		"current_time",
		"localtime",
		"current_timestamp",
		"localtimestamp"
	];
	const COMBOS = [
		"create table",
		"insert into",
		"primary key",
		"foreign key",
		"not null",
		"alter table",
		"add constraint",
		"grouping sets",
		"on overflow",
		"character set",
		"respect nulls",
		"ignore nulls",
		"nulls first",
		"nulls last",
		"depth first",
		"breadth first"
	];
	const FUNCTIONS = RESERVED_FUNCTIONS;
	const KEYWORDS$6 = [...RESERVED_WORDS, ...NON_RESERVED_WORDS].filter((keyword) => {
		return !RESERVED_FUNCTIONS.includes(keyword);
	});
	const VARIABLE = {
		scope: "variable",
		match: /@[a-z0-9][a-z0-9_]*/
	};
	const OPERATOR = {
		scope: "operator",
		match: /[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,
		relevance: 0
	};
	const FUNCTION_CALL = {
		match: regex.concat(/\b/, regex.either(...FUNCTIONS), /\s*\(/),
		relevance: 0,
		keywords: { built_in: FUNCTIONS }
	};
	function kws_to_regex(list) {
		return regex.concat(/\b/, regex.either(...list.map((kw) => {
			return kw.replace(/\s+/, "\\s+");
		})), /\b/);
	}
	const MULTI_WORD_KEYWORDS = {
		scope: "keyword",
		match: kws_to_regex(COMBOS),
		relevance: 0
	};
	function reduceRelevancy(list, { exceptions, when } = {}) {
		const qualifyFn = when;
		exceptions = exceptions || [];
		return list.map((item) => {
			if (item.match(/\|\d+$/) || exceptions.includes(item)) {
				return item;
			} else if (qualifyFn(item)) {
				return `${item}|0`;
			} else {
				return item;
			}
		});
	}
	return {
		name: "SQL",
		case_insensitive: true,
		illegal: /[{}]|<\//,
		keywords: {
			$pattern: /\b[\w\.]+/,
			keyword: reduceRelevancy(KEYWORDS$6, { when: (x$2) => x$2.length < 3 }),
			literal: LITERALS$6,
			type: TYPES$6,
			built_in: POSSIBLE_WITHOUT_PARENS
		},
		contains: [
			{
				scope: "type",
				match: kws_to_regex(MULTI_WORD_TYPES)
			},
			MULTI_WORD_KEYWORDS,
			FUNCTION_CALL,
			VARIABLE,
			STRING,
			QUOTED_IDENTIFIER,
			hljs$1.C_NUMBER_MODE,
			hljs$1.C_BLOCK_COMMENT_MODE,
			COMMENT_MODE,
			OPERATOR
		]
	};
}
var init_sql = __esmMin((() => {}));

//#endregion
//#region node_modules/highlight.js/es/languages/typescript.js
/** @type LanguageFn */
function javascript$1(hljs$1) {
	const regex = hljs$1.regex;
	/**
	* Takes a string like "<Booger" and checks to see
	* if we can find a matching "</Booger" later in the
	* content.
	* @param {RegExpMatchArray} match
	* @param {{after:number}} param1
	*/
	const hasClosingTag = (match, { after }) => {
		const tag = "</" + match[0].slice(1);
		const pos = match.input.indexOf(tag, after);
		return pos !== -1;
	};
	const IDENT_RE$1$1 = IDENT_RE;
	const FRAGMENT = {
		begin: "<>",
		end: "</>"
	};
	const XML_SELF_CLOSING = /<[A-Za-z0-9\\._:-]+\s*\/>/;
	const XML_TAG = {
		begin: /<[A-Za-z0-9\\._:-]+/,
		end: /\/[A-Za-z0-9\\._:-]+>|\/>/,
		isTrulyOpeningTag: (match, response) => {
			const afterMatchIndex = match[0].length + match.index;
			const nextChar = match.input[afterMatchIndex];
			if (nextChar === "<" || nextChar === ",") {
				response.ignoreMatch();
				return;
			}
			if (nextChar === ">") {
				if (!hasClosingTag(match, { after: afterMatchIndex })) {
					response.ignoreMatch();
				}
			}
			let m$3;
			const afterMatch = match.input.substring(afterMatchIndex);
			if (m$3 = afterMatch.match(/^\s*=/)) {
				response.ignoreMatch();
				return;
			}
			if (m$3 = afterMatch.match(/^\s+extends\s+/)) {
				if (m$3.index === 0) {
					response.ignoreMatch();
					return;
				}
			}
		}
	};
	const KEYWORDS$1$1 = {
		$pattern: IDENT_RE,
		keyword: KEYWORDS,
		literal: LITERALS,
		built_in: BUILT_INS,
		"variable.language": BUILT_IN_VARIABLES
	};
	const decimalDigits$2 = "[0-9](_?[0-9])*";
	const frac$2 = `\\.(${decimalDigits$2})`;
	const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;
	const NUMBER = {
		className: "number",
		variants: [
			{ begin: `(\\b(${decimalInteger})((${frac$2})|\\.)?|(${frac$2}))` + `[eE][+-]?(${decimalDigits$2})\\b` },
			{ begin: `\\b(${decimalInteger})\\b((${frac$2})\\b|\\.)?|(${frac$2})\\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
	};
	const SUBST = {
		className: "subst",
		begin: "\\$\\{",
		end: "\\}",
		keywords: KEYWORDS$1$1,
		contains: []
	};
	const HTML_TEMPLATE = {
		begin: ".?html`",
		end: "",
		starts: {
			end: "`",
			returnEnd: false,
			contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
			subLanguage: "xml"
		}
	};
	const CSS_TEMPLATE = {
		begin: ".?css`",
		end: "",
		starts: {
			end: "`",
			returnEnd: false,
			contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
			subLanguage: "css"
		}
	};
	const GRAPHQL_TEMPLATE = {
		begin: ".?gql`",
		end: "",
		starts: {
			end: "`",
			returnEnd: false,
			contains: [hljs$1.BACKSLASH_ESCAPE, SUBST],
			subLanguage: "graphql"
		}
	};
	const TEMPLATE_STRING = {
		className: "string",
		begin: "`",
		end: "`",
		contains: [hljs$1.BACKSLASH_ESCAPE, SUBST]
	};
	const JSDOC_COMMENT = hljs$1.COMMENT(/\/\*\*(?!\/)/, "\\*/", {
		relevance: 0,
		contains: [{
			begin: "(?=@[A-Za-z]+)",
			relevance: 0,
			contains: [
				{
					className: "doctag",
					begin: "@[A-Za-z]+"
				},
				{
					className: "type",
					begin: "\\{",
					end: "\\}",
					excludeEnd: true,
					excludeBegin: true,
					relevance: 0
				},
				{
					className: "variable",
					begin: IDENT_RE$1$1 + "(?=\\s*(-)|$)",
					endsParent: true,
					relevance: 0
				},
				{
					begin: /(?=[^\n])\s/,
					relevance: 0
				}
			]
		}]
	});
	const COMMENT$2 = {
		className: "comment",
		variants: [
			JSDOC_COMMENT,
			hljs$1.C_BLOCK_COMMENT_MODE,
			hljs$1.C_LINE_COMMENT_MODE
		]
	};
	const SUBST_INTERNALS = [
		hljs$1.APOS_STRING_MODE,
		hljs$1.QUOTE_STRING_MODE,
		HTML_TEMPLATE,
		CSS_TEMPLATE,
		GRAPHQL_TEMPLATE,
		TEMPLATE_STRING,
		{ match: /\$\d+/ },
		NUMBER
	];
	SUBST.contains = SUBST_INTERNALS.concat({
		begin: /\{/,
		end: /\}/,
		keywords: KEYWORDS$1$1,
		contains: ["self"].concat(SUBST_INTERNALS)
	});
	const SUBST_AND_COMMENTS = [].concat(COMMENT$2, SUBST.contains);
	const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([{
		begin: /(\s*)\(/,
		end: /\)/,
		keywords: KEYWORDS$1$1,
		contains: ["self"].concat(SUBST_AND_COMMENTS)
	}]);
	const PARAMS = {
		className: "params",
		begin: /(\s*)\(/,
		end: /\)/,
		excludeBegin: true,
		excludeEnd: true,
		keywords: KEYWORDS$1$1,
		contains: PARAMS_CONTAINS
	};
	const CLASS_OR_EXTENDS = { variants: [{
		match: [
			/class/,
			/\s+/,
			IDENT_RE$1$1,
			/\s+/,
			/extends/,
			/\s+/,
			regex.concat(IDENT_RE$1$1, "(", regex.concat(/\./, IDENT_RE$1$1), ")*")
		],
		scope: {
			1: "keyword",
			3: "title.class",
			5: "keyword",
			7: "title.class.inherited"
		}
	}, {
		match: [
			/class/,
			/\s+/,
			IDENT_RE$1$1
		],
		scope: {
			1: "keyword",
			3: "title.class"
		}
	}] };
	const CLASS_REFERENCE = {
		relevance: 0,
		match: regex.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: { _: [...TYPES, ...ERROR_TYPES] }
	};
	const USE_STRICT = {
		label: "use_strict",
		className: "meta",
		relevance: 10,
		begin: /^\s*['"]use (strict|asm)['"]/
	};
	const FUNCTION_DEFINITION = {
		variants: [{ match: [
			/function/,
			/\s+/,
			IDENT_RE$1$1,
			/(?=\s*\()/
		] }, { match: [/function/, /\s*(?=\()/] }],
		className: {
			1: "keyword",
			3: "title.function"
		},
		label: "func.def",
		contains: [PARAMS],
		illegal: /%/
	};
	const UPPER_CASE_CONSTANT = {
		relevance: 0,
		match: /\b[A-Z][A-Z_0-9]+\b/,
		className: "variable.constant"
	};
	function noneOf(list) {
		return regex.concat("(?!", list.join("|"), ")");
	}
	const FUNCTION_CALL = {
		match: regex.concat(/\b/, noneOf([
			...BUILT_IN_GLOBALS,
			"super",
			"import"
		].map((x$2) => `${x$2}\\s*\\(`)), IDENT_RE$1$1, regex.lookahead(/\s*\(/)),
		className: "title.function",
		relevance: 0
	};
	const PROPERTY_ACCESS = {
		begin: regex.concat(/\./, regex.lookahead(regex.concat(IDENT_RE$1$1, /(?![0-9A-Za-z$_(])/))),
		end: IDENT_RE$1$1,
		excludeBegin: true,
		keywords: "prototype",
		className: "property",
		relevance: 0
	};
	const GETTER_OR_SETTER = {
		match: [
			/get|set/,
			/\s+/,
			IDENT_RE$1$1,
			/(?=\()/
		],
		className: {
			1: "keyword",
			3: "title.function"
		},
		contains: [{ begin: /\(\)/ }, PARAMS]
	};
	const FUNC_LEAD_IN_RE = "(\\(" + "[^()]*(\\(" + "[^()]*(\\(" + "[^()]*" + "\\)[^()]*)*" + "\\)[^()]*)*" + "\\)|" + hljs$1.UNDERSCORE_IDENT_RE + ")\\s*=>";
	const FUNCTION_VARIABLE = {
		match: [
			/const|var|let/,
			/\s+/,
			IDENT_RE$1$1,
			/\s*/,
			/=\s*/,
			/(async\s*)?/,
			regex.lookahead(FUNC_LEAD_IN_RE)
		],
		keywords: "async",
		className: {
			1: "keyword",
			3: "title.function"
		},
		contains: [PARAMS]
	};
	return {
		name: "JavaScript",
		aliases: [
			"js",
			"jsx",
			"mjs",
			"cjs"
		],
		keywords: KEYWORDS$1$1,
		exports: {
			PARAMS_CONTAINS,
			CLASS_REFERENCE
		},
		illegal: /#(?![$_A-z])/,
		contains: [
			hljs$1.SHEBANG({
				label: "shebang",
				binary: "node",
				relevance: 5
			}),
			USE_STRICT,
			hljs$1.APOS_STRING_MODE,
			hljs$1.QUOTE_STRING_MODE,
			HTML_TEMPLATE,
			CSS_TEMPLATE,
			GRAPHQL_TEMPLATE,
			TEMPLATE_STRING,
			COMMENT$2,
			{ match: /\$\d+/ },
			NUMBER,
			CLASS_REFERENCE,
			{
				scope: "attr",
				match: IDENT_RE$1$1 + regex.lookahead(":"),
				relevance: 0
			},
			FUNCTION_VARIABLE,
			{
				begin: "(" + hljs$1.RE_STARTERS_RE + "|\\b(case|return|throw)\\b)\\s*",
				keywords: "return throw case",
				relevance: 0,
				contains: [
					COMMENT$2,
					hljs$1.REGEXP_MODE,
					{
						className: "function",
						begin: FUNC_LEAD_IN_RE,
						returnBegin: true,
						end: "\\s*=>",
						contains: [{
							className: "params",
							variants: [
								{
									begin: hljs$1.UNDERSCORE_IDENT_RE,
									relevance: 0
								},
								{
									className: null,
									begin: /\(\s*\)/,
									skip: true
								},
								{
									begin: /(\s*)\(/,
									end: /\)/,
									excludeBegin: true,
									excludeEnd: true,
									keywords: KEYWORDS$1$1,
									contains: PARAMS_CONTAINS
								}
							]
						}]
					},
					{
						begin: /,/,
						relevance: 0
					},
					{
						match: /\s+/,
						relevance: 0
					},
					{
						variants: [
							{
								begin: FRAGMENT.begin,
								end: FRAGMENT.end
							},
							{ match: XML_SELF_CLOSING },
							{
								begin: XML_TAG.begin,
								"on:begin": XML_TAG.isTrulyOpeningTag,
								end: XML_TAG.end
							}
						],
						subLanguage: "xml",
						contains: [{
							begin: XML_TAG.begin,
							end: XML_TAG.end,
							skip: true,
							contains: ["self"]
						}]
					}
				]
			},
			FUNCTION_DEFINITION,
			{ beginKeywords: "while if switch catch for" },
			{
				begin: "\\b(?!function)" + hljs$1.UNDERSCORE_IDENT_RE + "\\(" + "[^()]*(\\(" + "[^()]*(\\(" + "[^()]*" + "\\)[^()]*)*" + "\\)[^()]*)*" + "\\)\\s*\\{",
				returnBegin: true,
				label: "func.def",
				contains: [PARAMS, hljs$1.inherit(hljs$1.TITLE_MODE, {
					begin: IDENT_RE$1$1,
					className: "title.function"
				})]
			},
			{
				match: /\.\.\./,
				relevance: 0
			},
			PROPERTY_ACCESS,
			{
				match: "\\$" + IDENT_RE$1$1,
				relevance: 0
			},
			{
				match: [/\bconstructor(?=\s*\()/],
				className: { 1: "title.function" },
				contains: [PARAMS]
			},
			FUNCTION_CALL,
			UPPER_CASE_CONSTANT,
			CLASS_OR_EXTENDS,
			GETTER_OR_SETTER,
			{ match: /\$[(.]/ }
		]
	};
}
/** @type LanguageFn */
function typescript(hljs$1) {
	const regex = hljs$1.regex;
	const tsLanguage = javascript$1(hljs$1);
	const IDENT_RE$1$1 = IDENT_RE;
	const TYPES$6 = [
		"any",
		"void",
		"number",
		"boolean",
		"string",
		"object",
		"never",
		"symbol",
		"bigint",
		"unknown"
	];
	const NAMESPACE = {
		begin: [
			/namespace/,
			/\s+/,
			hljs$1.IDENT_RE
		],
		beginScope: {
			1: "keyword",
			3: "title.class"
		}
	};
	const INTERFACE = {
		beginKeywords: "interface",
		end: /\{/,
		excludeEnd: true,
		keywords: {
			keyword: "interface extends",
			built_in: TYPES$6
		},
		contains: [tsLanguage.exports.CLASS_REFERENCE]
	};
	const USE_STRICT = {
		className: "meta",
		relevance: 10,
		begin: /^\s*['"]use strict['"]/
	};
	const TS_SPECIFIC_KEYWORDS = [
		"type",
		"interface",
		"public",
		"private",
		"protected",
		"implements",
		"declare",
		"abstract",
		"readonly",
		"enum",
		"override",
		"satisfies"
	];
	const KEYWORDS$1$1 = {
		$pattern: IDENT_RE,
		keyword: KEYWORDS.concat(TS_SPECIFIC_KEYWORDS),
		literal: LITERALS,
		built_in: BUILT_INS.concat(TYPES$6),
		"variable.language": BUILT_IN_VARIABLES
	};
	const DECORATOR = {
		className: "meta",
		begin: "@" + IDENT_RE$1$1
	};
	const swapMode = (mode, label, replacement) => {
		const indx = mode.contains.findIndex((m$3) => m$3.label === label);
		if (indx === -1) {
			throw new Error("can not find mode to replace");
		}
		mode.contains.splice(indx, 1, replacement);
	};
	Object.assign(tsLanguage.keywords, KEYWORDS$1$1);
	tsLanguage.exports.PARAMS_CONTAINS.push(DECORATOR);
	const ATTRIBUTE_HIGHLIGHT = tsLanguage.contains.find((c$7) => c$7.scope === "attr");
	const OPTIONAL_KEY_OR_ARGUMENT = Object.assign({}, ATTRIBUTE_HIGHLIGHT, { match: regex.concat(IDENT_RE$1$1, regex.lookahead(/\s*\?:/)) });
	tsLanguage.exports.PARAMS_CONTAINS.push([
		tsLanguage.exports.CLASS_REFERENCE,
		ATTRIBUTE_HIGHLIGHT,
		OPTIONAL_KEY_OR_ARGUMENT
	]);
	tsLanguage.contains = tsLanguage.contains.concat([
		DECORATOR,
		NAMESPACE,
		INTERFACE,
		OPTIONAL_KEY_OR_ARGUMENT
	]);
	swapMode(tsLanguage, "shebang", hljs$1.SHEBANG());
	swapMode(tsLanguage, "use_strict", USE_STRICT);
	const functionDeclaration = tsLanguage.contains.find((m$3) => m$3.label === "func.def");
	functionDeclaration.relevance = 0;
	Object.assign(tsLanguage, {
		name: "TypeScript",
		aliases: [
			"ts",
			"tsx",
			"mts",
			"cts"
		]
	});
	return tsLanguage;
}
var IDENT_RE, KEYWORDS, LITERALS, TYPES, ERROR_TYPES, BUILT_IN_GLOBALS, BUILT_IN_VARIABLES, BUILT_INS;
var init_typescript = __esmMin((() => {
	IDENT_RE = "[A-Za-z$_][0-9A-Za-z$_]*";
	KEYWORDS = [
		"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"
	];
	LITERALS = [
		"true",
		"false",
		"null",
		"undefined",
		"NaN",
		"Infinity"
	];
	TYPES = [
		"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"
	];
	ERROR_TYPES = [
		"Error",
		"EvalError",
		"InternalError",
		"RangeError",
		"ReferenceError",
		"SyntaxError",
		"TypeError",
		"URIError"
	];
	BUILT_IN_GLOBALS = [
		"setInterval",
		"setTimeout",
		"clearInterval",
		"clearTimeout",
		"require",
		"exports",
		"eval",
		"isFinite",
		"isNaN",
		"parseFloat",
		"parseInt",
		"decodeURI",
		"decodeURIComponent",
		"encodeURI",
		"encodeURIComponent",
		"escape",
		"unescape"
	];
	BUILT_IN_VARIABLES = [
		"arguments",
		"this",
		"super",
		"console",
		"window",
		"document",
		"localStorage",
		"sessionStorage",
		"module",
		"global"
	];
	BUILT_INS = [].concat(BUILT_IN_GLOBALS, TYPES, ERROR_TYPES);
}));

//#endregion
//#region node_modules/highlight.js/es/languages/xml.js
/** @type LanguageFn */
function xml(hljs$1) {
	const regex = hljs$1.regex;
	const TAG_NAME_RE = regex.concat(/[\p{L}_]/u, regex.optional(/[\p{L}0-9_.-]*:/u), /[\p{L}0-9_.-]*/u);
	const XML_IDENT_RE = /[\p{L}0-9._:-]+/u;
	const XML_ENTITIES = {
		className: "symbol",
		begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/
	};
	const XML_META_KEYWORDS = {
		begin: /\s/,
		contains: [{
			className: "keyword",
			begin: /#?[a-z_][a-z1-9_-]+/,
			illegal: /\n/
		}]
	};
	const XML_META_PAR_KEYWORDS = hljs$1.inherit(XML_META_KEYWORDS, {
		begin: /\(/,
		end: /\)/
	});
	const APOS_META_STRING_MODE = hljs$1.inherit(hljs$1.APOS_STRING_MODE, { className: "string" });
	const QUOTE_META_STRING_MODE = hljs$1.inherit(hljs$1.QUOTE_STRING_MODE, { className: "string" });
	const TAG_INTERNALS = {
		endsWithParent: true,
		illegal: /</,
		relevance: 0,
		contains: [{
			className: "attr",
			begin: XML_IDENT_RE,
			relevance: 0
		}, {
			begin: /=\s*/,
			relevance: 0,
			contains: [{
				className: "string",
				endsParent: true,
				variants: [
					{
						begin: /"/,
						end: /"/,
						contains: [XML_ENTITIES]
					},
					{
						begin: /'/,
						end: /'/,
						contains: [XML_ENTITIES]
					},
					{ begin: /[^\s"'=<>`]+/ }
				]
			}]
		}]
	};
	return {
		name: "HTML, XML",
		aliases: [
			"html",
			"xhtml",
			"rss",
			"atom",
			"xjb",
			"xsd",
			"xsl",
			"plist",
			"wsf",
			"svg"
		],
		case_insensitive: true,
		unicodeRegex: true,
		contains: [
			{
				className: "meta",
				begin: /<![a-z]/,
				end: />/,
				relevance: 10,
				contains: [
					XML_META_KEYWORDS,
					QUOTE_META_STRING_MODE,
					APOS_META_STRING_MODE,
					XML_META_PAR_KEYWORDS,
					{
						begin: /\[/,
						end: /\]/,
						contains: [{
							className: "meta",
							begin: /<![a-z]/,
							end: />/,
							contains: [
								XML_META_KEYWORDS,
								XML_META_PAR_KEYWORDS,
								QUOTE_META_STRING_MODE,
								APOS_META_STRING_MODE
							]
						}]
					}
				]
			},
			hljs$1.COMMENT(/<!--/, /-->/, { relevance: 10 }),
			{
				begin: /<!\[CDATA\[/,
				end: /\]\]>/,
				relevance: 10
			},
			XML_ENTITIES,
			{
				className: "meta",
				end: /\?>/,
				variants: [{
					begin: /<\?xml/,
					relevance: 10,
					contains: [QUOTE_META_STRING_MODE]
				}, { begin: /<\?[a-z][a-z0-9]+/ }]
			},
			{
				className: "tag",
				begin: /<style(?=\s|>)/,
				end: />/,
				keywords: { name: "style" },
				contains: [TAG_INTERNALS],
				starts: {
					end: /<\/style>/,
					returnEnd: true,
					subLanguage: ["css", "xml"]
				}
			},
			{
				className: "tag",
				begin: /<script(?=\s|>)/,
				end: />/,
				keywords: { name: "script" },
				contains: [TAG_INTERNALS],
				starts: {
					end: /<\/script>/,
					returnEnd: true,
					subLanguage: [
						"javascript",
						"handlebars",
						"xml"
					]
				}
			},
			{
				className: "tag",
				begin: /<>|<\/>/
			},
			{
				className: "tag",
				begin: regex.concat(/</, regex.lookahead(regex.concat(TAG_NAME_RE, regex.either(/\/>/, />/, /\s/)))),
				end: /\/?>/,
				contains: [{
					className: "name",
					begin: TAG_NAME_RE,
					relevance: 0,
					starts: TAG_INTERNALS
				}]
			},
			{
				className: "tag",
				begin: regex.concat(/<\//, regex.lookahead(regex.concat(TAG_NAME_RE, />/))),
				contains: [{
					className: "name",
					begin: TAG_NAME_RE,
					relevance: 0
				}, {
					begin: />/,
					relevance: 0,
					endsParent: true
				}]
			}
		]
	};
}
var init_xml$1 = __esmMin((() => {}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/dist/CodeBlock.js
var __decorate$2, CodeBlock;
var init_CodeBlock = __esmMin((() => {
	init_core();
	init_bash();
	init_css$1();
	init_javascript();
	init_json$1();
	init_python();
	init_sql();
	init_typescript();
	init_xml$1();
	init_lit();
	init_decorators();
	init_unsafe_html();
	init_i18n$1();
	init_CopyButton();
	__decorate$2 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	core_default.registerLanguage("javascript", javascript);
	core_default.registerLanguage("typescript", typescript);
	core_default.registerLanguage("python", python);
	core_default.registerLanguage("html", xml);
	core_default.registerLanguage("xml", xml);
	core_default.registerLanguage("css", css);
	core_default.registerLanguage("json", json);
	core_default.registerLanguage("bash", bash);
	core_default.registerLanguage("sql", sql);
	CodeBlock = class CodeBlock$1 extends i {
		constructor() {
			super(...arguments);
			this.code = "";
			this.language = "";
		}
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.style.display = "block";
		}
		getDecodedCode() {
			try {
				return decodeURIComponent(escape(atob(this.code)));
			} catch {
				return this.code;
			}
		}
		render() {
			const decodedCode = this.getDecodedCode();
			const highlighted = this.language && core_default.getLanguage(this.language) ? core_default.highlight(decodedCode, { language: this.language }).value : core_default.highlightAuto(decodedCode).value;
			const displayLanguage = this.language || "plaintext";
			return x`
			<div class="border border-border rounded-lg overflow-hidden">
				<!-- Title bar -->
				<div class="flex items-center justify-between px-3 py-1">
					<span class="text-xs text-muted-foreground font-mono">${displayLanguage}</span>
					<copy-button class="[&>button]:!bg-transparent [&>button]:hover:!bg-accent" .text=${decodedCode} title="${i18n("Copy code")}" .showText=${true}></copy-button>
				</div>
				<!-- Code content -->
				<div class="overflow-auto max-h-96">
					<pre
						class="!bg-transparent !border-0 !rounded-none m-0 px-4 pb-4 text-xs text-foreground font-mono"
					><code class="hljs language-${this.language || "plaintext"}">${o(highlighted)}</code></pre>
				</div>
			</div>
		`;
		}
	};
	__decorate$2([n$1()], CodeBlock.prototype, "code", void 0);
	__decorate$2([n$1()], CodeBlock.prototype, "language", void 0);
	CodeBlock = __decorate$2([t("code-block")], CodeBlock);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/ConsoleBlock.js
var __decorate$1, ConsoleBlock;
var init_ConsoleBlock = __esmMin((() => {
	init_dist();
	init_lit();
	init_decorators();
	init_html();
	init_lucide();
	init_i18n();
	__decorate$1 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	ConsoleBlock = class extends i {
		constructor() {
			super(...arguments);
			this.content = "";
			this.variant = "default";
			this.copied = false;
		}
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.style.display = "block";
		}
		async copy() {
			try {
				await navigator.clipboard.writeText(this.content || "");
				this.copied = true;
				setTimeout(() => {
					this.copied = false;
				}, 1500);
			} catch (e$10) {
				console.error("Copy failed", e$10);
			}
		}
		updated() {
			const container = this.querySelector(".console-scroll");
			if (container) {
				container.scrollTop = container.scrollHeight;
			}
		}
		render() {
			const isError = this.variant === "error";
			const textClass = isError ? "text-destructive" : "text-foreground";
			return x`
			<div class="border border-border rounded-lg overflow-hidden">
				<div class="flex items-center justify-between px-3 py-1.5 bg-muted border-b border-border">
					<span class="text-xs text-muted-foreground font-mono">${i18n("console")}</span>
					<button
						@click=${() => this.copy()}
						class="flex items-center gap-1 px-2 py-0.5 text-xs rounded hover:bg-accent text-muted-foreground hover:text-accent-foreground transition-colors"
						title="${i18n("Copy output")}"
					>
						${this.copied ? icon(Check, "sm") : icon(Copy, "sm")}
						${this.copied ? x`<span>${i18n("Copied!")}</span>` : ""}
					</button>
				</div>
				<div class="console-scroll overflow-auto max-h-64">
					<pre class="!bg-background !border-0 !rounded-none m-0 p-3 text-xs ${textClass} font-mono whitespace-pre-wrap">
${this.content || ""}</pre
					>
				</div>
			</div>
		`;
		}
	};
	__decorate$1([n$1()], ConsoleBlock.prototype, "content", void 0);
	__decorate$1([n$1()], ConsoleBlock.prototype, "variant", void 0);
	__decorate$1([r()], ConsoleBlock.prototype, "copied", void 0);
	if (!customElements.get("console-block")) {
		customElements.define("console-block", ConsoleBlock);
	}
}));

//#endregion
//#region node_modules/diff/libesm/diff/base.js
var Diff$1;
var init_base = __esmMin((() => {
	Diff$1 = class {
		diff(oldStr, newStr, options = {}) {
			let callback;
			if (typeof options === "function") {
				callback = options;
				options = {};
			} else if ("callback" in options) {
				callback = options.callback;
			}
			const oldString = this.castInput(oldStr, options);
			const newString = this.castInput(newStr, options);
			const oldTokens = this.removeEmpty(this.tokenize(oldString, options));
			const newTokens = this.removeEmpty(this.tokenize(newString, options));
			return this.diffWithOptionsObj(oldTokens, newTokens, options, callback);
		}
		diffWithOptionsObj(oldTokens, newTokens, options, callback) {
			var _a;
			const done = (value) => {
				value = this.postProcess(value, options);
				if (callback) {
					setTimeout(function() {
						callback(value);
					}, 0);
					return undefined;
				} else {
					return value;
				}
			};
			const newLen = newTokens.length, oldLen = oldTokens.length;
			let editLength = 1;
			let maxEditLength = newLen + oldLen;
			if (options.maxEditLength != null) {
				maxEditLength = Math.min(maxEditLength, options.maxEditLength);
			}
			const maxExecutionTime = (_a = options.timeout) !== null && _a !== void 0 ? _a : Infinity;
			const abortAfterTimestamp = Date.now() + maxExecutionTime;
			const bestPath = [{
				oldPos: -1,
				lastComponent: undefined
			}];
			let newPos = this.extractCommon(bestPath[0], newTokens, oldTokens, 0, options);
			if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) {
				return done(this.buildValues(bestPath[0].lastComponent, newTokens, oldTokens));
			}
			let minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity;
			const execEditLength = () => {
				for (let diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) {
					let basePath;
					const removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1];
					if (removePath) {
						bestPath[diagonalPath - 1] = undefined;
					}
					let canAdd = false;
					if (addPath) {
						const addPathNewPos = addPath.oldPos - diagonalPath;
						canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen;
					}
					const canRemove = removePath && removePath.oldPos + 1 < oldLen;
					if (!canAdd && !canRemove) {
						bestPath[diagonalPath] = undefined;
						continue;
					}
					if (!canRemove || canAdd && removePath.oldPos < addPath.oldPos) {
						basePath = this.addToPath(addPath, true, false, 0, options);
					} else {
						basePath = this.addToPath(removePath, false, true, 1, options);
					}
					newPos = this.extractCommon(basePath, newTokens, oldTokens, diagonalPath, options);
					if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) {
						return done(this.buildValues(basePath.lastComponent, newTokens, oldTokens)) || true;
					} else {
						bestPath[diagonalPath] = basePath;
						if (basePath.oldPos + 1 >= oldLen) {
							maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1);
						}
						if (newPos + 1 >= newLen) {
							minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1);
						}
					}
				}
				editLength++;
			};
			if (callback) {
				(function exec() {
					setTimeout(function() {
						if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) {
							return callback(undefined);
						}
						if (!execEditLength()) {
							exec();
						}
					}, 0);
				})();
			} else {
				while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) {
					const ret = execEditLength();
					if (ret) {
						return ret;
					}
				}
			}
		}
		addToPath(path$1, added, removed, oldPosInc, options) {
			const last = path$1.lastComponent;
			if (last && !options.oneChangePerToken && last.added === added && last.removed === removed) {
				return {
					oldPos: path$1.oldPos + oldPosInc,
					lastComponent: {
						count: last.count + 1,
						added,
						removed,
						previousComponent: last.previousComponent
					}
				};
			} else {
				return {
					oldPos: path$1.oldPos + oldPosInc,
					lastComponent: {
						count: 1,
						added,
						removed,
						previousComponent: last
					}
				};
			}
		}
		extractCommon(basePath, newTokens, oldTokens, diagonalPath, options) {
			const newLen = newTokens.length, oldLen = oldTokens.length;
			let oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0;
			while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(oldTokens[oldPos + 1], newTokens[newPos + 1], options)) {
				newPos++;
				oldPos++;
				commonCount++;
				if (options.oneChangePerToken) {
					basePath.lastComponent = {
						count: 1,
						previousComponent: basePath.lastComponent,
						added: false,
						removed: false
					};
				}
			}
			if (commonCount && !options.oneChangePerToken) {
				basePath.lastComponent = {
					count: commonCount,
					previousComponent: basePath.lastComponent,
					added: false,
					removed: false
				};
			}
			basePath.oldPos = oldPos;
			return newPos;
		}
		equals(left, right, options) {
			if (options.comparator) {
				return options.comparator(left, right);
			} else {
				return left === right || !!options.ignoreCase && left.toLowerCase() === right.toLowerCase();
			}
		}
		removeEmpty(array) {
			const ret = [];
			for (let i$7 = 0; i$7 < array.length; i$7++) {
				if (array[i$7]) {
					ret.push(array[i$7]);
				}
			}
			return ret;
		}
		castInput(value, options) {
			return value;
		}
		tokenize(value, options) {
			return Array.from(value);
		}
		join(chars) {
			return chars.join("");
		}
		postProcess(changeObjects, options) {
			return changeObjects;
		}
		get useLongestToken() {
			return false;
		}
		buildValues(lastComponent, newTokens, oldTokens) {
			const components = [];
			let nextComponent;
			while (lastComponent) {
				components.push(lastComponent);
				nextComponent = lastComponent.previousComponent;
				delete lastComponent.previousComponent;
				lastComponent = nextComponent;
			}
			components.reverse();
			const componentLen = components.length;
			let componentPos = 0, newPos = 0, oldPos = 0;
			for (; componentPos < componentLen; componentPos++) {
				const component = components[componentPos];
				if (!component.removed) {
					if (!component.added && this.useLongestToken) {
						let value = newTokens.slice(newPos, newPos + component.count);
						value = value.map(function(value$1, i$7) {
							const oldValue = oldTokens[oldPos + i$7];
							return oldValue.length > value$1.length ? oldValue : value$1;
						});
						component.value = this.join(value);
					} else {
						component.value = this.join(newTokens.slice(newPos, newPos + component.count));
					}
					newPos += component.count;
					if (!component.added) {
						oldPos += component.count;
					}
				} else {
					component.value = this.join(oldTokens.slice(oldPos, oldPos + component.count));
					oldPos += component.count;
				}
			}
			return components;
		}
	};
}));

//#endregion
//#region node_modules/diff/libesm/diff/character.js
function diffChars(oldStr, newStr, options) {
	return characterDiff.diff(oldStr, newStr, options);
}
var CharacterDiff, characterDiff;
var init_character = __esmMin((() => {
	init_base();
	CharacterDiff = class extends Diff$1 {};
	characterDiff = new CharacterDiff();
}));

//#endregion
//#region node_modules/diff/libesm/util/string.js
function longestCommonPrefix(str1, str2) {
	let i$7;
	for (i$7 = 0; i$7 < str1.length && i$7 < str2.length; i$7++) {
		if (str1[i$7] != str2[i$7]) {
			return str1.slice(0, i$7);
		}
	}
	return str1.slice(0, i$7);
}
function longestCommonSuffix(str1, str2) {
	let i$7;
	if (!str1 || !str2 || str1[str1.length - 1] != str2[str2.length - 1]) {
		return "";
	}
	for (i$7 = 0; i$7 < str1.length && i$7 < str2.length; i$7++) {
		if (str1[str1.length - (i$7 + 1)] != str2[str2.length - (i$7 + 1)]) {
			return str1.slice(-i$7);
		}
	}
	return str1.slice(-i$7);
}
function replacePrefix(string, oldPrefix, newPrefix) {
	if (string.slice(0, oldPrefix.length) != oldPrefix) {
		throw Error(`string ${JSON.stringify(string)} doesn't start with prefix ${JSON.stringify(oldPrefix)}; this is a bug`);
	}
	return newPrefix + string.slice(oldPrefix.length);
}
function replaceSuffix(string, oldSuffix, newSuffix) {
	if (!oldSuffix) {
		return string + newSuffix;
	}
	if (string.slice(-oldSuffix.length) != oldSuffix) {
		throw Error(`string ${JSON.stringify(string)} doesn't end with suffix ${JSON.stringify(oldSuffix)}; this is a bug`);
	}
	return string.slice(0, -oldSuffix.length) + newSuffix;
}
function removePrefix(string, oldPrefix) {
	return replacePrefix(string, oldPrefix, "");
}
function removeSuffix(string, oldSuffix) {
	return replaceSuffix(string, oldSuffix, "");
}
function maximumOverlap(string1, string2) {
	return string2.slice(0, overlapCount(string1, string2));
}
function overlapCount(a$2, b$3) {
	let startA = 0;
	if (a$2.length > b$3.length) {
		startA = a$2.length - b$3.length;
	}
	let endB = b$3.length;
	if (a$2.length < b$3.length) {
		endB = a$2.length;
	}
	const map$2 = Array(endB);
	let k$2 = 0;
	map$2[0] = 0;
	for (let j$2 = 1; j$2 < endB; j$2++) {
		if (b$3[j$2] == b$3[k$2]) {
			map$2[j$2] = map$2[k$2];
		} else {
			map$2[j$2] = k$2;
		}
		while (k$2 > 0 && b$3[j$2] != b$3[k$2]) {
			k$2 = map$2[k$2];
		}
		if (b$3[j$2] == b$3[k$2]) {
			k$2++;
		}
	}
	k$2 = 0;
	for (let i$7 = startA; i$7 < a$2.length; i$7++) {
		while (k$2 > 0 && a$2[i$7] != b$3[k$2]) {
			k$2 = map$2[k$2];
		}
		if (a$2[i$7] == b$3[k$2]) {
			k$2++;
		}
	}
	return k$2;
}
/**
* Returns true if the string consistently uses Windows line endings.
*/
function hasOnlyWinLineEndings(string) {
	return string.includes("\r\n") && !string.startsWith("\n") && !string.match(/[^\r]\n/);
}
/**
* Returns true if the string consistently uses Unix line endings.
*/
function hasOnlyUnixLineEndings(string) {
	return !string.includes("\r\n") && string.includes("\n");
}
function trailingWs(string) {
	let i$7;
	for (i$7 = string.length - 1; i$7 >= 0; i$7--) {
		if (!string[i$7].match(/\s/)) {
			break;
		}
	}
	return string.substring(i$7 + 1);
}
function leadingWs(string) {
	const match = string.match(/^\s*/);
	return match ? match[0] : "";
}
var init_string = __esmMin((() => {}));

//#endregion
//#region node_modules/diff/libesm/diff/word.js
function diffWords(oldStr, newStr, options) {
	if ((options === null || options === void 0 ? void 0 : options.ignoreWhitespace) != null && !options.ignoreWhitespace) {
		return diffWordsWithSpace(oldStr, newStr, options);
	}
	return wordDiff.diff(oldStr, newStr, options);
}
function dedupeWhitespaceInChangeObjects(startKeep, deletion, insertion, endKeep) {
	if (deletion && insertion) {
		const oldWsPrefix = leadingWs(deletion.value);
		const oldWsSuffix = trailingWs(deletion.value);
		const newWsPrefix = leadingWs(insertion.value);
		const newWsSuffix = trailingWs(insertion.value);
		if (startKeep) {
			const commonWsPrefix = longestCommonPrefix(oldWsPrefix, newWsPrefix);
			startKeep.value = replaceSuffix(startKeep.value, newWsPrefix, commonWsPrefix);
			deletion.value = removePrefix(deletion.value, commonWsPrefix);
			insertion.value = removePrefix(insertion.value, commonWsPrefix);
		}
		if (endKeep) {
			const commonWsSuffix = longestCommonSuffix(oldWsSuffix, newWsSuffix);
			endKeep.value = replacePrefix(endKeep.value, newWsSuffix, commonWsSuffix);
			deletion.value = removeSuffix(deletion.value, commonWsSuffix);
			insertion.value = removeSuffix(insertion.value, commonWsSuffix);
		}
	} else if (insertion) {
		if (startKeep) {
			const ws = leadingWs(insertion.value);
			insertion.value = insertion.value.substring(ws.length);
		}
		if (endKeep) {
			const ws = leadingWs(endKeep.value);
			endKeep.value = endKeep.value.substring(ws.length);
		}
	} else if (startKeep && endKeep) {
		const newWsFull = leadingWs(endKeep.value), delWsStart = leadingWs(deletion.value), delWsEnd = trailingWs(deletion.value);
		const newWsStart = longestCommonPrefix(newWsFull, delWsStart);
		deletion.value = removePrefix(deletion.value, newWsStart);
		const newWsEnd = longestCommonSuffix(removePrefix(newWsFull, newWsStart), delWsEnd);
		deletion.value = removeSuffix(deletion.value, newWsEnd);
		endKeep.value = replacePrefix(endKeep.value, newWsFull, newWsEnd);
		startKeep.value = replaceSuffix(startKeep.value, newWsFull, newWsFull.slice(0, newWsFull.length - newWsEnd.length));
	} else if (endKeep) {
		const endKeepWsPrefix = leadingWs(endKeep.value);
		const deletionWsSuffix = trailingWs(deletion.value);
		const overlap = maximumOverlap(deletionWsSuffix, endKeepWsPrefix);
		deletion.value = removeSuffix(deletion.value, overlap);
	} else if (startKeep) {
		const startKeepWsSuffix = trailingWs(startKeep.value);
		const deletionWsPrefix = leadingWs(deletion.value);
		const overlap = maximumOverlap(startKeepWsSuffix, deletionWsPrefix);
		deletion.value = removePrefix(deletion.value, overlap);
	}
}
function diffWordsWithSpace(oldStr, newStr, options) {
	return wordsWithSpaceDiff.diff(oldStr, newStr, options);
}
var extendedWordChars, tokenizeIncludingWhitespace, WordDiff, wordDiff, WordsWithSpaceDiff, wordsWithSpaceDiff;
var init_word = __esmMin((() => {
	init_base();
	init_string();
	extendedWordChars = "a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}";
	tokenizeIncludingWhitespace = new RegExp(`[${extendedWordChars}]+|\\s+|[^${extendedWordChars}]`, "ug");
	WordDiff = class extends Diff$1 {
		equals(left, right, options) {
			if (options.ignoreCase) {
				left = left.toLowerCase();
				right = right.toLowerCase();
			}
			return left.trim() === right.trim();
		}
		tokenize(value, options = {}) {
			let parts;
			if (options.intlSegmenter) {
				const segmenter = options.intlSegmenter;
				if (segmenter.resolvedOptions().granularity != "word") {
					throw new Error("The segmenter passed must have a granularity of \"word\"");
				}
				parts = Array.from(segmenter.segment(value), (segment) => segment.segment);
			} else {
				parts = value.match(tokenizeIncludingWhitespace) || [];
			}
			const tokens = [];
			let prevPart = null;
			parts.forEach((part) => {
				if (/\s/.test(part)) {
					if (prevPart == null) {
						tokens.push(part);
					} else {
						tokens.push(tokens.pop() + part);
					}
				} else if (prevPart != null && /\s/.test(prevPart)) {
					if (tokens[tokens.length - 1] == prevPart) {
						tokens.push(tokens.pop() + part);
					} else {
						tokens.push(prevPart + part);
					}
				} else {
					tokens.push(part);
				}
				prevPart = part;
			});
			return tokens;
		}
		join(tokens) {
			return tokens.map((token, i$7) => {
				if (i$7 == 0) {
					return token;
				} else {
					return token.replace(/^\s+/, "");
				}
			}).join("");
		}
		postProcess(changes, options) {
			if (!changes || options.oneChangePerToken) {
				return changes;
			}
			let lastKeep = null;
			let insertion = null;
			let deletion = null;
			changes.forEach((change) => {
				if (change.added) {
					insertion = change;
				} else if (change.removed) {
					deletion = change;
				} else {
					if (insertion || deletion) {
						dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, change);
					}
					lastKeep = change;
					insertion = null;
					deletion = null;
				}
			});
			if (insertion || deletion) {
				dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, null);
			}
			return changes;
		}
	};
	wordDiff = new WordDiff();
	WordsWithSpaceDiff = class extends Diff$1 {
		tokenize(value) {
			const regex = new RegExp(`(\\r?\\n)|[${extendedWordChars}]+|[^\\S\\n\\r]+|[^${extendedWordChars}]`, "ug");
			return value.match(regex) || [];
		}
	};
	wordsWithSpaceDiff = new WordsWithSpaceDiff();
}));

//#endregion
//#region node_modules/diff/libesm/util/params.js
function generateOptions(options, defaults) {
	if (typeof options === "function") {
		defaults.callback = options;
	} else if (options) {
		for (const name in options) {
			/* istanbul ignore else */
			if (Object.prototype.hasOwnProperty.call(options, name)) {
				defaults[name] = options[name];
			}
		}
	}
	return defaults;
}
var init_params = __esmMin((() => {}));

//#endregion
//#region node_modules/diff/libesm/diff/line.js
function diffLines(oldStr, newStr, options) {
	return lineDiff.diff(oldStr, newStr, options);
}
function diffTrimmedLines(oldStr, newStr, options) {
	options = generateOptions(options, { ignoreWhitespace: true });
	return lineDiff.diff(oldStr, newStr, options);
}
function tokenize(value, options) {
	if (options.stripTrailingCr) {
		value = value.replace(/\r\n/g, "\n");
	}
	const retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/);
	if (!linesAndNewlines[linesAndNewlines.length - 1]) {
		linesAndNewlines.pop();
	}
	for (let i$7 = 0; i$7 < linesAndNewlines.length; i$7++) {
		const line = linesAndNewlines[i$7];
		if (i$7 % 2 && !options.newlineIsToken) {
			retLines[retLines.length - 1] += line;
		} else {
			retLines.push(line);
		}
	}
	return retLines;
}
var LineDiff, lineDiff;
var init_line = __esmMin((() => {
	init_base();
	init_params();
	LineDiff = class extends Diff$1 {
		constructor() {
			super(...arguments);
			this.tokenize = tokenize;
		}
		equals(left, right, options) {
			if (options.ignoreWhitespace) {
				if (!options.newlineIsToken || !left.includes("\n")) {
					left = left.trim();
				}
				if (!options.newlineIsToken || !right.includes("\n")) {
					right = right.trim();
				}
			} else if (options.ignoreNewlineAtEof && !options.newlineIsToken) {
				if (left.endsWith("\n")) {
					left = left.slice(0, -1);
				}
				if (right.endsWith("\n")) {
					right = right.slice(0, -1);
				}
			}
			return super.equals(left, right, options);
		}
	};
	lineDiff = new LineDiff();
}));

//#endregion
//#region node_modules/diff/libesm/diff/sentence.js
function isSentenceEndPunct(char) {
	return char == "." || char == "!" || char == "?";
}
function diffSentences(oldStr, newStr, options) {
	return sentenceDiff.diff(oldStr, newStr, options);
}
var SentenceDiff, sentenceDiff;
var init_sentence = __esmMin((() => {
	init_base();
	SentenceDiff = class extends Diff$1 {
		tokenize(value) {
			var _a;
			const result = [];
			let tokenStartI = 0;
			for (let i$7 = 0; i$7 < value.length; i$7++) {
				if (i$7 == value.length - 1) {
					result.push(value.slice(tokenStartI));
					break;
				}
				if (isSentenceEndPunct(value[i$7]) && value[i$7 + 1].match(/\s/)) {
					result.push(value.slice(tokenStartI, i$7 + 1));
					i$7 = tokenStartI = i$7 + 1;
					while ((_a = value[i$7 + 1]) === null || _a === void 0 ? void 0 : _a.match(/\s/)) {
						i$7++;
					}
					result.push(value.slice(tokenStartI, i$7 + 1));
					tokenStartI = i$7 + 1;
				}
			}
			return result;
		}
	};
	sentenceDiff = new SentenceDiff();
}));

//#endregion
//#region node_modules/diff/libesm/diff/css.js
function diffCss(oldStr, newStr, options) {
	return cssDiff.diff(oldStr, newStr, options);
}
var CssDiff, cssDiff;
var init_css = __esmMin((() => {
	init_base();
	CssDiff = class extends Diff$1 {
		tokenize(value) {
			return value.split(/([{}:;,]|\s+)/);
		}
	};
	cssDiff = new CssDiff();
}));

//#endregion
//#region node_modules/diff/libesm/diff/json.js
function diffJson(oldStr, newStr, options) {
	return jsonDiff.diff(oldStr, newStr, options);
}
function canonicalize(obj, stack, replacementStack, replacer, key) {
	stack = stack || [];
	replacementStack = replacementStack || [];
	if (replacer) {
		obj = replacer(key === undefined ? "" : key, obj);
	}
	let i$7;
	for (i$7 = 0; i$7 < stack.length; i$7 += 1) {
		if (stack[i$7] === obj) {
			return replacementStack[i$7];
		}
	}
	let canonicalizedObj;
	if ("[object Array]" === Object.prototype.toString.call(obj)) {
		stack.push(obj);
		canonicalizedObj = new Array(obj.length);
		replacementStack.push(canonicalizedObj);
		for (i$7 = 0; i$7 < obj.length; i$7 += 1) {
			canonicalizedObj[i$7] = canonicalize(obj[i$7], stack, replacementStack, replacer, String(i$7));
		}
		stack.pop();
		replacementStack.pop();
		return canonicalizedObj;
	}
	if (obj && obj.toJSON) {
		obj = obj.toJSON();
	}
	if (typeof obj === "object" && obj !== null) {
		stack.push(obj);
		canonicalizedObj = {};
		replacementStack.push(canonicalizedObj);
		const sortedKeys = [];
		let key$1;
		for (key$1 in obj) {
			/* istanbul ignore else */
			if (Object.prototype.hasOwnProperty.call(obj, key$1)) {
				sortedKeys.push(key$1);
			}
		}
		sortedKeys.sort();
		for (i$7 = 0; i$7 < sortedKeys.length; i$7 += 1) {
			key$1 = sortedKeys[i$7];
			canonicalizedObj[key$1] = canonicalize(obj[key$1], stack, replacementStack, replacer, key$1);
		}
		stack.pop();
		replacementStack.pop();
	} else {
		canonicalizedObj = obj;
	}
	return canonicalizedObj;
}
var JsonDiff, jsonDiff;
var init_json = __esmMin((() => {
	init_base();
	init_line();
	JsonDiff = class extends Diff$1 {
		constructor() {
			super(...arguments);
			this.tokenize = tokenize;
		}
		get useLongestToken() {
			return true;
		}
		castInput(value, options) {
			const { undefinedReplacement, stringifyReplacer = (k$2, v$3) => typeof v$3 === "undefined" ? undefinedReplacement : v$3 } = options;
			return typeof value === "string" ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), null, "  ");
		}
		equals(left, right, options) {
			return super.equals(left.replace(/,([\r\n])/g, "$1"), right.replace(/,([\r\n])/g, "$1"), options);
		}
	};
	jsonDiff = new JsonDiff();
}));

//#endregion
//#region node_modules/diff/libesm/diff/array.js
function diffArrays(oldArr, newArr, options) {
	return arrayDiff.diff(oldArr, newArr, options);
}
var ArrayDiff, arrayDiff;
var init_array = __esmMin((() => {
	init_base();
	ArrayDiff = class extends Diff$1 {
		tokenize(value) {
			return value.slice();
		}
		join(value) {
			return value;
		}
		removeEmpty(value) {
			return value;
		}
	};
	arrayDiff = new ArrayDiff();
}));

//#endregion
//#region node_modules/diff/libesm/patch/line-endings.js
function unixToWin(patch) {
	if (Array.isArray(patch)) {
		return patch.map((p$3) => unixToWin(p$3));
	}
	return Object.assign(Object.assign({}, patch), { hunks: patch.hunks.map((hunk) => Object.assign(Object.assign({}, hunk), { lines: hunk.lines.map((line, i$7) => {
		var _a;
		return line.startsWith("\\") || line.endsWith("\r") || ((_a = hunk.lines[i$7 + 1]) === null || _a === void 0 ? void 0 : _a.startsWith("\\")) ? line : line + "\r";
	}) })) });
}
function winToUnix(patch) {
	if (Array.isArray(patch)) {
		return patch.map((p$3) => winToUnix(p$3));
	}
	return Object.assign(Object.assign({}, patch), { hunks: patch.hunks.map((hunk) => Object.assign(Object.assign({}, hunk), { lines: hunk.lines.map((line) => line.endsWith("\r") ? line.substring(0, line.length - 1) : line) })) });
}
/**
* Returns true if the patch consistently uses Unix line endings (or only involves one line and has
* no line endings).
*/
function isUnix(patch) {
	if (!Array.isArray(patch)) {
		patch = [patch];
	}
	return !patch.some((index) => index.hunks.some((hunk) => hunk.lines.some((line) => !line.startsWith("\\") && line.endsWith("\r"))));
}
/**
* Returns true if the patch uses Windows line endings and only Windows line endings.
*/
function isWin(patch) {
	if (!Array.isArray(patch)) {
		patch = [patch];
	}
	return patch.some((index) => index.hunks.some((hunk) => hunk.lines.some((line) => line.endsWith("\r")))) && patch.every((index) => index.hunks.every((hunk) => hunk.lines.every((line, i$7) => {
		var _a;
		return line.startsWith("\\") || line.endsWith("\r") || ((_a = hunk.lines[i$7 + 1]) === null || _a === void 0 ? void 0 : _a.startsWith("\\"));
	})));
}
var init_line_endings = __esmMin((() => {}));

//#endregion
//#region node_modules/diff/libesm/patch/parse.js
/**
* Parses a patch into structured data, in the same structure returned by `structuredPatch`.
*
* @return a JSON object representation of the a patch, suitable for use with the `applyPatch` method.
*/
function parsePatch(uniDiff) {
	const diffstr = uniDiff.split(/\n/), list = [];
	let i$7 = 0;
	function parseIndex() {
		const index = {};
		list.push(index);
		while (i$7 < diffstr.length) {
			const line = diffstr[i$7];
			if (/^(---|\+\+\+|@@)\s/.test(line)) {
				break;
			}
			const header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line);
			if (header) {
				index.index = header[1];
			}
			i$7++;
		}
		parseFileHeader(index);
		parseFileHeader(index);
		index.hunks = [];
		while (i$7 < diffstr.length) {
			const line = diffstr[i$7];
			if (/^(Index:\s|diff\s|---\s|\+\+\+\s|===================================================================)/.test(line)) {
				break;
			} else if (/^@@/.test(line)) {
				index.hunks.push(parseHunk());
			} else if (line) {
				throw new Error("Unknown line " + (i$7 + 1) + " " + JSON.stringify(line));
			} else {
				i$7++;
			}
		}
	}
	function parseFileHeader(index) {
		const fileHeader = /^(---|\+\+\+)\s+(.*)\r?$/.exec(diffstr[i$7]);
		if (fileHeader) {
			const data = fileHeader[2].split("	", 2), header = (data[1] || "").trim();
			let fileName = data[0].replace(/\\\\/g, "\\");
			if (/^".*"$/.test(fileName)) {
				fileName = fileName.substr(1, fileName.length - 2);
			}
			if (fileHeader[1] === "---") {
				index.oldFileName = fileName;
				index.oldHeader = header;
			} else {
				index.newFileName = fileName;
				index.newHeader = header;
			}
			i$7++;
		}
	}
	function parseHunk() {
		var _a;
		const chunkHeaderIndex = i$7, chunkHeaderLine = diffstr[i$7++], chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);
		const hunk = {
			oldStart: +chunkHeader[1],
			oldLines: typeof chunkHeader[2] === "undefined" ? 1 : +chunkHeader[2],
			newStart: +chunkHeader[3],
			newLines: typeof chunkHeader[4] === "undefined" ? 1 : +chunkHeader[4],
			lines: []
		};
		if (hunk.oldLines === 0) {
			hunk.oldStart += 1;
		}
		if (hunk.newLines === 0) {
			hunk.newStart += 1;
		}
		let addCount = 0, removeCount = 0;
		for (; i$7 < diffstr.length && (removeCount < hunk.oldLines || addCount < hunk.newLines || ((_a = diffstr[i$7]) === null || _a === void 0 ? void 0 : _a.startsWith("\\"))); i$7++) {
			const operation = diffstr[i$7].length == 0 && i$7 != diffstr.length - 1 ? " " : diffstr[i$7][0];
			if (operation === "+" || operation === "-" || operation === " " || operation === "\\") {
				hunk.lines.push(diffstr[i$7]);
				if (operation === "+") {
					addCount++;
				} else if (operation === "-") {
					removeCount++;
				} else if (operation === " ") {
					addCount++;
					removeCount++;
				}
			} else {
				throw new Error(`Hunk at line ${chunkHeaderIndex + 1} contained invalid line ${diffstr[i$7]}`);
			}
		}
		if (!addCount && hunk.newLines === 1) {
			hunk.newLines = 0;
		}
		if (!removeCount && hunk.oldLines === 1) {
			hunk.oldLines = 0;
		}
		if (addCount !== hunk.newLines) {
			throw new Error("Added line count did not match for hunk at line " + (chunkHeaderIndex + 1));
		}
		if (removeCount !== hunk.oldLines) {
			throw new Error("Removed line count did not match for hunk at line " + (chunkHeaderIndex + 1));
		}
		return hunk;
	}
	while (i$7 < diffstr.length) {
		parseIndex();
	}
	return list;
}
var init_parse = __esmMin((() => {}));

//#endregion
//#region node_modules/diff/libesm/util/distance-iterator.js
function distance_iterator_default(start, minLine, maxLine) {
	let wantForward = true, backwardExhausted = false, forwardExhausted = false, localOffset = 1;
	return function iterator() {
		if (wantForward && !forwardExhausted) {
			if (backwardExhausted) {
				localOffset++;
			} else {
				wantForward = false;
			}
			if (start + localOffset <= maxLine) {
				return start + localOffset;
			}
			forwardExhausted = true;
		}
		if (!backwardExhausted) {
			if (!forwardExhausted) {
				wantForward = true;
			}
			if (minLine <= start - localOffset) {
				return start - localOffset++;
			}
			backwardExhausted = true;
			return iterator();
		}
		return undefined;
	};
}
var init_distance_iterator = __esmMin((() => {}));

//#endregion
//#region node_modules/diff/libesm/patch/apply.js
/**
* attempts to apply a unified diff patch.
*
* Hunks are applied first to last.
* `applyPatch` first tries to apply the first hunk at the line number specified in the hunk header, and with all context lines matching exactly.
* If that fails, it tries scanning backwards and forwards, one line at a time, to find a place to apply the hunk where the context lines match exactly.
* If that still fails, and `fuzzFactor` is greater than zero, it increments the maximum number of mismatches (missing, extra, or changed context lines) that there can be between the hunk context and a region where we are trying to apply the patch such that the hunk will still be considered to match.
* Regardless of `fuzzFactor`, lines to be deleted in the hunk *must* be present for a hunk to match, and the context lines *immediately* before and after an insertion must match exactly.
*
* Once a hunk is successfully fitted, the process begins again with the next hunk.
* Regardless of `fuzzFactor`, later hunks must be applied later in the file than earlier hunks.
*
* If a hunk cannot be successfully fitted *anywhere* with fewer than `fuzzFactor` mismatches, `applyPatch` fails and returns `false`.
*
* If a hunk is successfully fitted but not at the line number specified by the hunk header, all subsequent hunks have their target line number adjusted accordingly.
* (e.g. if the first hunk is applied 10 lines below where the hunk header said it should fit, `applyPatch` will *start* looking for somewhere to apply the second hunk 10 lines below where its hunk header says it goes.)
*
* If the patch was applied successfully, returns a string containing the patched text.
* If the patch could not be applied (because some hunks in the patch couldn't be fitted to the text in `source`), `applyPatch` returns false.
*
* @param patch a string diff or the output from the `parsePatch` or `structuredPatch` methods.
*/
function applyPatch(source$4, patch, options = {}) {
	let patches;
	if (typeof patch === "string") {
		patches = parsePatch(patch);
	} else if (Array.isArray(patch)) {
		patches = patch;
	} else {
		patches = [patch];
	}
	if (patches.length > 1) {
		throw new Error("applyPatch only works with a single input.");
	}
	return applyStructuredPatch(source$4, patches[0], options);
}
function applyStructuredPatch(source$4, patch, options = {}) {
	if (options.autoConvertLineEndings || options.autoConvertLineEndings == null) {
		if (hasOnlyWinLineEndings(source$4) && isUnix(patch)) {
			patch = unixToWin(patch);
		} else if (hasOnlyUnixLineEndings(source$4) && isWin(patch)) {
			patch = winToUnix(patch);
		}
	}
	const lines = source$4.split("\n"), hunks = patch.hunks, compareLine = options.compareLine || ((lineNumber, line, operation, patchContent) => line === patchContent), fuzzFactor = options.fuzzFactor || 0;
	let minLine = 0;
	if (fuzzFactor < 0 || !Number.isInteger(fuzzFactor)) {
		throw new Error("fuzzFactor must be a non-negative integer");
	}
	if (!hunks.length) {
		return source$4;
	}
	let prevLine = "", removeEOFNL = false, addEOFNL = false;
	for (let i$7 = 0; i$7 < hunks[hunks.length - 1].lines.length; i$7++) {
		const line = hunks[hunks.length - 1].lines[i$7];
		if (line[0] == "\\") {
			if (prevLine[0] == "+") {
				removeEOFNL = true;
			} else if (prevLine[0] == "-") {
				addEOFNL = true;
			}
		}
		prevLine = line;
	}
	if (removeEOFNL) {
		if (addEOFNL) {
			if (!fuzzFactor && lines[lines.length - 1] == "") {
				return false;
			}
		} else if (lines[lines.length - 1] == "") {
			lines.pop();
		} else if (!fuzzFactor) {
			return false;
		}
	} else if (addEOFNL) {
		if (lines[lines.length - 1] != "") {
			lines.push("");
		} else if (!fuzzFactor) {
			return false;
		}
	}
	/**
	* Checks if the hunk can be made to fit at the provided location with at most `maxErrors`
	* insertions, substitutions, or deletions, while ensuring also that:
	* - lines deleted in the hunk match exactly, and
	* - wherever an insertion operation or block of insertion operations appears in the hunk, the
	*   immediately preceding and following lines of context match exactly
	*
	* `toPos` should be set such that lines[toPos] is meant to match hunkLines[0].
	*
	* If the hunk can be applied, returns an object with properties `oldLineLastI` and
	* `replacementLines`. Otherwise, returns null.
	*/
	function applyHunk(hunkLines, toPos, maxErrors, hunkLinesI = 0, lastContextLineMatched = true, patchedLines = [], patchedLinesLength = 0) {
		let nConsecutiveOldContextLines = 0;
		let nextContextLineMustMatch = false;
		for (; hunkLinesI < hunkLines.length; hunkLinesI++) {
			const hunkLine = hunkLines[hunkLinesI], operation = hunkLine.length > 0 ? hunkLine[0] : " ", content = hunkLine.length > 0 ? hunkLine.substr(1) : hunkLine;
			if (operation === "-") {
				if (compareLine(toPos + 1, lines[toPos], operation, content)) {
					toPos++;
					nConsecutiveOldContextLines = 0;
				} else {
					if (!maxErrors || lines[toPos] == null) {
						return null;
					}
					patchedLines[patchedLinesLength] = lines[toPos];
					return applyHunk(hunkLines, toPos + 1, maxErrors - 1, hunkLinesI, false, patchedLines, patchedLinesLength + 1);
				}
			}
			if (operation === "+") {
				if (!lastContextLineMatched) {
					return null;
				}
				patchedLines[patchedLinesLength] = content;
				patchedLinesLength++;
				nConsecutiveOldContextLines = 0;
				nextContextLineMustMatch = true;
			}
			if (operation === " ") {
				nConsecutiveOldContextLines++;
				patchedLines[patchedLinesLength] = lines[toPos];
				if (compareLine(toPos + 1, lines[toPos], operation, content)) {
					patchedLinesLength++;
					lastContextLineMatched = true;
					nextContextLineMustMatch = false;
					toPos++;
				} else {
					if (nextContextLineMustMatch || !maxErrors) {
						return null;
					}
					return lines[toPos] && (applyHunk(hunkLines, toPos + 1, maxErrors - 1, hunkLinesI + 1, false, patchedLines, patchedLinesLength + 1) || applyHunk(hunkLines, toPos + 1, maxErrors - 1, hunkLinesI, false, patchedLines, patchedLinesLength + 1)) || applyHunk(hunkLines, toPos, maxErrors - 1, hunkLinesI + 1, false, patchedLines, patchedLinesLength);
				}
			}
		}
		patchedLinesLength -= nConsecutiveOldContextLines;
		toPos -= nConsecutiveOldContextLines;
		patchedLines.length = patchedLinesLength;
		return {
			patchedLines,
			oldLineLastI: toPos - 1
		};
	}
	const resultLines = [];
	let prevHunkOffset = 0;
	for (let i$7 = 0; i$7 < hunks.length; i$7++) {
		const hunk = hunks[i$7];
		let hunkResult;
		const maxLine = lines.length - hunk.oldLines + fuzzFactor;
		let toPos;
		for (let maxErrors = 0; maxErrors <= fuzzFactor; maxErrors++) {
			toPos = hunk.oldStart + prevHunkOffset - 1;
			const iterator = distance_iterator_default(toPos, minLine, maxLine);
			for (; toPos !== undefined; toPos = iterator()) {
				hunkResult = applyHunk(hunk.lines, toPos, maxErrors);
				if (hunkResult) {
					break;
				}
			}
			if (hunkResult) {
				break;
			}
		}
		if (!hunkResult) {
			return false;
		}
		for (let i$8 = minLine; i$8 < toPos; i$8++) {
			resultLines.push(lines[i$8]);
		}
		for (let i$8 = 0; i$8 < hunkResult.patchedLines.length; i$8++) {
			const line = hunkResult.patchedLines[i$8];
			resultLines.push(line);
		}
		minLine = hunkResult.oldLineLastI + 1;
		prevHunkOffset = toPos + 1 - hunk.oldStart;
	}
	for (let i$7 = minLine; i$7 < lines.length; i$7++) {
		resultLines.push(lines[i$7]);
	}
	return resultLines.join("\n");
}
/**
* applies one or more patches.
*
* `patch` may be either an array of structured patch objects, or a string representing a patch in unified diff format (which may patch one or more files).
*
* This method will iterate over the contents of the patch and apply to data provided through callbacks. The general flow for each patch index is:
*
* - `options.loadFile(index, callback)` is called. The caller should then load the contents of the file and then pass that to the `callback(err, data)` callback. Passing an `err` will terminate further patch execution.
* - `options.patched(index, content, callback)` is called once the patch has been applied. `content` will be the return value from `applyPatch`. When it's ready, the caller should call `callback(err)` callback. Passing an `err` will terminate further patch execution.
*
* Once all patches have been applied or an error occurs, the `options.complete(err)` callback is made.
*/
function applyPatches(uniDiff, options) {
	const spDiff = typeof uniDiff === "string" ? parsePatch(uniDiff) : uniDiff;
	let currentIndex = 0;
	function processIndex() {
		const index = spDiff[currentIndex++];
		if (!index) {
			return options.complete();
		}
		options.loadFile(index, function(err, data) {
			if (err) {
				return options.complete(err);
			}
			const updatedContent = applyPatch(data, index, options);
			options.patched(index, updatedContent, function(err$1) {
				if (err$1) {
					return options.complete(err$1);
				}
				processIndex();
			});
		});
	}
	processIndex();
}
var init_apply = __esmMin((() => {
	init_string();
	init_line_endings();
	init_parse();
	init_distance_iterator();
}));

//#endregion
//#region node_modules/diff/libesm/patch/reverse.js
function reversePatch(structuredPatch$1) {
	if (Array.isArray(structuredPatch$1)) {
		return structuredPatch$1.map((patch) => reversePatch(patch)).reverse();
	}
	return Object.assign(Object.assign({}, structuredPatch$1), {
		oldFileName: structuredPatch$1.newFileName,
		oldHeader: structuredPatch$1.newHeader,
		newFileName: structuredPatch$1.oldFileName,
		newHeader: structuredPatch$1.oldHeader,
		hunks: structuredPatch$1.hunks.map((hunk) => {
			return {
				oldLines: hunk.newLines,
				oldStart: hunk.newStart,
				newLines: hunk.oldLines,
				newStart: hunk.oldStart,
				lines: hunk.lines.map((l$3) => {
					if (l$3.startsWith("-")) {
						return `+${l$3.slice(1)}`;
					}
					if (l$3.startsWith("+")) {
						return `-${l$3.slice(1)}`;
					}
					return l$3;
				})
			};
		})
	});
}
var init_reverse = __esmMin((() => {}));

//#endregion
//#region node_modules/diff/libesm/patch/create.js
function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
	let optionsObj;
	if (!options) {
		optionsObj = {};
	} else if (typeof options === "function") {
		optionsObj = { callback: options };
	} else {
		optionsObj = options;
	}
	if (typeof optionsObj.context === "undefined") {
		optionsObj.context = 4;
	}
	const context = optionsObj.context;
	if (optionsObj.newlineIsToken) {
		throw new Error("newlineIsToken may not be used with patch-generation functions, only with diffing functions");
	}
	if (!optionsObj.callback) {
		return diffLinesResultToPatch(diffLines(oldStr, newStr, optionsObj));
	} else {
		const { callback } = optionsObj;
		diffLines(oldStr, newStr, Object.assign(Object.assign({}, optionsObj), { callback: (diff$1) => {
			const patch = diffLinesResultToPatch(diff$1);
			callback(patch);
		} }));
	}
	function diffLinesResultToPatch(diff$1) {
		if (!diff$1) {
			return;
		}
		diff$1.push({
			value: "",
			lines: []
		});
		function contextLines(lines) {
			return lines.map(function(entry) {
				return " " + entry;
			});
		}
		const hunks = [];
		let oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1;
		for (let i$7 = 0; i$7 < diff$1.length; i$7++) {
			const current = diff$1[i$7], lines = current.lines || splitLines(current.value);
			current.lines = lines;
			if (current.added || current.removed) {
				if (!oldRangeStart) {
					const prev = diff$1[i$7 - 1];
					oldRangeStart = oldLine;
					newRangeStart = newLine;
					if (prev) {
						curRange = context > 0 ? contextLines(prev.lines.slice(-context)) : [];
						oldRangeStart -= curRange.length;
						newRangeStart -= curRange.length;
					}
				}
				for (const line of lines) {
					curRange.push((current.added ? "+" : "-") + line);
				}
				if (current.added) {
					newLine += lines.length;
				} else {
					oldLine += lines.length;
				}
			} else {
				if (oldRangeStart) {
					if (lines.length <= context * 2 && i$7 < diff$1.length - 2) {
						for (const line of contextLines(lines)) {
							curRange.push(line);
						}
					} else {
						const contextSize = Math.min(lines.length, context);
						for (const line of contextLines(lines.slice(0, contextSize))) {
							curRange.push(line);
						}
						const hunk = {
							oldStart: oldRangeStart,
							oldLines: oldLine - oldRangeStart + contextSize,
							newStart: newRangeStart,
							newLines: newLine - newRangeStart + contextSize,
							lines: curRange
						};
						hunks.push(hunk);
						oldRangeStart = 0;
						newRangeStart = 0;
						curRange = [];
					}
				}
				oldLine += lines.length;
				newLine += lines.length;
			}
		}
		for (const hunk of hunks) {
			for (let i$7 = 0; i$7 < hunk.lines.length; i$7++) {
				if (hunk.lines[i$7].endsWith("\n")) {
					hunk.lines[i$7] = hunk.lines[i$7].slice(0, -1);
				} else {
					hunk.lines.splice(i$7 + 1, 0, "\\ No newline at end of file");
					i$7++;
				}
			}
		}
		return {
			oldFileName,
			newFileName,
			oldHeader,
			newHeader,
			hunks
		};
	}
}
/**
* creates a unified diff patch.
* @param patch either a single structured patch object (as returned by `structuredPatch`) or an array of them (as returned by `parsePatch`)
*/
function formatPatch(patch) {
	if (Array.isArray(patch)) {
		return patch.map(formatPatch).join("\n");
	}
	const ret = [];
	if (patch.oldFileName == patch.newFileName) {
		ret.push("Index: " + patch.oldFileName);
	}
	ret.push("===================================================================");
	ret.push("--- " + patch.oldFileName + (typeof patch.oldHeader === "undefined" ? "" : "	" + patch.oldHeader));
	ret.push("+++ " + patch.newFileName + (typeof patch.newHeader === "undefined" ? "" : "	" + patch.newHeader));
	for (let i$7 = 0; i$7 < patch.hunks.length; i$7++) {
		const hunk = patch.hunks[i$7];
		if (hunk.oldLines === 0) {
			hunk.oldStart -= 1;
		}
		if (hunk.newLines === 0) {
			hunk.newStart -= 1;
		}
		ret.push("@@ -" + hunk.oldStart + "," + hunk.oldLines + " +" + hunk.newStart + "," + hunk.newLines + " @@");
		for (const line of hunk.lines) {
			ret.push(line);
		}
	}
	return ret.join("\n") + "\n";
}
function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
	if (typeof options === "function") {
		options = { callback: options };
	}
	if (!(options === null || options === void 0 ? void 0 : options.callback)) {
		const patchObj = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);
		if (!patchObj) {
			return;
		}
		return formatPatch(patchObj);
	} else {
		const { callback } = options;
		structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, Object.assign(Object.assign({}, options), { callback: (patchObj) => {
			if (!patchObj) {
				callback(undefined);
			} else {
				callback(formatPatch(patchObj));
			}
		} }));
	}
}
function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {
	return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);
}
/**
* Split `text` into an array of lines, including the trailing newline character (where present)
*/
function splitLines(text$2) {
	const hasTrailingNl = text$2.endsWith("\n");
	const result = text$2.split("\n").map((line) => line + "\n");
	if (hasTrailingNl) {
		result.pop();
	} else {
		result.push(result.pop().slice(0, -1));
	}
	return result;
}
var init_create = __esmMin((() => {
	init_line();
}));

//#endregion
//#region node_modules/diff/libesm/convert/dmp.js
/**
* converts a list of change objects to the format returned by Google's [diff-match-patch](https://github.com/google/diff-match-patch) library
*/
function convertChangesToDMP(changes) {
	const ret = [];
	let change, operation;
	for (let i$7 = 0; i$7 < changes.length; i$7++) {
		change = changes[i$7];
		if (change.added) {
			operation = 1;
		} else if (change.removed) {
			operation = -1;
		} else {
			operation = 0;
		}
		ret.push([operation, change.value]);
	}
	return ret;
}
var init_dmp = __esmMin((() => {}));

//#endregion
//#region node_modules/diff/libesm/convert/xml.js
/**
* converts a list of change objects to a serialized XML format
*/
function convertChangesToXML(changes) {
	const ret = [];
	for (let i$7 = 0; i$7 < changes.length; i$7++) {
		const change = changes[i$7];
		if (change.added) {
			ret.push("<ins>");
		} else if (change.removed) {
			ret.push("<del>");
		}
		ret.push(escapeHTML(change.value));
		if (change.added) {
			ret.push("</ins>");
		} else if (change.removed) {
			ret.push("</del>");
		}
	}
	return ret.join("");
}
function escapeHTML(s$5) {
	let n$9 = s$5;
	n$9 = n$9.replace(/&/g, "&amp;");
	n$9 = n$9.replace(/</g, "&lt;");
	n$9 = n$9.replace(/>/g, "&gt;");
	n$9 = n$9.replace(/"/g, "&quot;");
	return n$9;
}
var init_xml = __esmMin((() => {}));

//#endregion
//#region node_modules/diff/libesm/index.js
var init_libesm = __esmMin((() => {
	init_base();
	init_character();
	init_word();
	init_line();
	init_sentence();
	init_css();
	init_json();
	init_array();
	init_apply();
	init_parse();
	init_reverse();
	init_create();
	init_dmp();
	init_xml();
}));

//#endregion
//#region node_modules/@mariozechner/mini-lit/dist/Diff.js
var Diff;
var init_Diff = __esmMin((() => {
	init_libesm();
	init_mini();
	Diff = fc(({ oldText, newText, title, className = "" }) => {
		const parts = diffLines(oldText ?? "", newText ?? "");
		const lines = [];
		let addedCount = 0;
		let removedCount = 0;
		for (const part of parts) {
			const raw = part.value.split("\n");
			if (raw[raw.length - 1] === "") raw.pop();
			for (const line of raw) {
				const prefix = part.added ? "+" : part.removed ? "-" : " ";
				const rowClass = part.added ? "bg-emerald-500/15" : part.removed ? "bg-red-500/15" : "";
				if (part.added) addedCount++;
				if (part.removed) removedCount++;
				lines.push(x`<div class="${rowClass}">
               <pre class="m-0 px-4 py-0.5 text-xs font-mono text-foreground">${prefix} ${line}</pre>
            </div>`);
			}
		}
		const content = x` <div class="overflow-auto max-h-96">${lines}</div> `;
		if (title) {
			return x`
         <div class="border border-border rounded-lg overflow-hidden ${className}">
            <div class="flex items-center justify-between px-3 py-1.5 bg-muted border-b border-border">
               <span class="text-xs text-muted-foreground font-mono">${title}</span>
               <span class="text-xs text-muted-foreground">
                  <span class="text-emerald-600">+${addedCount}</span>
                  <span class="mx-1">/</span>
                  <span class="text-red-600">-${removedCount}</span>
               </span>
            </div>
            ${content}
         </div>
      `;
		}
		return x`<div class="border border-border rounded-lg overflow-hidden ${className}">${content}</div>`;
	});
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/artifacts/ArtifactPill.js
function ArtifactPill(filename, artifactsPanel) {
	const handleClick = (e$10) => {
		if (!artifactsPanel) return;
		e$10.preventDefault();
		e$10.stopPropagation();
		artifactsPanel.openArtifact(filename);
	};
	return x`
		<span
			class="inline-flex items-center gap-1 px-2 py-0.5 text-xs bg-muted/50 border border-border rounded ${artifactsPanel ? "cursor-pointer hover:bg-muted transition-colors" : ""}"
			@click=${artifactsPanel ? handleClick : null}
		>
			${icon(FileCodeCorner, "sm")}
			<span class="text-foreground">${filename}</span>
		</span>
	`;
}
var init_ArtifactPill = __esmMin((() => {
	init_dist();
	init_lit();
	init_lucide();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/artifacts/artifacts-tool-renderer.js
function getTextOutput(result) {
	if (!result) return "";
	return result.content?.filter((c$7) => c$7.type === "text").map((c$7) => c$7.text).join("\n") || "";
}
function getLanguageFromFilename(filename) {
	if (!filename) return "text";
	const ext = filename.split(".").pop()?.toLowerCase();
	const languageMap = {
		js: "javascript",
		jsx: "javascript",
		ts: "typescript",
		tsx: "typescript",
		html: "html",
		css: "css",
		scss: "scss",
		json: "json",
		py: "python",
		md: "markdown",
		svg: "xml",
		xml: "xml",
		yaml: "yaml",
		yml: "yaml",
		sh: "bash",
		bash: "bash",
		sql: "sql",
		java: "java",
		c: "c",
		cpp: "cpp",
		cs: "csharp",
		go: "go",
		rs: "rust",
		php: "php",
		rb: "ruby",
		swift: "swift",
		kt: "kotlin",
		r: "r"
	};
	return languageMap[ext || ""] || "text";
}
var ArtifactsToolRenderer;
var init_artifacts_tool_renderer = __esmMin((() => {
	init_CodeBlock();
	init_ref$2();
	init_lucide();
	init_ConsoleBlock();
	init_Diff();
	init_lit();
	init_i18n();
	init_renderer_registry();
	init_ArtifactPill();
	ArtifactsToolRenderer = class {
		constructor(artifactsPanel) {
			this.artifactsPanel = artifactsPanel;
		}
		render(params, result, isStreaming) {
			const state$1 = result ? result.isError ? "error" : "complete" : isStreaming ? "inprogress" : "complete";
			const contentRef = e();
			const chevronRef = e();
			const getCommandLabels = (command) => {
				const labels = {
					create: {
						streaming: i18n("Creating artifact"),
						complete: i18n("Created artifact")
					},
					update: {
						streaming: i18n("Updating artifact"),
						complete: i18n("Updated artifact")
					},
					rewrite: {
						streaming: i18n("Rewriting artifact"),
						complete: i18n("Rewrote artifact")
					},
					get: {
						streaming: i18n("Getting artifact"),
						complete: i18n("Got artifact")
					},
					delete: {
						streaming: i18n("Deleting artifact"),
						complete: i18n("Deleted artifact")
					},
					logs: {
						streaming: i18n("Getting logs"),
						complete: i18n("Got logs")
					}
				};
				return labels[command] || {
					streaming: i18n("Processing artifact"),
					complete: i18n("Processed artifact")
				};
			};
			const renderHeaderWithPill = (labelText, filename) => {
				if (filename) {
					return x`<span>${labelText} ${ArtifactPill(filename, this.artifactsPanel)}</span>`;
				}
				return x`<span>${labelText}</span>`;
			};
			if (result?.isError) {
				const command = params?.command;
				const filename = params?.filename;
				const labels = command ? getCommandLabels(command) : {
					streaming: i18n("Processing artifact"),
					complete: i18n("Processed artifact")
				};
				const headerText = labels.streaming;
				if (command === "create" || command === "update" || command === "rewrite") {
					const content = params?.content || "";
					const { old_str, new_str } = params || {};
					const isDiff = command === "update";
					const diffContent = old_str !== undefined && new_str !== undefined ? Diff({
						oldText: old_str,
						newText: new_str
					}) : "";
					const isHtml = filename?.endsWith(".html");
					return {
						content: x`
					<div>
						${renderCollapsibleHeader(state$1, FileCodeCorner, renderHeaderWithPill(headerText, filename), contentRef, chevronRef, false)}
						<div ${n(contentRef)} class="max-h-0 overflow-hidden transition-all duration-300 space-y-3">
							${isDiff ? diffContent : content ? x`<code-block .code=${content} language=${getLanguageFromFilename(filename)}></code-block>` : ""}
							${isHtml ? x`<console-block .content=${getTextOutput(result) || i18n("An error occurred")} variant="error"></console-block>` : x`<div class="text-sm text-destructive">${getTextOutput(result) || i18n("An error occurred")}</div>`}
						</div>
					</div>
				`,
						isCustom: false
					};
				}
				return {
					content: x`
				<div class="space-y-3">
					${renderHeader(state$1, FileCodeCorner, headerText)}
					<div class="text-sm text-destructive">${getTextOutput(result) || i18n("An error occurred")}</div>
				</div>
			`,
					isCustom: false
				};
			}
			if (result && params) {
				const { command, filename, content } = params;
				const labels = command ? getCommandLabels(command) : {
					streaming: i18n("Processing artifact"),
					complete: i18n("Processed artifact")
				};
				const headerText = labels.complete;
				if (command === "get") {
					const fileContent = getTextOutput(result) || i18n("(no output)");
					return {
						content: x`
					<div>
						${renderCollapsibleHeader(state$1, FileCodeCorner, renderHeaderWithPill(headerText, filename), contentRef, chevronRef, false)}
						<div ${n(contentRef)} class="max-h-0 overflow-hidden transition-all duration-300">
							<code-block .code=${fileContent} language=${getLanguageFromFilename(filename)}></code-block>
						</div>
					</div>
				`,
						isCustom: false
					};
				}
				if (command === "logs") {
					const logs = getTextOutput(result) || i18n("(no output)");
					return {
						content: x`
					<div>
						${renderCollapsibleHeader(state$1, FileCodeCorner, renderHeaderWithPill(headerText, filename), contentRef, chevronRef, false)}
						<div ${n(contentRef)} class="max-h-0 overflow-hidden transition-all duration-300">
							<console-block .content=${logs}></console-block>
						</div>
					</div>
				`,
						isCustom: false
					};
				}
				if (command === "create" || command === "rewrite") {
					const codeContent = content || "";
					const isHtml = filename?.endsWith(".html");
					const logs = getTextOutput(result) || "";
					return {
						content: x`
					<div>
						${renderCollapsibleHeader(state$1, FileCodeCorner, renderHeaderWithPill(headerText, filename), contentRef, chevronRef, false)}
						<div ${n(contentRef)} class="max-h-0 overflow-hidden transition-all duration-300 space-y-3">
							${codeContent ? x`<code-block .code=${codeContent} language=${getLanguageFromFilename(filename)}></code-block>` : ""}
							${isHtml && logs ? x`<console-block .content=${logs}></console-block>` : ""}
						</div>
					</div>
				`,
						isCustom: false
					};
				}
				if (command === "update") {
					const isHtml = filename?.endsWith(".html");
					const logs = getTextOutput(result) || "";
					return {
						content: x`
					<div>
						${renderCollapsibleHeader(state$1, FileCodeCorner, renderHeaderWithPill(headerText, filename), contentRef, chevronRef, false)}
						<div ${n(contentRef)} class="max-h-0 overflow-hidden transition-all duration-300 space-y-3">
							${Diff({
							oldText: params.old_str || "",
							newText: params.new_str || ""
						})}
							${isHtml && logs ? x`<console-block .content=${logs}></console-block>` : ""}
						</div>
					</div>
				`,
						isCustom: false
					};
				}
				return {
					content: x`
				<div class="space-y-3">
					${renderHeader(state$1, FileCodeCorner, renderHeaderWithPill(headerText, filename))}
				</div>
			`,
					isCustom: false
				};
			}
			if (params) {
				const { command, filename, content, old_str, new_str } = params;
				if (!command) {
					return {
						content: renderHeader(state$1, FileCodeCorner, i18n("Preparing artifact...")),
						isCustom: false
					};
				}
				const labels = getCommandLabels(command);
				const headerText = labels.streaming;
				switch (command) {
					case "create":
					case "rewrite": return {
						content: x`
						<div>
							${renderCollapsibleHeader(state$1, FileCodeCorner, renderHeaderWithPill(headerText, filename), contentRef, chevronRef, false)}
							<div ${n(contentRef)} class="max-h-0 overflow-hidden transition-all duration-300">
								${content ? x`<code-block .code=${content} language=${getLanguageFromFilename(filename)}></code-block>` : ""}
							</div>
						</div>
					`,
						isCustom: false
					};
					case "update": return {
						content: x`
						<div>
							${renderCollapsibleHeader(state$1, FileCodeCorner, renderHeaderWithPill(headerText, filename), contentRef, chevronRef, false)}
							<div ${n(contentRef)} class="max-h-0 overflow-hidden transition-all duration-300">
								${old_str !== undefined && new_str !== undefined ? Diff({
							oldText: old_str,
							newText: new_str
						}) : ""}
							</div>
						</div>
					`,
						isCustom: false
					};
					case "get":
					case "logs": return {
						content: x`
						<div>
							${renderCollapsibleHeader(state$1, FileCodeCorner, renderHeaderWithPill(headerText, filename), contentRef, chevronRef, false)}
							<div ${n(contentRef)} class="max-h-0 overflow-hidden transition-all duration-300"></div>
						</div>
					`,
						isCustom: false
					};
					default: return {
						content: x`
						<div>
							${renderHeader(state$1, FileCodeCorner, renderHeaderWithPill(headerText, filename))}
						</div>
					`,
						isCustom: false
					};
				}
			}
			return {
				content: renderHeader(state$1, FileCodeCorner, i18n("Preparing artifact...")),
				isCustom: false
			};
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/tools/artifacts/index.js
var init_artifacts = __esmMin((() => {
	init_ArtifactElement();
	init_artifacts$1();
	init_artifacts_tool_renderer();
	init_HtmlArtifact();
	init_MarkdownArtifact();
	init_SvgArtifact();
	init_TextArtifact();
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/ChatPanel.js
var ChatPanel_exports = /* @__PURE__ */ __export({ ChatPanel: () => ChatPanel });
var __decorate, BREAKPOINT, ChatPanel;
var init_ChatPanel = __esmMin((() => {
	init_Badge();
	init_lit();
	init_decorators();
	init_AgentInterface();
	init_ArtifactsRuntimeProvider();
	init_AttachmentsRuntimeProvider();
	init_artifacts();
	init_renderer_registry();
	init_i18n();
	__decorate = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
		var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
		if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
		else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
		return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
	};
	BREAKPOINT = 800;
	ChatPanel = class ChatPanel$1 extends i {
		constructor() {
			super(...arguments);
			this.hasArtifacts = false;
			this.artifactCount = 0;
			this.showArtifactsPanel = false;
			this.windowWidth = 0;
			this.resizeHandler = () => {
				this.windowWidth = window.innerWidth;
				this.requestUpdate();
			};
		}
		createRenderRoot() {
			return this;
		}
		connectedCallback() {
			super.connectedCallback();
			this.windowWidth = window.innerWidth;
			window.addEventListener("resize", this.resizeHandler);
			this.style.display = "flex";
			this.style.flexDirection = "column";
			this.style.height = "100%";
			this.style.minHeight = "0";
			requestAnimationFrame(() => {
				this.windowWidth = window.innerWidth;
				this.requestUpdate();
			});
		}
		disconnectedCallback() {
			super.disconnectedCallback();
			window.removeEventListener("resize", this.resizeHandler);
		}
		async setAgent(agent, config) {
			this.agent = agent;
			this.agentInterface = document.createElement("agent-interface");
			this.agentInterface.session = agent;
			this.agentInterface.sessionThinkingLevel = config?.sessionThinkingLevel ?? agent?.state?.thinkingLevel ?? "off";
			this.agentInterface.enableAttachments = true;
			this.agentInterface.enableModelSelector = false;
			this.agentInterface.enableThinkingSelector = true;
			this.agentInterface.showThemeToggle = false;
			this.agentInterface.onApiKeyRequired = async () => true;
			this.agentInterface.onApiKeyRequired = config?.onApiKeyRequired;
			this.agentInterface.onBeforeSend = config?.onBeforeSend;
			this.agentInterface.onCostClick = config?.onCostClick;
			this.artifactsPanel = new ArtifactsPanel();
			this.artifactsPanel.agent = agent;
			if (config?.sandboxUrlProvider) {
				this.artifactsPanel.sandboxUrlProvider = config.sandboxUrlProvider;
			}
			registerToolRenderer("artifacts", new ArtifactsToolRenderer(this.artifactsPanel));
			const runtimeProvidersFactory = () => {
				const attachments = [];
				for (const message of this.agent.state.messages) {
					if (message.role === "user") {
						message.attachments?.forEach((a$2) => {
							attachments.push(a$2);
						});
					}
				}
				const providers = [];
				if (attachments.length > 0) {
					providers.push(new AttachmentsRuntimeProvider(attachments));
				}
				providers.push(new ArtifactsRuntimeProvider(this.artifactsPanel, this.agent, true));
				return providers;
			};
			this.artifactsPanel.onArtifactsChange = () => {
				const count = this.artifactsPanel?.artifacts?.size ?? 0;
				const created = count > this.artifactCount;
				this.hasArtifacts = count > 0;
				this.artifactCount = count;
				if (this.hasArtifacts && created) {
					this.showArtifactsPanel = true;
				}
				this.requestUpdate();
			};
			this.artifactsPanel.onClose = () => {
				this.showArtifactsPanel = false;
				this.requestUpdate();
			};
			this.artifactsPanel.onOpen = () => {
				this.showArtifactsPanel = true;
				this.requestUpdate();
			};
			const additionalTools = config?.toolsFactory?.(agent, this.agentInterface, this.artifactsPanel, runtimeProvidersFactory) || [];
			const tools = [this.artifactsPanel.tool, ...additionalTools];
			this.agent.setTools(tools);
			const originalCallback = this.artifactsPanel.onArtifactsChange;
			this.artifactsPanel.onArtifactsChange = undefined;
			await this.artifactsPanel.reconstructFromMessages(this.agent.state.messages);
			this.artifactsPanel.onArtifactsChange = originalCallback;
			this.hasArtifacts = this.artifactsPanel.artifacts.size > 0;
			this.artifactCount = this.artifactsPanel.artifacts.size;
			this.requestUpdate();
		}
		render() {
			if (!this.agent || !this.agentInterface) {
				return x`<div class="flex items-center justify-center h-full">
				<div class="text-muted-foreground">No agent set</div>
			</div>`;
			}
			const isMobile = this.windowWidth < BREAKPOINT;
			if (this.artifactsPanel) {
				this.artifactsPanel.collapsed = !this.showArtifactsPanel;
				this.artifactsPanel.overlay = isMobile;
			}
			return x`
			<div class="relative w-full h-full overflow-hidden flex">
				<div class="h-full" style="${!isMobile && this.showArtifactsPanel && this.hasArtifacts ? "width: 50%;" : "width: 100%;"}">
						${this.agentInterface}
					</div>

					<!-- Floating pill when artifacts exist and panel is collapsed -->
					${this.hasArtifacts && !this.showArtifactsPanel ? x`
								<button
									class="absolute z-30 top-4 left-1/2 -translate-x-1/2 pointer-events-auto"
									@click=${() => {
				this.showArtifactsPanel = true;
				this.requestUpdate();
			}}
									title=${i18n("Show artifacts")}
								>
									${Badge(x`
										<span class="inline-flex items-center gap-1">
											<span>${i18n("Artifacts")}</span>
											<span class="text-[10px] leading-none bg-primary-foreground/20 text-primary-foreground rounded px-1 font-mono tabular-nums">${this.artifactCount}</span>
										</span>
									`)}
								</button>
							` : ""}

				<div class="h-full ${isMobile ? "absolute inset-0 pointer-events-none" : ""}" style="${!isMobile ? !this.hasArtifacts || !this.showArtifactsPanel ? "display: none;" : "width: 50%;" : ""}">
					${this.artifactsPanel}
				</div>
			</div>
		`;
		}
	};
	__decorate([r()], ChatPanel.prototype, "agent", void 0);
	__decorate([r()], ChatPanel.prototype, "agentInterface", void 0);
	__decorate([r()], ChatPanel.prototype, "artifactsPanel", void 0);
	__decorate([r()], ChatPanel.prototype, "hasArtifacts", void 0);
	__decorate([r()], ChatPanel.prototype, "artifactCount", void 0);
	__decorate([r()], ChatPanel.prototype, "showArtifactsPanel", void 0);
	__decorate([r()], ChatPanel.prototype, "windowWidth", void 0);
	ChatPanel = __decorate([t("pi-chat-panel")], ChatPanel);
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/storage/store.js
var Store;
var init_store = __esmMin((() => {
	Store = class {
		constructor() {
			this.backend = null;
		}
		/**
		* Sets the storage backend. Called by AppStorage after backend creation.
		*/
		setBackend(backend) {
			this.backend = backend;
		}
		/**
		* Gets the storage backend. Throws if backend not set.
		* Concrete stores must use this to access the backend.
		*/
		getBackend() {
			if (!this.backend) {
				throw new Error(`Backend not set on ${this.constructor.name}`);
			}
			return this.backend;
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/storage/stores/settings-store.js
var settings_store_exports = /* @__PURE__ */ __export({ SettingsStore: () => SettingsStore });
var SettingsStore;
var init_settings_store = __esmMin((() => {
	init_store();
	SettingsStore = class extends Store {
		getConfig() {
			return { name: "settings" };
		}
		async get(key) {
			return this.getBackend().get("settings", key);
		}
		async set(key, value) {
			await this.getBackend().set("settings", key, value);
		}
		async delete(key) {
			await this.getBackend().delete("settings", key);
		}
		async list() {
			return this.getBackend().keys("settings");
		}
		async clear() {
			await this.getBackend().clear("settings");
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/storage/stores/provider-keys-store.js
var provider_keys_store_exports = /* @__PURE__ */ __export({ ProviderKeysStore: () => ProviderKeysStore });
var ProviderKeysStore;
var init_provider_keys_store = __esmMin((() => {
	init_store();
	ProviderKeysStore = class extends Store {
		getConfig() {
			return { name: "provider-keys" };
		}
		async get(provider) {
			return this.getBackend().get("provider-keys", provider);
		}
		async set(provider, key) {
			await this.getBackend().set("provider-keys", provider, key);
		}
		async delete(provider) {
			await this.getBackend().delete("provider-keys", provider);
		}
		async list() {
			return this.getBackend().keys("provider-keys");
		}
		async has(provider) {
			return this.getBackend().has("provider-keys", provider);
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/storage/stores/sessions-store.js
var sessions_store_exports = /* @__PURE__ */ __export({ SessionsStore: () => SessionsStore });
var SessionsStore;
var init_sessions_store = __esmMin((() => {
	init_store();
	SessionsStore = class extends Store {
		getConfig() {
			return {
				name: "sessions",
				keyPath: "id",
				indices: [{
					name: "lastModified",
					keyPath: "lastModified"
				}]
			};
		}
		/**
		* Additional config for sessions-metadata store.
		* Must be included when creating the backend.
		*/
		static getMetadataConfig() {
			return {
				name: "sessions-metadata",
				keyPath: "id",
				indices: [{
					name: "lastModified",
					keyPath: "lastModified"
				}]
			};
		}
		async save(data, metadata) {
			await this.getBackend().transaction(["sessions", "sessions-metadata"], "readwrite", async (tx) => {
				await tx.set("sessions", data.id, data);
				await tx.set("sessions-metadata", metadata.id, metadata);
			});
		}
		async get(id) {
			return this.getBackend().get("sessions", id);
		}
		async getMetadata(id) {
			return this.getBackend().get("sessions-metadata", id);
		}
		async getAllMetadata() {
			return this.getBackend().getAllFromIndex("sessions-metadata", "lastModified", "desc");
		}
		async delete(id) {
			await this.getBackend().transaction(["sessions", "sessions-metadata"], "readwrite", async (tx) => {
				await tx.delete("sessions", id);
				await tx.delete("sessions-metadata", id);
			});
		}
		async deleteSession(id) {
			return this.delete(id);
		}
		async updateTitle(id, title) {
			const metadata = await this.getMetadata(id);
			if (metadata) {
				metadata.title = title;
				await this.getBackend().set("sessions-metadata", id, metadata);
			}
			const data = await this.get(id);
			if (data) {
				data.title = title;
				await this.getBackend().set("sessions", id, data);
			}
		}
		async getQuotaInfo() {
			return this.getBackend().getQuotaInfo();
		}
		async requestPersistence() {
			return this.getBackend().requestPersistence();
		}
		async saveSession(id, state$1, metadata, title) {
			const meta = metadata || {
				id,
				title: title || "",
				createdAt: new Date().toISOString(),
				lastModified: new Date().toISOString(),
				messageCount: state$1.messages?.length || 0,
				usage: {
					input: 0,
					output: 0,
					cacheRead: 0,
					cacheWrite: 0,
					cost: {
						input: 0,
						output: 0,
						cacheRead: 0,
						cacheWrite: 0,
						total: 0
					}
				},
				thinkingLevel: state$1.thinkingLevel || "off",
				preview: ""
			};
			const data = {
				id,
				title: title || meta.title,
				model: state$1.model,
				thinkingLevel: state$1.thinkingLevel,
				messages: state$1.messages || [],
				createdAt: meta.createdAt,
				lastModified: new Date().toISOString()
			};
			await this.save(data, meta);
		}
		async loadSession(id) {
			return this.get(id);
		}
		async getLatestSessionId() {
			const allMetadata = await this.getAllMetadata();
			if (allMetadata.length === 0) return null;
			allMetadata.sort((a$2, b$3) => b$3.lastModified.localeCompare(a$2.lastModified));
			return allMetadata[0].id;
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/storage/stores/custom-providers-store.js
var custom_providers_store_exports = /* @__PURE__ */ __export({ CustomProvidersStore: () => CustomProvidersStore });
var CustomProvidersStore;
var init_custom_providers_store = __esmMin((() => {
	init_store();
	CustomProvidersStore = class extends Store {
		getConfig() {
			return { name: "custom-providers" };
		}
		async get(id) {
			return this.getBackend().get("custom-providers", id);
		}
		async set(provider) {
			await this.getBackend().set("custom-providers", provider.id, provider);
		}
		async delete(id) {
			await this.getBackend().delete("custom-providers", id);
		}
		async getAll() {
			const keys$1 = await this.getBackend().keys("custom-providers");
			const providers = [];
			for (const key of keys$1) {
				const provider = await this.get(key);
				if (provider) {
					providers.push(provider);
				}
			}
			return providers;
		}
		async has(id) {
			return this.getBackend().has("custom-providers", id);
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/storage/backends/indexeddb-storage-backend.js
var indexeddb_storage_backend_exports = /* @__PURE__ */ __export({ IndexedDBStorageBackend: () => IndexedDBStorageBackend });
var IndexedDBStorageBackend;
var init_indexeddb_storage_backend = __esmMin((() => {
	IndexedDBStorageBackend = class {
		constructor(config) {
			this.config = config;
			this.dbPromise = null;
		}
		async getDB() {
			if (!this.dbPromise) {
				this.dbPromise = new Promise((resolve, reject) => {
					const request = indexedDB.open(this.config.dbName, this.config.version);
					request.onerror = () => reject(request.error);
					request.onsuccess = () => resolve(request.result);
					request.onupgradeneeded = (_event) => {
						const db = request.result;
						for (const storeConfig of this.config.stores) {
							if (!db.objectStoreNames.contains(storeConfig.name)) {
								const store = db.createObjectStore(storeConfig.name, {
									keyPath: storeConfig.keyPath,
									autoIncrement: storeConfig.autoIncrement
								});
								if (storeConfig.indices) {
									for (const indexConfig of storeConfig.indices) {
										store.createIndex(indexConfig.name, indexConfig.keyPath, { unique: indexConfig.unique });
									}
								}
							}
						}
					};
				});
			}
			return this.dbPromise;
		}
		promisifyRequest(request) {
			return new Promise((resolve, reject) => {
				request.onsuccess = () => resolve(request.result);
				request.onerror = () => reject(request.error);
			});
		}
		async get(storeName, key) {
			const db = await this.getDB();
			const tx = db.transaction(storeName, "readonly");
			const store = tx.objectStore(storeName);
			const result = await this.promisifyRequest(store.get(key));
			return result ?? null;
		}
		async set(storeName, key, value) {
			const db = await this.getDB();
			const tx = db.transaction(storeName, "readwrite");
			const store = tx.objectStore(storeName);
			if (store.keyPath) {
				await this.promisifyRequest(store.put(value));
			} else {
				await this.promisifyRequest(store.put(value, key));
			}
		}
		async delete(storeName, key) {
			const db = await this.getDB();
			const tx = db.transaction(storeName, "readwrite");
			const store = tx.objectStore(storeName);
			await this.promisifyRequest(store.delete(key));
		}
		async keys(storeName, prefix) {
			const db = await this.getDB();
			const tx = db.transaction(storeName, "readonly");
			const store = tx.objectStore(storeName);
			if (prefix) {
				const range = IDBKeyRange.bound(prefix, prefix + "", false, false);
				const keys$1 = await this.promisifyRequest(store.getAllKeys(range));
				return keys$1.map((k$2) => String(k$2));
			} else {
				const keys$1 = await this.promisifyRequest(store.getAllKeys());
				return keys$1.map((k$2) => String(k$2));
			}
		}
		async getAllFromIndex(storeName, indexName, direction = "asc") {
			const db = await this.getDB();
			const tx = db.transaction(storeName, "readonly");
			const store = tx.objectStore(storeName);
			const index = store.index(indexName);
			return new Promise((resolve, reject) => {
				const results = [];
				const request = index.openCursor(null, direction === "desc" ? "prev" : "next");
				request.onsuccess = () => {
					const cursor = request.result;
					if (cursor) {
						results.push(cursor.value);
						cursor.continue();
					} else {
						resolve(results);
					}
				};
				request.onerror = () => reject(request.error);
			});
		}
		async clear(storeName) {
			const db = await this.getDB();
			const tx = db.transaction(storeName, "readwrite");
			const store = tx.objectStore(storeName);
			await this.promisifyRequest(store.clear());
		}
		async has(storeName, key) {
			const db = await this.getDB();
			const tx = db.transaction(storeName, "readonly");
			const store = tx.objectStore(storeName);
			const result = await this.promisifyRequest(store.getKey(key));
			return result !== undefined;
		}
		async transaction(storeNames, mode, operation) {
			const db = await this.getDB();
			const idbTx = db.transaction(storeNames, mode);
			const storageTx = {
				get: async (storeName, key) => {
					const store = idbTx.objectStore(storeName);
					const result = await this.promisifyRequest(store.get(key));
					return result ?? null;
				},
				set: async (storeName, key, value) => {
					const store = idbTx.objectStore(storeName);
					if (store.keyPath) {
						await this.promisifyRequest(store.put(value));
					} else {
						await this.promisifyRequest(store.put(value, key));
					}
				},
				delete: async (storeName, key) => {
					const store = idbTx.objectStore(storeName);
					await this.promisifyRequest(store.delete(key));
				}
			};
			return operation(storageTx);
		}
		async getQuotaInfo() {
			if (navigator.storage?.estimate) {
				const estimate = await navigator.storage.estimate();
				return {
					usage: estimate.usage || 0,
					quota: estimate.quota || 0,
					percent: estimate.quota ? (estimate.usage || 0) / estimate.quota * 100 : 0
				};
			}
			return {
				usage: 0,
				quota: 0,
				percent: 0
			};
		}
		async requestPersistence() {
			if (navigator.storage?.persist) {
				return await navigator.storage.persist();
			}
			return false;
		}
	};
}));

//#endregion
//#region apps/macos/Sources/Clawdis/Resources/WebChat/bootstrap.js
if (!globalThis.process) {
	globalThis.process = { env: {} };
}
const logStatus = (msg) => {
	try {
		console.log(msg);
		const el = document.getElementById("app");
		if (el && !el.dataset.booted) el.textContent = msg;
	} catch {}
};
const randomId = () => {
	if (globalThis.crypto?.randomUUID) return globalThis.crypto.randomUUID();
	return `id-${Math.random().toString(16).slice(2)}-${Date.now()}`;
};
const ensureErrorStyles = () => {
	if (document.getElementById("webchat-error-style")) return;
	const style = document.createElement("style");
	style.id = "webchat-error-style";
	style.textContent = `
    body.webchat-error {
      padding: 28px;
    }
  `;
	document.head.appendChild(style);
};
var GatewaySocket = class {
	constructor(url) {
		this.url = url;
		this.ws = null;
		this.pending = new Map();
		this.handlers = new Map();
	}
	async connect() {
		return new Promise((resolve, reject) => {
			const ws = new WebSocket(this.url);
			this.ws = ws;
			ws.onopen = () => {
				logStatus(`ws: open -> sending hello (${this.url})`);
				const hello = {
					type: "hello",
					minProtocol: 1,
					maxProtocol: 1,
					client: {
						name: "webchat-ui",
						version: "dev",
						platform: "browser",
						mode: "webchat",
						instanceId: randomId()
					}
				};
				ws.send(JSON.stringify(hello));
			};
			ws.onerror = (err) => {
				logStatus(`ws: error ${formatError(err)}`);
				reject(err);
			};
			ws.onclose = (ev) => {
				logStatus(`ws: close code=${ev.code} reason=${ev.reason || "n/a"} clean=${ev.wasClean}`);
				if (this.pending.size > 0) {
					for (const [, p$3] of this.pending) p$3.reject(new Error("gateway closed"));
					this.pending.clear();
				}
				if (ev.code !== 1e3) reject(new Error(`gateway closed ${ev.code}`));
			};
			ws.onmessage = (ev) => {
				let msg;
				try {
					msg = JSON.parse(ev.data);
				} catch {
					return;
				}
				if (msg.type === "hello-ok") {
					logStatus(`ws: hello-ok presence=${msg?.snapshot?.presence?.length ?? 0} healthOk=${msg?.snapshot?.health?.ok ?? "n/a"}`);
					this.handlers.set("snapshot", msg.snapshot);
					resolve(msg);
					return;
				}
				if (msg.type === "event") {
					const cb = this.handlers.get(msg.event);
					if (cb) cb(msg.payload, msg);
					return;
				}
				if (msg.type === "res") {
					const pending = this.pending.get(msg.id);
					if (!pending) return;
					this.pending.delete(msg.id);
					if (msg.ok) pending.resolve(msg.payload);
					else pending.reject(new Error(msg.error?.message || "gateway error"));
				}
			};
		});
	}
	on(event, handler) {
		this.handlers.set(event, handler);
	}
	async request(method, params, { timeoutMs = 3e4 } = {}) {
		if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
			throw new Error("gateway not connected");
		}
		const id = randomId();
		const frame = {
			type: "req",
			id,
			method,
			params
		};
		this.ws.send(JSON.stringify(frame));
		return new Promise((resolve, reject) => {
			this.pending.set(id, {
				resolve,
				reject
			});
			setTimeout(() => {
				if (this.pending.has(id)) {
					this.pending.delete(id);
					reject(new Error(`${method} timed out`));
				}
			}, timeoutMs);
		});
	}
};
var ChatTransport = class {
	constructor(sessionKey, gateway, healthOkRef) {
		this.sessionKey = sessionKey;
		this.gateway = gateway;
		this.healthOkRef = healthOkRef;
		this.pendingRuns = new Map();
		this.gateway.on("chat", (payload) => {
			const runId = payload?.runId;
			const pending = runId ? this.pendingRuns.get(runId) : null;
			if (!pending) return;
			if (payload.state === "error") {
				pending.reject(new Error(payload.errorMessage || "chat error"));
				this.pendingRuns.delete(runId);
				return;
			}
			if (payload.state === "delta") return;
			pending.resolve(payload);
			this.pendingRuns.delete(runId);
		});
	}
	async *run(_messages, userMessage, cfg, _signal) {
		if (!this.healthOkRef.current) {
			throw new Error("gateway health not OK; cannot send");
		}
		const text$2 = userMessage.content?.[0]?.text ?? "";
		const attachments = (userMessage.attachments || []).map((a$2) => ({
			type: a$2.type,
			mimeType: a$2.mimeType,
			fileName: a$2.fileName,
			content: typeof a$2.content === "string" ? a$2.content : btoa(String.fromCharCode(...new Uint8Array(a$2.content)))
		}));
		const thinking = cfg?.thinkingOnce ?? cfg?.thinkingOverride ?? cfg?.thinking ?? undefined;
		const runId = randomId();
		const pending = new Promise((resolve, reject) => {
			this.pendingRuns.set(runId, {
				resolve,
				reject
			});
			setTimeout(() => {
				if (this.pendingRuns.has(runId)) {
					this.pendingRuns.delete(runId);
					reject(new Error("chat timed out"));
				}
			}, 3e4);
		});
		await this.gateway.request("chat.send", {
			sessionKey: this.sessionKey,
			message: text$2,
			attachments: attachments.length ? attachments : undefined,
			thinking,
			idempotencyKey: runId,
			timeoutMs: 3e4
		});
		yield { type: "turn_start" };
		const payload = await pending;
		const message = payload?.message || {
			role: "assistant",
			content: [{
				type: "text",
				text: ""
			}],
			timestamp: Date.now()
		};
		yield {
			type: "message_start",
			message
		};
		yield {
			type: "message_end",
			message
		};
		yield { type: "turn_end" };
		yield { type: "agent_end" };
	}
};
const startChat = async () => {
	logStatus("boot: starting imports");
	const { Agent: Agent$1 } = await Promise.resolve().then(() => (init_agent(), agent_exports));
	const { ChatPanel: ChatPanel$1 } = await Promise.resolve().then(() => (init_ChatPanel(), ChatPanel_exports));
	const { AppStorage: AppStorage$1, setAppStorage: setAppStorage$1 } = await Promise.resolve().then(() => (init_app_storage(), app_storage_exports));
	const { SettingsStore: SettingsStore$1 } = await Promise.resolve().then(() => (init_settings_store(), settings_store_exports));
	const { ProviderKeysStore: ProviderKeysStore$1 } = await Promise.resolve().then(() => (init_provider_keys_store(), provider_keys_store_exports));
	const { SessionsStore: SessionsStore$1 } = await Promise.resolve().then(() => (init_sessions_store(), sessions_store_exports));
	const { CustomProvidersStore: CustomProvidersStore$1 } = await Promise.resolve().then(() => (init_custom_providers_store(), custom_providers_store_exports));
	const { IndexedDBStorageBackend: IndexedDBStorageBackend$1 } = await Promise.resolve().then(() => (init_indexeddb_storage_backend(), indexeddb_storage_backend_exports));
	const { getModel: getModel$1 } = await Promise.resolve().then(() => (init_pi_ai_stub(), pi_ai_stub_exports));
	logStatus("boot: modules loaded");
	const backend = new IndexedDBStorageBackend$1({
		dbName: "clawdis-webchat",
		version: 1,
		stores: [
			new SettingsStore$1().getConfig(),
			new ProviderKeysStore$1().getConfig(),
			new SessionsStore$1().getConfig(),
			SessionsStore$1.getMetadataConfig(),
			new CustomProvidersStore$1().getConfig()
		]
	});
	const settingsStore = new SettingsStore$1();
	const providerKeysStore = new ProviderKeysStore$1();
	const sessionsStore = new SessionsStore$1();
	const customProvidersStore = new CustomProvidersStore$1();
	for (const store of [
		settingsStore,
		providerKeysStore,
		sessionsStore,
		customProvidersStore
	]) {
		store.setBackend(backend);
	}
	const storage = new AppStorage$1(settingsStore, providerKeysStore, sessionsStore, customProvidersStore, backend);
	setAppStorage$1(storage);
	try {
		await providerKeysStore.set("anthropic", "embedded");
	} catch (err) {
		logStatus(`storage warn: could not seed provider key: ${err}`);
	}
	const params = new URLSearchParams(window.location.search);
	const sessionKey = params.get("session") || "main";
	const wsUrl = (() => {
		const loc = new URL(window.location.href);
		const requestedPort = Number.parseInt(params.get("gatewayPort") ?? "", 10);
		const gatewayPort = Number.isInteger(requestedPort) && requestedPort > 0 && requestedPort <= 65535 ? requestedPort : 18789;
		const gatewayHost = params.get("gatewayHost") || loc.hostname || "127.0.0.1";
		const u$4 = new URL(`ws://${gatewayHost}:${gatewayPort}/`);
		return u$4.toString();
	})();
	logStatus(`boot: connecting gateway (${wsUrl})`);
	const gateway = new GatewaySocket(wsUrl);
	const hello = await gateway.connect();
	const healthOkRef = { current: Boolean(hello?.snapshot?.health?.ok ?? true) };
	gateway.on("tick", async () => {
		try {
			const health = await gateway.request("health", {}, { timeoutMs: 5e3 });
			healthOkRef.current = !!health?.ok;
		} catch {
			healthOkRef.current = false;
		}
	});
	logStatus("boot: fetching history");
	const history = await gateway.request("chat.history", { sessionKey });
	const initialMessages = Array.isArray(history?.messages) ? history.messages : [];
	const thinkingLevel = typeof history?.thinkingLevel === "string" ? history.thinkingLevel : "off";
	const agent = new Agent$1({
		initialState: {
			systemPrompt: "You are Clawd (primary session).",
			model: getModel$1("anthropic", "claude-opus-4-5"),
			thinkingLevel,
			messages: initialMessages
		},
		transport: new ChatTransport(sessionKey, gateway, healthOkRef)
	});
	const origPrompt = agent.prompt.bind(agent);
	agent.prompt = async (input, attachments) => {
		const userMessage = {
			role: "user",
			content: [{
				type: "text",
				text: input
			}],
			attachments: attachments?.length ? attachments : undefined,
			timestamp: Date.now()
		};
		agent.appendMessage(userMessage);
		return origPrompt(input, attachments);
	};
	const panel = new ChatPanel$1();
	panel.style.height = "100%";
	panel.style.display = "block";
	await panel.setAgent(agent, { sessionThinkingLevel: thinkingLevel });
	const mount = document.getElementById("app");
	if (!mount) throw new Error("#app container missing");
	mount.dataset.booted = "1";
	mount.textContent = "";
	mount.appendChild(panel);
	logStatus("boot: ready");
};
startChat().catch((err) => {
	const msg = formatError(err);
	logStatus(`boot failed: ${msg}`);
	document.body.dataset.webchatError = "1";
	ensureErrorStyles();
	document.body.classList.add("webchat-error");
	document.body.style.color = "#b32d2d";
	document.body.style.fontFamily = "SFMono-Regular, Menlo, Consolas, monospace";
	document.body.style.padding = "28px";
	document.body.style.lineHeight = "1.5";
	document.body.style.whiteSpace = "pre-wrap";
	document.body.innerText = "Web chat failed to connect.\n\n" + msg;
});

//#endregion