nin10dorox

Polygon's FRHD Mod

Feb 25th, 2020 (edited)
8,189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 386.13 KB | None | 0 0
  1. !function(t){var e={};function i(s){if(e[s])return e[s].exports;var n=e[s]={i:s,l:!1,exports:{}};return t[s].call(n.exports,n,n.exports,i),n.l=!0,n.exports}i.m=t,i.c=e,i.d=function(t,e,s){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:s})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var s=Object.create(null);if(i.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)i.d(s,n,function(e){return t[e]}.bind(null,n));return s},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=40)}([function(t,e,i){"use strict";i.r(e);const s=Math.sqrt,n=Math.pow,r=Math.atan2,o=Math.PI;class a{constructor(t=0,e=0){this.x=t,this.y=e}toReal(t){let e=(this.x-t.screen.center.x)/t.camera.zoom+t.camera.position.x,i=(this.y-t.screen.center.y)/t.camera.zoom+t.camera.position.y;return new a(e,i)}toRealSnapped(t){let e=t.camera.position.factor(t.camera.zoom).sub(t.screen.center),i=(this.x-Math.floor(-e.x))/t.camera.zoom,s=(this.y-Math.floor(-e.y))/t.camera.zoom;return new a(i,s)}toScreen(t){let e=t.camera,i=t.screen,s=(this.x-e.position.x)*e.zoom+i.center.x,n=(this.y-e.position.y)*e.zoom+i.center.y;return new a(s,n)}toScreenSnapped(t){let e=t.camera.position.factor(t.camera.zoom).sub(t.screen.center),i=this.x*t.camera.zoom+Math.floor(-e.x),s=this.y*t.camera.zoom+Math.floor(-e.y);return new a(i,s)}lenSqr(){return n(this.x,2)+n(this.y,2)}len(){return s(n(this.x,2)+n(this.y,2))}dot(t){return this.x*t.x+this.y*t.y}factor(t){return new a(this.x*t,this.y*t)}factorSelf(t){this.x=this.x*t,this.y=this.y*t}factorOut(t,e){e.x=this.x*t,e.y=this.y*t}add(t){return new a(this.x+t.x,this.y+t.y)}inc(t){this.x+=t.x,this.y+=t.y}addOut(t,e){e.x=this.x+t.x,e.y=this.y+t.y}sub(t){return new a(this.x-t.x,this.y-t.y)}subOut(t,e){e.x=this.x-t.x,e.y=this.y-t.y}subSelf(t){this.x=this.x-t.x,this.y=this.y-t.y}equ(t){this.x=t.x,this.y=t.y}normalize(t=1){return this.factor(t/this.len())}getAngleInDegrees(t){let e=this.getAngleInRadians(t)*(180/o);return e<0&&(e+=360),e}getAngleInRadians(t){return r(t.x-this.x,-t.y+this.y)}cross(t){return this.x*t.y-this.y*t.x}clone(){return new a(this.x,this.y)}toArray(){return[this.x,this.y]}}e.default=a},function(t,e,i){"use strict";i.r(e);class s{constructor(){}init(t){this.toolHandler=t,this.scene=t.scene,this.game=t.scene.game,this.camera=t.camera,this.mouse=t.mouse,this.gamepad=t.gamepad}press(){}hold(){}release(){}update(){let t=this.mouse,e=t.touch,i=t.secondaryTouch,s=this.toolHandler.gamepad,n=this.toolHandler.options,r=s.isButtonDown("shift")&&!s.isButtonDown("ctrl");n.rightClickMove&&(r=i.old.down),r?(e.old.down||n.rightClickMove)&&this.moveCamera():(e.press&&this.press(),e.old.down&&this.hold()),e.release&&this.release(),t.mousewheel&&!s.isButtonDown("shift")&&this.mousewheel(t.mousewheel)}moveCamera(){let t=this.mouse.secondaryTouch,e=this.camera,i=t.old.pos.sub(t.pos).factor(1/e.zoom);e.position.inc(i)}draw(){}reset(){}mousewheel(t){let e=this.scene.settings,i=this.scene.game.pixelRatio,s=e.cameraSensitivity,n=e.cameraZoomMin,r=e.cameraZoomMax,o=this.camera,a=this.mouse.touch,h=o.desiredZoom+t*s;o.setZoom(h/i,a.pos),o.desiredZoom<n*i?o.setZoom(n,a.pos):o.desiredZoom>r*i&&o.setZoom(r,a.pos)}checkKeys(){let t=this.gamepad,e=this.name.toLowerCase();t.isButtonDown(e)&&(this.toolHandler.setTool(e),t.setButtonUp(e))}getOptions(){return{}}close(){}}const n=s.prototype;n.name="",n.toolHandler=null,n.camera=null,n.mouse=null,n.scene=null,e.default=s},function(t,e,i){(function(t,s){var n;(function(t){(function(){function r(t,e){if(t!==e){var i=null===t,s=t===k,n=t==t,r=null===e,o=e===k,a=e==e;if(t>e&&!r||!n||i&&!o&&a||s&&a)return 1;if(e>t&&!i||!a||r&&!s&&n||o&&n)return-1}return 0}function o(t,e,i){for(var s=t.length,n=i?s:-1;i?n--:++n<s;)if(e(t[n],n,t))return n;return-1}function a(t,e,i){if(e!=e)return v(t,i);i-=1;for(var s=t.length;++i<s;)if(t[i]===e)return i;return-1}function h(t){return"function"==typeof t||!1}function l(t){return null==t?"":t+""}function c(t,e){for(var i=-1,s=t.length;++i<s&&-1<e.indexOf(t.charAt(i)););return i}function u(t,e){for(var i=t.length;i--&&-1<e.indexOf(t.charAt(i)););return i}function d(t,e){return r(t.a,e.a)||t.b-e.b}function p(t){return Rt[t]}function f(t){return Wt[t]}function g(t,e,i){return e?t=Nt[t]:i&&(t=Ut[t]),"\\"+t}function m(t){return"\\"+Ut[t]}function v(t,e,i){var s=t.length;for(e+=i?0:-1;i?e--:++e<s;){var n=t[e];if(n!=n)return e}return-1}function y(t){return!!t&&"object"==typeof t}function w(t){return 160>=t&&t>=9&&13>=t||32==t||160==t||5760==t||6158==t||t>=8192&&(8202>=t||8232==t||8233==t||8239==t||8287==t||12288==t||65279==t)}function x(t,e){for(var i=-1,s=t.length,n=-1,r=[];++i<s;)t[i]===e&&(t[i]=N,r[++n]=i);return r}function _(t){for(var e=-1,i=t.length;++e<i&&w(t.charCodeAt(e)););return e}function b(t){for(var e=t.length;e--&&w(t.charCodeAt(e)););return e}function T(t){return Vt[t]}var k,C="3.10.1",S=1,P=2,M=4,D=8,E=16,A=32,L=64,I=128,O=256,z=30,j="...",B=150,F=16,R=200,W=1,V=2,H="Expected a function",N="__lodash_placeholder__",U="[object Arguments]",q="[object Array]",G="[object Boolean]",Y="[object Date]",X="[object Error]",K="[object Function]",Z="[object Number]",J="[object Object]",$="[object RegExp]",Q="[object String]",tt="[object ArrayBuffer]",et="[object Float32Array]",it="[object Float64Array]",st="[object Int8Array]",nt="[object Int16Array]",rt="[object Int32Array]",ot="[object Uint8Array]",at="[object Uint8ClampedArray]",ht="[object Uint16Array]",lt="[object Uint32Array]",ct=/\b__p\+='';/g,ut=/\b(__p\+=)''\+/g,dt=/(__e\(.*?\)|\b__t\))\+'';/g,pt=/&(?:amp|lt|gt|quot|#39|#96);/g,ft=/[&<>"'`]/g,gt=RegExp(pt.source),mt=RegExp(ft.source),vt=/<%-([\s\S]+?)%>/g,yt=/<%([\s\S]+?)%>/g,wt=/<%=([\s\S]+?)%>/g,xt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,_t=/^\w*$/,bt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,Tt=/^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g,kt=RegExp(Tt.source),Ct=/[\u0300-\u036f\ufe20-\ufe23]/g,St=/\\(\\)?/g,Pt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Mt=/\w*$/,Dt=/^0[xX]/,Et=/^\[object .+?Constructor\]$/,At=/^\d+$/,Lt=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,It=/($^)/,Ot=/['\n\r\u2028\u2029\\]/g,zt=RegExp("[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?=[A-Z\\xc0-\\xd6\\xd8-\\xde][a-z\\xdf-\\xf6\\xf8-\\xff]+)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+|[A-Z\\xc0-\\xd6\\xd8-\\xde]+|[0-9]+","g"),jt="Array ArrayBuffer Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Math Number Object RegExp Set String _ clearTimeout isFinite parseFloat parseInt setTimeout TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap".split(" "),Bt={};Bt[et]=Bt[it]=Bt[st]=Bt[nt]=Bt[rt]=Bt[ot]=Bt[at]=Bt[ht]=Bt[lt]=!0,Bt[U]=Bt[q]=Bt[tt]=Bt[G]=Bt[Y]=Bt[X]=Bt[K]=Bt["[object Map]"]=Bt[Z]=Bt[J]=Bt[$]=Bt["[object Set]"]=Bt[Q]=Bt["[object WeakMap]"]=!1;var Ft={};Ft[U]=Ft[q]=Ft[tt]=Ft[G]=Ft[Y]=Ft[et]=Ft[it]=Ft[st]=Ft[nt]=Ft[rt]=Ft[Z]=Ft[J]=Ft[$]=Ft[Q]=Ft[ot]=Ft[at]=Ft[ht]=Ft[lt]=!0,Ft[X]=Ft[K]=Ft["[object Map]"]=Ft["[object Set]"]=Ft["[object WeakMap]"]=!1;var Rt={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss"},Wt={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","`":"&#96;"},Vt={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'","&#96;":"`"},Ht={function:!0,object:!0},Nt={0:"x30",1:"x31",2:"x32",3:"x33",4:"x34",5:"x35",6:"x36",7:"x37",8:"x38",9:"x39",A:"x41",B:"x42",C:"x43",D:"x44",E:"x45",F:"x46",a:"x61",b:"x62",c:"x63",d:"x64",e:"x65",f:"x66",n:"x6e",r:"x72",t:"x74",u:"x75",v:"x76",x:"x78"},Ut={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},qt=Ht[typeof s.exports]&&s.exports&&!s.exports.nodeType&&s.exports,Gt=Ht[typeof s]&&s&&!s.nodeType&&s,Yt=Ht[typeof self]&&self&&self.Object&&self,Xt=Ht[typeof window]&&window&&window.Object&&window,Kt=(Gt&&Gt.exports,qt&&Gt&&"object"==typeof t&&t&&t.Object&&t||Xt!==(this&&this.window)&&Xt||Yt||this),Zt=function t(e){function i(t){if(y(t)&&!(vr(t)||t instanceof w)){if(t instanceof n)return t;if(Ns.call(t,"__chain__")&&Ns.call(t,"__wrapped__"))return Ai(t)}return new n(t)}function s(){}function n(t,e,i){this.__wrapped__=t,this.__actions__=i||[],this.__chain__=!!e}function w(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=vn,this.__views__=[]}function Rt(){this.__data__={}}function Wt(t){var e=t?t.length:0;for(this.data={hash:on(null),set:new Qs};e--;)this.push(t[e])}function Vt(t,e){var i=t.data;return("string"==typeof e||rs(e)?i.set.has(e):i.hash[e])?0:-1}function Ht(t,e){var i=-1,s=t.length;for(e||(e=Ds(s));++i<s;)e[i]=t[i];return e}function Nt(t,e){for(var i=-1,s=t.length;++i<s&&!1!==e(t[i],i,t););return t}function Ut(t,e){for(var i=-1,s=t.length;++i<s;)if(!e(t[i],i,t))return!1;return!0}function qt(t,e){for(var i=-1,s=t.length,n=-1,r=[];++i<s;){var o=t[i];e(o,i,t)&&(r[++n]=o)}return r}function Gt(t,e){for(var i=-1,s=t.length,n=Ds(s);++i<s;)n[i]=e(t[i],i,t);return n}function Yt(t,e){for(var i=-1,s=e.length,n=t.length;++i<s;)t[n+i]=e[i];return t}function Xt(t,e,i,s){var n=-1,r=t.length;for(s&&r&&(i=t[++n]);++n<r;)i=e(i,t[n],n,t);return i}function Jt(t,e){for(var i=-1,s=t.length;++i<s;)if(e(t[i],i,t))return!0;return!1}function $t(t,e,i,s){return t!==k&&Ns.call(s,i)?t:e}function Qt(t,e,i){for(var s=-1,n=Mr(e),r=n.length;++s<r;){var o=n[s],a=t[o],h=i(a,e[o],o,t,e);(h==h?h===a:a!=a)&&(a!==k||o in t)||(t[o]=h)}return t}function te(t,e){return null==e?t:ie(e,Mr(e),t)}function ee(t,e){for(var i=-1,s=null==t,n=!s&&wi(t),r=n?t.length:0,o=e.length,a=Ds(o);++i<o;){var h=e[i];a[i]=n?xi(h,r)?t[h]:k:s?k:t[h]}return a}function ie(t,e,i){i||(i={});for(var s=-1,n=e.length;++s<n;){var r=e[s];i[r]=t[r]}return i}function se(t,e,i){var s=typeof t;return"function"==s?e===k?t:ze(t,e,i):null==t?ks:"object"==s?we(t):e===k?Ms(t):xe(t,e)}function ne(t,e,i,s,n,r,o){var a;if(i&&(a=n?i(t,s,n):i(t)),a!==k)return a;if(!rs(t))return t;if(s=vr(t)){if(a=function(t){var e=t.length,i=new t.constructor(e);return e&&"string"==typeof t[0]&&Ns.call(t,"index")&&(i.index=t.index,i.input=t.input),i}(t),!e)return Ht(t,a)}else{var h=qs.call(t),l=h==K;if(h!=J&&h!=U&&(!l||n))return Ft[h]?function(t,e,i){var s=t.constructor;switch(e){case tt:return je(t);case G:case Y:return new s(+t);case et:case it:case st:case nt:case rt:case ot:case at:case ht:case lt:return e=t.buffer,new s(i?je(e):e,t.byteOffset,t.length);case Z:case Q:return new s(t);case $:var n=new s(t.source,Mt.exec(t));n.lastIndex=t.lastIndex}return n}(t,h,e):n?t:{};if(a=function(t){return"function"==typeof(t=t.constructor)&&t instanceof t||(t=zs),new t}(l?{}:t),!e)return te(a,t)}for(r||(r=[]),o||(o=[]),n=r.length;n--;)if(r[n]==t)return o[n];return r.push(t),o.push(a),(s?Nt:de)(t,(function(s,n){a[n]=ne(s,e,i,n,t,r,o)})),a}function re(t,e,i){if("function"!=typeof t)throw new Fs(H);return tn((function(){t.apply(k,i)}),e)}function oe(t,e){var i=t?t.length:0,s=[];if(!i)return s;var n=-1,r=gi(),o=r===a,h=o&&e.length>=R&&on&&Qs?new Wt(e):null,l=e.length;h&&(r=Vt,o=!1,e=h);t:for(;++n<i;)if(h=t[n],o&&h==h){for(var c=l;c--;)if(e[c]===h)continue t;s.push(h)}else 0>r(e,h,0)&&s.push(h);return s}function ae(t,e){var i=!0;return kn(t,(function(t,s,n){return i=!!e(t,s,n)})),i}function he(t,e){var i=[];return kn(t,(function(t,s,n){e(t,s,n)&&i.push(t)})),i}function le(t,e,i,s){var n;return i(t,(function(t,i,r){return e(t,i,r)?(n=s?i:t,!1):void 0})),n}function ce(t,e,i,s){s||(s=[]);for(var n=-1,r=t.length;++n<r;){var o=t[n];y(o)&&wi(o)&&(i||vr(o)||es(o))?e?ce(o,e,i,s):Yt(s,o):i||(s[s.length]=o)}return s}function ue(t,e){Sn(t,e,ms)}function de(t,e){return Sn(t,e,Mr)}function pe(t,e){return Pn(t,e,Mr)}function fe(t,e){for(var i=-1,s=e.length,n=-1,r=[];++i<s;){var o=e[i];ns(t[o])&&(r[++n]=o)}return r}function ge(t,e,i){if(null!=t){i!==k&&i in Di(t)&&(e=[i]),i=0;for(var s=e.length;null!=t&&s>i;)t=t[e[i++]];return i&&i==s?t:k}}function me(t,e,i,s,n,r){if(t===e)t=!0;else if(null==t||null==e||!rs(t)&&!y(e))t=t!=t&&e!=e;else t:{var o=me,a=vr(t),h=vr(e),l=q,c=q;a||((l=qs.call(t))==U?l=J:l!=J&&(a=us(t))),h||((c=qs.call(e))==U?c=J:c!=J&&us(e));var u=l==J;h=c==J;if(!(c=l==c)||a||u){if(!s&&(l=u&&Ns.call(t,"__wrapped__"),h=h&&Ns.call(e,"__wrapped__"),l||h)){t=o(l?t.value():t,h?e.value():e,i,s,n,r);break t}if(c){for(n||(n=[]),r||(r=[]),l=n.length;l--;)if(n[l]==t){t=r[l]==e;break t}n.push(t),r.push(e),t=(a?ui:di)(t,e,o,i,s,n,r),n.pop(),r.pop()}else t=!1}else t=function(t,e,i){switch(i){case G:case Y:return+t==+e;case X:return t.name==e.name&&t.message==e.message;case Z:return t!=+t?e!=+e:t==+e;case $:case Q:return t==e+""}return!1}(t,e,l)}return t}function ve(t,e,i){var s=e.length,n=s,r=!i;if(null==t)return!n;for(t=Di(t);s--;){var o=e[s];if(r&&o[2]?o[1]!==t[o[0]]:!(o[0]in t))return!1}for(;++s<n;){var a=(o=e[s])[0],h=t[a],l=o[1];if(r&&o[2]){if(h===k&&!(a in t))return!1}else if((o=i?i(h,l,a):k)===k?!me(l,h,i,!0):!o)return!1}return!0}function ye(t,e){var i=-1,s=wi(t)?Ds(t.length):[];return kn(t,(function(t,n,r){s[++i]=e(t,n,r)})),s}function we(t){var e=mi(t);if(1==e.length&&e[0][2]){var i=e[0][0],s=e[0][1];return function(t){return null!=t&&(t[i]===s&&(s!==k||i in Di(t)))}}return function(t){return ve(t,e)}}function xe(t,e){var i=vr(t),s=bi(t)&&e==e&&!rs(e),n=t+"";return t=Ei(t),function(r){if(null==r)return!1;var o=n;if(r=Di(r),!(!i&&s||o in r)){if(null==(r=1==t.length?r:ge(r,Ce(t,0,-1))))return!1;o=ji(t),r=Di(r)}return r[o]===e?e!==k||o in r:me(e,r[o],k,!0)}}function _e(t){return function(e){return null==e?k:e[t]}}function be(t,e){for(var i=t?e.length:0;i--;){var s=e[i];if(s!=n&&xi(s)){var n=s;en.call(t,s,1)}}}function Te(t,e){return t+an(gn()*(e-t+1))}function ke(t,e,i,s,n){return n(t,(function(t,n,r){i=s?(s=!1,t):e(i,t,n,r)})),i}function Ce(t,e,i){var s=-1,n=t.length;for(0>(e=null==e?0:+e||0)&&(e=-e>n?0:n+e),0>(i=i===k||i>n?n:+i||0)&&(i+=n),n=e>i?0:i-e>>>0,e>>>=0,i=Ds(n);++s<n;)i[s]=t[s+e];return i}function Se(t,e){var i;return kn(t,(function(t,s,n){return!(i=e(t,s,n))})),!!i}function Pe(t,e){var i=t.length;for(t.sort(e);i--;)t[i]=t[i].c;return t}function Me(t,e,i){var s=pi(),n=-1;return e=Gt(e,(function(t){return s(t)})),Pe(t=ye(t,(function(t){return{a:Gt(e,(function(e){return e(t)})),b:++n,c:t}})),(function(t,e){var s;t:{for(var n=-1,o=t.a,a=e.a,h=o.length,l=i.length;++n<h;)if(s=r(o[n],a[n])){if(n>=l)break t;s*="asc"===(n=i[n])||!0===n?1:-1;break t}s=t.b-e.b}return s}))}function De(t,e){var i=-1,s=gi(),n=t.length,r=s===a,o=r&&n>=R,h=o&&on&&Qs?new Wt(void 0):null,l=[];h?(s=Vt,r=!1):(o=!1,h=e?[]:l);t:for(;++i<n;){var c=t[i],u=e?e(c,i,t):c;if(r&&c==c){for(var d=h.length;d--;)if(h[d]===u)continue t;e&&h.push(u),l.push(c)}else 0>s(h,u,0)&&((e||o)&&h.push(u),l.push(c))}return l}function Ee(t,e){for(var i=-1,s=e.length,n=Ds(s);++i<s;)n[i]=t[e[i]];return n}function Ae(t,e,i,s){for(var n=t.length,r=s?n:-1;(s?r--:++r<n)&&e(t[r],r,t););return i?Ce(t,s?0:r,s?r+1:n):Ce(t,s?r+1:0,s?n:r)}function Le(t,e){(r=t)instanceof w&&(r=r.value());for(var i=-1,s=e.length;++i<s;)var n=e[i],r=n.func.apply(n.thisArg,Yt([r],n.args));return r}function Ie(t,e,i){var s=0,n=t?t.length:s;if("number"==typeof e&&e==e&&wn>=n){for(;n>s;){var r=s+n>>>1,o=t[r];(i?e>=o:e>o)&&null!==o?s=r+1:n=r}return n}return Oe(t,e,ks,i)}function Oe(t,e,i,s){e=i(e);for(var n=0,r=t?t.length:0,o=e!=e,a=null===e,h=e===k;r>n;){var l=an((n+r)/2),c=i(t[l]),u=c!==k,d=c==c;(o?d||s:a?d&&u&&(s||null!=c):h?d&&(s||u):null!=c&&(s?e>=c:e>c))?n=l+1:r=l}return dn(r,yn)}function ze(t,e,i){if("function"!=typeof t)return ks;if(e===k)return t;switch(i){case 1:return function(i){return t.call(e,i)};case 3:return function(i,s,n){return t.call(e,i,s,n)};case 4:return function(i,s,n,r){return t.call(e,i,s,n,r)};case 5:return function(i,s,n,r,o){return t.call(e,i,s,n,r,o)}}return function(){return t.apply(e,arguments)}}function je(t){var e=new Xs(t.byteLength);return new sn(e).set(new sn(t)),e}function Be(t,e,i){for(var s=i.length,n=-1,r=un(t.length-s,0),o=-1,a=e.length,h=Ds(a+r);++o<a;)h[o]=e[o];for(;++n<s;)h[i[n]]=t[n];for(;r--;)h[o++]=t[n++];return h}function Fe(t,e,i){for(var s=-1,n=i.length,r=-1,o=un(t.length-n,0),a=-1,h=e.length,l=Ds(o+h);++r<o;)l[r]=t[r];for(o=r;++a<h;)l[o+a]=e[a];for(;++s<n;)l[o+i[s]]=t[r++];return l}function Re(t,e){return function(i,s,n){var r=e?e():{};if(s=pi(s,n,3),vr(i)){n=-1;for(var o=i.length;++n<o;){var a=i[n];t(r,a,s(a,n,i),i)}}else kn(i,(function(e,i,n){t(r,e,s(e,i,n),n)}));return r}}function We(t){return Qi((function(e,i){var s=-1,n=null==e?0:i.length,r=n>2?i[n-2]:k,o=n>2?i[2]:k,a=n>1?i[n-1]:k;for("function"==typeof r?(r=ze(r,a,5),n-=2):n-=(r="function"==typeof a?a:k)?1:0,o&&_i(i[0],i[1],o)&&(r=3>n?k:r,n=1);++s<n;)(o=i[s])&&t(e,o,r);return e}))}function Ve(t,e){return function(i,s){var n=i?En(i):0;if(!ki(n))return t(i,s);for(var r=e?n:-1,o=Di(i);(e?r--:++r<n)&&!1!==s(o[r],r,o););return i}}function He(t){return function(e,i,s){for(var n=Di(e),r=(s=s(e)).length,o=t?r:-1;t?o--:++o<r;){var a=s[o];if(!1===i(n[a],a,n))break}return e}}function Ne(t){return function(e){for(var i=-1,s=(e=bs(ws(e))).length,n="";++i<s;)n=t(n,e[i],i);return n}}function Ue(t){return function(){switch((e=arguments).length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var e,i=Tn(t.prototype);return rs(e=t.apply(i,e))?e:i}}function qe(t){return function e(i,s,n){return n&&_i(i,s,n)&&(s=k),(i=ci(i,t,k,k,k,k,k,s)).placeholder=e.placeholder,i}}function Ge(t,e){return Qi((function(i){var s=i[0];return null==s?s:(i.push(e),t.apply(k,i))}))}function Ye(t,e){return function(i,s,n){if(n&&_i(i,s,n)&&(s=k),1==(s=pi(s,n,3)).length){for(var r=s,o=-1,a=(n=i=vr(i)?i:Mi(i)).length,h=e,l=h;++o<a;){var c=n[o],u=+r(c);t(u,h)&&(h=u,l=c)}if(n=l,!i.length||n!==e)return n}return function(t,e,i,s){var n=s,r=n;return kn(t,(function(t,o,a){o=+e(t,o,a),(i(o,n)||o===s&&o===r)&&(n=o,r=t)})),r}(i,s,t,e)}}function Xe(t,e){return function(i,s,n){return s=pi(s,n,3),vr(i)?(s=o(i,s,e))>-1?i[s]:k:le(i,s,t)}}function Ke(t){return function(e,i,s){return e&&e.length?o(e,i=pi(i,s,3),t):-1}}function Ze(t){return function(e,i,s){return le(e,i=pi(i,s,3),t,!0)}}function Je(t){return function(){for(var e,i=arguments.length,s=t?i:-1,r=0,o=Ds(i);t?s--:++s<i;){if("function"!=typeof(a=o[r++]=arguments[s]))throw new Fs(H);!e&&n.prototype.thru&&"wrapper"==fi(a)&&(e=new n([],!0))}for(s=e?-1:i;++s<i;){var a,h="wrapper"==(r=fi(a=o[s]))?Dn(a):k;e=h&&Ti(h[0])&&h[1]==(I|D|A|O)&&!h[4].length&&1==h[9]?e[fi(h[0])].apply(e,h[3]):1==a.length&&Ti(a)?e[r]():e.thru(a)}return function(){var t=(n=arguments)[0];if(e&&1==n.length&&vr(t)&&t.length>=R)return e.plant(t).value();for(var s=0,n=i?o[s].apply(this,n):t;++s<i;)n=o[s].call(this,n);return n}}}function $e(t,e){return function(i,s,n){return"function"==typeof s&&n===k&&vr(i)?t(i,s):e(i,ze(s,n,3))}}function Qe(t){return function(e,i,s){return("function"!=typeof i||s!==k)&&(i=ze(i,s,3)),t(e,i,ms)}}function ti(t){return function(e,i,s){return("function"!=typeof i||s!==k)&&(i=ze(i,s,3)),t(e,i)}}function ei(t){return function(e,i,s){var n={};return i=pi(i,s,3),de(e,(function(e,s,r){r=i(e,s,r),e=t?e:r,n[s=t?r:s]=e})),n}}function ii(t){return function(e,i,s){return e=l(e),(t?e:"")+oi(e,i,s)+(t?"":e)}}function si(t){var e=Qi((function(i,s){var n=x(s,e.placeholder);return ci(i,t,k,s,n)}));return e}function ni(t,e){return function(i,s,n,r){var o=3>arguments.length;return"function"==typeof s&&r===k&&vr(i)?t(i,s,n,o):ke(i,pi(s,r,4),n,o,e)}}function ri(t,e,i,s,n,r,o,a,h,l){var c=e&I,u=e&S,d=e&P,p=e&D,f=e&M,g=e&E,m=d?k:Ue(t);return function v(){for(var y=_=arguments.length,w=Ds(_);y--;)w[y]=arguments[y];if(s&&(w=Be(w,s,n)),r&&(w=Fe(w,r,o)),p||g){var _=_-(b=x(w,y=v.placeholder)).length;if(l>_){var b,T=a?Ht(a):k,C=(_=un(l-_,0),p?b:k),M=p?w:k;return e|=p?A:L,e&=~(p?L:A),f||(e&=~(S|P)),w=[t,e,i,M,C,w=p?k:w,b=p?k:b,T,h,_],T=ri.apply(k,w),Ti(t)&&An(T,w),T.placeholder=y,T}}if(y=u?i:this,T=d?y[t]:t,a)for(_=w.length,C=dn(a.length,_),b=Ht(w);C--;)M=a[C],w[C]=xi(M,_)?b[M]:k;return c&&h<w.length&&(w.length=h),this&&this!==Kt&&this instanceof v&&(T=m||Ue(t)),T.apply(y,w)}}function oi(t,e,i){return(e=+e)>(t=t.length)&&ln(e)?xs(i=null==i?" ":i+"",rn((e-=t)/i.length)).slice(0,e):""}function ai(t,e,i,s){var n=e&S,r=Ue(t);return function e(){for(var o=-1,a=arguments.length,h=-1,l=s.length,c=Ds(l+a);++h<l;)c[h]=s[h];for(;a--;)c[h++]=arguments[++o];return(this&&this!==Kt&&this instanceof e?r:t).apply(n?i:this,c)}}function hi(t){var e=Is[t];return function(t,i){return(i=i===k?0:+i||0)?(i=Js(10,i),e(t*i)/i):e(t)}}function li(t){return function(e,i,s,n){var r=pi(s);return null==s&&r===se?Ie(e,i,t):Oe(e,i,r(s,n,1),t)}}function ci(t,e,i,s,n,r,o,a){var h=e&P;if(!h&&"function"!=typeof t)throw new Fs(H);var l=s?s.length:0;if(l||(e&=~(A|L),s=n=k),l-=n?n.length:0,e&L){var c=s,u=n;s=n=k}var d=h?k:Dn(t);return i=[t,e,i,s,n,c,u,r,o,a],d&&(a=(s=i[1])|(e=d[1]),n=e==I&&s==D||e==I&&s==O&&i[7].length<=d[8]||e==(I|O)&&s==D,(I>a||n)&&(e&S&&(i[2]=d[2],a|=s&S?0:M),(s=d[3])&&(n=i[3],i[3]=n?Be(n,s,d[4]):Ht(s),i[4]=n?x(i[3],N):Ht(d[4])),(s=d[5])&&(n=i[5],i[5]=n?Fe(n,s,d[6]):Ht(s),i[6]=n?x(i[5],N):Ht(d[6])),(s=d[7])&&(i[7]=Ht(s)),e&I&&(i[8]=null==i[8]?d[8]:dn(i[8],d[8])),null==i[9]&&(i[9]=d[9]),i[0]=d[0],i[1]=a),e=i[1],a=i[9]),i[9]=null==a?h?0:t.length:un(a-l,0)||0,(d?Mn:An)(e==S?function(t,e){var i=Ue(t);return function s(){return(this&&this!==Kt&&this instanceof s?i:t).apply(e,arguments)}}(i[0],i[2]):e!=A&&e!=(S|A)||i[4].length?ri.apply(k,i):ai.apply(k,i),i)}function ui(t,e,i,s,n,r,o){var a=-1,h=t.length;if(h!=(c=e.length)&&(!n||h>=c))return!1;for(;++a<h;){var l=t[a],c=e[a],u=s?s(n?c:l,n?l:c,a):k;if(u!==k){if(u)continue;return!1}if(n){if(!Jt(e,(function(t){return l===t||i(l,t,s,n,r,o)})))return!1}else if(l!==c&&!i(l,c,s,n,r,o))return!1}return!0}function di(t,e,i,s,n,r,o){var a=Mr(t),h=a.length,l=Mr(e).length;if(h!=l&&!n)return!1;for(l=h;l--;){var c=a[l];if(!(n?c in e:Ns.call(e,c)))return!1}for(var u=n;++l<h;){var d=t[c=a[l]],p=e[c],f=s?s(n?p:d,n?d:p,c):k;if(f===k?!i(d,p,s,n,r,o):!f)return!1;u||(u="constructor"==c)}return!(!u&&(i=t.constructor,s=e.constructor,i!=s&&"constructor"in t&&"constructor"in e&&!("function"==typeof i&&i instanceof i&&"function"==typeof s&&s instanceof s)))}function pi(t,e,s){var n=(n=i.callback||Ts)===Ts?se:n;return s?n(t,e,s):n}function fi(t){for(var e=t.name+"",i=bn[e],s=i?i.length:0;s--;){var n=i[s],r=n.func;if(null==r||r==t)return n.name}return e}function gi(t,e,s){var n=(n=i.indexOf||zi)===zi?a:n;return t?n(t,e,s):n}function mi(t){for(var e=(t=vs(t)).length;e--;){var i=t[e][1];t[e][2]=i==i&&!rs(i)}return t}function vi(t,e){var i=null==t?k:t[e];return os(i)?i:k}function yi(t,e,i){return null==t||bi(e,t)||(t=1==(e=Ei(e)).length?t:ge(t,Ce(e,0,-1)),e=ji(e)),null==(e=null==t?t:t[e])?k:e.apply(t,i)}function wi(t){return null!=t&&ki(En(t))}function xi(t,e){return t="number"==typeof t||At.test(t)?+t:-1,e=null==e?xn:e,t>-1&&0==t%1&&e>t}function _i(t,e,i){if(!rs(i))return!1;var s=typeof e;return!!("number"==s?wi(i)&&xi(e,i.length):"string"==s&&e in i)&&(e=i[e],t==t?t===e:e!=e)}function bi(t,e){var i=typeof t;return!!("string"==i&&_t.test(t)||"number"==i)||!vr(t)&&(!xt.test(t)||null!=e&&t in Di(e))}function Ti(t){var e=fi(t),s=i[e];return"function"==typeof s&&e in w.prototype&&(t===s||!!(e=Dn(s))&&t===e[0])}function ki(t){return"number"==typeof t&&t>-1&&0==t%1&&xn>=t}function Ci(t,e){t=Di(t);for(var i=-1,s=e.length,n={};++i<s;){var r=e[i];r in t&&(n[r]=t[r])}return n}function Si(t,e){var i={};return ue(t,(function(t,s,n){e(t,s,n)&&(i[s]=t)})),i}function Pi(t){for(var e=ms(t),i=e.length,s=i&&t.length,n=!!s&&ki(s)&&(vr(t)||es(t)),r=-1,o=[];++r<i;){var a=e[r];(n&&xi(a,s)||Ns.call(t,a))&&o.push(a)}return o}function Mi(t){return null==t?[]:wi(t)?rs(t)?t:zs(t):ys(t)}function Di(t){return rs(t)?t:zs(t)}function Ei(t){if(vr(t))return t;var e=[];return l(t).replace(bt,(function(t,i,s,n){e.push(s?n.replace(St,"$1"):i||t)})),e}function Ai(t){return t instanceof w?t.clone():new n(t.__wrapped__,t.__chain__,Ht(t.__actions__))}function Li(t,e,i){return t&&t.length?((i?_i(t,e,i):null==e)&&(e=1),Ce(t,0>e?0:e)):[]}function Ii(t,e,i){var s=t?t.length:0;return s?((i?_i(t,e,i):null==e)&&(e=1),Ce(t,0,0>(e=s-(+e||0))?0:e)):[]}function Oi(t){return t?t[0]:k}function zi(t,e,i){var s=t?t.length:0;if(!s)return-1;if("number"==typeof i)i=0>i?un(s+i,0):i;else if(i)return s>(i=Ie(t,e))&&(e==e?e===t[i]:t[i]!=t[i])?i:-1;return a(t,e,i||0)}function ji(t){var e=t?t.length:0;return e?t[e-1]:k}function Bi(t){return Li(t,1)}function Fi(t,e,i,s){if(!t||!t.length)return[];null!=e&&"boolean"!=typeof e&&(i=_i(t,e,s=i)?k:e,e=!1);var n=pi();if((null!=i||n!==se)&&(i=n(i,s,3)),e&&gi()===a){var r;e=i,i=-1,s=t.length;n=-1;for(var o=[];++i<s;){var h=t[i],l=e?e(h,i,t):h;i&&r===l||(r=l,o[++n]=h)}t=o}else t=De(t,i);return t}function Ri(t){if(!t||!t.length)return[];var e=-1,i=0;t=qt(t,(function(t){return wi(t)?(i=un(t.length,i),!0):void 0}));for(var s=Ds(i);++e<i;)s[e]=Gt(t,_e(e));return s}function Wi(t,e,i){return t&&t.length?(t=Ri(t),null==e?t:(e=ze(e,i,4),Gt(t,(function(t){return Xt(t,e,k,!0)})))):[]}function Vi(t,e){var i=-1,s=t?t.length:0,n={};for(!s||e||vr(t[0])||(e=[]);++i<s;){var r=t[i];e?n[r]=e[i]:r&&(n[r[0]]=r[1])}return n}function Hi(t){return(t=i(t)).__chain__=!0,t}function Ni(t,e,i){return e.call(i,t)}function Ui(t,e,i){var s=vr(t)?Ut:ae;return i&&_i(t,e,i)&&(e=k),("function"!=typeof e||i!==k)&&(e=pi(e,i,3)),s(t,e)}function qi(t,e,i){return(vr(t)?qt:he)(t,e=pi(e,i,3))}function Gi(t,e,i,s){var n=t?En(t):0;return ki(n)||(n=(t=ys(t)).length),i="number"!=typeof i||s&&_i(e,i,s)?0:0>i?un(n+i,0):i||0,"string"==typeof t||!vr(t)&&cs(t)?n>=i&&-1<t.indexOf(e,i):!!n&&-1<gi(t,e,i)}function Yi(t,e,i){return(vr(t)?Gt:ye)(t,e=pi(e,i,3))}function Xi(t,e,i){if(i?_i(t,e,i):null==e)return(n=(t=Mi(t)).length)>0?t[Te(0,n-1)]:k;i=-1;var s=(n=(t=ps(t)).length)-1;for(e=dn(0>e?0:+e||0,n);++i<e;){var n,r=t[n=Te(i,s)];t[n]=t[i],t[i]=r}return t.length=e,t}function Ki(t,e,i){var s=vr(t)?Jt:Se;return i&&_i(t,e,i)&&(e=k),("function"!=typeof e||i!==k)&&(e=pi(e,i,3)),s(t,e)}function Zi(t,e){var i;if("function"!=typeof e){if("function"!=typeof t)throw new Fs(H);var s=t;t=e,e=s}return function(){return 0<--t&&(i=e.apply(this,arguments)),1>=t&&(e=k),i}}function Ji(t,e,i){function s(e,i){i&&Ks(i),h=d=p=k,e&&(f=sr(),l=t.apply(u,a),d||h||(a=u=k))}function n(){var t=e-(sr()-c);0>=t||t>e?s(p,h):d=tn(n,t)}function r(){s(m,d)}function o(){if(a=arguments,c=sr(),u=this,p=m&&(d||!v),!1===g)var i=v&&!d;else{h||v||(f=c);var s=g-(c-f),o=0>=s||s>g;o?(h&&(h=Ks(h)),f=c,l=t.apply(u,a)):h||(h=tn(r,s))}return o&&d?d=Ks(d):d||e===g||(d=tn(n,e)),i&&(o=!0,l=t.apply(u,a)),!o||d||h||(a=u=k),l}var a,h,l,c,u,d,p,f=0,g=!1,m=!0;if("function"!=typeof t)throw new Fs(H);if(e=0>e?0:+e||0,!0===i){var v=!0;m=!1}else rs(i)&&(v=!!i.leading,g="maxWait"in i&&un(+i.maxWait||0,e),m="trailing"in i?!!i.trailing:m);return o.cancel=function(){d&&Ks(d),h&&Ks(h),f=0,h=d=p=k},o}function $i(t,e){function i(){var s=arguments,n=e?e.apply(this,s):s[0],r=i.cache;return r.has(n)?r.get(n):(s=t.apply(this,s),i.cache=r.set(n,s),s)}if("function"!=typeof t||e&&"function"!=typeof e)throw new Fs(H);return i.cache=new $i.Cache,i}function Qi(t,e){if("function"!=typeof t)throw new Fs(H);return e=un(e===k?t.length-1:+e||0,0),function(){for(var i=arguments,s=-1,n=un(i.length-e,0),r=Ds(n);++s<n;)r[s]=i[e+s];switch(e){case 0:return t.call(this,r);case 1:return t.call(this,i[0],r);case 2:return t.call(this,i[0],i[1],r)}for(n=Ds(e+1),s=-1;++s<e;)n[s]=i[s];return n[e]=r,t.apply(this,n)}}function ts(t,e){return t>e}function es(t){return y(t)&&wi(t)&&Ns.call(t,"callee")&&!$s.call(t,"callee")}function is(t,e,i,s){return(s=(i="function"==typeof i?ze(i,s,3):k)?i(t,e):k)===k?me(t,e,i):!!s}function ss(t){return y(t)&&"string"==typeof t.message&&qs.call(t)==X}function ns(t){return rs(t)&&qs.call(t)==K}function rs(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function os(t){return null!=t&&(ns(t)?Ys.test(Hs.call(t)):y(t)&&Et.test(t))}function as(t){return"number"==typeof t||y(t)&&qs.call(t)==Z}function hs(t){var e,i;return!(!y(t)||qs.call(t)!=J||es(t)||!(Ns.call(t,"constructor")||(e=t.constructor,"function"!=typeof e||e instanceof e)))&&(ue(t,(function(t,e){i=e})),i===k||Ns.call(t,i))}function ls(t){return rs(t)&&qs.call(t)==$}function cs(t){return"string"==typeof t||y(t)&&qs.call(t)==Q}function us(t){return y(t)&&ki(t.length)&&!!Bt[qs.call(t)]}function ds(t,e){return e>t}function ps(t){var e=t?En(t):0;return ki(e)?e?Ht(t):[]:ys(t)}function fs(t){return ie(t,ms(t))}function gs(t){return fe(t,ms(t))}function ms(t){if(null==t)return[];rs(t)||(t=zs(t));for(var e=(e=t.length)&&ki(e)&&(vr(t)||es(t))&&e||0,i=-1,s="function"==typeof(s=t.constructor)&&s.prototype===t,n=Ds(e),r=e>0;++i<e;)n[i]=i+"";for(var o in t)r&&xi(o,e)||"constructor"==o&&(s||!Ns.call(t,o))||n.push(o);return n}function vs(t){t=Di(t);for(var e=-1,i=Mr(t),s=i.length,n=Ds(s);++e<s;){var r=i[e];n[e]=[r,t[r]]}return n}function ys(t){return Ee(t,Mr(t))}function ws(t){return(t=l(t))&&t.replace(Lt,p).replace(Ct,"")}function xs(t,e){var i="";if(t=l(t),1>(e=+e)||!t||!ln(e))return i;do{e%2&&(i+=t),e=an(e/2),t+=t}while(e);return i}function _s(t,e,i){var s=t;return(t=l(t))?(i?_i(s,e,i):null==e)?t.slice(_(t),b(t)+1):(e+="",t.slice(c(t,e),u(t,e)+1)):t}function bs(t,e,i){return i&&_i(t,e,i)&&(e=k),(t=l(t)).match(e||zt)||[]}function Ts(t,e,i){return i&&_i(t,e,i)&&(e=k),y(t)?Cs(t):se(t,e)}function ks(t){return t}function Cs(t){return we(ne(t,!0))}function Ss(t,e,i){if(null==i){var s=(r=rs(e))?Mr(e):k;((s=s&&s.length?fe(e,s):k)?s.length:r)||(s=!1,i=e,e=t,t=this)}s||(s=fe(e,Mr(e)));var n=!0,r=-1,o=ns(t),a=s.length;!1===i?n=!1:rs(i)&&"chain"in i&&(n=i.chain);for(;++r<a;){var h=e[i=s[r]];t[i]=h,o&&(t.prototype[i]=function(e){return function(){var i=this.__chain__;if(n||i){var s=t(this.__wrapped__);return(s.__actions__=Ht(this.__actions__)).push({func:e,args:arguments,thisArg:t}),s.__chain__=i,s}return e.apply(t,Yt([this.value()],arguments))}}(h))}return t}function Ps(){}function Ms(t){return bi(t)?_e(t):function(t){var e=t+"";return t=Ei(t),function(i){return ge(i,t,e)}}(t)}var Ds=(e=e?Zt.defaults(Kt.Object(),e,Zt.pick(Kt,jt)):Kt).Array,Es=e.Date,As=e.Error,Ls=e.Function,Is=e.Math,Os=e.Number,zs=e.Object,js=e.RegExp,Bs=e.String,Fs=e.TypeError,Rs=Ds.prototype,Ws=zs.prototype,Vs=Bs.prototype,Hs=Ls.prototype.toString,Ns=Ws.hasOwnProperty,Us=0,qs=Ws.toString,Gs=Kt._,Ys=js("^"+Hs.call(Ns).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Xs=e.ArrayBuffer,Ks=e.clearTimeout,Zs=e.parseFloat,Js=Is.pow,$s=Ws.propertyIsEnumerable,Qs=vi(e,"Set"),tn=e.setTimeout,en=Rs.splice,sn=e.Uint8Array,nn=vi(e,"WeakMap"),rn=Is.ceil,on=vi(zs,"create"),an=Is.floor,hn=vi(Ds,"isArray"),ln=e.isFinite,cn=vi(zs,"keys"),un=Is.max,dn=Is.min,pn=vi(Es,"now"),fn=e.parseInt,gn=Is.random,mn=Os.NEGATIVE_INFINITY,vn=Os.POSITIVE_INFINITY,yn=4294967294,wn=2147483647,xn=9007199254740991,_n=nn&&new nn,bn={};i.support={},i.templateSettings={escape:vt,evaluate:yt,interpolate:wt,variable:"",imports:{_:i}};var Tn=function(){function t(){}return function(e){if(rs(e)){t.prototype=e;var i=new t;t.prototype=k}return i||{}}}(),kn=Ve(de),Cn=Ve(pe,!0),Sn=He(),Pn=He(!0),Mn=_n?function(t,e){return _n.set(t,e),t}:ks,Dn=_n?function(t){return _n.get(t)}:Ps,En=_e("length"),An=function(){var t=0,e=0;return function(i,s){var n=sr(),r=F-(n-e);if(e=n,r>0){if(++t>=B)return i}else t=0;return Mn(i,s)}}(),Ln=Qi((function(t,e){return y(t)&&wi(t)?oe(t,ce(e,!1,!0)):[]})),In=Ke(),On=Ke(!0),zn=Qi((function(t){for(var e=t.length,i=e,s=Ds(c),n=gi(),r=n===a,o=[];i--;){var h=t[i]=wi(h=t[i])?h:[];s[i]=r&&120<=h.length&&on&&Qs?new Wt(i&&h):null}var l=-1,c=(r=t[0])?r.length:0,u=s[0];t:for(;++l<c;)if(h=r[l],0>(u?Vt(u,h):n(o,h,0))){for(i=e;--i;){var d=s[i];if(0>(d?Vt(d,h):n(t[i],h,0)))continue t}u&&u.push(h),o.push(h)}return o})),jn=Qi((function(t,e){var i=ee(t,e=ce(e));return be(t,e.sort(r)),i})),Bn=li(),Fn=li(!0),Rn=Qi((function(t){return De(ce(t,!1,!0))})),Wn=Qi((function(t,e){return wi(t)?oe(t,e):[]})),Vn=Qi(Ri),Hn=Qi((function(t){var e=t.length,i=e>2?t[e-2]:k,s=e>1?t[e-1]:k;return e>2&&"function"==typeof i?e-=2:(i=e>1&&"function"==typeof s?(--e,s):k,s=k),t.length=e,Wi(t,i,s)})),Nn=Qi((function(t){return t=ce(t),this.thru((function(e){e=vr(e)?e:[Di(e)];for(var i=t,s=-1,n=e.length,r=-1,o=i.length,a=Ds(n+o);++s<n;)a[s]=e[s];for(;++r<o;)a[s++]=i[r];return a}))})),Un=Qi((function(t,e){return ee(t,ce(e))})),qn=Re((function(t,e,i){Ns.call(t,i)?++t[i]:t[i]=1})),Gn=Xe(kn),Yn=Xe(Cn,!0),Xn=$e(Nt,kn),Kn=$e((function(t,e){for(var i=t.length;i--&&!1!==e(t[i],i,t););return t}),Cn),Zn=Re((function(t,e,i){Ns.call(t,i)?t[i].push(e):t[i]=[e]})),Jn=Re((function(t,e,i){t[i]=e})),$n=Qi((function(t,e,i){var s=-1,n="function"==typeof e,r=bi(e),o=wi(t)?Ds(t.length):[];return kn(t,(function(t){var a=n?e:r&&null!=t?t[e]:k;o[++s]=a?a.apply(t,i):yi(t,e,i)})),o})),Qn=Re((function(t,e,i){t[i?0:1].push(e)}),(function(){return[[],[]]})),tr=ni(Xt,kn),er=ni((function(t,e,i,s){var n=t.length;for(s&&n&&(i=t[--n]);n--;)i=e(i,t[n],n,t);return i}),Cn),ir=Qi((function(t,e){if(null==t)return[];var i=e[2];return i&&_i(e[0],e[1],i)&&(e.length=1),Me(t,ce(e),[])})),sr=pn||function(){return(new Es).getTime()},nr=Qi((function(t,e,i){var s=S;if(i.length){var n=x(i,nr.placeholder);s=s|A}return ci(t,s,e,i,n)})),rr=Qi((function(t,e){for(var i=-1,s=(e=e.length?ce(e):gs(t)).length;++i<s;){var n=e[i];t[n]=ci(t[n],S,t)}return t})),or=Qi((function(t,e,i){var s=S|P;if(i.length){var n=x(i,or.placeholder);s=s|A}return ci(e,s,t,i,n)})),ar=qe(D),hr=qe(E),lr=Qi((function(t,e){return re(t,1,e)})),cr=Qi((function(t,e,i){return re(t,e,i)})),ur=Je(),dr=Je(!0),pr=Qi((function(t,e){if(e=ce(e),"function"!=typeof t||!Ut(e,h))throw new Fs(H);var i=e.length;return Qi((function(s){for(var n=dn(s.length,i);n--;)s[n]=e[n](s[n]);return t.apply(this,s)}))})),fr=si(A),gr=si(L),mr=Qi((function(t,e){return ci(t,O,k,k,k,ce(e))})),vr=hn||function(t){return y(t)&&ki(t.length)&&qs.call(t)==q},yr=We((function t(e,i,s,n,r){if(!rs(e))return e;var o=wi(i)&&(vr(i)||us(i)),a=o?k:Mr(i);return Nt(a||i,(function(h,l){if(a&&(h=i[l=h]),y(h)){n||(n=[]),r||(r=[]);t:{for(var c=l,u=n,d=r,p=u.length,f=i[c];p--;)if(u[p]==f){e[c]=d[p];break t}p=e[c];var g=s?s(p,f,c,e,i):k,m=g===k;m&&(g=f,wi(f)&&(vr(f)||us(f))?g=vr(p)?p:wi(p)?Ht(p):[]:hs(f)||es(f)?g=es(p)?fs(p):hs(p)?p:{}:m=!1),u.push(f),d.push(g),m?e[c]=t(g,f,s,u,d):(g==g?g!==p:p==p)&&(e[c]=g)}}else c=e[l],(d=(u=s?s(c,h,l,e,i):k)===k)&&(u=h),u===k&&(!o||l in e)||!d&&(u==u?u===c:c!=c)||(e[l]=u)})),e})),wr=We((function(t,e,i){return i?Qt(t,e,i):te(t,e)})),xr=Ge(wr,(function(t,e){return t===k?e:t})),_r=Ge(yr,(function t(e,i){return e===k?i:yr(e,i,t)})),br=Ze(de),Tr=Ze(pe),kr=Qe(Sn),Cr=Qe(Pn),Sr=ti(de),Pr=ti(pe),Mr=cn?function(t){var e=null==t?k:t.constructor;return"function"==typeof e&&e.prototype===t||"function"!=typeof t&&wi(t)?Pi(t):rs(t)?cn(t):[]}:Pi,Dr=ei(!0),Er=ei(),Ar=Qi((function(t,e){if(null==t)return{};if("function"!=typeof e[0])return e=Gt(ce(e),Bs),Ci(t,oe(ms(t),e));var i=ze(e[0],e[1],3);return Si(t,(function(t,e,s){return!i(t,e,s)}))})),Lr=Qi((function(t,e){return null==t?{}:"function"==typeof e[0]?Si(t,ze(e[0],e[1],3)):Ci(t,ce(e))})),Ir=Ne((function(t,e,i){return e=e.toLowerCase(),t+(i?e.charAt(0).toUpperCase()+e.slice(1):e)})),Or=Ne((function(t,e,i){return t+(i?"-":"")+e.toLowerCase()})),zr=ii(),jr=ii(!0),Br=Ne((function(t,e,i){return t+(i?"_":"")+e.toLowerCase()})),Fr=Ne((function(t,e,i){return t+(i?" ":"")+(e.charAt(0).toUpperCase()+e.slice(1))})),Rr=Qi((function(t,e){try{return t.apply(k,e)}catch(t){return ss(t)?t:new As(t)}})),Wr=Qi((function(t,e){return function(i){return yi(i,t,e)}})),Vr=Qi((function(t,e){return function(i){return yi(t,i,e)}})),Hr=hi("ceil"),Nr=hi("floor"),Ur=Ye(ts,mn),qr=Ye(ds,vn),Gr=hi("round");return i.prototype=s.prototype,n.prototype=Tn(s.prototype),n.prototype.constructor=n,w.prototype=Tn(s.prototype),w.prototype.constructor=w,Rt.prototype.delete=function(t){return this.has(t)&&delete this.__data__[t]},Rt.prototype.get=function(t){return"__proto__"==t?k:this.__data__[t]},Rt.prototype.has=function(t){return"__proto__"!=t&&Ns.call(this.__data__,t)},Rt.prototype.set=function(t,e){return"__proto__"!=t&&(this.__data__[t]=e),this},Wt.prototype.push=function(t){var e=this.data;"string"==typeof t||rs(t)?e.set.add(t):e.hash[t]=!0},$i.Cache=Rt,i.after=function(t,e){if("function"!=typeof e){if("function"!=typeof t)throw new Fs(H);var i=t;t=e,e=i}return t=ln(t=+t)?t:0,function(){return 1>--t?e.apply(this,arguments):void 0}},i.ary=function(t,e,i){return i&&_i(t,e,i)&&(e=k),e=t&&null==e?t.length:un(+e||0,0),ci(t,I,k,k,k,k,e)},i.assign=wr,i.at=Un,i.before=Zi,i.bind=nr,i.bindAll=rr,i.bindKey=or,i.callback=Ts,i.chain=Hi,i.chunk=function(t,e,i){e=(i?_i(t,e,i):null==e)?1:un(an(e)||1,1),i=0;for(var s=t?t.length:0,n=-1,r=Ds(rn(s/e));s>i;)r[++n]=Ce(t,i,i+=e);return r},i.compact=function(t){for(var e=-1,i=t?t.length:0,s=-1,n=[];++e<i;){var r=t[e];r&&(n[++s]=r)}return n},i.constant=function(t){return function(){return t}},i.countBy=qn,i.create=function(t,e,i){var s=Tn(t);return i&&_i(t,e,i)&&(e=k),e?te(s,e):s},i.curry=ar,i.curryRight=hr,i.debounce=Ji,i.defaults=xr,i.defaultsDeep=_r,i.defer=lr,i.delay=cr,i.difference=Ln,i.drop=Li,i.dropRight=Ii,i.dropRightWhile=function(t,e,i){return t&&t.length?Ae(t,pi(e,i,3),!0,!0):[]},i.dropWhile=function(t,e,i){return t&&t.length?Ae(t,pi(e,i,3),!0):[]},i.fill=function(t,e,i,s){var n=t?t.length:0;if(!n)return[];for(i&&"number"!=typeof i&&_i(t,e,i)&&(i=0,s=n),n=t.length,0>(i=null==i?0:+i||0)&&(i=-i>n?0:n+i),0>(s=s===k||s>n?n:+s||0)&&(s+=n),n=i>s?0:s>>>0,i>>>=0;n>i;)t[i++]=e;return t},i.filter=qi,i.flatten=function(t,e,i){var s=t?t.length:0;return i&&_i(t,e,i)&&(e=!1),s?ce(t,e):[]},i.flattenDeep=function(t){return t&&t.length?ce(t,!0):[]},i.flow=ur,i.flowRight=dr,i.forEach=Xn,i.forEachRight=Kn,i.forIn=kr,i.forInRight=Cr,i.forOwn=Sr,i.forOwnRight=Pr,i.functions=gs,i.groupBy=Zn,i.indexBy=Jn,i.initial=function(t){return Ii(t,1)},i.intersection=zn,i.invert=function(t,e,i){i&&_i(t,e,i)&&(e=k),i=-1;for(var s=Mr(t),n=s.length,r={};++i<n;){var o=s[i],a=t[o];e?Ns.call(r,a)?r[a].push(o):r[a]=[o]:r[a]=o}return r},i.invoke=$n,i.keys=Mr,i.keysIn=ms,i.map=Yi,i.mapKeys=Dr,i.mapValues=Er,i.matches=Cs,i.matchesProperty=function(t,e){return xe(t,ne(e,!0))},i.memoize=$i,i.merge=yr,i.method=Wr,i.methodOf=Vr,i.mixin=Ss,i.modArgs=pr,i.negate=function(t){if("function"!=typeof t)throw new Fs(H);return function(){return!t.apply(this,arguments)}},i.omit=Ar,i.once=function(t){return Zi(2,t)},i.pairs=vs,i.partial=fr,i.partialRight=gr,i.partition=Qn,i.pick=Lr,i.pluck=function(t,e){return Yi(t,Ms(e))},i.property=Ms,i.propertyOf=function(t){return function(e){return ge(t,Ei(e),e+"")}},i.pull=function(){var t=arguments,e=t[0];if(!e||!e.length)return e;for(var i=0,s=gi(),n=t.length;++i<n;)for(var r=0,o=t[i];-1<(r=s(e,o,r));)en.call(e,r,1);return e},i.pullAt=jn,i.range=function(t,e,i){i&&_i(t,e,i)&&(e=i=k),t=+t||0,null==e?(e=t,t=0):e=+e||0;var s=-1;e=un(rn((e-t)/((i=null==i?1:+i||0)||1)),0);for(var n=Ds(e);++s<e;)n[s]=t,t+=i;return n},i.rearg=mr,i.reject=function(t,e,i){var s=vr(t)?qt:he;return e=pi(e,i,3),s(t,(function(t,i,s){return!e(t,i,s)}))},i.remove=function(t,e,i){var s=[];if(!t||!t.length)return s;var n=-1,r=[],o=t.length;for(e=pi(e,i,3);++n<o;)e(i=t[n],n,t)&&(s.push(i),r.push(n));return be(t,r),s},i.rest=Bi,i.restParam=Qi,i.set=function(t,e,i){if(null==t)return t;e=null!=t[s=e+""]||bi(e,t)?[s]:Ei(e);for(var s=-1,n=e.length,r=n-1,o=t;null!=o&&++s<n;){var a=e[s];rs(o)&&(s==r?o[a]=i:null==o[a]&&(o[a]=xi(e[s+1])?[]:{})),o=o[a]}return t},i.shuffle=function(t){return Xi(t,vn)},i.slice=function(t,e,i){var s=t?t.length:0;return s?(i&&"number"!=typeof i&&_i(t,e,i)&&(e=0,i=s),Ce(t,e,i)):[]},i.sortBy=function(t,e,i){if(null==t)return[];i&&_i(t,e,i)&&(e=k);var s=-1;return e=pi(e,i,3),Pe(t=ye(t,(function(t,i,n){return{a:e(t,i,n),b:++s,c:t}})),d)},i.sortByAll=ir,i.sortByOrder=function(t,e,i,s){return null==t?[]:(s&&_i(e,i,s)&&(i=k),vr(e)||(e=null==e?[]:[e]),vr(i)||(i=null==i?[]:[i]),Me(t,e,i))},i.spread=function(t){if("function"!=typeof t)throw new Fs(H);return function(e){return t.apply(this,e)}},i.take=function(t,e,i){return t&&t.length?((i?_i(t,e,i):null==e)&&(e=1),Ce(t,0,0>e?0:e)):[]},i.takeRight=function(t,e,i){var s=t?t.length:0;return s?((i?_i(t,e,i):null==e)&&(e=1),Ce(t,0>(e=s-(+e||0))?0:e)):[]},i.takeRightWhile=function(t,e,i){return t&&t.length?Ae(t,pi(e,i,3),!1,!0):[]},i.takeWhile=function(t,e,i){return t&&t.length?Ae(t,pi(e,i,3)):[]},i.tap=function(t,e,i){return e.call(i,t),t},i.throttle=function(t,e,i){var s=!0,n=!0;if("function"!=typeof t)throw new Fs(H);return!1===i?s=!1:rs(i)&&(s="leading"in i?!!i.leading:s,n="trailing"in i?!!i.trailing:n),Ji(t,e,{leading:s,maxWait:+e,trailing:n})},i.thru=Ni,i.times=function(t,e,i){if(1>(t=an(t))||!ln(t))return[];var s=-1,n=Ds(dn(t,4294967295));for(e=ze(e,i,1);++s<t;)4294967295>s?n[s]=e(s):e(s);return n},i.toArray=ps,i.toPlainObject=fs,i.transform=function(t,e,i,s){var n=vr(t)||us(t);return e=pi(e,s,4),null==i&&(n||rs(t)?(s=t.constructor,i=n?vr(t)?new s:[]:Tn(ns(s)?s.prototype:k)):i={}),(n?Nt:de)(t,(function(t,s,n){return e(i,t,s,n)})),i},i.union=Rn,i.uniq=Fi,i.unzip=Ri,i.unzipWith=Wi,i.values=ys,i.valuesIn=function(t){return Ee(t,ms(t))},i.where=function(t,e){return qi(t,we(e))},i.without=Wn,i.wrap=function(t,e){return ci(e=null==e?ks:e,A,k,[t],[])},i.xor=function(){for(var t=-1,e=arguments.length;++t<e;){var i=arguments[t];if(wi(i))var s=s?Yt(oe(s,i),oe(i,s)):i}return s?De(s):[]},i.zip=Vn,i.zipObject=Vi,i.zipWith=Hn,i.backflow=dr,i.collect=Yi,i.compose=dr,i.each=Xn,i.eachRight=Kn,i.extend=wr,i.iteratee=Ts,i.methods=gs,i.object=Vi,i.select=qi,i.tail=Bi,i.unique=Fi,Ss(i,i),i.add=function(t,e){return(+t||0)+(+e||0)},i.attempt=Rr,i.camelCase=Ir,i.capitalize=function(t){return(t=l(t))&&t.charAt(0).toUpperCase()+t.slice(1)},i.ceil=Hr,i.clone=function(t,e,i,s){return e&&"boolean"!=typeof e&&_i(t,e,i)?e=!1:"function"==typeof e&&(s=i,i=e,e=!1),"function"==typeof i?ne(t,e,ze(i,s,3)):ne(t,e)},i.cloneDeep=function(t,e,i){return"function"==typeof e?ne(t,!0,ze(e,i,3)):ne(t,!0)},i.deburr=ws,i.endsWith=function(t,e,i){e+="";var s=(t=l(t)).length;return i=i===k?s:dn(0>i?0:+i||0,s),(i-=e.length)>=0&&t.indexOf(e,i)==i},i.escape=function(t){return(t=l(t))&&mt.test(t)?t.replace(ft,f):t},i.escapeRegExp=function(t){return(t=l(t))&&kt.test(t)?t.replace(Tt,g):t||"(?:)"},i.every=Ui,i.find=Gn,i.findIndex=In,i.findKey=br,i.findLast=Yn,i.findLastIndex=On,i.findLastKey=Tr,i.findWhere=function(t,e){return Gn(t,we(e))},i.first=Oi,i.floor=Nr,i.get=function(t,e,i){return(t=null==t?k:ge(t,Ei(e),e+""))===k?i:t},i.gt=ts,i.gte=function(t,e){return t>=e},i.has=function(t,e){if(null==t)return!1;var i=Ns.call(t,e);if(!i&&!bi(e)){if(null==(t=1==(e=Ei(e)).length?t:ge(t,Ce(e,0,-1))))return!1;e=ji(e),i=Ns.call(t,e)}return i||ki(t.length)&&xi(e,t.length)&&(vr(t)||es(t))},i.identity=ks,i.includes=Gi,i.indexOf=zi,i.inRange=function(t,e,i){return e=+e||0,i===k?(i=e,e=0):i=+i||0,t>=dn(e,i)&&t<un(e,i)},i.isArguments=es,i.isArray=vr,i.isBoolean=function(t){return!0===t||!1===t||y(t)&&qs.call(t)==G},i.isDate=function(t){return y(t)&&qs.call(t)==Y},i.isElement=function(t){return!!t&&1===t.nodeType&&y(t)&&!hs(t)},i.isEmpty=function(t){return null==t||(wi(t)&&(vr(t)||cs(t)||es(t)||y(t)&&ns(t.splice))?!t.length:!Mr(t).length)},i.isEqual=is,i.isError=ss,i.isFinite=function(t){return"number"==typeof t&&ln(t)},i.isFunction=ns,i.isMatch=function(t,e,i,s){return i="function"==typeof i?ze(i,s,3):k,ve(t,mi(e),i)},i.isNaN=function(t){return as(t)&&t!=+t},i.isNative=os,i.isNull=function(t){return null===t},i.isNumber=as,i.isObject=rs,i.isPlainObject=hs,i.isRegExp=ls,i.isString=cs,i.isTypedArray=us,i.isUndefined=function(t){return t===k},i.kebabCase=Or,i.last=ji,i.lastIndexOf=function(t,e,i){var s=t?t.length:0;if(!s)return-1;var n=s;if("number"==typeof i)n=(0>i?un(s+i,0):dn(i||0,s-1))+1;else if(i)return t=t[n=Ie(t,e,!0)-1],(e==e?e===t:t!=t)?n:-1;if(e!=e)return v(t,n,!0);for(;n--;)if(t[n]===e)return n;return-1},i.lt=ds,i.lte=function(t,e){return e>=t},i.max=Ur,i.min=qr,i.noConflict=function(){return Kt._=Gs,this},i.noop=Ps,i.now=sr,i.pad=function(t,e,i){e=+e;var s=(t=l(t)).length;return e>s&&ln(e)?(e=an(s=(e-s)/2),(i=oi("",s=rn(s),i)).slice(0,e)+t+i):t},i.padLeft=zr,i.padRight=jr,i.parseInt=function(t,e,i){return(i?_i(t,e,i):null==e)?e=0:e&&(e=+e),t=_s(t),fn(t,e||(Dt.test(t)?16:10))},i.random=function(t,e,i){i&&_i(t,e,i)&&(e=i=k);var s=null==t,n=null==e;return null==i&&(n&&"boolean"==typeof t?(i=t,t=1):"boolean"==typeof e&&(i=e,n=!0)),s&&n&&(e=1,n=!1),t=+t||0,n?(e=t,t=0):e=+e||0,i||t%1||e%1?(i=gn(),dn(t+i*(e-t+Zs("1e-"+((i+"").length-1))),e)):Te(t,e)},i.reduce=tr,i.reduceRight=er,i.repeat=xs,i.result=function(t,e,i){var s=null==t?k:t[e];return s===k&&(null==t||bi(e,t)||(s=null==(t=1==(e=Ei(e)).length?t:ge(t,Ce(e,0,-1)))?k:t[ji(e)]),s=s===k?i:s),ns(s)?s.call(t):s},i.round=Gr,i.runInContext=t,i.size=function(t){var e=t?En(t):0;return ki(e)?e:Mr(t).length},i.snakeCase=Br,i.some=Ki,i.sortedIndex=Bn,i.sortedLastIndex=Fn,i.startCase=Fr,i.startsWith=function(t,e,i){return t=l(t),i=null==i?0:dn(0>i?0:+i||0,t.length),t.lastIndexOf(e,i)==i},i.sum=function(t,e,i){if(i&&_i(t,e,i)&&(e=k),1==(e=pi(e,i,3)).length){i=(t=vr(t)?t:Mi(t)).length;for(var s=0;i--;)s+=+e(t[i])||0;t=s}else t=function(t,e){var i=0;return kn(t,(function(t,s,n){i+=+e(t,s,n)||0})),i}(t,e);return t},i.template=function(t,e,s){var n=i.templateSettings;s&&_i(t,e,s)&&(e=s=k),t=l(t),e=Qt(te({},s||e),n,$t),s=Qt(te({},e.imports),n.imports,$t);var r,o,a=Mr(s),h=Ee(s,a),c=0;s=e.interpolate||It;var u="__p+='";s=js((e.escape||It).source+"|"+s.source+"|"+(s===wt?Pt:It).source+"|"+(e.evaluate||It).source+"|$","g");var d="sourceURL"in e?"//# sourceURL="+e.sourceURL+"\n":"";if(t.replace(s,(function(e,i,s,n,a,h){return s||(s=n),u+=t.slice(c,h).replace(Ot,m),i&&(r=!0,u+="'+__e("+i+")+'"),a&&(o=!0,u+="';"+a+";\n__p+='"),s&&(u+="'+((__t=("+s+"))==null?'':__t)+'"),c=h+e.length,e})),u+="';",(e=e.variable)||(u="with(obj){"+u+"}"),u=(o?u.replace(ct,""):u).replace(ut,"$1").replace(dt,"$1;"),u="function("+(e||"obj")+"){"+(e?"":"obj||(obj={});")+"var __t,__p=''"+(r?",__e=_.escape":"")+(o?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+u+"return __p}",(e=Rr((function(){return Ls(a,d+"return "+u).apply(k,h)}))).source=u,ss(e))throw e;return e},i.trim=_s,i.trimLeft=function(t,e,i){var s=t;return(t=l(t))?t.slice((i?_i(s,e,i):null==e)?_(t):c(t,e+"")):t},i.trimRight=function(t,e,i){var s=t;return(t=l(t))?(i?_i(s,e,i):null==e)?t.slice(0,b(t)+1):t.slice(0,u(t,e+"")+1):t},i.trunc=function(t,e,i){i&&_i(t,e,i)&&(e=k);var s=z;if(i=j,null!=e)if(rs(e)){var n="separator"in e?e.separator:n;s="length"in e?+e.length||0:s;i="omission"in e?l(e.omission):i}else s=+e||0;if(s>=(t=l(t)).length)return t;if(1>(s-=i.length))return i;if(e=t.slice(0,s),null==n)return e+i;if(ls(n)){if(t.slice(s).search(n)){var r,o=t.slice(0,s);for(n.global||(n=js(n.source,(Mt.exec(n)||"")+"g")),n.lastIndex=0;t=n.exec(o);)r=t.index;e=e.slice(0,null==r?s:r)}}else t.indexOf(n,s)!=s&&((n=e.lastIndexOf(n))>-1&&(e=e.slice(0,n)));return e+i},i.unescape=function(t){return(t=l(t))&&gt.test(t)?t.replace(pt,T):t},i.uniqueId=function(t){var e=++Us;return l(t)+e},i.words=bs,i.all=Ui,i.any=Ki,i.contains=Gi,i.eq=is,i.detect=Gn,i.foldl=tr,i.foldr=er,i.head=Oi,i.include=Gi,i.inject=tr,Ss(i,function(){var t={};return de(i,(function(e,s){i.prototype[s]||(t[s]=e)})),t}(),!1),i.sample=Xi,i.prototype.sample=function(t){return this.__chain__||null!=t?this.thru((function(e){return Xi(e,t)})):Xi(this.value())},i.VERSION=C,Nt("bind bindKey curry curryRight partial partialRight".split(" "),(function(t){i[t].placeholder=i})),Nt(["drop","take"],(function(t,e){w.prototype[t]=function(i){var s=this.__filtered__;if(s&&!e)return new w(this);i=null==i?1:un(an(i)||0,0);var n=this.clone();return s?n.__takeCount__=dn(n.__takeCount__,i):n.__views__.push({size:i,type:t+(0>n.__dir__?"Right":"")}),n},w.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),Nt(["filter","map","takeWhile"],(function(t,e){var i=e+1,s=i!=V;w.prototype[t]=function(t,e){var n=this.clone();return n.__iteratees__.push({iteratee:pi(t,e,1),type:i}),n.__filtered__=n.__filtered__||s,n}})),Nt(["first","last"],(function(t,e){var i="take"+(e?"Right":"");w.prototype[t]=function(){return this[i](1).value()[0]}})),Nt(["initial","rest"],(function(t,e){var i="drop"+(e?"":"Right");w.prototype[t]=function(){return this.__filtered__?new w(this):this[i](1)}})),Nt(["pluck","where"],(function(t,e){var i=e?"filter":"map",s=e?we:Ms;w.prototype[t]=function(t){return this[i](s(t))}})),w.prototype.compact=function(){return this.filter(ks)},w.prototype.reject=function(t,e){return t=pi(t,e,1),this.filter((function(e){return!t(e)}))},w.prototype.slice=function(t,e){t=null==t?0:+t||0;var i=this;return i.__filtered__&&(t>0||0>e)?new w(i):(0>t?i=i.takeRight(-t):t&&(i=i.drop(t)),e!==k&&(i=0>(e=+e||0)?i.dropRight(-e):i.take(e-t)),i)},w.prototype.takeRightWhile=function(t,e){return this.reverse().takeWhile(t,e).reverse()},w.prototype.toArray=function(){return this.take(vn)},de(w.prototype,(function(t,e){var s=/^(?:filter|map|reject)|While$/.test(e),r=/^(?:first|last)$/.test(e),o=i[r?"take"+("last"==e?"Right":""):e];o&&(i.prototype[e]=function(){function e(t){return r&&a?o(t,1)[0]:o.apply(k,Yt([t],i))}var i=r?[1]:arguments,a=this.__chain__,h=this.__wrapped__,l=!!this.__actions__.length,c=h instanceof w,u=i[0],d=c||vr(h);return d&&s&&"function"==typeof u&&1!=u.length&&(c=d=!1),u={func:Ni,args:[e],thisArg:k},l=c&&!l,r&&!a?l?((h=h.clone()).__actions__.push(u),t.call(h)):o.call(k,this.value())[0]:!r&&d?(h=l?h:new w(this),(h=t.apply(h,i)).__actions__.push(u),new n(h,a)):this.thru(e)})})),Nt("join pop push replace shift sort splice split unshift".split(" "),(function(t){var e=(/^(?:replace|split)$/.test(t)?Vs:Rs)[t],s=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",n=/^(?:join|pop|replace|shift)$/.test(t);i.prototype[t]=function(){var t=arguments;return n&&!this.__chain__?e.apply(this.value(),t):this[s]((function(i){return e.apply(i,t)}))}})),de(w.prototype,(function(t,e){var s=i[e];if(s){var n=s.name+"";(bn[n]||(bn[n]=[])).push({name:e,func:s})}})),bn[ri(k,P).name]=[{name:"wrapper",func:k}],w.prototype.clone=function(){var t=new w(this.__wrapped__);return t.__actions__=Ht(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=Ht(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=Ht(this.__views__),t},w.prototype.reverse=function(){if(this.__filtered__){var t=new w(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},w.prototype.value=function(){var t,e=this.__wrapped__.value(),i=this.__dir__,s=vr(e),n=0>i,r=s?e.length:0;t=r;for(var o=this.__views__,a=0,h=-1,l=o.length;++h<l;){var c=o[h],u=c.size;switch(c.type){case"drop":a+=u;break;case"dropRight":t-=u;break;case"take":t=dn(t,a+u);break;case"takeRight":a=un(a,t-u)}}if(o=(t={start:a,end:t}).start,t=(a=t.end)-o,n=n?a:o-1,a=(o=this.__iteratees__).length,h=0,l=dn(t,this.__takeCount__),!s||R>r||r==t&&l==t)return Le(e,this.__actions__);s=[];t:for(;t--&&l>h;){for(r=-1,c=e[n+=i];++r<a;){u=(d=o[r]).type;var d=d.iteratee(c);if(u==V)c=d;else if(!d){if(u==W)continue t;break t}}s[h++]=c}return s},i.prototype.chain=function(){return Hi(this)},i.prototype.commit=function(){return new n(this.value(),this.__chain__)},i.prototype.concat=Nn,i.prototype.plant=function(t){for(var e,i=this;i instanceof s;){var n=Ai(i);e?r.__wrapped__=n:e=n;var r=n;i=i.__wrapped__}return r.__wrapped__=t,e},i.prototype.reverse=function(){function t(t){return t.reverse()}var e=this.__wrapped__;return e instanceof w?(this.__actions__.length&&(e=new w(this)),(e=e.reverse()).__actions__.push({func:Ni,args:[t],thisArg:k}),new n(e,this.__chain__)):this.thru(t)},i.prototype.toString=function(){return this.value()+""},i.prototype.run=i.prototype.toJSON=i.prototype.valueOf=i.prototype.value=function(){return Le(this.__wrapped__,this.__actions__)},i.prototype.collect=i.prototype.map,i.prototype.head=i.prototype.first,i.prototype.select=i.prototype.filter,i.prototype.tail=i.prototype.rest,i}();Kt._=Zt,void 0===(n=function(){return Zt}.call(e,i,e,s))||(s.exports=n)}).call(this)}).call(this,void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})}).call(this,i(29),i(30)(t))},function(t,e,i){"use strict";i.r(e);var s=i(2);class n{constructor(){}initialize(t){this.scene=t,this.game=t.game,this.assets=t.assets,this.settings=t.settings,this.stage=t.game.stage,this.mouse=t.mouse,this.playerManager=t.playerManager,this.createSprite(),this.addControls(),this.resize()}isVisible(){return this.controlsContainer.visible}addControls(){}createSprite(){let t=this.scene.assets.getResult(this.name),e=this.controlsSpriteSheetData;e.images=[t];let i=new createjs.SpriteSheet(e),s=new createjs.Sprite(i);this.controlsSprite=s}hide(){this.controlsContainer.visible=!1}show(){this.controlsContainer.visible=!0}setVisibility(t){this.controlsContainer.visible=t}createControl(t){const e=this.controlsSprite.clone(),i=Object(s.extend)({},this.defaultControlOptions,this.controlData[t]);e.gotoAndStop(t),e.buttonDetails=i,e.cursor="pointer",e.on("mousedown",this.controlDown.bind(this)),e.on("pressup",this.controlUp.bind(this)),e.on("mouseover",this.mouseOver.bind(this)),e.on("mouseout",this.mouseOut.bind(this));const n=e.getBounds();if(e.regX=n.width/2,e.regY=n.height/2,e.alpha=.5,e.name=t,e.visible=i.visible,i.hitArea){const t=i.hitArea,s=new createjs.Shape;t.radius?s.graphics.beginFill("#000").drawCircle(t.x,t.y,t.radius):(s.graphics.beginFill("#000").drawRect(t.x,t.y,t.width,t.height),e.hitArea=s)}return e}mouseOver(t){t.target.alpha=.8,this.mouse.enabled=!1}mouseOut(t){t.target.alpha=.5,this.mouse.enabled=!0}controlDown(t){let e=t.target.buttonDetails,i=this.playerManager.firstPlayer.getGamepad();if(e.key&&i.setButtonDown(e.key),e.keys)for(let t=0;t<e.keys.length;t++)i.setButtonDown(e.keys[t]);e.downCallback&&e.downCallback(t),this.settings.mobile&&(this.mouse.enabled=!1),t.target.alpha=1}controlUp(t){let e=t.target.buttonDetails,i=this.playerManager.firstPlayer.getGamepad();if(e.key&&i.setButtonUp(e.key),e.keys)for(let t=0;t<e.keys.length;t++)i.setButtonUp(e.keys[t]);e.upCallback&&e.upCallback(t),this.settings.mobile?(this.mouse.enabled=!0,t.target.alpha=.5):t.target.alpha=.8}close(){}update(){}resize(){let t=this.scene.game,e=(this.scene.screen,t.width),i=t.height,s=t.pixelRatio,n=this.controlsContainer.children;for(let t in n){let r=n[t],o=r.buttonDetails;o.bottom&&(r.y=i-o.bottom*(s/2)),o.left&&(r.x=o.left*(s/2)),o.right&&(r.x=e-o.right*(s/2)),o.top&&(r.y=o.top*(s/2)),r.scaleX=r.scaleY=s/2}}}n.prototype.defaultControlOptions={visible:!0},n.prototype.name=null,n.prototype.controlData=null,n.prototype.game=null,n.prototype.scene=null,n.prototype.settings=null,n.prototype.stage=null,n.prototype.controlsContainer=null,n.prototype.controlsSprite=null,n.prototype.gamepad=null,n.prototype.controlsSpriteSheetData=null,e.default=n},function(t,e,i){"use strict";i.r(e);var s=i(0);const n=Math.sqrt,r=Math.pow;Math.floor;e.default=class{constructor(t,e,i,n){this.p1=new s.default(t,e),this.p2=new s.default(i,n),this.pp=this.p2.sub(this.p1),this.len=this.pp.len(),this.sectors=[],this.collided=!1,this.remove=0,this.highlight=!1,this.recorded=!1}getCode(t){this.recorded=!0;let e=" "+this.p2.x.toString(32)+" "+this.p2.y.toString(32),i=this.checkForConnectedLine(t,this.p2);return i&&(e+=i.getCode(t)),e}checkForConnectedLine(t,e){let i=t.physicsLines.indexOf(this);if(i+1===t.physicsLines.length)return!1;let s=t.physicsLines[i+1];return s.p1.x===e.x&&s.p1.y===e.y&&0===s.remove&&s}addSectorReference(t){this.sectors.push(t)}erase(t,e){var i=!1;if(this.sectors[0].scene.game.mod.getVar("accurateEraser")&&e++,0===this.remove){var s=this.p1,r=this.pp,o=s.sub(t),a=r.dot(r),h=2*o.dot(r),l=h*h-4*a*(o.dot(o)-e*e);if(l>0){var c=(-h-(l=n(l)))/(2*a),u=(-h+l)/(2*a);(c>=0&&1>=c||u>=0&&1>=u)&&(i=!0)}(this.intersects(this.p1.x,this.p1.y,t.x,t.y,e)||this.intersects(this.p2.x,this.p2.y,t.x,t.y,e))&&(i=!0),i&&(this.remove=1,this.redrawSectors())}return i}redrawSectors(){for(let t of this.sectors)t.drawn=!1}markSectorsDirty(){for(let t of this.sectors)t.dirty=!1}intersects(t,e,i,s,n){let r=t-i,o=e-s;return n*n>=r*r+o*o}collide(t){if(!this.collided){this.collided=!0;let e=t.pos,i=t.vel,s=t.radius,o=this.p1,a=this.p2,h=e.x-o.x,l=e.y-o.y,c=this.pp,u=this.len,d=(h*c.x+l*c.y)/u/u;if(d>=0&&d<=1){let o=(h*c.y-l*c.x)*((h-i.x)*c.y-(l-i.y)*c.x)<0?-1:1,a=h-c.x*d,u=l-c.y*d,p=n(r(a,2)+r(u,2));if(0===p&&(p=1),s>p||-1===o){let i=(s*o-p)/p;return e.x+=a*i,e.y+=u*i,void t.drive(-u/p,a/p)}}if(!(-s>d*u||d*u>u+s)){let i=d>0?a:o,h=e.x-i.x,l=e.y-i.y,c=n(r(h,2)+r(l,2));if(0===c&&(c=1),s>c){let i=(s-c)/c;return e.x+=h*i,e.y+=l*i,void t.drive(-l/c,h/c)}}}}}},function(t,e,i){"use strict";i.r(e);var s=i(0);const n=Math.sqrt,r=Math.floor;class o{constructor(t,e,i,n){this.p1=new s.default(t,e),this.p2=new s.default(i,n),this.pp=this.p2.sub(this.p1),this.len=this.pp.len(),this.sectors=[]}getCode(t){this.recorded=!0;let e=" "+this.p2.x.toString(32)+" "+this.p2.y.toString(32),i=this.checkForConnectedLine(t,this.p2);return i&&(e+=i.getCode(t)),e}checkForConnectedLine(t,e){let i=t.settings.drawSectorSize,s=t.sectors.drawSectors,n=r(e.x/i),o=r(e.y/i);return s[n][o].searchForLine("sceneryLines",e)}erase(t,e){var i=!1;if(this.sectors[0].scene.game.mod.getVar("accurateEraser")&&e++,0===this.remove){var s=this.p1,r=this.pp,o=s.sub(t),a=r.dot(r),h=2*o.dot(r),l=h*h-4*a*(o.dot(o)-e*e);if(l>0){var c=(-h-(l=n(l)))/(2*a),u=(-h+l)/(2*a);(c>=0&&1>=c||u>=0&&1>=u)&&(i=!0)}(this.intersects(this.p1.x,this.p1.y,t.x,t.y,e)||this.intersects(this.p2.x,this.p2.y,t.x,t.y,e))&&(i=!0),i&&(this.remove=1,this.redrawSectors())}return i}redrawSectors(){for(let t of this.sectors)t.drawn=!1}markSectorsDirty(){for(let t of this.sectors)t.dirty=!1}intersects(t,e,i,s,n){let r=t-i,o=e-s;return n*n>=r*r+o*o}addSectorReference(t){this.sectors.push(t)}}o.prototype.sectors=null,o.prototype.p1=null,o.prototype.p2=null,o.prototype.pp=null,o.prototype.len=0,o.prototype.collided=!1,o.prototype.remove=0,o.prototype.recorded=!1,e.default=o},function(t,e,i){"use strict";i.r(e),e.default=function(t){t=parseInt(t,10);let e=Math.floor(t/6e4),i=(t-6e4*e)/1e3;return i=i.toFixed(2),i<10&&(i="0"+i),e+":"+i}},function(t,e,i){function s(t){this.scene=t,this.settings=t.settings,this.player=!1,this.build_interface(),this.createPulseTween()}var n=i(34),r=s.prototype;r.scene=null,r.container=null,r.cached=!1,r.build_interface=function(){var t=this.scene.game.pixelRatio,e=new createjs.Container,i=new createjs.Shape;i.graphics.setStrokeStyle(5,"round").beginStroke("rgba(242,144,66,1)").beginFill("rgba(242,144,66,0.5)").drawRoundRect(0,0,200,60,25);var s=new createjs.Text("00:00","35px helsinki","#000000");s.textAlign="center",s.textBaseline="middle",s.x=100,s.y=30,e.addChild(i),e.addChild(s),e.visible=!1,e.scaleX=e.scaleY=t/2,this.timeText=s,this.container=e,this.scene.game.stage.addChild(e),this.center_container()},r.setPlayer=function(t){this.player=t},r.removePlayer=function(){this.player=!1},r.playerAddedTime=function(t){this.player===t&&this.createPulseTween()},r.createPulseTween=function(){var t=this.container,e=this.scene.game.pixelRatio/2,i={scale:e},s={scale:1.2*e};this.pulse=new n.Tween(i).to(s,200).repeat(1).yoyo(!0).easing(n.Easing.Cubic.InOut).onUpdate((function(){t.scaleX=t.scaleY=this.scale})).start()},r.center_container=function(){var t=this.scene.screen,e=this.container;e.x=t.width/2-100*e.scaleX,e.y=t.height-100*e.scaleY},r.update=function(){n.update(),this.player&&this.player._tempVehicleTicks>0?(this.center_container(),this.updateTime()):this.container.visible=!1},r.updateTime=function(){var t=(this.container,this.timeText),e=(this.player,this.player._tempVehicleTicks)/this.scene.settings.drawFPS,i="";10>(e=e.toFixed(2))&&(i="0"),i+=e,t.text=i,this.container.visible=!0},r.close=function(){this.container=null,this.player=null,this.scene=null,this.settings=null,this.timeText=null},t.exports=s},function(t,e,i){var s=(i(0).default,Math.round,function(t){this.scene=t,this.screen=t.screen,this.context=t.game.canvas.getContext("2d"),this.clockwise=!1,this.settings={radius:10,color:"#1884cf"}});s.prototype={scene:null,clockwise:!1,context:null,screen:null,pixelRatio:1,draw:function(){var t=this.context,e=this.screen,i=this.settings,s=this.scene.game.pixelRatio,n=i.radius,r=this.clockwise,o=this.scene.game.tickCount%25/25*2*Math.PI;0===o&&(this.clockwise&&(o=2*Math.PI),this.clockwise=!this.clockwise);var a=r?0:o,h=r?o:0,l=e.width-25*s,c=e.height-25*s;t.beginPath(),t.arc(l,c,n*s,a,h,!1),t.lineWidth=3*s,t.strokeStyle=i.color,t.stroke()}},t.exports=s},function(t,e,i){function s(t){this.scene=t,this.stage=t.game.stage,this.build_interface()}var n=i(6).default,r=s.prototype;r.container=null,r.cached=!1,r.scene=null,r.state=null,r.offset={y:0,x:0},r.build_interface=function(){var t=this.scene,e=t.game.pixelRatio,i=t.settings,s=new createjs.Container,n="helsinki",r=new createjs.Text("00:00.00","40px "+n,"#000000"),o=new createjs.Text("TIME:","20px "+n,"#999999"),a=this.get_timer_sprite(),h=new createjs.Text(" -- : --.--","35px "+n,"#999999"),l=new createjs.Text("BEST:","20px "+n,"#999999"),c=new createjs.Text("0/0","40px "+n,"#000000"),u=new createjs.Bitmap(t.assets.getResult("targets_icon")),d=e/2.5;i.mobile&&(d=e/2.5),r.y=18,r.x=57,o.y=3,o.x=59,a.y=0,a.x=0,h.x=237,h.y=21,l.x=240,l.y=3,c.y=15,c.x=460,u.y=0,u.x=400,s.addChild(r),s.addChild(o),s.addChild(a),s.addChild(h),s.addChild(l),s.addChild(c),s.addChild(u),s.scaleX=s.scaleY=d,s.y=(10+this.offset.y)*d,s.x=10*d,this.best_time_title=l,this.time_title=o,this.container=s,this.time=r,this.goals=c,this.best_time=h,this.stage.addChild(s)},r.update=function(){var t=this.scene,e=t.ticks,i=t.settings,s=t.track,r=t.playerManager.firstPlayer;!1===this.cached&&e>50&&(this.cached=!0,this.cache_fixed_text());var o=e/i.drawFPS;this.time.text=n(1e3*o);var a=s.targetCount,h=r.getTargetsHit();this.goals.text=h+"/"+a;var l=" -- : --.--";i.isCampaign&&i.campaignData.user.best_time?l=i.campaignData.user.best_time:i.userTrackStats&&i.userTrackStats.best_time&&(l=i.userTrackStats.best_time),this.best_time.text=l,i.mobile&&this.center_container()},r.center_container=function(){var t=this.container,e=t.getBounds(),i=this.scene.screen,s=this.scene.game.pixelRatio;t.x=i.width/2-e.width/2*t.scaleY,t.y=10*s},r.cache_fixed_text=function(){var t,e=this.best_time_title,i=this.time_title;t=e.getBounds(),e.cache(t.x,t.y,t.width,t.height+10),t=i.getBounds(),i.cache(t.x,t.y,t.width,t.height+10)},r.get_timer_sprite=function(){var t={images:[this.scene.assets.getResult("time_icon")],frames:{width:60,height:60}},e=new createjs.SpriteSheet(t);return new createjs.Sprite(e)},t.exports=s},function(t,e,i){function s(t){this.initialize(t)}var n=i(3).default,r=s.prototype=new n;r.name="tablet_controls",r.mainResize=r.resize,r.zoomControlsContainer=null,r.lastCheckpointButton=null,r.controlsSpriteSheetData={frames:[[154,306,150,150],[154,154,150,150],[382,154,75,75],[306,2,150,150],[154,2,150,150],[306,154,75,75],[2,306,150,150],[2,154,150,150],[2,2,150,150]],animations:{accelerate:[0],brake:[1],last_checkpoint:[2],direction:[3],left:[4],replay:[5],right:[6],zoom_in:[7],zoom_out:[8]}},r.controlData={brake:{key:"down",bottom:120,left:285,hitArea:{radius:150,x:75,y:90}},direction:{key:"z",bottom:285,right:450,hitArea:{radius:150,x:40,y:40}},forward:{key:"up",bottom:285,left:140,hitArea:{radius:150,x:75,y:75}},last_checkpoint:{key:"enter",top:60,left:160},left:{key:"left",bottom:120,right:285,hitArea:{radius:150,x:75,y:75}},right:{key:"right",bottom:285,right:140,hitArea:{radius:150,x:100,y:40}},replay:{key:"restart",top:60,left:80},zoom_in:{key:"zoom_increase",bottom:285,right:140},zoom_out:{key:"zoom_decrease",bottom:285,left:140}},r.resize=function(){var t=this.scene.game,e=(this.scene.screen,t.width),i=t.height,s=t.pixelRatio,n=this.zoomControlsContainer.children;for(var r in n){var o=n[r],a=o.buttonDetails;a.bottom&&(o.y=i-a.bottom*(s/2)),a.left&&(o.x=a.left*(s/2)),a.right&&(o.x=e-a.right*(s/2)),a.top&&(o.y=a.top*(s/2)),o.scaleX=o.scaleY=s/2}this.mainResize()},r.setZoomControlsVisibilty=function(t){this.zoomControlsContainer.visible=t},r.addControls=function(){var t=this.createControl("zoom_in"),e=this.createControl("zoom_out"),i=new createjs.Container;i.addChild(this.createControl("left")),i.addChild(this.createControl("right")),i.addChild(this.createControl("forward")),i.addChild(this.createControl("brake")),i.addChild(this.createControl("direction")),i.addChild(this.createControl("last_checkpoint")),i.addChild(this.createControl("replay"));var s=new createjs.Container;s.addChild(t),s.addChild(e),s.visible=!1,this.lastCheckpointButton=i.getChildByName("last_checkpoint"),this.controlsContainer=i,this.zoomControlsContainer=s,this.stage.addChild(i),this.stage.addChild(s)},r.update=function(){var t=this.scene;this.lastCheckpointButton.visible=!!t.playerManager.firstPlayer.hasCheckpoints()},t.exports=s},function(t,e,i){function s(t){this.initialize(t)}var n=i(3).default,r=s.prototype=new n;r.name="phone_controls",r.mainResize=r.resize,r.zoomControlsContainer=null,r.lastCheckpointButton=null,r.replayButton=null,r.controlsSpriteSheetData={frames:[[782,2,128,128],[652,2,128,128],[522,2,128,128],[912,78,75,75],[392,2,128,128],[912,2,75,75],[262,2,128,128],[132,2,128,128],[2,2,128,128]],animations:{accelerate:[0],brake:[1],direction:[2],last_checkpoint:[3],left:[4],replay:[5],right:[6],zoom_in:[7],zoom_out:[8]}},r.controlData={brake:{key:"down",bottom:100,left:100,hitArea:{width:250,height:200,x:-30,y:-15}},direction:{key:"z",bottom:250,right:100,hitArea:{width:200,height:200,x:-20,y:-65}},forward:{key:"up",bottom:250,left:100,hitArea:{width:250,height:200,x:-30,y:-65}},last_checkpoint:{key:"enter",top:60,left:160},left:{key:"left",bottom:100,right:250,hitArea:{width:230,height:230,x:-100,y:-65}},right:{key:"right",bottom:100,right:100,hitArea:{width:200,height:200,x:-10,y:-15}},replay:{key:"restart",top:60,left:80},zoom_in:{key:"zoom_increase",bottom:100,right:100},zoom_out:{key:"zoom_decrease",bottom:100,left:100}},r.addControls=function(){var t=this.createControl("last_checkpoint"),e=this.createControl("replay"),i=this.createControl("zoom_in"),s=this.createControl("zoom_out"),n=new createjs.Container;n.addChild(this.createControl("left")),n.addChild(this.createControl("right")),n.addChild(this.createControl("forward")),n.addChild(this.createControl("brake")),n.addChild(this.createControl("direction")),n.addChild(t),n.addChild(e),n.addChild(i),n.addChild(s);var r=new createjs.Container;r.addChild(i),r.addChild(s),r.visibility=!1,this.lastCheckpointButton=t,this.replayButton=e,this.controlsContainer=n,this.zoomControlsContainer=r,this.stage.addChild(n),this.stage.addChild(r)},r.resize=function(){var t=this.scene.game,e=(this.scene.screen,t.width),i=t.height,s=t.pixelRatio,n=this.zoomControlsContainer.children;for(var r in n){var o=n[r],a=o.buttonDetails;a.bottom&&(o.y=i-a.bottom*(s/2)),a.left&&(o.x=a.left*(s/2)),a.right&&(o.x=e-a.right*(s/2)),a.top&&(o.y=a.top*(s/2)),o.scaleX=o.scaleY=s/2}this.mainResize()},r.setZoomControlsVisibilty=function(t){this.zoomControlsContainer.visible=t},r.update=function(){var t=this.scene;this.lastCheckpointButton.visible=!!t.playerManager.firstPlayer.hasCheckpoints()},t.exports=s},function(t,e,i){"use strict";var s=(Math.min,function(t){this.scene=t,this.sounds={}});s.prototype={sounds:null,update:function(){var t=createjs.Sound,e=this.scene,i=e.settings;t.setMute(!(!e.state.paused&&!1!==i.soundsEnabled))},setVolume:function(t,e){this.sounds[t]&&(this.sounds[t].volume=e)},muted:!1,mute_all:function(){var t=this.sounds;for(var e in t)t.hasOwnProperty(e)&&(t[e].volume=0);this.muted=!0},stop_all:function(){var t=this.sounds;for(var e in t)t.hasOwnProperty(e)&&(t[e].volume=0,t[e].stop())},play:function(t,e){if(null==e&&(e=1),this.sounds[t])this.sounds[t].volume=e;else if(this.scene.settings.soundsEnabled){var i=createjs.Sound.play(t,{volume:e}),s=this;i.addEventListener("complete",(function(){s.sounds[t]=null})),this.sounds[t]=i}},stop:function(t){this.sounds[t]&&(this.sounds[t].stop(),this.sounds[t]=null)},close:function(){this.sounds=null}},t.exports=s},function(t,e){function i(t){this.scene=t,this.message=!1,this.timeout=!1,this.color="#000"}var s=i.prototype;s.message=null,s.timeout=null,s.draw=function(){var t=this.message,e=this.timeout,i=this.color,s=this.outline;if(!1!==e&&0>=e&&(t=!1),this.scene.state.paused&&(i=!1,s=!1,t=this.scene.settings.mobile?"Paused":"Paused - Press Spacebar to Continue"),!1===i&&(i="#333333"),t){var n=this.scene.game,r=this.scene,o=n.pixelRatio,a=n.canvas.getContext("2d"),h=r.screen.center.x,l=100;"phone"===r.settings.controls&&(l=80),a.save(),a.fillStyle=i,a.lineWidth=o/2*4,a.font=12*o+"pt helsinki",a.textAlign="center",s&&(a.strokeStyle=s,a.strokeText(t,h,l*o),a.strokeStyle="#000"),a.fillText(t,h,l*o),a.restore()}},s.show=function(t,e,i,s){this.message=t,this.timeout=e,this.color=i,this.outline=s},s.hide=function(){this.message=!1,this.color=!1,this.outline=!1},s.update=function(){!1!==this.timeout&&this.timeout--},t.exports=i},function(t,e){t.exports='<div class="mod-checkbox-container mod-menu-option mod-clickable"> <input type=checkbox class=mod-clickable /> <label class=mod-clickable></label> </div>'},function(t,e){var i=Math.abs,s=Math.atan2,n=Math.PI;t.exports=function(t,e,r){function o(t,e,r,a,h,l,c){if(!(c>g)){var u=(t+r)/2,d=(e+a)/2,w=(r+h)/2,x=(a+l)/2,_=(u+w)/2,b=(d+x)/2,T=h-t,k=l-e,C=i((r-h)*k-(a-l)*T);if(C>m){if(f*(T*T+k*k)>=C*C){if(y>v)return void p.push(_,b);var S=i(s(l-a,h-r)-s(a-e,r-t));if(S>=n&&(S=2*n-S),v>S)return void p.push(_,b)}}else if(f>=(T=_-(t+h)/2)*T+(k=b-(e+l)/2)*k)return void p.push(_,b);o(t,e,u,d,_,b,c+1),o(_,b,w,x,h,l,c+1)}}var a=t.x,h=t.y,l=e.x,c=e.y,u=r.x,d=r.y,p=[],f=.25,g=10,m=1e-30,v=0,y=.01;return function(t,e,i,s,n,r){p.push(t,e),o(t,e,i,s,n,r,0),p.push(n,r)}(a,h,l,c,u,d),p}},function(t,e,i){var s=i(0).default,n=i(1).default,r=i(35),o=i(4).default,a=i(5).default,h=Math.min,l=Math.max,c=Math.abs,u=function(t){this.toolInit(t),this.p1=new s(0,0),this.p2=new s(0,0),this.selectedElements=[],this.dashOffset=0},d=u.prototype=new n;d.toolInit=d.init,d.name="Select",d.passive=!1,d.active=!1,d.p1=null,d.p2=null,d.selectedElements=[],d.dashOffset=0,d.selectedSectors=[],d.press=function(){var t=this.mouse.touch.real;this.passive=!1,this.active=!0,this.p1.x=t.x,this.p1.y=t.y,this.p2.x=t.x,this.p2.y=t.y},d.hold=function(){var t=this.mouse.touch.real;this.p2.x=t.x,this.p2.y=t.y},d.unselectElements=function(){for(var t=this.selectedElements,e=t.length,i=0;e>i;i++){var s=t[i];s instanceof o&&s.highlightLine(!1),s instanceof a&&s.highlightLine(!1)}},d.release=function(){this.unselectElements();for(var t=(performance.now(),this.scene.track.select(this.p1,this.p2)),e=t.length,i=[],s=0;e>s;s++){var n=t[s];this.intersectsLine(n.p1,n.p2)&&(n.removeAllReferences(),i.push(n))}this.selectedElements=i,this.active=!1,this.passive=!0},d.buildPaths=function(t){for(var e=[];t.length>0;){var i=new r;i.build(t),e.push(i)}},d.intersectsLine=function(t,e){var i=h(this.p1.y,this.p2.y),s=h(this.p1.x,this.p2.x),n=l(this.p1.y,this.p2.y),r=l(this.p1.x,this.p2.x),o=c(r-s),a=c(i-n),u=t.x,d=e.x;if(t.x>e.x&&(u=e.x,d=t.x),d>s+o&&(d=s+o),s>u&&(u=s),u>d)return!1;var p=t.y,f=e.y,g=e.x-t.x;if(c(g)>1e-7){var m=(e.y-t.y)/g,v=t.y-m*t.x;p=m*u+v,f=m*d+v}if(p>f){var y=f;f=p,p=y}return f>i+a&&(f=i+a),i>p&&(p=i),!(p>f)},d.toScreen=function(t,e){var i=this.scene.camera,s=this.scene.screen;return(t-i.position[e])*i.zoom+s.center[e]},d.draw=function(){var t=this.scene,e=(t.game.canvas,t.game.canvas.getContext("2d"));if(this.drawText(e),this.active||this.passive){var i=this.p1.toScreen(this.scene),s=this.p2.toScreen(this.scene),n=s.x-i.x,r=s.y-i.y;e.save(),e.setLineDash&&(e.setLineDash([6]),e.lineDashOffset=this.dashOffset),this.active?(e.beginPath(),e.rect(i.x,i.y,n,r),e.fillStyle="rgba(24, 132, 207, 0.3)",e.fill(),e.lineWidth=2,e.strokeStyle="rgba(24, 132, 207, 0.7)",e.stroke()):this.passive&&(e.strokeStyle="rgba(24, 132, 207, 0.7)",e.lineWidth=2,e.strokeRect(i.x,i.y,n,r)),e.restore(),this.dashOffset>22&&(this.dashOffset=0),this.dashOffset++}},d.reset=function(){this.p1.x=0,this.p1.y=0,this.p2.x=0,this.p2.y=0,this.active=!1,this.passive=!1,this.unselectElements()},d.drawSectors=function(){for(var t=this.scene,e=t.camera,i=t.screen,s=t.game.canvas.getContext("2d"),n=e.zoom,r=e.position,o=t.screen.center,a=this.settings.drawSectorSize*n,h=r.x*n/a,l=r.y*n/a,c=i.width/a,u=i.height/a/2,d=c/2,p=h-d-1,f=l-u-1,g=h+d,m=l+u,v=this.totalSectors,y=v.length,w=0;y>w;w++){var x=v[w],_=x.row,b=x.column;if(b>=p&&g>=b&&_>=f&&m>=_){!1===x.drawn&&!1===x.image&&x.draw();var T=b*a-h*a+o.x,k=_*a-l*a+o.y;T|=0,k|=0,x.image?s.drawImage(x.image,T,k):s.drawImage(x.canvas,T,k)}else x.drawn&&x.clear()}},d.drawText=function(t){var e=this.name,i=this.game.pixelRatio;this.scene.game.canvas,this.radius,t.save(),t.fillStyle="#000000",t.font=12*i+"pt arial",t.fillText(e,10*i,20*i),t.font=8*i+"pt arial"},d.close=function(){this.dashOffset=0,this.selectedElements=[],this.mouse=null,this.camera=null,this.scene=null,this.toolHandler=null,this.p2=null,this.p1=null,this.active=!1,this.passive=!1},t.exports=u},function(t,e,i){var s=(i(0).default,Math.round),n=Math.floor,r=Math.ceil,o=Math.pow;t.exports=function(t,e,i,a,h){var l=[],c=t,u=e,d=(a-e)/(i-t),p=i>t?1:-1,f=a>e?1:-1,g=0;l.push(t,e);do{var m=n(c/h)==n(i/h),v=n(u/h)==n(a/h);if(m&&v)break;var y,w=0;w=s(n(c/h+p)*h),0>p&&(w=s(r((c+1)/h+p)*h)-1),y=s(e+(w-t)*d);var x,_=0;_=s(n(u/h+f)*h),0>f&&(_=s(r((u+1)/h+f)*h)-1),x=s(t+(_-e)/d),o(w-t,2)+o(y-e,2)<o(x-t,2)+o(_-e,2)?(c=w,u=y,l.push(w,y)):(c=x,u=_,l.push(x,_))}while(g++<5e3);return l}},function(t,e){function i(t){this.scene=t,this.settings=t.settings,this.build_interface()}var s=i.prototype;s.scene=null,s.container=null,s.cached=!1,s.build_interface=function(){this.sprite_sheet=this.create_sprite_sheet();var t=this.scene.game.pixelRatio,e=new createjs.Container,i="helsinki",s=this.settings.campaignData.goals,n=s.third,r=new createjs.Container,o=this.get_sprite("bronze_medal"),a=(n=new createjs.Text(n,"30px "+i,"#000000"),s.second),h=new createjs.Container,l=this.get_sprite("silver_medal"),c=(a=new createjs.Text(a,"30px "+i,"#000000"),s.first),u=new createjs.Container,d=this.get_sprite("gold_medal"),p=(c=new createjs.Text(c,"30px "+i,"#000000"),t/2.5);"phone"===this.settings.controls&&(p=t/2.5),o.y=7,o.x=16,n.x=69,n.y=14,l.y=7,l.x=175,a.x=229,a.y=14,d.y=7,d.x=350,c.y=14,c.x=400,r.addChild(o),r.addChild(n),h.addChild(l),h.addChild(a),u.addChild(d),u.addChild(c),r.alpha=.4,h.alpha=.4,u.alpha=.4,e.addChild(r),e.addChild(h),e.addChild(u),e.scaleX=e.scaleY=p,e.y=80*p,e.x=0,this.bronze_container=r,this.silver_container=h,this.gold_container=u,this.container=e,this.scene.game.stage.addChild(e),this.update_state()},s.update_state=function(){switch(this.settings.campaignData.user.has_goal){case 1:case"first":this.gold_container.alpha=1;case"second":case 2:this.silver_container.alpha=1;case"third":case 3:this.bronze_container.alpha=1}},s.center_container=function(){var t=this.scene.screen,e=this.container,i=e.getBounds(),s=this.scene.game.pixelRatio;e.x=t.width/2-i.width/2*e.scaleY,e.y=40*s},s.update=function(){this.settings.mobile&&this.center_container(),this.update_state()},s.create_sprite_sheet=function(){var t={images:[this.scene.assets.getResult("campaign_icons")],frames:[[548,68,44,44],[2,68,452,56],[502,68,44,44],[2,2,588,64],[456,68,44,44]],animations:{bronze_medal:[0],center_panel:[1],silver_medal:[2],left_panel:[3],gold_medal:[4]}};return new createjs.SpriteSheet(t)},s.get_sprite=function(t){var e=this.sprite_sheet,i=new createjs.Sprite(e,t);return i.stop(),i},t.exports=i},function(t,e,i){function s(t){this.scene=t,this.maxRaces=this.scene.settings.mobile?3:10,this.createContainer()}var n=i(6).default,r=s.prototype;r.container=null,r.raceList=[],r.raceCount=0,r.highlightedRace=null,r.raceOpacity=.3,r.raceYOffset=50,r.mobileRaceXOffset=180,r.maxRaces=10,r.createContainer=function(){var t=this.scene.game,e=t.settings,i=t.pixelRatio/2.5,s=new createjs.Container;s.scaleX=s.scaleY=i,s.y=80*i,s.x=15*i,e.isCampaign&&(s.y+=55*i),this.container=s,t.stage.addChild(s)},r.clear=function(){this.container.removeAllChildren(),this.raceList=[],this.raceCount=0},r.centerContainer=function(){var t=this.scene,e=t.screen,i=this.container,s=i.getBounds(),n=this.scene.game.pixelRatio;i.x=e.width/2-s.width/2*i.scaleY;t.settings.isCampaign&&(i.visible=!1),i.y=40*n},r.addRace=function(t,e){if(this.raceCount<this.maxRaces){var i=this.scene,s=(i.game.pixelRatio,t.user),r=t.race,o=i.settings,a=o.drawFPS,h=s.color,l="helsinki",c=new createjs.Container,u=(i.camera,new createjs.Shape),d=u.graphics;d.setStrokeStyle(4,"round"),d.beginFill(h).drawCircle(0,0,20),u.x=25,u.y=25;var p=n(parseInt(r.run_ticks)/a*1e3),f=new createjs.Text(p,"30px "+l,"#000000");f.x=55,f.y=9;var g=new createjs.Text(s.d_name.charAt(0),"25px "+l,"#000000");g.x=17,g.y=33,g.textBaseline="alphabetic";var m=new createjs.Container;m.addChild(u),m.addChild(g),m.cache(0,0,50,50),m.removeAllChildren(),c.addChild(m,f),c.alpha=this.raceOpacity,o.mobile?c.x=e*this.mobileRaceXOffset:(c.x=-2,c.y=e*this.raceYOffset),this.raceList.push(c),this.container.addChild(c),this.raceCount++}},r.update=function(){if(this.raceCount>0){var t=this.scene.camera;t.focusIndex>0&&t.focusIndex<this.maxRaces?this.highlightRace(t.focusIndex-1):this.unhighlightRace(),this.scene.settings.mobile&&this.centerContainer()}},r.highlightRace=function(t){if(this.highlightedRace!==this.raceList[t]){this.unhighlightRace();var e=this.raceList[t];e.alpha=1,this.highlightedRace=e}},r.unhighlightRace=function(){this.highlightedRace&&(this.highlightedRace.alpha=this.raceOpacity,this.highlightedRace=null)},t.exports=s},function(t,e,i){function s(t){if(!1===t.settings.fullscreenAvailable){var e=this.controlData["settings_btn-hover"];e.top=60,e.right=150}this.initialize(t)}var n=i(3).default,r=s.prototype=new n;r.name="settings_controls",r.controlsSpriteSheetData={frames:[[78,2,76,76],[2,2,76,76]],animations:{"settings_btn-hover":[0],settings_btn:[1]}},r.controlData={"settings_btn-hover":{top:60,right:230,key:"settings"}},r.update=function(){},r.addControls=function(){var t=new createjs.Container;t.addChild(this.createControl("settings_btn-hover")),this.controlsContainer=t,this.stage.addChild(t)},t.exports=s},function(t,e){var i=i||function(t,e){var i={},s=i.lib={},n=function(){},r=s.Base={extend:function(t){n.prototype=this;var e=new n;return t&&e.mixIn(t),e.hasOwnProperty("init")||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},o=s.WordArray=r.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||h).stringify(this)},concat:function(t){var e=this.words,i=t.words,s=this.sigBytes;if(t=t.sigBytes,this.clamp(),s%4)for(var n=0;t>n;n++)e[s+n>>>2]|=(i[n>>>2]>>>24-n%4*8&255)<<24-(s+n)%4*8;else if(65535<i.length)for(n=0;t>n;n+=4)e[s+n>>>2]=i[n>>>2];else e.push.apply(e,i);return this.sigBytes+=t,this},clamp:function(){var e=this.words,i=this.sigBytes;e[i>>>2]&=4294967295<<32-i%4*8,e.length=t.ceil(i/4)},clone:function(){var t=r.clone.call(this);return t.words=this.words.slice(0),t},random:function(e){for(var i=[],s=0;e>s;s+=4)i.push(4294967296*t.random()|0);return new o.init(i,e)}}),a=i.enc={},h=a.Hex={stringify:function(t){var e=t.words;t=t.sigBytes;for(var i=[],s=0;t>s;s++){var n=e[s>>>2]>>>24-s%4*8&255;i.push((n>>>4).toString(16)),i.push((15&n).toString(16))}return i.join("")},parse:function(t){for(var e=t.length,i=[],s=0;e>s;s+=2)i[s>>>3]|=parseInt(t.substr(s,2),16)<<24-s%8*4;return new o.init(i,e/2)}},l=a.Latin1={stringify:function(t){var e=t.words;t=t.sigBytes;for(var i=[],s=0;t>s;s++)i.push(String.fromCharCode(e[s>>>2]>>>24-s%4*8&255));return i.join("")},parse:function(t){for(var e=t.length,i=[],s=0;e>s;s++)i[s>>>2]|=(255&t.charCodeAt(s))<<24-s%4*8;return new o.init(i,e)}},c=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(l.stringify(t)))}catch(t){throw Error("Malformed UTF-8 data")}},parse:function(t){return l.parse(unescape(encodeURIComponent(t)))}},u=s.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new o.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=c.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var i=this._data,s=i.words,n=i.sigBytes,r=this.blockSize,a=n/(4*r);if(e=(a=e?t.ceil(a):t.max((0|a)-this._minBufferSize,0))*r,n=t.min(4*e,n),e){for(var h=0;e>h;h+=r)this._doProcessBlock(s,h);h=s.splice(0,e),i.sigBytes-=n}return new o.init(h,n)},clone:function(){var t=r.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0});s.Hasher=u.extend({cfg:r.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset()},reset:function(){u.reset.call(this),this._doReset()},update:function(t){return this._append(t),this._process(),this},finalize:function(t){return t&&this._append(t),this._doFinalize()},blockSize:16,_createHelper:function(t){return function(e,i){return new t.init(i).finalize(e)}},_createHmacHelper:function(t){return function(e,i){return new d.HMAC.init(t,i).finalize(e)}}});var d=i.algo={};return i}(Math);!function(t){for(var e=i,s=(r=e.lib).WordArray,n=r.Hasher,r=e.algo,o=[],a=[],h=function(t){return 4294967296*(t-(0|t))|0},l=2,c=0;64>c;){var u;t:{u=l;for(var d=t.sqrt(u),p=2;d>=p;p++)if(!(u%p)){u=!1;break t}u=!0}u&&(8>c&&(o[c]=h(t.pow(l,.5))),a[c]=h(t.pow(l,1/3)),c++),l++}var f=[];r=r.SHA256=n.extend({_doReset:function(){this._hash=new s.init(o.slice(0))},_doProcessBlock:function(t,e){for(var i=this._hash.words,s=i[0],n=i[1],r=i[2],o=i[3],h=i[4],l=i[5],c=i[6],u=i[7],d=0;64>d;d++){if(16>d)f[d]=0|t[e+d];else{var p=f[d-15],g=f[d-2];f[d]=((p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3)+f[d-7]+((g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10)+f[d-16]}p=u+((h<<26|h>>>6)^(h<<21|h>>>11)^(h<<7|h>>>25))+(h&l^~h&c)+a[d]+f[d],g=((s<<30|s>>>2)^(s<<19|s>>>13)^(s<<10|s>>>22))+(s&n^s&r^n&r),u=c,c=l,l=h,h=o+p|0,o=r,r=n,n=s,s=p+g|0}i[0]=i[0]+s|0,i[1]=i[1]+n|0,i[2]=i[2]+r|0,i[3]=i[3]+o|0,i[4]=i[4]+h|0,i[5]=i[5]+l|0,i[6]=i[6]+c|0,i[7]=i[7]+u|0},_doFinalize:function(){var e=this._data,i=e.words,s=8*this._nDataBytes,n=8*e.sigBytes;return i[n>>>5]|=128<<24-n%32,i[14+(n+64>>>9<<4)]=t.floor(s/4294967296),i[15+(n+64>>>9<<4)]=s,e.sigBytes=4*i.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=n._createHelper(r),e.HmacSHA256=n._createHmacHelper(r)}(Math),t.exports=i},function(t,e){t.exports='<div class="mod-checkbox-container mod-menu-option mod-clickable"> <svg width=13 height=13> <path d="M4 11 L8 7 L4 3" stroke=black stroke-width=2px fill=none /> </svg> <svg width=13 height=13 style=display:none> <path d="M8 11 L4 7 L8 3" stroke=black stroke-width=2px fill=none /> </svg> <span style=font-size:13px>Folder Name</span> </div>'},function(t,e){t.exports='<div class="mod-menu-option mod-color-container mod-clickable"> <span style="width:13px;height:13px;margin-top:4px;margin-right:4px;border-radius:2px;float:left;border:1px solid #000">&nbsp;</span> <span style=font-size:13px></span> </div>'},function(t,e){t.exports='<div class=color-picker-container> <div class=graphic-container> <div class=shade-picker-container> <canvas class=shade-canvas></canvas> <div class=shade-indicator></div> </div> <div class=hue-picker-container> <canvas class=hue-canvas width=20></canvas> <div class=hue-indicator></div> </div> </div> <div class=textbox-container> <input type=text class="color-box red-box"/> <input type=text class="color-box green-box"/> <input type=text class="color-box blue-box"/> </div> </div>'},function(t,e){t.exports='<div class=mod-menu-container> <div style="display:grid;grid-template-columns:auto auto auto"> <div class=mod-menu> </div> <div class=mod-v-seperator></div> <div class=mod-description-container> <div class="mod-setting-description invisible"></div> <div class=mod-title onclick=\'window.open("https://community.freeriderhd.com/threads/polygons-mod.11712/")\'> <div style=flex:1></div> <div> <p style=font-size:18pt>Polygon\'s Mod</p> <p style=font-family:monospace;font-size:10pt>v2.1</p> </div> <div style=flex:1></div> </div> </div> </div> </div> '},function(t,e){t.exports="<div class=mod-update-notification> Polygon's Mod has been updated! Click here for more info. &nbsp;&nbsp;&nbsp; <button class=mod-dismiss-button>Close</button> </div>"},function(t,e){this.createjs=this.createjs||{},createjs.extend=function(t,e){"use strict";function i(){this.constructor=t}return i.prototype=e.prototype,t.prototype=new i},this.createjs=this.createjs||{},createjs.promote=function(t,e){"use strict";var i=t.prototype,s=Object.getPrototypeOf&&Object.getPrototypeOf(i)||i.__proto__;if(s)for(var n in i[(e+="_")+"constructor"]=s.constructor,s)i.hasOwnProperty(n)&&"function"==typeof s[n]&&(i[e+n]=s[n]);return t},this.createjs=this.createjs||{},createjs.indexOf=function(t,e){"use strict";for(var i=0,s=t.length;s>i;i++)if(e===t[i])return i;return-1},this.createjs=this.createjs||{},function(){"use strict";function t(t,e,i){this.type=t,this.target=null,this.currentTarget=null,this.eventPhase=0,this.bubbles=!!e,this.cancelable=!!i,this.timeStamp=(new Date).getTime(),this.defaultPrevented=!1,this.propagationStopped=!1,this.immediatePropagationStopped=!1,this.removed=!1}var e=t.prototype;e.preventDefault=function(){this.defaultPrevented=this.cancelable&&!0},e.stopPropagation=function(){this.propagationStopped=!0},e.stopImmediatePropagation=function(){this.immediatePropagationStopped=this.propagationStopped=!0},e.remove=function(){this.removed=!0},e.clone=function(){return new t(this.type,this.bubbles,this.cancelable)},e.set=function(t){for(var e in t)this[e]=t[e];return this},e.toString=function(){return"[Event (type="+this.type+")]"},createjs.Event=t}(),this.createjs=this.createjs||{},function(){"use strict";function t(){this._listeners=null,this._captureListeners=null}var e=t.prototype;t.initialize=function(t){t.addEventListener=e.addEventListener,t.on=e.on,t.removeEventListener=t.off=e.removeEventListener,t.removeAllEventListeners=e.removeAllEventListeners,t.hasEventListener=e.hasEventListener,t.dispatchEvent=e.dispatchEvent,t._dispatchEvent=e._dispatchEvent,t.willTrigger=e.willTrigger},e.addEventListener=function(t,e,i){var s,n=(s=i?this._captureListeners=this._captureListeners||{}:this._listeners=this._listeners||{})[t];return n&&this.removeEventListener(t,e,i),(n=s[t])?n.push(e):s[t]=[e],e},e.on=function(t,e,i,s,n,r){return e.handleEvent&&(i=i||e,e=e.handleEvent),i=i||this,this.addEventListener(t,(function(t){e.call(i,t,n),s&&t.remove()}),r)},e.removeEventListener=function(t,e,i){var s=i?this._captureListeners:this._listeners;if(s){var n=s[t];if(n)for(var r=0,o=n.length;o>r;r++)if(n[r]==e){1==o?delete s[t]:n.splice(r,1);break}}},e.off=e.removeEventListener,e.removeAllEventListeners=function(t){t?(this._listeners&&delete this._listeners[t],this._captureListeners&&delete this._captureListeners[t]):this._listeners=this._captureListeners=null},e.dispatchEvent=function(t){if("string"==typeof t){var e=this._listeners;if(!e||!e[t])return!1;t=new createjs.Event(t)}else t.target&&t.clone&&(t=t.clone());try{t.target=this}catch(t){}if(t.bubbles&&this.parent){for(var i=this,s=[i];i.parent;)s.push(i=i.parent);var n,r=s.length;for(n=r-1;n>=0&&!t.propagationStopped;n--)s[n]._dispatchEvent(t,1+(0==n));for(n=1;r>n&&!t.propagationStopped;n++)s[n]._dispatchEvent(t,3)}else this._dispatchEvent(t,2);return t.defaultPrevented},e.hasEventListener=function(t){var e=this._listeners,i=this._captureListeners;return!!(e&&e[t]||i&&i[t])},e.willTrigger=function(t){for(var e=this;e;){if(e.hasEventListener(t))return!0;e=e.parent}return!1},e.toString=function(){return"[EventDispatcher]"},e._dispatchEvent=function(t,e){var i,s=1==e?this._captureListeners:this._listeners;if(t&&s){var n=s[t.type];if(!n||!(i=n.length))return;try{t.currentTarget=this}catch(t){}try{t.eventPhase=e}catch(t){}t.removed=!1,n=n.slice();for(var r=0;i>r&&!t.immediatePropagationStopped;r++){var o=n[r];o.handleEvent?o.handleEvent(t):o(t),t.removed&&(this.off(t.type,o,1==e),t.removed=!1)}}},createjs.EventDispatcher=t}(),this.createjs=this.createjs||{},function(){"use strict";function t(){throw"Ticker cannot be instantiated."}t.RAF_SYNCHED="synched",t.RAF="raf",t.TIMEOUT="timeout",t.useRAF=!1,t.timingMode=null,t.maxDelta=0,t.paused=!1,t.removeEventListener=null,t.removeAllEventListeners=null,t.dispatchEvent=null,t.hasEventListener=null,t._listeners=null,createjs.EventDispatcher.initialize(t),t._addEventListener=t.addEventListener,t.addEventListener=function(){return!t._inited&&t.init(),t._addEventListener.apply(t,arguments)},t._inited=!1,t._startTime=0,t._pausedTime=0,t._ticks=0,t._pausedTicks=0,t._interval=50,t._lastTime=0,t._times=null,t._tickTimes=null,t._timerId=null,t._raf=!0,t.setInterval=function(e){t._interval=e,t._inited&&t._setupTick()},t.getInterval=function(){return t._interval},t.setFPS=function(e){t.setInterval(1e3/e)},t.getFPS=function(){return 1e3/t._interval};try{Object.defineProperties(t,{interval:{get:t.getInterval,set:t.setInterval},framerate:{get:t.getFPS,set:t.setFPS}})}catch(t){console.log(t)}t.init=function(){t._inited||(t._inited=!0,t._times=[],t._tickTimes=[],t._startTime=t._getTime(),t._times.push(t._lastTime=0),t.interval=t._interval)},t.reset=function(){if(t._raf){var e=window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame;e&&e(t._timerId)}else clearTimeout(t._timerId);t.removeAllEventListeners("tick"),t._timerId=t._times=t._tickTimes=null,t._startTime=t._lastTime=t._ticks=0,t._inited=!1},t.getMeasuredTickTime=function(e){var i=0,s=t._tickTimes;if(!s||s.length<1)return-1;e=Math.min(s.length,e||0|t.getFPS());for(var n=0;e>n;n++)i+=s[n];return i/e},t.getMeasuredFPS=function(e){var i=t._times;return!i||i.length<2?-1:(e=Math.min(i.length-1,e||0|t.getFPS()),1e3/((i[0]-i[e])/e))},t.setPaused=function(e){t.paused=e},t.getPaused=function(){return t.paused},t.getTime=function(e){return t._startTime?t._getTime()-(e?t._pausedTime:0):-1},t.getEventTime=function(e){return t._startTime?(t._lastTime||t._startTime)-(e?t._pausedTime:0):-1},t.getTicks=function(e){return t._ticks-(e?t._pausedTicks:0)},t._handleSynch=function(){t._timerId=null,t._setupTick(),t._getTime()-t._lastTime>=.97*(t._interval-1)&&t._tick()},t._handleRAF=function(){t._timerId=null,t._setupTick(),t._tick()},t._handleTimeout=function(){t._timerId=null,t._setupTick(),t._tick()},t._setupTick=function(){if(null==t._timerId){var e=t.timingMode||t.useRAF&&t.RAF_SYNCHED;if(e==t.RAF_SYNCHED||e==t.RAF){var i=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame;if(i)return t._timerId=i(e==t.RAF?t._handleRAF:t._handleSynch),void(t._raf=!0)}t._raf=!1,t._timerId=setTimeout(t._handleTimeout,t._interval)}},t._tick=function(){var e=t.paused,i=t._getTime(),s=i-t._lastTime;if(t._lastTime=i,t._ticks++,e&&(t._pausedTicks++,t._pausedTime+=s),t.hasEventListener("tick")){var n=new createjs.Event("tick"),r=t.maxDelta;n.delta=r&&s>r?r:s,n.paused=e,n.time=i,n.runTime=i-t._pausedTime,t.dispatchEvent(n)}for(t._tickTimes.unshift(t._getTime()-i);t._tickTimes.length>100;)t._tickTimes.pop();for(t._times.unshift(i);t._times.length>100;)t._times.pop()};var e=window.performance&&(performance.now||performance.mozNow||performance.msNow||performance.oNow||performance.webkitNow);t._getTime=function(){return(e&&e.call(performance)||(new Date).getTime())-t._startTime},createjs.Ticker=t}(),this.createjs=this.createjs||{},function(){"use strict";function t(){throw"UID cannot be instantiated"}t._nextID=0,t.get=function(){return t._nextID++},createjs.UID=t}(),this.createjs=this.createjs||{},function(){"use strict";function t(t,e,i,s,n,r,o,a,h,l){this.Event_constructor(t,e,i),this.stageX=s,this.stageY=n,this.rawX=null==h?s:h,this.rawY=null==l?n:l,this.nativeEvent=r,this.pointerID=o,this.primary=!!a}var e=createjs.extend(t,createjs.Event);e._get_localX=function(){return this.currentTarget.globalToLocal(this.rawX,this.rawY).x},e._get_localY=function(){return this.currentTarget.globalToLocal(this.rawX,this.rawY).y},e._get_isTouch=function(){return-1!==this.pointerID};try{Object.defineProperties(e,{localX:{get:e._get_localX},localY:{get:e._get_localY},isTouch:{get:e._get_isTouch}})}catch(t){}e.clone=function(){return new t(this.type,this.bubbles,this.cancelable,this.stageX,this.stageY,this.nativeEvent,this.pointerID,this.primary,this.rawX,this.rawY)},e.toString=function(){return"[MouseEvent (type="+this.type+" stageX="+this.stageX+" stageY="+this.stageY+")]"},createjs.MouseEvent=createjs.promote(t,"Event")}(),this.createjs=this.createjs||{},function(){"use strict";function t(t,e,i,s,n,r){this.setValues(t,e,i,s,n,r)}var e=t.prototype;t.DEG_TO_RAD=Math.PI/180,t.identity=null,e.setValues=function(t,e,i,s,n,r){return this.a=null==t?1:t,this.b=e||0,this.c=i||0,this.d=null==s?1:s,this.tx=n||0,this.ty=r||0,this},e.append=function(t,e,i,s,n,r){var o=this.a,a=this.b,h=this.c,l=this.d;return(1!=t||0!=e||0!=i||1!=s)&&(this.a=o*t+h*e,this.b=a*t+l*e,this.c=o*i+h*s,this.d=a*i+l*s),this.tx=o*n+h*r+this.tx,this.ty=a*n+l*r+this.ty,this},e.prepend=function(t,e,i,s,n,r){var o=this.a,a=this.c,h=this.tx;return this.a=t*o+i*this.b,this.b=e*o+s*this.b,this.c=t*a+i*this.d,this.d=e*a+s*this.d,this.tx=t*h+i*this.ty+n,this.ty=e*h+s*this.ty+r,this},e.appendMatrix=function(t){return this.append(t.a,t.b,t.c,t.d,t.tx,t.ty)},e.prependMatrix=function(t){return this.prepend(t.a,t.b,t.c,t.d,t.tx,t.ty)},e.appendTransform=function(e,i,s,n,r,o,a,h,l){if(r%360)var c=r*t.DEG_TO_RAD,u=Math.cos(c),d=Math.sin(c);else u=1,d=0;return o||a?(o*=t.DEG_TO_RAD,a*=t.DEG_TO_RAD,this.append(Math.cos(a),Math.sin(a),-Math.sin(o),Math.cos(o),e,i),this.append(u*s,d*s,-d*n,u*n,0,0)):this.append(u*s,d*s,-d*n,u*n,e,i),(h||l)&&(this.tx-=h*this.a+l*this.c,this.ty-=h*this.b+l*this.d),this},e.prependTransform=function(e,i,s,n,r,o,a,h,l){if(r%360)var c=r*t.DEG_TO_RAD,u=Math.cos(c),d=Math.sin(c);else u=1,d=0;return(h||l)&&(this.tx-=h,this.ty-=l),o||a?(o*=t.DEG_TO_RAD,a*=t.DEG_TO_RAD,this.prepend(u*s,d*s,-d*n,u*n,0,0),this.prepend(Math.cos(a),Math.sin(a),-Math.sin(o),Math.cos(o),e,i)):this.prepend(u*s,d*s,-d*n,u*n,e,i),this},e.rotate=function(e){e*=t.DEG_TO_RAD;var i=Math.cos(e),s=Math.sin(e),n=this.a,r=this.b;return this.a=n*i+this.c*s,this.b=r*i+this.d*s,this.c=-n*s+this.c*i,this.d=-r*s+this.d*i,this},e.skew=function(e,i){return e*=t.DEG_TO_RAD,i*=t.DEG_TO_RAD,this.append(Math.cos(i),Math.sin(i),-Math.sin(e),Math.cos(e),0,0),this},e.scale=function(t,e){return this.a*=t,this.b*=t,this.c*=e,this.d*=e,this},e.translate=function(t,e){return this.tx+=this.a*t+this.c*e,this.ty+=this.b*t+this.d*e,this},e.identity=function(){return this.a=this.d=1,this.b=this.c=this.tx=this.ty=0,this},e.invert=function(){var t=this.a,e=this.b,i=this.c,s=this.d,n=this.tx,r=t*s-e*i;return this.a=s/r,this.b=-e/r,this.c=-i/r,this.d=t/r,this.tx=(i*this.ty-s*n)/r,this.ty=-(t*this.ty-e*n)/r,this},e.isIdentity=function(){return 0===this.tx&&0===this.ty&&1===this.a&&0===this.b&&0===this.c&&1===this.d},e.equals=function(t){return this.tx===t.tx&&this.ty===t.ty&&this.a===t.a&&this.b===t.b&&this.c===t.c&&this.d===t.d},e.transformPoint=function(t,e,i){return(i=i||{}).x=t*this.a+e*this.c+this.tx,i.y=t*this.b+e*this.d+this.ty,i},e.decompose=function(e){null==e&&(e={}),e.x=this.tx,e.y=this.ty,e.scaleX=Math.sqrt(this.a*this.a+this.b*this.b),e.scaleY=Math.sqrt(this.c*this.c+this.d*this.d);var i=Math.atan2(-this.c,this.d),s=Math.atan2(this.b,this.a);return 1e-5>Math.abs(1-i/s)?(e.rotation=s/t.DEG_TO_RAD,this.a<0&&this.d>=0&&(e.rotation+=e.rotation<=0?180:-180),e.skewX=e.skewY=0):(e.skewX=i/t.DEG_TO_RAD,e.skewY=s/t.DEG_TO_RAD),e},e.copy=function(t){return this.setValues(t.a,t.b,t.c,t.d,t.tx,t.ty)},e.clone=function(){return new t(this.a,this.b,this.c,this.d,this.tx,this.ty)},e.toString=function(){return"[Matrix2D (a="+this.a+" b="+this.b+" c="+this.c+" d="+this.d+" tx="+this.tx+" ty="+this.ty+")]"},t.identity=new t,createjs.Matrix2D=t}(),this.createjs=this.createjs||{},function(){"use strict";function t(t,e,i,s,n){this.setValues(t,e,i,s,n)}var e=t.prototype;e.setValues=function(t,e,i,s,n){return this.visible=null==t||!!t,this.alpha=null==e?1:e,this.shadow=i,this.compositeOperation=i,this.matrix=n||this.matrix&&this.matrix.identity()||new createjs.Matrix2D,this},e.append=function(t,e,i,s,n){return this.alpha*=e,this.shadow=i||this.shadow,this.compositeOperation=s||this.compositeOperation,this.visible=this.visible&&t,n&&this.matrix.appendMatrix(n),this},e.prepend=function(t,e,i,s,n){return this.alpha*=e,this.shadow=this.shadow||i,this.compositeOperation=this.compositeOperation||s,this.visible=this.visible&&t,n&&this.matrix.prependMatrix(n),this},e.identity=function(){return this.visible=!0,this.alpha=1,this.shadow=this.compositeOperation=null,this.matrix.identity(),this},e.clone=function(){return new t(this.alpha,this.shadow,this.compositeOperation,this.visible,this.matrix.clone())},createjs.DisplayProps=t}(),this.createjs=this.createjs||{},function(){"use strict";function t(t,e){this.setValues(t,e)}var e=t.prototype;e.setValues=function(t,e){return this.x=t||0,this.y=e||0,this},e.copy=function(t){return this.x=t.x,this.y=t.y,this},e.clone=function(){return new t(this.x,this.y)},e.toString=function(){return"[Point (x="+this.x+" y="+this.y+")]"},createjs.Point=t}(),this.createjs=this.createjs||{},function(){"use strict";function t(t,e,i,s){this.setValues(t,e,i,s)}var e=t.prototype;e.setValues=function(t,e,i,s){return this.x=t||0,this.y=e||0,this.width=i||0,this.height=s||0,this},e.extend=function(t,e,i,s){return s=s||0,t+(i=i||0)>this.x+this.width&&(this.width=t+i-this.x),e+s>this.y+this.height&&(this.height=e+s-this.y),t<this.x&&(this.width+=this.x-t,this.x=t),e<this.y&&(this.height+=this.y-e,this.y=e),this},e.pad=function(t,e,i,s){return this.x-=t,this.y-=e,this.width+=t+i,this.height+=e+s,this},e.copy=function(t){return this.setValues(t.x,t.y,t.width,t.height)},e.contains=function(t,e,i,s){return i=i||0,s=s||0,t>=this.x&&t+i<=this.x+this.width&&e>=this.y&&e+s<=this.y+this.height},e.union=function(t){return this.clone().extend(t.x,t.y,t.width,t.height)},e.intersection=function(e){var i=e.x,s=e.y,n=i+e.width,r=s+e.height;return this.x>i&&(i=this.x),this.y>s&&(s=this.y),this.x+this.width<n&&(n=this.x+this.width),this.y+this.height<r&&(r=this.y+this.height),i>=n||s>=r?null:new t(i,s,n-i,r-s)},e.intersects=function(t){return t.x<=this.x+this.width&&this.x<=t.x+t.width&&t.y<=this.y+this.height&&this.y<=t.y+t.height},e.isEmpty=function(){return this.width<=0||this.height<=0},e.clone=function(){return new t(this.x,this.y,this.width,this.height)},e.toString=function(){return"[Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")]"},createjs.Rectangle=t}(),this.createjs=this.createjs||{},function(){"use strict";function t(t,e,i,s,n,r,o){t.addEventListener&&(this.target=t,this.overLabel=null==i?"over":i,this.outLabel=null==e?"out":e,this.downLabel=null==s?"down":s,this.play=n,this._isPressed=!1,this._isOver=!1,this._enabled=!1,t.mouseChildren=!1,this.enabled=!0,this.handleEvent({}),r&&(o&&(r.actionsEnabled=!1,r.gotoAndStop&&r.gotoAndStop(o)),t.hitArea=r))}var e=t.prototype;e.setEnabled=function(t){if(t!=this._enabled){var e=this.target;this._enabled=t,t?(e.cursor="pointer",e.addEventListener("rollover",this),e.addEventListener("rollout",this),e.addEventListener("mousedown",this),e.addEventListener("pressup",this)):(e.cursor=null,e.removeEventListener("rollover",this),e.removeEventListener("rollout",this),e.removeEventListener("mousedown",this),e.removeEventListener("pressup",this))}},e.getEnabled=function(){return this._enabled};try{Object.defineProperties(e,{enabled:{get:e.getEnabled,set:e.setEnabled}})}catch(t){}e.toString=function(){return"[ButtonHelper]"},e.handleEvent=function(t){var e,i=this.target,s=t.type;"mousedown"==s?(this._isPressed=!0,e=this.downLabel):"pressup"==s?(this._isPressed=!1,e=this._isOver?this.overLabel:this.outLabel):"rollover"==s?(this._isOver=!0,e=this._isPressed?this.downLabel:this.overLabel):(this._isOver=!1,e=this._isPressed?this.overLabel:this.outLabel),this.play?i.gotoAndPlay&&i.gotoAndPlay(e):i.gotoAndStop&&i.gotoAndStop(e)},createjs.ButtonHelper=t}(),this.createjs=this.createjs||{},function(){"use strict";function t(t,e,i,s){this.color=t||"black",this.offsetX=e||0,this.offsetY=i||0,this.blur=s||0}var e=t.prototype;t.identity=new t("transparent",0,0,0),e.toString=function(){return"[Shadow]"},e.clone=function(){return new t(this.color,this.offsetX,this.offsetY,this.blur)},createjs.Shadow=t}(),this.createjs=this.createjs||{},function(){"use strict";function t(t){this.EventDispatcher_constructor(),this.complete=!0,this.framerate=0,this._animations=null,this._frames=null,this._images=null,this._data=null,this._loadCount=0,this._frameHeight=0,this._frameWidth=0,this._numFrames=0,this._regX=0,this._regY=0,this._spacing=0,this._margin=0,this._parseData(t)}var e=createjs.extend(t,createjs.EventDispatcher);e.getAnimations=function(){return this._animations.slice()};try{Object.defineProperties(e,{animations:{get:e.getAnimations}})}catch(t){}e.getNumFrames=function(t){if(null==t)return this._frames?this._frames.length:this._numFrames||0;var e=this._data[t];return null==e?0:e.frames.length},e.getAnimation=function(t){return this._data[t]},e.getFrame=function(t){var e;return this._frames&&(e=this._frames[t])?e:null},e.getFrameBounds=function(t,e){var i=this.getFrame(t);return i?(e||new createjs.Rectangle).setValues(-i.regX,-i.regY,i.rect.width,i.rect.height):null},e.toString=function(){return"[SpriteSheet]"},e.clone=function(){throw"SpriteSheet cannot be cloned."},e._parseData=function(t){var e,i,s,n;if(null!=t){if(this.framerate=t.framerate||0,t.images&&(i=t.images.length)>0)for(n=this._images=[],e=0;i>e;e++){var r=t.images[e];if("string"==typeof r){var o=r;(r=document.createElement("img")).src=o}n.push(r),r.getContext||r.complete||(this._loadCount++,this.complete=!1,function(t){r.onload=function(){t._handleImageLoad()}}(this))}if(null==t.frames);else if(t.frames instanceof Array)for(this._frames=[],e=0,i=(n=t.frames).length;i>e;e++){var a=n[e];this._frames.push({image:this._images[a[4]?a[4]:0],rect:new createjs.Rectangle(a[0],a[1],a[2],a[3]),regX:a[5]||0,regY:a[6]||0})}else s=t.frames,this._frameWidth=s.width,this._frameHeight=s.height,this._regX=s.regX||0,this._regY=s.regY||0,this._spacing=s.spacing||0,this._margin=s.margin||0,this._numFrames=s.count,0==this._loadCount&&this._calculateFrames();var h;if(this._animations=[],null!=(s=t.animations))for(h in this._data={},s){var l={name:h},c=s[h];if("number"==typeof c)n=l.frames=[c];else if(c instanceof Array)if(1==c.length)l.frames=[c[0]];else for(l.speed=c[3],l.next=c[2],n=l.frames=[],e=c[0];e<=c[1];e++)n.push(e);else{l.speed=c.speed,l.next=c.next;var u=c.frames;n=l.frames="number"==typeof u?[u]:u.slice(0)}(!0===l.next||void 0===l.next)&&(l.next=h),(!1===l.next||n.length<2&&l.next==h)&&(l.next=null),l.speed||(l.speed=1),this._animations.push(h),this._data[h]=l}}},e._handleImageLoad=function(){0==--this._loadCount&&(this._calculateFrames(),this.complete=!0,this.dispatchEvent("complete"))},e._calculateFrames=function(){if(!this._frames&&0!=this._frameWidth){this._frames=[];var t=this._numFrames||1e5,e=0,i=this._frameWidth,s=this._frameHeight,n=this._spacing,r=this._margin;t:for(var o=0,a=this._images;o<a.length;o++)for(var h=a[o],l=h.width,c=h.height,u=r;c-r-s>=u;){for(var d=r;l-r-i>=d;){if(e>=t)break t;e++,this._frames.push({image:h,rect:new createjs.Rectangle(d,u,i,s),regX:this._regX,regY:this._regY}),d+=i+n}u+=s+n}this._numFrames=e}},createjs.SpriteSheet=createjs.promote(t,"EventDispatcher")}(),this.createjs=this.createjs||{},function(){"use strict";function t(){this.command=null,this._stroke=null,this._strokeStyle=null,this._oldStrokeStyle=null,this._strokeDash=null,this._oldStrokeDash=null,this._strokeIgnoreScale=!1,this._fill=null,this._instructions=[],this._commitIndex=0,this._activeInstructions=[],this._dirty=!1,this._storeIndex=0,this.clear()}var e=t.prototype,i=t;t.getRGB=function(t,e,i,s){return null!=t&&null==i&&(s=e,i=255&t,e=t>>8&255,t=t>>16&255),null==s?"rgb("+t+","+e+","+i+")":"rgba("+t+","+e+","+i+","+s+")"},t.getHSL=function(t,e,i,s){return null==s?"hsl("+t%360+","+e+"%,"+i+"%)":"hsla("+t%360+","+e+"%,"+i+"%,"+s+")"},t.BASE_64={A:0,B:1,C:2,D:3,E:4,F:5,G:6,H:7,I:8,J:9,K:10,L:11,M:12,N:13,O:14,P:15,Q:16,R:17,S:18,T:19,U:20,V:21,W:22,X:23,Y:24,Z:25,a:26,b:27,c:28,d:29,e:30,f:31,g:32,h:33,i:34,j:35,k:36,l:37,m:38,n:39,o:40,p:41,q:42,r:43,s:44,t:45,u:46,v:47,w:48,x:49,y:50,z:51,0:52,1:53,2:54,3:55,4:56,5:57,6:58,7:59,8:60,9:61,"+":62,"/":63},t.STROKE_CAPS_MAP=["butt","round","square"],t.STROKE_JOINTS_MAP=["miter","round","bevel"];var s=createjs.createCanvas?createjs.createCanvas():document.createElement("canvas");s.getContext&&(t._ctx=s.getContext("2d"),s.width=s.height=1),e.getInstructions=function(){return this._updateInstructions(),this._instructions};try{Object.defineProperties(e,{instructions:{get:e.getInstructions}})}catch(t){}e.isEmpty=function(){return!(this._instructions.length||this._activeInstructions.length)},e.draw=function(t,e){this._updateInstructions();for(var i=this._instructions,s=this._storeIndex,n=i.length;n>s;s++)i[s].exec(t,e)},e.drawAsPath=function(t){this._updateInstructions();for(var e,i=this._instructions,s=this._storeIndex,n=i.length;n>s;s++)!1!==(e=i[s]).path&&e.exec(t)},e.moveTo=function(t,e){return this.append(new i.MoveTo(t,e),!0)},e.lineTo=function(t,e){return this.append(new i.LineTo(t,e))},e.arcTo=function(t,e,s,n,r){return this.append(new i.ArcTo(t,e,s,n,r))},e.arc=function(t,e,s,n,r,o){return this.append(new i.Arc(t,e,s,n,r,o))},e.quadraticCurveTo=function(t,e,s,n){return this.append(new i.QuadraticCurveTo(t,e,s,n))},e.bezierCurveTo=function(t,e,s,n,r,o){return this.append(new i.BezierCurveTo(t,e,s,n,r,o))},e.rect=function(t,e,s,n){return this.append(new i.Rect(t,e,s,n))},e.closePath=function(){return this._activeInstructions.length?this.append(new i.ClosePath):this},e.clear=function(){return this._instructions.length=this._activeInstructions.length=this._commitIndex=0,this._strokeStyle=this._stroke=this._fill=this._strokeDash=null,this._dirty=this._strokeIgnoreScale=!1,this},e.beginFill=function(t){return this._setFill(t?new i.Fill(t):null)},e.beginLinearGradientFill=function(t,e,s,n,r,o){return this._setFill((new i.Fill).linearGradient(t,e,s,n,r,o))},e.beginRadialGradientFill=function(t,e,s,n,r,o,a,h){return this._setFill((new i.Fill).radialGradient(t,e,s,n,r,o,a,h))},e.beginBitmapFill=function(t,e,s){return this._setFill(new i.Fill(null,s).bitmap(t,e))},e.endFill=function(){return this.beginFill()},e.setStrokeStyle=function(t,e,s,n,r){return this._updateInstructions(!0),this._strokeStyle=this.command=new i.StrokeStyle(t,e,s,n,r),this._stroke&&(this._stroke.ignoreScale=r),this._strokeIgnoreScale=r,this},e.setStrokeDash=function(t,e){return this._updateInstructions(!0),this._strokeDash=this.command=new i.StrokeDash(t,e),this},e.beginStroke=function(t){return this._setStroke(t?new i.Stroke(t):null)},e.beginLinearGradientStroke=function(t,e,s,n,r,o){return this._setStroke((new i.Stroke).linearGradient(t,e,s,n,r,o))},e.beginRadialGradientStroke=function(t,e,s,n,r,o,a,h){return this._setStroke((new i.Stroke).radialGradient(t,e,s,n,r,o,a,h))},e.beginBitmapStroke=function(t,e){return this._setStroke((new i.Stroke).bitmap(t,e))},e.endStroke=function(){return this.beginStroke()},e.curveTo=e.quadraticCurveTo,e.drawRect=e.rect,e.drawRoundRect=function(t,e,i,s,n){return this.drawRoundRectComplex(t,e,i,s,n,n,n,n)},e.drawRoundRectComplex=function(t,e,s,n,r,o,a,h){return this.append(new i.RoundRect(t,e,s,n,r,o,a,h))},e.drawCircle=function(t,e,s){return this.append(new i.Circle(t,e,s))},e.drawEllipse=function(t,e,s,n){return this.append(new i.Ellipse(t,e,s,n))},e.drawPolyStar=function(t,e,s,n,r,o){return this.append(new i.PolyStar(t,e,s,n,r,o))},e.append=function(t,e){return this._activeInstructions.push(t),this.command=t,e||(this._dirty=!0),this},e.decodePath=function(e){for(var i=[this.moveTo,this.lineTo,this.quadraticCurveTo,this.bezierCurveTo,this.closePath],s=[2,2,4,6,0],n=0,r=e.length,o=[],a=0,h=0,l=t.BASE_64;r>n;){var c=e.charAt(n),u=l[c],d=u>>3,p=i[d];if(!p||3&u)throw"bad path data (@"+n+"): "+c;var f=s[d];d||(a=h=0),o.length=0,n++;for(var g=2+(u>>2&1),m=0;f>m;m++){var v=l[e.charAt(n)],y=v>>5?-1:1;v=(31&v)<<6|l[e.charAt(n+1)],3==g&&(v=v<<6|l[e.charAt(n+2)]),v=y*v/10,m%2?a=v+=a:h=v+=h,o[m]=v,n+=g}p.apply(this,o)}return this},e.store=function(){return this._updateInstructions(!0),this._storeIndex=this._instructions.length,this},e.unstore=function(){return this._storeIndex=0,this},e.clone=function(){var e=new t;return e.command=this.command,e._stroke=this._stroke,e._strokeStyle=this._strokeStyle,e._strokeDash=this._strokeDash,e._strokeIgnoreScale=this._strokeIgnoreScale,e._fill=this._fill,e._instructions=this._instructions.slice(),e._commitIndex=this._commitIndex,e._activeInstructions=this._activeInstructions.slice(),e._dirty=this._dirty,e._storeIndex=this._storeIndex,e},e.toString=function(){return"[Graphics]"},e.mt=e.moveTo,e.lt=e.lineTo,e.at=e.arcTo,e.bt=e.bezierCurveTo,e.qt=e.quadraticCurveTo,e.a=e.arc,e.r=e.rect,e.cp=e.closePath,e.c=e.clear,e.f=e.beginFill,e.lf=e.beginLinearGradientFill,e.rf=e.beginRadialGradientFill,e.bf=e.beginBitmapFill,e.ef=e.endFill,e.ss=e.setStrokeStyle,e.sd=e.setStrokeDash,e.s=e.beginStroke,e.ls=e.beginLinearGradientStroke,e.rs=e.beginRadialGradientStroke,e.bs=e.beginBitmapStroke,e.es=e.endStroke,e.dr=e.drawRect,e.rr=e.drawRoundRect,e.rc=e.drawRoundRectComplex,e.dc=e.drawCircle,e.de=e.drawEllipse,e.dp=e.drawPolyStar,e.p=e.decodePath,e._updateInstructions=function(e){var i=this._instructions,s=this._activeInstructions,n=this._commitIndex;if(this._dirty&&s.length){i.length=n,i.push(t.beginCmd);var r=s.length,o=i.length;i.length=o+r;for(var a=0;r>a;a++)i[a+o]=s[a];this._fill&&i.push(this._fill),this._stroke&&(this._strokeDash!==this._oldStrokeDash&&(this._oldStrokeDash=this._strokeDash,i.push(this._strokeDash)),this._strokeStyle!==this._oldStrokeStyle&&(this._oldStrokeStyle=this._strokeStyle,i.push(this._strokeStyle)),i.push(this._stroke)),this._dirty=!1}e&&(s.length=0,this._commitIndex=i.length)},e._setFill=function(t){return this._updateInstructions(!0),this.command=this._fill=t,this},e._setStroke=function(t){return this._updateInstructions(!0),(this.command=this._stroke=t)&&(t.ignoreScale=this._strokeIgnoreScale),this},(i.LineTo=function(t,e){this.x=t,this.y=e}).prototype.exec=function(t){t.lineTo(this.x,this.y)},(i.MoveTo=function(t,e){this.x=t,this.y=e}).prototype.exec=function(t){t.moveTo(this.x,this.y)},(i.ArcTo=function(t,e,i,s,n){this.x1=t,this.y1=e,this.x2=i,this.y2=s,this.radius=n}).prototype.exec=function(t){t.arcTo(this.x1,this.y1,this.x2,this.y2,this.radius)},(i.Arc=function(t,e,i,s,n,r){this.x=t,this.y=e,this.radius=i,this.startAngle=s,this.endAngle=n,this.anticlockwise=!!r}).prototype.exec=function(t){t.arc(this.x,this.y,this.radius,this.startAngle,this.endAngle,this.anticlockwise)},(i.QuadraticCurveTo=function(t,e,i,s){this.cpx=t,this.cpy=e,this.x=i,this.y=s}).prototype.exec=function(t){t.quadraticCurveTo(this.cpx,this.cpy,this.x,this.y)},(i.BezierCurveTo=function(t,e,i,s,n,r){this.cp1x=t,this.cp1y=e,this.cp2x=i,this.cp2y=s,this.x=n,this.y=r}).prototype.exec=function(t){t.bezierCurveTo(this.cp1x,this.cp1y,this.cp2x,this.cp2y,this.x,this.y)},(i.Rect=function(t,e,i,s){this.x=t,this.y=e,this.w=i,this.h=s}).prototype.exec=function(t){t.rect(this.x,this.y,this.w,this.h)},(i.ClosePath=function(){}).prototype.exec=function(t){t.closePath()},(i.BeginPath=function(){}).prototype.exec=function(t){t.beginPath()},(e=(i.Fill=function(t,e){this.style=t,this.matrix=e}).prototype).exec=function(t){if(this.style){t.fillStyle=this.style;var e=this.matrix;e&&(t.save(),t.transform(e.a,e.b,e.c,e.d,e.tx,e.ty)),t.fill(),e&&t.restore()}},e.linearGradient=function(e,i,s,n,r,o){for(var a=this.style=t._ctx.createLinearGradient(s,n,r,o),h=0,l=e.length;l>h;h++)a.addColorStop(i[h],e[h]);return a.props={colors:e,ratios:i,x0:s,y0:n,x1:r,y1:o,type:"linear"},this},e.radialGradient=function(e,i,s,n,r,o,a,h){for(var l=this.style=t._ctx.createRadialGradient(s,n,r,o,a,h),c=0,u=e.length;u>c;c++)l.addColorStop(i[c],e[c]);return l.props={colors:e,ratios:i,x0:s,y0:n,r0:r,x1:o,y1:a,r1:h,type:"radial"},this},e.bitmap=function(e,i){return(this.style=t._ctx.createPattern(e,i||"")).props={image:e,repetition:i,type:"bitmap"},this},e.path=!1,(e=(i.Stroke=function(t,e){this.style=t,this.ignoreScale=e}).prototype).exec=function(t){this.style&&(t.strokeStyle=this.style,this.ignoreScale&&(t.save(),t.setTransform(1,0,0,1,0,0)),t.stroke(),this.ignoreScale&&t.restore())},e.linearGradient=i.Fill.prototype.linearGradient,e.radialGradient=i.Fill.prototype.radialGradient,e.bitmap=i.Fill.prototype.bitmap,e.path=!1,(e=(i.StrokeStyle=function(t,e,i,s){this.width=t,this.caps=e,this.joints=i,this.miterLimit=s}).prototype).exec=function(e){e.lineWidth=null==this.width?"1":this.width,e.lineCap=null==this.caps?"butt":isNaN(this.caps)?this.caps:t.STROKE_CAPS_MAP[this.caps],e.lineJoin=null==this.joints?"miter":isNaN(this.joints)?this.joints:t.STROKE_JOINTS_MAP[this.joints],e.miterLimit=null==this.miterLimit?"10":this.miterLimit},e.path=!1,(i.StrokeDash=function(t,e){this.segments=t,this.offset=e||0}).prototype.exec=function(t){t.setLineDash&&(t.setLineDash(this.segments||i.StrokeDash.EMPTY_SEGMENTS),t.lineDashOffset=this.offset||0)},i.StrokeDash.EMPTY_SEGMENTS=[],(i.RoundRect=function(t,e,i,s,n,r,o,a){this.x=t,this.y=e,this.w=i,this.h=s,this.radiusTL=n,this.radiusTR=r,this.radiusBR=o,this.radiusBL=a}).prototype.exec=function(t){var e=(l>h?h:l)/2,i=0,s=0,n=0,r=0,o=this.x,a=this.y,h=this.w,l=this.h,c=this.radiusTL,u=this.radiusTR,d=this.radiusBR,p=this.radiusBL;0>c&&(c*=i=-1),c>e&&(c=e),0>u&&(u*=s=-1),u>e&&(u=e),0>d&&(d*=n=-1),d>e&&(d=e),0>p&&(p*=r=-1),p>e&&(p=e),t.moveTo(o+h-u,a),t.arcTo(o+h+u*s,a-u*s,o+h,a+u,u),t.lineTo(o+h,a+l-d),t.arcTo(o+h+d*n,a+l+d*n,o+h-d,a+l,d),t.lineTo(o+p,a+l),t.arcTo(o-p*r,a+l+p*r,o,a+l-p,p),t.lineTo(o,a+c),t.arcTo(o-c*i,a-c*i,o+c,a,c),t.closePath()},(i.Circle=function(t,e,i){this.x=t,this.y=e,this.radius=i}).prototype.exec=function(t){t.arc(this.x,this.y,this.radius,0,2*Math.PI)},(i.Ellipse=function(t,e,i,s){this.x=t,this.y=e,this.w=i,this.h=s}).prototype.exec=function(t){var e=this.x,i=this.y,s=this.w,n=this.h,r=.5522848,o=s/2*r,a=n/2*r,h=e+s,l=i+n,c=e+s/2,u=i+n/2;t.moveTo(e,u),t.bezierCurveTo(e,u-a,c-o,i,c,i),t.bezierCurveTo(c+o,i,h,u-a,h,u),t.bezierCurveTo(h,u+a,c+o,l,c,l),t.bezierCurveTo(c-o,l,e,u+a,e,u)},(i.PolyStar=function(t,e,i,s,n,r){this.x=t,this.y=e,this.radius=i,this.sides=s,this.pointSize=n,this.angle=r}).prototype.exec=function(t){var e=this.x,i=this.y,s=this.radius,n=(this.angle||0)/180*Math.PI,r=this.sides,o=1-(this.pointSize||0),a=Math.PI/r;t.moveTo(e+Math.cos(n)*s,i+Math.sin(n)*s);for(var h=0;r>h;h++)n+=a,1!=o&&t.lineTo(e+Math.cos(n)*s*o,i+Math.sin(n)*s*o),n+=a,t.lineTo(e+Math.cos(n)*s,i+Math.sin(n)*s);t.closePath()},t.beginCmd=new i.BeginPath,createjs.Graphics=t}(),this.createjs=this.createjs||{},function(){"use strict";function t(){this.EventDispatcher_constructor(),this.alpha=1,this.cacheCanvas=null,this.cacheID=0,this.id=createjs.UID.get(),this.mouseEnabled=!0,this.tickEnabled=!0,this.name=null,this.parent=null,this.regX=0,this.regY=0,this.rotation=0,this.scaleX=1,this.scaleY=1,this.skewX=0,this.skewY=0,this.shadow=null,this.visible=!0,this.x=0,this.y=0,this.transformMatrix=null,this.compositeOperation=null,this.snapToPixel=!0,this.filters=null,this.mask=null,this.hitArea=null,this.cursor=null,this._cacheOffsetX=0,this._cacheOffsetY=0,this._filterOffsetX=0,this._filterOffsetY=0,this._cacheScale=1,this._cacheDataURLID=0,this._cacheDataURL=null,this._props=new createjs.DisplayProps,this._rectangle=new createjs.Rectangle,this._bounds=null}var e=createjs.extend(t,createjs.EventDispatcher);t._MOUSE_EVENTS=["click","dblclick","mousedown","mouseout","mouseover","pressmove","pressup","rollout","rollover"],t.suppressCrossDomainErrors=!1,t._snapToPixelEnabled=!1;var i=createjs.createCanvas?createjs.createCanvas():document.createElement("canvas");i.getContext&&(t._hitTestCanvas=i,t._hitTestContext=i.getContext("2d"),i.width=i.height=1),t._nextCacheID=1,e.getStage=function(){for(var t=this,e=createjs.Stage;t.parent;)t=t.parent;return t instanceof e?t:null};try{Object.defineProperties(e,{stage:{get:e.getStage}})}catch(t){}e.isVisible=function(){return!!(this.visible&&this.alpha>0&&0!=this.scaleX&&0!=this.scaleY)},e.draw=function(t,e){var i=this.cacheCanvas;if(e||!i)return!1;var s=this._cacheScale;return t.drawImage(i,this._cacheOffsetX+this._filterOffsetX,this._cacheOffsetY+this._filterOffsetY,i.width/s,i.height/s),!0},e.updateContext=function(e){var i=this,s=i.mask,n=i._props.matrix;s&&s.graphics&&!s.graphics.isEmpty()&&(s.getMatrix(n),e.transform(n.a,n.b,n.c,n.d,n.tx,n.ty),s.graphics.drawAsPath(e),e.clip(),n.invert(),e.transform(n.a,n.b,n.c,n.d,n.tx,n.ty)),this.getMatrix(n);var r=n.tx,o=n.ty;t._snapToPixelEnabled&&i.snapToPixel&&(r=r+(0>r?-.5:.5)|0,o=o+(0>o?-.5:.5)|0),e.transform(n.a,n.b,n.c,n.d,r,o),e.globalAlpha*=i.alpha,i.compositeOperation&&(e.globalCompositeOperation=i.compositeOperation),i.shadow&&this._applyShadow(e,i.shadow)},e.cache=function(t,e,i,s,n){n=n||1,this.cacheCanvas||(this.cacheCanvas=createjs.createCanvas?createjs.createCanvas():document.createElement("canvas")),this._cacheWidth=i,this._cacheHeight=s,this._cacheOffsetX=t,this._cacheOffsetY=e,this._cacheScale=n,this.updateCache()},e.updateCache=function(e){var i=this.cacheCanvas;if(!i)throw"cache() must be called before updateCache()";var s=this._cacheScale,n=this._cacheOffsetX*s,r=this._cacheOffsetY*s,o=this._cacheWidth,a=this._cacheHeight,h=i.getContext("2d"),l=this._getFilterBounds();n+=this._filterOffsetX=l.x,r+=this._filterOffsetY=l.y,o=Math.ceil(o*s)+l.width,a=Math.ceil(a*s)+l.height,o!=i.width||a!=i.height?(i.width=o,i.height=a):e||h.clearRect(0,0,o+1,a+1),h.save(),h.globalCompositeOperation=e,h.setTransform(s,0,0,s,-n,-r),this.draw(h,!0),this._applyFilters(),h.restore(),this.cacheID=t._nextCacheID++},e.uncache=function(){this._cacheDataURL=this.cacheCanvas=null,this.cacheID=this._cacheOffsetX=this._cacheOffsetY=this._filterOffsetX=this._filterOffsetY=0,this._cacheScale=1},e.getCacheDataURL=function(){return this.cacheCanvas?(this.cacheID!=this._cacheDataURLID&&(this._cacheDataURL=this.cacheCanvas.toDataURL()),this._cacheDataURL):null},e.localToGlobal=function(t,e,i){return this.getConcatenatedMatrix(this._props.matrix).transformPoint(t,e,i||new createjs.Point)},e.globalToLocal=function(t,e,i){return this.getConcatenatedMatrix(this._props.matrix).invert().transformPoint(t,e,i||new createjs.Point)},e.localToLocal=function(t,e,i,s){return s=this.localToGlobal(t,e,s),i.globalToLocal(s.x,s.y,s)},e.setTransform=function(t,e,i,s,n,r,o,a,h){return this.x=t||0,this.y=e||0,this.scaleX=null==i?1:i,this.scaleY=null==s?1:s,this.rotation=n||0,this.skewX=r||0,this.skewY=o||0,this.regX=a||0,this.regY=h||0,this},e.getMatrix=function(t){var e=this,i=t&&t.identity()||new createjs.Matrix2D;return e.transformMatrix?i.copy(e.transformMatrix):i.appendTransform(e.x,e.y,e.scaleX,e.scaleY,e.rotation,e.skewX,e.skewY,e.regX,e.regY)},e.getConcatenatedMatrix=function(t){for(var e=this,i=this.getMatrix(t);e=e.parent;)i.prependMatrix(e.getMatrix(e._props.matrix));return i},e.getConcatenatedDisplayProps=function(t){t=t?t.identity():new createjs.DisplayProps;var e=this,i=e.getMatrix(t.matrix);do{t.prepend(e.visible,e.alpha,e.shadow,e.compositeOperation),e!=this&&i.prependMatrix(e.getMatrix(e._props.matrix))}while(e=e.parent);return t},e.hitTest=function(e,i){var s=t._hitTestContext;s.setTransform(1,0,0,1,-e,-i),this.draw(s);var n=this._testHit(s);return s.setTransform(1,0,0,1,0,0),s.clearRect(0,0,2,2),n},e.set=function(t){for(var e in t)this[e]=t[e];return this},e.getBounds=function(){if(this._bounds)return this._rectangle.copy(this._bounds);var t=this.cacheCanvas;if(t){var e=this._cacheScale;return this._rectangle.setValues(this._cacheOffsetX,this._cacheOffsetY,t.width/e,t.height/e)}return null},e.getTransformedBounds=function(){return this._getBounds()},e.setBounds=function(t,e,i,s){null==t&&(this._bounds=t),this._bounds=(this._bounds||new createjs.Rectangle).setValues(t,e,i,s)},e.clone=function(){return this._cloneProps(new t)},e.toString=function(){return"[DisplayObject (name="+this.name+")]"},e._cloneProps=function(t){return t.alpha=this.alpha,t.mouseEnabled=this.mouseEnabled,t.tickEnabled=this.tickEnabled,t.name=this.name,t.regX=this.regX,t.regY=this.regY,t.rotation=this.rotation,t.scaleX=this.scaleX,t.scaleY=this.scaleY,t.shadow=this.shadow,t.skewX=this.skewX,t.skewY=this.skewY,t.visible=this.visible,t.x=this.x,t.y=this.y,t.compositeOperation=this.compositeOperation,t.snapToPixel=this.snapToPixel,t.filters=null==this.filters?null:this.filters.slice(0),t.mask=this.mask,t.hitArea=this.hitArea,t.cursor=this.cursor,t._bounds=this._bounds,t},e._applyShadow=function(t,e){e=e||Shadow.identity,t.shadowColor=e.color,t.shadowOffsetX=e.offsetX,t.shadowOffsetY=e.offsetY,t.shadowBlur=e.blur},e._tick=function(t){var e=this._listeners;e&&e.tick&&(t.target=null,t.propagationStopped=t.immediatePropagationStopped=!1,this.dispatchEvent(t))},e._testHit=function(e){try{var i=e.getImageData(0,0,1,1).data[3]>1}catch(e){if(!t.suppressCrossDomainErrors)throw"An error has occurred. This is most likely due to security restrictions on reading canvas pixel data with local or cross-domain images."}return i},e._applyFilters=function(){if(this.filters&&0!=this.filters.length&&this.cacheCanvas)for(var t=this.filters.length,e=this.cacheCanvas.getContext("2d"),i=this.cacheCanvas.width,s=this.cacheCanvas.height,n=0;t>n;n++)this.filters[n].applyFilter(e,0,0,i,s)},e._getFilterBounds=function(){var t,e=this.filters,i=this._rectangle.setValues(0,0,0,0);if(!e||!(t=e.length))return i;for(var s=0;t>s;s++){var n=this.filters[s];n.getBounds&&n.getBounds(i)}return i},e._getBounds=function(t,e){return this._transformBounds(this.getBounds(),t,e)},e._transformBounds=function(t,e,i){if(!t)return t;var s=t.x,n=t.y,r=t.width,o=t.height,a=this._props.matrix;a=i?a.identity():this.getMatrix(a),(s||n)&&a.appendTransform(0,0,1,1,0,0,0,-s,-n),e&&a.prependMatrix(e);var h=r*a.a,l=r*a.b,c=o*a.c,u=o*a.d,d=a.tx,p=a.ty,f=d,g=d,m=p,v=p;return(s=h+d)<f?f=s:s>g&&(g=s),(s=h+c+d)<f?f=s:s>g&&(g=s),(s=c+d)<f?f=s:s>g&&(g=s),(n=l+p)<m?m=n:n>v&&(v=n),(n=l+u+p)<m?m=n:n>v&&(v=n),(n=u+p)<m?m=n:n>v&&(v=n),t.setValues(f,m,g-f,v-m)},e._hasMouseEventListener=function(){for(var e=t._MOUSE_EVENTS,i=0,s=e.length;s>i;i++)if(this.hasEventListener(e[i]))return!0;return!!this.cursor},createjs.DisplayObject=createjs.promote(t,"EventDispatcher")}(),this.createjs=this.createjs||{},function(){"use strict";function t(){this.DisplayObject_constructor(),this.children=[],this.mouseChildren=!0,this.tickChildren=!0}var e=createjs.extend(t,createjs.DisplayObject);e.getNumChildren=function(){return this.children.length};try{Object.defineProperties(e,{numChildren:{get:e.getNumChildren}})}catch(t){}e.initialize=t,e.isVisible=function(){var t=this.cacheCanvas||this.children.length;return!!(this.visible&&this.alpha>0&&0!=this.scaleX&&0!=this.scaleY&&t)},e.draw=function(t,e){if(this.DisplayObject_draw(t,e))return!0;for(var i=this.children.slice(),s=0,n=i.length;n>s;s++){var r=i[s];r.isVisible()&&(t.save(),r.updateContext(t),r.draw(t),t.restore())}return!0},e.addChild=function(t){if(null==t)return t;var e=arguments.length;if(e>1){for(var i=0;e>i;i++)this.addChild(arguments[i]);return arguments[e-1]}return t.parent&&t.parent.removeChild(t),t.parent=this,this.children.push(t),t.dispatchEvent("added"),t},e.addChildAt=function(t,e){var i=arguments.length,s=arguments[i-1];if(0>s||s>this.children.length)return arguments[i-2];if(i>2){for(var n=0;i-1>n;n++)this.addChildAt(arguments[n],s+n);return arguments[i-2]}return t.parent&&t.parent.removeChild(t),t.parent=this,this.children.splice(e,0,t),t.dispatchEvent("added"),t},e.removeChild=function(t){var e=arguments.length;if(e>1){for(var i=!0,s=0;e>s;s++)i=i&&this.removeChild(arguments[s]);return i}return this.removeChildAt(createjs.indexOf(this.children,t))},e.removeChildAt=function(t){var e=arguments.length;if(e>1){for(var i=[],s=0;e>s;s++)i[s]=arguments[s];i.sort((function(t,e){return e-t}));var n=!0;for(s=0;e>s;s++)n=n&&this.removeChildAt(i[s]);return n}if(0>t||t>this.children.length-1)return!1;var r=this.children[t];return r&&(r.parent=null),this.children.splice(t,1),r.dispatchEvent("removed"),!0},e.removeAllChildren=function(){for(var t=this.children;t.length;)this.removeChildAt(0)},e.getChildAt=function(t){return this.children[t]},e.getChildByName=function(t){for(var e=this.children,i=0,s=e.length;s>i;i++)if(e[i].name==t)return e[i];return null},e.sortChildren=function(t){this.children.sort(t)},e.getChildIndex=function(t){return createjs.indexOf(this.children,t)},e.swapChildrenAt=function(t,e){var i=this.children,s=i[t],n=i[e];s&&n&&(i[t]=n,i[e]=s)},e.swapChildren=function(t,e){for(var i,s,n=this.children,r=0,o=n.length;o>r&&(n[r]==t&&(i=r),n[r]==e&&(s=r),null==i||null==s);r++);r!=o&&(n[i]=e,n[s]=t)},e.setChildIndex=function(t,e){var i=this.children,s=i.length;if(!(t.parent!=this||0>e||e>=s)){for(var n=0;s>n&&i[n]!=t;n++);n!=s&&n!=e&&(i.splice(n,1),i.splice(e,0,t))}},e.contains=function(t){for(;t;){if(t==this)return!0;t=t.parent}return!1},e.hitTest=function(t,e){return null!=this.getObjectUnderPoint(t,e)},e.getObjectsUnderPoint=function(t,e,i){var s=[],n=this.localToGlobal(t,e);return this._getObjectsUnderPoint(n.x,n.y,s,i>0,1==i),s},e.getObjectUnderPoint=function(t,e,i){var s=this.localToGlobal(t,e);return this._getObjectsUnderPoint(s.x,s.y,null,i>0,1==i)},e.getBounds=function(){return this._getBounds(null,!0)},e.getTransformedBounds=function(){return this._getBounds()},e.clone=function(e){var i=this._cloneProps(new t);return e&&this._cloneChildren(i),i},e.toString=function(){return"[Container (name="+this.name+")]"},e._tick=function(t){if(this.tickChildren)for(var e=this.children.length-1;e>=0;e--){var i=this.children[e];i.tickEnabled&&i._tick&&i._tick(t)}this.DisplayObject__tick(t)},e._cloneChildren=function(t){t.children.length&&t.removeAllChildren();for(var e=t.children,i=0,s=this.children.length;s>i;i++){var n=this.children[i].clone(!0);n.parent=t,e.push(n)}},e._getObjectsUnderPoint=function(e,i,s,n,r,o){if(!(o=o||0)&&!this._testMask(this,e,i))return null;var a,h=createjs.DisplayObject._hitTestContext;r=r||n&&this._hasMouseEventListener();for(var l=this.children,c=l.length-1;c>=0;c--){var u=l[c],d=u.hitArea;if(u.visible&&(d||u.isVisible())&&(!n||u.mouseEnabled)&&(d||this._testMask(u,e,i)))if(!d&&u instanceof t){var p=u._getObjectsUnderPoint(e,i,s,n,r,o+1);if(!s&&p)return n&&!this.mouseChildren?this:p}else{if(n&&!r&&!u._hasMouseEventListener())continue;var f=u.getConcatenatedDisplayProps(u._props);if(a=f.matrix,d&&(a.appendMatrix(d.getMatrix(d._props.matrix)),f.alpha=d.alpha),h.globalAlpha=f.alpha,h.setTransform(a.a,a.b,a.c,a.d,a.tx-e,a.ty-i),(d||u).draw(h),!this._testHit(h))continue;if(h.setTransform(1,0,0,1,0,0),h.clearRect(0,0,2,2),!s)return n&&!this.mouseChildren?this:u;s.push(u)}}return null},e._testMask=function(t,e,i){var s=t.mask;if(!s||!s.graphics||s.graphics.isEmpty())return!0;var n=this._props.matrix,r=t.parent;n=r?r.getConcatenatedMatrix(n):n.identity(),n=s.getMatrix(s._props.matrix).prependMatrix(n);var o=createjs.DisplayObject._hitTestContext;return o.setTransform(n.a,n.b,n.c,n.d,n.tx-e,n.ty-i),s.graphics.drawAsPath(o),o.fillStyle="#000",o.fill(),!!this._testHit(o)&&(o.setTransform(1,0,0,1,0,0),o.clearRect(0,0,2,2),!0)},e._getBounds=function(t,e){var i=this.DisplayObject_getBounds();if(i)return this._transformBounds(i,t,e);var s=this._props.matrix;s=e?s.identity():this.getMatrix(s),t&&s.prependMatrix(t);for(var n=this.children.length,r=null,o=0;n>o;o++){var a=this.children[o];a.visible&&(i=a._getBounds(s))&&(r?r.extend(i.x,i.y,i.width,i.height):r=i.clone())}return r},createjs.Container=createjs.promote(t,"DisplayObject")}(),this.createjs=this.createjs||{},function(){"use strict";function t(t){this.Container_constructor(),this.autoClear=!0,this.canvas="string"==typeof t?document.getElementById(t):t,this.mouseX=0,this.mouseY=0,this.drawRect=null,this.snapToPixelEnabled=!1,this.mouseInBounds=!1,this.tickOnUpdate=!0,this.mouseMoveOutside=!1,this.preventSelection=!0,this._pointerData={},this._pointerCount=0,this._primaryPointerID=null,this._mouseOverIntervalID=null,this._nextStage=null,this._prevStage=null,this.enableDOMEvents(!0)}var e=createjs.extend(t,createjs.Container);e._get_nextStage=function(){return this._nextStage},e._set_nextStage=function(t){this._nextStage&&(this._nextStage._prevStage=null),t&&(t._prevStage=this),this._nextStage=t};try{Object.defineProperties(e,{nextStage:{get:e._get_nextStage,set:e._set_nextStage}})}catch(t){}e.update=function(t){if(this.canvas&&(this.tickOnUpdate&&this.tick(t),!this.dispatchEvent("drawstart"))){createjs.DisplayObject._snapToPixelEnabled=this.snapToPixelEnabled;var e=this.drawRect,i=this.canvas.getContext("2d");i.setTransform(1,0,0,1,0,0),this.autoClear&&(e?i.clearRect(e.x,e.y,e.width,e.height):i.clearRect(0,0,this.canvas.width+1,this.canvas.height+1)),i.save(),this.drawRect&&(i.beginPath(),i.rect(e.x,e.y,e.width,e.height),i.clip()),this.updateContext(i),this.draw(i,!1),i.restore(),this.dispatchEvent("drawend")}},e.tick=function(t){if(this.tickEnabled&&!this.dispatchEvent("tickstart")){var e=new createjs.Event("tick");if(t)for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);this._tick(e),this.dispatchEvent("tickend")}},e.handleEvent=function(t){"tick"==t.type&&this.update(t)},e.clear=function(){if(this.canvas){var t=this.canvas.getContext("2d");t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,this.canvas.width+1,this.canvas.height+1)}},e.toDataURL=function(t,e){var i,s=this.canvas.getContext("2d"),n=this.canvas.width,r=this.canvas.height;if(t){i=s.getImageData(0,0,n,r);var o=s.globalCompositeOperation;s.globalCompositeOperation="destination-over",s.fillStyle=t,s.fillRect(0,0,n,r)}var a=this.canvas.toDataURL(e||"image/png");return t&&(s.putImageData(i,0,0),s.globalCompositeOperation=o),a},e.enableMouseOver=function(t){if(this._mouseOverIntervalID&&(clearInterval(this._mouseOverIntervalID),this._mouseOverIntervalID=null,0==t&&this._testMouseOver(!0)),null==t)t=20;else if(0>=t)return;var e=this;this._mouseOverIntervalID=setInterval((function(){e._testMouseOver()}),1e3/Math.min(50,t))},e.enableDOMEvents=function(t){null==t&&(t=!0);var e,i,s=this._eventListeners;if(!t&&s){for(e in s)(i=s[e]).t.removeEventListener(e,i.f,!1);this._eventListeners=null}else if(t&&!s&&this.canvas){var n=window.addEventListener?window:document,r=this;for(e in(s=this._eventListeners={}).mouseup={t:n,f:function(t){r._handleMouseUp(t)}},s.mousemove={t:n,f:function(t){r._handleMouseMove(t)}},s.dblclick={t:this.canvas,f:function(t){r._handleDoubleClick(t)}},s.mousedown={t:this.canvas,f:function(t){r._handleMouseDown(t)}},s)(i=s[e]).t.addEventListener(e,i.f,!1)}},e.clone=function(){throw"Stage cannot be cloned."},e.toString=function(){return"[Stage (name="+this.name+")]"},e._getElementRect=function(t){var e;try{e=t.getBoundingClientRect()}catch(i){e={top:t.offsetTop,left:t.offsetLeft,width:t.offsetWidth,height:t.offsetHeight}}var i=(window.pageXOffset||document.scrollLeft||0)-(document.clientLeft||document.body.clientLeft||0),s=(window.pageYOffset||document.scrollTop||0)-(document.clientTop||document.body.clientTop||0),n=window.getComputedStyle?getComputedStyle(t,null):t.currentStyle,r=parseInt(n.paddingLeft)+parseInt(n.borderLeftWidth),o=parseInt(n.paddingTop)+parseInt(n.borderTopWidth),a=parseInt(n.paddingRight)+parseInt(n.borderRightWidth),h=parseInt(n.paddingBottom)+parseInt(n.borderBottomWidth);return{left:e.left+i+r,right:e.right+i-a,top:e.top+s+o,bottom:e.bottom+s-h}},e._getPointerData=function(t){var e=this._pointerData[t];return e||(e=this._pointerData[t]={x:0,y:0}),e},e._handleMouseMove=function(t){t||(t=window.event),this._handlePointerMove(-1,t,t.pageX,t.pageY)},e._handlePointerMove=function(t,e,i,s,n){if((!this._prevStage||void 0!==n)&&this.canvas){var r=this._nextStage,o=this._getPointerData(t),a=o.inBounds;this._updatePointerPosition(t,e,i,s),(a||o.inBounds||this.mouseMoveOutside)&&(-1===t&&o.inBounds==!a&&this._dispatchMouseEvent(this,a?"mouseleave":"mouseenter",!1,t,o,e),this._dispatchMouseEvent(this,"stagemousemove",!1,t,o,e),this._dispatchMouseEvent(o.target,"pressmove",!0,t,o,e)),r&&r._handlePointerMove(t,e,i,s,null)}},e._updatePointerPosition=function(t,e,i,s){var n=this._getElementRect(this.canvas);i-=n.left,s-=n.top;var r=this.canvas.width,o=this.canvas.height;i/=(n.right-n.left)/r,s/=(n.bottom-n.top)/o;var a=this._getPointerData(t);(a.inBounds=i>=0&&s>=0&&r-1>=i&&o-1>=s)?(a.x=i,a.y=s):this.mouseMoveOutside&&(a.x=0>i?0:i>r-1?r-1:i,a.y=0>s?0:s>o-1?o-1:s),a.posEvtObj=e,a.rawX=i,a.rawY=s,(t===this._primaryPointerID||-1===t)&&(this.mouseX=a.x,this.mouseY=a.y,this.mouseInBounds=a.inBounds)},e._handleMouseUp=function(t){this._handlePointerUp(-1,t,!1)},e._handlePointerUp=function(t,e,i,s){var n=this._nextStage,r=this._getPointerData(t);if(!this._prevStage||void 0!==s){r.down&&this._dispatchMouseEvent(this,"stagemouseup",!1,t,r,e),r.down=!1;var o=null,a=r.target;s||!a&&!n||(o=this._getObjectsUnderPoint(r.x,r.y,null,!0)),o==a&&this._dispatchMouseEvent(a,"click",!0,t,r,e),this._dispatchMouseEvent(a,"pressup",!0,t,r,e),i?(t==this._primaryPointerID&&(this._primaryPointerID=null),delete this._pointerData[t]):r.target=null,n&&n._handlePointerUp(t,e,i,s||o&&this)}},e._handleMouseDown=function(t){this._handlePointerDown(-1,t,t.pageX,t.pageY)},e._handlePointerDown=function(t,e,i,s,n){this.preventSelection&&e.preventDefault(),(null==this._primaryPointerID||-1===t)&&(this._primaryPointerID=t),null!=s&&this._updatePointerPosition(t,e,i,s);var r=null,o=this._nextStage,a=this._getPointerData(t);a.inBounds&&(this._dispatchMouseEvent(this,"stagemousedown",!1,t,a,e),a.down=!0),n||(r=a.target=this._getObjectsUnderPoint(a.x,a.y,null,!0),this._dispatchMouseEvent(a.target,"mousedown",!0,t,a,e)),o&&o._handlePointerDown(t,e,i,s,n||r&&this)},e._testMouseOver=function(t,e,i){if(!this._prevStage||void 0!==e){var s=this._nextStage;if(!this._mouseOverIntervalID)return void(s&&s._testMouseOver(t,e,i));var n=this._getPointerData(-1);if(n&&(t||this.mouseX!=this._mouseOverX||this.mouseY!=this._mouseOverY||!this.mouseInBounds)){var r,o,a,h=n.posEvtObj,l=i||h&&h.target==this.canvas,c=null,u=-1,d="";!e&&(t||this.mouseInBounds&&l)&&(c=this._getObjectsUnderPoint(this.mouseX,this.mouseY,null,!0),this._mouseOverX=this.mouseX,this._mouseOverY=this.mouseY);var p=this._mouseOverTarget||[],f=p[p.length-1],g=this._mouseOverTarget=[];for(r=c;r;)g.unshift(r),null!=r.cursor&&(d=r.cursor),r=r.parent;for(this.canvas.style.cursor=d,!e&&i&&(i.canvas.style.cursor=d),o=0,a=g.length;a>o&&g[o]==p[o];o++)u=o;for(f!=c&&this._dispatchMouseEvent(f,"mouseout",!0,-1,n,h),o=p.length-1;o>u;o--)this._dispatchMouseEvent(p[o],"rollout",!1,-1,n,h);for(o=g.length-1;o>u;o--)this._dispatchMouseEvent(g[o],"rollover",!1,-1,n,h);f!=c&&this._dispatchMouseEvent(c,"mouseover",!0,-1,n,h),s&&s._testMouseOver(t,e||c&&this,i||l&&this)}}},e._handleDoubleClick=function(t,e){var i=null,s=this._nextStage,n=this._getPointerData(-1);e||(i=this._getObjectsUnderPoint(n.x,n.y,null,!0),this._dispatchMouseEvent(i,"dblclick",!0,-1,n,t)),s&&s._handleDoubleClick(t,e||i&&this)},e._dispatchMouseEvent=function(t,e,i,s,n,r){if(t&&(i||t.hasEventListener(e))){var o=new createjs.MouseEvent(e,i,!1,n.x,n.y,r,s,s===this._primaryPointerID||-1===s,n.rawX,n.rawY);t.dispatchEvent(o)}},createjs.Stage=createjs.promote(t,"Container")}(),this.createjs=this.createjs||{},function(){function t(t){this.DisplayObject_constructor(),"string"==typeof t?(this.image=document.createElement("img"),this.image.src=t):this.image=t,this.sourceRect=null}var e=createjs.extend(t,createjs.DisplayObject);e.initialize=t,e.isVisible=function(){var t=this.cacheCanvas||this.image&&(this.image.complete||this.image.getContext||this.image.readyState>=2);return!!(this.visible&&this.alpha>0&&0!=this.scaleX&&0!=this.scaleY&&t)},e.draw=function(t,e){if(this.DisplayObject_draw(t,e)||!this.image)return!0;var i=this.image,s=this.sourceRect;if(s){var n=s.x,r=s.y,o=n+s.width,a=r+s.height,h=0,l=0,c=i.width,u=i.height;0>n&&(h-=n,n=0),o>c&&(o=c),0>r&&(l-=r,r=0),a>u&&(a=u),t.drawImage(i,n,r,o-n,a-r,h,l,o-n,a-r)}else t.drawImage(i,0,0);return!0},e.getBounds=function(){var t=this.DisplayObject_getBounds();if(t)return t;var e=this.sourceRect||this.image;return this.image&&(this.image.complete||this.image.getContext||this.image.readyState>=2)?this._rectangle.setValues(0,0,e.width,e.height):null},e.clone=function(){var e=new t(this.image);return this.sourceRect&&(e.sourceRect=this.sourceRect.clone()),this._cloneProps(e),e},e.toString=function(){return"[Bitmap (name="+this.name+")]"},createjs.Bitmap=createjs.promote(t,"DisplayObject")}(),this.createjs=this.createjs||{},function(){"use strict";function t(t,e){this.DisplayObject_constructor(),this.currentFrame=0,this.currentAnimation=null,this.paused=!0,this.spriteSheet=t,this.currentAnimationFrame=0,this.framerate=0,this._animation=null,this._currentFrame=null,this._skipAdvance=!1,e&&this.gotoAndPlay(e)}var e=createjs.extend(t,createjs.DisplayObject);e.isVisible=function(){var t=this.cacheCanvas||this.spriteSheet.complete;return!!(this.visible&&this.alpha>0&&0!=this.scaleX&&0!=this.scaleY&&t)},e.draw=function(t,e){if(this.DisplayObject_draw(t,e))return!0;this._normalizeFrame();var i=this.spriteSheet.getFrame(0|this._currentFrame);if(!i)return!1;var s=i.rect;return s.width&&s.height&&t.drawImage(i.image,s.x,s.y,s.width,s.height,-i.regX,-i.regY,s.width,s.height),!0},e.play=function(){this.paused=!1},e.stop=function(){this.paused=!0},e.gotoAndPlay=function(t){this.paused=!1,this._skipAdvance=!0,this._goto(t)},e.gotoAndStop=function(t){this.paused=!0,this._goto(t)},e.advance=function(t){var e=this.framerate||this.spriteSheet.framerate,i=e&&null!=t?t/(1e3/e):1;this._normalizeFrame(i)},e.getBounds=function(){return this.DisplayObject_getBounds()||this.spriteSheet.getFrameBounds(this.currentFrame,this._rectangle)},e.clone=function(){return this._cloneProps(new t(this.spriteSheet))},e.toString=function(){return"[Sprite (name="+this.name+")]"},e._cloneProps=function(t){return this.DisplayObject__cloneProps(t),t.currentFrame=this.currentFrame,t.currentAnimation=this.currentAnimation,t.paused=this.paused,t.currentAnimationFrame=this.currentAnimationFrame,t.framerate=this.framerate,t._animation=this._animation,t._currentFrame=this._currentFrame,t._skipAdvance=this._skipAdvance,t},e._tick=function(t){this.paused||(this._skipAdvance||this.advance(t&&t.delta),this._skipAdvance=!1),this.DisplayObject__tick(t)},e._normalizeFrame=function(t){t=t||0;var e,i=this._animation,s=this.paused,n=this._currentFrame;if(i){var r=i.speed||1,o=this.currentAnimationFrame;if(o+t*r>=(e=i.frames.length)){var a=i.next;if(this._dispatchAnimationEnd(i,n,s,a,e-1))return;if(a)return this._goto(a,t-(e-o)/r);this.paused=!0,o=i.frames.length-1}else o+=t*r;this.currentAnimationFrame=o,this._currentFrame=i.frames[0|o]}else if((n=this._currentFrame+=t)>=(e=this.spriteSheet.getNumFrames())&&e>0&&!this._dispatchAnimationEnd(i,n,s,e-1)&&(this._currentFrame-=e)>=e)return this._normalizeFrame();n=0|this._currentFrame,this.currentFrame!=n&&(this.currentFrame=n,this.dispatchEvent("change"))},e._dispatchAnimationEnd=function(t,e,i,s,n){var r=t?t.name:null;if(this.hasEventListener("animationend")){var o=new createjs.Event("animationend");o.name=r,o.next=s,this.dispatchEvent(o)}var a=this._animation!=t||this._currentFrame!=e;return a||i||!this.paused||(this.currentAnimationFrame=n,a=!0),a},e._goto=function(t,e){if(this.currentAnimationFrame=0,isNaN(t)){var i=this.spriteSheet.getAnimation(t);i&&(this._animation=i,this.currentAnimation=t,this._normalizeFrame(e))}else this.currentAnimation=this._animation=null,this._currentFrame=t,this._normalizeFrame()},createjs.Sprite=createjs.promote(t,"DisplayObject")}(),this.createjs=this.createjs||{},function(){"use strict";function t(t){this.DisplayObject_constructor(),this.graphics=t||new createjs.Graphics}var e=createjs.extend(t,createjs.DisplayObject);e.isVisible=function(){var t=this.cacheCanvas||this.graphics&&!this.graphics.isEmpty();return!!(this.visible&&this.alpha>0&&0!=this.scaleX&&0!=this.scaleY&&t)},e.draw=function(t,e){return this.DisplayObject_draw(t,e)||this.graphics.draw(t,this),!0},e.clone=function(e){var i=e&&this.graphics?this.graphics.clone():this.graphics;return this._cloneProps(new t(i))},e.toString=function(){return"[Shape (name="+this.name+")]"},createjs.Shape=createjs.promote(t,"DisplayObject")}(),this.createjs=this.createjs||{},function(){"use strict";function t(t,e,i){this.DisplayObject_constructor(),this.text=t,this.font=e,this.color=i,this.textAlign="left",this.textBaseline="top",this.maxWidth=null,this.outline=0,this.lineHeight=0,this.lineWidth=null}var e=createjs.extend(t,createjs.DisplayObject),i=createjs.createCanvas?createjs.createCanvas():document.createElement("canvas");i.getContext&&(t._workingContext=i.getContext("2d"),i.width=i.height=1),t.H_OFFSETS={start:0,left:0,center:-.5,end:-1,right:-1},t.V_OFFSETS={top:0,hanging:-.01,middle:-.4,alphabetic:-.8,ideographic:-.85,bottom:-1},e.isVisible=function(){var t=this.cacheCanvas||null!=this.text&&""!==this.text;return!!(this.visible&&this.alpha>0&&0!=this.scaleX&&0!=this.scaleY&&t)},e.draw=function(t,e){if(this.DisplayObject_draw(t,e))return!0;var i=this.color||"#000";return this.outline?(t.strokeStyle=i,t.lineWidth=1*this.outline):t.fillStyle=i,this._drawText(this._prepContext(t)),!0},e.getMeasuredWidth=function(){return this._getMeasuredWidth(this.text)},e.getMeasuredLineHeight=function(){return 1.2*this._getMeasuredWidth("M")},e.getMeasuredHeight=function(){return this._drawText(null,{}).height},e.getBounds=function(){var e=this.DisplayObject_getBounds();if(e)return e;if(null==this.text||""==this.text)return null;var i=this._drawText(null,{}),s=this.maxWidth&&this.maxWidth<i.width?this.maxWidth:i.width,n=s*t.H_OFFSETS[this.textAlign||"left"],r=(this.lineHeight||this.getMeasuredLineHeight())*t.V_OFFSETS[this.textBaseline||"top"];return this._rectangle.setValues(n,r,s,i.height)},e.getMetrics=function(){var e={lines:[]};return e.lineHeight=this.lineHeight||this.getMeasuredLineHeight(),e.vOffset=e.lineHeight*t.V_OFFSETS[this.textBaseline||"top"],this._drawText(null,e,e.lines)},e.clone=function(){return this._cloneProps(new t(this.text,this.font,this.color))},e.toString=function(){return"[Text (text="+(this.text.length>20?this.text.substr(0,17)+"...":this.text)+")]"},e._cloneProps=function(t){return this.DisplayObject__cloneProps(t),t.textAlign=this.textAlign,t.textBaseline=this.textBaseline,t.maxWidth=this.maxWidth,t.outline=this.outline,t.lineHeight=this.lineHeight,t.lineWidth=this.lineWidth,t},e._prepContext=function(t){return t.font=this.font||"10px sans-serif",t.textAlign=this.textAlign||"left",t.textBaseline=this.textBaseline||"top",t},e._drawText=function(e,i,s){var n=!!e;n||((e=t._workingContext).save(),this._prepContext(e));for(var r=this.lineHeight||this.getMeasuredLineHeight(),o=0,a=0,h=String(this.text).split(/(?:\r\n|\r|\n)/),l=0,c=h.length;c>l;l++){var u=h[l],d=null;if(null!=this.lineWidth&&(d=e.measureText(u).width)>this.lineWidth){var p=u.split(/(\s)/);u=p[0],d=e.measureText(u).width;for(var f=1,g=p.length;g>f;f+=2){var m=e.measureText(p[f]+p[f+1]).width;d+m>this.lineWidth?(n&&this._drawTextLine(e,u,a*r),s&&s.push(u),d>o&&(o=d),u=p[f+1],d=e.measureText(u).width,a++):(u+=p[f]+p[f+1],d+=m)}}n&&this._drawTextLine(e,u,a*r),s&&s.push(u),i&&null==d&&(d=e.measureText(u).width),d>o&&(o=d),a++}return i&&(i.width=o,i.height=a*r),n||e.restore(),i},e._drawTextLine=function(t,e,i){this.outline?t.strokeText(e,0,i,this.maxWidth||65535):t.fillText(e,0,i,this.maxWidth||65535)},e._getMeasuredWidth=function(e){var i=t._workingContext;i.save();var s=this._prepContext(i).measureText(e).width;return i.restore(),s},createjs.Text=createjs.promote(t,"DisplayObject")}(),this.createjs=this.createjs||{},function(){"use strict";function t(t,e){this.Container_constructor(),this.text=t||"",this.spriteSheet=e,this.lineHeight=0,this.letterSpacing=0,this.spaceWidth=0,this._oldProps={text:0,spriteSheet:0,lineHeight:0,letterSpacing:0,spaceWidth:0}}var e=createjs.extend(t,createjs.Container);t.maxPoolSize=100,t._spritePool=[],e.draw=function(t,e){this.DisplayObject_draw(t,e)||(this._updateText(),this.Container_draw(t,e))},e.getBounds=function(){return this._updateText(),this.Container_getBounds()},e.isVisible=function(){var t=this.cacheCanvas||this.spriteSheet&&this.spriteSheet.complete&&this.text;return!!(this.visible&&this.alpha>0&&0!==this.scaleX&&0!==this.scaleY&&t)},e.clone=function(){return this._cloneProps(new t(this.text,this.spriteSheet))},e.addChild=e.addChildAt=e.removeChild=e.removeChildAt=e.removeAllChildren=function(){},e._cloneProps=function(t){return this.DisplayObject__cloneProps(t),t.lineHeight=this.lineHeight,t.letterSpacing=this.letterSpacing,t.spaceWidth=this.spaceWidth,t},e._getFrameIndex=function(t,e){var i,s=e.getAnimation(t);return s||(t!=(i=t.toUpperCase())||t!=(i=t.toLowerCase())||(i=null),i&&(s=e.getAnimation(i))),s&&s.frames[0]},e._getFrame=function(t,e){var i=this._getFrameIndex(t,e);return null==i?i:e.getFrame(i)},e._getLineHeight=function(t){var e=this._getFrame("1",t)||this._getFrame("T",t)||this._getFrame("L",t)||t.getFrame(0);return e?e.rect.height:1},e._getSpaceWidth=function(t){var e=this._getFrame("1",t)||this._getFrame("l",t)||this._getFrame("e",t)||this._getFrame("a",t)||t.getFrame(0);return e?e.rect.width:1},e._updateText=function(){var e,i=0,s=0,n=this._oldProps,r=!1,o=this.spaceWidth,a=this.lineHeight,h=this.spriteSheet,l=t._spritePool,c=this.children,u=0,d=c.length;for(var p in n)n[p]!=this[p]&&(n[p]=this[p],r=!0);if(r){var f=!!this._getFrame(" ",h);f||o||(o=this._getSpaceWidth(h)),a||(a=this._getLineHeight(h));for(var g=0,m=this.text.length;m>g;g++){var v=this.text.charAt(g);if(" "!=v||f)if("\n"!=v&&"\r"!=v){var y=this._getFrameIndex(v,h);null!=y&&(d>u?e=c[u]:(c.push(e=l.length?l.pop():new createjs.Sprite),e.parent=this,d++),e.spriteSheet=h,e.gotoAndStop(y),e.x=i,e.y=s,u++,i+=e.getBounds().width+this.letterSpacing)}else"\r"==v&&"\n"==this.text.charAt(g+1)&&g++,i=0,s+=a;else i+=o}for(;d>u;)l.push(e=c.pop()),e.parent=null,d--;l.length>t.maxPoolSize&&(l.length=t.maxPoolSize)}},createjs.BitmapText=createjs.promote(t,"Container")}(),this.createjs=this.createjs||{},function(){"use strict";function t(){throw"SpriteSheetUtils cannot be instantiated"}var e=createjs.createCanvas?createjs.createCanvas():document.createElement("canvas");e.getContext&&(t._workingCanvas=e,t._workingContext=e.getContext("2d"),e.width=e.height=1),t.addFlippedFrames=function(e,i,s,n){if(i||s||n){var r=0;i&&t._flip(e,++r,!0,!1),s&&t._flip(e,++r,!1,!0),n&&t._flip(e,++r,!0,!0)}},t.extractFrame=function(e,i){isNaN(i)&&(i=e.getAnimation(i).frames[0]);var s=e.getFrame(i);if(!s)return null;var n=s.rect,r=t._workingCanvas;r.width=n.width,r.height=n.height,t._workingContext.drawImage(s.image,n.x,n.y,n.width,n.height,0,0,n.width,n.height);var o=document.createElement("img");return o.src=r.toDataURL("image/png"),o},t.mergeAlpha=function(t,e,i){i||(i=createjs.createCanvas?createjs.createCanvas():document.createElement("canvas")),i.width=Math.max(e.width,t.width),i.height=Math.max(e.height,t.height);var s=i.getContext("2d");return s.save(),s.drawImage(t,0,0),s.globalCompositeOperation="destination-in",s.drawImage(e,0,0),s.restore(),i},t._flip=function(e,i,s,n){for(var r=e._images,o=t._workingCanvas,a=t._workingContext,h=r.length/i,l=0;h>l;l++){var c=r[l];c.__tmp=l,a.setTransform(1,0,0,1,0,0),a.clearRect(0,0,o.width+1,o.height+1),o.width=c.width,o.height=c.height,a.setTransform(s?-1:1,0,0,n?-1:1,s?c.width:0,n?c.height:0),a.drawImage(c,0,0);var u=document.createElement("img");u.src=o.toDataURL("image/png"),u.width=c.width,u.height=c.height,r.push(u)}var d=e._frames,p=d.length/i;for(l=0;p>l;l++){var f=(c=d[l]).rect.clone(),g={image:u=r[c.image.__tmp+h*i],rect:f,regX:c.regX,regY:c.regY};s&&(f.x=u.width-f.x-f.width,g.regX=f.width-c.regX),n&&(f.y=u.height-f.y-f.height,g.regY=f.height-c.regY),d.push(g)}var m="_"+(s?"h":"")+(n?"v":""),v=e._animations,y=e._data,w=v.length/i;for(l=0;w>l;l++){var x=v[l],_={name:x+m,speed:(c=y[x]).speed,next:c.next,frames:[]};c.next&&(_.next+=m);for(var b=0,T=(d=c.frames).length;T>b;b++)_.frames.push(d[b]+p*i);y[_.name]=_,v.push(_.name)}},createjs.SpriteSheetUtils=t}(),this.createjs=this.createjs||{},function(){"use strict";function t(){this.EventDispatcher_constructor(),this.maxWidth=2048,this.maxHeight=2048,this.spriteSheet=null,this.scale=1,this.padding=1,this.timeSlice=.3,this.progress=-1,this._frames=[],this._animations={},this._data=null,this._nextFrameIndex=0,this._index=0,this._timerID=null,this._scale=1}var e=createjs.extend(t,createjs.EventDispatcher);t.ERR_DIMENSIONS="frame dimensions exceed max spritesheet dimensions",t.ERR_RUNNING="a build is already running",e.addFrame=function(e,i,s,n,r){if(this._data)throw t.ERR_RUNNING;var o=i||e.bounds||e.nominalBounds;return!o&&e.getBounds&&(o=e.getBounds()),o?(s=s||1,this._frames.push({source:e,sourceRect:o,scale:s,funct:n,data:r,index:this._frames.length,height:o.height*s})-1):null},e.addAnimation=function(e,i,s,n){if(this._data)throw t.ERR_RUNNING;this._animations[e]={frames:i,next:s,frequency:n}},e.addMovieClip=function(e,i,s,n,r,o){if(this._data)throw t.ERR_RUNNING;var a=e.frameBounds,h=i||e.bounds||e.nominalBounds;if(!h&&e.getBounds&&(h=e.getBounds()),h||a){var l,c,u=this._frames.length,d=e.timeline.duration;for(l=0;d>l;l++){var p=a&&a[l]?a[l]:h;this.addFrame(e,p,s,this._setupMovieClipFrame,{i:l,f:n,d:r})}var f=e.timeline._labels,g=[];for(var m in f)g.push({index:f[m],label:m});if(g.length)for(g.sort((function(t,e){return t.index-e.index})),l=0,c=g.length;c>l;l++){for(var v=g[l].label,y=u+g[l].index,w=u+(l==c-1?d:g[l+1].index),x=[],_=y;w>_;_++)x.push(_);(!o||(v=o(v,e,y,w)))&&this.addAnimation(v,x,!0)}}},e.build=function(){if(this._data)throw t.ERR_RUNNING;for(this._startBuild();this._drawNext(););return this._endBuild(),this.spriteSheet},e.buildAsync=function(e){if(this._data)throw t.ERR_RUNNING;this.timeSlice=e,this._startBuild();var i=this;this._timerID=setTimeout((function(){i._run()}),50-50*Math.max(.01,Math.min(.99,this.timeSlice||.3)))},e.stopAsync=function(){clearTimeout(this._timerID),this._data=null},e.clone=function(){throw"SpriteSheetBuilder cannot be cloned."},e.toString=function(){return"[SpriteSheetBuilder]"},e._startBuild=function(){var e=this.padding||0;this.progress=0,this.spriteSheet=null,this._index=0,this._scale=this.scale;var i=[];this._data={images:[],frames:i,animations:this._animations};var s=this._frames.slice();if(s.sort((function(t,e){return t.height<=e.height?-1:1})),s[s.length-1].height+2*e>this.maxHeight)throw t.ERR_DIMENSIONS;for(var n=0,r=0,o=0;s.length;){var a=this._fillRow(s,n,o,i,e);if(a.w>r&&(r=a.w),n+=a.h,!a.h||!s.length){var h=createjs.createCanvas?createjs.createCanvas():document.createElement("canvas");h.width=this._getSize(r,this.maxWidth),h.height=this._getSize(n,this.maxHeight),this._data.images[o]=h,a.h||(r=n=0,o++)}}},e._setupMovieClipFrame=function(t,e){var i=t.actionsEnabled;t.actionsEnabled=!1,t.gotoAndStop(e.i),t.actionsEnabled=i,e.f&&e.f(t,e.d,e.i)},e._getSize=function(t,e){for(var i=4;Math.pow(2,++i)<t;);return Math.min(e,Math.pow(2,i))},e._fillRow=function(e,i,s,n,r){for(var o=this.maxWidth,a=this.maxHeight-(i+=r),h=r,l=0,c=e.length-1;c>=0;c--){var u=e[c],d=this._scale*u.scale,p=u.sourceRect,f=u.source,g=Math.floor(d*p.x-r),m=Math.floor(d*p.y-r),v=Math.ceil(d*p.height+2*r),y=Math.ceil(d*p.width+2*r);if(y>o)throw t.ERR_DIMENSIONS;v>a||h+y>o||(u.img=s,u.rect=new createjs.Rectangle(h,i,y,v),l=l||v,e.splice(c,1),n[u.index]=[h,i,y,v,s,Math.round(-g+d*f.regX-r),Math.round(-m+d*f.regY-r)],h+=y)}return{w:h,h:l}},e._endBuild=function(){this.spriteSheet=new createjs.SpriteSheet(this._data),this._data=null,this.progress=1,this.dispatchEvent("complete")},e._run=function(){for(var t=50*Math.max(.01,Math.min(.99,this.timeSlice||.3)),e=(new Date).getTime()+t,i=!1;e>(new Date).getTime();)if(!this._drawNext()){i=!0;break}if(i)this._endBuild();else{var s=this;this._timerID=setTimeout((function(){s._run()}),50-t)}var n=this.progress=this._index/this._frames.length;if(this.hasEventListener("progress")){var r=new createjs.Event("progress");r.progress=n,this.dispatchEvent(r)}},e._drawNext=function(){var t=this._frames[this._index],e=t.scale*this._scale,i=t.rect,s=t.sourceRect,n=this._data.images[t.img].getContext("2d");return t.funct&&t.funct(t.source,t.data),n.save(),n.beginPath(),n.rect(i.x,i.y,i.width,i.height),n.clip(),n.translate(Math.ceil(i.x-s.x*e),Math.ceil(i.y-s.y*e)),n.scale(e,e),t.source.draw(n),n.restore(),++this._index<this._frames.length},createjs.SpriteSheetBuilder=createjs.promote(t,"EventDispatcher")}(),this.createjs=this.createjs||{},function(){"use strict";function t(t){this.DisplayObject_constructor(),"string"==typeof t&&(t=document.getElementById(t)),this.mouseEnabled=!1;var e=t.style;e.position="absolute",e.transformOrigin=e.WebkitTransformOrigin=e.msTransformOrigin=e.MozTransformOrigin=e.OTransformOrigin="0% 0%",this.htmlElement=t,this._oldProps=null}var e=createjs.extend(t,createjs.DisplayObject);e.isVisible=function(){return null!=this.htmlElement},e.draw=function(){return!0},e.cache=function(){},e.uncache=function(){},e.updateCache=function(){},e.hitTest=function(){},e.localToGlobal=function(){},e.globalToLocal=function(){},e.localToLocal=function(){},e.clone=function(){throw"DOMElement cannot be cloned."},e.toString=function(){return"[DOMElement (name="+this.name+")]"},e._tick=function(t){var e=this.getStage();e&&e.on("drawend",this._handleDrawEnd,this,!0),this.DisplayObject__tick(t)},e._handleDrawEnd=function(){var t=this.htmlElement;if(t){var e=t.style,i=this.getConcatenatedDisplayProps(this._props),s=i.matrix,n=i.visible?"visible":"hidden";if(n!=e.visibility&&(e.visibility=n),i.visible){var r=this._oldProps,o=r&&r.matrix,a=1e4;if(!o||!o.equals(s)){var h="matrix("+(s.a*a|0)/a+","+(s.b*a|0)/a+","+(s.c*a|0)/a+","+(s.d*a|0)/a+","+(s.tx+.5|0);e.transform=e.WebkitTransform=e.OTransform=e.msTransform=h+","+(s.ty+.5|0)+")",e.MozTransform=h+"px,"+(s.ty+.5|0)+"px)",r||(r=this._oldProps=new createjs.DisplayProps(!0,NaN)),r.matrix.copy(s)}r.alpha!=i.alpha&&(e.opacity=""+(i.alpha*a|0)/a,r.alpha=i.alpha)}}},createjs.DOMElement=createjs.promote(t,"DisplayObject")}(),this.createjs=this.createjs||{},function(){"use strict";function t(){}var e=t.prototype;e.getBounds=function(t){return t},e.applyFilter=function(t,e,i,s,n,r,o,a){r=r||t,null==o&&(o=e),null==a&&(a=i);try{var h=t.getImageData(e,i,s,n)}catch(t){return!1}return!!this._applyFilter(h)&&(r.putImageData(h,o,a),!0)},e.toString=function(){return"[Filter]"},e.clone=function(){return new t},e._applyFilter=function(){return!0},createjs.Filter=t}(),this.createjs=this.createjs||{},function(){"use strict";function t(t,e,i){(isNaN(t)||0>t)&&(t=0),(isNaN(e)||0>e)&&(e=0),(isNaN(i)||1>i)&&(i=1),this.blurX=0|t,this.blurY=0|e,this.quality=0|i}var e=createjs.extend(t,createjs.Filter);t.MUL_TABLE=[1,171,205,293,57,373,79,137,241,27,391,357,41,19,283,265,497,469,443,421,25,191,365,349,335,161,155,149,9,278,269,261,505,245,475,231,449,437,213,415,405,395,193,377,369,361,353,345,169,331,325,319,313,307,301,37,145,285,281,69,271,267,263,259,509,501,493,243,479,118,465,459,113,446,55,435,429,423,209,413,51,403,199,393,97,3,379,375,371,367,363,359,355,351,347,43,85,337,333,165,327,323,5,317,157,311,77,305,303,75,297,294,73,289,287,71,141,279,277,275,68,135,67,133,33,262,260,129,511,507,503,499,495,491,61,121,481,477,237,235,467,232,115,457,227,451,7,445,221,439,218,433,215,427,425,211,419,417,207,411,409,203,202,401,399,396,197,49,389,387,385,383,95,189,47,187,93,185,23,183,91,181,45,179,89,177,11,175,87,173,345,343,341,339,337,21,167,83,331,329,327,163,81,323,321,319,159,79,315,313,39,155,309,307,153,305,303,151,75,299,149,37,295,147,73,291,145,289,287,143,285,71,141,281,35,279,139,69,275,137,273,17,271,135,269,267,133,265,33,263,131,261,130,259,129,257,1],t.SHG_TABLE=[0,9,10,11,9,12,10,11,12,9,13,13,10,9,13,13,14,14,14,14,10,13,14,14,14,13,13,13,9,14,14,14,15,14,15,14,15,15,14,15,15,15,14,15,15,15,15,15,14,15,15,15,15,15,15,12,14,15,15,13,15,15,15,15,16,16,16,15,16,14,16,16,14,16,13,16,16,16,15,16,13,16,15,16,14,9,16,16,16,16,16,16,16,16,16,13,14,16,16,15,16,16,10,16,15,16,14,16,16,14,16,16,14,16,16,14,15,16,16,16,14,15,14,15,13,16,16,15,17,17,17,17,17,17,14,15,17,17,16,16,17,16,15,17,16,17,11,17,16,17,16,17,16,17,17,16,17,17,16,17,17,16,16,17,17,17,16,14,17,17,17,17,15,16,14,16,15,16,13,16,15,16,14,16,15,16,12,16,15,16,17,17,17,17,17,13,16,15,17,17,17,16,15,17,17,17,16,15,17,17,14,16,17,17,16,17,17,16,15,17,16,14,17,16,15,17,16,17,17,16,17,15,16,17,14,17,16,15,17,16,17,13,17,16,17,17,16,17,14,17,16,17,16,17,16,17,9],e.getBounds=function(t){var e=0|this.blurX,i=0|this.blurY;if(0>=e&&0>=i)return t;var s=Math.pow(this.quality,.2);return(t||new createjs.Rectangle).pad(e*s+1,i*s+1,e*s+1,i*s+1)},e.clone=function(){return new t(this.blurX,this.blurY,this.quality)},e.toString=function(){return"[BlurFilter]"},e._applyFilter=function(e){var i=this.blurX>>1;if(isNaN(i)||0>i)return!1;var s=this.blurY>>1;if(isNaN(s)||0>s)return!1;if(0==i&&0==s)return!1;var n=this.quality;(isNaN(n)||1>n)&&(n=1),(n|=0)>3&&(n=3),1>n&&(n=1);var r=e.data,o=0,a=0,h=0,l=0,c=0,u=0,d=0,p=0,f=0,g=0,m=0,v=0,y=0,w=0,x=0,_=i+i+1|0,b=s+s+1|0,T=0|e.width,k=0|e.height,C=T-1|0,S=k-1|0,P=i+1|0,M=s+1|0,D={r:0,b:0,g:0,a:0},E=D;for(h=1;_>h;h++)E=E.n={r:0,b:0,g:0,a:0};E.n=D;var A={r:0,b:0,g:0,a:0},L=A;for(h=1;b>h;h++)L=L.n={r:0,b:0,g:0,a:0};L.n=A;for(var I=null,O=0|t.MUL_TABLE[i],z=0|t.SHG_TABLE[i],j=0|t.MUL_TABLE[s],B=0|t.SHG_TABLE[s];n-- >0;){d=u=0;var F=O,R=z;for(a=k;--a>-1;){for(p=P*(v=r[0|u]),f=P*(y=r[u+1|0]),g=P*(w=r[u+2|0]),m=P*(x=r[u+3|0]),E=D,h=P;--h>-1;)E.r=v,E.g=y,E.b=w,E.a=x,E=E.n;for(h=1;P>h;h++)l=u+((h>C?C:h)<<2)|0,p+=E.r=r[l],f+=E.g=r[l+1],g+=E.b=r[l+2],m+=E.a=r[l+3],E=E.n;for(I=D,o=0;T>o;o++)r[u++]=p*F>>>R,r[u++]=f*F>>>R,r[u++]=g*F>>>R,r[u++]=m*F>>>R,l=d+((l=o+i+1)<C?l:C)<<2,p-=I.r-(I.r=r[l]),f-=I.g-(I.g=r[l+1]),g-=I.b-(I.b=r[l+2]),m-=I.a-(I.a=r[l+3]),I=I.n;d+=T}for(F=j,R=B,o=0;T>o;o++){for(p=M*(v=r[u=o<<2|0])|0,f=M*(y=r[u+1|0])|0,g=M*(w=r[u+2|0])|0,m=M*(x=r[u+3|0])|0,L=A,h=0;M>h;h++)L.r=v,L.g=y,L.b=w,L.a=x,L=L.n;for(c=T,h=1;s>=h;h++)u=c+o<<2,p+=L.r=r[u],f+=L.g=r[u+1],g+=L.b=r[u+2],m+=L.a=r[u+3],L=L.n,S>h&&(c+=T);if(u=o,I=A,n>0)for(a=0;k>a;a++)r[(l=u<<2)+3]=x=m*F>>>R,x>0?(r[l]=p*F>>>R,r[l+1]=f*F>>>R,r[l+2]=g*F>>>R):r[l]=r[l+1]=r[l+2]=0,l=o+((l=a+M)<S?l:S)*T<<2,p-=I.r-(I.r=r[l]),f-=I.g-(I.g=r[l+1]),g-=I.b-(I.b=r[l+2]),m-=I.a-(I.a=r[l+3]),I=I.n,u+=T;else for(a=0;k>a;a++)r[(l=u<<2)+3]=x=m*F>>>R,x>0?(x=255/x,r[l]=(p*F>>>R)*x,r[l+1]=(f*F>>>R)*x,r[l+2]=(g*F>>>R)*x):r[l]=r[l+1]=r[l+2]=0,l=o+((l=a+M)<S?l:S)*T<<2,p-=I.r-(I.r=r[l]),f-=I.g-(I.g=r[l+1]),g-=I.b-(I.b=r[l+2]),m-=I.a-(I.a=r[l+3]),I=I.n,u+=T}}return!0},createjs.BlurFilter=createjs.promote(t,"Filter")}(),this.createjs=this.createjs||{},function(){"use strict";function t(t){this.alphaMap=t,this._alphaMap=null,this._mapData=null}var e=createjs.extend(t,createjs.Filter);e.clone=function(){var e=new t(this.alphaMap);return e._alphaMap=this._alphaMap,e._mapData=this._mapData,e},e.toString=function(){return"[AlphaMapFilter]"},e._applyFilter=function(t){if(!this.alphaMap)return!0;if(!this._prepAlphaMap())return!1;for(var e=t.data,i=this._mapData,s=0,n=e.length;n>s;s+=4)e[s+3]=i[s]||0;return!0},e._prepAlphaMap=function(){if(!this.alphaMap)return!1;if(this.alphaMap==this._alphaMap&&this._mapData)return!0;this._mapData=null;var t,e=this._alphaMap=this.alphaMap,i=e;e instanceof HTMLCanvasElement?t=i.getContext("2d"):((i=createjs.createCanvas?createjs.createCanvas():document.createElement("canvas")).width=e.width,i.height=e.height,(t=i.getContext("2d")).drawImage(e,0,0));try{var s=t.getImageData(0,0,e.width,e.height)}catch(t){return!1}return this._mapData=s.data,!0},createjs.AlphaMapFilter=createjs.promote(t,"Filter")}(),this.createjs=this.createjs||{},function(){"use strict";function t(t){this.mask=t}var e=createjs.extend(t,createjs.Filter);e.applyFilter=function(t,e,i,s,n,r,o,a){return!this.mask||(null==o&&(o=e),null==a&&(a=i),(r=r||t).save(),t==r&&(r.globalCompositeOperation="destination-in",r.drawImage(this.mask,o,a),r.restore(),!0))},e.clone=function(){return new t(this.mask)},e.toString=function(){return"[AlphaMaskFilter]"},createjs.AlphaMaskFilter=createjs.promote(t,"Filter")}(),this.createjs=this.createjs||{},function(){"use strict";function t(t,e,i,s,n,r,o,a){this.redMultiplier=null!=t?t:1,this.greenMultiplier=null!=e?e:1,this.blueMultiplier=null!=i?i:1,this.alphaMultiplier=null!=s?s:1,this.redOffset=n||0,this.greenOffset=r||0,this.blueOffset=o||0,this.alphaOffset=a||0}var e=createjs.extend(t,createjs.Filter);e.toString=function(){return"[ColorFilter]"},e.clone=function(){return new t(this.redMultiplier,this.greenMultiplier,this.blueMultiplier,this.alphaMultiplier,this.redOffset,this.greenOffset,this.blueOffset,this.alphaOffset)},e._applyFilter=function(t){for(var e=t.data,i=e.length,s=0;i>s;s+=4)e[s]=e[s]*this.redMultiplier+this.redOffset,e[s+1]=e[s+1]*this.greenMultiplier+this.greenOffset,e[s+2]=e[s+2]*this.blueMultiplier+this.blueOffset,e[s+3]=e[s+3]*this.alphaMultiplier+this.alphaOffset;return!0},createjs.ColorFilter=createjs.promote(t,"Filter")}(),this.createjs=this.createjs||{},function(){"use strict";function t(t,e,i,s){this.setColor(t,e,i,s)}var e=t.prototype;t.DELTA_INDEX=[0,.01,.02,.04,.05,.06,.07,.08,.1,.11,.12,.14,.15,.16,.17,.18,.2,.21,.22,.24,.25,.27,.28,.3,.32,.34,.36,.38,.4,.42,.44,.46,.48,.5,.53,.56,.59,.62,.65,.68,.71,.74,.77,.8,.83,.86,.89,.92,.95,.98,1,1.06,1.12,1.18,1.24,1.3,1.36,1.42,1.48,1.54,1.6,1.66,1.72,1.78,1.84,1.9,1.96,2,2.12,2.25,2.37,2.5,2.62,2.75,2.87,3,3.2,3.4,3.6,3.8,4,4.3,4.7,4.9,5,5.5,6,6.5,6.8,7,7.3,7.5,7.8,8,8.4,8.7,9,9.4,9.6,9.8,10],t.IDENTITY_MATRIX=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1],t.LENGTH=t.IDENTITY_MATRIX.length,e.setColor=function(t,e,i,s){return this.reset().adjustColor(t,e,i,s)},e.reset=function(){return this.copy(t.IDENTITY_MATRIX)},e.adjustColor=function(t,e,i,s){return this.adjustHue(s),this.adjustContrast(e),this.adjustBrightness(t),this.adjustSaturation(i)},e.adjustBrightness=function(t){return 0==t||isNaN(t)||(t=this._cleanValue(t,255),this._multiplyMatrix([1,0,0,0,t,0,1,0,0,t,0,0,1,0,t,0,0,0,1,0,0,0,0,0,1])),this},e.adjustContrast=function(e){return 0==e||isNaN(e)||(0>(e=this._cleanValue(e,100))?i=127+e/100*127:i=127*(i=0==(i=e%1)?t.DELTA_INDEX[e]:t.DELTA_INDEX[e<<0]*(1-i)+t.DELTA_INDEX[1+(e<<0)]*i)+127,this._multiplyMatrix([i/127,0,0,0,.5*(127-i),0,i/127,0,0,.5*(127-i),0,0,i/127,0,.5*(127-i),0,0,0,1,0,0,0,0,0,1])),this;var i},e.adjustSaturation=function(t){if(0==t||isNaN(t))return this;var e=1+((t=this._cleanValue(t,100))>0?3*t/100:t/100),i=.3086,s=.6094,n=.082;return this._multiplyMatrix([i*(1-e)+e,s*(1-e),n*(1-e),0,0,i*(1-e),s*(1-e)+e,n*(1-e),0,0,i*(1-e),s*(1-e),n*(1-e)+e,0,0,0,0,0,1,0,0,0,0,0,1]),this},e.adjustHue=function(t){if(0==t||isNaN(t))return this;t=this._cleanValue(t,180)/180*Math.PI;var e=Math.cos(t),i=Math.sin(t),s=.213,n=.715,r=.072;return this._multiplyMatrix([s+e*(1-s)+i*-s,n+e*-n+i*-n,r+e*-r+i*(1-r),0,0,s+e*-s+.143*i,n+e*(1-n)+.14*i,r+e*-r+-.283*i,0,0,s+e*-s+-.787*i,n+e*-n+i*n,r+e*(1-r)+i*r,0,0,0,0,0,1,0,0,0,0,0,1]),this},e.concat=function(e){return(e=this._fixMatrix(e)).length!=t.LENGTH||this._multiplyMatrix(e),this},e.clone=function(){return(new t).copy(this)},e.toArray=function(){for(var e=[],i=0,s=t.LENGTH;s>i;i++)e[i]=this[i];return e},e.copy=function(e){for(var i=t.LENGTH,s=0;i>s;s++)this[s]=e[s];return this},e.toString=function(){return"[ColorMatrix]"},e._multiplyMatrix=function(t){var e,i,s,n=[];for(e=0;5>e;e++){for(i=0;5>i;i++)n[i]=this[i+5*e];for(i=0;5>i;i++){var r=0;for(s=0;5>s;s++)r+=t[i+5*s]*n[s];this[i+5*e]=r}}},e._cleanValue=function(t,e){return Math.min(e,Math.max(-e,t))},e._fixMatrix=function(e){return e instanceof t&&(e=e.toArray()),e.length<t.LENGTH?e=e.slice(0,e.length).concat(t.IDENTITY_MATRIX.slice(e.length,t.LENGTH)):e.length>t.LENGTH&&(e=e.slice(0,t.LENGTH)),e},createjs.ColorMatrix=t}(),this.createjs=this.createjs||{},function(){"use strict";function t(t){this.matrix=t}var e=createjs.extend(t,createjs.Filter);e.toString=function(){return"[ColorMatrixFilter]"},e.clone=function(){return new t(this.matrix)},e._applyFilter=function(t){for(var e,i,s,n,r=t.data,o=r.length,a=this.matrix,h=a[0],l=a[1],c=a[2],u=a[3],d=a[4],p=a[5],f=a[6],g=a[7],m=a[8],v=a[9],y=a[10],w=a[11],x=a[12],_=a[13],b=a[14],T=a[15],k=a[16],C=a[17],S=a[18],P=a[19],M=0;o>M;M+=4)e=r[M],i=r[M+1],s=r[M+2],n=r[M+3],r[M]=e*h+i*l+s*c+n*u+d,r[M+1]=e*p+i*f+s*g+n*m+v,r[M+2]=e*y+i*w+s*x+n*_+b,r[M+3]=e*T+i*k+s*C+n*S+P;return!0},createjs.ColorMatrixFilter=createjs.promote(t,"Filter")}(),this.createjs=this.createjs||{},function(){"use strict";function t(){throw"Touch cannot be instantiated"}t.isSupported=function(){return!!("ontouchstart"in window||window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>0||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>0)},t.enable=function(e,i,s){return!!(e&&e.canvas&&t.isSupported())&&(e.__touch||(e.__touch={pointers:{},multitouch:!i,preventDefault:!s,count:0},"ontouchstart"in window?t._IOS_enable(e):(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&t._IE_enable(e)),!0)},t.disable=function(e){e&&("ontouchstart"in window?t._IOS_disable(e):(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&t._IE_disable(e),delete e.__touch)},t._IOS_enable=function(e){var i=e.canvas,s=e.__touch.f=function(i){t._IOS_handleEvent(e,i)};i.addEventListener("touchstart",s,!1),i.addEventListener("touchmove",s,!1),i.addEventListener("touchend",s,!1),i.addEventListener("touchcancel",s,!1)},t._IOS_disable=function(t){var e=t.canvas;if(e){var i=t.__touch.f;e.removeEventListener("touchstart",i,!1),e.removeEventListener("touchmove",i,!1),e.removeEventListener("touchend",i,!1),e.removeEventListener("touchcancel",i,!1)}},t._IOS_handleEvent=function(t,e){if(t){t.__touch.preventDefault&&e.preventDefault&&e.preventDefault();for(var i=e.changedTouches,s=e.type,n=0,r=i.length;r>n;n++){var o=i[n],a=o.identifier;o.target==t.canvas&&("touchstart"==s?this._handleStart(t,a,e,o.pageX,o.pageY):"touchmove"==s?this._handleMove(t,a,e,o.pageX,o.pageY):("touchend"==s||"touchcancel"==s)&&this._handleEnd(t,a,e))}}},t._IE_enable=function(e){var i=e.canvas,s=e.__touch.f=function(i){t._IE_handleEvent(e,i)};void 0===window.navigator.pointerEnabled?(i.addEventListener("MSPointerDown",s,!1),window.addEventListener("MSPointerMove",s,!1),window.addEventListener("MSPointerUp",s,!1),window.addEventListener("MSPointerCancel",s,!1),e.__touch.preventDefault&&(i.style.msTouchAction="none")):(i.addEventListener("pointerdown",s,!1),window.addEventListener("pointermove",s,!1),window.addEventListener("pointerup",s,!1),window.addEventListener("pointercancel",s,!1),e.__touch.preventDefault&&(i.style.touchAction="none")),e.__touch.activeIDs={}},t._IE_disable=function(t){var e=t.__touch.f;void 0===window.navigator.pointerEnabled?(window.removeEventListener("MSPointerMove",e,!1),window.removeEventListener("MSPointerUp",e,!1),window.removeEventListener("MSPointerCancel",e,!1),t.canvas&&t.canvas.removeEventListener("MSPointerDown",e,!1)):(window.removeEventListener("pointermove",e,!1),window.removeEventListener("pointerup",e,!1),window.removeEventListener("pointercancel",e,!1),t.canvas&&t.canvas.removeEventListener("pointerdown",e,!1))},t._IE_handleEvent=function(t,e){if(t){t.__touch.preventDefault&&e.preventDefault&&e.preventDefault();var i=e.type,s=e.pointerId,n=t.__touch.activeIDs;if("MSPointerDown"==i||"pointerdown"==i){if(e.srcElement!=t.canvas)return;n[s]=!0,this._handleStart(t,s,e,e.pageX,e.pageY)}else n[s]&&("MSPointerMove"==i||"pointermove"==i?this._handleMove(t,s,e,e.pageX,e.pageY):("MSPointerUp"==i||"MSPointerCancel"==i||"pointerup"==i||"pointercancel"==i)&&(delete n[s],this._handleEnd(t,s,e)))}},t._handleStart=function(t,e,i,s,n){var r=t.__touch;if(r.multitouch||!r.count){var o=r.pointers;o[e]||(o[e]=!0,r.count++,t._handlePointerDown(e,i,s,n))}},t._handleMove=function(t,e,i,s,n){t.__touch.pointers[e]&&t._handlePointerMove(e,i,s,n)},t._handleEnd=function(t,e,i){var s=t.__touch,n=s.pointers;n[e]&&(s.count--,t._handlePointerUp(e,i,!0),delete n[e])},createjs.Touch=t}(),this.createjs=this.createjs||{},function(){"use strict";var t=createjs.EaselJS=createjs.EaselJS||{};t.version="0.8.0",t.buildDate="Thu, 15 Jan 2015 23:50:40 GMT"}()},function(t,e){!function(){if(void 0===window.performance&&(window.performance={}),!window.performance.now){var t=Date.now();performance.timing&&performance.timing.navigationStart&&(t=performance.timing.navigationStart),window.performance.now=function(){return Date.now()-t}}}()},function(t,e){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,i){function s(){}i(32);var n=(Math.atan2,s.prototype);n.createVersion=function(){var t=this.colors,e=this.getVersions(),i="";for(var s in t)t.hasOwnProperty(s)&&(i+=t[s]);this.versionName=i,e[i]||(e[i]={dirty:!0,canvas:document.createElement("canvas")})},n.draw=function(t,e,i,s,n,r){var o=this.getCache(n),a=this.getBaseWidth(),h=this.getBaseHeight(),l=this.getScale(),c=a*n*l,u=h*n*l,d=this.getDrawOffsetX()*n-c/2,p=this.getDrawOffsetY()*n-u/2,f=-1===r;t.translate(e,i),t.rotate(s),f&&t.scale(1,-1),t.drawImage(o,d,p,c,u),f&&t.scale(1,-1),t.rotate(-s),t.translate(-e,-i)},n.getCache=function(t){var e=this.getVersions();return e[this.versionName].dirty&&this.cache(t),e[this.versionName].canvas},n.setDirty=function(){this.getVersions()[this.versionName].dirty=!0},t.exports=s,GameInventoryManager&&(GameInventoryManager.HeadClass=s)},function(t,e){function i(){}var s={},n={},r={},o=i.prototype;o.getItem=function(t){var e=t.classname,i=t.script,o=t.options,a=t.type;s[e]||("1"===a&&(e="forward_cap",o={back:"white"}),r[i]||(r[i]=!0,GameManager.loadFile(i)));var h=this.generateID(a,e,o);return n[h]||(n[h]=new s[e](o)),n[h]},o.redraw=function(){for(var t in n)n.hasOwnProperty(t)&&n[t].setDirty()},o.generateID=function(t,e,i){e=t+e;if(i)for(var s in i)i.hasOwnProperty(s)&&(e+=i[s]);return e},o.register=function(t,e){s[t]=e},o.clear=function(){},window.GameInventoryManager=new i,t.exports=i},function(t,e,i){!function(){"use strict";function e(t){this.drawAngle=0,this.colors=t,this.createVersion()}var i=GameInventoryManager.HeadClass,s=Math.max,n={},r=.17,o=e.prototype=new i;o.versionName="",o.dirty=!0,o.getVersions=function(){return n},o.cache=function(t){var e=n[this.versionName];e.dirty=!1;var i=115*(t=s(t,1))*r,o=112*t*r,a=e.canvas;a.width=i,a.height=o,a.width/2,a.height/2;var h=a.getContext("2d"),l=r*t,c=this.colors;h.save(),h.scale(l,l),h.translate(0,0),h.beginPath(),h.strokeStyle="rgba(0,0,0,0)",h.lineCap="butt",h.lineJoin="miter",h.miterLimit=4,h.save(),h.fillStyle="#ffffff",h.beginPath(),h.arc(42.4,52.5,30.3,0,6.283185307179586,!0),h.closePath(),h.fill(),h.stroke(),h.restore(),h.save(),h.fillStyle=c.back,h.beginPath(),h.moveTo(71.624,44.496),h.bezierCurveTo(68.112,31.647,56.363,22.2,42.4,22.2),h.bezierCurveTo(25.665999999999997,22.2,12.099999999999998,35.765,12.099999999999998,52.5),h.bezierCurveTo(12.099999999999998,55.771,12.623999999999999,58.916,13.582999999999998,61.867000000000004),h.lineTo(71.624,44.496),h.closePath(),h.fill(),h.stroke(),h.restore(),c.front&&(h.save(),h.beginPath(),h.moveTo(76.917,38.393),h.bezierCurveTo(71.677,25.617,59.54900000000001,16.371000000000002,45.172,15.309000000000001),h.bezierCurveTo(47.57899999999999,22.559,50.918,33.862,52.501,44.894999999999996),h.bezierCurveTo(60.643,42.731,68.775,40.566,76.917,38.393),h.closePath(),h.fillStyle=c.front,h.fill(),h.stroke(),h.restore()),h.save(),h.beginPath(),h.moveTo(42.4,22.2),h.bezierCurveTo(59.134,22.2,72.7,35.765,72.7,52.5),h.bezierCurveTo(72.7,69.235,59.135,82.8,42.4,82.8),h.bezierCurveTo(25.665,82.8,12.1,69.234,12.1,52.5),h.bezierCurveTo(12.1,35.766000000000005,25.666,22.2,42.4,22.2),h.moveTo(42.4,15.2),h.bezierCurveTo(21.833,15.2,5.100000000000001,31.932,5.100000000000001,52.5),h.bezierCurveTo(5.100000000000001,73.068,21.832,89.8,42.4,89.8),h.bezierCurveTo(62.967999999999996,89.8,79.69999999999999,73.068,79.69999999999999,52.5),h.bezierCurveTo(79.69999999999999,31.932000000000002,62.968,15.2,42.4,15.2),h.lineTo(42.4,15.2),h.closePath(),h.fill(),h.stroke(),h.restore(),h.save(),h.beginPath(),h.moveTo(16.3,66.85),h.bezierCurveTo(41.8,60.148999999999994,67.2,53.449999999999996,92.601,46.648999999999994),h.bezierCurveTo(96.201,45.648999999999994,99.8,44.748999999999995,103.5,43.748999999999995),h.bezierCurveTo(111,41.748999999999995,107.8,30.148999999999994,100.3,32.148999999999994),h.bezierCurveTo(74.901,38.94899999999999,49.400999999999996,45.748999999999995,24,52.449),h.bezierCurveTo(20.4,53.449,16.8,54.349,13.101,55.349),h.bezierCurveTo(5.7,57.35,8.9,68.85,16.3,66.85),h.lineTo(16.3,66.85),h.closePath(),h.fill(),h.stroke(),h.restore()},o.setDirty=function(){n[this.versionName].dirty=!0},o.getBaseWidth=function(){return 115},o.getBaseHeight=function(){return 112},o.getDrawOffsetX=function(){return 2.2},o.getDrawOffsetY=function(){return 1},o.getScale=function(){return r},GameInventoryManager&&GameInventoryManager.register("forward_cap",e),void 0!==t.exports&&(t.exports&&(t.exports=t.exports=e),t.exports.Forward_Cap=e)}()},function(t,e,i){var s;!function(){if("performance"in window==0&&(window.performance={}),Date.now=Date.now||function(){return(new Date).getTime()},"now"in window.performance==0){var t=window.performance.timing&&window.performance.timing.navigationStart?window.performance.timing.navigationStart:Date.now();window.performance.now=function(){return Date.now()-t}}}();var n,r=r||(n=[],{getAll:function(){return n},removeAll:function(){n=[]},add:function(t){n.push(t)},remove:function(t){var e=n.indexOf(t);-1!==e&&n.splice(e,1)},update:function(t){if(0===n.length)return!1;var e=0;for(t=void 0!==t?t:window.performance.now();e<n.length;)n[e].update(t)?e++:n.splice(e,1);return!0}});r.Tween=function(t){var e=t,i={},s={},n={},o=1e3,a=0,h=!1,l=!1,c=!1,u=0,d=null,p=r.Easing.Linear.None,f=r.Interpolation.Linear,g=[],m=null,v=!1,y=null,w=null,x=null;for(var _ in t)i[_]=parseFloat(t[_],10);this.to=function(t,e){return void 0!==e&&(o=e),s=t,this},this.start=function(t){for(var o in r.add(this),l=!0,v=!1,d=void 0!==t?t:window.performance.now(),d+=u,s){if(s[o]instanceof Array){if(0===s[o].length)continue;s[o]=[e[o]].concat(s[o])}i[o]=e[o],i[o]instanceof Array==0&&(i[o]*=1),n[o]=i[o]||0}return this},this.stop=function(){return l?(r.remove(this),l=!1,null!==x&&x.call(e),this.stopChainedTweens(),this):this},this.stopChainedTweens=function(){for(var t=0,e=g.length;e>t;t++)g[t].stop()},this.delay=function(t){return u=t,this},this.repeat=function(t){return a=t,this},this.yoyo=function(t){return h=t,this},this.easing=function(t){return p=t,this},this.interpolation=function(t){return f=t,this},this.chain=function(){return g=arguments,this},this.onStart=function(t){return m=t,this},this.onUpdate=function(t){return y=t,this},this.onComplete=function(t){return w=t,this},this.onStop=function(t){return x=t,this},this.update=function(t){var r,l,x;if(d>t)return!0;for(r in!1===v&&(null!==m&&m.call(e),v=!0),x=p(l=(l=(t-d)/o)>1?1:l),s){var _=i[r]||0,b=s[r];b instanceof Array?e[r]=f(b,x):("string"==typeof b&&(b=_+parseFloat(b,10)),"number"==typeof b&&(e[r]=_+(b-_)*x))}if(null!==y&&y.call(e,x),1===l){if(a>0){for(r in isFinite(a)&&a--,n){if("string"==typeof s[r]&&(n[r]=n[r]+parseFloat(s[r],10)),h){var T=n[r];n[r]=s[r],s[r]=T}i[r]=n[r]}return h&&(c=!c),d=t+u,!0}null!==w&&w.call(e);for(var k=0,C=g.length;C>k;k++)g[k].start(d+o);return!1}return!0}},r.Easing={Linear:{None:function(t){return t}},Quadratic:{In:function(t){return t*t},Out:function(t){return t*(2-t)},InOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)}},Cubic:{In:function(t){return t*t*t},Out:function(t){return--t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)}},Quartic:{In:function(t){return t*t*t*t},Out:function(t){return 1- --t*t*t*t},InOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)}},Quintic:{In:function(t){return t*t*t*t*t},Out:function(t){return--t*t*t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)}},Sinusoidal:{In:function(t){return 1-Math.cos(t*Math.PI/2)},Out:function(t){return Math.sin(t*Math.PI/2)},InOut:function(t){return.5*(1-Math.cos(Math.PI*t))}},Exponential:{In:function(t){return 0===t?0:Math.pow(1024,t-1)},Out:function(t){return 1===t?1:1-Math.pow(2,-10*t)},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))}},Circular:{In:function(t){return 1-Math.sqrt(1-t*t)},Out:function(t){return Math.sqrt(1- --t*t)},InOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)}},Elastic:{In:function(t){var e,i=.1;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=.1):e=.4*Math.asin(1/i)/(2*Math.PI),-i*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/.4))},Out:function(t){var e,i=.1;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=.1):e=.4*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*t)*Math.sin(2*(t-e)*Math.PI/.4)+1)},InOut:function(t){var e,i=.1;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=.1):e=.4*Math.asin(1/i)/(2*Math.PI),(t*=2)<1?-.5*i*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/.4):i*Math.pow(2,-10*(t-=1))*Math.sin(2*(t-e)*Math.PI/.4)*.5+1)}},Back:{In:function(t){var e=1.70158;return t*t*((e+1)*t-e)},Out:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},InOut:function(t){var e=2.5949095;return(t*=2)<1?.5*t*t*((e+1)*t-e):.5*((t-=2)*t*((e+1)*t+e)+2)}},Bounce:{In:function(t){return 1-r.Easing.Bounce.Out(1-t)},Out:function(t){return 1/2.75>t?7.5625*t*t:2/2.75>t?7.5625*(t-=1.5/2.75)*t+.75:2.5/2.75>t?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},InOut:function(t){return.5>t?.5*r.Easing.Bounce.In(2*t):.5*r.Easing.Bounce.Out(2*t-1)+.5}}},r.Interpolation={Linear:function(t,e){var i=t.length-1,s=i*e,n=Math.floor(s),o=r.Interpolation.Utils.Linear;return 0>e?o(t[0],t[1],s):e>1?o(t[i],t[i-1],i-s):o(t[n],t[n+1>i?i:n+1],s-n)},Bezier:function(t,e){for(var i=0,s=t.length-1,n=Math.pow,o=r.Interpolation.Utils.Bernstein,a=0;s>=a;a++)i+=n(1-e,s-a)*n(e,a)*t[a]*o(s,a);return i},CatmullRom:function(t,e){var i=t.length-1,s=i*e,n=Math.floor(s),o=r.Interpolation.Utils.CatmullRom;return t[0]===t[i]?(0>e&&(n=Math.floor(s=i*(1+e))),o(t[(n-1+i)%i],t[n],t[(n+1)%i],t[(n+2)%i],s-n)):0>e?t[0]-(o(t[0],t[0],t[1],t[1],-s)-t[0]):e>1?t[i]-(o(t[i],t[i],t[i-1],t[i-1],s-i)-t[i]):o(t[n?n-1:0],t[n],t[n+1>i?i:n+1],t[n+2>i?i:n+2],s-n)},Utils:{Linear:function(t,e,i){return(e-t)*i+t},Bernstein:function(t,e){var i=r.Interpolation.Utils.Factorial;return i(t)/i(e)/i(t-e)},Factorial:function(){var t=[1];return function(e){var i=1;if(t[e])return t[e];for(var s=e;s>1;s--)i*=s;return t[e]=i,i}}(),CatmullRom:function(t,e,i,s,n){var r=.5*(i-t),o=.5*(s-e),a=n*n;return(2*e-2*i+r+o)*(n*a)+(-3*e+3*i-2*r-o)*a+r*n+e}}},void 0===(s=function(){return r}.apply(e,[]))||(t.exports=s)},function(t,e){function i(){this.start=null,this.end=null,this.verticies=[]}i.prototype={start:null,end:null,verticies:[],build:function(t){var e=t.pop();this.start=e.p1,this.end=e.p2,this.verticies.push(e);for(var i=t.length-1;i>=0;i--){var s=t[i],n=s.p1,r=s.p2;this.start.x===r.x&&this.start.y===r.y?(this.verticies.unshift(s),this.start=s.p1,t.splice(i,1)):this.end.x===n.x&&this.end.y===n.y&&(this.verticies.push(s),this.end=s.p2,t.splice(i,1))}}},t.exports=i},function(t,e,i){var s=i(37),n=i(38);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[t.i,n,""]]);var r={insert:"head",singleton:!1};s(n,r);t.exports=n.locals||{}},function(t,e,i){"use strict";var s,n=function(){return void 0===s&&(s=Boolean(window&&document&&document.all&&!window.atob)),s},r=function(){var t={};return function(e){if(void 0===t[e]){var i=document.querySelector(e);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(t){i=null}t[e]=i}return t[e]}}(),o=[];function a(t){for(var e=-1,i=0;i<o.length;i++)if(o[i].identifier===t){e=i;break}return e}function h(t,e){for(var i={},s=[],n=0;n<t.length;n++){var r=t[n],h=e.base?r[0]+e.base:r[0],l=i[h]||0,c="".concat(h," ").concat(l);i[h]=l+1;var u=a(c),d={css:r[1],media:r[2],sourceMap:r[3]};-1!==u?(o[u].references++,o[u].updater(d)):o.push({identifier:c,updater:m(d,e),references:1}),s.push(c)}return s}function l(t){var e=document.createElement("style"),s=t.attributes||{};if(void 0===s.nonce){var n=i.nc;n&&(s.nonce=n)}if(Object.keys(s).forEach((function(t){e.setAttribute(t,s[t])})),"function"==typeof t.insert)t.insert(e);else{var o=r(t.insert||"head");if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(e)}return e}var c,u=(c=[],function(t,e){return c[t]=e,c.filter(Boolean).join("\n")});function d(t,e,i,s){var n=i?"":s.media?"@media ".concat(s.media," {").concat(s.css,"}"):s.css;if(t.styleSheet)t.styleSheet.cssText=u(e,n);else{var r=document.createTextNode(n),o=t.childNodes;o[e]&&t.removeChild(o[e]),o.length?t.insertBefore(r,o[e]):t.appendChild(r)}}function p(t,e,i){var s=i.css,n=i.media,r=i.sourceMap;if(n?t.setAttribute("media",n):t.removeAttribute("media"),r&&btoa&&(s+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(r))))," */")),t.styleSheet)t.styleSheet.cssText=s;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(s))}}var f=null,g=0;function m(t,e){var i,s,n;if(e.singleton){var r=g++;i=f||(f=l(e)),s=d.bind(null,i,r,!1),n=d.bind(null,i,r,!0)}else i=l(e),s=p.bind(null,i,e),n=function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(i)};return s(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;s(t=e)}else n()}}t.exports=function(t,e){(e=e||{}).singleton||"boolean"==typeof e.singleton||(e.singleton=n());var i=h(t=t||[],e);return function(t){if(t=t||[],"[object Array]"===Object.prototype.toString.call(t)){for(var s=0;s<i.length;s++){var n=a(i[s]);o[n].references--}for(var r=h(t,e),l=0;l<i.length;l++){var c=a(i[l]);0===o[c].references&&(o[c].updater(),o.splice(c,1))}i=r}}}},function(t,e,i){(e=i(39)(!1)).push([t.i,".mod-menu-container {\r\n position: fixed;\r\n left: 0;\r\n bottom: 0;\r\n z-index: 11;\r\n background-color: white;\r\n border: 1px solid black;\r\n min-height: 250px;\r\n\r\n user-select: none; /* supported by Chrome and Opera */\r\n -webkit-user-select: none; /* Safari */\r\n -khtml-user-select: none; /* Konqueror HTML */\r\n -moz-user-select: none; /* Firefox */\r\n -ms-user-select: none; /* Internet Explorer/Edge */\r\n}\r\n\r\n.mod-v-seperator {\r\n background-color: black;\r\n margin-top: 6px;\r\n margin-bottom: 6px;\r\n width: 1px;\r\n}\r\n\r\n.mod-list-container {\r\n display: grid;\r\n grid-template-columns: auto auto auto;\r\n}\r\n\r\n.mod-section-title {\r\n font-size: 13pt;\r\n font-weight: bold;\r\n text-align: center;\r\n padding-bottom: 10px;\r\n padding-left: 14px;\r\n padding-right: 14px;\r\n}\r\n\r\n.mod-menu {\r\n padding-top: 14px;\r\n padding-bottom: 14px;\r\n}\r\n\r\n.mod-menu-option {\r\n padding-left: 14px;\r\n padding-right: 14px;\r\n font-size: 16px;\r\n font-family: roboto_medium, Arial, Helvetica, sans-serif;\r\n color: #1B5264;\r\n}\r\n.mod-menu-option:hover, .mod-menu-option.opened {\r\n background-color: rgb(236, 236, 236);\r\n}\r\n\r\n.mod-clickable:hover {\r\n cursor: pointer;\r\n}\r\n.mod-clickable.mod-disabled:hover {\r\n cursor: auto;\r\n background-color: unset;\r\n}\r\n\r\n.mod-description-container {\r\n max-width: 200px;\r\n min-width: 200px;\r\n padding: 14px;\r\n}\r\n\r\n.mod-setting-description {\r\n font-size: 13px;\r\n}\r\n\r\n.mod-title {\r\n text-align: center;\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n cursor: pointer;\r\n}\r\n\r\n.invisible {\r\n display: none;\r\n}\r\n\r\n.mod-menu-container input {\r\n height: auto;\r\n}\r\n\r\n\r\n\r\n.mod-icon {\r\n position: fixed;\r\n background-size: 32px 32px;\r\n margin: 7px;\r\n z-index: 10;\r\n width: 32px;\r\n height: 32px;\r\n bottom: 0;\r\n left: 0;\r\n}\r\n.mod-icon:hover {\r\n cursor: pointer;\r\n}\r\n\r\n\r\n.mod-update-notification {\r\n width: 100%;\r\n height: 50px;\r\n background-color: rgb(43, 184, 43);\r\n color: white;\r\n border: 2px solid rgb(3, 141, 3);\r\n position: fixed;\r\n top: 0;\r\n z-index: 1002;\r\n text-align: center;\r\n line-height: 46px;\r\n cursor: pointer;\r\n}\r\n\r\n.mod-dismiss-button {\r\n height: 30px;\r\n background-color: rgb(39, 206, 53);\r\n border: none;\r\n border-radius: 4px;\r\n color: white;\r\n}\r\n.mod-dismiss-button:hover {\r\n background-color: rgb(20, 167, 32);\r\n}\r\n\r\n\r\n\r\n\r\n\r\n.shade-indicator {\r\n width: 6px;\r\n height: 6px;\r\n border: 2px solid black;\r\n box-sizing: unset;\r\n border-radius: 6px;\r\n pointer-events: none;\r\n \r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n }\r\n \r\n.shade-picker-container {\r\n position: relative;\r\n}\r\n.shade-picker-container canvas {\r\n cursor: pointer;\r\n}\r\n\r\n\r\n.hue-picker-container {\r\n position: relative;\r\n margin-left: 10px;\r\n}\r\n.hue-picker-container canvas {\r\n cursor: pointer;\r\n}\r\n\r\n.hue-indicator {\r\n position: absolute;\r\n box-sizing: unset;\r\n width: 28px;\r\n height: 6px;\r\n left: -4px;\r\n border: 1px solid black;\r\n border-left: none;\r\n border-right: none;\r\n pointer-events: none;\r\n}\r\n\r\n.color-picker-container {\r\n padding: 10px;\r\n width: fit-content;\r\n}\r\n\r\n.color-picker-container .graphic-container {\r\n display: flex;\r\n width: fit-content;\r\n margin-bottom: 10px;\r\n}\r\n\r\nbody {\r\n margin: 0;\r\n}\r\n\r\n.textbox-container {\r\n display: flex;\r\n}\r\n\r\n.color-box {\r\n flex: 1;\r\n width: 0;\r\n padding: 2px;\r\n margin-left: 10px;\r\n font-size: 13px;\r\n text-align: center;\r\n}\r\n\r\n.red-box {\r\n margin-left: 0;\r\n border-bottom: 4px solid red;\r\n}\r\n\r\n.green-box {\r\n border-bottom: 4px solid green;\r\n}\r\n\r\n.blue-box {\r\n border-bottom: 4px solid blue;\r\n}",""]),t.exports=e},function(t,e,i){"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var i=function(t,e){var i=t[1]||"",s=t[3];if(!s)return i;if(e&&"function"==typeof btoa){var n=(o=s,a=btoa(unescape(encodeURIComponent(JSON.stringify(o)))),h="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),"/*# ".concat(h," */")),r=s.sources.map((function(t){return"/*# sourceURL=".concat(s.sourceRoot||"").concat(t," */")}));return[i].concat(r).concat([n]).join("\n")}var o,a,h;return[i].join("\n")}(e,t);return e[2]?"@media ".concat(e[2]," {").concat(i,"}"):i})).join("")},e.i=function(t,i,s){"string"==typeof t&&(t=[[null,t,""]]);var n={};if(s)for(var r=0;r<this.length;r++){var o=this[r][0];null!=o&&(n[o]=!0)}for(var a=0;a<t.length;a++){var h=[].concat(t[a]);s&&n[h[0]]||(i&&(h[2]?h[2]="".concat(i," and ").concat(h[2]):h[2]=i),e.push(h))}},e}},function(t,e,s){"use strict";s.r(e);s(27),s(28);var n=s(0),r=s(2);class o{constructor(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}setMaxListeners(t){if("number"!=typeof t||0>t||isNaN(t))throw TypeError("n must be a positive number");return this._maxListeners=t,this}emit(t){var e,i,s,n,r,o;if(this._events||(this._events={}),"error"===t&&(!this._events.error||h(this._events.error)&&!this._events.error.length)){if((e=arguments[1])instanceof Error)throw e;throw TypeError('Uncaught, unspecified "error" event.')}if(l(i=this._events[t]))return!1;if(a(i))switch(arguments.length){case 1:i.call(this);break;case 2:i.call(this,arguments[1]);break;case 3:i.call(this,arguments[1],arguments[2]);break;default:for(s=arguments.length,n=new Array(s-1),r=1;s>r;r++)n[r-1]=arguments[r];i.apply(this,n)}else if(h(i)){for(s=arguments.length,n=new Array(s-1),r=1;s>r;r++)n[r-1]=arguments[r];for(s=(o=i.slice()).length,r=0;s>r;r++)o[r].apply(this,n)}return!0}addListener(t,e){var i;if(!a(e))throw TypeError("listener must be a function");(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",t,a(e.listener)?e.listener:e),this._events[t]?h(this._events[t])?this._events[t].push(e):this._events[t]=[this._events[t],e]:this._events[t]=e,h(this._events[t])&&!this._events[t].warned)&&((i=l(this._maxListeners)?o.defaultMaxListeners:this._maxListeners)&&i>0&&this._events[t].length>i&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace()));return this}once(t,e){function i(){this.removeListener(t,i),s||(s=!0,e.apply(this,arguments))}if(!a(e))throw TypeError("listener must be a function");var s=!1;return i.listener=e,this.on(t,i),this}removeListener(t,e){var i,s,n,r;if(!a(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(n=(i=this._events[t]).length,s=-1,i===e||a(i.listener)&&i.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(h(i)){for(r=n;r-- >0;)if(i[r]===e||i[r].listener&&i[r].listener===e){s=r;break}if(0>s)return this;1===i.length?(i.length=0,delete this._events[t]):i.splice(s,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this}removeAllListeners(t){var e,i;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(a(i=this._events[t]))this.removeListener(t,i);else for(;i.length;)this.removeListener(t,i[i.length-1]);return delete this._events[t],this}listeners(t){return this._events&&this._events[t]?a(this._events[t])?[this._events[t]]:this._events[t].slice():[]}static listenerCount(t,e){return t._events&&t._events[e]?a(t._events[e])?1:t._events[e].length:0}}function a(t){return"function"==typeof t}function h(t){return"object"==typeof t&&null!==t}function l(t){return void 0===t}o.prototype._events=void 0,o.prototype._maxListeners=void 0,o.prototype.on=o.prototype.addListener,o.defaultMaxListeners=10;var c=o;const u=Math.round;class d extends c{constructor(t){super(),this.scene=t,this.enabled=!0,this.touch=this.getTouchObject(),this.touch.old=this.getTouchObject(),this.secondaryTouch=this.getTouchObject(),this.secondaryTouch.old=this.getTouchObject(),this.initAnalytics(),this.bindToMouseEvents(),this.updateCallback=!1}contextMenuHandler(t){return t.stopPropagation(),t.preventDefault(),!1}initAnalytics(){this.analytics={clicks:0}}getTouchObject(){return{id:null,down:!1,press:!1,release:!1,pos:new n.default(0,0),real:new n.default(0,0),type:1}}bindToMouseEvents(){let t=this.scene.game.stage,e=this.scene.game.canvas,i=this.onMouseMove.bind(this),s=this.onMouseDown.bind(this),n=this.onMouseUp.bind(this);t.addEventListener("stagemousemove",i),t.addEventListener("stagemousedown",s),t.addEventListener("stagemouseup",n),this.mouseMoveListener=i,this.mouseDownListener=s,this.mouseUpListener=n;let o=Object(r.throttle)(this.onMouseWheel,0);e.addEventListener("mousewheel",o.bind(this)),e.addEventListener("wheel",o.bind(this)),e.addEventListener("DOMMouseScroll",o.bind(this)),this.mouseWheelListener=o}onMouseDown(t){this.analytics.clicks++,2===t.nativeEvent.button?this.secondaryTouch.down||(this.updatePosition(t,this.secondaryTouch),this.secondaryTouch.down=!0):this.touch.down||(this.updatePosition(t,this.touch),this.touch.down=!0)}disableContextMenu(){this.scene.game.canvas.oncontextmenu=function(){return!1}}onMouseUp(t){2===t.nativeEvent.button?this.secondaryTouch.down&&(this.updatePosition(t,this.secondaryTouch),this.secondaryTouch.down=!1):this.touch.down&&(this.updatePosition(t,this.touch),this.touch.down=!1)}updatePosition(t,e){e.id=t.pointerID,e.type=t.nativeEvent.button;const i=e.pos;i.x=t.rawX,i.y=t.rawY,this.updateRealPosition(e)}updateRealPosition(t){let e=t.pos,i=t.real,s=this.scene,n=s.screen,r=s.camera,o=n.center,a=r.position,h=(e.x-o.x)/r.zoom+a.x,l=(e.y-o.y)/r.zoom+a.y;i.x=u(h),i.y=u(l);let c=this.scene.settings;if(this.scene.toolHandler.options.grid){let t=c.toolHandler.gridSize;i.x=u(i.x/t)*t,i.y=u(i.y/t)*t}}onMouseWheel(t){return(t=window.event||t).preventDefault(),t.stopPropagation(),this.wheel=-Math.max(-1,Math.min(1,t.deltaY||-t.detail)),!1}onMouseMove(t){this.updatePosition(t,this.touch),this.updatePosition(t,this.secondaryTouch)}update(){this.enabled&&(this.updateTouch(this.touch),this.updateTouch(this.secondaryTouch),this.updateWheel())}updateTouch(t){let e=t.old,i=t.pos,s=t.real,n=t.down;e.pos.x=i.x,e.pos.y=i.y,e.real.x=s.x,e.real.y=s.y,!e.down&&n&&(t.press=!0),e.down&&!n&&(t.release=!0),e.press&&(t.press=!1),e.release&&(t.release=!1),this.updateRealPosition(t),e.down=t.down,e.press=t.press,e.release=t.release}updateWheel(){this.mousewheel=this.wheel,this.wheel=!1}close(){let t=this.scene.game.stage,e=this.scene.game.canvas;t.removeAllEventListeners(),e.removeEventListener("mousewheel",this.mouseWheelListener),e.removeEventListener("DOMMouseScroll",this.mouseWheelListener),this.touches=null,this.touch=null,this.scene=null,this.wheel=null,this.mouseMoveListener=null,this.mouseDownListener=null,this.mouseUpListener=null}}const p=d.prototype;p.scene=null,p.touch=null,p.touches=[],p.wheel=!1,p.mousewheel=!1,p.mouseMoveListener=null,p.mouseUpListener=null,p.mouseDownListener=null,p.throttledMouseWheel=null,p.analytics=null;var f=d;const g=Math.round,m=Math.abs,v=Math.sqrt,y=Math.pow;class w{constructor(t){let e=t.settings;this.settings=e,this.scene=t,this.zoom=e.cameraStartZoom*t.game.pixelRatio,this.desiredZoom=e.cameraStartZoom*t.game.pixelRatio,this.zooming=!1,this.position=new n.default(0,0),this.zoomPercentage=this.getZoomAsPercentage(),this.zoomPoint=!1}focusOnNextPlayer(){this.focusIndex=(this.focusIndex+1)%this.scene.playerManager.getPlayerCount(),this.focusOnPlayer()}focusOnPlayer(){let t=this.scene,e=t.playerManager;e.getPlayerCount()<=this.focusIndex&&(this.focusIndex=0);let i=e.getPlayerByIndex(this.focusIndex);if(this.playerFocus!==i){let e=this.playerFocus;this.playerFocus=i,t.vehicleTimer.setPlayer(i),e?i.getDistanceBetweenPlayers(e)>1500&&this.fastforward():this.fastforward()}}focusOnMainPlayer(){0===this.focusIndex&&this.playerFocus||(this.focusIndex=0,this.focusOnPlayer())}update(){if(this.playerFocus){let t=this.playerFocus.getActiveVehicle().focalPoint,e=this.position,i=3;v(y(t.pos.x-e.x,2)+y(t.pos.y-e.y,2))>1500&&(i=1),e.x+=(t.pos.x-e.x)/i,e.y+=(t.pos.y-e.y)/i}}updateZoom(){this.zoom!==this.desiredZoom&&(this.scene.loading=!0,this._performZoom(),this.zoom===this.desiredZoom&&this.zoomComplete())}zoomToPoint(t){let e=this.scene.screen,i=this.position,s=this.zoomPoint,n=e.toReal(s.x,"x"),r=e.toReal(s.y,"y"),o=s.x/e.width,a=s.y/e.height,h=e.width/t,l=e.height/t;i.x=n-h*o+h/2,i.y=r-l*a+l/2}_performZoom(){let t=this.zoom,e=this.desiredZoom,i=e-t;t+=i/3,m(i)<.05&&(t=e),this.zoomPoint&&this.zoomToPoint(t),this.zoom=t}zoomComplete(){this.scene.redraw(),this.zooming=!1,this.scene.loading=!1}setZoom(t,e){let i=this.scene;this.desiredZoom=g(10*t)/10*i.game.pixelRatio,this.zooming=!0,this.desiredZoom===this.zoom&&(this.zooming=!1,this.scene.state.loading=!1),this.zoomPoint=!1,null===this.playerFocus&&e&&(this.zoomPoint=e),this.zoomPercentage=this.getZoomAsPercentage(),i.stateChanged()}resetZoom(){this.setZoom(this.settings.cameraStartZoom)}getZoomAsPercentage(){return Math.round(this.desiredZoom/this.scene.game.pixelRatio/this.scene.settings.cameraStartZoom*100)}increaseZoom(){let t=this.scene.settings,e=this.scene.game.pixelRatio,i=this.desiredZoom+2*t.cameraSensitivity*e,s=t.cameraZoomMax;this.setZoom(i/e),this.desiredZoom>s*e&&this.setZoom(s)}decreaseZoom(){let t=this.scene.settings,e=this.scene.game.pixelRatio,i=this.desiredZoom-2*t.cameraSensitivity*e,s=t.cameraZoomMin;this.setZoom(i/e),this.desiredZoom<s*e&&this.setZoom(s)}unfocus(){this.playerFocus=null,this.scene.vehicleTimer.removePlayer()}fastforward(){this.playerFocus&&this.position.equ(this.playerFocus.getActiveVehicle().focalPoint.pos)}close(){this.zoom=null,this.scene=null,this.position=null,this.playerFocus=null}}const x=w.prototype;x.settings=null,x.scene=null,x.zoom=1,x.position=null,x.desiredZoom=1,x.zoomPercentage=0,x.focusIndex=0,x.playerFocus=null;var _=w;class b{constructor(t){this.scene=t,this.game=t.game,this.size=new n.default(0,0),this.center=new n.default(0,0),this.setScreen()}setScreen(){let t=this.game.width,e=this.game.height;this.width=t,this.height=e,this.size.x=t,this.size.y=e,this.center.x=t/2,this.center.y=e/2}update(){var t=this.game;t.width===this.width&&t.height===this.height||this.setScreen()}realToScreen(t,e){let i=this.scene,s=i.camera;return(t-s.position[e])*s.zoom+i.screen.center[e]}toReal(t,e){let i=this.scene,s=i.camera;return(t-i.screen.center[e])/s.zoom+s.position[e]}close(){this.width=null,this.height=null,this.center=null,this.size=null,this.game=null,this.scene=null}}const T=b.prototype;T.game=null,T.scene=null,T.size=null,T.center=null,T.width=0,T.height=0;var k=b;class C{constructor(t){this.scene=t,this.tickDownButtons={},this.previousTickDownButtons={},this.downButtons={},this.keymap={},this.records={},this.numberOfKeysDown=0,this.tickNumberOfKeysDown=0}listen(){document.onkeydown=this.handleButtonDown.bind(this),document.onkeyup=this.handleButtonUp.bind(this),window.onblur=()=>{this.downButtons={}}}unlisten(){this.downButtons={},document.onkeydown=function(){},document.onkeyup=function(){},window.onblur=()=>{}}semiUnlisten(){document.onkeydown=(t=>{this.handleButtonDown(t,!0)}).bind(this),document.onkeyup=this.handleButtonUp.bind(this)}pause(){this.paused=!0}unpause(){this.paused=!1}recordKeys(t){this.keysToRecord=t,this.recording=!0}loadPlayback(t,e){this.keysToPlay=e,this.playback=t,this.replaying=!0}setKeyMap(t){let e={};for(var i in t)if(t[i]instanceof Array)for(var s in t[i])e[t[i][s]]=i;else e[t[i]]=i;this.keymap=e}handleButtonDown(t,e=!1){let i=this.getInternalCode(t.keyCode);"string"!=typeof i||e||t.preventDefault(),e?"INPUT"===document.activeElement.tagName||"string"!=typeof i&&16!==i||(t.preventDefault(),this.setButtonDown(i)):this.setButtonDown(i)}handleButtonUp(t){let e=this.getInternalCode(t.keyCode);"string"==typeof e&&t.preventDefault(),this.setButtonUp(e)}getInternalCode(t){return this.keymap[t]||t}setButtonsDown(t){for(let e of t)this.setButtonDown(e)}setButtonUp(t){this.downButtons[t]&&(this.onButtonUp&&this.onButtonUp(t),this.downButtons[t]=!1,this.numberOfKeysDown--)}setButtonDown(t,e){this.downButtons[t]||(this.onButtonDown&&this.onButtonDown(t),this.downButtons[t]=e||!0,this.numberOfKeysDown++)}isButtonDown(t){let e=!1,i=this.tickDownButtons[t];return(i>0||1===i)&&(e=!0),e}getButtonDownOccurances(t){let e=0;if(this.isButtonDown(t)){e=1;let i=this.tickDownButtons[t];!0!==i&&(e=i)}return e}getDownButtons(){var t=[];for(var e in this.tickDownButtons)this.tickDownButtons[e]&&t.push(e);return t}reset(t){(this.replaying||t)&&(this.downButtons={}),this.tickDownButtons={},this.previousTickDownButtons={},this.records={}}update(){this.scene,this.replaying&&this.updatePlayback(),this.previousTickDownButtons=Object(r.merge)({},this.tickDownButtons),this.tickDownButtons=Object(r.merge)({},this.downButtons),this.tickNumberOfKeysDown=this.numberOfKeysDown,this.recording&&this.updateRecording()}areKeysDown(){for(var t in this.downButtons)if(!0===this.downButtons[t])return!0;return!1}updatePlayback(){let t=this.playback,e=this.scene.ticks;for(let i of this.keysToPlay){let s=i+"_up",n=i+"_down";void 0!==t[n]&&void 0!==t[n][e]&&this.setButtonDown(i,t[n][e]),void 0!==t[s]&&void 0!==t[s][e]&&this.setButtonUp(i)}}updateRecording(){let t=this.scene.ticks,e=this.records,i=this.tickDownButtons,s=this.previousTickDownButtons;for(let o of this.keysToRecord)if(void 0!==i[o]){let a=i[o];if(a!==(s[o]||!1)){var n=o+"_down",r=o+"_up";a&&(r=n),e[r]||(e[r]=[]),!a&&e[n]&&e[n].includes(t)&&t++,e[r].push(t)}}}buttonWasRecentlyDown(t){var e=this.records;this.replaying&&(e=this.playback);let i=t+"_down",s=!1;if(e[i]){let t=this.scene.ticks,n=e[i],r=-1;r=this.replaying?void 0!==n[t]:n.indexOf(t),-1!==r&&(s=!0)}return s}getReplayString(){return JSON.stringify(this.records)}encodeReplayString(t){let e={version:this.scene.settings.replayVersion};for(var i in t){var s=t[i];for(var n in e[i]="",s){var r=s[n];e[i]+=r.toString(32)+" "}}return e}clone(){let t=new C(this.scene),e=["tickDownButtons","previousTickDownButtons","downButtons","paused","keymap","records","keysToRecord","keysToPlay","recording","playback","numberOfKeysDown","tickNumberOfKeysDown","replaying"];for(let i of e)t[i]=this[i];return t}close(){this.unlisten(),this.handleButtonUp=null,this.handleButtonDown=null,this.onButtonDown=null,this.onButtonUp=null,this.scene=null,this.tickDownButtons=null,this.downButtons=null,this.keymap=null,this.records=null,this.keysToRecord=null}}const S=C.prototype;S.tickDownButtons=null,S.previousTickDownButtons=null,S.downButtons=null,S.paused=!1,S.keymap=null,S.records=null,S.keysToRecord=null,S.keysToPlay=null,S.recording=!1,S.playback=null,S.numberOfKeysDown=0,S.tickNumberOfKeysDown=0,S.replaying=!1;var P=C;class M{constructor(){}init(t,e){this.pos=new n.default,this.old=new n.default,this.vel=new n.default(0,0),this.drawPos=new n.default(0,0),this.radius=10,this.friction=0,this.parent=e,this.collide=!0,this.contact=!1,this.scene=e.scene,this.pos.equ(t),this.old.equ(t)}drive(t,e){let i=-(t*this.vel.x+e*this.vel.y)*this.friction;this.pos.x+=t*i,this.pos.y+=e*i,this.contact=!0}update(){let t=this.vel,e=this.parent.gravity;t.inc(e),0===e.x&&0===e.y||t.factorSelf(.99),this.pos.inc(this.vel),this.contact=!1,this.collide&&this.scene.track.collide(this),t.equ(this.pos.sub(this.old)),this.old.equ(this.pos)}draw(){let t=this.pos.toScreen(this.scene),e=this.scene.game.canvas.getContext("2d"),i=this.scene.camera.zoom;e.beginPath(),e.fillStyle="rgba(0,0,0,1)",e.arc(t.x,t.y,this.radius*i,0,2*Math.PI,!1),e.fill(),e.closePath()}}const D=M.prototype;D.pos=null,D.old=null,D.vel=null,D.parent=null,D.radius=0,D.friction=0,D.collide=!1,D.contact=!1,D.scene=null,D.drawPos=null;var E=M;const A=Math.random,L=Math.cos,I=Math.sin,O=[1,.7,.8,.9,.5,1,.7,1];class z extends E{constructor(t,e,i){super(),super.init(t,e),this.color=i,this.pos.x=t.x+5*(A()-A()),this.pos.y=t.y+5*(A()-A()),this.old.x=this.pos.x,this.old.y=this.pos.y,this.vel.y=11*(A()-A()),this.vel.x=11*(A()-A()),this.radius=2*A()*5,this.angle=6.2*A(),this.speed=A()-A(),this.friction=.05}drive(t,e){let i=this.vel,s=this.pos;this.speed=(t*i.x+e*i.y)/this.radius,this.angle+=this.speed;let n=-(t*i.x+e*i.y)*this.friction;s.x+=t*n,s.y+=e*n;let r=-e,o=t,a=.8*(r*i.x+o*i.y);this.old.x+=r*a,this.old.y+=o*a}update(){this.angle+=this.speed,super.update()}draw(){let t=this.scene.screen,e=this.scene.camera,i=t.realToScreen(this.pos.x,"x"),s=t.realToScreen(this.pos.y,"y"),n=e.zoom,r=this.angle,o=O[0]*n*this.radius,a=i+o*L(r),h=s+o*I(r),l=this.scene.game.canvas.getContext("2d");l.lineWidth=1*n,l.strokeStyle="#000000",l.beginPath(),l.moveTo(a,h),l.fillStyle=this.color;for(let t=1;t<O.length;t++)o=O[t-1]*n*this.radius,a=i+o*L(r+6.283*t/8),h=s+o*I(r+6.283*t/8),l.lineTo(a,h);l.fill(),l.stroke()}}z.prototype.color="black";var j=z;const B=Math.random,F=Math.cos,R=Math.sin;class W{constructor(t,e){this.time=20,this.gravity=new n.default(0,.3),this.scene=e,this.createMasses(t),this.positionX=t.x,this.positionY=t.y}draw(t){let e=this.time,i=this.positionX,s=this.positionY,n=this.scene.camera.zoom,r=this.scene.screen,o=this.scene.game.canvas.getContext("2d");if(o.globalAlpha=t,e>0){e-=10;let t=r.realToScreen(i,"x"),a=r.realToScreen(s,"y"),h=6.2*B(),l=e*n,c=t+l*F(h),u=a+l*R(h);o.lineWidth=0,o.strokeStyle="black",o.beginPath(),o.moveTo(c,u),o.fillStyle="black";for(let i=0;i<16;i++)l=(e+30*B())*n,c=t+l*F(h+6.283*i/16),u=a+l*R(h+6.283*i/16),o.lineTo(c,u);o.fill(),o.stroke()}for(let t of this.masses)t.draw();o.globalAlpha=1,this.time=e}createMasses(t){this.masses=[],this.masses.push(new j(t,this,"#000000")),this.masses.push(new j(t,this,"#000000")),this.masses.push(new j(t,this,"#000000")),this.masses.push(new j(t,this,"#000000")),this.masses.push(new j(t,this,"#000000")),this.masses.push(new j(t,this,"#000000")),this.masses.push(new j(t,this,"#000000"))}update(){for(let t of this.masses)t.update()}}const V=W.prototype;V.complete=!1,V.time=0,V.powerupsEnabled=!1;var H=W;var N=class{constructor(t,e,i){this.offset=t.clone(),this.xBasis=e.clone(),this.yBasis=i.clone()}transform(t,e,i){return t instanceof n.default&&(e=t.y,t=t.x,i=e),i=i||this.offset,new n.default(i.x+this.xBasis.x*t+this.yBasis.x*e,i.y+this.xBasis.y*t+this.yBasis.y*e)}};class U{constructor(t,e,i){this.m1=t,this.m2=e,this.parent=i,this.lrest=40,this.leff=40,this.dampConstant=.5,this.springConstant=.7}swap(){let t=new n.default,e=this.m1,i=this.m2;t.equ(e.pos),e.pos.equ(i.pos),i.pos.equ(t),t.equ(e.old),e.old.equ(i.old),i.old.equ(t),t.equ(e.vel),e.vel.equ(i.vel),i.vel.equ(t);let s=e.angle;e.angle=i.angle,i.angle=s}update(){let t=this.m1,e=this.m2,i=t.pos,s=e.pos;t.vel,e.vel;if(s.sub(i).len()>=1){var r=new n.default(0,0),o=this.m1,a=this.m2,h=o.pos,l=a.pos,c=o.vel,u=a.vel;r.x=l.x-h.x,r.y=l.y-h.y;var d=r.len();if(!(1>d)){var p=1/d;r.x*=p,r.y*=p;var f=(d-this.leff)*this.springConstant,g={x:r.x*f,y:r.y*f},m=u.x-c.x,v=u.y-c.y,y=(m*r.x+v*r.y)*this.dampConstant,w=r.x*y,x=r.y*y;g.x+=w,g.y+=x,u.x+=-g.x,u.y+=-g.y,c.x+=g.x,c.y+=g.y}}}rotate(t){let e=this.m1,i=this.m2,s=i.pos.x-e.pos.x,n=-(i.pos.y-e.pos.y)/this.leff,r=s/this.leff;e.pos.x+=n*t,e.pos.y+=r*t,i.pos.x+=-n*t,i.pos.y+=-r*t}contract(t,e){this.leff+=(this.lrest-t-this.leff)/e}setMasses(t,e){this.m1=t,this.m2=e}}const q=U.prototype;q.m1=null,q.m2=null,q.parent=null,q.lrest=40,q.leff=40,q.dampConstant=0,q.springConstant=0;var G=U;const Y=Math.abs,X=Math.round;var K=class{constructor(){}init(t){this.player=t,this.scene=t._scene,this.gamepad=t._gamepad,this.settings=t._settings,this.gravity=new n.default(0,.3),this.complete=!1,this.alive=!0,this.crashed=!1,this.dir=1,this.ghost=!1,this.ragdoll=!1,this.explosion=!1,this.speed=0,this.powerupsEnabled=!0,this.ignore=!1,this.createCosmetics()}explode(){this.ignore||this.scene.sound.play("bomb_sound",1),this.explosion=new H(this.masses[0].pos,this.scene),this.dead()}createCosmetics(){this.cosmetics=this.player._user.cosmetics}updateSpeed(){this.speed=Y(X(this.focalPoint.vel.x+this.focalPoint.vel.y))}close(){this.scene=null,this.settings=null,this.gravity=null,this.speed=null,this.cosmetics=null,this.explosion=null,this.ragdoll=null,this.ghost=null,this.crashed=null,this.alive=null,this.gamepad=null}dead(){this.stopSounds(),this.ignore||this.player.dead(),this.crashed=!0,this.alive=!1}moveVehicle(t,e){for(let i of this.masses)i.pos.x+=t,i.pos.y+=e,i.old.x+=t,i.old.y+=e}stopSounds(){}};class Z extends E{constructor(t,e){super(),this.init(t,e),this.motor=0,this.brake=!1,this.angle=0,this.speed=0,this.rotationSpeed=0}drive(t,e){let i=this.pos,s=this.motor*this.parent.dir,n=s*t,r=s*e;if(i.x+=n,i.y+=r,this.brake){let s=.3*-(t*this.vel.x+e*this.vel.y),n=t*s,r=e*s;i.x+=n,i.y+=r}this.speed=(t*this.vel.x+e*this.vel.y)/this.radius,this.rotationSpeed=this.speed,this.angle+=this.speed,this.contact=!0}update(){let t=this.parent.gravity,e=this.pos,i=this.old,s=this.vel;s.inc(t),0===t.x&&0===t.y||s.factorSelf(.99),e.inc(s),this.contact=!1,this.collide&&this.scene.track.collide(this),s.x=e.x-i.x,s.y=e.y-i.y,this.old.equ(this.pos),this.rotationSpeed=.999*this.rotationSpeed}}const J=Z.prototype;J.motor=0,J.brake=!1,J.angle=0,J.speed=0;var Q=Z;var tt=class extends j{constructor(t,e,i){super(t,i,"#000"),this.pos.x=t.x,this.pos.y=t.y,this.old.x=this.pos.x,this.old.y=this.pos.y,this.vel.x=e.x,this.vel.y=e.y,this.radius=7,this.angle=6.2*Math.random(),this.speed=1*Math.random()-1*Math.random(),this.friction=.05}};function et(t){function e(t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?6*t:t<.5?1:t<2/3?6*(2/3-t):0}return[255*e(t+1/3),255*e(t),255*e(t-1/3)]}const it=t=>`rgb(${t[0]}, ${t[1]}, ${t[2]})`,st=t=>`rgba(${t[0]}, ${t[1]}, ${t[2]}, ${t[3]})`;var nt=Math.atan2;class rt extends K{constructor(t,e){super(),this.parent=e;let i=[],s=[],r=new n.default(0,0),o=new E,a=new E,h=new E,l=new E,c=new E,u=new E,d=new E,p=new E,f=new E,g=new E;o.init(r,e),a.init(r,e),h.init(r,e),l.init(r,e),c.init(r,e),u.init(r,e),d.init(r,e),p.init(r,e),f.init(r,e),g.init(r,e),i.push(o),i.push(a),i.push(h),i.push(l),i.push(c),i.push(u),i.push(d),i.push(p),i.push(f),i.push(g),s.push(new G(o,a,this)),s.push(new G(o,h,this)),s.push(new G(h,c,this)),s.push(new G(o,l,this)),s.push(new G(l,u,this)),s.push(new G(a,d,this)),s.push(new G(d,f,this)),s.push(new G(a,p,this)),s.push(new G(p,g,this));for(let t of i)t.radius=3,t.friction=.05;o.radius=a.radius=8;for(let t of s)t.springConstant=.4,t.dampConstant=.7;this.masses=i,this.springs=s,this.head=o,this.waist=a,this.lElbow=h,this.rElbow=l,this.rHand=u,this.lHand=c,this.lKnee=d,this.rKnee=p,this.lFoot=f,this.rFoot=g;for(let e in t)this[e].pos.equ(t[e]);this.parent.scene.game.mod.getVar("blackHat")?this.hat=new tt(this.head.pos,this.head.vel,this.parent):this.hat=null}zero(t,e){t=t.factor(.7),e=e.factor(.7);let i=this.springs,s=this.masses;for(let t of i){let e=t.m2.pos.sub(t.m1.pos).len();t.lrest=e,t.leff=e}for(let t=1;t<=4;t++)i[t].lrest=13,i[t].leff=13;for(let t of i)t.leff>20&&(t.lrest=20,t.leff=20);let n=[this.head,this.lElbow,this.rElbow,this.lHand,this.rHand],r=[this.waist,this.lKnee,this.rKnee,this.lFoot,this.rFoot];for(let e of n)e.old=e.pos.sub(t);for(let t of r)t.old=t.pos.sub(e);for(let t of s)t.vel.equ(t.pos.sub(t.old)),t.vel.x+=1*(Math.random()-Math.random()),t.vel.y+=1*(Math.random()-Math.random())}draw(){this.hat&&this.hat.draw();let t=this.parent.scene.game.mod.getVar("crRagdoll"),e=this.parent.scene.game.mod.getVar("crHead");const i=this.parent.scene.game.mod.getVar("customColors");let s=this.head,r=this.waist,o=this.lElbow,a=this.rElbow,h=this.rHand,l=this.lHand,c=this.lKnee,u=this.rKnee,d=this.lFoot,p=this.rFoot,f=this.parent.scene,g=f.camera.zoom,m=f.game.canvas.getContext("2d"),v=t?1:2;const y=s.pos.toScreen(f),w=r.pos.toScreen(f),x=a.pos.toScreen(f),_=h.pos.toScreen(f),b=u.pos.toScreen(f),T=p.pos.toScreen(f),k=o.pos.toScreen(f),C=l.pos.toScreen(f),S=c.pos.toScreen(f),P=d.pos.toScreen(f);if(m.strokeStyle="rgba(0,0,0,"+.5*v+")",m.beginPath(),m.moveTo(y.x,y.y),m.lineTo(x.x,x.y),m.lineTo(_.x,_.y),m.strokeStyle=i?st([...f.game.mod.getVar("riderColor"),.5*v]):"rgba(0,0,0,"+.5*v+")",m.lineWidth=5*g,m.moveTo(w.x,w.y),m.lineTo(b.x,b.y),m.lineTo(T.x,T.y),!t){let t=u.pos.sub(r.pos).normalize();t=t.factor(4).add(p.pos);let e=t.toScreen(f);m.lineTo(e.x,e.y)}if(m.stroke(),m.lineWidth=5*g,m.lineCap="round",m.lineJoin="round",m.strokeStyle=i?st([...f.game.mod.getVar("riderColor"),v]):"rgba(0,0,0,"+v+")",m.beginPath(),m.moveTo(y.x,y.y),m.lineTo(k.x,k.y),m.lineTo(C.x,C.y),m.lineWidth=5*g,m.moveTo(w.x,w.y),m.lineTo(S.x,S.y),m.lineTo(P.x,P.y),!t){let t=c.pos.sub(r.pos).normalize();t=t.factor(4).add(d.pos);let e=t.toScreen(f);m.lineTo(e.x,e.y)}if(m.stroke(),m.lineWidth=8*g,m.beginPath(),m.moveTo(y.x,y.y),m.lineTo(w.x,w.y),m.stroke(),y.inc(y.sub(w).factor(.25)),e||this.hat)if(this.hat)m.beginPath(),m.arc(y.x,y.y,5*g,0,1.99999*Math.PI,!1),m.lineWidth=2*g,m.stroke();else{let t=y.sub(w),e=new n.default(t.y,-t.x),i=y.add(e.factor(.15*this.dir)).add(t.factor(-.05)),s=y.add(e.factor(-.35*this.dir)).add(t.factor(.15));m.beginPath(),m.arc(y.x,y.y,5*g,0,1.99999*Math.PI,!1),m.moveTo(i.x,i.y),m.lineTo(s.x,s.y),m.lineWidth=2*g,m.stroke()}else{let t=GameInventoryManager.getItem(this.parent.cosmetics.head),e=this.drawHeadAngle;t.draw(m,y.x,y.y,e,g,this.dir,1)}}update(){for(var t=this.springs.length-1;t>=0;t--)this.springs[t].update();for(t=this.masses.length-1;t>=0;t--)this.masses[t].update();this.hat&&this.hat.update(),this.updateDrawHeadAngle()}updateDrawHeadAngle(){let t,e;this.dir<0?(e=this.head.pos,t=this.waist.pos):(t=this.head.pos,e=this.waist.pos),this.drawHeadAngle=-(nt(t.x-e.x,t.y-e.y)+Math.PI)}}rt.prototype.parent=null;var ot=rt;const at=Math.atan2,ht=Math.floor,lt=Math.random,ct=Math.min;class ut extends K{constructor(t,e,i,s){super(),super.init(t),this.createMasses(e,s),this.createSprings(),this.updateCameraFocalPoint(),this.stopSounds(),-1===i&&this.swap()}createMasses(t,e){this.masses=[];let i=new E,s=new Q(new n.default(t.x+21,t.y+3),this),r=new Q(new n.default(t.x+-21,t.y+3),this);i.init(new n.default(t.x,t.y-36),this),i.drive=this.createRagdoll.bind(this),r.radius=11.7,s.radius=11.7,i.radius=14,i.vel.equ(e),r.vel.equ(e),s.vel.equ(e),this.masses.push(i,r,s),this.head=i,this.frontWheel=s,this.rearWheel=r}createSprings(){this.springs=[];let t=new G(this.head,this.rearWheel,this),e=new G(this.rearWheel,this.frontWheel,this),i=new G(this.frontWheel,this.head,this);e.lrest=42,e.leff=42,e.springConstant=.35,e.dampConstant=.3,t.lrest=45,t.leff=45,t.springConstant=.35,t.dampConstant=.3,i.lrest=45,i.leff=45,i.springConstant=.35,i.dampConstant=.3,this.springs.push(t,e,i),this.rearSpring=t,this.chasse=e,this.frontSpring=i}createRagdoll(){this.ragdoll=new ot(this.getStickMan(),this),this.ragdoll.zero(this.head.vel,this.rearWheel.vel),this.ragdoll.dir=this.dir,this.rearWheel.motor=0,this.rearWheel.brake=!1,this.frontWheel.brake=!1,this.head.collide=!1,this.updateCameraFocalPoint(),this.player.isInFocus()&&!this.ignore&&this.playBailSound(),this.dead()}stopSounds(){let t=this.scene.sound;t.stop(dt.BIKE_AIR),t.stop(dt.BIKE_GROUND)}playBailSound(){let t=this.scene.sound,e=ct(this.speed/50,1);switch(ht(3*lt())+1){case 1:t.play(dt.BIKE_FALL_1,e);break;case 2:t.play(dt.BIKE_FALL_2,e);break;case 3:t.play(dt.BIKE_FALL_3,e)}}updateCameraFocalPoint(){this.focalPoint=this.ragdoll?this.ragdoll.head:this.head}getStickMan(){let t=this.dir,e=this.head,i=this.frontWheel,s=this.rearWheel,r=this.pedala,o=i.pos.sub(s.pos),a=e.pos.sub(i.pos.add(s.pos).factor(.5)),h=new n.default(o.y*t,-o.x*t),l={};l.head=s.pos.add(o.factor(.35)).add(a.factor(1.2)),l.lHand=l.rHand=s.pos.add(o.factor(.8)).add(h.factor(.68));let c=l.head.sub(l.lHand);c=new n.default(c.y*t,-c.x*t),l.lElbow=l.rElbow=l.head.add(l.lHand).factor(.5).add(c.factor(130/c.lenSqr())),l.waist=s.pos.add(o.factor(.2)).add(h.factor(.5));let u=new n.default(6*Math.cos(r),6*Math.sin(r));l.lFoot=s.pos.add(o.factor(.4)).add(h.factor(.05)).add(u);let d=l.waist.sub(l.lFoot);return d=new n.default(-d.y*t,d.x*t),l.lKnee=l.waist.add(l.lFoot).factor(.5).add(d.factor(160/d.lenSqr())),l.rFoot=s.pos.add(o.factor(.4)).add(h.factor(.05)).sub(u),d=l.waist.sub(l.rFoot),d=new n.default(-d.y*t,d.x*t),l.rKnee=l.waist.add(l.rFoot).factor(.5).add(d.factor(160/d.lenSqr())),l}update(){if(this.crashed||(this.updateSound(),this.control()),this.explosion)this.explosion.update();else{let t=this.springs,e=this.masses;for(let e=t.length-1;e>=0;e--)t[e].update();for(let t=e.length-1;t>=0;t--)e[t].update();if(this.rearWheel.contact&&this.frontWheel.contact&&(this.slow=!1),!this.slow){this.crashed||this.control();for(let e=t.length-1;e>=0;e--)t[e].update();for(let t=e.length-1;t>=0;t--)e[t].update()}this.ragdoll?this.ragdoll.update():this.updateDrawHeadAngle()}this.updateCameraFocalPoint()}updateSound(){if(this.player.isInFocus()&&!this.ignore){this.updateSpeed();let t=ct(this.speed/50,1),e=this.scene.sound;this.rearWheel.contact||this.frontWheel.contact?(e.play(dt.BIKE_GROUND,t),e.stop(dt.BIKE_AIR)):(e.play(dt.BIKE_AIR,t),e.stop(dt.BIKE_GROUND))}}stopSounds(){var t=this.scene.sound;t.stop(dt.BIKE_AIR),t.stop(dt.BIKE_GROUND)}swap(){this.dir*=-1,this.chasse.swap();let t=this.rearSpring.leff;this.rearSpring.leff=this.frontSpring.leff,this.frontSpring.leff=t}control(){let t=this.gamepad,e=t.isButtonDown("up"),i=t.isButtonDown("down"),s=t.isButtonDown("left"),n=t.isButtonDown("right"),r=t.isButtonDown("z"),o=e?1:0,a=this.rearWheel;a.motor+=(o-a.motor)/10,r&&!this.swapped&&(this.swap(),this.swapped=!0),r||(this.swapped=!1),e&&(this.pedala+=this.rearWheel.speed/5),a.brake=i,i&&this.frontSpring.contract(-10,10),1===this.dir&&n&&i||-1===this.dir&&s&&i?this.frontWheel.brake=!0:this.frontWheel.brake=!1;let h=s?1:0;h+=n?-1:0,this.rearSpring.contract(5*h*this.dir,5),this.frontSpring.contract(5*-h*this.dir,5),this.chasse.rotate(h/6),!h&&e&&(this.rearSpring.contract(-7,5),this.frontSpring.contract(7,5))}draw(){if(this.explosion)this.explosion.draw();else{let t=this.scene.game.canvas.getContext("2d");if(t.imageSmoothingEnabled=!0,t.webkitImageSmoothingEnabled=!0,t.mozImageSmoothingEnabled=!0,this.settings.developerMode)for(let t of this.masses)t.draw();this.drawBikeFrame()}}updateDrawHeadAngle(){let t=this.frontWheel.pos.sub(this.rearWheel.pos);this.drawHeadAngle=-(at(t.x,t.y)-Math.PI/2)}drawBikeFrame(){let t=this.scene,e=t.game.mod.getVar("crBmx"),i=t.game.mod.getVar("crHead");const s=t.game.mod.getVar("customColors"),r=s?it(t.game.mod.getVar("vehicleColor")):"#000";let o=t.game.mod.getVar("blackHat"),a=this.rearWheel.pos.toScreen(t),h=this.frontWheel.pos.toScreen(t),l=this.head.pos.toScreen(t),c=this.player._opacity,u=h.sub(a),d=new n.default(u.y*this.dir,-u.x*this.dir),p=new N(a,u,d),f=this.pedala,g=Math.atan2(u.y,u.x),m=this.dir,v=t.camera.zoom,y=t.game.canvas.getContext("2d"),w=e?3.5:3,x=e?10:10.5;y.globalAlpha=c,y.strokeStyle="rgba(0,0,0,1)",y.lineWidth=w*v,y.lineCap="round",y.lineJoin="round",y.fillStyle="rgba(200,200, 200, 0.2)",y.beginPath(),y.arc(h.x,h.y,x*v,0,2*Math.PI,!1),y.moveTo(a.x+x*v,a.y),y.arc(a.x,a.y,x*v,0,2*Math.PI,!1),e||y.fill(),y.stroke();let _=p.transform(.3,.25),b=p.transform(.4,.05),T=p.transform(.84,.42),k=p.transform(.84,.37),C=new n.default(6*Math.cos(f+g)*v,6*Math.sin(f+g)*v),S=b.add(C),P=b.sub(C);d=l.sub(a.add(u.factor(.5)));let M=new N(_,u,d),D=M.transform(-.1,.3),E=S.sub(D),A=new n.default(E.y*m,-E.x*m);A=A.factor(v*v);let L=D.add(E.factor(.5)).add(A.factor(200/E.lenSqr())),I=S.add(E.factor(.12)).add(A.factor(50/E.lenSqr()));E=P.sub(D),A=new n.default(E.y*m,-E.x*m),A=A.factor(v*v);let O=D.add(E.factor(.5)).add(A.factor(200/E.lenSqr())),z=P.add(E.factor(.12)).add(A.factor(50/E.lenSqr()));this.crashed||(y.strokeStyle=s?st([...t.game.mod.getVar("riderColor"),.5]):"rgba(0,0,0,0.5)",y.lineWidth=6*v,y.beginPath(),y.moveTo(P.x,P.y),y.lineTo(O.x,O.y),y.lineTo(D.x,D.y),y.stroke(),e||(y.lineWidth=4*v,y.beginPath(),y.moveTo(P.x,P.y),y.lineTo(z.x,z.y),y.stroke())),y.beginPath(),y.strokeStyle=r||"#000000",y.lineWidth=3*v,y.moveTo(T.x,T.y),y.lineTo(_.x,_.y),y.lineTo(a.x,a.y),y.lineTo(b.x,b.y),y.lineTo(k.x,k.y),y.stroke(),e||(y.beginPath(),y.lineWidth=Math.max(1*v,.5),y.arc(b.x,b.y,3*v,0,2*Math.PI,!1),y.stroke()),y.beginPath(),y.lineWidth=e?3*v:Math.max(1*v,.5),y.moveTo(S.x,S.y),y.lineTo(P.x,P.y),y.stroke();let j=p.transform(.25,.4),B=p.transform(.17,.38),F=p.transform(.3,.45),R=p.transform(.97,0),W=p.transform(.8,.48),V=p.transform(.86,.5),H=p.transform(.82,.65),U=p.transform(.78,.67);if(y.beginPath(),y.lineWidth=3*v,y.moveTo(B.x,B.y),y.lineTo(F.x,F.y),y.moveTo(b.x,b.y),y.lineTo(j.x,j.y),y.moveTo(h.x,h.y),y.lineTo(R.x,R.y),y.lineTo(W.x,W.y),y.lineTo(V.x,V.y),y.lineTo(H.x,H.y),y.lineTo(U.x,U.y),y.stroke(),this.crashed&&this.ragdoll)this.ragdoll.draw();else{y.lineWidth=6*v,y.strokeStyle=s?it(t.game.mod.getVar("riderColor")):"#000",y.beginPath(),y.moveTo(S.x,S.y),y.lineTo(L.x,L.y),y.lineTo(D.x,D.y),y.stroke(),e||(y.beginPath(),y.moveTo(S.x,S.y),y.lineTo(I.x,I.y),y.stroke());let r=M.transform(.05,.9);y.lineWidth=8*v,y.beginPath(),y.moveTo(D.x,D.y),y.lineTo(r.x,r.y),y.stroke();let a=M.transform(.15,1.05),h=M.transform(.4,1.1),l=M.transform(.05,1.05);u=r.sub(U),d=new n.default(u.y*m,-u.x*m),d=d.factor(v*v);let c=U.add(u.factor(.4)).add(d.factor(130/u.lenSqr()));if(y.lineWidth=5*v,y.beginPath(),y.moveTo(r.x,r.y),y.lineTo(c.x,c.y),y.lineTo(U.x,U.y),y.stroke(),i||o)if(o){let t=M.transform(.35,1.15),e=M.transform(-.05,1.1),i=M.transform(.25,1.13),s=M.transform(.05,1.11),n=M.transform(.25,1.35),r=M.transform(-.03,1.3);y.beginPath(),y.moveTo(a.x+5*v,a.y),y.arc(a.x,a.y,5*v,0,2*Math.PI),y.lineWidth=2*v,y.stroke(),y.beginPath(),y.moveTo(t.x,t.y),y.lineTo(i.x,i.y),y.lineTo(n.x,n.y),y.lineTo(r.x,r.y),y.lineTo(s.x,s.y),y.lineTo(e.x,e.y),y.fillStyle=y.strokeStyle,y.stroke(),y.fill()}else y.beginPath(),y.moveTo(a.x+5*v,a.y),y.arc(a.x,a.y,5*v,0,2*Math.PI),y.moveTo(h.x,h.y),y.lineTo(l.x,l.y),y.lineWidth=2*v,y.stroke();else{GameInventoryManager.getItem(this.cosmetics.head).draw(y,a.x,a.y,this.drawHeadAngle,v,this.dir)}y.globalAlpha=1}}clone(){const t=new ut(this.player,new n.default(0,0),1,new n.default(0,0));return t.frontWheel.pos.equ(this.frontWheel.pos),t.frontWheel.vel.equ(this.frontWheel.vel),t.frontWheel.old.equ(this.frontWheel.old),t.rearWheel.pos.equ(this.rearWheel.pos),t.rearWheel.vel.equ(this.rearWheel.vel),t.rearWheel.old.equ(this.rearWheel.old),t.head.pos.equ(this.head.pos),t.head.vel.equ(this.head.vel),t.head.old.equ(this.head.old),t.masses=[t.head,t.rearWheel,t.frontWheel],t}}const dt={BIKE_GROUND:"bike_ground",BIKE_AIR:"bike_air",BIKE_FALL_1:"bike_fall_1",BIKE_FALL_2:"bike_fall_2",BIKE_FALL_3:"bike_fall_3"},pt=ut.prototype;pt.vehicleName="BMX",pt.masses=null,pt.springs=null,pt.cosmetics=null,pt.slow=!1,pt.pedala=0,pt.cosmeticHead=null,pt.cosmeticRearWheel=null,pt.cosmeticFrontWheel=null,pt.swapped=!1,pt.ragdoll=null;var ft=ut;class gt extends E{constructor(t,e){super(),this.init(t,e),this.motor=0,this.angle=new n.default(0,0),this.radius=10,this.speed=0}update(){var t=this.vel;let e=this.angle,i=this.pos,s=this.old,n=this.motor;t.inc(e.factor(2*n)),t=t.factor(.99),i.inc(t),this.contact=!1,this.collide&&this.scene.track.collide(this),this.vel=i.sub(s),s.equ(i)}}const mt=gt.prototype;mt.motor=0,mt.angle=0,mt.speed=0;var vt=gt;const yt=Math.atan2,wt=Math.min;class xt extends K{constructor(t,e,i){super(),super.init(t),this.createMasses(e),this.createSprings(),this.createCockpit(),this.updateCameraFocalPoint(),this.stopSounds(),-1===i&&this.swap()}createCockpit(){this.canvasCockpit=document.createElement("canvas")}drawCockpit(){let t=this.canvasCockpit,e=this.masses,i=this.scene.camera.zoom,s=e[0].radius*i*.9,n=50*i,r=50*i;t.width=n,t.height=r;let o=Math.max(2*i,1),a=t.getContext("2d");a.save(),a.translate(n/2,r/2),a.scale(1.3,1),a.beginPath(),a.arc(0,0,s,0,1.5*Math.PI,!1),a.lineTo(0,0),a.lineTo(0+s,0),a.closePath(),a.restore(),a.fillStyle="#000000",a.fill(),a.lineWidth=o,a.strokeStyle="black",a.stroke(),a.save(),a.translate(n/2,r/2),a.scale(1.3,1),a.beginPath(),a.arc(0,0,s,0,1.5*Math.PI,!0),a.restore(),a.lineWidth=o,a.strokeStyle="black",a.stroke()}createMasses(t){var e=[];e.push(new vt(new n.default(t.x+0,t.y+18),this));var i=new E;let s=new E,r=new E,o=new E;i.init(new n.default(t.x+-17,t.y+42),this),s.init(new n.default(t.x+17,t.y+42),this),r.init(new n.default(t.x+-40,t.y+15),this),o.init(new n.default(t.x+40,t.y+15),this),e.push(i),e.push(s),e.push(r),e.push(o),e[0].radius=18,e[1].radius=8,e[2].radius=8,e[3].grav=!1,e[4].grav=e[4].collide=!1,e[1].friction=.2,e[2].friction=.2,this.head=e[0],this.mass2=e[1],this.mass3=e[2],this.mass4=e[3],this.rotor=0,this.rotor2=0,this.dir=1,e[3].drive=this.head.drive=()=>{this.explode()},this.focalPoint=e[0],this.masses=e}createSprings(){let t=this.masses,e=[];e.push(new G(t[0],t[1],this)),e.push(new G(t[2],t[0],this)),e.push(new G(t[2],t[1],this)),e.push(new G(t[0],t[3],this)),e.push(new G(t[1],t[3],this)),e.push(new G(t[0],t[4],this)),e.push(new G(t[2],t[4],this)),this.spring1=e[0],this.spring2=e[1],this.spring3=e[2],this.spring4=e[3],this.spring5=e[4],this.spring6=e[5],this.spring7=e[6],e[0].leff=e[4].lrest=30,e[1].leff=e[4].lrest=30,e[2].leff=e[4].lrest=35,e[4].leff=e[4].lrest=35,e[6].leff=e[4].lrest=35;for(let t of e)t.dampConstant=.4,t.springConstant=.5;this.springs=e}updateCameraFocalPoint(){}update(){if(this.crashed||(this.updateSound(),this.control()),this.explosion)this.explosion.update();else{let e=this.springs,i=this.masses;for(let t=e.length-1;t>=0;t--)e[t].update();for(let t=i.length-1;t>=0;t--)i[t].update();if((this.masses[1].contact||this.masses[2].contact)&&(this.slow=!1),!this.slow){this.crashed||this.control();for(var t=e.length-1;t>=0;t--)e[t].update();for(t=i.length-1;t>=0;t--)i[t].update()}this.updateCockpitAngle()}}updateSound(){this.player.isInFocus()&&this.scene.sound.play(bt.HELICOPTER,wt(this.head.motor,1))}stopSounds(){this.scene.sound.stop(bt.HELICOPTER)}swap(){let t=this.masses;this.springs[2].swap();let e=new n.default(0,0),i=new n.default(0,0),s=new n.default(0,0);e.equ(t[3].pos),i.equ(t[3].old),s.equ(t[3].vel),t[3].pos.equ(t[4].pos),t[3].old.equ(t[4].old),t[3].vel.equ(t[4].vel),t[4].pos.equ(e),t[4].old.equ(i),t[4].vel.equ(s),this.dir*=-1}control(){var t=this.player.getGamepad();let e=t.isButtonDown("up"),i=t.isButtonDown("back"),s=t.isButtonDown("left"),n=t.isButtonDown("right"),r=t.isButtonDown("z"),o=this.masses,a=this.springs;r&&!this.swapped&&(this.swap(),this.swapped=!0),r||(this.swapped=!1);let h=o[1].pos.add(o[2].pos).factor(.5);h=o[0].pos.sub(h),h=h.factor(1/h.len()),o[0].angle.equ(h);let l=e?1:0;o[0].motor+=(l-o[0].motor)/10;let c=s?1:0;c+=n?-1:0,a[2].rotate(c/6),i&&(this.scene.restartTrack=!0)}updateCockpitAngle(){let t=this.masses,e=t[0].pos,i=t[3].pos,s=e.x,n=e.y,r=i.x,o=i.y;this.cockpitAngle=-(yt(s-r,n-o)-Math.PI/2)}draw(){if(this.explosion)this.explosion.draw(1);else{const t=this.scene.game.mod.getVar("crHeli"),e=this.scene.game.canvas.getContext("2d");e.imageSmoothingEnabled=!0,e.webkitImageSmoothingEnabled=!0,e.mozImageSmoothingEnabled=!0,e.globalAlpha=this.player._opacity;let i=this.masses,s=this.dir,r=this.rotor,o=this.rotor2,a=this.scene,h=a.camera.zoom,l=i[1].pos.toScreen(a),c=i[2].pos.toScreen(a),u=i[3].pos.toScreen(a),d=i[1].pos.add(i[2].pos).factor(.5);d=i[0].pos.sub(d).factor(h);let p=new n.default(-d.y*s,d.x*s),f=i[0].pos.toScreen(a);r+=.5*i[0].motor+.05,r>6.2831&&(r-=6.2831),o+=.5,o>6.2831&&(o-=6.2831),this.rotor=r,this.rotor2=o;const g=new N(f,p,d);e.strokeStyle="#000000",e.lineWidth=5*h,e.lineJoin=e.lineCap="round",e.beginPath(),e.moveTo(...g.transform(0,.5).toArray()),e.lineTo(...g.transform(0,t?1:.8).toArray()),e.stroke(),e.lineWidth=3*h,e.beginPath();let m=(t?.7:.9)*Math.cos(r);e.moveTo(...g.transform(m,t?.9:.8).toArray()),e.lineTo(...g.transform(-m,t?.9:.8).toArray()),e.stroke(),e.lineWidth=4*h,e.strokeStyle=t?"#666666":"#000",e.lineWidth=4*h,e.beginPath(),e.moveTo(...g.transform(-.2,-.1,l).toArray()),e.lineTo(...g.transform(0,-.25,l).toArray()),e.lineTo(...g.transform(0,-.25,c).toArray()),e.lineTo(...g.transform(.2,-.1,c).toArray()),e.stroke(),e.lineWidth=3*h,e.beginPath(),e.moveTo(...g.transform(0,-.2,l).toArray()),e.lineTo(f.x,f.y),e.lineTo(...g.transform(0,-.2,c).toArray()),e.stroke(),e.lineWidth=6*h,e.strokeStyle="#000000",e.beginPath(),e.moveTo(f.x,f.y),e.lineTo(u.x,u.y),e.lineTo(...g.transform(0,-.3).toArray()),e.stroke(),e.lineWidth=2*h,e.beginPath();let v=7*h,y=new n.default(v*Math.sin(-o),v*Math.cos(-o));if(e.moveTo(u.x+y.x,u.y+y.y),e.lineTo(u.x-y.x,u.y-y.y),e.moveTo(u.x-y.y,u.y+y.x),e.lineTo(u.x+y.y,u.y-y.x),e.stroke(),e.beginPath(),t&&(e.strokeStyle="#aaaaaa"),e.lineWidth=2*h,e.arc(u.x,u.y,i[3].radius*h,0,2*Math.PI,!1),e.stroke(),t){const t=i[0].radius*h;e.beginPath(),e.arc(f.x,f.y,t,0,2*Math.PI),e.fillStyle="#000",e.fill(),e.beginPath(),e.arc(...g.transform(.2,.05,f).toArray(),8.5*h,0,2*Math.PI),e.fillStyle="#777777",e.fill()}else{p=f.sub(u),p.factorSelf(h/p.len()),d=new n.default(-p.y,p.x);let t=p.factor(5).add(d.factor(2*this.dir)),i=p.factor(5).add(d.factor(-5*this.dir));this.drawCockpit();let r=this.canvasCockpit,o=r.width,a=r.height,l=f.x+t.x,c=f.y+t.y,g=-o/2,m=-a/2,v=-1===s,y=GameInventoryManager.getItem(this.cosmetics.head),w=this.cockpitAngle;y.draw(e,l+i.x,c+i.y,w,.7*h,s),e.translate(l,c),e.rotate(w),v&&e.scale(1,-1),e.drawImage(r,g,m,o,a),v&&e.scale(1,-1),e.rotate(-w),e.translate(-l,-c),e.globalAlpha=1}}}}const _t=xt.prototype;_t.vehicleName="Helicopter",_t.masses=null,_t.springs=null,_t.slow=!1,_t.swapped=!1;const bt={HELICOPTER:"helicopter"};var Tt=xt;const kt=Math.atan2,Ct=Math.min,St=Math.sqrt,Pt=Math.pow;class Mt extends K{constructor(t,e,i){super(),super.init(t),this.createMasses(e),this.createSprings(),this.stopSounds(),this.updateCameraFocalPoint(),-1===i&&this.swap()}createMasses(t){this.masses=[],this.masses.push(new E),this.masses.push(new E),this.masses[0].init(new n.default(t.x-15,t.y+7),this),this.masses[1].init(new n.default(t.x+15,t.y+7),this),this.masses[0].friction=.1,this.masses[1].friction=.1,this.masses.push(new Q(new n.default(t.x-20,t.y+35),this)),this.masses.push(new Q(new n.default(t.x+20,t.y+35),this)),this.masses[2].radius=this.masses[3].radius=14,this.masses[0].radius=this.masses[1].radius=7,this.head=this.masses[0],this.backMass=this.masses[1],this.rearWheel=this.masses[2],this.frontWheel=this.masses[3]}createSprings(){this.springs=[];let t=this.masses;this.springs.push(new G(t[0],t[1],this)),this.springs.push(new G(t[0],t[2],this)),this.springs.push(new G(t[1],t[3],this)),this.springs.push(new G(t[0],t[3],this)),this.springs.push(new G(t[1],t[2],this)),this.springs.push(new G(t[2],t[3],this)),this.springs[0].leff=this.springs[0].lrest=30,this.springs[1].leff=this.springs[1].lrest=30,this.springs[2].leff=this.springs[2].lrest=30,this.springs[3].leff=this.springs[3].lrest=45,this.springs[4].leff=this.springs[4].lrest=45;for(let t of this.springs)t.springConstant=.3}updateCameraFocalPoint(){this.focalPoint=1===this.dir?this.head:this.backMass}update(){if(this.crashed||(this.updateSound(),this.control()),this.explosion)this.explosion.update();else{let t=this.springs,e=this.masses;for(let e=t.length-1;e>=0;e--)t[e].update();for(let t=e.length-1;t>=0;t--)e[t].update();if(this.rearWheel.contact&&this.frontWheel.contact&&(this.slow=!1),!this.slow){this.crashed||this.control();for(let e=t.length-1;e>=0;e--)t[e].update();for(let t=e.length-1;t>=0;t--)e[t].update()}this.updateDrawHeadAngle(),this.updateCameraFocalPoint()}}updateSound(){if(this.player.isInFocus()){let t=this.scene.sound;if(this.rearWheel.contact){let e=Ct(this.rearWheel.motor,1);t.play(Et.TRUCK_GROUND,e)}else if(this.frontWheel.contact){let e=Ct(this.frontWheel.motor,1);t.play(Et.TRUCK_GROUND,e)}else t.stop(Et.TRUCK_GROUND)}}stopSounds(){this.scene.sound.stop(Et.TRUCK_GROUND)}updateDrawHeadAngle(){let t=this.frontWheel.pos,e=this.rearWheel.pos;this.drawHeadAngle=-(kt(t.x-e.x,t.y-e.y)-Math.PI/2)}swap(){this.dir*=-1,this.springs[0].swap(),this.springs[5].swap()}control(){let t=this.gamepad,e=t.isButtonDown("up"),i=t.isButtonDown("down"),s=t.isButtonDown("left"),n=t.isButtonDown("right"),r=t.isButtonDown("z");r&&!this.swapped&&(this.swap(),this.swapped=!0),r||(this.swapped=!1);let o=e?1:0,a=this.rearWheel,h=this.frontWheel;a.motor+=(.8*o-a.motor)/10,h.motor+=(.8*o-h.motor)/10,a.brake=i,h.brake=i;let l=s?1:0;l+=n?-1:0;let c=this.springs;c[0].rotate(l/8),c[5].rotate(l/8)}draw(){if(this.explosion)this.explosion.draw(1);else{let t=this.scene.game.canvas.getContext("2d");if(t.imageSmoothingEnabled=!0,t.mozImageSmoothingEnabled=!0,t.oImageSmoothingEnabled=!0,t.webkitImageSmoothingEnabled=!0,this.settings.developerMode)for(let t of this.masses)t.draw();t.globalAlpha=this.player._opacity,this.drawTruck(t),t.globalAlpha=1}}drawTruck(t){let e=this.scene,i=e.camera.zoom,s=GameInventoryManager.getItem(this.cosmetics.head),n=this.drawHeadAngle,r=this.dir,o=this.frontWheel.pos.toScreen(e),a=this.rearWheel.pos.toScreen(e),h=this.head.pos.toScreen(e),l=this.backMass.pos.toScreen(e),c=(this.masses[1].pos.x-this.masses[0].pos.x)*i,u=(this.masses[1].pos.y-this.masses[0].pos.y)*i,d=(.5*(this.masses[0].pos.x+this.masses[1].pos.x)-.5*(this.masses[2].pos.x+this.masses[3].pos.x))*i,p=(.5*(this.masses[0].pos.y+this.masses[1].pos.y)-.5*(this.masses[2].pos.y+this.masses[3].pos.y))*i;t.strokeStyle="#000000",t.lineWidth=3*i,t.lineCap="round",t.lineJoin="round";let f=l.x-h.x,g=l.y-h.y,m=St(Pt(f,2)+Pt(g,2)),v=f/m,y=g/m;s.draw(t,l.x-.5*v*i*20,l.y-y*i*20*.5,n,.45*i,r),t.strokeStyle="#444444",t.beginPath(),t.moveTo(h.x-.4*c-.9*d,h.y-.4*u-.9*p),t.lineTo(h.x+.8*c-.9*d,h.y+.8*u-.9*p),t.stroke(),t.fillStyle="#777777",t.beginPath(),t.moveTo(h.x-.4*c-.7*d,h.y-.4*u-.7*p),t.lineTo(h.x-.4*c-.7*d,h.y-.4*u-.7*p),t.lineTo(h.x+1.4*c-.7*d,h.y+1.4*u-.7*p),t.lineTo(h.x+1.35*c-.2*d,h.y+1.35*u-.2*p),t.lineTo(h.x+.9*c-.1*d,h.y+.9*u-.1*p),t.lineTo(h.x+.5*c-.1*d,h.y+.5*u-.1*p),t.lineTo(h.x+.5*c+.2*d,h.y+.5*u+.2*p),t.lineTo(h.x-.35*c+.2*d,h.y-.35*u+.2*p),t.closePath(),t.fill(),t.lineWidth=2*i,t.strokeStyle="#444444",t.beginPath(),t.moveTo(h.x-.4*c-.7*d,h.y-.4*u-.7*p),t.lineTo(h.x-.35*c+.2*d,h.y-.35*u+.2*p),t.lineTo(h.x+.8*c+.2*d,h.y+.8*u+.2*p),t.lineTo(h.x+.9*c-.1*d,h.y+.9*u-.1*p),t.lineTo(h.x+1.35*c-.2*d,h.y+1.35*u-.2*p),t.lineTo(h.x+1.4*c-.7*d,h.y+1.4*u-.7*p),t.lineTo(h.x-.4*c-.7*d,h.y-.4*u-.7*p),t.stroke(),t.strokeStyle="#444444",t.lineWidth=i,t.beginPath(),t.moveTo(h.x+.5*c-.1*d,h.y+.5*u-.1*p),t.lineTo(h.x+.9*c-.1*d,h.y+.9*u-.1*p),t.lineTo(h.x+.8*c+.2*d,h.y+.8*u+.2*p),t.lineTo(h.x+.5*c+.2*d,h.y+.5*u+.2*p),t.lineTo(h.x+.5*c-.1*d,h.y+.5*u-.1*p),t.stroke(),this.tire(t,a.x,a.y,10*i,i,this.rearWheel.angle),this.tire(t,o.x,o.y,10*i,i,this.frontWheel.angle)}tire(t,e,i,s,n,r){t.beginPath(),t.arc(e,i,10*n,0,2*Math.PI,!1),t.fillStyle="#888888",t.fill(),t.lineWidth=5.9*n,t.strokeStyle="#000000",t.closePath(),t.stroke(),t.beginPath(),t.lineWidth=2*n,t.strokeStyle="0x000000",s+=3*n;for(let n=0;n++<8;)t.moveTo(e+s*Math.cos(r+6.283*n/8),i+s*Math.sin(r+6.283*n/8)),t.lineTo(e+s*Math.cos(r+6.283*(n+.5)/8),i+s*Math.sin(r+6.283*(n+.5)/8));t.stroke(),t.beginPath(),t.lineWidth=2*n,t.strokeStyle="0x000000",s-=9*n;for(let n=0;n++<5;)t.moveTo(e+s*Math.cos(r+6.283*n/5),i+s*Math.sin(r+6.283*n/5)),t.lineTo(e+s*Math.cos(r+6.283*(n+.2)/5),i+s*Math.sin(r+6.283*(n+.2)/5));t.stroke()}}const Dt=Mt.prototype;Dt.vehicleName="TRUCK",Dt.vehicleInit=Dt.init,Dt.vehicleUpdate=Dt.update,Dt.vehicleControl=Dt.control,Dt.vehicleDraw=Dt.draw,Dt.masses=null,Dt.springs=null,Dt.cosmetics=null,Dt.slow=!1,Dt.pedala=0,Dt.swapped=!1,Dt.crashed=!1;const Et={TRUCK_GROUND:"truck_idle"};var At=Mt;s(31),s(33);const Lt=Math.atan2,It=Math.min,Ot=Math.floor,zt=Math.random;class jt extends K{constructor(t,e,i,s){super(),this.color="rgba(0,0,0,1)",super.init(t),this.createMasses(e,s),this.createSprings(),this.updateCameraFocalPoint(),this.stopSounds(),-1===i&&this.swap()}createMasses(t,e){this.masses=[];let i=new E,s=new Q(new n.default(t.x+23,t.y),this),r=new Q(new n.default(t.x+-23,t.y),this);i.init(new n.default(t.x+2,t.y+-38),this),i.drive=this.createRagdoll.bind(this),r.radius=14,s.radius=14,i.radius=14,i.vel.equ(e),r.vel.equ(e),s.vel.equ(e),this.masses.push(i),this.masses.push(r),this.masses.push(s),this.head=i,this.frontWheel=s,this.rearWheel=r}createSprings(){this.springs=[];let t=new G(this.head,this.rearWheel,this),e=new G(this.rearWheel,this.frontWheel,this),i=new G(this.frontWheel,this.head,this);e.lrest=45,e.leff=45,e.springConstant=.2,e.dampConstant=.3,t.lrest=47,t.leff=47,t.springConstant=.2,t.dampConstant=.3,i.lrest=45,i.leff=45,i.springConstant=.2,i.dampConstant=.3,this.springs.push(t),this.springs.push(e),this.springs.push(i),this.rearSpring=t,this.chasse=e,this.frontSpring=i}createRagdoll(){this.ragdoll=new ot(this.getStickMan(),this),this.ragdoll.zero(this.head.vel,this.rearWheel.vel),this.ragdoll.dir=this.dir,this.rearWheel.motor=0,this.rearWheel.brake=!1,this.frontWheel.brake=!1,this.head.collide=!1,this.player.isInFocus()&&!this.ignore&&this.playBailSound(),this.dead()}playBailSound(){let t=this.scene.sound,e=It(this.speed/50,1);switch(Ot(3*zt())+1){case 1:t.play(Ft.BIKE_FALL_1,e);break;case 2:t.play(Ft.BIKE_FALL_2,e);break;case 3:t.play(Ft.BIKE_FALL_3,e)}}updateCameraFocalPoint(){this.focalPoint=this.ragdoll?this.ragdoll.head:this.head}getStickMan(){let t=this.dir,e=this.head,i=this.frontWheel,s=this.rearWheel,r=this.pedala,o=i.pos.sub(s.pos),a=e.pos.sub(i.pos.add(s.pos).factor(.5)),h=new n.default(o.y*t,-o.x*t),l={};l.head=s.pos.add(o.factor(.35)).add(a.factor(1.2)),l.lHand=l.rHand=s.pos.add(o.factor(.8)).add(h.factor(.68));let c=l.head.sub(l.lHand);c=new n.default(c.y*t,-c.x*t),l.lElbow=l.rElbow=l.head.add(l.lHand).factor(.5).add(c.factor(130/c.lenSqr())),l.waist=s.pos.add(o.factor(.2)).add(h.factor(.5));let u=new n.default(6*Math.cos(r),6*Math.sin(r));l.lFoot=s.pos.add(o.factor(.4)).add(h.factor(.05)).add(u);let d=l.waist.sub(l.lFoot);return d=new n.default(-d.y*t,d.x*t),l.lKnee=l.waist.add(l.lFoot).factor(.5).add(d.factor(160/d.lenSqr())),l.rFoot=s.pos.add(o.factor(.4)).add(h.factor(.05)).sub(u),d=l.waist.sub(l.rFoot),d=new n.default(-d.y*t,d.x*t),l.rKnee=l.waist.add(l.rFoot).factor(.5).add(d.factor(160/d.lenSqr())),l}update(){if(this.crashed||(this.updateSound(),this.control()),this.explosion)this.explosion.update();else{let t=this.springs,e=this.masses;for(let e=t.length-1;e>=0;e--)t[e].update();for(let t=e.length-1;t>=0;t--)e[t].update();if(this.rearWheel.contact&&this.frontWheel.contact&&(this.slow=!1),!this.slow){this.crashed||this.control();for(let e=t.length-1;e>=0;e--)t[e].update();for(let t=e.length-1;t>=0;t--)e[t].update()}this.ragdoll?this.ragdoll.update():this.updateDrawHeadAngle()}this.updateCameraFocalPoint()}updateSound(){if(this.player.isInFocus()&&!this.ignore){this.updateSpeed();let t=It(this.speed/50,1),e=this.scene.sound;this.rearWheel.contact||this.frontWheel.contact?(e.play(Ft.BIKE_GROUND,t),e.stop(Ft.BIKE_AIR)):(e.play(Ft.BIKE_AIR,t),e.stop(Ft.BIKE_GROUND))}}stopSounds(){var t=this.scene.sound;t.stop(Ft.BIKE_AIR),t.stop(Ft.BIKE_GROUND)}updateDrawHeadAngle(){var t=this.frontWheel.pos;let e=this.rearWheel.pos;this.drawHeadAngle=-(Lt(t.x-e.x,t.y-e.y)-Math.PI/2)}swap(){this.dir*=-1,this.chasse.swap();let t=this.rearSpring.leff;this.rearSpring.leff=this.frontSpring.leff,this.frontSpring.leff=t}control(){var t=this.gamepad;let e=t.isButtonDown("up"),i=t.isButtonDown("down"),s=t.isButtonDown("left"),n=t.isButtonDown("right"),r=t.isButtonDown("z"),o=e?1:0,a=this.rearWheel;a.motor+=(o-a.motor)/10,r&&!this.swapped&&(this.swap(),this.swapped=!0),r||(this.swapped=!1),e&&(this.pedala+=this.rearWheel.speed/5),a.brake=i,this.frontWheel.brake=!!(this.dir>0&&n&&i)||!!(this.dir<0&&s&&i);let h=s?1:0;h+=n?-1:0,this.rearSpring.contract(5*h*this.dir,5),this.frontSpring.contract(5*-h*this.dir,5),this.chasse.rotate(h/8),!h&&e&&(this.rearSpring.contract(-7,5),this.frontSpring.contract(7,5))}draw(){if(this.explosion)this.explosion.draw(1);else{let t=this.scene.game.canvas.getContext("2d");if(t.imageSmoothingEnabled=!0,t.mozImageSmoothingEnabled=!0,t.oImageSmoothingEnabled=!0,t.webkitImageSmoothingEnabled=!0,this.settings.developerMode)for(let t of this.masses)t.draw();this.drawBikeFrame()}}drawBikeFrame(){const t=this.scene,e=t.game.mod.getVar("crMtb"),i=t.game.mod.getVar("crHead"),s=t.game.mod.getVar("customColors"),r=s?it(t.game.mod.getVar("vehicleColor")):"#000",o=t.game.mod.getVar("blackHat"),a=this.frontWheel.pos.toScreen(t),h=this.rearWheel.pos.toScreen(t),l=this.head.pos.toScreen(t),c=t.camera.zoom,u=t.game.canvas.getContext("2d"),d=this.player._opacity,p=a.sub(h),f=Math.atan2(p.y,p.x),g=new n.default((a.y-h.y)*this.dir,(h.x-a.x)*this.dir),m=l.sub(h).sub(p.factor(.5)),v=new N(h,p,m),y=new N(h,p,g),w=e?3.5:3,x=y.transform(.4,.05),_=new n.default(6*Math.cos(this.pedala+f)*c,6*Math.sin(this.pedala+f)*c),b=new N(v.transform(.3,.25),p,m),T=x.add(_),k=x.sub(_),C=v.transform(.67,.8),S=b.transform(-.05,.42);let P=T.sub(S),M=P.lenSqr(),D=new n.default(P.y,-P.x);D.factorSelf(this.dir*c*c);const E=S.add(P.factor(.5)).add(D.factor(200/P.lenSqr())),A=T.add(P.factor(.12)).add(D.factor(50/M));P=k.sub(S),M=P.lenSqr(),D.x=P.y*this.dir,D.y=-P.x*this.dir,D.factorSelf(c*c);const L=S.add(P.factor(.5)).add(D.factor(200/P.lenSqr())),I=k.add(P.factor(.12)).add(D.factor(50/M)),O=b.transform(.1,.95),z=b.transform(.2,1.09),j=O.sub(C),B=j.lenSqr(),F=new n.default(j.y,-j.x);F.factorSelf(this.dir*c*c);const R=C.add(j.factor(.3)).add(F.factor(80/B));if(this.crashed||(u.strokeStyle=s?st([...t.game.mod.getVar("riderColor"),.5]):"rgba(0,0,0,"+.5*d+")",u.lineWidth=6*c,u.beginPath(),u.moveTo(k.x,k.y),u.lineTo(L.x,L.y),u.lineTo(S.x,S.y),u.stroke(),e||(u.lineWidth=4*c,u.beginPath(),u.moveTo(k.x,k.y),u.lineTo(I.x,I.y),u.stroke())),u.globalAlpha=d,u.strokeStyle="#000000",u.lineWidth=w*c,u.lineCap="round",u.lineJoin="round",u.beginPath(),u.fillStyle="rgba(200,200,200,0.2)",u.arc(a.x,a.y,12.5*c,0,2*Math.PI,!1),e||u.fill(),u.stroke(),u.beginPath(),u.arc(h.x,h.y,12.5*c,0,2*Math.PI,!1),e||u.fill(),u.stroke(),e?(u.fillStyle="rgb(128, 128, 128)",u.beginPath(),u.arc(h.x,h.y,5*c,0,2*Math.PI),u.moveTo(a.x,a.y),u.arc(a.x,a.y,4*c,0,2*Math.PI),u.fill()):(u.strokeStyle="rgba(153, 153, 153,1)",u.fillStyle="rgba(204, 204, 204,1)",u.lineWidth=1,u.beginPath(),u.arc(a.x,a.y,6*c,0,2*Math.PI,!1),u.fill(),u.stroke(),u.beginPath(),u.arc(h.x,h.y,6*c,0,2*Math.PI,!1),u.fill(),u.stroke()),u.beginPath(),u.strokeStyle=r||"#000000",u.lineWidth=5*c,u.moveTo(h.x,h.y),u.lineTo(...y.transform(.4,.05).toArray()),u.moveTo(...v.transform(.72,.64).toArray()),u.lineTo(...v.transform(.46,.4).toArray()),u.lineTo(...y.transform(.4,.05).toArray()),u.stroke(),u.beginPath(),u.lineWidth=2*c,u.moveTo(...v.transform(.72,.64).toArray()),u.lineTo(...y.transform(.43,.05).toArray()),u.stroke(),u.beginPath(),u.lineWidth=1*c,u.moveTo(...v.transform(.46,.4).toArray()),u.lineTo(...v.transform(.28,.5).toArray()),u.stroke(),u.beginPath(),u.lineWidth=2*c,u.moveTo(...v.transform(.45,.3).toArray()),u.lineTo(...v.transform(.3,.4).toArray()),u.lineTo(...v.transform(.25,.6).toArray()),u.moveTo(...v.transform(.17,.6).toArray()),u.lineTo(...v.transform(.3,.6).toArray()),u.stroke(),u.beginPath(),u.lineWidth=3*c,u.moveTo(a.x,a.y),u.lineTo(...v.transform(.71,.73).toArray()),u.lineTo(...v.transform(.73,.77).toArray()),u.lineTo(...v.transform(.7,.8).toArray()),u.stroke(),u.beginPath(),u.lineWidth=(e?2:1)*c,u.moveTo(...x.add(_).toArray()),u.lineTo(...x.sub(_).toArray()),u.stroke(),this.crashed)this.ragdoll&&this.ragdoll.draw();else{if(u.lineWidth=6*c,u.strokeStyle=s?it(t.game.mod.getVar("riderColor")):"#000",u.beginPath(),u.moveTo(T.x,T.y),u.lineTo(E.x,E.y),u.lineTo(S.x,S.y),u.stroke(),e||(u.lineWidth=4*c,u.beginPath(),u.moveTo(T.x,T.y),u.lineTo(A.x,A.y),u.stroke()),u.lineWidth=8*c,u.beginPath(),u.moveTo(S.x,S.y),u.lineTo(O.x,O.y),u.stroke(),u.beginPath(),u.lineWidth=5*c,u.beginPath(),u.moveTo(O.x,O.y),u.lineTo(R.x,R.y),u.lineTo(C.x,C.y),u.stroke(),i||o)if(o)u.beginPath(),u.lineWidth=2*c,u.fillStyle=u.strokeStyle,u.arc(z.x,z.y,5*c,0,2*Math.PI),u.stroke(),u.beginPath(),u.moveTo(...b.transform(.37,1.19).toArray()),u.lineTo(...b.transform(.28,1.17).toArray()),u.lineTo(...b.transform(.27,1.39).toArray()),u.lineTo(...b.transform(.04,1.34).toArray()),u.lineTo(...b.transform(.09,1.15).toArray()),u.lineTo(...b.transform(.02,1.14).toArray()),u.stroke(),u.fill();else{let t=b.transform(.4,1.15),e=b.transform(.1,1.05);u.beginPath(),u.arc(z.x,z.y,5*c,0,2*Math.PI),u.moveTo(t.x,t.y),u.lineTo(e.x,e.y),u.lineWidth=2*c,u.stroke()}else{let t=GameInventoryManager.getItem(this.cosmetics.head),e=this.drawHeadAngle;t.draw(u,z.x,z.y,e,c,this.dir)}u.globalAlpha=1}}clone(){const t=new jt(this.player,new n.default(0,0),1,new n.default(0,0));return t.frontWheel.pos.equ(this.frontWheel.pos),t.frontWheel.vel.equ(this.frontWheel.vel),t.frontWheel.old.equ(this.frontWheel.old),t.rearWheel.pos.equ(this.rearWheel.pos),t.rearWheel.vel.equ(this.rearWheel.vel),t.rearWheel.old.equ(this.rearWheel.old),t.head.pos.equ(this.head.pos),t.head.vel.equ(this.head.vel),t.head.old.equ(this.head.old),t.masses=[t.head,t.rearWheel,t.frontWheel],t}}const Bt=jt.prototype;Bt.vehicleName="MTB",Bt.masses=null,Bt.springs=null,Bt.cosmetics=null,Bt.slow=!1,Bt.pedala=0,Bt.swapped=!1,Bt.ragdoll=null,Bt.crashed=!1;const Ft={BIKE_GROUND:"bike_ground",BIKE_AIR:"bike_air",BIKE_FALL_1:"bike_fall_1",BIKE_FALL_2:"bike_fall_2",BIKE_FALL_3:"bike_fall_3"};var Rt=jt;var Wt=class extends E{constructor(t,e,i){super(),this.init(new n.default(t,e),i),this.radius=10,this.collide=!0,this.wind=!0}update(){let t=this.vel,e=this.pos,i=this.old,s=this.parent.gravity,n=this.parent.gamepad,r=n.isButtonDown("up"),o=n.isButtonDown("left"),a=n.isButtonDown("right");0===s.x&&0===s.y||(t.x=.9*t.x,t.y=.99*t.y),o&&(e.x+=-.05),a&&(e.x+=.05),0===s.x&&0===s.y||(e.y+=-.1),r&&(e.y+=-.5),this.wind&&(e.x+=.3),e.x+=t.x,e.y+=t.y,this.collide&&this.scene.track.collide(this),0===s.x&&0===s.y||(t.x=e.x-i.x,t.y=e.y-i.y),i.x=e.x,i.y=e.y}};class Vt extends K{constructor(t,e){super(),super.init(t),this.createMasses(e),this.createSprings(),this.stopSounds(),this.focalPoint=this.head}createMasses(t){this.masses=[];var e=new Wt(t.x,t.y-10,this);e.radius=30;var i=new E;i.init(new n.default(t.x,t.y+35),this),i.friction=.1,this.masses.push(e),this.masses.push(i),this.head=this.masses[0],this.basket=this.masses[1],this.head.drive=()=>{this.explode()}}updateCameraFocalPoint(){}createSprings(){this.springs=[];let t=new G(this.head,this.basket,this);t.springConstant=.2,t.dampConstant=.2,t.lrest=t.leff=45,this.springs.push(t)}update(){if(this.crashed||this.updateSound(),this.explosion)this.explosion.update();else{this.head.wind=!this.basket.contact,this.slow=!1;let t=this.springs,e=this.masses;for(let e=t.length-1;e>=0;e--)t[e].update();for(let t=e.length-1;t>=0;t--)e[t].update();for(let e=t.length-1;e>=0;e--)t[e].update();for(let t=e.length-1;t>=0;t--)e[t].update()}}updateSound(){if(this.player.isInFocus()){let t=this.scene.sound;this.gamepad.isButtonDown("up")?t.play(Nt.BALLOON_ON,.6):t.stop(Nt.BALLOON_ON)}}stopSounds(){this.scene.sound.stop(Nt.BALLOON_ON)}draw(){if(this.explosion)this.explosion.draw(1);else{let t=this.scene.game.canvas.getContext("2d");if(this.settings.developerMode)for(let e of this.masses)e.draw(t);t.globalAlpha=this.player._opacity,this.drawBalloon(t),t.globalAlpha=1}}drawBalloon(t){let e=this.scene,i=this.basket.pos.toScreen(e),s=this.head.pos.toScreen(e),r=e.camera.zoom,o=s.sub(i).normalize(46*r),a=new n.default(-o.y,o.x),h=29/46*Math.sin(37*Math.PI/180),l=-29/46*Math.cos(37*Math.PI/180),c=29/46*Math.sin(16.65*Math.PI/180),u=-29/46*Math.cos(16.65*Math.PI/180);t.save(),t.strokeStyle="#999999",t.lineWidth=Math.max(2*r,1),t.beginPath(),t.moveTo(i.x+.1*a.x,i.y+.1*a.y),t.lineTo(s.x+a.x*h+o.x*l,s.y+a.y*h+o.y*l),t.moveTo(i.x-.1*a.x,i.y-.1*a.y),t.lineTo(s.x-a.x*h+o.x*l,s.y-a.y*h+o.y*l),t.moveTo(i.x+.1*a.x,i.y+.1*a.y),t.lineTo(s.x+a.x*c+o.x*u,s.y+a.y*c+o.y*u),t.moveTo(i.x-.1*a.x,i.y-.1*a.y),t.lineTo(s.x-a.x*c+o.x*u,s.y-a.y*c+o.y*u),t.closePath(),t.stroke(),t.beginPath(),t.arc(s.x,s.y,30*r,0,2*Math.PI),t.fillStyle="#000000",t.fill(),this.gamepad.isButtonDown("up")&&(t.beginPath(),t.strokeStyle="#FFFF00",t.lineWidth=8*r,t.moveTo(i.x,i.y),t.lineTo(i.x+.1*o.x,i.y+.1*o.y),t.closePath(),t.stroke(),t.beginPath(),t.strokeStyle="#FFAA00",t.lineWidth=3*r,t.moveTo(i.x,i.y),t.lineTo(i.x+.1*o.x,i.y+.1*o.y),t.closePath(),t.stroke()),t.beginPath(),t.fillStyle="#000000",t.moveTo(i.x+.1*a.x,i.y+.1*a.y),t.lineTo(i.x-.1*a.x,i.y-.1*a.y),t.lineTo(i.x-.22*o.x-.1*a.x,i.y-.22*o.y-.1*a.y),t.lineTo(i.x-.22*o.x+.1*a.x,i.y-.22*o.y+.1*a.y),t.lineTo(i.x+.1*a.x,i.y+.1*a.y),t.closePath(),t.fill(),t.restore()}}const Ht=Vt.prototype;Ht.vehicleName="BALLOON",Ht.head=null,Ht.basket=null,Ht.masses=null,Ht.springs=null,Ht.slow=!1,Ht.vehicleInit=Ht.init,Ht.crashed=!1;const Nt={BALLOON_ON:"balloon_on"};var Ut=Vt;class qt extends K{constructor(t,e){super(),this.init(t),this.createMasses(e),this.createSprings(),this.stopSounds()}createMasses(t){let e=[];e.push(new Q(new n.default(t.x+15,t.y+40),this)),e.push(new Q(new n.default(t.x+-15,t.y+40),this)),e.push(new Q(new n.default(t.x+-15,t.y+10),this)),e.push(new Q(new n.default(t.x+15,t.y+10),this));let i=new E;i.init(new n.default(0,0),this),i.vel=new n.default(0,0),this.m0=e[0],this.m1=e[1],this.m2=e[2],this.m3=e[3],this.head=i,this.masses=e,this.focalPoint=this.head}createSprings(){let t=this.masses,e=[];e.push(this.spring0=new G(t[0],t[1],this)),e.push(this.spring1=new G(t[1],t[2],this)),e.push(this.spring2=new G(t[2],t[3],this)),e.push(this.spring3=new G(t[3],t[0],this)),e.push(this.spring4=new G(t[0],t[2],this)),e.push(this.spring5=new G(t[1],t[3],this));for(let t of e)t.springConstant=.2,t.dampConstant=.2;this.springs=e}update(){if(this.crashed||(this.updateSound(),this.control()),this.explosion)this.explosion.update();else{let t=this.masses,e=this.springs;for(let t=e.length-1;t>=0;t--)e[t].update();for(let e=t.length-1;e>=0;e--)t[e].update();if((t[0].contact||t[1].contact||t[2].contact||t[3].contact)&&(this.slow=!1),!this.slow){this.control();for(let t=e.length-1;t>=0;t--)e[t].update();for(let e=t.length-1;e>=0;e--)t[e].update()}let i=0,s=0;for(let e=t.length-1;e>=0;e--)i+=t[e].pos.x,s+=t[e].pos.y;let n=this.head;n.pos.x=.25*i,n.pos.y=.25*s,n.vel=t[0].vel}}updateSound(){this.player.isInFocus()&&this.scene.sound.play(Yt.BLOB,.4)}stopSounds(){this.scene.sound.stop(Yt.BLOB)}updateCameraFocalPoint(){}control(){let t=this.player.getGamepad(),e=t.isButtonDown("up"),i=t.isButtonDown("down"),s=t.isButtonDown("left"),n=t.isButtonDown("right"),r=t.isButtonDown("z"),o=this.masses,a=this.springs,h=n?1:-1,l=n||s?1:0;i&&(l=0);for(let t of o)t.motor+=(l*h-t.motor)/10,0===l&&(t.motor=0),t.brake=i;let c=s?1:0;if(c+=n?-1:0,a[4].rotate(c/9),a[5].rotate(c/9),r||e)for(let t=a.length-1;t>=0;t--)a[t].contract(30,10);else for(let t=a.length-1;t>=0;t--)a[t].contract(0,1.5)}draw(){if(this.explosion)this.explosion.draw(1);else{const t=this.scene.game.canvas.getContext("2d"),e=this.scene,i=e.camera.zoom,s=new Array(4);for(let t=0;t<4;t++)s[t]=this.masses[t].pos.toScreen(e);let n,r=[s[0]],o=0,a=[null,null];for(let t=0;t<s.length;t++)for(let e=t+1;e<s.length;e++)n=s[t].sub(s[e]).lenSqr(),n>o&&(o=n,a[0]=s[t],a[1]=s[e]);if(0!==o){s.splice(s.indexOf(a[0]),1),s.splice(s.indexOf(a[1]),1);let t=a[1].sub(a[0]).cross(s[0].sub(a[0])),e=a[1].sub(a[0]).cross(s[1].sub(a[0]));if(Math.sign(t)!==Math.sign(e))r=[a[0],s[0],a[1],s[1]];else{let i=Math.abs(t)>Math.abs(e)?s[0]:s[1],n=i===s[0]?s[1]:s[0],o=a[1].sub(a[0]).dot(i.sub(a[0])),h=a[1].sub(a[0]).dot(n.sub(a[0])),l=a[1],c=a[0];o>h&&(l=a[0],c=a[1]),r=Math.sign(l.sub(n).cross(i.sub(n)))===Math.sign(t)*(o>h?-1:1)?[c,i,l]:[c,i,n,l]}}t.globalAlpha=this.player._opacity,t.beginPath(),t.strokeStyle="#000",t.fillStyle="#000",t.lineJoin="round",t.lineWidth=20*i,t.moveTo(r[0].x,r[0].y);for(let e=1;e<r.length;e++)t.lineTo(r[e].x,r[e].y);t.lineTo(r[0].x,r[0].y),t.fill(),t.stroke(),t.globalAlpha=1}}}const Gt=qt.prototype;Gt.vehicleName="Blob",Gt.masses=null,Gt.springs=null,Gt.slow=!1;const Yt={BLOB:"blob_sound"};var Xt=qt;const Kt=Math.sqrt,Zt=Math.pow,Jt=Math.max;const $t={};$t.BMX=ft,$t.MTB=Rt,$t.HELI=Tt,$t.TRUCK=At,$t.HELI=Tt,$t.BALLOON=Ut,$t.BLOB=Xt;let Qt=0;function te(t,e){for(var i in e)try{t[i]=e[i].constructor==Object?te(t[i],e[i]):e[i]}catch(s){t[i]=e[i]}return t}var ee=class{constructor(t,e){this.id=Qt++,this._scene=t,this._game=t.game,this._user=e,this._settings=t.settings;var i=t.settings.startVehicle;t.settings.track&&(i=t.settings.track.vehicle),this._baseVehicleType=i,this._gamepad=new P(t),this._ghost=!1,this._color=e.color?e.color:"#000000",this.setDefaults(),this.createBaseVehicle(new n.default(0,35),1,new n.default(0,0)),this.deadVehiclesIndex=0,this.deadVehicles=new Array(10)}getCheckpointCount(){return this._checkpoints.length}setDefaults(){this._baseVehicle=!1,this._tempVehicleType=null,this._tempVehicle=!1,this._tempVehicleTicks=0,this._temp_vehicle_options=null,this._addCheckpoint=!1,this._checkpoints=[],this._crashed=!1,this._effect=!1,this._effectTicks=0,this._opacity=1,this.complete=!1,this._powerupsConsumed={checkpoints:[],targets:[],misc:[]}}hasCheckpoints(){return this._checkpoints.length>0}setColor(t){this._color=t}dead(){if(this._crashed=!0,!1===this._ghost){let t=this._scene,e=t.settings,i=t.message;t.state.playerAlive=this.isAlive(),this._checkpoints.length>0?e.mobile?i.show("Tap to go to checkpoint!",!1,"#000000","#FFFFFF"):i.show("Press Enter For Checkpoint",!1,"#000000","#FFFFFF"):e.mobile?i.show("Tap to Restart!",!1,"#000000","#FFFFFF"):i.show("Press Enter To Restart",!1,"#000000","#FFFFFF")}}setAsGhost(){this._ghost=!0}isGhost(){return this._ghost}isAlive(){return!this._crashed}getTargetsHit(){return this._powerupsConsumed.targets.length}getGamepad(){return this._gamepad}setBaseVehicle(t){this._baseVehicleType=t,this.reset()}createBaseVehicle(t,e,i){this._tempVehicle&&this._tempVehicle.stopSounds(),this._baseVehicle=new $t[this._baseVehicleType](this,t,e,i),this._tempVehicle=!1,this._tempVehicleType=!1,this._tempVehicleTicks=0}setTempVehicle(t,e,i,s){this._temp_vehicle_options&&this._temp_vehicle_options.type===t&&(e+=this._temp_vehicle_options.ticks),this._temp_vehicle_options={type:t,ticks:e,position:i,direction:s}}createTempVehicle(t,e,i,s){if(this._temp_vehicle_options){let n=this._temp_vehicle_options;t=n.type,e=n.ticks,i=n.position,s=n.direction,this._temp_vehicle_options=null}this._tempVehicleType===t?this._tempVehicleTicks+=e:(this.getActiveVehicle().stopSounds(),this._effect=new H(i,this._scene),this._effectTicks=45,this._tempVehicleType=t,this._tempVehicle=new $t[t](this,i,s),this._tempVehicleTicks=e)}update(){if(!this.complete||!this._scene.settings.track){var t=this._baseVehicle;this._temp_vehicle_options&&this.createTempVehicle(),this._tempVehicleTicks>0&&(t=this._tempVehicle,this._crashed||this._tempVehicleTicks--,this._tempVehicleTicks<=0&&!this._crashed&&(this._effectTicks=45,this._effect=new H(this._tempVehicle.focalPoint.pos,this._scene),this.createBaseVehicle(this._tempVehicle.focalPoint.pos,this._tempVehicle.dir,this._tempVehicle.masses[0].vel),t=this._baseVehicle)),this._effectTicks>0&&(this._effectTicks--,this._effect.update()),t.update();for(let t=0;t<this.deadVehicles.length;t++)this.deadVehicles[t]&&this.deadVehicles[t].update();this._addCheckpoint&&(this._createCheckpoint(),this._addCheckpoint=!1)}}isInFocus(){let t=this._scene.camera,e=!1;return t.playerFocus&&t.playerFocus===this&&(e=!0),e}updateOpacity(){let t=1,e=this._scene.camera;if(e.playerFocus&&e.playerFocus!==this){var i=this.getDistanceBetweenPlayers(e.playerFocus);i<1200&&(t=Math.min(i/500,1))}this._opacity=t}drawName(){var t=this._scene;let e=this._color,i=this._user.d_name,s=t.game,n=t.camera.zoom,r=s.pixelRatio,o=s.canvas.getContext("2d"),a=this._opacity,h=this.getActiveVehicle().focalPoint.pos.toScreen(t);o.globalAlpha=a,o.beginPath(),o.fillStyle=e,o.moveTo(h.x,h.y-40*n),o.lineTo(h.x-5*n,h.y-50*n),o.lineTo(h.x+5*n,h.y-50*n),o.lineTo(h.x,h.y-40*n),o.fill();var l=9*r*Jt(n,1);o.font=l+"pt helsinki",o.textAlign="center",o.fillStyle=e,o.fillText(i,h.x,h.y-60*n),o.globalAlpha=1}draw(){this.updateOpacity();var t=this._baseVehicle;this._tempVehicleTicks>0&&(t=this._tempVehicle),this._effectTicks>0&&this._effect.draw(this._effectTicks/100),t.draw();for(let t=0;t<this.deadVehicles.length;t++)this.deadVehicles[t]&&this.deadVehicles[t].draw();this.isGhost()&&this.drawName()}checkKeys(){let t=this._gamepad,e=this._ghost,i=this._scene;if(e||(t.areKeysDown()&&!this._crashed&&i.play(),t.isButtonDown("restart")&&(i.restartTrack=!0,t.setButtonUp("restart")),(t.isButtonDown("up")||t.isButtonDown("down")||t.isButtonDown("left")||t.isButtonDown("right"))&&i.camera.focusOnMainPlayer()),t.isButtonDown("enter")&&(this.gotoCheckpoint(),t.setButtonUp("enter")),t.isButtonDown("backspace")){var s=t.getButtonDownOccurances("backspace");this.removeCheckpoint(s),t.setButtonUp("backspace")}}getDistanceBetweenPlayers(t){let e=this.getActiveVehicle(),i=t.getActiveVehicle();return Kt(Zt(i.focalPoint.pos.x-e.focalPoint.pos.x,2)+Zt(i.focalPoint.pos.y-e.focalPoint.pos.y,2))}getActiveVehicle(){let t=this._baseVehicle;return this._tempVehicleTicks>0&&(t=this._tempVehicle),t}_createCheckpoint(){let t={};this._tempVehicleTicks>0?(t._tempVehicleType=this._tempVehicleType,t._tempVehicle=JSON.stringify(this._tempVehicle,this._snapshotFilter),t._tempVehicleTicks=this._tempVehicleTicks):(t._baseVehicleType=this._baseVehicleType,t._baseVehicle=JSON.stringify(this._baseVehicle,this._snapshotFilter)),t._powerupsConsumed=JSON.stringify(this._powerupsConsumed),t._crashed=this._crashed,this._checkpoints.push(t)}_snapshotFilter(t,e){switch(t){case"parent":case"player":case"scene":case"settings":case"masses":case"springs":case"focalPoint":case"gamepad":return;case"explosion":return!1;default:return e}}setCheckpointOnUpdate(){this._addCheckpoint=!0}crashed(){this._crashed=!0}gotoCheckpoint(){let t=this._gamepad.replaying,e=this._scene;if(this._checkpoints.length>0){let s=this._checkpoints[this._checkpoints.length-1];if(s._tempVehicle){this._baseVehicle.stopSounds();let t=this._tempVehicle;this._tempVehicleType!==s._tempVehicleType&&(t=new $t[s._tempVehicleType](this,{x:0,y:0})),te(t,JSON.parse(s._tempVehicle)),this._tempVehicle=t,this._tempVehicleType=s._tempVehicleType,this._tempVehicleTicks=s._tempVehicleTicks,t.updateCameraFocalPoint()}else{const t=this._baseVehicle,e=JSON.parse(s._baseVehicle);let i=t;if(this._game.mod.getVar("keepDeadRiders")&&!this._tempVehicle){const e=t.clone();t.ignore=!0,t.gamepad=t.gamepad.clone(),this.deadVehicles[this.deadVehiclesIndex]=t,this.deadVehiclesIndex=(this.deadVehiclesIndex+1)%this.deadVehicles.length,i=e}te(i,e),i.ragdoll&&delete i.ragdoll,this._tempVehicle&&this._tempVehicle.stopSounds(),this._baseVehicle=i,this._tempVehicleTicks=0,this._tempVehicleType=!1,i.updateCameraFocalPoint()}if(this._powerupsConsumed=JSON.parse(s._powerupsConsumed),this._crashed=s._crashed,!t){var i=e.settings;e.state.playerAlive=this.isAlive(),e.settings.mobile?e.message.show("Tap to resume",5,"#826cdc","#FFFFFF"):e.message.show("Press Backspace To Go Back Further",5,"#826cdc","#FFFFFF"),e.track.updatePowerupState(this),i.waitAtCheckpoints&&(e.state.playing=!1),e.camera.focusOnMainPlayer()}e.camera.playerFocus===this&&e.camera.fastforward()}else t||this.restartScene()}restartScene(){if(!this._gamepad.replaying&&(this._scene.restartTrack=!0,this._game.mod.getVar("keepDeadRiders")&&!this._tempVehicle)){const t=this._baseVehicle,e=t.clone();t.gamepad=t.gamepad.clone(),this._baseVehicle=e,t.ignore=!0,this.deadVehicles[this.deadVehiclesIndex]=t,this.deadVehiclesIndex=(this.deadVehiclesIndex+1)%this.deadVehicles.length}}removeCheckpoint(t){if(this._checkpoints.length>1){for(var e=0;e<t;e++)this._checkpoints.pop();this.gotoCheckpoint()}else this.restartScene()}close(){this.id=null,this._scene=null,this._game=null,this._user=null,this._settings=null,this._baseVehicleType=null,this._gamepad.close(),this._gamepad=null,this._baseVehicle=null,this._tempVehicleType=null,this._tempVehicle=null,this._tempVehicleTicks=null,this._addCheckpoint=null,this._checkpoints=null,this._crashed=null,this._effect=null,this._effectTicks=null,this._powerupsConsumed=null}reset(){this._tempVehicle&&this._tempVehicle.stopSounds(),this._baseVehicle.stopSounds(),this.setDefaults(),this.createBaseVehicle(new n.default(0,35),1,new n.default(0,0)),this._gamepad.reset(),this._scene.state.playerAlive=this.isAlive()}};var ie=class{constructor(t){this.scene=t,this.game=t.game,this.settings=t.settings,this.firstPlayer=null,this._players=[],this._playerLookup={}}update(){for(let t of this._players)t.update()}mutePlayers(){for(let t of this._players)t.getActiveVehicle().stopSounds()}updateGamepads(){for(let t of this._players)t._gamepad.update()}createPlayer(t,e){return new ee(t,e)}addPlayer(t){this._players.push(t),this._playerLookup[t.id]=t}checkKeys(){for(let t of this._players)t.checkKeys()}draw(){for(let t of this._players)t.draw()}getPlayerByIndex(t){return this._players[t]}getPlayerById(t){return this._playerLookup[t]}getPlayerCount(){return this._players.length}reset(){for(let t of this._players)t.reset()}clear(){this._players=[],this._playerLookup={},this._players.push(this.firstPlayer),this._playerLookup[this.firstPlayer.id]=this.firstPlayer}_closePlayers(){for(let t of this._players)t.close()}close(){this._closePlayers(),this._players=null,this.firstPlayer=null,this._playerLookup=null,this.scene=null,this.game=null,this.settings=null}},se=s(7),ne=s.n(se),re=s(4),oe=s(5);const ae=Math.sqrt,he=Math.pow;class le{constructor(){}init(t){this.game=t.scene.game,this.scene=t.scene,this.settings=this.game.settings,this.remove=0}getCode(){}recache(t){this.constructor.drawData.dirty=!1;let e=this.constructor.drawData.canvas;e.width=Math.ceil(this.constructor.drawData.width*t),e.height=Math.ceil(this.constructor.drawData.height*t);let i=e.getContext("2d");this.drawPowerup(t,i),this.settings.developerMode&&(i.beginPath(),i.rect(0,0,e.width,e.height),i.strokeStyle="#F008",i.lineWidth=1*t,i.stroke())}setDirty(t){this.constructor.drawData.dirty=t}draw(t,e,i,s){const n=this.game.mod.getVar("fadedVehiclePowerups");if(!this.hit||n){this.constructor.drawData.dirty&&this.recache(i);let n=this.constructor.drawData.width*i,r=this.constructor.drawData.height*i;s.save(),this.hit&&(s.globalAlpha=.3),s.drawImage(this.constructor.drawData.canvas,t-n/2,e-r/2,n,r),s.restore()}}erase(t,e){let i=!1;0===this.remove&&(e>=ae(he(t.x-this.x,2)+he(t.y-this.y,2))&&(i=[this],this.remove=1,this.redrawSectors()));return i}redrawSectors(){this.sector&&(this.sector.powerupCanvasDrawn=!1)}markSectorsDirty(){this.sector.dirty=!0}collide(t){let e=t.pos.x-this.x,i=t.pos.y-this.y,s=ae(he(e,2)+he(i,2));!this.hit&&26>s&&(this.hit=!0,this.sector.powerupCanvasDrawn=!1)}addSectorReference(t){this.sector=t}}le.prototype.scene=null,le.prototype.angle=0,le.prototype.x=0,le.prototype.y=0,le.prototype.name=null,le.prototype.sector=null,le.prototype.settings=null,le.prototype.remove=0;var ce=le;function ue(t,e,i){const s=t.canvas;t.scale(s.width/e.width,s.height/e.height),t.arc(e.width/2,e.height/2,7,0,2*Math.PI),t.closePath(),t.strokeStyle="#000000",t.fillStyle=i,t.lineWidth=2,t.fill(),t.stroke()}function de(t,e,i){const s=t.canvas;t.save(),t.scale(s.width/e.width,s.height/e.height),t.translate(e.width/2,e.height/2),t.beginPath(),t.moveTo(-10,-7),t.lineTo(-10,7),t.lineTo(10,0),t.closePath(),t.lineWidth=2,t.lineJoin="round",t.fillStyle=i,t.strokeStyle="#000000",t.fill(),t.stroke(),t.restore()}const pe=Math.sqrt,fe=Math.pow,ge=Math.random;class me extends ce{constructor(t,e,i){super(),this.x=t,this.y=e,this.hit=!1,this.id=ge().toString(36).substr(2),this.init(i)}getCode(){return"T "+this.x.toString(32)+" "+this.y.toString(32)}recache(t){we=!1,this.cacheStar(t),this.cacheEmptyStar(t)}cacheStar(t){let e=ve.canvas;e.width=ve.width*t,e.height=ve.height*t;let i=e.getContext("2d");this.drawStar(e.width/2,e.height/2,5,10,5,!0,t,i),this.settings.developerMode&&(i.beginPath(),i.rect(0,0,e.width,e.height),i.strokeStyle="red",i.strokeWidth=1*t,i.stroke())}cacheEmptyStar(t){var e=ye.canvas;e.width=ve.width*t,e.height=ve.height*t;let i=e.getContext("2d");this.drawStar(e.width/2,e.height/2,5,10,5,!1,t,i),this.settings.developerMode&&(i.beginPath(),i.rect(0,0,e.width,e.height),i.strokeStyle="red",i.strokeWidth=1*t,i.stroke())}setDirty(t){we=t}draw(t,e,i,s){if(this.hit)if(this.game.mod.getVar("crPowerups")){we&&this.recache(i);const n=ve.width*i,r=ve.height*i,o=n/2,a=r/2;s.save(),s.globalAlpha=.4,s.drawImage(ve.canvas,t-o,e-a,n,r),s.restore(0)}else{const n=ye.width*i,r=ye.height*i,o=n/2,a=r/2;s.drawImage(ye.canvas,t-o,e-a,n,r)}else{we&&this.recache(i);const n=ve.width*i,r=ve.height*i,o=n/2,a=r/2;s.drawImage(ve.canvas,t-o,e-a,n,r)}}drawStar(t,e,i,s,n,r,o,a){if(this.game.mod.getVar("crPowerups"))ue(a,ve,r?"#ff0":"#ffa");else{var h=Math.PI/2*3,l=t,c=e,u=Math.PI/i;s*=o,n*=o,a.strokeSyle="#000",a.beginPath(),a.moveTo(t,e-s);for(var d=0;i>d;d++)l=t+Math.cos(h)*s,c=e+Math.sin(h)*s,a.lineTo(l,c),h+=u,l=t+Math.cos(h)*n,c=e+Math.sin(h)*n,a.lineTo(l,c),h+=u;a.lineTo(t,e-s),a.closePath(),a.lineWidth=Math.max(2*o,1),a.strokeStyle="black",a.stroke(),a.fillStyle=r?"#FAE335":"#FFFFFF",a.fill()}}collide(t){let e=t.parent,i=e.player;if(!e.ignore){let s=pe(fe(t.pos.x-this.x,2)+fe(t.pos.y-this.y,2)),n=i._powerupsConsumed.targets,r=this.scene;if(s<26&&e.alive&&!n.includes(this.id)){n.push(this.id);let t=n.length,e=r.track.targetCount;i.isGhost()||(this.hit=!0,this.sector.powerupCanvasDrawn=!1,r.sound.play("goal_sound"),r.message.show(t+" of "+e+" Stars",50,"#FAE335","#666666")),t>=e&&(i.complete=!0)}}}erase(t,e){let i=super.erase(t,e);return i&&this.scene.track.targetCount--,i}}const ve={canvas:document.createElement("canvas"),width:35,height:35},ye={canvas:document.createElement("canvas"),width:35,height:35};let we=!0;const xe=me.prototype;xe.x=0,xe.y=0,xe.name="goal",xe.hit=!1,xe.superErase=xe.erase;var _e=me;const be=Math.floor;class Te{constructor(t){this.currentTool="",this.scene=t,this.camera=t.camera,this.mouse=t.mouse,this.mouse.updateCallback=this.draw.bind(this),this.gamepad=t.playerManager.firstPlayer.getGamepad(),this.tools={},this.options=t.settings.toolHandler,this.snapPoint=new n.default,this.snapPoint.equ(this.scene.track.defaultLine.p2),this.gridCache=!1,this.initAnalytics(),this.actionTimeline=[],this.actionTimelinePointer=0}initAnalytics(){this.analytics={actions:0}}enableGridUse(){this.gridUseEnabled=!0}getToolOptions(){return this.tools[this.currentTool].getOptions()}setToolOption(t,e,i){void 0!==i&&void 0!==this.tools[i]?this.tools[i].setOption(t,e):this.tools[this.currentTool].setOption(t,e),this.scene.stateChanged()}registerTool(t){let e=new t(this),i=e.name.toLowerCase();this.tools[i]=e}setTool(t){t=t.toLowerCase(),this.currentTool!==t&&(this.resetTool(),this.currentTool=t,this.scene.stateChanged(),this.analytics.actions++)}addActionToTimeline(t){const e=[];this.actionTimelinePointer>=50&&(e.push(...this.actionTimeline.splice(0,this.actionTimeline.length-50+1)),this.actionTimelinePointer=49);const i=e.length;e.push(...this.actionTimeline.splice(this.actionTimelinePointer)),this.actionTimeline.push(t),this.actionTimelinePointer++;for(let t=0;t<e.length;t++){const s=e[t];if(s.type===(t<i?"remove":"add")){this.scene.track.needsCleaning=!0;for(let t of s.objects)t.remove=2,t.markSectorsDirty()}}}revertAction(){if(this.actionTimelinePointer>0){this.actionTimelinePointer--;var t=this.actionTimeline[this.actionTimelinePointer];switch(t.type){case"add":this.removeObjects(t.objects);break;case"remove":this.addObjects(t.objects)}}}applyAction(){let t=this.actionTimeline,e=this.actionTimelinePointer;if(e<t.length){var i=this.actionTimeline[e];switch(this.actionTimelinePointer=e+1,i.type){case"add":this.addObjects(i.objects);break;case"remove":this.removeObjects(i.objects)}}}removeObjects(t){for(let e of t)e.remove=1,e.redrawSectors(),e instanceof _e&&this.scene.track.targetCount--}addObjects(t){let e=this.scene.track;for(let i of t)i.remove=0,i.redrawSectors(),i instanceof _e&&(e.dirty=!0,e.targetCount++)}resetTool(){""!==this.currentTool&&this.tools[this.currentTool].reset()}update(){this.checkGrid(),this.mouse.enabled&&this.tools[this.currentTool].update(),this.checkHotkeys(),this.checkMouse(),this.checkSnap()}checkGrid(){var t=this.scene.camera;t.zoom!==t.desiredZoom&&(this.gridCache=!1)}checkSnap(){this.options.snapLocked&&(this.options.snap=!0)}moveCameraTowardsMouse(){if(!1===this.options.cameraLocked){var t=this.scene.screen,e=t.height-100,i=t.width-100,s=this.options.cameraMoveSpeed,n=t.center,r=this.camera,o=this.mouse.touch.pos.x,a=this.mouse.touch.pos.y,h=.8*(o-n.x),l=a-n.y;(o>=i||100>=o||a>=e||100>=a)&&(r.position.x+=h*s*(1/r.zoom),r.position.y+=l*s*(1/r.zoom))}}checkMouse(){(this.mouse.touch.press||this.mouse.secondaryTouch.press)&&this.press()}press(){this.camera.unfocus()}checkHotkeys(){let t=this.gamepad,e=this.options.snap,i=this.options.snapLocked,s=t.isButtonDown("alt");this.options.rightClickMove&&(s=t.isButtonDown("shift")),s&&!e?this.toggleQuickSnap():s||!e||i||this.toggleQuickSnap(),t.isButtonDown("ctrl")&&t.isButtonDown("z")&&(t.setButtonUp("z"),this.revertAction()),t.isButtonDown("ctrl")&&t.isButtonDown("y")&&(t.setButtonUp("y"),this.applyAction());let n=this.tools;for(var r in n)n[r].checkKeys();this.gridUseEnabled&&t.isButtonDown("grid")&&(t.setButtonUp("grid"),this.toggleGrid()),t.isButtonDown("zoom_increase")&&(t.setButtonUp("zoom_increase"),this.scene.camera.increaseZoom()),t.isButtonDown("zoom_decrease")&&(t.setButtonUp("zoom_decrease"),this.scene.camera.decreaseZoom()),t.isButtonDown("zoom_100")&&(t.setButtonUp("zoom_100"),this.scene.camera.resetZoom()),t.isButtonDown("lineType")&&(t.setButtonUp("lineType"),this.toggleLineType())}toggleLineType(){this.options.lineType="physics"===this.options.lineType?"scenery":"physics",this.scene.stateChanged()}toggleGrid(){this.options.grid=this.scene.state.grid=!this.options.grid,this.scene.stateChanged()}toggleSnap(){this.options.snap=!this.options.snap,this.options.snapLocked=!this.options.snapLocked,this.resetTool(),this.scene.stateChanged()}toggleQuickSnap(){this.options.snapLocked||(this.options.snap=!this.options.snap,this.resetTool(),this.scene.stateChanged())}toggleCameraLock(){this.options.cameraLocked=!this.options.cameraLocked,this.scene.stateChanged()}draw(){this.mouse.enabled&&this.tools[this.currentTool].draw()}drawGrid(){!0===this.options.grid&&this.options.visibleGrid&&!this.scene.game.mod.vars.invisibleGrid&&this.drawCachedGrid(this.scene.game.canvas.getContext("2d"),this.scene.game.pixelRatio)}drawCachedGrid(t,e){this.gridCache||this.cacheGrid(e);let i=this.gridCache,s=i.width,n=i.height,r=this.scene.screen.center,o=2+(r.x/s|0),a=2+(r.y/n|0),h=this.camera.zoom,l=this.camera.position.x*h%s,c=this.camera.position.y*h%n;t.globalAlpha=this.gridCacheAlpha;for(let e=-o;e<o;e++)for(let o=-a;o<a;o++){let a=e*s-l+r.x,h=o*n-c+r.y;t.drawImage(i,0,0,s,n,a,h,s,n)}t.globalAlpha=1}cacheGrid(){var t=this.scene.camera.zoom,e=Math.round(200*t),i=Math.round(200*t),s=this.options.gridSize*t,n=document.createElement("canvas");n.width=e,n.height=i;var r=n.getContext("2d");r.strokeStyle=this.options.gridMinorLineColor,r.strokeWidth=1,r.beginPath();var o=null,a=null,h=null,l=null;for(o=be(e/s),a=0;o>=a;a++)h=a*s,r.moveTo(h,0),r.lineTo(h,i),r.stroke();for(o=be(i/s),a=0;o>=a;a++)l=a*s,r.moveTo(0,l),r.lineTo(e,l),r.stroke();r.beginPath(),r.rect(0,0,e,i),r.lineWidth=2,r.strokeStyle=this.options.gridMajorLineColor,r.stroke(),r.closePath(),this.gridCache=n,this.gridCacheAlpha=Math.min(t+.2,1)}resize(){this.cacheGrid(this.scene.game.pixelRatio)}undo(){}redo(){}close(){this.actionTimeline=[],this.actionTimelinePointer=0,this.tools=null,this.mouse=null,this.scene=null,this.camera=null,this.options.grid=!1,this.options=null,this.gridCache=null}}const ke=Te.prototype;ke.currentTool="",ke.scene=null,ke.camera=null,ke.mouse=null,ke.tools={},ke.gamepad=null,ke.gridCache=!1,ke.gridCacheAlpha=1,ke.gridUseEnabled=!1,ke.snapPoint=!1,ke.options=null;var Ce=Te,Se=s(1);class Pe extends Se.default{constructor(t){super(),super.init(t)}hold(){let t=this.mouse.touch,e=this.camera,i=t.old.pos.sub(t.pos).factor(1/e.zoom);e.position.inc(i)}draw(){}drawText(t){let e=this.game.pixelRatio;t.fillStyle="#000000",t.font=12*e+"pt arial",t.fillText(this.name,10*e,20*e),t.font=8*e+"pt arial"}}Pe.prototype.name="Camera";var Me=Pe,De=s(15),Ee=s.n(De),Ae=Math.sqrt,Le=Math.pow;class Ie extends Se.default{constructor(t){super(),super.init(t),this.p1=new n.default(0,0),this.p2=new n.default(0,0),this.midpoint=new n.default(0,0),this.active=!1,this.options={}}getOptions(){let t=this.toolHandler,e=this.options;return e.lineType=t.options.lineType,e.snap=t.options.snap,e}reset(){this.active=!1,this.anchoring=!1}press(){if(!this.active){this.active=!0;var t=this.mouse.touch.real;this.p1.x=t.x,this.p1.y=t.y}}hold(){var t=this.mouse.touch.real;this.p2.x=t.x,this.p2.y=t.y;let e=this.p1,i=this.p2;this.midpoint.x=(e.x+i.x)/2,this.midpoint.y=(e.y+i.y)/2,this.toolHandler.moveCameraTowardsMouse()}release(){let t=this.p1,e=this.p2,i=this.midpoint,s=this.toolHandler;if(this.anchoring&&this.active){if(i.x===e.x&&i.y===e.y){let i=this.scene.track,n=!1;n="physics"===s.options.lineType?i.addPhysicsLine(t.x,t.y,e.x,e.y):i.addSceneryLine(t.x,t.y,e.x,e.y),n&&s.addActionToTimeline({type:"add",objects:[n]}),s.snapPoint.x=e.x,s.snapPoint.y=e.y}else this.splitAndAddCurve();this.anchoring=!1,this.active=!1}else if(this.active){Ae(Le(e.x-t.x,2)+Le(e.y-t.y,2))>0&&(this.anchoring=!0),this.active=!1}}updateAnchor(){this.midpoint.equ(this.mouse.touch.real)}splitAndAddCurve(){let t=Ee()(this.p1,this.midpoint,this.p2),e=this.scene.track,i=this.toolHandler,s=[];for(let n=0;n<t.length-2;n+=2){let r=t[n],o=t[n+1],a=t[n+2],h=t[n+3],l=!1;l="physics"===i.options.lineType?e.addPhysicsLine(r,o,a,h):e.addSceneryLine(r,o,a,h),l&&s.push(l),i.snapPoint.x=a,i.snapPoint.y=h}s.length>0&&i.addActionToTimeline({type:"add",objects:s})}update(){let t=this.mouse,e=t.touch,i=t.secondaryTouch,s=this.toolHandler.gamepad,n=this.toolHandler;n.options.snap&&(this.active=!0,this.p1=n.snapPoint,this.anchoring||this.hold());let r=this.toolHandler.options,o=s.isButtonDown("shift");r.rightClickMove&&(o=i.old.down),o?(e.old.down||r.rightClickMove)&&this.moveCamera():(e.press&&(this.anchoring||this.press(),this.active=!0),e.old.down&&!this.anchoring&&this.hold()),this.anchoring&&this.updateAnchor(),e.release&&this.release(),!1===t.mousewheel||o||this.mousewheel(t.mousewheel)}draw(){let t=this.scene,e=t.game.canvas.getContext("2d"),i=t.camera.zoom;this.drawCursor(e,i),(this.active||this.anchoring)&&(this.drawLine(e,i),this.drawPoint(e,this.p1,i),this.drawPoint(e,this.p2,i))}drawCursor(t,e){let i=this.mouse.touch.real.toScreenSnapped(this.scene);if(this.toolHandler.options.grid){let s=5*e;t.beginPath(),t.moveTo(i.x,i.y-s),t.lineTo(i.x,i.y+s),t.moveTo(i.x-s,i.y),t.lineTo(i.x+s,i.y),t.lineWidth=1*e,t.stroke()}else t.beginPath(),t.arc(i.x,i.y,1*e,0,2*Math.PI,!1),t.lineWidth=1,t.fillStyle="#1884cf",t.fill()}drawPoint(t,e,i){let s=e.toScreenSnapped(this.scene);t.beginPath(),t.arc(s.x,s.y,1*i,0,2*Math.PI,!1),t.lineWidth=1,t.fillStyle="#1884cf",t.fill()}drawText(t){let e=this.name,i=this.game.pixelRatio;t.fillStyle="#000000",t.font=12*i+"pt arial",t.fillText(e,10*i,20*i),t.font=8*i+"pt arial"}drawLine(t,e){let i=2*e>.5?2*e:.5,s="physics"===this.toolHandler.options.lineType?"#000":"#AAA";t.beginPath(),t.lineWidth=i,t.lineCap="round",t.strokeStyle=s;let n=this.p1.toScreenSnapped(this.scene),r=this.p2.toScreenSnapped(this.scene),o=this.midpoint.toScreenSnapped(this.scene);t.moveTo(n.x,n.y),t.quadraticCurveTo(o.x,o.y,r.x,r.y),t.stroke()}}const Oe=Ie.prototype;Oe.name="Curve",Oe.active=!1,Oe.p1=null,Oe.p2=null,Oe.midpoint=null,Oe.anchoring=!1,Oe.options=null;var ze=Ie;class je extends Se.default{constructor(t){super(),this.game=t.scene.game,super.init(t),this.p1=new n.default(0,0),this.p2=new n.default(0,0),this.active=!1,this.shouldDrawMetadata=!1,this.options={}}reset(){this.active=!1}press(){this.active||(this.p1.equ(this.mouse.touch.real),this.active=!0)}getOptions(){let t=this.toolHandler,e=this.options;return e.lineType=t.options.lineType,e.snap=t.options.snap,e}hold(){let t=this.mouse.touch.real;if(this.p2.x=t.x,this.p2.y=t.y,this.p2.equ(this.mouse.touch.real),this.toolHandler.gamepad.isButtonDown("ctrl")&&this.toolHandler.gamepad.isButtonDown("shift")){let t=Math.atan2(this.p2.y-this.p1.y,this.p2.x-this.p1.x),e=Math.sqrt(Math.pow(this.p1.x-this.p2.x,2)+Math.pow(this.p1.y-this.p2.y,2));t=Math.round(12*t/Math.PI)*Math.PI/12,this.p2.x=this.p1.x+Math.round(e*Math.cos(t)),this.p2.y=this.p1.y+Math.round(e*Math.sin(t))}this.toolHandler.moveCameraTowardsMouse()}release(){if(this.active){let t=this.p1,e=this.p2,i=this.scene.track,s=this.toolHandler,n=!1;n="physics"===s.options.lineType?i.addPhysicsLine(t.x,t.y,e.x,e.y):i.addSceneryLine(t.x,t.y,e.x,e.y),n&&s.addActionToTimeline({type:"add",objects:[n]}),s.snapPoint.equ(e),this.active=!1}}update(){super.update();let t=this.toolHandler,e=t.gamepad;t.options.snap&&(this.active=!0,this.p1=t.snapPoint,this.hold()),this.shouldDrawMetadata=!!e.isButtonDown("ctrl")}draw(){let t=this.scene,e=t.game.canvas.getContext("2d"),i=t.camera.zoom;e.save(),this.drawCursor(e),this.active&&(this.drawLine(e,i),this.drawPoint(e,this.p1,i),this.drawPoint(e,this.p2,i),this.drawPointData(e,this.p2,i)),e.restore()}drawCursor(t){let e=this.mouse.touch.real.toScreenSnapped(this.scene),i=this.camera.zoom;if(this.toolHandler.options.grid){var s=5*i;t.beginPath(),t.moveTo(e.x,e.y-s),t.lineTo(e.x,e.y+s),t.moveTo(e.x-s,e.y),t.lineTo(e.x+s,e.y),t.lineWidth=1*i,t.closePath(),t.stroke()}else t.lineWidth=1,t.fillStyle="#1884cf",t.beginPath(),t.arc(e.x,e.y,1*i,0,2*Math.PI,!1),t.closePath(),t.fill()}drawPoint(t,e,i){let s=e.toScreenSnapped(this.scene);t.beginPath(),t.arc(s.x,s.y,i,0,2*Math.PI,!1),t.lineWidth=1,t.fillStyle="#1884cf",t.fill()}drawPointData(t,e){let i=e.toScreenSnapped(this.scene);if(this.shouldDrawMetadata){let e=this.p1.getAngleInDegrees(this.p2).toFixed(2),s=this.game.pixelRatio,n=Math.sqrt(Math.pow(this.p1.x-this.p2.x,2)+Math.pow(this.p1.y-this.p2.y,2))/10;n=n.toFixed(2);let r=10;this.p2.x<this.p1.x&&(r=-10,t.textAlign="right"),t.fillStyle="#000000",t.strokeStyle="#ffffff",t.font="bold "+10*s+"pt arial",t.lineWidth=5*s,t.strokeText(e+"°",i.x+r,i.y+10),t.strokeText(n+" units",i.x+r,i.y+30),t.strokeText("x: "+((this.p2.x-this.p1.x)/10).toFixed(1),i.x+r,i.y+50),t.strokeText("y: "+((this.p2.y-this.p1.y)/10).toFixed(1),i.x+r,i.y+65),t.fillText(e+"°",i.x+r,i.y+10),t.fillText(n+" units",i.x+r,i.y+30),t.fillText("x: "+((this.p2.x-this.p1.x)/10).toFixed(1),i.x+r,i.y+50),t.fillText("y: "+((this.p2.y-this.p1.y)/10).toFixed(1),i.x+r,i.y+65)}}drawLine(t,e){const i=this.scene.game.mod.getVar("customColors"),s=i?it(this.scene.game.mod.getVar("lineColor")):"#000",n=i?it(this.scene.game.mod.getVar("sceneryColor")):"#aaa";let r="physics"===this.toolHandler.options.lineType?s:n;t.beginPath(),t.lineWidth=2*e>.5?2*e:.5,t.lineCap="round",t.strokeStyle=r;let o=this.p1.toScreenSnapped(this.scene),a=this.p2.toScreenSnapped(this.scene);t.moveTo(o.x,o.y),t.lineTo(a.x,a.y),t.stroke()}}const Be=je.prototype;Be.name="StraightLine",Be.p1=null,Be.p2=null,Be.active=!1;var Fe=je;class Re extends Se.default{constructor(t){super(),super.init(t),this.p1=new n.default(0,0),this.p2=new n.default(0,0),this.active=!1;var e=t.scene.settings.brush;this.addedObjects=[],this.options={breakLength:e.breakLength,maxBreakLength:e.maxBreakLength,minBreakLength:e.minBreakLength,breakLengthSensitivity:e.breakLengthSensitivity,trailSpeed:e.trailSpeed,maxTrailSpeed:e.maxTrailSpeed,minTrailSpeed:e.minTrailSpeed,trailSpeedSensitivity:e.trailSpeedSensitivity}}recordActionsToToolhandler(){for(let t of this.addedObjects)this.toolHandler.addActionToTimeline({type:"add",objects:[t]});this.addedObjects=[]}press(){if(this.recordActionsToToolhandler(),!this.active){var t=this.mouse.touch.real;this.p1.x=t.x,this.p1.y=t.y,this.p2.x=t.x,this.p2.y=t.y,this.active=!0}}hold(){if(this.active){var t=this.mouse.touch.real;let i=this.p1,s=this.p2,n=this.options.trailSpeed,r=this.options.breakLength;s.inc(t.sub(s).factor(n));let o=screen.height+t.sub(s).len();if(o*=r,s.sub(i).lenSqr()>o){var e=this.scene.track;let t=!1;t="physics"===this.toolHandler.options.lineType?e.addPhysicsLine(i.x,i.y,s.x,s.y):e.addSceneryLine(i.x,i.y,s.x,s.y),t&&this.addedObjects.push(t),i.equ(s),this.toolHandler.snapPoint.x=s.x,this.toolHandler.snapPoint.y=s.y}this.toolHandler.moveCameraTowardsMouse()}}release(){if(this.active){let t=this.p1,e=this.p2,i=this.scene.track,s=!1;s="physics"===this.toolHandler.options.lineType?i.addPhysicsLine(t.x,t.y,e.x,e.y):i.addSceneryLine(t.x,t.y,e.x,e.y),s&&this.addedObjects.push(s),this.recordActionsToToolhandler();let n=this.toolHandler.snapPoint;n.x=e.x,n.y=e.y,this.active=!1}}update(){let t=this.toolHandler.gamepad,e=this.mouse;t.isButtonDown("alt")?!1!==e.mousewheel&&this.adjustTrailSpeed(e.mousewheel):t.isButtonDown("shift")&&!1!==e.mousewheel&&this.adjustBreakLength(e.mousewheel);var i=this.toolHandler;i.options.snap&&(this.active=!0,this.p1.x=i.snapPoint.x,this.p1.y=i.snapPoint.y,this.p2.x=e.touch.real.x,this.p2.y=e.touch.real.y),super.update()}adjustTrailSpeed(t){let e=this.options.trailSpeed,i=this.options.trailSpeedSensitivity,s=this.options.maxTrailSpeed,n=this.options.minTrailSpeed;t>0?(e+=i,e>s&&(e=s)):(e-=i,n>e&&(e=n)),this.setOption("trailSpeed",e)}adjustBreakLength(t){let e=this.options.breakLength,i=this.options.breakLengthSensitivity,s=this.options.maxBreakLength,n=this.options.minBreakLength;t>0?(e+=i,e>s&&(e=s)):(e-=i,n>e&&(e=n)),this.setOption("breakLength",e)}setOption(t,e){this.options[t]=e}getOptions(){let t=this.toolHandler,e=this.options;return e.lineType=t.options.lineType,e.snap=t.options.snap,e}draw(){var t=this.scene;let e=t.game.canvas.getContext("2d"),i=t.camera.zoom;this.drawCursor(e),this.active&&(this.drawLine(e,i),this.drawPoint(e,this.p1,i),this.drawPoint(e,this.p2,i))}drawText(t){let e=this.name,i=this.options.breakLength,s=this.options.trailSpeed,n=this.game.pixelRatio;t.fillStyle="#000000",t.font=12*n+"pt arial",t.fillText(e,10*n,20*n),t.font=8*n+"pt arial",s|=0,i=i,t.fillText("Trail speed : "+s,10*n,40*n),t.fillText("Break length : "+i,10*n,60*n)}drawCursor(t){let e=this.mouse.touch.real.toScreenSnapped(this.scene),i=this.camera.zoom;if(this.toolHandler.options.grid){var s=5*i;t.beginPath(),t.moveTo(e.x,e.y-s),t.lineTo(e.x,e.y+s),t.moveTo(e.x-s,e.y),t.lineTo(e.x+s,e.y),t.lineWidth=1*i,t.stroke()}else t.beginPath(),t.arc(e.x,e.y,1*i,0,2*Math.PI,!1),t.lineWidth=1,t.fillStyle="#1884cf",t.fill()}drawPoint(t,e,i){var s=e.toScreenSnapped(this.scene);t.beginPath(),t.arc(s.x,s.y,1*i,0,2*Math.PI,!1),t.lineWidth=1,t.fillStyle="#1884cf",t.fill()}drawLine(t,e){let i="physics"===this.toolHandler.options.lineType?"#000":"#AAA";t.beginPath(),t.lineWidth=2*e>.5?2*e:.5,t.lineCap="round",t.strokeStyle=i;let s=this.p1.toScreenSnapped(this.scene),n=this.p2.toScreenSnapped(this.scene);t.moveTo(s.x,s.y),t.lineTo(n.x,n.y),t.stroke()}reset(){this.recordActionsToToolhandler(),this.active=!1}}const We=Re.prototype;We.name="Brush",We.p1=null,We.p2=null,We.active=!1,We.options=null;var Ve=Re,He=s(16),Ne=s.n(He);Math.round;class Ue extends Se.default{constructor(t){super(),super.init(t),this.options=t.scene.settings.eraser,this.eraserPoint=new n.default,this.erasedObjects=[]}reset(){this.recordActionsToToolhandler()}press(){this.recordActionsToToolhandler()}recordActionsToToolhandler(){this.erasedObjects.length>0&&this.toolHandler.addActionToTimeline({type:"remove",objects:Object(r.flatten)(this.erasedObjects)}),this.erasedObjects=[]}release(){this.recordActionsToToolhandler()}hold(){let t=this.mouse.touch,e=this.scene.track;this.eraserPoint=t.pos.toRealSnapped(this.scene);let i=e.erase(this.eraserPoint,this.options.radius/this.scene.camera.zoom,this.options.types);i.length>0&&this.erasedObjects.push(i)}draw(){this.drawEraser(this.scene.game.canvas.getContext("2d"))}drawEraser(t){let e=this.mouse.touch.pos;t.beginPath(),t.arc(e.x,e.y,this.options.radius,0,2*Math.PI,!1),t.lineWidth=1,t.fillStyle="rgba(255,255,255,0.8)",t.strokeStyle="#000000",t.fill(),t.stroke()}setOption(t,e){this.options[t]=e}getOptions(){return this.options}update(){let t=this.toolHandler.gamepad,e=this.mouse;t.isButtonDown("shift")&&!1!==e.mousewheel&&this.adjustRadius(e.mousewheel),super.update()}adjustRadius(t){let e=this.options.radius,i=this.options.radiusSizeSensitivity,s=this.options.maxRadius,n=this.options.minRadius;e+=t>0?i:-i,e=Math.max(n,Math.min(s,e)),this.setOption("radius",e)}}const qe=Ue.prototype;qe.name="Eraser",qe.options=null;var Ge=Ue;var Ye=class extends ce{constructor(t,e,i,s,n=1){super(),this.x=t,this.y=e,this.angle=i,this.realAngle=i;let r=(this.angle-180)/360*2*Math.PI;this.directionX=parseFloat((-n*Math.sin(r)).toFixed(15)),this.directionY=parseFloat((n*Math.cos(r)).toFixed(15)),this.init(s)}draw(t,e,i,s){this.constructor.drawData.dirty&&this.recache(i);let n=this.constructor.drawData.width*i,r=this.constructor.drawData.height*i,o=n/2,a=r/2,h=(this.angle-90)*(Math.PI/180);s.imageSmoothingEnabled=!0,s.mozImageSmoothingEnabled=!0,s.oImageSmoothingEnabled=!0,s.webkitImageSmoothingEnabled=!0,s.translate(t,e),s.rotate(h),s.drawImage(this.constructor.drawData.canvas,-o,-a,n,r),s.rotate(-h),s.translate(-t,-e)}};const Xe=Math.pow;class Ke extends Ye{constructor(t,e,i,s){super(t,e,i,s,.3)}getCode(){return"G "+this.x.toString(32)+" "+this.y.toString(32)+" "+this.realAngle.toString(32)}drawPowerup(t,e){this.game.mod.getVar("crPowerups")?de(e,this.constructor.drawData,"#0f0"):(e.save(),t*=.2,e.translate(5*t,2*t),e.beginPath(),e.moveTo(0*t,0*t),e.lineTo(97*t,0*t),e.lineTo(97*t,96*t),e.lineTo(0*t,96*t),e.closePath(),e.clip(),e.fillStyle="rgba(0, 0, 0, 0)",e.strokeStyle="rgba(0, 0, 0, 0)",e.lineWidth=Math.max(6*t,1),e.fillStyle="#376eb7",e.strokeStyle="#000000",e.beginPath(),e.moveTo(41*t,70*t),e.lineTo(41*t,95*t),e.lineTo(97*t,48*t),e.lineTo(41*t,1*t),e.lineTo(41*t,25*t),e.lineTo(3*t,25*t),e.lineTo(3*t,70*t),e.lineTo(41*t,70*t),e.closePath(),e.closePath(),e.fill(),e.stroke(),e.restore())}collide(t){let e=t.parent,i=e.player,s=Xe(t.pos.x-this.x,2)+Xe(t.pos.y-this.y,2);e.masses;s<1e3&&e.alive&&(e.gravity.x=this.directionX,e.gravity.y=this.directionY,i.isGhost()||e.ignore||(this.scene.message.show("Gravity Changed",50,"#1F80C3","#FFFFFF"),this.scene.sound.play("gravity_down_sound")))}}Ke.drawData={canvas:document.createElement("canvas"),dirty:!0,width:22,height:20};const Ze=Ke.prototype;Ze.x=0,Ze.y=0,Ze.angle=0,Ze.realAngle=0,Ze.name="gravity";var Je=Ke;const $e=Math.PI,Qe=Math.atan2,ti=Math.pow,ei=Math.sqrt,ii=Math.max,si=Math.min;class ni extends Se.default{constructor(t,e){super(),super.init(t),this.powerup=new e(0,0,0,t.scene.track),this.powerupClass=e,this.p1=new n.default(0,0),this.p2=new n.default(0,0),this.active=!1}press(){this.p1.equ(this.mouse.touch.real),this.p2.equ(this.mouse.touch.real),this.active=!0}hold(){this.p2.equ(this.mouse.touch.real);let t=this.p1,e=this.p2,i=Qe(e.y-t.y,e.x-t.x);i<0&&(i+=2*$e),t.x===e.x&&t.y===e.y&&(i=-$e/2),i=Math.round(i*(180/$e)+90)%360,this.toolHandler.gamepad.isButtonDown("ctrl")&&this.toolHandler.gamepad.isButtonDown("shift")&&(i=15*Math.round(i/15),360===i&&(i=0));let s=new n.default(-Math.sin(i*$e/180),Math.cos(i*$e/180)),r=this.mouse.touch.real.sub(t).dot(s);this.p2=t.add(s.factor(r)),this.powerup.angle=i,this.shouldDrawMetadata=this.toolHandler.gamepad.isButtonDown("ctrl")}release(){let t=this.scene.track,e=new this.powerupClass(this.p1.x,this.p1.y,this.powerup.angle,t);this.powerup.angle=0,t.addPowerup(e),this.active=!1,this.shouldDrawMetadata=!1,this.toolHandler.addActionToTimeline({type:"add",objects:[e]})}draw(t){let e=this.camera.zoom,i=(this.scene.screen,this.scene.settings.device);if(this.active){let i=this.p1.toScreen(this.scene);this.drawPathToMouse(t,(this.powerup.angle-90)*$e/180),this.powerup.draw(i.x,i.y,e,t)}else if("desktop"===i){let i=this.mouse.touch.real.toScreen(this.scene);t.globalAlpha=.8,this.powerup.draw(i.x,i.y,e,t),t.globalAlpha=1}this.shouldDrawMetadata&&this.drawPointData(t,this.p2)}drawPathToMouse(t,e){this.scene.screen;let i=this.scene.camera.zoom,s=this.p1.toScreen(this.scene),n=this.p2.toScreen(this.scene),r=ei(ti(n.x-s.x,2)+ti(n.y-s.y,2));r<30*i&&(r=30*i),t.strokeStyle=this.angleStrokeColor,t.lineWidth=ii(1,2*i),t.beginPath(),t.moveTo(s.x,s.y),t.lineTo(s.x+r,s.y),t.stroke(),t.beginPath(),t.moveTo(s.x,s.y),t.lineTo(n.x,n.y),t.stroke();let o=si(r,50*i);t.beginPath(),t.moveTo(s.x,s.y),t.arc(s.x,s.y,o,e,0,!1),t.moveTo(s.x,s.y),t.stroke(),t.fillStyle=this.angleFillColor,t.fill(),t.closePath()}drawPointData(t,e){let i=e.toScreen(this.scene),s=this.powerup.angle,n=this.game.pixelRatio,r=10;t.textAlign="left",this.p2.x<this.p1.x&&(r=-10,t.textAlign="right"),t.fillStyle="#000000",t.strokeStyle="#ffffff",t.font="bold "+10*n+"pt arial",t.lineWidth=5*n,t.strokeText(s+"°",i.x+r,i.y+10),t.fillText(s+"°",i.x+r,i.y+10)}}const ri=ni.prototype;ri.powerup=null,ri.p1=null,ri.p2=null,ri.active=!1,ri.shouldDrawMetadata=!1;var oi=ni;class ai extends oi{constructor(t){super(t,Je)}}const hi=ai.prototype;hi.angleFillColor="rgba(162, 183, 210,0.2)",hi.angleStrokeColor="#A2B7D2",hi.name="gravity";var li=ai;class ci extends Se.default{constructor(t,e){super(),super.init(t),this.powerupClass=e,this.p1=new n.default(0,0),this.active=!1}draw(t){let e=this.mouse.touch.real,i=this.camera.zoom;this.scene.screen;if(this.active){t.globalAlpha=.4;let e=this.p1.toScreen(this.scene);this.powerup.draw(e.x,e.y,i,t),t.globalAlpha=1}else if("desktop"===this.scene.settings.device){t.globalAlpha=.8;let s=e.toScreen(this.scene);this.powerup.draw(s.x,s.y,i,t),t.globalAlpha=1}}press(){let t=this.mouse.touch.real;this.p1.equ(t),this.active=!0}release(){let t=this.scene.track,e=new this.powerupClass(this.p1.x,this.p1.y,t);t.addPowerup(e),this.active=!1,this.toolHandler.addActionToTimeline({type:"add",objects:[e]})}}const ui=ci.prototype;ui.powerup=null,ui.p1=null,ui.active=!1;var di=ci;class pi extends di{constructor(t){super(t,_e),this.powerup=new _e(0,0,t.scene.track)}release(){let t=this.scene.track,e=new _e(this.p1.x,this.p1.y,t);t.addTarget(e),t.addPowerup(e),this.active=!1,this.toolHandler.addActionToTimeline({type:"add",objects:[e]})}}pi.prototype.name="goal";var fi=pi;const gi=Math.pow;class mi extends Ye{constructor(t,e,i,s){super(t,e,i,s)}getCode(){return"B "+this.x.toString(32)+" "+this.y.toString(32)+" "+this.realAngle.toString(32)}drawPowerup(t,e){this.game.mod.getVar("crPowerups")?de(e,this.constructor.drawData,"#ff0"):(e.save(),e.strokeStyle="rgba(0,0,0,0)",e.lineCap="round",e.fillStyle="#8ac832",e.strokeStyle="#000000",t*=.2,e.lineWidth=Math.max(8*t,1),e.beginPath(),e.moveTo(0*t,0*t),e.lineTo(118*t,0*t),e.lineTo(118*t,81*t),e.lineTo(0*t,81*t),e.closePath(),e.beginPath(),e.moveTo(3*t,1.5*t),e.lineTo(35*t,1.7*t),e.lineTo(66*t,40*t),e.lineTo(34*t,78*t),e.lineTo(4*t,78*t),e.lineTo(36*t,39*t),e.lineTo(3*t,1.5*t),e.closePath(),e.moveTo(53*t,1.5*t),e.lineTo(85*t,1.7*t),e.lineTo(116*t,40*t),e.lineTo(84*t,78*t),e.lineTo(54*t,78*t),e.lineTo(85*t,39*t),e.lineTo(53*t,1.5*t),e.closePath(),e.fill(),e.stroke())}collide(t){let e=t.parent,i=e.player,s=gi(t.pos.x-this.x,2)+gi(t.pos.y-this.y,2),n=e.masses,r=this.directionX,o=this.directionY;if(s<1e3&&e.alive){for(let t of n)t.pos.x+=r,t.pos.y+=o;i.isGhost()||e.ignore||(this.scene.sound.play("boost_sound"),this.scene.message.show("Boost Engaged",50,"#8ac832"))}}}mi.drawData={canvas:document.createElement("canvas"),dirty:!0,width:24,height:16};let vi=mi.prototype;vi.x=0,vi.y=0,vi.name="boost",vi.angle=0,vi.realAngle=0,vi.directionX=0,vi.directionY=0;var yi=mi;class wi extends oi{constructor(t){super(t,yi)}}const xi=wi.prototype;xi.angleFillColor="rgba(173, 207, 125,0.2)",xi.angleStrokeColor="#ADCF7D",xi.name="boost";var _i=wi;const bi=Math.sqrt,Ti=Math.pow;class ki extends ce{constructor(t,e,i){super(),this.x=t,this.y=e,this.init(i)}getCode(){return"S "+this.x.toString(32)+" "+this.y.toString(32)}draw(t,e,i,s){this.constructor.drawData.dirty&&this.recache(i);let n=this.constructor.drawData.width*i,r=this.constructor.drawData.height*i;s.drawImage(this.constructor.drawData.canvas,t-n/2,e-r/2,n,r)}collide(t){let e=t.parent,i=e.player,s=bi(Ti(t.pos.x-this.x,2)+Ti(t.pos.y-this.y,2));!this.hit&&s<26&&e.alive&&(e.slow=!0,i.isGhost()||e.ignore||(this.scene.sound.play("slowmo_sound"),this.scene.message.show("Slow Motion",50,"#FFFFFF","#000000")))}drawPowerup(t,e){this.game.mod.getVar("crPowerups")?ue(e,this.constructor.drawData,"#eee"):(e.save(),e.beginPath(),t*=.2,e.moveTo(0*t,0*t),e.lineTo(116*t,0*t),e.lineTo(116*t,114*t),e.lineTo(0*t,114*t),e.closePath(),e.fillStyle="#FFF",e.strokeStyle="#000000",e.lineWidth=Math.max(3*t,.5),e.beginPath(),e.moveTo(58*t,111*t),e.bezierCurveTo(89*t,111*t,114*t,87*t,114*t,56*t),e.bezierCurveTo(114*t,26*t,89*t,2*t,58*t,2*t),e.bezierCurveTo(27.1748289*t,2*t,2*t,26*t,2*t,56*t),e.bezierCurveTo(2*t,87*t,27.1748289*t,111*t,58*t,111*t),e.closePath(),e.moveTo(58*t,103*t),e.bezierCurveTo(84*t,103*t,106*t,82*t,106*t,56*t),e.bezierCurveTo(106*t,30*t,84*t,9*t,58*t,9*t),e.bezierCurveTo(31*t,9*t,10*t,30*t,10*t,56*t),e.bezierCurveTo(10*t,82*t,31*t,103*t,58*t,103*t),e.closePath(),e.moveTo(58*t,55*t),e.lineTo(37*t,23*t),e.lineTo(35*t,25*t),e.lineTo(56*t,57*t),e.lineTo(58*t,55*t),e.closePath(),e.moveTo(58.5*t,59*t),e.lineTo(81.5*t,59*t),e.lineTo(81.5*t,56*t),e.lineTo(58.5*t,56*t),e.lineTo(58.5*t,59*t),e.closePath(),e.moveTo(98.5*t,59*t),e.lineTo(105.5*t,59*t),e.lineTo(105.5*t,56*t),e.lineTo(98.5*t,56*t),e.lineTo(98.5*t,59*t),e.closePath(),e.moveTo(11.5*t,59*t),e.lineTo(18.5*t,59*t),e.lineTo(18.5*t,56*t),e.lineTo(11.5*t,56*t),e.lineTo(11.5*t,59*t),e.closePath(),e.moveTo(57*t,96*t),e.lineTo(57*t,101.5*t),e.lineTo(60*t,101.5*t),e.lineTo(60*t,96*t),e.lineTo(57*t,96*t),e.closePath(),e.moveTo(57*t,12*t),e.lineTo(57*t,17.5*t),e.lineTo(60*t,17.5*t),e.lineTo(60*t,12*t),e.lineTo(57*t,12*t),e.closePath(),e.fill(),e.stroke())}}ki.drawData={canvas:document.createElement("canvas"),dirty:!0,width:24,height:24};const Ci=ki.prototype;Ci.x=0,Ci.y=0,Ci.name="slowmo";var Si=ki;class Pi extends di{constructor(t){super(t,Si),this.powerup=new Si(0,0,t.scene.track)}}Pi.prototype.name="slowmo";var Mi=Pi;const Di=Math.sqrt,Ei=Math.pow,Ai=Math.random;class Li extends ce{constructor(t,e,i){super(),this.x=t,this.y=e,this.id=Ai().toString(36).substr(2),this.init(i)}getCode(){return"C "+this.x.toString(32)+" "+this.y.toString(32)}draw(t,e,i,s){this.constructor.drawData.dirty&&this.recache(i);let n=this.constructor.drawData.width*i,r=this.constructor.drawData.height*i,o=n/2,a=r/2;s.save(),this.hit&&(s.globalAlpha=.3),s.drawImage(this.constructor.drawData.canvas,t-o,e-a,n,r),s.restore()}drawPowerup(t,e){this.game.mod.getVar("crPowerups")?ue(e,this.constructor.drawData,"#00f"):(t*=.15,e.save(),e.translate(1,1),e.beginPath(),e.moveTo(0*t,0*t),e.lineTo(112*t,0*t),e.lineTo(112*t,95*t),e.lineTo(0*t,95*t),e.closePath(),e.fillStyle="#826cdc",e.strokeStyle="#000000",e.lineWidth=8*t,e.beginPath(),e.moveTo(3*t,10*t),e.bezierCurveTo(3*t,10*t,33.5*t,27*t,55*t,10*t),e.bezierCurveTo(76*t,-6*t,108*t,10*t,108*t,10*t),e.lineTo(109*t,86*t),e.bezierCurveTo(109*t,86*t,74*t,73.5*t,56.5*t,86*t),e.bezierCurveTo(40*t,98*t,3*t,88.5*t,3*t,88.5*t),e.lineTo(3*t,10*t),e.closePath(),e.fill(),e.stroke(),e.beginPath(),e.lineWidth=15*t,e.moveTo(3*t,10*t),e.lineTo(3*t,180*t),e.stroke(),e.restore())}collide(t){let e=t.parent,i=e.player;if(!e.ignore){let s=Di(Ei(t.pos.x-this.x,2)+Ei(t.pos.y-this.y,2)),n=i._powerupsConsumed.checkpoints;s<26&&e.alive&&-1===n.indexOf(this.id)&&(n.push(this.id),i.setCheckpointOnUpdate(),i.isGhost()||(this.hit=!0,this.sector.powerupCanvasDrawn=!1,this.scene.message.show("Checkpoint Saved",50,"#826cdc","#FFFFFF"),this.scene.sound.play("checkpoint_sound")))}}}Li.drawData={canvas:document.createElement("canvas"),dirty:!0,width:20,height:32};const Ii=Li.prototype;Ii.x=0,Ii.y=0,Ii.name="checkpoint";var Oi=Li;class zi extends di{constructor(t){super(t,Oi),this.powerup=new Oi(0,0,t.scene.track)}}zi.prototype.name="checkpoint";var ji=zi,Bi=Math.pow,Fi=Math.sqrt;class Ri extends ce{constructor(t,e,i){super(),this.x=t,this.y=e,this.hit=!1,this.init(i)}getCode(){return"O "+this.x.toString(32)+" "+this.y.toString(32)}drawPowerup(t,e){this.game.mod.getVar("crPowerups")?ue(e,this.constructor.drawData,"#f00"):(t*=.2,e.fillStyle="#000",e.strokeStyle="#000",e.lineWidth=8*t,e.beginPath(),e.moveTo(53*t,105*t),e.lineTo(41.5*t,115*t),e.lineTo(43*t,100*t),e.bezierCurveTo(35.5*t,95*t,30*t,88.5*t,26.5*t,80*t),e.lineTo(11*t,78*t),e.lineTo(24*t,69.5*t),e.bezierCurveTo(24*t,68*t,24*t,67*t,24*t,66*t),e.bezierCurveTo(24*t,58.5*t,26*t,51*t,30*t,45*t),e.lineTo(22*t,31.5*t),e.lineTo(37.5*t,36*t),e.bezierCurveTo(43.5*t,31*t,51*t,27.5*t,60*t,26*t),e.lineTo(66*t,11*t),e.lineTo(72*t,26.5*t),e.bezierCurveTo(80.5*t,27.5*t,88*t,31*t,93.5*t,36.5*t),e.lineTo(110*t,31.5*t),e.lineTo(101.5*t,46*t),e.bezierCurveTo(105*t,52*t,107*t,59*t,107*t,66*t),e.bezierCurveTo(107*t,67*t,107*t,68*t,107*t,69*t),e.lineTo(121*t,78*t),e.lineTo(104.5*t,80.5*t),e.bezierCurveTo(101.5*t,88*t,96*t,95*t,89*t,99.5*t),e.lineTo(90.5*t,115*t),e.lineTo(78.5*t,104.5*t),e.bezierCurveTo(74.5*t,106*t,70*t,107*t,65.5*t,107*t),e.bezierCurveTo(61*t,107*t,57*t,106*t,53*t,105*t),e.lineTo(53*t,105*t),e.closePath(),e.fill(),e.stroke(),e.beginPath(),e.arc(66*t,66*t,40*t,0*t,2*Math.PI,!0),e.lineWidth=2*t,e.fillStyle="#d12929",e.fill(),e.stroke(),e.beginPath(),e.arc(66*t,66*t,8*t,0*t,2*Math.PI,!0),e.lineWidth=2*t,e.fillStyle="#000",e.fill(),e.stroke())}collide(t){let e=t.parent,i=e.player;Fi(Bi(t.pos.x-this.x,2)+Bi(t.pos.y-this.y,2))<20&&e.alive&&(e.explode(),i.isGhost()||e.ignore||(this.hit=!0,this.sector.powerupCanvasDrawn=!1))}}Ri.drawData={canvas:document.createElement("canvas"),dirty:!0,width:26,height:26};let Wi=Ri.prototype;Wi.x=0,Wi.y=0,Wi.name="bomb";var Vi=Ri;class Hi extends di{constructor(t){super(t,Vi),this.powerup=new Vi(0,0,t.scene.track)}}Hi.prototype.name="bomb";var Ni=Hi;const Ui=Math.pow;class qi extends ce{constructor(t,e,i){super(),this.x=t,this.y=e,this.init(i)}getCode(){return"A "+this.x.toString(32)+" "+this.y.toString(32)}draw(t,e,i,s){this.constructor.drawData.dirty&&this.recache(i);let n=this.constructor.drawData.width*i,r=this.constructor.drawData.height*i,o=n/2,a=r/2;s.translate(t,e),s.drawImage(this.constructor.drawData.canvas,-o,-a,n,r),s.translate(-t,-e)}drawPowerup(t,e){this.game.mod.getVar("crPowerups")?ue(e,this.constructor.drawData,"#0ff"):(t*=.5,e.save(),e.beginPath(),e.scale(t,t),e.moveTo(0,0),e.lineTo(50,0),e.lineTo(50,50),e.lineTo(0,50),e.closePath(),e.clip(),e.translate(0,0),e.translate(0,0),e.scale(1,1),e.translate(0,0),e.strokeStyle="rgba(0,0,0,0)",e.lineCap="butt",e.lineJoin="miter",e.miterLimit=4,e.save(),e.restore(),e.save(),e.restore(),e.save(),e.fillStyle="rgba(0, 0, 0, 0)",e.strokeStyle="rgba(0, 0, 0, 0)",e.lineWidth=1,e.translate(-726,-131),e.save(),e.translate(726,131),e.save(),e.fillStyle="#08faf3",e.strokeStyle="#000000",e.lineWidth=2,e.beginPath(),e.moveTo(25,36),e.bezierCurveTo(18.9251591,36,14,31.0751824,14,25),e.bezierCurveTo(14,18.9248176,18.9251591,14,25,14),e.bezierCurveTo(31.0751824,14,36,18.9248176,36,25),e.bezierCurveTo(36,31.0751824,31.0751824,36,25,36),e.closePath(),e.fill(),e.stroke(),e.restore(),e.save(),e.fillStyle="#000000",e.beginPath(),e.moveTo(25,35),e.bezierCurveTo(30.5228976,35,35,30.5228976,35,25),e.bezierCurveTo(35,19.4771024,30.5228976,15,25,15),e.bezierCurveTo(19.4773211,15,15,19.4772251,15,25),e.bezierCurveTo(15,30.5227749,19.4773211,35,25,35),e.closePath(),e.moveTo(25,37),e.bezierCurveTo(18.3727612,37,13,31.627354,13,25),e.bezierCurveTo(13,18.372646,18.3727612,13,25,13),e.bezierCurveTo(31.6274671,13,37,18.3725329,37,25),e.bezierCurveTo(37,31.6274671,31.6274671,37,25,37),e.closePath(),e.fill(),e.stroke(),e.restore(),e.save(),e.fillStyle="#000000",e.beginPath(),e.moveTo(1.0370609,29.702878),e.lineTo(.571767448,27.3196417),e.lineTo(10.8190136,27.3196417),e.lineTo(11.2235626,28.7886215),e.bezierCurveTo(12.5553335,33.6244869,16.3752072,37.4442862,21.2110994,38.7761385),e.lineTo(22.6800518,39.1807024),e.lineTo(22.6800518,49.4279421),e.lineTo(20.2968028,48.9626301),e.bezierCurveTo(10.5816525,47.0658182,2.93381735,39.4180779,1.0370609,29.702878),e.closePath(),e.moveTo(48.9629391,20.297122),e.lineTo(49.4282326,22.6803583),e.lineTo(39.1809639,22.6803583),e.lineTo(38.7764299,21.2113511),e.bezierCurveTo(37.4446547,16.3752014,33.624798,12.5554192,28.7886215,11.2235626),e.lineTo(27.3196417,10.8190136),e.lineTo(27.3196417,.571783441),e.lineTo(29.7028653,1.03705842),e.bezierCurveTo(39.418382,2.93381152,47.0661305,10.5816549,48.9629391,20.297122),e.closePath(),e.moveTo(11.2235701,21.2113511),e.lineTo(10.8190361,22.6803583),e.lineTo(.571767448,22.6803583),e.lineTo(1.0370609,20.297122),e.bezierCurveTo(2.93380373,10.5819918,10.5815702,2.93422536,20.2967378,1.03707606),e.lineTo(22.6800518,.571669532),e.lineTo(22.6800518,10.8189911),e.lineTo(21.2110994,11.223555),e.bezierCurveTo(16.3751604,12.5554202,12.5553324,16.3752482,11.2235701,21.2113511),e.closePath(),e.moveTo(29.7028653,48.9626351),e.lineTo(27.3196417,49.4279101),e.lineTo(27.3196417,39.1806799),e.lineTo(28.7886215,38.7761309),e.bezierCurveTo(33.6247513,37.4442873,37.4446537,33.6245336,38.7764374,28.7886215),e.lineTo(39.1809864,27.3196417),e.lineTo(49.4282326,27.3196417),e.lineTo(48.9629391,29.702878),e.bezierCurveTo(47.0661446,39.4182726,39.4184545,47.0658678,29.7028653,48.9626351),e.closePath(),e.fill(),e.stroke(),e.restore(),e.save(),e.fillStyle="#08faf3",e.beginPath(),e.moveTo(3,29.3196417),e.bezierCurveTo(4.74079001,38.2359804,11.7640196,45.2589035,20.6800518,46.9996935),e.lineTo(20.6800518,40.7043471),e.bezierCurveTo(15.1649961,39.1854465,10.814247,34.8350039,9.29534642,29.3196417),e.lineTo(3,29.3196417),e.closePath(),e.moveTo(47,20.6803583),e.bezierCurveTo(45.25921,11.7640196,38.2362869,4.74079001,29.3196417,3),e.lineTo(29.3196417,9.29534642),e.bezierCurveTo(34.8350039,10.814247,39.185753,15.1646897,40.7046536,20.6803583),e.lineTo(47,20.6803583),e.closePath(),e.moveTo(9.29534642,20.6803583),e.bezierCurveTo(10.814247,15.1646897,15.1649961,10.814247,20.6800518,9.29534642),e.lineTo(20.6800518,3),e.bezierCurveTo(11.7640196,4.74109649,4.74079001,11.7640196,3,20.6803583),e.lineTo(9.29534642,20.6803583),e.closePath(),e.moveTo(29.3196417,46.9996935),e.bezierCurveTo(38.2362869,45.2589035,45.25921,38.2359804,47,29.3196417),e.lineTo(40.7046536,29.3196417),e.bezierCurveTo(39.185753,34.8350039,34.8350039,39.1854465,29.3196417,40.7043471),e.lineTo(29.3196417,46.9996935),e.closePath(),e.fill(),e.stroke(),e.restore(),e.restore(),e.restore(),e.restore())}collide(t){let e=t.parent,i=e.player;Ui(t.pos.x-this.x,2)+Ui(t.pos.y-this.y,2)<1e3&&e.alive&&(i.isGhost()||e.ignore||(0===e.gravity.x&&0===e.gravity.y||this.scene.sound.play("antigravity_sound",.3),this.scene.message.show("Antigravity Engaged",50,"#08faf3")),e.gravity.x=0,e.gravity.y=0)}}qi.drawData={canvas:document.createElement("canvas"),dirty:!0,width:25,height:25};const Gi=qi.prototype;Gi.x=0,Gi.y=0,Gi.name="antigravity";var Yi=qi;class Xi extends di{constructor(t){super(t,Yi),this.powerup=new Yi(0,0,t.scene.track)}}Xi.prototype.name="antigravity";var Ki=Xi;const Zi=Math.sqrt,Ji=Math.pow,$i=Math.random;class Qi extends ce{constructor(t,e,i){super(),this.x=t,this.y=e,this.id=$i().toString(36).substr(2),this.init(i)}erase(t,e){var i=!1;this.remove||e>=Zi(Ji(t.x-this.x,2)+Ji(t.y-this.y,2))&&(i=[this,this.otherPortal],this.remove=1,this.otherPortal.remove=1,this.redrawSectors(),this.otherPortal.redrawSectors());return i}addOtherPortalRef(t){this.otherPortal=t}getCode(){var t="";return!this.recorded&&this.otherPortal.recorded?this.recorded=!0:!1===this.recorded&&!1===this.otherPortal.recorded?(this.recorded=!0,t="W "+this.x.toString(32)+" "+this.y.toString(32)+" "+this.otherPortal.x.toString(32)+" "+this.otherPortal.y.toString(32)):!0===this.recorded&&!0===this.otherPortal.recorded&&(this.otherPortal.recorded=!1,t="W "+this.x.toString(32)+" "+this.y.toString(32)+" "+this.otherPortal.x.toString(32)+" "+this.otherPortal.y.toString(32)),t}drawPowerup(t,e){if(this.game.mod.getVar("crPowerups"))ue(e,this.constructor.drawData,"#f0f");else{let i=.65*t;e.save(),e.scale(i,i),e.save(),e.beginPath(),e.moveTo(0,0),e.lineTo(44,0),e.lineTo(44,48),e.lineTo(0,48),e.closePath(),e.clip(),e.translate(0,0),e.translate(0,0),e.scale(1,1),e.translate(0,0),e.strokeStyle="rgba(0,0,0,0)",e.lineCap="butt",e.lineJoin="miter",e.miterLimit=4,e.save(),e.restore(),e.save(),e.restore(),e.save(),e.fillStyle="rgba(0, 0, 0, 0)",e.strokeStyle="rgba(0, 0, 0, 0)",e.lineWidth=1,e.translate(-788,-50),e.save(),e.translate(790,52),e.save(),e.fillStyle="#000000",e.beginPath(),e.moveTo(17,3),e.bezierCurveTo(16.9424049,2.83458834,16.4420628,2.62968665,15.9196825,2.4515011),e.lineTo(8.51063934,-.0757469011),e.lineTo(16.223952,-1.41205186),e.bezierCurveTo(21.2423806,-2.2814774,25.8773816,-1.40451316,29.9447883,.583562762),e.bezierCurveTo(31.7394578,1.46076529,33.0361403,2.35169307,33.7316821,2.95217334),e.bezierCurveTo(35.1972328,4.14751314,36.509471,5.52829294,37.6336956,7.05811132),e.bezierCurveTo(39.8993675,10.1439271,41.2801108,13.6041318,41.7252304,17.3208639),e.bezierCurveTo(41.7397043,17.4414782,41.7543021,17.5670407,41.7704814,17.7094344),e.bezierCurveTo(41.7921038,17.9009058,41.7921038,17.9009058,41.8132645,18.0904969),e.lineTo(41.840873,18.3390683),e.lineTo(41.8856209,18.735971),e.lineTo(41.8856209,21.4226506),e.lineTo(41.8542399,21.5977061),e.bezierCurveTo(41.8009577,21.89487,41.7866262,21.9747988,41.7740749,22.044061),e.bezierCurveTo(41.759051,22.1809078,41.759051,22.1809078,41.7559584,22.2091488),e.bezierCurveTo(41.6872107,22.8267498,41.6438556,23.1562694,41.5609313,23.6049736),e.bezierCurveTo(40.8769441,27.3127264,39.3221077,30.5993535,36.9456235,33.3462518),e.bezierCurveTo(32.8945821,38.029004,27.65733,40.5391341,21.868366,40.5391341),e.bezierCurveTo(21.742671,40.5391341,21.6184358,40.538205,21.4955986,40.5363608),e.bezierCurveTo(22.1492681,41.0434881,22.8806236,41.5794806,23.6943816,42.1440112),e.lineTo(28.4276887,45.4276613),e.lineTo(22.6779106,45.7834802),e.bezierCurveTo(18.1741264,46.062192,14.0554746,45.155711,10.4302114,43.4736066),e.bezierCurveTo(8.54152696,42.5972663,7.17424655,41.7066293,6.38621142,41.0629331),e.bezierCurveTo(4.99599225,40.025971,3.38305673,38.3146562,2.25448469,36.778713),e.bezierCurveTo(-.0125398982,33.6943248,-1.39399999,30.2338948,-1.84021156,26.5118367),e.bezierCurveTo(-1.86468983,26.3063181,-1.88762639,26.1042985,-1.92006182,25.811651),e.lineTo(-1.95463612,25.5020237),e.lineTo(-2.00013072,25.1020716),e.lineTo(-2.00013072,22.4141906),e.lineTo(-1.96885958,22.2394346),e.bezierCurveTo(-1.92214724,21.9784071,-1.90657901,21.8914122,-1.89618079,21.8334198),e.bezierCurveTo(-1.83478692,21.2274076,-1.79887919,20.9331002,-1.72945035,20.5323584),e.bezierCurveTo(-.927733904,15.885014,1.1979378,11.9079902,4.5664052,8.76464131),e.bezierCurveTo(8.29993169,5.27968493,12.7861394,3.24768826,17.4210789,3.06365477),e.closePath(),e.fill(),e.stroke(),e.restore(),e.save(),e.fillStyle="#dd45ec",e.beginPath(),e.moveTo(23.9052288,5.91261647),e.bezierCurveTo(23.9052288,5.91261647,22.5543791,5.13614588,18.1099346,5.04995765),e.bezierCurveTo(13.6479739,5.05021647,9.39411765,6.99424,5.93111111,10.2266871),e.bezierCurveTo(2.88431373,13.0698635,.969542484,16.6517224,.241437908,20.8723576),e.bezierCurveTo(.169019608,21.2903576,.131372549,21.6617694,.101045752,21.9601929),e.bezierCurveTo(.0960784314,22.0104047,.0911111111,22.0611341,.0858823529,22.1113459),e.bezierCurveTo(.0837908497,22.1227341,.0816993464,22.1341224,.0796078431,22.1452518),e.lineTo(-.000130718954,22.5917224),e.lineTo(-.000130718954,23.0451812),e.lineTo(-.000130718954,24.6993224),e.lineTo(-.000130718954,24.9886871),e.lineTo(.0325490196,25.2759812),e.lineTo(.0675816993,25.5896753),e.bezierCurveTo(.0929411765,25.8184753,.118562092,26.0470165,.145751634,26.2752988),e.bezierCurveTo(.550457516,29.6511341,1.80196078,32.7860047,3.86601307,35.59424),e.bezierCurveTo(4.76326797,36.8153694,6.27176471,38.4928047,7.6179085,39.4864282),e.bezierCurveTo(7.6179085,39.4864282,13.4911111,44.3481694,22.5543791,43.7872988),e.bezierCurveTo(16.5849673,39.6461224,15.7624837,37.5460282,15.7624837,37.5460282),e.bezierCurveTo(16.4521569,37.6208282,18.1535948,38.5391341,21.868366,38.5391341),e.bezierCurveTo(27.0628758,38.5391341,31.7535948,36.2909929,35.4330719,32.0377459),e.bezierCurveTo(37.5739869,29.5631341,38.9739869,26.6037459,39.5941176,23.2421459),e.bezierCurveTo(39.6816993,22.76824,39.7295425,22.3354871,39.7682353,21.9878871),e.bezierCurveTo(39.7768627,21.9092047,39.7852288,21.8300047,39.7946405,21.7510635),e.bezierCurveTo(39.7983007,21.7319106,39.8019608,21.7124988,39.8053595,21.6930871),e.lineTo(39.8856209,21.2448047),e.lineTo(39.8856209,20.7895341),e.lineTo(39.8856209,19.1356518),e.lineTo(39.8856209,18.8483576),e.lineTo(39.8534641,18.5631341),e.lineTo(39.8254902,18.3112988),e.bezierCurveTo(39.7975163,18.0607576,39.7695425,17.8096988,39.7394771,17.5591576),e.bezierCurveTo(39.3355556,14.1864282,38.0845752,11.0515576,36.0215686,8.24176941),e.bezierCurveTo(34.9975163,6.84826353,33.8019608,5.59038118,32.4675817,4.50202824),e.bezierCurveTo(32.4675817,4.50202824,25.996732,-1.07536,16.5653595,.558592941),e.bezierCurveTo(21.6393464,2.28934588,23.9052288,5.91261647,23.9052288,5.91261647),e.fill(),e.stroke(),e.restore(),e.save(),e.fillStyle="#fefefe",e.beginPath(),e.moveTo(5.22875817,24.6992965),e.lineTo(5.22875817,23.0451553),e.bezierCurveTo(5.24078431,22.97812,5.25647059,22.9113435,5.26457516,22.8437906),e.bezierCurveTo(5.30823529,22.4770376,5.33254902,22.1071788,5.39555556,21.7440494),e.bezierCurveTo(5.9179085,18.7173671,7.26117647,16.0988494,9.5179085,13.9930612),e.bezierCurveTo(12.7882353,10.9404965,16.6520261,9.83428471,21.0614379,10.8020259),e.bezierCurveTo(23.1579085,11.2619553,24.9563399,12.2887082,26.3997386,13.8804729),e.bezierCurveTo(27.8005229,15.4251318,28.5681046,17.2482847,28.8130719,19.3033435),e.bezierCurveTo(29.0044444,20.9103788,28.7861438,22.4467553,28.0836601,23.9122141),e.bezierCurveTo(26.5186928,27.1764965,23.3458824,28.74652,19.8862745,27.9666847),e.bezierCurveTo(17.6018301,27.4518847,16.0658824,25.7762612,15.7793464,23.4833435),e.bezierCurveTo(15.7513725,23.2566141,15.7422222,23.0278141,15.7233987,22.7920259),e.bezierCurveTo(15.6826144,22.7959082,15.6577778,22.7959082,15.6345098,22.8013435),e.bezierCurveTo(15.2580392,22.8929671,15.0844444,23.1867318,14.9532026,23.5037906),e.bezierCurveTo(14.6407843,24.2592965,14.6128105,25.0383553,14.8180392,25.8238847),e.bezierCurveTo(15.1252288,26.9999788,15.8075817,27.9480494,16.7301961,28.7162376),e.bezierCurveTo(19.105098,30.6939082,21.8201307,31.2356259,24.7777778,30.3869435),e.bezierCurveTo(27.9027451,29.4903788,30.1628758,27.5002847,31.6556863,24.6703082),e.bezierCurveTo(33.1751634,21.7893435,33.4169935,18.73652,32.7003922,15.5969906),e.bezierCurveTo(32.1134641,13.0263553,30.9056209,10.7471553,29.2807843,8.67397882),e.bezierCurveTo(29.2345098,8.61496706,29.1887582,8.55595529,29.1427451,8.49694353),e.bezierCurveTo(30.1487582,9.31767294,31.0295425,10.2476259,31.7918954,11.2855082),e.bezierCurveTo(33.305098,13.3460024,34.2433987,15.6329671,34.5471895,18.1681435),e.bezierCurveTo(34.5856209,18.4903788,34.6206536,18.8131318,34.6569935,19.1356259),e.lineTo(34.6569935,20.7897671),e.bezierCurveTo(34.6449673,20.8565435,34.629281,20.92332,34.620915,20.9908729),e.bezierCurveTo(34.5644444,21.4313906,34.5309804,21.8763082,34.4501961,22.3121671),e.bezierCurveTo(34.0122876,24.6873906,33.0475817,26.8374376,31.4616993,28.6706847),e.bezierCurveTo(28.1134641,32.5408729,23.9121569,34.11012,18.8256209,33.0287553),e.bezierCurveTo(16.5994771,32.5553671,14.72,31.4287082,13.2504575,29.68372),e.bezierCurveTo(11.9879739,28.1846141,11.2983007,26.4463553,11.0705882,24.5126847),e.bezierCurveTo(10.871634,22.8236024,11.1286275,21.2212259,11.9113725,19.7042612),e.bezierCurveTo(13.5228758,16.5810376,16.6386928,15.0982376,19.9803922,15.8646141),e.bezierCurveTo(22.303268,16.3975318,23.7997386,18.0288965,24.1079739,20.3696965),e.bezierCurveTo(24.136732,20.5899553,24.1440523,20.8128024,24.1662745,21.1008729),e.bezierCurveTo(24.343268,20.9921671,24.5147712,20.9334141,24.6146405,20.8153906),e.bezierCurveTo(24.7620915,20.6414612,24.8909804,20.4375082,24.970719,20.2255318),e.bezierCurveTo(25.28,19.4032494,25.2648366,18.5688024,24.9890196,17.7405671),e.bezierCurveTo(24.5738562,16.4935553,23.7654902,15.5263318,22.715817,14.7615082),e.bezierCurveTo(20.315817,13.0147082,17.6664052,12.6334612,14.8541176,13.5207082),e.bezierCurveTo(11.8538562,14.4672259,9.67267974,16.4187553,8.23006536,19.1622847),e.bezierCurveTo(6.68470588,22.1014847,6.45960784,25.2078847,7.22352941,28.3996965),e.bezierCurveTo(7.82248366,30.8996729,9.0096732,33.1206376,10.5921569,35.1438612),e.bezierCurveTo(10.6420915,35.2083082,10.692549,35.2724965,10.743268,35.3364259),e.bezierCurveTo(9.97568627,34.7698612,8.83764706,33.5606376,8.09385621,32.5486376),e.bezierCurveTo(6.57986928,30.4886612,5.6420915,28.2016965,5.33830065,25.66652),e.bezierCurveTo(5.29960784,25.3442847,5.26535948,25.0215318,5.22875817,24.6992965),e.fill(),e.stroke(),e.restore(),e.restore(),e.restore(),e.restore()}}draw(t,e,i,s){this.constructor.drawData.dirty&&this.recache(i);let n=this.constructor.drawData.width*i,r=this.constructor.drawData.height*i;s.save(),this.hit&&(s.globalAlpha=.2),s.translate(t,e),s.drawImage(this.constructor.drawData.canvas,-n/2,-r/2,n,r),s.restore()}collide(t){let e=t.parent,i=e.player;if(!e.ignore){let s=i._powerupsConsumed.misc;if(!s.includes(this.id)){Ji(t.pos.x-this.x,2)+Ji(t.pos.y-this.y,2)<1e3&&e.alive&&(s.push(this.id),s.push(this.otherPortal.id),e.moveVehicle(this.otherPortal.x-this.x,this.otherPortal.y-this.y),i.isGhost()||(this.hit=!0,this.otherPortal.hit=!0,this.sector.powerupCanvasDrawn=!1,this.otherPortal.sector.powerupCanvasDrawn=!1,this.scene.sound.play("teleport_sound",.3),this.scene.message.show("Teleport Engaged",50,"#8ac832")))}}}}Qi.drawData={canvas:document.createElement("canvas"),dirty:!0,width:29,height:32};const ts=Qi.prototype;ts.id=null,ts.otherPortal=null,ts.hit=!1,ts.x=0,ts.y=0,ts.name="teleport",ts.recorded=!1;var es=Qi,is=Math.max;Math.abs;class ss extends Se.default{constructor(t){super(),super.init(t),this.powerup=new es(0,0,t.scene.track),this.p1=new n.default(0,0),this.p2=new n.default(0,0),this.active=!1}press(){this.p1.equ(this.mouse.touch.real),this.portal1=new es(this.p1.x,this.p1.y,this.scene.track),this.active=!0}hold(){this.p2.equ(this.mouse.touch.real)}release(){if(this.p2.sub(this.p1).len()>40){var t=this.scene.track;this.portal2=new es(this.p2.x,this.p2.y,t),this.portal1.addOtherPortalRef(this.portal2),this.portal2.addOtherPortalRef(this.portal1),t.addPowerup(this.portal1),t.addPowerup(this.portal2),this.toolHandler.addActionToTimeline({type:"add",objects:[this.portal1,this.portal2]}),this.active=!1}else this.active=!1,this.portal1=null}draw(t){let e=this.camera.zoom,i=this.scene.screen;if(this.active){let s=this.p1,n=this.p2,r=n.sub(s).len();t.globalAlpha=r>40?.8:.3,this.drawPathToMouse(t),this.portal1.draw(i.realToScreen(s.x,"x"),i.realToScreen(s.y,"y"),e,t),this.powerup.draw(i.realToScreen(n.x,"x"),i.realToScreen(n.y,"y"),e,t),t.globalAlpha=1}else if("desktop"===this.scene.settings.device){let s=this.mouse.touch.real,n=i.realToScreen(s.x,"x"),r=i.realToScreen(s.y,"y");t.globalAlpha=.8,this.powerup.draw(n,r,e,t),t.globalAlpha=1}}drawPathToMouse(t){let e=this.p1,i=this.p2,s=this.scene.screen;t.strokeStyle="#dd45ec",t.lineWidth=is(1,2*this.scene.camera.zoom),t.beginPath(),t.moveTo(s.realToScreen(e.x,"x"),s.realToScreen(e.y,"y")),t.lineTo(s.realToScreen(i.x,"x"),s.realToScreen(i.y,"y")),t.stroke(),t.closePath()}}const ns=ss.prototype;ns.powerup=null,ns.portal1=null,ns.name="teleport",ns.p1=null,ns.p2=null,ns.active=!1;var rs=ss;class os extends Se.default{constructor(t){super(),super.init(t),this.powerupTools={},this.registerPowerupTools(),this.active=!1,this.options={selected:"goal"}}registerPowerupTools(){this.registerTool(new fi(this.toolHandler)),this.registerTool(new _i(this.toolHandler)),this.registerTool(new li(this.toolHandler)),this.registerTool(new Mi(this.toolHandler)),this.registerTool(new Ni(this.toolHandler)),this.registerTool(new ji(this.toolHandler)),this.registerTool(new Ki(this.toolHandler)),this.registerTool(new rs(this.toolHandler))}registerTool(t){this.powerupTools[t.name]=t}setOption(t,e){this.options[t]=e}getOptions(){return this.options}update(){let t=this.toolHandler.gamepad,e=this.options;t.isButtonDown("opt1")&&(e.selected="goal",t.setButtonUp("opt1"),this.scene.stateChanged()),t.isButtonDown("opt2")&&(e.selected="boost",t.setButtonUp("opt2"),this.scene.stateChanged()),t.isButtonDown("opt3")&&(e.selected="gravity",t.setButtonUp("opt3"),this.scene.stateChanged()),t.isButtonDown("opt4")&&(e.selected="slowmo",t.setButtonUp("opt4"),this.scene.stateChanged()),t.isButtonDown("opt5")&&(e.selected="bomb",t.setButtonUp("opt5"),this.scene.stateChanged()),t.isButtonDown("opt6")&&(e.selected="checkpoint",t.setButtonUp("opt6"),this.scene.stateChanged()),t.isButtonDown("opt7")&&(e.selected="antigravity",t.setButtonUp("opt7"),this.scene.stateChanged()),t.isButtonDown("opt8")&&Application.User.get("classic")&&(e.selected="teleport",t.setButtonUp("opt8"),this.scene.stateChanged()),super.update()}press(){this.active=!0,this.powerupTools[this.options.selected].press()}hold(){this.active&&this.powerupTools[this.options.selected].hold()}release(){this.active&&(this.powerupTools[this.options.selected].release(),this.active=!1)}draw(){this.powerupTools[this.options.selected].draw(this.scene.game.canvas.getContext("2d"))}}const as=os.prototype;as.name="Powerup",as.powerupTools=null,as.active=!1;var hs=os;const ls=Math.random,cs=Math.pow,us=Math.sqrt;class ds extends ce{constructor(t,e,i,s){super(),this.x=t,this.y=e,this.time=i,this.id=ls().toString(36).substr(2),this.hit=!1,this.init(s)}getCode(){return"V "+this.x.toString(32)+" "+this.y.toString(32)+" 1 "+this.time.toString(32)}drawPowerup(t,e){t*=1,e.lineCap="butt",e.lineJoin="miter",e.miterLimit=4*t,e.fillStyle="#000000",e.beginPath(),e.moveTo(15*t,4.5*t),e.lineTo(15*t,2.5*t),e.bezierCurveTo(15*t,1.4*t,14.1*t,.5*t,13*t,.5*t),e.bezierCurveTo(11.9*t,.5*t,11*t,1.4*t,11*t,2.5*t),e.lineTo(11*t,4.5*t),e.bezierCurveTo(11*t,5.6*t,11.9*t,6.5*t,13*t,6.5*t),e.bezierCurveTo(14.1*t,6.5*t,15*t,5.6*t,15*t,4.5*t),e.lineTo(15*t,4.5*t),e.closePath(),e.fill(),e.beginPath(),e.lineCap="round",e.lineWidth=2*t,e.moveTo(1*t,3*t),e.lineTo(25*t,3*t),e.stroke(),e.lineCap="butt",e.lineWidth=1*t,e.beginPath(),e.moveTo(6.1*t,26.9*t),e.lineTo(4.1*t,31.9*t),e.bezierCurveTo(3.8*t,32.7*t,4.2*t,33.6*t,4.9*t,33.9*t),e.bezierCurveTo(5.7*t,34.2*t,6.6*t,33.8*t,6.9*t,33*t),e.lineTo(8.9*t,28*t),e.bezierCurveTo(9.2*t,27.3*t,8.8*t,26.4*t,8*t,26.1*t),e.bezierCurveTo(7.3*t,25.8*t,6.4*t,26.1*t,6.1*t,26.9*t),e.lineTo(6.1*t,26.9*t),e.closePath(),e.fill(),e.stroke(),e.beginPath(),e.moveTo(17*t,28*t),e.lineTo(19*t,33*t),e.bezierCurveTo(19.4*t,33.8*t,20.3*t,34.2*t,21*t,33.9*t),e.bezierCurveTo(21.8*t,33.6*t,22.2*t,32.7*t,21.9*t,31.9*t),e.lineTo(19.9*t,26.9*t),e.bezierCurveTo(19.6*t,26.2*t,18.7*t,25.8*t,17.9*t,26.1*t),e.bezierCurveTo(17.2*t,26.4*t,16.8*t,27.3*t,17.1*t,28*t),e.lineTo(17*t,28*t),e.closePath(),e.fill(),e.stroke(),e.fillStyle="#f59423",e.strokeStyle="#000000",e.lineWidth=2*t,e.beginPath(),e.arc(13*t,17*t,11*t,0*t,2*Math.PI,!0),e.closePath(),e.fill(),e.stroke(),e.fillStyle="#000000",e.beginPath(),e.moveTo(21*t,17*t),e.bezierCurveTo(21*t,12.6*t,17.4*t,9*t,13*t,9*t),e.bezierCurveTo(8.6*t,9*t,5*t,12.6*t,5*t,17*t),e.lineTo(21*t,17*t),e.closePath(),e.fill()}collide(t){let e=t.parent,i=e.player;if(!e.ignore){let s=us(cs(t.pos.x-this.x,2)+cs(t.pos.y-this.y,2)),n=i._powerupsConsumed.misc,r=this.scene;s<30&&e.alive&&!n.includes(this.id)&&(n.push(this.id),i.setTempVehicle("HELI",this.time*r.settings.drawFPS,{x:this.x,y:this.y},e.dir),r.camera.playerFocus===i&&(r.camera.focusOnPlayer(),r.vehicleTimer.playerAddedTime(i)),i.isGhost()||(this.hit=!0,this.sector.powerupCanvasDrawn=!1,this.scene.message.show("Helicopter Powerup!",50,"#F2902E",!1)))}}}ds.drawData={canvas:document.createElement("canvas"),dirty:!0,width:26,height:35};const ps=ds.prototype;ps.x=0,ps.y=0,ps.name="helicopter";var fs=ds;class gs extends di{constructor(t,e,i){super(e,i),this.options=t.options}release(){let t=this.scene.track,e=new this.powerupClass(this.p1.x,this.p1.y,this.options.time,t);t.addPowerup(e),this.active=!1,this.toolHandler.addActionToTimeline({type:"add",objects:[e]})}}gs.prototype.options=null;var ms=gs;class vs extends ms{constructor(t,e){super(t,e,fs),this.powerup=new fs(0,0,0,e.scene.track)}}vs.prototype.name="helicopter";var ys=vs;const ws=Math.random,xs=Math.pow,_s=Math.sqrt;class bs extends ce{constructor(t,e,i,s){super(),this.x=t,this.y=e,this.time=i,this.id=ws().toString(36).substr(2),this.hit=!1,this.init(s)}getCode(){return"V "+this.x.toString(32)+" "+this.y.toString(32)+" 2 "+this.time.toString(32)}drawPowerup(t,e){t*=1,e.save(),e.scale(t,t),e.beginPath(),e.moveTo(0,0),e.lineTo(24,0),e.lineTo(24,26),e.lineTo(0,26),e.closePath(),e.clip(),e.translate(0,0),e.translate(0,0),e.scale(1,1),e.translate(0,0),e.strokeStyle="rgba(0,0,0,0)",e.lineCap="butt",e.lineJoin="miter",e.miterLimit=4,e.save(),e.restore(),e.save(),e.restore(),e.save(),e.fillStyle="rgba(0, 0, 0, 0)",e.strokeStyle="rgba(0, 0, 0, 0)",e.lineWidth=1,e.translate(-1320,-352),e.save(),e.translate(251,28),e.save(),e.translate(1056,265),e.save(),e.translate(3,49),e.save(),e.translate(10,8),e.save(),e.fillStyle="#000000",e.beginPath(),e.moveTo(2,17),e.lineTo(4,17),e.quadraticCurveTo(6,17,6,19),e.lineTo(6,26),e.quadraticCurveTo(6,28,4,28),e.lineTo(2,28),e.quadraticCurveTo(0,28,0,26),e.lineTo(0,19),e.quadraticCurveTo(0,17,2,17),e.closePath(),e.fill(),e.stroke(),e.restore(),e.save(),e.fillStyle="#000000",e.beginPath(),e.moveTo(20,17),e.lineTo(22,17),e.quadraticCurveTo(24,17,24,19),e.lineTo(24,26),e.quadraticCurveTo(24,28,22,28),e.lineTo(20,28),e.quadraticCurveTo(18,28,18,26),e.lineTo(18,19),e.quadraticCurveTo(18,17,20,17),e.closePath(),e.fill(),e.stroke(),e.restore(),e.save(),e.strokeStyle="#000000",e.lineWidth=2,e.lineCap="square",e.beginPath(),e.moveTo(3.5,23),e.lineTo(20.5,23),e.fill(),e.stroke(),e.restore(),e.save(),e.save(),e.fillStyle="#94d44e",e.save(),e.beginPath(),e.moveTo(23,11.2672237),e.bezierCurveTo(23.5979157,11.6115707,24,12.2552568,24,12.999615),e.lineTo(24,19.000385),e.bezierCurveTo(24,20.1047419,23.1029738,21,21.9950534,21),e.lineTo(2.00494659,21),e.bezierCurveTo(.897645164,21,0,20.1125667,0,19.000385),e.lineTo(0,12.999615),e.bezierCurveTo(0,12.2603805,.401930294,11.6148368,1,11.268783),e.lineTo(1,3.99742191),e.bezierCurveTo(1,2.89427625,1.88967395,2,2.991155,2),e.lineTo(21.008845,2),e.bezierCurveTo(22.1085295,2,23,2.89092539,23,3.99742191),e.lineTo(23,11.2672237),e.closePath(),e.fill(),e.stroke(),e.restore(),e.restore(),e.save(),e.strokeStyle="#000000",e.lineWidth=2,e.beginPath(),e.moveTo(22.5009348,12.1337882),e.lineTo(22,11.8452936),e.lineTo(22,3.99742191),e.bezierCurveTo(22,3.44392402,21.5569554,3,21.008845,3),e.lineTo(2.991155,3),e.bezierCurveTo(2.44342393,3,2,3.44509694,2,3.99742191),e.lineTo(2,11.8455),e.lineTo(1.50082265,12.1343329),e.bezierCurveTo(1.19247839,12.3127464,1,12.6390115,1,12.999615),e.lineTo(1,19.000385),e.bezierCurveTo(1,19.5563739,1.44601448,20,2.00494659,20),e.lineTo(21.9950534,20),e.bezierCurveTo(22.5510229,20,23,19.5521213,23,19.000385),e.lineTo(23,12.999615),e.bezierCurveTo(23,12.6352349,22.8086914,12.311029,22.5009348,12.1337882),e.closePath(),e.fill(),e.stroke(),e.restore(),e.restore(),e.save(),e.fillStyle="#000000",e.beginPath(),e.moveTo(5,6),e.lineTo(19,6),e.quadraticCurveTo(19,6,19,6),e.lineTo(19,12),e.quadraticCurveTo(19,12,19,12),e.lineTo(5,12),e.quadraticCurveTo(5,12,5,12),e.lineTo(5,6),e.quadraticCurveTo(5,6,5,6),e.closePath(),e.fill(),e.stroke(),e.restore(),e.save(),e.fillStyle="#000000",e.beginPath(),e.arc(5.03571429,16.0357143,1.39285714,0,6.283185307179586,!0),e.closePath(),e.fill(),e.stroke(),e.restore(),e.save(),e.fillStyle="#000000",e.beginPath(),e.arc(18.9642857,16.0357143,1.39285714,0,6.283185307179586,!0),e.closePath(),e.fill(),e.stroke(),e.restore(),e.restore(),e.restore(),e.restore(),e.restore(),e.restore(),e.restore()}collide(t){let e=t.parent,i=e.player;if(!e.ignore){let s=_s(xs(t.pos.x-this.x,2)+xs(t.pos.y-this.y,2)),n=i._powerupsConsumed.misc,r=this.scene;s<30&&e.alive&&!n.includes(this.id)&&(n.push(this.id),i.setTempVehicle("TRUCK",this.time*r.settings.drawFPS,{x:this.x,y:this.y},e.dir),r.camera.playerFocus===i&&(r.camera.focusOnPlayer(),r.vehicleTimer.playerAddedTime(i)),i.isGhost()||(this.hit=!0,this.sector.powerupCanvasDrawn=!1,this.scene.message.show("Truck Powerup!",50,"#94d44e",!1)))}}}bs.drawData={canvas:document.createElement("canvas"),dirty:!0,width:24,height:26};const Ts=bs.prototype;Ts.x=0,Ts.y=0,Ts.name="truck";var ks=bs;class Cs extends ms{constructor(t,e){super(t,e,ks),this.powerup=new ks(0,0,0,e.scene.track)}}Cs.prototype.name="truck";var Ss=Cs;const Ps=Math.random,Ms=Math.pow,Ds=Math.sqrt;class Es extends ce{constructor(t,e,i,s){super(),this.x=t,this.y=e,this.time=i,this.id=Ps().toString(36).substr(2),this.hit=!1,this.init(s)}getCode(){return"V "+this.x.toString(32)+" "+this.y.toString(32)+" 3 "+this.time.toString(32)}drawPowerup(t,e){e.save(),e.scale(t,t),e.translate(.6,0),e.beginPath(),e.moveTo(0,0),e.lineTo(21,0),e.lineTo(21,31),e.lineTo(0,31),e.closePath(),e.clip(),e.translate(0,0),e.translate(0,0),e.scale(1,1),e.translate(0,0),e.strokeStyle="rgba(0,0,0,0)",e.lineCap="butt",e.lineJoin="miter",e.miterLimit=4,e.save(),e.restore(),e.save(),e.restore(),e.save(),e.fillStyle="rgba(0, 0, 0, 0)",e.strokeStyle="rgba(0, 0, 0, 0)",e.lineWidth=1,e.translate(-1322,-440),e.save(),e.translate(251,28),e.save(),e.translate(1056,265),e.save(),e.translate(3,141),e.save(),e.translate(12,6),e.save(),e.fillStyle="#000000",e.beginPath(),e.moveTo(7,23),e.lineTo(14,23),e.quadraticCurveTo(15,23,15,24),e.lineTo(15,30),e.quadraticCurveTo(15,31,14,31),e.lineTo(7,31),e.quadraticCurveTo(6,31,6,30),e.lineTo(6,24),e.quadraticCurveTo(6,23,7,23),e.closePath(),e.fill(),e.stroke(),e.restore(),e.save(),e.strokeStyle="#000000",e.lineWidth=2,e.lineCap="round",e.beginPath(),e.moveTo(15,19),e.lineTo(12.9375,24.6875),e.fill(),e.stroke(),e.restore(),e.save(),e.strokeStyle="#000000",e.lineWidth=2,e.lineCap="round",e.translate(7.03125,21.84375),e.scale(-1,1),e.translate(-7.03125,-21.84375),e.beginPath(),e.moveTo(8.0625,19),e.lineTo(6,24.6875),e.fill(),e.stroke(),e.restore(),e.save(),e.save(),e.fillStyle="#f02728",e.save(),e.beginPath(),e.arc(10.5,11.125,10.5,0,6.283185307179586,!0),e.closePath(),e.fill(),e.stroke(),e.restore(),e.restore(),e.save(),e.strokeStyle="#000000",e.lineWidth=2,e.beginPath(),e.arc(10.5,11.125,9.5,0,6.283185307179586,!0),e.closePath(),e.fill(),e.stroke(),e.restore(),e.restore(),e.restore(),e.restore(),e.restore(),e.restore(),e.restore(),e.restore()}collide(t){let e=t.parent,i=e.player;if(!e.ignore){let s=Ds(Ms(t.pos.x-this.x,2)+Ms(t.pos.y-this.y,2)),n=i._powerupsConsumed.misc,r=this.scene;s<30&&e.alive&&!n.includes(this.id)&&(n.push(this.id),i.setTempVehicle("BALLOON",this.time*r.settings.drawFPS,{x:this.x,y:this.y},e.dir),r.camera.playerFocus===i&&(r.camera.focusOnPlayer(),r.vehicleTimer.playerAddedTime(i)),i.isGhost()||(this.hit=!0,this.sector.powerupCanvasDrawn=!1,this.scene.message.show("Balloon Powerup!",50,"#f02728",!1)))}}}Es.drawData={canvas:document.createElement("canvas"),dirty:!0,width:22,height:32};const As=Es.prototype;As.x=0,As.y=0,As.name="balloon";var Ls=Es;class Is extends ms{constructor(t,e){super(t,e,Ls),this.powerup=new Ls(0,0,0,e.scene.track)}}Is.prototype.name="balloon";var Os=Is;const zs=Math.random,js=Math.pow,Bs=Math.sqrt;class Fs extends ce{constructor(t,e,i,s){super(),this.x=t,this.y=e,this.time=i,this.id=zs().toString(36).substr(2),this.hit=!1,this.init(s)}getCode(){return"V "+this.x.toString(32)+" "+this.y.toString(32)+" 4 "+this.time.toString(32)}drawPowerup(t,e){const i=e.canvas.width;e.beginPath(),e.scale(i,i);e.lineWidth=.18,e.arc(.75,.75,.25-e.lineWidth/2,0,Math.PI/2),e.arc(.25,.75,.25-e.lineWidth/2,Math.PI/2,Math.PI),e.arc(.25,.25,.25-e.lineWidth/2,Math.PI,3*Math.PI/2),e.arc(.75,.25,.25-e.lineWidth/2,1.5*Math.PI,2*Math.PI),e.closePath(),e.fillStyle="#a784c5",e.strokeStyle="#000000",e.stroke(),e.fill(),e.restore()}collide(t){let e=t.parent,i=e.player;if(!e.ignore){let s=Bs(js(t.pos.x-this.x,2)+js(t.pos.y-this.y,2)),n=i._powerupsConsumed.misc,r=this.scene;s<30&&e.alive&&!n.includes(this.id)&&(n.push(this.id),i.setTempVehicle("BLOB",this.time*r.settings.drawFPS,{x:this.x,y:this.y},e.dir),r.camera.playerFocus===i&&(r.camera.focusOnPlayer(),r.vehicleTimer.playerAddedTime(i)),i.isGhost()||(this.hit=!0,this.sector.powerupCanvasDrawn=!1,this.scene.message.show("Blob Powerup!",50,"#A784C5",!1)))}}}Fs.drawData={canvas:document.createElement("canvas"),dirty:!0,width:24,height:24};const Rs=Fs.prototype;Rs.x=0,Rs.y=0,Rs.name="blob";var Ws=Fs;class Vs extends ms{constructor(t,e){super(t,e,Ws),this.powerup=new Ws(0,0,0,e.scene.track)}}Vs.prototype.name="blob";var Hs=Vs;class Ns extends Se.default{constructor(t){super(),super.init(t),this.powerupTools={},this.options=t.scene.settings.vehiclePowerup,this.active=!1,this.registerPowerupTools()}registerPowerupTools(){this.registerTool(new ys(this,this.toolHandler)),this.registerTool(new Ss(this,this.toolHandler)),this.registerTool(new Os(this,this.toolHandler)),this.registerTool(new Hs(this,this.toolHandler))}registerTool(t){this.powerupTools[t.name]=t}setOption(t,e){this.options[t]=e}getOptions(){return this.options}update(){this.toolHandler.gamepad,this.mouse,this.options,super.update()}press(){this.active=!0,this.powerupTools[this.options.selected].press()}hold(){this.active&&this.powerupTools[this.options.selected].hold()}release(){this.active&&(this.powerupTools[this.options.selected].release(),this.active=!1)}draw(){this.powerupTools[this.options.selected].draw(this.scene.game.canvas.getContext("2d"))}}const Us=Ns.prototype;Us.name="vehiclepowerup",Us.powerupTools=null,Us.active=!1;var qs=Ns,Gs=s(17),Ys=s.n(Gs);function Xs(t,e,i,s,n){let r=new Set,o=i-t,a=s-e;if(Math.max(Math.abs(o),Math.abs(a))>=500200)return[];let h=Math.sqrt(o*o+a*a),l=t+(-o+a)/h,c=e+(-o-a)/h,u=i+(o+a)/h,d=s+(-o+a)/h,p=[];m(t+(-o-a)/h,e+(o-a)/h,i+(o-a)/h,s+(o+a)/h,n),m(l,c,u,d,n);let f=Math.floor((t-Math.sign(o)*Math.SQRT1_2)/n),g=Math.floor((e-Math.sign(a)*Math.SQRT1_2)/n);return r.has(f+","+g)||(p.push(f,g),r.add(f+","+g)),f=Math.floor((i+Math.sign(o)*Math.SQRT1_2)/n),g=Math.floor((s+Math.sign(a)*Math.SQRT1_2)/n),r.has(f+","+g)||p.push(f,g),p;function m(t,e,i,s,n){let o=i>t?(Math.floor(t/n)+1)*n:(Math.ceil(t/n)-1)*n,a=s>e?(Math.floor(e/n)+1)*n:(Math.ceil(e/n)-1)*n,h=Math.abs((o-t)/(i-t)),l=Math.abs((a-e)/(s-e));for(;!(i>t?i<=o:i>=o)||!(s>e?s<=a:s>=a);){h=Math.abs((o-t)/(i-t)),l=Math.abs((a-e)/(s-e));let c=i>t?Math.floor(o/n)-1:Math.floor(o/n),u=s>e?Math.floor(a/n)-1:Math.floor(a/n);r.has(c+","+u)||(p.push(c,u),r.add(c+","+u)),l<h?s>e?a+=n:a-=n:i>t?o+=n:o-=n}let c=i>t?Math.ceil(i/n)-1:Math.floor(i/n),u=s>e?Math.ceil(s/n)-1:Math.floor(s/n);r.has(c+","+u)||(p.push(c,u),r.add(c+","+u))}}class Ks{constructor(t,e,i){this.track=i,this.scene=i.scene,this.settings=i.settings,this.drawSectorSize=this.settings.drawSectorSize,this.row=e,this.column=t,this.camera=i.camera,this.zoom=i.camera.zoom,this.canvasPool=i.canvasPool,this.x=t*this.drawSectorSize,this.y=e*this.drawSectorSize,this.realX=this.x*this.zoom,this.realY=this.y*this.zoom,this.lineCount=0,this.powerupsCount=0,this.drawn=!1,this.dirty=!1,this.physicsLines=[],this.sceneryLines=[],this.hasPowerups=!1,this.powerups={all:[],goals:[],gravitys:[],boosts:[],slowmos:[],checkpoints:[],bombs:[],antigravitys:[],teleports:[],helicopters:[],trucks:[],balloons:[],blobs:[]}}addLine(t){t instanceof re.default&&this.physicsLines.push(t),t instanceof oe.default&&this.sceneryLines.push(t),this.lineCount++,this.drawn=!1}searchForLine(t,e){let i=this[t],s=!1;for(let t of i)if(t.p1.x===e.x&&t.p1.y===e.y&&!1===t.recorded&&0===t.remove){s=t;break}return s}addPowerup(t){let e=this.powerups,i=null;switch(t.name){case"goal":i=e.goals;break;case"gravity":i=e.gravitys;break;case"slowmo":i=e.slowmos;break;case"boost":i=e.boosts;break;case"checkpoint":i=e.checkpoints;break;case"bomb":i=e.bombs;break;case"antigravity":i=e.antigravitys;break;case"teleport":i=e.teleports;break;case"helicopter":i=e.helicopters;break;case"truck":i=e.trucks;break;case"balloon":i=e.balloons;break;case"blob":i=e.blobs}e.all.push(t),i.push(t),this.powerupsCount++,this.hasPowerups=!0,this.powerupCanvasDrawn=!1}erase(t,e,i){let s=[];if(i.physics)for(let i of this.physicsLines)i.erase(t,e)&&s.push(i);if(i.scenery)for(let i of this.sceneryLines)i.erase(t,e)&&s.push(i);if(i.powerups)for(let i of this.powerups.all){let n=i.erase(t,e);n&&s.push(...n)}return s}cleanSector(){this.cleanSectorType("physicsLines"),this.cleanSectorType("sceneryLines"),this.cleanSectorType("powerups","all"),0===this.powerups.all.length?(this.hasPowerups=!1,this.powerupCanvas&&(this.canvasPool.releaseCanvas(this.powerupCanvas),this.powerupCanvas=null)):this.hasPowerups=!0,this.dirty=!1}cleanSectorType(t,e){var i=this[t];e&&(i=i[e]);for(let s=i.length-1;s>=0;s--)if(2===i[s].remove){if("powerups"===t&&"all"===e){let t=this.powerups[i[s].name+"s"];t.splice(t.indexOf(i[s]),1)}i.splice(s,1)}}draw(){let t=this.scene.camera.zoom,e=this.physicsLines,i=this.sceneryLines,s=Math.floor(this.drawSectorSize*t),n=this.canvasPool.getCanvas(),r=n.getContext("2d"),o=Math.max(2*t,.5),a=this.settings.sceneryLineColor,h=this.settings.physicsLineColor;n.width=s,n.height=s,r.clearRect(0,0,n.width,n.height),r.save(),r.beginPath(),r.lineWidth=o,r.lineCap="round",r.strokeStyle=this.track.game.mod.getVar("customColors")?it(this.track.game.mod.getVar("sceneryColor")):a,this.drawLines(i,t,r),r.stroke(),r.beginPath(),r.strokeStyle=this.track.game.mod.getVar("customColors")?it(this.track.game.mod.getVar("lineColor")):h,this.drawLines(e,t,r),this.track.game.mod.getVar("lineShadow")&&(r.shadowOffsetX=r.shadowOffsetY=2,r.shadowBlur=Math.max(2,10*t),r.shadowColor="#000"),r.stroke(),this.settings.developerMode&&(r.beginPath(),r.strokeStyle="blue",r.rect(0,0,s,s),r.stroke()),this.canvas=n,this.drawn=!0}cachePowerupSector(){if(this.powerupCanvasDrawn=!0,this.powerups.all.length>0){let t=this.scene.camera.zoom,e=this.drawSectorSize*t|0,i=this.powerupCanvasOffset,s=this.canvasPool.getCanvas(),n=s.getContext("2d"),r=["slowmos","checkpoints","boosts","gravitys","bombs","goals","antigravitys","teleports","helicopters","trucks","balloons","blobs"];s.width=e+i*t,s.height=e+i*t,n.clearRect(0,0,s.width,s.height);for(let e of r)this.drawPowerups(this.powerups[e],t,n);this.powerupCanvas=s,this.settings.developerMode&&(n.beginPath(),n.strokeStyle="red",n.rect(0,0,s.width,s.height),n.stroke())}}update(){let t=this.camera.zoom;this.realX=Math.floor(this.x*t),this.realY=Math.floor(this.y*t|0),this.zoom=t}resetCollided(){for(let t of this.physicsLines)t&&(t.collided=!1)}collide(t){let e=t.parent,i=this.physicsLines;for(let e=i.length-1;e>=0;e--)if(i[e]){let s=i[e];0===s.remove&&s.collide(t)}if(e.powerupsEnabled){let e=this.powerups.all;for(let i=e.length-1;i>=0;i--){var s=e[i];0===s.remove&&s.collide(t)}}}drawLines(t,e,i){let s,n,r,o,a,h,l=this.x,c=this.y;for(let d=t.length-1;d>=0;d--){var u=t[d];0===u.remove&&(s=u.p1,n=u.p2,r=(s.x-l)*e,o=(s.y-c)*e,a=(n.x-l)*e,h=(n.y-c)*e,i.moveTo(r,o),i.lineTo(a,h))}}drawPowerups(t,e,i){t=t;let s=this.x,n=this.y,r=this.powerupCanvasOffset*e/2;for(let a=t.length-1;a>=0;a--){var o=t[a];if(0===o.remove){let t=(o.x-s)*e+r,a=(o.y-n)*e+r;o.draw(t,a,e,i)}}}clear(){this.drawn=!1,this.powerupCanvasDrawn=!1,this.canvas&&(this.canvas=null,this.canvasPool.releaseCanvas(this.canvas)),this.powerupCanvas&&(this.canvasPool.releaseCanvas(this.powerupCanvas),this.powerupCanvas=null)}close(){this.track=null,this.scene=null,this.settings=null,this.drawSectorSize=null,this.row=null,this.column=null,this.camera=null,this.zoom=null,this.canvasPool=null,this.x=null,this.y=null,this.realX=null,this.realY=null,this.lineCount=null,this.drawn=null,this.physicsLines=null,this.sceneryLines=null,this.canvas=null}}const Zs=Ks.prototype;Zs.image=!1,Zs.scene=null,Zs.settings=null,Zs.drawSectorSize=null,Zs.row=0,Zs.column=0,Zs.camera=null,Zs.zoom=0,Zs.x=0,Zs.y=0,Zs.realX=0,Zs.realY=0,Zs.lineCount=0,Zs.powerupsCount=0,Zs.drawn=!1,Zs.physicsLines=[],Zs.sceneryLines=[],Zs.powerups=[],Zs.canvasPool=null,Zs.canvas=null,Zs.powerupCanvas=null,Zs.powerupCanvasOffset=30,Zs.powerupCanvasDrawn=!1,Zs.dirty=!1;var Js=Ks;const $s=Math.floor,Qs=Math.ceil;class tn{constructor(t){this.options=t,this.canvasPool=[],t.screen&&(this.setToScreen=!0,this.update()),t.cap&&(this.setToScreen=!1,this.poolCap=t.cap)}update(){this.setToScreen&&(this.getPoolCapFromScreen(),this.cleanPool())}getPoolCapFromScreen(){let t=this.options,e=t.screen,i=t.camera,s=$s(t.settings.drawSectorSize*i.zoom),n=Qs(e.width/s),r=Qs(e.height/s);this.poolCap=n*r+n+r}getCanvas(){var t=this.canvasPool.pop();return t||(t=document.createElement("canvas")),t}releaseCanvas(t){this.canvasPool.length<this.poolCap&&this.canvasPool.push(t)}cleanPool(){this.canvasPool.length>this.poolCap&&(this.canvasPool=this.canvasPool.slice(0,this.poolCap+1))}}const en=tn.prototype;en.canvasPool=null,en.poolCap=5e3,en.setToScreen=!0,en.options=null;var sn=tn,nn=Math.floor,rn=Math.max,on=Math.min,an=Math.sqrt,hn=Math.pow,ln=Math.round;class cn{constructor(t){this.scene=t,this.game=t.game,this.settings=t.game.settings,this.camera=t.camera,this.sectors={},this.sectors.drawSectors=[],this.sectors.physicsSectors=[],this.totalSectors=[],this.powerups=[],this.powerupsLookupTable={},this.physicsLines=[],this.sceneryLines=[],this.targets=[],this.allowedVehicles=["MTB","BMX"],this.canvasPool=new sn(t),this.needsCleaning=!1,this.createPowerupCache()}createPowerupCache(){dn.push(new yi(0,0,0,this)),dn.push(new Si(0,0,this)),dn.push(new Vi(0,0,this)),dn.push(new Je(0,0,0,this)),dn.push(new Oi(0,0,this)),dn.push(new _e(0,0,this)),dn.push(new Yi(0,0,this)),dn.push(new es(0,0,this)),dn.push(new fs(0,0,0,this)),dn.push(new ks(0,0,0,this)),dn.push(new Ls(0,0,0,this)),dn.push(new Ws(0,0,0,this))}recachePowerups(t){for(let e of dn)e.recache(t)}read(t){let e,i=t.split("#"),s=i[0].split(","),n=[],r=[];i.length>3?(n=i[1].split(","),r=i[2].split(","),e=i[3]):i.length>2?(n=i[1].split(","),r=i[2].split(",")):i.length>1&&(r=i[1].split(",")),this.addLines(s,this.addPhysicsLine),this.addLines(n,this.addSceneryLine),this.addPowerups(r),this.scene.selectVehicle(e)}addPowerups(t){for(let i=0;i<t.length;i++){let s=t[i].split(" ");if(s.length>=2){let t=[];for(let i=1;i<s.length;i++){var e=parseInt(s[i],32);t.push(e)}let i=ln(t[0]),n=ln(t[1]),r=null;switch(s[0]){case"B":r=new yi(i,n,t[2],this),this.addPowerup(r);break;case"S":r=new Si(i,n,this),this.addPowerup(r);break;case"O":r=new Vi(i,n,this),this.addPowerup(r);break;case"G":r=new Je(i,n,t[2],this),this.addPowerup(r);break;case"C":r=new Oi(i,n,this),this.addPowerup(r);break;case"T":r=new _e(i,n,this),this.addTarget(r),this.addPowerup(r);break;case"A":r=new Yi(i,n,this),this.addPowerup(r);break;case"V":let e=t[2],s=t[3],o=this.settings.vehiclePowerup.minTime,a=this.settings.vehiclePowerup.maxTime;switch(s=s||o,s=on(s,a),s=rn(s,o),e){case 1:r=new fs(i,n,s,this);break;case 2:r=new ks(i,n,s,this);break;case 3:r=new Ls(i,n,s,this);break;case 4:r=new Ws(i,n,s,this);break;default:continue}this.addPowerup(r);break;case"W":let h=t[0],l=t[1],c=t[2],u=t[3],d=new es(h,l,this),p=new es(c,u,this);d.addOtherPortalRef(p),p.addOtherPortalRef(d),this.addPowerup(d),this.addPowerup(p)}}}}addTarget(t){this.dirty=!0,this.targetCount++,this.targets.push(t)}addPowerup(t){let e=t.x,i=t.y;this.addRef(e,i,t,un.POWERUPS,this.sectors.physicsSectors,this.settings.physicsSectorSize);var s=this.addRef(e,i,t,un.POWERUPS,this.sectors.drawSectors,this.settings.drawSectorSize);return!1!==s&&this.totalSectors.push(s),null!==t&&(this.powerups.push(t),t.id&&(this.powerupsLookupTable[t.id]=t)),t}addLines(t,e){for(let i=0;i<t.length;i++){let s=t[i].split(" ");if(s.length>3)for(let t=0;t<s.length-2;t+=2){let i=parseInt(s[t],32),n=parseInt(s[t+1],32),r=parseInt(s[t+2],32),o=parseInt(s[t+3],32);isNaN(i+n+r+o)||e.call(this,i,n,r,o)}}}addPhysicsLine(t,e,i,s){t=ln(t),e=ln(e),i=ln(i);let n=(s=ln(s))-e;if(an(hn(i-t,2)+hn(n,2))>=2){var r=new re.default(t,e,i,s);this.addPhysicsLineToTrack(r)}return r}addPhysicsLineToTrack(t){let e=this.settings.drawSectorSize,i=t.p1,s=t.p2,n=Xs(i.x,i.y,s.x,s.y,e),r=this.sectors.drawSectors;for(let i=0;n.length>i;i+=2){let s=n[i]*e,o=n[i+1]*e,a=this.addRef(s,o,t,un.LINE,r,e);!1!==a&&this.totalSectors.push(a)}e=this.settings.physicsSectorSize,n=Ys()(i.x,i.y,s.x,s.y,e),r=this.sectors.physicsSectors;for(let i=0;i<n.length;i+=2){let s=n[i],o=n[i+1];this.addRef(s,o,t,un.LINE,r,e)}return this.physicsLines.push(t),t}addSceneryLine(t,e,i,s){t=ln(t),e=ln(e),i=ln(i);let n=(s=ln(s))-e;if(an(hn(i-t,2)+hn(n,2))>=2){var r=new oe.default(t,e,i,s);this.addSceneryLineToTrack(r)}return r}addSceneryLineToTrack(t){let e=this.settings.drawSectorSize,i=t.p1,s=t.p2,n=Xs(i.x,i.y,s.x,s.y,e),r=this.sectors.drawSectors;for(let i=0;i<n.length;i+=2){let s=n[i]*e,o=n[i+1]*e,a=this.addRef(s,o,t,un.LINE,r,e);!1!==a&&this.totalSectors.push(a)}return this.sceneryLines.push(t),t}addRef(t,e,i,s,n,r){let o=nn(t/r),a=nn(e/r),h=!1;switch(void 0===n[o]&&(n[o]=[]),void 0===n[o][a]&&(n[o][a]=new Js(o,a,this),h=n[o][a]),s){case un.LINE:n[o][a].addLine(i),i.addSectorReference(n[o][a]);break;case un.POWERUPS:n[o][a].addPowerup(i),i.addSectorReference(n[o][a])}return this.dirty=!0,h}cleanTrack(){this.needsCleaning=!1,this.cleanLines(),this.cleanPowerups()}cleanLines(){let t=this.physicsLines,e=this.sceneryLines;for(let e=t.length-1;e>=0;e--)2===t[e].remove&&t.splice(e,1);for(let t=e.length-1;t>=0;t--)2===e[t].remove&&e.splice(t,1)}cleanPowerups(){let t=this.powerups,e=this.targets;for(let e=t.length-1;e>=0;e--)2===t[e].remove&&t.splice(e,1);for(var i=e.length-1;i>=0;i--)2===e[i].remove&&e.splice(i,1);this.countTargets()}countTargets(){let t=0;for(let e of this.targets)0===e.remove&&t++;this.targetCount=t}updatePowerupState(t){var e=t._powerupsConsumed;this.resetPowerups(),this.setPowerupStates(e.targets),this.setPowerupStates(e.checkpoints),this.setPowerupStates(e.misc)}setPowerupStates(t){var e=this.powerupsLookupTable;for(let i=0;i<t.length;i++){let s=e[t[i]];s.remove&&s.id&&(delete e[t[i]],delete t[i]),s.hit=!0,s.sector.powerupCanvasDrawn=!1}}getCode(){this.cleanTrack();let t=this.powerups,e=this.physicsLines,i=this.sceneryLines,s="",n=!1;for(let t of e)t.recorded||0!==t.remove||(n=!0,s+=t.p1.x.toString(32)+" "+t.p1.y.toString(32)+t.getCode(this)+",");n&&(s=s.slice(0,-1));for(let t of e)t.recorded=!1;s+="#",n=!1;for(let t of i)t.recorded||0!==t.remove||(n=!0,s+=t.p1.x.toString(32)+" "+t.p1.y.toString(32)+t.getCode(this)+",");n&&(s=s.slice(0,-1));for(let t of i)t.recorded=!1;s+="#",n=!1;for(let e of t)if(0===e.remove){n=!0;let t=e.getCode();t&&(s+=t+",")}return n&&(s=s.slice(0,-1)),s+="#",s+=this.scene.playerManager.firstPlayer._baseVehicle.vehicleName||"MTB",s}resetPowerups(){for(let t of this.powerups)t.hit&&!t.remove&&(t.hit=!1,t.sector.powerupCanvasDrawn=!1)}addDefaultLine(){let t=this.defaultLine,e=t.p1,i=t.p2;this.addPhysicsLine(e.x,e.y,i.x,i.y)}erase(t,e,i){this.dirty=!0;let s=this.settings.drawSectorSize,n=this.sectors.drawSectors,o=[],a=nn((t.x+Math.abs(e))/s),h=nn((t.x-Math.abs(e))/s),l=nn((t.y+Math.abs(e))/s),c=nn((t.y-Math.abs(e))/s);for(let s=h;s<=a;s++)for(var u=c;u<=l;u++)n[s]&&n[s][u]&&o.push(n[s][u].erase(t,e,i));return Object(r.flatten)(o)}drawAndCache(){var t=performance.now();for(let t of this.totalSectors)setTimeout((function(){t.draw(),t.cacheAsImage()}),250*i);var e=performance.now();console.log("Track :: Time to draw entire track : "+(e-t)+"ms")}undraw(){for(let t of this.totalSectors)t.drawn&&t.clear(!0);this.recachePowerups(Math.max(this.camera.zoom,1)),this.canvasPool.update()}collide(t){let e=this.settings.physicsSectorSize,i=Math.floor(t.pos.x/e-.5),s=Math.floor(t.pos.y/e-.5),n=this.sectors.physicsSectors;n[i]&&n[i][s]&&n[i][s].resetCollided(),n[i+1]&&n[i+1][s]&&n[i+1][s].resetCollided(),n[i+1]&&n[i+1][s+1]&&n[i+1][s+1].resetCollided(),n[i]&&n[i][s+1]&&n[i][s+1].resetCollided(),n[i]&&n[i][s]&&n[i][s].collide(t),n[i+1]&&n[i+1][s]&&n[i+1][s].collide(t),n[i+1]&&n[i+1][s+1]&&n[i+1][s+1].collide(t),n[i]&&n[i][s+1]&&n[i][s+1].collide(t)}getDrawSector(t,e){let i=this.settings.drawSectorSize,s=nn(t/i),n=nn(e/i),r=this.sectors.drawSectors,o=!1;return void 0!==r[s]&&void 0!==r[s][n]&&(o=r[s][n]),o}draw(){let t=this.scene,e=t.camera,i=t.screen,s=t.game.canvas.getContext("2d"),n=e.zoom,r=e.position,o=i.center,a=this.settings.drawSectorSize*n,h=r.x*n/a,l=r.y*n/a,c=i.width/a/2,u=i.height/a/2,d=h-c-1,p=l-u-1,f=h+c,g=l+u;s.imageSmoothingEnabled=!1,s.mozImageSmoothingEnabled=!1,s.oImageSmoothingEnabled=!1,s.webkitImageSmoothingEnabled=!1;let m=h*a-o.x,v=l*a-o.y,y=this.totalSectors,w=[];for(let t of y){let e=t.row,i=t.column;if(this.needsCleaning&&this.cleanTrack(),t.dirty&&t.cleanSector(),i>=d&&f>=i&&e>=p&&g>=e){!1===t.drawn&&t.draw(),t.hasPowerups&&!t.powerupCanvasDrawn&&t.cachePowerupSector();let n=nn(i*a-m),r=nn(e*a-v);s.drawImage(t.canvas,n,r,a,a),t.hasPowerups&&t.powerupCanvasDrawn&&w.push(t)}else t.drawn&&t.clear()}for(let t of w){let e=t.column*a-m,i=t.row*a-v,r=t.powerupCanvasOffset*n;s.drawImage(t.powerupCanvas,e-r/2,i-r/2,a+r,a+r)}}closeSectors(){for(let t of this.totalSectors)t.close()}close(){this.scene=null,this.closeSectors(),this.totalSectors=null,this.canvasPool=null,this.sectors=null,this.physicsLines=null,this.sceneryLines=null,this.powerups=null,this.camera=null}}cn.prototype.defaultLine={p1:new n.default(-40,50),p2:new n.default(40,50)},cn.prototype.game=null,cn.prototype.scene=null,cn.prototype.camera=null,cn.prototype.canvas=null,cn.prototype.canvasPool=null,cn.prototype.settings=null,cn.prototype.physicsLines=null,cn.prototype.sceneryLines=null,cn.prototype.powerups=null,cn.prototype.targets=null,cn.prototype.targetCount=0,cn.prototype.sectors=null,cn.prototype.totalSectors=null,cn.prototype.allowedVehicles=null,cn.prototype.dirty=!1;var un={LINE:1,POWERUPS:2},dn=[],pn=cn,fn=s(8),gn=s.n(fn),mn=s(9),vn=s.n(mn),yn=s(10),wn=s.n(yn),xn=s(11),_n=s.n(xn),bn=s(3);class Tn extends bn.default{constructor(t){super(),this.name="pause_controls",this.pauseControl=null,this.paused=!1,this.controlsSpriteSheetData={frames:[[230,2,76,76],[154,2,76,76],[78,2,76,76],[2,2,76,76]],animations:{"pause_btn-hover":[0],pause_btn:[1],"play_btn-hover":[2],play_btn:[3]}},this.controlData={"pause_btn-hover":{key:"pause",top:60,right:70}},this.initialize(t)}update(){const t=this.scene.state.paused;this.paused!==t&&(t?(this.pauseControl.gotoAndStop("play_btn-hover"),this.paused=!0):(this.pauseControl.gotoAndStop("pause_btn-hover"),this.paused=!1))}addControls(){var t=new createjs.Container;t.addChild(this.createControl("pause_btn-hover")),this.controlsContainer=t,this.pauseControl=t.getChildByName("pause_btn-hover"),this.stage.addChild(t)}}var kn=Tn;class Cn extends bn.default{constructor(t){super(),this.initialize(t)}addControls(){var t=new createjs.Container;t.addChild(this.createControl("redo")),t.addChild(this.createControl("undo")),this.controlsContainer=t,this.stage.addChild(t)}update(){let t=this.scene,e=this.scene.state.paused;t.controls&&this.controlsContainer.visible!==e&&(this.controlsContainer.visible=e)}}const Sn=Cn.prototype;Sn.name="redo_undo_controls",Sn.controlsSpriteSheetData={frames:[[78,2,76,76],[2,2,76,76]],animations:{redo:[0],undo:[1]}},Sn.controlData={redo:{keys:["ctrl","y"],top:60,right:160},undo:{keys:["ctrl","z"],top:60,right:240}};var Pn=Cn,Mn=s(12),Dn=s.n(Mn),En=s(13),An=s.n(En),Ln=Application.Helpers.GoogleAnalyticsHelper;class In{constructor(t){this.game=t,this.mod=t.mod,this.assets=t.assets,this.stage=t.stage,this.settings=t.settings,this.sound=new Dn.a(this),this.mouse=new f(this),this.mouse.disableContextMenu(),this.message=new An.a(this),this.camera=new _(this),this.screen=new k(this),this.createTrack(),this.loadingcircle=new gn.a(this),this.playerManager=new ie(this),this.vehicleTimer=new ne.a(this),this.score=new vn.a(this),this.createMainPlayer(),this.createControls(),this.registerTools(),this.state=this.setStateDefaults(),this.oldState=this.setStateDefaults(),this.restart(),this.initializeAnalytics(),this.stage.addEventListener("stagemousedown",this.tapToStartOrRestart.bind(this))}getCanvasOffset(){return this.settings.isStandalone?{height:202,width:0}:{height:90,width:0}}tapToStartOrRestart(){if(this.settings.mobile){var t=this.playerManager.firstPlayer;t&&t._crashed&&!this.state.paused?t.getGamepad().setButtonDown("enter"):this.play()}}initializeAnalytics(){this.analytics={deaths:0,mouseEvents:0},this.trackAction("editor-open","open")}createMainPlayer(){let t=this.playerManager.createPlayer(this,this.settings.user),e=t.getGamepad();e.setKeyMap(this.settings.editorHotkeys),e.onButtonDown=this.buttonDown.bind(this),e.listen(),this.playerManager.firstPlayer=t,this.playerManager.addPlayer(t)}createControls(){"tablet"===this.settings.controls&&(this.controls=new wn.a(this),this.controls.hide()),"phone"===this.settings.controls&&(this.controls=new _n.a(this),this.controls.hide()),this.redoundoControls=new Pn(this),this.pauseControls=new kn(this)}createTrack(){this.track&&this.track.close();let t=new pn(this),e=this.getAvailableTrackCode();0!=e?(t.read(e),this.track=t,this.state.preloading=!1,this.state.loading=!1):t.addDefaultLine(),this.importCode=!1,this.restartTrack=!0,this.clear=!1,this.track=t}updateControls(){if(this.controls){let t=this.state.paused;this.controls.isVisible()===t&&(t||(this.state.playing=!1,this.camera.focusOnMainPlayer(),this.toolHandler.setTool("camera")),this.controls.setVisibility(!t),this.updateState()),this.controls.update()}this.pauseControls.update()}registerTools(){let t=new Ce(this);this.toolHandler=t,t.enableGridUse(),t.registerTool(Me),t.registerTool(ze),t.registerTool(Fe),t.registerTool(Ve),t.registerTool(Ne.a),t.registerTool(Ge),t.registerTool(hs),t.registerTool(qs),t.setTool(this.settings.startTool)}updateToolHandler(){this.controls&&!1!==this.controls.isVisible()||this.toolHandler.update()}play(){this.state.playing=!0}update(){this.updateToolHandler(),this.mouse.update(),this.state.showDialog||(this.updateGamepads(),this.checkGamepads()),this.screen.update(),this.updateControls(),this.camera.update(),this.sound.update(),this.restartTrack&&this.restart(),!this.state.paused&&this.state.playing&&(this.message.update(),this.updatePlayers(),this.score.update(),this.playerManager.firstPlayer.complete?this.trackComplete():this.ticks++),this.vehicleTimer.update(),(this.importCode||this.clear)&&this.createTrack(),this.isStateDirty()&&this.updateState(),this.stage.clear(),this.draw(),this.stage.update(),this.camera.updateZoom()}isStateDirty(){let t=this.oldState,e=this.state,i=!1;for(var s in e)e[s]!==t[s]&&(i=!0,this.oldState[s]=e[s]);return i}updateGamepads(){this.playerManager.updateGamepads()}checkGamepads(){this.playerManager.checkKeys()}stopAudio(){createjs.Sound.stop()}restart(){this.verified=!this.settings.requireTrackVerification,this.track.dirty=!1,this.track.resetPowerups(),this.message.hide(),this.restartTrack=!1,this.state.playing=!1,this.ticks=0,this.playerManager.reset(),this.camera.focusOnPlayer(),this.camera.fastforward(),this.score.update()}buttonDown(t){let e=this.camera;switch(this.state.playing=!0,t){case"up":case"down":case"left":case"right":e.focusOnMainPlayer();break;case"change_camera":e.focusOnNextPlayer();break;case"pause":this.state.paused=!this.state.paused;break;case"settings":this.command("dialog","settings");break;case"change_vehicle":this.toggleVehicle(),this.stateChanged();break;case"zoom_increase":e.increaseZoom(),this.stateChanged();break;case"zoom_decrease":e.decreaseZoom(),this.stateChanged();break;case"fullscreen":this.toggleFullscreen(),this.stateChanged()}}toggleFullscreen(){if(this.settings.embedded){let t=this.settings,e=t.basePlatformUrl+"/t/"+t.track.url;window.open(e)}else this.settings.fullscreenAvailable&&(this.settings.fullscreen=this.state.fullscreen=!this.settings.fullscreen)}updatePlayers(){this.playerManager.update()}drawPlayers(){this.playerManager.draw()}draw(){this.toolHandler.drawGrid(),this.track.draw(),this.drawPlayers(),this.controls&&!1!==this.controls.isVisible()||this.toolHandler.draw(),this.state.loading&&this.loadingcircle.draw(),this.message.draw()}getAvailableTrackCode(){let t=this.settings,e=!1;return t.importCode&&"false"!==t.importCode?(e=t.importCode,t.importCode=null):this.importCode&&(e=this.importCode,this.importCode=null),e}redraw(){this.track.undraw(),GameInventoryManager.redraw(),this.toolHandler.resize()}resize(){this.pauseControls.resize(),this.redoundoControls.resize(),this.controls&&this.controls.resize()}updateState(){if(null!==this.game.onStateChange){var t=this.state;t.tool=this.toolHandler.currentTool,t.toolOptions=this.toolHandler.getToolOptions(),t.grid=this.toolHandler.options.grid,t.cameraLocked=this.toolHandler.options.cameraLocked,t.zoomPercentage=this.camera.zoomPercentage,t.vehicle=this.vehicle,this.game.onStateChange(this.state)}}stateChanged(){this.updateState()}setStateDefaults(){let t={};return t.paused=!!this.settings.mobile||this.settings.startPaused,t.loading=!1,t.playing=this.settings.waitForKeyPress,t.tool=this.toolHandler.currentTool,t.toolOptions=this.toolHandler.getToolOptions(),t.grid=this.toolHandler.options.grid,t.cameraLocked=this.toolHandler.options.cameraLocked,t.zoomPercentage=this.camera.zoomPercentage,t.vehicle=this.vehicle,t.showDialog=!1,t.dialogOptions=!1,t.preloading=!1,t.fullscreen=this.settings.fullscreen,t.inFocus=!0,this.controls&&(t.hideMenus=this.controls.isVisible()),t}toggleVehicle(){let t=this.track.allowedVehicles,e=this.state.vehicle,i=t.indexOf(e);i++,i>=t.length&&(i=0),this.selectVehicle(t[i])}selectVehicle(t){this.track.allowedVehicles.includes(t)&&(this.vehicle=t,this.playerManager.firstPlayer.setBaseVehicle(t),this.restartTrack=!0)}trackAction(t,e){let i={category:"create",action:t,label:e,value:this.toolHandler.analytics.actions+this.mouse.analytics.clicks,non_interaction:!0};Ln.track_event(i)}openDialog(t){switch(this.state.dialogOptions={},t){case"import":break;case"export":setTimeout(this.getTrackCode.bind(this),750);break;case"upload":"undefined"==typeof isChromeApp&&setTimeout(this.getTrackCode.bind(this),750)}this.state.playing=!1,this.state.showDialog=t}getTrackCode(){this.state.dialogOptions={},this.state.dialogOptions.verified=this.verified,this.state.dialogOptions.code=this.track.getCode()}trackComplete(){this.verified=!this.track.dirty}hideControlPlanel(){}showControlPlanel(){}command(...t){switch(t.shift()){case"change tool":var e=t[0];this.toolHandler.setTool(e);break;case"change tool option":let s=t[0],n=t[1];void 0!==t[2]?this.toolHandler.setToolOption(s,n,t[2]):this.toolHandler.setToolOption(s,n);break;case"snap":this.toolHandler.toggleSnap();break;case"add track":this.track.read(demo.code),track=null;break;case"redraw":this.redraw();break;case"fullscreen":this.settings.fullscreen=this.state.fullscreen=!this.settings.fullscreen;break;case"grid":this.toolHandler.toggleGrid();break;case"lock camera":this.toolHandler.toggleCameraLock();break;case"toggle vehicle":this.toggleVehicle(),this.stateChanged();break;case"reset zoom":this.camera.resetZoom();break;case"increase zoom":this.camera.increaseZoom();break;case"decrease zoom":this.camera.decreaseZoom();break;case"change lineType":this.toolHandler.options.lineType=t[0],this.stateChanged();break;case"resize":this.resize();break;case"dialog":let r=t[0];!1===r?this.listen():this.unlisten(),this.openDialog(r);break;case"focused":!0===t[0]?(this.state.inFocus=!0,this.state.showDialog||this.listen()):(this.state.inFocus=!1,this.unlisten(),this.state.playing=!1);break;case"clear track":this.trackAction("editor-action","clear"),this.clear=!0;break;case"import":var i=t[0];i.length<=0&&(i=!1),this.importCode=i,this.clear=t[1],this.command("dialog",!1)}}listen(){this.playerManager.firstPlayer.getGamepad().listen()}unlisten(){this.playerManager.firstPlayer.getGamepad().unlisten()}stopAudio(){createjs.Sound.stop()}close(){this.trackAction("editor-exit","exit"),this.pauseControls=null,this.mouse.close(),this.mouse=null,this.camera.close(),this.camera=null,this.screen.close(),this.screen=null,this.vehicleTimer.close(),this.vehicleTimer=null,this.playerManager.close(),this.playerManager=null,this.sound.close(),this.sound=null,this.track.close(),this.toolHandler.close(),this.game=null,this.assets=null,this.settings=null,this.stage=null,this.track=null,this.state=null,this.stopAudio()}}const On=In.prototype;On.game=null,On.assets=null,On.stage=null,On.canvas=null,On.settings=null,On.camera=null,On.screen=null,On.mouse=null,On.track=null,On.player=null,On.players=null,On.ticks=0,On.state=null,On.oldState=null,On.stateDirty=!0,On.onStateChange=null,On.vehicle="MTB",On.showDialog=!1,On.dialogOptions=!1,On.importCode=!1,On.clear=!1,On.redoundoControls=null,On.pauseControls=null,On.inFocus=!0,On.controls=null,On.verified=!1,On.analytics=null;var zn=In,jn=s(18),Bn=s.n(jn),Fn=s(19),Rn=s.n(Fn);class Wn extends bn.default{constructor(t){super(),this.initialize(t)}update(){var t=this.scene.settings.fullscreen;this.fullscreen!==t&&(this.fullscreenControl.gotoAndStop(t?"exit_fullscreen_btn-hover":"fullscreen_btn-hover"),this.fullscreen=t)}addControls(){var t=new createjs.Container;t.addChild(this.createControl("fullscreen_btn-hover")),this.controlsContainer=t,this.fullscreenControl=t.getChildByName("fullscreen_btn-hover"),this.stage.addChild(t)}}Wn.prototype.name="fullscreen_controls",Wn.prototype.fullscreenControl=null,Wn.prototype.fullscreen=!1,Wn.prototype.controlsSpriteSheetData={frames:[[230,2,76,76],[154,2,76,76],[78,2,76,76],[2,2,76,76]],animations:{"exit_fullscreen_btn-hover":[0],exit_fullscreen_btn:[1],"fullscreen_btn-hover":[2],fullscreen_btn:[3]}},Wn.prototype.controlData={"fullscreen_btn-hover":{top:60,right:150,key:"fullscreen"}};var Vn=Wn,Hn=s(20),Nn=s.n(Hn),Un=s(21),qn=s(6);const Gn=Math.round,Yn=Application.Helpers.GoogleAnalyticsHelper;class Xn{constructor(t){this.game=t,this.mod=t.mod,this.assets=t.assets,this.stage=t.stage,this.settings=t.settings,this.sound=new Dn.a(this),this.mouse=new f(this),this.initalizeCamera(),this.screen=new k(this),this.createTrack(),this.score=new vn.a(this),this.raceTimes=new Rn.a(this),this.message=new An.a(this),this.settings.isCampaign&&(this.campaignScore=new Bn.a(this)),this.loadingcircle=new gn.a(this),this.loading=!1,this.ready=!1,this.playerManager=new ie(this),this.vehicleTimer=new ne.a(this),this.races=[],this.state=this.setStateDefaults(),this.oldState=this.setStateDefaults(),this.createMainPlayer(),this.createControls(),this.registerTools(),this.setStartingVehicle(),this.restart(),this.initializeAnalytics(),this.stage.addEventListener("stagemousedown",this.tapToStartOrRestart.bind(this))}getCanvasOffset(){return{height:0,width:0}}tapToStartOrRestart(){if(this.settings.mobile){let t=this.playerManager.firstPlayer;t&&t._crashed&&!this.state.paused?t.getGamepad().setButtonDown("enter"):this.play()}}initializeAnalytics(){this.analytics={deaths:0}}createControls(){"tablet"===this.settings.controls&&(this.controls=new wn.a(this),this.controls.hide()),"phone"===this.settings.controls&&(this.controls=new _n.a(this),this.controls.hide()),this.pauseControls=new kn(this),this.settings.fullscreenAvailable&&(this.fullscreenControls=new Vn(this)),this.settingsControls=new Nn.a(this)}play(){this.state.playing||(this.state.playing=!0,this.hideControlPlanel())}buttonDown(t){if(!this.state.showDialog){let e=this.camera;switch(t){case"change_camera":e.focusOnNextPlayer();break;case"pause":this.state.paused=!this.state.paused;break;case"settings":this.openDialog("settings");break;case"exit_fullscreen":this.exitFullscreen();break;case"change_vehicle":this.toggleVehicle();break;case"zoom_increase":e.increaseZoom();break;case"zoom_decrease":e.decreaseZoom();break;case"fullscreen":this.toggleFullscreen()}}}exitFullscreen(){this.settings.fullscreenAvailable&&(this.settings.fullscreen=!1,this.state.fullscreen=!1,this.trackEvent("game-ui","game-fullscreen-toggle","game-out-fullscreen"))}toggleFullscreen(){if(this.settings.embedded){let t=this.settings,e=t.basePlatformUrl+"/t/"+t.track.url;window.open(e)}else this.settings.fullscreenAvailable&&(this.settings.fullscreen=!this.settings.fullscreen,this.state.fullscreen=!this.settings.fullscreen,this.settings.fullscreen?this.trackEvent("game-ui","game-fullscreen-toggle","game-into-fullscreen"):this.trackEvent("game-ui","game-fullscreen-toggle","game-out-fullscreen"))}trackEvent(t,e,i){Yn.track_event({category:t,action:e,label:i,value:0,non_interaction:!0})}getAvailableTrackCode(){let t=this.settings,e=!1;return t.importCode&&"false"!==t.importCode?(e=t.importCode,t.importCode=null):this.importCode&&(e=this.importCode,this.importCode=null),e}createMainPlayer(){let t=this.playerManager.createPlayer(this,this.settings.user),e=t.getGamepad();e.setKeyMap(this.settings.playHotkeys),e.recordKeys(this.settings.keysToRecord),e.onButtonDown=this.buttonDown.bind(this),e.listen(),this.playerManager.firstPlayer=t,this.playerManager.addPlayer(t)}createTrack(){this.track&&this.track.close();let t=new pn(this),e=this.getAvailableTrackCode();0!=e&&(this.track=t,this.setTrackAllowedVehicles(),t.read(e),this.state.preloading=!1,this.loading=!1,this.restartTrack=!0,this.ready=!0),this.track=t}setTrackAllowedVehicles(){let t=this.settings.track;t&&(this.track.allowedVehicles=t.vehicles)}initalizeCamera(){this.camera=new _(this)}updateControls(){if(this.controls){var t=this.state.paused;this.controls.isVisible()===t&&(t||(this.state.playing=!1,this.camera.focusOnMainPlayer(),this.toolHandler.setTool("camera")),this.controls.setVisibility(!t),this.controls.setZoomControlsVisibilty(t),this.updateState()),this.controls.update()}this.pauseControls.update(),this.settings.fullscreenAvailable&&this.fullscreenControls.update()}registerTools(){var t=new Ce(this);this.toolHandler=t,t.registerTool(Me),t.setTool("Camera")}updateToolHandler(){this.controls&&!1!==this.controls.isVisible()||this.toolHandler.update()}update(){this.ready?(this.updateToolHandler(),this.mouse.update(),this.state.paused||this.state.showDialog||(this.updateGamepads(),this.checkGamepads()),this.screen.update(),this.updateControls(),this.camera.update(),this.sound.update(),this.restartTrack&&this.restart(),!this.state.paused&&this.state.playing&&(this.message.update(),this.updatePlayers(),this.playerManager.firstPlayer.complete?this.trackComplete():this.ticks++),this.updateScore(),this.vehicleTimer.update(),this.isStateDirty()&&this.updateState(),this.stage.clear(),this.draw(),this.stage.update(),this.camera.updateZoom()):this.importCode&&this.createTrack()}isStateDirty(){let t=this.oldState,e=this.state;e.fullscreen!=GameSettings.fullscreen&&(e.fullscreen=GameSettings.fullscreen);let i=!1;for(var s in e)e[s]!==t[s]&&(i=!0,this.oldState[s]=e[s]);return i}updateScore(){this.score.update(),this.campaignScore&&this.campaignScore.update(),this.raceTimes.update()}restart(){this.settings.mobile?this.message.show("Press Any Button To Start",1,"#333333"):this.message.show("Press Any Key To Start",1,"#333333","#FFFFFF"),this.track.resetPowerups(),this.restartTrack=!1,this.state.paused=!1,this.state.playing=!this.settings.waitForKeyPress,this.ticks=0,this.playerManager.reset(),this.playerManager.getPlayerCount()>0&&(this.camera.focusIndex=1),this.camera.focusOnPlayer(),this.camera.fastforward(),this.showControlPlanel("main")}listen(){this.playerManager.firstPlayer.getGamepad().listen()}unlisten(){this.playerManager.firstPlayer.getGamepad().unlisten()}stopAudio(){createjs.Sound.stop()}setStartingVehicle(){let t=this.settings,e=t.startVehicle;t.track&&(e=t.track.vehicle),this.vehicle=e}updateGamepads(){this.playerManager.updateGamepads()}checkGamepads(){this.playerManager.checkKeys()}updatePlayers(){this.playerManager.update()}drawPlayers(){this.playerManager.draw()}hideControlPlanel(){this.state.showSkip&&(this.state.showSkip=!1),!1!==this.state.showControls&&(this.state.showControls=!1)}showControlPlanel(t){this.settings.isCampaign&&!this.settings.mobile&&this.settings.campaignData.can_skip&&this.analytics&&this.analytics.deaths>5&&(this.state.showSkip=!0),this.stateshowControls!==t&&this.settings.showHelpControls&&(this.state.showControls=t)}draw(){this.toolHandler.drawGrid(),this.track.draw(),this.drawPlayers(),this.controls&&!1!==this.controls.isVisible()||this.toolHandler.draw(),this.loading&&this.loadingcircle.draw(),this.message.draw()}redraw(){this.track.undraw(),GameInventoryManager.redraw(),this.toolHandler.resize()}resize(){this.pauseControls.resize(),this.settings.fullscreenAvailable&&this.fullscreenControls.resize(),this.settingsControls.resize(),this.controls&&this.controls.resize()}updateState(){null!==this.game.onStateChange&&this.game.onStateChange(this.state)}stateChanged(){this.updateState()}setStateDefaults(){let t={};return t.playing=!this.settings.waitForKeyPress,t.paused=!1,t.playerAlive=!0,t.inFocus=!0,t.preloading=!0,t.fullscreen=this.settings.fullscreen,t.showControls=!1,t.showSkip=!1,t.showDialog=!1,t.dialogOptions=!1,t}toggleVehicle(){let t=this.track.allowedVehicles,e=this.vehicle,i=t.indexOf(e);i++,i>=t.length&&(i=0),e=t[i],this.selectVehicle(e)}selectVehicle(t){this.track.allowedVehicles.includes(t)&&(this.settings.track.vehicle=t,this.vehicle=t,this.playerManager.firstPlayer.setBaseVehicle(t),this.restartTrack=!0)}openDialog(t){this.state.playing=!1,this.state.showDialog=t}command(...t){switch(t.shift()){case"resize":this.resize();break;case"dialog":var e=t[0];!1===e?this.listen():this.unlisten(),this.openDialog(e);break;case"focused":!0===t[0]?(this.state.inFocus=!0,this.state.showDialog||this.listen()):(this.state.inFocus=!1,this.game.mod.vars.disableDefocus?this.playerManager.firstPlayer.getGamepad().semiUnlisten():(this.unlisten(),this.state.playing=!1));break;case"add track":this.importCode=t[0].code;break;case"clear race":this.races=[],this.restartTrack=!0,this.raceTimes.clear();break;case"add race":let i=t[0],s=t[1];this.addRaces(i),s&&(this.state.dialogOptions={races:this.races},this.command("dialog","race_dialog"));break;case"change vehicle":this.selectVehicle(t[0]);break;case"restart":this.command("dialog",!1),this.restartTrack=!0;break;case"resume":this.state.paused=!1;break;case"fullscreen":this.toggleFullscreen();break;case"exit_fullscreen":this.exitFullscreen()}}addRaces(t){this.mergeRaces(t),this.sortRaces(),this.formatRaces(),this.addRaceTimes(),this.addPlayers(),this.restartTrack=!0}addRaceTimes(){let t=this.settings.raceColors,e=this.races,i=this.raceTimes;i.clear();for(let s in e){let n=e[s];n.user.color=t[s%t.length],i.addRace(n,s)}}addPlayers(){let t=this.races,e=this.playerManager;e.clear();for(let i of t){let t=i.user,s=i.race,n=s.code;"string"==typeof n&&(n=JSON.parse(n));let r=e.createPlayer(this,t);r.setBaseVehicle(s.vehicle),r.setAsGhost(),r.getGamepad().loadPlayback(n,this.settings.keysToRecord),e.addPlayer(r)}}formatRaces(){for(let{race:e}of this.races){let i=e.code;if("string"==typeof i){for(var t in i=JSON.parse(i),i)i[t]=Object(r.countBy)(i[t],r.identity);e.code=i}}}removeDuplicateRaces(){this.races=Object(r.uniq)(this.races,this.uniqesByUserIdIterator.bind(this))}uniqesByUserIdIterator(t){return t.user.u_id}sortRaces(){this.races=Object(r.sortBy)(this.races,this.sortByRunTicksIterator.bind(this))}mergeRaces(t){let e=this.races;Object(r.each)(t,(function(t){let i=Object(r.find)(e,(function(e){return e.user.u_id===t.user.u_id}));i?Object(r.extend)(i,t):e.push(t)}))}sortByRunTicksIterator(t){let e=parseInt(t.race.run_ticks);return t.runTime=Object(qn.default)(e/this.settings.drawFPS*1e3),e}verifyComplete(){let t=this.playerManager.firstPlayer._powerupsConsumed.targets,e=this.track.targets,i=!0;for(let s of e)t.includes(s.id)||(i=!1);return i}trackComplete(){if(this.verifyComplete()){this.sound.play("victory_sound");let e=this.playerManager;e.mutePlayers();let i=e.firstPlayer,s=i.getGamepad(),n=s.getReplayString(),r=this.settings,o=this.ticks,a=Object(qn.default)(o/r.drawFPS*1e3),h={t_id:$("#track-data").data("t_id"),u_id:r.user.u_id,code:n,vehicle:i._baseVehicleType,run_ticks:o,fps:25,time:a},l=Object(Un.SHA256)(h.t_id+"|"+h.u_id+"|"+h.code+"|"+h.run_ticks+"|"+h.vehicle+"|"+h.fps+"|erxrHHcksIHHksktt8933XhwlstTekz").toString();h.sig=l;var t=this.races;let c=[];if(t.length>0){for(let e of t)c.push(e.user.u_id);h.races=c}r.isCampaign&&(h.is_campaign=!0),this.state.dialogOptions={postData:h,analytics:this.analytics},r.isCampaign?this.command("dialog","campaign_complete"):this.command("dialog","track_complete"),s.reset(!0),this.listen()}}drawFPS(){let t=createjs.Ticker.getMeasuredFPS(),e=this.game.pixelRatio,i=this.game.canvas.getContext("2d"),s=5*e,n=this.screen.height-12*e;t=Gn(10*t)/10;let r="FPS : "+t;i.save(),i.fillStyle="#000000",i.font=8*e+"pt arial",i.fillText(r,s,n),i.restore()}close(){this.fullscreenControls=null,this.settingsControls=null,this.pauseControls=null,this.raceTimes=null,this.score=null,this.campaignScore=null,this.mouse.close(),this.mouse=null,this.camera.close(),this.camera=null,this.screen.close(),this.screen=null,this.vehicleTimer.close(),this.vehicleTimer=null,this.playerManager.close(),this.playerManager=null,this.sound.close(),this.sound=null,this.track.close(),this.toolHandler.close(),this.game=null,this.assets=null,this.settings=null,this.stage=null,this.track=null,this.state=null,this.stopAudio()}}const Kn=Xn.prototype;Kn.game=null,Kn.assets=null,Kn.stage=null,Kn.settings=null,Kn.camera=null,Kn.score=null,Kn.screen=null,Kn.mouse=null,Kn.track=null,Kn.player=null,Kn.players=null,Kn.ticks=0,Kn.races=null,Kn.state=null,Kn.oldState=null,Kn.stateDirty=!0,Kn.onStateChange=null,Kn.playing=!1,Kn.ready=!1,Kn.vehicle="MTB",Kn.showDialog=!1,Kn.importCode=!1,Kn.preloading=!0,Kn.loading=!0,Kn.pauseControls=null,Kn.fullscreenControls=null,Kn.settingsControls=null,Kn.controls=null,Kn.message=null,Kn.showSkip=!1,Kn.analytics=null;var Zn=Xn;const Jn=document.createElement("canvas"),$n=Jn.getContext("2d");Jn.width=Jn.height=32*devicePixelRatio,$n.scale(devicePixelRatio,devicePixelRatio);let Qn=0;$n.beginPath(),$n.moveTo(16,4);for(let t=1;t<5;t++)Qn+=2*Math.PI/5,$n.lineTo(16+12*Math.sin(Qn),16-12*Math.cos(Qn));$n.closePath(),$n.lineJoin="round",$n.lineWidth=8,$n.strokeStyle="#000",$n.stroke(),$n.lineWidth=4,$n.strokeStyle="#fff",$n.stroke();const tr=Jn.toDataURL();$n.clearRect(0,0,32,32),$n.closePath(),$n.lineWidth=8,$n.strokeStyle="#000",$n.lineJoin="round",$n.stroke(),$n.lineWidth=4,$n.strokeStyle="#a1e1f6",$n.stroke();const er=Jn.toDataURL();Jn.width=Jn.height=44*devicePixelRatio,$n.scale(devicePixelRatio,devicePixelRatio),$n.translate(22,22),$n.lineJoin="round";const ir={};function sr(t){return $n.clearRect(-22,-22,44,44),$n.fillStyle=t,$n.fill(),$n.stroke(),Jn.toDataURL()}$n.strokeStyle="#000",$n.lineWidth=2,$n.moveTo(-10,-7),$n.lineTo(10,0),$n.lineTo(-10,7),$n.closePath(),ir.speed=sr("#ff0"),$n.beginPath(),$n.moveTo(-7,10),$n.lineTo(0,-10),$n.lineTo(7,10),$n.closePath(),ir.gravity=sr("#0f0"),$n.beginPath(),$n.arc(0,0,7,0,2*Math.PI),$n.closePath(),ir.goal=sr("#ff0"),ir.slowmotion=sr("#eeeeee"),ir.bomb=sr("#f00"),ir.checkpoint=sr("#00f"),ir.antigravity=sr("#0ff"),ir.portal=sr("#f0f");let nr="";for(let t in ir)nr+=`.editorgui_icons.editorgui_icons-${t}{background-image:url("${ir[t]}");background-position:0 0;background-size:44px 44px;}`;const rr=document.createElement("style");rr.innerHTML=nr,nr=`.mod-icon{background-image:url("${tr}")}.mod-icon:hover{background-image:url("${er}")}`;const or=document.createElement("style");or.innerHTML=nr,window.crStyle=rr;const ar={crHead:{},crBmx:{},crMtb:{},crHeli:{},crRagdoll:{},crPowerups:{set(t,e,i){e.currentScene.track.undraw(),t&&!i?document.head.appendChild(rr):!t&&i&&document.head.removeChild(rr)},initialize(t){t&&document.head.appendChild(rr)}},invisibleGrid:{default:!1},disableDefocus:{set(t,e,i){t?(i||document.head.appendChild(this.data.style),e.currentScene.state.inFocus||(e.currentScene.state.playing=!0,e.currentScene.playerManager.firstPlayer._gamepad.semiUnlisten())):i&&document.head.removeChild(this.data.style)},initialize(t){const e=document.createElement("style");e.type="text/css",e.innerHTML=".gameFocusOverlay{display:none;}",this.data.style=e,t&&document.head.appendChild(this.data.style)},data:{style:null}},pixelSnapEverything:{default:!1,set(t,e,i){t&&!i?n.default.prototype.toScreen=n.default.prototype.toScreenSnapped:!t&&i&&(n.default.prototype.toScreen=this.data.vecToScreen)},initialize(t){this.data.vecToScreen=n.default.prototype.toScreen,this.set(t,null,!1)},data:{vecToScreen:null}},blackHat:{default:!1},accurateEraser:{},keepDeadRiders:{set(t,e,i){try{if(!t&&i)for(let t of e.currentScene.playerManager._players)t.deadVehicles=new Array(10),t.deadVehiclesIndex=0}catch{}}},fadedVehiclePowerups:{set(t,e,i){t!==i&&e.currentScene.track.undraw()}},invertColors:{default:!1,set(t,e,i){t!==i&&(t?document.head.appendChild(hr):document.head.removeChild(hr))},initialize(t){this.set(t,null,!1)}},lineShadow:{default:!1,set(t,e){e.currentScene.track.undraw()}},customColors:{default:!1,set(t,e,i){t!==i&&(e&&e.currentScene.track.undraw(),t?document.head.appendChild(lr):document.head.removeChild(lr))},initialize(t){this.set(t,null,!1)}},vehicleColor:{type:"color",default:[15,0,185]},riderColor:{type:"color",default:[18,26,61]},backgroundColor:{type:"color",default:[255,247,242]},lineColor:{type:"color",default:[61,0,15],set(t,e){e.currentScene.track.undraw()}},sceneryColor:{type:"color",default:[190,169,158],set(t,e){e.currentScene.track.undraw()}},backgroundColor:{type:"color",default:[255,247,242],set(t){lr.innerHTML=`#game-container canvas{background-color:${it(t)}}`},initialize(t){this.set(t)}}},hr=document.createElement("style");hr.innerHTML=".game{filter:invert(1)} .game canvas{background-color:white}";const lr=document.createElement("style");var cr=ar;class ur{constructor(t,e,i){this.key=e.key,this.parentArray=i,this.modUi=t,this.disabledBy=[],this.enabledBy=[]}setHoverListeners(t){this.node.onmouseenter=()=>{this.modUi.settingDescription.innerHTML=t.description,this.modUi.settingDescription.classList.remove("invisible"),this.modUi.modTitle.classList.add("invisible")},this.node.onmouseleave=()=>{this.modUi.settingDescription.classList.add("invisible"),this.modUi.modTitle.classList.remove("invisible")}}disable(){}enable(){}checkStatus(){for(let t of this.disabledBy)if(this.modUi.mod.getVar(t))return void this.disable();for(let t of this.enabledBy)if(!this.modUi.mod.getVar(t))return void this.disable();this.enable()}}var dr=s(14),pr=s.n(dr);let fr=document.createElement("template");fr.innerHTML=pr.a,fr=fr.content;class gr extends ur{constructor(t,e){super(t,e),this.node=fr.cloneNode(!0).firstChild,this.checkbox=this.node.querySelector("input"),this.label=this.node.querySelector("label"),this.disables=e.disables||[],this.enables=e.enables||[],this.effects=[],this.setHoverListeners(e),this.label.innerHTML=e.title,this.checkbox.checked=this.modUi.mod.getVar(this.key),this.clickFunction=()=>{this.modUi.mod.setVar(this.key,!this.modUi.mod.getVar(this.key))}}disable(){this.node.onclick=this.label.onclick=()=>{},this.node.classList.add("mod-disabled"),this.checkbox.classList.add("disabled"),this.label.classList.add("disabled"),this.checkbox.disabled=!0}enable(){this.node.onclick=this.clickFunction,this.node.classList.remove("mod-disabled"),this.checkbox.classList.remove("disabled"),this.label.classList.remove("disabled"),this.checkbox.disabled=!1}}var mr=s(22),vr=s.n(mr);class yr extends ur{constructor(t,e,i,s){super(t,e,i),this.node=s,this.arr=[],this.opened=!1,this.container=null,this.setHoverListeners(e),this.clickFunction=()=>{this.opened?this.close():this.open()}}open(){for(let t of this.parentArray)t instanceof yr&&t.opened&&t.close();this.opened=!0,this.node.classList.add("opened");const t=document.createElement("div");t.className="mod-v-seperator",this.node.parentNode.parentNode.appendChild(t),this.node.parentNode.parentNode.appendChild(this.container)}close(){for(let t of this.arr)t instanceof yr&&t.opened&&t.close();this.opened=!1,this.node.classList.remove("opened"),this.node.parentNode.parentNode.removeChild(this.node.parentNode.parentNode.querySelector(".mod-v-seperator")),this.node.parentNode.parentNode.removeChild(this.container)}}let wr=document.createElement("template");wr.innerHTML=vr.a,wr=wr.content;class xr extends yr{constructor(t,e,i){super(t,e,i,wr.cloneNode(!0).firstChild),this.label=this.node.querySelector("span"),this.label.innerHTML=e.title,[this.expandIcon,this.collapseIcon]=this.node.querySelectorAll("svg"),this.node.onclick=this.clickFunction}open(){super.open(),this.expandIcon.style.display="none",this.collapseIcon.style.display=null}close(){super.close(),this.expandIcon.style.display=null,this.collapseIcon.style.display="none"}}var _r=s(23),br=s.n(_r);let Tr=document.createElement("template");Tr.innerHTML=br.a,Tr=Tr.content;var kr=class extends yr{constructor(t,e,i){super(t,e,i,Tr.cloneNode(!0).firstChild),[this.colorBox,this.label]=this.node.querySelectorAll("span"),this.label.innerHTML=e.title,this.node.onclick=this.clickFunction}disable(){this.opened&&this.close(),this.node.onclick=this.label.onclick=()=>{},this.node.classList.add("mod-disabled"),this.label.classList.add("disabled")}enable(){this.node.onclick=this.clickFunction,this.node.classList.remove("mod-disabled"),this.label.classList.remove("disabled")}},Cr=[{type:"folder",title:"Nostalgia Mode",description:"Makes the game look like Canvas Rider, an older defunct version of the game.",folder:[{type:"activate",title:"All",description:"Activates all Nostalgia Mode settings.",activates:["crHead","crRagdoll","crBmx","crMtb","crHeli","crPowerups"]},{title:"Head",description:"Replaces the FRHD head with Canvas Rider's head.",key:"crHead"},{title:"Ragdoll",description:"Removes feet from the ragdoll, and adds transparency to the back limbs.",key:"crRagdoll"},{title:"BMX",description:"Alters the BMX to look like it did in Canvas Rider.",key:"crBmx"},{title:"MTB",description:"Alters the mountain bike to look like it did in Canvas Rider.",key:"crMtb"},{title:"Helicopter",description:"Alters the helicopter to look like it did in Free Rider 2.",key:"crHeli"},{title:"Powerups",description:"Alters the powerups to look like they did in Canvas Rider.",key:"crPowerups"}]},{key:"blackHat",title:"Hacker Mode",description:"Replaces the rider's baseball cap with a classy black top hat.",disables:["crHead"]},{key:"lineShadow",title:"Line Shadows",description:"Adds shadows behind the black lines to make them stand out more."},{key:"invisibleGrid",title:"Invisible Grid",description:"Hides the grid in the editor."},{key:"fadedVehiclePowerups",title:"Faded Vehicle Powerups",description:"When vehicle powerups are collected, they will become faded out, rather than disappearing completely."},{key:"disableDefocus",title:"Disable Defocus",description:"The game will no longer lose focus if you click elsewhere on the screen."},{key:"pixelSnapEverything",title:"Pixel Snap Rider",description:"Snaps the rider's position to pixels, along with the track. This setting trades visual smoothness for visual accuracy. It may be helpful for ghosters, but it is generally not recommended."},{key:"accurateEraser",title:"Accurate Eraser",description:"Makes the eraser correctly account for line thickness. It feels more responsive, but can make precise erases difficult or impossible."},{key:"keepDeadRiders",title:"Keep Dead Riders",description:"When you restart, your old bike and rider will be kept on the map. To prevent lag, the maximum number of copies on the track at one time is 10."},{type:"folder",title:"Colors",description:"Change some of the colors of the game.",folder:[{key:"invertColors",title:"Invert Colors",description:"Inverts the colors of the entire game as a post-processing effect. This includes everything, including powerups and the menu."},{key:"customColors",title:"Custom Colors",description:"Enables custom colors. With this option disabled, all colors will be the default colors. (This does not apply to inverted colors)",enables:["vehicleColor","riderColor","lineColor","sceneryColor","backgroundColor"]},{type:"color",key:"vehicleColor",title:"Vehicle Color",description:"The primary color of the vehicles"},{type:"color",key:"riderColor",title:"Rider Color",description:"The color of the rider"},{type:"color",key:"lineColor",title:"Line Color",description:"The color of the physical lines"},{type:"color",key:"sceneryColor",title:"Scenery Line Color",description:"The color of the scenery lines"},{type:"color",key:"backgroundColor",title:"Background Color",description:"The color of the background"}]}],Sr=s(24),Pr=s.n(Sr);let Mr=document.createElement("template");Mr.innerHTML=Pr.a,Mr=Mr.content;class Dr extends ur{constructor(t,e){super(t,e),this.colorBox=e.colorBox,this.size=200,this.node=Mr.cloneNode(!0).firstChild,this.color=[255,255,255],this.baseColor=[255,0,0],this.saturation=0,this.darkness=0,this.hue=0,this.shadeCanvas=this.node.querySelector(".shade-canvas"),this.shadeCanvas.width=this.size,this.shadeCanvas.height=this.size,this.shadeCtx=this.shadeCanvas.getContext("2d"),this.shadeIndicator=this.node.querySelector(".shade-indicator");const i=t=>{const e=this.shadeCanvas.getBoundingClientRect(),i=Math.min(this.size,Math.max(0,t.clientX-e.left)),s=Math.min(this.size,Math.max(0,t.clientY-e.top));this.saturation=i/this.size,this.darkness=s/this.size,this.color=this.getColor(),this.updateShadePickerAppearance(),this.updateBoxes(),this.updateModVar(),this.updateColorBox()};this.shadeCanvas.addEventListener("mousedown",t=>{i(t),document.addEventListener("mousemove",i),document.addEventListener("mouseup",()=>{document.removeEventListener("mousemove",i)})}),this.hueCanvas=this.node.querySelector(".hue-canvas"),this.hueCanvas.height=this.size,this.hueCtx=this.hueCanvas.getContext("2d"),this.hueIndicator=this.node.querySelector(".hue-indicator");const s=t=>{const e=this.hueCanvas.getBoundingClientRect(),i=Math.max(0,Math.min(this.size,t.clientY-e.top));this.hue=i/this.size,this.baseColor=et(this.hue),this.color=this.getColor(),this.updateHuePickerAppearance(),this.updateShadePickerAppearance(!0),this.updateBoxes(),this.updateModVar(),this.updateColorBox()};this.hueCanvas.addEventListener("mousedown",t=>{s(t),document.addEventListener("mousemove",s),document.addEventListener("mouseup",()=>{document.removeEventListener("mousemove",s)})}),this.boxes={red:this.node.querySelector(".red-box"),green:this.node.querySelector(".green-box"),blue:this.node.querySelector(".blue-box")};const n=t=>{t.target.value=Math.max(0,Math.min(255,parseInt(t.target.value)||0)),this.setRgb([this.boxes.red.value,this.boxes.green.value,this.boxes.blue.value]),this.updateModVar()};for(let t in this.boxes)this.boxes[t].addEventListener("input",n);this.createHueGradient(),this.setRgb(t.mod.getVar(this.key))}setRgb(t){this.color=t.slice();const[e,i,s]=function(t,e,i){t/=255,e/=255,i/=255;var s,n,r=Math.max(t,e,i),o=Math.min(t,e,i),a=r,h=r-o;if(n=0==r?0:h/r,r==o)s=0;else{switch(r){case t:s=(e-i)/h+(e<i?6:0);break;case e:s=(i-t)/h+2;break;case i:s=(t-e)/h+4}s/=6}return[s,n,a]}(...this.color);this.hue=e,this.saturation=i,this.darkness=1-s,this.baseColor=et(this.hue),this.updateHuePickerAppearance(),this.updateShadePickerAppearance(!0),this.updateBoxes(),this.updateColorBox()}updateShadePickerAppearance(t=!1){if(this.shadeIndicator.style.left=this.saturation*this.size-5+"px",this.shadeIndicator.style.top=this.darkness*this.size-5+"px",this.shadeIndicator.style.backgroundColor=it(this.color),t){let t=this.shadeCtx.createLinearGradient(0,0,this.size,0);t.addColorStop(0,"white"),t.addColorStop(1,it(this.baseColor)),this.shadeCtx.fillStyle=t,this.shadeCtx.fillRect(0,0,this.size,this.size),t=this.shadeCtx.createLinearGradient(0,0,0,this.size),t.addColorStop(0,"transparent"),t.addColorStop(1,"black"),this.shadeCtx.fillStyle=t,this.shadeCtx.fillRect(0,0,this.size,this.size)}}updateHuePickerAppearance(){this.hueIndicator.style.top=this.hue*this.size-4+"px",this.hueIndicator.style.backgroundColor=it(this.baseColor)}getColor(){const t=this.baseColor.slice();for(let e=0;e<t.length;e++)t[e]=t[e]*this.saturation+255*(1-this.saturation),t[e]=t[e]*(1-this.darkness),t[e]=Math.round(t[e]);return t}createHueGradient(){const t=this.hueCtx.createLinearGradient(0,0,0,this.size);for(let e=0;e<=6;e++)t.addColorStop(e/6,`hsl(${e/6*360}, 100%, 50%)`);this.hueCtx.fillStyle=t,this.hueCtx.fillRect(0,0,this.hueCanvas.width,this.size)}updateBoxes(){this.boxes.red.value=this.color[0],this.boxes.green.value=this.color[1],this.boxes.blue.value=this.color[2]}updateModVar(){this.modUi.mod.setVar(this.key,this.color)}updateColorBox(){this.colorBox.style.backgroundColor=it(this.color)}}s(36);var Er=s(25),Ar=s.n(Er);let Lr=document.createElement("template");Lr.innerHTML=pr.a,Lr=Lr.content;class Ir extends ur{constructor(t,e){super(t,e),this.node=Lr.cloneNode(!0).firstChild,this.checkbox=this.node.querySelector("input"),this.label=this.node.querySelector("label"),this.activates=e.activates,this.setHoverListeners(e),this.label.innerHTML=e.title,this.clickFunction=()=>{let t=!1;for(let e of this.activates)if(!this.modUi.mod.getVar(e)){t=!0;break}for(let e of this.activates)this.modUi.mod.setVar(e,t)},this.enable()}disable(){this.node.onclick=this.label.onclick=()=>{},this.node.classList.add("mod-disabled"),this.checkbox.classList.add("disabled"),this.label.classList.add("disabled"),this.checkbox.disabled=!0}enable(){this.node.onclick=this.clickFunction,this.node.classList.remove("mod-disabled"),this.checkbox.classList.remove("disabled"),this.label.classList.remove("disabled"),this.checkbox.disabled=!1}checkStatus(){super.checkStatus();let t=0;for(let e of this.activates)this.modUi.mod.getVar(e)&&t++;t===this.activates.length?(this.checkbox.indeterminate=!1,this.checkbox.checked=!0):0!==t?this.checkbox.indeterminate=!0:(this.checkbox.indeterminate=!1,this.checkbox.checked=!1)}}let Or=document.createElement("template");Or.innerHTML=Ar.a,Or=Or.content;const zr={bool:(t,e,i,s)=>new gr(t,i[e],s),folder:(t,e,i,s)=>new xr(t,i[e],s),color:(t,e,i,s)=>new kr(t,i[e],s),activate:(t,e,i,s)=>new Ir(t,i[e],s)};var jr=class{constructor(t){this.mod=t,this.arr=[],this.obj={},this.init(Cr,this.arr),this.checkAll(this.arr),this.createElement(),document.head.appendChild(or),document.body.appendChild(this.icon)}init(t,e){for(let i=0;i<t.length;i++){const s=t[i],n=s.key||null,r=s.type||"bool",o=zr[r](this,i,t,e);e.push(o),this.obj[n]=o,"folder"===r&&this.init(s.folder,e[i].arr)}for(let t of e)if(t instanceof gr){for(let e of t.disables)this.obj[e].disabledBy.push(t.key);for(let e of t.enables)this.obj[e].enabledBy.push(t.key)}else if(t instanceof Ir)for(let e of t.activates)this.obj[e].effects.push(t)}checkAll(t){for(let e of t)"function"==typeof e.checkStatus&&e.checkStatus(),e instanceof xr&&this.checkAll(e.arr)}createElement(){this.container=Or.cloneNode(!0).firstChild,this.settingList=this.createOptionList(this.arr,"Mod Settings"),this.container.querySelector(".mod-menu").replaceWith(this.settingList),this.settingDescription=this.container.querySelector(".mod-setting-description"),this.modTitle=this.container.querySelector(".mod-title"),this.verticalBar=this.container.querySelector(".mod-v-seperator"),this.icon=document.createElement("div"),this.icon.className="mod-icon",this.icon.onclick=()=>{const t=e=>{if(!this.container.contains(e.target)){document.removeEventListener("mousedown",t),document.removeEventListener("pointerdown",t),document.body.removeChild(this.container);for(let t of this.arr)t instanceof xr&&t.opened&&t.close()}};document.body.appendChild(this.container),setTimeout(()=>document.addEventListener("mousedown",t),0),setTimeout(()=>document.addEventListener("pointerdown",t),0)}}createOptionList(t,e){const i=document.createElement("div");i.className="mod-list-container";const s=document.createElement("div");if(s.className="mod-menu",e){const t=document.createElement("div");t.className="mod-section-title",t.innerHTML=e,s.appendChild(t)}i.appendChild(s);for(let e of t)if(s.appendChild(e.node),e instanceof kr){const t=new Dr(this,e);e.container=t.node}else e instanceof xr&&(e.container=this.createOptionList(e.arr,e.label.innerHTML));return i}update(t,e){if(this.obj[t]instanceof gr){this.obj[t].checkbox.checked=e;for(let e of this.obj[t].disables)this.obj[e].checkStatus();for(let e of this.obj[t].enables)this.obj[e].checkStatus();for(let e of this.obj[t].effects)e.checkStatus()}}},Br=s(26),Fr=s.n(Br);let Rr=document.createElement("template");Rr.innerHTML=Fr.a,Rr=Rr.content;const Wr=new class{constructor(t){this.game=t,this.vars={},this.meta={},this.loadDefaults(!1),this.loadFromLocalStorage(),this.clean(),this.checkUpdate(),this.saveToLocalStorage(),this.ui=new jr(this);for(let t in this.vars)cr[t].hasOwnProperty("initialize")&&cr[t].initialize(this.vars[t])}setVar(t,e){if(cr.hasOwnProperty(t)){const i=this.vars[t],s=cr[t];switch(s.hasOwnProperty("type")?s.type:"bool"){case"bool":this.vars[t]=!!e;break;case"int":let i=s.max||1/0,n=s.min||-1/0;isNaN(e)&&(e=0),this.vars[t]=Math.max(n,Math.min(i,Math.round(e)));break;case"color":this.vars[t]=e}if(s.hasOwnProperty("set"))try{s.set(this.vars[t],this.game,i)}catch(t){console.error(t)}this.ui.update(t,this.vars[t]),this.saveToLocalStorage()}else console.error('No mod variable found called "'+t+'".')}getVar(t){if(cr.hasOwnProperty(t))return this.vars[t];console.error('No mod variable found called "'+t+'".')}loadFromLocalStorage(){const t=localStorage.getItem("polygonsMod");if(t){const e=JSON.parse(t);for(let t in e.vars)this.vars[t]=e.vars[t];for(let t in e.meta)this.meta[t]=e.meta[t]}}saveToLocalStorage(){const t=JSON.stringify({vars:this.vars,meta:this.meta});localStorage.setItem("polygonsMod",t)}clean(){for(let t in this.vars)cr.hasOwnProperty(t)||delete this.vars[t]}loadDefaults(t=!0,e=null){for(let i in cr){if(cr[i].hasOwnProperty("default"))this.vars[i]=cr[i].default;else{switch(cr[i].hasOwnProperty("type")?modVar.type:"bool"){case"bool":this.vars[i]=!0;break;case"int":const t=cr[i].hasOwnProperty("max"),e=cr[i].hasOwnProperty("max");t&&e?this.vars[varname]=(cr[i].max+cr[i].min)/2:this.vars[i]=t?Math.min(0,cr[i].max):e?Math.max(0,cr[i].min):0;break;case"color":this.vars[i]=[0,0,0];break;default:console.log("I haven't done this part yet lol")}}t&&cr[key].hasOwnProperty("set")&&cr[key].set(e,this.vars[key])}}listVars(){let t=0;for(let e in this.vars)t=Math.max(t,e.length);for(let e in this.vars){let i="";for(let s=e.length;s<t;s++)i+=" ";console.log(e+i,this.vars[e])}}checkUpdate(){this.meta.hasOwnProperty("version")&&2===this.meta.version||function(t){const e=Rr.cloneNode(!0).firstChild,i=e.querySelector("button");e.onclick=()=>window.open(t),i.onclick=()=>{e.onclick=()=>{},document.body.removeChild(e)},document.body.appendChild(e)}("https://community.freeriderhd.com/posts/285222"),this.meta.version=2}}(null);class Vr{constructor(t,e,i){this.mod=Wr,Wr.game=this,this.assets=e,this.settings=i,this.initCanvas(),this.initStage(),this.setSize(),this.switchScene(t),this.setSize(),this.startTicker()}initCanvas(){let t=document.createElement("canvas"),e=document.getElementById(this.settings.defaultContainerID);e.appendChild(t),this.gameContainer=e,this.canvas=t,Nr=()=>{this.command("focused",!0)},t.addEventListener("mousedown",Nr)}initStage(){let t=new createjs.Stage(this.canvas);t.autoClear=!1,createjs.Touch.enable(t),t.enableMouseOver(30),t.mouseMoveOutside=!0,t.preventSelection=!1,this.stage=t}setSize(){let t=window.innerHeight,e=window.innerWidth;if(!this.settings.fullscreen&&!this.settings.isStandalone){var i=this.gameContainer;t=i.clientHeight,e=i.clientWidth}this.currentScene&&(t-=this.currentScene.getCanvasOffset().height);let s=window.devicePixelRatio||1;this.settings.lowQualityMode&&(s=1);let n=e*s,r=t*s;n===this.width&&r===this.height||(this.width=n,this.height=r,this.canvas.width=n,this.canvas.height=r),this.pixelRatio=s,this.canvas.style.width=e+"px",this.canvas.style.height=t+"px",this.currentScene&&this.currentScene.command("resize")}startTicker(){createjs.Ticker.timingMode=createjs.Ticker.RAF_SYNCED,createjs.Ticker.setFPS(this.settings.drawFPS),createjs.Ticker.on("tick",this.update.bind(this))}update(){this.currentScene.update(),this.tickCount++}switchScene(t){null!==this.currentScene&&this.currentScene.close(),this.currentScene=new Hr[t](this)}command(){this.currentScene.command.apply(this.currentScene,arguments)}close(){createjs.Ticker.reset(),createjs.Ticker.removeAllEventListeners(),this.currentScene.close(),this.currentScene=null,this.assets=null,this.settings=null,this.stage.autoClear=!0,this.stage.removeAllChildren(),this.stage.update(),this.stage.enableDOMEvents(!1),this.stage.removeAllEventListeners(),this.stage=null,this.canvas.removeEventListener("mousedown",Nr),this.canvas.parentNode.removeChild(this.canvas),this.canvas=null,this.tickCount=null,this.height=null,this.width=null}}const Hr={Editor:zn,Main:Zn};function Nr(t){}const Ur=Vr.prototype;Ur.gameContainer=null,Ur.tickCount=0,Ur.currentScene=null,Ur.assets=null,Ur.stage=null,Ur.canvas=null,Ur.stats=null,Ur.width=0,Ur.height=0,Ur.fullscreen=!1,Ur.onStateChange=null,window.Game=Vr;e.default=Vr}]);
  2. //# sourceMappingURL=game.js.map
Add Comment
Please, Sign In to add comment