{"version":3,"file":"ruffle.js","mappings":"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","sources":["webpack://ruffle-selfhosted/webpack/runtime/load script","webpack://ruffle-selfhosted/../../node_modules/jszip/dist/jszip.min.js","webpack://ruffle-selfhosted/webpack/bootstrap","webpack://ruffle-selfhosted/webpack/runtime/compat get default export","webpack://ruffle-selfhosted/webpack/runtime/define property getters","webpack://ruffle-selfhosted/webpack/runtime/ensure chunk","webpack://ruffle-selfhosted/webpack/runtime/get javascript chunk filename","webpack://ruffle-selfhosted/webpack/runtime/global","webpack://ruffle-selfhosted/webpack/runtime/harmony module decorator","webpack://ruffle-selfhosted/webpack/runtime/hasOwnProperty shorthand","webpack://ruffle-selfhosted/webpack/runtime/make namespace object","webpack://ruffle-selfhosted/webpack/runtime/publicPath","webpack://ruffle-selfhosted/webpack/runtime/jsonp chunk loading","webpack://ruffle-selfhosted/../core/dist/version.js","webpack://ruffle-selfhosted/../core/dist/version-range.js","webpack://ruffle-selfhosted/../../node_modules/wasm-feature-detect/dist/esm/index.js","webpack://ruffle-selfhosted/../core/dist/js-polyfills.js","webpack://ruffle-selfhosted/../core/dist/public-path.js","webpack://ruffle-selfhosted/../core/dist/load-ruffle.js","webpack://ruffle-selfhosted/../core/dist/shadow-template.js","webpack://ruffle-selfhosted/../core/dist/register-element.js","webpack://ruffle-selfhosted/../core/dist/config.js","webpack://ruffle-selfhosted/../core/dist/flash-identifiers.js","webpack://ruffle-selfhosted/../core/dist/swf-utils.js","webpack://ruffle-selfhosted/../core/dist/build-info.js","webpack://ruffle-selfhosted/../../node_modules/@fluent/bundle/esm/types.js","webpack://ruffle-selfhosted/../../node_modules/@fluent/bundle/esm/resolver.js","webpack://ruffle-selfhosted/../../node_modules/@fluent/bundle/esm/scope.js","webpack://ruffle-selfhosted/../../node_modules/@fluent/bundle/esm/builtins.js","webpack://ruffle-selfhosted/../../node_modules/@fluent/bundle/esm/memoizer.js","webpack://ruffle-selfhosted/../../node_modules/@fluent/bundle/esm/bundle.js","webpack://ruffle-selfhosted/../../node_modules/@fluent/bundle/esm/resource.js","webpack://ruffle-selfhosted/../../node_modules/@fluent/langneg/esm/locale.js","webpack://ruffle-selfhosted/../../node_modules/@fluent/langneg/esm/negotiate_languages.js","webpack://ruffle-selfhosted/../../node_modules/@fluent/langneg/esm/matches.js","webpack://ruffle-selfhosted/../core/dist/i18n.js","webpack://ruffle-selfhosted/../core/dist/ruffle-player.js","webpack://ruffle-selfhosted/../core/dist/ruffle-embed.js","webpack://ruffle-selfhosted/../core/dist/ruffle-object.js","webpack://ruffle-selfhosted/../core/dist/plugin-polyfill.js","webpack://ruffle-selfhosted/../core/dist/polyfills.js","webpack://ruffle-selfhosted/../core/dist/source-api.js","webpack://ruffle-selfhosted/../core/dist/public-api.js","webpack://ruffle-selfhosted/./js/ruffle.js"],"sourcesContent":["var inProgress = {};\nvar dataWebpackPrefix = \"ruffle-selfhosted:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n\n\n(c) 2009-2016 Stuart Knightley \nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e>2,s=(3&t)<<4|r>>4,a=1>6:64,o=2>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"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(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h(\"Deflate\",e)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){\"use strict\";function A(e,t){var r,n=\"\";for(r=0;r>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),c=I.transformTo(\"string\",O.utf8encode(h.name)),d=h.comment,p=I.transformTo(\"string\",s(d)),m=I.transformTo(\"string\",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(n,4)+f+b+p}}var I=e(\"../utils\"),i=e(\"../stream/GenericWorker\"),O=e(\"../utf8\"),B=e(\"../crc32\"),R=e(\"../signature\");function s(e,t,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.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,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),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,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),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,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),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,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.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=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(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=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.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=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(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}n.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 r=0;r \"+e:e}},t.exports=n},{}],29:[function(e,t,r){\"use strict\";var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),u=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on(\"data\",function(e,t){n.push(e),o&&o(t)}).on(\"error\",function(e){n=[],r(e)}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,a){\"use strict\";var o=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),u=e(\"./external\");function n(e){return e}function l(e,t){for(var r=0;r>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=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){\"use strict\";var h,c=e(\"../utils/common\"),u=e(\"./trees\"),d=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x)if(n=u._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,n=u._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&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)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?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<>>=y,p-=y),p<15&&(d+=z[n++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<>>=y,p-=y,(y=s-a)>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(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=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){e.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3}else{for(z=_+7;l>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(hd?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u>=7;n>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-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&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(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,r){\"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(r,n){\"use strict\";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i=\"[object process]\"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage(\"\",\"*\"),r.onmessage=t,e}}()?(a=\"setImmediate$\"+Math.random()+\"$\",r.addEventListener?r.addEventListener(\"message\",d,!1):r.attachEvent(\"onmessage\",d),function(e){r.postMessage(a+e,\"*\")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(s=l.documentElement,function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),r=0;r {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"core.ruffle.\" + {\"159\":\"d4b1a9edc01134f3e623\",\"339\":\"aeaca10e31ad891978a3\"}[chunkId] + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkruffle_selfhosted\"] = self[\"webpackChunkruffle_selfhosted\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","/**\n * A representation of a semver 2 compliant version string\n */\nexport class Version {\n /**\n * Construct a Version from specific components.\n *\n * If you wish to parse a string into a Version then please use [[fromSemver]].\n *\n * @param major The major version component.\n * @param minor The minor version component.\n * @param patch The patch version component.\n * @param prIdent A list of pre-release identifiers, if any\n * @param buildIdent A list of build identifiers, if any\n */\n constructor(major, minor, patch, prIdent, \n // @ts-expect-error: Property 'buildIdent' is declared but its value is never read.\n buildIdent) {\n this.major = major;\n this.minor = minor;\n this.patch = patch;\n this.prIdent = prIdent;\n this.buildIdent = buildIdent;\n }\n /**\n * Construct a version from a semver 2 compliant string.\n *\n * This function is intended for use with semver 2 compliant strings.\n * Malformed strings may still parse correctly, but this result is not\n * guaranteed.\n *\n * @param versionString A semver 2.0.0 compliant version string\n * @returns A version object\n */\n static fromSemver(versionString) {\n const buildSplit = versionString.split(\"+\"), prSplit = buildSplit[0].split(\"-\"), versionSplit = prSplit[0].split(\".\");\n const major = parseInt(versionSplit[0], 10);\n let minor = 0;\n let patch = 0;\n let prIdent = null;\n let buildIdent = null;\n if (versionSplit[1] !== undefined) {\n minor = parseInt(versionSplit[1], 10);\n }\n if (versionSplit[2] !== undefined) {\n patch = parseInt(versionSplit[2], 10);\n }\n if (prSplit[1] !== undefined) {\n prIdent = prSplit[1].split(\".\");\n }\n if (buildSplit[1] !== undefined) {\n buildIdent = buildSplit[1].split(\".\");\n }\n return new Version(major, minor, patch, prIdent, buildIdent);\n }\n /**\n * Returns true if a given version is compatible with this one.\n *\n * Compatibility is defined as having the same nonzero major version\n * number, or if both major versions are zero, the same nonzero minor\n * version number, or if both minor versions are zero, the same nonzero\n * patch version number.\n *\n * This implements the ^ operator in npm's semver package, with the\n * exception of the prerelease exclusion rule.\n *\n * @param other The other version to test against\n * @returns True if compatible\n */\n isCompatibleWith(other) {\n return ((this.major !== 0 && this.major === other.major) ||\n (this.major === 0 &&\n other.major === 0 &&\n this.minor !== 0 &&\n this.minor === other.minor) ||\n (this.major === 0 &&\n other.major === 0 &&\n this.minor === 0 &&\n other.minor === 0 &&\n this.patch !== 0 &&\n this.patch === other.patch));\n }\n /**\n * Returns true if this version has precedence over (is newer than) another\n * version.\n *\n * Precedence is defined as in the Semver 2 spec. This implements the >\n * operator in npm's semver package, with the exception of the prerelease\n * exclusion rule.\n *\n * @param other The other version to test against\n * @returns True if this version has precedence over the other one\n */\n hasPrecedenceOver(other) {\n if (this.major > other.major) {\n return true;\n }\n else if (this.major < other.major) {\n return false;\n }\n if (this.minor > other.minor) {\n return true;\n }\n else if (this.minor < other.minor) {\n return false;\n }\n if (this.patch > other.patch) {\n return true;\n }\n else if (this.patch < other.patch) {\n return false;\n }\n if (this.prIdent === null && other.prIdent !== null) {\n return true;\n }\n else if (this.prIdent !== null && other.prIdent !== null) {\n const isNumeric = /^[0-9]*$/;\n for (let i = 0; i < this.prIdent.length && i < other.prIdent.length; i += 1) {\n if (!isNumeric.test(this.prIdent[i]) &&\n isNumeric.test(other.prIdent[i])) {\n return true;\n }\n else if (isNumeric.test(this.prIdent[i]) &&\n isNumeric.test(other.prIdent[i])) {\n if (parseInt(this.prIdent[i], 10) >\n parseInt(other.prIdent[i], 10)) {\n return true;\n }\n else if (parseInt(this.prIdent[i], 10) <\n parseInt(other.prIdent[i], 10)) {\n return false;\n }\n }\n else if (isNumeric.test(this.prIdent[i]) &&\n !isNumeric.test(other.prIdent[i])) {\n return false;\n }\n else if (!isNumeric.test(this.prIdent[i]) &&\n !isNumeric.test(other.prIdent[i])) {\n if (this.prIdent[i] > other.prIdent[i]) {\n return true;\n }\n else if (this.prIdent[i] < other.prIdent[i]) {\n return false;\n }\n }\n }\n return this.prIdent.length > other.prIdent.length;\n }\n return false;\n }\n /**\n * Tests if a given version is equivalent to this one.\n *\n * Build and prerelease tags are ignored.\n *\n * @param other The other version to test against\n * @returns True if the given version is equivalent\n */\n isEqual(other) {\n return (this.major === other.major &&\n this.minor === other.minor &&\n this.patch === other.patch);\n }\n /**\n * Tests if a given version is stable or a compatible prerelease for this\n * version.\n *\n * This implements the prerelease exclusion rule of NPM semver: a\n * prerelease version can only pass this check if the major/minor/patch\n * components of both versions are the same. Otherwise, the prerelease\n * version always fails.\n *\n * @param other The other version to test against\n * @returns True if the given version is either stable, or a\n * prerelease in the same series as this one.\n */\n isStableOrCompatiblePrerelease(other) {\n if (other.prIdent === null) {\n return true;\n }\n else {\n return (this.major === other.major &&\n this.minor === other.minor &&\n this.patch === other.patch);\n }\n }\n}\n","import { Version } from \"./version\";\n/**\n * Represents a set of version requirements.\n */\nexport class VersionRange {\n /**\n * Constructs a range of versions as specified by the given requirements.\n *\n * If you wish to construct this object from a string representation,\n * then use [[fromRequirementString]].\n *\n * @param requirements Requirements to set this range by\n */\n constructor(requirements) {\n this.requirements = requirements;\n }\n /**\n * Determine if a given version satisfies this range.\n *\n * @param fver A version object to test against.\n * @returns Whether or not the given version matches this range\n */\n satisfiedBy(fver) {\n for (const requirement of this.requirements) {\n let matches = true;\n for (const { comparator, version } of requirement) {\n matches =\n matches && version.isStableOrCompatiblePrerelease(fver);\n if (comparator === \"\" || comparator === \"=\") {\n matches = matches && version.isEqual(fver);\n }\n else if (comparator === \">\") {\n matches = matches && fver.hasPrecedenceOver(version);\n }\n else if (comparator === \">=\") {\n matches =\n matches &&\n (fver.hasPrecedenceOver(version) ||\n version.isEqual(fver));\n }\n else if (comparator === \"<\") {\n matches = matches && version.hasPrecedenceOver(fver);\n }\n else if (comparator === \"<=\") {\n matches =\n matches &&\n (version.hasPrecedenceOver(fver) ||\n version.isEqual(fver));\n }\n else if (comparator === \"^\") {\n matches = matches && version.isCompatibleWith(fver);\n }\n }\n if (matches) {\n return true;\n }\n }\n return false;\n }\n /**\n * Parse a requirement string into a version range.\n *\n * @param requirement The version requirements, consisting of a\n * series of space-separated strings, each one being a semver version\n * optionally prefixed by a comparator or a separator.\n *\n * Valid comparators are:\n * - `\"\"` or `\"=\"`: Precisely this version\n * - `\">`\": A version newer than this one\n * - `\">`=\": A version newer or equal to this one\n * - `\"<\"`: A version older than this one\n * - `\"<=\"`: A version older or equal to this one\n * - `\"^\"`: A version that is compatible with this one\n *\n * A separator is `\"||`\" which splits the requirement string into\n * left OR right.\n * @returns A version range object.\n */\n static fromRequirementString(requirement) {\n const components = requirement.split(\" \");\n let set = [];\n const requirements = [];\n for (const component of components) {\n if (component === \"||\") {\n if (set.length > 0) {\n requirements.push(set);\n set = [];\n }\n }\n else if (component.length > 0) {\n const match = /[0-9]/.exec(component);\n if (match) {\n const comparator = component.slice(0, match.index).trim();\n const version = Version.fromSemver(component.slice(match.index).trim());\n set.push({ comparator, version });\n }\n }\n }\n if (set.length > 0) {\n requirements.push(set);\n }\n return new VersionRange(requirements);\n }\n}\n","export const bigInt=()=>(async e=>{try{return(await WebAssembly.instantiate(e)).instance.exports.b(BigInt(0))===BigInt(0)}catch(e){return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,126,1,126,3,2,1,0,7,5,1,1,98,0,0,10,6,1,4,0,32,0,11])),bulkMemory=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])),exceptions=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,6,64,25,11,11])),extendedConst=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,5,3,1,0,1,11,9,1,0,65,1,65,2,106,11,0])),gc=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,10,2,95,1,125,0,96,0,1,107,0,3,2,1,1,10,12,1,10,0,67,0,0,0,0,251,7,0,11])),memory64=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,5,3,1,4,1])),multiValue=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,0,2,127,127,3,2,1,0,10,8,1,6,0,65,0,65,0,11])),mutableGlobals=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,2,8,1,1,97,1,98,3,127,1,6,6,1,127,1,65,0,11,7,5,1,1,97,3,1])),referenceTypes=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])),relaxedSimd=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,15,1,13,0,65,1,253,15,65,2,253,15,253,128,2,11])),saturatedFloatToInt=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])),signExtensions=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])),simd=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])),streamingCompilation=()=>(async()=>\"compileStreaming\"in WebAssembly)(),tailCall=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,6,1,4,0,18,0,11])),threads=()=>(async e=>{try{return\"undefined\"!=typeof MessageChannel&&(new MessageChannel).port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(e)}catch(e){return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]));\n","/**\n * Polyfills the `Array.prototype.reduce` method.\n *\n * Production steps of ECMA-262, Edition 5, 15.4.4.21\n * Reference: https://es5.github.io/#x15.4.4.21\n * https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n */\nfunction polyfillArrayPrototypeReduce() {\n Object.defineProperty(Array.prototype, \"reduce\", {\n value(...args) {\n if (args.length === 0 &&\n window.Prototype &&\n window.Prototype.Version &&\n window.Prototype.Version < \"1.6.1\") {\n // Off-spec: compatibility with prototype.js\n return this.length > 1 ? this : this[0];\n }\n const callback = args[0];\n if (this === null) {\n throw new TypeError(\"Array.prototype.reduce called on null or undefined\");\n }\n if (typeof callback !== \"function\") {\n throw new TypeError(`${callback} is not a function`);\n }\n const o = Object(this);\n const len = o.length >>> 0;\n let k = 0;\n let value;\n if (args.length >= 2) {\n value = args[1];\n }\n else {\n while (k < len && !(k in o)) {\n k++;\n }\n if (k >= len) {\n throw new TypeError(\"Reduce of empty array with no initial value\");\n }\n value = o[k++];\n }\n while (k < len) {\n if (k in o) {\n value = callback(value, o[k], k, o);\n }\n k++;\n }\n return value;\n },\n });\n}\n/**\n * Polyfills the `Window` function.\n */\nfunction polyfillWindow() {\n if (typeof window.constructor !== \"function\" ||\n !isNativeFunction(window.constructor)) {\n // Don't polyfill `Window` if `window.constructor` has been overridden.\n return;\n }\n // @ts-expect-error: `Function not assignable to { new (): Window; prototype: Window; }`\n window.Window = window.constructor;\n}\n/**\n * Polyfills the `Reflect` object and members.\n *\n * This is a partial implementation, just enough to match our needs.\n */\nfunction tryPolyfillReflect() {\n if (window.Reflect === undefined || window.Reflect === null) {\n // @ts-expect-error: {} indeed doesn't implement Reflect's interface.\n window.Reflect = {};\n }\n if (typeof Reflect.get !== \"function\") {\n Object.defineProperty(Reflect, \"get\", {\n value(target, key) {\n return target[key];\n },\n });\n }\n if (typeof Reflect.set !== \"function\") {\n Object.defineProperty(Reflect, \"set\", {\n value(target, key, value) {\n target[key] = value;\n },\n });\n }\n if (typeof Reflect.has !== \"function\") {\n Object.defineProperty(Reflect, \"has\", {\n value(target, key) {\n // @ts-expect-error: Type 'T' is not assignable to type 'object'.\n return key in target;\n },\n });\n }\n if (typeof Reflect.ownKeys !== \"function\") {\n Object.defineProperty(Reflect, \"ownKeys\", {\n value(target) {\n return [\n ...Object.getOwnPropertyNames(target),\n ...Object.getOwnPropertySymbols(target),\n ];\n },\n });\n }\n}\n/**\n * Determines whether a function is native or not.\n *\n * @param func The function to test.\n * @returns True if the function hasn't been overridden.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNativeFunction(func) {\n const val = typeof Function.prototype.toString === \"function\"\n ? Function.prototype.toString()\n : null;\n if (typeof val === \"string\" && val.indexOf(\"[native code]\") >= 0) {\n return (Function.prototype.toString.call(func).indexOf(\"[native code]\") >= 0);\n }\n return false;\n}\n/**\n * Checks and applies the polyfills to the current window, if needed.\n */\nexport function setPolyfillsOnLoad() {\n if (typeof Array.prototype.reduce !== \"function\" ||\n !isNativeFunction(Array.prototype.reduce)) {\n // Some external libraries override the `Array.prototype.reduce` method in a way\n // that causes Webpack to crash (#1507, #1865), so we need to override it again.\n polyfillArrayPrototypeReduce();\n }\n if (typeof Window !== \"function\" || !isNativeFunction(Window)) {\n // Overriding the native `Window` function causes issues in wasm-bindgen, as a\n // code like `window instanceof Window` will no longer work.\n polyfillWindow();\n }\n // Some pages override the native `Reflect` object, which causes various issues:\n // 1- wasm-bindgen's stdlib may crash (#3173).\n // 2- FlashVars may be ignored (#8537).\n tryPolyfillReflect();\n}\n","// This must be in global scope because `document.currentScript`\n// works only while the script is initially being processed.\nlet currentScriptURL = \"\";\ntry {\n if (document.currentScript !== undefined &&\n document.currentScript !== null &&\n \"src\" in document.currentScript &&\n document.currentScript.src !== \"\") {\n let src = document.currentScript.src;\n // CDNs allow omitting the filename. If it's omitted, append a slash to\n // prevent the last component from being dropped.\n if (!src.endsWith(\".js\") && !src.endsWith(\"/\")) {\n src += \"/\";\n }\n currentScriptURL = new URL(\".\", src).href;\n }\n}\ncatch (e) {\n console.warn(\"Unable to get currentScript URL\");\n}\n/**\n * Attempt to discover the public path of the current Ruffle source. This can\n * be used to configure Webpack.\n *\n * A global public path can be specified for all sources using the RufflePlayer\n * config:\n *\n * ```js\n * window.RufflePlayer.config.publicPath = \"/dist/\";\n * ```\n *\n * If no such config is specified, then the parent path of where this script is\n * hosted is assumed, which should be the correct default in most cases.\n *\n * @param config The `window.RufflePlayer.config` object.\n * @returns The public path for the given source.\n */\nexport function publicPath(config) {\n // Default to the directory where this script resides.\n let path = currentScriptURL;\n if (\"publicPath\" in config &&\n config.publicPath !== null &&\n config.publicPath !== undefined) {\n path = config.publicPath;\n }\n // Webpack expects the paths to end with a slash.\n if (path !== \"\" && !path.endsWith(\"/\")) {\n path += \"/\";\n }\n return path;\n}\n","/**\n * Conditional ruffle loader\n */\nimport { bulkMemory, simd, saturatedFloatToInt, signExtensions, referenceTypes, } from \"wasm-feature-detect\";\nimport { setPolyfillsOnLoad } from \"./js-polyfills\";\nimport { publicPath } from \"./public-path\";\n/**\n * Load ruffle from an automatically-detected location.\n *\n * This function returns a new instance of Ruffle and downloads it every time.\n * You should not use it directly; this module will memoize the resource\n * download.\n *\n * @param config The `window.RufflePlayer.config` object.\n * @param progressCallback The callback that will be run with Ruffle's download progress.\n * @returns A ruffle constructor that may be used to create new Ruffle\n * instances.\n */\nasync function fetchRuffle(config, progressCallback) {\n // Apply some pure JavaScript polyfills to prevent conflicts with external\n // libraries, if needed.\n setPolyfillsOnLoad();\n // NOTE: Keep this list in sync with $RUSTFLAGS in the CI build config!\n const extensionsSupported = (await Promise.all([\n bulkMemory(),\n simd(),\n saturatedFloatToInt(),\n signExtensions(),\n referenceTypes(),\n ])).every(Boolean);\n if (!extensionsSupported) {\n console.log(\"Some WebAssembly extensions are NOT available, falling back to the vanilla WebAssembly module\");\n }\n __webpack_public_path__ = publicPath(config);\n // Note: The argument passed to import() has to be a simple string literal,\n // otherwise some bundler will get confused and won't include the module?\n const { default: init, Ruffle } = await (extensionsSupported\n ? import(\"../dist/ruffle_web-wasm_extensions\")\n : import(\"../dist/ruffle_web\"));\n let response;\n const wasmUrl = extensionsSupported\n ? new URL(\"../dist/ruffle_web-wasm_extensions_bg.wasm\", import.meta.url)\n : new URL(\"../dist/ruffle_web_bg.wasm\", import.meta.url);\n const wasmResponse = await fetch(wasmUrl);\n if (progressCallback) {\n const contentLength = wasmResponse.headers.get(\"content-length\") || \"\";\n let bytesLoaded = 0;\n // Use parseInt rather than Number so the empty string is coerced to NaN instead of 0\n const bytesTotal = parseInt(contentLength);\n response = new Response(new ReadableStream({\n async start(controller) {\n var _a;\n const reader = (_a = wasmResponse.body) === null || _a === void 0 ? void 0 : _a.getReader();\n if (!reader) {\n throw \"Response had no body\";\n }\n progressCallback(bytesLoaded, bytesTotal);\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n if (value === null || value === void 0 ? void 0 : value.byteLength) {\n bytesLoaded += value === null || value === void 0 ? void 0 : value.byteLength;\n }\n controller.enqueue(value);\n progressCallback(bytesLoaded, bytesTotal);\n }\n controller.close();\n },\n }), wasmResponse);\n }\n else {\n response = wasmResponse;\n }\n await init(response);\n return Ruffle;\n}\nlet lastLoaded = null;\n/**\n * Obtain an instance of `Ruffle`.\n *\n * This function returns a promise which yields `Ruffle` asynchronously.\n *\n * @param config The `window.RufflePlayer.config` object.\n * @param progressCallback The callback that will be run with Ruffle's download progress.\n * @returns A ruffle constructor that may be used to create new Ruffle\n * instances.\n */\nexport function loadRuffle(config, progressCallback) {\n if (lastLoaded === null) {\n lastLoaded = fetchRuffle(config, progressCallback);\n }\n return lastLoaded;\n}\n","/**\n * The shadow template which is used to fill the actual Ruffle player element\n * on the page.\n */\nexport const ruffleShadowTemplate = document.createElement(\"template\");\nruffleShadowTemplate.innerHTML = `\n \n \n\n
\n
\n
\n \n
\n
\n \n \n \n \n
\n
\n\n
\n
\n ×\n
\n \n
\n
\n
\n
\n
    \n`;\n","/**\n * Number of times to try defining a custom element.\n */\nconst MAX_TRIES = 999;\n/**\n * A mapping between internal element IDs and DOM element IDs.\n */\nconst privateRegistry = {};\n/**\n * Lookup a previously registered custom element.\n *\n * The returned object will have `name`, `class`, and `internal_name`\n * properties listing the external name, implementing class, and internal name\n * respectively.\n *\n * @param elementName The internal element name, previously used to\n * register the element with the private registry.\n * @returns The element data in the registry, or null if there is\n * no such element name registered.\n */\nexport function lookupElement(elementName) {\n const data = privateRegistry[elementName];\n if (data !== undefined) {\n return {\n internalName: elementName,\n name: data.name,\n class: data.class,\n };\n }\n else {\n return null;\n }\n}\n/**\n * Register a custom element.\n *\n * This function is designed to be tolerant of naming conflicts. If\n * registration fails, we modify the name, and try again. As a result, this\n * function returns the real element name to use.\n *\n * Calling this function multiple times will *not* register multiple elements.\n * We store a private registry mapping internal element names to DOM names.\n * Thus, the proper way to use this function is to call it every time you are\n * about to work with custom element names.\n *\n * @param elementName The internal name of the element.\n * @param elementClass The class of the element.\n *\n * You must call this function with the same class every time.\n * @returns The actual element name.\n * @throws Throws an error if two different elements were registered with the\n * same internal name.\n */\nexport function registerElement(elementName, elementClass) {\n const registration = privateRegistry[elementName];\n if (registration !== undefined) {\n if (registration.class !== elementClass) {\n throw new Error(\"Internal naming conflict on \" + elementName);\n }\n else {\n return registration.name;\n }\n }\n let tries = 0;\n if (window.customElements !== undefined) {\n while (tries < MAX_TRIES) {\n let externalName = elementName;\n if (tries > 0) {\n externalName = externalName + \"-\" + tries;\n }\n if (window.customElements.get(externalName) !== undefined) {\n tries += 1;\n continue;\n }\n else {\n window.customElements.define(externalName, elementClass);\n }\n privateRegistry[elementName] = {\n class: elementClass,\n name: externalName,\n internalName: elementName,\n };\n return externalName;\n }\n }\n throw new Error(\"Failed to assign custom element \" + elementName);\n}\n","export const DEFAULT_CONFIG = {\n allowScriptAccess: false,\n parameters: {},\n autoplay: \"auto\" /* AutoPlay.Auto */,\n backgroundColor: null,\n letterbox: \"fullscreen\" /* Letterbox.Fullscreen */,\n unmuteOverlay: \"visible\" /* UnmuteOverlay.Visible */,\n upgradeToHttps: true,\n compatibilityRules: true,\n warnOnUnsupportedContent: true,\n logLevel: \"error\" /* LogLevel.Error */,\n showSwfDownload: false,\n contextMenu: \"on\" /* ContextMenu.On */,\n // Backwards-compatibility option\n preloader: true,\n splashScreen: true,\n maxExecutionDuration: 15,\n base: null,\n menu: true,\n salign: \"\",\n quality: \"high\",\n scale: \"showAll\",\n forceScale: false,\n frameRate: null,\n wmode: \"opaque\" /* WindowMode.Opaque */,\n publicPath: null,\n polyfills: true,\n playerVersion: null,\n preferredRenderer: null,\n openUrlMode: \"allow\" /* OpenURLMode.Allow */,\n allowNetworking: \"all\" /* NetworkingAccessMode.All */,\n};\n","export const FLASH_MIMETYPE = \"application/x-shockwave-flash\";\nexport const FUTURESPLASH_MIMETYPE = \"application/futuresplash\";\nexport const FLASH7_AND_8_MIMETYPE = \"application/x-shockwave-flash2-preview\";\nexport const FLASH_MOVIE_MIMETYPE = \"application/vnd.adobe.flash.movie\";\nexport const FLASH_ACTIVEX_CLASSID = \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\";\n","import { FLASH_MIMETYPE, FUTURESPLASH_MIMETYPE, FLASH7_AND_8_MIMETYPE, FLASH_MOVIE_MIMETYPE, } from \"./flash-identifiers\";\n/**\n * Returns whether the given filename ends in a known flash extension.\n *\n * @param filename The filename to test.\n * @returns True if the filename is a flash movie (swf or spl).\n */\nexport function isSwfFilename(filename) {\n if (filename) {\n let pathname = \"\";\n try {\n // A base URL is required if `filename` is a relative URL, but we don't need to detect the real URL origin.\n pathname = new URL(filename, \"https://example.com\").pathname;\n }\n catch (err) {\n // Some invalid filenames, like `///`, could raise a TypeError. Let's fail silently in this situation.\n }\n if (pathname && pathname.length >= 4) {\n const extension = pathname.slice(-4).toLowerCase();\n if (extension === \".swf\" || extension === \".spl\") {\n return true;\n }\n }\n }\n return false;\n}\n/**\n * Returns whether the given MIME type is a known flash type.\n *\n * @param mimeType The MIME type to test.\n * @returns True if the MIME type is a flash MIME type.\n */\nexport function isSwfMimeType(mimeType) {\n switch (mimeType.toLowerCase()) {\n case FLASH_MIMETYPE.toLowerCase():\n case FUTURESPLASH_MIMETYPE.toLowerCase():\n case FLASH7_AND_8_MIMETYPE.toLowerCase():\n case FLASH_MOVIE_MIMETYPE.toLowerCase():\n return true;\n default:\n return false;\n }\n}\n/**\n * Create a filename to save a downloaded SWF into.\n *\n * @param swfUrl The URL of the SWF file.\n * @returns The filename the SWF file can be saved at.\n */\nexport function swfFileName(swfUrl) {\n const pathName = swfUrl.pathname;\n const name = pathName.substring(pathName.lastIndexOf(\"/\") + 1);\n return name;\n}\n","/**\n * Stores build information. The string literals are replaces at compile time by `set_version.js`.\n */\nexport const buildInfo = {\n versionNumber: \"0.1.0\",\n versionName: \"nightly 2023-05-24\",\n versionChannel: \"nightly\",\n buildDate: \"2023-05-24T00:22:28.395Z\",\n commitHash: \"358beabf5a49807bafd0122a73ff62514ceb4b9a\",\n};\n","/**\n * The `FluentType` class is the base of Fluent's type system.\n *\n * Fluent types wrap JavaScript values and store additional configuration for\n * them, which can then be used in the `toString` method together with a proper\n * `Intl` formatter.\n */\nexport class FluentType {\n /**\n * Create a `FluentType` instance.\n *\n * @param value The JavaScript value to wrap.\n */\n constructor(value) {\n this.value = value;\n }\n /**\n * Unwrap the raw value stored by this `FluentType`.\n */\n valueOf() {\n return this.value;\n }\n}\n/**\n * A `FluentType` representing no correct value.\n */\nexport class FluentNone extends FluentType {\n /**\n * Create an instance of `FluentNone` with an optional fallback value.\n * @param value The fallback value of this `FluentNone`.\n */\n constructor(value = \"???\") {\n super(value);\n }\n /**\n * Format this `FluentNone` to the fallback string.\n */\n toString(scope) {\n return `{${this.value}}`;\n }\n}\n/**\n * A `FluentType` representing a number.\n *\n * A `FluentNumber` instance stores the number value of the number it\n * represents. It may also store an option bag of options which will be passed\n * to `Intl.NumerFormat` when the `FluentNumber` is formatted to a string.\n */\nexport class FluentNumber extends FluentType {\n /**\n * Create an instance of `FluentNumber` with options to the\n * `Intl.NumberFormat` constructor.\n *\n * @param value The number value of this `FluentNumber`.\n * @param opts Options which will be passed to `Intl.NumberFormat`.\n */\n constructor(value, opts = {}) {\n super(value);\n this.opts = opts;\n }\n /**\n * Format this `FluentNumber` to a string.\n */\n toString(scope) {\n try {\n const nf = scope.memoizeIntlObject(Intl.NumberFormat, this.opts);\n return nf.format(this.value);\n }\n catch (err) {\n scope.reportError(err);\n return this.value.toString(10);\n }\n }\n}\n/**\n * A `FluentType` representing a date and time.\n *\n * A `FluentDateTime` instance stores the number value of the date it\n * represents, as a numerical timestamp in milliseconds. It may also store an\n * option bag of options which will be passed to `Intl.DateTimeFormat` when the\n * `FluentDateTime` is formatted to a string.\n */\nexport class FluentDateTime extends FluentType {\n /**\n * Create an instance of `FluentDateTime` with options to the\n * `Intl.DateTimeFormat` constructor.\n *\n * @param value The number value of this `FluentDateTime`, in milliseconds.\n * @param opts Options which will be passed to `Intl.DateTimeFormat`.\n */\n constructor(value, opts = {}) {\n super(value);\n this.opts = opts;\n }\n /**\n * Format this `FluentDateTime` to a string.\n */\n toString(scope) {\n try {\n const dtf = scope.memoizeIntlObject(Intl.DateTimeFormat, this.opts);\n return dtf.format(this.value);\n }\n catch (err) {\n scope.reportError(err);\n return new Date(this.value).toISOString();\n }\n }\n}\n","/* global Intl */\n/**\n * @overview\n *\n * The role of the Fluent resolver is to format a `Pattern` to an instance of\n * `FluentValue`. For performance reasons, primitive strings are considered\n * such instances, too.\n *\n * Translations can contain references to other messages or variables,\n * conditional logic in form of select expressions, traits which describe their\n * grammatical features, and can use Fluent builtins which make use of the\n * `Intl` formatters to format numbers and dates into the bundle's languages.\n * See the documentation of the Fluent syntax for more information.\n *\n * In case of errors the resolver will try to salvage as much of the\n * translation as possible. In rare situations where the resolver didn't know\n * how to recover from an error it will return an instance of `FluentNone`.\n *\n * All expressions resolve to an instance of `FluentValue`. The caller should\n * use the `toString` method to convert the instance to a native value.\n *\n * Functions in this file pass around an instance of the `Scope` class, which\n * stores the data required for successful resolution and error recovery.\n */\nimport { FluentType, FluentNone, FluentNumber, FluentDateTime, } from \"./types.js\";\n/**\n * The maximum number of placeables which can be expanded in a single call to\n * `formatPattern`. The limit protects against the Billion Laughs and Quadratic\n * Blowup attacks. See https://msdn.microsoft.com/en-us/magazine/ee335713.aspx.\n */\nconst MAX_PLACEABLES = 100;\n/** Unicode bidi isolation characters. */\nconst FSI = \"\\u2068\";\nconst PDI = \"\\u2069\";\n/** Helper: match a variant key to the given selector. */\nfunction match(scope, selector, key) {\n if (key === selector) {\n // Both are strings.\n return true;\n }\n // XXX Consider comparing options too, e.g. minimumFractionDigits.\n if (key instanceof FluentNumber &&\n selector instanceof FluentNumber &&\n key.value === selector.value) {\n return true;\n }\n if (selector instanceof FluentNumber && typeof key === \"string\") {\n let category = scope\n .memoizeIntlObject(Intl.PluralRules, selector.opts)\n .select(selector.value);\n if (key === category) {\n return true;\n }\n }\n return false;\n}\n/** Helper: resolve the default variant from a list of variants. */\nfunction getDefault(scope, variants, star) {\n if (variants[star]) {\n return resolvePattern(scope, variants[star].value);\n }\n scope.reportError(new RangeError(\"No default\"));\n return new FluentNone();\n}\n/** Helper: resolve arguments to a call expression. */\nfunction getArguments(scope, args) {\n const positional = [];\n const named = Object.create(null);\n for (const arg of args) {\n if (arg.type === \"narg\") {\n named[arg.name] = resolveExpression(scope, arg.value);\n }\n else {\n positional.push(resolveExpression(scope, arg));\n }\n }\n return { positional, named };\n}\n/** Resolve an expression to a Fluent type. */\nfunction resolveExpression(scope, expr) {\n switch (expr.type) {\n case \"str\":\n return expr.value;\n case \"num\":\n return new FluentNumber(expr.value, {\n minimumFractionDigits: expr.precision,\n });\n case \"var\":\n return resolveVariableReference(scope, expr);\n case \"mesg\":\n return resolveMessageReference(scope, expr);\n case \"term\":\n return resolveTermReference(scope, expr);\n case \"func\":\n return resolveFunctionReference(scope, expr);\n case \"select\":\n return resolveSelectExpression(scope, expr);\n default:\n return new FluentNone();\n }\n}\n/** Resolve a reference to a variable. */\nfunction resolveVariableReference(scope, { name }) {\n let arg;\n if (scope.params) {\n // We're inside a TermReference. It's OK to reference undefined parameters.\n if (Object.prototype.hasOwnProperty.call(scope.params, name)) {\n arg = scope.params[name];\n }\n else {\n return new FluentNone(`$${name}`);\n }\n }\n else if (scope.args &&\n Object.prototype.hasOwnProperty.call(scope.args, name)) {\n // We're in the top-level Pattern or inside a MessageReference. Missing\n // variables references produce ReferenceErrors.\n arg = scope.args[name];\n }\n else {\n scope.reportError(new ReferenceError(`Unknown variable: $${name}`));\n return new FluentNone(`$${name}`);\n }\n // Return early if the argument already is an instance of FluentType.\n if (arg instanceof FluentType) {\n return arg;\n }\n // Convert the argument to a Fluent type.\n switch (typeof arg) {\n case \"string\":\n return arg;\n case \"number\":\n return new FluentNumber(arg);\n case \"object\":\n if (arg instanceof Date) {\n return new FluentDateTime(arg.getTime());\n }\n // eslint-disable-next-line no-fallthrough\n default:\n scope.reportError(new TypeError(`Variable type not supported: $${name}, ${typeof arg}`));\n return new FluentNone(`$${name}`);\n }\n}\n/** Resolve a reference to another message. */\nfunction resolveMessageReference(scope, { name, attr }) {\n const message = scope.bundle._messages.get(name);\n if (!message) {\n scope.reportError(new ReferenceError(`Unknown message: ${name}`));\n return new FluentNone(name);\n }\n if (attr) {\n const attribute = message.attributes[attr];\n if (attribute) {\n return resolvePattern(scope, attribute);\n }\n scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`));\n return new FluentNone(`${name}.${attr}`);\n }\n if (message.value) {\n return resolvePattern(scope, message.value);\n }\n scope.reportError(new ReferenceError(`No value: ${name}`));\n return new FluentNone(name);\n}\n/** Resolve a call to a Term with key-value arguments. */\nfunction resolveTermReference(scope, { name, attr, args }) {\n const id = `-${name}`;\n const term = scope.bundle._terms.get(id);\n if (!term) {\n scope.reportError(new ReferenceError(`Unknown term: ${id}`));\n return new FluentNone(id);\n }\n if (attr) {\n const attribute = term.attributes[attr];\n if (attribute) {\n // Every TermReference has its own variables.\n scope.params = getArguments(scope, args).named;\n const resolved = resolvePattern(scope, attribute);\n scope.params = null;\n return resolved;\n }\n scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`));\n return new FluentNone(`${id}.${attr}`);\n }\n scope.params = getArguments(scope, args).named;\n const resolved = resolvePattern(scope, term.value);\n scope.params = null;\n return resolved;\n}\n/** Resolve a call to a Function with positional and key-value arguments. */\nfunction resolveFunctionReference(scope, { name, args }) {\n // Some functions are built-in. Others may be provided by the runtime via\n // the `FluentBundle` constructor.\n let func = scope.bundle._functions[name];\n if (!func) {\n scope.reportError(new ReferenceError(`Unknown function: ${name}()`));\n return new FluentNone(`${name}()`);\n }\n if (typeof func !== \"function\") {\n scope.reportError(new TypeError(`Function ${name}() is not callable`));\n return new FluentNone(`${name}()`);\n }\n try {\n let resolved = getArguments(scope, args);\n return func(resolved.positional, resolved.named);\n }\n catch (err) {\n scope.reportError(err);\n return new FluentNone(`${name}()`);\n }\n}\n/** Resolve a select expression to the member object. */\nfunction resolveSelectExpression(scope, { selector, variants, star }) {\n let sel = resolveExpression(scope, selector);\n if (sel instanceof FluentNone) {\n return getDefault(scope, variants, star);\n }\n // Match the selector against keys of each variant, in order.\n for (const variant of variants) {\n const key = resolveExpression(scope, variant.key);\n if (match(scope, sel, key)) {\n return resolvePattern(scope, variant.value);\n }\n }\n return getDefault(scope, variants, star);\n}\n/** Resolve a pattern (a complex string with placeables). */\nexport function resolveComplexPattern(scope, ptn) {\n if (scope.dirty.has(ptn)) {\n scope.reportError(new RangeError(\"Cyclic reference\"));\n return new FluentNone();\n }\n // Tag the pattern as dirty for the purpose of the current resolution.\n scope.dirty.add(ptn);\n const result = [];\n // Wrap interpolations with Directional Isolate Formatting characters\n // only when the pattern has more than one element.\n const useIsolating = scope.bundle._useIsolating && ptn.length > 1;\n for (const elem of ptn) {\n if (typeof elem === \"string\") {\n result.push(scope.bundle._transform(elem));\n continue;\n }\n scope.placeables++;\n if (scope.placeables > MAX_PLACEABLES) {\n scope.dirty.delete(ptn);\n // This is a fatal error which causes the resolver to instantly bail out\n // on this pattern. The length check protects against excessive memory\n // usage, and throwing protects against eating up the CPU when long\n // placeables are deeply nested.\n throw new RangeError(`Too many placeables expanded: ${scope.placeables}, ` +\n `max allowed is ${MAX_PLACEABLES}`);\n }\n if (useIsolating) {\n result.push(FSI);\n }\n result.push(resolveExpression(scope, elem).toString(scope));\n if (useIsolating) {\n result.push(PDI);\n }\n }\n scope.dirty.delete(ptn);\n return result.join(\"\");\n}\n/**\n * Resolve a simple or a complex Pattern to a FluentString\n * (which is really the string primitive).\n */\nfunction resolvePattern(scope, value) {\n // Resolve a simple pattern.\n if (typeof value === \"string\") {\n return scope.bundle._transform(value);\n }\n return resolveComplexPattern(scope, value);\n}\n","export class Scope {\n constructor(bundle, errors, args) {\n /**\n * The Set of patterns already encountered during this resolution.\n * Used to detect and prevent cyclic resolutions.\n * @ignore\n */\n this.dirty = new WeakSet();\n /** A dict of parameters passed to a TermReference. */\n this.params = null;\n /**\n * The running count of placeables resolved so far.\n * Used to detect the Billion Laughs and Quadratic Blowup attacks.\n * @ignore\n */\n this.placeables = 0;\n this.bundle = bundle;\n this.errors = errors;\n this.args = args;\n }\n reportError(error) {\n if (!this.errors || !(error instanceof Error)) {\n throw error;\n }\n this.errors.push(error);\n }\n memoizeIntlObject(ctor, opts) {\n let cache = this.bundle._intls.get(ctor);\n if (!cache) {\n cache = {};\n this.bundle._intls.set(ctor, cache);\n }\n let id = JSON.stringify(opts);\n if (!cache[id]) {\n cache[id] = new ctor(this.bundle.locales, opts);\n }\n return cache[id];\n }\n}\n","/**\n * @overview\n *\n * The FTL resolver ships with a number of functions built-in.\n *\n * Each function take two arguments:\n * - args - an array of positional args\n * - opts - an object of key-value args\n *\n * Arguments to functions are guaranteed to already be instances of\n * `FluentValue`. Functions must return `FluentValues` as well.\n */\nimport { FluentNone, FluentNumber, FluentDateTime, } from \"./types.js\";\nfunction values(opts, allowed) {\n const unwrapped = Object.create(null);\n for (const [name, opt] of Object.entries(opts)) {\n if (allowed.includes(name)) {\n unwrapped[name] = opt.valueOf();\n }\n }\n return unwrapped;\n}\nconst NUMBER_ALLOWED = [\n \"unitDisplay\",\n \"currencyDisplay\",\n \"useGrouping\",\n \"minimumIntegerDigits\",\n \"minimumFractionDigits\",\n \"maximumFractionDigits\",\n \"minimumSignificantDigits\",\n \"maximumSignificantDigits\",\n];\n/**\n * The implementation of the `NUMBER()` builtin available to translations.\n *\n * Translations may call the `NUMBER()` builtin in order to specify formatting\n * options of a number. For example:\n *\n * pi = The value of π is {NUMBER($pi, maximumFractionDigits: 2)}.\n *\n * The implementation expects an array of `FluentValues` representing the\n * positional arguments, and an object of named `FluentValues` representing the\n * named parameters.\n *\n * The following options are recognized:\n *\n * unitDisplay\n * currencyDisplay\n * useGrouping\n * minimumIntegerDigits\n * minimumFractionDigits\n * maximumFractionDigits\n * minimumSignificantDigits\n * maximumSignificantDigits\n *\n * Other options are ignored.\n *\n * @param args The positional arguments passed to this `NUMBER()`.\n * @param opts The named argments passed to this `NUMBER()`.\n */\nexport function NUMBER(args, opts) {\n let arg = args[0];\n if (arg instanceof FluentNone) {\n return new FluentNone(`NUMBER(${arg.valueOf()})`);\n }\n if (arg instanceof FluentNumber) {\n return new FluentNumber(arg.valueOf(), {\n ...arg.opts,\n ...values(opts, NUMBER_ALLOWED),\n });\n }\n if (arg instanceof FluentDateTime) {\n return new FluentNumber(arg.valueOf(), {\n ...values(opts, NUMBER_ALLOWED),\n });\n }\n throw new TypeError(\"Invalid argument to NUMBER\");\n}\nconst DATETIME_ALLOWED = [\n \"dateStyle\",\n \"timeStyle\",\n \"fractionalSecondDigits\",\n \"dayPeriod\",\n \"hour12\",\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n];\n/**\n * The implementation of the `DATETIME()` builtin available to translations.\n *\n * Translations may call the `DATETIME()` builtin in order to specify\n * formatting options of a number. For example:\n *\n * now = It's {DATETIME($today, month: \"long\")}.\n *\n * The implementation expects an array of `FluentValues` representing the\n * positional arguments, and an object of named `FluentValues` representing the\n * named parameters.\n *\n * The following options are recognized:\n *\n * dateStyle\n * timeStyle\n * fractionalSecondDigits\n * dayPeriod\n * hour12\n * weekday\n * era\n * year\n * month\n * day\n * hour\n * minute\n * second\n * timeZoneName\n *\n * Other options are ignored.\n *\n * @param args The positional arguments passed to this `DATETIME()`.\n * @param opts The named argments passed to this `DATETIME()`.\n */\nexport function DATETIME(args, opts) {\n let arg = args[0];\n if (arg instanceof FluentNone) {\n return new FluentNone(`DATETIME(${arg.valueOf()})`);\n }\n if (arg instanceof FluentDateTime) {\n return new FluentDateTime(arg.valueOf(), {\n ...arg.opts,\n ...values(opts, DATETIME_ALLOWED),\n });\n }\n if (arg instanceof FluentNumber) {\n return new FluentDateTime(arg.valueOf(), {\n ...values(opts, DATETIME_ALLOWED),\n });\n }\n throw new TypeError(\"Invalid argument to DATETIME\");\n}\n","const cache = new Map();\nexport function getMemoizerForLocale(locales) {\n const stringLocale = Array.isArray(locales) ? locales.join(\" \") : locales;\n let memoizer = cache.get(stringLocale);\n if (memoizer === undefined) {\n memoizer = new Map();\n cache.set(stringLocale, memoizer);\n }\n return memoizer;\n}\n","import { resolveComplexPattern } from \"./resolver.js\";\nimport { Scope } from \"./scope.js\";\nimport { FluentNone } from \"./types.js\";\nimport { NUMBER, DATETIME } from \"./builtins.js\";\nimport { getMemoizerForLocale } from \"./memoizer.js\";\n/**\n * Message bundles are single-language stores of translation resources. They are\n * responsible for formatting message values and attributes to strings.\n */\nexport class FluentBundle {\n /**\n * Create an instance of `FluentBundle`.\n *\n * @example\n * ```js\n * let bundle = new FluentBundle([\"en-US\", \"en\"]);\n *\n * let bundle = new FluentBundle(locales, {useIsolating: false});\n *\n * let bundle = new FluentBundle(locales, {\n * useIsolating: true,\n * functions: {\n * NODE_ENV: () => process.env.NODE_ENV\n * }\n * });\n * ```\n *\n * @param locales - Used to instantiate `Intl` formatters used by translations.\n * @param options - Optional configuration for the bundle.\n */\n constructor(locales, { functions, useIsolating = true, transform = (v) => v, } = {}) {\n /** @ignore */\n this._terms = new Map();\n /** @ignore */\n this._messages = new Map();\n this.locales = Array.isArray(locales) ? locales : [locales];\n this._functions = {\n NUMBER,\n DATETIME,\n ...functions,\n };\n this._useIsolating = useIsolating;\n this._transform = transform;\n this._intls = getMemoizerForLocale(locales);\n }\n /**\n * Check if a message is present in the bundle.\n *\n * @param id - The identifier of the message to check.\n */\n hasMessage(id) {\n return this._messages.has(id);\n }\n /**\n * Return a raw unformatted message object from the bundle.\n *\n * Raw messages are `{value, attributes}` shapes containing translation units\n * called `Patterns`. `Patterns` are implementation-specific; they should be\n * treated as black boxes and formatted with `FluentBundle.formatPattern`.\n *\n * @param id - The identifier of the message to check.\n */\n getMessage(id) {\n return this._messages.get(id);\n }\n /**\n * Add a translation resource to the bundle.\n *\n * @example\n * ```js\n * let res = new FluentResource(\"foo = Foo\");\n * bundle.addResource(res);\n * bundle.getMessage(\"foo\");\n * // → {value: .., attributes: {..}}\n * ```\n *\n * @param res\n * @param options\n */\n addResource(res, { allowOverrides = false, } = {}) {\n const errors = [];\n for (let i = 0; i < res.body.length; i++) {\n let entry = res.body[i];\n if (entry.id.startsWith(\"-\")) {\n // Identifiers starting with a dash (-) define terms. Terms are private\n // and cannot be retrieved from FluentBundle.\n if (allowOverrides === false && this._terms.has(entry.id)) {\n errors.push(new Error(`Attempt to override an existing term: \"${entry.id}\"`));\n continue;\n }\n this._terms.set(entry.id, entry);\n }\n else {\n if (allowOverrides === false && this._messages.has(entry.id)) {\n errors.push(new Error(`Attempt to override an existing message: \"${entry.id}\"`));\n continue;\n }\n this._messages.set(entry.id, entry);\n }\n }\n return errors;\n }\n /**\n * Format a `Pattern` to a string.\n *\n * Format a raw `Pattern` into a string. `args` will be used to resolve\n * references to variables passed as arguments to the translation.\n *\n * In case of errors `formatPattern` will try to salvage as much of the\n * translation as possible and will still return a string. For performance\n * reasons, the encountered errors are not returned but instead are appended\n * to the `errors` array passed as the third argument.\n *\n * If `errors` is omitted, the first encountered error will be thrown.\n *\n * @example\n * ```js\n * let errors = [];\n * bundle.addResource(\n * new FluentResource(\"hello = Hello, {$name}!\"));\n *\n * let hello = bundle.getMessage(\"hello\");\n * if (hello.value) {\n * bundle.formatPattern(hello.value, {name: \"Jane\"}, errors);\n * // Returns \"Hello, Jane!\" and `errors` is empty.\n *\n * bundle.formatPattern(hello.value, undefined, errors);\n * // Returns \"Hello, {$name}!\" and `errors` is now:\n * // []\n * }\n * ```\n */\n formatPattern(pattern, args = null, errors = null) {\n // Resolve a simple pattern without creating a scope. No error handling is\n // required; by definition simple patterns don't have placeables.\n if (typeof pattern === \"string\") {\n return this._transform(pattern);\n }\n // Resolve a complex pattern.\n let scope = new Scope(this, errors, args);\n try {\n let value = resolveComplexPattern(scope, pattern);\n return value.toString(scope);\n }\n catch (err) {\n if (scope.errors && err instanceof Error) {\n scope.errors.push(err);\n return new FluentNone().toString(scope);\n }\n throw err;\n }\n }\n}\n","// This regex is used to iterate through the beginnings of messages and terms.\n// With the /m flag, the ^ matches at the beginning of every line.\nconst RE_MESSAGE_START = /^(-?[a-zA-Z][\\w-]*) *= */gm;\n// Both Attributes and Variants are parsed in while loops. These regexes are\n// used to break out of them.\nconst RE_ATTRIBUTE_START = /\\.([a-zA-Z][\\w-]*) *= */y;\nconst RE_VARIANT_START = /\\*?\\[/y;\nconst RE_NUMBER_LITERAL = /(-?[0-9]+(?:\\.([0-9]+))?)/y;\nconst RE_IDENTIFIER = /([a-zA-Z][\\w-]*)/y;\nconst RE_REFERENCE = /([$-])?([a-zA-Z][\\w-]*)(?:\\.([a-zA-Z][\\w-]*))?/y;\nconst RE_FUNCTION_NAME = /^[A-Z][A-Z0-9_-]*$/;\n// A \"run\" is a sequence of text or string literal characters which don't\n// require any special handling. For TextElements such special characters are: {\n// (starts a placeable), and line breaks which require additional logic to check\n// if the next line is indented. For StringLiterals they are: \\ (starts an\n// escape sequence), \" (ends the literal), and line breaks which are not allowed\n// in StringLiterals. Note that string runs may be empty; text runs may not.\nconst RE_TEXT_RUN = /([^{}\\n\\r]+)/y;\nconst RE_STRING_RUN = /([^\\\\\"\\n\\r]*)/y;\n// Escape sequences.\nconst RE_STRING_ESCAPE = /\\\\([\\\\\"])/y;\nconst RE_UNICODE_ESCAPE = /\\\\u([a-fA-F0-9]{4})|\\\\U([a-fA-F0-9]{6})/y;\n// Used for trimming TextElements and indents.\nconst RE_LEADING_NEWLINES = /^\\n+/;\nconst RE_TRAILING_SPACES = / +$/;\n// Used in makeIndent to strip spaces from blank lines and normalize CRLF to LF.\nconst RE_BLANK_LINES = / *\\r?\\n/g;\n// Used in makeIndent to measure the indentation.\nconst RE_INDENT = /( *)$/;\n// Common tokens.\nconst TOKEN_BRACE_OPEN = /{\\s*/y;\nconst TOKEN_BRACE_CLOSE = /\\s*}/y;\nconst TOKEN_BRACKET_OPEN = /\\[\\s*/y;\nconst TOKEN_BRACKET_CLOSE = /\\s*] */y;\nconst TOKEN_PAREN_OPEN = /\\s*\\(\\s*/y;\nconst TOKEN_ARROW = /\\s*->\\s*/y;\nconst TOKEN_COLON = /\\s*:\\s*/y;\n// Note the optional comma. As a deviation from the Fluent EBNF, the parser\n// doesn't enforce commas between call arguments.\nconst TOKEN_COMMA = /\\s*,?\\s*/y;\nconst TOKEN_BLANK = /\\s+/y;\n/**\n * Fluent Resource is a structure storing parsed localization entries.\n */\nexport class FluentResource {\n constructor(source) {\n this.body = [];\n RE_MESSAGE_START.lastIndex = 0;\n let cursor = 0;\n // Iterate over the beginnings of messages and terms to efficiently skip\n // comments and recover from errors.\n while (true) {\n let next = RE_MESSAGE_START.exec(source);\n if (next === null) {\n break;\n }\n cursor = RE_MESSAGE_START.lastIndex;\n try {\n this.body.push(parseMessage(next[1]));\n }\n catch (err) {\n if (err instanceof SyntaxError) {\n // Don't report any Fluent syntax errors. Skip directly to the\n // beginning of the next message or term.\n continue;\n }\n throw err;\n }\n }\n // The parser implementation is inlined below for performance reasons,\n // as well as for convenience of accessing `source` and `cursor`.\n // The parser focuses on minimizing the number of false negatives at the\n // expense of increasing the risk of false positives. In other words, it\n // aims at parsing valid Fluent messages with a success rate of 100%, but it\n // may also parse a few invalid messages which the reference parser would\n // reject. The parser doesn't perform any validation and may produce entries\n // which wouldn't make sense in the real world. For best results users are\n // advised to validate translations with the fluent-syntax parser\n // pre-runtime.\n // The parser makes an extensive use of sticky regexes which can be anchored\n // to any offset of the source string without slicing it. Errors are thrown\n // to bail out of parsing of ill-formed messages.\n function test(re) {\n re.lastIndex = cursor;\n return re.test(source);\n }\n // Advance the cursor by the char if it matches. May be used as a predicate\n // (was the match found?) or, if errorClass is passed, as an assertion.\n function consumeChar(char, errorClass) {\n if (source[cursor] === char) {\n cursor++;\n return true;\n }\n if (errorClass) {\n throw new errorClass(`Expected ${char}`);\n }\n return false;\n }\n // Advance the cursor by the token if it matches. May be used as a predicate\n // (was the match found?) or, if errorClass is passed, as an assertion.\n function consumeToken(re, errorClass) {\n if (test(re)) {\n cursor = re.lastIndex;\n return true;\n }\n if (errorClass) {\n throw new errorClass(`Expected ${re.toString()}`);\n }\n return false;\n }\n // Execute a regex, advance the cursor, and return all capture groups.\n function match(re) {\n re.lastIndex = cursor;\n let result = re.exec(source);\n if (result === null) {\n throw new SyntaxError(`Expected ${re.toString()}`);\n }\n cursor = re.lastIndex;\n return result;\n }\n // Execute a regex, advance the cursor, and return the capture group.\n function match1(re) {\n return match(re)[1];\n }\n function parseMessage(id) {\n let value = parsePattern();\n let attributes = parseAttributes();\n if (value === null && Object.keys(attributes).length === 0) {\n throw new SyntaxError(\"Expected message value or attributes\");\n }\n return { id, value, attributes };\n }\n function parseAttributes() {\n let attrs = Object.create(null);\n while (test(RE_ATTRIBUTE_START)) {\n let name = match1(RE_ATTRIBUTE_START);\n let value = parsePattern();\n if (value === null) {\n throw new SyntaxError(\"Expected attribute value\");\n }\n attrs[name] = value;\n }\n return attrs;\n }\n function parsePattern() {\n let first;\n // First try to parse any simple text on the same line as the id.\n if (test(RE_TEXT_RUN)) {\n first = match1(RE_TEXT_RUN);\n }\n // If there's a placeable on the first line, parse a complex pattern.\n if (source[cursor] === \"{\" || source[cursor] === \"}\") {\n // Re-use the text parsed above, if possible.\n return parsePatternElements(first ? [first] : [], Infinity);\n }\n // RE_TEXT_VALUE stops at newlines. Only continue parsing the pattern if\n // what comes after the newline is indented.\n let indent = parseIndent();\n if (indent) {\n if (first) {\n // If there's text on the first line, the blank block is part of the\n // translation content in its entirety.\n return parsePatternElements([first, indent], indent.length);\n }\n // Otherwise, we're dealing with a block pattern, i.e. a pattern which\n // starts on a new line. Discrad the leading newlines but keep the\n // inline indent; it will be used by the dedentation logic.\n indent.value = trim(indent.value, RE_LEADING_NEWLINES);\n return parsePatternElements([indent], indent.length);\n }\n if (first) {\n // It was just a simple inline text after all.\n return trim(first, RE_TRAILING_SPACES);\n }\n return null;\n }\n // Parse a complex pattern as an array of elements.\n function parsePatternElements(elements = [], commonIndent) {\n while (true) {\n if (test(RE_TEXT_RUN)) {\n elements.push(match1(RE_TEXT_RUN));\n continue;\n }\n if (source[cursor] === \"{\") {\n elements.push(parsePlaceable());\n continue;\n }\n if (source[cursor] === \"}\") {\n throw new SyntaxError(\"Unbalanced closing brace\");\n }\n let indent = parseIndent();\n if (indent) {\n elements.push(indent);\n commonIndent = Math.min(commonIndent, indent.length);\n continue;\n }\n break;\n }\n let lastIndex = elements.length - 1;\n let lastElement = elements[lastIndex];\n // Trim the trailing spaces in the last element if it's a TextElement.\n if (typeof lastElement === \"string\") {\n elements[lastIndex] = trim(lastElement, RE_TRAILING_SPACES);\n }\n let baked = [];\n for (let element of elements) {\n if (element instanceof Indent) {\n // Dedent indented lines by the maximum common indent.\n element = element.value.slice(0, element.value.length - commonIndent);\n }\n if (element) {\n baked.push(element);\n }\n }\n return baked;\n }\n function parsePlaceable() {\n consumeToken(TOKEN_BRACE_OPEN, SyntaxError);\n let selector = parseInlineExpression();\n if (consumeToken(TOKEN_BRACE_CLOSE)) {\n return selector;\n }\n if (consumeToken(TOKEN_ARROW)) {\n let variants = parseVariants();\n consumeToken(TOKEN_BRACE_CLOSE, SyntaxError);\n return {\n type: \"select\",\n selector,\n ...variants,\n };\n }\n throw new SyntaxError(\"Unclosed placeable\");\n }\n function parseInlineExpression() {\n if (source[cursor] === \"{\") {\n // It's a nested placeable.\n return parsePlaceable();\n }\n if (test(RE_REFERENCE)) {\n let [, sigil, name, attr = null] = match(RE_REFERENCE);\n if (sigil === \"$\") {\n return { type: \"var\", name };\n }\n if (consumeToken(TOKEN_PAREN_OPEN)) {\n let args = parseArguments();\n if (sigil === \"-\") {\n // A parameterized term: -term(...).\n return { type: \"term\", name, attr, args };\n }\n if (RE_FUNCTION_NAME.test(name)) {\n return { type: \"func\", name, args };\n }\n throw new SyntaxError(\"Function names must be all upper-case\");\n }\n if (sigil === \"-\") {\n // A non-parameterized term: -term.\n return {\n type: \"term\",\n name,\n attr,\n args: [],\n };\n }\n return { type: \"mesg\", name, attr };\n }\n return parseLiteral();\n }\n function parseArguments() {\n let args = [];\n while (true) {\n switch (source[cursor]) {\n case \")\": // End of the argument list.\n cursor++;\n return args;\n case undefined: // EOF\n throw new SyntaxError(\"Unclosed argument list\");\n }\n args.push(parseArgument());\n // Commas between arguments are treated as whitespace.\n consumeToken(TOKEN_COMMA);\n }\n }\n function parseArgument() {\n let expr = parseInlineExpression();\n if (expr.type !== \"mesg\") {\n return expr;\n }\n if (consumeToken(TOKEN_COLON)) {\n // The reference is the beginning of a named argument.\n return {\n type: \"narg\",\n name: expr.name,\n value: parseLiteral(),\n };\n }\n // It's a regular message reference.\n return expr;\n }\n function parseVariants() {\n let variants = [];\n let count = 0;\n let star;\n while (test(RE_VARIANT_START)) {\n if (consumeChar(\"*\")) {\n star = count;\n }\n let key = parseVariantKey();\n let value = parsePattern();\n if (value === null) {\n throw new SyntaxError(\"Expected variant value\");\n }\n variants[count++] = { key, value };\n }\n if (count === 0) {\n return null;\n }\n if (star === undefined) {\n throw new SyntaxError(\"Expected default variant\");\n }\n return { variants, star };\n }\n function parseVariantKey() {\n consumeToken(TOKEN_BRACKET_OPEN, SyntaxError);\n let key;\n if (test(RE_NUMBER_LITERAL)) {\n key = parseNumberLiteral();\n }\n else {\n key = {\n type: \"str\",\n value: match1(RE_IDENTIFIER),\n };\n }\n consumeToken(TOKEN_BRACKET_CLOSE, SyntaxError);\n return key;\n }\n function parseLiteral() {\n if (test(RE_NUMBER_LITERAL)) {\n return parseNumberLiteral();\n }\n if (source[cursor] === '\"') {\n return parseStringLiteral();\n }\n throw new SyntaxError(\"Invalid expression\");\n }\n function parseNumberLiteral() {\n let [, value, fraction = \"\"] = match(RE_NUMBER_LITERAL);\n let precision = fraction.length;\n return {\n type: \"num\",\n value: parseFloat(value),\n precision,\n };\n }\n function parseStringLiteral() {\n consumeChar('\"', SyntaxError);\n let value = \"\";\n while (true) {\n value += match1(RE_STRING_RUN);\n if (source[cursor] === \"\\\\\") {\n value += parseEscapeSequence();\n continue;\n }\n if (consumeChar('\"')) {\n return { type: \"str\", value };\n }\n // We've reached an EOL of EOF.\n throw new SyntaxError(\"Unclosed string literal\");\n }\n }\n // Unescape known escape sequences.\n function parseEscapeSequence() {\n if (test(RE_STRING_ESCAPE)) {\n return match1(RE_STRING_ESCAPE);\n }\n if (test(RE_UNICODE_ESCAPE)) {\n let [, codepoint4, codepoint6] = match(RE_UNICODE_ESCAPE);\n let codepoint = parseInt(codepoint4 || codepoint6, 16);\n return codepoint <= 0xd7ff || 0xe000 <= codepoint\n ? // It's a Unicode scalar value.\n String.fromCodePoint(codepoint)\n : // Lonely surrogates can cause trouble when the parsing result is\n // saved using UTF-8. Use U+FFFD REPLACEMENT CHARACTER instead.\n \"�\";\n }\n throw new SyntaxError(\"Unknown escape sequence\");\n }\n // Parse blank space. Return it if it looks like indent before a pattern\n // line. Skip it othwerwise.\n function parseIndent() {\n let start = cursor;\n consumeToken(TOKEN_BLANK);\n // Check the first non-blank character after the indent.\n switch (source[cursor]) {\n case \".\":\n case \"[\":\n case \"*\":\n case \"}\":\n case undefined: // EOF\n // A special character. End the Pattern.\n return false;\n case \"{\":\n // Placeables don't require indentation (in EBNF: block-placeable).\n // Continue the Pattern.\n return makeIndent(source.slice(start, cursor));\n }\n // If the first character on the line is not one of the special characters\n // listed above, it's a regular text character. Check if there's at least\n // one space of indent before it.\n if (source[cursor - 1] === \" \") {\n // It's an indented text character (in EBNF: indented-char). Continue\n // the Pattern.\n return makeIndent(source.slice(start, cursor));\n }\n // A not-indented text character is likely the identifier of the next\n // message. End the Pattern.\n return false;\n }\n // Trim blanks in text according to the given regex.\n function trim(text, re) {\n return text.replace(re, \"\");\n }\n // Normalize a blank block and extract the indent details.\n function makeIndent(blank) {\n let value = blank.replace(RE_BLANK_LINES, \"\\n\");\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n let length = RE_INDENT.exec(blank)[1].length;\n return new Indent(value, length);\n }\n }\n}\nclass Indent {\n constructor(value, length) {\n this.value = value;\n this.length = length;\n }\n}\n","/* eslint no-magic-numbers: 0 */\nconst languageCodeRe = \"([a-z]{2,3}|\\\\*)\";\nconst scriptCodeRe = \"(?:-([a-z]{4}|\\\\*))\";\nconst regionCodeRe = \"(?:-([a-z]{2}|\\\\*))\";\nconst variantCodeRe = \"(?:-(([0-9][a-z0-9]{3}|[a-z0-9]{5,8})|\\\\*))\";\n/**\n * Regular expression splitting locale id into four pieces:\n *\n * Example: `en-Latn-US-macos`\n *\n * language: en\n * script: Latn\n * region: US\n * variant: macos\n *\n * It can also accept a range `*` character on any position.\n */\nconst localeRe = new RegExp(`^${languageCodeRe}${scriptCodeRe}?${regionCodeRe}?${variantCodeRe}?$`, \"i\");\nexport class Locale {\n /**\n * Parses a locale id using the localeRe into an array with four elements.\n *\n * If the second argument `range` is set to true, it places range `*` char\n * in place of any missing piece.\n *\n * It also allows skipping the script section of the id, so `en-US` is\n * properly parsed as `en-*-US-*`.\n */\n constructor(locale) {\n const result = localeRe.exec(locale.replace(/_/g, \"-\"));\n if (!result) {\n this.isWellFormed = false;\n return;\n }\n let [, language, script, region, variant] = result;\n if (language) {\n this.language = language.toLowerCase();\n }\n if (script) {\n this.script = script[0].toUpperCase() + script.slice(1);\n }\n if (region) {\n this.region = region.toUpperCase();\n }\n this.variant = variant;\n this.isWellFormed = true;\n }\n isEqual(other) {\n return (this.language === other.language &&\n this.script === other.script &&\n this.region === other.region &&\n this.variant === other.variant);\n }\n matches(other, thisRange = false, otherRange = false) {\n return ((this.language === other.language ||\n (thisRange && this.language === undefined) ||\n (otherRange && other.language === undefined)) &&\n (this.script === other.script ||\n (thisRange && this.script === undefined) ||\n (otherRange && other.script === undefined)) &&\n (this.region === other.region ||\n (thisRange && this.region === undefined) ||\n (otherRange && other.region === undefined)) &&\n (this.variant === other.variant ||\n (thisRange && this.variant === undefined) ||\n (otherRange && other.variant === undefined)));\n }\n toString() {\n return [this.language, this.script, this.region, this.variant]\n .filter(part => part !== undefined)\n .join(\"-\");\n }\n clearVariants() {\n this.variant = undefined;\n }\n clearRegion() {\n this.region = undefined;\n }\n addLikelySubtags() {\n const newLocale = getLikelySubtagsMin(this.toString().toLowerCase());\n if (newLocale) {\n this.language = newLocale.language;\n this.script = newLocale.script;\n this.region = newLocale.region;\n this.variant = newLocale.variant;\n return true;\n }\n return false;\n }\n}\n/**\n * Below is a manually a list of likely subtags corresponding to Unicode\n * CLDR likelySubtags list.\n * This list is curated by the maintainers of Project Fluent and is\n * intended to be used in place of the full likelySubtags list in use cases\n * where full list cannot be (for example, due to the size).\n *\n * This version of the list is based on CLDR 30.0.3.\n */\nconst likelySubtagsMin = {\n ar: \"ar-arab-eg\",\n \"az-arab\": \"az-arab-ir\",\n \"az-ir\": \"az-arab-ir\",\n be: \"be-cyrl-by\",\n da: \"da-latn-dk\",\n el: \"el-grek-gr\",\n en: \"en-latn-us\",\n fa: \"fa-arab-ir\",\n ja: \"ja-jpan-jp\",\n ko: \"ko-kore-kr\",\n pt: \"pt-latn-br\",\n sr: \"sr-cyrl-rs\",\n \"sr-ru\": \"sr-latn-ru\",\n sv: \"sv-latn-se\",\n ta: \"ta-taml-in\",\n uk: \"uk-cyrl-ua\",\n zh: \"zh-hans-cn\",\n \"zh-hant\": \"zh-hant-tw\",\n \"zh-hk\": \"zh-hant-hk\",\n \"zh-mo\": \"zh-hant-mo\",\n \"zh-tw\": \"zh-hant-tw\",\n \"zh-gb\": \"zh-hant-gb\",\n \"zh-us\": \"zh-hant-us\",\n};\nconst regionMatchingLangs = [\n \"az\",\n \"bg\",\n \"cs\",\n \"de\",\n \"es\",\n \"fi\",\n \"fr\",\n \"hu\",\n \"it\",\n \"lt\",\n \"lv\",\n \"nl\",\n \"pl\",\n \"ro\",\n \"ru\",\n];\nfunction getLikelySubtagsMin(loc) {\n if (Object.prototype.hasOwnProperty.call(likelySubtagsMin, loc)) {\n return new Locale(likelySubtagsMin[loc]);\n }\n const locale = new Locale(loc);\n if (locale.language && regionMatchingLangs.includes(locale.language)) {\n locale.region = locale.language.toUpperCase();\n return locale;\n }\n return null;\n}\n","import { filterMatches } from \"./matches.js\";\n/**\n * Negotiates the languages between the list of requested locales against\n * a list of available locales.\n *\n * It accepts three arguments:\n *\n * requestedLocales:\n * an Array of strings with BCP47 locale IDs sorted\n * according to user preferences.\n *\n * availableLocales:\n * an Array of strings with BCP47 locale IDs of locale for which\n * resources are available. Unsorted.\n *\n * options:\n * An object with the following, optional keys:\n *\n * strategy: 'filtering' (default) | 'matching' | 'lookup'\n *\n * defaultLocale:\n * a string with BCP47 locale ID to be used\n * as a last resort locale.\n *\n *\n * It returns an Array of strings with BCP47 locale IDs sorted according to the\n * user preferences.\n *\n * The exact list will be selected differently depending on the strategy:\n *\n * 'filtering': (default)\n * In the filtering strategy, the algorithm will attempt to match\n * as many keys in the available locales in order of the requested locales.\n *\n * 'matching':\n * In the matching strategy, the algorithm will attempt to find the\n * best possible match for each element of the requestedLocales list.\n *\n * 'lookup':\n * In the lookup strategy, the algorithm will attempt to find a single\n * best available locale based on the requested locales list.\n *\n * This strategy requires defaultLocale option to be set.\n */\nexport function negotiateLanguages(requestedLocales, availableLocales, { strategy = \"filtering\", defaultLocale } = {}) {\n const supportedLocales = filterMatches(Array.from(requestedLocales !== null && requestedLocales !== void 0 ? requestedLocales : []).map(String), Array.from(availableLocales !== null && availableLocales !== void 0 ? availableLocales : []).map(String), strategy);\n if (strategy === \"lookup\") {\n if (defaultLocale === undefined) {\n throw new Error(\"defaultLocale cannot be undefined for strategy `lookup`\");\n }\n if (supportedLocales.length === 0) {\n supportedLocales.push(defaultLocale);\n }\n }\n else if (defaultLocale && !supportedLocales.includes(defaultLocale)) {\n supportedLocales.push(defaultLocale);\n }\n return supportedLocales;\n}\n","/* eslint no-magic-numbers: 0 */\nimport { Locale } from \"./locale.js\";\n/**\n * Negotiates the languages between the list of requested locales against\n * a list of available locales.\n *\n * The algorithm is based on the BCP4647 3.3.2 Extended Filtering algorithm,\n * with several modifications:\n *\n * 1) available locales are treated as ranges\n *\n * This change allows us to match a more specific request against\n * more generic available locale.\n *\n * For example, if the available locale list provides locale `en`,\n * and the requested locale is `en-US`, we treat the available locale as\n * a locale that matches all possible english requests.\n *\n * This means that we expect available locale ID to be as precize as\n * the matches they want to cover.\n *\n * For example, if there is only `sr` available, it's ok to list\n * it in available locales. But once the available locales has both,\n * Cyrl and Latn variants, the locale IDs should be `sr-Cyrl` and `sr-Latn`\n * to avoid any `sr-*` request to match against whole `sr` range.\n *\n * What it does ([requested] * [available] = [supported]):\n *\n * ['en-US'] * ['en'] = ['en']\n *\n * 2) likely subtags from LDML 4.3 Likely Subtags has been added\n *\n * The most obvious likely subtag that can be computed is a duplication\n * of the language field onto region field (`fr` => `fr-FR`).\n *\n * On top of that, likely subtags may use a list of mappings, that\n * allow the algorithm to handle non-obvious matches.\n * For example, making sure that we match `en` to `en-US` or `sr` to\n * `sr-Cyrl`, while `sr-RU` to `sr-Latn-RU`.\n *\n * This list can be taken directly from CLDR Supplemental Data.\n *\n * What it does ([requested] * [available] = [supported]):\n *\n * ['fr'] * ['fr-FR'] = ['fr-FR']\n * ['en'] * ['en-US'] = ['en-US']\n * ['sr'] * ['sr-Latn', 'sr-Cyrl'] = ['sr-Cyrl']\n *\n * 3) variant/region range check has been added\n *\n * Lastly, the last form of check is against the requested locale ID\n * but with the variant/region field replaced with a `*` range.\n *\n * The rationale here laid out in LDML 4.4 Language Matching:\n * \"(...) normally the fall-off between the user's languages is\n * substantially greated than regional variants.\"\n *\n * In other words, if we can't match for the given region, maybe\n * we can match for the same language/script but other region, and\n * it will in most cases be preferred over falling back on the next\n * language.\n *\n * What it does ([requested] * [available] = [supported]):\n *\n * ['en-AU'] * ['en-US'] = ['en-US']\n * ['sr-RU'] * ['sr-Latn-RO'] = ['sr-Latn-RO'] // sr-RU -> sr-Latn-RU\n *\n * It works similarly to getParentLocales algo, except that we stop\n * after matching against variant/region ranges and don't try to match\n * ignoring script ranges. That means that `sr-Cyrl` will never match\n * against `sr-Latn`.\n */\nexport function filterMatches(requestedLocales, availableLocales, strategy) {\n const supportedLocales = new Set();\n const availableLocalesMap = new Map();\n for (let locale of availableLocales) {\n let newLocale = new Locale(locale);\n if (newLocale.isWellFormed) {\n availableLocalesMap.set(locale, new Locale(locale));\n }\n }\n outer: for (const reqLocStr of requestedLocales) {\n const reqLocStrLC = reqLocStr.toLowerCase();\n const requestedLocale = new Locale(reqLocStrLC);\n if (requestedLocale.language === undefined) {\n continue;\n }\n // 1) Attempt to make an exact match\n // Example: `en-US` === `en-US`\n for (const key of availableLocalesMap.keys()) {\n if (reqLocStrLC === key.toLowerCase()) {\n supportedLocales.add(key);\n availableLocalesMap.delete(key);\n if (strategy === \"lookup\") {\n return Array.from(supportedLocales);\n }\n else if (strategy === \"filtering\") {\n continue;\n }\n else {\n continue outer;\n }\n }\n }\n // 2) Attempt to match against the available range\n // This turns `en` into `en-*-*-*` and `en-US` into `en-*-US-*`\n // Example: ['en-US'] * ['en'] = ['en']\n for (const [key, availableLocale] of availableLocalesMap.entries()) {\n if (availableLocale.matches(requestedLocale, true, false)) {\n supportedLocales.add(key);\n availableLocalesMap.delete(key);\n if (strategy === \"lookup\") {\n return Array.from(supportedLocales);\n }\n else if (strategy === \"filtering\") {\n continue;\n }\n else {\n continue outer;\n }\n }\n }\n // 3) Attempt to retrieve a maximal version of the requested locale ID\n // If data is available, it'll expand `en` into `en-Latn-US` and\n // `zh` into `zh-Hans-CN`.\n // Example: ['en'] * ['en-GB', 'en-US'] = ['en-US']\n if (requestedLocale.addLikelySubtags()) {\n for (const [key, availableLocale] of availableLocalesMap.entries()) {\n if (availableLocale.matches(requestedLocale, true, false)) {\n supportedLocales.add(key);\n availableLocalesMap.delete(key);\n if (strategy === \"lookup\") {\n return Array.from(supportedLocales);\n }\n else if (strategy === \"filtering\") {\n continue;\n }\n else {\n continue outer;\n }\n }\n }\n }\n // 4) Attempt to look up for a different variant for the same locale ID\n // Example: ['en-US-mac'] * ['en-US-win'] = ['en-US-win']\n requestedLocale.clearVariants();\n for (const [key, availableLocale] of availableLocalesMap.entries()) {\n if (availableLocale.matches(requestedLocale, true, true)) {\n supportedLocales.add(key);\n availableLocalesMap.delete(key);\n if (strategy === \"lookup\") {\n return Array.from(supportedLocales);\n }\n else if (strategy === \"filtering\") {\n continue;\n }\n else {\n continue outer;\n }\n }\n }\n // 5) Attempt to match against the likely subtag without region\n // In the example below, addLikelySubtags will turn\n // `zh-Hant` into `zh-Hant-TW` giving `zh-TW` priority match\n // over `zh-CN`.\n //\n // Example: ['zh-Hant-HK'] * ['zh-TW', 'zh-CN'] = ['zh-TW']\n requestedLocale.clearRegion();\n if (requestedLocale.addLikelySubtags()) {\n for (const [key, availableLocale] of availableLocalesMap.entries()) {\n if (availableLocale.matches(requestedLocale, true, false)) {\n supportedLocales.add(key);\n availableLocalesMap.delete(key);\n if (strategy === \"lookup\") {\n return Array.from(supportedLocales);\n }\n else if (strategy === \"filtering\") {\n continue;\n }\n else {\n continue outer;\n }\n }\n }\n }\n // 6) Attempt to look up for a different region for the same locale ID\n // Example: ['en-US'] * ['en-AU'] = ['en-AU']\n requestedLocale.clearRegion();\n for (const [key, availableLocale] of availableLocalesMap.entries()) {\n if (availableLocale.matches(requestedLocale, true, true)) {\n supportedLocales.add(key);\n availableLocalesMap.delete(key);\n if (strategy === \"lookup\") {\n return Array.from(supportedLocales);\n }\n else if (strategy === \"filtering\") {\n continue;\n }\n else {\n continue outer;\n }\n }\n }\n }\n return Array.from(supportedLocales);\n}\n","import { FluentBundle, FluentResource } from \"@fluent/bundle\";\nimport { negotiateLanguages } from \"@fluent/langneg\";\n// This is automatically populated by `tools/bundle_texts.js` via a postbuild script\nconst BUNDLED_TEXTS = {\n \"ca-ES\": {\n \"context_menu.ftl\": \"\",\n \"messages.ftl\": \"\",\n \"save-manager.ftl\": \"\"\n },\n \"de-DE\": {\n \"context_menu.ftl\": \"\",\n \"messages.ftl\": \"\",\n \"save-manager.ftl\": \"\"\n },\n \"en-US\": {\n \"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\",\n \"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 }\",\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\"\n },\n \"es-ES\": {\n \"context_menu.ftl\": \"context-menu-download-swf = Descargar .swf\\ncontext-menu-copy-debug-info = Copiar Información de depuración\\ncontext-menu-open-save-manager = Abrir gestor de guardado\\ncontext-menu-about-ruffle =\\n { $flavor ->\\n [extension] Sobre la extensión de Ruffle ({ $version })\\n *[other] Sobre Ruffle ({ $version })\\n }\\ncontext-menu-hide = Ocultar este menú\\ncontext-menu-exit-fullscreen = Salir de pantalla completa\\ncontext-menu-enter-fullscreen = Entrar a pantalla completa\\n\",\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ían no funcionar de manera correcta.\\nmessage-cant-embed =\\n Ruffle no pudo ejecutar el Flash incrustado en esta página.\\n Puedes intentar abrir el archivo en una pestaña aparte, para evitar este problema.\\npanic-title = Algo salió mal :(\\nmore-info = Más info\\nrun-anyway = Ejecutar de todos modos\\ncontinue = Continuar\\nreport-bug = Reportar un Error\\nupdate-ruffle = Actualizar Ruffle\\nerror-csp-conflict =\\n Ruffle encontró un problema al intentar inicializarse.\\n La Política de Seguridad de Contenido de este servidor web no permite el componente requerido \\\".wasm\\\". \\n Si eres 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 eres el administrador del servidor, intenta cargar una version más reciente de Ruffle (la version actual esta desactualizada: { $buildDate }).\\n *[false] Esto no deberia suceder! apreciariamos que reportes el error!\\n }\\n\",\n \"save-manager.ftl\": \"save-delete-prompt = ¿Estás seguro de querer eliminar este archivo de guardado?\\nsave-reload-prompt =\\n La única forma de { $action ->\\n [delete] eliminar\\n *[replace] sobreescribir\\n } este archivo de guardado sin conflictos potenciales es reiniciando el contenido. ¿Desea continuar de todos modos?\\nsave-download = Descargar\\nsave-replace = Sobreescribir\\nsave-backup-all = Borrar todos los archivos de guardado\\n\"\n },\n \"fr-FR\": {\n \"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\",\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.\\npanic-title = Une erreur est survenue :(\\nmore-info = Plus d'infos\\nrun-anyway = Exécuter quand même\\ncontinue = Continuer\\nreport-bug = Signaler le bug\\nupdate-ruffle = Mettre à jour Ruffle\\nruffle-demo = Démo en ligne\\nruffle-desktop = Application de bureau\\nruffle-wiki = Wiki de Ruffle\\nview-error-details = Détails 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écutiez Ruffle sur le protocole \\\"file:\\\".\\n Cela ne fonctionne pas car les navigateurs bloquent de nombreuses fonctionnalités pour des raisons de sécurité.\\n Nous vous invitons soit à configurer un serveur local, soit à utiliser la démo en ligne ou l'application de bureau.\\nerror-javascript-config =\\n Ruffle a rencontré un problème majeur en raison d'une configuration JavaScript incorrecte.\\n Si vous êtes l'administrateur du serveur, nous vous invitons à vérifier les détails de l'erreur pour savoir quel est le paramètre en cause.\\n Vous pouvez également consulter le wiki de Ruffle pour obtenir de l'aide.\\nerror-wasm-not-found =\\n Ruffle n'a pas réussi à charger son fichier \\\".wasm\\\".\\n Si vous êtes l'administrateur du serveur, veuillez vous assurer que ce fichier a bien été mis en ligne.\\n Si le problème persiste, il vous faudra peut-être utiliser le paramètre \\\"publicPath\\\" : veuillez consulter le wiki de Ruffle pour obtenir de l'aide.\\nerror-wasm-mime-type =\\n Ruffle a rencontré un problème majeur durant sa phase d'initialisation.\\n Ce serveur web ne renvoie pas le bon type MIME pour les fichiers \\\".wasm\\\".\\n Si vous êtes l'administrateur du serveur, veuillez consulter le wiki de Ruffle pour obtenir de l'aide.\\nerror-swf-fetch =\\n Ruffle n'a pas réussi à 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éussi à charger le fichier Flash.\\n La requête a probablement été rejetée en raison de la configuration du CORS.\\n Si vous êtes l'administrateur du serveur, veuillez consulter le wiki de Ruffle pour obtenir de l'aide.\\nerror-wasm-cors =\\n Ruffle n'a pas réussi à charger son fichier \\\".wasm\\\".\\n La requête a probablement été rejetée en raison de la configuration du CORS.\\n Si vous êtes l'administrateur du serveur, veuillez consulter le wiki de Ruffle pour obtenir de l'aide.\\nerror-wasm-invalid =\\n Ruffle a rencontré un problème majeur durant sa phase d'initialisation.\\n Il semblerait que cette page comporte des fichiers manquants ou invalides pour exécuter Ruffle.\\n Si vous êtes l'administrateur du serveur, veuillez consulter le wiki de Ruffle pour obtenir de l'aide.\\nerror-wasm-download =\\n Ruffle a rencontré un problème majeur durant sa phase d'initialisation.\\n Le problème détecté peut souvent se résoudre de lui-même, donc vous pouvez essayer de recharger la page.\\n Si le problème persiste, veuillez prendre contact avec l'administrateur du site.\\nerror-wasm-disabled-on-edge =\\n Ruffle n'a pas réussi à charger son fichier \\\".wasm\\\".\\n Pour résoudre ce problème, essayez d'ouvrir les paramètres de votre navigateur et de cliquer sur \\\"Confidentialité, recherche et services\\\". Puis, vers le bas de la page, désactivez l'option \\\"Améliorez votre sécurité sur le web\\\".\\n Cela permettra à votre navigateur de charger les fichiers \\\".wasm\\\".\\n Si le problème persiste, vous devrez peut-être utiliser un autre navigateur.\\nerror-javascript-conflict =\\n Ruffle a rencontré un problème 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 êtes l'administrateur du serveur, nous vous invitons à essayer de charger le fichier dans une page vide.\\nerror-javascript-conflict-outdated = Vous pouvez également essayer de mettre en ligne une version plus récente de Ruffle qui pourrait avoir corrigé le problème (la version que vous utilisez est obsolète : { $buildDate }).\\nerror-csp-conflict =\\n Ruffle a rencontré un problème majeur durant sa phase d'initialisation.\\n La stratégie de sécurité du contenu (CSP) de ce serveur web n'autorise pas l'exécution de fichiers \\\".wasm\\\".\\n Si vous êtes l'administrateur du serveur, veuillez consulter le wiki de Ruffle pour obtenir de l'aide.\\nerror-unknown =\\n Ruffle a rencontré un problème majeur durant l'exécution de ce contenu Flash.\\n { $outdated ->\\n [true] Si vous êtes l'administrateur du serveur, veuillez essayer de mettre en ligne une version plus récente de Ruffle (la version que vous utilisez est obsolète : { $buildDate }).\\n *[false] Cela n'est pas censé se produire, donc nous vous serions reconnaissants si vous pouviez nous signaler ce bug !\\n }\\n\",\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\\nsave-backup-all = Télécharger tous les fichiers de sauvegarde\\n\"\n },\n \"hu-HU\": {\n \"context_menu.ftl\": \"context-menu-download-swf = .swf fájl letöltése\\ncontext-menu-copy-debug-info = Hibakeresési információk másolása\\ncontext-menu-open-save-manager = Mentéskezelő megnyitása\\ncontext-menu-about-ruffle =\\n { $flavor ->\\n [extension] A Ruffle kiegészítő ({ $version }) névjegye\\n *[other] A Ruffle ({ $version }) névjegye\\n }\\ncontext-menu-hide = Ezen menü elrejtése\\ncontext-menu-exit-fullscreen = Kilépés a teljes képernyőből\\ncontext-menu-enter-fullscreen = Váltás teljes képernyőre\\n\",\n \"messages.ftl\": \"message-unsupported-avm2 =\\n Előfordulhat, hogy a Ruffle emulátor még nem támogatja teljes mértékben az ezen tartalom által használt összes ActionScript 3 funkciót.\\n A tartalom egyes részei esetleg nem fognak a várt módon működni.\\nmessage-cant-embed =\\n A Ruffle nem tudta futtatni az oldalba ágyazott Flash tartalmat.\\n A probléma kikerüléséhez megpróbálhatod megnyitni a fájlt egy külön lapon.\\npanic-title = Valami baj történt :(\\nmore-info = További információ\\nrun-anyway = Futtatás mégis\\ncontinue = Folytatás\\nreport-bug = Hiba jelentése\\nupdate-ruffle = Ruffle frissítése\\nruffle-demo = Webes demó\\nruffle-desktop = Asztali alkalmazás\\nruffle-wiki = Ruffle Wiki megnyitása\\nview-error-details = Hiba részletei\\nopen-in-new-tab = Megnyitás új lapon\\nclick-to-unmute = Kattints a némítás feloldásához\\nerror-file-protocol =\\n Úgy tűnik, a Ruffle-t a \\\"file:\\\" protokollon futtatod.\\n Ez nem működik, mivel így a böngészők biztonsági okokból számos funkció működését letiltják.\\n Ehelyett azt ajánljuk hogy indíts egy helyi kiszolgálót, vagy használd a webes demót vagy az asztali alkalmazást.\\nerror-javascript-config =\\n A Ruffle komoly problémába ütközött egy helytelen JavaScript-konfiguráció miatt.\\n Ha a szerver rendszergazdája vagy, kérjük, ellenőrizd a hiba részleteit, hogy megtudd, melyik paraméter a hibás.\\n A Ruffle wikiben is találhatsz ehhez segítséget.\\nerror-wasm-not-found =\\n A Ruffle nem tudta betölteni a szükséges \\\".wasm\\\" összetevőt.\\n Ha a szerver rendszergazdája vagy, kérjük ellenőrizd, hogy a fájl megfelelően lett-e feltöltve.\\n Ha a probléma továbbra is fennáll, előfordulhat, hogy a \\\"publicPath\\\" beállítást kell használnod: segítségért keresd fel a Ruffle wikit.\\nerror-wasm-mime-type =\\n A Ruffle komoly problémába ütközött az inicializálás során.\\n Ez a webszerver a \\\".wasm\\\" fájlokat nem a megfelelő MIME-típussal szolgálja ki.\\n Ha a szerver rendszergazdája vagy, kérjük, keresd fel a Ruffle wikit segítségért.\\nerror-swf-fetch =\\n A Ruffle nem tudta betölteni a Flash SWF fájlt.\\n A legvalószínűbb ok az, hogy a fájl már nem létezik, így a Ruffle számára nincs mit betölteni.\\n Próbáld meg felvenni a kapcsolatot a webhely rendszergazdájával segítségért.\\nerror-swf-cors =\\n A Ruffle nem tudta betölteni a Flash SWF fájlt.\\n A lekéréshez való hozzáférést valószínűleg letiltotta a CORS-házirend.\\n Ha a szerver rendszergazdája vagy, kérjük, keresd fel a Ruffle wikit segítségért.\\nerror-wasm-cors =\\n A Ruffle nem tudta betölteni a szükséges \\\".wasm\\\" összetevőt.\\n A lekéréshez való hozzáférést valószínűleg letiltotta a CORS-házirend.\\n Ha a szerver rendszergazdája vagy, kérjük keresd fel a Ruffle wikit segítségért.\\nerror-wasm-invalid =\\n A Ruffle komoly problémába ütközött az inicializálás során.\\n Úgy tűnik, hogy ezen az oldalon hiányoznak vagy hibásak a Ruffle futtatásához szükséges fájlok.\\n Ha a szerver rendszergazdája vagy, kérjük keresd fel a Ruffle wikit segítségért.\\nerror-wasm-download =\\n A Ruffle komoly problémába ütközött az inicializálás során.\\n Ez gyakran magától megoldódik, ezért megpróbálhatod újratölteni az oldalt.\\n Ellenkező esetben fordulj a webhely rendszergazdájához.\\nerror-wasm-disabled-on-edge =\\n A Ruffle nem tudta betölteni a szükséges \\\".wasm\\\" összetevőt.\\n A probléma megoldásához nyisd meg a böngésző beállításait, kattints az „Adatvédelem, keresés és szolgáltatások” elemre, görgess le, és kapcsold ki a „Fokozott biztonság a weben” opciót.\\n Ez lehetővé teszi a böngésző számára, hogy betöltse a szükséges \\\".wasm\\\" fájlokat.\\n Ha a probléma továbbra is fennáll, lehet, hogy másik böngészőt kell használnod.\\nerror-javascript-conflict =\\n A Ruffle komoly problémába ütközött az inicializálás során.\\n Úgy tűnik, ez az oldal olyan JavaScript-kódot használ, amely ütközik a Ruffle-lel.\\n Ha a kiszolgáló rendszergazdája vagy, kérjük, próbáld meg a fájlt egy üres oldalon betölteni.\\nerror-javascript-conflict-outdated = Megpróbálhatod továbbá feltölteni a Ruffle egy újabb verzióját is, amely megkerülheti a problémát (a jelenlegi elavult: { $buildDate }).\\nerror-csp-conflict =\\n A Ruffle komoly problémába ütközött az inicializálás során.\\n A kiszolgáló tartalombiztonsági házirendje nem teszi lehetővé a szükséges „.wasm” összetevők futtatását.\\n Ha a szerver rendszergazdája vagy, kérjük, keresd fel a Ruffle wikit segítségért.\\nerror-unknown =\\n A Ruffle komoly problémába ütközött, miközben megpróbálta megjeleníteni ezt a Flash-tartalmat.\\n { $outdated ->\\n [true] Ha a szerver rendszergazdája vagy, kérjük, próbáld meg feltölteni a Ruffle egy újabb verzióját (a jelenlegi elavult: { $buildDate }).\\n *[false] Ennek nem lett volna szabad megtörténnie, ezért nagyon hálásak lennénk, ha jeleznéd a hibát!\\n }\\n\",\n \"save-manager.ftl\": \"save-delete-prompt = Biztosan törölni akarod ezt a mentést?\\nsave-reload-prompt =\\n Ennek a mentésnek az esetleges konfliktus nélküli { $action ->\\n [delete] törléséhez\\n *[replace] cseréjéhez\\n } újra kell tölteni a tartalmat. Mégis szeretnéd folytatni?\\nsave-download = Letöltés\\nsave-replace = Csere\\nsave-delete = Törlés\\nsave-backup-all = Az összes fájl letöltése\\n\"\n },\n \"it-IT\": {\n \"context_menu.ftl\": \"\",\n \"messages.ftl\": \"\",\n \"save-manager.ftl\": \"\"\n },\n \"ja-JP\": {\n \"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\",\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\",\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\"\n },\n \"ko-KR\": {\n \"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\",\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\",\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 = 모든 저장 파일 다운로드\\n\"\n },\n \"nl-NL\": {\n \"context_menu.ftl\": \"\",\n \"messages.ftl\": \"\",\n \"save-manager.ftl\": \"\"\n },\n \"pt-PT\": {\n \"context_menu.ftl\": \"\",\n \"messages.ftl\": \"\",\n \"save-manager.ftl\": \"\"\n },\n \"ro-RO\": {\n \"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\",\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\",\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\\n\"\n },\n \"ru-RU\": {\n \"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\",\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\",\n \"save-manager.ftl\": \"save-delete-prompt = Удалить этот файл сохранения?\\nsave-reload-prompt =\\n Единственный способ { $action ->\\n [delete] удалить\\n *[replace] заменить\\n } этот файл сохранения без потенциального конфликта – перезапустить запущенный контент. Всё равно продолжить?\\nsave-download = Скачать\\nsave-replace = Заменить\\nsave-delete = Удалить\\n\"\n },\n \"sv-SE\": {\n \"context_menu.ftl\": \"\",\n \"messages.ftl\": \"\",\n \"save-manager.ftl\": \"\"\n },\n \"tr-TR\": {\n \"context_menu.ftl\": \"\",\n \"messages.ftl\": \"\",\n \"save-manager.ftl\": \"\"\n },\n \"zh-CN\": {\n \"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\",\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 Wiki\\nview-error-details = 查看错误详情\\nopen-in-new-tab = 在新标签中打开\\nclick-to-unmute = 点击取消静音\\nerror-file-protocol =\\n 看来您正在 \\\"file:\\\" 协议上使用 Ruffle。\\n 由于浏览器以安全原因阻止许多功能,因此这不起作用。\\n 相反我们邀请您设置本地服务器或使用网页演示或桌面应用程序。\\nerror-javascript-config =\\n 由于错误的 JavaScript 配置,Ruffle 遇到了一个主要问题。\\n 如果您是服务器管理员,我们邀请您检查错误详细信息,以找出哪个参数有故障。\\n 您也可以查看 Ruffle 的 Wiki 获取帮助\\nerror-wasm-not-found =\\n Ruffle 无法加载所需的 “.wasm” 文件组件。\\n 如果您是服务器管理员,请确保文件已正确上传。\\n 如果问题仍然存在,您可能需要使用 “publicPath” 设置:请查看 Ruffle 的 Wiki 获取帮助。\\nerror-wasm-mime-type =\\n Ruffle 在初始化时遇到了一个重大问题。\\n 此Web 服务器没有提供 \\\".asm” 文件正确的 MIME 类型。\\n 如果您是服务器管理员请查看 Ruffle 的 Wiki 获取帮助。\\nerror-swf-fetch =\\n Ruffle 无法加载 Flash SWF 文件。\\n 最可能的原因是文件不再存在所以 Ruffle 没有要加载的内容。\\n 请尝试联系网站管理员寻求帮助。\\nerror-swf-cors =\\n Ruffle 无法加载 Flash SWF 文件。\\n 获取权限可能被 CORS 策略阻止。\\n 如果您是服务器管理员请参考 Ruffle Wiki 寻求帮助。\\nerror-wasm-cors =\\n Ruffle 无法加载所需的“.wasm”文件组件。\\n 获取权限可能被 CORS 策略阻止。\\n 如果您是服务器管理员,请参考 Ruffle Wiki 获取帮助。\\nerror-wasm-invalid =\\n Ruffle 在尝试初始化时遇到了一个重大问题。\\n 这个页面似乎缺少或者运行 Ruffle 的文件。\\n 如果您是服务器管理员,请参考Ruffle Wiki寻求帮助。\\nerror-wasm-download =\\n Ruffle 在尝试初始化时遇到了一个主要问题。\\n 这通常可以自行解决,因此您可以尝试重新加载页面。\\n 否则请联系网站管理员\\nerror-wasm-disabled-on-edge =\\n Ruffle 无法加载所需的 “.wasm” 文件组件。\\n 要解决这个问题,请尝试打开您的浏览器设置,单击\\\"隐私、搜索和服务\\\",向下滚动并关闭\\\"增强您的网络安全\\\"。\\n 这将允许您的浏览器加载所需的 “.wasm” 文件。\\n 如果问题仍然存在,您可能必须使用不同的浏览器。\\nerror-javascript-conflict =\\n 规则在尝试初始化时遇到了一个重大问题。\\n 这个页面似乎使用了与 Ruffle 冲突的 JavaScript 代码。\\n 如果您是服务器管理员,我们邀请您尝试在空白页面上加载文件。\\nerror-javascript-conflict-outdated = 您还可以尝试上传可能规避该问题的最新版本的 (当前构建已过时: { $buildDate })。\\nerror-csp-conflict =\\n Ruffle 在试图初始化时遇到了一个主要问题。\\n 该网站服务器的内容安全策略不允许运行所需的 “.wasm” 组件。\\n 如果您是服务器管理员,请查看 Ruffle Wiki 以寻求帮助。\\nerror-unknown =\\n 在试图显示此 Flash 内容的同时 Ruffle 遇到了一个主要问题。\\n { $outdated ->\\n [true] 如果您是服务器管理员,请尝试上传更新的 Ruffle 版本 (当前版本已过时: { $buildDate }).\\n *[false] 这不应该发生,因此如果您可以报告错误,我们将非常感谢!\\n }\\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\"\n },\n \"zh-TW\": {\n \"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\",\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得到需求幫助。\\nerror-wasm-mime-type =\\n 目前Ruffle初始化時遇到重大問題。\\n 這網頁伺服器並沒有服務\\\".wasm\\\"檔案或正確的網際網路媒體類型。\\n 如果你是伺服器管理員,請查詢Ruffle wiki得到需求幫助。\\nerror-swf-fetch =\\n 目前Ruffle無法讀取Flash的SWF檔案。\\n 很有可能要讀取的檔案不存在,所以Ruffle讀不到東西。\\n 請嘗試溝通伺服器管理員得到需求幫助。\\nerror-swf-cors =\\n 目前Ruffle無法讀取Flash的SWF檔案。\\n 看起來是使用權被跨來源資源共用機制被擋到了。\\n 如果你是伺服器管理員,請查詢Ruffle wiki得到需求幫助。\\nerror-wasm-cors =\\n 目前Ruffle無法讀取\\\".wasm\\\"檔案。\\n 看起來是使用權被跨來源資源共用機制被擋到了。\\n 如果你是伺服器管理員,請查詢Ruffle wiki得到需求幫助。\\nerror-wasm-invalid =\\n 目前Ruffle初始化時遇到重大問題。\\n 看起來這網頁有缺失檔案導致Ruffle無法運行。\\n 如果你是伺服器管理員,請查詢Ruffle wiki得到需求幫助。\\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 看起來這網頁使用的JavaScript會跟Ruffle起衝突。\\n 如果你是伺服器管理員,我們建議你開個空白頁來測試。\\nerror-javascript-conflict-outdated = 你也可以上傳最新版的Ruffle,說不定你要說的的問題已經不見了(現在使用的版本已經過時: { $buildDate })。\\nerror-csp-conflict =\\n 目前Ruffle初始化時遇到重大問題。\\n 這網頁伺服器被跨來源資源共用機制禁止讀取\\\".wasm\\\"檔案。\\n 如果你是伺服器管理員,請查詢Ruffle wiki得到需求幫助。\\nerror-unknown =\\n 目前Ruffle初始化要讀取Flash內容時遇到重大問題\\n { $outdated ->\\n [true] 如果你是伺服器管理員, 請上傳最新版的Ruffle(現在使用的版本已經過時: { $buildDate }).\\n *[false] 這不應該發生的,我們也很高興你告知bug!\\n }\\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\"\n }\n};\nconst bundles = {};\nfor (const locale in BUNDLED_TEXTS) {\n const bundle = new FluentBundle(locale);\n const files = BUNDLED_TEXTS[locale];\n if (files) {\n for (const filename in files) {\n const text = files[filename];\n if (text) {\n for (const error in bundle.addResource(new FluentResource(text))) {\n console.error(`Error in text for ${locale} ${filename}: ${error}`);\n }\n }\n }\n }\n bundles[locale] = bundle;\n}\n/**\n * Gets the localised text for the given locale and text ID.\n *\n * If the locale does not contain a text for this ID, it will return null.\n *\n * @param locale Locale to prefer when retrieving text, ie \"en-US\"\n * @param id ID of the text to retrieve\n * @param args Any arguments to use when creating the localised text\n * @returns Localised text or null if not found\n */\nfunction tryText(locale, id, args) {\n const bundle = bundles[locale];\n if (bundle !== undefined) {\n const message = bundle.getMessage(id);\n if (message !== undefined && message.value) {\n return bundle.formatPattern(message.value, args);\n }\n }\n return null;\n}\n/**\n * Gets the localised text for the given text ID.\n *\n * The users preferred locales are used, in priority order, to find the given text.\n *\n * If no text is found for any preferred locale, en-US will be used.\n * If en-US does not contain a text for this ID, an error will be logged and the ID itself will be returned.\n *\n * @param id ID of the text to retrieve\n * @param args Any arguments to use when creating the localised text\n * @returns Localised text\n */\nexport function text(id, args) {\n const locales = negotiateLanguages(navigator.languages, Object.keys(bundles), { defaultLocale: \"en-US\" });\n for (const i in locales) {\n const result = tryText(locales[i], id, args);\n if (result) {\n return result;\n }\n }\n console.error(`Unknown text key '${id}'`);\n return id;\n}\n/**\n * Gets the localised text for the given text ID, as

    paragraphs

    and HTML entities safely encoded.\n *\n * The users preferred locales are used, in priority order, to find the given text.\n *\n * If no text is found for any preferred locale, en-US will be used.\n * If en-US does not contain a text for this ID, an error will be logged and the ID itself will be returned.\n *\n * @param id ID of the text to retrieve\n * @param args Any arguments to use when creating the localised text\n * @returns Localised text with each line in a Paragraph element\n */\nexport function textAsParagraphs(id, args) {\n const result = document.createElement(\"div\");\n text(id, args)\n .split(\"\\n\")\n .forEach((line) => {\n const p = document.createElement(\"p\");\n p.innerText = line;\n result.appendChild(p);\n });\n return result.innerHTML;\n}\n","import { loadRuffle } from \"./load-ruffle\";\nimport { ruffleShadowTemplate } from \"./shadow-template\";\nimport { lookupElement } from \"./register-element\";\nimport { DEFAULT_CONFIG } from \"./config\";\nimport { swfFileName } from \"./swf-utils\";\nimport { buildInfo } from \"./build-info\";\nimport { text, textAsParagraphs } from \"./i18n\";\nimport JSZip from \"jszip\";\nconst RUFFLE_ORIGIN = \"https://ruffle.rs\";\nconst DIMENSION_REGEX = /^\\s*(\\d+(\\.\\d+)?(%)?)/;\nlet isAudioContextUnmuted = false;\n/**\n * Converts arbitrary input to an easy to use record object.\n *\n * @param parameters Parameters to sanitize\n * @returns A sanitized map of param name to param value\n */\nfunction sanitizeParameters(parameters) {\n if (parameters === null || parameters === undefined) {\n return {};\n }\n if (!(parameters instanceof URLSearchParams)) {\n parameters = new URLSearchParams(parameters);\n }\n const output = {};\n for (const [key, value] of parameters) {\n // Every value must be type of string\n output[key] = value.toString();\n }\n return output;\n}\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n distanceTo(other) {\n const dx = other.x - this.x;\n const dy = other.y - this.y;\n return Math.sqrt(dx * dx + dy * dy);\n }\n}\n/**\n * The ruffle player element that should be inserted onto the page.\n *\n * This element will represent the rendered and intractable flash movie.\n */\nclass RufflePlayer extends HTMLElement {\n /**\n * Indicates the readiness of the playing movie.\n *\n * @returns The `ReadyState` of the player.\n */\n get readyState() {\n return this._readyState;\n }\n /**\n * The metadata of the playing movie (such as movie width and height).\n * These are inherent properties stored in the SWF file and are not affected by runtime changes.\n * For example, `metadata.width` is the width of the SWF file, and not the width of the Ruffle player.\n *\n * @returns The metadata of the movie, or `null` if the movie metadata has not yet loaded.\n */\n get metadata() {\n return this._metadata;\n }\n /**\n * Constructs a new Ruffle flash player for insertion onto the page.\n */\n constructor() {\n super();\n // Allows the user to permanently disable the context menu.\n this.contextMenuForceDisabled = false;\n // Whether this device sends contextmenu events.\n // Set to true when a contextmenu event is seen.\n this.contextMenuSupported = false;\n this.panicked = false;\n this.rendererDebugInfo = \"\";\n this.isExtension = false;\n this.longPressTimer = null;\n this.pointerDownPosition = null;\n this.pointerMoveMaxDistance = 0;\n /**\n * Any configuration that should apply to this specific player.\n * This will be defaulted with any global configuration.\n */\n this.config = {};\n this.shadow = this.attachShadow({ mode: \"open\" });\n this.shadow.appendChild(ruffleShadowTemplate.content.cloneNode(true));\n this.dynamicStyles = (this.shadow.getElementById(\"dynamic_styles\"));\n this.container = this.shadow.getElementById(\"container\");\n this.playButton = this.shadow.getElementById(\"play_button\");\n this.playButton.addEventListener(\"click\", () => this.play());\n this.unmuteOverlay = this.shadow.getElementById(\"unmute_overlay\");\n this.splashScreen = this.shadow.getElementById(\"splash-screen\");\n this.virtualKeyboard = (this.shadow.getElementById(\"virtual-keyboard\"));\n this.virtualKeyboard.addEventListener(\"input\", this.virtualKeyboardInput.bind(this));\n this.saveManager = (this.shadow.getElementById(\"save-manager\"));\n this.saveManager.addEventListener(\"click\", () => this.saveManager.classList.add(\"hidden\"));\n const modalArea = this.saveManager.querySelector(\"#modal-area\");\n if (modalArea) {\n modalArea.addEventListener(\"click\", (event) => event.stopPropagation());\n }\n const closeSaveManager = this.saveManager.querySelector(\"#close-modal\");\n if (closeSaveManager) {\n closeSaveManager.addEventListener(\"click\", () => this.saveManager.classList.add(\"hidden\"));\n }\n const backupSaves = (this.saveManager.querySelector(\"#backup-saves\"));\n if (backupSaves) {\n backupSaves.addEventListener(\"click\", this.backupSaves.bind(this));\n backupSaves.innerText = text(\"save-backup-all\");\n }\n const unmuteSvg = (this.unmuteOverlay.querySelector(\"#unmute_overlay_svg\"));\n if (unmuteSvg) {\n const unmuteText = (unmuteSvg.querySelector(\"#unmute_text\"));\n unmuteText.textContent = text(\"click-to-unmute\");\n }\n this.contextMenuElement = this.shadow.getElementById(\"context-menu\");\n this.addEventListener(\"contextmenu\", this.showContextMenu.bind(this));\n this.container.addEventListener(\"pointerdown\", this.pointerDown.bind(this));\n this.container.addEventListener(\"pointermove\", this.checkLongPressMovement.bind(this));\n this.container.addEventListener(\"pointerup\", this.checkLongPress.bind(this));\n this.container.addEventListener(\"pointercancel\", this.clearLongPressTimer.bind(this));\n this.addEventListener(\"fullscreenchange\", this.fullScreenChange.bind(this));\n this.addEventListener(\"webkitfullscreenchange\", this.fullScreenChange.bind(this));\n this.instance = null;\n this.onFSCommand = null;\n this._readyState = 0 /* ReadyState.HaveNothing */;\n this._metadata = null;\n this.lastActivePlayingState = false;\n this.setupPauseOnTabHidden();\n }\n /**\n * Setup event listener to detect when tab is not active to pause instance playback.\n * this.instance.play() is called when the tab becomes visible only if the\n * the instance was not paused before tab became hidden.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API\n * @ignore\n * @internal\n */\n setupPauseOnTabHidden() {\n document.addEventListener(\"visibilitychange\", () => {\n if (!this.instance) {\n return;\n }\n // Tab just changed to be inactive. Record whether instance was playing.\n if (document.hidden) {\n this.lastActivePlayingState = this.instance.is_playing();\n this.instance.pause();\n }\n // Play only if instance was playing originally.\n if (!document.hidden && this.lastActivePlayingState === true) {\n this.instance.play();\n }\n }, false);\n }\n /**\n * @ignore\n * @internal\n */\n connectedCallback() {\n this.updateStyles();\n }\n /**\n * @ignore\n * @internal\n */\n static get observedAttributes() {\n return [\"width\", \"height\"];\n }\n /**\n * @ignore\n * @internal\n */\n attributeChangedCallback(name, _oldValue, _newValue) {\n if (name === \"width\" || name === \"height\") {\n this.updateStyles();\n }\n }\n /**\n * @ignore\n * @internal\n */\n disconnectedCallback() {\n this.destroy();\n }\n /**\n * Updates the internal shadow DOM to reflect any set attributes from\n * this element.\n */\n updateStyles() {\n if (this.dynamicStyles.sheet) {\n if (this.dynamicStyles.sheet.rules) {\n for (let i = 0; i < this.dynamicStyles.sheet.rules.length; i++) {\n this.dynamicStyles.sheet.deleteRule(i);\n }\n }\n const widthAttr = this.attributes.getNamedItem(\"width\");\n if (widthAttr !== undefined && widthAttr !== null) {\n const width = RufflePlayer.htmlDimensionToCssDimension(widthAttr.value);\n if (width !== null) {\n this.dynamicStyles.sheet.insertRule(`:host { width: ${width}; }`);\n }\n }\n const heightAttr = this.attributes.getNamedItem(\"height\");\n if (heightAttr !== undefined && heightAttr !== null) {\n const height = RufflePlayer.htmlDimensionToCssDimension(heightAttr.value);\n if (height !== null) {\n this.dynamicStyles.sheet.insertRule(`:host { height: ${height}; }`);\n }\n }\n }\n }\n /**\n * Determine if this element is the fallback content of another Ruffle\n * player.\n *\n * This heuristic assumes Ruffle objects will never use their fallback\n * content. If this changes, then this code also needs to change.\n *\n * @private\n */\n isUnusedFallbackObject() {\n const element = lookupElement(\"ruffle-object\");\n if (element !== null) {\n let parent = this.parentNode;\n while (parent !== document && parent !== null) {\n if (parent.nodeName === element.name) {\n return true;\n }\n parent = parent.parentNode;\n }\n }\n return false;\n }\n /**\n * Ensure a fresh Ruffle instance is ready on this player before continuing.\n *\n * @throws Any exceptions generated by loading Ruffle Core will be logged\n * and passed on.\n *\n * @private\n */\n async ensureFreshInstance() {\n var _a;\n this.destroy();\n if (this.loadedConfig &&\n this.loadedConfig.splashScreen !== false &&\n this.loadedConfig.preloader !== false) {\n this.showSplashScreen();\n }\n if (this.loadedConfig && this.loadedConfig.preloader === false) {\n console.warn(\"The configuration option preloader has been replaced with splashScreen. If you own this website, please update the configuration.\");\n }\n if (this.loadedConfig &&\n this.loadedConfig.maxExecutionDuration &&\n typeof this.loadedConfig.maxExecutionDuration !== \"number\") {\n console.warn(\"Configuration: An obsolete format for duration for 'maxExecutionDuration' was used, \" +\n \"please use a single number indicating seconds instead. For instance '15' instead of \" +\n \"'{secs: 15, nanos: 0}'.\");\n }\n if (this.loadedConfig &&\n typeof this.loadedConfig.contextMenu === \"boolean\") {\n console.warn('The configuration option contextMenu no longer takes a boolean. Use \"on\", \"off\", or \"rightClickOnly\".');\n }\n const ruffleConstructor = await loadRuffle(this.loadedConfig || {}, this.onRuffleDownloadProgress.bind(this)).catch((e) => {\n console.error(`Serious error loading Ruffle: ${e}`);\n // Serious duck typing. In error conditions, let's not make assumptions.\n if (window.location.protocol === \"file:\") {\n e.ruffleIndexError = 2 /* PanicError.FileProtocol */;\n }\n else {\n e.ruffleIndexError = 9 /* PanicError.WasmNotFound */;\n const message = String(e.message).toLowerCase();\n if (message.includes(\"mime\")) {\n e.ruffleIndexError = 8 /* PanicError.WasmMimeType */;\n }\n else if (message.includes(\"networkerror\") ||\n message.includes(\"failed to fetch\")) {\n e.ruffleIndexError = 6 /* PanicError.WasmCors */;\n }\n else if (message.includes(\"disallowed by embedder\")) {\n e.ruffleIndexError = 1 /* PanicError.CSPConflict */;\n }\n else if (e.name === \"CompileError\") {\n e.ruffleIndexError = 3 /* PanicError.InvalidWasm */;\n }\n else if (message.includes(\"could not download wasm module\") &&\n e.name === \"TypeError\") {\n e.ruffleIndexError = 7 /* PanicError.WasmDownload */;\n }\n else if (e.name === \"TypeError\") {\n e.ruffleIndexError = 5 /* PanicError.JavascriptConflict */;\n }\n else if (navigator.userAgent.includes(\"Edg\") &&\n message.includes(\"webassembly is not defined\")) {\n // Microsoft Edge detection.\n e.ruffleIndexError = 10 /* PanicError.WasmDisabledMicrosoftEdge */;\n }\n }\n this.panic(e);\n throw e;\n });\n this.instance = await new ruffleConstructor(this.container, this, this.loadedConfig);\n this.rendererDebugInfo = this.instance.renderer_debug_info();\n const actuallyUsedRendererName = this.instance.renderer_name();\n console.log(\"%c\" +\n \"New Ruffle instance created (WebAssembly extensions: \" +\n (ruffleConstructor.is_wasm_simd_used() ? \"ON\" : \"OFF\") +\n \" | Used renderer: \" +\n (actuallyUsedRendererName !== null && actuallyUsedRendererName !== void 0 ? actuallyUsedRendererName : \"\") +\n \")\", \"background: #37528C; color: #FFAD33\");\n // In Firefox, AudioContext.state is always \"suspended\" when the object has just been created.\n // It may change by itself to \"running\" some milliseconds later. So we need to wait a little\n // bit before checking if autoplay is supported and applying the instance config.\n if (this.audioState() !== \"running\") {\n this.container.style.visibility = \"hidden\";\n await new Promise((resolve) => {\n window.setTimeout(() => {\n resolve();\n }, 200);\n });\n this.container.style.visibility = \"\";\n }\n this.unmuteAudioContext();\n // On Android, the virtual keyboard needs to be dismissed as otherwise it re-focuses when clicking elsewhere\n if (navigator.userAgent.toLowerCase().includes(\"android\")) {\n this.container.addEventListener(\"click\", () => this.virtualKeyboard.blur());\n }\n // Treat invalid values as `AutoPlay.Auto`.\n if (!this.loadedConfig ||\n this.loadedConfig.autoplay === \"on\" /* AutoPlay.On */ ||\n (this.loadedConfig.autoplay !== \"off\" /* AutoPlay.Off */ &&\n this.audioState() === \"running\")) {\n this.play();\n if (this.audioState() !== \"running\") {\n // Treat invalid values as `UnmuteOverlay.Visible`.\n if (!this.loadedConfig ||\n this.loadedConfig.unmuteOverlay !== \"hidden\" /* UnmuteOverlay.Hidden */) {\n this.unmuteOverlay.style.display = \"block\";\n }\n this.container.addEventListener(\"click\", this.unmuteOverlayClicked.bind(this), {\n once: true,\n });\n const audioContext = (_a = this.instance) === null || _a === void 0 ? void 0 : _a.audio_context();\n if (audioContext) {\n audioContext.onstatechange = () => {\n if (audioContext.state === \"running\") {\n this.unmuteOverlayClicked();\n }\n audioContext.onstatechange = null;\n };\n }\n }\n }\n else {\n this.playButton.style.display = \"block\";\n }\n }\n /**\n * Uploads the splash screen progress bar.\n *\n * @param bytesLoaded The size of the Ruffle WebAssembly file downloaded so far.\n * @param bytesTotal The total size of the Ruffle WebAssembly file.\n */\n onRuffleDownloadProgress(bytesLoaded, bytesTotal) {\n const loadBar = (this.splashScreen.querySelector(\".loadbar-inner\"));\n const outerLoadbar = (this.splashScreen.querySelector(\".loadbar\"));\n if (Number.isNaN(bytesTotal)) {\n if (outerLoadbar) {\n outerLoadbar.style.display = \"none\";\n }\n }\n else {\n loadBar.style.width = `${100.0 * (bytesLoaded / bytesTotal)}%`;\n }\n }\n /**\n * Destroys the currently running instance of Ruffle.\n */\n destroy() {\n if (this.instance) {\n this.instance.destroy();\n this.instance = null;\n this._metadata = null;\n this._readyState = 0 /* ReadyState.HaveNothing */;\n console.log(\"Ruffle instance destroyed.\");\n }\n }\n checkOptions(options) {\n if (typeof options === \"string\") {\n return { url: options };\n }\n const check = (condition, message) => {\n if (!condition) {\n const error = new TypeError(message);\n error.ruffleIndexError = 4 /* PanicError.JavascriptConfiguration */;\n this.panic(error);\n throw error;\n }\n };\n check(options !== null && typeof options === \"object\", \"Argument 0 must be a string or object\");\n check(\"url\" in options || \"data\" in options, \"Argument 0 must contain a `url` or `data` key\");\n check(!(\"url\" in options) || typeof options.url === \"string\", \"`url` must be a string\");\n return options;\n }\n /**\n * Gets the configuration set by the Ruffle extension\n *\n * @returns The configuration set by the Ruffle extension\n */\n getExtensionConfig() {\n var _a;\n return window.RufflePlayer &&\n window.RufflePlayer.conflict &&\n (window.RufflePlayer.conflict[\"newestName\"] === \"extension\" ||\n window.RufflePlayer[\"newestName\"] === \"extension\")\n ? (_a = window.RufflePlayer) === null || _a === void 0 ? void 0 : _a.conflict[\"config\"]\n : {};\n }\n /**\n * Loads a specified movie into this player.\n *\n * This will replace any existing movie that may be playing.\n *\n * @param options One of the following:\n * - A URL, passed as a string, which will load a URL with default options.\n * - A [[URLLoadOptions]] object, to load a URL with options.\n * - A [[DataLoadOptions]] object, to load data with options.\n *\n * The options will be defaulted by the [[config]] field, which itself\n * is defaulted by a global `window.RufflePlayer.config`.\n */\n async load(options) {\n var _a, _b;\n options = this.checkOptions(options);\n if (!this.isConnected || this.isUnusedFallbackObject()) {\n console.warn(\"Ignoring attempt to play a disconnected or suspended Ruffle element\");\n return;\n }\n if (isFallbackElement(this)) {\n // Silently fail on attempt to play a Ruffle element inside a specific node.\n return;\n }\n try {\n const extensionConfig = this.getExtensionConfig();\n this.loadedConfig = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, DEFAULT_CONFIG), extensionConfig), ((_b = (_a = window.RufflePlayer) === null || _a === void 0 ? void 0 : _a.config) !== null && _b !== void 0 ? _b : {})), this.config), options);\n // `allowScriptAccess` can only be set in `options`.\n this.loadedConfig.allowScriptAccess =\n options.allowScriptAccess === true;\n // Pre-emptively set background color of container while Ruffle/SWF loads.\n if (this.loadedConfig.backgroundColor &&\n this.loadedConfig.wmode !== \"transparent\" /* WindowMode.Transparent */) {\n this.container.style.backgroundColor =\n this.loadedConfig.backgroundColor;\n }\n await this.ensureFreshInstance();\n if (\"url\" in options) {\n console.log(`Loading SWF file ${options.url}`);\n this.swfUrl = new URL(options.url, document.baseURI);\n const parameters = Object.assign(Object.assign({}, sanitizeParameters(options.url.substring(options.url.indexOf(\"?\")))), sanitizeParameters(options.parameters));\n this.instance.stream_from(this.swfUrl.href, parameters);\n }\n else if (\"data\" in options) {\n console.log(\"Loading SWF data\");\n this.instance.load_data(new Uint8Array(options.data), sanitizeParameters(options.parameters), options.swfFileName || \"movie.swf\");\n }\n }\n catch (e) {\n console.error(`Serious error occurred loading SWF file: ${e}`);\n const err = new Error(e);\n if (err.message.includes(\"Error parsing config\")) {\n err.ruffleIndexError = 4 /* PanicError.JavascriptConfiguration */;\n }\n this.panic(err);\n throw err;\n }\n }\n /**\n * Plays or resumes the movie.\n */\n play() {\n if (this.instance) {\n this.instance.play();\n this.playButton.style.display = \"none\";\n }\n }\n /**\n * Whether this player is currently playing.\n *\n * @returns True if this player is playing, false if it's paused or hasn't started yet.\n */\n get isPlaying() {\n if (this.instance) {\n return this.instance.is_playing();\n }\n return false;\n }\n /**\n * Returns the master volume of the player.\n *\n * @returns The volume. 1.0 is 100% volume.\n */\n get volume() {\n if (this.instance) {\n return this.instance.volume();\n }\n return 1.0;\n }\n /**\n * Sets the master volume of the player.\n *\n * @param value The volume. 1.0 is 100% volume.\n */\n set volume(value) {\n if (this.instance) {\n this.instance.set_volume(value);\n }\n }\n /**\n * Checks if this player is allowed to be fullscreen by the browser.\n *\n * @returns True if you may call [[enterFullscreen]].\n */\n get fullscreenEnabled() {\n return !!(document.fullscreenEnabled || document.webkitFullscreenEnabled);\n }\n /**\n * Checks if this player is currently fullscreen inside the browser.\n *\n * @returns True if it is fullscreen.\n */\n get isFullscreen() {\n return ((document.fullscreenElement || document.webkitFullscreenElement) ===\n this);\n }\n /**\n * Exported function that requests the browser to change the fullscreen state if\n * it is allowed.\n *\n * @param isFull Whether to set to fullscreen or return to normal.\n */\n setFullscreen(isFull) {\n if (this.fullscreenEnabled) {\n if (isFull) {\n this.enterFullscreen();\n }\n else {\n this.exitFullscreen();\n }\n }\n }\n /**\n * Requests the browser to make this player fullscreen.\n *\n * This is not guaranteed to succeed, please check [[fullscreenEnabled]] first.\n */\n enterFullscreen() {\n const options = {\n navigationUI: \"hide\",\n };\n if (this.requestFullscreen) {\n this.requestFullscreen(options);\n }\n else if (this.webkitRequestFullscreen) {\n this.webkitRequestFullscreen(options);\n }\n else if (this.webkitRequestFullScreen) {\n this.webkitRequestFullScreen(options);\n }\n }\n /**\n * Requests the browser to no longer make this player fullscreen.\n */\n exitFullscreen() {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n }\n else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n }\n else if (document.webkitCancelFullScreen) {\n document.webkitCancelFullScreen();\n }\n }\n /**\n * Called when entering / leaving fullscreen.\n */\n fullScreenChange() {\n var _a;\n (_a = this.instance) === null || _a === void 0 ? void 0 : _a.set_fullscreen(this.isFullscreen);\n }\n /**\n * Prompt the user to download a file.\n *\n * @param blob The content to download.\n * @param name The name to give the file.\n */\n saveFile(blob, name) {\n const blobURL = URL.createObjectURL(blob);\n const link = document.createElement(\"a\");\n link.href = blobURL;\n link.style.display = \"none\";\n link.download = name;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(blobURL);\n }\n base64ToBlob(bytesBase64, mimeString) {\n const byteString = atob(bytesBase64);\n const ab = new ArrayBuffer(byteString.length);\n const ia = new Uint8Array(ab);\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n const blob = new Blob([ab], { type: mimeString });\n return blob;\n }\n /**\n * @returns If the string represent a base-64 encoded SOL file\n * Check if string is a base-64 encoded SOL file\n * @param solData The base-64 encoded SOL string\n */\n isB64SOL(solData) {\n try {\n const decodedData = atob(solData);\n return decodedData.slice(6, 10) === \"TCSO\";\n }\n catch (e) {\n return false;\n }\n }\n confirmReloadSave(solKey, b64SolData, replace) {\n if (this.isB64SOL(b64SolData)) {\n if (localStorage[solKey]) {\n if (!replace) {\n const confirmDelete = confirm(text(\"save-delete-prompt\"));\n if (!confirmDelete) {\n return;\n }\n }\n const swfPath = this.swfUrl ? this.swfUrl.pathname : \"\";\n const swfHost = this.swfUrl\n ? this.swfUrl.hostname\n : document.location.hostname;\n const savePath = solKey.split(\"/\").slice(1, -1).join(\"/\");\n if (swfPath.includes(savePath) && solKey.startsWith(swfHost)) {\n const confirmReload = confirm(text(\"save-reload-prompt\", {\n action: replace ? \"replace\" : \"delete\",\n }));\n if (confirmReload && this.loadedConfig) {\n this.destroy();\n replace\n ? localStorage.setItem(solKey, b64SolData)\n : localStorage.removeItem(solKey);\n this.load(this.loadedConfig);\n this.populateSaves();\n this.saveManager.classList.add(\"hidden\");\n }\n return;\n }\n replace\n ? localStorage.setItem(solKey, b64SolData)\n : localStorage.removeItem(solKey);\n this.populateSaves();\n this.saveManager.classList.add(\"hidden\");\n }\n }\n }\n /**\n * Replace save from SOL file.\n *\n * @param event The change event fired\n * @param solKey The localStorage save file key\n */\n replaceSOL(event, solKey) {\n const fileInput = event.target;\n const reader = new FileReader();\n reader.addEventListener(\"load\", () => {\n if (reader.result && typeof reader.result === \"string\") {\n const b64Regex = new RegExp(\"data:.*;base64,\");\n const b64SolData = reader.result.replace(b64Regex, \"\");\n this.confirmReloadSave(solKey, b64SolData, true);\n }\n });\n if (fileInput &&\n fileInput.files &&\n fileInput.files.length > 0 &&\n fileInput.files[0]) {\n reader.readAsDataURL(fileInput.files[0]);\n }\n }\n /**\n * Delete local save.\n *\n * @param key The key to remove from local storage\n */\n deleteSave(key) {\n const b64SolData = localStorage.getItem(key);\n if (b64SolData) {\n this.confirmReloadSave(key, b64SolData, false);\n }\n }\n /**\n * Puts the local save SOL file keys in a table.\n */\n populateSaves() {\n const saveTable = this.saveManager.querySelector(\"#local-saves\");\n if (!saveTable) {\n return;\n }\n try {\n if (localStorage === null) {\n return;\n }\n }\n catch (e) {\n return;\n }\n saveTable.textContent = \"\";\n Object.keys(localStorage).forEach((key) => {\n const solName = key.split(\"/\").pop();\n const solData = localStorage.getItem(key);\n if (solName && solData && this.isB64SOL(solData)) {\n const row = document.createElement(\"TR\");\n const keyCol = document.createElement(\"TD\");\n keyCol.textContent = solName;\n keyCol.title = key;\n const downloadCol = document.createElement(\"TD\");\n const downloadSpan = document.createElement(\"SPAN\");\n downloadSpan.textContent = text(\"save-download\");\n downloadSpan.className = \"save-option\";\n downloadSpan.addEventListener(\"click\", () => {\n const blob = this.base64ToBlob(solData, \"application/octet-stream\");\n this.saveFile(blob, solName + \".sol\");\n });\n downloadCol.appendChild(downloadSpan);\n const replaceCol = document.createElement(\"TD\");\n const replaceInput = (document.createElement(\"INPUT\"));\n replaceInput.type = \"file\";\n replaceInput.accept = \".sol\";\n replaceInput.className = \"replace-save\";\n replaceInput.id = \"replace-save-\" + key;\n const replaceLabel = (document.createElement(\"LABEL\"));\n replaceLabel.htmlFor = \"replace-save-\" + key;\n replaceLabel.textContent = text(\"save-replace\");\n replaceLabel.className = \"save-option\";\n replaceInput.addEventListener(\"change\", (event) => this.replaceSOL(event, key));\n replaceCol.appendChild(replaceInput);\n replaceCol.appendChild(replaceLabel);\n const deleteCol = document.createElement(\"TD\");\n const deleteSpan = document.createElement(\"SPAN\");\n deleteSpan.textContent = text(\"save-delete\");\n deleteSpan.className = \"save-option\";\n deleteSpan.addEventListener(\"click\", () => this.deleteSave(key));\n deleteCol.appendChild(deleteSpan);\n row.appendChild(keyCol);\n row.appendChild(downloadCol);\n row.appendChild(replaceCol);\n row.appendChild(deleteCol);\n saveTable.appendChild(row);\n }\n });\n }\n /**\n * Gets the local save information as SOL files and downloads them as a single ZIP file.\n */\n async backupSaves() {\n const zip = new JSZip();\n const duplicateNames = [];\n Object.keys(localStorage).forEach((key) => {\n let solName = String(key.split(\"/\").pop());\n const solData = localStorage.getItem(key);\n if (solData && this.isB64SOL(solData)) {\n const blob = this.base64ToBlob(solData, \"application/octet-stream\");\n const duplicate = duplicateNames.filter((value) => value === solName).length;\n duplicateNames.push(solName);\n if (duplicate > 0) {\n solName += ` (${duplicate + 1})`;\n }\n zip.file(solName + \".sol\", blob);\n }\n });\n const blob = await zip.generateAsync({ type: \"blob\" });\n this.saveFile(blob, \"saves.zip\");\n }\n /**\n * Opens the save manager.\n */\n openSaveManager() {\n this.saveManager.classList.remove(\"hidden\");\n }\n /**\n * Fetches the loaded SWF and downloads it.\n */\n async downloadSwf() {\n try {\n if (this.swfUrl) {\n console.log(\"Downloading SWF: \" + this.swfUrl);\n const response = await fetch(this.swfUrl.href);\n if (!response.ok) {\n console.error(\"SWF download failed\");\n return;\n }\n const blob = await response.blob();\n this.saveFile(blob, swfFileName(this.swfUrl));\n }\n else {\n console.error(\"SWF download failed\");\n }\n }\n catch (err) {\n console.error(\"SWF download failed\");\n }\n }\n virtualKeyboardInput() {\n const input = this.virtualKeyboard;\n const string = input.value;\n for (const char of string) {\n for (const eventType of [\"keydown\", \"keyup\"]) {\n this.dispatchEvent(new KeyboardEvent(eventType, {\n key: char,\n bubbles: true,\n }));\n }\n }\n input.value = \"\";\n }\n openVirtualKeyboard() {\n // On Android, the Rust code that opens the virtual keyboard triggers\n // before the TypeScript code that closes it, so delay opening it\n if (navigator.userAgent.toLowerCase().includes(\"android\")) {\n setTimeout(() => {\n this.virtualKeyboard.focus({ preventScroll: true });\n }, 100);\n }\n else {\n this.virtualKeyboard.focus({ preventScroll: true });\n }\n }\n isVirtualKeyboardFocused() {\n return this.shadow.activeElement === this.virtualKeyboard;\n }\n contextMenuItems(isTouch) {\n const CHECKMARK = String.fromCharCode(0x2713);\n const items = [];\n const addSeparator = () => {\n // Don't start with or duplicate separators.\n if (items.length > 0 && items[items.length - 1] !== null) {\n items.push(null);\n }\n };\n if (this.instance) {\n const customItems = this.instance.prepare_context_menu();\n customItems.forEach((item, index) => {\n if (item.separatorBefore) {\n addSeparator();\n }\n items.push({\n // TODO: better checkboxes\n text: item.caption + (item.checked ? ` (${CHECKMARK})` : ``),\n onClick: () => { var _a; return (_a = this.instance) === null || _a === void 0 ? void 0 : _a.run_context_menu_callback(index); },\n enabled: item.enabled,\n });\n });\n addSeparator();\n }\n if (this.fullscreenEnabled) {\n if (this.isFullscreen) {\n items.push({\n text: text(\"context-menu-exit-fullscreen\"),\n onClick: () => { var _a; return (_a = this.instance) === null || _a === void 0 ? void 0 : _a.set_fullscreen(false); },\n });\n }\n else {\n items.push({\n text: text(\"context-menu-enter-fullscreen\"),\n onClick: () => { var _a; return (_a = this.instance) === null || _a === void 0 ? void 0 : _a.set_fullscreen(true); },\n });\n }\n }\n if (this.instance &&\n this.swfUrl &&\n this.loadedConfig &&\n this.loadedConfig.showSwfDownload === true) {\n addSeparator();\n items.push({\n text: text(\"context-menu-download-swf\"),\n onClick: this.downloadSwf.bind(this),\n });\n }\n if (window.isSecureContext) {\n items.push({\n text: text(\"context-menu-copy-debug-info\"),\n onClick: () => navigator.clipboard.writeText(this.getPanicData()),\n });\n }\n this.populateSaves();\n const localSaveTable = this.saveManager.querySelector(\"#local-saves\");\n if (localSaveTable && localSaveTable.textContent !== \"\") {\n items.push({\n text: text(\"context-menu-open-save-manager\"),\n onClick: this.openSaveManager.bind(this),\n });\n }\n addSeparator();\n const extensionString = this.isExtension ? \"extension\" : \"\";\n items.push({\n text: text(\"context-menu-about-ruffle\", {\n flavor: extensionString,\n version: buildInfo.versionName,\n }),\n onClick() {\n window.open(RUFFLE_ORIGIN, \"_blank\");\n },\n });\n // Give option to disable context menu when touch support is being used\n // to avoid a long press triggering the context menu. (#1972)\n if (isTouch) {\n addSeparator();\n items.push({\n text: text(\"context-menu-hide\"),\n onClick: () => (this.contextMenuForceDisabled = true),\n });\n }\n return items;\n }\n pointerDown(event) {\n this.pointerDownPosition = new Point(event.pageX, event.pageY);\n this.pointerMoveMaxDistance = 0;\n this.startLongPressTimer();\n }\n clearLongPressTimer() {\n if (this.longPressTimer) {\n clearTimeout(this.longPressTimer);\n this.longPressTimer = null;\n }\n }\n startLongPressTimer() {\n const longPressTimeout = 800;\n this.clearLongPressTimer();\n this.longPressTimer = setTimeout(() => this.clearLongPressTimer(), longPressTimeout);\n }\n checkLongPressMovement(event) {\n if (this.pointerDownPosition !== null) {\n const currentPosition = new Point(event.pageX, event.pageY);\n const distance = this.pointerDownPosition.distanceTo(currentPosition);\n if (distance > this.pointerMoveMaxDistance) {\n this.pointerMoveMaxDistance = distance;\n }\n }\n }\n checkLongPress(event) {\n const maxAllowedDistance = 15;\n if (this.longPressTimer) {\n this.clearLongPressTimer();\n // The pointerType condition is to ensure right-click does not trigger\n // a context menu the wrong way the first time you right-click,\n // before contextMenuSupported is set.\n }\n else if (!this.contextMenuSupported &&\n event.pointerType !== \"mouse\" &&\n this.pointerMoveMaxDistance < maxAllowedDistance) {\n this.showContextMenu(event);\n }\n }\n showContextMenu(event) {\n var _a, _b, _c;\n event.preventDefault();\n if (event.type === \"contextmenu\") {\n this.contextMenuSupported = true;\n window.addEventListener(\"click\", this.hideContextMenu.bind(this), {\n once: true,\n });\n }\n else {\n window.addEventListener(\"pointerup\", this.hideContextMenu.bind(this), { once: true });\n event.stopPropagation();\n }\n const isTouch = event instanceof PointerEvent &&\n (event.pointerType === \"touch\" || event.pointerType === \"pen\");\n if ([false, \"off\" /* ContextMenu.Off */].includes((_b = (_a = this.loadedConfig) === null || _a === void 0 ? void 0 : _a.contextMenu) !== null && _b !== void 0 ? _b : \"on\" /* ContextMenu.On */) ||\n (isTouch &&\n ((_c = this.loadedConfig) === null || _c === void 0 ? void 0 : _c.contextMenu) ===\n \"rightClickOnly\" /* ContextMenu.RightClickOnly */) ||\n this.contextMenuForceDisabled) {\n return;\n }\n // Clear all context menu items.\n while (this.contextMenuElement.firstChild) {\n this.contextMenuElement.removeChild(this.contextMenuElement.firstChild);\n }\n // Populate context menu items.\n for (const item of this.contextMenuItems(isTouch)) {\n if (item === null) {\n const menuSeparator = document.createElement(\"li\");\n menuSeparator.className = \"menu_separator\";\n const hr = document.createElement(\"hr\");\n menuSeparator.appendChild(hr);\n this.contextMenuElement.appendChild(menuSeparator);\n }\n else {\n const { text, onClick, enabled } = item;\n const menuItem = document.createElement(\"li\");\n menuItem.className = \"menu_item\";\n menuItem.textContent = text;\n this.contextMenuElement.appendChild(menuItem);\n if (enabled !== false) {\n menuItem.addEventListener(this.contextMenuSupported ? \"click\" : \"pointerup\", onClick);\n }\n else {\n menuItem.classList.add(\"disabled\");\n }\n }\n }\n // Place a context menu in the top-left corner, so\n // its `clientWidth` and `clientHeight` are not clamped.\n this.contextMenuElement.style.left = \"0\";\n this.contextMenuElement.style.top = \"0\";\n this.contextMenuElement.style.display = \"block\";\n const rect = this.getBoundingClientRect();\n const x = event.clientX - rect.x;\n const y = event.clientY - rect.y;\n const maxX = rect.width - this.contextMenuElement.clientWidth - 1;\n const maxY = rect.height - this.contextMenuElement.clientHeight - 1;\n this.contextMenuElement.style.left =\n Math.floor(Math.min(x, maxX)) + \"px\";\n this.contextMenuElement.style.top =\n Math.floor(Math.min(y, maxY)) + \"px\";\n }\n hideContextMenu() {\n var _a;\n (_a = this.instance) === null || _a === void 0 ? void 0 : _a.clear_custom_menu_items();\n this.contextMenuElement.style.display = \"none\";\n }\n /**\n * Pauses this player.\n *\n * No more frames, scripts or sounds will be executed.\n * This movie will be considered inactive and will not wake up until resumed.\n */\n pause() {\n if (this.instance) {\n this.instance.pause();\n this.playButton.style.display = \"block\";\n }\n }\n audioState() {\n if (this.instance) {\n const audioContext = this.instance.audio_context();\n return (audioContext && audioContext.state) || \"running\";\n }\n return \"suspended\";\n }\n unmuteOverlayClicked() {\n if (this.instance) {\n if (this.audioState() !== \"running\") {\n const audioContext = this.instance.audio_context();\n if (audioContext) {\n audioContext.resume();\n }\n }\n this.unmuteOverlay.style.display = \"none\";\n }\n }\n /**\n * Plays a silent sound based on the AudioContext's sample rate.\n *\n * This is used to unmute audio on iOS and iPadOS when silent mode is enabled on the device (issue 1552).\n */\n unmuteAudioContext() {\n // No need to play the dummy sound again once audio is unmuted.\n if (isAudioContextUnmuted) {\n return;\n }\n // TODO: Use `navigator.userAgentData` to detect the platform when support improves?\n if (navigator.maxTouchPoints < 1) {\n isAudioContextUnmuted = true;\n return;\n }\n this.container.addEventListener(\"click\", () => {\n var _a;\n if (isAudioContextUnmuted) {\n return;\n }\n const audioContext = (_a = this.instance) === null || _a === void 0 ? void 0 : _a.audio_context();\n if (!audioContext) {\n return;\n }\n const audio = new Audio();\n audio.src = (() => {\n // Returns a seven samples long 8 bit mono WAVE file.\n // This is required to prevent the AudioContext from desyncing and crashing.\n const arrayBuffer = new ArrayBuffer(10);\n const dataView = new DataView(arrayBuffer);\n const sampleRate = audioContext.sampleRate;\n dataView.setUint32(0, sampleRate, true);\n dataView.setUint32(4, sampleRate, true);\n dataView.setUint16(8, 1, true);\n const missingCharacters = window\n .btoa(String.fromCharCode(...new Uint8Array(arrayBuffer)))\n .slice(0, 13);\n return `data:audio/wav;base64,UklGRisAAABXQVZFZm10IBAAAAABAAEA${missingCharacters}AgAZGF0YQcAAACAgICAgICAAAA=`;\n })();\n audio.load();\n audio\n .play()\n .then(() => {\n isAudioContextUnmuted = true;\n })\n .catch((err) => {\n console.warn(`Failed to play dummy sound: ${err}`);\n });\n }, { once: true });\n }\n /**\n * Copies attributes and children from another element to this player element.\n * Used by the polyfill elements, RuffleObject and RuffleEmbed.\n *\n * @param element The element to copy all attributes from.\n */\n copyElement(element) {\n if (element) {\n for (const attribute of element.attributes) {\n if (attribute.specified) {\n // Issue 468: Chrome \"Click to Active Flash\" box stomps on title attribute\n if (attribute.name === \"title\" &&\n attribute.value === \"Adobe Flash Player\") {\n continue;\n }\n try {\n this.setAttribute(attribute.name, attribute.value);\n }\n catch (err) {\n // The embed may have invalid attributes, so handle these gracefully.\n console.warn(`Unable to set attribute ${attribute.name} on Ruffle instance`);\n }\n }\n }\n for (const node of Array.from(element.children)) {\n this.appendChild(node);\n }\n }\n }\n /**\n * Converts a dimension attribute on an HTML embed/object element to a valid CSS dimension.\n * HTML element dimensions are unitless, but can also be percentages.\n * Add a 'px' unit unless the value is a percentage.\n * Returns null if this is not a valid dimension.\n *\n * @param attribute The attribute to convert\n *\n * @private\n */\n static htmlDimensionToCssDimension(attribute) {\n if (attribute) {\n const match = attribute.match(DIMENSION_REGEX);\n if (match) {\n let out = match[1];\n if (!match[3]) {\n // Unitless -- add px for CSS.\n out += \"px\";\n }\n return out;\n }\n }\n return null;\n }\n /**\n * When a movie presents a new callback through `ExternalInterface.addCallback`,\n * we are informed so that we can expose the method on any relevant DOM element.\n *\n * This should only be called by Ruffle itself and not by users.\n *\n * @param name The name of the callback that is now available.\n *\n * @internal\n * @ignore\n */\n onCallbackAvailable(name) {\n const instance = this.instance;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this[name] = (...args) => {\n return instance === null || instance === void 0 ? void 0 : instance.call_exposed_callback(name, args);\n };\n }\n /**\n * Sets a trace observer on this flash player.\n *\n * The observer will be called, as a function, for each message that the playing movie will \"trace\" (output).\n *\n * @param observer The observer that will be called for each trace.\n */\n set traceObserver(observer) {\n var _a;\n (_a = this.instance) === null || _a === void 0 ? void 0 : _a.set_trace_observer(observer);\n }\n /**\n * Get data included in any panic of this ruffle-player\n *\n * @returns A string containing all the data included in the panic.\n */\n getPanicData() {\n let result = \"\\n# Player Info\\n\";\n result += `Allows script access: ${this.loadedConfig ? this.loadedConfig.allowScriptAccess : false}\\n`;\n result += `${this.rendererDebugInfo}\\n`;\n result += this.debugPlayerInfo();\n result += \"\\n# Page Info\\n\";\n result += `Page URL: ${document.location.href}\\n`;\n if (this.swfUrl) {\n result += `SWF URL: ${this.swfUrl}\\n`;\n }\n result += \"\\n# Browser Info\\n\";\n result += `User Agent: ${window.navigator.userAgent}\\n`;\n result += `Platform: ${window.navigator.platform}\\n`;\n result += `Has touch support: ${window.navigator.maxTouchPoints > 0}\\n`;\n result += \"\\n# Ruffle Info\\n\";\n result += `Version: ${buildInfo.versionNumber}\\n`;\n result += `Name: ${buildInfo.versionName}\\n`;\n result += `Channel: ${buildInfo.versionChannel}\\n`;\n result += `Built: ${buildInfo.buildDate}\\n`;\n result += `Commit: ${buildInfo.commitHash}\\n`;\n result += `Is extension: ${this.isExtension}\\n`;\n result += \"\\n# Metadata\\n\";\n if (this.metadata) {\n for (const [key, value] of Object.entries(this.metadata)) {\n result += `${key}: ${value}\\n`;\n }\n }\n return result;\n }\n /**\n * Panics this specific player, forcefully destroying all resources and displays an error message to the user.\n *\n * This should be called when something went absolutely, incredibly and disastrously wrong and there is no chance\n * of recovery.\n *\n * Ruffle will attempt to isolate all damage to this specific player instance, but no guarantees can be made if there\n * was a core issue which triggered the panic. If Ruffle is unable to isolate the cause to a specific player, then\n * all players will panic and Ruffle will become \"poisoned\" - no more players will run on this page until it is\n * reloaded fresh.\n *\n * @param error The error, if any, that triggered this panic.\n */\n panic(error) {\n var _a;\n if (this.panicked) {\n // Only show the first major error, not any repeats - they aren't as important\n return;\n }\n this.panicked = true;\n this.hideSplashScreen();\n if (error instanceof Error &&\n (error.name === \"AbortError\" ||\n error.message.includes(\"AbortError\"))) {\n // Firefox: Don't display the panic screen if the user leaves the page while something is still loading\n return;\n }\n const errorIndex = (_a = error === null || error === void 0 ? void 0 : error.ruffleIndexError) !== null && _a !== void 0 ? _a : 0 /* PanicError.Unknown */;\n const errorArray = Object.assign([], {\n stackIndex: -1,\n avmStackIndex: -1,\n });\n errorArray.push(\"# Error Info\\n\");\n if (error instanceof Error) {\n errorArray.push(`Error name: ${error.name}\\n`);\n errorArray.push(`Error message: ${error.message}\\n`);\n if (error.stack) {\n const stackIndex = errorArray.push(`Error stack:\\n\\`\\`\\`\\n${error.stack}\\n\\`\\`\\`\\n`) - 1;\n if (error.avmStack) {\n const avmStackIndex = errorArray.push(`AVM2 stack:\\n\\`\\`\\`\\n ${error.avmStack\n .trim()\n .replace(/\\t/g, \" \")}\\n\\`\\`\\`\\n`) - 1;\n errorArray.avmStackIndex = avmStackIndex;\n }\n errorArray.stackIndex = stackIndex;\n }\n }\n else {\n errorArray.push(`Error: ${error}\\n`);\n }\n errorArray.push(this.getPanicData());\n const errorText = errorArray.join(\"\");\n const buildDate = new Date(buildInfo.buildDate);\n const monthsPrior = new Date();\n monthsPrior.setMonth(monthsPrior.getMonth() - 6); // 6 months prior\n const isBuildOutdated = monthsPrior > buildDate;\n // Create a link to GitHub with all of the error data, if the build is not outdated.\n // Otherwise, create a link to the downloads section on the Ruffle website.\n let actionTag;\n if (!isBuildOutdated) {\n // Remove query params for the issue title.\n const pageUrl = document.location.href.split(/[?#]/)[0];\n const issueTitle = `Error on ${pageUrl}`;\n let issueLink = `https://github.com/ruffle-rs/ruffle/issues/new?title=${encodeURIComponent(issueTitle)}&template=error_report.md&labels=error-report&body=`;\n let issueBody = encodeURIComponent(errorText);\n if (errorArray.stackIndex > -1 &&\n String(issueLink + issueBody).length > 8195) {\n // Strip the stack error from the array when the produced URL is way too long.\n // This should prevent \"414 Request-URI Too Large\" errors on GitHub.\n errorArray[errorArray.stackIndex] = null;\n if (errorArray.avmStackIndex > -1) {\n errorArray[errorArray.avmStackIndex] = null;\n }\n issueBody = encodeURIComponent(errorArray.join(\"\"));\n }\n issueLink += issueBody;\n actionTag = `${text(\"report-bug\")}`;\n }\n else {\n actionTag = `${text(\"update-ruffle\")}`;\n }\n // Clears out any existing content (ie play button or canvas) and replaces it with the error screen\n let errorBody, errorFooter;\n switch (errorIndex) {\n case 2 /* PanicError.FileProtocol */:\n // General error: Running on the `file:` protocol\n errorBody = textAsParagraphs(\"error-file-protocol\");\n errorFooter = `\n
  • ${text(\"ruffle-demo\")}
  • \n
  • ${text(\"ruffle-desktop\")}
  • \n `;\n break;\n case 4 /* PanicError.JavascriptConfiguration */:\n // General error: Incorrect JavaScript configuration\n errorBody = textAsParagraphs(\"error-javascript-config\");\n errorFooter = `\n
  • ${text(\"ruffle-wiki\")}
  • \n
  • ${text(\"view-error-details\")}
  • \n `;\n break;\n case 9 /* PanicError.WasmNotFound */:\n // Self hosted: Cannot load `.wasm` file - file not found\n errorBody = textAsParagraphs(\"error-wasm-not-found\");\n errorFooter = `\n
  • ${text(\"ruffle-wiki\")}
  • \n
  • ${text(\"view-error-details\")}
  • \n `;\n break;\n case 8 /* PanicError.WasmMimeType */:\n // Self hosted: Cannot load `.wasm` file - incorrect MIME type\n errorBody = textAsParagraphs(\"error-wasm-mime-type\");\n errorFooter = `\n
  • ${text(\"ruffle-wiki\")}
  • \n
  • ${text(\"view-error-details\")}
  • \n `;\n break;\n case 11 /* PanicError.SwfFetchError */:\n errorBody = textAsParagraphs(\"error-swf-fetch\");\n errorFooter = `\n
  • ${text(\"view-error-details\")}
  • \n `;\n break;\n case 12 /* PanicError.SwfCors */:\n // Self hosted: Cannot load SWF file - CORS issues\n errorBody = textAsParagraphs(\"error-swf-cors\");\n errorFooter = `\n
  • ${text(\"ruffle-wiki\")}
  • \n
  • ${text(\"view-error-details\")}
  • \n `;\n break;\n case 6 /* PanicError.WasmCors */:\n // Self hosted: Cannot load `.wasm` file - CORS issues\n errorBody = textAsParagraphs(\"error-wasm-cors\");\n errorFooter = `\n
  • ${text(\"ruffle-wiki\")}
  • \n
  • ${text(\"view-error-details\")}
  • \n `;\n break;\n case 3 /* PanicError.InvalidWasm */:\n // Self hosted: Cannot load `.wasm` file - incorrect configuration or missing files\n errorBody = textAsParagraphs(\"error-wasm-invalid\");\n errorFooter = `\n
  • ${text(\"ruffle-wiki\")}
  • \n
  • ${text(\"view-error-details\")}
  • \n `;\n break;\n case 7 /* PanicError.WasmDownload */:\n // Usually a transient network error or botched deployment\n errorBody = textAsParagraphs(\"error-wasm-download\");\n errorFooter = `\n
  • ${text(\"view-error-details\")}
  • \n `;\n break;\n case 10 /* PanicError.WasmDisabledMicrosoftEdge */:\n // Self hosted: User has disabled WebAssembly in Microsoft Edge through the\n // \"Enhance your Security on the web\" setting.\n errorBody = textAsParagraphs(\"error-wasm-disabled-on-edge\");\n errorFooter = `\n
  • ${text(\"more-info\")}
  • \n
  • ${text(\"view-error-details\")}
  • \n `;\n break;\n case 5 /* PanicError.JavascriptConflict */:\n // Self hosted: Cannot load `.wasm` file - a native object / function is overriden\n errorBody = textAsParagraphs(\"error-javascript-conflict\");\n if (isBuildOutdated) {\n errorBody += textAsParagraphs(\"error-javascript-conflict-outdated\", { buildDate: buildInfo.buildDate });\n }\n errorFooter = `\n
  • ${actionTag}
  • \n
  • ${text(\"view-error-details\")}
  • \n `;\n break;\n case 1 /* PanicError.CSPConflict */:\n // General error: Cannot load `.wasm` file - a native object / function is overriden\n errorBody = textAsParagraphs(\"error-csp-conflict\");\n errorFooter = `\n
  • ${text(\"ruffle-wiki\")}
  • \n
  • ${text(\"view-error-details\")}
  • \n `;\n break;\n default:\n // Unknown error\n errorBody = textAsParagraphs(\"error-unknown\", {\n buildDate: buildInfo.buildDate,\n outdated: String(isBuildOutdated),\n });\n errorFooter = `\n
  • ${actionTag}
  • \n
  • ${text(\"view-error-details\")}
  • \n `;\n break;\n }\n this.container.innerHTML = `\n
    \n
    ${text(\"panic-title\")}
    \n
    ${errorBody}
    \n
    \n
      ${errorFooter}
    \n
    \n
    \n `;\n const viewDetails = (this.container.querySelector(\"#panic-view-details\"));\n if (viewDetails) {\n viewDetails.onclick = () => {\n const panicBody = (this.container.querySelector(\"#panic-body\"));\n panicBody.classList.add(\"details\");\n const panicText = document.createElement(\"textarea\");\n panicText.readOnly = true;\n panicText.value = errorText;\n panicBody.replaceChildren(panicText);\n return false;\n };\n }\n // Do this last, just in case it causes any cascading issues.\n this.destroy();\n }\n displayRootMovieDownloadFailedMessage() {\n var _a;\n if (this.isExtension &&\n window.location.origin !== this.swfUrl.origin) {\n const url = new URL(this.swfUrl);\n if ((_a = this.loadedConfig) === null || _a === void 0 ? void 0 : _a.parameters) {\n const parameters = sanitizeParameters(this.loadedConfig.parameters);\n Object.entries(parameters).forEach(([key, value]) => {\n url.searchParams.set(key, value);\n });\n }\n this.hideSplashScreen();\n const div = document.createElement(\"div\");\n div.id = \"message_overlay\";\n div.innerHTML = `
    \n ${textAsParagraphs(\"message-cant-embed\")}\n \n
    `;\n this.container.prepend(div);\n }\n else {\n const error = new Error(\"Failed to fetch: \" + this.swfUrl);\n if (!this.swfUrl.protocol.includes(\"http\")) {\n error.ruffleIndexError = 2 /* PanicError.FileProtocol */;\n }\n else if (window.location.origin === this.swfUrl.origin) {\n error.ruffleIndexError = 11 /* PanicError.SwfFetchError */;\n }\n else {\n // This is a selfhosted build of Ruffle that tried to make a cross-origin request\n error.ruffleIndexError = 12 /* PanicError.SwfCors */;\n }\n this.panic(error);\n }\n }\n displayUnsupportedMessage() {\n const div = document.createElement(\"div\");\n div.id = \"message_overlay\";\n // TODO: Change link to https://ruffle.rs/faq or similar\n // TODO: Pause content until message is dismissed\n div.innerHTML = `
    \n ${textAsParagraphs(\"message-unsupported-avm2\")}\n
    \n ${text(\"more-info\")}\n \n
    \n
    `;\n this.container.prepend(div);\n const button = div.querySelector(\"#run-anyway-btn\");\n button.onclick = () => {\n div.parentNode.removeChild(div);\n };\n }\n /**\n * Show a dismissible message in front of the player.\n *\n * @param message The message shown to the user.\n */\n displayMessage(message) {\n const div = document.createElement(\"div\");\n div.id = \"message_overlay\";\n div.innerHTML = `
    \n

    ${message}

    \n
    \n \n
    \n
    `;\n this.container.prepend(div);\n (this.container.querySelector(\"#continue-btn\")).onclick = () => {\n div.parentNode.removeChild(div);\n };\n }\n debugPlayerInfo() {\n return \"\";\n }\n hideSplashScreen() {\n this.splashScreen.classList.add(\"hidden\");\n this.container.classList.remove(\"hidden\");\n }\n showSplashScreen() {\n this.splashScreen.classList.remove(\"hidden\");\n this.container.classList.add(\"hidden\");\n }\n setMetadata(metadata) {\n this._metadata = metadata;\n // TODO: Switch this to ReadyState.Loading when we have streaming support.\n this._readyState = 2 /* ReadyState.Loaded */;\n this.hideSplashScreen();\n this.dispatchEvent(new Event(RufflePlayer.LOADED_METADATA));\n // TODO: Move this to whatever function changes the ReadyState to Loaded when we have streaming support.\n this.dispatchEvent(new Event(RufflePlayer.LOADED_DATA));\n }\n setIsExtension(isExtension) {\n this.isExtension = isExtension;\n }\n}\n/**\n * Triggered when a movie metadata has been loaded (such as movie width and height).\n *\n * @event RufflePlayer#loadedmetadata\n */\nRufflePlayer.LOADED_METADATA = \"loadedmetadata\";\n/**\n * Triggered when a movie is fully loaded.\n *\n * @event RufflePlayer#loadeddata\n */\nRufflePlayer.LOADED_DATA = \"loadeddata\";\nexport { RufflePlayer };\n/**\n * Returns whether a SWF file can call JavaScript code in the surrounding HTML file.\n *\n * @param access The value of the `allowScriptAccess` attribute.\n * @param url The URL of the SWF file.\n * @returns True if script access is allowed.\n */\nexport function isScriptAccessAllowed(access, url) {\n if (!access) {\n access = \"sameDomain\";\n }\n switch (access.toLowerCase()) {\n case \"always\":\n return true;\n case \"never\":\n return false;\n case \"samedomain\":\n default:\n try {\n return (new URL(window.location.href).origin ===\n new URL(url, window.location.href).origin);\n }\n catch (_a) {\n return false;\n }\n }\n}\n/**\n * Returns whether a SWF file should show the built-in context menu items.\n *\n * @param menu The value of the `menu` attribute.\n * @returns True if the built-in context items should be shown.\n */\nexport function isBuiltInContextMenuVisible(menu) {\n if (menu === null || menu.toLowerCase() === \"true\") {\n return true;\n }\n return false;\n}\n/**\n * Returns whether the given filename is a Youtube Flash source.\n *\n * @param filename The filename to test.\n * @returns True if the filename is a Youtube Flash source.\n */\nexport function isYoutubeFlashSource(filename) {\n if (filename) {\n let pathname = \"\";\n let cleaned_hostname = \"\";\n try {\n // A base URL is required if `filename` is a relative URL, but we don't need to detect the real URL origin.\n const url = new URL(filename, RUFFLE_ORIGIN);\n pathname = url.pathname;\n cleaned_hostname = url.hostname.replace(\"www.\", \"\");\n }\n catch (err) {\n // Some invalid filenames, like `///`, could raise a TypeError. Let's fail silently in this situation.\n }\n // See https://wiki.mozilla.org/QA/Youtube_Embedded_Rewrite\n if (pathname.startsWith(\"/v/\") &&\n (cleaned_hostname === \"youtube.com\" ||\n cleaned_hostname === \"youtube-nocookie.com\")) {\n return true;\n }\n }\n return false;\n}\n/**\n * Workaround Youtube mixed content if upgradeToHttps is true.\n *\n * @param elem The element to change.\n * @param attr The attribute to adjust.\n */\nexport function workaroundYoutubeMixedContent(elem, attr) {\n var _a, _b;\n const elem_attr = elem.getAttribute(attr);\n const window_config = (_b = (_a = window.RufflePlayer) === null || _a === void 0 ? void 0 : _a.config) !== null && _b !== void 0 ? _b : {};\n if (elem_attr) {\n try {\n const url = new URL(elem_attr);\n if (url.protocol === \"http:\" &&\n window.location.protocol === \"https:\" &&\n (!(\"upgradeToHttps\" in window_config) ||\n window_config.upgradeToHttps !== false)) {\n url.protocol = \"https:\";\n elem.setAttribute(attr, url.toString());\n }\n }\n catch (err) {\n // Some invalid filenames, like `///`, could raise a TypeError. Let's fail silently in this situation.\n }\n }\n}\n/**\n * Determine if an element is a child of a node that was not supported\n * in non-HTML5 compliant browsers. If so, the element was meant to be\n * used as a fallback content.\n *\n * @param elem The element to test.\n * @returns True if the element is inside an