diff --git a/CHANGES.md b/CHANGES.md index 848fa924..92bb81ea 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,8 @@ v1.8.1 - Loading: Resolve sourceUrl to absolute url when computing default id +- Loading: Disable ruffle on embeds by default, can enable with 'useruffle', enable on standalone by default, can disable with 'skipruffle' attr +- Dependencies: Switch to ruffle 2023-05-13 due to issues in later versions v1.8.0 - UI: Add 'Show All Pages' option to show non-seed pages that are previously only available via search diff --git a/docs/embedding.md b/docs/embedding.md index 8ff99ccc..7c6ee031 100644 --- a/docs/embedding.md +++ b/docs/embedding.md @@ -131,6 +131,7 @@ The `` tag is a web component that supports a number of additio | `newWindowBase` | set base replay URL loaded when a page opens a new window, defaults to `https://replayweb.page/` if `deepLink` not enabled, otherwise, to current page with new link. | | `requireSubdomainIframe` | if set, will only load embed in an iframe loaded from a subdomain, for increased origin isolation. | | `loading="eager"` | if set, will load the entire WACZ file at once (regardless of size), and not attempt on-demand range request loading. | +| `useRuffle` | if set, will enable include Ruffle Flash emulator. Must include the `ruffle/` directory in `replayBase`. | ### Versioning diff --git a/ruffle/8988d11439726031fb0c.wasm b/ruffle/8988d11439726031fb0c.wasm deleted file mode 100644 index df834e89..00000000 Binary files a/ruffle/8988d11439726031fb0c.wasm and /dev/null differ diff --git a/ruffle/LICENSE_MIT b/ruffle/LICENSE_MIT index 63a286b4..941fe993 100644 --- a/ruffle/LICENSE_MIT +++ b/ruffle/LICENSE_MIT @@ -1,4 +1,4 @@ -Copyright (c) 2018 Mike Welsh +Copyright (c) 2018 Ruffle LLC and Ruffle contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated diff --git a/ruffle/core.ruffle.671e8308f154108396e3.js b/ruffle/core.ruffle.671e8308f154108396e3.js deleted file mode 100644 index 17ab7fdf..00000000 --- a/ruffle/core.ruffle.671e8308f154108396e3.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkruffle_selfhosted=self.webpackChunkruffle_selfhosted||[]).push([[339],{972:(e,n,t)=>{function _(e,n){const t=e.length,_=e.getChannelData(0),r=e.getChannelData(1);let b=0,f=0;for(;fr,tM:()=>_})},339:(e,n,t)=>{t.r(n),t.d(n,{Ruffle:()=>O,default:()=>G,initSync:()=>W});var _=t(972);e=t.hmd(e);const r="undefined"!=typeof AudioContext?AudioContext:"undefined"!=typeof webkitAudioContext?webkitAudioContext:void 0;let b;const f="undefined"!=typeof TextDecoder?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};"undefined"!=typeof TextDecoder&&f.decode();let c=null;function a(){return null!==c&&0!==c.byteLength||(c=new Uint8Array(b.memory.buffer)),c}function u(e,n){return e>>>=0,f.decode(a().subarray(e,e+n))}function o(e){return null==e}let i=null;function g(){return null!==i&&0!==i.byteLength||(i=new Float64Array(b.memory.buffer)),i}let w=null;function d(){return null!==w&&0!==w.byteLength||(w=new Int32Array(b.memory.buffer)),w}let l=0;const s="undefined"!=typeof TextEncoder?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},m="function"==typeof s.encodeInto?function(e,n){return s.encodeInto(e,n)}:function(e,n){const t=s.encode(e);return n.set(t),{read:e.length,written:t.length}};function p(e,n,t){if(void 0===t){const t=s.encode(e),_=n(t.length)>>>0;return a().subarray(_,_+t.length).set(t),l=t.length,_}let _=e.length,r=n(_)>>>0;const b=a();let f=0;for(;f<_;f++){const n=e.charCodeAt(f);if(n>127)break;b[r+f]=n}if(f!==_){0!==f&&(e=e.slice(f)),r=t(r,_,_=f+3*e.length)>>>0;const n=a().subarray(r+f,r+_);f+=m(e,n).written}return l=f,r}let y=null;function h(e){const n=typeof e;if("number"==n||"boolean"==n||null==e)return`${e}`;if("string"==n)return`"${e}"`;if("symbol"==n){const n=e.description;return null==n?"Symbol":`Symbol(${n})`}if("function"==n){const n=e.name;return"string"==typeof n&&n.length>0?`Function(${n})`:"Function"}if(Array.isArray(e)){const n=e.length;let t="[";n>0&&(t+=h(e[0]));for(let _=1;_1))return toString.call(e);if(_=t[1],"Object"==_)try{return"Object("+JSON.stringify(e)+")"}catch(e){return"Object"}return e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:_}function x(e,n,t,_){const r={a:e,b:n,cnt:1,dtor:t},f=(...e)=>{r.cnt++;const n=r.a;r.a=0;try{return _(n,r.b,...e)}finally{0==--r.cnt?b.__wbindgen_export_3.get(r.dtor)(n,r.b):r.a=n}};return f.original=r,f}function v(e,n){b.wasm_bindgen__convert__closures__invoke0_mut__h4b01b0822ce139fa(e,n)}function S(e,n,t){b.closure439_externref_shim(e,n,t)}function A(e,n,t){b.wasm_bindgen__convert__closures__invoke1_mut__h02f36222b5adbed5(e,n,t)}function D(e,n,t){b.closure5344_externref_shim(e,n,t)}function I(e){const n=b.__externref_table_alloc();return b.__wbindgen_export_2.set(n,e),n}function T(e,n){try{return e.apply(this,n)}catch(e){const n=I(e);b.__wbindgen_exn_store(n)}}function P(e){const n=b.__wbindgen_export_2.get(e);return b.__externref_table_dealloc(e),n}let E=null;function F(){return null!==E&&0!==E.byteLength||(E=new Uint32Array(b.memory.buffer)),E}let M=null;function R(e,n){return e>>>=0,(null!==M&&0!==M.byteLength||(M=new Float32Array(b.memory.buffer)),M).subarray(e/4,e/4+n)}function B(e,n){return e>>>=0,d().subarray(e/4,e/4+n)}function k(e,n){return e>>>=0,a().subarray(e/1,e/1+n)}let C=null;function L(e,n){return e>>>=0,(null!==C&&0!==C.byteLength||(C=new Uint8ClampedArray(b.memory.buffer)),C).subarray(e/1,e/1+n)}class O{static __wrap(e){e>>>=0;const n=Object.create(O.prototype);return n.__wbg_ptr=e,n}__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,e}free(){const e=this.__destroy_into_raw();b.__wbg_ruffle_free(e)}constructor(e,n,t){return b.ruffle_new(e,n,t)}stream_from(e,n){try{const _=b.__wbindgen_add_to_stack_pointer(-16),r=p(e,b.__wbindgen_malloc,b.__wbindgen_realloc),f=l;b.ruffle_stream_from(_,this.__wbg_ptr,r,f,n);var t=d()[_/4+0];if(d()[_/4+1])throw P(t)}finally{b.__wbindgen_add_to_stack_pointer(16)}}load_data(e,n,t){try{const r=b.__wbindgen_add_to_stack_pointer(-16),f=p(t,b.__wbindgen_malloc,b.__wbindgen_realloc),c=l;b.ruffle_load_data(r,this.__wbg_ptr,e,n,f,c);var _=d()[r/4+0];if(d()[r/4+1])throw P(_)}finally{b.__wbindgen_add_to_stack_pointer(16)}}play(){b.ruffle_play(this.__wbg_ptr)}pause(){b.ruffle_pause(this.__wbg_ptr)}is_playing(){return 0!==b.ruffle_is_playing(this.__wbg_ptr)}volume(){return b.ruffle_volume(this.__wbg_ptr)}set_volume(e){b.ruffle_set_volume(this.__wbg_ptr,e)}renderer_debug_info(){return b.ruffle_renderer_debug_info(this.__wbg_ptr)}renderer_name(){return b.ruffle_renderer_name(this.__wbg_ptr)}prepare_context_menu(){return b.ruffle_prepare_context_menu(this.__wbg_ptr)}run_context_menu_callback(e){b.ruffle_run_context_menu_callback(this.__wbg_ptr,e)}set_fullscreen(e){b.ruffle_set_fullscreen(this.__wbg_ptr,e)}clear_custom_menu_items(){b.ruffle_clear_custom_menu_items(this.__wbg_ptr)}destroy(){b.ruffle_destroy(this.__wbg_ptr)}call_exposed_callback(e,n){const t=p(e,b.__wbindgen_malloc,b.__wbindgen_realloc),_=l,r=function(e,n){const t=n(4*e.length)>>>0,_=F();for(let n=0;n>>0,t)},n.wbg.__wbg_bindBufferRange_a27bbdf85c559847=function(e,n,t,_,r,b){e.bindBufferRange(n>>>0,t>>>0,_,r,b)},n.wbg.__wbg_bindSampler_b133997c35586e8e=function(e,n,t){e.bindSampler(n>>>0,t)},n.wbg.__wbg_bindVertexArray_ff82138c68ab11e2=function(e,n){e.bindVertexArray(n)},n.wbg.__wbg_blitFramebuffer_642189de83d5541c=function(e,n,t,_,r,b,f,c,a,u,o){e.blitFramebuffer(n,t,_,r,b,f,c,a,u>>>0,o>>>0)},n.wbg.__wbg_bufferData_7a92a4df64dedbb5=function(e,n,t,_){e.bufferData(n>>>0,t,_>>>0)},n.wbg.__wbg_bufferData_bc2f1a27f7162655=function(e,n,t,_){e.bufferData(n>>>0,t,_>>>0)},n.wbg.__wbg_bufferSubData_dfaee0913e5a5aa9=function(e,n,t,_){e.bufferSubData(n>>>0,t,_)},n.wbg.__wbg_clearBufferfi_885cba971ec9b951=function(e,n,t,_,r){e.clearBufferfi(n>>>0,t,_,r)},n.wbg.__wbg_clearBufferfv_c3e8e1d2aae72740=function(e,n,t,_,r){e.clearBufferfv(n>>>0,t,R(_,r))},n.wbg.__wbg_clearBufferiv_0d10229f924f144a=function(e,n,t,_,r){e.clearBufferiv(n>>>0,t,B(_,r))},n.wbg.__wbg_clearBufferuiv_69b26948d51288f6=function(e,n,t,_,r){var b,f;e.clearBufferuiv(n>>>0,t,(b=_,f=r,b>>>=0,F().subarray(b/4,b/4+f)))},n.wbg.__wbg_clientWaitSync_6ae34a595c426123=function(e,n,t,_){return e.clientWaitSync(n,t>>>0,_>>>0)},n.wbg.__wbg_compressedTexSubImage2D_50328fcf0a02e44e=function(e,n,t,_,r,b,f,c,a,u){e.compressedTexSubImage2D(n>>>0,t,_,r,b,f,c>>>0,a,u)},n.wbg.__wbg_compressedTexSubImage2D_2f1e2aa4819eb8bf=function(e,n,t,_,r,b,f,c,a){e.compressedTexSubImage2D(n>>>0,t,_,r,b,f,c>>>0,a)},n.wbg.__wbg_compressedTexSubImage3D_b091ddadefb6d8bb=function(e,n,t,_,r,b,f,c,a,u,o,i){e.compressedTexSubImage3D(n>>>0,t,_,r,b,f,c,a,u>>>0,o,i)},n.wbg.__wbg_compressedTexSubImage3D_7862a58f184543f9=function(e,n,t,_,r,b,f,c,a,u,o){e.compressedTexSubImage3D(n>>>0,t,_,r,b,f,c,a,u>>>0,o)},n.wbg.__wbg_copyBufferSubData_241eafcbd4c12698=function(e,n,t,_,r,b){e.copyBufferSubData(n>>>0,t>>>0,_,r,b)},n.wbg.__wbg_copyTexSubImage3D_a9e399a02a7b4913=function(e,n,t,_,r,b,f,c,a,u){e.copyTexSubImage3D(n>>>0,t,_,r,b,f,c,a,u)},n.wbg.__wbg_createQuery_7d9135a15ef7f7c1=function(e){const n=e.createQuery();return o(n)?0:I(n)},n.wbg.__wbg_createSampler_7cb18b6a7344cb7f=function(e){const n=e.createSampler();return o(n)?0:I(n)},n.wbg.__wbg_createVertexArray_c3ea33e844216f0c=function(e){const n=e.createVertexArray();return o(n)?0:I(n)},n.wbg.__wbg_deleteQuery_899eac2d10c353fe=function(e,n){e.deleteQuery(n)},n.wbg.__wbg_deleteSampler_fb860789f4f979fa=function(e,n){e.deleteSampler(n)},n.wbg.__wbg_deleteSync_29a2e0ba8b2b1fba=function(e,n){e.deleteSync(n)},n.wbg.__wbg_deleteVertexArray_6cac5e6d920ec62c=function(e,n){e.deleteVertexArray(n)},n.wbg.__wbg_drawArraysInstanced_5d47597735cf8309=function(e,n,t,_,r){e.drawArraysInstanced(n>>>0,t,_,r)},n.wbg.__wbg_drawBuffers_95b0dc2f4a51d86c=function(e,n){e.drawBuffers(n)},n.wbg.__wbg_drawElementsInstanced_ca6817ccc8efd367=function(e,n,t,_,r,b){e.drawElementsInstanced(n>>>0,t,_>>>0,r,b)},n.wbg.__wbg_endQuery_8c211cc02cd01b20=function(e,n){e.endQuery(n>>>0)},n.wbg.__wbg_fenceSync_be6e28c0ab054b7c=function(e,n,t){const _=e.fenceSync(n>>>0,t>>>0);return o(_)?0:I(_)},n.wbg.__wbg_framebufferTextureLayer_4d37fce65ad6fa24=function(e,n,t,_,r,b){e.framebufferTextureLayer(n>>>0,t>>>0,_,r,b)},n.wbg.__wbg_getBufferSubData_00b00fcc39df3d04=function(e,n,t,_){e.getBufferSubData(n>>>0,t,_)},n.wbg.__wbg_getIndexedParameter_3653fa5731165779=function(){return T((function(e,n,t){return e.getIndexedParameter(n>>>0,t>>>0)}),arguments)},n.wbg.__wbg_getQueryParameter_10fdcafc2556d716=function(e,n,t){return e.getQueryParameter(n,t>>>0)},n.wbg.__wbg_getSyncParameter_54a1c9c396fc8f04=function(e,n,t){return e.getSyncParameter(n,t>>>0)},n.wbg.__wbg_getUniformBlockIndex_d7c6b4424fadb6d7=function(e,n,t,_){return e.getUniformBlockIndex(n,u(t,_))},n.wbg.__wbg_invalidateFramebuffer_3722ca67172c0986=function(){return T((function(e,n,t){e.invalidateFramebuffer(n>>>0,t)}),arguments)},n.wbg.__wbg_readBuffer_3b7ca5f65ff370fa=function(e,n){e.readBuffer(n>>>0)},n.wbg.__wbg_readPixels_4bb6684850f73e43=function(){return T((function(e,n,t,_,r,b,f,c){e.readPixels(n,t,_,r,b>>>0,f>>>0,c)}),arguments)},n.wbg.__wbg_readPixels_dd16316dc9f7e055=function(){return T((function(e,n,t,_,r,b,f,c){e.readPixels(n,t,_,r,b>>>0,f>>>0,c)}),arguments)},n.wbg.__wbg_renderbufferStorageMultisample_edfed2d6d47a1ffc=function(e,n,t,_,r,b){e.renderbufferStorageMultisample(n>>>0,t,_>>>0,r,b)},n.wbg.__wbg_samplerParameterf_3de8180b6f0e0bad=function(e,n,t,_){e.samplerParameterf(n,t>>>0,_)},n.wbg.__wbg_samplerParameteri_b48e56d39240ebfd=function(e,n,t,_){e.samplerParameteri(n,t>>>0,_)},n.wbg.__wbg_texImage2D_3958aae1a00124c3=function(){return T((function(e,n,t,_,r,b,f,c,a,u,o){e.texImage2D(n>>>0,t,_,r,b,f,c>>>0,a>>>0,0===u?void 0:k(u,o))}),arguments)},n.wbg.__wbg_texStorage2D_ea61cc78cf6dccc0=function(e,n,t,_,r,b){e.texStorage2D(n>>>0,t,_>>>0,r,b)},n.wbg.__wbg_texStorage3D_c0418a94dce44435=function(e,n,t,_,r,b,f){e.texStorage3D(n>>>0,t,_>>>0,r,b,f)},n.wbg.__wbg_texSubImage2D_c3c012dc814eb4de=function(){return T((function(e,n,t,_,r,b,f,c,a,u){e.texSubImage2D(n>>>0,t,_,r,b,f,c>>>0,a>>>0,u)}),arguments)},n.wbg.__wbg_texSubImage2D_6cc58218d4d2218e=function(){return T((function(e,n,t,_,r,b,f,c,a,u){e.texSubImage2D(n>>>0,t,_,r,b,f,c>>>0,a>>>0,u)}),arguments)},n.wbg.__wbg_texSubImage2D_f2fc59cdbfe082f6=function(){return T((function(e,n,t,_,r,b,f,c,a,u){e.texSubImage2D(n>>>0,t,_,r,b,f,c>>>0,a>>>0,u)}),arguments)},n.wbg.__wbg_texSubImage2D_b80984a8394c2164=function(){return T((function(e,n,t,_,r,b,f,c,a,u){e.texSubImage2D(n>>>0,t,_,r,b,f,c>>>0,a>>>0,u)}),arguments)},n.wbg.__wbg_texSubImage2D_74b98607dfd0e706=function(){return T((function(e,n,t,_,r,b,f,c,a,u){e.texSubImage2D(n>>>0,t,_,r,b,f,c>>>0,a>>>0,u)}),arguments)},n.wbg.__wbg_texSubImage3D_46493f330c34c3b5=function(){return T((function(e,n,t,_,r,b,f,c,a,u,o,i){e.texSubImage3D(n>>>0,t,_,r,b,f,c,a,u>>>0,o>>>0,i)}),arguments)},n.wbg.__wbg_texSubImage3D_a6a842c4612308e8=function(){return T((function(e,n,t,_,r,b,f,c,a,u,o,i){e.texSubImage3D(n>>>0,t,_,r,b,f,c,a,u>>>0,o>>>0,i)}),arguments)},n.wbg.__wbg_texSubImage3D_baa311b32dcdc729=function(){return T((function(e,n,t,_,r,b,f,c,a,u,o,i){e.texSubImage3D(n>>>0,t,_,r,b,f,c,a,u>>>0,o>>>0,i)}),arguments)},n.wbg.__wbg_texSubImage3D_1e4f13bb2b1241ba=function(){return T((function(e,n,t,_,r,b,f,c,a,u,o,i){e.texSubImage3D(n>>>0,t,_,r,b,f,c,a,u>>>0,o>>>0,i)}),arguments)},n.wbg.__wbg_texSubImage3D_6f1cfd7913d851c1=function(){return T((function(e,n,t,_,r,b,f,c,a,u,o,i){e.texSubImage3D(n>>>0,t,_,r,b,f,c,a,u>>>0,o>>>0,i)}),arguments)},n.wbg.__wbg_uniform2fv_5d6ac180f63f4c4d=function(e,n,t,_){e.uniform2fv(n,R(t,_))},n.wbg.__wbg_uniform2iv_49d86b6eec9545b2=function(e,n,t,_){e.uniform2iv(n,B(t,_))},n.wbg.__wbg_uniform3fv_e576b04dd8611cdd=function(e,n,t,_){e.uniform3fv(n,R(t,_))},n.wbg.__wbg_uniform3iv_9977b4a6060ecef7=function(e,n,t,_){e.uniform3iv(n,B(t,_))},n.wbg.__wbg_uniform4fv_4fb418ea47a23f30=function(e,n,t,_){e.uniform4fv(n,R(t,_))},n.wbg.__wbg_uniform4iv_22e92f9fbaa43da2=function(e,n,t,_){e.uniform4iv(n,B(t,_))},n.wbg.__wbg_uniformBlockBinding_d55da3e5fc253c29=function(e,n,t,_){e.uniformBlockBinding(n,t>>>0,_>>>0)},n.wbg.__wbg_uniformMatrix2fv_f8a7c78e2a307606=function(e,n,t,_,r){e.uniformMatrix2fv(n,0!==t,R(_,r))},n.wbg.__wbg_uniformMatrix3fv_5fb56cebdc61819c=function(e,n,t,_,r){e.uniformMatrix3fv(n,0!==t,R(_,r))},n.wbg.__wbg_uniformMatrix4fv_43b24d28b294355e=function(e,n,t,_,r){e.uniformMatrix4fv(n,0!==t,R(_,r))},n.wbg.__wbg_vertexAttribDivisor_4bdbd8a597592338=function(e,n,t){e.vertexAttribDivisor(n>>>0,t>>>0)},n.wbg.__wbg_vertexAttribIPointer_2c55e7fe6713fc22=function(e,n,t,_,r,b){e.vertexAttribIPointer(n>>>0,t,_>>>0,r,b)},n.wbg.__wbg_activeTexture_0c3957272c193058=function(e,n){e.activeTexture(n>>>0)},n.wbg.__wbg_attachShader_cda29f0482c65440=function(e,n,t){e.attachShader(n,t)},n.wbg.__wbg_bindBuffer_6f9a2fa9ebc65b01=function(e,n,t){e.bindBuffer(n>>>0,t)},n.wbg.__wbg_bindFramebuffer_829df2e0091b6fcb=function(e,n,t){e.bindFramebuffer(n>>>0,t)},n.wbg.__wbg_bindRenderbuffer_21f89c9f18128e39=function(e,n,t){e.bindRenderbuffer(n>>>0,t)},n.wbg.__wbg_bindTexture_10219c0f804bff90=function(e,n,t){e.bindTexture(n>>>0,t)},n.wbg.__wbg_blendColor_d2bb381c9bf679e9=function(e,n,t,_,r){e.blendColor(n,t,_,r)},n.wbg.__wbg_blendEquation_6d2f257c64af825c=function(e,n){e.blendEquation(n>>>0)},n.wbg.__wbg_blendEquationSeparate_02dd5ec6a2c24f28=function(e,n,t){e.blendEquationSeparate(n>>>0,t>>>0)},n.wbg.__wbg_blendFunc_210b8c175df415a2=function(e,n,t){e.blendFunc(n>>>0,t>>>0)},n.wbg.__wbg_blendFuncSeparate_f9dccffef5a98f44=function(e,n,t,_,r){e.blendFuncSeparate(n>>>0,t>>>0,_>>>0,r>>>0)},n.wbg.__wbg_colorMask_1dfb9a91ae2b9e71=function(e,n,t,_,r){e.colorMask(0!==n,0!==t,0!==_,0!==r)},n.wbg.__wbg_compileShader_6f505d659e2795e6=function(e,n){e.compileShader(n)},n.wbg.__wbg_copyTexSubImage2D_d24471634d2806ea=function(e,n,t,_,r,b,f,c,a){e.copyTexSubImage2D(n>>>0,t,_,r,b,f,c,a)},n.wbg.__wbg_createBuffer_0da7eb27184081a8=function(e){const n=e.createBuffer();return o(n)?0:I(n)},n.wbg.__wbg_createFramebuffer_591225e0e871c0ca=function(e){const n=e.createFramebuffer();return o(n)?0:I(n)},n.wbg.__wbg_createProgram_535e1a7a84baa7ff=function(e){const n=e.createProgram();return o(n)?0:I(n)},n.wbg.__wbg_createRenderbuffer_bc3df425ce38e3a9=function(e){const n=e.createRenderbuffer();return o(n)?0:I(n)},n.wbg.__wbg_createShader_b1a69c91a9abbcf9=function(e,n){const t=e.createShader(n>>>0);return o(t)?0:I(t)},n.wbg.__wbg_createTexture_f999863e1ff4544e=function(e){const n=e.createTexture();return o(n)?0:I(n)},n.wbg.__wbg_cullFace_cd7e0b26c9752ee2=function(e,n){e.cullFace(n>>>0)},n.wbg.__wbg_deleteBuffer_d6466e666563f36a=function(e,n){e.deleteBuffer(n)},n.wbg.__wbg_deleteFramebuffer_7e53363364604b3c=function(e,n){e.deleteFramebuffer(n)},n.wbg.__wbg_deleteProgram_c6b502ab111ca429=function(e,n){e.deleteProgram(n)},n.wbg.__wbg_deleteRenderbuffer_dd5cf6b493cb5957=function(e,n){e.deleteRenderbuffer(n)},n.wbg.__wbg_deleteShader_cbb128151b8b2b6b=function(e,n){e.deleteShader(n)},n.wbg.__wbg_deleteTexture_43dcaa158a7a967b=function(e,n){e.deleteTexture(n)},n.wbg.__wbg_depthFunc_6c9952a747eff1e4=function(e,n){e.depthFunc(n>>>0)},n.wbg.__wbg_depthMask_cbb47d618b2d576f=function(e,n){e.depthMask(0!==n)},n.wbg.__wbg_depthRange_9e881c47e26c4451=function(e,n,t){e.depthRange(n,t)},n.wbg.__wbg_disable_94431bed03515efb=function(e,n){e.disable(n>>>0)},n.wbg.__wbg_disableVertexAttribArray_6f95b891552695e8=function(e,n){e.disableVertexAttribArray(n>>>0)},n.wbg.__wbg_drawArrays_77814548b9e573f2=function(e,n,t,_){e.drawArrays(n>>>0,t,_)},n.wbg.__wbg_enable_b36ff5159bc88f3d=function(e,n){e.enable(n>>>0)},n.wbg.__wbg_enableVertexAttribArray_7e45a67bd47ec1bc=function(e,n){e.enableVertexAttribArray(n>>>0)},n.wbg.__wbg_framebufferRenderbuffer_906d97968d0d8e6d=function(e,n,t,_,r){e.framebufferRenderbuffer(n>>>0,t>>>0,_>>>0,r)},n.wbg.__wbg_framebufferTexture2D_1dc2c539b965175d=function(e,n,t,_,r,b){e.framebufferTexture2D(n>>>0,t>>>0,_>>>0,r,b)},n.wbg.__wbg_frontFace_9aa0c51c6e4b1b49=function(e,n){e.frontFace(n>>>0)},n.wbg.__wbg_getActiveUniform_89a5bd32a9f76fe3=function(e,n,t){const _=e.getActiveUniform(n,t>>>0);return o(_)?0:I(_)},n.wbg.__wbg_getError_1a05a504dbd2417e=function(e){return e.getError()},n.wbg.__wbg_getExtension_6b00e2c6c766b6cb=function(){return T((function(e,n,t){const _=e.getExtension(u(n,t));return o(_)?0:I(_)}),arguments)},n.wbg.__wbg_getParameter_9e1070be2e213377=function(){return T((function(e,n){return e.getParameter(n>>>0)}),arguments)},n.wbg.__wbg_getProgramInfoLog_03d7941c48fa9179=function(e,n,t){const _=n.getProgramInfoLog(t);var r=o(_)?0:p(_,b.__wbindgen_malloc,b.__wbindgen_realloc),f=l;d()[e/4+1]=f,d()[e/4+0]=r},n.wbg.__wbg_getProgramParameter_dd171792e4ba3184=function(e,n,t){return e.getProgramParameter(n,t>>>0)},n.wbg.__wbg_getShaderInfoLog_c1cca646bf94aa17=function(e,n,t){const _=n.getShaderInfoLog(t);var r=o(_)?0:p(_,b.__wbindgen_malloc,b.__wbindgen_realloc),f=l;d()[e/4+1]=f,d()[e/4+0]=r},n.wbg.__wbg_getShaderParameter_c1d89b570b67be37=function(e,n,t){return e.getShaderParameter(n,t>>>0)},n.wbg.__wbg_getSupportedExtensions_675e4373f0fe08ca=function(e){const n=e.getSupportedExtensions();return o(n)?0:I(n)},n.wbg.__wbg_getUniformLocation_984bcb57f0539335=function(e,n,t,_){const r=e.getUniformLocation(n,u(t,_));return o(r)?0:I(r)},n.wbg.__wbg_linkProgram_0a25df9d4086c8c9=function(e,n){e.linkProgram(n)},n.wbg.__wbg_pixelStorei_2a2698776f2da87a=function(e,n,t){e.pixelStorei(n>>>0,t)},n.wbg.__wbg_polygonOffset_e77202d52b1290b6=function(e,n,t){e.polygonOffset(n,t)},n.wbg.__wbg_renderbufferStorage_1c98a13850038020=function(e,n,t,_,r){e.renderbufferStorage(n>>>0,t>>>0,_,r)},n.wbg.__wbg_scissor_5bbf5da585fcd6cd=function(e,n,t,_,r){e.scissor(n,t,_,r)},n.wbg.__wbg_shaderSource_5c55ce208ee2dc38=function(e,n,t,_){e.shaderSource(n,u(t,_))},n.wbg.__wbg_stencilFuncSeparate_cb264101eaecfcb0=function(e,n,t,_,r){e.stencilFuncSeparate(n>>>0,t>>>0,_,r>>>0)},n.wbg.__wbg_stencilMask_6cad8d0399d80755=function(e,n){e.stencilMask(n>>>0)},n.wbg.__wbg_stencilMaskSeparate_39a3bad615edec8b=function(e,n,t){e.stencilMaskSeparate(n>>>0,t>>>0)},n.wbg.__wbg_stencilOpSeparate_ab649871fc6cd85b=function(e,n,t,_,r){e.stencilOpSeparate(n>>>0,t>>>0,_>>>0,r>>>0)},n.wbg.__wbg_texParameteri_05700ca575d5f41d=function(e,n,t,_){e.texParameteri(n>>>0,t>>>0,_)},n.wbg.__wbg_uniform1f_51ae9c9d19ab2a9e=function(e,n,t){e.uniform1f(n,t)},n.wbg.__wbg_uniform1i_ef0ff3d67b59f4de=function(e,n,t){e.uniform1i(n,t)},n.wbg.__wbg_uniform4f_56014e7614d24fb7=function(e,n,t,_,r,b){e.uniform4f(n,t,_,r,b)},n.wbg.__wbg_useProgram_f16b06e2ecdf168f=function(e,n){e.useProgram(n)},n.wbg.__wbg_vertexAttribPointer_c16280a7c840a534=function(e,n,t,_,r,b,f){e.vertexAttribPointer(n>>>0,t,_>>>0,0!==r,b,f)},n.wbg.__wbg_viewport_a79678835091995e=function(e,n,t,_,r){e.viewport(n,t,_,r)},n.wbg.__wbg_instanceof_Window_c5579e140698a9dc=function(e){let n;try{n=e instanceof Window}catch{n=!1}return n},n.wbg.__wbg_document_508774c021174a52=function(e){const n=e.document;return o(n)?0:I(n)},n.wbg.__wbg_location_f6c62a50e72200c8=function(e){return e.location},n.wbg.__wbg_navigator_957c9b40d49df205=function(e){return e.navigator},n.wbg.__wbg_devicePixelRatio_027b47127fcabea6=function(e){return e.devicePixelRatio},n.wbg.__wbg_localStorage_b5b6d3c826dbfeda=function(){return T((function(e){const n=e.localStorage;return o(n)?0:I(n)}),arguments)},n.wbg.__wbg_confirm_e1225db20f73462d=function(){return T((function(e,n,t){return e.confirm(u(n,t))}),arguments)},n.wbg.__wbg_focus_61c39b9b9f538150=function(){return T((function(e){e.focus()}),arguments)},n.wbg.__wbg_open_7403f38d13c728d5=function(){return T((function(e,n,t,_,r){const b=e.open(u(n,t),u(_,r));return o(b)?0:I(b)}),arguments)},n.wbg.__wbg_cancelAnimationFrame_1e00b5639e850581=function(){return T((function(e,n){e.cancelAnimationFrame(n)}),arguments)},n.wbg.__wbg_requestAnimationFrame_d28701d8e57998d1=function(){return T((function(e,n){return e.requestAnimationFrame(n)}),arguments)},n.wbg.__wbg_fetch_bb49ae9f1d79408b=function(e,n){return e.fetch(n)},n.wbg.__wbg_style_6bc91a563e84d432=function(e){return e.style},n.wbg.__wbg_addColorStop_f76baa96c8c853fc=function(){return T((function(e,n,t,_){e.addColorStop(n,u(t,_))}),arguments)},n.wbg.__wbg_instanceof_HtmlDocument_4869edf6c2c151e3=function(e){let n;try{n=e instanceof HTMLDocument}catch{n=!1}return n},n.wbg.__wbg_execCommand_e253519e4df312c6=function(){return T((function(e,n,t){return e.execCommand(u(n,t))}),arguments)},n.wbg.__wbg_length_58c2aaf98bae4ec9=function(e){return e.length},n.wbg.__wbg_inverse_cef32d1dd8905e26=function(e){return e.inverse()},n.wbg.__wbg_instanceof_HtmlCanvasElement_b2dfeaf97587c9fa=function(e){let n;try{n=e instanceof HTMLCanvasElement}catch{n=!1}return n},n.wbg.__wbg_width_b1f2559ce447b1d9=function(e){return e.width},n.wbg.__wbg_setwidth_196f4382488fd119=function(e,n){e.width=n>>>0},n.wbg.__wbg_height_0d9fffc5de313208=function(e){return e.height},n.wbg.__wbg_setheight_6d295d03e1783969=function(e,n){e.height=n>>>0},n.wbg.__wbg_getContext_24464d6344024525=function(){return T((function(e,n,t){const _=e.getContext(u(n,t));return o(_)?0:I(_)}),arguments)},n.wbg.__wbg_getContext_77e8ee1ed9b4b6dd=function(){return T((function(e,n,t,_){const r=e.getContext(u(n,t),_);return o(r)?0:I(r)}),arguments)},n.wbg.__wbg_width_3ccb03efe2122196=function(e){return e.width},n.wbg.__wbg_height_756c13122fb83a8f=function(e){return e.height},n.wbg.__wbg_bindVertexArrayOES_edb665af84add641=function(e,n){e.bindVertexArrayOES(n)},n.wbg.__wbg_createVertexArrayOES_72dc110fc4561db9=function(e){const n=e.createVertexArrayOES();return o(n)?0:I(n)},n.wbg.__wbg_deleteVertexArrayOES_bb2f05cfcd49a758=function(e,n){e.deleteVertexArrayOES(n)},n.wbg.__wbg_width_a0eafc5275e3f419=function(e){return e.width},n.wbg.__wbg_setwidth_12586bf0f02e8f95=function(e,n){e.width=n>>>0},n.wbg.__wbg_height_44501524d7b0437d=function(e){return e.height},n.wbg.__wbg_setheight_6752c0cba8cfd0b4=function(e,n){e.height=n>>>0},n.wbg.__wbg_pointerId_438f8328b763cbac=function(e){return e.pointerId},n.wbg.__wbg_deltaY_c24e1c19542b4ba4=function(e){return e.deltaY},n.wbg.__wbg_deltaMode_998c8ea939f3998a=function(e){return e.deltaMode},n.wbg.__wbg_framebufferTextureMultiviewOVR_d3d00b7e42809e9c=function(e,n,t,_,r,b,f){e.framebufferTextureMultiviewOVR(n>>>0,t>>>0,_,r,b,f)},n.wbg.__wbg_now_c97f243e7947c4ac=function(e){return e.now()},n.wbg.__wbg_headers_1eff4f53324496e6=function(e){return e.headers},n.wbg.__wbg_newwithstrandinit_a4cd16dfaafcf625=function(){return T((function(e,n,t){return new Request(u(e,n),t)}),arguments)},n.wbg.__wbg_setbuffer_7e24ddf1f55394c0=function(e,n){e.buffer=n},n.wbg.__wbg_setonended_30c0596773a1dfc3=function(e,n){e.onended=n},n.wbg.__wbg_start_dc7a146b60dcc9b3=function(){return T((function(e,n){e.start(n)}),arguments)},n.wbg.__wbg_connect_6d125e4872b0bd49=function(){return T((function(e,n){return e.connect(n)}),arguments)},n.wbg.__wbg_offsetX_10c81ba572d79577=function(e){return e.offsetX},n.wbg.__wbg_offsetY_804852ad76e32718=function(e){return e.offsetY},n.wbg.__wbg_button_88e86c8fe3039068=function(e){return e.button},n.wbg.__wbg_new_264b389618b36913=function(){return T((function(){return new Path2D}),arguments)},n.wbg.__wbg_addPath_27ac1ec625f3bd54=function(e,n,t){e.addPath(n,t)},n.wbg.__wbg_closePath_9c006fa9b0c86244=function(e){e.closePath()},n.wbg.__wbg_lineTo_19e3b685d7cf0737=function(e,n,t){e.lineTo(n,t)},n.wbg.__wbg_moveTo_692b94a65e659581=function(e,n,t){e.moveTo(n,t)},n.wbg.__wbg_quadraticCurveTo_65f1cf311e950722=function(e,n,t,_,r){e.quadraticCurveTo(n,t,_,r)},n.wbg.__wbg_rect_567e289af151a8f5=function(e,n,t,_,r){e.rect(n,t,_,r)},n.wbg.__wbg_drawBuffersWEBGL_874be434ff8441a5=function(e,n){e.drawBuffersWEBGL(n)},n.wbg.__wbg_getData_f586c0811a7ec1c4=function(){return T((function(e,n,t,_){const r=p(n.getData(u(t,_)),b.__wbindgen_malloc,b.__wbindgen_realloc),f=l;d()[e/4+1]=f,d()[e/4+0]=r}),arguments)},n.wbg.__wbg_videoWidth_3b49fdb5de96b51a=function(e){return e.videoWidth},n.wbg.__wbg_videoHeight_39749fb7b13f66b5=function(e){return e.videoHeight},n.wbg.__wbg_language_58f136fb521e5304=function(e,n){const t=n.language;var _=o(t)?0:p(t,b.__wbindgen_malloc,b.__wbindgen_realloc),r=l;d()[e/4+1]=r,d()[e/4+0]=_},n.wbg.__wbg_instanceof_WebGlRenderingContext_e1419556cd2b2d2d=function(e){let n;try{n=e instanceof WebGLRenderingContext}catch{n=!1}return n},n.wbg.__wbg_drawingBufferWidth_67cfc585a809972a=function(e){return e.drawingBufferWidth},n.wbg.__wbg_drawingBufferHeight_de4ff466eed9ac86=function(e){return e.drawingBufferHeight},n.wbg.__wbg_bufferData_a8026dfac31d2906=function(e,n,t,_){e.bufferData(n>>>0,t,_>>>0)},n.wbg.__wbg_bufferData_bf07fdd88f2e61a0=function(e,n,t,_){e.bufferData(n>>>0,t,_>>>0)},n.wbg.__wbg_bufferData_c8eebe7d6368d9ec=function(e,n,t,_,r){e.bufferData(n>>>0,k(t,_),r>>>0)},n.wbg.__wbg_bufferSubData_af20b6998df1daf5=function(e,n,t,_){e.bufferSubData(n>>>0,t,_)},n.wbg.__wbg_compressedTexSubImage2D_c2d0d8cbcaf08cec=function(e,n,t,_,r,b,f,c,a){e.compressedTexSubImage2D(n>>>0,t,_,r,b,f,c>>>0,a)},n.wbg.__wbg_readPixels_7e99f56bb0beeea6=function(){return T((function(e,n,t,_,r,b,f,c){e.readPixels(n,t,_,r,b>>>0,f>>>0,c)}),arguments)},n.wbg.__wbg_texImage2D_ac2969f15a57716d=function(){return T((function(e,n,t,_,r,b,f,c,a,u,o){e.texImage2D(n>>>0,t,_,r,b,f,c>>>0,a>>>0,0===u?void 0:k(u,o))}),arguments)},n.wbg.__wbg_texSubImage2D_3393b2faf4bdeda7=function(){return T((function(e,n,t,_,r,b,f,c,a,u){e.texSubImage2D(n>>>0,t,_,r,b,f,c>>>0,a>>>0,u)}),arguments)},n.wbg.__wbg_uniform1fv_e360864efdd3a538=function(e,n,t,_){e.uniform1fv(n,R(t,_))},n.wbg.__wbg_uniform2fv_eb1d8ba39134b63f=function(e,n,t,_){e.uniform2fv(n,R(t,_))},n.wbg.__wbg_uniform2iv_ddd3395ddb25e28f=function(e,n,t,_){e.uniform2iv(n,B(t,_))},n.wbg.__wbg_uniform3fv_51ce1d090ff61eb8=function(e,n,t,_){e.uniform3fv(n,R(t,_))},n.wbg.__wbg_uniform3iv_72a700fef0840b5b=function(e,n,t,_){e.uniform3iv(n,B(t,_))},n.wbg.__wbg_uniform4fv_329033dc8e0d864b=function(e,n,t,_){e.uniform4fv(n,R(t,_))},n.wbg.__wbg_uniform4iv_8b0f52426db76864=function(e,n,t,_){e.uniform4iv(n,B(t,_))},n.wbg.__wbg_uniformMatrix2fv_43aab1b3ba44f113=function(e,n,t,_,r){e.uniformMatrix2fv(n,0!==t,R(_,r))},n.wbg.__wbg_uniformMatrix3fv_4e8c5fac9b4e2596=function(e,n,t,_,r){e.uniformMatrix3fv(n,0!==t,R(_,r))},n.wbg.__wbg_uniformMatrix4fv_31d76bb58caa0246=function(e,n,t,_,r){e.uniformMatrix4fv(n,0!==t,R(_,r))},n.wbg.__wbg_activeTexture_b191924c363f77ce=function(e,n){e.activeTexture(n>>>0)},n.wbg.__wbg_attachShader_c6ba0e94024fcfd3=function(e,n,t){e.attachShader(n,t)},n.wbg.__wbg_bindBuffer_bc746e5757cfd27a=function(e,n,t){e.bindBuffer(n>>>0,t)},n.wbg.__wbg_bindFramebuffer_a5e2ea2e2e5fea47=function(e,n,t){e.bindFramebuffer(n>>>0,t)},n.wbg.__wbg_bindRenderbuffer_18a9984850927cc8=function(e,n,t){e.bindRenderbuffer(n>>>0,t)},n.wbg.__wbg_bindTexture_003e92d5bd3d1cc7=function(e,n,t){e.bindTexture(n>>>0,t)},n.wbg.__wbg_blendColor_eb27f199ff696720=function(e,n,t,_,r){e.blendColor(n,t,_,r)},n.wbg.__wbg_blendEquation_e2282428514bc8da=function(e,n){e.blendEquation(n>>>0)},n.wbg.__wbg_blendEquationSeparate_c22d96f84170b893=function(e,n,t){e.blendEquationSeparate(n>>>0,t>>>0)},n.wbg.__wbg_blendFunc_7b891eca8bb9d4f9=function(e,n,t){e.blendFunc(n>>>0,t>>>0)},n.wbg.__wbg_blendFuncSeparate_060a21922823f86f=function(e,n,t,_,r){e.blendFuncSeparate(n>>>0,t>>>0,_>>>0,r>>>0)},n.wbg.__wbg_clear_0fbd94f2b3007978=function(e,n){e.clear(n>>>0)},n.wbg.__wbg_clearColor_a72825467905e9d1=function(e,n,t,_,r){e.clearColor(n,t,_,r)},n.wbg.__wbg_colorMask_8154d2f1a5eb697a=function(e,n,t,_,r){e.colorMask(0!==n,0!==t,0!==_,0!==r)},n.wbg.__wbg_compileShader_11deea085b781c35=function(e,n){e.compileShader(n)},n.wbg.__wbg_copyTexSubImage2D_5df950ef5a892ac1=function(e,n,t,_,r,b,f,c,a){e.copyTexSubImage2D(n>>>0,t,_,r,b,f,c,a)},n.wbg.__wbg_createBuffer_d90b963a9701a002=function(e){const n=e.createBuffer();return o(n)?0:I(n)},n.wbg.__wbg_createFramebuffer_011da022a209b95b=function(e){const n=e.createFramebuffer();return o(n)?0:I(n)},n.wbg.__wbg_createProgram_d78c1ab5ce988d0a=function(e){const n=e.createProgram();return o(n)?0:I(n)},n.wbg.__wbg_createRenderbuffer_f67deb1719aae5ab=function(e){const n=e.createRenderbuffer();return o(n)?0:I(n)},n.wbg.__wbg_createShader_94cce4c7315d3927=function(e,n){const t=e.createShader(n>>>0);return o(t)?0:I(t)},n.wbg.__wbg_createTexture_ae9908092d6ebd13=function(e){const n=e.createTexture();return o(n)?0:I(n)},n.wbg.__wbg_cullFace_2aacef4bb0b82f8a=function(e,n){e.cullFace(n>>>0)},n.wbg.__wbg_deleteBuffer_10e438f4de8bbdd0=function(e,n){e.deleteBuffer(n)},n.wbg.__wbg_deleteFramebuffer_8fce0ab5886cd5ff=function(e,n){e.deleteFramebuffer(n)},n.wbg.__wbg_deleteProgram_71b202b504e08521=function(e,n){e.deleteProgram(n)},n.wbg.__wbg_deleteRenderbuffer_128a773568520d61=function(e,n){e.deleteRenderbuffer(n)},n.wbg.__wbg_deleteShader_91b6949c2cb57fa5=function(e,n){e.deleteShader(n)},n.wbg.__wbg_deleteTexture_89b7cefee5715eaf=function(e,n){e.deleteTexture(n)},n.wbg.__wbg_depthFunc_ea602daadbf6bf2b=function(e,n){e.depthFunc(n>>>0)},n.wbg.__wbg_depthMask_32f5223c22963355=function(e,n){e.depthMask(0!==n)},n.wbg.__wbg_depthRange_95b6305e3d0e8fb2=function(e,n,t){e.depthRange(n,t)},n.wbg.__wbg_disable_18e601ffe079514a=function(e,n){e.disable(n>>>0)},n.wbg.__wbg_disableVertexAttribArray_eebd7bbc31fe8477=function(e,n){e.disableVertexAttribArray(n>>>0)},n.wbg.__wbg_drawArrays_fa797947fad0d5a1=function(e,n,t,_){e.drawArrays(n>>>0,t,_)},n.wbg.__wbg_drawElements_f61f3169f51e95a8=function(e,n,t,_,r){e.drawElements(n>>>0,t,_>>>0,r)},n.wbg.__wbg_enable_933052fc623337dd=function(e,n){e.enable(n>>>0)},n.wbg.__wbg_enableVertexAttribArray_085d700612de8362=function(e,n){e.enableVertexAttribArray(n>>>0)},n.wbg.__wbg_framebufferRenderbuffer_54843e8f4bf613c4=function(e,n,t,_,r){e.framebufferRenderbuffer(n>>>0,t>>>0,_>>>0,r)},n.wbg.__wbg_framebufferTexture2D_36ac24bed50444b9=function(e,n,t,_,r,b){e.framebufferTexture2D(n>>>0,t>>>0,_>>>0,r,b)},n.wbg.__wbg_frontFace_cd5ca49e5c3379e0=function(e,n){e.frontFace(n>>>0)},n.wbg.__wbg_getActiveUniform_9f6eb842d7ac3b6d=function(e,n,t){const _=e.getActiveUniform(n,t>>>0);return o(_)?0:I(_)},n.wbg.__wbg_getAttribLocation_019759a318602415=function(e,n,t,_){return e.getAttribLocation(n,u(t,_))},n.wbg.__wbg_getExtension_ffc1bd6e864d6abe=function(){return T((function(e,n,t){const _=e.getExtension(u(n,t));return o(_)?0:I(_)}),arguments)},n.wbg.__wbg_getParameter_211f7166414ae1d2=function(){return T((function(e,n){return e.getParameter(n>>>0)}),arguments)},n.wbg.__wbg_getProgramInfoLog_e9101bb2902f723d=function(e,n,t){const _=n.getProgramInfoLog(t);var r=o(_)?0:p(_,b.__wbindgen_malloc,b.__wbindgen_realloc),f=l;d()[e/4+1]=f,d()[e/4+0]=r},n.wbg.__wbg_getProgramParameter_2b03f89296b12b4b=function(e,n,t){return e.getProgramParameter(n,t>>>0)},n.wbg.__wbg_getShaderInfoLog_311c033a58aeed83=function(e,n,t){const _=n.getShaderInfoLog(t);var r=o(_)?0:p(_,b.__wbindgen_malloc,b.__wbindgen_realloc),f=l;d()[e/4+1]=f,d()[e/4+0]=r},n.wbg.__wbg_getShaderParameter_0003e598f392b3f6=function(e,n,t){return e.getShaderParameter(n,t>>>0)},n.wbg.__wbg_getUniformLocation_90a9c5e63646d30f=function(e,n,t,_){const r=e.getUniformLocation(n,u(t,_));return o(r)?0:I(r)},n.wbg.__wbg_linkProgram_12cc552bbaf3fcd8=function(e,n){e.linkProgram(n)},n.wbg.__wbg_pixelStorei_673b59ca3de9bf71=function(e,n,t){e.pixelStorei(n>>>0,t)},n.wbg.__wbg_polygonOffset_43239add56a51f9c=function(e,n,t){e.polygonOffset(n,t)},n.wbg.__wbg_renderbufferStorage_70c75c11a16f26e5=function(e,n,t,_,r){e.renderbufferStorage(n>>>0,t>>>0,_,r)},n.wbg.__wbg_scissor_d6dd0b6d33070a27=function(e,n,t,_,r){e.scissor(n,t,_,r)},n.wbg.__wbg_shaderSource_be3c868a31ce0a63=function(e,n,t,_){e.shaderSource(n,u(t,_))},n.wbg.__wbg_stencilFunc_0c156c0af1516ff7=function(e,n,t,_){e.stencilFunc(n>>>0,t,_>>>0)},n.wbg.__wbg_stencilFuncSeparate_6020e96c08ff2b26=function(e,n,t,_,r){e.stencilFuncSeparate(n>>>0,t>>>0,_,r>>>0)},n.wbg.__wbg_stencilMask_b31337183c4f39b3=function(e,n){e.stencilMask(n>>>0)},n.wbg.__wbg_stencilMaskSeparate_d829b104c43af459=function(e,n,t){e.stencilMaskSeparate(n>>>0,t>>>0)},n.wbg.__wbg_stencilOp_a26b2abe602b1c07=function(e,n,t,_){e.stencilOp(n>>>0,t>>>0,_>>>0)},n.wbg.__wbg_stencilOpSeparate_9efb207c561bddb9=function(e,n,t,_,r){e.stencilOpSeparate(n>>>0,t>>>0,_>>>0,r>>>0)},n.wbg.__wbg_texParameteri_8a613af30322a029=function(e,n,t,_){e.texParameteri(n>>>0,t>>>0,_)},n.wbg.__wbg_uniform1f_47b794fe461d672a=function(e,n,t){e.uniform1f(n,t)},n.wbg.__wbg_uniform1i_eb9e0e57747e2b87=function(e,n,t){e.uniform1i(n,t)},n.wbg.__wbg_uniform4f_d9261a15c9a46bc0=function(e,n,t,_,r,b){e.uniform4f(n,t,_,r,b)},n.wbg.__wbg_useProgram_72ab2082025590d6=function(e,n){e.useProgram(n)},n.wbg.__wbg_vertexAttribPointer_39284763b38d2a03=function(e,n,t,_,r,b,f){e.vertexAttribPointer(n>>>0,t,_>>>0,0!==r,b,f)},n.wbg.__wbg_viewport_d7c73a71f08f3aa1=function(e,n,t,_,r){e.viewport(n,t,_,r)},n.wbg.__wbg_body_db30cc67afcfce41=function(e){const n=e.body;return o(n)?0:I(n)},n.wbg.__wbg_createElement_d975e66d06bc88da=function(){return T((function(e,n,t){return e.createElement(u(n,t))}),arguments)},n.wbg.__wbg_createElementNS_0863d6a8a49df376=function(){return T((function(e,n,t,_,r){return e.createElementNS(0===n?void 0:u(n,t),u(_,r))}),arguments)},n.wbg.__wbg_querySelector_41d5da02fa776534=function(){return T((function(e,n,t){const _=e.querySelector(u(n,t));return o(_)?0:I(_)}),arguments)},n.wbg.__wbg_setid_7b804eee26ac1f4c=function(e,n,t){e.id=u(n,t)},n.wbg.__wbg_clientWidth_28c68ca0ee754d86=function(e){return e.clientWidth},n.wbg.__wbg_clientHeight_fdbd966f05f13573=function(e){return e.clientHeight},n.wbg.__wbg_querySelector_e6aa68a0a2101628=function(){return T((function(e,n,t){const _=e.querySelector(u(n,t));return o(_)?0:I(_)}),arguments)},n.wbg.__wbg_releasePointerCapture_345eb9098bd23e0b=function(){return T((function(e,n){e.releasePointerCapture(n)}),arguments)},n.wbg.__wbg_setAttribute_1b177bcd399b9b56=function(){return T((function(e,n,t,_,r){e.setAttribute(u(n,t),u(_,r))}),arguments)},n.wbg.__wbg_setAttributeNS_786c483c252fd719=function(){return T((function(e,n,t,_,r,b,f){e.setAttributeNS(0===n?void 0:u(n,t),u(_,r),u(b,f))}),arguments)},n.wbg.__wbg_setPointerCapture_a4d12ff87fb3c0d9=function(){return T((function(e,n){e.setPointerCapture(n)}),arguments)},n.wbg.__wbg_remove_2ce16f912922b67c=function(e){e.remove()},n.wbg.__wbg_drawArraysInstancedANGLE_95ee4d978b2bcf41=function(e,n,t,_,r){e.drawArraysInstancedANGLE(n>>>0,t,_,r)},n.wbg.__wbg_drawElementsInstancedANGLE_67f54c0a65dc2bba=function(e,n,t,_,r,b){e.drawElementsInstancedANGLE(n>>>0,t,_>>>0,r,b)},n.wbg.__wbg_vertexAttribDivisorANGLE_d7cf4fdd9b5abe72=function(e,n,t){e.vertexAttribDivisorANGLE(n>>>0,t>>>0)},n.wbg.__wbg_setTransform_4ffead8869bd9888=function(e,n){e.setTransform(n)},n.wbg.__wbg_setProperty_0a5af0fd1a9e8e25=function(){return T((function(e,n,t,_,r){e.setProperty(u(n,t),u(_,r))}),arguments)},n.wbg.__wbg_ctrlKey_a6ae383772af67d4=function(e){return e.ctrlKey},n.wbg.__wbg_shiftKey_0b1fd10d0674f847=function(e){return e.shiftKey},n.wbg.__wbg_metaKey_e6e67f783888f56d=function(e){return e.metaKey},n.wbg.__wbg_key_2e1ec0c70a342064=function(e,n){const t=p(n.key,b.__wbindgen_malloc,b.__wbindgen_realloc),_=l;d()[e/4+1]=_,d()[e/4+0]=t},n.wbg.__wbg_code_8cb09c9b243af9d2=function(e,n){const t=p(n.code,b.__wbindgen_malloc,b.__wbindgen_realloc),_=l;d()[e/4+1]=_,d()[e/4+0]=t},n.wbg.__wbg_href_68df54cac0a34be4=function(){return T((function(e,n){const t=p(n.href,b.__wbindgen_malloc,b.__wbindgen_realloc),_=l;d()[e/4+1]=_,d()[e/4+0]=t}),arguments)},n.wbg.__wbg_protocol_68c51e1c422d4ab9=function(){return T((function(e,n){const t=p(n.protocol,b.__wbindgen_malloc,b.__wbindgen_realloc),_=l;d()[e/4+1]=_,d()[e/4+0]=t}),arguments)},n.wbg.__wbg_assign_2c3e33bfd0b8d01c=function(){return T((function(e,n,t){e.assign(u(n,t))}),arguments)},n.wbg.__wbg_size_6b8408d071a01627=function(e){return e.size},n.wbg.__wbg_type_3ef02d510696beba=function(e){return e.type},n.wbg.__wbg_name_b0536e0a02f4e559=function(e,n){const t=p(n.name,b.__wbindgen_malloc,b.__wbindgen_realloc),_=l;d()[e/4+1]=_,d()[e/4+0]=t},n.wbg.__wbg_baseURI_3189bc9ff1ef7372=function(){return T((function(e,n){const t=n.baseURI;var _=o(t)?0:p(t,b.__wbindgen_malloc,b.__wbindgen_realloc),r=l;d()[e/4+1]=r,d()[e/4+0]=_}),arguments)},n.wbg.__wbg_parentElement_065722829508e41a=function(e){const n=e.parentElement;return o(n)?0:I(n)},n.wbg.__wbg_appendChild_1139b53a65d69bed=function(){return T((function(e,n){return e.appendChild(n)}),arguments)},n.wbg.__wbg_removeChild_48d9566cffdfec93=function(){return T((function(e,n){return e.removeChild(n)}),arguments)},n.wbg.__wbg_newwithbuffersourcesequenceandoptions_652259acaadf5c71=function(){return T((function(e,n){return new Blob(e,n)}),arguments)},n.wbg.__wbg_instanceof_CanvasRenderingContext2d_ad94e23ca309f82e=function(e){let n;try{n=e instanceof CanvasRenderingContext2D}catch{n=!1}return n},n.wbg.__wbg_setglobalAlpha_eeba7b27e09e5cdb=function(e,n){e.globalAlpha=n},n.wbg.__wbg_setglobalCompositeOperation_7b0ec91fbb9a3506=function(){return T((function(e,n,t){e.globalCompositeOperation=u(n,t)}),arguments)},n.wbg.__wbg_setstrokeStyle_b7f2ba53250c124b=function(e,n){e.strokeStyle=n},n.wbg.__wbg_setfillStyle_ef86ac7198b13c3e=function(e,n){e.fillStyle=n},n.wbg.__wbg_setfilter_a4587ee46e164650=function(e,n,t){e.filter=u(n,t)},n.wbg.__wbg_setimageSmoothingEnabled_2624b5ca52984920=function(e,n){e.imageSmoothingEnabled=0!==n},n.wbg.__wbg_setlineWidth_b1749d46786b7fb3=function(e,n){e.lineWidth=n},n.wbg.__wbg_setlineCap_b89503253bc89030=function(e,n,t){e.lineCap=u(n,t)},n.wbg.__wbg_setlineJoin_40626fbb34763038=function(e,n,t){e.lineJoin=u(n,t)},n.wbg.__wbg_setmiterLimit_3041e6db8b31916f=function(e,n){e.miterLimit=n},n.wbg.__wbg_drawImage_7da8df8cbeb723f0=function(){return T((function(e,n,t,_){e.drawImage(n,t,_)}),arguments)},n.wbg.__wbg_clip_7c7a92c704bbb6dc=function(e,n,t){e.clip(n,t)},n.wbg.__wbg_fill_a4e3b3d3d3b5475d=function(e,n,t){e.fill(n,t)},n.wbg.__wbg_stroke_96b20fda83ff0fd9=function(e,n){e.stroke(n)},n.wbg.__wbg_createLinearGradient_5ece0c26c5f163a2=function(e,n,t,_,r){return e.createLinearGradient(n,t,_,r)},n.wbg.__wbg_createPattern_2e7c4b21d46dcedf=function(){return T((function(e,n,t,_){const r=e.createPattern(n,u(t,_));return o(r)?0:I(r)}),arguments)},n.wbg.__wbg_createRadialGradient_975f96107b8f5699=function(){return T((function(e,n,t,_,r,b,f){return e.createRadialGradient(n,t,_,r,b,f)}),arguments)},n.wbg.__wbg_putImageData_477bb0325653a825=function(){return T((function(e,n,t,_){e.putImageData(n,t,_)}),arguments)},n.wbg.__wbg_clearRect_dc28576f7865a790=function(e,n,t,_,r){e.clearRect(n,t,_,r)},n.wbg.__wbg_fillRect_99bbea5bf3a2188f=function(e,n,t,_,r){e.fillRect(n,t,_,r)},n.wbg.__wbg_restore_f66104a6fa9ef82c=function(e){e.restore()},n.wbg.__wbg_save_69a79e0fa9fa7c4b=function(e){e.save()},n.wbg.__wbg_resetTransform_39c3ea56345bd7c5=function(){return T((function(e){e.resetTransform()}),arguments)},n.wbg.__wbg_setTransform_c13b4834bbe27c9f=function(){return T((function(e,n,t,_,r,b,f){e.setTransform(n,t,_,r,b,f)}),arguments)},n.wbg.__wbg_transform_f12705e223c2d545=function(){return T((function(e,n,t,_,r,b,f){e.transform(n,t,_,r,b,f)}),arguments)},n.wbg.__wbg_clipboardData_84b041aaf1dd9a2c=function(e){const n=e.clipboardData;return o(n)?0:I(n)},n.wbg.__wbg_currentTarget_fd4b236e20138cbe=function(e){const n=e.currentTarget;return o(n)?0:I(n)},n.wbg.__wbg_preventDefault_2f38e1471796356f=function(e){e.preventDefault()},n.wbg.__wbg_addEventListener_d25d1ffe6c69ae96=function(){return T((function(e,n,t,_){e.addEventListener(u(n,t),_)}),arguments)},n.wbg.__wbg_addEventListener_3a7d7c4177ce91d1=function(){return T((function(e,n,t,_,r){e.addEventListener(u(n,t),_,r)}),arguments)},n.wbg.__wbg_addEventListener_254042ad1f1a8ed0=function(){return T((function(e,n,t,_,r){e.addEventListener(u(n,t),_,0!==r)}),arguments)},n.wbg.__wbg_removeEventListener_7a381df5fdb6037f=function(){return T((function(e,n,t,_){e.removeEventListener(u(n,t),_)}),arguments)},n.wbg.__wbg_removeEventListener_315d6f929fccf484=function(){return T((function(e,n,t,_,r){e.removeEventListener(u(n,t),_,0!==r)}),arguments)},n.wbg.__wbg_instanceof_HtmlFormElement_a67ff2b843593f03=function(e){let n;try{n=e instanceof HTMLFormElement}catch{n=!1}return n},n.wbg.__wbg_setaction_f8bc56cc8ce828af=function(e,n,t){e.action=u(n,t)},n.wbg.__wbg_setmethod_e33daf7493fab624=function(e,n,t){e.method=u(n,t)},n.wbg.__wbg_settarget_f2aa2a9ffb8f53f3=function(e,n,t){e.target=u(n,t)},n.wbg.__wbg_submit_f513aa8d11e9b590=function(){return T((function(e){e.submit()}),arguments)},n.wbg.__wbg_a_956e1498a11427ea=function(e){return e.a},n.wbg.__wbg_seta_5ed7af7847230d80=function(e,n){e.a=n},n.wbg.__wbg_b_7c7a0f71badca864=function(e){return e.b},n.wbg.__wbg_c_9bfbf8494b3c2afb=function(e){return e.c},n.wbg.__wbg_d_c993b877bac15970=function(e){return e.d},n.wbg.__wbg_setd_b1ca1405efaa8d44=function(e,n){e.d=n},n.wbg.__wbg_e_f8ce3d68f330f2fe=function(e){return e.e},n.wbg.__wbg_f_09ccbf3f7d21a10f=function(e){return e.f},n.wbg.__wbg_new_33b5e19f97637fa6=function(){return T((function(){return new DOMMatrix}),arguments)},n.wbg.__wbg_newwitharray64_f90cdbfb8dee0b12=function(){return T((function(e,n){var t,_;return new DOMMatrix((t=e,_=n,t>>>=0,g().subarray(t/8,t/8+_)))}),arguments)},n.wbg.__wbg_instanceof_HtmlTextAreaElement_faa48044e837d7d0=function(e){let n;try{n=e instanceof HTMLTextAreaElement}catch{n=!1}return n},n.wbg.__wbg_setvalue_272abbd8c7ff3573=function(e,n,t){e.value=u(n,t)},n.wbg.__wbg_select_94f3bfa2adacd192=function(e){e.select()},n.wbg.__wbg_newwithu8clampedarray_8209aab948fb6896=function(){return T((function(e,n,t){return new ImageData(L(e,n),t>>>0)}),arguments)},n.wbg.__wbg_destination_0ae9151d82904b60=function(e){return e.destination},n.wbg.__wbg_sampleRate_64933ca8c3adf367=function(e){return e.sampleRate},n.wbg.__wbg_currentTime_ff9abefab476bee8=function(e){return e.currentTime},n.wbg.__wbg_new_f7df6586396483fa=function(){return T((function(){return new r}),arguments)},n.wbg.__wbg_close_c4da68c7d05f0953=function(){return T((function(e){return e.close()}),arguments)},n.wbg.__wbg_suspend_31c1a6c6aee945d8=function(){return T((function(e){return e.suspend()}),arguments)},n.wbg.__wbg_createBuffer_fe5ace8400138ade=function(){return T((function(e,n,t,_){return e.createBuffer(n>>>0,t>>>0,_)}),arguments)},n.wbg.__wbg_createBufferSource_eed5b111f3941d98=function(){return T((function(e){return e.createBufferSource()}),arguments)},n.wbg.__wbg_resume_089773cbb84b9f23=function(){return T((function(e){return e.resume()}),arguments)},n.wbg.__wbg_instanceof_Response_7ade9a5a066d1a55=function(e){let n;try{n=e instanceof Response}catch{n=!1}return n},n.wbg.__wbg_url_59cb32ef6a837521=function(e,n){const t=p(n.url,b.__wbindgen_malloc,b.__wbindgen_realloc),_=l;d()[e/4+1]=_,d()[e/4+0]=t},n.wbg.__wbg_redirected_b1dddeedf4a4a567=function(e){return e.redirected},n.wbg.__wbg_status_d2b2d0889f7e970f=function(e){return e.status},n.wbg.__wbg_ok_0a0ed9a1863d8af5=function(e){return e.ok},n.wbg.__wbg_statusText_3600c56ee3873605=function(e,n){const t=p(n.statusText,b.__wbindgen_malloc,b.__wbindgen_realloc),_=l;d()[e/4+1]=_,d()[e/4+0]=t},n.wbg.__wbg_arrayBuffer_2693673868da65b7=function(){return T((function(e){return e.arrayBuffer()}),arguments)},n.wbg.__wbg_get_93d5f60cbfadbdfb=function(){return T((function(e,n,t,_){const r=n[u(t,_)];var f=o(r)?0:p(r,b.__wbindgen_malloc,b.__wbindgen_realloc),c=l;d()[e/4+1]=c,d()[e/4+0]=f}),arguments)},n.wbg.__wbg_set_862c97e8f911f327=function(){return T((function(e,n,t,_,r){e[u(n,t)]=u(_,r)}),arguments)},n.wbg.__wbg_delete_cbfe443b973964de=function(){return T((function(e,n,t){delete e[u(n,t)]}),arguments)},n.wbg.__wbg_set_76353df4722f4954=function(){return T((function(e,n,t,_,r){e.set(u(n,t),u(_,r))}),arguments)},n.wbg.__wbg_instanceof_HtmlInputElement_a15913e00980dd9c=function(e){let n;try{n=e instanceof HTMLInputElement}catch{n=!1}return n},n.wbg.__wbg_setname_82745f3c39969360=function(e,n,t){e.name=u(n,t)},n.wbg.__wbg_settype_bb5062c0ad392d68=function(e,n,t){e.type=u(n,t)},n.wbg.__wbg_setvalue_7605619324f70225=function(e,n,t){e.value=u(n,t)},n.wbg.__wbg_get_7303ed2ef026b2f5=function(e,n){return e[n>>>0]},n.wbg.__wbg_length_820c786973abdd8a=function(e){return e.length},n.wbg.__wbg_new_0394642eae39db16=function(){return new Array},n.wbg.__wbg_newnoargs_c9e6043b8ad84109=function(e,n){return new Function(u(e,n))},n.wbg.__wbg_next_f4bc0e96ea67da68=function(e){return e.next},n.wbg.__wbg_next_ec061e48a0e72a96=function(){return T((function(e){return e.next()}),arguments)},n.wbg.__wbg_done_b6abb27d42b63867=function(e){return e.done},n.wbg.__wbg_value_2f4ef2036bfad28e=function(e){return e.value},n.wbg.__wbg_iterator_7c7e58f62eb84700=function(){return Symbol.iterator},n.wbg.__wbg_get_f53c921291c381bd=function(){return T((function(e,n){return Reflect.get(e,n)}),arguments)},n.wbg.__wbg_call_557a2f2deacc4912=function(){return T((function(e,n){return e.call(n)}),arguments)},n.wbg.__wbg_new_2b6fea4ea03b1b95=function(){return new Object},n.wbg.__wbg_self_742dd6eab3e9211e=function(){return T((function(){return self.self}),arguments)},n.wbg.__wbg_window_c409e731db53a0e2=function(){return T((function(){return window.window}),arguments)},n.wbg.__wbg_globalThis_b70c095388441f2d=function(){return T((function(){return globalThis.globalThis}),arguments)},n.wbg.__wbg_global_1c72617491ed7194=function(){return T((function(){return t.g.global}),arguments)},n.wbg.__wbg_set_b4da98d504ac6091=function(e,n,t){e[n>>>0]=t},n.wbg.__wbg_isArray_04e59fb73f78ab5b=function(e){return Array.isArray(e)},n.wbg.__wbg_of_8276164206196da5=function(e){return Array.of(e)},n.wbg.__wbg_of_06e367b9c3d4b36a=function(e,n){return Array.of(e,n)},n.wbg.__wbg_push_109cfc26d02582dd=function(e,n){return e.push(n)},n.wbg.__wbg_instanceof_ArrayBuffer_ef2632aa0d4bfff8=function(e){let n;try{n=e instanceof ArrayBuffer}catch{n=!1}return n},n.wbg.__wbg_values_37eb2197bdbdfdd8=function(e){return e.values()},n.wbg.__wbg_new_87297f22973157c8=function(e,n){return new Error(u(e,n))},n.wbg.__wbg_apply_8cf86cc6c93f52c1=function(){return T((function(e,n,t){return e.apply(n,t)}),arguments)},n.wbg.__wbg_call_587b30eea3e09332=function(){return T((function(e,n,t){return e.call(n,t)}),arguments)},n.wbg.__wbg_isSafeInteger_2088b01008075470=function(e){return Number.isSafeInteger(e)},n.wbg.__wbg_getTime_40bd09e020e8bc8c=function(e){return e.getTime()},n.wbg.__wbg_getTimezoneOffset_884011df4eb8cabc=function(e){return e.getTimezoneOffset()},n.wbg.__wbg_new0_494c19a27871d56f=function(){return new Date},n.wbg.__wbg_instanceof_Object_a9e9e5766628e8b5=function(e){let n;try{n=e instanceof Object}catch{n=!1}return n},n.wbg.__wbg_entries_13e011453776468f=function(e){return Object.entries(e)},n.wbg.__wbg_fromEntries_d1b310956d20d858=function(){return T((function(e){return Object.fromEntries(e)}),arguments)},n.wbg.__wbg_is_20a2e5c82eecc47d=function(e,n){return Object.is(e,n)},n.wbg.__wbg_new_2b55e405e4af4986=function(e,n){try{var t={a:e,b:n};const _=new Promise(((e,n)=>{const _=t.a;t.a=0;try{return function(e,n,t,_){b.closure6416_externref_shim(e,n,t,_)}(_,t.b,e,n)}finally{t.a=_}}));return _}finally{t.a=t.b=0}},n.wbg.__wbg_resolve_ae38ad63c43ff98b=function(e){return Promise.resolve(e)},n.wbg.__wbg_then_8df675b8bb5d5e3c=function(e,n){return e.then(n)},n.wbg.__wbg_then_835b073a479138e5=function(e,n,t){return e.then(n,t)},n.wbg.__wbg_buffer_55ba7a6b1b92e2ac=function(e){return e.buffer},n.wbg.__wbg_newwithbyteoffsetandlength_abbb764f85f16b6b=function(e,n,t){return new Int8Array(e,n>>>0,t>>>0)},n.wbg.__wbg_newwithbyteoffsetandlength_6889cd5c48bfda26=function(e,n,t){return new Int16Array(e,n>>>0,t>>>0)},n.wbg.__wbg_newwithbyteoffsetandlength_23602c96f86e952a=function(e,n,t){return new Int32Array(e,n>>>0,t>>>0)},n.wbg.__wbg_newwithbyteoffsetandlength_88d1d8be5df94b9b=function(e,n,t){return new Uint8Array(e,n>>>0,t>>>0)},n.wbg.__wbg_new_09938a7d020f049b=function(e){return new Uint8Array(e)},n.wbg.__wbg_set_3698e3ca519b3c3c=function(e,n,t){e.set(n,t>>>0)},n.wbg.__wbg_length_0aab7ffd65ad19ed=function(e){return e.length},n.wbg.__wbg_newwithbyteoffsetandlength_051cff28f608b6cb=function(e,n,t){return new Uint16Array(e,n>>>0,t>>>0)},n.wbg.__wbg_newwithbyteoffsetandlength_fae0a69639559788=function(e,n,t){return new Uint32Array(e,n>>>0,t>>>0)},n.wbg.__wbg_newwithbyteoffsetandlength_ab5b524f83702d8d=function(e,n,t){return new Float32Array(e,n>>>0,t>>>0)},n.wbg.__wbg_instanceof_Uint8Array_1349640af2da2e88=function(e){let n;try{n=e instanceof Uint8Array}catch{n=!1}return n},n.wbg.__wbg_newwithlength_89eeca401d8918c2=function(e){return new Uint8Array(e>>>0)},n.wbg.__wbg_buffer_2b87f8d382772412=function(e){return e.buffer},n.wbg.__wbg_subarray_d82be056deb4ad27=function(e,n,t){return e.subarray(n>>>0,t>>>0)},n.wbg.__wbg_ownKeys_16ca303f7a5c24f3=function(){return T((function(e){return Reflect.ownKeys(e)}),arguments)},n.wbg.__wbg_set_07da13cc24b69217=function(){return T((function(e,n,t){return Reflect.set(e,n,t)}),arguments)},n.wbg.__wbindgen_bigint_get_as_i64=function(e,n){const t="bigint"==typeof n?n:void 0;(null!==y&&0!==y.byteLength||(y=new BigInt64Array(b.memory.buffer)),y)[e/8+1]=o(t)?BigInt(0):t,d()[e/4+0]=!o(t)},n.wbg.__wbindgen_debug_string=function(e,n){const t=p(h(n),b.__wbindgen_malloc,b.__wbindgen_realloc),_=l;d()[e/4+1]=_,d()[e/4+0]=t},n.wbg.__wbindgen_throw=function(e,n){throw new Error(u(e,n))},n.wbg.__wbindgen_memory=function(){return b.memory},n.wbg.__wbindgen_closure_wrapper1083=function(e,n,t){return x(e,n,440,v)},n.wbg.__wbindgen_closure_wrapper1084=function(e,n,t){return x(e,n,440,S)},n.wbg.__wbindgen_closure_wrapper1085=function(e,n,t){return x(e,n,440,S)},n.wbg.__wbindgen_closure_wrapper1086=function(e,n,t){return x(e,n,440,A)},n.wbg.__wbindgen_closure_wrapper1087=function(e,n,t){return x(e,n,440,S)},n.wbg.__wbindgen_closure_wrapper1088=function(e,n,t){return x(e,n,440,S)},n.wbg.__wbindgen_closure_wrapper1089=function(e,n,t){return x(e,n,440,S)},n.wbg.__wbindgen_closure_wrapper13362=function(e,n,t){return x(e,n,5345,D)},n.wbg.__wbindgen_init_externref_table=function(){const e=b.__wbindgen_export_2,n=e.grow(4);e.set(0,void 0),e.set(n+0,void 0),e.set(n+1,null),e.set(n+2,!0),e.set(n+3,!1)},n}function V(e,n){return b=e.exports,q.__wbindgen_wasm_module=n,y=null,M=null,i=null,w=null,E=null,c=null,C=null,b.__wbindgen_start(),b}function W(e){if(void 0!==b)return b;const n=U();e instanceof WebAssembly.Module||(e=new WebAssembly.Module(e));return V(new WebAssembly.Instance(e,n),e)}async function q(e){if(void 0!==b)return b;void 0===e&&(e=new URL(t(899),t.b));const n=U();("string"==typeof e||"function"==typeof Request&&e instanceof Request||"function"==typeof URL&&e instanceof URL)&&(e=fetch(e));const{instance:_,module:r}=await async function(e,n){if("function"==typeof Response&&e instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(e,n)}catch(n){if("application/wasm"==e.headers.get("Content-Type"))throw n;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",n)}const t=await e.arrayBuffer();return await WebAssembly.instantiate(t,n)}{const t=await WebAssembly.instantiate(e,n);return t instanceof WebAssembly.Instance?{instance:t,module:e}:t}}(await e,n);return V(_,r)}const G=q}}]); -//# sourceMappingURL=core.ruffle.671e8308f154108396e3.js.map \ No newline at end of file diff --git a/ruffle/core.ruffle.7b401a0204b092cdbb42.js b/ruffle/core.ruffle.7b401a0204b092cdbb42.js deleted file mode 100644 index ce4f09a5..00000000 --- a/ruffle/core.ruffle.7b401a0204b092cdbb42.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkruffle_selfhosted=self.webpackChunkruffle_selfhosted||[]).push([[159],{972:(e,n,_)=>{function t(e,n){const _=e.length,t=e.getChannelData(0),r=e.getChannelData(1);let b=0,f=0;for(;f<_;)t[f]=n[b],r[f]=n[b+1],f++,b+=2}function r(e,n){return e[n]}_.d(n,{$s:()=>r,tM:()=>t})},159:(e,n,_)=>{_.r(n),_.d(n,{Ruffle:()=>V,default:()=>N,initSync:()=>G});var t=_(972);e=_.hmd(e);const r="undefined"!=typeof AudioContext?AudioContext:"undefined"!=typeof webkitAudioContext?webkitAudioContext:void 0;let b;const f=new Array(128).fill(void 0);function c(e){return f[e]}f.push(void 0,null,!0,!1);let a=f.length;function u(e){const n=c(e);return function(e){e<132||(f[e]=a,a=e)}(e),n}function o(e){a===f.length&&f.push(f.length+1);const n=a;return a=f[n],f[n]=e,n}const i="undefined"!=typeof TextDecoder?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};"undefined"!=typeof TextDecoder&&i.decode();let g=null;function w(){return null!==g&&0!==g.byteLength||(g=new Uint8Array(b.memory.buffer)),g}function d(e,n){return e>>>=0,i.decode(w().subarray(e,e+n))}function l(e){return null==e}let s=null;function m(){return null!==s&&0!==s.byteLength||(s=new Float64Array(b.memory.buffer)),s}let p=null;function y(){return null!==p&&0!==p.byteLength||(p=new Int32Array(b.memory.buffer)),p}let h=0;const x="undefined"!=typeof TextEncoder?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},v="function"==typeof x.encodeInto?function(e,n){return x.encodeInto(e,n)}:function(e,n){const _=x.encode(e);return n.set(_),{read:e.length,written:_.length}};function S(e,n,_){if(void 0===_){const _=x.encode(e),t=n(_.length)>>>0;return w().subarray(t,t+_.length).set(_),h=_.length,t}let t=e.length,r=n(t)>>>0;const b=w();let f=0;for(;f127)break;b[r+f]=n}if(f!==t){0!==f&&(e=e.slice(f)),r=_(r,t,t=f+3*e.length)>>>0;const n=w().subarray(r+f,r+t);f+=v(e,n).written}return h=f,r}let A=null;function D(e){const n=typeof e;if("number"==n||"boolean"==n||null==e)return`${e}`;if("string"==n)return`"${e}"`;if("symbol"==n){const n=e.description;return null==n?"Symbol":`Symbol(${n})`}if("function"==n){const n=e.name;return"string"==typeof n&&n.length>0?`Function(${n})`:"Function"}if(Array.isArray(e)){const n=e.length;let _="[";n>0&&(_+=D(e[0]));for(let t=1;t1))return toString.call(e);if(t=_[1],"Object"==t)try{return"Object("+JSON.stringify(e)+")"}catch(e){return"Object"}return e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:t}function I(e,n,_,t){const r={a:e,b:n,cnt:1,dtor:_},f=(...e)=>{r.cnt++;const n=r.a;r.a=0;try{return t(n,r.b,...e)}finally{0==--r.cnt?b.__wbindgen_export_2.get(r.dtor)(n,r.b):r.a=n}};return f.original=r,f}function T(e,n){b.wasm_bindgen__convert__closures__invoke0_mut__h4b01b0822ce139fa(e,n)}function P(e,n,_){b.wasm_bindgen__convert__closures__invoke1_mut__h1328d4287810dbd0(e,n,o(_))}function E(e,n,_){b.wasm_bindgen__convert__closures__invoke1_mut__h02f36222b5adbed5(e,n,_)}function F(e,n,_){b._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h5df9e5b49c2ed4a4(e,n,o(_))}function k(e,n){try{return e.apply(this,n)}catch(e){b.__wbindgen_exn_store(o(e))}}let M=null;function R(){return null!==M&&0!==M.byteLength||(M=new Uint32Array(b.memory.buffer)),M}let B=null;function C(e,n){return e>>>=0,(null!==B&&0!==B.byteLength||(B=new Float32Array(b.memory.buffer)),B).subarray(e/4,e/4+n)}function L(e,n){return e>>>=0,y().subarray(e/4,e/4+n)}function O(e,n){return e>>>=0,w().subarray(e/1,e/1+n)}let W=null;function U(e,n){return e>>>=0,(null!==W&&0!==W.byteLength||(W=new Uint8ClampedArray(b.memory.buffer)),W).subarray(e/1,e/1+n)}class V{static __wrap(e){e>>>=0;const n=Object.create(V.prototype);return n.__wbg_ptr=e,n}__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,e}free(){const e=this.__destroy_into_raw();b.__wbg_ruffle_free(e)}constructor(e,n,_){return u(b.ruffle_new(o(e),o(n),o(_)))}stream_from(e,n){try{const t=b.__wbindgen_add_to_stack_pointer(-16),r=S(e,b.__wbindgen_malloc,b.__wbindgen_realloc),f=h;b.ruffle_stream_from(t,this.__wbg_ptr,r,f,o(n));var _=y()[t/4+0];if(y()[t/4+1])throw u(_)}finally{b.__wbindgen_add_to_stack_pointer(16)}}load_data(e,n,_){try{const r=b.__wbindgen_add_to_stack_pointer(-16),f=S(_,b.__wbindgen_malloc,b.__wbindgen_realloc),c=h;b.ruffle_load_data(r,this.__wbg_ptr,o(e),o(n),f,c);var t=y()[r/4+0];if(y()[r/4+1])throw u(t)}finally{b.__wbindgen_add_to_stack_pointer(16)}}play(){b.ruffle_play(this.__wbg_ptr)}pause(){b.ruffle_pause(this.__wbg_ptr)}is_playing(){return 0!==b.ruffle_is_playing(this.__wbg_ptr)}volume(){return b.ruffle_volume(this.__wbg_ptr)}set_volume(e){b.ruffle_set_volume(this.__wbg_ptr,e)}renderer_debug_info(){return u(b.ruffle_renderer_debug_info(this.__wbg_ptr))}renderer_name(){return u(b.ruffle_renderer_name(this.__wbg_ptr))}prepare_context_menu(){return u(b.ruffle_prepare_context_menu(this.__wbg_ptr))}run_context_menu_callback(e){b.ruffle_run_context_menu_callback(this.__wbg_ptr,e)}set_fullscreen(e){b.ruffle_set_fullscreen(this.__wbg_ptr,e)}clear_custom_menu_items(){b.ruffle_clear_custom_menu_items(this.__wbg_ptr)}destroy(){b.ruffle_destroy(this.__wbg_ptr)}call_exposed_callback(e,n){const _=S(e,b.__wbindgen_malloc,b.__wbindgen_realloc),t=h,r=function(e,n){const _=n(4*e.length)>>>0,t=R();for(let n=0;n>>0,c(_))},n.wbg.__wbg_bindBufferRange_a27bbdf85c559847=function(e,n,_,t,r,b){c(e).bindBufferRange(n>>>0,_>>>0,c(t),r,b)},n.wbg.__wbg_bindSampler_b133997c35586e8e=function(e,n,_){c(e).bindSampler(n>>>0,c(_))},n.wbg.__wbg_bindVertexArray_ff82138c68ab11e2=function(e,n){c(e).bindVertexArray(c(n))},n.wbg.__wbg_blitFramebuffer_642189de83d5541c=function(e,n,_,t,r,b,f,a,u,o,i){c(e).blitFramebuffer(n,_,t,r,b,f,a,u,o>>>0,i>>>0)},n.wbg.__wbg_bufferData_7a92a4df64dedbb5=function(e,n,_,t){c(e).bufferData(n>>>0,_,t>>>0)},n.wbg.__wbg_bufferData_bc2f1a27f7162655=function(e,n,_,t){c(e).bufferData(n>>>0,c(_),t>>>0)},n.wbg.__wbg_bufferSubData_dfaee0913e5a5aa9=function(e,n,_,t){c(e).bufferSubData(n>>>0,_,c(t))},n.wbg.__wbg_clearBufferfi_885cba971ec9b951=function(e,n,_,t,r){c(e).clearBufferfi(n>>>0,_,t,r)},n.wbg.__wbg_clearBufferfv_c3e8e1d2aae72740=function(e,n,_,t,r){c(e).clearBufferfv(n>>>0,_,C(t,r))},n.wbg.__wbg_clearBufferiv_0d10229f924f144a=function(e,n,_,t,r){c(e).clearBufferiv(n>>>0,_,L(t,r))},n.wbg.__wbg_clearBufferuiv_69b26948d51288f6=function(e,n,_,t,r){var b,f;c(e).clearBufferuiv(n>>>0,_,(b=t,f=r,b>>>=0,R().subarray(b/4,b/4+f)))},n.wbg.__wbg_clientWaitSync_6ae34a595c426123=function(e,n,_,t){return c(e).clientWaitSync(c(n),_>>>0,t>>>0)},n.wbg.__wbg_compressedTexSubImage2D_50328fcf0a02e44e=function(e,n,_,t,r,b,f,a,u,o){c(e).compressedTexSubImage2D(n>>>0,_,t,r,b,f,a>>>0,u,o)},n.wbg.__wbg_compressedTexSubImage2D_2f1e2aa4819eb8bf=function(e,n,_,t,r,b,f,a,u){c(e).compressedTexSubImage2D(n>>>0,_,t,r,b,f,a>>>0,c(u))},n.wbg.__wbg_compressedTexSubImage3D_b091ddadefb6d8bb=function(e,n,_,t,r,b,f,a,u,o,i,g){c(e).compressedTexSubImage3D(n>>>0,_,t,r,b,f,a,u,o>>>0,i,g)},n.wbg.__wbg_compressedTexSubImage3D_7862a58f184543f9=function(e,n,_,t,r,b,f,a,u,o,i){c(e).compressedTexSubImage3D(n>>>0,_,t,r,b,f,a,u,o>>>0,c(i))},n.wbg.__wbg_copyBufferSubData_241eafcbd4c12698=function(e,n,_,t,r,b){c(e).copyBufferSubData(n>>>0,_>>>0,t,r,b)},n.wbg.__wbg_copyTexSubImage3D_a9e399a02a7b4913=function(e,n,_,t,r,b,f,a,u,o){c(e).copyTexSubImage3D(n>>>0,_,t,r,b,f,a,u,o)},n.wbg.__wbg_createQuery_7d9135a15ef7f7c1=function(e){const n=c(e).createQuery();return l(n)?0:o(n)},n.wbg.__wbg_createSampler_7cb18b6a7344cb7f=function(e){const n=c(e).createSampler();return l(n)?0:o(n)},n.wbg.__wbg_createVertexArray_c3ea33e844216f0c=function(e){const n=c(e).createVertexArray();return l(n)?0:o(n)},n.wbg.__wbg_deleteQuery_899eac2d10c353fe=function(e,n){c(e).deleteQuery(c(n))},n.wbg.__wbg_deleteSampler_fb860789f4f979fa=function(e,n){c(e).deleteSampler(c(n))},n.wbg.__wbg_deleteSync_29a2e0ba8b2b1fba=function(e,n){c(e).deleteSync(c(n))},n.wbg.__wbg_deleteVertexArray_6cac5e6d920ec62c=function(e,n){c(e).deleteVertexArray(c(n))},n.wbg.__wbg_drawArraysInstanced_5d47597735cf8309=function(e,n,_,t,r){c(e).drawArraysInstanced(n>>>0,_,t,r)},n.wbg.__wbg_drawBuffers_95b0dc2f4a51d86c=function(e,n){c(e).drawBuffers(c(n))},n.wbg.__wbg_drawElementsInstanced_ca6817ccc8efd367=function(e,n,_,t,r,b){c(e).drawElementsInstanced(n>>>0,_,t>>>0,r,b)},n.wbg.__wbg_endQuery_8c211cc02cd01b20=function(e,n){c(e).endQuery(n>>>0)},n.wbg.__wbg_fenceSync_be6e28c0ab054b7c=function(e,n,_){const t=c(e).fenceSync(n>>>0,_>>>0);return l(t)?0:o(t)},n.wbg.__wbg_framebufferTextureLayer_4d37fce65ad6fa24=function(e,n,_,t,r,b){c(e).framebufferTextureLayer(n>>>0,_>>>0,c(t),r,b)},n.wbg.__wbg_getBufferSubData_00b00fcc39df3d04=function(e,n,_,t){c(e).getBufferSubData(n>>>0,_,c(t))},n.wbg.__wbg_getIndexedParameter_3653fa5731165779=function(){return k((function(e,n,_){return o(c(e).getIndexedParameter(n>>>0,_>>>0))}),arguments)},n.wbg.__wbg_getQueryParameter_10fdcafc2556d716=function(e,n,_){return o(c(e).getQueryParameter(c(n),_>>>0))},n.wbg.__wbg_getSyncParameter_54a1c9c396fc8f04=function(e,n,_){return o(c(e).getSyncParameter(c(n),_>>>0))},n.wbg.__wbg_getUniformBlockIndex_d7c6b4424fadb6d7=function(e,n,_,t){return c(e).getUniformBlockIndex(c(n),d(_,t))},n.wbg.__wbg_invalidateFramebuffer_3722ca67172c0986=function(){return k((function(e,n,_){c(e).invalidateFramebuffer(n>>>0,c(_))}),arguments)},n.wbg.__wbg_readBuffer_3b7ca5f65ff370fa=function(e,n){c(e).readBuffer(n>>>0)},n.wbg.__wbg_readPixels_4bb6684850f73e43=function(){return k((function(e,n,_,t,r,b,f,a){c(e).readPixels(n,_,t,r,b>>>0,f>>>0,c(a))}),arguments)},n.wbg.__wbg_readPixels_dd16316dc9f7e055=function(){return k((function(e,n,_,t,r,b,f,a){c(e).readPixels(n,_,t,r,b>>>0,f>>>0,a)}),arguments)},n.wbg.__wbg_renderbufferStorageMultisample_edfed2d6d47a1ffc=function(e,n,_,t,r,b){c(e).renderbufferStorageMultisample(n>>>0,_,t>>>0,r,b)},n.wbg.__wbg_samplerParameterf_3de8180b6f0e0bad=function(e,n,_,t){c(e).samplerParameterf(c(n),_>>>0,t)},n.wbg.__wbg_samplerParameteri_b48e56d39240ebfd=function(e,n,_,t){c(e).samplerParameteri(c(n),_>>>0,t)},n.wbg.__wbg_texImage2D_3958aae1a00124c3=function(){return k((function(e,n,_,t,r,b,f,a,u,o,i){c(e).texImage2D(n>>>0,_,t,r,b,f,a>>>0,u>>>0,0===o?void 0:O(o,i))}),arguments)},n.wbg.__wbg_texStorage2D_ea61cc78cf6dccc0=function(e,n,_,t,r,b){c(e).texStorage2D(n>>>0,_,t>>>0,r,b)},n.wbg.__wbg_texStorage3D_c0418a94dce44435=function(e,n,_,t,r,b,f){c(e).texStorage3D(n>>>0,_,t>>>0,r,b,f)},n.wbg.__wbg_texSubImage2D_c3c012dc814eb4de=function(){return k((function(e,n,_,t,r,b,f,a,u,o){c(e).texSubImage2D(n>>>0,_,t,r,b,f,a>>>0,u>>>0,c(o))}),arguments)},n.wbg.__wbg_texSubImage2D_6cc58218d4d2218e=function(){return k((function(e,n,_,t,r,b,f,a,u,o){c(e).texSubImage2D(n>>>0,_,t,r,b,f,a>>>0,u>>>0,o)}),arguments)},n.wbg.__wbg_texSubImage2D_f2fc59cdbfe082f6=function(){return k((function(e,n,_,t,r,b,f,a,u,o){c(e).texSubImage2D(n>>>0,_,t,r,b,f,a>>>0,u>>>0,c(o))}),arguments)},n.wbg.__wbg_texSubImage2D_b80984a8394c2164=function(){return k((function(e,n,_,t,r,b,f,a,u,o){c(e).texSubImage2D(n>>>0,_,t,r,b,f,a>>>0,u>>>0,c(o))}),arguments)},n.wbg.__wbg_texSubImage2D_74b98607dfd0e706=function(){return k((function(e,n,_,t,r,b,f,a,u,o){c(e).texSubImage2D(n>>>0,_,t,r,b,f,a>>>0,u>>>0,c(o))}),arguments)},n.wbg.__wbg_texSubImage3D_46493f330c34c3b5=function(){return k((function(e,n,_,t,r,b,f,a,u,o,i,g){c(e).texSubImage3D(n>>>0,_,t,r,b,f,a,u,o>>>0,i>>>0,g)}),arguments)},n.wbg.__wbg_texSubImage3D_a6a842c4612308e8=function(){return k((function(e,n,_,t,r,b,f,a,u,o,i,g){c(e).texSubImage3D(n>>>0,_,t,r,b,f,a,u,o>>>0,i>>>0,c(g))}),arguments)},n.wbg.__wbg_texSubImage3D_baa311b32dcdc729=function(){return k((function(e,n,_,t,r,b,f,a,u,o,i,g){c(e).texSubImage3D(n>>>0,_,t,r,b,f,a,u,o>>>0,i>>>0,c(g))}),arguments)},n.wbg.__wbg_texSubImage3D_1e4f13bb2b1241ba=function(){return k((function(e,n,_,t,r,b,f,a,u,o,i,g){c(e).texSubImage3D(n>>>0,_,t,r,b,f,a,u,o>>>0,i>>>0,c(g))}),arguments)},n.wbg.__wbg_texSubImage3D_6f1cfd7913d851c1=function(){return k((function(e,n,_,t,r,b,f,a,u,o,i,g){c(e).texSubImage3D(n>>>0,_,t,r,b,f,a,u,o>>>0,i>>>0,c(g))}),arguments)},n.wbg.__wbg_uniform2fv_5d6ac180f63f4c4d=function(e,n,_,t){c(e).uniform2fv(c(n),C(_,t))},n.wbg.__wbg_uniform2iv_49d86b6eec9545b2=function(e,n,_,t){c(e).uniform2iv(c(n),L(_,t))},n.wbg.__wbg_uniform3fv_e576b04dd8611cdd=function(e,n,_,t){c(e).uniform3fv(c(n),C(_,t))},n.wbg.__wbg_uniform3iv_9977b4a6060ecef7=function(e,n,_,t){c(e).uniform3iv(c(n),L(_,t))},n.wbg.__wbg_uniform4fv_4fb418ea47a23f30=function(e,n,_,t){c(e).uniform4fv(c(n),C(_,t))},n.wbg.__wbg_uniform4iv_22e92f9fbaa43da2=function(e,n,_,t){c(e).uniform4iv(c(n),L(_,t))},n.wbg.__wbg_uniformBlockBinding_d55da3e5fc253c29=function(e,n,_,t){c(e).uniformBlockBinding(c(n),_>>>0,t>>>0)},n.wbg.__wbg_uniformMatrix2fv_f8a7c78e2a307606=function(e,n,_,t,r){c(e).uniformMatrix2fv(c(n),0!==_,C(t,r))},n.wbg.__wbg_uniformMatrix3fv_5fb56cebdc61819c=function(e,n,_,t,r){c(e).uniformMatrix3fv(c(n),0!==_,C(t,r))},n.wbg.__wbg_uniformMatrix4fv_43b24d28b294355e=function(e,n,_,t,r){c(e).uniformMatrix4fv(c(n),0!==_,C(t,r))},n.wbg.__wbg_vertexAttribDivisor_4bdbd8a597592338=function(e,n,_){c(e).vertexAttribDivisor(n>>>0,_>>>0)},n.wbg.__wbg_vertexAttribIPointer_2c55e7fe6713fc22=function(e,n,_,t,r,b){c(e).vertexAttribIPointer(n>>>0,_,t>>>0,r,b)},n.wbg.__wbg_activeTexture_0c3957272c193058=function(e,n){c(e).activeTexture(n>>>0)},n.wbg.__wbg_attachShader_cda29f0482c65440=function(e,n,_){c(e).attachShader(c(n),c(_))},n.wbg.__wbg_bindBuffer_6f9a2fa9ebc65b01=function(e,n,_){c(e).bindBuffer(n>>>0,c(_))},n.wbg.__wbg_bindFramebuffer_829df2e0091b6fcb=function(e,n,_){c(e).bindFramebuffer(n>>>0,c(_))},n.wbg.__wbg_bindRenderbuffer_21f89c9f18128e39=function(e,n,_){c(e).bindRenderbuffer(n>>>0,c(_))},n.wbg.__wbg_bindTexture_10219c0f804bff90=function(e,n,_){c(e).bindTexture(n>>>0,c(_))},n.wbg.__wbg_blendColor_d2bb381c9bf679e9=function(e,n,_,t,r){c(e).blendColor(n,_,t,r)},n.wbg.__wbg_blendEquation_6d2f257c64af825c=function(e,n){c(e).blendEquation(n>>>0)},n.wbg.__wbg_blendEquationSeparate_02dd5ec6a2c24f28=function(e,n,_){c(e).blendEquationSeparate(n>>>0,_>>>0)},n.wbg.__wbg_blendFunc_210b8c175df415a2=function(e,n,_){c(e).blendFunc(n>>>0,_>>>0)},n.wbg.__wbg_blendFuncSeparate_f9dccffef5a98f44=function(e,n,_,t,r){c(e).blendFuncSeparate(n>>>0,_>>>0,t>>>0,r>>>0)},n.wbg.__wbg_colorMask_1dfb9a91ae2b9e71=function(e,n,_,t,r){c(e).colorMask(0!==n,0!==_,0!==t,0!==r)},n.wbg.__wbg_compileShader_6f505d659e2795e6=function(e,n){c(e).compileShader(c(n))},n.wbg.__wbg_copyTexSubImage2D_d24471634d2806ea=function(e,n,_,t,r,b,f,a,u){c(e).copyTexSubImage2D(n>>>0,_,t,r,b,f,a,u)},n.wbg.__wbg_createBuffer_0da7eb27184081a8=function(e){const n=c(e).createBuffer();return l(n)?0:o(n)},n.wbg.__wbg_createFramebuffer_591225e0e871c0ca=function(e){const n=c(e).createFramebuffer();return l(n)?0:o(n)},n.wbg.__wbg_createProgram_535e1a7a84baa7ff=function(e){const n=c(e).createProgram();return l(n)?0:o(n)},n.wbg.__wbg_createRenderbuffer_bc3df425ce38e3a9=function(e){const n=c(e).createRenderbuffer();return l(n)?0:o(n)},n.wbg.__wbg_createShader_b1a69c91a9abbcf9=function(e,n){const _=c(e).createShader(n>>>0);return l(_)?0:o(_)},n.wbg.__wbg_createTexture_f999863e1ff4544e=function(e){const n=c(e).createTexture();return l(n)?0:o(n)},n.wbg.__wbg_cullFace_cd7e0b26c9752ee2=function(e,n){c(e).cullFace(n>>>0)},n.wbg.__wbg_deleteBuffer_d6466e666563f36a=function(e,n){c(e).deleteBuffer(c(n))},n.wbg.__wbg_deleteFramebuffer_7e53363364604b3c=function(e,n){c(e).deleteFramebuffer(c(n))},n.wbg.__wbg_deleteProgram_c6b502ab111ca429=function(e,n){c(e).deleteProgram(c(n))},n.wbg.__wbg_deleteRenderbuffer_dd5cf6b493cb5957=function(e,n){c(e).deleteRenderbuffer(c(n))},n.wbg.__wbg_deleteShader_cbb128151b8b2b6b=function(e,n){c(e).deleteShader(c(n))},n.wbg.__wbg_deleteTexture_43dcaa158a7a967b=function(e,n){c(e).deleteTexture(c(n))},n.wbg.__wbg_depthFunc_6c9952a747eff1e4=function(e,n){c(e).depthFunc(n>>>0)},n.wbg.__wbg_depthMask_cbb47d618b2d576f=function(e,n){c(e).depthMask(0!==n)},n.wbg.__wbg_depthRange_9e881c47e26c4451=function(e,n,_){c(e).depthRange(n,_)},n.wbg.__wbg_disable_94431bed03515efb=function(e,n){c(e).disable(n>>>0)},n.wbg.__wbg_disableVertexAttribArray_6f95b891552695e8=function(e,n){c(e).disableVertexAttribArray(n>>>0)},n.wbg.__wbg_drawArrays_77814548b9e573f2=function(e,n,_,t){c(e).drawArrays(n>>>0,_,t)},n.wbg.__wbg_enable_b36ff5159bc88f3d=function(e,n){c(e).enable(n>>>0)},n.wbg.__wbg_enableVertexAttribArray_7e45a67bd47ec1bc=function(e,n){c(e).enableVertexAttribArray(n>>>0)},n.wbg.__wbg_framebufferRenderbuffer_906d97968d0d8e6d=function(e,n,_,t,r){c(e).framebufferRenderbuffer(n>>>0,_>>>0,t>>>0,c(r))},n.wbg.__wbg_framebufferTexture2D_1dc2c539b965175d=function(e,n,_,t,r,b){c(e).framebufferTexture2D(n>>>0,_>>>0,t>>>0,c(r),b)},n.wbg.__wbg_frontFace_9aa0c51c6e4b1b49=function(e,n){c(e).frontFace(n>>>0)},n.wbg.__wbg_getActiveUniform_89a5bd32a9f76fe3=function(e,n,_){const t=c(e).getActiveUniform(c(n),_>>>0);return l(t)?0:o(t)},n.wbg.__wbg_getError_1a05a504dbd2417e=function(e){return c(e).getError()},n.wbg.__wbg_getExtension_6b00e2c6c766b6cb=function(){return k((function(e,n,_){const t=c(e).getExtension(d(n,_));return l(t)?0:o(t)}),arguments)},n.wbg.__wbg_getParameter_9e1070be2e213377=function(){return k((function(e,n){return o(c(e).getParameter(n>>>0))}),arguments)},n.wbg.__wbg_getProgramInfoLog_03d7941c48fa9179=function(e,n,_){const t=c(n).getProgramInfoLog(c(_));var r=l(t)?0:S(t,b.__wbindgen_malloc,b.__wbindgen_realloc),f=h;y()[e/4+1]=f,y()[e/4+0]=r},n.wbg.__wbg_getProgramParameter_dd171792e4ba3184=function(e,n,_){return o(c(e).getProgramParameter(c(n),_>>>0))},n.wbg.__wbg_getShaderInfoLog_c1cca646bf94aa17=function(e,n,_){const t=c(n).getShaderInfoLog(c(_));var r=l(t)?0:S(t,b.__wbindgen_malloc,b.__wbindgen_realloc),f=h;y()[e/4+1]=f,y()[e/4+0]=r},n.wbg.__wbg_getShaderParameter_c1d89b570b67be37=function(e,n,_){return o(c(e).getShaderParameter(c(n),_>>>0))},n.wbg.__wbg_getSupportedExtensions_675e4373f0fe08ca=function(e){const n=c(e).getSupportedExtensions();return l(n)?0:o(n)},n.wbg.__wbg_getUniformLocation_984bcb57f0539335=function(e,n,_,t){const r=c(e).getUniformLocation(c(n),d(_,t));return l(r)?0:o(r)},n.wbg.__wbg_linkProgram_0a25df9d4086c8c9=function(e,n){c(e).linkProgram(c(n))},n.wbg.__wbg_pixelStorei_2a2698776f2da87a=function(e,n,_){c(e).pixelStorei(n>>>0,_)},n.wbg.__wbg_polygonOffset_e77202d52b1290b6=function(e,n,_){c(e).polygonOffset(n,_)},n.wbg.__wbg_renderbufferStorage_1c98a13850038020=function(e,n,_,t,r){c(e).renderbufferStorage(n>>>0,_>>>0,t,r)},n.wbg.__wbg_scissor_5bbf5da585fcd6cd=function(e,n,_,t,r){c(e).scissor(n,_,t,r)},n.wbg.__wbg_shaderSource_5c55ce208ee2dc38=function(e,n,_,t){c(e).shaderSource(c(n),d(_,t))},n.wbg.__wbg_stencilFuncSeparate_cb264101eaecfcb0=function(e,n,_,t,r){c(e).stencilFuncSeparate(n>>>0,_>>>0,t,r>>>0)},n.wbg.__wbg_stencilMask_6cad8d0399d80755=function(e,n){c(e).stencilMask(n>>>0)},n.wbg.__wbg_stencilMaskSeparate_39a3bad615edec8b=function(e,n,_){c(e).stencilMaskSeparate(n>>>0,_>>>0)},n.wbg.__wbg_stencilOpSeparate_ab649871fc6cd85b=function(e,n,_,t,r){c(e).stencilOpSeparate(n>>>0,_>>>0,t>>>0,r>>>0)},n.wbg.__wbg_texParameteri_05700ca575d5f41d=function(e,n,_,t){c(e).texParameteri(n>>>0,_>>>0,t)},n.wbg.__wbg_uniform1f_51ae9c9d19ab2a9e=function(e,n,_){c(e).uniform1f(c(n),_)},n.wbg.__wbg_uniform1i_ef0ff3d67b59f4de=function(e,n,_){c(e).uniform1i(c(n),_)},n.wbg.__wbg_uniform4f_56014e7614d24fb7=function(e,n,_,t,r,b){c(e).uniform4f(c(n),_,t,r,b)},n.wbg.__wbg_useProgram_f16b06e2ecdf168f=function(e,n){c(e).useProgram(c(n))},n.wbg.__wbg_vertexAttribPointer_c16280a7c840a534=function(e,n,_,t,r,b,f){c(e).vertexAttribPointer(n>>>0,_,t>>>0,0!==r,b,f)},n.wbg.__wbg_viewport_a79678835091995e=function(e,n,_,t,r){c(e).viewport(n,_,t,r)},n.wbg.__wbg_instanceof_Window_c5579e140698a9dc=function(e){let n;try{n=c(e)instanceof Window}catch{n=!1}return n},n.wbg.__wbg_document_508774c021174a52=function(e){const n=c(e).document;return l(n)?0:o(n)},n.wbg.__wbg_location_f6c62a50e72200c8=function(e){return o(c(e).location)},n.wbg.__wbg_navigator_957c9b40d49df205=function(e){return o(c(e).navigator)},n.wbg.__wbg_devicePixelRatio_027b47127fcabea6=function(e){return c(e).devicePixelRatio},n.wbg.__wbg_localStorage_b5b6d3c826dbfeda=function(){return k((function(e){const n=c(e).localStorage;return l(n)?0:o(n)}),arguments)},n.wbg.__wbg_confirm_e1225db20f73462d=function(){return k((function(e,n,_){return c(e).confirm(d(n,_))}),arguments)},n.wbg.__wbg_focus_61c39b9b9f538150=function(){return k((function(e){c(e).focus()}),arguments)},n.wbg.__wbg_open_7403f38d13c728d5=function(){return k((function(e,n,_,t,r){const b=c(e).open(d(n,_),d(t,r));return l(b)?0:o(b)}),arguments)},n.wbg.__wbg_cancelAnimationFrame_1e00b5639e850581=function(){return k((function(e,n){c(e).cancelAnimationFrame(n)}),arguments)},n.wbg.__wbg_requestAnimationFrame_d28701d8e57998d1=function(){return k((function(e,n){return c(e).requestAnimationFrame(c(n))}),arguments)},n.wbg.__wbg_fetch_bb49ae9f1d79408b=function(e,n){return o(c(e).fetch(c(n)))},n.wbg.__wbg_style_6bc91a563e84d432=function(e){return o(c(e).style)},n.wbg.__wbg_addColorStop_f76baa96c8c853fc=function(){return k((function(e,n,_,t){c(e).addColorStop(n,d(_,t))}),arguments)},n.wbg.__wbg_instanceof_HtmlDocument_4869edf6c2c151e3=function(e){let n;try{n=c(e)instanceof HTMLDocument}catch{n=!1}return n},n.wbg.__wbg_execCommand_e253519e4df312c6=function(){return k((function(e,n,_){return c(e).execCommand(d(n,_))}),arguments)},n.wbg.__wbg_length_58c2aaf98bae4ec9=function(e){return c(e).length},n.wbg.__wbg_inverse_cef32d1dd8905e26=function(e){return o(c(e).inverse())},n.wbg.__wbg_instanceof_HtmlCanvasElement_b2dfeaf97587c9fa=function(e){let n;try{n=c(e)instanceof HTMLCanvasElement}catch{n=!1}return n},n.wbg.__wbg_width_b1f2559ce447b1d9=function(e){return c(e).width},n.wbg.__wbg_setwidth_196f4382488fd119=function(e,n){c(e).width=n>>>0},n.wbg.__wbg_height_0d9fffc5de313208=function(e){return c(e).height},n.wbg.__wbg_setheight_6d295d03e1783969=function(e,n){c(e).height=n>>>0},n.wbg.__wbg_getContext_24464d6344024525=function(){return k((function(e,n,_){const t=c(e).getContext(d(n,_));return l(t)?0:o(t)}),arguments)},n.wbg.__wbg_getContext_77e8ee1ed9b4b6dd=function(){return k((function(e,n,_,t){const r=c(e).getContext(d(n,_),c(t));return l(r)?0:o(r)}),arguments)},n.wbg.__wbg_width_3ccb03efe2122196=function(e){return c(e).width},n.wbg.__wbg_height_756c13122fb83a8f=function(e){return c(e).height},n.wbg.__wbg_bindVertexArrayOES_edb665af84add641=function(e,n){c(e).bindVertexArrayOES(c(n))},n.wbg.__wbg_createVertexArrayOES_72dc110fc4561db9=function(e){const n=c(e).createVertexArrayOES();return l(n)?0:o(n)},n.wbg.__wbg_deleteVertexArrayOES_bb2f05cfcd49a758=function(e,n){c(e).deleteVertexArrayOES(c(n))},n.wbg.__wbg_width_a0eafc5275e3f419=function(e){return c(e).width},n.wbg.__wbg_setwidth_12586bf0f02e8f95=function(e,n){c(e).width=n>>>0},n.wbg.__wbg_height_44501524d7b0437d=function(e){return c(e).height},n.wbg.__wbg_setheight_6752c0cba8cfd0b4=function(e,n){c(e).height=n>>>0},n.wbg.__wbg_pointerId_438f8328b763cbac=function(e){return c(e).pointerId},n.wbg.__wbg_deltaY_c24e1c19542b4ba4=function(e){return c(e).deltaY},n.wbg.__wbg_deltaMode_998c8ea939f3998a=function(e){return c(e).deltaMode},n.wbg.__wbg_framebufferTextureMultiviewOVR_d3d00b7e42809e9c=function(e,n,_,t,r,b,f){c(e).framebufferTextureMultiviewOVR(n>>>0,_>>>0,c(t),r,b,f)},n.wbg.__wbg_now_c97f243e7947c4ac=function(e){return c(e).now()},n.wbg.__wbg_headers_1eff4f53324496e6=function(e){return o(c(e).headers)},n.wbg.__wbg_newwithstrandinit_a4cd16dfaafcf625=function(){return k((function(e,n,_){return o(new Request(d(e,n),c(_)))}),arguments)},n.wbg.__wbg_setbuffer_7e24ddf1f55394c0=function(e,n){c(e).buffer=c(n)},n.wbg.__wbg_setonended_30c0596773a1dfc3=function(e,n){c(e).onended=c(n)},n.wbg.__wbg_start_dc7a146b60dcc9b3=function(){return k((function(e,n){c(e).start(n)}),arguments)},n.wbg.__wbg_connect_6d125e4872b0bd49=function(){return k((function(e,n){return o(c(e).connect(c(n)))}),arguments)},n.wbg.__wbg_offsetX_10c81ba572d79577=function(e){return c(e).offsetX},n.wbg.__wbg_offsetY_804852ad76e32718=function(e){return c(e).offsetY},n.wbg.__wbg_button_88e86c8fe3039068=function(e){return c(e).button},n.wbg.__wbg_new_264b389618b36913=function(){return k((function(){return o(new Path2D)}),arguments)},n.wbg.__wbg_addPath_27ac1ec625f3bd54=function(e,n,_){c(e).addPath(c(n),c(_))},n.wbg.__wbg_closePath_9c006fa9b0c86244=function(e){c(e).closePath()},n.wbg.__wbg_lineTo_19e3b685d7cf0737=function(e,n,_){c(e).lineTo(n,_)},n.wbg.__wbg_moveTo_692b94a65e659581=function(e,n,_){c(e).moveTo(n,_)},n.wbg.__wbg_quadraticCurveTo_65f1cf311e950722=function(e,n,_,t,r){c(e).quadraticCurveTo(n,_,t,r)},n.wbg.__wbg_rect_567e289af151a8f5=function(e,n,_,t,r){c(e).rect(n,_,t,r)},n.wbg.__wbg_drawBuffersWEBGL_874be434ff8441a5=function(e,n){c(e).drawBuffersWEBGL(c(n))},n.wbg.__wbg_getData_f586c0811a7ec1c4=function(){return k((function(e,n,_,t){const r=S(c(n).getData(d(_,t)),b.__wbindgen_malloc,b.__wbindgen_realloc),f=h;y()[e/4+1]=f,y()[e/4+0]=r}),arguments)},n.wbg.__wbg_videoWidth_3b49fdb5de96b51a=function(e){return c(e).videoWidth},n.wbg.__wbg_videoHeight_39749fb7b13f66b5=function(e){return c(e).videoHeight},n.wbg.__wbg_language_58f136fb521e5304=function(e,n){const _=c(n).language;var t=l(_)?0:S(_,b.__wbindgen_malloc,b.__wbindgen_realloc),r=h;y()[e/4+1]=r,y()[e/4+0]=t},n.wbg.__wbg_instanceof_WebGlRenderingContext_e1419556cd2b2d2d=function(e){let n;try{n=c(e)instanceof WebGLRenderingContext}catch{n=!1}return n},n.wbg.__wbg_drawingBufferWidth_67cfc585a809972a=function(e){return c(e).drawingBufferWidth},n.wbg.__wbg_drawingBufferHeight_de4ff466eed9ac86=function(e){return c(e).drawingBufferHeight},n.wbg.__wbg_bufferData_a8026dfac31d2906=function(e,n,_,t){c(e).bufferData(n>>>0,_,t>>>0)},n.wbg.__wbg_bufferData_bf07fdd88f2e61a0=function(e,n,_,t){c(e).bufferData(n>>>0,c(_),t>>>0)},n.wbg.__wbg_bufferData_c8eebe7d6368d9ec=function(e,n,_,t,r){c(e).bufferData(n>>>0,O(_,t),r>>>0)},n.wbg.__wbg_bufferSubData_af20b6998df1daf5=function(e,n,_,t){c(e).bufferSubData(n>>>0,_,c(t))},n.wbg.__wbg_compressedTexSubImage2D_c2d0d8cbcaf08cec=function(e,n,_,t,r,b,f,a,u){c(e).compressedTexSubImage2D(n>>>0,_,t,r,b,f,a>>>0,c(u))},n.wbg.__wbg_readPixels_7e99f56bb0beeea6=function(){return k((function(e,n,_,t,r,b,f,a){c(e).readPixels(n,_,t,r,b>>>0,f>>>0,c(a))}),arguments)},n.wbg.__wbg_texImage2D_ac2969f15a57716d=function(){return k((function(e,n,_,t,r,b,f,a,u,o,i){c(e).texImage2D(n>>>0,_,t,r,b,f,a>>>0,u>>>0,0===o?void 0:O(o,i))}),arguments)},n.wbg.__wbg_texSubImage2D_3393b2faf4bdeda7=function(){return k((function(e,n,_,t,r,b,f,a,u,o){c(e).texSubImage2D(n>>>0,_,t,r,b,f,a>>>0,u>>>0,c(o))}),arguments)},n.wbg.__wbg_uniform1fv_e360864efdd3a538=function(e,n,_,t){c(e).uniform1fv(c(n),C(_,t))},n.wbg.__wbg_uniform2fv_eb1d8ba39134b63f=function(e,n,_,t){c(e).uniform2fv(c(n),C(_,t))},n.wbg.__wbg_uniform2iv_ddd3395ddb25e28f=function(e,n,_,t){c(e).uniform2iv(c(n),L(_,t))},n.wbg.__wbg_uniform3fv_51ce1d090ff61eb8=function(e,n,_,t){c(e).uniform3fv(c(n),C(_,t))},n.wbg.__wbg_uniform3iv_72a700fef0840b5b=function(e,n,_,t){c(e).uniform3iv(c(n),L(_,t))},n.wbg.__wbg_uniform4fv_329033dc8e0d864b=function(e,n,_,t){c(e).uniform4fv(c(n),C(_,t))},n.wbg.__wbg_uniform4iv_8b0f52426db76864=function(e,n,_,t){c(e).uniform4iv(c(n),L(_,t))},n.wbg.__wbg_uniformMatrix2fv_43aab1b3ba44f113=function(e,n,_,t,r){c(e).uniformMatrix2fv(c(n),0!==_,C(t,r))},n.wbg.__wbg_uniformMatrix3fv_4e8c5fac9b4e2596=function(e,n,_,t,r){c(e).uniformMatrix3fv(c(n),0!==_,C(t,r))},n.wbg.__wbg_uniformMatrix4fv_31d76bb58caa0246=function(e,n,_,t,r){c(e).uniformMatrix4fv(c(n),0!==_,C(t,r))},n.wbg.__wbg_activeTexture_b191924c363f77ce=function(e,n){c(e).activeTexture(n>>>0)},n.wbg.__wbg_attachShader_c6ba0e94024fcfd3=function(e,n,_){c(e).attachShader(c(n),c(_))},n.wbg.__wbg_bindBuffer_bc746e5757cfd27a=function(e,n,_){c(e).bindBuffer(n>>>0,c(_))},n.wbg.__wbg_bindFramebuffer_a5e2ea2e2e5fea47=function(e,n,_){c(e).bindFramebuffer(n>>>0,c(_))},n.wbg.__wbg_bindRenderbuffer_18a9984850927cc8=function(e,n,_){c(e).bindRenderbuffer(n>>>0,c(_))},n.wbg.__wbg_bindTexture_003e92d5bd3d1cc7=function(e,n,_){c(e).bindTexture(n>>>0,c(_))},n.wbg.__wbg_blendColor_eb27f199ff696720=function(e,n,_,t,r){c(e).blendColor(n,_,t,r)},n.wbg.__wbg_blendEquation_e2282428514bc8da=function(e,n){c(e).blendEquation(n>>>0)},n.wbg.__wbg_blendEquationSeparate_c22d96f84170b893=function(e,n,_){c(e).blendEquationSeparate(n>>>0,_>>>0)},n.wbg.__wbg_blendFunc_7b891eca8bb9d4f9=function(e,n,_){c(e).blendFunc(n>>>0,_>>>0)},n.wbg.__wbg_blendFuncSeparate_060a21922823f86f=function(e,n,_,t,r){c(e).blendFuncSeparate(n>>>0,_>>>0,t>>>0,r>>>0)},n.wbg.__wbg_clear_0fbd94f2b3007978=function(e,n){c(e).clear(n>>>0)},n.wbg.__wbg_clearColor_a72825467905e9d1=function(e,n,_,t,r){c(e).clearColor(n,_,t,r)},n.wbg.__wbg_colorMask_8154d2f1a5eb697a=function(e,n,_,t,r){c(e).colorMask(0!==n,0!==_,0!==t,0!==r)},n.wbg.__wbg_compileShader_11deea085b781c35=function(e,n){c(e).compileShader(c(n))},n.wbg.__wbg_copyTexSubImage2D_5df950ef5a892ac1=function(e,n,_,t,r,b,f,a,u){c(e).copyTexSubImage2D(n>>>0,_,t,r,b,f,a,u)},n.wbg.__wbg_createBuffer_d90b963a9701a002=function(e){const n=c(e).createBuffer();return l(n)?0:o(n)},n.wbg.__wbg_createFramebuffer_011da022a209b95b=function(e){const n=c(e).createFramebuffer();return l(n)?0:o(n)},n.wbg.__wbg_createProgram_d78c1ab5ce988d0a=function(e){const n=c(e).createProgram();return l(n)?0:o(n)},n.wbg.__wbg_createRenderbuffer_f67deb1719aae5ab=function(e){const n=c(e).createRenderbuffer();return l(n)?0:o(n)},n.wbg.__wbg_createShader_94cce4c7315d3927=function(e,n){const _=c(e).createShader(n>>>0);return l(_)?0:o(_)},n.wbg.__wbg_createTexture_ae9908092d6ebd13=function(e){const n=c(e).createTexture();return l(n)?0:o(n)},n.wbg.__wbg_cullFace_2aacef4bb0b82f8a=function(e,n){c(e).cullFace(n>>>0)},n.wbg.__wbg_deleteBuffer_10e438f4de8bbdd0=function(e,n){c(e).deleteBuffer(c(n))},n.wbg.__wbg_deleteFramebuffer_8fce0ab5886cd5ff=function(e,n){c(e).deleteFramebuffer(c(n))},n.wbg.__wbg_deleteProgram_71b202b504e08521=function(e,n){c(e).deleteProgram(c(n))},n.wbg.__wbg_deleteRenderbuffer_128a773568520d61=function(e,n){c(e).deleteRenderbuffer(c(n))},n.wbg.__wbg_deleteShader_91b6949c2cb57fa5=function(e,n){c(e).deleteShader(c(n))},n.wbg.__wbg_deleteTexture_89b7cefee5715eaf=function(e,n){c(e).deleteTexture(c(n))},n.wbg.__wbg_depthFunc_ea602daadbf6bf2b=function(e,n){c(e).depthFunc(n>>>0)},n.wbg.__wbg_depthMask_32f5223c22963355=function(e,n){c(e).depthMask(0!==n)},n.wbg.__wbg_depthRange_95b6305e3d0e8fb2=function(e,n,_){c(e).depthRange(n,_)},n.wbg.__wbg_disable_18e601ffe079514a=function(e,n){c(e).disable(n>>>0)},n.wbg.__wbg_disableVertexAttribArray_eebd7bbc31fe8477=function(e,n){c(e).disableVertexAttribArray(n>>>0)},n.wbg.__wbg_drawArrays_fa797947fad0d5a1=function(e,n,_,t){c(e).drawArrays(n>>>0,_,t)},n.wbg.__wbg_drawElements_f61f3169f51e95a8=function(e,n,_,t,r){c(e).drawElements(n>>>0,_,t>>>0,r)},n.wbg.__wbg_enable_933052fc623337dd=function(e,n){c(e).enable(n>>>0)},n.wbg.__wbg_enableVertexAttribArray_085d700612de8362=function(e,n){c(e).enableVertexAttribArray(n>>>0)},n.wbg.__wbg_framebufferRenderbuffer_54843e8f4bf613c4=function(e,n,_,t,r){c(e).framebufferRenderbuffer(n>>>0,_>>>0,t>>>0,c(r))},n.wbg.__wbg_framebufferTexture2D_36ac24bed50444b9=function(e,n,_,t,r,b){c(e).framebufferTexture2D(n>>>0,_>>>0,t>>>0,c(r),b)},n.wbg.__wbg_frontFace_cd5ca49e5c3379e0=function(e,n){c(e).frontFace(n>>>0)},n.wbg.__wbg_getActiveUniform_9f6eb842d7ac3b6d=function(e,n,_){const t=c(e).getActiveUniform(c(n),_>>>0);return l(t)?0:o(t)},n.wbg.__wbg_getAttribLocation_019759a318602415=function(e,n,_,t){return c(e).getAttribLocation(c(n),d(_,t))},n.wbg.__wbg_getExtension_ffc1bd6e864d6abe=function(){return k((function(e,n,_){const t=c(e).getExtension(d(n,_));return l(t)?0:o(t)}),arguments)},n.wbg.__wbg_getParameter_211f7166414ae1d2=function(){return k((function(e,n){return o(c(e).getParameter(n>>>0))}),arguments)},n.wbg.__wbg_getProgramInfoLog_e9101bb2902f723d=function(e,n,_){const t=c(n).getProgramInfoLog(c(_));var r=l(t)?0:S(t,b.__wbindgen_malloc,b.__wbindgen_realloc),f=h;y()[e/4+1]=f,y()[e/4+0]=r},n.wbg.__wbg_getProgramParameter_2b03f89296b12b4b=function(e,n,_){return o(c(e).getProgramParameter(c(n),_>>>0))},n.wbg.__wbg_getShaderInfoLog_311c033a58aeed83=function(e,n,_){const t=c(n).getShaderInfoLog(c(_));var r=l(t)?0:S(t,b.__wbindgen_malloc,b.__wbindgen_realloc),f=h;y()[e/4+1]=f,y()[e/4+0]=r},n.wbg.__wbg_getShaderParameter_0003e598f392b3f6=function(e,n,_){return o(c(e).getShaderParameter(c(n),_>>>0))},n.wbg.__wbg_getUniformLocation_90a9c5e63646d30f=function(e,n,_,t){const r=c(e).getUniformLocation(c(n),d(_,t));return l(r)?0:o(r)},n.wbg.__wbg_linkProgram_12cc552bbaf3fcd8=function(e,n){c(e).linkProgram(c(n))},n.wbg.__wbg_pixelStorei_673b59ca3de9bf71=function(e,n,_){c(e).pixelStorei(n>>>0,_)},n.wbg.__wbg_polygonOffset_43239add56a51f9c=function(e,n,_){c(e).polygonOffset(n,_)},n.wbg.__wbg_renderbufferStorage_70c75c11a16f26e5=function(e,n,_,t,r){c(e).renderbufferStorage(n>>>0,_>>>0,t,r)},n.wbg.__wbg_scissor_d6dd0b6d33070a27=function(e,n,_,t,r){c(e).scissor(n,_,t,r)},n.wbg.__wbg_shaderSource_be3c868a31ce0a63=function(e,n,_,t){c(e).shaderSource(c(n),d(_,t))},n.wbg.__wbg_stencilFunc_0c156c0af1516ff7=function(e,n,_,t){c(e).stencilFunc(n>>>0,_,t>>>0)},n.wbg.__wbg_stencilFuncSeparate_6020e96c08ff2b26=function(e,n,_,t,r){c(e).stencilFuncSeparate(n>>>0,_>>>0,t,r>>>0)},n.wbg.__wbg_stencilMask_b31337183c4f39b3=function(e,n){c(e).stencilMask(n>>>0)},n.wbg.__wbg_stencilMaskSeparate_d829b104c43af459=function(e,n,_){c(e).stencilMaskSeparate(n>>>0,_>>>0)},n.wbg.__wbg_stencilOp_a26b2abe602b1c07=function(e,n,_,t){c(e).stencilOp(n>>>0,_>>>0,t>>>0)},n.wbg.__wbg_stencilOpSeparate_9efb207c561bddb9=function(e,n,_,t,r){c(e).stencilOpSeparate(n>>>0,_>>>0,t>>>0,r>>>0)},n.wbg.__wbg_texParameteri_8a613af30322a029=function(e,n,_,t){c(e).texParameteri(n>>>0,_>>>0,t)},n.wbg.__wbg_uniform1f_47b794fe461d672a=function(e,n,_){c(e).uniform1f(c(n),_)},n.wbg.__wbg_uniform1i_eb9e0e57747e2b87=function(e,n,_){c(e).uniform1i(c(n),_)},n.wbg.__wbg_uniform4f_d9261a15c9a46bc0=function(e,n,_,t,r,b){c(e).uniform4f(c(n),_,t,r,b)},n.wbg.__wbg_useProgram_72ab2082025590d6=function(e,n){c(e).useProgram(c(n))},n.wbg.__wbg_vertexAttribPointer_39284763b38d2a03=function(e,n,_,t,r,b,f){c(e).vertexAttribPointer(n>>>0,_,t>>>0,0!==r,b,f)},n.wbg.__wbg_viewport_d7c73a71f08f3aa1=function(e,n,_,t,r){c(e).viewport(n,_,t,r)},n.wbg.__wbg_body_db30cc67afcfce41=function(e){const n=c(e).body;return l(n)?0:o(n)},n.wbg.__wbg_createElement_d975e66d06bc88da=function(){return k((function(e,n,_){return o(c(e).createElement(d(n,_)))}),arguments)},n.wbg.__wbg_createElementNS_0863d6a8a49df376=function(){return k((function(e,n,_,t,r){return o(c(e).createElementNS(0===n?void 0:d(n,_),d(t,r)))}),arguments)},n.wbg.__wbg_querySelector_41d5da02fa776534=function(){return k((function(e,n,_){const t=c(e).querySelector(d(n,_));return l(t)?0:o(t)}),arguments)},n.wbg.__wbg_setid_7b804eee26ac1f4c=function(e,n,_){c(e).id=d(n,_)},n.wbg.__wbg_clientWidth_28c68ca0ee754d86=function(e){return c(e).clientWidth},n.wbg.__wbg_clientHeight_fdbd966f05f13573=function(e){return c(e).clientHeight},n.wbg.__wbg_querySelector_e6aa68a0a2101628=function(){return k((function(e,n,_){const t=c(e).querySelector(d(n,_));return l(t)?0:o(t)}),arguments)},n.wbg.__wbg_releasePointerCapture_345eb9098bd23e0b=function(){return k((function(e,n){c(e).releasePointerCapture(n)}),arguments)},n.wbg.__wbg_setAttribute_1b177bcd399b9b56=function(){return k((function(e,n,_,t,r){c(e).setAttribute(d(n,_),d(t,r))}),arguments)},n.wbg.__wbg_setAttributeNS_786c483c252fd719=function(){return k((function(e,n,_,t,r,b,f){c(e).setAttributeNS(0===n?void 0:d(n,_),d(t,r),d(b,f))}),arguments)},n.wbg.__wbg_setPointerCapture_a4d12ff87fb3c0d9=function(){return k((function(e,n){c(e).setPointerCapture(n)}),arguments)},n.wbg.__wbg_remove_2ce16f912922b67c=function(e){c(e).remove()},n.wbg.__wbg_drawArraysInstancedANGLE_95ee4d978b2bcf41=function(e,n,_,t,r){c(e).drawArraysInstancedANGLE(n>>>0,_,t,r)},n.wbg.__wbg_drawElementsInstancedANGLE_67f54c0a65dc2bba=function(e,n,_,t,r,b){c(e).drawElementsInstancedANGLE(n>>>0,_,t>>>0,r,b)},n.wbg.__wbg_vertexAttribDivisorANGLE_d7cf4fdd9b5abe72=function(e,n,_){c(e).vertexAttribDivisorANGLE(n>>>0,_>>>0)},n.wbg.__wbg_setTransform_4ffead8869bd9888=function(e,n){c(e).setTransform(c(n))},n.wbg.__wbg_setProperty_0a5af0fd1a9e8e25=function(){return k((function(e,n,_,t,r){c(e).setProperty(d(n,_),d(t,r))}),arguments)},n.wbg.__wbg_ctrlKey_a6ae383772af67d4=function(e){return c(e).ctrlKey},n.wbg.__wbg_shiftKey_0b1fd10d0674f847=function(e){return c(e).shiftKey},n.wbg.__wbg_metaKey_e6e67f783888f56d=function(e){return c(e).metaKey},n.wbg.__wbg_key_2e1ec0c70a342064=function(e,n){const _=S(c(n).key,b.__wbindgen_malloc,b.__wbindgen_realloc),t=h;y()[e/4+1]=t,y()[e/4+0]=_},n.wbg.__wbg_code_8cb09c9b243af9d2=function(e,n){const _=S(c(n).code,b.__wbindgen_malloc,b.__wbindgen_realloc),t=h;y()[e/4+1]=t,y()[e/4+0]=_},n.wbg.__wbg_href_68df54cac0a34be4=function(){return k((function(e,n){const _=S(c(n).href,b.__wbindgen_malloc,b.__wbindgen_realloc),t=h;y()[e/4+1]=t,y()[e/4+0]=_}),arguments)},n.wbg.__wbg_protocol_68c51e1c422d4ab9=function(){return k((function(e,n){const _=S(c(n).protocol,b.__wbindgen_malloc,b.__wbindgen_realloc),t=h;y()[e/4+1]=t,y()[e/4+0]=_}),arguments)},n.wbg.__wbg_assign_2c3e33bfd0b8d01c=function(){return k((function(e,n,_){c(e).assign(d(n,_))}),arguments)},n.wbg.__wbg_size_6b8408d071a01627=function(e){return c(e).size},n.wbg.__wbg_type_3ef02d510696beba=function(e){return c(e).type},n.wbg.__wbg_name_b0536e0a02f4e559=function(e,n){const _=S(c(n).name,b.__wbindgen_malloc,b.__wbindgen_realloc),t=h;y()[e/4+1]=t,y()[e/4+0]=_},n.wbg.__wbg_baseURI_3189bc9ff1ef7372=function(){return k((function(e,n){const _=c(n).baseURI;var t=l(_)?0:S(_,b.__wbindgen_malloc,b.__wbindgen_realloc),r=h;y()[e/4+1]=r,y()[e/4+0]=t}),arguments)},n.wbg.__wbg_parentElement_065722829508e41a=function(e){const n=c(e).parentElement;return l(n)?0:o(n)},n.wbg.__wbg_appendChild_1139b53a65d69bed=function(){return k((function(e,n){return o(c(e).appendChild(c(n)))}),arguments)},n.wbg.__wbg_removeChild_48d9566cffdfec93=function(){return k((function(e,n){return o(c(e).removeChild(c(n)))}),arguments)},n.wbg.__wbg_newwithbuffersourcesequenceandoptions_652259acaadf5c71=function(){return k((function(e,n){return o(new Blob(c(e),c(n)))}),arguments)},n.wbg.__wbg_instanceof_CanvasRenderingContext2d_ad94e23ca309f82e=function(e){let n;try{n=c(e)instanceof CanvasRenderingContext2D}catch{n=!1}return n},n.wbg.__wbg_setglobalAlpha_eeba7b27e09e5cdb=function(e,n){c(e).globalAlpha=n},n.wbg.__wbg_setglobalCompositeOperation_7b0ec91fbb9a3506=function(){return k((function(e,n,_){c(e).globalCompositeOperation=d(n,_)}),arguments)},n.wbg.__wbg_setstrokeStyle_b7f2ba53250c124b=function(e,n){c(e).strokeStyle=c(n)},n.wbg.__wbg_setfillStyle_ef86ac7198b13c3e=function(e,n){c(e).fillStyle=c(n)},n.wbg.__wbg_setfilter_a4587ee46e164650=function(e,n,_){c(e).filter=d(n,_)},n.wbg.__wbg_setimageSmoothingEnabled_2624b5ca52984920=function(e,n){c(e).imageSmoothingEnabled=0!==n},n.wbg.__wbg_setlineWidth_b1749d46786b7fb3=function(e,n){c(e).lineWidth=n},n.wbg.__wbg_setlineCap_b89503253bc89030=function(e,n,_){c(e).lineCap=d(n,_)},n.wbg.__wbg_setlineJoin_40626fbb34763038=function(e,n,_){c(e).lineJoin=d(n,_)},n.wbg.__wbg_setmiterLimit_3041e6db8b31916f=function(e,n){c(e).miterLimit=n},n.wbg.__wbg_drawImage_7da8df8cbeb723f0=function(){return k((function(e,n,_,t){c(e).drawImage(c(n),_,t)}),arguments)},n.wbg.__wbg_clip_7c7a92c704bbb6dc=function(e,n,_){c(e).clip(c(n),u(_))},n.wbg.__wbg_fill_a4e3b3d3d3b5475d=function(e,n,_){c(e).fill(c(n),u(_))},n.wbg.__wbg_stroke_96b20fda83ff0fd9=function(e,n){c(e).stroke(c(n))},n.wbg.__wbg_createLinearGradient_5ece0c26c5f163a2=function(e,n,_,t,r){return o(c(e).createLinearGradient(n,_,t,r))},n.wbg.__wbg_createPattern_2e7c4b21d46dcedf=function(){return k((function(e,n,_,t){const r=c(e).createPattern(c(n),d(_,t));return l(r)?0:o(r)}),arguments)},n.wbg.__wbg_createRadialGradient_975f96107b8f5699=function(){return k((function(e,n,_,t,r,b,f){return o(c(e).createRadialGradient(n,_,t,r,b,f))}),arguments)},n.wbg.__wbg_putImageData_477bb0325653a825=function(){return k((function(e,n,_,t){c(e).putImageData(c(n),_,t)}),arguments)},n.wbg.__wbg_clearRect_dc28576f7865a790=function(e,n,_,t,r){c(e).clearRect(n,_,t,r)},n.wbg.__wbg_fillRect_99bbea5bf3a2188f=function(e,n,_,t,r){c(e).fillRect(n,_,t,r)},n.wbg.__wbg_restore_f66104a6fa9ef82c=function(e){c(e).restore()},n.wbg.__wbg_save_69a79e0fa9fa7c4b=function(e){c(e).save()},n.wbg.__wbg_resetTransform_39c3ea56345bd7c5=function(){return k((function(e){c(e).resetTransform()}),arguments)},n.wbg.__wbg_setTransform_c13b4834bbe27c9f=function(){return k((function(e,n,_,t,r,b,f){c(e).setTransform(n,_,t,r,b,f)}),arguments)},n.wbg.__wbg_transform_f12705e223c2d545=function(){return k((function(e,n,_,t,r,b,f){c(e).transform(n,_,t,r,b,f)}),arguments)},n.wbg.__wbg_clipboardData_84b041aaf1dd9a2c=function(e){const n=c(e).clipboardData;return l(n)?0:o(n)},n.wbg.__wbg_currentTarget_fd4b236e20138cbe=function(e){const n=c(e).currentTarget;return l(n)?0:o(n)},n.wbg.__wbg_preventDefault_2f38e1471796356f=function(e){c(e).preventDefault()},n.wbg.__wbg_addEventListener_d25d1ffe6c69ae96=function(){return k((function(e,n,_,t){c(e).addEventListener(d(n,_),c(t))}),arguments)},n.wbg.__wbg_addEventListener_3a7d7c4177ce91d1=function(){return k((function(e,n,_,t,r){c(e).addEventListener(d(n,_),c(t),c(r))}),arguments)},n.wbg.__wbg_addEventListener_254042ad1f1a8ed0=function(){return k((function(e,n,_,t,r){c(e).addEventListener(d(n,_),c(t),0!==r)}),arguments)},n.wbg.__wbg_removeEventListener_7a381df5fdb6037f=function(){return k((function(e,n,_,t){c(e).removeEventListener(d(n,_),c(t))}),arguments)},n.wbg.__wbg_removeEventListener_315d6f929fccf484=function(){return k((function(e,n,_,t,r){c(e).removeEventListener(d(n,_),c(t),0!==r)}),arguments)},n.wbg.__wbg_instanceof_HtmlFormElement_a67ff2b843593f03=function(e){let n;try{n=c(e)instanceof HTMLFormElement}catch{n=!1}return n},n.wbg.__wbg_setaction_f8bc56cc8ce828af=function(e,n,_){c(e).action=d(n,_)},n.wbg.__wbg_setmethod_e33daf7493fab624=function(e,n,_){c(e).method=d(n,_)},n.wbg.__wbg_settarget_f2aa2a9ffb8f53f3=function(e,n,_){c(e).target=d(n,_)},n.wbg.__wbg_submit_f513aa8d11e9b590=function(){return k((function(e){c(e).submit()}),arguments)},n.wbg.__wbg_a_956e1498a11427ea=function(e){return c(e).a},n.wbg.__wbg_seta_5ed7af7847230d80=function(e,n){c(e).a=n},n.wbg.__wbg_b_7c7a0f71badca864=function(e){return c(e).b},n.wbg.__wbg_c_9bfbf8494b3c2afb=function(e){return c(e).c},n.wbg.__wbg_d_c993b877bac15970=function(e){return c(e).d},n.wbg.__wbg_setd_b1ca1405efaa8d44=function(e,n){c(e).d=n},n.wbg.__wbg_e_f8ce3d68f330f2fe=function(e){return c(e).e},n.wbg.__wbg_f_09ccbf3f7d21a10f=function(e){return c(e).f},n.wbg.__wbg_new_33b5e19f97637fa6=function(){return k((function(){return o(new DOMMatrix)}),arguments)},n.wbg.__wbg_newwitharray64_f90cdbfb8dee0b12=function(){return k((function(e,n){var _,t;return o(new DOMMatrix((_=e,t=n,_>>>=0,m().subarray(_/8,_/8+t))))}),arguments)},n.wbg.__wbg_instanceof_HtmlTextAreaElement_faa48044e837d7d0=function(e){let n;try{n=c(e)instanceof HTMLTextAreaElement}catch{n=!1}return n},n.wbg.__wbg_setvalue_272abbd8c7ff3573=function(e,n,_){c(e).value=d(n,_)},n.wbg.__wbg_select_94f3bfa2adacd192=function(e){c(e).select()},n.wbg.__wbg_newwithu8clampedarray_8209aab948fb6896=function(){return k((function(e,n,_){return o(new ImageData(U(e,n),_>>>0))}),arguments)},n.wbg.__wbg_destination_0ae9151d82904b60=function(e){return o(c(e).destination)},n.wbg.__wbg_sampleRate_64933ca8c3adf367=function(e){return c(e).sampleRate},n.wbg.__wbg_currentTime_ff9abefab476bee8=function(e){return c(e).currentTime},n.wbg.__wbg_new_f7df6586396483fa=function(){return k((function(){return o(new r)}),arguments)},n.wbg.__wbg_close_c4da68c7d05f0953=function(){return k((function(e){return o(c(e).close())}),arguments)},n.wbg.__wbg_suspend_31c1a6c6aee945d8=function(){return k((function(e){return o(c(e).suspend())}),arguments)},n.wbg.__wbg_createBuffer_fe5ace8400138ade=function(){return k((function(e,n,_,t){return o(c(e).createBuffer(n>>>0,_>>>0,t))}),arguments)},n.wbg.__wbg_createBufferSource_eed5b111f3941d98=function(){return k((function(e){return o(c(e).createBufferSource())}),arguments)},n.wbg.__wbg_resume_089773cbb84b9f23=function(){return k((function(e){return o(c(e).resume())}),arguments)},n.wbg.__wbg_instanceof_Response_7ade9a5a066d1a55=function(e){let n;try{n=c(e)instanceof Response}catch{n=!1}return n},n.wbg.__wbg_url_59cb32ef6a837521=function(e,n){const _=S(c(n).url,b.__wbindgen_malloc,b.__wbindgen_realloc),t=h;y()[e/4+1]=t,y()[e/4+0]=_},n.wbg.__wbg_redirected_b1dddeedf4a4a567=function(e){return c(e).redirected},n.wbg.__wbg_status_d2b2d0889f7e970f=function(e){return c(e).status},n.wbg.__wbg_ok_0a0ed9a1863d8af5=function(e){return c(e).ok},n.wbg.__wbg_statusText_3600c56ee3873605=function(e,n){const _=S(c(n).statusText,b.__wbindgen_malloc,b.__wbindgen_realloc),t=h;y()[e/4+1]=t,y()[e/4+0]=_},n.wbg.__wbg_arrayBuffer_2693673868da65b7=function(){return k((function(e){return o(c(e).arrayBuffer())}),arguments)},n.wbg.__wbg_get_93d5f60cbfadbdfb=function(){return k((function(e,n,_,t){const r=c(n)[d(_,t)];var f=l(r)?0:S(r,b.__wbindgen_malloc,b.__wbindgen_realloc),a=h;y()[e/4+1]=a,y()[e/4+0]=f}),arguments)},n.wbg.__wbg_set_862c97e8f911f327=function(){return k((function(e,n,_,t,r){c(e)[d(n,_)]=d(t,r)}),arguments)},n.wbg.__wbg_delete_cbfe443b973964de=function(){return k((function(e,n,_){delete c(e)[d(n,_)]}),arguments)},n.wbg.__wbg_set_76353df4722f4954=function(){return k((function(e,n,_,t,r){c(e).set(d(n,_),d(t,r))}),arguments)},n.wbg.__wbg_instanceof_HtmlInputElement_a15913e00980dd9c=function(e){let n;try{n=c(e)instanceof HTMLInputElement}catch{n=!1}return n},n.wbg.__wbg_setname_82745f3c39969360=function(e,n,_){c(e).name=d(n,_)},n.wbg.__wbg_settype_bb5062c0ad392d68=function(e,n,_){c(e).type=d(n,_)},n.wbg.__wbg_setvalue_7605619324f70225=function(e,n,_){c(e).value=d(n,_)},n.wbg.__wbg_get_7303ed2ef026b2f5=function(e,n){return o(c(e)[n>>>0])},n.wbg.__wbg_length_820c786973abdd8a=function(e){return c(e).length},n.wbg.__wbg_new_0394642eae39db16=function(){return o(new Array)},n.wbg.__wbg_newnoargs_c9e6043b8ad84109=function(e,n){return o(new Function(d(e,n)))},n.wbg.__wbg_next_f4bc0e96ea67da68=function(e){return o(c(e).next)},n.wbg.__wbg_next_ec061e48a0e72a96=function(){return k((function(e){return o(c(e).next())}),arguments)},n.wbg.__wbg_done_b6abb27d42b63867=function(e){return c(e).done},n.wbg.__wbg_value_2f4ef2036bfad28e=function(e){return o(c(e).value)},n.wbg.__wbg_iterator_7c7e58f62eb84700=function(){return o(Symbol.iterator)},n.wbg.__wbg_get_f53c921291c381bd=function(){return k((function(e,n){return o(Reflect.get(c(e),c(n)))}),arguments)},n.wbg.__wbg_call_557a2f2deacc4912=function(){return k((function(e,n){return o(c(e).call(c(n)))}),arguments)},n.wbg.__wbg_new_2b6fea4ea03b1b95=function(){return o(new Object)},n.wbg.__wbg_self_742dd6eab3e9211e=function(){return k((function(){return o(self.self)}),arguments)},n.wbg.__wbg_window_c409e731db53a0e2=function(){return k((function(){return o(window.window)}),arguments)},n.wbg.__wbg_globalThis_b70c095388441f2d=function(){return k((function(){return o(globalThis.globalThis)}),arguments)},n.wbg.__wbg_global_1c72617491ed7194=function(){return k((function(){return o(_.g.global)}),arguments)},n.wbg.__wbg_set_b4da98d504ac6091=function(e,n,_){c(e)[n>>>0]=u(_)},n.wbg.__wbg_isArray_04e59fb73f78ab5b=function(e){return Array.isArray(c(e))},n.wbg.__wbg_of_8276164206196da5=function(e){return o(Array.of(c(e)))},n.wbg.__wbg_of_06e367b9c3d4b36a=function(e,n){return o(Array.of(c(e),c(n)))},n.wbg.__wbg_push_109cfc26d02582dd=function(e,n){return c(e).push(c(n))},n.wbg.__wbg_instanceof_ArrayBuffer_ef2632aa0d4bfff8=function(e){let n;try{n=c(e)instanceof ArrayBuffer}catch{n=!1}return n},n.wbg.__wbg_values_37eb2197bdbdfdd8=function(e){return o(c(e).values())},n.wbg.__wbg_new_87297f22973157c8=function(e,n){return o(new Error(d(e,n)))},n.wbg.__wbg_apply_8cf86cc6c93f52c1=function(){return k((function(e,n,_){return o(c(e).apply(c(n),c(_)))}),arguments)},n.wbg.__wbg_call_587b30eea3e09332=function(){return k((function(e,n,_){return o(c(e).call(c(n),c(_)))}),arguments)},n.wbg.__wbg_isSafeInteger_2088b01008075470=function(e){return Number.isSafeInteger(c(e))},n.wbg.__wbg_getTime_40bd09e020e8bc8c=function(e){return c(e).getTime()},n.wbg.__wbg_getTimezoneOffset_884011df4eb8cabc=function(e){return c(e).getTimezoneOffset()},n.wbg.__wbg_new0_494c19a27871d56f=function(){return o(new Date)},n.wbg.__wbg_instanceof_Object_a9e9e5766628e8b5=function(e){let n;try{n=c(e)instanceof Object}catch{n=!1}return n},n.wbg.__wbg_entries_13e011453776468f=function(e){return o(Object.entries(c(e)))},n.wbg.__wbg_fromEntries_d1b310956d20d858=function(){return k((function(e){return o(Object.fromEntries(c(e)))}),arguments)},n.wbg.__wbg_is_20a2e5c82eecc47d=function(e,n){return Object.is(c(e),c(n))},n.wbg.__wbg_new_2b55e405e4af4986=function(e,n){try{var _={a:e,b:n};const t=new Promise(((e,n)=>{const t=_.a;_.a=0;try{return function(e,n,_,t){b.wasm_bindgen__convert__closures__invoke2_mut__h1a0215b7f5086a18(e,n,o(_),o(t))}(t,_.b,e,n)}finally{_.a=t}}));return o(t)}finally{_.a=_.b=0}},n.wbg.__wbg_resolve_ae38ad63c43ff98b=function(e){return o(Promise.resolve(c(e)))},n.wbg.__wbg_then_8df675b8bb5d5e3c=function(e,n){return o(c(e).then(c(n)))},n.wbg.__wbg_then_835b073a479138e5=function(e,n,_){return o(c(e).then(c(n),c(_)))},n.wbg.__wbg_buffer_55ba7a6b1b92e2ac=function(e){return o(c(e).buffer)},n.wbg.__wbg_newwithbyteoffsetandlength_abbb764f85f16b6b=function(e,n,_){return o(new Int8Array(c(e),n>>>0,_>>>0))},n.wbg.__wbg_newwithbyteoffsetandlength_6889cd5c48bfda26=function(e,n,_){return o(new Int16Array(c(e),n>>>0,_>>>0))},n.wbg.__wbg_newwithbyteoffsetandlength_23602c96f86e952a=function(e,n,_){return o(new Int32Array(c(e),n>>>0,_>>>0))},n.wbg.__wbg_newwithbyteoffsetandlength_88d1d8be5df94b9b=function(e,n,_){return o(new Uint8Array(c(e),n>>>0,_>>>0))},n.wbg.__wbg_new_09938a7d020f049b=function(e){return o(new Uint8Array(c(e)))},n.wbg.__wbg_set_3698e3ca519b3c3c=function(e,n,_){c(e).set(c(n),_>>>0)},n.wbg.__wbg_length_0aab7ffd65ad19ed=function(e){return c(e).length},n.wbg.__wbg_newwithbyteoffsetandlength_051cff28f608b6cb=function(e,n,_){return o(new Uint16Array(c(e),n>>>0,_>>>0))},n.wbg.__wbg_newwithbyteoffsetandlength_fae0a69639559788=function(e,n,_){return o(new Uint32Array(c(e),n>>>0,_>>>0))},n.wbg.__wbg_newwithbyteoffsetandlength_ab5b524f83702d8d=function(e,n,_){return o(new Float32Array(c(e),n>>>0,_>>>0))},n.wbg.__wbg_instanceof_Uint8Array_1349640af2da2e88=function(e){let n;try{n=c(e)instanceof Uint8Array}catch{n=!1}return n},n.wbg.__wbg_newwithlength_89eeca401d8918c2=function(e){return o(new Uint8Array(e>>>0))},n.wbg.__wbg_buffer_2b87f8d382772412=function(e){return o(c(e).buffer)},n.wbg.__wbg_subarray_d82be056deb4ad27=function(e,n,_){return o(c(e).subarray(n>>>0,_>>>0))},n.wbg.__wbg_ownKeys_16ca303f7a5c24f3=function(){return k((function(e){return o(Reflect.ownKeys(c(e)))}),arguments)},n.wbg.__wbg_set_07da13cc24b69217=function(){return k((function(e,n,_){return Reflect.set(c(e),c(n),c(_))}),arguments)},n.wbg.__wbindgen_bigint_get_as_i64=function(e,n){const _=c(n),t="bigint"==typeof _?_:void 0;(null!==A&&0!==A.byteLength||(A=new BigInt64Array(b.memory.buffer)),A)[e/8+1]=l(t)?BigInt(0):t,y()[e/4+0]=!l(t)},n.wbg.__wbindgen_debug_string=function(e,n){const _=S(D(c(n)),b.__wbindgen_malloc,b.__wbindgen_realloc),t=h;y()[e/4+1]=t,y()[e/4+0]=_},n.wbg.__wbindgen_throw=function(e,n){throw new Error(d(e,n))},n.wbg.__wbindgen_memory=function(){return o(b.memory)},n.wbg.__wbindgen_closure_wrapper1083=function(e,n,_){return o(I(e,n,440,T))},n.wbg.__wbindgen_closure_wrapper1084=function(e,n,_){return o(I(e,n,440,P))},n.wbg.__wbindgen_closure_wrapper1085=function(e,n,_){return o(I(e,n,440,P))},n.wbg.__wbindgen_closure_wrapper1086=function(e,n,_){return o(I(e,n,440,E))},n.wbg.__wbindgen_closure_wrapper1087=function(e,n,_){return o(I(e,n,440,P))},n.wbg.__wbindgen_closure_wrapper1088=function(e,n,_){return o(I(e,n,440,P))},n.wbg.__wbindgen_closure_wrapper1089=function(e,n,_){return o(I(e,n,440,P))},n.wbg.__wbindgen_closure_wrapper13362=function(e,n,_){return o(I(e,n,5345,F))},n}function j(e,n){return b=e.exports,H.__wbindgen_wasm_module=n,A=null,B=null,s=null,p=null,M=null,g=null,W=null,b}function G(e){if(void 0!==b)return b;const n=q();e instanceof WebAssembly.Module||(e=new WebAssembly.Module(e));return j(new WebAssembly.Instance(e,n),e)}async function H(e){if(void 0!==b)return b;void 0===e&&(e=new URL(_(878),_.b));const n=q();("string"==typeof e||"function"==typeof Request&&e instanceof Request||"function"==typeof URL&&e instanceof URL)&&(e=fetch(e));const{instance:t,module:r}=await async function(e,n){if("function"==typeof Response&&e instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(e,n)}catch(n){if("application/wasm"==e.headers.get("Content-Type"))throw n;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",n)}const _=await e.arrayBuffer();return await WebAssembly.instantiate(_,n)}{const _=await WebAssembly.instantiate(e,n);return _ instanceof WebAssembly.Instance?{instance:_,module:e}:_}}(await e,n);return j(t,r)}const N=H}}]); -//# sourceMappingURL=core.ruffle.7b401a0204b092cdbb42.js.map \ No newline at end of file diff --git a/ruffle/dce2c4b91f5b7ef43cf0.wasm b/ruffle/dce2c4b91f5b7ef43cf0.wasm deleted file mode 100644 index ffbc6bc9..00000000 Binary files a/ruffle/dce2c4b91f5b7ef43cf0.wasm and /dev/null differ diff --git a/ruffle/ruffle.js b/ruffle/ruffle.js index c5c6ae7a..83d2310e 100644 --- a/ruffle/ruffle.js +++ b/ruffle/ruffle.js @@ -1,3 +1,2 @@ -/*! For license information please see ruffle.js.LICENSE.txt */ -(()=>{var e,t,n={297:(e,t,n)=>{e.exports=function e(t,n,r){function i(o,s){if(!n[o]){if(!t[o]){if(a)return a(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[o]={exports:{}};t[o][0].call(u.exports,(function(e){return i(t[o][1][e]||e)}),u,u.exports,e,t,n,r)}return n[o].exports}for(var a=void 0,o=0;o>2,s=(3&t)<<4|n>>4,l=1>6:64,u=2>4,n=(15&o)<<4|(s=a.indexOf(e.charAt(u++)))>>2,r=(3&s)<<6|(l=a.indexOf(e.charAt(u++))),f[c++]=t,64!==s&&(f[c++]=n),64!==l&&(f[c++]=r);return f}},{"./support":30,"./utils":32}],2:[function(e,t,n){"use strict";var r=e("./external"),i=e("./stream/DataWorker"),a=e("./stream/Crc32Probe"),o=e("./stream/DataLengthProbe");function s(e,t,n,r,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=n,this.compression=r,this.compressedContent=i}s.prototype={getContentWorker:function(){var e=new i(r.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new o("data_length")),t=this;return e.on("end",(function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")})),e},getCompressedWorker:function(){return new i(r.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},s.createWorkerFrom=function(e,t,n){return e.pipe(new a).pipe(new o("uncompressedSize")).pipe(t.compressWorker(n)).pipe(new o("compressedSize")).withStreamInfo("compression",t)},t.exports=s},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,n){"use strict";var r=e("./stream/GenericWorker");n.STORE={magic:"\0\0",compressWorker:function(){return new r("STORE compression")},uncompressWorker:function(){return new r("STORE decompression")}},n.DEFLATE=e("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,n){"use strict";var r=e("./utils"),i=function(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==r.getTypeOf(e)?function(e,t,n,r){var a=i,o=r+n;e^=-1;for(var s=r;s>>8^a[255&(e^t[s])];return-1^e}(0|t,e,e.length,0):function(e,t,n,r){var a=i,o=r+n;e^=-1;for(var s=r;s>>8^a[255&(e^t.charCodeAt(s))];return-1^e}(0|t,e,e.length,0):0}},{"./utils":32}],5:[function(e,t,n){"use strict";n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!0,n.date=null,n.compression=null,n.compressionOptions=null,n.comment=null,n.unixPermissions=null,n.dosPermissions=null},{}],6:[function(e,t,n){"use strict";var r=null;r="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:r}},{lie:37}],7:[function(e,t,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=e("pako"),a=e("./utils"),o=e("./stream/GenericWorker"),s=r?"uint8array":"array";function l(e,t){o.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}n.magic="\b\0",a.inherits(l,o),l.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(a.transformTo(s,e.data),!1)},l.prototype.flush=function(){o.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},l.prototype.cleanUp=function(){o.prototype.cleanUp.call(this),this._pako=null},l.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},n.compressWorker=function(e){return new l("Deflate",e)},n.uncompressWorker=function(){return new l("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,n){"use strict";function r(e,t){var n,r="";for(n=0;n>>=8;return r}function i(e,t,n,i,o,c){var d,f,h=e.file,p=e.compression,m=c!==s.utf8encode,v=a.transformTo("string",c(h.name)),g=a.transformTo("string",s.utf8encode(h.name)),b=h.comment,w=a.transformTo("string",c(b)),k=a.transformTo("string",s.utf8encode(b)),y=g.length!==h.name.length,_=k.length!==b.length,x="",R="",S="",z=h.dir,E=h.date,A={crc32:0,compressedSize:0,uncompressedSize:0};t&&!n||(A.crc32=e.crc32,A.compressedSize=e.compressedSize,A.uncompressedSize=e.uncompressedSize);var j=0;t&&(j|=8),m||!y&&!_||(j|=2048);var C=0,I=0;z&&(C|=16),"UNIX"===o?(I=798,C|=function(e,t){var n=e;return e||(n=t?16893:33204),(65535&n)<<16}(h.unixPermissions,z)):(I=20,C|=function(e){return 63&(e||0)}(h.dosPermissions)),d=E.getUTCHours(),d<<=6,d|=E.getUTCMinutes(),d<<=5,d|=E.getUTCSeconds()/2,f=E.getUTCFullYear()-1980,f<<=4,f|=E.getUTCMonth()+1,f<<=5,f|=E.getUTCDate(),y&&(R=r(1,1)+r(l(v),4)+g,x+="up"+r(R.length,2)+R),_&&(S=r(1,1)+r(l(w),4)+k,x+="uc"+r(S.length,2)+S);var O="";return O+="\n\0",O+=r(j,2),O+=p.magic,O+=r(d,2),O+=r(f,2),O+=r(A.crc32,4),O+=r(A.compressedSize,4),O+=r(A.uncompressedSize,4),O+=r(v.length,2),O+=r(x.length,2),{fileRecord:u.LOCAL_FILE_HEADER+O+v+x,dirRecord:u.CENTRAL_FILE_HEADER+r(I,2)+O+r(w.length,2)+"\0\0\0\0"+r(C,4)+r(i,4)+v+x+w}}var a=e("../utils"),o=e("../stream/GenericWorker"),s=e("../utf8"),l=e("../crc32"),u=e("../signature");function c(e,t,n,r){o.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=n,this.encodeFileName=r,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}a.inherits(c,o),c.prototype.push=function(e){var t=e.meta.percent||0,n=this.entriesCount,r=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,o.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:n?(t+100*(n-r-1))/n:100}}))},c.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var n=i(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:n.fileRecord,meta:{percent:0}})}else this.accumulate=!0},c.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,n=i(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(n.dirRecord),t)this.push({data:function(e){return u.DATA_DESCRIPTOR+r(e.crc32,4)+r(e.compressedSize,4)+r(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:n.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},c.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)n=(n<<8)+this.byteAt(t);return this.index+=e,n},readString:function(e){return r.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{"../utils":32}],19:[function(e,t,n){"use strict";var r=e("./Uint8ArrayReader");function i(e){r.call(this,e)}e("../utils").inherits(i,r),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,n){"use strict";var r=e("./DataReader");function i(e){r.call(this,e)}e("../utils").inherits(i,r),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./DataReader":18}],21:[function(e,t,n){"use strict";var r=e("./ArrayReader");function i(e){r.call(this,e)}e("../utils").inherits(i,r),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,n){"use strict";var r=e("../utils"),i=e("../support"),a=e("./ArrayReader"),o=e("./StringReader"),s=e("./NodeBufferReader"),l=e("./Uint8ArrayReader");t.exports=function(e){var t=r.getTypeOf(e);return r.checkSupport(t),"string"!==t||i.uint8array?"nodebuffer"===t?new s(e):i.uint8array?new l(r.transformTo("uint8array",e)):new a(r.transformTo("array",e)):new o(e)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,n){"use strict";n.LOCAL_FILE_HEADER="PK\x03\x04",n.CENTRAL_FILE_HEADER="PK\x01\x02",n.CENTRAL_DIRECTORY_END="PK\x05\x06",n.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x06\x07",n.ZIP64_CENTRAL_DIRECTORY_END="PK\x06\x06",n.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(e,t,n){"use strict";var r=e("./GenericWorker"),i=e("../utils");function a(e){r.call(this,"ConvertWorker to "+e),this.destType=e}i.inherits(a,r),a.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=a},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,n){"use strict";var r=e("./GenericWorker"),i=e("../crc32");function a(){r.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}e("../utils").inherits(a,r),a.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=a},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,n){"use strict";var r=e("../utils"),i=e("./GenericWorker");function a(e){i.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}r.inherits(a,i),a.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=a},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,n){"use strict";var r=e("../utils"),i=e("./GenericWorker");function a(e){i.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then((function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=r.getTypeOf(e),t.isPaused||t._tickAndRepeat()}),(function(e){t.error(e)}))}r.inherits(a,i),a.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},a.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,r.delay(this._tickAndRepeat,[],this)),!0)},a.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(r.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},a.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":e=this.data.subarray(this.index,t);break;case"array":case"nodebuffer":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=a},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,n){"use strict";function r(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}r.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var n=0;n "+e:e}},t.exports=r},{}],29:[function(e,t,n){"use strict";var r=e("../utils"),i=e("./ConvertWorker"),a=e("./GenericWorker"),o=e("../base64"),s=e("../support"),l=e("../external"),u=null;if(s.nodestream)try{u=e("../nodejs/NodejsStreamOutputAdapter")}catch(e){}function c(e,t){return new l.Promise((function(n,i){var a=[],s=e._internalType,l=e._outputType,u=e._mimeType;e.on("data",(function(e,n){a.push(e),t&&t(n)})).on("error",(function(e){a=[],i(e)})).on("end",(function(){try{var e=function(e,t,n){switch(e){case"blob":return r.newBlob(r.transformTo("arraybuffer",t),n);case"base64":return o.encode(t);default:return r.transformTo(e,t)}}(l,function(e,t){var n,r=0,i=null,a=0;for(n=0;n>>6:(n<65536?t[o++]=224|n>>>12:(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63),t[o++]=128|n>>>6&63),t[o++]=128|63&n);return t}(e)},n.utf8decode=function(e){return i.nodebuffer?r.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,n,i,a,o=e.length,l=new Array(2*o);for(t=n=0;t>10&1023,l[n++]=56320|1023&i)}return l.length!==n&&(l.subarray?l=l.subarray(0,n):l.length=n),r.applyFromCharCode(l)}(e=r.transformTo(i.uint8array?"uint8array":"array",e))},r.inherits(u,o),u.prototype.processChunk=function(e){var t=r.transformTo(i.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(i.uint8array){var a=t;(t=new Uint8Array(a.length+this.leftOver.length)).set(this.leftOver,0),t.set(a,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var o=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;0<=n&&128==(192&e[n]);)n--;return n<0||0===n?t:n+s[e[n]]>t?n:t}(t),l=t;o!==t.length&&(i.uint8array?(l=t.subarray(0,o),this.leftOver=t.subarray(o,t.length)):(l=t.slice(0,o),this.leftOver=t.slice(o,t.length))),this.push({data:n.utf8decode(l),meta:e.meta})},u.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:n.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},n.Utf8DecodeWorker=u,r.inherits(c,o),c.prototype.processChunk=function(e){this.push({data:n.utf8encode(e.data),meta:e.meta})},n.Utf8EncodeWorker=c},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,n){"use strict";var r=e("./support"),i=e("./base64"),a=e("./nodejsUtils"),o=e("./external");function s(e){return e}function l(e,t){for(var n=0;n>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=r(this.extraFields[1].value);this.uncompressedSize===i.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===i.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===i.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===i.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,n,r,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(n<65536?t[o++]=224|n>>>12:(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63),t[o++]=128|n>>>6&63),t[o++]=128|63&n);return t},n.buf2binstring=function(e){return l(e,e.length)},n.binstring2buf=function(e){for(var t=new r.Buf8(e.length),n=0,i=t.length;n>10&1023,u[r++]=56320|1023&i)}return l(u,r)},n.utf8border=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;0<=n&&128==(192&e[n]);)n--;return n<0||0===n?t:n+o[e[n]]>t?n:t}},{"./common":41}],43:[function(e,t,n){"use strict";t.exports=function(e,t,n,r){for(var i=65535&e|0,a=e>>>16&65535|0,o=0;0!==n;){for(n-=o=2e3>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t,n,i){var a=r,o=i+n;e^=-1;for(var s=i;s>>8^a[255&(e^t[s])];return-1^e}},{}],46:[function(e,t,n){"use strict";var r,i=e("../utils/common"),a=e("./trees"),o=e("./adler32"),s=e("./crc32"),l=e("./messages"),u=0,c=4,d=0,f=-2,h=-1,p=4,m=2,v=8,g=9,b=286,w=30,k=19,y=2*b+1,_=15,x=3,R=258,S=R+x+1,z=42,E=113,A=1,j=2,C=3,I=4;function O(e,t){return e.msg=l[t],t}function D(e){return(e<<1)-(4e.avail_out&&(n=e.avail_out),0!==n&&(i.arraySet(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,0===t.pending&&(t.pending_out=0))}function T(e,t){a._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,P(e.strm)}function $(e,t){e.pending_buf[e.pending++]=t}function L(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function B(e,t){var n,r,i=e.max_chain_length,a=e.strstart,o=e.prev_length,s=e.nice_match,l=e.strstart>e.w_size-S?e.strstart-(e.w_size-S):0,u=e.window,c=e.w_mask,d=e.prev,f=e.strstart+R,h=u[a+o-1],p=u[a+o];e.prev_length>=e.good_match&&(i>>=2),s>e.lookahead&&(s=e.lookahead);do{if(u[(n=t)+o]===p&&u[n+o-1]===h&&u[n]===u[a]&&u[++n]===u[a+1]){a+=2,n++;do{}while(u[++a]===u[++n]&&u[++a]===u[++n]&&u[++a]===u[++n]&&u[++a]===u[++n]&&u[++a]===u[++n]&&u[++a]===u[++n]&&u[++a]===u[++n]&&u[++a]===u[++n]&&al&&0!=--i);return o<=e.lookahead?o:e.lookahead}function M(e){var t,n,r,a,l,u,c,d,f,h,p=e.w_size;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=p+(p-S)){for(i.arraySet(e.window,e.window,p,p,0),e.match_start-=p,e.strstart-=p,e.block_start-=p,t=n=e.hash_size;r=e.head[--t],e.head[t]=p<=r?r-p:0,--n;);for(t=n=p;r=e.prev[--t],e.prev[t]=p<=r?r-p:0,--n;);a+=p}if(0===e.strm.avail_in)break;if(u=e.strm,c=e.window,d=e.strstart+e.lookahead,h=void 0,(f=a)<(h=u.avail_in)&&(h=f),n=0===h?0:(u.avail_in-=h,i.arraySet(c,u.input,u.next_in,h,d),1===u.state.wrap?u.adler=o(u.adler,c,h,d):2===u.state.wrap&&(u.adler=s(u.adler,c,h,d)),u.next_in+=h,u.total_in+=h,h),e.lookahead+=n,e.lookahead+e.insert>=x)for(l=e.strstart-e.insert,e.ins_h=e.window[l],e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x)if(r=a._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,r=a._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(M(e),0===e.lookahead&&t===u)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,T(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-S&&(T(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===c?(T(e,!0),0===e.strm.avail_out?C:I):(e.strstart>e.block_start&&(T(e,!1),e.strm.avail_out),A)})),new W(4,4,8,4,N),new W(4,5,16,8,N),new W(4,6,32,32,N),new W(4,4,16,16,U),new W(8,16,32,32,U),new W(8,16,128,128,U),new W(8,32,128,256,U),new W(32,128,258,1024,U),new W(32,258,258,4096,U)],n.deflateInit=function(e,t){return V(e,t,v,15,8,0)},n.deflateInit2=V,n.deflateReset=H,n.deflateResetKeep=Z,n.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?f:(e.state.gzhead=t,d):f},n.deflate=function(e,t){var n,i,o,l;if(!e||!e.state||5>8&255),$(i,i.gzhead.time>>16&255),$(i,i.gzhead.time>>24&255),$(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),$(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&($(i,255&i.gzhead.extra.length),$(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=s(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):($(i,0),$(i,0),$(i,0),$(i,0),$(i,0),$(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),$(i,3),i.status=E);else{var h=v+(i.w_bits-8<<4)<<8;h|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(h|=32),h+=31-h%31,i.status=E,L(i,h),0!==i.strstart&&(L(i,e.adler>>>16),L(i,65535&e.adler)),e.adler=1}if(69===i.status)if(i.gzhead.extra){for(o=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>o&&(e.adler=s(e.adler,i.pending_buf,i.pending-o,o)),P(e),o=i.pending,i.pending!==i.pending_buf_size));)$(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>o&&(e.adler=s(e.adler,i.pending_buf,i.pending-o,o)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){o=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>o&&(e.adler=s(e.adler,i.pending_buf,i.pending-o,o)),P(e),o=i.pending,i.pending===i.pending_buf_size)){l=1;break}l=i.gzindexo&&(e.adler=s(e.adler,i.pending_buf,i.pending-o,o)),0===l&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){o=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>o&&(e.adler=s(e.adler,i.pending_buf,i.pending-o,o)),P(e),o=i.pending,i.pending===i.pending_buf_size)){l=1;break}l=i.gzindexo&&(e.adler=s(e.adler,i.pending_buf,i.pending-o,o)),0===l&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&P(e),i.pending+2<=i.pending_buf_size&&($(i,255&e.adler),$(i,e.adler>>8&255),e.adler=0,i.status=E)):i.status=E),0!==i.pending){if(P(e),0===e.avail_out)return i.last_flush=-1,d}else if(0===e.avail_in&&D(t)<=D(n)&&t!==c)return O(e,-5);if(666===i.status&&0!==e.avail_in)return O(e,-5);if(0!==e.avail_in||0!==i.lookahead||t!==u&&666!==i.status){var p=2===i.strategy?function(e,t){for(var n;;){if(0===e.lookahead&&(M(e),0===e.lookahead)){if(t===u)return A;break}if(e.match_length=0,n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(T(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===c?(T(e,!0),0===e.strm.avail_out?C:I):e.last_lit&&(T(e,!1),0===e.strm.avail_out)?A:j}(i,t):3===i.strategy?function(e,t){for(var n,r,i,o,s=e.window;;){if(e.lookahead<=R){if(M(e),e.lookahead<=R&&t===u)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(n=a._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(T(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===c?(T(e,!0),0===e.strm.avail_out?C:I):e.last_lit&&(T(e,!1),0===e.strm.avail_out)?A:j}(i,t):r[i.level].func(i,t);if(p!==C&&p!==I||(i.status=666),p===A||p===C)return 0===e.avail_out&&(i.last_flush=-1),d;if(p===j&&(1===t?a._tr_align(i):5!==t&&(a._tr_stored_block(i,0,0,!1),3===t&&(F(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),P(e),0===e.avail_out))return i.last_flush=-1,d}return t!==c?d:i.wrap<=0?1:(2===i.wrap?($(i,255&e.adler),$(i,e.adler>>8&255),$(i,e.adler>>16&255),$(i,e.adler>>24&255),$(i,255&e.total_in),$(i,e.total_in>>8&255),$(i,e.total_in>>16&255),$(i,e.total_in>>24&255)):(L(i,e.adler>>>16),L(i,65535&e.adler)),P(e),0=n.w_size&&(0===s&&(F(n.head),n.strstart=0,n.block_start=0,n.insert=0),h=new i.Buf8(n.w_size),i.arraySet(h,t,p-n.w_size,n.w_size,0),t=h,p=n.w_size),l=e.avail_in,u=e.next_in,c=e.input,e.avail_in=p,e.next_in=0,e.input=t,M(n);n.lookahead>=x;){for(r=n.strstart,a=n.lookahead-(x-1);n.ins_h=(n.ins_h<>>=k=w>>>24,p-=k,0==(k=w>>>16&255))z[a++]=65535&w;else{if(!(16&k)){if(0==(64&k)){w=m[(65535&w)+(h&(1<>>=k,p-=k),p<15&&(h+=S[r++]<>>=k=w>>>24,p-=k,!(16&(k=w>>>16&255))){if(0==(64&k)){w=v[(65535&w)+(h&(1<>>=k,p-=k,(k=a-o)<_){if(c<(k=_-k)&&n.sane){e.msg="invalid distance too far back",n.mode=30;break e}if(R=f,(x=0)===d){if(x+=u-k,k>3,h&=(1<<(p-=y<<3))-1,e.next_in=r,e.next_out=a,e.avail_in=r>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function v(){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 r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function g(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=f,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new r.Buf32(h),t.distcode=t.distdyn=new r.Buf32(p),t.sane=1,t.back=-1,c):d}function b(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,g(e)):d}function w(e,t){var n,r;return e&&e.state?(r=e.state,t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=o.wsize?(r.arraySet(o.window,t,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(i<(a=o.wsize-o.wnext)&&(a=i),r.arraySet(o.window,t,n-i,a,o.wnext),(i-=a)?(r.arraySet(o.window,t,n-i,i,0),o.wnext=i,o.whave=o.wsize):(o.wnext+=a,o.wnext===o.wsize&&(o.wnext=0),o.whave>>8&255,n.check=a(n.check,M,2,0),y=k=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&k)<<8)+(k>>8))%31){e.msg="incorrect header check",n.mode=30;break}if(8!=(15&k)){e.msg="unknown compression method",n.mode=30;break}if(y-=4,P=8+(15&(k>>>=4)),0===n.wbits)n.wbits=P;else if(P>n.wbits){e.msg="invalid window size",n.mode=30;break}n.dmax=1<>8&1),512&n.flags&&(M[0]=255&k,M[1]=k>>>8&255,n.check=a(n.check,M,2,0)),y=k=0,n.mode=3;case 3:for(;y<32;){if(0===b)break e;b--,k+=h[v++]<>>8&255,M[2]=k>>>16&255,M[3]=k>>>24&255,n.check=a(n.check,M,4,0)),y=k=0,n.mode=4;case 4:for(;y<16;){if(0===b)break e;b--,k+=h[v++]<>8),512&n.flags&&(M[0]=255&k,M[1]=k>>>8&255,n.check=a(n.check,M,2,0)),y=k=0,n.mode=5;case 5:if(1024&n.flags){for(;y<16;){if(0===b)break e;b--,k+=h[v++]<>>8&255,n.check=a(n.check,M,2,0)),y=k=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&(b<(z=n.length)&&(z=b),z&&(n.head&&(P=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),r.arraySet(n.head.extra,h,v,z,P)),512&n.flags&&(n.check=a(n.check,h,z,v)),b-=z,v+=z,n.length-=z),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===b)break e;for(z=0;P=h[v+z++],n.head&&P&&n.length<65536&&(n.head.name+=String.fromCharCode(P)),P&&z>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=12;break;case 10:for(;y<32;){if(0===b)break e;b--,k+=h[v++]<>>=7&y,y-=7&y,n.mode=27;break}for(;y<3;){if(0===b)break e;b--,k+=h[v++]<>>=1)){case 0:n.mode=14;break;case 1:if(R(n),n.mode=20,6!==t)break;k>>>=2,y-=2;break e;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=30}k>>>=2,y-=2;break;case 14:for(k>>>=7&y,y-=7&y;y<32;){if(0===b)break e;b--,k+=h[v++]<>>16^65535)){e.msg="invalid stored block lengths",n.mode=30;break}if(n.length=65535&k,y=k=0,n.mode=15,6===t)break e;case 15:n.mode=16;case 16:if(z=n.length){if(b>>=5,y-=5,n.ndist=1+(31&k),k>>>=5,y-=5,n.ncode=4+(15&k),k>>>=4,y-=4,286>>=3,y-=3}for(;n.have<19;)n.lens[N[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,$={bits:n.lenbits},T=s(0,n.lens,0,19,n.lencode,0,n.work,$),n.lenbits=$.bits,T){e.msg="invalid code lengths set",n.mode=30;break}n.have=0,n.mode=19;case 19:for(;n.have>>16&255,I=65535&B,!((j=B>>>24)<=y);){if(0===b)break e;b--,k+=h[v++]<>>=j,y-=j,n.lens[n.have++]=I;else{if(16===I){for(L=j+2;y>>=j,y-=j,0===n.have){e.msg="invalid bit length repeat",n.mode=30;break}P=n.lens[n.have-1],z=3+(3&k),k>>>=2,y-=2}else if(17===I){for(L=j+3;y>>=j)),k>>>=3,y-=3}else{for(L=j+7;y>>=j)),k>>>=7,y-=7}if(n.have+z>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=30;break}for(;z--;)n.lens[n.have++]=P}}if(30===n.mode)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=30;break}if(n.lenbits=9,$={bits:n.lenbits},T=s(l,n.lens,0,n.nlen,n.lencode,0,n.work,$),n.lenbits=$.bits,T){e.msg="invalid literal/lengths set",n.mode=30;break}if(n.distbits=6,n.distcode=n.distdyn,$={bits:n.distbits},T=s(u,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,$),n.distbits=$.bits,T){e.msg="invalid distances set",n.mode=30;break}if(n.mode=20,6===t)break e;case 20:n.mode=21;case 21:if(6<=b&&258<=w){e.next_out=g,e.avail_out=w,e.next_in=v,e.avail_in=b,n.hold=k,n.bits=y,o(e,x),g=e.next_out,p=e.output,w=e.avail_out,v=e.next_in,h=e.input,b=e.avail_in,k=n.hold,y=n.bits,12===n.mode&&(n.back=-1);break}for(n.back=0;C=(B=n.lencode[k&(1<>>16&255,I=65535&B,!((j=B>>>24)<=y);){if(0===b)break e;b--,k+=h[v++]<>O)])>>>16&255,I=65535&B,!(O+(j=B>>>24)<=y);){if(0===b)break e;b--,k+=h[v++]<>>=O,y-=O,n.back+=O}if(k>>>=j,y-=j,n.back+=j,n.length=I,0===C){n.mode=26;break}if(32&C){n.back=-1,n.mode=12;break}if(64&C){e.msg="invalid literal/length code",n.mode=30;break}n.extra=15&C,n.mode=22;case 22:if(n.extra){for(L=n.extra;y>>=n.extra,y-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;C=(B=n.distcode[k&(1<>>16&255,I=65535&B,!((j=B>>>24)<=y);){if(0===b)break e;b--,k+=h[v++]<>O)])>>>16&255,I=65535&B,!(O+(j=B>>>24)<=y);){if(0===b)break e;b--,k+=h[v++]<>>=O,y-=O,n.back+=O}if(k>>>=j,y-=j,n.back+=j,64&C){e.msg="invalid distance code",n.mode=30;break}n.offset=I,n.extra=15&C,n.mode=24;case 24:if(n.extra){for(L=n.extra;y>>=n.extra,y-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=30;break}n.mode=25;case 25:if(0===w)break e;if(z=x-w,n.offset>z){if((z=n.offset-z)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=30;break}E=z>n.wnext?(z-=n.wnext,n.wsize-z):n.wnext-z,z>n.length&&(z=n.length),A=n.window}else A=p,E=g-n.offset,z=n.length;for(wb?(k=$[L+d[R]],D[F+d[R]]):(k=96,0),h=1<>j)+(p-=h)]=w<<24|k<<16|y|0,0!==p;);for(h=1<>=1;if(0!==h?(O&=h-1,O+=h):O=0,R++,0==--P[x]){if(x===z)break;x=t[n+d[R]]}if(E>>7)]}function $(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function L(e,t,n){e.bi_valid>m-n?(e.bi_buf|=t<>m-e.bi_valid,e.bi_valid+=n-m):(e.bi_buf|=t<>>=1,n<<=1,0<--t;);return n>>>1}function N(e,t,n){var r,i,a=new Array(p+1),o=0;for(r=1;r<=p;r++)a[r]=o=o+n[r-1]<<1;for(i=0;i<=t;i++){var s=e[2*i+1];0!==s&&(e[2*i]=M(a[s]++,s))}}function U(e){var t;for(t=0;t>1;1<=n;n--)Z(e,a,n);for(i=l;n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Z(e,a,1),r=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=r,a[2*i]=a[2*n]+a[2*r],e.depth[i]=(e.depth[n]>=e.depth[r]?e.depth[n]:e.depth[r])+1,a[2*n+1]=a[2*r+1]=i,e.heap[1]=i++,Z(e,a,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var n,r,i,a,o,s,l=t.dyn_tree,u=t.max_code,c=t.stat_desc.static_tree,d=t.stat_desc.has_stree,f=t.stat_desc.extra_bits,m=t.stat_desc.extra_base,v=t.stat_desc.max_length,g=0;for(a=0;a<=p;a++)e.bl_count[a]=0;for(l[2*e.heap[e.heap_max]+1]=0,n=e.heap_max+1;n>=7;r>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return i;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return a;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=o&&(o=s)):o=s=n+5,n+4<=o&&-1!==t?Y(e,t,n,r):4===e.strategy||s===o?(L(e,2+(r?1:0),3),H(e,S,z)):(L(e,4+(r?1:0),3),function(e,t,n,r){var i;for(L(e,t-257,5),L(e,n-1,5),L(e,r-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(A[n]+u+1)]++,e.dyn_dtree[2*T(t)]++),e.last_lit===e.lit_bufsize-1},n._tr_align=function(e){L(e,2,3),B(e,g,S),function(e){16===e.bi_valid?($(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{"../utils/common":41}],53:[function(e,t,n){"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(e,t){"use strict";if(!e.setImmediate){var n,r,i,a,o=1,s={},l=!1,u=e.document,c=Object.getPrototypeOf&&Object.getPrototypeOf(e);c=c&&c.setTimeout?c:e,n="[object process]"==={}.toString.call(e.process)?function(e){process.nextTick((function(){f(e)}))}:function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?(a="setImmediate$"+Math.random()+"$",e.addEventListener?e.addEventListener("message",h,!1):e.attachEvent("onmessage",h),function(t){e.postMessage(a+t,"*")}):e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){f(e.data)},function(e){i.port2.postMessage(e)}):u&&"onreadystatechange"in u.createElement("script")?(r=u.documentElement,function(e){var t=u.createElement("script");t.onreadystatechange=function(){f(e),t.onreadystatechange=null,r.removeChild(t),t=null},r.appendChild(t)}):function(e){setTimeout(f,0,e)},c.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r{"use strict";e.exports=n.p+"dce2c4b91f5b7ef43cf0.wasm"},878:(e,t,n)=>{"use strict";e.exports=n.p+"8988d11439726031fb0c.wasm"}},r={};function i(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={id:e,loaded:!1,exports:{}};return n[e](a,a.exports,i),a.loaded=!0,a.exports}i.m=n,i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,n)=>(i.f[n](e,t),t)),[])),i.u=e=>"core.ruffle."+{159:"7b401a0204b092cdbb42",339:"671e8308f154108396e3"}[e]+".js",i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="ruffle-selfhosted:",i.l=(n,r,a,o)=>{if(e[n])e[n].push(r);else{var s,l;if(void 0!==a)for(var u=document.getElementsByTagName("script"),c=0;c{s.onerror=s.onload=null,clearTimeout(h);var i=e[n];if(delete e[n],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(r))),t)return t(r)},h=setTimeout(f.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=f.bind(null,s.onerror),s.onload=f.bind(null,s.onload),l&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="",(()=>{i.b=document.baseURI||self.location.href;var e={179:0};i.f.j=(t,n)=>{var r=i.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var a=new Promise(((n,i)=>r=e[t]=[n,i]));n.push(r[2]=a);var o=i.p+i.u(t),s=new Error;i.l(o,(n=>{if(i.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var a=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;s.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",s.name="ChunkLoadError",s.type=a,s.request=o,r[1](s)}}),"chunk-"+t,t)}};var t=(t,n)=>{var r,a,[o,s,l]=n,u=0;if(o.some((t=>0!==e[t]))){for(r in s)i.o(s,r)&&(i.m[r]=s[r]);if(l)l(i)}for(t&&t(n);u{"use strict";class e{constructor(e,t,n,r,i){this.major=e,this.minor=t,this.patch=n,this.prIdent=r,this.buildIdent=i}static fromSemver(t){const n=t.split("+"),r=n[0].split("-"),i=r[0].split("."),a=parseInt(i[0],10);let o=0,s=0,l=null,u=null;return void 0!==i[1]&&(o=parseInt(i[1],10)),void 0!==i[2]&&(s=parseInt(i[2],10)),void 0!==r[1]&&(l=r[1].split(".")),void 0!==n[1]&&(u=n[1].split(".")),new e(a,o,s,l,u)}isCompatibleWith(e){return 0!==this.major&&this.major===e.major||0===this.major&&0===e.major&&0!==this.minor&&this.minor===e.minor||0===this.major&&0===e.major&&0===this.minor&&0===e.minor&&0!==this.patch&&this.patch===e.patch}hasPrecedenceOver(e){if(this.major>e.major)return!0;if(this.majore.minor)return!0;if(this.minore.patch)return!0;if(this.patchparseInt(e.prIdent[n],10))return!0;if(parseInt(this.prIdent[n],10)e.prIdent[n])return!0;if(this.prIdent[n]e.prIdent.length}return!1}isEqual(e){return this.major===e.major&&this.minor===e.minor&&this.patch===e.patch}isStableOrCompatiblePrerelease(e){return null===e.prIdent||this.major===e.major&&this.minor===e.minor&&this.patch===e.patch}}class t{constructor(e){this.requirements=e}satisfiedBy(e){for(const t of this.requirements){let n=!0;for(const{comparator:r,version:i}of t)n=n&&i.isStableOrCompatiblePrerelease(e),""===r||"="===r?n=n&&i.isEqual(e):">"===r?n=n&&e.hasPrecedenceOver(i):">="===r?n=n&&(e.hasPrecedenceOver(i)||i.isEqual(e)):"<"===r?n=n&&i.hasPrecedenceOver(e):"<="===r?n=n&&(i.hasPrecedenceOver(e)||i.isEqual(e)):"^"===r&&(n=n&&i.isCompatibleWith(e));if(n)return!0}return!1}static fromRequirementString(n){const r=n.split(" ");let i=[];const a=[];for(const t of r)if("||"===t)i.length>0&&(a.push(i),i=[]);else if(t.length>0){const n=/[0-9]/.exec(t);if(n){const r=t.slice(0,n.index).trim(),a=e.fromSemver(t.slice(n.index).trim());i.push({comparator:r,version:a})}}return i.length>0&&a.push(i),new t(a)}}const n=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,3,1,0,1,10,14,1,12,0,65,0,65,0,65,0,252,10,0,0,11])),r=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,7,1,5,0,208,112,26,11])),a=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,12,1,10,0,67,0,0,0,0,252,0,26,11])),o=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,65,0,192,26,11])),s=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]));function l(e){const t="function"==typeof Function.prototype.toString?Function.prototype.toString():null;return"string"==typeof t&&t.indexOf("[native code]")>=0&&Function.prototype.toString.call(e).indexOf("[native code]")>=0}function u(){"function"==typeof Array.prototype.reduce&&l(Array.prototype.reduce)||Object.defineProperty(Array.prototype,"reduce",{value(...e){if(0===e.length&&window.Prototype&&window.Prototype.Version&&window.Prototype.Version<"1.6.1")return this.length>1?this:this[0];const t=e[0];if(null===this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof t)throw new TypeError(`${t} is not a function`);const n=Object(this),r=n.length>>>0;let i,a=0;if(e.length>=2)i=e[1];else{for(;a=r)throw new TypeError("Reduce of empty array with no initial value");i=n[a++]}for(;ae[t]}),"function"!=typeof Reflect.set&&Object.defineProperty(Reflect,"set",{value(e,t,n){e[t]=n}}),"function"!=typeof Reflect.has&&Object.defineProperty(Reflect,"has",{value:(e,t)=>t in e}),"function"!=typeof Reflect.ownKeys&&Object.defineProperty(Reflect,"ownKeys",{value:e=>[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)]})}let c="";try{if(void 0!==document.currentScript&&null!==document.currentScript&&"src"in document.currentScript&&""!==document.currentScript.src){let e=document.currentScript.src;e.endsWith(".js")||e.endsWith("/")||(e+="/"),c=new URL(".",e).href}}catch(e){console.warn("Unable to get currentScript URL")}function d(e){let t=c;return"publicPath"in e&&null!==e.publicPath&&void 0!==e.publicPath&&(t=e.publicPath),""===t||t.endsWith("/")||(t+="/"),t}let f=null;function h(e,t){return null===f&&(f=async function(e,t){var l;u();const c=(await Promise.all([n(),s(),a(),o(),r()])).every(Boolean);c||console.log("Some WebAssembly extensions are NOT available, falling back to the vanilla WebAssembly module"),i.p=d(e);const{default:f,Ruffle:h}=await(c?i.e(339).then(i.bind(i,339)):i.e(159).then(i.bind(i,159)));let p;const m=c?new URL(i(899),i.b):new URL(i(878),i.b),v=await fetch(m);if(t){const e=(null===(l=null==v?void 0:v.headers)||void 0===l?void 0:l.get("content-length"))||"";let n=0;const r=parseInt(e);p=new Response(new ReadableStream({async start(e){var i;const a=null===(i=v.body)||void 0===i?void 0:i.getReader();if(!a)throw"Response had no body";for(t(n,r);;){const{done:i,value:o}=await a.read();if(i)break;(null==o?void 0:o.byteLength)&&(n+=null==o?void 0:o.byteLength),e.enqueue(o),t(n,r)}e.close()}}),v)}else p=v;return await f(p),h}(e,t)),f}const p=document.createElement("template");p.innerHTML='\n \n \n\n
\n
\n
\n \n
\n\n \n\n \n\n \n';const m={};function v(e,t){const n=m[e];if(void 0!==n){if(n.class!==t)throw new Error("Internal naming conflict on "+e);return n.name}let r=0;if(void 0!==window.customElements)for(;r<999;){let n=e;if(r>0&&(n=n+"-"+r),void 0===window.customElements.get(n))return window.customElements.define(n,t),m[e]={class:t,name:n,internalName:e},n;r+=1}throw new Error("Failed to assign custom element "+e)}const g={allowScriptAccess:!1,parameters:{},autoplay:"auto",backgroundColor:null,letterbox:"fullscreen",unmuteOverlay:"visible",upgradeToHttps:!0,compatibilityRules:!0,warnOnUnsupportedContent:!0,logLevel:"error",showSwfDownload:!1,contextMenu:"on",preloader:!0,splashScreen:!0,maxExecutionDuration:15,base:null,menu:!0,salign:"",quality:"high",scale:"showAll",forceScale:!1,frameRate:null,wmode:"opaque",publicPath:null,polyfills:!0,playerVersion:null,preferredRenderer:null,openUrlMode:"allow",allowNetworking:"all"},b="application/x-shockwave-flash",w="application/futuresplash",k="application/x-shockwave-flash2-preview",y="application/vnd.adobe.flash.movie";function _(e,t){const n=function(e){let t="";try{t=new URL(e,"https://example.com").pathname}catch(e){}if(t&&t.length>=4){const e=t.slice(-4).toLowerCase();if(".swf"===e||".spl"===e)return!0}return!1}(e);return t?function(e,t){switch(e=e.toLowerCase()){case b.toLowerCase():case w.toLowerCase():case k.toLowerCase():case y.toLowerCase():return!0;default:if(t)switch(e){case"application/octet-stream":case"binary/octet-stream":return!0}}return!1}(t,n):n}const x="0.1.0",R="nightly 2023-06-14",S="nightly",z="2023-06-14T00:19:12.105Z",E="128416cccdc34dd7d0b01d35e1f91336a5724423";class A{constructor(e){this.value=e}valueOf(){return this.value}}class j extends A{constructor(e="???"){super(e)}toString(e){return`{${this.value}}`}}class C extends A{constructor(e,t={}){super(e),this.opts=t}toString(e){try{return e.memoizeIntlObject(Intl.NumberFormat,this.opts).format(this.value)}catch(t){return e.reportError(t),this.value.toString(10)}}}class I extends A{constructor(e,t={}){super(e),this.opts=t}toString(e){try{return e.memoizeIntlObject(Intl.DateTimeFormat,this.opts).format(this.value)}catch(t){return e.reportError(t),new Date(this.value).toISOString()}}}const O=100,D="\u2068",F="\u2069";function P(e,t,n){if(n===t)return!0;if(n instanceof C&&t instanceof C&&n.value===t.value)return!0;if(t instanceof C&&"string"==typeof n){if(n===e.memoizeIntlObject(Intl.PluralRules,t.opts).select(t.value))return!0}return!1}function T(e,t,n){return t[n]?M(e,t[n].value):(e.reportError(new RangeError("No default")),new j)}function $(e,t){const n=[],r=Object.create(null);for(const i of t)"narg"===i.type?r[i.name]=L(e,i.value):n.push(L(e,i));return{positional:n,named:r}}function L(e,t){switch(t.type){case"str":return t.value;case"num":return new C(t.value,{minimumFractionDigits:t.precision});case"var":return function(e,{name:t}){let n;if(e.params){if(!Object.prototype.hasOwnProperty.call(e.params,t))return new j(`$${t}`);n=e.params[t]}else{if(!e.args||!Object.prototype.hasOwnProperty.call(e.args,t))return e.reportError(new ReferenceError(`Unknown variable: $${t}`)),new j(`$${t}`);n=e.args[t]}if(n instanceof A)return n;switch(typeof n){case"string":return n;case"number":return new C(n);case"object":if(n instanceof Date)return new I(n.getTime());default:return e.reportError(new TypeError(`Variable type not supported: $${t}, ${typeof n}`)),new j(`$${t}`)}}(e,t);case"mesg":return function(e,{name:t,attr:n}){const r=e.bundle._messages.get(t);if(!r)return e.reportError(new ReferenceError(`Unknown message: ${t}`)),new j(t);if(n){const i=r.attributes[n];return i?M(e,i):(e.reportError(new ReferenceError(`Unknown attribute: ${n}`)),new j(`${t}.${n}`))}if(r.value)return M(e,r.value);return e.reportError(new ReferenceError(`No value: ${t}`)),new j(t)}(e,t);case"term":return function(e,{name:t,attr:n,args:r}){const i=`-${t}`,a=e.bundle._terms.get(i);if(!a)return e.reportError(new ReferenceError(`Unknown term: ${i}`)),new j(i);if(n){const t=a.attributes[n];if(t){e.params=$(e,r).named;const n=M(e,t);return e.params=null,n}return e.reportError(new ReferenceError(`Unknown attribute: ${n}`)),new j(`${i}.${n}`)}e.params=$(e,r).named;const o=M(e,a.value);return e.params=null,o}(e,t);case"func":return function(e,{name:t,args:n}){let r=e.bundle._functions[t];if(!r)return e.reportError(new ReferenceError(`Unknown function: ${t}()`)),new j(`${t}()`);if("function"!=typeof r)return e.reportError(new TypeError(`Function ${t}() is not callable`)),new j(`${t}()`);try{let t=$(e,n);return r(t.positional,t.named)}catch(n){return e.reportError(n),new j(`${t}()`)}}(e,t);case"select":return function(e,{selector:t,variants:n,star:r}){let i=L(e,t);if(i instanceof j)return T(e,n,r);for(const t of n){if(P(e,i,L(e,t.key)))return M(e,t.value)}return T(e,n,r)}(e,t);default:return new j}}function B(e,t){if(e.dirty.has(t))return e.reportError(new RangeError("Cyclic reference")),new j;e.dirty.add(t);const n=[],r=e.bundle._useIsolating&&t.length>1;for(const i of t)if("string"!=typeof i){if(e.placeables++,e.placeables>O)throw e.dirty.delete(t),new RangeError(`Too many placeables expanded: ${e.placeables}, max allowed is ${O}`);r&&n.push(D),n.push(L(e,i).toString(e)),r&&n.push(F)}else n.push(e.bundle._transform(i));return e.dirty.delete(t),n.join("")}function M(e,t){return"string"==typeof t?e.bundle._transform(t):B(e,t)}class N{constructor(e,t,n){this.dirty=new WeakSet,this.params=null,this.placeables=0,this.bundle=e,this.errors=t,this.args=n}reportError(e){if(!(this.errors&&e instanceof Error))throw e;this.errors.push(e)}memoizeIntlObject(e,t){let n=this.bundle._intls.get(e);n||(n={},this.bundle._intls.set(e,n));let r=JSON.stringify(t);return n[r]||(n[r]=new e(this.bundle.locales,t)),n[r]}}function U(e,t){const n=Object.create(null);for(const[r,i]of Object.entries(e))t.includes(r)&&(n[r]=i.valueOf());return n}const W=["unitDisplay","currencyDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits"];function q(e,t){let n=e[0];if(n instanceof j)return new j(`NUMBER(${n.valueOf()})`);if(n instanceof C)return new C(n.valueOf(),{...n.opts,...U(t,W)});if(n instanceof I)return new C(n.valueOf(),{...U(t,W)});throw new TypeError("Invalid argument to NUMBER")}const Z=["dateStyle","timeStyle","fractionalSecondDigits","dayPeriod","hour12","weekday","era","year","month","day","hour","minute","second","timeZoneName"];function H(e,t){let n=e[0];if(n instanceof j)return new j(`DATETIME(${n.valueOf()})`);if(n instanceof I)return new I(n.valueOf(),{...n.opts,...U(t,Z)});if(n instanceof C)return new I(n.valueOf(),{...U(t,Z)});throw new TypeError("Invalid argument to DATETIME")}const V=new Map;class J{constructor(e,{functions:t,useIsolating:n=!0,transform:r=(e=>e)}={}){this._terms=new Map,this._messages=new Map,this.locales=Array.isArray(e)?e:[e],this._functions={NUMBER:q,DATETIME:H,...t},this._useIsolating=n,this._transform=r,this._intls=function(e){const t=Array.isArray(e)?e.join(" "):e;let n=V.get(t);return void 0===n&&(n=new Map,V.set(t,n)),n}(e)}hasMessage(e){return this._messages.has(e)}getMessage(e){return this._messages.get(e)}addResource(e,{allowOverrides:t=!1}={}){const n=[];for(let r=0;r\s*/y,ve=/\s*:\s*/y,ge=/\s*,?\s*/y,be=/\s+/y;class we{constructor(e){this.body=[],K.lastIndex=0;let t=0;for(;;){let n=K.exec(e);if(null===n)break;t=K.lastIndex;try{this.body.push(s(n[1]))}catch(e){if(e instanceof SyntaxError)continue;throw e}}function n(n){return n.lastIndex=t,n.test(e)}function r(n,r){if(e[t]===n)return t++,!0;if(r)throw new r(`Expected ${n}`);return!1}function i(e,r){if(n(e))return t=e.lastIndex,!0;if(r)throw new r(`Expected ${e.toString()}`);return!1}function a(n){n.lastIndex=t;let r=n.exec(e);if(null===r)throw new SyntaxError(`Expected ${n.toString()}`);return t=n.lastIndex,r}function o(e){return a(e)[1]}function s(e){let t=l(),r=function(){let e=Object.create(null);for(;n(G);){let t=o(G),n=l();if(null===n)throw new SyntaxError("Expected attribute value");e[t]=n}return e}();if(null===t&&0===Object.keys(r).length)throw new SyntaxError("Expected message value or attributes");return{id:e,value:t,attributes:r}}function l(){let r;if(n(ne)&&(r=o(ne)),"{"===e[t]||"}"===e[t])return u(r?[r]:[],1/0);let i=g();return i?r?u([r,i],i.length):(i.value=b(i.value,oe),u([i],i.length)):r?b(r,se):null}function u(r=[],i){for(;;){if(n(ne)){r.push(o(ne));continue}if("{"===e[t]){r.push(c());continue}if("}"===e[t])throw new SyntaxError("Unbalanced closing brace");let a=g();if(!a)break;r.push(a),i=Math.min(i,a.length)}let a=r.length-1,s=r[a];"string"==typeof s&&(r[a]=b(s,se));let l=[];for(let e of r)e instanceof ke&&(e=e.value.slice(0,e.value.length-i)),e&&l.push(e);return l}function c(){i(ce,SyntaxError);let e=d();if(i(de))return e;if(i(me)){let t=function(){let e,t=[],i=0;for(;n(Y);){r("*")&&(e=i);let n=h(),a=l();if(null===a)throw new SyntaxError("Expected variant value");t[i++]={key:n,value:a}}if(0===i)return null;if(void 0===e)throw new SyntaxError("Expected default variant");return{variants:t,star:e}}();return i(de,SyntaxError),{type:"select",selector:e,...t}}throw new SyntaxError("Unclosed placeable")}function d(){if("{"===e[t])return c();if(n(ee)){let[,n,r,o=null]=a(ee);if("$"===n)return{type:"var",name:r};if(i(pe)){let a=function(){let n=[];for(;;){switch(e[t]){case")":return t++,n;case void 0:throw new SyntaxError("Unclosed argument list")}n.push(f()),i(ge)}}();if("-"===n)return{type:"term",name:r,attr:o,args:a};if(te.test(r))return{type:"func",name:r,args:a};throw new SyntaxError("Function names must be all upper-case")}return"-"===n?{type:"term",name:r,attr:o,args:[]}:{type:"mesg",name:r,attr:o}}return p()}function f(){let e=d();return"mesg"!==e.type?e:i(ve)?{type:"narg",name:e.name,value:p()}:e}function h(){let e;return i(fe,SyntaxError),e=n(X)?m():{type:"str",value:o(Q)},i(he,SyntaxError),e}function p(){if(n(X))return m();if('"'===e[t])return function(){r('"',SyntaxError);let n="";for(;;){if(n+=o(re),"\\"!==e[t]){if(r('"'))return{type:"str",value:n};throw new SyntaxError("Unclosed string literal")}n+=v()}}();throw new SyntaxError("Invalid expression")}function m(){let[,e,t=""]=a(X),n=t.length;return{type:"num",value:parseFloat(e),precision:n}}function v(){if(n(ie))return o(ie);if(n(ae)){let[,e,t]=a(ae),n=parseInt(e||t,16);return n<=55295||57344<=n?String.fromCodePoint(n):"\ufffd"}throw new SyntaxError("Unknown escape sequence")}function g(){let n=t;switch(i(be),e[t]){case".":case"[":case"*":case"}":case void 0:return!1;case"{":return w(e.slice(n,t))}return" "===e[t-1]&&w(e.slice(n,t))}function b(e,t){return e.replace(t,"")}function w(e){let t=e.replace(le,"\n"),n=ue.exec(e)[1].length;return new ke(t,n)}}}class ke{constructor(e,t){this.value=e,this.length=t}}const ye=new RegExp("^([a-z]{2,3}|\\*)(?:-([a-z]{4}|\\*))?(?:-([a-z]{2}|\\*))?(?:-(([0-9][a-z0-9]{3}|[a-z0-9]{5,8})|\\*))?$","i");class _e{constructor(e){const t=ye.exec(e.replace(/_/g,"-"));if(!t)return void(this.isWellFormed=!1);let[,n,r,i,a]=t;n&&(this.language=n.toLowerCase()),r&&(this.script=r[0].toUpperCase()+r.slice(1)),i&&(this.region=i.toUpperCase()),this.variant=a,this.isWellFormed=!0}isEqual(e){return this.language===e.language&&this.script===e.script&&this.region===e.region&&this.variant===e.variant}matches(e,t=!1,n=!1){return(this.language===e.language||t&&void 0===this.language||n&&void 0===e.language)&&(this.script===e.script||t&&void 0===this.script||n&&void 0===e.script)&&(this.region===e.region||t&&void 0===this.region||n&&void 0===e.region)&&(this.variant===e.variant||t&&void 0===this.variant||n&&void 0===e.variant)}toString(){return[this.language,this.script,this.region,this.variant].filter((e=>void 0!==e)).join("-")}clearVariants(){this.variant=void 0}clearRegion(){this.region=void 0}addLikelySubtags(){const e=function(e){if(Object.prototype.hasOwnProperty.call(xe,e))return new _e(xe[e]);const t=new _e(e);if(t.language&&Re.includes(t.language))return t.region=t.language.toUpperCase(),t;return null}(this.toString().toLowerCase());return!!e&&(this.language=e.language,this.script=e.script,this.region=e.region,this.variant=e.variant,!0)}}const xe={ar:"ar-arab-eg","az-arab":"az-arab-ir","az-ir":"az-arab-ir",be:"be-cyrl-by",da:"da-latn-dk",el:"el-grek-gr",en:"en-latn-us",fa:"fa-arab-ir",ja:"ja-jpan-jp",ko:"ko-kore-kr",pt:"pt-latn-br",sr:"sr-cyrl-rs","sr-ru":"sr-latn-ru",sv:"sv-latn-se",ta:"ta-taml-in",uk:"uk-cyrl-ua",zh:"zh-hans-cn","zh-hant":"zh-hant-tw","zh-hk":"zh-hant-hk","zh-mo":"zh-hant-mo","zh-tw":"zh-hant-tw","zh-gb":"zh-hant-gb","zh-us":"zh-hant-us"},Re=["az","bg","cs","de","es","fi","fr","hu","it","lt","lv","nl","pl","ro","ru"];function Se(e,t,{strategy:n="filtering",defaultLocale:r}={}){const i=function(e,t,n){const r=new Set,i=new Map;for(let e of t)new _e(e).isWellFormed&&i.set(e,new _e(e));e:for(const t of e){const e=t.toLowerCase(),a=new _e(e);if(void 0!==a.language){for(const t of i.keys())if(e===t.toLowerCase()){if(r.add(t),i.delete(t),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}for(const[e,t]of i.entries())if(t.matches(a,!0,!1)){if(r.add(e),i.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}if(a.addLikelySubtags())for(const[e,t]of i.entries())if(t.matches(a,!0,!1)){if(r.add(e),i.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}a.clearVariants();for(const[e,t]of i.entries())if(t.matches(a,!0,!0)){if(r.add(e),i.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}if(a.clearRegion(),a.addLikelySubtags())for(const[e,t]of i.entries())if(t.matches(a,!0,!1)){if(r.add(e),i.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}a.clearRegion();for(const[e,t]of i.entries())if(t.matches(a,!0,!0)){if(r.add(e),i.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}}}return Array.from(r)}(Array.from(null!=e?e:[]).map(String),Array.from(null!=t?t:[]).map(String),n);if("lookup"===n){if(void 0===r)throw new Error("defaultLocale cannot be undefined for strategy `lookup`");0===i.length&&i.push(r)}else r&&!i.includes(r)&&i.push(r);return i}const ze={"ar-SA":{"context_menu.ftl":"context-menu-download-swf = \u062a\u062d\u0645\u064a\u0644 .swf\ncontext-menu-copy-debug-info = \u0646\u0633\u062e \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u062a\u0635\u062d\u064a\u062d\ncontext-menu-open-save-manager = \u0641\u062a\u062d \u0645\u062f\u064a\u0631 \u0627\u0644\u062d\u0641\u0638\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] \u062d\u0648\u0644 \u0645\u0644\u062d\u0642 \u0631\u0641\u0644 ({ $version })\n *[other] \u062d\u0648\u0644 \u0631\u0641\u0644 ({ $version })\n }\ncontext-menu-hide = \u0625\u062e\u0641\u0627\u0621 \u0647\u0630\u0647 \u0627\u0644\u0642\u0627\u0626\u0645\u0629\ncontext-menu-exit-fullscreen = \u0627\u0644\u062e\u0631\u0648\u062c \u0645\u0646 \u0648\u0636\u0639\u064a\u0629 \u0627\u0644\u0634\u0627\u0634\u0629 \u0627\u0644\u0643\u0627\u0645\u0644\u0629\ncontext-menu-enter-fullscreen = \u062a\u0641\u0639\u064a\u0644 \u0648\u0636\u0639\u064a\u0629 \u0627\u0644\u0634\u0627\u0634\u0629 \u0627\u0644\u0643\u0627\u0645\u0644\u0629\n","messages.ftl":'message-unsupported-avm2 =\n \u0642\u062f \u0644\u0627 \u064a\u062f\u0639\u0645 \u0645\u062d\u0627\u0643\u064a \u0631\u0641\u0644 \u0628\u0627\u0644\u0643\u0627\u0645\u0644 \u0643\u0644 \u0628\u0631\u0646\u0627\u0645\u062c \u0623\u0643\u0634\u0646 \u0633\u0643\u0631\u0628\u062a 3 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0645\u062d\u062a\u0648\u0649.\n \u0628\u0639\u0636 \u0623\u062c\u0632\u0627\u0621 \u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0642\u062f \u0644\u0627 \u062a\u0639\u0645\u0644 \u0643\u0645\u0627 \u0647\u0648 \u0645\u062a\u0648\u0642\u0639.\nmessage-cant-embed =\n \u0644\u0645 \u062a\u0643\u0646 \u0631\u0641\u0644 \u0642\u0627\u062f\u0631\u0629 \u0639\u0644\u0649 \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0641\u0644\u0627\u0634 \u0627\u0644\u0645\u0636\u0645\u0646\u0629 \u0641\u064a \u0647\u0630\u0647 \u0627\u0644\u0635\u0641\u062d\u0629.\n \u064a\u0645\u0643\u0646\u0643 \u0645\u062d\u0627\u0648\u0644\u0629 \u0641\u062a\u062d \u0627\u0644\u0645\u0644\u0641 \u0641\u064a \u0639\u0644\u0627\u0645\u0629 \u062a\u0628\u0648\u064a\u0628 \u0645\u0646\u0641\u0635\u0644\u0629\u060c \u0644\u062a\u062c\u0627\u0648\u0632 \u0647\u0630\u0647 \u0627\u0644\u0645\u0634\u0643\u0644\u0629.\npanic-title = \u0644\u0642\u062f \u062d\u062f\u062b \u062e\u0637\u0623 \u0645\u0627 :(\nmore-info = \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0623\u0643\u062b\u0631\nrun-anyway = \u0627\u0644\u062a\u0634\u063a\u064a\u0644 \u0639\u0644\u0649 \u0623\u064a \u062d\u0627\u0644\ncontinue = \u0627\u0644\u0627\u0633\u062a\u0645\u0631\u0627\u0631\nreport-bug = \u0625\u0628\u0644\u0627\u063a \u0639\u0646 \u062e\u0644\u0644\nupdate-ruffle = \u062a\u062d\u062f\u064a\u062b \u0631\u0641\u0644\nruffle-demo = \u0648\u064a\u0628 \u0627\u0644\u062a\u062c\u0631\u064a\u0628\u064a\nruffle-desktop = \u0628\u0631\u0646\u0627\u0645\u062c \u0633\u0637\u062d \u0627\u0644\u0645\u0643\u062a\u0628\nruffle-wiki = \u0639\u0631\u0636 \u0631\u0641\u0644 \u0648\u064a\u0643\u064a\nview-error-details = \u0639\u0631\u0636 \u062a\u0641\u0627\u0635\u064a\u0644 \u0627\u0644\u062e\u0637\u0623\nopen-in-new-tab = \u0641\u062a\u062d \u0641\u064a \u0639\u0644\u0627\u0645\u0629 \u062a\u0628\u0648\u064a\u0628 \u062c\u062f\u064a\u062f\u0629\nclick-to-unmute = \u0627\u0646\u0642\u0631 \u0644\u0625\u0644\u063a\u0627\u0621 \u0627\u0644\u0643\u062a\u0645\nerror-file-protocol =\n \u064a\u0628\u062f\u0648 \u0623\u0646\u0643 \u062a\u0642\u0648\u0645 \u0628\u062a\u0634\u063a\u064a\u0644 \u0631\u0641\u0644 \u0639\u0644\u0649 \u0628\u0631\u0648\u062a\u0648\u0643\u0648\u0644 "\u0627\u0644\u0645\u0644\u0641:".\n \u0647\u0630\u0627 \u0644\u0646 \u064a\u0639\u0645\u0644 \u0644\u0623\u0646 \u0627\u0644\u0645\u062a\u0635\u0641\u062d\u0627\u062a \u062a\u0645\u0646\u0639 \u0627\u0644\u0639\u062f\u064a\u062f \u0645\u0646 \u0627\u0644\u0645\u064a\u0632\u0627\u062a \u0645\u0646 \u0627\u0644\u0639\u0645\u0644 \u0644\u0623\u0633\u0628\u0627\u0628 \u0623\u0645\u0646\u064a\u0629.\n \u0628\u062f\u0644\u0627\u064b \u0645\u0646 \u0630\u0644\u0643\u060c \u0646\u062f\u0639\u0648\u0643 \u0625\u0644\u0649 \u0625\u0639\u062f\u0627\u062f \u062e\u0627\u062f\u0645 \u0645\u062d\u0644\u064a \u0623\u0648 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0639\u0631\u0636 \u0627\u0644\u0648\u064a\u0628 \u0623\u0648 \u062a\u0637\u0628\u064a\u0642 \u0633\u0637\u062d \u0627\u0644\u0645\u0643\u062a\u0628.\nerror-javascript-config =\n \u062a\u0639\u0631\u0636 \u0631\u0641\u0644 \u0625\u0644\u0649 \u0645\u0634\u0643\u0644\u0629 \u0631\u0626\u064a\u0633\u064a\u0629 \u0628\u0633\u0628\u0628 \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u062e\u0627\u0637\u0626\u0629 \u0644\u0644\u062c\u0627\u0641\u0627 \u0633\u0643\u0631\u064a\u0628\u062a.\n \u0625\u0630\u0627 \u0643\u0646\u062a \u0645\u0633\u0624\u0648\u0644 \u0627\u0644\u062e\u0627\u062f\u0645\u060c \u0646\u062d\u0646 \u0646\u062f\u0639\u0648\u0643 \u0625\u0644\u0649 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u062a\u0641\u0627\u0635\u064a\u0644 \u0627\u0644\u062e\u0637\u0623 \u0644\u0645\u0639\u0631\u0641\u0629 \u0633\u0628\u0628 \u0627\u0644\u0645\u0634\u0643\u0644\u0629.\n \u064a\u0645\u0643\u0646\u0643 \u0623\u064a\u0636\u0627 \u0627\u0644\u0631\u062c\u0648\u0639 \u0625\u0644\u0649 \u0631\u0641\u0644 \u0648\u064a\u0643\u064a \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u0645\u0633\u0627\u0639\u062f\u0629.\nerror-wasm-not-found =\n \u0641\u0634\u0644 \u0631\u0641\u0644 \u0641\u064a \u062a\u062d\u0645\u064a\u0644 \u0645\u0643\u0648\u0646 \u0627\u0644\u0645\u0644\u0641 ".wasm" \u0627\u0644\u0645\u0637\u0644\u0648\u0628.\n \u0625\u0630\u0627 \u0643\u0646\u062a \u0645\u0633\u0624\u0648\u0644 \u0627\u0644\u062e\u0627\u062f\u0645\u060c \u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646 \u0627\u0644\u0645\u0644\u0641 \u0642\u062f \u062a\u0645 \u062a\u062d\u0645\u064a\u0644\u0647 \u0628\u0634\u0643\u0644 \u0635\u062d\u064a\u062d.\n \u0625\u0630\u0627 \u0627\u0633\u062a\u0645\u0631\u062a \u0627\u0644\u0645\u0634\u0643\u0644\u0629\u060c \u0642\u062f \u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0625\u0639\u062f\u0627\u062f\u0627\u062a "\u0627\u0644\u0645\u0633\u0627\u0631 \u0627\u0644\u0639\u0627\u0645": \u0627\u0644\u0631\u062c\u0627\u0621 \u0645\u0631\u0627\u062c\u0639\u0629 \u0631\u0641\u0644 \u0648\u064a\u0643\u064a \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u0645\u0633\u0627\u0639\u062f\u0629.\nerror-wasm-mime-type =\n \u0648\u0627\u062c\u0647\u062a \u0631\u0641\u0644 \u0645\u0634\u0643\u0644\u0629 \u0631\u0626\u064a\u0633\u064a\u0629 \u0623\u062b\u0646\u0627\u0621 \u0645\u062d\u0627\u0648\u0644\u0629 \u0627\u0644\u062a\u0647\u064a\u0626\u0629.\n \u062e\u0627\u062f\u0645 \u0627\u0644\u0648\u064a\u0628 \u0647\u0630\u0627 \u0644\u0627 \u064a\u062e\u062f\u0645 \u0645\u0644\u0641\u0627\u062a ". wasm" \u0645\u0639 \u0646\u0648\u0639 MIME \u0627\u0644\u0635\u062d\u064a\u062d.\n \u0625\u0630\u0627 \u0643\u0646\u062a \u0645\u0633\u0624\u0648\u0644 \u0627\u0644\u062e\u0627\u062f\u0645\u060c \u064a\u0631\u062c\u0649 \u0645\u0631\u0627\u062c\u0639\u0629 \u0631\u0641\u0644 \u0648\u064a\u0643\u064a \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u0645\u0633\u0627\u0639\u062f\u0629.\nerror-swf-fetch =\n \u0641\u0634\u0644 \u0631\u0641\u0644 \u0641\u064a \u062a\u062d\u0645\u064a\u0644 \u0645\u0644\u0641 \u0641\u0644\u0627\u0634 SWF.\n \u0627\u0644\u0633\u0628\u0628 \u0627\u0644\u0623\u0643\u062b\u0631 \u0627\u062d\u062a\u0645\u0627\u0644\u0627 \u0647\u0648 \u0623\u0646 \u0627\u0644\u0645\u0644\u0641 \u0644\u0645 \u064a\u0639\u062f \u0645\u0648\u062c\u0648\u062f\u0627\u060c \u0644\u0630\u0644\u0643 \u0644\u0627 \u064a\u0648\u062c\u062f \u0634\u064a\u0621 \u0644\u064a\u062d\u0645\u0644\u0647 \u0631\u0641\u0644.\n \u062d\u0627\u0648\u0644 \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0628\u0645\u0633\u0624\u0648\u0644 \u0627\u0644\u0645\u0648\u0642\u0639 \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u0645\u0633\u0627\u0639\u062f\u0629.\nerror-swf-cors =\n \u0641\u0634\u0644 \u0627\u0644\u0631\u0648\u0641\u0644 \u0641\u064a \u062a\u062d\u0645\u064a\u0644 \u0645\u0644\u0641 \u0641\u0644\u0627\u0634 SWF.\n \u0645\u0646 \u0627\u0644\u0645\u062d\u062a\u0645\u0644 \u0623\u0646 \u062a\u0645 \u062d\u0638\u0631 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u0645\u0646\u0627\u0644 \u0628\u0648\u0627\u0633\u0637\u0629 \u0633\u064a\u0627\u0633\u0629 CORS.\n \u0625\u0630\u0627 \u0643\u0646\u062a \u0645\u0633\u0624\u0648\u0644 \u0627\u0644\u062e\u0627\u062f\u0645\u060c \u064a\u0631\u062c\u0649 \u0645\u0631\u0627\u062c\u0639\u0629 \u0631\u0641\u0644 \u0648\u064a\u0643\u064a \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u0645\u0633\u0627\u0639\u062f\u0629.\nerror-wasm-cors =\n \u0641\u0634\u0644 \u0631\u0641\u0644 \u0641\u064a \u062a\u062d\u0645\u064a\u0644 \u0645\u0643\u0648\u0646 \u0645\u0644\u0641 ".wasm" \u0627\u0644\u0645\u0637\u0644\u0648\u0628.\n \u0645\u0646 \u0627\u0644\u0645\u062d\u062a\u0645\u0644 \u0623\u0646 \u062a\u0645 \u062d\u0638\u0631 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u0645\u0646\u0627\u0644 \u0628\u0648\u0627\u0633\u0637\u0629 \u0633\u064a\u0627\u0633\u0629 CORS.\n \u0625\u0630\u0627 \u0643\u0646\u062a \u0645\u0633\u0624\u0648\u0644 \u0627\u0644\u062e\u0627\u062f\u0645\u060c \u064a\u0631\u062c\u0649 \u0645\u0631\u0627\u062c\u0639\u0629 \u0631\u0641\u0644 \u0648\u064a\u0643\u064a \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u0645\u0633\u0627\u0639\u062f\u0629.\nerror-wasm-invalid =\n \u0648\u0627\u062c\u0647\u062a \u0631\u0641\u0644 \u0645\u0634\u0643\u0644\u0629 \u0631\u0626\u064a\u0633\u064a\u0629 \u0623\u062b\u0646\u0627\u0621 \u0645\u062d\u0627\u0648\u0644\u0629 \u0627\u0644\u062a\u0647\u064a\u0626\u0629.\n \u062e\u0627\u062f\u0645 \u0627\u0644\u0648\u064a\u0628 \u0647\u0630\u0627 \u0644\u0627 \u064a\u062e\u062f\u0645 \u0645\u0644\u0641\u0627\u062a ". wasm" \u0645\u0639 \u0646\u0648\u0639 MIME \u0627\u0644\u0635\u062d\u064a\u062d.\n \u0625\u0630\u0627 \u0643\u0646\u062a \u0645\u0633\u0624\u0648\u0644 \u0627\u0644\u062e\u0627\u062f\u0645\u060c \u064a\u0631\u062c\u0649 \u0645\u0631\u0627\u062c\u0639\u0629 \u0631\u0641\u0644 \u0648\u064a\u0643\u064a \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u0645\u0633\u0627\u0639\u062f\u0629.\nerror-wasm-download =\n \u0648\u0627\u062c\u0647\u062a \u0631\u0641\u0644 \u0645\u0634\u0643\u0644\u0629 \u0631\u0626\u064a\u0633\u064a\u0629 \u0623\u062b\u0646\u0627\u0621 \u0645\u062d\u0627\u0648\u0644\u062a\u0647\u0627 \u0627\u0644\u062a\u0647\u064a\u0626\u0629.\n \u0647\u0630\u0627 \u064a\u0645\u0643\u0646 \u0623\u0646 \u064a\u062d\u0644 \u0646\u0641\u0633\u0647 \u0641\u064a \u0643\u062b\u064a\u0631 \u0645\u0646 \u0627\u0644\u0623\u062d\u064a\u0627\u0646\u060c \u0644\u0630\u0644\u0643 \u064a\u0645\u0643\u0646\u0643 \u0645\u062d\u0627\u0648\u0644\u0629 \u0625\u0639\u0627\u062f\u0629 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0635\u0641\u062d\u0629.\n \u062e\u0644\u0627\u0641 \u0630\u0644\u0643\u060c \u064a\u0631\u062c\u0649 \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0628\u0645\u062f\u064a\u0631 \u0627\u0644\u0645\u0648\u0642\u0639.\nerror-wasm-disabled-on-edge =\n \u0641\u0634\u0644 \u0631\u0641\u0644 \u0641\u064a \u062a\u062d\u0645\u064a\u0644 \u0645\u0643\u0648\u0646 \u0627\u0644\u0645\u0644\u0641 ".wasm" \u0627\u0644\u0645\u0637\u0644\u0648\u0628.\n \u0644\u0625\u0635\u0644\u0627\u062d \u0647\u0630\u0647 \u0627\u0644\u0645\u0634\u0643\u0644\u0629\u060c \u062d\u0627\u0648\u0644 \u0641\u062a\u062d \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u0645\u062a\u0635\u0641\u062d \u0627\u0644\u062e\u0627\u0635 \u0628\u0643\u060c \u0627\u0646\u0642\u0631 \u0641\u0648\u0642 "\u0627\u0644\u062e\u0635\u0648\u0635\u064a\u0629\u060c \u0627\u0644\u0628\u062d\u062b\u060c \u0627\u0644\u062e\u062f\u0645\u0627\u062a"\u060c \u0648\u0627\u0644\u062a\u0645\u0631\u064a\u0631 \u0644\u0623\u0633\u0641\u0644\u060c \u0648\u0625\u064a\u0642\u0627\u0641 "\u062a\u0639\u0632\u064a\u0632 \u0623\u0645\u0627\u0646\u0643 \u0639\u0644\u0649 \u0627\u0644\u0648\u064a\u0628".\n \u0647\u0630\u0627 \u0633\u064a\u0633\u0645\u062d \u0644\u0644\u0645\u062a\u0635\u0641\u062d \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u0628\u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0645\u0644\u0641\u0627\u062a ".wasm" \u0627\u0644\u0645\u0637\u0644\u0648\u0628\u0629.\n \u0625\u0630\u0627 \u0627\u0633\u062a\u0645\u0631\u062a \u0627\u0644\u0645\u0634\u0643\u0644\u0629\u060c \u0642\u062f \u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0645\u062a\u0635\u0641\u062d \u0623\u062e\u0631.\nerror-javascript-conflict =\n \u0648\u0627\u062c\u0647\u062a \u0631\u0641\u0644 \u0645\u0634\u0643\u0644\u0629 \u0631\u0626\u064a\u0633\u064a\u0629 \u0623\u062b\u0646\u0627\u0621 \u0645\u062d\u0627\u0648\u0644\u0629 \u0627\u0644\u062a\u0647\u064a\u0626\u0629.\n \u064a\u0628\u062f\u0648 \u0623\u0646 \u0647\u0630\u0647 \u0627\u0644\u0635\u0641\u062d\u0629 \u062a\u0633\u062a\u062e\u062f\u0645 \u0643\u0648\u062f \u062c\u0627\u0641\u0627 \u0633\u0643\u0631\u064a\u0628\u062a \u0627\u0644\u0630\u064a \u064a\u062a\u0639\u0627\u0631\u0636 \u0645\u0639 \u0631\u0641\u0644.\n \u0625\u0630\u0627 \u0643\u0646\u062a \u0645\u0633\u0624\u0648\u0644 \u0627\u0644\u062e\u0627\u062f\u0645\u060c \u0641\u0625\u0646\u0646\u0627 \u0646\u062f\u0639\u0648\u0643 \u0625\u0644\u0649 \u0645\u062d\u0627\u0648\u0644\u0629 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0645\u0644\u0641 \u0639\u0644\u0649 \u0635\u0641\u062d\u0629 \u0641\u0627\u0631\u063a\u0629.\nerror-javascript-conflict-outdated = \u064a\u0645\u0643\u0646\u0643 \u0623\u064a\u0636\u064b\u0627 \u0645\u062d\u0627\u0648\u0644\u0629 \u062a\u062d\u0645\u064a\u0644 \u0646\u0633\u062e\u0629 \u0623\u062d\u062f\u062b \u0645\u0646 \u0631\u0641\u0644 \u0627\u0644\u062a\u064a \u0642\u062f \u062a\u062d\u0644 \u0627\u0644\u0645\u0634\u0643\u0644\u0629 (\u0627\u0644\u0646\u0633\u062e\u0629 \u0627\u0644\u062d\u0627\u0644\u064a\u0629 \u0642\u062f\u064a\u0645\u0629: { $buildDate }).\nerror-csp-conflict =\n \u0648\u0627\u062c\u0647\u062a \u0631\u0641\u0644 \u0645\u0634\u0643\u0644\u0629 \u0631\u0626\u064a\u0633\u064a\u0629 \u0623\u062b\u0646\u0627\u0621 \u0645\u062d\u0627\u0648\u0644\u0629 \u0627\u0644\u062a\u0647\u064a\u0626\u0629.\n \u0644\u0627 \u062a\u0633\u0645\u062d \u0633\u064a\u0627\u0633\u0629 \u0623\u0645\u0627\u0646 \u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0644\u062e\u0627\u062f\u0645 \u0627\u0644\u0648\u064a\u0628 \u0647\u0630\u0627 \u0628\u062a\u0634\u063a\u064a\u0644 \u0645\u0643\u0648\u0646 ".wasm" \u0627\u0644\u0645\u0637\u0644\u0648\u0628.\n \u0625\u0630\u0627 \u0643\u0646\u062a \u0645\u0633\u0624\u0648\u0644 \u0627\u0644\u062e\u0627\u062f\u0645\u060c \u064a\u0631\u062c\u0649 \u0627\u0644\u0631\u062c\u0648\u0639 \u0625\u0644\u0649 \u0631\u0641\u0644 \u0648\u064a\u0643\u064a \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u0645\u0633\u0627\u0639\u062f\u0629.\nerror-unknown =\n \u0648\u0627\u062c\u0647\u062a \u0631\u0648\u0644 \u0645\u0634\u0643\u0644\u0629 \u0631\u0626\u064a\u0633\u064a\u0629 \u0623\u062b\u0646\u0627\u0621 \u0645\u062d\u0627\u0648\u0644\u0629 \u0639\u0631\u0636 \u0645\u062d\u062a\u0648\u0649 \u0627\u0644\u0641\u0644\u0627\u0634 \u0647\u0630\u0627.\n { $outdated ->\n [true] \u0625\u0630\u0627 \u0643\u0646\u062a \u0645\u0633\u0624\u0648\u0644 \u0627\u0644\u062e\u0627\u062f\u0645\u060c \u0627\u0644\u0631\u062c\u0627\u0621 \u0645\u062d\u0627\u0648\u0644\u0629 \u062a\u062d\u0645\u064a\u0644 \u0625\u0635\u062f\u0627\u0631 \u0623\u062d\u062f\u062b \u0645\u0646 \u0631\u0641\u0644 (\u0627\u0644\u0646\u0633\u062e\u0629 \u0627\u0644\u062d\u0627\u0644\u064a\u0629 \u0642\u062f\u064a\u0645\u0629: { $buildDate }).\n *[false] \u0644\u064a\u0633 \u0645\u0646 \u0627\u0644\u0645\u0641\u062a\u0631\u0636 \u0623\u0646 \u064a\u062d\u062f\u062b \u0647\u0630\u0627\u060c \u0644\u0630\u0644\u0643 \u0646\u062d\u0646 \u0646\u0642\u062f\u0631 \u062d\u0642\u064b\u0627 \u0625\u0630\u0627 \u0642\u0645\u062a \u0628\u0627\u0644\u062a\u0628\u0644\u064a\u063a \u0639\u0646 \u0627\u0644\u062e\u0637\u0623!\n }\n',"save-manager.ftl":"save-delete-prompt = \u0647\u0644 \u0623\u0646\u062a \u0645\u062a\u0623\u0643\u062f \u0623\u0646\u0643 \u062a\u0631\u064a\u062f \u062d\u0630\u0641 \u0645\u0644\u0641 \u062d\u0641\u0638 \u0627\u0644\u0644\u0639\u0628\u0629 \u0647\u0630\u0627\u061f\nsave-reload-prompt =\n \u0627\u0644\u0637\u0631\u064a\u0642\u0629 \u0627\u0644\u0648\u062d\u064a\u062f\u0629 \u0644\u0640 { $action ->\n [delete] \u062d\u0630\u0641\n *[replace] \u0627\u0633\u062a\u0628\u062f\u0627\u0644\n } \u0647\u0630\u0627 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u062d\u0641\u0638 \u062f\u0648\u0646 \u062a\u0636\u0627\u0631\u0628 \u0645\u062d\u062a\u0645\u0644 \u0647\u064a \u0625\u0639\u0627\u062f\u0629 \u062a\u062d\u0645\u064a\u0644 \u0647\u0630\u0627 \u0627\u0644\u0645\u062d\u062a\u0648\u0649. \u0647\u0644 \u062a\u0631\u063a\u0628 \u0641\u064a \u0627\u0644\u0645\u062a\u0627\u0628\u0639\u0629 \u0639\u0644\u0649 \u0623\u064a \u062d\u0627\u0644\u061f\nsave-download = \u062a\u062d\u0645\u064a\u0644\nsave-replace = \u0627\u0633\u062a\u0628\u062f\u0627\u0644\nsave-delete = \u062d\u0630\u0641\nsave-backup-all = \u062a\u062d\u0645\u064a\u0644 \u062c\u0645\u064a\u0639 \u0627\u0644\u0645\u0644\u0641\u0627\u062a \u0627\u0644\u0645\u062d\u0641\u0648\u0638\u0629\n"},"ca-ES":{"context_menu.ftl":"","messages.ftl":"","save-manager.ftl":""},"cs-CZ":{"context_menu.ftl":"context-menu-download-swf = St\xe1hnout .swf\ncontext-menu-copy-debug-info = Zkop\xedrovat debug info\ncontext-menu-open-save-manager = Otev\u0159\xedt spr\xe1vce ulo\u017een\xed\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] O Ruffle roz\u0161\xed\u0159en\xed ({ $version })\n *[other] O Ruffle ({ $version })\n }\ncontext-menu-hide = Skr\xfdt menu\ncontext-menu-exit-fullscreen = Ukon\u010dit re\u017eim cel\xe9 obrazovky\ncontext-menu-enter-fullscreen = P\u0159ej\xedt do re\u017eimu cel\xe9 obrazovky\n","messages.ftl":'message-unsupported-avm2 =\n Emul\xe1tor Ruffle je\u0161t\u011b nemus\xed pln\u011b podporovat cel\xfd jazyk ActionScript 3 pou\u017e\xedvan\xfd t\xedmto obsahem.\n N\u011bkter\xe9 \u010d\xe1sti obsahu nemus\xed fungovat spr\xe1vn\u011b.\nmessage-cant-embed =\n Ruffle nemohl spustit Flash vlo\u017een\xfd na t\xe9to str\xe1nce.\n M\u016f\u017eete se pokusit otev\u0159\xedt soubor na samostatn\xe9 kart\u011b, abyste se vyhnuli tomuto probl\xe9mu.\npanic-title = N\u011bco se pokazilo :(\nmore-info = Dal\u0161\xed informace\nrun-anyway = P\u0159esto spustit\ncontinue = Pokra\u010dovat\nreport-bug = Nahl\xe1sit chybu\nupdate-ruffle = Aktualizovat Ruffle\nruffle-demo = Web Demo\nruffle-desktop = Desktopov\xe1 aplikace\nruffle-wiki = Zobrazit Ruffle Wiki\nview-error-details = Zobrazit podrobnosti o chyb\u011b\nopen-in-new-tab = Otev\u0159\xedt na nov\xe9 kart\u011b\nclick-to-unmute = Kliknut\xedm zru\u0161\xedte ztlumen\xed\nerror-file-protocol =\n Zd\xe1 se, \u017ee pou\u017e\xedv\xe1te Ruffle na protokolu "file:".\n To nen\xed mo\u017en\xe9, proto\u017ee prohl\xed\u017ee\u010de blokuj\xed fungov\xe1n\xed mnoha funkc\xed z bezpe\u010dnostn\xedch d\u016fvod\u016f.\n Nam\xedsto toho v\xe1m doporu\u010dujeme nastavit lok\xe1ln\xed server nebo pou\u017e\xedt web demo \u010di desktopovou aplikaci.\nerror-javascript-config =\n Ruffle narazil na probl\xe9m v d\u016fsledku nespr\xe1vn\xe9 konfigurace JavaScriptu.\n Pokud jste spr\xe1vcem serveru, doporu\u010dujeme v\xe1m zkontrolovat podrobnosti o chyb\u011b, abyste zjistili, kter\xfd parametr je vadn\xfd.\n Pomoc m\u016f\u017eete z\xedskat tak\xe9 na wiki Ruffle.\nerror-wasm-not-found =\n Ruffle se nepoda\u0159ilo na\u010d\xedst po\u017eadovanou komponentu souboru \u201e.wasm\u201c.\n Pokud jste spr\xe1vcem serveru, zkontrolujte, zda byl soubor spr\xe1vn\u011b nahr\xe1n.\n Pokud probl\xe9m p\u0159etrv\xe1v\xe1, mo\u017en\xe1 budete muset pou\u017e\xedt nastaven\xed \u201epublicPath\u201c: pomoc naleznete na wiki Ruffle.\nerror-wasm-mime-type =\n Ruffle narazil na probl\xe9m p\u0159i pokusu o inicializaci.\n Tento webov\xfd server neposkytuje soubory \u201e.wasm\u201c se spr\xe1vn\xfdm typem MIME.\n Pokud jste spr\xe1vcem serveru, n\xe1pov\u011bdu najdete na Ruffle wiki.\nerror-swf-fetch =\n Ruffle se nepoda\u0159ilo na\u010d\xedst SWF soubor Flash.\n Nejpravd\u011bpodobn\u011bj\u0161\xedm d\u016fvodem je, \u017ee soubor ji\u017e neexistuje, tak\u017ee Ruffle nem\xe1 co na\u010d\xedst.\n Zkuste po\u017e\xe1dat o pomoc spr\xe1vce webu.\nerror-swf-cors =\n Ruffle se nepoda\u0159ilo na\u010d\xedst SWF soubor Flash.\n P\u0159\xedstup k na\u010d\xedt\xe1n\xed byl pravd\u011bpodobn\u011b zablokov\xe1n politikou CORS.\n Pokud jste spr\xe1vcem serveru, n\xe1pov\u011bdu najdete na Ruffle wiki.\nerror-wasm-cors =\n Ruffle se nepoda\u0159ilo na\u010d\xedst po\u017eadovanou komponentu souboru \u201e.wasm\u201c.\n P\u0159\xedstup k na\u010d\xedt\xe1n\xed byl pravd\u011bpodobn\u011b zablokov\xe1n politikou CORS.\n Pokud jste spr\xe1vcem serveru, n\xe1pov\u011bdu najdete na Ruffle wiki.\nerror-wasm-invalid =\n Ruffle narazil na probl\xe9m p\u0159i pokusu o inicializaci.\n Zd\xe1 se, \u017ee na t\xe9to str\xe1nce chyb\xed nebo jsou neplatn\xe9 soubory ke spu\u0161t\u011bn\xed Ruffle.\n Pokud jste spr\xe1vcem serveru, n\xe1pov\u011bdu najdete na Ruffle wiki.\nerror-wasm-download =\n Ruffle narazil na probl\xe9m p\u0159i pokusu o inicializaci.\n Probl\xe9m se m\u016f\u017ee vy\u0159e\u0161it i s\xe1m, tak\u017ee m\u016f\u017eete zkusit str\xe1nku na\u010d\xedst znovu.\n V opa\u010dn\xe9m p\u0159\xedpad\u011b kontaktujte administr\xe1tora str\xe1nky.\nerror-wasm-disabled-on-edge =\n Ruffle se nepoda\u0159ilo na\u010d\xedst po\u017eadovanou komponentu souboru \u201e.wasm\u201c.\n Chcete-li tento probl\xe9m vy\u0159e\u0161it, zkuste otev\u0159\xedt nastaven\xed prohl\xed\u017ee\u010de, klikn\u011bte na polo\u017eku \u201eOchrana osobn\xedch \xfadaj\u016f, vyhled\xe1v\xe1n\xed a slu\u017eby\u201c, p\u0159ejd\u011bte dol\u016f a vypn\u011bte mo\u017enost \u201eZvy\u0161te svou bezpe\u010dnost na webu\u201c.\n Va\u0161emu prohl\xed\u017ee\u010di to umo\u017en\xed na\u010d\xedst po\u017eadovan\xe9 soubory \u201e.wasm\u201c.\n Pokud probl\xe9m p\u0159etrv\xe1v\xe1, budete mo\u017en\xe1 muset pou\u017e\xedt jin\xfd prohl\xed\u017ee\u010d.\nerror-javascript-conflict =\n Ruffle narazil na probl\xe9m p\u0159i pokusu o inicializaci.\n Zd\xe1 se, \u017ee tato str\xe1nka pou\u017e\xedv\xe1 k\xf3d JavaScript, kter\xfd je v konfliktu s Ruffle.\n Pokud jste spr\xe1vcem serveru, doporu\u010dujeme v\xe1m zkusit na\u010d\xedst soubor na pr\xe1zdnou str\xe1nku.\nerror-javascript-conflict-outdated = M\u016f\u017eete se tak\xe9 pokusit nahr\xe1t nov\u011bj\u0161\xed verzi Ruffle, kter\xe1 m\u016f\u017ee dan\xfd probl\xe9m vy\u0159e\u0161it (aktu\xe1ln\xed build je zastaral\xfd: { $buildDate }).\nerror-csp-conflict =\n Ruffle narazil na probl\xe9m p\u0159i pokusu o inicializaci.\n Z\xe1sady zabezpe\u010den\xed obsahu tohoto webov\xe9ho serveru nepovoluj\xed spu\u0161t\u011bn\xed po\u017eadovan\xe9 komponenty \u201e.wasm\u201c.\n Pokud jste spr\xe1vcem serveru, n\xe1pov\u011bdu najdete na Ruffle wiki.\nerror-unknown =\n Ruffle narazil na probl\xe9m p\u0159i pokusu zobrazit tento Flash obsah.\n { $outdated ->\n [true] Pokud jste spr\xe1vcem serveru, zkuste nahr\xe1t nov\u011bj\u0161\xed verzi Ruffle (aktu\xe1ln\xed build je zastaral\xfd: { $buildDate }).\n *[false] Toto by se nem\u011blo st\xe1t, tak\u017ee bychom opravdu ocenili, kdybyste mohli nahl\xe1sit chybu!\n }\n',"save-manager.ftl":"save-delete-prompt = Opravdu chcete odstranit tento soubor s ulo\u017een\xfdmi pozicemi?\nsave-reload-prompt =\n Jedin\xfd zp\u016fsob, jak { $action ->\n [delete] vymazat\n *[replace] nahradit\n } tento soubor s ulo\u017een\xfdmi pozicemi bez potenci\xe1ln\xedho konfliktu je op\u011btovn\xe9 na\u010dten\xed tohoto obsahu. Chcete p\u0159esto pokra\u010dovat?\nsave-download = St\xe1hnout\nsave-replace = Nahradit\nsave-delete = Vymazat\nsave-backup-all = St\xe1hnout v\u0161echny soubory s ulo\u017een\xfdmi pozicemi\n"},"de-DE":{"context_menu.ftl":"context-menu-download-swf = .swf herunterladen\ncontext-menu-copy-debug-info = Debug-Info kopieren\ncontext-menu-open-save-manager = Dateimanager \xf6ffnen\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] \xdcber Ruffle Erweiterung ({ $version })\n *[other] \xdcber Ruffle ({ $version })\n }\ncontext-menu-hide = Men\xfc ausblenden\ncontext-menu-exit-fullscreen = Vollbild verlassen\ncontext-menu-enter-fullscreen = Vollbildmodus aktivieren\n","messages.ftl":'message-unsupported-avm2 =\n Der Ruffle-Emulator unterst\xfctzt m\xf6glicherweise noch nicht alle ActionScript 3, die von diesem Inhalt verwendet werden.\n Einige Teile des Inhalts funktionieren m\xf6glicherweise nicht wie erwartet.\nmessage-cant-embed =\n Ruffle konnte den Flash in dieser Seite nicht ausf\xfchren.\n Du kannst versuchen, die Datei in einem separaten Tab zu \xf6ffnen, um dieses Problem zu umgehen.\npanic-title = Etwas ist schief gelaufen\nmore-info = Weitere Informationen\nrun-anyway = Trotzdem ausf\xfchren\ncontinue = Fortfahren\nreport-bug = Fehler melden\nupdate-ruffle = Ruffle aktuallisieren\nruffle-demo = Web-Demo\nruffle-desktop = Desktop-Anwendung\nruffle-wiki = Ruffle-Wiki anzeigen\nview-error-details = Fehlerdetails anzeigen\nopen-in-new-tab = In einem neuen Tab \xf6ffnen\nclick-to-unmute = Klicke zum Entmuten\nerror-file-protocol =\n Es scheint, dass Sie Ruffle auf dem "file:"-Protokoll ausf\xfchren.\n Dies funktioniert nicht so, als Browser viele Funktionen aus Sicherheitsgr\xfcnden blockieren.\n Stattdessen laden wir Sie ein, einen lokalen Server einzurichten oder entweder die Webdemo oder die Desktop-Anwendung zu verwenden.\nerror-javascript-config =\n Ruffle ist aufgrund einer falschen JavaScript-Konfiguration auf ein gro\xdfes Problem gesto\xdfen.\n Wenn du der Server-Administrator bist, laden wir dich ein, die Fehlerdetails zu \xfcberpr\xfcfen, um herauszufinden, welcher Parameter fehlerhaft ist.\n Sie k\xf6nnen auch das Ruffle-Wiki f\xfcr Hilfe konsultieren.\nerror-wasm-not-found =\n Ruffle konnte die erforderliche ".wasm"-Datei-Komponente nicht laden.\n Wenn Sie der Server-Administrator sind, stellen Sie bitte sicher, dass die Datei korrekt hochgeladen wurde.\n Wenn das Problem weiterhin besteht, m\xfcssen Sie unter Umst\xe4nden die "publicPath"-Einstellung verwenden: Bitte konsultieren Sie das Ruffle-Wiki f\xfcr Hilfe.\nerror-wasm-mime-type =\n Ruffle ist auf ein gro\xdfes Problem beim Initialisieren gesto\xdfen.\n Dieser Webserver dient nicht ". asm"-Dateien mit dem korrekten MIME-Typ.\n Wenn Sie der Server-Administrator sind, konsultieren Sie bitte das Ruffle-Wiki f\xfcr Hilfe.\nerror-swf-fetch =\n Ruffle konnte die Flash-SWF-Datei nicht laden.\n Der wahrscheinlichste Grund ist, dass die Datei nicht mehr existiert, so dass Ruffle nicht geladen werden kann.\n Kontaktieren Sie den Website-Administrator f\xfcr Hilfe.\nerror-swf-cors =\n Ruffle konnte die Flash-SWF-Datei nicht laden.\n Der Zugriff auf den Abruf wurde wahrscheinlich durch die CORS-Richtlinie blockiert.\n Wenn Sie der Server-Administrator sind, konsultieren Sie bitte das Ruffle-Wiki f\xfcr Hilfe.\nerror-wasm-cors =\n Ruffle konnte die Flash-SWF-Datei nicht laden.\n Der Zugriff auf den Abruf wurde wahrscheinlich durch die CORS-Richtlinie blockiert.\n Wenn Sie der Server-Administrator sind, konsultieren Sie bitte das Ruffle-Wiki f\xfcr Hilfe.\nerror-wasm-invalid =\n Ruffle ist auf ein gro\xdfes Problem beim Initialisieren gesto\xdfen.\n Dieser Webserver dient nicht ". asm"-Dateien mit dem korrekten MIME-Typ.\n Wenn Sie der Server-Administrator sind, konsultieren Sie bitte das Ruffle-Wiki f\xfcr Hilfe.\nerror-wasm-download =\n Ruffle ist auf ein gro\xdfes Problem gesto\xdfen, w\xe4hrend er versucht hat zu initialisieren.\n Dies kann sich oft selbst beheben, so dass Sie versuchen k\xf6nnen, die Seite neu zu laden.\n Andernfalls kontaktieren Sie bitte den Website-Administrator.\nerror-wasm-disabled-on-edge =\n Ruffle konnte die erforderliche ".wasm"-Datei-Komponente nicht laden.\n Um dies zu beheben, versuche die Einstellungen deines Browsers zu \xf6ffnen, klicke auf "Privatsph\xe4re, Suche und Dienste", scrollen nach unten und schalte "Verbessere deine Sicherheit im Web" aus.\n Dies erlaubt Ihrem Browser die erforderlichen ".wasm"-Dateien zu laden.\n Wenn das Problem weiterhin besteht, m\xfcssen Sie m\xf6glicherweise einen anderen Browser verwenden.\nerror-javascript-conflict =\n Ruffle ist auf ein gro\xdfes Problem beim Initialisieren gesto\xdfen.\n Es scheint, als ob diese Seite JavaScript-Code verwendet, der mit Ruffle kollidiert.\n Wenn Sie der Server-Administrator sind, laden wir Sie ein, die Datei auf einer leeren Seite zu laden.\nerror-javascript-conflict-outdated = Du kannst auch versuchen, eine neuere Version von Ruffle hochzuladen, die das Problem umgehen k\xf6nnte (aktuelle Version ist veraltet: { $buildDate }).\nerror-csp-conflict =\n Ruffle ist auf ein gro\xdfes Problem beim Initialisieren gesto\xdfen.\n Dieser Webserver dient nicht ". asm"-Dateien mit dem korrekten MIME-Typ.\n Wenn Sie der Server-Administrator sind, konsultieren Sie bitte das Ruffle-Wiki f\xfcr Hilfe.\nerror-unknown =\n Bei dem Versuch, diesen Flash-Inhalt anzuzeigen, ist Ruffle auf ein gro\xdfes Problem gesto\xdfen.\n { $outdated ->\n [true] Wenn Sie der Server-Administrator sind, Bitte versuchen Sie, eine neuere Version von Ruffle hochzuladen (aktuelle Version ist veraltet: { $buildDate }).\n *[false] Dies soll nicht passieren, deshalb w\xfcrden wir uns sehr dar\xfcber freuen, wenn Sie einen Fehler melden k\xf6nnten!\n }\n',"save-manager.ftl":"save-delete-prompt = Sind Sie sicher, dass Sie diese Speicherdatei l\xf6schen m\xf6chten?\nsave-reload-prompt =\n Der einzige Weg zu { $action ->\n [delete] l\xf6schen\n *[replace] ersetzen\n } diese Speicherdatei ohne m\xf6glichen Konflikt ist das erneute Laden dieses Inhalts. M\xf6chten Sie trotzdem fortfahren?\nsave-download = Herunterladen\nsave-replace = Ersetzen\nsave-delete = L\xf6schen\nsave-backup-all = Alle gespeicherten Dateien herunterladen\n"},"en-US":{"context_menu.ftl":"context-menu-download-swf = Download .swf\ncontext-menu-copy-debug-info = Copy debug info\ncontext-menu-open-save-manager = Open Save Manager\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] About Ruffle Extension ({$version})\n *[other] About Ruffle ({$version})\n }\ncontext-menu-hide = Hide this menu\ncontext-menu-exit-fullscreen = Exit fullscreen\ncontext-menu-enter-fullscreen = Enter fullscreen","messages.ftl":'message-unsupported-avm2 =\n The Ruffle emulator may not yet fully support all of ActionScript 3 used by this content.\n Some parts of the content may not work as expected.\nmessage-cant-embed =\n Ruffle wasn\'t able to run the Flash embedded in this page.\n You can try to open the file in a separate tab, to sidestep this issue.\npanic-title = Something went wrong :(\nmore-info = More info\nrun-anyway = Run anyway\ncontinue = Continue\nreport-bug = Report Bug\nupdate-ruffle = Update Ruffle\nruffle-demo = Web Demo\nruffle-desktop = Desktop Application\nruffle-wiki = View Ruffle Wiki\nview-error-details = View Error Details\nopen-in-new-tab = Open in a new tab\nclick-to-unmute = Click to unmute\nerror-file-protocol =\n It appears you are running Ruffle on the "file:" protocol.\n This doesn\'t work as browsers block many features from working for security reasons.\n Instead, we invite you to setup a local server or either use the web demo or the desktop application.\nerror-javascript-config =\n Ruffle has encountered a major issue due to an incorrect JavaScript configuration.\n If you are the server administrator, we invite you to check the error details to find out which parameter is at fault.\n You can also consult the Ruffle wiki for help.\nerror-wasm-not-found =\n Ruffle failed to load the required ".wasm" file component.\n If you are the server administrator, please ensure the file has correctly been uploaded.\n If the issue persists, you may need to use the "publicPath" setting: please consult the Ruffle wiki for help.\nerror-wasm-mime-type =\n Ruffle has encountered a major issue whilst trying to initialize.\n This web server is not serving ".wasm" files with the correct MIME type.\n If you are the server administrator, please consult the Ruffle wiki for help.\nerror-swf-fetch =\n Ruffle failed to load the Flash SWF file.\n The most likely reason is that the file no longer exists, so there is nothing for Ruffle to load.\n Try contacting the website administrator for help.\nerror-swf-cors =\n Ruffle failed to load the Flash SWF file.\n Access to fetch has likely been blocked by CORS policy.\n If you are the server administrator, please consult the Ruffle wiki for help.\nerror-wasm-cors =\n Ruffle failed to load the required ".wasm" file component.\n Access to fetch has likely been blocked by CORS policy.\n If you are the server administrator, please consult the Ruffle wiki for help.\nerror-wasm-invalid =\n Ruffle has encountered a major issue whilst trying to initialize.\n It seems like this page has missing or invalid files for running Ruffle.\n If you are the server administrator, please consult the Ruffle wiki for help.\nerror-wasm-download =\n Ruffle has encountered a major issue whilst trying to initialize.\n This can often resolve itself, so you can try reloading the page.\n Otherwise, please contact the website administrator.\nerror-wasm-disabled-on-edge =\n Ruffle failed to load the required ".wasm" file component.\n To fix this, try opening your browser\'s settings, clicking "Privacy, search, and services", scrolling down, and turning off "Enhance your security on the web".\n This will allow your browser to load the required ".wasm" files.\n If the issue persists, you might have to use a different browser.\nerror-javascript-conflict =\n Ruffle has encountered a major issue whilst trying to initialize.\n It seems like this page uses JavaScript code that conflicts with Ruffle.\n If you are the server administrator, we invite you to try loading the file on a blank page.\nerror-javascript-conflict-outdated = You can also try to upload a more recent version of Ruffle that may circumvent the issue (current build is outdated: {$buildDate}).\nerror-csp-conflict =\n Ruffle has encountered a major issue whilst trying to initialize.\n This web server\'s Content Security Policy does not allow the required ".wasm" component to run.\n If you are the server administrator, please consult the Ruffle wiki for help.\nerror-unknown =\n Ruffle has encountered a major issue whilst trying to display this Flash content.\n {$outdated ->\n [true] If you are the server administrator, please try to upload a more recent version of Ruffle (current build is outdated: {$buildDate}).\n *[false] This isn\'t supposed to happen, so we\'d really appreciate if you could file a bug!\n }',"save-manager.ftl":"save-delete-prompt = Are you sure you want to delete this save file?\nsave-reload-prompt =\n The only way to {$action ->\n [delete] delete\n *[replace] replace\n } this save file without potential conflict is to reload this content. Do you wish to continue anyway?\nsave-download = Download\nsave-replace = Replace\nsave-delete = Delete\nsave-backup-all = Download all save files"},"es-ES":{"context_menu.ftl":"context-menu-download-swf = Descargar .swf\ncontext-menu-copy-debug-info = Copiar Informaci\xf3n de depuraci\xf3n\ncontext-menu-open-save-manager = Abrir gestor de guardado\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] Sobre la extensi\xf3n de Ruffle ({ $version })\n *[other] Sobre Ruffle ({ $version })\n }\ncontext-menu-hide = Ocultar este men\xfa\ncontext-menu-exit-fullscreen = Salir de pantalla completa\ncontext-menu-enter-fullscreen = Entrar a pantalla completa\n","messages.ftl":'message-unsupported-avm2 =\n Puede que el emulador Ruffle no soporte en su totalidad el ActionScript 3 usado por este contenido.\n Algunas partes del contenido podr\xedan no funcionar de manera correcta.\nmessage-cant-embed =\n Ruffle no pudo ejecutar el Flash incrustado en esta p\xe1gina.\n Puedes intentar abrir el archivo en una pesta\xf1a aparte, para evitar este problema.\npanic-title = Algo sali\xf3 mal :(\nmore-info = M\xe1s info\nrun-anyway = Ejecutar de todos modos\ncontinue = Continuar\nreport-bug = Reportar un Error\nupdate-ruffle = Actualizar Ruffle\nruffle-demo = Demostraci\xf3n de web\nruffle-desktop = Aplicaci\xf3n de Desktop\nruffle-wiki = Ver la p\xe1gina wiki\nview-error-details = Ver los detalles del error\nopen-in-new-tab = Abrir en una pesta\xf1a nueva\nclick-to-unmute = Haz clic para dejar de silenciar\nerror-file-protocol =\n Parece que est\xe1 ejecutando Ruffle en el protocolo "archivo:".\n Esto no funciona porque los navegadores bloquean que muchas caracter\xedsticas funcionen por razones de seguridad.\n En su lugar, le invitamos a configurar un servidor local o bien usar la demostraci\xf3n web o la aplicaci\xf3n de desktop.\nerror-javascript-config =\n Ruffle ha encontrado un problema cr\xedtico debido a una configuraci\xf3n JavaScript incorrecta.\n Si usted es el administrador del servidor, le invitamos a comprobar los detalles del error para averiguar qu\xe9 par\xe1metro est\xe1 en falta.\n Tambi\xe9n puedes consultar la wiki de Ruffle para obtener ayuda.\nerror-wasm-not-found =\n Ruffle no pudo cargar el componente de archivo ".wasm" requerido.\n Si usted es el administrador del servidor, aseg\xfarese de que el archivo ha sido subido correctamente.\n Si el problema persiste, puede que necesite usar la configuraci\xf3n "publicPath": por favor consulte la wiki de Ruffle para obtener ayuda.\nerror-wasm-mime-type =\n Ruffle ha encontrado un problema cr\xedtico al intentar inicializar.\n Este servidor web no est\xe1 sirviendo archivos wasm" con el tipo MIME correcto.\n Si usted es el administrador del servidor, consulte la wiki de Ruffle para obtener ayuda.\nerror-swf-fetch =\n Ruffle no pudo cargar el archivo Flash SWF.\n La raz\xf3n m\xe1s probable es que el archivo ya no existe, as\xed que no hay nada para cargar Ruffle.\n Intente ponerse en contacto con el administrador del sitio web para obtener ayuda.\nerror-swf-cors =\n Ruffle no pudo cargar el archivo Flash SWF.\n Es probable que el acceso a la b\xfasqueda haya sido bloqueado por la pol\xedtica CORS.\n Si usted es el administrador del servidor, consulte la wiki de Ruffle para obtener ayuda.\nerror-wasm-cors =\n Ruffle no pudo cargar el archivo ".wasm."\n Es probable que el acceso a la b\xfasqueda o la llamada a la funci\xf3n fetch haya sido bloqueado por la pol\xedtica CORS.\n Si usted es el administrador del servidor, consulte la wiki de Ruffle para obtener ayuda.\nerror-wasm-invalid =\n Ruffle ha encontrado un problema cr\xedtico al intentar inicializar.\n Este servidor web no est\xe1 sirviendo archivos wasm" con el tipo Mime correcto.\n Si usted es el administrador del servidor, consulte la wiki de Ruffle para obtener ayuda.\nerror-wasm-download =\n Ruffle ha encontrado un problema cr\xedtico mientras intentaba inicializarse.\n Esto a menudo puede resolverse por s\xed mismo, as\xed que puede intentar recargar la p\xe1gina.\n De lo contrario, p\xf3ngase en contacto con el administrador del sitio web.\nerror-wasm-disabled-on-edge =\n Ruffle no pudo cargar el componente de archivo ".wasm" requerido.\n Para solucionar esto, intenta abrir la configuraci\xf3n de tu navegador, haciendo clic en "Privacidad, b\xfasqueda y servicios", desplaz\xe1ndote y apagando "Mejore su seguridad en la web".\n Esto permitir\xe1 a su navegador cargar los archivos ".wasm" necesarios.\n Si el problema persiste, puede que tenga que utilizar un navegador diferente.\nerror-javascript-conflict =\n Ruffle ha encontrado un problema cr\xedtico mientras intentaba inicializarse.\n Parece que esta p\xe1gina utiliza c\xf3digo JavaScript que entra en conflicto con Ruffle.\n Si usted es el administrador del servidor, le invitamos a intentar cargar el archivo en una p\xe1gina en blanco.\nerror-javascript-conflict-outdated = Tambi\xe9n puedes intentar subir una versi\xf3n m\xe1s reciente de Ruffle que puede eludir el problema (la versi\xf3n actual est\xe1 desactualizada: { $buildDate }).\nerror-csp-conflict =\n Ruffle encontr\xf3 un problema al intentar inicializarse.\n La Pol\xedtica de Seguridad de Contenido de este servidor web no permite el componente requerido ".wasm". \n Si usted es el administrador del servidor, por favor consulta la wiki de Ruffle para obtener ayuda.\nerror-unknown =\n Ruffle ha encontrado un problema al tratar de mostrar el contenido Flash.\n { $outdated ->\n [true] Si usted es el administrador del servidor, intenta cargar una version m\xe1s reciente de Ruffle (la version actual esta desactualizada: { $buildDate }).\n *[false] Esto no deberia suceder! apreciariamos que reportes el error!\n }\n',"save-manager.ftl":"save-delete-prompt = \xbfEst\xe1 seguro de querer eliminar este archivo de guardado?\nsave-reload-prompt =\n La \xfanica forma de { $action ->\n [delete] eliminar\n *[replace] sobreescribir\n } este archivo de guardado sin conflictos potenciales es reiniciando el contenido. \xbfDesea continuar de todos modos?\nsave-download = Descargar\nsave-replace = Sobreescribir\nsave-delete = Borrar\nsave-backup-all = Borrar todos los archivos de guardado\n"},"fr-FR":{"context_menu.ftl":"context-menu-download-swf = T\xe9l\xe9charger en tant que .swf\ncontext-menu-copy-debug-info = Copier les infos de d\xe9bogage\ncontext-menu-open-save-manager = Ouvrir le gestionnaire de stockage\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] \xc0 propos de Ruffle Extension ({ $version })\n *[other] \xc0 propos de Ruffle ({ $version })\n }\ncontext-menu-hide = Masquer ce menu\ncontext-menu-exit-fullscreen = Sortir du mode plein \xe9cran\ncontext-menu-enter-fullscreen = Afficher en plein \xe9cran\n","messages.ftl":"message-unsupported-avm2 =\n L'\xe9mulateur Ruffle ne prend pas encore en charge toutes les fonctionnalit\xe9s du langage ActionScript 3.\n Certaines parties de ce contenu pourraient ainsi ne pas fonctionner correctement.\nmessage-cant-embed =\n Ruffle n'a pas \xe9t\xe9 en mesure de lire le fichier Flash int\xe9gr\xe9 dans cette page.\n Vous pouvez essayer d'ouvrir le fichier dans un onglet isol\xe9, pour contourner le probl\xe8me.\npanic-title = Une erreur est survenue :(\nmore-info = Plus d'infos\nrun-anyway = Ex\xe9cuter quand m\xeame\ncontinue = Continuer\nreport-bug = Signaler le bug\nupdate-ruffle = Mettre \xe0 jour Ruffle\nruffle-demo = D\xe9mo en ligne\nruffle-desktop = Application de bureau\nruffle-wiki = Wiki de Ruffle\nview-error-details = D\xe9tails de l'erreur\nopen-in-new-tab = Ouvrir dans un nouvel onglet\nclick-to-unmute = Cliquez pour activer le son\nerror-file-protocol =\n Il semblerait que vous ex\xe9cutiez Ruffle sur le protocole \"file:\".\n Cela ne fonctionne pas car les navigateurs bloquent de nombreuses fonctionnalit\xe9s pour des raisons de s\xe9curit\xe9.\n Nous vous invitons soit \xe0 configurer un serveur local, soit \xe0 utiliser la d\xe9mo en ligne ou l'application de bureau.\nerror-javascript-config =\n Ruffle a rencontr\xe9 un probl\xe8me majeur en raison d'une configuration JavaScript incorrecte.\n Si vous \xeates l'administrateur du serveur, nous vous invitons \xe0 v\xe9rifier les d\xe9tails de l'erreur pour savoir quel est le param\xe8tre en cause.\n Vous pouvez \xe9galement consulter le wiki de Ruffle pour obtenir de l'aide.\nerror-wasm-not-found =\n Ruffle n'a pas r\xe9ussi \xe0 charger son fichier \".wasm\".\n Si vous \xeates l'administrateur du serveur, veuillez vous assurer que ce fichier a bien \xe9t\xe9 mis en ligne.\n Si le probl\xe8me persiste, il vous faudra peut-\xeatre utiliser le param\xe8tre \"publicPath\" : veuillez consulter le wiki de Ruffle pour obtenir de l'aide.\nerror-wasm-mime-type =\n Ruffle a rencontr\xe9 un probl\xe8me majeur durant sa phase d'initialisation.\n Ce serveur web ne renvoie pas le bon type MIME pour les fichiers \".wasm\".\n Si vous \xeates l'administrateur du serveur, veuillez consulter le wiki de Ruffle pour obtenir de l'aide.\nerror-swf-fetch =\n Ruffle n'a pas r\xe9ussi \xe0 charger le fichier Flash.\n La raison la plus probable est que le fichier n'existe pas ou plus.\n Vous pouvez essayer de prendre contact avec l'administrateur du site pour obtenir plus d'informations.\nerror-swf-cors =\n Ruffle n'a pas r\xe9ussi \xe0 charger le fichier Flash.\n La requ\xeate a probablement \xe9t\xe9 rejet\xe9e en raison de la configuration du CORS.\n Si vous \xeates l'administrateur du serveur, veuillez consulter le wiki de Ruffle pour obtenir de l'aide.\nerror-wasm-cors =\n Ruffle n'a pas r\xe9ussi \xe0 charger son fichier \".wasm\".\n La requ\xeate a probablement \xe9t\xe9 rejet\xe9e en raison de la configuration du CORS.\n Si vous \xeates l'administrateur du serveur, veuillez consulter le wiki de Ruffle pour obtenir de l'aide.\nerror-wasm-invalid =\n Ruffle a rencontr\xe9 un probl\xe8me majeur durant sa phase d'initialisation.\n Il semblerait que cette page comporte des fichiers manquants ou invalides pour ex\xe9cuter Ruffle.\n Si vous \xeates l'administrateur du serveur, veuillez consulter le wiki de Ruffle pour obtenir de l'aide.\nerror-wasm-download =\n Ruffle a rencontr\xe9 un probl\xe8me majeur durant sa phase d'initialisation.\n Le probl\xe8me d\xe9tect\xe9 peut souvent se r\xe9soudre de lui-m\xeame, donc vous pouvez essayer de recharger la page.\n Si le probl\xe8me persiste, veuillez prendre contact avec l'administrateur du site.\nerror-wasm-disabled-on-edge =\n Ruffle n'a pas r\xe9ussi \xe0 charger son fichier \".wasm\".\n Pour r\xe9soudre ce probl\xe8me, essayez d'ouvrir les param\xe8tres de votre navigateur et de cliquer sur \"Confidentialit\xe9, recherche et services\". Puis, vers le bas de la page, d\xe9sactivez l'option \"Am\xe9liorez votre s\xe9curit\xe9 sur le web\".\n Cela permettra \xe0 votre navigateur de charger les fichiers \".wasm\".\n Si le probl\xe8me persiste, vous devrez peut-\xeatre utiliser un autre navigateur.\nerror-javascript-conflict =\n Ruffle a rencontr\xe9 un probl\xe8me majeur durant sa phase d'initialisation.\n Il semblerait que cette page contienne du code JavaScript qui entre en conflit avec Ruffle.\n Si vous \xeates l'administrateur du serveur, nous vous invitons \xe0 essayer de charger le fichier dans une page vide.\nerror-javascript-conflict-outdated = Vous pouvez \xe9galement essayer de mettre en ligne une version plus r\xe9cente de Ruffle qui pourrait avoir corrig\xe9 le probl\xe8me (la version que vous utilisez est obsol\xe8te : { $buildDate }).\nerror-csp-conflict =\n Ruffle a rencontr\xe9 un probl\xe8me majeur durant sa phase d'initialisation.\n La strat\xe9gie de s\xe9curit\xe9 du contenu (CSP) de ce serveur web n'autorise pas l'ex\xe9cution de fichiers \".wasm\".\n Si vous \xeates l'administrateur du serveur, veuillez consulter le wiki de Ruffle pour obtenir de l'aide.\nerror-unknown =\n Ruffle a rencontr\xe9 un probl\xe8me majeur durant l'ex\xe9cution de ce contenu Flash.\n { $outdated ->\n [true] Si vous \xeates l'administrateur du serveur, veuillez essayer de mettre en ligne une version plus r\xe9cente de Ruffle (la version que vous utilisez est obsol\xe8te : { $buildDate }).\n *[false] Cela n'est pas cens\xe9 se produire, donc nous vous serions reconnaissants si vous pouviez nous signaler ce bug !\n }\n","save-manager.ftl":"save-delete-prompt = Voulez-vous vraiment supprimer ce fichier de sauvegarde ?\nsave-reload-prompt =\n La seule fa\xe7on de { $action ->\n [delete] supprimer\n *[replace] remplacer\n } ce fichier de sauvegarde sans conflit potentiel est de recharger ce contenu. Souhaitez-vous quand m\xeame continuer ?\nsave-download = T\xe9l\xe9charger\nsave-replace = Remplacer\nsave-delete = Supprimer\nsave-backup-all = T\xe9l\xe9charger tous les fichiers de sauvegarde\n"},"he-IL":{"context_menu.ftl":"context-menu-download-swf = \u05d4\u05d5\u05e8\u05d3\u05ea \u05e7\u05d5\u05d1\u05e5 \u05d4swf.\ncontext-menu-copy-debug-info = \u05d4\u05e2\u05ea\u05e7\u05ea \u05e0\u05ea\u05d5\u05e0\u05d9 \u05e0\u05d9\u05e4\u05d5\u05d9 \u05e9\u05d2\u05d9\u05d0\u05d5\u05ea\ncontext-menu-open-save-manager = \u05e4\u05ea\u05d7 \u05d0\u05ea \u05de\u05e0\u05d4\u05dc \u05d4\u05e9\u05de\u05d9\u05e8\u05d5\u05ea\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] \u05d0\u05d5\u05d3\u05d5\u05ea \u05d4\u05ea\u05d5\u05e1\u05e3 Ruffle ({ $version })\n *[other] \u05d0\u05d5\u05d3\u05d5\u05ea Ruffle ({ $version })\n }\ncontext-menu-hide = \u05d4\u05e1\u05ea\u05e8 \u05ea\u05e4\u05e8\u05d9\u05d8 \u05d6\u05d4\ncontext-menu-exit-fullscreen = \u05d9\u05e6\u05d9\u05d0\u05d4 \u05de\u05de\u05e1\u05da \u05de\u05dc\u05d0\ncontext-menu-enter-fullscreen = \u05de\u05e1\u05da \u05de\u05dc\u05d0\n","messages.ftl":'message-unsupported-avm2 =\n \u05d9\u05d9\u05ea\u05db\u05df \u05db\u05d9 \u05d4\u05d0\u05de\u05d5\u05dc\u05d8\u05d5\u05e8 Ruffle \u05d0\u05d9\u05e0\u05d5 \u05ea\u05d5\u05de\u05da \u05d1\u05d0\u05d5\u05e4\u05df \u05de\u05dc\u05d0 \u05d1ActionScript 3 \u05d4\u05dc\u05d5\u05e7\u05d7 \u05d7\u05dc\u05e7 \u05d1\u05ea\u05d5\u05db\u05df \u05d6\u05d4.\n \u05d7\u05dc\u05e7\u05d9\u05dd \u05de\u05e1\u05d5\u05d9\u05de\u05d9\u05dd \u05d1\u05ea\u05d5\u05db\u05df \u05d6\u05d4 \u05e2\u05dc\u05d5\u05dc\u05d9\u05dd \u05dc\u05e2\u05d1\u05d5\u05d3 \u05e9\u05dc\u05d0 \u05db\u05e6\u05e4\u05d5\u05d9.\nmessage-cant-embed =\n Ruffle \u05dc\u05d0 \u05d4\u05e6\u05dc\u05d9\u05d7 \u05dc\u05d4\u05e8\u05d9\u05e5 \u05d0\u05ea \u05ea\u05d5\u05db\u05df \u05d4\u05e4\u05dc\u05d0\u05e9 \u05d4\u05de\u05d5\u05d8\u05de\u05e2 \u05d1\u05d3\u05e3 \u05d6\u05d4.\n \u05d0\u05ea\u05d4 \u05d9\u05db\u05d5\u05dc \u05dc\u05e4\u05ea\u05d5\u05d7 \u05d0\u05ea \u05d4\u05e7\u05d5\u05d1\u05e5 \u05d1\u05dc\u05e9\u05d5\u05e0\u05d9\u05ea \u05e0\u05e4\u05e8\u05d3\u05ea, \u05e2\u05dc \u05de\u05e0\u05ea \u05dc\u05e2\u05e7\u05d5\u05e3 \u05d1\u05e2\u05d9\u05d4 \u05d6\u05d5.\npanic-title = \u05de\u05e9\u05d4\u05d5 \u05d4\u05e9\u05ea\u05d1\u05e9 :(\nmore-info = \u05de\u05d9\u05d3\u05e2 \u05e0\u05d5\u05e1\u05e3\nrun-anyway = \u05d4\u05e4\u05e2\u05dc \u05d1\u05db\u05dc \u05d6\u05d0\u05ea\ncontinue = \u05d4\u05de\u05e9\u05da\nreport-bug = \u05d3\u05d5\u05d5\u05d7 \u05e2\u05dc \u05ea\u05e7\u05dc\u05d4\nupdate-ruffle = \u05e2\u05d3\u05db\u05df \u05d0\u05ea Ruffle\nruffle-demo = \u05d4\u05d3\u05d2\u05de\u05d4\nruffle-desktop = \u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d9\u05ea \u05e9\u05d5\u05dc\u05d7\u05df \u05e2\u05d1\u05d5\u05d3\u05d4\nruffle-wiki = \u05e8\u05d0\u05d4 \u05d0\u05ea Ruffle wiki\nview-error-details = \u05e8\u05d0\u05d4 \u05e4\u05e8\u05d8\u05d9 \u05e9\u05d2\u05d9\u05d0\u05d4\nopen-in-new-tab = \u05e4\u05ea\u05d7 \u05d1\u05db\u05e8\u05d8\u05d9\u05e1\u05d9\u05d9\u05d4 \u05d7\u05d3\u05e9\u05d4\nclick-to-unmute = \u05dc\u05d7\u05e5 \u05e2\u05dc \u05de\u05e0\u05ea \u05dc\u05d1\u05d8\u05dc \u05d4\u05e9\u05ea\u05e7\u05d4\nerror-file-protocol =\n \u05e0\u05d3\u05de\u05d4 \u05e9\u05d0\u05ea\u05d4 \u05de\u05e8\u05d9\u05e5 \u05d0\u05ea Ruffle \u05ea\u05d7\u05ea \u05e4\u05e8\u05d5\u05d8\u05d5\u05e7\u05d5\u05dc "file:".\n \u05d6\u05d4 \u05dc\u05d0 \u05d9\u05e2\u05d1\u05d5\u05d3 \u05de\u05db\u05d9\u05d5\u05d5\u05df \u05e9\u05d3\u05e4\u05d3\u05e4\u05e0\u05d9\u05dd \u05d7\u05d5\u05e1\u05de\u05d9\u05dd \u05d0\u05e4\u05e9\u05e8\u05d5\u05d9\u05d5\u05ea \u05e8\u05d1\u05d5\u05ea \u05de\u05dc\u05e2\u05d1\u05d5\u05d3 \u05e2\u05e7\u05d1 \u05e1\u05d9\u05d1\u05d5\u05ea \u05d0\u05d1\u05d8\u05d7\u05d4.\n \u05d1\u05de\u05e7\u05d5\u05dd \u05d6\u05d4, \u05d0\u05e0\u05d5 \u05de\u05d6\u05de\u05d9\u05e0\u05d9\u05dd \u05d0\u05d5\u05ea\u05da \u05dc\u05d0\u05d7\u05e1\u05df \u05d0\u05ea\u05e8 \u05d6\u05d4 \u05ea\u05d7\u05ea \u05e9\u05e8\u05ea \u05de\u05e7\u05d5\u05de\u05d9 \u05d0\u05d5 \u05d4\u05d3\u05d2\u05de\u05d4 \u05d1\u05e8\u05e9\u05ea \u05d0\u05d5 \u05d3\u05e8\u05da \u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d9\u05ea \u05e9\u05d5\u05dc\u05d7\u05df \u05d4\u05e2\u05d1\u05d5\u05d3\u05d4.\nerror-javascript-config =\n Ruffle \u05e0\u05ea\u05e7\u05dc \u05d1\u05ea\u05e7\u05dc\u05d4 \u05d7\u05de\u05d5\u05e8\u05d4 \u05e2\u05e7\u05d1 \u05d4\u05d2\u05d3\u05e8\u05ea JavaScript \u05e9\u05d2\u05d5\u05d9\u05d4.\n \u05d0\u05dd \u05d0\u05ea\u05d4 \u05de\u05e0\u05d4\u05dc \u05d4\u05d0\u05ea\u05e8, \u05d0\u05e0\u05d5 \u05de\u05d6\u05de\u05d9\u05e0\u05d9\u05dd \u05d0\u05d5\u05ea\u05da \u05dc\u05d1\u05d3\u05d5\u05e7 \u05d0\u05ea \u05e4\u05e8\u05d8\u05d9 \u05d4\u05e9\u05d2\u05d9\u05d0\u05d4 \u05e2\u05dc \u05de\u05e0\u05ea \u05dc\u05de\u05e6\u05d5\u05d0 \u05d0\u05d9\u05d6\u05d4 \u05e4\u05e8\u05de\u05d8\u05e8 \u05d4\u05d5\u05d0 \u05e9\u05d2\u05d5\u05d9.\n \u05d0\u05ea\u05d4 \u05d9\u05db\u05d5\u05dc \u05dc\u05e2\u05d9\u05d9\u05df \u05d5\u05dc\u05d4\u05d5\u05e2\u05e5 \u05d1wiki \u05e9\u05dc Ruffle \u05e2\u05dc \u05de\u05e0\u05ea \u05dc\u05e7\u05d1\u05dc \u05e2\u05d6\u05e8\u05d4.\nerror-wasm-not-found =\n Ruffle \u05e0\u05db\u05e9\u05dc \u05dc\u05d8\u05e2\u05d5\u05df \u05d0\u05ea \u05e7\u05d5\u05d1\u05e5 \u05d4"wasm." \u05d4\u05d3\u05e8\u05d5\u05e9.\n \u05d0\u05dd \u05d0\u05ea\u05d4 \u05de\u05e0\u05d4\u05dc \u05d4\u05d0\u05ea\u05e8, \u05d0\u05e0\u05d0 \u05d5\u05d5\u05d3\u05d0 \u05db\u05d9 \u05d4\u05e7\u05d5\u05d1\u05e5 \u05d4\u05d5\u05e2\u05dc\u05d4 \u05db\u05e9\u05d5\u05e8\u05d4.\n \u05d0\u05dd \u05d4\u05d1\u05e2\u05d9\u05d4 \u05de\u05de\u05e9\u05d9\u05db\u05d4, \u05d9\u05d9\u05ea\u05db\u05df \u05d5\u05ea\u05e6\u05d8\u05e8\u05da \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05d4\u05d2\u05d3\u05e8\u05ea "publicPath": \u05d0\u05e0\u05d0 \u05e2\u05d9\u05d9\u05df \u05d5\u05d4\u05d5\u05e2\u05e5 \u05d1wiki \u05e9\u05dc Ruffle \u05e2\u05dc \u05de\u05e0\u05ea \u05dc\u05e7\u05d1\u05dc \u05e2\u05d6\u05e8\u05d4.\nerror-wasm-mime-type =\n Ruffle \u05e0\u05ea\u05e7\u05dc \u05d1\u05d1\u05e2\u05d9\u05d4 \u05d7\u05de\u05d5\u05e8\u05d4 \u05ea\u05d5\u05da \u05db\u05d3\u05d9 \u05e0\u05d9\u05e1\u05d9\u05d5\u05df \u05dc\u05d0\u05ea\u05d7\u05dc.\n \u05e9\u05e8\u05ea\u05d5 \u05e9\u05dc \u05d0\u05ea\u05e8 \u05d6\u05d4 \u05dc\u05d0 \u05de\u05e9\u05d9\u05d9\u05da \u05e7\u05d1\u05e6\u05d9 ".wasm" \u05e2\u05dd \u05e1\u05d5\u05d2 \u05d4MIME \u05d4\u05e0\u05db\u05d5\u05df.\n \u05d0\u05dd \u05d0\u05ea\u05d4 \u05de\u05e0\u05d4\u05dc \u05d4\u05d0\u05ea\u05e8, \u05d0\u05e0\u05d0 \u05e2\u05d9\u05d9\u05df \u05d5\u05d4\u05d5\u05e2\u05e5 \u05d1wiki \u05e9\u05dc Ruffle \u05e2\u05dc \u05de\u05e0\u05ea \u05dc\u05e7\u05d1\u05dc \u05e2\u05d6\u05e8\u05d4.\nerror-swf-fetch =\n Ruffle \u05e0\u05db\u05e9\u05dc \u05dc\u05d8\u05e2\u05d5\u05df \u05d0\u05ea \u05e7\u05d5\u05d1\u05e5 \u05d4\u05e4\u05dc\u05d0\u05e9/swf. .\n \u05d6\u05d4 \u05e0\u05d5\u05d1\u05e2 \u05db\u05db\u05dc \u05d4\u05e0\u05e8\u05d0\u05d4 \u05de\u05db\u05d9\u05d5\u05d5\u05df \u05d5\u05d4\u05e7\u05d5\u05d1\u05e5 \u05dc\u05d0 \u05e7\u05d9\u05d9\u05dd \u05d9\u05d5\u05ea\u05e8, \u05d0\u05d6 \u05d0\u05d9\u05df \u05dcRuffle \u05de\u05d4 \u05dc\u05d8\u05e2\u05d5\u05df.\n \u05e0\u05e1\u05d4 \u05dc\u05d9\u05e6\u05d5\u05e8 \u05e7\u05e9\u05e8 \u05e2\u05dd \u05de\u05e0\u05d4\u05dc \u05d4\u05d0\u05ea\u05e8 \u05e2\u05dc \u05de\u05e0\u05ea \u05dc\u05e7\u05d1\u05dc \u05e2\u05d6\u05e8\u05d4.\nerror-swf-cors =\n Ruffle \u05e0\u05db\u05e9\u05dc \u05dc\u05d8\u05e2\u05d5\u05df \u05d0\u05ea \u05e7\u05d5\u05d1\u05e5 \u05d4\u05e4\u05dc\u05d0\u05e9/swf. .\n \u05d2\u05d9\u05e9\u05d4 \u05dcfetch \u05db\u05db\u05dc \u05d4\u05e0\u05e8\u05d0\u05d4 \u05e0\u05d7\u05e1\u05de\u05d4 \u05e2\u05dc \u05d9\u05d3\u05d9 \u05de\u05d3\u05d9\u05e0\u05d9\u05d5\u05ea CORS.\n \u05d0\u05dd \u05d0\u05ea\u05d4 \u05de\u05e0\u05d4\u05dc \u05d4\u05d0\u05ea\u05e8, \u05d0\u05e0\u05d0 \u05e2\u05d9\u05d9\u05df \u05d5\u05d4\u05d5\u05e2\u05e5 \u05d1wiki \u05e9\u05dc Ruffle \u05e2\u05dc \u05de\u05e0\u05ea \u05dc\u05e7\u05d1\u05dc \u05e2\u05d6\u05e8\u05d4.\nerror-wasm-cors =\n Ruffle \u05e0\u05db\u05e9\u05dc \u05dc\u05d8\u05e2\u05d5\u05df \u05d0\u05ea \u05e7\u05d5\u05d1\u05e5 \u05d4".wasm" \u05d4\u05d3\u05e8\u05d5\u05e9.\n \u05d2\u05d9\u05e9\u05d4 \u05dcfetch \u05db\u05db\u05dc \u05d4\u05e0\u05e8\u05d0\u05d4 \u05e0\u05d7\u05e1\u05de\u05d4 \u05e2\u05dc \u05d9\u05d3\u05d9 \u05de\u05d3\u05d9\u05e0\u05d9\u05d5\u05ea CORS.\n \u05d0\u05dd \u05d0\u05ea\u05d4 \u05de\u05e0\u05d4\u05dc \u05d4\u05d0\u05ea\u05e8, \u05d0\u05e0\u05d0 \u05e2\u05d9\u05d9\u05df \u05d5\u05d4\u05d5\u05e2\u05e5 \u05d1wiki \u05e9\u05dc Ruffle \u05e2\u05dc \u05de\u05e0\u05ea \u05dc\u05e7\u05d1\u05dc \u05e2\u05d6\u05e8\u05d4.\nerror-wasm-invalid =\n Ruffle \u05e0\u05ea\u05e7\u05dc \u05d1\u05d1\u05e2\u05d9\u05d4 \u05d7\u05de\u05d5\u05e8\u05d4 \u05ea\u05d5\u05da \u05db\u05d3\u05d9 \u05e0\u05d9\u05e1\u05d9\u05d5\u05df \u05dc\u05d0\u05ea\u05d7\u05dc.\n \u05e0\u05d3\u05de\u05d4 \u05db\u05d9 \u05d1\u05d3\u05e3 \u05d6\u05d4 \u05d7\u05e1\u05e8\u05d9\u05dd \u05d0\u05d5 \u05dc\u05d0 \u05e2\u05d5\u05d1\u05d3\u05d9\u05dd \u05db\u05e8\u05d0\u05d5\u05d9 \u05e7\u05d1\u05e6\u05d9\u05dd \u05d0\u05e9\u05e8 \u05de\u05e9\u05de\u05e9\u05d9\u05dd \u05d0\u05ea Ruffle \u05db\u05d3\u05d9 \u05dc\u05e4\u05e2\u05d5\u05dc\n \u05d0\u05dd \u05d0\u05ea\u05d4 \u05de\u05e0\u05d4\u05dc \u05d4\u05d0\u05ea\u05e8, \u05d0\u05e0\u05d0 \u05e2\u05d9\u05d9\u05df \u05d5\u05d4\u05d5\u05e2\u05e5 \u05d1wiki \u05e9\u05dc Ruffle \u05e2\u05dc \u05de\u05e0\u05ea \u05dc\u05e7\u05d1\u05dc \u05e2\u05d6\u05e8\u05d4.\nerror-wasm-download =\n Ruffle \u05e0\u05ea\u05e7\u05dc \u05d1\u05d1\u05e2\u05d9\u05d4 \u05d7\u05de\u05d5\u05e8\u05d4 \u05ea\u05d5\u05da \u05db\u05d3\u05d9 \u05e0\u05d9\u05e1\u05d9\u05d5\u05df \u05dc\u05d0\u05ea\u05d7\u05dc.\n \u05dc\u05e2\u05d9\u05ea\u05d9\u05dd \u05d1\u05e2\u05d9\u05d4 \u05d6\u05d5 \u05d9\u05db\u05d5\u05dc\u05d4 \u05dc\u05e4\u05ea\u05d5\u05e8 \u05d0\u05ea \u05e2\u05e6\u05de\u05d4, \u05d0\u05d6 \u05d0\u05ea\u05d4 \u05d9\u05db\u05d5\u05dc \u05dc\u05e0\u05e1\u05d5\u05ea \u05dc\u05d8\u05e2\u05d5\u05df \u05de\u05d7\u05d3\u05e9 \u05d0\u05ea \u05d4\u05d3\u05e3 \u05d6\u05d4.\n \u05d0\u05dd \u05dc\u05d0, \u05d0\u05e0\u05d0 \u05e4\u05e0\u05d4 \u05dc\u05de\u05e0\u05d4\u05dc \u05d4\u05d0\u05ea\u05e8.\nerror-wasm-disabled-on-edge =\n Ruffle \u05e0\u05db\u05e9\u05dc \u05dc\u05d8\u05e2\u05d5\u05df \u05d0\u05ea \u05e7\u05d5\u05d1\u05e5 \u05d4".wasm" \u05d4\u05d3\u05e8\u05d5\u05e9.\n \u05e2\u05dc \u05de\u05e0\u05ea \u05dc\u05ea\u05e7\u05df \u05d1\u05e2\u05d9\u05d4 \u05d6\u05d5, \u05e0\u05e1\u05d4 \u05dc\u05e4\u05ea\u05d5\u05d7 \u05d0\u05ea \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05d4\u05d3\u05e4\u05d3\u05e4\u05df \u05e9\u05dc\u05da, \u05dc\u05d7\u05e5 \u05e2\u05dc "\u05d0\u05d1\u05d8\u05d7\u05d4, \u05d7\u05d9\u05e4\u05d5\u05e9 \u05d5\u05e9\u05d9\u05e8\u05d5\u05ea",\n \u05d2\u05dc\u05d5\u05dc \u05de\u05d8\u05d4, \u05d5\u05db\u05d1\u05d4 \u05d0\u05ea "\u05d4\u05d2\u05d1\u05e8 \u05d0\u05ea \u05d4\u05d0\u05d1\u05d8\u05d7\u05d4 \u05e9\u05dc\u05da \u05d1\u05e8\u05e9\u05ea".\n \u05d6\u05d4 \u05d9\u05d0\u05e4\u05e9\u05e8 \u05dc\u05d3\u05e4\u05d3\u05e4\u05df \u05e9\u05dc\u05da \u05dc\u05d8\u05e2\u05d5\u05df \u05d0\u05ea \u05e7\u05d5\u05d1\u05e5 \u05d4".wasm" \u05d4\u05d3\u05e8\u05d5\u05e9.\n \u05d0\u05dd \u05d4\u05d1\u05e2\u05d9\u05d4 \u05de\u05de\u05e9\u05d9\u05db\u05d4, \u05d9\u05d9\u05ea\u05db\u05df \u05d5\u05e2\u05dc\u05d9\u05da \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05d3\u05e4\u05d3\u05e4\u05df \u05d0\u05d7\u05e8.\nerror-javascript-conflict =\n Ruffle \u05e0\u05ea\u05e7\u05dc \u05d1\u05d1\u05e2\u05d9\u05d4 \u05d7\u05de\u05d5\u05e8\u05d4 \u05ea\u05d5\u05da \u05db\u05d3\u05d9 \u05e0\u05d9\u05e1\u05d9\u05d5\u05df \u05dc\u05d0\u05ea\u05d7\u05dc.\n \u05e0\u05d3\u05de\u05d4 \u05db\u05d9 \u05d3\u05e3 \u05d6\u05d4 \u05de\u05e9\u05ea\u05de\u05e9 \u05d1\u05e7\u05d5\u05d3 JavaScript \u05d0\u05e9\u05e8 \u05de\u05ea\u05e0\u05d2\u05e9 \u05e2\u05dd Ruffle.\n \u05d0\u05dd \u05d0\u05ea\u05d4 \u05de\u05e0\u05d4\u05dc \u05d4\u05d0\u05ea\u05e8, \u05d0\u05e0\u05d5 \u05de\u05d6\u05de\u05d9\u05e0\u05d9\u05dd \u05d0\u05d5\u05ea\u05da \u05dc\u05e0\u05e1\u05d5\u05ea \u05dc\u05d8\u05e2\u05d5\u05df \u05d0\u05ea \u05d4\u05d3\u05e3 \u05ea\u05d7\u05ea \u05e2\u05de\u05d5\u05d3 \u05e8\u05d9\u05e7.\nerror-javascript-conflict-outdated = \u05d1\u05e0\u05d5\u05e1\u05e3, \u05d0\u05ea\u05d4 \u05d9\u05db\u05d5\u05dc \u05dc\u05e0\u05e1\u05d5\u05ea \u05d5\u05dc\u05d4\u05e2\u05dc\u05d5\u05ea \u05d2\u05e8\u05e1\u05d0\u05d5\u05ea \u05e2\u05d3\u05db\u05e0\u05d9\u05d5\u05ea \u05e9\u05dc Ruffle \u05d0\u05e9\u05e8 \u05e2\u05dc\u05d5\u05dc\u05d9\u05dd \u05dc\u05e2\u05e7\u05d5\u05e3 \u05d1\u05e2\u05d9\u05d4 \u05d6\u05d5 (\u05d2\u05e8\u05e1\u05d4 \u05d6\u05d5 \u05d4\u05d9\u05e0\u05d4 \u05de\u05d9\u05d5\u05e9\u05e0\u05ea : { $buildDate }).\nerror-csp-conflict =\n Ruffle \u05e0\u05ea\u05e7\u05dc \u05d1\u05d1\u05e2\u05d9\u05d4 \u05d7\u05de\u05d5\u05e8\u05d4 \u05ea\u05d5\u05da \u05db\u05d3\u05d9 \u05e0\u05d9\u05e1\u05d9\u05d5\u05df \u05dc\u05d0\u05ea\u05d7\u05dc.\n \u05de\u05d3\u05d9\u05e0\u05d9\u05d5\u05ea \u05d0\u05d1\u05d8\u05d7\u05ea \u05d4\u05ea\u05d5\u05db\u05df \u05e9\u05dc \u05e9\u05e8\u05ea\u05d5 \u05e9\u05dc \u05d0\u05ea\u05e8 \u05d6\u05d4 \u05d0\u05d9\u05e0\u05d4 \u05de\u05d0\u05e4\u05e9\u05e8\u05ea \u05dc\u05e7\u05d5\u05d1\u05e5 \u05d4"wasm." \u05d4\u05d3\u05e8\u05d5\u05e9 \u05dc\u05e4\u05e2\u05d5\u05dc.\n \u05d0\u05dd \u05d0\u05ea\u05d4 \u05de\u05e0\u05d4\u05dc \u05d4\u05d0\u05ea\u05e8, \u05d0\u05e0\u05d0 \u05e2\u05d9\u05d9\u05df \u05d5\u05d4\u05d5\u05e2\u05e5 \u05d1wiki \u05e9\u05dc Ruffle \u05e2\u05dc \u05de\u05e0\u05ea \u05dc\u05e7\u05d1\u05dc \u05e2\u05d6\u05e8\u05d4.\nerror-unknown =\n Ruffle \u05e0\u05ea\u05e7\u05dc \u05d1\u05d1\u05e2\u05d9\u05d4 \u05d7\u05de\u05d5\u05e8\u05d4 \u05d1\u05e0\u05d9\u05e1\u05d9\u05d5\u05df \u05dc\u05d4\u05e6\u05d9\u05d2 \u05d0\u05ea \u05ea\u05d5\u05db\u05df \u05e4\u05dc\u05d0\u05e9 \u05d6\u05d4.\n { $outdated ->\n [true] \u05d0\u05dd \u05d0\u05ea\u05d4 \u05de\u05e0\u05d4\u05dc \u05d4\u05d0\u05ea\u05e8, \u05d0\u05e0\u05d0 \u05e0\u05e1\u05d4 \u05dc\u05d4\u05e2\u05dc\u05d5\u05ea \u05d2\u05e8\u05e1\u05d4 \u05e2\u05d3\u05db\u05e0\u05d9\u05ea \u05d9\u05d5\u05ea\u05e8 \u05e9\u05dc Ruffle (\u05d2\u05e8\u05e1\u05d4 \u05d6\u05d5 \u05d4\u05d9\u05e0\u05d4 \u05de\u05d9\u05d5\u05e9\u05e0\u05ea: { $buildDate }).\n *[false] \u05d6\u05d4 \u05dc\u05d0 \u05d0\u05de\u05d5\u05e8 \u05dc\u05e7\u05e8\u05d5\u05ea, \u05e0\u05e9\u05de\u05d7 \u05d0\u05dd \u05ea\u05d5\u05db\u05dc \u05dc\u05e9\u05ea\u05e3 \u05ea\u05e7\u05dc\u05d4 \u05d6\u05d5!\n }\n',"save-manager.ftl":"save-delete-prompt = \u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05de\u05d7\u05d5\u05e7 \u05d0\u05ea \u05e7\u05d5\u05d1\u05e5 \u05e9\u05de\u05d9\u05e8\u05d4 \u05d6\u05d4?\nsave-reload-prompt =\n \u05d4\u05d3\u05e8\u05da \u05d4\u05d9\u05d7\u05d9\u05d3\u05d4 { $action ->\n [delete] \u05dc\u05de\u05d7\u05d5\u05e7\n *[replace] \u05dc\u05d4\u05d7\u05dc\u05d9\u05e3\n } \u05d0\u05ea \u05e7\u05d5\u05d1\u05e5 \u05d4\u05e9\u05de\u05d9\u05e8\u05d4 \u05d4\u05d6\u05d4 \u05de\u05d1\u05dc\u05d9 \u05dc\u05d2\u05e8\u05d5\u05dd \u05dc\u05d5 \u05dc\u05d4\u05ea\u05e0\u05d2\u05e9 \u05d4\u05d9\u05d0 \u05dc\u05d8\u05e2\u05d5\u05df \u05de\u05d7\u05d3\u05e9 \u05d0\u05ea \u05ea\u05d5\u05db\u05df \u05d6\u05d4. \u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05e8\u05d5\u05e6\u05d4 \u05dc\u05d4\u05de\u05e9\u05d9\u05da \u05d1\u05db\u05dc \u05d6\u05d0\u05ea?\nsave-download = \u05d4\u05d5\u05e8\u05d3\u05d4\nsave-replace = \u05d4\u05d7\u05dc\u05e4\u05d4\nsave-delete = \u05de\u05d7\u05d9\u05e7\u05d4\nsave-backup-all = \u05d4\u05d5\u05e8\u05d3\u05ea \u05db\u05dc \u05e7\u05d1\u05e6\u05d9 \u05d4\u05e9\u05de\u05d9\u05e8\u05d4\n"},"hu-HU":{"context_menu.ftl":"context-menu-download-swf = .swf f\xe1jl let\xf6lt\xe9se\ncontext-menu-copy-debug-info = Hibakeres\xe9si inform\xe1ci\xf3k m\xe1sol\xe1sa\ncontext-menu-open-save-manager = Ment\xe9skezel\u0151 megnyit\xe1sa\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] A Ruffle kieg\xe9sz\xedt\u0151 ({ $version }) n\xe9vjegye\n *[other] A Ruffle ({ $version }) n\xe9vjegye\n }\ncontext-menu-hide = Ezen men\xfc elrejt\xe9se\ncontext-menu-exit-fullscreen = Kil\xe9p\xe9s a teljes k\xe9perny\u0151b\u0151l\ncontext-menu-enter-fullscreen = V\xe1lt\xe1s teljes k\xe9perny\u0151re\n","messages.ftl":'message-unsupported-avm2 =\n El\u0151fordulhat, hogy a Ruffle emul\xe1tor m\xe9g nem t\xe1mogatja teljes m\xe9rt\xe9kben az ezen tartalom \xe1ltal haszn\xe1lt \xf6sszes ActionScript 3 funkci\xf3t.\n A tartalom egyes r\xe9szei esetleg nem fognak a v\xe1rt m\xf3don m\u0171k\xf6dni.\nmessage-cant-embed =\n A Ruffle nem tudta futtatni az oldalba \xe1gyazott Flash tartalmat.\n A probl\xe9ma kiker\xfcl\xe9s\xe9hez megpr\xf3b\xe1lhatod megnyitni a f\xe1jlt egy k\xfcl\xf6n lapon.\npanic-title = Valami baj t\xf6rt\xe9nt :(\nmore-info = Tov\xe1bbi inform\xe1ci\xf3\nrun-anyway = Futtat\xe1s m\xe9gis\ncontinue = Folytat\xe1s\nreport-bug = Hiba jelent\xe9se\nupdate-ruffle = Ruffle friss\xedt\xe9se\nruffle-demo = Webes dem\xf3\nruffle-desktop = Asztali alkalmaz\xe1s\nruffle-wiki = Ruffle Wiki megnyit\xe1sa\nview-error-details = Hiba r\xe9szletei\nopen-in-new-tab = Megnyit\xe1s \xfaj lapon\nclick-to-unmute = Kattints a n\xe9m\xedt\xe1s felold\xe1s\xe1hoz\nerror-file-protocol =\n \xdagy t\u0171nik, a Ruffle-t a "file:" protokollon futtatod.\n Ez nem m\u0171k\xf6dik, mivel \xedgy a b\xf6ng\xe9sz\u0151k biztons\xe1gi okokb\xf3l sz\xe1mos funkci\xf3 m\u0171k\xf6d\xe9s\xe9t letiltj\xe1k.\n Ehelyett azt aj\xe1nljuk hogy ind\xedts egy helyi kiszolg\xe1l\xf3t, vagy haszn\xe1ld a webes dem\xf3t vagy az asztali alkalmaz\xe1st.\nerror-javascript-config =\n A Ruffle komoly probl\xe9m\xe1ba \xfctk\xf6z\xf6tt egy helytelen JavaScript-konfigur\xe1ci\xf3 miatt.\n Ha a szerver rendszergazd\xe1ja vagy, k\xe9rj\xfck, ellen\u0151rizd a hiba r\xe9szleteit, hogy megtudd, melyik param\xe9ter a hib\xe1s.\n A Ruffle wikiben is tal\xe1lhatsz ehhez seg\xedts\xe9get.\nerror-wasm-not-found =\n A Ruffle nem tudta bet\xf6lteni a sz\xfcks\xe9ges ".wasm" \xf6sszetev\u0151t.\n Ha a szerver rendszergazd\xe1ja vagy, k\xe9rj\xfck ellen\u0151rizd, hogy a f\xe1jl megfelel\u0151en lett-e felt\xf6ltve.\n Ha a probl\xe9ma tov\xe1bbra is fenn\xe1ll, el\u0151fordulhat, hogy a "publicPath" be\xe1ll\xedt\xe1st kell haszn\xe1lnod: seg\xedts\xe9g\xe9rt keresd fel a Ruffle wikit.\nerror-wasm-mime-type =\n A Ruffle komoly probl\xe9m\xe1ba \xfctk\xf6z\xf6tt az inicializ\xe1l\xe1s sor\xe1n.\n Ez a webszerver a ".wasm" f\xe1jlokat nem a megfelel\u0151 MIME-t\xedpussal szolg\xe1lja ki.\n Ha a szerver rendszergazd\xe1ja vagy, k\xe9rj\xfck, keresd fel a Ruffle wikit seg\xedts\xe9g\xe9rt.\nerror-swf-fetch =\n A Ruffle nem tudta bet\xf6lteni a Flash SWF f\xe1jlt.\n A legval\xf3sz\xedn\u0171bb ok az, hogy a f\xe1jl m\xe1r nem l\xe9tezik, \xedgy a Ruffle sz\xe1m\xe1ra nincs mit bet\xf6lteni.\n Pr\xf3b\xe1ld meg felvenni a kapcsolatot a webhely rendszergazd\xe1j\xe1val seg\xedts\xe9g\xe9rt.\nerror-swf-cors =\n A Ruffle nem tudta bet\xf6lteni a Flash SWF f\xe1jlt.\n A lek\xe9r\xe9shez val\xf3 hozz\xe1f\xe9r\xe9st val\xf3sz\xedn\u0171leg letiltotta a CORS-h\xe1zirend.\n Ha a szerver rendszergazd\xe1ja vagy, k\xe9rj\xfck, keresd fel a Ruffle wikit seg\xedts\xe9g\xe9rt.\nerror-wasm-cors =\n A Ruffle nem tudta bet\xf6lteni a sz\xfcks\xe9ges ".wasm" \xf6sszetev\u0151t.\n A lek\xe9r\xe9shez val\xf3 hozz\xe1f\xe9r\xe9st val\xf3sz\xedn\u0171leg letiltotta a CORS-h\xe1zirend.\n Ha a szerver rendszergazd\xe1ja vagy, k\xe9rj\xfck keresd fel a Ruffle wikit seg\xedts\xe9g\xe9rt.\nerror-wasm-invalid =\n A Ruffle komoly probl\xe9m\xe1ba \xfctk\xf6z\xf6tt az inicializ\xe1l\xe1s sor\xe1n.\n \xdagy t\u0171nik, hogy ezen az oldalon hi\xe1nyoznak vagy hib\xe1sak a Ruffle futtat\xe1s\xe1hoz sz\xfcks\xe9ges f\xe1jlok.\n Ha a szerver rendszergazd\xe1ja vagy, k\xe9rj\xfck keresd fel a Ruffle wikit seg\xedts\xe9g\xe9rt.\nerror-wasm-download =\n A Ruffle komoly probl\xe9m\xe1ba \xfctk\xf6z\xf6tt az inicializ\xe1l\xe1s sor\xe1n.\n Ez gyakran mag\xe1t\xf3l megold\xf3dik, ez\xe9rt megpr\xf3b\xe1lhatod \xfajrat\xf6lteni az oldalt.\n Ellenkez\u0151 esetben fordulj a webhely rendszergazd\xe1j\xe1hoz.\nerror-wasm-disabled-on-edge =\n A Ruffle nem tudta bet\xf6lteni a sz\xfcks\xe9ges ".wasm" \xf6sszetev\u0151t.\n A probl\xe9ma megold\xe1s\xe1hoz nyisd meg a b\xf6ng\xe9sz\u0151 be\xe1ll\xedt\xe1sait, kattints az \u201eAdatv\xe9delem, keres\xe9s \xe9s szolg\xe1ltat\xe1sok\u201d elemre, g\xf6rgess le, \xe9s kapcsold ki a \u201eFokozott biztons\xe1g a weben\u201d opci\xf3t.\n Ez lehet\u0151v\xe9 teszi a b\xf6ng\xe9sz\u0151 sz\xe1m\xe1ra, hogy bet\xf6ltse a sz\xfcks\xe9ges ".wasm" f\xe1jlokat.\n Ha a probl\xe9ma tov\xe1bbra is fenn\xe1ll, lehet, hogy m\xe1sik b\xf6ng\xe9sz\u0151t kell haszn\xe1lnod.\nerror-javascript-conflict =\n A Ruffle komoly probl\xe9m\xe1ba \xfctk\xf6z\xf6tt az inicializ\xe1l\xe1s sor\xe1n.\n \xdagy t\u0171nik, ez az oldal olyan JavaScript-k\xf3dot haszn\xe1l, amely \xfctk\xf6zik a Ruffle-lel.\n Ha a kiszolg\xe1l\xf3 rendszergazd\xe1ja vagy, k\xe9rj\xfck, pr\xf3b\xe1ld meg a f\xe1jlt egy \xfcres oldalon bet\xf6lteni.\nerror-javascript-conflict-outdated = Megpr\xf3b\xe1lhatod tov\xe1bb\xe1 felt\xf6lteni a Ruffle egy \xfajabb verzi\xf3j\xe1t is, amely megker\xfclheti a probl\xe9m\xe1t (a jelenlegi elavult: { $buildDate }).\nerror-csp-conflict =\n A Ruffle komoly probl\xe9m\xe1ba \xfctk\xf6z\xf6tt az inicializ\xe1l\xe1s sor\xe1n.\n A kiszolg\xe1l\xf3 tartalombiztons\xe1gi h\xe1zirendje nem teszi lehet\u0151v\xe9 a sz\xfcks\xe9ges \u201e.wasm\u201d \xf6sszetev\u0151k futtat\xe1s\xe1t.\n Ha a szerver rendszergazd\xe1ja vagy, k\xe9rj\xfck, keresd fel a Ruffle wikit seg\xedts\xe9g\xe9rt.\nerror-unknown =\n A Ruffle komoly probl\xe9m\xe1ba \xfctk\xf6z\xf6tt, mik\xf6zben megpr\xf3b\xe1lta megjelen\xedteni ezt a Flash-tartalmat.\n { $outdated ->\n [true] Ha a szerver rendszergazd\xe1ja vagy, k\xe9rj\xfck, pr\xf3b\xe1ld meg felt\xf6lteni a Ruffle egy \xfajabb verzi\xf3j\xe1t (a jelenlegi elavult: { $buildDate }).\n *[false] Ennek nem lett volna szabad megt\xf6rt\xe9nnie, ez\xe9rt nagyon h\xe1l\xe1sak lenn\xe9nk, ha jelezn\xe9d a hib\xe1t!\n }\n',"save-manager.ftl":"save-delete-prompt = Biztosan t\xf6r\xf6lni akarod ezt a ment\xe9st?\nsave-reload-prompt =\n Ennek a ment\xe9snek az esetleges konfliktus n\xe9lk\xfcli { $action ->\n [delete] t\xf6rl\xe9s\xe9hez\n *[replace] cser\xe9j\xe9hez\n } \xfajra kell t\xf6lteni a tartalmat. M\xe9gis szeretn\xe9d folytatni?\nsave-download = Let\xf6lt\xe9s\nsave-replace = Csere\nsave-delete = T\xf6rl\xe9s\nsave-backup-all = Az \xf6sszes f\xe1jl let\xf6lt\xe9se\n"},"id-ID":{"context_menu.ftl":"context-menu-download-swf = Unduh .swf\ncontext-menu-copy-debug-info = Salin info debug\ncontext-menu-open-save-manager = Buka Manager Save\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] Tentang Ekstensi Ruffle ({ $version })\n *[other] Tentang Ruffle ({ $version })\n }\ncontext-menu-hide = Sembunyikan Menu ini\ncontext-menu-exit-fullscreen = Keluar dari layar penuh\ncontext-menu-enter-fullscreen = Masuk mode layar penuh\n","messages.ftl":'message-unsupported-avm2 =\n Emulator Ruffle belum mendukung semua fitur ActionScript 3 yang digunakan oleh konten ini.\n Beberapa bagian mungkin tidak berfungsi seperti yang diharapkan.\nmessage-cant-embed =\n Ruffle tidak dapat menjalankan Flash yang disematkan di halaman ini.\n Anda dapat mencoba membuka file di tab terpisah, untuk menghindari masalah ini.\npanic-title = Terjadi kesalahan :(\nmore-info = Info lebih lanjut\nrun-anyway = Jalankan\ncontinue = Lanjutkan\nreport-bug = Laporkan Bug\nupdate-ruffle = Perbarui Ruffle\nruffle-demo = Demo Web\nruffle-desktop = Aplikasi Desktop\nruffle-wiki = Kunjungi Wiki Ruffle\nview-error-details = Tunjukan Detail Error\nopen-in-new-tab = Buka di Tab Baru\nclick-to-unmute = Tekan untuk menyalakan suara\nerror-file-protocol =\n Sepertinya anda menjalankan Ruffle di protokol "file:". \n Ini tidak berfungsi karena browser memblokir fitur ini dengan alasan keamanan.\n Sebagai gantinya, kami mengajak anda untuk membuat server lokal, menggunakan demo web atau aplikasi desktop.\nerror-javascript-config =\n Ruffle mengalami masalah besar karena konfigurasi JavaScript yang salah.\n Jika Anda adalah administrator server ini, kami mengajak Anda untuk memeriksa detail kesalahan untuk mengetahui parameter mana yang salah.\n Anda juga dapat membaca wiki Ruffle untuk mendapatkan bantuan.\nerror-wasm-not-found =\n Ruffle gagal memuat komponen file ".wasm" yang diperlukan.\n Jika Anda adalah administrator server ini, pastikan file telah diunggah dengan benar.\n Jika masalah terus berlanjut, Anda mungkin perlu menggunakan pengaturan "publicPath": silakan baca wiki Ruffle untuk mendapatkan bantuan.\nerror-wasm-mime-type =\n Ruffle mengalami masalah ketika mencoba melakukan inisialisasi.\n Server web ini tidak melayani file ".wasm" dengan tipe MIME yang benar.\n Jika Anda adalah administrator server ini, silakan baca wiki Ruffle untuk mendapatkan bantuan.\nerror-swf-fetch =\n Ruffle gagal memuat file SWF Flash.\n Kemungkinan file tersebut sudah tidak ada, sehingga tidak dapat dimuat oleh Ruffle.\n Coba hubungi administrator situs web ini untuk mendapatkan bantuan.\nerror-swf-cors =\n Ruffle gagal memuat file SWF Flash.\n Akses untuk memuat kemungkinan telah diblokir oleh kebijakan CORS.\n Jika Anda adalah administrator server ini, silakan baca wiki Ruffle untuk mendapatkan bantuan.\nerror-wasm-cors =\n Ruffle gagal memuat komponen file ".wasm" yang diperlukan.\n Akses untuk mengambil kemungkinan telah diblokir oleh kebijakan CORS.\n Jika Anda adalah administrator server ini, silakan baca wiki Ruffle untuk mendapatkan bantuan.\nerror-wasm-invalid =\n Ruffle mengalami masalah besar ketika mencoba melakukan inisialisasi.\n Sepertinya halaman ini memiliki file yang hilang atau tidak valid untuk menjalankan Ruffle.\n Jika Anda adalah administrator server ini, silakan baca wiki Ruffle untuk mendapatkan bantuan.\nerror-wasm-download =\n Ruffle mengalami masalah besar ketika mencoba melakukan inisialisasi.\n Hal ini sering kali dapat teratasi dengan sendirinya, sehingga Anda dapat mencoba memuat ulang halaman.\n Jika tidak, silakan hubungi administrator situs web ini.\nerror-wasm-disabled-on-edge =\n Ruffle gagal memuat komponen file ".wasm" yang diperlukan.\n Untuk mengatasinya, coba buka pengaturan peramban Anda, klik "Privasi, pencarian, dan layanan", turun ke bawah, dan matikan "Tingkatkan keamanan Anda di web".\n Ini akan memungkinkan browser Anda memuat file ".wasm" yang diperlukan.\n Jika masalah berlanjut, Anda mungkin harus menggunakan browser yang berbeda.\nerror-javascript-conflict =\n Ruffle mengalami masalah besar ketika mencoba melakukan inisialisasi.\n Sepertinya situs web ini menggunakan kode JavaScript yang bertentangan dengan Ruffle.\n Jika Anda adalah administrator server ini, kami mengajak Anda untuk mencoba memuat file pada halaman kosong.\nerror-javascript-conflict-outdated = Anda juga dapat mencoba mengunggah versi Ruffle yang lebih baru yang mungkin dapat mengatasi masalah ini (versi saat ini sudah kedaluwarsa: { $buildDate }).\nerror-csp-conflict =\n Ruffle mengalami masalah besar ketika mencoba melakukan inisialisasi.\n Kebijakan Keamanan Konten server web ini tidak mengizinkan komponen ".wasm" yang diperlukan untuk dijalankan.\n Jika Anda adalah administrator server ini, silakan baca wiki Ruffle untuk mendapatkan bantuan.\nerror-unknown =\n Ruffle telah mengalami masalah besar saat menampilkan konten Flash ini.\n { $outdated ->\n [true] Jika Anda administrator server ini, cobalah untuk mengganti versi Ruffle yang lebih baru (versi saat ini sudah kedaluwarsa: { $buildDate }).\n *[false] Hal ini seharusnya tidak terjadi, jadi kami sangat menghargai jika Anda dapat melaporkan bug ini!\n }\n',"save-manager.ftl":"save-delete-prompt = Anda yakin ingin menghapus berkas ini?\nsave-reload-prompt =\n Satu-satunya cara untuk { $action ->\n [delete] menghapus\n *[replace] mengganti\n } berkas penyimpanan ini tanpa potensi konflik adalah dengan memuat ulang konten ini. Apakah Anda ingin melanjutkannya?\nsave-download = Unduh\nsave-replace = Ganti\nsave-delete = Hapus\nsave-backup-all = Unduh semua berkas penyimpanan\n"},"it-IT":{"context_menu.ftl":"context-menu-download-swf = Scarica .swf\ncontext-menu-copy-debug-info = Copia informazioni di debug\ncontext-menu-open-save-manager = Apri Gestione salvataggi\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] Informazioni su Ruffle Extension ({ $version })\n *[other] Informazioni su Ruffle ({ $version })\n }\ncontext-menu-hide = Nascondi questo menu\ncontext-menu-exit-fullscreen = Esci dallo schermo intero\ncontext-menu-enter-fullscreen = Entra a schermo intero\n","messages.ftl":"message-unsupported-avm2 =\n L'emulatore Ruffle potrebbe non supportare completamente tutti gli ActionScript 3 utilizzati da questo contenuto.\n Alcune parti del contenuto potrebbero non funzionare come previsto.\nmessage-cant-embed =\n Ruffle non \xe8 stato in grado di eseguire il Flash incorporato in questa pagina.\n Puoi provare ad aprire il file in una scheda separata, per evitare questo problema.\npanic-title = Qualcosa \xe8 andato storto :(\nmore-info = Maggiori informazioni\nrun-anyway = Esegui comunque\ncontinue = Continua\nreport-bug = Segnala Un Bug\nupdate-ruffle = Aggiorna Ruffle\nruffle-demo = Demo Web\nruffle-desktop = Applicazione Desktop\nruffle-wiki = Visualizza Ruffle Wiki\nview-error-details = Visualizza Dettagli Errore\nopen-in-new-tab = Apri in una nuova scheda\nclick-to-unmute = Clicca per riattivare l'audio\nerror-file-protocol =\n Sembra che tu stia eseguendo Ruffle sul protocollo \"file:\".\n Questo non funziona come browser blocca molte funzionalit\xe0 di lavoro per motivi di sicurezza.\n Invece, ti invitiamo a configurare un server locale o a utilizzare la demo web o l'applicazione desktop.\nerror-javascript-config =\n Ruffle ha incontrato un problema importante a causa di una configurazione JavaScript non corretta.\n Se sei l'amministratore del server, ti invitiamo a controllare i dettagli dell'errore per scoprire quale parametro \xe8 in errore.\n Puoi anche consultare il wiki Ruffle per aiuto.\nerror-wasm-not-found =\n Ruffle non \xe8 riuscito a caricare il componente di file \".wasm\".\n Se sei l'amministratore del server, assicurati che il file sia stato caricato correttamente.\n Se il problema persiste, potrebbe essere necessario utilizzare l'impostazione \"publicPath\": si prega di consultare il wiki Ruffle per aiuto.\nerror-wasm-mime-type =\n Ruffle ha incontrato un problema importante durante il tentativo di inizializzazione.\n Questo server web non serve \". asm\" file con il tipo MIME corretto.\n Se sei l'amministratore del server, consulta la wiki Ruffle per aiuto.\nerror-swf-fetch =\n Ruffle non \xe8 riuscito a caricare il file Flash SWF.\n La ragione pi\xf9 probabile \xe8 che il file non esiste pi\xf9, quindi non c'\xe8 nulla che Ruffle possa caricare.\n Prova a contattare l'amministratore del sito web per aiuto.\nerror-swf-cors =\n Ruffle non \xe8 riuscito a caricare il file SWF Flash.\n L'accesso al recupero probabilmente \xe8 stato bloccato dalla politica CORS.\n Se sei l'amministratore del server, consulta la wiki Ruffle per ricevere aiuto.\nerror-wasm-cors =\n Ruffle non \xe8 riuscito a caricare il componente di file \".wasm\".\n L'accesso al recupero probabilmente \xe8 stato bloccato dalla politica CORS.\n Se sei l'amministratore del server, consulta la wiki Ruffle per ricevere aiuto.\nerror-wasm-invalid =\n Ruffle ha incontrato un problema importante durante il tentativo di inizializzazione.\n Sembra che questa pagina abbia file mancanti o non validi per l'esecuzione di Ruffle.\n Se sei l'amministratore del server, consulta la wiki Ruffle per ricevere aiuto.\nerror-wasm-download =\n Ruffle ha incontrato un problema importante durante il tentativo di inizializzazione.\n Questo pu\xf2 spesso risolversi da solo, quindi puoi provare a ricaricare la pagina.\n Altrimenti, contatta l'amministratore del sito.\nerror-wasm-disabled-on-edge =\n Ruffle non ha caricato il componente di file \".wasm\" richiesto.\n Per risolvere il problema, prova ad aprire le impostazioni del tuo browser, facendo clic su \"Privacy, search, and services\", scorrendo verso il basso e disattivando \"Migliora la tua sicurezza sul web\".\n Questo permetter\xe0 al tuo browser di caricare i file \".wasm\" richiesti.\n Se il problema persiste, potresti dover usare un browser diverso.\nerror-javascript-conflict =\n Ruffle ha riscontrato un problema importante durante il tentativo di inizializzazione.\n Sembra che questa pagina utilizzi il codice JavaScript che \xe8 in conflitto con Ruffle.\n Se sei l'amministratore del server, ti invitiamo a provare a caricare il file su una pagina vuota.\nerror-javascript-conflict-outdated = Puoi anche provare a caricare una versione pi\xf9 recente di Ruffle che potrebbe aggirare il problema (l'attuale build \xe8 obsoleta: { $buildDate }).\nerror-csp-conflict =\n Ruffle ha incontrato un problema importante durante il tentativo di inizializzare.\n La Politica di Sicurezza dei Contenuti di questo server web non consente l'impostazione richiesta\". asm\" componente da eseguire.\n Se sei l'amministratore del server, consulta la Ruffle wiki per aiuto.\nerror-unknown =\n Ruffle ha incontrato un problema importante durante il tentativo di visualizzare questo contenuto Flash.\n { $outdated ->\n [true] Se sei l'amministratore del server, prova a caricare una versione pi\xf9 recente di Ruffle (la versione attuale \xe8 obsoleta: { $buildDate }).\n *[false] Questo non dovrebbe accadere, quindi ci piacerebbe molto se si potesse inviare un bug!\n }\n","save-manager.ftl":"save-delete-prompt = Sei sicuro di voler eliminare questo file di salvataggio?\nsave-reload-prompt =\n L'unico modo per { $action ->\n [delete] delete\n *[replace] replace\n } questo salvataggio file senza potenziali conflitti \xe8 quello di ricaricare questo contenuto. Volete continuare comunque?\nsave-download = Scarica\nsave-replace = Sostituisci\nsave-delete = Elimina\nsave-backup-all = Scarica tutti i file di salvataggio\n"},"ja-JP":{"context_menu.ftl":"context-menu-download-swf = .swf\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\ncontext-menu-copy-debug-info = \u30c7\u30d0\u30c3\u30b0\u60c5\u5831\u3092\u30b3\u30d4\u30fc\ncontext-menu-open-save-manager = \u30bb\u30fc\u30d6\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u3092\u958b\u304f\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] Ruffle\u62e1\u5f35\u6a5f\u80fd\u306b\u3064\u3044\u3066 ({ $version })\n *[other] Ruffle\u306b\u3064\u3044\u3066 ({ $version })\n }\ncontext-menu-hide = \u30e1\u30cb\u30e5\u30fc\u3092\u96a0\u3059\ncontext-menu-exit-fullscreen = \u30d5\u30eb\u30b9\u30af\u30ea\u30fc\u30f3\u3092\u7d42\u4e86\ncontext-menu-enter-fullscreen = \u30d5\u30eb\u30b9\u30af\u30ea\u30fc\u30f3\u306b\u3059\u308b\n","messages.ftl":'message-unsupported-avm2 = Ruffle\u306f\u3001\u3053\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3067\u4f7f\u7528\u3055\u308c\u3066\u3044\u308bActionScript3\u306e\u4e00\u90e8\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u3001\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u4e00\u90e8\u304c\u671f\u5f85\u3069\u304a\u308a\u306b\u52d5\u4f5c\u3057\u306a\u3044\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002\nmessage-cant-embed =\n Ruffle\u306f\u3053\u306e\u30da\u30fc\u30b8\u306b\u57cb\u3081\u8fbc\u307e\u308c\u305f Flash \u3092\u5b9f\u884c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\n \u5225\u306e\u30bf\u30d6\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f\u3053\u3068\u3067\u3001\u3053\u306e\u554f\u984c\u3092\u89e3\u6c7a\u3067\u304d\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002\npanic-title = \u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f :(\nmore-info = \u8a73\u7d30\u60c5\u5831\nrun-anyway = \u3068\u306b\u304b\u304f\u5b9f\u884c\u3059\u308b\ncontinue = \u7d9a\u884c\nreport-bug = \u30d0\u30b0\u3092\u5831\u544a\nupdate-ruffle = Ruffle\u3092\u66f4\u65b0\nruffle-demo = Web\u30c7\u30e2\nruffle-desktop = \u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u30a2\u30d7\u30ea\nruffle-wiki = Ruffle Wiki\u3092\u898b\u308b\nview-error-details = \u30a8\u30e9\u30fc\u306e\u8a73\u7d30\u3092\u8868\u793a\nopen-in-new-tab = \u65b0\u3057\u3044\u30bf\u30d6\u3067\u958b\u304f\nclick-to-unmute = \u30af\u30ea\u30c3\u30af\u3067\u30df\u30e5\u30fc\u30c8\u3092\u89e3\u9664\nerror-file-protocol =\n Ruffle\u3092"file:"\u30d7\u30ed\u30c8\u30b3\u30eb\u3067\u4f7f\u7528\u3057\u3066\u3044\u308b\u3088\u3046\u3067\u3059\u3002\n \u30d6\u30e9\u30a6\u30b6\u306f\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4e0a\u306e\u7406\u7531\u304b\u3089\u6b86\u3069\u306e\u6a5f\u80fd\u3092\u5236\u9650\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u6b63\u3057\u304f\u52d5\u4f5c\u3057\u307e\u305b\u3093\u3002\n \u30ed\u30fc\u30ab\u30eb\u30b5\u30fc\u30d0\u30fc\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3059\u308b\u304b\u3001\u30a6\u30a7\u30d6\u30c7\u30e2\u307e\u305f\u306f\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u30a2\u30d7\u30ea\u3092\u3054\u5229\u7528\u304f\u3060\u3055\u3044\u3002\nerror-javascript-config =\n JavaScript\u306e\u8a2d\u5b9a\u304c\u6b63\u3057\u304f\u306a\u3044\u305f\u3081\u3001Ruffle\u3067\u554f\u984c\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\n \u30b5\u30fc\u30d0\u30fc\u7ba1\u7406\u8005\u306e\u65b9\u306f\u3001\u30a8\u30e9\u30fc\u306e\u8a73\u7d30\u304b\u3089\u3001\u3069\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u306b\u554f\u984c\u304c\u3042\u308b\u306e\u304b\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n Ruffle\u306ewiki\u3092\u53c2\u7167\u3059\u308b\u3053\u3068\u3067\u3001\u89e3\u6c7a\u65b9\u6cd5\u304c\u898b\u3064\u304b\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002\nerror-swf-cors =\n Ruffle\u306fSWF\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\n CORS\u30dd\u30ea\u30b7\u30fc\u306e\u8a2d\u5b9a\u306b\u3088\u308a\u3001fetch\u3078\u306e\u30a2\u30af\u30bb\u30b9\u304c\u30d6\u30ed\u30c3\u30af\u3055\u308c\u3066\u3044\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\n \u30b5\u30fc\u30d0\u30fc\u7ba1\u7406\u8005\u306e\u65b9\u306f\u3001Ruffle\u306ewiki\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\nerror-unknown =\n Flash\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u8868\u793a\u3059\u308b\u969b\u306bRuffle\u3067\u554f\u984c\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\n { $outdated ->\n [true] \u73fe\u5728\u4f7f\u7528\u3057\u3066\u3044\u308b\u30d3\u30eb\u30c9\u306f\u6700\u65b0\u3067\u306f\u306a\u3044\u305f\u3081\u3001\u30b5\u30fc\u30d0\u30fc\u7ba1\u7406\u8005\u306e\u65b9\u306f\u3001\u6700\u65b0\u7248\u306eRuffle\u306b\u66f4\u65b0\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044(\u73fe\u5728\u5229\u7528\u4e2d\u306e\u30d3\u30eb\u30c9: { $buildDate })\u3002\n *[false] \u60f3\u5b9a\u5916\u306e\u554f\u984c\u306a\u306e\u3067\u3001\u30d0\u30b0\u3068\u3057\u3066\u5831\u544a\u3057\u3066\u3044\u305f\u3060\u3051\u308b\u3068\u5b09\u3057\u3044\u3067\u3059!\n }\n',"save-manager.ftl":"save-delete-prompt = \u3053\u306e\u30bb\u30fc\u30d6\u30d5\u30a1\u30a4\u30eb\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?\nsave-reload-prompt =\n \u30bb\u30fc\u30d6\u30d5\u30a1\u30a4\u30eb\u3092\u7af6\u5408\u306e\u53ef\u80fd\u6027\u306a\u304f { $action ->\n [delete] \u524a\u9664\u3059\u308b\n *[replace] \u7f6e\u304d\u63db\u3048\u308b\n } \u305f\u3081\u306b\u3001\u3053\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u518d\u8aad\u307f\u8fbc\u307f\u3059\u308b\u3053\u3068\u3092\u63a8\u5968\u3057\u307e\u3059\u3002\u7d9a\u884c\u3057\u307e\u3059\u304b\uff1f\nsave-download = \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\nsave-replace = \u7f6e\u304d\u63db\u3048\nsave-delete = \u524a\u9664\nsave-backup-all = \u5168\u3066\u306e\u30bb\u30fc\u30d6\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\n"},"ko-KR":{"context_menu.ftl":"context-menu-download-swf = .swf \ub2e4\uc6b4\ub85c\ub4dc\ncontext-menu-copy-debug-info = \ub514\ubc84\uadf8 \uc815\ubcf4 \ubcf5\uc0ac\ncontext-menu-open-save-manager = \uc800\uc7a5 \uad00\ub9ac\uc790 \uc5f4\uae30\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] Ruffle \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8 \uc815\ubcf4 ({ $version })\n *[other] Ruffle \uc815\ubcf4 ({ $version })\n }\ncontext-menu-hide = \uc774 \uba54\ub274 \uc228\uae30\uae30\ncontext-menu-exit-fullscreen = \uc804\uccb4\ud654\uba74 \ub098\uac00\uae30\ncontext-menu-enter-fullscreen = \uc804\uccb4\ud654\uba74\uc73c\ub85c \uc5f4\uae30\n","messages.ftl":'message-unsupported-avm2 = Ruffle \uc5d0\ubbac\ub808\uc774\ud130\ub294 \uc561\uc158\uc2a4\ud06c\ub9bd\ud2b8 3\uc774 \uc0ac\uc6a9\ub41c \uc774 \ucf58\ud150\uce20\ub97c \uc544\uc9c1 \uc644\ubcbd\ud558\uac8c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ucf58\ud150\uce20\uc758 \uc77c\ubd80 \ub3d9\uc791\uc774 \uc608\uc0c1\ub300\ub85c \uc791\ub3d9\ud558\uc9c0 \uc54a\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\nmessage-cant-embed = Ruffle\uc774 \uc774 \ud398\uc774\uc9c0\uc5d0 \ud3ec\ud568\ub41c \ud50c\ub798\uc2dc\ub97c \uc2e4\ud589\ud560 \uc218 \uc5c6\uc5c8\uc2b5\ub2c8\ub2e4. \ubcc4\ub3c4\uc758 \ud0ed\uc5d0\uc11c \ud30c\uc77c\uc744 \uc5f4\uc5b4\ubd04\uc73c\ub85c\uc11c \uc774 \ubb38\uc81c\ub97c \ud574\uacb0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\npanic-title = \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4 :(\nmore-info = \ucd94\uac00 \uc815\ubcf4\nrun-anyway = \uadf8\ub798\ub3c4 \uc2e4\ud589\ud558\uae30\ncontinue = \uacc4\uc18d\ud558\uae30\nreport-bug = \ubc84\uadf8 \uc81c\ubcf4\nupdate-ruffle = Ruffle \uc5c5\ub370\uc774\ud2b8\nruffle-demo = \uc6f9 \ub370\ubaa8\nruffle-desktop = \ub370\uc2a4\ud06c\ud1b1 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\nruffle-wiki = Ruffle \uc704\ud0a4 \ubcf4\uae30\nview-error-details = \uc624\ub958 \uc138\ubd80 \uc815\ubcf4 \ubcf4\uae30\nopen-in-new-tab = \uc0c8 \ud0ed\uc5d0\uc11c \uc5f4\uae30\nclick-to-unmute = \ud074\ub9ad\ud558\uc5ec \uc74c\uc18c\uac70 \ud574\uc81c\nerror-file-protocol =\n Ruffle\uc744 "file:" \ud504\ub85c\ud1a0\ucf5c\uc5d0\uc11c \uc2e4\ud589\ud558\uace0 \uc788\ub294 \uac83\uc73c\ub85c \ubcf4\uc785\ub2c8\ub2e4.\n \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c\ub294 \uc774 \ud504\ub85c\ud1a0\ucf5c\uc744 \ubcf4\uc548\uc0c1\uc758 \uc774\uc720\ub85c \ub9ce\uc740 \uae30\ub2a5\uc744 \uc791\ub3d9\ud558\uc9c0 \uc54a\uac8c \ucc28\ub2e8\ud558\ubbc0\ub85c \uc774 \ubc29\ubc95\uc740 \uc791\ub3d9\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \ub300\uc2e0, \ub85c\uceec \uc11c\ubc84\ub97c \uc9c1\uc811 \uc5f4\uc5b4\uc11c \uc124\uc815\ud558\uac70\ub098 \uc6f9 \ub370\ubaa8 \ub610\ub294 \ub370\uc2a4\ud06c\ud1b1 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc0ac\uc6a9\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.\nerror-javascript-config =\n \uc798\ubabb\ub41c \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \uc124\uc815\uc73c\ub85c \uc778\ud574 Ruffle\uc5d0\uc11c \uc911\ub300\ud55c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.\n \ub9cc\uc57d \ub2f9\uc2e0\uc774 \uc11c\ubc84 \uad00\ub9ac\uc790\uc778 \uacbd\uc6b0, \uc624\ub958 \uc138\ubd80\uc0ac\ud56d\uc744 \ud655\uc778\ud558\uc5ec \uc5b4\ub5a4 \ub9e4\uac1c\ubcc0\uc218\uac00 \uc798\ubabb\ub418\uc5c8\ub294\uc9c0 \uc54c\uc544\ubcf4\uc138\uc694.\n \ub610\ub294 Ruffle \uc704\ud0a4\ub97c \ud1b5\ud574 \ub3c4\uc6c0\uc744 \ubc1b\uc544 \ubcfc \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.\nerror-wasm-not-found =\n Ruffle\uc774 ".wasm" \ud544\uc218 \ud30c\uc77c \uad6c\uc131\uc694\uc18c\ub97c \ub85c\ub4dc\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.\n \ub9cc\uc57d \ub2f9\uc2e0\uc774 \uc11c\ubc84 \uad00\ub9ac\uc790\ub77c\uba74 \ud30c\uc77c\uc774 \uc62c\ubc14\ub974\uac8c \uc5c5\ub85c\ub4dc\ub418\uc5c8\ub294\uc9c0 \ud655\uc778\ud558\uc138\uc694.\n \ubb38\uc81c\uac00 \uc9c0\uc18d\ub41c\ub2e4\uba74 "publicPath" \uc635\uc158\uc744 \uc0ac\uc6a9\ud574\uc57c \ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4: Ruffle \uc704\ud0a4\ub97c \ucc38\uc870\ud558\uc5ec \ub3c4\uc6c0\uc744 \ubc1b\uc73c\uc138\uc694.\nerror-wasm-mime-type =\n Ruffle\uc774 \ucd08\uae30\ud654\ub97c \uc2dc\ub3c4\ud558\ub294 \ub3d9\uc548 \uc911\ub300\ud55c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.\n \uc774 \uc6f9 \uc11c\ubc84\ub294 \uc62c\ubc14\ub978 MIME \uc720\ud615\uc758 ".wasm" \ud30c\uc77c\uc744 \uc81c\uacf5\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \ub9cc\uc57d \ub2f9\uc2e0\uc774 \uc11c\ubc84 \uad00\ub9ac\uc790\ub77c\uba74 Ruffle \uc704\ud0a4\ub97c \ud1b5\ud574 \ub3c4\uc6c0\uc744 \ubc1b\uc73c\uc138\uc694.\nerror-swf-fetch =\n Ruffle\uc774 \ud50c\ub798\uc2dc SWF \ud30c\uc77c\uc744 \ub85c\ub4dc\ud558\ub294 \ub370 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4.\n \uc774\ub294 \uc8fc\ub85c \ud30c\uc77c\uc774 \ub354 \uc774\uc0c1 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc544 Ruffle\uc774 \ub85c\ub4dc\ud560 \uc218 \uc788\ub294 \uac83\uc774 \uc5c6\uc744 \uac00\ub2a5\uc131\uc774 \ub192\uc2b5\ub2c8\ub2e4.\n \uc6f9\uc0ac\uc774\ud2b8 \uad00\ub9ac\uc790\uc5d0\uac8c \ubb38\uc758\ud558\uc5ec \ub3c4\uc6c0\uc744 \ubc1b\uc544\ubcf4\uc138\uc694.\nerror-swf-cors =\n Ruffle\uc774 \ud50c\ub798\uc2dc SWF \ud30c\uc77c\uc744 \ub85c\ub4dc\ud558\ub294 \ub370 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4.\n CORS \uc815\ucc45\uc5d0 \uc758\ud574 \ub370\uc774\ud130 \uac00\uc838\uc624\uae30\uc5d0 \ub300\ud55c \uc561\uc138\uc2a4\uac00 \ucc28\ub2e8\ub418\uc5c8\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \ub9cc\uc57d \ub2f9\uc2e0\uc774 \uc11c\ubc84 \uad00\ub9ac\uc790\ub77c\uba74 Ruffle \uc704\ud0a4\ub97c \ucc38\uc870\ud558\uc5ec \ub3c4\uc6c0\uc744 \ubc1b\uc544\ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.\nerror-wasm-cors =\n Ruffle\uc774 ".wasm" \ud544\uc218 \ud30c\uc77c \uad6c\uc131\uc694\uc18c\ub97c \ub85c\ub4dc\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.\n CORS \uc815\ucc45\uc5d0 \uc758\ud574 \ub370\uc774\ud130 \uac00\uc838\uc624\uae30\uc5d0 \ub300\ud55c \uc561\uc138\uc2a4\uac00 \ucc28\ub2e8\ub418\uc5c8\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \ub9cc\uc57d \ub2f9\uc2e0\uc774 \uc11c\ubc84 \uad00\ub9ac\uc790\ub77c\uba74 Ruffle \uc704\ud0a4\ub97c \ucc38\uc870\ud558\uc5ec \ub3c4\uc6c0\uc744 \ubc1b\uc544\ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.\nerror-wasm-invalid =\n Ruffle\uc774 \ucd08\uae30\ud654\ub97c \uc2dc\ub3c4\ud558\ub294 \ub3d9\uc548 \uc911\ub300\ud55c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.\n \uc774 \ud398\uc774\uc9c0\uc5d0 Ruffle\uc744 \uc2e4\ud589\ud558\uae30 \uc704\ud55c \ud30c\uc77c\uc774 \ub204\ub77d\ub418\uc5c8\uac70\ub098 \uc798\ubabb\ub41c \uac83 \uac19\uc2b5\ub2c8\ub2e4.\n \ub9cc\uc57d \ub2f9\uc2e0\uc774 \uc11c\ubc84 \uad00\ub9ac\uc790\ub77c\uba74 Ruffle \uc704\ud0a4\ub97c \ucc38\uc870\ud558\uc5ec \ub3c4\uc6c0\uc744 \ubc1b\uc544\ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.\nerror-wasm-download =\n Ruffle\uc774 \ucd08\uae30\ud654\ub97c \uc2dc\ub3c4\ud558\ub294 \ub3d9\uc548 \uc911\ub300\ud55c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.\n \uc774 \ubb38\uc81c\ub294 \ub54c\ub54c\ub85c \ubc14\ub85c \ud574\uacb0\ub420 \uc218 \uc788\uc73c\ubbc0\ub85c \ud398\uc774\uc9c0\ub97c \uc0c8\ub85c\uace0\uce68\ud558\uc5ec \ub2e4\uc2dc \uc2dc\ub3c4\ud574\ubcf4\uc138\uc694.\n \uadf8\ub798\ub3c4 \ubb38\uc81c\uac00 \uc9c0\uc18d\ub41c\ub2e4\uba74, \uc6f9\uc0ac\uc774\ud2b8 \uad00\ub9ac\uc790\uc5d0\uac8c \ubb38\uc758\ud574\uc8fc\uc138\uc694.\nerror-wasm-disabled-on-edge =\n Ruffle\uc774 ".wasm" \ud544\uc218 \ud30c\uc77c \uad6c\uc131\uc694\uc18c\ub97c \ub85c\ub4dc\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.\n \uc774\ub97c \ud574\uacb0\ud558\ub824\uba74 \ube0c\ub77c\uc6b0\uc800 \uc124\uc815\uc5d0\uc11c "\uac1c\uc778 \uc815\ubcf4, \uac80\uc0c9 \ubc0f \uc11c\ube44\uc2a4"\ub97c \ud074\ub9ad\ud55c \ud6c4, \ud558\ub2e8\uc73c\ub85c \uc2a4\ud06c\ub864\ud558\uc5ec "\uc6f9\uc5d0\uc11c \ubcf4\uc548 \uac15\ud654" \uae30\ub2a5\uc744 \uaebc\uc57c \ud569\ub2c8\ub2e4.\n \uc774\ub294 \ud544\uc694\ud55c ".wasm" \ud30c\uc77c\uc744 \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \ub85c\ub4dc\ud560 \uc218 \uc788\ub3c4\ub85d \ud5c8\uc6a9\ud569\ub2c8\ub2e4.\n \uc774 \ubb38\uc81c\uac00 \uc9c0\uc18d\ub420 \uacbd\uc6b0 \ub2e4\ub978 \ube0c\ub77c\uc6b0\uc800\ub97c \uc0ac\uc6a9\ud574\uc57c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\nerror-javascript-conflict =\n Ruffle\uc774 \ucd08\uae30\ud654\ub97c \uc2dc\ub3c4\ud558\ub294 \ub3d9\uc548 \uc911\ub300\ud55c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.\n \uc774 \ud398\uc774\uc9c0\uc5d0\uc11c \uc0ac\uc6a9\ub418\ub294 \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \ucf54\ub4dc\uac00 Ruffle\uacfc \ucda9\ub3cc\ud558\ub294 \uac83\uc73c\ub85c \ubcf4\uc785\ub2c8\ub2e4.\n \ub9cc\uc57d \ub2f9\uc2e0\uc774 \uc11c\ubc84 \uad00\ub9ac\uc790\ub77c\uba74 \ube48 \ud398\uc774\uc9c0\uc5d0\uc11c \ud30c\uc77c\uc744 \ub85c\ub4dc\ud574\ubcf4\uc138\uc694.\nerror-javascript-conflict-outdated = \ub610\ud55c Ruffle\uc758 \ucd5c\uc2e0 \ubc84\uc804\uc744 \uc5c5\ub85c\ub4dc\ud558\ub294 \uac83\uc744 \uc2dc\ub3c4\ud558\uc5ec \ubb38\uc81c\ub97c \uc6b0\ud68c\ud574\ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. (\ud604\uc7ac \ube4c\ub4dc\uac00 \uc624\ub798\ub418\uc5c8\uc2b5\ub2c8\ub2e4: { $buildDate }).\nerror-csp-conflict =\n Ruffle\uc774 \ucd08\uae30\ud654\ub97c \uc2dc\ub3c4\ud558\ub294 \ub3d9\uc548 \uc911\ub300\ud55c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.\n \uc774 \uc6f9 \uc11c\ubc84\uc758 CSP(Content Security Policy) \uc815\ucc45\uc774 ".wasm" \ud544\uc218 \uad6c\uc131\uc694\uc18c\ub97c \uc2e4\ud589\ud558\ub294 \uac83\uc744 \ud5c8\uc6a9\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \ub9cc\uc57d \ub2f9\uc2e0\uc774 \uc11c\ubc84 \uad00\ub9ac\uc790\ub77c\uba74 Ruffle \uc704\ud0a4\ub97c \ucc38\uc870\ud558\uc5ec \ub3c4\uc6c0\uc744 \ubc1b\uc544\ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.\nerror-unknown =\n Ruffle\uc774 \ud50c\ub798\uc2dc \ucf58\ud150\uce20\ub97c \ud45c\uc2dc\ud558\ub824\uace0 \uc2dc\ub3c4\ud558\ub294 \ub3d9\uc548 \uc911\ub300\ud55c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.\n { $outdated ->\n [true] \ub9cc\uc57d \ub2f9\uc2e0\uc774 \uc11c\ubc84 \uad00\ub9ac\uc790\ub77c\uba74, Ruffle\uc758 \ucd5c\uc2e0 \ubc84\uc804\uc744 \uc5c5\ub85c\ub4dc\ud558\uc5ec \ub2e4\uc2dc \uc2dc\ub3c4\ud574\ubcf4\uc138\uc694. (\ud604\uc7ac \ube4c\ub4dc\uac00 \uc624\ub798\ub418\uc5c8\uc2b5\ub2c8\ub2e4: { $buildDate }).\n *[false] \uc774\ub7f0 \ud604\uc0c1\uc774 \ubc1c\uc0dd\ud574\uc11c\ub294 \uc548\ub418\ubbc0\ub85c, \ubc84\uadf8\ub97c \uc81c\ubcf4\ud574\uc8fc\uc2e0\ub2e4\uba74 \uac10\uc0ac\ud558\uaca0\uc2b5\ub2c8\ub2e4!\n }\n',"save-manager.ftl":"save-delete-prompt = \uc815\ub9d0\ub85c \uc774 \uc138\uc774\ube0c \ud30c\uc77c\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?\nsave-reload-prompt =\n \b\uc774 \ud30c\uc77c\uc744 \uc7a0\uc7ac\uc801\uc778 \ucda9\ub3cc \uc5c6\uc774 { $action ->\n [delete] \uc0ad\uc81c\n *[replace] \uad50\uccb4\n }\ud558\ub824\uba74 \ucf58\ud150\uce20\ub97c \ub2e4\uc2dc \ub85c\ub4dc\ud574\uc57c \ud569\ub2c8\ub2e4. \uadf8\ub798\ub3c4 \uacc4\uc18d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?\nsave-download = \ub2e4\uc6b4\ub85c\ub4dc\nsave-replace = \uad50\uccb4\nsave-delete = \uc0ad\uc81c\nsave-backup-all = \ubaa8\ub4e0 \uc800\uc7a5 \ud30c\uc77c \ub2e4\uc6b4\ub85c\ub4dc\n"},"nl-NL":{"context_menu.ftl":"context-menu-download-swf = .swf downloaden\ncontext-menu-copy-debug-info = Kopieer debuginformatie\ncontext-menu-open-save-manager = Open opgeslagen-data-manager\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] Over Ruffle Uitbreiding ({ $version })\n *[other] Over Ruffle ({ $version })\n }\ncontext-menu-hide = Verberg dit menu\ncontext-menu-exit-fullscreen = Verlaat volledig scherm\ncontext-menu-enter-fullscreen = Naar volledig scherm\n","messages.ftl":'message-unsupported-avm2 =\n De Ruffle emulator ondersteunt mogelijk nog niet alle ActionScript 3 die door deze inhoud wordt gebruikt volledig.\n Sommige delen van de inhoud werken mogelijk niet zoals verwacht.\nmessage-cant-embed =\n Ruffle kon de Flash-inhoud op de pagina niet draaien.\n Je kan proberen het bestand in een apart tabblad te openen, om hier omheen te werken.\npanic-title = Er ging iets mis :(\nmore-info = Meer informatie\nrun-anyway = Toch starten\ncontinue = Doorgaan\nreport-bug = Bug rapporteren\nupdate-ruffle = Ruffle updaten\nruffle-demo = Web Demo\nruffle-desktop = Desktopapplicatie\nruffle-wiki = Bekijk de Ruffle Wiki\nview-error-details = Foutdetails tonen\nopen-in-new-tab = Openen in een nieuw tabblad\nclick-to-unmute = Klik om te ontdempen\nerror-file-protocol =\n Het lijkt erop dat je Ruffle gebruikt met het "file" protocol.\n De meeste browsers blokkeren dit om veiligheidsredenen, waardoor het niet werkt.\n In plaats hiervan raden we aan om een lokale server te draaien, de web demo te gebruiken, of de desktopapplicatie.\nerror-javascript-config =\n Ruffle heeft een groot probleem ondervonden vanwege een onjuiste JavaScript configuratie.\n Als je de serverbeheerder bent, kijk dan naar de foutdetails om te zien wat er verkeerd is.\n Je kan ook in de Ruffle wiki kijken voor hulp.\nerror-wasm-not-found =\n Ruffle kon het vereiste ".wasm" bestandscomponent niet laden.\n Als je de serverbeheerder bent, controleer dan of het bestaand juist is ge\xfcpload.\n Mocht het probleem blijven voordoen, moet je misschien de "publicPath" instelling gebruiken: zie ook de Ruffle wiki voor hulp.\nerror-wasm-mime-type =\n Ruffle heeft een groot probleem ondervonden tijdens het initialiseren.\n Deze webserver serveert ".wasm" bestanden niet met het juiste MIME type.\n Als je de serverbeheerder bent, kijk dan in de Ruffle wiki voor hulp.\nerror-swf-fetch =\n Ruffle kon het Flash SWF bestand niet inladen.\n De meest waarschijnlijke reden is dat het bestand niet langer bestaat, en er dus niets is om in te laden.\n Probeer contact op te nemen met de websitebeheerder voor hulp.\nerror-swf-cors =\n Ruffle kon het Flash SWD bestand niet inladen.\n Toegang is waarschijnlijk geblokeerd door het CORS beleid.\n Als je de serverbeheerder bent, kijk dan in de Ruffle wiki voor hulp.\nerror-wasm-cors =\n Ruffle kon het vereiste ".wasm" bestandscomponent niet laden.\n Toegang is waarschijnlijk geblokeerd door het CORS beleid.\n Als je de serverbeheerder bent, kijk dan in de Ruffle wiki voor hulp.\nerror-wasm-invalid =\n Ruffle heeft een groot probleem ondervonden tijdens het initialiseren.\n Het lijkt erop dat de Ruffle bestanden ontbreken of ongeldig zijn.\n Als je de serverbeheerder bent, kijk dan in de Ruffle wiki voor hulp.\nerror-wasm-download =\n Ruffle heeft een groot probleem ondervonden tijdens het initialiseren.\n Dit lost zichzelf vaak op als je de bladzijde opnieuw inlaadt.\n Zo niet, neem dan contact op met de websitebeheerder.\nerror-wasm-disabled-on-edge =\n Ruffle kon het vereiste ".wasm" bestandscomponent niet laden.\n Om dit op te lossen, ga naar je browserinstellingen, klik op "Privacy, zoeken en diensten", scroll omlaag, en schakel "Verbeter je veiligheid op he web" uit.\n Dan kan je browser wel de vereiste ".wasm" bestanden inladen.\n Als het probleem zich blijft voordoen, moet je misschien een andere browser gebruiken.\nerror-javascript-conflict =\n Ruffle heeft een groot probleem ondervonden tijdens het initialiseren.\n Het lijkt erop dat deze pagina JavaScript code gebruikt die conflicteert met Ruffle.\n Als je de serverbeheerder bent, raden we aan om het bestand op een lege pagina te proberen in te laden.\nerror-javascript-conflict-outdated = Je kan ook proberen een nieuwe versie van Ruffle te installeren, om om het probleem heen te werken (huidige versie is oud: { $buildDate }).\nerror-csp-conflict =\n Ruffle heeft een groot probleem ondervonden tijdens het initialiseren.\n Het CSP-beleid staat niet toe dat het vereiste ".wasm" component kan draaien.\n Als je de serverbeheerder bent, kijk dan in de Ruffle wiki voor hulp.\nerror-unknown =\n Ruffle heeft een groot probleem onderbonden tijdens het weergeven van deze Flash-inhoud.\n { $outdated ->\n [true] Als je de serverbeheerder bent, upload dan een nieuwe versie van Ruffle (huidige versie is oud: { $buildDate }).\n *[false] Dit hoort niet te gebeuren, dus we stellen het op prijs als je de fout aan ons rapporteert!\n }\n',"save-manager.ftl":"save-delete-prompt = Weet je zeker dat je deze opgeslagen data wilt verwijderen?\nsave-reload-prompt =\n De enige manier om deze opgeslagen data te { $action ->\n [delete] verwijderen\n *[replace] vervangen\n } zonder potenti\xeble problemen is door de inhoud opnieuw te laden. Toch doorgaan?\nsave-download = Downloaden\nsave-replace = Vervangen\nsave-delete = Verwijderen\nsave-backup-all = Download alle opgeslagen data\n"},"pt-PT":{"context_menu.ftl":"context-menu-download-swf = Transferir .swf\ncontext-menu-copy-debug-info = Copiar informa\xe7\xf5es de depura\xe7\xe3o\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] Sobre a extens\xe3o do Ruffle ({ $version })\n *[other] Sobre o Ruffle ({ $version })\n }\ncontext-menu-hide = Esconder este menu\ncontext-menu-exit-fullscreen = Sair do modo de Ecr\xe3 Inteiro\ncontext-menu-enter-fullscreen = Entrar no modo de Ecr\xe3 Inteiro\n","messages.ftl":'message-unsupported-avm2 =\n O emulador Ruffle pode n\xe3o suportar todo o ActionScript 3 usado neste conte\xfado.\n Algumas partes do conte\xfado podem n\xe3o funcionar como previsto.\nmessage-cant-embed =\n O Ruffle n\xe3o conseguiu abrir o Flash integrado nesta p\xe1gina.\n Para tentar resolver o problema, pode abrir o ficheiro num novo separador.\npanic-title = Algo correu mal :(\nmore-info = Mais informa\xe7\xf5es\nrun-anyway = Executar de qualquer forma\ncontinue = Cont\xednuar\nreport-bug = Reportar Problema\nupdate-ruffle = Atualizar o Ruffle\nruffle-demo = Demonstra\xe7\xe3o na Web\nruffle-desktop = Aplica\xe7\xe3o para Desktop\nruffle-wiki = Ver a Wiki do Ruffle\nview-error-details = Ver Detalhes do Erro\nopen-in-new-tab = Abrir num novo separador\nclick-to-unmute = Clica para ativar o som\nerror-file-protocol =\n Parece que executa o Ruffle no protocolo "file:".\n Isto n\xe3o funciona, pois, Navegadores de Internet bloqueiam muitas funcionalidades por raz\xf5es de seguran\xe7a.\n Em vez disto, n\xf3s recomendados configurar um servidor local ou usar a demonstra\xe7\xe3o na web, ou a aplica\xe7\xe3o para desktop.\n',"save-manager.ftl":""},"ro-RO":{"context_menu.ftl":"context-menu-download-swf = Descarc\u0103 .swf\ncontext-menu-copy-debug-info = Copia\u021bi informa\u021biile de depanare\ncontext-menu-open-save-manager = Deschide manager de salv\u0103ri\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] Despre extensia Ruffle ({ $version })\n *[other] Despre Ruffle ({ $version })\n }\ncontext-menu-hide = Ascunde acest meniu\ncontext-menu-exit-fullscreen = Ie\u0219i\u021bi din ecranul complet\ncontext-menu-enter-fullscreen = Intr\u0103 \xeen ecran complet\n","messages.ftl":'message-unsupported-avm2 =\n Emulatorul Ruffle poate s\u0103 nu accepte \xeenc\u0103 pe deplin tot ActionScript 3 folosit de acest con\u0163inut.\n Este posibil ca unele p\u0103r\u021bi ale con\u021binutului s\u0103 nu func\u021bioneze conform a\u0219tept\u0103rilor.\nmessage-cant-embed =\n Ruffle nu a putut rula Flash \xeencorporat \xeen aceast\u0103 pagin\u0103.\n Pute\u021bi \xeencerca s\u0103 deschide\u021bi fi\u0219ierul \xeentr-o fil\u0103 separat\u0103, pentru a evita aceast\u0103 problem\u0103.\npanic-title = Ceva a mers prost :(\nmore-info = Mai multe informatii\nrun-anyway = Ruleaz\u0103 oricum\ncontinue = Continuare\nreport-bug = Raporteaz\u0103 o eroare\nupdate-ruffle = Actualizeaz\u0103\nruffle-demo = Demo Web\nruffle-desktop = Aplica\u021bie desktop\nruffle-wiki = Vezi Ruffle Wiki\nview-error-details = Vezi detaliile de eroare\nopen-in-new-tab = Deschidere in fil\u0103 nou\u0103\nclick-to-unmute = \xcenl\u0103tur\u0103 amu\u021birea\nerror-file-protocol =\n Se pare c\u0103 rula\u021bi Ruffle pe protocolul "fi\u0219ier:".\n Aceasta nu func\u021bioneaz\u0103 ca browsere blocheaz\u0103 multe caracteristici din motive de securitate.\n \xcen schimb, v\u0103 invit\u0103m s\u0103 configura\u021bi un server local sau s\u0103 folosi\u021bi aplica\u021bia web demo sau desktop.\nerror-javascript-config =\n Ruffle a \xeent\xe2mpinat o problem\u0103 major\u0103 din cauza unei configur\u0103ri incorecte a JavaScript.\n Dac\u0103 sunte\u021bi administratorul serverului, v\u0103 invit\u0103m s\u0103 verifica\u021bi detaliile de eroare pentru a afla care parametru este defect.\n Pute\u021bi consulta \u0219i Ruffle wiki pentru ajutor.\nerror-wasm-not-found =\n Ruffle a e\u0219uat la \xeenc\u0103rcarea componentei de fi\u0219ier ".wasm".\n Dac\u0103 sunte\u021bi administratorul serverului, v\u0103 rug\u0103m s\u0103 v\u0103 asigura\u021bi c\u0103 fi\u0219ierul a fost \xeenc\u0103rcat corect.\n Dac\u0103 problema persist\u0103, poate fi necesar s\u0103 utiliza\u0163i setarea "publicPath": v\u0103 rug\u0103m s\u0103 consulta\u0163i Ruffle wiki pentru ajutor.\nerror-wasm-mime-type =\n Ruffle a \xeent\xe2mpinat o problem\u0103 major\u0103 \xeen timp ce se \xeencerca ini\u021bializarea.\n Acest server web nu serve\u0219te ". asm" fi\u0219iere cu tipul corect MIME.\n Dac\u0103 sunte\u021bi administrator de server, v\u0103 rug\u0103m s\u0103 consulta\u021bi Ruffle wiki pentru ajutor.\nerror-swf-fetch =\n Ruffle a e\u0219uat la \xeenc\u0103rcarea fi\u0219ierului Flash SWF.\n Motivul cel mai probabil este c\u0103 fi\u015fierul nu mai exist\u0103, deci nu exist\u0103 nimic pentru Ruffle s\u0103 se \xeencarce.\n \xcencerca\u021bi s\u0103 contacta\u021bi administratorul site-ului web pentru ajutor.\nerror-swf-cors =\n Ruffle a e\u0219uat la \xeenc\u0103rcarea fi\u0219ierului Flash SWF.\n Accesul la preluare a fost probabil blocat de politica CORS.\n Dac\u0103 sunte\u0163i administratorul serverului, v\u0103 rug\u0103m s\u0103 consulta\u0163i Ruffle wiki pentru ajutor.\nerror-wasm-cors =\n Ruffle a e\u0219uat \xeen \xeenc\u0103rcarea componentei de fi\u0219ier ".wasm".\n Accesul la preluare a fost probabil blocat de politica CORS.\n Dac\u0103 sunte\u0163i administratorul serverului, v\u0103 rug\u0103m s\u0103 consulta\u0163i Ruffle wiki pentru ajutor.\nerror-wasm-invalid =\n Ruffle a \xeent\xe2mpinat o problem\u0103 major\u0103 \xeen timp ce se \xeencearc\u0103 ini\u021bializarea.\n Se pare c\u0103 aceast\u0103 pagin\u0103 are fi\u0219iere lips\u0103 sau invalide pentru rularea Ruffle.\n Dac\u0103 sunte\u0163i administratorul serverului, v\u0103 rug\u0103m s\u0103 consulta\u0163i Ruffle wiki pentru ajutor.\nerror-wasm-download =\n Ruffle a \xeent\xe2mpinat o problem\u0103 major\u0103 \xeen timp ce \xeencerca s\u0103 ini\u021bializeze.\n Acest lucru se poate rezolva adesea, astfel \xeenc\xe2t pute\u0163i \xeencerca s\u0103 re\xeenc\u0103rca\u0163i pagina.\n Altfel, v\u0103 rug\u0103m s\u0103 contacta\u0163i administratorul site-ului.\nerror-wasm-disabled-on-edge =\n Ruffle nu a putut \xeenc\u0103rca componenta de fi\u0219ier ".wasm".\n Pentru a remedia acest lucru, \xeencerca\u021bi s\u0103 deschide\u021bi set\u0103rile browser-ului dvs., ap\u0103s\xe2nd pe "Confiden\u021bialitate, c\u0103utare \u0219i servicii", derul\xe2nd \xeen jos \u0219i \xeenchiz\xe2nd "\xcembun\u0103t\u0103\u021be\u0219te-\u021bi securitatea pe web".\n Acest lucru va permite browser-ului s\u0103 \xeencarce fi\u0219ierele ".wasm" necesare.\n Dac\u0103 problema persist\u0103, ar putea fi necesar s\u0103 folosi\u021bi un browser diferit.\nerror-javascript-conflict =\n Ruffle a \xeent\xe2mpinat o problem\u0103 major\u0103 \xeen timp ce \xeencerca s\u0103 ini\u021bializeze.\n Se pare c\u0103 aceast\u0103 pagin\u0103 folose\u0219te codul JavaScript care intr\u0103 \xeen conflict cu Ruffle.\n Dac\u0103 sunte\u0163i administratorul serverului, v\u0103 invit\u0103m s\u0103 \xeenc\u0103rca\u0163i fi\u015fierul pe o pagin\u0103 goal\u0103.\nerror-javascript-conflict-outdated = De asemenea, po\u021bi \xeencerca s\u0103 \xeencarci o versiune mai recent\u0103 de Ruffle care poate ocoli problema (versiunea curent\u0103 este expirat\u0103: { $buildDate }).\nerror-csp-conflict =\n Ruffle a \xeent\xe2mpinat o problem\u0103 major\u0103 \xeen timp ce se \xeencerca ini\u021bializarea.\n Politica de securitate a con\u021binutului acestui server web nu permite serviciul necesar". asm" component\u0103 pentru a rula.\n Dac\u0103 sunte\u021bi administratorul de server, consulta\u021bi Ruffle wiki pentru ajutor.\nerror-unknown =\n Ruffle a \xeent\xe2mpinat o problem\u0103 major\u0103 \xeen timp ce se \xeencerca afi\u0219area con\u021binutului Flash.\n { $outdated ->\n [true] Dac\u0103 sunte\u021bi administratorul de server, v\u0103 rug\u0103m s\u0103 \xeencerca\u0163i s\u0103 \xeenc\u0103rca\u0163i o versiune mai recent\u0103 de Ruffle (versiunea curent\u0103 este dep\u0103\u015fit\u0103: { $buildDate }).\n *[false] Acest lucru nu ar trebui s\u0103 se \xeent\xe2mple, a\u0219a c\u0103 am aprecia foarte mult dac\u0103 ai putea trimite un bug!\n }\n',"save-manager.ftl":"save-delete-prompt = Sunte\u0163i sigur c\u0103 dori\u0163i s\u0103 \u015fterge\u0163i acest fi\u015fier salvat?\nsave-reload-prompt =\n Singura cale de a { $action ->\n [delete] \u0219terge\n *[replace] \xeenlocuie\u0219te\n } acest fi\u0219ier de salvare f\u0103r\u0103 un conflict poten\u021bial este de a re\xeenc\u0103rca acest con\u021binut. Dori\u021bi s\u0103 continua\u021bi oricum?\nsave-download = Desc\u0103rcare\nsave-replace = \xcenlocuie\u0219te\nsave-delete = \u0218tergere\n"},"ru-RU":{"context_menu.ftl":"context-menu-download-swf = \u0421\u043a\u0430\u0447\u0430\u0442\u044c .swf\ncontext-menu-copy-debug-info = \u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e\ncontext-menu-open-save-manager = \u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0439\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] \u041e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0438 Ruffle ({ $version })\n *[other] \u041e Ruffle ({ $version })\n }\ncontext-menu-hide = \u0421\u043a\u0440\u044b\u0442\u044c \u044d\u0442\u043e \u043c\u0435\u043d\u044e\ncontext-menu-exit-fullscreen = \u041e\u043a\u043e\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c\ncontext-menu-enter-fullscreen = \u041f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c\n","messages.ftl":'message-unsupported-avm2 =\n \u042d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 Ruffle \u0435\u0449\u0451 \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 ActionScript 3, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0432 \u044d\u0442\u043e\u043c \u0444\u0430\u0439\u043b\u0435.\n \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0438\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438.\nmessage-cant-embed =\n Ruffle \u043d\u0435 \u0441\u043c\u043e\u0433 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c Flash, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u043d\u0430 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435.\n \u0427\u0442\u043e\u0431\u044b \u043e\u0431\u043e\u0439\u0442\u0438 \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u0430\u0439\u043b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0432\u043a\u043b\u0430\u0434\u043a\u0435.\npanic-title = \u0427\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a :(\nmore-info = \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435\nrun-anyway = \u0412\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\ncontinue = \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c\nreport-bug = \u0421\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435\nupdate-ruffle = \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c Ruffle\nruffle-demo = \u0412\u0435\u0431-\u0434\u0435\u043c\u043e\nruffle-desktop = \u041d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\nruffle-wiki = \u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0432\u0438\u043a\u0438 Ruffle\nview-error-details = \u0421\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435\nopen-in-new-tab = \u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 \u043d\u043e\u0432\u043e\u0439 \u0432\u043a\u043b\u0430\u0434\u043a\u0435\nclick-to-unmute = \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0437\u0432\u0443\u043a\nerror-file-protocol =\n \u041f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e \u0432\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0435 Ruffle \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 "file:".\n \u042d\u0442\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044b \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u043c\u043d\u043e\u0433\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043f\u043e \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438.\n \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432\u0430\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0432\u0435\u0431-\u0434\u0435\u043c\u043e \u0438\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440.\nerror-javascript-config =\n \u0412\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0438\u0437-\u0437\u0430 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 JavaScript.\n \u0415\u0441\u043b\u0438 \u0432\u044b \u044f\u0432\u043b\u044f\u0435\u0442\u0435\u0441\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043c\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432\u0430\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0434\u0430\u043b \u0441\u0431\u043e\u0439.\n \u0412\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u0437\u0430 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a \u0432\u0438\u043a\u0438 Ruffle.\nerror-wasm-not-found =\n Ruffle \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0444\u0430\u0439\u043b\u0430 ".wasm".\n \u0415\u0441\u043b\u0438 \u0432\u044b \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0444\u0430\u0439\u043b \u0431\u044b\u043b \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e.\n \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f, \u0432\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 "publicPath": \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a \u0432\u0438\u043a\u0438 Ruffle.\nerror-wasm-mime-type =\n Ruffle \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.\n \u042d\u0442\u043e\u0442 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0444\u0430\u0439\u043b\u044b ".wasm" \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0442\u0438\u043f\u043e\u043c MIME.\n \u0415\u0441\u043b\u0438 \u0432\u044b \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u0437\u0430 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a \u0432\u0438\u043a\u0438 Ruffle.\nerror-swf-fetch =\n Ruffle \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c SWF-\u0444\u0430\u0439\u043b Flash.\n \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0444\u0430\u0439\u043b \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 Ruffle \u043d\u0435\u0447\u0435\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c.\n \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u0432\u044f\u0437\u0430\u0442\u044c\u0441\u044f \u0441 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0441\u0430\u0439\u0442\u0430 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043c\u043e\u0449\u0438.\nerror-swf-cors =\n Ruffle \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c SWF-\u0444\u0430\u0439\u043b Flash.\n \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0444\u0430\u0439\u043b\u0443 \u0431\u044b\u043b \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u043e\u0439 CORS.\n \u0415\u0441\u043b\u0438 \u0432\u044b \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u0437\u0430 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a \u0432\u0438\u043a\u0438 Ruffle.\nerror-wasm-cors =\n Ruffle \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0444\u0430\u0439\u043b\u0430 ".wasm".\n \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0444\u0430\u0439\u043b\u0443 \u0431\u044b\u043b \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u043e\u0439 CORS.\n \u0415\u0441\u043b\u0438 \u0432\u044b \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u0437\u0430 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a \u0432\u0438\u043a\u0438 Ruffle.\nerror-wasm-invalid =\n Ruffle \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.\n \u041f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e \u043d\u0430 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Ruffle \u0438\u043b\u0438 \u043e\u043d\u0438 \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b.\n \u0415\u0441\u043b\u0438 \u0432\u044b \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u0437\u0430 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a \u0432\u0438\u043a\u0438 Ruffle.\nerror-wasm-download =\n Ruffle \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.\n \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u0430 \u0441\u043e\u0431\u043e\u044e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443.\n \u0415\u0441\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f, \u0441\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0441\u0430\u0439\u0442\u0430.\nerror-wasm-disabled-on-edge =\n Ruffle \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0444\u0430\u0439\u043b\u0430 ".wasm".\n \u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u0443 \u043e\u0448\u0438\u0431\u043a\u0443, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0443 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 WASM-\u0444\u0430\u0439\u043b\u044b.\n \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c, \u0432\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u0440\u0443\u0433\u043e\u0439 \u0431\u0440\u0430\u0443\u0437\u0435\u0440.\nerror-javascript-conflict =\n Ruffle \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.\n \u041f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e \u044d\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0443\u044e\u0449\u0438\u0439 \u0441 Ruffle \u043a\u043e\u0434 JavaScript.\n \u0415\u0441\u043b\u0438 \u0432\u044b \u044f\u0432\u043b\u044f\u0435\u0442\u0435\u0441\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043c\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432\u0430\u043c \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u043d\u0430 \u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435.\nerror-javascript-conflict-outdated = \u0412\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e Ruffle, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u043e\u0439\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 (\u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0430: { $buildDate }).\nerror-csp-conflict =\n Ruffle \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.\n \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u044d\u0442\u043e\u0433\u043e \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 ".wasm".\n \u0415\u0441\u043b\u0438 \u0432\u044b \u044f\u0432\u043b\u044f\u0435\u0442\u0435\u0441\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u0437\u0430 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a \u0432\u0438\u043a\u0438 Ruffle.\nerror-unknown =\n Ruffle \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u044d\u0442\u043e\u0442 Flash-\u043a\u043e\u043d\u0442\u0435\u043d\u0442.\n { $outdated ->\n [true] \u0415\u0441\u043b\u0438 \u0432\u044b \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e Ruffle (\u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0430: { $buildDate }).\n *[false] \u042d\u0442\u043e\u0433\u043e \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u0438\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u044b, \u0435\u0441\u043b\u0438 \u0432\u044b \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u0435 \u043d\u0430\u043c \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435!\n }\n',"save-manager.ftl":"save-delete-prompt = \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f?\nsave-reload-prompt =\n \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 { $action ->\n [delete] \u0443\u0434\u0430\u043b\u0438\u0442\u044c\n *[replace] \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c\n } \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0430 \u2013 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442. \u0412\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c?\nsave-download = \u0421\u043a\u0430\u0447\u0430\u0442\u044c\nsave-replace = \u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c\nsave-delete = \u0423\u0434\u0430\u043b\u0438\u0442\u044c\nsave-backup-all = \u0421\u043a\u0430\u0447\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f\n"},"sk-SK":{"context_menu.ftl":"context-menu-download-swf = Stiahnu\u0165 .swf\ncontext-menu-copy-debug-info = Skop\xedrova\u0165 debug info\ncontext-menu-open-save-manager = Otvori\u0165 spr\xe1vcu ulo\u017een\xed\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] O Ruffle roz\u0161\xedren\xed ({ $version })\n *[other] O Ruffle ({ $version })\n }\ncontext-menu-hide = Skry\u0165 menu\ncontext-menu-exit-fullscreen = Ukon\u010di\u0165 re\u017eim celej obrazovky\ncontext-menu-enter-fullscreen = Prejs\u0165 do re\u017eimu celej obrazovky\n","messages.ftl":'message-unsupported-avm2 =\n Emul\xe1tor Ruffle e\u0161te nemus\xed plne podporova\u0165 cel\xfd jazyk ActionScript 3 pou\u017e\xedvan\xfd t\xfdmto obsahom.\n Niektor\xe9 \u010dasti obsahu nemusia fungova\u0165 spr\xe1vne.\nmessage-cant-embed =\n Ruffle nemohol spusti\u0165 Flash vlo\u017een\xfd na tejto str\xe1nke.\n M\xf4\u017eete sa pok\xfasi\u0165 otvori\u0165 s\xfabor na samostatnej karte, aby ste sa vyhli tomuto probl\xe9mu.\npanic-title = Nie\u010do sa pokazilo :(\nmore-info = Viac inform\xe1ci\xed\nrun-anyway = Spusti\u0165 aj tak\ncontinue = Pokra\u010dova\u0165\nreport-bug = Nahl\xe1si\u0165 chybu\nupdate-ruffle = Aktualizova\u0165 Ruffle\nruffle-demo = Web Demo\nruffle-desktop = Desktopov\xe1 aplik\xe1cia\nruffle-wiki = Zobrazi\u0165 Ruffle Wiki\nview-error-details = Zobrazi\u0165 podrobnosti o chybe\nopen-in-new-tab = Otvori\u0165 na novej karte\nclick-to-unmute = Kliknut\xedm zapnete zvuk\nerror-file-protocol =\n Zd\xe1 sa, \u017ee pou\u017e\xedvate Ruffle na protokole "file:".\n To nie je mo\u017en\xe9, preto\u017ee prehliada\u010de blokuj\xfa fungovanie mnoh\xfdch funkci\xed z bezpe\u010dnostn\xfdch d\xf4vodov.\n Namiesto toho v\xe1m odpor\xfa\u010dame nastavi\u0165 lok\xe1lny server alebo pou\u017ei\u0165 web demo \u010di desktopov\xfa aplik\xe1ciu.\nerror-javascript-config =\n Ruffle narazil na probl\xe9m v d\xf4sledku nespr\xe1vnej konfigur\xe1cie JavaScriptu.\n Ak ste spr\xe1vcom servera, odpor\xfa\u010dame v\xe1m skontrolova\u0165 podrobnosti o chybe, aby ste zistili, ktor\xfd parameter je chybn\xfd.\n Pomoc m\xf4\u017eete z\xedska\u0165 aj na wiki Ruffle.\nerror-wasm-not-found =\n Ruffle sa nepodarilo na\u010d\xedta\u0165 po\u017eadovan\xfd komponent s\xfaboru \u201e.wasm\u201c.\n Ak ste spr\xe1vcom servera, skontrolujte, \u010di bol s\xfabor spr\xe1vne nahran\xfd.\n Ak probl\xe9m pretrv\xe1va, mo\u017eno budete musie\u0165 pou\u017ei\u0165 nastavenie \u201epublicPath\u201c: pomoc n\xe1jdete na wiki Ruffle.\nerror-wasm-mime-type =\n Ruffle narazil na probl\xe9m pri pokuse o inicializ\xe1ciu.\n Tento webov\xfd server neposkytuje s\xfabory \u201e.wasm\u201c so spr\xe1vnym typom MIME.\n Ak ste spr\xe1vcom servera, pomoc n\xe1jdete na Ruffle wiki.\nerror-swf-fetch =\n Ruffle sa nepodarilo na\u010d\xedta\u0165 SWF s\xfabor Flash.\n Najpravdepodobnej\u0161\xedm d\xf4vodom je, \u017ee s\xfabor u\u017e neexistuje, tak\u017ee Ruffle nem\xe1 \u010do na\u010d\xedta\u0165.\n Sk\xfaste po\u017eiada\u0165 o pomoc spr\xe1vcu webovej lokality.\nerror-swf-cors =\n Ruffle sa nepodarilo na\u010d\xedta\u0165 SWF s\xfabor Flash.\n Pr\xedstup k na\u010d\xedtaniu bol pravdepodobne zablokovan\xfd politikou CORS.\n Ak ste spr\xe1vcom servera, pomoc n\xe1jdete na Ruffle wiki.\nerror-wasm-cors =\n Ruffle sa nepodarilo na\u010d\xedta\u0165 po\u017eadovan\xfd komponent s\xfaboru \u201e.wasm\u201c.\n Pr\xedstup k na\u010d\xedtaniu bol pravdepodobne zablokovan\xfd politikou CORS.\n Ak ste spr\xe1vcom servera, pomoc n\xe1jdete na Ruffle wiki.\nerror-wasm-invalid =\n Ruffle narazil na probl\xe9m pri pokuse o inicializ\xe1ciu.\n Zd\xe1 sa, \u017ee na tejto str\xe1nke ch\xfdbaj\xfa alebo s\xfa neplatn\xe9 s\xfabory na spustenie Ruffle.\n Ak ste spr\xe1vcom servera, pomoc n\xe1jdete na Ruffle wiki.\nerror-wasm-download =\n Ruffle narazil na probl\xe9m pri pokuse o inicializ\xe1ciu.\n Probl\xe9m sa m\xf4\u017ee vyrie\u0161i\u0165 aj s\xe1m, tak\u017ee m\xf4\u017eete sk\xfasi\u0165 str\xe1nku na\u010d\xedta\u0165 znova.\n V opa\u010dnom pr\xedpade kontaktujte administr\xe1tora str\xe1nky.\nerror-wasm-disabled-on-edge =\n Ruffle sa nepodarilo na\u010d\xedta\u0165 po\u017eadovan\xfd komponent s\xfaboru \u201e.wasm\u201c.\n Ak chcete tento probl\xe9m vyrie\u0161i\u0165, sk\xfaste otvori\u0165 nastavenia prehliada\u010da, kliknite na polo\u017eku \u201eOchrana osobn\xfdch \xfadajov, vyh\u013ead\xe1vanie a slu\u017eby\u201c, prejdite nadol a vypnite mo\u017enos\u0165 \u201eZv\xfd\u0161te svoju bezpe\u010dnos\u0165 na webe\u201c.\n V\xe1\u0161mu prehliada\u010du to umo\u017en\xed na\u010d\xedta\u0165 po\u017eadovan\xe9 s\xfabory \u201e.wasm\u201c.\n Ak probl\xe9m pretrv\xe1va, mo\u017eno budete musie\u0165 pou\u017ei\u0165 in\xfd prehliada\u010d.\nerror-javascript-conflict =\n Ruffle narazil na probl\xe9m pri pokuse o inicializ\xe1ciu.\n Zd\xe1 sa, \u017ee t\xe1to str\xe1nka pou\u017e\xedva k\xf3d JavaScript, ktor\xfd je v konflikte s Ruffle.\n Ak ste spr\xe1vcom servera, odpor\xfa\u010dame v\xe1m sk\xfasi\u0165 na\u010d\xedta\u0165 s\xfabor na pr\xe1zdnu str\xe1nku.\nerror-javascript-conflict-outdated = M\xf4\u017eete sa tie\u017e pok\xfasi\u0165 nahra\u0165 nov\u0161iu verziu Ruffle, ktor\xe1 m\xf4\u017ee dan\xfd probl\xe9m vyrie\u0161i\u0165 (aktu\xe1lny build je zastaran\xfd: { $buildDate }).\nerror-csp-conflict =\n Ruffle narazil na probl\xe9m pri pokuse o inicializ\xe1ciu.\n Z\xe1sady zabezpe\u010denia obsahu tohto webov\xe9ho servera nepovo\u013euj\xfa spustenie po\u017eadovan\xe9ho komponentu \u201e.wasm\u201c.\n Ak ste spr\xe1vcom servera, pomoc n\xe1jdete na Ruffle wiki.\nerror-unknown =\n Ruffle narazil na probl\xe9m pri pokuse zobrazi\u0165 tento Flash obsah.\n { $outdated ->\n [true] Ak ste spr\xe1vcom servera, sk\xfaste nahra\u0165 nov\u0161iu verziu Ruffle (aktu\xe1lny build je zastaran\xfd: { $buildDate }).\n *[false] Toto by sa nemalo sta\u0165, tak\u017ee by sme naozaj ocenili, keby ste mohli nahl\xe1si\u0165 chybu!\n }\n',"save-manager.ftl":"save-delete-prompt = Naozaj chcete odstr\xe1ni\u0165 tento s\xfabor s ulo\u017een\xfdmi poz\xedciami?\nsave-reload-prompt =\n Jedin\xfd sp\xf4sob, ako { $action ->\n [delete] vymaza\u0165\n *[replace] nahradi\u0165\n } tento s\xfabor s ulo\u017een\xfdmi poz\xedciami bez potenci\xe1lneho konfliktu je op\xe4tovn\xe9 na\u010d\xedtanie tohto obsahu. Chcete napriek tomu pokra\u010dova\u0165?\nsave-download = Stiahnu\u0165\nsave-replace = Nahradi\u0165\nsave-delete = Vymaza\u0165\nsave-backup-all = Stiahnu\u0165 v\u0161etky s\xfabory s ulo\u017een\xfdmi poz\xedciami\n"},"sv-SE":{"context_menu.ftl":"","messages.ftl":"","save-manager.ftl":""},"tr-TR":{"context_menu.ftl":"","messages.ftl":"panic-title = Bir \u015feyler yanl\u0131\u015f gitti :(\ncontinue = Devam et\nopen-in-new-tab = Yeni sekmede a\xe7\n","save-manager.ftl":""},"zh-CN":{"context_menu.ftl":"context-menu-download-swf = \u4e0b\u8f7d .swf\ncontext-menu-copy-debug-info = \u590d\u5236\u8c03\u8bd5\u4fe1\u606f\ncontext-menu-open-save-manager = \u6253\u5f00\u5b58\u6863\u7ba1\u7406\u5668\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] \u5173\u4e8e Ruffle \u6269\u5c55 ({ $version })\n *[other] \u5173\u4e8e Ruffle ({ $version })\n }\ncontext-menu-hide = \u9690\u85cf\u6b64\u83dc\u5355\ncontext-menu-exit-fullscreen = \u9000\u51fa\u5168\u5c4f\ncontext-menu-enter-fullscreen = \u8fdb\u5165\u5168\u5c4f\n","messages.ftl":'message-unsupported-avm2 =\n Ruffle \u6a21\u62df\u5668\u53ef\u80fd\u4e0d\u5b8c\u5168\u652f\u6301\u8fd9\u4e2a\u5185\u5bb9\u6240\u4f7f\u7528\u7684\u6240\u6709 ActionScript 3\u3002\n \u90e8\u5206\u5185\u5bb9\u53ef\u80fd\u65e0\u6cd5\u5de5\u4f5c\nmessage-cant-embed =\n Ruffle \u65e0\u6cd5\u8fd0\u884c\u5d4c\u5165\u5728\u6b64\u9875\u9762\u4e2d\u7684 Flash\u3002\n \u60a8\u53ef\u4ee5\u5c1d\u8bd5\u5728\u5355\u72ec\u7684\u6807\u7b7e\u9875\u4e2d\u6253\u5f00\u8be5\u6587\u4ef6\uff0c\u4ee5\u56de\u907f\u6b64\u95ee\u9898\u3002\npanic-title = \u51fa\u4e86\u4e9b\u95ee\u9898 :(\nmore-info = \u66f4\u591a\u4fe1\u606f\nrun-anyway = \u4ecd\u7136\u8fd0\u884c\ncontinue = \u7ee7\u7eed\nreport-bug = \u53cd\u9988\u95ee\u9898\nupdate-ruffle = \u66f4\u65b0 Ruffle\nruffle-demo = \u7f51\u9875\u6f14\u793a\nruffle-desktop = \u684c\u9762\u5e94\u7528\u7a0b\u5e8f\nruffle-wiki = \u67e5\u770b Ruffle Wiki\nview-error-details = \u67e5\u770b\u9519\u8bef\u8be6\u60c5\nopen-in-new-tab = \u5728\u65b0\u6807\u7b7e\u9875\u4e2d\u6253\u5f00\nclick-to-unmute = \u70b9\u51fb\u53d6\u6d88\u9759\u97f3\nerror-file-protocol =\n \u770b\u6765\u60a8\u6b63\u5728 "file:" \u534f\u8bae\u4e0a\u4f7f\u7528 Ruffle\u3002\n \u7531\u4e8e\u6d4f\u89c8\u5668\u4ee5\u5b89\u5168\u539f\u56e0\u963b\u6b62\u8bb8\u591a\u529f\u80fd\uff0c\u56e0\u6b64\u8fd9\u4e0d\u8d77\u4f5c\u7528\u3002\n \u76f8\u53cd\u6211\u4eec\u9080\u8bf7\u60a8\u8bbe\u7f6e\u672c\u5730\u670d\u52a1\u5668\u6216\u4f7f\u7528\u7f51\u9875\u6f14\u793a\u6216\u684c\u9762\u5e94\u7528\u7a0b\u5e8f\u3002\nerror-javascript-config =\n \u7531\u4e8e\u9519\u8bef\u7684 JavaScript \u914d\u7f6e\uff0cRuffle \u9047\u5230\u4e86\u4e00\u4e2a\u91cd\u5927\u95ee\u9898\u3002\n \u5982\u679c\u60a8\u662f\u670d\u52a1\u5668\u7ba1\u7406\u5458\uff0c\u6211\u4eec\u9080\u8bf7\u60a8\u68c0\u67e5\u9519\u8bef\u8be6\u7ec6\u4fe1\u606f\uff0c\u4ee5\u627e\u51fa\u54ea\u4e2a\u53c2\u6570\u6709\u6545\u969c\u3002\n \u60a8\u4e5f\u53ef\u4ee5\u67e5\u9605 Ruffle \u7684 Wiki \u83b7\u53d6\u5e2e\u52a9\u3002\nerror-wasm-not-found =\n Ruffle \u65e0\u6cd5\u52a0\u8f7d\u6240\u9700\u7684 \u201c.wasm\u201d \u6587\u4ef6\u7ec4\u4ef6\u3002\n \u5982\u679c\u60a8\u662f\u670d\u52a1\u5668\u7ba1\u7406\u5458\uff0c\u8bf7\u786e\u4fdd\u6587\u4ef6\u5df2\u6b63\u786e\u4e0a\u4f20\u3002\n \u5982\u679c\u95ee\u9898\u4ecd\u7136\u5b58\u5728\uff0c\u60a8\u53ef\u80fd\u9700\u8981\u4f7f\u7528 \u201cpublicPath\u201d \u8bbe\u7f6e\uff1a\u8bf7\u67e5\u770b Ruffle \u7684 Wiki \u83b7\u53d6\u5e2e\u52a9\u3002\nerror-wasm-mime-type =\n Ruffle \u5728\u8bd5\u56fe\u521d\u59cb\u5316\u65f6\u9047\u5230\u4e86\u4e00\u4e2a\u91cd\u5927\u95ee\u9898\u3002\n \u8be5\u7f51\u7ad9\u670d\u52a1\u5668\u6ca1\u6709\u63d0\u4f9b ".asm\u201d \u6587\u4ef6\u6b63\u786e\u7684 MIME \u7c7b\u578b\u3002\n \u5982\u679c\u60a8\u662f\u670d\u52a1\u5668\u7ba1\u7406\u5458\uff0c\u8bf7\u67e5\u9605 Ruffle Wiki \u83b7\u53d6\u5e2e\u52a9\u3002\nerror-swf-fetch =\n Ruffle \u65e0\u6cd5\u52a0\u8f7d Flash SWF \u6587\u4ef6\u3002\n \u6700\u53ef\u80fd\u7684\u539f\u56e0\u662f\u6587\u4ef6\u4e0d\u518d\u5b58\u5728\u6240\u4ee5 Ruffle \u6ca1\u6709\u8981\u52a0\u8f7d\u7684\u5185\u5bb9\u3002\n \u8bf7\u5c1d\u8bd5\u8054\u7cfb\u7f51\u7ad9\u7ba1\u7406\u5458\u5bfb\u6c42\u5e2e\u52a9\u3002\nerror-swf-cors =\n Ruffle \u65e0\u6cd5\u52a0\u8f7d Flash SWF \u6587\u4ef6\u3002\n \u83b7\u53d6\u6743\u9650\u53ef\u80fd\u88ab CORS \u7b56\u7565\u963b\u6b62\u3002\n \u5982\u679c\u60a8\u662f\u670d\u52a1\u5668\u7ba1\u7406\u5458\uff0c\u8bf7\u53c2\u8003 Ruffle Wiki \u83b7\u53d6\u5e2e\u52a9\u3002\nerror-wasm-cors =\n Ruffle \u65e0\u6cd5\u52a0\u8f7d\u6240\u9700\u7684\u201c.wasm\u201d\u6587\u4ef6\u7ec4\u4ef6\u3002\n \u83b7\u53d6\u6743\u9650\u53ef\u80fd\u88ab CORS \u7b56\u7565\u963b\u6b62\u3002\n \u5982\u679c\u60a8\u662f\u670d\u52a1\u5668\u7ba1\u7406\u5458\uff0c\u8bf7\u67e5\u9605 Ruffle Wiki \u83b7\u53d6\u5e2e\u52a9\u3002\nerror-wasm-invalid =\n Ruffle \u5728\u8bd5\u56fe\u521d\u59cb\u5316\u65f6\u9047\u5230\u4e86\u4e00\u4e2a\u91cd\u5927\u95ee\u9898\u3002\n \u8fd9\u4e2a\u9875\u9762\u4f3c\u4e4e\u7f3a\u5c11\u6587\u4ef6\u6765\u8fd0\u884c Curl\u3002\n \u5982\u679c\u60a8\u662f\u670d\u52a1\u5668\u7ba1\u7406\u5458\uff0c\u8bf7\u67e5\u9605 Ruffle Wiki \u83b7\u53d6\u5e2e\u52a9\u3002\nerror-wasm-download =\n Ruffle \u5728\u8bd5\u56fe\u521d\u59cb\u5316\u65f6\u9047\u5230\u4e86\u4e00\u4e2a\u91cd\u5927\u95ee\u9898\u3002\n \u8fd9\u901a\u5e38\u53ef\u4ee5\u81ea\u884c\u89e3\u51b3\uff0c\u56e0\u6b64\u60a8\u53ef\u4ee5\u5c1d\u8bd5\u91cd\u65b0\u52a0\u8f7d\u9875\u9762\u3002\n \u5426\u5219\u8bf7\u8054\u7cfb\u7f51\u7ad9\u7ba1\u7406\u5458\u3002\nerror-wasm-disabled-on-edge =\n Ruffle \u65e0\u6cd5\u52a0\u8f7d\u6240\u9700\u7684 \u201c.wasm\u201d \u6587\u4ef6\u7ec4\u4ef6\u3002\n \u8981\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u8bf7\u5c1d\u8bd5\u6253\u5f00\u60a8\u7684\u6d4f\u89c8\u5668\u8bbe\u7f6e\uff0c\u5355\u51fb"\u9690\u79c1\u3001\u641c\u7d22\u548c\u670d\u52a1"\uff0c\u5411\u4e0b\u6eda\u52a8\u5e76\u5173\u95ed"\u589e\u5f3a\u60a8\u7684\u7f51\u7edc\u5b89\u5168"\u3002\n \u8fd9\u5c06\u5141\u8bb8\u60a8\u7684\u6d4f\u89c8\u5668\u52a0\u8f7d\u6240\u9700\u7684 \u201c.wasm\u201d \u6587\u4ef6\u3002\n \u5982\u679c\u95ee\u9898\u4ecd\u7136\u5b58\u5728\uff0c\u60a8\u53ef\u80fd\u5fc5\u987b\u4f7f\u7528\u4e0d\u540c\u7684\u6d4f\u89c8\u5668\u3002\nerror-javascript-conflict =\n Ruffle \u5728\u8bd5\u56fe\u521d\u59cb\u5316\u65f6\u9047\u5230\u4e86\u4e00\u4e2a\u91cd\u5927\u95ee\u9898\u3002\n \u8fd9\u4e2a\u9875\u9762\u4f3c\u4e4e\u4f7f\u7528\u4e86\u4e0e Ruffle \u51b2\u7a81\u7684 JavaScript \u4ee3\u7801\u3002\n \u5982\u679c\u60a8\u662f\u670d\u52a1\u5668\u7ba1\u7406\u5458\uff0c\u6211\u4eec\u5efa\u8bae\u60a8\u5c1d\u8bd5\u5728\u7a7a\u767d\u9875\u9762\u4e0a\u52a0\u8f7d\u6587\u4ef6\u3002\nerror-javascript-conflict-outdated = \u60a8\u8fd8\u53ef\u4ee5\u5c1d\u8bd5\u4e0a\u4f20\u53ef\u80fd\u89c4\u907f\u8be5\u95ee\u9898\u7684\u6700\u65b0\u7248\u672c\u7684 (\u5f53\u524d\u6784\u5efa\u5df2\u8fc7\u65f6: { $buildDate })\u3002\nerror-csp-conflict =\n Ruffle \u5728\u8bd5\u56fe\u521d\u59cb\u5316\u65f6\u9047\u5230\u4e86\u4e00\u4e2a\u91cd\u5927\u95ee\u9898\u3002\n \u8be5\u7f51\u7ad9\u670d\u52a1\u5668\u7684\u5185\u5bb9\u5b89\u5168\u7b56\u7565\u4e0d\u5141\u8bb8\u8fd0\u884c\u6240\u9700\u7684 \u201c.wasm\u201d \u7ec4\u4ef6\u3002\n \u5982\u679c\u60a8\u662f\u670d\u52a1\u5668\u7ba1\u7406\u5458\uff0c\u8bf7\u67e5\u9605 Ruffle Wiki \u83b7\u53d6\u5e2e\u52a9\u3002\nerror-unknown =\n Ruffle \u5728\u8bd5\u56fe\u663e\u793a\u6b64 Flash \u5185\u5bb9\u65f6\u9047\u5230\u4e86\u4e00\u4e2a\u91cd\u5927\u95ee\u9898\u3002\n { $outdated ->\n [true] \u5982\u679c\u60a8\u662f\u670d\u52a1\u5668\u7ba1\u7406\u5458\uff0c\u8bf7\u5c1d\u8bd5\u4e0a\u4f20\u66f4\u65b0\u7684 Ruffle \u7248\u672c (\u5f53\u524d\u7248\u672c\u5df2\u8fc7\u65f6: { $buildDate }).\n *[false] \u8fd9\u4e0d\u5e94\u8be5\u53d1\u751f\uff0c\u56e0\u6b64\u5982\u679c\u60a8\u53ef\u4ee5\u62a5\u544a\u9519\u8bef\uff0c\u6211\u4eec\u5c06\u975e\u5e38\u611f\u8c22\uff01\n }\n',"save-manager.ftl":"save-delete-prompt = \u786e\u5b9a\u8981\u5220\u9664\u6b64\u5b58\u6863\u5417\uff1f\nsave-reload-prompt =\n \u4e3a\u4e86\u907f\u514d\u6f5c\u5728\u7684\u51b2\u7a81\uff0c{ $action ->\n [delete] \u5220\u9664\n *[replace] \u66ff\u6362\n } \u6b64\u5b58\u6863\u6587\u4ef6\u9700\u8981\u91cd\u65b0\u52a0\u8f7d\u5f53\u524d\u5185\u5bb9\u3002\u662f\u5426\u4ecd\u7136\u7ee7\u7eed\uff1f\nsave-download = \u4e0b\u8f7d\nsave-replace = \u66ff\u6362\nsave-delete = \u5220\u9664\nsave-backup-all = \u4e0b\u8f7d\u6240\u6709\u5b58\u6863\u6587\u4ef6\n"},"zh-TW":{"context_menu.ftl":"context-menu-download-swf = \u4e0b\u8f09SWF\u6a94\u6848\ncontext-menu-copy-debug-info = \u8907\u88fd\u9664\u932f\u8cc7\u8a0a\ncontext-menu-open-save-manager = \u6253\u958b\u5b58\u6a94\u7ba1\u7406\u5668\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] \u95dc\u65bcRuffle\u64f4\u5145\u529f\u80fd ({ $version })\n *[other] \u95dc\u65bcRuffle ({ $version })\n }\ncontext-menu-hide = \u96b1\u85cf\u83dc\u55ae\ncontext-menu-exit-fullscreen = \u9000\u51fa\u5168\u87a2\u5e55\ncontext-menu-enter-fullscreen = \u9032\u5165\u5168\u87a2\u5e55\n","messages.ftl":'message-unsupported-avm2 =\n \u76ee\u524dRuffle\u9084\u6c92\u8fa6\u6cd5\u5b8c\u6574\u6a21\u64ec\u6240\u6709\u7684ActionScript 3\u5167\u5bb9\u3002\n \u6709\u4e9b\u5730\u65b9\u9084\u6c92\u8fa6\u6cd5\u6b63\u5e38\u986f\u793a\u3002\nmessage-cant-embed =\n \u76ee\u524dRuffle\u6c92\u8fa6\u6cd5\u57f7\u884c\u5d4c\u5165\u5f0fFlash\u3002\n \u4f60\u53ef\u4ee5\u5728\u65b0\u5206\u9801\u4e2d\u958b\u555f\u4f86\u89e3\u6c7a\u9019\u500b\u554f\u984c\u3002\npanic-title = \u5b8c\u86cb\uff0c\u51fa\u554f\u984c\u4e86 :(\nmore-info = \u66f4\u591a\u8cc7\u8a0a\nrun-anyway = \u76f4\u63a5\u57f7\u884c\ncontinue = \u7e7c\u7e8c\nreport-bug = \u56de\u5831BUG\nupdate-ruffle = \u66f4\u65b0Ruffle\nruffle-demo = \u7db2\u9801\u5c55\u793a\nruffle-desktop = \u684c\u9762\u61c9\u7528\u7a0b\u5f0f\nruffle-wiki = \u67e5\u770bRuffle Wiki\nview-error-details = \u6aa2\u8996\u932f\u8aa4\u8a73\u7d30\u8cc7\u6599\nopen-in-new-tab = \u958b\u555f\u65b0\u589e\u5206\u9801\nclick-to-unmute = \u9ede\u64ca\u4ee5\u53d6\u6d88\u975c\u97f3\nerror-file-protocol =\n \u770b\u8d77\u4f86\u4f60\u60f3\u8981\u7528Ruffle\u4f86\u57f7\u884c"file:"\u7684\u5354\u8b70\u3002\n \u56e0\u70ba\u700f\u89bd\u5668\u7981\u4e86\u5f88\u591a\u529f\u80fd\u4ee5\u8cc7\u5b89\u7684\u7406\u7531\u4f86\u8b1b\u3002\n \u6211\u5011\u5efa\u8b70\u4f60\u5efa\u7acb\u672c\u5730\u4f3a\u670d\u5668\u6216\u8457\u76f4\u63a5\u4f7f\u7528\u7db2\u9801\u5c55\u793a\u6216\u684c\u9762\u61c9\u7528\u7a0b\u5f0f\u3002\nerror-javascript-config =\n \u76ee\u524dRuffle\u9047\u5230\u4e0d\u6b63\u78ba\u7684JavaScript\u914d\u7f6e\u3002\n \u5982\u679c\u4f60\u662f\u4f3a\u670d\u5668\u7ba1\u7406\u54e1\uff0c\u6211\u5011\u5efa\u8b70\u4f60\u6aa2\u67e5\u54ea\u500b\u74b0\u7bc0\u51fa\u932f\u3002\n \u6216\u8457\u4f60\u53ef\u4ee5\u67e5\u8a62Ruffle wiki\u5f97\u5230\u9700\u6c42\u5e6b\u52a9\u3002\nerror-wasm-not-found =\n \u76ee\u524dRuffle\u627e\u4e0d\u5230".wasm"\u6a94\u6848\u3002\n \u5982\u679c\u4f60\u662f\u4f3a\u670d\u5668\u7ba1\u7406\u54e1\uff0c\u78ba\u4fdd\u6a94\u6848\u662f\u5426\u653e\u5c0d\u4f4d\u7f6e\u3002\n \u5982\u679c\u9084\u662f\u6709\u554f\u984c\u7684\u8a71\uff0c\u4f60\u8981\u7528"publicPath"\u4f86\u8a2d\u5b9a: \u6216\u8457\u67e5\u8a62Ruffle wiki\u5f97\u5230\u9700\u6c42\u5e6b\u52a9\u3002\nerror-wasm-mime-type =\n \u76ee\u524dRuffle\u521d\u59cb\u5316\u6642\u9047\u5230\u91cd\u5927\u554f\u984c\u3002\n \u9019\u7db2\u9801\u4f3a\u670d\u5668\u4e26\u6c92\u6709\u670d\u52d9".wasm"\u6a94\u6848\u6216\u6b63\u78ba\u7684\u7db2\u969b\u7db2\u8def\u5a92\u9ad4\u985e\u578b\u3002\n \u5982\u679c\u4f60\u662f\u4f3a\u670d\u5668\u7ba1\u7406\u54e1\uff0c\u8acb\u67e5\u8a62Ruffle wiki\u5f97\u5230\u9700\u6c42\u5e6b\u52a9\u3002\nerror-swf-fetch =\n \u76ee\u524dRuffle\u7121\u6cd5\u8b80\u53d6Flash\u7684SWF\u6a94\u6848\u3002\n \u5f88\u6709\u53ef\u80fd\u8981\u8b80\u53d6\u7684\u6a94\u6848\u4e0d\u5b58\u5728\uff0c\u6240\u4ee5Ruffle\u8b80\u4e0d\u5230\u6771\u897f\u3002\n \u8acb\u5617\u8a66\u6e9d\u901a\u4f3a\u670d\u5668\u7ba1\u7406\u54e1\u5f97\u5230\u9700\u6c42\u5e6b\u52a9\u3002\nerror-swf-cors =\n \u76ee\u524dRuffle\u7121\u6cd5\u8b80\u53d6Flash\u7684SWF\u6a94\u6848\u3002\n \u770b\u8d77\u4f86\u662f\u4f7f\u7528\u6b0a\u88ab\u8de8\u4f86\u6e90\u8cc7\u6e90\u5171\u7528\u6a5f\u5236\u88ab\u64cb\u5230\u4e86\u3002\n \u5982\u679c\u4f60\u662f\u4f3a\u670d\u5668\u7ba1\u7406\u54e1\uff0c\u8acb\u67e5\u8a62Ruffle wiki\u5f97\u5230\u9700\u6c42\u5e6b\u52a9\u3002\nerror-wasm-cors =\n \u76ee\u524dRuffle\u7121\u6cd5\u8b80\u53d6".wasm"\u6a94\u6848\u3002\n \u770b\u8d77\u4f86\u662f\u4f7f\u7528\u6b0a\u88ab\u8de8\u4f86\u6e90\u8cc7\u6e90\u5171\u7528\u6a5f\u5236\u88ab\u64cb\u5230\u4e86\u3002\n \u5982\u679c\u4f60\u662f\u4f3a\u670d\u5668\u7ba1\u7406\u54e1\uff0c\u8acb\u67e5\u8a62Ruffle wiki\u5f97\u5230\u9700\u6c42\u5e6b\u52a9\u3002\nerror-wasm-invalid =\n \u76ee\u524dRuffle\u521d\u59cb\u5316\u6642\u9047\u5230\u91cd\u5927\u554f\u984c\u3002\n \u770b\u8d77\u4f86\u9019\u7db2\u9801\u6709\u7f3a\u5931\u6a94\u6848\u5c0e\u81f4Ruffle\u7121\u6cd5\u904b\u884c\u3002\n \u5982\u679c\u4f60\u662f\u4f3a\u670d\u5668\u7ba1\u7406\u54e1\uff0c\u8acb\u67e5\u8a62Ruffle wiki\u5f97\u5230\u9700\u6c42\u5e6b\u52a9\u3002\nerror-wasm-download =\n \u76ee\u524dRuffle\u521d\u59cb\u5316\u6642\u9047\u5230\u91cd\u5927\u554f\u984c\u3002\n \u9019\u53ef\u4ee5\u4f60\u81ea\u5df1\u89e3\u6c7a\uff0c\u4f60\u53ea\u8981\u91cd\u65b0\u6574\u7406\u5c31\u597d\u4e86\u3002\n \u5426\u5247\uff0c\u8acb\u5617\u8a66\u6e9d\u901a\u4f3a\u670d\u5668\u7ba1\u7406\u54e1\u5f97\u5230\u9700\u6c42\u5e6b\u52a9\u3002\nerror-wasm-disabled-on-edge =\n \u76ee\u524dRuffle\u7121\u6cd5\u8b80\u53d6".wasm"\u6a94\u6848\u3002\n \u8981\u4fee\u6b63\u7684\u8a71\uff0c\u6253\u958b\u4f60\u7684\u700f\u89bd\u5668\u8a2d\u5b9a\uff0c\u9ede\u9078"\u96b1\u79c1\u6b0a\u3001\u641c\u5c0b\u8207\u670d\u52d9"\uff0c\u628a"\u9632\u6b62\u8ffd\u8e64"\u7d66\u95dc\u6389\u3002\n \u9019\u6a23\u4e00\u4f86\u4f60\u7684\u700f\u89bd\u5668\u6703\u8b80\u53d6\u9700\u8981\u7684".wasm"\u6a94\u6848\u3002\n \u5982\u679c\u554f\u984c\u4e00\u76f4\u9084\u5728\u7684\u8a71\uff0c\u4f60\u5fc5\u9808\u8981\u63db\u700f\u89bd\u5668\u4e86\u3002\nerror-javascript-conflict =\n \u76ee\u524dRuffle\u521d\u59cb\u5316\u6642\u9047\u5230\u91cd\u5927\u554f\u984c\u3002\n \u770b\u8d77\u4f86\u9019\u7db2\u9801\u4f7f\u7528\u7684JavaScript\u6703\u8ddfRuffle\u8d77\u885d\u7a81\u3002\n \u5982\u679c\u4f60\u662f\u4f3a\u670d\u5668\u7ba1\u7406\u54e1\uff0c\u6211\u5011\u5efa\u8b70\u4f60\u958b\u500b\u7a7a\u767d\u9801\u4f86\u6e2c\u8a66\u3002\nerror-javascript-conflict-outdated = \u4f60\u4e5f\u53ef\u4ee5\u4e0a\u50b3\u6700\u65b0\u7248\u7684Ruffle\uff0c\u8aaa\u4e0d\u5b9a\u4f60\u8981\u8aaa\u7684\u7684\u554f\u984c\u5df2\u7d93\u4e0d\u898b\u4e86(\u73fe\u5728\u4f7f\u7528\u7684\u7248\u672c\u5df2\u7d93\u904e\u6642: { $buildDate })\u3002\nerror-csp-conflict =\n \u76ee\u524dRuffle\u521d\u59cb\u5316\u6642\u9047\u5230\u91cd\u5927\u554f\u984c\u3002\n \u9019\u7db2\u9801\u4f3a\u670d\u5668\u88ab\u8de8\u4f86\u6e90\u8cc7\u6e90\u5171\u7528\u6a5f\u5236\u7981\u6b62\u8b80\u53d6".wasm"\u6a94\u6848\u3002\n \u5982\u679c\u4f60\u662f\u4f3a\u670d\u5668\u7ba1\u7406\u54e1\uff0c\u8acb\u67e5\u8a62Ruffle wiki\u5f97\u5230\u9700\u6c42\u5e6b\u52a9\u3002\nerror-unknown =\n \u76ee\u524dRuffle\u521d\u59cb\u5316\u8981\u8b80\u53d6Flash\u5167\u5bb9\u6642\u9047\u5230\u91cd\u5927\u554f\u984c\n { $outdated ->\n [true] \u5982\u679c\u4f60\u662f\u4f3a\u670d\u5668\u7ba1\u7406\u54e1\uff0c \u8acb\u4e0a\u50b3\u6700\u65b0\u7248\u7684Ruffle(\u73fe\u5728\u4f7f\u7528\u7684\u7248\u672c\u5df2\u7d93\u904e\u6642: { $buildDate }).\n *[false] \u9019\u4e0d\u61c9\u8a72\u767c\u751f\u7684\uff0c\u6211\u5011\u4e5f\u5f88\u9ad8\u8208\u4f60\u544a\u77e5bug!\n }\n',"save-manager.ftl":"save-delete-prompt = \u4f60\u78ba\u5b9a\u8981\u522a\u9664\u9019\u500b\u5b58\u6a94\u55ce\uff1f\nsave-reload-prompt =\n \u552f\u4e00\u65b9\u6cd5\u53ea\u6709 { $action ->\n [delete] \u522a\u9664\n *[replace] \u53d6\u4ee3\n } \u9019\u500b\u5b58\u6a94\u4e0d\u6703\u5b8c\u5168\u53d6\u4ee3\u76f4\u5230\u91cd\u65b0\u6574\u7406. \u4f60\u9700\u8981\u7e7c\u7e8c\u55ce?\nsave-download = \u4e0b\u8f09\nsave-replace = \u53d6\u4ee3\nsave-delete = \u522a\u9664\nsave-backup-all = \u4e0b\u8f09\u6240\u6709\u5b58\u6a94\u6a94\u6848\u3002\n"}},Ee={};for(const e in ze){const t=new J(e),n=ze[e];if(n)for(const r in n){const i=n[r];if(i)for(const n in t.addResource(new we(i)))console.error(`Error in text for ${e} ${r}: ${n}`)}Ee[e]=t}function Ae(e,t,n){const r=Ee[e];if(void 0!==r){const e=r.getMessage(t);if(void 0!==e&&e.value)return r.formatPattern(e.value,n)}return null}function je(e,t){const n=Se(navigator.languages,Object.keys(Ee),{defaultLocale:"en-US"});for(const r in n){const i=Ae(n[r],e,t);if(i)return i}return console.error(`Unknown text key '${e}'`),e}function Ce(e,t){const n=document.createElement("div");return je(e,t).split("\n").forEach((e=>{const t=document.createElement("p");t.innerText=e,n.appendChild(t)})),n.innerHTML}var Ie=i(297),Oe=i.n(Ie);const De="https://ruffle.rs",Fe=/^\s*(\d+(\.\d+)?(%)?)/;let Pe=!1;function Te(e){if(null==e)return{};e instanceof URLSearchParams||(e=new URLSearchParams(e));const t={};for(const[n,r]of e)t[n]=r.toString();return t}class $e{constructor(e,t){this.x=e,this.y=t}distanceTo(e){const t=e.x-this.x,n=e.y-this.y;return Math.sqrt(t*t+n*n)}}class Le extends HTMLElement{get readyState(){return this._readyState}get metadata(){return this._metadata}constructor(){super(),this.contextMenuForceDisabled=!1,this.contextMenuSupported=!1,this.panicked=!1,this.rendererDebugInfo="",this.isExtension=!1,this.longPressTimer=null,this.pointerDownPosition=null,this.pointerMoveMaxDistance=0,this.config={},this.shadow=this.attachShadow({mode:"open"}),this.shadow.appendChild(p.content.cloneNode(!0)),this.dynamicStyles=this.shadow.getElementById("dynamic_styles"),this.container=this.shadow.getElementById("container"),this.playButton=this.shadow.getElementById("play_button"),this.playButton.addEventListener("click",(()=>this.play())),this.unmuteOverlay=this.shadow.getElementById("unmute_overlay"),this.splashScreen=this.shadow.getElementById("splash-screen"),this.virtualKeyboard=this.shadow.getElementById("virtual-keyboard"),this.virtualKeyboard.addEventListener("input",this.virtualKeyboardInput.bind(this)),this.saveManager=this.shadow.getElementById("save-manager"),this.saveManager.addEventListener("click",(()=>this.saveManager.classList.add("hidden")));const e=this.saveManager.querySelector("#modal-area");e&&e.addEventListener("click",(e=>e.stopPropagation()));const t=this.saveManager.querySelector("#close-modal");t&&t.addEventListener("click",(()=>this.saveManager.classList.add("hidden")));const n=this.saveManager.querySelector("#backup-saves");n&&(n.addEventListener("click",this.backupSaves.bind(this)),n.innerText=je("save-backup-all"));const r=this.unmuteOverlay.querySelector("#unmute_overlay_svg");if(r){r.querySelector("#unmute_text").textContent=je("click-to-unmute")}this.contextMenuOverlay=this.shadow.getElementById("context-menu-overlay"),this.contextMenuElement=this.shadow.getElementById("context-menu"),this.addEventListener("contextmenu",this.showContextMenu.bind(this)),this.container.addEventListener("pointerdown",this.pointerDown.bind(this)),this.container.addEventListener("pointermove",this.checkLongPressMovement.bind(this)),this.container.addEventListener("pointerup",this.checkLongPress.bind(this)),this.container.addEventListener("pointercancel",this.clearLongPressTimer.bind(this)),this.addEventListener("fullscreenchange",this.fullScreenChange.bind(this)),this.addEventListener("webkitfullscreenchange",this.fullScreenChange.bind(this)),this.instance=null,this.onFSCommand=null,this._readyState=0,this._metadata=null,this.lastActivePlayingState=!1,this.setupPauseOnTabHidden()}setupPauseOnTabHidden(){document.addEventListener("visibilitychange",(()=>{this.instance&&(document.hidden&&(this.lastActivePlayingState=this.instance.is_playing(),this.instance.pause()),document.hidden||!0!==this.lastActivePlayingState||this.instance.play())}),!1)}connectedCallback(){this.updateStyles()}static get observedAttributes(){return["width","height"]}attributeChangedCallback(e,t,n){"width"!==e&&"height"!==e||this.updateStyles()}disconnectedCallback(){this.destroy()}updateStyles(){if(this.dynamicStyles.sheet){if(this.dynamicStyles.sheet.rules)for(let e=0;e{if(console.error(`Serious error loading Ruffle: ${e}`),"file:"===window.location.protocol)e.ruffleIndexError=2;else{e.ruffleIndexError=9;const t=String(e.message).toLowerCase();t.includes("mime")?e.ruffleIndexError=8:t.includes("networkerror")||t.includes("failed to fetch")?e.ruffleIndexError=6:t.includes("disallowed by embedder")?e.ruffleIndexError=1:"CompileError"===e.name?e.ruffleIndexError=3:t.includes("could not download wasm module")&&"TypeError"===e.name?e.ruffleIndexError=7:"TypeError"===e.name?e.ruffleIndexError=5:navigator.userAgent.includes("Edg")&&t.includes("webassembly is not defined")&&(e.ruffleIndexError=10)}throw this.panic(e),e}));this.instance=await new t(this.container,this,this.loadedConfig),this.rendererDebugInfo=this.instance.renderer_debug_info();const n=this.instance.renderer_name();if(console.log("%cNew Ruffle instance created (WebAssembly extensions: "+(t.is_wasm_simd_used()?"ON":"OFF")+" | Used renderer: "+(null!=n?n:"")+")","background: #37528C; color: #FFAD33"),"running"!==this.audioState()&&(this.container.style.visibility="hidden",await new Promise((e=>{window.setTimeout((()=>{e()}),200)})),this.container.style.visibility=""),this.unmuteAudioContext(),navigator.userAgent.toLowerCase().includes("android")&&this.container.addEventListener("click",(()=>this.virtualKeyboard.blur())),!this.loadedConfig||"on"===this.loadedConfig.autoplay||"off"!==this.loadedConfig.autoplay&&"running"===this.audioState()){if(this.play(),"running"!==this.audioState()){this.loadedConfig&&"hidden"===this.loadedConfig.unmuteOverlay||(this.unmuteOverlay.style.display="block"),this.container.addEventListener("click",this.unmuteOverlayClicked.bind(this),{once:!0});const t=null===(e=this.instance)||void 0===e?void 0:e.audio_context();t&&(t.onstatechange=()=>{"running"===t.state&&this.unmuteOverlayClicked(),t.onstatechange=null})}}else this.playButton.style.display="block"}onRuffleDownloadProgress(e,t){const n=this.splashScreen.querySelector(".loadbar-inner"),r=this.splashScreen.querySelector(".loadbar");Number.isNaN(t)?r&&(r.style.display="none"):n.style.width=e/t*100+"%"}destroy(){this.instance&&(this.instance.destroy(),this.instance=null,this._metadata=null,this._readyState=0,console.log("Ruffle instance destroyed."))}checkOptions(e){if("string"==typeof e)return{url:e};const t=(e,t)=>{if(!e){const e=new TypeError(t);throw e.ruffleIndexError=4,this.panic(e),e}};return t(null!==e&&"object"==typeof e,"Argument 0 must be a string or object"),t("url"in e||"data"in e,"Argument 0 must contain a `url` or `data` key"),t(!("url"in e)||"string"==typeof e.url,"`url` must be a string"),e}getExtensionConfig(){var e;return window.RufflePlayer&&window.RufflePlayer.conflict&&("extension"===window.RufflePlayer.conflict.newestName||"extension"===window.RufflePlayer.newestName)?null===(e=window.RufflePlayer)||void 0===e?void 0:e.conflict.config:{}}async load(e){var t,n;if(e=this.checkOptions(e),this.isConnected&&!this.isUnusedFallbackObject()){if(!We(this))try{const r=this.getExtensionConfig();if(this.loadedConfig=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},g),r),null!==(n=null===(t=window.RufflePlayer)||void 0===t?void 0:t.config)&&void 0!==n?n:{}),this.config),e),this.loadedConfig.allowScriptAccess=!0===e.allowScriptAccess,this.loadedConfig.backgroundColor&&"transparent"!==this.loadedConfig.wmode&&(this.container.style.backgroundColor=this.loadedConfig.backgroundColor),await this.ensureFreshInstance(),"url"in e){console.log(`Loading SWF file ${e.url}`),this.swfUrl=new URL(e.url,document.baseURI);const t=Object.assign(Object.assign({},Te(e.url.substring(e.url.indexOf("?")))),Te(e.parameters));this.instance.stream_from(this.swfUrl.href,t)}else"data"in e&&(console.log("Loading SWF data"),this.instance.load_data(new Uint8Array(e.data),Te(e.parameters),e.swfFileName||"movie.swf"))}catch(e){console.error(`Serious error occurred loading SWF file: ${e}`);const t=new Error(e);throw t.message.includes("Error parsing config")&&(t.ruffleIndexError=4),this.panic(t),t}}else console.warn("Ignoring attempt to play a disconnected or suspended Ruffle element")}play(){this.instance&&(this.instance.play(),this.playButton.style.display="none")}get isPlaying(){return!!this.instance&&this.instance.is_playing()}get volume(){return this.instance?this.instance.volume():1}set volume(e){this.instance&&this.instance.set_volume(e)}get fullscreenEnabled(){return!(!document.fullscreenEnabled&&!document.webkitFullscreenEnabled)}get isFullscreen(){return(document.fullscreenElement||document.webkitFullscreenElement)===this}setFullscreen(e){this.fullscreenEnabled&&(e?this.enterFullscreen():this.exitFullscreen())}enterFullscreen(){const e={navigationUI:"hide"};this.requestFullscreen?this.requestFullscreen(e):this.webkitRequestFullscreen?this.webkitRequestFullscreen(e):this.webkitRequestFullScreen&&this.webkitRequestFullScreen(e)}exitFullscreen(){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.webkitCancelFullScreen&&document.webkitCancelFullScreen()}fullScreenChange(){var e;null===(e=this.instance)||void 0===e||e.set_fullscreen(this.isFullscreen)}saveFile(e,t){const n=URL.createObjectURL(e),r=document.createElement("a");r.href=n,r.style.display="none",r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}base64ToBlob(e,t){const n=atob(e),r=new ArrayBuffer(n.length),i=new Uint8Array(r);for(let e=0;e{if(r.result&&"string"==typeof r.result){const e=new RegExp("data:.*;base64,"),n=r.result.replace(e,"");this.confirmReloadSave(t,n,!0)}})),n&&n.files&&n.files.length>0&&n.files[0]&&r.readAsDataURL(n.files[0])}deleteSave(e){const t=localStorage.getItem(e);t&&this.confirmReloadSave(e,t,!1)}populateSaves(){const e=this.saveManager.querySelector("#local-saves");if(e){try{if(null===localStorage)return}catch(e){return}e.textContent="",Object.keys(localStorage).forEach((t=>{const n=t.split("/").pop(),r=localStorage.getItem(t);if(n&&r&&this.isB64SOL(r)){const i=document.createElement("TR"),a=document.createElement("TD");a.textContent=n,a.title=t;const o=document.createElement("TD"),s=document.createElement("SPAN");s.textContent=je("save-download"),s.className="save-option",s.addEventListener("click",(()=>{const e=this.base64ToBlob(r,"application/octet-stream");this.saveFile(e,n+".sol")})),o.appendChild(s);const l=document.createElement("TD"),u=document.createElement("INPUT");u.type="file",u.accept=".sol",u.className="replace-save",u.id="replace-save-"+t;const c=document.createElement("LABEL");c.htmlFor="replace-save-"+t,c.textContent=je("save-replace"),c.className="save-option",u.addEventListener("change",(e=>this.replaceSOL(e,t))),l.appendChild(u),l.appendChild(c);const d=document.createElement("TD"),f=document.createElement("SPAN");f.textContent=je("save-delete"),f.className="save-option",f.addEventListener("click",(()=>this.deleteSave(t))),d.appendChild(f),i.appendChild(a),i.appendChild(o),i.appendChild(l),i.appendChild(d),e.appendChild(i)}}))}}async backupSaves(){const e=new(Oe()),t=[];Object.keys(localStorage).forEach((n=>{let r=String(n.split("/").pop());const i=localStorage.getItem(n);if(i&&this.isB64SOL(i)){const n=this.base64ToBlob(i,"application/octet-stream"),a=t.filter((e=>e===r)).length;t.push(r),a>0&&(r+=` (${a+1})`),e.file(r+".sol",n)}}));const n=await e.generateAsync({type:"blob"});this.saveFile(n,"saves.zip")}openSaveManager(){this.saveManager.classList.remove("hidden")}async downloadSwf(){try{if(this.swfUrl){console.log("Downloading SWF: "+this.swfUrl);const e=await fetch(this.swfUrl.href);if(!e.ok)return void console.error("SWF download failed");const t=await e.blob();this.saveFile(t,function(e){const t=e.pathname;return t.substring(t.lastIndexOf("/")+1)}(this.swfUrl))}else console.error("SWF download failed")}catch(e){console.error("SWF download failed")}}virtualKeyboardInput(){const e=this.virtualKeyboard,t=e.value;for(const e of t)for(const t of["keydown","keyup"])this.dispatchEvent(new KeyboardEvent(t,{key:e,bubbles:!0}));e.value=""}openVirtualKeyboard(){navigator.userAgent.toLowerCase().includes("android")?setTimeout((()=>{this.virtualKeyboard.focus({preventScroll:!0})}),100):this.virtualKeyboard.focus({preventScroll:!0})}isVirtualKeyboardFocused(){return this.shadow.activeElement===this.virtualKeyboard}contextMenuItems(e){const t=String.fromCharCode(10003),n=[],r=()=>{n.length>0&&null!==n[n.length-1]&&n.push(null)};if(this.instance&&this.isPlaying){this.instance.prepare_context_menu().forEach(((e,i)=>{e.separatorBefore&&r(),n.push({text:e.caption+(e.checked?` (${t})`:""),onClick:()=>{var e;return null===(e=this.instance)||void 0===e?void 0:e.run_context_menu_callback(i)},enabled:e.enabled})})),r()}this.fullscreenEnabled&&(this.isFullscreen?n.push({text:je("context-menu-exit-fullscreen"),onClick:()=>{var e;return null===(e=this.instance)||void 0===e?void 0:e.set_fullscreen(!1)}}):n.push({text:je("context-menu-enter-fullscreen"),onClick:()=>{var e;return null===(e=this.instance)||void 0===e?void 0:e.set_fullscreen(!0)}})),this.instance&&this.swfUrl&&this.loadedConfig&&!0===this.loadedConfig.showSwfDownload&&(r(),n.push({text:je("context-menu-download-swf"),onClick:this.downloadSwf.bind(this)})),window.isSecureContext&&n.push({text:je("context-menu-copy-debug-info"),onClick:()=>navigator.clipboard.writeText(this.getPanicData())}),this.populateSaves();const i=this.saveManager.querySelector("#local-saves");i&&""!==i.textContent&&n.push({text:je("context-menu-open-save-manager"),onClick:this.openSaveManager.bind(this)}),r();const a=this.isExtension?"extension":"";return n.push({text:je("context-menu-about-ruffle",{flavor:a,version:R}),onClick(){window.open(De,"_blank")}}),e&&(r(),n.push({text:je("context-menu-hide"),onClick:()=>this.contextMenuForceDisabled=!0})),n}pointerDown(e){this.pointerDownPosition=new $e(e.pageX,e.pageY),this.pointerMoveMaxDistance=0,this.startLongPressTimer()}clearLongPressTimer(){this.longPressTimer&&(clearTimeout(this.longPressTimer),this.longPressTimer=null)}startLongPressTimer(){this.clearLongPressTimer(),this.longPressTimer=setTimeout((()=>this.clearLongPressTimer()),800)}checkLongPressMovement(e){if(null!==this.pointerDownPosition){const t=new $e(e.pageX,e.pageY),n=this.pointerDownPosition.distanceTo(t);n>this.pointerMoveMaxDistance&&(this.pointerMoveMaxDistance=n)}}checkLongPress(e){this.longPressTimer?this.clearLongPressTimer():!this.contextMenuSupported&&"mouse"!==e.pointerType&&this.pointerMoveMaxDistance<15&&this.showContextMenu(e)}showContextMenu(e){var t,n,r;if(this.panicked||!this.saveManager.classList.contains("hidden"))return;e.preventDefault(),"contextmenu"===e.type?(this.contextMenuSupported=!0,window.addEventListener("click",this.hideContextMenu.bind(this),{once:!0})):(window.addEventListener("pointerup",this.hideContextMenu.bind(this),{once:!0}),e.stopPropagation());const i=e instanceof PointerEvent&&("touch"===e.pointerType||"pen"===e.pointerType);if([!1,"off"].includes(null!==(n=null===(t=this.loadedConfig)||void 0===t?void 0:t.contextMenu)&&void 0!==n?n:"on")||i&&"rightClickOnly"===(null===(r=this.loadedConfig)||void 0===r?void 0:r.contextMenu)||this.contextMenuForceDisabled)return;for(;this.contextMenuElement.firstChild;)this.contextMenuElement.removeChild(this.contextMenuElement.firstChild);for(const e of this.contextMenuItems(i))if(null===e){const e=document.createElement("li");e.className="menu_separator";const t=document.createElement("hr");e.appendChild(t),this.contextMenuElement.appendChild(e)}else{const{text:t,onClick:n,enabled:r}=e,i=document.createElement("li");i.className="menu_item",i.textContent=t,this.contextMenuElement.appendChild(i),!1!==r?i.addEventListener(this.contextMenuSupported?"click":"pointerup",n):i.classList.add("disabled")}this.contextMenuElement.style.left="0",this.contextMenuElement.style.top="0",this.contextMenuOverlay.classList.remove("hidden");const a=this.getBoundingClientRect(),o=e.clientX-a.x,s=e.clientY-a.y,l=a.width-this.contextMenuElement.clientWidth-1,u=a.height-this.contextMenuElement.clientHeight-1;this.contextMenuElement.style.left=Math.floor(Math.min(o,l))+"px",this.contextMenuElement.style.top=Math.floor(Math.min(s,u))+"px"}hideContextMenu(){var e;null===(e=this.instance)||void 0===e||e.clear_custom_menu_items(),this.contextMenuOverlay.classList.add("hidden")}pause(){this.instance&&(this.instance.pause(),this.playButton.style.display="block")}audioState(){if(this.instance){const e=this.instance.audio_context();return e&&e.state||"running"}return"suspended"}unmuteOverlayClicked(){if(this.instance){if("running"!==this.audioState()){const e=this.instance.audio_context();e&&e.resume()}this.unmuteOverlay.style.display="none"}}unmuteAudioContext(){Pe||(navigator.maxTouchPoints<1?Pe=!0:this.container.addEventListener("click",(()=>{var e;if(Pe)return;const t=null===(e=this.instance)||void 0===e?void 0:e.audio_context();if(!t)return;const n=new Audio;n.src=(()=>{const e=new ArrayBuffer(10),n=new DataView(e),r=t.sampleRate;n.setUint32(0,r,!0),n.setUint32(4,r,!0),n.setUint16(8,1,!0);return`data:audio/wav;base64,UklGRisAAABXQVZFZm10IBAAAAABAAEA${window.btoa(String.fromCharCode(...new Uint8Array(e))).slice(0,13)}AgAZGF0YQcAAACAgICAgICAAAA=`})(),n.load(),n.play().then((()=>{Pe=!0})).catch((e=>{console.warn(`Failed to play dummy sound: ${e}`)}))}),{once:!0}))}copyElement(e){if(e){for(const t of e.attributes)if(t.specified){if("title"===t.name&&"Adobe Flash Player"===t.value)continue;try{this.setAttribute(t.name,t.value)}catch(e){console.warn(`Unable to set attribute ${t.name} on Ruffle instance`)}}for(const t of Array.from(e.children))this.appendChild(t)}}static htmlDimensionToCssDimension(e){if(e){const t=e.match(Fe);if(t){let e=t[1];return t[3]||(e+="px"),e}}return null}onCallbackAvailable(e){const t=this.instance;this[e]=(...n)=>null==t?void 0:t.call_exposed_callback(e,n)}set traceObserver(e){var t;null===(t=this.instance)||void 0===t||t.set_trace_observer(e)}getPanicData(){let e="\n# Player Info\n";if(e+=`Allows script access: ${!!this.loadedConfig&&this.loadedConfig.allowScriptAccess}\n`,e+=`${this.rendererDebugInfo}\n`,e+=this.debugPlayerInfo(),e+="\n# Page Info\n",e+=`Page URL: ${document.location.href}\n`,this.swfUrl&&(e+=`SWF URL: ${this.swfUrl}\n`),e+="\n# Browser Info\n",e+=`User Agent: ${window.navigator.userAgent}\n`,e+=`Platform: ${window.navigator.platform}\n`,e+=`Has touch support: ${window.navigator.maxTouchPoints>0}\n`,e+="\n# Ruffle Info\n",e+=`Version: ${x}\n`,e+=`Name: ${R}\n`,e+=`Channel: ${S}\n`,e+=`Built: ${z}\n`,e+=`Commit: ${E}\n`,e+=`Is extension: ${this.isExtension}\n`,e+="\n# Metadata\n",this.metadata)for(const[t,n]of Object.entries(this.metadata))e+=`${t}: ${n}\n`;return e}panic(e){var t;if(this.panicked)return;if(this.panicked=!0,this.hideSplashScreen(),e instanceof Error&&("AbortError"===e.name||e.message.includes("AbortError")))return;const n=null!==(t=null==e?void 0:e.ruffleIndexError)&&void 0!==t?t:0,r=Object.assign([],{stackIndex:-1,avmStackIndex:-1});if(r.push("# Error Info\n"),e instanceof Error){if(r.push(`Error name: ${e.name}\n`),r.push(`Error message: ${e.message}\n`),e.stack){const t=r.push(`Error stack:\n\`\`\`\n${e.stack}\n\`\`\`\n`)-1;if(e.avmStack){const t=r.push(`AVM2 stack:\n\`\`\`\n ${e.avmStack.trim().replace(/\t/g," ")}\n\`\`\`\n`)-1;r.avmStackIndex=t}r.stackIndex=t}}else r.push(`Error: ${e}\n`);r.push(this.getPanicData());const i=r.join(""),a=new Date(z),o=new Date;o.setMonth(o.getMonth()-6);const s=o>a;let l,u,c;if(s)l=`${je("update-ruffle")}`;else{const e=document.location.href.split(/[?#]/)[0];let t=`https://github.com/ruffle-rs/ruffle/issues/new?title=${encodeURIComponent(`Error on ${e}`)}&template=error_report.md&labels=error-report&body=`,n=encodeURIComponent(i);r.stackIndex>-1&&String(t+n).length>8195&&(r[r.stackIndex]=null,r.avmStackIndex>-1&&(r[r.avmStackIndex]=null),n=encodeURIComponent(r.join(""))),t+=n,l=`${je("report-bug")}`}switch(n){case 2:u=Ce("error-file-protocol"),c=`\n
  • ${je("ruffle-demo")}
  • \n
  • ${je("ruffle-desktop")}
  • \n `;break;case 4:u=Ce("error-javascript-config"),c=`\n
  • ${je("ruffle-wiki")}
  • \n
  • ${je("view-error-details")}
  • \n `;break;case 9:u=Ce("error-wasm-not-found"),c=`\n
  • ${je("ruffle-wiki")}
  • \n
  • ${je("view-error-details")}
  • \n `;break;case 8:u=Ce("error-wasm-mime-type"),c=`\n
  • ${je("ruffle-wiki")}
  • \n
  • ${je("view-error-details")}
  • \n `;break;case 11:u=Ce("error-swf-fetch"),c=`\n
  • ${je("view-error-details")}
  • \n `;break;case 12:u=Ce("error-swf-cors"),c=`\n
  • ${je("ruffle-wiki")}
  • \n
  • ${je("view-error-details")}
  • \n `;break;case 6:u=Ce("error-wasm-cors"),c=`\n
  • ${je("ruffle-wiki")}
  • \n
  • ${je("view-error-details")}
  • \n `;break;case 3:u=Ce("error-wasm-invalid"),c=`\n
  • ${je("ruffle-wiki")}
  • \n
  • ${je("view-error-details")}
  • \n `;break;case 7:u=Ce("error-wasm-download"),c=`\n
  • ${je("view-error-details")}
  • \n `;break;case 10:u=Ce("error-wasm-disabled-on-edge"),c=`\n
  • ${je("more-info")}
  • \n
  • ${je("view-error-details")}
  • \n `;break;case 5:u=Ce("error-javascript-conflict"),s&&(u+=Ce("error-javascript-conflict-outdated",{buildDate:z})),c=`\n
  • ${l}
  • \n
  • ${je("view-error-details")}
  • \n `;break;case 1:u=Ce("error-csp-conflict"),c=`\n
  • ${je("ruffle-wiki")}
  • \n
  • ${je("view-error-details")}
  • \n `;break;default:u=Ce("error-unknown",{buildDate:z,outdated:String(s)}),c=`\n
  • ${l}
  • \n
  • ${je("view-error-details")}
  • \n `}this.container.innerHTML=`\n
    \n
    ${je("panic-title")}
    \n
    ${u}
    \n \n
    \n `;const d=this.container.querySelector("#panic-view-details");d&&(d.onclick=()=>{const e=this.container.querySelector("#panic-body");e.classList.add("details");const t=document.createElement("textarea");return t.readOnly=!0,t.value=i,e.replaceChildren(t),!1}),this.destroy()}displayRootMovieDownloadFailedMessage(){var e;if(this.isExtension&&window.location.origin!==this.swfUrl.origin){const t=new URL(this.swfUrl);if(null===(e=this.loadedConfig)||void 0===e?void 0:e.parameters){const e=Te(this.loadedConfig.parameters);Object.entries(e).forEach((([e,n])=>{t.searchParams.set(e,n)}))}this.hideSplashScreen();const n=document.createElement("div");n.id="message_overlay",n.innerHTML=`
    \n ${Ce("message-cant-embed")}\n \n
    `,this.container.prepend(n)}else{const e=new Error("Failed to fetch: "+this.swfUrl);this.swfUrl.protocol.includes("http")?window.location.origin===this.swfUrl.origin?e.ruffleIndexError=11:e.ruffleIndexError=12:e.ruffleIndexError=2,this.panic(e)}}displayUnsupportedMessage(){const e=document.createElement("div");e.id="message_overlay",e.innerHTML=`
    \n ${Ce("message-unsupported-avm2")}\n
    \n ${je("more-info")}\n \n
    \n
    `,this.container.prepend(e);e.querySelector("#run-anyway-btn").onclick=()=>{e.parentNode.removeChild(e)}}displayMessage(e){const t=document.createElement("div");t.id="message_overlay",t.innerHTML=`
    \n

    ${e}

    \n
    \n \n
    \n
    `,this.container.prepend(t),this.container.querySelector("#continue-btn").onclick=()=>{t.parentNode.removeChild(t)}}debugPlayerInfo(){return""}hideSplashScreen(){this.splashScreen.classList.add("hidden"),this.container.classList.remove("hidden")}showSplashScreen(){this.splashScreen.classList.remove("hidden"),this.container.classList.add("hidden")}setMetadata(e){this._metadata=e,this._readyState=2,this.hideSplashScreen(),this.dispatchEvent(new Event(Le.LOADED_METADATA)),this.dispatchEvent(new Event(Le.LOADED_DATA))}setIsExtension(e){this.isExtension=e}}function Be(e,t){switch(e||(e="sameDomain"),e.toLowerCase()){case"always":return!0;case"never":return!1;default:try{return new URL(window.location.href).origin===new URL(t,window.location.href).origin}catch(e){return!1}}}function Me(e){return null===e||"true"===e.toLowerCase()}function Ne(e){if(e){let t="",n="";try{const r=new URL(e,De);t=r.pathname,n=r.hostname}catch(e){}if(t.startsWith("/v/")&&/^(?:(?:www\.|m\.)?youtube(?:-nocookie)?\.com)|(?:youtu\.be)$/i.test(n))return!0}return!1}function Ue(e,t){var n,r;const i=e.getAttribute(t),a=null!==(r=null===(n=window.RufflePlayer)||void 0===n?void 0:n.config)&&void 0!==r?r:{};if(i)try{const n=new URL(i);"http:"!==n.protocol||"https:"!==window.location.protocol||"upgradeToHttps"in a&&!1===a.upgradeToHttps||(n.protocol="https:",e.setAttribute(t,n.toString()))}catch(e){}}function We(e){let t=e.parentElement;for(;null!==t;){switch(t.tagName){case"AUDIO":case"VIDEO":return!0}t=t.parentElement}return!1}Le.LOADED_METADATA="loadedmetadata",Le.LOADED_DATA="loadeddata";class qe extends Le{constructor(){super()}connectedCallback(){var e,t,n,r,i,a,o,s,l,u,c,d,f,h,p,m,v,g,b,w;super.connectedCallback();const k=this.attributes.getNamedItem("src");if(k){const y=null!==(t=null===(e=this.attributes.getNamedItem("allowScriptAccess"))||void 0===e?void 0:e.value)&&void 0!==t?t:null,_=null!==(r=null===(n=this.attributes.getNamedItem("menu"))||void 0===n?void 0:n.value)&&void 0!==r?r:null;this.load({url:k.value,allowScriptAccess:Be(y,k.value),parameters:null!==(a=null===(i=this.attributes.getNamedItem("flashvars"))||void 0===i?void 0:i.value)&&void 0!==a?a:null,backgroundColor:null!==(s=null===(o=this.attributes.getNamedItem("bgcolor"))||void 0===o?void 0:o.value)&&void 0!==s?s:null,base:null!==(u=null===(l=this.attributes.getNamedItem("base"))||void 0===l?void 0:l.value)&&void 0!==u?u:null,menu:Me(_),salign:null!==(d=null===(c=this.attributes.getNamedItem("salign"))||void 0===c?void 0:c.value)&&void 0!==d?d:"",quality:null!==(h=null===(f=this.attributes.getNamedItem("quality"))||void 0===f?void 0:f.value)&&void 0!==h?h:"high",scale:null!==(m=null===(p=this.attributes.getNamedItem("scale"))||void 0===p?void 0:p.value)&&void 0!==m?m:"showAll",wmode:null!==(g=null===(v=this.attributes.getNamedItem("wmode"))||void 0===v?void 0:v.value)&&void 0!==g?g:"window",allowNetworking:null!==(w=null===(b=this.attributes.getNamedItem("allowNetworking"))||void 0===b?void 0:b.value)&&void 0!==w?w:"all"})}}get src(){var e;return null===(e=this.attributes.getNamedItem("src"))||void 0===e?void 0:e.value}set src(e){if(e){const t=document.createAttribute("src");t.value=e,this.attributes.setNamedItem(t)}else this.attributes.removeNamedItem("src")}static get observedAttributes(){return["src","width","height"]}attributeChangedCallback(e,t,n){var r,i,a,o;if(super.attributeChangedCallback(e,t,n),this.isConnected&&"src"===e){const e=this.attributes.getNamedItem("src");e&&this.load({url:e.value,parameters:null!==(i=null===(r=this.attributes.getNamedItem("flashvars"))||void 0===r?void 0:r.value)&&void 0!==i?i:null,base:null!==(o=null===(a=this.attributes.getNamedItem("base"))||void 0===a?void 0:a.value)&&void 0!==o?o:null})}}static isInterdictable(e){const t=e.getAttribute("src"),n=e.getAttribute("type");return!!t&&(!We(e)&&(Ne(t)?(Ue(e,"src"),!1):_(t,n)))}static fromNativeEmbedElement(e){const t=v("ruffle-embed",qe),n=document.createElement(t);return n.copyElement(e),n}}function Ze(e,t,n){t=t.toLowerCase();for(const[n,r]of Object.entries(e))if(n.toLowerCase()===t)return r;return n}function He(e){var t,n;const r={};for(const i of e.children)if(i instanceof HTMLParamElement){const e=null===(t=i.attributes.getNamedItem("name"))||void 0===t?void 0:t.value,a=null===(n=i.attributes.getNamedItem("value"))||void 0===n?void 0:n.value;e&&a&&(r[e]=a)}return r}class Ve extends Le{constructor(){super(),this.params={}}connectedCallback(){var e;super.connectedCallback(),this.params=He(this);let t=null;this.attributes.getNamedItem("data")?t=null===(e=this.attributes.getNamedItem("data"))||void 0===e?void 0:e.value:this.params.movie&&(t=this.params.movie);const n=Ze(this.params,"allowScriptAccess",null),r=Ze(this.params,"flashvars",this.getAttribute("flashvars")),i=Ze(this.params,"bgcolor",this.getAttribute("bgcolor")),a=Ze(this.params,"allowNetworking",this.getAttribute("allowNetworking")),o=Ze(this.params,"base",this.getAttribute("base")),s=Ze(this.params,"menu",null),l=Ze(this.params,"salign",""),u=Ze(this.params,"quality","high"),c=Ze(this.params,"scale","showAll"),d=Ze(this.params,"wmode","window");if(t){const e={url:t};e.allowScriptAccess=Be(n,t),r&&(e.parameters=r),i&&(e.backgroundColor=i),o&&(e.base=o),e.menu=Me(s),l&&(e.salign=l),u&&(e.quality=u),c&&(e.scale=c),d&&(e.wmode=d),a&&(e.allowNetworking=a),this.load(e)}}debugPlayerInfo(){var e;let t="Player type: Object\n",n=null;return this.attributes.getNamedItem("data")?n=null===(e=this.attributes.getNamedItem("data"))||void 0===e?void 0:e.value:this.params.movie&&(n=this.params.movie),t+=`SWF URL: ${n}\n`,Object.keys(this.params).forEach((e=>{t+=`Param ${e}: ${this.params[e]}\n`})),Object.keys(this.attributes).forEach((e=>{var n;t+=`Attribute ${e}: ${null===(n=this.attributes.getNamedItem(e))||void 0===n?void 0:n.value}\n`})),t}get data(){return this.getAttribute("data")}set data(e){if(e){const t=document.createAttribute("data");t.value=e,this.attributes.setNamedItem(t)}else this.attributes.removeNamedItem("data")}static isInterdictable(e){var t,n,r,i;if(We(e))return!1;if(e.getElementsByTagName("ruffle-object").length>0||e.getElementsByTagName("ruffle-embed").length>0)return!1;const a=null===(t=e.attributes.getNamedItem("data"))||void 0===t?void 0:t.value.toLowerCase(),o=null!==(r=null===(n=e.attributes.getNamedItem("type"))||void 0===n?void 0:n.value)&&void 0!==r?r:null,s=He(e);let l;if(a){if(Ne(a))return Ue(e,"data"),!1;l=a}else{if(!s||!s.movie)return!1;if(Ne(s.movie)){const t=e.querySelector("param[name='movie']");if(t){Ue(t,"value");const n=t.getAttribute("value");n&&e.setAttribute("data",n)}return!1}l=s.movie}const u=null===(i=e.attributes.getNamedItem("classid"))||void 0===i?void 0:i.value.toLowerCase();return u==="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000".toLowerCase()?!Array.from(e.getElementsByTagName("object")).some(Ve.isInterdictable)&&!Array.from(e.getElementsByTagName("embed")).some(qe.isInterdictable):!u&&_(l,o)}static fromNativeObjectElement(e){const t=v("ruffle-object",Ve),n=document.createElement(t);for(const t of Array.from(e.getElementsByTagName("embed")))qe.isInterdictable(t)&&t.remove();for(const t of Array.from(e.getElementsByTagName("object")))Ve.isInterdictable(t)&&t.remove();return n.copyElement(e),n}}class Je{constructor(e){if(this.__mimeTypes=[],this.__namedMimeTypes={},e)for(let t=0;t>>0]}namedItem(e){return this.__namedMimeTypes[e]}get length(){return this.__mimeTypes.length}[Symbol.iterator](){return this.__mimeTypes[Symbol.iterator]()}}class Ke extends Je{constructor(e,t,n){super(),this.name=e,this.description=t,this.filename=n}}class Ge{constructor(e){this.__plugins=[],this.__namedPlugins={};for(let t=0;t>>0]}namedItem(e){return this.__namedPlugins[e]}refresh(){}[Symbol.iterator](){return this.__plugins[Symbol.iterator]()}get length(){return this.__plugins.length}}const Ye=new Ke("Shockwave Flash","Shockwave Flash 32.0 r0","ruffle.js"),Xe=new Ke("Ruffle Extension","Ruffle Extension","ruffle.js");var Qe,et;let tt;Ye.install({type:w,description:"Shockwave Flash",suffixes:"spl",enabledPlugin:Ye}),Ye.install({type:b,description:"Shockwave Flash",suffixes:"swf",enabledPlugin:Ye}),Ye.install({type:k,description:"Shockwave Flash",suffixes:"swf",enabledPlugin:Ye}),Ye.install({type:y,description:"Shockwave Flash",suffixes:"swf",enabledPlugin:Ye}),Xe.install({type:"",description:"Ruffle Detection",suffixes:"",enabledPlugin:Xe});const nt=null!==(et=null===(Qe=window.RufflePlayer)||void 0===Qe?void 0:Qe.config)&&void 0!==et?et:{},rt=d(nt)+"ruffle.js";let it,at,ot,st;function lt(){var e,t;return"ruffle.js"!==(null!==(t=null===(e=navigator.plugins.namedItem("Shockwave Flash"))||void 0===e?void 0:e.filename)&&void 0!==t?t:"ruffle.js")}function ut(){try{it=null!=it?it:document.getElementsByTagName("object"),at=null!=at?at:document.getElementsByTagName("embed");for(const e of Array.from(it))if(Ve.isInterdictable(e)){const t=Ve.fromNativeObjectElement(e);t.setIsExtension(tt),e.replaceWith(t)}for(const e of Array.from(at))if(qe.isInterdictable(e)){const t=qe.fromNativeEmbedElement(e);t.setIsExtension(tt),e.replaceWith(t)}}catch(e){console.error(`Serious error encountered when polyfilling native Flash elements: ${e}`)}}function ct(){ot=null!=ot?ot:document.getElementsByTagName("iframe"),st=null!=st?st:document.getElementsByTagName("frame"),[ot,st].forEach((e=>{for(const t of e){if(void 0!==t.dataset.rufflePolyfilled)continue;t.dataset.rufflePolyfilled="";const e=t.contentWindow,n=`Couldn't load Ruffle into ${t.tagName}[${t.src}]: `;try{"complete"===e.document.readyState&&dt(e,n)}catch(e){tt||console.warn(n+e)}t.addEventListener("load",(()=>{dt(e,n)}),!1)}}))}async function dt(e,t){var n;let r;await new Promise((e=>{window.setTimeout((()=>{e()}),100)}));try{if(r=e.document,!r)return}catch(e){return void(tt||console.warn(t+e))}if(tt||void 0===r.documentElement.dataset.ruffleOptout)if(tt)e.RufflePlayer||(e.RufflePlayer={}),e.RufflePlayer.config=Object.assign(Object.assign({},nt),null!==(n=e.RufflePlayer.config)&&void 0!==n?n:{});else if(!e.RufflePlayer){const t=r.createElement("script");t.setAttribute("src",rt),t.onload=()=>{e.RufflePlayer={},e.RufflePlayer.config=nt},r.head.appendChild(t)}}function ft(){lt()||function(e){"install"in navigator.plugins&&navigator.plugins.install||Object.defineProperty(navigator,"plugins",{value:new Ge(navigator.plugins),writable:!1}),navigator.plugins.install(e),!(e.length>0)||"install"in navigator.mimeTypes&&navigator.mimeTypes.install||Object.defineProperty(navigator,"mimeTypes",{value:new Je(navigator.mimeTypes),writable:!1});const t=navigator.mimeTypes;for(let n=0;ne.addedNodes.length>0))&&(ut(),ct())})).observe(document,{childList:!0,subtree:!0}))}const pt={version:x,polyfill(e){ht(e)},pluginPolyfill(){ft()},createPlayer(){const e=v("ruffle-player",Le);return document.createElement(e)}};class mt{constructor(e){this.sources={},this.config={},this.invoked=!1,this.newestName=null,this.conflict=null,null!=e&&(e instanceof mt?(this.sources=e.sources,this.config=e.config,this.invoked=e.invoked,this.conflict=e.conflict,this.newestName=e.newestName,e.superseded()):e.constructor===Object&&e.config instanceof Object?this.config=e.config:this.conflict=e),"loading"===document.readyState?document.addEventListener("readystatechange",this.init.bind(this)):window.setTimeout(this.init.bind(this),0)}get version(){return"0.1.0"}registerSource(e){this.sources[e]=pt}newestSourceName(){let t=null,n=e.fromSemver("0.0.0");for(const r in this.sources)if(Object.prototype.hasOwnProperty.call(this.sources,r)){const i=e.fromSemver(this.sources[r].version);i.hasPrecedenceOver(n)&&(t=r,n=i)}return t}init(){if(!this.invoked){if(this.invoked=!0,this.newestName=this.newestSourceName(),null===this.newestName)throw new Error("No registered Ruffle source!");!1!==(!("polyfills"in this.config)||this.config.polyfills)&&this.sources[this.newestName].polyfill("extension"===this.newestName)}}newest(){const e=this.newestSourceName();return null!==e?this.sources[e]:null}satisfying(n){const r=t.fromRequirementString(n);let i=null;for(const t in this.sources)if(Object.prototype.hasOwnProperty.call(this.sources,t)){const n=e.fromSemver(this.sources[t].version);r.satisfiedBy(n)&&(i=this.sources[t])}return i}localCompatible(){return void 0!==this.sources.local?this.satisfying("^"+this.sources.local.version):this.newest()}local(){return void 0!==this.sources.local?this.satisfying("="+this.sources.local.version):this.newest()}superseded(){this.invoked=!0}static negotiate(e,t){let n;if(n=e instanceof mt?e:new mt(e),void 0!==t){n.registerSource(t);!1!==(!("polyfills"in n.config)||n.config.polyfills)&&pt.pluginPolyfill()}return n}}window.RufflePlayer=mt.negotiate(window.RufflePlayer,"local")})()})(); +(()=>{"use strict";var e,t,n={899:(e,t,n)=>{e.exports=n.p+"9609ef2907fc51a5c223.wasm"},878:(e,t,n)=>{e.exports=n.p+"78993198e943ac45dcb0.wasm"}},r={};function i(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={id:e,loaded:!1,exports:{}};return n[e](a,a.exports,i),a.loaded=!0,a.exports}i.m=n,i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,n)=>(i.f[n](e,t),t)),[])),i.u=e=>"core.ruffle."+{159:"b2b392bcfd8f4bacb933",339:"1e9196b890c02cf8a18d"}[e]+".js",i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="ruffle-selfhosted:",i.l=(n,r,a,o)=>{if(e[n])e[n].push(r);else{var s,l;if(void 0!==a)for(var c=document.getElementsByTagName("script"),u=0;u{s.onerror=s.onload=null,clearTimeout(h);var i=e[n];if(delete e[n],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(r))),t)return t(r)},h=setTimeout(f.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=f.bind(null,s.onerror),s.onload=f.bind(null,s.onload),l&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="",(()=>{i.b=document.baseURI||self.location.href;var e={179:0};i.f.j=(t,n)=>{var r=i.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var a=new Promise(((n,i)=>r=e[t]=[n,i]));n.push(r[2]=a);var o=i.p+i.u(t),s=new Error;i.l(o,(n=>{if(i.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var a=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;s.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",s.name="ChunkLoadError",s.type=a,s.request=o,r[1](s)}}),"chunk-"+t,t)}};var t=(t,n)=>{var r,a,[o,s,l]=n,c=0;if(o.some((t=>0!==e[t]))){for(r in s)i.o(s,r)&&(i.m[r]=s[r]);l&&l(i)}for(t&&t(n);c{class e{constructor(e,t,n,r,i){this.major=e,this.minor=t,this.patch=n,this.prIdent=r,this.buildIdent=i}static fromSemver(t){const n=t.split("+"),r=n[0].split("-"),i=r[0].split("."),a=parseInt(i[0],10);let o=0,s=0,l=null,c=null;return void 0!==i[1]&&(o=parseInt(i[1],10)),void 0!==i[2]&&(s=parseInt(i[2],10)),void 0!==r[1]&&(l=r[1].split(".")),void 0!==n[1]&&(c=n[1].split(".")),new e(a,o,s,l,c)}isCompatibleWith(e){return 0!==this.major&&this.major===e.major||0===this.major&&0===e.major&&0!==this.minor&&this.minor===e.minor||0===this.major&&0===e.major&&0===this.minor&&0===e.minor&&0!==this.patch&&this.patch===e.patch}hasPrecedenceOver(e){if(this.major>e.major)return!0;if(this.majore.minor)return!0;if(this.minore.patch)return!0;if(this.patchparseInt(e.prIdent[n],10))return!0;if(parseInt(this.prIdent[n],10)e.prIdent[n])return!0;if(this.prIdent[n]e.prIdent.length}return!1}isEqual(e){return this.major===e.major&&this.minor===e.minor&&this.patch===e.patch}isStableOrCompatiblePrerelease(e){return null===e.prIdent||this.major===e.major&&this.minor===e.minor&&this.patch===e.patch}}class t{constructor(e){this.requirements=e}satisfiedBy(e){for(const t of this.requirements){let n=!0;for(const{comparator:r,version:i}of t)n=n&&i.isStableOrCompatiblePrerelease(e),""===r||"="===r?n=n&&i.isEqual(e):">"===r?n=n&&e.hasPrecedenceOver(i):">="===r?n=n&&(e.hasPrecedenceOver(i)||i.isEqual(e)):"<"===r?n=n&&i.hasPrecedenceOver(e):"<="===r?n=n&&(i.hasPrecedenceOver(e)||i.isEqual(e)):"^"===r&&(n=n&&i.isCompatibleWith(e));if(n)return!0}return!1}static fromRequirementString(n){const r=n.split(" ");let i=[];const a=[];for(const t of r)if("||"===t)i.length>0&&(a.push(i),i=[]);else if(t.length>0){const n=/[0-9]/.exec(t);if(n){const r=t.slice(0,n.index).trim(),a=e.fromSemver(t.slice(n.index).trim());i.push({comparator:r,version:a})}}return i.length>0&&a.push(i),new t(a)}}const n=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,3,1,0,1,10,14,1,12,0,65,0,65,0,65,0,252,10,0,0,11])),r=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,7,1,5,0,208,112,26,11])),a=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,12,1,10,0,67,0,0,0,0,252,0,26,11])),o=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,65,0,192,26,11])),s=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]));function l(e){const t="function"==typeof Function.prototype.toString?Function.prototype.toString():null;return"string"==typeof t&&t.indexOf("[native code]")>=0&&Function.prototype.toString.call(e).indexOf("[native code]")>=0}let c="";try{if(void 0!==document.currentScript&&null!==document.currentScript&&"src"in document.currentScript&&""!==document.currentScript.src){let e=document.currentScript.src;e.endsWith(".js")||e.endsWith("/")||(e+="/"),c=new URL(".",e).href}}catch(e){console.warn("Unable to get currentScript URL")}function u(e){let t=c;return"publicPath"in e&&null!==e.publicPath&&void 0!==e.publicPath&&(t=e.publicPath),""===t||t.endsWith("/")||(t+="/"),t}let d=null;function f(e,t){return null===d&&(d=async function(e,t){"function"==typeof Array.prototype.reduce&&l(Array.prototype.reduce)||Object.defineProperty(Array.prototype,"reduce",{value(...e){if(0===e.length&&window.Prototype&&window.Prototype.Version&&window.Prototype.Version<"1.6.1")return this.length>1?this:this[0];const t=e[0];if(null===this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof t)throw new TypeError(`${t} is not a function`);const n=Object(this),r=n.length>>>0;let i,a=0;if(e.length>=2)i=e[1];else{for(;a=r)throw new TypeError("Reduce of empty array with no initial value");i=n[a++]}for(;ae[t]}),"function"!=typeof Reflect.set&&Object.defineProperty(Reflect,"set",{value(e,t,n){e[t]=n}}),"function"!=typeof Reflect.has&&Object.defineProperty(Reflect,"has",{value:(e,t)=>t in e}),"function"!=typeof Reflect.ownKeys&&Object.defineProperty(Reflect,"ownKeys",{value:e=>[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)]});const c=(await Promise.all([n(),s(),a(),o(),r()])).every(Boolean);c||console.log("Some WebAssembly extensions are NOT available, falling back to the vanilla WebAssembly module"),i.p=u(e);const{default:d,Ruffle:f}=await(c?i.e(339).then(i.bind(i,339)):i.e(159).then(i.bind(i,159)));let h;const p=c?new URL(i(899),i.b):new URL(i(878),i.b),m=await fetch(p);if(t){const e=m.headers.get("content-length")||"";let n=0;const r=parseInt(e);h=new Response(new ReadableStream({async start(e){var i;const a=null===(i=m.body)||void 0===i?void 0:i.getReader();if(!a)throw"Response had no body";for(t(n,r);;){const{done:i,value:o}=await a.read();if(i)break;(null==o?void 0:o.byteLength)&&(n+=null==o?void 0:o.byteLength),e.enqueue(o),t(n,r)}e.close()}}),m)}else h=m;return await d(h),f}(e,t)),d}const h=document.createElement("template");h.innerHTML='\n \n \n\n
    \n
    \n
    \n \n
    \n \n\n \n
      \n';const p={};function m(e,t){const n=p[e];if(void 0!==n){if(n.class!==t)throw new Error("Internal naming conflict on "+e);return n.name}let r=0;if(void 0!==window.customElements)for(;r<999;){let n=e;if(r>0&&(n=n+"-"+r),void 0===window.customElements.get(n))return window.customElements.define(n,t),p[e]={class:t,name:n,internalName:e},n;r+=1}throw new Error("Failed to assign custom element "+e)}const g={allowScriptAccess:!1,parameters:{},autoplay:"auto",backgroundColor:null,letterbox:"fullscreen",unmuteOverlay:"visible",upgradeToHttps:!0,compatibilityRules:!0,warnOnUnsupportedContent:!0,logLevel:"error",showSwfDownload:!1,contextMenu:"on",preloader:!0,splashScreen:!0,maxExecutionDuration:15,base:null,menu:!0,salign:"",quality:"high",scale:"showAll",forceScale:!1,frameRate:null,wmode:"opaque",publicPath:null,polyfills:!0,playerVersion:null,preferredRenderer:null,openUrlMode:"allow",allowNetworking:"all"},v="application/x-shockwave-flash",w="application/futuresplash",b="application/x-shockwave-flash2-preview",y="application/vnd.adobe.flash.movie";function x(e){if(e){let t="";try{t=new URL(e,"https://example.com").pathname}catch(e){}if(t&&t.length>=4){const e=t.slice(-4).toLowerCase();if(".swf"===e||".spl"===e)return!0}}return!1}function k(e){switch(e.toLowerCase()){case v.toLowerCase():case w.toLowerCase():case b.toLowerCase():case y.toLowerCase():return!0;default:return!1}}const R="0.1.0",S="nightly 2023-05-13",E="2023-05-13T00:20:38.156Z";class C{constructor(e){this.value=e}valueOf(){return this.value}}class I extends C{constructor(e="???"){super(e)}toString(e){return`{${this.value}}`}}class A extends C{constructor(e,t={}){super(e),this.opts=t}toString(e){try{return e.memoizeIntlObject(Intl.NumberFormat,this.opts).format(this.value)}catch(t){return e.reportError(t),this.value.toString(10)}}}class _ extends C{constructor(e,t={}){super(e),this.opts=t}toString(e){try{return e.memoizeIntlObject(Intl.DateTimeFormat,this.opts).format(this.value)}catch(t){return e.reportError(t),new Date(this.value).toISOString()}}}const $=100,j="⁨",P="⁩";function O(e,t,n){return n===t||(n instanceof A&&t instanceof A&&n.value===t.value||t instanceof A&&"string"==typeof n&&n===e.memoizeIntlObject(Intl.PluralRules,t.opts).select(t.value))}function F(e,t,n){return t[n]?D(e,t[n].value):(e.reportError(new RangeError("No default")),new I)}function M(e,t){const n=[],r=Object.create(null);for(const i of t)"narg"===i.type?r[i.name]=L(e,i.value):n.push(L(e,i));return{positional:n,named:r}}function L(e,t){switch(t.type){case"str":return t.value;case"num":return new A(t.value,{minimumFractionDigits:t.precision});case"var":return function(e,{name:t}){let n;if(e.params){if(!Object.prototype.hasOwnProperty.call(e.params,t))return new I(`$${t}`);n=e.params[t]}else{if(!e.args||!Object.prototype.hasOwnProperty.call(e.args,t))return e.reportError(new ReferenceError(`Unknown variable: $${t}`)),new I(`$${t}`);n=e.args[t]}if(n instanceof C)return n;switch(typeof n){case"string":return n;case"number":return new A(n);case"object":if(n instanceof Date)return new _(n.getTime());default:return e.reportError(new TypeError(`Variable type not supported: $${t}, ${typeof n}`)),new I(`$${t}`)}}(e,t);case"mesg":return function(e,{name:t,attr:n}){const r=e.bundle._messages.get(t);if(!r)return e.reportError(new ReferenceError(`Unknown message: ${t}`)),new I(t);if(n){const i=r.attributes[n];return i?D(e,i):(e.reportError(new ReferenceError(`Unknown attribute: ${n}`)),new I(`${t}.${n}`))}return r.value?D(e,r.value):(e.reportError(new ReferenceError(`No value: ${t}`)),new I(t))}(e,t);case"term":return function(e,{name:t,attr:n,args:r}){const i=`-${t}`,a=e.bundle._terms.get(i);if(!a)return e.reportError(new ReferenceError(`Unknown term: ${i}`)),new I(i);if(n){const t=a.attributes[n];if(t){e.params=M(e,r).named;const n=D(e,t);return e.params=null,n}return e.reportError(new ReferenceError(`Unknown attribute: ${n}`)),new I(`${i}.${n}`)}e.params=M(e,r).named;const o=D(e,a.value);return e.params=null,o}(e,t);case"func":return function(e,{name:t,args:n}){let r=e.bundle._functions[t];if(!r)return e.reportError(new ReferenceError(`Unknown function: ${t}()`)),new I(`${t}()`);if("function"!=typeof r)return e.reportError(new TypeError(`Function ${t}() is not callable`)),new I(`${t}()`);try{let t=M(e,n);return r(t.positional,t.named)}catch(n){return e.reportError(n),new I(`${t}()`)}}(e,t);case"select":return function(e,{selector:t,variants:n,star:r}){let i=L(e,t);if(i instanceof I)return F(e,n,r);for(const t of n)if(O(e,i,L(e,t.key)))return D(e,t.value);return F(e,n,r)}(e,t);default:return new I}}function T(e,t){if(e.dirty.has(t))return e.reportError(new RangeError("Cyclic reference")),new I;e.dirty.add(t);const n=[],r=e.bundle._useIsolating&&t.length>1;for(const i of t)if("string"!=typeof i){if(e.placeables++,e.placeables>$)throw e.dirty.delete(t),new RangeError(`Too many placeables expanded: ${e.placeables}, max allowed is ${$}`);r&&n.push(j),n.push(L(e,i).toString(e)),r&&n.push(P)}else n.push(e.bundle._transform(i));return e.dirty.delete(t),n.join("")}function D(e,t){return"string"==typeof t?e.bundle._transform(t):T(e,t)}class U{constructor(e,t,n){this.dirty=new WeakSet,this.params=null,this.placeables=0,this.bundle=e,this.errors=t,this.args=n}reportError(e){if(!(this.errors&&e instanceof Error))throw e;this.errors.push(e)}memoizeIntlObject(e,t){let n=this.bundle._intls.get(e);n||(n={},this.bundle._intls.set(e,n));let r=JSON.stringify(t);return n[r]||(n[r]=new e(this.bundle.locales,t)),n[r]}}function q(e,t){const n=Object.create(null);for(const[r,i]of Object.entries(e))t.includes(r)&&(n[r]=i.valueOf());return n}const N=["unitDisplay","currencyDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits"];function z(e,t){let n=e[0];if(n instanceof I)return new I(`NUMBER(${n.valueOf()})`);if(n instanceof A)return new A(n.valueOf(),{...n.opts,...q(t,N)});if(n instanceof _)return new A(n.valueOf(),{...q(t,N)});throw new TypeError("Invalid argument to NUMBER")}const B=["dateStyle","timeStyle","fractionalSecondDigits","dayPeriod","hour12","weekday","era","year","month","day","hour","minute","second","timeZoneName"];function W(e,t){let n=e[0];if(n instanceof I)return new I(`DATETIME(${n.valueOf()})`);if(n instanceof _)return new _(n.valueOf(),{...n.opts,...q(t,B)});if(n instanceof A)return new _(n.valueOf(),{...q(t,B)});throw new TypeError("Invalid argument to DATETIME")}const H=new Map;class V{constructor(e,{functions:t,useIsolating:n=!0,transform:r=(e=>e)}={}){this._terms=new Map,this._messages=new Map,this.locales=Array.isArray(e)?e:[e],this._functions={NUMBER:z,DATETIME:W,...t},this._useIsolating=n,this._transform=r,this._intls=function(e){const t=Array.isArray(e)?e.join(" "):e;let n=H.get(t);return void 0===n&&(n=new Map,H.set(t,n)),n}(e)}hasMessage(e){return this._messages.has(e)}getMessage(e){return this._messages.get(e)}addResource(e,{allowOverrides:t=!1}={}){const n=[];for(let r=0;r\s*/y,pe=/\s*:\s*/y,me=/\s*,?\s*/y,ge=/\s+/y;class ve{constructor(e){this.body=[],Z.lastIndex=0;let t=0;for(;;){let n=Z.exec(e);if(null===n)break;t=Z.lastIndex;try{this.body.push(s(n[1]))}catch(e){if(e instanceof SyntaxError)continue;throw e}}function n(n){return n.lastIndex=t,n.test(e)}function r(n,r){if(e[t]===n)return t++,!0;if(r)throw new r(`Expected ${n}`);return!1}function i(e,r){if(n(e))return t=e.lastIndex,!0;if(r)throw new r(`Expected ${e.toString()}`);return!1}function a(n){n.lastIndex=t;let r=n.exec(e);if(null===r)throw new SyntaxError(`Expected ${n.toString()}`);return t=n.lastIndex,r}function o(e){return a(e)[1]}function s(e){let t=l(),r=function(){let e=Object.create(null);for(;n(K);){let t=o(K),n=l();if(null===n)throw new SyntaxError("Expected attribute value");e[t]=n}return e}();if(null===t&&0===Object.keys(r).length)throw new SyntaxError("Expected message value or attributes");return{id:e,value:t,attributes:r}}function l(){let r;if(n(ee)&&(r=o(ee)),"{"===e[t]||"}"===e[t])return c(r?[r]:[],1/0);let i=v();return i?r?c([r,i],i.length):(i.value=w(i.value,ie),c([i],i.length)):r?w(r,ae):null}function c(r=[],i){for(;;){if(n(ee)){r.push(o(ee));continue}if("{"===e[t]){r.push(u());continue}if("}"===e[t])throw new SyntaxError("Unbalanced closing brace");let a=v();if(!a)break;r.push(a),i=Math.min(i,a.length)}let a=r.length-1,s=r[a];"string"==typeof s&&(r[a]=w(s,ae));let l=[];for(let e of r)e instanceof we&&(e=e.value.slice(0,e.value.length-i)),e&&l.push(e);return l}function u(){i(le,SyntaxError);let e=d();if(i(ce))return e;if(i(he)){let t=function(){let e,t=[],i=0;for(;n(J);){r("*")&&(e=i);let n=h(),a=l();if(null===a)throw new SyntaxError("Expected variant value");t[i++]={key:n,value:a}}if(0===i)return null;if(void 0===e)throw new SyntaxError("Expected default variant");return{variants:t,star:e}}();return i(ce,SyntaxError),{type:"select",selector:e,...t}}throw new SyntaxError("Unclosed placeable")}function d(){if("{"===e[t])return u();if(n(Q)){let[,n,r,o=null]=a(Q);if("$"===n)return{type:"var",name:r};if(i(fe)){let a=function(){let n=[];for(;;){switch(e[t]){case")":return t++,n;case void 0:throw new SyntaxError("Unclosed argument list")}n.push(f()),i(me)}}();if("-"===n)return{type:"term",name:r,attr:o,args:a};if(X.test(r))return{type:"func",name:r,args:a};throw new SyntaxError("Function names must be all upper-case")}return"-"===n?{type:"term",name:r,attr:o,args:[]}:{type:"mesg",name:r,attr:o}}return p()}function f(){let e=d();return"mesg"!==e.type?e:i(pe)?{type:"narg",name:e.name,value:p()}:e}function h(){let e;return i(ue,SyntaxError),e=n(Y)?m():{type:"str",value:o(G)},i(de,SyntaxError),e}function p(){if(n(Y))return m();if('"'===e[t])return function(){r('"',SyntaxError);let n="";for(;;){if(n+=o(te),"\\"!==e[t]){if(r('"'))return{type:"str",value:n};throw new SyntaxError("Unclosed string literal")}n+=g()}}();throw new SyntaxError("Invalid expression")}function m(){let[,e,t=""]=a(Y),n=t.length;return{type:"num",value:parseFloat(e),precision:n}}function g(){if(n(ne))return o(ne);if(n(re)){let[,e,t]=a(re),n=parseInt(e||t,16);return n<=55295||57344<=n?String.fromCodePoint(n):"�"}throw new SyntaxError("Unknown escape sequence")}function v(){let n=t;switch(i(ge),e[t]){case".":case"[":case"*":case"}":case void 0:return!1;case"{":return b(e.slice(n,t))}return" "===e[t-1]&&b(e.slice(n,t))}function w(e,t){return e.replace(t,"")}function b(e){let t=e.replace(oe,"\n"),n=se.exec(e)[1].length;return new we(t,n)}}}class we{constructor(e,t){this.value=e,this.length=t}}const be=new RegExp("^([a-z]{2,3}|\\*)(?:-([a-z]{4}|\\*))?(?:-([a-z]{2}|\\*))?(?:-(([0-9][a-z0-9]{3}|[a-z0-9]{5,8})|\\*))?$","i");class ye{constructor(e){const t=be.exec(e.replace(/_/g,"-"));if(!t)return void(this.isWellFormed=!1);let[,n,r,i,a]=t;n&&(this.language=n.toLowerCase()),r&&(this.script=r[0].toUpperCase()+r.slice(1)),i&&(this.region=i.toUpperCase()),this.variant=a,this.isWellFormed=!0}isEqual(e){return this.language===e.language&&this.script===e.script&&this.region===e.region&&this.variant===e.variant}matches(e,t=!1,n=!1){return(this.language===e.language||t&&void 0===this.language||n&&void 0===e.language)&&(this.script===e.script||t&&void 0===this.script||n&&void 0===e.script)&&(this.region===e.region||t&&void 0===this.region||n&&void 0===e.region)&&(this.variant===e.variant||t&&void 0===this.variant||n&&void 0===e.variant)}toString(){return[this.language,this.script,this.region,this.variant].filter((e=>void 0!==e)).join("-")}clearVariants(){this.variant=void 0}clearRegion(){this.region=void 0}addLikelySubtags(){const e=function(e){if(Object.prototype.hasOwnProperty.call(xe,e))return new ye(xe[e]);const t=new ye(e);return t.language&&ke.includes(t.language)?(t.region=t.language.toUpperCase(),t):null}(this.toString().toLowerCase());return!!e&&(this.language=e.language,this.script=e.script,this.region=e.region,this.variant=e.variant,!0)}}const xe={ar:"ar-arab-eg","az-arab":"az-arab-ir","az-ir":"az-arab-ir",be:"be-cyrl-by",da:"da-latn-dk",el:"el-grek-gr",en:"en-latn-us",fa:"fa-arab-ir",ja:"ja-jpan-jp",ko:"ko-kore-kr",pt:"pt-latn-br",sr:"sr-cyrl-rs","sr-ru":"sr-latn-ru",sv:"sv-latn-se",ta:"ta-taml-in",uk:"uk-cyrl-ua",zh:"zh-hans-cn","zh-hant":"zh-hant-tw","zh-hk":"zh-hant-hk","zh-mo":"zh-hant-mo","zh-tw":"zh-hant-tw","zh-gb":"zh-hant-gb","zh-us":"zh-hant-us"},ke=["az","bg","cs","de","es","fi","fr","hu","it","lt","lv","nl","pl","ro","ru"];const Re={"ca-ES":{"context_menu.ftl":"","messages.ftl":"","save-manager.ftl":""},"de-DE":{"context_menu.ftl":"","messages.ftl":"","save-manager.ftl":""},"en-US":{"context_menu.ftl":"context-menu-download-swf = Download .swf\ncontext-menu-copy-debug-info = Copy debug info\ncontext-menu-open-save-manager = Open Save Manager\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] About Ruffle Extension ({$version})\n *[other] About Ruffle ({$version})\n }\ncontext-menu-hide = Hide this menu\ncontext-menu-exit-fullscreen = Exit fullscreen\ncontext-menu-enter-fullscreen = Enter fullscreen","messages.ftl":'message-unsupported-avm2 =\n The Ruffle emulator may not yet fully support all of ActionScript 3 used by this content.\n Some parts of the content may not work as expected.\nmessage-cant-embed =\n Ruffle wasn\'t able to run the Flash embedded in this page.\n You can try to open the file in a separate tab, to sidestep this issue.\npanic-title = Something went wrong :(\nmore-info = More info\nrun-anyway = Run anyway\ncontinue = Continue\nreport-bug = Report Bug\nupdate-ruffle = Update Ruffle\nruffle-demo = Web Demo\nruffle-desktop = Desktop Application\nruffle-wiki = View Ruffle Wiki\nview-error-details = View Error Details\nopen-in-new-tab = Open in a new tab\nclick-to-unmute = Click to unmute\nerror-file-protocol =\n It appears you are running Ruffle on the "file:" protocol.\n This doesn\'t work as browsers block many features from working for security reasons.\n Instead, we invite you to setup a local server or either use the web demo or the desktop application.\nerror-javascript-config =\n Ruffle has encountered a major issue due to an incorrect JavaScript configuration.\n If you are the server administrator, we invite you to check the error details to find out which parameter is at fault.\n You can also consult the Ruffle wiki for help.\nerror-wasm-not-found =\n Ruffle failed to load the required ".wasm" file component.\n If you are the server administrator, please ensure the file has correctly been uploaded.\n If the issue persists, you may need to use the "publicPath" setting: please consult the Ruffle wiki for help.\nerror-wasm-mime-type =\n Ruffle has encountered a major issue whilst trying to initialize.\n This web server is not serving ".wasm" files with the correct MIME type.\n If you are the server administrator, please consult the Ruffle wiki for help.\nerror-swf-fetch =\n Ruffle failed to load the Flash SWF file.\n The most likely reason is that the file no longer exists, so there is nothing for Ruffle to load.\n Try contacting the website administrator for help.\nerror-swf-cors =\n Ruffle failed to load the Flash SWF file.\n Access to fetch has likely been blocked by CORS policy.\n If you are the server administrator, please consult the Ruffle wiki for help.\nerror-wasm-cors =\n Ruffle failed to load the required ".wasm" file component.\n Access to fetch has likely been blocked by CORS policy.\n If you are the server administrator, please consult the Ruffle wiki for help.\nerror-wasm-invalid =\n Ruffle has encountered a major issue whilst trying to initialize.\n It seems like this page has missing or invalid files for running Ruffle.\n If you are the server administrator, please consult the Ruffle wiki for help.\nerror-wasm-download =\n Ruffle has encountered a major issue whilst trying to initialize.\n This can often resolve itself, so you can try reloading the page.\n Otherwise, please contact the website administrator.\nerror-wasm-disabled-on-edge =\n Ruffle failed to load the required ".wasm" file component.\n To fix this, try opening your browser\'s settings, clicking "Privacy, search, and services", scrolling down, and turning off "Enhance your security on the web".\n This will allow your browser to load the required ".wasm" files.\n If the issue persists, you might have to use a different browser.\nerror-javascript-conflict =\n Ruffle has encountered a major issue whilst trying to initialize.\n It seems like this page uses JavaScript code that conflicts with Ruffle.\n If you are the server administrator, we invite you to try loading the file on a blank page.\nerror-javascript-conflict-outdated = You can also try to upload a more recent version of Ruffle that may circumvent the issue (current build is outdated: {$buildDate}).\nerror-csp-conflict =\n Ruffle has encountered a major issue whilst trying to initialize.\n This web server\'s Content Security Policy does not allow the required ".wasm" component to run.\n If you are the server administrator, please consult the Ruffle wiki for help.\nerror-unknown =\n Ruffle has encountered a major issue whilst trying to display this Flash content.\n {$outdated ->\n [true] If you are the server administrator, please try to upload a more recent version of Ruffle (current build is outdated: {$buildDate}).\n *[false] This isn\'t supposed to happen, so we\'d really appreciate if you could file a bug!\n }',"save-manager.ftl":"save-delete-prompt = Are you sure you want to delete this save file?\nsave-reload-prompt =\n The only way to {$action ->\n [delete] delete\n *[replace] replace\n } this save file without potential conflict is to reload this content. Do you wish to continue anyway?\nsave-download = Download\nsave-replace = Replace\nsave-delete = Delete\nsave-backup-all = Download all save files"},"es-ES":{"context_menu.ftl":"","messages.ftl":"","save-manager.ftl":""},"fr-FR":{"context_menu.ftl":"context-menu-download-swf = Télécharger en tant que .swf\ncontext-menu-copy-debug-info = Copier les infos de débogage\ncontext-menu-open-save-manager = Ouvrir le gestionnaire de stockage\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] À propos de Ruffle Extension ({ $version })\n *[other] À propos de Ruffle ({ $version })\n }\ncontext-menu-hide = Masquer ce menu\ncontext-menu-exit-fullscreen = Sortir du mode plein écran\ncontext-menu-enter-fullscreen = Afficher en plein écran\n","messages.ftl":"message-unsupported-avm2 =\n L'émulateur Ruffle ne prend pas encore en charge toutes les fonctionnalités du langage ActionScript 3.\n Certaines parties de ce contenu pourraient ainsi ne pas fonctionner correctement.\nmessage-cant-embed =\n Ruffle n'a pas été en mesure de lire le fichier Flash intégré dans cette page.\n Vous pouvez essayer d'ouvrir le fichier dans un onglet isolé, pour contourner le problème.\nmore-info = Plus d'infos\nrun-anyway = Exécuter quand même\ncontinue = Continuer\nopen-in-new-tab = Ouvrir dans un nouvel onglet\nclick-to-unmute = Cliquez pour activer le son\n","save-manager.ftl":"save-delete-prompt = Voulez-vous vraiment supprimer ce fichier de sauvegarde ?\nsave-reload-prompt =\n La seule façon de { $action ->\n [delete] supprimer\n *[replace] remplacer\n } ce fichier de sauvegarde sans conflit potentiel est de recharger ce contenu. Souhaitez-vous quand même continuer ?\nsave-download = Télécharger\nsave-replace = Remplacer\nsave-delete = Supprimer\n"},"hu-HU":{"context_menu.ftl":"","messages.ftl":"","save-manager.ftl":""},"it-IT":{"context_menu.ftl":"","messages.ftl":"","save-manager.ftl":""},"ja-JP":{"context_menu.ftl":"context-menu-download-swf = .swfをダウンロード\ncontext-menu-copy-debug-info = デバッグ情報をコピー\ncontext-menu-open-save-manager = セーブマネージャーを開く\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] Ruffle拡張機能について ({ $version })\n *[other] Ruffleについて ({ $version })\n }\ncontext-menu-hide = メニューを隠す\ncontext-menu-exit-fullscreen = フルスクリーンを終了\ncontext-menu-enter-fullscreen = フルスクリーンにする\n","messages.ftl":'message-unsupported-avm2 = Ruffleは、このコンテンツで使用されているActionScript3の一部をサポートしていない可能性があり、コンテンツの一部が期待どおりに動作しない場合があります。\nmessage-cant-embed =\n Ruffleはこのページに埋め込まれた Flash を実行できませんでした。\n 別のタブでファイルを開くことで、この問題を解決できるかもしれません。\npanic-title = エラーが発生しました :(\nmore-info = 詳細情報\nrun-anyway = とにかく実行する\ncontinue = 続行\nreport-bug = バグを報告\nupdate-ruffle = Ruffleを更新\nruffle-demo = Webデモ\nruffle-desktop = デスクトップアプリ\nruffle-wiki = Ruffle Wikiを見る\nview-error-details = エラーの詳細を表示\nopen-in-new-tab = 新しいタブで開く\nclick-to-unmute = クリックでミュートを解除\nerror-file-protocol =\n Ruffleを"file:"プロトコルで使用しているようです。\n ブラウザはセキュリティ上の理由から殆どの機能を制限しているため、正しく動作しません。\n ローカルサーバーをセットアップするか、ウェブデモまたはデスクトップアプリをご利用ください。\nerror-javascript-config =\n JavaScriptの設定が正しくないため、Ruffleで問題が発生しました。\n サーバー管理者の方は、エラーの詳細から、どのパラメーターに問題があるのかを確認してください。\n Ruffleのwikiを参照することで、解決方法が見つかるかもしれません。\nerror-swf-cors =\n RuffleはSWFファイルの読み込みに失敗しました。\n CORSポリシーの設定により、fetchへのアクセスがブロックされている可能性があります。\n サーバー管理者の方は、Ruffleのwikiを参照してください。\nerror-unknown =\n Flashコンテンツを表示する際にRuffleで問題が発生しました。\n { $outdated ->\n [true] 現在使用しているビルドは最新ではないため、サーバー管理者の方は、最新版のRuffleに更新してみてください(現在利用中のビルド: { $buildDate })。\n *[false] 想定外の問題なので、バグとして報告していただけると嬉しいです!\n }\n',"save-manager.ftl":"save-delete-prompt = このセーブファイルを削除してもよろしいですか?\nsave-reload-prompt =\n セーブファイルを競合の可能性なく { $action ->\n [delete] 削除する\n *[replace] 置き換える\n } ために、このコンテンツを再読み込みすることを推奨します。続行しますか?\nsave-download = ダウンロード\nsave-replace = 置き換え\nsave-delete = 削除\nsave-backup-all = 全てのセーブをバックアップ(全てのsolsファイルをダウンロード)\n"},"ko-KR":{"context_menu.ftl":"context-menu-download-swf = .swf 다운로드\ncontext-menu-copy-debug-info = 디버그 정보 복사\ncontext-menu-open-save-manager = 저장 관리자 열기\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] Ruffle 확장 프로그램 정보 ({ $version })\n *[other] Ruffle 정보 ({ $version })\n }\ncontext-menu-hide = 이 메뉴 숨기기\ncontext-menu-exit-fullscreen = 전체화면 나가기\ncontext-menu-enter-fullscreen = 전체화면으로 열기\n","messages.ftl":'message-unsupported-avm2 = Ruffle 에뮬레이터는 액션스크립트 3이 사용된 이 콘텐츠를 아직 완벽하게 지원하지 않을 수 있습니다. 콘텐츠의 일부 동작이 예상대로 작동하지 않을 수 있습니다.\nmessage-cant-embed = Ruffle이 이 페이지에 포함된 플래시를 실행할 수 없었습니다. 별도의 탭에서 파일을 열어봄으로서 이 문제를 해결할 수 있습니다.\npanic-title = 문제가 발생했습니다 :(\nmore-info = 추가 정보\nrun-anyway = 그래도 실행하기\ncontinue = 계속하기\nreport-bug = 버그 제보\nupdate-ruffle = Ruffle 업데이트\nruffle-demo = 웹 데모\nruffle-desktop = 데스크톱 애플리케이션\nruffle-wiki = Ruffle 위키 보기\nview-error-details = 오류 세부 정보 보기\nopen-in-new-tab = 새 탭에서 열기\nclick-to-unmute = 클릭하여 음소거 해제\nerror-file-protocol =\n Ruffle을 "file:" 프로토콜에서 실행하고 있는 것으로 보입니다.\n 브라우저에서는 이 프로토콜을 보안상의 이유로 많은 기능을 작동하지 않게 차단하므로 이 방법은 작동하지 않습니다.\n 대신, 로컬 서버를 직접 열어서 설정하거나 웹 데모 또는 데스크톱 애플리케이션을 사용하시기 바랍니다.\nerror-javascript-config =\n 잘못된 자바스크립트 설정으로 인해 Ruffle에서 중대한 문제가 발생했습니다.\n 만약 당신이 서버 관리자인 경우, 오류 세부사항을 확인하여 어떤 매개변수가 잘못되었는지 알아보세요.\n 또는 Ruffle 위키를 통해 도움을 받아 볼 수도 있습니다.\nerror-wasm-not-found =\n Ruffle이 ".wasm" 필수 파일 구성요소를 로드하지 못했습니다.\n 만약 당신이 서버 관리자라면 파일이 올바르게 업로드되었는지 확인하세요.\n 문제가 지속된다면 "publicPath" 옵션을 사용해야 할 수도 있습니다: Ruffle 위키를 참조하여 도움을 받으세요.\nerror-wasm-mime-type =\n Ruffle이 초기화를 시도하는 동안 중대한 문제가 발생했습니다.\n 이 웹 서버는 올바른 MIME 유형의 ".wasm" 파일을 제공하지 않습니다.\n 만약 당신이 서버 관리자라면 Ruffle 위키를 통해 도움을 받으세요.\nerror-swf-fetch =\n Ruffle이 플래시 SWF 파일을 로드하는 데 실패하였습니다.\n 이는 주로 파일이 더 이상 존재하지 않아 Ruffle이 로드할 수 있는 것이 없을 가능성이 높습니다.\n 웹사이트 관리자에게 문의하여 도움을 받아보세요.\nerror-swf-cors =\n Ruffle이 플래시 SWF 파일을 로드하는 데 실패하였습니다.\n CORS 정책에 의해 데이터 가져오기에 대한 액세스가 차단되었을 수 있습니다.\n 만약 당신이 서버 관리자라면 Ruffle 위키를 참조하여 도움을 받아볼 수 있습니다.\nerror-wasm-cors =\n Ruffle이 ".wasm" 필수 파일 구성요소를 로드하지 못했습니다.\n CORS 정책에 의해 데이터 가져오기에 대한 액세스가 차단되었을 수 있습니다.\n 만약 당신이 서버 관리자라면 Ruffle 위키를 참조하여 도움을 받아볼 수 있습니다.\nerror-wasm-invalid =\n Ruffle이 초기화를 시도하는 동안 중대한 문제가 발생했습니다.\n 이 페이지에 Ruffle을 실행하기 위한 파일이 누락되었거나 잘못된 것 같습니다.\n 만약 당신이 서버 관리자라면 Ruffle 위키를 참조하여 도움을 받아볼 수 있습니다.\nerror-wasm-download =\n Ruffle이 초기화를 시도하는 동안 중대한 문제가 발생했습니다.\n 이 문제는 때때로 바로 해결될 수 있으므로 페이지를 새로고침하여 다시 시도해보세요.\n 그래도 문제가 지속된다면, 웹사이트 관리자에게 문의해주세요.\nerror-wasm-disabled-on-edge =\n Ruffle이 ".wasm" 필수 파일 구성요소를 로드하지 못했습니다.\n 이를 해결하려면 브라우저 설정에서 "개인 정보, 검색 및 서비스"를 클릭한 후, 하단으로 스크롤하여 "웹에서 보안 강화" 기능을 꺼야 합니다.\n 이는 필요한 ".wasm" 파일을 브라우저에서 로드할 수 있도록 허용합니다.\n 이 문제가 지속될 경우 다른 브라우저를 사용해야 할 수 있습니다.\nerror-javascript-conflict =\n Ruffle이 초기화를 시도하는 동안 중대한 문제가 발생했습니다.\n 이 페이지에서 사용되는 자바스크립트 코드가 Ruffle과 충돌하는 것으로 보입니다.\n 만약 당신이 서버 관리자라면 빈 페이지에서 파일을 로드해보세요.\nerror-javascript-conflict-outdated = 또한 Ruffle의 최신 버전을 업로드하는 것을 시도하여 문제를 우회해볼 수 있습니다. (현재 빌드가 오래되었습니다: { $buildDate }).\nerror-csp-conflict =\n Ruffle이 초기화를 시도하는 동안 중대한 문제가 발생했습니다.\n 이 웹 서버의 CSP(Content Security Policy) 정책이 ".wasm" 필수 구성요소를 실행하는 것을 허용하지 않습니다.\n 만약 당신이 서버 관리자라면 Ruffle 위키를 참조하여 도움을 받아볼 수 있습니다.\nerror-unknown =\n Ruffle이 플래시 콘텐츠를 표시하려고 시도하는 동안 중대한 문제가 발생했습니다.\n { $outdated ->\n [true] 만약 당신이 서버 관리자라면, Ruffle의 최신 버전을 업로드하여 다시 시도해보세요. (현재 빌드가 오래되었습니다: { $buildDate }).\n *[false] 이런 현상이 발생해서는 안되므로, 버그를 제보해주신다면 감사하겠습니다!\n }\n',"save-manager.ftl":"save-delete-prompt = 정말로 이 세이브 파일을 삭제하시겠습니까?\nsave-reload-prompt =\n \b이 파일을 잠재적인 충돌 없이 { $action ->\n [delete] 삭제\n *[replace] 교체\n }하려면 콘텐츠를 다시 로드해야 합니다. 그래도 계속하시겠습니까?\nsave-download = 다운로드\nsave-replace = 교체\nsave-delete = 삭제\nsave-backup-all = 모든 저장 데이터 백업 (모든 sol 다운로드)\n"},"nl-NL":{"context_menu.ftl":"","messages.ftl":"","save-manager.ftl":""},"pt-PT":{"context_menu.ftl":"","messages.ftl":"","save-manager.ftl":""},"ro-RO":{"context_menu.ftl":"context-menu-download-swf = Descarcă .swf\ncontext-menu-copy-debug-info = Copiați informațiile de depanare\ncontext-menu-open-save-manager = Deschide manager de salvări\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] Despre extensia Ruffle ({ $version })\n *[other] Despre Ruffle ({ $version })\n }\ncontext-menu-hide = Ascunde acest meniu\ncontext-menu-exit-fullscreen = Ieșiți din ecranul complet\ncontext-menu-enter-fullscreen = Intră în ecran complet\n","messages.ftl":'message-unsupported-avm2 =\n Emulatorul Ruffle poate să nu accepte încă pe deplin tot ActionScript 3 folosit de acest conţinut.\n Este posibil ca unele părți ale conținutului să nu funcționeze conform așteptărilor.\nmessage-cant-embed =\n Ruffle nu a putut rula Flash încorporat în această pagină.\n Puteți încerca să deschideți fișierul într-o filă separată, pentru a evita această problemă.\npanic-title = Ceva a mers prost :(\nmore-info = Mai multe informatii\nrun-anyway = Rulează oricum\ncontinue = Continuare\nreport-bug = Raportează o eroare\nupdate-ruffle = Actualizează\nruffle-demo = Demo Web\nruffle-desktop = Aplicație desktop\nruffle-wiki = Vezi Ruffle Wiki\nview-error-details = Vezi detaliile de eroare\nopen-in-new-tab = Deschidere in filă nouă\nclick-to-unmute = Înlătură amuțirea\nerror-file-protocol =\n Se pare că rulați Ruffle pe protocolul "fișier:".\n Aceasta nu funcționează ca browsere blochează multe caracteristici din motive de securitate.\n În schimb, vă invităm să configurați un server local sau să folosiți aplicația web demo sau desktop.\nerror-javascript-config =\n Ruffle a întâmpinat o problemă majoră din cauza unei configurări incorecte a JavaScript.\n Dacă sunteți administratorul serverului, vă invităm să verificați detaliile de eroare pentru a afla care parametru este defect.\n Puteți consulta și Ruffle wiki pentru ajutor.\nerror-wasm-not-found =\n Ruffle a eșuat la încărcarea componentei de fișier ".wasm".\n Dacă sunteți administratorul serverului, vă rugăm să vă asigurați că fișierul a fost încărcat corect.\n Dacă problema persistă, poate fi necesar să utilizaţi setarea "publicPath": vă rugăm să consultaţi Ruffle wiki pentru ajutor.\nerror-wasm-mime-type =\n Ruffle a întâmpinat o problemă majoră în timp ce se încerca inițializarea.\n Acest server web nu servește ". asm" fișiere cu tipul corect MIME.\n Dacă sunteți administrator de server, vă rugăm să consultați Ruffle wiki pentru ajutor.\nerror-swf-fetch =\n Ruffle a eșuat la încărcarea fișierului Flash SWF.\n Motivul cel mai probabil este că fişierul nu mai există, deci nu există nimic pentru Ruffle să se încarce.\n Încercați să contactați administratorul site-ului web pentru ajutor.\nerror-swf-cors =\n Ruffle a eșuat la încărcarea fișierului Flash SWF.\n Accesul la preluare a fost probabil blocat de politica CORS.\n Dacă sunteţi administratorul serverului, vă rugăm să consultaţi Ruffle wiki pentru ajutor.\nerror-wasm-cors =\n Ruffle a eșuat în încărcarea componentei de fișier ".wasm".\n Accesul la preluare a fost probabil blocat de politica CORS.\n Dacă sunteţi administratorul serverului, vă rugăm să consultaţi Ruffle wiki pentru ajutor.\nerror-wasm-invalid =\n Ruffle a întâmpinat o problemă majoră în timp ce se încearcă inițializarea.\n Se pare că această pagină are fișiere lipsă sau invalide pentru rularea Ruffle.\n Dacă sunteţi administratorul serverului, vă rugăm să consultaţi Ruffle wiki pentru ajutor.\nerror-wasm-download =\n Ruffle a întâmpinat o problemă majoră în timp ce încerca să inițializeze.\n Acest lucru se poate rezolva adesea, astfel încât puteţi încerca să reîncărcaţi pagina.\n Altfel, vă rugăm să contactaţi administratorul site-ului.\nerror-wasm-disabled-on-edge =\n Ruffle nu a putut încărca componenta de fișier ".wasm".\n Pentru a remedia acest lucru, încercați să deschideți setările browser-ului dvs., apăsând pe "Confidențialitate, căutare și servicii", derulând în jos și închizând "Îmbunătățește-ți securitatea pe web".\n Acest lucru va permite browser-ului să încarce fișierele ".wasm" necesare.\n Dacă problema persistă, ar putea fi necesar să folosiți un browser diferit.\nerror-javascript-conflict =\n Ruffle a întâmpinat o problemă majoră în timp ce încerca să inițializeze.\n Se pare că această pagină folosește codul JavaScript care intră în conflict cu Ruffle.\n Dacă sunteţi administratorul serverului, vă invităm să încărcaţi fişierul pe o pagină goală.\nerror-javascript-conflict-outdated = De asemenea, poți încerca să încarci o versiune mai recentă de Ruffle care poate ocoli problema (versiunea curentă este expirată: { $buildDate }).\nerror-csp-conflict =\n Ruffle a întâmpinat o problemă majoră în timp ce se încerca inițializarea.\n Politica de securitate a conținutului acestui server web nu permite serviciul necesar". asm" componentă pentru a rula.\n Dacă sunteți administratorul de server, consultați Ruffle wiki pentru ajutor.\nerror-unknown =\n Ruffle a întâmpinat o problemă majoră în timp ce se încerca afișarea conținutului Flash.\n { $outdated ->\n [true] Dacă sunteți administratorul de server, vă rugăm să încercaţi să încărcaţi o versiune mai recentă de Ruffle (versiunea curentă este depăşită: { $buildDate }).\n *[false] Acest lucru nu ar trebui să se întâmple, așa că am aprecia foarte mult dacă ai putea trimite un bug!\n }\n',"save-manager.ftl":"save-delete-prompt = Sunteţi sigur că doriţi să ştergeţi acest fişier salvat?\nsave-reload-prompt =\n Singura cale de a { $action ->\n [delete] șterge\n *[replace] înlocuiește\n } acest fișier de salvare fără un conflict potențial este de a reîncărca acest conținut. Doriți să continuați oricum?\nsave-download = Descărcare\nsave-replace = Înlocuiește\nsave-delete = Ștergere\nsave-backup-all = Copie de rezervă toate salvările (descarcă toate sols?)\n"},"ru-RU":{"context_menu.ftl":"context-menu-download-swf = Скачать .swf\ncontext-menu-copy-debug-info = Копировать отладочную информацию\ncontext-menu-open-save-manager = Менеджер сохранений\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] О расширении Ruffle ({ $version })\n *[other] О Ruffle ({ $version })\n }\ncontext-menu-hide = Скрыть это меню\ncontext-menu-exit-fullscreen = Оконный режим\ncontext-menu-enter-fullscreen = Полноэкранный режим\n","messages.ftl":'message-unsupported-avm2 =\n Эмулятор Ruffle ещё не полностью поддерживает ActionScript 3, используемый в этом файле.\n Некоторое содержимое может отображаться некорректно или работать с ошибками.\nmessage-cant-embed =\n Ruffle не смог запустить Flash, используемый на этой странице.\n Чтобы обойти эту проблему, вы можете попробовать открыть файл в отдельной вкладке.\npanic-title = Что-то пошло не так :(\nmore-info = Подробнее\nrun-anyway = Всё равно запустить\ncontinue = Продолжить\nreport-bug = Сообщить об ошибке\nupdate-ruffle = Обновить Ruffle\nruffle-demo = Веб-демо\nruffle-desktop = Настольное приложение\nruffle-wiki = Открыть вики Ruffle\nview-error-details = Сведения об ошибке\nopen-in-new-tab = Открыть в новой вкладке\nclick-to-unmute = Включить звук\nerror-file-protocol =\n Похоже, что вы запускаете Ruffle по протоколу "file:".\n Это не работает, поскольку браузеры блокируют работу многих функций по соображениям безопасности.\n Вместо этого мы предлагаем вам использовать настольное приложение, веб-демо или настроить локальный сервер.\nerror-javascript-config =\n Возникла серьёзная ошибка из-за неправильной конфигурации JavaScript.\n Если вы являетесь администратором сервера, мы предлагаем вам проверить детали ошибки, чтобы выяснить, какой параметр дал сбой.\n Вы также можете обратиться за помощью к вики Ruffle.\nerror-wasm-not-found =\n Ruffle не удалось запустить необходимый компонент файла ".wasm".\n Если вы администратор сервера, пожалуйста, убедитесь, что файл был загружен правильно.\n Если проблема не устраняется, вам может потребоваться использовать настройку "publicPath": обратитесь к вики Ruffle.\nerror-wasm-mime-type =\n Ruffle столкнулся с серьёзной проблемой во время инициализации.\n Этот веб-сервер не предоставляет файлы ".wasm" с правильным типом MIME.\n Если вы администратор сервера, обратитесь за помощью к вики Ruffle.\nerror-swf-fetch =\n Ruffle не удалось запустить SWF-файл Flash.\n Вероятнее всего, файл больше не существует, поэтому Ruffle нечего загружать.\n Попробуйте связаться с администратором сайта для получения помощи.\nerror-swf-cors =\n Ruffle не удалось запустить SWF-файл Flash.\n Скорее всего, доступ к файлу был заблокирован политикой CORS.\n Если вы администратор сервера, обратитесь за помощью к вики Ruffle.\nerror-wasm-cors =\n Ruffle не удалось загрузить необходимый компонент файла ".wasm".\n Скорее всего, доступ к файлу был заблокирован политикой CORS.\n Если вы администратор сервера, обратитесь за помощью к вики Ruffle.\nerror-wasm-invalid =\n Ruffle столкнулся с серьёзной проблемой во время инициализации.\n Похоже, что на этой странице отсутствуют файлы для запуска Ruffle или они недействительны.\n Если вы администратор сервера, обратитесь за помощью к вики Ruffle.\nerror-wasm-download =\n Ruffle столкнулся с серьёзной проблемой во время инициализации.\n Чаще всего эта проблема устраняется сама собою, поэтому вы можете просто перезагрузить страницу.\n Если ошибка продолжает появляться, свяжитесь с администратором сайта.\nerror-wasm-disabled-on-edge =\n Ruffle не удалось загрузить необходимый компонент файла ".wasm".\n Чтобы исправить эту ошибку, попробуйте отключить в настройках браузера дополнительную конфиденциальность. Это позволит браузеру загрузить необходимые WASM-файлы.\n Если проблема осталась, вам может потребоваться другой браузер.\nerror-javascript-conflict =\n Ruffle столкнулся с серьёзной проблемой во время инициализации.\n Похоже, что эта страница использует конфликтующий с Ruffle код JavaScript.\n Если вы являетесь администратором сервера, мы предлагаем вам попробовать запустить файл на пустой странице.\nerror-javascript-conflict-outdated = Вы также можете попробовать загрузить последнюю версию Ruffle, которая может обойти проблему (текущая версия устарела: { $buildDate }).\nerror-csp-conflict =\n Ruffle столкнулся с серьёзной проблемой во время инициализации.\n Политика безопасности содержимого этого веб-сервера не позволяет использовать требуемые компоненты для запуска ".wasm".\n Если вы являетесь администратором сервера, обратитесь за помощью к вики Ruffle.\nerror-unknown =\n Ruffle столкнулся с серьёзной проблемой при попытке отобразить этот Flash-контент.\n { $outdated ->\n [true] Если вы администратор сервера, попробуйте загрузить более новую версию Ruffle (текущая версия устарела: { $buildDate }).\n *[false] Этого не должно происходить, поэтому мы будем очень признательны, если вы сообщите нам об ошибке!\n }\n',"save-manager.ftl":"save-delete-prompt = Удалить этот файл сохранения?\nsave-reload-prompt =\n Единственный способ { $action ->\n [delete] удалить\n *[replace] заменить\n } этот файл сохранения без потенциального конфликта – перезапустить запущенный контент. Всё равно продолжить?\nsave-download = Скачать\nsave-replace = Заменить\nsave-delete = Удалить\nsave-backup-all = Скачать все сохранения\n"},"sv-SE":{"context_menu.ftl":"","messages.ftl":"","save-manager.ftl":""},"tr-TR":{"context_menu.ftl":"","messages.ftl":"","save-manager.ftl":""},"zh-CN":{"context_menu.ftl":"","messages.ftl":"","save-manager.ftl":""},"zh-TW":{"context_menu.ftl":"context-menu-download-swf = 下載SWF檔案\ncontext-menu-copy-debug-info = 複製除錯資訊\ncontext-menu-open-save-manager = 打開存檔管理器\ncontext-menu-about-ruffle =\n { $flavor ->\n [extension] 關於Ruffle擴充功能 ({ $version })\n *[other] 關於Ruffle ({ $version })\n }\ncontext-menu-hide = 隱藏菜單\ncontext-menu-exit-fullscreen = 退出全螢幕\ncontext-menu-enter-fullscreen = 進入全螢幕\n","messages.ftl":'message-unsupported-avm2 =\n 目前Ruffle還沒辦法完整模擬所有的ActionScript 3內容。\n 有些地方還沒辦法正常顯示。\nmessage-cant-embed =\n 目前Ruffle沒辦法執行嵌入式Flash。\n 你可以在新分頁中開啟來解決這個問題。\npanic-title = 完蛋,出問題了 :(\nmore-info = 更多資訊\nrun-anyway = 直接執行\ncontinue = 繼續\nreport-bug = 回報BUG\nupdate-ruffle = 更新Ruffle\nruffle-demo = 網頁展示\nruffle-desktop = 桌面應用程式\nruffle-wiki = 查看Ruffle Wiki\nview-error-details = 檢視錯誤詳細資料\nopen-in-new-tab = 開啟新增分頁\nclick-to-unmute = 點擊以取消靜音\nerror-file-protocol =\n 看起來你想要用Ruffle來執行"file:"的協議。\n 因為瀏覽器禁了很多功能以資安的理由來講。\n 我們建議你建立本地伺服器或著直接使用網頁展示或桌面應用程式。\nerror-javascript-config =\n 目前Ruffle遇到不正確的JavaScript配置。\n 如果你是伺服器管理員,我們建議你檢查哪個環節出錯。\n 你可以查詢Ruffle wiki得到需求幫助。\nerror-wasm-not-found =\n 目前Ruffle找不到".wasm"檔案。\n 如果你是伺服器管理員,確保檔案是否放對位置。\n 如果還是有問題的話,你要用"publicPath"來設定: 請查詢Ruffle wiki得到需求幫助。\n',"save-manager.ftl":""}},Se={};for(const e in Re){const t=new V(e),n=Re[e];if(n)for(const r in n){const i=n[r];if(i)for(const n in t.addResource(new ve(i)))console.error(`Error in text for ${e} ${r}: ${n}`)}Se[e]=t}function Ee(e,t,n){const r=Se[e];if(void 0!==r){const e=r.getMessage(t);if(void 0!==e&&e.value)return r.formatPattern(e.value,n)}return null}function Ce(e,t){const n=function(e,t,{strategy:n="filtering",defaultLocale:r}={}){const i=function(e,t,n){const r=new Set,i=new Map;for(let e of t)new ye(e).isWellFormed&&i.set(e,new ye(e));e:for(const t of e){const e=t.toLowerCase(),a=new ye(e);if(void 0!==a.language){for(const t of i.keys())if(e===t.toLowerCase()){if(r.add(t),i.delete(t),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}for(const[e,t]of i.entries())if(t.matches(a,!0,!1)){if(r.add(e),i.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}if(a.addLikelySubtags())for(const[e,t]of i.entries())if(t.matches(a,!0,!1)){if(r.add(e),i.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}a.clearVariants();for(const[e,t]of i.entries())if(t.matches(a,!0,!0)){if(r.add(e),i.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}if(a.clearRegion(),a.addLikelySubtags())for(const[e,t]of i.entries())if(t.matches(a,!0,!1)){if(r.add(e),i.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}a.clearRegion();for(const[e,t]of i.entries())if(t.matches(a,!0,!0)){if(r.add(e),i.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}}}return Array.from(r)}(Array.from(null!=e?e:[]).map(String),Array.from(null!=t?t:[]).map(String),n);if("lookup"===n){if(void 0===r)throw new Error("defaultLocale cannot be undefined for strategy `lookup`");0===i.length&&i.push(r)}else r&&!i.includes(r)&&i.push(r);return i}(navigator.languages,Object.keys(Se),{defaultLocale:"en-US"});for(const r in n){const i=Ee(n[r],e,t);if(i)return i}return console.error(`Unknown text key '${e}'`),e}function Ie(e,t){const n=document.createElement("div");return Ce(e,t).split("\n").forEach((e=>{const t=document.createElement("p");t.innerText=e,n.appendChild(t)})),n.innerHTML}const Ae="https://ruffle.rs",_e=/^\s*(\d+(\.\d+)?(%)?)/;let $e=!1;function je(e){if(null==e)return{};e instanceof URLSearchParams||(e=new URLSearchParams(e));const t={};for(const[n,r]of e)t[n]=r.toString();return t}class Pe{constructor(e,t){this.x=e,this.y=t}distanceTo(e){const t=e.x-this.x,n=e.y-this.y;return Math.sqrt(t*t+n*n)}}class Oe extends HTMLElement{get readyState(){return this._readyState}get metadata(){return this._metadata}constructor(){super(),this.contextMenuForceDisabled=!1,this.contextMenuSupported=!1,this.panicked=!1,this.rendererDebugInfo="",this.isExtension=!1,this.longPressTimer=null,this.pointerDownPosition=null,this.pointerMoveMaxDistance=0,this.config={},this.shadow=this.attachShadow({mode:"open"}),this.shadow.appendChild(h.content.cloneNode(!0)),this.dynamicStyles=this.shadow.getElementById("dynamic_styles"),this.container=this.shadow.getElementById("container"),this.playButton=this.shadow.getElementById("play_button"),this.playButton.addEventListener("click",(()=>this.play())),this.unmuteOverlay=this.shadow.getElementById("unmute_overlay"),this.splashScreen=this.shadow.getElementById("splash-screen"),this.virtualKeyboard=this.shadow.getElementById("virtual-keyboard"),this.virtualKeyboard.addEventListener("input",this.virtualKeyboardInput.bind(this)),this.saveManager=this.shadow.getElementById("save-manager"),this.saveManager.addEventListener("click",(()=>this.saveManager.classList.add("hidden")));const e=this.saveManager.querySelector("#modal-area");e&&e.addEventListener("click",(e=>e.stopPropagation()));const t=this.saveManager.querySelector("#close-modal");t&&t.addEventListener("click",(()=>this.saveManager.classList.add("hidden")));const n=this.saveManager.querySelector("#backup-saves");n&&(n.addEventListener("click",this.backupSaves.bind(this)),n.innerText=Ce("save-backup-all"));const r=this.unmuteOverlay.querySelector("#unmute_overlay_svg");r&&(r.querySelector("#unmute_text").textContent=Ce("click-to-unmute")),this.contextMenuElement=this.shadow.getElementById("context-menu"),this.addEventListener("contextmenu",this.showContextMenu.bind(this)),this.container.addEventListener("pointerdown",this.pointerDown.bind(this)),this.container.addEventListener("pointermove",this.checkLongPressMovement.bind(this)),this.container.addEventListener("pointerup",this.checkLongPress.bind(this)),this.container.addEventListener("pointercancel",this.clearLongPressTimer.bind(this)),this.addEventListener("fullscreenchange",this.fullScreenChange.bind(this)),this.addEventListener("webkitfullscreenchange",this.fullScreenChange.bind(this)),this.instance=null,this.onFSCommand=null,this._readyState=0,this._metadata=null,this.lastActivePlayingState=!1,this.setupPauseOnTabHidden()}setupPauseOnTabHidden(){document.addEventListener("visibilitychange",(()=>{this.instance&&(document.hidden&&(this.lastActivePlayingState=this.instance.is_playing(),this.instance.pause()),document.hidden||!0!==this.lastActivePlayingState||this.instance.play())}),!1)}connectedCallback(){this.updateStyles()}static get observedAttributes(){return["width","height"]}attributeChangedCallback(e,t,n){"width"!==e&&"height"!==e||this.updateStyles()}disconnectedCallback(){this.destroy()}updateStyles(){if(this.dynamicStyles.sheet){if(this.dynamicStyles.sheet.rules)for(let e=0;e{if(console.error(`Serious error loading Ruffle: ${e}`),"file:"===window.location.protocol)e.ruffleIndexError=2;else{e.ruffleIndexError=9;const t=String(e.message).toLowerCase();t.includes("mime")?e.ruffleIndexError=8:t.includes("networkerror")||t.includes("failed to fetch")?e.ruffleIndexError=6:t.includes("disallowed by embedder")?e.ruffleIndexError=1:"CompileError"===e.name?e.ruffleIndexError=3:t.includes("could not download wasm module")&&"TypeError"===e.name?e.ruffleIndexError=7:"TypeError"===e.name?e.ruffleIndexError=5:navigator.userAgent.includes("Edg")&&t.includes("webassembly is not defined")&&(e.ruffleIndexError=10)}throw this.panic(e),e}));this.instance=await new t(this.container,this,this.loadedConfig),this.rendererDebugInfo=this.instance.renderer_debug_info();const n=this.instance.renderer_name();if(console.log("%cNew Ruffle instance created (WebAssembly extensions: "+(t.is_wasm_simd_used()?"ON":"OFF")+" | Used renderer: "+(null!=n?n:"")+")","background: #37528C; color: #FFAD33"),"running"!==this.audioState()&&(this.container.style.visibility="hidden",await new Promise((e=>{window.setTimeout((()=>{e()}),200)})),this.container.style.visibility=""),this.unmuteAudioContext(),navigator.userAgent.toLowerCase().includes("android")&&this.container.addEventListener("click",(()=>this.virtualKeyboard.blur())),!this.loadedConfig||"on"===this.loadedConfig.autoplay||"off"!==this.loadedConfig.autoplay&&"running"===this.audioState()){if(this.play(),"running"!==this.audioState()){this.loadedConfig&&"hidden"===this.loadedConfig.unmuteOverlay||(this.unmuteOverlay.style.display="block"),this.container.addEventListener("click",this.unmuteOverlayClicked.bind(this),{once:!0});const t=null===(e=this.instance)||void 0===e?void 0:e.audio_context();t&&(t.onstatechange=()=>{"running"===t.state&&this.unmuteOverlayClicked(),t.onstatechange=null})}}else this.playButton.style.display="block"}onRuffleDownloadProgress(e,t){const n=this.splashScreen.querySelector(".loadbar-inner"),r=this.splashScreen.querySelector(".loadbar");Number.isNaN(t)?r&&(r.style.display="none"):n.style.width=e/t*100+"%"}destroy(){this.instance&&(this.instance.destroy(),this.instance=null,this._metadata=null,this._readyState=0,console.log("Ruffle instance destroyed."))}checkOptions(e){if("string"==typeof e)return{url:e};const t=(e,t)=>{if(!e){const e=new TypeError(t);throw e.ruffleIndexError=4,this.panic(e),e}};return t(null!==e&&"object"==typeof e,"Argument 0 must be a string or object"),t("url"in e||"data"in e,"Argument 0 must contain a `url` or `data` key"),t(!("url"in e)||"string"==typeof e.url,"`url` must be a string"),e}getExtensionConfig(){var e;return window.RufflePlayer&&window.RufflePlayer.conflict&&("extension"===window.RufflePlayer.conflict.newestName||"extension"===window.RufflePlayer.newestName)?null===(e=window.RufflePlayer)||void 0===e?void 0:e.conflict.config:{}}async load(e){var t,n;if(e=this.checkOptions(e),this.isConnected&&!this.isUnusedFallbackObject()){if(!De(this))try{const r=this.getExtensionConfig();if(this.loadedConfig=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},g),r),null!==(n=null===(t=window.RufflePlayer)||void 0===t?void 0:t.config)&&void 0!==n?n:{}),this.config),e),this.loadedConfig.allowScriptAccess=!0===e.allowScriptAccess,this.loadedConfig.backgroundColor&&"transparent"!==this.loadedConfig.wmode&&(this.container.style.backgroundColor=this.loadedConfig.backgroundColor),await this.ensureFreshInstance(),"url"in e){console.log(`Loading SWF file ${e.url}`),this.swfUrl=new URL(e.url,document.baseURI);const t=Object.assign(Object.assign({},je(e.url.substring(e.url.indexOf("?")))),je(e.parameters));this.instance.stream_from(this.swfUrl.href,t)}else"data"in e&&(console.log("Loading SWF data"),this.instance.load_data(new Uint8Array(e.data),je(e.parameters),e.swfFileName||"movie.swf"))}catch(e){console.error(`Serious error occurred loading SWF file: ${e}`);const t=new Error(e);throw t.message.includes("Error parsing config")&&(t.ruffleIndexError=4),this.panic(t),t}}else console.warn("Ignoring attempt to play a disconnected or suspended Ruffle element")}play(){this.instance&&(this.instance.play(),this.playButton.style.display="none")}get isPlaying(){return!!this.instance&&this.instance.is_playing()}get volume(){return this.instance?this.instance.volume():1}set volume(e){this.instance&&this.instance.set_volume(e)}get fullscreenEnabled(){return!(!document.fullscreenEnabled&&!document.webkitFullscreenEnabled)}get isFullscreen(){return(document.fullscreenElement||document.webkitFullscreenElement)===this}setFullscreen(e){this.fullscreenEnabled&&(e?this.enterFullscreen():this.exitFullscreen())}enterFullscreen(){const e={navigationUI:"hide"};this.requestFullscreen?this.requestFullscreen(e):this.webkitRequestFullscreen?this.webkitRequestFullscreen(e):this.webkitRequestFullScreen&&this.webkitRequestFullScreen(e)}exitFullscreen(){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.webkitCancelFullScreen&&document.webkitCancelFullScreen()}fullScreenChange(){var e;null===(e=this.instance)||void 0===e||e.set_fullscreen(this.isFullscreen)}base64ToBlob(e,t){const n=atob(e),r=new ArrayBuffer(n.length),i=new Uint8Array(r);for(let e=0;e{if(r.result&&"string"==typeof r.result){const e=new RegExp("data:.*;base64,"),n=r.result.replace(e,"");this.confirmReloadSave(t,n,!0)}})),n&&n.files&&n.files.length>0&&n.files[0]&&r.readAsDataURL(n.files[0])}deleteSave(e){const t=localStorage.getItem(e);t&&this.confirmReloadSave(e,t,!1)}populateSaves(){const e=this.saveManager.querySelector("#local-saves");if(e){try{localStorage}catch(e){return}e.textContent="",Object.keys(localStorage).forEach((t=>{const n=t.split("/").pop(),r=localStorage.getItem(t);if(n&&r&&this.isB64SOL(r)){const i=document.createElement("TR"),a=document.createElement("TD");a.textContent=n,a.title=t;const o=document.createElement("TD"),s=document.createElement("SPAN");s.textContent=Ce("save-download"),s.className="save-option",s.addEventListener("click",(()=>this.saveFile(r,"application/octet-stream",n+".sol"))),o.appendChild(s);const l=document.createElement("TD"),c=document.createElement("INPUT");c.type="file",c.accept=".sol",c.className="replace-save",c.id="replace-save-"+t;const u=document.createElement("LABEL");u.htmlFor="replace-save-"+t,u.textContent=Ce("save-replace"),u.className="save-option",c.addEventListener("change",(e=>this.replaceSOL(e,t))),l.appendChild(c),l.appendChild(u);const d=document.createElement("TD"),f=document.createElement("SPAN");f.textContent=Ce("save-delete"),f.className="save-option",f.addEventListener("click",(()=>this.deleteSave(t))),d.appendChild(f),i.appendChild(a),i.appendChild(o),i.appendChild(l),i.appendChild(d),e.appendChild(i)}}))}}backupSaves(){Object.keys(localStorage).forEach((e=>{const t=e.split("/").pop(),n=localStorage.getItem(e);n&&this.isB64SOL(n)&&this.saveFile(n,"application/octet-stream",t+".sol")}))}openSaveManager(){this.saveManager.classList.remove("hidden")}async downloadSwf(){try{if(this.swfUrl){console.log("Downloading SWF: "+this.swfUrl);const e=await fetch(this.swfUrl.href);if(!e.ok)return void console.error("SWF download failed");const t=await e.blob(),n=URL.createObjectURL(t),r=document.createElement("a");r.style.display="none",r.href=n,r.download=function(e){const t=e.pathname;return t.substring(t.lastIndexOf("/")+1)}(this.swfUrl),document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}else console.error("SWF download failed")}catch(e){console.error("SWF download failed")}}virtualKeyboardInput(){const e=this.virtualKeyboard,t=e.value;for(const e of t)for(const t of["keydown","keyup"])this.dispatchEvent(new KeyboardEvent(t,{key:e,bubbles:!0}));e.value=""}openVirtualKeyboard(){navigator.userAgent.toLowerCase().includes("android")?setTimeout((()=>{this.virtualKeyboard.focus({preventScroll:!0})}),100):this.virtualKeyboard.focus({preventScroll:!0})}contextMenuItems(e){const t=String.fromCharCode(10003),n=[],r=()=>{n.length>0&&null!==n[n.length-1]&&n.push(null)};this.instance&&(this.instance.prepare_context_menu().forEach(((e,i)=>{e.separatorBefore&&r(),n.push({text:e.caption+(e.checked?` (${t})`:""),onClick:()=>{var e;return null===(e=this.instance)||void 0===e?void 0:e.run_context_menu_callback(i)},enabled:e.enabled})})),r()),this.fullscreenEnabled&&(this.isFullscreen?n.push({text:Ce("context-menu-exit-fullscreen"),onClick:()=>{var e;return null===(e=this.instance)||void 0===e?void 0:e.set_fullscreen(!1)}}):n.push({text:Ce("context-menu-enter-fullscreen"),onClick:()=>{var e;return null===(e=this.instance)||void 0===e?void 0:e.set_fullscreen(!0)}})),this.instance&&this.swfUrl&&this.loadedConfig&&!0===this.loadedConfig.showSwfDownload&&(r(),n.push({text:Ce("context-menu-download-swf"),onClick:this.downloadSwf.bind(this)})),window.isSecureContext&&n.push({text:Ce("context-menu-copy-debug-info"),onClick:()=>navigator.clipboard.writeText(this.getPanicData())}),this.populateSaves();const i=this.saveManager.querySelector("#local-saves");i&&""!==i.textContent&&n.push({text:Ce("context-menu-open-save-manager"),onClick:this.openSaveManager.bind(this)}),r();const a=this.isExtension?"extension":"";return n.push({text:Ce("context-menu-about-ruffle",{flavor:a,version:S}),onClick(){window.open(Ae,"_blank")}}),e&&(r(),n.push({text:Ce("context-menu-hide"),onClick:()=>this.contextMenuForceDisabled=!0})),n}pointerDown(e){this.pointerDownPosition=new Pe(e.pageX,e.pageY),this.pointerMoveMaxDistance=0,this.startLongPressTimer()}clearLongPressTimer(){this.longPressTimer&&(clearTimeout(this.longPressTimer),this.longPressTimer=null)}startLongPressTimer(){this.clearLongPressTimer(),this.longPressTimer=setTimeout((()=>this.clearLongPressTimer()),800)}checkLongPressMovement(e){if(null!==this.pointerDownPosition){const t=new Pe(e.pageX,e.pageY),n=this.pointerDownPosition.distanceTo(t);n>this.pointerMoveMaxDistance&&(this.pointerMoveMaxDistance=n)}}checkLongPress(e){this.longPressTimer?this.clearLongPressTimer():!this.contextMenuSupported&&"mouse"!==e.pointerType&&this.pointerMoveMaxDistance<15&&this.showContextMenu(e)}showContextMenu(e){var t,n,r;e.preventDefault(),"contextmenu"===e.type?(this.contextMenuSupported=!0,window.addEventListener("click",this.hideContextMenu.bind(this),{once:!0})):(window.addEventListener("pointerup",this.hideContextMenu.bind(this),{once:!0}),e.stopPropagation());const i=e instanceof PointerEvent&&("touch"===e.pointerType||"pen"===e.pointerType);if([!1,"off"].includes(null!==(n=null===(t=this.loadedConfig)||void 0===t?void 0:t.contextMenu)&&void 0!==n?n:"on")||i&&"rightClickOnly"===(null===(r=this.loadedConfig)||void 0===r?void 0:r.contextMenu)||this.contextMenuForceDisabled)return;for(;this.contextMenuElement.firstChild;)this.contextMenuElement.removeChild(this.contextMenuElement.firstChild);for(const e of this.contextMenuItems(i))if(null===e){const e=document.createElement("li");e.className="menu_separator";const t=document.createElement("hr");e.appendChild(t),this.contextMenuElement.appendChild(e)}else{const{text:t,onClick:n,enabled:r}=e,i=document.createElement("li");i.className="menu_item",i.textContent=t,this.contextMenuElement.appendChild(i),!1!==r?i.addEventListener(this.contextMenuSupported?"click":"pointerup",n):i.classList.add("disabled")}this.contextMenuElement.style.left="0",this.contextMenuElement.style.top="0",this.contextMenuElement.style.display="block";const a=this.getBoundingClientRect(),o=e.clientX-a.x,s=e.clientY-a.y,l=a.width-this.contextMenuElement.clientWidth-1,c=a.height-this.contextMenuElement.clientHeight-1;this.contextMenuElement.style.left=Math.floor(Math.min(o,l))+"px",this.contextMenuElement.style.top=Math.floor(Math.min(s,c))+"px"}hideContextMenu(){var e;null===(e=this.instance)||void 0===e||e.clear_custom_menu_items(),this.contextMenuElement.style.display="none"}pause(){this.instance&&(this.instance.pause(),this.playButton.style.display="block")}audioState(){if(this.instance){const e=this.instance.audio_context();return e&&e.state||"running"}return"suspended"}unmuteOverlayClicked(){if(this.instance){if("running"!==this.audioState()){const e=this.instance.audio_context();e&&e.resume()}this.unmuteOverlay.style.display="none"}}unmuteAudioContext(){$e||(navigator.maxTouchPoints<1?$e=!0:this.container.addEventListener("click",(()=>{var e;if($e)return;const t=null===(e=this.instance)||void 0===e?void 0:e.audio_context();if(!t)return;const n=new Audio;n.src=(()=>{const e=new ArrayBuffer(10),n=new DataView(e),r=t.sampleRate;return n.setUint32(0,r,!0),n.setUint32(4,r,!0),n.setUint16(8,1,!0),`data:audio/wav;base64,UklGRisAAABXQVZFZm10IBAAAAABAAEA${window.btoa(String.fromCharCode(...new Uint8Array(e))).slice(0,13)}AgAZGF0YQcAAACAgICAgICAAAA=`})(),n.load(),n.play().then((()=>{$e=!0})).catch((e=>{console.warn(`Failed to play dummy sound: ${e}`)}))}),{once:!0}))}copyElement(e){if(e){for(const t of e.attributes)if(t.specified){if("title"===t.name&&"Adobe Flash Player"===t.value)continue;try{this.setAttribute(t.name,t.value)}catch(e){console.warn(`Unable to set attribute ${t.name} on Ruffle instance`)}}for(const t of Array.from(e.children))this.appendChild(t)}}static htmlDimensionToCssDimension(e){if(e){const t=e.match(_e);if(t){let e=t[1];return t[3]||(e+="px"),e}}return null}onCallbackAvailable(e){const t=this.instance;this[e]=(...n)=>null==t?void 0:t.call_exposed_callback(e,n)}set traceObserver(e){var t;null===(t=this.instance)||void 0===t||t.set_trace_observer(e)}getPanicData(){let e="\n# Player Info\n";if(e+=`Allows script access: ${!!this.loadedConfig&&this.loadedConfig.allowScriptAccess}\n`,e+=`${this.rendererDebugInfo}\n`,e+=this.debugPlayerInfo(),e+="\n# Page Info\n",e+=`Page URL: ${document.location.href}\n`,this.swfUrl&&(e+=`SWF URL: ${this.swfUrl}\n`),e+="\n# Browser Info\n",e+=`User Agent: ${window.navigator.userAgent}\n`,e+=`Platform: ${window.navigator.platform}\n`,e+=`Has touch support: ${window.navigator.maxTouchPoints>0}\n`,e+="\n# Ruffle Info\n",e+=`Version: ${R}\n`,e+=`Name: ${S}\n`,e+="Channel: nightly\n",e+=`Built: ${E}\n`,e+="Commit: a023e11098d9f4dc1fe4a8c6768d7e3c47140dc8\n",e+=`Is extension: ${this.isExtension}\n`,e+="\n# Metadata\n",this.metadata)for(const[t,n]of Object.entries(this.metadata))e+=`${t}: ${n}\n`;return e}panic(e){var t;if(this.panicked)return;if(this.panicked=!0,this.hideSplashScreen(),e instanceof Error&&("AbortError"===e.name||e.message.includes("AbortError")))return;const n=null!==(t=null==e?void 0:e.ruffleIndexError)&&void 0!==t?t:0,r=Object.assign([],{stackIndex:-1,avmStackIndex:-1});if(r.push("# Error Info\n"),e instanceof Error){if(r.push(`Error name: ${e.name}\n`),r.push(`Error message: ${e.message}\n`),e.stack){const t=r.push(`Error stack:\n\`\`\`\n${e.stack}\n\`\`\`\n`)-1;if(e.avmStack){const t=r.push(`AVM2 stack:\n\`\`\`\n ${e.avmStack.trim().replace(/\t/g," ")}\n\`\`\`\n`)-1;r.avmStackIndex=t}r.stackIndex=t}}else r.push(`Error: ${e}\n`);r.push(this.getPanicData());const i=r.join(""),a=new Date(E),o=new Date;o.setMonth(o.getMonth()-6);const s=o>a;let l,c,u;if(s)l=`${Ce("update-ruffle")}`;else{const e=document.location.href.split(/[?#]/)[0];let t=`https://github.com/ruffle-rs/ruffle/issues/new?title=${encodeURIComponent(`Error on ${e}`)}&template=error_report.md&labels=error-report&body=`,n=encodeURIComponent(i);r.stackIndex>-1&&String(t+n).length>8195&&(r[r.stackIndex]=null,r.avmStackIndex>-1&&(r[r.avmStackIndex]=null),n=encodeURIComponent(r.join(""))),t+=n,l=`${Ce("report-bug")}`}switch(n){case 2:c=Ie("error-file-protocol"),u=`\n
    • ${Ce("ruffle-demo")}
    • \n
    • ${Ce("ruffle-desktop")}
    • \n `;break;case 4:c=Ie("error-javascript-config"),u=`\n
    • ${Ce("ruffle-wiki")}
    • \n
    • ${Ce("view-error-details")}
    • \n `;break;case 9:c=Ie("error-wasm-not-found"),u=`\n
    • ${Ce("ruffle-wiki")}
    • \n
    • ${Ce("view-error-details")}
    • \n `;break;case 8:c=Ie("error-wasm-mime-type"),u=`\n
    • ${Ce("ruffle-wiki")}
    • \n
    • ${Ce("view-error-details")}
    • \n `;break;case 11:c=Ie("error-swf-fetch"),u=`\n
    • ${Ce("view-error-details")}
    • \n `;break;case 12:c=Ie("error-swf-cors"),u=`\n
    • ${Ce("ruffle-wiki")}
    • \n
    • ${Ce("view-error-details")}
    • \n `;break;case 6:c=Ie("error-wasm-cors"),u=`\n
    • ${Ce("ruffle-wiki")}
    • \n
    • ${Ce("view-error-details")}
    • \n `;break;case 3:c=Ie("error-wasm-invalid"),u=`\n
    • ${Ce("ruffle-wiki")}
    • \n
    • ${Ce("view-error-details")}
    • \n `;break;case 7:c=Ie("error-wasm-download"),u=`\n
    • ${Ce("view-error-details")}
    • \n `;break;case 10:c=Ie("error-wasm-disabled-on-edge"),u=`\n
    • ${Ce("more-info")}
    • \n
    • ${Ce("view-error-details")}
    • \n `;break;case 5:c=Ie("error-javascript-conflict"),s&&(c+=Ie("error-javascript-conflict-outdated",{buildDate:E})),u=`\n
    • ${l}
    • \n
    • ${Ce("view-error-details")}
    • \n `;break;case 1:c=Ie("error-csp-conflict"),u=`\n
    • ${Ce("ruffle-wiki")}
    • \n
    • ${Ce("view-error-details")}
    • \n `;break;default:c=Ie("error-unknown",{buildDate:E,outdated:String(s)}),u=`\n
    • ${l}
    • \n
    • ${Ce("view-error-details")}
    • \n `}this.container.innerHTML=`\n
      \n
      ${Ce("panic-title")}
      \n
      ${c}
      \n \n
      \n `;const d=this.container.querySelector("#panic-view-details");d&&(d.onclick=()=>{const e=this.container.querySelector("#panic-body");e.classList.add("details");const t=document.createElement("textarea");return t.readOnly=!0,t.value=i,e.replaceChildren(t),!1}),this.destroy()}displayRootMovieDownloadFailedMessage(){if(this.isExtension&&window.location.origin!==this.swfUrl.origin){this.hideSplashScreen();const e=document.createElement("div");e.id="message_overlay",e.innerHTML=`
      \n ${Ie("message-cant-embed")}\n \n
      `,this.container.prepend(e)}else{const e=new Error("Failed to fetch: "+this.swfUrl);this.swfUrl.protocol.includes("http")?window.location.origin===this.swfUrl.origin?e.ruffleIndexError=11:e.ruffleIndexError=12:e.ruffleIndexError=2,this.panic(e)}}displayUnsupportedMessage(){const e=document.createElement("div");e.id="message_overlay",e.innerHTML=`
      \n ${Ie("message-unsupported-avm2")}\n
      \n ${Ce("more-info")}\n \n
      \n
      `,this.container.prepend(e),e.querySelector("#run-anyway-btn").onclick=()=>{e.parentNode.removeChild(e)}}displayMessage(e){const t=document.createElement("div");t.id="message_overlay",t.innerHTML=`
      \n

      ${e}

      \n
      \n \n
      \n
      `,this.container.prepend(t),this.container.querySelector("#continue-btn").onclick=()=>{t.parentNode.removeChild(t)}}debugPlayerInfo(){return""}hideSplashScreen(){this.splashScreen.classList.add("hidden"),this.container.classList.remove("hidden")}showSplashScreen(){this.splashScreen.classList.remove("hidden"),this.container.classList.add("hidden")}setMetadata(e){this._metadata=e,this._readyState=2,this.hideSplashScreen(),this.dispatchEvent(new Event(Oe.LOADED_METADATA)),this.dispatchEvent(new Event(Oe.LOADED_DATA))}setIsExtension(e){this.isExtension=e}}function Fe(e,t){switch(e||(e="sameDomain"),e.toLowerCase()){case"always":return!0;case"never":return!1;default:try{return new URL(window.location.href).origin===new URL(t,window.location.href).origin}catch(e){return!1}}}function Me(e){return null===e||"true"===e.toLowerCase()}function Le(e){if(e){let t="",n="";try{const r=new URL(e,Ae);t=r.pathname,n=r.hostname.replace("www.","")}catch(e){}if(t.startsWith("/v/")&&("youtube.com"===n||"youtube-nocookie.com"===n))return!0}return!1}function Te(e,t){var n,r;const i=e.getAttribute(t),a=null!==(r=null===(n=window.RufflePlayer)||void 0===n?void 0:n.config)&&void 0!==r?r:{};if(i)try{const n=new URL(i);"http:"!==n.protocol||"https:"!==window.location.protocol||"upgradeToHttps"in a&&!1===a.upgradeToHttps||(n.protocol="https:",e.setAttribute(t,n.toString()))}catch(e){}}function De(e){let t=e.parentElement;for(;null!==t;){switch(t.tagName){case"AUDIO":case"VIDEO":return!0}t=t.parentElement}return!1}Oe.LOADED_METADATA="loadedmetadata",Oe.LOADED_DATA="loadeddata";class Ue extends Oe{constructor(){super()}connectedCallback(){var e,t,n,r,i,a,o,s,l,c,u,d,f,h,p,m,g,v,w,b;super.connectedCallback();const y=this.attributes.getNamedItem("src");if(y){const x=null!==(t=null===(e=this.attributes.getNamedItem("allowScriptAccess"))||void 0===e?void 0:e.value)&&void 0!==t?t:null,k=null!==(r=null===(n=this.attributes.getNamedItem("menu"))||void 0===n?void 0:n.value)&&void 0!==r?r:null;this.load({url:y.value,allowScriptAccess:Fe(x,y.value),parameters:null!==(a=null===(i=this.attributes.getNamedItem("flashvars"))||void 0===i?void 0:i.value)&&void 0!==a?a:null,backgroundColor:null!==(s=null===(o=this.attributes.getNamedItem("bgcolor"))||void 0===o?void 0:o.value)&&void 0!==s?s:null,base:null!==(c=null===(l=this.attributes.getNamedItem("base"))||void 0===l?void 0:l.value)&&void 0!==c?c:null,menu:Me(k),salign:null!==(d=null===(u=this.attributes.getNamedItem("salign"))||void 0===u?void 0:u.value)&&void 0!==d?d:"",quality:null!==(h=null===(f=this.attributes.getNamedItem("quality"))||void 0===f?void 0:f.value)&&void 0!==h?h:"high",scale:null!==(m=null===(p=this.attributes.getNamedItem("scale"))||void 0===p?void 0:p.value)&&void 0!==m?m:"showAll",wmode:null!==(v=null===(g=this.attributes.getNamedItem("wmode"))||void 0===g?void 0:g.value)&&void 0!==v?v:"window",allowNetworking:null!==(b=null===(w=this.attributes.getNamedItem("allowNetworking"))||void 0===w?void 0:w.value)&&void 0!==b?b:"all"})}}get src(){var e;return null===(e=this.attributes.getNamedItem("src"))||void 0===e?void 0:e.value}set src(e){if(e){const t=document.createAttribute("src");t.value=e,this.attributes.setNamedItem(t)}else this.attributes.removeNamedItem("src")}static get observedAttributes(){return["src","width","height"]}attributeChangedCallback(e,t,n){var r,i,a,o;if(super.attributeChangedCallback(e,t,n),this.isConnected&&"src"===e){const e=this.attributes.getNamedItem("src");e&&this.load({url:e.value,parameters:null!==(i=null===(r=this.attributes.getNamedItem("flashvars"))||void 0===r?void 0:r.value)&&void 0!==i?i:null,base:null!==(o=null===(a=this.attributes.getNamedItem("base"))||void 0===a?void 0:a.value)&&void 0!==o?o:null})}}static isInterdictable(e){if(De(e))return!1;if(!e.getAttribute("src"))return!1;if(Le(e.getAttribute("src")))return Te(e,"src"),!1;const t=e.getAttribute("type");return t?k(t):x(e.getAttribute("src"))}static fromNativeEmbedElement(e){const t=m("ruffle-embed",Ue),n=document.createElement(t);return n.copyElement(e),n}}function qe(e,t,n){t=t.toLowerCase();for(const[n,r]of Object.entries(e))if(n.toLowerCase()===t)return r;return n}function Ne(e){var t,n;const r={};for(const i of e.children)if(i instanceof HTMLParamElement){const e=null===(t=i.attributes.getNamedItem("name"))||void 0===t?void 0:t.value,a=null===(n=i.attributes.getNamedItem("value"))||void 0===n?void 0:n.value;e&&a&&(r[e]=a)}return r}class ze extends Oe{constructor(){super(),this.params={}}connectedCallback(){var e;super.connectedCallback(),this.params=Ne(this);let t=null;this.attributes.getNamedItem("data")?t=null===(e=this.attributes.getNamedItem("data"))||void 0===e?void 0:e.value:this.params.movie&&(t=this.params.movie);const n=qe(this.params,"allowScriptAccess",null),r=qe(this.params,"flashvars",this.getAttribute("flashvars")),i=qe(this.params,"bgcolor",this.getAttribute("bgcolor")),a=qe(this.params,"allowNetworking",this.getAttribute("allowNetworking")),o=qe(this.params,"base",this.getAttribute("base")),s=qe(this.params,"menu",null),l=qe(this.params,"salign",""),c=qe(this.params,"quality","high"),u=qe(this.params,"scale","showAll"),d=qe(this.params,"wmode","window");if(t){const e={url:t};e.allowScriptAccess=Fe(n,t),r&&(e.parameters=r),i&&(e.backgroundColor=i),o&&(e.base=o),e.menu=Me(s),l&&(e.salign=l),c&&(e.quality=c),u&&(e.scale=u),d&&(e.wmode=d),a&&(e.allowNetworking=a),this.load(e)}}debugPlayerInfo(){var e;let t="Player type: Object\n",n=null;return this.attributes.getNamedItem("data")?n=null===(e=this.attributes.getNamedItem("data"))||void 0===e?void 0:e.value:this.params.movie&&(n=this.params.movie),t+=`SWF URL: ${n}\n`,Object.keys(this.params).forEach((e=>{t+=`Param ${e}: ${this.params[e]}\n`})),Object.keys(this.attributes).forEach((e=>{var n;t+=`Attribute ${e}: ${null===(n=this.attributes.getNamedItem(e))||void 0===n?void 0:n.value}\n`})),t}get data(){return this.getAttribute("data")}set data(e){if(e){const t=document.createAttribute("data");t.value=e,this.attributes.setNamedItem(t)}else this.attributes.removeNamedItem("data")}static isInterdictable(e){var t,n;if(De(e))return!1;if(e.getElementsByTagName("ruffle-object").length>0||e.getElementsByTagName("ruffle-embed").length>0)return!1;const r=null===(t=e.attributes.getNamedItem("data"))||void 0===t?void 0:t.value.toLowerCase(),i=Ne(e);let a;if(r){if(Le(r))return Te(e,"data"),!1;a=x(r)}else{if(!i||!i.movie)return!1;if(Le(i.movie)){const t=e.querySelector("param[name='movie']");if(t){Te(t,"value");const n=t.getAttribute("value");n&&e.setAttribute("data",n)}return!1}a=x(i.movie)}const o=null===(n=e.attributes.getNamedItem("classid"))||void 0===n?void 0:n.value.toLowerCase();if(o==="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000".toLowerCase())return!Array.from(e.getElementsByTagName("object")).some(ze.isInterdictable)&&!Array.from(e.getElementsByTagName("embed")).some(Ue.isInterdictable);if(o)return!1;const s=e.attributes.getNamedItem("type");return s?k(s.value):a}static fromNativeObjectElement(e){const t=m("ruffle-object",ze),n=document.createElement(t);for(const t of Array.from(e.getElementsByTagName("embed")))Ue.isInterdictable(t)&&t.remove();for(const t of Array.from(e.getElementsByTagName("object")))ze.isInterdictable(t)&&t.remove();return n.copyElement(e),n}}class Be{constructor(e){if(this.__mimeTypes=[],this.__namedMimeTypes={},e)for(let t=0;t>>0]}namedItem(e){return this.__namedMimeTypes[e]}get length(){return this.__mimeTypes.length}[Symbol.iterator](){return this.__mimeTypes[Symbol.iterator]()}}class We extends Be{constructor(e,t,n){super(),this.name=e,this.description=t,this.filename=n}}class He{constructor(e){this.__plugins=[],this.__namedPlugins={};for(let t=0;t>>0]}namedItem(e){return this.__namedPlugins[e]}refresh(){}[Symbol.iterator](){return this.__plugins[Symbol.iterator]()}get length(){return this.__plugins.length}}const Ve=new We("Shockwave Flash","Shockwave Flash 32.0 r0","ruffle.js"),Ze=new We("Ruffle Extension","Ruffle Extension","ruffle.js");var Ke,Je;let Ye;Ve.install({type:w,description:"Shockwave Flash",suffixes:"spl",enabledPlugin:Ve}),Ve.install({type:v,description:"Shockwave Flash",suffixes:"swf",enabledPlugin:Ve}),Ve.install({type:b,description:"Shockwave Flash",suffixes:"swf",enabledPlugin:Ve}),Ve.install({type:y,description:"Shockwave Flash",suffixes:"swf",enabledPlugin:Ve}),Ze.install({type:"",description:"Ruffle Detection",suffixes:"",enabledPlugin:Ze});const Ge=null!==(Je=null===(Ke=window.RufflePlayer)||void 0===Ke?void 0:Ke.config)&&void 0!==Je?Je:{},Qe=u(Ge)+"ruffle.js";let Xe,et,tt,nt;function rt(){try{Xe=null!=Xe?Xe:document.getElementsByTagName("object"),et=null!=et?et:document.getElementsByTagName("embed");for(const e of Array.from(Xe))if(ze.isInterdictable(e)){const t=ze.fromNativeObjectElement(e);t.setIsExtension(Ye),e.replaceWith(t)}for(const e of Array.from(et))if(Ue.isInterdictable(e)){const t=Ue.fromNativeEmbedElement(e);t.setIsExtension(Ye),e.replaceWith(t)}}catch(e){console.error(`Serious error encountered when polyfilling native Flash elements: ${e}`)}}function it(){tt=null!=tt?tt:document.getElementsByTagName("iframe"),nt=null!=nt?nt:document.getElementsByTagName("frame"),[tt,nt].forEach((e=>{for(const t of e){if(void 0!==t.dataset.rufflePolyfilled)continue;t.dataset.rufflePolyfilled="";const e=t.contentWindow,n=`Couldn't load Ruffle into ${t.tagName}[${t.src}]: `;try{"complete"===e.document.readyState&&at(e,n)}catch(e){Ye||console.warn(n+e)}t.addEventListener("load",(()=>{at(e,n)}),!1)}}))}async function at(e,t){var n;let r;await new Promise((e=>{window.setTimeout((()=>{e()}),100)}));try{if(r=e.document,!r)return}catch(e){return void(Ye||console.warn(t+e))}if(Ye||void 0===r.documentElement.dataset.ruffleOptout)if(Ye)e.RufflePlayer||(e.RufflePlayer={}),e.RufflePlayer.config=Object.assign(Object.assign({},Ge),null!==(n=e.RufflePlayer.config)&&void 0!==n?n:{});else if(!e.RufflePlayer){const t=r.createElement("script");t.setAttribute("src",Qe),t.onload=()=>{e.RufflePlayer={},e.RufflePlayer.config=Ge},r.head.appendChild(t)}}const ot={version:R,polyfill(e){!function(e){var t;Ye=e;const n="ruffle.js"===(null===(t=navigator.plugins.namedItem("Ruffle Extension"))||void 0===t?void 0:t.filename);!Ye&&n||(rt(),it(),new MutationObserver((function(e){e.some((e=>e.addedNodes.length>0))&&(rt(),it())})).observe(document,{childList:!0,subtree:!0}))}(e)},pluginPolyfill(){!function(e){"install"in navigator.plugins&&navigator.plugins.install||Object.defineProperty(navigator,"plugins",{value:new He(navigator.plugins),writable:!1}),navigator.plugins.install(e),!(e.length>0)||"install"in navigator.mimeTypes&&navigator.mimeTypes.install||Object.defineProperty(navigator,"mimeTypes",{value:new Be(navigator.mimeTypes),writable:!1});const t=navigator.mimeTypes;for(let n=0;n { @@ -88,6 +92,7 @@ class ReplayWebApp extends LitElement pageTitle: { type: String }, pageReplay: { type: Boolean }, source: { type: String }, + skipRuffle: { type: Boolean }, swErrorMsg: { type: Object }, }; @@ -323,7 +328,10 @@ class ReplayWebApp extends LitElement firstUpdated() { this.initRoute(); - this.swmanager = new SWManager({name: this.swName, appName: this.appName}); + // service worker name + const name = this.swName + (this.useRuffle ? "?ruffle=1" : ""); + + this.swmanager = new SWManager({name, appName: this.appName}); this.swmanager.register().catch(() => this.swErrorMsg = this.swmanager.renderErrorReport(this.mainLogo)); window.addEventListener("popstate", () => { @@ -414,6 +422,12 @@ class ReplayWebApp extends LitElement this.sourceUrl = this.pageParams.get("source") || ""; this.embed = this.pageParams.get("embed") || ""; + if (!this.embed) { + this.useRuffle = !this.skipRuffle; + } else { + this.useRuffle = this.pageParams.get("ruffle") === "1"; + } + if (this.pageParams.has("terms")) { this.showAbout = true; } diff --git a/src/embed.js b/src/embed.js index efbc5770..d2df6175 100644 --- a/src/embed.js +++ b/src/embed.js @@ -43,6 +43,7 @@ class Embed extends LitElement this.noSandbox = null; this.logo = rwpLogo; this.loading = ""; + this.useRuffle = false; } static setDefaultReplayFile(replayfile) { @@ -88,6 +89,8 @@ class Embed extends LitElement requireSubdomainIframe: {type: Boolean}, loading: { type: String }, + + useRuffle: { type: Boolean }, }; } @@ -252,6 +255,10 @@ class Embed extends LitElement params.swName = this.swName; } + if (this.useRuffle) { + params.ruffle = "1"; + } + this.paramString = new URLSearchParams(params).toString(); this.hashString = new URLSearchParams({ diff --git a/src/sw.js b/src/sw.js index f280c637..19af7a57 100644 --- a/src/sw.js +++ b/src/sw.js @@ -12,15 +12,15 @@ if (self.registration) { staticData.set(prefix, {type: "text/html", content: INDEX_HTML}); staticData.set(prefix + "index.html", {type: "text/html", content: INDEX_HTML}); - //staticData.set(prefix + "ui.js", {type: "application/javascript", content: UI_JS}); - //const { SWReplay } = require('@webrecorder/wabac/src/swmain'); + const sp = new URLSearchParams(self.location.search); - const defaultConfig = { - injectScripts: ["ruffle/ruffle.js"], - }; + const defaultConfig = {}; + + if (sp.get("ruffle") == "1") { + defaultConfig.injectScripts = ["ruffle/ruffle.js"]; + } - self.ipfsCustomPreload = true; self.sw = new SWReplay({staticData, defaultConfig}); } else { new WorkerLoader(self); diff --git a/sw.js b/sw.js index 492b125e..57dff811 100644 --- a/sw.js +++ b/sw.js @@ -118,4 +118,4 @@ var ff=function(t,e){return ff=Object.setPrototypeOf||{__proto__:[]}instanceof A * SOFTWARE. * */ -const Wg="crypto.algorithm";const jg="crypto.algorithmProvider";var zg;Uf.registerSingleton(jg,class{getAlgorithms(){return Uf.resolveAll(Wg)}toAsnAlgorithm(t){for(const e of this.getAlgorithms()){const r=e.toAsnAlgorithm(t);if(r)return r}if(/[0-9.]+/.test(t.name)){const e=new Oh({algorithm:t.name});if("parameters"in t){const r=t;e.parameters=r.parameters}return e}throw new Error("Cannot convert WebCrypto algorithm to ASN.1 algorithm")}toWebAlgorithm(t){for(const e of this.getAlgorithms()){const r=e.toWebAlgorithm(t);if(r)return r}return{name:t.algorithm,parameters:t.parameters}}});const Gg="1.3.36.3.3.2.8.1.1",qg=`${Gg}.1`,Qg=`${Gg}.2`,Vg=`${Gg}.3`,Kg=`${Gg}.4`,Yg=`${Gg}.5`,Jg=`${Gg}.6`,Xg=`${Gg}.7`,Zg=`${Gg}.8`,$g=`${Gg}.9`,tw=`${Gg}.10`,ew=`${Gg}.11`,rw=`${Gg}.12`,iw=`${Gg}.13`,nw=`${Gg}.14`,sw="brainpoolP160r1",ow="brainpoolP160t1",aw="brainpoolP192r1",cw="brainpoolP192t1",lw="brainpoolP224r1",uw="brainpoolP224t1",hw="brainpoolP256r1",pw="brainpoolP256t1",dw="brainpoolP320r1",fw="brainpoolP320t1",gw="brainpoolP384r1",ww="brainpoolP384t1",yw="brainpoolP512r1",mw="brainpoolP512t1",bw="ECDSA";let Aw=zg=class{toAsnAlgorithm(t){if(t.name.toLowerCase()===bw.toLowerCase())if("hash"in t){switch(("string"==typeof t.hash?t.hash:t.hash.name).toLowerCase()){case"sha-1":return Sd;case"sha-256":return Id;case"sha-384":return Cd;case"sha-512":return Rd}}else if("namedCurve"in t){let e="";switch(t.namedCurve){case"P-256":e=Ed;break;case"K-256":e=zg.SECP256K1;break;case"P-384":e=_d;break;case"P-521":e=vd;break;case sw:e=qg;break;case ow:e=Qg;break;case aw:e=Vg;break;case cw:e=Kg;break;case lw:e=Yg;break;case uw:e=Jg;break;case hw:e=Xg;break;case pw:e=Zg;break;case dw:e=$g;break;case fw:e=tw;break;case gw:e=ew;break;case ww:e=rw;break;case yw:e=iw;break;case mw:e=nw}if(e)return new Oh({algorithm:gd,parameters:Kl.serialize(new xd({namedCurve:e}))})}return null}toWebAlgorithm(t){switch(t.algorithm){case wd:return{name:bw,hash:{name:"SHA-1"}};case md:return{name:bw,hash:{name:"SHA-256"}};case bd:return{name:bw,hash:{name:"SHA-384"}};case Ad:return{name:bw,hash:{name:"SHA-512"}};case gd:if(!t.parameters)throw new TypeError("Cannot get required parameters from EC algorithm");switch(Kl.parse(t.parameters,xd).namedCurve){case Ed:return{name:bw,namedCurve:"P-256"};case zg.SECP256K1:return{name:bw,namedCurve:"K-256"};case _d:return{name:bw,namedCurve:"P-384"};case vd:return{name:bw,namedCurve:"P-521"};case qg:return{name:bw,namedCurve:sw};case Qg:return{name:bw,namedCurve:ow};case Vg:return{name:bw,namedCurve:aw};case Kg:return{name:bw,namedCurve:cw};case Yg:return{name:bw,namedCurve:lw};case Jg:return{name:bw,namedCurve:uw};case Xg:return{name:bw,namedCurve:hw};case Zg:return{name:bw,namedCurve:pw};case $g:return{name:bw,namedCurve:dw};case tw:return{name:bw,namedCurve:fw};case ew:return{name:bw,namedCurve:gw};case rw:return{name:bw,namedCurve:ww};case iw:return{name:bw,namedCurve:yw};case nw:return{name:bw,namedCurve:mw}}}return null}};Aw.SECP256K1="1.3.132.0.10",Aw=zg=hf([Ff()],Aw),Uf.registerSingleton(Wg,Aw);const Ew=Symbol("name"),_w=Symbol("value");class vw{constructor(t,e={},r=""){this[Ew]=t,this[_w]=r;for(const t in e)this[t]=e[t]}}vw.NAME=Ew,vw.VALUE=_w;class Tw{static toString(t){const e=this.items[t];return e||t}}Tw.items={[Qd]:"sha1",[Vd]:"sha224",[Kd]:"sha256",[Yd]:"sha384",[Jd]:"sha512",[Bd]:"rsaEncryption",[Fd]:"sha1WithRSAEncryption",[Hd]:"sha224WithRSAEncryption",[Wd]:"sha256WithRSAEncryption",[jd]:"sha384WithRSAEncryption",[zd]:"sha512WithRSAEncryption",[gd]:"ecPublicKey",[wd]:"ecdsaWithSHA1",[yd]:"ecdsaWithSHA224",[md]:"ecdsaWithSHA256",[bd]:"ecdsaWithSHA384",[Ad]:"ecdsaWithSHA512",[Ju]:"TLS WWW server authentication",[Xu]:"TLS WWW client authentication",[Zu]:"Code Signing",[$u]:"E-mail Protection",[th]:"Time Stamping",[eh]:"OCSP Signing","1.2.840.113549.1.7.2":"Signed Data"};class Sw{static serialize(t){return this.serializeObj(t).join("\n")}static pad(t=0){return"".padStart(2*t," ")}static serializeObj(t,e=0){const r=[];let i=this.pad(e++),n="";const s=t[vw.VALUE];s&&(n=` ${s}`),r.push(`${i}${t[vw.NAME]}:${n}`),i=this.pad(e);for(const n in t){if("symbol"==typeof n)continue;const s=t[n],o=n?`${n}: `:"";if("string"==typeof s||"number"==typeof s||"boolean"==typeof s)r.push(`${i}${o}${s}`);else if(s instanceof Date)r.push(`${i}${o}${s.toUTCString()}`);else if(Array.isArray(s))for(const t of s)t[vw.NAME]=n,r.push(...this.serializeObj(t,e));else if(s instanceof vw)s[vw.NAME]=n,r.push(...this.serializeObj(s,e));else if(Ko.vJ.isBufferSource(s))n?(r.push(`${i}${o}`),r.push(...this.serializeBufferSource(s,e+1))):r.push(...this.serializeBufferSource(s,e));else{if(!("toTextObject"in s))throw new TypeError("Cannot serialize data in text format. Unsupported type.");{const t=s.toTextObject();t[vw.NAME]=n,r.push(...this.serializeObj(t,e))}}}return r}static serializeBufferSource(t,e=0){const r=this.pad(e),i=Ko.vJ.toUint8Array(t),n=[];for(let t=0;t255)return!1}return!0}getField(t){const e=this.extraNames.findId(t)||Bw.findId(t),r=[];for(const t of this.asn)for(const i of t)i.type===e&&r.push(i.value.toString());return r}getName(t){return this.extraNames.get(t)||Bw.get(t)}toString(){return this.asn.map((t=>t.map((t=>{const e=this.getName(t.type)||t.type,r=t.value.anyValue?`#${Ko.ep.ToHex(t.value.anyValue)}`:function(t){return t.replace(/([,+"\\<>;])/g,"\\$1").replace(/^([ #])/,"\\$1").replace(/([ ]$)/,"\\$1").replace(/([\r\n\t])/,Dw)}(t.value.toString());return`${e}=${r}`})).join("+"))).join(", ")}toJSON(){var t;const e=[];for(const r of this.asn){const i={};for(const e of r){const r=this.getName(e.type)||e.type;null!==(t=i[r])&&void 0!==t||(i[r]=[]),i[r].push(e.value.anyValue?`#${Ko.ep.ToHex(e.value.anyValue)}`:e.value.toString())}e.push(i)}return e}fromString(t){const e=new ou,r=/(\d\.[\d.]*\d|[A-Za-z]+)=((?:"")|(?:".*?[^\\]")|(?:[^,+].*?(?:[^\\][,+]))|(?:))([,+])?/g;let i=null,n=",";for(;i=r.exec(`${t},`);){let[,t,r]=i;const s=r[r.length-1];","!==s&&"+"!==s||(r=r.slice(0,r.length-1),i[3]=s);const o=i[3];if(/[\d.]+/.test(t)||(t=this.getName(t)||""),!t)throw new Error(`Cannot get OID for name type '${t}'`);const a=new iu({type:t});if("#"===r.charAt(0))a.value.anyValue=Ko.ep.FromHex(r.slice(1));else{const e=/"(.*?[^\\])?"/.exec(r);e&&(r=e[1]),r=r.replace(/\\0a/gi,"\n").replace(/\\0d/gi,"\r").replace(/\\0g/gi,"\t").replace(/\\(.)/g,"$1"),t===this.getName("E")||t===this.getName("DC")?a.value.ia5String=r:Lw.isASCII(r)?a.value.printableString=r:a.value.utf8String=r}"+"===n?e[e.length-1].push(a):e.push(new nu([a])),n=o}return e}fromJSON(t){const e=new ou;for(const r of t){const t=new nu;for(const e in r){let i=e;if(/[\d.]+/.test(e)||(i=this.getName(e)||""),!i)throw new Error(`Cannot get OID for name type '${e}'`);const n=r[e];for(const e of n){const r=new iu({type:i});if("object"==typeof e)for(const t in e)switch(t){case"ia5String":r.value.ia5String=e[t];break;case"utf8String":r.value.utf8String=e[t];break;case"universalString":r.value.universalString=e[t];break;case"bmpString":r.value.bmpString=e[t];break;case"printableString":r.value.printableString=e[t]}else"#"===e[0]?r.value.anyValue=Ko.ep.FromHex(e.slice(1)):i===this.getName("E")||i===this.getName("DC")?r.value.ia5String=e:r.value.printableString=e;t.push(r)}}e.push(t)}return e}toArrayBuffer(){return Kl.serialize(this.asn)}async getThumbprint(...t){var e;let r,i="SHA-1";return t.length>=1&&!(null===(e=t[0])||void 0===e?void 0:e.subtle)?(i=t[0]||i,r=t[1]||Nw.get()):r=t[0]||Nw.get(),await r.subtle.digest(i,this.toArrayBuffer())}}const Pw="Cannot initialize GeneralName from ASN.1 data.",Uw=`${Pw} Unsupported string format in use.`,Mw=`${Pw} Value doesn't match to GUID regular expression.`,Fw=/^([0-9a-f]{8})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{12})$/i,Hw="1.3.6.1.4.1.311.25.1",Ww="1.3.6.1.4.1.311.20.2.3",jw="dns",zw="dn",Gw="email",qw="ip",Qw="url",Vw="guid",Kw="upn",Yw="id";class Jw extends Iw{constructor(...t){let e;if(2===t.length)switch(t[0]){case zw:{const r=new Lw(t[1]).toArrayBuffer(),i=Kl.parse(r,ou);e=new uu({directoryName:i});break}case jw:e=new uu({dNSName:t[1]});break;case Gw:e=new uu({rfc822Name:t[1]});break;case Vw:{const r=new RegExp(Fw,"i").exec(t[1]);if(!r)throw new Error("Cannot parse GUID value. Value doesn't match to regular expression");const i=r.slice(1).map(((t,e)=>e<3?Ko.ep.ToHex(new Uint8Array(Ko.ep.FromHex(t)).reverse()):t)).join("");e=new uu({otherName:new cu({typeId:Hw,value:Kl.serialize(new hl(Ko.ep.FromHex(i)))})});break}case qw:e=new uu({iPAddress:t[1]});break;case Yw:e=new uu({registeredID:t[1]});break;case Kw:e=new uu({otherName:new cu({typeId:Ww,value:Kl.serialize(_l.toASN(t[1]))})});break;case Qw:e=new uu({uniformResourceIdentifier:t[1]});break;default:throw new Error("Cannot create GeneralName. Unsupported type of the name")}else e=Ko.vJ.isBufferSource(t[0])?Kl.parse(t[0],uu):t[0];super(e)}onInit(t){if(null!=t.dNSName)this.type=jw,this.value=t.dNSName;else if(null!=t.rfc822Name)this.type=Gw,this.value=t.rfc822Name;else if(null!=t.iPAddress)this.type=qw,this.value=t.iPAddress;else if(null!=t.uniformResourceIdentifier)this.type=Qw,this.value=t.uniformResourceIdentifier;else if(null!=t.registeredID)this.type=Yw,this.value=t.registeredID;else if(null!=t.directoryName)this.type=zw,this.value=new Lw(t.directoryName).toString();else{if(null==t.otherName)throw new Error(Uw);if(t.otherName.typeId===Hw){this.type=Vw;const e=Kl.parse(t.otherName.value,hl),r=new RegExp(Fw,"i").exec(Ko.ep.ToHex(e));if(!r)throw new Error(Mw);this.value=r.slice(1).map(((t,e)=>e<3?Ko.ep.ToHex(new Uint8Array(Ko.ep.FromHex(t)).reverse()):t)).join("-")}else{if(t.otherName.typeId!==Ww)throw new Error(Uw);this.type=Kw,this.value=Kl.parse(t.otherName.value,eu).toString()}}}toJSON(){return{type:this.type,value:this.value}}toTextObject(){let t;switch(this.type){case zw:case jw:case Vw:case qw:case Yw:case Kw:case Qw:t=this.type.toUpperCase();break;case Gw:t="Email";break;default:throw new Error("Unsupported GeneralName type")}let e=this.value;return this.type===Yw&&(e=Tw.toString(e)),new vw(t,void 0,e)}}class Xw extends Iw{constructor(t){let e;if(t instanceof _u)e=t;else if(Array.isArray(t)){const r=[];for(const e of t)if(e instanceof uu)r.push(e);else{const t=Kl.parse(new Jw(e.type,e.value).rawData,uu);r.push(t)}e=new _u(r)}else{if(!Ko.vJ.isBufferSource(t))throw new Error("Cannot initialize GeneralNames. Incorrect incoming arguments");e=Kl.parse(t,_u)}super(e)}onInit(t){const e=[];for(const r of t){let t=null;try{t=new Jw(r)}catch{continue}e.push(t)}this.items=e}toJSON(){return this.items.map((t=>t.toJSON()))}toTextObject(){const t=super.toTextObjectEmpty();for(const e of this.items){const r=e.toTextObject();let i=t[r[vw.NAME]];Array.isArray(i)||(i=[],t[r[vw.NAME]]=i),i.push(r)}return t}}Xw.NAME="GeneralNames";const Zw="\\n",$w="-{5}BEGIN ([^\\n]+(?=-{5}))-{5}\\n(?:((?:[^:\\n]+: (?:[^\\n]+\\n(?: +[^\\n]+\\n)*))+))?\\n?((?:[a-zA-Z0-9=+/]+\\n)+)-{5}END \\1-{5}";class ty{static isPem(t){return"string"==typeof t&&new RegExp($w,"g").test(t)}static decodeWithHeaders(t){t=t.replace(/\r/g,"");const e=new RegExp($w,"g"),r=[];let i=null;for(;i=e.exec(t);){const t=i[3].replace(new RegExp("[\\n]+","g"),""),e={type:i[1],headers:[],rawData:Ko.ep.FromBase64(t)},n=i[2];if(n){const t=n.split(new RegExp(Zw,"g"));let r=null;for(const i of t){const[t,n]=i.split(/:(.*)/);if(void 0===n){if(!r)throw new Error("Cannot parse PEM string. Incorrect header value");r.value+=t.trim()}else r&&e.headers.push(r),r={key:t,value:n.trim()}}r&&e.headers.push(r)}r.push(e)}return r}static decode(t){return this.decodeWithHeaders(t).map((t=>t.rawData))}static decodeFirst(t){const e=this.decode(t);if(!e.length)throw new RangeError("PEM string doesn't contain any objects");return e[0]}static encode(t,e){if(Array.isArray(t)){const r=new Array;return e?t.forEach((t=>{if(!Ko.vJ.isBufferSource(t))throw new TypeError("Cannot encode array of BufferSource in PEM format. Not all items of the array are BufferSource");r.push(this.encodeStruct({type:e,rawData:Ko.vJ.toArrayBuffer(t)}))})):t.forEach((t=>{if(!("type"in t))throw new TypeError("Cannot encode array of PemStruct in PEM format. Not all items of the array are PemStrut");r.push(this.encodeStruct(t))})),r.join("\n")}if(!e)throw new Error("Required argument 'tag' is missed");return this.encodeStruct({type:e,rawData:Ko.vJ.toArrayBuffer(t)})}static encodeStruct(t){var e;const r=t.type.toLocaleUpperCase(),i=[];if(i.push(`-----BEGIN ${r}-----`),null===(e=t.headers)||void 0===e?void 0:e.length){for(const e of t.headers)i.push(`${e.key}: ${e.value}`);i.push("")}const n=Ko.ep.ToBase64(t.rawData);let s,o=0;const a=Array();for(;o1?(i=t[0]||i,r=t[1]||r,e=t[2]||Nw.get()):e=t[0]||Nw.get(),e.subtle.importKey("spki",this.rawData,i,!0,r)}onInit(t){const e=Uf.resolve(jg),r=this.algorithm=e.toWebAlgorithm(t.algorithm);switch(t.algorithm.algorithm){case Bd:{const e=Kl.parse(t.subjectPublicKey,uf),i=Ko.vJ.toUint8Array(e.modulus);r.publicExponent=Ko.vJ.toUint8Array(e.publicExponent),r.modulusLength=(i[0]?i:i.slice(1)).byteLength<<3;break}}}async getThumbprint(...t){var e;let r,i="SHA-1";return t.length>=1&&!(null===(e=t[0])||void 0===e?void 0:e.subtle)?(i=t[0]||i,r=t[1]||Nw.get()):r=t[0]||Nw.get(),await r.subtle.digest(i,this.rawData)}async getKeyIdentifier(t){t||(t=Nw.get());const e=Kl.parse(this.rawData,kh);return await t.subtle.digest("SHA-1",e.subjectPublicKey)}toTextObject(){const t=this.toTextObjectEmpty(),e=Kl.parse(this.rawData,kh);if(t.Algorithm=Sw.serializeAlgorithm(e.algorithm),e.algorithm.algorithm===gd)t["EC Point"]=e.subjectPublicKey;else t["Raw Data"]=e.subjectPublicKey;return t}}class iy{static register(t,e){this.items.set(t,e)}static create(t){const e=new Cw(t),r=this.items.get(e.type);return r?new r(t):e}}iy.items=new Map;const ny="crypto.signatureFormatter";class sy extends ey{constructor(t){ey.isAsnEncoded(t)?super(t,Wh):super(t),this.tag=ty.CertificateTag}onInit(t){const e=t.tbsCertificate;this.tbs=Kl.serialize(e),this.serialNumber=Ko.ep.ToHex(e.serialNumber),this.subjectName=new Lw(e.subject),this.subject=new Lw(e.subject).toString(),this.issuerName=new Lw(e.issuer),this.issuer=this.issuerName.toString();const r=Uf.resolve(jg);this.signatureAlgorithm=r.toWebAlgorithm(t.signatureAlgorithm),this.signature=t.signatureValue;const i=e.validity.notBefore.utcTime||e.validity.notBefore.generalTime;if(!i)throw new Error("Cannot get 'notBefore' value");this.notBefore=i;const n=e.validity.notAfter.utcTime||e.validity.notAfter.generalTime;if(!n)throw new Error("Cannot get 'notAfter' value");this.notAfter=n,this.extensions=[],e.extensions&&(this.extensions=e.extensions.map((t=>iy.create(Kl.serialize(t))))),this.publicKey=new ry(e.subjectPublicKeyInfo)}getExtension(t){for(const e of this.extensions)if("string"==typeof t){if(e.type===t)return e}else if(e instanceof t)return e;return null}getExtensions(t){return this.extensions.filter((e=>"string"==typeof t?e.type===t:e instanceof t))}async verify(t={},e=Nw.get()){let r,i;const n=t.publicKey;try{if(n)if("publicKey"in n)r={...n.publicKey.algorithm,...this.signatureAlgorithm},i=await n.publicKey.export(r,["verify"]);else if(n instanceof ry)r={...n.algorithm,...this.signatureAlgorithm},i=await n.export(r,["verify"]);else if(Ko.vJ.isBufferSource(n)){const t=new ry(n);r={...t.algorithm,...this.signatureAlgorithm},i=await t.export(r,["verify"])}else r={...n.algorithm,...this.signatureAlgorithm},i=n;else r={...this.publicKey.algorithm,...this.signatureAlgorithm},i=await this.publicKey.export(r,["verify"],e)}catch(t){return!1}const s=Uf.resolveAll(ny).reverse();let o=null;for(const t of s)if(o=t.toWebSignature(r,this.signature),o)break;if(!o)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");const a=await e.subtle.verify(this.signatureAlgorithm,i,o,this.tbs);if(t.signatureOnly)return a;{const e=(t.date||new Date).getTime();return a&&this.notBefore.getTime()t))}else{const e=new Yu(t[0]);super(Ku,t[1],Kl.serialize(e)),this.usages=t[0]}}toTextObject(){const t=this.toTextObjectWithoutValue();return t[""]=this.usages.map((t=>Tw.toString(t))).join(", "),t}}uy.NAME="Extended Key Usages",function(t){t[t.digitalSignature=1]="digitalSignature",t[t.nonRepudiation=2]="nonRepudiation",t[t.keyEncipherment=4]="keyEncipherment",t[t.dataEncipherment=8]="dataEncipherment",t[t.keyAgreement=16]="keyAgreement",t[t.keyCertSign=32]="keyCertSign",t[t.cRLSign=64]="cRLSign",t[t.encipherOnly=128]="encipherOnly",t[t.decipherOnly=256]="decipherOnly"}(ly||(ly={}));class hy extends Cw{constructor(...t){if(Ko.vJ.isBufferSource(t[0])){super(t[0]);const e=Kl.parse(this.value,lh);this.usages=e.toNumber()}else{const e=new lh(t[0]);super(oh,t[1],Kl.serialize(e)),this.usages=t[0]}}toTextObject(){const t=this.toTextObjectWithoutValue(),e=Kl.parse(this.value,lh);return t[""]=e.toJSON().join(", "),t}}hy.NAME="Key Usages";class py extends Cw{constructor(...t){if(Ko.vJ.isBufferSource(t[0])){super(t[0]);const e=Kl.parse(this.value,Th);this.keyId=Ko.ep.ToHex(e)}else{const e="string"==typeof t[0]?Ko.ep.FromHex(t[0]):t[0],r=new Th(e);super(vh,t[1],Kl.serialize(r)),this.keyId=Ko.ep.ToHex(e)}}static async create(t,e=!1,r=Nw.get()){let i;i=t instanceof ry?t.rawData:"publicKey"in t?t.publicKey.rawData:Ko.vJ.isBufferSource(t)?t:await r.subtle.exportKey("spki",t);const n=new ry(i),s=await n.getKeyIdentifier(r);return new py(Ko.ep.ToHex(s),e)}toTextObject(){const t=this.toTextObjectWithoutValue(),e=Kl.parse(this.value,Th);return t[""]=e,t}}py.NAME="Subject Key Identifier";class dy extends Cw{constructor(...t){Ko.vJ.isBufferSource(t[0])?super(t[0]):super(mh,t[1],new Xw(t[0]||[]).rawData)}onInit(t){super.onInit(t);const e=Kl.parse(t.extnValue,bh);this.names=new Xw(e)}toTextObject(){const t=this.toTextObjectWithoutValue(),e=this.names.toTextObject();for(const r in e)t[r]=e[r];return t}}dy.NAME="Subject Alternative Name";class fy extends Cw{constructor(...t){var e;if(Ko.vJ.isBufferSource(t[0])){super(t[0]);const e=Kl.parse(this.value,Bu);this.policies=e.map((t=>t.policyIdentifier))}else{const r=t[0],i=null!==(e=t[1])&&void 0!==e&&e,n=new Bu(r.map((t=>new ku({policyIdentifier:t}))));super(Iu,i,Kl.serialize(n)),this.policies=r}}toTextObject(){const t=this.toTextObjectWithoutValue();return t.Policy=this.policies.map((t=>new vw("",{},Tw.toString(t)))),t}}fy.NAME="Certificate Policies",iy.register(Iu,fy);class gy extends Iw{constructor(...t){let e;if(Ko.vJ.isBufferSource(t[0]))e=Ko.vJ.toArrayBuffer(t[0]);else{const r=t[0],i=Array.isArray(t[1])?t[1].map((t=>Ko.vJ.toArrayBuffer(t))):[];e=Kl.serialize(new Ah({type:r,values:i}))}super(e,Ah)}onInit(t){this.type=t.type,this.values=t.values}toTextObject(){const t=this.toTextObjectWithoutValue();return t.Value=this.values.map((t=>new vw("",{"":t}))),t}toTextObjectWithoutValue(){const t=this.toTextObjectEmpty();return t[vw.NAME]===gy.NAME&&(t[vw.NAME]=Tw.toString(this.type)),t}}gy.NAME="Attribute";class wy extends gy{constructor(...t){var e;if(Ko.vJ.isBufferSource(t[0]))super(t[0]);else{const e=new Og({printableString:t[0]});super(pg,[Kl.serialize(e)])}null!==(e=this.password)&&void 0!==e||(this.password="")}onInit(t){if(super.onInit(t),this.values[0]){const t=Kl.parse(this.values[0],Og);this.password=t.toString()}}toTextObject(){const t=this.toTextObjectWithoutValue();return t[vw.VALUE]=this.password,t}}wy.NAME="Challenge Password";class yy extends gy{constructor(...t){var e;if(Ko.vJ.isBufferSource(t[0]))super(t[0]);else{const e=t[0],r=new Uh;for(const t of e)r.push(Kl.parse(t.rawData,Ph));super(dg,[Kl.serialize(r)])}null!==(e=this.items)&&void 0!==e||(this.items=[])}onInit(t){if(super.onInit(t),this.values[0]){const t=Kl.parse(this.values[0],Uh);this.items=t.map((t=>iy.create(Kl.serialize(t))))}}toTextObject(){const t=this.toTextObjectWithoutValue(),e=this.items.map((t=>t.toTextObject()));for(const r of e)t[r[vw.NAME]]=r;return t}}yy.NAME="Extensions";class my{static register(t,e){this.items.set(t,e)}static create(t){const e=new gy(t),r=this.items.get(e.type);return r?new r(t):e}}my.items=new Map;let by=class{toAsnAlgorithm(t){if("rsassa-pkcs1-v1_5"===t.name.toLowerCase()){if(!t.hash)return new Oh({algorithm:Bd,parameters:null});switch(t.hash.name.toLowerCase()){case"sha-1":return new Oh({algorithm:Fd,parameters:null});case"sha-256":return new Oh({algorithm:Wd,parameters:null});case"sha-384":return new Oh({algorithm:jd,parameters:null});case"sha-512":return new Oh({algorithm:zd,parameters:null})}}return null}toWebAlgorithm(t){switch(t.algorithm){case Bd:return{name:"RSASSA-PKCS1-v1_5"};case Fd:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case Wd:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case jd:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case zd:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}}}return null}};by=hf([Ff()],by),Uf.registerSingleton(Wg,by);class Ay{addPadding(t,e){const r=Ko.vJ.toUint8Array(e),i=new Uint8Array(t);return i.set(r,t-r.length),i}removePadding(t,e=!1){let r=Ko.vJ.toUint8Array(t);for(let t=0;t127){const t=new Uint8Array(r.length+1);return t.set(r,1),t.buffer}return r.buffer}toAsnSignature(t,e){if("ECDSA"===t.name){const r=t.namedCurve,i=Ay.namedCurveSize.get(r)||Ay.defaultNamedCurveSize,n=new Od,s=Ko.vJ.toUint8Array(e);return n.r=this.removePadding(s.slice(0,i),!0),n.s=this.removePadding(s.slice(i,i+i),!0),Kl.serialize(n)}return null}toWebSignature(t,e){if("ECDSA"===t.name){const r=Kl.parse(e,Od),i=t.namedCurve,n=Ay.namedCurveSize.get(i)||Ay.defaultNamedCurveSize,s=this.addPadding(n,this.removePadding(r.r)),o=this.addPadding(n,this.removePadding(r.s));return(0,Ko.$e)(s,o)}return null}}Ay.namedCurveSize=new Map,Ay.defaultNamedCurveSize=32;const Ey="1.3.101.110",_y="1.3.101.111",vy="1.3.101.112",Ty="1.3.101.113";let Sy=class{toAsnAlgorithm(t){let e=null;switch(t.name.toLowerCase()){case"eddsa":switch(t.namedCurve.toLowerCase()){case"ed25519":e=vy;break;case"ed448":e=Ty}break;case"ecdh-es":switch(t.namedCurve.toLowerCase()){case"x25519":e=Ey;break;case"x448":e=_y}}return e?new Oh({algorithm:e}):null}toWebAlgorithm(t){switch(t.algorithm){case vy:return{name:"EdDSA",namedCurve:"Ed25519"};case Ty:return{name:"EdDSA",namedCurve:"Ed448"};case Ey:return{name:"ECDH-ES",namedCurve:"X25519"};case _y:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};Sy=hf([Ff()],Sy),Uf.registerSingleton(Wg,Sy);class Iy extends ey{constructor(t){ey.isAsnEncoded(t)?super(t,Hg):super(t),this.tag=ty.CertificateRequestTag}onInit(t){this.tbs=Kl.serialize(t.certificationRequestInfo),this.publicKey=new ry(t.certificationRequestInfo.subjectPKInfo);const e=Uf.resolve(jg);this.signatureAlgorithm=e.toWebAlgorithm(t.signatureAlgorithm),this.signature=t.signature,this.attributes=t.certificationRequestInfo.attributes.map((t=>my.create(Kl.serialize(t))));const r=this.getAttribute(dg);this.extensions=[],r instanceof yy&&(this.extensions=r.items),this.subjectName=new Lw(t.certificationRequestInfo.subject),this.subject=this.subjectName.toString()}getAttribute(t){for(const e of this.attributes)if(e.type===t)return e;return null}getAttributes(t){return this.attributes.filter((e=>e.type===t))}getExtension(t){for(const e of this.extensions)if(e.type===t)return e;return null}getExtensions(t){return this.extensions.filter((e=>e.type===t))}async verify(t=Nw.get()){const e={...this.publicKey.algorithm,...this.signatureAlgorithm},r=await this.publicKey.export(e,["verify"],t),i=Uf.resolveAll(ny).reverse();let n=null;for(const t of i)if(n=t.toWebSignature(e,this.signature),n)break;if(!n)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await t.subtle.verify(this.signatureAlgorithm,r,n,this.tbs)}toTextObject(){const t=this.toTextObjectEmpty(),e=Kl.parse(this.rawData,Hg),r=e.certificationRequestInfo,i=new vw("",{Version:`${Mh[r.version]} (${r.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){const t=new vw("");for(const e of this.attributes){const r=e.toTextObject();t[r[vw.NAME]]=r}i.Attributes=t}return t.Data=i,t.Signature=new vw("",{Algorithm:Sw.serializeAlgorithm(e.signatureAlgorithm),"":e.signature}),t}}Iy.NAME="PKCS#10 Certificate Request";var Cy;!function(t){t[t.unspecified=0]="unspecified",t[t.keyCompromise=1]="keyCompromise",t[t.cACompromise=2]="cACompromise",t[t.affiliationChanged=3]="affiliationChanged",t[t.superseded=4]="superseded",t[t.cessationOfOperation=5]="cessationOfOperation",t[t.certificateHold=6]="certificateHold",t[t.removeFromCRL=8]="removeFromCRL",t[t.privilegeWithdrawn=9]="privilegeWithdrawn",t[t.aACompromise=10]="aACompromise"}(Cy||(Cy={}));iy.register(bu,ay),iy.register(Ku,uy),iy.register(oh,hy),iy.register(vh,py),iy.register(wu,oy),iy.register(mh,dy),my.register(pg,wy),my.register(dg,yy),Uf.registerSingleton(ny,class{toAsnSignature(t,e){return Ko.vJ.toArrayBuffer(e)}toWebSignature(t,e){return Ko.vJ.toArrayBuffer(e)}}),Uf.registerSingleton(ny,Ay),Ay.namedCurveSize.set("P-256",32),Ay.namedCurveSize.set("K-256",32),Ay.namedCurveSize.set("P-384",48),Ay.namedCurveSize.set("P-521",66);const Ry=/-{5}(BEGIN|END) .*-{5}/gm;async function xy({hash:t,signature:e,publicKey:r,domain:i,domainCert:n,created:s,software:o}={}){let a;const c=[];if(e=(0,Vo.toByteArray)(e),n&&i&&!r){const t=n.split("\n\n"),i=(0,Vo.toByteArray)(t[0].replace(Ry,"").replace(/\s/gm,"")),s=f(await crypto.subtle.digest("SHA-256",i));c.push({id:"certFingerprint",expected:s,matched:null});const o=new sy(i);r=await o.publicKey.export();const l=(0,Vo.fromByteArray)(new Uint8Array(o.publicKey.rawData));c.push({id:"publicKey",expected:l,matched:null}),o.subject&&o.subject.startsWith("CN=")&&(a=o.subject.split(3)),e=function(t){try{const e=ql.parse(t,Od),r=0===e.r[0]?e.r.slice(1):e.r,i=0===e.s[0]?e.s.slice(1):e.s;t=z([r,i],r.length+i.length)}catch(t){console.log(t)}return t}(e)}else{const t={name:"ECDSA",namedCurve:"P-384"};c.push({id:"publicKey",expected:r,matched:null}),r=await crypto.subtle.importKey("spki",(0,Vo.toByteArray)(r),t,!0,["verify"])}const l=new TextEncoder,u=await crypto.subtle.verify({name:"ECDSA",hash:"SHA-256"},r,e,l.encode(t));return c.push({id:"signature",expected:!0,matched:u}),s&&c.push({id:"created",expected:s,matched:null}),o&&c.push({id:"software",expected:o,matched:null}),i&&c.push({id:"domain",expected:i,matched:a}),c}const Ny="pages/pages.jsonl",Oy="pages/extraPages.jsonl",ky="datapackage.json",By="datapackage-digest.json",Dy="webarchive.yaml";class Ly{constructor(t,e,r=!0){this.file=e,this.waczname=e.waczname,this.store=t,this.isRoot=r}async loadFileFromWACZ(t,e){return this.store.loadFileFromWACZ?await this.store.loadFileFromWACZ(this.file,t,e):await this.file.loadFile(t,e)}async load(){let t,e=null;return this.file.containsFile(By)&&(e=await this.loadDigestData(By)),this.file.containsFile(ky)?t=await this.loadPackage(ky,e):this.file.containsFile(Dy)&&(t=await this.loadOldPackageYAML(Dy)),t||{}}async loadTextFileFromWACZ(t,e=!1){const{reader:r,hasher:i}=await this.loadFileFromWACZ(t,{computeHash:!!e}),n=(new TextDecoder).decode(await r.readFully());return e&&i&&await this.store.addVerifyData(this.waczname,t,e,i.getHash()),n}async loadDigestData(t){try{const e=JSON.parse(await this.loadTextFileFromWACZ(t));let r;e.path===ky&&e.hash&&(r=e.hash);const i=this.store,n=this.isRoot?"":this.waczname+":";if(!e.signedData||e.signedData.hash!==r)return void await i.addVerifyData(n,"signature");await i.addVerifyData(n,"datapackageHash",r);const s=await xy(e.signedData);return await i.addVerifyDataList(n,s),r}catch(t){console.warn(t)}}async loadPackage(t,e){const r=await this.loadTextFileFromWACZ(t,e),i=JSON.parse(r);switch(this.isRoot&&void 0!==i.config&&this.store.initConfig(i.config),i.profile){case"data-package":case"wacz-package":case void 0:case null:return await this.loadLeafWACZPackage(i);case"multi-wacz-package":return await this.loadMultiWACZPackage(i);default:throw new Error(`Unknown package profile: ${i.profile}`)}}async loadMultiWACZPackage(t){return this.file.markAsMultiWACZ(),await this.store.loadWACZFiles(t,this.file),t}async loadLeafWACZPackage(t){const e=t.metadata||{};let r=null;for(const e of t.resources)e.path===Ny?(r=e.hash,await this.store.addVerifyData(this.waczname,e.path,e.hash)):(e.path.endsWith(".idx")||e.path.endsWith(".cdx"))&&await this.store.addVerifyData(this.waczname,e.path,e.hash);if(this.file.containsFile(Ny)){(await this.loadPages(Ny,r)).hasText&&(this.store.textIndex=e.textIndex=Ny)}return this.file.containsFile(Oy)&&(this.store.textIndex=e.textIndex=Oy),e}async loadOldPackageYAML(t){const e=await this.loadTextFileFromWACZ(t),r=Qo.load(e),i={desc:r.desc,title:r.title};r.textIndex&&(i.textIndex=r.textIndex,r.config||(r.config={}),r.config.textIndex=r.textIndex),this.isRoot&&void 0!==r.config&&this.store.initConfig(r.config),i.title||(i.title=this.store.config.sourceName);const n=r.pages||[];n&&n.length&&await this.store.addPages(n);const s=r.pageLists||[];return s&&s.length&&await this.store.addCuratedPageLists(s,"pages","show"),i}async loadPages(t=Ny,e=null){const{reader:r,hasher:i}=await this.loadFileFromWACZ(t,{unzip:!0,computeHash:!0});let n=null,s=[];for await(const t of r.iterLines()){const e=JSON.parse(t);this.waczname&&(e.wacz=this.waczname),n?(s.push(e),500===s.length&&(await this.store.addPages(s),s=[])):n=e}return s.length&&await this.store.addPages(s),i&&e&&await this.store.addVerifyData(this.waczname,t,e,i.getHash()),n}}class Py{constructor(t,e,r=null){this.loader=t,this.loadId=r,this.loadUrl=e.loadUrl}async load(t){t.fullConfig&&this.loader.arrayBuffer&&this.loader.arrayBuffer.byteLength<=a&&(t.fullConfig.extra||(t.fullConfig.extra={}),t.fullConfig.extra.arrayBuffer=this.loader.arrayBuffer);const e=this.loadUrl,r=this.loader;return await t.addNewWACZ({name:"default",path:e,loader:r})}}class Uy{constructor(t,e,r=null){this.config=e,this.loadId=r,this.loader=t}async load(t,e=null,r=0){const i=new jn({loader:this.loader});await i.init();const n=i.zipreader,s=new Ly(t,i),o=await s.load();let a=0;const c=(t,i,n)=>{n+=a,e&&r&&e(Math.round(100*n/r),null,n,r)};for(const e of i.iterContainedFiles()){const r=n.getCompressedSize(e);(e.endsWith(".warc.gz")||e.endsWith(".warc"))&&await this.loadWARC(t,n,e,c,r),a+=r}return o||{}}async loadWARC(t,e,r,i,n){const{reader:s}=await e.loadFile(r,{unzip:!0}),o=new si(s,null,r);return o.detectPages=!1,await o.load(t,i,n)}}class My{constructor(t){this.response=t}async load(t){return await t.loadFromJSON(this.response)}}class Fy{constructor(t,{cloneResponse:e=!1,allowBody:r=!1,hostProxyOnly:i=!1}={}){if(t=t||{},this.prefix=t.prefix||"",this.proxyPathOnly=t.proxyPathOnly||!1,this.isLive=void 0===t.isLive||t.isLive,this.archivePrefix=t.archivePrefix||"",this.cloneResponse=e,this.allowBody=r,this.hostProxy=t.hostProxy,this.hostProxy instanceof Array){const t={};for(const e of this.hostProxy)t[e.host]=e;this.hostProxy=t}this.hostProxyOnly=i}async getAllPages(){return[]}getFetchUrl(t,e,r){let i;if(this.hostProxy){i=new URL(t);const e=this.hostProxy[i.host];if(e)return r.set("X-Proxy-Host",i.host),e.prefix+(e.pathOnly?i.pathname+i.search:t)}return this.hostProxyOnly?null:this.proxyPathOnly?(i||(i=new URL(t)),this.prefix+i.pathname+i.search):this.isLive||!e.timestamp?this.prefix+t:this.prefix+this.archivePrefix+e.timestamp+"id_/"+t}async getResource(t,e){const{headers:r,credentials:i,url:n}=t.prepareProxyRequest(e,!0),s=this.getFetchUrl(n,t,r);if(!s)return null;let o=null;!this.allowBody||"POST"!==t.method&&"PUT"!==t.method||(o=await t.getBody());const a=await fetch(s,{method:t.method,body:o,headers:r,credentials:i,mode:"cors",redirect:"follow"});let c=null;this.cloneResponse&&(c=a.clone());const l=mt.fromResponse({url:n,response:a,date:new Date,noRW:!1,isLive:this.isLive});return c&&(l.clonedResponse=c),l}}const Hy=/^([\w-]+,)*[\w-]+(:\d+)?,?\)\//;class Wy extends rn{constructor(t,e,r="wacz"){super(t.dbname,t.noCache),this.config=t,this.waczfiles={},this.waczNameForHash={},this.ziploadercache={},this.updating=null,this.rootSourceType=r,this.sourceLoader=e,this.externalSource=null,this.fuzzyUrlRules=[],this.textIndex=t&&t.metadata&&t.metadata.textIndex,t.extraConfig&&this.initConfig(t.extraConfig)}initConfig(t){if(void 0!==t.decodeResponses&&(this.config.decode=t.decodeResponses),t.hostProxy&&(this.externalSource=new Fy(t,{hostProxyOnly:!0})),t.fuzzy)for(const[e,r]of t.fuzzy){const t=new RegExp(e);this.fuzzyUrlRules.push({match:t,replace:r})}t.textIndex&&(this.textIndex=t.textIndex)}updateHeaders(t){this.sourceLoader&&(this.sourceLoader.headers=t)}_initDB(t,e,r,i){super._initDB(t,e,r,i),e||(t.createObjectStore("ziplines",{keyPath:["waczname","prefix"]}),t.createObjectStore("waczfiles",{keyPath:"waczname"}),t.createObjectStore("verification",{keyPath:"id"})),2===e&&this.convertV2WACZDB(t,i),3===e&&t.createObjectStore("verification",{keyPath:"id"})}async convertV2WACZDB(t,e){try{const r=await e.objectStore("ziplines").getAll(),i=await e.objectStore("zipEntries").getAll();t.deleteObjectStore("ziplines"),t.deleteObjectStore("zipEntries"),t.createObjectStore("ziplines",{keyPath:["waczname","prefix"]}),t.createObjectStore("waczfiles",{keyPath:"waczname"}),t.createObjectStore("verification",{keyPath:"id"});const n=this.config.loadUrl;for(const t of r)t.waczname=n,e.objectStore("ziplines").put(t);const s=r.length>0?2:1,o=await this.computeHash(n),a=new jn({waczname:n,hash:o,url:n,entries:i,indexType:s});e.objectStore("waczfiles").put(a.serialize()),await e.done}catch(t){console.warn(t)}}addWACZFile(t){return this.waczfiles[t.waczname]=new jn(t),this.waczNameForHash[t.hash]=t.waczname,this.waczfiles[t.waczname]}async init(){await super.init();const t=await this.db.getAll("waczfiles")||[];for(const e of t)this.addWACZFile({...e,parent:this});for(const[t,e]of Object.entries(this.waczfiles)){e.path=e.path||t;const r=e.path.lastIndexOf("#!/");if(r>0){const t=e.path.slice(0,r),i=this.waczfiles[t];e.parent=i}else"json"!==this.rootSourceType&&(e.loader=this.sourceLoader)}await this.checkUpdates()}async close(){super.close(),caches.delete("cache:"+this.name.slice("db:".length))}async clearZipData(){const t=["waczfiles","ziplines"];for(const e of t)await this.db.clear(e)}async addVerifyData(t="",e,r,i,n=!1){let s=null;t&&(e=t+e),i&&(s=r===i,n&&console.log(`verify ${e}: ${s}`)),await this.db.put("verification",{id:e,expected:r,matched:s})}async addVerifyDataList(t,e){const r=this.db.transaction("verification","readwrite");for(const i of e)t&&(i.id=t+i.id),r.store.put(i);try{await r.done}catch(t){console.warn(t)}}async getVerifyInfo(){const t=await this.db.getAll("verification");let e=0,r=0,i={};const n=["domain","created","certFingerprint","software","datapackageHash","publicKey"];for(const s of t)n.includes(s.id)?i[s.id]=s.expected:"signature"===s.id||!0===s.matched?e++:!1===s.matched&&r++;return i.numInvalid=r,i.numValid=e,i}async getVerifyExpected(t){const e=await this.db.get("verification",t);return e&&e.expected}async clearAll(){await super.clearAll(),await this.clearZipData()}async loadRecordFromSource(t){const{start:e,length:r,path:i,wacz:n}=t.source,s={offset:e,length:r,unzip:!0,computeHash:!0},o=n,{reader:a,hasher:c}=await this.loadFileFromNamedWACZ(o,"archive/"+i,s),l=new oi(a,c);await this.waczfiles[o].save(this.db);const u=await l.load();return t[un]&&(u.respHeaders["x-wabac-preset-cookie"]=t[un]),{remote:u,hasher:c}}async loadIndex(t){if(!this.waczfiles[t])throw new Error("unknown waczfile: "+t);if(this.waczfiles[t].indexType)return{indexType:this.waczfiles[t].indexType,isNew:!1};let e=0;for(const r of this.waczfiles[t].iterContainedFiles())r.endsWith(".cdx")||r.endsWith(".cdxj")?(console.log(`Loading CDX for ${t}`),await this.loadCDX(r,t),e=1):r.endsWith(".idx")&&(console.log(`Loading IDX for ${t}`),await this.loadIDX(r,t),e=2);return this.waczfiles[t].indexType=e,await this.waczfiles[t].save(this.db,!0),{indexType:e,isNew:!0}}async loadCDX(t,e,r,i){const{reader:n,hasher:s}=await this.loadFileFromNamedWACZ(e,t,{computeHash:!0}),o=new pn(n,null,e,{wacz:e}),a=await o.load(this,r,i);if(s){const r=await this.getVerifyExpected(t);r&&this.addVerifyData(e,t,r,s.getHash())}return a}async loadIDX(t,e,r,i){const{reader:n,hasher:s}=await this.loadFileFromNamedWACZ(e,t,{computeHash:!0});let o=[],a="",c=!0,l=0;for await(const t of n.iterLines()){if(l+=t.length,l===t.length&&t.startsWith("!meta")){const e=t.indexOf(" {");if(e<0){console.warn("Invalid Meta Line: "+t);continue}const r=JSON.parse(t.slice(e));r.filename&&(a=r.filename),"cdxj-gzip-1.0"!==r.format&&console.log(`Unknown CDXJ format "${r.format}", archive may not parse correctly`);continue}let n;if(t.indexOf("\t")>0){let[r,i,s,o]=t.split("\t");s=Number(s),o=Number(o),n={waczname:e,prefix:r,filename:i,offset:s,length:o,loaded:!1},c=!1}else{const r=t.indexOf(" {");if(r<0){console.log("Invalid Index Line: "+t);continue}const i=t.slice(0,r);let{offset:s,length:o,filename:l,digest:u}=JSON.parse(t.slice(r));c=c&&!Hy.test(i),l=l||a,n={waczname:e,prefix:i,filename:l,offset:s,length:o,digest:u,loaded:!1}}r&&r(l/i,l,i),o.push(n)}if(s){const r=await this.getVerifyExpected(t);r&&this.addVerifyData(e,t,r,s.getHash())}const u=this.db.transaction("ziplines","readwrite");for(const t of o)u.store.put(t);try{await u.done}catch(t){console.log("Error loading ziplines index: ",t)}c&&c!==this.waczfiles[e].nonSurt&&(this.waczfiles[e].nonSurt=c,await this.waczfiles[e].save(this.db,!0))}async loadCDXFromIDX(t,e,r=0,i=!1){const n=this.waczfiles[t].nonSurt?e:M(e),s=i?this.prefixUpperBound(n):n+" 9999",o=IDBKeyRange.upperBound([t,s],!0),a=this.db.transaction("ziplines","readonly"),c=[];for await(const e of a.store.iterate(o,"prev")){if(e.value.waczname!==t)break;if(c.unshift(e.value),!e.value.prefix.split(" ")[0].startsWith(n))break}await a.done;const l=[];c.length>3&&r&&c.sort(((t,e)=>{const i=t.prefix.split(" ")[1],n=e.prefix.split(" ")[1];if(!i||!n)return 0;const s=Math.abs(d(i).getTime()-r),o=Math.abs(d(n).getTime()-r);return s===o?0:s3)break}return l.length&&await Promise.allSettled(l),await this.waczfiles[t].save(this.db),l.length>0}async doCDXLoad(t,e,r){try{const i="indexes/"+e.filename,n={offset:e.offset,length:e.length,unzip:!0,computeHash:!!e.digest},{reader:s,hasher:o}=await this.loadFileFromNamedWACZ(r,i,n),a=new pn(s,null,null,{wacz:r});if(await a.load(this),o){const t=o.getHash(),n=`${i}:${e.offset}-${e.length}`;await this.addVerifyData(r,n,e.digest,t)}e.loaded=!0,await this.db.put("ziplines",e)}catch(t){await T(t,this.config)||console.warn(t)}finally{delete this.ziploadercache[t]}}async findPageAtUrl(t,e){const r=await this.db.getAllFromIndex("pages","url",t);let i=null,n=Number.MAX_SAFE_INTEGER;for(const t of r){const r=Math.abs(t.ts-e);if(r<1e3)return t;r0)return r;for(const i of Object.keys(this.waczfiles))if(i&&"local"!==i){const{indexType:n,isNew:s}=await this.loadIndex(i);switch(n){case 2:if(!await this.loadCDXFromIDX(i,t,0,!0))continue;break;case 1:if(!s)continue;break;default:continue}const o=await super.resourcesByUrlAndMime(t,...e);o&&o.length&&(r=r.concat(o))}return r}async loadFileFromWACZ(t,e,r){try{return await t.loadFile(e,r)}catch(i){if(await this.retryLoad(i))return await t.loadFile(e,r);throw i}}async loadFileFromNamedWACZ(t,e,r){const i=this.waczfiles[t];if(!i)throw new Error("No WACZ Found for: "+t);return await this.loadFileFromWACZ(i,e,r)}async addNewWACZ({name:t,hash:e,path:r,parent:i=null,loader:n=null}={}){const s=t||r;e?e.indexOf(":")>0&&(e=e.split(":")[1]):e=await g(s,"sha-256","");const o=this.addWACZFile({waczname:s,hash:e,path:r,parent:i,loader:n},!0);await o.init(),await o.save(this.db,!0);const a=new Ly(this,o,!i);return await a.load()}async loadWACZFiles(t,e=this){const r=[],i=async(t,e)=>{await this.waczfiles[t].init(e),await this.waczfiles[t].save(this.db,!0)},n=t.resources.map((t=>{const r=e.getLoadPath(t.path);return{name:e.getName(t.name),hash:t.hash,path:r}}));for(const{name:t,hash:s,path:o}of n)this.waczfiles[t]?this.waczfiles[t].path!==o&&r.push(i(t,o)):r.push(this.addNewWACZ({name:t,hash:s,path:o,parent:e}));r.length&&await Promise.allSettled(r)}async getTextIndex(){const t={"Content-Type":"application/ndjson"},e=Object.keys(this.waczfiles);if(!this.textIndex||!e.length)return new Response("",{headers:t});const r=e[0];let i;try{i=await this.loadFileFromNamedWACZ(r,this.textIndex,{unzip:!0})}catch(e){return new Response("",{headers:t})}const{reader:n}=i,s=this.waczfiles[r].getSizeOf(this.textIndex);return s>0&&(t["Content-Length"]=""+s),new Response(n.getReadableStream(),{headers:t})}async getResource(t,e,r,{pageId:i}={}){if(await this.initing,this.externalSource){const i=await this.externalSource.getResource(t,e,r);if(i)return i}const n="navigate"===r.request.mode;let s=i,o=null,a=null;if(s){if(o=this.waczNameForHash[s],!o)return null;a=await super.getResource(t,e,r,{waczname:o})}if(a||!n)return a;for(const[i,n]of Object.entries(this.waczfiles))if(n.fileType===Wn&&(a=await super.getResource(t,e,r,{waczname:i,noFuzzyCheck:!0}),a)){o=i,s=n.hash;break}if(o)return Response.redirect(`${e}:${s}/${t.timestamp}mp_/${t.url}`);if(this.fuzzyUrlRules.length)for(const{match:i,replace:n}of this.fuzzyUrlRules){const s=decodeURIComponent(t.url.replace(i,n));if(s&&s!==t.url){t.url=s;const i=await super.getResource(t,e,r);if(i)return i}}return null}async retryLoad(t){return"json"===this.rootSourceType&&(t instanceof x?(this.updating||(this.updating=this.checkUpdates()),await this.updating,this.updating=null,!0):await T(t,this.config))}async checkUpdates(){"json"===this.rootSourceType&&await this.loadFromJSON()}async loadFromJSON(t=null){if(!t){t=(await this.sourceLoader.doInitialFetch(!1)).response}if(206!==t.status&&200!==t.status)return console.warn("WACZ update failed from: "+this.config.loadUrl),{};const e=await t.json();return e.profile,await this.loadWACZFiles(e),e}getLoadPath(t){return new URL(t,this.config.loadUrl).href}getName(t){return t}async createLoader(t){return await Vi(t)}}class jy{constructor(t){const e=t.extraConfig||{};this.sourceUrl=e.prefix,this.type=e.sourceType||"kiwix",this.notFoundPageUrl=e.notFoundPageUrl}async getAllPages(){return[]}async getResource(t,e){const{url:r,headers:i}=t.prepareProxyRequest(e);let n=i;if("kiwix"===this.type){let e=await this.resolveHeaders(r);if(!e)for(const t of Zr.getFuzzyCanonsWithArgs(r))if(t!==r&&(e=await this.resolveHeaders(t),e))break;if(!e){if(this.notFoundPageUrl&&"navigate"===t.mode){const t=await fetch(this.notFoundPageUrl);if(200===t.status){const e={"Content-Type":"text/html"},i=await t.text();return new Response(i.replace("$URL",r),{status:404,headers:e})}}return null}let{headers:i,encodedUrl:s,date:o,status:a,statusText:c,hasPayload:l}=e;if(n.has("Range")){const t=n.get("Range");n={Range:t}}let u=null,h=null;l&&(h=await fetch(this.sourceUrl+"A/"+s,{headers:n}),h.body&&(u=new K(h.body.getReader(),!1)),206===h.status&&(a=206,c="Partial Content",i.set("Content-Length",h.headers.get("Content-Length")),i.set("Content-Range",h.headers.get("Content-Range")),i.set("Accept-Ranges","bytes"))),u||(u=new Uint8Array([])),o||(o=new Date),i||(i=new Headers);return new mt({payload:u,status:a,statusText:c,headers:i,url:r,date:o,noRW:!1,isLive:!1})}}async resolveHeaders(t){const e=t.slice(t.indexOf("//")+2);let r=encodeURI(e);r=encodeURIComponent(e);let i=await fetch(this.sourceUrl+"H/"+r);if(200!==i.status)return null;let n=null,s=null,o=null,a=null,c=!1;try{const e=await ct.parse(i.body);if("revisit"===e.warcType){const r=e.warcHeaders.headers.get("WARC-Refers-To-Target-URI");if(r&&r!==t)return await this.resolveHeaders(r)}s=new Date(e.warcDate),e.httpHeaders?(n=e.httpHeaders.headers,o=Number(e.httpHeaders.statusCode),a=e.httpHeaders.statusText,c="0"!==e.httpHeaders.headers.get("Content-Length")):"resource"===e.warcType&&(n=new Headers,n.set("Content-Type",e.warcContentType),n.set("Content-Length",e.warcContentLength),o=200,a="OK",c=e.warcContentLength>0),o||(o=200)}catch(e){console.warn(e),console.warn("Ignoring headers, error parsing headers response for: "+t)}return{encodedUrl:r,headers:n,date:s,status:o,statusText:a,hasPayload:c}}}const zy=Qy([80,75,3,4]),Gy=Qy([31,139,8]),qy=Qy([87,65,82,67]);function Qy(t){return e=>{for(const[r,i]of t.entries())if(i!==e[r])return!1;return!0}}async function Vy(t){const e=t.body.getReader();let r="";const{value:i,done:n}=await e.read();var s;return!n&&i.length>=4&&(s=i.slice(0,4),r=zy(s)?".wacz":qy(s)?".warc":Gy(s)?".warc.gz":void 0,r||(r=function(t){try{const e=(new TextDecoder).decode(t).split("\n");if(e>1&&e.indexOf(" {"))return".cdxj"}catch(t){return""}}(i))),n||e.cancel(),r}globalThis.self||(globalThis.self=globalThis),self.interruptLoads={};class Ky extends class{constructor(){this.colldb=null,this.root=null,this.checkIpfs=!0,this._init_db=this._initDB()}async _initDB(){this.colldb=await Dr("collDB",1,{upgrade:t=>{t.createObjectStore("colls",{keyPath:"name"}).createIndex("type","type")}})}async loadAll(t){if(await this._init_db,t)for(const e of t.split(",")){const t=e.split(":");if(2===t.length){const e={dbname:t[1],sourceName:t[1],decode:!1},r={name:t[0],type:"archive",config:e};console.log("Adding Coll: "+JSON.stringify(r)),await this.colldb.put("colls",r)}}try{const t=(await this.listAll()).map((t=>this._initColl(t)));await Promise.all(t)}catch(t){console.warn(t.toString())}return!0}async listAll(){return await this._init_db,await this.colldb.getAll("colls")}async loadColl(t){await this._init_db;const e=await this.colldb.get("colls",t);return e?await this._initColl(e):null}async reload(t){return this.loadColl(t)}async deleteColl(t){await this._init_db;const e=await this.colldb.get("colls",t);if(!e)return!1;if(e.config.dbname)try{await Lr(e.config.dbname,{blocked(t,r){console.log(`Unable to delete ${e.config.dbname}, blocked: ${r}`)}})}catch(t){return console.warn(t),!1}return await this.colldb.delete("colls",t),!0}async updateAuth(t,e){await this._init_db;const r=await this.colldb.get("colls",t);return!!r&&(r.config.headers=e,await this.colldb.put("colls",r),!0)}async updateMetadata(t,e){await this._init_db;const r=await this.colldb.get("colls",t);return!!r&&(r.config.metadata={...r.config.metadata,...e},await this.colldb.put("colls",r),r.config.metadata)}async updateSize(t,e,r,i){await this._init_db;const n=await this.colldb.get("colls",t);if(!n)return!1;const s=n.config.metadata;return s.fullSize=(s.fullSize||0)+e,s.size=(s.size||0)+r,s.mtime=(new Date).getTime(),void 0!==i&&(n.config.decode=i),await this.colldb.put("colls",n),s}async initNewColl(t,e={},r="archive"){await this._init_db;const i=m(),n="local://"+i,s={name:i,type:r,config:{dbname:"db:"+i,ctime:(new Date).getTime(),decode:!1,metadata:t,sourceUrl:n,extraConfig:e}},o=await this._initColl(s);return await this.colldb.put("colls",s),o}async _initColl(t){const e=await this._initStore(t.type,t.config),r=t.name,i=t.config;return t.config.root&&!this.root&&(this.root=r),this._createCollection({name:r,store:e,config:i})}async _initStore(t,e){let r=null,i=null;switch(t){case"archive":i=new ei(e.dbname);break;case"remotesource":r=await Vi({url:e.loadUrl,headers:e.headers,size:e.size,extra:e.extra}),i=new nn(e.dbname,r,e.noCache);break;case"remoteprefix":i=new sn(e.dbname,e.remotePrefix,e.headers,e.noCache);break;case"wacz":case"remotezip":case"multiwacz":r=await Vi({url:e.loadUrl||e.sourceUrl,headers:e.headers,extra:e.extra}),i=new Wy(e,r,"multiwacz"===t?"json":"wacz");break;case"remotewarcproxy":i=new jy(e);break;case"live":i=new Fy(e.extraConfig)}return i?(i.initing&&await i.initing,i):(console.log("no store found: "+t),null)}_createCollection(t){return t}}{constructor(t){super(),this.registerListener(t)}async hasCollection(t){return await this._init_db,null!=await this.colldb.getKey("colls",t)}registerListener(t){t.addEventListener("message",(t=>{t.waitUntil?t.waitUntil(this._handleMessage(t)):this._handleMessage(t)}))}async _handleMessage(t){await this._init_db;const e=t.source||self;switch(t.data.msg_type){case"addColl":{const r=t.data.name,i=(t,i,n,s,o=null,a=null)=>{e.postMessage({msg_type:"collProgress",name:r,percent:t,error:i,currentSize:n,totalSize:s,fileHandle:o,extraMsg:a})};let n;try{if(n=await this.colldb.get("colls",r),n?t.data.skipExisting||(await this.deleteColl(r),n=await this.addCollection(t.data,i)):n=await this.addCollection(t.data,i),!n){if(t.data.name)try{await Lr("db:"+t.data.name,{blocked(e,r){console.log(`Load failed and unable to delete ${t.data.name}: ${r}`)}})}catch(t){console.warn(t)}return}}catch(t){if(t instanceof R)return console.warn(t),void i(0,"permission_needed",null,null,t.info&&t.info.fileHandle);if("ConstraintError"!==t.name)return console.warn(t),void i(0,"An unexpected error occured: "+t.toString());console.log("already being added, just continue..."),n=await this.colldb.get("colls",r)}e.postMessage({msg_type:"collAdded",name:r,sourceUrl:n.config.sourceUrl});break}case"cancelLoad":{const e=t.data.name,r=new Promise((t=>self.interruptLoads[e]=t));await r,await this.deleteColl(e),delete self.interruptLoads[e];break}case"removeColl":{const r=t.data.name;await this.hasCollection(r)&&(await this.deleteColl(r),this.doListAll(e));break}case"listAll":this.doListAll(e);break;case"reload":this.reload(t.data.name)}}async doListAll(t){const e=[],r=await this.listAll();for(const t of r)e.push({name:t.name,prefix:t.name,pageList:[],sourceName:t.config.sourceName});t.postMessage({msg_type:"listAll",colls:e})}async addCollection(t,e){let r=t.name,i=null,n={root:t.root||!1},s=null,o=null;const c=t.file;if(!c||!c.sourceUrl)return e(0,"Invalid Load Request"),!1;if(n.dbname="db:"+r,c.sourceUrl.startsWith("proxy:"))n.sourceUrl=c.sourceUrl.slice("proxy:".length),n.extraConfig=t.extraConfig,n.extraConfig.prefix||(n.extraConfig.prefix=n.sourceUrl),n.topTemplateUrl=t.topTemplateUrl,n.metadata={},i=t.type||n.extraConfig.type||"remotewarcproxy",s=await this._initStore(i,n);else{let l=null;if(c.newFullImport&&(r=m(),c.loadUrl=c.loadUrl||c.sourceUrl,c.name=c.name||c.sourceUrl,c.sourceUrl="local://"+r),i="archive",c.newFullImport&&c.importCollId){const t=await this.colldb.get("colls",c.importCollId);if(!t||"archive"!==t.type)return void e(0,"Invalid Existing Collection: "+c.importCollId);n.dbname=t.config.dbname,o=t.config,o.decode=!0}let u=c.loadUrl||c.sourceUrl;u.match(/[\w]+:\/\//)||(u=new URL(u,self.location.href).href),n.decode=!0,n.onDemand=!1,n.loadUrl=u,n.sourceUrl=c.sourceUrl,n.sourceName=c.name||c.sourceUrl;try{if(n.sourceName.match(/https?:\/\//)){const t=new URL(n.sourceName);n.sourceName=t.pathname+t.hash}}catch(t){}if(n.sourceName=n.sourceName.slice(n.sourceName.lastIndexOf("/")+1),n.size="number"==typeof c.size?c.size:null,n.extra=c.extra,n.loadUrl.startsWith("file://")&&!c.blob&&!n.extra){if(!this._fileHandles||!this._fileHandles[n.sourceUrl])return void e(0,"missing_local_file");n.extra={fileHandle:this._fileHandles[n.sourceUrl]}}n.extraConfig=t.extraConfig,n.headers=c.headers||n.extraConfig&&n.extraConfig.headers,n.noCache=c.noCache;let h=await Vi({url:u,headers:n.headers,size:c.size,extra:n.extra,blob:c.blob});if(c.loadEager){const{response:t}=await h.doInitialFetch(!1,!0),e={arrayBuffer:new Uint8Array(await t.arrayBuffer())};c.newFullImport=!0,h=await Vi({url:u,headers:n.headers,size:c.size,extra:e})}let p=function(t){const e=[".warc",".warc.gz",".cdx",".cdxj",".har",".json",".wacz",".zip"];for(const r of e)if(t.endsWith(r))return r;return""}(n.sourceName),{abort:d,response:f}=await h.doInitialFetch(".wacz"===p);p||(p=await Vy(await f.clone()));const g=f.body;if(n.onDemand=h.canLoadOnDemand&&!c.newFullImport,!h.isValid){const t=h.length<=1e3?await f.text():"";return e(0,`Sorry, this URL could not be loaded.\nMake sure this is a valid URL and you have access to this file.\nStatus: ${f.status} ${f.statusText}\nError Details:\n${t}`),d&&d.abort(),!1}if(!h.length)return e(0,"Sorry, this URL could not be loaded because the size of the file is not accessible.\nMake sure this is a valid URL and you have access to this file."),d&&d.abort(),!1;const w=h.length;if(".wacz"===p)if(n.onDemand)l=new Py(h,n,r),s=new Wy(n,h,"wacz"),i="wacz";else{if(!h.canLoadOnDemand||!c.newFullImport)return e(0,"Sorry, can't load this WACZ file due to lack of range request support on the server"),d&&d.abort(),!1;l=new Uy(h,n,r),s=null,delete n.extra}else".warc"===p||".warc.gz"===p?n.noCache||!(w300&&e<400)return;let s=null;void 0===this.timeRanges[n]?(s={count:0,children:[]},this.timeRanges[n]=s,r.referrer.indexOf("mp_/")>0&&self.clients.matchAll({type:"window"}).then((t=>this.updateStatsParent(n,r.referrer,t)))):s=this.timeRanges[n];const o=t.getTime();(!s.min||os.max)&&(s.max=o),s.count++}updateStatsParent(t,e,r){for(let i of r)if(i.url===e){this.timeRanges[i.id]?this.timeRanges[i.id].children[t]=1:this.timeRanges[i.id]={count:0,children:{id:1}};break}}async getStats(t){const e=new URL(t.request.url);let r=0;const i=new URLSearchParams(e.search).get("url"),n=await self.clients.matchAll({type:"window"}),s={};for(let t of n)t.url===i&&(r=t.id),s[t.id]=1;const o=this.timeRanges[r]||{},a={count:o.count||0,min:o.min,max:o.max},c=this.timeRanges[r]&&Object.keys(this.timeRanges[r].children)||[];for(let t of c){const e=this.timeRanges[t];e&&((!a.min||e.mina.max)&&(a.max=e.max),a.count+=e.count)}for(let t of Object.keys(this.timeRanges))s[t]||delete this.timeRanges[t];return new Response(JSON.stringify(a),{headers:{"Content-Type":"application/json"}})}}var Jy=function(){return Jy=Object.assign||function(t){for(var e,r=1,i=arguments.length;r$)/g,""):"[a-zA-Z0-9-_.~%':|=+\\*@$]+")+")"},um=[{name:"url-parameter",pattern:/^:([a-zA-Z0-9-_]*[a-zA-Z0-9]{1})(<(.+?)>)?/,regex:function(t){return new RegExp(lm(t[2]))}},{name:"url-parameter-splat",pattern:/^\*([a-zA-Z0-9-_]*[a-zA-Z0-9]{1})/,regex:/([^?]*)/},{name:"url-parameter-matrix",pattern:/^;([a-zA-Z0-9-_]*[a-zA-Z0-9]{1})(<(.+?)>)?/,regex:function(t){return new RegExp(";"+t[1]+"="+lm(t[2]))}},{name:"query-parameter",pattern:/^(?:\?|&)(?::)?([a-zA-Z0-9-_]*[a-zA-Z0-9]{1})/},{name:"delimiter",pattern:/^(\/|\?)/,regex:function(t){return new RegExp("\\"+t[0])}},{name:"sub-delimiter",pattern:/^(!|&|-|_|\.|;)/,regex:function(t){return new RegExp(t[0])}},{name:"fragment",pattern:/^([0-9a-zA-Z]+)/,regex:function(t){return new RegExp(t[0])}}],hm=function t(e,r){if(void 0===r&&(r=[]),!um.some((function(i){var n=e.match(i.pattern);return!!n&&(r.push({type:i.name,match:n[0],val:n.slice(1,2),otherVal:n.slice(2),regex:i.regex instanceof Function?i.regex(n):i.regex}),n[0].length0,this.hasSpatParam=this.tokens.filter((function(t){return/splat$/.test(t.type)})).length>0,this.hasMatrixParams=this.tokens.filter((function(t){return/matrix$/.test(t.type)})).length>0,this.hasQueryParams=this.tokens.filter((function(t){return/^query-parameter/.test(t.type)})).length>0,this.spatParams=this.getParams("url-parameter-splat"),this.urlParams=this.getParams(/^url-parameter/),this.queryParams=this.getParams("query-parameter"),this.params=this.urlParams.concat(this.queryParams),this.source=this.tokens.filter((function(t){return void 0!==t.regex})).map((function(t){return t.regex.source})).join("")}return t.createPath=function(e,r){return new t(e,r)},t.prototype.isQueryParam=function(t){return-1!==this.queryParams.indexOf(t)},t.prototype.isSpatParam=function(t){return-1!==this.spatParams.indexOf(t)},t.prototype.test=function(t,e){var r=this,i=Jy(Jy({caseSensitive:!1,strictTrailingSlash:!1},this.options),e),n=function(t,e){return e||"\\/"===t?t:t.replace(/\\\/$/,"")+"(?:\\/)?"}(this.source,i.strictTrailingSlash),s=this.urlTest(t,n+(this.hasQueryParams?"(\\?.*$|$)":"$"),i.caseSensitive,i.urlParamsEncoding);if(!s||!this.hasQueryParams)return s;var o=im(t,i.queryParams);return 0===Object.keys(o).filter((function(t){return!r.isQueryParam(t)})).length?(Object.keys(o).forEach((function(t){return s[t]=o[t]})),s):null},t.prototype.partialTest=function(t,e){var r=this,i=Jy(Jy({caseSensitive:!1,delimited:!0},this.options),e),n=function(t,e){return e?/(\/)$/.test(t)?t:t+"(\\/|\\?|\\.|;|$)":t}(this.source,i.delimited),s=this.urlTest(t,n,i.caseSensitive,i.urlParamsEncoding);if(!s)return s;if(!this.hasQueryParams)return s;var o=im(t,i.queryParams);return Object.keys(o).filter((function(t){return r.isQueryParam(t)})).forEach((function(t){return function(t,e,r){void 0===r&&(r="");var i=t[e];return t[e]=void 0===i?r:Array.isArray(i)?i.concat(r):[i,r],t}(s,t,o[t])})),s},t.prototype.build=function(t,e){var r=this;void 0===t&&(t={});var i=Jy(Jy({ignoreConstraints:!1,ignoreSearch:!1,queryParams:{}},this.options),e),n=Object.keys(t).filter((function(t){return!r.isQueryParam(t)})).reduce((function(e,n){if(!pm(t[n]))return e;var s=t[n],o=r.isSpatParam(n);return"boolean"==typeof s?e[n]=s:Array.isArray(s)?e[n]=s.map((function(t){return cm(t,i.urlParamsEncoding,o)})):e[n]=cm(s,i.urlParamsEncoding,o),e}),{});if(this.urlParams.some((function(e){return!pm(t[e])}))){var s=this.urlParams.filter((function(e){return!pm(t[e])}));throw new Error("Cannot build path: '"+this.path+"' requires missing parameters { "+s.join(", ")+" }")}if(!i.ignoreConstraints&&!this.tokens.filter((function(t){return/^url-parameter/.test(t.type)&&!/-splat$/.test(t.type)})).every((function(t){return new RegExp("^"+lm(t.otherVal[0])+"$").test(n[t.val])})))throw new Error("Some parameters of '"+this.path+"' are of invalid format");var o=this.tokens.filter((function(t){return!1===/^query-parameter/.test(t.type)})).map((function(t){return"url-parameter-matrix"===t.type?";"+t.val+"="+n[t.val[0]]:/^url-parameter/.test(t.type)?n[t.val[0]]:t.match})).join("");if(i.ignoreSearch)return o;var a=function(t,e){var r=Xy(e);return Object.keys(t).filter((function(e){return function(t){return void 0!==t}(t[e])})).map((function(e){return tm(e,t[e],r)})).filter(Boolean).join("&")}(this.queryParams.filter((function(e){return-1!==Object.keys(t).indexOf(e)})).reduce((function(e,r){return e[r]=t[r],e}),{}),i.queryParams);return a?o+"?"+a:o},t.prototype.getParams=function(t){var e=t instanceof RegExp?function(e){return t.test(e.type)}:function(e){return e.type===t};return this.tokens.filter(e).map((function(t){return t.val[0]}))},t.prototype.urlTest=function(t,e,r,i){var n=this,s=new RegExp("^"+e,r?"":"i"),o=t.match(s);return o?this.urlParams.length?o.slice(1,this.urlParams.length+1).reduce((function(t,e,r){return t[n.urlParams[r]]=(am[i]||decodeURIComponent)(e),t}),{}):{}:null},t}();class gm{constructor(t){this.routes={};for(const[e,r]of Object.entries(t)){let t,i;r instanceof Array?(t=r[0],i=r[1]||"GET"):(t=r,i="GET"),this.routes[i]=this.routes[i]||{},this.routes[i][e]=new fm(t)}}match(t,e="GET"){for(const[r,i]of Object.entries(this.routes[e]||[])){const e=t.split("?",2),n=e[0],s=i.test(n);if(s)return s._route=r,s._query=new URLSearchParams(2===e.length?e[1]:""),s}return{_route:null}}}class wm{constructor(t){this.router=new gm(this.routes),this.collections=t}get routes(){return{index:"coll-index",coll:"c/:coll",urls:"c/:coll/urls",createColl:["c/create","POST"],deleteColl:["c/:coll","DELETE"],updateAuth:["c/:coll/updateAuth","POST"],updateMetadata:["c/:coll/metadata","POST"],curated:"c/:coll/curated/:list",pages:"c/:coll/pages",textIndex:"c/:coll/textIndex",deletePage:["c/:coll/page/:page","DELETE"]}}async apiResponse(t,e,r){const i=this.router.match(t,e.method),n=await this.handleApi(e,i,r);if(n instanceof Response)return n;const s=n.error?404:200;return this.makeResponse(n,s)}async handleApi(t,e){switch(e._route){case"index":return await this.listAll(e._query.get("filter"));case"createColl":{const e=await t.json();return I(await this.collections.initNewColl(e.metadata||{},e.extraConfig||{}))}case"coll":{const t=await this.collections.getColl(e.coll);if(!t)return{error:"collection_not_found"};const r=I(t);return"1"===e._query.get("all")?(t.store.db?(r.pages=await t.store.getAllPages(),r.lists=await t.store.db.getAll("pageLists"),r.curatedPages=await t.store.db.getAll("curatedPages")):(r.pages=[],r.lists=[],r.curatedPages=[]),r.verify=await t.store.getVerifyInfo()):(r.numLists=await t.store.db.count("pageLists"),r.numPages=await t.store.db.count("pages")),t.config.metadata.ipfsPins&&(r.ipfsPins=t.config.metadata.ipfsPins),r}case"deleteColl":{const t="1"===e._query.get("reload");return await this.collections.deleteColl(e.coll,t)?await this.listAll():{error:"collection_not_found"}}case"updateAuth":{const r=await t.json();return{success:await this.collections.updateAuth(e.coll,r.headers)}}case"updateMetadata":{const r=await t.json();return{metadata:await this.collections.updateMetadata(e.coll,r)}}case"urls":{const t=await this.collections.getColl(e.coll);if(!t)return{error:"collection_not_found"};const r=e._query.get("url"),i=Number(e._query.get("count")||100),n=e._query.get("mime"),s="1"===e._query.get("prefix"),o=e._query.get("fromUrl"),a=e._query.get("fromTs"),c=e._query.get("fromMime"),l=Number(e._query.get("fromStatus")||0);if(!t.store.resourcesByMime)return{urls:[]};let u;return u=r?await t.store.resourcesByUrlAndMime(r,n,i,s,o,a):await t.store.resourcesByMime(n,i,c,o,l),u=u||[],{urls:u}}case"pages":{const t=await this.collections.getColl(e.coll);if(!t)return{error:"collection_not_found"};return{pages:await t.store.getAllPages()}}case"textIndex":{const t=await this.collections.getColl(e.coll);return t?t.store.getTextIndex?await t.store.getTextIndex():{}:{error:"collection_not_found"}}case"curated":{const t=await this.collections.getColl(e.coll);if(!t)return{error:"collection_not_found"};const r=Number(e.list);return{curated:await t.store.db.getAllFromIndex("curatedPages","listPages",IDBKeyRange.bound([r],[r+1]))}}case"deletePage":{const t=await this.collections.getColl(e.coll);if(!t)return{error:"collection_not_found"};const{pageSize:r,deleteSize:i}=t.store.deletePage(e.page);return this.collections.updateSize(e.coll,r,i),{pageSize:r,deleteSize:i}}default:return{error:"not_found"}}}async listAll(t){const e=await this.collections.listAll(),r=[];return e.forEach((e=>{"live"!==e.type&&"remoteproxy"!==e.type&&(t&&0!==e.type.indexOf(t)||r.push(I(e)))})),{colls:r}}makeResponse(t,e=200){return new Response(JSON.stringify(t),{status:e,headers:{"Content-Type":"application/json"}})}}const ym=/^(?::([\w-]+)\/)?(\d*)([a-z]+_|[$][a-z0-9:.-]+)?(?:\/|\||%7C|%7c)(.+)/;class mm{constructor(t,e,{isRoot:r=!1,mod:i="",ts:n="",proxyOrigin:s=null,localOrigin:o=null}={}){const a=ym.exec(t);if(this.url="",this.timestamp=n,this.mod=i,this.pageId="",this.hash="",!a&&(t.startsWith("https:")||t.startsWith("http:")||t.startsWith("blob:")))this.url=t;else if(!a&&r)this.url="https://"+t;else{if(!a)return void(this.url=null);this.pageId=a[1]||"",this.timestamp=a[2],this.mod=a[3],this.url=a[4]}if(s&&o){const t=new URL(this.url);t.origin===o&&(this.url=s+t.pathname+(t.search?t.search:""))}const c=this.url.indexOf("#");c>0&&(this.hash=this.url.slice(c),this.url=this.url.substring(0,c)),this.request=e,this.method=e.method,this.mode=e.mode,this._postToGetConverted=!1}get headers(){return this.request.headers}get destination(){return this.request.destination}get referrer(){return this.request.referrer}async convertPostToGet(){if(this._postToGetConverted)return this.url;const t=this.request;if("POST"!==t.method&&"PUT"!==t.method)return this.url;const e={method:t.method,postData:await t.text(),headers:t.headers,url:this.url};return F(e)&&(this.url=e.url,this.method="GET",this.mode="navigate"===this.request.mode?"same-origin":this.request.mode,this._postToGetConverted=!0),this.url}prepareProxyRequest(t,e=!0){let r,i,n;if(e){r=new Headers(this.request.headers),i=this.request.referrer;const e=i.indexOf("/http",t.length-1);e>0&&(i=i.slice(e+1),r.set("X-Proxy-Referer",i)),n=this.request.credentials,this.cookie&&r.set("X-Proxy-Cookie",this.cookie)}else r=new Headers,n="omit";let s=this.url;if(s.startsWith("//"))try{s=new URL(i).protocol+s}catch(t){s="https:"+s}return{referrer:i,headers:r,credentials:n,url:s}}async getBody(){const t=this.request.clone();return new Uint8Array(await t.arrayBuffer())}}const bm="x-wabac-is-ajax-req";class Am extends Ky{constructor(t,e=null,r={}){super(self),this.prefixes=t,this.colls={},this.inited=null,this.root=e,this.defaultConfig=r,this._fileHandles={}}_createCollection(t){return new br(t,this.prefixes,this.defaultConfig)}loadAll(t){return this.colls={},this.inited=super.loadAll(t),this.inited}async getColl(t){return this.colls[t]||(this.colls[t]=await this.loadColl(t)),this.colls[t]}async reload(t){delete this.colls[t],await this.getColl(t)}async addCollection(t,e){const r=await super.addCollection(t,e);return r&&r.name&&(this.colls[r.name]=this._createCollection(r)),r}async deleteColl(t,e=!1){return this.colls[t]&&(this.colls[t].store&&this.colls[t].store.delete&&await this.colls[t].store.delete(),e&&this.colls[t].config&&this.colls[t].config.extra&&this.colls[t].config.extra.fileHandle&&(this._fileHandles[this.colls[t].config.sourceUrl]=this.colls[t].config.extra.fileHandle)),!!await super.deleteColl(t)&&(delete this.colls[t],!0)}async initNewColl(t,e={},r="archive"){const i=await super.initNewColl(t,e,r);return i&&(this.colls[i.name]=i),i}async updateAuth(t,e){this.colls[t]&&this.colls[t].store.updateHeaders&&this.colls[t].store.updateHeaders(e),await super.updateAuth(t,e)}async updateMetadata(t,e){const r=await super.updateMetadata(t,e);return this.colls[t]&&r&&(this.colls[t].config.metadata=r,this.colls[t].metadata=r),r}async updateSize(t,e,r,i){const n=await super.updateSize(t,e,r,i);return this.colls[t]&&n&&(this.colls[t].config.metadata=n,this.colls[t].metadata=n),void 0!==i&&this.colls[t]&&(this.colls[t].config.decode=i),n}}class Em{constructor({staticData:t=null,ApiClass:e=wm,defaultConfig:r={},CollectionsClass:i=Am}={}){this.prefix=self.registration?self.registration.scope:"",this.replayPrefix=this.prefix;const n=new URLSearchParams(self.location.search);let s="w";n.has("replayPrefix")&&(s=n.get("replayPrefix")),s&&(this.replayPrefix+=s+"/"),this.staticPrefix=this.prefix+"static/",this.distPrefix=this.prefix+"dist/";const o={static:this.staticPrefix,root:this.prefix,main:this.replayPrefix};this.staticData=t||new Map,this.staticData.set(this.staticPrefix+"wombat.js",{type:"application/javascript",content:'/*! wombat.js is part of Webrecorder project. Copyright (C) 2020-2023, Webrecorder Software. Licensed under the Affero General Public License v3. */(()=>{"use strict";function t(){this._map=[]}function e(t,e){void 0!==self.Symbol&&void 0!==self.Symbol.toStringTag&&Object.defineProperty(t.prototype,self.Symbol.toStringTag,{value:e,enumerable:!1})}function r(t){for(var e,r,i=t.__proto__||t.constructor.prototype||t.prototype,o=Object.getOwnPropertyNames(i),n=o.length,s=0;s=0?this._map.splice(e,1)[0][1]:null},t.prototype.map=function(t){for(var e=0;et+=String.fromCharCode(e)),""):t?t.toString():"";try{return"__wb_post_data="+btoa(e)}catch{return"__wb_post_data="}}function _(t){let{method:e,headers:r,postData:i}=t;if("GET"===e)return!1;function o(t){return t instanceof Uint8Array&&(t=(new TextDecoder).decode(t)),t}let n="";switch((r.get("content-type")||"").split(";")[0]){case"application/x-www-form-urlencoded":n=o(i);break;case"application/json":n=d(o(i));break;case"text/plain":try{n=d(o(i),!1)}catch{n=l(i)}break;case"multipart/form-data":{let t=r.get("content-type");if(!t)throw new Error("utils cannot call postToGetURL when missing content-type header");n=function(t,e){return function(t,e){let r=new URLSearchParams;t instanceof Uint8Array&&(t=(new TextDecoder).decode(t));try{let i=e.split("boundary=")[1],o=t.split(new RegExp("-*"+i+"-*","mi"));for(let t of o){let e=t.trim().match(/name="([^"]+)"\\r\\n\\r\\n(.*)/im);e&&r.set(e[1],e[2])}}catch{}return r}(t,e).toString()}(o(i),t);break}default:n=l(i)}return null!==n&&(t.url=function(t,e,r){if(!r)return t;let i=t.indexOf("?")>0?"&":"?";return`${t}${i}__wb_method=${r}&${e}`}(t.url,n,t.method),t.method="GET",t.requestBody=n,!0)}function u(t,e=!0){if("string"==typeof t)try{t=JSON.parse(t)}catch{t={}}let r=new URLSearchParams,i={};try{JSON.stringify(t,((t,e)=>(["object","function"].includes(typeof e)||r.set((t=>r.has(t)?(t in i||(i[t]=1),t+"."+ ++i[t]+"_"):t)(t),e),e)))}catch(t){if(!e)throw t}return r}function d(t,e=!0){return u(t,e).toString()}function f(e,i){if(!(this instanceof f))return new f(e,i);this.debug_rw=!1,this.$wbwindow=e,this.WBWindow=Window,this.origHost=e.location.host,this.origHostname=e.location.hostname,this.origProtocol=e.location.protocol,this.HTTP_PREFIX="http://",this.HTTPS_PREFIX="https://",this.REL_PREFIX="//",this.VALID_PREFIXES=[this.HTTP_PREFIX,this.HTTPS_PREFIX,this.REL_PREFIX],this.IGNORE_PREFIXES=["#","about:","data:","blob:","mailto:","javascript:","{","*"],"ignore_prefixes"in i&&(this.IGNORE_PREFIXES=this.IGNORE_PREFIXES.concat(i.ignore_prefixes)),this.WB_CHECK_THIS_FUNC="_____WB$wombat$check$this$function_____",this.WB_ASSIGN_FUNC="_____WB$wombat$assign$function_____",this.wb_setAttribute=e.Element.prototype.setAttribute,this.wb_getAttribute=e.Element.prototype.getAttribute,this.wb_funToString=Function.prototype.toString,this.WBAutoFetchWorker=null,this.wbUseAFWorker=i.enable_auto_fetch&&null!=e.Worker&&i.is_live,this.wb_rel_prefix="",this.wb_wombat_updating=!1,this.message_listeners=new t,this.storage_listeners=new t,this.linkAsTypes={script:"js_",worker:"js_",style:"cs_",image:"im_",document:"if_",fetch:"mp_",font:"oe_",audio:"oe_",video:"oe_",embed:"oe_",object:"oe_",track:"oe_","":"mp_",null:"mp_",undefined:"mp_"},this.linkTagMods={linkRelToAs:{import:this.linkAsTypes,preload:this.linkAsTypes},stylesheet:"cs_",null:"mp_",undefined:"mp_","":"mp_"},this.tagToMod={A:{href:"mp_"},AREA:{href:"mp_"},AUDIO:{src:"oe_",poster:"im_"},BASE:{href:"mp_"},EMBED:{src:"oe_"},FORM:{action:"mp_"},FRAME:{src:"fr_"},IFRAME:{src:"if_"},IMAGE:{href:"im_","xlink:href":"im_"},IMG:{src:"im_",srcset:"im_"},INPUT:{src:"oe_"},INS:{cite:"mp_"},META:{content:"mp_"},OBJECT:{data:"oe_",codebase:"oe_"},Q:{cite:"mp_"},SCRIPT:{src:"js_","xlink:href":"js_"},SOURCE:{src:"oe_",srcset:"oe_"},TRACK:{src:"oe_"},VIDEO:{src:"oe_",poster:"im_"},image:{href:"im_","xlink:href":"im_"}},this.URL_PROPS=["href","hash","pathname","host","hostname","protocol","origin","search","port"],this.wb_info=i,this.wb_opts=i.wombat_opts,this.wb_replay_prefix=i.prefix,this.wb_is_proxy=this.wb_info.proxy_magic||!this.wb_replay_prefix,this.wb_info.top_host=this.wb_info.top_host||"*",this.wb_curr_host=e.location.protocol+"//"+e.location.host,this.wb_info.wombat_opts=this.wb_info.wombat_opts||{},this.wb_orig_scheme=this.wb_info.wombat_scheme+"://",this.wb_orig_origin=this.wb_orig_scheme+this.wb_info.wombat_host,this.wb_abs_prefix=this.wb_replay_prefix,this.wb_capture_date_part="",!this.wb_info.is_live&&this.wb_info.wombat_ts&&(this.wb_capture_date_part="/"+this.wb_info.wombat_ts+"/"),this.BAD_PREFIXES=["http:"+this.wb_replay_prefix,"https:"+this.wb_replay_prefix,"http:/"+this.wb_replay_prefix,"https:/"+this.wb_replay_prefix],this.hostnamePortRe=/^[\\w-]+(\\.[\\w-_]+)+(:\\d+)(\\/|$)/,this.ipPortRe=/^\\d+\\.\\d+\\.\\d+\\.\\d+(:\\d+)?(\\/|$)/,this.workerBlobRe=/__WB_pmw\\(.*?\\)\\.(?=postMessage\\()/g,this.rmCheckThisInjectRe=/_____WB\\$wombat\\$check\\$this\\$function_____\\(.*?\\)/g,this.STYLE_REGEX=/(url\\s*\\(\\s*[\\\\"\']*)([^)\'"]+)([\\\\"\']*\\s*\\))/gi,this.IMPORT_REGEX=/(@import\\s*[\\\\"\']*)([^)\'";]+)([\\\\"\']*\\s*;?)/gi,this.IMPORT_JS_REGEX=/^(import\\s*\\([\'"]+)([^\'"]+)(["\'])/i,this.no_wombatRe=/WB_wombat_/g,this.srcsetRe=/\\s*(\\S*\\s+[\\d.]+[wx]),|(?:\\s*,(?:\\s+|(?=https?:)))/,this.cookie_path_regex=/\\bPath=\'?"?([^;\'"\\s]+)/i,this.cookie_domain_regex=/\\bDomain=([^;\'"\\s]+)/i,this.cookie_expires_regex=/\\bExpires=([^;\'"]+)/gi,this.SetCookieRe=/,(?![|])/,this.IP_RX=/^(\\d)+\\.(\\d)+\\.(\\d)+\\.(\\d)+$/,this.FullHTMLRegex=/^\\s*<(?:html|head|body|!doctype html)/i,this.IsTagRegex=/^\\s*0&&e.preserveMedia(r)}))},w.prototype.terminate=function(){this.worker.terminate()},w.prototype.justFetch=function(t){this.worker.postMessage({type:"fetch-all",values:t})},w.prototype.fetchAsPage=function(t,e,r){if(t){var i={"X-Wombat-History-Page":e};if(r){var o=encodeURIComponent(r.trim());r&&(i["X-Wombat-History-Title"]=o)}var n={url:t,options:{headers:i,cache:"no-store"}};this.justFetch([n])}},w.prototype.postMessage=function(t,e){if(e){var r=this;Promise.resolve().then((function(){r.worker.postMessage(t)}))}else this.worker.postMessage(t)},w.prototype.preserveSrcset=function(t,e){this.postMessage({type:"values",srcset:{value:t,mod:e,presplit:!0}},!0)},w.prototype.preserveDataSrcset=function(t){this.postMessage({type:"values",srcset:{value:t.dataset.srcset,mod:this.rwMod(t),presplit:!1}},!0)},w.prototype.preserveMedia=function(t){this.postMessage({type:"values",media:t},!0)},w.prototype.getSrcset=function(t){return this.wombat.wb_getAttribute?this.wombat.wb_getAttribute.call(t,"srcset"):t.getAttribute("srcset")},w.prototype.rwMod=function(t){switch(t.tagName){case"SOURCE":return t.parentElement&&"PICTURE"===t.parentElement.tagName?"im_":"oe_";case"IMG":return"im_"}return"oe_"},w.prototype.extractFromLocalDoc=function(){var t=this;Promise.resolve().then((function(){for(var e={type:"values",context:{docBaseURI:document.baseURI}},r=[],i=0,o=document.styleSheets;i=0||t.indexOf("ecmascript")>=0)&&(t.indexOf("json")>=0||t.indexOf("text/")>=0))},f.prototype.skipWrapScriptTextBasedOnText=function(t){if(!t||t.indexOf(this.WB_ASSIGN_FUNC)>=0||0===t.indexOf("<"))return!0;for(var e=["window","self","document","location","top","parent","frames","opener"],r=0;r=0)return!1;return!0},f.prototype.nodeHasChildren=function(t){if(!t)return!1;if("function"==typeof t.hasChildNodes)return t.hasChildNodes();var e=t.children||t.childNodes;return!!e&&e.length>0},f.prototype.rwModForElement=function(t,e){if(t){var r="mp_";if("LINK"===t.tagName&&"href"===e){if(t.rel){var i=t.rel.trim().toLowerCase(),o=this.wb_getAttribute.call(t,"as");if(o&&null!=this.linkTagMods.linkRelToAs[i])r=this.linkTagMods.linkRelToAs[i][o.toLowerCase()];else null!=this.linkTagMods[i]&&(r=this.linkTagMods[i])}}else{var n=this.tagToMod[t.tagName];null!=n&&(r=n[e])}return r}},f.prototype.removeWBOSRC=function(t){"SCRIPT"!==t.tagName||t.__$removedWBOSRC$__||(t.hasAttribute("__wb_orig_src")&&t.removeAttribute("__wb_orig_src"),t.__$removedWBOSRC$__=!0)},f.prototype.retrieveWBOSRC=function(t){var e;if("SCRIPT"===t.tagName&&!t.__$removedWBOSRC$__)return null==(e=this.wb_getAttribute?this.wb_getAttribute.call(t,"__wb_orig_src"):t.getAttribute("__wb_orig_src"))&&(t.__$removedWBOSRC$__=!0),e},f.prototype.wrapScriptTextJsProxy=function(t){return\'var _____WB$wombat$assign$function_____ = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; };\\nif (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } }\\n{\\nlet window = _____WB$wombat$assign$function_____("window");\\nlet globalThis = _____WB$wombat$assign$function_____("globalThis");\\nlet self = _____WB$wombat$assign$function_____("self");\\nlet document = _____WB$wombat$assign$function_____("document");\\nlet location = _____WB$wombat$assign$function_____("location");\\nlet top = _____WB$wombat$assign$function_____("top");\\nlet parent = _____WB$wombat$assign$function_____("parent");\\nlet frames = _____WB$wombat$assign$function_____("frames");\\nlet opener = _____WB$wombat$assign$function_____("opener");\\n{\\n\'+t.replace(this.DotPostMessageRe,".__WB_pmw(self.window)$1")+"\\n\\n}}"},f.prototype.watchElem=function(t,e){if(!this.$wbwindow.MutationObserver)return!1;new this.$wbwindow.MutationObserver((function(t,r){for(var i=0;i"},f.prototype.getFinalUrl=function(t,e,r){var i=t?this.wb_rel_prefix:this.wb_abs_prefix;return null==e&&(e=this.wb_info.mod),this.wb_info.is_live||(i+=this.wb_info.wombat_ts),"/"!==(i+=e)[i.length-1]&&(i+="/"),i+r},f.prototype.resolveRelUrl=function(t,e){var r=e||this.$wbwindow.document,i=this.makeParser(r.baseURI,r),o=i.href.lastIndexOf("#"),n=o>=0?i.href.substring(0,o):i.href,s=n.lastIndexOf("/");return s>=0&&s!==n.length-1?i.href=n.substring(0,s+1)+t:i.href=n+t,i.href},f.prototype.extractOriginalURL=function(t){if(!t)return"";if(this.wb_is_proxy)return t;var e,r=t.toString(),i=r;if(this.startsWithOneOf(i,this.IGNORE_PREFIXES))return i;if(i.startsWith(this.wb_info.static_prefix))return i;e=this.startsWith(i,this.wb_abs_prefix)?this.wb_abs_prefix.length:this.wb_rel_prefix&&this.startsWith(i,this.wb_rel_prefix)?this.wb_rel_prefix.length:this.wb_rel_prefix?1:0;var o=i.indexOf("/http",e);return o<0&&(o=i.indexOf("///",e)),o<0&&(o=i.indexOf("/blob:",e)),o<0&&(o=i.indexOf("/about:blank",e)),o>=0?i=i.substr(o+1):((o=i.indexOf(this.wb_replay_prefix))>=0&&(i=i.substr(o+this.wb_replay_prefix.length)),i.length>4&&"_"===i.charAt(2)&&"/"===i.charAt(3)&&(i=i.substr(4)),i===r||this.startsWithOneOf(i,this.VALID_PREFIXES)||this.startsWith(i,"blob:")||(i=this.wb_orig_scheme+i)),"/"===r.charAt(0)&&"/"!==r.charAt(1)&&this.startsWith(i,this.wb_orig_origin)&&(i=i.substr(this.wb_orig_origin.length)),this.startsWith(i,this.REL_PREFIX)?this.wb_info.wombat_scheme+":"+i:i},f.prototype.makeParser=function(t,e){var r=this.extractOriginalURL(t),i=e;return e||(i="about:blank"===this.$wbwindow.location.href&&this.$wbwindow.opener?this.$wbwindow.opener.document:this.$wbwindow.document),this._makeURLParser(r,i)},f.prototype._makeURLParser=function(t,e){try{return new this.$wbwindow.URL(t,e.baseURI)}catch(t){}var r=e.createElement("a");return r._no_rewrite=!0,r.href=t,r},f.prototype.defProp=function(t,e,r,i,o){var n=Object.getOwnPropertyDescriptor(t,e);if(n&&!n.configurable)return!1;if(!i)return!1;var s={configurable:!0,enumerable:o||!1,get:i};r&&(s.set=r);try{return Object.defineProperty(t,e,s),!0}catch(t){return console.warn("Failed to redefine property %s",e,t.message),!1}},f.prototype.defGetterProp=function(t,e,r,i){var o=Object.getOwnPropertyDescriptor(t,e);if(o&&!o.configurable)return!1;if(!r)return!1;try{return Object.defineProperty(t,e,{configurable:!0,enumerable:i||!1,get:r}),!0}catch(t){return console.warn("Failed to redefine property %s",e,t.message),!1}},f.prototype.getOrigGetter=function(t,e){var r;if(t.__lookupGetter__&&(r=t.__lookupGetter__(e)),!r&&Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(t,e);i&&(r=i.get)}return r},f.prototype.getOrigSetter=function(t,e){var r;if(t.__lookupSetter__&&(r=t.__lookupSetter__(e)),!r&&Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(t,e);i&&(r=i.set)}return r},f.prototype.getAllOwnProps=function(t){for(var e=[],r=Object.getOwnPropertyNames(t),i=0;i "+n),r.href=n}}},f.prototype.checkLocationChange=function(t,e){var r=typeof t,i=e?this.$wbwindow.__WB_replay_top.location:this.$wbwindow.location;"string"===r?this.updateLocation(t,i.href,i):"object"===r&&this.updateLocation(t.href,t._orig_href,i)},f.prototype.checkAllLocations=function(){if(this.wb_wombat_updating)return!1;this.wb_wombat_updating=!0,this.checkLocationChange(this.$wbwindow.WB_wombat_location,!1),this.$wbwindow.WB_wombat_location!=this.$wbwindow.__WB_replay_top.WB_wombat_location&&this.checkLocationChange(this.$wbwindow.__WB_replay_top.WB_wombat_location,!0),this.wb_wombat_updating=!1},f.prototype.proxyToObj=function(t){if(t)try{var e=t.__WBProxyRealObj__;if(e)return e}catch(t){}return t},f.prototype.objToProxy=function(t){if(t)try{var e=t._WB_wombat_obj_proxy;if(e)return e}catch(t){}return t},f.prototype.defaultProxyGet=function(t,e,r,i){switch(e){case"__WBProxyRealObj__":return t;case"location":case"WB_wombat_location":return t.WB_wombat_location;case"_WB_wombat_obj_proxy":return t._WB_wombat_obj_proxy;case"__WB_pmw":case this.WB_ASSIGN_FUNC:case this.WB_CHECK_THIS_FUNC:return t[e];case"origin":return t.WB_wombat_location.origin;case"constructor":return t.constructor}var o=t[e],n=typeof o;if("function"===n&&-1!==r.indexOf(e)){switch(e){case"requestAnimationFrame":case"cancelAnimationFrame":if(!this.isNativeFunction(o))return o;break;case"eval":if(this.isNativeFunction(o))return this.wrappedEval(o)}var s=i[e];return s&&s.original===o||(s={original:o,boundFn:o.bind(t)},i[e]=s),s.boundFn}return"object"===n&&o&&o._WB_wombat_obj_proxy?(o instanceof this.WBWindow&&this.initNewWindowWombat(o),o._WB_wombat_obj_proxy):o},f.prototype.setLoc=function(t,e){var r=this.makeParser(e,t.ownerDocument);t._orig_href=e,t._parser=r;var i=r.href;t._hash=r.hash,t._href=i,t._host=r.host,t._hostname=r.hostname,r.origin?t._origin=r.host?r.origin:"null":t._origin=r.protocol+"//"+r.hostname+(r.port?":"+r.port:""),t._pathname=r.pathname,t._port=r.port,t._protocol=r.protocol,t._search=r.search,Object.defineProperty||(t.href=i,t.hash=r.hash,t.host=t._host,t.hostname=t._hostname,t.origin=t._origin,t.pathname=t._pathname,t.port=t._port,t.protocol=t._protocol,t.search=t._search)},f.prototype.makeGetLocProp=function(t,e){var r=this;return function(){if(this._no_rewrite)return e.call(this,t);var i=e.call(this,"href");return"href"===t?r.extractOriginalURL(i):"ancestorOrigins"===t?[]:(this._orig_href!==i&&r.setLoc(this,i),this["_"+t])}},f.prototype.makeSetLocProp=function(t,e,r){var i=this;return function(o){if(this._no_rewrite)return e.call(this,t,o);if(this["_"+t]!==o){if(this["_"+t]=o,!this._parser){var n=r.call(this);this._parser=i.makeParser(n,this.ownerDocument)}var s=!1;if("href"===t&&"string"==typeof o)if(o&&this._parser instanceof URL)try{o=new URL(o,this._parser).href}catch(t){console.warn("Error resolving URL",t)}else o&&("."===o[0]||"#"===o[0]?o=i.resolveRelUrl(o,this.ownerDocument):"/"===o[0]&&(o.length>1&&"/"===o[1]?o=this._parser.protocol+o:(s=!0,o=WB_wombat_location.origin+o)));try{this._parser[t]=o}catch(e){console.log("Error setting "+t+" = "+o)}"hash"===t?(o=this._parser[t],e.call(this,"hash",o)):(s=s||o===this._parser.pathname,o=i.rewriteUrl(this._parser.href,s),e.call(this,"href",o))}}},f.prototype.styleReplacer=function(t,e,r,i,o,n){return e+this.rewriteUrl(r)+i},f.prototype.domConstructorErrorChecker=function(t,e,r,i){var o,n="number"==typeof i?i:1;if(t instanceof this.WBWindow?o="Failed to construct \'"+e+"\': Please use the \'new\' operator, this DOM object constructor cannot be called as a function.":r&&r.length=0)return o;if(0===o.indexOf(this.wb_rel_prefix)&&o.indexOf("http")>1){var a=o.indexOf(":/");return a>0&&"/"!==o[a+2]?o.substring(0,a+2)+"/"+o.substring(a+2):o}return this.getFinalUrl(!0,r,this.wb_orig_origin+o)}"."===o.charAt(0)&&(o=this.resolveRelUrl(o,i));var h=this.startsWithOneOf(o.toLowerCase(),this.VALID_PREFIXES);if(h){var w=this.replayTopHost,p=this.replayTopProtocol,c=h+w+"/";if(this.startsWith(o,c)){if(this.startsWith(o,this.wb_replay_prefix))return o;var l=p+"//",_=o.substring(c.length),u=!1;return _.indexOf(this.wb_rel_prefix)<0&&o.indexOf("/static/")<0&&(_=this.getFinalUrl(!0,r,WB_wombat_location.origin+"/"+_),u=!0),h!==l&&h!==this.REL_PREFIX&&(u=!0),u&&(o=e?"":l+w,_&&"/"!==_[0]&&(o+="/"),o+=_),o}return this.getFinalUrl(e,r,o)}return(h=this.startsWithOneOf(o,this.BAD_PREFIXES))?this.getFinalUrl(e,r,this.extractOriginalURL(o)):o},f.prototype.rewriteUrl=function(t,e,r,i){var o=this.rewriteUrl_(t,e,r,i);return this.debug_rw&&(t!==o?console.log("REWRITE: "+t+" -> "+o):console.log("NOT REWRITTEN "+t)),o},f.prototype.performAttributeRewrite=function(t,e,r,i){switch(e){case"innerHTML":case"outerHTML":return this.rewriteHtml(r);case"filter":return this.rewriteInlineStyle(r);case"style":return this.rewriteStyle(r);case"srcset":return this.rewriteSrcset(r,t)}if(i&&!this.startsWithOneOf(r,this.VALID_PREFIXES))return r;var o=this.rwModForElement(t,e);return this.wbUseAFWorker&&this.WBAutoFetchWorker&&this.isSavedDataSrcSrcset(t)&&this.WBAutoFetchWorker.preserveDataSrcset(t),this.rewriteUrl(r,!1,o,t.ownerDocument)},f.prototype.rewriteAttr=function(t,e,r){var i=!1;if(!t||!t.getAttribute||t._no_rewrite||t["_"+e])return i;var o=this.wb_getAttribute.call(t,e);if(!o||this.startsWith(o,"javascript:"))return i;var n=this.performAttributeRewrite(t,e,o,r);return n!==o&&(this.removeWBOSRC(t),this.wb_setAttribute.call(t,e,n),i=!0),i},f.prototype.noExceptRewriteStyle=function(t){try{return this.rewriteStyle(t)}catch(e){return t}},f.prototype.rewriteStyle=function(t){if(!t)return t;var e=t;return"object"==typeof t&&(e=t.toString()),"string"==typeof e?e.replace(this.STYLE_REGEX,this.styleReplacer).replace(this.IMPORT_REGEX,this.styleReplacer).replace(this.no_wombatRe,""):e},f.prototype.rewriteSrcset=function(t,e){if(!t)return"";for(var r=t.split(this.srcsetRe),i=[],o=this.rwModForElement(e,"srcset"),n=0;n=0){var o="javascript:";r=o+"window.parent._wb_wombat.initNewWindowWombat(window);"+i.substr(o.length)}return r||(r=this.rewriteUrl(i,!1,this.rwModForElement(t,e))),r!==i&&(this.wb_setAttribute.call(t,e,r),!0)},f.prototype.rewriteScript=function(t){if(t.hasAttribute("src")||!t.textContent||!this.$wbwindow.Proxy)return this.rewriteAttr(t,"src");if(this.skipWrapScriptBasedOnType(t.type))return!1;var e=t.textContent.trim();return!this.skipWrapScriptTextBasedOnText(e)&&(t.textContent=this.wrapScriptTextJsProxy(e),!0)},f.prototype.rewriteSVGElem=function(t){var e=this.rewriteAttr(t,"filter");return e=this.rewriteAttr(t,"style")||e,e=this.rewriteAttr(t,"xlink:href")||e,e=this.rewriteAttr(t,"href")||e,e=this.rewriteAttr(t,"src")||e},f.prototype.rewriteElem=function(t){var e=!1;if(!t)return e;if(t instanceof SVGElement)e=this.rewriteSVGElem(t);else switch(t.tagName){case"META":var r=this.wb_getAttribute.call(t,"http-equiv");r&&"content-security-policy"===r.toLowerCase()&&(this.wb_setAttribute.call(t,"http-equiv","_"+r),e=!0);break;case"STYLE":var i=this.rewriteStyle(t.textContent);t.textContent!==i&&(t.textContent=i,e=!0,this.wbUseAFWorker&&this.WBAutoFetchWorker&&null!=t.sheet&&this.WBAutoFetchWorker.deferredSheetExtraction(t.sheet));break;case"LINK":e=this.rewriteAttr(t,"href"),this.wbUseAFWorker&&"stylesheet"===t.rel&&this._addEventListener(t,"load",this.utilFns.wbSheetMediaQChecker);break;case"IMG":e=this.rewriteAttr(t,"src"),e=this.rewriteAttr(t,"srcset")||e,e=this.rewriteAttr(t,"style")||e,this.wbUseAFWorker&&this.WBAutoFetchWorker&&t.dataset.srcset&&this.WBAutoFetchWorker.preserveDataSrcset(t);break;case"OBJECT":if(this.wb_info.isSW&&t.parentElement&&"application/pdf"===t.getAttribute("type")){for(var o=this.$wbwindow.document.createElement("IFRAME"),n=0;n0;)for(var i=r.shift(),o=0;o"+r+"","text/html");if(!i||!this.nodeHasChildren(i.head)||!i.head.children[0].content)return r;var o=i.head.children[0];if(o._no_rewrite=!0,this.recurseRewriteElem(o.content)){var n=o.innerHTML;if(e){var s=o.content.children&&o.content.children[0];if(s){var a="";this.endsWith(n,a)&&!this.endsWith(r.toLowerCase(),a)&&(n=n.substring(0,n.length-a.length))}else if("<"!==r[0]||">"!==r[r.length-1])return void(this.write_buff+=r)}return n}return r},f.prototype.rewriteHtmlFull=function(t,e){var r=(new DOMParser).parseFromString(t,"text/html");if(!r)return t;for(var i=!1,o=0;o=0)r.documentElement._no_rewrite=!0,n=this.reconstructDocType(r.doctype)+r.documentElement.outerHTML;else{r.head._no_rewrite=!0,r.body._no_rewrite=!0;var s=this.nodeHasChildren(r.head),a=this.nodeHasChildren(r.body);if(n=(s?r.head.outerHTML:"")+(a?r.body.outerHTML:""),e)if(r.all.length>3){var h="";this.endsWith(n,h)&&!this.endsWith(t.toLowerCase(),h)&&(n=n.substring(0,n.length-h.length))}else if("<"!==t[0]||">"!==t[t.length-1])return void(this.write_buff+=t);n=this.reconstructDocType(r.doctype)+n}return n}return t},f.prototype.rewriteInlineStyle=function(t){var e;try{e=decodeURIComponent(t)}catch(r){e=t}if(e!==t){var r=this.rewriteStyle(e).split(",",2);return r[0]+","+encodeURIComponent(r[1])}return this.rewriteStyle(t)},f.prototype.rewriteCookie=function(t){var e=this,r=t.replace(this.wb_abs_prefix,"").replace(this.wb_rel_prefix,"");return r=r.replace(this.cookie_domain_regex,(function(t,i){var o={domain:i,cookie:r,wb_type:"cookie"};return e.sendTopMessage(o,!0),e.$wbwindow.location.hostname.indexOf(".")>=0&&!e.IP_RX.test(e.$wbwindow.location.hostname)?"Domain=."+e.$wbwindow.location.hostname:""})).replace(this.cookie_path_regex,(function(t,r){var i=e.rewriteUrl(r);return 0===i.indexOf(e.wb_curr_host)&&(i=i.substring(e.wb_curr_host.length)),"Path="+i})),"https:"!==e.$wbwindow.location.protocol&&(r=r.replace("secure","")),r.replace(",|",",")},f.prototype.rewriteWorker=function(t){if(!t)return t;var e=0===(t=t.toString()).indexOf("blob:"),r=0===t.indexOf("javascript:");if(!e&&!r){if(!this.startsWithOneOf(t,this.VALID_PREFIXES)&&!this.startsWith(t,"/")&&!this.startsWithOneOf(t,this.BAD_PREFIXES)){var i=this.resolveRelUrl(t,this.$wbwindow.document);return this.rewriteUrl(i,!1,"wkr_",this.$wbwindow.document)}return this.rewriteUrl(t,!1,"wkr_",this.$wbwindow.document)}var o=r?t.replace("javascript:",""):null;if(e){var n=new XMLHttpRequest;this.utilFns.XHRopen.call(n,"GET",t,!1),this.utilFns.XHRsend.call(n),o=n.responseText.replace(this.workerBlobRe,"").replace(this.rmCheckThisInjectRe,"this")}if(this.wb_info.static_prefix||this.wb_info.ww_rw_script){var s=this.$wbwindow.document.baseURI;o="(function() { self.importScripts(\'"+(this.wb_info.ww_rw_script||this.wb_info.static_prefix+"wombatWorkers.js")+"\'); new WBWombat({\'prefix\': \'"+this.wb_abs_prefix+"\', \'prefixMod\': \'"+this.wb_abs_prefix+"wkrf_/\', \'originalURL\': \'"+s+"\'}); })();"+o}var a=new Blob([o],{type:"application/javascript"});return URL.createObjectURL(a)},f.prototype.rewriteTextNodeFn=function(t,e,r){var i,o=this.proxyToObj(t);if(r.length>0&&o.parentElement&&"STYLE"===o.parentElement.tagName){i=new Array(r.length);var n=r.length-1;2===n?(i[0]=r[0],i[1]=r[1]):1===n&&(i[0]=r[0]),i[n]=this.rewriteStyle(r[n])}else i=r;return e.__WB_orig_apply?e.__WB_orig_apply(o,i):e.apply(o,i)},f.prototype.rewriteChildNodeFn=function(t,e,r){var i=this.proxyToObj(t);if(0===r.length)return e.call(i);var o=this.rewriteElementsInArguments(r);return e.__WB_orig_apply?e.__WB_orig_apply(i,o):e.apply(i,o)},f.prototype.rewriteInsertAdjHTMLOrElemArgs=function(t,e,r,i,o){var n=this.proxyToObj(t);return n._no_rewrite?e.call(n,r,i):o?e.call(n,r,this.rewriteHtml(i)):(this.rewriteElemComplete(i),e.call(n,r,i))},f.prototype.rewriteSetTimeoutInterval=function(t,e,r){var i=this.isString(r[0]),o=i?new Array(r.length):r;if(i){this.$wbwindow.Proxy?o[0]=this.wrapScriptTextJsProxy(r[0]):o[0]=r[0].replace(/\\blocation\\b/g,"WB_wombat_$&");for(var n=1;n(t.includes(r)&&(i=o.rewriteStyle(i)),e[r]=i,!0),get(t,i,n){var s=t[i];return"function"!=typeof s||"setProperty"!==i&&!o.isNativeFunction(s)?s:(r[i]||(r[i]=s.bind(e)),r[i])}})}))},f.prototype.overrideIframeContentAccess=function(t){if(this.$wbwindow.HTMLIFrameElement&&this.$wbwindow.HTMLIFrameElement.prototype){var e=this.$wbwindow.HTMLIFrameElement.prototype,r=this.getOrigGetter(e,t);if(r){var i=this.getOrigSetter(e,t),o=this;this.defProp(e,t,i,(function(){return o.initIframeWombat(this),o.objToProxy(r.call(this))})),e["_get_"+t]=r}}},f.prototype.overrideFramesAccess=function(t){if(!t.Proxy||t!==t.frames){t.__wb_frames=t.frames;var e=this,r=function(){for(var t=0;t0&&i(this.$wbwindow.CSSStyleValue,"parse"),this.$wbwindow.CSSStyleValue.parseAll&&this.$wbwindow.CSSStyleValue.parseAll.toString().indexOf("[native code]")>0&&i(this.$wbwindow.CSSStyleValue,"parseAll")}if(this.$wbwindow.CSSKeywordValue&&this.$wbwindow.CSSKeywordValue.prototype){var o=this.$wbwindow.CSSKeywordValue;this.$wbwindow.CSSKeywordValue=(t=this.$wbwindow.CSSKeywordValue,function(e){return r.domConstructorErrorChecker(this,"CSSKeywordValue",arguments),new t(r.rewriteStyle(e))}),this.$wbwindow.CSSKeywordValue.prototype=o.prototype,Object.defineProperty(this.$wbwindow.CSSKeywordValue.prototype,"constructor",{value:this.$wbwindow.CSSKeywordValue}),e(this.$wbwindow.CSSKeywordValue,"CSSKeywordValue")}if(this.$wbwindow.StylePropertyMap&&this.$wbwindow.StylePropertyMap.prototype){var n=this.$wbwindow.StylePropertyMap.prototype.set;this.$wbwindow.StylePropertyMap.prototype.set=function(){if(arguments.length<=1)return n.__WB_orig_apply?n.__WB_orig_apply(this,arguments):n.apply(this,arguments);var t=new Array(arguments.length);t[0]=arguments[0];for(var e=1;e")&&(e[0]=r.rewriteHtml(e[0]),i.type="text/html"),new t(e,i)}),this.$wbwindow.Blob.prototype=e.prototype}},f.prototype.initWSOverride=function(){this.$wbwindow.WebSocket&&this.$wbwindow.WebSocket.prototype&&(this.$wbwindow.WebSocket=function(t){function e(t,e){this.addEventListener=function(){},this.removeEventListener=function(){},this.close=function(){},this.send=function(t){console.log("ws send",t)},this.protocol=e&&e.length?e[0]:"",this.url=t,this.readyState=0}return e.CONNECTING=0,e.OPEN=1,e.CLOSING=2,e.CLOSED=3,e}(this.$wbwindow.WebSocket),Object.defineProperty(this.$wbwindow.WebSocket.prototype,"constructor",{value:this.$wbwindow.WebSocket}),e(this.$wbwindow.WebSocket,"WebSocket"))},f.prototype.initDocTitleOverride=function(){var t=this.getOrigGetter(this.$wbwindow.document,"title"),e=this.getOrigSetter(this.$wbwindow.document,"title"),r=this;this.defProp(this.$wbwindow.document,"title",(function(t){var i=e.call(this,t),o={wb_type:"title",title:t};return r.sendTopMessage(o),i}),t)},f.prototype.initFontFaceOverride=function(){if(this.$wbwindow.FontFace){var t,r=this,i=this.$wbwindow.FontFace;this.$wbwindow.FontFace=(t=this.$wbwindow.FontFace,function(e,i,o){r.domConstructorErrorChecker(this,"FontFace",arguments,2);var n=i;return null!=i&&(n="string"!=typeof i?r.rewriteInlineStyle(i.toString()):r.rewriteInlineStyle(i)),new t(e,n,o)}),this.$wbwindow.FontFace.prototype=i.prototype,Object.defineProperty(this.$wbwindow.FontFace.prototype,"constructor",{value:this.$wbwindow.FontFace}),e(this.$wbwindow.FontFace,"FontFace")}},f.prototype.initFixedRatio=function(t){try{this.$wbwindow.devicePixelRatio=t}catch(t){}if(Object.defineProperty)try{Object.defineProperty(this.$wbwindow,"devicePixelRatio",{value:t,writable:!1})}catch(t){}},f.prototype.initPaths=function(t){t.wombat_opts=t.wombat_opts||{},Object.assign(this.wb_info,t),this.wb_opts=t.wombat_opts,this.wb_replay_prefix=t.prefix,this.wb_is_proxy=t.proxy_magic||!this.wb_replay_prefix,this.wb_info.top_host=this.wb_info.top_host||"*",this.wb_curr_host=this.$wbwindow.location.protocol+"//"+this.$wbwindow.location.host,this.wb_info.wombat_opts=this.wb_info.wombat_opts||{},this.wb_orig_scheme=t.wombat_scheme+"://",this.wb_orig_origin=this.wb_orig_scheme+t.wombat_host,this.wb_abs_prefix=this.wb_replay_prefix,!t.is_live&&t.wombat_ts?this.wb_capture_date_part="/"+t.wombat_ts+"/":this.wb_capture_date_part="",this.initBadPrefixes(this.wb_replay_prefix),this.initCookiePreset()},f.prototype.initSeededRandom=function(t){this.$wbwindow.Math.seed=parseInt(t);var e=this;this.$wbwindow.Math.random=function(){return e.$wbwindow.Math.seed=(9301*e.$wbwindow.Math.seed+49297)%233280,e.$wbwindow.Math.seed/233280}},f.prototype.initHistoryOverrides=function(){this.overrideHistoryFunc("pushState"),this.overrideHistoryFunc("replaceState");var t=this;this.$wbwindow.addEventListener("popstate",(function(e){t.sendHistoryUpdate(t.$wbwindow.WB_wombat_location.href,t.$wbwindow.document.title)}))},f.prototype.initCookiePreset=function(){if(this.wb_info.presetCookie)for(var t=this.wb_info.presetCookie.split(";"),e=0;e2&&!this.__WB_xhr_open_arguments[2]&&-1===navigator.userAgent.indexOf("Firefox")&&(this.__WB_xhr_open_arguments[2]=!0,console.warn("wombat.js: Sync XHR not supported in SW-based replay in this browser, converted to async")),this._no_rewrite||(this.__WB_xhr_open_arguments[1]=i.rewriteUrl(this.__WB_xhr_open_arguments[1])),o.apply(this,this.__WB_xhr_open_arguments),!i.startsWith(this.__WB_xhr_open_arguments[1],"data:")){for(const[t,e]of this.__WB_xhr_headers.entries())n.call(this,t,e);n.call(this,"X-Pywb-Requested-With","XMLHttpRequest")}return s.call(this,t)}}else if(this.$wbwindow.XMLHttpRequest.prototype.open){var h=this.$wbwindow.XMLHttpRequest.prototype.open;this.utilFns.XHRopen=h,this.utilFns.XHRsend=this.$wbwindow.XMLHttpRequest.prototype.send,this.$wbwindow.XMLHttpRequest.prototype.open=function(t,e,r,o,n){var s=this._no_rewrite?e:i.rewriteUrl(e),a=!0;null==r||r||(a=!1),h.call(this,t,s,a,o,n),i.startsWith(s,"data:")||this.setRequestHeader("X-Pywb-Requested-With","XMLHttpRequest")}}if(this.$wbwindow.fetch){var w=this.$wbwindow.fetch;this.$wbwindow.fetch=function(t,e){var r=t,o=typeof t;if("string"===o)r=i.rewriteUrl(t);else if("object"===o&&t.url){var n=i.rewriteUrl(t.url);n!==t.url&&(r=new Request(n,e))}else"object"===o&&t.href&&(r=i.rewriteUrl(t.href));if(e||(e={}),void 0===e.credentials)try{e.credentials="include"}catch(t){}return w.call(i.proxyToObj(this),r,e)}}if(this.$wbwindow.Request&&this.$wbwindow.Request.prototype){var p=this.$wbwindow.Request;this.$wbwindow.Request=(t=this.$wbwindow.Request,function(e,r){i.domConstructorErrorChecker(this,"Request",arguments);var o=r||{},n=e,s=typeof e;switch(s){case"string":n=i.rewriteUrl(e);break;case"object":if(n=e,e.url){var a=i.rewriteUrl(e.url);a!==e.url&&(n=new t(a,e))}else e.href&&(n=i.rewriteUrl(e.toString(),!0))}return o.credentials="include",o.referrer&&(o.referrer=i.rewriteUrl(o.referrer)),new t(n,o)}),this.$wbwindow.Request.prototype=p.prototype,Object.defineProperty(this.$wbwindow.Request.prototype,"constructor",{value:this.$wbwindow.Request}),this.overridePropExtract(this.$wbwindow.Request.prototype,"url"),this.overridePropExtract(this.$wbwindow.Request.prototype,"referrer")}if(this.$wbwindow.Response&&this.$wbwindow.Response.prototype){var c=this.$wbwindow.Response.prototype.redirect;this.$wbwindow.Response.prototype.redirect=function(t,e){var r=i.rewriteUrl(t,!0,null,i.$wbwindow.document);return c.call(this,r,e)},this.overridePropExtract(this.$wbwindow.Response.prototype,"url")}if(this.$wbwindow.EventSource&&this.$wbwindow.EventSource.prototype){var l=this.$wbwindow.EventSource;this.$wbwindow.EventSource=(r=this.$wbwindow.EventSource,function(t,e){i.domConstructorErrorChecker(this,"EventSource",arguments);var o=t;return null!=t&&(o=i.rewriteUrl(t)),new r(o,e)}),this.$wbwindow.EventSource.prototype=l.prototype,Object.defineProperty(this.$wbwindow.EventSource.prototype,"constructor",{value:this.$wbwindow.EventSource}),e(this.$wbwindow.EventSource,"EventSource")}},f.prototype.initElementGetSetAttributeOverride=function(){if(!this.wb_opts.skip_setAttribute&&this.$wbwindow.Element&&this.$wbwindow.Element.prototype){var t=this,e=this.$wbwindow.Element.prototype;if(e.setAttribute){var r=e.setAttribute;e._orig_setAttribute=r,e.setAttribute=function(e,i){var o=i;if(e&&"string"==typeof o){var n=e.toLowerCase();if("LINK"===this.tagName&&"href"===n&&0===o.indexOf("data:text/css"))o=t.rewriteInlineStyle(i);else if("style"===n)o=t.rewriteStyle(i);else if("srcset"===n||"imagesrcset"===n&&"LINK"===this.tagName)o=t.rewriteSrcset(i,this);else{t.shouldRewriteAttr(this.tagName,n)&&(t.removeWBOSRC(this),this._no_rewrite||(o=t.rewriteUrl(i,!1,t.rwModForElement(this,n))))}}return r.call(this,e,o)}}if(e.getAttribute){var i=e.getAttribute;this.wb_getAttribute=i,e.getAttribute=function(e){var r=i.call(this,e);if(null===r)return r;var o=e;if(e&&(o=e.toLowerCase()),t.shouldRewriteAttr(this.tagName,o)){var n=t.retrieveWBOSRC(this);return n||t.extractOriginalURL(r)}return t.startsWith(o,"data-")&&t.startsWithOneOf(r,t.wb_prefixes)?t.extractOriginalURL(r):r}}}},f.prototype.initSvgImageOverrides=function(){if(this.$wbwindow.SVGImageElement){var t=this.$wbwindow.SVGImageElement.prototype,e=t.getAttribute,r=t.getAttributeNS,i=t.setAttribute,o=t.setAttributeNS,n=this;t.getAttribute=function(t){var r=e.call(this,t);return t.indexOf("xlink:href")>=0||"href"===t?n.extractOriginalURL(r):r},t.getAttributeNS=function(t,e){var i=r.call(this,t,e);return e.indexOf("xlink:href")>=0||"href"===e?n.extractOriginalURL(i):i},t.setAttribute=function(t,e){var r=e;return(t.indexOf("xlink:href")>=0||"href"===t)&&(r=n.rewriteUrl(e)),i.call(this,t,r)},t.setAttributeNS=function(t,e,r){var i=r;return(e.indexOf("xlink:href")>=0||"href"===e)&&(i=n.rewriteUrl(r)),o.call(this,t,e,i)}}},f.prototype.initCreateElementNSFix=function(){if(this.$wbwindow.document.createElementNS&&this.$wbwindow.Document.prototype.createElementNS){var t=this.$wbwindow.document.createElementNS,e=this,r=function(r,i){return t.call(e.proxyToObj(this),e.extractOriginalURL(r),i)};this.$wbwindow.Document.prototype.createElementNS=r,this.$wbwindow.document.createElementNS=r}},f.prototype.initInsertAdjacentElementHTMLOverrides=function(){var t=this.$wbwindow.Element;if(t&&t.prototype){var e=t.prototype,r=this.rewriteInsertAdjHTMLOrElemArgs;if(e.insertAdjacentHTML){var i=e.insertAdjacentHTML;e.insertAdjacentHTML=function(t,e){return r(this,i,t,e,!0)}}if(e.insertAdjacentElement){var o=e.insertAdjacentElement;e.insertAdjacentElement=function(t,e){return r(this,o,t,e,!1)}}}},f.prototype.initDomOverride=function(){var t=this.$wbwindow.Node;if(t&&t.prototype){var e=this.rewriteNodeFuncArgs;if(t.prototype.appendChild){var r=t.prototype.appendChild;t.prototype.appendChild=function(t,i){return e(this,r,t,i)}}if(t.prototype.insertBefore){var i=t.prototype.insertBefore;t.prototype.insertBefore=function(t,r){return e(this,i,t,r)}}if(t.prototype.replaceChild){var o=t.prototype.replaceChild;t.prototype.replaceChild=function(t,r){return e(this,o,t,r)}}this.overridePropToProxy(t.prototype,"ownerDocument"),this.overridePropToProxy(this.$wbwindow.HTMLHtmlElement.prototype,"parentNode"),this.overridePropToProxy(this.$wbwindow.Event.prototype,"target")}this.$wbwindow.Element&&this.$wbwindow.Element.prototype&&(this.overrideParentNodeAppendPrepend(this.$wbwindow.Element),this.overrideChildNodeInterface(this.$wbwindow.Element,!1)),this.$wbwindow.DocumentFragment&&this.$wbwindow.DocumentFragment.prototype&&this.overrideParentNodeAppendPrepend(this.$wbwindow.DocumentFragment)},f.prototype.initDocOverrides=function(t){if(Object.defineProperty){this.overrideReferrer(t),this.defGetterProp(t,"origin",(function(){return this.WB_wombat_location.origin})),this.defGetterProp(this.$wbwindow,"origin",(function(){return this.WB_wombat_location.origin}));var e=this;this.defProp(t,"domain",(function(t){var r=this.WB_wombat_location;r&&e.endsWith(r.hostname,t)&&(this.__wb_domain=t)}),(function(){return this.__wb_domain||this.WB_wombat_location.hostname}))}},f.prototype.initDocWriteOpenCloseOverride=function(){if(this.$wbwindow.DOMParser){var t=this.$wbwindow.Document.prototype,e=this.$wbwindow.document;this._writeBuff="";var r=this,i=e.write,o=function(){return d(this,i,u(arguments))};e.write=o,t.write=o;var n=e.writeln,s=function(){return d(this,n,u(arguments))};e.writeln=s,t.writeln=s;var a=e.open,h=function(){var t,e=r.proxyToObj(this);if(3===arguments.length){var i=r.rewriteUrl(arguments[0],!1,"mp_");t=a.call(e,i,arguments[1],arguments[2]),r.initNewWindowWombat(t,arguments[0])}else t=a.call(e),_()?r._writeBuff="":r.initNewWindowWombat(e.defaultView);return t};e.open=h,t.open=h;var w=e.close,p=function(){if(r._writeBuff)return r.blobUrlForIframe(r.$wbwindow.frameElement,r._writeBuff),void(r._writeBuff="");var t=r.proxyToObj(this);return r.initNewWindowWombat(t.defaultView),w.__WB_orig_apply?w.__WB_orig_apply(t,arguments):w.apply(t,arguments)};e.close=p,t.close=p;var c=this.getOrigGetter(t,"body"),l=this.getOrigSetter(t,"body");c&&l&&this.defProp(t,"body",(function(t){return t&&(t instanceof HTMLBodyElement||t instanceof HTMLFrameSetElement)&&r.rewriteElemComplete(t),l.call(r.proxyToObj(this),t)}),c)}function _(){return r.wb_info.isSW&&r.$wbwindow.frameElement}function u(t){return 0===t.length?"":1===t.length?t[0]:Array.prototype.join.call(t,"")}function d(t,e,i){r.$wbwindow;if(!_()){i=r.rewriteHtml(i,!0);var o=r.proxyToObj(t),n=e.call(o,i);return r.initNewWindowWombat(o.defaultView),n}r._writeBuff+=i}},f.prototype.initIframeWombat=function(t){var e;e=t._get_contentWindow?t._get_contentWindow.call(t):t.contentWindow;try{if(!e||e===this.$wbwindow||e._skip_wombat||e._wb_wombat)return}catch(t){return}var r=t.src;this.initNewWindowWombat(e,r)},f.prototype.initNewWindowWombat=function(t,e){var r=!1;if(t&&!t._wb_wombat){if(e&&""!==e&&!this.startsWithOneOf(e,["about:blank","javascript:"])||(r=!0),!r&&this.wb_info.isSW){var i=this.extractOriginalURL(e);("about:blank"===i||i.startsWith("srcdoc:")||i.startsWith("blob:"))&&(r=!0)}if(r){var o={};Object.assign(o,this.wb_info);var n=new f(t,o);t._wb_wombat=n.wombatInit()}else this.initProtoPmOrigin(t),this.initPostMessageOverride(t),this.initMessageEventOverride(t),this.initCheckThisFunc(t),this.initImportWrapperFunc(t)}},f.prototype.initTimeoutIntervalOverrides=function(){var t=this.rewriteSetTimeoutInterval;if(this.$wbwindow.setTimeout&&!this.$wbwindow.setTimeout.__$wbpatched$__){var e=this.$wbwindow.setTimeout;this.$wbwindow.setTimeout=function(){return t(this,e,arguments)},this.$wbwindow.setTimeout.__$wbpatched$__=!0}if(this.$wbwindow.setInterval&&!this.$wbwindow.setInterval.__$wbpatched$__){var r=this.$wbwindow.setInterval;this.$wbwindow.setInterval=function(){return t(this,r,arguments)},this.$wbwindow.setInterval.__$wbpatched$__=!0}},f.prototype.initWorkerOverrides=function(){var t,e,r=this;if(this.$wbwindow.Worker&&!this.$wbwindow.Worker._wb_worker_overridden){var i=this.$wbwindow.Worker;this.$wbwindow.Worker=(t=i,function(e,i){return r.domConstructorErrorChecker(this,"Worker",arguments),new t(r.rewriteWorker(e),i)}),this.$wbwindow.Worker.prototype=i.prototype,Object.defineProperty(this.$wbwindow.Worker.prototype,"constructor",{value:this.$wbwindow.Worker}),this.$wbwindow.Worker._wb_worker_overridden=!0}if(this.$wbwindow.SharedWorker&&!this.$wbwindow.SharedWorker.__wb_sharedWorker_overridden){var o=this.$wbwindow.SharedWorker;this.$wbwindow.SharedWorker=(e=o,function(t,i){return r.domConstructorErrorChecker(this,"SharedWorker",arguments),new e(r.rewriteWorker(t),i)}),this.$wbwindow.SharedWorker.prototype=o.prototype,Object.defineProperty(this.$wbwindow.SharedWorker.prototype,"constructor",{value:this.$wbwindow.SharedWorker}),this.$wbwindow.SharedWorker.__wb_sharedWorker_overridden=!0}if(this.$wbwindow.ServiceWorkerContainer&&this.$wbwindow.ServiceWorkerContainer.prototype&&this.$wbwindow.ServiceWorkerContainer.prototype.register){var n=this.$wbwindow.ServiceWorkerContainer.prototype.register;this.$wbwindow.ServiceWorkerContainer.prototype.register=function(t,e){var i=new URL(t,r.$wbwindow.document.baseURI).href,o=r.getPageUnderModifier();return e&&e.scope?e.scope=r.rewriteUrl(e.scope,!1,o):e={scope:r.rewriteUrl("/",!1,o)},n.call(this,r.rewriteUrl(i,!1,"sw_"),e)}}if(this.$wbwindow.Worklet&&this.$wbwindow.Worklet.prototype&&this.$wbwindow.Worklet.prototype.addModule&&!this.$wbwindow.Worklet.__wb_workerlet_overridden){var s=this.$wbwindow.Worklet.prototype.addModule;this.$wbwindow.Worklet.prototype.addModule=function(t,e){var i=r.rewriteUrl(t,!1,"js_");return s.call(this,i,e)},this.$wbwindow.Worklet.__wb_workerlet_overridden=!0}},f.prototype.initLocOverride=function(t,e,r){if(Object.defineProperty)for(var i=0;i=0&&i.splice(n,1)}return i}})}catch(t){console.log(t)}},f.prototype.initHashChange=function(){if(this.$wbwindow.__WB_top_frame){var t=this;this.$wbwindow.addEventListener("message",(function(e){if(e.data&&e.data.from_top){var r=e.data.message;r.wb_type&&"outer_hashchange"===r.wb_type&&t.$wbwindow.location.hash!=r.hash&&(t.$wbwindow.location.hash=r.hash)}})),this.$wbwindow.addEventListener("hashchange",(function(){var e={wb_type:"hashchange",hash:t.$wbwindow.location.hash};t.sendTopMessage(e)}))}},f.prototype.initPostMessageOverride=function(t){if(t.postMessage&&!t.__orig_postMessage){var e=t.postMessage,r=this;t.__orig_postMessage=e;var i=function(i,o,n,s){var a,h,w=r.proxyToObj(this);if(w||((w=t).__WB_source=t),w.__WB_source&&w.__WB_source.WB_wombat_location){var p=w.__WB_source;if(a=p.WB_wombat_location.origin,w.__WB_win_id||(w.__WB_win_id={},w.__WB_counter=0),!p.__WB_id){var c=w.__WB_counter;p.__WB_id=c+p.WB_wombat_location.href,w.__WB_counter+=1}w.__WB_win_id[p.__WB_id]=p,h=p.__WB_id,w.__WB_source=void 0}else a=window.WB_wombat_location.origin;var l=o;l===w.location.origin&&(l=a);var _={from:a,to_origin:l,src_id:h,message:i,from_top:s};if("*"!==o){if("null"===w.location.origin||""===w.location.origin)return;o=w.location.origin}return e.call(w,_,o,n)};t.postMessage=i,t.Window.prototype.postMessage=i;var o=null,n=(o=t.EventTarget&&t.EventTarget.prototype?t.EventTarget.prototype:t).addEventListener;o.addEventListener=function(t,e,i){var o,s=r.proxyToObj(this);if("message"===t?o=r.message_listeners.add_or_get(e,(function(){return c(e,s,r)})):"storage"===t?r.storage_listeners.add_or_get(e,(function(){return p(e,s)})):o=e,o)return n.call(s,t,o,i)};var s=o.removeEventListener;o.removeEventListener=function(t,e,i){var o,n=r.proxyToObj(this);if("message"===t?o=r.message_listeners.remove(e):"storage"===t?r.storage_listeners.remove(e):o=e,o)return s.call(n,t,o,i)};var a=function(e,i){var o=r.getOrigSetter(t,e);r.defProp(t,e,(function(t){this["__orig_"+e]=t;var n=r.proxyToObj(this),s=t?i(t,n,r):t;return o.call(n,s)}),(function(){return this["__orig_"+e]}))};a("onmessage",c),a("onstorage",p)}},f.prototype.initMessageEventOverride=function(t){t.MessageEvent&&!t.MessageEvent.prototype.__extended&&(this.addEventOverride("target"),this.addEventOverride("srcElement"),this.addEventOverride("currentTarget"),this.addEventOverride("eventPhase"),this.addEventOverride("path"),this.overridePropToProxy(t.MessageEvent.prototype,"source"),t.MessageEvent.prototype.__extended=!0)},f.prototype.initUIEventsOverrides=function(){this.overrideAnUIEvent("UIEvent"),this.overrideAnUIEvent("MouseEvent"),this.overrideAnUIEvent("TouchEvent"),this.overrideAnUIEvent("FocusEvent"),this.overrideAnUIEvent("KeyboardEvent"),this.overrideAnUIEvent("WheelEvent"),this.overrideAnUIEvent("InputEvent"),this.overrideAnUIEvent("CompositionEvent")},f.prototype.initOpenOverride=function(){var t=this.$wbwindow.open;this.$wbwindow.Window.prototype.open&&(t=this.$wbwindow.Window.prototype.open);var e=this,r=function(r,i,o){i&&(i=e.rewriteAttrTarget(i));var n=e.rewriteUrl(r,!1),s=t.call(e.proxyToObj(this),n,i,o);return e.initNewWindowWombat(s,r),s};this.$wbwindow.open=r,this.$wbwindow.Window.prototype.open&&(this.$wbwindow.Window.prototype.open=r);for(var i=0;i}\n */\nWBWombat.prototype.rewriteArgs = function(argsObj) {\n // recreate the original arguments object just with URLs rewritten\n var newArgObj = new Array(argsObj.length);\n for (var i = 0; i < newArgObj.length; i++) {\n newArgObj[i] = this.rewriteURL(argsObj[i]);\n }\n return newArgObj;\n};\n\n/**\n * Rewrites the input to one of the Fetch APIs\n * @param {*|string|Request} input\n * @return {*|string|Request}\n */\nWBWombat.prototype.rewriteFetchApi = function(input) {\n var rwInput = input;\n switch (typeof input) {\n case 'string':\n rwInput = this.rewriteURL(input);\n break;\n case 'object':\n if (input.url) {\n var new_url = this.rewriteURL(input.url);\n if (new_url !== input.url) {\n // not much we can do here Request.url is read only\n // https://developer.mozilla.org/en-US/docs/Web/API/Request/url\n rwInput = new Request(new_url, input);\n }\n } else if (input.href) {\n // it is likely that input is either self.location or self.URL\n // we cant do anything here so just let it go\n rwInput = input.href;\n }\n break;\n }\n return rwInput;\n};\n\n/**\n * Rewrites the input to one of the Cache APIs\n * @param {*|string|Request} request\n * @return {*|string|Request}\n */\nWBWombat.prototype.rewriteCacheApi = function(request) {\n var rwRequest = request;\n if (typeof request === 'string') {\n rwRequest = this.rewriteURL(request);\n }\n return rwRequest;\n};\n\n/**\n * Applies an override to the importScripts function\n * @see https://html.spec.whatwg.org/multipage/workers.html#dom-workerglobalscope-importscripts\n */\nWBWombat.prototype.initImportScriptsRewrite = function() {\n if (!self.importScripts) return;\n var wombat = this;\n var origImportScripts = self.importScripts;\n self.importScripts = function importScripts() {\n // rewrite the arguments object and call original function via fn.apply\n var rwArgs = wombat.rewriteArgs(arguments);\n return origImportScripts.apply(this, rwArgs);\n };\n};\n\n/**\n * Applies overrides to the XMLHttpRequest.open and XMLHttpRequest.responseURL\n * in order to ensure URLs are rewritten.\n *\n * Applies an override to window.fetch in order to rewrite URLs and URLs of\n * the supplied Request objects used as arguments to fetch.\n *\n * Applies overrides to window.Request, window.Response, window.EventSource,\n * and window.WebSocket in order to ensure URLs they operate on are rewritten.\n *\n * @see https://xhr.spec.whatwg.org/\n * @see https://fetch.spec.whatwg.org/\n * @see https://html.spec.whatwg.org/multipage/web-sockets.html#websocket\n * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#the-eventsource-interface\n */\nWBWombat.prototype.initHTTPOverrides = function() {\n var wombat = this;\n if (\n self.XMLHttpRequest &&\n self.XMLHttpRequest.prototype &&\n self.XMLHttpRequest.prototype.open\n ) {\n var oXHROpen = self.XMLHttpRequest.prototype.open;\n self.XMLHttpRequest.prototype.open = function open(\n method,\n url,\n async,\n user,\n password\n ) {\n var rwURL = wombat.rewriteURL(url);\n var openAsync = true;\n if (async != null && !async) openAsync = false;\n oXHROpen.call(this, method, rwURL, openAsync, user, password);\n if (rwURL.indexOf('data:') === -1) {\n this.setRequestHeader('X-Pywb-Requested-With', 'XMLHttpRequest');\n }\n };\n }\n\n if (self.fetch != null) {\n // this fetch is Worker.fetch\n var orig_fetch = self.fetch;\n self.fetch = function fetch(input, init_opts) {\n var rwInput = wombat.rewriteFetchApi(input);\n var newInitOpts = init_opts || {};\n newInitOpts['credentials'] = 'include';\n return orig_fetch.call(this, rwInput, newInitOpts);\n };\n }\n\n if (self.Request && self.Request.prototype) {\n var orig_request = self.Request;\n self.Request = (function(Request_) {\n return function Request(input, init_opts) {\n var newInitOpts = init_opts || {};\n var newInput = wombat.rewriteFetchApi(input);\n newInitOpts['credentials'] = 'include';\n return new Request_(newInput, newInitOpts);\n };\n })(self.Request);\n self.Request.prototype = orig_request.prototype;\n }\n\n if (self.Response && self.Response.prototype) {\n var originalRedirect = self.Response.prototype.redirect;\n self.Response.prototype.redirect = function redirect(url, status) {\n var rwURL = wombat.rewriteUrl(url);\n return originalRedirect.call(this, rwURL, status);\n };\n }\n\n if (self.EventSource && self.EventSource.prototype) {\n var origEventSource = self.EventSource;\n self.EventSource = (function(EventSource_) {\n return function EventSource(url, configuration) {\n var rwURL = url;\n if (url != null) {\n rwURL = wombat.rewriteUrl(url);\n }\n return new EventSource_(rwURL, configuration);\n };\n })(self.EventSource);\n self.EventSource.prototype = origEventSource.prototype;\n Object.defineProperty(self.EventSource.prototype, 'constructor', {\n value: self.EventSource\n });\n }\n\n if (self.WebSocket && self.WebSocket.prototype) {\n var origWebSocket = self.WebSocket;\n self.WebSocket = (function(WebSocket_) {\n return function WebSocket(url, configuration) {\n var rwURL = url;\n if (url != null) {\n rwURL = wombat.rewriteWSURL(url);\n }\n return new WebSocket_(rwURL, configuration);\n };\n })(self.WebSocket);\n self.WebSocket.prototype = origWebSocket.prototype;\n Object.defineProperty(self.WebSocket.prototype, 'constructor', {\n value: self.WebSocket\n });\n }\n};\n\n/**\n * Applies an override to Clients.openWindow and WindowClient.navigate that rewrites\n * the supplied URL that represents a controlled window\n * @see https://w3c.github.io/ServiceWorker/#window-client-interface\n * @see https://w3c.github.io/ServiceWorker/#clients-interface\n */\nWBWombat.prototype.initClientApisOverride = function() {\n var wombat = this;\n if (\n self.Clients &&\n self.Clients.prototype &&\n self.Clients.prototype.openWindow\n ) {\n var oClientsOpenWindow = self.Clients.prototype.openWindow;\n self.Clients.prototype.openWindow = function openWindow(url) {\n var rwURL = wombat.rewriteClientWindowURL(url);\n return oClientsOpenWindow.call(this, rwURL);\n };\n }\n\n if (\n self.WindowClient &&\n self.WindowClient.prototype &&\n self.WindowClient.prototype.navigate\n ) {\n var oWinClientNavigate = self.WindowClient.prototype.navigate;\n self.WindowClient.prototype.navigate = function navigate(url) {\n var rwURL = wombat.rewriteClientWindowURL(url, this);\n return oWinClientNavigate.call(this, rwURL);\n };\n }\n};\n\n/**\n * Applies overrides to the CacheStorage and Cache interfaces in order\n * to rewrite the URLs they operate on\n * @see https://w3c.github.io/ServiceWorker/#cachestorage\n * @see https://w3c.github.io/ServiceWorker/#cache-interface\n */\nWBWombat.prototype.initCacheApisOverride = function() {\n var wombat = this;\n if (\n self.CacheStorage &&\n self.CacheStorage.prototype &&\n self.CacheStorage.prototype.match\n ) {\n var oCacheStorageMatch = self.CacheStorage.prototype.match;\n self.CacheStorage.prototype.match = function match(request, options) {\n var rwRequest = wombat.rewriteCacheApi(request);\n return oCacheStorageMatch.call(this, rwRequest, options);\n };\n }\n\n if (self.Cache && self.Cache.prototype) {\n if (self.Cache.prototype.match) {\n var oCacheMatch = self.Cache.prototype.match;\n self.Cache.prototype.match = function match(request, options) {\n var rwRequest = wombat.rewriteCacheApi(request);\n return oCacheMatch.call(this, rwRequest, options);\n };\n }\n\n if (self.Cache.prototype.matchAll) {\n var oCacheMatchAll = self.Cache.prototype.matchAll;\n self.Cache.prototype.matchAll = function matchAll(request, options) {\n var rwRequest = wombat.rewriteCacheApi(request);\n return oCacheMatchAll.call(this, rwRequest, options);\n };\n }\n\n if (self.Cache.prototype.add) {\n var oCacheAdd = self.Cache.prototype.add;\n self.Cache.prototype.add = function add(request, options) {\n var rwRequest = wombat.rewriteCacheApi(request);\n return oCacheAdd.call(this, rwRequest, options);\n };\n }\n\n if (self.Cache.prototype.addAll) {\n var oCacheAddAll = self.Cache.prototype.addAll;\n self.Cache.prototype.addAll = function addAll(requests) {\n var rwRequests = requests;\n if (Array.isArray(requests)) {\n rwRequests = new Array(requests.length);\n for (var i = 0; i < requests.length; i++) {\n rwRequests[i] = wombat.rewriteCacheApi(requests[i]);\n }\n }\n return oCacheAddAll.call(this, rwRequests);\n };\n }\n\n if (self.Cache.prototype.put) {\n var oCachePut = self.Cache.prototype.put;\n self.Cache.prototype.put = function put(request, response) {\n var rwRequest = wombat.rewriteCacheApi(request);\n return oCachePut.call(this, rwRequest, response);\n };\n }\n\n if (self.Cache.prototype.delete) {\n var oCacheDelete = self.Cache.prototype.delete;\n self.Cache.prototype.delete = function newCacheDelete(request, options) {\n var rwRequest = wombat.rewriteCacheApi(request);\n return oCacheDelete.call(this, rwRequest, options);\n };\n }\n\n if (self.Cache.prototype.keys) {\n var oCacheKeys = self.Cache.prototype.keys;\n self.Cache.prototype.keys = function keys(request, options) {\n var rwRequest = wombat.rewriteCacheApi(request);\n return oCacheKeys.call(this, rwRequest, options);\n };\n }\n }\n};\n\nself.WBWombat = WBWombat;\n"}),r.injectScripts&&(r.injectScripts=r.injectScripts.map((t=>this.staticPrefix+"proxy/"+t))),this.collections=new i(o,n.get("root"),r),this.collections.loadAll(n.get("dbColl")),this.proxyOriginMode=!!n.get("proxyOriginMode"),this.api=new e(this.collections),this.apiPrefix=this.replayPrefix+"api/",this.allowRewrittenCache=!!n.get("allowCache"),this.stats=n.get("stats")?new Yy:null,self.addEventListener("install",(()=>{self.skipWaiting()})),self.addEventListener("activate",(t=>{t.waitUntil(self.clients.claim()),console.log("Activate!")})),self.addEventListener("fetch",(t=>{t.respondWith(this.handleFetch(t))})),self.addEventListener("message",(t=>{"reload_all"===t.data.msg_type&&t.waitUntil(this.collections.loadAll())}))}handleFetch(t){const e=t.request.url;if(this.proxyOriginMode)return this.getResponseFor(t.request,t);if(!e.startsWith(this.prefix))return"chrome-extension://invalid/"===e?S(t.request,"Invalid URL"):this.defaultFetch(t.request);if(this.collections.root&&e.slice(this.prefix.length).indexOf("/")<0)return this.defaultFetch(t.request);if(e.startsWith(this.staticPrefix+"proxy/"))return this.staticPathProxy(e,t.request);if(e.startsWith(this.replayPrefix)&&!e.startsWith(this.staticPrefix))return this.getResponseFor(t.request,t);const r=new URL(e);r.search="",r.hash="";const i=r.href;for(const t of this.staticData.keys())if(t===i){const{content:e,type:r}=this.staticData.get(t);return new Response(e,{headers:{"Content-Type":r}})}return("http:"==r.protocol||"https:"==r.protocol)&&r.pathname.indexOf("/",1)<0?this.handleOffline(t.request):this.defaultFetch(t.request)}staticPathProxy(t,e){return t=t.slice((this.staticPrefix+"proxy/").length),t=new URL(t,self.location.href).href,e=new Request(t),this.defaultFetch(e)}defaultFetch(t){const e={};return"only-if-cached"===t.cache&&"same-origin"!==t.mode&&(e.cache="default"),self.fetch(t,e)}async ensureCached(t){const e=await caches.open("wabac-offline");for(let r of t){r=new URL(r,self.location.href).href;let t=await e.match(r,{ignoreSearch:!0});if(!t)try{t=await this.defaultFetch(r),await e.put(r,t)}catch(t){console.warn(`Failed to Auto Cache: ${r}`,t)}}}async handleOffline(t){let e=null;const r=await caches.open("wabac-offline");try{e=await this.defaultFetch(t)}catch(i){return e=await r.match(t,{ignoreSearch:!0}),e||(e=S(t,"Sorry, this url was not cached for offline use")),e}if(t.url.startsWith(this.prefix+"?"))return e;if(200===e.status){const i=e.clone();await r.put(t,i)}else console.warn(`Not Cacheing ${t.url} - Status ${e.status}`);return e}async getResponseFor(t,e){if(!this.proxyOriginMode&&t.url.startsWith(this.apiPrefix))return this.stats&&t.url.startsWith(this.apiPrefix+"stats.json")?await this.stats.getStats(e):await this.api.apiResponse(t.url.slice(this.apiPrefix.length),t,e);await this.collections.inited;const r=v(t),i=t.headers.get("range");try{if(this.allowRewrittenCache&&!i){const e=await self.caches.match(t);if(e&&!!e.headers.get(bm)===r)return e}}catch(t){}let n=this.collections.root;n||(n=t.url.slice(this.replayPrefix.length).split("/",1)[0]);const s=await this.collections.getColl(n);if(!s||!this.proxyOriginMode&&!t.url.startsWith(s.prefix))return S(t);const o=this.proxyOriginMode?t.url:t.url.substring(s.prefix.length),a={isRoot:!!this.collections.root};this.proxyOriginMode&&(a.mod="id_",a.proxyOrigin=s.config.extraConfig.proxyOrigin,a.localOrigin=self.location.origin);const c=new mm(o,t,a);if(!c.url)return S(t,`Replay URL ${o} not found`);const l=await s.handleRequest(c,e);if(l){if(this.stats&&this.stats.updateStats(l.date,l.status,t,e),this.allowRewrittenCache&&200===l.status)try{const e=await self.caches.open("wabac-"+s.name);r&&l.headers.set(bm,"true");const i=l.clone();await e.put(t,i)}catch(t){console.warn(t)}return l}return i&&console.log("Not Found Range!: "+i),S(t)}}if(self.registration){const t=new Map,r=self.registration.scope;t.set(r,{type:"text/html",content:e}),t.set(r+"index.html",{type:"text/html",content:e});const i={injectScripts:["ruffle/ruffle.js"]};self.ipfsCustomPreload=!0,self.sw=new Em({staticData:t,defaultConfig:i})}else new Ky(self)})();var n=self;for(var s in i)n[s]=i[s];i.__esModule&&Object.defineProperty(n,"__esModule",{value:!0})})(); \ No newline at end of file +const Wg="crypto.algorithm";const jg="crypto.algorithmProvider";var zg;Uf.registerSingleton(jg,class{getAlgorithms(){return Uf.resolveAll(Wg)}toAsnAlgorithm(t){for(const e of this.getAlgorithms()){const r=e.toAsnAlgorithm(t);if(r)return r}if(/[0-9.]+/.test(t.name)){const e=new Oh({algorithm:t.name});if("parameters"in t){const r=t;e.parameters=r.parameters}return e}throw new Error("Cannot convert WebCrypto algorithm to ASN.1 algorithm")}toWebAlgorithm(t){for(const e of this.getAlgorithms()){const r=e.toWebAlgorithm(t);if(r)return r}return{name:t.algorithm,parameters:t.parameters}}});const Gg="1.3.36.3.3.2.8.1.1",qg=`${Gg}.1`,Qg=`${Gg}.2`,Vg=`${Gg}.3`,Kg=`${Gg}.4`,Yg=`${Gg}.5`,Jg=`${Gg}.6`,Xg=`${Gg}.7`,Zg=`${Gg}.8`,$g=`${Gg}.9`,tw=`${Gg}.10`,ew=`${Gg}.11`,rw=`${Gg}.12`,iw=`${Gg}.13`,nw=`${Gg}.14`,sw="brainpoolP160r1",ow="brainpoolP160t1",aw="brainpoolP192r1",cw="brainpoolP192t1",lw="brainpoolP224r1",uw="brainpoolP224t1",hw="brainpoolP256r1",pw="brainpoolP256t1",dw="brainpoolP320r1",fw="brainpoolP320t1",gw="brainpoolP384r1",ww="brainpoolP384t1",yw="brainpoolP512r1",mw="brainpoolP512t1",bw="ECDSA";let Aw=zg=class{toAsnAlgorithm(t){if(t.name.toLowerCase()===bw.toLowerCase())if("hash"in t){switch(("string"==typeof t.hash?t.hash:t.hash.name).toLowerCase()){case"sha-1":return Sd;case"sha-256":return Id;case"sha-384":return Cd;case"sha-512":return Rd}}else if("namedCurve"in t){let e="";switch(t.namedCurve){case"P-256":e=Ed;break;case"K-256":e=zg.SECP256K1;break;case"P-384":e=_d;break;case"P-521":e=vd;break;case sw:e=qg;break;case ow:e=Qg;break;case aw:e=Vg;break;case cw:e=Kg;break;case lw:e=Yg;break;case uw:e=Jg;break;case hw:e=Xg;break;case pw:e=Zg;break;case dw:e=$g;break;case fw:e=tw;break;case gw:e=ew;break;case ww:e=rw;break;case yw:e=iw;break;case mw:e=nw}if(e)return new Oh({algorithm:gd,parameters:Kl.serialize(new xd({namedCurve:e}))})}return null}toWebAlgorithm(t){switch(t.algorithm){case wd:return{name:bw,hash:{name:"SHA-1"}};case md:return{name:bw,hash:{name:"SHA-256"}};case bd:return{name:bw,hash:{name:"SHA-384"}};case Ad:return{name:bw,hash:{name:"SHA-512"}};case gd:if(!t.parameters)throw new TypeError("Cannot get required parameters from EC algorithm");switch(Kl.parse(t.parameters,xd).namedCurve){case Ed:return{name:bw,namedCurve:"P-256"};case zg.SECP256K1:return{name:bw,namedCurve:"K-256"};case _d:return{name:bw,namedCurve:"P-384"};case vd:return{name:bw,namedCurve:"P-521"};case qg:return{name:bw,namedCurve:sw};case Qg:return{name:bw,namedCurve:ow};case Vg:return{name:bw,namedCurve:aw};case Kg:return{name:bw,namedCurve:cw};case Yg:return{name:bw,namedCurve:lw};case Jg:return{name:bw,namedCurve:uw};case Xg:return{name:bw,namedCurve:hw};case Zg:return{name:bw,namedCurve:pw};case $g:return{name:bw,namedCurve:dw};case tw:return{name:bw,namedCurve:fw};case ew:return{name:bw,namedCurve:gw};case rw:return{name:bw,namedCurve:ww};case iw:return{name:bw,namedCurve:yw};case nw:return{name:bw,namedCurve:mw}}}return null}};Aw.SECP256K1="1.3.132.0.10",Aw=zg=hf([Ff()],Aw),Uf.registerSingleton(Wg,Aw);const Ew=Symbol("name"),_w=Symbol("value");class vw{constructor(t,e={},r=""){this[Ew]=t,this[_w]=r;for(const t in e)this[t]=e[t]}}vw.NAME=Ew,vw.VALUE=_w;class Tw{static toString(t){const e=this.items[t];return e||t}}Tw.items={[Qd]:"sha1",[Vd]:"sha224",[Kd]:"sha256",[Yd]:"sha384",[Jd]:"sha512",[Bd]:"rsaEncryption",[Fd]:"sha1WithRSAEncryption",[Hd]:"sha224WithRSAEncryption",[Wd]:"sha256WithRSAEncryption",[jd]:"sha384WithRSAEncryption",[zd]:"sha512WithRSAEncryption",[gd]:"ecPublicKey",[wd]:"ecdsaWithSHA1",[yd]:"ecdsaWithSHA224",[md]:"ecdsaWithSHA256",[bd]:"ecdsaWithSHA384",[Ad]:"ecdsaWithSHA512",[Ju]:"TLS WWW server authentication",[Xu]:"TLS WWW client authentication",[Zu]:"Code Signing",[$u]:"E-mail Protection",[th]:"Time Stamping",[eh]:"OCSP Signing","1.2.840.113549.1.7.2":"Signed Data"};class Sw{static serialize(t){return this.serializeObj(t).join("\n")}static pad(t=0){return"".padStart(2*t," ")}static serializeObj(t,e=0){const r=[];let i=this.pad(e++),n="";const s=t[vw.VALUE];s&&(n=` ${s}`),r.push(`${i}${t[vw.NAME]}:${n}`),i=this.pad(e);for(const n in t){if("symbol"==typeof n)continue;const s=t[n],o=n?`${n}: `:"";if("string"==typeof s||"number"==typeof s||"boolean"==typeof s)r.push(`${i}${o}${s}`);else if(s instanceof Date)r.push(`${i}${o}${s.toUTCString()}`);else if(Array.isArray(s))for(const t of s)t[vw.NAME]=n,r.push(...this.serializeObj(t,e));else if(s instanceof vw)s[vw.NAME]=n,r.push(...this.serializeObj(s,e));else if(Ko.vJ.isBufferSource(s))n?(r.push(`${i}${o}`),r.push(...this.serializeBufferSource(s,e+1))):r.push(...this.serializeBufferSource(s,e));else{if(!("toTextObject"in s))throw new TypeError("Cannot serialize data in text format. Unsupported type.");{const t=s.toTextObject();t[vw.NAME]=n,r.push(...this.serializeObj(t,e))}}}return r}static serializeBufferSource(t,e=0){const r=this.pad(e),i=Ko.vJ.toUint8Array(t),n=[];for(let t=0;t255)return!1}return!0}getField(t){const e=this.extraNames.findId(t)||Bw.findId(t),r=[];for(const t of this.asn)for(const i of t)i.type===e&&r.push(i.value.toString());return r}getName(t){return this.extraNames.get(t)||Bw.get(t)}toString(){return this.asn.map((t=>t.map((t=>{const e=this.getName(t.type)||t.type,r=t.value.anyValue?`#${Ko.ep.ToHex(t.value.anyValue)}`:function(t){return t.replace(/([,+"\\<>;])/g,"\\$1").replace(/^([ #])/,"\\$1").replace(/([ ]$)/,"\\$1").replace(/([\r\n\t])/,Dw)}(t.value.toString());return`${e}=${r}`})).join("+"))).join(", ")}toJSON(){var t;const e=[];for(const r of this.asn){const i={};for(const e of r){const r=this.getName(e.type)||e.type;null!==(t=i[r])&&void 0!==t||(i[r]=[]),i[r].push(e.value.anyValue?`#${Ko.ep.ToHex(e.value.anyValue)}`:e.value.toString())}e.push(i)}return e}fromString(t){const e=new ou,r=/(\d\.[\d.]*\d|[A-Za-z]+)=((?:"")|(?:".*?[^\\]")|(?:[^,+].*?(?:[^\\][,+]))|(?:))([,+])?/g;let i=null,n=",";for(;i=r.exec(`${t},`);){let[,t,r]=i;const s=r[r.length-1];","!==s&&"+"!==s||(r=r.slice(0,r.length-1),i[3]=s);const o=i[3];if(/[\d.]+/.test(t)||(t=this.getName(t)||""),!t)throw new Error(`Cannot get OID for name type '${t}'`);const a=new iu({type:t});if("#"===r.charAt(0))a.value.anyValue=Ko.ep.FromHex(r.slice(1));else{const e=/"(.*?[^\\])?"/.exec(r);e&&(r=e[1]),r=r.replace(/\\0a/gi,"\n").replace(/\\0d/gi,"\r").replace(/\\0g/gi,"\t").replace(/\\(.)/g,"$1"),t===this.getName("E")||t===this.getName("DC")?a.value.ia5String=r:Lw.isASCII(r)?a.value.printableString=r:a.value.utf8String=r}"+"===n?e[e.length-1].push(a):e.push(new nu([a])),n=o}return e}fromJSON(t){const e=new ou;for(const r of t){const t=new nu;for(const e in r){let i=e;if(/[\d.]+/.test(e)||(i=this.getName(e)||""),!i)throw new Error(`Cannot get OID for name type '${e}'`);const n=r[e];for(const e of n){const r=new iu({type:i});if("object"==typeof e)for(const t in e)switch(t){case"ia5String":r.value.ia5String=e[t];break;case"utf8String":r.value.utf8String=e[t];break;case"universalString":r.value.universalString=e[t];break;case"bmpString":r.value.bmpString=e[t];break;case"printableString":r.value.printableString=e[t]}else"#"===e[0]?r.value.anyValue=Ko.ep.FromHex(e.slice(1)):i===this.getName("E")||i===this.getName("DC")?r.value.ia5String=e:r.value.printableString=e;t.push(r)}}e.push(t)}return e}toArrayBuffer(){return Kl.serialize(this.asn)}async getThumbprint(...t){var e;let r,i="SHA-1";return t.length>=1&&!(null===(e=t[0])||void 0===e?void 0:e.subtle)?(i=t[0]||i,r=t[1]||Nw.get()):r=t[0]||Nw.get(),await r.subtle.digest(i,this.toArrayBuffer())}}const Pw="Cannot initialize GeneralName from ASN.1 data.",Uw=`${Pw} Unsupported string format in use.`,Mw=`${Pw} Value doesn't match to GUID regular expression.`,Fw=/^([0-9a-f]{8})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{12})$/i,Hw="1.3.6.1.4.1.311.25.1",Ww="1.3.6.1.4.1.311.20.2.3",jw="dns",zw="dn",Gw="email",qw="ip",Qw="url",Vw="guid",Kw="upn",Yw="id";class Jw extends Iw{constructor(...t){let e;if(2===t.length)switch(t[0]){case zw:{const r=new Lw(t[1]).toArrayBuffer(),i=Kl.parse(r,ou);e=new uu({directoryName:i});break}case jw:e=new uu({dNSName:t[1]});break;case Gw:e=new uu({rfc822Name:t[1]});break;case Vw:{const r=new RegExp(Fw,"i").exec(t[1]);if(!r)throw new Error("Cannot parse GUID value. Value doesn't match to regular expression");const i=r.slice(1).map(((t,e)=>e<3?Ko.ep.ToHex(new Uint8Array(Ko.ep.FromHex(t)).reverse()):t)).join("");e=new uu({otherName:new cu({typeId:Hw,value:Kl.serialize(new hl(Ko.ep.FromHex(i)))})});break}case qw:e=new uu({iPAddress:t[1]});break;case Yw:e=new uu({registeredID:t[1]});break;case Kw:e=new uu({otherName:new cu({typeId:Ww,value:Kl.serialize(_l.toASN(t[1]))})});break;case Qw:e=new uu({uniformResourceIdentifier:t[1]});break;default:throw new Error("Cannot create GeneralName. Unsupported type of the name")}else e=Ko.vJ.isBufferSource(t[0])?Kl.parse(t[0],uu):t[0];super(e)}onInit(t){if(null!=t.dNSName)this.type=jw,this.value=t.dNSName;else if(null!=t.rfc822Name)this.type=Gw,this.value=t.rfc822Name;else if(null!=t.iPAddress)this.type=qw,this.value=t.iPAddress;else if(null!=t.uniformResourceIdentifier)this.type=Qw,this.value=t.uniformResourceIdentifier;else if(null!=t.registeredID)this.type=Yw,this.value=t.registeredID;else if(null!=t.directoryName)this.type=zw,this.value=new Lw(t.directoryName).toString();else{if(null==t.otherName)throw new Error(Uw);if(t.otherName.typeId===Hw){this.type=Vw;const e=Kl.parse(t.otherName.value,hl),r=new RegExp(Fw,"i").exec(Ko.ep.ToHex(e));if(!r)throw new Error(Mw);this.value=r.slice(1).map(((t,e)=>e<3?Ko.ep.ToHex(new Uint8Array(Ko.ep.FromHex(t)).reverse()):t)).join("-")}else{if(t.otherName.typeId!==Ww)throw new Error(Uw);this.type=Kw,this.value=Kl.parse(t.otherName.value,eu).toString()}}}toJSON(){return{type:this.type,value:this.value}}toTextObject(){let t;switch(this.type){case zw:case jw:case Vw:case qw:case Yw:case Kw:case Qw:t=this.type.toUpperCase();break;case Gw:t="Email";break;default:throw new Error("Unsupported GeneralName type")}let e=this.value;return this.type===Yw&&(e=Tw.toString(e)),new vw(t,void 0,e)}}class Xw extends Iw{constructor(t){let e;if(t instanceof _u)e=t;else if(Array.isArray(t)){const r=[];for(const e of t)if(e instanceof uu)r.push(e);else{const t=Kl.parse(new Jw(e.type,e.value).rawData,uu);r.push(t)}e=new _u(r)}else{if(!Ko.vJ.isBufferSource(t))throw new Error("Cannot initialize GeneralNames. Incorrect incoming arguments");e=Kl.parse(t,_u)}super(e)}onInit(t){const e=[];for(const r of t){let t=null;try{t=new Jw(r)}catch{continue}e.push(t)}this.items=e}toJSON(){return this.items.map((t=>t.toJSON()))}toTextObject(){const t=super.toTextObjectEmpty();for(const e of this.items){const r=e.toTextObject();let i=t[r[vw.NAME]];Array.isArray(i)||(i=[],t[r[vw.NAME]]=i),i.push(r)}return t}}Xw.NAME="GeneralNames";const Zw="\\n",$w="-{5}BEGIN ([^\\n]+(?=-{5}))-{5}\\n(?:((?:[^:\\n]+: (?:[^\\n]+\\n(?: +[^\\n]+\\n)*))+))?\\n?((?:[a-zA-Z0-9=+/]+\\n)+)-{5}END \\1-{5}";class ty{static isPem(t){return"string"==typeof t&&new RegExp($w,"g").test(t)}static decodeWithHeaders(t){t=t.replace(/\r/g,"");const e=new RegExp($w,"g"),r=[];let i=null;for(;i=e.exec(t);){const t=i[3].replace(new RegExp("[\\n]+","g"),""),e={type:i[1],headers:[],rawData:Ko.ep.FromBase64(t)},n=i[2];if(n){const t=n.split(new RegExp(Zw,"g"));let r=null;for(const i of t){const[t,n]=i.split(/:(.*)/);if(void 0===n){if(!r)throw new Error("Cannot parse PEM string. Incorrect header value");r.value+=t.trim()}else r&&e.headers.push(r),r={key:t,value:n.trim()}}r&&e.headers.push(r)}r.push(e)}return r}static decode(t){return this.decodeWithHeaders(t).map((t=>t.rawData))}static decodeFirst(t){const e=this.decode(t);if(!e.length)throw new RangeError("PEM string doesn't contain any objects");return e[0]}static encode(t,e){if(Array.isArray(t)){const r=new Array;return e?t.forEach((t=>{if(!Ko.vJ.isBufferSource(t))throw new TypeError("Cannot encode array of BufferSource in PEM format. Not all items of the array are BufferSource");r.push(this.encodeStruct({type:e,rawData:Ko.vJ.toArrayBuffer(t)}))})):t.forEach((t=>{if(!("type"in t))throw new TypeError("Cannot encode array of PemStruct in PEM format. Not all items of the array are PemStrut");r.push(this.encodeStruct(t))})),r.join("\n")}if(!e)throw new Error("Required argument 'tag' is missed");return this.encodeStruct({type:e,rawData:Ko.vJ.toArrayBuffer(t)})}static encodeStruct(t){var e;const r=t.type.toLocaleUpperCase(),i=[];if(i.push(`-----BEGIN ${r}-----`),null===(e=t.headers)||void 0===e?void 0:e.length){for(const e of t.headers)i.push(`${e.key}: ${e.value}`);i.push("")}const n=Ko.ep.ToBase64(t.rawData);let s,o=0;const a=Array();for(;o1?(i=t[0]||i,r=t[1]||r,e=t[2]||Nw.get()):e=t[0]||Nw.get(),e.subtle.importKey("spki",this.rawData,i,!0,r)}onInit(t){const e=Uf.resolve(jg),r=this.algorithm=e.toWebAlgorithm(t.algorithm);switch(t.algorithm.algorithm){case Bd:{const e=Kl.parse(t.subjectPublicKey,uf),i=Ko.vJ.toUint8Array(e.modulus);r.publicExponent=Ko.vJ.toUint8Array(e.publicExponent),r.modulusLength=(i[0]?i:i.slice(1)).byteLength<<3;break}}}async getThumbprint(...t){var e;let r,i="SHA-1";return t.length>=1&&!(null===(e=t[0])||void 0===e?void 0:e.subtle)?(i=t[0]||i,r=t[1]||Nw.get()):r=t[0]||Nw.get(),await r.subtle.digest(i,this.rawData)}async getKeyIdentifier(t){t||(t=Nw.get());const e=Kl.parse(this.rawData,kh);return await t.subtle.digest("SHA-1",e.subjectPublicKey)}toTextObject(){const t=this.toTextObjectEmpty(),e=Kl.parse(this.rawData,kh);if(t.Algorithm=Sw.serializeAlgorithm(e.algorithm),e.algorithm.algorithm===gd)t["EC Point"]=e.subjectPublicKey;else t["Raw Data"]=e.subjectPublicKey;return t}}class iy{static register(t,e){this.items.set(t,e)}static create(t){const e=new Cw(t),r=this.items.get(e.type);return r?new r(t):e}}iy.items=new Map;const ny="crypto.signatureFormatter";class sy extends ey{constructor(t){ey.isAsnEncoded(t)?super(t,Wh):super(t),this.tag=ty.CertificateTag}onInit(t){const e=t.tbsCertificate;this.tbs=Kl.serialize(e),this.serialNumber=Ko.ep.ToHex(e.serialNumber),this.subjectName=new Lw(e.subject),this.subject=new Lw(e.subject).toString(),this.issuerName=new Lw(e.issuer),this.issuer=this.issuerName.toString();const r=Uf.resolve(jg);this.signatureAlgorithm=r.toWebAlgorithm(t.signatureAlgorithm),this.signature=t.signatureValue;const i=e.validity.notBefore.utcTime||e.validity.notBefore.generalTime;if(!i)throw new Error("Cannot get 'notBefore' value");this.notBefore=i;const n=e.validity.notAfter.utcTime||e.validity.notAfter.generalTime;if(!n)throw new Error("Cannot get 'notAfter' value");this.notAfter=n,this.extensions=[],e.extensions&&(this.extensions=e.extensions.map((t=>iy.create(Kl.serialize(t))))),this.publicKey=new ry(e.subjectPublicKeyInfo)}getExtension(t){for(const e of this.extensions)if("string"==typeof t){if(e.type===t)return e}else if(e instanceof t)return e;return null}getExtensions(t){return this.extensions.filter((e=>"string"==typeof t?e.type===t:e instanceof t))}async verify(t={},e=Nw.get()){let r,i;const n=t.publicKey;try{if(n)if("publicKey"in n)r={...n.publicKey.algorithm,...this.signatureAlgorithm},i=await n.publicKey.export(r,["verify"]);else if(n instanceof ry)r={...n.algorithm,...this.signatureAlgorithm},i=await n.export(r,["verify"]);else if(Ko.vJ.isBufferSource(n)){const t=new ry(n);r={...t.algorithm,...this.signatureAlgorithm},i=await t.export(r,["verify"])}else r={...n.algorithm,...this.signatureAlgorithm},i=n;else r={...this.publicKey.algorithm,...this.signatureAlgorithm},i=await this.publicKey.export(r,["verify"],e)}catch(t){return!1}const s=Uf.resolveAll(ny).reverse();let o=null;for(const t of s)if(o=t.toWebSignature(r,this.signature),o)break;if(!o)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");const a=await e.subtle.verify(this.signatureAlgorithm,i,o,this.tbs);if(t.signatureOnly)return a;{const e=(t.date||new Date).getTime();return a&&this.notBefore.getTime()t))}else{const e=new Yu(t[0]);super(Ku,t[1],Kl.serialize(e)),this.usages=t[0]}}toTextObject(){const t=this.toTextObjectWithoutValue();return t[""]=this.usages.map((t=>Tw.toString(t))).join(", "),t}}uy.NAME="Extended Key Usages",function(t){t[t.digitalSignature=1]="digitalSignature",t[t.nonRepudiation=2]="nonRepudiation",t[t.keyEncipherment=4]="keyEncipherment",t[t.dataEncipherment=8]="dataEncipherment",t[t.keyAgreement=16]="keyAgreement",t[t.keyCertSign=32]="keyCertSign",t[t.cRLSign=64]="cRLSign",t[t.encipherOnly=128]="encipherOnly",t[t.decipherOnly=256]="decipherOnly"}(ly||(ly={}));class hy extends Cw{constructor(...t){if(Ko.vJ.isBufferSource(t[0])){super(t[0]);const e=Kl.parse(this.value,lh);this.usages=e.toNumber()}else{const e=new lh(t[0]);super(oh,t[1],Kl.serialize(e)),this.usages=t[0]}}toTextObject(){const t=this.toTextObjectWithoutValue(),e=Kl.parse(this.value,lh);return t[""]=e.toJSON().join(", "),t}}hy.NAME="Key Usages";class py extends Cw{constructor(...t){if(Ko.vJ.isBufferSource(t[0])){super(t[0]);const e=Kl.parse(this.value,Th);this.keyId=Ko.ep.ToHex(e)}else{const e="string"==typeof t[0]?Ko.ep.FromHex(t[0]):t[0],r=new Th(e);super(vh,t[1],Kl.serialize(r)),this.keyId=Ko.ep.ToHex(e)}}static async create(t,e=!1,r=Nw.get()){let i;i=t instanceof ry?t.rawData:"publicKey"in t?t.publicKey.rawData:Ko.vJ.isBufferSource(t)?t:await r.subtle.exportKey("spki",t);const n=new ry(i),s=await n.getKeyIdentifier(r);return new py(Ko.ep.ToHex(s),e)}toTextObject(){const t=this.toTextObjectWithoutValue(),e=Kl.parse(this.value,Th);return t[""]=e,t}}py.NAME="Subject Key Identifier";class dy extends Cw{constructor(...t){Ko.vJ.isBufferSource(t[0])?super(t[0]):super(mh,t[1],new Xw(t[0]||[]).rawData)}onInit(t){super.onInit(t);const e=Kl.parse(t.extnValue,bh);this.names=new Xw(e)}toTextObject(){const t=this.toTextObjectWithoutValue(),e=this.names.toTextObject();for(const r in e)t[r]=e[r];return t}}dy.NAME="Subject Alternative Name";class fy extends Cw{constructor(...t){var e;if(Ko.vJ.isBufferSource(t[0])){super(t[0]);const e=Kl.parse(this.value,Bu);this.policies=e.map((t=>t.policyIdentifier))}else{const r=t[0],i=null!==(e=t[1])&&void 0!==e&&e,n=new Bu(r.map((t=>new ku({policyIdentifier:t}))));super(Iu,i,Kl.serialize(n)),this.policies=r}}toTextObject(){const t=this.toTextObjectWithoutValue();return t.Policy=this.policies.map((t=>new vw("",{},Tw.toString(t)))),t}}fy.NAME="Certificate Policies",iy.register(Iu,fy);class gy extends Iw{constructor(...t){let e;if(Ko.vJ.isBufferSource(t[0]))e=Ko.vJ.toArrayBuffer(t[0]);else{const r=t[0],i=Array.isArray(t[1])?t[1].map((t=>Ko.vJ.toArrayBuffer(t))):[];e=Kl.serialize(new Ah({type:r,values:i}))}super(e,Ah)}onInit(t){this.type=t.type,this.values=t.values}toTextObject(){const t=this.toTextObjectWithoutValue();return t.Value=this.values.map((t=>new vw("",{"":t}))),t}toTextObjectWithoutValue(){const t=this.toTextObjectEmpty();return t[vw.NAME]===gy.NAME&&(t[vw.NAME]=Tw.toString(this.type)),t}}gy.NAME="Attribute";class wy extends gy{constructor(...t){var e;if(Ko.vJ.isBufferSource(t[0]))super(t[0]);else{const e=new Og({printableString:t[0]});super(pg,[Kl.serialize(e)])}null!==(e=this.password)&&void 0!==e||(this.password="")}onInit(t){if(super.onInit(t),this.values[0]){const t=Kl.parse(this.values[0],Og);this.password=t.toString()}}toTextObject(){const t=this.toTextObjectWithoutValue();return t[vw.VALUE]=this.password,t}}wy.NAME="Challenge Password";class yy extends gy{constructor(...t){var e;if(Ko.vJ.isBufferSource(t[0]))super(t[0]);else{const e=t[0],r=new Uh;for(const t of e)r.push(Kl.parse(t.rawData,Ph));super(dg,[Kl.serialize(r)])}null!==(e=this.items)&&void 0!==e||(this.items=[])}onInit(t){if(super.onInit(t),this.values[0]){const t=Kl.parse(this.values[0],Uh);this.items=t.map((t=>iy.create(Kl.serialize(t))))}}toTextObject(){const t=this.toTextObjectWithoutValue(),e=this.items.map((t=>t.toTextObject()));for(const r of e)t[r[vw.NAME]]=r;return t}}yy.NAME="Extensions";class my{static register(t,e){this.items.set(t,e)}static create(t){const e=new gy(t),r=this.items.get(e.type);return r?new r(t):e}}my.items=new Map;let by=class{toAsnAlgorithm(t){if("rsassa-pkcs1-v1_5"===t.name.toLowerCase()){if(!t.hash)return new Oh({algorithm:Bd,parameters:null});switch(t.hash.name.toLowerCase()){case"sha-1":return new Oh({algorithm:Fd,parameters:null});case"sha-256":return new Oh({algorithm:Wd,parameters:null});case"sha-384":return new Oh({algorithm:jd,parameters:null});case"sha-512":return new Oh({algorithm:zd,parameters:null})}}return null}toWebAlgorithm(t){switch(t.algorithm){case Bd:return{name:"RSASSA-PKCS1-v1_5"};case Fd:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case Wd:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case jd:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case zd:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}}}return null}};by=hf([Ff()],by),Uf.registerSingleton(Wg,by);class Ay{addPadding(t,e){const r=Ko.vJ.toUint8Array(e),i=new Uint8Array(t);return i.set(r,t-r.length),i}removePadding(t,e=!1){let r=Ko.vJ.toUint8Array(t);for(let t=0;t127){const t=new Uint8Array(r.length+1);return t.set(r,1),t.buffer}return r.buffer}toAsnSignature(t,e){if("ECDSA"===t.name){const r=t.namedCurve,i=Ay.namedCurveSize.get(r)||Ay.defaultNamedCurveSize,n=new Od,s=Ko.vJ.toUint8Array(e);return n.r=this.removePadding(s.slice(0,i),!0),n.s=this.removePadding(s.slice(i,i+i),!0),Kl.serialize(n)}return null}toWebSignature(t,e){if("ECDSA"===t.name){const r=Kl.parse(e,Od),i=t.namedCurve,n=Ay.namedCurveSize.get(i)||Ay.defaultNamedCurveSize,s=this.addPadding(n,this.removePadding(r.r)),o=this.addPadding(n,this.removePadding(r.s));return(0,Ko.$e)(s,o)}return null}}Ay.namedCurveSize=new Map,Ay.defaultNamedCurveSize=32;const Ey="1.3.101.110",_y="1.3.101.111",vy="1.3.101.112",Ty="1.3.101.113";let Sy=class{toAsnAlgorithm(t){let e=null;switch(t.name.toLowerCase()){case"eddsa":switch(t.namedCurve.toLowerCase()){case"ed25519":e=vy;break;case"ed448":e=Ty}break;case"ecdh-es":switch(t.namedCurve.toLowerCase()){case"x25519":e=Ey;break;case"x448":e=_y}}return e?new Oh({algorithm:e}):null}toWebAlgorithm(t){switch(t.algorithm){case vy:return{name:"EdDSA",namedCurve:"Ed25519"};case Ty:return{name:"EdDSA",namedCurve:"Ed448"};case Ey:return{name:"ECDH-ES",namedCurve:"X25519"};case _y:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};Sy=hf([Ff()],Sy),Uf.registerSingleton(Wg,Sy);class Iy extends ey{constructor(t){ey.isAsnEncoded(t)?super(t,Hg):super(t),this.tag=ty.CertificateRequestTag}onInit(t){this.tbs=Kl.serialize(t.certificationRequestInfo),this.publicKey=new ry(t.certificationRequestInfo.subjectPKInfo);const e=Uf.resolve(jg);this.signatureAlgorithm=e.toWebAlgorithm(t.signatureAlgorithm),this.signature=t.signature,this.attributes=t.certificationRequestInfo.attributes.map((t=>my.create(Kl.serialize(t))));const r=this.getAttribute(dg);this.extensions=[],r instanceof yy&&(this.extensions=r.items),this.subjectName=new Lw(t.certificationRequestInfo.subject),this.subject=this.subjectName.toString()}getAttribute(t){for(const e of this.attributes)if(e.type===t)return e;return null}getAttributes(t){return this.attributes.filter((e=>e.type===t))}getExtension(t){for(const e of this.extensions)if(e.type===t)return e;return null}getExtensions(t){return this.extensions.filter((e=>e.type===t))}async verify(t=Nw.get()){const e={...this.publicKey.algorithm,...this.signatureAlgorithm},r=await this.publicKey.export(e,["verify"],t),i=Uf.resolveAll(ny).reverse();let n=null;for(const t of i)if(n=t.toWebSignature(e,this.signature),n)break;if(!n)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await t.subtle.verify(this.signatureAlgorithm,r,n,this.tbs)}toTextObject(){const t=this.toTextObjectEmpty(),e=Kl.parse(this.rawData,Hg),r=e.certificationRequestInfo,i=new vw("",{Version:`${Mh[r.version]} (${r.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){const t=new vw("");for(const e of this.attributes){const r=e.toTextObject();t[r[vw.NAME]]=r}i.Attributes=t}return t.Data=i,t.Signature=new vw("",{Algorithm:Sw.serializeAlgorithm(e.signatureAlgorithm),"":e.signature}),t}}Iy.NAME="PKCS#10 Certificate Request";var Cy;!function(t){t[t.unspecified=0]="unspecified",t[t.keyCompromise=1]="keyCompromise",t[t.cACompromise=2]="cACompromise",t[t.affiliationChanged=3]="affiliationChanged",t[t.superseded=4]="superseded",t[t.cessationOfOperation=5]="cessationOfOperation",t[t.certificateHold=6]="certificateHold",t[t.removeFromCRL=8]="removeFromCRL",t[t.privilegeWithdrawn=9]="privilegeWithdrawn",t[t.aACompromise=10]="aACompromise"}(Cy||(Cy={}));iy.register(bu,ay),iy.register(Ku,uy),iy.register(oh,hy),iy.register(vh,py),iy.register(wu,oy),iy.register(mh,dy),my.register(pg,wy),my.register(dg,yy),Uf.registerSingleton(ny,class{toAsnSignature(t,e){return Ko.vJ.toArrayBuffer(e)}toWebSignature(t,e){return Ko.vJ.toArrayBuffer(e)}}),Uf.registerSingleton(ny,Ay),Ay.namedCurveSize.set("P-256",32),Ay.namedCurveSize.set("K-256",32),Ay.namedCurveSize.set("P-384",48),Ay.namedCurveSize.set("P-521",66);const Ry=/-{5}(BEGIN|END) .*-{5}/gm;async function xy({hash:t,signature:e,publicKey:r,domain:i,domainCert:n,created:s,software:o}={}){let a;const c=[];if(e=(0,Vo.toByteArray)(e),n&&i&&!r){const t=n.split("\n\n"),i=(0,Vo.toByteArray)(t[0].replace(Ry,"").replace(/\s/gm,"")),s=f(await crypto.subtle.digest("SHA-256",i));c.push({id:"certFingerprint",expected:s,matched:null});const o=new sy(i);r=await o.publicKey.export();const l=(0,Vo.fromByteArray)(new Uint8Array(o.publicKey.rawData));c.push({id:"publicKey",expected:l,matched:null}),o.subject&&o.subject.startsWith("CN=")&&(a=o.subject.split(3)),e=function(t){try{const e=ql.parse(t,Od),r=0===e.r[0]?e.r.slice(1):e.r,i=0===e.s[0]?e.s.slice(1):e.s;t=z([r,i],r.length+i.length)}catch(t){console.log(t)}return t}(e)}else{const t={name:"ECDSA",namedCurve:"P-384"};c.push({id:"publicKey",expected:r,matched:null}),r=await crypto.subtle.importKey("spki",(0,Vo.toByteArray)(r),t,!0,["verify"])}const l=new TextEncoder,u=await crypto.subtle.verify({name:"ECDSA",hash:"SHA-256"},r,e,l.encode(t));return c.push({id:"signature",expected:!0,matched:u}),s&&c.push({id:"created",expected:s,matched:null}),o&&c.push({id:"software",expected:o,matched:null}),i&&c.push({id:"domain",expected:i,matched:a}),c}const Ny="pages/pages.jsonl",Oy="pages/extraPages.jsonl",ky="datapackage.json",By="datapackage-digest.json",Dy="webarchive.yaml";class Ly{constructor(t,e,r=!0){this.file=e,this.waczname=e.waczname,this.store=t,this.isRoot=r}async loadFileFromWACZ(t,e){return this.store.loadFileFromWACZ?await this.store.loadFileFromWACZ(this.file,t,e):await this.file.loadFile(t,e)}async load(){let t,e=null;return this.file.containsFile(By)&&(e=await this.loadDigestData(By)),this.file.containsFile(ky)?t=await this.loadPackage(ky,e):this.file.containsFile(Dy)&&(t=await this.loadOldPackageYAML(Dy)),t||{}}async loadTextFileFromWACZ(t,e=!1){const{reader:r,hasher:i}=await this.loadFileFromWACZ(t,{computeHash:!!e}),n=(new TextDecoder).decode(await r.readFully());return e&&i&&await this.store.addVerifyData(this.waczname,t,e,i.getHash()),n}async loadDigestData(t){try{const e=JSON.parse(await this.loadTextFileFromWACZ(t));let r;e.path===ky&&e.hash&&(r=e.hash);const i=this.store,n=this.isRoot?"":this.waczname+":";if(!e.signedData||e.signedData.hash!==r)return void await i.addVerifyData(n,"signature");await i.addVerifyData(n,"datapackageHash",r);const s=await xy(e.signedData);return await i.addVerifyDataList(n,s),r}catch(t){console.warn(t)}}async loadPackage(t,e){const r=await this.loadTextFileFromWACZ(t,e),i=JSON.parse(r);switch(this.isRoot&&void 0!==i.config&&this.store.initConfig(i.config),i.profile){case"data-package":case"wacz-package":case void 0:case null:return await this.loadLeafWACZPackage(i);case"multi-wacz-package":return await this.loadMultiWACZPackage(i);default:throw new Error(`Unknown package profile: ${i.profile}`)}}async loadMultiWACZPackage(t){return this.file.markAsMultiWACZ(),await this.store.loadWACZFiles(t,this.file),t}async loadLeafWACZPackage(t){const e=t.metadata||{};let r=null;for(const e of t.resources)e.path===Ny?(r=e.hash,await this.store.addVerifyData(this.waczname,e.path,e.hash)):(e.path.endsWith(".idx")||e.path.endsWith(".cdx"))&&await this.store.addVerifyData(this.waczname,e.path,e.hash);if(this.file.containsFile(Ny)){(await this.loadPages(Ny,r)).hasText&&(this.store.textIndex=e.textIndex=Ny)}return this.file.containsFile(Oy)&&(this.store.textIndex=e.textIndex=Oy),e}async loadOldPackageYAML(t){const e=await this.loadTextFileFromWACZ(t),r=Qo.load(e),i={desc:r.desc,title:r.title};r.textIndex&&(i.textIndex=r.textIndex,r.config||(r.config={}),r.config.textIndex=r.textIndex),this.isRoot&&void 0!==r.config&&this.store.initConfig(r.config),i.title||(i.title=this.store.config.sourceName);const n=r.pages||[];n&&n.length&&await this.store.addPages(n);const s=r.pageLists||[];return s&&s.length&&await this.store.addCuratedPageLists(s,"pages","show"),i}async loadPages(t=Ny,e=null){const{reader:r,hasher:i}=await this.loadFileFromWACZ(t,{unzip:!0,computeHash:!0});let n=null,s=[];for await(const t of r.iterLines()){const e=JSON.parse(t);this.waczname&&(e.wacz=this.waczname),n?(s.push(e),500===s.length&&(await this.store.addPages(s),s=[])):n=e}return s.length&&await this.store.addPages(s),i&&e&&await this.store.addVerifyData(this.waczname,t,e,i.getHash()),n}}class Py{constructor(t,e,r=null){this.loader=t,this.loadId=r,this.loadUrl=e.loadUrl}async load(t){t.fullConfig&&this.loader.arrayBuffer&&this.loader.arrayBuffer.byteLength<=a&&(t.fullConfig.extra||(t.fullConfig.extra={}),t.fullConfig.extra.arrayBuffer=this.loader.arrayBuffer);const e=this.loadUrl,r=this.loader;return await t.addNewWACZ({name:"default",path:e,loader:r})}}class Uy{constructor(t,e,r=null){this.config=e,this.loadId=r,this.loader=t}async load(t,e=null,r=0){const i=new jn({loader:this.loader});await i.init();const n=i.zipreader,s=new Ly(t,i),o=await s.load();let a=0;const c=(t,i,n)=>{n+=a,e&&r&&e(Math.round(100*n/r),null,n,r)};for(const e of i.iterContainedFiles()){const r=n.getCompressedSize(e);(e.endsWith(".warc.gz")||e.endsWith(".warc"))&&await this.loadWARC(t,n,e,c,r),a+=r}return o||{}}async loadWARC(t,e,r,i,n){const{reader:s}=await e.loadFile(r,{unzip:!0}),o=new si(s,null,r);return o.detectPages=!1,await o.load(t,i,n)}}class My{constructor(t){this.response=t}async load(t){return await t.loadFromJSON(this.response)}}class Fy{constructor(t,{cloneResponse:e=!1,allowBody:r=!1,hostProxyOnly:i=!1}={}){if(t=t||{},this.prefix=t.prefix||"",this.proxyPathOnly=t.proxyPathOnly||!1,this.isLive=void 0===t.isLive||t.isLive,this.archivePrefix=t.archivePrefix||"",this.cloneResponse=e,this.allowBody=r,this.hostProxy=t.hostProxy,this.hostProxy instanceof Array){const t={};for(const e of this.hostProxy)t[e.host]=e;this.hostProxy=t}this.hostProxyOnly=i}async getAllPages(){return[]}getFetchUrl(t,e,r){let i;if(this.hostProxy){i=new URL(t);const e=this.hostProxy[i.host];if(e)return r.set("X-Proxy-Host",i.host),e.prefix+(e.pathOnly?i.pathname+i.search:t)}return this.hostProxyOnly?null:this.proxyPathOnly?(i||(i=new URL(t)),this.prefix+i.pathname+i.search):this.isLive||!e.timestamp?this.prefix+t:this.prefix+this.archivePrefix+e.timestamp+"id_/"+t}async getResource(t,e){const{headers:r,credentials:i,url:n}=t.prepareProxyRequest(e,!0),s=this.getFetchUrl(n,t,r);if(!s)return null;let o=null;!this.allowBody||"POST"!==t.method&&"PUT"!==t.method||(o=await t.getBody());const a=await fetch(s,{method:t.method,body:o,headers:r,credentials:i,mode:"cors",redirect:"follow"});let c=null;this.cloneResponse&&(c=a.clone());const l=mt.fromResponse({url:n,response:a,date:new Date,noRW:!1,isLive:this.isLive});return c&&(l.clonedResponse=c),l}}const Hy=/^([\w-]+,)*[\w-]+(:\d+)?,?\)\//;class Wy extends rn{constructor(t,e,r="wacz"){super(t.dbname,t.noCache),this.config=t,this.waczfiles={},this.waczNameForHash={},this.ziploadercache={},this.updating=null,this.rootSourceType=r,this.sourceLoader=e,this.externalSource=null,this.fuzzyUrlRules=[],this.textIndex=t&&t.metadata&&t.metadata.textIndex,t.extraConfig&&this.initConfig(t.extraConfig)}initConfig(t){if(void 0!==t.decodeResponses&&(this.config.decode=t.decodeResponses),t.hostProxy&&(this.externalSource=new Fy(t,{hostProxyOnly:!0})),t.fuzzy)for(const[e,r]of t.fuzzy){const t=new RegExp(e);this.fuzzyUrlRules.push({match:t,replace:r})}t.textIndex&&(this.textIndex=t.textIndex)}updateHeaders(t){this.sourceLoader&&(this.sourceLoader.headers=t)}_initDB(t,e,r,i){super._initDB(t,e,r,i),e||(t.createObjectStore("ziplines",{keyPath:["waczname","prefix"]}),t.createObjectStore("waczfiles",{keyPath:"waczname"}),t.createObjectStore("verification",{keyPath:"id"})),2===e&&this.convertV2WACZDB(t,i),3===e&&t.createObjectStore("verification",{keyPath:"id"})}async convertV2WACZDB(t,e){try{const r=await e.objectStore("ziplines").getAll(),i=await e.objectStore("zipEntries").getAll();t.deleteObjectStore("ziplines"),t.deleteObjectStore("zipEntries"),t.createObjectStore("ziplines",{keyPath:["waczname","prefix"]}),t.createObjectStore("waczfiles",{keyPath:"waczname"}),t.createObjectStore("verification",{keyPath:"id"});const n=this.config.loadUrl;for(const t of r)t.waczname=n,e.objectStore("ziplines").put(t);const s=r.length>0?2:1,o=await this.computeHash(n),a=new jn({waczname:n,hash:o,url:n,entries:i,indexType:s});e.objectStore("waczfiles").put(a.serialize()),await e.done}catch(t){console.warn(t)}}addWACZFile(t){return this.waczfiles[t.waczname]=new jn(t),this.waczNameForHash[t.hash]=t.waczname,this.waczfiles[t.waczname]}async init(){await super.init();const t=await this.db.getAll("waczfiles")||[];for(const e of t)this.addWACZFile({...e,parent:this});for(const[t,e]of Object.entries(this.waczfiles)){e.path=e.path||t;const r=e.path.lastIndexOf("#!/");if(r>0){const t=e.path.slice(0,r),i=this.waczfiles[t];e.parent=i}else"json"!==this.rootSourceType&&(e.loader=this.sourceLoader)}await this.checkUpdates()}async close(){super.close(),caches.delete("cache:"+this.name.slice("db:".length))}async clearZipData(){const t=["waczfiles","ziplines"];for(const e of t)await this.db.clear(e)}async addVerifyData(t="",e,r,i,n=!1){let s=null;t&&(e=t+e),i&&(s=r===i,n&&console.log(`verify ${e}: ${s}`)),await this.db.put("verification",{id:e,expected:r,matched:s})}async addVerifyDataList(t,e){const r=this.db.transaction("verification","readwrite");for(const i of e)t&&(i.id=t+i.id),r.store.put(i);try{await r.done}catch(t){console.warn(t)}}async getVerifyInfo(){const t=await this.db.getAll("verification");let e=0,r=0,i={};const n=["domain","created","certFingerprint","software","datapackageHash","publicKey"];for(const s of t)n.includes(s.id)?i[s.id]=s.expected:"signature"===s.id||!0===s.matched?e++:!1===s.matched&&r++;return i.numInvalid=r,i.numValid=e,i}async getVerifyExpected(t){const e=await this.db.get("verification",t);return e&&e.expected}async clearAll(){await super.clearAll(),await this.clearZipData()}async loadRecordFromSource(t){const{start:e,length:r,path:i,wacz:n}=t.source,s={offset:e,length:r,unzip:!0,computeHash:!0},o=n,{reader:a,hasher:c}=await this.loadFileFromNamedWACZ(o,"archive/"+i,s),l=new oi(a,c);await this.waczfiles[o].save(this.db);const u=await l.load();return t[un]&&(u.respHeaders["x-wabac-preset-cookie"]=t[un]),{remote:u,hasher:c}}async loadIndex(t){if(!this.waczfiles[t])throw new Error("unknown waczfile: "+t);if(this.waczfiles[t].indexType)return{indexType:this.waczfiles[t].indexType,isNew:!1};let e=0;for(const r of this.waczfiles[t].iterContainedFiles())r.endsWith(".cdx")||r.endsWith(".cdxj")?(console.log(`Loading CDX for ${t}`),await this.loadCDX(r,t),e=1):r.endsWith(".idx")&&(console.log(`Loading IDX for ${t}`),await this.loadIDX(r,t),e=2);return this.waczfiles[t].indexType=e,await this.waczfiles[t].save(this.db,!0),{indexType:e,isNew:!0}}async loadCDX(t,e,r,i){const{reader:n,hasher:s}=await this.loadFileFromNamedWACZ(e,t,{computeHash:!0}),o=new pn(n,null,e,{wacz:e}),a=await o.load(this,r,i);if(s){const r=await this.getVerifyExpected(t);r&&this.addVerifyData(e,t,r,s.getHash())}return a}async loadIDX(t,e,r,i){const{reader:n,hasher:s}=await this.loadFileFromNamedWACZ(e,t,{computeHash:!0});let o=[],a="",c=!0,l=0;for await(const t of n.iterLines()){if(l+=t.length,l===t.length&&t.startsWith("!meta")){const e=t.indexOf(" {");if(e<0){console.warn("Invalid Meta Line: "+t);continue}const r=JSON.parse(t.slice(e));r.filename&&(a=r.filename),"cdxj-gzip-1.0"!==r.format&&console.log(`Unknown CDXJ format "${r.format}", archive may not parse correctly`);continue}let n;if(t.indexOf("\t")>0){let[r,i,s,o]=t.split("\t");s=Number(s),o=Number(o),n={waczname:e,prefix:r,filename:i,offset:s,length:o,loaded:!1},c=!1}else{const r=t.indexOf(" {");if(r<0){console.log("Invalid Index Line: "+t);continue}const i=t.slice(0,r);let{offset:s,length:o,filename:l,digest:u}=JSON.parse(t.slice(r));c=c&&!Hy.test(i),l=l||a,n={waczname:e,prefix:i,filename:l,offset:s,length:o,digest:u,loaded:!1}}r&&r(l/i,l,i),o.push(n)}if(s){const r=await this.getVerifyExpected(t);r&&this.addVerifyData(e,t,r,s.getHash())}const u=this.db.transaction("ziplines","readwrite");for(const t of o)u.store.put(t);try{await u.done}catch(t){console.log("Error loading ziplines index: ",t)}c&&c!==this.waczfiles[e].nonSurt&&(this.waczfiles[e].nonSurt=c,await this.waczfiles[e].save(this.db,!0))}async loadCDXFromIDX(t,e,r=0,i=!1){const n=this.waczfiles[t].nonSurt?e:M(e),s=i?this.prefixUpperBound(n):n+" 9999",o=IDBKeyRange.upperBound([t,s],!0),a=this.db.transaction("ziplines","readonly"),c=[];for await(const e of a.store.iterate(o,"prev")){if(e.value.waczname!==t)break;if(c.unshift(e.value),!e.value.prefix.split(" ")[0].startsWith(n))break}await a.done;const l=[];c.length>3&&r&&c.sort(((t,e)=>{const i=t.prefix.split(" ")[1],n=e.prefix.split(" ")[1];if(!i||!n)return 0;const s=Math.abs(d(i).getTime()-r),o=Math.abs(d(n).getTime()-r);return s===o?0:s3)break}return l.length&&await Promise.allSettled(l),await this.waczfiles[t].save(this.db),l.length>0}async doCDXLoad(t,e,r){try{const i="indexes/"+e.filename,n={offset:e.offset,length:e.length,unzip:!0,computeHash:!!e.digest},{reader:s,hasher:o}=await this.loadFileFromNamedWACZ(r,i,n),a=new pn(s,null,null,{wacz:r});if(await a.load(this),o){const t=o.getHash(),n=`${i}:${e.offset}-${e.length}`;await this.addVerifyData(r,n,e.digest,t)}e.loaded=!0,await this.db.put("ziplines",e)}catch(t){await T(t,this.config)||console.warn(t)}finally{delete this.ziploadercache[t]}}async findPageAtUrl(t,e){const r=await this.db.getAllFromIndex("pages","url",t);let i=null,n=Number.MAX_SAFE_INTEGER;for(const t of r){const r=Math.abs(t.ts-e);if(r<1e3)return t;r0)return r;for(const i of Object.keys(this.waczfiles))if(i&&"local"!==i){const{indexType:n,isNew:s}=await this.loadIndex(i);switch(n){case 2:if(!await this.loadCDXFromIDX(i,t,0,!0))continue;break;case 1:if(!s)continue;break;default:continue}const o=await super.resourcesByUrlAndMime(t,...e);o&&o.length&&(r=r.concat(o))}return r}async loadFileFromWACZ(t,e,r){try{return await t.loadFile(e,r)}catch(i){if(await this.retryLoad(i))return await t.loadFile(e,r);throw i}}async loadFileFromNamedWACZ(t,e,r){const i=this.waczfiles[t];if(!i)throw new Error("No WACZ Found for: "+t);return await this.loadFileFromWACZ(i,e,r)}async addNewWACZ({name:t,hash:e,path:r,parent:i=null,loader:n=null}={}){const s=t||r;e?e.indexOf(":")>0&&(e=e.split(":")[1]):e=await g(s,"sha-256","");const o=this.addWACZFile({waczname:s,hash:e,path:r,parent:i,loader:n},!0);await o.init(),await o.save(this.db,!0);const a=new Ly(this,o,!i);return await a.load()}async loadWACZFiles(t,e=this){const r=[],i=async(t,e)=>{await this.waczfiles[t].init(e),await this.waczfiles[t].save(this.db,!0)},n=t.resources.map((t=>{const r=e.getLoadPath(t.path);return{name:e.getName(t.name),hash:t.hash,path:r}}));for(const{name:t,hash:s,path:o}of n)this.waczfiles[t]?this.waczfiles[t].path!==o&&r.push(i(t,o)):r.push(this.addNewWACZ({name:t,hash:s,path:o,parent:e}));r.length&&await Promise.allSettled(r)}async getTextIndex(){const t={"Content-Type":"application/ndjson"},e=Object.keys(this.waczfiles);if(!this.textIndex||!e.length)return new Response("",{headers:t});const r=e[0];let i;try{i=await this.loadFileFromNamedWACZ(r,this.textIndex,{unzip:!0})}catch(e){return new Response("",{headers:t})}const{reader:n}=i,s=this.waczfiles[r].getSizeOf(this.textIndex);return s>0&&(t["Content-Length"]=""+s),new Response(n.getReadableStream(),{headers:t})}async getResource(t,e,r,{pageId:i}={}){if(await this.initing,this.externalSource){const i=await this.externalSource.getResource(t,e,r);if(i)return i}const n="navigate"===r.request.mode;let s=i,o=null,a=null;if(s){if(o=this.waczNameForHash[s],!o)return null;a=await super.getResource(t,e,r,{waczname:o})}if(a||!n)return a;for(const[i,n]of Object.entries(this.waczfiles))if(n.fileType===Wn&&(a=await super.getResource(t,e,r,{waczname:i,noFuzzyCheck:!0}),a)){o=i,s=n.hash;break}if(o)return Response.redirect(`${e}:${s}/${t.timestamp}mp_/${t.url}`);if(this.fuzzyUrlRules.length)for(const{match:i,replace:n}of this.fuzzyUrlRules){const s=decodeURIComponent(t.url.replace(i,n));if(s&&s!==t.url){t.url=s;const i=await super.getResource(t,e,r);if(i)return i}}return null}async retryLoad(t){return"json"===this.rootSourceType&&(t instanceof x?(this.updating||(this.updating=this.checkUpdates()),await this.updating,this.updating=null,!0):await T(t,this.config))}async checkUpdates(){"json"===this.rootSourceType&&await this.loadFromJSON()}async loadFromJSON(t=null){if(!t){t=(await this.sourceLoader.doInitialFetch(!1)).response}if(206!==t.status&&200!==t.status)return console.warn("WACZ update failed from: "+this.config.loadUrl),{};const e=await t.json();return e.profile,await this.loadWACZFiles(e),e}getLoadPath(t){return new URL(t,this.config.loadUrl).href}getName(t){return t}async createLoader(t){return await Vi(t)}}class jy{constructor(t){const e=t.extraConfig||{};this.sourceUrl=e.prefix,this.type=e.sourceType||"kiwix",this.notFoundPageUrl=e.notFoundPageUrl}async getAllPages(){return[]}async getResource(t,e){const{url:r,headers:i}=t.prepareProxyRequest(e);let n=i;if("kiwix"===this.type){let e=await this.resolveHeaders(r);if(!e)for(const t of Zr.getFuzzyCanonsWithArgs(r))if(t!==r&&(e=await this.resolveHeaders(t),e))break;if(!e){if(this.notFoundPageUrl&&"navigate"===t.mode){const t=await fetch(this.notFoundPageUrl);if(200===t.status){const e={"Content-Type":"text/html"},i=await t.text();return new Response(i.replace("$URL",r),{status:404,headers:e})}}return null}let{headers:i,encodedUrl:s,date:o,status:a,statusText:c,hasPayload:l}=e;if(n.has("Range")){const t=n.get("Range");n={Range:t}}let u=null,h=null;l&&(h=await fetch(this.sourceUrl+"A/"+s,{headers:n}),h.body&&(u=new K(h.body.getReader(),!1)),206===h.status&&(a=206,c="Partial Content",i.set("Content-Length",h.headers.get("Content-Length")),i.set("Content-Range",h.headers.get("Content-Range")),i.set("Accept-Ranges","bytes"))),u||(u=new Uint8Array([])),o||(o=new Date),i||(i=new Headers);return new mt({payload:u,status:a,statusText:c,headers:i,url:r,date:o,noRW:!1,isLive:!1})}}async resolveHeaders(t){const e=t.slice(t.indexOf("//")+2);let r=encodeURI(e);r=encodeURIComponent(e);let i=await fetch(this.sourceUrl+"H/"+r);if(200!==i.status)return null;let n=null,s=null,o=null,a=null,c=!1;try{const e=await ct.parse(i.body);if("revisit"===e.warcType){const r=e.warcHeaders.headers.get("WARC-Refers-To-Target-URI");if(r&&r!==t)return await this.resolveHeaders(r)}s=new Date(e.warcDate),e.httpHeaders?(n=e.httpHeaders.headers,o=Number(e.httpHeaders.statusCode),a=e.httpHeaders.statusText,c="0"!==e.httpHeaders.headers.get("Content-Length")):"resource"===e.warcType&&(n=new Headers,n.set("Content-Type",e.warcContentType),n.set("Content-Length",e.warcContentLength),o=200,a="OK",c=e.warcContentLength>0),o||(o=200)}catch(e){console.warn(e),console.warn("Ignoring headers, error parsing headers response for: "+t)}return{encodedUrl:r,headers:n,date:s,status:o,statusText:a,hasPayload:c}}}const zy=Qy([80,75,3,4]),Gy=Qy([31,139,8]),qy=Qy([87,65,82,67]);function Qy(t){return e=>{for(const[r,i]of t.entries())if(i!==e[r])return!1;return!0}}async function Vy(t){const e=t.body.getReader();let r="";const{value:i,done:n}=await e.read();var s;return!n&&i.length>=4&&(s=i.slice(0,4),r=zy(s)?".wacz":qy(s)?".warc":Gy(s)?".warc.gz":void 0,r||(r=function(t){try{const e=(new TextDecoder).decode(t).split("\n");if(e>1&&e.indexOf(" {"))return".cdxj"}catch(t){return""}}(i))),n||e.cancel(),r}globalThis.self||(globalThis.self=globalThis),self.interruptLoads={};class Ky extends class{constructor(){this.colldb=null,this.root=null,this.checkIpfs=!0,this._init_db=this._initDB()}async _initDB(){this.colldb=await Dr("collDB",1,{upgrade:t=>{t.createObjectStore("colls",{keyPath:"name"}).createIndex("type","type")}})}async loadAll(t){if(await this._init_db,t)for(const e of t.split(",")){const t=e.split(":");if(2===t.length){const e={dbname:t[1],sourceName:t[1],decode:!1},r={name:t[0],type:"archive",config:e};console.log("Adding Coll: "+JSON.stringify(r)),await this.colldb.put("colls",r)}}try{const t=(await this.listAll()).map((t=>this._initColl(t)));await Promise.all(t)}catch(t){console.warn(t.toString())}return!0}async listAll(){return await this._init_db,await this.colldb.getAll("colls")}async loadColl(t){await this._init_db;const e=await this.colldb.get("colls",t);return e?await this._initColl(e):null}async reload(t){return this.loadColl(t)}async deleteColl(t){await this._init_db;const e=await this.colldb.get("colls",t);if(!e)return!1;if(e.config.dbname)try{await Lr(e.config.dbname,{blocked(t,r){console.log(`Unable to delete ${e.config.dbname}, blocked: ${r}`)}})}catch(t){return console.warn(t),!1}return await this.colldb.delete("colls",t),!0}async updateAuth(t,e){await this._init_db;const r=await this.colldb.get("colls",t);return!!r&&(r.config.headers=e,await this.colldb.put("colls",r),!0)}async updateMetadata(t,e){await this._init_db;const r=await this.colldb.get("colls",t);return!!r&&(r.config.metadata={...r.config.metadata,...e},await this.colldb.put("colls",r),r.config.metadata)}async updateSize(t,e,r,i){await this._init_db;const n=await this.colldb.get("colls",t);if(!n)return!1;const s=n.config.metadata;return s.fullSize=(s.fullSize||0)+e,s.size=(s.size||0)+r,s.mtime=(new Date).getTime(),void 0!==i&&(n.config.decode=i),await this.colldb.put("colls",n),s}async initNewColl(t,e={},r="archive"){await this._init_db;const i=m(),n="local://"+i,s={name:i,type:r,config:{dbname:"db:"+i,ctime:(new Date).getTime(),decode:!1,metadata:t,sourceUrl:n,extraConfig:e}},o=await this._initColl(s);return await this.colldb.put("colls",s),o}async _initColl(t){const e=await this._initStore(t.type,t.config),r=t.name,i=t.config;return t.config.root&&!this.root&&(this.root=r),this._createCollection({name:r,store:e,config:i})}async _initStore(t,e){let r=null,i=null;switch(t){case"archive":i=new ei(e.dbname);break;case"remotesource":r=await Vi({url:e.loadUrl,headers:e.headers,size:e.size,extra:e.extra}),i=new nn(e.dbname,r,e.noCache);break;case"remoteprefix":i=new sn(e.dbname,e.remotePrefix,e.headers,e.noCache);break;case"wacz":case"remotezip":case"multiwacz":r=await Vi({url:e.loadUrl||e.sourceUrl,headers:e.headers,extra:e.extra}),i=new Wy(e,r,"multiwacz"===t?"json":"wacz");break;case"remotewarcproxy":i=new jy(e);break;case"live":i=new Fy(e.extraConfig)}return i?(i.initing&&await i.initing,i):(console.log("no store found: "+t),null)}_createCollection(t){return t}}{constructor(t){super(),this.registerListener(t)}async hasCollection(t){return await this._init_db,null!=await this.colldb.getKey("colls",t)}registerListener(t){t.addEventListener("message",(t=>{t.waitUntil?t.waitUntil(this._handleMessage(t)):this._handleMessage(t)}))}async _handleMessage(t){await this._init_db;const e=t.source||self;switch(t.data.msg_type){case"addColl":{const r=t.data.name,i=(t,i,n,s,o=null,a=null)=>{e.postMessage({msg_type:"collProgress",name:r,percent:t,error:i,currentSize:n,totalSize:s,fileHandle:o,extraMsg:a})};let n;try{if(n=await this.colldb.get("colls",r),n?t.data.skipExisting||(await this.deleteColl(r),n=await this.addCollection(t.data,i)):n=await this.addCollection(t.data,i),!n){if(t.data.name)try{await Lr("db:"+t.data.name,{blocked(e,r){console.log(`Load failed and unable to delete ${t.data.name}: ${r}`)}})}catch(t){console.warn(t)}return}}catch(t){if(t instanceof R)return console.warn(t),void i(0,"permission_needed",null,null,t.info&&t.info.fileHandle);if("ConstraintError"!==t.name)return console.warn(t),void i(0,"An unexpected error occured: "+t.toString());console.log("already being added, just continue..."),n=await this.colldb.get("colls",r)}e.postMessage({msg_type:"collAdded",name:r,sourceUrl:n.config.sourceUrl});break}case"cancelLoad":{const e=t.data.name,r=new Promise((t=>self.interruptLoads[e]=t));await r,await this.deleteColl(e),delete self.interruptLoads[e];break}case"removeColl":{const r=t.data.name;await this.hasCollection(r)&&(await this.deleteColl(r),this.doListAll(e));break}case"listAll":this.doListAll(e);break;case"reload":this.reload(t.data.name)}}async doListAll(t){const e=[],r=await this.listAll();for(const t of r)e.push({name:t.name,prefix:t.name,pageList:[],sourceName:t.config.sourceName});t.postMessage({msg_type:"listAll",colls:e})}async addCollection(t,e){let r=t.name,i=null,n={root:t.root||!1},s=null,o=null;const c=t.file;if(!c||!c.sourceUrl)return e(0,"Invalid Load Request"),!1;if(n.dbname="db:"+r,c.sourceUrl.startsWith("proxy:"))n.sourceUrl=c.sourceUrl.slice("proxy:".length),n.extraConfig=t.extraConfig,n.extraConfig.prefix||(n.extraConfig.prefix=n.sourceUrl),n.topTemplateUrl=t.topTemplateUrl,n.metadata={},i=t.type||n.extraConfig.type||"remotewarcproxy",s=await this._initStore(i,n);else{let l=null;if(c.newFullImport&&(r=m(),c.loadUrl=c.loadUrl||c.sourceUrl,c.name=c.name||c.sourceUrl,c.sourceUrl="local://"+r),i="archive",c.newFullImport&&c.importCollId){const t=await this.colldb.get("colls",c.importCollId);if(!t||"archive"!==t.type)return void e(0,"Invalid Existing Collection: "+c.importCollId);n.dbname=t.config.dbname,o=t.config,o.decode=!0}let u=c.loadUrl||c.sourceUrl;u.match(/[\w]+:\/\//)||(u=new URL(u,self.location.href).href),n.decode=!0,n.onDemand=!1,n.loadUrl=u,n.sourceUrl=c.sourceUrl,n.sourceName=c.name||c.sourceUrl;try{if(n.sourceName.match(/https?:\/\//)){const t=new URL(n.sourceName);n.sourceName=t.pathname+t.hash}}catch(t){}if(n.sourceName=n.sourceName.slice(n.sourceName.lastIndexOf("/")+1),n.size="number"==typeof c.size?c.size:null,n.extra=c.extra,n.loadUrl.startsWith("file://")&&!c.blob&&!n.extra){if(!this._fileHandles||!this._fileHandles[n.sourceUrl])return void e(0,"missing_local_file");n.extra={fileHandle:this._fileHandles[n.sourceUrl]}}n.extraConfig=t.extraConfig,n.headers=c.headers||n.extraConfig&&n.extraConfig.headers,n.noCache=c.noCache;let h=await Vi({url:u,headers:n.headers,size:c.size,extra:n.extra,blob:c.blob});if(c.loadEager){const{response:t}=await h.doInitialFetch(!1,!0),e={arrayBuffer:new Uint8Array(await t.arrayBuffer())};c.newFullImport=!0,h=await Vi({url:u,headers:n.headers,size:c.size,extra:e})}let p=function(t){const e=[".warc",".warc.gz",".cdx",".cdxj",".har",".json",".wacz",".zip"];for(const r of e)if(t.endsWith(r))return r;return""}(n.sourceName),{abort:d,response:f}=await h.doInitialFetch(".wacz"===p);p||(p=await Vy(await f.clone()));const g=f.body;if(n.onDemand=h.canLoadOnDemand&&!c.newFullImport,!h.isValid){const t=h.length<=1e3?await f.text():"";return e(0,`Sorry, this URL could not be loaded.\nMake sure this is a valid URL and you have access to this file.\nStatus: ${f.status} ${f.statusText}\nError Details:\n${t}`),d&&d.abort(),!1}if(!h.length)return e(0,"Sorry, this URL could not be loaded because the size of the file is not accessible.\nMake sure this is a valid URL and you have access to this file."),d&&d.abort(),!1;const w=h.length;if(".wacz"===p)if(n.onDemand)l=new Py(h,n,r),s=new Wy(n,h,"wacz"),i="wacz";else{if(!h.canLoadOnDemand||!c.newFullImport)return e(0,"Sorry, can't load this WACZ file due to lack of range request support on the server"),d&&d.abort(),!1;l=new Uy(h,n,r),s=null,delete n.extra}else".warc"===p||".warc.gz"===p?n.noCache||!(w300&&e<400)return;let s=null;void 0===this.timeRanges[n]?(s={count:0,children:[]},this.timeRanges[n]=s,r.referrer.indexOf("mp_/")>0&&self.clients.matchAll({type:"window"}).then((t=>this.updateStatsParent(n,r.referrer,t)))):s=this.timeRanges[n];const o=t.getTime();(!s.min||os.max)&&(s.max=o),s.count++}updateStatsParent(t,e,r){for(let i of r)if(i.url===e){this.timeRanges[i.id]?this.timeRanges[i.id].children[t]=1:this.timeRanges[i.id]={count:0,children:{id:1}};break}}async getStats(t){const e=new URL(t.request.url);let r=0;const i=new URLSearchParams(e.search).get("url"),n=await self.clients.matchAll({type:"window"}),s={};for(let t of n)t.url===i&&(r=t.id),s[t.id]=1;const o=this.timeRanges[r]||{},a={count:o.count||0,min:o.min,max:o.max},c=this.timeRanges[r]&&Object.keys(this.timeRanges[r].children)||[];for(let t of c){const e=this.timeRanges[t];e&&((!a.min||e.mina.max)&&(a.max=e.max),a.count+=e.count)}for(let t of Object.keys(this.timeRanges))s[t]||delete this.timeRanges[t];return new Response(JSON.stringify(a),{headers:{"Content-Type":"application/json"}})}}var Jy=function(){return Jy=Object.assign||function(t){for(var e,r=1,i=arguments.length;r$)/g,""):"[a-zA-Z0-9-_.~%':|=+\\*@$]+")+")"},um=[{name:"url-parameter",pattern:/^:([a-zA-Z0-9-_]*[a-zA-Z0-9]{1})(<(.+?)>)?/,regex:function(t){return new RegExp(lm(t[2]))}},{name:"url-parameter-splat",pattern:/^\*([a-zA-Z0-9-_]*[a-zA-Z0-9]{1})/,regex:/([^?]*)/},{name:"url-parameter-matrix",pattern:/^;([a-zA-Z0-9-_]*[a-zA-Z0-9]{1})(<(.+?)>)?/,regex:function(t){return new RegExp(";"+t[1]+"="+lm(t[2]))}},{name:"query-parameter",pattern:/^(?:\?|&)(?::)?([a-zA-Z0-9-_]*[a-zA-Z0-9]{1})/},{name:"delimiter",pattern:/^(\/|\?)/,regex:function(t){return new RegExp("\\"+t[0])}},{name:"sub-delimiter",pattern:/^(!|&|-|_|\.|;)/,regex:function(t){return new RegExp(t[0])}},{name:"fragment",pattern:/^([0-9a-zA-Z]+)/,regex:function(t){return new RegExp(t[0])}}],hm=function t(e,r){if(void 0===r&&(r=[]),!um.some((function(i){var n=e.match(i.pattern);return!!n&&(r.push({type:i.name,match:n[0],val:n.slice(1,2),otherVal:n.slice(2),regex:i.regex instanceof Function?i.regex(n):i.regex}),n[0].length0,this.hasSpatParam=this.tokens.filter((function(t){return/splat$/.test(t.type)})).length>0,this.hasMatrixParams=this.tokens.filter((function(t){return/matrix$/.test(t.type)})).length>0,this.hasQueryParams=this.tokens.filter((function(t){return/^query-parameter/.test(t.type)})).length>0,this.spatParams=this.getParams("url-parameter-splat"),this.urlParams=this.getParams(/^url-parameter/),this.queryParams=this.getParams("query-parameter"),this.params=this.urlParams.concat(this.queryParams),this.source=this.tokens.filter((function(t){return void 0!==t.regex})).map((function(t){return t.regex.source})).join("")}return t.createPath=function(e,r){return new t(e,r)},t.prototype.isQueryParam=function(t){return-1!==this.queryParams.indexOf(t)},t.prototype.isSpatParam=function(t){return-1!==this.spatParams.indexOf(t)},t.prototype.test=function(t,e){var r=this,i=Jy(Jy({caseSensitive:!1,strictTrailingSlash:!1},this.options),e),n=function(t,e){return e||"\\/"===t?t:t.replace(/\\\/$/,"")+"(?:\\/)?"}(this.source,i.strictTrailingSlash),s=this.urlTest(t,n+(this.hasQueryParams?"(\\?.*$|$)":"$"),i.caseSensitive,i.urlParamsEncoding);if(!s||!this.hasQueryParams)return s;var o=im(t,i.queryParams);return 0===Object.keys(o).filter((function(t){return!r.isQueryParam(t)})).length?(Object.keys(o).forEach((function(t){return s[t]=o[t]})),s):null},t.prototype.partialTest=function(t,e){var r=this,i=Jy(Jy({caseSensitive:!1,delimited:!0},this.options),e),n=function(t,e){return e?/(\/)$/.test(t)?t:t+"(\\/|\\?|\\.|;|$)":t}(this.source,i.delimited),s=this.urlTest(t,n,i.caseSensitive,i.urlParamsEncoding);if(!s)return s;if(!this.hasQueryParams)return s;var o=im(t,i.queryParams);return Object.keys(o).filter((function(t){return r.isQueryParam(t)})).forEach((function(t){return function(t,e,r){void 0===r&&(r="");var i=t[e];return t[e]=void 0===i?r:Array.isArray(i)?i.concat(r):[i,r],t}(s,t,o[t])})),s},t.prototype.build=function(t,e){var r=this;void 0===t&&(t={});var i=Jy(Jy({ignoreConstraints:!1,ignoreSearch:!1,queryParams:{}},this.options),e),n=Object.keys(t).filter((function(t){return!r.isQueryParam(t)})).reduce((function(e,n){if(!pm(t[n]))return e;var s=t[n],o=r.isSpatParam(n);return"boolean"==typeof s?e[n]=s:Array.isArray(s)?e[n]=s.map((function(t){return cm(t,i.urlParamsEncoding,o)})):e[n]=cm(s,i.urlParamsEncoding,o),e}),{});if(this.urlParams.some((function(e){return!pm(t[e])}))){var s=this.urlParams.filter((function(e){return!pm(t[e])}));throw new Error("Cannot build path: '"+this.path+"' requires missing parameters { "+s.join(", ")+" }")}if(!i.ignoreConstraints&&!this.tokens.filter((function(t){return/^url-parameter/.test(t.type)&&!/-splat$/.test(t.type)})).every((function(t){return new RegExp("^"+lm(t.otherVal[0])+"$").test(n[t.val])})))throw new Error("Some parameters of '"+this.path+"' are of invalid format");var o=this.tokens.filter((function(t){return!1===/^query-parameter/.test(t.type)})).map((function(t){return"url-parameter-matrix"===t.type?";"+t.val+"="+n[t.val[0]]:/^url-parameter/.test(t.type)?n[t.val[0]]:t.match})).join("");if(i.ignoreSearch)return o;var a=function(t,e){var r=Xy(e);return Object.keys(t).filter((function(e){return function(t){return void 0!==t}(t[e])})).map((function(e){return tm(e,t[e],r)})).filter(Boolean).join("&")}(this.queryParams.filter((function(e){return-1!==Object.keys(t).indexOf(e)})).reduce((function(e,r){return e[r]=t[r],e}),{}),i.queryParams);return a?o+"?"+a:o},t.prototype.getParams=function(t){var e=t instanceof RegExp?function(e){return t.test(e.type)}:function(e){return e.type===t};return this.tokens.filter(e).map((function(t){return t.val[0]}))},t.prototype.urlTest=function(t,e,r,i){var n=this,s=new RegExp("^"+e,r?"":"i"),o=t.match(s);return o?this.urlParams.length?o.slice(1,this.urlParams.length+1).reduce((function(t,e,r){return t[n.urlParams[r]]=(am[i]||decodeURIComponent)(e),t}),{}):{}:null},t}();class gm{constructor(t){this.routes={};for(const[e,r]of Object.entries(t)){let t,i;r instanceof Array?(t=r[0],i=r[1]||"GET"):(t=r,i="GET"),this.routes[i]=this.routes[i]||{},this.routes[i][e]=new fm(t)}}match(t,e="GET"){for(const[r,i]of Object.entries(this.routes[e]||[])){const e=t.split("?",2),n=e[0],s=i.test(n);if(s)return s._route=r,s._query=new URLSearchParams(2===e.length?e[1]:""),s}return{_route:null}}}class wm{constructor(t){this.router=new gm(this.routes),this.collections=t}get routes(){return{index:"coll-index",coll:"c/:coll",urls:"c/:coll/urls",createColl:["c/create","POST"],deleteColl:["c/:coll","DELETE"],updateAuth:["c/:coll/updateAuth","POST"],updateMetadata:["c/:coll/metadata","POST"],curated:"c/:coll/curated/:list",pages:"c/:coll/pages",textIndex:"c/:coll/textIndex",deletePage:["c/:coll/page/:page","DELETE"]}}async apiResponse(t,e,r){const i=this.router.match(t,e.method),n=await this.handleApi(e,i,r);if(n instanceof Response)return n;const s=n.error?404:200;return this.makeResponse(n,s)}async handleApi(t,e){switch(e._route){case"index":return await this.listAll(e._query.get("filter"));case"createColl":{const e=await t.json();return I(await this.collections.initNewColl(e.metadata||{},e.extraConfig||{}))}case"coll":{const t=await this.collections.getColl(e.coll);if(!t)return{error:"collection_not_found"};const r=I(t);return"1"===e._query.get("all")?(t.store.db?(r.pages=await t.store.getAllPages(),r.lists=await t.store.db.getAll("pageLists"),r.curatedPages=await t.store.db.getAll("curatedPages")):(r.pages=[],r.lists=[],r.curatedPages=[]),r.verify=await t.store.getVerifyInfo()):(r.numLists=await t.store.db.count("pageLists"),r.numPages=await t.store.db.count("pages")),t.config.metadata.ipfsPins&&(r.ipfsPins=t.config.metadata.ipfsPins),r}case"deleteColl":{const t="1"===e._query.get("reload");return await this.collections.deleteColl(e.coll,t)?await this.listAll():{error:"collection_not_found"}}case"updateAuth":{const r=await t.json();return{success:await this.collections.updateAuth(e.coll,r.headers)}}case"updateMetadata":{const r=await t.json();return{metadata:await this.collections.updateMetadata(e.coll,r)}}case"urls":{const t=await this.collections.getColl(e.coll);if(!t)return{error:"collection_not_found"};const r=e._query.get("url"),i=Number(e._query.get("count")||100),n=e._query.get("mime"),s="1"===e._query.get("prefix"),o=e._query.get("fromUrl"),a=e._query.get("fromTs"),c=e._query.get("fromMime"),l=Number(e._query.get("fromStatus")||0);if(!t.store.resourcesByMime)return{urls:[]};let u;return u=r?await t.store.resourcesByUrlAndMime(r,n,i,s,o,a):await t.store.resourcesByMime(n,i,c,o,l),u=u||[],{urls:u}}case"pages":{const t=await this.collections.getColl(e.coll);if(!t)return{error:"collection_not_found"};return{pages:await t.store.getAllPages()}}case"textIndex":{const t=await this.collections.getColl(e.coll);return t?t.store.getTextIndex?await t.store.getTextIndex():{}:{error:"collection_not_found"}}case"curated":{const t=await this.collections.getColl(e.coll);if(!t)return{error:"collection_not_found"};const r=Number(e.list);return{curated:await t.store.db.getAllFromIndex("curatedPages","listPages",IDBKeyRange.bound([r],[r+1]))}}case"deletePage":{const t=await this.collections.getColl(e.coll);if(!t)return{error:"collection_not_found"};const{pageSize:r,deleteSize:i}=t.store.deletePage(e.page);return this.collections.updateSize(e.coll,r,i),{pageSize:r,deleteSize:i}}default:return{error:"not_found"}}}async listAll(t){const e=await this.collections.listAll(),r=[];return e.forEach((e=>{"live"!==e.type&&"remoteproxy"!==e.type&&(t&&0!==e.type.indexOf(t)||r.push(I(e)))})),{colls:r}}makeResponse(t,e=200){return new Response(JSON.stringify(t),{status:e,headers:{"Content-Type":"application/json"}})}}const ym=/^(?::([\w-]+)\/)?(\d*)([a-z]+_|[$][a-z0-9:.-]+)?(?:\/|\||%7C|%7c)(.+)/;class mm{constructor(t,e,{isRoot:r=!1,mod:i="",ts:n="",proxyOrigin:s=null,localOrigin:o=null}={}){const a=ym.exec(t);if(this.url="",this.timestamp=n,this.mod=i,this.pageId="",this.hash="",!a&&(t.startsWith("https:")||t.startsWith("http:")||t.startsWith("blob:")))this.url=t;else if(!a&&r)this.url="https://"+t;else{if(!a)return void(this.url=null);this.pageId=a[1]||"",this.timestamp=a[2],this.mod=a[3],this.url=a[4]}if(s&&o){const t=new URL(this.url);t.origin===o&&(this.url=s+t.pathname+(t.search?t.search:""))}const c=this.url.indexOf("#");c>0&&(this.hash=this.url.slice(c),this.url=this.url.substring(0,c)),this.request=e,this.method=e.method,this.mode=e.mode,this._postToGetConverted=!1}get headers(){return this.request.headers}get destination(){return this.request.destination}get referrer(){return this.request.referrer}async convertPostToGet(){if(this._postToGetConverted)return this.url;const t=this.request;if("POST"!==t.method&&"PUT"!==t.method)return this.url;const e={method:t.method,postData:await t.text(),headers:t.headers,url:this.url};return F(e)&&(this.url=e.url,this.method="GET",this.mode="navigate"===this.request.mode?"same-origin":this.request.mode,this._postToGetConverted=!0),this.url}prepareProxyRequest(t,e=!0){let r,i,n;if(e){r=new Headers(this.request.headers),i=this.request.referrer;const e=i.indexOf("/http",t.length-1);e>0&&(i=i.slice(e+1),r.set("X-Proxy-Referer",i)),n=this.request.credentials,this.cookie&&r.set("X-Proxy-Cookie",this.cookie)}else r=new Headers,n="omit";let s=this.url;if(s.startsWith("//"))try{s=new URL(i).protocol+s}catch(t){s="https:"+s}return{referrer:i,headers:r,credentials:n,url:s}}async getBody(){const t=this.request.clone();return new Uint8Array(await t.arrayBuffer())}}const bm="x-wabac-is-ajax-req";class Am extends Ky{constructor(t,e=null,r={}){super(self),this.prefixes=t,this.colls={},this.inited=null,this.root=e,this.defaultConfig=r,this._fileHandles={}}_createCollection(t){return new br(t,this.prefixes,this.defaultConfig)}loadAll(t){return this.colls={},this.inited=super.loadAll(t),this.inited}async getColl(t){return this.colls[t]||(this.colls[t]=await this.loadColl(t)),this.colls[t]}async reload(t){delete this.colls[t],await this.getColl(t)}async addCollection(t,e){const r=await super.addCollection(t,e);return r&&r.name&&(this.colls[r.name]=this._createCollection(r)),r}async deleteColl(t,e=!1){return this.colls[t]&&(this.colls[t].store&&this.colls[t].store.delete&&await this.colls[t].store.delete(),e&&this.colls[t].config&&this.colls[t].config.extra&&this.colls[t].config.extra.fileHandle&&(this._fileHandles[this.colls[t].config.sourceUrl]=this.colls[t].config.extra.fileHandle)),!!await super.deleteColl(t)&&(delete this.colls[t],!0)}async initNewColl(t,e={},r="archive"){const i=await super.initNewColl(t,e,r);return i&&(this.colls[i.name]=i),i}async updateAuth(t,e){this.colls[t]&&this.colls[t].store.updateHeaders&&this.colls[t].store.updateHeaders(e),await super.updateAuth(t,e)}async updateMetadata(t,e){const r=await super.updateMetadata(t,e);return this.colls[t]&&r&&(this.colls[t].config.metadata=r,this.colls[t].metadata=r),r}async updateSize(t,e,r,i){const n=await super.updateSize(t,e,r,i);return this.colls[t]&&n&&(this.colls[t].config.metadata=n,this.colls[t].metadata=n),void 0!==i&&this.colls[t]&&(this.colls[t].config.decode=i),n}}class Em{constructor({staticData:t=null,ApiClass:e=wm,defaultConfig:r={},CollectionsClass:i=Am}={}){this.prefix=self.registration?self.registration.scope:"",this.replayPrefix=this.prefix;const n=new URLSearchParams(self.location.search);let s="w";n.has("replayPrefix")&&(s=n.get("replayPrefix")),s&&(this.replayPrefix+=s+"/"),this.staticPrefix=this.prefix+"static/",this.distPrefix=this.prefix+"dist/";const o={static:this.staticPrefix,root:this.prefix,main:this.replayPrefix};this.staticData=t||new Map,this.staticData.set(this.staticPrefix+"wombat.js",{type:"application/javascript",content:'/*! wombat.js is part of Webrecorder project. Copyright (C) 2020-2023, Webrecorder Software. Licensed under the Affero General Public License v3. */(()=>{"use strict";function t(){this._map=[]}function e(t,e){void 0!==self.Symbol&&void 0!==self.Symbol.toStringTag&&Object.defineProperty(t.prototype,self.Symbol.toStringTag,{value:e,enumerable:!1})}function r(t){for(var e,r,i=t.__proto__||t.constructor.prototype||t.prototype,o=Object.getOwnPropertyNames(i),n=o.length,s=0;s=0?this._map.splice(e,1)[0][1]:null},t.prototype.map=function(t){for(var e=0;et+=String.fromCharCode(e)),""):t?t.toString():"";try{return"__wb_post_data="+btoa(e)}catch{return"__wb_post_data="}}function _(t){let{method:e,headers:r,postData:i}=t;if("GET"===e)return!1;function o(t){return t instanceof Uint8Array&&(t=(new TextDecoder).decode(t)),t}let n="";switch((r.get("content-type")||"").split(";")[0]){case"application/x-www-form-urlencoded":n=o(i);break;case"application/json":n=d(o(i));break;case"text/plain":try{n=d(o(i),!1)}catch{n=l(i)}break;case"multipart/form-data":{let t=r.get("content-type");if(!t)throw new Error("utils cannot call postToGetURL when missing content-type header");n=function(t,e){return function(t,e){let r=new URLSearchParams;t instanceof Uint8Array&&(t=(new TextDecoder).decode(t));try{let i=e.split("boundary=")[1],o=t.split(new RegExp("-*"+i+"-*","mi"));for(let t of o){let e=t.trim().match(/name="([^"]+)"\\r\\n\\r\\n(.*)/im);e&&r.set(e[1],e[2])}}catch{}return r}(t,e).toString()}(o(i),t);break}default:n=l(i)}return null!==n&&(t.url=function(t,e,r){if(!r)return t;let i=t.indexOf("?")>0?"&":"?";return`${t}${i}__wb_method=${r}&${e}`}(t.url,n,t.method),t.method="GET",t.requestBody=n,!0)}function u(t,e=!0){if("string"==typeof t)try{t=JSON.parse(t)}catch{t={}}let r=new URLSearchParams,i={};try{JSON.stringify(t,((t,e)=>(["object","function"].includes(typeof e)||r.set((t=>r.has(t)?(t in i||(i[t]=1),t+"."+ ++i[t]+"_"):t)(t),e),e)))}catch(t){if(!e)throw t}return r}function d(t,e=!0){return u(t,e).toString()}function f(e,i){if(!(this instanceof f))return new f(e,i);this.debug_rw=!1,this.$wbwindow=e,this.WBWindow=Window,this.origHost=e.location.host,this.origHostname=e.location.hostname,this.origProtocol=e.location.protocol,this.HTTP_PREFIX="http://",this.HTTPS_PREFIX="https://",this.REL_PREFIX="//",this.VALID_PREFIXES=[this.HTTP_PREFIX,this.HTTPS_PREFIX,this.REL_PREFIX],this.IGNORE_PREFIXES=["#","about:","data:","blob:","mailto:","javascript:","{","*"],"ignore_prefixes"in i&&(this.IGNORE_PREFIXES=this.IGNORE_PREFIXES.concat(i.ignore_prefixes)),this.WB_CHECK_THIS_FUNC="_____WB$wombat$check$this$function_____",this.WB_ASSIGN_FUNC="_____WB$wombat$assign$function_____",this.wb_setAttribute=e.Element.prototype.setAttribute,this.wb_getAttribute=e.Element.prototype.getAttribute,this.wb_funToString=Function.prototype.toString,this.WBAutoFetchWorker=null,this.wbUseAFWorker=i.enable_auto_fetch&&null!=e.Worker&&i.is_live,this.wb_rel_prefix="",this.wb_wombat_updating=!1,this.message_listeners=new t,this.storage_listeners=new t,this.linkAsTypes={script:"js_",worker:"js_",style:"cs_",image:"im_",document:"if_",fetch:"mp_",font:"oe_",audio:"oe_",video:"oe_",embed:"oe_",object:"oe_",track:"oe_","":"mp_",null:"mp_",undefined:"mp_"},this.linkTagMods={linkRelToAs:{import:this.linkAsTypes,preload:this.linkAsTypes},stylesheet:"cs_",null:"mp_",undefined:"mp_","":"mp_"},this.tagToMod={A:{href:"mp_"},AREA:{href:"mp_"},AUDIO:{src:"oe_",poster:"im_"},BASE:{href:"mp_"},EMBED:{src:"oe_"},FORM:{action:"mp_"},FRAME:{src:"fr_"},IFRAME:{src:"if_"},IMAGE:{href:"im_","xlink:href":"im_"},IMG:{src:"im_",srcset:"im_"},INPUT:{src:"oe_"},INS:{cite:"mp_"},META:{content:"mp_"},OBJECT:{data:"oe_",codebase:"oe_"},Q:{cite:"mp_"},SCRIPT:{src:"js_","xlink:href":"js_"},SOURCE:{src:"oe_",srcset:"oe_"},TRACK:{src:"oe_"},VIDEO:{src:"oe_",poster:"im_"},image:{href:"im_","xlink:href":"im_"}},this.URL_PROPS=["href","hash","pathname","host","hostname","protocol","origin","search","port"],this.wb_info=i,this.wb_opts=i.wombat_opts,this.wb_replay_prefix=i.prefix,this.wb_is_proxy=this.wb_info.proxy_magic||!this.wb_replay_prefix,this.wb_info.top_host=this.wb_info.top_host||"*",this.wb_curr_host=e.location.protocol+"//"+e.location.host,this.wb_info.wombat_opts=this.wb_info.wombat_opts||{},this.wb_orig_scheme=this.wb_info.wombat_scheme+"://",this.wb_orig_origin=this.wb_orig_scheme+this.wb_info.wombat_host,this.wb_abs_prefix=this.wb_replay_prefix,this.wb_capture_date_part="",!this.wb_info.is_live&&this.wb_info.wombat_ts&&(this.wb_capture_date_part="/"+this.wb_info.wombat_ts+"/"),this.BAD_PREFIXES=["http:"+this.wb_replay_prefix,"https:"+this.wb_replay_prefix,"http:/"+this.wb_replay_prefix,"https:/"+this.wb_replay_prefix],this.hostnamePortRe=/^[\\w-]+(\\.[\\w-_]+)+(:\\d+)(\\/|$)/,this.ipPortRe=/^\\d+\\.\\d+\\.\\d+\\.\\d+(:\\d+)?(\\/|$)/,this.workerBlobRe=/__WB_pmw\\(.*?\\)\\.(?=postMessage\\()/g,this.rmCheckThisInjectRe=/_____WB\\$wombat\\$check\\$this\\$function_____\\(.*?\\)/g,this.STYLE_REGEX=/(url\\s*\\(\\s*[\\\\"\']*)([^)\'"]+)([\\\\"\']*\\s*\\))/gi,this.IMPORT_REGEX=/(@import\\s*[\\\\"\']*)([^)\'";]+)([\\\\"\']*\\s*;?)/gi,this.IMPORT_JS_REGEX=/^(import\\s*\\([\'"]+)([^\'"]+)(["\'])/i,this.no_wombatRe=/WB_wombat_/g,this.srcsetRe=/\\s*(\\S*\\s+[\\d.]+[wx]),|(?:\\s*,(?:\\s+|(?=https?:)))/,this.cookie_path_regex=/\\bPath=\'?"?([^;\'"\\s]+)/i,this.cookie_domain_regex=/\\bDomain=([^;\'"\\s]+)/i,this.cookie_expires_regex=/\\bExpires=([^;\'"]+)/gi,this.SetCookieRe=/,(?![|])/,this.IP_RX=/^(\\d)+\\.(\\d)+\\.(\\d)+\\.(\\d)+$/,this.FullHTMLRegex=/^\\s*<(?:html|head|body|!doctype html)/i,this.IsTagRegex=/^\\s*0&&e.preserveMedia(r)}))},w.prototype.terminate=function(){this.worker.terminate()},w.prototype.justFetch=function(t){this.worker.postMessage({type:"fetch-all",values:t})},w.prototype.fetchAsPage=function(t,e,r){if(t){var i={"X-Wombat-History-Page":e};if(r){var o=encodeURIComponent(r.trim());r&&(i["X-Wombat-History-Title"]=o)}var n={url:t,options:{headers:i,cache:"no-store"}};this.justFetch([n])}},w.prototype.postMessage=function(t,e){if(e){var r=this;Promise.resolve().then((function(){r.worker.postMessage(t)}))}else this.worker.postMessage(t)},w.prototype.preserveSrcset=function(t,e){this.postMessage({type:"values",srcset:{value:t,mod:e,presplit:!0}},!0)},w.prototype.preserveDataSrcset=function(t){this.postMessage({type:"values",srcset:{value:t.dataset.srcset,mod:this.rwMod(t),presplit:!1}},!0)},w.prototype.preserveMedia=function(t){this.postMessage({type:"values",media:t},!0)},w.prototype.getSrcset=function(t){return this.wombat.wb_getAttribute?this.wombat.wb_getAttribute.call(t,"srcset"):t.getAttribute("srcset")},w.prototype.rwMod=function(t){switch(t.tagName){case"SOURCE":return t.parentElement&&"PICTURE"===t.parentElement.tagName?"im_":"oe_";case"IMG":return"im_"}return"oe_"},w.prototype.extractFromLocalDoc=function(){var t=this;Promise.resolve().then((function(){for(var e={type:"values",context:{docBaseURI:document.baseURI}},r=[],i=0,o=document.styleSheets;i=0||t.indexOf("ecmascript")>=0)&&(t.indexOf("json")>=0||t.indexOf("text/")>=0))},f.prototype.skipWrapScriptTextBasedOnText=function(t){if(!t||t.indexOf(this.WB_ASSIGN_FUNC)>=0||0===t.indexOf("<"))return!0;for(var e=["window","self","document","location","top","parent","frames","opener"],r=0;r=0)return!1;return!0},f.prototype.nodeHasChildren=function(t){if(!t)return!1;if("function"==typeof t.hasChildNodes)return t.hasChildNodes();var e=t.children||t.childNodes;return!!e&&e.length>0},f.prototype.rwModForElement=function(t,e){if(t){var r="mp_";if("LINK"===t.tagName&&"href"===e){if(t.rel){var i=t.rel.trim().toLowerCase(),o=this.wb_getAttribute.call(t,"as");if(o&&null!=this.linkTagMods.linkRelToAs[i])r=this.linkTagMods.linkRelToAs[i][o.toLowerCase()];else null!=this.linkTagMods[i]&&(r=this.linkTagMods[i])}}else{var n=this.tagToMod[t.tagName];null!=n&&(r=n[e])}return r}},f.prototype.removeWBOSRC=function(t){"SCRIPT"!==t.tagName||t.__$removedWBOSRC$__||(t.hasAttribute("__wb_orig_src")&&t.removeAttribute("__wb_orig_src"),t.__$removedWBOSRC$__=!0)},f.prototype.retrieveWBOSRC=function(t){var e;if("SCRIPT"===t.tagName&&!t.__$removedWBOSRC$__)return null==(e=this.wb_getAttribute?this.wb_getAttribute.call(t,"__wb_orig_src"):t.getAttribute("__wb_orig_src"))&&(t.__$removedWBOSRC$__=!0),e},f.prototype.wrapScriptTextJsProxy=function(t){return\'var _____WB$wombat$assign$function_____ = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; };\\nif (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } }\\n{\\nlet window = _____WB$wombat$assign$function_____("window");\\nlet globalThis = _____WB$wombat$assign$function_____("globalThis");\\nlet self = _____WB$wombat$assign$function_____("self");\\nlet document = _____WB$wombat$assign$function_____("document");\\nlet location = _____WB$wombat$assign$function_____("location");\\nlet top = _____WB$wombat$assign$function_____("top");\\nlet parent = _____WB$wombat$assign$function_____("parent");\\nlet frames = _____WB$wombat$assign$function_____("frames");\\nlet opener = _____WB$wombat$assign$function_____("opener");\\n{\\n\'+t.replace(this.DotPostMessageRe,".__WB_pmw(self.window)$1")+"\\n\\n}}"},f.prototype.watchElem=function(t,e){if(!this.$wbwindow.MutationObserver)return!1;new this.$wbwindow.MutationObserver((function(t,r){for(var i=0;i"},f.prototype.getFinalUrl=function(t,e,r){var i=t?this.wb_rel_prefix:this.wb_abs_prefix;return null==e&&(e=this.wb_info.mod),this.wb_info.is_live||(i+=this.wb_info.wombat_ts),"/"!==(i+=e)[i.length-1]&&(i+="/"),i+r},f.prototype.resolveRelUrl=function(t,e){var r=e||this.$wbwindow.document,i=this.makeParser(r.baseURI,r),o=i.href.lastIndexOf("#"),n=o>=0?i.href.substring(0,o):i.href,s=n.lastIndexOf("/");return s>=0&&s!==n.length-1?i.href=n.substring(0,s+1)+t:i.href=n+t,i.href},f.prototype.extractOriginalURL=function(t){if(!t)return"";if(this.wb_is_proxy)return t;var e,r=t.toString(),i=r;if(this.startsWithOneOf(i,this.IGNORE_PREFIXES))return i;if(i.startsWith(this.wb_info.static_prefix))return i;e=this.startsWith(i,this.wb_abs_prefix)?this.wb_abs_prefix.length:this.wb_rel_prefix&&this.startsWith(i,this.wb_rel_prefix)?this.wb_rel_prefix.length:this.wb_rel_prefix?1:0;var o=i.indexOf("/http",e);return o<0&&(o=i.indexOf("///",e)),o<0&&(o=i.indexOf("/blob:",e)),o<0&&(o=i.indexOf("/about:blank",e)),o>=0?i=i.substr(o+1):((o=i.indexOf(this.wb_replay_prefix))>=0&&(i=i.substr(o+this.wb_replay_prefix.length)),i.length>4&&"_"===i.charAt(2)&&"/"===i.charAt(3)&&(i=i.substr(4)),i===r||this.startsWithOneOf(i,this.VALID_PREFIXES)||this.startsWith(i,"blob:")||(i=this.wb_orig_scheme+i)),"/"===r.charAt(0)&&"/"!==r.charAt(1)&&this.startsWith(i,this.wb_orig_origin)&&(i=i.substr(this.wb_orig_origin.length)),this.startsWith(i,this.REL_PREFIX)?this.wb_info.wombat_scheme+":"+i:i},f.prototype.makeParser=function(t,e){var r=this.extractOriginalURL(t),i=e;return e||(i="about:blank"===this.$wbwindow.location.href&&this.$wbwindow.opener?this.$wbwindow.opener.document:this.$wbwindow.document),this._makeURLParser(r,i)},f.prototype._makeURLParser=function(t,e){try{return new this.$wbwindow.URL(t,e.baseURI)}catch(t){}var r=e.createElement("a");return r._no_rewrite=!0,r.href=t,r},f.prototype.defProp=function(t,e,r,i,o){var n=Object.getOwnPropertyDescriptor(t,e);if(n&&!n.configurable)return!1;if(!i)return!1;var s={configurable:!0,enumerable:o||!1,get:i};r&&(s.set=r);try{return Object.defineProperty(t,e,s),!0}catch(t){return console.warn("Failed to redefine property %s",e,t.message),!1}},f.prototype.defGetterProp=function(t,e,r,i){var o=Object.getOwnPropertyDescriptor(t,e);if(o&&!o.configurable)return!1;if(!r)return!1;try{return Object.defineProperty(t,e,{configurable:!0,enumerable:i||!1,get:r}),!0}catch(t){return console.warn("Failed to redefine property %s",e,t.message),!1}},f.prototype.getOrigGetter=function(t,e){var r;if(t.__lookupGetter__&&(r=t.__lookupGetter__(e)),!r&&Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(t,e);i&&(r=i.get)}return r},f.prototype.getOrigSetter=function(t,e){var r;if(t.__lookupSetter__&&(r=t.__lookupSetter__(e)),!r&&Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(t,e);i&&(r=i.set)}return r},f.prototype.getAllOwnProps=function(t){for(var e=[],r=Object.getOwnPropertyNames(t),i=0;i "+n),r.href=n}}},f.prototype.checkLocationChange=function(t,e){var r=typeof t,i=e?this.$wbwindow.__WB_replay_top.location:this.$wbwindow.location;"string"===r?this.updateLocation(t,i.href,i):"object"===r&&this.updateLocation(t.href,t._orig_href,i)},f.prototype.checkAllLocations=function(){if(this.wb_wombat_updating)return!1;this.wb_wombat_updating=!0,this.checkLocationChange(this.$wbwindow.WB_wombat_location,!1),this.$wbwindow.WB_wombat_location!=this.$wbwindow.__WB_replay_top.WB_wombat_location&&this.checkLocationChange(this.$wbwindow.__WB_replay_top.WB_wombat_location,!0),this.wb_wombat_updating=!1},f.prototype.proxyToObj=function(t){if(t)try{var e=t.__WBProxyRealObj__;if(e)return e}catch(t){}return t},f.prototype.objToProxy=function(t){if(t)try{var e=t._WB_wombat_obj_proxy;if(e)return e}catch(t){}return t},f.prototype.defaultProxyGet=function(t,e,r,i){switch(e){case"__WBProxyRealObj__":return t;case"location":case"WB_wombat_location":return t.WB_wombat_location;case"_WB_wombat_obj_proxy":return t._WB_wombat_obj_proxy;case"__WB_pmw":case this.WB_ASSIGN_FUNC:case this.WB_CHECK_THIS_FUNC:return t[e];case"origin":return t.WB_wombat_location.origin;case"constructor":return t.constructor}var o=t[e],n=typeof o;if("function"===n&&-1!==r.indexOf(e)){switch(e){case"requestAnimationFrame":case"cancelAnimationFrame":if(!this.isNativeFunction(o))return o;break;case"eval":if(this.isNativeFunction(o))return this.wrappedEval(o)}var s=i[e];return s&&s.original===o||(s={original:o,boundFn:o.bind(t)},i[e]=s),s.boundFn}return"object"===n&&o&&o._WB_wombat_obj_proxy?(o instanceof this.WBWindow&&this.initNewWindowWombat(o),o._WB_wombat_obj_proxy):o},f.prototype.setLoc=function(t,e){var r=this.makeParser(e,t.ownerDocument);t._orig_href=e,t._parser=r;var i=r.href;t._hash=r.hash,t._href=i,t._host=r.host,t._hostname=r.hostname,r.origin?t._origin=r.host?r.origin:"null":t._origin=r.protocol+"//"+r.hostname+(r.port?":"+r.port:""),t._pathname=r.pathname,t._port=r.port,t._protocol=r.protocol,t._search=r.search,Object.defineProperty||(t.href=i,t.hash=r.hash,t.host=t._host,t.hostname=t._hostname,t.origin=t._origin,t.pathname=t._pathname,t.port=t._port,t.protocol=t._protocol,t.search=t._search)},f.prototype.makeGetLocProp=function(t,e){var r=this;return function(){if(this._no_rewrite)return e.call(this,t);var i=e.call(this,"href");return"href"===t?r.extractOriginalURL(i):"ancestorOrigins"===t?[]:(this._orig_href!==i&&r.setLoc(this,i),this["_"+t])}},f.prototype.makeSetLocProp=function(t,e,r){var i=this;return function(o){if(this._no_rewrite)return e.call(this,t,o);if(this["_"+t]!==o){if(this["_"+t]=o,!this._parser){var n=r.call(this);this._parser=i.makeParser(n,this.ownerDocument)}var s=!1;if("href"===t&&"string"==typeof o)if(o&&this._parser instanceof URL)try{o=new URL(o,this._parser).href}catch(t){console.warn("Error resolving URL",t)}else o&&("."===o[0]||"#"===o[0]?o=i.resolveRelUrl(o,this.ownerDocument):"/"===o[0]&&(o.length>1&&"/"===o[1]?o=this._parser.protocol+o:(s=!0,o=WB_wombat_location.origin+o)));try{this._parser[t]=o}catch(e){console.log("Error setting "+t+" = "+o)}"hash"===t?(o=this._parser[t],e.call(this,"hash",o)):(s=s||o===this._parser.pathname,o=i.rewriteUrl(this._parser.href,s),e.call(this,"href",o))}}},f.prototype.styleReplacer=function(t,e,r,i,o,n){return e+this.rewriteUrl(r)+i},f.prototype.domConstructorErrorChecker=function(t,e,r,i){var o,n="number"==typeof i?i:1;if(t instanceof this.WBWindow?o="Failed to construct \'"+e+"\': Please use the \'new\' operator, this DOM object constructor cannot be called as a function.":r&&r.length=0)return o;if(0===o.indexOf(this.wb_rel_prefix)&&o.indexOf("http")>1){var a=o.indexOf(":/");return a>0&&"/"!==o[a+2]?o.substring(0,a+2)+"/"+o.substring(a+2):o}return this.getFinalUrl(!0,r,this.wb_orig_origin+o)}"."===o.charAt(0)&&(o=this.resolveRelUrl(o,i));var h=this.startsWithOneOf(o.toLowerCase(),this.VALID_PREFIXES);if(h){var w=this.replayTopHost,p=this.replayTopProtocol,c=h+w+"/";if(this.startsWith(o,c)){if(this.startsWith(o,this.wb_replay_prefix))return o;var l=p+"//",_=o.substring(c.length),u=!1;return _.indexOf(this.wb_rel_prefix)<0&&o.indexOf("/static/")<0&&(_=this.getFinalUrl(!0,r,WB_wombat_location.origin+"/"+_),u=!0),h!==l&&h!==this.REL_PREFIX&&(u=!0),u&&(o=e?"":l+w,_&&"/"!==_[0]&&(o+="/"),o+=_),o}return this.getFinalUrl(e,r,o)}return(h=this.startsWithOneOf(o,this.BAD_PREFIXES))?this.getFinalUrl(e,r,this.extractOriginalURL(o)):o},f.prototype.rewriteUrl=function(t,e,r,i){var o=this.rewriteUrl_(t,e,r,i);return this.debug_rw&&(t!==o?console.log("REWRITE: "+t+" -> "+o):console.log("NOT REWRITTEN "+t)),o},f.prototype.performAttributeRewrite=function(t,e,r,i){switch(e){case"innerHTML":case"outerHTML":return this.rewriteHtml(r);case"filter":return this.rewriteInlineStyle(r);case"style":return this.rewriteStyle(r);case"srcset":return this.rewriteSrcset(r,t)}if(i&&!this.startsWithOneOf(r,this.VALID_PREFIXES))return r;var o=this.rwModForElement(t,e);return this.wbUseAFWorker&&this.WBAutoFetchWorker&&this.isSavedDataSrcSrcset(t)&&this.WBAutoFetchWorker.preserveDataSrcset(t),this.rewriteUrl(r,!1,o,t.ownerDocument)},f.prototype.rewriteAttr=function(t,e,r){var i=!1;if(!t||!t.getAttribute||t._no_rewrite||t["_"+e])return i;var o=this.wb_getAttribute.call(t,e);if(!o||this.startsWith(o,"javascript:"))return i;var n=this.performAttributeRewrite(t,e,o,r);return n!==o&&(this.removeWBOSRC(t),this.wb_setAttribute.call(t,e,n),i=!0),i},f.prototype.noExceptRewriteStyle=function(t){try{return this.rewriteStyle(t)}catch(e){return t}},f.prototype.rewriteStyle=function(t){if(!t)return t;var e=t;return"object"==typeof t&&(e=t.toString()),"string"==typeof e?e.replace(this.STYLE_REGEX,this.styleReplacer).replace(this.IMPORT_REGEX,this.styleReplacer).replace(this.no_wombatRe,""):e},f.prototype.rewriteSrcset=function(t,e){if(!t)return"";for(var r=t.split(this.srcsetRe),i=[],o=this.rwModForElement(e,"srcset"),n=0;n=0){var o="javascript:";r=o+"window.parent._wb_wombat.initNewWindowWombat(window);"+i.substr(o.length)}return r||(r=this.rewriteUrl(i,!1,this.rwModForElement(t,e))),r!==i&&(this.wb_setAttribute.call(t,e,r),!0)},f.prototype.rewriteScript=function(t){if(t.hasAttribute("src")||!t.textContent||!this.$wbwindow.Proxy)return this.rewriteAttr(t,"src");if(this.skipWrapScriptBasedOnType(t.type))return!1;var e=t.textContent.trim();return!this.skipWrapScriptTextBasedOnText(e)&&(t.textContent=this.wrapScriptTextJsProxy(e),!0)},f.prototype.rewriteSVGElem=function(t){var e=this.rewriteAttr(t,"filter");return e=this.rewriteAttr(t,"style")||e,e=this.rewriteAttr(t,"xlink:href")||e,e=this.rewriteAttr(t,"href")||e,e=this.rewriteAttr(t,"src")||e},f.prototype.rewriteElem=function(t){var e=!1;if(!t)return e;if(t instanceof SVGElement)e=this.rewriteSVGElem(t);else switch(t.tagName){case"META":var r=this.wb_getAttribute.call(t,"http-equiv");r&&"content-security-policy"===r.toLowerCase()&&(this.wb_setAttribute.call(t,"http-equiv","_"+r),e=!0);break;case"STYLE":var i=this.rewriteStyle(t.textContent);t.textContent!==i&&(t.textContent=i,e=!0,this.wbUseAFWorker&&this.WBAutoFetchWorker&&null!=t.sheet&&this.WBAutoFetchWorker.deferredSheetExtraction(t.sheet));break;case"LINK":e=this.rewriteAttr(t,"href"),this.wbUseAFWorker&&"stylesheet"===t.rel&&this._addEventListener(t,"load",this.utilFns.wbSheetMediaQChecker);break;case"IMG":e=this.rewriteAttr(t,"src"),e=this.rewriteAttr(t,"srcset")||e,e=this.rewriteAttr(t,"style")||e,this.wbUseAFWorker&&this.WBAutoFetchWorker&&t.dataset.srcset&&this.WBAutoFetchWorker.preserveDataSrcset(t);break;case"OBJECT":if(this.wb_info.isSW&&t.parentElement&&"application/pdf"===t.getAttribute("type")){for(var o=this.$wbwindow.document.createElement("IFRAME"),n=0;n0;)for(var i=r.shift(),o=0;o"+r+"","text/html");if(!i||!this.nodeHasChildren(i.head)||!i.head.children[0].content)return r;var o=i.head.children[0];if(o._no_rewrite=!0,this.recurseRewriteElem(o.content)){var n=o.innerHTML;if(e){var s=o.content.children&&o.content.children[0];if(s){var a="";this.endsWith(n,a)&&!this.endsWith(r.toLowerCase(),a)&&(n=n.substring(0,n.length-a.length))}else if("<"!==r[0]||">"!==r[r.length-1])return void(this.write_buff+=r)}return n}return r},f.prototype.rewriteHtmlFull=function(t,e){var r=(new DOMParser).parseFromString(t,"text/html");if(!r)return t;for(var i=!1,o=0;o=0)r.documentElement._no_rewrite=!0,n=this.reconstructDocType(r.doctype)+r.documentElement.outerHTML;else{r.head._no_rewrite=!0,r.body._no_rewrite=!0;var s=this.nodeHasChildren(r.head),a=this.nodeHasChildren(r.body);if(n=(s?r.head.outerHTML:"")+(a?r.body.outerHTML:""),e)if(r.all.length>3){var h="";this.endsWith(n,h)&&!this.endsWith(t.toLowerCase(),h)&&(n=n.substring(0,n.length-h.length))}else if("<"!==t[0]||">"!==t[t.length-1])return void(this.write_buff+=t);n=this.reconstructDocType(r.doctype)+n}return n}return t},f.prototype.rewriteInlineStyle=function(t){var e;try{e=decodeURIComponent(t)}catch(r){e=t}if(e!==t){var r=this.rewriteStyle(e).split(",",2);return r[0]+","+encodeURIComponent(r[1])}return this.rewriteStyle(t)},f.prototype.rewriteCookie=function(t){var e=this,r=t.replace(this.wb_abs_prefix,"").replace(this.wb_rel_prefix,"");return r=r.replace(this.cookie_domain_regex,(function(t,i){var o={domain:i,cookie:r,wb_type:"cookie"};return e.sendTopMessage(o,!0),e.$wbwindow.location.hostname.indexOf(".")>=0&&!e.IP_RX.test(e.$wbwindow.location.hostname)?"Domain=."+e.$wbwindow.location.hostname:""})).replace(this.cookie_path_regex,(function(t,r){var i=e.rewriteUrl(r);return 0===i.indexOf(e.wb_curr_host)&&(i=i.substring(e.wb_curr_host.length)),"Path="+i})),"https:"!==e.$wbwindow.location.protocol&&(r=r.replace("secure","")),r.replace(",|",",")},f.prototype.rewriteWorker=function(t){if(!t)return t;var e=0===(t=t.toString()).indexOf("blob:"),r=0===t.indexOf("javascript:");if(!e&&!r){if(!this.startsWithOneOf(t,this.VALID_PREFIXES)&&!this.startsWith(t,"/")&&!this.startsWithOneOf(t,this.BAD_PREFIXES)){var i=this.resolveRelUrl(t,this.$wbwindow.document);return this.rewriteUrl(i,!1,"wkr_",this.$wbwindow.document)}return this.rewriteUrl(t,!1,"wkr_",this.$wbwindow.document)}var o=r?t.replace("javascript:",""):null;if(e){var n=new XMLHttpRequest;this.utilFns.XHRopen.call(n,"GET",t,!1),this.utilFns.XHRsend.call(n),o=n.responseText.replace(this.workerBlobRe,"").replace(this.rmCheckThisInjectRe,"this")}if(this.wb_info.static_prefix||this.wb_info.ww_rw_script){var s=this.$wbwindow.document.baseURI;o="(function() { self.importScripts(\'"+(this.wb_info.ww_rw_script||this.wb_info.static_prefix+"wombatWorkers.js")+"\'); new WBWombat({\'prefix\': \'"+this.wb_abs_prefix+"\', \'prefixMod\': \'"+this.wb_abs_prefix+"wkrf_/\', \'originalURL\': \'"+s+"\'}); })();"+o}var a=new Blob([o],{type:"application/javascript"});return URL.createObjectURL(a)},f.prototype.rewriteTextNodeFn=function(t,e,r){var i,o=this.proxyToObj(t);if(r.length>0&&o.parentElement&&"STYLE"===o.parentElement.tagName){i=new Array(r.length);var n=r.length-1;2===n?(i[0]=r[0],i[1]=r[1]):1===n&&(i[0]=r[0]),i[n]=this.rewriteStyle(r[n])}else i=r;return e.__WB_orig_apply?e.__WB_orig_apply(o,i):e.apply(o,i)},f.prototype.rewriteChildNodeFn=function(t,e,r){var i=this.proxyToObj(t);if(0===r.length)return e.call(i);var o=this.rewriteElementsInArguments(r);return e.__WB_orig_apply?e.__WB_orig_apply(i,o):e.apply(i,o)},f.prototype.rewriteInsertAdjHTMLOrElemArgs=function(t,e,r,i,o){var n=this.proxyToObj(t);return n._no_rewrite?e.call(n,r,i):o?e.call(n,r,this.rewriteHtml(i)):(this.rewriteElemComplete(i),e.call(n,r,i))},f.prototype.rewriteSetTimeoutInterval=function(t,e,r){var i=this.isString(r[0]),o=i?new Array(r.length):r;if(i){this.$wbwindow.Proxy?o[0]=this.wrapScriptTextJsProxy(r[0]):o[0]=r[0].replace(/\\blocation\\b/g,"WB_wombat_$&");for(var n=1;n(t.includes(r)&&(i=o.rewriteStyle(i)),e[r]=i,!0),get(t,i,n){var s=t[i];return"function"!=typeof s||"setProperty"!==i&&!o.isNativeFunction(s)?s:(r[i]||(r[i]=s.bind(e)),r[i])}})}))},f.prototype.overrideIframeContentAccess=function(t){if(this.$wbwindow.HTMLIFrameElement&&this.$wbwindow.HTMLIFrameElement.prototype){var e=this.$wbwindow.HTMLIFrameElement.prototype,r=this.getOrigGetter(e,t);if(r){var i=this.getOrigSetter(e,t),o=this;this.defProp(e,t,i,(function(){return o.initIframeWombat(this),o.objToProxy(r.call(this))})),e["_get_"+t]=r}}},f.prototype.overrideFramesAccess=function(t){if(!t.Proxy||t!==t.frames){t.__wb_frames=t.frames;var e=this,r=function(){for(var t=0;t0&&i(this.$wbwindow.CSSStyleValue,"parse"),this.$wbwindow.CSSStyleValue.parseAll&&this.$wbwindow.CSSStyleValue.parseAll.toString().indexOf("[native code]")>0&&i(this.$wbwindow.CSSStyleValue,"parseAll")}if(this.$wbwindow.CSSKeywordValue&&this.$wbwindow.CSSKeywordValue.prototype){var o=this.$wbwindow.CSSKeywordValue;this.$wbwindow.CSSKeywordValue=(t=this.$wbwindow.CSSKeywordValue,function(e){return r.domConstructorErrorChecker(this,"CSSKeywordValue",arguments),new t(r.rewriteStyle(e))}),this.$wbwindow.CSSKeywordValue.prototype=o.prototype,Object.defineProperty(this.$wbwindow.CSSKeywordValue.prototype,"constructor",{value:this.$wbwindow.CSSKeywordValue}),e(this.$wbwindow.CSSKeywordValue,"CSSKeywordValue")}if(this.$wbwindow.StylePropertyMap&&this.$wbwindow.StylePropertyMap.prototype){var n=this.$wbwindow.StylePropertyMap.prototype.set;this.$wbwindow.StylePropertyMap.prototype.set=function(){if(arguments.length<=1)return n.__WB_orig_apply?n.__WB_orig_apply(this,arguments):n.apply(this,arguments);var t=new Array(arguments.length);t[0]=arguments[0];for(var e=1;e")&&(e[0]=r.rewriteHtml(e[0]),i.type="text/html"),new t(e,i)}),this.$wbwindow.Blob.prototype=e.prototype}},f.prototype.initWSOverride=function(){this.$wbwindow.WebSocket&&this.$wbwindow.WebSocket.prototype&&(this.$wbwindow.WebSocket=function(t){function e(t,e){this.addEventListener=function(){},this.removeEventListener=function(){},this.close=function(){},this.send=function(t){console.log("ws send",t)},this.protocol=e&&e.length?e[0]:"",this.url=t,this.readyState=0}return e.CONNECTING=0,e.OPEN=1,e.CLOSING=2,e.CLOSED=3,e}(this.$wbwindow.WebSocket),Object.defineProperty(this.$wbwindow.WebSocket.prototype,"constructor",{value:this.$wbwindow.WebSocket}),e(this.$wbwindow.WebSocket,"WebSocket"))},f.prototype.initDocTitleOverride=function(){var t=this.getOrigGetter(this.$wbwindow.document,"title"),e=this.getOrigSetter(this.$wbwindow.document,"title"),r=this;this.defProp(this.$wbwindow.document,"title",(function(t){var i=e.call(this,t),o={wb_type:"title",title:t};return r.sendTopMessage(o),i}),t)},f.prototype.initFontFaceOverride=function(){if(this.$wbwindow.FontFace){var t,r=this,i=this.$wbwindow.FontFace;this.$wbwindow.FontFace=(t=this.$wbwindow.FontFace,function(e,i,o){r.domConstructorErrorChecker(this,"FontFace",arguments,2);var n=i;return null!=i&&(n="string"!=typeof i?r.rewriteInlineStyle(i.toString()):r.rewriteInlineStyle(i)),new t(e,n,o)}),this.$wbwindow.FontFace.prototype=i.prototype,Object.defineProperty(this.$wbwindow.FontFace.prototype,"constructor",{value:this.$wbwindow.FontFace}),e(this.$wbwindow.FontFace,"FontFace")}},f.prototype.initFixedRatio=function(t){try{this.$wbwindow.devicePixelRatio=t}catch(t){}if(Object.defineProperty)try{Object.defineProperty(this.$wbwindow,"devicePixelRatio",{value:t,writable:!1})}catch(t){}},f.prototype.initPaths=function(t){t.wombat_opts=t.wombat_opts||{},Object.assign(this.wb_info,t),this.wb_opts=t.wombat_opts,this.wb_replay_prefix=t.prefix,this.wb_is_proxy=t.proxy_magic||!this.wb_replay_prefix,this.wb_info.top_host=this.wb_info.top_host||"*",this.wb_curr_host=this.$wbwindow.location.protocol+"//"+this.$wbwindow.location.host,this.wb_info.wombat_opts=this.wb_info.wombat_opts||{},this.wb_orig_scheme=t.wombat_scheme+"://",this.wb_orig_origin=this.wb_orig_scheme+t.wombat_host,this.wb_abs_prefix=this.wb_replay_prefix,!t.is_live&&t.wombat_ts?this.wb_capture_date_part="/"+t.wombat_ts+"/":this.wb_capture_date_part="",this.initBadPrefixes(this.wb_replay_prefix),this.initCookiePreset()},f.prototype.initSeededRandom=function(t){this.$wbwindow.Math.seed=parseInt(t);var e=this;this.$wbwindow.Math.random=function(){return e.$wbwindow.Math.seed=(9301*e.$wbwindow.Math.seed+49297)%233280,e.$wbwindow.Math.seed/233280}},f.prototype.initHistoryOverrides=function(){this.overrideHistoryFunc("pushState"),this.overrideHistoryFunc("replaceState");var t=this;this.$wbwindow.addEventListener("popstate",(function(e){t.sendHistoryUpdate(t.$wbwindow.WB_wombat_location.href,t.$wbwindow.document.title)}))},f.prototype.initCookiePreset=function(){if(this.wb_info.presetCookie)for(var t=this.wb_info.presetCookie.split(";"),e=0;e2&&!this.__WB_xhr_open_arguments[2]&&-1===navigator.userAgent.indexOf("Firefox")&&(this.__WB_xhr_open_arguments[2]=!0,console.warn("wombat.js: Sync XHR not supported in SW-based replay in this browser, converted to async")),this._no_rewrite||(this.__WB_xhr_open_arguments[1]=i.rewriteUrl(this.__WB_xhr_open_arguments[1])),o.apply(this,this.__WB_xhr_open_arguments),!i.startsWith(this.__WB_xhr_open_arguments[1],"data:")){for(const[t,e]of this.__WB_xhr_headers.entries())n.call(this,t,e);n.call(this,"X-Pywb-Requested-With","XMLHttpRequest")}return s.call(this,t)}}else if(this.$wbwindow.XMLHttpRequest.prototype.open){var h=this.$wbwindow.XMLHttpRequest.prototype.open;this.utilFns.XHRopen=h,this.utilFns.XHRsend=this.$wbwindow.XMLHttpRequest.prototype.send,this.$wbwindow.XMLHttpRequest.prototype.open=function(t,e,r,o,n){var s=this._no_rewrite?e:i.rewriteUrl(e),a=!0;null==r||r||(a=!1),h.call(this,t,s,a,o,n),i.startsWith(s,"data:")||this.setRequestHeader("X-Pywb-Requested-With","XMLHttpRequest")}}if(this.$wbwindow.fetch){var w=this.$wbwindow.fetch;this.$wbwindow.fetch=function(t,e){var r=t,o=typeof t;if("string"===o)r=i.rewriteUrl(t);else if("object"===o&&t.url){var n=i.rewriteUrl(t.url);n!==t.url&&(r=new Request(n,e))}else"object"===o&&t.href&&(r=i.rewriteUrl(t.href));if(e||(e={}),void 0===e.credentials)try{e.credentials="include"}catch(t){}return w.call(i.proxyToObj(this),r,e)}}if(this.$wbwindow.Request&&this.$wbwindow.Request.prototype){var p=this.$wbwindow.Request;this.$wbwindow.Request=(t=this.$wbwindow.Request,function(e,r){i.domConstructorErrorChecker(this,"Request",arguments);var o=r||{},n=e,s=typeof e;switch(s){case"string":n=i.rewriteUrl(e);break;case"object":if(n=e,e.url){var a=i.rewriteUrl(e.url);a!==e.url&&(n=new t(a,e))}else e.href&&(n=i.rewriteUrl(e.toString(),!0))}return o.credentials="include",o.referrer&&(o.referrer=i.rewriteUrl(o.referrer)),new t(n,o)}),this.$wbwindow.Request.prototype=p.prototype,Object.defineProperty(this.$wbwindow.Request.prototype,"constructor",{value:this.$wbwindow.Request}),this.overridePropExtract(this.$wbwindow.Request.prototype,"url"),this.overridePropExtract(this.$wbwindow.Request.prototype,"referrer")}if(this.$wbwindow.Response&&this.$wbwindow.Response.prototype){var c=this.$wbwindow.Response.prototype.redirect;this.$wbwindow.Response.prototype.redirect=function(t,e){var r=i.rewriteUrl(t,!0,null,i.$wbwindow.document);return c.call(this,r,e)},this.overridePropExtract(this.$wbwindow.Response.prototype,"url")}if(this.$wbwindow.EventSource&&this.$wbwindow.EventSource.prototype){var l=this.$wbwindow.EventSource;this.$wbwindow.EventSource=(r=this.$wbwindow.EventSource,function(t,e){i.domConstructorErrorChecker(this,"EventSource",arguments);var o=t;return null!=t&&(o=i.rewriteUrl(t)),new r(o,e)}),this.$wbwindow.EventSource.prototype=l.prototype,Object.defineProperty(this.$wbwindow.EventSource.prototype,"constructor",{value:this.$wbwindow.EventSource}),e(this.$wbwindow.EventSource,"EventSource")}},f.prototype.initElementGetSetAttributeOverride=function(){if(!this.wb_opts.skip_setAttribute&&this.$wbwindow.Element&&this.$wbwindow.Element.prototype){var t=this,e=this.$wbwindow.Element.prototype;if(e.setAttribute){var r=e.setAttribute;e._orig_setAttribute=r,e.setAttribute=function(e,i){var o=i;if(e&&"string"==typeof o){var n=e.toLowerCase();if("LINK"===this.tagName&&"href"===n&&0===o.indexOf("data:text/css"))o=t.rewriteInlineStyle(i);else if("style"===n)o=t.rewriteStyle(i);else if("srcset"===n||"imagesrcset"===n&&"LINK"===this.tagName)o=t.rewriteSrcset(i,this);else{t.shouldRewriteAttr(this.tagName,n)&&(t.removeWBOSRC(this),this._no_rewrite||(o=t.rewriteUrl(i,!1,t.rwModForElement(this,n))))}}return r.call(this,e,o)}}if(e.getAttribute){var i=e.getAttribute;this.wb_getAttribute=i,e.getAttribute=function(e){var r=i.call(this,e);if(null===r)return r;var o=e;if(e&&(o=e.toLowerCase()),t.shouldRewriteAttr(this.tagName,o)){var n=t.retrieveWBOSRC(this);return n||t.extractOriginalURL(r)}return t.startsWith(o,"data-")&&t.startsWithOneOf(r,t.wb_prefixes)?t.extractOriginalURL(r):r}}}},f.prototype.initSvgImageOverrides=function(){if(this.$wbwindow.SVGImageElement){var t=this.$wbwindow.SVGImageElement.prototype,e=t.getAttribute,r=t.getAttributeNS,i=t.setAttribute,o=t.setAttributeNS,n=this;t.getAttribute=function(t){var r=e.call(this,t);return t.indexOf("xlink:href")>=0||"href"===t?n.extractOriginalURL(r):r},t.getAttributeNS=function(t,e){var i=r.call(this,t,e);return e.indexOf("xlink:href")>=0||"href"===e?n.extractOriginalURL(i):i},t.setAttribute=function(t,e){var r=e;return(t.indexOf("xlink:href")>=0||"href"===t)&&(r=n.rewriteUrl(e)),i.call(this,t,r)},t.setAttributeNS=function(t,e,r){var i=r;return(e.indexOf("xlink:href")>=0||"href"===e)&&(i=n.rewriteUrl(r)),o.call(this,t,e,i)}}},f.prototype.initCreateElementNSFix=function(){if(this.$wbwindow.document.createElementNS&&this.$wbwindow.Document.prototype.createElementNS){var t=this.$wbwindow.document.createElementNS,e=this,r=function(r,i){return t.call(e.proxyToObj(this),e.extractOriginalURL(r),i)};this.$wbwindow.Document.prototype.createElementNS=r,this.$wbwindow.document.createElementNS=r}},f.prototype.initInsertAdjacentElementHTMLOverrides=function(){var t=this.$wbwindow.Element;if(t&&t.prototype){var e=t.prototype,r=this.rewriteInsertAdjHTMLOrElemArgs;if(e.insertAdjacentHTML){var i=e.insertAdjacentHTML;e.insertAdjacentHTML=function(t,e){return r(this,i,t,e,!0)}}if(e.insertAdjacentElement){var o=e.insertAdjacentElement;e.insertAdjacentElement=function(t,e){return r(this,o,t,e,!1)}}}},f.prototype.initDomOverride=function(){var t=this.$wbwindow.Node;if(t&&t.prototype){var e=this.rewriteNodeFuncArgs;if(t.prototype.appendChild){var r=t.prototype.appendChild;t.prototype.appendChild=function(t,i){return e(this,r,t,i)}}if(t.prototype.insertBefore){var i=t.prototype.insertBefore;t.prototype.insertBefore=function(t,r){return e(this,i,t,r)}}if(t.prototype.replaceChild){var o=t.prototype.replaceChild;t.prototype.replaceChild=function(t,r){return e(this,o,t,r)}}this.overridePropToProxy(t.prototype,"ownerDocument"),this.overridePropToProxy(this.$wbwindow.HTMLHtmlElement.prototype,"parentNode"),this.overridePropToProxy(this.$wbwindow.Event.prototype,"target")}this.$wbwindow.Element&&this.$wbwindow.Element.prototype&&(this.overrideParentNodeAppendPrepend(this.$wbwindow.Element),this.overrideChildNodeInterface(this.$wbwindow.Element,!1)),this.$wbwindow.DocumentFragment&&this.$wbwindow.DocumentFragment.prototype&&this.overrideParentNodeAppendPrepend(this.$wbwindow.DocumentFragment)},f.prototype.initDocOverrides=function(t){if(Object.defineProperty){this.overrideReferrer(t),this.defGetterProp(t,"origin",(function(){return this.WB_wombat_location.origin})),this.defGetterProp(this.$wbwindow,"origin",(function(){return this.WB_wombat_location.origin}));var e=this;this.defProp(t,"domain",(function(t){var r=this.WB_wombat_location;r&&e.endsWith(r.hostname,t)&&(this.__wb_domain=t)}),(function(){return this.__wb_domain||this.WB_wombat_location.hostname}))}},f.prototype.initDocWriteOpenCloseOverride=function(){if(this.$wbwindow.DOMParser){var t=this.$wbwindow.Document.prototype,e=this.$wbwindow.document;this._writeBuff="";var r=this,i=e.write,o=function(){return d(this,i,u(arguments))};e.write=o,t.write=o;var n=e.writeln,s=function(){return d(this,n,u(arguments))};e.writeln=s,t.writeln=s;var a=e.open,h=function(){var t,e=r.proxyToObj(this);if(3===arguments.length){var i=r.rewriteUrl(arguments[0],!1,"mp_");t=a.call(e,i,arguments[1],arguments[2]),r.initNewWindowWombat(t,arguments[0])}else t=a.call(e),_()?r._writeBuff="":r.initNewWindowWombat(e.defaultView);return t};e.open=h,t.open=h;var w=e.close,p=function(){if(r._writeBuff)return r.blobUrlForIframe(r.$wbwindow.frameElement,r._writeBuff),void(r._writeBuff="");var t=r.proxyToObj(this);return r.initNewWindowWombat(t.defaultView),w.__WB_orig_apply?w.__WB_orig_apply(t,arguments):w.apply(t,arguments)};e.close=p,t.close=p;var c=this.getOrigGetter(t,"body"),l=this.getOrigSetter(t,"body");c&&l&&this.defProp(t,"body",(function(t){return t&&(t instanceof HTMLBodyElement||t instanceof HTMLFrameSetElement)&&r.rewriteElemComplete(t),l.call(r.proxyToObj(this),t)}),c)}function _(){return r.wb_info.isSW&&r.$wbwindow.frameElement}function u(t){return 0===t.length?"":1===t.length?t[0]:Array.prototype.join.call(t,"")}function d(t,e,i){r.$wbwindow;if(!_()){i=r.rewriteHtml(i,!0);var o=r.proxyToObj(t),n=e.call(o,i);return r.initNewWindowWombat(o.defaultView),n}r._writeBuff+=i}},f.prototype.initIframeWombat=function(t){var e;e=t._get_contentWindow?t._get_contentWindow.call(t):t.contentWindow;try{if(!e||e===this.$wbwindow||e._skip_wombat||e._wb_wombat)return}catch(t){return}var r=t.src;this.initNewWindowWombat(e,r)},f.prototype.initNewWindowWombat=function(t,e){var r=!1;if(t&&!t._wb_wombat){if(e&&""!==e&&!this.startsWithOneOf(e,["about:blank","javascript:"])||(r=!0),!r&&this.wb_info.isSW){var i=this.extractOriginalURL(e);("about:blank"===i||i.startsWith("srcdoc:")||i.startsWith("blob:"))&&(r=!0)}if(r){var o={};Object.assign(o,this.wb_info);var n=new f(t,o);t._wb_wombat=n.wombatInit()}else this.initProtoPmOrigin(t),this.initPostMessageOverride(t),this.initMessageEventOverride(t),this.initCheckThisFunc(t),this.initImportWrapperFunc(t)}},f.prototype.initTimeoutIntervalOverrides=function(){var t=this.rewriteSetTimeoutInterval;if(this.$wbwindow.setTimeout&&!this.$wbwindow.setTimeout.__$wbpatched$__){var e=this.$wbwindow.setTimeout;this.$wbwindow.setTimeout=function(){return t(this,e,arguments)},this.$wbwindow.setTimeout.__$wbpatched$__=!0}if(this.$wbwindow.setInterval&&!this.$wbwindow.setInterval.__$wbpatched$__){var r=this.$wbwindow.setInterval;this.$wbwindow.setInterval=function(){return t(this,r,arguments)},this.$wbwindow.setInterval.__$wbpatched$__=!0}},f.prototype.initWorkerOverrides=function(){var t,e,r=this;if(this.$wbwindow.Worker&&!this.$wbwindow.Worker._wb_worker_overridden){var i=this.$wbwindow.Worker;this.$wbwindow.Worker=(t=i,function(e,i){return r.domConstructorErrorChecker(this,"Worker",arguments),new t(r.rewriteWorker(e),i)}),this.$wbwindow.Worker.prototype=i.prototype,Object.defineProperty(this.$wbwindow.Worker.prototype,"constructor",{value:this.$wbwindow.Worker}),this.$wbwindow.Worker._wb_worker_overridden=!0}if(this.$wbwindow.SharedWorker&&!this.$wbwindow.SharedWorker.__wb_sharedWorker_overridden){var o=this.$wbwindow.SharedWorker;this.$wbwindow.SharedWorker=(e=o,function(t,i){return r.domConstructorErrorChecker(this,"SharedWorker",arguments),new e(r.rewriteWorker(t),i)}),this.$wbwindow.SharedWorker.prototype=o.prototype,Object.defineProperty(this.$wbwindow.SharedWorker.prototype,"constructor",{value:this.$wbwindow.SharedWorker}),this.$wbwindow.SharedWorker.__wb_sharedWorker_overridden=!0}if(this.$wbwindow.ServiceWorkerContainer&&this.$wbwindow.ServiceWorkerContainer.prototype&&this.$wbwindow.ServiceWorkerContainer.prototype.register){var n=this.$wbwindow.ServiceWorkerContainer.prototype.register;this.$wbwindow.ServiceWorkerContainer.prototype.register=function(t,e){var i=new URL(t,r.$wbwindow.document.baseURI).href,o=r.getPageUnderModifier();return e&&e.scope?e.scope=r.rewriteUrl(e.scope,!1,o):e={scope:r.rewriteUrl("/",!1,o)},n.call(this,r.rewriteUrl(i,!1,"sw_"),e)}}if(this.$wbwindow.Worklet&&this.$wbwindow.Worklet.prototype&&this.$wbwindow.Worklet.prototype.addModule&&!this.$wbwindow.Worklet.__wb_workerlet_overridden){var s=this.$wbwindow.Worklet.prototype.addModule;this.$wbwindow.Worklet.prototype.addModule=function(t,e){var i=r.rewriteUrl(t,!1,"js_");return s.call(this,i,e)},this.$wbwindow.Worklet.__wb_workerlet_overridden=!0}},f.prototype.initLocOverride=function(t,e,r){if(Object.defineProperty)for(var i=0;i=0&&i.splice(n,1)}return i}})}catch(t){console.log(t)}},f.prototype.initHashChange=function(){if(this.$wbwindow.__WB_top_frame){var t=this;this.$wbwindow.addEventListener("message",(function(e){if(e.data&&e.data.from_top){var r=e.data.message;r.wb_type&&"outer_hashchange"===r.wb_type&&t.$wbwindow.location.hash!=r.hash&&(t.$wbwindow.location.hash=r.hash)}})),this.$wbwindow.addEventListener("hashchange",(function(){var e={wb_type:"hashchange",hash:t.$wbwindow.location.hash};t.sendTopMessage(e)}))}},f.prototype.initPostMessageOverride=function(t){if(t.postMessage&&!t.__orig_postMessage){var e=t.postMessage,r=this;t.__orig_postMessage=e;var i=function(i,o,n,s){var a,h,w=r.proxyToObj(this);if(w||((w=t).__WB_source=t),w.__WB_source&&w.__WB_source.WB_wombat_location){var p=w.__WB_source;if(a=p.WB_wombat_location.origin,w.__WB_win_id||(w.__WB_win_id={},w.__WB_counter=0),!p.__WB_id){var c=w.__WB_counter;p.__WB_id=c+p.WB_wombat_location.href,w.__WB_counter+=1}w.__WB_win_id[p.__WB_id]=p,h=p.__WB_id,w.__WB_source=void 0}else a=window.WB_wombat_location.origin;var l=o;l===w.location.origin&&(l=a);var _={from:a,to_origin:l,src_id:h,message:i,from_top:s};if("*"!==o){if("null"===w.location.origin||""===w.location.origin)return;o=w.location.origin}return e.call(w,_,o,n)};t.postMessage=i,t.Window.prototype.postMessage=i;var o=null,n=(o=t.EventTarget&&t.EventTarget.prototype?t.EventTarget.prototype:t).addEventListener;o.addEventListener=function(t,e,i){var o,s=r.proxyToObj(this);if("message"===t?o=r.message_listeners.add_or_get(e,(function(){return c(e,s,r)})):"storage"===t?r.storage_listeners.add_or_get(e,(function(){return p(e,s)})):o=e,o)return n.call(s,t,o,i)};var s=o.removeEventListener;o.removeEventListener=function(t,e,i){var o,n=r.proxyToObj(this);if("message"===t?o=r.message_listeners.remove(e):"storage"===t?r.storage_listeners.remove(e):o=e,o)return s.call(n,t,o,i)};var a=function(e,i){var o=r.getOrigSetter(t,e);r.defProp(t,e,(function(t){this["__orig_"+e]=t;var n=r.proxyToObj(this),s=t?i(t,n,r):t;return o.call(n,s)}),(function(){return this["__orig_"+e]}))};a("onmessage",c),a("onstorage",p)}},f.prototype.initMessageEventOverride=function(t){t.MessageEvent&&!t.MessageEvent.prototype.__extended&&(this.addEventOverride("target"),this.addEventOverride("srcElement"),this.addEventOverride("currentTarget"),this.addEventOverride("eventPhase"),this.addEventOverride("path"),this.overridePropToProxy(t.MessageEvent.prototype,"source"),t.MessageEvent.prototype.__extended=!0)},f.prototype.initUIEventsOverrides=function(){this.overrideAnUIEvent("UIEvent"),this.overrideAnUIEvent("MouseEvent"),this.overrideAnUIEvent("TouchEvent"),this.overrideAnUIEvent("FocusEvent"),this.overrideAnUIEvent("KeyboardEvent"),this.overrideAnUIEvent("WheelEvent"),this.overrideAnUIEvent("InputEvent"),this.overrideAnUIEvent("CompositionEvent")},f.prototype.initOpenOverride=function(){var t=this.$wbwindow.open;this.$wbwindow.Window.prototype.open&&(t=this.$wbwindow.Window.prototype.open);var e=this,r=function(r,i,o){i&&(i=e.rewriteAttrTarget(i));var n=e.rewriteUrl(r,!1),s=t.call(e.proxyToObj(this),n,i,o);return e.initNewWindowWombat(s,r),s};this.$wbwindow.open=r,this.$wbwindow.Window.prototype.open&&(this.$wbwindow.Window.prototype.open=r);for(var i=0;i}\n */\nWBWombat.prototype.rewriteArgs = function(argsObj) {\n // recreate the original arguments object just with URLs rewritten\n var newArgObj = new Array(argsObj.length);\n for (var i = 0; i < newArgObj.length; i++) {\n newArgObj[i] = this.rewriteURL(argsObj[i]);\n }\n return newArgObj;\n};\n\n/**\n * Rewrites the input to one of the Fetch APIs\n * @param {*|string|Request} input\n * @return {*|string|Request}\n */\nWBWombat.prototype.rewriteFetchApi = function(input) {\n var rwInput = input;\n switch (typeof input) {\n case 'string':\n rwInput = this.rewriteURL(input);\n break;\n case 'object':\n if (input.url) {\n var new_url = this.rewriteURL(input.url);\n if (new_url !== input.url) {\n // not much we can do here Request.url is read only\n // https://developer.mozilla.org/en-US/docs/Web/API/Request/url\n rwInput = new Request(new_url, input);\n }\n } else if (input.href) {\n // it is likely that input is either self.location or self.URL\n // we cant do anything here so just let it go\n rwInput = input.href;\n }\n break;\n }\n return rwInput;\n};\n\n/**\n * Rewrites the input to one of the Cache APIs\n * @param {*|string|Request} request\n * @return {*|string|Request}\n */\nWBWombat.prototype.rewriteCacheApi = function(request) {\n var rwRequest = request;\n if (typeof request === 'string') {\n rwRequest = this.rewriteURL(request);\n }\n return rwRequest;\n};\n\n/**\n * Applies an override to the importScripts function\n * @see https://html.spec.whatwg.org/multipage/workers.html#dom-workerglobalscope-importscripts\n */\nWBWombat.prototype.initImportScriptsRewrite = function() {\n if (!self.importScripts) return;\n var wombat = this;\n var origImportScripts = self.importScripts;\n self.importScripts = function importScripts() {\n // rewrite the arguments object and call original function via fn.apply\n var rwArgs = wombat.rewriteArgs(arguments);\n return origImportScripts.apply(this, rwArgs);\n };\n};\n\n/**\n * Applies overrides to the XMLHttpRequest.open and XMLHttpRequest.responseURL\n * in order to ensure URLs are rewritten.\n *\n * Applies an override to window.fetch in order to rewrite URLs and URLs of\n * the supplied Request objects used as arguments to fetch.\n *\n * Applies overrides to window.Request, window.Response, window.EventSource,\n * and window.WebSocket in order to ensure URLs they operate on are rewritten.\n *\n * @see https://xhr.spec.whatwg.org/\n * @see https://fetch.spec.whatwg.org/\n * @see https://html.spec.whatwg.org/multipage/web-sockets.html#websocket\n * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#the-eventsource-interface\n */\nWBWombat.prototype.initHTTPOverrides = function() {\n var wombat = this;\n if (\n self.XMLHttpRequest &&\n self.XMLHttpRequest.prototype &&\n self.XMLHttpRequest.prototype.open\n ) {\n var oXHROpen = self.XMLHttpRequest.prototype.open;\n self.XMLHttpRequest.prototype.open = function open(\n method,\n url,\n async,\n user,\n password\n ) {\n var rwURL = wombat.rewriteURL(url);\n var openAsync = true;\n if (async != null && !async) openAsync = false;\n oXHROpen.call(this, method, rwURL, openAsync, user, password);\n if (rwURL.indexOf('data:') === -1) {\n this.setRequestHeader('X-Pywb-Requested-With', 'XMLHttpRequest');\n }\n };\n }\n\n if (self.fetch != null) {\n // this fetch is Worker.fetch\n var orig_fetch = self.fetch;\n self.fetch = function fetch(input, init_opts) {\n var rwInput = wombat.rewriteFetchApi(input);\n var newInitOpts = init_opts || {};\n newInitOpts['credentials'] = 'include';\n return orig_fetch.call(this, rwInput, newInitOpts);\n };\n }\n\n if (self.Request && self.Request.prototype) {\n var orig_request = self.Request;\n self.Request = (function(Request_) {\n return function Request(input, init_opts) {\n var newInitOpts = init_opts || {};\n var newInput = wombat.rewriteFetchApi(input);\n newInitOpts['credentials'] = 'include';\n return new Request_(newInput, newInitOpts);\n };\n })(self.Request);\n self.Request.prototype = orig_request.prototype;\n }\n\n if (self.Response && self.Response.prototype) {\n var originalRedirect = self.Response.prototype.redirect;\n self.Response.prototype.redirect = function redirect(url, status) {\n var rwURL = wombat.rewriteUrl(url);\n return originalRedirect.call(this, rwURL, status);\n };\n }\n\n if (self.EventSource && self.EventSource.prototype) {\n var origEventSource = self.EventSource;\n self.EventSource = (function(EventSource_) {\n return function EventSource(url, configuration) {\n var rwURL = url;\n if (url != null) {\n rwURL = wombat.rewriteUrl(url);\n }\n return new EventSource_(rwURL, configuration);\n };\n })(self.EventSource);\n self.EventSource.prototype = origEventSource.prototype;\n Object.defineProperty(self.EventSource.prototype, 'constructor', {\n value: self.EventSource\n });\n }\n\n if (self.WebSocket && self.WebSocket.prototype) {\n var origWebSocket = self.WebSocket;\n self.WebSocket = (function(WebSocket_) {\n return function WebSocket(url, configuration) {\n var rwURL = url;\n if (url != null) {\n rwURL = wombat.rewriteWSURL(url);\n }\n return new WebSocket_(rwURL, configuration);\n };\n })(self.WebSocket);\n self.WebSocket.prototype = origWebSocket.prototype;\n Object.defineProperty(self.WebSocket.prototype, 'constructor', {\n value: self.WebSocket\n });\n }\n};\n\n/**\n * Applies an override to Clients.openWindow and WindowClient.navigate that rewrites\n * the supplied URL that represents a controlled window\n * @see https://w3c.github.io/ServiceWorker/#window-client-interface\n * @see https://w3c.github.io/ServiceWorker/#clients-interface\n */\nWBWombat.prototype.initClientApisOverride = function() {\n var wombat = this;\n if (\n self.Clients &&\n self.Clients.prototype &&\n self.Clients.prototype.openWindow\n ) {\n var oClientsOpenWindow = self.Clients.prototype.openWindow;\n self.Clients.prototype.openWindow = function openWindow(url) {\n var rwURL = wombat.rewriteClientWindowURL(url);\n return oClientsOpenWindow.call(this, rwURL);\n };\n }\n\n if (\n self.WindowClient &&\n self.WindowClient.prototype &&\n self.WindowClient.prototype.navigate\n ) {\n var oWinClientNavigate = self.WindowClient.prototype.navigate;\n self.WindowClient.prototype.navigate = function navigate(url) {\n var rwURL = wombat.rewriteClientWindowURL(url, this);\n return oWinClientNavigate.call(this, rwURL);\n };\n }\n};\n\n/**\n * Applies overrides to the CacheStorage and Cache interfaces in order\n * to rewrite the URLs they operate on\n * @see https://w3c.github.io/ServiceWorker/#cachestorage\n * @see https://w3c.github.io/ServiceWorker/#cache-interface\n */\nWBWombat.prototype.initCacheApisOverride = function() {\n var wombat = this;\n if (\n self.CacheStorage &&\n self.CacheStorage.prototype &&\n self.CacheStorage.prototype.match\n ) {\n var oCacheStorageMatch = self.CacheStorage.prototype.match;\n self.CacheStorage.prototype.match = function match(request, options) {\n var rwRequest = wombat.rewriteCacheApi(request);\n return oCacheStorageMatch.call(this, rwRequest, options);\n };\n }\n\n if (self.Cache && self.Cache.prototype) {\n if (self.Cache.prototype.match) {\n var oCacheMatch = self.Cache.prototype.match;\n self.Cache.prototype.match = function match(request, options) {\n var rwRequest = wombat.rewriteCacheApi(request);\n return oCacheMatch.call(this, rwRequest, options);\n };\n }\n\n if (self.Cache.prototype.matchAll) {\n var oCacheMatchAll = self.Cache.prototype.matchAll;\n self.Cache.prototype.matchAll = function matchAll(request, options) {\n var rwRequest = wombat.rewriteCacheApi(request);\n return oCacheMatchAll.call(this, rwRequest, options);\n };\n }\n\n if (self.Cache.prototype.add) {\n var oCacheAdd = self.Cache.prototype.add;\n self.Cache.prototype.add = function add(request, options) {\n var rwRequest = wombat.rewriteCacheApi(request);\n return oCacheAdd.call(this, rwRequest, options);\n };\n }\n\n if (self.Cache.prototype.addAll) {\n var oCacheAddAll = self.Cache.prototype.addAll;\n self.Cache.prototype.addAll = function addAll(requests) {\n var rwRequests = requests;\n if (Array.isArray(requests)) {\n rwRequests = new Array(requests.length);\n for (var i = 0; i < requests.length; i++) {\n rwRequests[i] = wombat.rewriteCacheApi(requests[i]);\n }\n }\n return oCacheAddAll.call(this, rwRequests);\n };\n }\n\n if (self.Cache.prototype.put) {\n var oCachePut = self.Cache.prototype.put;\n self.Cache.prototype.put = function put(request, response) {\n var rwRequest = wombat.rewriteCacheApi(request);\n return oCachePut.call(this, rwRequest, response);\n };\n }\n\n if (self.Cache.prototype.delete) {\n var oCacheDelete = self.Cache.prototype.delete;\n self.Cache.prototype.delete = function newCacheDelete(request, options) {\n var rwRequest = wombat.rewriteCacheApi(request);\n return oCacheDelete.call(this, rwRequest, options);\n };\n }\n\n if (self.Cache.prototype.keys) {\n var oCacheKeys = self.Cache.prototype.keys;\n self.Cache.prototype.keys = function keys(request, options) {\n var rwRequest = wombat.rewriteCacheApi(request);\n return oCacheKeys.call(this, rwRequest, options);\n };\n }\n }\n};\n\nself.WBWombat = WBWombat;\n"}),r.injectScripts&&(r.injectScripts=r.injectScripts.map((t=>this.staticPrefix+"proxy/"+t))),this.collections=new i(o,n.get("root"),r),this.collections.loadAll(n.get("dbColl")),this.proxyOriginMode=!!n.get("proxyOriginMode"),this.api=new e(this.collections),this.apiPrefix=this.replayPrefix+"api/",this.allowRewrittenCache=!!n.get("allowCache"),this.stats=n.get("stats")?new Yy:null,self.addEventListener("install",(()=>{self.skipWaiting()})),self.addEventListener("activate",(t=>{t.waitUntil(self.clients.claim()),console.log("Activate!")})),self.addEventListener("fetch",(t=>{t.respondWith(this.handleFetch(t))})),self.addEventListener("message",(t=>{"reload_all"===t.data.msg_type&&t.waitUntil(this.collections.loadAll())}))}handleFetch(t){const e=t.request.url;if(this.proxyOriginMode)return this.getResponseFor(t.request,t);if(!e.startsWith(this.prefix))return"chrome-extension://invalid/"===e?S(t.request,"Invalid URL"):this.defaultFetch(t.request);if(this.collections.root&&e.slice(this.prefix.length).indexOf("/")<0)return this.defaultFetch(t.request);if(e.startsWith(this.staticPrefix+"proxy/"))return this.staticPathProxy(e,t.request);if(e.startsWith(this.replayPrefix)&&!e.startsWith(this.staticPrefix))return this.getResponseFor(t.request,t);const r=new URL(e);r.search="",r.hash="";const i=r.href;for(const t of this.staticData.keys())if(t===i){const{content:e,type:r}=this.staticData.get(t);return new Response(e,{headers:{"Content-Type":r}})}return("http:"==r.protocol||"https:"==r.protocol)&&r.pathname.indexOf("/",1)<0?this.handleOffline(t.request):this.defaultFetch(t.request)}staticPathProxy(t,e){return t=t.slice((this.staticPrefix+"proxy/").length),t=new URL(t,self.location.href).href,e=new Request(t),this.defaultFetch(e)}defaultFetch(t){const e={};return"only-if-cached"===t.cache&&"same-origin"!==t.mode&&(e.cache="default"),self.fetch(t,e)}async ensureCached(t){const e=await caches.open("wabac-offline");for(let r of t){r=new URL(r,self.location.href).href;let t=await e.match(r,{ignoreSearch:!0});if(!t)try{t=await this.defaultFetch(r),await e.put(r,t)}catch(t){console.warn(`Failed to Auto Cache: ${r}`,t)}}}async handleOffline(t){let e=null;const r=await caches.open("wabac-offline");try{e=await this.defaultFetch(t)}catch(i){return e=await r.match(t,{ignoreSearch:!0}),e||(e=S(t,"Sorry, this url was not cached for offline use")),e}if(t.url.startsWith(this.prefix+"?"))return e;if(200===e.status){const i=e.clone();await r.put(t,i)}else console.warn(`Not Cacheing ${t.url} - Status ${e.status}`);return e}async getResponseFor(t,e){if(!this.proxyOriginMode&&t.url.startsWith(this.apiPrefix))return this.stats&&t.url.startsWith(this.apiPrefix+"stats.json")?await this.stats.getStats(e):await this.api.apiResponse(t.url.slice(this.apiPrefix.length),t,e);await this.collections.inited;const r=v(t),i=t.headers.get("range");try{if(this.allowRewrittenCache&&!i){const e=await self.caches.match(t);if(e&&!!e.headers.get(bm)===r)return e}}catch(t){}let n=this.collections.root;n||(n=t.url.slice(this.replayPrefix.length).split("/",1)[0]);const s=await this.collections.getColl(n);if(!s||!this.proxyOriginMode&&!t.url.startsWith(s.prefix))return S(t);const o=this.proxyOriginMode?t.url:t.url.substring(s.prefix.length),a={isRoot:!!this.collections.root};this.proxyOriginMode&&(a.mod="id_",a.proxyOrigin=s.config.extraConfig.proxyOrigin,a.localOrigin=self.location.origin);const c=new mm(o,t,a);if(!c.url)return S(t,`Replay URL ${o} not found`);const l=await s.handleRequest(c,e);if(l){if(this.stats&&this.stats.updateStats(l.date,l.status,t,e),this.allowRewrittenCache&&200===l.status)try{const e=await self.caches.open("wabac-"+s.name);r&&l.headers.set(bm,"true");const i=l.clone();await e.put(t,i)}catch(t){console.warn(t)}return l}return i&&console.log("Not Found Range!: "+i),S(t)}}if(self.registration){const t=new Map,r=self.registration.scope;t.set(r,{type:"text/html",content:e}),t.set(r+"index.html",{type:"text/html",content:e});const i={};"1"==new URLSearchParams(self.location.search).get("ruffle")&&(i.injectScripts=["ruffle/ruffle.js"]),self.sw=new Em({staticData:t,defaultConfig:i})}else new Ky(self)})();var n=self;for(var s in i)n[s]=i[s];i.__esModule&&Object.defineProperty(n,"__esModule",{value:!0})})(); \ No newline at end of file diff --git a/ui.js b/ui.js index aab3f8b7..004e4af6 100644 --- a/ui.js +++ b/ui.js @@ -24,13 +24,13 @@ var s;const l=window.trustedTypes,c=l?l.emptyScript:"",d=window.reactiveElementP * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ -var p;u.finalized=!0,u.elementProperties=new Map,u.elementStyles=[],u.shadowRootOptions={mode:"open"},null==d||d({ReactiveElement:u}),(null!==(s=globalThis.reactiveElementVersions)&&void 0!==s?s:globalThis.reactiveElementVersions=[]).push("1.1.1");const m=globalThis.trustedTypes,g=m?m.createPolicy("lit-html",{createHTML:e=>e}):void 0,v=`lit$${(Math.random()+"").slice(9)}$`,w="?"+v,x=`<${w}>`,k=document,y=(e="")=>k.createComment(e),_=e=>null===e||"object"!=typeof e&&"function"!=typeof e,$=Array.isArray,S=e=>{var t;return $(e)||"function"==typeof(null===(t=e)||void 0===t?void 0:t[Symbol.iterator])},z=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,A=/-->/g,C=/>/g,D=/>|[ \n \r](?:([^\s"'>=/]+)([ \n \r]*=[ \n \r]*(?:[^ \n \r"'`<>=]|("|')|))|$)/g,E=/'/g,I=/"/g,P=/^(?:script|style|textarea)$/i,L=e=>(t,...i)=>({_$litType$:e,strings:t,values:i}),T=L(1),U=(L(2),Symbol.for("lit-noChange")),R=Symbol.for("lit-nothing"),q=new WeakMap,M=k.createTreeWalker(k,129,null,!1),F=(e,t)=>{const i=e.length-1,a=[];let r,o=2===t?"":"",n=z;for(let t=0;t"===l[0]?(n=null!=r?r:z,c=-1):void 0===l[1]?c=-2:(c=n.lastIndex-l[2].length,s=l[1],n=void 0===l[3]?D:'"'===l[3]?I:E):n===I||n===E?n=D:n===A||n===C?n=z:(n=D,r=void 0);const h=n===D&&e[t+1].startsWith("/>")?" ":"";o+=n===z?i+x:c>=0?(a.push(s),i.slice(0,c)+"$lit$"+i.slice(c)+v+h):i+v+(-2===c?(a.push(void 0),t):h)}const s=o+(e[i]||"")+(2===t?"":"");if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==g?g.createHTML(s):s,a]};class j{constructor({strings:e,_$litType$:t},i){let a;this.parts=[];let r=0,o=0;const n=e.length-1,s=this.parts,[l,c]=F(e,t);if(this.el=j.createElement(l,i),M.currentNode=this.el.content,2===t){const e=this.el.content,t=e.firstChild;t.remove(),e.append(...t.childNodes)}for(;null!==(a=M.nextNode())&&s.length0){a.textContent=m?m.emptyScript:"";for(let i=0;i2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=R}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,t=this,i,a){const r=this.strings;let o=!1;if(void 0===r)e=N(this,e,t,0),o=!_(e)||e!==this._$AH&&e!==U,o&&(this._$AH=e);else{const a=e;let n,s;for(e=r[0],n=0;ne}):void 0,v=`lit$${(Math.random()+"").slice(9)}$`,w="?"+v,x=`<${w}>`,k=document,y=(e="")=>k.createComment(e),_=e=>null===e||"object"!=typeof e&&"function"!=typeof e,$=Array.isArray,S=e=>{var t;return $(e)||"function"==typeof(null===(t=e)||void 0===t?void 0:t[Symbol.iterator])},z=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,A=/-->/g,C=/>/g,D=/>|[ \n \r](?:([^\s"'>=/]+)([ \n \r]*=[ \n \r]*(?:[^ \n \r"'`<>=]|("|')|))|$)/g,E=/'/g,I=/"/g,P=/^(?:script|style|textarea)$/i,L=e=>(t,...i)=>({_$litType$:e,strings:t,values:i}),T=L(1),U=(L(2),Symbol.for("lit-noChange")),R=Symbol.for("lit-nothing"),q=new WeakMap,M=k.createTreeWalker(k,129,null,!1),F=(e,t)=>{const i=e.length-1,a=[];let r,o=2===t?"":"",n=z;for(let t=0;t"===l[0]?(n=null!=r?r:z,c=-1):void 0===l[1]?c=-2:(c=n.lastIndex-l[2].length,s=l[1],n=void 0===l[3]?D:'"'===l[3]?I:E):n===I||n===E?n=D:n===A||n===C?n=z:(n=D,r=void 0);const h=n===D&&e[t+1].startsWith("/>")?" ":"";o+=n===z?i+x:c>=0?(a.push(s),i.slice(0,c)+"$lit$"+i.slice(c)+v+h):i+v+(-2===c?(a.push(void 0),t):h)}const s=o+(e[i]||"")+(2===t?"":"");if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==g?g.createHTML(s):s,a]};class j{constructor({strings:e,_$litType$:t},i){let a;this.parts=[];let r=0,o=0;const n=e.length-1,s=this.parts,[l,c]=F(e,t);if(this.el=j.createElement(l,i),M.currentNode=this.el.content,2===t){const e=this.el.content,t=e.firstChild;t.remove(),e.append(...t.childNodes)}for(;null!==(a=M.nextNode())&&s.length0){a.textContent=m?m.emptyScript:"";for(let i=0;i2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=R}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,t=this,i,a){const r=this.strings;let o=!1;if(void 0===r)e=B(this,e,t,0),o=!_(e)||e!==this._$AH&&e!==U,o&&(this._$AH=e);else{const a=e;let n,s;for(e=r[0],n=0;n{var a,r;const o=null!==(a=null==i?void 0:i.renderBefore)&&void 0!==a?a:t;let n=o._$litPart$;if(void 0===n){const e=null!==(r=null==i?void 0:i.renderBefore)&&void 0!==r?r:null;o._$litPart$=n=new B(t.insertBefore(y(),e),e,void 0,null!=i?i:{})}return n._$AI(e),n})(t,this.renderRoot,this.renderOptions)}connectedCallback(){var e;super.connectedCallback(),null===(e=this._$Dt)||void 0===e||e.setConnected(!0)}disconnectedCallback(){var e;super.disconnectedCallback(),null===(e=this._$Dt)||void 0===e||e.setConnected(!1)}render(){return U}}X.finalized=!0,X._$litElement$=!0,null===(J=globalThis.litElementHydrateSupport)||void 0===J||J.call(globalThis,{LitElement:X});const ee=globalThis.litElementPolyfillSupport;null==ee||ee({LitElement:X});(null!==(Y=globalThis.litElementVersions)&&void 0!==Y?Y:globalThis.litElementVersions=[]).push("3.1.1"); +var J,Y;null==Q||Q(j,O),(null!==(p=globalThis.litHtmlVersions)&&void 0!==p?p:globalThis.litHtmlVersions=[]).push("2.1.1");class X extends u{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var e,t;const i=super.createRenderRoot();return null!==(e=(t=this.renderOptions).renderBefore)&&void 0!==e||(t.renderBefore=i.firstChild),i}update(e){const t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Dt=((e,t,i)=>{var a,r;const o=null!==(a=null==i?void 0:i.renderBefore)&&void 0!==a?a:t;let n=o._$litPart$;if(void 0===n){const e=null!==(r=null==i?void 0:i.renderBefore)&&void 0!==r?r:null;o._$litPart$=n=new O(t.insertBefore(y(),e),e,void 0,null!=i?i:{})}return n._$AI(e),n})(t,this.renderRoot,this.renderOptions)}connectedCallback(){var e;super.connectedCallback(),null===(e=this._$Dt)||void 0===e||e.setConnected(!0)}disconnectedCallback(){var e;super.disconnectedCallback(),null===(e=this._$Dt)||void 0===e||e.setConnected(!1)}render(){return U}}X.finalized=!0,X._$litElement$=!0,null===(J=globalThis.litElementHydrateSupport)||void 0===J||J.call(globalThis,{LitElement:X});const ee=globalThis.litElementPolyfillSupport;null==ee||ee({LitElement:X});(null!==(Y=globalThis.litElementVersions)&&void 0!==Y?Y:globalThis.litElementVersions=[]).push("3.1.1"); /** * @license * Copyright 2017 Google LLC @@ -116,7 +116,7 @@ class se extends oe{}se.directiveName="unsafeSVG",se.resultType=2;const le=ae(se
      ${i}
      - `:""}}class Ie extends X{constructor(e="sw.js"){super(),this.sourceUrl=null,this.collTitle=null,this.showAbout=!1,this.showFileDropOverlay=!1,this.pageParams=new URLSearchParams,this.inited=!1,this.navMenuShown=!1,this.collPageUrl="",this.pageTitle="",this.pageReplay=!1,this.loadInfo=null,this.swName=e,this.swmanager=null,this.safariKeyframes(),this.addEventListener("dragenter",(e=>{this.maybeStartFileDrop(e)})),this.addEventListener("dragover",(e=>{this.maybeStartFileDrop(e)})),this.addEventListener("dragleave",(()=>{this.showFileDropOverlay=!1})),this.addEventListener("dragend",(()=>{this.showFileDropOverlay=!1})),this.addEventListener("drop",(e=>{this.droppedFile=e.dataTransfer.files[0],this.showFileDropOverlay=!1,e.preventDefault()})),this.maybeStartFileDrop=e=>{this.sourceUrl||(this.showFileDropOverlay=!0,e.preventDefault())}}get appName(){return"ReplayWeb.page"}get homeUrl(){return window.location.pathname}static get properties(){return{inited:{type:Boolean},pageParams:{type:Object},sourceUrl:{type:String},navMenuShown:{type:Boolean},showAbout:{type:Boolean},showFileDropOverlay:{type:Boolean},collTitle:{type:String},loadInfo:{type:Object},embed:{type:String},collPageUrl:{type:String},pageTitle:{type:String},pageReplay:{type:Boolean},source:{type:String},swErrorMsg:{type:Object}}}static get styles(){return ue(Ie.appStyles)}static get appStyles(){return o` + `:""}}class Ie extends X{constructor(e="sw.js"){super(),this.sourceUrl=null,this.collTitle=null,this.showAbout=!1,this.showFileDropOverlay=!1,this.pageParams=new URLSearchParams,this.inited=!1,this.navMenuShown=!1,this.collPageUrl="",this.pageTitle="",this.pageReplay=!1,this.loadInfo=null,this.swName=e,this.swmanager=null,this.skipRuffle=!1,this.useRuffle=!1,this.safariKeyframes(),this.addEventListener("dragenter",(e=>{this.maybeStartFileDrop(e)})),this.addEventListener("dragover",(e=>{this.maybeStartFileDrop(e)})),this.addEventListener("dragleave",(()=>{this.showFileDropOverlay=!1})),this.addEventListener("dragend",(()=>{this.showFileDropOverlay=!1})),this.addEventListener("drop",(e=>{this.droppedFile=e.dataTransfer.files[0],this.showFileDropOverlay=!1,e.preventDefault()})),this.maybeStartFileDrop=e=>{this.sourceUrl||(this.showFileDropOverlay=!0,e.preventDefault())}}get appName(){return"ReplayWeb.page"}get homeUrl(){return window.location.pathname}static get properties(){return{inited:{type:Boolean},pageParams:{type:Object},sourceUrl:{type:String},navMenuShown:{type:Boolean},showAbout:{type:Boolean},showFileDropOverlay:{type:Boolean},collTitle:{type:String},loadInfo:{type:Object},embed:{type:String},collPageUrl:{type:String},pageTitle:{type:String},pageReplay:{type:Boolean},source:{type:String},skipRuffle:{type:Boolean},swErrorMsg:{type:Object}}}static get styles(){return ue(Ie.appStyles)}static get appStyles(){return o` #wrlogo { max-height: 1.0rem; } @@ -299,7 +299,7 @@ class se extends oe{}se.directiveName="unsafeSVG",se.resultType=2;const le=ae(se ${this.showAbout?this.renderAbout():""} ${this.showFileDropOverlay?this.renderDropFileOverlay():""} - `:T``}firstUpdated(){this.initRoute(),this.swmanager=new Ee({name:this.swName,appName:this.appName}),this.swmanager.register().catch((()=>this.swErrorMsg=this.swmanager.renderErrorReport(this.mainLogo))),window.addEventListener("popstate",(()=>{this.initRoute()}))}updated(e){e.has("sourceUrl")&&(this.collTitle=null)}onFavIcons(e){const t=document.querySelector("head"),i=document.querySelectorAll("link[rel*='icon']");for(const e of i)t.removeChild(e);for(const i of e.detail.icons){const e=document.createElement("link");e.rel=i.rel,e.href=i.href,t.appendChild(e)}}skipMenu(e){e.preventDefault(),this.renderRoot.querySelector("#skip-main-target").focus()}onNavMenu(e){e.preventDefault(),e.stopPropagation(),this.navMenuShown=!this.navMenuShown,this.navMenuShown&&(document.addEventListener("click",(e=>{e.preventDefault(),this.navMenuShown=!1,this.renderRoot.querySelector("#menu-button").focus()}),{once:!0}),document.addEventListener("keypress",(e=>{"Escape"==e.key&&(e.preventDefault(),this.navMenuShown=!1,this.renderRoot.querySelector("#menu-button").focus())}),{once:!0}))}initRoute(){this.inited=!0,this.pageParams=new URLSearchParams(window.location.search);let e=this.pageParams.get("state");if(e)try{if(e=JSON.parse(e),e.ids instanceof Array&&e.userId&&"open"===e.action)return this.pageParams.set("source","googledrive://"+e.ids[0]),this.pageParams.delete("state"),void(window.location.search=this.pageParams.toString())}catch(e){console.log(e)}if(this.source){this.pageParams.set("source",this.source);const e=new URL(window.location.href);e.search=this.pageParams.toString(),window.history.replaceState({},document.title,e.href)}if(this.sourceUrl=this.pageParams.get("source")||"",this.embed=this.pageParams.get("embed")||"",this.pageParams.has("terms")&&(this.showAbout=!0),this.pageParams.has("embed")&&(this.loadInfo||(this.loadInfo={})),this.pageParams.get("config"))try{this.loadInfo.extraConfig=JSON.parse(this.pageParams.get("config"))}catch(e){console.log("invalid config: "+e)}this.pageParams.get("baseUrlSourcePrefix")&&(this.loadInfo.extraConfig=this.loadInfo.extraConfig||{},this.loadInfo.extraConfig.baseUrlSourcePrefix=this.pageParams.get("baseUrlSourcePrefix")),this.pageParams.get("basePageUrl")&&(this.loadInfo.extraConfig=this.loadInfo.extraConfig||{},this.loadInfo.extraConfig.baseUrl=this.pageParams.get("basePageUrl")),this.pageParams.get("customColl")&&(this.loadInfo.customColl=this.pageParams.get("customColl")),"1"===this.pageParams.get("noWebWorker")&&(this.loadInfo.noWebWorker=!0),"1"===this.pageParams.get("noCache")&&(this.loadInfo.noCache=!0),"1"===this.pageParams.get("hideOffscreen")&&(this.loadInfo.hideOffscreen=!0),"eager"===this.pageParams.get("loading")&&(this.loadInfo.loadEager=!0),this.pageParams.get("swName")&&(this.swName=this.pageParams.get("swName")),pe&&this.sourceUrl.startsWith("file://")&&(this.loadInfo={sourceUrl:this.sourceUrl,loadUrl:this.sourceUrl.replace("file://","file2://")})}onStartLoad(e){this.pageParams.set("source",e.detail.sourceUrl);const t=new URL(window.location.href);t.search=this.pageParams.toString(),this.collPageUrl=t.toString(),e.detail.isFile?(window.history.pushState({},"",this.collPageUrl),this.sourceUrl=e.detail.sourceUrl,this.loadInfo=e.detail):window.location.search=this.pageParams.toString()}onCollLoaded(e){this.loadInfo=null,e.detail.collInfo&&(this.collTitle=e.detail.collInfo.title),e.detail.alreadyLoaded||e.detail.sourceUrl!==this.sourceUrl&&(this.pageParams.set("source",e.detail.sourceUrl),window.location.search=this.pageParams.toString())}onTitle(e){e.detail.title&&(this.pageTitle=e.detail.title,this.pageReplay=e.detail.replayTitle,document.title=(e.detail.replayTitle?"Archive of ":"")+this.pageTitle+" | "+this.appName)}safariKeyframes(){const e=document.createElement("style");document.head.appendChild(e),e.appendChild(document.createTextNode("\n @keyframes spinAround {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n }\n "))}renderAbout(){return T` + `:T``}firstUpdated(){this.initRoute();const e=this.swName+(this.useRuffle?"?ruffle=1":"");this.swmanager=new Ee({name:e,appName:this.appName}),this.swmanager.register().catch((()=>this.swErrorMsg=this.swmanager.renderErrorReport(this.mainLogo))),window.addEventListener("popstate",(()=>{this.initRoute()}))}updated(e){e.has("sourceUrl")&&(this.collTitle=null)}onFavIcons(e){const t=document.querySelector("head"),i=document.querySelectorAll("link[rel*='icon']");for(const e of i)t.removeChild(e);for(const i of e.detail.icons){const e=document.createElement("link");e.rel=i.rel,e.href=i.href,t.appendChild(e)}}skipMenu(e){e.preventDefault(),this.renderRoot.querySelector("#skip-main-target").focus()}onNavMenu(e){e.preventDefault(),e.stopPropagation(),this.navMenuShown=!this.navMenuShown,this.navMenuShown&&(document.addEventListener("click",(e=>{e.preventDefault(),this.navMenuShown=!1,this.renderRoot.querySelector("#menu-button").focus()}),{once:!0}),document.addEventListener("keypress",(e=>{"Escape"==e.key&&(e.preventDefault(),this.navMenuShown=!1,this.renderRoot.querySelector("#menu-button").focus())}),{once:!0}))}initRoute(){this.inited=!0,this.pageParams=new URLSearchParams(window.location.search);let e=this.pageParams.get("state");if(e)try{if(e=JSON.parse(e),e.ids instanceof Array&&e.userId&&"open"===e.action)return this.pageParams.set("source","googledrive://"+e.ids[0]),this.pageParams.delete("state"),void(window.location.search=this.pageParams.toString())}catch(e){console.log(e)}if(this.source){this.pageParams.set("source",this.source);const e=new URL(window.location.href);e.search=this.pageParams.toString(),window.history.replaceState({},document.title,e.href)}if(this.sourceUrl=this.pageParams.get("source")||"",this.embed=this.pageParams.get("embed")||"",this.embed?this.useRuffle="1"===this.pageParams.get("ruffle"):this.useRuffle=!this.skipRuffle,this.pageParams.has("terms")&&(this.showAbout=!0),this.pageParams.has("embed")&&(this.loadInfo||(this.loadInfo={})),this.pageParams.get("config"))try{this.loadInfo.extraConfig=JSON.parse(this.pageParams.get("config"))}catch(e){console.log("invalid config: "+e)}this.pageParams.get("baseUrlSourcePrefix")&&(this.loadInfo.extraConfig=this.loadInfo.extraConfig||{},this.loadInfo.extraConfig.baseUrlSourcePrefix=this.pageParams.get("baseUrlSourcePrefix")),this.pageParams.get("basePageUrl")&&(this.loadInfo.extraConfig=this.loadInfo.extraConfig||{},this.loadInfo.extraConfig.baseUrl=this.pageParams.get("basePageUrl")),this.pageParams.get("customColl")&&(this.loadInfo.customColl=this.pageParams.get("customColl")),"1"===this.pageParams.get("noWebWorker")&&(this.loadInfo.noWebWorker=!0),"1"===this.pageParams.get("noCache")&&(this.loadInfo.noCache=!0),"1"===this.pageParams.get("hideOffscreen")&&(this.loadInfo.hideOffscreen=!0),"eager"===this.pageParams.get("loading")&&(this.loadInfo.loadEager=!0),this.pageParams.get("swName")&&(this.swName=this.pageParams.get("swName")),pe&&this.sourceUrl.startsWith("file://")&&(this.loadInfo={sourceUrl:this.sourceUrl,loadUrl:this.sourceUrl.replace("file://","file2://")})}onStartLoad(e){this.pageParams.set("source",e.detail.sourceUrl);const t=new URL(window.location.href);t.search=this.pageParams.toString(),this.collPageUrl=t.toString(),e.detail.isFile?(window.history.pushState({},"",this.collPageUrl),this.sourceUrl=e.detail.sourceUrl,this.loadInfo=e.detail):window.location.search=this.pageParams.toString()}onCollLoaded(e){this.loadInfo=null,e.detail.collInfo&&(this.collTitle=e.detail.collInfo.title),e.detail.alreadyLoaded||e.detail.sourceUrl!==this.sourceUrl&&(this.pageParams.set("source",e.detail.sourceUrl),window.location.search=this.pageParams.toString())}onTitle(e){e.detail.title&&(this.pageTitle=e.detail.title,this.pageReplay=e.detail.replayTitle,document.title=(e.detail.replayTitle?"Archive of ":"")+this.pageTitle+" | "+this.appName)}safariKeyframes(){const e=document.createElement("style");document.head.appendChild(e),e.appendChild(document.createTextNode("\n @keyframes spinAround {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n }\n "))}renderAbout(){return T` - `}}customElements.define("wr-chooser",Te);var Ue=__webpack_require__(8600),Re=__webpack_require__.n(Ue),qe=__webpack_require__(1734),Me=__webpack_require__.n(qe),Fe=__webpack_require__(6921),je=__webpack_require__.n(Fe),Ne=__webpack_require__(8536),Oe=__webpack_require__.n(Ne),Be=__webpack_require__(2804),He=__webpack_require__.n(Be);class We extends X{constructor(){super(),this.colls=[],this.filteredColls=[],this.sortedColls=null,this.query="",this.hideHeader="1"===localStorage.getItem("index:hideHeader"),this._deleting={},this.dateName="Date Loaded",this.headerName="Loaded Archives",this.typeFilter="",this.indexParams=""}get sortKeys(){return[{key:"title",name:"Title"},{key:"sourceUrl",name:"Source"},{key:"ctime",name:this.dateName},{key:"size",name:"Total Size"}]}static get properties(){return{colls:{type:Array},query:{type:String},filteredColls:{type:Array},sortedColls:{type:Array},hideHeader:{type:Boolean},_deleting:{type:Object},dateName:{type:String},headerName:{type:String}}}firstUpdated(){this.loadColls()}updated(e){e.has("hideHeader")&&localStorage.setItem("index:hideHeader",this.hideHeader?"1":"0"),(e.has("colls")||e.has("query"))&&this.filter()}filter(){if(this.query){this.filteredColls=[];for(const e of this.colls)(e.sourceUrl.indexOf(this.query)>=0||e.filename.indexOf(this.query)>=0||e.loadUrl&&e.loadUrl.indexOf(this.query)>=0||e.title&&e.title.indexOf(this.query)>=0)&&this.filteredColls.push(e)}else this.filteredColls=this.colls}async loadColls(){const e=await fetch(`./w/api/coll-index?${this.indexParams}`);try{if(200!==e.status)throw new Error("Invalid API Response, Retry");const t=await e.json();this.colls=t.colls.map((e=>(e.title=e.title||e.filename,e))),this._deleting={},this.sortedColls=[]}catch(e){setTimeout((()=>this.loadColls()),500)}}async onDeleteColl(e){if(e.preventDefault(),e.stopPropagation(),!this.sortedColls)return;const t=Number(e.currentTarget.getAttribute("data-coll-index")),i=this.sortedColls[t];if(!i||this._deleting[i.sourceUrl])return;this._deleting[i.sourceUrl]=!0,this.requestUpdate();const a=await fetch(`./w/api/c/${i.id}`,{method:"DELETE"});if(200===a.status){const e=await a.json();this.colls=e.colls}return!1}static get styles(){return ue(We.compStyles)}static get compStyles(){return o` + `}}customElements.define("wr-chooser",Te);var Ue=__webpack_require__(8600),Re=__webpack_require__.n(Ue),qe=__webpack_require__(1734),Me=__webpack_require__.n(qe),Fe=__webpack_require__(6921),je=__webpack_require__.n(Fe),Be=__webpack_require__(8536),Ne=__webpack_require__.n(Be),Oe=__webpack_require__(2804),He=__webpack_require__.n(Oe);class We extends X{constructor(){super(),this.colls=[],this.filteredColls=[],this.sortedColls=null,this.query="",this.hideHeader="1"===localStorage.getItem("index:hideHeader"),this._deleting={},this.dateName="Date Loaded",this.headerName="Loaded Archives",this.typeFilter="",this.indexParams=""}get sortKeys(){return[{key:"title",name:"Title"},{key:"sourceUrl",name:"Source"},{key:"ctime",name:this.dateName},{key:"size",name:"Total Size"}]}static get properties(){return{colls:{type:Array},query:{type:String},filteredColls:{type:Array},sortedColls:{type:Array},hideHeader:{type:Boolean},_deleting:{type:Object},dateName:{type:String},headerName:{type:String}}}firstUpdated(){this.loadColls()}updated(e){e.has("hideHeader")&&localStorage.setItem("index:hideHeader",this.hideHeader?"1":"0"),(e.has("colls")||e.has("query"))&&this.filter()}filter(){if(this.query){this.filteredColls=[];for(const e of this.colls)(e.sourceUrl.indexOf(this.query)>=0||e.filename.indexOf(this.query)>=0||e.loadUrl&&e.loadUrl.indexOf(this.query)>=0||e.title&&e.title.indexOf(this.query)>=0)&&this.filteredColls.push(e)}else this.filteredColls=this.colls}async loadColls(){const e=await fetch(`./w/api/coll-index?${this.indexParams}`);try{if(200!==e.status)throw new Error("Invalid API Response, Retry");const t=await e.json();this.colls=t.colls.map((e=>(e.title=e.title||e.filename,e))),this._deleting={},this.sortedColls=[]}catch(e){setTimeout((()=>this.loadColls()),500)}}async onDeleteColl(e){if(e.preventDefault(),e.stopPropagation(),!this.sortedColls)return;const t=Number(e.currentTarget.getAttribute("data-coll-index")),i=this.sortedColls[t];if(!i||this._deleting[i.sourceUrl])return;this._deleting[i.sourceUrl]=!0,this.requestUpdate();const a=await fetch(`./w/api/c/${i.id}`,{method:"DELETE"});if(200===a.status){const e=await a.json();this.colls=e.colls}return!1}static get styles(){return ue(We.compStyles)}static get compStyles(){return o` :host { overflow-y: auto; min-width: 0; @@ -551,7 +551,7 @@ class se extends oe{}se.directiveName="unsafeSVG",se.resultType=2;const le=ae(se
      ${e?T` `:""}
      @@ -716,7 +716,7 @@ class se extends oe{}se.directiveName="unsafeSVG",se.resultType=2;const le=ae(se

      Collection id

      ${e.coll} - `}render(){return this.detailed?this.renderDetailed():this.renderSummaryView()}onCopy(e,t){return e.preventDefault(),e.stopPropagation(),navigator.clipboard.writeText(t),!1}onPurge(e){const t={reload:e};this.dispatchEvent(new CustomEvent("coll-purge",{detail:t}))}}function Ke(e){if(!e)return"";e.length<14&&(e+="00000101000000".substr(e.length));const t=e.substring(0,4)+"-"+e.substring(4,6)+"-"+e.substring(6,8)+"T"+e.substring(8,10)+":"+e.substring(10,12)+":"+e.substring(12,14)+"-00:00";return new Date(t)}function Ve(e){let t=null;try{t=new Date(e.ts||e.date)}catch(e){}const i=t&&!isNaN(t)?Ze(t.toISOString()):"";return{date:t,timestamp:i}}function Ze(e){return e.replace(/[-:T]/g,"").slice(0,14)}function Qe(e,t,i){const a=new URLSearchParams;return a.set("view",e),a.set("url",t),a.set("ts",i),"#"+a.toString()}async function Je(e){try{new URL(e)}catch(t){e=new URL(e,window.location.href).href}const t=await async function(e,t){const i=(new TextEncoder).encode(e),a=await crypto.subtle.digest(t,i),r=Array.from(new Uint8Array(a)).map((e=>e.toString(16).padStart(2,"0"))).join("");return r}(e,"SHA-256");return{url:e,coll:"id-"+t.slice(0,12)}}customElements.define("wr-coll-info",Ge),customElements.define("wr-coll-index",We);var Ye=__webpack_require__(5056),Xe=__webpack_require__.n(Ye),et=__webpack_require__(5732),tt=__webpack_require__.n(et),it=__webpack_require__(8561),at=__webpack_require__.n(it),rt=__webpack_require__(9885),ot=__webpack_require__.n(rt),nt=__webpack_require__(4636),st=__webpack_require__.n(nt),lt=__webpack_require__(1615),ct=__webpack_require__.n(lt),dt=__webpack_require__(2302),ht=__webpack_require__.n(dt),ft=__webpack_require__(6368),bt=__webpack_require__.n(ft),ut=__webpack_require__(9125),pt=__webpack_require__.n(ut),mt=__webpack_require__(9998),gt=__webpack_require__.n(mt),vt=__webpack_require__(2164),wt=__webpack_require__.n(vt),xt=__webpack_require__(426),kt=__webpack_require__.n(xt),yt=__webpack_require__(430),_t=__webpack_require__.n(yt),$t=__webpack_require__(1795),St=__webpack_require__.n($t),zt=__webpack_require__(7529),At=__webpack_require__.n(zt),Ct=__webpack_require__(6873),Dt=__webpack_require__.n(Ct),Et=__webpack_require__(4575),It=__webpack_require__.n(Et);class Pt extends X{constructor(){super(),this.collInfo=null,this.appLogo=null,this.ts=null,this.url=null,this.active=!1}get renderRoot(){return this}static get properties(){return{collInfo:{type:Object},appLogo:{type:Object},url:{type:String},ts:{type:String},active:{type:Boolean}}}static get embedStyles(){return o` + `}render(){return this.detailed?this.renderDetailed():this.renderSummaryView()}onCopy(e,t){return e.preventDefault(),e.stopPropagation(),navigator.clipboard.writeText(t),!1}onPurge(e){const t={reload:e};this.dispatchEvent(new CustomEvent("coll-purge",{detail:t}))}}function Ke(e){if(!e)return"";e.length<14&&(e+="00000101000000".substr(e.length));const t=e.substring(0,4)+"-"+e.substring(4,6)+"-"+e.substring(6,8)+"T"+e.substring(8,10)+":"+e.substring(10,12)+":"+e.substring(12,14)+"-00:00";return new Date(t)}function Ve(e){let t=null;try{t=new Date(e.ts||e.date)}catch(e){}const i=t&&!isNaN(t)?Ze(t.toISOString()):"";return{date:t,timestamp:i}}function Ze(e){return e.replace(/[-:T]/g,"").slice(0,14)}function Qe(e,t,i){const a=new URLSearchParams;return a.set("view",e),a.set("url",t),a.set("ts",i),"#"+a.toString()}async function Je(e){try{new URL(e)}catch(t){e=new URL(e,document.baseURI).href}const t=await async function(e,t){const i=(new TextEncoder).encode(e),a=await crypto.subtle.digest(t,i),r=Array.from(new Uint8Array(a)).map((e=>e.toString(16).padStart(2,"0"))).join("");return r}(e,"SHA-256");return{url:e,coll:"id-"+t.slice(0,12)}}customElements.define("wr-coll-info",Ge),customElements.define("wr-coll-index",We);var Ye=__webpack_require__(5056),Xe=__webpack_require__.n(Ye),et=__webpack_require__(5732),tt=__webpack_require__.n(et),it=__webpack_require__(8561),at=__webpack_require__.n(it),rt=__webpack_require__(9885),ot=__webpack_require__.n(rt),nt=__webpack_require__(4636),st=__webpack_require__.n(nt),lt=__webpack_require__(1615),ct=__webpack_require__.n(lt),dt=__webpack_require__(2302),ht=__webpack_require__.n(dt),ft=__webpack_require__(6368),bt=__webpack_require__.n(ft),ut=__webpack_require__(9125),pt=__webpack_require__.n(ut),mt=__webpack_require__(9998),gt=__webpack_require__.n(mt),vt=__webpack_require__(2164),wt=__webpack_require__.n(vt),xt=__webpack_require__(426),kt=__webpack_require__.n(xt),yt=__webpack_require__(430),_t=__webpack_require__.n(yt),$t=__webpack_require__(1795),St=__webpack_require__.n($t),zt=__webpack_require__(7529),At=__webpack_require__.n(zt),Ct=__webpack_require__(6873),Dt=__webpack_require__.n(Ct),Et=__webpack_require__(4575),It=__webpack_require__.n(Et);class Pt extends X{constructor(){super(),this.collInfo=null,this.appLogo=null,this.ts=null,this.url=null,this.active=!1}get renderRoot(){return this}static get properties(){return{collInfo:{type:Object},appLogo:{type:Object},url:{type:String},ts:{type:String},active:{type:Boolean}}}static get embedStyles(){return o` rwp-embed-receipt { display: flex; flex-direction: column; @@ -929,7 +929,7 @@ class se extends oe{}se.directiveName="unsafeSVG",se.resultType=2;const le=ae(se - `}onEmbedDrop(e){e.stopPropagation(),this.active=!this.active}}customElements.define("rwp-embed-receipt",Pt);var Lt="undefined"!=typeof window?window:null,Tt=null===Lt,Ut=Tt?void 0:Lt.document,Rt="horizontal",qt=function(){return!1},Mt=Tt?"calc":["","-webkit-","-moz-","-o-"].filter((function(e){var t=Ut.createElement("div");return t.style.cssText="width:"+e+"calc(9px)",!!t.style.length})).shift()+"calc",Ft=function(e){return"string"==typeof e||e instanceof String},jt=function(e){if(Ft(e)){var t=Ut.querySelector(e);if(!t)throw new Error("Selector "+e+" did not match a DOM element");return t}return e},Nt=function(e,t,i){var a=e[t];return void 0!==a?a:i},Ot=function(e,t,i,a){if(t){if("end"===a)return 0;if("center"===a)return e/2}else if(i){if("start"===a)return 0;if("center"===a)return e/2}return e},Bt=function(e,t){var i=Ut.createElement("div");return i.className="gutter gutter-"+t,i},Ht=function(e,t,i){var a={};return Ft(t)?a[e]=t:a[e]=Mt+"("+t+"% - "+i+"px)",a},Wt=function(e,t){var i;return(i={})[e]=t+"px",i};const Gt=function(e,t){if(void 0===t&&(t={}),Tt)return{};var i,a,r,o,n,s,l=e;Array.from&&(l=Array.from(l));var c=jt(l[0]).parentNode,d=getComputedStyle?getComputedStyle(c):null,h=d?d.flexDirection:null,f=Nt(t,"sizes")||l.map((function(){return 100/l.length})),b=Nt(t,"minSize",100),u=Array.isArray(b)?b:l.map((function(){return b})),p=Nt(t,"maxSize",1/0),m=Array.isArray(p)?p:l.map((function(){return p})),g=Nt(t,"expandToMin",!1),v=Nt(t,"gutterSize",10),w=Nt(t,"gutterAlign","center"),x=Nt(t,"snapOffset",30),k=Nt(t,"dragInterval",1),y=Nt(t,"direction",Rt),_=Nt(t,"cursor",y===Rt?"col-resize":"row-resize"),$=Nt(t,"gutter",Bt),S=Nt(t,"elementStyle",Ht),z=Nt(t,"gutterStyle",Wt);function A(e,t,a,r){var o=S(i,t,a,r);Object.keys(o).forEach((function(t){e.style[t]=o[t]}))}function C(){return s.map((function(e){return e.size}))}function D(e){return"touches"in e?e.touches[0][a]:e[a]}function E(e){var t=s[this.a],i=s[this.b],a=t.size+i.size;t.size=e/this.size*a,i.size=a-e/this.size*a,A(t.element,t.size,this._b,t.i),A(i.element,i.size,this._c,i.i)}function I(e){var i,a=s[this.a],r=s[this.b];this.dragging&&(i=D(e)-this.start+(this._b-this.dragOffset),k>1&&(i=Math.round(i/k)*k),i<=a.minSize+x+this._b?i=a.minSize+this._b:i>=this.size-(r.minSize+x+this._c)&&(i=this.size-(r.minSize+this._c)),i>=a.maxSize-x+this._b?i=a.maxSize+this._b:i<=this.size-(r.maxSize-x+this._c)&&(i=this.size-(r.maxSize+this._c)),E.call(this,i),Nt(t,"onDrag",qt)(C()))}function P(){var e=s[this.a].element,t=s[this.b].element,a=e.getBoundingClientRect(),n=t.getBoundingClientRect();this.size=a[i]+n[i]+this._b+this._c,this.start=a[r],this.end=a[o]}function L(e){var t=function(e){if(!getComputedStyle)return null;var t=getComputedStyle(e);if(!t)return null;var i=e[n];return 0===i?null:i-=y===Rt?parseFloat(t.paddingLeft)+parseFloat(t.paddingRight):parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)}(c);if(null===t)return e;if(u.reduce((function(e,t){return e+t}),0)>t)return e;var i=0,a=[],r=e.map((function(r,o){var n=t*r/100,s=Ot(v,0===o,o===e.length-1,w),l=u[o]+s;return n0&&a[r]-i>0){var n=Math.min(i,a[r]-i);i-=n,o=e-n}return o/t*100}))}function T(){var e=this,i=s[e.a].element,a=s[e.b].element;e.dragging&&Nt(t,"onDragEnd",qt)(C()),e.dragging=!1,Lt.removeEventListener("mouseup",e.stop),Lt.removeEventListener("touchend",e.stop),Lt.removeEventListener("touchcancel",e.stop),Lt.removeEventListener("mousemove",e.move),Lt.removeEventListener("touchmove",e.move),e.stop=null,e.move=null,i.removeEventListener("selectstart",qt),i.removeEventListener("dragstart",qt),a.removeEventListener("selectstart",qt),a.removeEventListener("dragstart",qt),i.style.userSelect="",i.style.webkitUserSelect="",i.style.MozUserSelect="",i.style.pointerEvents="",a.style.userSelect="",a.style.webkitUserSelect="",a.style.MozUserSelect="",a.style.pointerEvents="",e.gutter.style.cursor="",e.parent.style.cursor="",Ut.body.style.cursor=""}function U(e){if(!("button"in e)||0===e.button){var i=this,a=s[i.a].element,r=s[i.b].element;i.dragging||Nt(t,"onDragStart",qt)(C()),e.preventDefault(),i.dragging=!0,i.move=I.bind(i),i.stop=T.bind(i),Lt.addEventListener("mouseup",i.stop),Lt.addEventListener("touchend",i.stop),Lt.addEventListener("touchcancel",i.stop),Lt.addEventListener("mousemove",i.move),Lt.addEventListener("touchmove",i.move),a.addEventListener("selectstart",qt),a.addEventListener("dragstart",qt),r.addEventListener("selectstart",qt),r.addEventListener("dragstart",qt),a.style.userSelect="none",a.style.webkitUserSelect="none",a.style.MozUserSelect="none",a.style.pointerEvents="none",r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",i.gutter.style.cursor=_,i.parent.style.cursor=_,Ut.body.style.cursor=_,P.call(i),i.dragOffset=D(e)-i.end}}y===Rt?(i="width",a="clientX",r="left",o="right",n="clientWidth"):"vertical"===y&&(i="height",a="clientY",r="top",o="bottom",n="clientHeight"),f=L(f);var R=[];function q(e){var t=e.i===R.length,i=t?R[e.i-1]:R[e.i];P.call(i);var a=t?i.size-e.minSize-i._c:e.minSize+i._b;E.call(i,a)}return s=l.map((function(e,t){var a,r={element:jt(e),size:f[t],minSize:u[t],maxSize:m[t],i:t};if(t>0&&((a={a:t-1,b:t,dragging:!1,direction:y,parent:c})._b=Ot(v,t-1==0,!1,w),a._c=Ot(v,!1,t===l.length-1,w),"row-reverse"===h||"column-reverse"===h)){var o=a.a;a.a=a.b,a.b=o}if(t>0){var n=$(t,y,r.element);!function(e,t,a){var r=z(i,t,a);Object.keys(r).forEach((function(t){e.style[t]=r[t]}))}(n,v,t),a._a=U.bind(a),n.addEventListener("mousedown",a._a),n.addEventListener("touchstart",a._a),c.insertBefore(n,r.element),a.gutter=n}return A(r.element,r.size,Ot(v,0===t,t===l.length-1,w),t),t>0&&R.push(a),r})),s.forEach((function(e){var t=e.element.getBoundingClientRect()[i];t0){var a=R[i-1],r=s[a.a],o=s[a.b];r.size=t[i-1],o.size=e,A(r.element,r.size,a._b,r.i),A(o.element,o.size,a._c,o.i)}}))},getSizes:C,collapse:function(e){q(s[e])},destroy:function(e,t){R.forEach((function(a){if(!0!==t?a.parent.removeChild(a.gutter):(a.gutter.removeEventListener("mousedown",a._a),a.gutter.removeEventListener("touchstart",a._a)),!0!==e){var r=S(i,a.a.size,a._b);Object.keys(r).forEach((function(e){s[a.a].element.style[e]="",s[a.b].element.style[e]=""}))}}))},parent:c,pairs:R}},Kt="search://";class Vt extends X{constructor(){super(),this.sourceUrl=null,this.inited=!1,this.isLoading=!1,this.coll="",this.collInfo=null,this._replaceLoc=!1,this._locUpdateNeeded=!1,this._locationHash="",this.tabData={},this.url="",this.ts="",this.tabNames=["pages","story","resources","info"],this.tabLabels={pages:"Pages",story:"Story",resources:"URLs",info:"Archive Info"},this.menuActive=!1,this.embedDropdownActive=!1,this.hasStory=!1,this.editable=!1,this.browsable=!0,this.clearable=!0,this.showSidebar="1"===localStorage.getItem("pages:showSidebar"),this.splitter=null,this.isVisible=!0,this.favIconUrl="",this.autoUpdateInterval=10,this._autoUpdater=null,this.appName="ReplayWeb.page",this.appVersion=me,this.appLogo=fe()}static get properties(){return{inited:{type:Boolean},sourceUrl:{type:String},loadInfo:{type:Object,attribute:!1},showSidebar:{type:Boolean},collInfo:{type:Object,attribute:!1},coll:{type:String},hasStory:{type:Boolean},isLoading:{type:Boolean},tabData:{type:Object,attribute:!1},url:{type:String},ts:{type:String},isFullscreen:{type:Boolean},menuActive:{type:Boolean},embed:{type:String},embedDropdownActive:{type:Boolean},editable:{type:Boolean},browsable:{type:Boolean},clearable:{type:Boolean},isVisible:{type:Boolean},favIconUrl:{type:String},appName:{type:String},appVersion:{type:String},appLogo:{type:String},autoUpdateInterval:{type:Number},swName:{type:String}}}firstUpdated(){this.inited=!0,window.addEventListener("hashchange",(e=>this.onHashChange(e))),this.addEventListener("fullscreenchange",(()=>{this.isFullscreen=!!document.fullscreenElement})),this.embed&&this.loadInfo&&this.loadInfo.hideOffscreen&&(this.observer=new IntersectionObserver((e=>{this.isVisible=e[0].isIntersecting})),this.observer.observe(this))}async runUpdateLoop(){try{for(;this.editable&&this.autoUpdateInterval&&(!this.collInfo||this.collInfo.pages.length<100);)await new Promise((e=>setTimeout(e,1e3*this.autoUpdateInterval))),await this.doUpdateInfo(!0)}finally{this._autoUpdater=null}}updated(e){if(e.has("sourceUrl")&&this.doUpdateInfo(),e.has("editable")&&this.editable&&this.autoUpdateInterval&&!this._autoUpdater&&(this._autoUpdater=this.runUpdateLoop()),e.has("tabData")){if(!this.collInfo||!this.collInfo.coll)return;Object.keys(this.tabData).forEach((e=>!this.tabData[e]&&delete this.tabData[e]));const t="#"+new URLSearchParams(this.tabData).toString();if(this.tabData.url||(this.url=Kt+decodeURIComponent(this._paramsToString(this.tabData))),t!==this._locationHash){if(this._locationHash=t,this._replaceLoc||0===Object.keys(e.get("tabData")).length){const e=new URL(window.location.href);e.hash=this._locationHash,window.history.replaceState({},"",e.href),this._replaceLoc=!1}else if(window.location.hash=this._locationHash,!this.showSidebar){const e=this.renderRoot.querySelector("wr-coll-replay");e&&e.focus()}this.embed&&window.parent!==window&&window.parent.postMessage(this.tabData,"*")}this._locUpdateNeeded=!1}e.has("showSidebar")&&(this.embed||localStorage.setItem("pages:showSidebar",this.showSidebar?"1":"0")),(e.has("tabData")||e.has("showSidebar"))&&this.configureSplitter()}configureSplitter(){if(this.tabData.url&&this.showSidebar){const e=this.renderRoot.querySelector("#contents"),t=this.renderRoot.querySelector("wr-coll-replay");if(e&&t&&!this.splitter){const i={sizes:[30,70],minSize:[300,300],gutterSize:4,onDragStart(){t.setDisablePointer(!0)},onDragEnd(){t.setDisablePointer(!1)}};this.splitter=Gt([e,t],i)}}else if(this.splitter){try{this.splitter.destroy()}catch(e){}this.splitter=null}}async doUpdateInfo(e=!1){if(e&&this.tabData.url&&!this.showSidebar)return;let t=this.loadInfo&&this.loadInfo.customColl;if(!t){t=(await Je(this.sourceUrl)).coll}this.coll=t;const i="./w/api/c/"+t,a="./w/"+t,r=await fetch(i+"?all=1");if(200!=r.status)return void(this.collInfo={});const o=await r.json();if(this.collInfo={apiPrefix:i,replayPrefix:a,coll:t,...o},this.loadInfo&&this.loadInfo.extraConfig&&this.loadInfo.extraConfig.headers){const e=this.loadInfo.extraConfig.headers;await fetch(`${i}/updateAuth`,{method:"POST",body:JSON.stringify({headers:e})})}this.collInfo.title||(this.collInfo.title=this.collInfo.filename),"replayonly"!==this.embed&&"replay-with-info"!==this.embed||(this.showSidebar=!1),this.hasStory=this.collInfo.desc||this.collInfo.lists.length,this.dispatchEvent(new CustomEvent("coll-loaded",{detail:{collInfo:this.collInfo,alreadyLoaded:!0}})),this.onHashChange()}onCollLoaded(e){this.doUpdateInfo(),this.loadInfo=null,e.detail.sourceUrl&&(this.sourceUrl=e.detail.sourceUrl),this.dispatchEvent(new CustomEvent("coll-loaded",{detail:{sourceUrl:this.sourceUrl,collInfo:this.collInfo}}))}onCollUpdate(e){this.editable&&(this.collInfo={...this.collInfo,...e.detail})}onHashChange(){const e=window.location.hash;if(e&&e!==this._locationHash&&(this.tabData=Object.fromEntries(new URLSearchParams(e.slice(1)).entries()),this._locationHash=e),this.collInfo.coll&&!this.tabNames.includes(this.tabData.view)){const e=this.hasStory?"story":this.editable||this.collInfo.pages.length?"pages":"resources";this.tabData={...this.tabData,view:e}}if(this.tabData.url&&this.tabData.url.startsWith("page:")){const e=Number(this.tabData.url.slice("page:".length));if(!isNaN(e)&&e1&&(i=Math.round(i/k)*k),i<=a.minSize+x+this._b?i=a.minSize+this._b:i>=this.size-(r.minSize+x+this._c)&&(i=this.size-(r.minSize+this._c)),i>=a.maxSize-x+this._b?i=a.maxSize+this._b:i<=this.size-(r.maxSize-x+this._c)&&(i=this.size-(r.maxSize+this._c)),E.call(this,i),Bt(t,"onDrag",qt)(C()))}function P(){var e=s[this.a].element,t=s[this.b].element,a=e.getBoundingClientRect(),n=t.getBoundingClientRect();this.size=a[i]+n[i]+this._b+this._c,this.start=a[r],this.end=a[o]}function L(e){var t=function(e){if(!getComputedStyle)return null;var t=getComputedStyle(e);if(!t)return null;var i=e[n];return 0===i?null:i-=y===Rt?parseFloat(t.paddingLeft)+parseFloat(t.paddingRight):parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)}(c);if(null===t)return e;if(u.reduce((function(e,t){return e+t}),0)>t)return e;var i=0,a=[],r=e.map((function(r,o){var n=t*r/100,s=Nt(v,0===o,o===e.length-1,w),l=u[o]+s;return n0&&a[r]-i>0){var n=Math.min(i,a[r]-i);i-=n,o=e-n}return o/t*100}))}function T(){var e=this,i=s[e.a].element,a=s[e.b].element;e.dragging&&Bt(t,"onDragEnd",qt)(C()),e.dragging=!1,Lt.removeEventListener("mouseup",e.stop),Lt.removeEventListener("touchend",e.stop),Lt.removeEventListener("touchcancel",e.stop),Lt.removeEventListener("mousemove",e.move),Lt.removeEventListener("touchmove",e.move),e.stop=null,e.move=null,i.removeEventListener("selectstart",qt),i.removeEventListener("dragstart",qt),a.removeEventListener("selectstart",qt),a.removeEventListener("dragstart",qt),i.style.userSelect="",i.style.webkitUserSelect="",i.style.MozUserSelect="",i.style.pointerEvents="",a.style.userSelect="",a.style.webkitUserSelect="",a.style.MozUserSelect="",a.style.pointerEvents="",e.gutter.style.cursor="",e.parent.style.cursor="",Ut.body.style.cursor=""}function U(e){if(!("button"in e)||0===e.button){var i=this,a=s[i.a].element,r=s[i.b].element;i.dragging||Bt(t,"onDragStart",qt)(C()),e.preventDefault(),i.dragging=!0,i.move=I.bind(i),i.stop=T.bind(i),Lt.addEventListener("mouseup",i.stop),Lt.addEventListener("touchend",i.stop),Lt.addEventListener("touchcancel",i.stop),Lt.addEventListener("mousemove",i.move),Lt.addEventListener("touchmove",i.move),a.addEventListener("selectstart",qt),a.addEventListener("dragstart",qt),r.addEventListener("selectstart",qt),r.addEventListener("dragstart",qt),a.style.userSelect="none",a.style.webkitUserSelect="none",a.style.MozUserSelect="none",a.style.pointerEvents="none",r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",i.gutter.style.cursor=_,i.parent.style.cursor=_,Ut.body.style.cursor=_,P.call(i),i.dragOffset=D(e)-i.end}}y===Rt?(i="width",a="clientX",r="left",o="right",n="clientWidth"):"vertical"===y&&(i="height",a="clientY",r="top",o="bottom",n="clientHeight"),f=L(f);var R=[];function q(e){var t=e.i===R.length,i=t?R[e.i-1]:R[e.i];P.call(i);var a=t?i.size-e.minSize-i._c:e.minSize+i._b;E.call(i,a)}return s=l.map((function(e,t){var a,r={element:jt(e),size:f[t],minSize:u[t],maxSize:m[t],i:t};if(t>0&&((a={a:t-1,b:t,dragging:!1,direction:y,parent:c})._b=Nt(v,t-1==0,!1,w),a._c=Nt(v,!1,t===l.length-1,w),"row-reverse"===h||"column-reverse"===h)){var o=a.a;a.a=a.b,a.b=o}if(t>0){var n=$(t,y,r.element);!function(e,t,a){var r=z(i,t,a);Object.keys(r).forEach((function(t){e.style[t]=r[t]}))}(n,v,t),a._a=U.bind(a),n.addEventListener("mousedown",a._a),n.addEventListener("touchstart",a._a),c.insertBefore(n,r.element),a.gutter=n}return A(r.element,r.size,Nt(v,0===t,t===l.length-1,w),t),t>0&&R.push(a),r})),s.forEach((function(e){var t=e.element.getBoundingClientRect()[i];t0){var a=R[i-1],r=s[a.a],o=s[a.b];r.size=t[i-1],o.size=e,A(r.element,r.size,a._b,r.i),A(o.element,o.size,a._c,o.i)}}))},getSizes:C,collapse:function(e){q(s[e])},destroy:function(e,t){R.forEach((function(a){if(!0!==t?a.parent.removeChild(a.gutter):(a.gutter.removeEventListener("mousedown",a._a),a.gutter.removeEventListener("touchstart",a._a)),!0!==e){var r=S(i,a.a.size,a._b);Object.keys(r).forEach((function(e){s[a.a].element.style[e]="",s[a.b].element.style[e]=""}))}}))},parent:c,pairs:R}},Kt="search://";class Vt extends X{constructor(){super(),this.sourceUrl=null,this.inited=!1,this.isLoading=!1,this.coll="",this.collInfo=null,this._replaceLoc=!1,this._locUpdateNeeded=!1,this._locationHash="",this.tabData={},this.url="",this.ts="",this.tabNames=["pages","story","resources","info"],this.tabLabels={pages:"Pages",story:"Story",resources:"URLs",info:"Archive Info"},this.menuActive=!1,this.embedDropdownActive=!1,this.hasStory=!1,this.editable=!1,this.browsable=!0,this.clearable=!0,this.showSidebar="1"===localStorage.getItem("pages:showSidebar"),this.splitter=null,this.isVisible=!0,this.favIconUrl="",this.autoUpdateInterval=10,this._autoUpdater=null,this.appName="ReplayWeb.page",this.appVersion=me,this.appLogo=fe()}static get properties(){return{inited:{type:Boolean},sourceUrl:{type:String},loadInfo:{type:Object,attribute:!1},showSidebar:{type:Boolean},collInfo:{type:Object,attribute:!1},coll:{type:String},hasStory:{type:Boolean},isLoading:{type:Boolean},tabData:{type:Object,attribute:!1},url:{type:String},ts:{type:String},isFullscreen:{type:Boolean},menuActive:{type:Boolean},embed:{type:String},embedDropdownActive:{type:Boolean},editable:{type:Boolean},browsable:{type:Boolean},clearable:{type:Boolean},isVisible:{type:Boolean},favIconUrl:{type:String},appName:{type:String},appVersion:{type:String},appLogo:{type:String},autoUpdateInterval:{type:Number},swName:{type:String}}}firstUpdated(){this.inited=!0,window.addEventListener("hashchange",(e=>this.onHashChange(e))),this.addEventListener("fullscreenchange",(()=>{this.isFullscreen=!!document.fullscreenElement})),this.embed&&this.loadInfo&&this.loadInfo.hideOffscreen&&(this.observer=new IntersectionObserver((e=>{this.isVisible=e[0].isIntersecting})),this.observer.observe(this))}async runUpdateLoop(){try{for(;this.editable&&this.autoUpdateInterval&&(!this.collInfo||this.collInfo.pages.length<100);)await new Promise((e=>setTimeout(e,1e3*this.autoUpdateInterval))),await this.doUpdateInfo(!0)}finally{this._autoUpdater=null}}updated(e){if(e.has("sourceUrl")&&this.doUpdateInfo(),e.has("editable")&&this.editable&&this.autoUpdateInterval&&!this._autoUpdater&&(this._autoUpdater=this.runUpdateLoop()),e.has("tabData")){if(!this.collInfo||!this.collInfo.coll)return;Object.keys(this.tabData).forEach((e=>!this.tabData[e]&&delete this.tabData[e]));const t="#"+new URLSearchParams(this.tabData).toString();if(this.tabData.url||(this.url=Kt+decodeURIComponent(this._paramsToString(this.tabData))),t!==this._locationHash){if(this._locationHash=t,this._replaceLoc||0===Object.keys(e.get("tabData")).length){const e=new URL(window.location.href);e.hash=this._locationHash,window.history.replaceState({},"",e.href),this._replaceLoc=!1}else if(window.location.hash=this._locationHash,!this.showSidebar){const e=this.renderRoot.querySelector("wr-coll-replay");e&&e.focus()}this.embed&&window.parent!==window&&window.parent.postMessage(this.tabData,"*")}this._locUpdateNeeded=!1}e.has("showSidebar")&&(this.embed||localStorage.setItem("pages:showSidebar",this.showSidebar?"1":"0")),(e.has("tabData")||e.has("showSidebar"))&&this.configureSplitter()}configureSplitter(){if(this.tabData.url&&this.showSidebar){const e=this.renderRoot.querySelector("#contents"),t=this.renderRoot.querySelector("wr-coll-replay");if(e&&t&&!this.splitter){const i={sizes:[30,70],minSize:[300,300],gutterSize:4,onDragStart(){t.setDisablePointer(!0)},onDragEnd(){t.setDisablePointer(!1)}};this.splitter=Gt([e,t],i)}}else if(this.splitter){try{this.splitter.destroy()}catch(e){}this.splitter=null}}async doUpdateInfo(e=!1){if(e&&this.tabData.url&&!this.showSidebar)return;let t=this.loadInfo&&this.loadInfo.customColl;if(!t){t=(await Je(this.sourceUrl)).coll}this.coll=t;const i="./w/api/c/"+t,a="./w/"+t,r=await fetch(i+"?all=1");if(200!=r.status)return void(this.collInfo={});const o=await r.json();if(this.collInfo={apiPrefix:i,replayPrefix:a,coll:t,...o},this.loadInfo&&this.loadInfo.extraConfig&&this.loadInfo.extraConfig.headers){const e=this.loadInfo.extraConfig.headers;await fetch(`${i}/updateAuth`,{method:"POST",body:JSON.stringify({headers:e})})}this.collInfo.title||(this.collInfo.title=this.collInfo.filename),"replayonly"!==this.embed&&"replay-with-info"!==this.embed||(this.showSidebar=!1),this.hasStory=this.collInfo.desc||this.collInfo.lists.length,this.dispatchEvent(new CustomEvent("coll-loaded",{detail:{collInfo:this.collInfo,alreadyLoaded:!0}})),this.onHashChange()}onCollLoaded(e){this.doUpdateInfo(),this.loadInfo=null,e.detail.sourceUrl&&(this.sourceUrl=e.detail.sourceUrl),this.dispatchEvent(new CustomEvent("coll-loaded",{detail:{sourceUrl:this.sourceUrl,collInfo:this.collInfo}}))}onCollUpdate(e){this.editable&&(this.collInfo={...this.collInfo,...e.detail})}onHashChange(){const e=window.location.hash;if(e&&e!==this._locationHash&&(this.tabData=Object.fromEntries(new URLSearchParams(e.slice(1)).entries()),this._locationHash=e),this.collInfo.coll&&!this.tabNames.includes(this.tabData.view)){const e=this.hasStory?"story":this.editable||this.collInfo.pages.length?"pages":"resources";this.tabData={...this.tabData,view:e}}if(this.tabData.url&&this.tabData.url.startsWith("page:")){const e=Number(this.tabData.url.slice("page:".length));if(!isNaN(e)&&ePermission is needed to reload the archive file. (Click Cancel to cancel loading this archive.) Cancel - `;default:return T``}}async onAskPermission(){"granted"===await this.fileHandle.requestPermission({mode:"read"})&&this.doLoad()}}customElements.define("wr-loader",qi);var Mi=__webpack_require__(9746),Fi=__webpack_require__.n(Mi),ji=__webpack_require__(6304),Ni=__webpack_require__(6442),Oi=__webpack_require__.n(Ni),Bi=__webpack_require__(9638),Hi=__webpack_require__.n(Bi);class Wi extends X{constructor(){super(),this.filteredPages=[],this.sortedPages=[],this.query="",this.flex=null,this.textPages=null,this.newQuery=null,this.loading=!1,this.updatingSearch=!1,this.showAllPages=!1,this.hasExtraPages=!1,this.currList=0,this.active=!1,this.editable=!1,this.changeNeeded=!1,this.selectedPages=new Set,this.menuActive=!1,this.sortKey="date",this.sortDesc=!0,this.isSidebar=!1,this.url="",this.ts="",this.editing=!1,this.toDeletePages=null,this.toDeletePage=null}static get sortKeys(){return[{key:"",name:"Best Match"},{key:"title",name:"Title"},{key:"date",name:"Date"}]}static get properties(){return{active:{type:Boolean},collInfo:{type:Object},currList:{type:Number},filteredPages:{type:Array},sortedPages:{type:Array},showAllPages:{type:Boolean},query:{type:String},defaultKey:{type:String},loading:{type:Boolean},updatingSearch:{type:Boolean},editable:{type:Boolean},selectedPages:{type:Set},allSelected:{type:Boolean},menuActive:{type:Boolean},sortKey:{type:String},sortDesc:{type:Boolean},isSidebar:{type:Boolean},url:{type:String},ts:{type:String},editing:{type:Boolean},toDeletePages:{type:Object},toDeletePage:{type:Object}}}_timedUpdate(){null!==this.newQuery&&(this.query=this.newQuery,this.newQuery=null,this.filter())}async updated(e){if(e.has("collInfo")?this.updateTextSearch():(e.has("query")||e.has("currList")||e.has("showAllPages"))&&this.filter(),e.has("active")&&this.active&&this.changeNeeded&&this.filter(),e.has("query")){this.query?(this.sortKey="",this.sortDesc=!1):(this.sortKey="date",this.sortDesc=!0);const e=this.renderRoot.querySelector("wr-sorter");e&&(e.sortKey=this.sortKey,e.sortDesc=this.sortDesc)}if(e.has("sortedPages")&&this.isSidebar){const e=this.renderRoot.querySelector(".current");if(e){const t={behavior:"smooth",block:"nearest",inline:"nearest"};setTimeout((()=>e.scrollIntoView(t)),100)}}}onChangeQuery(e){this.newQuery=e.currentTarget.value,this._ival&&window.clearTimeout(this._ival),this._ival=window.setTimeout((()=>this._timedUpdate()),250)}async filter(){if(this.loading)return;if(this.active||(this.changeNeeded=!0),this.loading=!0,this.flex&&this.query&&this.textPages){const e=await this.flex.searchAsync(this.query,25);this.filteredPages=e.map((e=>this.textPages[e]))}else this.showAllPages&&this.hasExtraPages?this.filteredPages=[...this.textPages]:this.filteredPages=[...this.collInfo.pages];0!==this.currList&&await this.filterCurated();for(const e of this.filteredPages){const{timestamp:t,date:i}=Ve(e);e.timestamp=t,e.date=i}this.loading=!1,this.changeNeeded=!1;const e={query:this.query,currList:this.currList};this.sendChangeEvent(e)}async filterCurated(){const e=await fetch(`${this.collInfo.apiPrefix}/curated/${this.currList}`),t=(await e.json()).curated;this.filteredPages=t}sendChangeEvent(e){this.dispatchEvent(new CustomEvent("coll-tab-nav",{detail:{data:e}}))}addPages(e){const t=new ji.Index;return this.flex=t,this.textPages=e,this.hasExtraPages=this.textPages&&this.collInfo&&this.collInfo.pages&&this.textPages.length>this.collInfo.pages.length,Promise.all(e.map(((e,i)=>{let a=e.url;return e.title&&(a+=" "+e.title),e.text&&(a+=" "+e.text),t.addAsync(i,a)})))}async updateTextSearch(){if(this.updatingSearch)return;this.updatingSearch=!0;let e=0;try{const t=await caches.open("cache:"+this.collInfo.coll),i=`${this.collInfo.apiPrefix}/textIndex`;let a=await t.match(i);a&&Number(a.headers.get("Content-Length"))||(a=await fetch(`${this.collInfo.apiPrefix}/textIndex`),200===a.status&&Number(a.headers.get("Content-Length"))&&t.put(i,a.clone()));const r=[];for await(const t of Fi()(a.body.getReader()))t.text&&(t.id=++e,r.push(t));await this.addPages(r)}catch(e){console.warn(e)}finally{0===e&&await this.addPages(this.collInfo.pages),this.updatingSearch=!1}await this.filter()}static get styles(){return ue(o` + `;default:return T``}}async onAskPermission(){"granted"===await this.fileHandle.requestPermission({mode:"read"})&&this.doLoad()}}customElements.define("wr-loader",qi);var Mi=__webpack_require__(9746),Fi=__webpack_require__.n(Mi),ji=__webpack_require__(6304),Bi=__webpack_require__(6442),Ni=__webpack_require__.n(Bi),Oi=__webpack_require__(9638),Hi=__webpack_require__.n(Oi);class Wi extends X{constructor(){super(),this.filteredPages=[],this.sortedPages=[],this.query="",this.flex=null,this.textPages=null,this.newQuery=null,this.loading=!1,this.updatingSearch=!1,this.showAllPages=!1,this.hasExtraPages=!1,this.currList=0,this.active=!1,this.editable=!1,this.changeNeeded=!1,this.selectedPages=new Set,this.menuActive=!1,this.sortKey="date",this.sortDesc=!0,this.isSidebar=!1,this.url="",this.ts="",this.editing=!1,this.toDeletePages=null,this.toDeletePage=null}static get sortKeys(){return[{key:"",name:"Best Match"},{key:"title",name:"Title"},{key:"date",name:"Date"}]}static get properties(){return{active:{type:Boolean},collInfo:{type:Object},currList:{type:Number},filteredPages:{type:Array},sortedPages:{type:Array},showAllPages:{type:Boolean},query:{type:String},defaultKey:{type:String},loading:{type:Boolean},updatingSearch:{type:Boolean},editable:{type:Boolean},selectedPages:{type:Set},allSelected:{type:Boolean},menuActive:{type:Boolean},sortKey:{type:String},sortDesc:{type:Boolean},isSidebar:{type:Boolean},url:{type:String},ts:{type:String},editing:{type:Boolean},toDeletePages:{type:Object},toDeletePage:{type:Object}}}_timedUpdate(){null!==this.newQuery&&(this.query=this.newQuery,this.newQuery=null,this.filter())}async updated(e){if(e.has("collInfo")?this.updateTextSearch():(e.has("query")||e.has("currList")||e.has("showAllPages"))&&this.filter(),e.has("active")&&this.active&&this.changeNeeded&&this.filter(),e.has("query")){this.query?(this.sortKey="",this.sortDesc=!1):(this.sortKey="date",this.sortDesc=!0);const e=this.renderRoot.querySelector("wr-sorter");e&&(e.sortKey=this.sortKey,e.sortDesc=this.sortDesc)}if(e.has("sortedPages")&&this.isSidebar){const e=this.renderRoot.querySelector(".current");if(e){const t={behavior:"smooth",block:"nearest",inline:"nearest"};setTimeout((()=>e.scrollIntoView(t)),100)}}}onChangeQuery(e){this.newQuery=e.currentTarget.value,this._ival&&window.clearTimeout(this._ival),this._ival=window.setTimeout((()=>this._timedUpdate()),250)}async filter(){if(this.loading)return;if(this.active||(this.changeNeeded=!0),this.loading=!0,this.flex&&this.query&&this.textPages){const e=await this.flex.searchAsync(this.query,25);this.filteredPages=e.map((e=>this.textPages[e]))}else this.showAllPages&&this.hasExtraPages?this.filteredPages=[...this.textPages]:this.filteredPages=[...this.collInfo.pages];0!==this.currList&&await this.filterCurated();for(const e of this.filteredPages){const{timestamp:t,date:i}=Ve(e);e.timestamp=t,e.date=i}this.loading=!1,this.changeNeeded=!1;const e={query:this.query,currList:this.currList};this.sendChangeEvent(e)}async filterCurated(){const e=await fetch(`${this.collInfo.apiPrefix}/curated/${this.currList}`),t=(await e.json()).curated;this.filteredPages=t}sendChangeEvent(e){this.dispatchEvent(new CustomEvent("coll-tab-nav",{detail:{data:e}}))}addPages(e){const t=new ji.Index;return this.flex=t,this.textPages=e,this.hasExtraPages=this.textPages&&this.collInfo&&this.collInfo.pages&&this.textPages.length>this.collInfo.pages.length,Promise.all(e.map(((e,i)=>{let a=e.url;return e.title&&(a+=" "+e.title),e.text&&(a+=" "+e.text),t.addAsync(i,a)})))}async updateTextSearch(){if(this.updatingSearch)return;this.updatingSearch=!0;let e=0;try{const t=await caches.open("cache:"+this.collInfo.coll),i=`${this.collInfo.apiPrefix}/textIndex`;let a=await t.match(i);a&&Number(a.headers.get("Content-Length"))||(a=await fetch(`${this.collInfo.apiPrefix}/textIndex`),200===a.status&&Number(a.headers.get("Content-Length"))&&t.put(i,a.clone()));const r=[];for await(const t of Fi()(a.body.getReader()))t.text&&(t.id=++e,r.push(t));await this.addPages(r)}catch(e){console.warn(e)}finally{0===e&&await this.addPages(this.collInfo.pages),this.updatingSearch=!1}await this.filter()}static get styles(){return ue(o` :host { width: 100%; height: 100%; @@ -1973,7 +1973,7 @@ class se extends oe{}se.directiveName="unsafeSVG",se.resultType=2;const le=ae(se @@ -2506,7 +2506,7 @@ class se extends oe{}se.directiveName="unsafeSVG",se.resultType=2;const le=ae(se `)):T`No Results Found.`} - `}onSort(e){e.preventDefault();const t=e.currentTarget.getAttribute("data-key");t===this.sortKey?this.sortDesc=!this.sortDesc:(this.sortDesc=!1,this.sortKey=t)}onSortChanged(e){this.sortedResults=e.detail.sortedData,this.sortKey=e.detail.sortKey,this.sortDesc=e.detail.sortDesc}onReplay(e){e.preventDefault();const t={url:e.currentTarget.getAttribute("data-url"),ts:e.currentTarget.getAttribute("data-ts")};return this.dispatchEvent(new CustomEvent("coll-tab-nav",{detail:{data:t}})),!1}}customElements.define("wr-coll-resources",ia);var aa=document.currentScript&&document.currentScript.src,ra="";class oa extends X{constructor(){super(),this.replaybase="./replay/",this.replayfile=ra,this.swName="sw.js",this.mainElementName="replay-app-main",this.appName="ReplayWeb.page",this.view="replay",this.ts="",this.url="",this.query="",this.config="",this.customConfig=null,this.coll="",this.paramString=null,this.deepLink=!1,this.newWindowBase="",this.inited=!1,this.embed=null,this.reloadCount=0,this.sandbox=!1,this.noWebWorker=!1,this.noCache=!1,this.noSandbox=null,this.logo=fe(),this.loading=""}static setDefaultReplayFile(e){ra=e}static get properties(){return{url:{type:String},ts:{type:String},query:{type:String},source:{type:String},src:{type:String},view:{type:String},embed:{type:String},replaybase:{type:String},swName:{type:String},title:{type:String},coll:{type:String},config:{type:String},inited:{type:Boolean},paramString:{type:String},hashString:{type:String},deepLink:{type:Boolean},sandbox:{type:Boolean},noSandbox:{type:Boolean},noWebWorker:{type:Boolean},noCache:{type:Boolean},hideOffscreen:{type:Boolean},newWindowBase:{type:String},errorMessage:{type:String},requireSubdomainIframe:{type:Boolean},loading:{type:String}}}async doRegister(){const e=new URL(this.replaybase,window.location.href);if(this.isCrossOrigin=e.origin!==window.location.origin,this.isCrossOrigin)return void(this.inited=!0);const t=this.swName,i=this.appName,a=this.replaybase,r=this.requireSubdomainIframe;this.swmanager=new Ee({name:t,scope:a,requireSubdomainIframe:r,appName:i});try{await this.swmanager.register(),this.inited=!0}catch(e){this.errorMessage=this.swmanager.renderErrorReport(this.logo)}}handleMessage(e){const t=this.renderRoot.querySelector("iframe");if(t&&e.source===t.contentWindow){if(!e.data.view)return;if(e.data.title&&(this.title=e.data.title),!this.deepLink)return;const t=new URLSearchParams(e.data),i=new URL(window.location.href);i.hash="#"+t.toString(),window.history.replaceState({},"",i)}}firstUpdated(){this.noSandbox&&console.warn("The noSandbox flag is deprecated. ReplayWeb.page does not add a sandbox by default. To enable sandboxing, use 'sandbox' flag instead. This may result in PDFs not loading and pages opening in new windows, but may be more secure in some situations"),this.doRegister(),window.addEventListener("message",(e=>this.handleMessage(e))),this.deepLink&&(this.updateFromHash(),window.addEventListener("hashchange",(()=>this.updateFromHash()))),this.loadBrowserDefaults()}loadBrowserDefaults(){void 0!==window.GestureEvent&&void 0===window.SharedWorker&&(this.noWebWorker=!0),navigator.storage&&navigator.storage.estimate||(this.noCache=!0)}updateFromHash(){const e=new URLSearchParams(window.location.hash.slice(1));e.has("url")&&(this.url=e.get("url")),e.has("ts")&&(this.ts=e.get("ts")),e.has("query")&&(this.query=e.get("query")),e.has("view")&&(this.view=e.get("view"))}mergeConfigs(){if(!this.customConfig)return this.config;if(this.config){const e={...this.customConfig,...JSON.parse(this.config)};return JSON.stringify(e)}return JSON.stringify(this.customConfig)}updated(e){if(e.has("url")||e.has("ts")||e.has("query")||e.has("view")||e.has("source")||e.has("src")){this.embed=this.embed||"default",this.src&&(this.source=this.src);const e=new URL(this.source,document.baseURI),t=this.mergeConfigs(),i={source:e,customColl:this.coll,config:t,basePageUrl:window.location.href.split("#")[0],baseUrlSourcePrefix:this.newWindowBase,embed:this.embed};this.deepLink||i.baseUrlSourcePrefix||(i.baseUrlSourcePrefix="https://replayweb.page/"),this.noWebWorker&&(i.noWebWorker="1"),this.noCache&&(i.noCache="1"),this.hideOffscreen&&(i.hideOffscreen="1"),"eager"===this.loading&&(i.loading="eager"),"sw.js"!==this.swName&&(i.swName=this.swName),this.paramString=new URLSearchParams(i).toString(),this.hashString=new URLSearchParams({url:this.url,ts:this.ts,query:this.query,view:this.view}).toString()}}static get styles(){return ue(o` + `}onSort(e){e.preventDefault();const t=e.currentTarget.getAttribute("data-key");t===this.sortKey?this.sortDesc=!this.sortDesc:(this.sortDesc=!1,this.sortKey=t)}onSortChanged(e){this.sortedResults=e.detail.sortedData,this.sortKey=e.detail.sortKey,this.sortDesc=e.detail.sortDesc}onReplay(e){e.preventDefault();const t={url:e.currentTarget.getAttribute("data-url"),ts:e.currentTarget.getAttribute("data-ts")};return this.dispatchEvent(new CustomEvent("coll-tab-nav",{detail:{data:t}})),!1}}customElements.define("wr-coll-resources",ia);var aa=document.currentScript&&document.currentScript.src,ra="";class oa extends X{constructor(){super(),this.replaybase="./replay/",this.replayfile=ra,this.swName="sw.js",this.mainElementName="replay-app-main",this.appName="ReplayWeb.page",this.view="replay",this.ts="",this.url="",this.query="",this.config="",this.customConfig=null,this.coll="",this.paramString=null,this.deepLink=!1,this.newWindowBase="",this.inited=!1,this.embed=null,this.reloadCount=0,this.sandbox=!1,this.noWebWorker=!1,this.noCache=!1,this.noSandbox=null,this.logo=fe(),this.loading="",this.useRuffle=!1}static setDefaultReplayFile(e){ra=e}static get properties(){return{url:{type:String},ts:{type:String},query:{type:String},source:{type:String},src:{type:String},view:{type:String},embed:{type:String},replaybase:{type:String},swName:{type:String},title:{type:String},coll:{type:String},config:{type:String},inited:{type:Boolean},paramString:{type:String},hashString:{type:String},deepLink:{type:Boolean},sandbox:{type:Boolean},noSandbox:{type:Boolean},noWebWorker:{type:Boolean},noCache:{type:Boolean},hideOffscreen:{type:Boolean},newWindowBase:{type:String},errorMessage:{type:String},requireSubdomainIframe:{type:Boolean},loading:{type:String},useRuffle:{type:Boolean}}}async doRegister(){const e=new URL(this.replaybase,window.location.href);if(this.isCrossOrigin=e.origin!==window.location.origin,this.isCrossOrigin)return void(this.inited=!0);const t=this.swName,i=this.appName,a=this.replaybase,r=this.requireSubdomainIframe;this.swmanager=new Ee({name:t,scope:a,requireSubdomainIframe:r,appName:i});try{await this.swmanager.register(),this.inited=!0}catch(e){this.errorMessage=this.swmanager.renderErrorReport(this.logo)}}handleMessage(e){const t=this.renderRoot.querySelector("iframe");if(t&&e.source===t.contentWindow){if(!e.data.view)return;if(e.data.title&&(this.title=e.data.title),!this.deepLink)return;const t=new URLSearchParams(e.data),i=new URL(window.location.href);i.hash="#"+t.toString(),window.history.replaceState({},"",i)}}firstUpdated(){this.noSandbox&&console.warn("The noSandbox flag is deprecated. ReplayWeb.page does not add a sandbox by default. To enable sandboxing, use 'sandbox' flag instead. This may result in PDFs not loading and pages opening in new windows, but may be more secure in some situations"),this.doRegister(),window.addEventListener("message",(e=>this.handleMessage(e))),this.deepLink&&(this.updateFromHash(),window.addEventListener("hashchange",(()=>this.updateFromHash()))),this.loadBrowserDefaults()}loadBrowserDefaults(){void 0!==window.GestureEvent&&void 0===window.SharedWorker&&(this.noWebWorker=!0),navigator.storage&&navigator.storage.estimate||(this.noCache=!0)}updateFromHash(){const e=new URLSearchParams(window.location.hash.slice(1));e.has("url")&&(this.url=e.get("url")),e.has("ts")&&(this.ts=e.get("ts")),e.has("query")&&(this.query=e.get("query")),e.has("view")&&(this.view=e.get("view"))}mergeConfigs(){if(!this.customConfig)return this.config;if(this.config){const e={...this.customConfig,...JSON.parse(this.config)};return JSON.stringify(e)}return JSON.stringify(this.customConfig)}updated(e){if(e.has("url")||e.has("ts")||e.has("query")||e.has("view")||e.has("source")||e.has("src")){this.embed=this.embed||"default",this.src&&(this.source=this.src);const e=new URL(this.source,document.baseURI),t=this.mergeConfigs(),i={source:e,customColl:this.coll,config:t,basePageUrl:window.location.href.split("#")[0],baseUrlSourcePrefix:this.newWindowBase,embed:this.embed};this.deepLink||i.baseUrlSourcePrefix||(i.baseUrlSourcePrefix="https://replayweb.page/"),this.noWebWorker&&(i.noWebWorker="1"),this.noCache&&(i.noCache="1"),this.hideOffscreen&&(i.hideOffscreen="1"),"eager"===this.loading&&(i.loading="eager"),"sw.js"!==this.swName&&(i.swName=this.swName),this.useRuffle&&(i.ruffle="1"),this.paramString=new URLSearchParams(i).toString(),this.hashString=new URLSearchParams({url:this.url,ts:this.ts,query:this.query,view:this.view}).toString()}}static get styles(){return ue(o` .logo { margin: 1em; flex-grow: 1;