Lucas Kent e39465ad2f Changes to be committed:
new file:   Files/flashplayer_32_sa.exe
	new file:   favicon.ico
	new file:   globe.gif
	new file:   imgs/download.png
	new file:   imgs/zuck.jpg
	new file:   index.html
	new file:   other.ico
	new file:   script.js
	new file:   site.webmanifest
	new file:   sitemap.html
	new file:   styles/backround.css
	new file:   styles/border.css
	new file:   styles/fonts/Titillium_Web/OFL.txt
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Black.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Bold.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-BoldItalic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-ExtraLight.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-ExtraLightItalic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Italic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Light.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-LightItalic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Regular.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-SemiBold.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-SemiBoldItalic.ttf
	new file:   styles/fonts/webfontkit-20221027-163353/generator_config.txt
	new file:   styles/fonts/webfontkit-20221027-163353/specimen_files/grid_12-825-55-15.css
	new file:   styles/fonts/webfontkit-20221027-163353/specimen_files/specimen_stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-163353/stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-demo.html
	new file:   styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff
	new file:   styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff2
	new file:   styles/fonts/webfontkit-20221027-165950/generator_config.txt
	new file:   styles/fonts/webfontkit-20221027-165950/specimen_files/grid_12-825-55-15.css
	new file:   styles/fonts/webfontkit-20221027-165950/specimen_files/specimen_stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-165950/stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-demo.html
	new file:   styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff
	new file:   styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff2
	new file:   styles/style.css
	new file:   tools/2048/.gitignore
	new file:   tools/2048/.jshintrc
	new file:   tools/2048/CONTRIBUTING.md
	new file:   tools/2048/LICENSE.txt
	new file:   tools/2048/README.md
	new file:   tools/2048/Rakefile
	new file:   tools/2048/favicon.ico
	new file:   tools/2048/index.html
	new file:   tools/2048/js/animframe_polyfill.js
	new file:   tools/2048/js/application.js
	new file:   tools/2048/js/bind_polyfill.js
	new file:   tools/2048/js/classlist_polyfill.js
	new file:   tools/2048/js/game_manager.js
	new file:   tools/2048/js/grid.js
	new file:   tools/2048/js/html_actuator.js
	new file:   tools/2048/js/keyboard_input_manager.js
	new file:   tools/2048/js/local_storage_manager.js
	new file:   tools/2048/js/tile.js
    new file:   tools/2048/meta/apple-touch-icon.png
	new file:   tools/webretro/cores/neocd_libretro.js
	new file:   tools/webretro/cores/neocd_libretro.wasm
	new file:   tools/webretro/cores/nestopia_libretro.js
	new file:   tools/webretro/cores/nestopia_libretro.wasm
	new file:   tools/webretro/cores/o2em_libretro.js
	new file:   tools/webretro/cores/o2em_libretro.wasm
	new file:   tools/webretro/cores/opera_libretro.js
	new file:   tools/webretro/cores/opera_libretro.wasm
2022-11-02 08:40:01 -04:00

1 line
65 KiB
JavaScript

"use strict";window.g_aNi=class{constructor(e,a){this.g_aog=e,this.g_aNj=a,this.g_aNk=!1,this.g_anl=()=>this.g_Jj()}g_aNl(){}g_aNm(e,a,g,_){this.g_aog.g_aNn(this.g_aNj,e,a,g,_)}g_aNo(e,a,g,_){return this.g_aog.g_aNp(this.g_aNj,e,a,g,_)}g_aNq(e,a,g){this.g_aog.g_aNr()?this.g_aNm(e,a,g):this.g_aog.g_aNs()._OnMessageFromDOM({type:"event",component:this.g_aNj,handler:e,dispatchOpts:g||null,data:a,responseId:null})}g_aNt(e,a){this.g_aog.g_aNu(this.g_aNj,e,a)}g_aNv(e){for(const[a,g]of e)this.g_aNt(a,g)}g_aNw(){return this.g_aog}g_aNx(){return this.g_aNj}g_abF(){this.g_aNk||(this.g_aog.g_aNy(this.g_anl),this.g_aNk=!0)}g_abq(){this.g_aNk&&(this.g_aog.g_aNz(this.g_anl),this.g_aNk=!1)}g_Jj(){}},"use strict",window.g_aNA=class extends g_aNi{constructor(e,a){super(e,a),this.g_aNB=new Map,this.g_aNC=!0,this.g_aNt("create",e=>this.g_aND(e)),this.g_aNt("destroy",e=>this.g_aNE(e)),this.g_aNt("set-visible",e=>this.g_aNF(e)),this.g_aNt("update-position",e=>this.g_aNG(e)),this.g_aNt("update-state",e=>this.g_aDS(e)),this.g_aNt("focus",e=>this.g_aNH(e)),this.g_aNt("set-css-style",e=>this.g_aNI(e))}g_aNJ(e){this.g_aNC=!!e}g_aNK(e,g){this.g_aNt(e,e=>{const a=e.elementId,_=this.g_aNB.get(a);return g(_,e)})}g_aND(e){const a=e.elementId,g=this.g_acd(a,e);this.g_aNB.set(a,g),e.isVisible||(g.style.display="none"),this.g_aNC&&document.body.appendChild(g)}g_acd(){throw new Error("required override")}g_aNL(){}g_aNE(e){const a=e.elementId,g=this.g_aNB.get(a);this.g_aNL(g),this.g_aNC&&g.parentElement.removeChild(g),this.g_aNB.delete(a)}g_aNM(e,a,g){g||(g={}),g.elementId=a,this.g_aNm(e,g)}g_aNN(e,a,g){g||(g={}),g.elementId=a,this.g_aNq(e,g)}g_aNF(e){if(this.g_aNC){const a=this.g_aNB.get(e.elementId);a.style.display=e.isVisible?"":"none"}}g_aNG(e){if(this.g_aNC){const a=this.g_aNB.get(e.elementId);a.style.left=e.left+"px",a.style.top=e.top+"px",a.style.width=e.width+"px",a.style.height=e.height+"px";const g=e.fontSize;null!==g&&(a.style.fontSize=g+"em")}}g_aDS(e){const a=this.g_aNB.get(e.elementId);this.g_aNO(a,e)}g_aNO(){throw new Error("required override")}g_aNH(e){const a=this.g_aNB.get(e.elementId);e.focus?a.focus():a.blur()}g_aNI(e){const a=this.g_aNB.get(e.elementId);a.style[e.prop]=e.val}g_aNP(e){return this.g_aNB.get(e)}},"use strict";{function _(e){return new Promise((a,g)=>{const _=document.createElement("script");_.onload=a,_.onerror=g,_.async=!1,_.src=e,document.head.appendChild(_)})}async function t(e){const a=await n(e),g=new TextDecoder("utf-8");return g.decode(a)}function n(e){return new Promise((g,_)=>{const a=new FileReader;a.onload=e=>g(e.target.result),a.onerror=e=>_(e),a.readAsArrayBuffer(e)})}const a=/(iphone|ipod|ipad)/i.test(navigator.userAgent);let o=new Audio;const r={"audio/webm; codecs=opus":!!o.canPlayType("audio/webm; codecs=opus"),"audio/ogg; codecs=opus":!!o.canPlayType("audio/ogg; codecs=opus"),"audio/webm; codecs=vorbis":!!o.canPlayType("audio/webm; codecs=vorbis"),"audio/ogg; codecs=vorbis":!!o.canPlayType("audio/ogg; codecs=vorbis"),"audio/mp4":!!o.canPlayType("audio/mp4"),"audio/mpeg":!!o.canPlayType("audio/mpeg")};o=null;const e=[];let g=0;window.RealFile=window.File;const s=[],i=new Map,u=new Map;let p=0;const l=[];self.g_aNQ=function(e){if("function"!=typeof e)throw new Error("runOnStartup called without a function");l.push(e)},window.g_aNR=class o{constructor(e){this.g_aNS=e.g_aNT,this.g_aNU=null,this.g_amk="",this.g_aNV=e.g_aNW,this.g_aNX={},this.g_aNY=null,this.g_aNZ=null,this.g_aN_=[],this.g_aN$=null,this.g_akl=null,this.g_aoa=null,this.g_akU=-1,this.g_aOa=()=>this.g_aOb(),this.g_aOc=[],this.g_amp=e.g_aOd,"cordova"===this.g_amp&&this.g_aNS&&(console.warn("[C3 runtime] Worker mode is enabled and supported, but is disabled in Cordova due to crbug.com/939775. Reverting to DOM mode."),this.g_aNS=!1),/CrOS/.test(navigator.userAgent)&&(console.warn("[C3 runtime] Worker mode is enabled and supported, but is disabled in Chrome OS due to reports of crashes. Reverting to DOM mode."),this.g_aNS=!1),this.g_aOe=!1,this.g_aOf=null,("html5"===this.g_amp||"playable-ad"===this.g_amp)&&"file"===location.protocol.substr(0,4)&&alert("Exported games won't work until you upload them. (When running on the file: protocol, browsers block many features from working for security reasons.)"),this.g_aNu("runtime","cordova-fetch-local-file",e=>this.g_aOg(e)),this.g_aNu("runtime","create-job-worker",e=>this.g_aOh(e)),"cordova"===this.g_amp?document.addEventListener("deviceready",()=>this.g_aat(e)):this.g_aat(e)}g_em(){this.g_aOi(),this.g_aNU&&(this.g_aNU.onmessage=null,this.g_aNU=null),this.g_aNY&&(this.g_aNY.terminate(),this.g_aNY=null),this.g_aNZ&&(this.g_aNZ.g_em(),this.g_aNZ=null),this.g_akl&&(this.g_akl.parentElement.removeChild(this.g_akl),this.g_akl=null)}g_aOj(){return this.g_akl}g_fg(){return this.g_amk}g_aNr(){return this.g_aNS}g_apG(){return this.g_amp}g_aoy(){return"cordova"===this.g_amp&&a}g_aOk(){return"cordova"===this.g_amp&&!1===a}async g_aat(e){if("playable-ad"===this.g_amp){this.g_aOf=self.c3_base64files,await this.g_aOl();for(let a=0,g=e.g_aOm.length;a<g;++a){const g=e.g_aOm[a].toLowerCase();this.g_aOf.hasOwnProperty(g)&&(e.g_aOm[a]=URL.createObjectURL(this.g_aOf[g]))}}if(e.g_aOn)this.g_amk=e.g_aOn;else{const e=location.origin;this.g_amk=("null"===e?"file:///":e)+location.pathname;const a=this.g_amk.lastIndexOf("../../../index.html");-1!==a&&(this.g_amk=this.g_amk.substr(0,a+1))}if(e.g_aOo)for(const[a,g]of Object.entries(e.g_aOo))this.g_aNX[a]=URL.createObjectURL(g);const a=new MessageChannel;this.g_aNU=a.port1,this.g_aNU.onmessage=e=>this._OnMessageFromRuntime(e.data),window.c3_addPortMessageHandler&&window.c3_addPortMessageHandler(e=>this.g_aOp(e)),this.g_aoa=new self.g_aOq(this),await this.g_aoa.g_ahs(),this.g_aOr(),"object"==typeof window.StatusBar&&window.StatusBar.hide(),"object"==typeof window.AndroidFullScreen&&window.AndroidFullScreen.immersiveMode(),await this.g_aOs(),this.g_aNS?await this.g_aOt(e,a.port2):await this.g_aOu(e,a.port2)}g_aOv(e){return this.g_aNX.hasOwnProperty(e)?this.g_aNX[e]:e.endsWith("../../../workermain.html")&&this.g_aNX.hasOwnProperty("workermain.html")?this.g_aNX["workermain.js"]:"playable-ad"===this.g_amp&&this.g_aOf.hasOwnProperty(e.toLowerCase())?URL.createObjectURL(this.g_aOf[e.toLowerCase()]):e}async g_aOw(g,a,_){if(g.startsWith("blob:"))return new Worker(g,_);if(this.g_aoy()){const a=await this.g_As(this.g_aNV+g),e=new Blob([a],{type:"application/javascript"});return new Worker(URL.createObjectURL(e),_)}const t=new URL(g%2ca.html),n=location.origin!==t.origin;if(n){const e=await fetch(t);if(!e.ok)throw new Error("failed to fetch worker script");const a=await e.blob();return new Worker(URL.createObjectURL(a),_)}return new Worker(t,_)}g_aOr(){if(this.g_aoy()){const g=document.documentElement.style,a=document.body.style,_=window.innerWidth<window.innerHeight,t=_?window.screen.width:window.screen.height,n=_?window.screen.height:window.screen.width;a.height=g.height=n+"px",a.width=g.width=t+"px"}}g_aOx(e){return{baseUrl:this.g_amk,windowInnerWidth:window.innerWidth,windowInnerHeight:window.innerHeight,devicePixelRatio:window.devicePixelRatio,isFullscreen:o.g_alw(),projectData:e.g_aOy,previewImageBlobs:window.cr_previewImageBlobs||this.g_aOf,previewProjectFileBlobs:window.cr_previewProjectFileBlobs,exportType:e.g_aOd,isDebug:-1<self.location.search.indexOf("debug"),ife:!!self.g_aOz,jobScheduler:this.g_aoa.g_aOA(),supportedAudioFormats:r,opusWasmScriptUrl:window.cr_opusWasmScriptUrl||this.g_aNV+"opus.wasm.js",opusWasmBinaryUrl:window.cr_opusWasmBinaryUrl||this.g_aNV+"opus.wasm.wasm",isWKWebView:this.g_aoy(),isFBInstantAvailable:"undefined"!=typeof self.FBInstant}}async g_aOt(e,a){const g=this.g_aOv(e.g_aOB);this.g_aNY=await this.g_aOw(g,this.g_amk,{name:"Runtime"}),this.g_akl=document.createElement("canvas"),this.g_akl.style.display="none";const _=this.g_akl.transferControlToOffscreen();document.body.appendChild(this.g_akl),window.c3canvas=this.g_akl,this.g_aNY.postMessage(Object.assign(this.g_aOx(e),{type:"init-runtime",isInWorker:!0,messagePort:a,canvas:_,workerDependencyScripts:e.g_aOC||[],engineScripts:e.g_aOm,projectScripts:window.g_aOD,projectScriptsStatus:self.C3_ProjectScriptsStatus}),[a,_,...this.g_aoa.g_aOE()]),this.g_aN_=s.map(e=>new e(this)),this.g_aOF(),self.c3_callFunction=(e,a)=>this.g_aN$.g_SY(e,a),"preview"===this.g_amp&&(self.goToLastErrorScript=()=>this.g_aNn("runtime","go-to-last-error-script"))}async g_aOu(a,g){this.g_akl=document.createElement("canvas"),this.g_akl.style.display="none",document.body.appendChild(this.g_akl),window.c3canvas=this.g_akl,this.g_aN_=s.map(e=>new e(this)),this.g_aOF();const t=a.g_aOm.map(e=>new URL(e%2cthis.html).toString());if(Array.isArray(a.g_aOC)&&t.unshift(...a.g_aOC),await Promise.all(t.map(a=>_(a))),a.g_aOG&&0<a.g_aOG.length){const e=self.C3_ProjectScriptsStatus;try{if(await Promise.all(a.g_aOG.map(a=>_(a[1]))),Object.values(e).some(e=>!e))return void self.setTimeout(()=>this.g_aOH(e),100)}catch(g){return console.error("[Preview] Error loading project scripts: ",g),void self.setTimeout(()=>this.g_aOH(e),100)}}if("preview"===this.g_amp&&"object"!=typeof self.g_aQ.g_aNh)return console.error("[C3 runtime] Failed to load JavaScript code used in events. Check all your JavaScript code has valid syntax."),void alert("Failed to load JavaScript code used in events. Check all your JavaScript code has valid syntax.");const n=Object.assign(this.g_aOx(a),{isInWorker:!1,messagePort:g,canvas:this.g_akl,runOnStartupFunctions:l});this.g_aNZ=self.C3_CreateRuntime(n),await self.C3_InitRuntime(this.g_aNZ,n)}g_aOH(e){const a=Object.entries(e).filter(e=>!e[1]).map(e=>e[0]),g=`Failed to load project script '${a[0]}'. Check all your JavaScript code has valid syntax.`;console.error("[Preview] "+g),alert(g)}async g_aOh(){const e=await this.g_aoa.g_aOI();return{outputPort:e,transferables:[e]}}g_aNs(){if(this.g_aNS)throw new Error("not available in worker mode");return this.g_aNZ}g_aNn(g,a,_,t,n){this.g_aNU.postMessage({type:"event",component:g,handler:a,dispatchOpts:t||null,data:_,responseId:null},this.g_aOe?void 0:n)}g_aNp(_,a,t,n,i){const e=p++,o=new Promise((g,a)=>{u.set(e,{resolve:g,reject:a})});return this.g_aNU.postMessage({type:"event",component:_,handler:a,dispatchOpts:n||null,data:t,responseId:e},this.g_aOe?void 0:i),o}["_OnMessageFromRuntime"](e){const a=e.type;if("event"===a)this.g_aOJ(e);else if("result"===a)this.g_aOK(e);else if("runtime-ready"===a)this.g_aOL();else if("alert"===a)alert(e.message);else throw new Error(`unknown message '${a}'`)}g_aOJ(_){const t=_.component,n=_.handler,a=_.data,o=_.responseId,e=i.get(t);if(!e)return void console.warn(`[DOM] No event handlers for component '${t}'`);const r=e.get(n);if(!r)return void console.warn(`[DOM] No handler '${n}' for component '${t}'`);let g=null;try{g=r(a)}catch(e){return console.error(`Exception in '${t}' handler '${n}':`,e),void(null!==o&&this.g_aOM(o,!1,e.toString()))}null!==o&&(g&&g.then?g.then(e=>this.g_aOM(o,!0,e)).catch(e=>{console.error(`Rejection from '${t}' handler '${n}':`,e),this.g_aOM(o,!1,e.toString())}):this.g_aOM(o,!0,g))}g_aOM(e,a,g){let _;g&&g.transferables&&(_=g.transferables),this.g_aNU.postMessage({type:"result",responseId:e,isOk:a,result:g},_)}g_aOK(g){const a=g.responseId,_=g.isOk,t=g.result,n=u.get(a);_?n.resolve(t):n.reject(t),u.delete(a)}g_aNu(e,a,g){let _=i.get(e);if(_||(_=new Map,i.set(e,_)),_.has(a))throw new Error(`[DOM] Component '${e}' already has handler '${a}'`);_.set(a,g)}static g_aON(e){if(s.includes(e))throw new Error("DOM handler already added");s.push(e)}g_aOF(){for(const e of this.g_aN_)if("runtime"===e.g_aNx())return void(this.g_aN$=e);throw new Error("cannot find runtime DOM handler")}g_aOp(e){this.g_aNn("debugger","message",e)}g_aOL(){for(const e of this.g_aN_)e.g_aNl()}static g_alw(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement)}async g_aOO(){return await this.g_aNp("runtime","get-remote-preview-status-info")}g_aNy(e){this.g_aOc.push(e),this.g_aOP()}g_aNz(e){const a=this.g_aOc.indexOf(e);if(-1===a)throw new Error("invalid callback");this.g_aOc.splice(a,1),this.g_aOc.length||this.g_aOi()}g_aOP(){-1===this.g_akU&&this.g_aOc.length&&(this.g_akU=requestAnimationFrame(this.g_aOa))}g_aOi(){-1!==this.g_akU&&(cancelAnimationFrame(this.g_akU),this.g_akU=-1)}g_aOb(){this.g_akU=-1;for(const e of this.g_aOc)e();this.g_aOP()}g_aOQ(e){this.g_aN$.g_aOQ(e)}g_aOR(e){this.g_aN$.g_aOR(e)}g_aOS(){this.g_aN$.g_aOS()}g_aEC(e){this.g_aN$.g_aEC(e)}g_AP(e){return!!r[e]}async g_adu(e){const a=await this.g_aNp("runtime","opus-decode",{arrayBuffer:e},null,[e]);return new Float32Array(a)}g_fS(e){return /^(?:[a-z]+:)?\/\//.test(e)||"data:"===e.substr(0,5)||"blob:"===e.substr(0,5)}g_fT(e){return!this.g_fS(e)}async g_aOg(e){const a=e.filename;switch(e.as){case"text":return await this.g_At(a);case"buffer":return await this.g_As(a);default:throw new Error("unsupported type");}}g_aOT(e){const g=window.cordova.file.applicationDirectory+"www/"+e.toLowerCase();return new Promise((e,a)=>{window.resolveLocalFileSystemURL(g,g=>{g.file(e,a)},a)})}async g_At(e){const a=await this.g_aOT(e);return await t(a)}g_aOU(){if(e.length&&!(8<=g)){g++;const _=e.shift();this.g_aOV(_.filename,_.g_aOW,_.g_aOX)}}g_As(_){return new Promise((t,n)=>{e.push({filename:_,g_aOW:e=>{g--,this.g_aOU(),t(e)},g_aOX:e=>{g--,this.g_aOU(),n(e)}}),this.g_aOU()})}async g_aOV(g,a,e){try{const _=await this.g_aOT(g),t=await n(_);a(t)}catch(g){e(g)}}async g_aOl(){const e=[];for(const[a,g]of Object.entries(this.g_aOf))e.push(this.g_aOY(a,g));await Promise.all(e)}async g_aOY(e,a){if("object"==typeof a)this.g_aOf[e]=new Blob([a.str],{type:a.type});else{const g=await fetch(a),_=await g.blob();this.g_aOf[e]=_}}g_aOs(){let e=null;const g=new Promise(a=>e=a),_=new ArrayBuffer(1),t=new MessageChannel;return t.port2.onmessage=a=>{a.data&&a.data.arrayBuffer||(this.g_aOe=!0,console.warn("MessageChannel transfers determined to be broken. Disabling transferables.")),e()},t.port1.postMessage({arrayBuffer:_},[_]),g}}}{function _(e){return e.sourceCapabilities&&e.sourceCapabilities.firesTouchEvents||e.originalEvent&&e.originalEvent.sourceCapabilities&&e.originalEvent.sourceCapabilities.firesTouchEvents}function t(e){return new Promise((a,g)=>{const _=document.createElement("link");_.onload=()=>a(_),_.onerror=e=>g(e),_.rel="stylesheet",_.href=e,document.head.appendChild(_)})}function a(e){return new Promise((a,g)=>{const _=new Image;_.onload=()=>a(_),_.onerror=e=>g(e),_.src=e})}async function r(e){const g=URL.createObjectURL(e);try{return await a(g)}finally{URL.revokeObjectURL(g)}}function s(e){do{if(e.parentNode&&e.hasAttribute("contenteditable"))return!0;e=e.parentNode}while(e);return!1}function d(e){const a=e.target.tagName.toLowerCase();l.has(a)&&e.preventDefault()}function e(e){(e.metaKey||e.ctrlKey)&&e.preventDefault()}function g(){try{return window.parent&&window.parent.document.hasFocus()}catch(e){return!1}}const u=new Map([["OSLeft","MetaLeft"],["OSRight","MetaRight"]]),i={dispatchRuntimeEvent:!0,dispatchUserScriptEvent:!0},p={dispatchUserScriptEvent:!0},c={dispatchRuntimeEvent:!0},l=new Set(["canvas","body","html"]);self.C3_RasterSvgImage=async function(g,a,_){const t=document.createElement("canvas");t.width=a,t.height=_;const n=t.getContext("2d");return n.drawImage(g,0,0,a,_),t};let T=!1;document.addEventListener("pause",()=>T=!0),document.addEventListener("resume",()=>T=!1);const n=class extends g_aNi{constructor(g){super(g,"runtime"),this.g_aOZ=!0,this.g_aO_=-1,this.g_aO$="any",this.g_aPa=!1,this.g_aPb=!1,this.g_aPc=null,g.g_aNu("canvas","update-size",e=>this.g_aPd(e)),g.g_aNu("runtime","invoke-download",e=>this.g_aPe(e)),g.g_aNu("runtime","raster-svg-image",e=>this.g_aPf(e)),g.g_aNu("runtime","set-target-orientation",e=>this.g_aPg(e)),g.g_aNu("runtime","register-sw",()=>this.g_aPh()),g.g_aNu("runtime","post-to-debugger",e=>this.g_aPi(e)),g.g_aNu("runtime","go-to-script",e=>this.g_aPi(e)),g.g_aNu("runtime","before-start-ticking",()=>this.g_aPj()),g.g_aNu("runtime","debug-highlight",e=>this.g_aPk(e)),g.g_aNu("runtime","enable-device-orientation",()=>this.g_aPl()),g.g_aNu("runtime","enable-device-motion",()=>this.g_aPm()),g.g_aNu("runtime","add-stylesheet",e=>this.g_aPn(e));const _=new Set(["input","textarea","datalist"]);window.addEventListener("contextmenu",e=>{const a=e.target,g=a.tagName.toLowerCase();_.has(g)||s(a)||e.preventDefault()}),window.addEventListener("selectstart",d),window.addEventListener("gesturehold",d),window.addEventListener("touchstart",d,{passive:!1});const a=g.g_aOj();"undefined"==typeof PointerEvent?a.addEventListener("touchstart",d):(window.addEventListener("pointerdown",d,{passive:!1}),a.addEventListener("pointerdown",d)),this.g_aPo=0,window.addEventListener("mousedown",e=>{1===e.button&&e.preventDefault()}),window.addEventListener("mousewheel",e,{passive:!1}),window.addEventListener("wheel",e,{passive:!1}),window.addEventListener("resize",()=>this.g_alj()),this.g_aPp=new Set,this.g_aPq=new WeakSet,this.g_aDK=!1}g_aPj(){return document.addEventListener("visibilitychange",()=>this.g_aoc(document.hidden)),document.addEventListener("pause",()=>this.g_aoc(!0)),document.addEventListener("resume",()=>this.g_aoc(!1)),{isSuspended:!!(document.hidden||T)}}g_aNl(){window.addEventListener("focus",()=>this.g_aPr("window-focus")),window.addEventListener("blur",()=>{this.g_aPr("window-blur",{parentHasFocus:g()}),this.g_aPo=0}),window.addEventListener("fullscreenchange",()=>this.g_alk()),window.addEventListener("webkitfullscreenchange",()=>this.g_alk()),window.addEventListener("mozfullscreenchange",()=>this.g_alk()),window.addEventListener("fullscreenerror",e=>this.g_all(e)),window.addEventListener("webkitfullscreenerror",e=>this.g_all(e)),window.addEventListener("mozfullscreenerror",e=>this.g_all(e)),window.addEventListener("keydown",e=>this.g_aPs("keydown",e)),window.addEventListener("keyup",e=>this.g_aPs("keyup",e)),window.addEventListener("dblclick",e=>this.g_aPt("dblclick",e,i)),window.addEventListener("wheel",e=>this.g_aPu("wheel",e)),"undefined"==typeof PointerEvent?(window.addEventListener("mousedown",e=>this.g_aPv("pointerdown",e)),window.addEventListener("mousemove",e=>this.g_aPv("pointermove",e)),window.addEventListener("mouseup",e=>this.g_aPv("pointerup",e)),window.addEventListener("touchstart",e=>this.g_aPw("pointerdown",e)),window.addEventListener("touchmove",e=>this.g_aPw("pointermove",e)),window.addEventListener("touchend",e=>this.g_aPw("pointerup",e)),window.addEventListener("touchcancel",e=>this.g_aPw("pointercancel",e))):(window.addEventListener("pointerdown",e=>this.g_aPx("pointerdown",e)),window.addEventListener("pointermove",e=>this.g_aPx("pointermove",e)),window.addEventListener("pointerup",e=>this.g_aPx("pointerup",e)),window.addEventListener("pointercancel",e=>this.g_aPx("pointercancel",e)));const e=()=>this.g_aOS();window.addEventListener("pointerup",e,!0),window.addEventListener("touchend",e,!0),window.addEventListener("click",e,!0),window.addEventListener("keydown",e,!0),window.addEventListener("gamepadconnected",e,!0)}g_aPr(e,a){this.g_aNm(e,a||null,c)}g_alj(){const e=window.innerWidth,a=window.innerHeight;this.g_aPr("window-resize",{innerWidth:e,innerHeight:a,devicePixelRatio:window.devicePixelRatio}),this.g_aog.g_aoy()&&(-1!==this.g_aO_&&clearTimeout(this.g_aO_),this.g_aPy(e,a,0))}g_aPz(e,a,g){-1!==this.g_aO_&&clearTimeout(this.g_aO_),this.g_aO_=setTimeout(()=>this.g_aPy(e,a,g),48)}g_aPy(g,a,_){const t=window.innerWidth,n=window.innerHeight;this.g_aO_=-1,t!=g||n!=a?this.g_aPr("window-resize",{innerWidth:t,innerHeight:n,devicePixelRatio:window.devicePixelRatio}):10>_&&this.g_aPz(t,n,_+1)}g_aPg(e){this.g_aO$=e.targetOrientation}g_aPA(){const e=this.g_aO$;if(screen.orientation&&screen.orientation.lock)screen.orientation.lock(e).catch(e=>console.warn("[Construct 3] Failed to lock orientation: ",e));else try{let a=!1;screen.lockOrientation?a=screen.lockOrientation(e):screen.webkitLockOrientation?a=screen.webkitLockOrientation(e):screen.mozLockOrientation?a=screen.mozLockOrientation(e):screen.msLockOrientation&&(a=screen.msLockOrientation(e)),a||console.warn("[Construct 3] Failed to lock orientation")}catch(e){console.warn("[Construct 3] Failed to lock orientation: ",e)}}g_alk(){const e=g_aNR.g_alw();e&&"any"!==this.g_aO$&&this.g_aPA(),this.g_aNm("fullscreenchange",{isFullscreen:e,innerWidth:window.innerWidth,innerHeight:window.innerHeight})}g_all(e){console.warn("[Construct 3] Fullscreen request failed: ",e),this.g_aNm("fullscreenerror",{isFullscreen:g_aNR.g_alw(),innerWidth:window.innerWidth,innerHeight:window.innerHeight})}g_aoc(e){e?this.g_aog.g_aOi():this.g_aog.g_aOP(),this.g_aNm("visibilitychange",{hidden:e})}g_aPs(e,a){const g=u.get(a.code)||a.code;this.g_aNq(e,{code:g,key:a.key,which:a.which,repeat:a.repeat,altKey:a.altKey,ctrlKey:a.ctrlKey,metaKey:a.metaKey,shiftKey:a.shiftKey,timeStamp:a.timeStamp},i)}g_aPu(e,a){this.g_aNm(e,{clientX:a.clientX,clientY:a.clientY,deltaX:a.deltaX,deltaY:a.deltaY,deltaZ:a.deltaZ,deltaMode:a.deltaMode,timeStamp:a.timeStamp},i)}g_aPt(a,e,g){_(e)||("mousedown"===a&&window!==window.top&&window.focus(),this.g_aNq(a,{button:e.button,buttons:e.buttons,clientX:e.clientX,clientY:e.clientY,timeStamp:e.timeStamp},g))}g_aPv(a,e){if(!_(e)){"pointerdown"===a&&window!==window.top&&window.focus();const g=this.g_aPo;"pointerdown"===a&&0!==g?a="pointermove":"pointerup"==a&&0!==e.buttons&&(a="pointermove"),this.g_aNq(a,{pointerId:1,pointerType:"mouse",button:e.button,buttons:e.buttons,lastButtons:g,clientX:e.clientX,clientY:e.clientY,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,timeStamp:e.timeStamp},i),this.g_aPo=e.buttons,this.g_aPt(e.type,e,p)}}g_aPx(e,a){"pointerdown"===e&&window!==window.top&&window.focus();let g=0;if("mouse"===a.pointerType&&(g=this.g_aPo),this.g_aNq(e,{pointerId:a.pointerId,pointerType:a.pointerType,button:a.button,buttons:a.buttons,lastButtons:g,clientX:a.clientX,clientY:a.clientY,width:a.width||0,height:a.height||0,pressure:a.pressure||0,tangentialPressure:a.tangentialPressure||0,tiltX:a.tiltX||0,tiltY:a.tiltY||0,twist:a.twist||0,timeStamp:a.timeStamp},i),"mouse"===a.pointerType){let g="mousemove";"pointerdown"===e?g="mousedown":"pointerup"==e&&(g="pointerup"),this.g_aPt(g,a,p),this.g_aPo=a.buttons}}g_aPw(e,a){"pointerdown"===e&&window!==window.top&&window.focus();for(let g=0,_=a.changedTouches.length;g<_;++g){const _=a.changedTouches[g];this.g_aNq(e,{pointerId:_.identifier,pointerType:"touch",button:0,buttons:0,lastButtons:0,clientX:_.clientX,clientY:_.clientY,width:2*(_.radiusX||_.webkitRadiusX||0),height:2*(_.radiusY||_.webkitRadiusY||0),pressure:_.force||_.webkitForce||0,tangentialPressure:0,tiltX:0,tiltY:0,twist:_.rotationAngle||0,timeStamp:a.timeStamp},i)}}g_aPl(){this.g_aPa||(this.g_aPa=!0,window.addEventListener("deviceorientation",e=>this.g_aAC(e)))}g_aPm(){this.g_aPb||(this.g_aPb=!0,window.addEventListener("devicemotion",e=>this.g_aAD(e)))}g_aAC(e){this.g_aNm("deviceorientation",{alpha:e.alpha||0,beta:e.beta||0,gamma:e.gamma||0,timeStamp:e.timeStamp},i)}g_aAD(_){let a=null;const t=_.acceleration;t&&(a={x:t.x||0,y:t.y||0,z:t.z||0});let n=null;const o=_.accelerationIncludingGravity;o&&(n={x:o.x||0,y:o.y||0,z:o.z||0});let e=null;const r=_.rotationRate;r&&(e={alpha:r.alpha||0,beta:r.beta||0,gamma:r.gamma||0}),this.g_aNm("devicemotion",{acceleration:a,accelerationIncludingGravity:n,rotationRate:e,interval:_.interval,timeStamp:_.timeStamp},i)}g_aPd(e){const a=this.g_aNw(),g=a.g_aOj();g.style.width=e.styleWidth+"px",g.style.height=e.styleHeight+"px",g.style.marginLeft=e.marginLeft+"px",g.style.marginTop=e.marginTop+"px",a.g_aOr(),this.g_aOZ&&(g.style.display="",this.g_aOZ=!1)}g_aPe(g){const _=g.url,t=g.filename,n=document.createElement("a"),e=document.body;n.textContent=t,n.href=_,n.download=t,e.appendChild(n),n.click(),e.removeChild(n)}async g_aPf(_){const a=_.blob,t=_.width,n=_.height,e=await r(a),i=await self.C3_RasterSvgImage(e,t,n);return await createImageBitmap(i)}async g_aPn(e){await t(e.url)}g_aOS(){const e=[...this.g_aPp];if(this.g_aPp.clear(),!this.g_aDK)for(const g of e){const e=g.play();e&&e.catch(()=>{this.g_aPq.has(g)||this.g_aPp.add(g)})}}g_aOQ(e){if("function"!=typeof e.play)throw new Error("missing play function");this.g_aPq.delete(e);let a;try{a=e.play()}catch(a){return void this.g_aPp.add(e)}a&&a.catch(()=>{this.g_aPq.has(e)||this.g_aPp.add(e)})}g_aOR(e){this.g_aPp.delete(e),this.g_aPq.add(e)}g_aEC(e){this.g_aDK=!!e}g_aPk(e){const a=e.show;if(!a)return void(this.g_aPc&&(this.g_aPc.style.display="none"));this.g_aPc||(this.g_aPc=document.createElement("div"),this.g_aPc.id="inspectOutline",document.body.appendChild(this.g_aPc));const g=this.g_aPc;g.style.display="",g.style.left=e.left-1+"px",g.style.top=e.top-1+"px",g.style.width=e.width+2+"px",g.style.height=e.height+2+"px",g.textContent=e.name}g_aPh(){window.C3_RegisterSW&&window.C3_RegisterSW()}g_aPi(e){window.c3_postToMessagePort&&(e.from="runtime",window.c3_postToMessagePort(e))}g_SY(e,a){return this.g_aNo("js-invoke-function",{name:e,params:a})}};g_aNR.g_aON(n)}{const e=document.currentScript.src;self.g_aOq=class{constructor(a){this.g_aPB=a,this.g_amk=e?e.substr(0,e.lastIndexOf("../../../index.html")+1):a.g_fg(),this.g_aql=Math.min(navigator.hardwareConcurrency||2,16),this.g_aPC=null,this.g_aPD=[],this.g_aqj=null,this.g_aPE=null}async g_ahs(){if(this.g_aPF)throw new Error("already initialised");this.g_aPF=!0;const e=this.g_aPB.g_aOv("dispatchworker.html");this.g_aPC=await this.g_aPB.g_aOw(e,this.g_amk,{name:"DispatchWorker"});const a=new MessageChannel;this.g_aqj=a.port1,this.g_aPC.postMessage({type:"_init","in-port":a.port2},[a.port2]),this.g_aPE=await this.g_aOI()}async g_aOI(){const g=this.g_aPD.length,a=this.g_aPB.g_aOv("jobworker.html"),_=await this.g_aPB.g_aOw(a,this.g_amk,{name:"JobWorker"+g}),t=new MessageChannel,n=new MessageChannel;return this.g_aPC.postMessage({type:"_addJobWorker",port:t.port1},[t.port1]),_.postMessage({type:"init",number:g,"dispatch-port":t.port2,"output-port":n.port2},[t.port2,n.port2]),this.g_aPD.push(_),n.port1}g_aOA(){return{inputPort:this.g_aqj,outputPort:this.g_aPE,maxNumWorkers:this.g_aql}}g_aOE(){return[this.g_aqj,this.g_aPE]}}}if("use strict",window.C3_IsSupported){"undefined"!=typeof OffscreenCanvas;window.c3_runtimeInterface=new g_aNR({g_aNT:!1,g_aOB:"workermain.js",g_aOm:["scripts/c3runtime.js"],g_aNW:"scripts/",g_aOC:[],g_aOd:"html5"})}{const e=class extends g_aNi{constructor(e){super(e,"touch"),this.g_aNt("request-permission",e=>this.g_aPG(e))}async g_aPG(e){const a=e.type;let g=!0;0===a?g=await this.g_aPH():1===a&&(g=await this.g_aPI()),this.g_aNm("permission-result",{type:a,result:g})}async g_aPH(){if(!self.DeviceOrientationEvent||!self.DeviceOrientationEvent.requestPermission)return!0;try{const e=await self.DeviceOrientationEvent.requestPermission();return"granted"===e}catch(e){return console.warn("[Touch] Failed to request orientation permission: ",e),!1}}async g_aPI(){if(!self.DeviceMotionEvent||!self.DeviceMotionEvent.requestPermission)return!0;try{const e=await self.DeviceMotionEvent.requestPermission();return"granted"===e}catch(e){return console.warn("[Touch] Failed to request motion permission: ",e),!1}}};g_aNR.g_aON(e)}{const e=class extends g_aNi{constructor(e){super(e,"browser"),this.g_amp="",this.g_aNt("get-initial-state",e=>this.g_aPJ(e)),this.g_aNt("ready-for-sw-messages",()=>this.g_aPK()),this.g_aNt("alert",e=>this.g_aPL(e)),this.g_aNt("close",()=>this.g_aPM()),this.g_aNt("set-focus",e=>this.g_aNH(e)),this.g_aNt("vibrate",e=>this.g_aPN(e)),this.g_aNt("lock-orientation",e=>this.g_aPO(e)),this.g_aNt("unlock-orientation",()=>this.g_aPP()),this.g_aNt("navigate",e=>this.g_aPQ(e)),this.g_aNt("request-fullscreen",e=>this.g_aPR(e)),this.g_aNt("exit-fullscreen",()=>this.g_aPS()),window.addEventListener("online",()=>this.g_aCb(!0)),window.addEventListener("offline",()=>this.g_aCb(!1)),document.addEventListener("backbutton",()=>this.g_aPT()),"undefined"!=typeof Windows&&Windows.UI.Core.SystemNavigationManager.getForCurrentView().addEventListener("backrequested",e=>this.g_aPU(e))}g_aPJ(e){return this.g_amp=e.exportType,{location:location.toString(),isOnline:!!navigator.onLine,referrer:document.referrer,title:document.title,isCookieEnabled:!!navigator.cookieEnabled,screenWidth:screen.width,screenHeight:screen.height,windowOuterWidth:window.outerWidth,windowOuterHeight:window.outerHeight,isScirraArcade:"undefined"!=typeof window.is_scirra_arcade}}g_aPK(){window.C3_RegisterSW&&window.OfflineClientInfo&&window.OfflineClientInfo.SetMessageCallback(e=>this.g_aNm("sw-message",e.data))}g_aCb(e){this.g_aNm("online-state",{isOnline:e})}g_aPT(){this.g_aNm("backbutton")}g_aPU(e){e.handled=!0,this.g_aNm("backbutton")}g_aPV(){return"nwjs"===this.g_amp?nw.Window.get():null}g_aPL(e){alert(e.message)}g_aPM(){navigator.app&&navigator.app.exitApp?navigator.app.exitApp():navigator.device&&navigator.device.exitApp?navigator.device.exitApp():window.close()}g_aNH(e){const g=e.isFocus;if("nwjs"===this.g_amp){const e=this.g_aPV();g?e.focus():e.blur()}else g?window.focus():window.blur()}g_aPN(e){navigator.vibrate&&navigator.vibrate(e.pattern)}g_aPO(e){const g=e.orientation;if(screen.orientation&&screen.orientation.lock)screen.orientation.lock(g).catch(e=>console.warn("[Construct 3] Failed to lock orientation: ",e));else try{let e=!1;screen.lockOrientation?e=screen.lockOrientation(g):screen.webkitLockOrientation?e=screen.webkitLockOrientation(g):screen.mozLockOrientation?e=screen.mozLockOrientation(g):screen.msLockOrientation&&(e=screen.msLockOrientation(g)),e||console.warn("[Construct 3] Failed to lock orientation")}catch(e){console.warn("[Construct 3] Failed to lock orientation: ",e)}}g_aPP(){try{screen.orientation&&screen.orientation.unlock?screen.orientation.unlock():screen.unlockOrientation?screen.unlockOrientation():screen.webkitUnlockOrientation?screen.webkitUnlockOrientation():screen.mozUnlockOrientation?screen.mozUnlockOrientation():screen.msUnlockOrientation&&screen.msUnlockOrientation()}catch(e){}}g_aPQ(e){const a=e.type;if("back"===a)navigator.app&&navigator.app.backHistory?navigator.app.backHistory():window.back();else if("forward"===a)window.forward();else if("home"===a)window.g_aPW();else if("reload"===a)location.reload();else if("url"===a){const a=e.url,g=e.target,_=e.exportType;"windows-uwp"===_&&"undefined"!=typeof Windows?Windows.System.Launcher.launchUriAsync(new Windows.Foundation.Uri(a)):navigator.app&&navigator.app.loadUrl?navigator.app.loadUrl(a,{openExternal:!0}):"cordova"===_?window.open(a,"_system"):"preview"===_?window.open(a,"_blank"):!this.g_aCa&&(2===g?window.top.location=a:1===g?window.parent.location=a:window.location=a)}else if("new-window"===a){const a=e.url,g=e.tag,_=e.exportType;"windows-uwp"===_&&"undefined"!=typeof Windows?Windows.System.Launcher.launchUriAsync(new Windows.Foundation.Uri(a)):navigator.app&&navigator.app.loadUrl?navigator.app.loadUrl(a,{openExternal:!0}):"cordova"===_?window.open(a,"_system"):window.open(a,g)}}g_aPR(e){const a={navigationUI:"auto"},g=e.navUI;1===g?a.navigationUI="hide":2===g&&(a.navigationUI="show");const _=document.documentElement;_.requestFullscreen?_.requestFullscreen(a):_.mozRequestFullScreen?_.mozRequestFullScreen(a):_.msRequestFullscreen?_.msRequestFullscreen(a):_.webkitRequestFullScreen&&("undefined"==typeof Element.ALLOW_KEYBOARD_INPUT?_.webkitRequestFullScreen():_.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT))}g_aPS(){document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen?document.msExitFullscreen():document.webkitCancelFullScreen&&document.webkitCancelFullScreen()}};g_aNR.g_aON(e)}{function e(e,g){return e.length===g.length&&(e===g||e.toLowerCase()===g.toLowerCase())}const a=class extends g_aNi{constructor(e){super(e,"audio"),this.g_aPX=null,this.g_aPY=null,this.g_aPZ=!1,this.g_aP_=()=>this.g_aP$(),this.g_aQa=[],this.g_aQb=[],this.g_aQc=null,this.g_aQd="",this.g_aQe=-1,this.g_aQf=new Map,this.g_aDJ=1,this.g_aDK=!1,this.g_aDw=0,this.g_aho=1,this.g_anB=0,this.g_aDz="HRTF",this.g_aDA="inverse",this.g_aQg=600,this.g_aDF=1e4,this.g_aDG=1,this.g_aQh=!1,this.g_aQi=!1,this.g_aQj=this.g_aog.g_AP("audio/webm; codecs=opus"),this.g_aQk=new Map,this.g_aQl=new Set,this.g_aQm=!1,this.g_aQn="",this.g_aQo=null,self.C3Audio_OnMicrophoneStream=(e,a)=>this.g_aQp(e,a),this.g_aQq=null,self.C3Audio_GetOutputStream=()=>this.g_aQr(),this.g_aNv([["create-audio-context",e=>this.g_aQs(e)],["play",e=>this.g_aQt(e)],["stop",e=>this.g_aQu(e)],["stop-all",()=>this.g_aQv()],["set-paused",e=>this.g_aQw(e)],["set-volume",e=>this.g_aQx(e)],["fade-volume",e=>this.g_aQy(e)],["set-master-volume",e=>this.g_aQz(e)],["set-muted",e=>this.g_aQA(e)],["set-silent",e=>this.g_aQB(e)],["set-looping",e=>this.g_aQC(e)],["set-playback-rate",e=>this.g_aQD(e)],["seek",e=>this.g_aQE(e)],["preload",e=>this.g_aQF(e)],["unload",e=>this.g_F_(e)],["unload-all",()=>this.g_aQG()],["set-suspended",e=>this.g_aQH(e)],["add-effect",e=>this.g_aQI(e)],["set-effect-param",e=>this.g_aQJ(e)],["remove-effects",e=>this.g_aQK(e)],["tick",e=>this.g_Ip(e)],["load-state",e=>this.g_aQL(e)]])}async g_aQs(e){e.isWKWebView&&(this.g_aQh=!0),this.g_aDw=e.timeScaleMode,this.g_aDz=["equalpower","HRTF","soundfield"][e.panningModel],this.g_aDA=["linear","inverse","exponential"][e.distanceModel],this.g_aQg=e.refDistance,this.g_aDF=e.maxDistance,this.g_aDG=e.rolloffFactor;const a={latencyHint:e.latencyHint};if("undefined"!=typeof AudioContext)this.g_aPX=new AudioContext(a);else if("undefined"!=typeof webkitAudioContext)this.g_aPX=new webkitAudioContext(a);else throw new Error("Web Audio API not supported");this.g_aPY=this.g_aPX.createGain(),this.g_aPY.connect(this.g_aPX.destination);const g=e.listenerPos;this.g_aPX.listener.setPosition(g[0],g[1],g[2]),this.g_aPX.listener.setOrientation(0,0,1,0,-1,0),window.addEventListener("pointerup",this.g_aP_,!0),window.addEventListener("touchend",this.g_aP_,!0),window.addEventListener("click",this.g_aP_,!0),window.addEventListener("keydown",this.g_aP_,!0),self.C3_GetAudioContextCurrentTime=()=>this.g_aQM();try{await Promise.all(e.preloadList.map(e=>this.g_aQN(e.originalUrl,e.url,e.type,!1)))}catch(e){console.error("[Construct 3] Preloading sounds failed: ",e)}return{sampleRate:this.g_aPX.sampleRate}}g_aP$(){if(!this.g_aPZ){const e=this.g_aPX;"suspended"===e.state&&e.resume&&e.resume();const a=e.createBuffer(1,220,22050),g=e.createBufferSource();g.buffer=a,g.connect(e.destination),g.start(0),"running"===e.state&&(this.g_aPZ=!0,window.removeEventListener("pointerup",this.g_aP_,!0),window.removeEventListener("touchend",this.g_aP_,!0),window.removeEventListener("click",this.g_aP_,!0),window.removeEventListener("keydown",this.g_aP_,!0),this.g_aP_=null)}}g_aQO(){return this.g_aPX}g_aQM(){return this.g_aPX.currentTime}g_aQP(){return this.g_aPY}g_aQQ(e){const a=this.g_aQk.get(e.toLowerCase());return a?a[0].g_aQR():this.g_aQP()}g_aQS(e,g){e=e.toLowerCase();let _=this.g_aQk.get(e);_||(_=[],this.g_aQk.set(e,_)),g.g_aiX(_.length),g.g_aQT(e),_.push(g),this.g_aQU(e)}g_aQU(e){let a=this.g_aQP();const g=this.g_aQk.get(e);if(g&&g.length){a=g[0].g_aQR();for(let e=0,a=g.length;e<a;++e){const _=g[e];e+1===a?_.g_aQV(this.g_aQP()):_.g_aQV(g[e+1].g_aQR())}}for(const g of this.g_aQW(e))g.g_aQX(a);this.g_aQo&&this.g_aQn===e&&(this.g_aQo.disconnect(),this.g_aQo.connect(a))}g_aQY(){return this.g_aDJ}g_aEl(){return this.g_aDK}g_aQZ(){return this.g_aDw}g_Jh(){return this.g_aho}g_EK(){return this.g_anB}g_aQ_(){return this.g_aQh}g_aQ$(){return this.g_aQj}g_aRa(){this.g_aQi=!0}g_aRb(){return this.g_aDz}g_aRc(){return this.g_aDA}g_aRd(){return this.g_aQg}g_aRe(){return this.g_aDF}g_aRf(){return this.g_aDG}g_aRg(e,a){return a?this.g_aog.g_adu(e).then(e=>{const a=this.g_aPX.createBuffer(1,e.length,48e3),g=a.getChannelData(0);return g.set(e),a}):new Promise((a,g)=>{this.g_aPX.decodeAudioData(e,a,g)})}g_aOQ(e){this.g_aog.g_aOQ(e)}g_aOR(e){this.g_aog.g_aOR(e)}g_aRh(a){let g=0;for(let _=0,e=this.g_aQb.length;_<e;++_){const t=this.g_aQb[_];this.g_aQb[g]=t,t.g_aRi()===a?t.g_em():++g}this.g_aQb.length=g}g_aRj(){let e=0;for(let a=0,g=this.g_aQa.length;a<g;++a){const g=this.g_aQa[a];this.g_aQa[e]=g,g.g_aRk()?g.g_em():++e}this.g_aQa.length=e}*g_aQW(a){if(a)for(const g of this.g_aQb)e(g.g_aRl(),a)&&(yield g);else this.g_aQc&&!this.g_aQc.g_aRm()&&(yield this.g_aQc)}async g_aQN(g,a,_,t,n){for(const e of this.g_aQa)if(e.g_aRn()===a)return await e.g_AE(),e;if(n)return null;t&&(this.g_aQh||this.g_aQi)&&this.g_aRj();const e=g_aRo.g_pB(this,g,a,_,t);return this.g_aQa.push(e),await e.g_AE(),e}async g_aRp(_,a,t,n,i){for(const e of this.g_aQb)if(e.g_aRn()===a&&(e.g_aRq()||i))return e.g_aRr(n),e;const e=await this.g_aQN(_,a,t,i),o=e.g_adJ(n);return this.g_aQb.push(o),o}g_aRs(e){let a=this.g_aQf.get(e);if(!a){let g=null;const _=new Promise(e=>g=e);a={g_aRt:0,promise:_,resolve:g},this.g_aQf.set(e,a)}a.g_aRt++}g_aRu(e){const a=this.g_aQf.get(e);if(!a)throw new Error("expected pending tag");a.g_aRt--,0===a.g_aRt&&(a.resolve(),this.g_aQf.delete(e))}g_aRv(e){e||(e=this.g_aQd);const g=this.g_aQf.get(e);return g?g.promise:Promise.resolve()}g_aRw(){if(0<this.g_aQl.size)return void this.g_abF();for(const e of this.g_aQb)if(e.g_VJ())return void this.g_abF()}g_Jj(){for(const a of this.g_aQl)a.g_Jj();const e=this.g_aQM();for(const a of this.g_aQb)a.g_Jj(e);const a=this.g_aQb.filter(a=>a.g_VJ()).map(a=>a.g_aRx());this.g_aNm("state",{tickCount:this.g_aQe,audioInstances:a,analysers:[...this.g_aQl].map(a=>a.g_aRy())}),0===a.length&&0===this.g_aQl.size&&this.g_abq()}g_aRz(e,a){this.g_aNm("trigger",{type:e,tag:a})}async g_aQt(_){const a=_.originalUrl,t=_.url,n=_.type,o=_.isMusic,e=_.tag,r=_.isLooping,g=_.vol,s=_.pos,i=_.panning;let d=_.off;if(0<d&&!_.trueClock)if(this.g_aPX.getOutputTimestamp){const e=this.g_aPX.getOutputTimestamp();d=d-e.performanceTime/1e3+e.contextTime}else d=d-performance.now()/1e3+this.g_aPX.currentTime;this.g_aQd=e,this.g_aRs(e);try{this.g_aQc=await this.g_aRp(a,t,n,e,o),i?(this.g_aQc.g_aRA(!0),this.g_aQc.g_aRB(i.x,i.y,i.angle,i.innerAngle,i.outerAngle,i.outerGain),i.hasOwnProperty("uid")&&this.g_aQc.g_aRC(i.uid)):this.g_aQc.g_aRA(!1),this.g_aQc.g_KQ(r,g,s,d)}catch(e){return void console.error("[Construct 3] Audio: error starting playback: ",e)}finally{this.g_aRu(e)}this.g_abF()}g_aQu(e){const a=e.tag;for(const g of this.g_aQW(a))g.g_Iz()}g_aQv(){for(const e of this.g_aQb)e.g_Iz()}g_aQw(e){const a=e.tag,g=e.paused;for(const _ of this.g_aQW(a))g?_.g_aRD():_.g_KP();this.g_aRw()}g_aQx(e){const a=e.tag,g=e.vol;for(const _ of this.g_aQW(a))_.g_aEv(g)}async g_aQy(g){const a=g.tag,_=g.vol,t=g.duration,n=g.stopOnEnd;await this.g_aRv(a);for(const e of this.g_aQW(a))e.g_aEw(_,t,n);this.g_aRw()}g_aQz(e){this.g_aDJ=e.vol;for(const a of this.g_aQb)a.g_aRE()}g_aQA(e){const a=e.tag,g=e.isMuted;for(const _ of this.g_aQW(a))_.g_aEu(g)}g_aQB(e){this.g_aDK=e.isSilent,this.g_aog.g_aEC(this.g_aDK);for(const a of this.g_aQb)a.g_aRF()}g_aQC(e){const a=e.tag,g=e.isLooping;for(const _ of this.g_aQW(a))_.g_aEt(g)}g_aQD(e){const a=e.tag,g=e.rate;for(const _ of this.g_aQW(a))_.g_Kc(g)}g_aQE(e){const a=e.tag,g=e.pos;for(const _ of this.g_aQW(a))_.g_aEB(g)}async g_aQF(g){const a=g.originalUrl,_=g.url,t=g.type,n=g.isMusic;try{await this.g_aRp(a,_,t,"",n)}catch(e){console.error("[Construct 3] Audio: error preloading: ",e)}}async g_F_(g){const a=g.url,_=g.type,t=g.isMusic,n=await this.g_aQN("",a,_,t,!0);if(n){n.g_em();const e=this.g_aQa.indexOf(n);-1!==e&&this.g_aQa.splice(e,1)}}g_aQG(){for(const e of this.g_aQa)e.g_em();this.g_aQa.length=0}g_aQH(e){const a=e.isSuspended;!a&&this.g_aPX.resume&&this.g_aPX.resume();for(const g of this.g_aQb)g.g_aoV(a);a&&this.g_aPX.suspend&&this.g_aPX.suspend()}g_Ip(e){if(this.g_aho=e.timeScale,this.g_anB=e.gameTime,this.g_aQe=e.tickCount,0!==this.g_aDw)for(const e of this.g_aQb)e.g_aRG();const a=e.listenerPos;a&&this.g_aPX.listener.setPosition(a[0],a[1],a[2]);for(const g of e.instPans){const e=g.uid;for(const a of this.g_aQb)a.g_CJ()===e&&a.g_aRH(g.x,g.y,g.angle)}}async g_aQI(g){const a=g.type,_=g.tag,t=g.params;let n;if("filter"===a)n=new g_aRI(this,...t);else if("delay"===a)n=new g_aRJ(this,...t);else if("convolution"===a){let a=null;try{a=await this.g_aQN(g.bufferOriginalUrl,g.bufferUrl,g.bufferType,!1)}catch(e){return void console.log("[Construct 3] Audio: error loading convolution: ",e)}n=new g_aRK(this,a.g_aRL(),...t),n.g_aRM(g.bufferOriginalUrl,g.bufferUrl,g.bufferType)}else if("flanger"===a)n=new g_aRN(this,...t);else if("phaser"===a)n=new g_aRO(this,...t);else if("gain"===a)n=new g_aRP(this,...t);else if("tremolo"===a)n=new g_aRQ(this,...t);else if("ringmod"===a)n=new g_aRR(this,...t);else if("distortion"===a)n=new g_aRS(this,...t);else if("compressor"===a)n=new g_aRT(this,...t);else if("analyser"===a)n=new g_aRU(this,...t);else throw new Error("invalid effect type");this.g_aQS(_,n),this.g_aRV()}g_aQJ(_){const a=_.tag,t=_.index,n=_.param,i=_.value,e=_.ramp,o=_.time,g=this.g_aQk.get(a);!g||0>t||t>=g.length||(g[t].g_aRW(n,i,e,o),this.g_aRV())}g_aQK(e){const a=e.tag.toLowerCase(),g=this.g_aQk.get(a);if(g&&g.length){for(const e of g)e.g_em();this.g_aQk.delete(a),this.g_aQU(a)}}g_aRX(e){this.g_aQl.add(e),this.g_aRw()}g_aRY(e){this.g_aQl.delete(e)}g_aRV(){this.g_aQm||(this.g_aQm=!0,Promise.resolve().then(()=>this.g_aRZ()))}g_aRZ(){const e={};for(const[a,g]of this.g_aQk)e[a]=g.map(e=>e.g_aRx());this.g_aNm("fxstate",{fxstate:e}),this.g_aQm=!1}async g_aQL(e){const g=e.saveLoadMode;if(3!==g)for(const e of this.g_aQb)e.g_aRk()&&1===g||!e.g_aRk()&&2===g||e.g_Iz();for(const g of this.g_aQk.values())for(const e of g)e.g_em();this.g_aQk.clear(),this.g_aho=e.timeScale,this.g_anB=e.gameTime;const a=e.listenerPos;this.g_aPX.listener.setPosition(a[0],a[1],a[2]),this.g_aDK=e.isSilent,this.g_aog.g_aEC(this.g_aDK),this.g_aDJ=e.masterVolume;const _=[];for(const a of Object.values(e.effects))_.push(Promise.all(a.map(e=>this.g_aQI(e))));await Promise.all(_),await Promise.all(e.playing.map(e=>this.g_aR_(e,g))),this.g_aRw()}async g_aR_(_,a){if(3===a)return;const t=_.bufferOriginalUrl,n=_.bufferUrl,o=_.bufferType,e=_.isMusic,r=_.tag,g=_.isLooping,s=_.volume,i=_.playbackTime;if(e&&1===a)return;if(!e&&2===a)return;let d=null;try{d=await this.g_aRp(t,n,o,r,e)}catch(e){return void console.error("[Construct 3] Audio: error loading audio state: ",e)}d.g_aR$(_.pan),d.g_KQ(g,s,i,0),_.isPlaying||d.g_aRD(),d.g_aSa(_)}g_aQp(e,a){this.g_aQo&&this.g_aQo.disconnect(),this.g_aQn=a.toLowerCase(),this.g_aQo=this.g_aPX.createMediaStreamSource(e),this.g_aQo.connect(this.g_aQQ(this.g_aQn))}g_aQr(){return this.g_aQq||(this.g_aQq=this.g_aPX.createMediaStreamDestination(),this.g_aPY.connect(this.g_aQq)),this.g_aQq.stream}};g_aNR.g_aON(a)}"use strict",self.g_aRo=class{constructor(g,a,_,t,n){this.g_aSb=g,this.g_aSc=a,this.g_Bd=_,this.g_ko=t,this.g_aSd=n,this.g_aSe="",this.g_aSf="not-loaded",this.g_Bi=null}g_em(){this.g_aSf="not-loaded",this.g_aSb=null,this.g_Bi=null}static g_pB(g,a,_,t,n){const e="audio/webm; codecs=opus"===t&&!g.g_aQ$();return n&&e&&g.g_aRa(),!n||g.g_aQ_()||e?new g_aSg(g,a,_,t,n,e):new g_aSh(g,a,_,t,n)}g_adJ(e){return"html5"===this.g_aSe?new g_aSi(this.g_aSb,this,e):new g_aSj(this.g_aSb,this,e)}g_FU(){}g_AE(){return this.g_Bi||(this.g_Bi=this.g_FU()),this.g_Bi}g_Bj(){}g_aSk(){}g_aSl(){return"failed"===this.g_aSf}g_aQO(){return this.g_aSb.g_aQO()}g_aSm(){return this.g_aSe}g_aSn(){return this.g_aSc}g_aRn(){return this.g_Bd}g_aSo(){return this.g_ko}g_aRk(){return this.g_aSd}g_afk(){}},"use strict",self.g_aSh=class extends g_aRo{constructor(g,a,_,t,n){super(g,a,_,t,n),this.g_aSe="html5",this.g_aSp=new Audio,this.g_aSp.crossOrigin="anonymous",this.g_aSp.autoplay=!1,this.g_aSp.preload="auto",this.g_aSq=null,this.g_aSr=null,this.g_aSs=!1,this.g_aSp.addEventListener("canplaythrough",()=>this.g_aSs=!0),this.g_aSt=this.g_aQO().createGain(),this.g_aSu=null,this.g_aSp.addEventListener("canplay",()=>{this.g_aSq&&(this.g_aSf="loaded",this.g_aSq(),this.g_aSq=null,this.g_aSr=null),this.g_aSu||!this.g_aSp||(this.g_aSu=this.g_aQO().createMediaElementSource(this.g_aSp),this.g_aSu.connect(this.g_aSt))}),this.onended=null,this.g_aSp.addEventListener("ended",()=>{this.onended&&this.onended()}),this.g_aSp.addEventListener("error",e=>this.g_aSv(e))}g_em(){this.g_aSb.g_aRh(this),this.g_aSt.disconnect(),this.g_aSt=null,this.g_aSu.disconnect(),this.g_aSu=null,this.g_aSp&&!this.g_aSp.paused&&this.g_aSp.pause(),this.onended=null,this.g_aSp=null,super.g_em()}g_FU(){return this.g_aSf="loading",new Promise((e,a)=>{this.g_aSq=e,this.g_aSr=a,this.g_aSp.src=this.g_Bd})}g_aSv(e){console.error(`[Construct 3] Audio '${this.g_Bd}' error: `,e),this.g_aSr&&(this.g_aSf="failed",this.g_aSr(e),this.g_aSq=null,this.g_aSr=null)}g_Bj(){const e=4<=this.g_aSp.readyState;return e&&(this.g_aSs=!0),e||this.g_aSs}g_aSk(){return this.g_Bj()}g_aSw(){return this.g_aSp}g_aSx(){return this.g_aSt}g_afk(){return this.g_aSp.duration}},"use strict",self.g_aSg=class extends g_aRo{constructor(g,a,_,t,n,e){super(g,a,_,t,n),this.g_aSe="webaudio",this.g_aSy=null,this.g_aSz=null,this.g_aSA=!!e}g_em(){this.g_aSb.g_aRh(this),this.g_aSy=null,this.g_aSz=null,super.g_em()}async g_aSB(){if(this.g_aSy)return this.g_aSy;const e=this.g_aSb.g_aNw();if("cordova"===e.g_apG()&&e.g_fT(this.g_Bd))this.g_aSy=await e.g_As(this.g_Bd);else{const e=await fetch(this.g_Bd);if(!e.ok)throw new Error(`error fetching audio data: ${e.status} ${e.statusText}`);this.g_aSy=await e.arrayBuffer()}}async g_aSC(){return this.g_aSz?this.g_aSz:void(this.g_aSz=await this.g_aSb.g_aRg(this.g_aSy,this.g_aSA),this.g_aSy=null)}async g_FU(){try{this.g_aSf="loading",await this.g_aSB(),await this.g_aSC(),this.g_aSf="loaded"}catch(e){this.g_aSf="failed",console.error(`[Construct 3] Failed to load audio '${this.g_Bd}': `,e)}}g_Bj(){return!!(this.g_aSy||this.g_aSz)}g_aSk(){return!!this.g_aSz}g_aRL(){return this.g_aSz}g_afk(){return this.g_aSz?this.g_aSz.duration:0}},"use strict";{function _(g){return g*e}const e=180/Math.PI;self.g_aSD=class{constructor(e,a,g){this.g_aSb=e,this.g_vg=a,this.g_aSE=g,this.g_aSF=this.g_aQO().createGain(),this.g_aSF.connect(this.g_aQP()),this.g_aSG=null,this.g_aSH=!1,this.g_St=!0,this.g_aSI=!1,this.g_aSJ=!1,this.g_ZC=!1,this.g_aSK=1,this.g_aSL=!1,this.g_Jw=1;const _=this.g_aSb.g_aQZ();this.g_aSM=1===_&&!this.g_aRk()||2===_,this.g_aSN=-1,this.g_aSO=-1,this.g_aSP=!1}g_em(){this.g_aSb=null,this.g_vg=null,this.g_aSG&&(this.g_aSG.disconnect(),this.g_aSG=null),this.g_aSF.disconnect(),this.g_aSF=null}g_aQO(){return this.g_aSb.g_aQO()}g_aQP(){return this.g_aSb.g_aQQ(this.g_aSE)}g_aQY(){return this.g_aSb.g_aQY()}g_aSQ(){return this.g_aSM?this.g_aSb.g_EK():performance.now()/1e3}g_aSn(){return this.g_vg.g_aSn()}g_aRn(){return this.g_vg.g_aRn()}g_aSo(){return this.g_vg.g_aSo()}g_aRi(){return this.g_vg}g_aRk(){return this.g_vg.g_aRk()}g_aRr(e){this.g_aSE=e}g_aRl(){return this.g_aSE}g_aRm(){}g_aRq(){}g_Kf(){return!this.g_St&&!this.g_aSI&&!this.g_aRm()}g_VJ(){return!this.g_St&&!this.g_aRm()}g_aSR(){}g_afk(e){let a=this.g_vg.g_afk();return e&&(a/=this.g_Jw||.001),a}g_KQ(){}g_Iz(){}g_aRD(){}g_aSS(){return this.g_aSI}g_KP(){}g_aEv(e){this.g_aSK=e,this.g_aSF.gain.cancelScheduledValues(0),this.g_aSO=-1,this.g_aSF.gain.value=this.g_aST()}g_aEw(g,_,t){if(!this.g_aSU()){g*=this.g_aQY();const a=this.g_aSF.gain;a.cancelScheduledValues(0);const n=this.g_aSb.g_aQM(),e=n+_;a.setValueAtTime(this.g_aST(),n),a.linearRampToValueAtTime(g,e),this.g_aSK=g,this.g_aSO=e,this.g_aSP=t}}g_aRE(){this.g_aEv(this.g_aSK)}g_Jj(e){-1!==this.g_aSO&&e>=this.g_aSO&&(this.g_aSO=-1,this.g_aSP&&this.g_Iz(),this.g_aSb.g_aRz("fade-ended",this.g_aSE))}g_aST(){const e=this.g_aSK*this.g_aQY();return isFinite(e)?e:0}g_aEu(e){e=!!e,this.g_aSL===e||(this.g_aSL=e,this.g_aRF())}g_aSU(){return this.g_aSL}g_aEl(){return this.g_aSb.g_aEl()}g_aRF(){}g_aEt(){}g_Xr(){return this.g_ZC}g_Kc(e){this.g_Jw===e||(this.g_Jw=e,this.g_aRG())}g_aRG(){}g_Kd(){return this.g_Jw}g_aEB(){}g_aoV(){}g_aRA(e){e=!!e,this.g_aSH===e||(this.g_aSH=e,this.g_aSH?(!this.g_aSG&&(this.g_aSG=this.g_aQO().createPanner(),this.g_aSG.panningModel=this.g_aSb.g_aRb(),this.g_aSG.distanceModel=this.g_aSb.g_aRc(),this.g_aSG.refDistance=this.g_aSb.g_aRd(),this.g_aSG.maxDistance=this.g_aSb.g_aRe(),this.g_aSG.rolloffFactor=this.g_aSb.g_aRf()),this.g_aSF.disconnect(),this.g_aSF.connect(this.g_aSG),this.g_aSG.connect(this.g_aQP())):(this.g_aSG.disconnect(),this.g_aSF.disconnect(),this.g_aSF.connect(this.g_aQP())))}g_aRB(a,t,n,i,e,o){this.g_aSH&&(this.g_aRH(a,t,n),this.g_aSG.coneInnerAngle=_(i),this.g_aSG.coneOuterAngle=_(e),this.g_aSG.coneOuterGain=o)}g_aRH(e,a,g){this.g_aSH&&(this.g_aSG.setPosition(e,a,0),this.g_aSG.setOrientation(Math.cos(g),Math.sin(g),0))}g_aRC(e){this.g_aSN=e}g_CJ(){return this.g_aSN}g_aSV(){}g_aQX(e){const a=this.g_aSG||this.g_aSF;a.disconnect(),a.connect(e)}g_aRx(){return{tag:this.g_aSE,duration:this.g_afk(),volume:this.g_aSK,isPlaying:this.g_Kf(),playbackTime:this.g_aSR(),playbackRate:this.g_Kd(),uid:this.g_aSN,bufferOriginalUrl:this.g_aSn(),bufferUrl:"",bufferType:this.g_aSo(),isMusic:this.g_aRk(),isLooping:this.g_Xr(),isMuted:this.g_aSU(),resumePosition:this.g_aSV(),pan:this.g_aSW()}}g_aSa(e){this.g_Kc(e.playbackRate),this.g_aEu(e.isMuted)}g_aSW(){if(!this.g_aSG)return null;const e=this.g_aSG;return{pos:[e.positionX.value,e.positionY.value,e.positionZ.value],orient:[e.orientationX.value,e.orientationY.value,e.orientationZ.value],cia:e.coneInnerAngle,coa:e.coneOuterAngle,cog:e.coneOuterGain,uid:this.g_aSN}}g_aR$(e){if(!e)return void this.g_aRA(!1);this.g_aRA(!0);const a=this.g_aSG;a.setPosition(...a.pos),a.setOrientation(...a.orient),a.coneInnerAngle=a.cia,a.coneOuterAngle=a.coa,a.coneOuterGain=a.cog,this.g_aSN=a.uid}}}"use strict",self.g_aSi=class extends g_aSD{constructor(e,a,g){super(e,a,g),this.g_vg.g_aSx().connect(this.g_aSF),this.g_vg.onended=()=>this.g_aSX()}g_em(){this.g_Iz(),this.g_vg.g_aSx().disconnect(),super.g_em()}g_aSw(){return this.g_vg.g_aSw()}g_aSX(){this.g_St=!0,this.g_aSN=-1,this.g_aSb.g_aRz("ended",this.g_aSE)}g_aRm(){return this.g_aSw().ended}g_aRq(){return!!this.g_St||this.g_aRm()}g_aSR(e){let a=this.g_aSw().currentTime;return e&&(a*=this.g_Jw),this.g_ZC||(a=Math.min(a,this.g_afk())),a}g_KQ(e,a,g){const _=this.g_aSw();if(1!==_.playbackRate&&(_.playbackRate=1),_.loop!==e&&(_.loop=e),this.g_aEv(a),_.muted&&(_.muted=!1),_.currentTime!==g)try{_.currentTime=g}catch(e){console.warn(`[Construct 3] Exception seeking audio '${this.g_vg.g_aRn()}' to position '${g}': `,e)}this.g_aSb.g_aOQ(_),this.g_St=!1,this.g_aSI=!1,this.g_ZC=e,this.g_Jw=1}g_Iz(){const e=this.g_aSw();e.paused||e.pause(),this.g_aSb.g_aOR(e),this.g_St=!0,this.g_aSI=!1,this.g_aSN=-1}g_aRD(){if(!(this.g_aSI||this.g_St||this.g_aRm())){const e=this.g_aSw();e.paused||e.pause(),this.g_aSb.g_aOR(e),this.g_aSI=!0}}g_KP(){!this.g_aSI||this.g_St||this.g_aRm()||(this.g_aSb.g_aOQ(this.g_aSw()),this.g_aSI=!1)}g_aRF(){this.g_aSw().muted=this.g_aSL||this.g_aEl()}g_aEt(e){e=!!e,this.g_ZC===e||(this.g_ZC=e,this.g_aSw().loop=e)}g_aRG(){let e=this.g_Jw;this.g_aSM&&(e*=this.g_aSb.g_Jh());try{this.g_aSw().playbackRate=e}catch(a){console.warn(`[Construct 3] Unable to set playback rate '${e}':`,a)}}g_aEB(e){if(!(this.g_St||this.g_aRm()))try{this.g_aSw().currentTime=e}catch(a){console.warn(`[Construct 3] Error seeking audio to '${e}': `,a)}}g_aSV(){return this.g_aSR()}g_aoV(e){e?this.g_Kf()?(this.g_aSw().pause(),this.g_aSJ=!0):this.g_aSJ=!1:this.g_aSJ&&(this.g_aSb.g_aOQ(this.g_aSw()),this.g_aSJ=!1)}},"use strict",self.g_aSj=class extends g_aSD{constructor(e,a,g){super(e,a,g),this.g_aSY=null,this.g_aSZ=e=>this.g_aSX(e),this.g_aS_=!0,this.g_aS$=null,this.g_anw=0,this.g_aTa=0,this.g_aTb=1}g_em(){this.g_Iz(),this.g_aTc(),this.g_aSZ=null,super.g_em()}g_aTc(){this.g_aSY&&this.g_aSY.disconnect(),this.g_aSY=null,this.g_aS$=null}g_aSX(e){this.g_aSI||this.g_aSJ||e.target!==this.g_aS$||(this.g_aS_=!0,this.g_St=!0,this.g_aSN=-1,this.g_aTc(),this.g_aSb.g_aRz("ended",this.g_aSE))}g_aRm(){return!(!this.g_St&&this.g_aSY&&this.g_aSY.loop)&&!this.g_aSI&&this.g_aS_}g_aRq(){return!this.g_aSY||this.g_St||this.g_aRm()}g_aSR(e){let a=0;return a=this.g_aSI?this.g_aTa:this.g_aSQ()-this.g_anw,e&&(a*=this.g_Jw),this.g_ZC||(a=Math.min(a,this.g_afk())),a}g_KQ(e,a,g,_){this.g_aTb=1,this.g_aEv(a),this.g_aTc(),this.g_aSY=this.g_aQO().createBufferSource(),this.g_aSY.buffer=this.g_vg.g_aRL(),this.g_aSY.connect(this.g_aSF),this.g_aS$=this.g_aSY,this.g_aSY.onended=this.g_aSZ,this.g_aSY.loop=e,this.g_aSY.start(_,g),this.g_aS_=!1,this.g_St=!1,this.g_aSI=!1,this.g_ZC=e,this.g_Jw=1,this.g_anw=this.g_aSQ()-g}g_Iz(){this.g_aSY&&this.g_aSY.stop(0),this.g_St=!0,this.g_aSI=!1,this.g_aSN=-1}g_aRD(){this.g_aSI||this.g_St||this.g_aRm()||(this.g_aTa=this.g_aSR(!0),this.g_ZC&&(this.g_aTa%=this.g_afk()),this.g_aSI=!0,this.g_aSY.stop(0))}g_KP(){!this.g_aSI||this.g_St||this.g_aRm()||(this.g_aTc(),this.g_aSY=this.g_aQO().createBufferSource(),this.g_aSY.buffer=this.g_vg.g_aRL(),this.g_aSY.connect(this.g_aSF),this.g_aS$=this.g_aSY,this.g_aSY.onended=this.g_aSZ,this.g_aSY.loop=this.g_ZC,this.g_aRE(),this.g_aRG(),this.g_anw=this.g_aSQ()-this.g_aTa/(this.g_Jw||.001),this.g_aSY.start(0,this.g_aTa),this.g_aSI=!1)}g_aST(){return super.g_aST()*this.g_aTb}g_aRF(){this.g_aTb=this.g_aSL||this.g_aEl()?0:1,this.g_aRE()}g_aEt(e){e=!!e,this.g_ZC===e||(this.g_ZC=e,this.g_aSY&&(this.g_aSY.loop=e))}g_aRG(){let e=this.g_Jw;this.g_aSM&&(e*=this.g_aSb.g_Jh()),this.g_aSY&&(this.g_aSY.playbackRate.value=e)}g_aEB(e){this.g_St||this.g_aRm()||(this.g_aSI?this.g_aTa=e:(this.g_aRD(),this.g_aTa=e,this.g_KP()))}g_aSV(){return this.g_aTa}g_aoV(e){e?this.g_Kf()?(this.g_aSJ=!0,this.g_aTa=this.g_aSR(!0),this.g_ZC&&(this.g_aTa%=this.g_afk()),this.g_aSY.stop(0)):this.g_aSJ=!1:this.g_aSJ&&(this.g_aTc(),this.g_aSY=this.g_aQO().createBufferSource(),this.g_aSY.buffer=this.g_vg.g_aRL(),this.g_aSY.connect(this.g_aSF),this.g_aS$=this.g_aSY,this.g_aSY.onended=this.g_aSZ,this.g_aSY.loop=this.g_ZC,this.g_aRE(),this.g_aRG(),this.g_anw=this.g_aSQ()-this.g_aTa/(this.g_Jw||.001),this.g_aSY.start(0,this.g_aTa),this.g_aSJ=!1)}g_aSa(e){super.g_aSa(e),this.g_aTa=e.resumePosition}},"use strict";{function g(e){return Math.pow(10,e/20)}function _(a){return Math.max(Math.min(g(a),1),0)}function t(e){return 20*(Math.log(e)/2.302585092994046)}function n(e){return t(Math.max(Math.min(e,1),0))}function i(e,a){return 1-Math.exp(-a*e)}class a{constructor(e){this.g_aSb=e,this.g_aPX=e.g_aQO(),this.g_BS=-1,this.g_aSE="",this.g_ko="",this.g_aTd=null}g_em(){this.g_aPX=null}g_aiX(e){this.g_BS=e}g_Dl(){return this.g_BS}g_aQT(e){this.g_aSE=e}g_aRl(){return this.g_aSE}g_aTe(){return this.g_aPX.createGain()}g_aQR(){}g_aQV(){}g_aTf(g,a,_,t){if(g.cancelScheduledValues(0),0===t)return void(g.value=a);const n=this.g_aPX.currentTime;t+=n,0===_?g.setValueAtTime(a,t):1===_?(g.setValueAtTime(g.value,n),g.linearRampToValueAtTime(a,t)):2===_?(g.setValueAtTime(g.value,n),g.exponentialRampToValueAtTime(a,t)):void 0}g_aRx(){return{type:this.g_ko,tag:this.g_aSE,params:this.g_aTd}}}self.g_aRI=class extends a{constructor(_,a,t,n,i,e,o){super(_),this.g_ko="filter",this.g_aTd=[a,t,n,i,e,o],this.g_aTg=this.g_aTe(),this.g_aTh=this.g_aTe(),this.g_aTh.gain.value=o,this.g_aTi=this.g_aTe(),this.g_aTi.gain.value=1-o,this.g_aTj=this.g_aPX.createBiquadFilter(),this.g_aTj.type=a,this.g_aTj.frequency.value=t,this.g_aTj.detune.value=n,this.g_aTj.Q.value=i,this.g_aTj.gain.vlaue=e,this.g_aTg.connect(this.g_aTj),this.g_aTg.connect(this.g_aTi),this.g_aTj.connect(this.g_aTh)}g_em(){this.g_aTg.disconnect(),this.g_aTj.disconnect(),this.g_aTh.disconnect(),this.g_aTi.disconnect(),super.g_em()}g_aQV(e){this.g_aTh.disconnect(),this.g_aTh.connect(e),this.g_aTi.disconnect(),this.g_aTi.connect(e)}g_aQR(){return this.g_aTg}g_aRW(e,a,g,_){0===e?(a=Math.max(Math.min(a/100,1),0),this.g_aTd[5]=a,this.g_aTf(this.g_aTh.gain,a,g,_),this.g_aTf(this.g_aTi.gain,1-a,g,_)):1===e?(this.g_aTd[1]=a,this.g_aTf(this.g_aTj.frequency,a,g,_)):2===e?(this.g_aTd[2]=a,this.g_aTf(this.g_aTj.detune,a,g,_)):3===e?(this.g_aTd[3]=a,this.g_aTf(this.g_aTj.Q,a,g,_)):4===e?(this.g_aTd[4]=a,this.g_aTf(this.g_aTj.gain,a,g,_)):void 0}},self.g_aRJ=class extends a{constructor(e,a,g,_){super(e),this.g_ko="delay",this.g_aTd=[a,g,_],this.g_aTg=this.g_aTe(),this.g_aTh=this.g_aTe(),this.g_aTh.gain.value=_,this.g_aTi=this.g_aTe(),this.g_aTi.gain.value=1-_,this.g_aTk=this.g_aTe(),this.g_aTl=this.g_aPX.createDelay(a),this.g_aTl.delayTime.value=a,this.g_aTm=this.g_aTe(),this.g_aTm.gain.value=g,this.g_aTg.connect(this.g_aTk),this.g_aTg.connect(this.g_aTi),this.g_aTk.connect(this.g_aTh),this.g_aTk.connect(this.g_aTl),this.g_aTl.connect(this.g_aTm),this.g_aTm.connect(this.g_aTk)}g_em(){this.g_aTg.disconnect(),this.g_aTh.disconnect(),this.g_aTi.disconnect(),this.g_aTk.disconnect(),this.g_aTl.disconnect(),this.g_aTm.disconnect(),super.g_em()}g_aQV(e){this.g_aTh.disconnect(),this.g_aTh.connect(e),this.g_aTi.disconnect(),this.g_aTi.connect(e)}g_aQR(){return this.g_aTg}g_aRW(g,a,t,n){0===g?(a=Math.max(Math.min(a/100,1),0),this.g_aTd[2]=a,this.g_aTf(this.g_aTh.gain,a,t,n),this.g_aTf(this.g_aTi.gain,1-a,t,n)):4===g?(this.g_aTd[1]=_(a),this.g_aTf(this.g_aTm.gain,_(a),t,n)):5===g?(this.g_aTd[0]=a,this.g_aTf(this.g_aTl.delayTime,a,t,n)):void 0}},self.g_aRK=class extends a{constructor(e,a,g,_){super(e),this.g_ko="convolution",this.g_aTd=[g,_],this.g_aTn="",this.g_aTo="",this.g_aTp="",this.g_aTg=this.g_aTe(),this.g_aTh=this.g_aTe(),this.g_aTh.gain.value=_,this.g_aTi=this.g_aTe(),this.g_aTi.gain.value=1-_,this.g_aTq=this.g_aPX.createConvolver(),this.g_aTq.normalize=g,this.g_aTq.buffer=a,this.g_aTg.connect(this.g_aTq),this.g_aTg.connect(this.g_aTi),this.g_aTq.connect(this.g_aTh)}g_em(){this.g_aTg.disconnect(),this.g_aTq.disconnect(),this.g_aTh.disconnect(),this.g_aTi.disconnect(),super.g_em()}g_aQV(e){this.g_aTh.disconnect(),this.g_aTh.connect(e),this.g_aTi.disconnect(),this.g_aTi.connect(e)}g_aQR(){return this.g_aTg}g_aRW(e,a,g,_){0===e?(a=Math.max(Math.min(a/100,1),0),this.g_aTd[1]=a,this.g_aTf(this.g_aTh.gain,a,g,_),this.g_aTf(this.g_aTi.gain,1-a,g,_)):void 0}g_aRM(e,a,g){this.g_aTn=e,this.g_aTo=a,this.g_aTp=g}g_aRx(){const e=super.g_aRx();return e.bufferOriginalUrl=this.g_aTn,e.bufferUrl="",e.bufferType=this.g_aTp,e}},self.g_aRN=class extends a{constructor(g,a,_,t,n,e){super(g),this.g_ko="flanger",this.g_aTd=[a,_,t,n,e],this.g_aTg=this.g_aTe(),this.g_aTi=this.g_aTe(),this.g_aTi.gain.value=1-e/2,this.g_aTh=this.g_aTe(),this.g_aTh.gain.value=e/2,this.g_aTr=this.g_aTe(),this.g_aTr.gain.value=n,this.g_aTl=this.g_aPX.createDelay(a+_),this.g_aTl.delayTime.value=a,this.g_aTs=this.g_aPX.createOscillator(),this.g_aTs.frequency.value=t,this.g_aTt=this.g_aTe(),this.g_aTt.gain.value=_,this.g_aTg.connect(this.g_aTl),this.g_aTg.connect(this.g_aTi),this.g_aTl.connect(this.g_aTh),this.g_aTl.connect(this.g_aTr),this.g_aTr.connect(this.g_aTl),this.g_aTs.connect(this.g_aTt),this.g_aTt.connect(this.g_aTl.delayTime),this.g_aTs.start(0)}g_em(){this.g_aTs.stop(0),this.g_aTg.disconnect(),this.g_aTl.disconnect(),this.g_aTs.disconnect(),this.g_aTt.disconnect(),this.g_aTi.disconnect(),this.g_aTh.disconnect(),this.g_aTr.disconnect(),super.g_em()}g_aQV(e){this.g_aTh.disconnect(),this.g_aTh.connect(e),this.g_aTi.disconnect(),this.g_aTi.connect(e)}g_aQR(){return this.g_aTg}g_aRW(e,a,g,_){0===e?(a=Math.max(Math.min(a/100,1),0),this.g_aTd[4]=a,this.g_aTf(this.g_aTh.gain,a/2,g,_),this.g_aTf(this.g_aTi.gain,1-a/2,g,_)):6===e?(this.g_aTd[1]=a/1e3,this.g_aTf(this.g_aTt.gain,a/1e3,g,_)):7===e?(this.g_aTd[2]=a,this.g_aTf(this.g_aTs.frequency,a,g,_)):8===e?(this.g_aTd[3]=a/100,this.g_aTf(this.g_aTr.gain,a/100,g,_)):void 0}},self.g_aRO=class extends a{constructor(_,a,t,n,i,e,o){super(_),this.g_ko="phaser",this.g_aTd=[a,t,n,i,e,o],this.g_aTg=this.g_aTe(),this.g_aTi=this.g_aTe(),this.g_aTi.gain.value=1-o/2,this.g_aTh=this.g_aTe(),this.g_aTh.gain.value=o/2,this.g_aTj=this.g_aPX.createBiquadFilter(),this.g_aTj.type="allpass",this.g_aTj.frequency.value=a,this.g_aTj.detune.value=t,this.g_aTj.Q.value=n,this.g_aTs=this.g_aPX.createOscillator(),this.g_aTs.frequency.value=e,this.g_aTt=this.g_aTe(),this.g_aTt.gain.value=i,this.g_aTg.connect(this.g_aTj),this.g_aTg.connect(this.g_aTi),this.g_aTj.connect(this.g_aTh),this.g_aTs.connect(this.g_aTt),this.g_aTt.connect(this.g_aTj.frequency),this.g_aTs.start(0)}g_em(){this.g_aTs.stop(0),this.g_aTg.disconnect(),this.g_aTj.disconnect(),this.g_aTs.disconnect(),this.g_aTt.disconnect(),this.g_aTi.disconnect(),this.g_aTh.disconnect(),super.g_em()}g_aQV(e){this.g_aTh.disconnect(),this.g_aTh.connect(e),this.g_aTi.disconnect(),this.g_aTi.connect(e)}g_aQR(){return this.g_aTg}g_aRW(e,a,g,_){0===e?(a=Math.max(Math.min(a/100,1),0),this.g_aTd[5]=a,this.g_aTf(this.g_aTh.gain,a/2,g,_),this.g_aTf(this.g_aTi.gain,1-a/2,g,_)):1===e?(this.g_aTd[0]=a,this.g_aTf(this.g_aTj.frequency,a,g,_)):2===e?(this.g_aTd[1]=a,this.g_aTf(this.g_aTj.detune,a,g,_)):3===e?(this.g_aTd[2]=a,this.g_aTf(this.g_aTj.Q,a,g,_)):6===e?(this.g_aTd[3]=a,this.g_aTf(this.g_aTt.gain,a,g,_)):7===e?(this.g_aTd[4]=a,this.g_aTf(this.g_aTs.frequency,a,g,_)):void 0}},self.g_aRP=class extends a{constructor(e,a){super(e),this.g_ko="gain",this.g_aTd=[a],this.g_aTu=this.g_aTe(),this.g_aTu.gain.value=a}g_em(){this.g_aTu.disconnect(),super.g_em()}g_aQV(e){this.g_aTu.disconnect(),this.g_aTu.connect(e)}g_aQR(){return this.g_aTu}g_aRW(g,a,t,n){4===g?(this.g_aTd[0]=_(a),this.g_aTf(this.g_aTu.gain,_(a),t,n)):void 0}},self.g_aRQ=class extends a{constructor(e,a,g){super(e),this.g_ko="tremolo",this.g_aTd=[a,g],this.g_aTu=this.g_aTe(),this.g_aTu.gain.value=1-g/2,this.g_aTs=this.g_aPX.createOscillator(),this.g_aTs.frequency.value=a,this.g_aTt=this.g_aTe(),this.g_aTt.gain.value=g/2,this.g_aTs.connect(this.g_aTt),this.g_aTt.connect(this.g_aTu.gain),this.g_aTs.start(0)}g_em(){this.g_aTs.stop(0),this.g_aTs.disconnect(),this.g_aTt.disconnect(),this.g_aTu.disconnect(),super.g_em()}g_aQV(e){this.g_aTu.disconnect(),this.g_aTu.connect(e)}g_aQR(){return this.g_aTu}g_aRW(e,a,g,_){0===e?(a=Math.max(Math.min(a/100,1),0),this.g_aTd[1]=a,this.g_aTf(this.g_aTu.gain.value,1-a/2,g,_),this.g_aTf(this.g_aTt.gain.value,a/2,g,_)):7===e?(this.g_aTd[0]=a,this.g_aTf(this.g_aTs.frequency,a,g,_)):void 0}},self.g_aRR=class extends a{constructor(e,a,g){super(e),this.g_ko="ringmod",this.g_aTd=[a,g],this.g_aTg=this.g_aTe(),this.g_aTh=this.g_aTe(),this.g_aTh.gain.value=g,this.g_aTi=this.g_aTe(),this.g_aTi.gain.value=1-g,this.g_aTv=this.g_aTe(),this.g_aTv.gain.value=0,this.g_aTs=this.g_aPX.createOscillator(),this.g_aTs.frequency.value=a,this.g_aTs.connect(this.g_aTv.gain),this.g_aTs.start(0),this.g_aTg.connect(this.g_aTv),this.g_aTg.connect(this.g_aTi),this.g_aTv.connect(this.g_aTh)}g_em(){this.g_aTs.stop(0),this.g_aTs.disconnect(),this.g_aTv.disconnect(),this.g_aTg.disconnect(),this.g_aTh.disconnect(),this.g_aTi.disconnect(),super.g_em()}g_aQV(e){this.g_aTh.disconnect(),this.g_aTh.connect(e),this.g_aTi.disconnect(),this.g_aTi.connect(e)}g_aQR(){return this.g_aTg}g_aRW(e,a,g,_){0===e?(a=Math.max(Math.min(a/100,1),0),this.g_aTd[1]=a,this.g_aTf(this.g_aTh.gain,a,g,_),this.g_aTf(this.g_aTi.gain,1-a,g,_)):7===e?(this.g_aTd[0]=a,this.g_aTf(this.g_aTs.frequency,a,g,_)):void 0}},self.g_aRS=class extends a{constructor(g,a,_,t,n,e){super(g),this.g_ko="distortion",this.g_aTd=[a,_,t,n,e],this.g_aTg=this.g_aTe(),this.g_aTw=this.g_aTe(),this.g_aTx=this.g_aTe(),this.g_aTy(t,n),this.g_aTh=this.g_aTe(),this.g_aTh.gain.value=e,this.g_aTi=this.g_aTe(),this.g_aTi.gain.value=1-e,this.g_aTz=this.g_aPX.createWaveShaper(),this.g_aTA=new Float32Array(65536),this.g_aTB(a,_),this.g_aTz.curve=this.g_aTA,this.g_aTg.connect(this.g_aTw),this.g_aTg.connect(this.g_aTi),this.g_aTw.connect(this.g_aTz),this.g_aTz.connect(this.g_aTx),this.g_aTx.connect(this.g_aTh)}g_em(){this.g_aTg.disconnect(),this.g_aTw.disconnect(),this.g_aTz.disconnect(),this.g_aTx.disconnect(),this.g_aTh.disconnect(),this.g_aTi.disconnect(),super.g_em()}g_aTy(e,g){.01>e&&(e=.01),this.g_aTw.gain.value=e,this.g_aTx.gain.value=Math.pow(1/e,.6)*g}g_aTB(e,a){for(let g,_=0;32768>_;++_)g=_/32768,g=this.g_aTC(g,e,a),this.g_aTA[32768+_]=g,this.g_aTA[32768-_-1]=-g}g_aTC(e,a,_){const t=1.05*_*a-a,n=0>e?-1:1,o=0>e?-e:e;let g=o<a?o:a+t*i(o-a,1/t);return g*=n,g}g_aQV(e){this.g_aTh.disconnect(),this.g_aTh.connect(e),this.g_aTi.disconnect(),this.g_aTi.connect(e)}g_aQR(){return this.g_aTg}g_aRW(e,a,g,_){0===e?(a=Math.max(Math.min(a/100,1),0),this.g_aTd[4]=a,this.g_aTf(this.g_aTh.gain,a,g,_),this.g_aTf(this.g_aTi.gain,1-a,g,_)):void 0}},self.g_aRT=class extends a{constructor(g,a,_,t,n,e){super(g),this.g_ko="compressor",this.g_aTd=[a,_,t,n,e],this.g_aTu=this.g_aPX.createDynamicsCompressor(),this.g_aTu.threshold.value=a,this.g_aTu.knee.value=_,this.g_aTu.ratio.value=t,this.g_aTu.attack.value=n,this.g_aTu.release.value=e}g_em(){this.g_aTu.disconnect(),super.g_em()}g_aQV(e){this.g_aTu.disconnect(),this.g_aTu.connect(e)}g_aQR(){return this.g_aTu}g_aRW(){}},self.g_aRU=class extends a{constructor(e,a,g){super(e),this.g_ko="analyser",this.g_aTd=[a,g],this.g_aTu=this.g_aPX.createAnalyser(),this.g_aTu.fftSize=a,this.g_aTu.smoothingTimeConstant=g,this.g_aTD=new Float32Array(this.g_aTu.frequencyBinCount),this.g_aTE=new Uint8Array(a),this.g_aTF=0,this.g_aTG=0,this.g_aSb.g_aRX(this)}g_em(){this.g_aSb.g_aRY(this),this.g_aTu.disconnect(),super.g_em()}g_Jj(){this.g_aTu.getFloatFrequencyData(this.g_aTD),this.g_aTu.getByteTimeDomainData(this.g_aTE);const e=this.g_aTu.fftSize;this.g_aTF=0;let a=0;for(let g,_=0;_<e;++_)g=(this.g_aTE[_]-128)/128,0>g&&(g=-g),this.g_aTF<g&&(this.g_aTF=g),a+=g*g;this.g_aTF=n(this.g_aTF),this.g_aTG=n(Math.sqrt(a/e))}g_aQV(e){this.g_aTu.disconnect(),this.g_aTu.connect(e)}g_aQR(){return this.g_aTu}g_aRW(){}g_aRy(){return{tag:this.g_aRl(),index:this.g_Dl(),peak:this.g_aTF,rms:this.g_aTG,binCount:this.g_aTu.frequencyBinCount,freqBins:this.g_aTD}}}}{const e=class extends g_aNi{constructor(e){super(e,"platform-info"),this.g_aNt("get-initial-state",()=>this.g_aPJ()),window.addEventListener("resize",()=>this.g_aTH())}g_aPJ(){return{screenWidth:screen.width,screenHeight:screen.height,windowOuterWidth:window.outerWidth,windowOuterHeight:window.outerHeight}}g_aTH(){this.g_aNm("window-resize",{windowOuterWidth:window.outerWidth,windowOuterHeight:window.outerHeight})}};g_aNR.g_aON(e)}