@anvia/studio 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -1
- package/dist/index.d.ts +14 -3
- package/dist/index.js +203 -40
- package/dist/index.js.map +1 -1
- package/dist/ui/assets/{ArrowClockwise.es-CSEY3Qr6.js → ArrowClockwise.es-5vr4h4OH.js} +2 -2
- package/dist/ui/assets/{ArrowClockwise.es-CSEY3Qr6.js.map → ArrowClockwise.es-5vr4h4OH.js.map} +1 -1
- package/dist/ui/assets/{CaretDown.es-BHAPbv1R.js → CaretDown.es-CXu4Fvbf.js} +2 -2
- package/dist/ui/assets/{CaretDown.es-BHAPbv1R.js.map → CaretDown.es-CXu4Fvbf.js.map} +1 -1
- package/dist/ui/assets/{Check.es-BLChmggz.js → Check.es-DSXK9-8c.js} +2 -2
- package/dist/ui/assets/{Check.es-BLChmggz.js.map → Check.es-DSXK9-8c.js.map} +1 -1
- package/dist/ui/assets/{Wrench.es-BL6BmNv7.js → Wrench.es-Cl38Pi3C.js} +2 -2
- package/dist/ui/assets/{Wrench.es-BL6BmNv7.js.map → Wrench.es-Cl38Pi3C.js.map} +1 -1
- package/dist/ui/assets/{agents-page-DQqt45If.js → agents-page-h-83w9EN.js} +2 -2
- package/dist/ui/assets/{agents-page-DQqt45If.js.map → agents-page-h-83w9EN.js.map} +1 -1
- package/dist/ui/assets/{badge-CcajoiAt.js → badge-O3YyUN3G.js} +2 -2
- package/dist/ui/assets/{badge-CcajoiAt.js.map → badge-O3YyUN3G.js.map} +1 -1
- package/dist/ui/assets/{button-07gzSO47.js → button-Dsqwey2_.js} +2 -2
- package/dist/ui/assets/{button-07gzSO47.js.map → button-Dsqwey2_.js.map} +1 -1
- package/dist/ui/assets/dialog-DN8F1Aaq.js +2 -0
- package/dist/ui/assets/{dialog-CNNQ3hoF.js.map → dialog-DN8F1Aaq.js.map} +1 -1
- package/dist/ui/assets/{dist-CqMdRzwk.js → dist-CUv0NHNl.js} +2 -2
- package/dist/ui/assets/{dist-CqMdRzwk.js.map → dist-CUv0NHNl.js.map} +1 -1
- package/dist/ui/assets/dist-PrGeYMiK.js +2 -0
- package/dist/ui/assets/{dist-DWqJwN1i.js.map → dist-PrGeYMiK.js.map} +1 -1
- package/dist/ui/assets/es2015-Ck1KeeEx.js +42 -0
- package/dist/ui/assets/es2015-Ck1KeeEx.js.map +1 -0
- package/dist/ui/assets/{icon-CqkMSRbt.js → icon-DyadsXLr.js} +2 -2
- package/dist/ui/assets/icon-DyadsXLr.js.map +1 -0
- package/dist/ui/assets/index-DmctBqLn.js +75 -0
- package/dist/ui/assets/index-DmctBqLn.js.map +1 -0
- package/dist/ui/assets/{index-CFbK-pX6.css → index-VCdJ2Rb4.css} +1 -1
- package/dist/ui/assets/{input-BiI6gsxA.js → input-DHvac9Uq.js} +2 -2
- package/dist/ui/assets/{input-BiI6gsxA.js.map → input-DHvac9Uq.js.map} +1 -1
- package/dist/ui/assets/{knowledge-model-S51n2rKh.js → knowledge-model-B6kRb7zc.js} +1 -1
- package/dist/ui/assets/{knowledge-model-S51n2rKh.js.map → knowledge-model-B6kRb7zc.js.map} +1 -1
- package/dist/ui/assets/{knowledge-page-DZeLh92t.js → knowledge-page-DKnPrmhK.js} +2 -2
- package/dist/ui/assets/knowledge-page-DKnPrmhK.js.map +1 -0
- package/dist/ui/assets/mcps-page-MSz67ifn.js +2 -0
- package/dist/ui/assets/mcps-page-MSz67ifn.js.map +1 -0
- package/dist/ui/assets/{memory-page-D3UhjpTb.js → memory-page-2qr2eMrI.js} +2 -2
- package/dist/ui/assets/{memory-page-D3UhjpTb.js.map → memory-page-2qr2eMrI.js.map} +1 -1
- package/dist/ui/assets/pipelines-page-D1IB1tw-.js +8 -0
- package/dist/ui/assets/pipelines-page-D1IB1tw-.js.map +1 -0
- package/dist/ui/assets/renderers-BIw5yJkg.js +94 -0
- package/dist/ui/assets/renderers-BIw5yJkg.js.map +1 -0
- package/dist/ui/assets/{request-7oUPS8zY.js → request-CnFL8L6p.js} +3 -3
- package/dist/ui/assets/{request-7oUPS8zY.js.map → request-CnFL8L6p.js.map} +1 -1
- package/dist/ui/assets/rfb-NV_fh9Db.js +6 -0
- package/dist/ui/assets/{rfb-DiW3PDuT.js.map → rfb-NV_fh9Db.js.map} +1 -1
- package/dist/ui/assets/sandboxes-page-DWMtrKYJ.js +2 -0
- package/dist/ui/assets/sandboxes-page-DWMtrKYJ.js.map +1 -0
- package/dist/ui/assets/select-C1_9fsRu.js +2 -0
- package/dist/ui/assets/{select-BOYfrfck.js.map → select-C1_9fsRu.js.map} +1 -1
- package/dist/ui/assets/{sessions-page-ClXzRM9K.js → sessions-page-BIk4q-L8.js} +2 -2
- package/dist/ui/assets/{sessions-page-ClXzRM9K.js.map → sessions-page-BIk4q-L8.js.map} +1 -1
- package/dist/ui/assets/{status-page-eA8uRLZQ.js → status-page-jKTghmnz.js} +2 -2
- package/dist/ui/assets/{status-page-eA8uRLZQ.js.map → status-page-jKTghmnz.js.map} +1 -1
- package/dist/ui/assets/{studio-CeTsQ4gf.js → studio-Bh00wIF1.js} +2 -2
- package/dist/ui/assets/{studio-CeTsQ4gf.js.map → studio-Bh00wIF1.js.map} +1 -1
- package/dist/ui/assets/{textarea-DESKg_ZK.js → textarea-CZvhTJxB.js} +2 -2
- package/dist/ui/assets/{textarea-DESKg_ZK.js.map → textarea-CZvhTJxB.js.map} +1 -1
- package/dist/ui/assets/{tool-runner-D3-SlGqQ.js → tool-runner-BtaZqE3R.js} +2 -2
- package/dist/ui/assets/{tool-runner-D3-SlGqQ.js.map → tool-runner-BtaZqE3R.js.map} +1 -1
- package/dist/ui/assets/tools-page-D1ewvG0D.js +2 -0
- package/dist/ui/assets/tools-page-D1ewvG0D.js.map +1 -0
- package/dist/ui/assets/{trace-browser-D93H7Xxs.js → trace-browser-CuBl9__d.js} +3 -3
- package/dist/ui/assets/trace-browser-CuBl9__d.js.map +1 -0
- package/dist/ui/assets/{transcript-item-BmjdZLbS.js → transcript-item-ChtaJvPe.js} +2 -2
- package/dist/ui/assets/{transcript-item-BmjdZLbS.js.map → transcript-item-ChtaJvPe.js.map} +1 -1
- package/dist/ui/assets/utils-DzstcfqT.js +2 -0
- package/dist/ui/assets/{utils-C9GMruoG.js.map → utils-DzstcfqT.js.map} +1 -1
- package/dist/ui/assets/{with-selector-CRZWaZzC.js → with-selector-B8ah9Wvu.js} +2 -2
- package/dist/ui/assets/{with-selector-CRZWaZzC.js.map → with-selector-B8ah9Wvu.js.map} +1 -1
- package/dist/ui/index.html +19 -20
- package/package.json +14 -11
- package/dist/ui/assets/chunk-QGX73TSQ-D9QAGlAY.js +0 -65
- package/dist/ui/assets/chunk-QGX73TSQ-D9QAGlAY.js.map +0 -1
- package/dist/ui/assets/dialog-CNNQ3hoF.js +0 -2
- package/dist/ui/assets/dist-DWqJwN1i.js +0 -2
- package/dist/ui/assets/es2015-DsZq7PFO.js +0 -42
- package/dist/ui/assets/es2015-DsZq7PFO.js.map +0 -1
- package/dist/ui/assets/icon-CqkMSRbt.js.map +0 -1
- package/dist/ui/assets/index-BtvoCaW7.js +0 -12
- package/dist/ui/assets/index-BtvoCaW7.js.map +0 -1
- package/dist/ui/assets/knowledge-page-DZeLh92t.js.map +0 -1
- package/dist/ui/assets/mcps-page-CDPMO2x9.js +0 -2
- package/dist/ui/assets/mcps-page-CDPMO2x9.js.map +0 -1
- package/dist/ui/assets/pipelines-page-BP8R6NI7.js +0 -8
- package/dist/ui/assets/pipelines-page-BP8R6NI7.js.map +0 -1
- package/dist/ui/assets/renderers-DHMEAblV.js +0 -94
- package/dist/ui/assets/renderers-DHMEAblV.js.map +0 -1
- package/dist/ui/assets/rfb-DiW3PDuT.js +0 -6
- package/dist/ui/assets/sandboxes-page-C6kokYwc.js +0 -2
- package/dist/ui/assets/sandboxes-page-C6kokYwc.js.map +0 -1
- package/dist/ui/assets/select-BOYfrfck.js +0 -2
- package/dist/ui/assets/tools-page-D3gnQf1_.js +0 -2
- package/dist/ui/assets/tools-page-D3gnQf1_.js.map +0 -1
- package/dist/ui/assets/trace-browser-D93H7Xxs.js.map +0 -1
- package/dist/ui/assets/utils-C9GMruoG.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{s as e}from"./button-
|
|
1
|
+
import{s as e}from"./button-Dsqwey2_.js";async function*t(e){let t=e.getReader(),n=new TextDecoder,i=``,a=!1;try{for(;;){let e=await t.read();if(e.done){a=!0;break}i+=n.decode(e.value,{stream:!0});let r=i.split(/\r?\n/);i=r.pop()??``;for(let e of r){let t=e.trim();t.length>0&&(yield JSON.parse(t))}}i+=n.decode();let e=i.trim();e.length>0&&(yield JSON.parse(e))}finally{a||await r(t),t.releaseLock()}}async function*n(e){let t=e.getReader(),n=new TextDecoder,i=``,a=[],o=!1;function s(e){if(e===``){let e=a.length===0?void 0:a.join(`
|
|
2
2
|
`);return a=[],e}if(e.startsWith(`:`))return;let t=e.indexOf(`:`),n=t===-1?e:e.slice(0,t),r=t===-1?``:e.slice(t+1).replace(/^ /,``);n===`data`&&a.push(r)}try{for(;;){let e=await t.read();if(e.done){o=!0;break}i+=n.decode(e.value,{stream:!0});let r=i.split(/\r?\n/);i=r.pop()??``;for(let e of r){let t=s(e);t!==void 0&&(yield JSON.parse(t))}}if(i+=n.decode(),i.length>0){let e=s(i);e!==void 0&&(yield JSON.parse(e))}a.length>0&&(yield JSON.parse(a.join(`
|
|
3
|
-
`)))}finally{o||await r(t),t.releaseLock()}}async function r(e){try{await e.cancel()}catch{}}var i=class extends Error{constructor(e,t){super(`Event stream request failed with status ${e.status}`),this.response=e,this.body=t,this.name=`EventStreamHttpError`}response;body};async function*a(e){let r=e.fetch??globalThis.fetch;if(r===void 0)throw Error(`fetchEventStream requires a fetch implementation.`);let a=await r(e.input,o(e));if(!a.ok)throw new i(a,await a.text());if(e.validateResponse?.(a),a.body===null)throw Error(`Event stream response does not include a body.`);(e.format===void 0||e.format===`auto`?s(a.headers.get(`content-type`)):e.format)===`sse`?yield*n(a.body):yield*t(a.body)}function o(e){let{input:t,format:n,fetch:r,validateResponse:i,...a}=e;return a}function s(e){return e?.toLowerCase().includes(`text/event-stream`)?`sse`:`jsonl`}function c(e){return{async*send(t){let n=typeof e.endpoint==`function`?e.endpoint(t):e.endpoint,r=d(await l(e.headers,t),t.headers),i=e.method??`POST`,o=await u(e.body,t,r,i),s={...e.init,input:n,method:i,headers:r,format:e.format??`auto`};o!==void 0&&(s.body=o),t.abortSignal!==void 0&&(s.signal=t.abortSignal),e.fetch!==void 0&&(s.fetch=e.fetch),e.validateResponse!==void 0&&(s.validateResponse=e.validateResponse);for await(let t of a(s))yield e.mapEvent===void 0?t:e.mapEvent(t)}}}async function l(e,t){return typeof e==`function`?e(t):e}async function u(e,t,n,r){if(e!==void 0)return e({...t,headers:n});if(
|
|
4
|
-
//# sourceMappingURL=request-
|
|
3
|
+
`)))}finally{o||await r(t),t.releaseLock()}}async function r(e){try{await e.cancel()}catch{}}var i=class extends Error{constructor(e,t){super(`Event stream request failed with status ${e.status}`),this.response=e,this.body=t,this.name=`EventStreamHttpError`}response;body};async function*a(e){let r=e.fetch??globalThis.fetch;if(r===void 0)throw Error(`fetchEventStream requires a fetch implementation.`);let a=await r(e.input,o(e));if(!a.ok)throw new i(a,await a.text());if(e.validateResponse?.(a),a.body===null)throw Error(`Event stream response does not include a body.`);(e.format===void 0||e.format===`auto`?s(a.headers.get(`content-type`)):e.format)===`sse`?yield*n(a.body):yield*t(a.body)}function o(e){let{input:t,format:n,fetch:r,validateResponse:i,...a}=e;return a}function s(e){return e?.toLowerCase().includes(`text/event-stream`)?`sse`:`jsonl`}function c(e){return{async*send(t){let n=typeof e.endpoint==`function`?e.endpoint(t):e.endpoint,r=d(await l(e.headers,t),t.headers),i=e.method??`POST`,o=await u(e.body,t,r,i),s={...e.init,input:n,method:i,headers:r,format:e.format??`auto`};o!==void 0&&(s.body=o),t.abortSignal!==void 0&&(s.signal=t.abortSignal),e.fetch!==void 0&&(s.fetch=e.fetch),e.validateResponse!==void 0&&(s.validateResponse=e.validateResponse);for await(let t of a(s))yield e.mapEvent===void 0?t:e.mapEvent(t)}}}async function l(e,t){return typeof e==`function`?e(t):e}async function u(e,t,n,r){if(e!==void 0)return e({...t,headers:n});if(r.toUpperCase()!==`GET`&&r.toUpperCase()!==`HEAD`)return n.has(`content-type`)||n.set(`content-type`,`application/json`),JSON.stringify(t.request)}function d(...e){let t=new Headers;for(let n of e)n!==void 0&&new Headers(n).forEach((e,n)=>{t.set(n,e)});return t}async function f(e,t){let n=``;try{let t=await e.json();typeof t==`object`&&t&&`error`in t&&typeof t.error==`object`&&t.error!==null&&`message`in t.error&&typeof t.error.message==`string`&&(n=`: ${t.error.message}`)}catch{}return`${t} with HTTP ${e.status}${n}`}function p(t){return t instanceof i?t.response.status===401?`Authentication required`:`Run failed with HTTP ${t.response.status}`:e(t)}function m(e,t){let n=``;try{let t=JSON.parse(e.body);typeof t==`object`&&t&&`error`in t&&typeof t.error==`object`&&t.error!==null&&`message`in t.error&&typeof t.error.message==`string`&&(n=`: ${t.error.message}`)}catch{}return`${t} with HTTP ${e.response.status}${n}`}function h(e){if(typeof e==`string`)return e;if(e instanceof Error)return e.message;try{return JSON.stringify(e)??String(e)}catch{return String(e)}}async function g(e,t,n,r=`default`,i={}){let a={...i,cache:r};n!==void 0&&(a.signal=n);let o=await fetch(e,a);if(!o.ok)throw Error(await f(o,t));return await o.json()}export{h as a,f as i,p as n,i as o,m as r,c as s,g as t};
|
|
4
|
+
//# sourceMappingURL=request-CnFL8L6p.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-7oUPS8zY.js","names":[],"sources":["../../../../client/dist/chunk-2KGXQZWA.js","../../../src/ui/app/app-errors.ts","../../../src/ui/app/modules/shared/request.ts"],"sourcesContent":["// src/transport/streams.ts\nasync function* readJsonlStream(stream) {\n const reader = stream.getReader();\n const decoder = new TextDecoder();\n let buffer = \"\";\n let completed = false;\n try {\n while (true) {\n const next = await reader.read();\n if (next.done) {\n completed = true;\n break;\n }\n buffer += decoder.decode(next.value, { stream: true });\n const lines = buffer.split(/\\r?\\n/);\n buffer = lines.pop() ?? \"\";\n for (const line of lines) {\n const value2 = line.trim();\n if (value2.length > 0) yield JSON.parse(value2);\n }\n }\n buffer += decoder.decode();\n const value = buffer.trim();\n if (value.length > 0) yield JSON.parse(value);\n } finally {\n if (!completed) await cancelReader(reader);\n reader.releaseLock();\n }\n}\nasync function* readSseStream(stream) {\n const reader = stream.getReader();\n const decoder = new TextDecoder();\n let buffer = \"\";\n let data = [];\n let completed = false;\n function parseLine(line) {\n if (line === \"\") {\n const complete = data.length === 0 ? void 0 : data.join(\"\\n\");\n data = [];\n return complete;\n }\n if (line.startsWith(\":\")) return void 0;\n const separator = line.indexOf(\":\");\n const field = separator === -1 ? line : line.slice(0, separator);\n const value = separator === -1 ? \"\" : line.slice(separator + 1).replace(/^ /, \"\");\n if (field === \"data\") data.push(value);\n return void 0;\n }\n try {\n while (true) {\n const next = await reader.read();\n if (next.done) {\n completed = true;\n break;\n }\n buffer += decoder.decode(next.value, { stream: true });\n const lines = buffer.split(/\\r?\\n/);\n buffer = lines.pop() ?? \"\";\n for (const line of lines) {\n const complete = parseLine(line);\n if (complete !== void 0) yield JSON.parse(complete);\n }\n }\n buffer += decoder.decode();\n if (buffer.length > 0) {\n const complete = parseLine(buffer);\n if (complete !== void 0) yield JSON.parse(complete);\n }\n if (data.length > 0) yield JSON.parse(data.join(\"\\n\"));\n } finally {\n if (!completed) await cancelReader(reader);\n reader.releaseLock();\n }\n}\nasync function cancelReader(reader) {\n try {\n await reader.cancel();\n } catch {\n }\n}\n\n// src/transport/fetch.ts\nvar EventStreamHttpError = class extends Error {\n constructor(response, body) {\n super(`Event stream request failed with status ${response.status}`);\n this.response = response;\n this.body = body;\n this.name = \"EventStreamHttpError\";\n }\n response;\n body;\n};\nasync function* fetchEventStream(options) {\n const fetchImpl = options.fetch ?? globalThis.fetch;\n if (fetchImpl === void 0) throw new Error(\"fetchEventStream requires a fetch implementation.\");\n const response = await fetchImpl(options.input, fetchOptions(options));\n if (!response.ok) throw new EventStreamHttpError(response, await response.text());\n options.validateResponse?.(response);\n if (response.body === null) throw new Error(\"Event stream response does not include a body.\");\n const format = options.format === void 0 || options.format === \"auto\" ? inferEventStreamFormat(response.headers.get(\"content-type\")) : options.format;\n if (format === \"sse\") {\n yield* readSseStream(response.body);\n } else {\n yield* readJsonlStream(response.body);\n }\n}\nfunction fetchOptions(options) {\n const {\n input: _input,\n format: _format,\n fetch: _fetch,\n validateResponse: _validate,\n ...init\n } = options;\n return init;\n}\nfunction inferEventStreamFormat(contentType) {\n return contentType?.toLowerCase().includes(\"text/event-stream\") ? \"sse\" : \"jsonl\";\n}\n\n// src/transport/event-transport.ts\nfunction createFetchEventTransport(options) {\n return {\n async *send(transportOptions) {\n const endpoint = typeof options.endpoint === \"function\" ? options.endpoint(transportOptions) : options.endpoint;\n const requestHeaders = await resolveHeaders(options.headers, transportOptions);\n const headers = mergeHeaders(requestHeaders, transportOptions.headers);\n const method = options.method ?? \"POST\";\n const body = await resolveBody(options.body, transportOptions, headers, method);\n const init = {\n ...options.init,\n input: endpoint,\n method,\n headers,\n format: options.format ?? \"auto\"\n };\n if (body !== void 0) init.body = body;\n if (transportOptions.abortSignal !== void 0) init.signal = transportOptions.abortSignal;\n if (options.fetch !== void 0) init.fetch = options.fetch;\n if (options.validateResponse !== void 0) init.validateResponse = options.validateResponse;\n for await (const event of fetchEventStream(init)) {\n yield options.mapEvent === void 0 ? event : options.mapEvent(event);\n }\n }\n };\n}\nfunction createDirectEventTransport(options) {\n return {\n async *send(context) {\n const iterator = options.handler(context)[Symbol.asyncIterator]();\n let closePromise;\n const close = () => {\n closePromise ??= Promise.resolve(iterator.return?.());\n return closePromise;\n };\n const onAbort = () => {\n void close();\n };\n context.abortSignal?.addEventListener(\"abort\", onAbort, { once: true });\n try {\n while (!context.abortSignal?.aborted) {\n const next = await iterator.next();\n if (next.done) break;\n yield next.value;\n }\n } finally {\n context.abortSignal?.removeEventListener(\"abort\", onAbort);\n await close();\n }\n }\n };\n}\nasync function resolveHeaders(headers, context) {\n return typeof headers === \"function\" ? headers(context) : headers;\n}\nasync function resolveBody(body, context, headers, method) {\n if (body !== void 0) return body({ ...context, headers });\n if (method.toUpperCase() === \"GET\" || method.toUpperCase() === \"HEAD\") return void 0;\n if (!headers.has(\"content-type\")) headers.set(\"content-type\", \"application/json\");\n return JSON.stringify(context.request);\n}\nfunction mergeHeaders(...values) {\n const headers = new Headers();\n for (const value of values) {\n if (value === void 0) continue;\n new Headers(value).forEach((headerValue, key) => {\n headers.set(key, headerValue);\n });\n }\n return headers;\n}\n\nexport {\n readJsonlStream,\n readSseStream,\n EventStreamHttpError,\n fetchEventStream,\n createFetchEventTransport,\n createDirectEventTransport\n};\n//# sourceMappingURL=chunk-2KGXQZWA.js.map","import { EventStreamHttpError } from \"@anvia/client/transport\";\nimport { errorMessage } from \"./modules/shared/format\";\n\nexport async function responseErrorMessage(response: Response, label: string): Promise<string> {\n let detail = \"\";\n try {\n const body = (await response.json()) as unknown;\n if (\n typeof body === \"object\" &&\n body !== null &&\n \"error\" in body &&\n typeof body.error === \"object\" &&\n body.error !== null &&\n \"message\" in body.error &&\n typeof body.error.message === \"string\"\n ) {\n detail = `: ${body.error.message}`;\n }\n } catch {\n // Ignore non-JSON error bodies.\n }\n return `${label} with HTTP ${response.status}${detail}`;\n}\n\nexport function agentRunErrorMessage(error: unknown): string {\n if (error instanceof EventStreamHttpError) {\n return error.response.status === 401\n ? \"Authentication required\"\n : `Run failed with HTTP ${error.response.status}`;\n }\n return errorMessage(error);\n}\n\nexport function eventStreamResponseErrorMessage(\n error: EventStreamHttpError,\n label: string,\n): string {\n let detail = \"\";\n try {\n const body = JSON.parse(error.body) as unknown;\n if (\n typeof body === \"object\" &&\n body !== null &&\n \"error\" in body &&\n typeof body.error === \"object\" &&\n body.error !== null &&\n \"message\" in body.error &&\n typeof body.error.message === \"string\"\n ) {\n detail = `: ${body.error.message}`;\n }\n } catch {\n // Ignore non-JSON error bodies.\n }\n return `${label} with HTTP ${error.response.status}${detail}`;\n}\n\nexport function serializedStreamErrorText(error: unknown): string {\n if (typeof error === \"string\") {\n return error;\n }\n if (error instanceof Error) {\n return error.message;\n }\n try {\n return JSON.stringify(error) ?? String(error);\n } catch {\n return String(error);\n }\n}\n","import { responseErrorMessage } from \"../../app-errors\";\n\nexport async function requestJson<T>(\n url: string,\n label: string,\n signal?: AbortSignal,\n cache: RequestCache = \"default\",\n init: RequestInit = {},\n): Promise<T> {\n const request: RequestInit = {\n ...init,\n cache,\n };\n if (signal !== undefined) request.signal = signal;\n const response = await fetch(url, request);\n if (!response.ok) {\n throw new Error(await responseErrorMessage(response, label));\n }\n return (await response.json()) as T;\n}\n"],"mappings":"yCACA,eAAgB,EAAgB,EAAQ,CACtC,IAAM,EAAS,EAAO,WAAW,CAC3B,EAAU,IAAI,YAChB,EAAS,GACT,EAAY,GAChB,GAAI,CACF,OAAa,CACX,IAAM,EAAO,MAAM,EAAO,MAAM,CAChC,GAAI,EAAK,KAAM,CACb,EAAY,GACZ,MAEF,GAAU,EAAQ,OAAO,EAAK,MAAO,CAAE,OAAQ,GAAM,CAAC,CACtD,IAAM,EAAQ,EAAO,MAAM,QAAQ,CACnC,EAAS,EAAM,KAAK,EAAI,GACxB,IAAK,IAAM,KAAQ,EAAO,CACxB,IAAM,EAAS,EAAK,MAAM,CACtB,EAAO,OAAS,IAAG,MAAM,KAAK,MAAM,EAAO,GAGnD,GAAU,EAAQ,QAAQ,CAC1B,IAAM,EAAQ,EAAO,MAAM,CACvB,EAAM,OAAS,IAAG,MAAM,KAAK,MAAM,EAAM,SACrC,CACH,GAAW,MAAM,EAAa,EAAO,CAC1C,EAAO,aAAa,EAGxB,eAAgB,EAAc,EAAQ,CACpC,IAAM,EAAS,EAAO,WAAW,CAC3B,EAAU,IAAI,YAChB,EAAS,GACT,EAAO,EAAE,CACT,EAAY,GAChB,SAAS,EAAU,EAAM,CACvB,GAAI,IAAS,GAAI,CACf,IAAM,EAAW,EAAK,SAAW,EAAI,IAAK,GAAI,EAAK,KAAK;EAAK,CAE7D,MADA,GAAO,EAAE,CACF,EAET,GAAI,EAAK,WAAW,IAAI,CAAE,OAC1B,IAAM,EAAY,EAAK,QAAQ,IAAI,CAC7B,EAAQ,IAAc,GAAK,EAAO,EAAK,MAAM,EAAG,EAAU,CAC1D,EAAQ,IAAc,GAAK,GAAK,EAAK,MAAM,EAAY,EAAE,CAAC,QAAQ,KAAM,GAAG,CAC7E,IAAU,QAAQ,EAAK,KAAK,EAAM,CAGxC,GAAI,CACF,OAAa,CACX,IAAM,EAAO,MAAM,EAAO,MAAM,CAChC,GAAI,EAAK,KAAM,CACb,EAAY,GACZ,MAEF,GAAU,EAAQ,OAAO,EAAK,MAAO,CAAE,OAAQ,GAAM,CAAC,CACtD,IAAM,EAAQ,EAAO,MAAM,QAAQ,CACnC,EAAS,EAAM,KAAK,EAAI,GACxB,IAAK,IAAM,KAAQ,EAAO,CACxB,IAAM,EAAW,EAAU,EAAK,CAC5B,IAAa,IAAK,KAAG,MAAM,KAAK,MAAM,EAAS,GAIvD,GADA,GAAU,EAAQ,QAAQ,CACtB,EAAO,OAAS,EAAG,CACrB,IAAM,EAAW,EAAU,EAAO,CAC9B,IAAa,IAAK,KAAG,MAAM,KAAK,MAAM,EAAS,EAEjD,EAAK,OAAS,IAAG,MAAM,KAAK,MAAM,EAAK,KAAK;EAAK,CAAC,SAC9C,CACH,GAAW,MAAM,EAAa,EAAO,CAC1C,EAAO,aAAa,EAGxB,eAAe,EAAa,EAAQ,CAClC,GAAI,CACF,MAAM,EAAO,QAAQ,MACf,GAKV,IAAI,EAAuB,cAAc,KAAM,CAC7C,YAAY,EAAU,EAAM,CAC1B,MAAM,2CAA2C,EAAS,SAAS,CACnE,KAAK,SAAW,EAChB,KAAK,KAAO,EACZ,KAAK,KAAO,uBAEd,SACA,MAEF,eAAgB,EAAiB,EAAS,CACxC,IAAM,EAAY,EAAQ,OAAS,WAAW,MAC9C,GAAI,IAAc,IAAK,GAAG,MAAU,MAAM,oDAAoD,CAC9F,IAAM,EAAW,MAAM,EAAU,EAAQ,MAAO,EAAa,EAAQ,CAAC,CACtE,GAAI,CAAC,EAAS,GAAI,MAAM,IAAI,EAAqB,EAAU,MAAM,EAAS,MAAM,CAAC,CAEjF,GADA,EAAQ,mBAAmB,EAAS,CAChC,EAAS,OAAS,KAAM,MAAU,MAAM,iDAAiD,EAC9E,EAAQ,SAAW,IAAK,IAAK,EAAQ,SAAW,OAAS,EAAuB,EAAS,QAAQ,IAAI,eAAe,CAAC,CAAG,EAAQ,UAChI,MACb,MAAO,EAAc,EAAS,KAAK,CAEnC,MAAO,EAAgB,EAAS,KAAK,CAGzC,SAAS,EAAa,EAAS,CAC7B,GAAM,CACJ,MAAO,EACP,OAAQ,EACR,MAAO,EACP,iBAAkB,EAClB,GAAG,GACD,EACJ,OAAO,EAET,SAAS,EAAuB,EAAa,CAC3C,OAAO,GAAa,aAAa,CAAC,SAAS,oBAAoB,CAAG,MAAQ,QAI5E,SAAS,EAA0B,EAAS,CAC1C,MAAO,CACL,MAAO,KAAK,EAAkB,CAC5B,IAAM,EAAW,OAAO,EAAQ,UAAa,WAAa,EAAQ,SAAS,EAAiB,CAAG,EAAQ,SAEjG,EAAU,EAAa,MADA,EAAe,EAAQ,QAAS,EAAiB,CACjC,EAAiB,QAAQ,CAChE,EAAS,EAAQ,QAAU,OAC3B,EAAO,MAAM,EAAY,EAAQ,KAAM,EAAkB,EAAS,EAAO,CACzE,EAAO,CACX,GAAG,EAAQ,KACX,MAAO,EACP,SACA,UACA,OAAQ,EAAQ,QAAU,OAC3B,CACG,IAAS,IAAK,KAAG,EAAK,KAAO,GAC7B,EAAiB,cAAgB,IAAK,KAAG,EAAK,OAAS,EAAiB,aACxE,EAAQ,QAAU,IAAK,KAAG,EAAK,MAAQ,EAAQ,OAC/C,EAAQ,mBAAqB,IAAK,KAAG,EAAK,iBAAmB,EAAQ,kBACzE,UAAW,IAAM,KAAS,EAAiB,EAAK,CAC9C,MAAM,EAAQ,WAAa,IAAK,GAAI,EAAQ,EAAQ,SAAS,EAAM,EAGxE,CA4BH,eAAe,EAAe,EAAS,EAAS,CAC9C,OAAO,OAAO,GAAY,WAAa,EAAQ,EAAQ,CAAG,EAE5D,eAAe,EAAY,EAAM,EAAS,EAAS,EAAQ,CACzD,GAAI,IAAS,IAAK,GAAG,OAAO,EAAK,CAAE,GAAG,EAAS,UAAS,CAAC,CACrD,OAAO,aAAa,GAAK,OAAS,EAAO,aAAa,GAAK,QAE/D,OADK,EAAQ,IAAI,eAAe,EAAE,EAAQ,IAAI,eAAgB,mBAAmB,CAC1E,KAAK,UAAU,EAAQ,QAAQ,CAExC,SAAS,EAAa,GAAG,EAAQ,CAC/B,IAAM,EAAU,IAAI,QACpB,IAAK,IAAM,KAAS,EACd,IAAU,IAAK,IACnB,IAAI,QAAQ,EAAM,CAAC,SAAS,EAAa,IAAQ,CAC/C,EAAQ,IAAI,EAAK,EAAY,EAC7B,CAEJ,OAAO,EC1LT,eAAsB,EAAqB,EAAoB,EAAgC,CAC7F,IAAI,EAAS,GACb,GAAI,CACF,IAAM,EAAQ,MAAM,EAAS,MAAM,CAEjC,OAAO,GAAS,UAChB,GACA,UAAW,GACX,OAAO,EAAK,OAAU,UACtB,EAAK,QAAU,MACf,YAAa,EAAK,OAClB,OAAO,EAAK,MAAM,SAAY,WAE9B,EAAS,KAAK,EAAK,MAAM,gBAErB,EAGR,MAAO,GAAG,EAAM,aAAa,EAAS,SAAS,IAGjD,SAAgB,EAAqB,EAAwB,CAM3D,OALI,aAAiB,EACZ,EAAM,SAAS,SAAW,IAC7B,0BACA,wBAAwB,EAAM,SAAS,SAEtC,EAAa,EAAM,CAG5B,SAAgB,EACd,EACA,EACQ,CACR,IAAI,EAAS,GACb,GAAI,CACF,IAAM,EAAO,KAAK,MAAM,EAAM,KAAK,CAEjC,OAAO,GAAS,UAChB,GACA,UAAW,GACX,OAAO,EAAK,OAAU,UACtB,EAAK,QAAU,MACf,YAAa,EAAK,OAClB,OAAO,EAAK,MAAM,SAAY,WAE9B,EAAS,KAAK,EAAK,MAAM,gBAErB,EAGR,MAAO,GAAG,EAAM,aAAa,EAAM,SAAS,SAAS,IAGvD,SAAgB,EAA0B,EAAwB,CAChE,GAAI,OAAO,GAAU,SACnB,OAAO,EAET,GAAI,aAAiB,MACnB,OAAO,EAAM,QAEf,GAAI,CACF,OAAO,KAAK,UAAU,EAAM,EAAI,OAAO,EAAM,MACvC,CACN,OAAO,OAAO,EAAM,ECjExB,eAAsB,EACpB,EACA,EACA,EACA,EAAsB,UACtB,EAAoB,EAAE,CACV,CACZ,IAAM,EAAuB,CAC3B,GAAG,EACH,QACD,CACG,IAAW,IAAA,KAAW,EAAQ,OAAS,GAC3C,IAAM,EAAW,MAAM,MAAM,EAAK,EAAQ,CAC1C,GAAI,CAAC,EAAS,GACZ,MAAU,MAAM,MAAM,EAAqB,EAAU,EAAM,CAAC,CAE9D,OAAQ,MAAM,EAAS,MAAM"}
|
|
1
|
+
{"version":3,"file":"request-CnFL8L6p.js","names":[],"sources":["../../../../client/dist/chunk-2KGXQZWA.js","../../../src/ui/app/app-errors.ts","../../../src/ui/app/modules/shared/request.ts"],"sourcesContent":["// src/transport/streams.ts\nasync function* readJsonlStream(stream) {\n const reader = stream.getReader();\n const decoder = new TextDecoder();\n let buffer = \"\";\n let completed = false;\n try {\n while (true) {\n const next = await reader.read();\n if (next.done) {\n completed = true;\n break;\n }\n buffer += decoder.decode(next.value, { stream: true });\n const lines = buffer.split(/\\r?\\n/);\n buffer = lines.pop() ?? \"\";\n for (const line of lines) {\n const value2 = line.trim();\n if (value2.length > 0) yield JSON.parse(value2);\n }\n }\n buffer += decoder.decode();\n const value = buffer.trim();\n if (value.length > 0) yield JSON.parse(value);\n } finally {\n if (!completed) await cancelReader(reader);\n reader.releaseLock();\n }\n}\nasync function* readSseStream(stream) {\n const reader = stream.getReader();\n const decoder = new TextDecoder();\n let buffer = \"\";\n let data = [];\n let completed = false;\n function parseLine(line) {\n if (line === \"\") {\n const complete = data.length === 0 ? void 0 : data.join(\"\\n\");\n data = [];\n return complete;\n }\n if (line.startsWith(\":\")) return void 0;\n const separator = line.indexOf(\":\");\n const field = separator === -1 ? line : line.slice(0, separator);\n const value = separator === -1 ? \"\" : line.slice(separator + 1).replace(/^ /, \"\");\n if (field === \"data\") data.push(value);\n return void 0;\n }\n try {\n while (true) {\n const next = await reader.read();\n if (next.done) {\n completed = true;\n break;\n }\n buffer += decoder.decode(next.value, { stream: true });\n const lines = buffer.split(/\\r?\\n/);\n buffer = lines.pop() ?? \"\";\n for (const line of lines) {\n const complete = parseLine(line);\n if (complete !== void 0) yield JSON.parse(complete);\n }\n }\n buffer += decoder.decode();\n if (buffer.length > 0) {\n const complete = parseLine(buffer);\n if (complete !== void 0) yield JSON.parse(complete);\n }\n if (data.length > 0) yield JSON.parse(data.join(\"\\n\"));\n } finally {\n if (!completed) await cancelReader(reader);\n reader.releaseLock();\n }\n}\nasync function cancelReader(reader) {\n try {\n await reader.cancel();\n } catch {\n }\n}\n\n// src/transport/fetch.ts\nvar EventStreamHttpError = class extends Error {\n constructor(response, body) {\n super(`Event stream request failed with status ${response.status}`);\n this.response = response;\n this.body = body;\n this.name = \"EventStreamHttpError\";\n }\n response;\n body;\n};\nasync function* fetchEventStream(options) {\n const fetchImpl = options.fetch ?? globalThis.fetch;\n if (fetchImpl === void 0) throw new Error(\"fetchEventStream requires a fetch implementation.\");\n const response = await fetchImpl(options.input, fetchOptions(options));\n if (!response.ok) throw new EventStreamHttpError(response, await response.text());\n options.validateResponse?.(response);\n if (response.body === null) throw new Error(\"Event stream response does not include a body.\");\n const format = options.format === void 0 || options.format === \"auto\" ? inferEventStreamFormat(response.headers.get(\"content-type\")) : options.format;\n if (format === \"sse\") {\n yield* readSseStream(response.body);\n } else {\n yield* readJsonlStream(response.body);\n }\n}\nfunction fetchOptions(options) {\n const {\n input: _input,\n format: _format,\n fetch: _fetch,\n validateResponse: _validate,\n ...init\n } = options;\n return init;\n}\nfunction inferEventStreamFormat(contentType) {\n return contentType?.toLowerCase().includes(\"text/event-stream\") ? \"sse\" : \"jsonl\";\n}\n\n// src/transport/event-transport.ts\nfunction createFetchEventTransport(options) {\n return {\n async *send(transportOptions) {\n const endpoint = typeof options.endpoint === \"function\" ? options.endpoint(transportOptions) : options.endpoint;\n const requestHeaders = await resolveHeaders(options.headers, transportOptions);\n const headers = mergeHeaders(requestHeaders, transportOptions.headers);\n const method = options.method ?? \"POST\";\n const body = await resolveBody(options.body, transportOptions, headers, method);\n const init = {\n ...options.init,\n input: endpoint,\n method,\n headers,\n format: options.format ?? \"auto\"\n };\n if (body !== void 0) init.body = body;\n if (transportOptions.abortSignal !== void 0) init.signal = transportOptions.abortSignal;\n if (options.fetch !== void 0) init.fetch = options.fetch;\n if (options.validateResponse !== void 0) init.validateResponse = options.validateResponse;\n for await (const event of fetchEventStream(init)) {\n yield options.mapEvent === void 0 ? event : options.mapEvent(event);\n }\n }\n };\n}\nfunction createDirectEventTransport(options) {\n return {\n async *send(context) {\n const iterator = options.handler(context)[Symbol.asyncIterator]();\n let closePromise;\n const close = () => {\n closePromise ??= Promise.resolve(iterator.return?.());\n return closePromise;\n };\n const onAbort = () => {\n void close();\n };\n context.abortSignal?.addEventListener(\"abort\", onAbort, { once: true });\n try {\n while (!context.abortSignal?.aborted) {\n const next = await iterator.next();\n if (next.done) break;\n yield next.value;\n }\n } finally {\n context.abortSignal?.removeEventListener(\"abort\", onAbort);\n await close();\n }\n }\n };\n}\nasync function resolveHeaders(headers, context) {\n return typeof headers === \"function\" ? headers(context) : headers;\n}\nasync function resolveBody(body, context, headers, method) {\n if (body !== void 0) return body({ ...context, headers });\n if (method.toUpperCase() === \"GET\" || method.toUpperCase() === \"HEAD\") return void 0;\n if (!headers.has(\"content-type\")) headers.set(\"content-type\", \"application/json\");\n return JSON.stringify(context.request);\n}\nfunction mergeHeaders(...values) {\n const headers = new Headers();\n for (const value of values) {\n if (value === void 0) continue;\n new Headers(value).forEach((headerValue, key) => {\n headers.set(key, headerValue);\n });\n }\n return headers;\n}\n\nexport {\n readJsonlStream,\n readSseStream,\n EventStreamHttpError,\n fetchEventStream,\n createFetchEventTransport,\n createDirectEventTransport\n};\n//# sourceMappingURL=chunk-2KGXQZWA.js.map","import { EventStreamHttpError } from \"@anvia/client/transport\";\nimport { errorMessage } from \"./modules/shared/format\";\n\nexport async function responseErrorMessage(response: Response, label: string): Promise<string> {\n let detail = \"\";\n try {\n const body = (await response.json()) as unknown;\n if (\n typeof body === \"object\" &&\n body !== null &&\n \"error\" in body &&\n typeof body.error === \"object\" &&\n body.error !== null &&\n \"message\" in body.error &&\n typeof body.error.message === \"string\"\n ) {\n detail = `: ${body.error.message}`;\n }\n } catch {\n // Ignore non-JSON error bodies.\n }\n return `${label} with HTTP ${response.status}${detail}`;\n}\n\nexport function agentRunErrorMessage(error: unknown): string {\n if (error instanceof EventStreamHttpError) {\n return error.response.status === 401\n ? \"Authentication required\"\n : `Run failed with HTTP ${error.response.status}`;\n }\n return errorMessage(error);\n}\n\nexport function eventStreamResponseErrorMessage(\n error: EventStreamHttpError,\n label: string,\n): string {\n let detail = \"\";\n try {\n const body = JSON.parse(error.body) as unknown;\n if (\n typeof body === \"object\" &&\n body !== null &&\n \"error\" in body &&\n typeof body.error === \"object\" &&\n body.error !== null &&\n \"message\" in body.error &&\n typeof body.error.message === \"string\"\n ) {\n detail = `: ${body.error.message}`;\n }\n } catch {\n // Ignore non-JSON error bodies.\n }\n return `${label} with HTTP ${error.response.status}${detail}`;\n}\n\nexport function serializedStreamErrorText(error: unknown): string {\n if (typeof error === \"string\") {\n return error;\n }\n if (error instanceof Error) {\n return error.message;\n }\n try {\n return JSON.stringify(error) ?? String(error);\n } catch {\n return String(error);\n }\n}\n","import { responseErrorMessage } from \"../../app-errors\";\n\nexport async function requestJson<T>(\n url: string,\n label: string,\n signal?: AbortSignal,\n cache: RequestCache = \"default\",\n init: RequestInit = {},\n): Promise<T> {\n const request: RequestInit = {\n ...init,\n cache,\n };\n if (signal !== undefined) request.signal = signal;\n const response = await fetch(url, request);\n if (!response.ok) {\n throw new Error(await responseErrorMessage(response, label));\n }\n return (await response.json()) as T;\n}\n"],"mappings":"yCACA,eAAgB,EAAgB,EAAQ,CACtC,IAAM,EAAS,EAAO,UAAU,EAC1B,EAAU,IAAI,YAChB,EAAS,GACT,EAAY,GAChB,GAAI,CACF,OAAa,CACX,IAAM,EAAO,MAAM,EAAO,KAAK,EAC/B,GAAI,EAAK,KAAM,CACb,EAAY,GACZ,KACF,CACA,GAAU,EAAQ,OAAO,EAAK,MAAO,CAAE,OAAQ,EAAK,CAAC,EACrD,IAAM,EAAQ,EAAO,MAAM,OAAO,EAClC,EAAS,EAAM,IAAI,GAAK,GACxB,IAAK,IAAM,KAAQ,EAAO,CACxB,IAAM,EAAS,EAAK,KAAK,EACrB,EAAO,OAAS,IAAG,MAAM,KAAK,MAAM,CAAM,EAChD,CACF,CACA,GAAU,EAAQ,OAAO,EACzB,IAAM,EAAQ,EAAO,KAAK,EACtB,EAAM,OAAS,IAAG,MAAM,KAAK,MAAM,CAAK,EAC9C,QAAU,CACH,GAAW,MAAM,EAAa,CAAM,EACzC,EAAO,YAAY,CACrB,CACF,CACA,eAAgB,EAAc,EAAQ,CACpC,IAAM,EAAS,EAAO,UAAU,EAC1B,EAAU,IAAI,YAChB,EAAS,GACT,EAAO,CAAC,EACR,EAAY,GAChB,SAAS,EAAU,EAAM,CACvB,GAAI,IAAS,GAAI,CACf,IAAM,EAAW,EAAK,SAAW,EAAI,IAAK,GAAI,EAAK,KAAK;CAAI,EAE5D,MADA,GAAO,CAAC,EACD,CACT,CACA,GAAI,EAAK,WAAW,GAAG,EAAG,OAC1B,IAAM,EAAY,EAAK,QAAQ,GAAG,EAC5B,EAAQ,IAAc,GAAK,EAAO,EAAK,MAAM,EAAG,CAAS,EACzD,EAAQ,IAAc,GAAK,GAAK,EAAK,MAAM,EAAY,CAAC,CAAC,CAAC,QAAQ,KAAM,EAAE,EAC5E,IAAU,QAAQ,EAAK,KAAK,CAAK,CAEvC,CACA,GAAI,CACF,OAAa,CACX,IAAM,EAAO,MAAM,EAAO,KAAK,EAC/B,GAAI,EAAK,KAAM,CACb,EAAY,GACZ,KACF,CACA,GAAU,EAAQ,OAAO,EAAK,MAAO,CAAE,OAAQ,EAAK,CAAC,EACrD,IAAM,EAAQ,EAAO,MAAM,OAAO,EAClC,EAAS,EAAM,IAAI,GAAK,GACxB,IAAK,IAAM,KAAQ,EAAO,CACxB,IAAM,EAAW,EAAU,CAAI,EAC3B,IAAa,IAAK,KAAG,MAAM,KAAK,MAAM,CAAQ,EACpD,CACF,CAEA,GADA,GAAU,EAAQ,OAAO,EACrB,EAAO,OAAS,EAAG,CACrB,IAAM,EAAW,EAAU,CAAM,EAC7B,IAAa,IAAK,KAAG,MAAM,KAAK,MAAM,CAAQ,EACpD,CACI,EAAK,OAAS,IAAG,MAAM,KAAK,MAAM,EAAK,KAAK;CAAI,CAAC,EACvD,QAAU,CACH,GAAW,MAAM,EAAa,CAAM,EACzC,EAAO,YAAY,CACrB,CACF,CACA,eAAe,EAAa,EAAQ,CAClC,GAAI,CACF,MAAM,EAAO,OAAO,CACtB,MAAQ,CACR,CACF,CAGA,IAAI,EAAuB,cAAc,KAAM,CAC7C,YAAY,EAAU,EAAM,CAC1B,MAAM,2CAA2C,EAAS,QAAQ,EAClE,KAAK,SAAW,EAChB,KAAK,KAAO,EACZ,KAAK,KAAO,sBACd,CACA,SACA,IACF,EACA,eAAgB,EAAiB,EAAS,CACxC,IAAM,EAAY,EAAQ,OAAS,WAAW,MAC9C,GAAI,IAAc,IAAK,GAAG,MAAU,MAAM,mDAAmD,EAC7F,IAAM,EAAW,MAAM,EAAU,EAAQ,MAAO,EAAa,CAAO,CAAC,EACrE,GAAI,CAAC,EAAS,GAAI,MAAM,IAAI,EAAqB,EAAU,MAAM,EAAS,KAAK,CAAC,EAEhF,GADA,EAAQ,mBAAmB,CAAQ,EAC/B,EAAS,OAAS,KAAM,MAAU,MAAM,gDAAgD,GAC7E,EAAQ,SAAW,IAAK,IAAK,EAAQ,SAAW,OAAS,EAAuB,EAAS,QAAQ,IAAI,cAAc,CAAC,EAAI,EAAQ,UAChI,MACb,MAAO,EAAc,EAAS,IAAI,EAElC,MAAO,EAAgB,EAAS,IAAI,CAExC,CACA,SAAS,EAAa,EAAS,CAC7B,GAAM,CACJ,MAAO,EACP,OAAQ,EACR,MAAO,EACP,iBAAkB,EAClB,GAAG,GACD,EACJ,OAAO,CACT,CACA,SAAS,EAAuB,EAAa,CAC3C,OAAO,GAAa,YAAY,CAAC,CAAC,SAAS,mBAAmB,EAAI,MAAQ,OAC5E,CAGA,SAAS,EAA0B,EAAS,CAC1C,MAAO,CACL,MAAO,KAAK,EAAkB,CAC5B,IAAM,EAAW,OAAO,EAAQ,UAAa,WAAa,EAAQ,SAAS,CAAgB,EAAI,EAAQ,SAEjG,EAAU,EAAa,MADA,EAAe,EAAQ,QAAS,CAAgB,EAChC,EAAiB,OAAO,EAC/D,EAAS,EAAQ,QAAU,OAC3B,EAAO,MAAM,EAAY,EAAQ,KAAM,EAAkB,EAAS,CAAM,EACxE,EAAO,CACX,GAAG,EAAQ,KACX,MAAO,EACP,SACA,UACA,OAAQ,EAAQ,QAAU,MAC5B,EACI,IAAS,IAAK,KAAG,EAAK,KAAO,GAC7B,EAAiB,cAAgB,IAAK,KAAG,EAAK,OAAS,EAAiB,aACxE,EAAQ,QAAU,IAAK,KAAG,EAAK,MAAQ,EAAQ,OAC/C,EAAQ,mBAAqB,IAAK,KAAG,EAAK,iBAAmB,EAAQ,kBACzE,UAAW,IAAM,KAAS,EAAiB,CAAI,EAC7C,MAAM,EAAQ,WAAa,IAAK,GAAI,EAAQ,EAAQ,SAAS,CAAK,CAEtE,CACF,CACF,CA2BA,eAAe,EAAe,EAAS,EAAS,CAC9C,OAAO,OAAO,GAAY,WAAa,EAAQ,CAAO,EAAI,CAC5D,CACA,eAAe,EAAY,EAAM,EAAS,EAAS,EAAQ,CACzD,GAAI,IAAS,IAAK,GAAG,OAAO,EAAK,CAAE,GAAG,EAAS,SAAQ,CAAC,EACpD,KAAO,YAAY,IAAM,OAAS,EAAO,YAAY,IAAM,OAE/D,OADK,EAAQ,IAAI,cAAc,GAAG,EAAQ,IAAI,eAAgB,kBAAkB,EACzE,KAAK,UAAU,EAAQ,OAAO,CACvC,CACA,SAAS,EAAa,GAAG,EAAQ,CAC/B,IAAM,EAAU,IAAI,QACpB,IAAK,IAAM,KAAS,EACd,IAAU,IAAK,IACnB,IAAI,QAAQ,CAAK,CAAC,CAAC,SAAS,EAAa,IAAQ,CAC/C,EAAQ,IAAI,EAAK,CAAW,CAC9B,CAAC,EAEH,OAAO,CACT,CC3LA,eAAsB,EAAqB,EAAoB,EAAgC,CAC7F,IAAI,EAAS,GACb,GAAI,CACF,IAAM,EAAQ,MAAM,EAAS,KAAK,EAEhC,OAAO,GAAS,UAChB,GACA,UAAW,GACX,OAAO,EAAK,OAAU,UACtB,EAAK,QAAU,MACf,YAAa,EAAK,OAClB,OAAO,EAAK,MAAM,SAAY,WAE9B,EAAS,KAAK,EAAK,MAAM,UAE7B,MAAQ,CAER,CACA,MAAO,GAAG,EAAM,aAAa,EAAS,SAAS,GACjD,CAEA,SAAgB,EAAqB,EAAwB,CAM3D,OALI,aAAiB,EACZ,EAAM,SAAS,SAAW,IAC7B,0BACA,wBAAwB,EAAM,SAAS,SAEtC,EAAa,CAAK,CAC3B,CAEA,SAAgB,EACd,EACA,EACQ,CACR,IAAI,EAAS,GACb,GAAI,CACF,IAAM,EAAO,KAAK,MAAM,EAAM,IAAI,EAEhC,OAAO,GAAS,UAChB,GACA,UAAW,GACX,OAAO,EAAK,OAAU,UACtB,EAAK,QAAU,MACf,YAAa,EAAK,OAClB,OAAO,EAAK,MAAM,SAAY,WAE9B,EAAS,KAAK,EAAK,MAAM,UAE7B,MAAQ,CAER,CACA,MAAO,GAAG,EAAM,aAAa,EAAM,SAAS,SAAS,GACvD,CAEA,SAAgB,EAA0B,EAAwB,CAChE,GAAI,OAAO,GAAU,SACnB,OAAO,EAET,GAAI,aAAiB,MACnB,OAAO,EAAM,QAEf,GAAI,CACF,OAAO,KAAK,UAAU,CAAK,GAAK,OAAO,CAAK,CAC9C,MAAQ,CACN,OAAO,OAAO,CAAK,CACrB,CACF,CCnEA,eAAsB,EACpB,EACA,EACA,EACA,EAAsB,UACtB,EAAoB,CAAC,EACT,CACZ,IAAM,EAAuB,CAC3B,GAAG,EACH,OACF,EACI,IAAW,IAAA,KAAW,EAAQ,OAAS,GAC3C,IAAM,EAAW,MAAM,MAAM,EAAK,CAAO,EACzC,GAAI,CAAC,EAAS,GACZ,MAAU,MAAM,MAAM,EAAqB,EAAU,CAAK,CAAC,EAE7D,OAAQ,MAAM,EAAS,KAAK,CAC9B"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
function e(e){return e>>>0}function t(e){return e|0}var n=`warn`,r=()=>{},i=()=>{},a=()=>{},o=()=>{};function s(e){if(e===void 0?e=n:n=e,r=i=a=o=()=>{},window.console!==void 0)switch(e){case`debug`:r=console.debug.bind(window.console);case`info`:i=console.info.bind(window.console);case`warn`:a=console.warn.bind(window.console);case`error`:o=console.error.bind(window.console);case`none`:break;default:throw new window.Error(`invalid logging type '`+e+`'`)}}s();function c(e,t=!1){try{return decodeURIComponent(escape(e))}catch(n){if(n instanceof URIError&&t)return e;throw n}}function l(e){return unescape(encodeURIComponent(e))}var u={toBase64Table:`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.split(``),base64Pad:`=`,encode(e){let t=``,n=e.length,r=n%3;for(let r=0;r<n-2;r+=3)t+=this.toBase64Table[e[r]>>2],t+=this.toBase64Table[((e[r]&3)<<4)+(e[r+1]>>4)],t+=this.toBase64Table[((e[r+1]&15)<<2)+(e[r+2]>>6)],t+=this.toBase64Table[e[r+2]&63];let i=n-r;return r===2?(t+=this.toBase64Table[e[i]>>2],t+=this.toBase64Table[((e[i]&3)<<4)+(e[i+1]>>4)],t+=this.toBase64Table[(e[i+1]&15)<<2],t+=this.toBase64Table[64]):r===1&&(t+=this.toBase64Table[e[i]>>2],t+=this.toBase64Table[(e[i]&3)<<4],t+=this.toBase64Table[64],t+=this.toBase64Table[64]),t},toBinaryTable:[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,0,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1],decode(e,t=0){let n=e.indexOf(`=`)-t;n<0&&(n=e.length-t);let r=(n>>2)*3+Math.floor(n%4/1.5),i=Array(r),a=0,s=0;for(let n=0,r=t;r<e.length;r++){let t=this.toBinaryTable[e.charCodeAt(r)&127],c=e.charAt(r)===this.base64Pad;if(t===-1){o(`Illegal character code `+e.charCodeAt(r)+` at position `+r);continue}s=s<<6|t,a+=6,a>=8&&(a-=8,c||(i[n++]=s>>a&255),s&=(1<<a)-1)}if(a){let e=Error(`Corrupted base64 string`);throw e.name=`Base64-Error`,e}return i}},d=`ontouchstart`in document.documentElement||document.ontouchstart!==void 0||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0;window.addEventListener(`touchstart`,function e(){d=!0,window.removeEventListener(`touchstart`,e,!1)},!1);var f=10*(window.devicePixelRatio||1),p=!1;try{let e=document.createElement(`canvas`);e.style.cursor=`url("data:image/x-icon;base64,AAACAAEACAgAAAIAAgA4AQAAFgAAACgAAAAIAAAAEAAAAAEAIAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAA==") 2 2, default`,e.style.cursor.indexOf(`url`)===0?(i(`Data URI scheme cursor supported`),p=!0):a(`Data URI scheme cursor not supported`)}catch(e){o(`Data URI scheme cursor test exception: `+e)}var m=p;try{let e=document.createElement(`div`);e.style.visibility=`hidden`,e.style.overflow=`scroll`,document.body.appendChild(e);let t=document.createElement(`div`);e.appendChild(t),e.offsetWidth-t.offsetWidth,e.parentNode.removeChild(e)}catch(e){o(`Scrollbar test exception: `+e)}var h=!1;async function g(){if(!(`VideoDecoder`in window))return!1;let e={codec:`avc1.42401f`,codedWidth:1920,codedHeight:1080,optimizeForLatency:!0};if(!(await VideoDecoder.isConfigSupported(e)).supported)return!1;let t=new Uint8Array(u.decode(`AAAAAWdCwBTZnpuAgICgAAADACAAAAZB4oVNAAAAAWjJYyyAAAABBgX//4HcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTY0IHIzMTA4IDMxZTE5ZjkgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDIzIC0gaHR0cDovL3d3dy52aWRlb2xhbi5vcmcveDI2NC5odG1sIC0gb3B0aW9uczogY2FiYWM9MCByZWY9NSBkZWJsb2NrPTE6MDowIGFuYWx5c2U9MHgxOjB4MTExIG1lPWhleCBzdWJtZT04IHBzeT0xIHBzeV9yZD0xLjAwOjAuMDAgbWl4ZWRfcmVmPTEgbWVfcmFuZ2U9MTYgY2hyb21hX21lPTEgdHJlbGxpcz0yIDh4OGRjdD0wIGNxbT0wIGRlYWR6b25lPTIxLDExIGZhc3RfcHNraXA9MSBjaHJvbWFfcXBfb2Zmc2V0PS0yIHRocmVhZHM9MSBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTAgd2VpZ2h0cD0wIGtleWludD1pbmZpbml0ZSBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NTAgcmM9YWJyIG1idHJlZT0xIGJpdHJhdGU9NDAwIHJhdGV0b2w9MS4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAABZYiEBrxmKAAPVccAAS044AA5DRJMnkycJk4TPw==`)),n=!1,r=null,i=new VideoDecoder({output:e=>{n=!0,e.close()},error:e=>{r=e}}),a=new EncodedVideoChunk({timestamp:0,type:`key`,data:t});i.configure(e),i.decode(a);try{await i.flush()}catch(e){r=e}return!(!n||r!==null)}h=await g();function _(){return!!/mac/i.exec(navigator.platform)}function v(){return!!/win/i.exec(navigator.platform)}function y(){return!!/ipad/i.exec(navigator.platform)||!!/iphone/i.exec(navigator.platform)||!!/ipod/i.exec(navigator.platform)}function b(e,t,n){let r=n.getBoundingClientRect(),i={x:0,y:0};return i.x=e<r.left?0:e>=r.right?r.width-1:e-r.left,i.y=t<r.top?0:t>=r.bottom?r.height-1:t-r.top,i}function x(e){e.stopPropagation(),e.preventDefault()}var S=!1,C=null;document.captureElement=null;function w(e){if(S)return;let t=new e.constructor(e.type,e);S=!0,document.captureElement?document.captureElement.dispatchEvent(t):C.dispatchEvent(t),S=!1,e.stopPropagation(),t.defaultPrevented&&e.preventDefault(),e.type===`mouseup`&&O()}function T(){let e=document.getElementById(`noVNC_mouse_capture_elem`);e.style.cursor=window.getComputedStyle(document.captureElement).cursor}var E=new MutationObserver(T);function D(e){if(e.setCapture)e.setCapture(),document.captureElement=e;else{O();let t=document.getElementById(`noVNC_mouse_capture_elem`);t===null&&(t=document.createElement(`div`),t.id=`noVNC_mouse_capture_elem`,t.style.position=`fixed`,t.style.top=`0px`,t.style.left=`0px`,t.style.width=`100%`,t.style.height=`100%`,t.style.zIndex=1e4,t.style.display=`none`,document.body.appendChild(t),t.addEventListener(`contextmenu`,w),t.addEventListener(`mousemove`,w),t.addEventListener(`mouseup`,w)),document.captureElement=e,E.observe(e,{attributes:!0}),T(),t.style.display=``,window.addEventListener(`mousemove`,w),window.addEventListener(`mouseup`,w)}}function O(){if(document.releaseCapture)document.releaseCapture(),document.captureElement=null;else{if(!document.captureElement)return;C=document.captureElement,document.captureElement=null,E.disconnect();let e=document.getElementById(`noVNC_mouse_capture_elem`);e.style.display=`none`,window.removeEventListener(`mousemove`,w),window.removeEventListener(`mouseup`,w)}}var ee=class{constructor(){this._listeners=new Map}addEventListener(e,t){this._listeners.has(e)||this._listeners.set(e,new Set),this._listeners.get(e).add(t)}removeEventListener(e,t){this._listeners.has(e)&&this._listeners.get(e).delete(t)}dispatchEvent(e){return!this._listeners.has(e.type)||(this._listeners.get(e.type).forEach(t=>t.call(this,e)),!e.defaultPrevented)}},te=class{constructor(e){if(this._drawCtx=null,this._renderQ=[],this._flushPromise=null,this._fbWidth=0,this._fbHeight=0,this._prevDrawStyle=``,r(`>> Display.constructor`),this._target=e,!this._target)throw Error(`Target must be set`);if(typeof this._target==`string`)throw Error(`target must be a DOM element`);if(!this._target.getContext)throw Error(`no getContext method`);this._targetCtx=this._target.getContext(`2d`),this._viewportLoc={x:0,y:0,w:this._target.width,h:this._target.height},this._backbuffer=document.createElement(`canvas`),this._drawCtx=this._backbuffer.getContext(`2d`),this._damageBounds={left:0,top:0,right:this._backbuffer.width,bottom:this._backbuffer.height},r(`User Agent: `+navigator.userAgent),r(`<< Display.constructor`),this._scale=1,this._clipViewport=!1}get scale(){return this._scale}set scale(e){this._rescale(e)}get clipViewport(){return this._clipViewport}set clipViewport(e){this._clipViewport=e;let t=this._viewportLoc;this.viewportChangeSize(t.w,t.h),this.viewportChangePos(0,0)}get width(){return this._fbWidth}get height(){return this._fbHeight}viewportChangePos(e,t){let n=this._viewportLoc;e=Math.floor(e),t=Math.floor(t),this._clipViewport||(e=-n.w,t=-n.h);let i=n.x+n.w-1,a=n.y+n.h-1;e<0&&n.x+e<0&&(e=-n.x),i+e>=this._fbWidth&&(e-=i+e-this._fbWidth+1),n.y+t<0&&(t=-n.y),a+t>=this._fbHeight&&(t-=a+t-this._fbHeight+1),(e!==0||t!==0)&&(r(`viewportChange deltaX: `+e+`, deltaY: `+t),n.x+=e,n.y+=t,this._damage(n.x,n.y,n.w,n.h),this.flip())}viewportChangeSize(e,t){(!this._clipViewport||e===void 0||t===void 0)&&(r(`Setting viewport to full display region`),e=this._fbWidth,t=this._fbHeight),e=Math.floor(e),t=Math.floor(t),e>this._fbWidth&&(e=this._fbWidth),t>this._fbHeight&&(t=this._fbHeight);let n=this._viewportLoc;if(n.w!==e||n.h!==t){n.w=e,n.h=t;let r=this._target;r.width=e,r.height=t,this.viewportChangePos(0,0),this._damage(n.x,n.y,n.w,n.h),this.flip(),this._rescale(this._scale)}}absX(e){return this._scale===0?0:t(e/this._scale+this._viewportLoc.x)}absY(e){return this._scale===0?0:t(e/this._scale+this._viewportLoc.y)}resize(e,t){this._prevDrawStyle=``,this._fbWidth=e,this._fbHeight=t;let n=this._backbuffer;if(n.width!==e||n.height!==t){let r=null;n.width>0&&n.height>0&&(r=this._drawCtx.getImageData(0,0,n.width,n.height)),n.width!==e&&(n.width=e),n.height!==t&&(n.height=t),r&&this._drawCtx.putImageData(r,0,0)}let r=this._viewportLoc;this.viewportChangeSize(r.w,r.h),this.viewportChangePos(0,0)}getImageData(){return this._drawCtx.getImageData(0,0,this.width,this.height)}toDataURL(e,t){return this._backbuffer.toDataURL(e,t)}toBlob(e,t,n){return this._backbuffer.toBlob(e,t,n)}_damage(e,t,n,r){e<this._damageBounds.left&&(this._damageBounds.left=e),t<this._damageBounds.top&&(this._damageBounds.top=t),e+n>this._damageBounds.right&&(this._damageBounds.right=e+n),t+r>this._damageBounds.bottom&&(this._damageBounds.bottom=t+r)}flip(e){if(this._renderQ.length!==0&&!e)this._renderQPush({type:`flip`});else{let e=this._damageBounds.left,t=this._damageBounds.top,n=this._damageBounds.right-e,r=this._damageBounds.bottom-t,i=e-this._viewportLoc.x,a=t-this._viewportLoc.y;i<0&&(n+=i,e-=i,i=0),a<0&&(r+=a,t-=a,a=0),i+n>this._viewportLoc.w&&(n=this._viewportLoc.w-i),a+r>this._viewportLoc.h&&(r=this._viewportLoc.h-a),n>0&&r>0&&this._targetCtx.drawImage(this._backbuffer,e,t,n,r,i,a,n,r),this._damageBounds.left=this._damageBounds.top=65535,this._damageBounds.right=this._damageBounds.bottom=0}}pending(){return this._renderQ.length>0}flush(){return this._renderQ.length===0?Promise.resolve():(this._flushPromise===null&&(this._flushPromise=new Promise(e=>{this._flushResolve=e})),this._flushPromise)}fillRect(e,t,n,r,i,a){this._renderQ.length!==0&&!a?this._renderQPush({type:`fill`,x:e,y:t,width:n,height:r,color:i}):(this._setFillColor(i),this._drawCtx.fillRect(e,t,n,r),this._damage(e,t,n,r))}copyImage(e,t,n,r,i,a,o){this._renderQ.length!==0&&!o?this._renderQPush({type:`copy`,oldX:e,oldY:t,x:n,y:r,width:i,height:a}):(this._drawCtx.mozImageSmoothingEnabled=!1,this._drawCtx.webkitImageSmoothingEnabled=!1,this._drawCtx.msImageSmoothingEnabled=!1,this._drawCtx.imageSmoothingEnabled=!1,this._drawCtx.drawImage(this._backbuffer,e,t,i,a,n,r,i,a),this._damage(n,r,i,a))}imageRect(e,t,n,r,i,a){if(n===0||r===0)return;let o=new Image;o.src=`data: `+i+`;base64,`+u.encode(a),this._renderQPush({type:`img`,img:o,x:e,y:t,width:n,height:r})}videoFrame(e,t,n,r,i){this._renderQPush({type:`frame`,frame:i,x:e,y:t,width:n,height:r})}blitImage(e,t,n,r,i,a,o){if(this._renderQ.length!==0&&!o){let a=new Uint8Array(n*r*4);a.set(new Uint8Array(i.buffer,0,a.length)),this._renderQPush({type:`blit`,data:a,x:e,y:t,width:n,height:r})}else{let o=new Uint8ClampedArray(i.buffer,i.byteOffset+a,n*r*4),s=new ImageData(o,n,r);this._drawCtx.putImageData(s,e,t),this._damage(e,t,n,r)}}drawImage(e,...t){if(this._drawCtx.drawImage(e,...t),t.length<=4){let[n,r]=t;this._damage(n,r,e.width,e.height)}else{let[,,e,n,r,i]=t;this._damage(r,i,e,n)}}autoscale(e,t){let n;if(e===0||t===0)n=0;else{let r=this._viewportLoc,i=e/t;n=r.w/r.h>=i?e/r.w:t/r.h}this._rescale(n)}_rescale(e){this._scale=e;let t=this._viewportLoc,n=e*t.w+`px`,r=e*t.h+`px`;(this._target.style.width!==n||this._target.style.height!==r)&&(this._target.style.width=n,this._target.style.height=r)}_setFillColor(e){let t=`rgb(`+e[0]+`,`+e[1]+`,`+e[2]+`)`;t!==this._prevDrawStyle&&(this._drawCtx.fillStyle=t,this._prevDrawStyle=t)}_renderQPush(e){this._renderQ.push(e),this._renderQ.length===1&&this._scanRenderQ()}_resumeRenderQ(){this.removeEventListener(`load`,this._noVNCDisplay._resumeRenderQ),this._noVNCDisplay._scanRenderQ()}_scanRenderQ(){let e=!0;for(;e&&this._renderQ.length>0;){let t=this._renderQ[0];switch(t.type){case`flip`:this.flip(!0);break;case`copy`:this.copyImage(t.oldX,t.oldY,t.x,t.y,t.width,t.height,!0);break;case`fill`:this.fillRect(t.x,t.y,t.width,t.height,t.color,!0);break;case`blit`:this.blitImage(t.x,t.y,t.width,t.height,t.data,0,!0);break;case`img`:if(t.img.complete){if(t.img.width!==t.width||t.img.height!==t.height){o(`Decoded image has incorrect dimensions. Got `+t.img.width+`x`+t.img.height+`. Expected `+t.width+`x`+t.height+`.`);return}this.drawImage(t.img,t.x,t.y),t.img.src=``}else t.img._noVNCDisplay=this,t.img.addEventListener(`load`,this._resumeRenderQ),e=!1;break;case`frame`:if(t.frame.ready){let e=t.frame.frame;(e.codedWidth<t.width||e.codedHeight<t.height)&&a(`Decoded video frame does not cover its full rectangle area. Expecting at least `+t.width+`x`+t.height+` but got `+e.codedWidth+`x`+e.codedHeight);let n=t.width,r=t.height,i=t.x,o=t.y,s=n,c=r;this.drawImage(e,0,0,n,r,i,o,s,c),e.close()}else{let n=this;t.frame.promise.then(()=>{n._scanRenderQ()}),e=!1}}e&&this._renderQ.shift()}this._renderQ.length===0&&this._flushPromise!==null&&(this._flushResolve(),this._flushPromise=null,this._flushResolve=null)}};function ne(e,t,n,r,i){if(t.subarray&&e.subarray){e.set(t.subarray(n,n+r),i);return}for(var a=0;a<r;a++)e[i+a]=t[n+a]}var re=Uint8Array,k=Uint16Array,ie=Int32Array;function ae(e,t,n,r){for(var i=e&65535|0,a=e>>>16&65535|0,o=0;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0}function A(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t}A();var oe=30,se=12;function ce(e,t){var n=e.state,r=e.next_in,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T=e.input,E;i=r+(e.avail_in-5),a=e.next_out,E=e.output,o=a-(t-e.avail_out),s=a+(e.avail_out-257),c=n.dmax,l=n.wsize,u=n.whave,d=n.wnext,f=n.window,p=n.hold,m=n.bits,h=n.lencode,g=n.distcode,_=(1<<n.lenbits)-1,v=(1<<n.distbits)-1;top:do{m<15&&(p+=T[r++]<<m,m+=8,p+=T[r++]<<m,m+=8),y=h[p&_];dolen:for(;;){if(b=y>>>24,p>>>=b,m-=b,b=y>>>16&255,b===0)E[a++]=y&65535;else if(b&16){x=y&65535,b&=15,b&&(m<b&&(p+=T[r++]<<m,m+=8),x+=p&(1<<b)-1,p>>>=b,m-=b),m<15&&(p+=T[r++]<<m,m+=8,p+=T[r++]<<m,m+=8),y=g[p&v];dodist:for(;;){if(b=y>>>24,p>>>=b,m-=b,b=y>>>16&255,b&16){if(S=y&65535,b&=15,m<b&&(p+=T[r++]<<m,m+=8,m<b&&(p+=T[r++]<<m,m+=8)),S+=p&(1<<b)-1,S>c){e.msg=`invalid distance too far back`,n.mode=oe;break top}if(p>>>=b,m-=b,b=a-o,S>b){if(b=S-b,b>u&&n.sane){e.msg=`invalid distance too far back`,n.mode=oe;break top}if(C=0,w=f,d===0){if(C+=l-b,b<x){x-=b;do E[a++]=f[C++];while(--b);C=a-S,w=E}}else if(d<b){if(C+=l+d-b,b-=d,b<x){x-=b;do E[a++]=f[C++];while(--b);if(C=0,d<x){b=d,x-=b;do E[a++]=f[C++];while(--b);C=a-S,w=E}}}else if(C+=d-b,b<x){x-=b;do E[a++]=f[C++];while(--b);C=a-S,w=E}for(;x>2;)E[a++]=w[C++],E[a++]=w[C++],E[a++]=w[C++],x-=3;x&&(E[a++]=w[C++],x>1&&(E[a++]=w[C++]))}else{C=a-S;do E[a++]=E[C++],E[a++]=E[C++],E[a++]=E[C++],x-=3;while(x>2);x&&(E[a++]=E[C++],x>1&&(E[a++]=E[C++]))}}else if(b&64){e.msg=`invalid distance code`,n.mode=oe;break top}else{y=g[(y&65535)+(p&(1<<b)-1)];continue dodist}break}}else if(!(b&64)){y=h[(y&65535)+(p&(1<<b)-1)];continue dolen}else if(b&32){n.mode=se;break top}else{e.msg=`invalid literal/length code`,n.mode=oe;break top}break}}while(r<i&&a<s);x=m>>3,r-=x,m-=x<<3,p&=(1<<m)-1,e.next_in=r,e.next_out=a,e.avail_in=r<i?5+(i-r):5-(r-i),e.avail_out=a<s?257+(s-a):257-(a-s),n.hold=p,n.bits=m}var le=15,ue=852,de=592,fe=0,pe=1,me=2,he=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],ge=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],_e=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],ve=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];function ye(e,t,n,r,i,a,o,s){var c=s.bits,l=0,u=0,d=0,f=0,p=0,m=0,h=0,g=0,_=0,v=0,y,b,x,S,C,w=null,T=0,E,D=new k(le+1),O=new k(le+1),ee=null,te=0,ne,re,ie;for(l=0;l<=le;l++)D[l]=0;for(u=0;u<r;u++)D[t[n+u]]++;for(p=c,f=le;f>=1&&D[f]===0;f--);if(p>f&&(p=f),f===0)return i[a++]=20971520,i[a++]=20971520,s.bits=1,0;for(d=1;d<f&&D[d]===0;d++);for(p<d&&(p=d),g=1,l=1;l<=le;l++)if(g<<=1,g-=D[l],g<0)return-1;if(g>0&&(e===fe||f!==1))return-1;for(O[1]=0,l=1;l<le;l++)O[l+1]=O[l]+D[l];for(u=0;u<r;u++)t[n+u]!==0&&(o[O[t[n+u]]++]=u);if(e===fe?(w=ee=o,E=19):e===pe?(w=he,T-=257,ee=ge,te-=257,E=256):(w=_e,ee=ve,E=-1),v=0,u=0,l=d,C=a,m=p,h=0,x=-1,_=1<<p,S=_-1,e===pe&&_>ue||e===me&&_>de)return 1;for(;;){ne=l-h,o[u]<E?(re=0,ie=o[u]):o[u]>E?(re=ee[te+o[u]],ie=w[T+o[u]]):(re=96,ie=0),y=1<<l-h,b=1<<m,d=b;do b-=y,i[C+(v>>h)+b]=ne<<24|re<<16|ie|0;while(b!==0);for(y=1<<l-1;v&y;)y>>=1;if(y===0?v=0:(v&=y-1,v+=y),u++,--D[l]===0){if(l===f)break;l=t[n+o[u]]}if(l>p&&(v&S)!==x){for(h===0&&(h=p),C+=d,m=l-h,g=1<<m;m+h<f&&(g-=D[m+h],!(g<=0));)m++,g<<=1;if(_+=1<<m,e===pe&&_>ue||e===me&&_>de)return 1;x=v&S,i[x]=p<<24|m<<16|C-a|0}}return v!==0&&(i[C+v]=l-h<<24|4194304),s.bits=p,0}var be=0,xe=1,Se=2,Ce=1,we=2,Te=3,Ee=4,De=5,Oe=6,ke=7,Ae=8,je=9,Me=10,Ne=11,Pe=12,Fe=13,Ie=14,Le=15,Re=16,ze=17,Be=18,Ve=19,He=20,Ue=21,We=22,Ge=23,Ke=24,qe=25,Je=26,Ye=27,Xe=28,Ze=29,j=30,Qe=31,$e=32,et=852,tt=592,nt=15;function rt(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function it(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new k(320),this.work=new k(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function at(e){var t;return!e||!e.state?-2:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=``,t.wrap&&(e.adler=t.wrap&1),t.mode=Ce,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new ie(et),t.distcode=t.distdyn=new ie(tt),t.sane=1,t.back=-1,0)}function ot(e){var t;return!e||!e.state?-2:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,at(e))}function st(e,t){var n,r;return!e||!e.state||(r=e.state,t<0?(n=0,t=-t):(n=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?-2:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,ot(e))}function ct(e,t){var n,r;return e?(r=new it,e.state=r,r.window=null,n=st(e,t),n!==0&&(e.state=null),n):-2}function lt(e){return ct(e,nt)}var ut=!0,dt,ft;function pt(e){if(ut){var t;for(dt=new ie(512),ft=new ie(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(ye(xe,e.lens,0,288,dt,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;ye(Se,e.lens,0,32,ft,0,e.work,{bits:5}),ut=!1}e.lencode=dt,e.lenbits=9,e.distcode=ft,e.distbits=5}function mt(e,t,n,r){var i,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new re(a.wsize)),r>=a.wsize?(ne(a.window,t,n-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),ne(a.window,t,n-r,i,a.wnext),r-=i,r?(ne(a.window,t,n-r,r,0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0}function ht(e,t){var n,r,i,a,o,s,c,l,u,d,f,p,m,h,g=0,_,v,y,b,x,S,C,w,T=new re(4),E,D,O=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return-2;n=e.state,n.mode===Pe&&(n.mode=Fe),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,d=s,f=c,w=0;inf_leave:for(;;)switch(n.mode){case Ce:if(n.wrap===0){n.mode=Fe;break}for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.wrap&2&&l===35615){n.check=0,T[0]=l&255,T[1]=l>>>8&255,n.check=A(n.check,T,2,0),l=0,u=0,n.mode=we;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg=`incorrect header check`,n.mode=j;break}if((l&15)!=8){e.msg=`unknown compression method`,n.mode=j;break}if(l>>>=4,u-=4,C=(l&15)+8,n.wbits===0)n.wbits=C;else if(C>n.wbits){e.msg=`invalid window size`,n.mode=j;break}n.dmax=1<<C,e.adler=n.check=1,n.mode=l&512?Me:Pe,l=0,u=0;break;case we:for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.flags=l,(n.flags&255)!=8){e.msg=`unknown compression method`,n.mode=j;break}if(n.flags&57344){e.msg=`unknown header flags set`,n.mode=j;break}n.head&&(n.head.text=l>>8&1),n.flags&512&&(T[0]=l&255,T[1]=l>>>8&255,n.check=A(n.check,T,2,0)),l=0,u=0,n.mode=Te;case Te:for(;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.head&&(n.head.time=l),n.flags&512&&(T[0]=l&255,T[1]=l>>>8&255,T[2]=l>>>16&255,T[3]=l>>>24&255,n.check=A(n.check,T,4,0)),l=0,u=0,n.mode=Ee;case Ee:for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.head&&(n.head.xflags=l&255,n.head.os=l>>8),n.flags&512&&(T[0]=l&255,T[1]=l>>>8&255,n.check=A(n.check,T,2,0)),l=0,u=0,n.mode=De;case De:if(n.flags&1024){for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.length=l,n.head&&(n.head.extra_len=l),n.flags&512&&(T[0]=l&255,T[1]=l>>>8&255,n.check=A(n.check,T,2,0)),l=0,u=0}else n.head&&(n.head.extra=null);n.mode=Oe;case Oe:if(n.flags&1024&&(p=n.length,p>s&&(p=s),p&&(n.head&&(C=n.head.extra_len-n.length,n.head.extra||(n.head.extra=Array(n.head.extra_len)),ne(n.head.extra,r,a,p,C)),n.flags&512&&(n.check=A(n.check,r,p,a)),s-=p,a+=p,n.length-=p),n.length))break inf_leave;n.length=0,n.mode=ke;case ke:if(n.flags&2048){if(s===0)break inf_leave;p=0;do C=r[a+p++],n.head&&C&&n.length<65536&&(n.head.name+=String.fromCharCode(C));while(C&&p<s);if(n.flags&512&&(n.check=A(n.check,r,p,a)),s-=p,a+=p,C)break inf_leave}else n.head&&(n.head.name=null);n.length=0,n.mode=Ae;case Ae:if(n.flags&4096){if(s===0)break inf_leave;p=0;do C=r[a+p++],n.head&&C&&n.length<65536&&(n.head.comment+=String.fromCharCode(C));while(C&&p<s);if(n.flags&512&&(n.check=A(n.check,r,p,a)),s-=p,a+=p,C)break inf_leave}else n.head&&(n.head.comment=null);n.mode=je;case je:if(n.flags&512){for(;u<16;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(l!==(n.check&65535)){e.msg=`header crc mismatch`,n.mode=j;break}l=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=Pe;break;case Me:for(;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}e.adler=n.check=rt(l),l=0,u=0,n.mode=Ne;case Ne:if(n.havedict===0)return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,2;e.adler=n.check=1,n.mode=Pe;case Pe:if(t===5||t===6)break inf_leave;case Fe:if(n.last){l>>>=u&7,u-=u&7,n.mode=Ye;break}for(;u<3;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}switch(n.last=l&1,l>>>=1,--u,l&3){case 0:n.mode=Ie;break;case 1:if(pt(n),n.mode=He,t===6){l>>>=2,u-=2;break inf_leave}break;case 2:n.mode=ze;break;case 3:e.msg=`invalid block type`,n.mode=j}l>>>=2,u-=2;break;case Ie:for(l>>>=u&7,u-=u&7;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if((l&65535)!=(l>>>16^65535)){e.msg=`invalid stored block lengths`,n.mode=j;break}if(n.length=l&65535,l=0,u=0,n.mode=Le,t===6)break inf_leave;case Le:n.mode=Re;case Re:if(p=n.length,p){if(p>s&&(p=s),p>c&&(p=c),p===0)break inf_leave;ne(i,r,a,p,o),s-=p,a+=p,c-=p,o+=p,n.length-=p;break}n.mode=Pe;break;case ze:for(;u<14;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(n.nlen=(l&31)+257,l>>>=5,u-=5,n.ndist=(l&31)+1,l>>>=5,u-=5,n.ncode=(l&15)+4,l>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg=`too many length or distance symbols`,n.mode=j;break}n.have=0,n.mode=Be;case Be:for(;n.have<n.ncode;){for(;u<3;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.lens[O[n.have++]]=l&7,l>>>=3,u-=3}for(;n.have<19;)n.lens[O[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,E={bits:n.lenbits},w=ye(be,n.lens,0,19,n.lencode,0,n.work,E),n.lenbits=E.bits,w){e.msg=`invalid code lengths set`,n.mode=j;break}n.have=0,n.mode=Ve;case Ve:for(;n.have<n.nlen+n.ndist;){for(;g=n.lencode[l&(1<<n.lenbits)-1],_=g>>>24,v=g>>>16&255,y=g&65535,!(_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(y<16)l>>>=_,u-=_,n.lens[n.have++]=y;else{if(y===16){for(D=_+2;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(l>>>=_,u-=_,n.have===0){e.msg=`invalid bit length repeat`,n.mode=j;break}C=n.lens[n.have-1],p=3+(l&3),l>>>=2,u-=2}else if(y===17){for(D=_+3;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=_,u-=_,C=0,p=3+(l&7),l>>>=3,u-=3}else{for(D=_+7;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=_,u-=_,C=0,p=11+(l&127),l>>>=7,u-=7}if(n.have+p>n.nlen+n.ndist){e.msg=`invalid bit length repeat`,n.mode=j;break}for(;p--;)n.lens[n.have++]=C}}if(n.mode===j)break;if(n.lens[256]===0){e.msg=`invalid code -- missing end-of-block`,n.mode=j;break}if(n.lenbits=9,E={bits:n.lenbits},w=ye(xe,n.lens,0,n.nlen,n.lencode,0,n.work,E),n.lenbits=E.bits,w){e.msg=`invalid literal/lengths set`,n.mode=j;break}if(n.distbits=6,n.distcode=n.distdyn,E={bits:n.distbits},w=ye(Se,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,E),n.distbits=E.bits,w){e.msg=`invalid distances set`,n.mode=j;break}if(n.mode=He,t===6)break inf_leave;case He:n.mode=Ue;case Ue:if(s>=6&&c>=258){e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,ce(e,f),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,r=e.input,s=e.avail_in,l=n.hold,u=n.bits,n.mode===Pe&&(n.back=-1);break}for(n.back=0;g=n.lencode[l&(1<<n.lenbits)-1],_=g>>>24,v=g>>>16&255,y=g&65535,!(_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(v&&!(v&240)){for(b=_,x=v,S=y;g=n.lencode[S+((l&(1<<b+x)-1)>>b)],_=g>>>24,v=g>>>16&255,y=g&65535,!(b+_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=b,u-=b,n.back+=b}if(l>>>=_,u-=_,n.back+=_,n.length=y,v===0){n.mode=Je;break}if(v&32){n.back=-1,n.mode=Pe;break}if(v&64){e.msg=`invalid literal/length code`,n.mode=j;break}n.extra=v&15,n.mode=We;case We:if(n.extra){for(D=n.extra;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.length+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=Ge;case Ge:for(;g=n.distcode[l&(1<<n.distbits)-1],_=g>>>24,v=g>>>16&255,y=g&65535,!(_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(!(v&240)){for(b=_,x=v,S=y;g=n.distcode[S+((l&(1<<b+x)-1)>>b)],_=g>>>24,v=g>>>16&255,y=g&65535,!(b+_<=u);){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}l>>>=b,u-=b,n.back+=b}if(l>>>=_,u-=_,n.back+=_,v&64){e.msg=`invalid distance code`,n.mode=j;break}n.offset=y,n.extra=v&15,n.mode=Ke;case Ke:if(n.extra){for(D=n.extra;u<D;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}n.offset+=l&(1<<n.extra)-1,l>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg=`invalid distance too far back`,n.mode=j;break}n.mode=qe;case qe:if(c===0)break inf_leave;if(p=f-c,n.offset>p){if(p=n.offset-p,p>n.whave&&n.sane){e.msg=`invalid distance too far back`,n.mode=j;break}p>n.wnext?(p-=n.wnext,m=n.wsize-p):m=n.wnext-p,p>n.length&&(p=n.length),h=n.window}else h=i,m=o-n.offset,p=n.length;p>c&&(p=c),c-=p,n.length-=p;do i[o++]=h[m++];while(--p);n.length===0&&(n.mode=Ue);break;case Je:if(c===0)break inf_leave;i[o++]=n.length,c--,n.mode=Ue;break;case Ye:if(n.wrap){for(;u<32;){if(s===0)break inf_leave;s--,l|=r[a++]<<u,u+=8}if(f-=c,e.total_out+=f,n.total+=f,f&&(e.adler=n.check=n.flags?A(n.check,i,f,o-f):ae(n.check,i,f,o-f)),f=c,(n.flags?l:rt(l))!==n.check){e.msg=`incorrect data check`,n.mode=j;break}l=0,u=0}n.mode=Xe;case Xe:if(n.wrap&&n.flags){for(;u<32;){if(s===0)break inf_leave;s--,l+=r[a++]<<u,u+=8}if(l!==(n.total&4294967295)){e.msg=`incorrect length check`,n.mode=j;break}l=0,u=0}n.mode=Ze;case Ze:w=1;break inf_leave;case j:w=-3;break inf_leave;case Qe:return-4;case $e:default:return-2}return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,n.hold=l,n.bits=u,(n.wsize||f!==e.avail_out&&n.mode<j&&(n.mode<Ye||t!==4))&&mt(e,e.output,e.next_out,f-e.avail_out)?(n.mode=Qe,-4):(d-=e.avail_in,f-=e.avail_out,e.total_in+=d,e.total_out+=f,n.total+=f,n.wrap&&f&&(e.adler=n.check=n.flags?A(n.check,i,f,e.next_out-f):ae(n.check,i,f,e.next_out-f)),e.data_type=n.bits+(n.last?64:0)+(n.mode===Pe?128:0)+(n.mode===He||n.mode===Le?256:0),(d===0&&f===0||t===4)&&w===0&&(w=-5),w)}function gt(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=``,this.state=null,this.data_type=2,this.adler=0}var _t=class{constructor(){this.strm=new gt,this.chunkSize=102400,this.strm.output=new Uint8Array(this.chunkSize),lt(this.strm)}setInput(e){e?(this.strm.input=e,this.strm.avail_in=this.strm.input.length,this.strm.next_in=0):(this.strm.input=null,this.strm.avail_in=0,this.strm.next_in=0)}inflate(e){if(e>this.chunkSize&&(this.chunkSize=e,this.strm.output=new Uint8Array(this.chunkSize)),this.strm.next_out=0,this.strm.avail_out=e,ht(this.strm,0)<0)throw Error(`zlib inflate failed`);if(this.strm.next_out!=e)throw Error(`Incomplete zlib block`);return new Uint8Array(this.strm.output.buffer,0,this.strm.next_out)}reset(){ot(this.strm)}},vt=4,yt=0,bt=1,xt=2;function St(e){for(var t=e.length;--t>=0;)e[t]=0}var Ct=0,wt=1,Tt=2,Et=3,Dt=258,Ot=29,kt=256,At=kt+1+Ot,jt=30,Mt=19,Nt=2*At+1,Pt=15,Ft=16,It=7,Lt=256,Rt=16,zt=17,Bt=18,Vt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Ht=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Ut=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Wt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Gt=512,Kt=Array((At+2)*2);St(Kt);var qt=Array(jt*2);St(qt);var Jt=Array(Gt);St(Jt);var Yt=Array(Dt-Et+1);St(Yt);var Xt=Array(Ot);St(Xt);var Zt=Array(jt);St(Zt);function Qt(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}var $t,en,tn;function nn(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function rn(e){return e<256?Jt[e]:Jt[256+(e>>>7)]}function an(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function M(e,t,n){e.bi_valid>Ft-n?(e.bi_buf|=t<<e.bi_valid&65535,an(e,e.bi_buf),e.bi_buf=t>>Ft-e.bi_valid,e.bi_valid+=n-Ft):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function on(e,t,n){M(e,n[t*2],n[t*2+1])}function sn(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function cn(e){e.bi_valid===16?(an(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function ln(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length,l,u,d,f,p,m,h=0;for(f=0;f<=Pt;f++)e.bl_count[f]=0;for(n[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<Nt;l++)u=e.heap[l],f=n[n[u*2+1]*2+1]+1,f>c&&(f=c,h++),n[u*2+1]=f,!(u>r)&&(e.bl_count[f]++,p=0,u>=s&&(p=o[u-s]),m=n[u*2],e.opt_len+=m*(f+p),a&&(e.static_len+=m*(i[u*2+1]+p)));if(h!==0){do{for(f=c-1;e.bl_count[f]===0;)f--;e.bl_count[f]--,e.bl_count[f+1]+=2,e.bl_count[c]--,h-=2}while(h>0);for(f=c;f!==0;f--)for(u=e.bl_count[f];u!==0;)d=e.heap[--l],!(d>r)&&(n[d*2+1]!==f&&(e.opt_len+=(f-n[d*2+1])*n[d*2],n[d*2+1]=f),u--)}}function un(e,t,n){var r=Array(Pt+1),i=0,a,o;for(a=1;a<=Pt;a++)r[a]=i=i+n[a-1]<<1;for(o=0;o<=t;o++){var s=e[o*2+1];s!==0&&(e[o*2]=sn(r[s]++,s))}}function dn(){var e,t,n,r,i,a=Array(Pt+1);for(n=0,r=0;r<Ot-1;r++)for(Xt[r]=n,e=0;e<1<<Vt[r];e++)Yt[n++]=r;for(Yt[n-1]=r,i=0,r=0;r<16;r++)for(Zt[r]=i,e=0;e<1<<Ht[r];e++)Jt[i++]=r;for(i>>=7;r<jt;r++)for(Zt[r]=i<<7,e=0;e<1<<Ht[r]-7;e++)Jt[256+i++]=r;for(t=0;t<=Pt;t++)a[t]=0;for(e=0;e<=143;)Kt[e*2+1]=8,e++,a[8]++;for(;e<=255;)Kt[e*2+1]=9,e++,a[9]++;for(;e<=279;)Kt[e*2+1]=7,e++,a[7]++;for(;e<=287;)Kt[e*2+1]=8,e++,a[8]++;for(un(Kt,At+1,a),e=0;e<jt;e++)qt[e*2+1]=5,qt[e*2]=sn(e,5);$t=new Qt(Kt,Vt,kt+1,At,Pt),en=new Qt(qt,Ht,0,jt,Pt),tn=new Qt([],Ut,0,Mt,It)}function fn(e){var t;for(t=0;t<At;t++)e.dyn_ltree[t*2]=0;for(t=0;t<jt;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Mt;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Lt*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function pn(e){e.bi_valid>8?an(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function mn(e,t,n,r){pn(e),r&&(an(e,n),an(e,~n)),ne(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function hn(e,t,n,r){var i=t*2,a=n*2;return e[i]<e[a]||e[i]===e[a]&&r[t]<=r[n]}function gn(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&hn(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!hn(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function _n(e,t,n){var r,i,a=0,o,s;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+a*2]<<8|e.pending_buf[e.d_buf+a*2+1],i=e.pending_buf[e.l_buf+a],a++,r===0?on(e,i,t):(o=Yt[i],on(e,o+kt+1,t),s=Vt[o],s!==0&&(i-=Xt[o],M(e,i,s)),r--,o=rn(r),on(e,o,n),s=Ht[o],s!==0&&(r-=Zt[o],M(e,r,s)));while(a<e.last_lit);on(e,Lt,t)}function vn(e,t){var n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems,o,s,c=-1,l;for(e.heap_len=0,e.heap_max=Nt,o=0;o<a;o++)n[o*2]===0?n[o*2+1]=0:(e.heap[++e.heap_len]=c=o,e.depth[o]=0);for(;e.heap_len<2;)l=e.heap[++e.heap_len]=c<2?++c:0,n[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=r[l*2+1]);for(t.max_code=c,o=e.heap_len>>1;o>=1;o--)gn(e,n,o);l=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],gn(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,n[l*2]=n[o*2]+n[s*2],e.depth[l]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,n[o*2+1]=n[s*2+1]=l,e.heap[1]=l++,gn(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],ln(e,t),un(n,c,e.bl_count)}function yn(e,t,n){var r,i=-1,a,o=t[1],s=0,c=7,l=4;for(o===0&&(c=138,l=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=t[(r+1)*2+1],!(++s<c&&a===o)&&(s<l?e.bl_tree[a*2]+=s:a===0?s<=10?e.bl_tree[zt*2]++:e.bl_tree[Bt*2]++:(a!==i&&e.bl_tree[a*2]++,e.bl_tree[Rt*2]++),s=0,i=a,o===0?(c=138,l=3):a===o?(c=6,l=3):(c=7,l=4))}function bn(e,t,n){var r,i=-1,a,o=t[1],s=0,c=7,l=4;for(o===0&&(c=138,l=3),r=0;r<=n;r++)if(a=o,o=t[(r+1)*2+1],!(++s<c&&a===o)){if(s<l)do on(e,a,e.bl_tree);while(--s!==0);else a===0?s<=10?(on(e,zt,e.bl_tree),M(e,s-3,3)):(on(e,Bt,e.bl_tree),M(e,s-11,7)):(a!==i&&(on(e,a,e.bl_tree),s--),on(e,Rt,e.bl_tree),M(e,s-3,2));s=0,i=a,o===0?(c=138,l=3):a===o?(c=6,l=3):(c=7,l=4)}}function xn(e){var t;for(yn(e,e.dyn_ltree,e.l_desc.max_code),yn(e,e.dyn_dtree,e.d_desc.max_code),vn(e,e.bl_desc),t=Mt-1;t>=3&&e.bl_tree[Wt[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function Sn(e,t,n,r){var i;for(M(e,t-257,5),M(e,n-1,5),M(e,r-4,4),i=0;i<r;i++)M(e,e.bl_tree[Wt[i]*2+1],3);bn(e,e.dyn_ltree,t-1),bn(e,e.dyn_dtree,n-1)}function Cn(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return yt;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return bt;for(n=32;n<kt;n++)if(e.dyn_ltree[n*2]!==0)return bt;return yt}var wn=!1;function Tn(e){wn||=(dn(),!0),e.l_desc=new nn(e.dyn_ltree,$t),e.d_desc=new nn(e.dyn_dtree,en),e.bl_desc=new nn(e.bl_tree,tn),e.bi_buf=0,e.bi_valid=0,fn(e)}function En(e,t,n,r){M(e,(Ct<<1)+ +!!r,3),mn(e,t,n,!0)}function Dn(e){M(e,wt<<1,3),on(e,Lt,Kt),cn(e)}function On(e,t,n,r){var i,a,o=0;e.level>0?(e.strm.data_type===xt&&(e.strm.data_type=Cn(e)),vn(e,e.l_desc),vn(e,e.d_desc),o=xn(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&t!==-1?En(e,t,n,r):e.strategy===vt||a===i?(M(e,(wt<<1)+ +!!r,3),_n(e,Kt,qt)):(M(e,(Tt<<1)+ +!!r,3),Sn(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),_n(e,e.dyn_ltree,e.dyn_dtree)),fn(e),r&&pn(e)}function kn(e,t,n){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=n&255,e.last_lit++,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(Yt[n]+kt+1)*2]++,e.dyn_dtree[rn(t)*2]++),e.last_lit===e.lit_bufsize-1}var An={2:`need dictionary`,1:`stream end`,0:``,"-1":`file error`,"-2":`stream error`,"-3":`data error`,"-4":`insufficient memory`,"-5":`buffer error`,"-6":`incompatible version`},jn=9,Mn=15,Nn=8,Pn=286,Fn=30,In=19,Ln=2*Pn+1,Rn=15,N=3,zn=258,Bn=zn+N+1,Vn=32,Hn=42,Un=69,Wn=73,Gn=91,Kn=103,qn=113,Jn=666,P=1,Yn=2,Xn=3,Zn=4,Qn=3;function $n(e,t){return e.msg=An[t],t}function er(e){return(e<<1)-(e>4?9:0)}function tr(e){for(var t=e.length;--t>=0;)e[t]=0}function nr(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(ne(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))}function F(e,t){On(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,nr(e.strm)}function I(e,t){e.pending_buf[e.pending++]=t}function rr(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function ir(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,ne(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=ae(e.adler,t,i,n):e.state.wrap===2&&(e.adler=A(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function ar(e,t){var n=e.max_chain_length,r=e.strstart,i,a,o=e.prev_length,s=e.nice_match,c=e.strstart>e.w_size-Bn?e.strstart-(e.w_size-Bn):0,l=e.window,u=e.w_mask,d=e.prev,f=e.strstart+zn,p=l[r+o-1],m=l[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,l[i+o]===m&&l[i+o-1]===p&&l[i]===l[r]&&l[++i]===l[r+1]){r+=2,i++;do;while(l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&l[++r]===l[++i]&&r<f);if(a=zn-(f-r),r=f-zn,a>o){if(e.match_start=t,o=a,a>=s)break;p=l[r+o-1],m=l[r+o]}}while((t=d[t&u])>c&&--n!==0);return o<=e.lookahead?o:e.lookahead}function or(e){var t=e.w_size,n,r,i,a,o;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Bn)){ne(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,n=r;do i=e.head[--n],e.head[n]=i>=t?i-t:0;while(--r);r=t,n=r;do i=e.prev[--n],e.prev[n]=i>=t?i-t:0;while(--r);a+=t}if(e.strm.avail_in===0)break;if(r=ir(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=r,e.lookahead+e.insert>=N)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+N-1])&e.hash_mask,e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert<N)););}while(e.lookahead<Bn&&e.strm.avail_in!==0)}function sr(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(or(e),e.lookahead===0&&t===0)return P;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((e.strstart===0||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,F(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Bn&&(F(e,!1),e.strm.avail_out===0))return P}return e.insert=0,t===4?(F(e,!0),e.strm.avail_out===0?Xn:Zn):(e.strstart>e.block_start&&(F(e,!1),e.strm.avail_out),P)}function cr(e,t){for(var n,r;;){if(e.lookahead<Bn){if(or(e),e.lookahead<Bn&&t===0)return P;if(e.lookahead===0)break}if(n=0,e.lookahead>=N&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+N-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-Bn&&(e.match_length=ar(e,n)),e.match_length>=N){if(r=kn(e,e.strstart-e.match_start,e.match_length-N),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=N){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+N-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask}else r=kn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(F(e,!1),e.strm.avail_out===0))return P}return e.insert=e.strstart<N-1?e.strstart:N-1,t===4?(F(e,!0),e.strm.avail_out===0?Xn:Zn):e.last_lit&&(F(e,!1),e.strm.avail_out===0)?P:Yn}function lr(e,t){for(var n,r,i;;){if(e.lookahead<Bn){if(or(e),e.lookahead<Bn&&t===0)return P;if(e.lookahead===0)break}if(n=0,e.lookahead>=N&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+N-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=N-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Bn&&(e.match_length=ar(e,n),e.match_length<=5&&(e.strategy===1||e.match_length===N&&e.strstart-e.match_start>4096)&&(e.match_length=N-1)),e.prev_length>=N&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-N,r=kn(e,e.strstart-1-e.prev_match,e.prev_length-N),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+N-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=N-1,e.strstart++,r&&(F(e,!1),e.strm.avail_out===0))return P}else if(e.match_available){if(r=kn(e,0,e.window[e.strstart-1]),r&&F(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return P}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&=(r=kn(e,0,e.window[e.strstart-1]),0),e.insert=e.strstart<N-1?e.strstart:N-1,t===4?(F(e,!0),e.strm.avail_out===0?Xn:Zn):e.last_lit&&(F(e,!1),e.strm.avail_out===0)?P:Yn}function ur(e,t){for(var n,r,i,a,o=e.window;;){if(e.lookahead<=zn){if(or(e),e.lookahead<=zn&&t===0)return P;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=N&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=e.strstart+zn;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);e.match_length=zn-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=N?(n=kn(e,1,e.match_length-N),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=kn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(F(e,!1),e.strm.avail_out===0))return P}return e.insert=0,t===4?(F(e,!0),e.strm.avail_out===0?Xn:Zn):e.last_lit&&(F(e,!1),e.strm.avail_out===0)?P:Yn}function dr(e,t){for(var n;;){if(e.lookahead===0&&(or(e),e.lookahead===0)){if(t===0)return P;break}if(e.match_length=0,n=kn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(F(e,!1),e.strm.avail_out===0))return P}return e.insert=0,t===4?(F(e,!0),e.strm.avail_out===0?Xn:Zn):e.last_lit&&(F(e,!1),e.strm.avail_out===0)?P:Yn}function fr(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}var pr=[new fr(0,0,0,0,sr),new fr(4,4,8,4,cr),new fr(4,5,16,8,cr),new fr(4,6,32,32,cr),new fr(4,4,16,16,lr),new fr(8,16,32,32,lr),new fr(8,16,128,128,lr),new fr(8,32,128,256,lr),new fr(32,128,258,1024,lr),new fr(32,258,258,4096,lr)];function mr(e){e.window_size=2*e.w_size,tr(e.head),e.max_lazy_match=pr[e.level].max_lazy,e.good_match=pr[e.level].good_length,e.nice_match=pr[e.level].nice_length,e.max_chain_length=pr[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=N-1,e.match_available=0,e.ins_h=0}function hr(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=8,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new k(Ln*2),this.dyn_dtree=new k((2*Fn+1)*2),this.bl_tree=new k((2*In+1)*2),tr(this.dyn_ltree),tr(this.dyn_dtree),tr(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new k(Rn+1),this.heap=new k(2*Pn+1),tr(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new k(2*Pn+1),tr(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function gr(e){var t;return!e||!e.state?$n(e,-2):(e.total_in=e.total_out=0,e.data_type=2,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Hn:qn,e.adler=t.wrap===2?0:1,t.last_flush=0,Tn(t),0)}function _r(e){var t=gr(e);return t===0&&mr(e.state),t}function vr(e,t,n,r,i,a){if(!e)return-2;var o=1;if(t===-1&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>jn||n!==8||r<8||r>15||t<0||t>9||a<0||a>4)return $n(e,-2);r===8&&(r=9);var s=new hr;return e.state=s,s.strm=e,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+N-1)/N),s.window=new re(s.w_size*2),s.head=new k(s.hash_size),s.prev=new k(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new re(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=3*s.lit_bufsize,s.level=t,s.strategy=a,s.method=n,_r(e)}function yr(e,t){return vr(e,t,8,Mn,Nn,0)}function br(e,t){var n,r,i,a;if(!e||!e.state||t>5||t<0)return e?$n(e,-2):-2;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===Jn&&t!==4)return $n(e,e.avail_out===0?-5:-2);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===Hn){if(r.wrap===2)e.adler=0,I(r,31),I(r,139),I(r,8),r.gzhead?(I(r,+!!r.gzhead.text+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),I(r,r.gzhead.time&255),I(r,r.gzhead.time>>8&255),I(r,r.gzhead.time>>16&255),I(r,r.gzhead.time>>24&255),I(r,r.level===9?2:r.strategy>=2||r.level<2?4:0),I(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(I(r,r.gzhead.extra.length&255),I(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=A(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=Un):(I(r,0),I(r,0),I(r,0),I(r,0),I(r,0),I(r,r.level===9?2:r.strategy>=2||r.level<2?4:0),I(r,Qn),r.status=qn);else{var o=8+(r.w_bits-8<<4)<<8,s=-1;s=r.strategy>=2||r.level<2?0:r.level<6?1:r.level===6?2:3,o|=s<<6,r.strstart!==0&&(o|=Vn),o+=31-o%31,r.status=qn,rr(r,o),r.strstart!==0&&(rr(r,e.adler>>>16),rr(r,e.adler&65535)),e.adler=1}}if(r.status===Un){if(r.gzhead.extra){for(i=r.pending;r.gzindex<(r.gzhead.extra.length&65535)&&!(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=A(e.adler,r.pending_buf,r.pending-i,i)),nr(e),i=r.pending,r.pending===r.pending_buf_size));)I(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=A(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=Wn)}else r.status=Wn}if(r.status===Wn){if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=A(e.adler,r.pending_buf,r.pending-i,i)),nr(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}a=r.gzindex<r.gzhead.name.length?r.gzhead.name.charCodeAt(r.gzindex++)&255:0,I(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=A(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.gzindex=0,r.status=Gn)}else r.status=Gn}if(r.status===Gn){if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=A(e.adler,r.pending_buf,r.pending-i,i)),nr(e),i=r.pending,r.pending===r.pending_buf_size)){a=1;break}a=r.gzindex<r.gzhead.comment.length?r.gzhead.comment.charCodeAt(r.gzindex++)&255:0,I(r,a)}while(a!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=A(e.adler,r.pending_buf,r.pending-i,i)),a===0&&(r.status=Kn)}else r.status=Kn}if(r.status===Kn&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&nr(e),r.pending+2<=r.pending_buf_size&&(I(r,e.adler&255),I(r,e.adler>>8&255),e.adler=0,r.status=qn)):r.status=qn),r.pending!==0){if(nr(e),e.avail_out===0)return r.last_flush=-1,0}else if(e.avail_in===0&&er(t)<=er(n)&&t!==4)return $n(e,-5);if(r.status===Jn&&e.avail_in!==0)return $n(e,-5);if(e.avail_in!==0||r.lookahead!==0||t!==0&&r.status!==Jn){var c=r.strategy===2?dr(r,t):r.strategy===3?ur(r,t):pr[r.level].func(r,t);if((c===Xn||c===Zn)&&(r.status=Jn),c===P||c===Xn)return e.avail_out===0&&(r.last_flush=-1),0;if(c===Yn&&(t===1?Dn(r):t!==5&&(En(r,0,0,!1),t===3&&(tr(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),nr(e),e.avail_out===0))return r.last_flush=-1,0}return t===4?r.wrap<=0?1:(r.wrap===2?(I(r,e.adler&255),I(r,e.adler>>8&255),I(r,e.adler>>16&255),I(r,e.adler>>24&255),I(r,e.total_in&255),I(r,e.total_in>>8&255),I(r,e.total_in>>16&255),I(r,e.total_in>>24&255)):(rr(r,e.adler>>>16),rr(r,e.adler&65535)),nr(e),r.wrap>0&&(r.wrap=-r.wrap),+(r.pending===0)):0}var xr=class{constructor(){this.strm=new gt,this.chunkSize=102400,this.outputBuffer=new Uint8Array(this.chunkSize),yr(this.strm,-1)}deflate(e){this.strm.input=e,this.strm.avail_in=this.strm.input.length,this.strm.next_in=0,this.strm.output=this.outputBuffer,this.strm.avail_out=this.chunkSize,this.strm.next_out=0;let t=br(this.strm,3),n=new Uint8Array(this.strm.output.buffer,0,this.strm.next_out);if(t<0)throw Error(`zlib deflate failed`);if(this.strm.avail_in>0){let e=[n],r=n.length;do{if(this.strm.output=new Uint8Array(this.chunkSize),this.strm.next_out=0,this.strm.avail_out=this.chunkSize,t=br(this.strm,3),t<0)throw Error(`zlib deflate failed`);let n=new Uint8Array(this.strm.output.buffer,0,this.strm.next_out);r+=n.length,e.push(n)}while(this.strm.avail_in>0);let i=new Uint8Array(r),a=0;for(let t=0;t<e.length;t++)i.set(e[t],a),a+=e[t].length;n=i}return this.strm.input=null,this.strm.avail_in=0,this.strm.next_in=0,n}},L={XK_VoidSymbol:16777215,XK_BackSpace:65288,XK_Tab:65289,XK_Linefeed:65290,XK_Clear:65291,XK_Return:65293,XK_Pause:65299,XK_Scroll_Lock:65300,XK_Sys_Req:65301,XK_Escape:65307,XK_Delete:65535,XK_Multi_key:65312,XK_Codeinput:65335,XK_SingleCandidate:65340,XK_MultipleCandidate:65341,XK_PreviousCandidate:65342,XK_Kanji:65313,XK_Muhenkan:65314,XK_Henkan_Mode:65315,XK_Henkan:65315,XK_Romaji:65316,XK_Hiragana:65317,XK_Katakana:65318,XK_Hiragana_Katakana:65319,XK_Zenkaku:65320,XK_Hankaku:65321,XK_Zenkaku_Hankaku:65322,XK_Touroku:65323,XK_Massyo:65324,XK_Kana_Lock:65325,XK_Kana_Shift:65326,XK_Eisu_Shift:65327,XK_Eisu_toggle:65328,XK_Kanji_Bangou:65335,XK_Zen_Koho:65341,XK_Mae_Koho:65342,XK_Home:65360,XK_Left:65361,XK_Up:65362,XK_Right:65363,XK_Down:65364,XK_Prior:65365,XK_Page_Up:65365,XK_Next:65366,XK_Page_Down:65366,XK_End:65367,XK_Begin:65368,XK_Select:65376,XK_Print:65377,XK_Execute:65378,XK_Insert:65379,XK_Undo:65381,XK_Redo:65382,XK_Menu:65383,XK_Find:65384,XK_Cancel:65385,XK_Help:65386,XK_Break:65387,XK_Mode_switch:65406,XK_script_switch:65406,XK_Num_Lock:65407,XK_KP_Space:65408,XK_KP_Tab:65417,XK_KP_Enter:65421,XK_KP_F1:65425,XK_KP_F2:65426,XK_KP_F3:65427,XK_KP_F4:65428,XK_KP_Home:65429,XK_KP_Left:65430,XK_KP_Up:65431,XK_KP_Right:65432,XK_KP_Down:65433,XK_KP_Prior:65434,XK_KP_Page_Up:65434,XK_KP_Next:65435,XK_KP_Page_Down:65435,XK_KP_End:65436,XK_KP_Begin:65437,XK_KP_Insert:65438,XK_KP_Delete:65439,XK_KP_Equal:65469,XK_KP_Multiply:65450,XK_KP_Add:65451,XK_KP_Separator:65452,XK_KP_Subtract:65453,XK_KP_Decimal:65454,XK_KP_Divide:65455,XK_KP_0:65456,XK_KP_1:65457,XK_KP_2:65458,XK_KP_3:65459,XK_KP_4:65460,XK_KP_5:65461,XK_KP_6:65462,XK_KP_7:65463,XK_KP_8:65464,XK_KP_9:65465,XK_F1:65470,XK_F2:65471,XK_F3:65472,XK_F4:65473,XK_F5:65474,XK_F6:65475,XK_F7:65476,XK_F8:65477,XK_F9:65478,XK_F10:65479,XK_F11:65480,XK_L1:65480,XK_F12:65481,XK_L2:65481,XK_F13:65482,XK_L3:65482,XK_F14:65483,XK_L4:65483,XK_F15:65484,XK_L5:65484,XK_F16:65485,XK_L6:65485,XK_F17:65486,XK_L7:65486,XK_F18:65487,XK_L8:65487,XK_F19:65488,XK_L9:65488,XK_F20:65489,XK_L10:65489,XK_F21:65490,XK_R1:65490,XK_F22:65491,XK_R2:65491,XK_F23:65492,XK_R3:65492,XK_F24:65493,XK_R4:65493,XK_F25:65494,XK_R5:65494,XK_F26:65495,XK_R6:65495,XK_F27:65496,XK_R7:65496,XK_F28:65497,XK_R8:65497,XK_F29:65498,XK_R9:65498,XK_F30:65499,XK_R10:65499,XK_F31:65500,XK_R11:65500,XK_F32:65501,XK_R12:65501,XK_F33:65502,XK_R13:65502,XK_F34:65503,XK_R14:65503,XK_F35:65504,XK_R15:65504,XK_Shift_L:65505,XK_Shift_R:65506,XK_Control_L:65507,XK_Control_R:65508,XK_Caps_Lock:65509,XK_Shift_Lock:65510,XK_Meta_L:65511,XK_Meta_R:65512,XK_Alt_L:65513,XK_Alt_R:65514,XK_Super_L:65515,XK_Super_R:65516,XK_Hyper_L:65517,XK_Hyper_R:65518,XK_ISO_Level3_Shift:65027,XK_ISO_Next_Group:65032,XK_ISO_Prev_Group:65034,XK_ISO_First_Group:65036,XK_ISO_Last_Group:65038,XK_space:32,XK_exclam:33,XK_quotedbl:34,XK_numbersign:35,XK_dollar:36,XK_percent:37,XK_ampersand:38,XK_apostrophe:39,XK_quoteright:39,XK_parenleft:40,XK_parenright:41,XK_asterisk:42,XK_plus:43,XK_comma:44,XK_minus:45,XK_period:46,XK_slash:47,XK_0:48,XK_1:49,XK_2:50,XK_3:51,XK_4:52,XK_5:53,XK_6:54,XK_7:55,XK_8:56,XK_9:57,XK_colon:58,XK_semicolon:59,XK_less:60,XK_equal:61,XK_greater:62,XK_question:63,XK_at:64,XK_A:65,XK_B:66,XK_C:67,XK_D:68,XK_E:69,XK_F:70,XK_G:71,XK_H:72,XK_I:73,XK_J:74,XK_K:75,XK_L:76,XK_M:77,XK_N:78,XK_O:79,XK_P:80,XK_Q:81,XK_R:82,XK_S:83,XK_T:84,XK_U:85,XK_V:86,XK_W:87,XK_X:88,XK_Y:89,XK_Z:90,XK_bracketleft:91,XK_backslash:92,XK_bracketright:93,XK_asciicircum:94,XK_underscore:95,XK_grave:96,XK_quoteleft:96,XK_a:97,XK_b:98,XK_c:99,XK_d:100,XK_e:101,XK_f:102,XK_g:103,XK_h:104,XK_i:105,XK_j:106,XK_k:107,XK_l:108,XK_m:109,XK_n:110,XK_o:111,XK_p:112,XK_q:113,XK_r:114,XK_s:115,XK_t:116,XK_u:117,XK_v:118,XK_w:119,XK_x:120,XK_y:121,XK_z:122,XK_braceleft:123,XK_bar:124,XK_braceright:125,XK_asciitilde:126,XK_nobreakspace:160,XK_exclamdown:161,XK_cent:162,XK_sterling:163,XK_currency:164,XK_yen:165,XK_brokenbar:166,XK_section:167,XK_diaeresis:168,XK_copyright:169,XK_ordfeminine:170,XK_guillemotleft:171,XK_notsign:172,XK_hyphen:173,XK_registered:174,XK_macron:175,XK_degree:176,XK_plusminus:177,XK_twosuperior:178,XK_threesuperior:179,XK_acute:180,XK_mu:181,XK_paragraph:182,XK_periodcentered:183,XK_cedilla:184,XK_onesuperior:185,XK_masculine:186,XK_guillemotright:187,XK_onequarter:188,XK_onehalf:189,XK_threequarters:190,XK_questiondown:191,XK_Agrave:192,XK_Aacute:193,XK_Acircumflex:194,XK_Atilde:195,XK_Adiaeresis:196,XK_Aring:197,XK_AE:198,XK_Ccedilla:199,XK_Egrave:200,XK_Eacute:201,XK_Ecircumflex:202,XK_Ediaeresis:203,XK_Igrave:204,XK_Iacute:205,XK_Icircumflex:206,XK_Idiaeresis:207,XK_ETH:208,XK_Eth:208,XK_Ntilde:209,XK_Ograve:210,XK_Oacute:211,XK_Ocircumflex:212,XK_Otilde:213,XK_Odiaeresis:214,XK_multiply:215,XK_Oslash:216,XK_Ooblique:216,XK_Ugrave:217,XK_Uacute:218,XK_Ucircumflex:219,XK_Udiaeresis:220,XK_Yacute:221,XK_THORN:222,XK_Thorn:222,XK_ssharp:223,XK_agrave:224,XK_aacute:225,XK_acircumflex:226,XK_atilde:227,XK_adiaeresis:228,XK_aring:229,XK_ae:230,XK_ccedilla:231,XK_egrave:232,XK_eacute:233,XK_ecircumflex:234,XK_ediaeresis:235,XK_igrave:236,XK_iacute:237,XK_icircumflex:238,XK_idiaeresis:239,XK_eth:240,XK_ntilde:241,XK_ograve:242,XK_oacute:243,XK_ocircumflex:244,XK_otilde:245,XK_odiaeresis:246,XK_division:247,XK_oslash:248,XK_ooblique:248,XK_ugrave:249,XK_uacute:250,XK_ucircumflex:251,XK_udiaeresis:252,XK_yacute:253,XK_thorn:254,XK_ydiaeresis:255,XK_Hangul:65329,XK_Hangul_Hanja:65332,XK_Hangul_Jeonja:65336,XF86XK_ModeLock:269025025,XF86XK_MonBrightnessUp:269025026,XF86XK_MonBrightnessDown:269025027,XF86XK_KbdLightOnOff:269025028,XF86XK_KbdBrightnessUp:269025029,XF86XK_KbdBrightnessDown:269025030,XF86XK_Standby:269025040,XF86XK_AudioLowerVolume:269025041,XF86XK_AudioMute:269025042,XF86XK_AudioRaiseVolume:269025043,XF86XK_AudioPlay:269025044,XF86XK_AudioStop:269025045,XF86XK_AudioPrev:269025046,XF86XK_AudioNext:269025047,XF86XK_HomePage:269025048,XF86XK_Mail:269025049,XF86XK_Start:269025050,XF86XK_Search:269025051,XF86XK_AudioRecord:269025052,XF86XK_Calculator:269025053,XF86XK_Memo:269025054,XF86XK_ToDoList:269025055,XF86XK_Calendar:269025056,XF86XK_PowerDown:269025057,XF86XK_ContrastAdjust:269025058,XF86XK_RockerUp:269025059,XF86XK_RockerDown:269025060,XF86XK_RockerEnter:269025061,XF86XK_Back:269025062,XF86XK_Forward:269025063,XF86XK_Stop:269025064,XF86XK_Refresh:269025065,XF86XK_PowerOff:269025066,XF86XK_WakeUp:269025067,XF86XK_Eject:269025068,XF86XK_ScreenSaver:269025069,XF86XK_WWW:269025070,XF86XK_Sleep:269025071,XF86XK_Favorites:269025072,XF86XK_AudioPause:269025073,XF86XK_AudioMedia:269025074,XF86XK_MyComputer:269025075,XF86XK_VendorHome:269025076,XF86XK_LightBulb:269025077,XF86XK_Shop:269025078,XF86XK_History:269025079,XF86XK_OpenURL:269025080,XF86XK_AddFavorite:269025081,XF86XK_HotLinks:269025082,XF86XK_BrightnessAdjust:269025083,XF86XK_Finance:269025084,XF86XK_Community:269025085,XF86XK_AudioRewind:269025086,XF86XK_BackForward:269025087,XF86XK_Launch0:269025088,XF86XK_Launch1:269025089,XF86XK_Launch2:269025090,XF86XK_Launch3:269025091,XF86XK_Launch4:269025092,XF86XK_Launch5:269025093,XF86XK_Launch6:269025094,XF86XK_Launch7:269025095,XF86XK_Launch8:269025096,XF86XK_Launch9:269025097,XF86XK_LaunchA:269025098,XF86XK_LaunchB:269025099,XF86XK_LaunchC:269025100,XF86XK_LaunchD:269025101,XF86XK_LaunchE:269025102,XF86XK_LaunchF:269025103,XF86XK_ApplicationLeft:269025104,XF86XK_ApplicationRight:269025105,XF86XK_Book:269025106,XF86XK_CD:269025107,XF86XK_Calculater:269025108,XF86XK_Clear:269025109,XF86XK_Close:269025110,XF86XK_Copy:269025111,XF86XK_Cut:269025112,XF86XK_Display:269025113,XF86XK_DOS:269025114,XF86XK_Documents:269025115,XF86XK_Excel:269025116,XF86XK_Explorer:269025117,XF86XK_Game:269025118,XF86XK_Go:269025119,XF86XK_iTouch:269025120,XF86XK_LogOff:269025121,XF86XK_Market:269025122,XF86XK_Meeting:269025123,XF86XK_MenuKB:269025125,XF86XK_MenuPB:269025126,XF86XK_MySites:269025127,XF86XK_New:269025128,XF86XK_News:269025129,XF86XK_OfficeHome:269025130,XF86XK_Open:269025131,XF86XK_Option:269025132,XF86XK_Paste:269025133,XF86XK_Phone:269025134,XF86XK_Q:269025136,XF86XK_Reply:269025138,XF86XK_Reload:269025139,XF86XK_RotateWindows:269025140,XF86XK_RotationPB:269025141,XF86XK_RotationKB:269025142,XF86XK_Save:269025143,XF86XK_ScrollUp:269025144,XF86XK_ScrollDown:269025145,XF86XK_ScrollClick:269025146,XF86XK_Send:269025147,XF86XK_Spell:269025148,XF86XK_SplitScreen:269025149,XF86XK_Support:269025150,XF86XK_TaskPane:269025151,XF86XK_Terminal:269025152,XF86XK_Tools:269025153,XF86XK_Travel:269025154,XF86XK_UserPB:269025156,XF86XK_User1KB:269025157,XF86XK_User2KB:269025158,XF86XK_Video:269025159,XF86XK_WheelButton:269025160,XF86XK_Word:269025161,XF86XK_Xfer:269025162,XF86XK_ZoomIn:269025163,XF86XK_ZoomOut:269025164,XF86XK_Away:269025165,XF86XK_Messenger:269025166,XF86XK_WebCam:269025167,XF86XK_MailForward:269025168,XF86XK_Pictures:269025169,XF86XK_Music:269025170,XF86XK_Battery:269025171,XF86XK_Bluetooth:269025172,XF86XK_WLAN:269025173,XF86XK_UWB:269025174,XF86XK_AudioForward:269025175,XF86XK_AudioRepeat:269025176,XF86XK_AudioRandomPlay:269025177,XF86XK_Subtitle:269025178,XF86XK_AudioCycleTrack:269025179,XF86XK_CycleAngle:269025180,XF86XK_FrameBack:269025181,XF86XK_FrameForward:269025182,XF86XK_Time:269025183,XF86XK_Select:269025184,XF86XK_View:269025185,XF86XK_TopMenu:269025186,XF86XK_Red:269025187,XF86XK_Green:269025188,XF86XK_Yellow:269025189,XF86XK_Blue:269025190,XF86XK_Suspend:269025191,XF86XK_Hibernate:269025192,XF86XK_TouchpadToggle:269025193,XF86XK_TouchpadOn:269025200,XF86XK_TouchpadOff:269025201,XF86XK_AudioMicMute:269025202,XF86XK_Switch_VT_1:269024769,XF86XK_Switch_VT_2:269024770,XF86XK_Switch_VT_3:269024771,XF86XK_Switch_VT_4:269024772,XF86XK_Switch_VT_5:269024773,XF86XK_Switch_VT_6:269024774,XF86XK_Switch_VT_7:269024775,XF86XK_Switch_VT_8:269024776,XF86XK_Switch_VT_9:269024777,XF86XK_Switch_VT_10:269024778,XF86XK_Switch_VT_11:269024779,XF86XK_Switch_VT_12:269024780,XF86XK_Ungrab:269024800,XF86XK_ClearGrab:269024801,XF86XK_Next_VMode:269024802,XF86XK_Prev_VMode:269024803,XF86XK_LogWindowTree:269024804,XF86XK_LogGrabInfo:269024805},Sr={256:960,257:992,258:451,259:483,260:417,261:433,262:454,263:486,264:710,265:742,266:709,267:741,268:456,269:488,270:463,271:495,272:464,273:496,274:938,275:954,278:972,279:1004,280:458,281:490,282:460,283:492,284:728,285:760,286:683,287:699,288:725,289:757,290:939,291:955,292:678,293:694,294:673,295:689,296:933,297:949,298:975,299:1007,302:967,303:999,304:681,305:697,308:684,309:700,310:979,311:1011,312:930,313:453,314:485,315:934,316:950,317:421,318:437,321:419,322:435,323:465,324:497,325:977,326:1009,327:466,328:498,330:957,331:959,332:978,333:1010,336:469,337:501,338:5052,339:5053,340:448,341:480,342:931,343:947,344:472,345:504,346:422,347:438,348:734,349:766,350:426,351:442,352:425,353:441,354:478,355:510,356:427,357:443,358:940,359:956,360:989,361:1021,362:990,363:1022,364:733,365:765,366:473,367:505,368:475,369:507,370:985,371:1017,376:5054,377:428,378:444,379:431,380:447,381:430,382:446,402:2294,466:16777681,711:439,728:418,729:511,731:434,733:445,901:1966,902:1953,904:1954,905:1955,906:1956,908:1959,910:1960,911:1963,912:1974,913:1985,914:1986,915:1987,916:1988,917:1989,918:1990,919:1991,920:1992,921:1993,922:1994,923:1995,924:1996,925:1997,926:1998,927:1999,928:2e3,929:2001,931:2002,932:2004,933:2005,934:2006,935:2007,936:2008,937:2009,938:1957,939:1961,940:1969,941:1970,942:1971,943:1972,944:1978,945:2017,946:2018,947:2019,948:2020,949:2021,950:2022,951:2023,952:2024,953:2025,954:2026,955:2027,956:2028,957:2029,958:2030,959:2031,960:2032,961:2033,962:2035,963:2034,964:2036,965:2037,966:2038,967:2039,968:2040,969:2041,970:1973,971:1977,972:1975,973:1976,974:1979,1025:1715,1026:1713,1027:1714,1028:1716,1029:1717,1030:1718,1031:1719,1032:1720,1033:1721,1034:1722,1035:1723,1036:1724,1038:1726,1039:1727,1040:1761,1041:1762,1042:1783,1043:1767,1044:1764,1045:1765,1046:1782,1047:1786,1048:1769,1049:1770,1050:1771,1051:1772,1052:1773,1053:1774,1054:1775,1055:1776,1056:1778,1057:1779,1058:1780,1059:1781,1060:1766,1061:1768,1062:1763,1063:1790,1064:1787,1065:1789,1066:1791,1067:1785,1068:1784,1069:1788,1070:1760,1071:1777,1072:1729,1073:1730,1074:1751,1075:1735,1076:1732,1077:1733,1078:1750,1079:1754,1080:1737,1081:1738,1082:1739,1083:1740,1084:1741,1085:1742,1086:1743,1087:1744,1088:1746,1089:1747,1090:1748,1091:1749,1092:1734,1093:1736,1094:1731,1095:1758,1096:1755,1097:1757,1098:1759,1099:1753,1100:1752,1101:1756,1102:1728,1103:1745,1105:1699,1106:1697,1107:1698,1108:1700,1109:1701,1110:1702,1111:1703,1112:1704,1113:1705,1114:1706,1115:1707,1116:1708,1118:1710,1119:1711,1168:1725,1169:1709,1488:3296,1489:3297,1490:3298,1491:3299,1492:3300,1493:3301,1494:3302,1495:3303,1496:3304,1497:3305,1498:3306,1499:3307,1500:3308,1501:3309,1502:3310,1503:3311,1504:3312,1505:3313,1506:3314,1507:3315,1508:3316,1509:3317,1510:3318,1511:3319,1512:3320,1513:3321,1514:3322,1548:1452,1563:1467,1567:1471,1569:1473,1570:1474,1571:1475,1572:1476,1573:1477,1574:1478,1575:1479,1576:1480,1577:1481,1578:1482,1579:1483,1580:1484,1581:1485,1582:1486,1583:1487,1584:1488,1585:1489,1586:1490,1587:1491,1588:1492,1589:1493,1590:1494,1591:1495,1592:1496,1593:1497,1594:1498,1600:1504,1601:1505,1602:1506,1603:1507,1604:1508,1605:1509,1606:1510,1607:1511,1608:1512,1609:1513,1610:1514,1611:1515,1612:1516,1613:1517,1614:1518,1615:1519,1616:1520,1617:1521,1618:1522,3585:3489,3586:3490,3587:3491,3588:3492,3589:3493,3590:3494,3591:3495,3592:3496,3593:3497,3594:3498,3595:3499,3596:3500,3597:3501,3598:3502,3599:3503,3600:3504,3601:3505,3602:3506,3603:3507,3604:3508,3605:3509,3606:3510,3607:3511,3608:3512,3609:3513,3610:3514,3611:3515,3612:3516,3613:3517,3614:3518,3615:3519,3616:3520,3617:3521,3618:3522,3619:3523,3620:3524,3621:3525,3622:3526,3623:3527,3624:3528,3625:3529,3626:3530,3627:3531,3628:3532,3629:3533,3630:3534,3631:3535,3632:3536,3633:3537,3634:3538,3635:3539,3636:3540,3637:3541,3638:3542,3639:3543,3640:3544,3641:3545,3642:3546,3647:3551,3648:3552,3649:3553,3650:3554,3651:3555,3652:3556,3653:3557,3654:3558,3655:3559,3656:3560,3657:3561,3658:3562,3659:3563,3660:3564,3661:3565,3664:3568,3665:3569,3666:3570,3667:3571,3668:3572,3669:3573,3670:3574,3671:3575,3672:3576,3673:3577,8194:2722,8195:2721,8196:2723,8197:2724,8199:2725,8200:2726,8201:2727,8202:2728,8210:2747,8211:2730,8212:2729,8213:1967,8215:3295,8216:2768,8217:2769,8218:2813,8220:2770,8221:2771,8222:2814,8224:2801,8225:2802,8226:2790,8229:2735,8230:2734,8240:2773,8242:2774,8243:2775,8248:2812,8254:1150,8361:3839,8364:8364,8453:2744,8470:1712,8471:2811,8478:2772,8482:2761,8531:2736,8532:2737,8533:2738,8534:2739,8535:2740,8536:2741,8537:2742,8538:2743,8539:2755,8540:2756,8541:2757,8542:2758,8592:2299,8593:2300,8594:2301,8595:2302,8658:2254,8660:2253,8706:2287,8711:2245,8728:3018,8730:2262,8733:2241,8734:2242,8743:2270,8744:2271,8745:2268,8746:2269,8747:2239,8756:2240,8764:2248,8771:2249,8773:16785992,8800:2237,8801:2255,8804:2236,8805:2238,8834:2266,8835:2267,8866:3068,8867:3036,8868:3010,8869:3022,8968:3027,8970:3012,8981:2810,8992:2212,8993:2213,9109:3020,9115:2219,9117:2220,9118:2221,9120:2222,9121:2215,9123:2216,9124:2217,9126:2218,9128:2223,9132:2224,9143:2209,9146:2543,9147:2544,9148:2546,9149:2547,9225:2530,9226:2533,9227:2537,9228:2531,9229:2532,9251:2732,9252:2536,9472:2211,9474:2214,9484:2210,9488:2539,9492:2541,9496:2538,9500:2548,9508:2549,9516:2551,9524:2550,9532:2542,9618:2529,9642:2791,9643:2785,9644:2779,9645:2786,9646:2783,9647:2767,9650:2792,9651:2787,9654:2781,9655:2765,9660:2793,9661:2788,9664:2780,9665:2764,9670:2528,9675:2766,9679:2782,9702:2784,9734:2789,9742:2809,9747:2762,9756:2794,9758:2795,9792:2808,9794:2807,9827:2796,9829:2798,9830:2797,9837:2806,9839:2805,10003:2803,10007:2804,10013:2777,10016:2800,10216:2748,10217:2750,12289:1188,12290:1185,12300:1186,12301:1187,12443:1246,12444:1247,12449:1191,12450:1201,12451:1192,12452:1202,12453:1193,12454:1203,12455:1194,12456:1204,12457:1195,12458:1205,12459:1206,12461:1207,12463:1208,12465:1209,12467:1210,12469:1211,12471:1212,12473:1213,12475:1214,12477:1215,12479:1216,12481:1217,12483:1199,12484:1218,12486:1219,12488:1220,12490:1221,12491:1222,12492:1223,12493:1224,12494:1225,12495:1226,12498:1227,12501:1228,12504:1229,12507:1230,12510:1231,12511:1232,12512:1233,12513:1234,12514:1235,12515:1196,12516:1236,12517:1197,12518:1237,12519:1198,12520:1238,12521:1239,12522:1240,12523:1241,12524:1242,12525:1243,12527:1244,12530:1190,12531:1245,12539:1189,12540:1200},Cr={lookup(e){if(e>=32&&e<=255)return e;let t=Sr[e];return t===void 0?16777216|e:t}},wr={8:`Backspace`,9:`Tab`,10:`NumpadClear`,13:`Enter`,16:`ShiftLeft`,17:`ControlLeft`,18:`AltLeft`,19:`Pause`,20:`CapsLock`,21:`Lang1`,25:`Lang2`,27:`Escape`,28:`Convert`,29:`NonConvert`,32:`Space`,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,41:`Select`,44:`PrintScreen`,45:`Insert`,46:`Delete`,47:`Help`,48:`Digit0`,49:`Digit1`,50:`Digit2`,51:`Digit3`,52:`Digit4`,53:`Digit5`,54:`Digit6`,55:`Digit7`,56:`Digit8`,57:`Digit9`,91:`MetaLeft`,92:`MetaRight`,93:`ContextMenu`,95:`Sleep`,96:`Numpad0`,97:`Numpad1`,98:`Numpad2`,99:`Numpad3`,100:`Numpad4`,101:`Numpad5`,102:`Numpad6`,103:`Numpad7`,104:`Numpad8`,105:`Numpad9`,106:`NumpadMultiply`,107:`NumpadAdd`,108:`NumpadDecimal`,109:`NumpadSubtract`,110:`NumpadDecimal`,111:`NumpadDivide`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,124:`F13`,125:`F14`,126:`F15`,127:`F16`,128:`F17`,129:`F18`,130:`F19`,131:`F20`,132:`F21`,133:`F22`,134:`F23`,135:`F24`,144:`NumLock`,145:`ScrollLock`,166:`BrowserBack`,167:`BrowserForward`,168:`BrowserRefresh`,169:`BrowserStop`,170:`BrowserSearch`,171:`BrowserFavorites`,172:`BrowserHome`,173:`AudioVolumeMute`,174:`AudioVolumeDown`,175:`AudioVolumeUp`,176:`MediaTrackNext`,177:`MediaTrackPrevious`,178:`MediaStop`,179:`MediaPlayPause`,180:`LaunchMail`,181:`MediaSelect`,182:`LaunchApp1`,183:`LaunchApp2`,225:`AltRight`},Tr={Backspace:`Backspace`,AltLeft:`Alt`,AltRight:`Alt`,CapsLock:`CapsLock`,ContextMenu:`ContextMenu`,ControlLeft:`Control`,ControlRight:`Control`,Enter:`Enter`,MetaLeft:`Meta`,MetaRight:`Meta`,ShiftLeft:`Shift`,ShiftRight:`Shift`,Tab:`Tab`,Delete:`Delete`,End:`End`,Help:`Help`,Home:`Home`,Insert:`Insert`,PageDown:`PageDown`,PageUp:`PageUp`,ArrowDown:`ArrowDown`,ArrowLeft:`ArrowLeft`,ArrowRight:`ArrowRight`,ArrowUp:`ArrowUp`,NumLock:`NumLock`,NumpadBackspace:`Backspace`,NumpadClear:`Clear`,Escape:`Escape`,F1:`F1`,F2:`F2`,F3:`F3`,F4:`F4`,F5:`F5`,F6:`F6`,F7:`F7`,F8:`F8`,F9:`F9`,F10:`F10`,F11:`F11`,F12:`F12`,F13:`F13`,F14:`F14`,F15:`F15`,F16:`F16`,F17:`F17`,F18:`F18`,F19:`F19`,F20:`F20`,F21:`F21`,F22:`F22`,F23:`F23`,F24:`F24`,F25:`F25`,F26:`F26`,F27:`F27`,F28:`F28`,F29:`F29`,F30:`F30`,F31:`F31`,F32:`F32`,F33:`F33`,F34:`F34`,F35:`F35`,PrintScreen:`PrintScreen`,ScrollLock:`ScrollLock`,Pause:`Pause`,BrowserBack:`BrowserBack`,BrowserFavorites:`BrowserFavorites`,BrowserForward:`BrowserForward`,BrowserHome:`BrowserHome`,BrowserRefresh:`BrowserRefresh`,BrowserSearch:`BrowserSearch`,BrowserStop:`BrowserStop`,Eject:`Eject`,LaunchApp1:`LaunchMyComputer`,LaunchApp2:`LaunchCalendar`,LaunchMail:`LaunchMail`,MediaPlayPause:`MediaPlay`,MediaStop:`MediaStop`,MediaTrackNext:`MediaTrackNext`,MediaTrackPrevious:`MediaTrackPrevious`,Power:`Power`,Sleep:`Sleep`,AudioVolumeDown:`AudioVolumeDown`,AudioVolumeMute:`AudioVolumeMute`,AudioVolumeUp:`AudioVolumeUp`,WakeUp:`WakeUp`},Er={};function R(e,t){if(t===void 0)throw Error(`Undefined keysym for key "`+e+`"`);if(e in Er)throw Error(`Duplicate entry for key "`+e+`"`);Er[e]=[t,t,t,t]}function Dr(e,t,n){if(t===void 0||n===void 0)throw Error(`Undefined keysym for key "`+e+`"`);if(e in Er)throw Error(`Duplicate entry for key "`+e+`"`);Er[e]=[t,t,n,t]}function z(e,t,n){if(t===void 0||n===void 0)throw Error(`Undefined keysym for key "`+e+`"`);if(e in Er)throw Error(`Duplicate entry for key "`+e+`"`);Er[e]=[t,t,t,n]}Dr(`Alt`,L.XK_Alt_L,L.XK_Alt_R),R(`AltGraph`,L.XK_ISO_Level3_Shift),R(`CapsLock`,L.XK_Caps_Lock),Dr(`Control`,L.XK_Control_L,L.XK_Control_R),Dr(`Meta`,L.XK_Super_L,L.XK_Super_R),R(`NumLock`,L.XK_Num_Lock),R(`ScrollLock`,L.XK_Scroll_Lock),Dr(`Shift`,L.XK_Shift_L,L.XK_Shift_R),z(`Enter`,L.XK_Return,L.XK_KP_Enter),R(`Tab`,L.XK_Tab),z(` `,L.XK_space,L.XK_KP_Space),z(`ArrowDown`,L.XK_Down,L.XK_KP_Down),z(`ArrowLeft`,L.XK_Left,L.XK_KP_Left),z(`ArrowRight`,L.XK_Right,L.XK_KP_Right),z(`ArrowUp`,L.XK_Up,L.XK_KP_Up),z(`End`,L.XK_End,L.XK_KP_End),z(`Home`,L.XK_Home,L.XK_KP_Home),z(`PageDown`,L.XK_Next,L.XK_KP_Next),z(`PageUp`,L.XK_Prior,L.XK_KP_Prior),R(`Backspace`,L.XK_BackSpace),z(`Clear`,L.XK_Clear,L.XK_KP_Begin),R(`Copy`,L.XF86XK_Copy),R(`Cut`,L.XF86XK_Cut),z(`Delete`,L.XK_Delete,L.XK_KP_Delete),z(`Insert`,L.XK_Insert,L.XK_KP_Insert),R(`Paste`,L.XF86XK_Paste),R(`Redo`,L.XK_Redo),R(`Undo`,L.XK_Undo),R(`Cancel`,L.XK_Cancel),R(`ContextMenu`,L.XK_Menu),R(`Escape`,L.XK_Escape),R(`Execute`,L.XK_Execute),R(`Find`,L.XK_Find),R(`Help`,L.XK_Help),R(`Pause`,L.XK_Pause),R(`Select`,L.XK_Select),R(`ZoomIn`,L.XF86XK_ZoomIn),R(`ZoomOut`,L.XF86XK_ZoomOut),R(`BrightnessDown`,L.XF86XK_MonBrightnessDown),R(`BrightnessUp`,L.XF86XK_MonBrightnessUp),R(`Eject`,L.XF86XK_Eject),R(`LogOff`,L.XF86XK_LogOff),R(`Power`,L.XF86XK_PowerOff),R(`PowerOff`,L.XF86XK_PowerDown),R(`PrintScreen`,L.XK_Print),R(`Hibernate`,L.XF86XK_Hibernate),R(`Standby`,L.XF86XK_Standby),R(`WakeUp`,L.XF86XK_WakeUp),R(`AllCandidates`,L.XK_MultipleCandidate),R(`Alphanumeric`,L.XK_Eisu_toggle),R(`CodeInput`,L.XK_Codeinput),R(`Compose`,L.XK_Multi_key),R(`Convert`,L.XK_Henkan),R(`GroupFirst`,L.XK_ISO_First_Group),R(`GroupLast`,L.XK_ISO_Last_Group),R(`GroupNext`,L.XK_ISO_Next_Group),R(`GroupPrevious`,L.XK_ISO_Prev_Group),R(`NonConvert`,L.XK_Muhenkan),R(`PreviousCandidate`,L.XK_PreviousCandidate),R(`SingleCandidate`,L.XK_SingleCandidate),R(`HangulMode`,L.XK_Hangul),R(`HanjaMode`,L.XK_Hangul_Hanja),R(`JunjaMode`,L.XK_Hangul_Jeonja),R(`Eisu`,L.XK_Eisu_toggle),R(`Hankaku`,L.XK_Hankaku),R(`Hiragana`,L.XK_Hiragana),R(`HiraganaKatakana`,L.XK_Hiragana_Katakana),R(`KanaMode`,L.XK_Kana_Shift),R(`KanjiMode`,L.XK_Kanji),R(`Katakana`,L.XK_Katakana),R(`Romaji`,L.XK_Romaji),R(`Zenkaku`,L.XK_Zenkaku),R(`ZenkakuHankaku`,L.XK_Zenkaku_Hankaku),R(`F1`,L.XK_F1),R(`F2`,L.XK_F2),R(`F3`,L.XK_F3),R(`F4`,L.XK_F4),R(`F5`,L.XK_F5),R(`F6`,L.XK_F6),R(`F7`,L.XK_F7),R(`F8`,L.XK_F8),R(`F9`,L.XK_F9),R(`F10`,L.XK_F10),R(`F11`,L.XK_F11),R(`F12`,L.XK_F12),R(`F13`,L.XK_F13),R(`F14`,L.XK_F14),R(`F15`,L.XK_F15),R(`F16`,L.XK_F16),R(`F17`,L.XK_F17),R(`F18`,L.XK_F18),R(`F19`,L.XK_F19),R(`F20`,L.XK_F20),R(`F21`,L.XK_F21),R(`F22`,L.XK_F22),R(`F23`,L.XK_F23),R(`F24`,L.XK_F24),R(`F25`,L.XK_F25),R(`F26`,L.XK_F26),R(`F27`,L.XK_F27),R(`F28`,L.XK_F28),R(`F29`,L.XK_F29),R(`F30`,L.XK_F30),R(`F31`,L.XK_F31),R(`F32`,L.XK_F32),R(`F33`,L.XK_F33),R(`F34`,L.XK_F34),R(`F35`,L.XK_F35),R(`Close`,L.XF86XK_Close),R(`MailForward`,L.XF86XK_MailForward),R(`MailReply`,L.XF86XK_Reply),R(`MailSend`,L.XF86XK_Send),R(`MediaFastForward`,L.XF86XK_AudioForward),R(`MediaPause`,L.XF86XK_AudioPause),R(`MediaPlay`,L.XF86XK_AudioPlay),R(`MediaRecord`,L.XF86XK_AudioRecord),R(`MediaRewind`,L.XF86XK_AudioRewind),R(`MediaStop`,L.XF86XK_AudioStop),R(`MediaTrackNext`,L.XF86XK_AudioNext),R(`MediaTrackPrevious`,L.XF86XK_AudioPrev),R(`New`,L.XF86XK_New),R(`Open`,L.XF86XK_Open),R(`Print`,L.XK_Print),R(`Save`,L.XF86XK_Save),R(`SpellCheck`,L.XF86XK_Spell),R(`AudioVolumeDown`,L.XF86XK_AudioLowerVolume),R(`AudioVolumeUp`,L.XF86XK_AudioRaiseVolume),R(`AudioVolumeMute`,L.XF86XK_AudioMute),R(`MicrophoneVolumeMute`,L.XF86XK_AudioMicMute),R(`LaunchApplication1`,L.XF86XK_MyComputer),R(`LaunchApplication2`,L.XF86XK_Calculator),R(`LaunchCalendar`,L.XF86XK_Calendar),R(`LaunchMail`,L.XF86XK_Mail),R(`LaunchMediaPlayer`,L.XF86XK_AudioMedia),R(`LaunchMusicPlayer`,L.XF86XK_Music),R(`LaunchPhone`,L.XF86XK_Phone),R(`LaunchScreenSaver`,L.XF86XK_ScreenSaver),R(`LaunchSpreadsheet`,L.XF86XK_Excel),R(`LaunchWebBrowser`,L.XF86XK_WWW),R(`LaunchWebCam`,L.XF86XK_WebCam),R(`LaunchWordProcessor`,L.XF86XK_Word),R(`BrowserBack`,L.XF86XK_Back),R(`BrowserFavorites`,L.XF86XK_Favorites),R(`BrowserForward`,L.XF86XK_Forward),R(`BrowserHome`,L.XF86XK_HomePage),R(`BrowserRefresh`,L.XF86XK_Refresh),R(`BrowserSearch`,L.XF86XK_Search),R(`BrowserStop`,L.XF86XK_Stop),R(`Dimmer`,L.XF86XK_BrightnessAdjust),R(`MediaAudioTrack`,L.XF86XK_AudioCycleTrack),R(`RandomToggle`,L.XF86XK_AudioRandomPlay),R(`SplitScreenToggle`,L.XF86XK_SplitScreen),R(`Subtitle`,L.XF86XK_Subtitle),R(`VideoModeNext`,L.XF86XK_Next_VMode),z(`=`,L.XK_equal,L.XK_KP_Equal),z(`+`,L.XK_plus,L.XK_KP_Add),z(`-`,L.XK_minus,L.XK_KP_Subtract),z(`*`,L.XK_asterisk,L.XK_KP_Multiply),z(`/`,L.XK_slash,L.XK_KP_Divide),z(`.`,L.XK_period,L.XK_KP_Decimal),z(`,`,L.XK_comma,L.XK_KP_Separator),z(`0`,L.XK_0,L.XK_KP_0),z(`1`,L.XK_1,L.XK_KP_1),z(`2`,L.XK_2,L.XK_KP_2),z(`3`,L.XK_3,L.XK_KP_3),z(`4`,L.XK_4,L.XK_KP_4),z(`5`,L.XK_5,L.XK_KP_5),z(`6`,L.XK_6,L.XK_KP_6),z(`7`,L.XK_7,L.XK_KP_7),z(`8`,L.XK_8,L.XK_KP_8),z(`9`,L.XK_9,L.XK_KP_9);function Or(e){if(e.code){switch(e.code){case`OSLeft`:return`MetaLeft`;case`OSRight`:return`MetaRight`}return e.code}if(e.keyCode in wr){let t=wr[e.keyCode];if(_()&&t===`ContextMenu`&&(t=`MetaRight`),e.location===2)switch(t){case`ShiftLeft`:return`ShiftRight`;case`ControlLeft`:return`ControlRight`;case`AltLeft`:return`AltRight`}if(e.location===3)switch(t){case`Delete`:return`NumpadDecimal`;case`Insert`:return`Numpad0`;case`End`:return`Numpad1`;case`ArrowDown`:return`Numpad2`;case`PageDown`:return`Numpad3`;case`ArrowLeft`:return`Numpad4`;case`ArrowRight`:return`Numpad6`;case`Home`:return`Numpad7`;case`ArrowUp`:return`Numpad8`;case`PageUp`:return`Numpad9`;case`Enter`:return`NumpadEnter`}return t}return`Unidentified`}function kr(e){if(e.key!==void 0&&e.key!==`Unidentified`){switch(e.key){case`OS`:return`Meta`;case`LaunchMyComputer`:return`LaunchApplication1`;case`LaunchCalculator`:return`LaunchApplication2`}switch(e.key){case`UIKeyInputUpArrow`:return`ArrowUp`;case`UIKeyInputDownArrow`:return`ArrowDown`;case`UIKeyInputLeftArrow`:return`ArrowLeft`;case`UIKeyInputRightArrow`:return`ArrowRight`;case`UIKeyInputEscape`:return`Escape`}return e.key===`\0`&&e.code===`NumpadDecimal`?`Delete`:e.key}let t=Or(e);return t in Tr?Tr[t]:e.charCode?String.fromCharCode(e.charCode):`Unidentified`}function Ar(e){let t=kr(e);if(t===`Unidentified`)return null;if(t in Er){let n=e.location;if(t===`Meta`&&n===0&&(n=2),t===`Clear`&&n===3&&Or(e)===`NumLock`&&(n=0),(n===void 0||n>3)&&(n=0),t===`Meta`){let t=Or(e);if(t===`AltLeft`)return L.XK_Meta_L;if(t===`AltRight`)return L.XK_Meta_R}if(t===`Clear`&&Or(e)===`NumLock`)return L.XK_Num_Lock;if(v())switch(t){case`Zenkaku`:case`Hankaku`:return L.XK_Zenkaku_Hankaku;case`Romaji`:case`KanaMode`:return L.XK_Romaji}return Er[t][n]}if(t.length!==1)return null;let n=t.charCodeAt();return n?Cr.lookup(n):null}var jr=class{constructor(e){this._target=e||null,this._keyDownList={},this._altGrArmed=!1,this._eventHandlers={keyup:this._handleKeyUp.bind(this),keydown:this._handleKeyDown.bind(this),blur:this._allKeysUp.bind(this)},this.onkeyevent=()=>{}}_sendKeyEvent(e,t,n,i=null,a=null){if(n)this._keyDownList[t]=e;else{if(!(t in this._keyDownList))return;delete this._keyDownList[t]}r(`onkeyevent `+(n?`down`:`up`)+`, keysym: `+e,`, code: `+t+`, numlock: `+i+`, capslock: `+a),this.onkeyevent(e,t,n,i,a)}_getKeyCode(e){let t=Or(e);if(t!==`Unidentified`)return t;if(e.keyCode&&e.keyCode!==229)return`Platform`+e.keyCode;if(e.keyIdentifier){if(e.keyIdentifier.substr(0,2)!==`U+`)return e.keyIdentifier;let t=parseInt(e.keyIdentifier.substr(2),16);return`Platform`+String.fromCharCode(t).toUpperCase().charCodeAt()}return`Unidentified`}_handleKeyDown(e){let t=this._getKeyCode(e),n=Ar(e),r=e.getModifierState(`NumLock`),i=e.getModifierState(`CapsLock`);if((_()||y())&&(r=null),this._altGrArmed&&(this._altGrArmed=!1,clearTimeout(this._altGrTimeout),t===`AltRight`&&e.timeStamp-this._altGrCtrlTime<50?n=L.XK_ISO_Level3_Shift:this._sendKeyEvent(L.XK_Control_L,`ControlLeft`,!0,r,i)),t===`Unidentified`){n&&(this._sendKeyEvent(n,t,!0,r,i),this._sendKeyEvent(n,t,!1,r,i)),x(e);return}if(_()||y())switch(n){case L.XK_Super_L:n=L.XK_Alt_L;break;case L.XK_Super_R:n=L.XK_Super_L;break;case L.XK_Alt_L:n=L.XK_Mode_switch;break;case L.XK_Alt_R:n=L.XK_ISO_Level3_Shift}if(t in this._keyDownList&&(n=this._keyDownList[t]),(_()||y())&&e.metaKey&&t!==`MetaLeft`&&t!==`MetaRight`){this._sendKeyEvent(n,t,!0,r,i),this._sendKeyEvent(n,t,!1,r,i),x(e);return}if((_()||y())&&t===`CapsLock`){this._sendKeyEvent(L.XK_Caps_Lock,`CapsLock`,!0,r,i),this._sendKeyEvent(L.XK_Caps_Lock,`CapsLock`,!1,r,i),x(e);return}let a=[L.XK_Zenkaku_Hankaku,L.XK_Eisu_toggle,L.XK_Katakana,L.XK_Hiragana,L.XK_Romaji];if(v()&&a.includes(n)){this._sendKeyEvent(n,t,!0,r,i),this._sendKeyEvent(n,t,!1,r,i),x(e);return}if(x(e),t===`ControlLeft`&&v()&&!(`ControlLeft`in this._keyDownList)){this._altGrArmed=!0,this._altGrTimeout=setTimeout(this._interruptAltGrSequence.bind(this),100),this._altGrCtrlTime=e.timeStamp;return}this._sendKeyEvent(n,t,!0,r,i)}_handleKeyUp(e){x(e);let t=this._getKeyCode(e);if(this._interruptAltGrSequence(),(_()||y())&&t===`CapsLock`){this._sendKeyEvent(L.XK_Caps_Lock,`CapsLock`,!0),this._sendKeyEvent(L.XK_Caps_Lock,`CapsLock`,!1);return}this._sendKeyEvent(this._keyDownList[t],t,!1),v()&&(t===`ShiftLeft`||t===`ShiftRight`)&&(`ShiftRight`in this._keyDownList&&this._sendKeyEvent(this._keyDownList.ShiftRight,`ShiftRight`,!1),`ShiftLeft`in this._keyDownList&&this._sendKeyEvent(this._keyDownList.ShiftLeft,`ShiftLeft`,!1))}_interruptAltGrSequence(){this._altGrArmed&&(this._altGrArmed=!1,clearTimeout(this._altGrTimeout),this._sendKeyEvent(L.XK_Control_L,`ControlLeft`,!0))}_allKeysUp(){r(`>> Keyboard.allKeysUp`),this._interruptAltGrSequence();for(let e in this._keyDownList)this._sendKeyEvent(this._keyDownList[e],e,!1);r(`<< Keyboard.allKeysUp`)}grab(){this._target.addEventListener(`keydown`,this._eventHandlers.keydown),this._target.addEventListener(`keyup`,this._eventHandlers.keyup),window.addEventListener(`blur`,this._eventHandlers.blur)}ungrab(){this._target.removeEventListener(`keydown`,this._eventHandlers.keydown),this._target.removeEventListener(`keyup`,this._eventHandlers.keyup),window.removeEventListener(`blur`,this._eventHandlers.blur),this._allKeysUp()}},Mr=0,Nr=1,Pr=2,Fr=4,Ir=8,Lr=16,Rr=32,zr=64,Br=127,Vr=50,Hr=90,Ur=250,Wr=1e3,Gr=1e3,Kr=50,qr=class{constructor(){this._target=null,this._state=Br,this._tracked=[],this._ignored=[],this._waitingRelease=!1,this._releaseStart=0,this._longpressTimeoutId=null,this._twoTouchTimeoutId=null,this._boundEventHandler=this._eventHandler.bind(this)}attach(e){this.detach(),this._target=e,this._target.addEventListener(`touchstart`,this._boundEventHandler),this._target.addEventListener(`touchmove`,this._boundEventHandler),this._target.addEventListener(`touchend`,this._boundEventHandler),this._target.addEventListener(`touchcancel`,this._boundEventHandler)}detach(){this._target&&=(this._stopLongpressTimeout(),this._stopTwoTouchTimeout(),this._target.removeEventListener(`touchstart`,this._boundEventHandler),this._target.removeEventListener(`touchmove`,this._boundEventHandler),this._target.removeEventListener(`touchend`,this._boundEventHandler),this._target.removeEventListener(`touchcancel`,this._boundEventHandler),null)}_eventHandler(e){let t;switch(e.stopPropagation(),e.preventDefault(),e.type){case`touchstart`:t=this._touchStart;break;case`touchmove`:t=this._touchMove;break;case`touchend`:case`touchcancel`:t=this._touchEnd}for(let n=0;n<e.changedTouches.length;n++){let r=e.changedTouches[n];t.call(this,r.identifier,r.clientX,r.clientY)}}_touchStart(e,t,n){if(this._hasDetectedGesture()||this._state===Mr){this._ignored.push(e);return}if(this._tracked.length>0&&Date.now()-this._tracked[0].started>Ur){this._state=Mr,this._ignored.push(e);return}if(this._waitingRelease){this._state=Mr,this._ignored.push(e);return}switch(this._tracked.push({id:e,started:Date.now(),active:!0,firstX:t,firstY:n,lastX:t,lastY:n,angle:0}),this._tracked.length){case 1:this._startLongpressTimeout();break;case 2:this._state&=-26,this._stopLongpressTimeout();break;case 3:this._state&=-99;break;default:this._state=Mr}}_touchMove(e,t,n){let r=this._tracked.find(t=>t.id===e);if(r===void 0)return;r.lastX=t,r.lastY=n;let i=t-r.firstX,a=n-r.firstY;if((r.firstX!==r.lastX||r.firstY!==r.lastY)&&(r.angle=Math.atan2(a,i)*180/Math.PI),!this._hasDetectedGesture()){if(Math.hypot(i,a)<Vr)return;if(this._state&=-24,this._stopLongpressTimeout(),this._tracked.length!==1&&(this._state&=-9),this._tracked.length!==2&&(this._state&=-97),this._tracked.length===2){let t=this._tracked.find(t=>t.id!==e);if(Math.hypot(t.firstX-t.lastX,t.firstY-t.lastY)>Vr){let e=Math.abs(r.angle-t.angle);e=Math.abs((e+180)%360-180),e>Hr?this._state&=-33:this._state&=-65,this._isTwoTouchTimeoutRunning()&&this._stopTwoTouchTimeout()}else this._isTwoTouchTimeoutRunning()||this._startTwoTouchTimeout()}if(!this._hasDetectedGesture())return;this._pushEvent(`gesturestart`)}this._pushEvent(`gesturemove`)}_touchEnd(e,t,n){if(this._ignored.indexOf(e)!==-1){this._ignored.splice(this._ignored.indexOf(e),1),this._ignored.length===0&&this._tracked.length===0&&(this._state=Br,this._waitingRelease=!1);return}if(!this._hasDetectedGesture()&&this._isTwoTouchTimeoutRunning()&&(this._stopTwoTouchTimeout(),this._state=Mr),!this._hasDetectedGesture()&&(this._state&=-105,this._state&=-17,this._stopLongpressTimeout(),!this._waitingRelease))switch(this._releaseStart=Date.now(),this._waitingRelease=!0,this._tracked.length){case 1:this._state&=-7;break;case 2:this._state&=-6}if(this._waitingRelease){Date.now()-this._releaseStart>Ur&&(this._state=Mr),this._tracked.some(e=>Date.now()-e.started>Wr)&&(this._state=Mr);let t=this._tracked.find(t=>t.id===e);if(t.active=!1,this._hasDetectedGesture())this._pushEvent(`gesturestart`);else if(this._state!==Mr)return}this._hasDetectedGesture()&&this._pushEvent(`gestureend`);for(let e=0;e<this._tracked.length;e++)this._tracked[e].active&&this._ignored.push(this._tracked[e].id);this._tracked=[],this._state=Mr,this._ignored.indexOf(e)!==-1&&this._ignored.splice(this._ignored.indexOf(e),1),this._ignored.length===0&&(this._state=Br,this._waitingRelease=!1)}_hasDetectedGesture(){return!(this._state===Mr||this._state&this._state-1||this._state&7&&this._tracked.some(e=>e.active))}_startLongpressTimeout(){this._stopLongpressTimeout(),this._longpressTimeoutId=setTimeout(()=>this._longpressTimeout(),Gr)}_stopLongpressTimeout(){clearTimeout(this._longpressTimeoutId),this._longpressTimeoutId=null}_longpressTimeout(){if(this._hasDetectedGesture())throw Error(`A longpress gesture failed, conflict with a different gesture`);this._state=Lr,this._pushEvent(`gesturestart`)}_startTwoTouchTimeout(){this._stopTwoTouchTimeout(),this._twoTouchTimeoutId=setTimeout(()=>this._twoTouchTimeout(),Kr)}_stopTwoTouchTimeout(){clearTimeout(this._twoTouchTimeoutId),this._twoTouchTimeoutId=null}_isTwoTouchTimeoutRunning(){return this._twoTouchTimeoutId!==null}_twoTouchTimeout(){if(this._tracked.length===0)throw Error(`A pinch or two drag gesture failed, no tracked touches`);let e=this._getAverageMovement(),t=Math.abs(e.x),n=Math.abs(e.y),r=this._getAverageDistance(),i=Math.abs(Math.hypot(r.first.x,r.first.y)-Math.hypot(r.last.x,r.last.y));this._state=n<i&&t<i?zr:Rr,this._pushEvent(`gesturestart`),this._pushEvent(`gesturemove`)}_pushEvent(e){let t={type:this._stateToGesture(this._state)},n=this._getPosition(),r=n.last;switch(e===`gesturestart`&&(r=n.first),this._state){case Rr:case zr:r=n.first}if(t.clientX=r.x,t.clientY=r.y,this._state===zr){let n=this._getAverageDistance();e===`gesturestart`?(t.magnitudeX=n.first.x,t.magnitudeY=n.first.y):(t.magnitudeX=n.last.x,t.magnitudeY=n.last.y)}else if(this._state===Rr){if(e===`gesturestart`)t.magnitudeX=0,t.magnitudeY=0;else{let e=this._getAverageMovement();t.magnitudeX=e.x,t.magnitudeY=e.y}}let i=new CustomEvent(e,{detail:t});this._target.dispatchEvent(i)}_stateToGesture(e){switch(e){case Nr:return`onetap`;case Pr:return`twotap`;case Fr:return`threetap`;case Ir:return`drag`;case Lr:return`longpress`;case Rr:return`twodrag`;case zr:return`pinch`}throw Error(`Unknown gesture state: `+e)}_getPosition(){if(this._tracked.length===0)throw Error(`Failed to get gesture position, no tracked touches`);let e=this._tracked.length,t=0,n=0,r=0,i=0;for(let e=0;e<this._tracked.length;e++)t+=this._tracked[e].firstX,n+=this._tracked[e].firstY,r+=this._tracked[e].lastX,i+=this._tracked[e].lastY;return{first:{x:t/e,y:n/e},last:{x:r/e,y:i/e}}}_getAverageMovement(){if(this._tracked.length===0)throw Error(`Failed to get gesture movement, no tracked touches`);let e,t;e=t=0;let n=this._tracked.length;for(let n=0;n<this._tracked.length;n++)e+=this._tracked[n].lastX-this._tracked[n].firstX,t+=this._tracked[n].lastY-this._tracked[n].firstY;return{x:e/n,y:t/n}}_getAverageDistance(){if(this._tracked.length===0)throw Error(`Failed to get gesture distance, no tracked touches`);let e=this._tracked[0],t=this._tracked[this._tracked.length-1],n=Math.abs(t.firstX-e.firstX),r=Math.abs(t.firstY-e.firstY),i=Math.abs(t.lastX-e.lastX),a=Math.abs(t.lastY-e.lastY);return{first:{x:n,y:r},last:{x:i,y:a}}}},Jr=!m||d,Yr=class{constructor(){this._target=null,this._canvas=document.createElement(`canvas`),Jr&&(this._canvas.style.position=`fixed`,this._canvas.style.zIndex=`65535`,this._canvas.style.pointerEvents=`none`,this._canvas.style.userSelect=`none`,this._canvas.style.WebkitUserSelect=`none`,this._canvas.style.visibility=`hidden`),this._position={x:0,y:0},this._hotSpot={x:0,y:0},this._eventHandlers={mouseover:this._handleMouseOver.bind(this),mouseleave:this._handleMouseLeave.bind(this),mousemove:this._handleMouseMove.bind(this),mouseup:this._handleMouseUp.bind(this)}}attach(e){if(this._target&&this.detach(),this._target=e,Jr){document.body.appendChild(this._canvas);let e={capture:!0,passive:!0};this._target.addEventListener(`mouseover`,this._eventHandlers.mouseover,e),this._target.addEventListener(`mouseleave`,this._eventHandlers.mouseleave,e),this._target.addEventListener(`mousemove`,this._eventHandlers.mousemove,e),this._target.addEventListener(`mouseup`,this._eventHandlers.mouseup,e)}this.clear()}detach(){if(this._target){if(Jr){let e={capture:!0,passive:!0};this._target.removeEventListener(`mouseover`,this._eventHandlers.mouseover,e),this._target.removeEventListener(`mouseleave`,this._eventHandlers.mouseleave,e),this._target.removeEventListener(`mousemove`,this._eventHandlers.mousemove,e),this._target.removeEventListener(`mouseup`,this._eventHandlers.mouseup,e),document.contains(this._canvas)&&document.body.removeChild(this._canvas)}this._target=null}}change(e,t,n,r,i){if(r===0||i===0){this.clear();return}this._position.x=this._position.x+this._hotSpot.x-t,this._position.y=this._position.y+this._hotSpot.y-n,this._hotSpot.x=t,this._hotSpot.y=n;let a=this._canvas.getContext(`2d`);this._canvas.width=r,this._canvas.height=i;let o=new ImageData(new Uint8ClampedArray(e),r,i);if(a.clearRect(0,0,r,i),a.putImageData(o,0,0),Jr)this._updatePosition();else{let e=this._canvas.toDataURL();this._target.style.cursor=`url(`+e+`)`+t+` `+n+`, default`}}clear(){this._target.style.cursor=`none`,this._canvas.width=0,this._canvas.height=0,this._position.x=this._position.x+this._hotSpot.x,this._position.y=this._position.y+this._hotSpot.y,this._hotSpot.x=0,this._hotSpot.y=0}move(e,t){if(!Jr)return;window.visualViewport?(this._position.x=e+window.visualViewport.offsetLeft,this._position.y=t+window.visualViewport.offsetTop):(this._position.x=e,this._position.y=t),this._updatePosition();let n=document.elementFromPoint(e,t);this._updateVisibility(n)}_handleMouseOver(e){this._handleMouseMove(e)}_handleMouseLeave(e){this._updateVisibility(e.relatedTarget)}_handleMouseMove(e){this._updateVisibility(e.target),this._position.x=e.clientX-this._hotSpot.x,this._position.y=e.clientY-this._hotSpot.y,this._updatePosition()}_handleMouseUp(e){let t=document.elementFromPoint(e.clientX,e.clientY);this._updateVisibility(t),this._captureIsActive()&&window.setTimeout(()=>{this._target&&(t=document.elementFromPoint(e.clientX,e.clientY),this._updateVisibility(t))},0)}_showCursor(){this._canvas.style.visibility===`hidden`&&(this._canvas.style.visibility=``)}_hideCursor(){this._canvas.style.visibility!==`hidden`&&(this._canvas.style.visibility=`hidden`)}_shouldShowCursor(e){return e?e===this._target||!(!this._target.contains(e)||window.getComputedStyle(e).cursor!==`none`):!1}_updateVisibility(e){this._captureIsActive()&&(e=document.captureElement),this._shouldShowCursor(e)?this._showCursor():this._hideCursor()}_updatePosition(){this._canvas.style.left=this._position.x+`px`,this._canvas.style.top=this._position.y+`px`}_captureIsActive(){return document.captureElement&&document.documentElement.contains(document.captureElement)}},Xr=41943040,Zr={CONNECTING:`connecting`,OPEN:`open`,CLOSING:`closing`,CLOSED:`closed`},Qr={CONNECTING:[WebSocket.CONNECTING,Zr.CONNECTING],OPEN:[WebSocket.OPEN,Zr.OPEN],CLOSING:[WebSocket.CLOSING,Zr.CLOSING],CLOSED:[WebSocket.CLOSED,Zr.CLOSED]},$r=[`send`,`close`,`binaryType`,`onerror`,`onmessage`,`onopen`,`protocol`,`readyState`],ei=class{constructor(){this._websocket=null,this._rQi=0,this._rQlen=0,this._rQbufferSize=4194304,this._rQ=null,this._sQbufferSize=10240,this._sQlen=0,this._sQ=null,this._eventHandlers={message:()=>{},open:()=>{},close:()=>{},error:()=>{}}}get readyState(){let e;return this._websocket===null?`unused`:(e=this._websocket.readyState,Qr.CONNECTING.includes(e)?`connecting`:Qr.OPEN.includes(e)?`open`:Qr.CLOSING.includes(e)?`closing`:Qr.CLOSED.includes(e)?`closed`:`unknown`)}rQpeek8(){return this._rQ[this._rQi]}rQskipBytes(e){this._rQi+=e}rQshift8(){return this._rQshift(1)}rQshift16(){return this._rQshift(2)}rQshift32(){return this._rQshift(4)}_rQshift(e){let t=0;for(let n=e-1;n>=0;n--)t+=this._rQ[this._rQi++]<<n*8;return t>>>0}rQlen(){return this._rQlen-this._rQi}rQshiftStr(e){let t=``;for(let n=0;n<e;n+=4096){let r=this.rQshiftBytes(Math.min(4096,e-n),!1);t+=String.fromCharCode.apply(null,r)}return t}rQshiftBytes(e,t=!0){return this._rQi+=e,t?this._rQ.slice(this._rQi-e,this._rQi):this._rQ.subarray(this._rQi-e,this._rQi)}rQshiftTo(e,t){e.set(new Uint8Array(this._rQ.buffer,this._rQi,t)),this._rQi+=t}rQpeekBytes(e,t=!0){return t?this._rQ.slice(this._rQi,this._rQi+e):this._rQ.subarray(this._rQi,this._rQi+e)}rQwait(e,t,n){if(this._rQlen-this._rQi<t){if(n){if(this._rQi<n)throw Error(`rQwait cannot backup `+n+` bytes`);this._rQi-=n}return!0}return!1}sQpush8(e){this._sQensureSpace(1),this._sQ[this._sQlen++]=e}sQpush16(e){this._sQensureSpace(2),this._sQ[this._sQlen++]=e>>8&255,this._sQ[this._sQlen++]=e>>0&255}sQpush32(e){this._sQensureSpace(4),this._sQ[this._sQlen++]=e>>24&255,this._sQ[this._sQlen++]=e>>16&255,this._sQ[this._sQlen++]=e>>8&255,this._sQ[this._sQlen++]=e>>0&255}sQpushString(e){let t=e.split(``).map(e=>e.charCodeAt(0));this.sQpushBytes(new Uint8Array(t))}sQpushBytes(e){for(let t=0;t<e.length;){this._sQensureSpace(1);let n=this._sQbufferSize-this._sQlen;n>e.length-t&&(n=e.length-t),this._sQ.set(e.subarray(t,t+n),this._sQlen),this._sQlen+=n,t+=n}}flush(){this._sQlen>0&&this.readyState===`open`&&(this._websocket.send(new Uint8Array(this._sQ.buffer,0,this._sQlen)),this._sQlen=0)}_sQensureSpace(e){this._sQbufferSize-this._sQlen<e&&this.flush()}off(e){this._eventHandlers[e]=()=>{}}on(e,t){this._eventHandlers[e]=t}_allocateBuffers(){this._rQ=new Uint8Array(this._rQbufferSize),this._sQ=new Uint8Array(this._sQbufferSize)}init(){this._allocateBuffers(),this._rQi=0,this._websocket=null}open(e,t){this.attach(new WebSocket(e,t))}attach(e){this.init();let t=[...Object.keys(e),...Object.getOwnPropertyNames(Object.getPrototypeOf(e))];for(let e=0;e<$r.length;e++){let n=$r[e];if(t.indexOf(n)<0)throw Error(`Raw channel missing property: `+n)}this._websocket=e,this._websocket.binaryType=`arraybuffer`,this._websocket.onmessage=this._recvMessage.bind(this),this._websocket.onopen=()=>{r(`>> WebSock.onopen`),this._websocket.protocol&&i(`Server choose sub-protocol: `+this._websocket.protocol),this._eventHandlers.open(),r(`<< WebSock.onopen`)},this._websocket.onclose=e=>{r(`>> WebSock.onclose`),this._eventHandlers.close(e),r(`<< WebSock.onclose`)},this._websocket.onerror=e=>{r(`>> WebSock.onerror: `+e),this._eventHandlers.error(e),r(`<< WebSock.onerror: `+e)}}close(){this._websocket&&((this.readyState===`connecting`||this.readyState===`open`)&&(i(`Closing WebSocket connection`),this._websocket.close()),this._websocket.onmessage=()=>{})}_expandCompactRQ(e){let t=(this._rQlen-this._rQi+e)*8,n=this._rQbufferSize<t;if(n&&(this._rQbufferSize=Math.max(this._rQbufferSize*2,t)),this._rQbufferSize>Xr&&(this._rQbufferSize=Xr,this._rQbufferSize-(this._rQlen-this._rQi)<e))throw Error(`Receive queue buffer exceeded 41943040 bytes, and the new message could not fit`);if(n){let e=this._rQ.buffer;this._rQ=new Uint8Array(this._rQbufferSize),this._rQ.set(new Uint8Array(e,this._rQi,this._rQlen-this._rQi))}else this._rQ.copyWithin(0,this._rQi,this._rQlen);this._rQlen-=this._rQi,this._rQi=0}_recvMessage(e){this._rQlen==this._rQi&&(this._rQlen=0,this._rQi=0);let t=new Uint8Array(e.data);t.length>this._rQbufferSize-this._rQlen&&this._expandCompactRQ(t.length),this._rQ.set(t,this._rQlen),this._rQlen+=t.length,this._rQlen-this._rQi>0?this._eventHandlers.message():r(`Ignoring empty message`)}},ti={Again:57349,AltLeft:56,AltRight:57400,ArrowDown:57424,ArrowLeft:57419,ArrowRight:57421,ArrowUp:57416,AudioVolumeDown:57390,AudioVolumeMute:57376,AudioVolumeUp:57392,Backquote:41,Backslash:43,Backspace:14,BracketLeft:26,BracketRight:27,BrowserBack:57450,BrowserFavorites:57446,BrowserForward:57449,BrowserHome:57394,BrowserRefresh:57447,BrowserSearch:57445,BrowserStop:57448,CapsLock:58,Comma:51,ContextMenu:57437,ControlLeft:29,ControlRight:57373,Convert:121,Copy:57464,Cut:57404,Delete:57427,Digit0:11,Digit1:2,Digit2:3,Digit3:4,Digit4:5,Digit5:6,Digit6:7,Digit7:8,Digit8:9,Digit9:10,Eject:57469,End:57423,Enter:28,Equal:13,Escape:1,F1:59,F10:68,F11:87,F12:88,F13:93,F14:94,F15:95,F16:85,F17:57347,F18:57463,F19:57348,F2:60,F20:90,F21:116,F22:57465,F23:109,F24:111,F3:61,F4:62,F5:63,F6:64,F7:65,F8:66,F9:67,Find:57409,Help:57461,Hiragana:119,Home:57415,Insert:57426,IntlBackslash:86,IntlRo:115,IntlYen:125,KanaMode:112,Katakana:120,KeyA:30,KeyB:48,KeyC:46,KeyD:32,KeyE:18,KeyF:33,KeyG:34,KeyH:35,KeyI:23,KeyJ:36,KeyK:37,KeyL:38,KeyM:50,KeyN:49,KeyO:24,KeyP:25,KeyQ:16,KeyR:19,KeyS:31,KeyT:20,KeyU:22,KeyV:47,KeyW:17,KeyX:45,KeyY:21,KeyZ:44,Lang1:114,Lang2:113,Lang3:120,Lang4:119,Lang5:118,LaunchApp1:57451,LaunchApp2:57377,LaunchMail:57452,MediaPlayPause:57378,MediaSelect:57453,MediaStop:57380,MediaTrackNext:57369,MediaTrackPrevious:57360,MetaLeft:57435,MetaRight:57436,Minus:12,NonConvert:123,NumLock:69,Numpad0:82,Numpad1:79,Numpad2:80,Numpad3:81,Numpad4:75,Numpad5:76,Numpad6:77,Numpad7:71,Numpad8:72,Numpad9:73,NumpadAdd:78,NumpadComma:126,NumpadDecimal:83,NumpadDivide:57397,NumpadEnter:57372,NumpadEqual:89,NumpadMultiply:55,NumpadParenLeft:57462,NumpadParenRight:57467,NumpadSubtract:74,Open:100,PageDown:57425,PageUp:57417,Paste:101,Pause:57414,Period:52,Power:57438,PrintScreen:84,Props:57350,Quote:40,ScrollLock:70,Semicolon:39,ShiftLeft:42,ShiftRight:54,Slash:53,Sleep:57439,Space:57,Suspend:57381,Tab:15,Undo:57351,WakeUp:57443},B={encodingRaw:0,encodingCopyRect:1,encodingRRE:2,encodingHextile:5,encodingZlib:6,encodingTight:7,encodingZRLE:16,encodingTightPNG:-260,encodingJPEG:21,encodingH264:50,pseudoEncodingQualityLevel9:-23,pseudoEncodingQualityLevel0:-32,pseudoEncodingDesktopSize:-223,pseudoEncodingLastRect:-224,pseudoEncodingCursor:-239,pseudoEncodingQEMUExtendedKeyEvent:-258,pseudoEncodingQEMULedEvent:-261,pseudoEncodingDesktopName:-307,pseudoEncodingExtendedDesktopSize:-308,pseudoEncodingXvp:-309,pseudoEncodingFence:-312,pseudoEncodingContinuousUpdates:-313,pseudoEncodingExtendedMouseButtons:-316,pseudoEncodingCompressLevel9:-247,pseudoEncodingCompressLevel0:-256,pseudoEncodingVMwareCursor:1464686180,pseudoEncodingExtendedClipboard:3231835598},ni=class e{constructor(){this._key=null}get algorithm(){return{name:`AES-ECB`}}static async importKey(t,n,r,i){let a=new e;return await a._importKey(t,r,i),a}async _importKey(e,t,n){this._key=await window.crypto.subtle.importKey(`raw`,e,{name:`AES-CBC`},t,n)}async encrypt(e,t){let n=new Uint8Array(t);if(n.length%16!=0||this._key===null)return null;let r=n.length/16;for(let e=0;e<r;e++){let t=new Uint8Array(await window.crypto.subtle.encrypt({name:`AES-CBC`,iv:new Uint8Array(16)},this._key,n.slice(e*16,e*16+16))).slice(0,16);n.set(t,e*16)}return n}},ri=class e{constructor(){this._rawKey=null,this._ctrKey=null,this._cbcKey=null,this._zeroBlock=new Uint8Array(16),this._prefixBlock0=this._zeroBlock,this._prefixBlock1=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]),this._prefixBlock2=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2])}get algorithm(){return{name:`AES-EAX`}}async _encryptBlock(e){let t=await window.crypto.subtle.encrypt({name:`AES-CBC`,iv:this._zeroBlock},this._cbcKey,e);return new Uint8Array(t).slice(0,16)}async _initCMAC(){let e=await this._encryptBlock(this._zeroBlock),t=new Uint8Array(16),n=e[0]>>>6;for(let n=0;n<15;n++)t[n]=e[n+1]>>6|e[n]<<2,e[n]=e[n+1]>>7|e[n]<<1;let r=[0,135,14,137];t[14]^=n>>>1,t[15]=e[15]<<2^r[n],e[15]=e[15]<<1^r[n>>1],this._k1=e,this._k2=t}async _encryptCTR(e,t){let n=await window.crypto.subtle.encrypt({name:`AES-CTR`,counter:t,length:128},this._ctrKey,e);return new Uint8Array(n)}async _decryptCTR(e,t){let n=await window.crypto.subtle.decrypt({name:`AES-CTR`,counter:t,length:128},this._ctrKey,e);return new Uint8Array(n)}async _computeCMAC(e,t){if(t.length!==16)return null;let n=Math.floor(e.length/16),r=Math.ceil(e.length/16),i=e.length-n*16,a=new Uint8Array((r+1)*16);if(a.set(t),a.set(e,16),i===0)for(let e=0;e<16;e++)a[n*16+e]^=this._k1[e];else{a[(n+1)*16+i]=128;for(let e=0;e<16;e++)a[(n+1)*16+e]^=this._k2[e]}let o=await window.crypto.subtle.encrypt({name:`AES-CBC`,iv:this._zeroBlock},this._cbcKey,a);return o=new Uint8Array(o),o.slice(o.length-32,o.length-16)}static async importKey(t,n,r,i){let a=new e;return await a._importKey(t),a}async _importKey(e){this._rawKey=e,this._ctrKey=await window.crypto.subtle.importKey(`raw`,e,{name:`AES-CTR`},!1,[`encrypt`,`decrypt`]),this._cbcKey=await window.crypto.subtle.importKey(`raw`,e,{name:`AES-CBC`},!1,[`encrypt`]),await this._initCMAC()}async encrypt(e,t){let n=e.additionalData,r=e.iv,i=await this._computeCMAC(r,this._prefixBlock0),a=await this._encryptCTR(t,i),o=await this._computeCMAC(n,this._prefixBlock1),s=await this._computeCMAC(a,this._prefixBlock2);for(let e=0;e<16;e++)s[e]^=i[e]^o[e];let c=new Uint8Array(16+a.length);return c.set(a),c.set(s,a.length),c}async decrypt(e,t){let n=t.slice(0,t.length-16),r=e.additionalData,i=e.iv,a=t.slice(t.length-16),o=await this._computeCMAC(i,this._prefixBlock0),s=await this._computeCMAC(r,this._prefixBlock1),c=await this._computeCMAC(n,this._prefixBlock2);for(let e=0;e<16;e++)c[e]^=o[e]^s[e];if(c.length!==a.length)return null;for(let e=0;e<a.length;e++)if(c[e]!==a[e])return null;return await this._decryptCTR(n,o)}},ii=[13,16,10,23,0,4,2,27,14,5,20,9,22,18,11,3,25,7,15,6,26,19,12,1,40,51,30,36,46,54,29,39,50,44,32,47,43,48,38,55,33,52,45,41,49,35,28,31],ai=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],V=0,H=65536,U=1<<24,W=H|U,G=4,K=1024,q=G|K,oi=[W|K,0,H|V,W|q,W|G,H|q,V|G,H|V,V|K,W|K,W|q,V|K,U|q,W|G,U|V,V|G,V|q,U|K,U|K,H|K,H|K,W|V,W|V,U|q,H|G,U|G,U|G,H|G,0,V|q,H|q,U|V,H|V,W|q,V|G,W|V,W|K,U|V,U|V,V|K,W|G,H|V,H|K,U|G,V|K,V|G,U|q,H|q,W|q,H|G,W|V,U|q,U|G,V|q,H|q,W|K,V|q,U|K,U|K,0,H|G,H|K,0,W|G];H=1<<20,U=1<<31,W=H|U,G=32,K=32768,q=G|K;var si=[W|q,U|K,V|K,H|q,H|V,V|G,W|G,U|q,U|G,W|q,W|K,U|V,U|K,H|V,V|G,W|G,H|K,H|G,U|q,0,U|V,V|K,H|q,W|V,H|G,U|G,0,H|K,V|q,W|K,W|V,V|q,0,H|q,W|G,H|V,U|q,W|V,W|K,V|K,W|V,U|K,V|G,W|q,H|q,V|G,V|K,U|V,V|q,W|K,H|V,U|G,H|G,U|q,U|G,H|G,H|K,0,U|K,V|q,U|V,W|G,W|q,H|K];H=1<<17,U=1<<27,W=H|U,G=8,K=512,q=G|K;var ci=[V|q,W|K,0,W|G,U|K,0,H|q,U|K,H|G,U|G,U|G,H|V,W|q,H|G,W|V,V|q,U|V,V|G,W|K,V|K,H|K,W|V,W|G,H|q,U|q,H|K,H|V,U|q,V|G,W|q,V|K,U|V,W|K,U|V,H|G,V|q,H|V,W|K,U|K,0,V|K,H|G,W|q,U|K,U|G,V|K,0,W|G,U|q,H|V,U|V,W|q,V|G,H|q,H|K,U|G,W|V,U|q,V|q,W|V,H|q,V|G,W|G,H|K];H=8192,U=1<<23,W=H|U,G=1,K=128,q=G|K;var li=[W|G,H|q,H|q,V|K,W|K,U|q,U|G,H|G,0,W|V,W|V,W|q,V|q,0,U|K,U|G,V|G,H|V,U|V,W|G,V|K,U|V,H|G,H|K,U|q,V|G,H|K,U|K,H|V,W|K,W|q,V|q,U|K,U|G,W|V,W|q,V|q,0,0,W|V,H|K,U|K,U|q,V|G,W|G,H|q,H|q,V|K,W|q,V|q,V|G,H|V,U|G,H|G,W|K,U|q,H|G,H|K,U|V,W|G,V|K,U|V,H|V,W|K];H=1<<25,U=1<<30,W=H|U,G=256,K=1<<19,q=G|K;var ui=[V|G,H|q,H|K,W|G,V|K,V|G,U|V,H|K,U|q,V|K,H|G,U|q,W|G,W|K,V|q,U|V,H|V,U|K,U|K,0,U|G,W|q,W|q,H|G,W|K,U|G,0,W|V,H|q,H|V,W|V,V|q,V|K,W|G,V|G,H|V,U|V,H|K,W|G,U|q,H|G,U|V,W|K,H|q,U|q,V|G,H|V,W|K,W|q,V|q,W|V,W|q,H|K,0,U|K,W|V,V|q,H|G,U|G,V|K,0,U|K,H|q,U|G];H=1<<22,U=1<<29,W=H|U,G=16,K=16384,q=G|K;var di=[U|G,W|V,V|K,W|q,W|V,V|G,W|q,H|V,U|K,H|q,H|V,U|G,H|G,U|K,U|V,V|q,0,H|G,U|q,V|K,H|K,U|q,V|G,W|G,W|G,0,H|q,W|K,V|q,H|K,W|K,U|V,U|K,V|G,W|G,H|K,W|q,H|V,V|q,U|G,H|V,U|K,U|V,V|q,U|G,W|q,H|K,W|V,H|q,W|K,0,W|G,V|G,V|K,W|V,H|q,V|K,H|G,U|q,0,W|K,U|V,H|G,U|q];H=1<<21,U=1<<26,W=H|U,G=2,K=2048,q=G|K;var fi=[H|V,W|G,U|q,0,V|K,U|q,H|q,W|K,W|q,H|V,0,U|G,V|G,U|V,W|G,V|q,U|K,H|q,H|G,U|K,U|G,W|V,W|K,H|G,W|V,V|K,V|q,W|q,H|K,V|G,U|V,H|K,U|V,H|K,H|V,U|q,U|q,W|G,W|G,V|G,H|G,U|V,U|K,H|V,W|K,V|q,H|q,W|K,V|q,U|G,W|q,W|V,H|K,0,V|G,W|q,0,H|q,W|V,V|K,U|G,U|K,V|K,H|G];H=1<<18,U=1<<28,W=H|U,G=64,K=4096,q=G|K;var pi=[U|q,V|K,H|V,W|q,U|V,U|q,V|G,U|V,H|G,W|V,W|q,H|K,W|K,H|q,V|K,V|G,W|V,U|G,U|K,V|q,H|K,H|G,W|G,W|K,V|q,0,0,W|G,U|G,U|K,H|q,H|V,H|q,H|V,W|K,V|K,V|G,W|G,V|K,H|q,U|K,V|G,U|G,W|V,W|G,U|V,H|V,U|q,0,W|q,H|G,U|G,W|V,U|K,U|q,0,W|q,H|K,H|K,V|q,V|q,H|G,U|V,W|K],mi=class{constructor(e){this.keys=[];let t=[],n=[],r=[];for(let n=0,r=56;n<56;++n,r-=8){r+=r<-5?65:r<-3?31:r<-1?63:r===27?35:0;let i=r&7;t[n]=e[r>>>3]&1<<i?1:0}for(let e=0;e<16;++e){let i=e<<1,a=i+1;r[i]=r[a]=0;for(let r=28;r<59;r+=28)for(let i=r-28;i<r;++i){let a=i+ai[e];n[i]=a<r?t[a]:t[a-28]}for(let e=0;e<24;++e)n[ii[e]]!==0&&(r[i]|=1<<23-e),n[ii[e+24]]!==0&&(r[a]|=1<<23-e)}for(let e=0,t=0,n=0;e<16;++e){let e=r[t++],i=r[t++];this.keys[n]=(e&16515072)<<6,this.keys[n]|=(e&4032)<<10,this.keys[n]|=(i&16515072)>>>10,this.keys[n]|=(i&4032)>>>6,++n,this.keys[n]=(e&258048)<<12,this.keys[n]|=(e&63)<<16,this.keys[n]|=(i&258048)>>>4,this.keys[n]|=i&63,++n}}enc8(e){let t=e.slice(),n=0,r,i,a;r=t[n++]<<24|t[n++]<<16|t[n++]<<8|t[n++],i=t[n++]<<24|t[n++]<<16|t[n++]<<8|t[n++],a=(r>>>4^i)&252645135,i^=a,r^=a<<4,a=(r>>>16^i)&65535,i^=a,r^=a<<16,a=(i>>>2^r)&858993459,r^=a,i^=a<<2,a=(i>>>8^r)&16711935,r^=a,i^=a<<8,i=i<<1|i>>>31&1,a=(r^i)&2863311530,r^=a,i^=a,r=r<<1|r>>>31&1;for(let e=0,t=0;e<8;++e){a=i<<28|i>>>4,a^=this.keys[t++];let e=fi[a&63];e|=ui[a>>>8&63],e|=ci[a>>>16&63],e|=oi[a>>>24&63],a=i^this.keys[t++],e|=pi[a&63],e|=di[a>>>8&63],e|=li[a>>>16&63],e|=si[a>>>24&63],r^=e,a=r<<28|r>>>4,a^=this.keys[t++],e=fi[a&63],e|=ui[a>>>8&63],e|=ci[a>>>16&63],e|=oi[a>>>24&63],a=r^this.keys[t++],e|=pi[a&63],e|=di[a>>>8&63],e|=li[a>>>16&63],e|=si[a>>>24&63],i^=e}for(i=i<<31|i>>>1,a=(r^i)&2863311530,r^=a,i^=a,r=r<<31|r>>>1,a=(r>>>8^i)&16711935,i^=a,r^=a<<8,a=(r>>>2^i)&858993459,i^=a,r^=a<<2,a=(i>>>16^r)&65535,r^=a,i^=a<<16,a=(i>>>4^r)&252645135,r^=a,i^=a<<4,a=[i,r],n=0;n<8;n++)t[n]=(a[n>>>2]>>>8*(3-n%4))%256,t[n]<0&&(t[n]+=256);return t}},hi=class e{constructor(){this._cipher=null}get algorithm(){return{name:`DES-ECB`}}static importKey(t,n,r,i){let a=new e;return a._importKey(t),a}_importKey(e,t,n){this._cipher=new mi(e)}encrypt(e,t){let n=new Uint8Array(t);if(n.length%8!=0||this._cipher===null)return null;let r=n.length/8;for(let e=0;e<r;e++)n.set(this._cipher.enc8(n.slice(e*8,e*8+8)),e*8);return n}},gi=class e{constructor(){this._cipher=null}get algorithm(){return{name:`DES-CBC`}}static importKey(t,n,r,i){let a=new e;return a._importKey(t),a}_importKey(e){this._cipher=new mi(e)}encrypt(e,t){let n=new Uint8Array(t),r=new Uint8Array(e.iv);if(n.length%8!=0||this._cipher===null)return null;let i=n.length/8;for(let e=0;e<i;e++){for(let n=0;n<8;n++)r[n]^=t[e*8+n];r=this._cipher.enc8(r),n.set(r,e*8)}return n}};function _i(e,t,n){let r=1n;for(e%=n;t>0n;)(t&1n)==1n&&(r=r*e%n),t>>=1n,e=e*e%n;return r}function vi(e,t=0){let n=e.toString(16);t===0&&(t=Math.ceil(n.length/2)),n=n.padStart(t*2,`0`);let r=n.length/2,i=new Uint8Array(r);for(let e=0;e<r;e++)i[e]=parseInt(n.slice(e*2,e*2+2),16);return i}function yi(e){let t=`0x`;for(let n=0;n<e.length;n++)t+=e[n].toString(16).padStart(2,`0`);return BigInt(t)}var bi=class e{constructor(){this._keyLength=0,this._keyBytes=0,this._n=null,this._e=null,this._d=null,this._nBigInt=null,this._eBigInt=null,this._dBigInt=null,this._extractable=!1}get algorithm(){return{name:`RSA-PKCS1-v1_5`}}_base64urlDecode(e){return e=e.replace(/-/g,`+`).replace(/_/g,`/`),e=e.padEnd(Math.ceil(e.length/4)*4,`=`),u.decode(e)}_padArray(e,t){let n=new Uint8Array(t);return n.set(e,t-e.length),n}static async generateKey(t,n,r){let i=new e;return await i._generateKey(t,n),{privateKey:i}}async _generateKey(e,t){this._keyLength=e.modulusLength,this._keyBytes=Math.ceil(this._keyLength/8);let n=await window.crypto.subtle.generateKey({name:`RSA-OAEP`,modulusLength:e.modulusLength,publicExponent:e.publicExponent,hash:{name:`SHA-256`}},!0,[`encrypt`,`decrypt`]),r=await window.crypto.subtle.exportKey(`jwk`,n.privateKey);this._n=this._padArray(this._base64urlDecode(r.n),this._keyBytes),this._nBigInt=yi(this._n),this._e=this._padArray(this._base64urlDecode(r.e),this._keyBytes),this._eBigInt=yi(this._e),this._d=this._padArray(this._base64urlDecode(r.d),this._keyBytes),this._dBigInt=yi(this._d),this._extractable=t}static async importKey(t,n,r,i){if(i.length!==1||i[0]!==`encrypt`)throw Error(`only support importing RSA public key`);let a=new e;return await a._importKey(t,r),a}async _importKey(e,t){let n=e.n,r=e.e;if(n.length!==r.length)throw Error(`the sizes of modulus and public exponent do not match`);this._keyBytes=n.length,this._keyLength=this._keyBytes*8,this._n=new Uint8Array(this._keyBytes),this._e=new Uint8Array(this._keyBytes),this._n.set(n),this._e.set(r),this._nBigInt=yi(this._n),this._eBigInt=yi(this._e),this._extractable=t}async encrypt(e,t){if(t.length>this._keyBytes-11)return null;let n=new Uint8Array(this._keyBytes-t.length-3);window.crypto.getRandomValues(n);for(let e=0;e<n.length;e++)n[e]=Math.floor(n[e]*254/255+1);let r=new Uint8Array(this._keyBytes);return r[1]=2,r.set(n,2),r.set(t,n.length+3),vi(_i(yi(r),this._eBigInt,this._nBigInt),this._keyBytes)}async decrypt(e,t){if(t.length!==this._keyBytes)return null;let n=vi(_i(yi(t),this._dBigInt,this._nBigInt),this._keyBytes);if(n[0]!==0||n[1]!==2)return null;let r=2;for(;r<n.length&&n[r]!==0;r++);return r===n.length?null:n.slice(r+1,n.length)}async exportKey(){if(!this._extractable)throw Error(`key is not extractable`);return{n:this._n,e:this._e,d:this._d}}},xi=class{constructor(e){this._key=e}get algorithm(){return{name:`DH`}}exportKey(){return this._key}},Si=class e{constructor(){this._g=null,this._p=null,this._gBigInt=null,this._pBigInt=null,this._privateKey=null}get algorithm(){return{name:`DH`}}static generateKey(t,n){let r=new e;return r._generateKey(t),{privateKey:r,publicKey:new xi(r._publicKey)}}_generateKey(e){let t=e.g,n=e.p;this._keyBytes=n.length,this._gBigInt=yi(t),this._pBigInt=yi(n),this._privateKey=window.crypto.getRandomValues(new Uint8Array(this._keyBytes)),this._privateKeyBigInt=yi(this._privateKey),this._publicKey=vi(_i(this._gBigInt,this._privateKeyBigInt,this._pBigInt),this._keyBytes)}deriveBits(e,t){let n=Math.ceil(t/8),r=new Uint8Array(e.public),i=n>this._keyBytes?n:this._keyBytes;return vi(_i(yi(r),this._privateKeyBigInt,this._pBigInt),i).slice(0,i)}};async function Ci(e){let t=``;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return wi(Ei(Di(Ti(t),8*t.length)))}function wi(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}function Ti(e){let t=Array(e.length>>2);for(let e=0;e<t.length;e++)t[e]=0;for(let n=0;n<8*e.length;n+=8)t[n>>5]|=(255&e.charCodeAt(n/8))<<n%32;return t}function Ei(e){let t=``;for(let n=0;n<32*e.length;n+=8)t+=String.fromCharCode(e[n>>5]>>>n%32&255);return t}function Di(e,t){e[t>>5]|=128<<t%32,e[14+(t+64>>>9<<4)]=t;let n=1732584193,r=-271733879,i=-1732584194,a=271733878;for(let t=0;t<e.length;t+=16){let o=n,s=r,c=i,l=a;r=Z(r=Z(r=Z(r=Z(r=X(r=X(r=X(r=X(r=Y(r=Y(r=Y(r=Y(r=J(r=J(r=J(r=J(r,i=J(i,a=J(a,n=J(n,r,i,a,e[t+0],7,-680876936),r,i,e[t+1],12,-389564586),n,r,e[t+2],17,606105819),a,n,e[t+3],22,-1044525330),i=J(i,a=J(a,n=J(n,r,i,a,e[t+4],7,-176418897),r,i,e[t+5],12,1200080426),n,r,e[t+6],17,-1473231341),a,n,e[t+7],22,-45705983),i=J(i,a=J(a,n=J(n,r,i,a,e[t+8],7,1770035416),r,i,e[t+9],12,-1958414417),n,r,e[t+10],17,-42063),a,n,e[t+11],22,-1990404162),i=J(i,a=J(a,n=J(n,r,i,a,e[t+12],7,1804603682),r,i,e[t+13],12,-40341101),n,r,e[t+14],17,-1502002290),a,n,e[t+15],22,1236535329),i=Y(i,a=Y(a,n=Y(n,r,i,a,e[t+1],5,-165796510),r,i,e[t+6],9,-1069501632),n,r,e[t+11],14,643717713),a,n,e[t+0],20,-373897302),i=Y(i,a=Y(a,n=Y(n,r,i,a,e[t+5],5,-701558691),r,i,e[t+10],9,38016083),n,r,e[t+15],14,-660478335),a,n,e[t+4],20,-405537848),i=Y(i,a=Y(a,n=Y(n,r,i,a,e[t+9],5,568446438),r,i,e[t+14],9,-1019803690),n,r,e[t+3],14,-187363961),a,n,e[t+8],20,1163531501),i=Y(i,a=Y(a,n=Y(n,r,i,a,e[t+13],5,-1444681467),r,i,e[t+2],9,-51403784),n,r,e[t+7],14,1735328473),a,n,e[t+12],20,-1926607734),i=X(i,a=X(a,n=X(n,r,i,a,e[t+5],4,-378558),r,i,e[t+8],11,-2022574463),n,r,e[t+11],16,1839030562),a,n,e[t+14],23,-35309556),i=X(i,a=X(a,n=X(n,r,i,a,e[t+1],4,-1530992060),r,i,e[t+4],11,1272893353),n,r,e[t+7],16,-155497632),a,n,e[t+10],23,-1094730640),i=X(i,a=X(a,n=X(n,r,i,a,e[t+13],4,681279174),r,i,e[t+0],11,-358537222),n,r,e[t+3],16,-722521979),a,n,e[t+6],23,76029189),i=X(i,a=X(a,n=X(n,r,i,a,e[t+9],4,-640364487),r,i,e[t+12],11,-421815835),n,r,e[t+15],16,530742520),a,n,e[t+2],23,-995338651),i=Z(i,a=Z(a,n=Z(n,r,i,a,e[t+0],6,-198630844),r,i,e[t+7],10,1126891415),n,r,e[t+14],15,-1416354905),a,n,e[t+5],21,-57434055),i=Z(i,a=Z(a,n=Z(n,r,i,a,e[t+12],6,1700485571),r,i,e[t+3],10,-1894986606),n,r,e[t+10],15,-1051523),a,n,e[t+1],21,-2054922799),i=Z(i,a=Z(a,n=Z(n,r,i,a,e[t+8],6,1873313359),r,i,e[t+15],10,-30611744),n,r,e[t+6],15,-1560198380),a,n,e[t+13],21,1309151649),i=Z(i,a=Z(a,n=Z(n,r,i,a,e[t+4],6,-145523070),r,i,e[t+11],10,-1120210379),n,r,e[t+2],15,718787259),a,n,e[t+9],21,-343485551),n=ki(n,o),r=ki(r,s),i=ki(i,c),a=ki(a,l)}return[n,r,i,a]}function Oi(e,t,n,r,i,a){return ki(Ai(ki(ki(t,e),ki(r,a)),i),n)}function J(e,t,n,r,i,a,o){return Oi(t&n|~t&r,e,t,i,a,o)}function Y(e,t,n,r,i,a,o){return Oi(t&r|n&~r,e,t,i,a,o)}function X(e,t,n,r,i,a,o){return Oi(t^n^r,e,t,i,a,o)}function Z(e,t,n,r,i,a,o){return Oi(n^(t|~r),e,t,i,a,o)}function ki(e,t){let n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function Ai(e,t){return e<<t|e>>>32-t}var Q=new class{constructor(){this._algorithms={"AES-ECB":ni,"AES-EAX":ri,"DES-ECB":hi,"DES-CBC":gi,"RSA-PKCS1-v1_5":bi,DH:Si,MD5:Ci}}encrypt(e,t,n){if(t.algorithm.name!==e.name)throw Error(`algorithm does not match`);if(typeof t.encrypt!=`function`)throw Error(`key does not support encryption`);return t.encrypt(e,n)}decrypt(e,t,n){if(t.algorithm.name!==e.name)throw Error(`algorithm does not match`);if(typeof t.decrypt!=`function`)throw Error(`key does not support encryption`);return t.decrypt(e,n)}importKey(e,t,n,r,i){if(e!==`raw`)throw Error(`key format is not supported`);let a=this._algorithms[n.name];if(a===void 0||typeof a.importKey!=`function`)throw Error(`algorithm is not supported`);return a.importKey(t,n,r,i)}generateKey(e,t,n){let r=this._algorithms[e.name];if(r===void 0||typeof r.generateKey!=`function`)throw Error(`algorithm is not supported`);return r.generateKey(e,t,n)}exportKey(e,t){if(e!==`raw`)throw Error(`key format is not supported`);if(typeof t.exportKey!=`function`)throw Error(`key does not support exportKey`);return t.exportKey()}digest(e,t){let n=this._algorithms[e];if(typeof n!=`function`)throw Error(`algorithm is not supported`);return n(t)}deriveBits(e,t,n){if(t.algorithm.name!==e.name)throw Error(`algorithm does not match`);if(typeof t.deriveBits!=`function`)throw Error(`key does not support deriveBits`);return t.deriveBits(e,n)}},ji=class{constructor(){this._cipher=null,this._counter=new Uint8Array(16)}async setKey(e){this._cipher=await Q.importKey(`raw`,e,{name:`AES-EAX`},!1,[`encrypt, decrypt`])}async makeMessage(e){let t=new Uint8Array([(e.length&65280)>>>8,e.length&255]),n=await Q.encrypt({name:`AES-EAX`,iv:this._counter,additionalData:t},this._cipher,e);for(let e=0;e<16&&this._counter[e]++===255;e++);let r=new Uint8Array(e.length+2+16);return r.set(t),r.set(n,2),r}async receiveMessage(e,t){let n=new Uint8Array([(e&65280)>>>8,e&255]),r=await Q.decrypt({name:`AES-EAX`,iv:this._counter,additionalData:n},this._cipher,t);for(let e=0;e<16&&this._counter[e]++===255;e++);return r}},Mi=class extends ee{constructor(e,t){super(),this._hasStarted=!1,this._checkSock=null,this._checkCredentials=null,this._approveServerResolve=null,this._sockReject=null,this._credentialsReject=null,this._approveServerReject=null,this._sock=e,this._getCredentials=t}_waitSockAsync(e){return new Promise((t,n)=>{let r=()=>!this._sock.rQwait(`RA2`,e);r()?t():(this._checkSock=()=>{r()&&(t(),this._checkSock=null,this._sockReject=null)},this._sockReject=n)})}_waitApproveKeyAsync(){return new Promise((e,t)=>{this._approveServerResolve=e,this._approveServerReject=t})}_waitCredentialsAsync(e){let t=()=>e===1&&this._getCredentials().username!==void 0&&this._getCredentials().password!==void 0||e===2&&this._getCredentials().password!==void 0;return new Promise((e,n)=>{t()?e():(this._checkCredentials=()=>{t()&&(e(),this._checkCredentials=null,this._credentialsReject=null)},this._credentialsReject=n)})}checkInternalEvents(){this._checkSock!==null&&this._checkSock(),this._checkCredentials!==null&&this._checkCredentials()}approveServer(){this._approveServerResolve!==null&&(this._approveServerResolve(),this._approveServerResolve=null)}disconnect(){this._sockReject!==null&&(this._sockReject(Error(`disconnect normally`)),this._sockReject=null),this._credentialsReject!==null&&(this._credentialsReject(Error(`disconnect normally`)),this._credentialsReject=null),this._approveServerReject!==null&&(this._approveServerReject(Error(`disconnect normally`)),this._approveServerReject=null)}async negotiateRA2neAuthAsync(){this._hasStarted=!0,await this._waitSockAsync(4);let e=this._sock.rQpeekBytes(4),t=this._sock.rQshift32();if(t<1024)throw Error(`RA2: server public key is too short: `+t);if(t>8192)throw Error(`RA2: server public key is too long: `+t);let n=Math.ceil(t/8);await this._waitSockAsync(n*2);let r=this._sock.rQshiftBytes(n),i=this._sock.rQshiftBytes(n),a=await Q.importKey(`raw`,{n:r,e:i},{name:`RSA-PKCS1-v1_5`},!1,[`encrypt`]),o=new Uint8Array(4+n*2);o.set(e),o.set(r,4),o.set(i,4+n);let s=this._waitApproveKeyAsync();this.dispatchEvent(new CustomEvent(`serververification`,{detail:{type:`RSA`,publickey:o}})),await s;let c=(await Q.generateKey({name:`RSA-PKCS1-v1_5`,modulusLength:2048,publicExponent:new Uint8Array([1,0,1])},!0,[`encrypt`])).privateKey,u=await Q.exportKey(`raw`,c),d=u.n,f=u.e,p=new Uint8Array(516);p[0]=0,p[1]=0,p[2]=8,p[3]=0,p.set(d,4),p.set(f,260),this._sock.sQpushBytes(p),this._sock.flush();let m=new Uint8Array(16);window.crypto.getRandomValues(m);let h=await Q.encrypt({name:`RSA-PKCS1-v1_5`},a,m),g=new Uint8Array(2+n);if(g[0]=(n&65280)>>>8,g[1]=n&255,g.set(h,2),this._sock.sQpushBytes(g),this._sock.flush(),await this._waitSockAsync(2),this._sock.rQshift16()!==256)throw Error(`RA2: wrong encrypted message length`);let _=this._sock.rQshiftBytes(256),v=await Q.decrypt({name:`RSA-PKCS1-v1_5`},c,_);if(v===null||v.length!==16)throw Error(`RA2: corrupted server encrypted random`);let y=new Uint8Array(32),b=new Uint8Array(32);y.set(v),y.set(m,16),b.set(m),b.set(v,16),y=await window.crypto.subtle.digest(`SHA-1`,y),y=new Uint8Array(y).slice(0,16),b=await window.crypto.subtle.digest(`SHA-1`,b),b=new Uint8Array(b).slice(0,16);let x=new ji;await x.setKey(y);let S=new ji;await S.setKey(b);let C=new Uint8Array(8+n*2+512),w=new Uint8Array(8+n*2+512);if(C.set(o),C.set(p,4+n*2),w.set(p),w.set(o,516),C=await window.crypto.subtle.digest(`SHA-1`,C),w=await window.crypto.subtle.digest(`SHA-1`,w),C=new Uint8Array(C),w=new Uint8Array(w),this._sock.sQpushBytes(await x.makeMessage(w)),this._sock.flush(),await this._waitSockAsync(38),this._sock.rQshift16()!==20)throw Error(`RA2: wrong server hash`);let T=await S.receiveMessage(20,this._sock.rQshiftBytes(36));if(T===null)throw Error(`RA2: failed to authenticate the message`);for(let e=0;e<20;e++)if(T[e]!==C[e])throw Error(`RA2: wrong server hash`);if(await this._waitSockAsync(19),this._sock.rQshift16()!==1)throw Error(`RA2: wrong subtype`);let E=await S.receiveMessage(1,this._sock.rQshiftBytes(17));if(E===null)throw Error(`RA2: failed to authenticate the message`);E=E[0];let D=this._waitCredentialsAsync(E);if(E===1)(this._getCredentials().username===void 0||this._getCredentials().password===void 0)&&this.dispatchEvent(new CustomEvent(`credentialsrequired`,{detail:{types:[`username`,`password`]}}));else if(E===2)this._getCredentials().password===void 0&&this.dispatchEvent(new CustomEvent(`credentialsrequired`,{detail:{types:[`password`]}}));else throw Error(`RA2: wrong subtype`);await D;let O;O=E===1?l(this._getCredentials().username).slice(0,255):``;let ee=l(this._getCredentials().password).slice(0,255),te=new Uint8Array(O.length+ee.length+2);te[0]=O.length,te[O.length+1]=ee.length;for(let e=0;e<O.length;e++)te[e+1]=O.charCodeAt(e);for(let e=0;e<ee.length;e++)te[O.length+2+e]=ee.charCodeAt(e);this._sock.sQpushBytes(await x.makeMessage(te)),this._sock.flush()}get hasStarted(){return this._hasStarted}set hasStarted(e){this._hasStarted=e}},Ni=class{constructor(){this._lines=0}decodeRect(e,t,n,r,i,a,o){if(n===0||r===0)return!0;this._lines===0&&(this._lines=r);let s=n*(o==8?1:4);for(;this._lines>0;){if(i.rQwait(`RAW`,s))return!1;let c=t+(r-this._lines),l=i.rQshiftBytes(s,!1);if(o==8){let e=new Uint8Array(n*4);for(let t=0;t<n;t++)e[t*4+0]=(l[t]>>0&3)*255/3,e[t*4+1]=(l[t]>>2&3)*255/3,e[t*4+2]=(l[t]>>4&3)*255/3,e[t*4+3]=255;l=e}for(let e=0;e<n;e++)l[e*4+3]=255;a.blitImage(e,c,n,1,l,0),this._lines--}return!0}},Pi=class{decodeRect(e,t,n,r,i,a,o){if(i.rQwait(`COPYRECT`,4))return!1;let s=i.rQshift16(),c=i.rQshift16();return n===0||r===0||a.copyImage(s,c,e,t,n,r),!0}},Fi=class{constructor(){this._subrects=0}decodeRect(e,t,n,r,i,a,o){if(this._subrects===0){if(i.rQwait(`RRE`,8))return!1;this._subrects=i.rQshift32();let o=i.rQshiftBytes(4);a.fillRect(e,t,n,r,o)}for(;this._subrects>0;){if(i.rQwait(`RRE`,12))return!1;let n=i.rQshiftBytes(4),r=i.rQshift16(),o=i.rQshift16(),s=i.rQshift16(),c=i.rQshift16();a.fillRect(e+r,t+o,s,c,n),this._subrects--}return!0}},Ii=class{constructor(){this._tiles=0,this._lastsubencoding=0,this._tileBuffer=new Uint8Array(1024)}decodeRect(e,t,n,i,a,o,s){for(this._tiles===0&&(this._tilesX=Math.ceil(n/16),this._tilesY=Math.ceil(i/16),this._totalTiles=this._tilesX*this._tilesY,this._tiles=this._totalTiles);this._tiles>0;){let s=1;if(a.rQwait(`HEXTILE`,s))return!1;let c=a.rQpeek8();if(c>30)throw Error(`Illegal hextile subencoding (subencoding: `+c+`)`);let l=this._totalTiles-this._tiles,u=l%this._tilesX,d=Math.floor(l/this._tilesX),f=e+u*16,p=t+d*16,m=Math.min(16,e+n-f),h=Math.min(16,t+i-p);if(c&1)s+=m*h*4;else if(c&2&&(s+=4),c&4&&(s+=4),c&8){if(s++,a.rQwait(`HEXTILE`,s))return!1;let e=a.rQpeekBytes(s).at(-1);c&16?s+=e*6:s+=e*2}if(a.rQwait(`HEXTILE`,s))return!1;if(a.rQshift8(),c===0)this._lastsubencoding&1?r(` Ignoring blank after RAW`):o.fillRect(f,p,m,h,this._background);else if(c&1){let e=m*h,t=a.rQshiftBytes(e*4,!1);for(let n=0;n<e;n++)t[n*4+3]=255;o.blitImage(f,p,m,h,t,0)}else{if(c&2&&(this._background=new Uint8Array(a.rQshiftBytes(4))),c&4&&(this._foreground=new Uint8Array(a.rQshiftBytes(4))),this._startTile(f,p,m,h,this._background),c&8){let e=a.rQshift8();for(let t=0;t<e;t++){let e;e=c&16?a.rQshiftBytes(4):this._foreground;let t=a.rQshift8(),n=t>>4,r=t&15,i=a.rQshift8(),o=(i>>4)+1,s=(i&15)+1;this._subTile(n,r,o,s,e)}}this._finishTile(o)}this._lastsubencoding=c,this._tiles--}return!0}_startTile(e,t,n,r,i){this._tileX=e,this._tileY=t,this._tileW=n,this._tileH=r;let a=i[0],o=i[1],s=i[2],c=this._tileBuffer;for(let e=0;e<n*r*4;e+=4)c[e]=a,c[e+1]=o,c[e+2]=s,c[e+3]=255}_subTile(e,t,n,r,i){let a=i[0],o=i[1],s=i[2],c=e+n,l=t+r,u=this._tileBuffer,d=this._tileW;for(let n=t;n<l;n++)for(let t=e;t<c;t++){let e=(t+n*d)*4;u[e]=a,u[e+1]=o,u[e+2]=s,u[e+3]=255}}_finishTile(e){e.blitImage(this._tileX,this._tileY,this._tileW,this._tileH,this._tileBuffer,0)}},Li=class{constructor(){this._zlib=new _t,this._length=0}decodeRect(e,t,n,r,i,a,o){if(n===0||r===0)return!0;if(this._length===0){if(i.rQwait(`ZLIB`,4))return!1;this._length=i.rQshift32()}if(i.rQwait(`ZLIB`,this._length))return!1;let s=new Uint8Array(i.rQshiftBytes(this._length,!1));this._length=0,this._zlib.setInput(s),s=this._zlib.inflate(n*r*4),this._zlib.setInput(null);for(let e=0;e<n*r;e++)s[e*4+3]=255;return a.blitImage(e,t,n,r,s,0),!0}},Ri=class{constructor(){this._ctl=null,this._filter=null,this._numColors=0,this._palette=new Uint8Array(1024),this._len=0,this._zlibs=[];for(let e=0;e<4;e++)this._zlibs[e]=new _t}decodeRect(e,t,n,r,a,o,s){if(this._ctl===null){if(a.rQwait(`TIGHT compression-control`,1))return!1;this._ctl=a.rQshift8();for(let e=0;e<4;e++)this._ctl>>e&1&&(this._zlibs[e].reset(),i(`Reset zlib stream `+e));this._ctl>>=4}let c;if(this._ctl===8)c=this._fillRect(e,t,n,r,a,o,s);else if(this._ctl===9)c=this._jpegRect(e,t,n,r,a,o,s);else if(this._ctl===10)c=this._pngRect(e,t,n,r,a,o,s);else if(!(this._ctl&8))c=this._basicRect(this._ctl,e,t,n,r,a,o,s);else throw Error(`Illegal tight compression received (ctl: `+this._ctl+`)`);return c&&(this._ctl=null),c}_fillRect(e,t,n,r,i,a,o){if(i.rQwait(`TIGHT`,3))return!1;let s=i.rQshiftBytes(3);return a.fillRect(e,t,n,r,s,!1),!0}_jpegRect(e,t,n,r,i,a,o){let s=this._readData(i);return s!==null&&(a.imageRect(e,t,n,r,`image/jpeg`,s),!0)}_pngRect(e,t,n,r,i,a,o){throw Error(`PNG received in standard Tight rect`)}_basicRect(e,t,n,r,i,a,o,s){if(this._filter===null){if(e&4){if(a.rQwait(`TIGHT`,1))return!1;this._filter=a.rQshift8()}else this._filter=0}let c=e&3,l;switch(this._filter){case 0:l=this._copyFilter(c,t,n,r,i,a,o,s);break;case 1:l=this._paletteFilter(c,t,n,r,i,a,o,s);break;case 2:l=this._gradientFilter(c,t,n,r,i,a,o,s);break;default:throw Error(`Illegal tight filter received (ctl: `+this._filter+`)`)}return l&&(this._filter=null),l}_copyFilter(e,t,n,r,i,a,o,s){let c=r*i*3,l;if(c===0)return!0;if(c<12){if(a.rQwait(`TIGHT`,c))return!1;l=a.rQshiftBytes(c)}else{if(l=this._readData(a),l===null)return!1;this._zlibs[e].setInput(l),l=this._zlibs[e].inflate(c),this._zlibs[e].setInput(null)}let u=new Uint8Array(r*i*4);for(let e=0,t=0;e<r*i*4;e+=4,t+=3)u[e]=l[t],u[e+1]=l[t+1],u[e+2]=l[t+2],u[e+3]=255;return o.blitImage(t,n,r,i,u,0,!1),!0}_paletteFilter(e,t,n,r,i,a,o,s){if(this._numColors===0){if(a.rQwait(`TIGHT palette`,1))return!1;let e=a.rQpeek8()+1,t=e*3;if(a.rQwait(`TIGHT palette`,1+t))return!1;this._numColors=e,a.rQskipBytes(1),a.rQshiftTo(this._palette,t)}let c=this._numColors<=2?1:8,l=Math.floor((r*c+7)/8)*i,u;if(l===0)return!0;if(l<12){if(a.rQwait(`TIGHT`,l))return!1;u=a.rQshiftBytes(l)}else{if(u=this._readData(a),u===null)return!1;this._zlibs[e].setInput(u),u=this._zlibs[e].inflate(l),this._zlibs[e].setInput(null)}return this._numColors==2?this._monoRect(t,n,r,i,u,this._palette,o):this._paletteRect(t,n,r,i,u,this._palette,o),this._numColors=0,!0}_monoRect(e,t,n,r,i,a,o){let s=this._getScratchBuffer(n*r*4),c=Math.floor((n+7)/8),l=Math.floor(n/8);for(let e=0;e<r;e++){let t,r,o;for(o=0;o<l;o++)for(let l=7;l>=0;l--)t=(e*n+o*8+7-l)*4,r=(i[e*c+o]>>l&1)*3,s[t]=a[r],s[t+1]=a[r+1],s[t+2]=a[r+2],s[t+3]=255;for(let l=7;l>=8-n%8;l--)t=(e*n+o*8+7-l)*4,r=(i[e*c+o]>>l&1)*3,s[t]=a[r],s[t+1]=a[r+1],s[t+2]=a[r+2],s[t+3]=255}o.blitImage(e,t,n,r,s,0,!1)}_paletteRect(e,t,n,r,i,a,o){let s=this._getScratchBuffer(n*r*4),c=n*r*4;for(let e=0,t=0;e<c;e+=4,t++){let n=i[t]*3;s[e]=a[n],s[e+1]=a[n+1],s[e+2]=a[n+2],s[e+3]=255}o.blitImage(e,t,n,r,s,0,!1)}_gradientFilter(e,t,n,r,i,a,o,s){let c=r*i*3,l;if(c===0)return!0;if(c<12){if(a.rQwait(`TIGHT`,c))return!1;l=a.rQshiftBytes(c)}else{if(l=this._readData(a),l===null)return!1;this._zlibs[e].setInput(l),l=this._zlibs[e].inflate(c),this._zlibs[e].setInput(null)}let u=new Uint8Array(4*r*i),d=0,f=0,p=new Uint8Array(3);for(let e=0;e<r;e++){for(let e=0;e<3;e++){let t=p[e],n=l[f++]+t;u[d++]=n,p[e]=n}u[d++]=255}let m=0,h=new Uint8Array(3),g=new Uint8Array(3);for(let e=1;e<i;e++){p.fill(0),g.fill(0);for(let e=0;e<r;e++){for(let e=0;e<3;e++){h[e]=u[m++];let t=p[e]+h[e]-g[e];t<0?t=0:t>255&&(t=255);let n=l[f++]+t;u[d++]=n,g[e]=h[e],p[e]=n}u[d++]=255,m++}}return o.blitImage(t,n,r,i,u,0,!1),!0}_readData(e){if(this._len===0){if(e.rQwait(`TIGHT`,3))return null;let t;t=e.rQshift8(),this._len=t&127,t&128&&(t=e.rQshift8(),this._len|=(t&127)<<7,t&128&&(t=e.rQshift8(),this._len|=t<<14))}if(e.rQwait(`TIGHT`,this._len))return null;let t=e.rQshiftBytes(this._len,!1);return this._len=0,t}_getScratchBuffer(e){return(!this._scratchBuffer||this._scratchBuffer.length<e)&&(this._scratchBuffer=new Uint8Array(e)),this._scratchBuffer}},zi=class extends Ri{_pngRect(e,t,n,r,i,a,o){let s=this._readData(i);return s!==null&&(a.imageRect(e,t,n,r,`image/png`,s),!0)}_basicRect(e,t,n,r,i,a,o,s){throw Error(`BasicCompression received in TightPNG rect`)}},Bi=64,Vi=64,Hi=class{constructor(){this._length=0,this._inflator=new _t,this._pixelBuffer=new Uint8Array(16384),this._tileBuffer=new Uint8Array(16384)}decodeRect(e,t,n,r,i,a,o){if(this._length===0){if(i.rQwait(`ZLib data length`,4))return!1;this._length=i.rQshift32()}if(i.rQwait(`Zlib data`,this._length))return!1;let s=i.rQshiftBytes(this._length,!1);this._inflator.setInput(s);for(let i=t;i<t+r;i+=Vi){let o=Math.min(Vi,t+r-i);for(let t=e;t<e+n;t+=Bi){let r=Math.min(Bi,e+n-t),s=r*o,c=this._inflator.inflate(1)[0];if(c===0){let e=this._readPixels(s);a.blitImage(t,i,r,o,e,0,!1)}else if(c===1){let e=this._readPixels(1);a.fillRect(t,i,r,o,[e[0],e[1],e[2]])}else if(c>=2&&c<=16){let e=this._decodePaletteTile(c,s,r,o);a.blitImage(t,i,r,o,e,0,!1)}else if(c===128){let e=this._decodeRLETile(s);a.blitImage(t,i,r,o,e,0,!1)}else if(c>=130&&c<=255){let e=this._decodeRLEPaletteTile(c-128,s);a.blitImage(t,i,r,o,e,0,!1)}else throw Error(`Unknown subencoding: `+c)}}return this._length=0,!0}_getBitsPerPixelInPalette(e){if(e<=2)return 1;if(e<=4)return 2;if(e<=16)return 4}_readPixels(e){let t=this._pixelBuffer,n=this._inflator.inflate(3*e);for(let r=0,i=0;r<e*4;r+=4,i+=3)t[r]=n[i],t[r+1]=n[i+1],t[r+2]=n[i+2],t[r+3]=255;return t}_decodePaletteTile(e,t,n,r){let i=this._tileBuffer,a=this._readPixels(e),o=this._getBitsPerPixelInPalette(e),s=(1<<o)-1,c=0,l=this._inflator.inflate(1)[0];for(let e=0;e<r;e++){let t=8-o;for(let e=0;e<n;e++){t<0&&(t=8-o,l=this._inflator.inflate(1)[0]);let e=l>>t&s;i[c]=a[e*4],i[c+1]=a[e*4+1],i[c+2]=a[e*4+2],i[c+3]=a[e*4+3],c+=4,t-=o}t<8-o&&e<r-1&&(l=this._inflator.inflate(1)[0])}return i}_decodeRLETile(e){let t=this._tileBuffer,n=0;for(;n<e;){let e=this._readPixels(1),r=this._readRLELength();for(let i=0;i<r;i++)t[n*4]=e[0],t[n*4+1]=e[1],t[n*4+2]=e[2],t[n*4+3]=e[3],n++}return t}_decodeRLEPaletteTile(e,t){let n=this._tileBuffer,r=this._readPixels(e),i=0;for(;i<t;){let a=this._inflator.inflate(1)[0],o=1;if(a>=128&&(a-=128,o=this._readRLELength()),a>e)throw Error(`Too big index in palette: `+a+`, palette size: `+e);if(i+o>t)throw Error(`Too big rle length in palette mode: `+o+`, allowed length is: `+(t-i));for(let e=0;e<o;e++)n[i*4]=r[a*4],n[i*4+1]=r[a*4+1],n[i*4+2]=r[a*4+2],n[i*4+3]=r[a*4+3],i++}return n}_readRLELength(){let e=0,t=0;do t=this._inflator.inflate(1)[0],e+=t;while(t===255);return e+1}},Ui=class{constructor(){this._cachedQuantTables=[],this._cachedHuffmanTables=[],this._segments=[]}decodeRect(e,t,n,r,i,a,o){for(;;){let e=this._readSegment(i);if(e===null)return!1;if(this._segments.push(e),e[1]===217)break}let s=[],c=[];for(let e of this._segments){let t=e[1];t===196?s.push(e):t===219&&c.push(e)}let l=this._segments.findIndex(e=>e[1]==192||e[1]==194);if(l==-1)throw Error(`Illegal JPEG image without SOF`);c.length===0&&this._segments.splice(l+1,0,...this._cachedQuantTables),s.length===0&&this._segments.splice(l+1,0,...this._cachedHuffmanTables);let u=0;for(let e of this._segments)u+=e.length;let d=new Uint8Array(u);u=0;for(let e of this._segments)d.set(e,u),u+=e.length;return a.imageRect(e,t,n,r,`image/jpeg`,d),s.length!==0&&(this._cachedHuffmanTables=s),c.length!==0&&(this._cachedQuantTables=c),this._segments=[],!0}_readSegment(e){if(e.rQwait(`JPEG`,2))return null;let t=e.rQshift8();if(t!=255)throw Error(`Illegal JPEG marker received (byte: `+t+`)`);let n=e.rQshift8();if(n>=208&&n<=217||n==1)return new Uint8Array([t,n]);if(e.rQwait(`JPEG`,2,2))return null;let r=e.rQshift16();if(r<2)throw Error(`Illegal JPEG length received (length: `+r+`)`);if(e.rQwait(`JPEG`,r-2,4))return null;let i=0;if(n===218){if(e.rQwait(`JPEG`,r-2+2,4))return null;let t=e.rQlen(),n=e.rQpeekBytes(t,!1);for(;;){let a=n.indexOf(255,r-2+i);if(a===-1||a===t-1)return e.rQwait(`JPEG`,1/0,4),null;if(n.at(a+1)===0||n.at(a+1)>=208&&n.at(a+1)<=215){i=a+2-(r-2);continue}i=a-(r-2);break}}let a=new Uint8Array(2+r+i);return a[0]=t,a[1]=n,a[2]=r>>8,a[3]=r,a.set(e.rQshiftBytes(r-2+i,!1),4),a}},Wi=class{constructor(e){this._data=e,this._index=0,this.profileIdc=null,this.constraintSet=null,this.levelIdc=null}_getStartSequenceLen(e){let t=this._data;return t[e+0]==0&&t[e+1]==0&&t[e+2]==0&&t[e+3]==1?4:t[e+0]==0&&t[e+1]==0&&t[e+2]==1?3:0}_indexOfNextNalUnit(e){let t=this._data;for(let n=e;n<t.length;++n)if(this._getStartSequenceLen(n)!=0)return n;return-1}_parseSps(e){this.profileIdc=this._data[e],this.constraintSet=this._data[e+1],this.levelIdc=this._data[e+2]}_parseNalUnit(e){let t=this._data[e];if(t&128)throw Error(`H264 parsing sanity check failed, forbidden zero bit is set`);let n=t&31;switch(n){case 1:return{slice:!0};case 5:return{slice:!0,key:!0};case 6:return{};case 7:return this._parseSps(e+1),{};case 8:return{};default:a(`Unhandled unit type: `,n)}return{}}parse(){let e=this._index,t=!1;for(;this._index<this._data.length;){let e=this._getStartSequenceLen(this._index);if(e==0)throw Error(`Invalid start sequence in bit stream`);let{slice:n,key:r}=this._parseNalUnit(this._index+e),i=this._indexOfNextNalUnit(this._index+e);if(this._index=i==-1?this._data.length:i,r&&(t=!0),n)break}return e===this._index?null:{frame:this._data.subarray(e,this._index),key:t}}},Gi=class{constructor(e,t){this.lastUsed=0,this._width=e,this._height=t,this._profileIdc=null,this._constraintSet=null,this._levelIdc=null,this._decoder=null,this._pendingFrames=[]}_handleFrame(e){let t=this._pendingFrames.shift();if(t===void 0)throw Error(`Pending frame queue empty when receiving frame from decoder`);if(t.timestamp!=e.timestamp)throw Error(`Video frame timestamp mismatch. Expected `+e.timestamp+` but but got `+t.timestamp);t.frame=e,t.ready=!0,t.resolve(),t.keep||e.close()}_handleError(e){throw Error(`Failed to decode frame: `+e.message)}_configureDecoder(e,t,n){(this._decoder===null||this._decoder.state===`closed`)&&(this._decoder=new VideoDecoder({output:e=>this._handleFrame(e),error:e=>this._handleError(e)}));let r=`avc1.`+e.toString(16).padStart(2,`0`)+t.toString(16).padStart(2,`0`)+n.toString(16).padStart(2,`0`);this._decoder.configure({codec:r,codedWidth:this._width,codedHeight:this._height,optimizeForLatency:!0})}_preparePendingFrame(e){let t={timestamp:e,promise:null,resolve:null,frame:null,ready:!1,keep:!1};return t.promise=new Promise(e=>{t.resolve=e}),this._pendingFrames.push(t),t}decode(e){let t=new Wi(e),n=null,r=Math.round(window.performance.now()*1e3);for(;;){let e=t.parse();if(e===null)break;if(t.profileIdc!==null&&(self._profileIdc=t.profileIdc,self._constraintSet=t.constraintSet,self._levelIdc=t.levelIdc),this._decoder===null||this._decoder.state!==`configured`){if(!e.key){a(`Missing key frame. Can't decode until one arrives`);continue}if(self._profileIdc===null){a(`Cannot config decoder. Have not received SPS and PPS yet.`);continue}this._configureDecoder(self._profileIdc,self._constraintSet,self._levelIdc)}n=this._preparePendingFrame(r);let i=new EncodedVideoChunk({timestamp:r,type:e.key?`key`:`delta`,data:e.frame});try{this._decoder.decode(i)}catch(e){a(`Failed to decode:`,e)}}return n!==null&&(n.keep=!0),n}},Ki=class{constructor(){this._tick=0,this._contexts={}}_contextId(e,t,n,r){return[e,t,n,r].join(`,`)}_findOldestContextId(){let e=Number.MAX_VALUE,t;for(let[n,r]of Object.entries(this._contexts))r.lastUsed<e&&(e=r.lastUsed,t=n);return t}_createContext(e,t,n,r){if(Object.keys(this._contexts).length>=64){let e=this._findOldestContextId();delete this._contexts[e]}let i=new Gi(n,r);return this._contexts[this._contextId(e,t,n,r)]=i,i}_getContext(e,t,n,r){let i=this._contexts[this._contextId(e,t,n,r)];return i===void 0?this._createContext(e,t,n,r):i}_resetContext(e,t,n,r){delete this._contexts[this._contextId(e,t,n,r)]}_resetAllContexts(){this._contexts={}}decodeRect(e,t,n,r,i,a,o){if(i.rQwait(`h264 header`,8))return!1;let s=i.rQshift32(),c=i.rQshift32();if(i.rQwait(`h264 payload`,s,8))return!1;c&2?this._resetAllContexts():c&1&&this._resetContext(e,t,n,r);let l=this._getContext(e,t,n,r);if(l.lastUsed=this._tick++,s!==0){let o=i.rQshiftBytes(s,!1),c=l.decode(o);c!==null&&a.videoFrame(e,t,n,r,c)}return!0}},qi=3,Ji=`rgb(40, 40, 40)`,Yi=17,Xi=50,Zi=19,Qi=75,$i=50,ea=1e3,ta=50,na=1,ra=2,ia=6,aa=16,oa=19,sa=22,ca=30,la=113,ua=129,da=256,fa=1,pa=1<<24,ma=1<<25,ha=1<<26,ga=1<<27,_a=1<<28,$=class e extends ee{constructor(t,n,i){if(!t)throw Error(`Must specify target`);if(!n)throw Error(`Must specify URL, WebSocket or RTCDataChannel`);window.isSecureContext||o(`noVNC requires a secure context (TLS). Expect crashes!`),super(),this._target=t,typeof n==`string`?this._url=n:(this._url=null,this._rawChannel=n),i||={},this._rfbCredentials=i.credentials||{},this._shared=`shared`in i?!!i.shared:!0,this._repeaterID=i.repeaterID||``,this._wsProtocols=i.wsProtocols||[],this._rfbConnectionState=``,this._rfbInitState=``,this._rfbAuthScheme=-1,this._rfbCleanDisconnect=!0,this._rfbRSAAESAuthenticationState=null,this._rfbVersion=0,this._rfbMaxVersion=3.8,this._rfbTightVNC=!1,this._rfbVeNCryptState=0,this._rfbXvpVer=0,this._fbWidth=0,this._fbHeight=0,this._fbName=``,this._capabilities={power:!1},this._supportsFence=!1,this._supportsContinuousUpdates=!1,this._enabledContinuousUpdates=!1,this._supportsSetDesktopSize=!1,this._screenID=0,this._screenFlags=0,this._pendingRemoteResize=!1,this._lastResize=0,this._qemuExtKeyEventSupported=!1,this._extendedPointerEventSupported=!1,this._clipboardText=null,this._clipboardServerCapabilitiesActions={},this._clipboardServerCapabilitiesFormats={},this._sock=null,this._display=null,this._flushing=!1,this._keyboard=null,this._gestures=null,this._resizeObserver=null,this._disconnTimer=null,this._resizeTimeout=null,this._mouseMoveTimer=null,this._decoders={},this._FBU={rects:0,x:0,y:0,width:0,height:0,encoding:null},this._mousePos={},this._mouseButtonMask=0,this._mouseLastMoveTime=0,this._viewportDragging=!1,this._viewportDragPos={},this._viewportHasMoved=!1,this._accumulatedWheelDeltaX=0,this._accumulatedWheelDeltaY=0,this._gestureLastTapTime=null,this._gestureFirstDoubleTapEv=null,this._gestureLastMagnitudeX=0,this._gestureLastMagnitudeY=0,this._eventHandlers={focusCanvas:this._focusCanvas.bind(this),handleResize:this._handleResize.bind(this),handleMouse:this._handleMouse.bind(this),handleWheel:this._handleWheel.bind(this),handleGesture:this._handleGesture.bind(this),handleRSAAESCredentialsRequired:this._handleRSAAESCredentialsRequired.bind(this),handleRSAAESServerVerification:this._handleRSAAESServerVerification.bind(this)},r(`>> RFB.constructor`),this._screen=document.createElement(`div`),this._screen.style.display=`flex`,this._screen.style.width=`100%`,this._screen.style.height=`100%`,this._screen.style.overflow=`auto`,this._screen.style.background=Ji,this._canvas=document.createElement(`canvas`),this._canvas.style.margin=`auto`,this._canvas.style.outline=`none`,this._canvas.width=0,this._canvas.height=0,this._canvas.tabIndex=-1,this._screen.appendChild(this._canvas),this._cursor=new Yr,this._cursorImage=e.cursors.none,this._decoders[B.encodingRaw]=new Ni,this._decoders[B.encodingCopyRect]=new Pi,this._decoders[B.encodingRRE]=new Fi,this._decoders[B.encodingHextile]=new Ii,this._decoders[B.encodingZlib]=new Li,this._decoders[B.encodingTight]=new Ri,this._decoders[B.encodingTightPNG]=new zi,this._decoders[B.encodingZRLE]=new Hi,this._decoders[B.encodingJPEG]=new Ui,this._decoders[B.encodingH264]=new Ki;try{this._display=new te(this._canvas)}catch(e){throw o(`Display exception: `+e),e}this._keyboard=new jr(this._canvas),this._keyboard.onkeyevent=this._handleKeyEvent.bind(this),this._remoteCapsLock=null,this._remoteNumLock=null,this._gestures=new qr,this._sock=new ei,this._sock.on(`open`,this._socketOpen.bind(this)),this._sock.on(`close`,this._socketClose.bind(this)),this._sock.on(`message`,this._handleMessage.bind(this)),this._sock.on(`error`,this._socketError.bind(this)),this._expectedClientWidth=null,this._expectedClientHeight=null,this._resizeObserver=new ResizeObserver(this._eventHandlers.handleResize),this._updateConnectionState(`connecting`),r(`<< RFB.constructor`),this.dragViewport=!1,this.focusOnClick=!0,this._viewOnly=!1,this._clipViewport=!1,this._clippingViewport=!1,this._scaleViewport=!1,this._resizeSession=!1,this._showDotCursor=!1,this._qualityLevel=6,this._compressionLevel=2}get viewOnly(){return this._viewOnly}set viewOnly(e){this._viewOnly=e,(this._rfbConnectionState===`connecting`||this._rfbConnectionState===`connected`)&&(e?this._keyboard.ungrab():this._keyboard.grab())}get capabilities(){return this._capabilities}get clippingViewport(){return this._clippingViewport}_setClippingViewport(e){e!==this._clippingViewport&&(this._clippingViewport=e,this.dispatchEvent(new CustomEvent(`clippingviewport`,{detail:this._clippingViewport})))}get touchButton(){return 0}set touchButton(e){a(`Using old API!`)}get clipViewport(){return this._clipViewport}set clipViewport(e){this._clipViewport=e,this._updateClip()}get scaleViewport(){return this._scaleViewport}set scaleViewport(e){this._scaleViewport=e,e&&this._clipViewport&&this._updateClip(),this._updateScale(),!e&&this._clipViewport&&this._updateClip()}get resizeSession(){return this._resizeSession}set resizeSession(e){this._resizeSession=e,e&&this._requestRemoteResize()}get showDotCursor(){return this._showDotCursor}set showDotCursor(e){this._showDotCursor=e,this._refreshCursor()}get background(){return this._screen.style.background}set background(e){this._screen.style.background=e}get qualityLevel(){return this._qualityLevel}set qualityLevel(e){if(!Number.isInteger(e)||e<0||e>9){o(`qualityLevel must be an integer between 0 and 9`);return}this._qualityLevel!==e&&(this._qualityLevel=e,this._rfbConnectionState===`connected`&&this._sendEncodings())}get compressionLevel(){return this._compressionLevel}set compressionLevel(e){if(!Number.isInteger(e)||e<0||e>9){o(`compressionLevel must be an integer between 0 and 9`);return}this._compressionLevel!==e&&(this._compressionLevel=e,this._rfbConnectionState===`connected`&&this._sendEncodings())}disconnect(){this._updateConnectionState(`disconnecting`),this._sock.off(`error`),this._sock.off(`message`),this._sock.off(`open`),this._rfbRSAAESAuthenticationState!==null&&this._rfbRSAAESAuthenticationState.disconnect()}approveServer(){this._rfbRSAAESAuthenticationState!==null&&this._rfbRSAAESAuthenticationState.approveServer()}sendCredentials(e){this._rfbCredentials=e,this._resumeAuthentication()}sendCtrlAltDel(){this._rfbConnectionState!==`connected`||this._viewOnly||(i(`Sending Ctrl-Alt-Del`),this.sendKey(L.XK_Control_L,`ControlLeft`,!0),this.sendKey(L.XK_Alt_L,`AltLeft`,!0),this.sendKey(L.XK_Delete,`Delete`,!0),this.sendKey(L.XK_Delete,`Delete`,!1),this.sendKey(L.XK_Alt_L,`AltLeft`,!1),this.sendKey(L.XK_Control_L,`ControlLeft`,!1))}machineShutdown(){this._xvpOp(1,2)}machineReboot(){this._xvpOp(1,3)}machineReset(){this._xvpOp(1,4)}sendKey(t,n,r){if(this._rfbConnectionState!==`connected`||this._viewOnly)return;if(r===void 0){this.sendKey(t,n,!0),this.sendKey(t,n,!1);return}let a=ti[n];if(this._qemuExtKeyEventSupported&&a)t||=0,i(`Sending key (`+(r?`down`:`up`)+`): keysym `+t+`, scancode `+a),e.messages.QEMUExtendedKeyEvent(this._sock,t,r,a);else{if(!t)return;i(`Sending keysym (`+(r?`down`:`up`)+`): `+t),e.messages.keyEvent(this._sock,t,+!!r)}}focus(e){this._canvas.focus(e)}blur(){this._canvas.blur()}clipboardPasteFrom(t){if(!(this._rfbConnectionState!==`connected`||this._viewOnly)){if(this._clipboardServerCapabilitiesFormats[fa]&&this._clipboardServerCapabilitiesActions[ga])this._clipboardText=t,e.messages.extendedClipboardNotify(this._sock,[fa]);else{let n,r,i;n=0;for(let e of t)n++;i=new Uint8Array(n),r=0;for(let e of t){let t=e.codePointAt(0);t>255&&(t=63),i[r++]=t}e.messages.clientCutText(this._sock,i)}}}getImageData(){return this._display.getImageData()}toDataURL(e,t){return this._display.toDataURL(e,t)}toBlob(e,t,n){return this._display.toBlob(e,t,n)}_connect(){if(r(`>> RFB.connect`),this._url)i(`connecting to ${this._url}`),this._sock.open(this._url,this._wsProtocols);else{if(i(`attaching ${this._rawChannel} to Websock`),this._sock.attach(this._rawChannel),this._sock.readyState===`closed`)throw Error(`Cannot use already closed WebSocket/RTCDataChannel`);this._sock.readyState===`open`&&this._socketOpen()}this._target.appendChild(this._screen),this._gestures.attach(this._canvas),this._cursor.attach(this._canvas),this._refreshCursor(),this._resizeObserver.observe(this._screen),this._canvas.addEventListener(`mousedown`,this._eventHandlers.focusCanvas),this._canvas.addEventListener(`touchstart`,this._eventHandlers.focusCanvas),this._canvas.addEventListener(`mousedown`,this._eventHandlers.handleMouse),this._canvas.addEventListener(`mouseup`,this._eventHandlers.handleMouse),this._canvas.addEventListener(`mousemove`,this._eventHandlers.handleMouse),this._canvas.addEventListener(`click`,this._eventHandlers.handleMouse),this._canvas.addEventListener(`contextmenu`,this._eventHandlers.handleMouse),this._canvas.addEventListener(`wheel`,this._eventHandlers.handleWheel),this._canvas.addEventListener(`gesturestart`,this._eventHandlers.handleGesture),this._canvas.addEventListener(`gesturemove`,this._eventHandlers.handleGesture),this._canvas.addEventListener(`gestureend`,this._eventHandlers.handleGesture),r(`<< RFB.connect`)}_disconnect(){r(`>> RFB.disconnect`),this._cursor.detach(),this._canvas.removeEventListener(`gesturestart`,this._eventHandlers.handleGesture),this._canvas.removeEventListener(`gesturemove`,this._eventHandlers.handleGesture),this._canvas.removeEventListener(`gestureend`,this._eventHandlers.handleGesture),this._canvas.removeEventListener(`wheel`,this._eventHandlers.handleWheel),this._canvas.removeEventListener(`mousedown`,this._eventHandlers.handleMouse),this._canvas.removeEventListener(`mouseup`,this._eventHandlers.handleMouse),this._canvas.removeEventListener(`mousemove`,this._eventHandlers.handleMouse),this._canvas.removeEventListener(`click`,this._eventHandlers.handleMouse),this._canvas.removeEventListener(`contextmenu`,this._eventHandlers.handleMouse),this._canvas.removeEventListener(`mousedown`,this._eventHandlers.focusCanvas),this._canvas.removeEventListener(`touchstart`,this._eventHandlers.focusCanvas),this._resizeObserver.disconnect(),this._keyboard.ungrab(),this._gestures.detach(),this._sock.close();try{this._target.removeChild(this._screen)}catch(e){if(e.name!==`NotFoundError`)throw e}clearTimeout(this._resizeTimeout),clearTimeout(this._mouseMoveTimer),r(`<< RFB.disconnect`)}_socketOpen(){this._rfbConnectionState===`connecting`&&this._rfbInitState===``?(this._rfbInitState=`ProtocolVersion`,r(`Starting VNC handshake`)):this._fail(`Unexpected server connection while `+this._rfbConnectionState)}_socketClose(e){r(`WebSocket on-close event`);let t=``;switch(e.code&&(t=`(code: `+e.code,e.reason&&(t+=`, reason: `+e.reason),t+=`)`),this._rfbConnectionState){case`connecting`:this._fail(`Connection closed `+t);break;case`connected`:this._updateConnectionState(`disconnecting`),this._updateConnectionState(`disconnected`);break;case`disconnecting`:this._updateConnectionState(`disconnected`);break;case`disconnected`:this._fail(`Unexpected server disconnect when already disconnected `+t);break;default:this._fail(`Unexpected server disconnect before connecting `+t)}this._sock.off(`close`),this._rawChannel=null}_socketError(e){a(`WebSocket on-error event`)}_focusCanvas(e){this.focusOnClick&&this.focus({preventScroll:!0})}_setDesktopName(e){this._fbName=e,this.dispatchEvent(new CustomEvent(`desktopname`,{detail:{name:this._fbName}}))}_saveExpectedClientSize(){this._expectedClientWidth=this._screen.clientWidth,this._expectedClientHeight=this._screen.clientHeight}_currentClientSize(){return[this._screen.clientWidth,this._screen.clientHeight]}_clientHasExpectedSize(){let[e,t]=this._currentClientSize();return e==this._expectedClientWidth&&t==this._expectedClientHeight}_handleResize(){this._clientHasExpectedSize()||(window.requestAnimationFrame(()=>{this._updateClip(),this._updateScale(),this._saveExpectedClientSize()}),this._requestRemoteResize())}_updateClip(){let e=this._display.clipViewport,t=this._clipViewport;if(this._scaleViewport&&(t=!1),e!==t&&(this._display.clipViewport=t),t){let e=this._screenSize();this._display.viewportChangeSize(e.w,e.h),this._fixScrollbars(),this._setClippingViewport(e.w<this._display.width||e.h<this._display.height)}else this._setClippingViewport(!1);e!==t&&this._saveExpectedClientSize()}_updateScale(){if(!this._scaleViewport)this._display.scale=1;else{let e=this._screenSize();this._display.autoscale(e.w,e.h)}this._fixScrollbars()}_requestRemoteResize(){if(!this._resizeSession||this._viewOnly||!this._supportsSetDesktopSize||this._pendingRemoteResize)return;if(Date.now()-this._lastResize<100){clearTimeout(this._resizeTimeout),this._resizeTimeout=setTimeout(this._requestRemoteResize.bind(this),100-(Date.now()-this._lastResize));return}this._resizeTimeout=null;let t=this._screenSize();(t.w!==this._fbWidth||t.h!==this._fbHeight)&&(this._pendingRemoteResize=!0,this._lastResize=Date.now(),e.messages.setDesktopSize(this._sock,Math.floor(t.w),Math.floor(t.h),this._screenID,this._screenFlags),r(`Requested new desktop size: `+t.w+`x`+t.h))}_screenSize(){let e=this._screen.getBoundingClientRect();return{w:e.width,h:e.height}}_fixScrollbars(){let e=this._screen.style.overflow;this._screen.style.overflow=`hidden`,this._screen.getBoundingClientRect(),this._screen.style.overflow=e}_updateConnectionState(e){let t=this._rfbConnectionState;if(e===t){r(`Already in state '`+e+`', ignoring`);return}if(t===`disconnected`){o(`Tried changing state of a disconnected RFB object`);return}switch(e){case`connected`:if(t!==`connecting`){o(`Bad transition to connected state, previous connection state: `+t);return}break;case`disconnected`:if(t!==`disconnecting`){o(`Bad transition to disconnected state, previous connection state: `+t);return}break;case`connecting`:if(t!==``){o(`Bad transition to connecting state, previous connection state: `+t);return}break;case`disconnecting`:if(t!==`connected`&&t!==`connecting`){o(`Bad transition to disconnecting state, previous connection state: `+t);return}break;default:o(`Unknown connection state: `+e);return}switch(this._rfbConnectionState=e,r(`New state '`+e+`', was '`+t+`'.`),this._disconnTimer&&e!==`disconnecting`&&(r(`Clearing disconnect timer`),clearTimeout(this._disconnTimer),this._disconnTimer=null,this._sock.off(`close`)),e){case`connecting`:this._connect();break;case`connected`:this.dispatchEvent(new CustomEvent(`connect`,{detail:{}}));break;case`disconnecting`:this._disconnect(),this._disconnTimer=setTimeout(()=>{o(`Disconnection timed out.`),this._updateConnectionState(`disconnected`)},qi*1e3);break;case`disconnected`:this.dispatchEvent(new CustomEvent(`disconnect`,{detail:{clean:this._rfbCleanDisconnect}}))}}_fail(e){switch(this._rfbConnectionState){case`disconnecting`:o(`Failed when disconnecting: `+e);break;case`connected`:o(`Failed while connected: `+e);break;case`connecting`:o(`Failed when connecting: `+e);break;default:o(`RFB failure: `+e)}return this._rfbCleanDisconnect=!1,this._updateConnectionState(`disconnecting`),this._updateConnectionState(`disconnected`),!1}_setCapability(e,t){this._capabilities[e]=t,this.dispatchEvent(new CustomEvent(`capabilities`,{detail:{capabilities:this._capabilities}}))}_handleMessage(){if(this._sock.rQwait(`message`,1)){a(`handleMessage called on an empty receive queue`);return}switch(this._rfbConnectionState){case`disconnected`:o(`Got data while disconnected`);break;case`connected`:for(;!(this._flushing||!this._normalMsg()||this._sock.rQwait(`message`,1)););break;case`connecting`:for(;this._rfbConnectionState===`connecting`&&this._initMsg(););break;default:o(`Got data while in an invalid state`)}}_handleKeyEvent(e,t,n,i,a){t==`CapsLock`&&n&&(this._remoteCapsLock=null),this._remoteCapsLock!==null&&a!==null&&this._remoteCapsLock!==a&&n&&(r(`Fixing remote caps lock`),this.sendKey(L.XK_Caps_Lock,`CapsLock`,!0),this.sendKey(L.XK_Caps_Lock,`CapsLock`,!1),this._remoteCapsLock=null),t==`NumLock`&&n&&(this._remoteNumLock=null),this._remoteNumLock!==null&&i!==null&&this._remoteNumLock!==i&&n&&(r(`Fixing remote num lock`),this.sendKey(L.XK_Num_Lock,`NumLock`,!0),this.sendKey(L.XK_Num_Lock,`NumLock`,!1),this._remoteNumLock=null),this.sendKey(e,t,n)}static _convertButtonMask(e){let t={0:1,1:4,2:2,3:128,4:256},n=0;for(let r=0;r<5;r++)e&1<<r&&(n|=t[r]);return n}_handleMouse(t){if(t.type===`click`&&t.target!==this._canvas||(t.stopPropagation(),t.preventDefault(),t.type===`click`||t.type===`contextmenu`))return;let n=b(t.clientX,t.clientY,this._canvas),r=e._convertButtonMask(t.buttons),i=t.type==`mousedown`;switch(t.type){case`mousedown`:case`mouseup`:if(this.dragViewport){if(i&&!this._viewportDragging){this._viewportDragging=!0,this._viewportDragPos={x:n.x,y:n.y},this._viewportHasMoved=!1,this._flushMouseMoveTimer(n.x,n.y),this._mouseButtonMask=r;break}if(this._viewportDragging=!1,this._viewportHasMoved){this._mouseButtonMask=r;break}this._sendMouse(n.x,n.y,this._mouseButtonMask)}i&&D(this._canvas),this._handleMouseButton(n.x,n.y,r);break;case`mousemove`:if(this._viewportDragging){let e=this._viewportDragPos.x-n.x,t=this._viewportDragPos.y-n.y;(this._viewportHasMoved||Math.abs(e)>f||Math.abs(t)>f)&&(this._viewportHasMoved=!0,this._viewportDragPos={x:n.x,y:n.y},this._display.viewportChangePos(e,t));break}this._handleMouseMove(n.x,n.y)}}_handleMouseButton(e,t,n){this._flushMouseMoveTimer(e,t),this._mouseButtonMask=n,this._sendMouse(e,t,this._mouseButtonMask)}_handleMouseMove(e,t){if(this._mousePos={x:e,y:t},this._mouseMoveTimer==null){let n=Date.now()-this._mouseLastMoveTime;n>Yi?(this._sendMouse(e,t,this._mouseButtonMask),this._mouseLastMoveTime=Date.now()):this._mouseMoveTimer=setTimeout(()=>{this._handleDelayedMouseMove()},Yi-n)}}_handleDelayedMouseMove(){this._mouseMoveTimer=null,this._sendMouse(this._mousePos.x,this._mousePos.y,this._mouseButtonMask),this._mouseLastMoveTime=Date.now()}_sendMouse(t,n,r){if(this._rfbConnectionState!==`connected`||this._viewOnly)return;if(r&32768)throw Error(`Illegal mouse button mask (mask: `+r+`)`);let i=r&32640;this._extendedPointerEventSupported&&i?e.messages.extendedPointerEvent(this._sock,this._display.absX(t),this._display.absY(n),r):e.messages.pointerEvent(this._sock,this._display.absX(t),this._display.absY(n),r)}_handleWheel(t){if(this._rfbConnectionState!==`connected`||this._viewOnly)return;t.stopPropagation(),t.preventDefault();let n=b(t.clientX,t.clientY,this._canvas),r=e._convertButtonMask(t.buttons),i=t.deltaX,a=t.deltaY;t.deltaMode!==0&&(i*=Zi,a*=Zi),this._accumulatedWheelDeltaX+=i,this._accumulatedWheelDeltaY+=a,Math.abs(this._accumulatedWheelDeltaX)>=Xi&&(this._accumulatedWheelDeltaX<0?(this._handleMouseButton(n.x,n.y,r|32),this._handleMouseButton(n.x,n.y,r)):this._accumulatedWheelDeltaX>0&&(this._handleMouseButton(n.x,n.y,r|64),this._handleMouseButton(n.x,n.y,r)),this._accumulatedWheelDeltaX=0),Math.abs(this._accumulatedWheelDeltaY)>=Xi&&(this._accumulatedWheelDeltaY<0?(this._handleMouseButton(n.x,n.y,r|8),this._handleMouseButton(n.x,n.y,r)):this._accumulatedWheelDeltaY>0&&(this._handleMouseButton(n.x,n.y,r|16),this._handleMouseButton(n.x,n.y,r)),this._accumulatedWheelDeltaY=0)}_fakeMouseMove(e,t,n){this._handleMouseMove(t,n),this._cursor.move(e.detail.clientX,e.detail.clientY)}_handleTapEvent(e,t){let n=b(e.detail.clientX,e.detail.clientY,this._canvas);if(this._gestureLastTapTime!==null&&Date.now()-this._gestureLastTapTime<ea&&this._gestureFirstDoubleTapEv.detail.type===e.detail.type){let t=this._gestureFirstDoubleTapEv.detail.clientX-e.detail.clientX,r=this._gestureFirstDoubleTapEv.detail.clientY-e.detail.clientY;Math.hypot(t,r)<ta?n=b(this._gestureFirstDoubleTapEv.detail.clientX,this._gestureFirstDoubleTapEv.detail.clientY,this._canvas):this._gestureFirstDoubleTapEv=e}else this._gestureFirstDoubleTapEv=e;this._gestureLastTapTime=Date.now(),this._fakeMouseMove(this._gestureFirstDoubleTapEv,n.x,n.y),this._handleMouseButton(n.x,n.y,t),this._handleMouseButton(n.x,n.y,0)}_handleGesture(e){let t,n=b(e.detail.clientX,e.detail.clientY,this._canvas);switch(e.type){case`gesturestart`:switch(e.detail.type){case`onetap`:this._handleTapEvent(e,1);break;case`twotap`:this._handleTapEvent(e,4);break;case`threetap`:this._handleTapEvent(e,2);break;case`drag`:this.dragViewport?(this._viewportHasMoved=!1,this._viewportDragging=!0,this._viewportDragPos={x:n.x,y:n.y}):(this._fakeMouseMove(e,n.x,n.y),this._handleMouseButton(n.x,n.y,1));break;case`longpress`:this.dragViewport?(this._viewportHasMoved=!1,this._viewportDragPos={x:n.x,y:n.y}):(this._fakeMouseMove(e,n.x,n.y),this._handleMouseButton(n.x,n.y,4));break;case`twodrag`:this._gestureLastMagnitudeX=e.detail.magnitudeX,this._gestureLastMagnitudeY=e.detail.magnitudeY,this._fakeMouseMove(e,n.x,n.y);break;case`pinch`:this._gestureLastMagnitudeX=Math.hypot(e.detail.magnitudeX,e.detail.magnitudeY),this._fakeMouseMove(e,n.x,n.y)}break;case`gesturemove`:switch(e.detail.type){case`onetap`:case`twotap`:case`threetap`:break;case`drag`:case`longpress`:if(this.dragViewport){this._viewportDragging=!0;let e=this._viewportDragPos.x-n.x,t=this._viewportDragPos.y-n.y;(this._viewportHasMoved||Math.abs(e)>f||Math.abs(t)>f)&&(this._viewportHasMoved=!0,this._viewportDragPos={x:n.x,y:n.y},this._display.viewportChangePos(e,t))}else this._fakeMouseMove(e,n.x,n.y);break;case`twodrag`:for(this._fakeMouseMove(e,n.x,n.y);e.detail.magnitudeY-this._gestureLastMagnitudeY>$i;)this._handleMouseButton(n.x,n.y,8),this._handleMouseButton(n.x,n.y,0),this._gestureLastMagnitudeY+=$i;for(;e.detail.magnitudeY-this._gestureLastMagnitudeY<-50;)this._handleMouseButton(n.x,n.y,16),this._handleMouseButton(n.x,n.y,0),this._gestureLastMagnitudeY-=$i;for(;e.detail.magnitudeX-this._gestureLastMagnitudeX>$i;)this._handleMouseButton(n.x,n.y,32),this._handleMouseButton(n.x,n.y,0),this._gestureLastMagnitudeX+=$i;for(;e.detail.magnitudeX-this._gestureLastMagnitudeX<-50;)this._handleMouseButton(n.x,n.y,64),this._handleMouseButton(n.x,n.y,0),this._gestureLastMagnitudeX-=$i;break;case`pinch`:if(this._fakeMouseMove(e,n.x,n.y),t=Math.hypot(e.detail.magnitudeX,e.detail.magnitudeY),Math.abs(t-this._gestureLastMagnitudeX)>Qi){for(this._handleKeyEvent(L.XK_Control_L,`ControlLeft`,!0);t-this._gestureLastMagnitudeX>Qi;)this._handleMouseButton(n.x,n.y,8),this._handleMouseButton(n.x,n.y,0),this._gestureLastMagnitudeX+=Qi;for(;t-this._gestureLastMagnitudeX<-75;)this._handleMouseButton(n.x,n.y,16),this._handleMouseButton(n.x,n.y,0),this._gestureLastMagnitudeX-=Qi}this._handleKeyEvent(L.XK_Control_L,`ControlLeft`,!1)}break;case`gestureend`:switch(e.detail.type){case`onetap`:case`twotap`:case`threetap`:case`pinch`:case`twodrag`:break;case`drag`:this.dragViewport?this._viewportDragging=!1:(this._fakeMouseMove(e,n.x,n.y),this._handleMouseButton(n.x,n.y,0));break;case`longpress`:if(this._viewportHasMoved)break;this.dragViewport&&!this._viewportHasMoved?(this._fakeMouseMove(e,n.x,n.y),this._handleMouseButton(n.x,n.y,4),this._handleMouseButton(n.x,n.y,0),this._viewportDragging=!1):(this._fakeMouseMove(e,n.x,n.y),this._handleMouseButton(n.x,n.y,0))}}}_flushMouseMoveTimer(e,t){this._mouseMoveTimer!==null&&(clearTimeout(this._mouseMoveTimer),this._mouseMoveTimer=null,this._sendMouse(e,t,this._mouseButtonMask))}_negotiateProtocolVersion(){if(this._sock.rQwait(`version`,12))return!1;let e=this._sock.rQshiftStr(12).substr(4,7);i(`Server ProtocolVersion: `+e);let t=0;switch(e){case`000.000`:t=1;break;case`003.003`:case`003.006`:this._rfbVersion=3.3;break;case`003.007`:this._rfbVersion=3.7;break;case`003.008`:case`003.889`:case`004.000`:case`004.001`:case`005.000`:this._rfbVersion=3.8;break;default:return this._fail(`Invalid server version `+e)}if(t){let e=`ID:`+this._repeaterID;for(;e.length<250;)e+=`\0`;return this._sock.sQpushString(e),this._sock.flush(),!0}this._rfbVersion>this._rfbMaxVersion&&(this._rfbVersion=this._rfbMaxVersion);let n=`00`+parseInt(this._rfbVersion,10)+`.00`+this._rfbVersion*10%10;this._sock.sQpushString(`RFB `+n+`
|
|
2
|
+
`),this._sock.flush(),r(`Sent ProtocolVersion: `+n),this._rfbInitState=`Security`}_isSupportedSecurityType(e){return[na,ra,ia,aa,oa,sa,ca,la,da].includes(e)}_negotiateSecurity(){if(this._rfbVersion>=3.7){let e=this._sock.rQshift8();if(this._sock.rQwait(`security type`,e,1))return!1;if(e===0)return this._rfbInitState=`SecurityReason`,this._securityContext=`no security types`,this._securityStatus=1,!0;let t=this._sock.rQshiftBytes(e);r(`Server security types: `+t),this._rfbAuthScheme=-1;for(let e of t)if(this._isSupportedSecurityType(e)){this._rfbAuthScheme=e;break}if(this._rfbAuthScheme===-1)return this._fail(`Unsupported security types (types: `+t+`)`);this._sock.sQpush8(this._rfbAuthScheme),this._sock.flush()}else{if(this._sock.rQwait(`security scheme`,4))return!1;if(this._rfbAuthScheme=this._sock.rQshift32(),this._rfbAuthScheme==0)return this._rfbInitState=`SecurityReason`,this._securityContext=`authentication scheme`,this._securityStatus=1,!0}return this._rfbInitState=`Authentication`,r(`Authenticating using scheme: `+this._rfbAuthScheme),!0}_handleSecurityReason(){if(this._sock.rQwait(`reason length`,4))return!1;let e=this._sock.rQshift32(),t=``;if(e>0){if(this._sock.rQwait(`reason`,e,4))return!1;t=this._sock.rQshiftStr(e)}return t===``?(this.dispatchEvent(new CustomEvent(`securityfailure`,{detail:{status:this._securityStatus}})),this._fail(`Security negotiation failed on `+this._securityContext)):(this.dispatchEvent(new CustomEvent(`securityfailure`,{detail:{status:this._securityStatus,reason:t}})),this._fail(`Security negotiation failed on `+this._securityContext+` (reason: `+t+`)`))}_negotiateXvpAuth(){return this._rfbCredentials.username===void 0||this._rfbCredentials.password===void 0||this._rfbCredentials.target===void 0?(this.dispatchEvent(new CustomEvent(`credentialsrequired`,{detail:{types:[`username`,`password`,`target`]}})),!1):(this._sock.sQpush8(this._rfbCredentials.username.length),this._sock.sQpush8(this._rfbCredentials.target.length),this._sock.sQpushString(this._rfbCredentials.username),this._sock.sQpushString(this._rfbCredentials.target),this._sock.flush(),this._rfbAuthScheme=ra,this._negotiateAuthentication())}_negotiateVeNCryptAuth(){if(this._rfbVeNCryptState==0){if(this._sock.rQwait(`vencrypt version`,2))return!1;let e=this._sock.rQshift8(),t=this._sock.rQshift8();if(e!=0||t!=2)return this._fail(`Unsupported VeNCrypt version `+e+`.`+t);this._sock.sQpush8(0),this._sock.sQpush8(2),this._sock.flush(),this._rfbVeNCryptState=1}if(this._rfbVeNCryptState==1){if(this._sock.rQwait(`vencrypt ack`,1))return!1;let e=this._sock.rQshift8();if(e!=0)return this._fail(`VeNCrypt failure `+e);this._rfbVeNCryptState=2}if(this._rfbVeNCryptState==2){if(this._sock.rQwait(`vencrypt subtypes length`,1))return!1;let e=this._sock.rQshift8();if(e<1)return this._fail(`VeNCrypt subtypes empty`);this._rfbVeNCryptSubtypesLength=e,this._rfbVeNCryptState=3}if(this._rfbVeNCryptState==3){if(this._sock.rQwait(`vencrypt subtypes`,4*this._rfbVeNCryptSubtypesLength))return!1;let e=[];for(let t=0;t<this._rfbVeNCryptSubtypesLength;t++)e.push(this._sock.rQshift32());this._rfbAuthScheme=-1;for(let t of e)if(t!==oa&&this._isSupportedSecurityType(t)){this._rfbAuthScheme=t;break}return this._rfbAuthScheme===-1?this._fail(`Unsupported security types (types: `+e+`)`):(this._sock.sQpush32(this._rfbAuthScheme),this._sock.flush(),this._rfbVeNCryptState=4,!0)}}_negotiatePlainAuth(){if(this._rfbCredentials.username===void 0||this._rfbCredentials.password===void 0)return this.dispatchEvent(new CustomEvent(`credentialsrequired`,{detail:{types:[`username`,`password`]}})),!1;let e=l(this._rfbCredentials.username),t=l(this._rfbCredentials.password);return this._sock.sQpush32(e.length),this._sock.sQpush32(t.length),this._sock.sQpushString(e),this._sock.sQpushString(t),this._sock.flush(),this._rfbInitState=`SecurityResult`,!0}_negotiateStdVNCAuth(){if(this._sock.rQwait(`auth challenge`,16))return!1;if(this._rfbCredentials.password===void 0)return this.dispatchEvent(new CustomEvent(`credentialsrequired`,{detail:{types:[`password`]}})),!1;let t=Array.prototype.slice.call(this._sock.rQshiftBytes(16)),n=e.genDES(this._rfbCredentials.password,t);return this._sock.sQpushBytes(n),this._sock.flush(),this._rfbInitState=`SecurityResult`,!0}_negotiateARDAuth(){if(this._rfbCredentials.username===void 0||this._rfbCredentials.password===void 0)return this.dispatchEvent(new CustomEvent(`credentialsrequired`,{detail:{types:[`username`,`password`]}})),!1;if(this._rfbCredentials.ardPublicKey!=null&&this._rfbCredentials.ardCredentials!=null)return this._sock.sQpushBytes(this._rfbCredentials.ardCredentials),this._sock.sQpushBytes(this._rfbCredentials.ardPublicKey),this._sock.flush(),this._rfbCredentials.ardCredentials=null,this._rfbCredentials.ardPublicKey=null,this._rfbInitState=`SecurityResult`,!0;if(this._sock.rQwait(`read ard`,4))return!1;let e=this._sock.rQshiftBytes(2),t=this._sock.rQshift16();if(this._sock.rQwait(`read ard keylength`,t*2,4))return!1;let n=this._sock.rQshiftBytes(t),r=this._sock.rQshiftBytes(t),i=Q.generateKey({name:`DH`,g:e,p:n},!1,[`deriveBits`]);return this._negotiateARDAuthAsync(t,r,i),!1}async _negotiateARDAuthAsync(e,t,n){let r=Q.exportKey(`raw`,n.publicKey),i=Q.deriveBits({name:`DH`,public:t},n.privateKey,e*8),a=l(this._rfbCredentials.username).substring(0,63),o=l(this._rfbCredentials.password).substring(0,63),s=window.crypto.getRandomValues(new Uint8Array(128));for(let e=0;e<a.length;e++)s[e]=a.charCodeAt(e);s[a.length]=0;for(let e=0;e<o.length;e++)s[64+e]=o.charCodeAt(e);s[64+o.length]=0;let c=await Q.digest(`MD5`,i),u=await Q.importKey(`raw`,c,{name:`AES-ECB`},!1,[`encrypt`]),d=await Q.encrypt({name:`AES-ECB`},u,s);this._rfbCredentials.ardCredentials=d,this._rfbCredentials.ardPublicKey=r,this._resumeAuthentication()}_negotiateTightUnixAuth(){return this._rfbCredentials.username===void 0||this._rfbCredentials.password===void 0?(this.dispatchEvent(new CustomEvent(`credentialsrequired`,{detail:{types:[`username`,`password`]}})),!1):(this._sock.sQpush32(this._rfbCredentials.username.length),this._sock.sQpush32(this._rfbCredentials.password.length),this._sock.sQpushString(this._rfbCredentials.username),this._sock.sQpushString(this._rfbCredentials.password),this._sock.flush(),this._rfbInitState=`SecurityResult`,!0)}_negotiateTightTunnels(e){let t={0:{vendor:`TGHT`,signature:`NOTUNNEL`}},n={};for(let t=0;t<e;t++){let e=this._sock.rQshift32();n[e]={vendor:this._sock.rQshiftStr(4),signature:this._sock.rQshiftStr(8)}}return r(`Server Tight tunnel types: `+n),n[1]&&n[1].vendor===`SICR`&&n[1].signature===`SCHANNEL`&&(r(`Detected Siemens server. Assuming NOTUNNEL support.`),n[0]={vendor:`TGHT`,signature:`NOTUNNEL`}),n[0]?n[0].vendor!=t[0].vendor||n[0].signature!=t[0].signature?this._fail(`Client's tunnel type had the incorrect vendor or signature`):(r(`Selected tunnel type: `+t[0]),this._sock.sQpush32(0),this._sock.flush(),!1):this._fail(`Server wanted tunnels, but doesn't support the notunnel type`)}_negotiateTightAuth(){if(!this._rfbTightVNC){if(this._sock.rQwait(`num tunnels`,4))return!1;let e=this._sock.rQshift32();if(e>0&&this._sock.rQwait(`tunnel capabilities`,16*e,4))return!1;if(this._rfbTightVNC=!0,e>0)return this._negotiateTightTunnels(e),!1}if(this._sock.rQwait(`sub auth count`,4))return!1;let e=this._sock.rQshift32();if(e===0)return this._rfbInitState=`SecurityResult`,!0;if(this._sock.rQwait(`sub auth capabilities`,16*e,4))return!1;let t={STDVNOAUTH__:1,STDVVNCAUTH_:2,TGHTULGNAUTH:129},n=[];for(let t=0;t<e;t++){this._sock.rQshift32();let e=this._sock.rQshiftStr(12);n.push(e)}r(`Server Tight authentication types: `+n);for(let e in t)if(n.indexOf(e)!=-1)switch(this._sock.sQpush32(t[e]),this._sock.flush(),r(`Selected authentication type: `+e),e){case`STDVNOAUTH__`:return this._rfbInitState=`SecurityResult`,!0;case`STDVVNCAUTH_`:return this._rfbAuthScheme=ra,!0;case`TGHTULGNAUTH`:return this._rfbAuthScheme=ua,!0;default:return this._fail(`Unsupported tiny auth scheme (scheme: `+e+`)`)}return this._fail(`No supported sub-auth types!`)}_handleRSAAESCredentialsRequired(e){this.dispatchEvent(e)}_handleRSAAESServerVerification(e){this.dispatchEvent(e)}_negotiateRA2neAuth(){return this._rfbRSAAESAuthenticationState===null&&(this._rfbRSAAESAuthenticationState=new Mi(this._sock,()=>this._rfbCredentials),this._rfbRSAAESAuthenticationState.addEventListener(`serververification`,this._eventHandlers.handleRSAAESServerVerification),this._rfbRSAAESAuthenticationState.addEventListener(`credentialsrequired`,this._eventHandlers.handleRSAAESCredentialsRequired)),this._rfbRSAAESAuthenticationState.checkInternalEvents(),this._rfbRSAAESAuthenticationState.hasStarted||this._rfbRSAAESAuthenticationState.negotiateRA2neAuthAsync().catch(e=>{e.message!==`disconnect normally`&&this._fail(e.message)}).then(()=>(this._rfbInitState=`SecurityResult`,!0)).finally(()=>{this._rfbRSAAESAuthenticationState.removeEventListener(`serververification`,this._eventHandlers.handleRSAAESServerVerification),this._rfbRSAAESAuthenticationState.removeEventListener(`credentialsrequired`,this._eventHandlers.handleRSAAESCredentialsRequired),this._rfbRSAAESAuthenticationState=null}),!1}_negotiateMSLogonIIAuth(){if(this._sock.rQwait(`mslogonii dh param`,24))return!1;if(this._rfbCredentials.username===void 0||this._rfbCredentials.password===void 0)return this.dispatchEvent(new CustomEvent(`credentialsrequired`,{detail:{types:[`username`,`password`]}})),!1;let e=this._sock.rQshiftBytes(8),t=this._sock.rQshiftBytes(8),n=this._sock.rQshiftBytes(8),r=Q.generateKey({name:`DH`,g:e,p:t},!0,[`deriveBits`]),i=Q.exportKey(`raw`,r.publicKey),a=Q.deriveBits({name:`DH`,public:n},r.privateKey,64),o=Q.importKey(`raw`,a,{name:`DES-CBC`},!1,[`encrypt`]),s=l(this._rfbCredentials.username).substring(0,255),c=l(this._rfbCredentials.password).substring(0,63),u=new Uint8Array(256),d=new Uint8Array(64);window.crypto.getRandomValues(u),window.crypto.getRandomValues(d);for(let e=0;e<s.length;e++)u[e]=s.charCodeAt(e);u[s.length]=0;for(let e=0;e<c.length;e++)d[e]=c.charCodeAt(e);return d[c.length]=0,u=Q.encrypt({name:`DES-CBC`,iv:a},o,u),d=Q.encrypt({name:`DES-CBC`,iv:a},o,d),this._sock.sQpushBytes(i),this._sock.sQpushBytes(u),this._sock.sQpushBytes(d),this._sock.flush(),this._rfbInitState=`SecurityResult`,!0}_negotiateAuthentication(){switch(this._rfbAuthScheme){case na:return this._rfbInitState=this._rfbVersion>=3.8?`SecurityResult`:`ClientInitialisation`,!0;case sa:return this._negotiateXvpAuth();case ca:return this._negotiateARDAuth();case ra:return this._negotiateStdVNCAuth();case aa:return this._negotiateTightAuth();case oa:return this._negotiateVeNCryptAuth();case da:return this._negotiatePlainAuth();case ua:return this._negotiateTightUnixAuth();case ia:return this._negotiateRA2neAuth();case la:return this._negotiateMSLogonIIAuth();default:return this._fail(`Unsupported auth scheme (scheme: `+this._rfbAuthScheme+`)`)}}_handleSecurityResult(){if(this._sock.rQwait(`VNC auth response `,4))return!1;let e=this._sock.rQshift32();return e===0?(this._rfbInitState=`ClientInitialisation`,r(`Authentication OK`),!0):this._rfbVersion>=3.8?(this._rfbInitState=`SecurityReason`,this._securityContext=`security result`,this._securityStatus=e,!0):(this.dispatchEvent(new CustomEvent(`securityfailure`,{detail:{status:e}})),this._fail(`Security handshake failed`))}_negotiateServerInit(){if(this._sock.rQwait(`server initialization`,24))return!1;let t=this._sock.rQshift16(),n=this._sock.rQshift16(),r=this._sock.rQshift8(),o=this._sock.rQshift8(),s=this._sock.rQshift8(),l=this._sock.rQshift8(),u=this._sock.rQshift16(),d=this._sock.rQshift16(),f=this._sock.rQshift16(),p=this._sock.rQshift8(),m=this._sock.rQshift8(),h=this._sock.rQshift8();this._sock.rQskipBytes(3);let g=this._sock.rQshift32();if(this._sock.rQwait(`server init name`,g,24))return!1;let _=this._sock.rQshiftStr(g);if(_=c(_,!0),this._rfbTightVNC){if(this._sock.rQwait(`TightVNC extended server init header`,8,24+g))return!1;let e=this._sock.rQshift16(),t=this._sock.rQshift16(),n=this._sock.rQshift16();this._sock.rQskipBytes(2);let r=(e+t+n)*16;if(this._sock.rQwait(`TightVNC extended server init header`,r,32+g))return!1;this._sock.rQskipBytes(16*e),this._sock.rQskipBytes(16*t),this._sock.rQskipBytes(16*n)}return i(`Screen: `+t+`x`+n+`, bpp: `+r+`, depth: `+o+`, bigEndian: `+s+`, trueColor: `+l+`, redMax: `+u+`, greenMax: `+d+`, blueMax: `+f+`, redShift: `+p+`, greenShift: `+m+`, blueShift: `+h),this._setDesktopName(_),this._resize(t,n),this._viewOnly||this._keyboard.grab(),this._fbDepth=24,this._fbName===`Intel(r) AMT KVM`&&(a(`Intel AMT KVM only supports 8/16 bit depths. Using low color mode.`),this._fbDepth=8),e.messages.pixelFormat(this._sock,this._fbDepth,!0),this._sendEncodings(),e.messages.fbUpdateRequest(this._sock,!1,0,0,this._fbWidth,this._fbHeight),this._updateConnectionState(`connected`),!0}_sendEncodings(){let t=[];t.push(B.encodingCopyRect),this._fbDepth==24&&(h&&t.push(B.encodingH264),t.push(B.encodingTight),t.push(B.encodingTightPNG),t.push(B.encodingZRLE),t.push(B.encodingJPEG),t.push(B.encodingHextile),t.push(B.encodingRRE),t.push(B.encodingZlib)),t.push(B.encodingRaw),t.push(B.pseudoEncodingQualityLevel0+this._qualityLevel),t.push(B.pseudoEncodingCompressLevel0+this._compressionLevel),t.push(B.pseudoEncodingDesktopSize),t.push(B.pseudoEncodingLastRect),t.push(B.pseudoEncodingQEMUExtendedKeyEvent),t.push(B.pseudoEncodingQEMULedEvent),t.push(B.pseudoEncodingExtendedDesktopSize),t.push(B.pseudoEncodingXvp),t.push(B.pseudoEncodingFence),t.push(B.pseudoEncodingContinuousUpdates),t.push(B.pseudoEncodingDesktopName),t.push(B.pseudoEncodingExtendedClipboard),t.push(B.pseudoEncodingExtendedMouseButtons),this._fbDepth==24&&(t.push(B.pseudoEncodingVMwareCursor),t.push(B.pseudoEncodingCursor)),e.messages.clientEncodings(this._sock,t)}_initMsg(){switch(this._rfbInitState){case`ProtocolVersion`:return this._negotiateProtocolVersion();case`Security`:return this._negotiateSecurity();case`Authentication`:return this._negotiateAuthentication();case`SecurityResult`:return this._handleSecurityResult();case`SecurityReason`:return this._handleSecurityReason();case`ClientInitialisation`:return this._sock.sQpush8(+!!this._shared),this._sock.flush(),this._rfbInitState=`ServerInitialisation`,!0;case`ServerInitialisation`:return this._negotiateServerInit();default:return this._fail(`Unknown init state (state: `+this._rfbInitState+`)`)}}_resumeAuthentication(){setTimeout(this._initMsg.bind(this),0)}_handleSetColourMapMsg(){return r(`SetColorMapEntries`),this._fail(`Unexpected SetColorMapEntries message`)}_handleServerCutText(){if(r(`ServerCutText`),this._sock.rQwait(`ServerCutText header`,7,1))return!1;this._sock.rQskipBytes(3);let n=this._sock.rQshift32();if(n=t(n),this._sock.rQwait(`ServerCutText content`,Math.abs(n),8))return!1;if(n>=0){let e=this._sock.rQshiftStr(n);if(this._viewOnly)return!0;this.dispatchEvent(new CustomEvent(`clipboard`,{detail:{text:e}}))}else{n=Math.abs(n);let t=this._sock.rQshift32(),r=t&65535,i=t&4278190080;if(i&pa){this._clipboardServerCapabilitiesFormats={},this._clipboardServerCapabilitiesActions={};for(let e=0;e<=15;e++){let t=1<<e;r&t&&(this._clipboardServerCapabilitiesFormats[t]=!0,this._sock.rQshift32())}for(let e=24;e<=31;e++){let t=1<<e;this._clipboardServerCapabilitiesActions[t]=!!(i&t)}let t=[pa,ma,ha,ga,_a];e.messages.extendedClipboardCaps(this._sock,t,{extendedClipboardFormatText:0})}else if(i===ma){if(this._viewOnly)return!0;this._clipboardText!=null&&this._clipboardServerCapabilitiesActions[_a]&&r&fa&&e.messages.extendedClipboardProvide(this._sock,[fa],[this._clipboardText])}else if(i===ha){if(this._viewOnly)return!0;this._clipboardServerCapabilitiesActions[ga]&&(this._clipboardText==null?e.messages.extendedClipboardNotify(this._sock,[]):e.messages.extendedClipboardNotify(this._sock,[fa]))}else if(i===ga){if(this._viewOnly)return!0;this._clipboardServerCapabilitiesActions[ma]&&r&fa&&e.messages.extendedClipboardRequest(this._sock,[fa])}else if(i===_a){if(this._viewOnly||!(r&fa))return!0;this._clipboardText=null;let e=this._sock.rQshiftBytes(n-4),t=new _t,i=null;t.setInput(e);for(let e=0;e<=15;e++){let n=1<<e;if(r&n){let e=0,r=t.inflate(4);e|=r[0]<<24,e|=r[1]<<16,e|=r[2]<<8,e|=r[3];let a=t.inflate(e);n===fa&&(i=a)}}if(t.setInput(null),i!==null){let e=``;for(let t=0;t<i.length;t++)e+=String.fromCharCode(i[t]);i=e,i=c(i),i.length>0&&i.charAt(i.length-1)===`\0`&&(i=i.slice(0,-1)),i=i.replaceAll(`\r
|
|
3
|
+
`,`
|
|
4
|
+
`),this.dispatchEvent(new CustomEvent(`clipboard`,{detail:{text:i}}))}}else return this._fail(`Unexpected action in extended clipboard message: `+i)}return!0}_handleServerFenceMsg(){if(this._sock.rQwait(`ServerFence header`,8,1))return!1;this._sock.rQskipBytes(3);let t=this._sock.rQshift32(),n=this._sock.rQshift8();if(this._sock.rQwait(`ServerFence payload`,n,9))return!1;n>64&&(a(`Bad payload length (`+n+`) in fence response`),n=64);let r=this._sock.rQshiftStr(n);return this._supportsFence=!0,t&1<<31?(t&=3,e.messages.clientFence(this._sock,t,r),!0):this._fail(`Unexpected fence response`)}_handleXvpMsg(){if(this._sock.rQwait(`XVP version and message`,3,1))return!1;this._sock.rQskipBytes(1);let e=this._sock.rQshift8(),t=this._sock.rQshift8();switch(t){case 0:o(`XVP operation failed`);break;case 1:this._rfbXvpVer=e,i(`XVP extensions enabled (version `+this._rfbXvpVer+`)`),this._setCapability(`power`,!0);break;default:this._fail(`Illegal server XVP message (msg: `+t+`)`)}return!0}_normalMsg(){let t;t=this._FBU.rects>0?0:this._sock.rQshift8();let n,a;switch(t){case 0:return a=this._framebufferUpdate(),a&&!this._enabledContinuousUpdates&&e.messages.fbUpdateRequest(this._sock,!0,0,0,this._fbWidth,this._fbHeight),a;case 1:return this._handleSetColourMapMsg();case 2:return r(`Bell`),this.dispatchEvent(new CustomEvent(`bell`,{detail:{}})),!0;case 3:return this._handleServerCutText();case 150:return n=!this._supportsContinuousUpdates,this._supportsContinuousUpdates=!0,this._enabledContinuousUpdates=!1,n&&(this._enabledContinuousUpdates=!0,this._updateContinuousUpdates(),i(`Enabling continuous updates.`)),!0;case 248:return this._handleServerFenceMsg();case 250:return this._handleXvpMsg();default:return this._fail(`Unexpected server message (type `+t+`)`),r(`sock.rQpeekBytes(30): `+this._sock.rQpeekBytes(30)),!0}}_framebufferUpdate(){if(this._FBU.rects===0){if(this._sock.rQwait(`FBU header`,3,1))return!1;if(this._sock.rQskipBytes(1),this._FBU.rects=this._sock.rQshift16(),this._display.pending())return this._flushing=!0,this._display.flush().then(()=>{this._flushing=!1,this._sock.rQwait(`message`,1)||this._handleMessage()}),!1}for(;this._FBU.rects>0;){if(this._FBU.encoding===null){if(this._sock.rQwait(`rect header`,12))return!1;this._FBU.x=this._sock.rQshift16(),this._FBU.y=this._sock.rQshift16(),this._FBU.width=this._sock.rQshift16(),this._FBU.height=this._sock.rQshift16(),this._FBU.encoding=this._sock.rQshift32(),this._FBU.encoding>>=0}if(!this._handleRect())return!1;this._FBU.rects--,this._FBU.encoding=null}return this._display.flip(),!0}_handleRect(){switch(this._FBU.encoding){case B.pseudoEncodingLastRect:return this._FBU.rects=1,!0;case B.pseudoEncodingVMwareCursor:return this._handleVMwareCursor();case B.pseudoEncodingCursor:return this._handleCursor();case B.pseudoEncodingQEMUExtendedKeyEvent:return this._qemuExtKeyEventSupported=!0,!0;case B.pseudoEncodingDesktopName:return this._handleDesktopName();case B.pseudoEncodingDesktopSize:return this._resize(this._FBU.width,this._FBU.height),!0;case B.pseudoEncodingExtendedDesktopSize:return this._handleExtendedDesktopSize();case B.pseudoEncodingExtendedMouseButtons:return this._extendedPointerEventSupported=!0,!0;case B.pseudoEncodingQEMULedEvent:return this._handleLedEvent();default:return this._handleDataRect()}}_handleVMwareCursor(){let e=this._FBU.x,t=this._FBU.y,n=this._FBU.width,r=this._FBU.height;if(this._sock.rQwait(`VMware cursor encoding`,1))return!1;let i=this._sock.rQshift8();this._sock.rQshift8();let o;if(i==0){let e=-256;if(o=Array(n*r*4),this._sock.rQwait(`VMware cursor classic encoding`,n*r*4*2,2))return!1;let t=Array(n*r);for(let e=0;e<n*r;e++)t[e]=this._sock.rQshift32();let i=Array(n*r);for(let e=0;e<n*r;e++)i[e]=this._sock.rQshift32();for(let a=0;a<n*r;a++)if(t[a]==0){let e=i[a],t=e>>8&255,n=e>>16&255,r=e>>24&255;o[a*4]=t,o[a*4+1]=n,o[a*4+2]=r,o[a*4+3]=255}else(t[a]&e)==e?i[a]==0?(o[a*4]=0,o[a*4+1]=0,o[a*4+2]=0,o[a*4+3]=0):(i[a]&e,o[a*4]=0,o[a*4+1]=0,o[a*4+2]=0,o[a*4+3]=255):(o[a*4]=0,o[a*4+1]=0,o[a*4+2]=0,o[a*4+3]=255)}else if(i==1){if(this._sock.rQwait(`VMware cursor alpha encoding`,n*r*4,2))return!1;o=Array(n*r*4);for(let e=0;e<n*r;e++){let t=this._sock.rQshift32();o[e*4]=t>>24&255,o[e*4+1]=t>>16&255,o[e*4+2]=t>>8&255,o[e*4+3]=t&255}}else return a(`The given cursor type is not supported: `+i+` given.`),!1;return this._updateCursor(o,e,t,n,r),!0}_handleCursor(){let e=this._FBU.x,t=this._FBU.y,n=this._FBU.width,r=this._FBU.height,i=n*r*4,a=Math.ceil(n/8)*r,o=i+a;if(this._sock.rQwait(`cursor encoding`,o))return!1;let s=this._sock.rQshiftBytes(i),c=this._sock.rQshiftBytes(a),l=new Uint8Array(n*r*4),u=0;for(let e=0;e<r;e++)for(let t=0;t<n;t++){let r=c[e*Math.ceil(n/8)+Math.floor(t/8)]<<t%8&128?255:0;l[u]=s[u+2],l[u+1]=s[u+1],l[u+2]=s[u],l[u+3]=r,u+=4}return this._updateCursor(l,e,t,n,r),!0}_handleDesktopName(){if(this._sock.rQwait(`DesktopName`,4))return!1;let e=this._sock.rQshift32();if(this._sock.rQwait(`DesktopName`,e,4))return!1;let t=this._sock.rQshiftStr(e);return t=c(t,!0),this._setDesktopName(t),!0}_handleLedEvent(){if(this._sock.rQwait(`LED status`,1))return!1;let e=this._sock.rQshift8(),t=!!(e&2),n=!!(e&4);return this._remoteCapsLock=n,this._remoteNumLock=t,!0}_handleExtendedDesktopSize(){if(this._sock.rQwait(`ExtendedDesktopSize`,4))return!1;let e=this._sock.rQpeek8(),t=4+e*16;if(this._sock.rQwait(`ExtendedDesktopSize`,t))return!1;let n=!this._supportsSetDesktopSize;this._supportsSetDesktopSize=!0,this._sock.rQskipBytes(1),this._sock.rQskipBytes(3);for(let t=0;t<e;t+=1)t===0?(this._screenID=this._sock.rQshift32(),this._sock.rQskipBytes(2),this._sock.rQskipBytes(2),this._sock.rQskipBytes(2),this._sock.rQskipBytes(2),this._screenFlags=this._sock.rQshift32()):this._sock.rQskipBytes(16);if(this._FBU.x===1&&(this._pendingRemoteResize=!1),this._FBU.x===1&&this._FBU.y!==0){let e=``;switch(this._FBU.y){case 1:e=`Resize is administratively prohibited`;break;case 2:e=`Out of resources`;break;case 3:e=`Invalid screen layout`;break;default:e=`Unknown reason`}a(`Server did not accept the resize request: `+e)}else this._resize(this._FBU.width,this._FBU.height);return n&&this._requestRemoteResize(),this._FBU.x===1&&this._FBU.y===0&&this._requestRemoteResize(),!0}_handleDataRect(){let e=this._decoders[this._FBU.encoding];if(!e)return this._fail(`Unsupported encoding (encoding: `+this._FBU.encoding+`)`),!1;try{return e.decodeRect(this._FBU.x,this._FBU.y,this._FBU.width,this._FBU.height,this._sock,this._display,this._fbDepth)}catch(e){return this._fail(`Error decoding rect: `+e),!1}}_updateContinuousUpdates(){this._enabledContinuousUpdates&&e.messages.enableContinuousUpdates(this._sock,!0,0,0,this._fbWidth,this._fbHeight)}_resize(e,t){this._fbWidth=e,this._fbHeight=t,this._display.resize(this._fbWidth,this._fbHeight),this._updateClip(),this._updateScale(),this._updateContinuousUpdates(),this._saveExpectedClientSize()}_xvpOp(t,n){this._rfbXvpVer<t||(i(`Sending XVP operation `+n+` (version `+t+`)`),e.messages.xvpOp(this._sock,t,n))}_updateCursor(e,t,n,r,i){this._cursorImage={rgbaPixels:e,hotx:t,hoty:n,w:r,h:i},this._refreshCursor()}_shouldShowDotCursor(){if(!this._showDotCursor)return!1;for(let e=3;e<this._cursorImage.rgbaPixels.length;e+=4)if(this._cursorImage.rgbaPixels[e])return!1;return!0}_refreshCursor(){if(this._rfbConnectionState!==`connecting`&&this._rfbConnectionState!==`connected`)return;let t=this._shouldShowDotCursor()?e.cursors.dot:this._cursorImage;this._cursor.change(t.rgbaPixels,t.hotx,t.hoty,t.w,t.h)}static genDES(e,t){let n=e.split(``).map(e=>e.charCodeAt(0)),r=Q.importKey(`raw`,n,{name:`DES-ECB`},!1,[`encrypt`]);return Q.encrypt({name:`DES-ECB`},r,t)}};$.messages={keyEvent(e,t,n){e.sQpush8(4),e.sQpush8(n),e.sQpush16(0),e.sQpush32(t),e.flush()},QEMUExtendedKeyEvent(e,t,n,r){function i(e){let t=r>>8,n=r&255;return t===224&&n<127?n|128:e}e.sQpush8(255),e.sQpush8(0),e.sQpush16(n),e.sQpush32(t);let a=i(r);e.sQpush32(a),e.flush()},pointerEvent(e,t,n,r){e.sQpush8(5),r&=127,e.sQpush8(r),e.sQpush16(t),e.sQpush16(n),e.flush()},extendedPointerEvent(e,t,n,r){e.sQpush8(5);let i=r>>7&255;if(i&252)throw Error(`Invalid mouse button mask: `+r);let a=r&127;a|=128,e.sQpush8(a),e.sQpush16(t),e.sQpush16(n),e.sQpush8(i),e.flush()},_buildExtendedClipboardFlags(e,t){let n=new Uint8Array(4),r=0,i=0;for(let t=0;t<e.length;t++)i|=e[t];for(let e=0;e<t.length;e++)r|=t[e];return n[0]=i>>24,n[1]=0,n[2]=0,n[3]=r,n},extendedClipboardProvide(e,t,n){let r=new xr,i=[];for(let e=0;e<t.length;e++){if(t[e]!=fa)throw Error(`Unsupported extended clipboard format for Provide message.`);n[e]=n[e].replace(/\r\n|\r|\n/gm,`\r
|
|
5
|
+
`);let r=l(n[e]+`\0`);i.push(r.length>>24&255,r.length>>16&255,r.length>>8&255,r.length&255);for(let e=0;e<r.length;e++)i.push(r.charCodeAt(e))}let a=r.deflate(new Uint8Array(i)),o=new Uint8Array(4+a.length);o.set($.messages._buildExtendedClipboardFlags([_a],t)),o.set(a,4),$.messages.clientCutText(e,o,!0)},extendedClipboardNotify(e,t){let n=$.messages._buildExtendedClipboardFlags([ga],t);$.messages.clientCutText(e,n,!0)},extendedClipboardRequest(e,t){let n=$.messages._buildExtendedClipboardFlags([ma],t);$.messages.clientCutText(e,n,!0)},extendedClipboardCaps(e,t,n){let r=Object.keys(n),i=new Uint8Array(4+4*r.length);r.map(e=>parseInt(e)),r.sort((e,t)=>e-t),i.set($.messages._buildExtendedClipboardFlags(t,[]));let a=4;for(let e=0;e<r.length;e++)i[a]=n[r[e]]>>24,i[a+1]=n[r[e]]>>16,i[a+2]=n[r[e]]>>8,i[a+3]=n[r[e]]>>0,a+=4,i[3]|=1<<r[e];$.messages.clientCutText(e,i,!0)},clientCutText(t,n,r=!1){t.sQpush8(6),t.sQpush8(0),t.sQpush8(0),t.sQpush8(0);let i;i=r?e(-n.length):n.length,t.sQpush32(i),t.sQpushBytes(n),t.flush()},setDesktopSize(e,t,n,r,i){e.sQpush8(251),e.sQpush8(0),e.sQpush16(t),e.sQpush16(n),e.sQpush8(1),e.sQpush8(0),e.sQpush32(r),e.sQpush16(0),e.sQpush16(0),e.sQpush16(t),e.sQpush16(n),e.sQpush32(i),e.flush()},clientFence(e,t,n){e.sQpush8(248),e.sQpush8(0),e.sQpush8(0),e.sQpush8(0),e.sQpush32(t),e.sQpush8(n.length),e.sQpushString(n),e.flush()},enableContinuousUpdates(e,t,n,r,i,a){e.sQpush8(150),e.sQpush8(t),e.sQpush16(n),e.sQpush16(r),e.sQpush16(i),e.sQpush16(a),e.flush()},pixelFormat(e,t,n){let r;r=t>16?32:t>8?16:8;let i=Math.floor(t/3);e.sQpush8(0),e.sQpush8(0),e.sQpush8(0),e.sQpush8(0),e.sQpush8(r),e.sQpush8(t),e.sQpush8(0),e.sQpush8(+!!n),e.sQpush16((1<<i)-1),e.sQpush16((1<<i)-1),e.sQpush16((1<<i)-1),e.sQpush8(i*0),e.sQpush8(i*1),e.sQpush8(i*2),e.sQpush8(0),e.sQpush8(0),e.sQpush8(0),e.flush()},clientEncodings(e,t){e.sQpush8(2),e.sQpush8(0),e.sQpush16(t.length);for(let n=0;n<t.length;n++)e.sQpush32(t[n]);e.flush()},fbUpdateRequest(e,t,n,r,i,a){n===void 0&&(n=0),r===void 0&&(r=0),e.sQpush8(3),e.sQpush8(+!!t),e.sQpush16(n),e.sQpush16(r),e.sQpush16(i),e.sQpush16(a),e.flush()},xvpOp(e,t,n){e.sQpush8(250),e.sQpush8(0),e.sQpush8(t),e.sQpush8(n),e.flush()}},$.cursors={none:{rgbaPixels:new Uint8Array,w:0,h:0,hotx:0,hoty:0},dot:{rgbaPixels:new Uint8Array([255,255,255,255,0,0,0,255,255,255,255,255,0,0,0,255,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,255,255,255,255,255]),w:3,h:3,hotx:1,hoty:1}};export{$ as default};
|
|
6
|
+
//# sourceMappingURL=rfb-NV_fh9Db.js.map
|