Файловый менеджер - Редактировать - /home/jogoso94/public_html/jogos/sandy_balls/scripts/main.js
�азад
'use strict';function w(f,a,b,e){f.u.tc(f.ab,a,b,e,void 0)}function H(f,a,b,e){f.u.ca?w(f,a,b,e):f.u.uf()._OnMessageFromDOM({type:"event",component:f.ab,handler:a,dispatchOpts:e||null,data:b,responseId:null})}function J(f,a,b){f.u.C(f.ab,a,b)}function L(f,a){for(const [b,e]of a)J(f,b,e)}function M(f){f.Tb||(f.u.cf(f.le),f.Tb=!0)}window.Sa=class{constructor(f,a){this.u=f;this.ab=a;this.Tb=!1;this.le=()=>this.Da()}nd(){}Da(){}};function N(f){-1!==f.Qa&&(self.clearTimeout(f.Qa),f.Qa=-1)} window.Te=class{constructor(f,a){this.Tc=f;this.Kg=a;this.Qa=-1;this.Ub=-Infinity;this.me=()=>{this.Qa=-1;this.Ub=Date.now();this.gb=!0;this.Tc();this.gb=!1};this.Sd=this.gb=!1}f(){N(this);this.me=this.Tc=null}};"use strict";function O(f,a){J(f,"get-element",b=>{const e=f.ba.get(b.elementId);return a(e,b)})} window.fh=class extends self.Sa{constructor(f,a){super(f,a);this.ba=new Map;this.Sc=!0;L(this,[["create",()=>{throw Error("required override");}],["destroy",b=>{{b=b.elementId;const e=this.ba.get(b);this.Sc&&e.parentElement.removeChild(e);this.ba.delete(b)}}],["set-visible",b=>{this.Sc&&(this.ba.get(b.elementId).style.display=b.isVisible?"":"none")}],["update-position",b=>{if(this.Sc){var e=this.ba.get(b.elementId);e.style.left=b.left+"px";e.style.top=b.top+"px";e.style.width=b.width+"px";e.style.height= b.height+"px";b=b.fontSize;null!==b&&(e.style.fontSize=b+"em")}}],["update-state",b=>{this.ba.get(b.elementId);throw Error("required override");}],["focus",b=>this.Mc(b)],["set-css-style",b=>{this.ba.get(b.elementId).style[b.prop]=b.val}],["set-attribute",b=>{this.ba.get(b.elementId).setAttribute(b.name,b.val)}],["remove-attribute",b=>{this.ba.get(b.elementId).removeAttribute(b.name)}]]);O(this,b=>b)}Mc(f){var a=this.ba.get(f.elementId);f.focus?a.focus():a.blur()}};"use strict"; {const f=/(iphone|ipod|ipad|macos|macintosh|mac os x)/i.test(navigator.userAgent),a=/android/i.test(navigator.userAgent);let b=0;function e(m){const c=document.createElement("script");c.async=!1;c.type="module";return m.Vg?new Promise(k=>{const l="c3_resolve_"+b;++b;self[l]=k;c.textContent=m.Zg+`\n\nself["${l}"]();`;document.head.appendChild(c)}):new Promise((k,l)=>{c.onload=k;c.onerror=l;c.src=m;document.head.appendChild(c)})}let h=!1,n=!1;function q(){if(!h){try{new Worker("blob://",{get type(){n= !0}})}catch(m){}h=!0}return n}let v=new Audio;const B={"audio/webm; codecs=opus":!!v.canPlayType("audio/webm; codecs=opus"),"audio/ogg; codecs=opus":!!v.canPlayType("audio/ogg; codecs=opus"),"audio/webm; codecs=vorbis":!!v.canPlayType("audio/webm; codecs=vorbis"),"audio/ogg; codecs=vorbis":!!v.canPlayType("audio/ogg; codecs=vorbis"),"audio/mp4":!!v.canPlayType("audio/mp4"),"audio/mpeg":!!v.canPlayType("audio/mpeg")};v=null;async function D(m){m=await x(m);return(new TextDecoder("utf-8")).decode(m)} function x(m){return new Promise((c,k)=>{const l=new FileReader;l.onload=p=>c(p.target.result);l.onerror=p=>k(p);l.readAsArrayBuffer(m)})}const y=[];let C=0;window.RealFile=window.File;const E=[],A=new Map,F=new Map;let I=0;const K=[];self.runOnStartup=function(m){if("function"!==typeof m)throw Error("runOnStartup called without a function");K.push(m)};const d=new Set(["cordova","playable-ad","instant-games"]);let g=!1;window.va=class m{constructor(c){this.ca=c.ah;this.qa=null;this.F="";this.hc=c.Yg; this.wb={};this.Ja=this.vb=null;this.Rb=[];this.G=this.Oa=null;this.Yd=!1;this.jb=null;this.Na=-1;this.Pg=()=>this.Uf();this.Ma=[];this.s=c.ne;this.hb="file"===location.protocol.substr(0,4);!this.ca||"undefined"!==typeof OffscreenCanvas&&navigator.userActivation&&q()||(this.ca=!1);if("playable-ad"===this.s||"instant-games"===this.s)this.ca=!1;if("cordova"===this.s&&this.ca)if(a){const k=/Chrome\/(\d+)/i.exec(navigator.userAgent);k&&90<=parseInt(k[1],10)||(this.ca=!1)}else this.ca=!1;this.Xb=this.ia= null;"html5"!==this.s&&"playable-ad"!==this.s||!this.hb||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.)");"html5"!==this.s||window.isSecureContext||console.warn("[Construct 3] Warning: the browser indicates this is not a secure context. Some features may be unavailable. Use secure (HTTPS) hosting to ensure all features are available.");this.C("runtime","cordova-fetch-local-file",k=>this.Cf(k)); this.C("runtime","create-job-worker",()=>this.Df());"cordova"===this.s?document.addEventListener("deviceready",()=>this.Fd(c)):this.Fd(c)}f(){this.zc();this.qa&&(this.qa=this.qa.onmessage=null);this.vb&&(this.vb.terminate(),this.vb=null);this.Ja&&(this.Ja.f(),this.Ja=null);this.G&&(this.G.parentElement.removeChild(this.G),this.G=null)}Oe(){return f&&"cordova"===this.s}sc(){const c=navigator.userAgent;return f&&d.has(this.s)||navigator.standalone||/crios\/|fxios\/|edgios\//i.test(c)}Me(){return a}ud(){return a&& d.has(this.s)}async Fd(c){"macos-wkwebview"===this.s&&this.Qc({type:"ready"});if("playable-ad"===this.s){this.ia=self.c3_base64files;this.Xb={};await this.hf();for(let l=0,p=c.Ra.length;l<p;++l){var k=c.Ra[l].toLowerCase();this.Xb.hasOwnProperty(k)?c.Ra[l]={Vg:!0,Zg:this.Xb[k]}:this.ia.hasOwnProperty(k)&&(c.Ra[l]=URL.createObjectURL(this.ia[k]))}}c.Qg?this.F=c.Qg:(k=location.origin,this.F=("null"===k?"file:///":k)+location.pathname,k=this.F.lastIndexOf("/"),-1!==k&&(this.F=this.F.substr(0,k+1))); c.dh&&(this.wb=c.dh);k=new MessageChannel;this.qa=k.port1;this.qa.onmessage=l=>this._OnMessageFromRuntime(l.data);window.c3_addPortMessageHandler&&window.c3_addPortMessageHandler(l=>this.Qf(l));this.jb=new self.Pe(this);await P(this.jb);"object"===typeof window.StatusBar&&window.StatusBar.hide();"object"===typeof window.AndroidFullScreen&&window.AndroidFullScreen.immersiveMode();this.ca?await this.xf(c,k.port2):await this.wf(c,k.port2)}Cc(c){c=this.wb.hasOwnProperty(c)?this.wb[c]:c.endsWith("/workermain.js")&& this.wb.hasOwnProperty("workermain.js")?this.wb["workermain.js"]:"playable-ad"===this.s&&this.ia.hasOwnProperty(c.toLowerCase())?this.ia[c.toLowerCase()]:c;c instanceof Blob&&(c=URL.createObjectURL(c));return c}async mc(c,k,l){if(c.startsWith("blob:"))return new Worker(c,l);if("cordova"===this.s&&this.hb)return c=await this.yb(l.Ug?c:this.hc+c),new Worker(URL.createObjectURL(new Blob([c],{type:"application/javascript"})),l);c=new URL(c,k);if(location.origin!==c.origin){c=await fetch(c);if(!c.ok)throw Error("failed to fetch worker script"); c=await c.blob();return new Worker(URL.createObjectURL(c),l)}return new Worker(c,l)}oa(){return Math.max(window.innerWidth,1)}fa(){return Math.max(window.innerHeight,1)}Ed(c){var k=this.jb;return{baseUrl:this.F,previewUrl:location.href,windowInnerWidth:this.oa(),windowInnerHeight:this.fa(),devicePixelRatio:window.devicePixelRatio,isFullscreen:m.Va(),projectData:c.lh,previewImageBlobs:window.cr_previewImageBlobs||this.ia,previewProjectFileBlobs:window.cr_previewProjectFileBlobs,previewProjectFileSWUrls:window.cr_previewProjectFiles, swClientId:window.jh||"",exportType:c.ne,isDebug:-1<self.location.search.indexOf("debug"),ife:!!self.kh,jobScheduler:{inputPort:k.$c,outputPort:k.fd,maxNumWorkers:k.Mg},supportedAudioFormats:B,opusWasmScriptUrl:window.cr_opusWasmScriptUrl||this.hc+"opus.wasm.js",opusWasmBinaryUrl:window.cr_opusWasmBinaryUrl||this.hc+"opus.wasm.wasm",isFileProtocol:this.hb,isiOSCordova:this.Oe(),isiOSWebView:this.sc(),isFBInstantAvailable:"undefined"!==typeof self.FBInstant}}async xf(c,k){var l=this.Cc(c.bh);this.vb= await this.mc(l,this.F,{type:"module",name:"Runtime",Ug:!0});this.G=document.createElement("canvas");this.G.style.display="none";l=this.G.transferControlToOffscreen();document.body.appendChild(this.G);window.c3canvas=this.G;let p=c.md||[],u=c.Ra;p=await Promise.all(p.map(r=>this.Ea(r)));u=await Promise.all(u.map(r=>this.Ea(r)));if("cordova"===this.s)for(let r=0,t=c.kc.length;r<t;++r){const z=c.kc[r],G=z[0];if(G===c.kd||"scriptsInEvents.js"===G||G.endsWith("/scriptsInEvents.js"))z[1]=await this.Ea(G)}this.vb.postMessage(Object.assign(this.Ed(c), {type:"init-runtime",isInWorker:!0,messagePort:k,canvas:l,workerDependencyScripts:p,engineScripts:u,projectScripts:c.kc,mainProjectScript:c.kd,projectScriptsStatus:self.C3_ProjectScriptsStatus}),[k,l,...Q(this.jb)]);this.Rb=E.map(r=>new r(this));this.Dd();self.c3_callFunction=(r,t)=>this.Oa.yf(r,t);"preview"===this.s&&(self.goToLastErrorScript=()=>this.tc("runtime","go-to-last-error-script"))}async wf(c,k){this.G=document.createElement("canvas");this.G.style.display="none";document.body.appendChild(this.G); window.c3canvas=this.G;this.Rb=E.map(r=>new r(this));this.Dd();var l=c.Ra.map(r=>"string"===typeof r?(new URL(r,this.F)).toString():r);Array.isArray(c.md)&&l.unshift(...c.md);l=await Promise.all(l.map(r=>this.Ea(r)));await Promise.all(l.map(r=>e(r)));l=self.C3_ProjectScriptsStatus;const p=c.kd,u=c.kc;for(let [r,t]of u)if(t||(t=r),r===p)try{t=await this.Ea(t),await e(t),"preview"!==this.s||l[r]||this.Nd(r,"main script did not run to completion")}catch(z){this.Nd(r,z)}else if("scriptsInEvents.js"=== r||r.endsWith("/scriptsInEvents.js"))t=await this.Ea(t),await e(t);"preview"===this.s&&"object"!==typeof self.eh.gh?(this.Kb(),console.error("[C3 runtime] Failed to load JavaScript code used in events. Check all your JavaScript code has valid syntax."),alert("Failed to load JavaScript code used in events. Check all your JavaScript code has valid syntax.")):(c=Object.assign(this.Ed(c),{isInWorker:!1,messagePort:k,canvas:this.G,runOnStartupFunctions:K}),this.Hd(),this.Ja=self.C3_CreateRuntime(c),await self.C3_InitRuntime(this.Ja, c))}Nd(c,k){this.Kb();console.error(`[Preview] Failed to load project main script (${c}): `,k);alert(`Failed to load project main script (${c}). Check all your JavaScript code has valid syntax. Press F12 and check the console for error details.`)}Hd(){this.Kb()}Kb(){const c=window.Rg;c&&(c.parentElement.removeChild(c),window.Rg=null)}async Df(){const c=await R(this.jb);return{outputPort:c,transferables:[c]}}uf(){if(this.ca)throw Error("not available in worker mode");return this.Ja}tc(c,k,l,p,u){this.qa.postMessage({type:"event", component:c,handler:k,dispatchOpts:p||null,data:l,responseId:null},u)}wd(c,k,l,p,u){const r=I++,t=new Promise((z,G)=>{F.set(r,{resolve:z,reject:G})});this.qa.postMessage({type:"event",component:c,handler:k,dispatchOpts:p||null,data:l,responseId:r},u);return t}["_OnMessageFromRuntime"](c){const k=c.type;if("event"===k)return this.If(c);if("result"===k)this.Xf(c);else if("runtime-ready"===k)this.Yf();else if("alert-error"===k)this.Kb(),alert(c.message);else if("creating-runtime"===k)this.Hd();else throw Error(`unknown message '${k}'`); }If(c){const k=c.component,l=c.handler,p=c.data,u=c.responseId;if(c=A.get(k))if(c=c.get(l)){var r=null;try{r=c(p)}catch(t){console.error(`Exception in '${k}' handler '${l}':`,t);null!==u&&this.Jb(u,!1,""+t);return}if(null===u)return r;r&&r.then?r.then(t=>this.Jb(u,!0,t)).catch(t=>{console.error(`Rejection from '${k}' handler '${l}':`,t);this.Jb(u,!1,""+t)}):this.Jb(u,!0,r)}else console.warn(`[DOM] No handler '${l}' for component '${k}'`);else console.warn(`[DOM] No event handlers for component '${k}'`)}Jb(c, k,l){let p;l&&l.transferables&&(p=l.transferables);this.qa.postMessage({type:"result",responseId:c,isOk:k,result:l},p)}Xf(c){const k=c.responseId,l=c.isOk;c=c.result;const p=F.get(k);l?p.resolve(c):p.reject(c);F.delete(k)}C(c,k,l){let p=A.get(c);p||(p=new Map,A.set(c,p));if(p.has(k))throw Error(`[DOM] Component '${c}' already has handler '${k}'`);p.set(k,l)}static xb(c){if(E.includes(c))throw Error("DOM handler already added");E.push(c)}Dd(){for(const c of this.Rb)if("runtime"===c.ab){this.Oa=c;return}throw Error("cannot find runtime DOM handler"); }Qf(c){this.tc("debugger","message",c)}Yf(){for(const c of this.Rb)c.nd()}static Va(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||g)}static Lb(c){g=!!c}cf(c){this.Ma.push(c);this.Pc()}jg(c){c=this.Ma.indexOf(c);if(-1===c)throw Error("invalid callback");this.Ma.splice(c,1);this.Ma.length||this.zc()}Pc(){-1===this.Na&&this.Ma.length&&(this.Na=requestAnimationFrame(this.Pg))}zc(){-1!==this.Na&&(cancelAnimationFrame(this.Na),this.Na=-1)}Uf(){this.Na= -1;for(const c of this.Ma)c();this.Pc()}wa(c){this.Oa.wa(c)}Ca(c){this.Oa.Ca(c)}Oc(){this.Oa.Oc()}Eb(c){this.Oa.Eb(c)}Ne(){return!!B["audio/webm; codecs=opus"]}async Ig(c){c=await this.wd("runtime","opus-decode",{arrayBuffer:c},null,[c]);return new Float32Array(c)}We(){this.Yd=!0}Le(c){return/^(?:[a-z\-]+:)?\/\//.test(c)||"data:"===c.substr(0,5)||"blob:"===c.substr(0,5)}vd(c){return!this.Le(c)}async Ea(c){return"cordova"===this.s&&(c.startsWith("file:")||this.hb&&this.vd(c))?(c.startsWith(this.F)&& (c=c.substr(this.F.length)),c=await this.yb(c),URL.createObjectURL(new Blob([c],{type:"application/javascript"}))):c}async Cf(c){const k=c.filename;switch(c.as){case "text":return await this.Ee(k);case "buffer":return await this.yb(k);default:throw Error("unsupported type");}}qd(c){const k=window.cordova.file.applicationDirectory+"www/"+c.toLowerCase();return new Promise((l,p)=>{window.resolveLocalFileSystemURL(k,u=>{u.file(l,p)},p)})}async Ee(c){c=await this.qd(c);return await D(c)}Ac(){if(y.length&& !(8<=C)){C++;var c=y.shift();this.jf(c.filename,c.$g,c.Tg)}}yb(c){return new Promise((k,l)=>{y.push({filename:c,$g:p=>{C--;this.Ac();k(p)},Tg:p=>{C--;this.Ac();l(p)}});this.Ac()})}async jf(c,k,l){try{const p=await this.qd(c),u=await x(p);k(u)}catch(p){l(p)}}Qc(c){if("windows-webview2"===this.s)window.chrome.webview.postMessage(JSON.stringify(c));else if("macos-wkwebview"===this.s)window.webkit.messageHandlers.C3Wrapper.postMessage(JSON.stringify(c));else throw Error("cannot send wrapper message"); }async hf(){const c=[];for(const [k,l]of Object.entries(this.ia))c.push(this.gf(k,l));await Promise.all(c)}async gf(c,k){if("object"===typeof k)this.ia[c]=new Blob([k.str],{type:k.type}),this.Xb[c]=k.str;else{let l=await this.sf(k);l||(l=this.lf(k));this.ia[c]=l}}async sf(c){try{return await (await fetch(c)).blob()}catch(k){return console.warn("Failed to fetch a data: URI. Falling back to a slower workaround. This is probably because the Content Security Policy unnecessarily blocked it. Allow data: URIs in your CSP to avoid this.", k),null}}lf(c){c=this.dg(c);return this.ff(c.data,c.Wg)}dg(c){var k=c.indexOf(",");if(0>k)throw new URIError("expected comma in data: uri");var l=c.substring(k+1);k=c.substring(5,k).split(";");c=k[0]||"";const p=k[2];l="base64"===k[1]||"base64"===p?atob(l):decodeURIComponent(l);return{Wg:c,data:l}}ff(c,k){var l=c.length;let p=l>>2,u=new Uint8Array(l),r=new Uint32Array(u.buffer,0,p),t,z;for(z=t=0;t<p;++t)r[t]=c.charCodeAt(z++)|c.charCodeAt(z++)<<8|c.charCodeAt(z++)<<16|c.charCodeAt(z++)<<24;for(l&= 3;l--;)u[z]=c.charCodeAt(z),++z;return new Blob([u],{type:k})}}}"use strict"; {const f=self.va;function a(d){return d.sourceCapabilities&&d.sourceCapabilities.firesTouchEvents||d.originalEvent&&d.originalEvent.sourceCapabilities&&d.originalEvent.sourceCapabilities.firesTouchEvents}const b=new Map([["OSLeft","MetaLeft"],["OSRight","MetaRight"]]),e={dispatchRuntimeEvent:!0,dispatchUserScriptEvent:!0},h={dispatchUserScriptEvent:!0},n={dispatchRuntimeEvent:!0};function q(d){return new Promise((g,m)=>{const c=document.createElement("link");c.onload=()=>g(c);c.onerror=k=>m(k);c.rel= "stylesheet";c.href=d;document.head.appendChild(c)})}function v(d){return new Promise((g,m)=>{const c=new Image;c.onload=()=>g(c);c.onerror=k=>m(k);c.src=d})}async function B(d){d=URL.createObjectURL(d);try{return await v(d)}finally{URL.revokeObjectURL(d)}}function D(d){return new Promise((g,m)=>{let c=new FileReader;c.onload=k=>g(k.target.result);c.onerror=k=>m(k);c.readAsText(d)})}async function x(d,g,m){if(!/firefox/i.test(navigator.userAgent))return await B(d);var c=await D(d);c=(new DOMParser).parseFromString(c, "image/svg+xml");const k=c.documentElement;if(k.hasAttribute("width")&&k.hasAttribute("height")){const l=k.getAttribute("width"),p=k.getAttribute("height");if(!l.includes("%")&&!p.includes("%"))return await B(d)}k.setAttribute("width",g+"px");k.setAttribute("height",m+"px");c=(new XMLSerializer).serializeToString(c);d=new Blob([c],{type:"image/svg+xml"});return await B(d)}function y(d){do{if(d.parentNode&&d.hasAttribute("contenteditable"))return!0;d=d.parentNode}while(d);return!1}const C=new Set(["input", "textarea","datalist","select"]),E=new Set(["canvas","body","html"]);function A(d){E.has(d.target.tagName.toLowerCase())&&d.preventDefault()}function F(d){(d.metaKey||d.ctrlKey)&&d.preventDefault()}self.C3_GetSvgImageSize=async function(d){d=await B(d);if(0<d.width&&0<d.height)return[d.width,d.height];{d.style.position="absolute";d.style.left="0px";d.style.top="0px";d.style.visibility="hidden";document.body.appendChild(d);const g=d.getBoundingClientRect();document.body.removeChild(d);return[g.width, g.height]}};self.C3_RasterSvgImageBlob=async function(d,g,m,c,k){d=await x(d,g,m);const l=document.createElement("canvas");l.width=c;l.height=k;l.getContext("2d").drawImage(d,0,0,g,m);return l};let I=!1;document.addEventListener("pause",()=>I=!0);document.addEventListener("resume",()=>I=!1);function K(){try{return window.parent&&window.parent.document.hasFocus()}catch(d){return!1}}f.xb(class extends self.Sa{constructor(d){super(d,"runtime");this.Zd=!0;this.Pa=-1;this.hd="any";this.Od=this.Pd=!1;this.ya= null;this.Ud="";this.Wc=-1;this.Ia=this.rb=null;this.cc=this.bc=0;this.ce=d.oa();this.Vb=d.fa();this.tb=0;d.C("canvas","update-size",c=>this.ag(c));d.C("runtime","invoke-download",c=>this.Of(c));d.C("runtime","raster-svg-image",c=>this.Vf(c));d.C("runtime","get-svg-image-size",c=>this.Mf(c));d.C("runtime","set-target-orientation",c=>this.Zf(c));d.C("runtime","register-sw",()=>this.Wf());d.C("runtime","post-to-debugger",c=>this.Jd(c));d.C("runtime","go-to-script",c=>this.Jd(c));d.C("runtime","before-start-ticking", ()=>this.Bf());d.C("runtime","debug-highlight",c=>this.Ef(c));d.C("runtime","enable-device-orientation",()=>this.ef());d.C("runtime","enable-device-motion",()=>this.df());d.C("runtime","add-stylesheet",c=>this.Af(c));d.C("runtime","alert",c=>this.Gc(c));d.C("runtime","hide-cordova-splash",()=>this.Nf());d.C("runtime","set-exporting-to-video",c=>this.pg(c));d.C("runtime","export-to-video-progress",c=>this.Jf(c));d.C("runtime","exported-to-video",c=>this.Kf(c));const g=new Set(["input","textarea","datalist"]); window.addEventListener("contextmenu",c=>{const k=c.target;g.has(k.tagName.toLowerCase())||y(k)||c.preventDefault()});const m=d.G;window.addEventListener("selectstart",A);window.addEventListener("gesturehold",A);m.addEventListener("selectstart",A);m.addEventListener("gesturehold",A);window.addEventListener("touchstart",A,{passive:!1});"undefined"!==typeof PointerEvent?(window.addEventListener("pointerdown",A,{passive:!1}),m.addEventListener("pointerdown",A)):m.addEventListener("touchstart",A);this.ob= 0;window.addEventListener("mousedown",c=>{1===c.button&&c.preventDefault()});window.addEventListener("mousewheel",F,{passive:!1});window.addEventListener("wheel",F,{passive:!1});window.addEventListener("resize",()=>this.bg());window.addEventListener("fullscreenchange",()=>this.Xa());window.addEventListener("webkitfullscreenchange",()=>this.Xa());window.addEventListener("mozfullscreenchange",()=>this.Xa());window.addEventListener("fullscreenerror",c=>this.Jc(c));window.addEventListener("webkitfullscreenerror", c=>this.Jc(c));window.addEventListener("mozfullscreenerror",c=>this.Jc(c));if(d.sc())if(window.visualViewport){let c=Infinity;window.visualViewport.addEventListener("resize",()=>{const k=window.visualViewport.height;k>c&&(document.scrollingElement.scrollTop=0);c=k})}else window.addEventListener("focusout",()=>{{const l=document.activeElement;if(l){var c=l.tagName.toLowerCase();var k=new Set("email number password search tel text url".split(" "));c="textarea"===c?!0:"input"===c?k.has(l.type.toLowerCase()|| "text"):y(l)}else c=!1}c||(document.scrollingElement.scrollTop=0)});self.C3WrapperOnMessage=c=>this.cg(c);this.Ka=new Set;this.Yb=new WeakSet;this.pa=!1}Bf(){"cordova"===this.u.s?(document.addEventListener("pause",()=>this.Nc(!0)),document.addEventListener("resume",()=>this.Nc(!1))):document.addEventListener("visibilitychange",()=>this.Nc(document.hidden));return{isSuspended:!(!document.hidden&&!I)}}nd(){window.addEventListener("focus",()=>this.Za("window-focus"));window.addEventListener("blur",()=> {this.Za("window-blur",{parentHasFocus:K()});this.ob=0});window.addEventListener("focusin",g=>{g=g.target;(C.has(g.tagName.toLowerCase())||y(g))&&this.Za("keyboard-blur")});window.addEventListener("keydown",g=>this.Id("keydown",g));window.addEventListener("keyup",g=>this.Id("keyup",g));window.addEventListener("dblclick",g=>this.Kc("dblclick",g,e));window.addEventListener("wheel",g=>this.Sf(g));"undefined"!==typeof PointerEvent?(window.addEventListener("pointerdown",g=>{this.Dc(g);this.Ya("pointerdown", g)}),this.u.ca&&"undefined"!==typeof window.onpointerrawupdate&&self===self.top?(this.rb=new self.Te(()=>this.pf(),5),this.rb.Sd=!0,window.addEventListener("pointerrawupdate",g=>this.Tf(g))):window.addEventListener("pointermove",g=>this.Ya("pointermove",g)),window.addEventListener("pointerup",g=>this.Ya("pointerup",g)),window.addEventListener("pointercancel",g=>this.Ya("pointercancel",g))):(window.addEventListener("mousedown",g=>{this.Dc(g);this.Lc("pointerdown",g)}),window.addEventListener("mousemove", g=>this.Lc("pointermove",g)),window.addEventListener("mouseup",g=>this.Lc("pointerup",g)),window.addEventListener("touchstart",g=>{this.Dc(g);this.Ib("pointerdown",g)}),window.addEventListener("touchmove",g=>this.Ib("pointermove",g)),window.addEventListener("touchend",g=>this.Ib("pointerup",g)),window.addEventListener("touchcancel",g=>this.Ib("pointercancel",g)));const d=()=>this.Oc();window.addEventListener("pointerup",d,!0);window.addEventListener("touchend",d,!0);window.addEventListener("click", d,!0);window.addEventListener("keydown",d,!0);window.addEventListener("gamepadconnected",d,!0);this.u.Me()&&!this.u.ud()&&navigator.virtualKeyboard&&(navigator.virtualKeyboard.overlaysContent=!0,navigator.virtualKeyboard.addEventListener("geometrychange",()=>{this.Hc(this.fa(),navigator.virtualKeyboard.boundingRect.height)}))}Hc(d,g){document.body.style.transform="";if(0<g){var m=document.activeElement;m&&(m=m.getBoundingClientRect(),d=(m.top+m.bottom)/2-(d-g)/2,d>g&&(d=g),0>d&&(d=0),0<d&&(document.body.style.transform= `translateY(${-d}px)`))}}Za(d,g){w(this,d,g||null,n)}oa(){return this.u.oa()}fa(){return this.u.fa()}bg(){const d=this.oa(),g=this.fa();if(this.u.ud()){if(this.ce===d&&g<this.Vb){this.tb=this.Vb-g;this.Hc(this.Vb,this.tb);return}0<this.tb&&(this.tb=0,this.Hc(g,this.tb));this.ce=d;this.Vb=g}this.Za("window-resize",{innerWidth:d,innerHeight:g,devicePixelRatio:window.devicePixelRatio,isFullscreen:f.Va()});this.u.sc()&&(-1!==this.Pa&&clearTimeout(this.Pa),this.Kd(d,g,0))}kg(d,g,m){-1!==this.Pa&&clearTimeout(this.Pa); this.Pa=setTimeout(()=>this.Kd(d,g,m),48)}Kd(d,g,m){const c=this.oa(),k=this.fa();this.Pa=-1;c!=d||k!=g?this.Za("window-resize",{innerWidth:c,innerHeight:k,devicePixelRatio:window.devicePixelRatio,isFullscreen:f.Va()}):10>m&&this.kg(c,k,m+1)}Zf(d){this.hd=d.targetOrientation}Eg(){const d=this.hd;if(screen.orientation&&screen.orientation.lock)screen.orientation.lock(d).catch(g=>console.warn("[Construct 3] Failed to lock orientation: ",g));else try{let g=!1;screen.lockOrientation?g=screen.lockOrientation(d): screen.webkitLockOrientation?g=screen.webkitLockOrientation(d):screen.mozLockOrientation?g=screen.mozLockOrientation(d):screen.msLockOrientation&&(g=screen.msLockOrientation(d));g||console.warn("[Construct 3] Failed to lock orientation")}catch(g){console.warn("[Construct 3] Failed to lock orientation: ",g)}}Xa(){const d=f.Va();d&&"any"!==this.hd&&this.Eg();w(this,"fullscreenchange",{isFullscreen:d,innerWidth:this.oa(),innerHeight:this.fa()})}Jc(d){console.warn("[Construct 3] Fullscreen request failed: ", d);w(this,"fullscreenerror",{isFullscreen:f.Va(),innerWidth:this.oa(),innerHeight:this.fa()})}Nc(d){d?this.u.zc():this.u.Pc();w(this,"visibilitychange",{hidden:d})}Id(d,g){"Backspace"===g.key&&A(g);const m=b.get(g.code)||g.code;H(this,d,{code:m,key:g.key,which:g.which,repeat:g.repeat,altKey:g.altKey,ctrlKey:g.ctrlKey,metaKey:g.metaKey,shiftKey:g.shiftKey,timeStamp:g.timeStamp},e)}Sf(d){w(this,"wheel",{clientX:d.clientX,clientY:d.clientY,pageX:d.pageX,pageY:d.pageY,deltaX:d.deltaX,deltaY:d.deltaY, deltaZ:d.deltaZ,deltaMode:d.deltaMode,timeStamp:d.timeStamp},e)}Kc(d,g,m){a(g)||H(this,d,{button:g.button,buttons:g.buttons,clientX:g.clientX,clientY:g.clientY,pageX:g.pageX,pageY:g.pageY,movementX:g.movementX||0,movementY:g.movementY||0,timeStamp:g.timeStamp},m)}Lc(d,g){if(!a(g)){var m=this.ob;"pointerdown"===d&&0!==m?d="pointermove":"pointerup"===d&&0!==g.buttons&&(d="pointermove");H(this,d,{pointerId:1,pointerType:"mouse",button:g.button,buttons:g.buttons,lastButtons:m,clientX:g.clientX,clientY:g.clientY, pageX:g.pageX,pageY:g.pageY,movementX:g.movementX||0,movementY:g.movementY||0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,timeStamp:g.timeStamp},e);this.ob=g.buttons;this.Kc(g.type,g,h)}}Ya(d,g){if(this.rb&&"pointermove"!==d){var m=this.rb;m.gb||(N(m),m.Ub=Date.now())}m=0;"mouse"===g.pointerType&&(m=this.ob);H(this,d,{pointerId:g.pointerId,pointerType:g.pointerType,button:g.button,buttons:g.buttons,lastButtons:m,clientX:g.clientX,clientY:g.clientY,pageX:g.pageX,pageY:g.pageY, movementX:(g.movementX||0)+this.bc,movementY:(g.movementY||0)+this.cc,width:g.width||0,height:g.height||0,pressure:g.pressure||0,tangentialPressure:g.tangentialPressure||0,tiltX:g.tiltX||0,tiltY:g.tiltY||0,twist:g.twist||0,timeStamp:g.timeStamp},e);this.cc=this.bc=0;"mouse"===g.pointerType&&(m="mousemove","pointerdown"===d?m="mousedown":"pointerup"===d&&(m="mouseup"),this.Kc(m,g,h),this.ob=g.buttons)}Tf(d){this.Ia&&(this.bc+=this.Ia.movementX||0,this.cc+=this.Ia.movementY||0);this.Ia=d;d=this.rb; if(-1===d.Qa){var g=Date.now(),m=g-d.Ub,c=d.Kg;m>=c&&d.Sd?(d.Ub=g,d.gb=!0,d.Tc(),d.gb=!1):d.Qa=self.setTimeout(d.me,Math.max(c-m,4))}}pf(){this.Ya("pointermove",this.Ia);this.Ia=null}Ib(d,g){for(let m=0,c=g.changedTouches.length;m<c;++m){const k=g.changedTouches[m];H(this,d,{pointerId:k.identifier,pointerType:"touch",button:0,buttons:0,lastButtons:0,clientX:k.clientX,clientY:k.clientY,pageX:k.pageX,pageY:k.pageY,movementX:g.movementX||0,movementY:g.movementY||0,width:2*(k.radiusX||k.webkitRadiusX|| 0),height:2*(k.radiusY||k.webkitRadiusY||0),pressure:k.force||k.webkitForce||0,tangentialPressure:0,tiltX:0,tiltY:0,twist:k.rotationAngle||0,timeStamp:g.timeStamp},e)}}Dc(d){window!==window.top&&window.focus();this.Gd(d.target)&&document.activeElement&&!this.Gd(document.activeElement)&&document.activeElement.blur()}Gd(d){return!d||d===document||d===window||d===document.body||"canvas"===d.tagName.toLowerCase()}ef(){this.Pd||(this.Pd=!0,window.addEventListener("deviceorientation",d=>this.Gf(d)),window.addEventListener("deviceorientationabsolute", d=>this.Hf(d)))}df(){this.Od||(this.Od=!0,window.addEventListener("devicemotion",d=>this.Ff(d)))}Gf(d){w(this,"deviceorientation",{absolute:!!d.absolute,alpha:d.alpha||0,beta:d.beta||0,gamma:d.gamma||0,timeStamp:d.timeStamp,webkitCompassHeading:d.webkitCompassHeading,webkitCompassAccuracy:d.webkitCompassAccuracy},e)}Hf(d){w(this,"deviceorientationabsolute",{absolute:!!d.absolute,alpha:d.alpha||0,beta:d.beta||0,gamma:d.gamma||0,timeStamp:d.timeStamp},e)}Ff(d){let g=null;var m=d.acceleration;m&&(g= {x:m.x||0,y:m.y||0,z:m.z||0});m=null;var c=d.accelerationIncludingGravity;c&&(m={x:c.x||0,y:c.y||0,z:c.z||0});c=null;const k=d.rotationRate;k&&(c={alpha:k.alpha||0,beta:k.beta||0,gamma:k.gamma||0});w(this,"devicemotion",{acceleration:g,accelerationIncludingGravity:m,rotationRate:c,interval:d.interval,timeStamp:d.timeStamp},e)}ag(d){var g=this.u;g.Yd||(g=g.G,g.style.width=d.styleWidth+"px",g.style.height=d.styleHeight+"px",g.style.marginLeft=d.marginLeft+"px",g.style.marginTop=d.marginTop+"px",this.Zd&& (g.style.display="",this.Zd=!1))}Of(d){const g=d.url;d=d.filename;const m=document.createElement("a"),c=document.body;m.textContent=d;m.href=g;m.download=d;c.appendChild(m);m.click();c.removeChild(m)}async Vf(d){var g=d.imageBitmapOpts;d=await self.C3_RasterSvgImageBlob(d.blob,d.imageWidth,d.imageHeight,d.surfaceWidth,d.surfaceHeight);g=g?await createImageBitmap(d,g):await createImageBitmap(d);return{imageBitmap:g,transferables:[g]}}async Mf(d){return await self.C3_GetSvgImageSize(d.blob)}async Af(d){await q(d.url)}Oc(){var d= [...this.Ka];this.Ka.clear();if(!this.pa)for(const g of d)(d=g.play())&&d.catch(()=>{this.Yb.has(g)||this.Ka.add(g)})}wa(d){if("function"!==typeof d.play)throw Error("missing play function");this.Yb.delete(d);let g;try{g=d.play()}catch(m){this.Ka.add(d);return}g&&g.catch(()=>{this.Yb.has(d)||this.Ka.add(d)})}Ca(d){this.Ka.delete(d);this.Yb.add(d)}Eb(d){this.pa=!!d}Nf(){navigator.splashscreen&&navigator.splashscreen.hide&&navigator.splashscreen.hide()}Ef(d){if(d.show){this.ya||(this.ya=document.createElement("div"), this.ya.id="inspectOutline",document.body.appendChild(this.ya));var g=this.ya;g.style.display="";g.style.left=d.left-1+"px";g.style.top=d.top-1+"px";g.style.width=d.width+2+"px";g.style.height=d.height+2+"px";g.textContent=d.name}else this.ya&&(this.ya.style.display="none")}Wf(){window.C3_RegisterSW&&window.C3_RegisterSW()}Jd(d){window.c3_postToMessagePort&&(d.from="runtime",window.c3_postToMessagePort(d))}yf(d,g){return this.u.wd(this.ab,"js-invoke-function",{name:d,params:g},void 0,void 0)}Gc(d){alert(d.message)}cg(d){"entered-fullscreen"=== d?(f.Lb(!0),this.Xa()):"exited-fullscreen"===d?(f.Lb(!1),this.Xa()):console.warn("Unknown wrapper message: ",d)}pg(d){const g=document.createElement("h1");g.id="exportToVideoMessage";g.textContent=d.message;document.body.prepend(g);document.body.classList.add("exportingToVideo");this.u.G.style.display="";this.u.We()}Jf(d){this.Ud=d.message;-1===this.Wc&&(this.Wc=setTimeout(()=>this.qf(),250))}qf(){this.Wc=-1;const d=document.getElementById("exportToVideoMessage");d&&(d.textContent=this.Ud)}Kf(d){window.ih({type:"exported-video", blob:d.blob,time:d.time})}})}"use strict";async function P(f){if(f.Jg)throw Error("already initialised");f.Jg=!0;var a=f.fc.Cc("dispatchworker.js");f.Vc=await f.fc.mc(a,f.F,{name:"DispatchWorker"});a=new MessageChannel;f.$c=a.port1;f.Vc.postMessage({type:"_init","in-port":a.port2},[a.port2]);f.fd=await R(f)}function Q(f){return[f.$c,f.fd]} async function R(f){const a=f.$d.length;var b=f.fc.Cc("jobworker.js");b=await f.fc.mc(b,f.F,{name:"JobWorker"+a});const e=new MessageChannel,h=new MessageChannel;f.Vc.postMessage({type:"_addJobWorker",port:e.port1},[e.port1]);b.postMessage({type:"init",number:a,"dispatch-port":e.port2,"output-port":h.port2},[e.port2,h.port2]);f.$d.push(b);return h.port1} self.Pe=class{constructor(f){this.fc=f;this.F=f.F;this.F="preview"===f.s?this.F+"workers/":this.F+f.hc;this.Mg=Math.min(navigator.hardwareConcurrency||2,16);this.Vc=null;this.$d=[];this.fd=this.$c=null}};"use strict";window.C3_IsSupported&&(window.c3_runtimeInterface=new self.va({ah:!0,bh:"workermain.js",Ra:["scripts/c3runtime.js"],kc:[],kd:"",Yg:"scripts/",md:["box2d.wasm.js"],ne:"html5"}));"use strict"; async function S(f,a){a=a.type;let b=!0;0===a?b=await T():1===a&&(b=await U());w(f,"permission-result",{type:a,result:b})}async function T(){if(!self.DeviceOrientationEvent||!self.DeviceOrientationEvent.requestPermission)return!0;try{return"granted"===await self.DeviceOrientationEvent.requestPermission()}catch(f){return console.warn("[Touch] Failed to request orientation permission: ",f),!1}} async function U(){if(!self.DeviceMotionEvent||!self.DeviceMotionEvent.requestPermission)return!0;try{return"granted"===await self.DeviceMotionEvent.requestPermission()}catch(f){return console.warn("[Touch] Failed to request motion permission: ",f),!1}}self.va.xb(class extends self.Sa{constructor(f){super(f,"touch");J(this,"request-permission",a=>S(this,a))}});"use strict"; function V(f){window.C3_RegisterSW&&window.OfflineClientInfo&&window.OfflineClientInfo.SetMessageCallback(a=>w(f,"sw-message",a.data))} function W(f){f=f.orientation;if(screen.orientation&&screen.orientation.lock)screen.orientation.lock(f).catch(a=>console.warn("[Construct 3] Failed to lock orientation: ",a));else try{let a=!1;screen.lockOrientation?a=screen.lockOrientation(f):screen.webkitLockOrientation?a=screen.webkitLockOrientation(f):screen.mozLockOrientation?a=screen.mozLockOrientation(f):screen.msLockOrientation&&(a=screen.msLockOrientation(f));a||console.warn("[Construct 3] Failed to lock orientation")}catch(a){console.warn("[Construct 3] Failed to lock orientation: ", a)}} self.va.xb(class extends self.Sa{constructor(f){super(f,"browser");this.s="";L(this,[["get-initial-state",a=>{this.s=a.exportType;return{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,isConstructArcade:"undefined"!==typeof window.is_scirra_arcade}}],["ready-for-sw-messages",()=> V(this)],["alert",a=>this.Gc(a)],["close",()=>{navigator.app&&navigator.app.exitApp?navigator.app.exitApp():navigator.device&&navigator.device.exitApp?navigator.device.exitApp():window.close()}],["set-focus",a=>this.Mc(a)],["vibrate",a=>{navigator.vibrate&&navigator.vibrate(a.pattern)}],["lock-orientation",a=>W(a)],["unlock-orientation",()=>{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(a){}}],["navigate",a=>{var b=a.type;if("back"===b)navigator.app&&navigator.app.backHistory?navigator.app.backHistory():window.history.back();else if("forward"===b)window.history.forward();else if("reload"===b)location.reload();else if("url"===b){b=a.url;const e=a.target;a=a.exportType;self.cordova&&self.cordova.InAppBrowser?self.cordova.InAppBrowser.open(b, "_system"):"preview"===a||"windows-webview2"===a?window.open(b,"_blank"):this.hh||(2===e?window.top.location=b:1===e?window.parent.location=b:window.location=b)}else"new-window"===b&&(b=a.url,a=a.tag,self.cordova&&self.cordova.InAppBrowser?self.cordova.InAppBrowser.open(b,"_system"):window.open(b,a))}],["request-fullscreen",a=>{if("windows-webview2"===this.s||"macos-wkwebview"===this.s)self.va.Lb(!0),this.u.Qc({type:"set-fullscreen",fullscreen:!0});else{const b={navigationUI:"auto"};a=a.navUI;1=== a?b.navigationUI="hide":2===a&&(b.navigationUI="show");a=document.documentElement;a.requestFullscreen?a.requestFullscreen(b):a.mozRequestFullScreen?a.mozRequestFullScreen(b):a.msRequestFullscreen?a.msRequestFullscreen(b):a.webkitRequestFullScreen&&("undefined"!==typeof Element.ALLOW_KEYBOARD_INPUT?a.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT):a.webkitRequestFullScreen())}}],["exit-fullscreen",()=>{"windows-webview2"===this.s||"macos-wkwebview"===this.s?(self.va.Lb(!1),this.u.Qc({type:"set-fullscreen", fullscreen:!1})):document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen?document.msExitFullscreen():document.webkitCancelFullScreen&&document.webkitCancelFullScreen()}],["set-hash",a=>{location.hash=a.hash}]]);window.addEventListener("online",()=>{w(this,"online-state",{isOnline:!0})});window.addEventListener("offline",()=>{w(this,"online-state",{isOnline:!1})});window.addEventListener("hashchange",()=>{w(this,"hashchange", {location:location.toString()})});document.addEventListener("backbutton",()=>{w(this,"backbutton")})}Gc(f){alert(f.message)}Mc(f){f=f.isFocus;if("nwjs"===this.s){const a="nwjs"===this.s?nw.Window.get():null;f?a.focus():a.blur()}else f?window.focus():window.blur()}});"use strict"; {const f=180/Math.PI;self.da=class extends self.Sa{constructor(a){super(a,"audio");this.Qb=this.c=null;this.Sb=this.Zc=!1;this.sa=()=>this.Fg();this.$=[];this.D=[];this.ha=null;this.ae="";this.be=-1;this.qb=new Map;this.cd=1;this.pa=!1;this.jd=0;this.ic=1;this.Xc=0;this.ee="HRTF";this.Td="inverse";this.fe=600;this.de=1E4;this.he=1;this.Wd=this.gd=!1;this.ke=this.u.Ne();this.aa=new Map;this.Ga=new Set;this.ad=!1;this.dd="";this.za=null;self.C3Audio_OnMicrophoneStream=(b,e)=>this.Rf(b,e);this.Pb=null; self.C3Audio_GetOutputStream=()=>this.Lf();self.C3Audio_DOMInterface=this;L(this,[["create-audio-context",b=>this.kf(b)],["play",b=>this.eg(b)],["stop",b=>this.Cg(b)],["stop-all",()=>this.Dg()],["set-paused",b=>this.vg(b)],["set-volume",b=>this.Ag(b)],["fade-volume",b=>this.rf(b)],["set-master-volume",b=>this.tg(b)],["set-muted",b=>this.ug(b)],["set-silent",b=>this.xg(b)],["set-looping",b=>this.sg(b)],["set-playback-rate",b=>this.wg(b)],["seek",b=>this.lg(b)],["preload",b=>this.fg(b)],["unload",b=> this.Gg(b)],["unload-all",()=>this.Hg()],["set-suspended",b=>this.yg(b)],["get-suspended",()=>this.vf()],["add-effect",b=>this.Bd(b)],["set-effect-param",b=>this.og(b)],["remove-effects",b=>this.hg(b)],["tick",b=>this.$f(b)],["load-state",b=>this.Pf(b)]])}async kf(a){a.isiOSCordova&&(this.gd=!0);this.jd=a.timeScaleMode;this.ee=["equalpower","HRTF","soundfield"][a.panningModel];this.Td=["linear","inverse","exponential"][a.distanceModel];this.fe=a.refDistance;this.de=a.maxDistance;this.he=a.rolloffFactor; var b={latencyHint:a.latencyHint};this.ke||(b.sampleRate=48E3);if("undefined"!==typeof AudioContext)this.c=new AudioContext(b);else if("undefined"!==typeof webkitAudioContext)this.c=new webkitAudioContext(b);else throw Error("Web Audio API not supported");this.Cd();this.c.onstatechange=()=>{"running"!==this.c.state&&this.Cd()};this.Qb=this.c.createGain();this.Qb.connect(this.c.destination);b=a.listenerPos;this.c.listener.setPosition(b[0],b[1],b[2]);this.c.listener.setOrientation(0,0,1,0,-1,0);self.C3_GetAudioContextCurrentTime= ()=>this.nc();try{await Promise.all(a.preloadList.map(e=>this.Gb(e.originalUrl,e.url,e.type,!1)))}catch(e){console.error("[Construct 3] Preloading sounds failed: ",e)}return{sampleRate:this.c.sampleRate}}Cd(){this.Sb||(this.Zc=!1,window.addEventListener("pointerup",this.sa,!0),window.addEventListener("touchend",this.sa,!0),window.addEventListener("click",this.sa,!0),window.addEventListener("keydown",this.sa,!0),this.Sb=!0)}mf(){this.Sb&&(this.Zc=!0,window.removeEventListener("pointerup",this.sa,!0), window.removeEventListener("touchend",this.sa,!0),window.removeEventListener("click",this.sa,!0),window.removeEventListener("keydown",this.sa,!0),this.Sb=!1)}Fg(){if(!this.Zc){var a=this.c;"suspended"===a.state&&a.resume&&a.resume();var b=a.createBuffer(1,220,22050),e=a.createBufferSource();e.buffer=b;e.connect(a.destination);e.start(0);"running"===a.state&&this.mf()}}W(){return this.c}nc(){return this.c.currentTime}ta(){return this.Qb}sd(a){return(a=this.aa.get(a.toLowerCase()))?a[0].P():this.ta()}oe(a, b){a=a.toLowerCase();let e=this.aa.get(a);e||(e=[],this.aa.set(a,e));b.rg(e.length);b.zg(a);e.push(b);this.Md(a)}Md(a){let b=this.ta();const e=this.aa.get(a);if(e&&e.length){b=e[0].P();for(let h=0,n=e.length;h<n;++h){const q=e[h];h+1===n?q.S(this.ta()):q.S(e[h+1].P())}}for(const h of this.ma(a))h.Ue(b);this.za&&this.dd===a&&(this.za.disconnect(),this.za.connect(b))}Ab(){return this.cd}Bb(){return this.pa}qg(){this.Wd=!0}Ge(a,b){return b?this.u.Ig(a).then(e=>{const h=this.c.createBuffer(1,e.length, 48E3);h.getChannelData(0).set(e);return h}):new Promise((e,h)=>{this.c.decodeAudioData(a,e,h)})}wa(a){this.u.wa(a)}Ca(a){this.u.Ca(a)}xd(a){let b=0;for(let e=0,h=this.D.length;e<h;++e){const n=this.D[e];this.D[b]=n;n.L===a?n.f():++b}this.D.length=b}Ve(){let a=0;for(let b=0,e=this.$.length;b<e;++b){const h=this.$[b];this.$[a]=h;h.ua()?h.f():++a}this.$.length=a}*ma(a){if(a)for(const b of this.D)self.da.He(b.Y,a)&&(yield b);else this.ha&&!this.ha.T()&&(yield this.ha)}async Gb(a,b,e,h,n){for(const q of this.$)if(q.Ua()=== b)return await X(q),q;if(n)return null;h&&(this.gd||this.Wd)&&this.Ve();n="audio/webm; codecs=opus"===e&&!this.ke;h&&n&&this.qg();a=!h||this.gd||n?new self.Ce(this,a,b,e,h,n):new self.Ae(this,a,b,e,h);this.$.push(a);await X(a);return a}async Bc(a,b,e,h,n){for(const q of this.D)if(q.Ua()===b&&(q.lc()||n))return q.Ye(h),q;a=await this.Gb(a,b,e,n);h="html5"===a.Rc?new self.Be(a.i,a,h):new self.De(a.i,a,h);this.D.push(h);return h}bf(a){let b=this.qb.get(a);if(!b){let e=null;b={ld:0,Xg:new Promise(h=> e=h),resolve:e};this.qb.set(a,b)}b.ld++}ig(a){const b=this.qb.get(a);if(!b)throw Error("expected pending tag");b.ld--;0===b.ld&&(b.resolve(),this.qb.delete(a))}yc(a){a||(a=this.ae);return(a=this.qb.get(a))?a.Xg:Promise.resolve()}Hb(){if(0<this.Ga.size)M(this);else for(const a of this.D)if(a.td()){M(this);break}}Da(){for(var a of this.Ga)a.Da();a=this.nc();for(var b of this.D)b.Da(a);b=this.D.filter(e=>e.td()).map(e=>e.Ta());w(this,"state",{tickCount:this.be,audioInstances:b,analysers:[...this.Ga].map(e=> e.Je())});0===b.length&&0===this.Ga.size&&this.Tb&&(this.u.jg(this.le),this.Tb=!1)}uc(a,b,e){w(this,"trigger",{type:a,tag:b,aiid:e})}async eg(a){const b=a.originalUrl,e=a.url,h=a.type,n=a.isMusic,q=a.tag,v=a.isLooping,B=a.vol,D=a.pos,x=a.panning;let y=a.off;0<y&&!a.trueClock&&(this.c.getOutputTimestamp?(a=this.c.getOutputTimestamp(),y=y-a.performanceTime/1E3+a.contextTime):y=y-performance.now()/1E3+this.c.currentTime);this.ae=q;this.bf(q);try{this.ha=await this.Bc(b,e,h,q,n),x?(this.ha.Db(!0),this.ha.Xe(x.x, x.y,x.angle,x.innerAngle,x.outerAngle,x.outerGain),x.hasOwnProperty("uid")&&this.ha.Ze(x.uid)):this.ha.Db(!1),this.ha.Play(v,B,D,y)}catch(C){console.error("[Construct 3] Audio: error starting playback: ",C);return}finally{this.ig(q)}M(this)}Cg(a){a=a.tag;for(const b of this.ma(a))b.na()}Dg(){for(const a of this.D)a.na()}vg(a){const b=a.tag;a=a.paused;for(const e of this.ma(b))a?e.Wa():e.Cb();this.Hb()}Ag(a){const b=a.tag;a=a.vol;for(const e of this.ma(b))e.Fb(a)}async rf(a){const b=a.tag,e=a.vol, h=a.duration;a=a.stopOnEnd;await this.yc(b);for(const n of this.ma(b))n.Ie(e,h,a);this.Hb()}tg(a){this.cd=a.vol;for(const b of this.D)b.Nb()}ug(a){const b=a.tag;a=a.isMuted;for(const e of this.ma(b))e.yd(a)}xg(a){this.pa=a.isSilent;this.u.Eb(this.pa);for(const b of this.D)b.Mb()}sg(a){const b=a.tag;a=a.isLooping;for(const e of this.ma(b))e.wc(a)}async wg(a){const b=a.tag;a=a.rate;await this.yc(b);for(const e of this.ma(b))e.Ad(a)}async lg(a){const b=a.tag;a=a.pos;await this.yc(b);for(const e of this.ma(b))e.vc(a)}async fg(a){const b= a.originalUrl,e=a.url,h=a.type;a=a.isMusic;try{await this.Bc(b,e,h,"",a)}catch(n){console.error("[Construct 3] Audio: error preloading: ",n)}}async Gg(a){if(a=await this.Gb("",a.url,a.type,a.isMusic,!0))a.f(),a=this.$.indexOf(a),-1!==a&&this.$.splice(a,1)}Hg(){for(const a of this.$)a.f();this.$.length=0}yg(a){a=a.isSuspended;!a&&this.c.resume&&this.c.resume();for(const b of this.D)b.xc(a);a&&this.c.suspend&&this.c.suspend()}vf(){return this.c?this.c.state:"suspended"}$f(a){this.ic=a.timeScale;this.Xc= a.gameTime;this.be=a.tickCount;if(0!==this.jd)for(var b of this.D)b.Fa();(b=a.listenerPos)&&this.c.listener.setPosition(b[0],b[1],b[2]);for(const e of a.instPans){a=e.uid;for(const h of this.D)h.ga===a&&h.zd(e.x,e.y,e.angle)}}async Bd(a){var b=a.type;const e=a.tag;var h=a.params;if("filter"===b)h=new self.ue(this,...h);else if("delay"===b)h=new self.se(this,...h);else if("convolution"===b){b=null;try{b=await this.Gb(a.bufferOriginalUrl,a.bufferUrl,a.bufferType,!1)}catch(n){console.log("[Construct 3] Audio: error loading convolution: ", n);return}h=new self.re(this,b.Z,...h);h.mg(a.bufferOriginalUrl,a.bufferType)}else if("flanger"===b)h=new self.ve(this,...h);else if("phaser"===b)h=new self.xe(this,...h);else if("gain"===b)h=new self.we(this,...h);else if("tremolo"===b)h=new self.ze(this,...h);else if("ringmod"===b)h=new self.ye(this,...h);else if("distortion"===b)h=new self.te(this,...h);else if("compressor"===b)h=new self.qe(this,...h);else if("analyser"===b)h=new self.pe(this,...h);else throw Error("invalid effect type");this.oe(e, h);this.Ld()}og(a){const b=a.index,e=a.param,h=a.value,n=a.ramp,q=a.time;a=this.aa.get(a.tag);!a||0>b||b>=a.length||(a[b].X(e,h,n,q),this.Ld())}hg(a){a=a.tag.toLowerCase();const b=this.aa.get(a);if(b&&b.length){for(const e of b)e.f();this.aa.delete(a);this.Md(a)}}af(a){this.Ga.add(a);this.Hb()}gg(a){this.Ga.delete(a)}Ld(){this.ad||(this.ad=!0,Promise.resolve().then(()=>this.nf()))}nf(){const a={};for(const [b,e]of this.aa)a[b]=e.map(h=>h.Ta());w(this,"fxstate",{fxstate:a});this.ad=!1}async Pf(a){const b= a.saveLoadMode;if(3!==b)for(var e of this.D)e.ua()&&1===b||(e.ua()||2!==b)&&e.na();for(const h of this.aa.values())for(const n of h)n.f();this.aa.clear();this.ic=a.timeScale;this.Xc=a.gameTime;e=a.listenerPos;this.c.listener.setPosition(e[0],e[1],e[2]);this.pa=a.isSilent;this.u.Eb(this.pa);this.cd=a.masterVolume;e=[];for(const h of Object.values(a.effects))e.push(Promise.all(h.map(n=>this.Bd(n))));await Promise.all(e);await Promise.all(a.playing.map(h=>this.zf(h,b)));this.Hb()}async zf(a,b){if(3!== b){var e=a.bufferOriginalUrl,h=a.bufferUrl,n=a.bufferType,q=a.isMusic,v=a.tag,B=a.isLooping,D=a.volume,x=a.playbackTime;if(!q||1!==b)if(q||2!==b){b=null;try{b=await this.Bc(e,h,n,v,q)}catch(y){console.error("[Construct 3] Audio: error loading audio state: ",y);return}b.Se(a.pan);b.Play(B,D,x,0);a.isPlaying||b.Wa();b.Fc(a)}}}Rf(a,b){this.za&&this.za.disconnect();this.dd=b.toLowerCase();this.za=this.c.createMediaStreamSource(a);this.za.connect(this.sd(this.dd))}Lf(){this.Pb||(this.Pb=this.c.createMediaStreamDestination(), this.Qb.connect(this.Pb));return this.Pb.stream}static He(a,b){return a.length!==b.length?!1:a===b?!0:a.toLowerCase()===b.toLowerCase()}static $e(a){return a*f}static Fe(a){return Math.pow(10,a/20)}static rd(a){return Math.max(Math.min(self.da.Fe(a),1),0)}static Re(a){return Math.log(a)/Math.log(10)*20}static Qe(a){return self.da.Re(Math.max(Math.min(a,1),0))}static Sg(a,b){return 1-Math.exp(-b*a)}};self.va.xb(self.da)}"use strict";function X(f){f.Wb||(f.Wb=f.Ec());return f.Wb} self.od=class{constructor(f,a,b,e,h){this.i=f;this.Og=a;this.Aa=b;this.R=e;this.Lg=h;this.Rc="";this.Wb=null}f(){this.Wb=this.i=null}Ec(){}W(){return this.i.W()}pc(){return this.Og}Ua(){return this.Aa}oc(){return this.R}ua(){return this.Lg}ea(){}};"use strict"; self.Ae=class extends self.od{constructor(f,a,b,e,h){super(f,a,b,e,h);this.Rc="html5";this.K=new Audio;this.K.crossOrigin="anonymous";this.K.autoplay=!1;this.K.preload="auto";this.kb=this.lb=null;this.K.addEventListener("canplaythrough",()=>!0);this.pb=this.W().createGain();this.nb=null;this.K.addEventListener("canplay",()=>{this.lb&&(this.lb(),this.kb=this.lb=null);!this.nb&&this.K&&(this.nb=this.W().createMediaElementSource(this.K),this.nb.connect(this.pb))});this.onended=null;this.K.addEventListener("ended", ()=>{if(this.onended)this.onended()});this.K.addEventListener("error",n=>{console.error(`[Construct 3] Audio '${this.Aa}' error: `,n);this.kb&&(this.kb(n),this.kb=this.lb=null)})}f(){this.i.xd(this);this.pb.disconnect();this.pb=null;this.nb.disconnect();this.nb=null;this.K&&!this.K.paused&&this.K.pause();this.K=this.onended=null;super.f()}Ec(){return new Promise((f,a)=>{this.lb=f;this.kb=a;this.K.src=this.Aa})}O(){return this.K}ea(){return this.K.duration}};"use strict"; async function Y(f){if(f.xa)return f.xa;var a=f.i.u;if("cordova"===a.s&&a.vd(f.Aa)&&a.hb)f.xa=await a.yb(f.Aa);else{a=await fetch(f.Aa);if(!a.ok)throw Error(`error fetching audio data: ${a.status} ${a.statusText}`);f.xa=await a.arrayBuffer()}}async function aa(f){if(f.Z)return f.Z;f.Z=await f.i.Ge(f.xa,f.Ng);f.xa=null} self.Ce=class extends self.od{constructor(f,a,b,e,h,n){super(f,a,b,e,h);this.Rc="webaudio";this.Z=this.xa=null;this.Ng=!!n}f(){this.i.xd(this);this.Z=this.xa=null;super.f()}async Ec(){try{await Y(this),await aa(this)}catch(f){console.error(`[Construct 3] Failed to load audio '${this.Aa}': `,f)}}ea(){return this.Z?this.Z.duration:0}};"use strict"; {let f=0;self.pd=class{constructor(a,b,e){this.i=a;this.L=b;this.Y=e;this.Ob=f++;this.M=this.W().createGain();this.M.connect(this.ta());this.B=null;this.ib=!1;this.ka=[0,0,0];this.ja=[0,0,0];this.I=!0;this.V=this.la=this.H=!1;this.ub=1;this.Ha=!1;this.ra=1;a=this.i.jd;this.bd=1===a&&!this.ua()||2===a;this.eb=this.ga=-1;this.je=!1}f(){this.L=this.i=null;this.B&&(this.B.disconnect(),this.B=null);this.M.disconnect();this.M=null}W(){return this.i.W()}ta(){return this.i.sd(this.Y)}Ab(){return this.i.Ab()}zb(){return this.bd? this.i.Xc:performance.now()/1E3}pc(){return this.L.pc()}Ua(){return this.L.Ua()}oc(){return this.L.oc()}ua(){return this.L.ua()}Ye(a){this.Y=a}T(){}lc(){}IsPlaying(){return!this.I&&!this.H&&!this.T()}td(){return!this.I&&!this.T()}Ba(){}ea(){return this.L.ea()}Play(){}na(){}Wa(){}Cb(){}Fb(a){this.ub=a;this.M.gain.cancelScheduledValues(0);this.eb=-1;this.M.gain.value=this.qc()}Ie(a,b,e){if(!this.Ha){a*=this.Ab();var h=this.M.gain;h.cancelScheduledValues(0);var n=this.i.nc();b=n+b;h.setValueAtTime(h.value, n);h.linearRampToValueAtTime(a,b);this.ub=a;this.eb=b;this.je=e}}Nb(){this.Fb(this.ub)}Da(a){-1!==this.eb&&a>=this.eb&&(this.eb=-1,this.je&&this.na(),this.i.uc("fade-ended",this.Y,this.Ob))}qc(){const a=this.ub*this.Ab();return isFinite(a)?a:0}yd(a){a=!!a;this.Ha!==a&&(this.Ha=a,this.Mb())}Bb(){return this.i.Bb()}Mb(){}wc(){}Ad(a){this.ra!==a&&(this.ra=a,this.Fa())}Fa(){}vc(){}xc(){}Db(a){a=!!a;this.ib!==a&&((this.ib=a)?(this.B||(this.B=this.W().createPanner(),this.B.panningModel=this.i.ee,this.B.distanceModel= this.i.Td,this.B.refDistance=this.i.fe,this.B.maxDistance=this.i.de,this.B.rolloffFactor=this.i.he),this.M.disconnect(),this.M.connect(this.B),this.B.connect(this.ta())):(this.B.disconnect(),this.M.disconnect(),this.M.connect(this.ta())))}Xe(a,b,e,h,n,q){this.ib&&(this.zd(a,b,e),a=self.da.$e,this.B.coneInnerAngle=a(h),this.B.coneOuterAngle=a(n),this.B.coneOuterGain=q)}zd(a,b,e){this.ib&&(this.ka[0]=a,this.ka[1]=b,this.ka[2]=0,this.ja[0]=Math.cos(e),this.ja[1]=Math.sin(e),this.ja[2]=0,this.B.setPosition(...this.ka), this.B.setOrientation(...this.ja))}Ze(a){this.ga=a}rc(){}Ue(a){const b=this.B||this.M;b.disconnect();b.connect(a)}Ta(){return{aiid:this.Ob,tag:this.Y,duration:this.ea(),volume:this.ub,isPlaying:this.IsPlaying(),playbackTime:this.Ba(),playbackRate:this.ra,uid:this.ga,bufferOriginalUrl:this.pc(),bufferUrl:"",bufferType:this.oc(),isMusic:this.ua(),isLooping:this.V,isMuted:this.Ha,resumePosition:this.rc(),pan:this.Ke()}}Fc(a){this.Ad(a.playbackRate);this.yd(a.isMuted)}Ke(){if(!this.B)return null;const a= this.B;return{pos:this.ka,orient:this.ja,cia:a.coneInnerAngle,coa:a.coneOuterAngle,cog:a.coneOuterGain,uid:this.ga}}Se(a){if(a){this.Db(!0);a=this.B;var b=a.pos;this.ka[0]=b[0];this.ka[1]=b[1];this.ka[2]=b[2];b=a.orient;this.ja[0]=b[0];this.ja[1]=b[1];this.ja[2]=b[2];a.setPosition(...this.ka);a.setOrientation(...this.ja);a.coneInnerAngle=a.cia;a.coneOuterAngle=a.coa;a.coneOuterGain=a.cog;this.ga=a.uid}else this.Db(!1)}}}"use strict"; self.Be=class extends self.pd{constructor(f,a,b){super(f,a,b);this.L.pb.connect(this.M);this.L.onended=()=>this.Ic()}f(){this.na();this.L.pb.disconnect();super.f()}O(){return this.L.O()}Ic(){this.I=!0;this.ga=-1;this.i.uc("ended",this.Y,this.Ob)}T(){return this.O().ended}lc(){return this.I?!0:this.T()}Ba(){let f=this.O().currentTime;this.V||(f=Math.min(f,this.ea()));return f}Play(f,a,b){const e=this.O();1!==e.playbackRate&&(e.playbackRate=1);e.loop!==f&&(e.loop=f);this.Fb(a);e.muted&&(e.muted=!1); if(e.currentTime!==b)try{e.currentTime=b}catch(h){console.warn(`[Construct 3] Exception seeking audio '${this.L.Ua()}' to position '${b}': `,h)}this.i.wa(e);this.H=this.I=!1;this.V=f;this.ra=1}na(){const f=this.O();f.paused||f.pause();this.i.Ca(f);this.I=!0;this.H=!1;this.ga=-1}Wa(){if(!(this.H||this.I||this.T())){var f=this.O();f.paused||f.pause();this.i.Ca(f);this.H=!0}}Cb(){!this.H||this.I||this.T()||(this.i.wa(this.O()),this.H=!1)}Mb(){this.O().muted=this.Ha||this.Bb()}wc(f){f=!!f;this.V!==f&& (this.V=f,this.O().loop=f)}Fa(){let f=this.ra;this.bd&&(f*=this.i.ic);try{this.O().playbackRate=f}catch(a){console.warn(`[Construct 3] Unable to set playback rate '${f}':`,a)}}vc(f){if(!this.I&&!this.T())try{this.O().currentTime=f}catch(a){console.warn(`[Construct 3] Error seeking audio to '${f}': `,a)}}rc(){return this.Ba()}xc(f){f?this.IsPlaying()?(this.O().pause(),this.la=!0):this.la=!1:this.la&&(this.i.wa(this.O()),this.la=!1)}};"use strict"; function Z(f){f.j&&f.j.disconnect();f.j=null;f.$a=null} self.De=class extends self.pd{constructor(f,a,b){super(f,a,b);this.j=null;this.Zb=e=>this.Ic(e);this.Yc=!0;this.$a=null;this.N=this.$b=this.ac=0;this.ed=1}f(){this.na();Z(this);this.Zb=null;super.f()}Ic(f){this.H||this.la||f.target!==this.$a||(this.I=this.Yc=!0,this.ga=-1,Z(this),this.i.uc("ended",this.Y,this.Ob))}T(){return!this.I&&this.j&&this.j.loop||this.H?!1:this.Yc}lc(){return!this.j||this.I?!0:this.T()}Ba(){let f;f=this.H?this.N:this.$b+(this.zb()-this.ac)*this.ra;this.V||(f=Math.min(f,this.ea())); return f}Play(f,a,b,e){this.ed=1;this.Fb(a);Z(this);this.j=this.W().createBufferSource();this.j.buffer=this.L.Z;this.j.connect(this.M);this.$a=this.j;this.j.onended=this.Zb;this.j.loop=f;this.j.start(e,b);this.H=this.I=this.Yc=!1;this.V=f;this.ra=1;this.ac=this.zb();this.$b=b}na(){if(this.j)try{this.j.stop(0)}catch(f){}this.I=!0;this.H=!1;this.ga=-1}Wa(){this.H||this.I||this.T()||(this.N=this.Ba(),this.V&&(this.N%=this.ea()),this.H=!0,this.j.stop(0))}Cb(){!this.H||this.I||this.T()||(Z(this),this.j= this.W().createBufferSource(),this.j.buffer=this.L.Z,this.j.connect(this.M),this.$a=this.j,this.j.onended=this.Zb,this.j.loop=this.V,this.Nb(),this.Fa(),this.j.start(0,this.N),this.ac=this.zb(),this.$b=this.N,this.H=!1)}qc(){return super.qc()*this.ed}Mb(){this.ed=this.Ha||this.Bb()?0:1;this.Nb()}wc(f){f=!!f;this.V!==f&&(this.V=f,this.j&&(this.j.loop=f))}Fa(){let f=this.ra;this.bd&&(f*=this.i.ic);this.j&&(this.j.playbackRate.value=f)}vc(f){this.I||this.T()||(this.H?this.N=f:(this.Wa(),this.N=f,this.Cb()))}rc(){return this.N}xc(f){f? this.IsPlaying()?(this.la=!0,this.N=this.Ba(),this.V&&(this.N%=this.ea()),this.j.stop(0)):this.la=!1:this.la&&(Z(this),this.j=this.W().createBufferSource(),this.j.buffer=this.L.Z,this.j.connect(this.M),this.$a=this.j,this.j.onended=this.Zb,this.j.loop=this.V,this.Nb(),this.Fa(),this.j.start(0,this.N),this.ac=this.zb(),this.$b=this.N,this.la=!1)}Fc(f){super.Fc(f);this.N=f.resumePosition}};"use strict"; {class f{constructor(a){this.i=a;this.c=a.W();this.Xd=-1;this.R=this.Y="";this.g=null}f(){this.c=null}rg(a){this.Xd=a}zg(a){this.Y=a}o(){return this.c.createGain()}P(){}S(){}m(a,b,e,h){a.cancelScheduledValues(0);if(0===h)a.value=b;else{var n=this.c.currentTime;h+=n;switch(e){case 0:a.setValueAtTime(b,h);break;case 1:a.setValueAtTime(a.value,n);a.linearRampToValueAtTime(b,h);break;case 2:a.setValueAtTime(a.value,n),a.exponentialRampToValueAtTime(b,h)}}}Ta(){return{type:this.R,tag:this.Y,params:this.g}}} self.ue=class extends f{constructor(a,b,e,h,n,q,v){super(a);this.R="filter";this.g=[b,e,h,n,q,v];this.l=this.o();this.b=this.o();this.b.gain.value=v;this.a=this.o();this.a.gain.value=1-v;this.A=this.c.createBiquadFilter();this.A.type=b;this.A.frequency.value=e;this.A.detune.value=h;this.A.Q.value=n;this.A.gain.vlaue=q;this.l.connect(this.A);this.l.connect(this.a);this.A.connect(this.b)}f(){this.l.disconnect();this.A.disconnect();this.b.disconnect();this.a.disconnect();super.f()}S(a){this.b.disconnect(); this.b.connect(a);this.a.disconnect();this.a.connect(a)}P(){return this.l}X(a,b,e,h){switch(a){case 0:b=Math.max(Math.min(b/100,1),0);this.g[5]=b;this.m(this.b.gain,b,e,h);this.m(this.a.gain,1-b,e,h);break;case 1:this.g[1]=b;this.m(this.A.frequency,b,e,h);break;case 2:this.g[2]=b;this.m(this.A.detune,b,e,h);break;case 3:this.g[3]=b;this.m(this.A.Q,b,e,h);break;case 4:this.g[4]=b,this.m(this.A.gain,b,e,h)}}};self.se=class extends f{constructor(a,b,e,h){super(a);this.R="delay";this.g=[b,e,h];this.l= this.o();this.b=this.o();this.b.gain.value=h;this.a=this.o();this.a.gain.value=1-h;this.mb=this.o();this.U=this.c.createDelay(b);this.U.delayTime.value=b;this.cb=this.o();this.cb.gain.value=e;this.l.connect(this.mb);this.l.connect(this.a);this.mb.connect(this.b);this.mb.connect(this.U);this.U.connect(this.cb);this.cb.connect(this.mb)}f(){this.l.disconnect();this.b.disconnect();this.a.disconnect();this.mb.disconnect();this.U.disconnect();this.cb.disconnect();super.f()}S(a){this.b.disconnect();this.b.connect(a); this.a.disconnect();this.a.connect(a)}P(){return this.l}X(a,b,e,h){const n=self.da.rd;switch(a){case 0:b=Math.max(Math.min(b/100,1),0);this.g[2]=b;this.m(this.b.gain,b,e,h);this.m(this.a.gain,1-b,e,h);break;case 4:this.g[1]=n(b);this.m(this.cb.gain,n(b),e,h);break;case 5:this.g[0]=b,this.m(this.U.delayTime,b,e,h)}}};self.re=class extends f{constructor(a,b,e,h){super(a);this.R="convolution";this.g=[e,h];this.Rd=this.Qd="";this.l=this.o();this.b=this.o();this.b.gain.value=h;this.a=this.o();this.a.gain.value= 1-h;this.bb=this.c.createConvolver();this.bb.normalize=e;this.bb.buffer=b;this.l.connect(this.bb);this.l.connect(this.a);this.bb.connect(this.b)}f(){this.l.disconnect();this.bb.disconnect();this.b.disconnect();this.a.disconnect();super.f()}S(a){this.b.disconnect();this.b.connect(a);this.a.disconnect();this.a.connect(a)}P(){return this.l}X(a,b,e,h){switch(a){case 0:b=Math.max(Math.min(b/100,1),0),this.g[1]=b,this.m(this.b.gain,b,e,h),this.m(this.a.gain,1-b,e,h)}}mg(a,b){this.Qd=a;this.Rd=b}Ta(){const a= super.Ta();a.bufferOriginalUrl=this.Qd;a.bufferUrl="";a.bufferType=this.Rd;return a}};self.ve=class extends f{constructor(a,b,e,h,n,q){super(a);this.R="flanger";this.g=[b,e,h,n,q];this.l=this.o();this.a=this.o();this.a.gain.value=1-q/2;this.b=this.o();this.b.gain.value=q/2;this.fb=this.o();this.fb.gain.value=n;this.U=this.c.createDelay(b+e);this.U.delayTime.value=b;this.v=this.c.createOscillator();this.v.frequency.value=h;this.J=this.o();this.J.gain.value=e;this.l.connect(this.U);this.l.connect(this.a); this.U.connect(this.b);this.U.connect(this.fb);this.fb.connect(this.U);this.v.connect(this.J);this.J.connect(this.U.delayTime);this.v.start(0)}f(){this.v.stop(0);this.l.disconnect();this.U.disconnect();this.v.disconnect();this.J.disconnect();this.a.disconnect();this.b.disconnect();this.fb.disconnect();super.f()}S(a){this.b.disconnect();this.b.connect(a);this.a.disconnect();this.a.connect(a)}P(){return this.l}X(a,b,e,h){switch(a){case 0:b=Math.max(Math.min(b/100,1),0);this.g[4]=b;this.m(this.b.gain, b/2,e,h);this.m(this.a.gain,1-b/2,e,h);break;case 6:this.g[1]=b/1E3;this.m(this.J.gain,b/1E3,e,h);break;case 7:this.g[2]=b;this.m(this.v.frequency,b,e,h);break;case 8:this.g[3]=b/100,this.m(this.fb.gain,b/100,e,h)}}};self.xe=class extends f{constructor(a,b,e,h,n,q,v){super(a);this.R="phaser";this.g=[b,e,h,n,q,v];this.l=this.o();this.a=this.o();this.a.gain.value=1-v/2;this.b=this.o();this.b.gain.value=v/2;this.A=this.c.createBiquadFilter();this.A.type="allpass";this.A.frequency.value=b;this.A.detune.value= e;this.A.Q.value=h;this.v=this.c.createOscillator();this.v.frequency.value=q;this.J=this.o();this.J.gain.value=n;this.l.connect(this.A);this.l.connect(this.a);this.A.connect(this.b);this.v.connect(this.J);this.J.connect(this.A.frequency);this.v.start(0)}f(){this.v.stop(0);this.l.disconnect();this.A.disconnect();this.v.disconnect();this.J.disconnect();this.a.disconnect();this.b.disconnect();super.f()}S(a){this.b.disconnect();this.b.connect(a);this.a.disconnect();this.a.connect(a)}P(){return this.l}X(a, b,e,h){switch(a){case 0:b=Math.max(Math.min(b/100,1),0);this.g[5]=b;this.m(this.b.gain,b/2,e,h);this.m(this.a.gain,1-b/2,e,h);break;case 1:this.g[0]=b;this.m(this.A.frequency,b,e,h);break;case 2:this.g[1]=b;this.m(this.A.detune,b,e,h);break;case 3:this.g[2]=b;this.m(this.A.Q,b,e,h);break;case 6:this.g[3]=b;this.m(this.J.gain,b,e,h);break;case 7:this.g[4]=b,this.m(this.v.frequency,b,e,h)}}};self.we=class extends f{constructor(a,b){super(a);this.R="gain";this.g=[b];this.h=this.o();this.h.gain.value= b}f(){this.h.disconnect();super.f()}S(a){this.h.disconnect();this.h.connect(a)}P(){return this.h}X(a,b,e,h){const n=self.da.rd;switch(a){case 4:this.g[0]=n(b),this.m(this.h.gain,n(b),e,h)}}};self.ze=class extends f{constructor(a,b,e){super(a);this.R="tremolo";this.g=[b,e];this.h=this.o();this.h.gain.value=1-e/2;this.v=this.c.createOscillator();this.v.frequency.value=b;this.J=this.o();this.J.gain.value=e/2;this.v.connect(this.J);this.J.connect(this.h.gain);this.v.start(0)}f(){this.v.stop(0);this.v.disconnect(); this.J.disconnect();this.h.disconnect();super.f()}S(a){this.h.disconnect();this.h.connect(a)}P(){return this.h}X(a,b,e,h){switch(a){case 0:b=Math.max(Math.min(b/100,1),0);this.g[1]=b;this.m(this.h.gain,1-b/2,e,h);this.m(this.J.gain,b/2,e,h);break;case 7:this.g[0]=b,this.m(this.v.frequency,b,e,h)}}};self.ye=class extends f{constructor(a,b,e){super(a);this.R="ringmod";this.g=[b,e];this.l=this.o();this.b=this.o();this.b.gain.value=e;this.a=this.o();this.a.gain.value=1-e;this.sb=this.o();this.sb.gain.value= 0;this.v=this.c.createOscillator();this.v.frequency.value=b;this.v.connect(this.sb.gain);this.v.start(0);this.l.connect(this.sb);this.l.connect(this.a);this.sb.connect(this.b)}f(){this.v.stop(0);this.v.disconnect();this.sb.disconnect();this.l.disconnect();this.b.disconnect();this.a.disconnect();super.f()}S(a){this.b.disconnect();this.b.connect(a);this.a.disconnect();this.a.connect(a)}P(){return this.l}X(a,b,e,h){switch(a){case 0:b=Math.max(Math.min(b/100,1),0);this.g[1]=b;this.m(this.b.gain,b,e,h); this.m(this.a.gain,1-b,e,h);break;case 7:this.g[0]=b,this.m(this.v.frequency,b,e,h)}}};self.te=class extends f{constructor(a,b,e,h,n,q){super(a);this.R="distortion";this.g=[b,e,h,n,q];this.l=this.o();this.ec=this.o();this.dc=this.o();this.ng(h,n);this.b=this.o();this.b.gain.value=q;this.a=this.o();this.a.gain.value=1-q;this.jc=this.c.createWaveShaper();this.Uc=new Float32Array(65536);this.tf(b,e);this.jc.curve=this.Uc;this.l.connect(this.ec);this.l.connect(this.a);this.ec.connect(this.jc);this.jc.connect(this.dc); this.dc.connect(this.b)}f(){this.l.disconnect();this.ec.disconnect();this.jc.disconnect();this.dc.disconnect();this.b.disconnect();this.a.disconnect();super.f()}ng(a,b){.01>a&&(a=.01);this.ec.gain.value=a;this.dc.gain.value=Math.pow(1/a,.6)*b}tf(a,b){for(let e=0;32768>e;++e){let h=e/32768;h=this.Bg(h,a,b);this.Uc[32768+e]=h;this.Uc[32768-e-1]=-h}}Bg(a,b,e){e=1.05*e*b-b;const h=0>a?-a:a;return(h<b?h:b+e*self.da.Sg(h-b,1/e))*(0>a?-1:1)}S(a){this.b.disconnect();this.b.connect(a);this.a.disconnect(); this.a.connect(a)}P(){return this.l}X(a,b,e,h){switch(a){case 0:b=Math.max(Math.min(b/100,1),0),this.g[4]=b,this.m(this.b.gain,b,e,h),this.m(this.a.gain,1-b,e,h)}}};self.qe=class extends f{constructor(a,b,e,h,n,q){super(a);this.R="compressor";this.g=[b,e,h,n,q];this.h=this.c.createDynamicsCompressor();this.h.threshold.value=b;this.h.knee.value=e;this.h.ratio.value=h;this.h.attack.value=n;this.h.release.value=q}f(){this.h.disconnect();super.f()}S(a){this.h.disconnect();this.h.connect(a)}P(){return this.h}X(){}}; self.pe=class extends f{constructor(a,b,e){super(a);this.R="analyser";this.g=[b,e];this.h=this.c.createAnalyser();this.h.fftSize=b;this.h.smoothingTimeConstant=e;this.Vd=new Float32Array(this.h.frequencyBinCount);this.ie=new Uint8Array(b);this.ge=this.La=0;this.i.af(this)}f(){this.i.gg(this);this.h.disconnect();super.f()}Da(){this.h.getFloatFrequencyData(this.Vd);this.h.getByteTimeDomainData(this.ie);const a=this.h.fftSize;let b=this.La=0;for(var e=0;e<a;++e){let h=(this.ie[e]-128)/128;0>h&&(h=-h); this.La<h&&(this.La=h);b+=h*h}e=self.da.Qe;this.La=e(this.La);this.ge=e(Math.sqrt(b/a))}S(a){this.h.disconnect();this.h.connect(a)}P(){return this.h}X(){}Je(){return{tag:this.Y,index:this.Xd,peak:this.La,rms:this.ge,binCount:this.h.frequencyBinCount,freqBins:this.Vd}}}};
| ver. 1.4 |
Github
|
.
| PHP 8.2.29 | Генераци� �траницы: 0 |
proxy
|
phpinfo
|
�а�тройка