PageSourceSearch

https://sveltiacms.app/assets/chunks/framework.BcTgqkOM.js

js sveltiacms.app collected 2026-10-03 22:48:30 UTC 291,454 bytes, 7,968 lines download raw bytes

1//#region node_modules/.pnpm/@[email protected]/node_modules/@vue/shared/dist/shared.esm-bundler.js
2/**
3* @vue/shared v3.5.43
4* (c) 2018-present Yuxi (Evan) You and Vue contributors
5* @license MIT
6**/
7// @__NO_SIDE_EFFECTS__
8function makeMap(str) {
9	const map = /* @__PURE__ */ Object.create(null);
10	for (const key of str.split(",")) map[key] = 1;
11	return (val) => val in map;
12}
13var EMPTY_OBJ = {};
14var EMPTY_ARR = [];
15var NOOP = () => {};
16var NO = () => false;
17var isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && (key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);
18var isModelListener = (key) => key.startsWith("onUpdate:");
19var extend = Object.assign;
20var remove = (arr, el) => {
21	const i = arr.indexOf(el);
22	if (i > -1) arr.splice(i, 1);
23};
24var hasOwnProperty$1 = Object.prototype.hasOwnProperty;
25var hasOwn = (val, key) => hasOwnProperty$1.call(val, key);
26var isArray = Array.isArray;
27var isMap = (val) => toTypeString(val) === "[object Map]";
28var isSet = (val) => toTypeString(val) === "[object Set]";
29var isDate = (val) => toTypeString(val) === "[object Date]";
30var isFunction = (val) => typeof val === "function";
31var isString = (val) => typeof val === "string";
32var isSymbol = (val) => typeof val === "symbol";
33var isObject$2 = (val) => val !== null && typeof val === "object";
34var isPromise = (val) => {
35	return (isObject$2(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);
36};
37var objectToString = Object.prototype.toString;
38var toTypeString = (value) => objectToString.call(value);
39var toRawType = (value) => {
40	return toTypeString(value).slice(8, -1);
41};
42var isPlainObject = (val) => toTypeString(val) === "[object Object]";
43var isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
44var isReservedProp = /* @__PURE__ */ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
45var cacheStringFunction$1 = (fn) => {
46	const cache = /* @__PURE__ */ Object.create(null);
47	return ((str) => {
48		return cache[str] || (cache[str] = fn(str));
49	});
50};
51var camelizeRE$1 = /-\w/g;
52var camelize$1 = cacheStringFunction$1((str) => {
53	return str.replace(camelizeRE$1, (c) => c.slice(1).toUpperCase());
54});
55var hyphenateRE$1 = /\B([A-Z])/g;
56var hyphenate$1 = cacheStringFunction$1((str) => str.replace(hyphenateRE$1, "-$1").toLowerCase());
57var capitalize = cacheStringFunction$1((str) => {
58	return str.charAt(0).toUpperCase() + str.slice(1);
59});
60var toHandlerKey = cacheStringFunction$1((str) => {
61	return str ? `on${capitalize(str)}` : ``;
62});
63var hasChanged = (value, oldValue) => !Object.is(value, oldValue);
64var invokeArrayFns = (fns, ...arg) => {
65	for (let i = 0; i < fns.length; i++) fns[i](...arg);
66};
67var def = (obj, key, value, writable = false) => {
68	Object.defineProperty(obj, key, {
69		configurable: true,
70		enumerable: false,
71		writable,
72		value
73	});
74};
75var looseToNumber = (val) => {
76	const n = parseFloat(val);
77	return isNaN(n) ? val : n;
78};
79var toNumber = (val) => {
80	const n = isString(val) ? Number(val) : NaN;
81	return isNaN(n) ? val : n;
82};
83var _globalThis;
84var getGlobalThis = () => {
85	return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {});
86};
87function normalizeStyle(value) {
88	if (isArray(value)) {
89		const res = {};
90		for (let i = 0; i < value.length; i++) {
91			const item = value[i];
92			const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);
93			if (normalized) for (const key in normalized) res[key] = normalized[key];
94		}
95		return res;
96	} else if (isString(value) || isObject$2(value)) return value;
97}
98var listDelimiterRE = /;(?![^(]*\))/g;
99var propertyDelimiterRE = /:([^]+)/;
100var styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
101function parseStringStyle(cssText) {
102	const ret = {};
103	cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEac
103h((item) => {
104		if (item) {
105			const tmp = item.split(propertyDelimiterRE);
106			tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
107		}
108	});
109	return ret;
110}
111function stringifyStyle(styles) {
112	if (!styles) return "";
113	if (isString(styles)) return styles;
114	let ret = "";
115	for (const key in styles) {
116		const value = styles[key];
117		if (isString(value) || typeof value === "number") {
118			const normalizedKey = key.startsWith(`--`) ? key : hyphenate$1(key);
119			ret += `${normalizedKey}:${value};`;
120		}
121	}
122	return ret;
123}
124function normalizeClass(value) {
125	let res = "";
126	if (isString(value)) res = value;
127	else if (isArray(value)) for (let i = 0; i < value.length; i++) {
128		const normalized = normalizeClass(value[i]);
129		if (normalized) res += normalized + " ";
130	}
131	else if (isObject$2(value)) {
132		for (const name in value) if (value[name]) res += name + " ";
133	}
134	return res.trim();
135}
136var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
137var isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
138var isBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`);
139function includeBooleanAttr(value) {
140	return !!value || value === "";
141}
142var isKnownHtmlAttr = /* @__PURE__ */ makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`);
143var isKnownSvgAttr = /* @__PURE__ */ makeMap(`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,str
143ikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`);
144function isRenderableAttrValue(value) {
145	if (value == null) return false;
146	const type = typeof value;
147	return type === "string" || type === "number" || type === "boolean";
148}
149var cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g;
150function getEscapedCssVarName(key, doubleEscape) {
151	return key.replace(cssVarNameEscapeSymbolsRE, (s) => doubleEscape ? s === "\"" ? "\\\\\\\"" : `\\\\${s}` : `\\${s}`);
152}
153function looseCompareArrays(a, b, seen) {
154	if (a.length !== b.length) return false;
155	let equal = true;
156	for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i], seen);
157	return equal;
158}
159function looseCompareCollections(a, b, seen) {
160	if (a.size !== b.size) return false;
161	const candidates = Array.from(b);
162	const matched = new Uint8Array(candidates.length);
163	for (const item of a) {
164		let index = -1;
165		for (let i = 0; i < candidates.length; i++) if (!matched[i] && looseEqual(item, candidates[i], seen)) {
166			index = i;
167			break;
168		}
169		if (index < 0) return false;
170		matched[index] = 1;
171	}
172	return true;
173}
174function looseCompareObjects(a, b, seen) {
175	let aValidType = isMap(a);
176	let bValidType = isMap(b);
177	if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
178	aValidType = isSet(a);
179	bValidType = isSet(b);
180	if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
181	if (Object.keys(a).length !== Object.keys(b).length) return false;
182	for (const key in a) {
183		const aHasKey = a.hasOwnProperty(key);
184		const bHasKey = b.hasOwnProperty(key);
185		if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) return false;
186	}
187	return String(a) === String(b);
188}
189function looseCompareNested(a, b, seen, compare) {
190	if (!seen) seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
191	const [seenA, seenB] = seen;
192	if (seenA.has(a) || seenB.has(b)) return seenA.get(a) === b && seenB.get(b) === a;
193	seenA.set(a, b);
194	seenB.set(b, a);
195	const equal = compare(a, b, seen);
196	seenA.delete(a);
197	seenB.delete(b);
198	return equal;
199}
200function looseEqual(a, b, seen) {
201	if (a === b) return true;
202	let aValidType = isDate(a);
203	let bValidType = isDate(b);
204	if (aValidType || bValidType) return aValidType && bValidType ? a.getTime() === b.getTime() : false;
205	aValidType = isSymbol(a);
206	bValidType = isSymbol(b);
207	if (aValidType || bValidType) return a === b;
208	aValidType = isArray(a);
209	bValidType = isArray(b);
210	if (aValidType || bValidType) return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
211	aValidType = isObject$2(a);
212	bValidType = isObject$2(b);
213	if (aValidType || bValidType) {
214		if (!aValidType || !bValidType) return false;
215		return looseCompareNested(a, b, seen, looseCompareObjects);
216	}
217	return String(a) === String(b);
218}
219function looseIndexOf(arr, val) {
220	return arr.findIndex((item) => looseEqual(item, val));
221}
222var isRef$1 = (val) => {
223	return !!(val && val["__v_isRef"] === true);
224};
225var toDisplayString = (val) => {
226	return isString(val) ? val : val == null ? "" : isArray(val) || isObject$2(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef$1(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);
227};
228var replacer = (_key, val) => {
229	if (isRef$1(val)) return replacer(_key, val.value);
230	else if (isMap(val)) return { [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2], i) => {
231		entries[stringifySymbol(key, i) + " =>"] = val2;
232		return entries;
233	}, {}) };
234	else if (isSet(val)) return { [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) };
235	else if (isSymbol(val)) return stringifySymbol(val);
236	else if (isObject$2(val) && !isArray(val) && !isPlainObject(val)) return String(val);
237	return val;
238};
239var stringifySymbol = (v, i = "") => {
240	var _a;
241	return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;
242};
243function normalizeCssVarValue(value) {
244	if (value == null) return "initial";
245	if (typeof value === "string") return value === "" ? " " : value;
246	if (typeof value !== "number" || !Number.isFinite(value)) {}
247	return String(value);
248}
249//#endregion
250//#region node_modules/.pnpm/@[email protected]/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js
251/**
252* @vue/reactivity v3.5.43
253* (c) 2018-present Yuxi (Evan) You and Vue contributors
254* @license MIT
255**/
256var activeEffectScope;
257var EffectScope = class {
258	constructor(detached = false) {
259		this.detached = detached;
260		/**
261		* @internal
262		*/
263		this._active = true;
264		/**
265		* @internal track `on` calls, allow `on` call multiple times
266		*/
267		this._on = 0;
268		/**
269		* @internal
270		*/
271		this.effects = [];
272		/**
273		* @internal
274		*/
275		this.cleanups = [];
276		this._isPaused = false;
277		this._warnOnRun = true;
278		this.__v_skip = true;
279		if (!detached && activeEffectScope) {
280			if (activeEffectScope.active) {
281				this.parent = activeEffectScope;
282				this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;
283			} else {
284				this._active = false;
285				this._warnOnRun = false;
286			}
287		}
288	}
289	get active() {
290		return this._active;
291	}
292	pause() {
293		if (this._active) {
294			this._isPaused = true;
295			let i, l;
296			if (this.scopes) {
297				const scopes = this.scopes.slice();
298				for (i = 0, l = scopes.length; i < l; i++) scopes[i].pause();
299			}
300			for (i = 0, l = this.effects.length; i < l; i++) this.effects[i].pause();
301		}
302	}
303	/**
304	* Resumes the effect scope, including all child scopes and effects.
305	*/
306	resume() {
307		if (this._active) {
308			if (this._isPaused) {
309				this._isPaused = false;
310				let i, l;
311				if (this.scopes) {
312					const scopes = this.scopes.slice();
313					for (i = 0, l = scopes.length; i < l; i++) scopes[i].resume();
314				}
315				const effects = this.effects.slice();
316				for (i = 0, l = effects.length; i < l; i++) effects[i].resume();
317			}
318		}
319	}
320	run(fn) {
321		if (this._active) {
322			const currentEffectScope = activeEffectScope;
323			try {
324				activeEffectScope = this;
325				return fn();
326			} finally {
327				activeEffectScope = currentEffectScope;
328			}
329		}
330	}
331	/**
332	* This should only be called on non-detached scopes
333	* @internal
334	*/
335	on() {
336		if (++this._on === 1) {
337			this.prevScope = activeEffectScope;
338			activeEffectScope = this;
339		}
340	}
341	/**
342	* This should only be called on non-detached scopes
343	* @internal
344	*/
345	off() {
346		if (this._on > 0 && --this._on === 0) {
347			if (activeEffectScope === this) activeEffectScope = this.prevScope;
348			else {
349				let current = activeEffectScope;
350				while (current) {
351					if (current.prevScope === this) {
352						current.prevScope = this.prevScope;
353						break;
354					}
355					current = current.prevScope;
356				}
357			}
358			this.prevScope = void 0;
359		}
360	}
361	stop(fromParent) {
362		if (this._active) {
363			this._active = false;
364			let i, l;
365			for (i = 0, l = this.effects.length; i < l; i++) this.effects[i].stop();
366			this.effects.length = 0;
367			for (i = 0, l = this.cleanups.length; i < l; i++) this.cleanups[i]();
368			this.cleanups.length = 0;
369			if (this.scopes) {
370				const scopes = this.scopes.slice();
371				for (i = 0, l = scopes.length; i < l; i++) scopes[i].stop(true);
372				this.scopes.length = 0;
373			}
374			if (!this.detached && this.parent && !fromParent) {
375				const last = this.parent.scopes.pop();
376				if (last && last !== this) {
377					this.parent.scopes[this.index] = last;
378					last.index = this.index;
379				}
380			}
381			this.parent = void 0;
382		}
383	}
384};
385function getCurrentScope() {
386	return activeEffectScope;
387}
388function onScopeDispose(fn, failSilently = false) {
389	if (activeEffectScope) activeEffectScope.cleanups.push(fn);
390}
391var activeSub;
392var pausedQueueEffects = /* @__PURE__ */ new WeakSet();
393var ReactiveEffect = class {
394	constructor(fn) {
395		this.fn = fn;
396		/**
397		* @internal
398		*/
399		this.deps = void 0;
400		/**
401		* @internal
402		*/
403		this.depsTail = void 0;
404		/**
405		* @internal
406		*/
407		this.flags = 5;
408		/**
409		* @internal
410		*/
411		this.next = void 0;
412		/**
413		* @internal
414		*/
415		this.cleanup = void 0;
416		this.scheduler = void 0;
417		if (activeEffectScope) {
418			if (activeEffectScope.active) activeEffectScope.effects.push(this);
419			else this.flags &= -2;
420		}
421	}
422	pause() {
423		this.flags |= 64;
424	}
425	resume() {
426		if (this.flags & 64) {
427			this.flags &= -65;
428			if (pausedQueueEffects.has(this)) {
429				pausedQueueEffects.delete(this);
430				this.trigger();
431			}
432		}
433	}
434	/**
435	* @internal
436	*/
437	notify() {
438		if (this.flags & 2 && !(this.flags & 32)) return;
439		if (!(this.flags & 8)) batch(this);
440	}
441	run() {
442		if (!(this.flags & 1)) return this.fn();
443		this.flags |= 2;
444		cleanupEffect(this);
445		prepareDeps(this);
446		const prevEffect = activeSub;
447		const prevShouldTrack = shouldTrack;
448		activeSub = this;
449		shouldTrack = true;
450		try {
451			return this.fn();
452		} finally {
453			cleanupDeps(this);
454			activeSub = prevEffect;
455			shouldTrack = prevShouldTrack;
456			this.flags &= -3;
457		}
458	}
459	stop() {
460		if (this.flags & 1) {
461			for (let link = this.deps; link; link = link.nextDep) removeSub(link);
462			this.deps = this.depsTail = void 0;
463			cleanupEffect(this);
464			this.onStop && this.onStop();
465			this.flags &= -2;
466		}
467	}
468	trigger() {
469		if (this.flags & 64) pausedQueueEffects.add(this);
470		else if (this.scheduler) this.scheduler();
471		else this.runIfDirty();
472	}
473	/**
474	* @internal
475	*/
476	runIfDirty() {
477		if (isDirty(this)) this.run();
478	}
479	get dirty() {
480		return isDirty(this);
481	}
482};
483var batchDepth = 0;
484var batchedSub;
485var batchedComputed;
486function batch(sub, isComputed = false) {
487	sub.flags |= 8;
488	if (isComputed) {
489		sub.next = batchedComputed;
490		batchedComputed = sub;
491		return;
492	}
493	sub.next = batchedSub;
494	batchedSub = sub;
495}
496function startBatch() {
497	batchDepth++;
498}
499function endBatch() {
500	if (--batchDepth > 0) return;
501	if (batchedComputed) {
502		let e = batchedComputed;
503		batchedComputed = void 0;
504		while (e) {
505			const next = e.next;
506			e.next = void 0;
507			e.flags &= -9;
508			e = next;
509		}
510	}
511	let error;
512	while (batchedSub) {
513		let e = batchedSub;
514		batchedSub = void 0;
515		while (e) {
516			const next = e.next;
517			e.next = void 0;
518			e.flags &= -9;
519			if (e.flags & 1) try {
520				e.trigger();
521			} catch (err) {
522				if (!error) error = err;
523			}
524			e = next;
525		}
526	}
527	if (error) throw error;
528}
529function prepareDeps(sub) {
530	for (let link = sub.deps; link; link = link.nextDep) {
531		link.version = -1;
532		link.prevActiveLink = link.dep.activeLink;
533		link.dep.activeLink = link;
534	}
535}
536function cleanupDeps(sub) {
537	let head;
538	let tail = sub.depsTail;
539	let link = tail;
540	while (link) {
541		const prev = link.prevDep;
542		if (link.version === -1) {
543			if (link === tail) tail = prev;
544			removeSub(link);
545			removeDep(link);
546		} else head = link;
547		link.dep.activeLink = link.prevActiveLink;
548		link.prevActiveLink = void 0;
549		link = prev;
550	}
551	sub.deps = head;
552	sub.depsTail = tail;
553}
554function isDirty(sub) {
555	for (let link = sub.deps; link; link = link.nextDep) if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) return true;
556	if (sub._dirty) return true;
557	return false;
558}
559function refreshComputed(computed) {
560	if (computed.flags & 4 && !(computed.flags & 16)) return;
561	computed.flags &= -17;
562	if (computed.globalVersion === globalVersion) return;
563	computed.globalVersion = globalVersion;
564	if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) return;
565	computed.flags |= 2;
566	const dep = computed.dep;
567	const prevSub = activeSub;
568	const prevShouldTrack = shouldTrack;
569	activeSub = computed;
570	shouldTrack = true;
571	try {
572		prepareDeps(computed);
573		const value = computed.fn(computed._value);
574		if (dep.version === 0 || hasChanged(value, computed._value)) {
575			computed.flags |= 128;
576			computed._value = value;
577			dep.version++;
578		}
579	} catch (err) {
580		dep.version++;
581		throw err;
582	} finally {
583		activeSub = prevSub;
584		shouldTrack = prevShouldTrack;
585		cleanupDeps(computed);
586		computed.flags &= -3;
587	}
588}
589function removeSub(link, soft = false) {
590	const { dep, prevSub, nextSub } = link;
591	if (prevSub) {
592		prevSub.nextSub = nextSub;
593		link.prevSub = void 0;
594	}
595	if (nextSub) {
596		nextSub.prevSub = prevSub;
597		link.nextSub = void 0;
598	}
599	if (dep.subs === link) {
600		dep.subs = prevSub;
601		if (!prevSub && dep.computed) {
602			dep.computed.flags &= -5;
603			for (let l = dep.computed.deps; l; l = l.nextDep) removeSub(l, true);
604		}
605	}
606	if (!soft && !--dep.sc && dep.map) dep.map.delete(dep.key);
607}
608function removeDep(link) {
609	const { prevDep, nextDep } = link;
610	if (prevDep) {
611		prevDep.nextDep = nextDep;
612		link.prevDep = void 0;
613	}
614	if (nextDep) {
615		nextDep.prevDep = prevDep;
616		link.nextDep = void 0;
617	}
618}
619var shouldTrack = true;
620var trackStack = [];
621function pauseTracking() {
622	trackStack.push(shouldTrack);
623	shouldTrack = false;
624}
625function resetTracking() {
626	const last = trackStack.pop();
627	shouldTrack = last === void 0 ? true : last;
628}
629function cleanupEffect(e) {
630	const { cleanup } = e;
631	e.cleanup = void 0;
632	if (cleanup) {
633		const prevSub = activeSub;
634		activeSub = void 0;
635		try {
636			cleanup();
637		} finally {
638			activeSub = prevSub;
639		}
640	}
641}
642var globalVersion = 0;
643var Link = class {
644	constructor(sub, dep) {
645		this.sub = sub;
646		this.dep = dep;
647		this.version = dep.version;
648		this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;
649	}
650};
651var Dep = class {
652	constructor(computed) {
653		this.computed = computed;
654		this.version = 0;
655		/**
656		* Link between this dep and the current active effect
657		*/
658		this.activeLink = void 0;
659		/**
660		* Doubly linked list representing the subscribing effects (tail)
661		*/
662		this.subs = void 0;
663		/**
664		* For object property deps cleanup
665		*/
666		this.map = void 0;
667		this.key = void 0;
668		/**
669		* Subscriber counter
670		*/
671		this.sc = 0;
672		/**
673		* @internal
674		*/
675		this.__v_skip = true;
676	}
677	track(debugInfo) {
678		if (!activeSub || !shouldTrack || activeSub === this.computed) return;
679		let link = this.activeLink;
680		if (link === void 0 || link.sub !== activeSub) {
681			link = this.activeLink = new Link(activeSub, this);
682			if (!activeSub.deps) activeSub.deps = activeSub.depsTail = link;
683			else {
684				link.prevDep = activeSub.depsTail;
685				activeSub.depsTail.nextDep = link;
686				activeSub.depsTail = link;
687			}
688			addSub(link);
689		} else if (link.version === -1) {
690			link.version = this.version;
691			if (link.nextDep) {
692				const next = link.nextDep;
693				next.prevDep = link.prevDep;
694				if (link.prevDep) link.prevDep.nextDep = next;
695				link.prevDep = activeSub.depsTail;
696				link.nextDep = void 0;
697				activeSub.depsTail.nextDep = link;
698				activeSub.depsTail = link;
699				if (activeSub.deps === link) activeSub.deps = next;
700			}
701		}
702		return link;
703	}
704	trigger(debugInfo) {
705		this.version++;
706		globalVersion++;
707		this.notify(debugInfo);
708	}
709	notify(debugInfo) {
710		startBatch();
711		try {
712			for (let link = this.subs; link; link = link.prevSub) if (link.sub.notify()) link.sub.dep.notify();
713		} finally {
714			endBatch();
715		}
716	}
717};
718function addSub(link) {
719	link.dep.sc++;
720	if (link.sub.flags & 4) {
721		const computed = link.dep.computed;
722		if (computed && !link.dep.subs) {
723			computed.flags |= 20;
724			for (let l = computed.deps; l; l = l.nextDep) addSub(l);
725		}
726		const currentTail = link.dep.subs;
727		if (currentTail !== link) {
728			link.prevSub = currentTail;
729			if (currentTail) currentTail.nextSub = link;
730		}
731		link.dep.subs = link;
732	}
733}
734var targetMap = /* @__PURE__ */ new WeakMap();
735var ITERATE_KEY = /* @__PURE__ */ Symbol("");
736var MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol("");
737var ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol("");
738function track(target, type, key) {
739	if (shouldTrack && activeSub) {
740		let depsMap = targetMap.get(target);
741		if (!depsMap) targetMap.set(target, depsMap = /* @__PURE__ */ new Map());
742		let dep = depsMap.get(key);
743		if (!dep) {
744			depsMap.set(key, dep = new Dep());
745			dep.map = depsMap;
746			dep.key = key;
747		}
748		dep.track();
749	}
750}
751function trigger(target, type, key, newValue, oldValue, oldTarget) {
752	const depsMap = targetMap.get(target);
753	if (!depsMap) {
754		globalVersion++;
755		return;
756	}
757	const run = (dep) => {
758		if (dep) dep.trigger();
759	};
760	startBatch();
761	if (type === "clear") depsMap.forEach(run);
762	else {
763		const targetIsArray = isArray(target);
764		const isArrayIndex = targetIsArray && isIntegerKey(key);
765		if (targetIsArray && key === "length") {
766			const newLength = Number(newValue);
767			depsMap.forEach((dep, key2) => {
768				if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) run(dep);
769			});
770		} else {
771			if (key !== void 0 || depsMap.has(void 0)) run(depsMap.get(key));
772			if (isArrayIndex) run(depsMap.get(ARRAY_ITERATE_KEY));
773			switch (type) {
774				case "add":
775					if (!targetIsArray) {
776						run(depsMap.get(ITERATE_KEY));
777						if (isMap(target)) run(depsMap.get(MAP_KEY_ITERATE_KEY));
778					} else if (isArrayIndex) run(depsMap.get("length"));
779					break;
780				case "delete":
781					if (!targetIsArray) {
782						run(depsMap.get(ITERATE_KEY));
783						if (isMap(target)) run(depsMap.get(MAP_KEY_ITERATE_KEY));
784					}
785					break;
786				case "set": if (isMap(target)) run(depsMap.get(ITERATE_KEY));
787			}
788		}
789	}
790	endBatch();
791}
792function getDepFromReactive(object, key) {
793	const depMap = targetMap.get(object);
794	return depMap && depMap.get(key);
795}
796function reactiveReadArray(array) {
797	const raw = /* @__PURE__ */ toRaw(array);
798	if (raw === array) return raw;
799	track(raw, "iterate", ARRAY_ITERATE_KEY);
800	if (/* @__PURE__ */ isShallow(array)) return raw;
801	if (!/* @__PURE__ */ isReadonly(array)) return raw.map(toReactive);
802	return /* @__PURE__ */ isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);
803}
804function shallowReadArray(arr) {
805	track(arr = /* @__PURE__ */ toRaw(arr), "iterate", ARRAY_ITERATE_KEY);
806	return arr;
807}
808function toWrapped(target, item) {
809	if (/* @__PURE__ */ isReadonly(target)) return /* @__PURE__ */ isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item);
810	return toReactive(item);
811}
812var arrayInstrumentations = {
813	__proto__: null,
814	[Symbol.iterator]() {
815		return iterator(this, Symbol.iterator, (item) => toWrapped(this, item));
816	},
817	concat(...args) {
818		return reactiveReadArray(this).concat(...args.map((x) => isArray(x) ? reactiveReadArray(x) : x));
819	},
820	entries() {
821		return iterator(this, "entries", (value) => {
822			value[1] = toWrapped(this, value[1]);
823			return value;
824		});
825	},
826	every(fn, thisArg) {
827		return apply(this, "every", fn, thisArg, void 0, arguments);
828	},
829	filter(fn, thisArg) {
830		return apply(this, "filter", fn, thisArg, (v) => v.map((item) => toWrapped(this, item)), arguments);
831	},
832	find(fn, thisArg) {
833		return apply(this, "find", fn, thisArg, (item) => toWrapped(this, item), arguments);
834	},
835	findIndex(fn, thisArg) {
836		return apply(this, "findIndex", fn, thisArg, void 0, arguments);
837	},
838	findLast(fn, thisArg) {
839		return apply(this, "findLast", fn, thisArg, (item) => toWrapped(this, item), arguments);
840	},
841	findLastIndex(fn, thisArg) {
842		return apply(this, "findLastIndex", fn, thisArg, void 0, arguments);
843	},
844	forEach(fn, thisArg) {
845		return apply(this, "forEach", fn, thisArg, void 0, arguments);
846	},
847	includes(...args) {
848		return searchProxy(this, "includes", args);
849	},
850	indexOf(...args) {
851		return searchProxy(this, "indexOf", args);
852	},
853	join(separator) {
854		return reactiveReadArray(this).join(separator);
855	},
856	lastIndexOf(...args) {
857		return searchProxy(this, "lastIndexOf", args);
858	},
859	map(fn, thisArg) {
860		return apply(this, "map", fn, thisArg, void 0, arguments);
861	},
862	pop() {
863		return noTracking(this, "pop");
864	},
865	push(...args) {
866		return noTracking(this, "push", args);
867	},
868	reduce(fn, ...args) {
869		return reduce(this, "reduce", fn, args);
870	},
871	reduceRight(fn, ...args) {
872		return reduce(this, "reduceRight", fn, args);
873	},
874	shift() {
875		return noTracking(this, "shift");
876	},
877	some(fn, thisArg) {
878		return apply(this, "some", fn, thisArg, void 0, arguments);
879	},
880	splice(...args) {
881		return noTracking(this, "splice", args);
882	},
883	toReversed() {
884		return reactiveReadArray(this).toReversed();
885	},
886	toSorted(comparer) {
887		return reactiveReadArray(this).toSorted(comparer);
888	},
889	toSpliced(...args) {
890		return reactiveReadArray(this).toSpliced(...args);
891	},
892	unshift(...args) {
893		return noTracking(this, "unshift", args);
894	},
895	values() {
896		return iterator(this, "values", (item) => toWrapped(this, item));
897	}
898};
899function iterator(self, method, wrapValue) {
900	const arr = shallowReadArray(self);
901	const iter = arr[method]();
902	if (arr !== self && !/* @__PURE__ */ isShallow(self)) {
903		iter._next = iter.next;
904		iter.next = () => {
905			const result = iter._next();
906			if (!result.done) result.value = wrapValue(result.value);
907			return result;
908		};
909	}
910	return iter;
911}
912var arrayProto = Array.prototype;
913function apply(self, method, fn, thisArg, wrappedRetFn, args) {
914	const arr = shallowReadArray(self);
915	const needsWrap = arr !== self && !/* @__PURE__ */ isShallow(self);
916	const methodFn = arr[method];
917	if (methodFn !== arrayProto[method]) {
918		const result2 = methodFn.apply(self, args);
919		return needsWrap ? toReactive(result2) : result2;
920	}
921	let wrappedFn = fn;
922	if (arr !== self) {
923		if (needsWrap) wrappedFn = function(item, index) {
924			return fn.call(this, toWrapped(self, item), index, self);
925		};
926		else if (fn.length > 2) wrappedFn = function(item, index) {
927			return fn.call(this, item, index, self);
928		};
929	}
930	const result = methodFn.call(arr, wrappedFn, thisArg);
931	return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;
932}
933function reduce(self, method, fn, args) {
934	const arr = shallowReadArray(self);
935	const needsWrap = arr !== self && !/* @__PURE__ */ isShallow(self);
936	let wrappedFn = fn;
937	let wrapInitialAccumulator = false;
938	if (arr !== self) {
939		if (needsWrap) {
940			wrapInitialAccumulator = args.length === 0;
941			wrappedFn = function(acc, item, index) {
942				if (wrapInitialAccumulator) {
943					wrapInitialAccumulator = false;
944					acc = toWrapped(self, acc);
945				}
946				return fn.call(this, acc, toWrapped(self, item), index, self);
947			};
948		} else if (fn.length > 3) wrappedFn = function(acc, item, index) {
949			return fn.call(this, acc, item, index, self);
950		};
951	}
952	const result = arr[method](wrappedFn, ...args);
953	return wrapInitialAccumulator ? toWrapped(self, result) : result;
954}
955function searchProxy(self, method, args) {
956	const arr = /* @__PURE__ */ toRaw(self);
957	track(arr, "iterate", ARRAY_ITERATE_KEY);
958	const res = arr[method](...args);
959	if ((res === -1 || res === false) && /* @__PURE__ */ isProxy(args[0])) {
960		args[0] = /* @__PURE__ */ toRaw(args[0]);
961		return arr[method](...args);
962	}
963	return res;
964}
965function noTracking(self, method, args = []) {
966	pauseTracking();
967	startBatch();
968	const res = (/* @__PURE__ */ toRaw(self))[method].apply(self, args);
969	endBatch();
970	resetTracking();
971	return res;
972}
973var isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
974var builtInSymbols = new Set(/* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
975function hasOwnProperty(key) {
976	if (!isSymbol(key)) key = String(key);
977	const obj = /* @__PURE__ */ toRaw(this);
978	track(obj, "has", key);
979	return obj.hasOwnProperty(key);
980}
981var BaseReactiveHandler = class {
982	constructor(_isReadonly = false, _isShallow = false) {
983		this._isReadonly = _isReadonly;
984		this._isShallow = _isShallow;
985	}
986	get(target, key, receiver) {
987		if (key === "__v_skip") return target["__v_skip"];
988		const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;
989		if (key === "__v_isReactive") return !isReadonly2;
990		else if (key === "__v_isReadonly") return isReadonly2;
991		else if (key === "__v_isShallow") return isShallow2;
992		else if (key === "__v_raw") {
993			if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) return target;
994			return;
995		}
996		const targetIsArray = isArray(target);
997		if (!isReadonly2) {
998			let fn;
999			if (targetIsArray && (fn = arrayInstrumentations[key])) return fn;
1000			if (key === "hasOwnProperty") return hasOwnProperty;
1001		}
1002		const res = Reflect.get(target, key, /* @__PURE__ */ isRef(target) ? target : receiver);
1003		if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) return res;
1004		if (!isReadonly2) track(target, "get", key);
1005		if (isShallow2) return res;
1006		if (/* @__PURE__ */ isRef(res)) {
1007			const value = targetIsArray && isIntegerKey(key) ? res : res.value;
1008			return isReadonly2 && isObject$2(value) ? /* @__PURE__ */ readonly(value) : value;
1009		}
1010		if (isObject$2(res)) return isReadonly2 ? /* @__PURE__ */ readonly(res) : /* @__PURE__ */ reactive(res);
1011		return res;
1012	}
1013};
1014var MutableReactiveHandler = class extends BaseReactiveHandler {
1015	constructor(isShallow2 = false) {
1016		super(false, isShallow2);
1017	}
1018	set(target, key, value, receiver) {
1019		let oldValue = target[key];
1020		const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key);
1021		if (!this._isShallow) {
1022			const isOldValueReadonly = /* @__PURE__ */ isReadonly(oldValue);
1023			if (!/* @__PURE__ */ isShallow(value) && !/* @__PURE__ */ isReadonly(value)) {
1024				oldValue = /* @__PURE__ */ toRaw(oldValue);
1025				value = /* @__PURE__ */ toRaw(value);
1026			}
1027			if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
1028				if (isOldValueReadonly) return true;
1029				else {
1030					oldValue.value = value;
1031					return true;
1032				}
1033			}
1034		}
1035		const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
1036		const result = Reflect.set(target, key, value, /* @__PURE__ */ isRef(target) ? target : receiver);
1037		if (target === /* @__PURE__ */ toRaw(receiver) && result) {
1038			if (!hadKey) trigger(target, "add", key, value);
1039			else if (hasChanged(value, oldValue)) trigger(target, "set", key, value, oldValue);
1040		}
1041		return result;
1042	}
1043	deleteProperty(target, key) {
1044		const hadKey = hasOwn(target, key);
1045		const oldValue = target[key];
1046		const result = Reflect.deleteProperty(target, key);
1047		if (result && hadKey) trigger(target, "delete", key, void 0, oldValue);
1048		return result;
1049	}
1050	has(target, key) {
1051		const result = Reflect.has(target, key);
1052		if (!isSymbol(key) || !builtInSymbols.has(key)) track(target, "has", key);
1053		return result;
1054	}
1055	ownKeys(target) {
1056		track(target, "iterate", isArray(target) ? "length" : ITERATE_KEY);
1057		return Reflect.ownKeys(target);
1058	}
1059};
1060var ReadonlyReactiveHandler = class extends BaseReactiveHandler {
1061	constructor(isShallow2 = false) {
1062		super(true, isShallow2);
1063	}
1064	set(target, key) {
1065		return true;
1066	}
1067	deleteProperty(target, key) {
1068		return true;
1069	}
1070};
1071var mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
1072var readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
1073var shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);
1074var shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
1075var toShallow = (value) => value;
1076var getProto = (v) => Reflect.getPrototypeOf(v);
1077function createIterableMethod(method, isReadonly2, isShallow2) {
1078	return function(...args) {
1079		const target = this["__v_raw"];
1080		const rawTarget = /* @__PURE__ */ toRaw(target);
1081		const targetIsMap = isMap(rawTarget);
1082		const isPair = method === "entries" || method === Symbol.iterator && targetIsMap;
1083		const isKeyOnly = method === "keys" && targetIsMap;
1084		const innerIterator = target[method](...args);
1085		const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
1086		!isReadonly2 && track(rawTarget, "iterate", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);
1087		return extend(Object.create(innerIterator), { next() {
1088			const { value, done } = innerIterator.next();
1089			return done ? {
1090				value,
1091				done
1092			} : {
1093				value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),
1094				done
1095			};
1096		} });
1097	};
1098}
1099function createReadonlyMethod(type) {
1100	return function(...args) {
1101		return type === "delete" ? false : type === "clear" ? void 0 : this;
1102	};
1103}
1104function createInstrumentations(readonly, shallow) {
1105	const instrumentations = {
1106		get(key) {
1107			const target = this["__v_raw"];
1108			const rawTarget = /* @__PURE__ */ toRaw(target);
1109			const rawKey = /* @__PURE__ */ toRaw(key);
1110			if (!readonly) {
1111				if (hasChanged(key, rawKey)) track(rawTarget, "get", key);
1112				track(rawTarget, "get", rawKey);
1113			}
1114			const { has } = getProto(rawTarget);
1115			const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;
1116			if (has.call(rawTarget, key)) return wrap(target.get(key));
1117			else if (has.call(rawTarget, rawKey)) return wrap(target.get(rawKey));
1118			else if (target !== rawTarget) target.get(key);
1119		},
1120		get size() {
1121			const target = this["__v_raw"];
1122			!readonly && track(/* @__PURE__ */ toRaw(target), "iterate", ITERATE_KEY);
1123			return target.size;
1124		},
1125		has(key) {
1126			const target = this["__v_raw"];
1127			const rawTarget = /* @__PURE__ */ toRaw(target);
1128			const rawKey = /* @__PURE__ */ toRaw(key);
1129			if (!readonly) {
1130				if (hasChanged(key, rawKey)) track(rawTarget, "has", key);
1131				track(rawTarget, "has", rawKey);
1132			}
1133			return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
1134		},
1135		forEach(callback, thisArg) {
1136			const observed = this;
1137			const target = observed["__v_raw"];
1138			const rawTarget = /* @__PURE__ */ toRaw(target);
1139			const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;
1140			!readonly && track(rawTarget, "iterate", ITERATE_KEY);
1141			return target.forEach((value, key) => {
1142				return callback.call(thisArg, wrap(value), wrap(key), observed);
1143			});
1144		}
1145	};
1146	extend(instrumentations, readonly ? {
1147		add: createReadonlyMethod("add"),
1148		set: createReadonlyMethod("set"),
1149		delete: createReadonlyMethod("delete"),
1150		clear: createReadonlyMethod("clear")
1151	} : {
1152		add(value) {
1153			const target = /* @__PURE__ */ toRaw(this);
1154			const proto = getProto(target);
1155			const rawValue = /* @__PURE__ */ toRaw(value);
1156			const valueToAdd = !shallow && !/* @__PURE__ */ isShallow(value) && !/* @__PURE__ */ isReadonly(value) ? rawValue : value;
1157			if (!(proto.has.call(target, valueToAdd) || hasChanged(value, valueToAdd) && proto.has.call(target, value) || hasChanged(rawValue, valueToAdd) && proto.has.call(target, rawValue))) {
1158				target.add(valueToAdd);
1159				trigger(target, "add", valueToAdd, valueToAdd);
1160			}
1161			return this;
1162		},
1163		set(key, value) {
1164			if (!shallow && !/* @__PURE__ */ isShallow(value) && !/* @__PURE__ */ isReadonly(value)) value = /* @__PURE__ */ toRaw(value);
1165			const target = /* @__PURE__ */ toRaw(this);
1166			const { has, get } = getProto(target);
1167			let hadKey = has.call(target, key);
1168			if (!hadKey) {
1169				key = /* @__PURE__ */ toRaw(key);
1170				hadKey = has.call(target, key);
1171			}
1172			const oldValue = get.call(target, key);
1173			target.set(key, value);
1174			if (!hadKey) trigger(target, "add", key, value);
1175			else if (hasChanged(value, oldValue)) trigger(target, "set", key, value, oldValue);
1176			return this;
1177		},
1178		delete(key) {
1179			const target = /* @__PURE__ */ toRaw(this);
1180			const { has, get } = getProto(target);
1181			let hadKey = has.call(target, key);
1182			if (!hadKey) {
1183				key = /* @__PURE__ */ toRaw(key);
1184				hadKey = has.call(target, key);
1185			}
1186			const oldValue = get ? get.call(target, key) : void 0;
1187			const result = target.delete(key);
1188			if (hadKey) trigger(target, "delete", key, void 0, oldValue);
1189			return result;
1190		},
1191		clear() {
1192			const target = /* @__PURE__ */ toRaw(this);
1193			const hadItems = target.size !== 0;
1194			const oldTarget = void 0;
1195			const result = target.clear();
1196			if (hadItems) trigger(target, "clear", void 0, void 0, oldTarget);
1197			return result;
1198		}
1199	});
1200	[
1201		"keys",
1202		"values",
1203		"entries",
1204		Symbol.iterator
1205	].forEach((method) => {
1206		instrumentations[method] = createIterableMethod(method, readonly, shallow);
1207	});
1208	return instrumentations;
1209}
1210function createInstrumentationGetter(isReadonly2, shallow) {
1211	const instrumentations = createInstrumentations(isReadonly2, shallow);
1212	return (target, key, receiver) => {
1213		if (key === "__v_isReactive") return !isReadonly2;
1214		else if (key === "__v_isReadonly") return isReadonly2;
1215		else if (key === "__v_raw") return target;
1216		return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
1217	};
1218}
1219var mutableCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, false) };
1220var shallowCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, true) };
1221var readonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, false) };
1222var shallowReadonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, true) };
1223var reactiveMap = /* @__PURE__ */ new WeakMap();
1224var shallowReactiveMap = /* @__PURE__ */ new WeakMap();
1225var readonlyMap = /* @__PURE__ */ new WeakMap();
1226var shallowReadonlyMap = /* @__PURE__ */ new WeakMap();
1227function targetTypeMap(rawType) {
1228	switch (rawType) {
1229		case "Object":
1230		case "Array": return 1;
1231		case "Map":
1232		case "Set":
1233		case "WeakMap":
1234		case "WeakSet": return 2;
1235		default: return 0;
1236	}
1237}
1238// @__NO_SIDE_EFFECTS__
1239function reactive(target) {
1240	if (/* @__PURE__ */ isReadonly(target)) return target;
1241	return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
1242}
1243// @__NO_SIDE_EFFECTS__
1244function shallowReactive(target) {
1245	return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
1246}
1247// @__NO_SIDE_EFFECTS__
1248function readonly(target) {
1249	return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
1250}
1251// @__NO_SIDE_EFFECTS__
1252function shallowReadonly(target) {
1253	return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
1254}
1255function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {
1256	if (!isObject$2(target)) return target;
1257	if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) return target;
1258	if (target["__v_skip"] || !Object.isExtensible(target)) return target;
1259	const existingProxy = proxyMap.get(target);
1260	if (existingProxy) return existingProxy;
1261	const targetType = targetTypeMap(toRawType(target));
1262	if (targetType === 0) return target;
1263	const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);
1264	proxyMap.set(target, proxy);
1265	return proxy;
1266}
1267// @__NO_SIDE_EFFECTS__
1268function isReactive(value) {
1269	if (/* @__PURE__ */ isReadonly(value)) return /* @__PURE__ */ isReactive(value["__v_raw"]);
1270	return !!(value && value["__v_isReactive"]);
1271}
1272// @__NO_SIDE_EFFECTS__
1273function isReadonly(value) {
1274	return !!(value && value["__v_isReadonly"]);
1275}
1276// @__NO_SIDE_EFFECTS__
1277function isShallow(value) {
1278	return !!(value && value["__v_isShallow"]);
1279}
1280// @__NO_SIDE_EFFECTS__
1281function isProxy(value) {
1282	return value ? !!value["__v_raw"] : false;
1283}
1284// @__NO_SIDE_EFFECTS__
1285function toRaw(observed) {
1286	const raw = observed && observed["__v_raw"];
1287	return raw ? /* @__PURE__ */ toRaw(raw) : observed;
1288}
1289function markRaw(value) {
1290	if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) def(value, "__v_skip", true);
1291	return value;
1292}
1293var toReactive = (value) => isObject$2(value) ? /* @__PURE__ */ reactive(value) : value;
1294var toReadonly = (value) => isObject$2(value) ? /* @__PURE__ */ readonly(value) : value;
1295// @__NO_SIDE_EFFECTS__
1296function isRef(r) {
1297	return r ? r["__v_isRef"] === true : false;
1298}
1299// @__NO_SIDE_EFFECTS__
1300function ref(value) {
1301	return createRef(value, false);
1302}
1303// @__NO_SIDE_EFFECTS__
1304function shallowRef(value) {
1305	return createRef(value, true);
1306}
1307function createRef(rawValue, shallow) {
1308	if (/* @__PURE__ */ isRef(rawValue)) return rawValue;
1309	return new RefImpl(rawValue, shallow);
1310}
1311var RefImpl = class {
1312	constructor(value, isShallow2) {
1313		this.dep = new Dep();
1314		this["__v_isRef"] = true;
1315		this["__v_isShallow"] = false;
1316		this._rawValue = isShallow2 ? value : /* @__PURE__ */ toRaw(value);
1317		this._value = isShallow2 ? value : toReactive(value);
1318		this["__v_isShallow"] = isShallow2;
1319	}
1320	get value() {
1321		this.dep.track();
1322		return this._value;
1323	}
1324	set value(newValue) {
1325		const oldValue = this._rawValue;
1326		const useDirectValue = this["__v_isShallow"] || /* @__PURE__ */ isShallow(newValue) || /* @__PURE__ */ isReadonly(newValue);
1327		newValue = useDirectValue ? newValue : /* @__PURE__ */ toRaw(newValue);
1328		if (hasChanged(newValue, oldValue)) {
1329			this._rawValue = newValue;
1330			this._value = useDirectValue ? newValue : toReactive(newValue);
1331			this.dep.trigger();
1332		}
1333	}
1334};
1335function unref(ref2) {
1336	return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2;
1337}
1338function toValue(source) {
1339	return isFunction(source) ? source() : unref(source);
1340}
1341var shallowUnwrapHandlers = {
1342	get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)),
1343	set: (target, key, value, receiver) => {
1344		const oldValue = target[key];
1345		if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
1346			oldValue.value = value;
1347			return true;
1348		} else return Reflect.set(target, key, value, receiver);
1349	}
1350};
1351function proxyRefs(objectWithRefs) {
1352	return /* @__PURE__ */ isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);
1353}
1354var CustomRefImpl = class {
1355	constructor(factory) {
1356		this["__v_isRef"] = true;
1357		this._value = void 0;
1358		const dep = this.dep = new Dep();
1359		const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));
1360		this._get = get;
1361		this._set = set;
1362	}
1363	get value() {
1364		return this._value = this._get();
1365	}
1366	set value(newVal) {
1367		this._set(newVal);
1368	}
1369};
1370function customRef(factory) {
1371	return new CustomRefImpl(factory);
1372}
1373var ObjectRefImpl = class {
1374	constructor(_object, key, _defaultValue) {
1375		this._object = _object;
1376		this._defaultValue = _defaultValue;
1377		this["__v_isRef"] = true;
1378		this._value = void 0;
1379		this._key = isSymbol(key) ? key : String(key);
1380		this._raw = /* @__PURE__ */ toRaw(_object);
1381		let shallow = true;
1382		let obj = _object;
1383		if (!isArray(_object) || isSymbol(this._key) || !isIntegerKey(this._key)) do
1384			shallow = !/* @__PURE__ */ isProxy(obj) || /* @__PURE__ */ isShallow(obj);
1385		while (shallow && (obj = obj["__v_raw"]));
1386		this._shallow = shallow;
1387	}
1388	get value() {
1389		let val = this._object[this._key];
1390		if (this._shallow) val = unref(val);
1391		return this._value = val === void 0 ? this._defaultValue : val;
1392	}
1393	set value(newVal) {
1394		if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) {
1395			const nestedRef = this._object[this._key];
1396			if (/* @__PURE__ */ isRef(nestedRef)) {
1397				nestedRef.value = newVal;
1398				return;
1399			}
1400		}
1401		this._object[this._key] = newVal;
1402	}
1403	get dep() {
1404		return getDepFromReactive(this._raw, this._key);
1405	}
1406};
1407var GetterRefImpl = class {
1408	constructor(_getter) {
1409		this._getter = _getter;
1410		this["__v_isRef"] = true;
1411		this["__v_isReadonly"] = true;
1412		this._value = void 0;
1413	}
1414	get value() {
1415		return this._value = this._getter();
1416	}
1417};
1418// @__NO_SIDE_EFFECTS__
1419function toRef$1(source, key, defaultValue) {
1420	if (/* @__PURE__ */ isRef(source)) return source;
1421	else if (isFunction(source)) return new GetterRefImpl(source);
1422	else if (isObject$2(source) && arguments.length > 1) return propertyToRef(source, key, defaultValue);
1423	else return /* @__PURE__ */ ref(source);
1424}
1425function propertyToRef(source, key, defaultValue) {
1426	return new ObjectRefImpl(source, key, defaultValue);
1427}
1428var ComputedRefImpl = class {
1429	constructor(fn, setter, isSSR) {
1430		this.fn = fn;
1431		this.setter = setter;
1432		/**
1433		* @internal
1434		*/
1435		this._value = void 0;
1436		/**
1437		* @internal
1438		*/
1439		this.dep = new Dep(this);
1440		/**
1441		* @internal
1442		*/
1443		this.__v_isRef = true;
1444		/**
1445		* @internal
1446		*/
1447		this.deps = void 0;
1448		/**
1449		* @internal
1450		*/
1451		this.depsTail = void 0;
1452		/**
1453		* @internal
1454		*/
1455		this.flags = 16;
1456		/**
1457		* @internal
1458		*/
1459		this.globalVersion = globalVersion - 1;
1460		/**
1461		* @internal
1462		*/
1463		this.next = void 0;
1464		this.effect = this;
1465		this["__v_isReadonly"] = !setter;
1466		this.isSSR = isSSR;
1467	}
1468	/**
1469	* @internal
1470	*/
1471	notify() {
1472		this.flags |= 16;
1473		if (!(this.flags & 8) && activeSub !== this) {
1474			batch(this, true);
1475			return true;
1476		}
1477	}
1478	get value() {
1479		const link = this.dep.track();
1480		refreshComputed(this);
1481		if (link) link.version = this.dep.version;
1482		return this._value;
1483	}
1484	set value(newValue) {
1485		if (this.setter) this.setter(newValue);
1486	}
1487};
1488// @__NO_SIDE_EFFECTS__
1489function computed$1(getterOrOptions, debugOptions, isSSR = false) {
1490	let getter;
1491	let setter;
1492	if (isFunction(getterOrOptions)) getter = getterOrOptions;
1493	else {
1494		getter = getterOrOptions.get;
1495		setter = getterOrOptions.set;
1496	}
1497	return new ComputedRefImpl(getter, setter, isSSR);
1498}
1499var INITIAL_WATCHER_VALUE = {};
1500var cleanupMap = /* @__PURE__ */ new WeakMap();
1501var activeWatcher = void 0;
1502function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {
1503	if (owner) {
1504		let cleanups = cleanupMap.get(owner);
1505		if (!cleanups) cleanupMap.set(owner, cleanups = []);
1506		cleanups.push(cleanupFn);
1507	}
1508}
1509function watch$1(source, cb, options = EMPTY_OBJ) {
1510	const { immediate, deep, once, scheduler, augmentJob, call } = options;
1511	const reactiveGetter = (source2) => {
1512		if (deep) return source2;
1513		if (/* @__PURE__ */ isShallow(source2) || deep === false || deep === 0) return traverse(source2, 1);
1514		return traverse(source2);
1515	};
1516	let effect;
1517	let getter;
1518	let cleanup;
1519	let boundCleanup;
1520	let forceTrigger = false;
1521	let isMultiSource = false;
1522	if (/* @__PURE__ */ isRef(source)) {
1523		getter = () => source.value;
1524		forceTrigger = /* @__PURE__ */ isShallow(source);
1525	} else if (/* @__PURE__ */ isReactive(source)) {
1526		getter = () => reactiveGetter(source);
1527		forceTrigger = true;
1528	} else if (isArray(source)) {
1529		isMultiSource = true;
1530		forceTrigger = source.some((s) => /* @__PURE__ */ isReactive(s) || /* @__PURE__ */ isShallow(s));
1531		getter = () => source.map((s) => {
1532			if (/* @__PURE__ */ isRef(s)) return s.value;
1533			else if (/* @__PURE__ */ isReactive(s)) return reactiveGetter(s);
1534			else if (isFunction(s)) return call ? call(s, 2) : s();
1535		});
1536	} else if (isFunction(source)) {
1537		if (cb) getter = call ? () => call(source, 2) : source;
1538		else getter = () => {
1539			if (cleanup) {
1540				pauseTracking();
1541				try {
1542					cleanup();
1543				} finally {
1544					resetTracking();
1545				}
1546			}
1547			const currentEffect = activeWatcher;
1548			activeWatcher = effect;
1549			try {
1550				return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);
1551			} finally {
1552				activeWatcher = currentEffect;
1553			}
1554		};
1555	} else getter = NOOP;
1556	if (cb && deep) {
1557		const baseGetter = getter;
1558		const depth = deep === true ? Infinity : deep;
1559		getter = () => traverse(baseGetter(), depth);
1560	}
1561	const scope = getCurrentScope();
1562	const watchHandle = () => {
1563		effect.stop();
1564		if (scope && scope.active) remove(scope.effects, effect);
1565	};
1566	if (once && cb) {
1567		const _cb = cb;
1568		cb = (...args) => {
1569			const res = _cb(...args);
1570			watchHandle();
1571			return res;
1572		};
1573	}
1574	let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
1575	const job = (immediateFirstRun) => {
1576		if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) return;
1577		if (cb) {
1578			const newValue = effect.run();
1579			if (immediateFirstRun || deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
1580				if (cleanup) cleanup();
1581				const currentWatcher = activeWatcher;
1582				activeWatcher = effect;
1583				try {
1584					const args = [
1585						newValue,
1586						oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,
1587						boundCleanup
1588					];
1589					oldValue = newValue;
1590					call ? call(cb, 3, args) : cb(...args);
1591				} finally {
1592					activeWatcher = currentWatcher;
1593				}
1594			}
1595		} else effect.run();
1596	};
1597	if (augmentJob) augmentJob(job);
1598	effect = new ReactiveEffect(getter);
1599	effect.scheduler = scheduler ? () => scheduler(job, false) : job;
1600	boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);
1601	cleanup = effect.onStop = () => {
1602		const cleanups = cleanupMap.get(effect);
1603		if (cleanups) {
1604			if (call) call(cleanups, 4);
1605			else for (const cleanup2 of cleanups) cleanup2();
1606			cleanupMap.delete(effect);
1607		}
1608	};
1609	if (cb) {
1610		if (immediate) job(true);
1611		else oldValue = effect.run();
1612	} else if (scheduler) scheduler(job.bind(null, true), true);
1613	else effect.run();
1614	watchHandle.pause = effect.pause.bind(effect);
1615	watchHandle.resume = effect.resume.bind(effect);
1616	watchHandle.stop = watchHandle;
1617	return watchHandle;
1618}
1619function traverse(value, depth = Infinity, seen) {
1620	if (depth <= 0 || !isObject$2(value) || value["__v_skip"]) return value;
1621	seen = seen || /* @__PURE__ */ new Map();
1622	if ((seen.get(value) || 0) >= depth) return value;
1623	seen.set(value, depth);
1624	depth--;
1625	if (/* @__PURE__ */ isRef(value)) traverse(value.value, depth, seen);
1626	else if (isArray(value)) for (let i = 0; i < value.length; i++) traverse(value[i], depth, seen);
1627	else if (isSet(value) || isMap(value)) value.forEach((v) => {
1628		traverse(v, depth, seen);
1629	});
1630	else if (isPlainObject(value)) {
1631		for (const key in value) traverse(value[key], depth, seen);
1632		for (const key of Object.getOwnPropertySymbols(value)) if (Object.prototype.propertyIsEnumerable.call(value, key)) traverse(value[key], depth, seen);
1633	}
1634	return value;
1635}
1636//#endregion
1637//#region node_modules/.pnpm/@[email protected]/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js
1638/**
1639* @vue/runtime-core v3.5.43
1640* (c) 2018-present Yuxi (Evan) You and Vue contributors
1641* @license MIT
1642**/
1643var stack = [];
1644var isWarning = false;
1645function warn$1(msg, ...args) {
1646	if (isWarning) return;
1647	isWarning = true;
1648	pauseTracking();
1649	const instance = stack.length ? stack[stack.length - 1].component : null;
1650	const appWarnHandler = instance && instance.appContext.config.warnHandler;
1651	const trace = getComponentTrace();
1652	if (appWarnHandler) callWithErrorHandling(appWarnHandler, instance, 11, [
1653		msg + args.map((a) => {
1654			var _a, _b;
1655			return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);
1656		}).join(""),
1657		instance && instance.proxy,
1658		trace.map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`).join("\n"),
1659		trace
1660	]);
1661	else {
1662		const warnArgs = [`[Vue warn]: ${msg}`, ...args];
1663		if (trace.length && true) warnArgs.push(`
1664`, ...formatTrace(trace));
1665		console.warn(...warnArgs);
1666	}
1667	resetTracking();
1668	isWarning = false;
1669}
1670function getComponentTrace() {
1671	let currentVNode = stack[stack.length - 1];
1672	if (!currentVNode) return [];
1673	const normalizedStack = [];
1674	while (currentVNode) {
1675		const last = normalizedStack[0];
1676		if (last && last.vnode === currentVNode) last.recurseCount++;
1677		else normalizedStack.push({
1678			vnode: currentVNode,
1679			recurseCount: 0
1680		});
1681		const parentInstance = currentVNode.component && currentVNode.component.parent;
1682		currentVNode = parentInstance && parentInstance.vnode;
1683	}
1684	return normalizedStack;
1685}
1686function formatTrace(trace) {
1687	const logs = [];
1688	trace.forEach((entry, i) => {
1689		logs.push(...i === 0 ? [] : [`
1690`], ...formatTraceEntry(entry));
1691	});
1692	return logs;
1693}
1694function formatTraceEntry({ vnode, recurseCount }) {
1695	const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;
1696	const isRoot = vnode.component ? vnode.component.parent == null : false;
1697	const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;
1698	const close = `>` + postfix;
1699	return vnode.props ? [
1700		open,
1701		...formatProps(vnode.props),
1702		close
1703	] : [open + close];
1704}
1705function formatProps(props) {
1706	const res = [];
1707	const keys = Object.keys(props);
1708	keys.slice(0, 3).forEach((key) => {
1709		res.push(...formatProp(key, props[key]));
1710	});
1711	if (keys.length > 3) res.push(` ...`);
1712	return res;
1713}
1714function formatProp(key, value, raw) {
1715	if (isString(value)) {
1716		value = JSON.stringify(value);
1717		return raw ? value : [`${key}=${value}`];
1718	} else if (typeof value === "number" || typeof value === "boolean" || value == null) return raw ? value : [`${key}=${value}`];
1719	else if (/* @__PURE__ */ isRef(value)) {
1720		value = formatProp(key, /* @__PURE__ */ toRaw(value.value), true);
1721		return raw ? value : [
1722			`${key}=Ref<`,
1723			value,
1724			`>`
1725		];
1726	} else if (isFunction(value)) return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];
1727	else {
1728		value = /* @__PURE__ */ toRaw(value);
1729		return raw ? value : [`${key}=`, value];
1730	}
1731}
1732function callWithErrorHandling(fn, instance, type, args) {
1733	try {
1734		return args ? fn(...args) : fn();
1735	} catch (err) {
1736		handleError(err, instance, type);
1737	}
1738}
1739function callWithAsyncErrorHandling(fn, instance, type, args) {
1740	if (isFunction(fn)) {
1741		const res = callWithErrorHandling(fn, instance, type, args);
1742		if (res && isPromise(res)) res.catch((err) => {
1743			handleError(err, instance, type);
1744		});
1745		return res;
1746	}
1747	if (isArray(fn)) {
1748		const values = [];
1749		for (let i = 0; i < fn.length; i++) values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));
1750		return values;
1751	}
1752}
1753function handleError(err, instance, type, throwInDev = true) {
1754	const contextVNode = instance ? instance.vnode : null;
1755	const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;
1756	if (instance) {
1757		let cur = instance.parent;
1758		const exposedInstance = instance.proxy;
1759		const errorInfo = `https://vuejs.org/error-reference/#runtime-${type}`;
1760		while (cur) {
1761			const errorCapturedHooks = cur.ec;
1762			if (errorCapturedHooks) {
1763				for (let i = 0; i < errorCapturedHooks.length; i++) if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) return;
1764			}
1765			cur = cur.parent;
1766		}
1767		if (errorHandler) {
1768			pauseTracking();
1769			callWithErrorHandling(errorHandler, null, 10, [
1770				err,
1771				exposedInstance,
1772				errorInfo
1773			]);
1774			resetTracking();
1775			return;
1776		}
1777	}
1778	logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);
1779}
1780function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {
1781	if (throwInProd) throw err;
1782	else console.error(err);
1783}
1784var queue = [];
1785var flushIndex = -1;
1786var pendingPostFlushCbs = [];
1787var activePostFlushCbs = null;
1788var postFlushIndex = 0;
1789var resolvedPromise = /* @__PURE__ */ Promise.resolve();
1790var currentFlushPromise = null;
1791function nextTick(fn) {
1792	const p = currentFlushPromise || resolvedPromise;
1793	return fn ? p.then(this ? fn.bind(this) : fn) : p;
1794}
1795function findInsertionIndex(id) {
1796	let start = flushIndex + 1;
1797	let end = queue.length;
1798	while (start < end) {
1799		const middle = start + end >>> 1;
1800		const middleJob = queue[middle];
1801		const middleJobId = getId(middleJob);
1802		if (middleJobId < id || middleJobId === id && middleJob.flags & 2) start = middle + 1;
1803		else end = middle;
1804	}
1805	return start;
1806}
1807function queueJob(job) {
1808	if (!(job.flags & 1)) {
1809		const jobId = getId(job);
1810		const lastJob = queue[queue.length - 1];
1811		if (!lastJob || !(job.flags & 2) && jobId >= getId(lastJob)) queue.push(job);
1812		else queue.splice(findInsertionIndex(jobId), 0, job);
1813		job.flags |= 1;
1814		queueFlush();
1815	}
1816}
1817function queueFlush() {
1818	if (!currentFlushPromise) currentFlushPromise = resolvedPromise.then(flushJobs);
1819}
1820function queuePostFlushCb(cb) {
1821	if (!isArray(cb)) {
1822		if (activePostFlushCbs && cb.id === -1) activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);
1823		else if (!(cb.flags & 1)) {
1824			pendingPostFlushCbs.push(cb);
1825			cb.flags |= 1;
1826		}
1827	} else for (let i = 0; i < cb.length; i++) pendingPostFlushCbs.push(cb[i]);
1828	queueFlush();
1829}
1830function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
1831	for (; i < queue.length; i++) {
1832		const cb = queue[i];
1833		if (cb && cb.flags & 2) {
1834			if (instance && cb.id !== instance.uid) continue;
1835			queue.splice(i, 1);
1836			i--;
1837			if (cb.flags & 4) cb.flags &= -2;
1838			cb();
1839			if (!(cb.flags & 4)) cb.flags &= -2;
1840		}
1841	}
1842}
1843function flushPostFlushCbs(seen) {
1844	if (pendingPostFlushCbs.length) {
1845		const deduped = [...new Set(pendingPostFlushCbs)].sort((a, b) => getId(a) - getId(b));
1846		pendingPostFlushCbs.length = 0;
1847		if (activePostFlushCbs) {
1848			for (let i = 0; i < deduped.length; i++) activePostFlushCbs.push(deduped[i]);
1849			return;
1850		}
1851		activePostFlushCbs = deduped;
1852		for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
1853			const cb = activePostFlushCbs[postFlushIndex];
1854			if (cb.flags & 4) cb.flags &= -2;
1855			if (!(cb.flags & 8)) cb();
1856			cb.flags &= -2;
1857		}
1858		activePostFlushCbs = null;
1859		postFlushIndex = 0;
1860	}
1861}
1862var getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;
1863function flushJobs(seen) {
1864	try {
1865		for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {
1866			const job = queue[flushIndex];
1867			if (job && !(job.flags & 8)) {
1868				if (job.flags & 4) job.flags &= -2;
1869				callWithErrorHandling(job, job.i, job.i ? 15 : 14);
1870				if (!(job.flags & 4)) job.flags &= -2;
1871			}
1872		}
1873	} finally {
1874		for (; flushIndex < queue.length; flushIndex++) {
1875			const job = queue[flushIndex];
1876			if (job) job.flags &= -2;
1877		}
1878		flushIndex = -1;
1879		queue.length = 0;
1880		flushPostFlushCbs(seen);
1881		currentFlushPromise = null;
1882		if (queue.length || pendingPostFlushCbs.length) flushJobs(seen);
1883	}
1884}
1885var currentRenderingInstance = null;
1886var currentScopeId = null;
1887function setCurrentRenderingInstance(instance) {
1888	const prev = currentRenderingInstance;
1889	currentRenderingInstance = instance;
1890	currentScopeId = instance && instance.type.__scopeId || null;
1891	return prev;
1892}
1893function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {
1894	if (!ctx) return fn;
1895	if (fn._n) return fn;
1896	const renderFnWithContext = (...args) => {
1897		if (renderFnWithContext._d) setBlockTracking(-1);
1898		const prevInstance = setCurrentRenderingInstance(ctx);
1899		const prevStackSize = blockStack.length;
1900		let res;
1901		try {
1902			res = fn(...args);
1903		} finally {
1904			for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
1905			setCurrentRenderingInstance(prevInstance);
1906			if (renderFnWithContext._d) setBlockTracking(1);
1907		}
1908		return res;
1909	};
1910	renderFnWithContext._n = true;
1911	renderFnWithContext._c = true;
1912	renderFnWithContext._d = true;
1913	return renderFnWithContext;
1914}
1915function withDirectives(vnode, directives) {
1916	if (currentRenderingInstance === null) return vnode;
1917	const instance = getComponentPublicInstance(currentRenderingInstance);
1918	const bindings = vnode.dirs || (vnode.dirs = []);
1919	for (let i = 0; i < directives.length; i++) {
1920		let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];
1921		if (dir) {
1922			if (isFunction(dir)) dir = {
1923				mounted: dir,
1924				updated: dir
1925			};
1926			if (dir.deep) traverse(value);
1927			bindings.push({
1928				dir,
1929				instance,
1930				value,
1931				oldValue: void 0,
1932				arg,
1933				modifiers
1934			});
1935		}
1936	}
1937	return vnode;
1938}
1939function invokeDirectiveHook(vnode, prevVNode, instance, name) {
1940	const bindings = vnode.dirs;
1941	const oldBindings = prevVNode && prevVNode.dirs;
1942	for (let i = 0; i < bindings.length; i++) {
1943		const binding = bindings[i];
1944		if (oldBindings) binding.oldValue = oldBindings[i].value;
1945		let hook = binding.dir[name];
1946		if (hook) {
1947			pauseTracking();
1948			callWithAsyncErrorHandling(hook, instance, 8, [
1949				vnode.el,
1950				binding,
1951				vnode,
1952				prevVNode
1953			]);
1954			resetTracking();
1955		}
1956	}
1957}
1958function provide(key, value) {
1959	if (currentInstance) {
1960		let provides = currentInstance.provides;
1961		const parentProvides = currentInstance.parent && currentInstance.parent.provides;
1962		if (parentProvides === provides) provides = currentInstance.provides = Object.create(parentProvides);
1963		provides[key] = value;
1964	}
1965}
1966function inject(key, defaultValue, treatDefaultAsFactory = false) {
1967	const instance = getCurrentInstance();
1968	if (instance || currentApp) {
1969		let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
1970		if (provides && key in provides) return provides[key];
1971		else if (arguments.length > 1) return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
1972	}
1973}
1974function hasInjectionContext() {
1975	return !!(getCurrentInstance() || currentApp);
1976}
1977var ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx");
1978var useSSRContext = () => {
1979	{
1980		const ctx = inject(ssrContextKey);
1981		if (!ctx) {}
1982		return ctx;
1983	}
1984};
1985function watchEffect(effect, options) {
1986	return doWatch(effect, null, options);
1987}
1988function watchPostEffect(effect, options) {
1989	return doWatch(effect, null, { flush: "post" });
1990}
1991function watch(source, cb, options) {
1992	return doWatch(source, cb, options);
1993}
1994function doWatch(source, cb, options = EMPTY_OBJ) {
1995	const { immediate, deep, flush, once } = options;
1996	const baseWatchOptions = extend({}, options);
1997	const runsImmediately = cb && immediate || !cb && flush !== "post";
1998	let ssrCleanup;
1999	if (isInSSRComponentSetup) {
2000		if (flush === "sync") {
2001			const ctx = useSSRContext();
2002			ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);
2003		} else if (!runsImmediately) {
2004			const watchStopHandle = () => {};
2005			watchStopHandle.stop = NOOP;
2006			watchStopHandle.resume = NOOP;
2007			watchStopHandle.pause = NOOP;
2008			return watchStopHandle;
2009		}
2010	}
2011	const instance = currentInstance;
2012	baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);
2013	let isPre = false;
2014	if (flush === "post") baseWatchOptions.scheduler = (job) => {
2015		queuePostRenderEffect(job, instance && instance.suspense);
2016	};
2017	else if (flush !== "sync") {
2018		isPre = true;
2019		baseWatchOptions.scheduler = (job, isFirstRun) => {
2020			if (isFirstRun) job();
2021			else queueJob(job);
2022		};
2023	}
2024	baseWatchOptions.augmentJob = (job) => {
2025		if (cb) job.flags |= 4;
2026		if (isPre) {
2027			job.flags |= 2;
2028			if (instance) {
2029				job.id = instance.uid;
2030				job.i = instance;
2031			}
2032		}
2033	};
2034	const watchHandle = watch$1(source, cb, baseWatchOptions);
2035	if (isInSSRComponentSetup) {
2036		if (ssrCleanup) ssrCleanup.push(watchHandle);
2037		else if (runsImmediately) watchHandle();
2038	}
2039	return watchHandle;
2040}
2041function instanceWatch(source, value, options) {
2042	const publicThis = this.proxy;
2043	const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);
2044	let cb;
2045	if (isFunction(value)) cb = value;
2046	else {
2047		cb = value.handler;
2048		options = value;
2049	}
2050	const reset = setCurrentInstance(this);
2051	const res = doWatch(getter, cb.bind(publicThis), options);
2052	reset();
2053	return res;
2054}
2055function createPathGetter(ctx, path) {
2056	const segments = path.split(".");
2057	return () => {
2058		let cur = ctx;
2059		for (let i = 0; i < segments.length && cur; i++) cur = cur[segments[i]];
2060		return cur;
2061	};
2062}
2063var pendingMounts = /* @__PURE__ */ new WeakMap();
2064var TeleportEndKey = /* @__PURE__ */ Symbol("_vte");
2065var isTeleport = (type) => type.__isTeleport;
2066var isTeleportDisabled = (props) => props && (props.disabled || props.disabled === "");
2067var isTeleportDeferred = (props) => props && (props.defer || props.defer === "");
2068var isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement;
2069var isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
2070var resolveTarget = (props, select) => {
2071	const targetSelector = props && props.to;
2072	if (isString(targetSelector)) {
2073		if (!select) return null;
2074		else return select(targetSelector);
2075	} else return targetSelector;
2076};
2077var TeleportImpl = {
2078	name: "Teleport",
2079	__isTeleport: true,
2080	process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {
2081		const { mc: mountChildren, pc: patchChildren, pbc: patchBlockChildren, o: { insert, querySelector, createText, createComment, parentNode } } = internals;
2082		const disabled = isTeleportDisabled(n2.props);
2083		let { dynamicChildren } = n2;
2084		const mount = (vnode, container2, anchor2) => {
2085			if (vnode.shapeFlag & 16) mountChildren(vnode.children, container2, anchor2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
2086		};
2087		const mountToTarget = (vnode = n2) => {
2088			const disabled2 = isTeleportDisabled(vnode.props);
2089			const target = vnode.target = resolveTarget(vnode.props, querySelector);
2090			const targetAnchor = prepareAnchor(target, vnode, createText, insert);
2091			if (target) {
2092				if (namespace !== "svg" && isTargetSVG(target)) namespace = "svg";
2093				else if (namespace !== "mathml" && isTargetMathML(target)) namespace = "mathml";
2094				if (parentComponent && parentComponent.isCE) (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);
2095				if (!disabled2) {
2096					mount(vnode, target, targetAnchor);
2097					updateCssVars(vnode, false);
2098				}
2099			}
2100		};
2101		const queuePendingMount = (vnode) => {
2102			const mountJob = () => {
2103				if (pendingMounts.get(vnode) !== mountJob) return;
2104				pendingMounts.delete(vnode);
2105				if (isTeleportDisabled(vnode.props)) {
2106					const mountContainer = parentNode(vnode.el) || container;
2107					mount(vnode, mountContainer, vnode.anchor);
2108					updateCssVars(vnode, true);
2109				}
2110				mountToTarget(vnode);
2111			};
2112			pendingMounts.set(vnode, mountJob);
2113			queuePostRenderEffect(mountJob, parentSuspense);
2114		};
2115		if (n1 == null) {
2116			const placeholder = n2.el = createText("");
2117			const mainAnchor = n2.anchor = createText("");
2118			insert(placeholder, container, anchor);
2119			insert(mainAnchor, container, anchor);
2120			if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {
2121				queuePendingMount(n2);
2122				return;
2123			}
2124			if (disabled) {
2125				mount(n2, container, mainAnchor);
2126				updateCssVars(n2, true);
2127			}
2128			mountToTarget();
2129		} else {
2130			n2.el = n1.el;
2131			const mainAnchor = n2.anchor = n1.anchor;
2132			const pendingMount = pendingMounts.get(n1);
2133			if (pendingMount) {
2134				pendingMount.flags |= 8;
2135				pendingMounts.delete(n1);
2136				queuePendingMount(n2);
2137				return;
2138			}
2139			n2.targetStart = n1.targetStart;
2140			const target = n2.target = n1.target;
2141			const targetAnchor = n2.targetAnchor = n1.targetAnchor;
2142			const wasDisabled = isTeleportDisabled(n1.props);
2143			const currentContainer = wasDisabled ? container : target;
2144			const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;
2145			if (namespace === "svg" || isTargetSVG(target)) namespace = "svg";
2146			else if (namespace === "mathml" || isTargetMathML(target)) namespace = "mathml";
2147			if (dynamicChildren) {
2148				patchBlockChildren(n1.dynamicChildren, dynamicChildren, currentContainer, parentComponent, parentSuspense, namespace, slotScopeIds);
2149				traverseStaticChildren(n1, n2, true);
2150			} else if (!optimized) patchChildren(n1, n2, currentContainer, currentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, false);
2151			if (disabled) {
2152				if (!wasDisabled) moveTeleport(n2, container, mainAnchor, internals, 1);
2153				else if (n2.props && n1.props && n2.props.to !== n1.props.to) n2.props.to = n1.props.to;
2154			} else if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {
2155				const nextTarget = resolveTarget(n2.props, querySelector);
2156				if (nextTarget) {
2157					n2.target = nextTarget;
2158					moveTeleport(n2, nextTarget, null, internals, 0);
2159				}
2160			} else if (wasDisabled) moveTeleport(n2, target, targetAnchor, internals, 1);
2161			updateCssVars(n2, disabled);
2162		}
2163	},
2164	remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
2165		const { shapeFlag, children, anchor, targetStart, targetAnchor, target, props } = vnode;
2166		const disabled = isTeleportDisabled(props);
2167		const shouldRemove = doRemove || !disabled;
2168		const pendingMount = pendingMounts.get(vnode);
2169		if (pendingMount) {
2170			pendingMount.flags |= 8;
2171			pendingMounts.delete(vnode);
2172		}
2173		if (target) {
2174			hostRemove(targetStart);
2175			hostRemove(targetAnchor);
2176		}
2177		doRemove && hostRemove(anchor);
2178		if (!pendingMount && (disabled || target) && shapeFlag & 16) for (let i = 0; i < children.length; i++) {
2179			const child = children[i];
2180			unmount(child, parentComponent, parentSuspense, shouldRemove, !!child.dynamicChildren);
2181		}
2182	},
2183	move: moveTeleport,
2184	hydrate: hydrateTeleport
2185};
2186function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {
2187	if (moveType === 0) insert(vnode.targetAnchor, container, parentAnchor);
2188	const { el, anchor, shapeFlag, children, props } = vnode;
2189	const isReorder = moveType === 2;
2190	if (isReorder) insert(el, container, parentAnchor);
2191	if (!pendingMounts.has(vnode) && (!isReorder || isTeleportDisabled(props))) {
2192		if (shapeFlag & 16) for (let i = 0; i < children.length; i++) move(children[i], container, parentAnchor, 2);
2193	}
2194	if (isReorder) insert(anchor, container, parentAnchor);
2195}
2196function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { o: { nextSibling, parentNode, querySelector, insert, createText } }, hydrateChildren) {
2197	function hydrateAnchor(target2, targetNode) {
2198		let targetAnchor = targetNode;
2199		while (targetAnchor) {
2200			if (targetAnchor && targetAnchor.nodeType === 8) {
2201				if (targetAnchor.data === "teleport start anchor") vnode.targetStart = targetAnchor;
2202				else if (targetAnchor.data === "teleport anchor") {
2203					vnode.targetAnchor = targetAnchor;
2204					target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
2205					break;
2206				}
2207			}
2208			targetAnchor = nextSibling(targetAnchor);
2209		}
2210	}
2211	function hydrateDisabledTeleport(node2, vnode2) {
2212		vnode2.anchor = hydrateChildren(nextSibling(node2), vnode2, parentNode(node2), parentComponent, parentSuspense, slotScopeIds, optimized);
2213	}
2214	const target = vnode.target = resolveTarget(vnode.props, querySelector);
2215	const disabled = isTeleportDisabled(vnode.props);
2216	if (target) {
2217		const targetNode = target._lpa || target.firstChild;
2218		if (vnode.shapeFlag & 16) {
2219			if (disabled) {
2220				hydrateDisabledTeleport(node, vnode);
2221				hydrateAnchor(target, targetNode);
2222				if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
2223			} else {
2224				vnode.anchor = nextSibling(node);
2225				hydrateAnchor(target, targetNode);
2226				if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
2227				hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
2228			}
2229		}
2230		updateCssVars(vnode, disabled);
2231	} else if (disabled) {
2232		if (vnode.shapeFlag & 16) {
2233			hydrateDisabledTeleport(node, vnode);
2234			vnode.targetStart = node;
2235			vnode.targetAnchor = nextSibling(node);
2236		}
2237	}
2238	return vnode.anchor && nextSibling(vnode.anchor);
2239}
2240var Teleport = TeleportImpl;
2241function updateCssVars(vnode, isDisabled) {
2242	const ctx = vnode.ctx;
2243	if (ctx && ctx.ut) {
2244		let node, anchor;
2245		if (isDisabled) {
2246			node = vnode.el;
2247			anchor = vnode.anchor;
2248		} else {
2249			node = vnode.targetStart;
2250			anchor = vnode.targetAnchor;
2251		}
2252		while (node && node !== anchor) {
2253			if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid);
2254			node = node.nextSibling;
2255		}
2256		ctx.ut();
2257	}
2258}
2259function prepareAnchor(target, vnode, createText, insert, anchor = null) {
2260	const targetStart = vnode.targetStart = createText("");
2261	const targetAnchor = vnode.targetAnchor = createText("");
2262	targetStart[TeleportEndKey] = targetAnchor;
2263	if (target) {
2264		insert(targetStart, target, anchor);
2265		insert(targetAnchor, target, anchor);
2266	}
2267	return targetAnchor;
2268}
2269var leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb");
2270var enterCbKey = /* @__PURE__ */ Symbol("_enterCb");
2271function useTransitionState() {
2272	const state = {
2273		isMounted: false,
2274		isLeaving: false,
2275		isUnmounting: false,
2276		leavingVNodes: /* @__PURE__ */ new Map()
2277	};
2278	onMounted(() => {
2279		state.isMounted = true;
2280	});
2281	onBeforeUnmount(() => {
2282		state.isUnmounting = true;
2283	});
2284	return state;
2285}
2286var TransitionHookValidator = [Function, Array];
2287var BaseTransitionPropsValidators = {
2288	mode: String,
2289	appear: Boolean,
2290	persisted: Boolean,
2291	onBeforeEnter: TransitionHookValidator,
2292	onEnter: TransitionHookValidator,
2293	onAfterEnter: TransitionHookValidator,
2294	onEnterCancelled: TransitionHookValidator,
2295	onBeforeLeave: TransitionHookValidator,
2296	onLeave: TransitionHookValidator,
2297	onAfterLeave: TransitionHookValidator,
2298	onLeaveCancelled: TransitionHookValidator,
2299	onBeforeAppear: TransitionHookValidator,
2300	onAppear: TransitionHookValidator,
2301	onAfterAppear: TransitionHookValidator,
2302	onAppearCancelled: TransitionHookValidator
2303};
2304var recursiveGetSubtree = (instance) => {
2305	const subTree = instance.subTree;
2306	return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
2307};
2308var BaseTransitionImpl = {
2309	name: `BaseTransition`,
2310	props: BaseTransitionPropsValidators,
2311	setup(props, { slots }) {
2312		const instance = getCurrentInstance();
2313		const state = useTransitionState();
2314		return () => {
2315			const children = slots.default && getTransitionRawChildren(slots.default(), true);
2316			const child = children && children.length ? findNonCommentChild(children) : instance.subTree ? createCommentVNode() : void 0;
2317			if (!child) return;
2318			const rawProps = /* @__PURE__ */ toRaw(props);
2319			const { mode } = rawProps;
2320			if (state.isLeaving) return emptyPlaceholder(child);
2321			const innerChild = getInnerChild$1(child);
2322			if (!innerChild) return emptyPlaceholder(child);
2323			let enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance, (hooks) => enterHooks = hooks);
2324			if (innerChild.type !== Comment) setTransitionHooks(innerChild, enterHooks);
2325			let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
2326			if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
2327				let leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);
2328				setTransitionHooks(oldInnerChild, leavingHooks);
2329				if (mode === "out-in" && innerChild.type !== Comment) {
2330					state.isLeaving = true;
2331					leavingHooks.afterLeave = () => {
2332						state.isLeaving = false;
2333						if (!(instance.job.flags & 8)) instance.update();
2334						delete leavingHooks.afterLeave;
2335						oldInnerChild = void 0;
2336					};
2337					return emptyPlaceholder(child);
2338				} else if (mode === "in-out" && innerChild.type !== Comment) leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
2339					const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);
2340					leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
2341					el[leaveCbKey] = () => {
2342						earlyRemove();
2343						el[leaveCbKey] = void 0;
2344						delete enterHooks.delayedLeave;
2345						oldInnerChild = void 0;
2346					};
2347					enterHooks.delayedLeave = () => {
2348						delayedLeave();
2349						delete enterHooks.delayedLeave;
2350						oldInnerChild = void 0;
2351					};
2352				};
2353				else oldInnerChild = void 0;
2354			} else if (oldInnerChild) oldInnerChild = void 0;
2355			return child;
2356		};
2357	}
2358};
2359function findNonCommentChild(children) {
2360	let child = children[0];
2361	if (children.length > 1) {
2362		for (const c of children) if (c.type !== Comment) {
2363			child = c;
2364			break;
2365		}
2366	}
2367	return child;
2368}
2369var BaseTransition = BaseTransitionImpl;
2370function getLeavingNodesForType(state, vnode) {
2371	const { leavingVNodes } = state;
2372	let leavingVNodesCache = leavingVNodes.get(vnode.type);
2373	if (!leavingVNodesCache) {
2374		leavingVNodesCache = /* @__PURE__ */ Object.create(null);
2375		leavingVNodes.set(vnode.type, leavingVNodesCache);
2376	}
2377	return leavingVNodesCache;
2378}
2379function resolveTransitionHooks(vnode, props, state, instance, postClone) {
2380	const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;
2381	const key = String(vnode.key);
2382	const leavingVNodesCache = getLeavingNodesForType(state, vnode);
2383	const callHook = (hook, args) => {
2384		hook && callWithAsyncErrorHandling(hook, instance, 9, args);
2385	};
2386	const callAsyncHook = (hook, args) => {
2387		const done = args[1];
2388		callHook(hook, args);
2389		if (isArray(hook)) {
2390			if (hook.every((hook2) => hook2.length <= 1)) done();
2391		} else if (hook.length <= 1) done();
2392	};
2393	const hooks = {
2394		mode,
2395		persisted,
2396		beforeEnter(el) {
2397			let hook = onBeforeEnter;
2398			if (!state.isMounted) {
2399				if (appear) hook = onBeforeAppear || onBeforeEnter;
2400				else return;
2401			}
2402			if (el[leaveCbKey]) el[leaveCbKey](true);
2403			const leavingVNode = leavingVNodesCache[key];
2404			if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) leavingVNode.el[leaveCbKey]();
2405			callHook(hook, [el]);
2406		},
2407		enter(el) {
2408			if (leavingVNodesCache[key] === vnode) return;
2409			let hook = onEnter;
2410			let afterHook = onAfterEnter;
2411			let cancelHook = onEnterCancelled;
2412			if (!state.isMounted) {
2413				if (appear) {
2414					hook = onAppear || onEnter;
2415					afterHook = onAfterAppear || onAfterEnter;
2416					cancelHook = onAppearCancelled || onEnterCancelled;
2417				} else return;
2418			}
2419			let called = false;
2420			el[enterCbKey] = (cancelled) => {
2421				if (called) return;
2422				called = true;
2423				if (cancelled) callHook(cancelHook, [el]);
2424				else callHook(afterHook, [el]);
2425				if (hooks.delayedLeave) hooks.delayedLeave();
2426				el[enterCbKey] = void 0;
2427			};
2428			const done = el[enterCbKey].bind(null, false);
2429			if (hook) callAsyncHook(hook, [el, done]);
2430			else done();
2431		},
2432		leave(el, remove) {
2433			const key2 = String(vnode.key);
2434			if (el[enterCbKey]) el[enterCbKey](true);
2435			if (state.isUnmounting) return remove();
2436			callHook(onBeforeLeave, [el]);
2437			let called = false;
2438			el[leaveCbKey] = (cancelled) => {
2439				if (called) return;
2440				called = true;
2441				remove();
2442				if (cancelled) callHook(onLeaveCancelled, [el]);
2443				else callHook(onAfterLeave, [el]);
2444				el[leaveCbKey] = void 0;
2445				if (leavingVNodesCache[key2] === vnode) delete leavingVNodesCache[key2];
2446			};
2447			const done = el[leaveCbKey].bind(null, false);
2448			leavingVNodesCache[key2] = vnode;
2449			if (onLeave) callAsyncHook(onLeave, [el, done]);
2450			else done();
2451		},
2452		clone(vnode2) {
2453			const hooks2 = resolveTransitionHooks(vnode2, props, state, instance, postClone);
2454			if (postClone) postClone(hooks2);
2455			return hooks2;
2456		}
2457	};
2458	return hooks;
2459}
2460function emptyPlaceholder(vnode) {
2461	if (isKeepAlive(vnode)) {
2462		vnode = cloneVNode(vnode);
2463		vnode.children = null;
2464		return vnode;
2465	}
2466}
2467function getInnerChild$1(vnode) {
2468	if (!isKeepAlive(vnode)) {
2469		if (isTeleport(vnode.type) && vnode.children) return findNonCommentChild(vnode.children);
2470		return vnode;
2471	}
2472	if (vnode.component) return vnode.component.subTree;
2473	const { shapeFlag, children } = vnode;
2474	if (children) {
2475		if (shapeFlag & 16) return children[0];
2476		if (shapeFlag & 32 && isFunction(children.default)) return children.default();
2477	}
2478}
2479function setTransitionHooks(vnode, hooks) {
2480	if (vnode.shapeFlag & 6 && vnode.component) {
2481		vnode.transition = hooks;
2482		const subTree = vnode.component.subTree;
2483		setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
2484	} else if (vnode.shapeFlag & 128) {
2485		vnode.ssContent.transition = hooks.clone(vnode.ssContent);
2486		vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
2487	} else vnode.transition = hooks;
2488}
2489function getTransitionRawChildren(children, keepComment = false, parentKey) {
2490	let ret = [];
2491	let keyedFragmentCount = 0;
2492	for (let i = 0; i < children.length; i++) {
2493		let child = children[i];
2494		const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);
2495		if (child.type === Fragment) {
2496			if (child.patchFlag & 128) keyedFragmentCount++;
2497			ret = ret.concat(getTransitionRawChildren(child.children, keepComment, key));
2498		} else if (keepComment || child.type !== Comment) ret.push(key != null ? cloneVNode(child, { key }) : child);
2499	}
2500	if (keyedFragmentCount > 1) for (let i = 0; i < ret.length; i++) ret[i].patchFlag = -2;
2501	return ret;
2502}
2503// @__NO_SIDE_EFFECTS__
2504function defineComponent(options, extraOptions) {
2505	return isFunction(options) ? /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))() : options;
2506}
2507function useId() {
2508	const i = getCurrentInstance();
2509	if (i) return (i.appContext.config.idPrefix || "v") + "-" + i.ids[0] + i.ids[1]++;
2510	return "";
2511}
2512function markAsyncBoundary(instance) {
2513	instance.ids = [
2514		instance.ids[0] + instance.ids[2]++ + "-",
2515		0,
2516		0
2517	];
2518}
2519function useTemplateRef(key) {
2520	const i = getCurrentInstance();
2521	const r = /* @__PURE__ */ shallowRef(null);
2522	if (i) {
2523		const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;
2524		Object.defineProperty(refs, key, {
2525			enumerable: true,
2526			get: () => r.value,
2527			set: (val) => r.value = val
2528		});
2529	}
2530	return r;
2531}
2532function isTemplateRefKey(refs, key) {
2533	let desc;
2534	return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);
2535}
2536var pendingSetRefMap = /* @__PURE__ */ new WeakMap();
2537function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
2538	if (isArray(rawRef)) {
2539		rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode, isUnmount));
2540		return;
2541	}
2542	if (isAsyncWrapper(vnode) && !isUnmount) {
2543		if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);
2544		return;
2545	}
2546	const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;
2547	const value = isUnmount ? null : refValue;
2548	const { i: owner, r: ref } = rawRef;
2549	const oldRef = oldRawRef && oldRawRef.r;
2550	const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;
2551	const setupState = owner.setupState;
2552	const rawSetupState = /* @__PURE__ */ toRaw(setupState);
2553	const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {
2554		if (isTemplateRefKey(refs, key)) return false;
2555		return hasOwn(rawSetupState, key);
2556	};
2557	const canSetRef = (ref2, key) => {
2558		if (key && isTemplateRefKey(refs, key)) return false;
2559		return true;
2560	};
2561	if (oldRef != null && oldRef !== ref) {
2562		invalidatePendingSetRef(oldRawRef);
2563		if (isString(oldRef)) {
2564			refs[oldRef] = null;
2565			if (canSetSetupRef(oldRef)) setupState[oldRef] = null;
2566		} else if (/* @__PURE__ */ isRef(oldRef)) {
2567			const oldRawRefAtom = oldRawRef;
2568			if (canSetRef(oldRef, oldRawRefAtom.k)) oldRef.value = null;
2569			if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
2570		}
2571	}
2572	if (isFunction(ref)) callWithErrorHandling(ref, owner, 12, [value, refs]);
2573	else {
2574		const _isString = isString(ref);
2575		const _isRef = /* @__PURE__ */ isRef(ref);
2576		if (_isString || _isRef) {
2577			const doSet = () => {
2578				if (rawRef.f) {
2579					const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
2580					if (isUnmount) isArray(existing) && remove(existing, refValue);
2581					else if (!isArray(existing)) {
2582						if (_isString) {
2583							refs[ref] = [refValue];
2584							if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
2585						} else {
2586							const newVal = [refValue];
2587							if (canSetRef(ref, rawRef.k)) ref.value = newVal;
2588							if (rawRef.k) refs[rawRef.k] = newVal;
2589						}
2590					} else if (!existing.includes(refValue)) existing.push(refValue);
2591				} else if (_isString) {
2592					refs[ref] = value;
2593					if (canSetSetupRef(ref)) setupState[ref] = value;
2594				} else if (_isRef) {
2595					if (canSetRef(ref, rawRef.k)) ref.value = value;
2596					if (rawRef.k) refs[rawRef.k] = value;
2597				}
2598			};
2599			if (value) {
2600				const job = () => {
2601					doSet();
2602					pendingSetRefMap.delete(rawRef);
2603				};
2604				job.id = -1;
2605				pendingSetRefMap.set(rawRef, job);
2606				queuePostRenderEffect(job, parentSuspense);
2607			} else {
2608				invalidatePendingSetRef(rawRef);
2609				doSet();
2610			}
2611		}
2612	}
2613}
2614function invalidatePendingSetRef(rawRef) {
2615	const pendingSetRef = pendingSetRefMap.get(rawRef);
2616	if (pendingSetRef) {
2617		pendingSetRef.flags |= 8;
2618		pendingSetRefMap.delete(rawRef);
2619	}
2620}
2621var hasLoggedMismatchError = false;
2622var logMismatchError = () => {
2623	if (hasLoggedMismatchError) return;
2624	console.error("Hydration completed but contains mismatches.");
2625	hasLoggedMismatchError = true;
2626};
2627var isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
2628var isMathMLContainer = (container) => container.namespaceURI.includes("MathML");
2629var getContainerType = (container) => {
2630	if (container.nodeType !== 1) return void 0;
2631	if (isSVGContainer(container)) return "svg";
2632	if (isMathMLContainer(container)) return "mathml";
2633};
2634var isComment = (node) => node.nodeType === 8;
2635function createHydrationFunctions(rendererInternals) {
2636	const { mt: mountComponent, p: patch, o: { patchProp, createText, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;
2637	const hydrate = (vnode, container) => {
2638		if (!container.hasChildNodes()) {
2639			warn$1(`Attempting to hydrate existing markup but container is empty. Performing full mount instead.`);
2640			patch(null, vnode, container);
2641			flushPostFlushCbs();
2642			container._vnode = vnode;
2643			return;
2644		}
2645		hydrateNode(container.firstChild, vnode, null, null, null);
2646		flushPostFlushCbs();
2647		container._vnode = vnode;
2648	};
2649	const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
2650		optimized = optimized || !!vnode.dynamicChildren;
2651		const isFragmentStart = isComment(node) && node.data === "[";
2652		const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);
2653		const { type, ref, shapeFlag, patchFlag } = vnode;
2654		let domType = node.nodeType;
2655		vnode.el = node;
2656		if (patchFlag === -2) {
2657			optimized = false;
2658			vnode.dynamicChildren = null;
2659		}
2660		let nextNode = null;
2661		switch (type) {
2662			case Text:
2663				if (domType !== 3) {
2664					if (vnode.children === "") {
2665						insert(vnode.el = createText(""), parentNode(node), node);
2666						nextNode = node;
2667					} else nextNode = onMismatch();
2668				} else {
2669					if (node.data !== vnode.children) {
2670						warn$1(`Hydration text mismatch in`, node.parentNode, `
2671  - rendered on server: ${JSON.stringify(node.data)}
2672  - expected on client: ${JSON.stringify(vnode.children)}`);
2673						logMismatchError();
2674						node.data = vnode.children;
2675					}
2676					nextNode = nextSibling(node);
2677				}
2678				break;
2679			case Comment:
2680				if (isTemplateNode(node)) {
2681					nextNode = nextSibling(node);
2682					replaceNode(vnode.el = node.content.firstChild, node, parentComponent);
2683				} else if (domType !== 8 || isFragmentStart) nextNode = onMismatch();
2684				else nextNode = nextSibling(node);
2685				break;
2686			case Static:
2687				if (isFragmentStart) {
2688					node = nextSibling(node);
2689					domType = node.nodeType;
2690				}
2691				if (domType === 1 || domType === 3) {
2692					nextNode = node;
2693					const needToAdoptContent = !vnode.children.length;
2694					for (let i = 0; i < vnode.staticCount; i++) {
2695						if (needToAdoptContent) vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;
2696						if (i === vnode.staticCount - 1) vnode.anchor = nextNode;
2697						nextNode = nextSibling(nextNode);
2698					}
2699					return isFragmentStart ? nextSibling(nextNode) : nextNode;
2700				} else onMismatch();
2701				break;
2702			case Fragment:
2703				if (!isFragmentStart) nextNode = onMismatch();
2704				else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
2705				break;
2706			default: if (shapeFlag & 1) {
2707				if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) nextNode = onMismatch();
2708				else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
2709			} else if (shapeFlag & 6) {
2710				vnode.slotScopeIds = slotScopeIds;
2711				const container = parentNode(node);
2712				if (isFragmentStart) nextNode = locateClosingAnchor(node);
2713				else if (isComment(node) && node.data === "teleport start") 
2713nextNode = locateClosingAnchor(node, node.data, "teleport end");
2714				else nextNode = nextSibling(node);
2715				mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
2716				if ((isAsyncWrapper(vnode) || vnode.component.asyncDep) && !vnode.component.subTree) {
2717					let subTree;
2718					if (isFragmentStart) {
2719						subTree = createVNode(Static);
2720						subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
2721					} else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(node.nodeType === 8 ? Comment : "div");
2722					subTree.el = node;
2723					vnode.component.subTree = subTree;
2724				}
2725			} else if (shapeFlag & 64) {
2726				if (domType !== 8) nextNode = onMismatch();
2727				else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
2728			} else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
2729			else warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
2730		}
2731		if (ref != null) setRef(ref, null, parentSuspense, vnode);
2732		return nextNode;
2733	};
2734	const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {
2735		optimized = optimized || !!vnode.dynamicChildren;
2736		const { type, dynamicProps, props, patchFlag, shapeFlag, dirs, transition } = vnode;
2737		const forcePatch = type === "input" || type === "option";
2738		if (forcePatch || !!dynamicProps || patchFlag !== -1) {
2739			if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "created");
2740			let needCallTransitionHooks = false;
2741			if (isTemplateNode(el)) {
2742				needCallTransitionHooks = needTransition(null, transition) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
2743				const content = el.content.firstChild;
2744				if (needCallTransitionHooks) {
2745					const cls = content.getAttribute("class");
2746					if (cls) content.$cls = cls;
2747					transition.beforeEnter(content);
2748				}
2749				replaceNode(content, el, parentComponent);
2750				vnode.el = el = content;
2751			}
2752			if (shapeFlag & 16 && !(props && (props.innerHTML || props.textContent))) {
2753				let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized);
2754				if (next && !isMismatchAllowed(el, 1)) {
2755					warn$1(`Hydration children mismatch on`, el, `
2756Server rendered element contains more child nodes than client vdom.`);
2757					logMismatchError();
2758				}
2759				while (next) {
2760					const cur = next;
2761					next = next.nextSibling;
2762					remove(cur);
2763				}
2764			} else if (shapeFlag & 8) {
2765				let clientText = vnode.children;
2766				if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) clientText = clientText.slice(1);
2767				const { textContent } = el;
2768				if (textContent !== clientText && textContent !== clientText.replace(/\r\n|\r/g, "\n")) {
2769					if (!isMismatchAllowed(el, 0)) {
2770						warn$1(`Hydration text content mismatch on`, el, `
2771  - rendered on server: ${textContent}
2772  - expected on client: ${clientText}`);
2773						logMismatchError();
2774					}
2775					el.textContent = vnode.children;
2776				}
2777			}
2778			if (props) {
2779				const isCustomElement = el.tagName.includes("-");
2780				const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
2781				for (const key in props) {
2782					if (!(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) logMismatchError();
2783					if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
2784						if (isUnchangedResourceProp(el, key, props[key])) continue;
2785						patchProp(el, key, null, props[key], namespace, parentComponent);
2786					}
2787				}
2788			}
2789			let vnodeHooks;
2790			if (vnodeHooks = props && props.onVnodeBeforeMount) invokeVNodeHook(vnodeHooks, parentComponent, vnode);
2791			if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
2792			if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) queueEffectWithSuspense(() => {
2793				vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);
2794				needCallTransitionHooks && transition.enter(el);
2795				dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
2796			}, parentSuspense);
2797		}
2798		return el.nextSibling;
2799	};
2800	const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {
2801		optimized = optimized || !!parentVNode.dynamicChildren;
2802		const children = parentVNode.children;
2803		const l = children.length;
2804		let hasCheckedMismatch = false;
2805		for (let i = 0; i < l; i++) {
2806			const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);
2807			const isText = vnode.type === Text;
2808			if (node) {
2809				if (isText && !optimized) {
2810					if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {
2811						insert(createText(node.data.slice(vnode.children.length)), container, nextSibling(node));
2812						node.data = vnode.children;
2813					}
2814				}
2815				node = hydrateNode(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
2816			} else if (isText && !vnode.children) insert(vnode.el = createText(""), container);
2817			else {
2818				if (!hasCheckedMismatch) {
2819					hasCheckedMismatch = true;
2820					if (!isMismatchAllowed(container, 1)) {
2821						warn$1(`Hydration children mismatch on`, container, `
2822Server rendered element contains fewer child nodes than client vdom.`);
2823						logMismatchError();
2824					}
2825				}
2826				patch(null, vnode, container, null, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
2827			}
2828		}
2829		return node;
2830	};
2831	const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {
2832		const { slotScopeIds: fragmentSlotScopeIds } = vnode;
2833		if (fragmentSlotScopeIds) slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
2834		const container = parentNode(node);
2835		const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
2836		if (next && isComment(next) && next.data === "]") return nextSibling(vnode.anchor = next);
2837		else {
2838			logMismatchError();
2839			insert(vnode.anchor = createComment(`]`), container, next);
2840			return next;
2841		}
2842	};
2843	const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
2844		if (!isNodeMismatchAllowed(node, vnode)) {
2845			warn$1(`Hydration node mismatch:
2846- rendered on server:`, node, node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, `
2847- expected on client:`, vnode.type);
2848			logMismatchError();
2849		}
2850		vnode.el = null;
2851		if (isFragment) {
2852			const end = locateClosingAnchor(node);
2853			while (true) {
2854				const next2 = nextSibling(node);
2855				if (next2 && next2 !== end) remove(next2);
2856				else break;
2857			}
2858		}
2859		const next = nextSibling(node);
2860		const container = parentNode(node);
2861		remove(node);
2862		patch(null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
2863		if (parentComponent) {
2864			parentComponent.vnode.el = vnode.el;
2865			updateHOCHostEl(parentComponent, vnode.el);
2866		}
2867		return next;
2868	};
2869	const locateClosingAnchor = (node, open = "[", close = "]") => {
2870		let match = 0;
2871		while (node) {
2872			node = nextSibling(node);
2873			if (node && isComment(node)) {
2874				if (node.data === open) match++;
2875				if (node.data === close) {
2876					if (match === 0) return nextSibling(node);
2877					else match--;
2878				}
2879			}
2880		}
2881		return node;
2882	};
2883	const replaceNode = (newNode, oldNode, parentComponent) => {
2884		const parentNode2 = oldNode.parentNode;
2885		if (parentNode2) parentNode2.replaceChild(newNode, oldNode);
2886		let parent = parentComponent;
2887		while (parent) {
2888			if (parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
2889			parent = parent.parent;
2890		}
2891	};
2892	const isTemplateNode = (node) => {
2893		return node.nodeType === 1 && node.tagName === "TEMPLATE";
2894	};
2895	return [hydrate, hydrateNode];
2896}
2897var resourceProps = /* @__PURE__ */ new Set([
2898	"src",
2899	"srcset",
2900	"href",
2901	"poster"
2902]);
2903function isUnchangedResourceProp(el, key, clientValue) {
2904	if (!resourceProps.has(key)) return false;
2905	return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
2906}
2907function propHasMismatch(el, key, clientValue, vnode, instance) {
2908	let mismatchType;
2909	let mismatchKey;
2910	let actual;
2911	let expected;
2912	if (key === "class") {
2913		if (el.$cls) {
2914			actual = el.$cls;
2915			delete el.$cls;
2916		} else actual = el.getAttribute("class");
2917		expected = normalizeClass(clientValue);
2918		if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) {
2919			mismatchType = 2;
2920			mismatchKey = `class`;
2921		}
2922	} else if (key === "style") {
2923		actual = el.getAttribute("style") || "";
2924		expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));
2925		const actualMap = toStyleMap(actual);
2926		const expectedMap = toStyleMap(expected);
2927		if (vnode.dirs) {
2928			for (const { dir, value } of vnode.dirs) if (dir.name === "show" && !value) expectedMap.set("display", "none");
2929		}
2930		if (instance) resolveCssVars(instance, vnode, expectedMap);
2931		if (!isMapEqual(actualMap, expectedMap)) {
2932			mismatchType = 3;
2933			mismatchKey = "style";
2934		}
2935	} else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {
2936		if (key === "hidden") {
2937			actual = normalizeHiddenValue(el.getAttribute(key));
2938			expected = normalizeHiddenValue(clientValue);
2939		} else if (isBooleanAttr(key)) {
2940			actual = el.hasAttribute(key);
2941			expected = includeBooleanAttr(clientValue);
2942		} else if (clientValue == null) {
2943			actual = el.hasAttribute(key);
2944			expected = false;
2945		} else {
2946			if (el.hasAttribute(key)) actual = el.getAttribute(key);
2947			else if (key === "value" && el.tagName === "TEXTAREA") actual = el.value;
2948			else actual = false;
2949			expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;
2950		}
2951		if (actual !== expected) {
2952			mismatchType = 4;
2953			mismatchKey = key;
2954		}
2955	}
2956	if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {
2957		const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`;
2958		warn$1(`Hydration ${MismatchTypeString[mismatchType]} mismatch on`, el, `
2959  - rendered on server: ${format(actual)}
2960  - expected on client: ${format(expected)}
2961  Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.
2962  You should fix the source of the mismatch.`);
2963		return true;
2964	}
2965	return false;
2966}
2967function normalizeHiddenValue(value) {
2968	if (!isRenderableAttrValue(value)) return false;
2969	if (isString(value)) return value.toLowerCase() === "until-found" ? "until-found" : "";
2970	return includeBooleanAttr(value) ? "" : false;
2971}
2972function toClassSet(str) {
2973	return new Set(str.trim().split(/\s+/));
2974}
2975function isSetEqual(a, b) {
2976	if (a.size !== b.size) return false;
2977	for (const s of a) if (!b.has(s)) return false;
2978	return true;
2979}
2980function toStyleMap(str) {
2981	const styleMap = /* @__PURE__ */ new Map();
2982	for (const item of str.split(";")) {
2983		let [key, value] = item.split(":");
2984		key = key.trim();
2985		value = value && value.trim();
2986		if (key && value) styleMap.set(key, value);
2987	}
2988	return styleMap;
2989}
2990function isMapEqual(a, b) {
2991	if (a.size !== b.size) return false;
2992	for (const [key, value] of a) if (value !== b.get(key)) return false;
2993	return true;
2994}
2995function resolveCssVars(instance, vnode, expectedMap) {
2996	const root = instance.subTree;
2997	if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {
2998		const cssVars = instance.getCssVars();
2999		for (const key in cssVars) {
3000			const value = normalizeCssVarValue(cssVars[key]);
3001			expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value);
3002		}
3003	}
3004	if (vnode === root && instance.parent) resolveCssVars(instance.parent, instance.vnode, expectedMap);
3005}
3006var allowMismatchAttr = "data-allow-mismatch";
3007var MismatchTypeString = {
3008	[0]: "text",
3009	[1]: "children",
3010	[2]: "class",
3011	[3]: "style",
3012	[4]: "attribute"
3013};
3014function isMismatchAllowed(el, allowedType) {
3015	if (allowedType === 0 || allowedType === 1) while (el && !el.hasAttribute(allowMismatchAttr)) el = el.parentElement;
3016	return isMismatchAllowedByAttr(el && el.getAttribute(allowMismatchAttr), allowedType);
3017}
3018function isMismatchAllowedByAttr(allowedAttr, allowedType) {
3019	if (allowedAttr == null) return false;
3020	else if (allowedAttr === "") return true;
3021	else {
3022		const list = allowedAttr.split(",");
3023		if (allowedType === 0 && list.includes("children")) return true;
3024		return list.includes(MismatchTypeString[allowedType]);
3025	}
3026}
3027function isNodeMismatchAllowed(node, vnode) {
3028	return isMismatchAllowed(node.parentElement, 1) || isMismatchAllowedByNode(node) || isMismatchAllowedByVNode(vnode);
3029}
3030function isMismatchAllowedByNode(node) {
3031	return node.nodeType === 1 && isMismatchAllowedByAttr(node.getAttribute(allowMismatchAttr), 1);
3032}
3033function isMismatchAllowedByVNode({ props }) {
3034	const allowedAttr = props && props[allowMismatchAttr];
3035	return typeof allowedAttr === "string" && isMismatchAllowedByAttr(allowedAttr, 1);
3036}
3037getGlobalThis().requestIdleCallback;
3038getGlobalThis().cancelIdleCallback;
3039function forEachElement(node, cb) {
3040	if (isComment(node) && node.data === "[") {
3041		let depth = 1;
3042		let next = node.nextSibling;
3043		while (next) {
3044			if (next.nodeType === 1) {
3045				if (cb(next) === false) break;
3046			} else if (isComment(next)) {
3047				if (next.data === "]") {
3048					if (--depth === 0) break;
3049				} else if (next.data === "[") depth++;
3050			}
3051			next = next.nextSibling;
3052		}
3053	} else cb(node);
3054}
3055var isAsyncWrapper = (i) => !!i.type.__asyncLoader;
3056// @__NO_SIDE_EFFECTS__
3057function defineAsyncComponent(source) {
3058	if (isFunction(source)) source = { loader: source };
3059	const { loader, loadingComponent, errorComponent, delay = 200, hydrate: hydrateStrategy, timeout, suspensible = true, onError: userOnError } = source;
3060	let pendingRequest = null;
3061	let resolvedComp;
3062	let retries = 0;
3063	const retry = () => {
3064		retries++;
3065		pendingRequest = null;
3066		return load();
3067	};
3068	const load = () => {
3069		let thisRequest;
3070		return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {
3071			err = err instanceof Error ? err : new Error(String(err));
3072			if (userOnError) return new Promise((resolve, reject) => {
3073				const userRetry = () => resolve(retry());
3074				const userFail = () => reject(err);
3075				userOnError(err, userRetry, userFail, retries + 1);
3076			});
3077			else throw err;
3078		}).then((comp) => {
3079			if (thisRequest !== pendingRequest && pendingRequest) return pendingRequest;
3080			if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) comp = comp.default;
3081			resolvedComp = comp;
3082			return comp;
3083		}));
3084	};
3085	return /* @__PURE__ */ defineComponent({
3086		name: "AsyncComponentWrapper",
3087		__asyncLoader: load,
3088		__asyncHydrate(el, instance, hydrate) {
3089			const wasConnected = el.isConnected;
3090			let patched = false;
3091			(instance.bu || (instance.bu = [])).push(() => patched = true);
3092			const performHydrate = () => {
3093				if (patched) return;
3094				if (!el.parentNode || wasConnected && !el.isConnected) return;
3095				hydrate();
3096			};
3097			const doHydrate = hydrateStrategy ? () => {
3098				const teardown = hydrateStrategy(performHydrate, (cb) => forEachElement(el, cb));
3099				if (teardown) (instance.bum || (instance.bum = [])).push(teardown);
3100			} : performHydrate;
3101			if (resolvedComp) doHydrate();
3102			else load().then(() => !instance.isUnmounted && doHydrate());
3103		},
3104		get __asyncResolved() {
3105			return resolvedComp;
3106		},
3107		setup() {
3108			const instance = currentInstance;
3109			markAsyncBoundary(instance);
3110			if (resolvedComp) return () => createInnerComp(resolvedComp, instance);
3111			const onError = (err) => {
3112				pendingRequest = null;
3113				handleError(err, instance, 13, !errorComponent);
3114			};
3115			if (suspensible && instance.suspense || isInSSRComponentSetup) return load().then((comp) => {
3116				return () => createInnerComp(comp, instance);
3117			}).catch((err) => {
3118				onError(err);
3119				return () => errorComponent ? createVNode(errorComponent, { error: err }) : null;
3120			});
3121			const loaded = /* @__PURE__ */ ref(false);
3122			const error = /* @__PURE__ */ ref();
3123			const delayed = /* @__PURE__ */ ref(!!delay);
3124			let timeoutTimer;
3125			let delayTimer;
3126			onUnmounted(() => {
3127				if (timeoutTimer != null) clearTimeout(timeoutTimer);
3128				if (delayTimer != null) clearTimeout(delayTimer);
3129			});
3130			if (delay) delayTimer = setTimeout(() => {
3131				if (instance.isUnmounted) return;
3132				delayed.value = false;
3133			}, delay);
3134			if (timeout != null) timeoutTimer = setTimeout(() => {
3135				if (instance.isUnmounted) return;
3136				if (!loaded.value && !error.value) {
3137					const err = /* @__PURE__ */ new Error(`Async component timed out after ${timeout}ms.`);
3138					onError(err);
3139					error.value = err;
3140				}
3141			}, timeout);
3142			load().then(() => {
3143				if (instance.isUnmounted) return;
3144				loaded.value = true;
3145				if (instance.parent && isKeepAlive(instance.parent.vnode)) instance.parent.update();
3146			}).catch((err) => {
3147				if (instance.isUnmounted) {
3148					pendingRequest = null;
3149					return;
3150				}
3151				onError(err);
3152				error.value = err;
3153			});
3154			return () => {
3155				if (loaded.value && resolvedComp) return createInnerComp(resolvedComp, instance);
3156				else if (error.value && errorComponent) return createVNode(errorComponent, { error: error.value });
3157				else if (loadingComponent && !delayed.value) return createInnerComp(loadingComponent, instance);
3158			};
3159		}
3160	});
3161}
3162function createInnerComp(comp, parent) {
3163	const { ref: ref2, props, children, ce } = parent.vnode;
3164	const vnode = createVNode(comp, props, children);
3165	vnode.ref = ref2;
3166	vnode.ce = ce;
3167	delete parent.vnode.ce;
3168	return vnode;
3169}
3170var isKeepAlive = (vnode) => vnode.type.__isKeepAlive;
3171function onActivated(hook, target) {
3172	registerKeepAliveHook(hook, "a", target);
3173}
3174function onDeactivated(hook, target) {
3175	registerKeepAliveHook(hook, "da", target);
3176}
3177function registerKeepAliveHook(hook, type, target = currentInstance) {
3178	const wrappedHook = hook.__wdc || (hook.__wdc = () => {
3179		let current = target;
3180		while (current) {
3181			if (current.isDeactivated) return;
3182			current = current.parent;
3183		}
3184		return hook();
3185	});
3186	injectHook(type, wrappedHook, target);
3187	if (target) {
3188		let current = target.parent;
3189		while (current && current.parent) {
3190			if (isKeepAlive(current.parent.vnode)) injectToKeepAliveRoot(wrappedHook, type, target, current);
3191			current = current.parent;
3192		}
3193	}
3194}
3195function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
3196	const injected = injectHook(type, hook, keepAliveRoot, true);
3197	onUnmounted(() => {
3198		remove(keepAliveRoot[type], injected);
3199	}, target);
3200}
3201function injectHook(type, hook, target = currentInstance, prepend = false) {
3202	if (target) {
3203		const hooks = target[type] || (target[type] = []);
3204		const wrappedHook = hook.__weh || (hook.__weh = (...args) => {
3205			pauseTracking();
3206			const reset = setCurrentInstance(target);
3207			const res = callWithAsyncErrorHandling(hook, target, type, args);
3208			reset();
3209			resetTracking();
3210			return res;
3211		});
3212		if (prepend) hooks.unshift(wrappedHook);
3213		else hooks.push(wrappedHook);
3214		return wrappedHook;
3215	}
3216}
3217var createHook = (lifecycle) => (hook, target = currentInstance) => {
3218	if (!isInSSRComponentSetup || lifecycle === "sp") injectHook(lifecycle, (...args) => hook(...args), target);
3219};
3220var onBeforeMount = createHook("bm");
3221var onMounted = createHook("m");
3222var onBeforeUpdate = createHook("bu");
3223var onUpdated = createHook("u");
3224var onBeforeUnmount = createHook("bum");
3225var onUnmounted = createHook("um");
3226var onServerPrefetch = createHook("sp");
3227var onRenderTriggered = createHook("rtg");
3228var onRenderTracked = createHook("rtc");
3229function onErrorCaptured(hook, target = currentInstance) {
3230	injectHook("ec", hook, target);
3231}
3232var COMPONENTS = "components";
3233function resolveComponent(name, maybeSelfReference) {
3234	return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
3235}
3236var NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc");
3237function resolveDynamicComponent(component) {
3238	if (isString(component)) return resolveAsset(COMPONENTS, component, false) || component;
3239	else return component || NULL_DYNAMIC_COMPONENT;
3240}
3241function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {
3242	const instance = currentRenderingInstance || currentInstance;
3243	if (instance) {
3244		const Component = instance.type;
3245		if (type === COMPONENTS) {
3246			const selfName = getComponentName(Component, false);
3247			if (selfName && (selfName === name || selfName === camelize$1(name) || selfName === capitalize(camelize$1(name)))) return Component;
3248		}
3249		const res = resolve(instance[type] || Component[type], name) || resolve(instance.appContext[type], name);
3250		if (!res && maybeSelfReference) return Component;
3251		return res;
3252	}
3253}
3254function resolve(registry, name) {
3255	return registry && (registry[name] || registry[camelize$1(name)] || registry[capitalize(camelize$1(name))]);
3256}
3257function renderList(source, renderItem, cache, index) {
3258	let ret;
3259	const cached = cache && cache[index];
3260	const sourceIsArray = isArray(source);
3261	if (sourceIsArray || isString(source)) {
3262		const sourceIsReactiveArray = sourceIsArray && /* @__PURE__ */ isReactive(source);
3263		let needsWrap = false;
3264		let isReadonlySource = false;
3265		if (sourceIsReactiveArray) {
3266			needsWrap = !/* @__PURE__ */ isShallow(source);
3267			isReadonlySource = /* @__PURE__ */ isReadonly(source);
3268			source = shallowReadArray(source);
3269		}
3270		ret = new Array(source.length);
3271		for (let i = 0, l = source.length; i < l; i++) ret[i] = renderItem(needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i], i, void 0, cached && cached[i]);
3272	} else if (typeof source === "number") {
3273		ret = new Array(source);
3274		for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
3275	} else if (isObject$2(source)) {
3276		if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
3277		else {
3278			const keys = Object.keys(source);
3279			ret = new Array(keys.length);
3280			for (let i = 0, l = keys.length; i < l; i++) {
3281				const key = keys[i];
3282				ret[i] = renderItem(source[key], key, i, cached && cached[i]);
3283			}
3284		}
3285	} else ret = [];
3286	if (cache) cache[index] = ret;
3287	return ret;
3288}
3289function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
3290	if (props == null) props = {};
3291	if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
3292		const slotProps = branchKey != null && props.key == null ? extend({}, props, { key: branchKey }) : props;
3293		const hasProps = Object.keys(slotProps).length > 0;
3294		if (name !== "default") slotProps.name = name;
3295		return openBlock(), createBlock(Fragment, null, [createVNode("slot", slotProps, fallback && fallback())], hasProps ? -2 : 64);
3296	}
3297	let slot = slots[name];
3298	if (slot && slot._c) slot._d = false;
3299	const prevStackSize = blockStack.length;
3300	openBlock();
3301	let rendered;
3302	try {
3303		const validSlotContent = slot && ensureValidVNode(slot(props));
3304		const slotKey = props.key || branchKey || validSlotContent && validSlotContent.key;
3305		rendered = createBlock(Fragment, { key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);
3306	} catch (err) {
3307		for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
3308		throw err;
3309	} finally {
3310		if (slot && slot._c) slot._d = true;
3311	}
3312	if (!noSlotted && rendered.scopeId) rendered.slotScopeIds = [rendered.scopeId + "-s"];
3313	return rendered;
3314}
3315function ensureValidVNode(vnodes) {
3316	return vnodes.some((child) => {
3317		if (!isVNode(child)) return true;
3318		if (child.type === Comment) return false;
3319		if (child.type === Fragment && !ensureValidVNode(child.children)) return false;
3320		return true;
3321	}) ? vnodes : null;
3322}
3323var getPublicInstance = (i) => {
3324	if (!i) return null;
3325	if (isStatefulComponent(i)) return getComponentPublicInstance(i);
3326	return getPublicInstance(i.parent);
3327};
3328var publicPropertiesMap = /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {
3329	$: (i) => i,
3330	$el: (i) => i.vnode.el,
3331	$data: (i) => i.data,
3332	$props: (i) => i.props,
3333	$attrs: (i) => i.attrs,
3334	$slots: (i) => i.slots,
3335	$refs: (i) => i.refs,
3336	$parent: (i) => getPublicInstance(i.parent),
3337	$root: (i) => getPublicInstance(i.root),
3338	$host: (i) => i.ce,
3339	$emit: (i) => i.emit,
3340	$options: (i) => resolveMergedOptions(i),
3341	$forceUpdate: (i) => i.f || (i.f = () => {
3342		queueJob(i.update);
3343	}),
3344	$nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),
3345	$watch: (i) => instanceWatch.bind(i)
3346});
3347var hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);
3348var PublicInstanceProxyHandlers = {
3349	get({ _: instance }, key) {
3350		if (key === "__v_skip") return true;
3351		const { ctx, setupState, data, props, accessCache, type, appContext } = instance;
3352		if (key[0] !== "$") {
3353			const n = accessCache[key];
3354			if (n !== void 0) switch (n) {
3355				case 1: return setupState[key];
3356				case 2: return data[key];
3357				case 4: return ctx[key];
3358				case 3: return props[key];
3359			}
3360			else if (hasSetupBinding(setupState, key)) {
3361				accessCache[key] = 1;
3362				return setupState[key];
3363			} else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
3364				accessCache[key] = 2;
3365				return data[key];
3366			} else if (hasOwn(props, key)) {
3367				accessCache[key] = 3;
3368				return props[key];
3369			} else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {
3370				accessCache[key] = 4;
3371				return ctx[key];
3372			} else if (shouldCacheAccess) accessCache[key] = 0;
3373		}
3374		const publicGetter = publicPropertiesMap[key];
3375		let cssModule, globalProperties;
3376		if (publicGetter) {
3377			if (key === "$attrs") track(instance.attrs, "get", "");
3378			return publicGetter(instance);
3379		} else if ((cssModule = type.__cssModules) && (cssModule = cssModule[key])) return cssModule;
3380		else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {
3381			accessCache[key] = 4;
3382			return ctx[key];
3383		} else if (globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)) return globalProperties[key];
3384	},
3385	set({ _: instance }, key, value) {
3386		const { data, setupState, ctx } = instance;
3387		if (hasSetupBinding(setupState, key)) {
3388			setupState[key] = value;
3389			return true;
3390		} else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
3391			data[key] = value;
3392			return true;
3393		} else if (hasOwn(instance.props, key)) return false;
3394		if (key[0] === "$" && key.slice(1) in instance) return false;
3395		else ctx[key] = value;
3396		return true;
3397	},
3398	has({ _: { data, setupState, accessCache, ctx, appContext, props, type } }, key) {
3399		let cssModules;
3400		return !!(accessCache[key] || data !== EMPTY_OBJ && key[0] !== "$" && hasOwn(data, key) || hasSetupBinding(setupState, key) || hasOwn(props, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]);
3401	},
3402	defineProperty(target, key, descriptor) {
3403		if (descriptor.get != null) target._.accessCache[key] = 0;
3404		else if (hasOwn(descriptor, "value")) this.set(target, key, descriptor.value, null);
3405		return Reflect.defineProperty(target, key, descriptor);
3406	}
3407};
3408function useSlots() {
3409	return getContext("useSlots").slots;
3410}
3411function getContext(calledFunctionName) {
3412	const i = getCurrentInstance();
3413	return i.setupContext || (i.setupContext = createSetupContext(i));
3414}
3415function normalizePropsOrEmits(props) {
3416	return isArray(props) ? props.reduce((normalized, p) => (normalized[p] = null, normalized), {}) : props;
3417}
3418var shouldCacheAccess = true;
3419function applyOptions(instance) {
3420	const options = resolveMergedOptions(instance);
3421	const publicThis = instance.proxy;
3422	const ctx = instance.ctx;
3423	shouldCacheAccess = false;
3424	if (options.beforeCreate) callHook$1(options.beforeCreate, instance, "bc");
3425	const { data: dataOptions, computed: computedOptions, methods, watch: watchOptions, provide: provideOptions, inject: injectOptions, created, beforeMount, mounted, beforeUpdate, updated, activated, deactivated, beforeDestroy, beforeUnmount, destroyed, unmounted, render, renderTracked, renderTriggered, errorCaptured, serverPrefetch, expose, inheritAttrs, components, directives, filters } = options;
3426	const checkDuplicateProperties = null;
3427	if (injectOptions) resolveInjections(injectOptions, ctx, checkDuplicateProperties);
3428	if (methods) for (const key in methods) {
3429		const methodHandler = methods[key];
3430		if (isFunction(methodHandler)) ctx[key] = methodHandler.bind(publicThis);
3431	}
3432	if (dataOptions) {
3433		const data = dataOptions.call(publicThis, publicThis);
3434		if (!isObject$2(data)) {} else instance.data = /* @__PURE__ */ reactive(data);
3435	}
3436	shouldCacheAccess = true;
3437	if (computedOptions) for (const key in computedOptions) {
3438		const opt = computedOptions[key];
3439		const c = computed({
3440			get: isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP,
3441			set: !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : NOOP
3442		});
3443		Object.defineProperty(ctx, key, {
3444			enumerable: true,
3445			configurable: true,
3446			get: () => c.value,
3447			set: (v) => c.value = v
3448		});
3449	}
3450	if (watchOptions) for (const key in watchOptions) createWatcher(watchOptions[key], ctx, publicThis, key);
3451	if (provideOptions) {
3452		const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;
3453		Reflect.ownKeys(provides).forEach((key) => {
3454			provide(key, provides[key]);
3455		});
3456	}
3457	if (created) callHook$1(created, instance, "c");
3458	function registerLifecycleHook(register, hook) {
3459		if (isArray(hook)) hook.forEach((_hook) => register(_hook.bind(publicThis)));
3460		else if (hook) register(hook.bind(publicThis));
3461	}
3462	registerLifecycleHook(onBeforeMount, beforeMount);
3463	registerLifecycleHook(onMounted, mounted);
3464	registerLifecycleHook(onBeforeUpdate, beforeUpdate);
3465	registerLifecycleHook(onUpdated, updated);
3466	registerLifecycleHook(onActivated, activated);
3467	registerLifecycleHook(onDeactivated, deactivated);
3468	registerLifecycleHook(onErrorCaptured, errorCaptured);
3469	registerLifecycleHook(onRenderTracked, renderTracked);
3470	registerLifecycleHook(onRenderTriggered, renderTriggered);
3471	registerLifecycleHook(onBeforeUnmount, beforeUnmount);
3472	registerLifecycleHook(onUnmounted, unmounted);
3473	registerLifecycleHook(onServerPrefetch, serverPrefetch);
3474	if (isArray(expose)) {
3475		if (expose.length) {
3476			const exposed = instance.exposed || (instance.exposed = {});
3477			expose.forEach((key) => {
3478				Object.defineProperty(exposed, key, {
3479					get: () => publicThis[key],
3480					set: (val) => publicThis[key] = val,
3481					enumerable: true
3482				});
3483			});
3484		} else if (!instance.exposed) instance.exposed = {};
3485	}
3486	if (render && instance.render === NOOP) instance.render = render;
3487	if (inheritAttrs != null) instance.inheritAttrs = inheritAttrs;
3488	if (components) instance.components = components;
3489	if (directives) instance.directives = directives;
3490	if (serverPrefetch) markAsyncBoundary(instance);
3491}
3492function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {
3493	if (isArray(injectOptions)) injectOptions = normalizeInject(injectOptions);
3494	for (const key in injectOptions) {
3495		const opt = injectOptions[key];
3496		let injected;
3497		if (isObject$2(opt)) {
3498			if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
3499			else injected = inject(opt.from || key);
3500		} else injected = inject(opt);
3501		if (/* @__PURE__ */ isRef(injected)) Object.defineProperty(ctx, key, {
3502			enumerable: true,
3503			configurable: true,
3504			get: () => injected.value,
3505			set: (v) => injected.value = v
3506		});
3507		else ctx[key] = injected;
3508	}
3509}
3510function callHook$1(hook, instance, type) {
3511	callWithAsyncErrorHandling(isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy), instance, type);
3512}
3513function createWatcher(raw, ctx, publicThis, key) {
3514	let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key];
3515	if (isString(raw)) {
3516		const handler = ctx[raw];
3517		if (isFunction(handler)) watch(getter, handler);
3518	} else if (isFunction(raw)) watch(getter, raw.bind(publicThis));
3519	else if (isObject$2(raw)) {
3520		if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
3521		else {
3522			const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
3523			if (isFunction(handler)) watch(getter, handler, raw);
3524		}
3525	}
3526}
3527function resolveMergedOptions(instance) {
3528	const base = instance.type;
3529	const { mixins, extends: extendsOptions } = base;
3530	const { mixins: globalMixins, optionsCache: cache, config: { optionMergeStrategies } } = instance.appContext;
3531	const cached = cache.get(base);
3532	let resolved;
3533	if (cached) resolved = cached;
3534	else if (!globalMixins.length && !mixins && !extendsOptions) resolved = base;
3535	else {
3536		resolved = {};
3537		if (globalMixins.length) globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));
3538		mergeOptions(resolved, base, optionMergeStrategies);
3539	}
3540	if (isObject$2(base)) cache.set(base, resolved);
3541	return resolved;
3542}
3543function mergeOptions(to, from, strats, asMixin = false) {
3544	const { mixins, extends: extendsOptions } = from;
3545	if (extendsOptions) mergeOptions(to, extendsOptions, strats, true);
3546	if (mixins) mixins.forEach((m) => mergeOptions(to, m, strats, true));
3547	for (const key in from) if (asMixin && key === "expose") {} else {
3548		const strat = internalOptionMergeStrats[key] || strats && strats[key];
3549		to[key] = strat ? strat(to[key], from[key]) : from[key];
3550	}
3551	return to;
3552}
3553var internalOptionMergeStrats = {
3554	data: mergeDataFn,
3555	props: mergeEmitsOrPropsOptions,
3556	emits: mergeEmitsOrPropsOptions,
3557	methods: mergeObjectOptions,
3558	computed: mergeObjectOptions,
3559	beforeCreate: mergeAsArray,
3560	created: mergeAsArray,
3561	beforeMount: mergeAsArray,
3562	mounted: mergeAsArray,
3563	beforeUpdate: mergeAsArray,
3564	updated: mergeAsArray,
3565	beforeDestroy: mergeAsArray,
3566	beforeUnmount: mergeAsArray,
3567	destroyed: mergeAsArray,
3568	unmounted: mergeAsArray,
3569	activated: mergeAsArray,
3570	deactivated: mergeAsArray,
3571	errorCaptured: mergeAsArray,
3572	serverPrefetch: mergeAsArray,
3573	components: mergeObjectOptions,
3574	directives: mergeObjectOptions,
3575	watch: mergeWatchOptions,
3576	provide: mergeDataFn,
3577	inject: mergeInject
3578};
3579function mergeDataFn(to, from) {
3580	if (!from) return to;
3581	if (!to) return from;
3582	return function mergedDataFn() {
3583		return extend(isFunction(to) ? to.call(this, this) : to, isFunction(from) ? from.call(this, this) : from);
3584	};
3585}
3586function mergeInject(to, from) {
3587	return mergeObjectOptions(normalizeInject(to), normalizeInject(from));
3588}
3589function normalizeInject(raw) {
3590	if (isArray(raw)) {
3591		const res = {};
3592		for (let i = 0; i < raw.length; i++) res[raw[i]] = raw[i];
3593		return res;
3594	}
3595	return raw;
3596}
3597function mergeAsArray(to, from) {
3598	return to ? [...new Set([].concat(to, from))] : from;
3599}
3600function mergeObjectOptions(to, from) {
3601	return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;
3602}
3603function mergeEmitsOrPropsOptions(to, from) {
3604	if (to) {
3605		if (isArray(to) && isArray(from)) return [.../* @__PURE__ */ new Set([...to, ...from])];
3606		return extend(/* @__PURE__ */ Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from != null ? from : {}));
3607	} else return from;
3608}
3609function mergeWatchOptions(to, from) {
3610	if (!to) return from;
3611	if (!from) return to;
3612	const merged = extend(/* @__PURE__ */ Object.create(null), to);
3613	for (const key in from) merged[key] = mergeAsArray(to[key], from[key]);
3614	return merged;
3615}
3616function createAppContext() {
3617	return {
3618		app: null,
3619		config: {
3620			isNativeTag: NO,
3621			performance: false,
3622			globalProperties: {},
3623			optionMergeStrategies: {},
3624			errorHandler: void 0,
3625			warnHandler: void 0,
3626			compilerOptions: {}
3627		},
3628		mixins: [],
3629		components: {},
3630		directives: {},
3631		provides: /* @__PURE__ */ Object.create(null),
3632		optionsCache: /* @__PURE__ */ new WeakMap(),
3633		propsCache: /* @__PURE__ */ new WeakMap(),
3634		emitsCache: /* @__PURE__ */ new WeakMap()
3635	};
3636}
3637var uid$1 = 0;
3638function createAppAPI(render, hydrate) {
3639	return function createApp(rootComponent, rootProps = null) {
3640		if (!isFunction(rootComponent)) rootComponent = extend({}, rootComponent);
3641		if (rootProps != null && !isObject$2(rootProps)) rootProps = null;
3642		const context = createAppContext();
3643		const installedPlugins = /* @__PURE__ */ new WeakSet();
3644		const pluginCleanupFns = [];
3645		let isMounted = false;
3646		const app = context.app = {
3647			_uid: uid$1++,
3648			_component: rootComponent,
3649			_props: rootProps,
3650			_container: null,
3651			_context: context,
3652			_instance: null,
3653			version,
3654			get config() {
3655				return context.config;
3656			},
3657			set config(v) {},
3658			use(plugin, ...options) {
3659				if (installedPlugins.has(plugin)) {} else if (plugin && isFunction(plugin.install)) {
3660					installedPlugins.add(plugin);
3661					plugin.install(app, ...options);
3662				} else if (isFunction(plugin)) {
3663					installedPlugins.add(plugin);
3664					plugin(app, ...options);
3665				}
3666				return app;
3667			},
3668			mixin(mixin) {
3669				if (!context.mixins.includes(mixin)) context.mixins.push(mixin);
3670				return app;
3671			},
3672			component(name, component) {
3673				if (!component) return context.components[name];
3674				context.components[name] = component;
3675				return app;
3676			},
3677			directive(name, directive) {
3678				if (!directive) return context.directives[name];
3679				context.directives[name] = directive;
3680				return app;
3681			},
3682			mount(rootContainer, isHydrate, namespace) {
3683				if (!isMounted) {
3684					const vnode = app._ceVNode || createVNode(rootComponent, rootProps);
3685					vnode.appContext = context;
3686					if (namespace === true) namespace = "svg";
3687					else if (namespace === false) namespace = void 0;
3688					if (isHydrate && hydrate) hydrate(vnode, rootContainer);
3689					else render(vnode, rootContainer, namespace);
3690					isMounted = true;
3691					app._container = rootContainer;
3692					rootContainer.__vue_app__ = app;
3693					return getComponentPublicInstance(vnode.component);
3694				}
3695			},
3696			onUnmount(cleanupFn) {
3697				pluginCleanupFns.push(cleanupFn);
3698			},
3699			unmount() {
3700				if (isMounted) {
3701					callWithAsyncErrorHandling(pluginCleanupFns, app._instance, 16);
3702					render(null, app._container);
3703					delete app._container.__vue_app__;
3704				}
3705			},
3706			provide(key, value) {
3707				context.provides[key] = value;
3708				return app;
3709			},
3710			runWithContext(fn) {
3711				const lastApp = currentApp;
3712				currentApp = app;
3713				try {
3714					return fn();
3715				} finally {
3716					currentApp = lastApp;
3717				}
3718			}
3719		};
3720		return app;
3721	};
3722}
3723var currentApp = null;
3724var getModelModifiers = (props, modelName) => {
3725	return modelName === "modelValue" || modelName === "model-value" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize$1(modelName)}Modifiers`] || props[`${hyphenate$1(modelName)}Modifiers`];
3726};
3727function emit(instance, event, ...rawArgs) {
3728	if (instance.isUnmounted) return;
3729	const props = instance.vnode.props || EMPTY_OBJ;
3730	let args = rawArgs;
3731	const isModelListener = event.startsWith("update:");
3732	const modifiers = isModelListener && getModelModifiers(props, event.slice(7));
3733	if (modifiers) {
3734		if (modifiers.trim) args = rawArgs.map((a) => isString(a) ? a.trim() : a);
3735		if (modifiers.number) args = args.map(looseToNumber);
3736	}
3737	let handlerName;
3738	let handler = props[handlerName = toHandlerKey(event)] || props[handlerName = toHandlerKey(camelize$1(event))];
3739	if (!handler && isModelListener) handler = props[handlerName = toHandlerKey(hyphenate$1(event))];
3740	if (handler) callWithAsyncErrorHandling(handler, instance, 6, args);
3741	const onceHandler = props[handlerName + `Once`];
3742	if (onceHandler) {
3743		if (!instance.emitted) instance.emitted = {};
3744		else if (instance.emitted[handlerName]) return;
3745		instance.emitted[handlerName] = true;
3746		callWithAsyncErrorHandling(onceHandler, instance, 6, args);
3747	}
3748}
3749var mixinEmitsCache = /* @__PURE__ */ new WeakMap();
3750function normalizeEmitsOptions(comp, appContext, asMixin = false) {
3751	const cache = asMixin ? mixinEmitsCache : appContext.emitsCache;
3752	const cached = cache.get(comp);
3753	if (cached !== void 0) return cached;
3754	const raw = comp.emits;
3755	let normalized = {};
3756	let hasExtends = false;
3757	if (!isFunction(comp)) {
3758		const extendEmits = (raw2) => {
3759			const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);
3760			if (normalizedFromExtend) {
3761				hasExtends = true;
3762				extend(normalized, normalizedFromExtend);
3763			}
3764		};
3765		if (!asMixin && appContext.mixins.length) appContext.mixins.forEach(extendEmits);
3766		if (comp.extends) extendEmits(comp.extends);
3767		if (comp.mixins) comp.mixins.forEach(extendEmits);
3768	}
3769	if (!raw && !hasExtends) {
3770		if (isObject$2(comp)) cache.set(comp, null);
3771		return null;
3772	}
3773	if (isArray(raw)) raw.forEach((key) => normalized[key] = null);
3774	else extend(normalized, raw);
3775	if (isObject$2(comp)) cache.set(comp, normalized);
3776	return normalized;
3777}
3778function isEmitListener(options, key) {
3779	if (!options || !isOn(key)) return false;
3780	key = key.slice(2);
3781	key = key === "Once" ? key : key.replace(/Once$/, "");
3782	return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate$1(key)) || hasOwn(options, key);
3783}
3784function renderComponentRoot(instance) {
3785	const { type: Component, vnode, proxy, withProxy, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, props, data, setupState, ctx, inheritAttrs } = instance;
3786	const prev = setCurrentRenderingInstance(instance);
3787	let result;
3788	let fallthroughAttrs;
3789	try {
3790		if (vnode.shapeFlag & 4) {
3791			const proxyToUse = withProxy || proxy;
3792			const thisProxy = proxyToUse;
3793			result = normalizeVNode(render.call(thisProxy, proxyToUse, renderCache, props, setupState, data, ctx));
3794			fallthroughAttrs = attrs;
3795		} else {
3796			const render2 = Component;
3797			result = normalizeVNode(render2.length > 1 ? render2(props, {
3798				attrs,
3799				slots,
3800				emit
3801			}) : render2(props, null));
3802			fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);
3803		}
3804	} catch (err) {
3805		blockStack.length = 0;
3806		handleError(err, instance, 1);
3807		result = createVNode(Comment);
3808	}
3809	let root = result;
3810	if (fallthroughAttrs && inheritAttrs !== false) {
3811		const keys = Object.keys(fallthroughAttrs);
3812		const { shapeFlag } = root;
3813		if (keys.length) {
3814			if (shapeFlag & 7) {
3815				if (propsOptions && keys.some(isModelListener)) fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);
3816				root = cloneVNode(root, fallthroughAttrs, false, true);
3817			}
3818		}
3819	}
3820	if (vnode.dirs) {
3821		root = cloneVNode(root, null, false, true);
3822		root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
3823	}
3824	if (vnode.transition) setTransitionHooks(isTeleport(root.type) ? getInnerChild$1(root) || root : root, vnode.transition);
3825	result = root;
3826	setCurrentRenderingInstance(prev);
3827	return result;
3828}
3829var getFunctionalFallthrough = (attrs) => {
3830	let res;
3831	for (const key in attrs) if (key === "class" || key === "style" || isOn(key)) (res || (res = {}))[key] = attrs[key];
3832	return res;
3833};
3834var filterModelListeners = (attrs, props) => {
3835	const res = {};
3836	for (const key in attrs) if (!isModelListener(key) || !(key.slice(9) in props)) res[key] = attrs[key];
3837	return res;
3838};
3839function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
3840	const { props: prevProps, children: prevChildren, component } = prevVNode;
3841	const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;
3842	const emits = component.emitsOptions;
3843	if (nextVNode.dirs || nextVNode.transition) return true;
3844	if (optimized && patchFlag >= 0) {
3845		if (patchFlag & 1024) return true;
3846		if (patchFlag & 16) {
3847			if (!prevProps) return !!nextProps;
3848			return hasPropsChanged(prevProps, nextProps, emits);
3849		} else if (patchFlag & 8) {
3850			const dynamicProps = nextVNode.dynamicProps;
3851			for (let i = 0; i < dynamicProps.length; i++) {
3852				const key = dynamicProps[i];
3853				if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) return true;
3854			}
3855		}
3856	} else {
3857		if (prevChildren || nextChildren) {
3858			if (!nextChildren || !nextChildren.$stable) return true;
3859		}
3860		if (prevProps === nextProps) return false;
3861		if (!prevProps) return !!nextProps;
3862		if (!nextProps) return true;
3863		return hasPropsChanged(prevProps, nextProps, emits);
3864	}
3865	return false;
3866}
3867function hasPropsChanged(prevProps, nextProps, emitsOptions) {
3868	const nextKeys = Object.keys(nextProps);
3869	if (nextKeys.length !== Object.keys(prevProps).length) return true;
3870	for (let i = 0; i < nextKeys.length; i++) {
3871		const key = nextKeys[i];
3872		if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) return true;
3873	}
3874	return false;
3875}
3876function hasPropValueChanged(nextProps, prevProps, key) {
3877	const nextProp = nextProps[key];
3878	const prevProp = prevProps[key];
3879	if (key === "style" && isObject$2(nextProp) && isObject$2(prevProp)) return !looseEqual(nextProp, prevProp);
3880	return nextProp !== prevProp;
3881}
3882function updateHOCHostEl({ vnode, parent, suspense }, el) {
3883	while (parent) {
3884		const root = parent.subTree;
3885		if (root.suspense && root.suspense.activeBranch === vnode) {
3886			root.suspense.vnode.el = root.el = el;
3887			vnode = root;
3888		}
3889		if (root === vnode) {
3890			(vnode = parent.vnode).el = el;
3891			parent = parent.parent;
3892		} else break;
3893	}
3894	if (suspense && suspense.activeBranch === vnode) suspense.vnode.el = el;
3895}
3896var internalObjectProto = {};
3897var createInternalObject = () => Object.create(internalObjectProto);
3898var isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;
3899function initProps(instance, rawProps, isStateful, isSSR = false) {
3900	const props = {};
3901	const attrs = createInternalObject();
3902	instance.propsDefaults = /* @__PURE__ */ Object.create(null);
3903	setFullProps(instance, rawProps, props, attrs);
3904	for (const key in instance.propsOptions[0]) if (!(key in props)) props[key] = void 0;
3905	if (isStateful) instance.props = isSSR ? props : /* @__PURE__ */ shallowReactive(props);
3906	else if (!instance.type.props) instance.props = attrs;
3907	else instance.props = props;
3908	instance.attrs = attrs;
3909}
3910function updateProps(instance, rawProps, rawPrevProps, optimized) {
3911	const { props, attrs, vnode: { patchFlag } } = instance;
3912	const rawCurrentProps = /* @__PURE__ */ toRaw(props);
3913	const [options] = instance.propsOptions;
3914	let hasAttrsChanged = false;
3915	if ((optimized || patchFlag > 0) && !(patchFlag & 16)) {
3916		if (patchFlag & 8) {
3917			const propsToUpdate = instance.vnode.dynamicProps;
3918			for (let i = 0; i < propsToUpdate.length; i++) {
3919				let key = propsToUpdate[i];
3920				if (isEmitListener(instance.emitsOptions, key)) continue;
3921				const value = rawProps[key];
3922				if (options) {
3923					if (hasOwn(attrs, key)) {
3924						if (value !== attrs[key]) {
3925							attrs[key] = value;
3926							hasAttrsChanged = true;
3927						}
3928					} else {
3929						const camelizedKey = camelize$1(key);
3930						props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance, false);
3931					}
3932				} else if (value !== attrs[key]) {
3933					attrs[key] = value;
3934					hasAttrsChanged = true;
3935				}
3936			}
3937		}
3938	} else {
3939		if (setFullProps(instance, rawProps, props, attrs)) hasAttrsChanged = true;
3940		let kebabKey;
3941		for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate$1(key)) === key || !hasOwn(rawProps, kebabKey))) {
3942			if (options) {
3943				if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, rawCurrentProps, key, void 0, instance, true);
3944			} else delete props[key];
3945		}
3946		if (attrs !== rawCurrentProps) {
3947			for (const key in attrs) if (!rawProps || !hasOwn(rawProps, key) && true) {
3948				delete attrs[key];
3949				hasAttrsChanged = true;
3950			}
3951		}
3952	}
3953	if (hasAttrsChanged) trigger(instance.attrs, "set", "");
3954}
3955function setFullProps(instance, rawProps, props, attrs) {
3956	const [options, needCastKeys] = instance.propsOptions;
3957	let hasAttrsChanged = false;
3958	let rawCastValues;
3959	if (rawProps) for (let key in rawProps) {
3960		if (isReservedProp(key)) continue;
3961		const value = rawProps[key];
3962		let camelKey;
3963		if (options && hasOwn(options, camelKey = camelize$1(key))) {
3964			if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
3965			else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
3966		} else if (!isEmitListener(instance.emitsOptions, key)) {
3967			if (!(key in attrs) || value !== attrs[key]) {
3968				attrs[key] = value;
3969				hasAttrsChanged = true;
3970			}
3971		}
3972	}
3973	if (needCastKeys) {
3974		const rawCurrentProps = /* @__PURE__ */ toRaw(props);
3975		const castValues = rawCastValues || EMPTY_OBJ;
3976		for (let i = 0; i < needCastKeys.length; i++) {
3977			const key = needCastKeys[i];
3978			props[key] = resolvePropValue(options, rawCurrentProps, key, castValues[key], instance, !hasOwn(castValues, key));
3979		}
3980	}
3981	return hasAttrsChanged;
3982}
3983function resolvePropValue(options, props, key, value, instance, isAbsent) {
3984	const opt = options[key];
3985	if (opt != null) {
3986		const hasDefault = hasOwn(opt, "default");
3987		if (hasDefault && value === void 0) {
3988			const defaultValue = opt.default;
3989			if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {
3990				const { propsDefaults } = instance;
3991				if (key in propsDefaults) value = propsDefaults[key];
3992				else {
3993					const reset = setCurrentInstance(instance);
3994					value = propsDefaults[key] = defaultValue.call(null, props);
3995					reset();
3996				}
3997			} else value = defaultValue;
3998			if (instance.ce) instance.ce._setProp(key, value);
3999		}
4000		if (opt[0]) {
4001			if (isAbsent && !hasDefault) value = false;
4002			else if (opt[1] && (value === "" || value === hyphenate$1(key))) value = true;
4003		}
4004	}
4005	return value;
4006}
4007var mixinPropsCache = /* @__PURE__ */ new WeakMap();
4008function normalizePropsOptions(comp, appContext, asMixin = false) {
4009	const cache = asMixin ? mixinPropsCache : appContext.propsCache;
4010	const cached = cache.get(comp);
4011	if (cached) return cached;
4012	const raw = comp.props;
4013	const normalized = {};
4014	const needCastKeys = [];
4015	let hasExtends = false;
4016	if (!isFunction(comp)) {
4017		const extendProps = (raw2) => {
4018			hasExtends = true;
4019			const [props, keys] = normalizePropsOptions(raw2, appContext, true);
4020			extend(normalized, props);
4021			if (keys) needCastKeys.push(...keys);
4022		};
4023		if (!asMixin && appContext.mixins.length) appContext.mixins.forEach(extendProps);
4024		if (comp.extends) extendProps(comp.extends);
4025		if (comp.mixins) comp.mixins.forEach(extendProps);
4026	}
4027	if (!raw && !hasExtends) {
4028		if (isObject$2(comp)) cache.set(comp, EMPTY_ARR);
4029		return EMPTY_ARR;
4030	}
4031	if (isArray(raw)) for (let i = 0; i < raw.length; i++) {
4032		const normalizedKey = camelize$1(raw[i]);
4033		if (validatePropName(normalizedKey)) normalized[normalizedKey] = EMPTY_OBJ;
4034	}
4035	else if (raw) for (const key in raw) {
4036		const normalizedKey = camelize$1(key);
4037		if (validatePropName(normalizedKey)) {
4038			const opt = raw[key];
4039			const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);
4040			const propType = prop.type;
4041			let shouldCast = false;
4042			let shouldCastTrue = true;
4043			if (isArray(propType)) for (let index = 0; index < propType.length; ++index) {
4044				const type = propType[index];
4045				const typeName = isFunction(type) && type.name;
4046				if (typeName === "Boolean") {
4047					shouldCast = true;
4048					break;
4049				} else if (typeName === "String") shouldCastTrue = false;
4050			}
4051			else shouldCast = isFunction(propType) && propType.name === "Boolean";
4052			prop[0] = shouldCast;
4053			prop[1] = shouldCastTrue;
4054			if (shouldCast || hasOwn(prop, "default")) needCastKeys.push(normalizedKey);
4055		}
4056	}
4057	const res = [normalized, needCastKeys];
4058	if (isObject$2(comp)) cache.set(comp, res);
4059	return res;
4060}
4061function validatePropName(key) {
4062	if (key[0] !== "$" && !isReservedProp(key)) return true;
4063	return false;
4064}
4065var isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable";
4066var normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];
4067var normalizeSlot = (key, rawSlot, ctx) => {
4068	if (rawSlot._n) return rawSlot;
4069	const normalized = withCtx((...args) => {
4070		return normalizeSlotValue(rawSlot(...args));
4071	}, ctx);
4072	normalized._c = false;
4073	return normalized;
4074};
4075var normalizeObjectSlots = (rawSlots, slots, instance) => {
4076	const ctx = rawSlots._ctx;
4077	for (const key in rawSlots) {
4078		if (isInternalKey(key)) continue;
4079		const value = rawSlots[key];
4080		if (isFunction(value)) slots[key] = normalizeSlot(key, value, ctx);
4081		else if (value != null) {
4082			const normalized = normalizeSlotValue(value);
4083			slots[key] = () => normalized;
4084		}
4085	}
4086};
4087var normalizeVNodeSlots = (instance, children) => {
4088	const normalized = normalizeSlotValue(children);
4089	instance.slots.default = () => normalized;
4090};
4091var assignSlots = (slots, children, optimized) => {
4092	for (const key in children) if (optimized || !isInternalKey(key)) slots[key] = children[key];
4093};
4094var initSlots = (instance, children, optimized) => {
4095	const slots = instance.slots = createInternalObject();
4096	if (instance.vnode.shapeFlag & 32) {
4097		const type = children._;
4098		if (type) {
4099			assignSlots(slots, children, optimized);
4100			if (optimized) def(slots, "_", type, true);
4101		} else normalizeObjectSlots(children, slots);
4102	} else if (children) normalizeVNodeSlots(instance, children);
4103};
4104var updateSlots = (instance, children, optimized) => {
4105	const { vnode, slots } = instance;
4106	let needDeletionCheck = true;
4107	let deletionComparisonTarget = EMPTY_OBJ;
4108	if (vnode.shapeFlag & 32) {
4109		const type = children._;
4110		if (type) {
4111			if (optimized && type === 1) needDeletionCheck = false;
4112			else assignSlots(slots, children, optimized);
4113		} else {
4114			needDeletionCheck = !children.$stable;
4115			normalizeObjectSlots(children, slots);
4116		}
4117		deletionComparisonTarget = children;
4118	} else if (children) {
4119		normalizeVNodeSlots(instance, children);
4120		deletionComparisonTarget = { default: 1 };
4121	}
4122	if (needDeletionCheck) {
4123		for (const key in slots) if (!isInternalKey(key) && deletionComparisonTarget[key] == null) delete slots[key];
4124	}
4125};
4126var queuePostRenderEffect = queueEffectWithSuspense;
4127function createRenderer(options) {
4128	return baseCreateRenderer(options);
4129}
4130function createHydrationRenderer(options) {
4131	return baseCreateRenderer(options, createHydrationFunctions);
4132}
4133function baseCreateRenderer(options, createHydrationFns) {
4134	const target = getGlobalThis();
4135	target.__VUE__ = true;
4136	const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, insertStaticContent: hostInsertStaticContent } = options;
4137	const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!n2.dynamicChildren) => {
4138		if (n1 === n2) return;
4139		if (n1 && !isSameVNodeType(n1, n2)) {
4140			anchor = getNextHostNode(n1);
4141			unmount(n1, parentComponent, parentSuspense, true);
4142			n1 = null;
4143		}
4144		if (n2.patchFlag === -2) {
4145			optimized = false;
4146			n2.dynamicChildren = null;
4147		}
4148		if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
4149			if (n2.dynamicChildren === EMPTY_ARR) n2.dynamicChildren = [];
4150			n2.dynamicChildren.hasOnce = true;
4151		}
4152		const { type, ref, shapeFlag } = n2;
4153		switch (type) {
4154			case Text:
4155				processText(n1, n2, container, anchor);
4156				break;
4157			case Comment:
4158				processCommentNode(n1, n2, container, anchor);
4159				break;
4160			case Static:
4161				if (n1 == null) mountStaticNode(n2, container, anchor, namespace);
4162				break;
4163			case Fragment:
4164				processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4165				break;
4166			default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4167			else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4168			else if (shapeFlag & 64) type.process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals);
4169			else if (shapeFlag & 128) type.process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals);
4170		}
4171		if (ref != null && parentComponent) setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);
4172		else if (ref == null && n1 && n1.ref != null) setRef(n1.ref, null, parentSuspense, n1, true);
4173	};
4174	const processText = (n1, n2, container, anchor) => {
4175		if (n1 == null) hostInsert(n2.el = hostCreateText(n2.children), container, anchor);
4176		else {
4177			const el = n2.el = n1.el;
4178			if (n2.children !== n1.children) hostSetText(el, n2.children);
4179		}
4180	};
4181	const processCommentNode = (n1, n2, container, anchor) => {
4182		if (n1 == null) hostInsert(n2.el = hostCreateComment(n2.children || ""), container, anchor);
4183		else n2.el = n1.el;
4184	};
4185	const mountStaticNode = (n2, container, anchor, namespace) => {
4186		[n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, namespace, n2.el, n2.anchor);
4187	};
4188	const moveStaticNode = ({ el, anchor }, container, nextSibling) => {
4189		let next;
4190		while (el && el !== anchor) {
4191			next = hostNextSibling(el);
4192			hostInsert(el, container, nextSibling);
4193			el = next;
4194		}
4195		hostInsert(anchor, container, nextSibling);
4196	};
4197	const removeStaticNode = ({ el, anchor }) => {
4198		let next;
4199		while (el && el !== anchor) {
4200			next = hostNextSibling(el);
4201			hostRemove(el);
4202			el = next;
4203		}
4204		hostRemove(anchor);
4205	};
4206	const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
4207		if (n2.type === "svg") namespace = "svg";
4208		else if (n2.type === "math") namespace = "mathml";
4209		if (n1 == null) mountElement(n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4210		else {
4211			const customElement = n1.el && n1.el._isVueCE ? n1.el : null;
4212			try {
4213				if (customElement) customElement._beginPatch();
4214				patchElement(n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4215			} finally {
4216				if (customElement) customElement._endPatch();
4217			}
4218		}
4219	};
4220	const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
4221		let el;
4222		let vnodeHook;
4223		const { props, shapeFlag, transition, dirs } = vnode;
4224		el = vnode.el = hostCreateElement(vnode.type, namespace, props && props.is, props);
4225		if (shapeFlag & 8) hostSetElementText(el, vnode.children);
4226		else if (shapeFlag & 16) mountChildren(vnode.children, el, null, parentComponent, parentSuspense, resolveChildrenNamespace(vnode, namespace), slotScopeIds, optimized);
4227		if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "created");
4228		setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);
4229		if (props) {
4230			for (const key in props) if (key !== "value" && !isReservedProp(key)) hostPatchProp(el, key, null, props[key], namespace, parentComponent);
4231			if ("value" in props) hostPatchProp(el, "value", null, props.value, namespace);
4232			if (vnodeHook = props.onVnodeBeforeMount) invokeVNodeHook(vnodeHook, parentComponent, vnode);
4233		}
4234		if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
4235		const needCallTransitionHooks = needTransition(parentSuspense, transition);
4236		if (needCallTransitionHooks) transition.beforeEnter(el);
4237		hostInsert(el, container, anchor);
4238		if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) queuePostRenderEffect(() => {
4239			try {
4240				vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
4241				needCallTransitionHooks && transition.enter(el);
4242				dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
4243			} finally {}
4244		}, parentSuspense);
4245	};
4246	const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {
4247		if (scopeId) hostSetScopeId(el, scopeId);
4248		if (slotScopeIds) for (let i = 0; i < slotScopeIds.length; i++) hostSetScopeId(el, slotScopeIds[i]);
4249		if (parentComponent) {
4250			let subTree = parentComponent.subTree;
4251			if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ss
4251Fallback === vnode)) {
4252				const parentVNode = parentComponent.vnode;
4253				setScopeId(el, parentVNode, parentVNode.scopeId, parentVNode.slotScopeIds, parentComponent.parent);
4254			}
4255		}
4256	};
4257	const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
4258		for (let i = start; i < children.length; i++) {
4259			const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
4260			patch(null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4261		}
4262	};
4263	const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
4264		const el = n2.el = n1.el;
4265		let { patchFlag, dynamicChildren, dirs } = n2;
4266		patchFlag |= n1.patchFlag & 16;
4267		const oldProps = n1.props || EMPTY_OBJ;
4268		const newProps = n2.props || EMPTY_OBJ;
4269		let vnodeHook;
4270		parentComponent && toggleRecurse(parentComponent, false);
4271		if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
4272		if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
4273		parentComponent && toggleRecurse(parentComponent, true);
4274		if (dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
4275			patchFlag = 0;
4276			optimized = false;
4277			dynamicChildren = null;
4278		}
4279		if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) hostSetElementText(el, "");
4280		if (dynamicChildren) patchBlockChildren(n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, resolveChildrenNamespace(n2, namespace), slotScopeIds);
4281		else if (!optimized) patchChildren(n1, n2, el, null, parentComponent, parentSuspense, resolveChildrenNamespace(n2, namespace), slotScopeIds, false);
4282		if (patchFlag > 0) {
4283			if (patchFlag & 16) patchProps(el, oldProps, newProps, parentComponent, namespace);
4284			else {
4285				if (patchFlag & 2) {
4286					if (oldProps.class !== newProps.class) hostPatchProp(el, "class", null, newProps.class, namespace);
4287				}
4288				if (patchFlag & 4) hostPatchProp(el, "style", oldProps.style, newProps.style, namespace);
4289				if (patchFlag & 8) {
4290					const propsToUpdate = n2.dynamicProps;
4291					for (let i = 0; i < propsToUpdate.length; i++) {
4292						const key = propsToUpdate[i];
4293						const prev = oldProps[key];
4294						const next = newProps[key];
4295						if (next !== prev || key === "value") hostPatchProp(el, key, prev, next, namespace, parentComponent);
4296					}
4297				}
4298			}
4299			if (patchFlag & 1) {
4300				if (n1.children !== n2.children) hostSetElementText(el, n2.children);
4301			}
4302		} else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
4303		if ((vnodeHook = newProps.onVnodeUpdated) || dirs) queuePostRenderEffect(() => {
4304			vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
4305			dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
4306		}, parentSuspense);
4307	};
4308	const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {
4309		for (let i = 0; i < newChildren.length; i++) {
4310			const oldVNode = oldChildren[i];
4311			const newVNode = newChildren[i];
4312			const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer;
4313			patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
4314		}
4315	};
4316	const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
4317		if (oldProps !== newProps) {
4318			if (oldProps !== EMPTY_OBJ) {
4319				for (const key in oldProps) if (!isReservedProp(key) && !(key in newProps)) hostPatchProp(el, key, oldProps[key], null, namespace, parentComponent);
4320			}
4321			for (const key in newProps) {
4322				if (isReservedProp(key)) continue;
4323				const next = newProps[key];
4324				const prev = oldProps[key];
4325				if (next !== prev && key !== "value") hostPatchProp(el, key, prev, next, namespace, parentComponent);
4326			}
4327			if ("value" in newProps) hostPatchProp(el, "value", oldProps.value, newProps.value, namespace);
4328		}
4329	};
4330	const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
4331		const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText("");
4332		const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText("");
4333		let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;
4334		if (fragmentSlotScopeIds) slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
4335		if (n1 == null) {
4336			hostInsert(fragmentStartAnchor, container, anchor);
4337			hostInsert(fragmentEndAnchor, container, anchor);
4338			mountChildren(n2.children || [], container, fragmentEndAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4339		} else if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) {
4340			patchBlockChildren(n1.dynamicChildren, dynamicChildren, container, parentComponent, parentSuspense, namespace, slotScopeIds);
4341			if (n2.key != null || parentComponent && n2 === parentComponent.subTree) traverseStaticChildren(n1, n2, true);
4342		} else patchChildren(n1, n2, container, fragmentEndAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4343	};
4344	const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
4345		n2.slotScopeIds = slotScopeIds;
4346		if (n1 == null) {
4347			if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
4348			else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
4349		} else updateComponent(n1, n2, optimized);
4350	};
4351	const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
4352		const instance = initialVNode.component = createComponentInstance(initialVNode, parentComponent, parentSuspense);
4353		if (isKeepAlive(initialVNode)) instance.ctx.renderer = internals;
4354		setupComponent(instance, false, optimized);
4355		if (instance.asyncDep) {
4356			parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
4357			if (!initialVNode.el) {
4358				const placeholder = instance.subTree = createVNode(Comment);
4359				processCommentNode(null, placeholder, container, anchor);
4360				initialVNode.placeholder = placeholder.el;
4361			}
4362		} else setupRenderEffect(instance, initialVNode, container, anchor, parentSuspense, namespace, optimized);
4363	};
4364	const updateComponent = (n1, n2, optimized) => {
4365		const instance = n2.component = n1.component;
4366		if (shouldUpdateComponent(n1, n2, optimized)) {
4367			if (instance.asyncDep && !instance.asyncResolved) {
4368				n2.el = n1.el;
4369				updateComponentPreRender(instance, n2, optimized);
4370				return;
4371			} else {
4372				instance.next = n2;
4373				instance.update();
4374			}
4375		} else {
4376			n2.el = n1.el;
4377			instance.vnode = n2;
4378		}
4379	};
4380	const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {
4381		const componentUpdateFn = () => {
4382			if (!instance.isMounted) {
4383				let vnodeHook;
4384				const { el, props } = initialVNode;
4385				const { bm, m, parent, root, type } = instance;
4386				const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);
4387				toggleRecurse(instance, false);
4388				if (bm) invokeArrayFns(bm);
4389				if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) invokeVNodeHook(vnodeHook, parent, initialVNode);
4390				toggleRecurse(instance, true);
4391				if (el && hydrateNode) {
4392					const hydrateSubTree = () => {
4393						instance.subTree = renderComponentRoot(instance);
4394						hydrateNode(el, instance.subTree, instance, parentSuspense, null);
4395					};
4396					if (isAsyncWrapperVNode && type.__asyncHydrate) type.__asyncHydrate(el, instance, hydrateSubTree);
4397					else hydrateSubTree();
4398				} else {
4399					if (root.ce && root.ce._hasShadowRoot()) root.ce._injectChildStyle(type, instance.parent ? instance.parent.type : void 0);
4400					const subTree = instance.subTree = renderComponentRoot(instance);
4401					patch(null, subTree, container, anchor, instance, parentSuspense, namespace);
4402					initialVNode.el = subTree.el;
4403				}
4404				if (m) queuePostRenderEffect(m, parentSuspense);
4405				if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {
4406					const scopedInitialVNode = initialVNode;
4407					queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), parentSuspense);
4408				}
4409				if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) instance.a && queuePostRenderEffect(instance.a, parentSuspense);
4410				instance.isMounted = true;
4411				initialVNode = container = anchor = null;
4412			} else {
4413				let { next, bu, u, parent, vnode } = instance;
4414				{
4415					const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);
4416					if (nonHydratedAsyncRoot) {
4417						if (next) {
4418							next.el = vnode.el;
4419							updateComponentPreRender(instance, next, optimized);
4420						}
4421						nonHydratedAsyncRoot.asyncDep.then(() => {
4422							queuePostRenderEffect(() => {
4423								if (!instance.isUnmounted) update();
4424							}, parentSuspense);
4425						});
4426						return;
4427					}
4428				}
4429				let originNext = next;
4430				let vnodeHook;
4431				toggleRecurse(instance, false);
4432				if (next) {
4433					next.el = vnode.el;
4434					updateComponentPreRender(instance, next, optimized);
4435				} else next = vnode;
4436				if (bu) invokeArrayFns(bu);
4437				if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
4438				toggleRecurse(instance, true);
4439				const nextTree = renderComponentRoot(instance);
4440				const prevTree = instance.subTree;
4441				instance.subTree = nextTree;
4442				patch(prevTree, nextTree, hostParentNode(prevTree.el), getNextHostNode(prevTree), instance, parentSuspense, namespace);
4443				next.el = nextTree.el;
4444				if (originNext === null) updateHOCHostEl(instance, nextTree.el);
4445				if (u) queuePostRenderEffect(u, parentSuspense);
4446				if (vnodeHook = next.props && next.props.onVnodeUpdated) queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), parentSuspense);
4447			}
4448		};
4449		instance.scope.on();
4450		const effect = instance.effect = new ReactiveEffect(componentUpdateFn);
4451		instance.scope.off();
4452		const update = instance.update = effect.run.bind(effect);
4453		const job = instance.job = effect.runIfDirty.bind(effect);
4454		job.i = instance;
4455		job.id = instance.uid;
4456		effect.scheduler = () => queueJob(job);
4457		toggleRecurse(instance, true);
4458		update();
4459	};
4460	const updateComponentPreRender = (instance, nextVNode, optimized) => {
4461		nextVNode.component = instance;
4462		const prevProps = instance.vnode.props;
4463		instance.vnode = nextVNode;
4464		instance.next = null;
4465		updateProps(instance, nextVNode.props, prevProps, optimized);
4466		updateSlots(instance, nextVNode.children, optimized);
4467		pauseTracking();
4468		flushPreFlushCbs(instance);
4469		resetTracking();
4470	};
4471	const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {
4472		const c1 = n1 && n1.children;
4473		const prevShapeFlag = n1 ? n1.shapeFlag : 0;
4474		const c2 = n2.children;
4475		const { patchFlag, shapeFlag } = n2;
4476		if (patchFlag > 0) {
4477			if (patchFlag & 128) {
4478				patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4479				return;
4480			} else if (patchFlag & 256) {
4481				patchUnkeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4482				return;
4483			}
4484		}
4485		if (shapeFlag & 8) {
4486			if (prevShapeFlag & 16) unmountChildren(c1, parentComponent, parentSuspense);
4487			if (c2 !== c1) hostSetElementText(container, c2);
4488		} else if (prevShapeFlag & 16) {
4489			if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4490			else unmountChildren(c1, parentComponent, parentSuspense, true);
4491		} else {
4492			if (prevShapeFlag & 8) hostSetElementText(container, "");
4493			if (shapeFlag & 16) mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4494		}
4495	};
4496	const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
4497		c1 = c1 || EMPTY_ARR;
4498		c2 = c2 || EMPTY_ARR;
4499		const oldLength = c1.length;
4500		const newLength = c2.length;
4501		const commonLength = Math.min(oldLength, newLength);
4502		let i = 0;
4503		for (; i < commonLength; i++) {
4504			const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
4505			patch(c1[i], nextChild, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4506		}
4507		if (oldLength > newLength) unmountChildren(c1, parentComponent, parentSuspense, true, false, commonLength);
4508		else mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, commonLength);
4509	};
4510	const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
4511		let i = 0;
4512		const l2 = c2.length;
4513		let e1 = c1.length - 1;
4514		let e2 = l2 - 1;
4515		while (i <= e1 && i <= e2) {
4516			const n1 = c1[i];
4517			const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
4518			if (isSameVNodeType(n1, n2)) patch(n1, n2, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4519			else break;
4520			i++;
4521		}
4522		while (i <= e1 && i <= e2) {
4523			const n1 = c1[e1];
4524			const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);
4525			if (isSameVNodeType(n1, n2)) patch(n1, n2, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4526			else break;
4527			e1--;
4528			e2--;
4529		}
4530		if (i > e1) {
4531			if (i <= e2) {
4532				const nextPos = e2 + 1;
4533				const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;
4534				while (i <= e2) {
4535					patch(null, c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4536					i++;
4537				}
4538			}
4539		} else if (i > e2) while (i <= e1) {
4540			unmount(c1[i], parentComponent, parentSuspense, true);
4541			i++;
4542		}
4543		else {
4544			const s1 = i;
4545			const s2 = i;
4546			const keyToNewIndexMap = /* @__PURE__ */ new Map();
4547			for (i = s2; i <= e2; i++) {
4548				const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
4549				if (nextChild.key != null) keyToNewIndexMap.set(nextChild.key, i);
4550			}
4551			let j;
4552			let patched = 0;
4553			const toBePatched = e2 - s2 + 1;
4554			let moved = false;
4555			let maxNewIndexSoFar = 0;
4556			const newIndexToOldIndexMap = new Array(toBePatched);
4557			for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0;
4558			for (i = s1; i <= e1; i++) {
4559				const prevChild = c1[i];
4560				if (patched >= toBePatched) {
4561					unmount(prevChild, parentComponent, parentSuspense, true);
4562					continue;
4563				}
4564				let newIndex;
4565				if (prevChild.key != null) newIndex = keyToNewIndexMap.get(prevChild.key);
4566				else for (j = s2; j <= e2; j++) if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {
4567					newIndex = j;
4568					break;
4569				}
4570				if (newIndex === void 0) unmount(prevChild, parentComponent, parentSuspense, true);
4571				else {
4572					newIndexToOldIndexMap[newIndex - s2] = i + 1;
4573					if (newIndex >= maxNewIndexSoFar) maxNewIndexSoFar = newIndex;
4574					else moved = true;
4575					patch(prevChild, c2[newIndex], container, null, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4576					patched++;
4577				}
4578			}
4579			const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;
4580			j = increasingNewIndexSequence.length - 1;
4581			for (i = toBePatched - 1; i >= 0; i--) {
4582				const nextIndex = s2 + i;
4583				const nextChild = c2[nextIndex];
4584				const anchorVNode = c2[nextIndex + 1];
4585				const anchor = nextIndex + 1 < l2 ? anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) : parentAnchor;
4586				if (newIndexToOldIndexMap[i] === 0) patch(null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
4587				else if (moved) {
4588					if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2);
4589					else j--;
4590				}
4591			}
4592		}
4593	};
4594	const move = (vnode, container, anchor, moveType, parentSuspense = null) => {
4595		const { el, type, transition, children, shapeFlag } = vnode;
4596		if (shapeFlag & 6) {
4597			move(vnode.component.subTree, container, anchor, moveType);
4598			return;
4599		}
4600		if (shapeFlag & 128) {
4601			vnode.suspense.move(container, anchor, moveType);
4602			return;
4603		}
4604		if (shapeFlag & 64) {
4605			type.move(vnode, container, anchor, internals);
4606			return;
4607		}
4608		if (type === Fragment) {
4609			hostInsert(el, container, anchor);
4610			for (let i = 0; i < children.length; i++) move(children[i], container, anchor, moveType);
4611			hostInsert(vnode.anchor, container, anchor);
4612			return;
4613		}
4614		if (type === Static) {
4615			moveStaticNode(vnode, container, anchor);
4616			return;
4617		}
4618		if (moveType !== 2 && shapeFlag & 1 && transition) {
4619			if (moveType === 0) {
4620				if (transition.persisted && !el[leaveCbKey]) hostInsert(el, container, anchor);
4621				else {
4622					transition.beforeEnter(el);
4623					hostInsert(el, container, anchor);
4624					queuePostRenderEffect(() => transition.enter(el), parentSuspense);
4625				}
4626			} else {
4627				const { leave, delayLeave, afterLeave } = transition;
4628				const remove2 = () => {
4629					if (vnode.ctx.isUnmounted) hostRemove(el);
4630					else hostInsert(el, container, anchor);
4631				};
4632				const performLeave = () => {
4633					const wasLeaving = el._isLeaving || !!el[leaveCbKey];
4634					if (el._isLeaving) el[leaveCbKey](true);
4635					if (transition.persisted && !wasLeaving) remove2();
4636					else leave(el, () => {
4637						remove2();
4638						afterLeave && afterLeave();
4639					});
4640				};
4641				if (delayLeave) delayLeave(el, remove2, performLeave);
4642				else performLeave();
4643			}
4644		} else hostInsert(el, container, anchor);
4645	};
4646	const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
4647		const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
4648		if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) optimized = false;
4649		if (ref != null) {
4650			pauseTracking();
4651			setRef(ref, null, parentSuspense, vnode, true);
4652			resetTracking();
4653		}
4654		if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) parentComponent.renderCache[cacheIndex] = void 0;
4655		if (shapeFlag & 256) {
4656			parentComponent.ctx.deactivate(vnode);
4657			return;
4658		}
4659		const shouldInvokeDirs = shapeFlag & 1 && dirs;
4660		const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
4661		let vnodeHook;
4662		if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
4663		if (shapeFlag & 6) unmountComponent(vnode.component, parentSuspense, doRemove);
4664		else {
4665			if (shapeFlag & 128) {
4666				vnode.suspense.unmount(parentSuspense, doRemove);
4667				return;
4668			}
4669			if (shouldInvokeDirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
4670			if (shapeFlag & 64) vnode.type.remove(vnode, parentComponent, parentSuspense, internals, doRemove);
4671			else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
4672			else if (type === Fragment && patchFlag & 384 || !optimized && shapeFlag & 16) unmountChildren(children, parentComponent, parentSuspense);
4673			if (doRemove) remove(vnode);
4674		}
4675		const shouldInvalidateMemo = memo != null && cacheIndex == null;
4676		if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs || shouldInvalidateMemo) queuePostRenderEffect(() => {
4677			vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
4678			shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
4679			if (shouldInvalidateMemo) vnode.el = null;
4680		}, parentSuspense);
4681	};
4682	const remove = (vnode) => {
4683		const { type, el, anchor, transition } = vnode;
4684		if (type === Fragment) {
4685			removeFragment(el, anchor);
4686			return;
4687		}
4688		if (type === Static) {
4689			removeStaticNode(vnode);
4690			if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
4691			return;
4692		}
4693		const performRemove = () => {
4694			hostRemove(el);
4695			if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
4696		};
4697		if (vnode.shapeFlag & 1 && transition && !transition.persisted) {
4698			const { leave, delayLeave } = transition;
4699			const performLeave = () => leave(el, performRemove);
4700			if (delayLeave) delayLeave(vnode.el, performRemove, performLeave);
4701			else performLeave();
4702		} else performRemove();
4703	};
4704	const removeFragment = (cur, end) => {
4705		let next;
4706		while (cur !== end) {
4707			next = hostNextSibling(cur);
4708			hostRemove(cur);
4709			cur = next;
4710		}
4711		hostRemove(end);
4712	};
4713	const unmountComponent = (instance, parentSuspense, doRemove) => {
4714		const { bum, scope, job, subTree, um, m, a } = instance;
4715		invalidateMount(m);
4716		invalidateMount(a);
4717		if (bum) invokeArrayFns(bum);
4718		scope.stop();
4719		if (job) {
4720			job.flags |= 8;
4721			unmount(subTree, instance, parentSuspense, doRemove);
4722		} else if (instance.vnode.el && subTree) {
4723			subTree.transition = instance.vnode.transition;
4724			unmount(subTree, instance, parentSuspense, doRemove);
4725		}
4726		if (um) queuePostRenderEffect(um, parentSuspense);
4727		queuePostRenderEffect(() => {
4728			instance.isUnmounted = true;
4729		}, parentSuspense);
4730	};
4731	const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {
4732		for (let i = start; i < children.length; i++) unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);
4733	};
4734	const getNextHostNode = (vnode) => {
4735		if (vnode.shapeFlag & 6) return getNextHostNode(vnode.component.subTree);
4736		if (vnode.shapeFlag & 128) return vnode.suspense.next();
4737		const el = hostNextSibling(vnode.anchor || vnode.el);
4738		const teleportEnd = el && el[TeleportEndKey];
4739		return teleportEnd ? hostNextSibling(teleportEnd) : el;
4740	};
4741	let isFlushing = false;
4742	const render = (vnode, container, namespace) => {
4743		let instance;
4744		if (vnode == null) {
4745			if (container._vnode) {
4746				unmount(container._vnode, null, null, true);
4747				instance = container._vnode.component;
4748			}
4749		} else patch(container._vnode || null, vnode, container, null, null, null, namespace);
4750		container._vnode = vnode;
4751		if (!isFlushing) {
4752			isFlushing = true;
4753			flushPreFlushCbs(instance);
4754			flushPostFlushCbs();
4755			isFlushing = false;
4756		}
4757	};
4758	const internals = {
4759		p: patch,
4760		um: unmount,
4761		m: move,
4762		r: remove,
4763		mt: mountComponent,
4764		mc: mountChildren,
4765		pc: patchChildren,
4766		pbc: patchBlockChildren,
4767		n: getNextHostNode,
4768		o: options
4769	};
4770	let hydrate;
4771	let hydrateNode;
4772	if (createHydrationFns) [hydrate, hydrateNode] = createHydrationFns(internals);
4773	return {
4774		render,
4775		hydrate,
4776		createApp: createAppAPI(render, hydrate)
4777	};
4778}
4779function resolveChildrenNamespace({ type, props }, currentNamespace) {
4780	return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
4781}
4782function toggleRecurse({ effect, job }, allowed) {
4783	if (allowed) {
4784		effect.flags |= 32;
4785		job.flags |= 4;
4786	} else {
4787		effect.flags &= -33;
4788		job.flags &= -5;
4789	}
4790}
4791function needTransition(parentSuspense, transition) {
4792	return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;
4793}
4794function traverseStaticChildren(n1, n2, shallow = false) {
4795	const ch1 = n1.children;
4796	const ch2 = n2.children;
4797	if (isArray(ch1) && isArray(ch2)) for (let i = 0; i < ch1.length; i++) {
4798		const c1 = ch1[i];
4799		let c2 = ch2[i];
4800		if (c2.shapeFlag & 1 && !c2.dynamicChildren) {
4801			if (c2.patchFlag <= 0 || c2.patchFlag === 32) {
4802				c2 = ch2[i] = cloneIfMounted(ch2[i]);
4803				c2.el = c1.el;
4804			}
4805			if (!shallow && c2.patchFlag !== -2) traverseStaticChildren(c1, c2);
4806		}
4807		if (c2.type === Text) {
4808			if (c2.patchFlag === -1) c2 = ch2[i] = cloneIfMounted(c2);
4809			c2.el = c1.el;
4810		}
4811		if (c2.type === Comment && !c2.el) c2.el = c1.el;
4812	}
4813}
4814function getSequence(arr) {
4815	const p = arr.slice();
4816	const result = [0];
4817	let i, j, u, v, c;
4818	const len = arr.length;
4819	for (i = 0; i < len; i++) {
4820		const arrI = arr[i];
4821		if (arrI !== 0) {
4822			j = result[result.length - 1];
4823			if (arr[j] < arrI) {
4824				p[i] = j;
4825				result.push(i);
4826				continue;
4827			}
4828			u = 0;
4829			v = result.length - 1;
4830			while (u < v) {
4831				c = u + v >> 1;
4832				if (arr[result[c]] < arrI) u = c + 1;
4833				else v = c;
4834			}
4835			if (arrI < arr[result[u]]) {
4836				if (u > 0) p[i] = result[u - 1];
4837				result[u] = i;
4838			}
4839		}
4840	}
4841	u = result.length;
4842	v = result[u - 1];
4843	while (u-- > 0) {
4844		result[u] = v;
4845		v = p[v];
4846	}
4847	return result;
4848}
4849function locateNonHydratedAsyncRoot(instance) {
4850	const subComponent = instance.subTree.component;
4851	if (subComponent) {
4852		if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
4853		else return locateNonHydratedAsyncRoot(subComponent);
4854	}
4855}
4856function invalidateMount(hooks) {
4857	if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 8;
4858}
4859function resolveAsyncComponentPlaceholder(anchorVnode) {
4860	if (anchorVnode.placeholder) return anchorVnode.placeholder;
4861	const instance = anchorVnode.component;
4862	if (instance) return resolveAsyncComponentPlaceholder(instance.subTree);
4863	return null;
4864}
4865var isSuspense = (type) => type.__isSuspense;
4866function queueEffectWithSuspense(fn, suspense) {
4867	if (suspense && suspense.pendingBranch) {
4868		if (isArray(fn)) suspense.effects.push(...fn);
4869		else suspense.effects.push(fn);
4870	} else queuePostFlushCb(fn);
4871}
4872var Fragment = /* @__PURE__ */ Symbol.for("v-fgt");
4873var Text = /* @__PURE__ */ Symbol.for("v-txt");
4874var Comment = /* @__PURE__ */ Symbol.for("v-cmt");
4875var Static = /* @__PURE__ */ Symbol.for("v-stc");
4876var blockStack = [];
4877var currentBlock = null;
4878function openBlock(disableTracking = false) {
4879	blockStack.push(currentBlock = disableTracking ? null : []);
4880}
4881function closeBlock() {
4882	blockStack.pop();
4883	currentBlock = blockStack[blockStack.length - 1] || null;
4884}
4885var isBlockTreeEnabled = 1;
4886function setBlockTracking(value, inVOnce = false) {
4887	isBlockTreeEnabled += value;
4888	if (value < 0 && currentBlock && inVOnce) currentBlock.hasOnce = true;
4889}
4890function setupBlock(vnode) {
4891	vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;
4892	closeBlock();
4893	if (isBlockTreeEnabled > 0 && currentBlock) currentBlock.push(vnode);
4894	return vnode;
4895}
4896function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {
4897	return setupBlock(createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, true));
4898}
4899function createBlock(type, props, children, patchFlag, dynamicProps) {
4900	return setupBlock(createVNode(type, props, children, patchFlag, dynamicProps, true));
4901}
4902function isVNode(value) {
4903	return value ? value.__v_isVNode === true : false;
4904}
4905function isSameVNodeType(n1, n2) {
4906	return n1.type === n2.type && n1.key === n2.key;
4907}
4908var normalizeKey = ({ key }) => key != null ? key : null;
4909var normalizeRef = ({ ref, ref_key, ref_for }) => {
4910	if (typeof ref === "number") ref = "" + ref;
4911	return ref != null ? isString(ref) || /* @__PURE__ */ isRef(ref) || isFunction(ref) ? {
4912		i: currentRenderingInstance,
4913		r: ref,
4914		k: ref_key,
4915		f: !!ref_for
4916	} : ref : null;
4917};
4918function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {
4919	const vnode = {
4920		__v_isVNode: true,
4921		__v_skip: true,
4922		type,
4923		props,
4924		key: props && normalizeKey(props),
4925		ref: props && normalizeRef(props),
4926		scopeId: currentScopeId,
4927		slotScopeIds: null,
4928		children,
4929		component: null,
4930		suspense: null,
4931		ssContent: null,
4932		ssFallback: null,
4933		dirs: null,
4934		transition: null,
4935		el: null,
4936		anchor: null,
4937		target: null,
4938		targetStart: null,
4939		targetAnchor: null,
4940		staticCount: 0,
4941		shapeFlag,
4942		patchFlag,
4943		dynamicProps,
4944		dynamicChildren: null,
4945		appContext: null,
4946		ctx: currentRenderingInstance
4947	};
4948	if (needFullChildrenNormalization) {
4949		normalizeChildren(vnode, children);
4950		if (shapeFlag & 128) type.normalize(vnode);
4951	} else if (children) vnode.shapeFlag |= isString(children) ? 8 : 16;
4952	if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock && (vnode.patchFlag > 0 || shapeFlag & 6) && vnode.patchFlag !== 32) currentBlock.push(vnode);
4953	return vnode;
4954}
4955var createVNode = _createVNode;
4956function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
4957	if (!type || type === NULL_DYNAMIC_COMPONENT) type = Comment;
4958	if (isVNode(type)) {
4959		const cloned = cloneVNode(type, props, true);
4960		if (children) normalizeChildren(cloned, children);
4961		if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
4962			if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
4963			else currentBlock.push(cloned);
4964		}
4965		cloned.patchFlag = -2;
4966		return cloned;
4967	}
4968	if (isClassComponent(type)) type = type.__vccOpts;
4969	if (props) {
4970		props = guardReactiveProps(props);
4971		let { class: klass, style } = props;
4972		if (klass && !isString(klass)) props.class = normalizeClass(klass);
4973		if (isObject$2(style)) {
4974			if (/* @__PURE__ */ isProxy(style) && !isArray(style)) style = extend({}, style);
4975			props.style = normalizeStyle(style);
4976		}
4977	}
4978	const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject$2(type) ? 4 : isFunction(type) ? 2 : 0;
4979	return createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, isBlockNode, true);
4980}
4981function guardReactiveProps(props) {
4982	if (!props) return null;
4983	return /* @__PURE__ */ isProxy(props) || isInternalObject(props) ? extend({}, props) : props;
4984}
4985function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {
4986	const { props, ref, patchFlag, children, transition } = vnode;
4987	const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;
4988	const cloned = {
4989		__v_isVNode: true,
4990		__v_skip: true,
4991		type: vnode.type,
4992		props: mergedProps,
4993		key: mergedProps && normalizeKey(mergedProps),
4994		ref: extraProps && extraProps.ref ? mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) : ref,
4995		scopeId: vnode.scopeId,
4996		slotScopeIds: vnode.slotScopeIds,
4997		children,
4998		target: vnode.target,
4999		targetStart: vnode.targetStart,
5000		targetAnchor: vnode.targetAnchor,
5001		staticCount: vnode.staticCount,
5002		shapeFlag: vnode.shapeFlag,
5003		patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,
5004		dynamicProps: vnode.dynamicProps,
5005		dynamicChildren: vnode.dynamicChildren,
5006		appContext: vnode.appContext,
5007		dirs: vnode.dirs,
5008		transition,
5009		component: vnode.component,
5010		suspense: vnode.suspense,
5011		ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),
5012		ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),
5013		placeholder: vnode.placeholder,
5014		el: vnode.el,
5015		anchor: vnode.anchor,
5016		ctx: vnode.ctx,
5017		ce: vnode.ce,
5018		cacheIndex: vnode.cacheIndex
5019	};
5020	if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
5021	return cloned;
5022}
5023function createTextVNode(text = " ", flag = 0) {
5024	return createVNode(Text, null, text, flag);
5025}
5026function createStaticVNode(content, numberOfNodes) {
5027	const vnode = createVNode(Static, null, content);
5028	vnode.staticCount = numberOfNodes;
5029	return vnode;
5030}
5031function createCommentVNode(text = "", asBlock = false) {
5032	return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text);
5033}
5034function normalizeVNode(child) {
5035	if (child == null || typeof child === "boolean") return createVNode(Comment);
5036	else if (isArray(child)) return createVNode(Fragment, null, child.slice());
5037	else if (isVNode(child)) return cloneIfMounted(child);
5038	else return createVNode(Text, null, String(child));
5039}
5040function cloneIfMounted(child) {
5041	return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);
5042}
5043function normalizeChildren(vnode, children) {
5044	let type = 0;
5045	const { shapeFlag } = vnode;
5046	if (children == null) children = null;
5047	else if (isArray(children)) type = 16;
5048	else if (typeof children === "object") {
5049		if (shapeFlag & 65) {
5050			const slot = children.default;
5051			if (slot) {
5052				slot._c && (slot._d = false);
5053				normalizeChildren(vnode, slot());
5054				slot._c && (slot._d = true);
5055			}
5056			return;
5057		} else {
5058			type = 32;
5059			const slotFlag = children._;
5060			if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
5061			else if (slotFlag === 3 && currentRenderingInstance) {
5062				if (currentRenderingInstance.slots._ === 1) children._ = 1;
5063				else {
5064					children._ = 2;
5065					vnode.patchFlag |= 1024;
5066				}
5067			}
5068		}
5069	} else if (isFunction(children)) {
5070		if (shapeFlag & 65) {
5071			normalizeChildren(vnode, { default: children });
5072			return;
5073		}
5074		children = {
5075			default: children,
5076			_ctx: currentRenderingInstance
5077		};
5078		type = 32;
5079	} else {
5080		children = String(children);
5081		if (shapeFlag & 64) {
5082			type = 16;
5083			children = [createTextVNode(children)];
5084		} else type = 8;
5085	}
5086	vnode.children = children;
5087	vnode.shapeFlag |= type;
5088}
5089function mergeProps(...args) {
5090	const ret = {};
5091	for (let i = 0; i < args.length; i++) {
5092		const toMerge = args[i];
5093		for (const key in toMerge) if (key === "class") {
5094			if (ret.class !== toMerge.class) ret.class = normalizeClass([ret.class, toMerge.class]);
5095		} else if (key === "style") ret.style = normalizeStyle([ret.style, toMerge.
5095style]);
5096		else if (isOn(key)) {
5097			const existing = ret[key];
5098			const incoming = toMerge[key];
5099			if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) ret[key] = existing ? [].concat(existing, incoming) : incoming;
5100			else if (incoming == null && existing == null && !isModelListener(key)) ret[key] = incoming;
5101		} else if (key !== "") ret[key] = toMerge[key];
5102	}
5103	return ret;
5104}
5105function invokeVNodeHook(hook, instance, vnode, prevVNode = null) {
5106	callWithAsyncErrorHandling(hook, instance, 7, [vnode, prevVNode]);
5107}
5108var emptyAppContext = createAppContext();
5109var uid = 0;
5110function createComponentInstance(vnode, parent, suspense) {
5111	const type = vnode.type;
5112	const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;
5113	const instance = {
5114		uid: uid++,
5115		vnode,
5116		type,
5117		parent,
5118		appContext,
5119		root: null,
5120		next: null,
5121		subTree: null,
5122		effect: null,
5123		update: null,
5124		job: null,
5125		scope: new EffectScope(true),
5126		render: null,
5127		proxy: null,
5128		exposed: null,
5129		exposeProxy: null,
5130		withProxy: null,
5131		provides: parent ? parent.provides : Object.create(appContext.provides),
5132		ids: parent ? parent.ids : [
5133			"",
5134			0,
5135			0
5136		],
5137		accessCache: null,
5138		renderCache: [],
5139		components: null,
5140		directives: null,
5141		propsOptions: normalizePropsOptions(type, appContext),
5142		emitsOptions: normalizeEmitsOptions(type, appContext),
5143		emit: null,
5144		emitted: null,
5145		propsDefaults: EMPTY_OBJ,
5146		inheritAttrs: type.inheritAttrs,
5147		ctx: EMPTY_OBJ,
5148		data: EMPTY_OBJ,
5149		props: EMPTY_OBJ,
5150		attrs: EMPTY_OBJ,
5151		slots: EMPTY_OBJ,
5152		refs: EMPTY_OBJ,
5153		setupState: EMPTY_OBJ,
5154		setupContext: null,
5155		suspense,
5156		suspenseId: suspense ? suspense.pendingId : 0,
5157		asyncDep: null,
5158		asyncResolved: false,
5159		isMounted: false,
5160		isUnmounted: false,
5161		isDeactivated: false,
5162		bc: null,
5163		c: null,
5164		bm: null,
5165		m: null,
5166		bu: null,
5167		u: null,
5168		um: null,
5169		bum: null,
5170		da: null,
5171		a: null,
5172		rtg: null,
5173		rtc: null,
5174		ec: null,
5175		sp: null
5176	};
5177	instance.ctx = { _: instance };
5178	instance.root = parent ? parent.root : instance;
5179	instance.emit = emit.bind(null, instance);
5180	if (vnode.ce) vnode.ce(instance);
5181	return instance;
5182}
5183var currentInstance = null;
5184var getCurrentInstance = () => currentInstance || currentRenderingInstance;
5185var internalSetCurrentInstance;
5186var setInSSRSetupState;
5187{
5188	const g = getGlobalThis();
5189	const registerGlobalSetter = (key, setter) => {
5190		let setters;
5191		if (!(setters = g[key])) setters = g[key] = [];
5192		setters.push(setter);
5193		return (v) => {
5194			if (setters.length > 1) setters.forEach((set) => set(v));
5195			else setters[0](v);
5196		};
5197	};
5198	internalSetCurrentInstance = registerGlobalSetter(`__VUE_INSTANCE_SETTERS__`, (v) => currentInstance = v);
5199	setInSSRSetupState = registerGlobalSetter(`__VUE_SSR_SETTERS__`, (v) => isInSSRComponentSetup = v);
5200}
5201var setCurrentInstance = (instance) => {
5202	const prev = currentInstance;
5203	internalSetCurrentInstance(instance);
5204	instance.scope.on();
5205	return () => {
5206		instance.scope.off();
5207		internalSetCurrentInstance(prev);
5208	};
5209};
5210var unsetCurrentInstance = () => {
5211	currentInstance && currentInstance.scope.off();
5212	internalSetCurrentInstance(null);
5213};
5214function isStatefulComponent(instance) {
5215	return instance.vnode.shapeFlag & 4;
5216}
5217var isInSSRComponentSetup = false;
5218function setupComponent(instance, isSSR = false, optimized = false) {
5219	isSSR && setInSSRSetupState(isSSR);
5220	const { props, children } = instance.vnode;
5221	const isStateful = isStatefulComponent(instance);
5222	initProps(instance, props, isStateful, isSSR);
5223	initSlots(instance, children, optimized || isSSR);
5224	const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
5225	isSSR && setInSSRSetupState(false);
5226	return setupResult;
5227}
5228function setupStatefulComponent(instance, isSSR) {
5229	const Component = instance.type;
5230	instance.accessCache = /* @__PURE__ */ Object.create(null);
5231	instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);
5232	const { setup } = Component;
5233	if (setup) {
5234		pauseTracking();
5235		const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
5236		const reset = setCurrentInstance(instance);
5237		const setupResult = callWithErrorHandling(setup, instance, 0, [instance.props, setupContext]);
5238		const isAsyncSetup = isPromise(setupResult);
5239		resetTracking();
5240		reset();
5241		if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) markAsyncBoundary(instance);
5242		if (isAsyncSetup) {
5243			setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
5244			if (isSSR) return setupResult.then((resolvedResult) => {
5245				setInSSRSetupState(true);
5246				try {
5247					handleSetupResult(instance, resolvedResult, isSSR);
5248				} finally {
5249					setInSSRSetupState(false);
5250				}
5251			}).catch((e) => {
5252				handleError(e, instance, 0);
5253			});
5254			else instance.asyncDep = setupResult;
5255		} else handleSetupResult(instance, setupResult, isSSR);
5256	} else finishComponentSetup(instance, isSSR);
5257}
5258function handleSetupResult(instance, setupResult, isSSR) {
5259	if (isFunction(setupResult)) {
5260		if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
5261		else instance.render = setupResult;
5262	} else if (isObject$2(setupResult)) instance.setupState = proxyRefs(setupResult);
5263	finishComponentSetup(instance, isSSR);
5264}
5265function finishComponentSetup(instance, isSSR, skipOptions) {
5266	const Component = instance.type;
5267	if (!instance.render) instance.render = Component.render || NOOP;
5268	{
5269		const reset = setCurrentInstance(instance);
5270		pauseTracking();
5271		try {
5272			applyOptions(instance);
5273		} finally {
5274			resetTracking();
5275			reset();
5276		}
5277	}
5278}
5279var attrsProxyHandlers = { get(target, key) {
5280	track(target, "get", "");
5281	return target[key];
5282} };
5283function createSetupContext(instance) {
5284	const expose = (exposed) => {
5285		instance.exposed = exposed || {};
5286	};
5287	return {
5288		attrs: new Proxy(instance.attrs, attrsProxyHandlers),
5289		slots: instance.slots,
5290		emit: instance.emit,
5291		expose
5292	};
5293}
5294function getComponentPublicInstance(instance) {
5295	if (instance.exposed) return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
5296		get(target, key) {
5297			if (key in target) return target[key];
5298			else if (key in publicPropertiesMap) return publicPropertiesMap[key](instance);
5299		},
5300		has(target, key) {
5301			return key in target || key in publicPropertiesMap;
5302		}
5303	}));
5304	else return instance.proxy;
5305}
5306var classifyRE = /(?:^|[-_])\w/g;
5307var classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, "");
5308function getComponentName(Component, includeInferred = true) {
5309	return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;
5310}
5311function formatComponentName(instance, Component, isRoot = false) {
5312	let name = getComponentName(Component);
5313	if (!name && Component.__file) {
5314		const match = Component.__file.match(/([^/\\]+)\.\w+$/);
5315		if (match) name = match[1];
5316	}
5317	if (!name && instance) {
5318		const inferFromRegistry = (registry) => {
5319			for (const key in registry) if (registry[key] === Component) return key;
5320		};
5321		name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry(instance.parent.type.components) || inferFromRegistry(instance.appContext.components);
5322	}
5323	return name ? classify(name) : isRoot ? `App` : `Anonymous`;
5324}
5325function isClassComponent(value) {
5326	return isFunction(value) && "__vccOpts" in value;
5327}
5328var computed = (getterOrOptions, debugOptions) => {
5329	return /* @__PURE__ */ computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);
5330};
5331function h(type, propsOrChildren, children) {
5332	try {
5333		setBlockTracking(-1);
5334		const l = arguments.length;
5335		if (l === 2) {
5336			if (isObject$2(propsOrChildren) && !isArray(propsOrChildren)) {
5337				if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
5338				return createVNode(type, propsOrChildren);
5339			} else return createVNode(type, null, propsOrChildren);
5340		} else {
5341			if (l > 3) children = Array.prototype.slice.call(arguments, 2);
5342			else if (l === 3 && isVNode(children)) children = [children];
5343			return createVNode(type, propsOrChildren, children);
5344		}
5345	} finally {
5346		setBlockTracking(1);
5347	}
5348}
5349var version = "3.5.43";
5350//#endregion
5351//#region node_modules/.pnpm/@[email protected]/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js
5352/**
5353* @vue/runtime-dom v3.5.43
5354* (c) 2018-present Yuxi (Evan) You and Vue contributors
5355* @license MIT
5356**/
5357var policy = void 0;
5358var tt = typeof window !== "undefined" && window.trustedTypes;
5359if (tt) try {
5360	policy = /* @__PURE__ */ tt.createPolicy("vue", { createHTML: (val) => val });
5361} catch (e) {}
5362var unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;
5363var svgNS = "http://www.w3.org/2000/svg";
5364var mathmlNS = "http://www.w3.org/1998/Math/MathML";
5365var doc = typeof document !== "undefined" ? document : null;
5366var templateContainer = doc && /* @__PURE__ */ doc.createElement("template");
5367var nodeOps = {
5368	insert: (child, parent, anchor) => {
5369		parent.insertBefore(child, anchor || null);
5370	},
5371	remove: (child) => {
5372		const parent = child.parentNode;
5373		if (parent) parent.removeChild(child);
5374	},
5375	createElement: (tag, namespace, is, props) => {
5376		const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag);
5377		if (tag === "select" && props && props.multiple != null) el.setAttribute("multiple", props.multiple);
5378		return el;
5379	},
5380	createText: (text) => doc.createTextNode(text),
5381	createComment: (text) => doc.createComment(text),
5382	setText: (node, text) => {
5383		node.nodeValue = text;
5384	},
5385	setElementText: (el, text) => {
5386		el.textContent = text;
5387	},
5388	parentNode: (node) => node.parentNode,
5389	nextSibling: (node) => node.nextSibling,
5390	querySelector: (selector) => doc.querySelector(selector),
5391	setScopeId(el, id) {
5392		el.setAttribute(id, "");
5393	},
5394	insertStaticContent(content, parent, anchor, namespace, start, end) {
5395		const before = anchor ? anchor.previousSibling : parent.lastChild;
5396		if (start && (start === end || start.nextSibling)) while (true) {
5397			parent.insertBefore(start.cloneNode(true), anchor);
5398			if (start === end || !(start = start.nextSibling)) break;
5399		}
5400		else {
5401			templateContainer.innerHTML = unsafeToTrustedHTML(namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content);
5402			const template = templateContainer.content;
5403			if (namespace === "svg" || namespace === "mathml") {
5404				const wrapper = template.firstChild;
5405				while (wrapper.firstChild) template.appendChild(wrapper.firstChild);
5406				template.removeChild(wrapper);
5407			}
5408			parent.insertBefore(template, anchor);
5409		}
5410		return [before ? before.nextSibling : parent.firstChild, anchor ? anchor.previousSibling : parent.lastChild];
5411	}
5412};
5413var TRANSITION = "transition";
5414var ANIMATION = "animation";
5415var vtcKey = /* @__PURE__ */ Symbol("_vtc");
5416var DOMTransitionPropsValidators = {
5417	name: String,
5418	type: String,
5419	css: {
5420		type: Boolean,
5421		default: true
5422	},
5423	duration: [
5424		String,
5425		Number,
5426		Object
5427	],
5428	enterFromClass: String,
5429	enterActiveClass: String,
5430	enterToClass: String,
5431	appearFromClass: String,
5432	appearActiveClass: String,
5433	appearToClass: String,
5434	leaveFromClass: String,
5435	leaveActiveClass: String,
5436	leaveToClass: String
5437};
5438var TransitionPropsValidators = /* @__PURE__ */ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
5439var decorate$1 = (t) => {
5440	t.displayName = "Transition";
5441	t.props = TransitionPropsValidators;
5442	return t;
5443};
5444var Transition = /* @__PURE__ */ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
5445var callHook = (hook, args = []) => {
5446	if (isArray(hook)) hook.forEach((h2) => h2(...args));
5447	else if (hook) hook(...args);
5448};
5449var hasExplicitCallback = (hook) => {
5450	return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
5451};
5452function resolveTransitionProps(rawProps) {
5453	const baseProps = {};
5454	for (const key in rawProps) if (!(key in DOMTransitionPropsValidators)) baseProps[key] = rawProps[key];
5455	if (rawProps.css === false) return baseProps;
5456	const { name = "v", type, duration, enterFromClass = `${name}-enter-from`, enterActiveClass = `${name}-enter-active`, enterToClass = `${name}-enter-to`, appearFromClass = enterFromClass, appearActiveClass = enterActiveClass, appearToClass = enterToClass, leaveFromClass = `${name}-leave-from`, leaveActiveClass = `${name}-leave-active`, leaveToClass = `${name}-leave-to` } = rawProps;
5457	const durations = normalizeDuration(duration);
5458	const enterDuration = durations && durations[0];
5459	const leaveDuration = durations && durations[1];
5460	const { onBeforeEnter, onEnter, onEnterCancelled, onLeave, onLeaveCancelled, onBeforeAppear = onBeforeEnter, onAppear = onEnter, onAppearCancelled = onEnterCancelled } = baseProps;
5461	const finishEnter = (el, isAppear, done, isCancelled) => {
5462		el._enterCancelled = isCancelled;
5463		removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
5464		removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
5465		done && done();
5466	};
5467	const finishLeave = (el, done) => {
5468		el._isLeaving = false;
5469		removeTransitionClass(el, leaveFromClass);
5470		removeTransitionClass(el, leaveToClass);
5471		removeTransitionClass(el, leaveActiveClass);
5472		done && done();
5473	};
5474	const makeEnterHook = (isAppear) => {
5475		return (el, done) => {
5476			const hook = isAppear ? onAppear : onEnter;
5477			const resolve = () => finishEnter(el, isAppear, done);
5478			callHook(hook, [el, resolve]);
5479			nextFrame(() => {
5480				removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
5481				addTransitionClass(el, isAppear ? appearToClass : enterToClass);
5482				if (!hasExplicitCallback(hook)) whenTransitionEnds(el, type, enterDuration, resolve);
5483			});
5484		};
5485	};
5486	return extend(baseProps, {
5487		onBeforeEnter(el) {
5488			callHook(onBeforeEnter, [el]);
5489			addTransitionClass(el, enterFromClass);
5490			addTransitionClass(el, enterActiveClass);
5491		},
5492		onBeforeAppear(el) {
5493			callHook(onBeforeAppear, [el]);
5494			addTransitionClass(el, appearFromClass);
5495			addTransitionClass(el, appearActiveClass);
5496		},
5497		onEnter: makeEnterHook(false),
5498		onAppear: makeEnterHook(true),
5499		onLeave(el, done) {
5500			el._isLeaving = true;
5501			const resolve = () => finishLeave(el, done);
5502			addTransitionClass(el, leaveFromClass);
5503			if (!el._enterCancelled) {
5504				forceReflow(el);
5505				addTransitionClass(el, leaveActiveClass);
5506			} else {
5507				addTransitionClass(el, leaveActiveClass);
5508				forceReflow(el);
5509			}
5510			nextFrame(() => {
5511				if (!el._isLeaving) return;
5512				removeTransitionClass(el, leaveFromClass);
5513				addTransitionClass(el, leaveToClass);
5514				if (!hasExplicitCallback(onLeave)) whenTransitionEnds(el, type, leaveDuration, resolve);
5515			});
5516			callHook(onLeave, [el, resolve]);
5517		},
5518		onEnterCancelled(el) {
5519			finishEnter(el, false, void 0, true);
5520			callHook(onEnterCancelled, [el]);
5521		},
5522		onAppearCancelled(el) {
5523			finishEnter(el, true, void 0, true);
5524			callHook(onAppearCancelled, [el]);
5525		},
5526		onLeaveCancelled(el) {
5527			finishLeave(el);
5528			callHook(onLeaveCancelled, [el]);
5529		}
5530	});
5531}
5532function normalizeDuration(duration) {
5533	if (duration == null) return null;
5534	else if (isObject$2(duration)) return [NumberOf(duration.enter), NumberOf(duration.leave)];
5535	else {
5536		const n = NumberOf(duration);
5537		return [n, n];
5538	}
5539}
5540function NumberOf(val) {
5541	return toNumber(val);
5542}
5543function addTransitionClass(el, cls) {
5544	cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
5545	(el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);
5546}
5547function removeTransitionClass(el, cls) {
5548	cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
5549	const _vtc = el[vtcKey];
5550	if (_vtc) {
5551		_vtc.delete(cls);
5552		if (!_vtc.size) el[vtcKey] = void 0;
5553	}
5554}
5555function nextFrame(cb) {
5556	requestAnimationFrame(() => {
5557		requestAnimationFrame(cb);
5558	});
5559}
5560var endId = 0;
5561function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {
5562	const id = el._endId = ++endId;
5563	const resolveIfNotStale = () => {
5564		if (id === el._endId) resolve();
5565	};
5566	if (explicitTimeout != null) return setTimeout(resolveIfNotStale, explicitTimeout);
5567	const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
5568	if (!type) return resolve();
5569	const endEvent = type + "end";
5570	let ended = 0;
5571	const end = () => {
5572		el.removeEventListener(endEvent, onEnd);
5573		resolveIfNotStale();
5574	};
5575	const onEnd = (e) => {
5576		if (e.target === el && ++ended >= propCount) end();
5577	};
5578	setTimeout(() => {
5579		if (ended < propCount) end();
5580	}, timeout + 1);
5581	el.addEventListener(endEvent, onEnd);
5582}
5583function getTransitionInfo(el, expectedType) {
5584	const styles = window.getComputedStyle(el);
5585	const getStyleProperties = (key) => (styles[key] || "").split(", ");
5586	const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);
5587	const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);
5588	const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
5589	const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
5590	const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
5591	const animationTimeout = getTimeout(animationDelays, animationDurations);
5592	let type = null;
5593	let timeout = 0;
5594	let propCount = 0;
5595	if (expectedType === TRANSITION) {
5596		if (transitionTimeout > 0) {
5597			type = TRANSITION;
5598			timeout = transitionTimeout;
5599			propCount = transitionDurations.length;
5600		}
5601	} else if (expectedType === ANIMATION) {
5602		if (animationTimeout > 0) {
5603			type = ANIMATION;
5604			timeout = animationTimeout;
5605			propCount = animationDurations.length;
5606		}
5607	} else {
5608		timeout = Math.max(transitionTimeout, animationTimeout);
5609		type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;
5610		propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;
5611	}
5612	const hasTransform = type === TRANSITION && /\b(?:transform|all)(?:,|$)/.test(getStyleProperties(`${TRANSITION}Property`).toString());
5613	return {
5614		type,
5615		timeout,
5616		propCount,
5617		hasTransform
5618	};
5619}
5620function getTimeout(delays, durations) {
5621	while (delays.length < durations.length) delays = delays.concat(delays);
5622	return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
5623}
5624function toMs(s) {
5625	if (s === "auto") return 0;
5626	return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
5627}
5628function forceReflow(el) {
5629	return (el ? el.ownerDocument : document).body.offsetHeight;
5630}
5631function patchClass(el, value, isSVG) {
5632	const transitionClasses = el[vtcKey];
5633	if (transitionClasses) value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
5634	if (value == null) el.removeAttribute("class");
5635	else if (isSVG) el.setAttribute("class", value);
5636	else el.className = value;
5637}
5638var vShowOriginalDisplay = /* @__PURE__ */ Symbol("_vod");
5639var vShowHidden = /* @__PURE__ */ Symbol("_vsh");
5640var vShow = {
5641	name: "show",
5642	beforeMount(el, { value }, { transition }) {
5643		el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display;
5644		if (transition && value) transition.beforeEnter(el);
5645		else setDisplay(el, value);
5646	},
5647	mounted(el, { value }, { transition }) {
5648		if (transition && value) transition.enter(el);
5649	},
5650	updated(el, { value, oldValue }, { transition }) {
5651		if (!value === !oldValue) return;
5652		if (transition) {
5653			if (value) {
5654				transition.beforeEnter(el);
5655				setDisplay(el, true);
5656				transition.enter(el);
5657			} else transition.leave(el, () => {
5658				setDisplay(el, false);
5659			});
5660		} else setDisplay(el, value);
5661	},
5662	beforeUnmount(el, { value }) {
5663		setDisplay(el, value);
5664	}
5665};
5666function setDisplay(el, value) {
5667	el.style.display = value ? el[vShowOriginalDisplay] : "none";
5668	el[vShowHidden] = !value;
5669}
5670var CSS_VAR_TEXT = /* @__PURE__ */ Symbol("");
5671var displayRE = /(?:^|;)\s*display\s*:/;
5672function patchStyle(el, prev, next) {
5673	const style = el.style;
5674	const isCssString = isString(next);
5675	let hasControlledDisplay = false;
5676	if (next && !isCssString) {
5677		if (prev) {
5678			if (!isString(prev)) {
5679				for (const key in prev) if (next[key] == null) setStyle(style, key, "");
5680			} else for (const prevStyle of prev.split(";")) {
5681				const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
5682				if (next[key] == null) setStyle(style, key, "");
5683			}
5684		}
5685		for (const key in next) {
5686			if (key === "display") hasControlledDisplay = true;
5687			const value = next[key];
5688			if (value != null) {
5689				if (!shouldPreserveTextareaResizeStyle(el, key, !isString(prev) && prev ? prev[key] : void 0, value)) setStyle(style, key, value);
5690			} else setStyle(style, key, "");
5691		}
5692	} else if (isCssString) {
5693		if (prev !== next) {
5694			const cssVarText = style[CSS_VAR_TEXT];
5695			if (cssVarText) next += ";" + cssVarText;
5696			style.cssText = next;
5697			hasControlledDisplay = displayRE.test(next);
5698		}
5699	} else if (prev) el.removeAttribute("style");
5700	if (vShowOriginalDisplay in el) {
5701		el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
5702		if (el[vShowHidden]) style.display = "none";
5703	}
5704}
5705var importantRE = /\s*!important$/;
5706function setStyle(style, name, val) {
5707	if (isArray(val)) val.forEach((v) => setStyle(style, name, v));
5708	else {
5709		if (val == null) val = "";
5710		if (name.startsWith("--")) {
5711			if (importantRE.test(val)) style.setProperty(name, val.replace(importantRE, ""), "important");
5712			else style.setProperty(name, val);
5713		} else {
5714			const prefixed = autoPrefix(style, name);
5715			if (importantRE.test(val)) style.setProperty(hyphenate$1(prefixed), val.replace(importantRE, ""), "important");
5716			else style[prefixed] = val;
5717		}
5718	}
5719}
5720var prefixes = [
5721	"Webkit",
5722	"Moz",
5723	"ms"
5724];
5725var prefixCache = {};
5726function autoPrefix(style, rawName) {
5727	const cached = prefixCache[rawName];
5728	if (cached) return cached;
5729	let name = camelize$1(rawName);
5730	if (name !== "filter" && name in style) return prefixCache[rawName] = name;
5731	name = capitalize(name);
5732	for (let i = 0; i < prefixes.length; i++) {
5733		const prefixed = prefixes[i] + name;
5734		if (prefixed in style) return prefixCache[rawName] = prefixed;
5735	}
5736	return rawName;
5737}
5738function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
5739	return el.tagName === "TEXTAREA" && (key === "width" || key === "height") && isString(next) && prev === next;
5740}
5741var xlinkNS = "http://www.w3.org/1999/xlink";
5742function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
5743	if (isSVG && key.startsWith("xlink:")) {
5744		if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
5745		else el.setAttributeNS(xlinkNS, key, value);
5746	} else if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
5747	else el.setAttribute(key, isBoolean ? "" : isSymbol(value) ? String(value) : value);
5748}
5749function patchDOMProp(el, key, value, parentComponent, attrName) {
5750	if (key === "innerHTML" || key === "textContent") {
5751		if (value != null) el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value;
5752		return;
5753	}
5754	const tag = el.tagName;
5755	if (key === "value" && tag !== "PROGRESS" && !tag.includes("-")) {
5756		const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value;
5757		const newValue = value == null ? el.type === "checkbox" ? "on" : "" : String(value);
5758		if (oldValue !== newValue || !("_value" in el)) el.value = newValue;
5759		if (value == null) el.removeAttribute(key);
5760		el._value = value;
5761		return;
5762	}
5763	let needRemove = false;
5764	if (value === "" || value == null) {
5765		const type = typeof el[key];
5766		if (type === "boolean") value = includeBooleanAttr(value);
5767		else if (value == null && type === "string") {
5768			value = "";
5769			needRemove = true;
5770		} else if (type === "number") {
5771			value = 0;
5772			needRemove = true;
5773		}
5774	}
5775	try {
5776		el[key] = value;
5777	} catch (e) {}
5778	needRemove && el.removeAttribute(attrName || key);
5779}
5780function addEventListener(el, event, handler, options) {
5781	el.addEventListener(event, handler, options);
5782}
5783function removeEventListener(el, event, handler, options) {
5784	el.removeEventListener(event, handler, options);
5785}
5786var veiKey = /* @__PURE__ */ Symbol("_vei");
5787function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
5788	const invokers = el[veiKey] || (el[veiKey] = {});
5789	const existingInvoker = invokers[rawName];
5790	if (nextValue && existingInvoker) existingInvoker.value = nextValue;
5791	else {
5792		const [name, options] = parseName(rawName);
5793		if (nextValue) addEventListener(el, name, invokers[rawName] = createInvoker(nextValue, instance), options);
5794		else if (existingInvoker) {
5795			removeEventListener(el, name, existingInvoker, options);
5796			invokers[rawName] = void 0;
5797		}
5798	}
5799}
5800var optionsModifierRE = /(Once|Passive|Capture)$/;
5801var optionsModifierEventRE = /^on:?(?:Once|Passive|Capture)$/;
5802function parseName(name) {
5803	let options;
5804	let m;
5805	while ((m = name.match(optionsModifierRE)) && !optionsModifierEventRE.test(name)) {
5806		if (!options) options = {};
5807		name = name.slice(0, name.length - m[1].length);
5808		options[m[1].toLowerCase()] = true;
5809	}
5810	return [name[2] === ":" ? name.slice(3) : hyphenate$1(name.slice(2)), options];
5811}
5812var cachedNow = 0;
5813var p = /* @__PURE__ */ Promise.resolve();
5814var getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
5815function createInvoker(initialValue, instance) {
5816	const invoker = (e) => {
5817		if (!e._vts) e._vts = Date.now();
5818		else if (e._vts <= invoker.attached) return;
5819		const value = invoker.value;
5820		if (isArray(value)) {
5821			const originalStop = e.stopImmediatePropagation;
5822			e.stopImmediatePropagation = () => {
5823				originalStop.call(e);
5824				e._stopped = true;
5825			};
5826			const handlers = value.slice();
5827			const args = [e];
5828			for (let i = 0; i < handlers.length; i++) {
5829				if (e._stopped) break;
5830				const handler = handlers[i];
5831				if (handler) callWithAsyncErrorHandling(handler, instance, 5, args);
5832			}
5833		} else callWithAsyncErrorHandling(value, instance, 5, [e]);
5834	};
5835	invoker.value = initialValue;
5836	invoker.attached = getNow();
5837	return invoker;
5838}
5839var isNativeOn = (key) =>
5839 key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;
5840var patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {
5841	const isSVG = namespace === "svg";
5842	if (key === "class") patchClass(el, nextValue, isSVG);
5843	else if (key === "style") patchStyle(el, prevValue, nextValue);
5844	else if (isOn(key)) {
5845		if (!isModelListener(key)) patchEvent(el, key, prevValue, nextValue, parentComponent);
5846	} else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
5847		patchDOMProp(el, key, nextValue);
5848		if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value");
5849	} else if (el._isVueCE && (shouldSetAsPropForVueCE(el, key) || el._def.__asyncLoader && (/[A-Z]/.test(key) || !isString(nextValue)))) patchDOMProp(el, camelize$1(key), nextValue, parentComponent, key);
5850	else {
5851		if (key === "true-value") el._trueValue = nextValue;
5852		else if (key === "false-value") el._falseValue = nextValue;
5853		patchAttr(el, key, nextValue, isSVG);
5854	}
5855};
5856function shouldSetAsProp(el, key, value, isSVG) {
5857	if (isSVG) {
5858		if (key === "innerHTML" || key === "textContent") return true;
5859		if (key in el && isNativeOn(key) && isFunction(value)) return true;
5860		return false;
5861	}
5862	if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") return false;
5863	if (key === "sandbox" && el.tagName === "IFRAME") return false;
5864	if (key === "form") return false;
5865	if (key === "list" && el.tagName === "INPUT") return false;
5866	if (key === "type" && el.tagName === "TEXTAREA") return false;
5867	if (key === "width" || key === "height") {
5868		const tag = el.tagName;
5869		if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") return false;
5870	}
5871	if (isNativeOn(key) && isString(value)) return false;
5872	return key in el;
5873}
5874function shouldSetAsPropForVueCE(el, key) {
5875	const props = el._def.props;
5876	if (!props) return false;
5877	const camelKey = camelize$1(key);
5878	return Array.isArray(props) ? props.some((prop) => camelize$1(prop) === camelKey) : Object.keys(props).some((prop) => camelize$1(prop) === camelKey);
5879}
5880var getModelAssigner = (vnode) => {
5881	const fn = vnode.props["onUpdate:modelValue"] || false;
5882	return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn;
5883};
5884function onCompositionStart(e) {
5885	e.target.composing = true;
5886}
5887function onCompositionEnd(e) {
5888	const target = e.target;
5889	if (target.composing) {
5890		target.composing = false;
5891		target.dispatchEvent(new Event("input"));
5892	}
5893}
5894var assignKey = /* @__PURE__ */ Symbol("_assign");
5895var initialValueKey = /* @__PURE__ */ Symbol("_initialValue");
5896function castValue(value, trim, number) {
5897	if (trim) value = value.trim();
5898	if (number) value = looseToNumber(value);
5899	return value;
5900}
5901var vModelText = {
5902	created(el, { modifiers: { lazy, trim, number } }, vnode) {
5903		if (el.parentNode) {
5904			if (el.type === "text") el[initialValueKey] = el.defaultValue.replace(/[\r\n]/g, "");
5905			else if (el.type === "textarea") el[initialValueKey] = el.defaultValue.replace(/\r\n?/g, "\n");
5906		}
5907		el[assignKey] = getModelAssigner(vnode);
5908		const castToNumber = number || vnode.props && vnode.props.type === "number";
5909		addEventListener(el, lazy ? "change" : "input", (e) => {
5910			if (e.target.composing) return;
5911			el[assignKey](castValue(el.value, trim, castToNumber));
5912		});
5913		if (trim || castToNumber) addEventListener(el, "change", () => {
5914			el.value = castValue(el.value, trim, castToNumber);
5915		});
5916		if (!lazy) {
5917			addEventListener(el, "compositionstart", onCompositionStart);
5918			addEventListener(el, "compositionend", onCompositionEnd);
5919			addEventListener(el, "change", onCompositionEnd);
5920		}
5921	},
5922	mounted(el, { value, modifiers: { trim, number } }) {
5923		const newValue = value == null ? "" : value;
5924		const initialValue = el[initialValueKey];
5925		delete el[initialValueKey];
5926		if (initialValue !== void 0 && (el.type === "text" || el.type === "textarea") && el.value !== initialValue) el[assignKey](castValue(el.value, trim, number));
5927		else el.value = newValue;
5928	},
5929	beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
5930		el[assignKey] = getModelAssigner(vnode);
5931		if (el.composing) return;
5932		const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? looseToNumber(el.value) : el.value;
5933		const newValue = value == null ? "" : value;
5934		if (elValue === newValue) return;
5935		const rootNode = el.getRootNode();
5936		if ((rootNode instanceof Document || rootNode instanceof ShadowRoot) && rootNode.activeElement === el && el.type !== "range") {
5937			if (lazy && value === oldValue) return;
5938			if (trim && el.value.trim() === newValue) return;
5939		}
5940		el.value = newValue;
5941	}
5942};
5943var vModelSelect = {
5944	deep: true,
5945	created(el, { value, modifiers: { number } }, vnode) {
5946		el._modelValue = value;
5947		addEventListener(el, "change", () => {
5948			const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
5949			const multiple = el.multiple;
5950			const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
5951			const pending = el._pendingValue = [multiple, multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue];
5952			try {
5953				el[assignKey](assignedValue);
5954			} finally {
5955				nextTick(() => {
5956					if (el._pendingValue === pending) el._pendingValue = void 0;
5957				});
5958			}
5959		});
5960		el[assignKey] = getModelAssigner(vnode);
5961	},
5962	mounted(el, { value }) {
5963		setSelected(el, value);
5964	},
5965	beforeUpdate(el, { value }, vnode) {
5966		el._modelValue = value;
5967		el[assignKey] = getModelAssigner(vnode);
5968	},
5969	updated(el, { value }) {
5970		const pending = el._pendingValue;
5971		el._pendingValue = void 0;
5972		if (!pending || pending[0] !== el.multiple || !isSameSelectValue(value, pending[1], pending[0])) setSelected(el, value);
5973	}
5974};
5975function isSameSelectValue(value, assignedValue, multiple) {
5976	if (!multiple) return looseEqual(value, assignedValue);
5977	if (isArray(value)) return looseEqual(value, assignedValue);
5978	if (isSet(value)) {
5979		if (value.size !== assignedValue.length) return false;
5980		for (const item of assignedValue) if (!value.has(item)) return false;
5981		return true;
5982	}
5983	return false;
5984}
5985function setSelected(el, value) {
5986	const isMultiple = el.multiple;
5987	const isArrayValue = isArray(value);
5988	if (isMultiple && !isArrayValue && !isSet(value)) return;
5989	for (let i = 0, l = el.options.length; i < l; i++) {
5990		const option = el.options[i];
5991		const optionValue = getValue(option);
5992		if (isMultiple) {
5993			if (isArrayValue) {
5994				const optionType = typeof optionValue;
5995				if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
5996				else option.selected = looseIndexOf(value, optionValue) > -1;
5997			} else option.selected = value.has(optionValue);
5998		} else if (looseEqual(getValue(option), value)) {
5999			if (el.selectedIndex !== i) el.selectedIndex = i;
6000			return;
6001		}
6002	}
6003	if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
6004}
6005function getValue(el) {
6006	return "_value" in el ? el._value : el.value;
6007}
6008var systemModifiers = [
6009	"ctrl",
6010	"shift",
6011	"alt",
6012	"meta"
6013];
6014var modifierGuards = {
6015	stop: (e) => e.stopPropagation(),
6016	prevent: (e) => e.preventDefault(),
6017	self: (e) => e.target !== e.currentTarget,
6018	ctrl: (e) => !e.ctrlKey,
6019	shift: (e) => !e.shiftKey,
6020	alt: (e) => !e.altKey,
6021	meta: (e) => !e.metaKey,
6022	left: (e) => "button" in e && e.button !== 0,
6023	middle: (e) => "button" in e && e.button !== 1,
6024	right: (e) => "button" in e && e.button !== 2,
6025	exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))
6026};
6027var withModifiers = (fn, modifiers) => {
6028	if (!fn) return fn;
6029	const cache = fn._withMods || (fn._withMods = {});
6030	const cacheKey = modifiers.join(".");
6031	return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => {
6032		for (let i = 0; i < modifiers.length; i++) {
6033			const guard = modifierGuards[modifiers[i]];
6034			if (guard && guard(event, modifiers)) return;
6035		}
6036		return fn(event, ...args);
6037	}));
6038};
6039var rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
6040var renderer;
6041var enabledHydration = false;
6042function ensureRenderer() {
6043	return renderer || (renderer = createRenderer(rendererOptions));
6044}
6045function ensureHydrationRenderer() {
6046	renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions);
6047	enabledHydration = true;
6048	return renderer;
6049}
6050var createApp = ((...args) => {
6051	const app = ensureRenderer().createApp(...args);
6052	const { mount } = app;
6053	app.mount = (containerOrSelector) => {
6054		const container = normalizeContainer(containerOrSelector);
6055		if (!container) return;
6056		const component = app._component;
6057		if (!isFunction(component) && !component.render && !component.template) component.template = container.innerHTML;
6058		if (container.nodeType === 1) container.textContent = "";
6059		const proxy = mount(container, false, resolveRootNamespace(container));
6060		if (container instanceof Element) {
6061			container.removeAttribute("v-cloak");
6062			container.setAttribute("data-v-app", "");
6063		}
6064		return proxy;
6065	};
6066	return app;
6067});
6068var createSSRApp = ((...args) => {
6069	const app = ensureHydrationRenderer().createApp(...args);
6070	const { mount } = app;
6071	app.mount = (containerOrSelector) => {
6072		const container = normalizeContainer(containerOrSelector);
6073		if (container) return mount(container, true, resolveRootNamespace(container));
6074	};
6075	return app;
6076});
6077function resolveRootNamespace(container) {
6078	if (container instanceof SVGElement) return "svg";
6079	if (typeof MathMLElement === "function" && container instanceof MathMLElement) return "mathml";
6080}
6081function normalizeContainer(container) {
6082	if (isString(container)) return document.querySelector(container);
6083	return container;
6084}
6085//#endregion
6086//#region node_modules/.pnpm/[email protected][email protected][email protected][email protected]/node_modules/vitepress/dist/client/app/components/ClientOnly.js
6087var ClientOnly = /* @__PURE__ */ defineComponent({ setup(_, { slots }) {
6088	const show = /* @__PURE__ */ ref(false);
6089	onMounted(() => {
6090		show.value = true;
6091	});
6092	return () => show.value && slots.default ? slots.default() : null;
6093} });
6094//#endregion
6095//#region node_modules/.pnpm/[email protected][email protected][email protected][email protected]/node_modules/vitepress/dist/client/shared.js
6096var EXTERNAL_URL_RE = /^(?:[a-z]+:|\/\/)/i;
6097var APPEARANCE_KEY = "vitepress-theme-appearance";
6098var iconNameRE = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
6099/**
6100* Parses a fully qualified `collection:name` icon name, corresponding to
6101* the `vpi-<collection>-<name>` class. Returns null for anything else,
6102* keeping malformed input out of generated selectors and class attributes.
6103*/
6104function parseIconName(name) {
6105	const colon = name.indexOf(":");
6106	if (colon === -1) return null;
6107	const collection = name.slice(0, colon);
6108	const icon = name.slice(colon + 1);
6109	if (!iconNameRE.test(collection) || !iconNameRE.test(icon)) return null;
6110	return {
6111		collection,
6112		icon
6113	};
6114}
6115/**
6116* Placeholder prepended to SSR-emitted URLs when base is relative, later
6117* replaced with each page's `../` prefix back to the site root.
6118*/
6119var RELATIVE_BASE_SENTINEL = "/__VP_BASE__/";
6120function isRelativeBase(base) {
6121	return base === "./";
6122}
6123/**
6124* Join two paths, collapsing slash collisions but keeping the `//` that
6125* follows a protocol.
6126*/
6127function joinPath(base, path) {
6128	const protocol = /^(?:[a-z]+:)?\/\//i.exec(base)?.[0] ?? "";
6129	return protocol + `${base.slice(protocol.length)}${path}`.replace(/\/+/g, "/");
6130}
6131var UnpackStackView = Symbol("stack-view:unpack");
6132var HASH_WITHOUT_FRAGMENT_RE = /#.*?(?=:~:|$)/;
6133var HASH_OR_QUERY_RE = /[?#].*$/;
6134var INDEX_OR_EXT_RE = /(?:(^|\/)index)?(?:\.(?:md|html))?$/;
6135var INVALID_CHAR_REGEX = /[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g;
6136var DRIVE_LETTER_REGEX = /^[a-z]:/i;
6137var KNOWN_EXTENSIONS = /* @__PURE__ */ new Set();
6138var shellLangs = [
6139	"shellscript",
6140	"shell",
6141	"bash",
6142	"sh",
6143	"zsh"
6144];
6145var inBrowser = typeof document !== "undefined";
6146var notFoundPageData = {
6147	relativePath: "404.md",
6148	filePath: "",
6149	title: "404",
6150	description: "Not Found",
6151	headers: [],
6152	frontmatter: {
6153		sidebar: false,
6154		layout: "page"
6155	},
6156	lastUpdated: 0,
6157	isNotFound: true
6158};
6159function isActive(currentPath, currentHash, matchPath, asRegex = false, skipHashCheck = false) {
6160	currentPath = normalize(`/${currentPath}`);
6161	if (asRegex) return new RegExp(matchPath).test(currentPath);
6162	if (normalize(matchPath) !== currentPath) return false;
6163	if (skipHashCheck) return true;
6164	const hashMatch = matchPath.match(HASH_WITHOUT_FRAGMENT_RE);
6165	if (hashMatch) return currentHash === hashMatch[0];
6166	return true;
6167}
6168function normalize(path) {
6169	return decodeURI(path).replace(HASH_OR_QUERY_RE, "").replace(INDEX_OR_EXT_RE, "$1");
6170}
6171function isExternal(path) {
6172	return EXTERNAL_URL_RE.test(path);
6173}
6174function getLocaleForPath(siteData, relativePath) {
6175	return Object.keys(siteData?.locales || {}).find((key) => key !== "root" && !isExternal(key) && isActive(relativePath, "", `^/${key}/`, true)) || "root";
6176}
6177/**
6178* Resolves the site data for a route, layering the matched locale and
6179* additional configs over the root config.
6180*/
6181function resolveSiteDataByRoute(siteData, relativePath, filePath) {
6182	const localeIndex = getLocaleForPath(siteData, relativePath);
6183	const { label, link, markdown, ...localeConfig } = siteData.locales[localeIndex] ?? {};
6184	Object.assign(localeConfig, { localeIndex });
6185	const additionalConfigs = resolveAdditionalConfig(siteData, filePath || relativePath);
6186	return stackView({ head: mergeHead(siteData.head ?? [], localeConfig.head ?? [], ...additionalConfigs.map((data) => data.head ?? []).reverse()) }, ...additionalConfigs, localeConfig, siteData);
6187}
6188/**
6189* Create the page title string based on config.
6190*/
6191function createTitle(siteData, pageData) {
6192	const title = pageData.title || siteData.title;
6193	const template = pageData.titleTemplate ?? siteData.titleTemplate;
6194	if (typeof template === "string" && template.includes(":title")) return template.replace(/:title/g, title);
6195	const templateString = createTitleTemplate(siteData.title, template);
6196	if (title === templateString.slice(3)) return title;
6197	return `${title}${templateString}`;
6198}
6199function createTitleTemplate(siteTitle, template) {
6200	if (template === false) return "";
6201	if (template === true || template === void 0) return ` | ${siteTitle}`;
6202	if (siteTitle === template) return "";
6203	return ` | ${template}`;
6204}
6205function mergeHead(...headArrays) {
6206	const merged = [];
6207	const keyMap = /* @__PURE__ */ new Map();
6208	for (const current of headArrays) for (const tag of current) {
6209		const key = getHeadKey(tag);
6210		if (key == null) {
6211			merged.push(tag);
6212			continue;
6213		}
6214		const existingIndex = keyMap.get(key);
6215		if (existingIndex != null) merged[existingIndex] = tag;
6216		else {
6217			keyMap.set(key, merged.length);
6218			merged.push(tag);
6219		}
6220	}
6221	return merged;
6222}
6223function getHeadKey([type, attrs]) {
6224	if (attrs.id) return `id=${attrs.id}`;
6225	if (type !== "meta") return;
6226	for (const name in attrs) if (name !== "content") return `${name}=${attrs[name]}`;
6227}
6228function sanitizeFileName(name) {
6229	const match = DRIVE_LETTER_REGEX.exec(name);
6230	const driveLetter = match ? match[0] : "";
6231	return driveLetter + name.slice(driveLetter.length).replace(INVALID_CHAR_REGEX, "_").replace(/(^|\/)_+(?=[^/]*$)/, "$1");
6232}
6233function treatAsHtml(filename) {
6234	if (KNOWN_EXTENSIONS.size === 0) {
6235		const extraExts = {}.VITE_EXTRA_EXTENSIONS || "";
6236		("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip" + (extraExts && typeof extraExts === "string" ? "," + extraExts : "")).split(",").forEach((ext) => KNOWN_EXTENSIONS.add(ext));
6237	}
6238	const ext = filename.split(".").pop();
6239	return ext == null || !KNOWN_EXTENSIONS.has(ext.toLowerCase());
6240}
6241function escapeRegExp(str) {
6242	return str.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
6243}
6244function resolveAdditionalConfig({ additionalConfig }, path) {
6245	if (additionalConfig === void 0) return [];
6246	if (typeof additionalConfig === "function") return additionalConfig(path) ?? [];
6247	const configs = [];
6248	const segments = path.split("/").slice(0, -1);
6249	while (segments.length) {
6250		const key = `/${segments.join("/")}/`;
6251		configs.push(additionalConfig[key]);
6252		segments.pop();
6253	}
6254	configs.push(additionalConfig["/"]);
6255	return configs.filter((config) => config !== void 0);
6256}
6257/**
6258* Creates a readonly proxy behaving like a deep merge of the given layers,
6259* without mutating them. Earlier layers take precedence.
6260*/
6261function stackView(..._layers) {
6262	const layers = _layers.filter((layer) => isObject$1(layer));
6263	if (layers.length <= 1) return _layers[0];
6264	const allKeys = new Set(layers.flatMap((layer) => Reflect.ownKeys(layer)));
6265	const allKeysArray = [...allKeys];
6266	return new Proxy({}, {
6267		get(_, prop) {
6268			if (prop === UnpackStackView) return layers;
6269			return stackView(...layers.map((layer) => layer[prop]).filter((v) => v !== void 0));
6270		},
6271		set() {
6272			throw new Error("StackView is read-only and cannot be mutated.");
6273		},
6274		has(_, prop) {
6275			return allKeys.has(prop);
6276		},
6277		ownKeys() {
6278			return allKeysArray;
6279		},
6280		getOwnPropertyDescriptor(_, prop) {
6281			for (const layer of layers) {
6282				const descriptor = Object.getOwnPropertyDescriptor(layer, prop);
6283				if (descriptor) return descriptor;
6284			}
6285		}
6286	});
6287}
6288stackView.unpack = function(obj) {
6289	return obj?.[UnpackStackView];
6290};
6291function isObject$1(value) {
6292	return Object.prototype.toString.call(value) === "[object Object]";
6293}
6294function isShell(lang) {
6295	return shellLangs.includes(lang);
6296}
6297//#endregion
6298//#region node_modules/.pnpm/@[email protected][email protected]/node_modules/@vueuse/shared/dist/index.js
6299/**
6300* Call onScopeDispose() if it's inside an effect scope lifecycle, if not, do nothing
6301*
6302* @param fn
6303*/
6304function tryOnScopeDispose(fn, failSilently) {
6305	if (getCurrentScope()) {
6306		onScopeDispose(fn, failSilently);
6307		return true;
6308	}
6309	return false;
6310}
6311var localProvidedStateMap = /* @__PURE__ */ new WeakMap();
6312/**
6313* On the basis of `inject`, it is allowed to directly call inject to obtain the value after call provide in the same component.
6314*
6315* @example
6316* ```ts
6317* injectLocal('MyInjectionKey', 1)
6318* const injectedValue = injectLocal('MyInjectionKey') // injectedValue === 1
6319* ```
6320*
6321* @__NO_SIDE_EFFECTS__
6322*/
6323var injectLocal = (...args) => {
6324	var _getCurrentInstance;
6325	const key = args[0];
6326	const instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;
6327	const owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();
6328	if (owner == null && !hasInjectionContext()) throw new Error("injectLocal must be called in setup");
6329	if (owner && localProvidedStateMap.has(owner) && key in localProvidedStateMap.get(owner)) return localProvidedStateMap.get(owner)[key];
6330	return inject(...args);
6331};
6332var isClient = typeof window !== "undefined" && typeof document !== "undefined";
6333typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
6334var notNullish = (val) => val != null;
6335var toString = Object.prototype.toString;
6336var isObject = (val) => toString.call(val) === "[object Object]";
6337var noop = () => {};
6338function toRef(...args) {
6339	if (args.length !== 1) return /* @__PURE__ */ toRef$1(...args);
6340	const r = args[0];
vendor: 8,429 bytes, lines 6341-6626
6341	return typeof r === "function" ? /* @__PURE__ */ readonly(customRef(() => ({
6342		get: r,
6343		set: noop
6344	}))) : /* @__PURE__ */ ref(r);
6345}
6346function createFilterWrapper(filter, fn) {
6347	function wrapper(...args) {
6348		return new Promise((resolve, reject) => {
6349			Promise.resolve(filter(() => fn.apply(this, args), {
6350				fn,
6351				thisArg: this,
6352				args
6353			})).then(resolve).catch(reject);
6354		});
6355	}
6356	if ("cancel" in filter) Object.assign(wrapper, {
6357		cancel: filter.cancel,
6358		flush: filter.flush,
6359		isPending: filter.isPending
6360	});
6361	return wrapper;
6362}
6363var bypassFilter = (invoke) => {
6364	return invoke();
6365};
6366/**
6367* Create an EventFilter that debounce the events
6368*/
6369function debounceFilter(ms, options = {}) {
6370	let timer;
6371	let maxTimer;
6372	let lastRejector = noop;
6373	let lastResolve = noop;
6374	const _pending = /* @__PURE__ */ shallowRef(false);
6375	const _clearTimeout = (timer) => {
6376		clearTimeout(timer);
6377		lastRejector();
6378		lastRejector = noop;
6379	};
6380	let lastInvoker;
6381	const handler = (invoke) => {
6382		const duration = toValue(ms);
6383		const maxDuration = toValue(options.maxWait);
6384		if (timer) _clearTimeout(timer);
6385		if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {
6386			if (maxTimer) {
6387				_clearTimeout(maxTimer);
6388				maxTimer = void 0;
6389			}
6390			_pending.value = false;
6391			return Promise.resolve(invoke());
6392		}
6393		_pending.value = true;
6394		return new Promise((resolve, reject) => {
6395			lastRejector = options.rejectOnCancel ? reject : resolve;
6396			lastResolve = resolve;
6397			lastInvoker = invoke;
6398			if (maxDuration && !maxTimer) maxTimer = setTimeout(() => {
6399				if (timer) _clearTimeout(timer);
6400				maxTimer = void 0;
6401				_pending.value = false;
6402				resolve(lastInvoker());
6403			}, maxDuration);
6404			timer = setTimeout(() => {
6405				if (maxTimer) _clearTimeout(maxTimer);
6406				maxTimer = void 0;
6407				_pending.value = false;
6408				resolve(invoke());
6409			}, duration);
6410		});
6411	};
6412	return Object.assign(handler, {
6413		cancel: () => {
6414			if (timer) {
6415				_clearTimeout(timer);
6416				timer = void 0;
6417			}
6418			if (maxTimer) {
6419				_clearTimeout(maxTimer);
6420				maxTimer = void 0;
6421			}
6422			_pending.value = false;
6423			lastResolve = noop;
6424		},
6425		flush: () => {
6426			if (_pending.value) {
6427				if (timer) {
6428					clearTimeout(timer);
6429					timer = void 0;
6430				}
6431				if (maxTimer) {
6432					clearTimeout(maxTimer);
6433					maxTimer = void 0;
6434				}
6435				_pending.value = false;
6436				const resolve = lastResolve;
6437				lastRejector = noop;
6438				lastResolve = noop;
6439				resolve(lastInvoker());
6440			}
6441		},
6442		isPending: /* @__PURE__ */ shallowReadonly(_pending)
6443	});
6444}
6445function throttleFilter(...args) {
6446	let lastExec = 0;
6447	let timer;
6448	let isLeading = true;
6449	let lastRejector = noop;
6450	let lastValue;
6451	let ms;
6452	let trailing;
6453	let leading;
6454	let rejectOnCancel;
6455	if (!/* @__PURE__ */ isRef(args[0]) && typeof args[0] === "object") ({delay: ms, trailing = true, leading = true, rejectOnCancel = false} = args[0]);
6456	else [ms, trailing = true, leading = true, rejectOnCancel = false] = args;
6457	const clear = () => {
6458		if (timer) {
6459			clearTimeout(timer);
6460			timer = void 0;
6461			lastRejector();
6462			lastRejector = noop;
6463		}
6464	};
6465	const filter = (_invoke) => {
6466		const duration = toValue(ms);
6467		const elapsed = Date.now() - lastExec;
6468		const invoke = () => {
6469			return lastValue = _invoke();
6470		};
6471		clear();
6472		if (duration <= 0) {
6473			lastExec = Date.now();
6474			return invoke();
6475		}
6476		if (elapsed > duration) {
6477			lastExec = Date.now();
6478			if (leading || !isLeading) invoke();
6479		} else if (trailing) lastValue = new Promise((resolve, reject) => {
6480			lastRejector = rejectOnCancel ? reject : resolve;
6481			timer = setTimeout(() => {
6482				lastExec = Date.now();
6483				isLeading = true;
6484				resolve(invoke());
6485				clear();
6486			}, Math.max(0, duration - elapsed));
6487		});
6488		if (!leading && !timer) timer = setTimeout(() => isLeading = true, duration);
6489		isLeading = false;
6490		return lastValue;
6491	};
6492	return filter;
6493}
6494/**
6495* EventFilter that gives extra controls to pause and resume the filter
6496*
6497* @param extendFilter  Extra filter to apply when the PausableFilter is active, default to none
6498* @param options Options to configure the filter
6499*/
6500function pausableFilter(extendFilter = bypassFilter, options = {}) {
6501	const { initialState = "active" } = options;
6502	const isActive = toRef(initialState === "active");
6503	function pause() {
6504		isActive.value = false;
6505	}
6506	function resume() {
6507		isActive.value = true;
6508	}
6509	const eventFilter = (...args) => {
6510		if (isActive.value) extendFilter(...args);
6511	};
6512	return {
6513		isActive: /* @__PURE__ */ shallowReadonly(isActive),
6514		pause,
6515		resume,
6516		eventFilter
6517	};
6518}
6519/**
6520* Get a px value for SSR use, do not rely on this method outside of SSR as REM unit is assumed at 16px, which might not be the case on the client
6521*/
6522function pxValue(px) {
6523	return px.endsWith("rem") ? Number.parseFloat(px) * 16 : Number.parseFloat(px);
6524}
6525function toArray(value) {
6526	return Array.isArray(value) ? value : [value];
6527}
6528function getLifeCycleTarget(target) {
6529	return target || getCurrentInstance();
6530}
6531/**
6532* Debounce execution of a function.
6533*
6534* @see https://vueuse.org/useDebounceFn
6535* @param  fn          A function to be executed after delay milliseconds debounced.
6536* @param  ms          A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.
6537* @param  options     Options
6538*
6539* @return A new, debounced, function with isPending, cancel, and flush properties.
6540*/
6541function useDebounceFn(fn, ms = 200, options = {}) {
6542	return createFilterWrapper(debounceFilter(ms, options), fn);
6543}
6544/**
6545* Throttle execution of a function. Especially useful for rate limiting
6546* execution of handlers on events like resize and scroll.
6547*
6548* @param   fn             A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,
6549*                                    to `callback` when the throttled-function is executed.
6550* @param   ms             A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.
6551*                                    (default value: 200)
6552*
6553* @param [trailing] if true, call fn again after the time is up (default value: false)
6554*
6555* @param [leading] if true, call fn on the leading edge of the ms timeout (default value: true)
6556*
6557* @param [rejectOnCancel] if true, reject the last call if it's been cancel (default value: false)
6558*
6559* @return  A new, throttled, function.
6560*
6561* @__NO_SIDE_EFFECTS__
6562*/
6563function useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {
6564	return createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn);
6565}
6566function watchWithFilter(source, cb, options = {}) {
6567	const { eventFilter = bypassFilter, ...watchOptions } = options;
6568	return watch(source, createFilterWrapper(eventFilter, cb), watchOptions);
6569}
6570/** @deprecated Use Vue's built-in `watch` instead. This function will be removed in future version. */
6571function watchPausable(source, cb, options = {}) {
6572	const { eventFilter: filter, initialState = "active", ...watchOptions } = options;
6573	const { eventFilter, pause, resume, isActive } = pausableFilter(filter, { initialState });
6574	return {
6575		stop: watchWithFilter(source, cb, {
6576			...watchOptions,
6577			eventFilter
6578		}),
6579		pause,
6580		resume,
6581		isActive
6582	};
6583}
6584/**
6585* Call onMounted() if it's inside a component lifecycle, if not, just call the function
6586*
6587* @param fn
6588* @param sync if set to false, it will run in the nextTick() of Vue
6589* @param target
6590*/
6591function tryOnMounted(fn, sync = true, target) {
6592	if (getLifeCycleTarget(target)) onMounted(fn, target);
6593	else if (sync) fn();
6594	else nextTick(fn);
6595}
6596/**
6597* Call onUnmounted() if it's inside a component lifecycle, if not, do nothing
6598*
6599* @param fn
6600* @param target
6601*/
6602function tryOnUnmounted(fn, target) {
6603	if (getLifeCycleTarget(target)) onUnmounted(fn, target);
6604}
6605function watchDebounced(source, cb, options = {}) {
6606	const { debounce = 0, maxWait = void 0, ...watchOptions } = options;
6607	return watchWithFilter(source, cb, {
6608		...watchOptions,
6609		eventFilter: debounceFilter(debounce, { maxWait })
6610	});
6611}
6612/**
6613* Shorthand for watching value with {immediate: true}
6614*
6615* @see https://vueuse.org/watchImmediate
6616*/
6617function watchImmediate(source, cb, options) {
6618	return watch(source, cb, {
6619		...options,
6620		immediate: true
6621	});
6622}
6623function whenever(source, cb, options) {
6624	const stop = watch(source, (v, ov, onInvalidate) => {
6625		if (v) {
6626			if (options === null || options === void 0 ? void 0 : options.once) 
vendor: 4,570 bytes, lines 6626-6749
6626nextTick(() => stop());
6627			cb(v, ov, onInvalidate);
6628		}
6629	}, {
6630		...options,
6631		once: false
6632	});
6633	return stop;
6634}
6635//#endregion
6636//#region node_modules/.pnpm/@[email protected][email protected]/node_modules/@vueuse/core/dist/index.js
6637function computedAsync(evaluationCallback, initialState, optionsOrRef) {
6638	var _globalThis$reportErr;
6639	let options;
6640	if (/* @__PURE__ */ isRef(optionsOrRef)) options = { evaluating: optionsOrRef };
6641	else options = optionsOrRef || {};
6642	const { lazy = false, flush = "sync", evaluating = void 0, shallow = true, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop } = options;
6643	const started = /* @__PURE__ */ shallowRef(!lazy);
6644	const current = shallow ? /* @__PURE__ */ shallowRef(initialState) : /* @__PURE__ */ ref(initialState);
6645	let counter = 0;
6646	watchEffect(async (onInvalidate) => {
6647		if (!started.value) return;
6648		counter++;
6649		const counterAtBeginning = counter;
6650		let hasFinished = false;
6651		if (evaluating) Promise.resolve().then(() => {
6652			evaluating.value = true;
6653		});
6654		try {
6655			const result = await evaluationCallback((cancelCallback) => {
6656				onInvalidate(() => {
6657					if (evaluating) evaluating.value = false;
6658					if (!hasFinished) cancelCallback();
6659				});
6660			});
6661			if (counterAtBeginning === counter) current.value = result;
6662		} catch (e) {
6663			onError(e);
6664		} finally {
6665			if (evaluating && counterAtBeginning === counter) evaluating.value = false;
6666			hasFinished = true;
6667		}
6668	}, { flush });
6669	if (lazy) return computed(() => {
6670		started.value = true;
6671		return current.value;
6672	});
6673	else return current;
6674}
6675var defaultWindow = isClient ? window : void 0;
6676isClient && window.document;
6677isClient && window.navigator;
6678isClient && window.location;
6679/**
6680* Get the dom element of a ref of element or Vue component instance
6681*
6682* @param elRef
6683*/
6684function unrefElement(elRef) {
6685	var _$el;
6686	const plain = toValue(elRef);
6687	return (_$el = plain === null || plain === void 0 ? void 0 : plain.$el) !== null && _$el !== void 0 ? _$el : plain;
6688}
6689function useEventListener(...args) {
6690	const register = (el, event, listener, options) => {
6691		el.addEventListener(event, listener, options);
6692		return () => el.removeEventListener(event, listener, options);
6693	};
6694	const firstParamTargets = computed(() => {
6695		const test = toArray(toValue(args[0])).filter((e) => e != null);
6696		return test.every((e) => typeof e !== "string") ? test : void 0;
6697	});
6698	return watchImmediate(() => {
6699		var _firstParamTargets$va, _firstParamTargets$va2;
6700		return [
6701			(_firstParamTargets$va = (_firstParamTargets$va2 = firstParamTargets.value) === null || _firstParamTargets$va2 === void 0 ? void 0 : _firstParamTargets$va2.map((e) => unrefElement(e))) !== null && _firstParamTargets$va !== void 0 ? _firstParamTargets$va : [defaultWindow].filter((e) => e != null),
6702			toArray(toValue(firstParamTargets.value ? args[1] : args[0])),
6703			toArray(unref(firstParamTargets.value ? args[2] : args[1])),
6704			toValue(firstParamTargets.value ? args[3] : args[2])
6705		];
6706	}, ([raw_targets, raw_events, raw_listeners, raw_options], _, onCleanup) => {
6707		if (!(raw_targets === null || raw_targets === void 0 ? void 0 : raw_targets.length) || !(raw_events === null || raw_events === void 0 ? void 0 : raw_events.length) || !(raw_listeners === null || raw_listeners === void 0 ? void 0 : raw_listeners.length)) return;
6708		const optionsClone = isObject(raw_options) ? { ...raw_options } : raw_options;
6709		const cleanups = raw_targets.flatMap((el) => raw_events.flatMap((event) => raw_listeners.map((listener) => register(el, event, listener, optionsClone))));
6710		onCleanup(() => {
6711			cleanups.forEach((fn) => fn());
6712		});
6713	}, { flush: "post" });
6714}
6715/**
6716* Mounted state in ref.
6717*
6718* @see https://vueuse.org/useMounted
6719*
6720* @__NO_SIDE_EFFECTS__
6721*/
6722function useMounted() {
6723	const isMounted = /* @__PURE__ */ shallowRef(false);
6724	const instance = getCurrentInstance();
6725	if (instance) onMounted(() => {
6726		isMounted.value = true;
6727	}, instance);
6728	return isMounted;
6729}
6730/* @__NO_SIDE_EFFECTS__ */
6731function useSupported(callback) {
6732	const isMounted = useMounted();
6733	return computed(() => {
6734		isMounted.value;
6735		return Boolean(callback());
6736	});
6737}
6738/**
6739* Watch for changes being made to the DOM tree.
6740*
6741* @see https://vueuse.org/useMutationObserver
6742* @see https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver MutationObserver MDN
6743* @param target
6744* @param callback
6745* @param options
6746*/
6747function useMutationObserver(target, callback, options = {}) {
6748	const { window = defaultWindow, ...mutationOptions } = options;
6749	let observer;
6750	const isSupported = /* @__PURE__ */ useSupported(() => window && "MutationObserver" in window);
6751	const cleanup = () => {
6752		if (observer) {
6753			observer.disconnect();
6754			observer = void 0;
6755		}
6756	};
6757	const stopWatch = watch(computed(() => {
6758		const items = toArray(toValue(target)).map(unrefElement).filter(notNullish);
6759		return new Set(items);
6760	}), (newTargets) => {
6761		cleanup();
6762		if (isSupported.value && newTargets.size) {
6763			observer = new MutationObserver(callback);
6764			newTargets.forEach((el) => observer.observe(el, mutationOptions));
6765		}
6766	}, {
6767		immediate: true,
6768		flush: "post"
6769	});
6770	const takeRecords = () => {
6771		return observer === null || observer === void 0 ? void 0 : observer.takeRecords();
6772	};
6773	const stop = () => {
6774		stopWatch();
6775		cleanup();
6776	};
6777	tryOnScopeDispose(stop);
6778	return {
6779		isSupported,
6780		stop,
6781		takeRecords
6782	};
6783}
6784function createKeyPredicate(keyFilter) {
6785	if (typeof keyFilter === "function") return keyFilter;
6786	else if (typeof keyFilter === "string") return (event) => event.key === keyFilter;
6787	else if (Array.isArray(keyFilter)) return (event) => keyFilter.includes(event.key);
6788	return () => true;
6789}
6790function onKeyStroke(...args) {
6791	let key;
6792	let handler;
6793	let options = {};
6794	if (args.length === 3) {
6795		key = args[0];
6796		handler = args[1];
6797		options = args[2];
6798	} else if (args.length === 2) if (typeof args[1] === "object") {
6799		key = true;
6800		handler = args[0];
6801		options = args[1];
6802	} else {
6803		key = args[0];
6804		handler = args[1];
6805	}
6806	else {
6807		key = true;
6808		handler = args[0];
6809	}
6810	const { target = defaultWindow, eventName = "keydown", passive = false, dedupe = false } = options;
6811	const predicate = createKeyPredicate(key);
6812	const listener = (e) => {
6813		if (e.repeat && toValue(dedupe)) return;
6814		if (predicate(e)) handler(e);
6815	};
6816	return useEventListener(target, eventName, listener, passive);
6817}
6818var ssrWidthSymbol = Symbol("vueuse-ssr-width");
6819/* @__NO_SIDE_EFFECTS__ */
6820function useSSRWidth() {
6821	const ssrWidth = hasInjectionContext() ? injectLocal(ssrWidthSymbol, null) : null;
6822	return typeof ssrWidth === "number" ? ssrWidth : void 0;
6823}
6824/**
6825* Reactive Media Query.
6826*
6827* @see https://vueuse.org/useMediaQuery
6828* @param query
6829* @param options
6830*/
6831function useMediaQuery(query, options = {}) {
6832	const { window = defaultWindow, ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;
6833	const isSupported = /* @__PURE__ */ useSupported(() =>
vendor: 17,478 bytes, lines 6833-7333
6833 window && "matchMedia" in window && typeof window.matchMedia === "function");
6834	const ssrSupport = /* @__PURE__ */ shallowRef(typeof ssrWidth === "number");
6835	const mediaQuery = /* @__PURE__ */ shallowRef();
6836	const matches = /* @__PURE__ */ shallowRef(false);
6837	const handler = (event) => {
6838		matches.value = event.matches;
6839	};
6840	watchEffect(() => {
6841		if (ssrSupport.value) {
6842			ssrSupport.value = !isSupported.value;
6843			const queryStrings = toValue(query).split(",");
6844			matches.value = queryStrings.some((queryString) => {
6845				const not = queryString.includes("not all");
6846				const minWidth = queryString.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);
6847				const maxWidth = queryString.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);
6848				let res = Boolean(minWidth || maxWidth);
6849				if (minWidth && res) res = ssrWidth >= pxValue(minWidth[1]);
6850				if (maxWidth && res) res = ssrWidth <= pxValue(maxWidth[1]);
6851				return not ? !res : res;
6852			});
6853			return;
6854		}
6855		if (!isSupported.value) return;
6856		mediaQuery.value = window.matchMedia(toValue(query));
6857		matches.value = mediaQuery.value.matches;
6858	});
6859	useEventListener(mediaQuery, "change", handler, { passive: true });
6860	return computed(() => matches.value);
6861}
6862var _global = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
6863var globalKey = "__vueuse_ssr_handlers__";
6864var handlers = /* #__PURE__ */ getHandlers();
6865function getHandlers() {
6866	if (!(globalKey in _global)) _global[globalKey] = _global[globalKey] || {};
6867	return _global[globalKey];
6868}
6869function getSSRHandler(key, fallback) {
6870	return handlers[key] || fallback;
6871}
6872/**
6873* Reactive dark theme preference.
6874*
6875* @see https://vueuse.org/usePreferredDark
6876* @param [options]
6877*
6878* @__NO_SIDE_EFFECTS__
6879*/
6880function usePreferredDark(options) {
6881	return useMediaQuery("(prefers-color-scheme: dark)", options);
6882}
6883function guessSerializerType(rawInit) {
6884	return rawInit == null ? "any" : rawInit instanceof Set ? "set" : rawInit instanceof Map ? "map" : rawInit instanceof Date ? "date" : typeof rawInit === "boolean" ? "boolean" : typeof rawInit === "string" ? "string" : typeof rawInit === "object" ? "object" : !Number.isNaN(rawInit) ? "number" : "any";
6885}
6886var StorageSerializers = {
6887	boolean: {
6888		read: (v) => v === "true",
6889		write: (v) => String(v)
6890	},
6891	object: {
6892		read: (v) => JSON.parse(v),
6893		write: (v) => JSON.stringify(v)
6894	},
6895	number: {
6896		read: (v) => Number.parseFloat(v),
6897		write: (v) => String(v)
6898	},
6899	any: {
6900		read: (v) => v,
6901		write: (v) => String(v)
6902	},
6903	string: {
6904		read: (v) => v,
6905		write: (v) => String(v)
6906	},
6907	map: {
6908		read: (v) => new Map(JSON.parse(v)),
6909		write: (v) => JSON.stringify(Array.from(v.entries()))
6910	},
6911	set: {
6912		read: (v) => new Set(JSON.parse(v)),
6913		write: (v) => JSON.stringify(Array.from(v))
6914	},
6915	date: {
6916		read: (v) => new Date(v),
6917		write: (v) => v.toISOString()
6918	}
6919};
6920var customStorageEventName = "vueuse-storage";
6921/**
6922* Reactive LocalStorage/SessionStorage.
6923*
6924* @see https://vueuse.org/useStorage
6925*/
6926function useStorage(key, defaults, storage, options = {}) {
6927	var _options$serializer;
6928	const { flush = "pre", deep = true, listenToStorageChanges = true, writeDefaults = true, mergeDefaults = false, shallow, window = defaultWindow, eventFilter, onError = (e) => {
6929		console.error(e);
6930	}, initOnMounted } = options;
6931	const data = (shallow ? shallowRef : ref)(typeof defaults === "function" ? defaults() : defaults);
6932	const keyComputed = computed(() => toValue(key));
6933	if (!storage) try {
6934		storage = getSSRHandler("getDefaultStorage", () => defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.localStorage)();
6935	} catch (e) {
6936		onError(e);
6937	}
6938	if (!storage) return data;
6939	const rawInit = toValue(defaults);
6940	const type = guessSerializerType(rawInit);
6941	const serializer = (_options$serializer = options.serializer) !== null && _options$serializer !== void 0 ? _options$serializer : StorageSerializers[type];
6942	const { pause: pauseWatch, resume: resumeWatch } = watchPausable(data, (newValue) => write(newValue), {
6943		flush,
6944		deep,
6945		eventFilter
6946	});
6947	watch(keyComputed, () => update(), { flush });
6948	let firstMounted = false;
6949	const onStorageEvent = (ev) => {
6950		if (initOnMounted && !firstMounted) return;
6951		update(ev);
6952	};
6953	const onStorageCustomEvent = (ev) => {
6954		if (initOnMounted && !firstMounted) return;
6955		updateFromCustomEvent(ev);
6956	};
6957	/**
6958	* The custom event is needed for same-document syncing when using custom
6959	* storage backends, but it doesn't work across different documents.
6960	*
6961	* TODO: Consider implementing a BroadcastChannel-based solution that fixes this.
6962	*/
6963	if (window && listenToStorageChanges) if (storage instanceof Storage) useEventListener(window, "storage", onStorageEvent, { passive: true });
6964	else useEventListener(window, customStorageEventName, onStorageCustomEvent);
6965	if (initOnMounted) tryOnMounted(() => {
6966		firstMounted = true;
6967		update();
6968	});
6969	else update();
6970	function dispatchWriteEvent(oldValue, newValue) {
6971		if (window) {
6972			const payload = {
6973				key: keyComputed.value,
6974				oldValue,
6975				newValue,
6976				storageArea: storage
6977			};
6978			window.dispatchEvent(storage instanceof Storage ? new StorageEvent("storage", payload) : new CustomEvent(customStorageEventName, { detail: payload }));
6979		}
6980	}
6981	function write(v) {
6982		try {
6983			const oldValue = storage.getItem(keyComputed.value);
6984			if (v == null) {
6985				dispatchWriteEvent(oldValue, null);
6986				storage.removeItem(keyComputed.value);
6987			} else {
6988				const serialized = serializer.write(v);
6989				if (oldValue !== serialized) {
6990					storage.setItem(keyComputed.value, serialized);
6991					dispatchWriteEvent(oldValue, serialized);
6992				}
6993			}
6994		} catch (e) {
6995			onError(e);
6996		}
6997	}
6998	function read(event) {
6999		const rawValue = event ? event.newValue : storage.getItem(keyComputed.value);
7000		if (rawValue == null) {
7001			if (writeDefaults && rawInit != null) storage.setItem(keyComputed.value, serializer.write(rawInit));
7002			return rawInit;
7003		} else if (!event && mergeDefaults) {
7004			const value = serializer.read(rawValue);
7005			if (typeof mergeDefaults === "function") return mergeDefaults(value, rawInit);
7006			else if (type === "object" && !Array.isArray(value)) return {
7007				...rawInit,
7008				...value
7009			};
7010			return value;
7011		} else if (typeof rawValue !== "string") return rawValue;
7012		else return serializer.read(rawValue);
7013	}
7014	function update(event) {
7015		if (event && event.storageArea !== storage) return;
7016		if (event && event.key == null) {
7017			data.value = rawInit;
7018			return;
7019		}
7020		if (event && event.key !== keyComputed.value) return;
7021		pauseWatch();
7022		try {
7023			const serializedData = serializer.write(data.value);
7024			if (event === void 0 || (event === null || event === void 0 ? void 0 : event.newValue) !== serializedData) data.value = read(event);
7025		} catch (e) {
7026			onError(e);
7027		} finally {
7028			if (event) nextTick(resumeWatch);
7029			else resumeWatch();
7030		}
7031	}
7032	function updateFromCustomEvent(event) {
7033		update(event.detail);
7034	}
7035	return data;
7036}
7037var CSS_DISABLE_TRANS = "*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";
7038/**
7039* Reactive color mode with auto data persistence.
7040*
7041* @see https://vueuse.org/useColorMode
7042* @param options
7043*/
7044function useColorMode(options = {}) {
7045	const { selector = "html", attribute = "class", initialValue = "auto", window = defaultWindow, storage, storageKey = "vueuse-color-scheme", listenToStorageChanges = true, storageRef, emitAuto, disableTransition = true } = options;
7046	const modes = {
7047		auto: "",
7048		light: "light",
7049		dark: "dark",
7050		...options.modes || {}
7051	};
7052	const preferredDark = usePreferredDark({ window });
7053	const system = computed(() => preferredDark.value ? "dark" : "light");
7054	const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, {
7055		window,
7056		listenToStorageChanges
7057	}));
7058	const state = computed(() => store.value === "auto" ? system.value : store.value);
7059	const updateHTMLAttrs = getSSRHandler("updateHTMLAttrs", (selector, attribute, value) => {
7060		const el = typeof selector === "string" ? window === null || window === void 0 ? void 0 : window.document.querySelector(selector) : unrefElement(selector);
7061		if (!el) return;
7062		const classesToAdd = /* @__PURE__ */ new Set();
7063		const classesToRemove = /* @__PURE__ */ new Set();
7064		let attributeToChange = null;
7065		if (attribute === "class") {
7066			const current = value.split(/\s/g);
7067			Object.values(modes).flatMap((i) => (i || "").split(/\s/g)).filter(Boolean).forEach((v) => {
7068				if (current.includes(v)) classesToAdd.add(v);
7069				else classesToRemove.add(v);
7070			});
7071		} else attributeToChange = {
7072			key: attribute,
7073			value
7074		};
7075		if (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null) return;
7076		let style;
7077		if (disableTransition) {
7078			style = window.document.createElement("style");
7079			style.appendChild(document.createTextNode(CSS_DISABLE_TRANS));
7080			window.document.head.appendChild(style);
7081		}
7082		for (const c of classesToAdd) el.classList.add(c);
7083		for (const c of classesToRemove) el.classList.remove(c);
7084		if (attributeToChange) el.setAttribute(attributeToChange.key, attributeToChange.value);
7085		if (disableTransition) {
7086			window.getComputedStyle(style).opacity;
7087			document.head.removeChild(style);
7088		}
7089	});
7090	function defaultOnChanged(mode) {
7091		var _modes$mode;
7092		updateHTMLAttrs(selector, attribute, (_modes$mode = modes[mode]) !== null && _modes$mode !== void 0 ? _modes$mode : mode);
7093	}
7094	function onChanged(mode) {
7095		if (options.onChanged) options.onChanged(mode, defaultOnChanged);
7096		else defaultOnChanged(mode);
7097	}
7098	watch(state, onChanged, {
7099		flush: "post",
7100		immediate: true
7101	});
7102	tryOnMounted(() => onChanged(state.value));
7103	const auto = computed({
7104		get() {
7105			return emitAuto ? store.value : state.value;
7106		},
7107		set(v) {
7108			store.value = v;
7109		}
7110	});
7111	return Object.assign(auto, {
7112		store,
7113		system,
7114		state
7115	});
7116}
7117/**
7118* Reactive dark mode with auto data persistence.
7119*
7120* @see https://vueuse.org/useDark
7121* @param options
7122*/
7123function useDark(options = {}) {
7124	const { valueDark = "dark", valueLight = "" } = options;
7125	const mode = useColorMode({
7126		...options,
7127		onChanged: (mode, defaultHandler) => {
7128			var _options$onChanged;
7129			if (options.onChanged) (_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, mode === "dark", defaultHandler, mode);
7130			else defaultHandler(mode);
7131		},
7132		modes: {
7133			dark: valueDark,
7134			light: valueLight
7135		}
7136	});
7137	const system = computed(() => mode.system.value);
7138	return computed({
7139		get() {
7140			return mode.value === "dark";
7141		},
7142		set(v) {
7143			const modeVal = v ? "dark" : "light";
7144			if (system.value === modeVal) mode.value = "auto";
7145			else mode.value = modeVal;
7146		}
7147	});
7148}
7149/**
7150* We have to check if the scroll amount is close enough to some threshold in order to
7151* more accurately calculate arrivedState. This is because scrollTop/scrollLeft are non-rounded
7152* numbers, while scrollHeight/scrollWidth and clientHeight/clientWidth are rounded.
7153* https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#determine_if_an_element_has_been_totally_scrolled
7154*/
7155var ARRIVED_STATE_THRESHOLD_PIXELS = 1;
7156/**
7157* Reactive scroll.
7158*
7159* @see https://vueuse.org/useScroll
7160* @param element
7161* @param options
7162*/
7163function useScroll(element, options = {}) {
7164	const { throttle = 0, idle = 200, onStop = noop, onScroll = noop, offset = {
7165		left: 0,
7166		right: 0,
7167		top: 0,
7168		bottom: 0
7169	}, observe: _observe = { mutation: false }, eventListenerOptions = {
7170		capture: false,
7171		passive: true
7172	}, behavior = "auto", window = defaultWindow, onError = (e) => {
7173		console.error(e);
7174	} } = options;
7175	const observe = typeof _observe === "boolean" ? { mutation: _observe } : _observe;
7176	const internalX = /* @__PURE__ */ shallowRef(0);
7177	const internalY = /* @__PURE__ */ shallowRef(0);
7178	const x = computed({
7179		get() {
7180			return internalX.value;
7181		},
7182		set(x) {
7183			scrollTo(x, void 0);
7184		}
7185	});
7186	const y = computed({
7187		get() {
7188			return internalY.value;
7189		},
7190		set(y) {
7191			scrollTo(void 0, y);
7192		}
7193	});
7194	function scrollTo(_x, _y) {
7195		var _ref, _toValue, _toValue2, _document;
7196		if (!window) return;
7197		const _element = toValue(element);
7198		if (!_element) return;
7199		(_ref = _element instanceof Document ? window.document.body : _element) === null || _ref === void 0 || _ref.scrollTo({
7200			top: (_toValue = toValue(_y)) !== null && _toValue !== void 0 ? _toValue : y.value,
7201			left: (_toValue2 = toValue(_x)) !== null && _toValue2 !== void 0 ? _toValue2 : x.value,
7202			behavior: toValue(behavior)
7203		});
7204		const scrollContainer = (_element === null || _element === void 0 || (_document = _element.document) === null || _document === void 0 ? void 0 : _document.documentElement) || (_element === null || _element === void 0 ? void 0 : _element.documentElement) || _element;
7205		if (x != null) internalX.value = scrollContainer.scrollLeft;
7206		if (y != null) internalY.value = scrollContainer.scrollTop;
7207	}
7208	const isScrolling = /* @__PURE__ */ shallowRef(false);
7209	const arrivedState = /* @__PURE__ */ reactive({
7210		left: true,
7211		right: false,
7212		top: true,
7213		bottom: false
7214	});
7215	const directions = /* @__PURE__ */ reactive({
7216		left: false,
7217		right: false,
7218		top: false,
7219		bottom: false
7220	});
7221	const onScrollEnd = (e) => {
7222		if (!isScrolling.value) return;
7223		isScrolling.value = false;
7224		directions.left = false;
7225		directions.right = false;
7226		directions.top = false;
7227		directions.bottom = false;
7228		onStop(e);
7229	};
7230	const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);
7231	const setArrivedState = (target) => {
7232		var _document2;
7233		if (!window) return;
7234		const el = (target === null || target === void 0 || (_document2 = target.document) === null || _document2 === void 0 ? void 0 : _document2.documentElement) || (target === null || target === void 0 ? void 0 : target.documentElement) || unrefElement(target);
7235		const { display, flexDirection, direction } = window.getComputedStyle(el);
7236		const directionMultipler = direction === "rtl" ? -1 : 1;
7237		const scrollLeft = el.scrollLeft;
7238		directions.left = scrollLeft < internalX.value;
7239		directions.right = scrollLeft > internalX.value;
7240		const left = Math.abs(scrollLeft * directionMultipler) <= (offset.left || 0);
7241		const right = Math.abs(scrollLeft * directionMultipler) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
7242		if (display === "flex" && flexDirection === "row-reverse") {
7243			arrivedState.left = right;
7244			arrivedState.right = left;
7245		} else {
7246			arrivedState.left = left;
7247			arrivedState.right = right;
7248		}
7249		internalX.value = scrollLeft;
7250		let scrollTop = el.scrollTop;
7251		if (target === window.document && !scrollTop) scrollTop = window.document.body.scrollTop;
7252		directions.top = scrollTop < internalY.value;
7253		directions.bottom = scrollTop > internalY.value;
7254		const top = Math.abs(scrollTop) <= (offset.top || 0);
7255		const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
7256		/**
7257		* reverse columns and rows behave exactly the other way around,
7258		* bottom is treated as top and top is treated as the negative version of bottom
7259		*/
7260		if (display === "flex" && flexDirection === "column-reverse") {
7261			arrivedState.top = bottom;
7262			arrivedState.bottom = top;
7263		} else {
7264			arrivedState.top = top;
7265			arrivedState.bottom = bottom;
7266		}
7267		internalY.value = scrollTop;
7268	};
7269	const onScrollHandler = (e) => {
7270		var _documentElement;
7271		if (!window) return;
7272		const eventTarget = (_documentElement = e.target.documentElement) !== null && _documentElement !== void 0 ? _documentElement : e.target;
7273		setArrivedState(eventTarget);
7274		isScrolling.value = true;
7275		onScrollEndDebounced(e);
7276		onScroll(e);
7277	};
7278	useEventListener(element, "scroll", throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, eventListenerOptions);
7279	tryOnMounted(() => {
7280		try {
7281			const _element = toValue(element);
7282			if (!_element) return;
7283			setArrivedState(_element);
7284		} catch (e) {
7285			onError(e);
7286		}
7287	});
7288	if ((observe === null || observe === void 0 ? void 0 : observe.mutation) && element != null && element !== window && element !== document) useMutationObserver(element, () => {
7289		const _element = toValue(element);
7290		if (!_element) return;
7291		setArrivedState(_element);
7292	}, {
7293		attributes: true,
7294		childList: true,
7295		subtree: true
7296	});
7297	useEventListener(element, "scrollend", onScrollEnd, eventListenerOptions);
7298	return {
7299		x,
7300		y,
7301		isScrolling,
7302		arrivedState,
7303		directions,
7304		measure() {
7305			const _element = toValue(element);
7306			if (window && _element) setArrivedState(_element);
7307		}
7308	};
7309}
7310/**
7311* Reactive LocalStorage.
7312*
7313* @see https://vueuse.org/useLocalStorage
7314* @param key
7315* @param initialValue
7316* @param options
7317*/
7318function useLocalStorage(key, initialValue, options = {}) {
7319	const { window = defaultWindow } = options;
7320	return useStorage(key, initialValue, window === null || window === void 0 ? void 0 : window.localStorage, options);
7321}
7322/**
7323*
7324* Reactive useNavigatorLanguage
7325*
7326* Detects the currently selected user language and returns a reactive language
7327* @see https://vueuse.org/useNavigatorLanguage
7328*
7329* @__NO_SIDE_EFFECTS__
7330*/
7331function useNavigatorLanguage(options = {}) {
7332	const { window = defaultWindow } = options;
7333	const navigator = window === null || window === void 0 ? void 0 : window.navigator;
7334	const isSupported = /* @__PURE__ */ useSupported(() => navigator && "language" in navigator);
7335	const language = /* @__PURE__ */ shallowRef(navigator === null || navigator === void 0 ? void 0 : navigator.language);
7336	useEventListener(window, "languagechange", () => {
7337		if (navigator) language.value = navigator.language;
7338	}, { passive: true });
7339	return {
7340		isSupported,
7341		language
7342	};
7343}
7344/**
7345* Reactive SessionStorage.
7346*
7347* @see https://vueuse.org/useSessionStorage
7348* @param key
7349* @param initialValue
7350* @param options
7351*/
7352function useSessionStorage(key, initialValue, options = {}) {
7353	const { window = defaultWindow } = options;
7354	return useStorage(key, initialValue, window === null || window === void 0 ? void 0 : window.sessionStorage, options);
7355}
7356/**
7357* Reactive window scroll.
7358*
7359* @see https://vueuse.org/useWindowScroll
7360* @param options
7361*/
7362function useWindowScroll(options = {}) {
7363	const { window = defaultWindow, ...rest } = options;
7364	return useScroll(window, rest);
7365}
7366//#endregion
7367//#region ../../../../@siteData
7368var _siteData_default = window.__VP_SITE_DATA__;
7369//#endregion
7370//#region node_modules/.pnpm/[email protected][email protected][email protected][email protected]/node_modules/vitepress/dist/client/app/data.js
7371var dataSymbol = Symbol();
7372var siteDataRef = /* @__PURE__ */ shallowRef(/* @__PURE__ */ readonly(_siteData_default));
7373function initData(route) {
7374	const site = computed(() => resolveSiteDataByRoute(siteDataRef.value, route.data.relativePath, route.data.filePath));
7375	const appearance = site.value.appearance;
7376	const isDark = appearance === "force-dark" ? /* @__PURE__ */ ref(true) : appearance === "force-auto" ? usePreferredDark() : appearance ? useDark({
7377		storageKey: APPEARANCE_KEY,
7378		initialValue: () => appearance === "dark" ? "dark" : "auto",
7379		...typeof appearance === "object" ? appearance : {}
7380	}) : /* @__PURE__ */ ref(false);
7381	return {
7382		site,
7383		theme: computed(() => site.value.themeConfig),
7384		page: computed(() => route.data),
7385		frontmatter: computed(() => route.data.frontmatter),
7386		params: computed(() => route.data.params),
7387		lang: computed(() => site.value.lang),
7388		dir: computed(() => route.data.frontmatter.dir || site.value.dir),
7389		localeIndex: computed(() => site.value.localeIndex || "root"),
7390		title: computed(() => createTitle(site.value, route.data)),
7391		description: computed(() => route.data.description || site.value.description),
7392		isDark
7393	};
7394}
7395function useData() {
7396	const data = inject(dataSymbol);
7397	if (!data) throw new Error("vitepress data not properly injected in app");
7398	return data;
7399}
7400//#endregion
7401//#region node_modules/.pnpm/[email protected][email protected][email protected][email protected]/node_modules/vitepress/dist/client/app/utils.js
7402var resolvedBase;
7403/**
7404* Runtime base path used by the app.
7405*
7406* Usually this is the configured site base.
7407*
7408* For a relative base (`'./'`), the mount point is unknown at build time, so:
7409* - SSR: uses `RELATIVE_BASE_SENTINEL` (for per-page URL relativization)
7410* - dev browser: uses `'/'` (dev server always mounts at root)
7411* - prod browser: resolves from the page's `__VP_SITE_ROOT__`
7412*/
7413function runtimeBase() {
7414	if (resolvedBase === void 0) {
7415		const base = siteDataRef.value.base;
7416		if (!isRelativeBase(base)) return resolvedBase = base;
7417		if (!inBrowser) return resolvedBase = RELATIVE_BASE_SENTINEL;
7418		const root = window.__VP_SITE_ROOT__;
7419		resolvedBase = root ? decodeURIComponent(new URL(root, location.href).pathname) : "/";
7420	}
7421	return resolvedBase;
7422}
7423/**
7424* Prepend base to internal (non-relative) urls
7425*/
7426function withBase(path) {
7427	return EXTERNAL_URL_RE.test(path) || !path.startsWith("/") ? path : joinPath(runtimeBase(), path);
7428}
7429/**
7430* Converts a url path to the corresponding js chunk filename.
7431*/
7432function pathToFile(path) {
7433	let pagePath = path.replace(/\.html$/, "");
7434	pagePath = decodeURIComponent(pagePath);
7435	pagePath = pagePath.replace(/\/$/, "/index");
7436	if (inBrowser) {
7437		const base = runtimeBase();
7438		if (pagePath + "/" === base) pagePath = base;
7439		if (!pagePath.startsWith(base)) return null;
7440		pagePath = sanitizeFileName(pagePath.slice(base.length).replace(/\//g, "_") || "index") + ".md";
7441		let pageHash = __VP_HASH_MAP__[pagePath.toLowerCase()];
7442		if (!pageHash) {
7443			pagePath = pagePath.endsWith("_index.md") ? pagePath.slice(0, -9) + ".md" : pagePath.slice(0, -3) + "_index.md";
7444			pageHash = __VP_HASH_MAP__[pagePath.toLowerCase()];
7445		}
7446		if (!pageHash) return null;
7447		pagePath = `${base}assets/${pagePath}.${pageHash}.js`;
7448	} else pagePath = `./${sanitizeFileName(pagePath.slice(1).replace(/\//g, "_"))}.md.js`;
7449	return pagePath;
7450}
7451var contentUpdatedCallbacks = [];
7452/**
7453* Register callback that is called every time the markdown content is updated
7454* in the DOM.
7455*/
7456function onContentUpdated(fn) {
7457	contentUpdatedCallbacks.push(fn);
7458	tryOnUnmounted(() => {
7459		contentUpdatedCallbacks = contentUpdatedCallbacks.filter((f) => f !== fn);
7460	});
7461}
7462//#endregion
7463//#region node_modules/.pnpm/[email protected][email protected][email protected][email protected]/node_modules/vitepress/dist/client/app/composables/icon.js
7464/**
7465* Resolves an icon name (`collection:name`, e.g. `simple-icons:github`) to
7466* its `vpi-<collection>-<name>` class. During SSR the name is registered so
7467* the build emits its CSS rule; in dev the SVG is served on demand and
7468* applied to `el` inline.
7469*/
7470function useIcon(icon, el) {
7471	const parsed = computed(() => {
7472		const value = toValue(icon);
7473		return typeof value === "string" ? parseIconName(value) : null;
7474	});
7475	return computed(() => parsed.value ? `vpi-${parsed.value.collection}-${parsed.value.icon}` : void 0);
7476}
7477//#endregion
7478//#region node_modules/.pnpm/[email protected][email protected][email protected][email protected]/node_modules/vitepress/dist/client/app/router.js
7479var RouterSymbol = Symbol();
7480var fakeHost = "http://a.com";
7481var getDefaultRoute = () => ({
7482	path: "/",
7483	hash: "",
7484	query: "",
7485	component: null,
7486	data: notFoundPageData
7487});
7488function createRouter(loadPageModule, fallbackComponent) {
7489	const route = /* @__PURE__ */ reactive(getDefaultRoute());
7490	const router = {
7491		route,
7492		async go(href, options) {
7493			const { hash } = new URL(href, fakeHost);
7494			const hasTextFragment = inBrowser && document.fragmentDirective && hash.includes(":~:");
7495			href = normalizeHref(href);
7496			if (await router.onBeforeRouteChange?.(href) === false) return;
7497			if (!inBrowser || await changeRoute(href, {
7498				...options,
7499				hasTextFragment
7500			})) await loadPage(href, { initialLoad: !!options?.initialLoad });
7501			if (hasTextFragment) location.hash = hash;
7502			syncRouteQueryAndHash();
7503			await router.onAfterRouteChange?.(href);
7504		}
7505	};
7506	let latestPendingPath = null;
7507	async function loadPage(href, { scrollPosition = 0, isRetry = false, initialLoad = false } = {}) {
7508		if (await router.onBeforePageLoad?.(href) === false) return;
7509		const targetLoc = new URL(href, fakeHost);
7510		const pendingPath = latestPendingPath = targetLoc.pathname;
7511		try {
7512			let page = await loadPageModule(pendingPath);
7513			if (!page) throw new Error(`Page not found: ${pendingPath}`);
7514			if (latestPendingPath === pendingPath) {
7515				latestPendingPath = null;
7516				const { default: comp, __pageData } = page;
7517				if (!comp) throw new Error(`Invalid route component: ${comp}`);
7518				await router.onAfterPageLoad?.(href);
7519				route.path = inBrowser ? pendingPath : withBase(pendingPath);
7520				route.component = markRaw(comp);
7521				route.data = markRaw(__pageData);
7522				syncRouteQueryAndHash(targetLoc);
7523				if (inBrowser) nextTick(() => {
7524					let actualPathname = runtimeBase() + __pageData.relativePath.replace(/(?:(^|\/)index)?\.md$/, "$1");
7525					if (!siteDataRef.value.cleanUrls && !actualPathname.endsWith("/")) actualPathname += ".html";
7526					if (actualPathname !== targetLoc.pathname) {
7527						targetLoc.pathname = actualPathname;
7528						href = actualPathname + targetLoc.search + targetLoc.hash;
7529						history.replaceState({}, "", href);
7530					}
7531					if (!initialLoad) scrollTo(targetLoc.hash, scrollPosition);
7532				});
7533			}
7534		} catch (err) {
7535			if (!/fetch|Page not found/.test(err.message) && !/^\/404(\.html|\/)?$/.test(href)) console.error(err);
7536			if (!isRetry) try {
7537				const res = await fetch(runtimeBase() + "hashmap.json");
7538				window.__VP_HASH_MAP__ = await res.json();
7539				await loadPage(href, {
7540					scrollPosition,
7541					isRetry: true,
7542					initialLoad
7543				});
7544				return;
7545			} catch (e) {}
7546			if (latestPendingPath === pendingPath) {
7547				latestPendingPath = null;
7548				route.path = inBrowser ? pendingPath : withBase(pendingPath);
7549				route.component = fallbackComponent ? markRaw(fallbackComponent) : null;
7550				const relativePath = inBrowser ? route.path.replace(/(^|\/)$/, "$1index").replace(/(\.html)?$/, ".md").slice(runtimeBase().length) : "404.md";
7551				route.data = {
7552					...notFoundPageData,
7553					relativePath
7554				};
7555				syncRouteQueryAndHash(targetLoc);
7556			}
7557		}
7558	}
7559	function syncRouteQueryAndHash(loc = inBrowser ? location : {
7560		search: "",
7561		hash: ""
7562	}) {
7563		route.query = loc.search;
7564		route.hash = decodeURIComponent(loc.hash);
7565	}
7566	if (inBrowser) {
7567		if (history.state === null) history.replaceState({}, "");
7568		window.addEventListener("click", (e) => {
7569			if (e.defaultPrevented || !(e.target instanceof Element) || e.target.closest("button") || e.button !== 0 || e.ctrlKey || e.shiftKey || e.altKey || e.metaKey) return;
7570			const link = e.target.closest("a");
7571			if (!link || link.closest(".vp-raw") || link.hasAttribute("download") || link.hasAttribute("target")) return;
7572			const linkHref = link.getAttribute("href") ?? (link instanceof SVGAElement ? link.getAttribute("xlink:href") : null);
7573			if (linkHref == null) return;
7574			const { href, origin, pathname } = new URL(linkHref, link.baseURI);
7575			if (origin === new URL(location.href).origin && treatAsHtml(pathname)) {
7576				e.preventDefault();
7577				router.go(href);
7578			}
7579		}, { capture: true });
7580		window.addEventListener("popstate", async (e) => {
7581			if (e.state === null) return;
7582			const href = normalizeHref(location.href);
7583			await loadPage(href, { scrollPosition: e.state.scrollPosition || 0 });
7584			syncRouteQueryAndHash();
7585			await router.onAfterRouteChange?.(href);
7586		});
7587		window.addEventListener("hashchange", (e) => {
7588			e.preventDefault();
7589			syncRouteQueryAndHash();
7590		});
7591	}
7592	return router;
7593}
7594function useRouter() {
7595	const router = inject(RouterSymbol);
7596	if (!router) throw new Error("useRouter() is called without provider.");
7597	return router;
7598}
7599function useRoute() {
7600	return useRouter().route;
7601}
7602function scrollTo(hash, scrollPosition = 0) {
7603	if (!hash || scrollPosition) {
7604		window.scrollTo(0, scrollPosition);
7605		return;
7606	}
7607	let target = null;
7608	try {
7609		target = document.getElementById(decodeURIComponent(hash).slice(1));
7610	} catch (e) {
7611		console.warn(e);
7612	}
7613	if (!target) return;
7614	const scrollToTarget = () => {
7615		target.scrollIntoView({ block: "start" });
7616		target.focus({ preventScroll: true });
7617		if (document.activeElement === target) return;
7618		if (target.hasAttribute("tabindex")) return;
7619		const restoreTabindex = () => {
7620			target.removeAttribute("tabindex");
7621			target.removeEventListener("blur", restoreTabindex);
7622		};
7623		target.setAttribute("tabindex", "-1");
7624		target.addEventListener("blur", restoreTabindex);
7625		target.focus({ preventScroll: true });
7626		if (document.activeElement !== target) restoreTabindex();
7627	};
7628	requestAnimationFrame(scrollToTarget);
7629}
7630function normalizeHref(href) {
7631	const url = new URL(href, fakeHost);
7632	url.pathname = url.pathname.replace(/(^|\/)index(\.html)?$/, "$1");
7633	if (siteDataRef.value.cleanUrls) url.pathname = url.pathname.replace(/\.html$/, "");
7634	else if (!url.pathname.endsWith("/") && !url.pathname.endsWith(".html")) url.pathname += ".html";
7635	return url.pathname + url.search + url.hash.split(":~:")[0];
7636}
7637async function changeRoute(href, { initialLoad = false, replace = false, hasTextFragment = false } = {}) {
7638	const loc = normalizeHref(location.href);
7639	const nextUrl = new URL(href, location.origin);
7640	const currentUrl = new URL(loc, location.origin);
7641	if (href === loc) {
7642		if (!initialLoad) {
7643			if (!hasTextFragment) scrollTo(nextUrl.hash);
7644			return false;
7645		}
7646	} else {
7647		if (replace) history.replaceState({}, "", href);
7648		else {
7649			history.replaceState({ scrollPosition: window.scrollY }, "");
7650			history.pushState({}, "", href);
7651		}
7652		if (nextUrl.pathname === currentUrl.pathname) {
7653			if (nextUrl.hash !== currentUrl.hash) {
7654				window.dispatchEvent(new HashChangeEvent("hashchange", {
7655					oldURL: currentUrl.href,
7656					newURL: nextUrl.href
7657				}));
7658				if (!hasTextFragment) scrollTo(nextUrl.hash);
7659			}
7660			return false;
7661		}
7662	}
7663	return true;
7664}
7665//#endregion
7666//#region node_modules/.pnpm/[email protected][email protected][email protected][email protected]/node_modules/vitepress/dist/client/app/components/Content.js
7667var runCbs = () => contentUpdatedCallbacks.forEach((fn) => fn());
7668var Content = /* @__PURE__ */ defineComponent({
7669	name: "VitePressContent",
7670	props: { as: {
7671		type: [Object, String],
7672		default: "div"
7673	} },
7674	setup(props) {
7675		const { frontmatter, site } = useData();
7676		const route = useRoute();
7677		watch(frontmatter, runCbs, {
7678			deep: true,
7679			flush: "post"
7680		});
7681		return () => h(props.as, site.value.contentProps ?? { style: { position: "relative" } }, [route.component ? h(route.component, {
7682			onVnodeMounted: runCbs,
7683			onVnodeUpdated: runCbs,
7684			onVnodeUnmounted: runCbs
7685		}) : "404 Page Not Found"]);
7686	}
7687});
7688//#endregion
7689//#region node_modules/.pnpm/[email protected][email protected][email protected][email protected]/node_modules/vitepress/dist/client/app/composables/codeGroups.js
7690function useCodeGroups() {
7691	if (inBrowser) window.addEventListener("click", (e) => {
7692		const el = e.target;
7693		if (el.matches(".vp-code-group input")) {
7694			const group = el.parentElement?.parentElement;
7695			if (!group) return;
7696			const i = Array.from(group.querySelectorAll("input")).indexOf(el);
7697			if (i < 0) return;
7698			const blocks = group.querySelector(".blocks");
7699			if (!blocks) return;
7700			const current = Array.from(blocks.children).find((child) => child.classList.contains("active"));
7701			if (!current) return;
7702			const next = blocks.children[i];
7703			if (!next || current === next) return;
7704			current.classList.remove("active");
7705			activate(next);
7706			(group?.querySelector(`label[for="${el.id}"]`))?.scrollIntoView({ block: "nearest" });
7707		}
7708	});
7709}
7710function activate(el) {
7711	el.classList.add("active");
7712	window.dispatchEvent(new CustomEvent("vitepress:codeGroupTabActivate", { detail: el }));
7713}
7714//#endregion
7715//#region node_modules/.pnpm/[email protected][email protected][email protected][email protected]/node_modules/vitepress/dist/client/app/composables/copyCode.js
7716var ignoredNodes = [".vp-copy-ignore", ".diff.remove"].join(", ");
7717function useCopyCode() {
7718	if (inBrowser) {
7719		const timeoutIdMap = /* @__PURE__ */ new WeakMap();
7720		window.addEventListener("click", (e) => {
7721			const el = e.target;
7722			if (el.matches("div[class*=\"language-\"] > button.copy")) {
7723				const parent = el.parentElement;
7724				const sibling = el.nextElementSibling?.nextElementSibling;
7725				if (!parent || !sibling) return;
7726				const clone = sibling.cloneNode(true);
7727				clone.querySelectorAll(ignoredNodes).forEach((node) => node.remove());
7728				clone.innerHTML = clone.innerHTML.replace(/\n+/g, "\n");
7729				let text = clone.textContent || "";
7730				if (isShell(/language-(\w+)/.exec(parent.className)?.[1] || "")) text = text.replace(/^ *(\$|>) /gm, "").trim();
7731				copyToClipboard(text).then(() => {
7732					el.classList.add("copied");
7733					clearTimeout(timeoutIdMap.get(el));
7734					const timeoutId = window.setTimeout(() => {
7735						el.classList.remove("copied");
7736						el.blur();
7737						timeoutIdMap.delete(el);
7738					}, 2e3);
7739					timeoutIdMap.set(el, timeoutId);
7740				});
7741			}
7742		});
7743	}
7744}
7745async function copyToClipboard(text) {
7746	try {
7747		await navigator.clipboard.writeText(text);
7748	} catch {
7749		const element = document.createElement("textarea");
7750		const previouslyFocusedElement = document.activeElement;
7751		element.value = text;
7752		element.setAttribute("readonly", "");
7753		element.style.contain = "strict";
7754		element.style.position = "absolute";
7755		element.style.left = "-9999px";
7756		element.style.fontSize = "12pt";
7757		const selection = document.getSelection();
7758		const originalRange = selection ? selection.rangeCount > 0 && selection.getRangeAt(0) : null;
7759		document.body.appendChild(element);
7760		element.select();
7761		element.selectionStart = 0;
7762		element.selectionEnd = text.length;
7763		document.execCommand("copy");
7764		document.body.removeChild(element);
7765		if (originalRange) {
7766			selection.removeAllRanges();
7767			selection.addRange(originalRange);
7768		}
7769		if (previouslyFocusedElement) previouslyFocusedElement.focus();
7770	}
7771}
7772//#endregion
7773//#region node_modules/.pnpm/[email protected][email protected][email protected][email protected]/node_modules/vitepress/dist/client/app/composables/head.js
7774function useUpdateHead(route, siteDataByRouteRef) {
7775	let isFirstUpdate = true;
7776	let managedHeadElements = [];
7777	const updateHeadTags = (newTags) => {
7778		if (isFirstUpdate) {
7779			isFirstUpdate = false;
7780			newTags.forEach((tag) => {
7781				const headEl = createHeadElement(tag);
7782				for (const el of document.head.children) if (el.isEqualNode(headEl)) {
7783					managedHeadElements.push(el);
7784					return;
7785				}
7786			});
7787			return;
7788		}
7789		const newElements = newTags.map(createHeadElement);
7790		managedHeadElements.forEach((oldEl, oldIndex) => {
7791			const matchedIndex = newElements.findIndex((newEl) => newEl?.isEqualNode(oldEl ?? null));
7792			if (matchedIndex !== -1) delete newElements[matchedIndex];
7793			else {
7794				oldEl?.remove();
7795				delete managedHeadElements[oldIndex];
7796			}
7797		});
7798		newElements.forEach((el) => el && document.head.appendChild(el));
7799		managedHeadElements = [...managedHeadElements, ...newElements].filter(Boolean);
7800	};
7801	watchEffect(() => {
7802		const pageData = route.data;
7803		const siteData = siteDataByRouteRef.value;
7804		const pageDescription = pageData && pageData.description;
7805		const frontmatterHead = pageData && pageData.frontmatter.head || [];
7806		const title = createTitle(siteData, pageData);
7807		if (title !== document.title) document.title = title;
7808		const description = pageDescription || siteData.description;
7809		let metaDescriptionElement = document.querySelector(`meta[name=description]`);
7810		if (metaDescriptionElement) {
7811			if (metaDescriptionElement.getAttribute("content") !== description) metaDescriptionElement.setAttribute("content", description);
7812		} else createHeadElement(["meta", {
7813			name: "description",
7814			content: description
7815		}]);
7816		updateHeadTags(mergeHead(siteData.head, filterOutHeadDescription(frontmatterHead)));
7817	});
7818}
7819function createHeadElement([tag, attrs, innerHTML]) {
7820	const el = document.createElement(tag);
7821	for (const [key, value] of Object.entries(attrs)) el.setAttribute(key, value);
7822	if (innerHTML) el.innerHTML = innerHTML;
7823	if (tag === "script" && attrs.async == null) el.async = false;
7824	return el;
7825}
7826function isMetaDescription(headConfig) {
7827	return headConfig[0] === "meta" && headConfig[1] && headConfig[1].name === "description";
7828}
7829function filterOutHeadDescription(head) {
7830	return head.filter((h) => !isMetaDescription(h));
7831}
7832//#endregion
7833//#region node_modules/.pnpm/[email protected][email protected][email protected][email protected]/node_modules/vitepress/dist/client/app/composables/preFetch.js
7834var hasFetched = /* @__PURE__ */ new Set();
7835var createLink = () => document.createElement("link");
7836var viaDOM = (url) => {
7837	const link = createLink();
7838	link.rel = `prefetch`;
7839	if (EXTERNAL_URL_RE.test(url)) link.crossOrigin = "";
7840	link.href = url;
7841	document.head.appendChild(link);
7842};
7843var viaXHR = (url) => {
7844	const req = new XMLHttpRequest();
7845	req.open("GET", url, true);
7846	req.withCredentials = !EXTERNAL_URL_RE.test(url);
7847	req.send();
7848};
7849var link;
7850var doFetch = inBrowser && (link = createLink()) && link.relList && link.relList.supports && link.relList.supports("prefetch") ? viaDOM : viaXHR;
7851function usePrefetch() {
7852	if (!inBrowser) return;
7853	if (!window.IntersectionObserver) return;
7854	let conn;
7855	if ((conn = navigator.connection) && (conn.saveData || /2g/.test(conn.effectiveType))) return;
7856	const rIC = window.requestIdleCallback || setTimeout;
7857	let observer = null;
7858	const observeLinks = () => {
7859		if (observer) observer.disconnect();
7860		observer = new IntersectionObserver((entries) => {
7861			entries.forEach((entry) => {
7862				if (entry.isIntersecting) {
7863					const link = entry.target;
7864					observer.unobserve(link);
7865					const { pathname } = link;
7866					if (!hasFetched.has(pathname)) {
7867						hasFetched.add(pathname);
7868						const pageChunkPath = pathToFile(pathname);
7869						if (pageChunkPath) doFetch(pageChunkPath);
7870					}
7871				}
7872			});
7873		});
7874		rIC(() => {
7875			document.querySelectorAll("#app a").forEach((link) => {
7876				const { hostname, pathname } = new URL(link.href instanceof SVGAnimatedString ? link.href.animVal : link.href, link.baseURI);
7877				const extMatch = pathname.match(/\.\w+$/);
7878				if (extMatch && extMatch[0] !== ".html") return;
7879				if (link.target !== "_blank" && hostname === location.hostname) {
7880					if (pathname !== location.pathname) observer.observe(link);
7881					else hasFetched.add(pathname);
7882				}
7883			});
7884		});
7885	};
7886	onMounted(observeLinks);
7887	const route = useRoute();
7888	watch(() => route.path, observeLinks);
7889	onUnmounted(() => {
7890		observer && observer.disconnect();
7891	});
7892}
7893//#endregion
7894//#region \0plugin-vue:export-helper
7895var _plugin_vue_export_helper_default = (sfc, props) => {
7896	const target = sfc.__vccOpts || sfc;
7897	for (const [key, val] of props) target[key] = val;
7898	return target;
7899};
7900//#endregion
7901//#region \0vite/preload-helper.js
7902var scriptRel = "modulepreload";
7903var assetsURL = function(dep) {
7904	return "/" + dep;
7905};
7906var seen = {};
7907var __vitePreload = function preload(baseModule, deps, importerUrl) {
7908	let promise = Promise.resolve();
7909	if (deps && deps.length > 0) {
7910		const links = document.getElementsByTagName("link");
7911		const cspNonceMeta = document.querySelector("meta[property=csp-nonce]");
7912		const cspNonce = cspNonceMeta?.nonce || cspNonceMeta?.getAttribute("nonce");
7913		function allSettled(promises) {
7914			return Promise.all(promises.map((p) => Promise.resolve(p).then((value) => ({
7915				status: "fulfilled",
7916				value
7917			}), (reason) => ({
7918				status: "rejected",
7919				reason
7920			}))));
7921		}
7922		function importMetaResolve(specifier) {
7923			if (import.meta.resolve) return import.meta.resolve(specifier);
7924			return new URL(
7925				specifier,
7926				/** #__KEEP__ */
7927				import.meta.url
7928			).href;
7929		}
7930		promise = allSettled(deps.map((dep) => {
7931			dep = assetsURL(dep, importerUrl);
7932			dep = importMetaResolve(dep);
7933			if (dep in seen) return;
7934			seen[dep] = true;
vendor: 2,969 bytes, lines 7935-7968
7935			const isCss = dep.endsWith(".css");
7936			for (let i = links.length - 1; i >= 0; i--) {
7937				const link = links[i];
7938				if (link.href === dep && (!isCss || link.rel === "stylesheet")) return;
7939			}
7940			const link = document.createElement("link");
7941			link.rel = isCss ? "stylesheet" : scriptRel;
7942			if (!isCss) link.as = "script";
7943			link.crossOrigin = "";
7944			link.href = dep;
7945			if (cspNonce) link.setAttribute("nonce", cspNonce);
7946			document.head.appendChild(link);
7947			if (isCss) return new Promise((res, rej) => {
7948				link.addEventListener("load", res);
7949				link.addEventListener("error", () => rej(/* @__PURE__ */ new Error(`Unable to preload CSS for ${dep}`)));
7950			});
7951		}).filter((p) => p !== void 0));
7952	}
7953	function handlePreloadError(err) {
7954		const e = new Event("vite:preloadError", { cancelable: true });
7955		e.payload = err;
7956		window.dispatchEvent(e);
7957		if (!e.defaultPrevented) throw err;
7958	}
7959	return promise.then((res) => {
7960		for (const item of res || []) {
7961			if (item.status !== "rejected") continue;
7962			handlePreloadError(item.reason);
7963		}
7964		return baseModule().catch(handlePreloadError);
7965	});
7966};
7967//#endregion
7968export { Teleport as $, notNullish as A, withCtx as At, isObject$1 as B, toValue as Bt, unrefElement as C, resolveDynamicComponent as Ct, useNavigatorLanguage as D, watch as Dt, useMediaQuery as E, useTemplateRef as Et, EXTERNAL_URL_RE as F, reactive as Ft, Transition as G, normalize as H, normalizeClass as Ht, escapeRegExp as I, readonly as It, vModelSelect as J, createApp as K, inBrowser as L, ref as Lt, tryOnScopeDispose as M, isRef as Mt, watchDebounced as N, markRaw as Nt, useSessionStorage as O, watchEffect as Ot, whenever as P, onScopeDispose as Pt, Fragment as Q, isActive as R, shallowReadonly as Rt, onKeyStroke as S, resolveComponent as St, useLocalStorage as T, useSlots as Tt, treatAsHtml as U, normalizeStyle as Ut, isRelativeBase as V, unref as Vt, ClientOnly as W, toDisplayString as Wt, vShow as X, vModelText as Y, withModifiers as Z, dataSymbol as _, onUpdated as _t, useCopyCode as a, createStaticVNode as at, useData as b, renderList as bt, RouterSymbol as c, defineAsyncComponent as ct, useRouter as d, inject as dt, computed as et, useIcon as f, mergeProps as ft, withBase as g, onUnmounted as gt, runtimeBase as h, onMounted as ht, useUpdateHead as i, createElementBlock as it, toArray as j, withDirectives as jt, useWindowScroll as k, watchPostEffect as kt, createRouter as l, defineComponent as lt, pathToFile as m, onBeforeUnmount as mt, _plugin_vue_export_helper_default as n, createBlock as nt, useCodeGroups as o, createTextVNode as ot, onContentUpdated as p, nextTick as pt, createSSRApp as q, usePrefetch as r, createCommentVNode as rt, Content as s, createVNode as st, __vitePreload as t, createBaseVNode as tt, useRoute as u, h as ut, initData as v, openBlock as vt, useEventListener as w, useId as wt, computedAsync as x, renderSlot as xt, siteDataRef as y, provide as yt, isExternal as z, shallowRef as zt };

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.