HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/quadcode.com/build/server/index.js
import { A as A$1, y, T, S } from './chunks/ssr-c4e448c1.js';
import { a as a$1, d, g as g$1, c, o, i } from './chunks/index-d9e8b680.js';
import { A as A$2, z } from './chunks/index2-db879dd9.js';
import { a, s, n } from './chunks/shared-server-c92518c6.js';

let p="",u=p;const g={base:p,assets:u};function k(){p=g.base,u=g.assets;}const b=A$1((n,t,e,_)=>{let{stores:o}=t,{page:d}=t,{constructors:s}=t,{components:a=[]}=t,{form:l}=t,{data_0:c=null}=t,{data_1:m=null}=t;y("__svelte__",o),o.page.notify,t.stores===void 0&&e.stores&&o!==void 0&&e.stores(o),t.page===void 0&&e.page&&d!==void 0&&e.page(d),t.constructors===void 0&&e.constructors&&s!==void 0&&e.constructors(s),t.components===void 0&&e.components&&a!==void 0&&e.components(a),t.form===void 0&&e.form&&l!==void 0&&e.form(l),t.data_0===void 0&&e.data_0&&c!==void 0&&e.data_0(c),t.data_1===void 0&&e.data_1&&m!==void 0&&e.data_1(m);let i,v;do i=!0,o.page.set(d),v=`  ${s[1]?`${T(s[0]||S,"svelte:component").$$render(n,{data:c,this:a[0]},{this:r=>{a[0]=r,i=!1;}},{default:()=>`${T(s[1]||S,"svelte:component").$$render(n,{data:m,form:l,this:a[1]},{this:r=>{a[1]=r,i=!1;}},{})}`})}`:`${T(s[0]||S,"svelte:component").$$render(n,{data:c,form:l,this:a[0]},{this:r=>{a[0]=r,i=!1;}},{})}`} `;while(!i);return v}),j={app_template_contains_nonce:!1,csp:{mode:"auto",directives:{"upgrade-insecure-requests":!1,"block-all-mixed-content":!1},reportOnly:{"upgrade-insecure-requests":!1,"block-all-mixed-content":!1}},csrf_check_origin:!1,track_server_fetches:!1,embedded:!1,env_public_prefix:"PUBLIC_",env_private_prefix:"",hooks:null,preload_strategy:"modulepreload",root:b,service_worker:!0,templates:{app:({head:n,body:t,assets:e,nonce:_,env:o})=>`<!DOCTYPE html>
<html lang="%lang%">
  <head>
    <meta charset="utf-8" />
    <base href="/" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta content="true" name="HandheldFriendly" />
    <meta content="width" name="MobileOptimized" />
    <meta name="mobile-web-app-capable" content="yes">
    <link rel="shortcut icon" type="image/x-icon" href="`+e+`/favicon.ico" />

    <meta name="msapplication-TileColor" content="#da532c" />
    <meta name="theme-color" content="#f8fbfd" />
    <!-- Google Tag Manager -->
    <script>
      (function (w, d, s, l, i) {
      w[l] = w[l] || [];
      w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
      var f = d.getElementsByTagName(s)[0],
      j = d.createElement(s),
      dl = l != 'dataLayer' ? '&l=' + l : '';
      j.async = true;
      j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
      f.parentNode.insertBefore(j, f);
      })(window, document, 'script', 'dataLayer', 'GTM-KQ8QT66');
    <\/script>
    <!-- End Google Tag Manager -->
    <script>
      window.onRecaptchaReady = function() {
        (window.__recaptchaQueue || []).forEach(fn => fn());
        window.__recaptchaQueue = [];
      };
    <\/script>
    `+n+`
  </head>
  <body data-sveltekit-reload>
    <main id="root">`+t+`</main>
    <!-- Google Tag Manager (noscript) -->
    <noscript><iframe
        src="https://www.googletagmanager.com/ns.html?id=GTM-KQ8QT66"
        height="0"
        width="0"
        loading="lazy"
        style="display: none; visibility: hidden"
      ></iframe
    ></noscript>
    <!-- End Google Tag Manager (noscript) -->
    <script src="`+(o.PUBLIC_POPUP_WIDGET??"")+`" defer><\/script>
  </body>
</html>
`,error:({status:n,message:t})=>`<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<title>`+t+`</title>

		<style>
			body {
				--bg: white;
				--fg: #222;
				--divider: #ccc;
				background: var(--bg);
				color: var(--fg);
				font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
					Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
				display: flex;
				align-items: center;
				justify-content: center;
				height: 100vh;
				margin: 0;
			}

			.error {
				display: flex;
				align-items: center;
				max-width: 32rem;
				margin: 0 1rem;
			}

			.status {
				font-weight: 200;
				font-size: 3rem;
				line-height: 1;
				position: relative;
				top: -0.05rem;
			}

			.message {
				border-left: 1px solid var(--divider);
				padding: 0 0 0 1rem;
				margin: 0 0 0 1rem;
				min-height: 2.5rem;
				display: flex;
				align-items: center;
			}

			.message h1 {
				font-weight: 400;
				font-size: 1em;
				margin: 0;
			}

			@media (prefers-color-scheme: dark) {
				body {
					--bg: #222;
					--fg: #ddd;
					--divider: #666;
				}
			}
		</style>
	</head>
	<body>
		<div class="error">
			<span class="status">`+n+`</span>
			<div class="message">
				<h1>`+t+`</h1>
			</div>
		</div>
	</body>
</html>
`},version_hash:"1i2cho8"};function C(){return import('./chunks/hooks.server-6eac7800.js')}

/** @type {Record<string, string>} */
const escaped = {
	'<': '\\u003C',
	'\\': '\\\\',
	'\b': '\\b',
	'\f': '\\f',
	'\n': '\\n',
	'\r': '\\r',
	'\t': '\\t',
	'\u2028': '\\u2028',
	'\u2029': '\\u2029'
};

class DevalueError extends Error {
	/**
	 * @param {string} message
	 * @param {string[]} keys
	 */
	constructor(message, keys) {
		super(message);
		this.name = 'DevalueError';
		this.path = keys.join('');
	}
}

/** @param {any} thing */
function is_primitive(thing) {
	return Object(thing) !== thing;
}

const object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames(
	Object.prototype
)
	.sort()
	.join('\0');

/** @param {any} thing */
function is_plain_object(thing) {
	const proto = Object.getPrototypeOf(thing);

	return (
		proto === Object.prototype ||
		proto === null ||
		Object.getOwnPropertyNames(proto).sort().join('\0') === object_proto_names
	);
}

/** @param {any} thing */
function get_type(thing) {
	return Object.prototype.toString.call(thing).slice(8, -1);
}

/** @param {string} char */
function get_escaped_char(char) {
	switch (char) {
		case '"':
			return '\\"';
		case '<':
			return '\\u003C';
		case '\\':
			return '\\\\';
		case '\n':
			return '\\n';
		case '\r':
			return '\\r';
		case '\t':
			return '\\t';
		case '\b':
			return '\\b';
		case '\f':
			return '\\f';
		case '\u2028':
			return '\\u2028';
		case '\u2029':
			return '\\u2029';
		default:
			return char < ' '
				? `\\u${char.charCodeAt(0).toString(16).padStart(4, '0')}`
				: '';
	}
}

/** @param {string} str */
function stringify_string(str) {
	let result = '';
	let last_pos = 0;
	const len = str.length;

	for (let i = 0; i < len; i += 1) {
		const char = str[i];
		const replacement = get_escaped_char(char);
		if (replacement) {
			result += str.slice(last_pos, i) + replacement;
			last_pos = i + 1;
		}
	}

	return `"${last_pos === 0 ? str : result + str.slice(last_pos)}"`;
}

const chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$';
const unsafe_chars = /[<\b\f\n\r\t\0\u2028\u2029]/g;
const reserved =
	/^(?:do|if|in|for|int|let|new|try|var|byte|case|char|else|enum|goto|long|this|void|with|await|break|catch|class|const|final|float|short|super|throw|while|yield|delete|double|export|import|native|return|switch|throws|typeof|boolean|default|extends|finally|package|private|abstract|continue|debugger|function|volatile|interface|protected|transient|implements|instanceof|synchronized)$/;

/**
 * Turn a value into the JavaScript that creates an equivalent value
 * @param {any} value
 * @param {(value: any) => string | void} [replacer]
 */
function uneval(value, replacer) {
	const counts = new Map();

	/** @type {string[]} */
	const keys = [];

	const custom = new Map();

	/** @param {any} thing */
	function walk(thing) {
		if (typeof thing === 'function') {
			throw new DevalueError(`Cannot stringify a function`, keys);
		}

		if (!is_primitive(thing)) {
			if (counts.has(thing)) {
				counts.set(thing, counts.get(thing) + 1);
				return;
			}

			counts.set(thing, 1);

			if (replacer) {
				const str = replacer(thing);

				if (typeof str === 'string') {
					custom.set(thing, str);
					return;
				}
			}

			const type = get_type(thing);

			switch (type) {
				case 'Number':
				case 'BigInt':
				case 'String':
				case 'Boolean':
				case 'Date':
				case 'RegExp':
					return;

				case 'Array':
					/** @type {any[]} */ (thing).forEach((value, i) => {
						keys.push(`[${i}]`);
						walk(value);
						keys.pop();
					});
					break;

				case 'Set':
					Array.from(thing).forEach(walk);
					break;

				case 'Map':
					for (const [key, value] of thing) {
						keys.push(
							`.get(${is_primitive(key) ? stringify_primitive$1(key) : '...'})`
						);
						walk(value);
						keys.pop();
					}
					break;

				default:
					if (!is_plain_object(thing)) {
						throw new DevalueError(
							`Cannot stringify arbitrary non-POJOs`,
							keys
						);
					}

					if (Object.getOwnPropertySymbols(thing).length > 0) {
						throw new DevalueError(
							`Cannot stringify POJOs with symbolic keys`,
							keys
						);
					}

					for (const key in thing) {
						keys.push(`.${key}`);
						walk(thing[key]);
						keys.pop();
					}
			}
		}
	}

	walk(value);

	const names = new Map();

	Array.from(counts)
		.filter((entry) => entry[1] > 1)
		.sort((a, b) => b[1] - a[1])
		.forEach((entry, i) => {
			names.set(entry[0], get_name(i));
		});

	/**
	 * @param {any} thing
	 * @returns {string}
	 */
	function stringify(thing) {
		if (names.has(thing)) {
			return names.get(thing);
		}

		if (is_primitive(thing)) {
			return stringify_primitive$1(thing);
		}

		if (custom.has(thing)) {
			return custom.get(thing);
		}

		const type = get_type(thing);

		switch (type) {
			case 'Number':
			case 'String':
			case 'Boolean':
				return `Object(${stringify(thing.valueOf())})`;

			case 'RegExp':
				return `new RegExp(${stringify_string(thing.source)}, "${
					thing.flags
				}")`;

			case 'Date':
				return `new Date(${thing.getTime()})`;

			case 'Array':
				const members = /** @type {any[]} */ (thing).map((v, i) =>
					i in thing ? stringify(v) : ''
				);
				const tail = thing.length === 0 || thing.length - 1 in thing ? '' : ',';
				return `[${members.join(',')}${tail}]`;

			case 'Set':
			case 'Map':
				return `new ${type}([${Array.from(thing).map(stringify).join(',')}])`;

			default:
				const obj = `{${Object.keys(thing)
					.map((key) => `${safe_key(key)}:${stringify(thing[key])}`)
					.join(',')}}`;
				const proto = Object.getPrototypeOf(thing);
				if (proto === null) {
					return Object.keys(thing).length > 0
						? `Object.assign(Object.create(null),${obj})`
						: `Object.create(null)`;
				}

				return obj;
		}
	}

	const str = stringify(value);

	if (names.size) {
		/** @type {string[]} */
		const params = [];

		/** @type {string[]} */
		const statements = [];

		/** @type {string[]} */
		const values = [];

		names.forEach((name, thing) => {
			params.push(name);

			if (custom.has(thing)) {
				values.push(/** @type {string} */ (custom.get(thing)));
				return;
			}

			if (is_primitive(thing)) {
				values.push(stringify_primitive$1(thing));
				return;
			}

			const type = get_type(thing);

			switch (type) {
				case 'Number':
				case 'String':
				case 'Boolean':
					values.push(`Object(${stringify(thing.valueOf())})`);
					break;

				case 'RegExp':
					values.push(thing.toString());
					break;

				case 'Date':
					values.push(`new Date(${thing.getTime()})`);
					break;

				case 'Array':
					values.push(`Array(${thing.length})`);
					/** @type {any[]} */ (thing).forEach((v, i) => {
						statements.push(`${name}[${i}]=${stringify(v)}`);
					});
					break;

				case 'Set':
					values.push(`new Set`);
					statements.push(
						`${name}.${Array.from(thing)
							.map((v) => `add(${stringify(v)})`)
							.join('.')}`
					);
					break;

				case 'Map':
					values.push(`new Map`);
					statements.push(
						`${name}.${Array.from(thing)
							.map(([k, v]) => `set(${stringify(k)}, ${stringify(v)})`)
							.join('.')}`
					);
					break;

				default:
					values.push(
						Object.getPrototypeOf(thing) === null ? 'Object.create(null)' : '{}'
					);
					Object.keys(thing).forEach((key) => {
						statements.push(
							`${name}${safe_prop(key)}=${stringify(thing[key])}`
						);
					});
			}
		});

		statements.push(`return ${str}`);

		return `(function(${params.join(',')}){${statements.join(
			';'
		)}}(${values.join(',')}))`;
	} else {
		return str;
	}
}

/** @param {number} num */
function get_name(num) {
	let name = '';

	do {
		name = chars[num % chars.length] + name;
		num = ~~(num / chars.length) - 1;
	} while (num >= 0);

	return reserved.test(name) ? `${name}0` : name;
}

/** @param {string} c */
function escape_unsafe_char(c) {
	return escaped[c] || c;
}

/** @param {string} str */
function escape_unsafe_chars(str) {
	return str.replace(unsafe_chars, escape_unsafe_char);
}

/** @param {string} key */
function safe_key(key) {
	return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key)
		? key
		: escape_unsafe_chars(JSON.stringify(key));
}

/** @param {string} key */
function safe_prop(key) {
	return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key)
		? `.${key}`
		: `[${escape_unsafe_chars(JSON.stringify(key))}]`;
}

/** @param {any} thing */
function stringify_primitive$1(thing) {
	if (typeof thing === 'string') return stringify_string(thing);
	if (thing === void 0) return 'void 0';
	if (thing === 0 && 1 / thing < 0) return '-0';
	const str = String(thing);
	if (typeof thing === 'number') return str.replace(/^(-)?0\./, '$1.');
	if (typeof thing === 'bigint') return thing + 'n';
	return str;
}

const UNDEFINED = -1;
const HOLE = -2;
const NAN = -3;
const POSITIVE_INFINITY = -4;
const NEGATIVE_INFINITY = -5;
const NEGATIVE_ZERO = -6;

/**
 * Turn a value into a JSON string that can be parsed with `devalue.parse`
 * @param {any} value
 * @param {Record<string, (value: any) => any>} [reducers]
 */
function stringify(value, reducers) {
	/** @type {any[]} */
	const stringified = [];

	/** @type {Map<any, number>} */
	const indexes = new Map();

	/** @type {Array<{ key: string, fn: (value: any) => any }>} */
	const custom = [];
	for (const key in reducers) {
		custom.push({ key, fn: reducers[key] });
	}

	/** @type {string[]} */
	const keys = [];

	let p = 0;

	/** @param {any} thing */
	function flatten(thing) {
		if (typeof thing === 'function') {
			throw new DevalueError(`Cannot stringify a function`, keys);
		}

		if (indexes.has(thing)) return indexes.get(thing);

		if (thing === undefined) return UNDEFINED;
		if (Number.isNaN(thing)) return NAN;
		if (thing === Infinity) return POSITIVE_INFINITY;
		if (thing === -Infinity) return NEGATIVE_INFINITY;
		if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO;

		const index = p++;
		indexes.set(thing, index);

		for (const { key, fn } of custom) {
			const value = fn(thing);
			if (value) {
				stringified[index] = `["${key}",${flatten(value)}]`;
				return index;
			}
		}

		let str = '';

		if (is_primitive(thing)) {
			str = stringify_primitive(thing);
		} else {
			const type = get_type(thing);

			switch (type) {
				case 'Number':
				case 'String':
				case 'Boolean':
					str = `["Object",${stringify_primitive(thing)}]`;
					break;

				case 'BigInt':
					str = `["BigInt",${thing}]`;
					break;

				case 'Date':
					str = `["Date","${thing.toISOString()}"]`;
					break;

				case 'RegExp':
					const { source, flags } = thing;
					str = flags
						? `["RegExp",${stringify_string(source)},"${flags}"]`
						: `["RegExp",${stringify_string(source)}]`;
					break;

				case 'Array':
					str = '[';

					for (let i = 0; i < thing.length; i += 1) {
						if (i > 0) str += ',';

						if (i in thing) {
							keys.push(`[${i}]`);
							str += flatten(thing[i]);
							keys.pop();
						} else {
							str += HOLE;
						}
					}

					str += ']';

					break;

				case 'Set':
					str = '["Set"';

					for (const value of thing) {
						str += `,${flatten(value)}`;
					}

					str += ']';
					break;

				case 'Map':
					str = '["Map"';

					for (const [key, value] of thing) {
						keys.push(
							`.get(${is_primitive(key) ? stringify_primitive(key) : '...'})`
						);
						str += `,${flatten(key)},${flatten(value)}`;
					}

					str += ']';
					break;

				default:
					if (!is_plain_object(thing)) {
						throw new DevalueError(
							`Cannot stringify arbitrary non-POJOs`,
							keys
						);
					}

					if (Object.getOwnPropertySymbols(thing).length > 0) {
						throw new DevalueError(
							`Cannot stringify POJOs with symbolic keys`,
							keys
						);
					}

					if (Object.getPrototypeOf(thing) === null) {
						str = '["null"';
						for (const key in thing) {
							keys.push(`.${key}`);
							str += `,${stringify_string(key)},${flatten(thing[key])}`;
							keys.pop();
						}
						str += ']';
					} else {
						str = '{';
						let started = false;
						for (const key in thing) {
							if (started) str += ',';
							started = true;
							keys.push(`.${key}`);
							str += `${stringify_string(key)}:${flatten(thing[key])}`;
							keys.pop();
						}
						str += '}';
					}
			}
		}

		stringified[index] = str;
		return index;
	}

	const index = flatten(value);

	// special case — value is represented as a negative index
	if (index < 0) return `${index}`;

	return `[${stringified.join(',')}]`;
}

/**
 * @param {any} thing
 * @returns {string}
 */
function stringify_primitive(thing) {
	const type = typeof thing;
	if (type === 'string') return stringify_string(thing);
	if (thing instanceof String) return stringify_string(thing.toString());
	if (thing === void 0) return UNDEFINED.toString();
	if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO.toString();
	if (type === 'bigint') return `["BigInt","${thing}"]`;
	return String(thing);
}

var cookie = {};

/*!
 * cookie
 * Copyright(c) 2012-2014 Roman Shtylman
 * Copyright(c) 2015 Douglas Christopher Wilson
 * MIT Licensed
 */

var hasRequiredCookie;

function requireCookie () {
	if (hasRequiredCookie) return cookie;
	hasRequiredCookie = 1;

	/**
	 * Module exports.
	 * @public
	 */

	cookie.parse = parse;
	cookie.serialize = serialize;

	/**
	 * Module variables.
	 * @private
	 */

	var __toString = Object.prototype.toString;

	/**
	 * RegExp to match field-content in RFC 7230 sec 3.2
	 *
	 * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
	 * field-vchar   = VCHAR / obs-text
	 * obs-text      = %x80-FF
	 */

	var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;

	/**
	 * Parse a cookie header.
	 *
	 * Parse the given cookie header string into an object
	 * The object has the various cookies as keys(names) => values
	 *
	 * @param {string} str
	 * @param {object} [options]
	 * @return {object}
	 * @public
	 */

	function parse(str, options) {
	  if (typeof str !== 'string') {
	    throw new TypeError('argument str must be a string');
	  }

	  var obj = {};
	  var opt = options || {};
	  var dec = opt.decode || decode;

	  var index = 0;
	  while (index < str.length) {
	    var eqIdx = str.indexOf('=', index);

	    // no more cookie pairs
	    if (eqIdx === -1) {
	      break
	    }

	    var endIdx = str.indexOf(';', index);

	    if (endIdx === -1) {
	      endIdx = str.length;
	    } else if (endIdx < eqIdx) {
	      // backtrack on prior semicolon
	      index = str.lastIndexOf(';', eqIdx - 1) + 1;
	      continue
	    }

	    var key = str.slice(index, eqIdx).trim();

	    // only assign once
	    if (undefined === obj[key]) {
	      var val = str.slice(eqIdx + 1, endIdx).trim();

	      // quoted values
	      if (val.charCodeAt(0) === 0x22) {
	        val = val.slice(1, -1);
	      }

	      obj[key] = tryDecode(val, dec);
	    }

	    index = endIdx + 1;
	  }

	  return obj;
	}

	/**
	 * Serialize data into a cookie header.
	 *
	 * Serialize the a name value pair into a cookie string suitable for
	 * http headers. An optional options object specified cookie parameters.
	 *
	 * serialize('foo', 'bar', { httpOnly: true })
	 *   => "foo=bar; httpOnly"
	 *
	 * @param {string} name
	 * @param {string} val
	 * @param {object} [options]
	 * @return {string}
	 * @public
	 */

	function serialize(name, val, options) {
	  var opt = options || {};
	  var enc = opt.encode || encode;

	  if (typeof enc !== 'function') {
	    throw new TypeError('option encode is invalid');
	  }

	  if (!fieldContentRegExp.test(name)) {
	    throw new TypeError('argument name is invalid');
	  }

	  var value = enc(val);

	  if (value && !fieldContentRegExp.test(value)) {
	    throw new TypeError('argument val is invalid');
	  }

	  var str = name + '=' + value;

	  if (null != opt.maxAge) {
	    var maxAge = opt.maxAge - 0;

	    if (isNaN(maxAge) || !isFinite(maxAge)) {
	      throw new TypeError('option maxAge is invalid')
	    }

	    str += '; Max-Age=' + Math.floor(maxAge);
	  }

	  if (opt.domain) {
	    if (!fieldContentRegExp.test(opt.domain)) {
	      throw new TypeError('option domain is invalid');
	    }

	    str += '; Domain=' + opt.domain;
	  }

	  if (opt.path) {
	    if (!fieldContentRegExp.test(opt.path)) {
	      throw new TypeError('option path is invalid');
	    }

	    str += '; Path=' + opt.path;
	  }

	  if (opt.expires) {
	    var expires = opt.expires;

	    if (!isDate(expires) || isNaN(expires.valueOf())) {
	      throw new TypeError('option expires is invalid');
	    }

	    str += '; Expires=' + expires.toUTCString();
	  }

	  if (opt.httpOnly) {
	    str += '; HttpOnly';
	  }

	  if (opt.secure) {
	    str += '; Secure';
	  }

	  if (opt.priority) {
	    var priority = typeof opt.priority === 'string'
	      ? opt.priority.toLowerCase()
	      : opt.priority;

	    switch (priority) {
	      case 'low':
	        str += '; Priority=Low';
	        break
	      case 'medium':
	        str += '; Priority=Medium';
	        break
	      case 'high':
	        str += '; Priority=High';
	        break
	      default:
	        throw new TypeError('option priority is invalid')
	    }
	  }

	  if (opt.sameSite) {
	    var sameSite = typeof opt.sameSite === 'string'
	      ? opt.sameSite.toLowerCase() : opt.sameSite;

	    switch (sameSite) {
	      case true:
	        str += '; SameSite=Strict';
	        break;
	      case 'lax':
	        str += '; SameSite=Lax';
	        break;
	      case 'strict':
	        str += '; SameSite=Strict';
	        break;
	      case 'none':
	        str += '; SameSite=None';
	        break;
	      default:
	        throw new TypeError('option sameSite is invalid');
	    }
	  }

	  return str;
	}

	/**
	 * URL-decode string value. Optimized to skip native call when no %.
	 *
	 * @param {string} str
	 * @returns {string}
	 */

	function decode (str) {
	  return str.indexOf('%') !== -1
	    ? decodeURIComponent(str)
	    : str
	}

	/**
	 * URL-encode value.
	 *
	 * @param {string} str
	 * @returns {string}
	 */

	function encode (val) {
	  return encodeURIComponent(val)
	}

	/**
	 * Determine if value is a Date.
	 *
	 * @param {*} val
	 * @private
	 */

	function isDate (val) {
	  return __toString.call(val) === '[object Date]' ||
	    val instanceof Date
	}

	/**
	 * Try decoding a string using a decoding function.
	 *
	 * @param {string} str
	 * @param {function} decode
	 * @private
	 */

	function tryDecode(str, decode) {
	  try {
	    return decode(str);
	  } catch (e) {
	    return str;
	  }
	}
	return cookie;
}

var cookieExports = requireCookie();

var setCookie = {exports: {}};

var hasRequiredSetCookie;

function requireSetCookie () {
	if (hasRequiredSetCookie) return setCookie.exports;
	hasRequiredSetCookie = 1;

	var defaultParseOptions = {
	  decodeValues: true,
	  map: false,
	  silent: false,
	};

	function isNonEmptyString(str) {
	  return typeof str === "string" && !!str.trim();
	}

	function parseString(setCookieValue, options) {
	  var parts = setCookieValue.split(";").filter(isNonEmptyString);

	  var nameValuePairStr = parts.shift();
	  var parsed = parseNameValuePair(nameValuePairStr);
	  var name = parsed.name;
	  var value = parsed.value;

	  options = options
	    ? Object.assign({}, defaultParseOptions, options)
	    : defaultParseOptions;

	  try {
	    value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value
	  } catch (e) {
	    console.error(
	      "set-cookie-parser encountered an error while decoding a cookie with value '" +
	        value +
	        "'. Set options.decodeValues to false to disable this feature.",
	      e
	    );
	  }

	  var cookie = {
	    name: name,
	    value: value,
	  };

	  parts.forEach(function (part) {
	    var sides = part.split("=");
	    var key = sides.shift().trimLeft().toLowerCase();
	    var value = sides.join("=");
	    if (key === "expires") {
	      cookie.expires = new Date(value);
	    } else if (key === "max-age") {
	      cookie.maxAge = parseInt(value, 10);
	    } else if (key === "secure") {
	      cookie.secure = true;
	    } else if (key === "httponly") {
	      cookie.httpOnly = true;
	    } else if (key === "samesite") {
	      cookie.sameSite = value;
	    } else {
	      cookie[key] = value;
	    }
	  });

	  return cookie;
	}

	function parseNameValuePair(nameValuePairStr) {
	  // Parses name-value-pair according to rfc6265bis draft

	  var name = "";
	  var value = "";
	  var nameValueArr = nameValuePairStr.split("=");
	  if (nameValueArr.length > 1) {
	    name = nameValueArr.shift();
	    value = nameValueArr.join("="); // everything after the first =, joined by a "=" if there was more than one part
	  } else {
	    value = nameValuePairStr;
	  }

	  return { name: name, value: value };
	}

	function parse(input, options) {
	  options = options
	    ? Object.assign({}, defaultParseOptions, options)
	    : defaultParseOptions;

	  if (!input) {
	    if (!options.map) {
	      return [];
	    } else {
	      return {};
	    }
	  }

	  if (input.headers) {
	    if (typeof input.headers.getSetCookie === "function") {
	      // for fetch responses - they combine headers of the same type in the headers array,
	      // but getSetCookie returns an uncombined array
	      input = input.headers.getSetCookie();
	    } else if (input.headers["set-cookie"]) {
	      // fast-path for node.js (which automatically normalizes header names to lower-case
	      input = input.headers["set-cookie"];
	    } else {
	      // slow-path for other environments - see #25
	      var sch =
	        input.headers[
	          Object.keys(input.headers).find(function (key) {
	            return key.toLowerCase() === "set-cookie";
	          })
	        ];
	      // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36
	      if (!sch && input.headers.cookie && !options.silent) {
	        console.warn(
	          "Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."
	        );
	      }
	      input = sch;
	    }
	  }
	  if (!Array.isArray(input)) {
	    input = [input];
	  }

	  options = options
	    ? Object.assign({}, defaultParseOptions, options)
	    : defaultParseOptions;

	  if (!options.map) {
	    return input.filter(isNonEmptyString).map(function (str) {
	      return parseString(str, options);
	    });
	  } else {
	    var cookies = {};
	    return input.filter(isNonEmptyString).reduce(function (cookies, str) {
	      var cookie = parseString(str, options);
	      cookies[cookie.name] = cookie;
	      return cookies;
	    }, cookies);
	  }
	}

	/*
	  Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas
	  that are within a single set-cookie field-value, such as in the Expires portion.

	  This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2
	  Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128
	  React Native's fetch does this for *every* header, including set-cookie.

	  Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25
	  Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation
	*/
	function splitCookiesString(cookiesString) {
	  if (Array.isArray(cookiesString)) {
	    return cookiesString;
	  }
	  if (typeof cookiesString !== "string") {
	    return [];
	  }

	  var cookiesStrings = [];
	  var pos = 0;
	  var start;
	  var ch;
	  var lastComma;
	  var nextStart;
	  var cookiesSeparatorFound;

	  function skipWhitespace() {
	    while (pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))) {
	      pos += 1;
	    }
	    return pos < cookiesString.length;
	  }

	  function notSpecialChar() {
	    ch = cookiesString.charAt(pos);

	    return ch !== "=" && ch !== ";" && ch !== ",";
	  }

	  while (pos < cookiesString.length) {
	    start = pos;
	    cookiesSeparatorFound = false;

	    while (skipWhitespace()) {
	      ch = cookiesString.charAt(pos);
	      if (ch === ",") {
	        // ',' is a cookie separator if we have later first '=', not ';' or ','
	        lastComma = pos;
	        pos += 1;

	        skipWhitespace();
	        nextStart = pos;

	        while (pos < cookiesString.length && notSpecialChar()) {
	          pos += 1;
	        }

	        // currently special character
	        if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") {
	          // we found cookies separator
	          cookiesSeparatorFound = true;
	          // pos is inside the next cookie, so back up and return it.
	          pos = nextStart;
	          cookiesStrings.push(cookiesString.substring(start, lastComma));
	          start = pos;
	        } else {
	          // in param ',' or param separator ';',
	          // we continue from that comma
	          pos = lastComma + 1;
	        }
	      } else {
	        pos += 1;
	      }
	    }

	    if (!cookiesSeparatorFound || pos >= cookiesString.length) {
	      cookiesStrings.push(cookiesString.substring(start, cookiesString.length));
	    }
	  }

	  return cookiesStrings;
	}

	setCookie.exports = parse;
	setCookie.exports.parse = parse;
	setCookie.exports.parseString = parseString;
	setCookie.exports.splitCookiesString = splitCookiesString;
	return setCookie.exports;
}

var setCookieExports = requireSetCookie();

const gt="/_svelte_kit_assets",He=new Set(["GET","POST","PUT","PATCH","DELETE","OPTIONS","HEAD"]),$t=new Set(["GET","POST","HEAD"]);function ce(e,t){const r=[];e.split(",").forEach((o,a)=>{const u=/([^/]+)\/([^;]+)(?:;q=([0-9.]+))?/.exec(o);if(u){const[,d,i,c="1"]=u;r.push({type:d,subtype:i,q:+c,i:a});}}),r.sort((o,a)=>o.q!==a.q?a.q-o.q:o.subtype==="*"!=(a.subtype==="*")?o.subtype==="*"?1:-1:o.type==="*"!=(a.type==="*")?o.type==="*"?1:-1:o.i-a.i);let n,s=1/0;for(const o of t){const[a,u]=o.split("/"),d=r.findIndex(i=>(i.type===a||i.type==="*")&&(i.subtype===u||i.subtype==="*"));d!==-1&&d<s&&(n=o,s=d);}return n}function kt(e,...t){const r=e.headers.get("content-type")?.split(";",1)[0].trim()??"";return t.includes(r.toLowerCase())}function Ue(e){return kt(e,"application/x-www-form-urlencoded","multipart/form-data","text/plain")}function bt(e,t,r){const n={},s=e.slice(1);let o=0;for(let a=0;a<t.length;a+=1){const u=t[a];let d=s[a-o];if(u.chained&&u.rest&&o&&(d=s.slice(a-o,a+1).filter(i=>i).join("/"),o=0),d===void 0){u.rest&&(n[u.name]="");continue}if(!u.matcher||r[u.matcher](d)){n[u.name]=d;const i=t[a+1],c=s[a+1];i&&!i.rest&&i.optional&&c&&u.chained&&(o=0);continue}if(u.optional&&u.chained){o++;continue}return}if(!o)return n}function vt(e){return e instanceof Error||e&&e.name&&e.message?e:new Error(JSON.stringify(e))}function ze(e,t){return g$1(`${t} method not allowed`,{status:405,headers:{allow:xt(e).join(", ")}})}function xt(e){const t=Array.from(He).filter(r=>r in e);return ("GET"in e||"HEAD"in e)&&t.push("HEAD"),t}function ue(e,t,r){let n=e.templates.error({status:t,message:r});return g$1(n,{headers:{"content-type":"text/html; charset=utf-8"},status:t})}async function we(e,t,r){r=r instanceof o?r:vt(r);const n=r instanceof o?r.status:500,s=await A(e,t,r),o$1=ce(e.request.headers.get("accept")||"text/html",["application/json","text/html"]);return e.isDataRequest||o$1==="application/json"?d(s,{status:n}):ue(t,n,s.message)}async function A(e,t,r){return r instanceof o?r.body:await t.hooks.handleError({error:r,event:e})??{message:e.route.id!=null?"Internal Error":"Not Found"}}function K(e,t){return new Response(void 0,{status:e,headers:{location:t}})}function Ie(e,t){return t.path?`Data returned from \`load\` while rendering ${e.route.id} is not serializable: ${t.message} (data${t.path})`:t.path===""?`Data returned from \`load\` while rendering ${e.route.id} is not a plain object`:t.message}function Ne(e){const t=[];return e.uses&&e.uses.dependencies.size>0&&t.push(`"dependencies":${JSON.stringify(Array.from(e.uses.dependencies))}`),e.uses&&e.uses.params.size>0&&t.push(`"params":${JSON.stringify(Array.from(e.uses.params))}`),e.uses?.parent&&t.push('"parent":1'),e.uses?.route&&t.push('"route":1'),e.uses?.url&&t.push('"url":1'),`"uses":{${t.join(",")}}`}async function Et(e,t,r){const n=e.request.method;let s=t[n];if(!s&&n==="HEAD"&&(s=t.GET),!s)return ze(t,n);const o=t.prerender??r.prerender_default;if(o&&(t.POST||t.PATCH||t.PUT||t.DELETE))throw new Error("Cannot prerender endpoints that have mutative methods");if(r.prerendering&&!o){if(r.depth>0)throw new Error(`${e.route.id} is not prerenderable`);return new Response(void 0,{status:204})}try{let a=await s(e);if(!(a instanceof Response))throw new Error(`Invalid response from route ${e.url.pathname}: handler should return a Response object`);return r.prerendering&&(a=new Response(a.body,{status:a.status,statusText:a.statusText,headers:new Headers(a.headers)}),a.headers.set("x-sveltekit-prerender",String(o))),a}catch(a){if(a instanceof c)return new Response(void 0,{status:a.status,headers:{location:a.location}});throw a}}function jt(e){const{method:t,headers:r}=e.request;if(He.has(t)&&!$t.has(t))return !0;if(t==="POST"&&r.get("x-sveltekit-action")==="true")return !1;const n=e.request.headers.get("accept")??"*/*";return ce(n,["*","text/html"])!=="text/html"}function ge(e){return e.filter(t=>t!=null)}function le(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function St(e){return e.split("%25").map(decodeURI).join("%25")}function Rt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}const Tt=["href","pathname","search","searchParams","toString","toJSON"];function Ot(e,t){const r=new URL(e);for(const n of Tt)Object.defineProperty(r,n,{get(){return t(),e[n]},enumerable:!0,configurable:!0});return r[Symbol.for("nodejs.util.inspect.custom")]=(n,s,o)=>o(e,s),Pt(r),r}function Pt(e){Le(e),Object.defineProperty(e,"hash",{get(){throw new Error("Cannot access event.url.hash. Consider using `$page.url.hash` inside a component instead")}});}function De(e){Le(e);for(const t of ["search","searchParams"])Object.defineProperty(e,t,{get(){throw new Error(`Cannot access url.${t} on a page with prerendering enabled`)}});}function Le(e){e[Symbol.for("nodejs.util.inspect.custom")]=(t,r,n)=>n(new URL(e),r);}const de="/__data.json";function At(e){return e.endsWith(de)}function qt(e){return e.replace(/\/$/,"")+de}function $e(e){return e.slice(0,-de.length)}function We(e){return ce(e.request.headers.get("accept")??"*/*",["application/json","text/html"])==="application/json"&&e.request.method==="POST"}async function Ct(e,t,r){const n=r?.actions;if(!n){const s=a$1(405,"POST method not allowed. No actions exist for this page");return J({type:"error",error:await A(e,t,s)},{status:s.status,headers:{allow:"GET"}})}Me(n);try{const s=await Fe(e,n);return s instanceof i?J({type:"failure",status:s.status,data:ke(s.data,e.route.id)}):J({type:"success",status:s?200:204,data:ke(s,e.route.id)})}catch(s){const o$1=s;return o$1 instanceof c?Je(o$1):J({type:"error",error:await A(e,t,Ge(o$1))},{status:o$1 instanceof o?o$1.status:500})}}function Ge(e){return e instanceof i?new Error('Cannot "throw fail()". Use "return fail()"'):e}function Je(e){return J({type:"redirect",status:e.status,location:e.location})}function J(e,t){return d(e,t)}function Ht(e){return e.request.method==="POST"}async function Ut(e,t){const r=t?.actions;if(!r)return e.setHeaders({allow:"GET"}),{type:"error",error:a$1(405,"POST method not allowed. No actions exist for this page")};Me(r);try{const n=await Fe(e,r);return n instanceof i?{type:"failure",status:n.status,data:n.data}:{type:"success",status:200,data:n}}catch(n){const s=n;return s instanceof c?{type:"redirect",status:s.status,location:s.location}:{type:"error",error:Ge(s)}}}function Me(e){if(e.default&&Object.keys(e).length>1)throw new Error("When using named actions, the default action cannot be used. See the docs for more info: https://kit.svelte.dev/docs/form-actions#named-actions")}async function Fe(e,t){const r=new URL(e.request.url);let n="default";for(const o of r.searchParams)if(o[0].startsWith("/")){if(n=o[0].slice(1),n==="default")throw new Error('Cannot use reserved action name "default"');break}const s=t[n];if(!s)throw new Error(`No action with name '${n}' found`);if(!Ue(e.request))throw new Error(`Actions expect form-encoded data (received ${e.request.headers.get("content-type")})`);return s(e)}function zt(e,t){return Ve(e,uneval,t)}function ke(e,t){return Ve(e,stringify,t)}function Ve(e,t,r){try{return t(e)}catch(n){const s=n;if("path"in s){let o=`Data returned from action inside ${r} is not serializable: ${s.message}`;throw s.path!==""&&(o+=` (data.${s.path})`),new Error(o)}throw s}}async function Be(e){for(const t in e)if(typeof e[t]?.then=="function")return Object.fromEntries(await Promise.all(Object.entries(e).map(async([r,n])=>[r,await n])));return e}const be="x-sveltekit-invalidated",ve="x-sveltekit-trailing-slash";async function fe({event:e,state:t,node:r,parent:n,track_server_fetches:s}){if(!r?.server)return null;const o={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1},a=Ot(e.url,()=>{o.url=!0;});t.prerendering&&De(a);const u=await r.server.load?.call(null,{...e,fetch:(i,c)=>{const _=new URL(i instanceof Request?i.url:i,e.url);return s&&o.dependencies.add(_.href),e.fetch(i,c)},depends:(...i)=>{for(const c of i){const{href:_}=new URL(c,e.url);o.dependencies.add(_);}},params:new Proxy(e.params,{get:(i,c)=>(o.params.add(c),i[c])}),parent:async()=>(o.parent=!0,n()),route:new Proxy(e.route,{get:(i,c)=>(o.route=!0,i[c])}),url:a});return {type:"data",data:u?await Be(u):null,uses:o,slash:r.server.trailingSlash}}async function Xe({event:e,fetched:t,node:r,parent:n,server_data_promise:s,state:o,resolve_opts:a,csr:u}){const d=await s;if(!r?.universal?.load)return d?.data??null;const i=await r.universal.load.call(null,{url:e.url,params:e.params,data:d?.data??null,route:e.route,fetch:It(e,o,t,u,a),setHeaders:e.setHeaders,depends:()=>{},parent:n});return i?await Be(i):null}function It(e,t,r,n,s){return async(o,a)=>{const u=o instanceof Request&&o.body?o.clone().body:null,d=o instanceof Request&&[...o.headers].length?new Headers(o.headers):a?.headers;let i=await e.fetch(o,a);const c=new URL(o instanceof Request?o.url:o,e.url),_=c.origin===e.url.origin;let m;if(_)t.prerendering&&(m={response:i,body:null},t.prerendering.dependencies.set(c.pathname,m));else if((o instanceof Request?o.mode:a?.mode??"cors")==="no-cors")i=new Response("",{status:i.status,statusText:i.statusText,headers:i.headers});else {const w=i.headers.get("access-control-allow-origin");if(!w||w!==e.url.origin&&w!=="*")throw new Error(`CORS error: ${w?"Incorrect":"No"} 'Access-Control-Allow-Origin' header is present on the requested resource`)}const l=new Proxy(i,{get(p,w,h){async function y(){const g=await p.text();if(!g||typeof g=="string"){const f=Number(p.status);if(isNaN(f))throw new Error(`response.status is not a number. value: "${p.status}" type: ${typeof p.status}`);r.push({url:_?c.href.slice(e.url.origin.length):c.href,method:e.request.method,request_body:o instanceof Request&&u?await Nt(u):a?.body,request_headers:d,response_body:g,response:p});}return m&&(m.body=g),g}return w==="arrayBuffer"?async()=>{const g=await p.arrayBuffer();return m&&(m.body=new Uint8Array(g)),g}:w==="text"?y:w==="json"?async()=>JSON.parse(await y()):Reflect.get(p,w,p)}});if(n){const p=i.headers.get;i.headers.get=w=>{const h=w.toLowerCase(),y=p.call(i.headers,h);if(y&&!h.startsWith("x-sveltekit-")&&!s.filterSerializedResponseHeaders(h,y))throw new Error(`Failed to get response header "${h}" — it must be included by the \`filterSerializedResponseHeaders\` option: https://kit.svelte.dev/docs/hooks#server-hooks-handle (at ${e.route.id})`);return y};}return l}}async function Nt(e){let t="";const r=e.getReader(),n=new TextDecoder;for(;;){const{done:s,value:o}=await r.read();if(s)break;t+=n.decode(o);}return t}function Ke(...e){let t=5381;for(const r of e)if(typeof r=="string"){let n=r.length;for(;n;)t=t*33^r.charCodeAt(--n);}else if(ArrayBuffer.isView(r)){const n=new Uint8Array(r.buffer,r.byteOffset,r.byteLength);let s=n.length;for(;s;)t=t*33^n[--s];}else throw new TypeError("value must be a string or TypedArray");return (t>>>0).toString(36)}const Qe={"&":"&amp;",'"':"&quot;"},Dt=new RegExp(`[${Object.keys(Qe).join("")}]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\udc00-\\udfff]`,"g");function Ye(e){return `"${e.replace(Dt,r=>r.length===2?r:Qe[r]??`&#${r.charCodeAt(0)};`)}"`}const Ze={"<":"\\u003C","\u2028":"\\u2028","\u2029":"\\u2029"},Lt=new RegExp(`[${Object.keys(Ze).join("")}]`,"g");function Wt(e,t,r=!1){const n={};let s=null,o=null,a=!1;for(const[c,_]of e.response.headers)t(c,_)&&(n[c]=_),c==="cache-control"?s=_:c==="age"?o=_:c==="vary"&&_.trim()==="*"&&(a=!0);const u={status:e.response.status,statusText:e.response.statusText,headers:n,body:e.response_body},d=JSON.stringify(u).replace(Lt,c=>Ze[c]),i=['type="application/json"',"data-sveltekit-fetched",`data-url=${Ye(e.url)}`];if(e.request_headers||e.request_body){const c=[];e.request_headers&&c.push([...new Headers(e.request_headers)].join(",")),e.request_body&&c.push(e.request_body),i.push(`data-hash="${Ke(...c)}"`);}if(!r&&e.method==="GET"&&s&&!a){const c=/s-maxage=(\d+)/g.exec(s)??/max-age=(\d+)/g.exec(s);if(c){const _=+c[1]-+(o??"0");i.push(`data-ttl="${_}"`);}}return `<script ${i.join(" ")}>${d}<\/script>`}const N=JSON.stringify,Gt=new TextEncoder;function xe(e){re[0]||Jt();const t=et.slice(0),r=Mt(e);for(let s=0;s<r.length;s+=16){const o=r.subarray(s,s+16);let a,u,d,i=t[0],c=t[1],_=t[2],m=t[3],l=t[4],p=t[5],w=t[6],h=t[7];for(let y=0;y<64;y++)y<16?a=o[y]:(u=o[y+1&15],d=o[y+14&15],a=o[y&15]=(u>>>7^u>>>18^u>>>3^u<<25^u<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+o[y&15]+o[y+9&15]|0),a=a+h+(l>>>6^l>>>11^l>>>25^l<<26^l<<21^l<<7)+(w^l&(p^w))+re[y],h=w,w=p,p=l,l=m+a|0,m=_,_=c,c=i,i=a+(c&_^m&(c^_))+(c>>>2^c>>>13^c>>>22^c<<30^c<<19^c<<10)|0;t[0]=t[0]+i|0,t[1]=t[1]+c|0,t[2]=t[2]+_|0,t[3]=t[3]+m|0,t[4]=t[4]+l|0,t[5]=t[5]+p|0,t[6]=t[6]+w|0,t[7]=t[7]+h|0;}const n=new Uint8Array(t.buffer);return tt(n),rt(n)}const et=new Uint32Array(8),re=new Uint32Array(64);function Jt(){function e(r){return (r-Math.floor(r))*4294967296}let t=2;for(let r=0;r<64;t++){let n=!0;for(let s=2;s*s<=t;s++)if(t%s===0){n=!1;break}n&&(r<8&&(et[r]=e(t**(1/2))),re[r]=e(t**(1/3)),r++);}}function tt(e){for(let t=0;t<e.length;t+=4){const r=e[t+0],n=e[t+1],s=e[t+2],o=e[t+3];e[t+0]=o,e[t+1]=s,e[t+2]=n,e[t+3]=r;}}function Mt(e){const t=Gt.encode(e),r=t.length*8,n=512*Math.ceil((r+65)/512),s=new Uint8Array(n/8);s.set(t),s[t.length]=128,tt(s);const o=new Uint32Array(s.buffer);return o[o.length-2]=Math.floor(r/4294967296),o[o.length-1]=r,o}const H="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");function rt(e){const t=e.length;let r="",n;for(n=2;n<t;n+=3)r+=H[e[n-2]>>2],r+=H[(e[n-2]&3)<<4|e[n-1]>>4],r+=H[(e[n-1]&15)<<2|e[n]>>6],r+=H[e[n]&63];return n===t+1&&(r+=H[e[n-2]>>2],r+=H[(e[n-2]&3)<<4],r+="=="),n===t&&(r+=H[e[n-2]>>2],r+=H[(e[n-2]&3)<<4|e[n-1]>>4],r+=H[(e[n-1]&15)<<2],r+="="),r}const Ee=new Uint8Array(16);function Ft(){return crypto.getRandomValues(Ee),rt(Ee)}const Vt=new Set(["self","unsafe-eval","unsafe-hashes","unsafe-inline","none","strict-dynamic","report-sample","wasm-unsafe-eval","script"]),Bt=/^(nonce|sha\d\d\d)-/;class nt{#e;#t;#s;#o;#r;#n;#a;constructor(t,r,n){this.#e=t,this.#o=r;const s=this.#o;this.#r=[],this.#n=[];const o=s["script-src"]||s["default-src"],a=s["style-src"]||s["default-src"];this.#t=!!o&&o.filter(u=>u!=="unsafe-inline").length>0,this.#s=!!a&&a.filter(u=>u!=="unsafe-inline").length>0,this.script_needs_nonce=this.#t&&!this.#e,this.style_needs_nonce=this.#s&&!this.#e,this.#a=n;}add_script(t){this.#t&&(this.#e?this.#r.push(`sha256-${xe(t)}`):this.#r.length===0&&this.#r.push(`nonce-${this.#a}`));}add_style(t){this.#s&&(this.#e?this.#n.push(`sha256-${xe(t)}`):this.#n.length===0&&this.#n.push(`nonce-${this.#a}`));}get_header(t=!1){const r=[],n={...this.#o};this.#n.length>0&&(n["style-src"]=[...n["style-src"]||n["default-src"]||[],...this.#n]),this.#r.length>0&&(n["script-src"]=[...n["script-src"]||n["default-src"]||[],...this.#r]);for(const s in n){if(t&&(s==="frame-ancestors"||s==="report-uri"||s==="sandbox"))continue;const o=n[s];if(!o)continue;const a=[s];Array.isArray(o)&&o.forEach(u=>{Vt.has(u)||Bt.test(u)?a.push(`'${u}'`):a.push(u);}),r.push(a.join(" "));}return r.join("; ")}}class Xt extends nt{get_meta(){const t=this.get_header(!0);if(t)return `<meta http-equiv="content-security-policy" content=${Ye(t)}>`}}class Kt extends nt{constructor(t,r,n){if(super(t,r,n),Object.values(r).filter(s=>!!s).length>0){const s=r["report-to"]?.length??0>0,o=r["report-uri"]?.length??0>0;if(!s&&!o)throw Error("`content-security-policy-report-only` must be specified with either the `report-to` or `report-uri` directives, or both")}}}class Qt{nonce=Ft();csp_provider;report_only_provider;constructor({mode:t,directives:r,reportOnly:n},{prerender:s}){const o=t==="hash"||t==="auto"&&s;this.csp_provider=new Xt(o,r,this.nonce),this.report_only_provider=new Kt(o,n,this.nonce);}get script_needs_nonce(){return this.csp_provider.script_needs_nonce||this.report_only_provider.script_needs_nonce}get style_needs_nonce(){return this.csp_provider.style_needs_nonce||this.report_only_provider.style_needs_nonce}add_script(t){this.csp_provider.add_script(t),this.report_only_provider.add_script(t);}add_style(t){this.csp_provider.add_style(t),this.report_only_provider.add_style(t);}}function je(){let e,t;return {promise:new Promise((n,s)=>{e=n,t=s;}),fulfil:e,reject:t}}function st(){const e=[je()];return {iterator:{[Symbol.asyncIterator](){return {next:async()=>{const t=await e[0].promise;return t.done||e.shift(),t}}}},push:t=>{e[e.length-1].fulfil({value:t,done:!1}),e.push(je());},done:()=>{e[e.length-1].fulfil({done:!0});}}}const Yt={...z(!1),check:()=>!1},Se=new TextEncoder;async function M({branch:e,fetched:t,options:r,manifest:n$1,state:s,page_config:o,status:a,error:u$1=null,event:d,resolve_opts:i,action_result:c}){if(s.prerendering){if(r.csp.mode==="nonce")throw new Error('Cannot use prerendering if config.kit.csp.mode === "nonce"');if(r.app_template_contains_nonce)throw new Error("Cannot use prerendering if page template contains %sveltekit.nonce%")}const{client:_}=n$1._,m=new Set(_.imports),l=new Set(_.stylesheets),p$1=new Set(_.fonts),w=new Set,h=new Map;let y;const g=c?.type==="success"||c?.type==="failure"?c.data??null:null;let f=p,b=u,$=N(p);if(s.prerendering?.fallback||(f=d.url.pathname.slice(p.length).split("/").slice(2).map(()=>"..").join("/")||".",$=`new URL(${N(f)}, location).pathname.slice(0, -1)`,(!u||u[0]==="/"&&u!==gt)&&(b=f)),o.ssr){const v={stores:{page:A$2(null),navigating:A$2(null),updated:Yt},constructors:await Promise.all(e.map(({node:S})=>S.component())),form:g};let E={};for(let S=0;S<e.length;S+=1)E={...E,...e[S].data},v[`data_${S}`]=E;v.page={error:u$1,params:d.params,route:d.route,status:a,url:d.url,data:E,form:g};try{y=r.root.render(v);}finally{k();}for(const{node:S}of e){for(const T of S.imports)m.add(T);for(const T of S.stylesheets)l.add(T);for(const T of S.fonts)p$1.add(T);S.inline_styles&&Object.entries(await S.inline_styles()).forEach(([T,B])=>h.set(T,B));}}else y={head:"",html:"",css:{code:"",map:null}};let k$1="",x=y.html;const j=new Qt(r.csp,{prerender:!!s.prerendering}),R=v=>v.startsWith("/")?p+v:`${b}/${v}`;if(h.size>0){const v=Array.from(h.values()).join(`
`),E=[];j.style_needs_nonce&&E.push(` nonce="${j.nonce}"`),j.add_style(v),k$1+=`
	<style${E.join("")}>${v}</style>`;}for(const v of l){const E=R(v),S=['rel="stylesheet"'];if(h.has(v))S.push("disabled",'media="(max-width: 0)"');else if(i.preload({type:"css",path:E})){const T=['rel="preload"','as="style"'];w.add(`<${encodeURI(E)}>; ${T.join(";")}; nopush`);}k$1+=`
		<link href="${E}" ${S.join(" ")}>`;}for(const v of p$1){const E=R(v);if(i.preload({type:"font",path:E})){const T=['rel="preload"','as="font"',`type="font/${v.slice(v.lastIndexOf(".")+1)}"`,`href="${E}"`,"crossorigin"];k$1+=`
		<link ${T.join(" ")}>`;}}const L=`__sveltekit_${r.version_hash}`,{data:W,chunks:V}=Zt(d,r,e.map(v=>v.server_data),L);if(o.ssr&&o.csr&&(x+=`
			${t.map(v=>Wt(v,i.filterSerializedResponseHeaders,!!s.prerendering)).join(`
			`)}`),o.csr){const v=Array.from(m,O=>R(O)).filter(O=>i.preload({type:"js",path:O}));for(const O of v)w.add(`<${encodeURI(O)}>; rel="modulepreload"; nopush`),r.preload_strategy!=="modulepreload"?k$1+=`
		<link rel="preload" as="script" crossorigin="anonymous" href="${O}">`:s.prerendering&&(k$1+=`
		<link rel="modulepreload" href="${O}">`);const E=[],S=[u&&`assets: ${N(u)}`,`base: ${$}`,`env: ${N(n)}`].filter(Boolean);V&&(E.push("const deferred = new Map();"),S.push(`defer: (id) => new Promise((fulfil, reject) => {
							deferred.set(id, { fulfil, reject });
						})`),S.push(`resolve: ({ id, data, error }) => {
							const { fulfil, reject } = deferred.get(id);
							deferred.delete(id);

							if (error) reject(error);
							else fulfil(data);
						}`)),E.push(`${L} = {
						${S.join(`,
						`)}
					};`);const T=["app","element"];if(E.push("const element = document.currentScript.parentElement;"),o.ssr){const O={form:"null",error:"null"};E.push(`const data = ${W};`),g&&(O.form=zt(g,d.route.id)),u$1&&(O.error=uneval(u$1));const Z=[`node_ids: [${e.map(({node:ft})=>ft.index).join(", ")}]`,"data",`form: ${O.form}`,`error: ${O.error}`];a!==200&&Z.push(`status: ${a}`),r.embedded&&Z.push(`params: ${uneval(d.params)}`,`route: ${N(d.route)}`),T.push(`{
							${Z.join(`,
							`)}
						}`);}if(E.push(`Promise.all([
						import(${N(R(_.start))}),
						import(${N(R(_.app))})
					]).then(([kit, app]) => {
						kit.start(${T.join(", ")});
					});`),r.service_worker){const O="";E.push(`if ('serviceWorker' in navigator) {
						addEventListener('load', function () {
							navigator.serviceWorker.register('${R("service-worker.js")}'${O});
						});
					}`);}const B=`
				{
					${E.join(`

					`)}
				}
			`;j.add_script(B),x+=`
			<script${j.script_needs_nonce?` nonce="${j.nonce}"`:""}>${B}<\/script>
		`;}const G=new Headers({"x-sveltekit-page":"true","content-type":"text/html"});if(s.prerendering){const v=[],E=j.csp_provider.get_meta();E&&v.push(E),s.prerendering.cache&&v.push(`<meta http-equiv="cache-control" content="${s.prerendering.cache}">`),v.length>0&&(k$1=v.join(`
`)+k$1);}else {const v=j.csp_provider.get_header();v&&G.set("content-security-policy",v);const E=j.report_only_provider.get_header();E&&G.set("content-security-policy-report-only",E),w.size&&G.set("link",Array.from(w).join(", "));}k$1+=y.head;const dt=r.templates.app({head:k$1,body:x,assets:b,nonce:j.nonce,env:n}),Y=await i.transformPageChunk({html:dt,done:!0})||"";return V||G.set("etag",`"${Ke(Y)}"`),V?new Response(new ReadableStream({async start(v){v.enqueue(Se.encode(Y+`
`));for await(const E of V)v.enqueue(Se.encode(E));v.close();},type:"bytes"}),{headers:{"content-type":"text/html"}}):g$1(Y,{status:a,headers:G})}function Zt(e,t,r,n){let s=1,o=0;const{iterator:a,push:u,done:d}=st();function i(c){if(typeof c?.then=="function"){const _=s++;return o+=1,c.then(m=>({data:m})).catch(async m=>({error:await A(e,t,m)})).then(async({data:m,error:l})=>{o-=1;let p;try{p=uneval({id:_,data:m,error:l},i);}catch{l=await A(e,t,new Error(`Failed to serialize promise while rendering ${e.route.id}`)),m=void 0,p=uneval({id:_,data:m,error:l},i);}u(`<script>${n}.resolve(${p})<\/script>
`),o===0&&d();}),`${n}.defer(${_})`}}try{return {data:`[${r.map(_=>_?`{"type":"data","data":${uneval(_.data,i)},${Ne(_)}${_.slash?`,"slash":${JSON.stringify(_.slash)}`:""}}`:"null").join(",")}]`,chunks:o>0?a:null}}catch(c){throw new Error(Ie(e,c))}}function U(e,t){return e.reduce((r,n)=>n?.universal?.[t]??n?.server?.[t]??r,void 0)}async function ot({event:e,options:t,manifest:r,state:n,status:s,error:o$1,resolve_opts:a}){const u=[];try{const d=[],i=await r._.nodes[0](),c=U([i],"ssr")??!0,_=U([i],"csr")??!0;if(c){n.error=!0;const m=fe({event:e,state:n,node:i,parent:async()=>({}),track_server_fetches:t.track_server_fetches}),l=await m,p=await Xe({event:e,fetched:u,node:i,parent:async()=>({}),resolve_opts:a,server_data_promise:m,state:n,csr:_});d.push({node:i,server_data:l,data:p},{node:await r._.nodes[1](),data:null,server_data:null});}return await M({options:t,manifest:r,state:n,page_config:{ssr:c,csr:U([i],"csr")??!0},status:s,error:await A(e,t,o$1),branch:d,fetched:u,event:e,resolve_opts:a})}catch(d){return d instanceof c?K(d.status,d.location):ue(t,d instanceof o?d.status:500,(await A(e,t,d)).message)}}function er(e){let t=!1,r;return ()=>t?r:(t=!0,r=e())}const Re=new TextEncoder;async function tr(e,t,r,n,s,o$1,a){if(!t.page)return new Response(void 0,{status:404});try{const u=[...t.page.layouts,t.page.leaf],d=o$1??u.map(()=>!0);let i=!1;const c$1=new URL(e.url);c$1.pathname=le(c$1.pathname,a);const _={...e,url:c$1},m=u.map((g,f)=>er(async()=>{try{if(i)return {type:"skip"};const b=g==null?g:await n._.nodes[g]();return fe({event:_,state:s,node:b,parent:async()=>{const $={};for(let k=0;k<f;k+=1){const x=await m[k]();x&&Object.assign($,x.data);}return $},track_server_fetches:r.track_server_fetches})}catch(b){throw i=!0,b}})),l=m.map(async(g,f)=>d[f]?g():{type:"skip"});let p=l.length;const w=await Promise.all(l.map((g,f)=>g.catch(async b=>{if(b instanceof c)throw b;return p=Math.min(p,f+1),{type:"error",error:await A(e,r,b),status:b instanceof o?b.status:void 0}}))),{data:h,chunks:y}=at(e,r,w);return y?new Response(new ReadableStream({async start(g){g.enqueue(Re.encode(h));for await(const f of y)g.enqueue(Re.encode(f));g.close();},type:"bytes"}),{headers:{"content-type":"text/sveltekit-data","cache-control":"private, no-store"}}):ne(h)}catch(u){const d=u;return d instanceof c?se(d):ne(await A(e,r,d),500)}}function ne(e,t=200){return g$1(typeof e=="string"?e:JSON.stringify(e),{status:t,headers:{"content-type":"application/json","cache-control":"private, no-store"}})}function se(e){return ne({type:"redirect",location:e.location})}function at(e,t,r){let n=1,s=0;const{iterator:o,push:a,done:u}=st(),d={Promise:i=>{if(typeof i?.then=="function"){const c=n++;s+=1;let _="data";return i.catch(async m=>(_="error",A(e,t,m))).then(async m=>{let l;try{l=stringify(m,d);}catch{const w=await A(e,t,new Error(`Failed to serialize promise while rendering ${e.route.id}`));_="error",l=stringify(w,d);}s-=1,a(`{"type":"chunk","id":${c},"${_}":${l}}
`),s===0&&u();}),c}}};try{return {data:`{"type":"data","nodes":[${r.map(c=>c?c.type==="error"||c.type==="skip"?JSON.stringify(c):`{"type":"data","data":${stringify(c.data,d)},${Ne(c)}${c.slash?`,"slash":${JSON.stringify(c.slash)}`:""}}`:"null").join(",")}]}
`,chunks:s>0?o:null}}catch(i){throw new Error(Ie(e,i))}}const rr=10;async function nr(e,t,r,n,s,o$1){if(s.depth>rr)return g$1(`Not found: ${e.url.pathname}`,{status:404});if(We(e)){const a=await n._.nodes[t.leaf]();return Ct(e,r,a?.server)}try{const a=await Promise.all([...t.layouts.map(f=>f==null?f:n._.nodes[f]()),n._.nodes[t.leaf]()]),u=a.at(-1);let d=200,i;if(Ht(e)){if(i=await Ut(e,u.server),i?.type==="redirect")return K(i.status,i.location);if(i?.type==="error"){const f=i.error;d=f instanceof o?f.status:500;}i?.type==="failure"&&(d=i.status);}const c$1=a.some(f=>f?.server),_=qt(e.url.pathname),m=U(a,"prerender")??!1;if(m){if(u.server?.actions)throw new Error("Cannot prerender pages with actions")}else if(s.prerendering)return new Response(void 0,{status:204});s.prerender_default=m;const l=[];if(U(a,"ssr")===!1)return await M({branch:[],fetched:l,page_config:{ssr:!1,csr:U(a,"csr")??!0},status:d,error:null,event:e,options:r,manifest:n,state:s,resolve_opts:o$1});const p=[];let w=null;const h=a.map((f,b)=>{if(w)throw w;return Promise.resolve().then(async()=>{try{if(f===u&&i?.type==="error")throw i.error;return await fe({event:e,state:s,node:f,parent:async()=>{const $={};for(let k=0;k<b;k+=1){const x=await h[k];x&&Object.assign($,await x.data);}return $},track_server_fetches:r.track_server_fetches})}catch($){throw w=$,w}})}),y=U(a,"csr")??!0,g=a.map((f,b)=>{if(w)throw w;return Promise.resolve().then(async()=>{try{return await Xe({event:e,fetched:l,node:f,parent:async()=>{const $={};for(let k=0;k<b;k+=1)Object.assign($,await g[k]);return $},resolve_opts:o$1,server_data_promise:h[b],state:s,csr:y})}catch($){throw w=$,w}})});for(const f of h)f.catch(()=>{});for(const f of g)f.catch(()=>{});for(let f=0;f<a.length;f+=1){const b=a[f];if(b)try{const $=await h[f],k=await g[f];p.push({node:b,server_data:$,data:k});}catch($){const k=$;if(k instanceof c){if(s.prerendering&&c$1){const R=JSON.stringify({type:"redirect",location:k.location});s.prerendering.dependencies.set(_,{response:g$1(R),body:R});}return K(k.status,k.location)}const x=k instanceof o?k.status:500,j=await A(e,r,k);for(;f--;)if(t.errors[f]){const R=t.errors[f],L=await n._.nodes[R]();let W=f;for(;!p[W];)W-=1;return await M({event:e,options:r,manifest:n,state:s,resolve_opts:o$1,page_config:{ssr:!0,csr:!0},status:x,error:j,branch:ge(p.slice(0,W+1)).concat({node:L,data:null,server_data:null}),fetched:l})}return ue(r,x,j.message)}else p.push(null);}if(s.prerendering&&c$1){let{data:f,chunks:b}=at(e,r,p.map($=>$?.server_data));if(b)for await(const $ of b)f+=$;s.prerendering.dependencies.set(_,{response:g$1(f),body:f});}return await M({event:e,options:r,manifest:n,state:s,resolve_opts:o$1,page_config:{csr:U(a,"csr")??!0,ssr:!0},status:d,error:null,branch:ge(p),action_result:i,fetched:l})}catch(a){return await ot({event:e,options:r,manifest:n,state:s,status:500,error:a,resolve_opts:o$1})}}function sr(e,t,r){const n=e.headers.get("cookie")??"",s=cookieExports.parse(n,{decode:m=>m}),a=le(t.pathname,r).split("/").slice(0,-1).join("/")||"/",u={},d={httpOnly:!0,sameSite:"lax",secure:!(t.hostname==="localhost"&&t.protocol==="http:")},i={get(m,l){const p=u[m];if(p&&ee(t.hostname,p.options.domain)&&te(t.pathname,p.options.path))return p.value;const w=l?.decode||decodeURIComponent;return cookieExports.parse(n,{decode:w})[m]},getAll(m){const l=m?.decode||decodeURIComponent,p=cookieExports.parse(n,{decode:l});for(const w of Object.values(u))ee(t.hostname,w.options.domain)&&te(t.pathname,w.options.path)&&(p[w.name]=w.value);return Object.entries(p).map(([w,h])=>({name:w,value:h}))},set(m,l,p={}){_(m,l,{...d,...p});},delete(m,l={}){i.set(m,"",{...l,maxAge:0});},serialize(m,l,p){return cookieExports.serialize(m,l,{...d,...p})}};function c(m,l){const p={...s};for(const w in u){const h=u[w];if(!ee(m.hostname,h.options.domain)||!te(m.pathname,h.options.path))continue;const y=h.options.encode||encodeURIComponent;p[h.name]=y(h.value);}if(l){const w=cookieExports.parse(l,{decode:h=>h});for(const h in w)p[h]=w[h];}return Object.entries(p).map(([w,h])=>`${w}=${h}`).join("; ")}function _(m,l,p){const w=p.path??a;u[m]={name:m,value:l,options:{...p,path:w}};}return {cookies:i,new_cookies:u,get_cookie_header:c,set_internal:_}}function ee(e,t){if(!t)return !0;const r=t[0]==="."?t.slice(1):t;return e===r?!0:e.endsWith("."+r)}function te(e,t){if(!t)return !0;const r=t.endsWith("/")?t.slice(0,-1):t;return e===r?!0:e.startsWith(r+"/")}function Te(e,t){for(const r of t){const{name:n,value:s,options:o}=r;e.append("set-cookie",cookieExports.serialize(n,s,o));}}function or({event:e,options:t,manifest:r,state:n,get_cookie_header:s,set_internal:o}){return async(a,u$1)=>{const d=Oe(a,u$1,e.url);let i=(a instanceof Request?a.mode:u$1?.mode)??"cors",c=(a instanceof Request?a.credentials:u$1?.credentials)??"same-origin";return await t.hooks.handleFetch({event:e,request:d,fetch:async(_,m)=>{const l=Oe(_,m,e.url),p$1=new URL(l.url);if(l.headers.has("origin")||l.headers.set("origin",e.url.origin),_!==d&&(i=(_ instanceof Request?_.mode:m?.mode)??"cors",c=(_ instanceof Request?_.credentials:m?.credentials)??"same-origin"),(l.method==="GET"||l.method==="HEAD")&&(i==="no-cors"&&p$1.origin!==e.url.origin||p$1.origin===e.url.origin)&&l.headers.delete("origin"),p$1.origin!==e.url.origin){if(`.${p$1.hostname}`.endsWith(`.${e.url.hostname}`)&&c!=="omit"){const x=s(p$1,l.headers.get("cookie"));x&&l.headers.set("cookie",x);}return fetch(l)}const w=u||p,h=decodeURIComponent(p$1.pathname),y=(h.startsWith(w)?h.slice(w.length):h).slice(1),g=`${y}/index.html`,f=r.assets.has(y),b=r.assets.has(g);if(f||b){const x=f?y:g;if(n.read){const j=f?r.mimeTypes[y.slice(y.lastIndexOf("."))]:"text/html";return new Response(n.read(x),{headers:j?{"content-type":j}:{}})}return await fetch(l)}if(c!=="omit"){const x=s(p$1,l.headers.get("cookie"));x&&l.headers.set("cookie",x);const j=e.request.headers.get("authorization");j&&!l.headers.has("authorization")&&l.headers.set("authorization",j);}l.headers.has("accept")||l.headers.set("accept","*/*"),l.headers.has("accept-language")||l.headers.set("accept-language",e.request.headers.get("accept-language"));const $=await lt(l,t,r,{...n,depth:n.depth+1}),k=$.headers.get("set-cookie");if(k)for(const x of setCookieExports.splitCookiesString(k)){const{name:j,value:R,...L}=setCookieExports.parseString(x);o(j,R,L);}return $}})}}function Oe(e,t,r){return e instanceof Request?e:new Request(typeof e=="string"?new URL(e,r):e,t)}const Q=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);new Set([...Q,"entries"]);const he=new Set([...Q]);new Set([...he,"actions","entries"]);const Pe=({html:e})=>e,Ae=()=>!1,qe=({type:e})=>e==="js"||e==="css",ir=new Set(["GET","HEAD","POST"]),cr=new Set(["GET","HEAD","OPTIONS"]);async function lt(e,t,r,n){const s=new URL(e.url);if(t.csrf_check_origin&&Ue(e)&&(e.method==="POST"||e.method==="PUT"||e.method==="PATCH"||e.method==="DELETE")&&e.headers.get("origin")!==s.origin){const y=a$1(403,`Cross-site ${e.method} form submissions are forbidden`);return e.headers.get("accept")==="application/json"?d(y.body,{status:y.status}):g$1(y.body.message,{status:y.status})}let o;try{o=St(s.pathname);}catch{return g$1("Malformed URI",{status:400})}let a=null,u={};if(p&&!n.prerendering?.fallback){if(!o.startsWith(p))return g$1("Not found",{status:404});o=o.slice(p.length)||"/";}const d$1=At(o);let i;if(d$1&&(o=$e(o)||"/",s.pathname=$e(s.pathname)+(s.searchParams.get(ve)==="1"?"/":"")||"/",s.searchParams.delete(ve),i=s.searchParams.get(be)?.split("").map(h=>h==="1"),s.searchParams.delete(be)),!n.prerendering?.fallback){const h=await r._.matchers();for(const y of r._.routes){const g=y.pattern.exec(o);if(!g)continue;const f=bt(g,y.params,h);if(f){a=y,u=Rt(f);break}}}let c$1;const _={};let m={};const l={cookies:null,fetch:null,getClientAddress:n.getClientAddress||(()=>{throw new Error("@sveltejs/adapter-node does not specify getClientAddress. Please raise an issue")}),locals:{},params:u,platform:n.platform,request:e,route:{id:a?.id??null},setHeaders:h=>{for(const y in h){const g=y.toLowerCase(),f=h[y];if(g==="set-cookie")throw new Error("Use `event.cookies.set(name, value, options)` instead of `event.setHeaders` to set cookies");if(g in _)throw new Error(`"${y}" header is already set`);_[g]=f,n.prerendering&&g==="cache-control"&&(n.prerendering.cache=f);}},url:s,isDataRequest:d$1,isSubRequest:n.depth>0};let p$1={transformPageChunk:Pe,filterSerializedResponseHeaders:Ae,preload:qe};try{if(a){if(s.pathname===p||s.pathname===p+"/")c$1="always";else if(a.page){const $=await Promise.all([...a.page.layouts.map(k=>k==null?k:r._.nodes[k]()),r._.nodes[a.page.leaf]()]);c$1=U($,"trailingSlash");}else a.endpoint&&(c$1=(await a.endpoint()).trailingSlash);if(!d$1){const $=le(s.pathname,c$1??"never");if($!==s.pathname&&!n.prerendering?.fallback)return new Response(void 0,{status:308,headers:{"x-sveltekit-normalize":"1",location:($.startsWith("//")?s.origin+$:$)+(s.search==="?"?"":s.search)}})}}const{cookies:h,new_cookies:y,get_cookie_header:g,set_internal:f}=sr(e,s,c$1??"never");m=y,l.cookies=h,l.fetch=or({event:l,options:t,manifest:r,state:n,get_cookie_header:g,set_internal:f}),n.prerendering&&!n.prerendering.fallback&&De(s);const b=await t.hooks.handle({event:l,resolve:($,k)=>w($,k).then(x=>{for(const j in _){const R=_[j];x.headers.set(j,R);}return Te(x.headers,Object.values(m)),n.prerendering&&$.route.id!==null&&x.headers.set("x-sveltekit-routeid",encodeURI($.route.id)),x})});if(b.status===200&&b.headers.has("etag")){let $=e.headers.get("if-none-match");$?.startsWith('W/"')&&($=$.substring(2));const k=b.headers.get("etag");if($===k){const x=new Headers({etag:k});for(const j of ["cache-control","content-location","date","expires","vary","set-cookie"]){const R=b.headers.get(j);R&&x.set(j,R);}return new Response(void 0,{status:304,headers:x})}}if(d$1&&b.status>=300&&b.status<=308){const $=b.headers.get("location");if($)return se(new c(b.status,$))}return b}catch(h){if(h instanceof c){const y=d$1?se(h):a?.page&&We(l)?Je(h):K(h.status,h.location);return Te(y.headers,Object.values(m)),y}return await we(l,t,h)}async function w(h,y){try{if(y){if("ssr"in y)throw new Error("ssr has been removed, set it in the appropriate +layout.js instead. See the PR for more information: https://github.com/sveltejs/kit/pull/6197");p$1={transformPageChunk:y.transformPageChunk||Pe,filterSerializedResponseHeaders:y.filterSerializedResponseHeaders||Ae,preload:y.preload||qe};}if(n.prerendering?.fallback)return await M({event:h,options:t,manifest:r,state:n,page_config:{ssr:!1,csr:!0},status:200,error:null,branch:[],fetched:[],resolve_opts:p$1});if(a){const g=h.request.method;let f;if(d$1)f=await tr(h,a,t,r,n,i,c$1??"never");else if(a.endpoint&&(!a.page||jt(h)))f=await Et(h,await a.endpoint(),n);else if(a.page)if(ir.has(g))f=await nr(h,a.page,t,r,n,p$1);else {const b=new Set(cr);if((await r._.nodes[a.page.leaf]())?.server?.actions&&b.add("POST"),g==="OPTIONS")f=new Response(null,{status:204,headers:{allow:Array.from(b.values()).join(", ")}});else {const k=[...b].reduce((x,j)=>(x[j]=!0,x),{});f=ze(k,g);}}else throw new Error("This should never happen");if(e.method==="GET"&&a.page&&a.endpoint){const b=f.headers.get("vary")?.split(",")?.map($=>$.trim().toLowerCase());b?.includes("accept")||b?.includes("*")||(f=new Response(f.body,{status:f.status,statusText:f.statusText,headers:new Headers(f.headers)}),f.headers.append("Vary","Accept"));}return f}return n.error?g$1("Internal Server Error",{status:500}):n.depth===0?await ot({event:h,options:t,manifest:r,state:n,status:404,error:new Error(`Not found: ${h.url.pathname}`),resolve_opts:p$1}):n.prerendering?g$1("not found",{status:404}):await fetch(e)}catch(g){return await we(h,t,g)}finally{h.cookies.set=()=>{throw new Error("Cannot use `cookies.set(...)` after the response has been generated")},h.setHeaders=()=>{throw new Error("Cannot use `setHeaders(...)` after the response has been generated")};}}}function ur(e,{public_prefix:t,private_prefix:r}){return Object.fromEntries(Object.entries(e).filter(([n])=>n.startsWith(r)&&(t===""||!n.startsWith(t))))}function lr(e,{public_prefix:t,private_prefix:r}){return Object.fromEntries(Object.entries(e).filter(([n])=>n.startsWith(t)&&(r===""||!n.startsWith(r))))}class kr{#e;#t;constructor(t){this.#e=j,this.#t=t;}async init({env:t}){if(a(ur(t,{public_prefix:this.#e.env_public_prefix,private_prefix:this.#e.env_private_prefix})),s(lr(t,{public_prefix:this.#e.env_public_prefix,private_prefix:this.#e.env_private_prefix})),!this.#e.hooks)try{const r=await C();this.#e.hooks={handle:r.handle||(({event:n,resolve:s})=>s(n)),handleError:r.handleError||(({error:n})=>console.error(n)),handleFetch:r.handleFetch||(({request:n,fetch:s})=>s(n))};}catch(r){throw r}}async respond(t,r){if(!(t instanceof Request))throw new Error("The first argument to server.respond must be a Request object. See https://github.com/sveltejs/kit/pull/3384 for details");return lt(t,this.#e,this.#t,{...r,error:!1,depth:0})}}

export { kr as Server };
//# sourceMappingURL=index.js.map