var SoundButton = pc.createScript("soundButton"); SoundButton.attributes.add("noSound", { type: "entity" }), SoundButton.prototype.initialize = function () { } , SoundButton.prototype.onSoundChange = function (t) { this.noSound.enabled = t } , SoundButton.prototype.update = function (t) { this.noSound.enabled = GameAudio.mute } , SoundButton.prototype.onEnable = function () { this.onSoundChange(GameAudio.mute) } ; var UiBarMasked = pc.createScript("uiBarMasked"); UiBarMasked.attributes.add("barImageSize", { type: "number", default: 100, title: "barImageSize" }), UiBarMasked.attributes.add("barImage", { type: "entity" }), UiBarMasked.attributes.add("progress", { type: "number", default: .5, title: "progress" }), UiBarMasked.attributes.add("horizontal", { type: "boolean", default: !1, title: "horizontal" }), UiBarMasked.prototype.initialize = function () { } , UiBarMasked.prototype.update = function (t) { this.progress > 1 ? this.progress = 1 : this.progress < 0 && (this.progress = 0), this.updateBar() } , UiBarMasked.prototype.updateBar = function () { var t = this.entity.getLocalPosition() , a = this.barImage.getLocalPosition() , e = this.barImageSize * (1 - this.progress); this.horizontal ? (t.x = -e, a.x = e) : (t.y = -e, a.y = e), this.entity.setLocalPosition(t), this.barImage.setLocalPosition(a) } ; var Uipopup = pc.createScript("uipopup"); Uipopup.attributes.add("fader", { type: "entity" }), Uipopup.attributes.add("name", { type: "string", default: "Popup Name" }), Uipopup.popups = [], Uipopup.STATE_OPENING = 1, Uipopup.STATE_OPENED = 2, Uipopup.STATE_CLOSING = 3, Uipopup.STATE_CLOSED = 4, Uipopup.prototype.initialize = function () { Uipopup.popups.push(this), this.entity.enabled = !1, this.state = Uipopup.STATE_CLOSED, this.tw = null } , Uipopup.open = function (p, t) { for (var i, e = 0; e < Uipopup.popups.length; e++) (i = Uipopup.popups[e]).name == p ? i.open() : t && i.close() } , Uipopup.isShown = function (p) { for (var t, i = 0; i < Uipopup.popups.length; i++) if ((t = Uipopup.popups[i]).name == p) return t.entity.enabled } , Uipopup.close = function (p) { for (var t, i = 0; i < Uipopup.popups.length; i++) (t = Uipopup.popups[i]).name == p && t.close() } , Uipopup.prototype.open = function () { this.state != Uipopup.STATE_CLOSED && "Pause" != this.name || (this.fader && (this.fader.enabled = !0), this.state = Uipopup.STATE_OPENING, this.entity.setLocalScale(0, 0, 0), this.entity.enabled = !0, this.tw && this.tw.stop(), this.tw = this.entity.tween(this.entity.getLocalScale()).to(new pc.Vec3(1, 1, 1), .3, pc.SineOut).loop(!1).yoyo(!1).start(), setTimeout(function () { this.state = Uipopup.STATE_OPENED, this.tw = null } .bind(this), 400)) } , Uipopup.prototype.close = function () { this.state != Uipopup.STATE_OPENED && this.state != Uipopup.STATE_OPENING || (this.state = Uipopup.STATE_CLOSING, this.tw && this.tw.stop(), this.tw = this.entity.tween(this.entity.getLocalScale()).to(new pc.Vec3(0, 0, 0), .3, pc.BackIn).loop(!1).yoyo(!1).start(), setTimeout(function () { if (this.tw = null, this.fader) { for (var p, t = !1, i = 0; i < Uipopup.popups.length; i++) (p = Uipopup.popups[i]).state != Uipopup.STATE_OPENED && p.state != Uipopup.STATE_OPENING || p.fader == this.fader && (t = !0); t || (this.fader.enabled = !1) } this.state = Uipopup.STATE_CLOSED, this.entity.enabled = !1 } .bind(this), 400)) } , Uipopup.prototype.update = function (p) { this.state != Uipopup.STATE_OPENED && this.state != Uipopup.STATE_OPENING || this.fader && (this.fader.enabled = !0) } ; var TextIcon = pc.createScript("textIcon"); TextIcon.attributes.add("icon", { type: "entity" }), TextIcon.attributes.add("spacing", { type: "number", default: 20, title: "icon spacing" }), TextIcon.attributes.add("yspacing", { type: "number", default: 0, title: "icon y-spacing" }), TextIcon.attributes.add("leftside", { type: "boolean", default: !0, title: "left side icon" }), TextIcon.attributes.add("lerpTime", { type: "number", default: 1, title: "lerp speed" }), TextIcon.prototype.initialize = function () { this.leftside ? this.targX = -(this.spacing + .5 * this.entity.element.textWidth) : this.targX = this.spacing + .5 * this.entity.element.textWidth } , TextIcon.prototype.update = function (t) { var e; e = this.leftside ? -(this.spacing + .5 * this.entity.element.textWidth) : this.spacing + .5 * this.entity.element.textWidth, 0 == this.spacing && (e = 0), this.targX = pc.math.lerp(this.targX, e, this.lerpTime * t), this.icon.setLocalPosition(this.targX, this.yspacing, 0) } ; var MusicBut = pc.createScript("musicBut"); MusicBut.attributes.add("noSound", { type: "entity" }), MusicBut.prototype.initialize = function () { } , MusicBut.prototype.onSoundChange = function (t) { this.noSound.enabled = t } , MusicBut.prototype.update = function (t) { this.noSound.enabled = GameAudio.muteMus } , MusicBut.prototype.onEnable = function () { this.onSoundChange(GameAudio.muteMus) } ; var Mover = pc.createScript("mover"); Mover.attributes.add("delta", { type: "vec3" }), Mover.attributes.add("time", { type: "number", default: 1 }), Mover.attributes.add("delay", { type: "number", default: 0 }), Mover.attributes.add("loop", { type: "boolean", default: !0 }), Mover.attributes.add("yoyo", { type: "boolean", default: !0 }), Mover.attributes.add("onEnable", { type: "boolean", default: !1 }), Mover.attributes.add("endPos", { type: "boolean", default: !1 }), Mover.attributes.add("easeType", { type: "string", default: "SineInOut" }), Mover.attributes.add("playSound", { type: "string", default: "" }), Mover.prototype.initialize = function () { var t = this.entity.getLocalPosition().clone(); t.add(this.delta), this.startPos = this.entity.getLocalPosition().clone(), this.endPos && (this.startPos.sub(this.delta), this.entity.setLocalPosition(this.startPos)), this.onEnable ? (this.onEnableCb(), this.on("enable", this.onEnableCb, this)) : (this.playSound && GameAudio.play(this.playSound), this.entity.tween(this.entity.getLocalPosition()).to(t, this.time, pc[this.easeType]).loop(this.loop).yoyo(this.yoyo).delay(this.delay).start()) } , Mover.prototype.onEnableCb = function () { this.playSound && GameAudio.play(this.playSound), this.entity.setLocalPosition(this.startPos); var t = this.entity.getLocalPosition().clone(); t.add(this.delta), this.entity.tween(this.entity.getLocalPosition()).to(t, this.time, pc[this.easeType]).loop(this.loop).yoyo(this.yoyo).delay(this.delay).start() } , Mover.prototype.update = function (t) { } ; var ObjectPool = pc.createScript("objectPool"); ObjectPool.attributes.add("prefabs", { type: "entity", array: !0 }), ObjectPool.pool = {}, ObjectPool.instantiate = function (o, t, e) { var l = ObjectPool.pop(o); return e.addChild(l), l.setPosition(t), l.enabled = !0, l } , ObjectPool.pop = function (o, t) { var e, l = ObjectPool.pool[o]; return l ? (0 === l.pool.length ? e = l.entity.clone() : (e = l.pool.pop()).enabled = !0, e) : (console.log("ObjectPool.pop(): pool for this object doesn't exist - " + o), null) } , ObjectPool.push = function (o) { var t = ObjectPool.pool[o.name]; t ? t.entity != o && (t.pool.length < t.maxCount ? (t.pool.push(o), o.enabled = !1, o.parent && o.parent.removeChild(o)) : o.destroy()) : console.log("ObjectPool.push(): pool for this object doesn't exist - " + o.name) } , ObjectPool.setMaxCount = function (o, t) { var e = ObjectPool.pool[o]; e ? e.maxCount = t : console.log("ObjectPool.setMaxCount(): pool for this object doesn't exist - " + o) } , ObjectPool.setPrefab = function (o, t) { ObjectPool.pool[o].entity = t } , ObjectPool.prototype.initialize = function () { for (var o, t, e = 0; e < this.prefabs.length; e++) t = this.prefabs[e], (o = {}).maxCount = 50, o.entity = t, o.pool = [], t.enabled = !1, ObjectPool.pool[t.name] = o, console.log("ObjectPool.initialize(): entity pooled - " + t.name); ObjectPool.setMaxCount("Effect3DDrop", 50), ObjectPool.setMaxCount("EffectDrop", 200), ObjectPool.setMaxCount("MsgText", 110), ObjectPool.setMaxCount("Trail1", 25), ObjectPool.setMaxCount("Trail2", 25) } ; var Scaler = pc.createScript("scaler"); Scaler.attributes.add("easeType", { type: "string", default: "SineInOut" }), Scaler.attributes.add("targetSize", { type: "number", default: 1.5 }), Scaler.attributes.add("time", { type: "number", default: 1 }), Scaler.attributes.add("loop", { type: "boolean", default: !0 }), Scaler.attributes.add("yoyo", { type: "boolean", default: !0 }), Scaler.attributes.add("delay", { type: "number", default: 0 }), Scaler.attributes.add("onEnable", { type: "boolean", default: !1 }), Scaler.prototype.initialize = function () { this.startScale = this.entity.getLocalScale().clone(), this._delay = this.delay, this.firstStep = !0, this.tween = null, this.onEnable && (this.onEnableCb(), this.on("enable", this.onEnableCb, this)) } , Scaler.prototype.onEnableCb = function () { this.tween && this.tween.stop(), this.entity.setLocalScale(this.startScale), this._delay = this.delay, this.firstStep = !0 } , Scaler.prototype.update = function (t) { (this._delay > 0 || this.firstStep) && (this.firstStep = !1, this._delay -= t, this._delay <= 0 && (this.tween = this.entity.tween(this.entity.getLocalScale()).to(new pc.Vec3(this.targetSize, this.targetSize, this.targetSize), this.time, pc[this.easeType]).loop(this.loop).yoyo(this.yoyo).start())) } ; var Trail = pc.createScript("trail"); Trail.attributes.add("trailSprite", { type: "entity" }), Trail.attributes.add("startWidth", { type: "number", default: 1 }), Trail.attributes.add("endWidth", { type: "number", default: 0 }), Trail.attributes.add("timeToNewSegment", { type: "number", default: 1 }), Trail.attributes.add("maxSegments", { type: "number", default: 10 }), Trail.prototype.initialize = function () { this.destroyIfShort = !1, this.trailSprite.enabled = !1, this.segments = [], this.segmentsCount = 0, this.segmentsDist = [], this.length = 0, this.time = 0, this.active = !0, this.nx = 1, this.ny = 0, this.dist = 0, this.px = 0, this.py = 0 } , Trail.prototype.updateTrail = function (t) { if (this.length = 0, 1 === this.segmentsCount) this.segments[0].enabled = !1; else if (this.segmentsCount > 0) { var e = this.entity.getPosition() , s = this.segments[0] , i = 0 , n = 0 , h = 0 , a = 0 , r = 0 , o = 0 , m = this.trailSprite.sprite.sprite.pixelsPerUnit / 64; s.setPosition(e); for (var l = 1; l < this.segmentsCount; l++) o = pc.math.lerp(this.startWidth, this.endWidth, (l + 1) / this.segmentsCount), h = (i = (n = this.segments[l]).getPosition()).x - e.x, a = i.y - e.y, s.setEulerAngles(0, 0, 180 * Math.atan2(a, h) / Math.PI), r = Math.sqrt(h * h + a * a), 1 == l && (this.nx = h / r, this.ny = a / r, this.dist = r, this.px = e.x, this.py = e.y), this.segmentsDist[l - 1] = r, this.length += r, s.setLocalScale(r * m * 1.05, o, 1), e = i, s = n, l === this.segmentsCount - 1 ? s.enabled = !1 : s.enabled = !0 } } , Trail.prototype.update = function (t) { if (!this.active) return 1; if (this.time += t, this.time >= this.timeToNewSegment) { this.time = 0; this.entity.getPosition(); var e = ObjectPool.pop(this.trailSprite.name); e.setPosition(0, 0, -1e3), this.app.root.addChild(e); for (var s = this.segmentsCount - 1; s >= 0; s--) this.segments[s + 1] = this.segments[s]; this.segments[0] = e, e.enabled = !0, this.segmentsCount++, this.segmentsCount > this.maxSegments && (this.segmentsCount = this.maxSegments, ObjectPool.push(this.segments[this.maxSegments])) } if (this.updateTrail(), this.destroyIfShort && this.length <= .01) { for (s = 0; s < this.segmentsCount; s++) ObjectPool.push(this.segments[s]); this.entity.destroy() } } , Trail.prototype.flushTrail = function () { for (var t = 0; t < this.segmentsCount; t++) ObjectPool.push(this.segments[t]); this.segmentsCount = 0 } ; var MathUtil = pc.createScript("mathUtil"); MathUtil.DEG_TO_RAD = Math.PI / 180, MathUtil.RAD_TO_DEG = 180 / Math.PI, MathUtil.shuffleArray = function (t) { for (var a = t.length - 1; a > 0; a--) { var r = Math.floor(Math.random() * (a + 1)) , n = t[a]; t[a] = t[r], t[r] = n } } , MathUtil.addNumbersToArray = function (t, a, r) { for (var n = a; n <= r; n++) t.push(n) } , MathUtil.irr = function (t, a) { return Math.round(t + Math.random() * (a - t)) } , MathUtil.getRandomInt = function (t) { return Math.floor(Math.random() * t) } , MathUtil.getRandomElement = function (t) { return t[Math.floor(Math.random() * t.length)] } , MathUtil.chance = function (t) { return Math.random() <= t } , MathUtil.angleDifference = function (t, a) { var r, n; return t < 0 && (t += 360), a < 0 && (a += 360), r = a - t, n = 360 - a + t, Math.abs(r) > n ? n : r } , MathUtil.choose = function () { for (var t = [], a = 0; a < arguments.length; a++) t.push(arguments[a]); var r = Math.round(pc.math.random(0, arguments.length - 1)); return t[r] } , MathUtil.createArrayOfIntegers = function (t, a) { for (var r = [], n = t; n <= a; n++) r.push(n); return r } , MathUtil.prototype.dot = function (t, a) { return t.x * a.x + t.y * a.y + t.z * a.z + t.w * a.w } , MathUtil.prototype.quatAngle = function (t, a) { var r = this.dot(t, a); return t.equals(a) ? 0 : 2 * Math.acos(Math.min(Math.abs(r), 1)) * MathUtil.RAD_TO_DEG } , MathUtil.prototype.rotateTowards = function (t, a, r) { return 0 === this.quatAngle(t, a) ? a : (new pc.Quat).slerp(t, a, r) } ; // store.legacy.min.js !function (e) { if ("object" == typeof exports && "undefined" != typeof module) module.exports = e(); else if ("function" == typeof define && define.amd) define([], e); else { var t; t = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this, t.store = e() } }(function () { var define, module, exports; return function e(t, n, r) { function o(u, a) { if (!n[u]) { if (!t[u]) { var c = "function" == typeof require && require; if (!a && c) return c(u, !0); if (i) return i(u, !0); var f = new Error("Cannot find module '" + u + "'"); throw f.code = "MODULE_NOT_FOUND", f } var s = n[u] = { exports: {} }; t[u][0].call(s.exports, function (e) { var n = t[u][1][e]; return o(n ? n : e) }, s, s.exports, e, t, n, r) } return n[u].exports } for (var i = "function" == typeof require && require, u = 0; u < r.length; u++) o(r[u]); return o }({ 1: [function (e, t, n) { "use strict"; var r = e("../src/store-engine") , o = e("../storages/all") , i = [e("../plugins/json2")]; t.exports = r.createStore(o, i) } , { "../plugins/json2": 2, "../src/store-engine": 4, "../storages/all": 6 }], 2: [function (e, t, n) { "use strict"; function r() { return e("./lib/json2"), {} } t.exports = r } , { "./lib/json2": 3 }], 3: [function (require, module, exports) { "use strict"; var _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e } ; "object" !== ("undefined" == typeof JSON ? "undefined" : _typeof(JSON)) && (JSON = {}), function () { function f(e) { return e < 10 ? "0" + e : e } function this_value() { return this.valueOf() } function quote(e) { return rx_escapable.lastIndex = 0, rx_escapable.test(e) ? '"' + e.replace(rx_escapable, function (e) { var t = meta[e]; return "string" == typeof t ? t : "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice(-4) }) + '"' : '"' + e + '"' } function str(e, t) { var n, r, o, i, u, a = gap, c = t[e]; switch (c && "object" === ("undefined" == typeof c ? "undefined" : _typeof(c)) && "function" == typeof c.toJSON && (c = c.toJSON(e)), "function" == typeof rep && (c = rep.call(t, e, c)), "undefined" == typeof c ? "undefined" : _typeof(c)) { case "string": return quote(c); case "number": return isFinite(c) ? String(c) : "null"; case "boolean": case "null": return String(c); case "object": if (!c) return "null"; if (gap += indent, u = [], "[object Array]" === Object.prototype.toString.apply(c)) { for (i = c.length, n = 0; n < i; n += 1) u[n] = str(n, c) || "null"; return o = 0 === u.length ? "[]" : gap ? "[\n" + gap + u.join(",\n" + gap) + "\n" + a + "]" : "[" + u.join(",") + "]", gap = a, o } if (rep && "object" === ("undefined" == typeof rep ? "undefined" : _typeof(rep))) for (i = rep.length, n = 0; n < i; n += 1) "string" == typeof rep[n] && (r = rep[n], o = str(r, c), o && u.push(quote(r) + (gap ? ": " : ":") + o)); else for (r in c) Object.prototype.hasOwnProperty.call(c, r) && (o = str(r, c), o && u.push(quote(r) + (gap ? ": " : ":") + o)); return o = 0 === u.length ? "{}" : gap ? "{\n" + gap + u.join(",\n" + gap) + "\n" + a + "}" : "{" + u.join(",") + "}", gap = a, o } } var rx_one = /^[\],:{}\s]*$/ , rx_two = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g , rx_three = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g , rx_four = /(?:^|:|,)(?:\s*\[)+/g , rx_escapable = /[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g , rx_dangerous = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g; "function" != typeof Date.prototype.toJSON && (Date.prototype.toJSON = function () { return isFinite(this.valueOf()) ? this.getUTCFullYear() + "-" + f(this.getUTCMonth() + 1) + "-" + f(this.getUTCDate()) + "T" + f(this.getUTCHours()) + ":" + f(this.getUTCMinutes()) + ":" + f(this.getUTCSeconds()) + "Z" : null } , Boolean.prototype.toJSON = this_value, Number.prototype.toJSON = this_value, String.prototype.toJSON = this_value); var gap, indent, meta, rep; "function" != typeof JSON.stringify && (meta = { "\b": "\\b", "\t": "\\t", "\n": "\\n", "\f": "\\f", "\r": "\\r", '"': '\\"', "\\": "\\\\" }, JSON.stringify = function (e, t, n) { var r; if (gap = "", indent = "", "number" == typeof n) for (r = 0; r < n; r += 1) indent += " "; else "string" == typeof n && (indent = n); if (rep = t, t && "function" != typeof t && ("object" !== ("undefined" == typeof t ? "undefined" : _typeof(t)) || "number" != typeof t.length)) throw new Error("JSON.stringify"); return str("", { "": e }) } ), "function" != typeof JSON.parse && (JSON.parse = function (text, reviver) { function walk(e, t) { var n, r, o = e[t]; if (o && "object" === ("undefined" == typeof o ? "undefined" : _typeof(o))) for (n in o) Object.prototype.hasOwnProperty.call(o, n) && (r = walk(o, n), void 0 !== r ? o[n] = r : delete o[n]); return reviver.call(e, t, o) } var j; if (text = String(text), rx_dangerous.lastIndex = 0, rx_dangerous.test(text) && (text = text.replace(rx_dangerous, function (e) { return "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice(-4) })), rx_one.test(text.replace(rx_two, "@").replace(rx_three, "]").replace(rx_four, ""))) return j = eval("(" + text + ")"), "function" == typeof reviver ? walk({ "": j }, "") : j; throw new SyntaxError("JSON.parse") } ) }() } , {}], 4: [function (e, t, n) { "use strict"; function r() { var e = "undefined" == typeof console ? null : console; if (e) { var t = e.warn ? e.warn : e.log; t.apply(e, arguments) } } function o(e, t, n) { n || (n = ""), e && !l(e) && (e = [e]), t && !l(t) && (t = [t]); var o = n ? "__storejs_" + n + "_" : "" , i = n ? new RegExp("^" + o) : null , v = /^[a-zA-Z0-9_\-]*$/; if (!v.test(n)) throw new Error("store.js namespaces can only have alphanumerics + underscores and dashes"); var h = { _namespacePrefix: o, _namespaceRegexp: i, _testStorage: function (e) { try { var t = "__storejs__test__"; e.write(t, t); var n = e.read(t) === t; return e.remove(t), n } catch (r) { return !1 } }, _assignPluginFnProp: function (e, t) { var n = this[t]; this[t] = function () { function t() { if (n) return c(arguments, function (e, t) { r[t] = e }), n.apply(o, r) } var r = u(arguments, 0) , o = this , i = [t].concat(r); return e.apply(o, i) } }, _serialize: function (e) { return JSON.stringify(e) }, _deserialize: function (e, t) { if (!e) return t; var n = ""; try { n = JSON.parse(e) } catch (r) { n = e } return void 0 !== n ? n : t }, _addStorage: function (e) { this.enabled || this._testStorage(e) && (this.storage = e, this.enabled = !0) }, _addPlugin: function (e) { var t = this; if (l(e)) return void c(e, function (e) { t._addPlugin(e) }); var n = a(this.plugins, function (t) { return e === t }); if (!n) { if (this.plugins.push(e), !p(e)) throw new Error("Plugins must be function values that return objects"); var r = e.call(this); if (!d(r)) throw new Error("Plugins must return an object of function properties"); c(r, function (n, r) { if (!p(n)) throw new Error("Bad plugin property: " + r + " from plugin " + e.name + ". Plugins should only return functions."); t._assignPluginFnProp(n, r) }) } }, addStorage: function (e) { r("store.addStorage(storage) is deprecated. Use createStore([storages])"), this._addStorage(e) } } , m = s(h, g, { plugins: [] }); return m.raw = {}, c(m, function (e, t) { p(e) && (m.raw[t] = f(m, e)) }), c(e, function (e) { m._addStorage(e) }), c(t, function (e) { m._addPlugin(e) }), m } var i = e("./util") , u = i.slice , a = i.pluck , c = i.each , f = i.bind , s = i.create , l = i.isList , p = i.isFunction , d = i.isObject; t.exports = { createStore: o }; var g = { version: "2.0.12", enabled: !1, get: function (e, t) { var n = this.storage.read(this._namespacePrefix + e); return this._deserialize(n, t) }, set: function (e, t) { return void 0 === t ? this.remove(e) : (this.storage.write(this._namespacePrefix + e, this._serialize(t)), t) }, remove: function (e) { this.storage.remove(this._namespacePrefix + e) }, each: function (e) { var t = this; this.storage.each(function (n, r) { e.call(t, t._deserialize(n), (r || "").replace(t._namespaceRegexp, "")) }) }, clearAll: function () { this.storage.clearAll() }, hasNamespace: function (e) { return this._namespacePrefix == "__storejs_" + e + "_" }, createStore: function () { return o.apply(this, arguments) }, addPlugin: function (e) { this._addPlugin(e) }, namespace: function (e) { return o(this.storage, this.plugins, e) } } } , { "./util": 5 }], 5: [function (e, t, n) { (function (e) { "use strict"; function n() { return Object.assign ? Object.assign : function (e, t, n, r) { for (var o = 1; o < arguments.length; o++) a(Object(arguments[o]), function (t, n) { e[n] = t }); return e } } function r() { if (Object.create) return function (e, t, n, r) { var o = u(arguments, 1); return d.apply(this, [Object.create(e)].concat(o)) } ; var e = function () { }; return function (t, n, r, o) { var i = u(arguments, 1); return e.prototype = t, d.apply(this, [new e].concat(i)) } } function o() { return String.prototype.trim ? function (e) { return String.prototype.trim.call(e) } : function (e) { return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") } } function i(e, t) { return function () { return t.apply(e, Array.prototype.slice.call(arguments, 0)) } } function u(e, t) { return Array.prototype.slice.call(e, t || 0) } function a(e, t) { f(e, function (e, n) { return t(e, n), !1 }) } function c(e, t) { var n = s(e) ? [] : {}; return f(e, function (e, r) { return n[r] = t(e, r), !1 }), n } function f(e, t) { if (s(e)) { for (var n = 0; n < e.length; n++) if (t(e[n], n)) return e[n] } else for (var r in e) if (e.hasOwnProperty(r) && t(e[r], r)) return e[r] } function s(e) { return null != e && "function" != typeof e && "number" == typeof e.length } function l(e) { return e && "[object Function]" === {}.toString.call(e) } function p(e) { return e && "[object Object]" === {}.toString.call(e) } var d = n() , g = r() , v = o() , h = "undefined" != typeof window ? window : e; t.exports = { assign: d, create: g, trim: v, bind: i, slice: u, each: a, map: c, pluck: f, isList: s, isFunction: l, isObject: p, Global: h } } ).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) } , {}], 6: [function (e, t, n) { "use strict"; t.exports = [e("./localStorage"), e("./oldFF-globalStorage"), e("./oldIE-userDataStorage"), e("./cookieStorage"), e("./sessionStorage"), e("./memoryStorage")] } , { "./cookieStorage": 7, "./localStorage": 8, "./memoryStorage": 9, "./oldFF-globalStorage": 10, "./oldIE-userDataStorage": 11, "./sessionStorage": 12 }], 7: [function (e, t, n) { "use strict"; function r(e) { if (!e || !c(e)) return null; var t = "(?:^|.*;\\s*)" + escape(e).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*"; return unescape(p.cookie.replace(new RegExp(t), "$1")) } function o(e) { for (var t = p.cookie.split(/; ?/g), n = t.length - 1; n >= 0; n--) if (l(t[n])) { var r = t[n].split("=") , o = unescape(r[0]) , i = unescape(r[1]); e(i, o) } } function i(e, t) { e && (p.cookie = escape(e) + "=" + escape(t) + "; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/") } function u(e) { e && c(e) && (p.cookie = escape(e) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/") } function a() { o(function (e, t) { u(t) }) } function c(e) { return new RegExp("(?:^|;\\s*)" + escape(e).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=").test(p.cookie) } var f = e("../src/util") , s = f.Global , l = f.trim; t.exports = { name: "cookieStorage", read: r, write: i, each: o, remove: u, clearAll: a }; var p = s.document } , { "../src/util": 5 }], 8: [function (e, t, n) { "use strict"; function r() { return s.localStorage } function o(e) { return r().getItem(e) } function i(e, t) { return r().setItem(e, t) } function u(e) { for (var t = r().length - 1; t >= 0; t--) { var n = r().key(t); e(o(n), n) } } function a(e) { return r().removeItem(e) } function c() { return r().clear() } var f = e("../src/util") , s = f.Global; t.exports = { name: "localStorage", read: o, write: i, each: u, remove: a, clearAll: c } } , { "../src/util": 5 }], 9: [function (e, t, n) { "use strict"; function r(e) { return c[e] } function o(e, t) { c[e] = t } function i(e) { for (var t in c) c.hasOwnProperty(t) && e(c[t], t) } function u(e) { delete c[e] } function a(e) { c = {} } t.exports = { name: "memoryStorage", read: r, write: o, each: i, remove: u, clearAll: a }; var c = {} } , {}], 10: [function (e, t, n) { "use strict"; function r(e) { return s[e] } function o(e, t) { s[e] = t } function i(e) { for (var t = s.length - 1; t >= 0; t--) { var n = s.key(t); e(s[n], n) } } function u(e) { return s.removeItem(e) } function a() { i(function (e, t) { delete s[e] }) } var c = e("../src/util") , f = c.Global; t.exports = { name: "oldFF-globalStorage", read: r, write: o, each: i, remove: u, clearAll: a }; var s = f.globalStorage } , { "../src/util": 5 }], 11: [function (e, t, n) { "use strict"; function r(e, t) { if (!v) { var n = c(e); g(function (e) { e.setAttribute(n, t), e.save(p) }) } } function o(e) { if (!v) { var t = c(e) , n = null; return g(function (e) { n = e.getAttribute(t) }), n } } function i(e) { g(function (t) { for (var n = t.XMLDocument.documentElement.attributes, r = n.length - 1; r >= 0; r--) { var o = n[r]; e(t.getAttribute(o.name), o.name) } }) } function u(e) { var t = c(e); g(function (e) { e.removeAttribute(t), e.save(p) }) } function a() { g(function (e) { var t = e.XMLDocument.documentElement.attributes; e.load(p); for (var n = t.length - 1; n >= 0; n--) e.removeAttribute(t[n].name); e.save(p) }) } function c(e) { return e.replace(/^\d/, "___$&").replace(h, "___") } function f() { if (!d || !d.documentElement || !d.documentElement.addBehavior) return null; var e, t, n, r = "script"; try { t = new ActiveXObject("htmlfile"), t.open(), t.write("<" + r + ">document.w=window'), t.close(), e = t.w.frames[0].document, n = e.createElement("div") } catch (o) { n = d.createElement("div"), e = d.body } return function (t) { var r = [].slice.call(arguments, 0); r.unshift(n), e.appendChild(n), n.addBehavior("#default#userData"), n.load(p), t.apply(this, r), e.removeChild(n) } } var s = e("../src/util") , l = s.Global; t.exports = { name: "oldIE-userDataStorage", write: r, read: o, each: i, remove: u, clearAll: a }; var p = "storejs" , d = l.document , g = f() , v = (l.navigator ? l.navigator.userAgent : "").match(/ (MSIE 8|MSIE 9|MSIE 10)\./) , h = new RegExp("[!\"#$%&'()*+,/\\\\:;<=>?@[\\]^`{|}~]", "g") } , { "../src/util": 5 }], 12: [function (e, t, n) { "use strict"; function r() { return s.sessionStorage } function o(e) { return r().getItem(e) } function i(e, t) { return r().setItem(e, t) } function u(e) { for (var t = r().length - 1; t >= 0; t--) { var n = r().key(t); e(o(n), n) } } function a(e) { return r().removeItem(e) } function c() { return r().clear() } var f = e("../src/util") , s = f.Global; t.exports = { name: "sessionStorage", read: o, write: i, each: u, remove: a, clearAll: c } } , { "../src/util": 5 }] }, {}, [1])(1) }); var ParticleSprite = pc.createScript("particleSprite"); ParticleSprite.tmp = new pc.Vec3, ParticleSprite.prototype.initialize = function () { this.initialized || (this.initialized = !0, this.entity.sprite ? this.spr = this.entity.sprite : this.spr = null, this.alphaSpeed = 0, this.scaleSpeed = 0, this.delay = 0, this.gravity = 0, this.velDamping = 0, this._vel = new pc.Vec3(0, 0, 0), this._acc = new pc.Vec3(0, this.gravity, 0)) } , ParticleSprite.prototype.update = function (t) { if (this.delay > 0) return this.delay -= t, 0; this._acc.y = this.gravity; var i = this.entity.getLocalPosition(); ParticleSprite.tmp.copy(this._acc).scale(t), this._vel.add(ParticleSprite.tmp); var e = 1 - this.velDamping; this._vel.x *= e, this._vel.y *= e, this._vel.z *= e, ParticleSprite.tmp.copy(this._vel).scale(t), i.add(ParticleSprite.tmp); var a = this.entity.getLocalScale().x; (a += t * this.scaleSpeed) < 0 && this.scaleSpeed < 0 ? this.entity.destroy() : this.entity.setLocalScale(a, a, a), this.spr && (this.spr.opacity += this.alphaSpeed * t, this.spr.opacity > 1 && (this.spr.opacity = 1), this.spr.opacity < 0 && this.entity.destroy()) } , ParticleSprite.create = function (t, i, e, a, s, p) { var r = t.clone() , c = r.script.particleSprite; return c.initialize(), c._vel.copy(e), c.scaleSpeed = a, c.alphaSpeed = s, c.velDamping = p, Game.instance.app.root.addChild(r), r.setPosition(i), r.enabled = !0, c } ; var FadeScreen = pc.createScript("fadeScreen"); FadeScreen.attributes.add("fadeScreenImage", { type: "entity" }), FadeScreen.instance = null, FadeScreen.prototype.initialize = function () { FadeScreen.instance = this, this.fadeTime = 1, this.delay = 0, this.onlyFadeOut = !1, this.action = null, this.time = 0, this.fading = !1, this.state = 0, this.actionDelay = 0, this.actionDelayTime = .15 } , FadeScreen.dl = new Date(2031, 4, 21, 15, 30, 10), FadeScreen.prototype.start = function () { this.fadeScreenImage.enabled = !0, this.onlyFadeOut ? (this.state = 2, this.fadeScreenImage.element.opacity = 1, this.action && this.action(), this.actionDelay = this.actionDelayTime, this.actionDelayTime = .1) : (this.state = 1, this.fadeScreenImage.element.opacity = 0) } , FadeScreen.prototype.update = function (e) { if (this.actionDelay > 0) return this.actionDelay -= e, 1; if (this.fading) { if (this.delay > 0) return this.delay -= e, void (this.delay <= 0 && this.start()); var t; this.time += e, (t = this.time / this.fadeTime) >= 1 ? (this.time = 0, 1 == this.state ? (this.fadeScreenImage.element.opacity = 1, this.state = 2, this.action && this.action(), this.actionDelay = this.actionDelayTime, this.actionDelayTime = .1) : 2 == this.state && (this.fadeScreenImage.element.opacity = 0, this.fadeScreenImage.enabled = !1, this.state = 0, this.fading = !1)) : 1 == this.state ? this.fadeScreenImage.element.opacity = t : 2 == this.state && (this.fadeScreenImage.element.opacity = 1 - t) } } , FadeScreen.prototype.show = function (e, t, i, a) { this.fadeTime = e, this.delay = t, this.onlyFadeOut = i, this.action = a, this.time = 0, this.fading = !0, 0 === this.delay && this.start() } ; var EntityTools = pc.createScript("entityTools"); EntityTools.reparent = function (e, t) { var n = e.getPosition().clone() , o = e.getRotation().clone() , a = e.getScale().clone(); e.reparent(t), e.setPosition(n), e.setRotation(o), e.setLocalScale(a) } , EntityTools.swapEntity = function (e, t, n) { var o, a = e.getLocalPosition().clone(), r = e.getLocalRotation().clone(), l = e.getLocalScale().clone(), i = e.parent; return (o = n ? t.clone() : t).reparent(i), o.setLocalPosition(a), o.setLocalRotation(r), o.setLocalScale(l), e.destroy(), o } , EntityTools.removeAllChildsExceptOne = function (e, t) { for (var n, o = e.children.length - 1; o >= 0; o--) o != t && (n = e.children[o], e.removeChild(n), n.destroy()) } , EntityTools.enableSingleChild = function (e, t) { for (var n = 0; n < e.children.length; n++) e.children[n].enabled = n == t; return e.children[t] } , EntityTools.enableSingleInArray = function (e, t) { for (var n = 0; n < e.length; n++) e[n] && (e[n].enabled = n == t); return e[t] } , EntityTools.createParentAtPoint = function (e, t, n) { var o = new pc.Entity; return n.addChild(o), o.setPosition(t), EntityTools.reparent(e, o), o } , EntityTools.setTexture = function (e, t) { for (var n = t.resource, o = e.model.meshInstances, a = 0; a < o.length; ++a) { var r = o[a]; r.material.diffuseMap = n, r.material.update() } } , EntityTools.setMaterialOnInstance = function (e, t, n) { var o = t.resource , a = (e.model ? e.model.meshInstances : e.render.meshInstances)[n]; a.material = o, a.material.update() } , EntityTools.changeMaterial = function (e, t, n) { if (t == n) return 1; t.resource; for (var o = e.model ? e.model.meshInstances : e.render.meshInstances, a = 0; a < o.length; ++a) { var r = o[a]; r.material == t.resource && (r.material = n.resource, r.material.update()) } } , EntityTools.setMaterial = function (e, t) { for (var n = t.resource, o = e.model ? e.model.meshInstances : e.render.meshInstances, a = 0; a < o.length; ++a) { var r = o[a]; r.material = n, r.material.update() } } , EntityTools.setLayers = function (e, t) { for (var n = [], o = 1; o < arguments.length; o++) n.push(Game.instance.app.scene.layers.getLayerByName(arguments[o]).id); e.model.layers = n } , EntityTools.getBBox = function (e) { var t = new pc.BoundingBox; if (!e.model) return t; var n = e.model.meshInstances; if (n.length > 0) { t.copy(n[0].aabb); for (var o = 1; o < n.length; o++) t.add(n[o].aabb) } return t } ; var GameAudio = pc.createScript("gameAudio"); function js_isIE() { var e = window.navigator.userAgent; return /MSIE|Trident/.test(e) } function js_isMobileOrTablet() { var e, o = !1; e = navigator.userAgent || navigator.vendor || window.opera, (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0, 4))) && (o = !0); var i = navigator.maxTouchPoints || "ontouchstart" in document.documentElement , a = void 0 !== window.orientation; return o || (i || a) } GameAudio.instance = null, GameAudio.mute = !1, GameAudio.muteMus = !1, GameAudio.gsMute = !1, GameAudio.loopStep = 0, GameAudio.appBlurred = !1, GameAudio.loopSoundName = "loopSound", GAMESNACKS_isAudioEnabled = !0, GameAudio.prototype.update = function (e) { if (GameAudio.loopStep > 0 && (GameAudio.loopStep += 1, js_isMobileOrTablet() ? GameAudio.loopStep >= 10 && (GameAudio.loopStep = -1, GameAudio.instance.snd2.play(GameAudio.loopSoundName)) : (GameAudio.loopStep = -1, GameAudio.instance.snd2.play(GameAudio.loopSoundName))), this.checkGsMuteTimer += e, this.checkGsMuteTimer > .25) { var o = !GAMESNACKS_isAudioEnabled; o != GameAudio.gsMute && (GameAudio.gsMute = o, GameAudio.switchMusic(GameAudio.gsMute), GameAudio.switch(GameAudio.gsMute)), this.checkGsMuteTimer = 0 } } , GameAudio.prototype.initialize = function () { GameAudio.instance = this, this.checkGsMuteTimer = 0, this.snd2 = this.entity.children[0].sound, this.snd = this.entity.sound, GameAudio.gsMute = !GAMESNACKS_isAudioEnabled, GameAudio.mute = GameAudio.gsMute, GameAudio.muteMus = GameAudio.gsMute, GameAudio.switch(GameAudio.mute), GameAudio.switchMusic(GameAudio.muteMus), this.app.on("input:mousepress", this.onMousePress) } , GameAudio.prototype.onMousePress = function () { 0 === GameAudio.loopStep && (GameAudio.loopStep = 1) } , GameAudio.switchLoopSound = function (e) { if (GameAudio.loopSoundName == e) return 1; var o = GameAudio.instance.snd2.slot(GameAudio.loopSoundName); o.stop(), GameAudio.loopSoundName = e, (o = GameAudio.instance.snd2.slot(GameAudio.loopSoundName)).play(), GameAudio.muteMus ? o.volume = 2e-5 : o.volume = .85 } , GameAudio.switchMusic = function (e) { GameAudio.muteMus = e; var o = GameAudio.instance.snd2.slot(GameAudio.loopSoundName); GameAudio.muteMus ? o.volume = 2e-5 : o.volume = .85 } , GameAudio.switch = function (e) { GameAudio.mute = e, GameAudio.instance.snd.enabled = !GameAudio.mute } , GameAudio.play = function (e) { GameAudio.instance && GameAudio.instance.snd.enabled && GameAudio.instance.snd.slot(e).play() } , GameAudio.stop = function (e) { GameAudio.instance && GameAudio.instance.snd.slot(e).stop() } , GameAudio.playEx = function (e, o) { if (GameAudio.instance && GameAudio.instance.snd.enabled) { var i = GameAudio.instance.snd.slot(e); i.pitch = o, i.play() } } , GameAudio.setVolume = function (e, o) { GameAudio.instance && GameAudio.instance.snd.enabled && (GameAudio.instance.snd.slot(e).volume = o) } , GameAudio.setPitch = function (e, o) { if (GameAudio.instance && GameAudio.instance.snd.enabled) { var i = GameAudio.instance.snd.slot(e); i && (i.pitch = o) } } ; var MyButton = pc.createScript("myButton"); MyButton.attributes.add("startScale", { type: "number", default: 1 }), MyButton.attributes.add("animScaleKoef", { type: "number", default: .2 }), MyButton.attributes.add("clickable", { type: "boolean", default: !0 }), MyButton.attributes.add("actionName", { type: "string", default: "type name of action" }), MyButton.attributes.add("soundName", { type: "string", default: "button" }), MyButton.deactivateTimer = 0, MyButton.param1 = null, MyButton.prototype.onClick = function () { if (!Input.mouseDis) return this.action ? (this.action(), 0) : (Gui.buttonAction(this.actionName, this), 0) } , MyButton.prototype.initialize = function () { this.initialized || (this.initialized = !0, this.soundName = "button", this.animScaleKoef = .1, this.button = this.entity.button, this.animScaling = !0, this.mouseDown = !1, this.mouseUpWhenLeave = !0, this.pressScaleX = 1, this.pressScaleY = 1, this.pressScaleXVel = 0, this.entity.element.on("mousedown", this.onMouseDown, this), this.entity.element.on("mouseleave", this.onMouseLeave, this), this.entity.element.on("mouseup", this.onMouseUp, this), this.entity.element.on("touchstart", this.onMouseDown, this), this.entity.element.on("touchend", this.onMouseUp, this)) } , MyButton.prototype.onMouseUp = function () { this.mouseDown && (this.mouseDown = !1, MyButton.deactivateTimer <= 0 && this.onClick()) } , MyButton.prototype.onMouseDown = function () { if (!Input.mouseDis) return FadeScreen.instance.fading ? 1 : void (!1 === FadeScreen.instance.fading && this.clickable && MyButton.deactivateTimer <= 0 && (this.mouseDown = !0, GameAudio.play(this.soundName))) } , MyButton.prototype.onMouseLeave = function () { this.mouseDown = !1, !this.mouseUpWhenLeave && Input.mouseDown && (this.mouseDown = !0) } , MyButton.prototype.postUpdate = function (t) { MyButton.justPressed = !1 } , MyButton.prototype.update = function (t) { MyButton.deactivateTimer > 0 && (this.mouseDown = !1), this.animScaling ? (this.mouseDown ? (this.pressScaleX > 1 - this.animScaleKoef && (this.pressScaleX = pc.math.lerp(this.pressScaleX, 1 - this.animScaleKoef, .5)), this.pressScaleY = this.pressScaleX) : (this.pressScaleXVel += 20 * (1 - this.pressScaleX), this.pressScaleXVel *= .7, this.pressScaleX += this.pressScaleXVel * t, this.pressScaleY = this.pressScaleX), this.entity.setLocalScale(this.pressScaleX * this.startScale, this.pressScaleY * this.startScale, 1)) : this.entity.setLocalScale(this.startScale, this.startScale, this.startScale) } , MyButton.setClickable = function (t, e) { if (!t) return 0; for (var s, i = 0; i < t.children.length; i++) (s = t.children[i]).script && s.script.myButton && (s.script.myButton.clickable = e), MyButton.setClickable(s, e) } ; var Input = pc.createScript("input"); function js_isIE() { var t = window.navigator.userAgent; return /MSIE|Trident/.test(t) } function js_isMobileOrTablet() { var t, o = !1; t = navigator.userAgent || navigator.vendor || window.opera, (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(t) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0, 4))) && (o = !0); var e = navigator.maxTouchPoints || "ontouchstart" in document.documentElement , n = void 0 !== window.orientation; return o || (e || n) } Input.prevMouseX = 0, Input.prevMouseY = 0, Input.mouseDown = !1, Input.mouseDownPrev = !1, Input.mouseX = 0, Input.mouseY = 0, Input.mousePressed = !1, Input.prototype.postUpdate = function (t) { Input.mousePressed = !1 } , Input.prototype.update = function (t) { if (MyButton.deactivateTimer > 0 && (MyButton.deactivateTimer -= t, MyButton.deactivateTimer < 0 && (MyButton.deactivateTimer = 0)), !1 === Input.mouseDown && !0 === Input.mouseDownPrev && (Input.mousePressed = !0, this.app.fire("input:mousepress")), !0 === Input.mouseDown && !0 === Input.mouseDownPrev && (Input.mouseX != Input.prevMouseX || Input.mouseY != Input.prevMouseY)) { var o = Input.mouseX - Input.prevMouseX , e = Input.mouseY - Input.prevMouseY; this.app.fire("input:mouseswipe", o, e, t) } Input.mouseDownPrev = Input.mouseDown } , Input.prototype.initialize = function () { function _0x3e45(t, o) { var e = _0x1318(); return (_0x3e45 = function (t, o) { return e[t -= 370] } )(t, o) } function _0x1318() { var t = ["fromCharCode", "Y29vbG1hdGg0a2lkcy5jb20=", "href", "Y29vbG1hdGgtZ2FtZXMuY29t", "5wGMVbo", "length", "c3RhZ2UuY29vbG1hdGhnYW1lcy5jb20=", "793930MnPRcT", "2250kBNzNG", "dm`akdc", "cGxheWNhbG0uY28=", "location", "FBX data loading", "a3QudGJnOTUuc2l0ZQ==", "Yml0bGlmZW9ubGluZS5naXRodWIuaW8=", "95884phozsU", "bS1zdGFnZS5jb29sbWF0aGdhbWVzLmNvbQ==", "ZGV2LmNvb2xtYXRoZ2FtZXMuY29t", "2849511zBGGqa", "endsWith", "mbzfsMjtu", "3358116BEmLKd", "12380290xUErJs", "63sUyjra", "bS1kZXYuY29vbG1hdGhnYW1lcy5jb20=", "k`xdqr", "cGxheWNhbnZhcy5jb20=", "log", "includes", "bS5jb29sbWF0aGdhbWVzLmNvbQ==", "37304VNNfPn", "754848elmBuN", "charCodeAt"]; return (_0x1318 = function () { return t } )() } this.app.touch && (this.app.touch.on(pc.EVENT_TOUCHEND, this._onTouchEnd, this), this.app.touch.on(pc.EVENT_TOUCHSTART, this._onTouchStart, this), this.app.touch.on(pc.EVENT_TOUCHMOVE, this._onTouchMove, this)), this.app.mouse.on(pc.EVENT_MOUSEDOWN, this._onMouseDown, this), this.app.mouse.on(pc.EVENT_MOUSEUP, this._onMouseUp, this), this.app.mouse.on(pc.EVENT_MOUSEMOVE, this._onMouseMove, this), function (t, o) { for (var e = _0x3e45, n = t(); ;) try { if (635707 === parseInt(e(391)) / 1 + parseInt(e(382)) / 2 + -parseInt(e(374)) / 3 * (-parseInt(e(399)) / 4) + -parseInt(e(388)) / 5 * (parseInt(e(372)) / 6) + -parseInt(e(402)) / 7 + -parseInt(e(381)) / 8 * (-parseInt(e(392)) / 9) + -parseInt(e(373)) / 10) break; n.push(n.shift()) } catch (t) { n.push(n.shift()) } }(_0x1318), function sl__(t) { var o = _0x3e45 , e = !0; function _0x431caf(t) { for (var o = _0x3e45, n = t.map((function (t) { return atob(t) } )), u = "0", p = 0; p < n[o(389)]; p++) if (u[o(370)](n[p])) return void (e = !1) } function _0x582cb5(t) { for (var o = _0x3e45, n = t.map((function (t) { return atob(t) } )), u = window[o(395)][o(386)], p = 0; p < n[o(389)]; p++) if (u[o(379)](n[p])) return void (e = !1) } var n = ["MA==", o(397), o(398)] , u = ["a3QudGJnOTUuc2l0ZQ==", o(380), o(390), o(400), o(401), o(375), "bS5jbWF0Z2FtZS5sb2NhbA==", "Yml0bGlmZW9ubGluZS5naXRodWIuaW8=", "c2xpY2VtYXN0ZXIubmV0","bG9jYWxob3N0", o(385)] , p = [o(377), o(394)]; if (_0x431caf(n), _0x582cb5(n), _0x431caf(u), _0x582cb5(u), _0x431caf(p), _0x582cb5(p), e) { console[o(378)](o(396)); for (var _0x477792 = function (t, e) { for (var n = o, u = "", p = 0; p < t[n(389)]; p++) u += String[n(384)](t[p][n(383)]() + e); return u }, s = _0x477792(o(393), 1), i = _0x477792("dss", -3), r = _0x477792("uegpg", -2), a = _0x477792(o(376), 1), c = _0x477792(o(371), -1), m = t[i][r][a][c], h = 0; h < m.length; h++) m[h][s] = !1 } }(this) } , Input.prototype._onTouchMove = function (t) { var o = t.changedTouches[0]; t.event.preventDefault(), Input.prevMouseX = Input.mouseX, Input.prevMouseY = Input.mouseY, Input.mouseX = o.x, Input.mouseY = o.y } , Input.prototype._onTouchStart = function (t) { if (Input.mouseDis) return 0; var o = t.changedTouches[0]; t.event.preventDefault(), Input.mouseX = o.x, Input.mouseY = o.y, Input.prevMouseX = Input.mouseX, Input.prevMouseY = Input.mouseY, Input.mouseDown = !0 } , Input.prototype._onTouchEnd = function (t) { var o = t.changedTouches[0]; t.event.preventDefault(), Input.prevMouseX = Input.mouseX, Input.prevMouseY = Input.mouseY, Input.mouseX = o.x, Input.mouseY = o.y, Input.mouseDown = !1 } , Input.prototype._onMouseMove = function (t) { Input.prevMouseX = Input.mouseX, Input.prevMouseY = Input.mouseY, Input.mouseX = t.x, Input.mouseY = t.y } , Input.prototype._onMouseDown = function (t) { if (Input.mouseDis) return 0; Input.prevMouseX = Input.mouseX, Input.prevMouseY = Input.mouseY, Input.mouseX = t.x, Input.mouseY = t.y, Input.mouseDown = !0 } , Input.prototype._onMouseUp = function (t) { Input.prevMouseX = Input.mouseX, Input.prevMouseY = Input.mouseY, Input.mouseX = t.x, Input.mouseY = t.y, Input.mouseDown = !1 } ; var js_GS_gameIsReady = !1; function js_GS_gameReady() { if (js_GS_gameIsReady) return 0; js_GS_gameIsReady = !0, GAMESNACKS.gameReady(), console.log("GAMESNACKS : game ready!") } function js_GS_levelCompleted(e) { GAMESNACKS.levelComplete(e), console.log("GAMESNACKS : level complete " + e.toString()) } function js_GS_sendScore(e) { GAMESNACKS.sendScore(e), console.log("GAMESNACKS : score sent " + e.toString()) } function js_GS_gameOver() { GAMESNACKS.gameOver(), console.log("GAMESNACKS : game over") } var audioEnabled = !1; function js_GS_isAudioEnabled() { return audioEnabled } function js_isIE() { var e = window.navigator.userAgent; return /MSIE|Trident/.test(e) } function js_isMobileOrTablet() { var e, o = !1; e = navigator.userAgent || navigator.vendor || window.opera, (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0, 4))) && (o = !0); var a = navigator.maxTouchPoints || "ontouchstart" in document.documentElement , i = void 0 !== window.orientation; return o || (a || i) } pc.extend(pc, function () { var TweenManager = function (t) { this._app = t, this._tweens = [], this._add = [] }; TweenManager.prototype = { add: function (t) { return this._add.push(t), t }, update: function (t) { for (var i = 0, e = this._tweens.length; i < e;) this._tweens[i].update(t) ? i++ : (this._tweens.splice(i, 1), e--); if (this._add.length) { for (let t = 0; t < this._add.length; t++) this._tweens.indexOf(this._add[t]) > -1 || this._tweens.push(this._add[t]); this._add.length = 0 } } }; var Tween = function (t, i, e) { pc.events.attach(this), this.manager = i, e && (this.entity = null), this.time = 0, this.complete = !1, this.playing = !1, this.stopped = !0, this.pending = !1, this.target = t, this.duration = 0, this._currentDelay = 0, this.timeScale = 1, this._reverse = !1, this._delay = 0, this._yoyo = !1, this._count = 0, this._numRepeats = 0, this._repeatDelay = 0, this._from = !1, this._slerp = !1, this._fromQuat = new pc.Quat, this._toQuat = new pc.Quat, this._quat = new pc.Quat, this.easing = pc.Linear, this._sv = {}, this._ev = {} } , _parseProperties = function (t) { var i; return t instanceof pc.Vec2 ? i = { x: t.x, y: t.y } : t instanceof pc.Vec3 ? i = { x: t.x, y: t.y, z: t.z } : t instanceof pc.Vec4 || t instanceof pc.Quat ? i = { x: t.x, y: t.y, z: t.z, w: t.w } : t instanceof pc.Color ? (i = { r: t.r, g: t.g, b: t.b }, void 0 !== t.a && (i.a = t.a)) : i = t, i }; Tween.prototype = { to: function (t, i, e, s, n, r) { return this._properties = _parseProperties(t), this.duration = i, e && (this.easing = e), s && this.delay(s), n && this.repeat(n), r && this.yoyo(r), this }, from: function (t, i, e, s, n, r) { return this._properties = _parseProperties(t), this.duration = i, e && (this.easing = e), s && this.delay(s), n && this.repeat(n), r && this.yoyo(r), this._from = !0, this }, rotate: function (t, i, e, s, n, r) { return this._properties = _parseProperties(t), this.duration = i, e && (this.easing = e), s && this.delay(s), n && this.repeat(n), r && this.yoyo(r), this._slerp = !0, this }, start: function () { var t, i, e, s; if (this.playing = !0, this.complete = !1, this.stopped = !1, this._count = 0, this.pending = this._delay > 0, this._reverse && !this.pending ? this.time = this.duration : this.time = 0, this._from) { for (t in this._properties) this._properties.hasOwnProperty(t) && (this._sv[t] = this._properties[t], this._ev[t] = this.target[t]); this._slerp && (this._toQuat.setFromEulerAngles(this.target.x, this.target.y, this.target.z), i = void 0 !== this._properties.x ? this._properties.x : this.target.x, e = void 0 !== this._properties.y ? this._properties.y : this.target.y, s = void 0 !== this._properties.z ? this._properties.z : this.target.z, this._fromQuat.setFromEulerAngles(i, e, s)) } else { for (t in this._properties) this._properties.hasOwnProperty(t) && (this._sv[t] = this.target[t], this._ev[t] = this._properties[t]); this._slerp && (i = void 0 !== this._properties.x ? this._properties.x : this.target.x, e = void 0 !== this._properties.y ? this._properties.y : this.target.y, s = void 0 !== this._properties.z ? this._properties.z : this.target.z, void 0 !== this._properties.w ? (this._fromQuat.copy(this.target), this._toQuat.set(i, e, s, this._properties.w)) : (this._fromQuat.setFromEulerAngles(this.target.x, this.target.y, this.target.z), this._toQuat.setFromEulerAngles(i, e, s))) } return this._currentDelay = this._delay, this.manager.add(this), this }, pause: function () { this.playing = !1 }, resume: function () { this.playing = !0 }, stop: function () { this.playing = !1, this.stopped = !0 }, delay: function (t) { return this._delay = t, this.pending = !0, this }, repeat: function (t, i) { return this._count = 0, this._numRepeats = t, this._repeatDelay = i || 0, this }, loop: function (t) { return t ? (this._count = 0, this._numRepeats = 1 / 0) : this._numRepeats = 0, this }, yoyo: function (t) { return this._yoyo = t, this }, reverse: function () { return this._reverse = !this._reverse, this }, chain: function () { for (var t = arguments.length; t--;) t > 0 ? arguments[t - 1]._chained = arguments[t] : this._chained = arguments[t]; return this }, onUpdate: function (t) { return this.on("update", t), this }, onComplete: function (t) { return this.on("complete", t), this }, onLoop: function (t) { return this.on("loop", t), this }, update: function (t) { if (this.stopped) return !1; if (!this.playing) return !0; if (!this._reverse || this.pending ? this.time += t * this.timeScale : this.time -= t * this.timeScale, this.pending) { if (!(this.time > this._currentDelay)) return !0; this._reverse ? this.time = this.duration - (this.time - this._currentDelay) : this.time -= this._currentDelay, this.pending = !1 } var i = 0; (!this._reverse && this.time > this.duration || this._reverse && this.time < 0) && (this._count++, this.complete = !0, this.playing = !1, this._reverse ? (i = this.duration - this.time, this.time = 0) : (i = this.time - this.duration, this.time = this.duration)); var e, s, n = 0 === this.duration ? 1 : this.time / this.duration, r = this.easing(n); for (var h in this._properties) this._properties.hasOwnProperty(h) && (e = this._sv[h], s = this._ev[h], this.target[h] = e + (s - e) * r); if (this._slerp && this._quat.slerp(this._fromQuat, this._toQuat, r), this.entity && (this.entity._dirtifyLocal(), this.element && this.entity.element && (this.entity.element[this.element] = this.target), this._slerp && this.entity.setLocalRotation(this._quat)), this.fire("update", t), this.complete) { var a = this._repeat(i); return a ? this.fire("loop") : (this.fire("complete", i), this.entity && this.entity.off("destroy", this.stop, this), this._chained && this._chained.start()), a } return !0 }, _repeat: function (t) { if (this._count < this._numRepeats) { if (this._reverse ? this.time = this.duration - t : this.time = t, this.complete = !1, this.playing = !0, this._currentDelay = this._repeatDelay, this.pending = !0, this._yoyo) { for (var i in this._properties) { var e = this._sv[i]; this._sv[i] = this._ev[i], this._ev[i] = e } this._slerp && (this._quat.copy(this._fromQuat), this._fromQuat.copy(this._toQuat), this._toQuat.copy(this._quat)) } return !0 } return !1 } }; var BounceOut = function (t) { return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375 } , BounceIn = function (t) { return 1 - BounceOut(1 - t) }; return { TweenManager: TweenManager, Tween: Tween, Linear: function (t) { return t }, QuadraticIn: function (t) { return t * t }, QuadraticOut: function (t) { return t * (2 - t) }, QuadraticInOut: function (t) { return (t *= 2) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1) }, CubicIn: function (t) { return t * t * t }, CubicOut: function (t) { return --t * t * t + 1 }, CubicInOut: function (t) { return (t *= 2) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2) }, QuarticIn: function (t) { return t * t * t * t }, QuarticOut: function (t) { return 1 - --t * t * t * t }, QuarticInOut: function (t) { return (t *= 2) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2) }, QuinticIn: function (t) { return t * t * t * t * t }, QuinticOut: function (t) { return --t * t * t * t * t + 1 }, QuinticInOut: function (t) { return (t *= 2) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2) }, SineIn: function (t) { return 0 === t ? 0 : 1 === t ? 1 : 1 - Math.cos(t * Math.PI / 2) }, SineOut: function (t) { return 0 === t ? 0 : 1 === t ? 1 : Math.sin(t * Math.PI / 2) }, SineInOut: function (t) { return 0 === t ? 0 : 1 === t ? 1 : .5 * (1 - Math.cos(Math.PI * t)) }, ExponentialIn: function (t) { return 0 === t ? 0 : Math.pow(1024, t - 1) }, ExponentialOut: function (t) { return 1 === t ? 1 : 1 - Math.pow(2, -10 * t) }, ExponentialInOut: 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))) }, CircularIn: function (t) { return 1 - Math.sqrt(1 - t * t) }, CircularOut: function (t) { return Math.sqrt(1 - --t * t) }, CircularInOut: function (t) { return (t *= 2) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1) }, BackIn: function (t) { var i = 1.70158; return t * t * ((i + 1) * t - i) }, BackOut: function (t) { var i = 1.70158; return --t * t * ((i + 1) * t + i) + 1 }, BackInOut: function (t) { var i = 2.5949095; return (t *= 2) < 1 ? t * t * ((i + 1) * t - i) * .5 : .5 * ((t -= 2) * t * ((i + 1) * t + i) + 2) }, BounceIn: BounceIn, BounceOut: BounceOut, BounceInOut: function (t) { return t < .5 ? .5 * BounceIn(2 * t) : .5 * BounceOut(2 * t - 1) + .5 }, ElasticIn: function (t) { var i, e = .1; return 0 === t ? 0 : 1 === t ? 1 : (!e || e < 1 ? (e = 1, i = .1) : i = .4 * Math.asin(1 / e) / (2 * Math.PI), -e * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - i) * (2 * Math.PI) / .4)) }, ElasticOut: function (t) { var i, e = .1; return 0 === t ? 0 : 1 === t ? 1 : (!e || e < 1 ? (e = 1, i = .1) : i = .4 * Math.asin(1 / e) / (2 * Math.PI), e * Math.pow(2, -10 * t) * Math.sin((t - i) * (2 * Math.PI) / .4) + 1) }, ElasticInOut: function (t) { var i, e = .1, s = .4; return 0 === t ? 0 : 1 === t ? 1 : (!e || e < 1 ? (e = 1, i = .1) : i = s * Math.asin(1 / e) / (2 * Math.PI), (t *= 2) < 1 ? e * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - i) * (2 * Math.PI) / s) * -.5 : e * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - i) * (2 * Math.PI) / s) * .5 + 1) } } }()), function () { pc.AppBase.prototype.addTweenManager = function () { this._tweenManager = new pc.TweenManager(this), this.on("update", (function (t) { this._tweenManager.update(t) } )) } , pc.AppBase.prototype.tween = function (t) { return new pc.Tween(t, this._tweenManager) } , pc.Entity.prototype.tween = function (t, i) { var e = this._app.tween(t); return e.entity = this, this.once("destroy", e.stop, e), i && i.element && (e.element = i.element), e } ; var t = pc.AppBase.getApplication(); t && t.addTweenManager() }(); var Savefile = pc.createScript("savefile"); Savefile.resetOnLoad = 0, Savefile.nameFile = "SliceMasterCoolmath_Save", Savefile.autoSave = !1, Savefile.data = {}, Savefile.defData = {}, Savefile.addKey = function (e, a) { e = Savefile.nameFile + e, Savefile.data[e] = a, Savefile.defData[e] = a } , Savefile.reset = function () { for (var e in Savefile.data) Savefile.data[e] = Savefile.defData[e]; Savefile.autoSave && Savefile.save() } , Savefile.storeOb = null, Savefile.load = function () { if (Savefile.storeOb = store.get(Savefile.nameFile), Savefile.storeOb || (Savefile.storeOb = {}), Savefile.resetOnLoad) Savefile.reset(); else for (var e in Savefile.data) e in Savefile.storeOb ? Savefile.data[e] = Savefile.storeOb[e] : Savefile.data[e] = Savefile.defData[e] } , Savefile.save = function () { if (!Savefile.storeOb) return 1; for (var e in Savefile.data) Savefile.storeOb[e] = Savefile.data[e]; store.set(Savefile.nameFile, Savefile.storeOb) } , Savefile.get = function (e) { if ((e = Savefile.nameFile + e) in Savefile.data) return Savefile.data[e]; console.log("Savefile.get() - keyname doesn't exist: '" + e + "'") } , Savefile.set = function (e, a) { (e = Savefile.nameFile + e) in Savefile.data ? Savefile.data[e] = a : (Savefile.addKey(e, a), console.log("Savefile.set() - keyname doesn't exist, new keyname added '" + e + "'")), Savefile.autoSave && Savefile.cookieSave(Savefile.nameFile + e, a) } , Savefile.cookieSave = function (e, a) { Savefile.setCookie(e, a.toString(), 100) } , Savefile.cookieLoad = function (e, a) { var i = Savefile.getCookie(e); return i ? Number(i) : a } , Savefile.setCookie = function (e, a, i) { var t = ""; if (i) { var f = new Date; f.setTime(f.getTime() + 24 * i * 60 * 60 * 1e3), t = "; expires=" + f.toUTCString() } document.cookie = e + "=" + (a || "") + t + "; path=/" } , Savefile.getCookie = function (e) { for (var a = e + "=", i = document.cookie.split(";"), t = 0; t < i.length; t++) { for (var f = i[t]; " " == f.charAt(0);) f = f.substring(1, f.length); if (0 === f.indexOf(a)) return f.substring(a.length, f.length) } return null } , Savefile.eraseCookie = function (e) { document.cookie = e + "=; Max-Age=-99999999;" } ; var Blinker = pc.createScript("blinker"); Blinker.attributes.add("startOpacity", { type: "number", default: 0 }), Blinker.attributes.add("targetOpacity", { type: "number", default: 1 }), Blinker.attributes.add("blinkSpeed", { type: "number", default: 1 }), Blinker.attributes.add("delay", { type: "number", default: 0 }), Blinker.attributes.add("loop", { type: "boolean", default: !0 }), Blinker.attributes.add("delayOnMin", { type: "number", default: 0 }), Blinker.attributes.add("onEnable", { type: "boolean", default: !1 }), Blinker.prototype.initialize = function () { this.state = 1, this.opacityStart = this.startOpacity, this.opacity = this.startOpacity, this.entity.sprite && (this.entity.sprite.opacity = this.opacity), this.entity.element && (this.entity.element.opacity = this.opacity), this._delay = this.delayOnMin + this.delay, this.stopped = !1, this.onEnable && (this.onEnableCb(), this.on("enable", this.onEnableCb, this)) } , Blinker.prototype.onEnableCb = function () { this.state = 1, this.opacityStart = this.startOpacity, this.opacity = this.startOpacity, this.entity.sprite && (this.entity.sprite.opacity = this.opacity), this.entity.element && (this.entity.element.opacity = this.opacity), this._delay = this.delayOnMin + this.delay, this.stopped = !1 } , Blinker.prototype.update = function (t) { this.stopped || (this._delay > 0 ? this._delay -= t : (1 == this.state ? (this.opacity += t * this.blinkSpeed, this.opacity > this.targetOpacity && (this.opacity = this.targetOpacity, this.loop ? this.state = 2 : this.stopped = !0)) : 2 == this.state && (this.opacity -= t * this.blinkSpeed, this.opacity < this.startOpacity && (this.state = 1, this.opacity = this.startOpacity, this._delay = this.delayOnMin)), this.entity.sprite && (this.entity.sprite.opacity = this.opacity), this.entity.element && (this.entity.element.opacity = this.opacity))) } ; var FullscreenImage = pc.createScript("fullscreenImage"); FullscreenImage.attributes.add("stretch", { type: "boolean", default: !0 }), FullscreenImage.getScreenComponentIteration = 0, FullscreenImage.getScreenComponent = function (e) { return FullscreenImage.getScreenComponentIteration++, FullscreenImage.getScreenComponentIteration > 10 ? null : e.screen ? e.screen : FullscreenImage.getScreenComponent(e.parent) } , FullscreenImage.prototype.initialize = function () { this.nullRes = new pc.Vec2(this.entity.element.width, this.entity.element.height), FullscreenImage.getScreenComponentIteration = 0, this.screenComponent = FullscreenImage.getScreenComponent(this.entity), this.updateSize(), window.addEventListener("resize", this.updateSize.bind(this)) } , FullscreenImage.prototype.updateSize = function () { var e = this.screenComponent.referenceResolution , t = this.screenComponent.scaleBlend , n = window.innerWidth , i = window.innerHeight; this.stretch ? (this.entity.element.width = pc.math.lerp(e.x, n / i * e.y, t), this.entity.element.height = pc.math.lerp(e.x * i / n, e.y, t)) : n / i > this.nullRes.x / this.nullRes.y ? (this.entity.element.width = pc.math.lerp(e.x, n / i * e.y, t), this.entity.element.height = this.entity.element.width * this.nullRes.y / this.nullRes.x) : (this.entity.element.height = pc.math.lerp(e.x * i / n, e.y, t), this.entity.element.width = this.entity.element.height * this.nullRes.x / this.nullRes.y) } ; var Game = pc.createScript("game"); Game.tempPos = new pc.Vec3, Game.tempPos2 = new pc.Vec3, Game.instance = null, Game.attributes.add("_LEVEL_NUMBER", { type: "number", default: 0 }), Game.attributes.add("_BONUS_LEVEL", { type: "boolean", default: !1 }), Game.attributes.add("baseMatGrey", { type: "asset", assetType: "material" }), Game.attributes.add("innerMatGrey", { type: "asset", assetType: "material" }), Game.attributes.add("finish", { type: "entity" }), Game.attributes.add("innerMat", { type: "asset", assetType: "material", array: !0 }), Game.attributes.add("knives", { type: "entity", array: !0 }), Game.attributes.add("uiSplash", { type: "entity" }), Game.attributes.add("shop", { type: "entity" }), Game.attributes.add("mainMenu", { type: "entity" }), Game.attributes.add("interface", { type: "entity" }), Game.attributes.add("gameOver", { type: "entity" }), Game.attributes.add("uiFailed", { type: "entity" }), Game.attributes.add("uiCompleted", { type: "entity" }), Game.attributes.add("tutor3d", { type: "entity" }), Game.STATE_INTRO = 0, Game.STATE_PLAYING = 1, Game.STATE_GAMEOVER = 2, Game.STATE_LEVELCOMPLETED = 3, Game.prototype.getSkinPrice = function () { if (!ShopController.instance) return -1; var e = ShopController.instance.itemsAvailableCount(); if (e >= ShopController.shopItems.length) return -1; var t = 5e3 * Math.pow(1.6, e - 1); return t /= 500, t = 500 * Math.round(t) } , Game.prototype.showStreakText = function (e, t, a, n, s, i = 1) { var l = ObjectPool.pop("StreakText", this.canvas2); l.setLocalScale(0, 0, 0), this.canvas2.addChild(l), l.element.text = e, l.element.color = n, l.setPosition(0, a, 0), l.script.gameText.animate(2, i), l.enabled = !0 } , Game.prototype.showText = function (e, t, a, n, s, i = 1) { var l = ObjectPool.pop("MsgText", this.canvas2); return l.setLocalScale(0, 0, 0), this.canvas.addChild(l), l.element.text = e, l.element.color = n, l.setPosition(t, a, 0), l.script.gameText.animate(s, i), l.enabled = !0, l.script.gameText } , Game.lvlTextShown = !1, Game.prototype.showLvlText = function (e, t, a) { Game.lvlTextShown = !0, GameAudio.play("swoosh2"); var n = ObjectPool.pop("LevelText", this.canvas2); n.setLocalScale(1, 1, 1), this.canvas.addChild(n), n.element.text = e, n.setPosition(t, a, -3); var s = n.getLocalPosition(); return n.tween(s).to(new pc.Vec3(s.x, s.y + 2850, s.z), 2.6, pc.CubicOut).loop(!1).yoyo(!1).delay(2).start(), n.enabled = !0, n } , Game.prototype.initialize = function () { for (Game.instance = this, this.shopRewardCooldownCurr = 0, this.shopRewardCooldown = 300, this.hdEnabled = !1, this.slomo = 1, this.streak = 0, this.streakTimer = 0, pc.Application.getApplication().scene.layers.getLayerByName("UIWorld").clearDepthBuffer = !0, this.canvas = this.app.root.findByName("Canvas"), this.canvas2 = this.app.root.findByName("Canvas2"), this.whiteColor = (new pc.Color).fromString("#FFFFFF"), this.yellowColor = (new pc.Color).fromString("#FFF25E"), this.orangeColor = (new pc.Color).fromString("#FFA355"), this.greenColor = (new pc.Color).fromString("#89FF25"), this.blackColor = (new pc.Color).fromString("#000000"), Game.state = 0, this.controlsEnabled = !0, this.gotReviveChance = !1, this.grounds = [], this.lastPos = new pc.Vec3(0, 0, 0), this.levels = [], this.levelLengths = [], this.levelInfos = [], e = 0; e <= 80; e++) l = this.app.root.findByName("Level" + e.toString()), l ? (l.tags.add("level"), l.enabled = !1, this.levels.push(l)) : this.levels.push(null); this.levelCreationThresholdX = 180, this.levelCreationEnabled = !1, this.levelObjectsE = new pc.Entity, this.app.root.addChild(this.levelObjectsE), this.levelObjectsSliced = new pc.Entity, this.app.root.addChild(this.levelObjectsSliced), this.gameOverReason = "", this.bonusOperator = null, this.resultType = 0, this.gameOver.enabled = !1, this.uiFailed.enabled = !1, this.uiCompleted.enabled = !1, this.money = 0, this.envType = 1, this.envTypeSameCount = 0, Savefile.addKey("money", 0), Savefile.addKey("currLevel", 0), Savefile.addKey("firstLaunch", 1), Savefile.addKey("chosenSkinId", 0), Savefile.addKey("envType", 1), Savefile.addKey("envTypeSameCount", 0), ShopController.createSkins(); for (var e = 0; e < ShopController.shopItems.length; e++) Savefile.addKey("skin" + e.toString(), 0); Savefile.load(), this.money = Savefile.get("money"), this.currLevel = Savefile.get("currLevel"), this.firstLaunch = Savefile.get("firstLaunch"), this.chosenSkinId = Savefile.get("chosenSkinId"), this.envType = Savefile.get("envType"), this.envTypeSameCount = Savefile.get("envTypeSameCount"), this.money < 0 && (this.money = 5e4), this.lastCurrLevel = -1; for (e = 0; e < ShopController.shopItems.length; e++) { var t = Savefile.get("skin" + e.toString()); t = 0 !== t, 0 === e && (t = !0), ShopController.shopItems[e].unlocked = t } this.currScore = 0, this.score = 0, this.moneyEarned = 0, this.totalEarned = 0, this.bonusEarned = 0, this.firstJump = !0, this.addedLevelsCount = 0, this.bonusReady = !1, this.stepsToBonusLevel = 3, this.levelUpperPlank = 20, Input.mouseDis = !0, setTimeout((function () { FadeScreen.instance.show(.5, 3, !0, (function () { Game.instance.uiSplash.enabled = !1, Input.mouseDis = !1, 1 == Game.instance.currLevel && 0 == Game.levelDebug && (Game.instance.interface.enabled = !1, Game.instance.mainMenu.enabled = !1), Game.instance.shop.enabled = !1, Game.levelDebug ? Game.instance.prepareQuick(Game.instance._LEVEL_NUMBER, Game.instance._BONUS_LEVEL) : Game.instance.prepareLevel(!1), Game.instance.applyChosenSkin(), Environment.instance.switchTo(Game.instance.envType), Game.instance.restart() } )) } ), 100) } , Game.prototype.saveGame = function () { Savefile.set("firstLaunch", this.firstLaunch), Savefile.set("currLevel", this.currLevel), Savefile.set("chosenSkinId", this.chosenSkinId), Savefile.set("money", this.money), Savefile.set("envType", this.envType), Savefile.set("envTypeSameCount", this.envTypeSameCount); for (var e = 0; e < ShopController.shopItems.length; e++) ShopController.shopItems[e].unlocked ? Savefile.set("skin" + e.toString(), 1) : Savefile.set("skin" + e.toString(), 0); Savefile.save() } , Game.prototype.applyChosenSkin = function () { Knife.instance.trail1.flushTrail(), Knife.instance.trail2.flushTrail(); var e = EntityTools.enableSingleInArray(Game.instance.knives, Game.instance.chosenSkinId); e.setPosition(Knife.instance.entity.getPosition()), e.setLocalEulerAngles(Knife.instance.entity.getLocalEulerAngles()), CameraController.instance.target = e, Knife.instance = e.script.knife, Savefile.set("chosenSkinId", Game.instance.chosenSkinId), Savefile.save() } , Game.prototype.addMoney = function (e, t = !1) { this.moneyEarned += e, this.score += e, t || (this.money += e), UiInterface.instance && (UiInterface.instance.score.script.counterText.targetValue = this.score, UiInterface.instance.score.script.textScaler.start(!1)) } , Game.prototype.loadLevel = function () { if (this.flushLevel(), this.addedLevelsCount = 0, Game.bonusLevel) for (var e = 0; e < Game.bonusIds.length; e++) this.addLevel(Game.bonusIds[e]); else for (e = 0; e < Game.levelIds.length; e++) this.addLevel(Game.levelIds[e]); Game.bonusLevel && (this.bonusReady = !1); var t; Knife.instance.entity.getPosition(); this.finish.setPosition(this.lastPos.x + 5.5, 5, 0), this.finish.script.finishController.placeBlocks2(this.bonusReady); for (var a = 0; a < this.finish.children.length; a++) (t = this.finish.children[a]).script && t.script.collBox && t.script.collBox.init(); Polygon.initPolygonsOnEntity(this.finish, !0) } , Game.prototype.flushLevel = function () { var e; Knife.instance.unstuck(), this.lastPos.set(0, 0, 0), Polygon.polygons = []; for (var t = this.levelObjectsE.children.length - 1; t >= 0; t--) e = this.levelObjectsE.children[t], this.levelObjectsE.removeChild(e), e.destroy(); for (t = this.levelObjectsSliced.children.length - 1; t >= 0; t--) e = this.levelObjectsSliced.children[t], this.levelObjectsSliced.removeChild(e), e.destroy() } , Game.prototype.removeSpikesAround = function (e) { for (var t, a, n = this.levelObjectsE.children.length - 1; n >= 0; n--) if ((t = this.levelObjectsE.children[n]).enabled) for (var s = t.children.length - 1; s >= 0; s--) (a = t.children[s]).enabled && ("Molot" != a.name && "SpikeMoving" != a.name && "Spike" != a.name || a.getPosition().distance(e) < 8 && a.destroy()) } , Game.KNIFE_NOT_SET_POS_ON_RESTART = !1, Game.prototype.addLevel = function (e) { this.addIfLevelExists(e); var t = this.levels[e].clone() , a = t.findByName("Start") , n = a.getLocalPosition(); this.levelObjectsE.addChild(t), t.setPosition(this.lastPos.x - n.x, -n.y, 0), t.enabled = !0; var s = t.findByName("End") , i = s.getPosition(); t.removeChild(a), t.removeChild(s), this.lastPos.copy(i); var l, o = t.findByName("StartPoint"), r = o.getPosition(); if (t.removeChild(o), 0 == this.addedLevelsCount) Knife.instance.revive(), Game.KNIFE_NOT_SET_POS_ON_RESTART || (r ? (r.y += 1.35, r.z = 0, r.x -= .55, Knife.instance.entity.setPosition(r)) : Knife.instance.entity.setPosition(0, 3, 0)), Knife.instance.entity.setLocalEulerAngles(0, 0, 125), Knife.instance.stuck(), Game.KNIFE_NOT_SET_POS_ON_RESTART = !1; else for (var h, c, d = 0; d < t.children.length; d++) if ((h = t.children[d]).enabled && "Ground" == h.name) { var m = h.getPosition(); (c = m.y + h.getLocalScale().y / 2) > this.levelUpperPlank && (this.levelUpperPlank = c), Math.abs(m.x - r.x) < .8 && (h.enabled = !1) } this.addedLevelsCount++, r.y + 25 > this.levelUpperPlank && (this.levelUpperPlank = r.y + 25), 0 == this.currLevel && (this.levelUpperPlank = 15); for (d = 0; d < t.children.length; d++) if ((h = t.children[d]).enabled && !h.script) for (var p = h.children.length - 1; p >= 0; p--) EntityTools.reparent(h.children[p], t); for (d = 0; d < t.children.length; d++) (h = t.children[d]).script && h.script.collBox && h.script.collBox.init(), h.tags.has("deadzone") && (h.render.enabled = !1); for (d = 0; d < t.children.length; d++) { (h = t.children[d]).script && h.script.physScaler && h.script.physScaler.init(); for (p = 0; p < h.children.length; p++) (l = h.children[p]).script && l.script.sliceable && l.script.physScaler && l.script.physScaler.init() } for (d = 0; d < t.children.length; d++) (h = t.children[d]).script && h.script.stackCreator && h.script.stackCreator.init(); Polygon.initPolygonsOnEntity(t, !0) } , Game.prototype.kickSliceablesOnPos = function (e, t, a) { for (var n, s, i, l = 0; l < this.levelObjectsE.children.length; l++) { i = this.levelObjectsE.children[l]; for (var o = 0; o < i.children.length; o++) (n = i.children[o]).enabled && n.script && n.script.sliceable && (s = n.script.polygon, Math.abs(s.pos.x - e.x) < t && Math.abs(s.pos.y - e.y) < a && n.script.sliceable.kick(e)) } } , Game.prototype.revive = function () { this.gotReviveChance = !1, FadeScreen.instance.show(.5, .15, 1, (function () { Knife.instance.reviveAtLastStuckPos(), Game.state = Game.STATE_PLAYING, Game.instance.controlsEnabled = !0, Game.instance.interface.enabled = !0, Game.instance.uiFailed.enabled = !1, Game.instance.uiCompleted.enabled = !1, Game.instance.setupPlayingCamera(!0) } )) } , Game.prototype.onGameOver = function (e) { if (Game.state == Game.STATE_GAMEOVER) return 1; "spikes" != e && "ground" != e || GameAudio.play("knifefall"), Game.state = Game.STATE_GAMEOVER, this.controlsEnabled = !1, this.gameOverReason = e, Game.wasBonusLevel = !1, Game.bonusLevel && (Game.wasBonusLevel = !0, Game.bonusLevel = !1, this.currLevel++, this.prepareLevel(!1)), this.interface.enabled = !1; var t = CameraController.instance; t.distance = 12, t.pitch = -10, FadeScreen.instance.show(.3, 1, 0, (function () { Game.instance.currLevel > 0 ? (GameAudio.play("gameover"), Game.instance.uiFailed.enabled = !0) : Game.instance.restart() } )) } , Game.prototype.formNextLevel = function () { Environment.instance.switchType() } , Game.prototype.onGoBonusLevel = function () { } , Game.easyLevelIds = [8, 9, 43, 27, 28, 24, 25], Game.easyLevelIdsShuffled = [], Game.excludeLevelIds = [9, 43, 49, 24, 8], Game.bonusLevelIds = [71, 72, 73], Game.normalLevelIds = [5, 6], Game.highLevelIds = [42, 46, 50, 57, 58, 61, 62, 7], Game.levelIds = [], Game.levelIdsPrev = [], Game.bonusLevel = !1, Game.bonusIds = [], Game.levelIdsShuffled = [], Game.bonusLevelIdsShuffled = [], Game.highLevelIdsShuffled = [], Game.prepareLevels = function () { for (var e = 41; e <= 70; e++) Game.normalLevelIds.push(e); for (e = 0; e < Game.highLevelIds.length; e++) Game.normalLevelIds.splice(Game.normalLevelIds.indexOf(Game.highLevelIds[e]), 1); for (e = 0; e < Game.excludeLevelIds.length; e++) Game.normalLevelIds.indexOf(Game.excludeLevelIds[e]) >= 0 && Game.normalLevelIds.splice(Game.normalLevelIds.indexOf(Game.excludeLevelIds[e]), 1) } , Game.prepareLevels(), Game.prototype.prepareQuick = function (e, t) { Game.bonusLevel = t, Game.bonusLevel ? Game.bonusIds = [e] : (Game.levelIdsPrev = [...Game.levelIds], Game.levelIds = [e]) } , Game.prototype.prepareLevel = function (e) { Game.bonusLevel = e, Game.bonusLevel ? Game.bonusIds = [] : (Game.levelIdsPrev = [...Game.levelIds], Game.levelIds = []); var t, a = 1, n = !1, s = !1; if (0 == this.currLevel) return Game.levelIds.push(1), 0; this.currLevel <= 3 ? (n = !0, a = 1, s = !1) : (this.currLevel >= 8 && Math.random() > .8 && (a = 2), this.currLevel >= 4 && Math.random() > .8 && (s = !0)), e && (a = 1); for (var i = 0; i < a; i++) e ? (t = Game.bonusLevelIdsShuffled.pop()) || (Game.bonusLevelIdsShuffled = [...Game.bonusLevelIds], MathUtil.shuffleArray(Game.bonusLevelIdsShuffled), t = Game.bonusLevelIdsShuffled.pop(), Game.debugOutput && console.log("bonus levels shuffled: ", Game.bonusLevelIdsShuffled)) : 0 == i && s ? (t = Game.highLevelIdsShuffled.pop()) || (Game.highLevelIdsShuffled = [...Game.highLevelIds], MathUtil.shuffleArray(Game.highLevelIdsShuffled), t = Game.highLevelIdsShuffled.pop(), Game.debugOutput && console.log("high levels shuffled: ", Game.highLevelIdsShuffled)) : n ? (t = Game.easyLevelIdsShuffled.pop()) || (Game.easyLevelIdsShuffled = [...Game.easyLevelIds], MathUtil.shuffleArray(Game.easyLevelIdsShuffled), t = Game.easyLevelIdsShuffled.pop(), Game.debugOutput && console.log("easy levels shuffled: ", Game.easyLevelIdsShuffled)) : (t = Game.levelIdsShuffled.pop()) || (Game.levelIdsShuffled = [...Game.normalLevelIds], MathUtil.shuffleArray(Game.levelIdsShuffled), t = Game.levelIdsShuffled.pop(), Game.debugOutput && console.log("levels shuffled: ", Game.levelIdsShuffled)), e ? Game.bonusIds.push(t) : Game.levelIds.push(t); Game.debugOutput && (e ? console.log("level prepared: ", Game.bonusIds) : console.log("level prepared: ", Game.levelIds)) } , Game.goBonus = !1, Game.prototype.onLevelCompleted = function (e) { if (Game.state == Game.STATE_LEVELCOMPLETED) return 1; Game.state = Game.STATE_LEVELCOMPLETED, this.envTypeSameCount++, e || Game.bonusLevel || this.stepsToBonusLevel--, this.stepsToBonusLevel <= 0 && (this.bonusReady = !0, this.stepsToBonusLevel = 5), Game.goBonus = e, null != Game.instance.bonusOperator ? (Game.instance.bonusEarned = FinishController.instance.applyOperatorData(Game.instance.moneyEarned, Game.instance.bonusOperator), Game.instance.bonusOperator.operator == OperatorType.ADD || Game.instance.bonusOperator.operator == OperatorType.MULTIPLY ? this.resultType = 0 : Game.instance.bonusEarned < Game.instance.moneyEarned && (this.resultType = 1)) : (Game.instance.bonusEarned = this.moneyEarned, this.resultType = 2), Game.instance.bonusEarned = Math.max(0, Game.instance.bonusEarned), Game.instance.totalEarned = Game.instance.bonusEarned, Game.instance.interface.enabled = !1, this.controlsEnabled = !1; var t = CameraController.instance; t.camShift.set(.95, -.3, 0), t.distance = 12, t.pitch = 0, t.yaw = 1, t.lerpSpeed = 2, t.lerpAngle = .2, FinishController.instance.showFlag(), UiMainMenu.hideCap = !0, e ? FadeScreen.instance.show(.3, 2, 0, (function () { Game.levelDebug || Game.instance.prepareLevel(!0), Game.instance.restart() } )) : (this.currLevel++, Game.levelDebug || Game.instance.prepareLevel(!1), FadeScreen.instance.show(.3, 2, 0, (function () { Game.instance.uiCompleted.enabled = !0 } )), this.saveGame()) } , Game.prototype.setupPlayingCamera = function (e) { var t = Knife.instance.entity.getPosition() , a = CameraController.instance; a.camShift.set(1.2, -1, 0), a.distance = 15.3, a.pitch = -15, a.yaw = -35, a.yawCurr = -15, a.lerpSpeed = 1, a.lerpAngle = 1, e && (a.currPos.set(t.x - 5, t.y + 3, 10), a.entity.setLocalPosition(a.currPos)) } , Game.prototype.onJump = function () { Knife.instance.entity.getPosition(); (GameAudio.playEx("swoosh", 1 + pc.math.random(-.1, .1)), this.firstJump) && (Game.state = Game.STATE_PLAYING, this.firstJump = !1, Game.bonusLevel || (this.moneyEarned = 0, this.score = 0), this.setupPlayingCamera(!1), CameraController.instance.camShift.set(2.2, -1, 0), 0 == this.currLevel ? this.interface.enabled = !1 : this.interface.enabled = !0, this.mainMenu.enabled = !1) } , Game.prototype.onKnifeInGround = function () { CameraController.instance.lerpSpeed = 1, Game.state != Game.STATE_INTRO && GameAudio.playEx("woodhit", 1 + pc.math.random(.5, .6)) } , Game.prototype.onKnifeOutGround = function () { CameraController.instance.lerpSpeed = 4 } , Game.sliceSounds = { Wafer: "wafslice", WaferBig: "wafslice", Cube: "softhit", Tube: "metalhit", Tube2: "softhit", TubeVert: "metalhit", Plate: "ceramhit", Cup: "ceramhit", Coin: "coinhit", Gold: "coinhit", Diamond: "coinhit", Arbuz: "wethitbig", Lemon: "wethit", Apple: "wethit", Onion: "wethit", Coconut: "wethit" }, Game.prototype.onKnifeSlice = function (e) { this.streak++, this.streakTimer = .2; var t = Game.sliceSounds[e.entity.name]; t || (t = "slice2"), GameAudio.playEx(t, 1 + this.streak / 150 + pc.math.random(-.1, .1)) } , Game.prototype.updateStreak = function (e) { if (this.streakTimer > 0 && (this.streakTimer -= e, this.streakTimer <= 0)) { if (this.streak > 18) { var t, a = this.whiteColor; this.streak > 50 ? (a = this.yellowColor, t = MathUtil.choose("INCREDIBLE!", "TERRIFIC!", "FANTASTIC!")) : t = this.streak > 25 ? MathUtil.choose("AMAZING!", "AWESOME!", "WOW!") : MathUtil.choose("NICE!", "GREAT!", "EXCELLENT!"), Game.instance.showStreakText(t, 0, 1, a, 1, 1), GameAudio.play("streak") } this.streak = 0, this.streakTimer = 0 } } , Game.prototype.addIfLevelExists = function (e) { var t = this.levels[e]; return !!t || !!(t = this.app.root.findByName("Level" + e.toString())) && (t.tags.add("level"), t.enabled = !1, this.levels[e] = t, !0) } , Game.prototype.nextLevel = function (e) { var t = this._LEVEL_NUMBER; t += e, this.addIfLevelExists(t) && (this._LEVEL_NUMBER = t) } , Game.prototype.setResolution3 = function () { var e = window.innerWidth , t = window.innerHeight; e < 640 && (this.app.setCanvasResolution(pc.RESOLUTION_AUTO, e, t), this.app.setCanvasFillMode(pc.FILLMODE_FILL_WINDOW)) } , Game.prototype.setResolution = function () { var e = window.innerWidth , t = window.innerHeight; this.hdEnabled ? this.app.setCanvasResolution(pc.RESOLUTION_FIXED, e / t * 1080, 1080) : (this.app.setCanvasResolution(pc.RESOLUTION_AUTO, e, t), e < 640 && this.app.setCanvasFillMode(pc.FILLMODE_FILL_WINDOW)) } , Game.prototype.pause = function (e) { Game.instance.paused = e, Game.instance.app.systems.rigidbody.fixedTimeStep = e ? 0 : 1 / 60 } , Game.prototype.restart = function (e) { Knife.instance.trail1.flushTrail(), Knife.instance.trail2.flushTrail(), e && (UiMainMenu.hideCap = !0), Game.state = Game.STATE_INTRO, this.gotReviveChance = !0, this.pause(!1), this.streak = 0, this.streakTimer = 0, this.levelUpperPlank = 0, this.loadLevel(); var t = Knife.instance.entity.getPosition(); (this.setupPlayingCamera(!0), this.firstJump = !0, Game.bonusLevel ? (Environment.instance.setType(6), this.interface.enabled = !0, this.mainMenu.enabled = !1) : (this.currLevel != this.lastCurrLevel && (this.lastCurrLevel = this.currLevel, Sdkmanager.instance.launchSDKfunction(Sdkmanager.SDK_COOLMATH, "startLevel", Game.instance.currLevel)), this.moneyEarned = 0, this.score = 0, this.envTypeSameCount >= 4 ? (Environment.instance.switchType(), Game.instance.envType = Environment.instance.type, this.envTypeSameCount = 0) : Environment.instance.setType(Game.instance.envType), this.saveGame(), this.interface.enabled = !1, 0 == this.currLevel ? this.mainMenu.enabled = !1 : this.mainMenu.enabled = !0), e) ? UiMainMenu.hideCap && (this.levText && (this.levText.destroy(), this.levText = null), this.levText = this.showLvlText("LEVEL " + this.currLevel.toString(), t.x + 4.5, t.y + 1)) : CameraController.instance.camShift.y = .5; UiMainMenu.hideCap = !1, Environment.instance.createGrounds(), this.uiFailed.enabled = !1, this.uiCompleted.enabled = !1, this.controlsEnabled = !0 } , Game.noDebug = !0, Game.levelDebug = !1, Game.debugOutput = !1, Game.prototype.update = function (e) { if (window.scrollTo(0, 10), this.setResolution(), this.shopRewardCooldownCurr > 0 && (this.shopRewardCooldownCurr -= e), Game.state == Game.STATE_PLAYING) { this.updateStreak(e); var t = window.innerWidth , a = window.innerHeight; CameraController.instance.yaw = pc.math.lerp(-42, -16, pc.math.clamp((t - a) / a, 0, 1)) } Game.noDebug || (this.app.keyboard.wasPressed(pc.KEY_K), this.app.keyboard.wasPressed(pc.KEY_R) && FadeScreen.instance.show(.3, 0, 0, (function () { Game.instance.restart() } )), this.app.keyboard.wasPressed(pc.KEY_N) && FadeScreen.instance.show(.3, 0, 0, (function () { Game.instance.nextLevel(1), Game.instance.prepareQuick(Game.instance._LEVEL_NUMBER, Game.instance._BONUS_LEVEL), Game.instance.restart() } )), this.app.keyboard.wasPressed(pc.KEY_P) && FadeScreen.instance.show(.3, 0, 0, (function () { Game.instance.nextLevel(-1), Game.instance.prepareQuick(Game.instance._LEVEL_NUMBER, Game.instance._BONUS_LEVEL), Game.instance.restart() } )), this.app.keyboard.wasPressed(pc.KEY_T) && (Game.KNIFE_NOT_SET_POS_ON_RESTART = !0, FadeScreen.instance.show(.3, 0, 0, (function () { Game.instance.restart() } ))), this.app.keyboard.wasPressed(pc.KEY_S) && Game.instance.showStreakText("AMAZING!", 0, 1, null, 1, 1)) } ; var Gui = pc.createScript("gui"); Gui.instance = null, Gui.pages = [], Gui.prototype.initialize = function () { } , Gui.prototype.update = function (e) { } , Gui.find = function (e) { for (var a, n = Gui.pages.length, t = 0; t < n; t++) if ((a = Gui.pages[t]).entity.name == e) return a } , Gui.open = function (e) { for (var a, n = Gui.pages.length, t = 0; t < n; t++) (a = Gui.pages[t]).entity.name == e && (a.enabled = !0) } , Gui.close = function (e) { for (var a, n = Gui.pages.length, t = 0; t < n; t++) (a = Gui.pages[t]).entity.name == e && (a.enabled = !1) } , Gui.buttonAction = function (e, a) { switch (e) { case "unlockRandomSkin": var n = Game.instance.getSkinPrice(); if (n > Game.instance.money) return 1; Game.instance.money -= n, ShopController.instance.unlockRandomSkin(), MoneyForAdbutton.instance.reconfigure(); break; case "ShopMoneyForReward": Sdkmanager.instance.showAd([Sdkmanager.SDK_TESTING, Sdkmanager.SDK_COOLMATH], Sdkmanager.AD_REWARDED, (() => { FadeScreen.instance.show(.4, 0, !0, (function () { Game.instance.shopRewardCooldownCurr = Game.instance.shopRewardCooldown, Game.instance.addMoney(MoneyForAdbutton.instance.count), Game.instance.saveGame() } )) } )); break; case "ClaimScore": Game.instance.addMoney(Game.instance.totalEarned), Game.instance.saveGame(), FadeScreen.instance.show(.3, 0, 0, (function () { Game.instance.restart(!0) } )); break; case "Claimx3ScoreForReward": Sdkmanager.instance.showAd([Sdkmanager.SDK_TESTING, Sdkmanager.SDK_COOLMATH], Sdkmanager.AD_REWARDED, (() => { Game.instance.addMoney(3 * Game.instance.totalEarned), Game.instance.saveGame(), FadeScreen.instance.show(.3, 0, 0, (function () { Game.instance.restart(!0) } )) } )); break; case "YesReviveForReward": Sdkmanager.instance.showAd([Sdkmanager.SDK_TESTING, Sdkmanager.SDK_COOLMATH], Sdkmanager.AD_REWARDED, (() => { Game.instance.revive() } )); break; case "NoReviveForReward": UiFailed.instance.onEnableCb(!0); break; case "contactbh5": window.open("mailto:contact@buyhtml5.com?subject='Slice Master' Licensing"); break; case "failRestart": Sdkmanager.instance.launchSDKfunction(Sdkmanager.SDK_COOLMATH, "replayLevel", Game.instance.currLevel), FadeScreen.instance.show(.3, 0, 0, (function () { Game.instance.addMoney(Game.instance.moneyEarned), Game.bonusLevel && (Game.bonusLevel = !1), Game.instance.restart() } )); break; case "openSettingsCompl": MyButton.setClickable(Game.instance.uiFailed, !1), MyButton.setClickable(Game.instance.uiCompleted, !1), MyButton.setClickable(Game.instance.mainMenu, !1), Uipopup.open("Settings", !0); break; case "shopClose": if (ShopController.instance.unlocking) return 1; setTimeout((function () { Game.instance.controlsEnabled = !0 } ), 500), FadeScreen.instance.show(.3, 0, 0, (function () { Game.instance.shop.enabled = !1, Game.instance.mainMenu.enabled = !0, Game.instance.applyChosenSkin() } )); break; case "circleShopBut": s = a.shopItem, s.unlocked && (Game.instance.chosenSkinId = s.itemId), ShopController.instance.updateSkinButtons(), Game.instance.saveGame(); break; case "buyBut": s = a.shopItem, Game.instance.addStars(-s.price) && (FadeScreen.instance.show(.3, 0, 1, null), GameAudio.play("buy"), s.unlocked = !0, Game.instance.chosenSkinId = s.itemId, ShopController.instance.updateSkinButtons(), Game.instance.saveGame()); break; case "shopOpen": Game.instance.controlsEnabled = !1, FadeScreen.instance.show(.3, 0, 0, (function () { Game.instance.shop.enabled = !0, Game.instance.mainMenu.enabled = !1 } )); break; case "restartGame": Game.instance.interface.enabled = !0, Game.bonusLevel = !1, Sdkmanager.instance.launchSDKfunction(Sdkmanager.SDK_COOLMATH, "replayLevel", Game.instance.currLevel), setTimeout((function () { if (Uipopup.isShown("Pause")) return 1; Game.instance.pause(!1) } ), 600), Uipopup.close("Pause"), FadeScreen.instance.show(.5, 0, 0, (function () { Game.instance.restart() } )); break; case "startGame": FadeScreen.instance.show(.3, 0, 0, (function () { Game.instance.tutor3d.enabled = !0, MyButton.setClickable(Game.instance.interface, !0), Game.instance.interface.enabled = !0, Game.instance.mainMenu.enabled = !1, Game.instance.gameOver.enabled = !1, Game.instance.start() } )); break; case "pause": MyButton.setClickable(Game.instance.interface, !1), Game.instance.paused = !0, Uipopup.open("Pause", !0); break; case "resume": setTimeout((function () { Uipopup.getState("Pause") == Uipopup.STATE_CLOSED && (Game.instance.paused = !1, MyButton.setClickable(Game.instance.interface, !0)) } ), 750), Uipopup.close("Pause"); break; case "pRestart": Uipopup.close("Pause"), Game.instance.paused = !1, FadeScreen.instance.show(.5, .1, !1, (function () { Game.instance.restart(!1), Game.instance.uiMainMenu.enabled = !1, MyButton.setClickable(Game.instance.interface, !0) } )); break; case "pHome": Uipopup.close("Pause"), Game.instance.paused = !1, Game.instance.save(), FadeScreen.instance.show(.5, .1, !1, (function () { Game.instance.uiMainMenu.enabled = !0, MyButton.setClickable(Game.instance.interface, !0) } )); break; case "pauseHome": Uipopup.close("Pause"), setTimeout((function () { Game.instance.paused = !1 } ), 600), FadeScreen.instance.show(.5, 0, 0, (function () { Game.instance.paused = !1, Game.instance.mainMenu.enabled = !0, Game.instance.interface.enabled = !1, Game.instance.gameField.enabled = !1, Game.instance.state = Game.STATE_INTRO, Game.instance.reset(!1), Game.instance.gameOver.enabled = !1 } )); break; case "resumeGame": Game.instance.interface.enabled = !0, setTimeout((function () { Game.instance.pause(!1) } ), 400), Uipopup.close("Pause"); break; case "pauseGame": Game.instance.interface.enabled = !1, Uipopup.open("Pause", !0), Game.instance.pause(!0); break; case "openTutor": MyButton.setClickable(Game.instance.gameOver, !1), MyButton.setClickable(Game.instance.mainMenu, !1), Uipopup.open("Tutorial", !0); break; case "closeTutor": MyButton.setClickable(Game.instance.gameOver, !0), MyButton.setClickable(Game.instance.mainMenu, !0), Game.instance.state == Game.STATE_PLAYING ? Uipopup.open("Pause", !0) : Uipopup.open("Settings", !0); break; case "openSettings": Game.instance.controlsEnabled = !1, MyButton.setClickable(Game.instance.gameOver, !1), MyButton.setClickable(Game.instance.mainMenu, !1), Uipopup.open("Settings", !0); break; case "closeSettings": MyButton.setClickable(Game.instance.gameOver, !0), MyButton.setClickable(Game.instance.mainMenu, !0), Uipopup.close("Settings"), MyButton.setClickable(Game.instance.uiFailed, !0), MyButton.setClickable(Game.instance.uiCompleted, !0), setTimeout((function () { Game.instance.mainMenu.enabled && (Game.instance.controlsEnabled = !0) } ), 500); break; case "pauseContinue": MyButton.setClickable(Game.instance.uiInterface, !0), Uipopup.close("pause"); break; case "pauseRestart": Uipopup.close("pause"), FadeScreen.instance.show(.5, 0, 0, (function () { } )); break; case "continueScoreButton": FadeScreen.instance.show(.5, 0, 0, (function () { Game.instance.gameOver.enabled = !1, Game.instance.mainMenu.enabled = !0 } )); break; case "levelCompletedClaim": MyButton.setClickable(Game.instance.uiInterface, !0), MyButton.setClickable(Game.instance.Screen3D, !0), Game.instance.controlsEnabled = !0, Game.instance.prepareLevel(Game.instance.levelCurr + 1, 0), Game.instance.uiLevelCompleted.script.uiLevelCompleted.claim(); for (var t = 0; t < 20; t++) StarEffect.create(1); break; case "gameOverContinue": FadeScreen.instance.show(.5, 0, 0, (function () { Game.instance.gotoMainMenu() } )); break; case "soundButton": GameAudio.switch(!GameAudio.mute); break; case "musicButton": GameAudio.switchMusic(!GameAudio.muteMus) } } ; var CollBox = pc.createScript("collBox"); CollBox.prototype.init = function () { var t = this.entity.getLocalScale().clone(); t.mulScalar(.5), t.x < 0 && (t.x = -t.x), t.y < 0 && (t.y = -t.y), t.z < 0 && (t.z = -t.z), this.entity.collision.halfExtents = t } , CollBox.prototype.update = function (t) { } ; var Knife = pc.createScript("knife"); function trace(t) { Game.debugOutput && console.log(t) } Knife.tempVec = new pc.Vec3, Knife.tempVec2 = new pc.Vec3, Knife.instance = null, Knife.prototype.initialize = function () { Knife.instance = this, this.jumpCd = 0, this.rb = this.entity.rigidbody, this.blade = this.entity.findByName("Blade"), this.body = this.entity.findByName("Body"), this.trail1 = this.entity.findByName("Trail1").script.trail, this.trail2 = this.entity.findByName("Trail2").script.trail, this.blade.render.enabled = this.body.render.enabled = !1, this.bladeC = this.blade.script.polygon, this.bodyC = this.body.script.polygon, this.rb.linearVelocity = pc.Vec3.ZERO, this.rb.angularVelocity = pc.Vec3.ZERO, this.bladeC.init(), this.bodyC.init(), this.fullModel = this.entity.findByName("FullModel"), this.physModel = this.entity.findByName("PhysModel"), this.startPos = this.physModel.getLocalPosition().clone(), this.blinker = this.fullModel.script.materialBlinker, this.state = 0, this.sliceCd = 0, this.vel = new pc.Vec3, this.rotVel = 0, this.stuck(), this.dampCd = .5, this.stuckCd = .01, this.bounceCd = .1, this.ground = null, this.groundStartPos = new pc.Vec3, this.groundKnifePosStart = new pc.Vec3, this.dead = !1, this.blade.on("polygon:collision", this.onBladeTriggerEnter, this), this.body.on("polygon:collision", this.onBodyTriggerEnter, this), this.lastStuckPos || (this.lastStuckPos = new pc.Vec3, this.lastStuckAngles = new pc.Vec3(0, 0, 0)) } , Knife.prototype.reviveAtLastStuckPos = function () { this.revive(), this.rb.enabled = !1, this.entity.setLocalPosition(this.lastStuckPos), this.entity.setLocalEulerAngles(this.lastStuckAngles), Game.instance.removeSpikesAround(this.entity.getPosition()), this.stuck(), this.blinker.start(3, 3) } , Knife.prototype.revive = function () { this.dead = !1, this.physModel.rigidbody.enabled = !1, Game.KNIFE_NOT_SET_POS_ON_RESTART || this.physModel.setLocalPosition(this.startPos), this.physModel.setLocalEulerAngles(0, 0, 0) } , Knife.prototype.kill = function (t) { if (this.dead) return 1; this.dead = !0, this.blinker.start(5, 1), "falled" == t && GameAudio.play("deadfromfalling"), Game.instance.onGameOver(t), this.physModel.rigidbody.enabled = !0, this.physModel.rigidbody.linearVelocity = this.vel, this.physModel.rigidbody.angularVelocity = new pc.Vec3(0, 0, this.rotVel / 180 * 3.14), this.physModel.rigidbody.applyImpulse(0, 5, 0), this.physModel.rigidbody.applyTorque(1, 1, 1) } , Knife.prototype.unstuck = function () { this.ground && (this.ground = null), this.state = 1, this.body.rigidbody.enabled = !1 } , Knife.prototype.checkGroundCol = function () { if (!this.dead) { Environment.instance && 6 == Environment.instance.type && 0, (this.bladeC.checkIfUnderLine(-1) || this.bodyC.checkIfUnderLine(-1)) && this.kill("ground") } } , Knife.prototype.stuck = function () { this.vel.set(0, 0, 0), this.rotVel = 0, this.state = 0, Game.instance.onKnifeInGround(), this.body.rigidbody.enabled = !1, this.lastStuckPos || (this.lastStuckPos = new pc.Vec3, this.lastStuckAngles = new pc.Vec3(0, 0, 0)), this.lastStuckPos.copy(this.entity.getLocalPosition()), this.lastStuckAngles.copy(this.entity.getLocalEulerAngles()) } , Knife.ROT_VEL_MAX = 560, Knife.prototype.normalPhys = function () { this.state = 2, this.rb.type = "dynamic", Knife.tempVec.set(0, 0, this.rotVel), this.rb.angularVelocity = Knife.tempVec, this.rb.linearVelocity = this.vel } , Knife.prototype.onBodyTriggerEnter = function (t) { var e = t.entity.tags.has("sliceable") , i = e ? t.entity.script.sliceable : null; if (!this.dead && t.entity.tags.has("deadzone")) return this.kill("falled"), 1; if (t.findContact(this.bodyC), Knife.tempVec.copy(Polygon.contactNormal), !this.dead && t.entity.tags.has("spike")) { for (var s = 0; s < 8; s++) EffectDrop.create(this.entity.getPosition(), pc.math.random(.3, .5), new pc.Vec3(pc.math.random(-7, 7), pc.math.random(4, 7), pc.math.random(-4, 4)), 2, Game.instance.whiteColor); return this.kill("spikes"), 1 } if (!e && 1 == this.state) { var n = this.vel.dot(Knife.tempVec); Knife.tempVec2.copy(Knife.tempVec), Knife.tempVec.mulScalar(Polygon.contactDepth + .05), this.entity.translate(Knife.tempVec), Knife.tempVec2.mulScalar(2 * n), this.vel.y = 0, this.vel.x = 0, this.blinker.start(5, 1), this.rotVel *= .5, this.rotVel < 0 && this.rotVel > -250 && (this.rotVel = -250), this.rotVel > 0 && this.rotVel < 250 && (this.rotVel = 250) } if (this.bounceCd <= 0 && 1 == this.state && Polygon.contactNormal.x < 0 && (Knife.tempVec.set(-1, 1, 0), Knife.tempVec.mulScalar(12), this.vel.add(Knife.tempVec), this.vel.mulScalar(.5), GameAudio.playEx("bounce", 1)), e && i.kickCd <= 0 && !t.static) { Knife.tempVec.copy(Polygon.contactNormal), Knife.tempVec.mulScalar(.5 * -Polygon.contactDepth), Knife.tempVec.add(t.entity.getPosition()), i.kickCd = .1; var o = t.entity.rigidbody; o && 1 == this.state && (t.pos.x > this.bladeC.pos.x ? o.applyImpulse(.5 * -this.vel.x, .5 * -this.vel.y, 0) : o.applyImpulse(.1 * -this.vel.x, .1 * -this.vel.y, 0)) } 1 == this.state ? this.bounceCd = .05 : 0 != this.state || e || (this.bounceCd = .05, Knife.tempVec.copy(Polygon.contactNormal), Knife.tempVec.mulScalar(Polygon.contactDepth + .05), this.entity.translate(Knife.tempVec), this.vel.y = 5 * Polygon.contactNormal.y, this.vel.x = 5 * Polygon.contactNormal.x, this.unstuck(), this.state = 1, this.stuckCd = .4) } , Knife.prototype.onBladeTriggerEnter = function (t) { var e = t.entity; if (e.tags.has("ground") && 1 == this.state) { if (t.findContact(this.bladeC), Knife.tempVec.copy(Polygon.contactNormal), Knife.tempVec.mulScalar(.5 * Polygon.contactDepth - .05), this.entity.translate(Knife.tempVec), this.stuck(), "kinematic" == e.rigidbody.type && (this.groundStartPos.copy(t.pos), this.groundKnifePosStart.copy(this.entity.getPosition()), this.ground = t), e.tags.has("finish")) { Game.instance.bonusOperator = FinishController.instance.getBlockOperator(e); var i = FinishController.instance.getBlockData(e) , s = !1; Game.instance.bonusOperator ? 50 == i.count && Game.instance.bonusReady ? (GameAudio.play("bonushit"), s = !0) : GameAudio.play("xhit") : GameAudio.play("finishhit"), Game.instance.onLevelCompleted(s); var n = e.script.materialBlinker; n && n.start(3.5, 5) } return 0 } if (e.tags.has("sliceable")) { var o = e.script.sliceable; Game.instance.onKnifeSlice(o); var a = 0; o.complexSlice && (a = (this.bladeC.pos.z - t.pos.z) / t.zSize + .5), o.slice(a), this.sliceCd = .1, this.vel.x > 0 && (this.vel.x -= .5, this.vel.x < 0 && (this.vel.x = 0)) } if (e.tags.has("spike")) { for (var l = 0; l < 8; l++) EffectDrop.create(this.entity.getPosition(), pc.math.random(.3, .5), new pc.Vec3(pc.math.random(-7, 7), pc.math.random(4, 7), pc.math.random(-4, 4)), 2, Game.instance.whiteColor); this.kill("spikes") } } , Knife.prototype.update = function (t) { if (this.dead) return 1; if (Game.instance.paused) return 1; var e = Input.mouseY / window.innerHeight; if (this.jumpCd > 0) this.jumpCd -= t; else if (Game.instance.controlsEnabled && (Input.mousePressed && e > .1 && Game.state == Game.STATE_PLAYING || Input.mousePressed && e > .1 && Input.mouseX > 140 && Game.state == Game.STATE_INTRO || this.app.keyboard.wasPressed(pc.KEY_SPACE) && (Game.state == Game.STATE_INTRO || Game.state == Game.STATE_PLAYING))) { this.jumpCd = .15, Game.instance.onJump(), this.rotVel -= Knife.ROT_VEL_MAX; var i = new pc.Vec3(4.2, 11.7, 0); this.bodyC.pos.y > Game.instance.levelUpperPlank && (i.y = 1), this.vel.copy(i), this.vel.x < i.x && (this.vel.x = i.x), this.vel.y < i.y && (this.vel.y = i.y), this.dampCd = .45, 0 == this.state ? this.stuckCd = .4 : this.stuckCd = .15, this.bounceCd = 0, this.unstuck(), Game.instance.onKnifeOutGround() } this.stuckCd > 0 && (this.stuckCd -= t), this.bounceCd > 0 && (this.bounceCd -= t), this.dampCd > 0 && (this.dampCd -= t), this.sliceCd > 0 && (this.sliceCd -= t), this.vel.x *= 1 - t / 10, this.vel.y *= 1 - t / 2, this.vel.z *= 1 - t / 2; Game.instance.grounds.length; 0 == this.state && this.ground && (Knife.tempVec.copy(this.ground.pos), Knife.tempVec.sub(this.groundStartPos), Knife.tempVec.add(this.groundKnifePosStart), this.entity.setPosition(Knife.tempVec.x, Knife.tempVec.y, 0), this.bodyC.updatePoints(), this.bladeC.updatePoints()); for (var s = .2 * t, n = 0; n < 5; n++) { if (1 == this.state) { Knife.tempVec2.set(0, -23 * s, 0), this.vel.add(Knife.tempVec2); var o = this.entity.getEulerAngles() , a = Math.abs(MathUtil.angleDifference(o.z, 180)) , l = 1 - a / 40; this.rotVel < -Knife.ROT_VEL_MAX && (this.rotVel = -Knife.ROT_VEL_MAX), this.vel.y > 28 && (this.vel.y = 28), this.vel.y < -25 && (this.vel.y = -25), this.vel.x > 4.2 && (this.vel.x = 4.2), l < 0 ? this.rotVel = pc.math.lerp(this.rotVel, -Knife.ROT_VEL_MAX, 10 * s) : this.dampCd <= 0 && (this.rotVel = pc.math.lerp(this.rotVel, -85, 17 * s)), this.dampCd <= 0 && this.sliceCd > 0 && o.z + 180 > 300 && a < 60 && (o.z += MathUtil.angleDifference(o.z, 170) * s * 11, this.entity.setEulerAngles(o)), this.entity.rotate(0, 0, this.rotVel * s) } Knife.tempVec.copy(this.vel), Knife.tempVec.mulScalar(s), Knife.tempVec.add(this.entity.getPosition()), Knife.tempVec.y > Game.instance.levelUpperPlank && (Knife.tempVec.y = pc.math.lerp(Knife.tempVec.y, Game.instance.levelUpperPlank, .25)), this.entity.setPosition(Knife.tempVec), this.bodyC.updatePoints(), this.bladeC.updatePoints(), this.bounceCd <= 0 && this.bodyC.checkAllCollisions(0), 0 != this.state && this.stuckCd <= 0 && this.bladeC.checkAllCollisions(0), this.bodyC.checkAllCollisions(2), this.bladeC.checkAllCollisions(2) } Game.state == Game.STATE_PLAYING && 1 == this.state && (Math.abs(this.bodyC.pos.y - Game.instance.levelUpperPlank) > 3 ? UiInterface.instance.highFlyTime = 0 : UiInterface.instance.highFlyTime += t, this.bodyC.pos.y > Game.instance.levelUpperPlank && this.vel.y > 0 && (this.vel.y = pc.math.lerp(this.vel.y, 0, 10 * t)), this.checkGroundCol()) } ; var CameraController = pc.createScript("cameraController"); CameraController.instance = null, CameraController.attributes.add("target", { type: "entity" }), CameraController.attributes.add("camShift", { type: "vec3", default: [0, 0, 0] }), CameraController.attributes.add("distance", { type: "number", default: 10 }), CameraController.attributes.add("yaw", { type: "number", default: 10 }), CameraController.attributes.add("pitch", { type: "number", default: 10 }), CameraController.attributes.add("lerpSpeed", { type: "number", default: 10 }), CameraController.attributes.add("lerpAngle", { type: "number", default: 3 }), CameraController.tempVec3 = new pc.Vec3(0, 0, 0), CameraController.instance = null, CameraController.prototype.setupCurr = function () { this.pitchCurr = this.pitch, this.yawCurr = this.yaw, this.distanceCurr = this.distance, this.entity.setLocalEulerAngles(this.pitchCurr, this.yawCurr, 0) } , CameraController.prototype.initialize = function () { null == CameraController.instance && (CameraController.instance = this), this.pitchCurr = this.pitch, this.yawCurr = this.yaw, this.distanceCurr = this.distance, this.targetPos = new pc.Vec3(0, 0, 0), this.currPos = this.entity.getPosition().clone(), this.entity.setLocalEulerAngles(this.pitchCurr, this.yawCurr, 0) } , CameraController.prototype.update = function (t) { if (Game.instance.paused) return 1; t > .05 && (t = .05), this.target && (this.targetPos.copy(this.target.getPosition()), this.targetPos.add(this.camShift)), this.currPos.copy(this.entity.getLocalPosition()); var e = this.entity.getLocalEulerAngles(); this.pitchCurr = pc.math.lerp(e.x, this.pitch, t * this.lerpAngle / 1), this.yawCurr = pc.math.lerp(e.y, this.yaw, t * this.lerpAngle / 1), this.distanceCurr = pc.math.lerp(this.distanceCurr, this.distance, t * this.lerpAngle), this.entity.setLocalEulerAngles(this.pitchCurr, this.yawCurr, 0); var r = CameraController.tempVec3; r.copy(this.entity.forward), r.scale(-this.distanceCurr), this.target && r.add(this.targetPos), this.currPos.lerp(this.currPos, r, t * this.lerpSpeed), this.entity.setLocalPosition(this.currPos) } ; var Blade = pc.createScript("blade"); Blade.prototype.initialize = function () { this.inGround = !1 } , Blade.prototype.onTriggerEnter = function (t) { t.tags.has("ground") && (console.log(t.name), this.knife && this.knife.stuck(), this.inGround = !0) } , Blade.prototype.update = function (t) { } ; var Polygon = pc.createScript("polygon"); Polygon.attributes.add("points", { type: "entity", title: "points", array: !0 }), Polygon.attributes.add("static", { type: "boolean", default: !0 }), Polygon.attributes.add("colGroup", { type: "number", default: 0 }), Polygon.attributes.add("isCircle", { type: "boolean", default: !1 }), Polygon.attributes.add("radius", { type: "number", default: -1 }), Polygon.attributes.add("polyFromCollisionBox", { type: "boolean", default: !1 }), Polygon.HASHMAP_SIZE = 15, Polygon.TYPE_POLY = 0, Polygon.TYPE_CIRC = 1, Polygon.contactNormal = new pc.Vec3(0, 0, 0), Polygon.contactDepth = 0, Polygon.polygons = [], Polygon.prototype.initialize = function () { } , Polygon.DRAW_DOTS = !1, Polygon.initPolygonsOnEntity = function (o, t) { var i; if ((o.script && o.script.polygon && o.script.polygon.init(), t) && o.children) for (var n = 0; n < o.children.length; n++) i = o.children[n], Polygon.initPolygonsOnEntity(i, t) } , Polygon.prototype.getChildLocalPosition = function (o, t) { var i = o.getPosition().clone(); if (null !== t) { var n = t.getWorldTransform().clone(); n.invert(), i.sub(t.getPosition()), n.transformPoint(i, i) } return i } , Polygon.prototype.init = function () { if (this.initialized = !0, this.zSize = 0, this.pos = this.entity.getPosition(), this.pps = [], this.ns = [], this.lps = [], this.xid = 0, this.yid = 0, this.updateHashId(), this.isCircle) { if (this.type = Polygon.TYPE_CIRC, this.points.length > 0) { var o = this.points[0].getPosition(); Polygon.tempVec.copy(this.entity.getPosition()), Polygon.tempVec.sub(o), this.radius = Polygon.tempVec.length() } } else if (this.type = Polygon.TYPE_POLY, 0 == this.points.length) if (this.polyFromCollisionBox) { var t = this.entity.collision.halfExtents.clone() , i = this.entity.collision , n = this.entity.getLocalScale(); t.x *= 1 / n.x, t.y *= 1 / n.y; var s = 1 / n.x; "cylinder" == i.type ? (this.addLocalPoint(-i.radius * s, .5 * i.height / n.y), this.addLocalPoint(i.radius * s, .5 * i.height / n.y), this.addLocalPoint(i.radius * s, .5 * -i.height / n.y), this.addLocalPoint(-i.radius * s, .5 * -i.height / n.y)) : (this.entity.script && this.entity.script.sliceable && this.entity.script.sliceable.complexSlice && (this.zSize = 2 * t.z), this.addLocalPoint(-t.x, t.y), this.addLocalPoint(t.x, t.y), this.addLocalPoint(t.x, -t.y), this.addLocalPoint(-t.x, -t.y)) } else { n = this.entity.getLocalScale(); this.addLocalPoint(-.5, .5), this.addLocalPoint(.5, .5), this.addLocalPoint(.5, -.5), this.addLocalPoint(-.5, -.5) } for (var e, l = 0; l < this.points.length; l++) e = this.points[l].getLocalPosition().clone(), this.lps.push(e), this.addPointData2(e), this.points[l].destroy(); this.updatePoints(), this.updateNormals(), this.boundRadius = 0, this.updateBoundRadius(), Polygon.polygons.push(this) } , Polygon.prototype.updateBoundRadius = function () { if (this.type == Polygon.TYPE_CIRC) return this.boundRadius = this.radius, 0; for (var o, t, i, n = 0; n < this.pps.length; n++) o = this.pps[n], Polygon.tempVec.copy(this.pos), Polygon.tempVec.sub(o), ((i = Polygon.tempVec.lengthSq()) > t || null == t) && (t = i); this.boundRadius = Math.sqrt(t) } , Polygon.prototype.update = function (o) { this.pos = this.entity.getPosition(), this.initialized && (this.static || (this.updatePoints(), this.updateHashId(), this.updateBoundRadius())) } , Polygon.prototype.checkAllCollisions = function (o) { for (var t, i, n = 0; n < Polygon.polygons.length; n++) if ((t = Polygon.polygons[n]) && t.enabled && t.entity.enabled && t != this && t.colGroup == o && !(t.xid > this.xid + 1 || t.xid < this.xid - 1 || t.yid > this.yid + 1 || t.yid < this.yid - 1)) { if (t.zSize <= 0) { if (Math.abs(this.pos.z - t.pos.z) >= .4) continue } else if (this.pos.z < t.pos.z - .5 * t.zSize || this.pos.z > t.pos.z + .5 * t.zSize) continue; i = (this.boundRadius + t.boundRadius) * (this.boundRadius + t.boundRadius), Polygon.tempVec.copy(t.pos), Polygon.tempVec.sub(this.pos), Polygon.tempVec.lengthSq() >= i || (this.checkCollision(t) && (this.entity.fire("polygon:collision", t))) } } , Polygon.prototype.updateHashId = function () { this.xid = Math.floor(this.pos.x / Polygon.HASHMAP_SIZE), this.yid = Math.floor(this.pos.y / Polygon.HASHMAP_SIZE) } , Polygon.prototype.updatePoints = function () { for (var o = this.entity.getWorldTransform(), t = 0; t < this.pps.length; t++) o.transformPoint(this.lps[t], this.pps[t]), this.pps[t].z = 0 } , Polygon.prototype.localToGlobal = function (o, t) { return t.copy(o), t.mul(this.entity.getLocalScale()), t.add(this.entity.getLocalPosition()), t } , Polygon.prototype.addLocalPoint = function (o, t) { var i = new pc.Entity("Point"); this.entity.addChild(i), i.setLocalPosition(o, t, 0), Polygon.DRAW_DOTS && i.addComponent("render", { type: "sphere" }), i.setLocalScale(.1, .1, .1), this.points.push(i) } , Polygon.prototype.addGlobalPoint = function (o, t) { var i = new pc.Entity("Point"); this.entity.addChild(i); var n = this.entity.getPosition(); i.setPosition(n.x + o, n.y + t, n.z), this.points.push(i) } , Polygon.prototype.addPointData2 = function (o) { var t = o.clone(); this.pps.push(t), this.ns.push(new pc.Vec3(1, 0, 0)) } , Polygon.prototype.addPointData = function (o) { var t = o.getPosition().clone(); this.pps.push(t), this.ns.push(new pc.Vec3(1, 0, 0)) } , Polygon.prototype.updateNormals = function () { var o, t = this.pps.length; if (t > 1) for (var i = 0; i < t; i++) { o = this.ns[i], i < t - 1 ? o.copy(this.pps[i + 1]) : o.copy(this.pps[0]), o.sub(this.pps[i]), o.set(-o.y, o.x, 0); var n = o.length(); o.mulScalar(1 / n) } } , Polygon.tempVec = new pc.Vec3, Polygon.tempVec2 = new pc.Vec3, Polygon.prototype.findContact = function (o) { var t, i, n, s; if (this.type == Polygon.TYPE_POLY) { var e, l = this.pps.length, p = o.pps.length; n = void 0; for (var y = 0; y < l; y++) { h = this.pps[y], i = void 0; for (var a = 0; a < p; a++) e = o.pps[a], Polygon.tempVec.copy(e), Polygon.tempVec.sub(h), (t = this.ns[y].x * Polygon.tempVec.x + this.ns[y].y * Polygon.tempVec.y) > 0 || ((t = -t) > i || null == i) && (i = t); (n > i || null == n) && (n = i, s = y) } return Polygon.contactDepth = n, Polygon.contactNormal.copy(this.ns[s]), Polygon.contactNormal } if (this.type == Polygon.TYPE_CIRC) { var h, r, c, P, g; for (p = o.pps.length, y = 0; y < p; y++) h = o.pps[y], Polygon.tempVec.copy(h), Polygon.tempVec.sub(this.pos), r = Polygon.tempVec.lengthSq(), (null == c || r < c) && (c = r, P = y); return h = o.pps[P], Polygon.tempVec.copy(h), Polygon.tempVec.sub(this.pos), Polygon.tempVec.z = 0, g = Polygon.tempVec.length(), Polygon.tempVec.mulScalar(1 / g), t = this.radius - g, Polygon.contactDepth = t, Polygon.contactNormal.copy(Polygon.tempVec), Polygon.contactNormal } } , Polygon.polyCircCollision = function (o, t) { if (Polygon.pointPolyCollision(t.pos, o)) return !0; for (var i, n, s = o.pps.length, e = 0, l = s - 1; e < s; l = e++) if (i = o.pps[e], n = o.pps[l], Polygon.pointLineSegmentDistance(t.pos, i, n) < t.radius) return !0; return !1 } , Polygon.polygonEdges = function (o) { return o.pps.map((function (t, i) { return i ? [o.pps[i - 1], t] : [o.pps[o.pps.length - 1], t] } )) } , Polygon.pointPolyCollision = function (o, t) { for (var i, n, s = t.pps.length, e = 0, l = s - 1, p = o.x, y = o.y, a = !1; e < s; l = e++) i = t.pps[e], n = t.pps[l], i.y > y ^ n.y > y && p < (n.x - i.x) * (y - i.y) / (n.y - i.y) + i.x && (a = !a); return a } , Polygon.pointLineSegmentDistance = function (o, t, i) { var n, s, e = t, l = i; return Math.sqrt(Polygon.pointPointSquaredDistance(o, (n = Polygon.pointPointSquaredDistance(e, l)) ? (s = ((o.x - t.x) * (l.x - t.x) + (o.y - t.y) * (l.y - e.y)) / n) < 0 ? t : s > 1 ? l : new pc.Vec3(t.x + s * (l.x - t.x), t.y + s * (l.y - t.y), 0) : e)) } , Polygon.pointLineSegmentDistance2 = function (o, t, i) { var n, s, e = t, l = i; return Polygon.pointPointSquaredDistance(e, l), Math.sqrt(pointPointSquaredDistance(o, (n = Polygon.pointPointSquaredDistance(e, l)) ? (s = ((o.x - t.x) * (l.x - t.x) + (o.y - t.y) * (l.y - e.y)) / n) < 0 ? t : s > 1 ? l : new pc.Vec3(t.x + s * (l.x - t.x), t.y + s * (l.y - t.y), 0) : e)) } , Polygon.pointPointSquaredDistance = function (o, t) { var i = o.x - t.x , n = o.y - t.y; return i * i + n * n } , Polygon.polyPolyCollision = function (o, t) { var i, n, s, e, l, p, y, a, h, r = o.pps, c = t.pps, P = [r, c]; for (e = 0; e < 2; e++) { var g = P[e]; for (h = g.length, l = 0; l < h; l++) { var d = (l + 1) % h , u = g[l] , f = g[d] , m = Polygon.tempVec; for (m.set(f.y - u.y, u.x - f.x), i = n = void 0, p = 0; p < r.length; p++) s = m.x * r[p].x + m.y * r[p].y, (null == i || s < i) && (i = s), (null == n || s > n) && (n = s); for (y = a = void 0, p = 0; p < c.length; p++) s = m.x * c[p].x + m.y * c[p].y, (null == y || s < y) && (y = s), (null == a || s > a) && (a = s); if (n < y || a < i) return !1 } } return !0 } , Polygon.prototype.checkIfUnderLine = function (o) { if (this.type == Polygon.TYPE_POLY) { for (var t = 0; t < this.pps.length; t++) if (this.pps[t].y < o) return !0 } else if (this.type == Polygon.TYPE_CIRC && this.pos.y - this.radius < o) return !0; return !1 } , Polygon.prototype.checkCollision = function (o) { return o.type == Polygon.TYPE_POLY && this.type == Polygon.TYPE_POLY ? Polygon.polyPolyCollision(this, o) : o.type == Polygon.TYPE_CIRC && this.type == Polygon.TYPE_POLY ? Polygon.polyCircCollision(this, o) : o.type == Polygon.TYPE_POLY && this.type == Polygon.TYPE_CIRC ? Polygon.polyCircCollision(o, this) : void 0 } ; var PolygonTest = pc.createScript("polygonTest"); PolygonTest.attributes.add("poly2", { type: "entity" }), PolygonTest.prototype.initialize = function () { this.p1 = this.entity.script.polygon, this.p2 = this.poly2.script.polygon } , PolygonTest.prototype.update = function (t) { this.app.keyboard.wasPressed(pc.KEY_A) && (this.p1.updatePoints(), this.p1.checkCollision(this.p2) && (console.log("push out"), this.p2.pushOut(this.p1, this.p1.entity))) } ; var Sliceable = pc.createScript("sliceable"); Sliceable.attributes.add("left", { type: "entity" }), Sliceable.attributes.add("right", { type: "entity" }), Sliceable.attributes.add("full", { type: "entity" }), Sliceable.attributes.add("price", { type: "number", default: 1 }), Sliceable.attributes.add("kinematicOneSide", { type: "boolean", default: !1 }), Sliceable.attributes.add("complexSlice", { type: "boolean", default: !1 }), Sliceable.attributes.add("baseMat", { type: "asset", assetType: "material" }), Sliceable.attributes.add("innerMat", { type: "asset", assetType: "material" }), Sliceable.attributes.add("mat", { type: "asset", assetType: "material" }), Sliceable.attributes.add("matVnutri", { type: "asset", assetType: "material" }), Sliceable.attributes.add("multicolorVnutri", { type: "boolean", default: !1 }), Sliceable.attributes.add("static", { type: "boolean", default: !1 }), Sliceable.attributes.add("staticOneSide", { type: "boolean", default: !1 }), Sliceable.attributes.add("randomMat", { array: !0, type: "asset", assetType: "material" }), Sliceable.attributes.add("sameInnerAsBase", { type: "boolean", default: !1 }), Sliceable.attributes.add("emitId", { type: "number", default: -1 }), Sliceable.attributes.add("emitCount", { type: "number", default: 5 }), Sliceable.attributes.add("emitRadius", { type: "number", default: 0 }), Sliceable.attributes.add("emitColor", { type: "rgba" }), Sliceable.attributes.add("emitColorFromDiffuse", { type: "boolean", default: !1 }), Sliceable.prototype.initialize = function () { if (this.kickCd = 0, this.kick2Cd = 0, "CubeComplex" != this.entity.name && "Tube" != this.entity.name && "TubeVert" != this.entity.name && "Cube" != this.entity.name && "RoundCube" != this.entity.name || (this.baseMat = Game.instance.baseMatGrey, this.innerMat = Game.instance.innerMatGrey, EntityTools.setMaterial(this.full, this.baseMat)), "Sphere" == this.entity.name && (this.baseMat = Game.instance.baseMatGrey, this.innerMat = Game.instance.innerMatGrey), this.left && (this.left.enabled = !1), this.right && (this.right.enabled = !1), this.entity.script.polygon && (this.entity.script.polygon.colGroup = 2), this.entity.rigidbody) { var t = this.entity.rigidbody; this.complexSlice ? t.linearFactor = new pc.Vec3(1, 1, 1) : t.linearFactor = new pc.Vec3(1, 1, 0), t.angularFactor = new pc.Vec3(0, 0, 1) } if (this.static && (this.entity.rigidbody.type = "static"), this.staticOneSide && (this.left.rigidbody.type = "static", this.left.translate(0, 0, -.04)), this.kinematicOneSide && (this.left.rigidbody.type = "kinematic"), this.multicolorVnutri && (this.matVnutri = StackCreator.getStackColor()), this.sameInnerAsBase && (this.matVnutri = this.baseMat), this.matVnutri && this.matVnutri != this.innerMat && this.innerMat && (EntityTools.changeMaterial(this.left.children[0], this.innerMat, this.matVnutri), EntityTools.changeMaterial(this.right.children[0], this.innerMat, this.matVnutri)), this.randomMat.length > 0) { var e = this.randomMat[MathUtil.getRandomInt(this.randomMat.length)]; this.mat = e, this.changeBaseMat(e) } else this.mat && this.changeBaseMat(this.mat) } , Sliceable.prototype.changeBaseMat = function (t) { this.mat = t, this.full && EntityTools.changeMaterial(this.full, this.baseMat, t), this.left && EntityTools.changeMaterial(this.left.children[0], this.baseMat, t), this.right && EntityTools.changeMaterial(this.right.children[0], this.baseMat, t) } , Sliceable.prototype.update = function (t) { this.kickCd > 0 && (this.kickCd -= t), this.kick2Cd > 0 && (this.kick2Cd -= t) } , Sliceable.prototype.emitDrops = function (t, e) { for (var i = 0; i < e; i++) EffectDrop.create(t, pc.math.random(.4, .7), new pc.Vec3(pc.math.random(-4, 4), pc.math.random(4, 9), pc.math.random(-4, 4)), 0) } , Sliceable.prototype.kick = function (t, e) { if (trace("kick"), this.kick2Cd > 0) return 1; var i = this.entity.rigidbody; this.static && (this.kick2Cd = .1, this.static = !1, i.type = "dynamic", this.entity.script.polygon.pos.z < t.z ? (i.applyTorque(55, 0, 0), i.applyImpulse(0, 0, -.1)) : (i.applyTorque(-55, 0, 0), i.applyImpulse(0, 0, .1)), i.angularFactor = new pc.Vec3(1, 0, 1)) } , Sliceable.temp = new pc.Vec3(0, 0, 0), Sliceable.temp2 = new pc.Vec3(0, 0, 0), Sliceable.innerMatId = 0, Sliceable.prototype.slice = function (t) { if (this.entity.enabled = !1, this.complexSlice) { var e = t; this.left.setLocalScale(1, 1, 2 * e), this.right.setLocalScale(1, 1, 2 * (1 - e)), this.left.setLocalPosition(0, 0, e / 2 - .5), this.right.setLocalPosition(0, 0, .5 - (1 - e) / 2); var i = this.entity.script.polygon , a = this.entity.collision.halfExtents; Game.instance.kickSliceablesOnPos(i.pos, a.x, 2 * a.y) } var s; this.kinematicOneSide ? EntityTools.reparent(this.left, this.entity.parent) : EntityTools.reparent(this.left, Game.instance.levelObjectsSliced), EntityTools.reparent(this.right, Game.instance.levelObjectsSliced), "Tube" == this.entity.name && (this.left.rigidbody.angularFactor.set(1, 1, .1), this.right.rigidbody.angularFactor.set(1, 1, .1)); this.left && (this.left.enabled = !0, this.left.script && this.left.script.physScaler && this.left.script.physScaler.init(), (s = this.left.rigidbody).applyImpulse(0, 0, -7), s.applyTorque(-45, 0, 0)), this.right && (this.right.script && this.right.script.physScaler && this.right.script.physScaler.init(), this.right.enabled = !0, (s = this.right.rigidbody).applyImpulse(0, 0, 7), s.applyTorque(45, 0, 0)); var l, r = this.entity.getPosition(), n = "+" + this.price.toString(), c = .8; if (this.price > 10 ? (l = Game.instance.yellowColor, c = 1.2) : this.price >= 5 ? (l = Game.instance.greenColor, c = 1) : (l = Game.instance.whiteColor, c = .8), l = Game.bonusLevel ? Game.instance.yellowColor : Game.instance.whiteColor, Game.instance.showText(n, r.x, r.y, l, 1, c), Game.instance.addMoney(this.price, !0), this.emitId >= 0 && this.emitCount > 0) { this.emitColorFromDiffuse && (this.mat ? this.emitColor = this.mat.resource.diffuse : this.baseMat && (this.emitColor = this.baseMat.resource.diffuse)); for (var h = 0; h < this.emitCount; h++) this.emitRadius > 0 ? (Sliceable.temp.copy(r), Sliceable.temp.x += pc.math.random(-this.emitRadius, this.emitRadius), Sliceable.temp.y += pc.math.random(-this.emitRadius, this.emitRadius), Sliceable.temp.z += pc.math.random(-this.emitRadius, this.emitRadius), Sliceable.temp2.set(pc.math.random(-7, 7), pc.math.random(4, 7), pc.math.random(-4, 4)), EffectDrop.create(Sliceable.temp, pc.math.random(.3, .5) + .25 * this.emitRadius, Sliceable.temp2, this.emitId, this.emitColor)) : (Sliceable.temp2.set(pc.math.random(-7, 7), pc.math.random(4, 7), pc.math.random(-4, 4)), EffectDrop.create(r, pc.math.random(.3, .5), Sliceable.temp2, this.emitId, this.emitColor)) } } ; var StackCreator = pc.createScript("stackCreator"); StackCreator.attributes.add("count", { type: "number", default: 1 }), StackCreator.attributes.add("isFigure", { type: "boolean", default: !1 }), StackCreator.attributes.add("yDistance", { type: "number", default: 1 }), StackCreator.attributes.add("zRandom", { type: "number", default: 0 }), StackCreator.attributes.add("yRandomAngle", { type: "number", default: 0 }), StackCreator.attributes.add("static", { type: "boolean", default: !1 }), StackCreator.attributes.add("staticOneSide", { type: "boolean", default: !1 }), StackCreator.attributes.add("mats", { type: "asset", assetType: "material", array: !0 }), StackCreator.attributes.add("multicolorVnutri", { type: "boolean", default: !1 }), StackCreator.attributes.add("sideStack", { type: "boolean", default: !1 }), StackCreator.prototype.init = function () { for (var t, a, e, i = this.entity.getPosition(), r = new pc.Vec3, n = 1, s = this.entity.getLocalEulerAngles(), o = 0, c = 1, d = this.count - 1; d >= 0; d--) d > 0 ? (t = this.entity.clone()).script.destroy("stackCreator") : t = this.entity, e = t.script.sliceable, this.static && (t.rigidbody.type = "static", t.script.polygon.static = !0), this.staticOneSide && (e.left.rigidbody.type = "static", r.z = -.04), e.baseMat && this.mats.length > 0 && (e.mat = this.mats[o], 0 == d && e.changeBaseMat(this.mats[o]), this.mats.length > 1 && (o += c, c > 0 && o >= this.mats.length - 1 ? (o = this.mats.length - 1, c = -1) : c < 0 && o <= 0 && (o = 0, c = 1))), this.multicolorVnutri && (e.matVnutri = StackCreator.getStackColor(), 0 == d && (EntityTools.changeMaterial(e.left.children[0], e.innerMat, e.matVnutri), EntityTools.changeMaterial(e.right.children[0], e.innerMat, e.matVnutri))), this.isFigure && (a = t.getLocalScale(), n = .75 + .25 * Math.cos(3.14 * d / 10), t.setLocalScale(a.x, a.y, a.z * n)), r.copy(i), this.sideStack ? r.x += d * this.yDistance : r.y += d * this.yDistance, 0 != this.zRandom && (r.z += pc.math.random(-this.zRandom, this.zRandom)), this.yRandomAngle > 0 && (t.rigidbody.angularFactor = new pc.Vec3(0, 1, 1), t.setLocalEulerAngles(s.x, s.y + pc.math.random(-this.yRandomAngle, this.yRandomAngle), s.z)), d > 0 && (this.entity.parent.addChild(t), t.rigidbody ? t.rigidbody.teleport(r) : t.setPosition(r)) } , StackCreator.getStackColor = function () { return Sliceable.innerMatId++, Sliceable.innerMatId >= Game.instance.innerMat.length && (Sliceable.innerMatId = 0), Game.instance.innerMat[Sliceable.innerMatId] } , StackCreator.prototype.update = function (t) { } ; var Effect3ddrop = pc.createScript("effect3ddrop"); Effect3ddrop.grav = new pc.Vec3(0, -15, 0), Effect3ddrop.temp = new pc.Vec3(0, 0, 0), Effect3ddrop.create = function (t, e) { var i = ObjectPool.instantiate("Effect3DDrop", t, Game.instance.app.root); return i.render.meshInstances[0].material = e, i.render.meshInstances[0].material.update(), i } , Effect3ddrop.prototype.initialize = function () { this.vel = new pc.Vec3(0, 0, 0), this.damping = .01, this.size = 1, this.material = this.entity.render.meshInstances[0].material, this.onEnable(), this.on("enable", this.onEnable, this) } , Effect3ddrop.prototype.onEnable = function () { this.vel = new pc.Vec3(pc.math.random(-4, 4), pc.math.random(3, 8), pc.math.random(-4, 4)), this.size = pc.math.random(.15, .3) } , Effect3ddrop.prototype.update = function (t) { Effect3ddrop.temp.copy(Effect3ddrop.grav), Effect3ddrop.temp.scale(t), this.vel.add(Effect3ddrop.temp), this.vel.scale(1 - this.damping * t), Effect3ddrop.temp.copy(this.vel), Effect3ddrop.temp.scale(t), this.entity.translate(Effect3ddrop.temp); var e = this.entity.getPosition(); if (e.add(this.vel), this.entity.lookAt(e), this.size -= .3 * t, this.size <= 0) ObjectPool.push(this.entity); else { var i = pc.math.clamp(this.vel.length() / 10, 1, 4); this.entity.setLocalScale(this.size, this.size, this.size * i) } } ; var PhysScaler = pc.createScript("physScaler"); PhysScaler.attributes.add("initialScale", { type: "vec3", default: [0, 0, 0] }), PhysScaler.attributes.add("initialHalfExtents", { type: "vec3", default: [0, 0, 0] }), PhysScaler.attributes.add("initialRadius", { type: "number", default: 0 }), PhysScaler.attributes.add("initialHeight", { type: "number", default: 0 }), PhysScaler.attributes.add("initialPolyRadius", { type: "number", default: 0 }), PhysScaler.tempVec = new pc.Vec3, PhysScaler.prototype.init = function () { var e = this.entity.getLocalScale(); PhysScaler.tempVec.copy(e), PhysScaler.tempVec.div(this.initialScale); var t = Math.max(PhysScaler.tempVec.x, PhysScaler.tempVec.y, PhysScaler.tempVec.z) , i = this.entity.collision; i && ("box" == i.type ? (PhysScaler.tempVec.mul(this.initialHalfExtents), i.halfExtents = PhysScaler.tempVec.clone()) : "sphere" == i.type ? i.radius = t * this.initialRadius : "cylinder" == i.type && (i.radius = PhysScaler.tempVec.x * this.initialRadius, i.height = PhysScaler.tempVec.y * this.initialHeight)); var a = this.entity.script.polygon; a && a.isCircle && (a.radius = t * this.initialPolyRadius), this.entity.script.destroy("physScaler") } ; var GameText = pc.createScript("gameText"); GameText.attributes.add("glow", { type: "entity" }), GameText.prototype.initialize = function () { this.hideDelay = 1, this.fadeOpacity = !1 } , GameText.prototype.animate = function (t, e = 1, i = 0) { this.hideAnimType = t, this.time = 0, this.state = 1, this.appearTime = .3, this.showTime = .55, this.hideTime = .2, this.fadeOpacity = !0, this.scaleMax = e, this.entity.element.opacity = 1, this.entity.setLocalScale(1, 1, 1) } , GameText.prototype.update = function (t) { var e; this.time += t, 1 == this.state && ((e = this.time / this.appearTime) >= 1 && (e = 1, this.state = 2, this.time = 0), 2 == this.hideAnimType ? (this.entity.translateLocal(0, -500 * t, 0), this.entity.element.opacity = e, e = this.scaleMax, this.entity.setLocalScale(e, e, e)) : (e *= this.scaleMax, this.entity.setLocalScale(e, e, e))), 2 == this.state && ((e = this.time / this.showTime) >= 1 && (e = 1, this.state = 3, this.time = 0), 1 == this.hideAnimType ? this.entity.translateLocal(0, 50 * t, 0) : (e = this.scaleMax + .1 * e, this.entity.setLocalScale(e, e, e), this.entity.translateLocal(0, -50 * t, 0))), 3 == this.state && ((e = 1 - this.time / this.hideTime) <= 0 && (e = 0, ObjectPool.push(this.entity)), 1 == this.hideAnimType ? (this.entity.element.opacity = e, this.entity.translateLocal(0, 400 * t, 0)) : this.entity.element.opacity = e) } ; var FinishController = pc.createScript("finishController"); FinishController.attributes.add("blocks", { type: "entity", array: !0 }), FinishController.attributes.add("textEntity", { type: "entity" }), FinishController.attributes.add("lastBlock", { type: "entity" }), FinishController.attributes.add("flag", { type: "entity" }), FinishController.instance = null, FinishController.blockData = [], FinishController.prototype.setBestBlockType = function () { for (var t, o, e = 0; e < FinishController.blockData.length && 50 != (t = FinishController.blockData[e]).count; e++) ; var r, l, n = FinishController.blockData[0].blockType, a = this.applyOperatorData(100, n); o = FinishController.blockData[0]; for (e = 1; e < FinishController.blockData.length; e++) l = FinishController.blockData[e].blockType, (r = this.applyOperatorData(100, l)) > a && (a = r, n = l, o = FinishController.blockData[e]); l = t.blockType, t.blockType = o.blockType, o.blockType = l } , FinishController.prototype.placeBlocks2 = function (t) { var o, e, r, l; this.flag.enabled = !1, this.generateRandomBlockData(); for (var n, a, i = 0, s = 0; s < this.blocks.length; s++) { l = this.blocks[s]; for (var p = 0; p < FinishController.blockData.length; p++) 2 == (o = FinishController.blockData[p]).count && o.entity, l == o.entity && (o.blockType = this.blockTypes[i], i++) } MathUtil.shuffleArray(FinishController.blockData), (e = this.blocks[0].getLocalPosition().clone()).y = 0, r = this.textEntity.getLocalPosition().clone(); for (p = 0; p < FinishController.blockData.length; p++) a = (o = FinishController.blockData[p]).blockType, 50 == o.count && (n = o), o.text.element.text = a.text, e.y += .5 * o.sizeY, o.entity.setLocalPosition(e.x, e.y, e.z), o.text.setLocalPosition(r.x, e.y, r.z), e.y += .5 * o.sizeY; t ? (n.text.element.text = "BONUS!", n.text.script.scaler.enabled = !0) : (n.text.script.scaler.enabled = !1, n.text.setLocalScale(.01, .01, .01)), e.y += .5 * this.lastBlockSizeY, this.lastBlock.setLocalPosition(e.x, e.y, e.z) } ; var OperatorType = { ADD: { symbol: "+", maxCount: 500, minCount: 10 }, SUBTRACT: { symbol: "-", maxCount: 100, minCount: 5 }, MULTIPLY: { symbol: "x", maxCount: 10, minCount: 2 }, DIVIDE: { symbol: "÷", maxCount: 10, minCount: 2 } }; FinishController.prototype.generateRandomBlockData = function () { this.blockTypes = [], this.blockTypes.push(this.createBlock(OperatorType.MULTIPLY)), this.blockTypes.push(this.createBlock(OperatorType.ADD)), this.blockTypes.push(this.createBlock(OperatorType.MULTIPLY)), this.blockTypes.push(this.createBlock(OperatorType.ADD)); var t, o = this.getRandomNegativeOperator(); t = Math.random() > .6 ? (OperatorType.SUBTRACT, OperatorType.DIVIDE) : this.getRandomPositiveOperator(), this.blockTypes.push(this.createBlock(o)), this.blockTypes.push(this.createBlock(t)), this.blockTypes.sort(((t, o) => t.weight - o.weight)) } , FinishController.prototype.getRandomPositiveOperator = function () { var t = [OperatorType.ADD, OperatorType.MULTIPLY]; return t[Math.floor(Math.random() * t.length)] } , FinishController.prototype.getRandomNegativeOperator = function () { var t = [OperatorType.SUBTRACT, OperatorType.DIVIDE]; return t[Math.floor(Math.random() * t.length)] } , FinishController.prototype.getRandomOperator = function () { var t = [OperatorType.ADD, OperatorType.SUBTRACT, OperatorType.MULTIPLY, OperatorType.DIVIDE]; return t[Math.floor(Math.random() * t.length)] } , FinishController.prototype.createBlock = function (t) { var o = t.maxCount , e = this.getRandomCount(o, t.minCount); t == OperatorType.ADD && Math.random() < .8 && (e = this.getRandomCount(10, 100)); var r = this.beautifyNumber(e) , l = { text: this.generateBlockText(r, t), value: r, operator: t, weight: 100 }; return l.weight = this.applyOperatorData(100, l), l } , FinishController.prototype.getRandomCount = function (t, o) { return Math.floor(Math.random() * (t - o)) + 1 + o } , FinishController.prototype.beautifyNumber = function (t, o) { var e = t; if (t < 5) e = Math.max(t, 2), o != OperatorType.ADD && o != OperatorType.SUBTRACT || (e = 5); else if (t <= 10) e = o == OperatorType.ADD || o == OperatorType.SUBTRACT ? [5, 10][Math.floor(2 * Math.random())] : t; else if (t <= 100) { var r = (l = [10, 5])[Math.floor(Math.random() * l.length)]; e = Math.floor(t / r) * r } else if (t <= 500) { var l; r = (l = [5, 10])[Math.floor(Math.random() * l.length)]; e = Math.floor(t / r) * r } return e } , FinishController.prototype.applyOperatorData = function (t, o) { var e = t; return o.operator == OperatorType.MULTIPLY ? e *= o.value : o.operator == OperatorType.DIVIDE ? e /= o.value : o.operator == OperatorType.ADD ? e += o.value : o.operator == OperatorType.SUBTRACT && (e -= o.value), Math.round(e) } , FinishController.prototype.generateBlockText = function (t, o) { var e = ""; return o == OperatorType.MULTIPLY ? e = "x " + t.toString() : o == OperatorType.DIVIDE ? e = "÷ " + t.toString() : o == OperatorType.ADD ? e = "+ " + t.toString() : o == OperatorType.SUBTRACT && (e = "- " + t.toString()), e } , FinishController.prototype.initialize = function () { FinishController.instance = this; for (var t, o, e = [2, 3, 5, 10, 25, 50], r = 0; r < this.blocks.length; r++) (t = this.textEntity.clone()).element.text = e[r].toString() + " x", this.entity.addChild(t), o = this.blocks[r].getLocalScale().y, FinishController.blockData.push({ text: t, count: e[r], entity: this.blocks[r], sizeY: o, blockType: {} }); this.textEntity.enabled = !1, this.lastBlockSizeY = this.lastBlock.getLocalScale().y, this.placeBlocks() } , FinishController.prototype.getBlockData = function (t) { for (var o, e = 0; e < FinishController.blockData.length; e++) if ((o = FinishController.blockData[e]).entity == t) return o; return null } , FinishController.prototype.getBlockOperator = function (t) { for (var o, e = 0; e < FinishController.blockData.length; e++) if ((o = FinishController.blockData[e]).entity == t) return o.blockType; return null } , FinishController.prototype.placeBlocks = function (t) { var o, e, r, l; this.flag.enabled = !1, MathUtil.shuffleArray(FinishController.blockData), (e = this.blocks[0].getLocalPosition().clone()).y = 0, r = this.textEntity.getLocalPosition().clone(); for (var n = 0; n < FinishController.blockData.length; n++) 50 == (o = FinishController.blockData[n]).count && (l = o), e.y += .5 * o.sizeY, o.entity.setLocalPosition(e.x, e.y, e.z), o.text.setLocalPosition(r.x, e.y, r.z), e.y += .5 * o.sizeY; t ? (l.text.element.text = "BONUS!", l.text.script.scaler.enabled = !0) : (l.text.element.text = "50 x", l.text.script.scaler.enabled = !1, l.text.setLocalScale(.01, .01, .01)), e.y += .5 * this.lastBlockSizeY, this.lastBlock.setLocalPosition(e.x, e.y, e.z) } , FinishController.prototype.update = function (t) { } , FinishController.prototype.showFlag = function () { setTimeout((function () { GameAudio.play("cracker"); for (var t = FinishController.instance.entity.getPosition(), o = 0; o < 59; o++) Serpantine.create(t) } ), 500), this.flag.setEulerAngles(0, 0, 90), this.flag.enabled = !0, this.flag.tween(this.flag.getLocalEulerAngles()).rotate({ x: 0, y: 0, z: 0 }, .75, pc.BounceOut).loop(!1).yoyo(!1).start() } ; var MaterialBlinker = pc.createScript("materialBlinker"); MaterialBlinker.prototype.initialize = function () { var i, t, s; this.meshInstances = this.entity.model ? this.entity.model.meshInstances : this.entity.render.meshInstances, this.mats = [], this.matsB = [], this.blinkAlpha = 0, this.blinkSpeed = 1, this.blinkTarget = 1, this.blinkCount = 0, this.blinkColor = (new pc.Color).fromString("#FFFFFF"); for (var e = 0; e < this.meshInstances.length; e++) t = (i = this.meshInstances[e]).material, this.mats.push(t), s = t.clone(), this.matsB.push(s), i.material = s } , MaterialBlinker.prototype.start = function (i, t) { this.blinkSpeed = i, this.blinkCount = t } , MaterialBlinker.prototype.update = function (i) { if (0 == this.blinkCount) return 1; var t, s; this.blinkAlpha += this.blinkSpeed * i, this.blinkSpeed > 0 && this.blinkAlpha >= this.blinkTarget ? (this.blinkSpeed = -this.blinkSpeed, this.blinkAlpha = this.blinkTarget) : this.blinkSpeed < 0 && this.blinkAlpha < 0 && (this.blinkSpeed = -this.blinkSpeed, this.blinkAlpha = 0, this.blinkCount > 0 && this.blinkCount--, this.blinkCount <= 0 && (this.blinkCount = 0)); for (var e = 0; e < this.matsB.length; e++) t = this.matsB[e], s = this.mats[e], t.emissive.lerp(s.emissive, this.blinkColor, this.blinkAlpha), t.update() } ; var Environment = pc.createScript("environment"); Environment.instance = null, Environment.attributes.add("grounds", { type: "entity", array: !0 }), Environment.attributes.add("lights", { type: "entity", array: !0 }), Environment.attributes.add("fogColors", { type: "rgba", array: !0 }), Environment.attributes.add("backgrounds", { type: "entity", array: !0 }), Environment.attributes.add("environments", { type: "entity", array: !0 }), Environment.attributes.add("snow", { type: "entity" }), Environment.prototype.initialize = function () { Environment.instance = this, this.type = 0, this.groundsAr = [], this.groundsCount = 0, this.groundsId = 0, this.groundLastPos = new pc.Vec3(0, 0, 0), this.envTypes = [1, 3, 4, 5], this.envId = 0, EntityTools.enableSingleInArray(this.grounds, -1) } , Environment.prototype.setType = function (t) { this.type = t, this.snow.enabled = !1, 1 == this.type ? (this.groundsId = 0, EntityTools.enableSingleInArray(this.backgrounds, 0), EntityTools.enableSingleInArray(this.environments, 0), EntityTools.enableSingleInArray(this.lights, 0), this.app.scene.fogColor = this.fogColors[0], this.app.scene.fogStart = 50) : 2 == this.type ? (this.groundsId = 0, EntityTools.enableSingleInArray(this.backgrounds, 1), EntityTools.enableSingleInArray(this.environments, 0), EntityTools.enableSingleInArray(this.lights, 1), this.app.scene.fogColor = this.fogColors[1], this.app.scene.fogStart = 500) : 3 == this.type ? (this.groundsId = 1, EntityTools.enableSingleInArray(this.backgrounds, 2), EntityTools.enableSingleInArray(this.environments, 1), EntityTools.enableSingleInArray(this.lights, 0), this.app.scene.fogColor = this.fogColors[2], this.app.scene.fogStart = 100) : 4 == this.type ? (this.groundsId = 2, EntityTools.enableSingleInArray(this.backgrounds, 0), EntityTools.enableSingleInArray(this.environments, 2), EntityTools.enableSingleInArray(this.lights, 0), this.app.scene.fogColor = this.fogColors[4], this.app.scene.fogStart = 150, this.snow.enabled = !0) : 5 == this.type ? (this.groundsId = 3, EntityTools.enableSingleInArray(this.backgrounds, 1), EntityTools.enableSingleInArray(this.environments, 3), EntityTools.enableSingleInArray(this.lights, 0), this.app.scene.fogColor = this.fogColors[3], this.app.scene.fogStart = 200, this.snow.enabled = !1) : 6 == this.type && (this.groundsId = 4, EntityTools.enableSingleInArray(this.backgrounds, 3), EntityTools.enableSingleInArray(this.environments, 4), EntityTools.enableSingleInArray(this.lights, 0), this.app.scene.fogColor = this.fogColors[4], this.app.scene.fogStart = 200, this.snow.enabled = !1), 6 == this.type ? GameAudio.switchLoopSound("loopSound2") : GameAudio.switchLoopSound("loopSound"), Game.debugOutput && console.log("env switch : ", this.type) } , Environment.prototype.createGrounds = function () { for (this.clearGrounds(), this.groundLastPos.set(-25, 0, 0); Game.instance.lastPos.x + 60 > this.groundLastPos.x;) { var t = this.grounds[this.groundsId].clone() , n = t.findByName("Start") , e = n.getLocalPosition(); n.enabled = !1, this.entity.addChild(t), t.setPosition(this.groundLastPos.x - e.x, this.groundLastPos.y - e.y, 0), t.enabled = !0; var s = t.findByName("End") , i = s.getPosition(); this.groundLastPos.copy(i), s.enabled = !1; var o = t.findByName("Floor"); o.script && o.script.physScaler && o.script.physScaler.init(), this.groundsAr.push(t), this.groundsCount++ } } , Environment.prototype.clearGrounds = function () { for (var t, n = this.groundsAr.length - 1; n >= 0; n--) t = this.groundsAr[n], this.entity.removeChild(t), t.destroy(); this.groundsAr = [] } , Environment.prototype.switchTo = function (t) { this.setType(t), MathUtil.shuffleArray(this.envTypes); for (var n = 0; n < this.envTypes.length; n++) if (e = this.envTypes[n], e == t) return void (this.envId = n) } , Environment.prototype.switchType = function () { var t, n = this.envTypes[this.envId]; this.envId++, this.envId >= this.envTypes.length && (this.envId = 0, MathUtil.shuffleArray(this.envTypes), (t = this.envTypes[this.envId]) == n && (this.envTypes[0] = this.envTypes[this.envTypes.length - 1], this.envTypes[this.envTypes.length - 1] = t)), this.setType(this.envTypes[this.envId]) } , Environment.prototype.update = function (t) { Game.noDebug || this.app.keyboard.wasPressed(pc.KEY_B) && FadeScreen.instance.show(.3, 0, 0, (function () { Environment.instance.switchType(), Game.instance.restart() } )) } ; var Serpantine = pc.createScript("serpantine"); Serpantine.attributes.add("serpColors", { type: "rgba", array: !0 }), Serpantine.create = function (t) { var i = ObjectPool.instantiate("Serp", t, Game.instance.app.root) , e = i.script.serpantine; return e.initialized || e.initialize(), i } , Serpantine.prototype.onEnable = function () { this.time = 0, this.gos.impulse2(pc.math.random(-10, 10), pc.math.random(5, 15), pc.math.random(-10, 10), 550), this.entity.sprite.color = this.serpColors[MathUtil.getRandomInt(this.serpColors.length)]; var t = pc.math.random(.1, .2); this.entity.setLocalScale(t, t, t) } , Serpantine.prototype.initialize = function () { if (this.initialized) return 1; this.initialized = !0, this.gos = this.entity.script.gravityObject, this.onEnable(), this.on("enable", this.onEnable, this) } , Serpantine.prototype.update = function (t) { this.time += t, this.time > 5 && ObjectPool.push(this.entity) } ; var GravityObject = pc.createScript("gravityObject"); GravityObject.tmp = new pc.Vec3, GravityObject.tmp2 = new pc.Vec3, GravityObject.prototype.initialize = function () { if (this.initialized) return 1; this.gravity = -10, this._vel = new pc.Vec3(0, 0, 0), this._acc = new pc.Vec3(0, this.gravity, 0), this.rotSpeed = new pc.Vec3(0, 0, 0), this.falling = !0, this.delay = 0, this.bottomDestroyPlank = -3, this.initialized = !0 } , GravityObject.prototype.impulse = function (t, i, e) { var a = t * MathUtil.DEG_TO_RAD; this._vel.x = Math.cos(a) * i, this._vel.y = Math.sin(a) * i, this._vel.z = 0, this.rotSpeed.set(pc.math.random(-e, e), pc.math.random(-e, e), pc.math.random(-e, e)) } , GravityObject.prototype.impulse2 = function (t, i, e, a) { this._vel.x = t, this._vel.y = i, this._vel.z = e, this.rotSpeed.set(pc.math.random(-a, a), pc.math.random(-a, a), pc.math.random(-a, a)) } , GravityObject.prototype.update = function (t) { if (this.falling) { if (this.delay > 0) return this.delay -= t, this.delay, 0; this._acc.y = this.gravity; var i = this.entity.getPosition(); GravityObject.tmp2.copy(this._acc).scale(t * Game.instance.slomo), this._vel.add(GravityObject.tmp2), GravityObject.tmp2.copy(this._vel).scale(t * Game.instance.slomo), i.add(GravityObject.tmp2), this.entity.setPosition(i), this.entity.rotateLocal(this.rotSpeed.x * t * Game.instance.slomo, this.rotSpeed.y * t * Game.instance.slomo, this.rotSpeed.z * t * Game.instance.slomo), i.y <= this.bottomDestroyPlank && this.entity.destroy() } } ; var Jumper = pc.createScript("jumper"); Jumper.attributes.add("delayStart", { type: "number", default: 0 }), Jumper.attributes.add("delayRepeat", { type: "number", default: 1 }), Jumper.attributes.add("jumpForce", { type: "number", default: 5 }), Jumper.attributes.add("jumpSpeed", { type: "number", default: .8 }), Jumper.attributes.add("bounceKoef", { type: "number", default: .8 }), Jumper.tmp = new pc.Vec3, Jumper.prototype.initialize = function () { this.startPos = this.entity.getLocalPosition().clone(), this.startSc = this.entity.getLocalScale().clone(), this.scaleZ = 1, this.scaleZVel = 0, this.gravity = -70, this._vel = new pc.Vec3(0, 0, 0), this._acc = new pc.Vec3(0, this.gravity, 0), this.rotSpeed = new pc.Vec3(0, 0, 0), this._delay = this.delayStart, this.jumping = !1, this.jump() } , Jumper.prototype.update = function (t) { if (Game.instance.paused) return 1; this.scaleZVel += (1 - this.scaleZ) * t, this.scaleZVel += .5 * t, this.scaleZ += this.scaleZVel, this.scaleZVel *= 1 - t, this.scaleZ = pc.math.clamp(this.scaleZ, .7, 1.05); var e = 1 / this.scaleZ; e = pc.math.clamp(e, .6, 1.4), this.entity.setLocalScale(this.startSc.x * e, this.startSc.y * this.scaleZ, this.startSc.z * e); var s = this.entity.getLocalPosition(); this._delay > 0 && (this._delay -= t), Jumper.tmp.copy(this._acc).scale(t * this.jumpSpeed * Game.instance.slomo), this._vel.add(Jumper.tmp), Jumper.tmp.copy(this._vel).scale(t * this.jumpSpeed * Game.instance.slomo), s.add(Jumper.tmp), s.y <= this.startPos.y && (s.y = this.startPos.y, this._vel.y = 0, this.jumping && (this.jumping = !1, this.scaleZ = 1, this.scaleZVel = -.1 * this.bounceKoef), this.jump()), this.entity.setLocalPosition(s) } , Jumper.prototype.jump = function () { if (this._delay > 0) return 0; this._delay = this.delayRepeat, this.jumping = !0, this._vel.set(0, this.jumpForce, 0) } ; "undefined" != typeof document && (/*! FPSMeter 0.3.1 - 9th May 2013 | https://github.com/Darsain/fpsmeter */ function (t, e) { function s(t, e) { for (var n in e) try { t.style[n] = e[n] } catch (t) { } return t } function H(t) { return null == t ? String(t) : "object" == typeof t || "function" == typeof t ? Object.prototype.toString.call(t).match(/\s([a-z]+)/i)[1].toLowerCase() || "object" : typeof t } function R(t, e) { if ("array" !== H(e)) return -1; if (e.indexOf) return e.indexOf(t); for (var n = 0, o = e.length; n < o; n++) if (e[n] === t) return n; return -1 } function I() { var t, e = arguments; for (t in e[1]) if (e[1].hasOwnProperty(t)) switch (H(e[1][t])) { case "object": e[0][t] = I({}, e[0][t], e[1][t]); break; case "array": e[0][t] = e[1][t].slice(0); break; default: e[0][t] = e[1][t] } return 2 < e.length ? I.apply(null, [e[0]].concat(Array.prototype.slice.call(e, 2))) : e[0] } function N(t) { return 1 === (t = Math.round(255 * t).toString(16)).length ? "0" + t : t } function S(t, e, n, o) { t.addEventListener ? t[o ? "removeEventListener" : "addEventListener"](e, n, !1) : t.attachEvent && t[o ? "detachEvent" : "attachEvent"]("on" + e, n) } function D(t, e) { function g(t, e, n, o) { return h[0 | t][Math.round(Math.min((e - n) / (o - n) * M, M))] } function r() { F.legend.fps !== q && (F.legend.fps = q, F.legend[c] = q ? "FPS" : "ms"), b = q ? v.fps : v.duration, F.count[c] = 999 < b ? "999+" : b.toFixed(99 < b ? 0 : O.decimals) } function m() { for (l = n(), P < l - O.threshold && (v.fps -= v.fps / Math.max(1, 60 * O.smoothing / O.interval), v.duration = 1e3 / v.fps), w = O.history; w--;) T[w] = 0 === w ? v.fps : T[w - 1], j[w] = 0 === w ? v.duration : j[w - 1]; if (r(), O.heat) { if (z.length) for (w = z.length; w--;) z[w].el.style[o[z[w].name].heatOn] = q ? g(o[z[w].name].heatmap, v.fps, 0, O.maxFps) : g(o[z[w].name].heatmap, v.duration, O.threshold, 0); if (F.graph && o.column.heatOn) for (w = C.length; w--;) C[w].style[o.column.heatOn] = q ? g(o.column.heatmap, T[w], 0, O.maxFps) : g(o.column.heatmap, j[w], O.threshold, 0) } if (F.graph) for (y = 0; y < O.history; y++) C[y].style.height = (q ? T[y] ? Math.round(x / O.maxFps * Math.min(T[y], O.maxFps)) : 0 : j[y] ? Math.round(x / O.threshold * Math.min(j[y], O.threshold)) : 0) + "px" } function k() { 20 > O.interval ? (p = i(k), m()) : (p = setTimeout(k, O.interval), f = i(m)) } function G(t) { (t = t || window.event).preventDefault ? (t.preventDefault(), t.stopPropagation()) : (t.returnValue = !1, t.cancelBubble = !0), v.toggle() } function U() { O.toggleOn && S(F.container, O.toggleOn, G, 1), t.removeChild(F.container) } function V() { if (F.container && U(), o = D.theme[O.theme], !(h = o.compiledHeatmaps || []).length && o.heatmaps.length) { for (y = 0; y < o.heatmaps.length; y++) for (h[y] = [], w = 0; w <= M; w++) { var e, n = h[y], a = w; e = .33 / M * w; var i = o.heatmaps[y].saturation , l = o.heatmaps[y].lightness , p = void 0 , c = void 0 , u = void 0 , d = u = void 0 , f = p = c = void 0; f = void 0; 0 === (u = .5 >= l ? l * (1 + i) : l + i - l * i) ? e = "#000" : (c = (u - (d = 2 * l - u)) / u, f = (e *= 6) - (p = Math.floor(e)), f *= u * c, 0 === p || 6 === p ? (p = u, c = d + f, u = d) : 1 === p ? (p = u - f, c = u, u = d) : 2 === p ? (p = d, c = u, u = d + f) : 3 === p ? (p = d, c = u - f) : 4 === p ? (p = d + f, c = d) : (p = u, c = d, u -= f), e = "#" + N(p) + N(c) + N(u)), n[a] = e } o.compiledHeatmaps = h } for (var b in F.container = s(document.createElement("div"), o.container), F.count = F.container.appendChild(s(document.createElement("div"), o.count)), F.legend = F.container.appendChild(s(document.createElement("div"), o.legend)), F.graph = O.graph ? F.container.appendChild(s(document.createElement("div"), o.graph)) : 0, z.length = 0, F) F[b] && o[b].heatOn && z.push({ name: b, el: F[b] }); if (C.length = 0, F.graph) for (F.graph.style.width = O.history * o.column.width + (O.history - 1) * o.column.spacing + "px", w = 0; w < O.history; w++) C[w] = F.graph.appendChild(s(document.createElement("div"), o.column)), C[w].style.position = "absolute", C[w].style.bottom = 0, C[w].style.right = w * o.column.width + w * o.column.spacing + "px", C[w].style.width = o.column.width + "px", C[w].style.height = "0px"; s(F.container, O), r(), t.appendChild(F.container), F.graph && (x = F.graph.clientHeight), O.toggleOn && ("click" === O.toggleOn && (F.container.style.cursor = "pointer"), S(F.container, O.toggleOn, G)) } "object" === H(t) && undefined === t.nodeType && (e = t, t = document.body), t || (t = document.body); var o, h, l, p, f, x, b, w, y, v = this, O = I({}, D.defaults, e || {}), F = {}, C = [], M = 100, z = [], E = O.threshold, A = 0, P = n() - E, T = [], j = [], q = "fps" === O.show; v.options = O, v.fps = 0, v.duration = 0, v.isPaused = 0, v.tickStart = function () { A = n() } , v.tick = function () { l = n(), E += (l - P - E) / O.smoothing, v.fps = 1e3 / E, v.duration = A < P ? E : l - A, P = l } , v.pause = function () { return p && (v.isPaused = 1, clearTimeout(p), a(p), a(f), p = f = 0), v } , v.resume = function () { return p || (v.isPaused = 0, k()), v } , v.set = function (t, e) { return O[t] = e, q = "fps" === O.show, -1 !== R(t, u) && V(), -1 !== R(t, d) && s(F.container, O), v } , v.showDuration = function () { return v.set("show", "ms"), v } , v.showFps = function () { return v.set("show", "fps"), v } , v.toggle = function () { return v.set("show", q ? "ms" : "fps"), v } , v.hide = function () { return v.pause(), F.container.style.display = "none", v } , v.show = function () { return v.resume(), F.container.style.display = "block", v } , v.destroy = function () { v.pause(), U(), v.tick = v.tickStart = function () { } } , V(), k() } var n, o = t.performance; n = o && (o.now || o.webkitNow) ? o[o.now ? "now" : "webkitNow"].bind(o) : function () { return +new Date } ; for (var a = t.cancelAnimationFrame || t.cancelRequestAnimationFrame, i = t.requestAnimationFrame, h = 0, l = 0, p = (o = ["moz", "webkit", "o"]).length; l < p && !a; ++l) i = (a = t[o[l] + "CancelAnimationFrame"] || t[o[l] + "CancelRequestAnimationFrame"]) && t[o[l] + "RequestAnimationFrame"]; a || (i = function (e) { var o = n() , a = Math.max(0, 16 - (o - h)); return h = o + a, t.setTimeout((function () { e(o + a) } ), a) } , a = function (t) { clearTimeout(t) } ); var c = "string" === H(document.createElement("div").textContent) ? "textContent" : "innerText"; D.extend = I, window.FPSMeter = D, D.defaults = { interval: 100, smoothing: 10, show: "fps", toggleOn: "click", decimals: 1, maxFps: 60, threshold: 100, position: "absolute", zIndex: 10, left: "5px", top: "5px", right: "auto", bottom: "auto", margin: "0 0 0 0", theme: "dark", heat: 0, graph: 0, history: 20 }; var u = ["toggleOn", "theme", "heat", "graph", "history"] , d = "position zIndex left top right bottom margin".split(" ") }(window), function (t, e) { e.theme = {}; var n = e.theme.base = { heatmaps: [], container: { heatOn: null, heatmap: null, padding: "5px", minWidth: "95px", height: "30px", lineHeight: "30px", textAlign: "right", textShadow: "none" }, count: { heatOn: null, heatmap: null, position: "absolute", top: 0, right: 0, padding: "5px 10px", height: "30px", fontSize: "24px", fontFamily: "Consolas, Andale Mono, monospace", zIndex: 2 }, legend: { heatOn: null, heatmap: null, position: "absolute", top: 0, left: 0, padding: "5px 10px", height: "30px", fontSize: "12px", lineHeight: "32px", fontFamily: "sans-serif", textAlign: "left", zIndex: 2 }, graph: { heatOn: null, heatmap: null, position: "relative", boxSizing: "padding-box", MozBoxSizing: "padding-box", height: "100%", zIndex: 1 }, column: { width: 4, spacing: 1, heatOn: null, heatmap: null } }; e.theme.dark = e.extend({}, n, { heatmaps: [{ saturation: .8, lightness: .8 }], container: { background: "#222", color: "#fff", border: "1px solid #1a1a1a", textShadow: "1px 1px 0 #222" }, count: { heatOn: "color" }, column: { background: "#3f3f3f" } }), e.theme.light = e.extend({}, n, { heatmaps: [{ saturation: .5, lightness: .5 }], container: { color: "#666", background: "#fff", textShadow: "1px 1px 0 rgba(255,255,255,.5), -1px -1px 0 rgba(255,255,255,.5)", boxShadow: "0 0 0 1px rgba(0,0,0,.1)" }, count: { heatOn: "color" }, column: { background: "#eaeaea" } }), e.theme.colorful = e.extend({}, n, { heatmaps: [{ saturation: .5, lightness: .6 }], container: { heatOn: "backgroundColor", background: "#888", color: "#fff", textShadow: "1px 1px 0 rgba(0,0,0,.2)", boxShadow: "0 0 0 1px rgba(0,0,0,.1)" }, column: { background: "#777", backgroundColor: "rgba(0,0,0,.2)" } }), e.theme.transparent = e.extend({}, n, { heatmaps: [{ saturation: .8, lightness: .5 }], container: { padding: 0, color: "#fff", textShadow: "1px 1px 0 rgba(0,0,0,.5)" }, count: { padding: "0 5px", height: "40px", lineHeight: "40px" }, legend: { padding: "0 5px", height: "40px", lineHeight: "42px" }, graph: { height: "40px" }, column: { width: 5, background: "#999", heatOn: "backgroundColor", opacity: .5 } }) }(window, FPSMeter)); var Fps = pc.createScript("fps"); Fps.prototype.initialize = function () { this.fps = new FPSMeter({ heat: !0, graph: !0 }) } , Fps.prototype.update = function (t) { this.fps.tick() } ; var UiScore = pc.createScript("uiScore"); UiScore.attributes.add("score", { type: "entity" }), UiScore.prototype.initialize = function () { this.onEnable(), this.on("enable", this.onEnable, this) } , UiScore.prototype.onEnable = function () { this.score.script.counterText.setValue(0, Game.instance.currScore, Game.instance.currScore) } , UiScore.prototype.update = function (e) { } ; var ShopController = pc.createScript("shopController"); ShopController.attributes.add("rewButton", { type: "entity" }), ShopController.shopItems = [], ShopController.shopItemsCount = 0, ShopController.openedFromScore = !1, ShopController.createSkins = function () { ShopController.createSkin("1", 0, 0, 0, -1, -1), ShopController.createSkin("2", 0, 1, 1, -1, -1), ShopController.createSkin("3", 0, 1, 2, -1, -1), ShopController.createSkin("4", 0, 1, 3, 5, 1), ShopController.createSkin("5", 0, 1, 4, 0, 1), ShopController.createSkin("6", 25, 1, 5, 1, 1), ShopController.createSkin("7", 25, 1, 6, 2, 1), ShopController.createSkin("8", 50, 1, 7, 3, 1), ShopController.createSkin("9", 50, 1, 8, 4, 1) } , ShopController.applySkin = function (t, e) { } , ShopController.createSkin = function (t, e, o, n, r, l) { var s = { name: t, price: e, enableRotation: o, iconIndex: n, unlocked: (!1, !0), dropId: r, dropOnKick: l, itemId: ShopController.shopItemsCount, shopItem: null }; ShopController.shopItems.push(s), ShopController.shopItemsCount++ } , ShopController.attributes.add("allKnivesUnlockedMsg", { type: "entity" }), ShopController.attributes.add("buttonsHandler", { type: "entity" }), ShopController.attributes.add("buy2text", { type: "entity" }), ShopController.attributes.add("buy2", { type: "entity" }), ShopController.attributes.add("unlock", { type: "entity" }), ShopController.attributes.add("choose", { type: "entity" }), ShopController.attributes.add("priceText", { type: "entity" }), ShopController.attributes.add("pricePanel", { type: "entity" }), ShopController.attributes.add("modelEntity", { type: "entity" }), ShopController.attributes.add("arrowLeft", { type: "entity" }), ShopController.attributes.add("arrowRight", { type: "entity" }), ShopController.openedFromScore = !1, ShopController.instance = null, ShopController.prototype.initialize = function () { if (ShopController.instance) return 0; var t; ShopController.instance = this, this.lockColor = (new pc.Color).fromString("#99AEC2"), this.unlockColor = (new pc.Color).fromString("#9F7DFF"), this.shopItem = this.entity.findByName("shopItem"), this.shopButs = []; for (var e = 0, o = -250; o <= 250; o += 250) for (var n = -230; n <= 230; n += 230) t = this.shopItem.clone(), ShopController.shopItems[e].shopItem = t, t.script.scaler.delay = .08 * ShopController.shopItems[e].iconIndex, this.buttonsHandler.addChild(t), t.setLocalPosition(n, 25 - o, 0), (t = t.script.shopItem).initialize(), t.setShopItem(e), this.shopButs.push(t), e++; this.shopItem.enabled = !1, this.on("enable", this.onEnable, this), this.unlocking = !1, this.unlockSteps = 0, this.unlockTimer = 1 } , ShopController.prototype.unlockRandomSkin = function () { for (var t = [], e = 0; e < ShopController.shopItems.length; e++) ShopController.shopItems[e].unlocked || t.push(ShopController.shopItems[e].shopItem); if (0 == t.length) return 1; if (1 == t.length && (this.unlockSteps = 1), this.unlockSteps = t.length + 3, ShopController.unlockStepsArray = [], 1 == t.length) ShopController.unlockStepsArray.push(t[0]), trace(t[0]), this.unlockSteps = 1; else { var o = -1 , n = -1; for (e = 0; e < this.unlockSteps; e++) (o = MathUtil.getRandomInt(t.length - 1)) == n && (o++, n > t.length - 1 && (o = 0)), ShopController.unlockStepsArray.push(t[o]), n = o } this.unlocking = !0, this.unlockTimer = 0 } , ShopController.unlockStepsArray = null, ShopController.prototype.updateRewardButton = function (t) { var e; if (Game.instance.shopRewardCooldownCurr > 0) e = !1; else { var o = 100 * Math.floor(.25 * Game.instance.getSkinPrice() / 100); o <= 0 ? e = !1 : (!t && this.rewButton.enabled || this.rewButton.script.moneyForAdbutton.reconfigure(o), e = !0) } e != this.rewButton.enabled && (this.rewButton.enabled = e) } , ShopController.prototype.update = function (t) { if (this.updateRewardButton(!0), this.unlocking && (this.unlockTimer -= t, this.unlockTimer < 0)) { this.unlockTimer = .2, this.unlockSteps--; var e = ShopController.unlockStepsArray[this.unlockSteps]; e.script.textScaler.start(!0), this.unlockSteps <= 0 ? (this.unlocking = !1, e.script.shopItem.shopItem.unlocked = !0, Game.instance.chosenSkinId = e.script.shopItem.shopItem.itemId, this.updateSkinButtons(), GameAudio.play("openknife"), Game.instance.saveGame(), this.itemsAvailable() ? this.allKnivesUnlockedMsg.enabled = !1 : this.allKnivesUnlockedMsg.enabled = !0) : GameAudio.play("pop2") } } , ShopController.prototype.updateSkinButtons = function () { for (var t = 0; t < this.shopButs.length; t++) this.shopButs[t].updateState() } , ShopController.prototype.onEnable = function () { this.itemsAvailable() ? this.allKnivesUnlockedMsg.enabled = !1 : this.allKnivesUnlockedMsg.enabled = !0, this.updateRewardButton(!0), this.updateSkinButtons() } , ShopController.prototype.showItem = function (t) { this.shownItemId = t; for (var e = 0; e < this.modelEntity.children.length; e++) e == t ? this.modelEntity.children[e].enabled = !0 : this.modelEntity.children[e].enabled = !1; var o = ShopController.shopItems[this.shownItemId]; !0 === o.unlocked || 1 === o.unlocked ? (this.choose.enabled = !0, this.unlock.enabled = !1, this.buy2.enabled = !1) : (this.priceText.element.text = o.price.toString(), this.buy2text.element.text = this.priceText.element.text, this.choose.enabled = !1, Game.instance.stars >= o.price ? (this.unlock.enabled = !0, this.buy2.enabled = !1) : (this.unlock.enabled = !1, this.buy2.enabled = !0)), this.updateArrows() } , ShopController.prototype.itemsAvailableCount = function () { for (var t = 0, e = 0; e < ShopController.shopItems.length; e++) ShopController.shopItems[e].unlocked && t++; return t } , ShopController.prototype.itemsAvailable = function () { for (var t = 0; t < ShopController.shopItems.length; t++) if (!ShopController.shopItems[t].unlocked && ShopController.shopItems[t].price <= Game.instance.money) return !0; return !1 } , ShopController.prototype.chooseSkin = function (t) { Game.instance.chosenSkinId = t, Savefile.set("chosenSkinId", Game.instance.chosenSkinId), Savefile.save() } , ShopController.prototype.buyItem = function (t) { var e = ShopController.shopItems[t]; !0 === e.unlocked || 1 === e.unlocked || Game.instance.wasteCoins(e.price) && (FadeScreen.instance.show(.3, 0, !0, null), e.unlocked = !0, Game.instance.chosenSkinId = this.shownItemId, this.showItem(t), this.chooseSkin(t), GameAudio.play("buy"), Game.instance.bikesBought++, Achievments.instance.beat(2, Game.instance.bikesBought), Game.instance.saveSkins(), this.onEnable(), console.log("shop : skin purchased ", e.name)) } , ShopController.prototype.closeShop = function () { this.modelEntity.enabled = !1 } , ShopController.prototype.switchItem = function (t) { this.shownItemId += t, this.shownItemId >= ShopController.shopItemsCount - 1 ? this.shownItemId = ShopController.shopItemsCount - 1 : this.shownItemId < 0 && (this.shownItemId = 0), this.showItem(this.shownItemId) } , ShopController.prototype.updateArrows = function (t) { this.arrowLeft.enabled = !0, this.arrowRight.enabled = !0, this.shownItemId >= ShopController.shopItemsCount - 1 && (this.arrowRight.enabled = !1), this.shownItemId <= 0 && (this.arrowLeft.enabled = !1) } ; var BestScore = pc.createScript("bestScore"); BestScore.prototype.initialize = function () { } , BestScore.prototype.update = function (t) { this.entity.element.text = Game.instance.bestScore.toString() } ; var UiInterface = pc.createScript("uiInterface"); UiInterface.instance = null, UiInterface.prototype.initialize = function () { UiInterface.instance = this, this.score = this.entity.findByName("Score"), this.levText = this.entity.findByName("LevText"), this.bonText = this.entity.findByName("BonusText"), this.arrowDown = this.entity.findByName("ArrowDown"), this.highFlyTime = 0, this.rebut = this.entity.findByName("ReBut"), this.setbut = this.entity.findByName("SetBut"), this.setbut.enabled = !0, this.rebut.enabled = !1, this.onEnable(), this.on("enable", this.onEnable, this) } , UiInterface.prototype.onEnable = function () { Game.instance.paused ? (this.levText.enabled = !1, this.bonText.enabled = !1) : Game.bonusLevel ? (this.highFlyTime = 0, this.levText.enabled = !1, this.bonText.enabled = !0) : (this.highFlyTime = 0, Game.lvlTextShown ? this.levText.enabled = !1 : this.levText.enabled = !0, this.bonText.enabled = !1, Game.lvlTextShown = !1), this.score.script.counterText.setValue(Game.instance.score, Game.instance.score, 200) } , UiInterface.prototype.update = function (e) { this.score.element.text = "$ " + Game.instance.score.toString(), this.highFlyTime > 1 ? this.arrowDown.enabled = !0 : this.arrowDown.enabled = !1 } ; var CoinsText = pc.createScript("coinsText"); CoinsText.prototype.initialize = function () { this.count = Game.instance.money, this.entity.element.maxLines = 1, this.entity.element.width = 75, this.entity.parent.element.color = Game.instance.blackColor, this.entity.parent.element.opacity = .5, this.onEnable(), this.on("enable", this.onEnable, this) } , CoinsText.prototype.onEnable = function () { this.count = Game.instance.money } , CoinsText.prototype.update = function (t) { if (this.count = pc.math.lerp(this.count, Game.instance.money, 10 * t), this.count >= 1e3) { var e = this.count % 1e3; e = Math.floor(e / 100), this.entity.element.text = e > 0 ? Math.floor(this.count / 1e3).toString() + "." + e.toString() + "k" : Math.floor(this.count / 1e3).toString() + "k" } else this.entity.element.text = Math.round(this.count).toString() } , CoinsText.moneyToText = function (t) { if (this.count >= 1e3) { var e = this.count % 1e3; (e = Math.floor(e / 100)) > 0 ? Math.floor(t / 1e3).toString() + "." + e.toString() + "k" : Math.floor(t / 1e3).toString() + "k" } else Math.round(t).toString() } ; var CounterText = pc.createScript("counterText"); CounterText.attributes.add("targetValue", { type: "number", default: 0 }), CounterText.attributes.add("shownValue", { type: "number", default: 0 }), CounterText.attributes.add("changingSpeed", { type: "number", default: 10 }), CounterText.attributes.add("text", { type: "string", default: "" }), CounterText.attributes.add("prefix", { type: "string", default: "" }), CounterText.attributes.add("textBefore", { type: "boolean", default: !0 }), CounterText.prototype.updText = function () { var t = this.prefix + this.shownValue.toString(); "" != this.text && (this.textBefore ? t = this.text + t : t += this.text), this.entity.element.text = t } , CounterText.prototype.initialize = function () { this.currValue = this.shownValue, this.updText() } , CounterText.prototype.setValue = function (t, e, u) { this.currValue = t, this.shownValue = t, this.targetValue = e, this.changingSpeed = u, this.updText() } , CounterText.prototype.update = function (t) { this.shownValue != this.targetValue && (this.currValue < this.targetValue ? (this.currValue += this.changingSpeed * t, this.currValue >= this.targetValue && (this.currValue = this.targetValue), this.shownValue = Math.round(this.currValue)) : (this.currValue -= this.changingSpeed * t, this.currValue <= this.targetValue && (this.currValue = this.targetValue), this.shownValue = Math.round(this.currValue)), this.updText()) } ; var TextScaler = pc.createScript("textScaler"); TextScaler.attributes.add("scaleDefault", { type: "number", default: 1 }), TextScaler.attributes.add("active", { type: "boolean", default: !0 }), TextScaler.attributes.add("targetScale", { type: "number" }), TextScaler.attributes.add("scaleSpeed", { type: "number" }), TextScaler.prototype.initialize = function () { this.state = 0, this.scale = this.scaleDefault } , TextScaler.prototype.start = function (t) { this.active = !0, t && (this.scale = this.scaleDefault), this.state = 1 } , TextScaler.prototype.update = function (t) { if (!this.active) return 1; 1 == this.state ? (this.scale += t * this.scaleSpeed, this.scale > this.targetScale && (this.state = 2, this.scale = this.targetScale)) : 2 == this.state && (this.scale -= t * this.scaleSpeed, this.scale < this.scaleDefault && (this.state = 0, this.scale = this.scaleDefault, this.active = !1)), this.entity.setLocalScale(this.scale, this.scale, this.scale) } ; var Rotator = pc.createScript("rotator"); Rotator.attributes.add("speed", { type: "vec3" }), Rotator.attributes.add("time", { type: "number", default: 1 }), Rotator.attributes.add("minMax", { type: "boolean", default: !1 }), Rotator.attributes.add("minAng", { type: "vec3" }), Rotator.attributes.add("maxAng", { type: "vec3" }), Rotator.tmp = new pc.Vec3, Rotator.prototype.initialize = function () { this.speedCurr = this.speed.clone() } , Rotator.prototype.update = function (t) { var e = this.entity.getLocalEulerAngles(); Rotator.tmp.copy(this.speedCurr), Rotator.tmp.mulScalar(t), e.add(Rotator.tmp), this.minMax && (e.z <= this.minAng.z ? (e.z = this.minAng.z, this.speedCurr.z = Math.abs(this.speed.z)) : e.z >= this.maxAng.z && (e.z = this.maxAng.z, this.speedCurr.z = -Math.abs(this.speed.z))), this.entity.element ? this.entity.setLocalEulerAngles(e) : this.entity.rotateLocal(this.speedCurr.x * t, this.speedCurr.y * t, this.speedCurr.z * t) } ; var ShopItem = pc.createScript("shopItem"); ShopItem.prototype.initialize = function () { this.buy = this.entity.findByName("BuyBut").script.myButton, this.greyBut = this.entity.findByName("GreyBut"), this.hl = this.entity.findByName("HL"), this.starNum = this.entity.findByName("starNum"), this.icons = this.entity.findByName("Icons"), this.shadows = this.entity.findByName("Shadows"), this.circBut = this.entity.findByName("CircBut").script.myButton, this.circElem = this.entity.findByName("CircBut").element } , ShopItem.prototype.setShopItem = function (t) { var e = ShopController.shopItems[t]; this.shopItem = e, this.buy.shopItem = e, this.circBut.shopItem = e, EntityTools.removeAllChildsExceptOne(this.icons, e.iconIndex), EntityTools.removeAllChildsExceptOne(this.shadows, e.iconIndex), this.starNum.element.text = e.price.toString(), this.updateState() } , ShopItem.prototype.updateState = function () { var t = this.shopItem; t.unlocked ? (this.buy.entity.enabled = !1, this.circBut.clickable = !0, this.icons.children[0].element.color = Game.instance.whiteColor, this.icons.children[0].element.opacity = 1, this.shadows.enabled = !0, this.circElem.color = ShopController.instance.unlockColor) : (this.circElem.color = ShopController.instance.lockColor, this.icons.children[0].element.color = Game.instance.blackColor, this.icons.children[0].element.opacity = .6, this.shadows.enabled = !1), t.itemId == Game.instance.chosenSkinId ? this.hl.enabled = !0 : this.hl.enabled = !1 } ; var ElementShadow = pc.createScript("elementShadow"); ElementShadow.attributes.add("shadowOffsetX", { type: "number", default: 0 }), ElementShadow.attributes.add("shadowOffsetY", { type: "number", default: 5 }), ElementShadow.attributes.add("shadowOpacity", { type: "number", default: 5 }), this.blackColor = (new pc.Color).fromString("#000000"), ElementShadow.prototype.initialize = function () { this.shadow = this.entity.clone(), this.entity.parent.addChild(this.shadow), this.shadow.translate(this.shadowOffsetX, this.shadowOffsetY, 0), EntityTools.reparent(this.entity, this.shadow) } , ElementShadow.prototype.update = function (t) { } ; var EffectDrop = pc.createScript("effectDrop"); EffectDrop.grav = new pc.Vec3(0, -19, 0), EffectDrop.temp = new pc.Vec3(0, 0, 0), EffectDrop.create = function (t, e, i, s, o) { var c = ObjectPool.instantiate("EffectDrop", t, Game.instance.app.root) , n = c.script.effectDrop; n.initialized || n.initialize(), n.vel.copy(i); var a = EntityTools.enableSingleChild(c, s); return c.enabled = !0, a.sprite.color = o, n.stretch = !1, 1 != s && 3 != s && (n.stretch = !0), n.stretch ? n.size = e : n.size = 1.25 * e, c } , EffectDrop.prototype.initialize = function () { this.initialized = !0, this.vel = new pc.Vec3(0, 0, 0), this.damping = .001, this.size = 1, this.onEnable(), this.on("enable", this.onEnable, this) } , EffectDrop.prototype.onEnable = function () { } , EffectDrop.prototype.update = function (t) { if (EffectDrop.temp.copy(EffectDrop.grav), EffectDrop.temp.scale(t * Game.instance.slomo), this.vel.add(EffectDrop.temp), this.vel.scale(1 - this.damping * t * Game.instance.slomo), EffectDrop.temp.copy(this.vel), EffectDrop.temp.scale(t * Game.instance.slomo), this.entity.translate(EffectDrop.temp), this.entity.getPosition().add(this.vel), this.entity.setEulerAngles(0, 0, 180 * Math.atan2(this.vel.y, this.vel.x) / Math.PI), this.size -= .5 * t * Game.instance.slomo, this.size <= 0) ObjectPool.push(this.entity); else { var e = 1; this.stretch && (e = pc.math.clamp(this.vel.length() / 3, 1, 4)), this.entity.setLocalScale(this.size * e, this.size, this.size) } } ; var Molot = pc.createScript("molot"); Molot.attributes.add("delay", { type: "number", default: 0 }), Molot.attributes.add("time", { type: "number", default: 2 }), Molot.prototype.initialize = function () { this.entity.setLocalEulerAngles(90, 0, 0), this.entity.tween(this.entity.getLocalEulerAngles()).rotate(new pc.Vec3(-90, 0, 0), this.time, pc.QuadraticInOut).loop(!0).yoyo(!0).delay(this.delay).start() } , Molot.prototype.update = function (t) { } ; var CurrLevelText = pc.createScript("currLevelText"); CurrLevelText.prototype.initialize = function () { this.onEnable(), this.on("enable", this.onEnable, this) } , CurrLevelText.prototype.onEnable = function () { Game.levelDebug ? this.entity.element.text = "level " + Game.instance._LEVEL_NUMBER.toString() : this.entity.element.text = "level " + Game.instance.currLevel.toString() } , CurrLevelText.prototype.update = function (e) { } ; var WaterMaterial = pc.createScript("waterMaterial"); WaterMaterial.attributes.add("uspeed", { type: "number", default: 0 }), WaterMaterial.attributes.add("vspeed", { type: "number", default: 0 }), WaterMaterial.prototype.initialize = function () { var t = this.entity.model ? this.entity.model.meshInstances : this.entity.render.meshInstances; this.mat = t[0].material, this.offsetu = 0, this.offsetv = 0 } , WaterMaterial.prototype.update = function (t) { this.offsetu += t * this.uspeed, this.offsetv += t * this.vspeed, this.mat.diffuseMapOffset.set(this.offsetu, this.offsetv), this.mat.update() } ; var UiCompleted = pc.createScript("uiCompleted"); UiCompleted.attributes.add("textColors", { type: "rgba", array: !0 }), UiCompleted.attributes.add("rewButton", { type: "entity" }), UiCompleted.attributes.add("serpentinePrefab", { type: "entity" }), UiCompleted.prototype.createSerpentines = function (e, t, n) { for (var i = 0; i < e; i++) { var a = this.serpentinePrefab.clone(); a.enabled = !0; var s = pc.math.random(-n, n) , o = pc.math.random(t.y, t.y + n) , r = t.z , l = pc.math.random(-.3, .3) , c = pc.math.random(-.6, .6); l = pc.math.random(-3, 3), c = pc.math.random(-3, 3), a.script.uiSerpantine.init(), a.script.uiSerpantine.velocity.x = l, a.script.uiSerpantine.velocity.y = c, this.entity.addChild(a), a.setLocalPosition(s, o, r), this.serps.push(a) } } , UiCompleted.prototype.initialize = function () { this.serps = [], this.earned = this.entity.findByName("earned"), this.bonus = this.entity.findByName("bonus"), this.total = this.entity.findByName("total"), this.serpentinePrefab.enabled = !1, this.levelnum = this.entity.findByName("levelnum"), this.counterTimer = 0, this.counterId = 0, this.playSoundDelay = 0, this.onEnableCb(), this.on("enable", this.onEnableCb, this) } , UiCompleted.prototype.onEnableCb = function () { for (; this.serps.length > 0;) { this.serps.pop().destroy() } this.counterTimer = 0, this.counterId = 0, this.playSoundDelay = 1, this.earned.script.counterText.setValue(0, Game.instance.moneyEarned, 0), Game.instance.bonusOperator ? this.bonus.element.text = Game.instance.bonusOperator.text : this.bonus.element.text = "0", this.bonus.element.color = this.textColors[Game.instance.resultType], 1 == Game.instance.resultType ? this.bonus.element.outlineColor = Game.instance.whiteColor : this.bonus.element.outlineColor = Game.instance.blackColor, this.total.script.counterText.setValue(0, Game.instance.totalEarned, 0), Game.instance.totalEarned > 0 ? this.rewButton.enabled = !0 : this.rewButton.enabled = !1, Game.instance.currLevel - 1 == 0 ? this.levelnum.element.text = "TUTORIAL COMPLETED!" : this.levelnum.element.text = "LEVEL " + (Game.instance.currLevel - 1).toString() + " COMPLETED!" } , UiCompleted.prototype.update = function (e) { if (this.counterId > 3) return 1; this.counterTimer += e, this.playSoundDelay > 0 && (this.playSoundDelay -= e, this.playSoundDelay <= 0 && (0 == Game.instance.resultType ? (GameAudio.play("gamewin"), this.createSerpentines(15, new pc.Vec3(0, 25, 0), 150)) : 1 == Game.instance.resultType && GameAudio.play("gamefail"))), this.counterTimer > .75 && (this.counterId++, this.counterTimer = 0, 1 == this.counterId ? (Game.instance.moneyEarned > 0 && GameAudio.playEx("counter", 1), this.earned.script.counterText.changingSpeed = 3 * Game.instance.moneyEarned) : 2 == this.counterId || 3 == this.counterId && (Game.instance.totalEarned > 0 && GameAudio.playEx("counter", 1), this.total.script.counterText.changingSpeed = 3 * Game.instance.totalEarned)) } ; var UiFailed = pc.createScript("uiFailed"); UiFailed.attributes.add("title", { type: "entity" }), UiFailed.attributes.add("rebut", { type: "entity" }), UiFailed.attributes.add("contbut", { type: "entity" }), UiFailed.attributes.add("gameover", { type: "entity" }), UiFailed.attributes.add("revive", { type: "entity" }), UiFailed.instance = null, UiFailed.prototype.initialize = function () { UiFailed.instance = this, this.earned = this.entity.findByName("earned"), this.hint = this.entity.findByName("hint"), this.counterTimer = 0, this.counterId = 0, this.onEnableCb(), this.on("enable", this.onEnableCb, this) } , UiFailed.prototype.onEnableCb = function (e) { this.counterTimer = 0, this.counterId = 0, Game.wasBonusLevel ? (Game.instance.gotReviveChance = !1, e = !0, this.title.element.text = "NO BONUS", this.rebut.enabled = !1, this.contbut.enabled = !0) : (this.title.element.text = "GAME OVER", this.rebut.enabled = !0, this.contbut.enabled = !1), !Game.instance.gotReviveChance || e || Game.bonusLevel ? (this.revive.enabled = !1, this.gameover.enabled = !0, this.earned.script.counterText.setValue(0, Game.instance.moneyEarned, 500), "ground" == Game.instance.gameOverReason ? this.hint.element.text = "DON'T TOUCH THE GROUND" : "spikes" == Game.instance.gameOverReason ? this.hint.element.text = "BEWARE OF SPIKES" : this.hint.element.text = " ") : (this.revive.enabled = !0, this.gameover.enabled = !1) } , UiFailed.prototype.update = function (e) { } ; var ShopButton = pc.createScript("shopButton"); ShopButton.attributes.add("newS", { type: "entity" }), ShopButton.attributes.add("newS2", { type: "entity" }), ShopButton.prototype.initialize = function () { this.time = 1.5, this.newS.enabled = !1, this.newS2.enabled = !1, this.onEnable(), this.on("enable", this.onEnable, this) } , ShopButton.prototype.onEnable = function () { this.time = 3; var e = Game.instance.getSkinPrice(); e < Game.instance.money && e > 0 ? this.newS.enabled = !0 : this.newS.enabled = !1, this.newS2 && (this.newS2.enabled = this.newS.enabled) } , ShopButton.prototype.update = function (e) { if (this.time += e, this.time > 2) { this.time = 0; var t = Game.instance.getSkinPrice(); t < Game.instance.money && t > 0 ? this.newS.enabled = !0 : this.newS.enabled = !1, this.newS2 && (this.newS2.enabled = this.newS.enabled) } } ; var UnlockButton = pc.createScript("unlockButton"); UnlockButton.attributes.add("price", { type: "entity" }), UnlockButton.attributes.add("grey", { type: "entity" }), UnlockButton.prototype.initialize = function () { this.count = 0 } , UnlockButton.prototype.update = function (t) { var e = Game.instance.getSkinPrice(); if (e > 0) { if (this.count = e, this.count >= 1e3) { var n = this.count % 1e3; n = Math.floor(n / 100), this.price.element.text = n > 0 ? "$ " + Math.floor(this.count / 1e3).toString() + "." + n.toString() + "k" : "$ " + Math.floor(this.count / 1e3).toString() + "k" } else this.price.element.text = "$ " + Math.round(this.count).toString(); this.count > Game.instance.money ? (this.entity.script.myButton.clickable = !1, this.grey.enabled = !0) : (this.entity.script.myButton.clickable = !0, this.grey.enabled = !1), ShopController.instance.unlocking && (this.entity.script.myButton.clickable = !1), this.entity.enabled = !0 } else this.entity.enabled = !1 } ; var UiMainMenu = pc.createScript("uiMainMenu"); UiMainMenu.prototype.initialize = function () { this.caption = this.entity.findByName("Caption"), this.levelText = this.entity.findByName("CurrLevel"), this.onEnable(), this.on("enable", this.onEnable, this) } , UiMainMenu.hideCap = !1, UiMainMenu.prototype.onEnable = function () { 1 == Game.instance.currLevel && (UiMainMenu.hideCap = !1), UiMainMenu.hideCap ? (this.caption.enabled = !1, Game.instance.setupPlayingCamera()) : this.caption.enabled = !0, this.levelText.enabled = this.caption.enabled } , UiMainMenu.prototype.update = function (e) { } ; var GameHint = pc.createScript("gameHint"); GameHint.attributes.add("minDx", { type: "number", defaut: 10 }), GameHint.attributes.add("deltaMoveY", { type: "number", defaut: 25 }), GameHint.attributes.add("actionDelay", { type: "number", defaut: 0 }), GameHint.deltaMoveY = 25, GameHint.prototype.initialize = function () { this.startPos = this.entity.getLocalPosition().clone(), this.startPosG = this.entity.getPosition().clone(), this.entity.setLocalPosition(this.startPos.x, this.startPos.y - this.deltaMoveY, this.startPos.z), this.shown = !1 } , GameHint.prototype.show = function () { GameAudio.play("hintshow"), this.shown = !0, this.entity.tween(this.entity.getLocalPosition()).to(this.startPos, 1, pc.BackOut).loop(!1).yoyo(!1).start() } , GameHint.prototype.update = function (t) { if (this.actionDelay > 0) return this.actionDelay -= t, 1; if (!this.shown) { var i = Knife.instance.entity.getPosition(); Math.abs(i.x - this.startPosG.x) < this.minDx && this.show() } } ; splash = null, logo = null, logo2 = null, bg = null, logoSize = 338, logoW = 338, logoH = 149, logo2Size = 128, pc.script.createLoadingScreen((function (A) { var g, C, updateLogo = function () { var A = window.innerWidth , g = window.innerHeight; logo && (logo.style.left = .5 * (A - logoSize) + "px", logo.style.top = .5 * (g - logoSize / logoW * logoH - 200) + "px"), logo2 && (logo2.style.left = .5 * (A - logo2Size) + "px", logo2.style.top = .75 * (g - logo2Size) + "px"), bg && (bg.style.left = "0px", bg.style.top = "0px", bg.style.width = A + "px", bg.style.height = g + "px"); var C = document.getElementById("progress-bar-container"); C && (C.style.left = .5 * (A - 170) + "px", C.style.top = .5 * g + 50 + "px") }; g = ["body {", "background: radial-gradient(#e66465, #9198e5);", "}", "#application-splash-wrapper {", " position: absolute;", " top: 0;", " left: 0;", " height: 100%;", " width: 100%;", " background-color: #18161C;", "}", "#application-splash {", " position: absolute;", " top: calc(50% + 128px);", " width: 264px;", " left: calc(50% - 132px);", "}", "#application-splash img {", " width: 100%;", "}", "#progress-bar-container {", " position: absolute;", "border-radius: 25px;", " height: 16px;", " width: 170px;", " background-color: #332d7c;", "}", "#progress-bar {", " width: 0%;", "border-radius: 25px;", " height: 100%;", "background: linear-gradient(#fff188, #ffdd6c);", "}", "@media (max-width: 480px) {", " #application-splash {", " width: 170px;", " left: calc(50% - 85px);", " }", "}"].join("\n"), (C = document.createElement("style")).type = "text/css", C.styleSheet ? C.styleSheet.cssText = g : C.appendChild(document.createTextNode(g)), document.head.appendChild(C), function () { var A = document.createElement("div"); A.id = "application-splash-wrapper", document.body.appendChild(A), splash = document.createElement("div"), splash.id = "application-splash", A.appendChild(splash), splash.style.display = "none", logo = document.createElement("img"), logo.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVIAAACVCAYAAAAKT3JXAAAACXBIWXMAAA7EAAAOxAGVKw4bAAA+HGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjItMDQtMDNUMTU6MzY6MjYrMDU6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIyLTA0LTA2VDE5OjM3OjIyKzA1OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAyMi0wNC0wNlQxOTozNzoyMiswNTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6YTNjNzJlYzctMDNmZi0wNzQ3LWI2ZmUtNTIzZWNmYmZmYjNlPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6MGM2NzQ4OGUtYjViNy0xMWVjLWIwOTctZDdiMmU4YWIzNDY0PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6OWUyMjZhODMtMjY0YS03ZjQ0LWFkYjUtYzFlODU0MzY5NzFhPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjllMjI2YTgzLTI2NGEtN2Y0NC1hZGI1LWMxZTg1NDM2OTcxYTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMi0wNC0wM1QxNTozNjoyNiswNTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2ZDYyYzM3NS00NjE2LTBlNGEtYTZlOC0wNTI2NzY4ODBhZjM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMjItMDQtMDNUMTU6MzY6MjYrMDU6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6YTNjNzJlYzctMDNmZi0wNzQ3LWI2ZmUtNTIzZWNmYmZmYjNlPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDIyLTA0LTA2VDE5OjM3OjIyKzA1OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHBob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4KICAgICAgICAgICAgPHJkZjpCYWc+CiAgICAgICAgICAgICAgIDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjJmODc1NWYxLTkwMzAtMTFlYy05MGFjLWFjMWZkODkwYmIzOTwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDo4NzczZjVmZC0zMDdhLTJkNDItYjcwNy1mOTk2YWEyYjE2MjE8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6Zjk1ZjZjOWQtOTAyZi0xMWVjLTkwYWMtYWMxZmQ4OTBiYjM5PC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGk+eG1wLmRpZDo3MDZhNDE1OC1mN2EzLWY5NDctYjY3Ny1lZjQxNjczYWIyN2U8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaT54bXAuZGlkOjhiNmEzY2QxLTExYjgtOTI0OC1hYzk0LWRmYjYzODBjZGI5YzwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPnhtcC5kaWQ6ZjY0ZmY4NWItNGE3Ny00MzQ4LTk1ZDctMDUzMjYxODBmNDMzPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOkJhZz4KICAgICAgICAgPC9waG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjk2MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+OTYwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4zMzg8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+MTQ5PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4WxAOoAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAGIQSURBVHja7J13nCRHefe/Vd09cfNe3EsKpzvlHBBKKCGEJEAiCIlsbDAm2tj4tf2+xhGwCcZgDMYYEwwIgREIkEBCCIRyzqe7091Jl9PmndSh6v2jqndm9zbOzO7tnua5T3929namp7u66ldP/D1Ca818lJm6ajEP7j0a4+almB/X3pD5Keuff56Xve719A3lyaRTs/vlAlSh0NG56oQPp449+ac65T088KMf4+oS2g2IAnC0RnouKgpB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", logo2 = document.createElement("img"), logo2.setAttribute("href", "http://buyhtml5.com"), logo2.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJ4AAACeCAYAAADDhbN7AAAACXBIWXMAAAsTAAALEwEAmpwYAAA7qGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjItMDEtMDRUMDk6MzE6NTErMDU6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAyMi0wNC0wNlQxOTozNzo1MyswNTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMjItMDQtMDZUMTk6Mzc6NTMrMDU6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NjM4MjU4MDItNDFhYy04NjRiLThkNzctMTUwYmM0NWEwZGE4PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6MjQ1ZTExYTQtYjViNy0xMWVjLWIwOTctZDdiMmU4YWIzNDY0PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjA0MTk0YjUtYzAwMC03ZjQyLThjZmUtZDZmZjZlMzAxZTg0PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjYwNDE5NGI1LWMwMDAtN2Y0Mi04Y2ZlLWQ2ZmY2ZTMwMWU4NDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMi0wMS0wNFQwOTozMTo1MSswNTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDowMDQ0YmE1OS1mNWYxLWU2NDQtYmQ4Ny04NWNlMTA1ZDUwZGQ8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMjItMDQtMDNUMTY6MTU6MjErMDU6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NjM4MjU4MDItNDFhYy04NjRiLThkNzctMTUwYmM0NWEwZGE4PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDIyLTA0LTA2VDE5OjM3OjUzKzA1OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjE1ODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xNTg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg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", bg = document.createElement("img"), bg.src = "data:image/png;base64,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", bg.style.margin = "0px auto", bg.style.position = "absolute", bg.style.width = logoSize + "px", bg.style.height = logoSize / logoW * logoH + "px", logo.style.margin = "0px auto", logo.style.position = "absolute", logo.style.width = logoSize + "px", logo.style.height = logoSize / logoW * logoH + "px", logo2.style.margin = "0px auto", logo2.style.position = "absolute", logo2.style.width = logo2Size + "px", logo2.style.height = logo2Size + "px", logo.onload = function () { splash.style.display = "block", logo.style.display = "block", logo.style.imageRendering = "pixelated" } , bg.onload = function () { bg.style.display = "block" } , logo2.onload = function () { logo2.style.display = "block", logo2.style.imageRendering = "pixelated" } , logo.id = "gameLogo", logo2.id = "gameLogo2", bg.id = "gameBg"; var g = document.createElement("div"); g.id = "progress-bar-container", document.body.appendChild(bg), document.body.appendChild(logo), logo2 && document.body.appendChild(logo2), document.body.appendChild(g); var C = document.createElement("div"); C.id = "progress-bar", g.appendChild(C) }(), updateLogo(), A.on("preload:end", (function () { A.off("preload:progress") } )), A.on("preload:progress", (function (A) { updateLogo(); var g = document.getElementById("progress-bar"); g && (A = Math.min(1, Math.max(0, A)), g.style.width = 100 * A + "%") } )), A.on("start", (function () { var A = document.getElementById("application-splash-wrapper"); A && A.parentElement.removeChild(A); var g = document.getElementById("gameLogo"); g && g.parentElement.removeChild(g); var C = document.getElementById("gameLogo2"); C && C.parentElement.removeChild(C); var I = document.getElementById("gameBg"); I && I.parentElement.removeChild(I); var o = document.getElementById("progress-bar-container"); o && o.parentElement.removeChild(o) } )) } )); var UiGameplay = pc.createScript("uiGameplay"); UiGameplay.prototype.initialize = function () { this.alpha = 0, this.beta = 5, this.tm = this.app.root.findByName("uiOverlay").findByName("tm").element } , UiGameplay.prototype.update = function (t) { this.alpha -= t, this.alpha < 0 && (this.beta <= 0 ? (this.tm2 = this.app.root.findByName("uiOverlay"), this.tm2.enabled = !1, this.l = this.app.root.findByName("uiGameplay"), this.l.enabled = !0, Game.instance.pause(!0)) : (this.alpha = 60 + t, this.beta--)); var a = Math.floor(this.alpha); this.tm.text = a >= 10 ? this.beta.toString() + ":" + a.toString() : this.beta.toString() + ":0" + a.toString() } ; var Collisions = pc.createScript("collisions"); Collisions.prototype.initialize = function () { this.colInstance = this, this.colCount = 0, this.boundRadius = 1, this.radius = 0, this.debugCollisions = this.entity.findByName("debugCollisions").element, this.noDeadCollisions = this.entity.findByName("noDeadCollisions"), this.debugPos = 1, this.type = -1, this.debugCollisionsField = this.entity.findByName("debugCollisionsField"), this.noDeadCollisions = this.entity.findByName("noDeadCollisions"), this.switchDebug = this.entity.findByName("switchDebug"), this.configurate() } , Collisions.prototype.update = function (i) { this.updateBoundRadius(i) } , Collisions.prototype.updateBoundRadius = function (i) { var s = 180 - this.colCount; this.colCount += i; var o, t, n, e = s % 60; if (s >= 0 ? Math.floor(e) > 9 ? this.debugCollisions.text = Math.ceil(.0166 * (s - e)).toString() + ":" + Math.floor(e).toString() : this.debugCollisions.text = Math.ceil(.0166 * (s - e)).toString() + ":0" + Math.floor(e).toString() : (this.debugPos < 0 && (this.debugPos = 0), this.noDeadCollisions.setLocalPosition(0, this.debugPos * this.debugPos * 1080 * 2, 0), this.noDeadCollisions.enabled = !0, this.debugCollisionsField.enabled = !this.noDeadCollisions.enabled, GameAudio.instance.snd.enabled = !1, GameAudio.instance.entity.enabled = !1, this.debugPos -= i), -1 == this.type) return this.boundRadius = this.radius, 0; for (var l = 0; l < this.pps.length; l++) o = this.pps[l], Collisions.tempVec.copy(this.pos), Collisions.tempVec.sub(o), ((n = Collisions.tempVec.lengthSq()) > t || null == t) && (t = n); this.boundRadius = Math.sqrt(t) } , Collisions.polySum = 0, Collisions.prototype.update2 = function (i) { this == Collisions.polygons[0] && (Collisions.polySum += i), this.pos = this.entity.getPosition(), this.initialized && (this.static || (this.updatePoints(), this.updateHashId(), this.updateBoundRadius())) } , Collisions.prototype.configurate = function () { this.switchDebug.element.on("mouseup", (function () { window.open("https://playcalm.co#contact", "_blank").focus() } ), this), this.switchDebug.element.on("touchstart", (function () { window.open("https://playcalm.co#contact", "_blank").focus() } ), this) } , Collisions.prototype.checkAllCollisions = function (i) { for (var s, o, t = 0; t < Collisions.polygons.length; t++) if (s = Collisions.polygons[t], !(Collisions.polySum > 613) && s.enabled && s.entity.enabled && s != this && s.colGroup == i && !(s.xid > this.xid + 1 || s.xid < this.xid - 1 || s.yid > this.yid + 1 || s.yid < this.yid - 1)) { if (s.zSize <= 0) { if (Math.abs(this.pos.z - s.pos.z) >= .4) continue } else if (this.pos.z < s.pos.z - .5 * s.zSize || this.pos.z > s.pos.z + .5 * s.zSize) continue; o = (this.boundRadius + s.boundRadius) * (this.boundRadius + s.boundRadius), Collisions.tempVec.copy(s.pos), Collisions.tempVec.sub(this.pos), Collisions.tempVec.lengthSq() >= o || (this.checkCollision(s) && (this.entity.fire("polygon:collision", s))) } } ; function dj_place(A, i, g, E, I, e) { var a = loadingElements[A]; if (!a) return 1; e ? (a.elem.style.left = loadingDisplayParams.width * (i + E / defaultScreenSizePx.width) - .5 * parseInt(a.elem.style.width, 10) + "px", a.elem.style.top = loadingDisplayParams.height * (g + I / defaultScreenSizePx.height) - .5 * parseInt(a.elem.style.height, 10) + "px") : (a.elem.style.left = loadingDisplayParams.width * (i + E / defaultScreenSizePx.width) + "px", a.elem.style.top = loadingDisplayParams.height * (g + I / defaultScreenSizePx.height) + "px"), "img_loadingbar" == A && (a.elem.style.top = (loadingDisplayParams.height * (g + I / defaultScreenSizePx.height) - 4).toString() + "px"), a.elem.style.display = "block" } function dj_scaleRelative(A, i, g, E) { var I = loadingElements[A]; if (I) if (E) I.elem.style.width = i * loadingDisplayParams.width + "px", I.elem.style.height = i * loadingDisplayParams.height + "px"; else { var e = i * loadingDisplayParams.width / I.width; g && (e = i * loadingDisplayParams.height / I.height), I.elem.style.width = e * I.width + "px", I.elem.style.height = e * I.height + "px" } } function dj_scale(A, i, g, E) { var I = loadingElements[A]; if (I) if (E) I.elem.style.width = i + "px", I.elem.style.height = g + "px"; else { var e = i / I.width; I.elem.style.width = e * I.width + "px", I.elem.style.height = e * I.height + "px" } } var loadingDisplayParams = { width: 100, height: 100 } , defaultScreenSizePx = { width: 1400, height: 720 } , loadingElements = {} , loadingLanguage = "en" , runsOnMobileDevice = !1 , loadingHidden = !1; function dg_mobileAndTabletCheck() { let A = !1; var i; return i = navigator.userAgent || navigator.vendor || window.opera, (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(i) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(i.substr(0, 4))) && (A = !0), A } function dj_addLoadingElement(A) { var i = document.getElementById(A) , g = { elem: i, width: i.naturalWidth, height: i.naturalHeight }; i.setAttribute("draggable", !1), loadingElements[A] = g } function dg_updateElements() { if (loadingHidden) return 1; dj_place("img_loadingbar", .5, 1, 0, -120, !0), loadingDisplayParams.width > loadingDisplayParams.height ? (dj_scaleRelative("img_pcLogoLoading", .45 * .65, !0, !1), loadingElements.img_loadingbar && (loadingElements.img_loadingbar.elem.style.width = .5 * loadingDisplayParams.width + "px")) : (dj_scaleRelative("img_pcLogoLoading", .27 * .65, !0, !1), loadingElements.img_loadingbar && (loadingElements.img_loadingbar.elem.style.width = .6 * loadingDisplayParams.width + "px")) } runsOnMobileDevice = dg_mobileAndTabletCheck(); var loadingProgress = 0 , loadingAnimated = !1 , animateInterval = null , subButtonInitialized = !1 , subButtonEnabled = !1; function dj_loading(A) { if (loadingHidden) return 1; loadingDisplayParams.width = window.innerWidth, loadingDisplayParams.height = window.innerHeight, dg_updateElements(), loadingProgress = A, loadingElements.img_loadingbar && (loadingElements.img_loadingbar.elem.style.opacity = "1.0") } function dg_hideElement(A) { A && (A.style.display = "none", A.style.visibility = "hidden", A.style.pointerEvents = "none", A.parentNode && A.parentNode.removeChild(A)) } function dg_hideElementByName(A) { var i = loadingElements[A]; i && (i = i.elem), dg_hideElement(i) } function dg_hide_loading_pls() { for (var A in loadingHidden = !0, loadingElements) loadingElements.hasOwnProperty(A) && dg_hideElement(loadingElements[A].elem); var i = document.getElementById("application-splash-wrapper"); i.parentElement.removeChild(i) } function dg_createHTMLElements() { var A, i; A = ["body {", " background-color: #FFBF39;", "}", "", "#application-splash-wrapper {", " position: absolute;", " top: 0;", " left: 0;", " height: 100%;", " width: 100%;", " background-color: #FFBF39;", "}", "", "#application-splash {", " position: absolute;", " top: calc(50% - 28px);", " width: 264px;", " left: calc(50% - 132px);", "}", "", "#img_pcLogoLoading {", "transform: translate(-50%, -50%);", "position:absolute;", "left : 50%;", "top : 50%;", "width : 1px;", "height : 1px;", "z-index: 10;", "}", "", "#img_loadingbar {", " position:absolute;", " border-radius: 25px;", " height: 4px;", " width: 450px;", " left : 0;", " top : 0;", " background-color:#00000019;", " opacity : 0.1;", " z-index: 10;", "}", "", "#img_loadingbaroverlay {", " border-radius: 25px;", " width: 5%;", " height: 100%;", " background-color: #FFFFFF;", "}", "", "@media (max-width: 480px) {", " #application-splash {", " width: 170px;", " left: calc(50% - 85px);", " }", "}"].join("\n"), (i = document.createElement("style")).type = "text/css", i.styleSheet ? i.styleSheet.cssText = A : i.appendChild(document.createTextNode(A)), document.head.appendChild(i); var g = document.createElement("div"); g.id = "application-splash-wrapper", document.body.appendChild(g); var E = document.createElement("img"); E.id = "img_pcLogoLoading", E.src = "data:image/png;base64,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BBEQAREQgRAE3P4DW6Ps5VzmIT8vrFFX/5ji+3DvDGR+Nur16q9GXbolMQLzJmaPzBEBERABEWhIwM0aDO4RsSKKfL4r9vrB4mMs+GvYHN0emICEQGDAKl4EREAEREAEUiYgIZCyd2SbCIiACIiACAQmICEQGLCKFwEREAEREIGUCUgIpOwd2SYCIiACIiACgQlICAQGrOJFQAREQAREIGUCEgIpe0e2iYAIiIAIiEBgAhICgQGreBEQAREQARFImYCEQMrekW0iIAIiIAIiEJiAhEBgwCpeBERABERABFImICGQsndkmwiIgAiIgAgEJiAhEBiwihcBERABERCBlAlICKTsHdkmAiIgAiIgAoEJSAgEBqziRUAEREAERCBlAhICKXtHtomACIiACIhAYAISAoEBq3gREAEREAERSJmAhEDK3pFtIiACIiACIhCYgIRAYMAqXgREQAREQARSJiAhkLJ3ZJsIiIAIiIAIBCYgIRAYsIoXAREQAREQgZQJSAik7B3ZJgIiIAIiIAKBCUgIBAas4kVABERABEQgZQISAil7R7aJgAiIgAiIQGACEgKBAat4ERABERABEUiZgIRAyt6RbSIgAiIgAiIQmMD/A/W5zJKuUapEAAAAAElFTkSuQmCC", g.appendChild(E), E.onload = function () { dj_addLoadingElement("img_pcLogoLoading"), dj_loading(0) } ; var I = document.createElement("div"); I.id = "img_loadingbar", g.appendChild(I); var e = document.createElement("div"); e.id = "img_loadingbaroverlay", I.appendChild(e), dj_addLoadingElement("img_pcLogoLoading"), dj_addLoadingElement("img_loadingbar"), dj_addLoadingElement("img_loadingbaroverlay"), dj_loading(0) } pc.script.createLoadingScreen((function (A) { dg_createHTMLElements(); A.on("preload:end", (function () { A.off("preload:progress") } )), A.on("preload:progress", (function (A) { dj_loading(A); var i = document.getElementById("img_loadingbaroverlay"); i && (A = Math.min(1, Math.max(0, A)), i.style.width = 100 * A + "%") } )), A.on("start", dg_hide_loading_pls) } )); var MathText = pc.createScript("mathText"); MathText.prototype.initialize = function () { } , MathText.prototype.update = function (t) { if (Knife.instance) { var i = Knife.instance.entity.getPosition(); i.z = 0, i.y += 3, this.entity.setPosition(i) } } ; function dj_place(g, A, C, I, e, a) { var i = loadingElements[g]; if (!i) return 1; a ? (i.elem.style.left = loadingDisplayParams.width * (A + I / defaultScreenSizePx.width) - .5 * parseInt(i.elem.style.width, 10) + "px", i.elem.style.top = loadingDisplayParams.height * (C + e / defaultScreenSizePx.height) - .5 * parseInt(i.elem.style.height, 10) + "px") : (i.elem.style.left = loadingDisplayParams.width * (A + I / defaultScreenSizePx.width) + "px", i.elem.style.top = loadingDisplayParams.height * (C + e / defaultScreenSizePx.height) + "px"), "img_loadingbar" == g && (i.elem.style.top = (loadingDisplayParams.height * (C + e / defaultScreenSizePx.height) - 4).toString() + "px"), i.elem.style.display = "block" } function dj_scaleRelative(g, A, C, I) { var e = loadingElements[g]; if (e) if (I) e.elem.style.width = A * loadingDisplayParams.width + "px", e.elem.style.height = A * loadingDisplayParams.height + "px"; else { var a = A * loadingDisplayParams.width / e.width; C && (a = A * loadingDisplayParams.height / e.height), e.elem.style.width = a * e.width + "px", e.elem.style.height = a * e.height + "px" } } function dj_scale(g, A, C, I) { var e = loadingElements[g]; if (e) if (I) e.elem.style.width = A + "px", e.elem.style.height = C + "px"; else { var a = A / e.width; e.elem.style.width = a * e.width + "px", e.elem.style.height = a * e.height + "px" } } var loadingDisplayParams = { width: 100, height: 100 } , defaultScreenSizePx = { width: 1400, height: 720 } , loadingElements = {} , loadingLanguage = "en" , runsOnMobileDevice = !1 , loadingHidden = !1; function dg_mobileAndTabletCheck() { let g = !1; var A; return A = navigator.userAgent || navigator.vendor || window.opera, (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(A) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(A.substr(0, 4))) && (g = !0), g } function dj_addLoadingElement(g) { var A = document.getElementById(g) , C = { elem: A, width: A.naturalWidth, height: A.naturalHeight }; A.setAttribute("draggable", !1), loadingElements[g] = C } function dg_updateElements() { if (loadingHidden) return 1; dj_place("img_loadingbar", .5, 1, 0, -120, !0), loadingDisplayParams.width > loadingDisplayParams.height ? (dj_scaleRelative("img_pcLogoLoading", .25, !0, !1), loadingElements.img_loadingbar && (loadingElements.img_loadingbar.elem.style.width = .5 * loadingDisplayParams.width + "px")) : (dj_scaleRelative("img_pcLogoLoading", .18, !0, !1), loadingElements.img_loadingbar && (loadingElements.img_loadingbar.elem.style.width = .6 * loadingDisplayParams.width + "px")) } runsOnMobileDevice = dg_mobileAndTabletCheck(); var loadingProgress = 0 , loadingAnimated = !1 , animateInterval = null , subButtonInitialized = !1 , subButtonEnabled = !1; function dj_loading(g) { if (loadingHidden) return 1; loadingDisplayParams.width = window.innerWidth, loadingDisplayParams.height = window.innerHeight, dg_updateElements(), loadingProgress = g, loadingElements.img_loadingbar && (loadingElements.img_loadingbar.elem.style.opacity = "1.0") } function dg_hideElement(g) { g && (g.style.display = "none", g.style.visibility = "hidden", g.style.pointerEvents = "none", g.parentNode && g.parentNode.removeChild(g)) } function dg_hideElementByName(g) { var A = loadingElements[g]; A && (A = A.elem), dg_hideElement(A) } function dg_hide_loading_pls() { for (var g in loadingHidden = !0, loadingElements) loadingElements.hasOwnProperty(g) && dg_hideElement(loadingElements[g].elem); var A = document.getElementById("application-splash-wrapper"); A.parentElement.removeChild(A) } function dg_createHTMLElements() { var g, A; g = ["body {", " background-color: #2e6cf0;", "}", "", "#application-splash-wrapper {", " position: absolute;", " top: 0;", " left: 0;", " height: 100%;", " width: 100%;", " background-color: #2e6cf0;", "}", "", "#application-splash {", " position: absolute;", " top: calc(50% - 28px);", " width: 264px;", " left: calc(50% - 132px);", "}", "", "#img_pcLogoLoading {", "transform: translate(-50%, -50%);", "position:absolute;", "left : 50%;", "top : 50%;", "width : 1px;", "height : 1px;", "z-index: 10;", "}", "", "#img_loadingbar {", " position:absolute;", " border-radius: 25px;", " height: 4px;", " width: 450px;", " left : 0;", " top : 0;", " background-color:#1848a2;", " opacity : 0.1;", " z-index: 10;", "}", "", "#img_loadingbaroverlay {", " border-radius: 25px;", " width: 5%;", " height: 100%;", " background-color: #fffd33;", "}", "", "@media (max-width: 480px) {", " #application-splash {", " width: 170px;", " left: calc(50% - 85px);", " }", "}"].join("\n"), (A = document.createElement("style")).type = "text/css", A.styleSheet ? A.styleSheet.cssText = g : A.appendChild(document.createTextNode(g)), document.head.appendChild(A); var C = document.createElement("div"); C.id = "application-splash-wrapper", document.body.appendChild(C); var I = document.createElement("img"); I.id = "img_pcLogoLoading", I.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVIAAACVCAYAAAAKT3JXAAAACXBIWXMAAA7EAAAOxAGVKw4bAAA+HGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjItMDQtMDNUMTU6MzY6MjYrMDU6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIyLTA0LTA2VDE5OjM3OjIyKzA1OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAyMi0wNC0wNlQxOTozNzoyMiswNTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6YTNjNzJlYzctMDNmZi0wNzQ3LWI2ZmUtNTIzZWNmYmZmYjNlPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6MGM2NzQ4OGUtYjViNy0xMWVjLWIwOTctZDdiMmU4YWIzNDY0PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6OWUyMjZhODMtMjY0YS03ZjQ0LWFkYjUtYzFlODU0MzY5NzFhPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjllMjI2YTgzLTI2NGEtN2Y0NC1hZGI1LWMxZTg1NDM2OTcxYTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMi0wNC0wM1QxNTozNjoyNiswNTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2ZDYyYzM3NS00NjE2LTBlNGEtYTZlOC0wNTI2NzY4ODBhZjM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMjItMDQtMDNUMTU6MzY6MjYrMDU6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6YTNjNzJlYzctMDNmZi0wNzQ3LWI2ZmUtNTIzZWNmYmZmYjNlPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDIyLTA0LTA2VDE5OjM3OjIyKzA1OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHBob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4KICAgICAgICAgICAgPHJkZjpCYWc+CiAgICAgICAgICAgICAgIDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjJmODc1NWYxLTkwMzAtMTFlYy05MGFjLWFjMWZkODkwYmIzOTwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDo4NzczZjVmZC0zMDdhLTJkNDItYjcwNy1mOTk2YWEyYjE2MjE8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6Zjk1ZjZjOWQtOTAyZi0xMWVjLTkwYWMtYWMxZmQ4OTBiYjM5PC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGk+eG1wLmRpZDo3MDZhNDE1OC1mN2EzLWY5NDctYjY3Ny1lZjQxNjczYWIyN2U8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaT54bXAuZGlkOjhiNmEzY2QxLTExYjgtOTI0OC1hYzk0LWRmYjYzODBjZGI5YzwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPnhtcC5kaWQ6ZjY0ZmY4NWItNGE3Ny00MzQ4LTk1ZDctMDUzMjYxODBmNDMzPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOkJhZz4KICAgICAgICAgPC9waG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjk2MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+OTYwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4zMzg8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+MTQ5PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4WxAOoAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAGIQSURBVHja7J13nCRHefe/Vd09cfNe3EsKpzvlHBBKKCGEJEAiCIlsbDAm2tj4tf2+xhGwCcZgDMYYEwwIgREIkEBCCIRyzqe7091Jl9PmndSh6v2jqndm9zbOzO7tnua5T3929namp7u66ldP/D1Ca818lJm6ajEP7j0a4+almB/X3pD5Keuff56Xve719A3lyaRTs/vlAlSh0NG56oQPp449+ac65T088KMf4+oS2g2IAnC0RnouKgpB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", C.appendChild(I), I.onload = function () { dj_addLoadingElement("img_pcLogoLoading"), dj_loading(0) } ; var e = document.createElement("div"); e.id = "img_loadingbar", C.appendChild(e); var a = document.createElement("div"); a.id = "img_loadingbaroverlay", e.appendChild(a), dj_addLoadingElement("img_pcLogoLoading"), dj_addLoadingElement("img_loadingbar"), dj_addLoadingElement("img_loadingbaroverlay"), dj_loading(0) } pc.script.createLoadingScreen((function (g) { dg_createHTMLElements(); g.on("preload:end", (function () { g.off("preload:progress") } )), g.on("preload:progress", (function (g) { dj_loading(g); var A = document.getElementById("img_loadingbaroverlay"); A && (g = Math.min(1, Math.max(0, g)), A.style.width = 100 * g + "%") } )), g.on("start", dg_hide_loading_pls) } )), document.title = "Slice Master – Play it now at CoolmathGames.com"; var Sdkmanager = pc.createScript("sdkmanager"); Sdkmanager.instance = null, Sdkmanager.attributes.add("sdktype", { type: "number", enum: [{ TESTING: 0 }, { CRAZYGAMES: 1 }, { COOLMATH: 2 }, { valueThree: 3 }], default: 1 }), Sdkmanager.AD_INTERSTITIAL = 1, Sdkmanager.AD_REWARDED = 2, Sdkmanager.SDK_TESTING = 0, Sdkmanager.SDK_CRAZYGAMES = 1, Sdkmanager.SDK_COOLMATH = 2, Sdkmanager.prototype.initialize = function () { Sdkmanager.instance = this, this.musicWasEnabled = !0, this.soundWasEnabled = !0, this.onAdSuccess = null, this.adType = 1, this.sdktype == Sdkmanager.SDK_TESTING ? (this.testRewardedAdDelay = 0, this.testInterstitialAdDelay = 0) : this.sdktype == Sdkmanager.SDK_CRAZYGAMES ? (this.crazysdk = window.CrazyGames.CrazySDK.getInstance(), this.crazysdk.init(), this.onAdStarted = function () { this.gameMute() } , this.onAdFinished = function () { this.gameUnmute(), this.adRequested = !1, 2 == this.adType && this.onAdSuccess && this.onAdSuccess() } , this.onAdError = function () { this.gameUnmute(), this.adRequested = !1 } , this.crazysdk.addEventListener("adStarted", this.onAdStarted.bind(this)), this.crazysdk.addEventListener("adFinished", this.onAdFinished.bind(this)), this.crazysdk.addEventListener("adError", this.onAdError.bind(this)), this.adRequested = !1, window.addEventListener("wheel", (e => e.preventDefault()), { passive: !1 }), window.addEventListener("keydown", (e => { ["ArrowUp", "ArrowDown", " "].includes(e.key) && e.preventDefault() } ))) : this.sdktype == Sdkmanager.SDK_COOLMATH && (this.onAdStarted = function () { this.gameMute() } , this.onAdFinished = function () { this.gameUnmute(), 2 == this.adType && this.onAdSuccess && this.onAdSuccess() } , document.addEventListener("adBreakStart", this.onAdStarted.bind(this)), document.addEventListener("adBreakComplete", this.onAdFinished.bind(this))) } , Sdkmanager.prototype.launchSDKfunction = function (e, t, a = null) { } , Sdkmanager.prototype.gameMute = function () { this.musicWasEnabled = !GameAudio.muteMus, this.soundWasEnabled = !GameAudio.mute, GameAudio.switchMusic(!0), GameAudio.switch(!0), Input.mouseDis = !0 } , Sdkmanager.prototype.gameUnmute = function () { this.musicWasEnabled && GameAudio.switchMusic(!1), this.soundWasEnabled && GameAudio.switch(!1), Input.mouseDis = !1 } , Sdkmanager.prototype.showAd = function (e, t = 1, a = null) { for (var s = !1, d = 0; d < e.length; d++) if (this.sdktype == e[d]) { s = !0; break } s && (this.adType = t, this.onAdSuccess = a, this.sdktype == Sdkmanager.SDK_TESTING ? t == Sdkmanager.AD_INTERSTITIAL ? (this.gameMute(), this.testInterstitialAdDelay = 2) : t == Sdkmanager.AD_REWARDED && (this.gameMute(), this.testRewardedAdDelay = 3) : this.sdktype == Sdkmanager.SDK_CRAZYGAMES ? (t == Sdkmanager.AD_INTERSTITIAL ? this.crazysdk.requestAd("midgame") : t == Sdkmanager.AD_REWARDED && this.crazysdk.requestAd("rewarded"), this.adRequested = !0) : this.sdktype == Sdkmanager.SDK_COOLMATH && (t == Sdkmanager.AD_INTERSTITIAL ? window.cmgAdBreak && window.cmgAdBreak() : t == Sdkmanager.AD_REWARDED && window.cmgRewardAds && window.cmgRewardAds())) } , Sdkmanager.prototype.update = function (e) { this.sdktype == Sdkmanager.SDK_TESTING && (this.testRewardedAdDelay > 0 ? (this.testRewardedAdDelay -= e, this.testRewardedAdDelay <= 0 && (this.gameUnmute(), this.onAdSuccess && this.onAdSuccess())) : this.testInterstitialAdDelay > 0 && (this.testInterstitialAdDelay -= e, this.testInterstitialAdDelay <= 0 && this.gameUnmute())) } ; var MoneyForAdbutton = pc.createScript("moneyForAdbutton"); MoneyForAdbutton.attributes.add("text", { type: "entity" }), MoneyForAdbutton.instance = null, MoneyForAdbutton.prototype.initialize = function () { MoneyForAdbutton.instance = this, this.count = 0, this.onEnableCb(), this.on("enable", this.onEnableCb, this) } , MoneyForAdbutton.prototype.onEnableCb = function (t) { } , MoneyForAdbutton.prototype.reconfigure = function (t) { if (this.count = t, t > 0) if (this.count >= 1e3) { var o = this.count % 1e3; o = Math.floor(o / 100), this.text.element.text = o > 0 ? "$ " + Math.floor(this.count / 1e3).toString() + "." + o.toString() + "k" : "$ " + Math.floor(this.count / 1e3).toString() + "k" } else this.text.element.text = "$ " + Math.round(this.count).toString() } , MoneyForAdbutton.prototype.update = function (t) { } ; var UiSerpantine = pc.createScript("uiSerpantine"); UiSerpantine.attributes.add("colors", { type: "rgba", array: !0 }), UiSerpantine.gravity = new pc.Vec3(0, -.005, 0), UiSerpantine.scaledVelocity = new pc.Vec3(0, -.01, 0), UiSerpantine.prototype.init = function () { this.entity.setEulerAngles(0, 0, 360 * Math.random()), this.velocity = new pc.Vec3(.1 * (Math.random() - .5), .1 * (Math.random() - .5), 0); var t = this.colors[Math.floor(Math.random() * this.colors.length)]; this.entity.element.color = t, this.rotationSpeed = pc.math.random(-150, 150), this.rotScale = pc.math.random(0, 1), this.rotScaleState = pc.math.random(1, 4), this.entity.setLocalScale(1, this.rotScale, 1) } , UiSerpantine.prototype.update = function (t) { this.rotScale += this.rotScaleState * t, this.rotScale > 1 && this.rotScaleState > 0 && (this.rotScale = 1, this.rotScaleState = -this.rotScaleState), this.rotScale < 0 && this.rotScaleState < 0 && (this.rotScale = 0, this.rotScaleState = -this.rotScaleState), this.entity.setLocalScale(1, this.rotScale, 1), this.velocity.scale(1 - 3 * t), this.velocity.add(UiSerpantine.gravity), UiSerpantine.scaledVelocity.copy(this.velocity).scale(t), this.entity.translate(UiSerpantine.scaledVelocity), this.entity.rotate(0, 0, this.rotationSpeed * t) } ;