diff --git a/math/SlitherMath.js b/math/SlitherMath.js
new file mode 100644
index 00000000..556e8889
--- /dev/null
+++ b/math/SlitherMath.js
@@ -0,0 +1,12808 @@
+(function(Yc) {
+ function R(a, b) {
+ function c() {}
+ c.prototype = a;
+ var d = new c,
+ e;
+ for (e in b) d[e] = b[e];
+ b.toString !== Object.prototype.toString && (d.toString = b.toString);
+ return d
+ }
+
+ function ea(a, b) {
+ if (null == b) return null;
+ null == b.__id__ && (b.__id__ = Ad++);
+ var c;
+ null == a.hx__closures__ ? a.hx__closures__ = {} : c = a.hx__closures__[b.__id__];
+ null == c && (c = function() {
+ return c.method.apply(c.scope, arguments)
+ }, c.scope = a, c.method = b, a.hx__closures__[b.__id__] = c);
+ return c
+ }
+ var s = {},
+ F = function() {
+ return S.__string_rec(this, "")
+ },
+ C = function() {};
+ s.ApplicationMain = C;
+ C.__name__ = ["ApplicationMain"];
+ C.loadEmbed = function(a) {
+ C.embeds = (null != C.embeds ? C.embeds : 0) + 1;
+ var b = null,
+ b = function(c) {
+ a.removeEventListener("load", b);
+ 0 == --C.embeds && C.preload()
+ };
+ a.addEventListener("load", b)
+ };
+ C.main = function() {
+ null != C.embeds && 0 != C.embeds || C.preload()
+ };
+ C.preload = function() {
+ for (var a = C.bytesLoaded = C.totalBytes = 0, b = C.AssetBytes; a < b.length;) {
+ var c = b[a];
+ ++a;
+ C.totalBytes += c
+ }
+ C.completed = 0;
+ C.loaders = new X;
+ C.urlLoaders = new X;
+ C.total = 0;
+ H.get_current().loaderInfo = kb.create(null);
+ H.get_stage().set_frameRate(60);
+ H.get_current().addChild(C.preloader = new za);
+ C.preloader.onInit();
+ C.loadFile("assets/GameFont.png");
+ C.loadFile("assets/Objects.png");
+ a = 0;
+ for (b = Ra.listNames(); a < b.length;) c = b[a], ++a, ma.startsWith(c, "NME_:bitmap_") && (c = U.resolveClass(ma.replace(c.substring(12), "_", ".")), null != c && (C.total++, U.createInstance(c, [0, 0, !0, 16777215, C.bitmapClass_onComplete])));
+ if (0 != C.total) {
+ C.loaderStack = [];
+ for (a = C.loaders.keys(); a.hasNext();) b = a.next(), C.loaderStack.push(b);
+ C.urlLoaderStack = [];
+ for (a = C.urlLoaders.keys(); a.hasNext();) b = a.next(), C.urlLoaderStack.push(b);
+ for (a = 0; 8 > a;) a++, C.nextLoader()
+ } else C.begin()
+ };
+ C.nextLoader = function() {
+ if (0 != C.loaderStack.length) {
+ var a = C.loaderStack.shift(),
+ b = C.loaders,
+ b = null != O[a] ? b.getReserved(a) : b.h[a];
+ b.contentLoaderInfo.addEventListener("complete", C.loader_onComplete);
+ b.load(new Eb(a))
+ } else 0 != C.urlLoaderStack.length && (a = C.urlLoaderStack.shift(), b = C.urlLoaders, b = null != O[a] ? b.getReserved(a) : b.h[a], b.addEventListener("complete", C.loader_onComplete),
+ b.load(new Eb(a)))
+ };
+ C.loadFile = function(a) {
+ var b = C.loaders,
+ c = new ac;
+ null != O[a] ? b.setReserved(a, c) : b.h[a] = c;
+ C.total++
+ };
+ C.begin = function() {
+ C.preloader.addEventListener("complete", C.preloader_onComplete);
+ C.preloader.onLoaded()
+ };
+ C.bitmapClass_onComplete = function(a) {
+ C.completed++;
+ (null == a ? null : S.getClass(a)).preload = a;
+ C.completed == C.total && C.begin()
+ };
+ C.loader_onComplete = function(a) {
+ C.completed++;
+ C.bytesLoaded += C.AssetBytes[C.AssetNames.indexOf(a._target.url)];
+ C.preloader.onUpdate(C.bytesLoaded, C.totalBytes);
+ C.completed == C.total ? C.begin() : C.nextLoader()
+ };
+ C.preloader_onComplete = function(a) {
+ C.preloader.removeEventListener("complete", C.preloader_onComplete);
+ H.get_current().removeChild(C.preloader);
+ C.preloader = null;
+ null == Fb.main ? (a = new Gb, S.__instanceof(a, Fa) && H.get_current().addChild(a)) : Fb.main()
+ };
+ var Sb = function() {};
+ s["openfl.events.IEventDispatcher"] = Sb;
+ Sb.__name__ = ["openfl", "events", "IEventDispatcher"];
+ Sb.prototype = {
+ __class__: Sb
+ };
+ var ta = function() {
+ this.eventList = new X
+ };
+ s["openfl.events.EventDispatcher"] =
+ ta;
+ ta.__name__ = ["openfl", "events", "EventDispatcher"];
+ ta.__interfaces__ = [Sb];
+ ta.prototype = {
+ addEventListener: function(a, b, c, d, e) {
+ c = this.eventList;
+ (null != O[a] ? c.existsReserved(a) : c.h.hasOwnProperty(a)) ? (c = this.eventList, c = null != O[a] ? c.getReserved(a) : c.h[a]) : (d = c = [], e = this.eventList, null != O[a] ? e.setReserved(a, d) : e.h[a] = d);
+ c.push(b)
+ },
+ removeEventListener: function(a, b, c) {
+ c = this.eventList;
+ if (null != O[a] ? c.existsReserved(a) : c.h.hasOwnProperty(a)) {
+ c = this.eventList;
+ c = null != O[a] ? c.getReserved(a) : c.h[a];
+ for (var d =
+ 0; d < c.length;) {
+ var e = c[d];
+ ++d;
+ if (Z.compareMethods(e, b)) {
+ J.remove(c, e);
+ break
+ }
+ }
+ 0 == c.length && this.eventList.remove(a)
+ }
+ },
+ hasEventListener: function(a) {
+ var b = this.eventList;
+ return null != O[a] ? b.existsReserved(a) : b.h.hasOwnProperty(a)
+ },
+ dispatchEvent: function(a) {
+ null == a.get_target() && a.set_target(this);
+ a.set_currentTarget(this);
+ var b = a.type,
+ c = this.eventList;
+ if (null != O[b] ? c.existsReserved(b) : c.h.hasOwnProperty(b))
+ for (c = this.eventList, b = null != O[b] ? c.getReserved(b) : c.h[b], c = 0; c < b.length;) {
+ var d = b[c];
+ d(a);
+ b[c] ==
+ d && ++c
+ }
+ return !0
+ },
+ __class__: ta
+ };
+ var Va = function() {
+ this.eventList = new X;
+ this.eventMap = new Oa
+ };
+ s["openfl.events.EventWrapper"] = Va;
+ Va.__name__ = ["openfl", "events", "EventWrapper"];
+ Va.__super__ = ta;
+ Va.prototype = R(ta.prototype, {
+ addEventListener: function(a, b, c, d, e) {
+ null == e && (e = !1);
+ null == d && (d = 0);
+ null == c && (c = !1);
+ var p = this;
+ ta.prototype.addEventListener.call(this, a, b, c, d, e);
+ d = function(a) {
+ a.get_target() == p.component && a.set_target(p);
+ a.set_currentTarget(p);
+ b(a)
+ };
+ null == this.eventMap.h.__keys__[b.__id__] && this.eventMap.set(b,
+ d);
+ this.component.addEventListener(a, d, c)
+ },
+ removeEventListener: function(a, b, c) {
+ null == c && (c = !1);
+ ta.prototype.removeEventListener.call(this, a, b, c);
+ null != this.eventMap.h.__keys__[b.__id__] && (this.component.removeEventListener(a, this.eventMap.h[b.__id__], c), this.eventMap.remove(b))
+ },
+ __class__: Va
+ });
+ var Fa = function() {
+ this.rotation = this.x = this.y = 0;
+ this.scaleX = this.scaleY = 1;
+ this.visible = !0;
+ Va.call(this);
+ this.eventRemap = new X;
+ null == this.component && (this.component = H.jsNode("div"));
+ this.component.node = this;
+ this.transform = new sc(this)
+ };
+ s["openfl.display.DisplayObject"] = Fa;
+ Fa.__name__ = ["openfl", "display", "DisplayObject"];
+ Fa.__super__ = Va;
+ Fa.prototype = R(Va.prototype, {
+ broadcastEvent: function(a) {
+ this.dispatchEvent(a)
+ },
+ syncMtx: function() {
+ var a = this.component.style,
+ b;
+ !0 != this._syncMtx_set && (this._syncMtx_set = !0, H.setCSSProperties(a, "transform-origin", "0% 0%", 31));
+ b = "";
+ if (0 != this.x || 0 != this.y) b += "translate(" + this.x + "px, " + this.y + "px) ";
+ if (1 != this.scaleX || 1 != this.scaleY) b += "scale(" + this.scaleX + ", " + this.scaleY +
+ ") ";
+ 0 != this.rotation && (b += "rotate(" + this.rotation + "deg) ");
+ if (null != this.transform) {
+ var c = this.transform.get_matrix();
+ null == c || c.isIdentity() || (b += "matrix(" + c.a + ", " + c.b + ", " + c.c + ", " + c.d + ", " + c.tx + ", " + c.ty + ") ")
+ }
+ a.setProperty("transform", b, null);
+ a.setProperty("-o-transform", b, null);
+ a.setProperty("-ms-transform", b, null);
+ a.setProperty("-moz-transform", b, null);
+ a.setProperty("-webkit-transform", b, null)
+ },
+ set_x: function(a) {
+ this.x != a && (this.x = a, this.syncMtx());
+ return a
+ },
+ set_y: function(a) {
+ this.y != a && (this.y =
+ a, this.syncMtx());
+ return a
+ },
+ set_scaleX: function(a) {
+ this.scaleX != a && (this.scaleX = a, this.syncMtx());
+ return a
+ },
+ set_scaleY: function(a) {
+ this.scaleY != a && (this.scaleY = a, this.syncMtx());
+ return a
+ },
+ get_width: function() {
+ return this.__width ? !0 : 0
+ },
+ get_height: function() {
+ return this.__height ? !0 : 0
+ },
+ set_visible: function(a) {
+ this.visible != a && (this.visible = a, this.component.style.display = a ? "" : "none");
+ return a
+ },
+ get_stage: function() {
+ return this.__stage
+ },
+ set_stage: function(a) {
+ if (this.__stage != a) {
+ var b = null != this.__stage !=
+ (null != a);
+ this.__stage = a;
+ b && this.dispatchEvent(new fa(null != a ? "addedToStage" : "removedFromStage"))
+ }
+ return a
+ },
+ concatTransform: function(a) {
+ this.transform.get_matrix().isIdentity() || a.concat(this.transform.get_matrix());
+ 0 != this.rotation && a.rotate(this.rotation * Math.PI / 180);
+ 1 == this.scaleX && 1 == this.scaleY || a.scale(this.scaleX, this.scaleY);
+ 0 == this.x && 0 == this.y || a.translate(this.x, this.y)
+ },
+ hitTestLocal: function(a, b, c, d) {
+ return (!d || this.visible) && 0 <= a && 0 <= b && a <= this.get_width() ? b <= this.get_height() : !1
+ },
+ addEventListener: function(a,
+ b, c, d, e) {
+ null == e && (e = !1);
+ null == d && (d = 0);
+ null == c && (c = !1);
+ Va.prototype.addEventListener.call(this, a, b, c, d, e)
+ },
+ broadcastMouse: function(a, b, c, d) {
+ if (!this.visible) return !1;
+ var e, p, f = a.length,
+ g;
+ a.push(this);
+ p = 0 < d.length ? d.pop() : new na;
+ for (g = c.length; g <= f;) e = a[g], p.identity(), e.concatTransform(p), p.invert(), e = 0 < d.length ? d.pop() : new na, 0 < g ? e.copy(c[g - 1]) : e.identity(), e.concat(p), c.push(e), ++g;
+ p.copy(c[f]);
+ c = b.stageX * p.a + b.stageY * p.c + p.tx;
+ f = b.stageX * p.b + b.stageY * p.d + p.ty;
+ d.push(p);
+ a.pop();
+ return this.hitTestLocal(c,
+ f, !0, !0) ? (null == b.relatedObject && (b.localX = c, b.localY = f, b.relatedObject = this), this.dispatchEvent(b), !0) : !1
+ },
+ dispatchEvent: function(a) {
+ var b = Va.prototype.dispatchEvent.call(this, a);
+ if (b && a.bubbles) switch (a.type) {
+ case "middleClick":
+ case "middleMouseDown":
+ case "middleMouseUp":
+ case "mouseClick":
+ case "mouseDown":
+ case "mouseMove":
+ case "mouseOut":
+ case "mouseOver":
+ case "mouseUp":
+ case "mouseWheel":
+ case "rightClick":
+ case "rightMouseDown":
+ case "rightMouseUp":
+ case "touchBegin":
+ case "touchEnd":
+ case "touchMove":
+ var c =
+ this.parent;
+ null != c && c.dispatchEvent(a)
+ }
+ return b
+ },
+ __class__: Fa,
+ __properties__: {
+ get_height: "get_height",
+ get_width: "get_width",
+ set_y: "set_y",
+ set_x: "set_x",
+ set_scaleY: "set_scaleY",
+ set_scaleX: "set_scaleX",
+ set_visible: "set_visible",
+ set_stage: "set_stage",
+ get_stage: "get_stage"
+ }
+ });
+ var Wa = function() {
+ Fa.call(this);
+ this.tabEnabled = !1;
+ this.tabIndex = 0;
+ this.mouseEnabled = this.doubleClickEnabled = !0
+ };
+ s["openfl.display.InteractiveObject"] = Wa;
+ Wa.__name__ = ["openfl", "display", "InteractiveObject"];
+ Wa.__super__ = Fa;
+ Wa.prototype =
+ R(Fa.prototype, {
+ giveFocus: function() {
+ this.component.focus()
+ },
+ __class__: Wa
+ });
+ var ua = function() {
+ Wa.call(this);
+ this.children = [];
+ this.mouseChildren = !0
+ };
+ s["openfl.display.DisplayObjectContainer"] = ua;
+ ua.__name__ = ["openfl", "display", "DisplayObjectContainer"];
+ ua.__super__ = Wa;
+ ua.prototype = R(Wa.prototype, {
+ addChild: function(a) {
+ null != a.parent && a.parent.removeChild(a);
+ a.parent = this;
+ a.set_stage(this.get_stage());
+ this.children.push(a);
+ this.component.appendChild(a.component);
+ var b = new fa("added");
+ a.dispatchEvent(b);
+ this.dispatchEvent(b);
+ return a
+ },
+ removeChild: function(a) {
+ if (a.parent == this) {
+ a.parent = null;
+ a.set_stage(null);
+ J.remove(this.children, a);
+ this.component.removeChild(a.component);
+ var b = new fa("removed");
+ a.dispatchEvent(b);
+ this.dispatchEvent(b)
+ }
+ return a
+ },
+ addChildAt: function(a, b) {
+ return b < this.children.length ? (null != a.parent && a.parent.removeChild(a), a.parent = this, a.set_stage(this.get_stage()), this.component.insertBefore(a.component, this.children[b].component), this.children.splice(b, 0, a), a) : this.addChild(a)
+ },
+ broadcastEvent: function(a) {
+ this.dispatchEvent(a);
+ for (var b = 0, c = this.children; b < c.length;) {
+ var d = c[b];
+ ++b;
+ d.broadcastEvent(a)
+ }
+ },
+ broadcastMouse: function(a, b, c, d) {
+ if (!this.visible) return !1;
+ var e = !1;
+ if (this.mouseChildren) {
+ var p = this.children.length;
+ if (0 < p) {
+ for (a.push(this); 0 <= --p;)
+ if (this.children[p].broadcastMouse(a, b, c, d)) {
+ e = !0;
+ break
+ }
+ a.pop()
+ }
+ }
+ for (; c.length > a.length;) d.push(c.pop());
+ for (e = e ? !0 : Wa.prototype.broadcastMouse.call(this, a, b, c, d); c.length > a.length;) d.push(c.pop());
+ return e
+ },
+ hitTestLocal: function(a,
+ b, c, d) {
+ if (!d || this.visible) {
+ var e = this.children.length,
+ p, f;
+ if (0 < e) {
+ for (p = na.create(); 0 <= --e;)
+ if (p.identity(), f = this.children[e], f.concatTransform(p), p.invert(), f.hitTestLocal(a * p.a + b * p.c + p.tx, a * p.b + b * p.d + p.ty, c, d)) return !0;
+ na.pool.push(p)
+ }
+ }
+ return !1
+ },
+ set_stage: function(a) {
+ Wa.prototype.set_stage.call(this, a);
+ for (var b = 0, c = this.children; b < c.length;) {
+ var d = c[b];
+ ++b;
+ d.set_stage(a)
+ }
+ return a
+ },
+ __class__: ua
+ });
+ var Pa = function() {};
+ s["openfl.display.IBitmapDrawable"] = Pa;
+ Pa.__name__ = ["openfl", "display", "IBitmapDrawable"];
+ Pa.prototype = {
+ __class__: Pa
+ };
+ var Aa = function() {
+ ua.call(this)
+ };
+ s["openfl.display.Sprite"] = Aa;
+ Aa.__name__ = ["openfl", "display", "Sprite"];
+ Aa.__interfaces__ = [Pa];
+ Aa.__super__ = ua;
+ Aa.prototype = R(ua.prototype, {
+ get_graphics: function() {
+ if (null == this._graphics) {
+ var a = new ub,
+ b = a.component;
+ a.set_displayObject(this);
+ 0 == this.children.length ? this.component.appendChild(b) : this.component.insertBefore(b, this.children[0].component);
+ this._graphics = a
+ }
+ return this._graphics
+ },
+ set_stage: function(a) {
+ var b = null == this.get_stage() &&
+ null != a;
+ a = ua.prototype.set_stage.call(this, a);
+ b && null != this._graphics && this._graphics.invalidate();
+ return a
+ },
+ drawToSurface: function(a, b, c, d, e, p, f) {
+ this.get_graphics().drawToSurface(a, b, c, d, e, p, f)
+ },
+ hitTestLocal: function(a, b, c, d) {
+ if (ua.prototype.hitTestLocal.call(this, a, b, c, d)) return !0;
+ if (!d || this.visible)
+ if (d = this._graphics, null != d) return d.hitTestLocal(a, b, c);
+ return !1
+ },
+ __class__: Aa,
+ __properties__: R(ua.prototype.__properties__, {
+ get_graphics: "get_graphics"
+ })
+ });
+ var l = function() {
+ this.frameCount = this.Cnt =
+ this.oldFrames = this.oldTime = 0;
+ this.currentTimeStep = -1;
+ this.timeAccumulator = 0;
+ this.needsExtraScreenBMP = !1;
+ if (!A.ShowBlank && (this.initSystemVariables(), ua.call(this), l.LockCheck())) {
+ f.MinimumBMD = l.DontSplitBitmaps();
+ this.initOzEngine();
+ this.registerGraphics();
+ G.trace("before expandtiles", {
+ fileName: "Main.hx",
+ lineNumber: 305,
+ className: "Main",
+ methodName: "new"
+ });
+ f.ExpandTiles(t.definitionsXML);
+ G.trace("before sortinit", {
+ fileName: "Main.hx",
+ lineNumber: 307,
+ className: "Main",
+ methodName: "new"
+ });
+ x.SortIdsByName(f.BitmapsIds,
+ f.BitmapsNames);
+ l.isMobile = this.MobileCheck();
+ this.doc = f.New(null, null, !1);
+ this.stateSprite = f.New(null, null, !1);
+ this.debugSprite = f.New(null, null, !1);
+ this.doc.addChild(this.stateSprite);
+ this.doc.addChild(this.whiteRect = f.New(q.sysWhiteRect, null, !1));
+ var a = this.whiteRect,
+ b = l.HEIGHT_MIN / 2;
+ a.set_x(l.WIDTH_MIN / 2);
+ a.set_y(b);
+ this.whiteRect.set_visible(!1);
+ this.whiteRect.smooth = !1;
+ this.doc.addChild(this.debugSprite);
+ this.debugText = f.New(null, W.TEXT, !1);
+ this.debugText.font = y.Font;
+ this.debugText.text = "FPS";
+ this.debugSprite.addChild(this.debugText);
+ this.debugSprite.set_visible(!1);
+ this.doc.setFluid(66);
+ H.get_current().get_stage().addEventListener("blur", l.Deactivate);
+ H.get_current().get_stage().addEventListener("focus", l.Activate);
+ H.get_current().get_stage().addEventListener("deactivate", l.Deactivate);
+ H.get_current().get_stage().addEventListener("activate", l.Activate);
+ window.onfocus = l.fnResume;
+ window.onblur = l.fnPause;
+ document.onfocusin = l.fnResume;
+ document.onfocusout = l.fnPause;
+ document.body.onfocusin =
+ l.fnResume;
+ document.body.onfocusout = l.fnPause;
+ var c, d;
+ "undefined" !== typeof document.hidden ? (c = "hidden", d = "visibilitychange") : "undefined" !== typeof document.mozHidden ? (c = "mozHidden", d = "mozvisibilitychange") : "undefined" !== typeof document.msHidden ? (c = "msHidden", d = "msvisibilitychange") : "undefined" !== typeof document.webkitHidden && (c = "webkitHidden", d = "webkitvisibilitychange");
+ "undefined" !== typeof document.addEventListener && "undefined" !== typeof document[c] && document.addEventListener(d, function() {
+ document[c] ?
+ l.fnPause() : l.fnResume()
+ }, !1);
+ H.get_current().get_stage().addEventListener("enterFrame", ea(this, this.update));
+ G.trace("before ext init", {
+ fileName: "Main.hx",
+ lineNumber: 454,
+ className: "Main",
+ methodName: "new"
+ });
+ G.trace("after ext init", {
+ fileName: "Main.hx",
+ lineNumber: 492,
+ className: "Main",
+ methodName: "new"
+ })
+ }
+ };
+ s.Main = l;
+ l.__name__ = ["Main"];
+ l.LockCheck = function() {
+ return !0
+ };
+ l.RunGC = function() {};
+ l.Deactivate = function(a) {
+ l.fnPause()
+ };
+ l.Activate = function(a) {
+ l.fnResume()
+ };
+ l.fnPause = function() {
+ l.systemPaused || (l.systemPaused = !0, l.hadSound = !u.muteMusic, l.hadSound && u.ToggleMuteMusic(), G.trace("Screenbitmap.visible", {
+ fileName: "Main.hx",
+ lineNumber: 1008,
+ className: "Main",
+ methodName: "fnPause",
+ customParams: [l.instance.ScreenBitmap.visible]
+ }));
+ tc.ScriptNotify("fnPause");
+ G.trace("fnPause", {
+ fileName: "Main.hx",
+ lineNumber: 1012,
+ className: "Main",
+ methodName: "fnPause"
+ })
+ };
+ l.fnResume = function() {
+ l.systemPaused && (l.systemPaused = !1, l.hadSound && u.ToggleMuteMusic());
+ tc.ScriptNotify("fnResume");
+ G.trace("fnResume", {
+ fileName: "Main.hx",
+ lineNumber: 1020,
+ className: "Main",
+ methodName: "fnResume"
+ })
+ };
+ l.escape = function() {
+ null == l.instance || null == l.instance.whiteRect || l.instance.whiteRect.get_visible() || l.instance.s.escape()
+ };
+ l.DontSplitBitmaps = function() {
+ var a = !1,
+ b = !1,
+ c = navigator.userAgent,
+ a = -1 < c.indexOf("Android") && -1 < c.indexOf("Mozilla / 5.0") && -1 < c.indexOf("AppleWebKit"),
+ b = -1 < c.indexOf("samsung") || -1 < c.indexOf("SAMSUNG") || -1 < c.indexOf("Samsung"),
+ d = RegExp(/AppleWebKit\/([\d.]+)/),
+ d = null === d.exec(c) ? null : parseFloat(d.exec(c)[1]),
+ e = RegExp(/Chrome\/([\d.]+)/),
+ c = null === e.exec(c) ? null : parseFloat(e.exec(c)[1]);
+ return b ? !1 : a && null !== d && 537 > d || null !== c && 37 > c || !a ? null !== c ? !a : !1 : !0
+ };
+ l.__super__ = Aa;
+ l.prototype = R(Aa.prototype, {
+ initSystemVariables: function() {
+ var a = null,
+ b = null;
+ A.MainStarted = !0;
+ l.NAME = "slither math";
+ l.NAME = x.StringReplace(l.NAME, " ", "-");
+ G.trace("NAME IS THIS", {
+ fileName: "Main.hx",
+ lineNumber: 129,
+ className: "Main",
+ methodName: "initSystemVariables",
+ customParams: [l.NAME]
+ });
+ l.PACKAGE_DIR_NAME = "com.ozdy.slithermath";
+ l.PACKAGE_DIR_NAME = x.StringReplace(l.PACKAGE_DIR_NAME,
+ ".", "/");
+ G.trace("NAME IS THIS", {
+ fileName: "Main.hx",
+ lineNumber: 132,
+ className: "Main",
+ methodName: "initSystemVariables",
+ customParams: [l.PACKAGE_DIR_NAME]
+ });
+ l.INTERPOLATE = !0;
+ l.DEFAULT_SMOOTH = !0;
+ b = "720";
+ l.WIDTH = K.parseInt(b);
+ a = "720";
+ l.WIDTH_MIN = K.parseInt(a);
+ null == b && (l.WIDTH = l.WIDTH_MIN);
+ null == a && (l.WIDTH_MIN = l.WIDTH);
+ a = "854";
+ l.WIDTH_MAX = K.parseInt(a);
+ null == a && (l.WIDTH_MAX = l.WIDTH);
+ l.STARTING_WIDTH = l.WIDTH;
+ b = "480";
+ l.HEIGHT = K.parseInt(b);
+ a = null;
+ l.HEIGHT_MIN = K.parseInt(a);
+ null == b && (l.HEIGHT = l.HEIGHT_MIN);
+ null == a && (l.HEIGHT_MIN = l.HEIGHT);
+ a = "854";
+ l.HEIGHT_MAX = K.parseInt(a);
+ null == a && (l.HEIGHT_MAX = l.HEIGHT);
+ l.STARTING_HEIGHT = l.HEIGHT;
+ a = "640";
+ l.LANDSCAPE_WIDTH_MIN = K.parseInt(a);
+ null == a && (l.LANDSCAPE_WIDTH_MIN = l.WIDTH_MIN);
+ a = null;
+ l.LANDSCAPE_WIDTH_MAX = K.parseInt(a);
+ null == a && (l.LANDSCAPE_WIDTH_MAX = l.WIDTH_MAX);
+ a = null;
+ l.LANDSCAPE_HEIGHT = K.parseInt(a);
+ null == a && (l.LANDSCAPE_HEIGHT = l.HEIGHT_MIN);
+ a = "640";
+ l.PORTRAIT_HEIGHT_MIN = K.parseInt(a);
+ null == a && (l.PORTRAIT_HEIGHT_MIN = l.HEIGHT_MIN);
+ a = null;
+ l.PORTRAIT_HEIGHT_MAX =
+ K.parseInt(a);
+ null == a && (l.PORTRAIT_HEIGHT_MAX = l.HEIGHT_MAX);
+ a = "480";
+ l.PORTRAIT_WIDTH = K.parseInt(a);
+ null == a && (l.PORTRAIT_WIDTH = l.WIDTH_MIN);
+ l.Orientation = l.HEIGHT_MIN < l.WIDTH_MIN ? vb.LANDSCAPE : vb.PORTRAIT;
+ l.FPS = K.parseInt("30")
+ },
+ initOzEngine: function() {
+ this.needsExtraScreenBMP = -1 < window.navigator.userAgent.toLowerCase().indexOf("iemobile");
+ this.needsExtraScreenBMP || (this.needsExtraScreenBMP = -1 < window.navigator.userAgent.toLowerCase().indexOf("trident/"));
+ this.needsExtraScreenBMP || (this.needsExtraScreenBMP =
+ "Microsoft Internet Explorer" == window.navigator.appName);
+ this.ScreenBMD = new ia(l.WIDTH_MAX, l.HEIGHT_MAX, !0, 0);
+ this.ScreenBitmap = new Sa(this.ScreenBMD, Xa.AUTO, !0);
+ this.addChild(this.ScreenBitmap);
+ this.ScreenBitmap.set_visible(!1);
+ l.RESIZE_WIDTH = l.WIDTH;
+ l.RESIZE_HEIGHT = l.HEIGHT;
+ l.instance = this;
+ G.trace("before inits", {
+ fileName: "Main.hx",
+ lineNumber: 263,
+ className: "Main",
+ methodName: "initOzEngine"
+ });
+ n.Init(l.FPS);
+ P.Init();
+ G.trace("before globals", {
+ fileName: "Main.hx",
+ lineNumber: 268,
+ className: "Main",
+ methodName: "initOzEngine"
+ });
+ t.Init();
+ G.trace("before audio", {
+ fileName: "Main.hx",
+ lineNumber: 270,
+ className: "Main",
+ methodName: "initOzEngine"
+ });
+ u.Init();
+ G.trace("before input init", {
+ fileName: "Main.hx",
+ lineNumber: 272,
+ className: "Main",
+ methodName: "initOzEngine"
+ });
+ h.Init(this);
+ G.trace("before spriteinit", {
+ fileName: "Main.hx",
+ lineNumber: 274,
+ className: "Main",
+ methodName: "initOzEngine"
+ });
+ f.StaticInit();
+ G.trace("before particle init", {
+ fileName: "Main.hx",
+ lineNumber: 276,
+ className: "Main",
+ methodName: "initOzEngine"
+ });
+ ca.StaticInit();
+ G.trace("before matrixinit", {
+ fileName: "Main.hx",
+ lineNumber: 278,
+ className: "Main",
+ methodName: "initOzEngine"
+ });
+ T.InitPool();
+ oa.Init()
+ },
+ registerGraphics: function() {},
+ start: function() {
+ this.needsExtraScreenBMP ? (this.extraScreenBMP = new Sa(new ia(this.ScreenBMD.component.width, this.ScreenBMD.component.height)), this.addChild(this.extraScreenBMP), this.extraRect = new pa(0, 0, this.ScreenBMD.component.width, this.ScreenBMD.component.height), this.extraPoint = new xa) : this.ScreenBitmap.set_visible(!0);
+ G.trace("we start", {
+ fileName: "Main.hx",
+ lineNumber: 522,
+ className: "Main",
+ methodName: "start"
+ });
+ u.needsAudio && H.get_current().get_stage().addEventListener("mouseDown", u.HTML5Init);
+ G.trace("after audio init start", {
+ fileName: "Main.hx",
+ lineNumber: 535,
+ className: "Main",
+ methodName: "start"
+ });
+ this.transitionChangeState(new E(this), 15);
+ (new wb(1E3)).run = ea(this, this.measureFPS);
+ var a = f.GetMCByString("cmcRotateDeviceSprite");
+ null != a ? this.doc.addChild(this.rotateDeviceSprite = f.New(a, null, !1)) : this.doc.addChild(this.rotateDeviceSprite = f.New(null, W.EMPTY, !1));
+ G.trace("cmcRotateDeviceSprite", {
+ fileName: "Main.hx",
+ lineNumber: 561,
+ className: "Main",
+ methodName: "start",
+ customParams: [a]
+ });
+ this.rotateDeviceSprite.set_visible(!1);
+ H.get_current().get_stage().addEventListener("resize", ea(this, this.onResize));
+ u.PlayMusic("main");
+ G.trace("after music play", {
+ fileName: "Main.hx",
+ lineNumber: 569,
+ className: "Main",
+ methodName: "start"
+ });
+ G.trace("## Need Extra Screen BMD?", {
+ fileName: "Main.hx",
+ lineNumber: 572,
+ className: "Main",
+ methodName: "start",
+ customParams: [this.needsExtraScreenBMP]
+ });
+ G.trace("## Minimum BMD? If not - flush-fetch bmd for r/s/a/fill", {
+ fileName: "Main.hx",
+ lineNumber: 573,
+ className: "Main",
+ methodName: "start",
+ customParams: [f.MinimumBMD]
+ });
+ this.doc.adjustAllLayouts()
+ },
+ onResize: function(a) {
+ G.trace("we resize, event is null", {
+ fileName: "Main.hx",
+ lineNumber: 581,
+ className: "Main",
+ methodName: "onResize",
+ customParams: [null == a]
+ });
+ l.hasResized = !0;
+ ga.resize();
+ a = this.whiteRect;
+ var b = 1 * (l.WIDTH + 5),
+ c = this.whiteRect,
+ c = 1 == c.type[1] ? f.TilesheetFrames[c.mc.tilesheetId][c.mc.frames[c.get_currentFrame() - 1]][2] : 1;
+ a.set_scaleX(b / c);
+ a = this.whiteRect;
+ b = 1 * (l.HEIGHT +
+ 5);
+ c = this.whiteRect;
+ c = 1 == c.type[1] ? f.TilesheetFrames[c.mc.tilesheetId][c.mc.frames[c.get_currentFrame() - 1]][3] : 1;
+ a.set_scaleY(b / c);
+ null != this.s && this.s.resize();
+ null != this.rotateDeviceSprite && (a = this.rotateDeviceSprite, a.set_x(0), a.set_y(0), this.rotateDeviceSprite.setFluid(256));
+ this.doc.adjustAllLayouts()
+ },
+ update: function(a) {
+ a = 1 / l.FPS;
+ this.oldTimeStep = this.currentTimeStep;
+ this.currentTimeStep = wb.stamp();
+ this.timeAccumulator += 0 > this.oldTimeStep ? 1.5 * a : this.currentTimeStep - this.oldTimeStep;
+ if (!l.systemPaused)
+ if (l.started) {
+ this.frameCount++;
+ var b = !l.hasResized;
+ !b && ga.invalidRect() && (b = !0);
+ if (b) this.onResize();
+ if (null != this.rotateDeviceSprite && this.rotateDeviceSprite.get_visible()) l.systemPaused || this.draw();
+ else {
+ if (l.INTERPOLATE) {
+ for (b = 0; this.timeAccumulator >= a;)
+ if (this.timeAccumulator -= a, ++b, this.doc.updateAnimations(), this.doc._updateOldValues(), f.RemoveRequested(), this.s.update(), n.Update(), this.Cnt++, P.UpdateAll(), ca.UpdateAll(), h.UpdateSpriteUnder(), 2 <= b) {
+ this.timeAccumulator = 0;
+ break
+ }
+ f.DeltaT = Math.round(this.timeAccumulator / a * 128) /
+ 128
+ } else {
+ a = 0;
+ for (b = Math.round(l.FPS / H.get_current().get_stage().frameRate * 1); a < b;) a++, this.doc.updateAnimations(), this.doc._updateOldValues(), f.RemoveRequested(), this.s.update(), n.Update(), this.Cnt++, P.UpdateAll(), ca.UpdateAll(), h.UpdateSpriteUnder();
+ f.DeltaT = 1
+ }
+ this.s.preRender();
+ this.draw()
+ }
+ } else u.loaded && (l.started = !0, this.start())
+ },
+ transitionChangeState: function(a, b) {
+ var c = this;
+ l.NumChangedStates++;
+ this.s = a;
+ u.LocallyUnmute();
+ this.s.update();
+ this.whiteRect.set_visible(!0);
+ this.whiteRect.set_alpha(1);
+ var d = P.New();
+ d.startValue = this.whiteRect.get_alpha();
+ d.endValue = 0;
+ d.duration = b;
+ d.cnt = 0;
+ d.updateFunc = function(a) {
+ c.whiteRect.set_alpha((1 - a * a) * d.startValue + a * a * d.endValue)
+ };
+ d.repeat = 0;
+ d.endFunc = function() {
+ c.whiteRect.set_visible(!1)
+ };
+ d.stateBound = !0;
+ d.gameBound = !1;
+ P.Add(d);
+ l.RunGC()
+ },
+ draw: function(a) {
+ f.TilesheetId = -1;
+ f.TraceCurrentMatrix && (G.trace("CM", {
+ fileName: "Main.hx",
+ lineNumber: 953,
+ className: "Main",
+ methodName: "draw",
+ customParams: [T.matrixId, T.getCurrentMatrix().toString()]
+ }), f.TraceCurrentMatrix = !1);
+ this.doc.draw();
+ f.Flush();
+ this.needsExtraScreenBMP && this.extraScreenBMP.bitmapData.copyPixels(this.ScreenBitmap.bitmapData, this.extraRect, this.extraPoint)
+ },
+ measureFPS: function() {
+ var a = wb.stamp(),
+ b = "" + (this.frameCount - this.oldFrames) + " : ",
+ c = x.round(a - this.oldTime, 4);
+ this.debugText.text = b + c;
+ this.oldTime = a;
+ this.oldFrames = this.frameCount
+ },
+ MobileCheck: function() {
+ return window.mobilecheck()
+ },
+ __class__: l
+ });
+ var Fb = function() {
+ l.call(this)
+ };
+ s.GameMain = Fb;
+ Fb.__name__ = ["GameMain"];
+ Fb.__super__ = l;
+ Fb.prototype =
+ R(l.prototype, {
+ registerGraphics: function() {
+ l.prototype.registerGraphics.call(this);
+ G.trace("before objectsinit", {
+ fileName: "GameMain.hx",
+ lineNumber: 8,
+ className: "GameMain",
+ methodName: "registerGraphics"
+ });
+ q.Register();
+ G.trace("before game font", {
+ fileName: "GameMain.hx",
+ lineNumber: 14,
+ className: "GameMain",
+ methodName: "registerGraphics"
+ });
+ y.Register();
+ y.Font.RegisterCharacters();
+ A.showCross = !1;
+ t.atHooda = ga.hasInside("hoodamath.com")
+ },
+ __class__: Fb
+ });
+ var Gb = function() {
+ l.call(this)
+ };
+ s.DocumentClass = Gb;
+ Gb.__name__ = ["DocumentClass"];
+ Gb.__super__ = Fb;
+ Gb.prototype = R(Fb.prototype, {
+ get_stage: function() {
+ return H.get_current().get_stage()
+ },
+ __class__: Gb
+ });
+ var u = function() {};
+ s.Audio = u;
+ u.__name__ = ["Audio"];
+ u.HTML5Init = function(a) {
+ H.get_current().get_stage().hasEventListener("mouseDown") && H.get_current().get_stage().removeEventListener("mouseDown", u.HTML5Init);
+ G.trace("we init audio", {
+ fileName: "Audio.hx",
+ lineNumber: 69,
+ className: "Audio",
+ methodName: "HTML5Init",
+ customParams: [u.hasMusic]
+ });
+ u.initted = !0;
+ u.currentMusic = u.playingMusic =
+ null;
+ u.PlayMusic("main");
+ G.trace("we played main", {
+ fileName: "Audio.hx",
+ lineNumber: 73,
+ className: "Audio",
+ methodName: "HTML5Init"
+ });
+ u.hasSound && (u.dicSounds = new X)
+ };
+ u.Init = function() {};
+ u.PlayMusic = function(a) {
+ try {
+ if (!u.initted) return;
+ u.muteMusic || u.currentMusic == a && u.playingMusic == a && (null != u.currentMusic || null != a) || (null == a && (a = u.currentMusic), null != u.playingMusic && u.musc.stop(), u.musc = createjs.Sound.play(a, {
+ interrupt: createjs.Sound.INTERRUPT_EARLY,
+ loop: -1
+ }), u.playingMusic = a)
+ } catch (b) {
+ G.trace("Error playing music: " +
+ a, {
+ fileName: "Audio.hx",
+ lineNumber: 107,
+ className: "Audio",
+ methodName: "PlayMusic"
+ })
+ }
+ u.currentMusic = a
+ };
+ u.StopMusic = function() {
+ null != u.playingMusic && u.musc.stop();
+ u.playingMusic = null
+ };
+ u.PauseMusic = function() {
+ null != u.musc && (u.musc.paused = !0)
+ };
+ u.ResumeMusic = function() {
+ null != u.musc ? u.musc.paused = !1 : u.PlayMusic()
+ };
+ u.PlaySound = function(a) {
+ try {
+ if (u.initted && u.hasSound && !u.muteSound) {
+ var b = u.dicSounds;
+ null != O[a] && b.getReserved(a);
+ createjs.Sound.play(a, {
+ interrupt: createjs.Sound.INTERRUPT_EARLY
+ });
+ u.currentSound =
+ a
+ }
+ } catch (c) {
+ G.trace("Error playing sound: " + a, {
+ fileName: "Audio.hx",
+ lineNumber: 154,
+ className: "Audio",
+ methodName: "PlaySound"
+ })
+ }
+ };
+ u.Mute = function() {
+ u.MuteSound();
+ u.MuteMusic()
+ };
+ u.Unmute = function() {
+ u.UnmuteMusic();
+ u.UnmuteSound()
+ };
+ u.MuteSound = function() {
+ u.muteSound || u.ToggleMuteSound()
+ };
+ u.MuteMusic = function() {
+ u.muteMusic || u.ToggleMuteMusic()
+ };
+ u.UnmuteSound = function() {
+ u.muteSound && u.ToggleMuteSound()
+ };
+ u.UnmuteMusic = function() {
+ u.muteMusic && u.ToggleMuteMusic()
+ };
+ u.ToggleMuteMusic = function() {
+ G.trace("TOGGLING MUTE MUSIC BRO", {
+ fileName: "Audio.hx",
+ lineNumber: 171,
+ className: "Audio",
+ methodName: "ToggleMuteMusic"
+ });
+ try {
+ u.muteMusic = !u.muteMusic, u.initted && (u.muteMusic ? u.PauseMusic() : u.ResumeMusic())
+ } catch (a) {
+ a instanceof D && (a = a.val), G.trace("Error toggle mute music", {
+ fileName: "Audio.hx",
+ lineNumber: 183,
+ className: "Audio",
+ methodName: "ToggleMuteMusic",
+ customParams: [a]
+ })
+ }
+ };
+ u.ToggleMuteSound = function() {
+ u.muteSound = !u.muteSound
+ };
+ u.updateVolume = function() {};
+ u.LocallyMute = function() {
+ u.locallyMuted || (u.locallyMuted = !0, u.PauseMusic())
+ };
+ u.LocallyUnmute = function() {
+ u.locallyMuted && (u.locallyMuted = !1, null != u.musc && u.playingMusic == u.currentMusic ? u.ResumeMusic() : null != u.currentMusic && u.PlayMusic(u.currentMusic))
+ };
+ var Tb = function() {};
+ s["openfl.AssetLibrary"] = Tb;
+ Tb.__name__ = ["openfl", "AssetLibrary"];
+ Tb.prototype = {
+ exists: function(a, b) {
+ return !1
+ },
+ getBitmapData: function(a) {
+ return null
+ },
+ __class__: Tb
+ };
+ var Ub = function() {
+ this.type = new X;
+ this.path = new X;
+ this.add("assets/GameFont.png", Y.IMAGE);
+ this.add("assets/Objects.png", Y.IMAGE)
+ };
+ s.DefaultAssetLibrary =
+ Ub;
+ Ub.__name__ = ["DefaultAssetLibrary"];
+ Ub.__super__ = Tb;
+ Ub.prototype = R(Tb.prototype, {
+ add: function(a, b, c) {
+ var d = this.type;
+ null != O[a] ? d.setReserved(a, b) : d.h[a] = b;
+ b = this.path;
+ c = null != c ? c : a;
+ null != O[a] ? b.setReserved(a, c) : b.h[a] = c
+ },
+ exists: function(a, b) {
+ var c = this.type,
+ c = null != O[a] ? c.getReserved(a) : c.h[a];
+ if (null != c) {
+ if (c == b || null == b) return !0;
+ switch (b[1]) {
+ case 0:
+ return !0;
+ case 4:
+ return c == Y.SOUND;
+ case 5:
+ return c == Y.MUSIC
+ }
+ }
+ return !1
+ },
+ getBitmapData: function(a) {
+ var b = C.loaders,
+ c = this.path;
+ a = null != O[a] ? c.getReserved(a) :
+ c.h[a];
+ return (null != O[a] ? b.getReserved(a) : b.h[a]).contentLoaderInfo.content.bitmapData
+ },
+ __class__: Ub
+ });
+ var bc = function() {};
+ s.ExternalAPI = bc;
+ bc.__name__ = ["ExternalAPI"];
+ bc.JioSendScore = function(a) {
+ a > bc.JioTopScore && (bc.JioTopScore = a)
+ };
+ var y = function() {};
+ s.GameFont = y;
+ y.__name__ = ["GameFont"];
+ y.Register = function() {
+ y.Font = new Jc;
+ y.Font.face = "DOCK11";
+ y.Font.size = 32;
+ y.Font.padding = [0, 0, 0, 0];
+ y.Font.spacing = [1, 1];
+ y.Font.lineHeight = 20;
+ y.Font.base = 26;
+ y.Font.numPages = 1;
+ y.Font.bitmapName = "GameFont.png";
+ y.Font.numChars =
+ 96;
+ y.Font.chars[33] = {
+ id: 33,
+ x: 167,
+ y: 150,
+ width: 10,
+ height: 22,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 12,
+ page: 0,
+ letter: "!",
+ movieClip: null
+ };
+ y.Font.chars[34] = {
+ id: 34,
+ x: 122,
+ y: 174,
+ width: 13,
+ height: 10,
+ xOffset: 0,
+ yOffset: -2,
+ xAdvance: 15,
+ page: 0,
+ letter: '"',
+ movieClip: null
+ };
+ y.Font.chars[35] = {
+ id: 35,
+ x: 47,
+ y: 114,
+ width: 20,
+ height: 19,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 22,
+ page: 0,
+ letter: "#",
+ movieClip: null
+ };
+ y.Font.chars[36] = {
+ id: 36,
+ x: 68,
+ y: 68,
+ width: 19,
+ height: 26,
+ xOffset: 0,
+ yOffset: -3,
+ xAdvance: 21,
+ page: 0,
+ letter: "$",
+ movieClip: null
+ };
+ y.Font.chars[37] = {
+ id: 37,
+ x: 0,
+ y: 70,
+ width: 23,
+ height: 20,
+ xOffset: 0,
+ yOffset: 0,
+ xAdvance: 25,
+ page: 0,
+ letter: "%",
+ movieClip: null
+ };
+ y.Font.chars[38] = {
+ id: 38,
+ x: 68,
+ y: 117,
+ width: 19,
+ height: 23,
+ xOffset: 0,
+ yOffset: -2,
+ xAdvance: 21,
+ page: 0,
+ letter: "&",
+ movieClip: null
+ };
+ y.Font.chars[39] = {
+ id: 39,
+ x: 177,
+ y: 173,
+ width: 8,
+ height: 11,
+ xOffset: 0,
+ yOffset: 0,
+ xAdvance: 10,
+ page: 0,
+ letter: "'",
+ movieClip: null
+ };
+ y.Font.chars[40] = {
+ id: 40,
+ x: 155,
+ y: 0,
+ width: 12,
+ height: 26,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 14,
+ page: 0,
+ letter: "(",
+ movieClip: null
+ };
+ y.Font.chars[41] = {
+ id: 41,
+ x: 156,
+ y: 68,
+ width: 11,
+ height: 26,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 13,
+ page: 0,
+ letter: ")",
+ movieClip: null
+ };
+ y.Font.chars[42] = {
+ id: 42,
+ x: 142,
+ y: 0,
+ width: 12,
+ height: 12,
+ xOffset: 0,
+ yOffset: -2,
+ xAdvance: 14,
+ page: 0,
+ letter: "*",
+ movieClip: null
+ };
+ y.Font.chars[43] = {
+ id: 43,
+ x: 155,
+ y: 35,
+ width: 12,
+ height: 12,
+ xOffset: 0,
+ yOffset: 4,
+ xAdvance: 14,
+ page: 0,
+ letter: "+",
+ movieClip: null
+ };
+ y.Font.chars[44] = {
+ id: 44,
+ x: 167,
+ y: 173,
+ width: 9,
+ height: 11,
+ xOffset: 0,
+ yOffset: 12,
+ xAdvance: 11,
+ page: 0,
+ letter: ",",
+ movieClip: null
+ };
+ y.Font.chars[45] = {
+ id: 45,
+ x: 155,
+ y: 27,
+ width: 12,
+ height: 7,
+ xOffset: 0,
+ yOffset: 6,
+ xAdvance: 14,
+ page: 0,
+ letter: "-",
+ movieClip: null
+ };
+ y.Font.chars[46] = {
+ id: 46,
+ x: 155,
+ y: 177,
+ width: 9,
+ height: 9,
+ xOffset: 0,
+ yOffset: 11,
+ xAdvance: 11,
+ page: 0,
+ letter: ".",
+ movieClip: null
+ };
+ y.Font.chars[47] = {
+ id: 47,
+ x: 125,
+ y: 122,
+ width: 15,
+ height: 28,
+ xOffset: 0,
+ yOffset: -4,
+ xAdvance: 17,
+ page: 0,
+ letter: "/",
+ movieClip: null
+ };
+ y.Font.chars[48] = {
+ id: 48,
+ x: 47,
+ y: 134,
+ width: 20,
+ height: 23,
+ xOffset: 0,
+ yOffset: -2,
+ xAdvance: 22,
+ page: 0,
+ letter: "0",
+ movieClip: null
+ };
+ y.Font.chars[49] = {
+ id: 49,
+ x: 141,
+ y: 162,
+ width: 13,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 15,
+ page: 0,
+ letter: "1",
+ movieClip: null
+ };
+ y.Font.chars[50] = {
+ id: 50,
+ x: 107,
+ y: 0,
+ width: 17,
+ height: 22,
+ xOffset: 0,
+ yOffset: -2,
+ xAdvance: 19,
+ page: 0,
+ letter: "2",
+ movieClip: null
+ };
+ y.Font.chars[51] = {
+ id: 51,
+ x: 88,
+ y: 68,
+ width: 18,
+ height: 22,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 20,
+ page: 0,
+ letter: "3",
+ movieClip: null
+ };
+ y.Font.chars[52] = {
+ id: 52,
+ x: 88,
+ y: 91,
+ width: 18,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 20,
+ page: 0,
+ letter: "4",
+ movieClip: null
+ };
+ y.Font.chars[53] = {
+ id: 53,
+ x: 89,
+ y: 38,
+ width: 17,
+ height: 22,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 19,
+ page: 0,
+ letter: "5",
+ movieClip: null
+ };
+ y.Font.chars[54] = {
+ id: 54,
+ x: 88,
+ y: 129,
+ width: 18,
+ height: 22,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 20,
+ page: 0,
+ letter: "6",
+ movieClip: null
+ };
+ y.Font.chars[55] = {
+ id: 55,
+ x: 89,
+ y: 16,
+ width: 17,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 19,
+ page: 0,
+ letter: "7",
+ movieClip: null
+ };
+ y.Font.chars[56] = {
+ id: 56,
+ x: 68,
+ y: 164,
+ width: 19,
+ height: 23,
+ xOffset: 0,
+ yOffset: -2,
+ xAdvance: 21,
+ page: 0,
+ letter: "8",
+ movieClip: null
+ };
+ y.Font.chars[57] = {
+ id: 57,
+ x: 88,
+ y: 152,
+ width: 18,
+ height: 22,
+ xOffset: 0,
+ yOffset: -2,
+ xAdvance: 20,
+ page: 0,
+ letter: "9",
+ movieClip: null
+ };
+ y.Font.chars[58] = {
+ id: 58,
+ x: 167,
+ y: 48,
+ width: 9,
+ height: 16,
+ xOffset: 0,
+ yOffset: 1,
+ xAdvance: 11,
+ page: 0,
+ letter: ":",
+ movieClip: null
+ };
+ y.Font.chars[59] = {
+ id: 59,
+ x: 177,
+ y: 44,
+ width: 9,
+ height: 18,
+ xOffset: 0,
+ yOffset: 5,
+ xAdvance: 11,
+ page: 0,
+ letter: ";",
+ movieClip: null
+ };
+ y.Font.chars[60] = {
+ id: 60,
+ x: 141,
+ y: 87,
+ width: 14,
+ height: 18,
+ xOffset: 0,
+ yOffset: 2,
+ xAdvance: 16,
+ page: 0,
+ letter: "<",
+ movieClip: null
+ };
+ y.Font.chars[61] = {
+ id: 61,
+ x: 142,
+ y: 56,
+ width: 12,
+ height: 11,
+ xOffset: 0,
+ yOffset: 5,
+ xAdvance: 14,
+ page: 0,
+ letter: "=",
+ movieClip: null
+ };
+ y.Font.chars[62] = {
+ id: 62,
+ x: 141,
+ y: 68,
+ width: 14,
+ height: 18,
+ xOffset: 0,
+ yOffset: 2,
+ xAdvance: 16,
+ page: 0,
+ letter: ">",
+ movieClip: null
+ };
+ y.Font.chars[63] = {
+ id: 63,
+ x: 125,
+ y: 0,
+ width: 16,
+ height: 23,
+ xOffset: 0,
+ yOffset: -2,
+ xAdvance: 18,
+ page: 0,
+ letter: "?",
+ movieClip: null
+ };
+ y.Font.chars[64] = {
+ id: 64,
+ x: 107,
+ y: 92,
+ width: 17,
+ height: 16,
+ xOffset: 0,
+ yOffset: 1,
+ xAdvance: 19,
+ page: 0,
+ letter: "@",
+ movieClip: null
+ };
+ y.Font.chars[65] = {
+ id: 65,
+ x: 24,
+ y: 139,
+ width: 22,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 24,
+ page: 0,
+ letter: "A",
+ movieClip: null
+ };
+ y.Font.chars[66] = {
+ id: 66,
+ x: 68,
+ y: 95,
+ width: 19,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 21,
+ page: 0,
+ letter: "B",
+ movieClip: null
+ };
+ y.Font.chars[67] = {
+ id: 67,
+ x: 48,
+ y: 44,
+ width: 20,
+ height: 23,
+ xOffset: 0,
+ yOffset: -2,
+ xAdvance: 22,
+ page: 0,
+ letter: "C",
+ movieClip: null
+ };
+ y.Font.chars[68] = {
+ id: 68,
+ x: 51,
+ y: 0,
+ width: 19,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 21,
+ page: 0,
+ letter: "D",
+ movieClip: null
+ };
+ y.Font.chars[69] = {
+ id: 69,
+ x: 124,
+ y: 152,
+ width: 16,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 18,
+ page: 0,
+ letter: "E",
+ movieClip: null
+ };
+ y.Font.chars[70] = {
+ id: 70,
+ x: 125,
+ y: 24,
+ width: 16,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 18,
+ page: 0,
+ letter: "F",
+ movieClip: null
+ };
+ y.Font.chars[71] = {
+ id: 71,
+ x: 0,
+ y: 115,
+ width: 23,
+ height: 23,
+ xOffset: 0,
+ yOffset: -2,
+ xAdvance: 25,
+ page: 0,
+ letter: "G",
+ movieClip: null
+ };
+ y.Font.chars[72] = {
+ id: 72,
+ x: 48,
+ y: 68,
+ width: 19,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 21,
+ page: 0,
+ letter: "H",
+ movieClip: null
+ };
+ y.Font.chars[73] = {
+ id: 73,
+ x: 168,
+ y: 0,
+ width: 10,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 12,
+ page: 0,
+ letter: "I",
+ movieClip: null
+ };
+ y.Font.chars[74] = {
+ id: 74,
+ x: 141,
+ y: 138,
+ width: 13,
+ height: 23,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 15,
+ page: 0,
+ letter: "J",
+ movieClip: null
+ };
+ y.Font.chars[75] = {
+ id: 75,
+ x: 26,
+ y: 38,
+ width: 21,
+ height: 25,
+ xOffset: 0,
+ yOffset: -2,
+ xAdvance: 23,
+ page: 0,
+ letter: "K",
+ movieClip: null
+ };
+ y.Font.chars[76] = {
+ id: 76,
+ x: 125,
+ y: 84,
+ width: 15,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 17,
+ page: 0,
+ letter: "L",
+ movieClip: null
+ };
+ y.Font.chars[77] = {
+ id: 77,
+ x: 24,
+ y: 92,
+ width: 22,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 24,
+ page: 0,
+ letter: "M",
+ movieClip: null
+ };
+ y.Font.chars[78] = {
+ id: 78,
+ x: 48,
+ y: 22,
+ width: 20,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 22,
+ page: 0,
+ letter: "N",
+ movieClip: null
+ };
+ y.Font.chars[79] = {
+ id: 79,
+ x: 0,
+ y: 91,
+ width: 23,
+ height: 23,
+ xOffset: 0,
+ yOffset: -2,
+ xAdvance: 25,
+ page: 0,
+ letter: "O",
+ movieClip: null
+ };
+ y.Font.chars[80] = {
+ id: 80,
+ x: 47,
+ y: 92,
+ width: 20,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 22,
+ page: 0,
+ letter: "P",
+ movieClip: null
+ };
+ y.Font.chars[81] = {
+ id: 81,
+ x: 0,
+ y: 139,
+ width: 23,
+ height: 25,
+ xOffset: 0,
+ yOffset: -2,
+ xAdvance: 25,
+ page: 0,
+ letter: "Q",
+ movieClip: null
+ };
+ y.Font.chars[82] = {
+ id: 82,
+ x: 24,
+ y: 114,
+ width: 22,
+ height: 24,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 24,
+ page: 0,
+ letter: "R",
+ movieClip: null
+ };
+ y.Font.chars[83] = {
+ id: 83,
+ x: 69,
+ y: 22,
+ width: 19,
+ height: 23,
+ xOffset: 0,
+ yOffset: -2,
+ xAdvance: 21,
+ page: 0,
+ letter: "S",
+ movieClip: null
+ };
+ y.Font.chars[84] = {
+ id: 84,
+ x: 69,
+ y: 46,
+ width: 19,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 21,
+ page: 0,
+ letter: "T",
+ movieClip: null
+ };
+ y.Font.chars[85] = {
+ id: 85,
+ x: 68,
+ y: 141,
+ width: 19,
+ height: 22,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 21,
+ page: 0,
+ letter: "U",
+ movieClip: null
+ };
+ y.Font.chars[86] = {
+ id: 86,
+ x: 0,
+ y: 165,
+ width: 23,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 25,
+ page: 0,
+ letter: "V",
+ movieClip: null
+ };
+ y.Font.chars[87] = {
+ id: 87,
+ x: 0,
+ y: 0,
+ width: 28,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 30,
+ page: 0,
+ letter: "W",
+ movieClip: null
+ };
+ y.Font.chars[88] = {
+ id: 88,
+ x: 24,
+ y: 70,
+ width: 23,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 25,
+ page: 0,
+ letter: "X",
+ movieClip: null
+ };
+ y.Font.chars[89] = {
+ id: 89,
+ x: 29,
+ y: 0,
+ width: 21,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 23,
+ page: 0,
+ letter: "Y",
+ movieClip: null
+ };
+ y.Font.chars[90] = {
+ id: 90,
+ x: 47,
+ y: 158,
+ width: 20,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 22,
+ page: 0,
+ letter: "Z",
+ movieClip: null
+ };
+ y.Font.chars[91] = {
+ id: 91,
+ x: 168,
+ y: 65,
+ width: 9,
+ height: 27,
+ xOffset: 0,
+ yOffset: -4,
+ xAdvance: 11,
+ page: 0,
+ letter: "[",
+ movieClip: null
+ };
+ y.Font.chars[92] = {
+ id: 92,
+ x: 155,
+ y: 106,
+ width: 11,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 13,
+ page: 0,
+ letter: "\\",
+ movieClip: null
+ };
+ y.Font.chars[93] = {
+ id: 93,
+ x: 167,
+ y: 122,
+ width: 10,
+ height: 27,
+ xOffset: 0,
+ yOffset: -4,
+ xAdvance: 12,
+ page: 0,
+ letter: "]",
+ movieClip: null
+ };
+ y.Font.chars[94] = {
+ id: 94,
+ x: 88,
+ y: 175,
+ width: 15,
+ height: 12,
+ xOffset: 0,
+ yOffset: 0,
+ xAdvance: 17,
+ page: 0,
+ letter: "^",
+ movieClip: null
+ };
+ y.Font.chars[95] = {
+ id: 95,
+ x: 43,
+ y: 180,
+ width: 16,
+ height: 7,
+ xOffset: 0,
+ yOffset: 13,
+ xAdvance: 18,
+ page: 0,
+ letter: "_",
+ movieClip: null
+ };
+ y.Font.chars[96] = {
+ id: 96,
+ x: 156,
+ y: 95,
+ width: 9,
+ height: 8,
+ xOffset: 0,
+ yOffset: 0,
+ xAdvance: 11,
+ page: 0,
+ letter: "`",
+ movieClip: null
+ };
+ y.Font.chars[97] = {
+ id: 97,
+ x: 88,
+ y: 113,
+ width: 18,
+ height: 15,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 20,
+ page: 0,
+ letter: "a",
+ movieClip: null
+ };
+ y.Font.chars[98] = {
+ id: 98,
+ x: 71,
+ y: 0,
+ width: 18,
+ height: 15,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 20,
+ page: 0,
+ letter: "b",
+ movieClip: null
+ };
+ y.Font.chars[99] = {
+ id: 99,
+ x: 107,
+ y: 39,
+ width: 17,
+ height: 15,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 19,
+ page: 0,
+ letter: "c",
+ movieClip: null
+ };
+ y.Font.chars[100] = {
+ id: 100,
+ x: 28,
+ y: 22,
+ width: 19,
+ height: 15,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 21,
+ page: 0,
+ letter: "d",
+ movieClip: null
+ };
+ y.Font.chars[101] = {
+ id: 101,
+ x: 0,
+ y: 38,
+ width: 25,
+ height: 15,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 27,
+ page: 0,
+ letter: "e",
+ movieClip: null
+ };
+ y.Font.chars[102] = {
+ id: 102,
+ x: 0,
+ y: 22,
+ width: 27,
+ height: 15,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 29,
+ page: 0,
+ letter: "f",
+ movieClip: null
+ };
+ y.Font.chars[103] = {
+ id: 103,
+ x: 141,
+ y: 122,
+ width: 13,
+ height: 15,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 15,
+ page: 0,
+ letter: "g",
+ movieClip: null
+ };
+ y.Font.chars[104] = {
+ id: 104,
+ x: 125,
+ y: 46,
+ width: 16,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 18,
+ page: 0,
+ letter: "h",
+ movieClip: null
+ };
+ y.Font.chars[105] = {
+ id: 105,
+ x: 155,
+ y: 128,
+ width: 11,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 13,
+ page: 0,
+ letter: "i",
+ movieClip: null
+ };
+ y.Font.chars[106] = {
+ id: 106,
+ x: 155,
+ y: 150,
+ width: 11,
+ height: 26,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 13,
+ page: 0,
+ letter: "j",
+ movieClip: null
+ };
+ y.Font.chars[107] = {
+ id: 107,
+ x: 107,
+ y: 109,
+ width: 17,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 19,
+ page: 0,
+ letter: "k",
+ movieClip: null
+ };
+ y.Font.chars[108] = {
+ id: 108,
+ x: 168,
+ y: 22,
+ width: 10,
+ height: 21,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 12,
+ page: 0,
+ letter: "l",
+ movieClip: null
+ };
+ y.Font.chars[109] = {
+ id: 109,
+ x: 0,
+ y: 54,
+ width: 24,
+ height: 15,
+ xOffset: 0,
+ yOffset: 5,
+ xAdvance: 26,
+ page: 0,
+ letter: "m",
+ movieClip: null
+ };
+ y.Font.chars[110] = {
+ id: 110,
+ x: 107,
+ y: 76,
+ width: 17,
+ height: 15,
+ xOffset: 0,
+ yOffset: 5,
+ xAdvance: 19,
+ page: 0,
+ letter: "n",
+ movieClip: null
+ };
+ y.Font.chars[111] = {
+ id: 111,
+ x: 125,
+ y: 68,
+ width: 15,
+ height: 15,
+ xOffset: 0,
+ yOffset: 5,
+ xAdvance: 17,
+ page: 0,
+ letter: "o",
+ movieClip: null
+ };
+ y.Font.chars[112] = {
+ id: 112,
+ x: 107,
+ y: 55,
+ width: 17,
+ height: 20,
+ xOffset: 0,
+ yOffset: 5,
+ xAdvance: 19,
+ page: 0,
+ letter: "p",
+ movieClip: null
+ };
+ y.Font.chars[113] = {
+ id: 113,
+ x: 107,
+ y: 152,
+ width: 16,
+ height: 20,
+ xOffset: 0,
+ yOffset: 5,
+ xAdvance: 18,
+ page: 0,
+ letter: "q",
+ movieClip: null
+ };
+ y.Font.chars[114] = {
+ id: 114,
+ x: 141,
+ y: 106,
+ width: 13,
+ height: 15,
+ xOffset: 0,
+ yOffset: 5,
+ xAdvance: 15,
+ page: 0,
+ letter: "r",
+ movieClip: null
+ };
+ y.Font.chars[115] = {
+ id: 115,
+ x: 142,
+ y: 40,
+ width: 12,
+ height: 15,
+ xOffset: 0,
+ yOffset: 5,
+ xAdvance: 14,
+ page: 0,
+ letter: "s",
+ movieClip: null
+ };
+ y.Font.chars[116] = {
+ id: 116,
+ x: 155,
+ y: 48,
+ width: 11,
+ height: 19,
+ xOffset: 0,
+ yOffset: 1,
+ xAdvance: 13,
+ page: 0,
+ letter: "t",
+ movieClip: null
+ };
+ y.Font.chars[117] = {
+ id: 117,
+ x: 107,
+ y: 23,
+ width: 17,
+ height: 15,
+ xOffset: 0,
+ yOffset: 5,
+ xAdvance: 19,
+ page: 0,
+ letter: "u",
+ movieClip: null
+ };
+ y.Font.chars[118] = {
+ id: 118,
+ x: 90,
+ y: 0,
+ width: 16,
+ height: 15,
+ xOffset: 0,
+ yOffset: 5,
+ xAdvance: 18,
+ page: 0,
+ letter: "v",
+ movieClip: null
+ };
+ y.Font.chars[119] = {
+ id: 119,
+ x: 24,
+ y: 161,
+ width: 22,
+ height: 15,
+ xOffset: 0,
+ yOffset: 5,
+ xAdvance: 24,
+ page: 0,
+ letter: "w",
+ movieClip: null
+ };
+ y.Font.chars[120] = {
+ id: 120,
+ x: 107,
+ y: 173,
+ width: 14,
+ height: 14,
+ xOffset: 0,
+ yOffset: 4,
+ xAdvance: 16,
+ page: 0,
+ letter: "x",
+ movieClip: null
+ };
+ y.Font.chars[121] = {
+ id: 121,
+ x: 107,
+ y: 131,
+ width: 17,
+ height: 20,
+ xOffset: 0,
+ yOffset: 5,
+ xAdvance: 19,
+ page: 0,
+ letter: "y",
+ movieClip: null
+ };
+ y.Font.chars[122] = {
+ id: 122,
+ x: 125,
+ y: 106,
+ width: 15,
+ height: 15,
+ xOffset: 0,
+ yOffset: 5,
+ xAdvance: 17,
+ page: 0,
+ letter: "z",
+ movieClip: null
+ };
+ y.Font.chars[123] = {
+ id: 123,
+ x: 167,
+ y: 95,
+ width: 11,
+ height: 26,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 13,
+ page: 0,
+ letter: "{",
+ movieClip: null
+ };
+ y.Font.chars[124] = {
+ id: 124,
+ x: 178,
+ y: 122,
+ width: 7,
+ height: 27,
+ xOffset: 0,
+ yOffset: -4,
+ xAdvance: 9,
+ page: 0,
+ letter: "|",
+ movieClip: null
+ };
+ y.Font.chars[125] = {
+ id: 125,
+ x: 142,
+ y: 13,
+ width: 12,
+ height: 26,
+ xOffset: 0,
+ yOffset: -1,
+ xAdvance: 14,
+ page: 0,
+ letter: "}",
+ movieClip: null
+ };
+ y.Font.chars[126] = {
+ id: 126,
+ x: 24,
+ y: 177,
+ width: 18,
+ height: 7,
+ xOffset: 0,
+ yOffset: 8,
+ xAdvance: 20,
+ page: 0,
+ letter: "~",
+ movieClip: null
+ };
+ y.Font.chars[32] = {
+ id: 32,
+ x: 0,
+ y: 0,
+ width: 0,
+ height: 0,
+ xOffset: 0,
+ yOffset: 0,
+ xAdvance: 12,
+ page: 0,
+ letter: " ",
+ movieClip: null
+ };
+ y.Font.chars[9] = {
+ id: 9,
+ x: 0,
+ y: 0,
+ width: 0,
+ height: 0,
+ xOffset: 0,
+ yOffset: 0,
+ xAdvance: 96,
+ page: 0,
+ letter: "\t",
+ movieClip: null
+ }
+ };
+ var xb = function() {
+ ua.call(this);
+ var a = this.getBackgroundColor(),
+ b = 0;
+ 70 > 0.299 * (a >> 16 & 255) + 0.587 * (a >> 8 & 255) + 0.114 * (a & 255) && (b = 16777215);
+ var a = this.getHeight() / 2 - 3.5,
+ c = this.getWidth() - 60;
+ this.outline = new Aa;
+ this.outline.get_graphics().beginFill(b, 0.07);
+ this.outline.get_graphics().drawRect(0, 0, c, 7);
+ this.outline.set_x(30);
+ this.outline.set_y(a);
+ this.addChild(this.outline);
+ this.progress = new Aa;
+ this.progress.get_graphics().beginFill(b, 0.35);
+ this.progress.get_graphics().drawRect(0, 0, c - 4, 3);
+ this.progress.set_x(32);
+ this.progress.set_y(a + 2);
+ this.progress.set_scaleX(0);
+ this.addChild(this.progress)
+ };
+ s.NMEPreloader = xb;
+ xb.__name__ = ["NMEPreloader"];
+ xb.__super__ = Aa;
+ xb.prototype = R(Aa.prototype, {
+ getBackgroundColor: function() {
+ return 2236962
+ },
+ getHeight: function() {
+ return H.get_current().get_stage().get_stageHeight()
+ },
+ getWidth: function() {
+ return H.get_current().get_stage().get_stageWidth()
+ },
+ __class__: xb
+ });
+ var A = function() {
+ this.didLoad = !1;
+ this.docClick = null;
+ this.firstWidth = this.firstHeight = 0;
+ this._painted = !1;
+ this.PreloaderLogoVars = [];
+ this.PreloaderLogo = null;
+ this.PreloaderSizeVars = [];
+ this.PreloaderBarVars = [];
+ this.PreloaderBarMiddleBMD = this.PreloaderBarTop = this.PreloaderBarMiddle = this.PreloaderBarBottom = null;
+ H.get_current().get_stage().component.id = "oz_game";
+ A.instance = this;
+ this.firstWidth = this.getWidth() | 0;
+ this.firstHeight = this.getHeight() | 0;
+ xb.call(this);
+ this.addEventListener("enterFrame", ea(this, this.updateFrame));
+ Math.min(this.firstWidth, 1.7791666666666666 * this.firstHeight);
+ this.outline.get_graphics().clear();
+ this.progress.get_graphics().clear();
+ for (var a = ["512", "512", "25", "25"], b = 0, c = a.length; b <
+ c;) {
+ var d = b++;
+ this.PreloaderSizeVars[d] = K.parseInt(a[d])
+ }
+ a = ["480", "210", "440"];
+ b = 0;
+ for (c = a.length; b < c;) d = b++, this.PreloaderBarVars[d] = K.parseInt(a[d]);
+ a = new cb(this.PreloaderBarVars[0], this.PreloaderBarVars[1]);
+ b = null;
+ b = new ia(this.PreloaderBarVars[0], this.PreloaderBarVars[1] / 3 | 0, !0, -1);
+ b.copyPixels(a, new pa(0, this.PreloaderBarVars[1] / 3, this.PreloaderBarVars[0], this.PreloaderBarVars[1] / 3), new xa(0, 0));
+ this.PreloaderBarTop = this.putBitmap(b);
+ b = new ia(this.PreloaderBarVars[0], this.PreloaderBarVars[1] /
+ 3 | 0, !0, 16777215);
+ this.PreloaderBarMiddle = this.putBitmap(b);
+ this.PreloaderBarMiddleBMD = new ia(this.PreloaderBarVars[0], this.PreloaderBarVars[1] / 3 | 0, !0, 16777215);
+ this.PreloaderBarMiddleBMD.copyPixels(a, new pa(0, 0, this.PreloaderBarVars[0], this.PreloaderBarVars[1] / 3), new xa(0, 0));
+ b = new ia(this.PreloaderBarVars[0], this.PreloaderBarVars[1] / 3 | 0, !0, -1);
+ b.copyPixels(a, new pa(0, 2 * (this.PreloaderBarVars[1] / 3 | 0), this.PreloaderBarVars[0], this.PreloaderBarVars[1] / 3), new xa(0, 0));
+ this.PreloaderBarBottom = this.putBitmap(b);
+ A.done = !0;
+ this.addEventListener("enterFrame", ea(this, this.estimatePreloading));
+ a = ["512", "144"];
+ b = 0;
+ for (c = a.length; b < c;) d = b++, this.PreloaderLogoVars[d] = K.parseInt(a[d]);
+ this.PreloaderLogo = this.putBitmap(new Ba(this.PreloaderLogoVars[0], this.PreloaderLogoVars[1]));
+ G.trace("user agent: ", {
+ fileName: "Preloader.hx",
+ lineNumber: 564,
+ className: "Preloader",
+ methodName: "new",
+ customParams: [window.navigator.userAgent.toLowerCase()]
+ });
+ G.trace("needs audio ", {
+ fileName: "Preloader.hx",
+ lineNumber: 568,
+ className: "Preloader",
+ methodName: "new",
+ customParams: [u.needsAudio]
+ });
+ u.needsAudio && (a = [createjs.WebAudioPlugin, createjs.HTMLAudioPlugin], createjs.BrowserDetect.isFirefox && (a = [createjs.HTMLAudioPlugin]), u.hasMusic = createjs.Sound.registerPlugins(a), null == createjs.Sound.activePlugin ? (console.log("ActivePlugin is null"), u.hasMusic = u.hasSound = !1) : 0 <= navigator.userAgent.toLowerCase().indexOf("iemobile") ? (u.hasSound = !1, console.log("We're on IEMobile, disallowing sound if not WP")) : createjs.BrowserDetect.isIOS || createjs.BrowserDetect.isAndroid ||
+ createjs.BrowserDetect.isBlackberry ? (console.log(createjs.Sound.activePlugin.toString(), createjs.Sound.activePlugin instanceof createjs.WebAudioPlugin), u.hasSound = 0 <= createjs.Sound.activePlugin.toString().indexOf("WebAudio"), u.hasMusic = u.hasSound) : (u.hasSound = !0, console.log("no browser type check detected, allowing sound")), this.preloadHTML5Audio(), G.trace("needsAudio: ", {
+ fileName: "Preloader.hx",
+ lineNumber: 609,
+ className: "Preloader",
+ methodName: "new",
+ customParams: [u.needsAudio, " hasMusic: ", u.hasMusic,
+ " hasSound: ", u.hasSound
+ ]
+ }));
+ this.onResize()
+ };
+ s.Preloader = A;
+ A.__name__ = ["Preloader"];
+ A.CreateManifest = function(a, b) {
+ for (var c = [], d = 0, e = a.length; d < e;) {
+ var p = d++;
+ c.push({
+ id: a[p],
+ src: b + a[p] + ".ogg"
+ })
+ }
+ return c
+ };
+ A.loadAudioFiles = function(a, b, c) {
+ null == c && (c = "audioassetsweb/");
+ a = A.CreateManifest(a, c);
+ b = A.CreateManifest(b, c);
+ u.hasMusic ? (c = new createjs.LoadQueue, createjs.Sound.alternateExtensions = ["mp3"], c.installPlugin(createjs.Sound), c.on("error", A.audioLoadError), c.on("progress", A.audioLoadProgress), c.on("fileload",
+ A.audioLoadFile), c.on("complete", A.audioLoadComplete), u.hasSound ? c.loadManifest(a) : c.loadManifest(b), c.load()) : u.loaded = !0
+ };
+ A.audioLoadError = function(a) {
+ G.trace("PreloadError", {
+ fileName: "Preloader.hx",
+ lineNumber: 188,
+ className: "Preloader",
+ methodName: "audioLoadError",
+ customParams: [a.message]
+ })
+ };
+ A.audioLoadFile = function(a) {
+ G.trace("PreloadFile", {
+ fileName: "Preloader.hx",
+ lineNumber: 191,
+ className: "Preloader",
+ methodName: "audioLoadFile",
+ customParams: [a.item.id, a.item.src]
+ })
+ };
+ A.audioLoadProgress = function(a) {
+ G.trace("PreloadProgress", {
+ fileName: "Preloader.hx",
+ lineNumber: 194,
+ className: "Preloader",
+ methodName: "audioLoadProgress",
+ customParams: [a.loaded]
+ })
+ };
+ A.audioLoadComplete = function(a) {
+ G.trace("sounds are loaded", {
+ fileName: "Preloader.hx",
+ lineNumber: 198,
+ className: "Preloader",
+ methodName: "audioLoadComplete"
+ });
+ u.loaded = !0;
+ A.Destroy();
+ G.trace("Audio.loaded = ", {
+ fileName: "Preloader.hx",
+ lineNumber: 201,
+ className: "Preloader",
+ methodName: "audioLoadComplete",
+ customParams: [u.loaded]
+ })
+ };
+ A.LoadTimePass = function() {
+ A.timePassed = !0
+ };
+ A.goAway = function(a) {
+ G.trace("we cliccccck", {
+ fileName: "Preloader.hx",
+ lineNumber: 811,
+ className: "Preloader",
+ methodName: "goAway"
+ });
+ A.done = !0;
+ A.Destroy()
+ };
+ A.Destroy = function() {
+ G.trace("WE TRY DESTROY", {
+ fileName: "Preloader.hx",
+ lineNumber: 817,
+ className: "Preloader",
+ methodName: "Destroy"
+ });
+ if (A.done && (G.trace("WE DONE BRO", {
+ fileName: "Preloader.hx",
+ lineNumber: 819,
+ className: "Preloader",
+ methodName: "Destroy"
+ }), A.assetsLoaded && u.loaded)) {
+ null != A.instance && A.instance.removeEventListener("enterFrame", (Ya = A.instance, ea(Ya, Ya.estimatePreloading)));
+ for (var a =
+ 0, b = A.BMPsToRemove.length; a < b;) {
+ var c = a++;
+ G.trace("WE REMOVE BMD", {
+ fileName: "Preloader.hx",
+ lineNumber: 824,
+ className: "Preloader",
+ methodName: "Destroy",
+ customParams: [A.BMPsToRemove[c].bitmapData.component.width, c]
+ });
+ H.get_current().removeChild(A.BMPsToRemove[c])
+ }
+ null != A.bm && null != A.bm.parent && H.get_current().removeChild(A.bm);
+ null != A._outline && null != A._outline.parent && H.get_current().removeChild(A._outline);
+ null != A._progress && null != A._progress.parent && H.get_current().removeChild(A._progress);
+ document.body.style.background =
+ "#000000";
+ G.trace("we destroy", {
+ fileName: "Preloader.hx",
+ lineNumber: 853,
+ className: "Preloader",
+ methodName: "Destroy"
+ })
+ }
+ };
+ A.__super__ = xb;
+ A.prototype = R(xb.prototype, {
+ updateFrame: function(a) {
+ a = this.getWidth() | 0;
+ var b = this.getHeight() | 0;
+ if (a != this.firstWidth || b != this.firstHeight) this.firstWidth = a, this.firstHeight = b, this.onResize()
+ },
+ onResize: function(a) {
+ G.trace("RESIZING", {
+ fileName: "Preloader.hx",
+ lineNumber: 251,
+ className: "Preloader",
+ methodName: "onResize",
+ customParams: [this.getWidth(), this.getHeight()]
+ });
+ a = this.PreloaderSizeVars[0] / this.PreloaderSizeVars[1];
+ var b = 0,
+ c = 0,
+ d = this.firstWidth,
+ e = this.firstHeight;
+ 1 * this.firstWidth / this.firstHeight > a ? (d = this.firstHeight * a, b = (this.firstWidth - d) / 2) : (e = this.firstWidth * a, c = (this.firstHeight - e) / 2);
+ a = d / this.PreloaderSizeVars[0];
+ d = 0;
+ this.firstHeight > this.firstWidth && (d = (this.firstHeight - e) / 6);
+ null != this.PreloaderLogo && (this.PreloaderLogo.set_x(b + a * (this.PreloaderSizeVars[0] - this.PreloaderLogoVars[0]) / 2), this.PreloaderLogo.set_y(c + a * this.PreloaderSizeVars[2] - d), this.PreloaderLogo.set_scaleX(this.PreloaderLogo.set_scaleY(a)));
+ b += a * (this.PreloaderSizeVars[0] - this.PreloaderBarVars[0]) / 2;
+ c = this.firstHeight - c - a * (this.PreloaderBarVars[1] / 3 + this.PreloaderSizeVars[3]) + d;
+ e = this.PreloaderBarTop;
+ e.set_x(b);
+ e.set_y(c);
+ e.set_scaleX(e.set_scaleY(a));
+ e = this.PreloaderBarMiddle;
+ e.set_x(b);
+ e.set_y(c);
+ e.set_scaleX(e.set_scaleY(a));
+ e = this.PreloaderBarBottom;
+ e.set_x(b);
+ e.set_y(c);
+ e.set_scaleX(e.set_scaleY(a));
+ G.trace("RESIZING RESULT", {
+ fileName: "Preloader.hx",
+ lineNumber: 295,
+ className: "Preloader",
+ methodName: "onResize",
+ customParams: [this.PreloaderLogo.x,
+ this.PreloaderBarTop.x
+ ]
+ })
+ },
+ setXYScale: function(a, b, c, d) {
+ a.set_x(b);
+ a.set_y(c);
+ a.set_scaleX(a.set_scaleY(d))
+ },
+ preloadHTML5Audio: function() {},
+ estimatePreloading: function(a) {
+ A.estimateLoaded += 0.005;
+ A.estimateLoaded = Math.min(A.estimateLoaded, 0.8);
+ this.updateProgressBar(A.estimateLoaded)
+ },
+ updateProgressBar: function(a) {
+ var b = (this.PreloaderBarVars[0] - this.PreloaderBarVars[2]) / 2;
+ this.PreloaderBarMiddle.bitmapData.copyPixels(this.PreloaderBarMiddleBMD, new pa(b, 0, this.PreloaderBarVars[2] * a, this.PreloaderBarVars[1]),
+ new xa(b, 0))
+ },
+ mochiEnd: function() {
+ this.didLoad = !0
+ },
+ onUpdate: function(a, b) {
+ if (!A.ShowBlank) {
+ var c = a / b;
+ G.trace("updating", {
+ fileName: "Preloader.hx",
+ lineNumber: 656,
+ className: "Preloader",
+ methodName: "onUpdate",
+ customParams: [c, a, b]
+ });
+ u.needsAudio && (c *= 0.8);
+ c > A.estimateLoaded ? A.estimateLoaded = c : c = A.estimateLoaded;
+ this.updateProgressBar(c)
+ }
+ },
+ putBitmap: function(a) {
+ A.SponsorBMDInstance = a;
+ this.set_visible(!0);
+ A.bm = new Sa(a);
+ var b = Math.min(this.firstWidth, 1.7791666666666666 * this.firstHeight) / a.component.width,
+ b = Math.min(b, 2);
+ A.bm.set_x((this.firstWidth - a.component.width * b) / 2);
+ A.bm.set_y((0.7 * this.firstHeight - a.component.height * b) / 2);
+ A.bm.set_scaleX(A.bm.set_scaleY(b));
+ H.get_current().addChildAt(A.bm, 0);
+ A.BMPsToRemove.push(A.bm);
+ return A.bm
+ },
+ putBGBitmap: function(a) {
+ this.set_visible(!0);
+ A.bm = new Sa(a);
+ var b = this.firstHeight / a.component.height;
+ A.bm.set_x((this.firstWidth - a.component.width * b) / 2);
+ A.bm.set_y(0);
+ A.bm.set_scaleX(A.bm.set_scaleY(b));
+ H.get_current().addChildAt(A.bm, 0);
+ A.BMPsToRemove.push(A.bm);
+ return A.bm
+ },
+ putCenterBitmap: function(a) {
+ this.set_visible(!0);
+ A.bm = new Sa(a);
+ var b = Math.min(this.firstWidth / a.component.width, this.firstHeight / a.component.height);
+ A.bm.set_x((this.firstWidth - a.component.width * b) / 2);
+ A.bm.set_y(this.firstHeight - b * a.component.height);
+ A.bm.set_scaleX(A.bm.set_scaleY(b));
+ H.get_current().addChildAt(A.bm, 0);
+ A.BMPsToRemove.push(A.bm);
+ return A.bm
+ },
+ putLowerBitmap: function(a) {
+ this.set_visible(!0);
+ A.bm = new Sa(a);
+ var b = this.firstWidth / a.component.width;
+ 0.2 * this.firstHeight < a.component.height *
+ b && (b = 0.2 * this.firstHeight / a.component.height);
+ b = Math.min(b, 2);
+ A.bm.set_x((this.firstWidth - a.component.width * b) / 2);
+ A.bm.set_y(this.firstHeight - b * a.component.height);
+ A.bm.set_scaleX(A.bm.set_scaleY(b));
+ H.get_current().addChildAt(A.bm, 0);
+ A.BMPsToRemove.push(A.bm)
+ },
+ onInit: function() {
+ G.trace("we init preloader", {
+ fileName: "Preloader.hx",
+ lineNumber: 778,
+ className: "Preloader",
+ methodName: "onInit"
+ })
+ },
+ onLoaded: function() {
+ this.removeEventListener("enterFrame", ea(this, this.updateFrame));
+ A.ShowBlank || (A.instance =
+ null, G.trace("we done assets", {
+ fileName: "Preloader.hx",
+ lineNumber: 789,
+ className: "Preloader",
+ methodName: "onLoaded"
+ }), A.assetsLoaded = !0, A.Destroy(), this.dispatchEvent(new fa("complete")))
+ },
+ __class__: A
+ });
+ var za = function() {
+ A.call(this)
+ };
+ s.GamePreloader = za;
+ za.__name__ = ["GamePreloader"];
+ za.__super__ = A;
+ za.prototype = R(A.prototype, {
+ preloadHTML5Audio: function() {
+ A.prototype.preloadHTML5Audio.call(this);
+ A.loadAudioFiles(za.SM, za.M)
+ },
+ __class__: za
+ });
+ var t = function() {};
+ s.Globals = t;
+ t.__name__ = ["Globals"];
+ t.TextMath =
+ function(a, b, c) {
+ f.TextToSprites(a, b, q.ctxtMathFont, "0123456789/*+-=? BESTCOR:", 24, c)
+ };
+ t.TextMathWhite = function(a, b, c) {
+ f.TextToSprites(a, b, q.ctxtWhiteMathFont, "0123456789/*+-=? BESTCOR:", 24, c)
+ };
+ t.Init = function() {
+ t.levelsXML = B.parse(Ra.getString("levels")).firstElement();
+ t.definitionsXML = B.parse(Ra.getString("definitions")).firstElement();
+ t.componentsXML = B.parse('\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\n').firstElement();
+ t.levelsXMLLoaded = !0;
+ t.definitionsXMLLoaded = !0;
+ t.componentsXMLLoaded = !0;
+ t.load()
+ };
+ t.load = function() {
+ t.so = ya.getLocal("slimath_9");
+ if (null == t.so.data || null == t.so.data.levelScores) {
+ t.so.data.ratedGame = 0;
+ t.so.data.edit_data = "";
+ t.so.data.levelScores = [];
+ for (var a = 0, b = t.NUMLEVELS; a < b;) {
+ var c = a++;
+ t.so.data.levelScores[c] = -1
+ }
+ t.so.data.liveChange = -1;
+ t.so.data.lives = t.MAX_LIVES;
+ t.so.data.premiumUpgrade = "";
+ t.so.data.currentSkin = 0;
+ t.so.data.seenSkins = 1
+ }
+ t.edit_data = B.parse(S.__cast(t.so.data.edit_data,
+ String)).firstElement();
+ t.levelScores = t.so.data.levelScores;
+ t.ratedGame = t.so.data.ratedGame;
+ t.liveChange = t.so.data.liveChange;
+ t.lives = t.so.data.lives;
+ t.premiumUpgrade = t.so.data.premiumUpgrade;
+ t.currentSkin = t.so.data.currentSkin;
+ t.seenSkins = t.so.data.seenSkins
+ };
+ t.save = function() {
+ var a = db.print(t.edit_data);
+ t.so.data.edit_data = a;
+ t.so.data.levelScores = t.levelScores;
+ t.so.data.ratedGame = t.ratedGame;
+ t.so.data.lives = t.lives;
+ t.so.data.liveChange = t.liveChange;
+ t.so.data.premiumUpgrade = t.premiumUpgrade;
+ t.so.data.currentSkin =
+ t.currentSkin;
+ t.so.data.seenSkins = t.seenSkins;
+ a = null;
+ try {
+ a = S.__cast(t.so.flush(), String)
+ } catch (b) {
+ G.trace("couldnt write...", {
+ fileName: "Globals.hx",
+ lineNumber: 501,
+ className: "Globals",
+ methodName: "save"
+ })
+ }
+ null != a && (a == S.__cast(eb.PENDING, String) && G.trace("requesting permission to save", {
+ fileName: "Globals.hx",
+ lineNumber: 515,
+ className: "Globals",
+ methodName: "save"
+ }), S.__cast(eb.FLUSHED, String))
+ };
+ t.moreGames = function(a) {
+ x.getURL("http://www.hoodamath.com")
+ };
+ t.solution = function(a) {
+ x.getURL("http://www.ozdy.com/walkthroughs/jumpy-ape-joe.html")
+ };
+ t.facebook = function(a) {
+ x.getURL("https://www.facebook.com/pages/Ozdy/312711385427046")
+ };
+ t.twitter = function(a) {
+ x.getURL("https://twitter.com/OzdyGames")
+ };
+ t.amazon = function(a) {
+ a = t.AmazonURL;
+ if (null == a || 0 == a.length) a = t.DefaultMobileURL;
+ x.getURL(a)
+ };
+ t.googleplay = function(a) {
+ a = t.GooglePlayURL;
+ if (null == a || 0 == a.length) a = t.DefaultMobileURL;
+ x.getURL(a)
+ };
+ t.appstore = function(a) {
+ a = t.AppStoreURL;
+ if (null == a || 0 == a.length) a = t.DefaultMobileURL;
+ x.getURL(a)
+ };
+ var lb = function() {};
+ s.HolaverseAPI = lb;
+ lb.__name__ = ["HolaverseAPI"];
+ lb.Init = function(a) {};
+ lb.ShowAd = function() {};
+ lb.UpdateScore = function(a) {};
+ lb.Comment = function(a) {};
+ lb.Share = function(a, b, c) {};
+ var J = function() {};
+ s.HxOverrides = J;
+ J.__name__ = ["HxOverrides"];
+ J.strDate = function(a) {
+ switch (a.length) {
+ case 8:
+ a = a.split(":");
+ var b = new Date;
+ b.setTime(0);
+ b.setUTCHours(a[0]);
+ b.setUTCMinutes(a[1]);
+ b.setUTCSeconds(a[2]);
+ return b;
+ case 10:
+ return a = a.split("-"), new Date(a[0], a[1] - 1, a[2], 0, 0, 0);
+ case 19:
+ return b = a.split(" "), a = b[0].split("-"), b = b[1].split(":"), new Date(a[0], a[1] - 1, a[2],
+ b[0], b[1], b[2]);
+ default:
+ throw new D("Invalid date format : " + a);
+ }
+ };
+ J.cca = function(a, b) {
+ var c = a.charCodeAt(b);
+ return c != c ? void 0 : c
+ };
+ J.substr = function(a, b, c) {
+ if (null == c) c = a.length;
+ else if (0 > c)
+ if (0 == b) c = a.length + c;
+ else return "";
+ return a.substr(b, c)
+ };
+ J.remove = function(a, b) {
+ var c = a.indexOf(b);
+ if (-1 == c) return !1;
+ a.splice(c, 1);
+ return !0
+ };
+ J.iter = function(a) {
+ return {
+ cur: 0,
+ arr: a,
+ hasNext: function() {
+ return this.cur < this.arr.length
+ },
+ next: function() {
+ return this.arr[this.cur++]
+ }
+ }
+ };
+ var xa = function(a, b) {
+ this.x = null !=
+ a ? a : 0;
+ this.y = null != b ? b : 0
+ };
+ s["openfl.geom.Point"] = xa;
+ xa.__name__ = ["openfl", "geom", "Point"];
+ xa.prototype = {
+ setTo: function(a, b) {
+ this.x = a;
+ this.y = b
+ },
+ __class__: xa
+ };
+ var h = function() {};
+ s.Input = h;
+ h.__name__ = ["Input"];
+ h.key = function(a) {
+ return J.cca(a, 0)
+ };
+ h.is = function(a, b, c) {
+ null == c && (c = !0);
+ null == b && (b = !1);
+ if (!h.down[a] || b && !h.kproc[a]) return !1;
+ b && c && (h.kproc[a] = !0);
+ return !0
+ };
+ h.isUP = function(a, b) {
+ null == b && (b = !0);
+ null == a && (a = !1);
+ var c;
+ !h.down[38] || a && !h.kproc[38] ? c = !1 : (a && b && (h.kproc[38] = !0), c = !0);
+ if (c) return !0;
+ c = h.key("W");
+ if (!h.down[c] || a && !h.kproc[c]) return !1;
+ a && b && (h.kproc[c] = !0);
+ return !0
+ };
+ h.Init = function(a) {
+ if (!h.Initted) {
+ h.Initted = !0;
+ h.mouseWheelDelta = 0;
+ h.mctrl = !1;
+ h.mshift = !1;
+ h.kctrl = !1;
+ h.kshift = !1;
+ h.down = [];
+ h.kproc = [];
+ h.clicked = !1;
+ h.clickedSprite = null;
+ h.spriteUnder = null;
+ h.DownEvent = new Hb(null, 2);
+ h.ClickEvent = new Hb(null, 1);
+ h.OverEvent = new Hb(null, 3);
+ h.OutEvent = new Hb(null, 4);
+ for (var b = 0; 256 > b;) b++, h.down.push(!1), h.kproc.push(!1);
+ h.hasFocus = !0;
+ h.iDoc = a;
+ h.iStage = a.get_stage();
+ a.get_stage().addEventListener("keydown",
+ h.keyDownHandler);
+ a.get_stage().addEventListener("keyup", h.keyUpHandler);
+ a.get_stage().addEventListener("mouseMove", h.mouseMoveHandler);
+ a.get_stage().addEventListener("mouseDown", h.mouseDownHandler);
+ a.get_stage().addEventListener("mouseUp", h.mouseUpHandler);
+ a.get_stage().addEventListener("mouseWheel", h.mouseWheelHandler);
+ h.tx = new va;
+ h.ty = new va;
+ h.tClickedSprite = new va;
+ h.tClicked = new va;
+ kd.inputMode = Ta.TOUCH_POINT;
+ H.get_current().get_stage().addEventListener("touchMove", h.touchMoveHandler);
+ H.get_current().get_stage().addEventListener("touchBegin",
+ h.touchDownHandler);
+ H.get_current().get_stage().addEventListener("touchEnd", h.touchUpHandler);
+ a.get_stage().addEventListener("blur", h.focusOutHandler);
+ a.get_stage().addEventListener("focus", h.focusInHandler); - 1 < window.navigator.userAgent.toLowerCase().indexOf("android") ? (window.removeEventListener("mousedown", (Ya = H.get_stage(), ea(Ya, Ya.onMouse))), window.removeEventListener("mouseup", (Ya = H.get_stage(), ea(Ya, Ya.onMouse))), window.removeEventListener("mousemove", (Ya = H.get_stage(), ea(Ya, Ya.onMouse))),
+ G.trace("We're on android", {
+ fileName: "Input.hx",
+ lineNumber: 169,
+ className: "Input",
+ methodName: "Init"
+ })) : G.trace("We're not on Android", {
+ fileName: "Input.hx",
+ lineNumber: 172,
+ className: "Input",
+ methodName: "Init"
+ })
+ }
+ };
+ h.reFocus = function(a) {
+ h.iStage.get_focus() != h.iStage && h.iStage.set_focus(h.iStage)
+ };
+ h.keyDownHandler = function(a) {
+ h.down[a.keyCode % 256] = !0;
+ h.kshift = a.shiftKey;
+ h.kctrl = a.ctrlKey
+ };
+ h.keyUpHandler = function(a) {
+ a = a.keyCode;
+ h.down[a % 256] = !1;
+ h.kproc[a % 256] = !1
+ };
+ h.SetMouseXY = function(a, b) {
+ h.mx = a - h.mOffsetX;
+ h.my = b - h.mOffsetY;
+ h.mx -= ga.offsetX;
+ h.my -= ga.offsetY;
+ h.mx /= l.instance.scaleX;
+ h.my /= l.instance.scaleY
+ };
+ h.SetTouchXY = function(a, b, c) {
+ b -= h.mOffsetX;
+ c -= h.mOffsetY;
+ b -= ga.offsetX;
+ c -= ga.offsetY;
+ b /= l.instance.scaleX;
+ c /= l.instance.scaleY;
+ h.tx.h[a] = b;
+ h.ty.h[a] = c
+ };
+ h.mouseMoveHandler = function(a) {
+ h.SetMouseXY(a.stageX, a.stageY)
+ };
+ h.mouseWheelHandler = function(a) {
+ h.mouseWheelDelta = a.delta
+ };
+ h.UpdateSpriteUnder = function() {
+ var a = h.spriteUnder;
+ h.spriteUnder = f.GetSpriteAtPoint(l.instance.doc, h.mx, h.my);
+ h.clicked || (null !=
+ a && a != h.spriteUnder && a.dispatchEvent(h.OutEvent.txy(a, h.mx, h.my)), !l.isMobile && null != h.spriteUnder && h.spriteUnder.mouseEnabled && h.spriteUnder.dispatchEvent(h.OverEvent.txy(h.spriteUnder, h.mx, h.my)));
+ l.isMobile || h.clicked || (null != h.spriteUnder && h.spriteUnder.buttonMode ? h.ChangeCursor("button") : h.ChangeCursor("auto"));
+ return h.spriteUnder
+ };
+ h.ChangeCursor = function(a) {
+ h.CurCursor != a && (document.body.style.cursor = "button" == a ? "pointer" : "auto", h.CurCursor = a)
+ };
+ h.mouseDownHandler = function(a) {
+ h.SetMouseXY(a.stageX,
+ a.stageY);
+ h.clickedSprite = h.UpdateSpriteUnder();
+ h.clicked && h.lastClicked + 1 < l.instance.frameCount && (h.clicked = !1);
+ !h.clicked && null != h.clickedSprite && h.clickedSprite.mouseEnabled && h.clickedSprite.hasEventListener(2) ? (h.spriteUnder.dispatchEvent(h.DownEvent.txy(h.spriteUnder, h.mx, h.my)), null != h.DownSound && 0 < (h.spriteUnder.flags & 512) && u.PlaySound(h.ClickSound)) : h.mdown = !0;
+ h.mup = !1;
+ h.mctrl = a.ctrlKey;
+ h.mshift = a.shiftKey;
+ h.clicked = !0;
+ h.lastClicked = l.instance.frameCount
+ };
+ h.mouseUpHandler = function(a) {
+ h.SetMouseXY(a.stageX,
+ a.stageY);
+ h.UpdateSpriteUnder();
+ h.clicked && (null != h.clickedSprite && h.clickedSprite == h.spriteUnder && h.clickedSprite.mouseEnabled && (h.spriteUnder.dispatchEvent(h.ClickEvent.txy(h.spriteUnder, h.mx, h.my)), null != h.ClickSound && 0 < (h.spriteUnder.flags & 512) && u.PlaySound(h.ClickSound)), null != h.clickedSprite && h.clickedSprite != h.spriteUnder && (h.spriteUnder = h.clickedSprite));
+ h.clicked = !1;
+ h.UpdateSpriteUnder();
+ h.mdown = !1;
+ h.mup = !0
+ };
+ h.touchMoveHandler = function(a) {
+ h.SetTouchXY(a.touchPointID, a.stageX, a.stageY);
+ var b =
+ h.tClickedSprite,
+ c = a.touchPointID;
+ a = f.GetSpriteAtPoint(l.instance.doc, h.tx.h[a.touchPointID], h.ty.h[a.touchPointID]);
+ b.h[c] = a
+ };
+ h.GetTouchPointByFirstTouched = function(a) {
+ if (0 > a || a >= h.TouchIdArrayLength) return null;
+ a = h.TouchIdArray[a];
+ h._pTouch.setTo(h.tx.h[a], h.ty.h[a]);
+ return h._pTouch
+ };
+ h.GetLastTouchPoint = function() {
+ var a = h.GetLastTouchId();
+ return 0 <= a ? (h._pTouch.setTo(h.tx.h[a], h.ty.h[a]), h._pTouch) : null
+ };
+ h.AddTouchId = function(a) {
+ for (var b = 0, c = h.TouchIdArrayLength; b < c;) {
+ var d = b++,
+ d = h.TouchIdArrayLength -
+ d - 1;
+ h.TouchIdArray[d + 1] = h.TouchIdArray[d]
+ }
+ h.TouchIdArrayLength++;
+ h.TouchIdArray[0] = a
+ };
+ h.RemoveTouchId = function(a) {
+ for (var b = 0, c = 0, d = h.TouchIdArrayLength; c < d;) {
+ var e = c++;
+ h.TouchIdArray[e] == a ? ++b : h.TouchIdArray[e - b] = h.TouchIdArray[e]
+ }
+ h.TouchIdArrayLength -= b
+ };
+ h.GetLastTouchId = function() {
+ return 0 < h.TouchIdArrayLength ? h.TouchIdArray[0] : -1
+ };
+ h.touchDownHandler = function(a) {
+ h.AddTouchId(a.touchPointID);
+ h.SetTouchXY(a.touchPointID, a.stageX, a.stageY);
+ var b = h.tClickedSprite,
+ c = a.touchPointID;
+ a = f.GetSpriteAtPoint(l.instance.doc,
+ h.tx.h[a.touchPointID], h.ty.h[a.touchPointID]);
+ b.h[c] = a
+ };
+ h.touchUpHandler = function(a) {
+ h.tx.remove(a.touchPointID);
+ h.ty.remove(a.touchPointID);
+ h.RemoveTouchId(a.touchPointID);
+ h.tClickedSprite.remove(a.touchPointID)
+ };
+ h.focusOutHandler = function(a) {
+ h.hasFocus = !1;
+ for (a = 0; 256 > a;) a++
+ };
+ h.focusInHandler = function(a) {
+ h.hasFocus = !0
+ };
+ var cc = function() {
+ this.length = 0
+ };
+ s.List = cc;
+ cc.__name__ = ["List"];
+ cc.prototype = {
+ add: function(a) {
+ a = new zc(a, null);
+ null == this.h ? this.h = a : this.q.next = a;
+ this.q = a;
+ this.length++
+ },
+ iterator: function() {
+ return new Kc(this.h)
+ },
+ __class__: cc
+ };
+ var zc = function(a, b) {
+ this.item = a;
+ this.next = b
+ };
+ s["_List.ListNode"] = zc;
+ zc.__name__ = ["_List", "ListNode"];
+ zc.prototype = {
+ __class__: zc
+ };
+ var Kc = function(a) {
+ this.head = a
+ };
+ s["_List.ListIterator"] = Kc;
+ Kc.__name__ = ["_List", "ListIterator"];
+ Kc.prototype = {
+ hasNext: function() {
+ return null != this.head
+ },
+ next: function() {
+ var a = this.head.item;
+ this.head = this.head.next;
+ return a
+ },
+ __class__: Kc
+ };
+ var vb = s.OzScreenOrientation = {
+ __ename__: ["OzScreenOrientation"],
+ __constructs__: ["PORTRAIT", "LANDSCAPE"]
+ };
+ vb.PORTRAIT = ["PORTRAIT",
+ 0
+ ];
+ vb.PORTRAIT.toString = F;
+ vb.PORTRAIT.__enum__ = vb;
+ vb.LANDSCAPE = ["LANDSCAPE", 1];
+ vb.LANDSCAPE.toString = F;
+ vb.LANDSCAPE.__enum__ = vb;
+ Math.__name__ = ["Math"];
+ var M = function(a, b, c) {
+ this.name = a;
+ this.frames = b;
+ this.tilesheetId = c
+ };
+ s["oz.OzMovieClip"] = M;
+ M.__name__ = ["oz", "OzMovieClip"];
+ M.prototype = {
+ __class__: M
+ };
+ var q = function() {};
+ s.Objects = q;
+ q.__name__ = ["Objects"];
+ q.Register = function() {
+ q.MovieClips = [q.bmpLine, q.bmpPathEdge, q.bmpSysFill, q.cbtnAddition, q.cbtnDivision, q.cbtnInstructions, q.cbtnMixed, q.cbtnMultiplication,
+ q.cbtnOK1, q.cbtnPause, q.cbtnPlay1, q.cbtnResume, q.cbtnSoundOff, q.cbtnSoundOn, q.cbtnSubtraction, q.cmcBG, q.cmcBGGGG, q.cmcBGRect, q.cmcBlackEye, q.cmcCrossHair, q.cmcDashedCircle, q.cmcDashedLine, q.cmcDialogBG, q.cmcDot, q.cmcGuiStar, q.cmcHooda, q.cmcInstDlg, q.cmcInstructionScreen, q.cmcInstructionText, q.cmcMadeBy, q.cmcMinimap, q.cmcMinimapPlayer, q.cmcPathNode, q.cmcPausedText, q.cmcSmallSmoke, q.cmcSmallSmokeFrames, q.cmcSmoke, q.cmcSpeedRing, q.cmcStarCount, q.cmcStarGold, q.cmcStompy, q.cmcSuperHoodaTitle, q.cmcWhiteCircle,
+ q.cmcWhiteEye, q.cmcWormSegment, q.ctxtMathFont, q.ctxtWhiteMathFont, q.sponsorGGG, q.sysRectBlack, q.sysWhiteRect, q.tileBGRect, q.tileCoin, q.tileJungle, q.tileMenuBG
+ ];
+ f.RegisterTilesheet(q.BitmapName, q.MovieClips, q.Frames)
+ };
+ var mb = function() {};
+ s.ObjectsLayouts = mb;
+ mb.__name__ = ["ObjectsLayouts"];
+ mb.cmcInstructions = function(a) {
+ var b = f.New(q.cmcDialogBG);
+ a.addChild(b);
+ b.name = "bg";
+ b.set_x(360);
+ b.set_y(240);
+ b.set_scaleX(18.333053588867188);
+ b.set_scaleY(14.66632080078125);
+ b = f.New(q.cmcInstDlg);
+ a.addChild(b);
+ b.set_x(360);
+ b.set_y(243);
+ b = f.New(q.cmcInstructionScreen);
+ a.addChild(b);
+ b.name = "screen1";
+ b.set_x(157);
+ b.set_y(60);
+ b = f.New(q.cmcInstructionScreen);
+ a.addChild(b);
+ b.name = "screen2";
+ b.set_x(362);
+ b.set_y(165);
+ b = f.New(q.cmcInstructionScreen);
+ a.addChild(b);
+ b.name = "screen3";
+ b.set_x(157);
+ b.set_y(269);
+ b = f.New(q.cmcInstructionText);
+ a.addChild(b);
+ b.name = "text1";
+ b.set_x(441);
+ b.set_y(109);
+ b = f.New(q.cmcInstructionText);
+ a.addChild(b);
+ b.name = "text2";
+ b.set_x(277);
+ b.set_y(212);
+ b = f.New(q.cmcInstructionText);
+ a.addChild(b);
+ b.name = "text3";
+ b.set_x(439);
+ b.set_y(320);
+ b = f.New(q.cbtnOK1);
+ a.addChild(b);
+ b.name = "btnOK";
+ b.set_x(508);
+ b.set_y(410)
+ };
+ mb.cmcPaused = function(a) {
+ var b = f.New(q.cmcDialogBG);
+ a.addChild(b);
+ b.name = "bg";
+ b.set_x(360);
+ b.set_y(240);
+ b.set_scaleX(18.333053588867188);
+ b.set_scaleY(14.66632080078125);
+ b = f.New(q.cmcPausedText);
+ a.addChild(b);
+ b.name = "pause";
+ b.set_x(361);
+ b.set_y(226);
+ b = f.New(q.cbtnResume);
+ a.addChild(b);
+ b.name = "btnPlay";
+ b.set_x(360);
+ b.set_y(328);
+ b = f.New(q.cbtnSoundOn);
+ a.addChild(b);
+ b.name = "soundOn";
+ b.set_x(360);
+ b.set_y(131);
+ b = f.New(q.cbtnSoundOff);
+ a.addChild(b);
+ b.name = "soundOff";
+ b.set_x(360);
+ b.set_y(131)
+ };
+ mb.cmcPlay = function(a) {
+ var b = f.New(q.cmcBG);
+ a.addChild(b);
+ b.name = "bg";
+ b = f.New(q.cmcMinimap);
+ a.addChild(b);
+ b.name = "minimap";
+ b.set_x(672);
+ b.set_y(432);
+ b.set_alpha(0.49);
+ b = f.New(q.ctxtMathFont);
+ a.addChild(b);
+ b.name = "problem";
+ b.set_x(347);
+ b.set_y(4);
+ b = f.New(q.cbtnPause);
+ a.addChild(b);
+ b.name = "btnPause";
+ b.set_x(691);
+ b.set_y(29);
+ b.set_scaleX(0.78125);
+ b.set_scaleY(0.78125);
+ b.set_alpha(0.49);
+ b = f.New(q.ctxtWhiteMathFont);
+ a.addChild(b);
+ b.name = "score";
+ b.set_x(4);
+ b.set_y(4);
+ b = f.New(q.ctxtMathFont);
+ a.addChild(b);
+ b.name = "problem2";
+ b.set_x(4);
+ b.set_y(442);
+ b = f.New(q.sponsorGGG);
+ a.addChild(b);
+ b.name = "sponsor";
+ b.set_x(108);
+ b.set_y(450);
+ b.set_scaleX(0.6969757080078125);
+ b.set_scaleY(0.6969757080078125)
+ };
+ mb.cmcPlayOverlay = function(a) {
+ var b = f.New(q.tileMenuBG);
+ a.addChild(b);
+ b.name = "bg";
+ b = f.New(q.cmcSuperHoodaTitle);
+ a.addChild(b);
+ b.name = "title";
+ b.set_x(355);
+ b.set_y(109);
+ b = f.New(q.ctxtMathFont);
+ a.addChild(b);
+ b.name = "best";
+ b.set_x(347);
+ b.set_y(191);
+ b = f.New(q.ctxtMathFont);
+ a.addChild(b);
+ b.name = "score";
+ b.set_x(347);
+ b.set_y(154);
+ b = f.New(q.cbtnInstructions);
+ a.addChild(b);
+ b.name = "btnInstructions";
+ b.set_x(360);
+ b.set_y(358);
+ b = f.New(q.ctxtMathFont);
+ a.addChild(b);
+ b.name = "problem";
+ b.set_x(347);
+ b.set_y(4);
+ b = f.New(q.cbtnPlay1);
+ a.addChild(b);
+ b.name = "btnPlay";
+ b.set_x(360);
+ b.set_y(280);
+ b = f.New(q.cbtnSoundOn);
+ a.addChild(b);
+ b.name = "soundOn";
+ b.set_x(688);
+ b.set_y(30);
+ b.set_scaleX(0.78125);
+ b.set_scaleY(0.78125);
+ b = f.New(q.cbtnSoundOff);
+ a.addChild(b);
+ b.name = "soundOff";
+ b.set_x(688);
+ b.set_y(30);
+ b.set_scaleX(0.78125);
+ b.set_scaleY(0.78125);
+ b = f.New(q.sponsorGGG);
+ a.addChild(b);
+ b.name = "sponsor";
+ b.set_x(360);
+ b.set_y(440);
+ b.set_scaleX(0.71221923828125);
+ b.set_scaleY(0.71221923828125);
+ b = f.New(q.cmcMadeBy);
+ a.addChild(b);
+ b.name = "madeBy";
+ b.set_x(65);
+ b.set_y(464);
+ b = f.New(q.cbtnAddition);
+ a.addChild(b);
+ b.name = "btnAddition";
+ b.set_x(268);
+ b.set_y(202);
+ b = f.New(q.cbtnSubtraction);
+ a.addChild(b);
+ b.name = "btnSubtraction";
+ b.set_x(452);
+ b.set_y(202);
+ b = f.New(q.cbtnMultiplication);
+ a.addChild(b);
+ b.name = "btnMultiplication";
+ b.set_x(268);
+ b.set_y(280);
+ b = f.New(q.cbtnDivision);
+ a.addChild(b);
+ b.name = "btnDivision";
+ b.set_x(452);
+ b.set_y(280);
+ b = f.New(q.cbtnMixed);
+ a.addChild(b);
+ b.name = "btnMixed";
+ b.set_x(360);
+ b.set_y(358)
+ };
+ var ia = function(a, b, c, d) {
+ null == c && (c = !0);
+ this.__sync = 1;
+ this.__transparent = c;
+ this.__revision = 0;
+ this.__rect = new pa(0, 0, a, b);
+ this.component = Zc.createCanvasElement();
+ this.component.width = a;
+ this.component.height = b;
+ this.context = this.component.getContext("2d");
+ ia.setSmoothing(this.context, !0);
+ this.__pixelData = this.context.createImageData(1, 1);
+ null == d && (d = -1);
+ c || (d |= -16777216);
+ 0 != (d & -16777216) && this.fillRect(this.__rect, d)
+ };
+ s["openfl.display.BitmapData"] = ia;
+ ia.__name__ = ["openfl", "display", "BitmapData"];
+ ia.__interfaces__ = [Pa];
+ ia.setSmoothing = function(a, b) {
+ a.imageSmoothingEnabled = a.oImageSmoothingEnabled = a.msImageSmoothingEnabled = a.webkitImageSmoothingEnabled = a.mozImageSmoothingEnabled = b
+ };
+ ia.makeColor = function(a) {
+ return "rgba(" + (a >> 16 & 255) + "," + (a >> 8 & 255) + "," + (a & 255) + "," + ((a >> 24 & 255) / 255).toFixed(4) +
+ ")"
+ };
+ ia.prototype = {
+ fillRect: function(a, b) {
+ null == a || 0 >= a.width || 0 >= a.height || (a.equals(this.__rect) && this.__transparent && 0 == (b & -16777216) ? this.component.width = this.component.width : (this.__transparent ? -16777216 != (b & -16777216) && this.context.clearRect(a.x, a.y, a.width, a.height) : b |= -16777216, 0 != (b & -16777216) && (this.context.fillStyle = ia.makeColor(b), this.context.fillRect(a.x, a.y, a.width, a.height)), this.__sync |= 5))
+ },
+ clone: function() {
+ this.syncCanvas();
+ var a = new ia(this.component.width, this.component.height,
+ this.__transparent, 0);
+ a.context.drawImage(this.component, 0, 0);
+ a.__sync |= 5;
+ return a
+ },
+ handle: function() {
+ this.syncCanvas();
+ 0 != (this.__sync & 4) && (this.__revision++, this.__sync &= -5);
+ return this.component
+ },
+ drawToSurface: function(a, b, c, d, e, p, f) {
+ b.save();
+ null != f && b.imageSmoothingEnabled != f && ia.setSmoothing(b, f);
+ null != c && (1 == c.a && 0 == c.b && 0 == c.c && 1 == c.d ? b.translate(c.tx, c.ty) : b.setTransform(c.a, c.b, c.c, c.d, c.tx, c.ty));
+ b.drawImage(this.handle(), 0, 0);
+ b.restore()
+ },
+ copyPixels: function(a, b, c, d, e, p) {
+ null == p && (p = !1);
+ this.syncCanvas();
+ if (null != d) throw new D("alphaBitmapData is not supported yet.");
+ a = a.handle();
+ var f, g;
+ d = this.component.width;
+ e = this.component.height;
+ var k;
+ null != a ? (f = a.width, k = 0 >= f) : k = !0;
+ k ? k = !0 : (g = a.height, k = 0 >= g);
+ if (!k) {
+ k = ~~c.x;
+ c = ~~c.y;
+ var I, h, w;
+ null != b ? (I = b.x, h = b.y, w = b.width, b = b.height, 0 > I && (w += I, I = 0), 0 > h && (b += h, h = 0), I + w > f && (w = f - I), h + b > g && (b = g - h)) : (I = h = 0, w = f, b = g);
+ 0 > k && (w += k, I -= k, k = 0);
+ 0 > c && (b += c, h -= c, c = 0);
+ k + w > d && (w = d - k);
+ c + b > e && (b = e - c);
+ 0 >= w || 0 >= b || (this.__transparent && !p && this.context.clearRect(k,
+ c, w, b), this.context.drawImage(a, I, h, w, b, k, c, w, b), this.__sync |= 5)
+ }
+ },
+ draw: function(a, b, c, d, e, p) {
+ this.syncCanvas();
+ var f = 0;
+ this.context.save();
+ null != c && (f = c.alphaMultiplier, c.alphaMultiplier = 1, this.context.globalAlpha *= f);
+ null != e && (this.context.beginPath(), this.context.rect(e.x, e.y, e.width, e.height), this.context.clip(), this.context.beginPath());
+ null != p && ia.setSmoothing(this.context, p);
+ a.drawToSurface(this.handle(), this.context, b, c, d, e, null);
+ this.context.restore();
+ null != c && (c.alphaMultiplier = f);
+ this.__sync |=
+ 5
+ },
+ jeashOnLoad: function(a, b) {
+ var c = a.texture,
+ d = a.image.width,
+ e = a.image.height;
+ c.width = d;
+ c.height = e;
+ c.getContext("2d").drawImage(a.image, 0, 0, d, e);
+ a.bitmapData.width = d;
+ a.bitmapData.height = e;
+ a.bitmapData.__rect = new pa(0, 0, d, e);
+ null != a.inLoader && (c = new fa("complete"), c.set_target(a.inLoader), a.inLoader.dispatchEvent(c))
+ },
+ nmeLoadFromFile: function(a, b) {
+ var c = this,
+ d = window.document.createElement("img");
+ if (null != b) {
+ var e = {
+ image: d,
+ texture: this.component,
+ inLoader: b,
+ bitmapData: this
+ },
+ p = ea(this, this.jeashOnLoad);
+ d.addEventListener("load", function(a) {
+ p(e, a)
+ }, !1);
+ d.addEventListener("error", function(a) {
+ d.complete || c.jeashOnLoad(e, a)
+ }, !1)
+ }
+ d.src = a
+ },
+ syncCanvas: function() {
+ 2 == (this.__sync & 3) && (this.context.putImageData(this.__imageData, 0, 0), this.__sync &= -4)
+ },
+ __class__: ia
+ };
+ var Mb = function() {
+ this.intervalHandle = null;
+ this.isTouchScreen = !1;
+ this.frameRate = null;
+ ua.call(this);
+ var a = this.component.style,
+ b = window;
+ a.position = "absolute";
+ a.overflow = "hidden";
+ a.left = a.top = "0";
+ a.width = a.height = "100%";
+ this.mousePos = new xa;
+ b.addEventListener("contextmenu",
+ function(a) {
+ a.preventDefault()
+ });
+ b.addEventListener("click", ea(this, this.onMouse));
+ b.addEventListener("mousedown", ea(this, this.onMouse));
+ b.addEventListener("mouseup", ea(this, this.onMouse));
+ b.addEventListener("mousemove", ea(this, this.onMouse));
+ b.addEventListener("mousewheel", ea(this, this.onWheel));
+ b.addEventListener("DOMMouseScroll", ea(this, this.onWheel));
+ b.addEventListener("touchmove", this.getOnTouch(0));
+ b.addEventListener("touchstart", this.getOnTouch(1));
+ b.addEventListener("touchend", this.getOnTouch(2));
+ b.addEventListener("touchcancel", this.getOnTouch(2));
+ this.mouseMtxDepth = [];
+ this.mouseMtxStack = [];
+ this.mouseMtxCache = [];
+ this.mouseTriggered = [];
+ this.mouseUntrigger = [];
+ for (a = -1; 3 > ++a;) this.mouseTriggered[a] = !1, this.mouseUntrigger[a] = this.getMouseUntrigger(a)
+ };
+ s["openfl.display.Stage"] = Mb;
+ Mb.__name__ = ["openfl", "display", "Stage"];
+ Mb.__super__ = ua;
+ Mb.prototype = R(ua.prototype, {
+ _broadcastMouseEvent: function(a) {
+ var b = this.mouseOver,
+ c;
+ a.stageX = this.mousePos.x;
+ a.stageY = this.mousePos.y;
+ this.broadcastMouse(this.mouseMtxDepth,
+ a, this.mouseMtxStack, this.mouseMtxCache);
+ this.mouseOver = c = a.relatedObject;
+ b != c && (null != b && b.dispatchEvent(this._alterMouseEvent(a, "mouseOut")), null != c && c.dispatchEvent(this._alterMouseEvent(a, "mouseOver")))
+ },
+ _broadcastTouchEvent: function(a, b, c) {
+ a.stageX = b;
+ a.stageY = c;
+ this.broadcastMouse(this.mouseMtxDepth, a, this.mouseMtxStack, this.mouseMtxCache)
+ },
+ getMouseUntrigger: function(a) {
+ var b = this;
+ return function() {
+ b.mouseTriggered[a] = !1
+ }
+ },
+ _alterMouseEvent: function(a, b) {
+ var c = new fb(b, a.bubbles, a.cancelable,
+ a.localX, a.localY, a.relatedObject, a.ctrlKey, a.altKey, a.shiftKey, a.buttonDown, a.delta);
+ c.stageX = a.stageX;
+ c.stageY = a.stageY;
+ return c
+ },
+ _translateMouseEvent: function(a, b) {
+ return new fb(b, !0, !1, null, null, null, a.ctrlKey, a.altKey, a.shiftKey)
+ },
+ _translateTouchEvent: function(a, b, c) {
+ b = new lc(c, !0, !1, b.identifier, !1, null, null, b.radiusX, b.radiusY, b.force, null, a.ctrlKey, a.altKey, a.shiftKey);
+ b.__jsEvent = a;
+ return b
+ },
+ mouseEventPrevent: function(a, b, c) {
+ var d = this.mousePos,
+ d = d.x == b && d.y == c;
+ if (0 <= a && d && this.mouseTriggered[a]) return !0;
+ d || this.mousePos.setTo(b, c);
+ 0 <= a && !this.mouseTriggered[a] && (this.mouseTriggered[a] = !0, window.setTimeout(this.mouseUntrigger[a], 0));
+ 1 == a ? this.mouseDown ? this._broadcastMouseEvent(this._alterMouseEvent(this.mouseLastEvent, "mouseUp")) : this.mouseDown = !0 : 2 == a && (this.mouseDown ? this.mouseDown = !1 : this._broadcastMouseEvent(new fb("mouseDown")));
+ return !1
+ },
+ getOnTouch: function(a) {
+ var b = this;
+ return function(c) {
+ b.onTouch(c, a)
+ }
+ },
+ onTouch: function(a, b) {
+ var c = a.targetTouches,
+ d = c.length,
+ e = a.changedTouches,
+ p = e.length,
+ c = 0 < d ? c[0] : 0 < p ? e[0] : null,
+ f;
+ a.preventDefault();
+ this.isTouchScreen = !0;
+ null != c && (0 == b || 1 == b && d == p || 2 == b && 0 == d && 0 < p) && !this.mouseEventPrevent(b, c.pageX, c.pageY) && (this.mouseLastEvent = new fb(1 == b ? "mouseDown" : 2 == b ? "mouseUp" : "mouseMove"), this.mouseLastEvent.__jsEvent = a, this._broadcastMouseEvent(this.mouseLastEvent), 2 == b && (d = new fb("mouseClick"), d.__jsEvent = a, this._broadcastMouseEvent(d)));
+ if (0 < p) {
+ switch (b) {
+ case 1:
+ c = "touchBegin";
+ break;
+ case 2:
+ c = "touchEnd";
+ break;
+ default:
+ c = "touchMove"
+ }
+ for (d = -1; ++d < p;) f = e[d],
+ this._broadcastTouchEvent(this._translateTouchEvent(a, f, c), f.pageX, f.pageY)
+ }
+ },
+ onWheel: function(a) {
+ var b = this._translateMouseEvent(a, "mouseWheel"),
+ c = a.wheelDelta,
+ c = null != c ? 40 < Math.abs(c) ? Math.round(c / 40) : 0 > c ? -1 : 0 < c ? 1 : 0 : -a.detail;
+ b.delta = c;
+ this.mousePos.setTo(a.pageX, a.pageY);
+ this._broadcastMouseEvent(b)
+ },
+ onMouse: function(a) {
+ var b = null,
+ c = -1,
+ d;
+ if ("mousemove" == a.type) b = "mouseMove", c = 0;
+ else switch (d = a.button, a.type) {
+ case "click":
+ 0 == d ? b = "mouseClick" : 1 == d ? b = "rightClick" : 2 == d && (b = "middleClick");
+ break;
+ case "mousedown":
+ 0 ==
+ d ? b = "mouseDown" : 1 == d ? b = "middleMouseDown" : 2 == d && (b = "rightMouseDown");
+ c = 1;
+ break;
+ case "mouseup":
+ 0 == d ? b = "mouseUp" : 1 == d ? b = "middleMouseUp" : 2 == d && (b = "rightMouseUp");
+ c = 2;
+ break;
+ default:
+ return
+ }
+ this.mouseEventPrevent(c, a.pageX, a.pageY) || (this.mouseLastEvent = new fb(b), this.mouseLastEvent.__jsEvent = a, this._broadcastMouseEvent(this.mouseLastEvent))
+ },
+ hitTestLocal: function(a, b, c, d) {
+ return d ? this.visible : !0
+ },
+ addEventListener: function(a, b, c, d, e) {
+ null == e && (e = !1);
+ null == d && (d = 0);
+ null == c && (c = !1);
+ var p = this.component;
+ this.component =
+ window;
+ ua.prototype.addEventListener.call(this, a, b, c, d, e);
+ this.component = p
+ },
+ removeEventListener: function(a, b, c) {
+ null == c && (c = !1);
+ var d = this.component;
+ this.component = window;
+ ua.prototype.removeEventListener.call(this, a, b, c);
+ this.component = d
+ },
+ get_focus: function() {
+ var a = document.activeElement,
+ b;
+ null != a ? (a = a.node, b = S.__instanceof(a, Wa)) : b = !1;
+ return b ? a : null
+ },
+ set_focus: function(a) {
+ null != a ? a.giveFocus() : this.component.blur();
+ return a
+ },
+ get_stageWidth: function() {
+ return window.innerWidth
+ },
+ get_stageHeight: function() {
+ return window.innerHeight
+ },
+ get_stage: function() {
+ return this
+ },
+ set_frameRate: function(a) {
+ this.frameRate != a && (null != this.intervalHandle && (0 >= this.frameRate ? window._cancelAnimationFrame(this.intervalHandle) : window.clearInterval(this.intervalHandle)), this.intervalHandle = 0 >= (this.frameRate = a) ? window._requestAnimationFrame(ea(this, this.onTimer)) : window.setInterval(ea(this, this.onTimer), Math.max(0, 1E3 / a) | 0));
+ return a
+ },
+ onTimer: function() {
+ H.getTimer();
+ for (var a = -1; ++a < H.schLength;) H.schList[a](), H.schList[a] = null;
+ H.schLength = 0;
+ this.broadcastEvent(new fa("enterFrame"));
+ 0 >= this.frameRate && (this.intervalHandle = window._requestAnimationFrame(ea(this, this.onTimer)))
+ },
+ __class__: Mb,
+ __properties__: R(ua.prototype.__properties__, {
+ get_stageHeight: "get_stageHeight",
+ get_stageWidth: "get_stageWidth",
+ set_focus: "set_focus",
+ get_focus: "get_focus",
+ set_frameRate: "set_frameRate"
+ })
+ });
+ var sc = function(a) {
+ if (null == a) throw new D("Cannot create Transform with no DisplayObject.");
+ this._displayObject = a;
+ this._matrix = new na;
+ this._fullMatrix = new na;
+ this.set_colorTransform(new Vb)
+ };
+ s["openfl.geom.Transform"] =
+ sc;
+ sc.__name__ = ["openfl", "geom", "Transform"];
+ sc.prototype = {
+ set_colorTransform: function(a) {
+ return this.colorTransform = a
+ },
+ get_matrix: function() {
+ var a = this._matrix;
+ return new na(a.a, a.b, a.c, a.d, a.tx, a.ty)
+ },
+ __class__: sc,
+ __properties__: {
+ get_matrix: "get_matrix",
+ set_colorTransform: "set_colorTransform"
+ }
+ };
+ var na = function(a, b, c, d, e, p) {
+ this.a = null == a ? 1 : a;
+ this.b = null == b ? 0 : b;
+ this.c = null == c ? 0 : c;
+ this.d = null == d ? 1 : d;
+ this.tx = null == e ? 0 : e;
+ this.ty = null == p ? 0 : p
+ };
+ s["openfl.geom.Matrix"] = na;
+ na.__name__ = ["openfl", "geom", "Matrix"];
+ na.create = function() {
+ var a = na.pool;
+ return 0 < a.length ? a.pop() : new na
+ };
+ na.prototype = {
+ identity: function() {
+ this.a = this.d = 1;
+ this.b = this.c = this.tx = this.ty = 0
+ },
+ isIdentity: function() {
+ return 1 == this.a && 1 == this.d && 0 == this.tx && 0 == this.ty && 0 == this.b ? 0 == this.c : !1
+ },
+ copy: function(a) {
+ this.a = a.a;
+ this.b = a.b;
+ this.c = a.c;
+ this.d = a.d;
+ this.tx = a.tx;
+ this.ty = a.ty
+ },
+ invert: function() {
+ var a, b = this.a * this.d - this.b * this.c;
+ 0 == b ? (this.a = this.b = this.c = this.d = 0, this.tx = -this.tx, this.ty = -this.ty) : (b = 1 / b, a = this.d * b, this.d = this.a * b, this.a =
+ a, this.b *= -b, this.c *= -b, a = -this.a * this.tx - this.c * this.ty, this.ty = -this.b * this.tx - this.d * this.ty, this.tx = a)
+ },
+ translate: function(a, b) {
+ this.tx += a;
+ this.ty += b
+ },
+ rotate: function(a) {
+ var b = Math.cos(a);
+ a = Math.sin(a);
+ var c = this.a * b - this.b * a;
+ this.b = this.a * a + this.b * b;
+ this.a = c;
+ c = this.c * b - this.d * a;
+ this.d = this.c * a + this.d * b;
+ this.c = c;
+ c = this.tx * b - this.ty * a;
+ this.ty = this.tx * a + this.ty * b;
+ this.tx = c
+ },
+ scale: function(a, b) {
+ this.a *= a;
+ this.b *= b;
+ this.c *= a;
+ this.d *= b;
+ this.tx *= a;
+ this.ty *= b
+ },
+ concat: function(a) {
+ var b = this.a * a.a + this.b *
+ a.c;
+ this.b = this.a * a.b + this.b * a.d;
+ this.a = b;
+ b = this.c * a.a + this.d * a.c;
+ this.d = this.c * a.b + this.d * a.d;
+ this.c = b;
+ b = this.tx * a.a + this.ty * a.c + a.tx;
+ this.ty = this.tx * a.b + this.ty * a.d + a.ty;
+ this.tx = b
+ },
+ __class__: na
+ };
+ var Vb = function(a, b, c, d, e, p, f, g) {
+ this.redMultiplier = null != a ? a : 1;
+ this.greenMultiplier = null != b ? b : 1;
+ this.blueMultiplier = null != c ? c : 1;
+ this.alphaMultiplier = null != d ? d : 1;
+ this.redOffset = null != e ? e : 0;
+ this.greenOffset = null != p ? p : 0;
+ this.blueOffset = null != f ? f : 0;
+ this.alphaOffset = null != g ? g : 0
+ };
+ s["openfl.geom.ColorTransform"] =
+ Vb;
+ Vb.__name__ = ["openfl", "geom", "ColorTransform"];
+ Vb.prototype = {
+ __class__: Vb
+ };
+ var dc = function() {};
+ s["haxe.IMap"] = dc;
+ dc.__name__ = ["haxe", "IMap"];
+ var Oa = function() {
+ this.h = {
+ __keys__: {}
+ }
+ };
+ s["haxe.ds.ObjectMap"] = Oa;
+ Oa.__name__ = ["haxe", "ds", "ObjectMap"];
+ Oa.__interfaces__ = [dc];
+ Oa.assignId = function(a) {
+ return a.__id__ = ++Oa.count
+ };
+ Oa.getId = function(a) {
+ return a.__id__
+ };
+ Oa.prototype = {
+ set: function(a, b) {
+ var c = a.__id__ || (a.__id__ = ++Oa.count);
+ this.h[c] = b;
+ this.h.__keys__[c] = a
+ },
+ remove: function(a) {
+ a = a.__id__;
+ if (null ==
+ this.h.__keys__[a]) return !1;
+ delete this.h[a];
+ delete this.h.__keys__[a];
+ return !0
+ },
+ keys: function() {
+ var a = [],
+ b;
+ for (b in this.h.__keys__) this.h.hasOwnProperty(b) && a.push(this.h.__keys__[b]);
+ return J.iter(a)
+ },
+ __class__: Oa
+ };
+ var H = function() {};
+ s["openfl.Lib"] = H;
+ H.__name__ = ["openfl", "Lib"];
+ H.__properties__ = {
+ get_stage: "get_stage",
+ get_current: "get_current"
+ };
+ H.__init = function() {
+ H.schList = [];
+ H.schLength = 0;
+ var a = window,
+ b = "equestAnimationFrame";
+ H.getTimer();
+ a._requestAnimationFrame = a["r" + b] || a["webkitR" + b] || a["mozR" +
+ b] || a["oR" + b] || a["msR" + b] || function(b) {
+ var d = 700 / H.get_stage().frameRate | 0;
+ return a.setTimeout(b, d)
+ };
+ b = "ancelAnimationFrame";
+ a._cancelAnimationFrame = a["c" + b] || a["webkitC" + b] || a["mozC" + b] || a["oC" + b] || a["msC" + b] || function(b) {
+ a.clearTimeout(b)
+ }
+ };
+ H.getTimer = function() {
+ return new Date - H.qTimeStamp | 0
+ };
+ H.getURL = function(a, b) {
+ window.open(a.url, b)
+ };
+ H.jsNode = function(a) {
+ var b = document.createElement(a),
+ c = b.style;
+ c.position = "absolute";
+ switch (a) {
+ case "canvas":
+ c.setProperty("-webkit-touch-callout", "none", null);
+ H.setCSSProperties(c, "user-select", "none", 47);
+ break;
+ case "input":
+ case "textarea":
+ c.outline = "none"
+ }
+ return b
+ };
+ H.get_current = function() {
+ null == H.qCurrent && H.get_stage().addChild(H.qCurrent = new Wb);
+ return H.qCurrent
+ };
+ H.get_stage = function() {
+ null == H.qStage && document.body.appendChild((H.qStage = new Mb).component);
+ return H.qStage
+ };
+ H.schedule = function(a) {
+ H.schList[H.schLength++] = a
+ };
+ H.rgbf = function(a, b) {
+ return "rgba(" + (a >> 16 & 255) + "," + (a >> 8 & 255) + "," + (a & 255) + "," + b.toFixed(4) + ")"
+ };
+ H.setCSSProperties = function(a, b,
+ c, d) {
+ d || (d = 31);
+ d & 1 && a.setProperty(b, c, null);
+ d & 2 && a.setProperty("-webkit-" + b, c, null);
+ d & 4 && a.setProperty("-moz-" + b, c, null);
+ d & 8 && a.setProperty("-ms-" + b, c, null);
+ d & 16 && a.setProperty("-o-" + b, c, null);
+ d & 32 && a.setProperty("-khtml-" + b, c, null)
+ };
+ var Wb = function() {
+ ua.call(this);
+ this.enabled = !0;
+ this.qIndex = this.qTotal = 0;
+ this.loaderInfo = kb.create()
+ };
+ s["openfl.display.MovieClip"] = Wb;
+ Wb.__name__ = ["openfl", "display", "MovieClip"];
+ Wb.__super__ = Aa;
+ Wb.prototype = R(Aa.prototype, {
+ __class__: Wb
+ });
+ var kb = function() {
+ this.eventList =
+ new X;
+ this.bytesLoaded = this.bytesTotal = 0;
+ this.childAllowsParent = !0;
+ this.parameters = {}
+ };
+ s["openfl.display.LoaderInfo"] = kb;
+ kb.__name__ = ["openfl", "display", "LoaderInfo"];
+ kb.create = function(a) {
+ var b = new kb;
+ null != a ? b.loader = a : b.url = "";
+ return b
+ };
+ kb.__super__ = ta;
+ kb.prototype = R(ta.prototype, {
+ __class__: kb
+ });
+ var K = function() {};
+ s.Std = K;
+ K.__name__ = ["Std"];
+ K.string = function(a) {
+ return S.__string_rec(a, "")
+ };
+ K.parseInt = function(a) {
+ var b = parseInt(a, 10);
+ 0 != b || 120 != J.cca(a, 1) && 88 != J.cca(a, 1) || (b = parseInt(a));
+ return isNaN(b) ?
+ null : b
+ };
+ var pa = function(a, b, c, d) {
+ null == d && (d = 0);
+ null == c && (c = 0);
+ null == b && (b = 0);
+ null == a && (a = 0);
+ this.x = a;
+ this.y = b;
+ this.width = c;
+ this.height = d
+ };
+ s["openfl.geom.Rectangle"] = pa;
+ pa.__name__ = ["openfl", "geom", "Rectangle"];
+ pa.prototype = {
+ equals: function(a) {
+ return this.x == a.x && this.y == a.y && this.width == a.width ? this.height == a.height : !1
+ },
+ setVoid: function() {
+ this.width -= 2147483647 - this.x;
+ this.x = 2147483647;
+ this.width = -2147483648 - this.x;
+ this.height -= 2147483647 - this.y;
+ this.y = 2147483647;
+ this.height = -2147483648 - this.y
+ },
+ contains: function(a, b) {
+ return 0 <= (a -= this.x) && 0 <= (b -= this.y) && a < this.width ? b < this.height : !1
+ },
+ __class__: pa
+ };
+ var Zc = function() {};
+ s["openfl.bitfive.NodeTools"] = Zc;
+ Zc.__name__ = ["openfl", "bitfive", "NodeTools"];
+ Zc.createCanvasElement = function() {
+ var a = window.document.createElement("canvas"),
+ b = a.style;
+ b.position = "absolute";
+ b.setProperty("-webkit-touch-callout", "none", null);
+ $c.setProperties(b, "user-select", "none", 63);
+ return a
+ };
+ var $c = function() {};
+ s["openfl.bitfive.StyleTools"] = $c;
+ $c.__name__ = ["openfl", "bitfive",
+ "StyleTools"
+ ];
+ $c.setProperties = function(a, b, c, d) {
+ null == d && (d = 31);
+ d & 1 && a.setProperty("" + b, c, null);
+ d & 2 && a.setProperty("-webkit-" + b, c, null);
+ d & 4 && a.setProperty("-moz-" + b, c, null);
+ d & 8 && a.setProperty("-ms-" + b, c, null);
+ d & 16 && a.setProperty("-o-" + b, c, null);
+ d & 32 && a.setProperty("-khtml-" + b, c, null)
+ };
+ var Ba = function(a, b, c, d) {
+ a = Ba.image;
+ ia.call(this, a.width, a.height, !0, 0);
+ this.context.drawImage(a, 0, 0)
+ };
+ s.PreloaderLogoBMD = Ba;
+ Ba.__name__ = ["PreloaderLogoBMD"];
+ Ba.preload = function() {
+ var a = document.createElement("img");
+ C.loadEmbed(Ba.image = a);
+ a.src = "data:image/png;base64,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"
+ };
+ Ba.__super__ = ia;
+ Ba.prototype = R(ia.prototype, {
+ __class__: Ba
+ });
+ var G = function() {};
+ s["haxe.Log"] = G;
+ G.__name__ = ["haxe", "Log"];
+ G.trace = function(a, b) {
+ S.__trace(a, b)
+ };
+ var S = function() {};
+ s["js.Boot"] = S;
+ S.__name__ = ["js", "Boot"];
+ S.__unhtml = function(a) {
+ return a.split("&").join("&").split("<").join("<").split(">").join(">")
+ };
+ S.__trace = function(a, b) {
+ var c = null != b ? b.fileName + ":" + b.lineNumber + ": " : "",
+ c = c + S.__string_rec(a, "");
+ if (null != b && null != b.customParams)
+ for (var d = 0, e = b.customParams; d < e.length;) {
+ var p =
+ e[d];
+ ++d;
+ c += "," + S.__string_rec(p, "")
+ }
+ var f;
+ "undefined" != typeof document ? (f = document.getElementById("haxe:trace"), d = null != f) : d = !1;
+ d ? f.innerHTML += S.__unhtml(c) + "
" : "undefined" != typeof console && null != console.log && console.log(c)
+ };
+ S.getClass = function(a) {
+ if (a instanceof Array && null == a.__enum__) return Array;
+ var b = a.__class__;
+ if (null != b) return b;
+ a = S.__nativeClassName(a);
+ return null != a ? S.__resolveNativeClass(a) : null
+ };
+ S.__string_rec = function(a, b) {
+ if (null == a) return "null";
+ if (5 <= b.length) return "<...>";
+ var c =
+ typeof a;
+ "function" == c && (a.__name__ || a.__ename__) && (c = "object");
+ switch (c) {
+ case "function":
+ return "";
+ case "object":
+ if (a instanceof Array) {
+ if (a.__enum__) {
+ if (2 == a.length) return a[0];
+ c = a[0] + "(";
+ b += "\t";
+ for (var d = 2, e = a.length; d < e;) var p = d++,
+ c = 2 != p ? c + ("," + S.__string_rec(a[p], b)) : c + S.__string_rec(a[p], b);
+ return c + ")"
+ }
+ c = a.length;
+ d = "[";
+ b += "\t";
+ for (e = 0; e < c;) p = e++, d += (0 < p ? "," : "") + S.__string_rec(a[p], b);
+ return d + "]"
+ }
+ try {
+ d = a.toString
+ } catch (f) {
+ return "???"
+ }
+ if (null != d && d != Object.toString && "function" == typeof d &&
+ (c = a.toString(), "[object Object]" != c)) return c;
+ c = null;
+ d = "{\n";
+ b += "\t";
+ e = null != a.hasOwnProperty;
+ for (c in a) e && !a.hasOwnProperty(c) || "prototype" == c || "__class__" == c || "__super__" == c || "__interfaces__" == c || "__properties__" == c || (2 != d.length && (d += ", \n"), d += b + c + " : " + S.__string_rec(a[c], b));
+ b = b.substring(1);
+ return d + ("\n" + b + "}");
+ case "string":
+ return a;
+ default:
+ return String(a)
+ }
+ };
+ S.__interfLoop = function(a, b) {
+ if (null == a) return !1;
+ if (a == b) return !0;
+ var c = a.__interfaces__;
+ if (null != c)
+ for (var d = 0, e = c.length; d < e;) {
+ var p =
+ d++,
+ p = c[p];
+ if (p == b || S.__interfLoop(p, b)) return !0
+ }
+ return S.__interfLoop(a.__super__, b)
+ };
+ S.__instanceof = function(a, b) {
+ if (null == b) return !1;
+ switch (b) {
+ case Array:
+ return a instanceof Array ? null == a.__enum__ : !1;
+ case nd:
+ return "boolean" == typeof a;
+ case Bd:
+ return !0;
+ case od:
+ return "number" == typeof a;
+ case Cd:
+ return "number" == typeof a ? (a | 0) === a : !1;
+ case String:
+ return "string" == typeof a;
+ default:
+ if (null != a)
+ if ("function" == typeof b) {
+ if (a instanceof b || S.__interfLoop(S.getClass(a), b)) return !0
+ } else {
+ if ("object" == typeof b &&
+ S.__isNativeObj(b) && a instanceof b) return !0
+ }
+ else return !1;
+ return b == pd && null != a.__name__ || b == qd && null != a.__ename__ ? !0 : a.__enum__ == b
+ }
+ };
+ S.__cast = function(a, b) {
+ if (S.__instanceof(a, b)) return a;
+ throw new D("Cannot cast " + K.string(a) + " to " + K.string(b));
+ };
+ S.__nativeClassName = function(a) {
+ a = S.__toStr.call(a).slice(8, -1);
+ return "Object" == a || "Function" == a || "Math" == a || "JSON" == a ? null : a
+ };
+ S.__isNativeObj = function(a) {
+ return null != S.__nativeClassName(a)
+ };
+ S.__resolveNativeClass = function(a) {
+ return Yc[a]
+ };
+ var Ac = function() {};
+ s["openfl.display.ILoader"] = Ac;
+ Ac.__name__ = ["openfl", "display", "ILoader"];
+ Ac.prototype = {
+ __class__: Ac
+ };
+ var ac = function() {
+ ua.call(this);
+ this.contentLoaderInfo = kb.create(this)
+ };
+ s["openfl.display.Loader"] = ac;
+ ac.__name__ = ["openfl", "display", "Loader"];
+ ac.__interfaces__ = [Ac];
+ ac.__super__ = Aa;
+ ac.prototype = R(Aa.prototype, {
+ load: function(a, b) {
+ var c = a.url.split(".");
+ 0 < c.length && c[c.length - 1].toLowerCase();
+ var c = a.url,
+ d = c.lastIndexOf(".");
+ if (0 > d) throw new D('Extension must be specified, got "' + c + '"');
+ var e = !0,
+ d = c.substring(d + 1);
+ switch (d) {
+ case "gif":
+ d = "image/gif";
+ break;
+ case "jpeg":
+ case "jpg":
+ e = !1;
+ d = "image/jpeg";
+ break;
+ case "png":
+ d = "image/png";
+ break;
+ case "swf":
+ d = "application/x-shockwave-flash";
+ break;
+ default:
+ throw new D('Unrecognized extension "' + d + '" in "' + c + '"');
+ }
+ this.contentLoaderInfo.url = c;
+ this.contentLoaderInfo.contentType = d;
+ this.mImage = new ia(0, 0, e);
+ try {
+ this.contentLoaderInfo.addEventListener("complete", ea(this, this.handleLoad), !1), this.mImage.nmeLoadFromFile(a.url, this.contentLoaderInfo), this.content =
+ new Sa(this.mImage), this.contentLoaderInfo.content = this.content, this.addChild(this.content)
+ } catch (p) {
+ p instanceof D && (p = p.val);
+ G.trace("Error " + K.string(p), {
+ fileName: "Loader.hx",
+ lineNumber: 62,
+ className: "openfl.display.Loader",
+ methodName: "load"
+ });
+ c = new ec("ioError");
+ c.set_currentTarget(this);
+ this.contentLoaderInfo.dispatchEvent(c);
+ return
+ }
+ null == this.mShape && (this.mShape = new gb, this.addChild(this.mShape))
+ },
+ handleLoad: function(a) {
+ a.set_currentTarget(this);
+ this.contentLoaderInfo.removeEventListener("complete",
+ ea(this, this.handleLoad))
+ },
+ __class__: ac
+ });
+ var Ra = function() {};
+ s["haxe.Resource"] = Ra;
+ Ra.__name__ = ["haxe", "Resource"];
+ Ra.listNames = function() {
+ for (var a = [], b = 0, c = Ra.content; b < c.length;) {
+ var d = c[b];
+ ++b;
+ a.push(d.name)
+ }
+ return a
+ };
+ Ra.getString = function(a) {
+ for (var b = 0, c = Ra.content; b < c.length;) {
+ var d = c[b];
+ ++b;
+ if (d.name == a) return null != d.str ? d.str : Ib.decode(d.data).toString()
+ }
+ return null
+ };
+ var ma = function() {};
+ s.StringTools = ma;
+ ma.__name__ = ["StringTools"];
+ ma.htmlEscape = function(a, b) {
+ a = a.split("&").join("&").split("<").join("<").split(">").join(">");
+ return b ? a.split('"').join(""").split("'").join("'") : a
+ };
+ ma.startsWith = function(a, b) {
+ return a.length >= b.length ? J.substr(a, 0, b.length) == b : !1
+ };
+ ma.isSpace = function(a, b) {
+ var c = J.cca(a, b);
+ return 8 < c && 14 > c ? !0 : 32 == c
+ };
+ ma.ltrim = function(a) {
+ for (var b = a.length, c = 0; c < b && ma.isSpace(a, c);) ++c;
+ return 0 < c ? J.substr(a, c, b - c) : a
+ };
+ ma.rtrim = function(a) {
+ for (var b = a.length, c = 0; c < b && ma.isSpace(a, b - c - 1);) ++c;
+ return 0 < c ? J.substr(a, 0, b - c) : a
+ };
+ ma.trim = function(a) {
+ return ma.ltrim(ma.rtrim(a))
+ };
+ ma.replace = function(a, b,
+ c) {
+ return a.split(b).join(c)
+ };
+ var U = function() {};
+ s.Type = U;
+ U.__name__ = ["Type"];
+ U.getClassName = function(a) {
+ a = a.__name__;
+ return null == a ? null : a.join(".")
+ };
+ U.getEnumName = function(a) {
+ return a.__ename__.join(".")
+ };
+ U.resolveClass = function(a) {
+ a = s[a];
+ return null != a && a.__name__ ? a : null
+ };
+ U.resolveEnum = function(a) {
+ a = s[a];
+ return null != a && a.__ename__ ? a : null
+ };
+ U.createInstance = function(a, b) {
+ switch (b.length) {
+ case 0:
+ return new a;
+ case 1:
+ return new a(b[0]);
+ case 2:
+ return new a(b[0], b[1]);
+ case 3:
+ return new a(b[0], b[1], b[2]);
+ case 4:
+ return new a(b[0], b[1], b[2], b[3]);
+ case 5:
+ return new a(b[0], b[1], b[2], b[3], b[4]);
+ case 6:
+ return new a(b[0], b[1], b[2], b[3], b[4], b[5]);
+ case 7:
+ return new a(b[0], b[1], b[2], b[3], b[4], b[5], b[6]);
+ case 8:
+ return new a(b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7]);
+ case 9:
+ return new a(b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8]);
+ case 10:
+ return new a(b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8], b[9]);
+ case 11:
+ return new a(b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8], b[9], b[10]);
+ case 12:
+ return new a(b[0], b[1],
+ b[2], b[3], b[4], b[5], b[6], b[7], b[8], b[9], b[10], b[11]);
+ case 13:
+ return new a(b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8], b[9], b[10], b[11], b[12]);
+ case 14:
+ return new a(b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8], b[9], b[10], b[11], b[12], b[13]);
+ default:
+ throw new D("Too many arguments");
+ }
+ };
+ U.createEmptyInstance = function(a) {
+ function b() {}
+ b.prototype = a.prototype;
+ return new b
+ };
+ U.createEnum = function(a, b, c) {
+ var d = Z.field(a, b);
+ if (null == d) throw new D("No such constructor " + b);
+ if (Z.isFunction(d)) {
+ if (null == c) throw new D("Constructor " +
+ b + " need parameters");
+ return d.apply(a, c)
+ }
+ if (null != c && 0 != c.length) throw new D("Constructor " + b + " does not need parameters");
+ return d
+ };
+ U["typeof"] = function(a) {
+ switch (typeof a) {
+ case "boolean":
+ return aa.TBool;
+ case "function":
+ return a.__name__ || a.__ename__ ? aa.TObject : aa.TFunction;
+ case "number":
+ return Math.ceil(a) == a % 2147483648 ? aa.TInt : aa.TFloat;
+ case "object":
+ if (null == a) return aa.TNull;
+ var b = a.__enum__;
+ if (null != b) return aa.TEnum(b);
+ a = S.getClass(a);
+ return null != a ? aa.TClass(a) : aa.TObject;
+ case "string":
+ return aa.TClass(String);
+ case "undefined":
+ return aa.TNull;
+ default:
+ return aa.TUnknown
+ }
+ };
+ var ga = function() {};
+ s["platforms.PlatformHTML5"] = ga;
+ ga.__name__ = ["platforms", "PlatformHTML5"];
+ ga.hasInside = function(a) {
+ return 0 <= window.location.href.indexOf(a)
+ };
+ ga.invalidRect = function() {
+ return ga.resizeW == ga.getWidth() ? ga.resizeH != ga.getHeight() : !0
+ };
+ ga.getWidth = function() {
+ return window.innerWidth
+ };
+ ga.getHeight = function() {
+ return window.innerHeight
+ };
+ ga.resize = function() {
+ var a = window.innerWidth,
+ b = window.innerHeight;
+ G.trace("new size: ", {
+ fileName: "PlatformHTML5.hx",
+ lineNumber: 64,
+ className: "platforms.PlatformHTML5",
+ methodName: "resize",
+ customParams: [a, b]
+ });
+ ga.resizeW = a;
+ ga.resizeH = b;
+ var c = a,
+ d = b,
+ e = c / d;
+ ga.offsetX = ga.offsetY = 0;
+ var p = 1,
+ p = !0;
+ if (d > c && l.PORTRAIT_HEIGHT_MIN < l.PORTRAIT_HEIGHT_MAX || l.LANDSCAPE_WIDTH_MIN == l.LANDSCAPE_WIDTH_MAX) p = !1;
+ if (p) {
+ var p = 1 * l.LANDSCAPE_WIDTH_MAX / l.LANDSCAPE_HEIGHT,
+ f = 1 * l.LANDSCAPE_WIDTH_MIN / l.LANDSCAPE_HEIGHT;
+ e > p ? (c = d * p, ga.offsetX = (a - c) / 2, l.WIDTH = l.LANDSCAPE_WIDTH_MAX) : e < f ? (d = c / f, ga.offsetY = (b - d) / 2, l.WIDTH =
+ l.LANDSCAPE_WIDTH_MIN) : (ga.offsetY = ga.offsetX = 0, l.WIDTH = Math.round(e * l.LANDSCAPE_HEIGHT));
+ p = d / l.LANDSCAPE_HEIGHT;
+ l.HEIGHT = l.LANDSCAPE_HEIGHT
+ } else p = 1 * l.PORTRAIT_WIDTH / l.PORTRAIT_HEIGHT_MIN, f = 1 * l.PORTRAIT_WIDTH / l.PORTRAIT_HEIGHT_MAX, e > p ? (c = d * p, ga.offsetX = (a - c) / 2, l.HEIGHT = l.PORTRAIT_HEIGHT_MIN) : e < f ? (d = c / f, ga.offsetY = (b - d) / 2, l.HEIGHT = l.PORTRAIT_HEIGHT_MAX) : (ga.offsetY = ga.offsetX = 0, l.HEIGHT = Math.round(l.PORTRAIT_WIDTH / e)), p = c / l.PORTRAIT_WIDTH, l.WIDTH = l.PORTRAIT_WIDTH;
+ l.instance.set_scaleX(p);
+ l.instance.set_scaleY(p);
+ a = l.instance.rotateDeviceSprite;
+ null != a && a.set_visible(!1);
+ a = $("#oz_game");
+ b = 0;
+ for (e = a.length; b < e;) p = b++, p = a[p], p.style.width = c + "px", p.style.height = d + "px", p.style.left = ga.offsetX + "px", p.style.top = ga.offsetY + "px", p.style.position = "absolute";
+ window.scrollTo(0, 1)
+ };
+ var f = function(a, b) {
+ this.dispatchLock = !1;
+ this.animation = this.eventListeners = null;
+ this.showRight = -1;
+ this.colorTransform = null;
+ this.reset();
+ this.PoolId = -1;
+ null == b && (b = W.EMPTY);
+ this.mc = a;
+ this.type = null != a ? W.BITMAP : b;
+ b == W.POLYGON ? this.flSprite =
+ new Aa : b == W.TEXT && (this.textAlign = V.LEFT, this.text = "")
+ };
+ s["oz.OzSprite"] = f;
+ f.__name__ = ["oz", "OzSprite"];
+ f.StaticInit = function() {
+ f.Sprites = [];
+ for (var a = f.FreeId = 0; 1E3 > a;) {
+ var b = a++;
+ f.Sprites[b] = new f;
+ f.Sprites[b].PoolId = b
+ }
+ f.toRemove = [];
+ f.toRemoveId = 0;
+ f.TilesheetId = -1;
+ f.DrawingAlpha = !1;
+ f.DrawingSmooth = l.DEFAULT_SMOOTH;
+ f.FloatArrays = new va;
+ f.ShowRights = new va;
+ f.DrawArray = [];
+ f.DrawArrayLength = 0;
+ f.Tilesheets = [];
+ f.Bitmaps = [];
+ f.BitmapsIds = [];
+ f.BitmapsNames = [];
+ f.TilesheetFrames = [];
+ f.TilesheetBitmapDatas = [];
+ f.DrawMatrix = new na;
+ f.MainMatrix = new na;
+ f.TileMatrix = new na;
+ f.DrawPoint = new xa;
+ f.DrawRect = new pa;
+ f.AlphaColorTransform = new Vb
+ };
+ f.appendTilesheetFrame = function(a, b, c, d, e, p, r, g, k) {
+ f.DrawRect.x = d;
+ f.DrawRect.y = e;
+ f.DrawRect.width = p;
+ f.DrawRect.height = r;
+ f.DrawPoint.x = f.DrawPoint.y = 0;
+ c = f.TilesheetFrames[a.tilesheetId].length;
+ b = new M(b, [c], a.tilesheetId);
+ f.TilesheetFrames[a.tilesheetId].push([f.DrawRect.x, f.DrawRect.y, f.DrawRect.width, f.DrawRect.height, g, k]);
+ f.Tilesheets[a.tilesheetId].addTileRect(new pa(f.DrawRect.x,
+ f.DrawRect.y, f.DrawRect.width, f.DrawRect.height), new xa(g, k));
+ f.Bitmaps.push(b);
+ f.BitmapsIds.push(f.BitmapsIds.length);
+ f.BitmapsNames.push(b.name);
+ return c
+ };
+ f.ExpandTiles = function(a) {
+ x.SortIdsByName(f.BitmapsIds, f.BitmapsNames);
+ var b = new X,
+ c = null;
+ if (null != a)
+ for (a = a.elementsNamed("objects"); a.hasNext();) {
+ c = a.next();
+ break
+ }
+ for (c = c.elements(); c.hasNext();)
+ for (a = c.next().elementsNamed("graphics"); a.hasNext();) {
+ var d = a.next();
+ if ("tile" == d.get("type") && "1" == d.get("spriteTile")) {
+ var e = d.get("src");
+ if (null !=
+ O[e] ? !b.existsReserved(e) : !b.h.hasOwnProperty(e))
+ if (e = f.GetMCByString(e), null == e) G.trace("ERROR: Cannot expand tile thats not found in bitmaps", {
+ fileName: "OzSprite.hx",
+ lineNumber: 275,
+ className: "oz.OzSprite",
+ methodName: "ExpandTiles"
+ });
+ else {
+ var p = 40;
+ if (null == d.get("size")) p = K.parseInt("240");
+ else throw new D("Size shouldn't be defined here, try project.xml");
+ f.SliceExpandTile(e, p);
+ x.SortIdsByName(f.BitmapsIds, f.BitmapsNames)
+ }
+ }
+ }
+ };
+ f.SliceExpandTile = function(a, b, c) {
+ null == c && (c = 1);
+ var d = f.TilesheetFrames[a.tilesheetId][a.frames[c -
+ 1]];
+ c = f.GetTilesheetBitmapData(a.tilesheetId, a.frames[c - 1]);
+ for (var e = Math.ceil((c.component.height - 1) / b), p = Math.ceil((c.component.width - 1) / b), r = c.component.height % b, g = 0; g < e;)
+ for (var k = g++, I = 0, h = p; I < h;) {
+ var w = I++;
+ 0 != r ? 0 == k ? (f.DrawRect.x = w * b, f.DrawRect.y = 0, f.DrawRect.width = Math.min(b, c.component.width - f.DrawRect.x), f.DrawRect.height = Math.min(b, r), f.DrawPoint.x = 0, f.DrawPoint.y = b - r) : (f.DrawRect.x = w * b, f.DrawRect.y = (k - 1) * b + r, f.DrawRect.width = Math.min(b, c.component.width - f.DrawRect.x), f.DrawRect.height =
+ Math.min(b, c.component.height - f.DrawRect.y), f.DrawPoint.x = 0, f.DrawPoint.y = 0) : (f.DrawRect.x = w * b, f.DrawRect.y = k * b, f.DrawRect.width = Math.min(b, c.component.width - f.DrawRect.x), f.DrawRect.height = Math.min(b, c.component.height - f.DrawRect.y), f.DrawPoint.x = 0, f.DrawPoint.y = 0);
+ a.frames.push(f.TilesheetFrames[a.tilesheetId].length);
+ f.TilesheetFrames[a.tilesheetId].push([d[0] + f.DrawRect.x, d[1] + f.DrawRect.y, f.DrawRect.width, f.DrawRect.height, -f.DrawPoint.x, -f.DrawPoint.y]);
+ f.Tilesheets[a.tilesheetId].addTileRect(new pa(d[0] +
+ f.DrawRect.x, d[1] + f.DrawRect.y, f.DrawRect.width, f.DrawRect.height), new xa(-f.DrawPoint.x, -f.DrawPoint.y))
+ }
+ };
+ f.RegisterTilesheet = function(a, b, c, d, e, p) {
+ null == p && (p = !1);
+ null == e && (e = !1);
+ var r = d;
+ G.trace("calling get bitmapdata with", {
+ fileName: "OzSprite.hx",
+ lineNumber: 489,
+ className: "oz.OzSprite",
+ methodName: "RegisterTilesheet",
+ customParams: ["assets/" + a]
+ });
+ null == d && (r = la.getBitmapData("assets/" + a));
+ G.trace("end of call of getbitmapdata", {
+ fileName: "OzSprite.hx",
+ lineNumber: 495,
+ className: "oz.OzSprite",
+ methodName: "RegisterTilesheet"
+ });
+ a = new Bc(r);
+ G.trace("end create tilesheet", {
+ fileName: "OzSprite.hx",
+ lineNumber: 497,
+ className: "oz.OzSprite",
+ methodName: "RegisterTilesheet"
+ });
+ var g = [];
+ d = 0;
+ for (var k = c.length; d < k;) {
+ var I = d++;
+ g[I] = !1
+ }
+ d = f.Tilesheets.length;
+ G.trace("got through", {
+ fileName: "OzSprite.hx",
+ lineNumber: 503,
+ className: "oz.OzSprite",
+ methodName: "RegisterTilesheet",
+ customParams: [b.length, " clips"]
+ });
+ k = 0;
+ for (I = b.length; k < I;) {
+ var h = k++;
+ b[h].tilesheetId = d;
+ f.Bitmaps.push(b[h]);
+ f.BitmapsIds.push(f.BitmapsIds.length);
+ f.BitmapsNames.push(b[h].name);
+ var w = 0 == b[h].name.indexOf("tile");
+ if (!p && !w && 0 != b[h].name.indexOf("bmp") && 0 != b[h].name.indexOf("sys") && 0 != b[h].name.indexOf("_f") && 0 != b[h].name.indexOf("oza"))
+ for (var w = 0, l = b[h].frames.length; w < l;) {
+ var m = w++,
+ m = b[h].frames[m];
+ g[m] || (g[m] = !0, c[m][0] -= 1, c[m][1] -= 1, c[m][2] += 2, c[m][3] += 2, c[m][4] += 1, c[m][5] += 1)
+ }
+ }
+ b = 0;
+ for (p = c.length; b < p;) g = b++, a.addTileRect(new pa(c[g][0], c[g][1], c[g][2], c[g][3]), new xa(c[g][4], c[g][5]));
+ f.Tilesheets.push(a);
+ f.TilesheetFrames.push(c);
+ f.TilesheetBitmapDatas.push([]);
+ f.TilesheetAssetBMDs.push(r);
+ if (e)
+ for (e = 0, c = c.length; e < c;) r = e++, f.LoadSingleBitmapData(f.TilesheetFrames.length - 1, r);
+ return d
+ };
+ f.LoadSingleBitmapData = function(a, b) {
+ var c = f.TilesheetFrames[a];
+ if (1 <= c[b][2] && 1 <= c[b][3]) {
+ var d = f.TilesheetAssetBMDs[a];
+ f.DrawPoint.x = f.DrawPoint.y = 0;
+ f.DrawRect.x = c[b][0];
+ f.DrawRect.y = c[b][1];
+ f.DrawRect.width = c[b][2];
+ f.DrawRect.height = c[b][3];
+ if (1 > f.DrawRect.height || 1 > f.DrawRect.width) return !0;
+ c = null;
+ c = new ia(Math.round(f.DrawRect.width), Math.round(f.DrawRect.height), !0, -1);
+ c.copyPixels(d, f.DrawRect,
+ f.DrawPoint, null, null, !1);
+ f.TilesheetBitmapDatas[a][b] = c;
+ return !0
+ }
+ return !1
+ };
+ f.New = function(a, b, c, d) {
+ null == d && (d = !0);
+ null == c && (c = !0);
+ var e = f.Sprites[f.FreeId++];
+ e.reset();
+ e.stateBound = c;
+ null == b && (b = W.EMPTY);
+ null != a ? (e.type = W.BITMAP, d && null != t.ext && 0 < t.ext.length && (c = x.FindStringId(f.BitmapsNames, a.name + t.ext), 0 <= c && (a = f.Bitmaps[f.BitmapsIds[c]])), e.mc = a) : e.type = b;
+ b == W.POLYGON ? (e.flSprite = new Aa, e.flSprite.set_visible(!1)) : b == W.TEXT && (e.textAlign = V.LEFT, e.text = "");
+ return e
+ };
+ f.GetMCByString = function(a) {
+ a =
+ x.FindStringId(f.BitmapsNames, a);
+ return 0 > a ? null : f.Bitmaps[f.BitmapsIds[a]]
+ };
+ f.GetTilesheetBitmapData = function(a, b) {
+ null == f.TilesheetBitmapDatas[a][b] && f.LoadSingleBitmapData(a, b);
+ return f.TilesheetBitmapDatas[a][b]
+ };
+ f.RemoveRequested = function() {
+ for (var a = 0, b = f.toRemoveId; a < b;) {
+ var c = a++,
+ c = f.toRemove[c];
+ null != c.parent && c.parent.removeChild(c);
+ f.Dispose(c)
+ }
+ f.toRemoveId = 0
+ };
+ f.Dispose = function(a) {
+ n.TargetKill(a);
+ null != a.parent && a.parent.removeChild(a);
+ null != a.flSprite && null != a.flSprite.parent && a.flSprite.parent.removeChild(a.flSprite);
+ a.flSprite = null;
+ a.buttonFunc = null;
+ a.funcEnd = null;
+ a.prev = a.next = a;
+ if (0 <= a.PoolId) {
+ var b = f.FreeId - 1,
+ c = a.PoolId,
+ d = f.Sprites[b];
+ f.Sprites[b] = f.Sprites[c];
+ f.Sprites[c] = d;
+ a.PoolId = b;
+ f.Sprites[c].PoolId = c;
+ f.FreeId--
+ }
+ };
+ f.TextToSprites = function(a, b, c, d, e, p, r) {
+ r = !1;
+ var g = a.numChildren();
+ if (a.type != W.EMPTY || g != b.length) r = !0;
+ else
+ for (var k = a.child, I = 0; I < g;) {
+ I++;
+ if (k.mc != c) {
+ r = !0;
+ break
+ }
+ k = k.next
+ }
+ if (r)
+ for (a.clear(), a.mouseEnabled = !1, r = (b.length - 1) * e, g = 0, k = b.length; g < k;) {
+ var h = g++,
+ I = f.New(c);
+ I.set_x(h * e);
+ I.set_y(0);
+ p == V.RIGHT ? (h = I, h.set_x(h.get_x() - r)) : p == V.CENTER && (h = I, h.set_x(h.get_x() - r / 2));
+ a.addChild(I);
+ I.mouseEnabled = !1;
+ I._updateOldValues()
+ }
+ a = a.child;
+ c = 0;
+ for (e = b.length; c < e;) p = c++, p = b.charAt(p), " " == p ? (a.gotoAndStop(1), a.set_visible(!1)) : (p = d.indexOf(p) + 1, a.gotoAndStop(p), a.set_visible(!0)), a = a.next
+ };
+ f.GetSpriteAtPoint = function(a, b, c, d, e, p, r, g) {
+ null == g && (g = 0);
+ null == r && (r = 1);
+ null == p && (p = 1);
+ null == e && (e = 0);
+ null == d && (d = 0);
+ if (1E-4 > a.get_alpha() || !1 == a.get_visible()) return null;
+ if (null != a.child)
+ for (var k = a.child.prev,
+ I = k;;) {
+ var h = f.GetSpriteAtPoint(k, b, c, d + a.get_x() * p, e + a.get_y() * r, p * a.get_scaleX(), r * a.get_scaleY(), g * a.get_rotation());
+ if (null != h) return h;
+ k = k.prev;
+ if (k == I) break
+ }
+ return a.type == W.BITMAP && a.mouseEnabled && (g = f.TilesheetFrames[a.mc.tilesheetId][a.mc.frames[a.get_currentFrame() - 1]], k = d + a.get_x() - g[4] * a.get_scaleX() * p, d = d + a.get_x() + (g[2] - g[4]) * a.get_scaleX() * p, k > d && (p = k, k = d, d = p), k <= b && b <= d && (b = e + a.get_y() - g[5] * a.get_scaleY() * r, e = e + a.get_y() + (g[3] - g[5]) * a.get_scaleY() * r, b > e && (r = b, b = e, e = r), b <= c && c <= e)) ?
+ a : null
+ };
+ f.BGInit = function(a, b) {
+ a.clear();
+ a.set_x(-(l.WIDTH_MAX - l.WIDTH_MIN) / 2);
+ a.type = W.BACKGROUND;
+ a.arg1 = b;
+ f.UpdateBG(a, 0, 0, 0, 1)
+ };
+ f.UpdateBG = function(a, b, c, d, e) {
+ null != a && (a.set_x(b), a.set_y(c), f.BGMinY = d, f.BGMaxY = e)
+ };
+ f.RenderBGImage = function(a, b, c, d, e, p, r, g, k) {
+ null == k && (k = !1);
+ null == g && (g = !0);
+ null == r && (r = -1);
+ null == p && (p = -1);
+ null == e && (e = 1);
+ null == d && (d = 1);
+ f.TilesheetId != a.tilesheetId && (f.Flush(), f.TilesheetId = a.tilesheetId);
+ var I = f.TilesheetFrames[a.tilesheetId][a.frames[0]];
+ 0 > p && (p = Math.round(I[2] *
+ d));
+ 0 > r && (r = Math.round(I[3] * d));
+ b %= p;
+ 0 < b && (b -= p);
+ var h = c;
+ k && (h = c % r, 0 < h && (h -= r));
+ c = Math.round(b);
+ var w = Math.round(h);
+ null == f.TilesheetBitmapDatas[a.tilesheetId][a.frames[0]] && f.LoadSingleBitmapData(a.tilesheetId, a.frames[0]);
+ for (var m = 0, s = 0;;) {
+ for (var n = 0; ++m, f.BGbmdMatrix.tx = c - I[4] + n * p, f.BGbmdMatrix.ty = w - I[5] + s * r, f.BGbmdMatrix.a = d, f.BGbmdMatrix.b = 0, f.BGbmdMatrix.c = 0, f.BGbmdMatrix.d = d, f.DrawingAlpha ? (f.BGbmdColorTransform.alphaMultiplier = e, l.instance.ScreenBMD.draw(f.TilesheetBitmapDatas[a.tilesheetId][a.frames[0]],
+ f.BGbmdMatrix, f.BGbmdColorTransform)) : l.instance.ScreenBMD.draw(f.TilesheetBitmapDatas[a.tilesheetId][a.frames[0]], f.BGbmdMatrix), ++n, g && n * p + b < l.WIDTH;);
+ ++s;
+ if (!(k && s * r + h < l.HEIGHT)) break
+ }
+ };
+ f.Flush = function() {
+ if (0 < f.DrawArrayLength) {
+ if (f.DrawingAlpha)
+ for (var a = null == f.CT ? 8 : 11, b = 0, c = f.DrawArrayLength / a | 0; b < c;) {
+ var d = b++ * a,
+ e = null;
+ if (!f.MinimumBMD && (e = f.GetTilesheetBitmapData(f.TilesheetId, f.DrawArray[d + 2] | 0), null == e)) continue;
+ f.DrawMatrix.tx = f.DrawArray[d];
+ f.DrawMatrix.ty = f.DrawArray[d + 1];
+ f.DrawMatrix.a =
+ f.DrawArray[d + 3];
+ f.DrawMatrix.b = f.DrawArray[d + 4];
+ f.DrawMatrix.c = f.DrawArray[d + 5];
+ f.DrawMatrix.d = f.DrawArray[d + 6];
+ f.AlphaColorTransform.alphaMultiplier = f.DrawArray[d + 7];
+ f.MinimumBMD ? (d = f.TilesheetFrames[f.TilesheetId][f.DrawArray[d + 2] | 0], f.DrawRect.x = d[0], f.DrawRect.y = d[1], f.DrawRect.width = d[2], f.DrawRect.height = d[3], f.DrawPart(l.instance.ScreenBMD, f.TilesheetAssetBMDs[f.TilesheetId], f.DrawMatrix, f.AlphaColorTransform, null, f.DrawRect, f.DrawingSmooth)) : l.instance.ScreenBMD.draw(e, f.DrawMatrix, f.AlphaColorTransform,
+ null, null, f.DrawingSmooth)
+ } else
+ for (a = null == f.CT ? 7 : 10, b = 0, c = f.DrawArrayLength / a | 0; b < c;)
+ if (d = b++ * a, f.DrawMatrix.tx = f.DrawArray[d], f.DrawMatrix.ty = f.DrawArray[d + 1], f.DrawMatrix.a = f.DrawArray[d + 3], f.DrawMatrix.b = f.DrawArray[d + 4], f.DrawMatrix.c = f.DrawArray[d + 5], f.DrawMatrix.d = f.DrawArray[d + 6], f.DrawingSmooth ? e = !1 : (e = f.DrawMatrix.a, e = 0.9999994 <= e ? 1.0000006 >= e : !1), e ? (e = f.DrawMatrix.d, e = 0.9999994 <= e ? 1.0000006 >= e : !1) : e = !1, e ? (e = f.DrawMatrix.c, e = -6E-7 <= e ? 6E-7 >= e : !1) : e = !1, e ? (e = f.DrawMatrix.b, e = -6E-7 <= e ? 6E-7 >=
+ e : !1) : e = !1, e && null == f.CT) f.CopyMcToBmd(l.instance.ScreenBMD, f.TilesheetId, f.DrawArray[d + 2] | 0, f.DrawMatrix.tx, f.DrawMatrix.ty);
+ else {
+ e = null;
+ if (!f.MinimumBMD && (e = f.GetTilesheetBitmapData(f.TilesheetId, f.DrawArray[d + 2] | 0), null == e)) continue;
+ f.MinimumBMD ? (d = f.TilesheetFrames[f.TilesheetId][f.DrawArray[d + 2] | 0], f.DrawRect.x = d[0], f.DrawRect.y = d[1], f.DrawRect.width = d[2], f.DrawRect.height = d[3], f.DrawPart(l.instance.ScreenBMD, f.TilesheetAssetBMDs[f.TilesheetId], f.DrawMatrix, f.CT, null, f.DrawRect, f.DrawingSmooth)) :
+ l.instance.ScreenBMD.draw(e, f.DrawMatrix, f.CT, null, null, f.DrawingSmooth)
+ }
+ f.DrawArrayLength = 0
+ }
+ f.ShowFlushInfo = -1
+ };
+ f.CopyMcToBmd = function(a, b, c, d, e, p, r) {
+ null == r && (r = -1);
+ null == p && (p = !0);
+ c = f.TilesheetFrames[b][c];
+ 0 > r ? (f.DrawRect.x = c[0], f.DrawRect.y = c[1], f.DrawRect.width = c[2], f.DrawRect.height = c[3], f.DrawPoint.x = Math.round(d + 1E-4), f.DrawPoint.y = Math.round(e + 1E-4), a.copyPixels(f.TilesheetAssetBMDs[b], f.DrawRect, f.DrawPoint, null, null, p)) : (f.TileMatrix.identity(), f.TileMatrix.translate(-c[0], -c[1]), f.TileMatrix.scale(r /
+ c[2], r / c[3]), f.TileMatrix.translate(Math.round(d + 1E-4), Math.round(e + 1E-4)), f.DrawRect.x = Math.round(d + 1E-4), f.DrawRect.y = Math.round(e + 1E-4), f.DrawRect.width = f.DrawRect.height = r, a.draw(f.TilesheetAssetBMDs[b], f.TileMatrix, null, null, f.DrawRect, p))
+ };
+ f.DrawPart = function(a, b, c, d, e, p, f) {
+ e = a.context;
+ a.syncCanvas();
+ e.save();
+ null != d && (e.globalAlpha *= d.alphaMultiplier);
+ null != f && ia.setSmoothing(e, f);
+ null != c && e.setTransform(c.a, c.b, c.c, c.d, c.tx, c.ty);
+ null != p ? (c = p.width, d = p.height, (1 > d || 1 > c || 0 > p.x || 0 > p.y) && G.trace("ERROR DRAW IMAGE", {
+ fileName: "OzSprite.hx",
+ lineNumber: 2876,
+ className: "oz.OzSprite",
+ methodName: "DrawPart",
+ customParams: [c, d, p.x, p.y]
+ }), e.drawImage(b.handle(), p.x, p.y, c, d, 0, 0, c, d)) : e.drawImage(b.handle(), 0, 0);
+ e.restore();
+ a.__sync |= 5
+ };
+ f.prototype = {
+ tweenScale: function(a) {
+ 0.5 <= a && (a = 1 - a);
+ a *= 2;
+ this.set_scaleX(this.startScaleX * (1 - a) + this.endScaleX * a);
+ this.set_scaleY(this.startScaleY * (1 - a) + this.endScaleY * a)
+ },
+ makeLink: function(a, b) {
+ null == b && (b = !0);
+ this.buttonMode = !0;
+ b && (this.flags |= 512);
+ if (t.is4399) {
+ if (a == t.solution || a == t.twitter ||
+ a == t.facebook || a == t.googleplay || a == t.appstore || a == t.amazon || "crossButton" == this.name || "btnMore" == this.name) {
+ this.set_visible(!1);
+ return
+ }
+ if ("btnMoreChinese" == this.name) G.trace("allowing more", {
+ fileName: "OzSprite.hx",
+ lineNumber: 899,
+ className: "oz.OzSprite",
+ methodName: "makeLink"
+ });
+ else {
+ G.trace("not allowing this link", {
+ fileName: "OzSprite.hx",
+ lineNumber: 902,
+ className: "oz.OzSprite",
+ methodName: "makeLink"
+ });
+ return
+ }
+ }
+ this.flags |= 1;
+ this.buttonFunc = a;
+ this.addEventListener(2, ea(this, this.buttonClick))
+ },
+ makeButton: function(a,
+ b) {
+ null == b && (b = !0);
+ var c = this;
+ this.buttonMode = !0;
+ b && (this.flags |= 512, this.flags |= 1024);
+ this.gotoAndStop(1);
+ a == t.moreGames ? this.makeLink(a, b) : (this.buttonFunc = a, this.addEventListener(3, function(a) {
+ 1 < c.get_totalFrames() && c.gotoAndStop(2)
+ }), this.addEventListener(4, function(a) {
+ c.gotoAndStop(1)
+ }), this.addEventListener(2, function(a) {
+ 2 < c.get_totalFrames() && c.gotoAndStop(3)
+ }), this.addEventListener(1, function(a) {
+ c.buttonFunc(a)
+ }))
+ },
+ voidButtonFunc: function() {
+ this.flags &= 16777213;
+ this.buttonFunc(new Hb(this))
+ },
+ buttonClick: function(a) {
+ 0 < (this.flags & 2) || (0 < (this.flags & 1) ? this.buttonFunc(a) : (this.flags |= 2, a = P.New(), a.duration = 6, this.startScaleX = this.get_scaleX(), this.endScaleX = 0.95 * this.startScaleX, this.startScaleY = this.get_scaleY(), this.endScaleY = 0.95 * this.startScaleY, a.updateFunc = ea(this, this.tweenScale), a.endFunc = ea(this, this.voidButtonFunc), P.Add(a)))
+ },
+ hasEventListener: function(a) {
+ return null != this.eventListeners && this.eventListeners.h.hasOwnProperty(a) ? 0 < this.eventListeners.h[a].length : !1
+ },
+ addEventListener: function(a,
+ b) {
+ null == this.eventListeners && (this.eventListeners = new va);
+ this.eventListeners.h.hasOwnProperty(a) || (this.eventListeners.h[a] = []);
+ 0 > this.eventListeners.h[a].indexOf(b) && this.eventListeners.h[a].push(b)
+ },
+ dispatchEvent: function(a) {
+ var b = a.type;
+ if (null != this.eventListeners && this.eventListeners.h.hasOwnProperty(b)) {
+ b = this.eventListeners.h[b];
+ this.dispatchLock = !0;
+ for (var c = 0; c < b.length;) {
+ if (null != b[c]) b[c](a);
+ ++c
+ }
+ this.dispatchLock = !1;
+ for (a = b.length - 1; 0 <= a;) null == b[a] && b.splice(a, 0), --a
+ }
+ },
+ reset: function() {
+ this._reset();
+ this.eventListeners = this.name = null;
+ this.startX = this.startY = this.flags = this.padFlags = this.arg1 = 0;
+ this.stateBound = !0;
+ this.parent = this.child = this.mc = this.funcEnd = null;
+ this.next = this;
+ this.prev = this;
+ this.type = W.EMPTY;
+ this._oldRotation = this._rotation = this._oldY = this._y = this._oldX = this._x = 0;
+ this._oldAlpha = this._alpha = this._oldScaleY = this._scaleY = this._oldScaleX = this._scaleX = 1;
+ this._oldPlaying = this._playing = this._oldVisible = this._visible = !0;
+ this._oldLineLength = this._lineLength = this._oldCurrentFrame = this._currentFrame =
+ 1;
+ this.buttonMode = !1;
+ this.mouseEnabled = !0;
+ this.colorTransform = this.tileMap = null;
+ this.smooth = l.DEFAULT_SMOOTH;
+ this.toBeRemoved = !1;
+ this.animation = null;
+ this.showRight = -1
+ },
+ get_totalFrames: function() {
+ return null != this.mc ? this.mc.frames.length : 1
+ },
+ gotoAndStop: function(a) {
+ 1 > a || a > this.mc.frames.length ? G.trace("Error! Invalid frame", {
+ fileName: "OzSprite.hx",
+ lineNumber: 1215,
+ className: "oz.OzSprite",
+ methodName: "gotoAndStop",
+ customParams: [a]
+ }) : this.set_currentFrame(a);
+ this.set_playing(!1)
+ },
+ setFluid: function(a, b,
+ c) {
+ null == c && (c = -1E6);
+ null == b && (b = -1E6);
+ null == a && (a = 0);
+ this.padFlags = a; - 99999 >= b && (b = this.get_x()); - 99999 >= c && (c = this.get_y());
+ this.startX = b;
+ this.startY = c
+ },
+ adjustAllLayouts: function() {
+ 0 < this.padFlags && this.adjustLayout();
+ if (null != this.child)
+ for (var a = this.child; a.adjustAllLayouts(), a = a.next, a != this.child;);
+ },
+ adjustLayout: function() {
+ var a = l.HEIGHT - l.HEIGHT_MIN;
+ 0 < (this.padFlags & 1) ? this.set_y(Math.round(this.startY + a + f.EPS)) : 0 < (this.padFlags & 2) ? this.set_y(Math.round(this.startY + a / 2 + f.EPS)) : 0 < (this.padFlags &
+ 4) ? this.set_y(Math.round(this.startY - a + f.EPS)) : 0 < (this.padFlags & 8) ? this.set_y(Math.round(this.startY - a / 2 + f.EPS)) : 0 < (this.padFlags & 16) && this.set_y(Math.round(l.HEIGHT / 2 + f.EPS));
+ a = l.WIDTH - l.WIDTH_MIN;
+ 0 < (this.padFlags & 32) ? this.set_x(Math.round(this.startX + a + f.EPS)) : 0 < (this.padFlags & 64) ? this.set_x(Math.round(this.startX + a / 2 + f.EPS)) : 0 < (this.padFlags & 128) ? this.set_x(Math.round(this.startX - a + f.EPS)) : 0 < (this.padFlags & 256) ? this.set_x(Math.round(this.startX - a / 2 + f.EPS)) : 0 < (this.padFlags & 512) && this.set_x(Math.round(l.WIDTH /
+ 2 + f.EPS))
+ },
+ getChild: function(a) {
+ if (null != this.child)
+ for (var b = this.child;;) {
+ if (null != b.name && b.name == a) return b;
+ b = b.next;
+ if (b == this.child) break
+ }
+ return null
+ },
+ numChildren: function() {
+ var a = 0;
+ if (null != this.child)
+ for (var b = this.child; ++a, b = b.next, b != this.child;);
+ return a
+ },
+ createLineSegmentGFX: function(a, b, c, d, e, p) {
+ var r = a.component.height,
+ g = Math.atan2(p - d, e - c),
+ r = r / 2,
+ k = Math.cos(g),
+ I = Math.sin(g);
+ f.PathMatrix.identity();
+ f.PathMatrix.translate(-b, 0);
+ f.PathMatrix.rotate(g);
+ f.PathMatrix.translate(c + r * I, d - r *
+ k);
+ this.flSprite.get_graphics().beginBitmapFill(a, f.PathMatrix, !0, !0);
+ this.flSprite.get_graphics().moveTo(c + r * I, d - r * k);
+ this.flSprite.get_graphics().lineTo(e + r * I, p - r * k);
+ this.flSprite.get_graphics().lineTo(e - r * I, p + r * k);
+ this.flSprite.get_graphics().lineTo(c - r * I, d + r * k);
+ this.flSprite.get_graphics().lineTo(c + r * I, d - r * k);
+ this.flSprite.get_graphics().endFill()
+ },
+ createLineGFX: function(a, b, c) {
+ null == c && (c = 10);
+ null == b && (b = -1);
+ 0 > b && (b = a.component.height);
+ this.flSprite.get_graphics().clear();
+ f.DrawMatrix.identity();
+ f.DrawMatrix.translate(0, b / 2);
+ this.flSprite.get_graphics().beginBitmapFill(a, f.DrawMatrix, !0, !0);
+ this.flSprite.get_graphics().moveTo(-c / 2, -b / 2);
+ this.flSprite.get_graphics().lineTo(c / 2, -b / 2);
+ this.flSprite.get_graphics().lineTo(c / 2, b / 2);
+ this.flSprite.get_graphics().lineTo(-c / 2, b / 2);
+ this.flSprite.get_graphics().lineTo(-c / 2, -b / 2);
+ this.flSprite.get_graphics().endFill();
+ this.fillLength = c;
+ this.set_lineLength(c)
+ },
+ dispose: function() {
+ f.Dispose(this)
+ },
+ removeChild: function(a) {
+ if (null != a && a.parent == this) {
+ this.child ==
+ a && (this.child = this.child.next == this.child ? null : this.child.next);
+ var b = a.prev,
+ c = a.next;
+ null != b && (b.next = c);
+ null != c && (c.prev = b);
+ a.prev = a;
+ a.next = a;
+ a.parent = null
+ }
+ },
+ clear: function() {
+ this.clearChildren();
+ this.mc = null;
+ this.type = W.EMPTY
+ },
+ clearChildren: function() {
+ for (; null != this.child;) this.child.clearChildren(), f.Dispose(this.child)
+ },
+ addChild: function(a, b) {
+ null == b && (b = -1);
+ if (null != a)
+ if (a._oldVisible = !1, null != a.parent && a.parent.removeChild(a), a.parent = this, null == this.child) this.child = a, a.prev = a, a.next = a;
+ else {
+ var c = this.child.prev,
+ d = this.child;
+ if (-1 < b)
+ if (0 == b) this.child = a;
+ else
+ for (; c = c.next, d = d.next, --b, 0 < b && d != this.child;);
+ c.next = a;
+ d.prev = a;
+ a.prev = c;
+ a.next = d
+ }
+ },
+ setTileLayer: function(a) {
+ this.arg1 = a
+ },
+ getTileLayer: function() {
+ return this.arg1
+ },
+ draw: function(a) {
+ null == a && (a = 1);
+ var b = !1;
+ a *= (1 - f.DeltaT) * this._oldAlpha + f.DeltaT * this._alpha;
+ if (this._oldVisible && !(0.001 > a)) {
+ T.PushMatrix();
+ if (this.type == W.EMPTY) {
+ b = T.getCurrentMatrix();
+ b.PostTranslate(this.noInterpolation ? this._x : Math.round(128 * ((1 - f.DeltaT) *
+ this._oldX + f.DeltaT * this._x)) / 128, this.noInterpolation ? this._y : Math.round(128 * ((1 - f.DeltaT) * this._oldY + f.DeltaT * this._y)) / 128);
+ var c;
+ this.noInterpolation ? c = this._rotation : (c = this._rotation - this._oldRotation, 180 < Math.abs(c) && (c = 0 > c ? c + 360 : c - 360), c = this._oldRotation + f.DeltaT * c);
+ b.PostRotate(c);
+ b.PostScale((1 - f.DeltaT) * this._oldScaleX + f.DeltaT * this._scaleX, (1 - f.DeltaT) * this._oldScaleY + f.DeltaT * this._scaleY)
+ } else if (this.type == W.BITMAP) {
+ -1 == f.TilesheetId && (f.TilesheetId = this.mc.tilesheetId);
+ f.TilesheetId !=
+ this.mc.tilesheetId && (f.Flush(), f.TilesheetId = this.mc.tilesheetId);
+ if (0.999 > a && !f.DrawingAlpha || 0.999 < a && f.DrawingAlpha) f.Flush(), f.DrawingAlpha = !f.DrawingAlpha;
+ f.DrawingSmooth != this.smooth && (f.Flush(), f.DrawingSmooth = this.smooth);
+ f.CT != this.colorTransform && (f.Flush(), f.CT = this.colorTransform);
+ c = T.getCurrentMatrix();
+ c.PostTranslate(this.noInterpolation ? this._x : Math.round(128 * ((1 - f.DeltaT) * this._oldX + f.DeltaT * this._x)) / 128, this.noInterpolation ? this._y : Math.round(128 * ((1 - f.DeltaT) * this._oldY + f.DeltaT *
+ this._y)) / 128);
+ var d;
+ this.noInterpolation ? d = this._rotation : (d = this._rotation - this._oldRotation, 180 < Math.abs(d) && (d = 0 > d ? d + 360 : d - 360), d = this._oldRotation + f.DeltaT * d);
+ c.PostRotate(d);
+ c.PostScale((1 - f.DeltaT) * this._oldScaleX + f.DeltaT * this._scaleX, (1 - f.DeltaT) * this._oldScaleY + f.DeltaT * this._scaleY);
+ d = f.TilesheetFrames[this.mc.tilesheetId][this.mc.frames[this.get_currentFrame() - 1]];
+ var e = this.mc.frames[this.get_currentFrame() - 1];
+ if (0 <= this.showRight) {
+ var p = Math.min(d[2], Math.round(d[2] * this.showRight)) |
+ 0;
+ 0 < p ? (e = 1E7 * this.mc.tilesheetId + 1E4 * this.mc.frames[this.get_currentFrame() - 1] + p, f.ShowRights.h.hasOwnProperty(e) || (d = f.appendTilesheetFrame(this.mc, this.mc.name + "_" + p, this.get_currentFrame(), Math.round(d[0]), Math.round(d[1]), p, Math.round(d[3]), Math.round(d[4]), Math.round(d[5])), f.ShowRights.h[e] = d, x.SortIdsByName(f.BitmapsIds, f.BitmapsNames)), e = f.ShowRights.h[e], d = f.TilesheetFrames[this.mc.tilesheetId][e]) : b = !0
+ }
+ p = T.getTemp(1);
+ p.Translation(-d[4], -d[5]);
+ T.Multiply(p, c, p);
+ b || (b = p.outside(d[2], d[3],
+ l.WIDTH, l.HEIGHT, !1));
+ b || (f.DrawArray[f.DrawArrayLength++] = p.m02, f.DrawArray[f.DrawArrayLength++] = p.m12, f.DrawArray[f.DrawArrayLength++] = e, f.DrawArray[f.DrawArrayLength++] = p.m00, f.DrawArray[f.DrawArrayLength++] = p.m10, f.DrawArray[f.DrawArrayLength++] = p.m01, f.DrawArray[f.DrawArrayLength++] = p.m11, null != this.colorTransform && (f.DrawArray[f.DrawArrayLength++] = this.colorTransform.redMultiplier, f.DrawArray[f.DrawArrayLength++] = this.colorTransform.greenMultiplier, f.DrawArray[f.DrawArrayLength++] = this.colorTransform.blueMultiplier),
+ f.DrawingAlpha && (f.DrawArray[f.DrawArrayLength++] = a))
+ } else if (this.type == W.POLYGON) {
+ f.Flush();
+ b = T.getCurrentMatrix();
+ if (0.999 > a && !f.DrawingAlpha || 0.999 < a && f.DrawingAlpha) f.DrawingAlpha = !f.DrawingAlpha;
+ f.DrawingSmooth != this.smooth && (f.DrawingSmooth = this.smooth);
+ if (0 < (this.flags & 4)) {
+ c = Math.cos(this._oldRotation / 180 * Math.PI);
+ d = Math.sin(this._oldRotation / 180 * Math.PI);
+ c = c * this._oldLineLength / 2;
+ d = d * this._oldLineLength / 2;
+ var p = Math.cos(this._rotation / 180 * Math.PI),
+ e = Math.sin(this._rotation / 180 * Math.PI),
+ r =
+ p * this._lineLength / 2,
+ g = e * this._lineLength / 2,
+ p = (c + this._oldX) * (1 - f.DeltaT) + (r + this._x) * f.DeltaT,
+ e = (d + this._oldY) * (1 - f.DeltaT) + (g + this._y) * f.DeltaT,
+ r = (-c + this._oldX) * (1 - f.DeltaT) + (-r + this._x) * f.DeltaT,
+ g = (-d + this._oldY) * (1 - f.DeltaT) + (-g + this._y) * f.DeltaT;
+ c = (p + r) / 2;
+ d = (e + g) / 2;
+ p -= r;
+ g = e - g;
+ r = p * p + g * g;
+ e = 0;
+ 1E-4 < r && (e = 180 / Math.PI * Math.atan2(g, p));
+ p = 1;
+ r = Math.sqrt(r);
+ 0 < (this.flags & 8) && (p = r / this.fillLength);
+ b.PostTranslate(c, d);
+ b.PostRotate(e);
+ b.PostScale(p, (1 - f.DeltaT) * this._oldScaleY + f.DeltaT * this._scaleY)
+ } else b.PostTranslate(this.noInterpolation ?
+ this._x : Math.round(128 * ((1 - f.DeltaT) * this._oldX + f.DeltaT * this._x)) / 128, this.noInterpolation ? this._y : Math.round(128 * ((1 - f.DeltaT) * this._oldY + f.DeltaT * this._y)) / 128), this.noInterpolation ? c = this._rotation : (c = this._rotation - this._oldRotation, 180 < Math.abs(c) && (c = 0 > c ? c + 360 : c - 360), c = this._oldRotation + f.DeltaT * c), b.PostRotate(c), b.PostScale((1 - f.DeltaT) * this._oldScaleX + f.DeltaT * this._scaleX, (1 - f.DeltaT) * this._oldScaleY + f.DeltaT * this._scaleY);
+ b.toMatrix(f.DrawMatrix);
+ f.DrawingAlpha ? (f.AlphaColorTransform.alphaMultiplier =
+ a, l.instance.ScreenBMD.draw(this.flSprite, f.DrawMatrix, f.AlphaColorTransform, null, null, !0)) : l.instance.ScreenBMD.draw(this.flSprite, f.DrawMatrix, null, null, null, !0)
+ } else if (this.type == W.TEXT) {
+ -1 == f.TilesheetId && (f.TilesheetId = this.font.tilesheetId);
+ f.TilesheetId != this.font.tilesheetId && (f.Flush(), f.TilesheetId = this.font.tilesheetId);
+ if (0.999 > a && !f.DrawingAlpha || 0.999 < a && f.DrawingAlpha) f.Flush(), f.DrawingAlpha = !f.DrawingAlpha;
+ f.DrawingSmooth != this.smooth && (f.Flush(), f.DrawingSmooth = this.smooth);
+ T.PushMatrix();
+ b = T.getCurrentMatrix();
+ e = 0;
+ this.textAlign == V.CENTER ? e = -Math.round(this.getLineLength() / 2) : this.textAlign == V.RIGHT && (e = -this.getLineLength());
+ p = 0;
+ e *= this.get_scaleX();
+ c = p *= this.get_scaleY();
+ d = T.getCurrentMatrix();
+ d.PostTranslate((this.noInterpolation ? this._x : Math.round(128 * ((1 - f.DeltaT) * this._oldX + f.DeltaT * this._x)) / 128) + e, (this.noInterpolation ? this._y : Math.round(128 * ((1 - f.DeltaT) * this._oldY + f.DeltaT * this._y)) / 128) + p);
+ this.noInterpolation ? e = this._rotation : (e = this._rotation - this._oldRotation, 180 < Math.abs(e) &&
+ (e = 0 > e ? e + 360 : e - 360), e = this._oldRotation + f.DeltaT * e);
+ d.PostRotate(e);
+ d.PostScale((1 - f.DeltaT) * this._oldScaleX + f.DeltaT * this._scaleX, (1 - f.DeltaT) * this._oldScaleY + f.DeltaT * this._scaleY);
+ e = 0;
+ for (p = this.text.length; e < p;) {
+ var r = e++,
+ g = J.cca(this.text, r),
+ k = this.font.chars[g],
+ I = k.xOffset + this.font.defaultKern;
+ if (0 < r) {
+ var h = J.cca(this.text, r - 1),
+ I = I + this.font.chars[h].xAdvance;
+ null == this.font.kernings[h] || isNaN(this.font.kernings[h][g]) || (I += this.font.kernings[h][g])
+ }
+ k = 0 + k.yOffset - c;
+ c += k;
+ d.PostTranslate(I, k);
+ 32 != g && (f.DrawArray[f.DrawArrayLength++] = b.m02, f.DrawArray[f.DrawArrayLength++] = b.m12, f.DrawArray[f.DrawArrayLength++] = this.font.chars[J.cca(this.text, r)].movieClip.frames[0], f.DrawArray[f.DrawArrayLength++] = b.m00, f.DrawArray[f.DrawArrayLength++] = b.m10, f.DrawArray[f.DrawArrayLength++] = b.m01, f.DrawArray[f.DrawArrayLength++] = b.m11, f.DrawingAlpha && (f.DrawArray[f.DrawArrayLength++] = a))
+ }
+ T.PopMatrix()
+ } else this.type == W.TILEMAP ? (f.Flush(), b = f.DrawingSmooth, c = f.DrawingAlpha, f.DrawingSmooth = !0, f.DrawingAlpha = !1, this.tileMap.draw(this, this.getTileLayer()), f.Flush(), f.DrawingSmooth = b, f.DrawingAlpha = c) : this.type == W.BACKGROUND && (f.Flush(), b = f.DrawingSmooth, c = f.DrawingAlpha, f.DrawingSmooth = !0, f.DrawingAlpha = 0.999 > (1 - f.DeltaT) * this._oldAlpha + f.DeltaT * this._alpha, yb.DrawBG(this.arg1, this.noInterpolation ? this._x : Math.round(128 * ((1 - f.DeltaT) * this._oldX + f.DeltaT * this._x)) / 128, this.noInterpolation ? this._y : Math.round(128 * ((1 - f.DeltaT) * this._oldY + f.DeltaT * this._y)) / 128, this.get_alpha()), f.Flush(), f.DrawingSmooth =
+ b, f.DrawingAlpha = c);
+ if (null != this.child)
+ for (b = this.child; b.draw(a), b = b.next, b != this.child;);
+ T.PopMatrix()
+ }
+ },
+ getLineLength: function(a) {
+ null == a && (a = 0);
+ for (var b = 0; a < this.text.length && J.cca("\n", 0) != J.cca(this.text, a);) {
+ var c = J.cca(this.text, a),
+ d = this.font.chars[c],
+ d = d.xOffset + d.xAdvance + this.font.defaultKern;
+ if (0 < a) {
+ var e = J.cca(this.text, a - 1);
+ null == this.font.kernings[e] || isNaN(this.font.kernings[e][c]) || (d += this.font.kernings[e][c])
+ }
+ b += d;
+ ++a
+ }
+ return b
+ },
+ updateAnimations: function(a) {
+ null == a && (a = -1);
+ null !=
+ this.animation && this.animation.Update(a);
+ if (null != this.child)
+ for (a = this.child; a.updateAnimations(), a = a.next, a != this.child;);
+ },
+ get_x: function() {
+ return this._x
+ },
+ set_x: function(a) {
+ return this._x = a
+ },
+ get_y: function() {
+ return this._y
+ },
+ set_y: function(a) {
+ return this._y = a
+ },
+ get_rotation: function() {
+ return this._rotation
+ },
+ set_rotation: function(a) {
+ a %= 360;
+ 0 > a && (a += 360);
+ return this._rotation = a
+ },
+ get_scaleX: function() {
+ return this._scaleX
+ },
+ set_scaleX: function(a) {
+ return this._scaleX = a
+ },
+ get_scaleY: function() {
+ return this._scaleY
+ },
+ set_scaleY: function(a) {
+ return this._scaleY = a
+ },
+ get_alpha: function() {
+ return this._alpha
+ },
+ set_alpha: function(a) {
+ return this._alpha = a
+ },
+ get_visible: function() {
+ return this._visible
+ },
+ set_visible: function(a) {
+ return this._visible = a
+ },
+ get_playing: function() {
+ return this._playing
+ },
+ set_playing: function(a) {
+ return this._playing = a
+ },
+ get_currentFrame: function() {
+ return this._currentFrame
+ },
+ set_currentFrame: function(a) {
+ return this._currentFrame = a
+ },
+ set_lineLength: function(a) {
+ return this._lineLength = a
+ },
+ _reset: function() {
+ this._oldPlaying =
+ this._oldVisible = !1
+ },
+ _updateOldValues: function() {
+ this._oldX = this._x;
+ this._oldY = this._y;
+ this._oldRotation = this._rotation;
+ this._oldScaleX = this._scaleX;
+ this._oldScaleY = this._scaleY;
+ this._oldAlpha = this._alpha;
+ this._oldVisible = this._visible;
+ this._oldPlaying = this._playing;
+ this._oldCurrentFrame = this._currentFrame;
+ this._oldLineLength = this._lineLength;
+ this.noInterpolation = !1;
+ this.type == W.BITMAP && (this.get_currentFrame() == this.mc.frames.length && null != this.funcEnd && this.funcEnd(), this.get_playing() && this.set_currentFrame(1 +
+ this.get_currentFrame() % this.mc.frames.length));
+ if (null != this.child)
+ for (var a = this.child; a._updateOldValues(), a = a.next, a != this.child;);
+ },
+ __class__: f,
+ __properties__: {
+ set_lineLength: "set_lineLength",
+ set_currentFrame: "set_currentFrame",
+ get_currentFrame: "get_currentFrame",
+ set_playing: "set_playing",
+ get_playing: "get_playing",
+ set_visible: "set_visible",
+ get_visible: "get_visible",
+ set_alpha: "set_alpha",
+ get_alpha: "get_alpha",
+ set_scaleY: "set_scaleY",
+ get_scaleY: "get_scaleY",
+ set_scaleX: "set_scaleX",
+ get_scaleX: "get_scaleX",
+ set_rotation: "set_rotation",
+ get_rotation: "get_rotation",
+ set_y: "set_y",
+ get_y: "get_y",
+ set_x: "set_x",
+ get_x: "get_x",
+ get_totalFrames: "get_totalFrames"
+ }
+ };
+ var x = function() {};
+ s["oz.OzUtil"] = x;
+ x.__name__ = ["oz", "OzUtil"];
+ x.Reverse_oz_OzSprite = function(a, b, c) {
+ null == c && (c = 5E6);
+ null == b && (b = 0);
+ c > a.length && (c = a.length);
+ for (var d, e = 0, p = (c - b) / 2 | 0; e < p;) {
+ var f = e++;
+ d = a[b + f];
+ a[b + f] = a[c - f - 1];
+ a[c - f - 1] = d
+ }
+ };
+ x.getURL = function(a) {
+ H.getURL(new Eb(a))
+ };
+ x.StringReplace = function(a, b, c) {
+ a = a.split(b);
+ b = null;
+ 0 < a.length && (b = a[0]);
+ for (var d = 1, e = a.length; d < e;) {
+ var p = d++;
+ null == a[p] || 1 > a[p].length || (b = b + c + a[p])
+ }
+ return b
+ };
+ x.CommaStringToArray = function(a) {
+ var b = [],
+ c = 0;
+ for (a = a.split(","); c < a.length;) {
+ var d = a[c];
+ for (++c;
+ " " == d.charAt(0);) d = J.substr(d, 1, null);
+ for (;
+ " " == d.charAt(d.length - 1);) d = J.substr(d, 0, d.length - 1);
+ null != d && 0 < d.length && b.push(d)
+ }
+ return b
+ };
+ x.BitCount = function(a) {
+ for (var b = 0; 0 != a;) a &= a - 1, ++b;
+ return b
+ };
+ x.StringToIntArray = function(a) {
+ if (null == a) return [];
+ a = a.split(",");
+ for (var b = 0, c = [], d = 0; d < a.length;) {
+ var e = a[d];
+ ++d;
+ null != e && 0 < e.length && (c[b] = K.parseInt(e), ++b)
+ }
+ return c
+ };
+ x.IndexOfInt = function(a, b) {
+ for (var c = 0, d = a.length; c < d;) {
+ var e = c++;
+ if (a[e] == b) return e
+ }
+ return -1
+ };
+ x.SortIdsByName = function(a, b) {
+ var c, d;
+ for (c = a.length - 1; 0 <= c;) {
+ for (d = 0; d < c;) {
+ if (b[d] > b[d + 1]) {
+ var e = b[d];
+ b[d] = b[d + 1];
+ b[d + 1] = e;
+ e = a[d];
+ a[d] = a[d + 1];
+ a[d + 1] = e
+ }++d
+ }--c
+ }
+ };
+ x.FindStringId = function(a, b) {
+ for (var c = -1, d = a.length; c + 1 < d;) {
+ var e = Math.floor((c + d) / 2);
+ if (a[e] < b) c = e;
+ else if (a[e] > b) d = e;
+ else return e
+ }
+ return -1
+ };
+ x.round = function(a, b) {
+ null == b && (b = 2);
+ for (var c =
+ 1, d = 0, e = b; d < e;) d++, c *= 10;
+ return Math.round(a * c) / c
+ };
+ x.ProjectPointOnLineSegment = function(a, b, c, d, e, p, f) {
+ e -= c;
+ p -= d;
+ a = e * (a - c) + p * (b - d);
+ b = e * e + p * p;
+ f[0] = c + a * e / b;
+ f[1] = d + a * p / b
+ };
+ x.rotateAroundPoint = function(a, b, c, d, e, p) {
+ var f = Math.sin(c / 180 * Math.PI);
+ c = Math.cos(c / 180 * Math.PI);
+ a -= d;
+ b -= e;
+ p[0] = d + a * c - b * f;
+ p[1] = e + b * c + a * f
+ };
+ x.DotPoints = function(a, b, c, d, e, p, f, g) {
+ return (c - a) * (f - e) + (d - b) * (g - p)
+ };
+ x.CrossPoints = function(a, b, c, d, e, p) {
+ return (c - a) * (p - b) - (d - b) * (e - a)
+ };
+ x.AngleFromSegment = function(a, b, c, d) {
+ a -= c;
+ b -= d;
+ return 1E-6 >
+ a * a + b * b ? 0 : 180 / Math.PI * Math.atan2(b, a)
+ };
+ x.DistancePoints = function(a, b, c, d) {
+ a -= c;
+ b -= d;
+ return Math.sqrt(a * a + b * b)
+ };
+ x.PointLineDistance = function(a, b, c, d, e, p, f) {
+ var g = x.CrossPoints(a, b, c, d, e, p) / x.DistancePoints(a, b, c, d);
+ if (f) {
+ if (0 < x.DotPoints(a, b, c, d, c, d, e, p)) return x.PLDNearest = 2, x.DistancePoints(c, d, e, p);
+ if (0 < x.DotPoints(c, d, a, b, a, b, e, p)) return x.PLDNearest = 1, x.DistancePoints(a, b, e, p)
+ }
+ x.PLDNearest = 0;
+ return Math.abs(g)
+ };
+ x.ReachMaxSpeed2D = function(a, b, c, d, e, p) {
+ var f = c - a,
+ g = d - b,
+ k = Math.sqrt(f * f + g * g);
+ k <= e ?
+ (p[0] = c, p[1] = d) : (c = e / k, p[0] = a + f * c, p[1] = b + g * c)
+ };
+ x.GenerateControlPointsFromPath = function(a, b) {
+ for (var c = [], d = x.ComputeControlPoints(a), e = x.ComputeControlPoints(b), p = 0, f = d.length; p < f;) {
+ var g = p++;
+ c.push(new Cc(d[g].x, e[g].x, d[g].y, e[g].y))
+ }
+ return c
+ };
+ x.ComputeControlPoints = function(a) {
+ var b = [],
+ c = [],
+ d = a.length - 1,
+ e = [],
+ p = [],
+ f = [],
+ g = [];
+ e[0] = 0;
+ p[0] = 2;
+ f[0] = 1;
+ g[0] = a[0] + 2 * a[1];
+ for (var k = 1, I = d - 1; k < I;) {
+ var h = k++;
+ e[h] = 1;
+ p[h] = 4;
+ f[h] = 1;
+ g[h] = 4 * a[h] + 2 * a[h + 1]
+ }
+ e[d - 1] = 2;
+ p[d - 1] = 7;
+ f[d - 1] = 0;
+ g[d - 1] = 8 * a[d - 1] + a[d];
+ for (k = 1; k <
+ d;) I = k++, h = e[I] / p[I - 1], p[I] -= h * f[I - 1], g[I] -= h * g[I - 1];
+ b[d - 1] = g[d - 1] / p[d - 1];
+ e = 0;
+ for (k = d - 1; e < k;) I = e++, I = d - 2 - I, b[I] = (g[I] - f[I] * b[I + 1]) / p[I];
+ p = 0;
+ for (f = d - 1; p < f;) g = p++, c[g] = 2 * a[g + 1] - b[g + 1];
+ c[d - 1] = 0.5 * (a[d] + b[d - 1]);
+ a = [];
+ for (p = 0; p < d;) f = p++, a.push(new xa(b[f], c[f]));
+ return a
+ };
+ x.ReverseFloats = function(a, b, c) {
+ null == c && (c = 5E7);
+ null == b && (b = 0);
+ 5E7 == c && (c = a.length);
+ for (var d, e = 0, p = (c - b) / 2 | 0; e < p;) {
+ var f = e++;
+ d = a[b + f];
+ a[b + f] = a[c - f - 1];
+ a[c - f - 1] = d
+ }
+ };
+ var X = function() {
+ this.h = {}
+ };
+ s["haxe.ds.StringMap"] = X;
+ X.__name__ = ["haxe",
+ "ds", "StringMap"
+ ];
+ X.__interfaces__ = [dc];
+ X.prototype = {
+ setReserved: function(a, b) {
+ null == this.rh && (this.rh = {});
+ this.rh["$" + a] = b
+ },
+ getReserved: function(a) {
+ return null == this.rh ? null : this.rh["$" + a]
+ },
+ existsReserved: function(a) {
+ return null == this.rh ? !1 : this.rh.hasOwnProperty("$" + a)
+ },
+ remove: function(a) {
+ if (null != O[a]) {
+ a = "$" + a;
+ if (null == this.rh || !this.rh.hasOwnProperty(a)) return !1;
+ delete this.rh[a]
+ } else {
+ if (!this.h.hasOwnProperty(a)) return !1;
+ delete this.h[a]
+ }
+ return !0
+ },
+ keys: function() {
+ return J.iter(this.arrayKeys())
+ },
+ arrayKeys: function() {
+ var a = [],
+ b;
+ for (b in this.h) this.h.hasOwnProperty(b) && a.push(b);
+ if (null != this.rh)
+ for (b in this.rh) 36 == b.charCodeAt(0) && a.push(b.substr(1));
+ return a
+ },
+ __class__: X
+ };
+ var W = s["oz.SpriteType"] = {
+ __ename__: ["oz", "SpriteType"],
+ __constructs__: "EMPTY BITMAP TEXT POLYGON TILEMAP BACKGROUND BACKGROUNDIMAGE".split(" ")
+ };
+ W.EMPTY = ["EMPTY", 0];
+ W.EMPTY.toString = F;
+ W.EMPTY.__enum__ = W;
+ W.BITMAP = ["BITMAP", 1];
+ W.BITMAP.toString = F;
+ W.BITMAP.__enum__ = W;
+ W.TEXT = ["TEXT", 2];
+ W.TEXT.toString = F;
+ W.TEXT.__enum__ = W;
+ W.POLYGON = ["POLYGON", 3];
+ W.POLYGON.toString = F;
+ W.POLYGON.__enum__ = W;
+ W.TILEMAP = ["TILEMAP", 4];
+ W.TILEMAP.toString = F;
+ W.TILEMAP.__enum__ = W;
+ W.BACKGROUND = ["BACKGROUND", 5];
+ W.BACKGROUND.toString = F;
+ W.BACKGROUND.__enum__ = W;
+ W.BACKGROUNDIMAGE = ["BACKGROUNDIMAGE", 6];
+ W.BACKGROUNDIMAGE.toString = F;
+ W.BACKGROUNDIMAGE.__enum__ = W;
+ var V = s["oz.TextAlign"] = {
+ __ename__: ["oz", "TextAlign"],
+ __constructs__: ["LEFT", "RIGHT", "CENTER", "JUSTIFIED"]
+ };
+ V.LEFT = ["LEFT", 0];
+ V.LEFT.toString = F;
+ V.LEFT.__enum__ = V;
+ V.RIGHT = ["RIGHT", 1];
+ V.RIGHT.toString =
+ F;
+ V.RIGHT.__enum__ = V;
+ V.CENTER = ["CENTER", 2];
+ V.CENTER.toString = F;
+ V.CENTER.__enum__ = V;
+ V.JUSTIFIED = ["JUSTIFIED", 3];
+ V.JUSTIFIED.toString = F;
+ V.JUSTIFIED.__enum__ = V;
+ var tc = function() {};
+ s["platforms.WindowsPhone"] = tc;
+ tc.__name__ = ["platforms", "WindowsPhone"];
+ tc.ScriptNotify = function(a) {};
+ var Eb = function(a) {
+ null != a && (this.url = a);
+ this.requestHeaders = [];
+ this.method = "GET";
+ this.contentType = null
+ };
+ s["openfl.net.URLRequest"] = Eb;
+ Eb.__name__ = ["openfl", "net", "URLRequest"];
+ Eb.prototype = {
+ formatRequestHeaders: function() {
+ var a =
+ this.requestHeaders;
+ null == a && (a = []);
+ if ("GET" == this.method || null == this.data) return a;
+ if ("string" == typeof this.data || S.__instanceof(this.data, zb)) a = a.slice(), a.push(new uc("Content-Type", null != this.contentType ? this.contentType : "application/x-www-form-urlencoded"));
+ return a
+ },
+ __class__: Eb
+ };
+ var cb = function(a, b, c, d) {
+ a = cb.image;
+ ia.call(this, a.width, a.height, !0, 0);
+ this.context.drawImage(a, 0, 0)
+ };
+ s.PreloaderBarBMD = cb;
+ cb.__name__ = ["PreloaderBarBMD"];
+ cb.preload = function() {
+ var a = document.createElement("img");
+ C.loadEmbed(cb.image = a);
+ a.src = "data:image/png;base64,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"
+ };
+ cb.__super__ = ia;
+ cb.prototype = R(ia.prototype, {
+ __class__: cb
+ });
+ var Z = function() {};
+ s.Reflect = Z;
+ Z.__name__ = ["Reflect"];
+ Z.field = function(a, b) {
+ try {
+ return a[b]
+ } catch (c) {
+ return null
+ }
+ };
+ Z.getProperty = function(a, b) {
+ var c;
+ if (null == a) return null;
+ var d;
+ d = a.__properties__ ? c = a.__properties__["get_" + b] : !1;
+ return d ? a[c]() : a[b]
+ };
+ Z.setProperty = function(a, b, c) {
+ var d, e;
+ e = a.__properties__ ? d = a.__properties__["set_" + b] : !1;
+ if (e) a[d](c);
+ else a[b] = c
+ };
+ Z.fields = function(a) {
+ var b = [];
+ if (null != a) {
+ var c = Object.prototype.hasOwnProperty,
+ d;
+ for (d in a) "__id__" != d && "hx__closures__" != d && c.call(a, d) && b.push(d)
+ }
+ return b
+ };
+ Z.isFunction = function(a) {
+ return "function" == typeof a ? !(a.__name__ || a.__ename__) : !1
+ };
+ Z.compare = function(a, b) {
+ return a == b ? 0 : a > b ? 1 : -1
+ };
+ Z.compareMethods = function(a, b) {
+ return a == b ? !0 : Z.isFunction(a) && Z.isFunction(b) ? a.scope == b.scope && a.method == b.method ? null != a.method : !1 : !1
+ };
+ Z.isEnumValue = function(a) {
+ return null != a ? null != a.__enum__ : !1
+ };
+ Z.deleteField = function(a, b) {
+ if (!Object.prototype.hasOwnProperty.call(a, b)) return !1;
+ delete a[b];
+ return !0
+ };
+ var nb = function() {
+ this.b = ""
+ };
+ s.StringBuf = nb;
+ nb.__name__ = ["StringBuf"];
+ nb.prototype = {
+ __class__: nb
+ };
+ var aa = s.ValueType = {
+ __ename__: ["ValueType"],
+ __constructs__: "TNull TInt TFloat TBool TObject TFunction TClass TEnum TUnknown".split(" ")
+ };
+ aa.TNull = ["TNull", 0];
+ aa.TNull.toString = F;
+ aa.TNull.__enum__ = aa;
+ aa.TInt = ["TInt", 1];
+ aa.TInt.toString = F;
+ aa.TInt.__enum__ = aa;
+ aa.TFloat = ["TFloat", 2];
+ aa.TFloat.toString = F;
+ aa.TFloat.__enum__ = aa;
+ aa.TBool = ["TBool", 3];
+ aa.TBool.toString = F;
+ aa.TBool.__enum__ = aa;
+ aa.TObject = ["TObject", 4];
+ aa.TObject.toString = F;
+ aa.TObject.__enum__ = aa;
+ aa.TFunction = ["TFunction", 5];
+ aa.TFunction.toString = F;
+ aa.TFunction.__enum__ = aa;
+ aa.TClass = function(a) {
+ a = ["TClass", 6, a];
+ a.__enum__ = aa;
+ a.toString = F;
+ return a
+ };
+ aa.TEnum = function(a) {
+ a = ["TEnum", 7, a];
+ a.__enum__ = aa;
+ a.toString = F;
+ return a
+ };
+ aa.TUnknown = ["TUnknown", 8];
+ aa.TUnknown.toString = F;
+ aa.TUnknown.__enum__ = aa;
+ var B = function(a) {
+ this.nodeType = a;
+ this.children = [];
+ this.attributeMap = new X
+ };
+ s.Xml = B;
+ B.__name__ = ["Xml"];
+ B.parse = function(a) {
+ return Ab.parse(a)
+ };
+ B.createElement = function(a) {
+ var b = new B(B.Element);
+ if (b.nodeType != B.Element) throw new D("Bad node type, expected Element but found " + b.nodeType);
+ b.nodeName = a;
+ return b
+ };
+ B.createPCData = function(a) {
+ var b = new B(B.PCData);
+ if (b.nodeType == B.Document || b.nodeType == B.Element) throw new D("Bad node type, unexpected " + b.nodeType);
+ b.nodeValue = a;
+ return b
+ };
+ B.createCData = function(a) {
+ var b = new B(B.CData);
+ if (b.nodeType == B.Document || b.nodeType == B.Element) throw new D("Bad node type, unexpected " + b.nodeType);
+ b.nodeValue =
+ a;
+ return b
+ };
+ B.createComment = function(a) {
+ var b = new B(B.Comment);
+ if (b.nodeType == B.Document || b.nodeType == B.Element) throw new D("Bad node type, unexpected " + b.nodeType);
+ b.nodeValue = a;
+ return b
+ };
+ B.createDocType = function(a) {
+ var b = new B(B.DocType);
+ if (b.nodeType == B.Document || b.nodeType == B.Element) throw new D("Bad node type, unexpected " + b.nodeType);
+ b.nodeValue = a;
+ return b
+ };
+ B.createProcessingInstruction = function(a) {
+ var b = new B(B.ProcessingInstruction);
+ if (b.nodeType == B.Document || b.nodeType == B.Element) throw new D("Bad node type, unexpected " +
+ b.nodeType);
+ b.nodeValue = a;
+ return b
+ };
+ B.createDocument = function() {
+ return new B(B.Document)
+ };
+ B.prototype = {
+ get: function(a) {
+ if (this.nodeType != B.Element) throw new D("Bad node type, expected Element but found " + this.nodeType);
+ var b = this.attributeMap;
+ return null != O[a] ? b.getReserved(a) : b.h[a]
+ },
+ set: function(a, b) {
+ if (this.nodeType != B.Element) throw new D("Bad node type, expected Element but found " + this.nodeType);
+ var c = this.attributeMap;
+ null != O[a] ? c.setReserved(a, b) : c.h[a] = b
+ },
+ exists: function(a) {
+ if (this.nodeType !=
+ B.Element) throw new D("Bad node type, expected Element but found " + this.nodeType);
+ var b = this.attributeMap;
+ return null != O[a] ? b.existsReserved(a) : b.h.hasOwnProperty(a)
+ },
+ attributes: function() {
+ if (this.nodeType != B.Element) throw new D("Bad node type, expected Element but found " + this.nodeType);
+ return this.attributeMap.keys()
+ },
+ elements: function() {
+ if (this.nodeType != B.Document && this.nodeType != B.Element) throw new D("Bad node type, expected Element or Document but found " + this.nodeType);
+ for (var a = [], b = 0, c = this.children; b <
+ c.length;) {
+ var d = c[b];
+ ++b;
+ d.nodeType == B.Element && a.push(d)
+ }
+ return J.iter(a)
+ },
+ elementsNamed: function(a) {
+ if (this.nodeType != B.Document && this.nodeType != B.Element) throw new D("Bad node type, expected Element or Document but found " + this.nodeType);
+ for (var b = [], c = 0, d = this.children; c < d.length;) {
+ var e = d[c];
+ ++c;
+ var p;
+ if (e.nodeType == B.Element) {
+ if (e.nodeType != B.Element) throw new D("Bad node type, expected Element but found " + e.nodeType);
+ p = e.nodeName == a
+ } else p = !1;
+ p && b.push(e)
+ }
+ return J.iter(b)
+ },
+ firstElement: function() {
+ if (this.nodeType !=
+ B.Document && this.nodeType != B.Element) throw new D("Bad node type, expected Element or Document but found " + this.nodeType);
+ for (var a = 0, b = this.children; a < b.length;) {
+ var c = b[a];
+ ++a;
+ if (c.nodeType == B.Element) return c
+ }
+ return null
+ },
+ addChild: function(a) {
+ if (this.nodeType != B.Document && this.nodeType != B.Element) throw new D("Bad node type, expected Element or Document but found " + this.nodeType);
+ null != a.parent && a.parent.removeChild(a);
+ this.children.push(a);
+ a.parent = this
+ },
+ removeChild: function(a) {
+ if (this.nodeType !=
+ B.Document && this.nodeType != B.Element) throw new D("Bad node type, expected Element or Document but found " + this.nodeType);
+ return J.remove(this.children, a) ? (a.parent = null, !0) : !1
+ },
+ __class__: B
+ };
+ var Dc = function(a, b) {
+ this.high = a;
+ this.low = b
+ };
+ s["haxe._Int64.___Int64"] = Dc;
+ Dc.__name__ = ["haxe", "_Int64", "___Int64"];
+ Dc.prototype = {
+ __class__: Dc
+ };
+ var Ia = function() {
+ this.buf = new nb;
+ this.cache = [];
+ this.useCache = Ia.USE_CACHE;
+ this.useEnumIndex = Ia.USE_ENUM_INDEX;
+ this.shash = new X;
+ this.scount = 0
+ };
+ s["haxe.Serializer"] = Ia;
+ Ia.__name__ = ["haxe", "Serializer"];
+ Ia.run = function(a) {
+ var b = new Ia;
+ b.serialize(a);
+ return b.toString()
+ };
+ Ia.prototype = {
+ toString: function() {
+ return this.buf.b
+ },
+ serializeString: function(a) {
+ var b = this.shash,
+ b = null != O[a] ? b.getReserved(a) : b.h[a];
+ if (null != b) this.buf.b += "R", this.buf.b += null == b ? "null" : "" + b;
+ else {
+ var b = this.shash,
+ c = this.scount++;
+ null != O[a] ? b.setReserved(a, c) : b.h[a] = c;
+ this.buf.b += "y";
+ a = encodeURIComponent(a);
+ this.buf.b += K.string(a.length);
+ this.buf.b += ":";
+ this.buf.b += null == a ? "null" : "" + a
+ }
+ },
+ serializeRef: function(a) {
+ for (var b =
+ typeof a, c = 0, d = this.cache.length; c < d;) {
+ var e = c++,
+ p = this.cache[e];
+ if (typeof p == b && p == a) return this.buf.b += "r", this.buf.b += null == e ? "null" : "" + e, !0
+ }
+ this.cache.push(a);
+ return !1
+ },
+ serializeFields: function(a) {
+ for (var b = 0, c = Z.fields(a); b < c.length;) {
+ var d = c[b];
+ ++b;
+ this.serializeString(d);
+ this.serialize(Z.field(a, d))
+ }
+ this.buf.b += "g"
+ },
+ serialize: function(a) {
+ var b = U["typeof"](a);
+ switch (b[1]) {
+ case 0:
+ this.buf.b += "n";
+ break;
+ case 1:
+ if (0 == a) {
+ this.buf.b += "z";
+ break
+ }
+ this.buf.b += "i";
+ this.buf.b += null == a ? "null" : "" + a;
+ break;
+ case 2:
+ isNaN(a) ? this.buf.b += "k" : isFinite(a) ? (this.buf.b += "d", this.buf.b += null == a ? "null" : "" + a) : this.buf.b += 0 > a ? "m" : "p";
+ break;
+ case 3:
+ this.buf.b += a ? "t" : "f";
+ break;
+ case 4:
+ if (S.__instanceof(a, pd)) a = U.getClassName(a), this.buf.b += "A", this.serializeString(a);
+ else if (S.__instanceof(a, qd)) this.buf.b += "B", this.serializeString(U.getEnumName(a));
+ else {
+ if (this.useCache && this.serializeRef(a)) break;
+ this.buf.b += "o";
+ this.serializeFields(a)
+ }
+ break;
+ case 5:
+ throw new D("Cannot serialize function");
+ case 6:
+ b = b[2];
+ if (b == String) {
+ this.serializeString(a);
+ break
+ }
+ if (this.useCache && this.serializeRef(a)) break;
+ switch (b) {
+ case Array:
+ b = 0;
+ this.buf.b += "a";
+ for (var c = 0, d = a.length; c < d;) {
+ var e = c++;
+ null == a[e] ? ++b : (0 < b && (1 == b ? this.buf.b += "n" : (this.buf.b += "u", this.buf.b += null == b ? "null" : "" + b), b = 0), this.serialize(a[e]))
+ }
+ 0 < b && (1 == b ? this.buf.b += "n" : (this.buf.b += "u", this.buf.b += null == b ? "null" : "" + b));
+ this.buf.b += "h";
+ break;
+ case Date:
+ this.buf.b += "v";
+ this.buf.b += K.string(a.getTime());
+ break;
+ case cc:
+ this.buf.b += "l";
+ for (a = a.h; null != a;) b = a.item, a = a.next, this.serialize(b);
+ this.buf.b +=
+ "h";
+ break;
+ case va:
+ this.buf.b += "q";
+ for (b = a.keys(); b.hasNext();) c = b.next(), this.buf.b += ":", this.buf.b += null == c ? "null" : "" + c, this.serialize(a.h[c]);
+ this.buf.b += "h";
+ break;
+ case Oa:
+ this.buf.b += "M";
+ for (b = a.keys(); b.hasNext();) c = b.next(), d = Z.field(c, "__id__"), Z.deleteField(c, "__id__"), this.serialize(c), c.__id__ = d, this.serialize(a.h[c.__id__]);
+ this.buf.b += "h";
+ break;
+ case X:
+ this.buf.b += "b";
+ for (b = a.keys(); b.hasNext();) c = b.next(), this.serializeString(c), this.serialize(null != O[c] ? a.getReserved(c) : a.h[c]);
+ this.buf.b +=
+ "h";
+ break;
+ case Ja:
+ this.buf.b += "s";
+ this.buf.b += K.string(Math.ceil(8 * a.length / 6));
+ this.buf.b += ":";
+ c = 0;
+ d = a.length - 2;
+ b = Ia.BASE64_CODES;
+ if (null == b) {
+ for (var b = Array(Ia.BASE64.length), e = 0, p = Ia.BASE64.length; e < p;) {
+ var f = e++;
+ b[f] = J.cca(Ia.BASE64, f)
+ }
+ Ia.BASE64_CODES = b
+ }
+ for (; c < d;) e = a.b[c++], p = a.b[c++], f = a.b[c++], this.buf.b += String.fromCharCode(b[e >> 2]), this.buf.b += String.fromCharCode(b[(e << 4 | p >> 4) & 63]), this.buf.b += String.fromCharCode(b[(p << 2 | f >> 6) & 63]), this.buf.b += String.fromCharCode(b[f & 63]);
+ c == d ? (d = a.b[c++],
+ a = a.b[c++], this.buf.b += String.fromCharCode(b[d >> 2]), this.buf.b += String.fromCharCode(b[(d << 4 | a >> 4) & 63]), this.buf.b += String.fromCharCode(b[a << 2 & 63])) : c == d + 1 && (a = a.b[c++], this.buf.b += String.fromCharCode(b[a >> 2]), this.buf.b += String.fromCharCode(b[a << 4 & 63]));
+ break;
+ default:
+ this.useCache && this.cache.pop(), null != a.hxSerialize ? (this.buf.b += "C", this.serializeString(U.getClassName(b)), this.useCache && this.cache.push(a), a.hxSerialize(this), this.buf.b += "g") : (this.buf.b += "c", this.serializeString(U.getClassName(b)),
+ this.useCache && this.cache.push(a), this.serializeFields(a))
+ }
+ break;
+ case 7:
+ b = b[2];
+ if (this.useCache) {
+ if (this.serializeRef(a)) break;
+ this.cache.pop()
+ }
+ this.buf.b += K.string(this.useEnumIndex ? "j" : "w");
+ this.serializeString(U.getEnumName(b));
+ this.useEnumIndex ? (this.buf.b += ":", this.buf.b += K.string(a[1])) : this.serializeString(a[0]);
+ this.buf.b += ":";
+ b = a.length;
+ this.buf.b += K.string(b - 2);
+ for (c = 2; c < b;) d = c++, this.serialize(a[d]);
+ this.useCache && this.cache.push(a);
+ break;
+ default:
+ throw new D("Cannot serialize " + K.string(a));
+ }
+ },
+ __class__: Ia
+ };
+ var wb = function(a) {
+ var b = this;
+ this.id = setInterval(function() {
+ b.run()
+ }, a)
+ };
+ s["haxe.Timer"] = wb;
+ wb.__name__ = ["haxe", "Timer"];
+ wb.stamp = function() {
+ return (new Date).getTime() / 1E3
+ };
+ wb.prototype = {
+ run: function() {},
+ __class__: wb
+ };
+ var Xb = function() {};
+ s["haxe._Unserializer.DefaultResolver"] = Xb;
+ Xb.__name__ = ["haxe", "_Unserializer", "DefaultResolver"];
+ Xb.prototype = {
+ resolveClass: function(a) {
+ return U.resolveClass(a)
+ },
+ resolveEnum: function(a) {
+ return U.resolveEnum(a)
+ },
+ __class__: Xb
+ };
+ var Qa = function(a) {
+ this.buf =
+ a;
+ this.length = a.length;
+ this.pos = 0;
+ this.scache = [];
+ this.cache = [];
+ a = Qa.DEFAULT_RESOLVER;
+ null == a && (a = new Xb, Qa.DEFAULT_RESOLVER = a);
+ this.resolver = a
+ };
+ s["haxe.Unserializer"] = Qa;
+ Qa.__name__ = ["haxe", "Unserializer"];
+ Qa.initCodes = function() {
+ for (var a = [], b = 0, c = Qa.BASE64.length; b < c;) {
+ var d = b++;
+ a[Qa.BASE64.charCodeAt(d)] = d
+ }
+ return a
+ };
+ Qa.prototype = {
+ setResolver: function(a) {
+ null == a ? (null == ob.instance && (ob.instance = new ob), this.resolver = ob.instance) : this.resolver = a
+ },
+ readDigits: function() {
+ for (var a = 0, b = !1, c = this.pos;;) {
+ var d =
+ this.buf.charCodeAt(this.pos);
+ if (d != d) break;
+ if (45 == d) {
+ if (this.pos != c) break;
+ b = !0
+ } else {
+ if (48 > d || 57 < d) break;
+ a = 10 * a + (d - 48)
+ }
+ this.pos++
+ }
+ b && (a *= -1);
+ return a
+ },
+ readFloat: function() {
+ for (var a = this.pos;;) {
+ var b = this.buf.charCodeAt(this.pos);
+ if (b != b) break;
+ if (43 <= b && 58 > b || 101 == b || 69 == b) this.pos++;
+ else break
+ }
+ return parseFloat(J.substr(this.buf, a, this.pos - a))
+ },
+ unserializeObject: function(a) {
+ for (;;) {
+ if (this.pos >= this.length) throw new D("Invalid object");
+ if (103 == this.buf.charCodeAt(this.pos)) break;
+ var b = this.unserialize();
+ if ("string" != typeof b) throw new D("Invalid object key");
+ var c = this.unserialize();
+ a[b] = c
+ }
+ this.pos++
+ },
+ unserializeEnum: function(a, b) {
+ if (58 != this.buf.charCodeAt(this.pos++)) throw new D("Invalid enum format");
+ var c = this.readDigits();
+ if (0 == c) return U.createEnum(a, b);
+ for (var d = []; 0 < c--;) d.push(this.unserialize());
+ return U.createEnum(a, b, d)
+ },
+ unserialize: function() {
+ switch (this.buf.charCodeAt(this.pos++)) {
+ case 65:
+ var a = this.unserialize(),
+ b = this.resolver.resolveClass(a);
+ if (null == b) throw new D("Class not found " +
+ a);
+ return b;
+ case 66:
+ a = this.unserialize();
+ b = this.resolver.resolveEnum(a);
+ if (null == b) throw new D("Enum not found " + a);
+ return b;
+ case 67:
+ a = this.unserialize();
+ b = this.resolver.resolveClass(a);
+ if (null == b) throw new D("Class not found " + a);
+ a = U.createEmptyInstance(b);
+ this.cache.push(a);
+ a.hxUnserialize(this);
+ if (103 != this.buf.charCodeAt(this.pos++)) throw new D("Invalid custom data");
+ return a;
+ case 77:
+ a = new Oa;
+ for (this.cache.push(a); 104 != this.buf.charCodeAt(this.pos);) b = this.unserialize(), a.set(b, this.unserialize());
+ this.pos++;
+ return a;
+ case 82:
+ a = this.readDigits();
+ if (0 > a || a >= this.scache.length) throw new D("Invalid string reference");
+ return this.scache[a];
+ case 97:
+ a = [];
+ for (this.cache.push(a);;) {
+ b = this.buf.charCodeAt(this.pos);
+ if (104 == b) {
+ this.pos++;
+ break
+ }
+ 117 == b ? (this.pos++, b = this.readDigits(), a[a.length + b - 1] = null) : a.push(this.unserialize())
+ }
+ return a;
+ case 98:
+ a = new X;
+ for (this.cache.push(a); 104 != this.buf.charCodeAt(this.pos);) {
+ var b = this.unserialize(),
+ c = this.unserialize();
+ null != O[b] ? a.setReserved(b, c) : a.h[b] = c
+ }
+ this.pos++;
+ return a;
+ case 99:
+ a = this.unserialize();
+ b = this.resolver.resolveClass(a);
+ if (null == b) throw new D("Class not found " + a);
+ a = U.createEmptyInstance(b);
+ this.cache.push(a);
+ this.unserializeObject(a);
+ return a;
+ case 100:
+ return this.readFloat();
+ case 102:
+ return !1;
+ case 105:
+ return this.readDigits();
+ case 106:
+ a = this.unserialize();
+ b = this.resolver.resolveEnum(a);
+ if (null == b) throw new D("Enum not found " + a);
+ this.pos++;
+ var c = this.readDigits(),
+ d = b.__constructs__.slice()[c];
+ if (null == d) throw new D("Unknown enum index " + a + "@" +
+ c);
+ a = this.unserializeEnum(b, d);
+ this.cache.push(a);
+ return a;
+ case 107:
+ return NaN;
+ case 108:
+ a = new cc;
+ for (this.cache.push(a); 104 != this.buf.charCodeAt(this.pos);) a.add(this.unserialize());
+ this.pos++;
+ return a;
+ case 109:
+ return -Infinity;
+ case 110:
+ return null;
+ case 111:
+ return a = {}, this.cache.push(a), this.unserializeObject(a), a;
+ case 112:
+ return Infinity;
+ case 113:
+ a = new va;
+ this.cache.push(a);
+ for (b = this.buf.charCodeAt(this.pos++); 58 == b;) b = this.readDigits(), c = this.unserialize(), a.h[b] = c, b = this.buf.charCodeAt(this.pos++);
+ if (104 != b) throw new D("Invalid IntMap format");
+ return a;
+ case 114:
+ a = this.readDigits();
+ if (0 > a || a >= this.cache.length) throw new D("Invalid reference");
+ return this.cache[a];
+ case 115:
+ a = this.readDigits();
+ d = this.buf;
+ if (58 != this.buf.charCodeAt(this.pos++) || this.length - this.pos < a) throw new D("Invalid bytes length");
+ var e = Qa.CODES;
+ null == e && (e = Qa.initCodes(), Qa.CODES = e);
+ for (var p = this.pos, f = a & 3, g = p + (a - f), b = new Ja(new Nb(3 * (a >> 2) + (2 <= f ? f - 1 : 0))), c = 0; p < g;) {
+ var k = e[d.charCodeAt(p++)],
+ I = e[d.charCodeAt(p++)];
+ b.b[c++] =
+ (k << 2 | I >> 4) & 255;
+ k = e[d.charCodeAt(p++)];
+ b.b[c++] = (I << 4 | k >> 2) & 255;
+ I = e[d.charCodeAt(p++)];
+ b.b[c++] = (k << 6 | I) & 255
+ }
+ 2 <= f && (I = e[d.charCodeAt(p++)], g = e[d.charCodeAt(p++)], b.b[c++] = (I << 2 | g >> 4) & 255, 3 == f && (d = e[d.charCodeAt(p++)], b.b[c++] = (g << 4 | d >> 2) & 255));
+ this.pos += a;
+ this.cache.push(b);
+ return b;
+ case 116:
+ return !0;
+ case 118:
+ return 48 <= this.buf.charCodeAt(this.pos) && 57 >= this.buf.charCodeAt(this.pos) && 48 <= this.buf.charCodeAt(this.pos + 1) && 57 >= this.buf.charCodeAt(this.pos + 1) && 48 <= this.buf.charCodeAt(this.pos + 2) && 57 >=
+ this.buf.charCodeAt(this.pos + 2) && 48 <= this.buf.charCodeAt(this.pos + 3) && 57 >= this.buf.charCodeAt(this.pos + 3) && 45 == this.buf.charCodeAt(this.pos + 4) ? (a = J.strDate(J.substr(this.buf, this.pos, 19)), this.pos += 19) : (a = this.readFloat(), a = new Date(a)), this.cache.push(a), a;
+ case 119:
+ a = this.unserialize();
+ b = this.resolver.resolveEnum(a);
+ if (null == b) throw new D("Enum not found " + a);
+ a = this.unserializeEnum(b, this.unserialize());
+ this.cache.push(a);
+ return a;
+ case 120:
+ throw D.wrap(this.unserialize());
+ case 121:
+ a = this.readDigits();
+ if (58 != this.buf.charCodeAt(this.pos++) || this.length - this.pos < a) throw new D("Invalid string length");
+ b = J.substr(this.buf, this.pos, a);
+ this.pos += a;
+ b = decodeURIComponent(b.split("+").join(" "));
+ this.scache.push(b);
+ return b;
+ case 122:
+ return 0
+ }
+ this.pos--;
+ throw new D("Invalid char " + this.buf.charAt(this.pos) + " at position " + this.pos);
+ },
+ __class__: Qa
+ };
+ var ob = function() {};
+ s["haxe._Unserializer.NullResolver"] = ob;
+ ob.__name__ = ["haxe", "_Unserializer", "NullResolver"];
+ ob.prototype = {
+ resolveClass: function(a) {
+ return null
+ },
+ resolveEnum: function(a) {
+ return null
+ },
+ __class__: ob
+ };
+ var Ja = function(a) {
+ this.length = a.byteLength;
+ this.b = new hb(a);
+ this.b.bufferValue = a;
+ a.hxBytes = this;
+ a.bytes = this.b
+ };
+ s["haxe.io.Bytes"] = Ja;
+ Ja.__name__ = ["haxe", "io", "Bytes"];
+ Ja.alloc = function(a) {
+ return new Ja(new Nb(a))
+ };
+ Ja.ofString = function(a) {
+ for (var b = [], c = 0; c < a.length;) {
+ var d = a.charCodeAt(c++);
+ 55296 <= d && 56319 >= d && (d = d - 55232 << 10 | a.charCodeAt(c++) & 1023);
+ 127 >= d ? b.push(d) : (2047 >= d ? b.push(192 | d >> 6) : (65535 >= d ? b.push(224 | d >> 12) : (b.push(240 | d >> 18), b.push(128 |
+ d >> 12 & 63)), b.push(128 | d >> 6 & 63)), b.push(128 | d & 63))
+ }
+ return new Ja((new hb(b)).buffer)
+ };
+ Ja.ofData = function(a) {
+ var b = a.hxBytes;
+ return null != b ? b : new Ja(a)
+ };
+ Ja.fastGet = function(a, b) {
+ return a.bytes[b]
+ };
+ Ja.prototype = {
+ getString: function(a, b) {
+ if (0 > a || 0 > b || a + b > this.length) throw new D(Ka.OutsideBounds);
+ for (var c = "", d = this.b, e = String.fromCharCode, p = a, f = a + b; p < f;) {
+ var g = d[p++];
+ if (128 > g) {
+ if (0 == g) break;
+ c += e(g)
+ } else if (224 > g) c += e((g & 63) << 6 | d[p++] & 127);
+ else if (240 > g) var k = d[p++],
+ c = c + e((g & 31) << 12 | (k & 127) << 6 | d[p++] & 127);
+ else var k = d[p++],
+ I = d[p++],
+ g = (g & 15) << 18 | (k & 127) << 12 | (I & 127) << 6 | d[p++] & 127,
+ c = c + e((g >> 10) + 55232),
+ c = c + e(g & 1023 | 56320)
+ }
+ return c
+ },
+ toString: function() {
+ return this.getString(0, this.length)
+ },
+ __class__: Ja
+ };
+ var Ib = function() {};
+ s["haxe.crypto.Base64"] = Ib;
+ Ib.__name__ = ["haxe", "crypto", "Base64"];
+ Ib.decode = function(a, b) {
+ null == b && (b = !0);
+ if (b)
+ for (; 61 == J.cca(a, a.length - 1);) a = J.substr(a, 0, -1);
+ return (new Nc(Ib.BYTES)).decodeBytes(Ja.ofString(a))
+ };
+ var Nc = function(a) {
+ for (var b = a.length, c = 1; b > 1 << c;) ++c;
+ if (8 < c || b != 1 << c) throw new D("BaseCode : base length must be a power of two.");
+ this.base = a;
+ this.nbits = c
+ };
+ s["haxe.crypto.BaseCode"] = Nc;
+ Nc.__name__ = ["haxe", "crypto", "BaseCode"];
+ Nc.prototype = {
+ initTable: function() {
+ for (var a = [], b = 0; 256 > b;) {
+ var c = b++;
+ a[c] = -1
+ }
+ b = 0;
+ for (c = this.base.length; b < c;) {
+ var d = b++;
+ a[this.base.b[d]] = d
+ }
+ this.tbl = a
+ },
+ decodeBytes: function(a) {
+ var b = this.nbits;
+ null == this.tbl && this.initTable();
+ for (var c = this.tbl, d = a.length * b >> 3, e = new Ja(new Nb(d)), p = 0, f = 0, g = 0, k = 0; k < d;) {
+ for (; 8 > f;) {
+ var f = f + b,
+ p = p << b,
+ I = c[a.b[g++]];
+ if (-1 == I) throw new D("BaseCode : invalid encoded char");
+ p |=
+ I
+ }
+ f -= 8;
+ e.b[k++] = p >> f & 255
+ }
+ return e
+ },
+ __class__: Nc
+ };
+ var fc = function() {};
+ s["haxe.ds.BalancedTree"] = fc;
+ fc.__name__ = ["haxe", "ds", "BalancedTree"];
+ fc.prototype = {
+ set: function(a, b) {
+ this.root = this.setLoop(a, b, this.root)
+ },
+ get: function(a) {
+ for (var b = this.root; null != b;) {
+ var c = this.compare(a, b.key);
+ if (0 == c) return b.value;
+ b = 0 > c ? b.left : b.right
+ }
+ return null
+ },
+ exists: function(a) {
+ for (var b = this.root; null != b;) {
+ var c = this.compare(a, b.key);
+ if (0 == c) return !0;
+ b = 0 > c ? b.left : b.right
+ }
+ return !1
+ },
+ setLoop: function(a, b, c) {
+ if (null == c) return new wa(null,
+ a, b, null);
+ var d = this.compare(a, c.key);
+ if (0 == d) return new wa(c.left, a, b, c.right, null == c ? 0 : c._height);
+ if (0 > d) return a = this.setLoop(a, b, c.left), this.balance(a, c.key, c.value, c.right);
+ a = this.setLoop(a, b, c.right);
+ return this.balance(c.left, c.key, c.value, a)
+ },
+ balance: function(a, b, c, d) {
+ var e = null == a ? 0 : a._height,
+ p = null == d ? 0 : d._height;
+ return e > p + 2 ? (e = a.left, p = a.right, (null == e ? 0 : e._height) >= (null == p ? 0 : p._height) ? new wa(a.left, a.key, a.value, new wa(a.right, b, c, d)) : new wa(new wa(a.left, a.key, a.value, a.right.left),
+ a.right.key, a.right.value, new wa(a.right.right, b, c, d))) : p > e + 2 ? (e = d.right, p = d.left, (null == e ? 0 : e._height) > (null == p ? 0 : p._height) ? new wa(new wa(a, b, c, d.left), d.key, d.value, d.right) : new wa(new wa(a, b, c, d.left.left), d.left.key, d.left.value, new wa(d.left.right, d.key, d.value, d.right))) : new wa(a, b, c, d, (e > p ? e : p) + 1)
+ },
+ compare: function(a, b) {
+ return Z.compare(a, b)
+ },
+ __class__: fc
+ };
+ var wa = function(a, b, c, d, e) {
+ null == e && (e = -1);
+ this.left = a;
+ this.key = b;
+ this.value = c;
+ this.right = d; - 1 == e ? (a = this.left, b = this.right, a = (null == a ?
+ 0 : a._height) > (null == b ? 0 : b._height) ? this.left : this.right, a = null == a ? 0 : a._height, this._height = a + 1) : this._height = e
+ };
+ s["haxe.ds.TreeNode"] = wa;
+ wa.__name__ = ["haxe", "ds", "TreeNode"];
+ wa.prototype = {
+ __class__: wa
+ };
+ var Jb = function() {};
+ s["haxe.ds.EnumValueMap"] = Jb;
+ Jb.__name__ = ["haxe", "ds", "EnumValueMap"];
+ Jb.__interfaces__ = [dc];
+ Jb.__super__ = fc;
+ Jb.prototype = R(fc.prototype, {
+ compare: function(a, b) {
+ var c = a[1] - b[1];
+ if (0 != c) return c;
+ var c = a.slice(2),
+ d = b.slice(2);
+ return 0 == c.length && 0 == d.length ? 0 : this.compareArgs(c, d)
+ },
+ compareArgs: function(a, b) {
+ var c = a.length - b.length;
+ if (0 != c) return c;
+ for (var c = 0, d = a.length; c < d;) {
+ var e = c++,
+ e = this.compareArg(a[e], b[e]);
+ if (0 != e) return e
+ }
+ return 0
+ },
+ compareArg: function(a, b) {
+ return Z.isEnumValue(a) && Z.isEnumValue(b) ? this.compare(a, b) : a instanceof Array && null == a.__enum__ && b instanceof Array && null == b.__enum__ ? this.compareArgs(a, b) : Z.compare(a, b)
+ },
+ __class__: Jb
+ });
+ var va = function() {
+ this.h = {}
+ };
+ s["haxe.ds.IntMap"] = va;
+ va.__name__ = ["haxe", "ds", "IntMap"];
+ va.__interfaces__ = [dc];
+ va.prototype = {
+ remove: function(a) {
+ if (!this.h.hasOwnProperty(a)) return !1;
+ delete this.h[a];
+ return !0
+ },
+ keys: function() {
+ var a = [],
+ b;
+ for (b in this.h) this.h.hasOwnProperty(b) && a.push(b | 0);
+ return J.iter(a)
+ },
+ __class__: va
+ };
+ var ad = function() {};
+ s["haxe.io.Eof"] = ad;
+ ad.__name__ = ["haxe", "io", "Eof"];
+ ad.prototype = {
+ toString: function() {
+ return "Eof"
+ },
+ __class__: ad
+ };
+ var Ka = s["haxe.io.Error"] = {
+ __ename__: ["haxe", "io", "Error"],
+ __constructs__: ["Blocked", "Overflow", "OutsideBounds", "Custom"]
+ };
+ Ka.Blocked = ["Blocked", 0];
+ Ka.Blocked.toString = F;
+ Ka.Blocked.__enum__ = Ka;
+ Ka.Overflow = ["Overflow", 1];
+ Ka.Overflow.toString =
+ F;
+ Ka.Overflow.__enum__ = Ka;
+ Ka.OutsideBounds = ["OutsideBounds", 2];
+ Ka.OutsideBounds.toString = F;
+ Ka.OutsideBounds.__enum__ = Ka;
+ Ka.Custom = function(a) {
+ a = ["Custom", 3, a];
+ a.__enum__ = Ka;
+ a.toString = F;
+ return a
+ };
+ var Ua = function() {};
+ s["haxe.io.FPHelper"] = Ua;
+ Ua.__name__ = ["haxe", "io", "FPHelper"];
+ Ua.i32ToFloat = function(a) {
+ var b = a >>> 23 & 255,
+ c = a & 8388607;
+ return 0 == c && 0 == b ? 0 : (1 - (a >>> 31 << 1)) * (1 + Math.pow(2, -23) * c) * Math.pow(2, b - 127)
+ };
+ Ua.floatToI32 = function(a) {
+ if (0 == a) return 0;
+ var b = 0 > a ? -a : a,
+ c = Math.floor(Math.log(b) / 0.6931471805599453); -
+ 127 > c ? c = -127 : 128 < c && (c = 128);
+ b = Math.round(8388608 * (b / Math.pow(2, c) - 1));
+ 8388608 == b && 128 > c && (b = 0, ++c);
+ return (0 > a ? -2147483648 : 0) | c + 127 << 23 | b
+ };
+ Ua.i64ToDouble = function(a, b) {
+ var c = (b >> 20 & 2047) - 1023,
+ d = 4294967296 * (b & 1048575) + 2147483648 * (a >>> 31) + (a & 2147483647);
+ return 0 == d && -1023 == c ? 0 : (1 - (b >>> 31 << 1)) * (1 + Math.pow(2, -52) * d) * Math.pow(2, c)
+ };
+ Ua.doubleToI64 = function(a) {
+ var b = Ua.i64tmp;
+ if (0 == a) b.low = 0, b.high = 0;
+ else if (isFinite(a)) {
+ var c = 0 > a ? -a : a,
+ d = Math.floor(Math.log(c) / 0.6931471805599453),
+ c = Math.round(4503599627370496 *
+ (c / Math.pow(2, d) - 1));
+ b.low = c | 0;
+ b.high = (0 > a ? -2147483648 : 0) | d + 1023 << 20 | c / 4294967296 | 0
+ } else 0 < a ? (b.low = 0, b.high = 2146435072) : (b.low = 0, b.high = -1048576);
+ return b
+ };
+ var qa = function(a, b, c) {
+ this.xml = b;
+ this.message = a;
+ this.position = c;
+ this.lineNumber = 1;
+ for (a = this.positionAtLine = 0; a < c;) {
+ var d = a++,
+ d = b.charCodeAt(d);
+ 10 == d ? (this.lineNumber++, this.positionAtLine = 0) : 13 != d && this.positionAtLine++
+ }
+ };
+ s["haxe.xml.XmlParserException"] = qa;
+ qa.__name__ = ["haxe", "xml", "XmlParserException"];
+ qa.prototype = {
+ toString: function() {
+ return U.getClassName(S.getClass(this)) +
+ ": " + this.message + " at line " + this.lineNumber + " char " + this.positionAtLine
+ },
+ __class__: qa
+ };
+ var Ab = function() {};
+ s["haxe.xml.Parser"] = Ab;
+ Ab.__name__ = ["haxe", "xml", "Parser"];
+ Ab.parse = function(a, b) {
+ null == b && (b = !1);
+ var c = B.createDocument();
+ Ab.doParse(a, b, 0, c);
+ return c
+ };
+ Ab.doParse = function(a, b, c, d) {
+ null == c && (c = 0);
+ for (var e = null, p = 1, f = 1, g = null, k = 0, I = 0, h = 0, w = a.charCodeAt(c), m = new nb, l = 1, s = -1; w == w;) {
+ switch (p) {
+ case 0:
+ switch (w) {
+ case 9:
+ case 10:
+ case 13:
+ case 32:
+ break;
+ default:
+ p = f;
+ continue
+ }
+ break;
+ case 1:
+ if (60 == w) p =
+ 0, f = 2;
+ else {
+ k = c;
+ p = 13;
+ continue
+ }
+ break;
+ case 2:
+ switch (w) {
+ case 33:
+ if (91 == a.charCodeAt(c + 1)) {
+ c += 2;
+ if ("CDATA[" != J.substr(a, c, 6).toUpperCase()) throw new D(new qa("Expected = w || 65 <= w && 90 >= w || 48 <= w && 57 >= w || 58 == w || 46 == w || 95 == w || 45 == w)) {
+ if (c == k) throw new D(new qa("Expected node name", a, c));
+ e = B.createElement(J.substr(a, k, c - k));
+ d.addChild(e);
+ ++I;
+ p = 0;
+ f = 4;
+ continue
+ }
+ break;
+ case 4:
+ switch (w) {
+ case 47:
+ p = 11;
+ break;
+ case 62:
+ p = 9;
+ break;
+ default:
+ p = 5;
+ k = c;
+ continue
+ }
+ break;
+ case 5:
+ if (!(97 <= w && 122 >= w || 65 <= w && 90 >= w || 48 <= w && 57 >= w || 58 == w || 46 == w || 95 == w || 45 == w)) {
+ if (k == c) throw new D(new qa("Expected attribute name",
+ a, c));
+ g = J.substr(a, k, c - k);
+ if (e.exists(g)) throw new D(new qa("Duplicate attribute [" + g + "]", a, c));
+ p = 0;
+ f = 6;
+ continue
+ }
+ break;
+ case 6:
+ if (61 == w) p = 0, f = 7;
+ else throw new D(new qa("Expected =", a, c));
+ break;
+ case 7:
+ switch (w) {
+ case 34:
+ case 39:
+ m = new nb;
+ p = 8;
+ k = c + 1;
+ s = w;
+ break;
+ default:
+ throw new D(new qa('Expected "', a, c));
+ }
+ break;
+ case 8:
+ switch (w) {
+ case 38:
+ l = c - k;
+ m.b += null == l ? J.substr(a, k, null) : J.substr(a, k, l);
+ p = 18;
+ l = 8;
+ k = c + 1;
+ break;
+ case 60:
+ case 62:
+ if (b) throw new D(new qa("Invalid unescaped " + String.fromCharCode(w) + " in attribute value",
+ a, c));
+ w == s && (f = c - k, m.b += null == f ? J.substr(a, k, null) : J.substr(a, k, f), f = m.b, m = new nb, e.set(g, f), p = 0, f = 4);
+ break;
+ default:
+ w == s && (f = c - k, m.b += null == f ? J.substr(a, k, null) : J.substr(a, k, f), f = m.b, m = new nb, e.set(g, f), p = 0, f = 4)
+ }
+ break;
+ case 9:
+ k = c = Ab.doParse(a, b, c, e);
+ p = 1;
+ break;
+ case 10:
+ if (!(97 <= w && 122 >= w || 65 <= w && 90 >= w || 48 <= w && 57 >= w || 58 == w || 46 == w || 95 == w || 45 == w)) {
+ if (k == c) throw new D(new qa("Expected node name", a, c));
+ f = J.substr(a, k, c - k);
+ if (d.nodeType != B.Element) throw new D("Bad node type, expected Element but found " + d.nodeType);
+ if (f != d.nodeName) {
+ if (d.nodeType != B.Element) throw new D("Bad node type, expected Element but found " + d.nodeType);
+ throw new D(new qa("Expected " + d.nodeName + ">", a, c));
+ }
+ p = 0;
+ f = 12;
+ continue
+ }
+ break;
+ case 11:
+ if (62 == w) p = 1;
+ else throw new D(new qa("Expected >", a, c));
+ break;
+ case 12:
+ if (62 == w) return 0 == I && d.addChild(B.createPCData("")), c;
+ throw new D(new qa("Expected >", a, c));
+ case 13:
+ 60 == w ? (f = c - k, m.b += null == f ? J.substr(a, k, null) : J.substr(a, k, f), f = B.createPCData(m.b), m = new nb, d.addChild(f), ++I, p = 0, f = 2) : 38 == w && (l = c -
+ k, m.b += null == l ? J.substr(a, k, null) : J.substr(a, k, l), p = 18, l = 13, k = c + 1);
+ break;
+ case 14:
+ 63 == w && 62 == a.charCodeAt(c + 1) && (++c, w = J.substr(a, k + 1, c - k - 2), d.addChild(B.createProcessingInstruction(w)), ++I, p = 1);
+ break;
+ case 15:
+ 45 == w && 45 == a.charCodeAt(c + 1) && 62 == a.charCodeAt(c + 2) && (d.addChild(B.createComment(J.substr(a, k, c - k))), ++I, c += 2, p = 1);
+ break;
+ case 16:
+ 91 == w ? ++h : 93 == w ? --h : 62 == w && 0 == h && (d.addChild(B.createDocType(J.substr(a, k, c - k))), ++I, p = 1);
+ break;
+ case 17:
+ 93 == w && 93 == a.charCodeAt(c + 1) && 62 == a.charCodeAt(c + 2) && (w = B.createCData(J.substr(a,
+ k, c - k)), d.addChild(w), ++I, c += 2, p = 1);
+ break;
+ case 18:
+ if (59 == w) {
+ k = J.substr(a, k, c - k);
+ if (35 == k.charCodeAt(0)) k = 120 == k.charCodeAt(1) ? K.parseInt("0" + J.substr(k, 1, k.length - 1)) : K.parseInt(J.substr(k, 1, k.length - 1)), m.b += String.fromCharCode(k);
+ else if (w = Ab.escapes, null != O[k] ? w.existsReserved(k) : w.h.hasOwnProperty(k)) w = Ab.escapes, k = null != O[k] ? w.getReserved(k) : w.h[k], m.b += K.string(k);
+ else {
+ if (b) throw new D(new qa("Undefined entity: " + k, a, c));
+ m.b += K.string("&" + k + ";")
+ }
+ k = c + 1;
+ p = l
+ } else if (!(97 <= w && 122 >= w || 65 <= w && 90 >=
+ w || 48 <= w && 57 >= w || 58 == w || 46 == w || 95 == w || 45 == w) && 35 != w) {
+ if (b) throw new D(new qa("Invalid character in entity: " + String.fromCharCode(w), a, c));
+ m.b += "&";
+ w = c - k;
+ m.b += null == w ? J.substr(a, k, null) : J.substr(a, k, w);
+ k = c--;
+ p = l
+ }
+ }
+ w = a.charCodeAt(++c)
+ }
+ 1 == p && (k = c, p = 13);
+ if (13 == p) {
+ if (c != k || 0 == I) b = c - k, m.b += null == b ? J.substr(a, k, null) : J.substr(a, k, b), d.addChild(B.createPCData(m.b));
+ return c
+ }
+ if (!b && 18 == p && 13 == l) return m.b += "&", b = c - k, m.b += null == b ? J.substr(a, k, null) : J.substr(a, k, b), d.addChild(B.createPCData(m.b)), c;
+ throw new D(new qa("Unexpected end",
+ a, c));
+ };
+ var db = function(a) {
+ this.output = new nb;
+ this.pretty = a
+ };
+ s["haxe.xml.Printer"] = db;
+ db.__name__ = ["haxe", "xml", "Printer"];
+ db.print = function(a, b) {
+ null == b && (b = !1);
+ var c = new db(b);
+ c.writeNode(a, "");
+ return c.output.b
+ };
+ db.prototype = {
+ writeNode: function(a, b) {
+ switch (a.nodeType) {
+ case 0:
+ this.output.b += K.string(b + "<");
+ if (a.nodeType != B.Element) throw new D("Bad node type, expected Element but found " + a.nodeType);
+ this.output.b += K.string(a.nodeName);
+ for (var c = a.attributes(); c.hasNext();) {
+ var d = c.next();
+ this.output.b +=
+ K.string(" " + d + '="');
+ d = ma.htmlEscape(a.get(d), !0);
+ this.output.b += K.string(d);
+ this.output.b += '"'
+ }
+ if (this.hasChildren(a)) {
+ this.output.b += ">";
+ this.pretty && (this.output.b += "\n");
+ if (a.nodeType != B.Document && a.nodeType != B.Element) throw new D("Bad node type, expected Element or Document but found " + a.nodeType);
+ for (c = J.iter(a.children); c.hasNext();) d = c.next(), this.writeNode(d, this.pretty ? b + "\t" : b);
+ this.output.b += K.string(b + "");
+ if (a.nodeType != B.Element) throw new D("Bad node type, expected Element but found " +
+ a.nodeType);
+ this.output.b += K.string(a.nodeName);
+ this.output.b += ">"
+ } else this.output.b += "/>";
+ this.pretty && (this.output.b += "\n");
+ break;
+ case 1:
+ if (a.nodeType == B.Document || a.nodeType == B.Element) throw new D("Bad node type, unexpected " + a.nodeType);
+ c = a.nodeValue;
+ 0 != c.length && (c = b + ma.htmlEscape(c), this.output.b += K.string(c), this.pretty && (this.output.b += "\n"));
+ break;
+ case 2:
+ this.output.b += K.string(b + "");
+ this.pretty && (this.output.b += "\n");
+ break;
+ case 5:
+ if (a.nodeType == B.Document || a.nodeType == B.Element) throw new D("Bad node type, unexpected " + a.nodeType);
+ this.output.b += K.string("" + a.nodeValue + "?>");
+ this.pretty && (this.output.b += "\n");
+ break;
+ case 6:
+ if (a.nodeType != B.Document && a.nodeType != B.Element) throw new D("Bad node type, expected Element or Document but found " + a.nodeType);
+ for (c = J.iter(a.children); c.hasNext();) d = c.next(), this.writeNode(d,
+ b)
+ }
+ },
+ hasChildren: function(a) {
+ if (a.nodeType != B.Document && a.nodeType != B.Element) throw new D("Bad node type, expected Element or Document but found " + a.nodeType);
+ for (a = J.iter(a.children); a.hasNext();) {
+ var b = a.next();
+ switch (b.nodeType) {
+ case 0:
+ case 1:
+ return !0;
+ case 2:
+ case 3:
+ if (b.nodeType == B.Document || b.nodeType == B.Element) throw new D("Bad node type, unexpected " + b.nodeType);
+ if (0 != ma.ltrim(b.nodeValue).length) return !0
+ }
+ }
+ return !1
+ },
+ __class__: db
+ };
+ var D = function(a) {
+ Error.call(this);
+ this.val = a;
+ this.message = String(a);
+ Error.captureStackTrace && Error.captureStackTrace(this, D)
+ };
+ s["js._Boot.HaxeError"] = D;
+ D.__name__ = ["js", "_Boot", "HaxeError"];
+ D.wrap = function(a) {
+ return a instanceof Error ? a : new D(a)
+ };
+ D.__super__ = Error;
+ D.prototype = R(Error.prototype, {
+ __class__: D
+ });
+ var bd = function() {};
+ s["js.Browser"] = bd;
+ bd.__name__ = ["js", "Browser"];
+ bd.getLocalStorage = function() {
+ try {
+ var a = window.localStorage;
+ a.getItem("");
+ return a
+ } catch (b) {
+ return null
+ }
+ };
+ var Za = function(a) {
+ if (a instanceof Array && null == a.__enum__) this.a = a, this.byteLength = a.length;
+ else {
+ this.a = [];
+ for (var b = 0; b < a;) {
+ var c = b++;
+ this.a[c] = 0
+ }
+ this.byteLength = a
+ }
+ };
+ s["js.html.compat.ArrayBuffer"] = Za;
+ Za.__name__ = ["js", "html", "compat", "ArrayBuffer"];
+ Za.sliceImpl = function(a, b) {
+ var c = new hb(this, a, null == b ? null : b - a),
+ d = new Nb(c.byteLength);
+ (new hb(d)).set(c);
+ return d
+ };
+ Za.prototype = {
+ slice: function(a, b) {
+ return new Za(this.a.slice(a, b))
+ },
+ __class__: Za
+ };
+ var Oc = function(a, b, c) {
+ this.buf = a;
+ this.offset = null == b ? 0 : b;
+ this.length = null == c ? a.byteLength - this.offset : c;
+ if (0 > this.offset || 0 > this.length || this.offset +
+ this.length > a.byteLength) throw new D(Ka.OutsideBounds);
+ this.byteLength = this.length;
+ this.byteOffset = this.offset;
+ this.buffer = this.buf
+ };
+ s["js.html.compat.DataView"] = Oc;
+ Oc.__name__ = ["js", "html", "compat", "DataView"];
+ Oc.prototype = {
+ getInt8: function(a) {
+ a = this.buf.a[this.offset + a];
+ return 128 <= a ? a - 256 : a
+ },
+ getUint8: function(a) {
+ return this.buf.a[this.offset + a]
+ },
+ getInt16: function(a, b) {
+ var c = this.getUint16(a, b);
+ return 32768 <= c ? c - 65536 : c
+ },
+ getUint16: function(a, b) {
+ return b ? this.buf.a[this.offset + a] | this.buf.a[this.offset +
+ a + 1] << 8 : this.buf.a[this.offset + a] << 8 | this.buf.a[this.offset + a + 1]
+ },
+ getInt32: function(a, b) {
+ var c = this.offset + a,
+ d = this.buf.a[c++],
+ e = this.buf.a[c++],
+ f = this.buf.a[c++],
+ c = this.buf.a[c++];
+ return b ? d | e << 8 | f << 16 | c << 24 : c | f << 8 | e << 16 | d << 24
+ },
+ getUint32: function(a, b) {
+ var c = this.getInt32(a, b);
+ return 0 > c ? c + 4294967296 : c
+ },
+ getFloat32: function(a, b) {
+ return Ua.i32ToFloat(this.getInt32(a, b))
+ },
+ getFloat64: function(a, b) {
+ var c = this.getInt32(a, b),
+ d = this.getInt32(a + 4, b);
+ return Ua.i64ToDouble(b ? c : d, b ? d : c)
+ },
+ setInt8: function(a, b) {
+ this.buf.a[a +
+ this.offset] = 0 > b ? b + 128 & 255 : b & 255
+ },
+ setUint8: function(a, b) {
+ this.buf.a[a + this.offset] = b & 255
+ },
+ setInt16: function(a, b, c) {
+ this.setUint16(a, 0 > b ? b + 65536 : b, c)
+ },
+ setUint16: function(a, b, c) {
+ a += this.offset;
+ c ? (this.buf.a[a] = b & 255, this.buf.a[a++] = b >> 8 & 255) : (this.buf.a[a++] = b >> 8 & 255, this.buf.a[a] = b & 255)
+ },
+ setInt32: function(a, b, c) {
+ this.setUint32(a, b, c)
+ },
+ setUint32: function(a, b, c) {
+ a += this.offset;
+ c ? (this.buf.a[a++] = b & 255, this.buf.a[a++] = b >> 8 & 255, this.buf.a[a++] = b >> 16 & 255, this.buf.a[a++] = b >>> 24) : (this.buf.a[a++] = b >>> 24,
+ this.buf.a[a++] = b >> 16 & 255, this.buf.a[a++] = b >> 8 & 255, this.buf.a[a++] = b & 255)
+ },
+ setFloat32: function(a, b, c) {
+ this.setUint32(a, Ua.floatToI32(b), c)
+ },
+ setFloat64: function(a, b, c) {
+ b = Ua.doubleToI64(b);
+ c ? (this.setUint32(a, b.low), this.setUint32(a, b.high)) : (this.setUint32(a, b.high), this.setUint32(a, b.low))
+ },
+ __class__: Oc
+ };
+ var pb = function() {};
+ s["js.html.compat.Uint8Array"] = pb;
+ pb.__name__ = ["js", "html", "compat", "Uint8Array"];
+ pb._new = function(a, b, c) {
+ if ("number" == typeof a) {
+ c = [];
+ for (b = 0; b < a;) {
+ var d = b++;
+ c[d] = 0
+ }
+ c.byteLength =
+ c.length;
+ c.byteOffset = 0;
+ c.buffer = new Za(c)
+ } else if (S.__instanceof(a, Za)) null == b && (b = 0), null == c && (c = a.byteLength - b), c = 0 == b ? a.a : a.a.slice(b, b + c), c.byteLength = c.length, c.byteOffset = b, c.buffer = a;
+ else if (a instanceof Array && null == a.__enum__) c = a.slice(), c.byteLength = c.length, c.byteOffset = 0, c.buffer = new Za(c);
+ else throw new D("TODO " + K.string(a));
+ c.subarray = pb._subarray;
+ c.set = pb._set;
+ return c
+ };
+ pb._set = function(a, b) {
+ if (S.__instanceof(a.buffer, Za)) {
+ if (a.byteLength + b > this.byteLength) throw new D("set() outside of range");
+ for (var c = 0, d = a.byteLength; c < d;) {
+ var e = c++;
+ this[e + b] = a[e]
+ }
+ } else if (a instanceof Array && null == a.__enum__) {
+ if (a.length + b > this.byteLength) throw new D("set() outside of range");
+ c = 0;
+ for (d = a.length; c < d;) e = c++, this[e + b] = a[e]
+ } else throw new D("TODO");
+ };
+ pb._subarray = function(a, b) {
+ var c = pb._new(this.slice(a, b));
+ c.byteOffset = a;
+ return c
+ };
+ var Pc = function() {
+ this.__enabled = !0;
+ this.bitmapData = new X;
+ this.font = new X;
+ this.sound = new X
+ };
+ s["openfl.AssetCache"] = Pc;
+ Pc.__name__ = ["openfl", "AssetCache"];
+ Pc.prototype = {
+ get_enabled: function() {
+ return this.__enabled
+ },
+ __class__: Pc,
+ __properties__: {
+ get_enabled: "get_enabled"
+ }
+ };
+ var la = function() {};
+ s["openfl.Assets"] = la;
+ la.__name__ = ["openfl", "Assets"];
+ la.getBitmapData = function(a, b) {
+ null == b && (b = !0);
+ la.initialize();
+ var c = null,
+ d, e, f;
+ b ? (d = la.cache, f = d.get_enabled()) : f = !1;
+ f ? (f = d.bitmapData, f = null != O[a] ? f.existsReserved(a) : f.h.hasOwnProperty(a)) : f = !1;
+ f ? (e = la.cache.bitmapData, e = null != O[a] ? e.getReserved(a) : e.h[a], f = !0) : f = !1;
+ if (f) return e;
+ f = a.indexOf(":");
+ e = a.substring(0, f);
+ f = a.substring(f + 1);
+ e = la.getLibrary(e);
+ null != e && e.exists(f,
+ Y.IMAGE) && (c = e.getBitmapData(f), b ? d.get_enabled() && (d = d.bitmapData, null != O[a] ? d.setReserved(a, c) : d.h[a] = c) : c = c.clone());
+ return c
+ };
+ la.getLibrary = function(a) {
+ var b = la.libraries;
+ a = null == a || "" == a ? "default" : a;
+ return null != O[a] ? b.getReserved(a) : b.h[a]
+ };
+ la.initialize = function() {
+ la.initialized || (la.registerLibrary("default", new Ub), la.initialized = !0)
+ };
+ la.registerLibrary = function(a, b) {
+ var c = la.libraries;
+ (null != O[a] ? c.existsReserved(a) : c.h.hasOwnProperty(a)) && la.unloadLibrary(a);
+ c = la.libraries;
+ null != O[a] ? c.setReserved(a,
+ b) : c.h[a] = b
+ };
+ la.unloadLibrary = function(a) {
+ la.initialize();
+ for (var b = la.cache.bitmapData.keys(); b.hasNext();) {
+ var c = b.next();
+ c.substring(0, c.indexOf(":")) == a && la.cache.bitmapData.remove(c)
+ }
+ la.libraries.remove(a)
+ };
+ var Y = s["openfl.AssetType"] = {
+ __ename__: ["openfl", "AssetType"],
+ __constructs__: "BINARY FONT IMAGE MOVIE_CLIP MUSIC SOUND TEMPLATE TEXT".split(" ")
+ };
+ Y.BINARY = ["BINARY", 0];
+ Y.BINARY.toString = F;
+ Y.BINARY.__enum__ = Y;
+ Y.FONT = ["FONT", 1];
+ Y.FONT.toString = F;
+ Y.FONT.__enum__ = Y;
+ Y.IMAGE = ["IMAGE", 2];
+ Y.IMAGE.toString =
+ F;
+ Y.IMAGE.__enum__ = Y;
+ Y.MOVIE_CLIP = ["MOVIE_CLIP", 3];
+ Y.MOVIE_CLIP.toString = F;
+ Y.MOVIE_CLIP.__enum__ = Y;
+ Y.MUSIC = ["MUSIC", 4];
+ Y.MUSIC.toString = F;
+ Y.MUSIC.__enum__ = Y;
+ Y.SOUND = ["SOUND", 5];
+ Y.SOUND.toString = F;
+ Y.SOUND.__enum__ = Y;
+ Y.TEMPLATE = ["TEMPLATE", 6];
+ Y.TEMPLATE.toString = F;
+ Y.TEMPLATE.__enum__ = Y;
+ Y.TEXT = ["TEXT", 7];
+ Y.TEXT.toString = F;
+ Y.TEXT.__enum__ = Y;
+ var Sa = function(a, b, c) {
+ Fa.call(this);
+ this.set_bitmapData(a)
+ };
+ s["openfl.display.Bitmap"] = Sa;
+ Sa.__name__ = ["openfl", "display", "Bitmap"];
+ Sa.__interfaces__ = [Pa];
+ Sa.__super__ =
+ Fa;
+ Sa.prototype = R(Fa.prototype, {
+ set_bitmapData: function(a) {
+ null != this.bitmapData && this.component.removeChild(this.bitmapData.component);
+ null != a && this.component.appendChild(a.handle());
+ return this.bitmapData = a
+ },
+ get_width: function() {
+ return null != this.__width ? this.__width : null != this.bitmapData ? this.bitmapData.component.width : 0
+ },
+ get_height: function() {
+ return null != this.__height ? this.__height : null != this.bitmapData ? this.bitmapData.component.height : 0
+ },
+ drawToSurface: function(a, b, c, d, e, f, r) {
+ this.bitmapData.drawToSurface(a,
+ b, c, d, e, f, r)
+ },
+ hitTestLocal: function(a, b, c, d) {
+ return (!d || this.visible) && null != this.bitmapData && 0 <= a && 0 <= b && a < this.bitmapData.component.width ? b < this.bitmapData.component.height : !1
+ },
+ __class__: Sa,
+ __properties__: R(Fa.prototype.__properties__, {
+ set_bitmapData: "set_bitmapData"
+ })
+ });
+ var cd = function() {};
+ s["openfl.display.IGraphics"] = cd;
+ cd.__name__ = ["openfl", "display", "IGraphics"];
+ cd.__interfaces__ = [Pa];
+ var ub = function() {
+ this.rgPending = !1;
+ this.synced = !0;
+ this.component = H.jsNode("canvas");
+ this.context = this.component.getContext("2d",
+ null);
+ this.context.save();
+ this.bounds = new pa;
+ this.resetBounds();
+ this.irec = [];
+ this.frec = [];
+ this.arec = [];
+ this.lineWidth = this.ilen = this.flen = this.alen = 0
+ };
+ s["openfl.display.Graphics"] = ub;
+ ub.__name__ = ["openfl", "display", "Graphics"];
+ ub.__interfaces__ = [cd, Pa];
+ ub.prototype = {
+ regenerate: function() {
+ var a = this.component,
+ b = this.component.style,
+ c = this.context,
+ d = this.bounds,
+ e = ~~(d.x - 2),
+ f = ~~(d.y - 2),
+ r = Math.ceil(d.width + 4),
+ g = Math.ceil(d.height + 4);
+ this.synced = !0;
+ this.rgPending = !1;
+ if (0 >= d.width || 0 >= d.height) a.width =
+ a.height = 1, b.top = b.left = "0";
+ else {
+ if (this.offsetX != e || this.offsetY != f) b.left = (this.offsetX = e) + "px", b.top = (this.offsetY = f) + "px";
+ r != a.width || g != a.height ? (a.width = r, a.height = g) : c.clearRect(0, 0, r, g);
+ c.save();
+ c.translate(-e, -f);
+ this.render(a, c);
+ c.restore()
+ }
+ },
+ regenerateTask: function() {
+ this.rgPending && this.regenerate()
+ },
+ requestRegeneration: function() {
+ H.schedule(ea(this, this.regenerateTask));
+ this.rgPending = !0
+ },
+ set_displayObject: function(a) {
+ this.displayObject != a && (this.displayObject = a, this.synced || this.requestRegeneration());
+ return a
+ },
+ resetBounds: function() {
+ this.bounds.setVoid();
+ this.invalidate()
+ },
+ grab: function(a, b, c, d) {
+ var e = this.bounds.x;
+ a < e && (e -= a, this.bounds.x -= e, this.bounds.width += e);
+ e = this.bounds.y;
+ b < e && (e -= b, this.bounds.y -= e, this.bounds.height += e);
+ a = this.bounds;
+ e = a.x + a.width;
+ c > e && (this.bounds.width += c - e);
+ c = this.bounds;
+ e = c.y + c.height;
+ d > e && (this.bounds.height += d - e);
+ this.invalidate()
+ },
+ invalidate: function() {
+ this.synced && (this.synced = !1, this.rgPending || null == this.displayObject || null == this.displayObject.get_stage() ||
+ this.requestRegeneration())
+ },
+ clear: function() {
+ for (var a = 0; a < this.alen;) this.arec[a++] = null;
+ this.lineWidth = this.ilen = this.flen = this.alen = 0;
+ this.resetBounds();
+ this.invalidate()
+ },
+ lineStyle: function(a, b, c, d, e, f, r, g) {
+ this.irec[this.ilen++] = 1;
+ this.frec[this.flen++] = this.lineWidth = 0 < a ? a : 0;
+ 0 < a && (a = H.rgbf(null != b ? b : 0, null != c ? c : 1), this.arec[this.alen++] = a, this.irec[this.ilen++] = "none" == f ? 2 : "square" == f ? 1 : 0, this.irec[this.ilen++] = "bevel" == r ? 2 : "miter" == r ? 1 : 0)
+ },
+ beginFill: function(a, b) {
+ this.irec[this.ilen++] = 2;
+ var c = H.rgbf(null != a ? a : 0, null != b ? b : 1);
+ this.arec[this.alen++] = c
+ },
+ beginBitmapFill: function(a, b, c, d) {
+ this.irec[this.ilen++] = 3;
+ this.arec[this.alen++] = a;
+ this.irec[this.ilen++] = !1 != c ? 1 : 0;
+ a = null != b ? 1 : 0;
+ if (this.irec[this.ilen++] = a) a = this.frec, c = this.flen, a[c++] = b.a, a[c++] = b.b, a[c++] = b.c, a[c++] = b.d, a[c++] = b.tx, a[c++] = b.ty, this.flen = c
+ },
+ endFill: function() {
+ this.irec[this.ilen++] = 9;
+ this.invalidate()
+ },
+ moveTo: function(a, b) {
+ this.irec[this.ilen++] = 10;
+ this.frec[this.flen++] = a;
+ this.frec[this.flen++] = b;
+ var c = this.lineWidth /
+ 2;
+ this.grab(a - c, b - c, a + c, b + c)
+ },
+ lineTo: function(a, b) {
+ this.irec[this.ilen++] = 11;
+ this.frec[this.flen++] = a;
+ this.frec[this.flen++] = b;
+ var c = this.lineWidth / 2;
+ this.grab(a - c, b - c, a + c, b + c)
+ },
+ drawRect: function(a, b, c, d) {
+ this.irec[this.ilen++] = 13;
+ var e = this.frec,
+ f = this.flen;
+ e[f++] = a;
+ e[f++] = b;
+ e[f++] = c;
+ e[f++] = d;
+ this.flen = f;
+ e = this.lineWidth / 2;
+ this.grab(a - e, b - e, a + c + e, b + d + e)
+ },
+ drawCircle: function(a, b, c) {
+ this.irec[this.ilen++] = 14;
+ var d = this.frec,
+ e = this.flen;
+ d[e++] = a;
+ d[e++] = b;
+ d[e++] = c;
+ this.flen = e;
+ c += this.lineWidth / 2;
+ this.grab(a -
+ c, b - c, a + c, b + c)
+ },
+ drawToSurface: function(a, b, c, d, e, f, r) {
+ b.save();
+ null != c && b.transform(c.a, c.b, c.c, c.d, c.tx, c.ty);
+ this.render(a, b);
+ b.restore()
+ },
+ hitTestLocal: function(a, b, c) {
+ if (this.bounds.contains(a, b)) {
+ if (c) {
+ this.synced || this.regenerate();
+ try {
+ return 0 != this.context.getImageData(a - this.offsetX, b - this.offsetY, 1, 1).data[3]
+ } catch (d) {}
+ }
+ return !0
+ }
+ return !1
+ },
+ _closePath: function(a, b, c, d, e) {
+ c & 1 && (b.closePath(), c & 4 ? (b.save(), b.transform(d.a, d.b, d.c, d.d, d.tx, d.ty), b.fillStyle = b.createPattern(e, c & 8 ? "repeat" : "no-repeat"),
+ b.fill(), b.restore()) : b.fill());
+ c & 2 && b.stroke();
+ b.beginPath();
+ return c
+ },
+ render: function(a, b) {
+ var c = 0,
+ d = this._drawMatrix,
+ e, f, r, g = 0,
+ k = null,
+ h = this.irec,
+ m = -1,
+ w = this.ilen - 1,
+ l = this.arec,
+ s = -1,
+ n = this.frec,
+ q = -1;
+ null == d && (this._drawMatrix = d = new na);
+ b.save();
+ try {
+ for (; m < w;) switch (f = h[++m], f) {
+ case 0:
+ throw "__break__";
+ case 1:
+ 0 < g && (c = this._closePath(a, b, c, d, k));
+ r = n[++q];
+ b.lineWidth = r;
+ 0 < r ? (c |= 2, b.strokeStyle = l[++s], f = h[++m], b.lineCap = 2 == f ? "butt" : 1 == f ? "square" : "round", f = h[++m], b.lineJoin = 2 == f ? "bevel" : 1 == f ? "miter" :
+ "round") : (c &= -3, b.strokeStyle = null);
+ break;
+ case 2:
+ case 3:
+ case 4:
+ 0 < g && (c = this._closePath(a, b, c, d, k));
+ c |= 1;
+ 3 == f ? (k = l[++s].handle(), f = h[++m], 0 != h[++m] ? (c = 0 != f ? c | 8 : c & -9, d.a = n[++q], d.b = n[++q], d.c = n[++q], d.d = n[++q], d.tx = n[++q], d.ty = n[++q], c |= 4) : (b.fillStyle = b.createPattern(k, 0 != f ? "repeat" : "no-repeat"), c &= -5)) : (b.fillStyle = l[++s], c &= -5);
+ g = 0;
+ break;
+ case 9:
+ 0 < g && (c = this._closePath(a, b, c, d, k), g = 0);
+ c &= -2;
+ break;
+ case 10:
+ b.moveTo(n[++q], n[++q]);
+ ++g;
+ break;
+ case 11:
+ b.lineTo(n[++q], n[++q]);
+ ++g;
+ break;
+ case 12:
+ b.quadraticCurveTo(n[++q],
+ n[++q], n[++q], n[++q]);
+ ++g;
+ break;
+ case 13:
+ b.rect(n[++q], n[++q], n[++q], n[++q]);
+ ++g;
+ break;
+ case 14:
+ var v = n[++q],
+ x = n[++q],
+ u = n[++q];
+ 0 > u && (u = -u);
+ b.moveTo(v + u, x);
+ 0 != u && b.arc(v, x, u, 0, 2 * Math.PI, !0);
+ ++g;
+ break;
+ case 15:
+ var t = n[++q],
+ y = n[++q],
+ A = n[++q],
+ z = n[++q],
+ B = n[++q],
+ E = n[++q];
+ null == E ? (b.moveTo(t + B, y + z), b.arcTo(t + A - B, y + z - B, t + A, y + z - B, B), b.arcTo(t + A, y + B, t + A - B, y, B), b.arcTo(t + B, y, t, y + B, B), b.arcTo(t + B, y + z - B, t + B, y + z, B)) : (b.moveTo(t + B, y + z), b.lineTo(t + A - B, y + z), b.quadraticCurveTo(t + A, y + z, t + A, y + z - E), b.lineTo(t + A, y + E), b.quadraticCurveTo(t +
+ A, y, t + A - B, y), b.lineTo(t + B, y), b.quadraticCurveTo(t, y, t, y + E), b.lineTo(t, y + z - E), b.quadraticCurveTo(t, y + z, t + B, y + z));
+ ++g;
+ break;
+ case 16:
+ var F = l[++s].handle(),
+ C = h[++m],
+ G = 0 != (C & 1),
+ H = 0 != (C & 2),
+ J = 0 != (C & 8),
+ K = 0 != (C & 16),
+ L = h[++m],
+ M, Q, O, T, W, N, P, R;
+ b.save();
+ for (b.globalCompositeOperation = 0 != (C & 65536) ? "lighter" : "source-over"; 0 <= --L;) M = n[++q], Q = n[++q], O = n[++q], T = n[++q], W = n[++q], N = n[++q], P = n[++q], R = n[++q], b.save(), K ? b.transform(n[++q], n[++q], n[++q], n[++q], M, Q) : (b.translate(M, Q), G && (e = n[++q], b.scale(e, e)), H && b.rotate(n[++q])),
+ J && (b.globalAlpha = n[++q]), b.drawImage(F, W, N, P, R, -O, -T, P, R), b.restore();
+ b.restore();
+ break;
+ case 17:
+ var S = n[++q],
+ aa = n[++q],
+ ca = n[++q],
+ Y = n[++q],
+ G = S + ca / 2,
+ H = aa + Y / 2,
+ J = S + ca,
+ K = aa + Y,
+ Z = 0.275892 * ca,
+ da = 0.275892 * Y;
+ b.moveTo(G, aa);
+ b.bezierCurveTo(G + Z, aa, J, H - da, J, H);
+ b.bezierCurveTo(J, H + da, G + Z, K, G, K);
+ b.bezierCurveTo(G - Z, K, S, H + da, S, H);
+ b.bezierCurveTo(S, H - da, G - Z, aa, G, aa);
+ ++g;
+ break;
+ default:
+ throw new D(4E3 + f);
+ }
+ } catch (X) {
+ if ("__break__" != X) throw X;
+ }
+ 0 < g && this._closePath(a, b, c, d, k);
+ b.restore()
+ },
+ __class__: ub,
+ __properties__: {
+ set_displayObject: "set_displayObject"
+ }
+ };
+ var Xa = s["openfl.display.PixelSnapping"] = {
+ __ename__: ["openfl", "display", "PixelSnapping"],
+ __constructs__: ["ALWAYS", "AUTO", "NEVER"]
+ };
+ Xa.ALWAYS = ["ALWAYS", 0];
+ Xa.ALWAYS.toString = F;
+ Xa.ALWAYS.__enum__ = Xa;
+ Xa.AUTO = ["AUTO", 1];
+ Xa.AUTO.toString = F;
+ Xa.AUTO.__enum__ = Xa;
+ Xa.NEVER = ["NEVER", 2];
+ Xa.NEVER.toString = F;
+ Xa.NEVER.__enum__ = Xa;
+ var gb = function() {
+ (this.graphics = new ub).set_displayObject(this);
+ this.component = this.graphics.component;
+ Fa.call(this)
+ };
+ s["openfl.display.Shape"] = gb;
+ gb.__name__ = ["openfl", "display", "Shape"];
+ gb.__interfaces__ = [Pa];
+ gb.__super__ = Fa;
+ gb.prototype = R(Fa.prototype, {
+ drawToSurface: function(a, b, c, d, e, f, r) {
+ this.graphics.drawToSurface(a, b, c, d, e, f, r)
+ },
+ set_stage: function(a) {
+ var b = null == this.get_stage() && null != a;
+ a = Fa.prototype.set_stage.call(this, a);
+ b && this.graphics.invalidate();
+ return a
+ },
+ hitTestLocal: function(a, b, c, d) {
+ return !d || this.visible ? this.graphics.hitTestLocal(a, b, c) : !1
+ },
+ __class__: gb
+ });
+ var Bc = function(a) {
+ this.nmeBitmap = a;
+ this.qOffsets = [];
+ this.qRects = [];
+ this.bounds = new pa;
+ this.tile = new pa;
+ this.matrix =
+ new na
+ };
+ s["openfl.display.Tilesheet"] = Bc;
+ Bc.__name__ = ["openfl", "display", "Tilesheet"];
+ Bc.prototype = {
+ addTileRect: function(a, b) {
+ null == b && (b = new xa);
+ this.qRects.push(a);
+ this.qOffsets.push(b);
+ return this.qRects.length - 1
+ },
+ __class__: Bc
+ };
+ var Bb = function(a, b) {
+ null == b && (b = 0);
+ null == a && (a = "");
+ this.message = a;
+ this.errorID = b
+ };
+ s["openfl.errors.Error"] = Bb;
+ Bb.__name__ = ["openfl", "errors", "Error"];
+ Bb.prototype = {
+ toString: function() {
+ return null != this.message ? this.message : "Error"
+ },
+ __class__: Bb
+ };
+ var fa = function(a, b, c) {
+ null ==
+ c && (c = !1);
+ null == b && (b = !1);
+ this.type = a;
+ this.bubbles = b;
+ this.cancelable = c
+ };
+ s["openfl.events.Event"] = fa;
+ fa.__name__ = ["openfl", "events", "Event"];
+ fa.prototype = {
+ get_target: function() {
+ return this._target || this.target
+ },
+ set_target: function(a) {
+ return this._target = a
+ },
+ set_currentTarget: function(a) {
+ return this._current = a
+ },
+ __class__: fa,
+ __properties__: {
+ set_currentTarget: "set_currentTarget",
+ set_target: "set_target",
+ get_target: "get_target"
+ }
+ };
+ var Ob = function(a, b, c, d) {
+ null == d && (d = "");
+ null == c && (c = !1);
+ null == b && (b = !1);
+ fa.call(this,
+ a, b, c);
+ this.text = d
+ };
+ s["openfl.events.TextEvent"] = Ob;
+ Ob.__name__ = ["openfl", "events", "TextEvent"];
+ Ob.__super__ = fa;
+ Ob.prototype = R(fa.prototype, {
+ __class__: Ob
+ });
+ var Cb = function(a, b, c, d) {
+ Ob.call(this, a, b, c);
+ this.text = d
+ };
+ s["openfl.events.ErrorEvent"] = Cb;
+ Cb.__name__ = ["openfl", "events", "ErrorEvent"];
+ Cb.__super__ = Ob;
+ Cb.prototype = R(Ob.prototype, {
+ __class__: Cb
+ });
+ var qb = function(a, b, c, d) {
+ null == d && (d = 0);
+ null == c && (c = !1);
+ null == b && (b = !1);
+ this.status = d;
+ fa.call(this, a, b, c)
+ };
+ s["openfl.events.HTTPStatusEvent"] = qb;
+ qb.__name__ = ["openfl", "events", "HTTPStatusEvent"];
+ qb.__super__ = fa;
+ qb.prototype = R(fa.prototype, {
+ __class__: qb
+ });
+ var ec = function(a, b, c, d) {
+ null == d && (d = "");
+ null == c && (c = !1);
+ null == b && (b = !1);
+ fa.call(this, a, b, c);
+ this.text = d
+ };
+ s["openfl.events.IOErrorEvent"] = ec;
+ ec.__name__ = ["openfl", "events", "IOErrorEvent"];
+ ec.__super__ = fa;
+ ec.prototype = R(fa.prototype, {
+ __class__: ec
+ });
+ var Qc = function(a, b, c, d, e) {
+ null == e && (e = 0);
+ null == d && (d = 0);
+ null == c && (c = !1);
+ null == b && (b = !0);
+ fa.call(this, a, b, c);
+ this.keyCode = e;
+ this.charCode = d
+ };
+ s["openfl.events.KeyboardEvent"] =
+ Qc;
+ Qc.__name__ = ["openfl", "events", "KeyboardEvent"];
+ Qc.__super__ = fa;
+ Qc.prototype = R(fa.prototype, {
+ __class__: Qc
+ });
+ var rb = function(a, b, c) {
+ fa.call(this, a, b, c)
+ };
+ s["openfl.events.UIEvent"] = rb;
+ rb.__name__ = ["openfl", "events", "UIEvent"];
+ rb.__super__ = fa;
+ rb.prototype = R(fa.prototype, {
+ __class__: rb
+ });
+ var fb = function(a, b, c, d, e, f, r, g, k, h, m) {
+ fa.call(this, a, null != b ? b : !0, null != c && c);
+ this.ctrlKey = null != r && r;
+ this.altKey = null != g && g;
+ this.shiftKey = null != k && k;
+ this.relatedObject = f;
+ this.buttonDown = null != h && h;
+ this.delta = null !=
+ m ? m : 0
+ };
+ s["openfl.events.MouseEvent"] = fb;
+ fb.__name__ = ["openfl", "events", "MouseEvent"];
+ fb.__super__ = rb;
+ fb.prototype = R(rb.prototype, {
+ __class__: fb
+ });
+ var Yb = function(a, b, c, d, e) {
+ null == e && (e = 0);
+ null == d && (d = 0);
+ null == c && (c = !1);
+ null == b && (b = !1);
+ fa.call(this, a, b, c);
+ this.bytesLoaded = d;
+ this.bytesTotal = e
+ };
+ s["openfl.events.ProgressEvent"] = Yb;
+ Yb.__name__ = ["openfl", "events", "ProgressEvent"];
+ Yb.__super__ = fa;
+ Yb.prototype = R(fa.prototype, {
+ __class__: Yb
+ });
+ var Pb = function(a, b, c, d) {
+ null == d && (d = "");
+ null == c && (c = !1);
+ null == b &&
+ (b = !1);
+ Cb.call(this, a, b, c);
+ this.text = d
+ };
+ s["openfl.events.SecurityErrorEvent"] = Pb;
+ Pb.__name__ = ["openfl", "events", "SecurityErrorEvent"];
+ Pb.__super__ = Cb;
+ Pb.prototype = R(Cb.prototype, {
+ __class__: Pb
+ });
+ var lc = function(a, b, c, d, e, f, r, g, k, h, m, w, l, n) {
+ fa.call(this, a, b, c);
+ this.altKey = l;
+ this.shiftKey = n;
+ this.ctrlKey = w;
+ this.touchPointID = d;
+ this.sizeX = g;
+ this.sizeY = k;
+ this.pressure = h
+ };
+ s["openfl.events.TouchEvent"] = lc;
+ lc.__name__ = ["openfl", "events", "TouchEvent"];
+ lc.__super__ = rb;
+ lc.prototype = R(rb.prototype, {
+ __class__: lc
+ });
+ var rd = function() {};
+ s["openfl.filters.BitmapFilter"] = rd;
+ rd.__name__ = ["openfl", "filters", "BitmapFilter"];
+ var sb = function(a, b) {
+ this.eventList = new X;
+ null != a && this.load(a, b)
+ };
+ s["openfl.media.Sound"] = sb;
+ sb.__name__ = ["openfl", "media", "Sound"];
+ sb.__super__ = ta;
+ sb.prototype = R(ta.prototype, {
+ load: function(a, b) {
+ var c = a.url,
+ d = sb.library;
+ if (null != d && (null != O[c] ? d.existsReserved(c) : d.h.hasOwnProperty(c))) {
+ this.component = null != O[c] ? d.getReserved(c) : d.h[c];
+ var d = sb.library,
+ e = this.component.cloneNode(!0);
+ null != O[c] ?
+ d.setReserved(c, e) : d.h[c] = e
+ } else this.component = new u(c);
+ this.qCache = []
+ },
+ __class__: sb
+ });
+ var Rc = function() {
+ this.eventList = new X
+ };
+ s["openfl.media.SoundChannel"] = Rc;
+ Rc.__name__ = ["openfl", "media", "SoundChannel"];
+ Rc.__super__ = ta;
+ Rc.prototype = R(ta.prototype, {
+ __class__: Rc
+ });
+ var sd = function() {};
+ s["openfl.media.SoundLoaderContext"] = sd;
+ sd.__name__ = ["openfl", "media", "SoundLoaderContext"];
+ var gc = function() {};
+ s["openfl.net.IURLLoader"] = gc;
+ gc.__name__ = ["openfl", "net", "IURLLoader"];
+ gc.__interfaces__ = [Sb];
+ gc.prototype = {
+ __class__: gc
+ };
+ var ya = function() {
+ this.eventList = new X
+ };
+ s["openfl.net.SharedObject"] = ya;
+ ya.__name__ = ["openfl", "net", "SharedObject"];
+ ya.getLocal = function(a, b, c) {
+ null == b && (b = window.location.href);
+ c = new ya;
+ c.nmeKey = b + ":" + a;
+ a = null;
+ try {
+ a = ya.nmeGetLocalStorage().getItem(c.nmeKey)
+ } catch (d) {}
+ c.data = {};
+ null != a && "" != a && (a = new Qa(a), a.setResolver({
+ resolveEnum: U.resolveEnum,
+ resolveClass: ya.resolveClass
+ }), c.data = a.unserialize());
+ null == c.data && (c.data = {});
+ return c
+ };
+ ya.nmeGetLocalStorage = function() {
+ var a = bd.getLocalStorage();
+ if (null == a) throw new D(new Bb("SharedObject not supported"));
+ return a
+ };
+ ya.resolveClass = function(a) {
+ return null != a ? U.resolveClass(ma.replace(ma.replace(a, "jeash.", "openfl."), "browser.", "openfl.")) : null
+ };
+ ya.__super__ = ta;
+ ya.prototype = R(ta.prototype, {
+ flush: function() {
+ var a = Ia.run(this.data);
+ try {
+ ya.nmeGetLocalStorage().removeItem(this.nmeKey), ya.nmeGetLocalStorage().setItem(this.nmeKey, a)
+ } catch (b) {
+ return eb.PENDING
+ }
+ return eb.FLUSHED
+ },
+ __class__: ya
+ });
+ var eb = s["openfl.net.SharedObjectFlushStatus"] = {
+ __ename__: ["openfl",
+ "net", "SharedObjectFlushStatus"
+ ],
+ __constructs__: ["FLUSHED", "PENDING"]
+ };
+ eb.FLUSHED = ["FLUSHED", 0];
+ eb.FLUSHED.toString = F;
+ eb.FLUSHED.__enum__ = eb;
+ eb.PENDING = ["PENDING", 1];
+ eb.PENDING.toString = F;
+ eb.PENDING.__enum__ = eb;
+ var Zb = function(a) {
+ this.eventList = new X;
+ this.bytesLoaded = this.bytesTotal = 0;
+ this.set_dataFormat(1);
+ null != a && this.load(a)
+ };
+ s["openfl.net.URLLoader"] = Zb;
+ Zb.__name__ = ["openfl", "net", "URLLoader"];
+ Zb.__interfaces__ = [gc];
+ Zb.__super__ = ta;
+ Zb.prototype = R(ta.prototype, {
+ set_dataFormat: function(a) {
+ return this.dataFormat =
+ 0 == a && null == window.ArrayBuffer ? 1 : a
+ },
+ getData: function() {
+ return null
+ },
+ load: function(a) {
+ this.requestUrl(a.url, a.method, a.data, a.formatRequestHeaders())
+ },
+ registerEvents: function(a) {
+ var b = this;
+ "undefined" != typeof XMLHttpRequestProgressEvent && a.addEventListener("progress", ea(this, this.onProgress), !1);
+ a.onreadystatechange = function() {
+ if (4 == a.readyState) {
+ var c;
+ try {
+ c = a.status
+ } catch (d) {
+ c = null
+ }
+ if (null != c) b.onStatus(c);
+ if (null == c) b.onError("Failed to connect or resolve host");
+ else if (200 <= c && 400 > c) b.onData(a.response);
+ else if (12029 == c) b.onError("Failed to connect to host");
+ else if (12007 == c) b.onError("Unknown host");
+ else if (0 == c) b.onError("Unable to make request (may be blocked due to cross-domain permissions)"), b.onSecurityError("Unable to make request (may be blocked due to cross-domain permissions)");
+ else b.onError("Http Error #" + a.status)
+ }
+ }
+ },
+ requestUrl: function(a, b, c, d) {
+ var e = new XMLHttpRequest;
+ this.getData = function() {
+ return null != e.response ? e.response : e.responseText
+ };
+ this.registerEvents(e);
+ var f = "";
+ if (S.__instanceof(c,
+ zb)) f = 0 == this.dataFormat ? c.data.buffer : c.readUTFBytes(c.length);
+ else if (S.__instanceof(c, ld))
+ for (var r = 0, g = Z.fields(c); r < g.length;) {
+ var k = g[r];
+ ++r;
+ 0 != f.length && (f += "&");
+ var h = encodeURIComponent(k) + "=",
+ k = Z.field(c, k),
+ f = f + (h + encodeURIComponent(k))
+ } else null != c && (f = c.toString());
+ try {
+ if ("GET" == b && null != f && "" != f) {
+ var m = 1 >= a.split("?").length;
+ e.open(b, a + (m ? "?" : "&") + K.string(f), !0);
+ f = ""
+ } else e.open(b, a, !0)
+ } catch (w) {
+ w instanceof D && (w = w.val);
+ this.onError(w.toString());
+ return
+ }
+ 0 == this.dataFormat && (e.responseType =
+ "arraybuffer");
+ for (a = 0; a < d.length;) b = d[a], ++a, e.setRequestHeader(b.name, b.value);
+ e.send(f);
+ this.onOpen()
+ },
+ onData: function(a) {
+ a = a ? a : this.getData();
+ this.data = 0 == this.dataFormat ? zb.nmeOfBuffer(a) : K.string(a);
+ a = new fa("complete");
+ a.set_currentTarget(this);
+ this.dispatchEvent(a)
+ },
+ onError: function(a) {
+ var b = new ec("ioError");
+ b.text = a;
+ b.set_currentTarget(this);
+ this.dispatchEvent(b)
+ },
+ onOpen: function() {
+ var a = new fa("open");
+ a.set_currentTarget(this);
+ this.dispatchEvent(a)
+ },
+ onProgress: function(a) {
+ var b = new Yb("progress");
+ b.set_currentTarget(this);
+ b.bytesLoaded = a.loaded;
+ b.bytesTotal = a.total;
+ this.dispatchEvent(b)
+ },
+ onSecurityError: function(a) {
+ var b = new Pb("securityError");
+ b.text = a;
+ b.set_currentTarget(this);
+ this.dispatchEvent(b)
+ },
+ onStatus: function(a) {
+ a = new qb("httpStatus", !1, !1, a);
+ a.set_currentTarget(this);
+ this.dispatchEvent(a)
+ },
+ __class__: Zb,
+ __properties__: {
+ set_dataFormat: "set_dataFormat"
+ }
+ });
+ var uc = function(a, b) {
+ null == b && (b = "");
+ null == a && (a = "");
+ this.name = a;
+ this.value = b
+ };
+ s["openfl.net.URLRequestHeader"] = uc;
+ uc.__name__ = ["openfl", "net", "URLRequestHeader"];
+ uc.prototype = {
+ __class__: uc
+ };
+ var ld = function() {};
+ s["openfl.net.URLVariables"] = ld;
+ ld.__name__ = ["openfl", "net", "URLVariables"];
+ var td = function() {};
+ s["openfl.text.Font"] = td;
+ td.__name__ = ["openfl", "text", "Font"];
+ var kd = function() {};
+ s["openfl.ui.Multitouch"] = kd;
+ kd.__name__ = ["openfl", "ui", "Multitouch"];
+ var Ta = s["openfl.ui.MultitouchInputMode"] = {
+ __ename__: ["openfl", "ui", "MultitouchInputMode"],
+ __constructs__: ["GESTURE", "NONE", "TOUCH_POINT"]
+ };
+ Ta.GESTURE = ["GESTURE", 0];
+ Ta.GESTURE.toString =
+ F;
+ Ta.GESTURE.__enum__ = Ta;
+ Ta.NONE = ["NONE", 1];
+ Ta.NONE.toString = F;
+ Ta.NONE.__enum__ = Ta;
+ Ta.TOUCH_POINT = ["TOUCH_POINT", 2];
+ Ta.TOUCH_POINT.toString = F;
+ Ta.TOUCH_POINT.__enum__ = Ta;
+ var zb = function() {
+ this.length = 0;
+ this._nmeResizeBuffer(this.allocated = this.position = 0)
+ };
+ s["openfl.utils.ByteArray"] = zb;
+ zb.__name__ = ["openfl", "utils", "ByteArray"];
+ zb.fromBytes = function(a) {
+ var b = new zb;
+ b.byteView = new hb(a.b.bufferValue);
+ b.set_length(b.byteView.length);
+ b.allocated = b.length;
+ return b
+ };
+ zb.nmeOfBuffer = function(a) {
+ var b = new zb;
+ b.set_length(b.allocated = a.byteLength);
+ b.data = new ud(a);
+ b.byteView = new hb(a);
+ return b
+ };
+ zb.prototype = {
+ _nmeResizeBuffer: function(a) {
+ var b = this.byteView,
+ c = new hb(a);
+ null != b && (b.length <= a ? c.set(b) : c.set(b.subarray(0, a)));
+ this.byteView = c;
+ this.data = new ud(c.buffer)
+ },
+ readUTFBytes: function(a) {
+ var b = "";
+ for (a = this.position + a; this.position < a;) {
+ var c = this.data.getUint8(this.position++);
+ if (128 > c) {
+ if (0 == c) break;
+ b += String.fromCharCode(c)
+ } else if (224 > c) b += String.fromCharCode((c & 63) << 6 | this.data.getUint8(this.position++) &
+ 127);
+ else if (240 > c) var d = this.data.getUint8(this.position++),
+ b = b + String.fromCharCode((c & 31) << 12 | (d & 127) << 6 | this.data.getUint8(this.position++) & 127);
+ else var d = this.data.getUint8(this.position++),
+ e = this.data.getUint8(this.position++),
+ b = b + String.fromCharCode((c & 15) << 18 | (d & 127) << 12 | e << 6 & 127 | this.data.getUint8(this.position++) & 127)
+ }
+ return b
+ },
+ set_length: function(a) {
+ this.allocated < a ? this._nmeResizeBuffer(this.allocated = Math.max(a, 2 * this.allocated) | 0) : this.allocated > a && this._nmeResizeBuffer(this.allocated =
+ a);
+ return this.length = a
+ },
+ __class__: zb,
+ __properties__: {
+ set_length: "set_length"
+ }
+ };
+ var dd = function() {};
+ s["haxe.lang.Iterator"] = dd;
+ dd.__name__ = ["haxe", "lang", "Iterator"];
+ dd.prototype = {
+ __class__: dd
+ };
+ var ed = function() {};
+ s["haxe.lang.Iterable"] = ed;
+ ed.__name__ = ["haxe", "lang", "Iterable"];
+ ed.prototype = {
+ __class__: ed
+ };
+ var fd = function() {
+ this.time = 0;
+ this.frameRate = l.FPS;
+ this.isLooping = !1;
+ this.doc = null;
+ this.frameRate = l.FPS;
+ this.time = 0
+ };
+ s["oz.Animation2D"] = fd;
+ fd.__name__ = ["oz", "Animation2D"];
+ fd.prototype = {
+ Update: function(a) {
+ null ==
+ a && (a = -1); - 0.5 > a && (a = 1 / l.FPS);
+ var b = Math.floor(this.time * this.frameRate + 1E-4);
+ b >= this.frames && (b = this.isLooping ? b % this.frames : this.frames - 1);
+ for (var c = 0, d = this.elements.length; c < d;) {
+ var e = c++;
+ this.elements[e].Update(this.doc.getChild(this.elements[e].name), b)
+ }
+ this.time += a
+ },
+ __class__: fd
+ };
+ var hc = function() {};
+ s["oz.Easing"] = hc;
+ hc.__name__ = ["oz", "Easing"];
+ hc.prototype = {
+ __class__: hc
+ };
+ var Qb = function() {};
+ s["oz.LinearEaseNone"] = Qb;
+ Qb.__name__ = ["oz", "LinearEaseNone"];
+ Qb.__interfaces__ = [hc];
+ Qb.prototype = {
+ calculate: function(a) {
+ return a
+ },
+ __class__: Qb
+ };
+ var mc = function() {};
+ s["oz.QuadEaseIn"] = mc;
+ mc.__name__ = ["oz", "QuadEaseIn"];
+ mc.__interfaces__ = [hc];
+ mc.prototype = {
+ calculate: function(a) {
+ return a * a
+ },
+ __class__: mc
+ };
+ var Ec = function() {};
+ s["oz.QuadEaseOut"] = Ec;
+ Ec.__name__ = ["oz", "QuadEaseOut"];
+ Ec.__interfaces__ = [hc];
+ Ec.prototype = {
+ calculate: function(a) {
+ return -a * (a - 2)
+ },
+ __class__: Ec
+ };
+ var Ca = function() {};
+ s["oz.Ease"] = Ca;
+ Ca.__name__ = ["oz", "Ease"];
+ var gd = function(a, b, c, d, e, f, r, g, k, h, m, w, l) {
+ this.name = this.mcName = null;
+ this.keyframes = [];
+ this.mcName = b;
+ this.name = c;
+ this.x = d;
+ this.y = e;
+ this.scaleX = f;
+ this.scaleY = r;
+ this.rotation = g;
+ this.r = k;
+ this.g = h;
+ this.b = m;
+ this.a = w
+ };
+ s["oz.Element2D"] = gd;
+ gd.__name__ = ["oz", "Element2D"];
+ gd.prototype = {
+ Update: function(a, b) {
+ for (var c = null, d = null, e = 0, f = this.keyframes.length; e < f;) {
+ var r = e++,
+ r = this.keyframes[r];
+ r.frame <= b && (c = r);
+ r.frame > b && null == d && (d = r)
+ }
+ null == d ? (d = c, e = 1) : e = (b - c.frame) / (d.frame - c.frame);
+ f = c.y + e * (d.y - c.y);
+ a.set_x(c.x + e * (d.x - c.x));
+ a.set_y(f);
+ a.set_scaleX(c.scaleX + e * (d.scaleX - c.scaleX));
+ a.set_scaleY(c.scaleY + e *
+ (d.scaleY - c.scaleY));
+ f = c.rotation;
+ for (r = d.rotation; 0 > f;) f += 360;
+ for (; 0 > r;) r += 360;
+ var g = r - 360;
+ Math.abs(r - f) > Math.abs(g - f) && (r = g);
+ g = r + 360;
+ Math.abs(r - f) > Math.abs(g - f) && (r = g);
+ a.set_rotation(f + e * (r - f));
+ a.set_alpha(c.a + e * (d.a - c.a))
+ },
+ __class__: gd
+ };
+ var hd = function(a, b, c, d, e, f, r, g, k, h) {
+ this.frame = a;
+ this.x = b;
+ this.y = c;
+ this.scaleX = d;
+ this.scaleY = e;
+ this.rotation = f;
+ this.r = r;
+ this.g = g;
+ this.b = k;
+ this.a = h
+ };
+ s["oz.Keyframe2D"] = hd;
+ hd.__name__ = ["oz", "Keyframe2D"];
+ hd.prototype = {
+ __class__: hd
+ };
+ var Hb = function(a, b) {
+ null == b &&
+ (b = 1);
+ this.target = a;
+ this.type = b
+ };
+ s["oz.OzEvent"] = Hb;
+ Hb.__name__ = ["oz", "OzEvent"];
+ Hb.prototype = {
+ txy: function(a, b, c) {
+ this.target = a;
+ this.eventX = b;
+ this.eventY = c;
+ return this
+ },
+ __class__: Hb
+ };
+ var Jc = function() {
+ this.defaultKern = 0;
+ this.chars = [];
+ this.kernings = [];
+ this.registered = !1
+ };
+ s["oz.OzFont"] = Jc;
+ Jc.__name__ = ["oz", "OzFont"];
+ Jc.prototype = {
+ RegisterCharacters: function() {
+ if (!this.registered) {
+ this.registered = !0;
+ this.frames = [];
+ this.movieClips = [];
+ for (var a = 0, b = 0, c = this.chars.length; b < c;) {
+ var d = b++;
+ null != this.chars[d] &&
+ 32 != d && (this.frames.push([this.chars[d].x, this.chars[d].y, this.chars[d].width, this.chars[d].height, 0, 0]), this.movieClips.push(new M("_f" + this.face + "-" + this.chars[d].letter, [a], -1)), this.chars[d].movieClip = this.movieClips[this.movieClips.length - 1], ++a)
+ }
+ f.RegisterTilesheet(this.bitmapName, this.movieClips, this.frames);
+ this.tilesheetId = this.movieClips[0].tilesheetId
+ }
+ },
+ __class__: Jc
+ };
+ var T = function() {
+ this.identity()
+ };
+ s["oz.OzMatrix"] = T;
+ T.__name__ = ["oz", "OzMatrix"];
+ T.getCurrentMatrix = function() {
+ return T.matrixStack[T.matrixId]
+ };
+ T.InitPool = function() {
+ T.matrixStack = [];
+ for (var a = 0; 200 > a;) {
+ var b = a++;
+ T.matrixStack[b] = new T
+ }
+ T.matrixId = 0;
+ T.DEG2RAD = Math.PI / 180;
+ T.RAD2DEG = 180 / Math.PI;
+ T.um = new T
+ };
+ T.PushMatrix = function() {
+ T.matrixStack[T.matrixId + 1].copy(T.matrixStack[T.matrixId]);
+ T.matrixId++
+ };
+ T.PopMatrix = function() {
+ T.matrixId--
+ };
+ T.getTemp = function(a) {
+ return T.matrixStack[T.matrixId + a]
+ };
+ T.Multiply = function(a, b, c) {
+ var d = b.m00 * c.m01 + b.m01 * c.m11 + b.m02 * c.m21,
+ e = b.m00 * c.m02 + b.m01 * c.m12 + b.m02 * c.m22,
+ f = b.m10 * c.m00 + b.m11 * c.m10 + b.m12 * c.m20,
+ r =
+ b.m10 * c.m01 + b.m11 * c.m11 + b.m12 * c.m21,
+ g = b.m10 * c.m02 + b.m11 * c.m12 + b.m12 * c.m22,
+ k = b.m20 * c.m00 + b.m21 * c.m10 + b.m22 * c.m20,
+ h = b.m20 * c.m01 + b.m21 * c.m11 + b.m22 * c.m21,
+ m = b.m20 * c.m02 + b.m21 * c.m12 + b.m22 * c.m22;
+ a.m00 = b.m00 * c.m00 + b.m01 * c.m10 + b.m02 * c.m20;
+ a.m01 = d;
+ a.m02 = e;
+ a.m10 = f;
+ a.m11 = r;
+ a.m12 = g;
+ a.m20 = k;
+ a.m21 = h;
+ a.m22 = m;
+ a.transformed = !0
+ };
+ T.prototype = {
+ identity: function() {
+ this.m00 = 1;
+ this.m10 = this.m02 = this.m01 = 0;
+ this.m11 = 1;
+ this.m21 = this.m20 = this.m12 = 0;
+ this.m22 = 1;
+ this.transformed = !1
+ },
+ copy: function(a) {
+ this.m00 = a.m00;
+ this.m01 = a.m01;
+ this.m02 = a.m02;
+ this.m10 = a.m10;
+ this.m11 = a.m11;
+ this.m12 = a.m12;
+ this.m20 = a.m20;
+ this.m21 = a.m21;
+ this.m22 = a.m22
+ },
+ PostTranslate: function(a, b) {
+ T.um.Translation(a, b);
+ T.Multiply(this, this, T.um)
+ },
+ PostScale: function(a, b) {
+ T.um.Scaling(a, b);
+ T.Multiply(this, this, T.um)
+ },
+ PostRotate: function(a) {
+ T.um.Rotation(a);
+ T.Multiply(this, this, T.um)
+ },
+ toString: function() {
+ var a = "Mtrans=" + K.string(this.transformed) + "\n",
+ a = a + ("{" + this.m00 + ":" + this.m01 + ":" + this.m02 + "}\n"),
+ a = a + ("{" + this.m10 + ":" + this.m11 + ":" + this.m12 + "}\n");
+ return a +=
+ "{" + this.m20 + ":" + this.m21 + ":" + this.m22 + "}\n"
+ },
+ Rotation: function(a) {
+ a *= T.DEG2RAD;
+ this.m00 = Math.cos(a);
+ this.m01 = -Math.sin(a);
+ this.m02 = 0;
+ this.m10 = -this.m01;
+ this.m11 = this.m00;
+ this.m21 = this.m20 = this.m12 = 0;
+ this.m22 = 1;
+ this.transformed = !0
+ },
+ Translation: function(a, b) {
+ this.m00 = 1;
+ this.m01 = 0;
+ this.m02 = a;
+ this.m10 = 0;
+ this.m11 = 1;
+ this.m12 = b;
+ this.m21 = this.m20 = 0;
+ this.m22 = 1;
+ this.transformed = !1
+ },
+ Scaling: function(a, b) {
+ this.m00 = a;
+ this.m10 = this.m02 = this.m01 = 0;
+ this.m11 = b;
+ this.m21 = this.m20 = this.m12 = 0;
+ this.m22 = 1;
+ this.transformed = !0
+ },
+ toMatrix: function(a) {
+ a.a = this.m00;
+ a.c = this.m01;
+ a.tx = this.m02;
+ a.b = this.m10;
+ a.d = this.m11;
+ a.ty = this.m12
+ },
+ outside: function(a, b, c, d, e, f, r) {
+ null == r && (r = 0);
+ null == f && (f = 0);
+ null == e && (e = !1);
+ var g = null;
+ e ? (T.um.Translation(f, r), T.Multiply(T.um, this, T.um), g = T.um) : g = this;
+ var k = g.m02;
+ e = g.m12;
+ var h = a * g.m00 + g.m02;
+ f = a * g.m10 + g.m12;
+ var m = b * g.m01 + g.m02;
+ r = b * g.m11 + g.m12;
+ var w = a * g.m00 + b * g.m01 + g.m02,
+ g = a * g.m10 + b * g.m11 + g.m12;
+ a = Math.min(Math.min(k, h), Math.min(m, w));
+ b = Math.min(Math.min(e, f), Math.min(r, g));
+ k = Math.max(Math.max(k,
+ h), Math.max(m, w));
+ e = Math.max(Math.max(e, f), Math.max(r, g));
+ return 0 > k || 0 > e || a > c ? !0 : b > d
+ },
+ __class__: T
+ };
+ var tb = function() {};
+ s["oz.OzMobileUtils"] = tb;
+ tb.__name__ = ["oz", "OzMobileUtils"];
+ tb.HideLivesDialog = function(a) {
+ u.LocallyUnmute()
+ };
+ tb.HideRateDialog = function(a) {};
+ var ca = function() {};
+ s["oz.OzParticle"] = ca;
+ ca.__name__ = ["oz", "OzParticle"];
+ ca.StaticInit = function() {
+ ca.Particles = [];
+ for (var a = ca.FreeId = 0; 400 > a;) {
+ var b = a++;
+ ca.Particles[b] = new ca;
+ ca.Particles[b].PoolId = b
+ }
+ ca.Head = ca.New();
+ ca.Head.type = -1;
+ ca.Head.prev =
+ ca.Head.next = ca.Head
+ };
+ ca.New = function() {
+ var a = ca.Particles[ca.FreeId++];
+ a.reset();
+ return a
+ };
+ ca.Dispose = function(a) {
+ f.Dispose(a.sprite);
+ a.sprite = null;
+ a.prev.next = a.next;
+ a.next.prev = a.prev;
+ if (0 <= a.PoolId) {
+ var b = ca.FreeId - 1,
+ c = a.PoolId,
+ d = ca.Particles[b];
+ ca.Particles[b] = ca.Particles[c];
+ ca.Particles[c] = d;
+ a.PoolId = b;
+ ca.Particles[c].PoolId = c;
+ ca.FreeId--
+ }
+ };
+ ca.Add = function(a) {
+ a.prev = ca.Head.prev;
+ a.next = ca.Head;
+ ca.Head.prev.next = a;
+ ca.Head.prev = a
+ };
+ ca.UpdateAll = function() {
+ for (var a = ca.Head.next; a != ca.Head;) {
+ var b =
+ a,
+ a = a.next;
+ b.update()
+ }
+ };
+ ca.EmitInCircle = function(a, b, c, d, e, p, r, g, k, h) {
+ null == h && (h = 1);
+ null == k && (k = -1);
+ r /= g;
+ for (var m = 0; m < p;) {
+ var w = m++/p*2*Math.PI,l=ca.New();l.duration=g;l.sprite=f.New(b);a.addChild(l.sprite);l.sprite.set_x(c);l.sprite.set_y(d);l.sprite.set_rotation(e);l.sprite.mouseEnabled=!1;l.velX=Math.cos(w)*r;l.velY=Math.sin(w)*r;0<=k&&(l.velAlpha=(k-h)/g);
+ ca.Add(l)
+ }
+ }; ca.prototype = {
+ reset: function() {
+ this.type = 0;
+ this.next = this.prev = null;
+ this.duration = this.cnt = 0;
+ this.sprite = null;
+ this.velScaleX =
+ this.velScaleY = this.velRot = this.velAlpha = this.velX = this.velY = this.accelX = this.accelY = 0;
+ this.updateFunc = null
+ },
+ update: function() {
+ if (0 < this.duration && this.cnt > this.duration) ca.Dispose(this);
+ else {
+ if (null != this.updateFunc) this.updateFunc();
+ else {
+ var a = this.sprite;
+ a.set_x(a.get_x() + this.velX);
+ a = this.sprite;
+ a.set_y(a.get_y() + this.velY);
+ this.velX += this.accelX;
+ this.velY += this.accelY;
+ a = this.sprite;
+ a.set_alpha(a.get_alpha() + this.velAlpha);
+ a = this.sprite;
+ a.set_rotation(a.get_rotation() + this.velRot);
+ a = this.sprite;
+ a.set_scaleX(a.get_scaleX() + this.velScaleX);
+ a = this.sprite;
+ a.set_scaleY(a.get_scaleY() + this.velScaleY)
+ }
+ this.cnt++
+ }
+ },
+ __class__: ca
+ };
+ var v = function(a, b, c, d, e, f, r, g, k, h) {
+ null == h && (h = -1);
+ null == k && (k = -1);
+ null == g && (g = !1);
+ null == r && (r = 0);
+ null == f && (f = 1);
+ this.mapTileObject = null;
+ this.minScaledTileSize = this.maxScaledTileSize = -1;
+ this.canZoom = !1;
+ this.data = this.data = this.colData = this.DSI = this.DSJ = this.DEI = this.DEJ = null;
+ this.offsetX = c;
+ this.offsetY = d;
+ this.scaledTileSize = this.tileSize = e;
+ this.allocRows = b;
+ this.allocCols =
+ a;
+ this.numLayers = f;
+ this.depthOffset = r;
+ this.canZoom = g; - 1 == k && (k = e); - 1 == h && (h = e);
+ this.minScaledTileSize = k;
+ this.maxScaledTileSize = h;
+ this.clearRect = new pa;
+ this.filledRect = new pa;
+ this.bmdRect = new pa;
+ this.bmdPoint = new xa;
+ this.MaxBufferPixelW = (Math.ceil(l.instance.ScreenBMD.component.width / e) + 1) * e;
+ this.MaxBufferPixelH = (Math.ceil(l.instance.ScreenBMD.component.height / e) + 1) * e;
+ if (this.canZoom)
+ for (a = k, h += 1; a < h;) b = a++, this.MaxBufferPixelW = Math.max(this.MaxBufferPixelW, (Math.ceil(l.instance.ScreenBMD.component.width /
+ b) + 1) * b) | 0, this.MaxBufferPixelH = Math.max(this.MaxBufferPixelH, (Math.ceil(l.instance.ScreenBMD.component.height / b) + 1) * b) | 0;
+ this.adjustBuffer();
+ this.bmdBuffers = Array(f);
+ for (h = 0; h < f;) a = h++, this.bmdBuffers[a] = new ia(this.MaxBufferPixelW, this.MaxBufferPixelH, !0, 16777215);
+ this.reset()
+ }; s["oz.OzTileMap"] = v; v.__name__ = ["oz", "OzTileMap"]; v.GetSpriteTileFrame = function(a, b, c, d) {
+ return 2 + a % c * d + b % d
+ }; v.GetScale9Frame = function(a, b, c, d) {
+ return 1 == c ? 0 == b ? 22 : b == d - 1 ? 24 : 23 : 0 == a ? 0 == b ? 1 : b == d - 1 ? 3 : 2 : a == c - 1 ? 0 == b ? 7 : b == d - 1 ?
+ 9 : 8 : 0 == b ? 4 : b == d - 1 ? 6 : 5
+ }; v.PTInit = function() {
+ v.shouldFillRight = [!1, !0, !0, !1, !0, !0, !1, !0, !0, !1, !0, !0, !1, !1, !0, !0, !0, !1, !1, !1, !0, !0, !0, !0, !1, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !1, !0, !0, !0].slice(0);
+ v.ptVX = Array(1E3);
+ v.ptVY = Array(1E3);
+ v.ptHors = Array(101);
+ for (var a = 0, b = v.ptHors.length; a < b;) {
+ var c = a++;
+ v.ptHors[c] = Array(102)
+ }
+ v.ptVers = Array(102);
+ a = 0;
+ for (b = v.ptVers.length; a < b;) c = a++, v.ptVers[c] = Array(101);
+ v.ptDiags = Array(101);
+ a = 0;
+ for (b = v.ptDiags.length; a < b;) c = a++, v.ptDiags[c] = Array(101);
+ v.ptTiles = Array(101);
+ a = 0;
+ for (b = v.ptTiles.length; a < b;) c = a++, v.ptTiles[c] = Array(101);
+ v.PTClear(101, 101);
+ v.initPoly2Tiles = !0
+ }; v.PTFrameToTile = function(a, b, c) {
+ if (0 == c) return 0;
+ switch (v.ptTiles[a][b]) {
+ case 2:
+ return 2 == c ? 9 : 0 < b && (10 == v.ptTiles[a][b - 1] || 15 == v.ptTiles[a][b - 1]) ? 8 : b + 1 < v.ptTiles[a].length && (12 == v.ptTiles[a][b + 1] || 18 == v.ptTiles[a][b + 1]) ? 8 : 1;
+ case 10:
+ return 3;
+ case 11:
+ return 8;
+ case 12:
+ return 2;
+ case 13:
+ return 8;
+ case 14:
+ return 7;
+ case 15:
+ return 6;
+ case 16:
+ return 8;
+ case 17:
+ return 5;
+ case 18:
+ return 4;
+ case 19:
+ return 8;
+ default:
+ return 2 ==
+ c ? 0 == a || 0 == v.ptTiles[a - 1][b] ? 9 : 0 : 1
+ }
+ }; v.PTClear = function(a, b) {
+ null == b && (b = -1);
+ null == a && (a = -1);
+ 0 > a && (a = v.ptN + 1);
+ 0 > b && (b = v.ptM + 1);
+ for (var c = 0, d = a; c < d;)
+ for (var e = c++, f = 0, r = b; f < r;) {
+ var g = f++;
+ v.ptHors[e][g] = 0;
+ v.ptVers[e][g] = 0;
+ v.ptDiags[e][g] = 0;
+ v.ptTiles[e][g] = 0
+ }
+ v.ptN = v.ptM = 0
+ }; v.getPtTile = function(a, b) {
+ return 0 > a || 100 < a || 0 > b || 100 < b ? 0 : v.ptTiles[a][b]
+ }; v.getPtDiag = function(a, b) {
+ return 0 > a || 100 < a || 0 > b || 100 < b ? 0 : v.ptDiags[a][b]
+ }; v.getPtHor = function(a, b) {
+ return 0 > a || 100 < a || 0 > b || 100 < b ? 0 : v.ptHors[a][b]
+ }; v.PolyToTiles =
+ function(a, b) {
+ if (3 == a.type) {
+ v.initPoly2Tiles ? v.PTClear() : v.PTInit();
+ var c = 1E6,
+ d = 1E6,
+ e = -1,
+ f = -1;
+ v.ptNVertices = a.vx.length;
+ for (var r = 0, g = v.ptNVertices; r < g;) {
+ var k = r++;
+ v.ptVX[k] = Math.round(a.vx[k] / b) | 0;
+ v.ptVY[k] = Math.round(a.vy[k] / b) | 0;
+ c = Math.min(c, v.ptVY[k]) | 0;
+ d = Math.min(d, v.ptVX[k]) | 0;
+ e = Math.max(e, v.ptVY[k]) | 0;
+ f = Math.max(f, v.ptVX[k]) | 0
+ }
+ if (0 != c || 0 != d || 100 < e || 100 < f) throw new D(new Bb("You're passing an invalide poly to tile!"));
+ c = 0;
+ for (d = v.ptNVertices; c < d;) r = c++, g = (r + 1) % v.ptNVertices, v.SetSideSegmentData(v.ptVX[r],
+ v.ptVY[r], v.ptVX[g], v.ptVY[g]);
+ v.ptN = e;
+ v.ptM = f;
+ e = 0;
+ for (f = v.ptN; e < f;)
+ for (var c = e++, k = !1, h = 0, d = 0, r = v.ptM; d < r;) {
+ var g = d++,
+ m = ((v.ptHors[c][g] & 2) >> 1) + ((v.ptVers[c][g + 1] & 1) << 1) + ((v.ptHors[c + 1][g] & 1) << 2) + ((v.ptVers[c][g] & 2) << 2),
+ l = x.BitCount(m);
+ 0 == l ? 0 == v.ptDiags[c][g] ? (h = v.getPtTile(c - 1, g), 10 == h ? v.ptTiles[c][g] = 11 : 12 == h ? v.ptTiles[c][g] = 13 : 14 == h ? v.ptTiles[c][g] = 16 : 17 == h ? v.ptTiles[c][g] = 19 : k && (100 > c && 68 == v.ptDiags[c + 1][g] || 100 > g && 68 == v.ptDiags[c][g + 1]) ? v.ptTiles[c][g] = 38 : k && (100 > c && 257 == v.ptDiags[c + 1][g] ||
+ 0 < g && 257 == v.ptDiags[c][g - 1]) ? v.ptTiles[c][g] = 40 : k ? 0 < (v.getPtHor(c, g - 1) & 2) || 0 < (v.getPtDiag(c - 1, g - 1) & 256) || 0 < (v.getPtDiag(c, g - 1) & 4) ? 0 < (v.getPtHor(c + 1, g - 1) & 1) ? v.ptTiles[c][g] = 36 : v.ptTiles[c][g] = 21 : 0 < (v.getPtHor(c, g + 1) & 2) || 0 < (v.getPtDiag(c - 1, g + 1) & 64) || 0 < (v.getPtDiag(c, g + 1) & 1) ? 0 < (v.getPtHor(c + 1, g + 1) & 1) ? v.ptTiles[c][g] = 35 : v.ptTiles[c][g] = 20 : 0 < (v.getPtHor(c + 1, g - 1) & 1) ? v.ptTiles[c][g] = 32 : 0 < (v.getPtHor(c + 1, g + 1) & 1) ? v.ptTiles[c][g] = 31 : v.ptTiles[c][g] = 5 : v.ptTiles[c][g] = 0) : v.ptTiles[c][g] = 68 == v.ptDiags[c][g] ? 0 !=
+ h ? 37 : 10 : 257 == v.ptDiags[c][g] ? 0 != h ? 12 : 39 : 96 == v.ptDiags[c][g] ? 14 : 12 == v.ptDiags[c][g] ? 15 : 264 == v.ptDiags[c][g] ? 17 : 33 == v.ptDiags[c][g] ? 18 : 5 : 1 == l ? 1 == m ? 0 < (v.getPtHor(c + 1, g - 1) & 1) ? v.ptTiles[c][g] = 34 : 0 < (v.getPtHor(c + 1, g + 1) & 1) ? v.ptTiles[c][g] = 33 : v.ptTiles[c][g] = 2 : 2 == m ? v.ptTiles[c][g] = 6 : 4 == m ? (k = v.getPtTile(c - 1, g), 10 == k ? v.ptTiles[c][g] = 25 : 12 == k ? v.ptTiles[c][g] = 26 : 14 == k ? v.ptTiles[c][g] = 27 : 17 == k ? v.ptTiles[c][g] = 28 : 0 < (v.getPtHor(c, g - 1) & 2) || 0 < (v.getPtDiag(c - 1, g - 1) & 256) || 0 < (v.getPtDiag(c, g - 1) & 4) ? v.ptTiles[c][g] = 30 :
+ 0 < (v.getPtHor(c, g + 1) & 2) || 0 < (v.getPtDiag(c - 1, g + 1) & 64) || 0 < (v.getPtDiag(c, g + 1) & 1) ? v.ptTiles[c][g] = 29 : v.ptTiles[c][g] = 8) : v.ptTiles[c][g] = 4 : v.ptTiles[c][g] = 2 == l ? 9 == m ? 1 : 3 == m ? 3 : 6 == m ? 9 : 12 == m ? 7 : 5 == m ? 23 : 5 : 3 == l ? 13 == m ? 22 : 7 == m ? 24 : 5 : 5;
+ k = v.shouldFillRight[v.ptTiles[c][g]];
+ h = v.ptTiles[c][g]
+ }
+ }
+ }; v.SetSideSegmentData = function(a, b, c, d) {
+ a *= 2;
+ b *= 2;
+ c = 2 * c - a;
+ var e = 2 * d - b;
+ d = Math.max(Math.abs(c) | 0, Math.abs(e) | 0) / 2 | 0;
+ c = c / d | 0;
+ for (var e = e / d | 0, f = 0; f < d;) {
+ f++;
+ var r = b / 2 | 0,
+ g = a / 2 | 0;
+ 0 == c ? 0 < e ? v.ptVers[r][g] |= 1 : v.ptVers[r - 1][g] |= 2 : 0 == e ?
+ 0 < c ? v.ptHors[r][g] |= 2 : v.ptHors[r][g - 1] |= 1 : (0 > e && (r = (b + e) / 2 | 0), 0 > c && (g = (a + c) / 2 | 0), v.ptDiags[r][g] |= 1 << a - 2 * g + 3 * (b - 2 * r), v.ptDiags[r][g] |= 1 << a + c - 2 * g + 3 * (b + e - 2 * r));
+ a += c;
+ b += e
+ }
+ }; v.prototype = {
+ setTileObject: function(a, b, c) {
+ a.aI.push(b);
+ a.aJ.push(c);
+ this.mapTileObject.h[b * this.allocCols + c] = a
+ },
+ getTileObject: function(a, b) {
+ return this.mapTileObject.h[a * this.allocCols + b]
+ },
+ adjustBuffer: function() {
+ this.BufferTileW = Math.ceil(l.instance.ScreenBMD.component.width / this.scaledTileSize) + 1;
+ this.BufferTileH = Math.ceil(l.instance.ScreenBMD.component.height /
+ this.scaledTileSize) + 1;
+ this.BufferPixelW = Math.round(this.scaledTileSize * this.BufferTileW);
+ this.BufferPixelH = Math.round(this.scaledTileSize * this.BufferTileH)
+ },
+ reset: function() {
+ this.mapTileObject = new va;
+ if (null == this.data) {
+ this.data = Array(this.numLayers);
+ this.DSI = Array(this.numLayers);
+ this.DEI = Array(this.numLayers);
+ this.DSJ = Array(this.numLayers);
+ this.DEJ = Array(this.numLayers);
+ for (var a = 0, b = this.numLayers; a < b;) {
+ var c = a++;
+ this.data[c] = Array(this.allocRows);
+ for (var d = 0, e = this.allocRows; d < e;) {
+ var f = d++;
+ this.data[c][f] = Array(this.allocCols);
+ for (var r = 0, g = this.allocCols; r < g;) {
+ var k = r++;
+ this.data[c][f][k] = 0
+ }
+ }
+ }
+ } else
+ for (a = 0, b = this.numLayers; a < b;)
+ for (c = a++, d = 0, e = this.allocRows; d < e;)
+ for (f = d++, r = 0, g = this.allocCols; r < g;) k = r++, this.data[c][f][k] = 0;
+ this.makeDirty();
+ this.colData = this.data[0]
+ },
+ makeDirty: function() {
+ for (var a = 0, b = this.numLayers; a < b;) {
+ var c = a++;
+ this.DSI[c] = 0;
+ this.DEI[c] = -1;
+ this.DSJ[c] = 0;
+ this.DEJ[c] = -1
+ }
+ },
+ setTileBlock: function(a, b, c, d, e, f, r, g, k, h) {
+ null == h && (h = 1);
+ null == k && (k = !1);
+ c = Math.round((c -
+ this.offsetY) / this.tileSize) | 0;
+ b = Math.round((b - this.offsetX) / this.tileSize) | 0;
+ for (var m = 0; m < e;)
+ for (var l = m++, n = 0, q = d; n < q;) {
+ var s = n++,
+ x = l + c,
+ t = s + b,
+ u;
+ switch (h) {
+ case 0:
+ u = 0;
+ break;
+ case 2:
+ u = 0 == l ? 9 : 0;
+ break;
+ default:
+ u = f
+ }
+ 0 <= x && 0 <= t && x < this.colData.length && t < this.colData[0].length && this.setTile(a, l + c, s + b, u, r, k ? v.GetScale9Frame(l, s, e, d) : g)
+ }
+ },
+ setTileObjectBlock: function(a, b, c, d, e) {
+ c = Math.round((c - this.offsetY) / this.tileSize);
+ b = Math.round((b - this.offsetX) / this.tileSize);
+ for (var f = 0; f < e;)
+ for (var r = f++, g = 0, k = d; g <
+ k;) {
+ var h = g++;
+ this.setTileObject(a, r + c, h + b)
+ }
+ },
+ setTile: function(a, b, c, d, e, f) {
+ null == f && (f = 1);
+ 0 <= b && 0 <= c && b < this.colData.length && c < this.colData[0].length && (this.data[a][b][c] = null != e ? (e.tilesheetId << 10) + e.frames[f - 1] : 0, 0 < d && (this.colData[b][c] = this.colData[b][c] & -983041 | d << 16), this.bmdRect.width = this.scaledTileSize, this.bmdRect.height = this.scaledTileSize, this.updateTileGFX(a, b, c, !0))
+ },
+ draw: function(a, b) {
+ f.Flush();
+ var c = this.scaledTileSize,
+ d = oa.instance.camera.gameScreenEdgeX() - this.offsetX,
+ e = oa.instance.camera.gameScreenEdgeY() -
+ this.offsetY;
+ this.canZoom && (c = Math.floor(this.tileSize * oa.instance.camera.getZoomX()), c = Math.min(this.maxScaledTileSize, Math.max(this.minScaledTileSize, c)) | 0);
+ this.canZoom && c != this.scaledTileSize && (this.scaledTileSize = c, G.trace("GOT NEW SCALEDTILESIZE ", {
+ fileName: "OzTileMap.hx",
+ lineNumber: 349,
+ className: "oz.OzTileMap",
+ methodName: "draw",
+ customParams: [this.scaledTileSize, d, e]
+ }), this.adjustBuffer(), this.makeDirty());
+ var p = (d % this.tileSize + this.tileSize) % this.tileSize,
+ r = (e % this.tileSize + this.tileSize) %
+ this.tileSize,
+ p = this.scaledTileSize / this.tileSize * p,
+ r = this.scaledTileSize / this.tileSize * r,
+ c = Math.floor(d / this.tileSize),
+ g = Math.floor(e / this.tileSize),
+ p = Math.ceil((p + l.WIDTH) / this.scaledTileSize),
+ r = Math.ceil((r + l.HEIGHT) / this.scaledTileSize),
+ k = this.scaledTileSize / this.tileSize;
+ this.bmdRect.width = this.bmdRect.height = this.scaledTileSize;
+ for (var h = 0, m = 0; m < r;)
+ for (var w = m++, w = g + w, n = 0, q = p; n < q;) {
+ var s = n++,
+ s = c + s;
+ 0 <= w && 0 <= s && w < this.colData.length && s < this.colData[0].length ? this.updateTileGFX(b, w, s) || ++h : (this.bmdRect.x =
+ (s % this.BufferTileW + this.BufferTileW) % this.BufferTileW * this.scaledTileSize, this.bmdRect.y = (w % this.BufferTileH + this.BufferTileH) % this.BufferTileH * this.scaledTileSize, this.bmdRect.width = this.bmdRect.height = this.scaledTileSize, this.bmdBuffers[b].fillRect(this.bmdRect, 16777215))
+ }
+ d = ((d * k | 0) % this.BufferPixelW + this.BufferPixelW) % this.BufferPixelW;
+ e = ((e * k | 0) % this.BufferPixelH + this.BufferPixelH) % this.BufferPixelH;
+ k = Math.min(l.WIDTH, this.BufferPixelW - d) | 0;
+ h = Math.min(l.HEIGHT, this.BufferPixelH - e) | 0;
+ m = l.WIDTH -
+ k;
+ w = l.HEIGHT - h;
+ this.bmdPoint.x = 0;
+ this.bmdPoint.y = 0;
+ this.bmdRect.x = d;
+ this.bmdRect.y = e;
+ this.bmdRect.width = k;
+ this.bmdRect.height = h;
+ l.instance.ScreenBMD.copyPixels(this.bmdBuffers[b], this.bmdRect, this.bmdPoint, null, null, !0);
+ 0 < m && (this.bmdPoint.x = k, this.bmdPoint.y = 0, this.bmdRect.x = 0, this.bmdRect.y = e, this.bmdRect.width = m, this.bmdRect.height = h, l.instance.ScreenBMD.copyPixels(this.bmdBuffers[b], this.bmdRect, this.bmdPoint, null, null, !0));
+ 0 < h && (this.bmdPoint.x = 0, this.bmdPoint.y = h, this.bmdRect.x = d, this.bmdRect.y =
+ 0, this.bmdRect.width = k, this.bmdRect.height = w, l.instance.ScreenBMD.copyPixels(this.bmdBuffers[b], this.bmdRect, this.bmdPoint, null, null, !0));
+ 0 < h && 0 < k && (this.bmdPoint.x = k, this.bmdPoint.y = h, this.bmdRect.x = 0, this.bmdRect.y = 0, this.bmdRect.width = m, this.bmdRect.height = w, l.instance.ScreenBMD.copyPixels(this.bmdBuffers[b], this.bmdRect, this.bmdPoint, null, null, !0));
+ this.DSI[b] = g;
+ this.DEI[b] = g + r;
+ this.DSJ[b] = c;
+ this.DEJ[b] = c + p
+ },
+ updateTileGFX: function(a, b, c, d) {
+ null == d && (d = !1);
+ var e = c >= this.DEJ[a] || b >= this.DEI[a] ||
+ c < this.DSJ[a] || b < this.DSI[a];
+ d && (e = !e);
+ if (e) {
+ d = this.data[a][b][c];
+ e = d & 1023;
+ if (0 != e) {
+ var p = f.TilesheetFrames[d >> 10 & 63][e];
+ this.bmdRect.x = (c % this.BufferTileW + this.BufferTileW) % this.BufferTileW * this.scaledTileSize;
+ this.bmdRect.y = (b % this.BufferTileH + this.BufferTileH) % this.BufferTileH * this.scaledTileSize;
+ this.bmdRect.width = this.bmdRect.height = this.scaledTileSize;
+ this.bmdBuffers[a].fillRect(this.bmdRect, 16777215);
+ f.CopyMcToBmd(this.bmdBuffers[a], d >> 10 & 63, e, -p[4] + c % this.BufferTileW * this.scaledTileSize, -p[5] +
+ b % this.BufferTileH * this.scaledTileSize, !1, this.scaledTileSize == this.tileSize ? -1 : this.scaledTileSize)
+ } else this.bmdRect.x = (c % this.BufferTileW + this.BufferTileW) % this.BufferTileW * this.scaledTileSize, this.bmdRect.y = (b % this.BufferTileH + this.BufferTileH) % this.BufferTileH * this.scaledTileSize, this.bmdRect.width = this.bmdRect.height = this.scaledTileSize, this.bmdBuffers[a].fillRect(this.bmdRect, 16777215);
+ return !0
+ }
+ return !1
+ },
+ horSideHit: function(a, b, c, d, e) {
+ var f = Math.floor((-this.offsetY + b - d + 1) / this.tileSize);
+ b =
+ Math.ceil((-this.offsetY + b + d - 1) / this.tileSize);
+ for (a = Math.floor((-this.offsetX + a + (c + 0.01) * e) / this.tileSize); f < b;)
+ if (c = f++, 0 <= c && 0 <= a && c < this.colData.length && a < this.colData[0].length && 1 == (this.colData[c][a] >> 16 & 15)) return !0;
+ return !1
+ },
+ verSideHit: function(a, b, c, d, e, f) {
+ null == f && (f = !1);
+ var r = Math.floor((-this.offsetX + a - c + 1) / this.tileSize);
+ a = Math.ceil((-this.offsetX + a + c - 1) / this.tileSize);
+ for (b = Math.floor((-this.offsetY + b + (d + 0.01) * e) / this.tileSize); r < a;)
+ if (d = r++, 0 <= b && 0 <= d && b < this.colData.length && d < this.colData[0].length &&
+ (1 == (this.colData[b][d] >> 16 & 15) || 1 == e && f && 9 == (this.colData[b][d] >> 16 & 15))) return !0;
+ return !1
+ },
+ horHitSet: function(a, b, c) {
+ return (Math.floor((a + (b + 0.01) * c) / this.tileSize) + (0 > c ? 1 : 0)) * this.tileSize - b * c
+ },
+ verHitSet: function(a, b, c) {
+ return (Math.floor((a + (b + 0.01) * c) / this.tileSize) + (0 > c ? 1 : 0)) * this.tileSize - b * c
+ },
+ GetMaxUpDY: function(a, b, c, d, e) {
+ a -= this.offsetX;
+ b -= this.offsetX;
+ c -= this.offsetY;
+ d /= e;
+ for (var f = Math.floor((c + e) / this.tileSize), r = Math.floor((c + 1) / this.tileSize) - 1;;) {
+ for (var g = (r + 1) * this.tileSize - c, k = g *
+ d, h = Math.floor((a + k) / this.tileSize), k = Math.floor((b + k) / this.tileSize) + 1; h < k;) {
+ var m = h++;
+ if (1 == (this.colData[r][m] >> 16 & 15)) return g
+ }--r;
+ if (!(r >= f)) break
+ }
+ return e
+ },
+ getSlope: function(a, b, c) {
+ var d = -this.offsetY + b + c,
+ e = -this.offsetX + a;
+ a = Math.floor(e / this.tileSize);
+ for (var e = e % this.tileSize, f = Math.floor((d - c) / this.tileSize), d = Math.floor(d / this.tileSize) + 1; f < d;) {
+ var r = f++;
+ if (0 <= r && 0 <= a && r < this.colData.length && a < this.colData[0].length) {
+ var g = this.colData[r][a] >> 16 & 15;
+ if (0 != g && 9 != g && 1 != g) {
+ var r = r * this.tileSize,
+ k;
+ switch (g) {
+ case 2:
+ k = e;
+ break;
+ case 3:
+ k = this.tileSize - e;
+ break;
+ case 4:
+ k = e / 2;
+ break;
+ case 5:
+ k = this.tileSize / 2 + e / 2;
+ break;
+ case 6:
+ k = (this.tileSize - e) / 2;
+ break;
+ case 7:
+ k = this.tileSize / 2 + (this.tileSize - e) / 2;
+ break;
+ default:
+ k = 0
+ }
+ if (r + k + this.offsetY - c < b) switch (g) {
+ case 2:
+ return 1;
+ case 3:
+ return -1;
+ case 4:
+ return 0.5;
+ case 5:
+ return 0.5;
+ case 6:
+ return -0.5;
+ case 7:
+ return -0.5;
+ default:
+ return 0
+ }
+ }
+ }
+ }
+ return 0
+ },
+ downHitSpecialSet: function(a, b, c) {
+ var d = -this.offsetY + b + c,
+ e = -this.offsetX + a;
+ a = Math.floor(e / this.tileSize);
+ for (var e = e % this.tileSize,
+ f = Math.floor((d - c) / this.tileSize), d = Math.floor(d / this.tileSize) + 1; f < d;) {
+ var r = f++;
+ if (0 <= r && 0 <= a && r < this.colData.length && a < this.colData[0].length) {
+ var g = this.colData[r][a] >> 16 & 15;
+ if (0 != g && 9 != g && 1 != g) {
+ r *= this.tileSize;
+ switch (g) {
+ case 2:
+ g = e;
+ break;
+ case 3:
+ g = this.tileSize - e;
+ break;
+ case 4:
+ g = e / 2;
+ break;
+ case 5:
+ g = this.tileSize / 2 + e / 2;
+ break;
+ case 6:
+ g = (this.tileSize - e) / 2;
+ break;
+ case 7:
+ g = this.tileSize / 2 + (this.tileSize - e) / 2;
+ break;
+ default:
+ g = 0
+ }
+ g = r + g;
+ if (g + this.offsetY - c < b) return g + this.offsetY - c
+ }
+ }
+ }
+ return NaN
+ },
+ __class__: v
+ };
+ var P = function() {}; s["oz.OzTween"] = P; P.__name__ = ["oz", "OzTween"]; P.Init = function() {
+ P.Tweens = [];
+ for (var a = 0; 400 > a;) {
+ var b = a++;
+ P.Tweens[b] = new P;
+ P.Tweens[b].PoolId = b
+ }
+ P.Head = null;
+ P.FreeId = 0;
+ P.NumTweens = 0
+ }; P.UpdateAll = function() {
+ if (null != P.Head) {
+ for (var a = P.Head; a.remove || (0 <= a.cnt && null != a.updateFunc && a.updateFunc(a.cnt / a.duration), a.cnt == a.duration && (null != a.endFunc && a.endFunc(), 0 == a.repeat ? a.remove = !0 : (0 < a.repeat && a.repeat--, a.cnt = 0)), a.cnt++), a = a.next, a != P.Head;);
+ P.RemoveRemove()
+ }
+ }; P.RemoveRemove =
+ function() {
+ for (var a = P.Head, b = 0, c = P.NumTweens; b < c;) {
+ b++;
+ var d = a.next;
+ a.remove && P.Remove(a);
+ a = d
+ }
+ }; P.New = function() {
+ var a = P.Tweens[P.FreeId++];
+ a.reset();
+ return a
+ }; P.Dispose = function(a) {
+ a.updateFunc = null;
+ a.endFunc = null;
+ var b = P.FreeId - 1,
+ c = a.PoolId,
+ d = P.Tweens[b];
+ P.Tweens[b] = P.Tweens[c];
+ P.Tweens[c] = d;
+ a.PoolId = b;
+ P.Tweens[c].PoolId = c;
+ P.FreeId--
+ }; P.Add = function(a) {
+ if (null == P.Head) P.Head = a, a.next = a.prev = a;
+ else {
+ var b = P.Head.prev;
+ b.next = a;
+ a.prev = b;
+ P.Head.prev = a;
+ a.next = P.Head
+ }
+ P.NumTweens++
+ }; P.Remove = function(a) {
+ if (P.Head ==
+ a)
+ if (a.next == a) P.Head = null;
+ else {
+ var b = P.Head.next,
+ c = P.Head.prev;
+ c.next = b;
+ b.prev = c;
+ P.Head = b
+ }
+ else b = a.next, c = a.prev, c.next = b, b.prev = c;
+ P.NumTweens--;
+ P.Dispose(a)
+ }; P.prototype = {
+ reset: function() {
+ this.remove = !1;
+ this.next = this.prev = this;
+ this.endFunc = this.updateFunc = null;
+ this.gameBound = this.stateBound = !0;
+ this.cnt = this.repeat = this.duration = 0
+ },
+ __class__: P
+ };
+ var Cc = function(a, b, c, d) {
+ this.x1 = a;
+ this.y1 = b;
+ this.x2 = c;
+ this.y2 = d
+ }; s["oz.Point2"] = Cc; Cc.__name__ = ["oz", "Point2"]; Cc.prototype = {
+ __class__: Cc
+ };
+ var Sc = function(a,
+ b, c, d, e) {
+ null == e && (e = !0);
+ this.target = a;
+ this.name = b;
+ this.start = c;
+ this.end = d;
+ this.change = this.end - this.start;
+ this.isField = e
+ }; s["oz.Property"] = Sc; Sc.__name__ = ["oz", "Property"]; Sc.prototype = {
+ __class__: Sc
+ };
+ var n = function(a, b, c) {
+ null == b && (b = 1);
+ n.Initted || n.Init();
+ this.initialized = !1;
+ this.alive = !0;
+ this.paused = !1;
+ this.target = a;
+ this.duration = Math.max(1, Math.round(1E3 * b)) | 0;
+ this.propertiesObject = c;
+ this.properties = [];
+ this._repeat = this.initialRepeat = 0;
+ this.special = this._snapping = this._smartRotation = this._reflect =
+ this._reverse = !1;
+ this.toggleVisible = !0;
+ this.tweenPrev = this.tweenNext = this;
+ this.eventPrev = this.eventNext = this;
+ this.targetPrev = this.targetNext = this;
+ this.active = !1;
+ this.timeDelay = 0;
+ this.easing = Ca.Linear;
+ this._level = n.CurLevel;
+ this._onUpdate = this._onComplete = this._onPause = this._onResume = this._onRepeat = this._onStop = null
+ }; s["oz.TweenOz"] = n; n.__name__ = ["oz", "TweenOz"]; n.GetTimeMS = function() {
+ return n.CurTimeMS
+ }; n.IncreaseLevel = function() {
+ n.CurLevel++
+ }; n.SetCurrentLevel = function(a) {
+ n.CurLevel = a
+ }; n.GetCurrentLevel =
+ function() {
+ return n.CurLevel
+ }; n.Init = function(a, b, c) {
+ null == b && (b = -1);
+ null == a && (a = -1);
+ n.Initted || (n.Initted = !0, 0 < b && (n.NumMSBuckets = b), n.MSBuckets = [], n.CurLevel = 2, n.CurTimeMS = 0, n.CustomElapsedMS = n.FrameElapsedMS = 0, n.ActiveTweensHead = new n, n.ProcessedTweensHead = new n, n.ProcessedEventsHead = new n, n.ProcessedTargetHead = new n, n.LevelPauses = [], n.TargetMap = new Oa, n.ResetMSPrecision(a))
+ }; n.ResetMSPrecision = function(a) {
+ null == a && (a = -1);
+ n.CustomElapsedMS += n.FrameElapsedMS;
+ n.FrameElapsedMS = 0;
+ 0 > a && (a = 60);
+ n.FPS =
+ a;
+ n.NumFrameUpdates = 0;
+ a = 1E3;
+ for (var b = n.FPS, c; 0 != b;) c = b, b = a % b, a = c;
+ n.FPS_MOD = n.FPS / a | 0;
+ n.FPS_MOD_TIME = 1E3 / a | 0
+ }; n.Update = function(a) {
+ null == a && (a = -1);
+ 0 > a ? (n.NumFrameUpdates++, a = Math.floor(n.NumFrameUpdates / n.FPS_MOD) * n.FPS_MOD_TIME + 1E3 / n.FPS * Math.floor(n.NumFrameUpdates % n.FPS_MOD) - n.FrameElapsedMS | 0, n.FrameElapsedMS += a) : n.CustomElapsedMS += a;
+ for (var b = 0; b < a;) {
+ b++;
+ var c = n.MSBuckets[n.CurTimeMS % n.NumMSBuckets];
+ if (null != c) {
+ for (; c.eventNext != c;) {
+ var d = c.eventNext;
+ d.timeEnd == n.CurTimeMS && d.processEndEvent(n.CurTimeMS);
+ d.eventPrev == c && n.ProcessedEventsHead.listAppendEvent(d)
+ }
+ c = n.MSBuckets[n.CurTimeMS % n.NumMSBuckets];
+ n.MSBuckets[n.CurTimeMS % n.NumMSBuckets] = n.ProcessedEventsHead;
+ n.ProcessedEventsHead = c
+ }
+ n.CurTimeMS++
+ }
+ for (; n.ActiveTweensHead.tweenNext != n.ActiveTweensHead;) b = n.ActiveTweensHead.tweenNext, n.CurTimeMS >= b.timeOffset && b.update(n.CurTimeMS), b.tweenPrev == n.ActiveTweensHead && n.ProcessedTweensHead.listAppendTween(b);
+ b = n.ActiveTweensHead;
+ n.ActiveTweensHead = n.ProcessedTweensHead;
+ n.ProcessedTweensHead = b
+ }; n.Reset =
+ function(a) {
+ null == a && (a = 1);
+ n.StopAll(a);
+ n.SetCurrentLevel(a)
+ }; n.StopAll = function(a) {
+ null == a && (a = 1);
+ for (n.Initted || n.Init(); n.ActiveTweensHead.tweenNext != n.ActiveTweensHead;) {
+ var b = n.ActiveTweensHead.tweenNext;
+ b._level >= a && b.stop();
+ b.tweenPrev == n.ActiveTweensHead && n.ProcessedTweensHead.listAppendTween(b)
+ }
+ a = n.ActiveTweensHead;
+ n.ActiveTweensHead = n.ProcessedTweensHead;
+ n.ProcessedTweensHead = a
+ }; n.PauseActiveAndIncreaseLevel = function() {
+ var a = n.GetCurrentLevel();
+ n.LevelPauses[a] = n.PauseAndGetAllActive();
+ n.IncreaseLevel()
+ }; n.PauseAndGetAllActive = function(a) {
+ null == a && (a = -1);
+ n.Initted || n.Init();
+ 0 > a && (a = n.CurLevel);
+ for (var b = []; n.ActiveTweensHead.tweenNext != n.ActiveTweensHead;) {
+ var c = n.ActiveTweensHead.tweenNext;
+ c._level == a && (c.pause(), b.push(c));
+ c.tweenPrev == n.ActiveTweensHead && n.ProcessedTweensHead.listAppendTween(c)
+ }
+ a = n.ActiveTweensHead;
+ n.ActiveTweensHead = n.ProcessedTweensHead;
+ n.ProcessedTweensHead = a;
+ return b
+ }; n.TargetKill = function(a) {
+ if (null != n.TargetMap.h.__keys__[a.__id__])
+ for (a = n.TargetMap.h[a.__id__]; a.targetNext !=
+ a;) a.targetNext.kill()
+ }; n.AddToTarget = function(a) {
+ null != a.target && (null == n.TargetMap.h.__keys__[a.target.__id__] && n.TargetMap.set(a.target, new n), n.TargetMap.h[a.target.__id__].listAppendTarget(a))
+ }; n.DelayedCall = function(a, b, c, d) {
+ a = new n(d, a, null);
+ a.onComplete(b, c);
+ a.onRepeat(b, c);
+ a.start();
+ return a
+ }; n.To = function(a, b, c) {
+ a = new n(a, b, c);
+ a.start();
+ return a
+ }; n.AddToEventQueue = function(a) {
+ var b = a.timeEnd % n.NumMSBuckets;
+ null == n.MSBuckets[b] && (n.MSBuckets[b] = new n);
+ n.MSBuckets[b].listAppendEvent(a)
+ }; n.CallMethod =
+ function(a, b) {
+ if (null == a) return null;
+ null == b && (b = []);
+ return a.apply(a, b)
+ }; n.prototype = {
+ kill: function() {
+ this.stop();
+ this.alive = !1
+ },
+ listRemoveTarget: function() {
+ null != this.target && this.targetPrev != this && (this.targetPrev.targetNext = this.targetNext, this.targetNext.targetPrev = this.targetPrev, this.targetPrev = this.targetNext = this, n.TargetMap.h[this.target.__id__].targetNext == n.TargetMap.h[this.target.__id__] && n.TargetMap.remove(this.target))
+ },
+ listAppendTarget: function(a) {
+ a.listRemoveTarget();
+ a.targetPrev =
+ this.targetPrev;
+ a.targetNext = this;
+ this.targetPrev = this.targetPrev.targetNext = a
+ },
+ listRemoveTween: function() {
+ this.tweenPrev.tweenNext = this.tweenNext;
+ this.tweenNext.tweenPrev = this.tweenPrev;
+ this.tweenPrev = this.tweenNext = this
+ },
+ listAppendTween: function(a) {
+ a.listRemoveTween();
+ a.tweenPrev = this.tweenPrev;
+ a.tweenNext = this;
+ this.tweenPrev = this.tweenPrev.tweenNext = a
+ },
+ listRemoveEvent: function() {
+ this.eventPrev.eventNext = this.eventNext;
+ this.eventNext.eventPrev = this.eventPrev;
+ this.eventPrev = this.eventNext = this
+ },
+ listAppendEvent: function(a) {
+ a.listRemoveEvent();
+ a.eventPrev = this.eventPrev;
+ a.eventNext = this;
+ this.eventPrev = this.eventPrev.eventNext = a
+ },
+ setStartEndTimes: function() {
+ this.timeOffset = this.timeStart + this.timeDelay;
+ this.timeEnd = this.timeOffset + this.duration
+ },
+ ease: function(a) {
+ this.easing = a;
+ return this
+ },
+ update: function(a) {
+ if (null != this.target) {
+ var b;
+ a = (a - this.timeOffset) / this.duration;
+ 1 < a ? a = 1 : 0 > a && (a = 0);
+ this.initialized || this.initialize();
+ if (this.special) {
+ a = this.easing.calculate(this._reverse ? 1 - a : a);
+ for (var c,
+ d = 0, e = this.properties.length; d < e;) b = d++, b = this.properties[b], !this._smartRotation || "rotation" != b.name && "rotationX" != b.name && "rotationY" != b.name && "rotationZ" != b.name ? c = b.start + b.change * a : (c = b.change % 360, 180 < c ? c -= 360 : -180 > c && (c += 360), c = b.start + c * a), c = this._snapping ? Math.round(c) : c, b.isField ? b.target[b.name] = c : Z.setProperty(b.target, b.name, c)
+ } else
+ for (a = this.easing.calculate(this._reverse ? 1 - a : a), d = 0, e = this.properties.length; d < e;) b = d++, b = this.properties[b], c = b.start + b.change * a, b.isField ? b.target[b.name] =
+ c : Z.setProperty(b.target, b.name, c)
+ }
+ n.CallMethod(this._onUpdate, this._onUpdateParams)
+ },
+ processEndEvent: function(a) {
+ if (0 == this._repeat) {
+ if (null != this.target && this.toggleVisible) {
+ a = this.target;
+ var b = null,
+ b = Object.prototype.hasOwnProperty.call(a, "alpha") ? Z.field(a, "alpha") : Z.getProperty(a, "alpha");
+ a = 0 == b
+ } else a = !1;
+ a && (a = this.target, !Object.prototype.hasOwnProperty.call(a, "visible") || a.__properties__ && a.__properties__.set_visible ? Z.setProperty(a, "visible", !1) : a.visible = !1);
+ this.complete(!0)
+ } else this._reflect &&
+ (this._reverse = !this._reverse), 0 < this._repeat && this._repeat--, n.CallMethod(this._onRepeat, this._onRepeatParams), this.timeStart = a, this.setStartEndTimes(), n.AddToEventQueue(this)
+ },
+ complete: function(a) {
+ null == a && (a = !0);
+ a && (n.CallMethod(this._onUpdate, this._onUpdateParams), n.CallMethod(this._onComplete, this._onCompleteParams));
+ this.stop()
+ },
+ start: function() {
+ !this.alive || this.active && !this.paused || (this.active = !0, this.paused = !1, this._repeat = this.initialRepeat, this.timeStart = n.GetTimeMS(), this.setStartEndTimes(),
+ n.ActiveTweensHead.listAppendTween(this), n.AddToEventQueue(this), n.AddToTarget(this))
+ },
+ stop: function() {
+ this.active && (this.paused = this.active = !1, n.CallMethod(this._onStop, this._onStopParams), this.listRemoveTween(), this.listRemoveEvent(), this.listRemoveTarget())
+ },
+ pause: function() {
+ !this.paused && this.active && (this.paused = !0, this.timePaused = n.GetTimeMS(), n.CallMethod(this._onPause, this._onPauseParams), this.listRemoveEvent(), this.listRemoveTween(), this.listRemoveTarget())
+ },
+ reflect: function(a) {
+ null == a &&
+ (a = !0);
+ 0 == this._repeat && this.repeat(1);
+ this._reflect = a;
+ return this
+ },
+ repeat: function(a) {
+ null == a && (a = -1);
+ this._repeat = this.initialRepeat = a;
+ return this
+ },
+ onUpdate: function(a, b) {
+ this._onUpdate = a;
+ this._onUpdateParams = b;
+ return this
+ },
+ onRepeat: function(a, b) {
+ this._onRepeat = a;
+ this._onRepeatParams = b;
+ return this
+ },
+ onComplete: function(a, b) {
+ this._onComplete = a;
+ this._onCompleteParams = b;
+ return this
+ },
+ initialize: function() {
+ for (var a, b = 0, c = Z.fields(this.propertiesObject); b < c.length;) {
+ var d = c[b];
+ ++b;
+ var e = !0;
+ !Object.prototype.hasOwnProperty.call(this.target,
+ d) || this.target.__properties__ && this.target.__properties__["set_" + d] ? (e = !1, a = Z.getProperty(this.target, d)) : a = Z.field(this.target, d);
+ if ("number" == typeof a) {
+ var f = this.propertiesObject,
+ r = null,
+ f = r = Object.prototype.hasOwnProperty.call(f, d) ? Z.field(f, d) : Z.getProperty(f, d);
+ null == a && (a = 0);
+ null == f && (f = 0);
+ a = new Sc(this.target, d, a, f, e);
+ this.properties.push(a)
+ }
+ }
+ this.initialized = !0
+ },
+ __class__: n
+ };
+ var L = s["ozity.Message"] = {
+ __ename__: ["ozity", "Message"],
+ __constructs__: "PLAYER_DIE PLAYER_WIN PLAYER_JUMP SMASH_BRICK ENEMY_DIE SHOW_JUMP GET_COIN GET_KEY GET_BANANA OPEN_DOOR SPRING_JUMP BARREL_SHOT ENTER_BARREL TELEPORT TRIGGER".split(" ")
+ }; L.PLAYER_DIE = ["PLAYER_DIE", 0]; L.PLAYER_DIE.toString = F; L.PLAYER_DIE.__enum__ = L; L.PLAYER_WIN = ["PLAYER_WIN", 1]; L.PLAYER_WIN.toString = F; L.PLAYER_WIN.__enum__ = L; L.PLAYER_JUMP = ["PLAYER_JUMP", 2]; L.PLAYER_JUMP.toString = F; L.PLAYER_JUMP.__enum__ = L; L.SMASH_BRICK = ["SMASH_BRICK", 3]; L.SMASH_BRICK.toString = F; L.SMASH_BRICK.__enum__ = L; L.ENEMY_DIE = ["ENEMY_DIE", 4]; L.ENEMY_DIE.toString = F; L.ENEMY_DIE.__enum__ = L; L.SHOW_JUMP = ["SHOW_JUMP", 5]; L.SHOW_JUMP.toString = F; L.SHOW_JUMP.__enum__ = L; L.GET_COIN = ["GET_COIN", 6]; L.GET_COIN.toString =
+ F; L.GET_COIN.__enum__ = L; L.GET_KEY = function(a) {
+ a = ["GET_KEY", 7, a];
+ a.__enum__ = L;
+ a.toString = F;
+ return a
+ }; L.GET_BANANA = ["GET_BANANA", 8]; L.GET_BANANA.toString = F; L.GET_BANANA.__enum__ = L; L.OPEN_DOOR = ["OPEN_DOOR", 9]; L.OPEN_DOOR.toString = F; L.OPEN_DOOR.__enum__ = L; L.SPRING_JUMP = ["SPRING_JUMP", 10]; L.SPRING_JUMP.toString = F; L.SPRING_JUMP.__enum__ = L; L.BARREL_SHOT = ["BARREL_SHOT", 11]; L.BARREL_SHOT.toString = F; L.BARREL_SHOT.__enum__ = L; L.ENTER_BARREL = ["ENTER_BARREL", 12]; L.ENTER_BARREL.toString = F; L.ENTER_BARREL.__enum__ =
+ L; L.TELEPORT = ["TELEPORT", 13]; L.TELEPORT.toString = F; L.TELEPORT.__enum__ = L; L.TRIGGER = ["TRIGGER", 14]; L.TRIGGER.toString = F; L.TRIGGER.__enum__ = L;
+ var Q = s["ozity.ColType"] = {
+ __ename__: ["ozity", "ColType"],
+ __constructs__: "Player Dispatcher Enemy Key Banana Door TeleportIn AnyType Shuryken Spikes Barrel Bumpy Collector".split(" ")
+ }; Q.Player = ["Player", 0]; Q.Player.toString = F; Q.Player.__enum__ = Q; Q.Dispatcher = ["Dispatcher", 1]; Q.Dispatcher.toString = F; Q.Dispatcher.__enum__ = Q; Q.Enemy = ["Enemy", 2]; Q.Enemy.toString = F; Q.Enemy.__enum__ = Q; Q.Key = ["Key", 3]; Q.Key.toString = F; Q.Key.__enum__ = Q; Q.Banana = ["Banana", 4]; Q.Banana.toString = F; Q.Banana.__enum__ = Q; Q.Door = ["Door", 5]; Q.Door.toString = F; Q.Door.__enum__ = Q; Q.TeleportIn = ["TeleportIn", 6]; Q.TeleportIn.toString = F; Q.TeleportIn.__enum__ = Q; Q.AnyType = ["AnyType", 7]; Q.AnyType.toString = F; Q.AnyType.__enum__ = Q; Q.Shuryken = ["Shuryken", 8]; Q.Shuryken.toString = F; Q.Shuryken.__enum__ = Q; Q.Spikes = ["Spikes", 9]; Q.Spikes.toString = F; Q.Spikes.__enum__ = Q; Q.Barrel = ["Barrel", 10]; Q.Barrel.toString =
+ F; Q.Barrel.__enum__ = Q; Q.Bumpy = ["Bumpy", 11]; Q.Bumpy.toString = F; Q.Bumpy.__enum__ = Q; Q.Collector = ["Collector", 12]; Q.Collector.toString = F; Q.Collector.__enum__ = Q;
+ var Ma = s["ozity.BlockColor"] = {
+ __ename__: ["ozity", "BlockColor"],
+ __constructs__: ["Purple", "Orange", "Red", "Teal"]
+ }; Ma.Purple = ["Purple", 0]; Ma.Purple.toString = F; Ma.Purple.__enum__ = Ma; Ma.Orange = ["Orange", 1]; Ma.Orange.toString = F; Ma.Orange.__enum__ = Ma; Ma.Red = ["Red", 2]; Ma.Red.toString = F; Ma.Red.__enum__ = Ma; Ma.Teal = ["Teal", 3]; Ma.Teal.toString = F; Ma.Teal.__enum__ =
+ Ma;
+ var ba = s["ozity.RightAngle"] = {
+ __ename__: ["ozity", "RightAngle"],
+ __constructs__: ["TopLeft", "TopRight", "BottomLeft", "BottomRight"]
+ }; ba.TopLeft = ["TopLeft", 0]; ba.TopLeft.toString = F; ba.TopLeft.__enum__ = ba; ba.TopRight = ["TopRight", 1]; ba.TopRight.toString = F; ba.TopRight.__enum__ = ba; ba.BottomLeft = ["BottomLeft", 2]; ba.BottomLeft.toString = F; ba.BottomLeft.__enum__ = ba; ba.BottomRight = ["BottomRight", 3]; ba.BottomRight.toString = F; ba.BottomRight.__enum__ = ba;
+ var Db = s["ozity.Axis2D"] = {
+ __ename__: ["ozity", "Axis2D"],
+ __constructs__: ["Vertical",
+ "Horizontal"
+ ]
+ }; Db.Vertical = ["Vertical", 0]; Db.Vertical.toString = F; Db.Vertical.__enum__ = Db; Db.Horizontal = ["Horizontal", 1]; Db.Horizontal.toString = F; Db.Horizontal.__enum__ = Db;
+ var yb = function() {}; s["ozity.OzBG"] = yb; yb.__name__ = ["ozity", "OzBG"]; yb.DrawBG = function(a, b, c, d) {
+ Math.abs(f.BGMaxY - f.BGMinY);
+ var e = 1;
+ d = 1;
+ null != oa.instance && null != oa.instance.camera ? (e = oa.instance.camera, b = -e.gameScreenEdgeX(), c = -e.gameScreenEdgeY(), d = e.getZoomX(), e = e.getZoomY()) : (b = -yb.X, c = -yb.Y);
+ switch (a) {
+ case 0:
+ f.RenderBGImage(q.tileBGRect,
+ b % 256 * d, c % 256 * e, d, 1, Math.floor(256 * d), Math.floor(256 * e), !0, !0)
+ }
+ };
+ var N = function(a, b, c) {
+ this.gameObject = null;
+ this.gameObject = a;
+ this.compPrefab = b;
+ this.compLevel = c
+ }; s["ozity.OzComponent"] = N; N.__name__ = ["ozity", "OzComponent"]; N.GetClass = function(a) {
+ var b = N.StringToClass;
+ if (null != O[a] ? !b.existsReserved(a) : !b.h.hasOwnProperty(a)) {
+ var b = N.StringToClass,
+ c = U.resolveClass("ozity." + a);
+ null != O[a] ? b.setReserved(a, c) : b.h[a] = c
+ }
+ b = N.StringToClass;
+ return null != O[a] ? b.getReserved(a) : b.h[a]
+ }; N.Init = function(a) {
+ if (null ==
+ N.StringToXml) {
+ N.StringToXml = new X;
+ for (a = a.elementsNamed("c"); a.hasNext();) {
+ var b = a.next(),
+ c = N.StringToXml,
+ d = b.get("n");
+ null != O[d] ? c.setReserved(d, b) : c.h[d] = b
+ }
+ N.StringToClass = new X
+ }
+ }; N.prototype = {
+ DontCallMe: function() {},
+ init: function() {},
+ postInit: function() {},
+ update: function() {},
+ postUpdate: function() {},
+ destroy: function() {
+ n.TargetKill(this)
+ },
+ directMessage: function(a) {},
+ __class__: N
+ };
+ var Ga = function(a, b, c) {
+ this.num = 0;
+ this.BubbleDuration = 30;
+ N.call(this, a, b, c);
+ null != b.get("BubbleDuration") && (this.BubbleDuration =
+ K.parseInt(b.get("BubbleDuration")))
+ }; s["ozity.OzBanana"] = Ga; Ga.__name__ = ["ozity", "OzBanana"]; Ga.StaticInit = function() {
+ Ga.NumBananas = 0;
+ m.AddCollisionListener(Q.Collector, Q.Banana, Ga.GetBanana)
+ }; Ga.GetBanana = function(a, b) {
+ var c = a.getComponent(z);
+ if (c.isPlayer) {
+ var d = b.getComponent(Ga);
+ z.ProblemSolution == d.num ? (d = b.graphics.getGameSprite(), ca.EmitInCircle(d.parent, q.cmcStarGold, d.get_x() + b.geometry.x, d.get_y() + b.geometry.y, 0.1, 5, 30, 15, 0.1), b.kill(), c.eatCircle(), oa.instance.sendMessage(L.GET_BANANA)) :
+ c.die()
+ }
+ }; Ga.__super__ = N; Ga.prototype = R(N.prototype, {
+ postInit: function() {
+ N.prototype.postInit.call(this);
+ Ga.NumBananas++;
+ z.Bananas.push(this);
+ var a = this.sprNum = f.New(q.ctxtMathFont);
+ a.set_x(-14);
+ a.set_y(-16);
+ this.gameObject.graphics.getGameSprite().addChild(this.sprNum);
+ this.setNumber(z.GetPossibleAnswer())
+ },
+ setNumber: function(a) {
+ null == a && (a = 0);
+ this.num = a;
+ t.TextMath(this.sprNum, "" + a, V.CENTER)
+ },
+ destroy: function() {
+ N.prototype.destroy.call(this);
+ for (var a = 0, b = z.Bananas.length; a < b;) {
+ var c = a++;
+ if (z.Bananas[c] ==
+ this) {
+ z.Bananas.splice(c, 1);
+ Ga.NumBananas--;
+ break
+ }
+ }
+ },
+ __class__: Ga
+ });
+ var Da = s["ozity.CameraState"] = {
+ __ename__: ["ozity", "CameraState"],
+ __constructs__: ["NORMAL", "SLOW"]
+ }; Da.NORMAL = ["NORMAL", 0]; Da.NORMAL.toString = F; Da.NORMAL.__enum__ = Da; Da.SLOW = ["SLOW", 1]; Da.SLOW.toString = F; Da.SLOW.__enum__ = Da;
+ var ka = function(a) {
+ this.rightCCs = new va;
+ this.leftCCs = new va;
+ this.bottomCCs = new va;
+ this.topCCs = new va;
+ this.customUpdate = !1;
+ this.watchable = null;
+ this.lastWatchableX = this.horizontalOffset = this.curX = this.curY = this.targetX =
+ this.targetY = 0;
+ this.cameraState = Da.NORMAL;
+ this.started = !1;
+ this.earthQuakeDuration = this.earthQuakeMagnitude = 0;
+ this.screenSprite = a;
+ this.topYOffset = l.HEIGHT_MIN / 3;
+ this.bottomYOffSet = 2 * l.HEIGHT_MIN / 3;
+ ka.HORIZONTAL_OFFSET_DISTANCE = l.WIDTH_MIN / 4;
+ this.horizontalOffset = ka.HORIZONTAL_OFFSET_DISTANCE / 2;
+ this.isCenterFixed = !1
+ }; s["ozity.OzCamera"] = ka; ka.__name__ = ["ozity", "OzCamera"]; ka.sortHorizontal = function(a, b) {
+ return a.j - b.j
+ }; ka.sortVertical = function(a, b) {
+ return a.i - b.i
+ }; ka.prototype = {
+ makeCenterFixed: function() {
+ this.isCenterFixed = !0
+ },
+ setWatchable: function(a) {
+ this.watchable = a;
+ this.targetX = a.physics.x - l.WIDTH_MIN / 2;
+ this.targetY = a.physics.y - l.HEIGHT_MIN / 2;
+ this.lastWatchableX = a.physics.x
+ },
+ getAdjustedCamX: function(a, b, c) {
+ a + b > this.rightX && (a = this.rightX - b);
+ a < this.leftX && (a = this.leftX);
+ this.rightX - this.leftX < b && (a = this.leftX - (b - (this.rightX - this.leftX)) / 2);
+ a + b > this.boundsRightX && (a = this.boundsRightX - b);
+ a < this.boundsLeftX && (a = this.boundsLeftX);
+ return a
+ },
+ getAdjustedCamY: function(a, b, c) {
+ a + b > this.bottomY && (a = this.bottomY - b);
+ a < this.topY &&
+ (a = this.topY);
+ this.bottomY - this.topY < b && (a = this.topY - (b - (this.bottomY - this.topY)) / 2);
+ a + b > this.boundsBottomY && (a = this.boundsBottomY - b);
+ a < this.boundsTopY && (a = this.boundsTopY);
+ return a
+ },
+ update: function() {
+ if (!this.customUpdate) {
+ var a = oa.instance.tileMap,
+ b = this.getZoomX(),
+ c = this.getZoomY();
+ if (null != this.watchable) {
+ var d = ka.MAX_CAMERA_SPEED;
+ this.started ? this.cameraState == Da.SLOW && (d /= 3) : (this.started = !0, d = 1E5, this.curX = this.targetX, this.curY = this.targetY);
+ var e = this.watchable.physics.x,
+ p = this.watchable.physics.y,
+ r = this.watchable.geometry.getVerticalBoundary(-1),
+ g = this.watchable.geometry.getVerticalBoundary(1);
+ this.isCenterFixed ? (this.targetX = e - l.WIDTH / 2, this.targetY = p - l.HEIGHT / 2) : (p + r < this.targetY + this.topYOffset && (this.targetY = p + r - this.topYOffset), p + g > this.targetY + this.bottomYOffSet && (this.targetY = p + g - this.bottomYOffSet), this.horizontalOffset += 0.8 * (this.watchable.physics.x - this.lastWatchableX), this.horizontalOffset = Math.max(-ka.HORIZONTAL_OFFSET_DISTANCE / 2, Math.min(this.horizontalOffset, ka.HORIZONTAL_OFFSET_DISTANCE /
+ 2)), this.targetX = this.watchable.physics.x - l.WIDTH / 2 + this.horizontalOffset);
+ this.lastWatchableX = this.watchable.physics.x;
+ p = Math.floor((p + this.watchable.geometry.y - a.offsetY) / a.tileSize);
+ e = Math.floor((e + this.watchable.geometry.x - a.offsetX) / a.tileSize);
+ this.boundsTopY = 0 * a.tileSize + a.offsetY;
+ this.boundsBottomY = a.allocRows * a.tileSize + a.offsetY;
+ this.boundsLeftX = 0 * a.tileSize + a.offsetX;
+ this.boundsRightX = a.allocCols * a.tileSize + a.offsetX;
+ this.topY = this.boundsTopY;
+ for (r = this.topCCs.keys(); r.hasNext();)
+ for (var g =
+ r.next(), k = this.topCCs.h[g], h = 0, m = k.length; h < m;) {
+ var w = h++,
+ n = k[w];
+ if (w + 1 == k.length)
+ if (n.j <= e && n.rightAngle == ba.BottomRight) {
+ if (g == p ? n.crossed = !0 : g < p && (n.crossed = !1), g <= p || n.crossed && !n.allowDisable) this.topY = Math.max(this.topY, g * a.tileSize + a.offsetY + n.offset)
+ } else n.crossed = !1;
+ else if (w = k[w + 1], n.j <= e && w.j >= e && n.rightAngle == ba.BottomRight && w.rightAngle == ba.BottomLeft) {
+ if (g == p ? n.crossed = !0 : g < p && (n.crossed = !1), g <= p || n.crossed && !n.allowDisable) this.topY = Math.max(this.topY, g * a.tileSize + a.offsetY + n.offset)
+ } else n.crossed = !1
+ }
+ this.bottomY = this.boundsBottomY;
+ for (r = this.bottomCCs.keys(); r.hasNext();)
+ for (g = r.next(), k = this.bottomCCs.h[g], h = 0, m = k.length; h < m;)
+ if (w = h++, n = k[w], w + 1 == k.length)
+ if (n.j <= e && n.rightAngle == ba.TopRight) {
+ if (g == p ? n.crossed = !0 : g > p && (n.crossed = !1), g >= p || n.crossed && !n.allowDisable) this.bottomY = Math.min(this.bottomY, (g + 1) * a.tileSize + a.offsetY + n.offset)
+ } else n.crossed = !1;
+ else if (w = k[w + 1], n.j <= e && w.j >= e && n.rightAngle == ba.TopRight && w.rightAngle == ba.TopLeft) {
+ if (g == p ? n.crossed = !0 : g > p && (n.crossed = !1), g >= p || n.crossed &&
+ !n.allowDisable) this.bottomY = Math.min(this.bottomY, (g + 1) * a.tileSize + a.offsetY + n.offset)
+ } else n.crossed = !1;
+ this.leftX = this.boundsLeftX;
+ for (r = this.leftCCs.keys(); r.hasNext();)
+ for (g = r.next(), k = this.leftCCs.h[g], h = 0, m = k.length; h < m;)
+ if (w = h++, n = k[w], w + 1 == k.length)
+ if (n.i <= p && n.rightAngle == ba.BottomRight) {
+ if (g == e ? n.crossed = !0 : g < e && (n.crossed = !1), g <= e || n.crossed && !n.allowDisable) this.leftX = Math.max(this.leftX, g * a.tileSize + a.offsetX + n.offset)
+ } else n.crossed = !1;
+ else if (w = k[w + 1], n.i <= p && w.i >= p && n.rightAngle ==
+ ba.BottomRight && w.rightAngle == ba.TopRight) {
+ if (g == e ? n.crossed = !0 : g < e && (n.crossed = !1), g <= e || n.crossed && !n.allowDisable) this.leftX = Math.max(this.leftX, g * a.tileSize + a.offsetX + n.offset)
+ } else n.crossed = !1;
+ this.rightX = this.boundsRightX;
+ for (r = this.rightCCs.keys(); r.hasNext();)
+ for (g = r.next(), k = this.rightCCs.h[g], h = 0, m = k.length; h < m;)
+ if (w = h++, n = k[w], w + 1 == k.length)
+ if (n.i <= p && n.rightAngle == ba.BottomLeft) {
+ if (g == e ? n.crossed = !0 : g > e && (n.crossed = !1), g >= e || n.crossed && !n.allowDisable) this.rightX = Math.min(this.rightX,
+ (g + 1) * a.tileSize + a.offsetX + n.offset)
+ } else n.crossed = !1;
+ else if (w = k[w + 1], n.i <= p && w.i >= p && n.rightAngle == ba.BottomLeft && w.rightAngle == ba.TopLeft) {
+ if (g == e ? n.crossed = !0 : g > e && (n.crossed = !1), g >= e || n.crossed && !n.allowDisable) this.rightX = Math.min(this.rightX, (g + 1) * a.tileSize + a.offsetX + n.offset)
+ } else n.crossed = !1;
+ this.slackX = Math.floor((l.WIDTH - l.WIDTH_MIN) / 2);
+ this.slackY = Math.floor((l.HEIGHT - l.HEIGHT_MIN) / 2);
+ p = l.WIDTH / b;
+ e = l.HEIGHT / c;
+ r = (l.WIDTH - p) / 2;
+ g = (l.HEIGHT - e) / 2;
+ this.targetX = this.getAdjustedCamX(this.targetX +
+ r, p);
+ this.targetY = this.getAdjustedCamY(this.targetY + g, e);
+ this.targetX = this.targetX - r + this.slackX / b;
+ this.targetY = this.targetY - g + this.slackY / c;
+ x.ReachMaxSpeed2D(this.curX, this.curY, this.targetX, this.targetY, d, ka.tempVec);
+ this.curX = Math.round(ka.tempVec[0]);
+ this.curY = Math.round(ka.tempVec[1])
+ } else this.curX = this.curY = 0;
+ this.screenSprite.set_x(-(this.curX + l.WIDTH_MIN * (1 - 1 / b) / 2) * b);
+ this.screenSprite.set_y(-(this.curY + l.HEIGHT_MIN * (1 - 1 / c) / 2) * c);
+ 0 != this.earthQuakeDuration && (b = this.screenSprite, b.set_x(b.get_x() +
+ Math.round(Math.random() * this.earthQuakeMagnitude * 2 - this.earthQuakeMagnitude)), b = this.screenSprite, b.set_y(b.get_y() + Math.round(Math.random() * this.earthQuakeMagnitude * 2 - this.earthQuakeMagnitude)));
+ 0 < this.earthQuakeDuration && this.earthQuakeDuration--;
+ ka.zoomedThisFrame && (this.screenSprite._updateOldValues(), ka.zoomedThisFrame = !1);
+ f.UpdateBG(oa.instance.bgSprite, -this.screenSprite.get_x(), -this.screenSprite.get_y(), 0 * a.tileSize + a.offsetY, a.allocRows * a.tileSize + a.offsetY - l.HEIGHT_MIN)
+ }
+ },
+ getZoomX: function() {
+ return this.screenSprite.get_scaleX()
+ },
+ getZoomY: function() {
+ return this.screenSprite.get_scaleY()
+ },
+ gameScreenEdgeX: function() {
+ var a = this.screenSprite;
+ return -((a.noInterpolation ? a._x : Math.round(128 * ((1 - f.DeltaT) * a._oldX + f.DeltaT * a._x)) / 128) + Math.floor((l.WIDTH - l.WIDTH_MIN) / 2)) / this.getZoomX()
+ },
+ gameScreenEdgeY: function() {
+ var a = this.screenSprite;
+ return -((a.noInterpolation ? a._y : Math.round(128 * ((1 - f.DeltaT) * a._oldY + f.DeltaT * a._y)) / 128) + Math.floor((l.HEIGHT - l.HEIGHT_MIN) / 2)) / this.getZoomY()
+ },
+ toWorldX: function(a) {
+ return a / this.getZoomX() + this.gameScreenEdgeX()
+ },
+ toWorldY: function(a) {
+ return a / this.getZoomY() + this.gameScreenEdgeY()
+ },
+ addCameraController: function(a) {
+ if (1 == a.axis[1]) {
+ var b = null,
+ b = a.i;
+ a.rightAngle == ba.BottomLeft || a.rightAngle == ba.BottomRight ? (this.topCCs.h.hasOwnProperty(b) || (this.topCCs.h[b] = []), b = this.topCCs.h[b]) : (this.bottomCCs.h.hasOwnProperty(b) || (this.bottomCCs.h[b] = []), b = this.bottomCCs.h[b]);
+ b.push(a);
+ b.sort(ka.sortHorizontal)
+ } else b = null, b = a.j, a.rightAngle == ba.TopRight || a.rightAngle == ba.BottomRight ? (this.leftCCs.h.hasOwnProperty(b) || (this.leftCCs.h[b] = []), b = this.leftCCs.h[b]) : (this.rightCCs.h.hasOwnProperty(b) || (this.rightCCs.h[b] = []), b = this.rightCCs.h[b]), b.push(a), b.sort(ka.sortVertical)
+ },
+ addEarthQuake: function(a, b) {
+ null == b && (b = 3);
+ this.earthQuakeMagnitude = b;
+ 0 <= this.earthQuakeDuration && this.earthQuakeDuration < a && (this.earthQuakeDuration = a)
+ },
+ __class__: ka
+ };
+ var Tc = function(a, b, c) {
+ this.crossed = !1;
+ this.i = this.j = 0;
+ this.allowDisable = !0;
+ this.offset = 0;
+ this.rightAngle = ba.BottomLeft;
+ this.axis = Db.Horizontal;
+ N.call(this, a, b, c);
+ null != c.get("axis") && (this.axis =
+ U.createEnum(Db, c.get("axis"), null));
+ null != c.get("rightAngle") && (this.rightAngle = U.createEnum(ba, c.get("rightAngle"), null));
+ null != c.get("offset") && (this.offset = parseFloat(c.get("offset")));
+ null != c.get("allowDisable") && (this.allowDisable = "true" == c.get("allowDisable"))
+ }; s["ozity.OzCameraController"] = Tc; Tc.__name__ = ["ozity", "OzCameraController"]; Tc.__super__ = N; Tc.prototype = R(N.prototype, {
+ init: function() {
+ var a = this.gameObject.gameSystem.tileMap;
+ this.i = Math.floor((this.gameObject.transform.y + this.gameObject.geometry.y -
+ a.offsetY) / a.tileSize);
+ a = this.gameObject.gameSystem.tileMap;
+ this.j = Math.floor((this.gameObject.transform.x + this.gameObject.geometry.x - a.offsetX) / a.tileSize);
+ this.gameObject.gameSystem.camera.addCameraController(this)
+ },
+ __class__: Tc
+ });
+ var ib = function(a, b, c) {
+ this.visible = !1;
+ this.killOnDispatch = !0;
+ this.message = L.PLAYER_WIN;
+ N.call(this, a, b, c);
+ null != c.get("message") && (this.message = U.createEnum(L, c.get("message"), null));
+ null != c.get("killOnDispatch") && (this.killOnDispatch = "true" == c.get("killOnDispatch"));
+ null != c.get("visible") && (this.visible = "true" == c.get("visible"))
+ }; s["ozity.OzEventSender"] = ib; ib.__name__ = ["ozity", "OzEventSender"]; ib.StaticInit = function() {
+ m.AddCollisionListener(Q.Player, Q.Dispatcher, ib.DispatchEvent)
+ }; ib.DispatchEvent = function(a, b) {
+ var c = S.__cast(b.getComponent(ib), ib);
+ oa.instance.sendMessage(c.message);
+ c.killOnDispatch && (c.gameObject.dead = !0)
+ }; ib.__super__ = N; ib.prototype = R(N.prototype, {
+ postInit: function() {
+ this.gameObject.graphics.getGameSprite().set_visible(this.visible)
+ },
+ __class__: ib
+ });
+ var Ha = function(a, b, c) {
+ this.cnt = 0;
+ this.transform = this.geometry = this.graphics = this.physics = this.children = null;
+ this.dead = !1;
+ this.gameSystem = a;
+ this.objPrefab = b;
+ this.objLevel = c;
+ this.components = [];
+ this.transform = new jb(this, c);
+ this.components.push(this.transform);
+ var d = null;
+ if (null != c)
+ for (var e = c.elementsNamed("geometry"); e.hasNext();) {
+ d = e.next();
+ break
+ }
+ if (null == d && (d = null, null != b))
+ for (e = b.elementsNamed("geometry"); e.hasNext();) {
+ d = e.next();
+ break
+ }
+ null != d && (this.geometry = new ja(this, d), this.components.push(this.geometry));
+ d = null;
+ if (null != b)
+ for (e = b.elementsNamed("graphics"); e.hasNext();) {
+ d = e.next();
+ break
+ }
+ null != d && (this.graphics = new da(this, d), this.components.push(this.graphics));
+ for (d = b.elements(); d.hasNext();) {
+ e = d.next();
+ if (e.nodeType != B.Element) throw new D("Bad node type, expected Element but found " + e.nodeType);
+ var f = null;
+ switch (e.nodeName) {
+ case "body":
+ if (null != this.physics) throw new D(new Bb("Physics already initialized"));
+ f = this.physics = new m(this, e);
+ break;
+ case "c":
+ var f = e.get("n"),
+ r = null;
+ if (null != c)
+ for (var g =
+ c.elementsNamed("c"); g.hasNext();) {
+ var k = g.next(),
+ h = k.get("n");
+ if (null != h && h == f) {
+ r = k;
+ break
+ }
+ }
+ null == r && (r = e);
+ f = U.createInstance(N.GetClass(f), [this, e, r])
+ }
+ null != f && this.components.push(f)
+ }
+ for (b = b.elementsNamed("object"); b.hasNext();) c = b.next(), null == this.children && (this.children = []), e = Ha.StringToXml, d = c.get("type"), c = new Ha(a, null != O[d] ? e.getReserved(d) : e.h[d], c), c.transform.fromParent(this.transform), a.addGameObject(c), this.children.push(c)
+ }; s["ozity.OzGameObject"] = Ha; Ha.__name__ = ["ozity", "OzGameObject"]; Ha.Init = function(a) {
+ if (null == Ha.StringToXml) {
+ Ha.StringToXml = new X;
+ var b = null;
+ if (null != a)
+ for (a = a.elementsNamed("objects"); a.hasNext();) {
+ b = a.next();
+ break
+ }
+ for (b = b.elementsNamed("object"); b.hasNext();) {
+ a = b.next();
+ var c = Ha.StringToXml,
+ d = a.get("type");
+ null != O[d] ? c.setReserved(d, a) : c.h[d] = a
+ }
+ }
+ }; Ha.prototype = {
+ getComponent: function(a) {
+ for (var b = 0, c = this.components; b < c.length;) {
+ var d = c[b];
+ ++b;
+ if (S.__instanceof(d, a)) return d
+ }
+ return null
+ },
+ init: function() {
+ for (var a = 0, b = this.components; a < b.length;) {
+ var c = b[a];
+ ++a;
+ c.init()
+ }
+ },
+ postInit: function() {
+ for (var a = 0, b = this.components; a < b.length;) {
+ var c = b[a];
+ ++a;
+ c.postInit()
+ }
+ },
+ update: function() {
+ this.cnt++;
+ for (var a = 0, b = this.components; a < b.length;) {
+ var c = b[a];
+ ++a;
+ c.update()
+ }
+ },
+ postUpdate: function() {
+ for (var a = 0, b = this.components; a < b.length;) {
+ var c = b[a];
+ ++a;
+ c.postUpdate()
+ }
+ },
+ destroy: function() {
+ n.TargetKill(this);
+ this.dead = !0;
+ for (var a = this.components.length, b = 0; b < a;) {
+ var c = b++;
+ this.components[a - c - 1].destroy()
+ }
+ },
+ getType: function() {
+ return null != this.objLevel && null != this.objLevel.get("type") ?
+ this.objLevel.get("type") : null != this.objPrefab && null != this.objPrefab.get("type") ? this.objPrefab.get("type") : null
+ },
+ kill: function() {
+ this.dead = !0
+ },
+ __class__: Ha
+ };
+ var oa = function(a, b, c, d, e, p, r, g) {
+ null == g && (g = 0);
+ null == r && (r = !1);
+ this.eventsListeners = [];
+ this.worldLeft = this.worldRight = this.worldTop = this.worldBottom = -1;
+ this.player = null;
+ this.updateFrame = this.deltaTime = this.flags = 0;
+ this.gravity = 1E3;
+ this.levelProgress = this.levelXml = null;
+ this.updatingWorld = !1;
+ this.bgSprite = null;
+ this.pausedCounter = 0;
+ oa.instance =
+ this;
+ a.addChild(this.doc = f.New());
+ this.levelXml = b;
+ this.tileMap = c;
+ this.gravity = d;
+ this.bgSprite = e;
+ this.flags = g;
+ this.levelProgress = $a.getInstance(t.currentLevel);
+ this.levelProgress.clearTemps();
+ this.worldLeft = -1 * c.tileSize + c.offsetX;
+ this.worldTop = -1 * c.tileSize + c.offsetY;
+ this.worldRight = (c.allocCols + 1) * c.tileSize + c.offsetX;
+ this.worldBottom = (c.allocRows + 1) * c.tileSize + c.offsetY;
+ this.gameObjects = [];
+ m.PreStaticInit();
+ z.StaticInit();
+ Ga.StaticInit();
+ ib.StaticInit();
+ this.doc.addChild(this.objectSprite = f.New());
+ this.camera = new ka(this.objectSprite);
+ this.objectSpriteDepths = [];
+ a = 0;
+ for (d = oa.NUM_GFX_LAYERS; a < d;) e = a++, this.objectSpriteDepths[e] = f.New(), this.objectSprite.addChild(this.objectSpriteDepths[e]), this.objectSpriteDepths[e].flags |= 256, c.depthOffset <= e && e - c.depthOffset < c.numLayers && (this.objectSprite.addChild(this.tileSprite = f.New(null, W.TILEMAP)), this.tileSprite.tileMap = c, this.tileSprite.setTileLayer(e - c.depthOffset));
+ this.objectSprite.addChild(this.topWorldSprite = f.New());
+ this.topWorldSprite.flags |=
+ 256;
+ this.updatingWorld = !0;
+ c = this.pausedCounter;
+ for (a = b.elements(); a.hasNext();) e = a.next(), d = e.get("type"), this.firstPriority(d) && (p = Ha.StringToXml, e = new Ha(this, null != O[d] ? p.getReserved(d) : p.h[d], e), "player" == d && (this.player = e), this.addGameObject(e), e.init(), e.postInit());
+ null != this.player && r && (this.camera.setWatchable(this.player), this.camera.update());
+ for (b = b.elements(); b.hasNext();) r = b.next(), a = r.get("type"), this.firstPriority(a) || (d = Ha.StringToXml, r = new Ha(this, null != O[a] ? d.getReserved(a) : d.h[a],
+ r), this.addGameObject(r));
+ for (b = 0; b < this.gameObjects.length;) this.firstPriority(this.gameObjects[b].objLevel.get("type")) ? ++b : this.gameObjects[b++].init();
+ for (b = 0; b < this.gameObjects.length;) this.firstPriority(this.gameObjects[b].objLevel.get("type")) ? ++b : this.gameObjects[b++].postInit();
+ this.updatingWorld = !1;
+ this.adjustPauseAfterUpdate(c)
+ }; s["ozity.OzGameSystem"] = oa; oa.__name__ = ["ozity", "OzGameSystem"]; oa.Init = function() {
+ Ha.Init(t.definitionsXML);
+ N.Init(t.componentsXML)
+ }; oa.prototype = {
+ getPlayer: function() {
+ return this.player
+ },
+ setPlayer: function(a) {
+ this.player = a
+ },
+ firstPriority: function(a) {
+ return "player" != a && "checkpoint" != a ? "cameracontroller" == a : !0
+ },
+ adjustPauseAfterUpdate: function(a) {
+ for (var b = this.pausedCounter; a < b;) a++, n.PauseActiveAndIncreaseLevel()
+ },
+ update: function(a) {
+ if (!(0 < this.pausedCounter)) {
+ this.deltaTime = a *= oa.WORLD_SPEED_FACTOR;
+ this.updatingWorld = !0;
+ for (var b = this.pausedCounter, c = 0, d = this.gameObjects; c < d.length;) {
+ var e = d[c];
+ ++c;
+ e.update()
+ }
+ m.Update(this.gameObjects, this.tileMap, a);
+ a = 0;
+ for (c = this.gameObjects; a <
+ c.length;) d = c[a], ++a, d.postUpdate();
+ this.camera.update();
+ for (a = 0; a < this.gameObjects.length;) c = this.gameObjects[a], null != c.physics && (c.physics.x < this.worldLeft - 300 && 0 >= (this.flags & 1) || c.physics.y < this.worldTop - 300 || c.physics.x > this.worldRight + 300 && 0 >= (this.flags & 1) || c.physics.y > this.worldBottom + 300) && (c.dead = !0), ++a;
+ for (a = 0; a < this.gameObjects.length;) this.gameObjects[a].dead ? (this.gameObjects[a].destroy(), this.gameObjects.splice(a, 1)) : ++a;
+ this.updateFrame++;
+ this.updatingWorld = !1;
+ this.adjustPauseAfterUpdate(b)
+ }
+ },
+ destroy: function() {
+ for (; 0 < this.gameObjects.length;) this.gameObjects[0].destroy(), this.gameObjects.splice(0, 1);
+ this.objectSprite.clear()
+ },
+ createLazyGameObjectByStringId: function(a, b, c) {
+ null == c && (c = !0);
+ var d = Ha.StringToXml;
+ a = new Ha(oa.instance, null != O[a] ? d.getReserved(a) : d.h[a], b);
+ c && this.addGameObject(a);
+ return a
+ },
+ addGameObject: function(a) {
+ this.gameObjects.push(a)
+ },
+ addSprite: function(a, b) {
+ this.objectSpriteDepths[b].addChild(a)
+ },
+ addEventsListener: function(a) {
+ this.eventsListeners.push(a)
+ },
+ sendMessage: function(a) {
+ for (var b =
+ 0, c = this.eventsListeners; b < c.length;) {
+ var d = c[b];
+ ++b;
+ d(a)
+ }
+ },
+ __class__: oa
+ };
+ var ja = function(a, b) {
+ this.vx = this.vy = null;
+ this.flags = 0;
+ this.controlPoints = this.curvePointsX = this.curvePointsY = null;
+ N.call(this, a, null, b);
+ this.x = this.y = this.degrees = this.halfWidth = this.halfHeight = this.radius = 0;
+ null != b && this.fromXML()
+ }; s["ozity.OzGeometry"] = ja; ja.__name__ = ["ozity", "OzGeometry"]; ja.GetXYFromBezier = function(a, b, c, d, e, f, r, g, k, h) {
+ h.x = (1 - a) * (1 - a) * (1 - a) * b + 3 * (1 - a) * (1 - a) * a * d + 3 * (1 - a) * a * a * f + a * a * a * g;
+ h.y = (1 - a) * (1 - a) * (1 - a) *
+ c + 3 * (1 - a) * (1 - a) * a * e + 3 * (1 - a) * a * a * r + a * a * a * k
+ }; ja.ApproximateBezierLength = function(a, b, c, d, e, f, r, g, k) {
+ for (var h = 0, m = a, l = b, n = 0; 20 > n;) {
+ var q = (n++ + 1) / 21;
+ k.x = (1 - q) * (1 - q) * (1 - q) * a + 3 * (1 - q) * (1 - q) * q * c + 3 * (1 - q) * q * q * e + q * q * q * r;
+ k.y = (1 - q) * (1 - q) * (1 - q) * b + 3 * (1 - q) * (1 - q) * q * d + 3 * (1 - q) * q * q * f + q * q * q * g;
+ h += x.DistancePoints(m, l, k.x, k.y);
+ m = k.x;
+ l = k.y
+ }
+ return h += x.DistancePoints(m, l, r, g)
+ }; ja.__super__ = N; ja.prototype = R(N.prototype, {
+ localToGlobal: function(a, b, c, d, e, f) {
+ this.applyOriginRotation(this.x + d, this.y + e, this.degrees, f);
+ x.rotateAroundPoint(f[0],
+ f[1], c, 0, 0, f);
+ f[0] += a;
+ f[1] += b
+ },
+ globalToLocal: function(a, b, c, d, e, f) {
+ x.rotateAroundPoint(d - a, e - b, -c, 0, 0, f);
+ this.applyOriginRotation(f[0], f[1], -this.degrees, f)
+ },
+ globalFarthestVertexFromGlobalPointFromLocalPoints: function(a, b, c, d, e, f, r, g) {
+ for (var k = -1, h = 0, m = 0, l = 0, n = f.length; l < n;) {
+ var q = l++;
+ this.applyOriginRotation(this.x + f[q], this.y + r[q], this.degrees, g);
+ x.rotateAroundPoint(g[0], g[1], c, 0, 0, g);
+ g[0] += a;
+ g[1] += b;
+ q = x.DistancePoints(d, e, g[0], g[1]);
+ q > k && (k = q, h = g[0], m = g[1])
+ }
+ g[0] = h;
+ g[1] = m
+ },
+ globalFarthestVertexFromGlobalLineFromLocalPoints: function(a,
+ b, c, d, e, f, r, g, k, h) {
+ for (var m = -1, l = 0, n = 0, q = 0, s = g.length; q < s;) {
+ var v = q++;
+ this.applyOriginRotation(this.x + g[v], this.y + k[v], this.degrees, h);
+ x.rotateAroundPoint(h[0], h[1], c, 0, 0, h);
+ h[0] += a;
+ h[1] += b;
+ v = x.PointLineDistance(d, e, f, r, h[0], h[1], !1);
+ v > m && (m = v, l = h[0], n = h[1])
+ }
+ h[0] = l;
+ h[1] = n
+ },
+ applyOriginRotation: function(a, b, c, d) {
+ x.rotateAroundPoint(a, b, c, this.x, this.y, d)
+ },
+ adjustMinMaxXY: function(a, b) {
+ a[0] = Math.min(a[0], b[0]);
+ a[1] = Math.min(a[1], b[1]);
+ a[2] = Math.max(a[2], b[0]);
+ a[3] = Math.max(a[3], b[1])
+ },
+ updateCurves: function() {
+ var a =
+ x.GenerateControlPointsFromPath(this.vx, this.vy);
+ this.curvePointsX = [];
+ this.curvePointsY = [];
+ this.curvePointsX.push(this.vx[0]);
+ this.curvePointsY.push(this.vy[0]);
+ for (var b = new xa, c = 0, d = this.vx.length - 1; c < d;) {
+ for (var e = c++, f = ja.ApproximateBezierLength(this.vx[e], this.vy[e], a[e].x1, a[e].y1, a[e].x2, a[e].y2, this.vx[e + 1], this.vy[e + 1], b), f = Math.round(f / ja.CURVE_SEGMENT_LENGTH), r = 0, g = f; r < g;) {
+ var k = (r++ + 1) / (f + 1),
+ h = this.vy[e],
+ m = a[e].y1,
+ l = a[e].y2,
+ n = this.vy[e + 1];
+ b.x = (1 - k) * (1 - k) * (1 - k) * this.vx[e] + 3 * (1 - k) * (1 - k) *
+ k * a[e].x1 + 3 * (1 - k) * k * k * a[e].x2 + k * k * k * this.vx[e + 1];
+ b.y = (1 - k) * (1 - k) * (1 - k) * h + 3 * (1 - k) * (1 - k) * k * m + 3 * (1 - k) * k * k * l + k * k * k * n;
+ this.curvePointsX.push(b.x);
+ this.curvePointsY.push(b.y)
+ }
+ this.curvePointsX.push(this.vx[e + 1]);
+ this.curvePointsY.push(this.vy[e + 1])
+ }
+ },
+ drawGlobalOutline: function(a, b, c, d) {
+ null == d && (d = 0);
+ null == c && (c = 0);
+ null == b && (b = 0);
+ var e = ja.temp2;
+ switch (this.type) {
+ case 1:
+ this.applyOriginRotation(this.x + -this.halfWidth, this.y + -this.halfHeight, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], d, 0, 0, e);
+ e[0] += b;
+ e[1] += c;
+ a.moveTo(e[0], e[1]);
+ this.applyOriginRotation(this.x + this.halfWidth, this.y + -this.halfHeight, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], d, 0, 0, e);
+ e[0] += b;
+ e[1] += c;
+ a.lineTo(e[0], e[1]);
+ this.applyOriginRotation(this.x + this.halfWidth, this.y + this.halfHeight, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], d, 0, 0, e);
+ e[0] += b;
+ e[1] += c;
+ a.lineTo(e[0], e[1]);
+ this.applyOriginRotation(this.x + -this.halfWidth, this.y + this.halfHeight, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], d, 0, 0, e);
+ e[0] += b;
+ e[1] += c;
+ a.lineTo(e[0],
+ e[1]);
+ this.applyOriginRotation(this.x + -this.halfWidth, this.y + -this.halfHeight, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], d, 0, 0, e);
+ e[0] += b;
+ e[1] += c;
+ a.lineTo(e[0], e[1]);
+ break;
+ case 2:
+ x.rotateAroundPoint(this.x, this.y, d, 0, 0, e);
+ a.drawCircle(b + e[0], c + e[1], this.radius);
+ break;
+ case 3:
+ this.applyOriginRotation(this.x + this.vx[0], this.y + this.vy[0], this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], d, 0, 0, e);
+ e[0] += b;
+ e[1] += c;
+ a.moveTo(e[0], e[1]);
+ for (var f = 1, r = this.vx.length; f < r;) {
+ var g = f++;
+ this.applyOriginRotation(this.x +
+ this.vx[g], this.y + this.vy[g], this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], d, 0, 0, e);
+ e[0] += b;
+ e[1] += c;
+ a.lineTo(e[0], e[1])
+ }
+ this.applyOriginRotation(this.x + this.vx[0], this.y + this.vy[0], this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], d, 0, 0, e);
+ e[0] += b;
+ e[1] += c;
+ a.lineTo(e[0], e[1]);
+ break;
+ case 4:
+ this.applyOriginRotation(this.x + this.x1, this.y + this.y1, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], d, 0, 0, e);
+ e[0] += b;
+ e[1] += c;
+ a.moveTo(e[0], e[1]);
+ this.applyOriginRotation(this.x + this.x2, this.y + this.y2, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], d, 0, 0, e);
+ e[0] += b;
+ e[1] += c;
+ a.lineTo(e[0], e[1]);
+ break;
+ case 5:
+ x.rotateAroundPoint(this.x, this.y, d, 0, 0, e);
+ a.drawCircle(b + e[0], c + e[1], 3);
+ break;
+ case 6:
+ this.applyOriginRotation(this.x + -this.halfWidth, this.y + this.halfHeight, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], d, 0, 0, e);
+ e[0] += b;
+ e[1] += c;
+ a.moveTo(e[0], e[1]);
+ this.applyOriginRotation(this.x, this.y + -this.halfHeight, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], d, 0, 0, e);
+ e[0] += b;
+ e[1] += c;
+ a.lineTo(e[0], e[1]);
+ this.applyOriginRotation(this.x +
+ this.halfWidth, this.y + this.halfHeight, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], d, 0, 0, e);
+ e[0] += b;
+ e[1] += c;
+ a.lineTo(e[0], e[1]);
+ this.applyOriginRotation(this.x + -this.halfWidth, this.y + this.halfHeight, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], d, 0, 0, e);
+ e[0] += b;
+ e[1] += c;
+ a.lineTo(e[0], e[1]);
+ break;
+ case 7:
+ if (0 < (this.flags & 1))
+ for (this.applyOriginRotation(this.x + this.curvePointsX[0], this.y + this.curvePointsY[0], this.degrees, e), x.rotateAroundPoint(e[0], e[1], d, 0, 0, e), e[0] += b, e[1] += c, a.moveTo(e[0], e[1]), f =
+ 1, r = this.curvePointsX.length; f < r;) g = f++, this.applyOriginRotation(this.x + this.curvePointsX[g], this.y + this.curvePointsY[g], this.degrees, e), x.rotateAroundPoint(e[0], e[1], d, 0, 0, e), e[0] += b, e[1] += c, a.lineTo(e[0], e[1]);
+ else
+ for (this.applyOriginRotation(this.x + this.vx[0], this.y + this.vy[0], this.degrees, e), x.rotateAroundPoint(e[0], e[1], d, 0, 0, e), e[0] += b, e[1] += c, a.moveTo(e[0], e[1]), f = 1, r = this.vx.length; f < r;) g = f++, this.applyOriginRotation(this.x + this.vx[g], this.y + this.vy[g], this.degrees, e), x.rotateAroundPoint(e[0],
+ e[1], d, 0, 0, e), e[0] += b, e[1] += c, a.lineTo(e[0], e[1])
+ }
+ },
+ drawLocalOutline: function(a) {
+ switch (this.type) {
+ case 1:
+ a.moveTo(-this.halfWidth, -this.halfHeight);
+ a.lineTo(this.halfWidth, -this.halfHeight);
+ a.lineTo(this.halfWidth, this.halfHeight);
+ a.lineTo(-this.halfWidth, this.halfHeight);
+ a.lineTo(-this.halfWidth, -this.halfHeight);
+ break;
+ case 2:
+ a.drawCircle(0, 0, this.radius);
+ break;
+ case 3:
+ a.moveTo(this.vx[0], this.vy[0]);
+ for (var b = 1, c = this.vx.length; b < c;) {
+ var d = b++;
+ a.lineTo(this.vx[d], this.vy[d])
+ }
+ a.lineTo(this.vx[0],
+ this.vy[0]);
+ break;
+ case 6:
+ a.moveTo(-this.halfWidth, this.halfHeight);
+ a.lineTo(0, -this.halfHeight);
+ a.lineTo(this.halfWidth, this.halfHeight);
+ a.lineTo(-this.halfWidth, this.halfHeight);
+ break;
+ case 7:
+ if (0 < (this.flags & 1))
+ for (a.moveTo(this.curvePointsX[0], this.curvePointsY[0]), b = 1, c = this.curvePointsX.length; b < c;) d = b++, a.lineTo(this.curvePointsX[d], this.curvePointsY[d]);
+ else
+ for (a.moveTo(this.vx[0], this.vy[0]), b = 1, c = this.vx.length; b < c;) d = b++, a.lineTo(this.vx[d], this.vy[d])
+ }
+ },
+ getMinMaxXY: function(a, b, c, d, e) {
+ null ==
+ e && (e = !0);
+ e && (d[0] = 2E6, d[1] = 2E6, d[2] = -2E6, d[3] = -2E6);
+ e = ja.temp2;
+ switch (this.type) {
+ case 1:
+ this.applyOriginRotation(this.x + -this.halfWidth, this.y + -this.halfHeight, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], c, 0, 0, e);
+ e[0] += a;
+ e[1] += b;
+ this.adjustMinMaxXY(d, e);
+ this.applyOriginRotation(this.x + this.halfWidth, this.y + -this.halfHeight, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], c, 0, 0, e);
+ e[0] += a;
+ e[1] += b;
+ this.adjustMinMaxXY(d, e);
+ this.applyOriginRotation(this.x + -this.halfWidth, this.y + this.halfHeight, this.degrees,
+ e);
+ x.rotateAroundPoint(e[0], e[1], c, 0, 0, e);
+ e[0] += a;
+ e[1] += b;
+ this.adjustMinMaxXY(d, e);
+ this.applyOriginRotation(this.x + this.halfWidth, this.y + this.halfHeight, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], c, 0, 0, e);
+ e[0] += a;
+ e[1] += b;
+ this.adjustMinMaxXY(d, e);
+ break;
+ case 2:
+ x.rotateAroundPoint(this.x, this.y, c, 0, 0, e);
+ e[0] += a - this.radius;
+ e[1] += b - this.radius;
+ this.adjustMinMaxXY(d, e);
+ x.rotateAroundPoint(this.x, this.y, c, 0, 0, e);
+ e[0] += a + this.radius;
+ e[1] += b + this.radius;
+ this.adjustMinMaxXY(d, e);
+ break;
+ case 3:
+ for (var f =
+ 0, r = this.vx.length; f < r;) {
+ var g = f++;
+ this.applyOriginRotation(this.x + this.vx[g], this.y + this.vy[g], this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], c, 0, 0, e);
+ e[0] += a;
+ e[1] += b;
+ this.adjustMinMaxXY(d, e)
+ }
+ break;
+ case 4:
+ this.applyOriginRotation(this.x + this.x1, this.y + this.y1, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], c, 0, 0, e);
+ e[0] += a;
+ e[1] += b;
+ this.adjustMinMaxXY(d, e);
+ this.applyOriginRotation(this.x + this.x2, this.y + this.y2, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], c, 0, 0, e);
+ e[0] += a;
+ e[1] += b;
+ this.adjustMinMaxXY(d,
+ e);
+ break;
+ case 5:
+ x.rotateAroundPoint(this.x, this.y, c, 0, 0, e);
+ e[0] += a - 3;
+ e[1] += b - 3;
+ this.adjustMinMaxXY(d, e);
+ x.rotateAroundPoint(this.x, this.y, c, 0, 0, e);
+ e[0] += a + 3;
+ e[1] += b + 3;
+ this.adjustMinMaxXY(d, e);
+ break;
+ case 6:
+ this.applyOriginRotation(this.x + -this.halfWidth, this.y + this.halfHeight, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], c, 0, 0, e);
+ e[0] += a;
+ e[1] += b;
+ this.adjustMinMaxXY(d, e);
+ this.applyOriginRotation(this.x, this.y + -this.halfHeight, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], c, 0, 0, e);
+ e[0] += a;
+ e[1] += b;
+ this.adjustMinMaxXY(d,
+ e);
+ this.applyOriginRotation(this.x + this.halfWidth, this.y + this.halfHeight, this.degrees, e);
+ x.rotateAroundPoint(e[0], e[1], c, 0, 0, e);
+ e[0] += a;
+ e[1] += b;
+ this.adjustMinMaxXY(d, e);
+ break;
+ case 7:
+ for (f = 0, r = this.vx.length; f < r;) g = f++, this.applyOriginRotation(this.x + this.vx[g], this.y + this.vy[g], this.degrees, e), x.rotateAroundPoint(e[0], e[1], c, 0, 0, e), e[0] += a, e[1] += b, this.adjustMinMaxXY(d, e)
+ }
+ },
+ setPolyLeftTopOrigin: function() {
+ if (3 == this.type) {
+ for (var a = this.vx[0], b = this.vy[0], c = 1, d = this.vx.length; c < d;) var e = c++,
+ a = Math.min(a,
+ this.vx[e]),
+ b = Math.min(b, this.vy[e]);
+ c = 0;
+ for (d = this.vx.length; c < d;) e = c++, this.vx[e] -= a, this.vy[e] -= b;
+ this.x += a;
+ this.y += b
+ }
+ },
+ pointSelects: function(a, b, c, d, e) {
+ var f = !1,
+ r = ja.temp2;
+ x.rotateAroundPoint(d - a, e - b, -c, 0, 0, r);
+ this.applyOriginRotation(r[0], r[1], -this.degrees, r);
+ switch (this.type) {
+ case 1:
+ f = Math.abs(this.x - r[0]) < this.halfWidth ? Math.abs(this.y - r[1]) < this.halfHeight : !1;
+ break;
+ case 2:
+ f = this.radius * this.radius >= (r[0] - this.x) * (r[0] - this.x) + (r[1] - this.y) * (r[1] - this.y);
+ break;
+ case 3:
+ r[0] -= this.x;
+ r[1] -= this.y;
+ a = f = 0;
+ for (b = this.vx.length; a < b;) c = a++, d = (c + 1) % this.vx.length, this.vy[c] <= r[1] ? this.vy[d] > r[1] && 0 < x.CrossPoints(r[0], r[1], this.vx[c], this.vy[c], this.vx[d], this.vy[d]) && ++f : this.vy[d] <= r[1] && 0 > x.CrossPoints(r[0], r[1], this.vx[c], this.vy[c], this.vx[d], this.vy[d]) && --f;
+ f = 0 != f;
+ break;
+ case 4:
+ 5 > x.PointLineDistance(this.x1, this.y1, this.x2, this.y2, r[0] - this.x, r[1] - this.y, !0) && (f = !0);
+ break;
+ case 5:
+ 5 > Math.abs(this.x - r[0]) && 5 > Math.abs(this.y - r[1]) && (f = !0);
+ break;
+ case 6:
+ var g;
+ a = this.x - this.halfWidth;
+ b = this.y + this.halfHeight;
+ c = this.x;
+ d = this.y - this.halfHeight;
+ e = this.x + this.halfWidth;
+ g = this.y + this.halfHeight;
+ f = (f = (f = 0 <= x.CrossPoints(a, b, c, d, r[0], r[1])) ? 0 <= x.CrossPoints(c, d, e, g, r[0], r[1]) : !1) ? 0 <= x.CrossPoints(e, g, a, b, r[0], r[1]) : !1;
+ break;
+ case 7:
+ for (a = this.vx, b = this.vy, 0 < (this.flags & 1) && (a = this.curvePointsX, b = this.curvePointsY), c = 1, d = a.length; c < d;) e = c++, 5 > x.PointLineDistance(a[e - 1], b[e - 1], a[e], b[e], r[0] - this.x, r[1] - this.y, !0) && (f = !0)
+ }
+ return f
+ },
+ _f: function(a) {
+ return "" + x.round(a, 2)
+ },
+ toXML: function() {
+ var a = B.createElement("geometry");
+ switch (this.type) {
+ case 1:
+ a.set("type", "rect");
+ a.set("x", this._f(this.x));
+ a.set("y", this._f(this.y));
+ a.set("degrees", this._f(this.degrees));
+ a.set("halfWidth", this._f(this.halfWidth));
+ a.set("halfHeight", this._f(this.halfHeight));
+ break;
+ case 2:
+ a.set("type", "circ");
+ a.set("x", this._f(this.x));
+ a.set("y", this._f(this.y));
+ a.set("degrees", this._f(this.degrees));
+ a.set("radius", this._f(this.radius));
+ break;
+ case 3:
+ a.set("type", "poly");
+ a.set("x", this._f(this.x));
+ a.set("y", this._f(this.y));
+ a.set("degrees", this._f(this.degrees));
+ a.set("nVertices", "" + this.vx.length);
+ for (var b = "", c = 0, d = this.vx.length - 1; c < d;) var e = c++,
+ b = b + (this._f(this.vx[e]) + "," + this._f(this.vy[e]) + ",");
+ b += this._f(this.vx[this.vx.length - 1]) + "," + this._f(this.vy[this.vx.length - 1]);
+ a.set("vertices", b);
+ break;
+ case 4:
+ a.set("type", "line");
+ a.set("x", this._f(this.x));
+ a.set("y", this._f(this.y));
+ a.set("x1", this._f(this.x1));
+ a.set("y1", this._f(this.y1));
+ a.set("x2", this._f(this.x2));
+ a.set("y2", this._f(this.y2));
+ break;
+ case 5:
+ a.set("type", "dot");
+ a.set("x", this._f(this.x));
+ a.set("y", this._f(this.y));
+ break;
+ case 6:
+ a.set("type", "tri");
+ a.set("x", this._f(this.x));
+ a.set("y", this._f(this.y));
+ a.set("degrees", this._f(this.degrees));
+ a.set("halfWidth", this._f(this.halfWidth));
+ a.set("halfHeight", this._f(this.halfHeight));
+ break;
+ case 7:
+ a.set("type", "path");
+ a.set("x", this._f(this.x));
+ a.set("y", this._f(this.y));
+ a.set("degrees", this._f(this.degrees));
+ a.set("nVertices", "" + this.vx.length);
+ b = "";
+ c = 0;
+ for (d = this.vx.length - 1; c < d;) e = c++, b += this._f(this.vx[e]) + "," + this._f(this.vy[e]) + ",";
+ b +=
+ this._f(this.vx[this.vx.length - 1]) + "," + this._f(this.vy[this.vx.length - 1]);
+ a.set("vertices", b);
+ 0 < (this.flags & 1) && a.set("isCurve", "true")
+ }
+ return a
+ },
+ fromXML: function(a) {
+ null == a && (a = this.compLevel);
+ var b = 0;
+ "true" == a.get("isCurve") && (b |= 1);
+ switch (a.get("type")) {
+ case "circ":
+ this._init(2, this.pf(a.get("x")), this.pf(a.get("y")), this.pf(a.get("degrees")), this.pf(a.get("radius")));
+ break;
+ case "dot":
+ this._init(5, this.pf(a.get("x")), this.pf(a.get("y")));
+ break;
+ case "line":
+ this.x1 = this.pf(a.get("x1"));
+ this.x2 = this.pf(a.get("x2"));
+ this.y1 = this.pf(a.get("y1"));
+ this.y2 = this.pf(a.get("y2"));
+ this._init(4, this.pf(a.get("x")), this.pf(a.get("y")), 0, 0, 0);
+ break;
+ case "need":
+ this._init(1, 0, 0, 0, 20, 20);
+ break;
+ case "path":
+ this.pi(a.get("nVertices"));
+ for (var c = a.get("vertices").split(","), d = [], e = [], f = 0, r = c.length / 2 | 0; f < r;) {
+ var g = 2 * f++;
+ d[g / 2 | 0] = this.pf(c[g]);
+ e[g / 2 | 0] = this.pf(c[g + 1])
+ }
+ this._init(7, this.pf(a.get("x")), this.pf(a.get("y")), this.pf(a.get("degrees")), 0, 0, d, e, !0, b);
+ break;
+ case "poly":
+ this.pi(a.get("nVertices"));
+ c = a.get("vertices").split(",");
+ d = [];
+ e = [];
+ f = 0;
+ for (r = c.length / 2 | 0; f < r;) g = 2 * f++, d[g / 2 | 0] = this.pf(c[g]), e[g / 2 | 0] = this.pf(c[g + 1]);
+ this._init(3, this.pf(a.get("x")), this.pf(a.get("y")), this.pf(a.get("degrees")), 0, 0, d, e, !0, b);
+ break;
+ case "rect":
+ this._init(1, this.pf(a.get("x")), this.pf(a.get("y")), this.pf(a.get("degrees")), this.pf(a.get("halfWidth")), this.pf(a.get("halfHeight")));
+ break;
+ case "tri":
+ this._init(6, this.pf(a.get("x")), this.pf(a.get("y")), this.pf(a.get("degrees")), this.pf(a.get("halfWidth")), this.pf(a.get("halfHeight")));
+ break;
+ default:
+ throw new D(new Bb("Invalid shape Xml type"));
+ }
+ },
+ clone: function() {
+ var a = new ja;
+ a._init(this.type, this.x, this.y, this.degrees, this.halfWidth, this.halfHeight, this.vx, this.vy, !0, this.flags);
+ return a
+ },
+ _init: function(a, b, c, d, e, f, r, g, k, h) {
+ null == h && (h = 0);
+ null == k && (k = !0);
+ null == f && (f = 0);
+ null == e && (e = 0);
+ null == d && (d = 0);
+ null == c && (c = 0);
+ null == b && (b = 0);
+ this.flags = h;
+ this.type = a;
+ this.x = b;
+ this.y = c;
+ this.degrees = d;
+ if (1 == this.type) this.halfWidth = e, this.halfHeight = f;
+ else if (2 == this.type) this.radius = e;
+ else if (3 ==
+ this.type)
+ if (k)
+ for (this.vx = [], this.vy = [], h = 0, a = r.length; h < a;) b = h++, this.vx[b] = r[b], this.vy[b] = g[b];
+ else this.vx = r, this.vy = g;
+ else if (7 == this.type) {
+ if (k)
+ for (this.vx = [], this.vy = [], a = 0, b = r.length; a < b;) c = a++, this.vx[c] = r[c], this.vy[c] = g[c];
+ else this.vx = r, this.vy = g;
+ 0 < (h & 1) && this.updateCurves();
+ null == this.pathLengths && (this.pathLengths = []);
+ h = g = 0;
+ for (r = r.length; h < r;) a = h++, c = 0 > a - 1 ? 0 : a - 1, b = this.vx[a] - this.vx[c], c = this.vy[a] - this.vy[c], g += Math.sqrt(b * b + c * c), this.pathLengths[a] = g
+ } else 4 != this.type && 6 == this.type &&
+ (this.halfWidth = e, this.halfHeight = f)
+ },
+ getQuadPathCoeff: function(a, b) {
+ var c = this.pathLengths[this.pathLengths.length - 1];
+ a = (a % c + c) % c;
+ return a < b ? a / b : a > c - b ? 1 - (a - (c - b)) / b : 1
+ },
+ pathLength: function() {
+ return this.pathLengths[this.pathLengths.length - 1]
+ },
+ adjustDistance: function(a) {
+ return Math.max(0, Math.min(a, this.pathLengths[this.pathLengths.length - 1]))
+ },
+ getPathPosition: function(a, b, c, d, e) {
+ null == e && (e = !1);
+ var f = this.pathLengths[this.pathLengths.length - 1],
+ r = this.pathLengths.length;
+ a = e ? (a % f + f) % f : this.adjustDistance(a);
+ e = 0;
+ for (f = r - 1; e + 1 < f;) {
+ var g = Math.floor((e + f) / 2);
+ a <= this.pathLengths[g] ? f = g : e = g
+ }
+ e = f;
+ r = (f - 1 + r) % r;
+ f = 0 == e ? 0 : this.pathLengths[r];
+ a = (a - f) / (this.pathLengths[e] - f);
+ d[0] = b + this.x + (1 - a) * this.vx[r] + a * this.vx[e];
+ d[1] = c + this.y + (1 - a) * this.vy[r] + a * this.vy[e]
+ },
+ isLoop: function(a) {
+ null == a && (a = -1);
+ var b = this.vx,
+ c = this.vy;
+ 0 < (this.flags & 1) && (b = this.curvePointsX, c = this.curvePointsY);
+ 0 > a && (a = b.length);
+ return 1E-4 > Math.abs(b[0] - b[a - 1]) ? 1E-4 > Math.abs(c[0] - c[a - 1]) : !1
+ },
+ getFirstId: function(a, b) {
+ null == b && (b = -1);
+ 0 > b && (b = 0 < (this.flags &
+ 1) ? this.curvePointsX.length : this.vx.length);
+ var c = 0;
+ if (a)
+ for (; this.isOneSegment((c - 1 + b) % b, 0, 1);) c = (c - 1 + b) % b;
+ return c
+ },
+ isOneSegment: function(a, b, c, d) {
+ null == d && (d = !0);
+ var e = this.vx,
+ f = this.vy;
+ d && 0 < (this.flags & 1) && (e = this.curvePointsX, f = this.curvePointsY);
+ return null == e || null == f || a == c || 0.1 > Math.abs(e[a] - e[c]) && 0.1 > Math.abs(f[a] - f[c]) || 0.1 < x.PointLineDistance(e[a], f[a], e[c], f[c], e[b], f[b], !0) ? !1 : !0
+ },
+ getVerticalBoundary: function(a) {
+ var b = this.y,
+ c;
+ switch (this.type) {
+ case 1:
+ c = this.halfHeight;
+ break;
+ case 2:
+ c =
+ this.radius;
+ break;
+ default:
+ throw new D(new Bb("VERTICAL BOUNDARY NOT CALCULATED FOR geo", this.type));
+ }
+ return b + a * c
+ },
+ getHeight: function() {
+ switch (this.type) {
+ case 1:
+ return 2 * this.halfHeight;
+ case 2:
+ return 2 * this.radius;
+ case 3:
+ return 50;
+ default:
+ throw new D(new Bb("HEIGHT NOT CALCULATED FOR geo", this.type));
+ }
+ },
+ getWidth: function() {
+ switch (this.type) {
+ case 1:
+ return 2 * this.halfWidth;
+ case 2:
+ return 2 * this.radius;
+ case 3:
+ return 50;
+ default:
+ throw new D(new Bb("WIDTH NOT CALCULATED FOR geo", this.type));
+ }
+ },
+ pf: function(a) {
+ return null ==
+ a || 0 == a.length ? 0 : parseFloat(a)
+ },
+ pi: function(a) {
+ return null == a || 0 == a.length ? 0 : K.parseInt(a)
+ },
+ __class__: ja
+ });
+ var Uc = function(a, b, c, d, e, f) {
+ this.name = a;
+ this.tileUp45 = b;
+ this.tileDown45 = c;
+ this.tileUp23 = d;
+ this.tileDown23 = e;
+ this.scale9 = f
+ }; s["ozity.OzTileInfo"] = Uc; Uc.__name__ = ["ozity", "OzTileInfo"]; Uc.prototype = {
+ __class__: Uc
+ };
+ var da = function(a, b) {
+ this.tileObject = null;
+ this.updateOldValues = this.drawSpecial = !1;
+ this.color = 0;
+ this.isTile = !1;
+ this.spriteMCName = null;
+ this.depth = 0;
+ this.sprite = null;
+ N.call(this, a, b, null);
+ this.depth = K.parseInt(b.get("depth"));
+ this.spriteMCName = b.get("src");
+ this.isTile = "tile" == b.get("type");
+ this.color = K.parseInt("0x" + b.get("linecolor"))
+ }; s["ozity.OzGraphics"] = da; da.__name__ = ["ozity", "OzGraphics"]; da.GetMovieClip = function(a) {
+ a = x.FindStringId(f.BitmapsNames, a);
+ return f.Bitmaps[f.BitmapsIds[a]]
+ }; da.GetBitmapData = function(a) {
+ a = x.FindStringId(f.BitmapsNames, a);
+ a = f.Bitmaps[f.BitmapsIds[a]];
+ return f.GetTilesheetBitmapData(a.tilesheetId, a.frames[0])
+ }; da.GetBitmap = function(a) {
+ a = x.FindStringId(f.BitmapsNames,
+ a);
+ return f.New(f.Bitmaps[f.BitmapsIds[a]])
+ }; da.GetTileInfo = function(a) {
+ var b = a.get("src"),
+ c = da.tileInfos;
+ if (null != O[b] ? !c.existsReserved(b) : !c.h.hasOwnProperty(b)) {
+ var c = x.StringToIntArray(a.get("tileDown45")),
+ d = x.StringToIntArray(a.get("tileUp45")),
+ e = x.StringToIntArray(a.get("tileDown23")),
+ f = x.StringToIntArray(a.get("tileUp23"));
+ a = x.StringToIntArray(a.get("scale9"));
+ a = new Uc(b, d, c, f, e, a);
+ c = da.tileInfos;
+ null != O[b] ? c.setReserved(b, a) : c.h[b] = a
+ }
+ a = da.tileInfos;
+ return null != O[b] ? a.getReserved(b) : a.h[b]
+ }; da.__super__ = N; da.prototype = R(N.prototype, {
+ init: function() {
+ this.tileObject = this.gameObject.getComponent(Fc)
+ },
+ postInit: function() {
+ this.geometry = this.gameObject.geometry;
+ this.transform = this.gameObject.transform;
+ var a = this.compPrefab;
+ if ("false" != a.get("visible"))
+ if ("sprite" == a.get("type")) this.sprite = da.GetBitmap(this.spriteMCName);
+ else if ("fill" == a.get("type")) {
+ var b = da.GetBitmapData(this.spriteMCName);
+ null == this.sprite && (this.sprite = f.New(null, W.POLYGON));
+ var c = this.sprite.flSprite.get_graphics();
+ c.clear();
+ null != a.get("linewidth") && c.lineStyle(K.parseInt(a.get("linewidth")), this.color);
+ c.beginBitmapFill(b, null, !0, !0);
+ this.geometry.drawLocalOutline(c);
+ c.endFill()
+ } else if ("line" == a.get("type")) {
+ var d = da.GetBitmapData(this.spriteMCName);
+ null == this.sprite && (this.sprite = f.New(null, W.POLYGON));
+ var e = d.component.height;
+ null != a.get("linewidth") && (e = K.parseInt(a.get("linewidth")));
+ var p = this.geometry.x1 - this.geometry.x2,
+ r = this.geometry.y1 - this.geometry.y2,
+ g = Math.sqrt(p * p + r * r);
+ this.sprite.createLineGFX(d,
+ e, g);
+ this.sprite.set_rotation(x.AngleFromSegment(this.geometry.x1, this.geometry.y1, this.geometry.x2, this.geometry.y2));
+ var k = a.get("end");
+ if (null != k) {
+ var h = da.GetBitmap(k);
+ this.sprite.addChild(h);
+ h.set_x(-g / 2);
+ var m = da.GetBitmap(k);
+ this.sprite.addChild(m);
+ m.set_x(g / 2);
+ G.trace("init nc", {
+ fileName: "OzGraphics.hx",
+ lineNumber: 122,
+ className: "ozity.OzGraphics",
+ methodName: "postInit",
+ customParams: [this.sprite.numChildren()]
+ })
+ }
+ } else if ("tile" == a.get("type")) {
+ var l;
+ switch (a.get("collision")) {
+ case "none":
+ l =
+ 0;
+ break;
+ case "top":
+ l = 2;
+ break;
+ default:
+ l = 1
+ }
+ var n = a.get("depth"),
+ q = 0;
+ null != n && (q = K.parseInt(n));
+ var s = da.GetTileInfo(a),
+ u = this.gameObject.gameSystem.tileMap,
+ t = u.tileSize,
+ y = "false" != a.get("staticTile");
+ y ? this.sprite = null : null == this.sprite && (this.sprite = f.New(null, W.EMPTY));
+ if (3 == this.geometry.type && 0 == this.geometry.halfWidth) {
+ var z = Math.round(this.transform.x + this.geometry.x),
+ A = Math.round(this.transform.y + this.geometry.y);
+ null != this.sprite && (this.sprite.set_x(z), this.sprite.set_y(A));
+ v.PolyToTiles(this.geometry,
+ t);
+ for (var B = 0, E = v.ptN; B < E;)
+ for (var C = B++, F = 0, H = v.ptM; F < H;) {
+ var J = F++;
+ if (0 != v.ptTiles[C][J]) {
+ var L = v.ptTiles[C][J],
+ M = v.PTFrameToTile(C, J, l),
+ Q = this.spriteMCName;
+ if (y) {
+ var O = Math.round((A - u.offsetY) / t) + C | 0,
+ T = Math.round((z - u.offsetX) / t) + J | 0,
+ P = x.FindStringId(f.BitmapsNames, Q);
+ u.setTile(q, O, T, M, f.Bitmaps[f.BitmapsIds[P]], L);
+ null != this.tileObject && u.setTileObject(this.tileObject, O, T)
+ } else {
+ var N = da.GetBitmap(Q);
+ N.set_x(Math.round(J * t));
+ N.set_y(Math.round(C * t));
+ this.sprite.addChild(N);
+ N.gotoAndStop(L)
+ }
+ }
+ }
+ } else {
+ var S =
+ this.gameObject.objLevel.get("tileFrame"),
+ R = null == S ? 1 : K.parseInt(S),
+ aa = Math.round(2 * this.geometry.halfWidth),
+ ca = Math.round(2 * this.geometry.halfHeight),
+ Z = Math.round(this.transform.x + this.geometry.x - this.geometry.halfWidth),
+ Y = Math.round(this.transform.y + this.geometry.y - this.geometry.halfHeight),
+ X = Math.round(ca / t),
+ ba = Math.round(aa / t),
+ U = Math.min(X, ba) | 0,
+ fa = "1" == a.get("spriteTile");
+ null != this.sprite && (this.sprite.set_x(Z), this.sprite.set_y(Y));
+ if (0 <= x.IndexOfInt(s.tileDown45, R)) {
+ for (var ea = ba - U, ga = 0; ga <
+ X;)
+ for (var V = ga++, ia = ea, Dd = ba; ia < Dd;) {
+ var ja = ia++,
+ la = V,
+ oa = ja - ea,
+ ka = 1,
+ ma = 0;
+ if (la == oa) ka = s.tileDown45[0], ma = 2;
+ else if (oa == la - 1) ka = s.tileDown45[1], ma = 8;
+ else continue;
+ var na = this.spriteMCName;
+ if (y) {
+ var ua = Math.round((Y - u.offsetY) / t) + V | 0,
+ pa = Math.round((Z - u.offsetX) / t) + ja | 0,
+ ra = x.FindStringId(f.BitmapsNames, na);
+ u.setTile(q, ua, pa, ma, f.Bitmaps[f.BitmapsIds[ra]], ka);
+ null != this.tileObject && u.setTileObject(this.tileObject, ua, pa)
+ } else {
+ var qa = da.GetBitmap(na);
+ qa.set_x(Math.round(ja * t));
+ qa.set_y(Math.round(V * t));
+ this.sprite.addChild(qa);
+ qa.gotoAndStop(ka)
+ }
+ }
+ if (0 < ea) {
+ var ta = ea - 1,
+ xa = s.tileDown45[1],
+ va = this.spriteMCName;
+ if (y) {
+ var Aa = Math.round((Y - u.offsetY) / t) | 0,
+ Fa = Math.round((Z - u.offsetX) / t) + ta | 0,
+ Ia = x.FindStringId(f.BitmapsNames, va);
+ u.setTile(q, Aa, Fa, 8, f.Bitmaps[f.BitmapsIds[Ia]], xa);
+ null != this.tileObject && u.setTileObject(this.tileObject, Aa, Fa)
+ } else {
+ var wa = da.GetBitmap(va);
+ wa.set_x(Math.round(ta * t));
+ wa.set_y(Math.round(0 * t));
+ this.sprite.addChild(wa);
+ wa.gotoAndStop(xa)
+ }
+ }
+ } else if (0 <= x.IndexOfInt(s.tileUp45, R)) {
+ for (var Ha =
+ 0; Ha < X;)
+ for (var Ja = Ha++, Ka = 0, Ma = U; Ka < Ma;) {
+ var Ga = Ka++,
+ Qa = U - Ja - 1,
+ Oa = Ga,
+ ya = 1,
+ Sa = 0;
+ if (Qa == Oa) ya = s.tileUp45[0], Sa = 3;
+ else if (Oa == Qa + 1) ya = s.tileUp45[1], Sa = 8;
+ else continue;
+ var Xa = this.spriteMCName;
+ if (y) {
+ var Ta = Math.round((Y - u.offsetY) / t) + Ja | 0,
+ Ya = Math.round((Z - u.offsetX) / t) + Ga | 0,
+ eb = x.FindStringId(f.BitmapsNames, Xa);
+ u.setTile(q, Ta, Ya, Sa, f.Bitmaps[f.BitmapsIds[eb]], ya);
+ null != this.tileObject && u.setTileObject(this.tileObject, Ta, Ya)
+ } else {
+ var Ua = da.GetBitmap(Xa);
+ Ua.set_x(Math.round(Ga * t));
+ Ua.set_y(Math.round(Ja *
+ t));
+ this.sprite.addChild(Ua);
+ Ua.gotoAndStop(ya)
+ }
+ }
+ if (ba > U) {
+ var Za = s.tileUp45[1],
+ Ca = this.spriteMCName;
+ if (y) {
+ var Wa = Math.round((Y - u.offsetY) / t) | 0,
+ fb = Math.round((Z - u.offsetX) / t) + U | 0,
+ zb = x.FindStringId(f.BitmapsNames, Ca);
+ u.setTile(q, Wa, fb, 8, f.Bitmaps[f.BitmapsIds[zb]], Za);
+ null != this.tileObject && u.setTileObject(this.tileObject, Wa, fb)
+ } else {
+ var id = da.GetBitmap(Ca);
+ id.set_x(Math.round(U * t));
+ id.set_y(Math.round(0 * t));
+ this.sprite.addChild(id);
+ id.gotoAndStop(Za)
+ }
+ }
+ } else if (0 <= x.IndexOfInt(s.tileUp23, R)) {
+ for (var U =
+ Math.min(2 * X, ba) | 0, nb = 2 * X > ba ? Math.floor((ba + 1) / 2) : X, ib = 0; ib < X;)
+ for (var md = ib++, $a = 0, ab = U; $a < ab;) {
+ var kb = $a++,
+ sa = nb - md - 1,
+ za = kb,
+ Ra = 1,
+ Va = 0;
+ if (2 * sa == za) Ra = s.tileUp23[0], Va = 7;
+ else if (2 * sa + 1 == za) Ra = s.tileUp23[1], Va = 6;
+ else if (2 * sa + 2 == za) Ra = s.tileUp23[2], Va = 8;
+ else continue;
+ var Pa = this.spriteMCName;
+ if (y) {
+ var vd = Math.round((Y - u.offsetY) / t) + md | 0,
+ Na = Math.round((Z - u.offsetX) / t) + kb | 0,
+ vb = x.FindStringId(f.BitmapsNames, Pa);
+ u.setTile(q, vd, Na, Va, f.Bitmaps[f.BitmapsIds[vb]], Ra);
+ null != this.tileObject && u.setTileObject(this.tileObject,
+ vd, Na)
+ } else {
+ var cb = da.GetBitmap(Pa);
+ cb.set_x(Math.round(kb * t));
+ cb.set_y(Math.round(md * t));
+ this.sprite.addChild(cb);
+ cb.gotoAndStop(Ra)
+ }
+ }
+ if (ba > U) {
+ var Ba = s.tileUp23[2],
+ mb = this.spriteMCName;
+ if (y) {
+ var Ab = Math.round((Y - u.offsetY) / t) | 0,
+ pb = Math.round((Z - u.offsetX) / t) + U | 0,
+ Db = x.FindStringId(f.BitmapsNames, mb);
+ u.setTile(q, Ab, pb, 8, f.Bitmaps[f.BitmapsIds[Db]], Ba);
+ null != this.tileObject && u.setTileObject(this.tileObject, Ab, pb)
+ } else {
+ var Da = da.GetBitmap(mb);
+ Da.set_x(Math.round(U * t));
+ Da.set_y(Math.round(0 * t));
+ this.sprite.addChild(Da);
+ Da.gotoAndStop(Ba)
+ }
+ }
+ } else if (0 <= x.IndexOfInt(s.tileDown23, R)) {
+ for (var U = Math.min(2 * X, ba) | 0, jb = ba - U, Lb = 2 * X > ba ? Math.floor((ba + 1) / 2) : X, Fb = 0; Fb < X;)
+ for (var lb = Fb++, Hb = jb, rb = ba; Hb < rb;) {
+ var wb = Hb++,
+ xb = Lb - lb - 1,
+ Ib = U - (wb - jb) - 1,
+ Vc = 1,
+ yb = 0;
+ if (2 * xb == Ib) Vc = s.tileDown23[0], yb = 5;
+ else if (2 * xb + 1 == Ib) Vc = s.tileDown23[1], yb = 4;
+ else if (2 * xb + 2 == Ib) Vc = s.tileDown23[2], yb = 8;
+ else continue;
+ var ob = this.spriteMCName;
+ if (y) {
+ var Jb = Math.round((Y - u.offsetY) / t) + lb | 0,
+ Ob = Math.round((Z - u.offsetX) / t) + wb | 0,
+ Cb = x.FindStringId(f.BitmapsNames,
+ ob);
+ u.setTile(q, Jb, Ob, yb, f.Bitmaps[f.BitmapsIds[Cb]], Vc);
+ null != this.tileObject && u.setTileObject(this.tileObject, Jb, Ob)
+ } else {
+ var sb = da.GetBitmap(ob);
+ sb.set_x(Math.round(wb * t));
+ sb.set_y(Math.round(lb * t));
+ this.sprite.addChild(sb);
+ sb.gotoAndStop(Vc)
+ }
+ }
+ if (0 < jb) {
+ var tb = jb - 1,
+ wd = s.tileDown23[2],
+ xd = this.spriteMCName;
+ if (y) {
+ var yd = Math.round((Y - u.offsetY) / t) | 0,
+ Eb = Math.round((Z - u.offsetX) / t) + tb | 0,
+ ac = x.FindStringId(f.BitmapsNames, xd);
+ u.setTile(q, yd, Eb, 8, f.Bitmaps[f.BitmapsIds[ac]], wd);
+ null != this.tileObject && u.setTileObject(this.tileObject,
+ yd, Eb)
+ } else {
+ var ub = da.GetBitmap(xd);
+ ub.set_x(Math.round(tb * t));
+ ub.set_y(Math.round(0 * t));
+ this.sprite.addChild(ub);
+ ub.gotoAndStop(wd)
+ }
+ }
+ } else if (fa)
+ for (var db = da.GetBitmapData(a.get("src")), Vb = Math.ceil((db.component.height - 1) / t), ec = Math.ceil((db.component.width - 1) / t), gb = l, hb = 0; hb < X;) {
+ var jd = hb++;
+ 2 == l && (gb = 0 == jd ? 9 : 0);
+ for (var ha = 0, hc = ba; ha < hc;) {
+ var Gb = ha++,
+ Sb = v.GetSpriteTileFrame(jd, Gb, Vb, ec),
+ Tb = this.spriteMCName;
+ if (y) {
+ var Ub = Math.round((Y - u.offsetY) / t) + jd | 0,
+ bc = Math.round((Z - u.offsetX) / t) + Gb | 0,
+ cc = x.FindStringId(f.BitmapsNames,
+ Tb);
+ u.setTile(q, Ub, bc, gb, f.Bitmaps[f.BitmapsIds[cc]], Sb);
+ null != this.tileObject && u.setTileObject(this.tileObject, Ub, bc)
+ } else {
+ var Ea = da.GetBitmap(Tb);
+ Ea.set_x(Math.round(Gb * t));
+ Ea.set_y(Math.round(jd * t));
+ this.sprite.addChild(Ea);
+ Ea.gotoAndStop(Sb)
+ }
+ }
+ } else {
+ var Mb = 0 <= x.IndexOfInt(s.scale9, R);
+ if (y) {
+ this.sprite = null;
+ var lc = x.FindStringId(f.BitmapsNames, this.spriteMCName);
+ u.setTileBlock(q, Z, Y, ba, X, 1, f.Bitmaps[f.BitmapsIds[lc]], R, Mb, l);
+ null != this.tileObject && u.setTileObjectBlock(this.tileObject, Z, Y, ba, X)
+ } else
+ for (var dc =
+ 0; dc < X;)
+ for (var Wb = dc++, Xb = 0, Nb = ba; Xb < Nb;) {
+ var fc = Xb++,
+ vc = da.GetBitmap(this.spriteMCName);
+ vc.set_x(Math.round(fc * t));
+ vc.set_y(Math.round(Wb * t));
+ this.sprite.addChild(vc);
+ vc.gotoAndStop(Mb ? v.GetScale9Frame(Wb, fc, X, ba) : R)
+ }
+ }
+ }
+ } else if ("path" == a.get("type")) {
+ var wc = null;
+ null != this.spriteMCName && (wc = da.GetBitmapData(this.spriteMCName));
+ null == this.sprite && (this.sprite = f.New(null, W.POLYGON));
+ var nc = 4;
+ null != wc && (nc = wc.component.height);
+ null != a.get("linewidth") && (nc = K.parseInt(a.get("linewidth")));
+ var $b = this.geometry.vx,
+ ic = this.geometry.vy;
+ 0 < (this.geometry.flags & 1) && ($b = this.geometry.curvePointsX, ic = this.geometry.curvePointsY);
+ var Kb = $b.length,
+ qb = !1;
+ this.geometry.isLoop() && (qb = !0, --Kb);
+ var Lc = this.geometry.getFirstId(qb, Kb),
+ Yb = this.geometry.x,
+ Pb = this.geometry.y;
+ if (null != a.get("backcolor")) {
+ var jc = null,
+ oc = null,
+ jc = a.get("backcolor");
+ null != jc && (oc = jc.split(","));
+ var kc = null,
+ jc = a.get("backwidth");
+ null != jc && (kc = jc.split(","));
+ var pc = null,
+ jc = a.get("backalpha");
+ null != jc && (pc = jc.split(","));
+ var qc = 0;
+ if (null != oc || null != kc ||
+ null != pc) qc = 1, null != oc && oc.length > qc && (qc = oc.length), null != kc && kc.length > qc && (qc = kc.length), null != pc && pc.length > qc && (qc = pc.length);
+ for (var gc = 0, La = qc; gc < La;) {
+ var rc = gc++,
+ Zb = 65280;
+ null != oc && rc < oc.length && (Zb = K.parseInt("0x" + oc[rc]));
+ var Mc = 2;
+ null != kc && rc < kc.length && (Mc = parseFloat(kc[rc]));
+ var Qb = 1;
+ null != pc && rc < pc.length && (Qb = parseFloat(a.get("backalpha")));
+ this.makeLineGFX(wc, Zb, Mc, Lc, Yb, Pb, $b, ic, Kb, qb, Qb)
+ }
+ }
+ this.makeLineGFX(wc, this.color, nc, Lc, Yb, Pb, $b, ic, Kb, qb);
+ var xc = a.get("end");
+ if (null != xc) {
+ for (var Rb =
+ Lc, bb = 1; this.geometry.isOneSegment(Rb, bb, (bb + 1) % Kb);) bb = (bb + 1) % Kb;
+ for (;;) {
+ var Gc = da.GetBitmap(xc);
+ this.sprite.addChild(Gc);
+ Gc.set_x(Yb + $b[Rb]);
+ Gc.set_y(Pb + ic[Rb]);
+ Rb = bb;
+ for (bb = (bb + 1) % Kb; this.geometry.isOneSegment(Rb, bb, (bb + 1) % Kb);) bb = (bb + 1) % Kb;
+ if (Rb == Lc) break
+ }
+ }
+ } else throw new D(new Bb("Todo: if not sprite"));
+ this.physics = this.gameObject.physics;
+ null != this.sprite && this.gameObject.gameSystem.objectSpriteDepths[this.depth].addChild(this.sprite);
+ this.postUpdate()
+ },
+ makeLineGFX: function(a, b, c, d, e, f, r, g,
+ k, h, m) {
+ null == m && (m = 1);
+ var l = 0;
+ null == a && this.sprite.flSprite.get_graphics().lineStyle(c, b, m);
+ b = 0;
+ c = d;
+ m = 1;
+ for (var n = 0; this.geometry.isOneSegment(c, m, (m + 1) % k);) m = (m + 1) % k;
+ for (;;) {
+ ++n;
+ var q = r[c] - r[m],
+ s = g[c] - g[m],
+ q = Math.sqrt(q * q + s * s),
+ l = l + q;
+ 0.001 < q && (null != a ? this.sprite.createLineSegmentGFX(a, l, e + r[c], f + g[c], e + r[m], f + g[m]) : (0 == b && this.sprite.flSprite.get_graphics().moveTo(e + r[c], f + g[c]), this.sprite.flSprite.get_graphics().lineTo(e + r[m], f + g[m])), ++b);
+ c = m;
+ for (m = (m + 1) % k; this.geometry.isOneSegment(c, m, (m + 1) %
+ k);) m = (m + 1) % k;
+ if (m == d && !h || n >= k) break;
+ if (c == d) break
+ }
+ },
+ postUpdate: function() {
+ null == this.sprite || this.drawSpecial || (null != this.physics ? (this.sprite.set_x(this.physics.x), this.sprite.set_y(this.physics.y), this.sprite.set_rotation(this.physics.degrees)) : (this.sprite.set_x(this.transform.x), this.sprite.set_y(this.transform.y), this.sprite.set_rotation(this.transform.degrees)), this.updateOldValues && (this.updateOldValues = !1, this.sprite._updateOldValues()))
+ },
+ getGameSprite: function() {
+ return this.sprite
+ },
+ setSingleTile: function(a,
+ b, c, d, e, p, r, g, k, h, m) {
+ m ? (c = Math.round((g - a.offsetY) / h) + c | 0, d = Math.round((r - a.offsetX) / h) + d | 0, k = x.FindStringId(f.BitmapsNames, k), a.setTile(b, c, d, p, f.Bitmaps[f.BitmapsIds[k]], e), null != this.tileObject && a.setTileObject(this.tileObject, c, d)) : (a = da.GetBitmap(k), a.set_x(Math.round(d * h)), a.set_y(Math.round(c * h)), this.sprite.addChild(a), a.gotoAndStop(e))
+ },
+ destroy: function() {
+ null != this.sprite && (this.sprite.clearChildren(), f.Dispose(this.sprite), this.sprite = null)
+ },
+ giveAwayGameSprite: function() {
+ var a = this.getGameSprite();
+ a == this.sprite ? this.sprite = null : a.parent.removeChild(a);
+ return a
+ },
+ resetGraphics: function() {
+ this.destroy();
+ this.postInit();
+ this.updateOldValues = !0;
+ this.postUpdate()
+ },
+ getParent: function() {
+ return null != this.sprite && null != this.sprite.parent ? this.sprite.parent : null
+ },
+ changeSprite: function(a) {
+ null != a && null != this.sprite && this.sprite.parent.addChild(a);
+ null != this.sprite && this.sprite.parent.removeChild(this.sprite);
+ this.sprite = a
+ },
+ __class__: da
+ });
+ var $a = function(a) {
+ this.tempKeys = [];
+ this.index = a
+ }; s["ozity.OzLevelProgress"] =
+ $a; $a.__name__ = ["ozity", "OzLevelProgress"]; $a.getInstance = function(a) {
+ if (null == $a.current || $a.current.index != a) $a.current = new $a(a);
+ return $a.current
+ }; $a.prototype = {
+ clearTemps: function() {
+ if (null == this.tempKeys || 0 < this.tempKeys.length) this.tempKeys = []
+ },
+ __class__: $a
+ };
+ var Wc = function(a, b, c) {
+ this.vec4 = null;
+ this.visible = !0;
+ N.call(this, a, b, c);
+ null != c.get("visible") && (this.visible = "true" == c.get("visible"))
+ }; s["ozity.OzPath"] = Wc; Wc.__name__ = ["ozity", "OzPath"]; Wc.__super__ = N; Wc.prototype = R(N.prototype, {
+ init: function() {
+ this.vec4 = [];
+ this.gameObject.geometry.getMinMaxXY(this.gameObject.transform.x, this.gameObject.transform.y, this.gameObject.transform.degrees, this.vec4)
+ },
+ postInit: function() {
+ this.gameObject.graphics.sprite.set_visible(this.visible)
+ },
+ getMinX: function() {
+ return this.vec4[0]
+ },
+ getMaxX: function() {
+ return this.vec4[2]
+ },
+ __class__: Wc
+ });
+ var m = function(a, b) {
+ this.colTypes = this.standingOn = null;
+ this.colMask = -1;
+ this.colGroup = 1;
+ this.isSensor = this.isTop = !1;
+ this.hitFlags = this.bodyType = this.x = this.y = this.velX = this.velY = this.accelX =
+ this.accelY = this.degrees = 0;
+ N.call(this, a, b, null)
+ }; s["ozity.OzPhysics"] = m; m.__name__ = ["ozity", "OzPhysics"]; m.getFilter = function(a) {
+ if (null == a) return m.DefaultFilter;
+ var b = m.FilterMap;
+ if (null != O[a] ? b.existsReserved(a) : b.h.hasOwnProperty(a)) return b = m.FilterMap, null != O[a] ? b.getReserved(a) : b.h[a];
+ var c = m.FiltersXml,
+ b = null;
+ if (null != c)
+ for (c = c.elementsNamed("filter"); c.hasNext();) {
+ var d = c.next(),
+ e = d.get("name");
+ if (null != e && e == a) {
+ b = d;
+ break
+ }
+ }
+ if (null != b) return c = m.FilterMap, null != O[a] ? c.setReserved(a, b) : c.h[a] =
+ b, b;
+ throw new D("CAN'T FIND FILTER: " + a);
+ }; m.PreStaticInit = function() {
+ m.ColHandlers = new Jb;
+ var a = t.definitionsXML,
+ b = null;
+ if (null != a)
+ for (a = a.elementsNamed("filters"); a.hasNext();) {
+ b = a.next();
+ break
+ }
+ m.FiltersXml = b;
+ m.FilterMap = new X;
+ null != m.FiltersXml && (m.DefaultFilter = m.getFilter("default"))
+ }; m.AddCollisionListener = function(a, b, c) {
+ m.ColHandlers.exists(a) || m.ColHandlers.set(a, new Jb);
+ m.ColHandlers.get(a).set(b, c)
+ }; m.Update = function(a, b, c) {
+ m.LastTimeStep = c;
+ for (var d = 0; d < a.length;) {
+ var e = a[d];
+ ++d;
+ var f =
+ e.physics;
+ null != e.geometry && null != f && 3 == f.bodyType && (f.hitFlags = 0, f.x += f.velX * c, f.y += f.velY * c, f.velX += f.accelX * c, f.velY += f.accelY * c)
+ }
+ for (var h = 0; h < a.length;) {
+ var g = a[h];
+ ++h;
+ var k = g.physics,
+ l = g.geometry;
+ if (null != l && null != k && 1 == k.bodyType) switch (l.type) {
+ case 1:
+ var n = 0,
+ q = null,
+ s = !1,
+ t = k.velX * c;
+ null != k.standingOn && (t += k.standingOn.physics.velX * c);
+ var u = k.x;
+ m.leftHitDiff = m.rightHitDiff = 0;
+ m.leftHitObject = m.rightHitObject = null;
+ m.leftHit = m.rightHit = !1;
+ for (var v = g.physics.x + g.geometry.x - g.geometry.halfWidth,
+ x = v + 2 * g.geometry.halfWidth, y = g.physics.y + g.geometry.y - g.geometry.halfHeight, z = y + 2 * g.geometry.halfHeight, A = g.physics.colGroup, B = g.physics.colMask, E = 0; E < a.length;) {
+ var C = a[E];
+ ++E;
+ if (C != g && !C.dead && null != C.geometry && 1 == C.geometry.type && null != C.physics && !C.physics.isSensor && 1 != C.physics.bodyType && 0 != (A & C.physics.colMask) && 0 != (C.physics.colGroup & B)) {
+ var F = C.physics.x + C.geometry.x - C.geometry.halfWidth,
+ H = C.physics.x + C.geometry.x + C.geometry.halfWidth,
+ J = C.physics.y + C.geometry.y - C.geometry.halfHeight,
+ K = C.physics.velX *
+ c;
+ if (!(y + 1 > C.physics.y + C.geometry.y + C.geometry.halfHeight || z - 1 < J))
+ if (H - 1 - K < v) {
+ v + t < H && (m.leftHit = !0);
+ var L = H - (v + t);
+ null == m.leftHitObject ? (m.leftHitObject = C, m.leftHitDiff = L) : L > m.leftHitDiff && (m.leftHitObject = C, m.leftHitDiff = L)
+ } else if (F + 1 - K > x) {
+ x + t > F && (m.rightHit = !0);
+ var M = F - (x + t);
+ null == m.rightHitObject ? (m.rightHitObject = C, m.rightHitDiff = M) : M < m.rightHitDiff && (m.rightHitObject = C, m.rightHitDiff = M)
+ }
+ }
+ }
+ null != m.rightHitObject && null != m.leftHitObject && 0 < m.leftHitDiff - m.rightHitDiff && (m.rightHit = m.leftHit = !0);
+ m.leftHit && m.rightHit ? (k.x += t + (m.leftHitDiff + m.rightHitDiff) / 2, n |= 266) : m.rightHit ? (t = m.rightHitDiff + t, q = m.rightHitObject) : m.leftHit && (t = m.leftHitDiff + t, q = m.leftHitObject);
+ var R = 0,
+ O = b.getSlope(k.x + l.x, k.y + l.y + 1, l.halfHeight);
+ if (0 > O * t) {
+ for (var T = t * O, N = g.physics, S = g.geometry, P = N.y + S.y - S.halfHeight, W = t / T, X = N.x + S.x - S.halfWidth, Z = X + 2 * S.halfWidth, Y = P + b.GetMaxUpDY(X, Z, P, t, T), aa = N.colGroup, ba = N.colMask, ca = 0; ca < a.length;) {
+ var U = a[ca];
+ ++ca;
+ if (U != g && !U.dead && null != U.geometry && 1 == U.geometry.type && null != U.physics &&
+ !U.physics.isSensor && 1 != U.physics.bodyType && 0 != (aa & U.physics.colMask) && 0 != (U.physics.colGroup & ba)) {
+ var da = U.physics.y + U.geometry.y + U.geometry.halfHeight;
+ if (da < P + 1 && da > Y) {
+ G.trace("POSSIBLE HIT", {
+ fileName: "OzPhysics.hx",
+ lineNumber: 1211,
+ className: "ozity.OzPhysics",
+ methodName: "GetMaxUpDY"
+ });
+ var ea = (da - P) * W,
+ fa = U.physics.x + U.geometry.x - U.geometry.halfWidth,
+ ga = fa + 2 * U.geometry.halfWidth;
+ Z + ea < fa || X + ea > ga || (Y = da)
+ }
+ }
+ }
+ R = Math.min(P, Y) - P;
+ t = R / O
+ }
+ 0 == (n & 256) && (0 > t ? (s = b.horSideHit(k.x + l.x + t, k.y + l.y, l.halfWidth, l.halfHeight, -1)) ? (k.x = b.horHitSet(k.x + l.x + t, l.halfWidth, -1) - l.x, n |= 8, null != m.rightHitObject && (m.rightHit || k.x - u > m.rightHitDiff + k.velX * c) && (n |= 258)) : null != q ? (k.x += t, n |= 8, m.CollisionResponse(g, q)) : k.x += t : (s = b.horSideHit(k.x + l.x + t, k.y + l.y, l.halfWidth, l.halfHeight, 1)) ? (k.x = b.horHitSet(k.x + l.x + t, l.halfWidth, 1) - l.x, n |= 2, null != m.leftHitObject && (m.leftHit || k.x - u < m.leftHitDiff + k.velX * c) && (n |= 264)) : null != q ? (k.x += t, n |= 2, m.CollisionResponse(g, q)) : k.x += t);
+ var q = null,
+ s = !1,
+ V = k.velY * c;
+ null != k.standingOn && (V += k.standingOn.physics.velY *
+ c);
+ var ia = k.y;
+ m.topHitDiff = m.bottomHitDiff = 0;
+ m.topHitObject = m.bottomHitObject = null;
+ m.topHit = m.bottomHit = !1;
+ for (var ja = g.physics.x + g.geometry.x - g.geometry.halfWidth, la = ja + 2 * g.geometry.halfWidth, ka = g.physics.y + g.geometry.y - g.geometry.halfHeight, ma = ka + 2 * g.geometry.halfHeight, oa = g.physics.colGroup, qa = g.physics.colMask, na = 0; na < a.length;) {
+ var ra = a[na];
+ ++na;
+ if (ra != g && !ra.dead && null != ra.geometry && null != ra.physics && !ra.physics.isSensor && 1 != ra.physics.bodyType && 0 != (oa & ra.physics.colMask) && 0 != (ra.physics.colGroup &
+ qa)) {
+ var ua = ra.physics.x + ra.geometry.x - ra.geometry.halfWidth,
+ pa = ra.physics.y + ra.geometry.y - ra.geometry.halfHeight,
+ ta = ra.physics.y + ra.geometry.y + ra.geometry.halfHeight,
+ xa = ra.physics.velY * c;
+ if (!(ja + 1 > ra.physics.x + ra.geometry.x + ra.geometry.halfWidth || la - 1 < ua))
+ if (ta - 1 - xa < ka) {
+ ka + V < ta && (m.topHit = !0);
+ var va = ta - (ka + V);
+ null == m.topHitObject ? (m.topHitObject = ra, m.topHitDiff = va) : va > m.topHitDiff && (m.topHitObject = ra, m.topHitDiff = va)
+ } else if (pa + 1 - xa > ma) {
+ ma + V > pa && (m.bottomHit = !0);
+ var wa = pa - (ma + V);
+ null == m.bottomHitObject ?
+ (m.bottomHitObject = ra, m.bottomHitDiff = wa) : wa < m.bottomHitDiff && (m.bottomHitObject = ra, m.bottomHitDiff = wa)
+ }
+ }
+ }
+ null != m.topHitObject && null != m.bottomHitObject && 0 < m.topHitDiff - m.bottomHitDiff && (m.topHit = m.bottomHit = !0);
+ m.topHit && m.bottomHit ? (k.y += V + (m.topHitDiff + m.bottomHitDiff) / 2, n |= 261) : m.bottomHit ? (n |= 4, V = m.bottomHitDiff + V, q = m.bottomHitObject) : m.topHit && (n |= 1, V = m.topHitDiff + V, q = m.topHitObject);
+ m.bottomHit || (k.standingOn = null);
+ if (0 == (n & 256))
+ if (0 > V)
+ if (s = b.verSideHit(k.x + l.x, k.y + l.y + V, l.halfWidth, l.halfHeight, -1)) {
+ k.y = b.verHitSet(k.y + l.y + V, l.halfHeight, -1) - l.y;
+ n |= 1;
+ null != m.bottomHitObject && (m.bottomHit || k.y - ia > m.bottomHitDiff + k.velY * c) && (n |= 260);
+ for (var Aa = Math.floor((k.y + l.y - l.halfHeight + V - b.offsetY) / b.tileSize), Fa = Math.floor((k.x + l.x - l.halfWidth + 0.1 - b.offsetX) / b.tileSize), Ja = Math.floor((k.x + l.x + l.halfWidth - 0.1 - b.offsetX) / b.tileSize) + 1; Fa < Ja;) {
+ var Ga = Fa++,
+ Ha = b.getTileObject(Aa, Ga);
+ g.dead || null == Ha || Ha.hitBelow(g, Aa, Ga)
+ }
+ } else null != q ? (k.y += V, m.topHit && (n |= 1), m.bottomHit && (k.standingOn = m.bottomHitObject),
+ m.CollisionResponse(g, q)) : k.y += V;
+ else {
+ var ya = b.downHitSpecialSet(k.x, k.y + l.y + V + (0 < (k.hitFlags & 16) ? 10 : 0), l.halfHeight),
+ s = b.verSideHit(k.x + l.x, k.y + l.y + V, l.halfWidth, l.halfHeight, 1, Math.floor(k.y + l.y + l.halfHeight + 0.1) < Math.floor(k.y + l.y + l.halfHeight + V + 0.1));
+ null != q && (isNaN(ya) ? s && (k.y + V > b.verHitSet(k.y + l.y + V, l.halfHeight, 1) - l.y ? q = null : s = !1) : k.y + V > ya + l.y ? q = null : ya = NaN);
+ if (isNaN(ya))
+ if (s) {
+ k.y = b.verHitSet(k.y + l.y + V, l.halfHeight, 1) - l.y;
+ n |= 4;
+ null != m.topHitObject && (m.topHit || k.y - ia < m.topHitDiff + k.velY * c) &&
+ (n |= 257);
+ for (var Ia = Math.floor((k.y + l.y + l.halfHeight + V - b.offsetY) / b.tileSize), Ka = Math.floor((k.x + l.x - l.halfWidth + 0.1 - b.offsetX) / b.tileSize), Qa = Math.floor((k.x + l.x + l.halfWidth - 0.1 - b.offsetX) / b.tileSize) + 1; Ka < Qa;) {
+ var Ma = Ka++,
+ Oa = b.getTileObject(Ia, Ma);
+ g.dead || null == Oa || Oa.hitAbove(g, Ia, Ma)
+ }
+ } else null != q ? (k.y += V, m.bottomHit && (n |= 4, k.standingOn = m.bottomHitObject), m.CollisionResponse(g, q)) : k.y += V;
+ else k.y = ya - l.y, n |= 4, n |= 16, null != m.topHitObject && 0 < m.topHitObject.physics.velY && (m.topHit || k.y - ia < m.topHitDiff +
+ k.velY * c) && (n |= 257)
+ }
+ k.hitFlags = n;
+ if (0 > k.velX && 0 < (k.hitFlags & 8) || 0 < k.velX && 0 < (k.hitFlags & 2)) k.velX = 0;
+ if (0 > k.velY && 0 < (k.hitFlags & 1) || 0 < k.velY && 0 < (k.hitFlags & 4)) k.velY = 0;
+ if (0 < (k.colGroup & 15728640))
+ for (var Sa = Math.floor((k.x - l.halfWidth + 0.01 - b.offsetX) / b.tileSize), Ua = Math.floor((k.x + l.halfWidth - 0.01 - b.offsetX) / b.tileSize) + 1, Ra = Math.floor((k.y - l.halfHeight + 0.01 - b.offsetY) / b.tileSize), Xa = Math.floor((k.y + l.halfHeight - 0.01 - b.offsetY) / b.tileSize) + 1; Ra < Xa;)
+ for (var Ta = Ra++, Va = Sa, cb = Ua; Va < cb;) {
+ var Ya = Va++,
+ Za =
+ b.getTileObject(Ta, Ya);
+ g.dead || null == Za || Za.touch(g, Ta, Ya)
+ }
+ break;
+ case 2:
+ for (var Ca = k.velX * c, Da = k.velY * c, jb = k.x + l.x, kb = k.y + l.y, za = !1, Wa = 0; Wa < a.length;) {
+ var ab = a[Wa];
+ ++Wa;
+ if (!(ab == g || ab.dead || null == ab.geometry || 1 != ab.geometry.type && 3 != ab.geometry.type || null == ab.physics || ab.physics.isSensor || 1 == ab.physics.bodyType || 0 == (k.colGroup & ab.physics.colMask) || 0 == (ab.physics.colGroup & k.colMask))) {
+ var eb = ab.physics,
+ sa = ab.geometry;
+ if (1 == sa.type) {
+ var fb = eb.x + sa.x - jb,
+ ib = eb.y + sa.y - kb;
+ fb * fb + ib * ib > sa.halfWidth * sa.halfWidth +
+ sa.halfHeight * sa.halfHeight + l.radius * l.radius || (m.AdjustNearestData(g, Ca, Da, ab, -sa.halfWidth, -sa.halfHeight, sa.halfWidth, -sa.halfHeight, m.nearestData, za) && (za = !0), m.AdjustNearestData(g, Ca, Da, ab, sa.halfWidth, -sa.halfHeight, sa.halfWidth, sa.halfHeight, m.nearestData, za) && (za = !0), m.AdjustNearestData(g, Ca, Da, ab, sa.halfWidth, sa.halfHeight, -sa.halfWidth, sa.halfHeight, m.nearestData, za) && (za = !0), m.AdjustNearestData(g, Ca, Da, ab, -sa.halfWidth, sa.halfHeight, -sa.halfWidth, -sa.halfHeight, m.nearestData, za) && (za = !0))
+ }
+ }
+ }
+ za &&
+ m.AdjustCircleFromSegment(g, Ca, Da, m.nearestData, m.tempVec2) && (Ca = m.tempVec2[0], Da = m.tempVec2[1]);
+ G.trace("ikonata", {
+ fileName: "OzPhysics.hx",
+ lineNumber: 938,
+ className: "ozity.OzPhysics",
+ methodName: "Update",
+ customParams: [k.x, k.y, Ca, Da]
+ });
+ k.x += Ca;
+ k.y += Da;
+ break;
+ default:
+ G.trace("ERROR geometry not supported", {
+ fileName: "OzPhysics.hx",
+ lineNumber: 947,
+ className: "ozity.OzPhysics",
+ methodName: "Update",
+ customParams: [g.geometry.type]
+ })
+ }
+ }
+ for (var $a = 0; $a < a.length;) {
+ var Pa = a[$a];
+ ++$a;
+ var Ba = Pa.physics,
+ Na = Pa.geometry;
+ if (null != Na && null != Ba && 3 == Ba.bodyType)
+ if (1 == Na.type)
+ for (var lb = Ba.x + Na.x - Na.halfWidth, mb = Ba.y + Na.y - Na.halfHeight, yb = Math.floor((lb + 0.01 - b.offsetX) / b.tileSize), zb = Math.floor((lb + 2 * Na.halfWidth - 0.01 - b.offsetX) / b.tileSize) + 1, nb = Math.floor((mb + 0.01 - b.offsetY) / b.tileSize), Ab = Math.floor((mb + 2 * Na.halfHeight - 0.01 - b.offsetY) / b.tileSize) + 1; nb < Ab;)
+ for (var pb = nb++, sb = yb, Fb = zb; sb < Fb;) {
+ var ub = sb++,
+ vb = b.getTileObject(pb, ub);
+ Pa.dead || null == vb || vb.touch(Pa, pb, ub)
+ } else if (2 == Na.type)
+ for (var wb = Ba.x + Na.x - Na.radius,
+ xb = Ba.y + Na.y - Na.radius, Hb = Math.floor((wb + 0.01 - b.offsetX) / b.tileSize), Ib = Math.floor((wb + 2 * Na.radius - 0.01 - b.offsetX) / b.tileSize) + 1, Db = Math.floor((xb + 0.01 - b.offsetY) / b.tileSize), Lb = Math.floor((xb + 2 * Na.radius - 0.01 - b.offsetY) / b.tileSize) + 1; Db < Lb;)
+ for (var ob = Db++, Jb = Hb, Ob = Ib; Jb < Ob;) {
+ var qb = Jb++,
+ rb = qb * b.tileSize + b.offsetX,
+ tb = ob * b.tileSize + b.offsetY,
+ Eb = rb + b.tileSize,
+ Gb = tb + b.tileSize,
+ db = Ba.x + Na.x,
+ gb = Ba.y + Na.y,
+ hb = Na.radius,
+ Cb;
+ if (gb > tb && gb < Gb && db + hb > rb && db - hb < Eb) Cb = !0;
+ else if (db > rb && db < Eb && gb + hb > tb && gb - hb < Gb) Cb = !0;
+ else {
+ var Yb = Eb - db,
+ Pb = Math.min(Math.abs(rb - db), Math.abs(Yb)),
+ ac = Gb - gb,
+ Sb = Math.min(Math.abs(tb - gb), Math.abs(ac));
+ Cb = Pb * Pb + Sb * Sb < hb * hb
+ }
+ if (Cb) {
+ var Tb = b.getTileObject(ob, qb);
+ Pa.dead || null == Tb || Tb.touch(Pa, ob, qb);
+ 1 == (b.colData[ob][qb] >> 16 & 15) && Ba.hasCollisionResponseWithType(Q.AnyType) && Ba.collisionResponseWithType(Q.AnyType)
+ }
+ }
+ }
+ for (var Ub = 0, bc = a.length; Ub < bc;) {
+ var Mb = Ub++,
+ ha = a[Mb];
+ if (!ha.dead && null != ha.geometry && null != ha.physics)
+ if (1 == ha.geometry.type)
+ for (var Vb = ha.physics.x + ha.geometry.x - ha.geometry.halfWidth,
+ dc = Vb + 2 * ha.geometry.halfWidth, Wb = ha.physics.y + ha.geometry.y - ha.geometry.halfHeight, ec = Wb + 2 * ha.geometry.halfHeight, Xb = Mb + 1, fc = a.length; Xb < fc;) {
+ var gc = Xb++,
+ Ea = a[gc];
+ if (!Ea.dead && null != Ea.geometry && null != Ea.physics) {
+ if (1 == Ea.geometry.type) {
+ var Zb = Ea.physics.x + Ea.geometry.x - Ea.geometry.halfWidth,
+ hc = Zb + 2 * Ea.geometry.halfWidth,
+ Qb;
+ if (dc <= Zb || hc <= Vb) Qb = !1;
+ else {
+ var cc = Ea.physics.y + Ea.geometry.y - Ea.geometry.halfHeight,
+ lc = cc + 2 * Ea.geometry.halfHeight;
+ Qb = ec <= cc || lc <= Wb ? !1 : !0
+ }
+ if (!Qb) continue
+ } else if (2 == Ea.geometry.type) {
+ var Nb =
+ ha.physics.x + ha.geometry.x - ha.geometry.halfWidth,
+ mc = Nb + 2 * ha.geometry.halfWidth,
+ vc = ha.physics.y + ha.geometry.y - ha.geometry.halfHeight,
+ wc = vc + 2 * ha.geometry.halfHeight,
+ nc = Ea.physics.x + Ea.geometry.x,
+ $b = Ea.physics.y + Ea.geometry.y,
+ ic = Ea.geometry.radius,
+ Kb;
+ if ($b > vc && $b < wc && nc + ic > Nb && nc - ic < mc) Kb = !0;
+ else if (nc > Nb && nc < mc && $b + ic > vc && $b - ic < wc) Kb = !0;
+ else {
+ var Ec = mc - nc,
+ Lc = Math.min(Math.abs(Nb - nc), Math.abs(Ec)),
+ Fc = wc - $b,
+ yc = Math.min(Math.abs(vc - $b), Math.abs(Fc));
+ Kb = Lc * Lc + yc * yc < ic * ic
+ }
+ if (!Kb) continue
+ } else throw new D(new Bb("We Can Only Collide Rectangles and CIRCLES in G2!"));
+ m.CollisionResponse(ha, Ea)
+ }
+ } else if (2 == ha.geometry.type)
+ for (var jc = ha.physics.x + ha.geometry.x, oc = ha.physics.y + ha.geometry.y, kc = ha.geometry.radius, pc = Mb + 1, qc = a.length; pc < qc;) {
+ var Ic = pc++,
+ La = a[Ic];
+ if (!La.dead && null != La.geometry && null != La.physics) {
+ if (1 == La.geometry.type) {
+ var rc = La.physics.x + La.geometry.x - La.geometry.halfWidth,
+ sc = rc + 2 * La.geometry.halfWidth,
+ Mc = La.physics.y + La.geometry.y - La.geometry.halfHeight,
+ tc = Mc + 2 * La.geometry.halfHeight,
+ xc = ha.physics.x + ha.geometry.x,
+ Rb = ha.physics.y + ha.geometry.y,
+ bb =
+ ha.geometry.radius,
+ Gc;
+ if (Rb > Mc && Rb < tc && xc + bb > rc && xc - bb < sc) Gc = !0;
+ else if (xc > rc && xc < sc && Rb + bb > Mc && Rb - bb < tc) Gc = !0;
+ else {
+ var Jc = sc - xc,
+ zc = Math.min(Math.abs(rc - xc), Math.abs(Jc)),
+ Kc = tc - Rb,
+ Ac = Math.min(Math.abs(Mc - Rb), Math.abs(Kc));
+ Gc = zc * zc + Ac * Ac < bb * bb
+ }
+ if (!Gc) continue
+ } else if (2 == La.geometry.type) {
+ var Bc = jc - (La.physics.x + La.geometry.x),
+ Cc = oc - (La.physics.y + La.geometry.y);
+ if (!(Bc * Bc + Cc * Cc < kc * kc + La.geometry.radius * La.geometry.radius)) continue
+ } else throw new D(new Bb("We Can Only Collide Rectangles and CIRCLES in G2!"));
+ m.CollisionResponse(ha, La)
+ }
+ } else throw new D(new Bb("We Can Only Collide Rectangles and Circles G1!"));
+ }
+ for (var uc = 0; uc < a.length;) {
+ var Dc = a[uc];
+ ++uc;
+ var Hc = Dc.physics;
+ null != Dc.geometry && null != Hc && 2 != Hc.bodyType && (Hc.velX += Hc.accelX * c, Hc.velY += Hc.accelY * c)
+ }
+ }; m.AdjustNearestData = function(a, b, c, d, e, f, h, g, k, l) {
+ b = a.physics.x + a.geometry.x + b;
+ a = a.physics.y + a.geometry.y + c;
+ c = d.physics;
+ d = d.geometry;
+ var n = c.x,
+ q = c.y,
+ s = c.degrees,
+ t = m.tempVec2;
+ d.applyOriginRotation(d.x + e, d.y + f, d.degrees, t);
+ x.rotateAroundPoint(t[0],
+ t[1], s, 0, 0, t);
+ t[0] += n;
+ t[1] += q;
+ e = m.tempVec2[0];
+ f = m.tempVec2[1];
+ n = c.x;
+ q = c.y;
+ c = c.degrees;
+ s = m.tempVec2;
+ d.applyOriginRotation(d.x + h, d.y + g, d.degrees, s);
+ x.rotateAroundPoint(s[0], s[1], c, 0, 0, s);
+ s[0] += n;
+ s[1] += q;
+ h = m.tempVec2[0];
+ g = m.tempVec2[1];
+ b = x.PointLineDistance(e, f, h, g, b, a, !0);
+ return !l || b < k[4] ? (k[0] = e, k[1] = f, k[2] = h, k[3] = g, k[4] = b, k[5] = x.PLDNearest, !0) : !1
+ }; m.AdjustCircleFromSegment = function(a, b, c, d, e) {
+ var f = a.physics.x + a.geometry.x + b,
+ h = a.physics.y + a.geometry.y + c,
+ g = d[0],
+ k = d[1],
+ l = d[2],
+ n = d[3];
+ return d[4] < a.geometry.radius ?
+ (x.ProjectPointOnLineSegment(f, h, g, k, l, n, m.tempVec2), G.trace("(" + f, {
+ fileName: "OzPhysics.hx",
+ lineNumber: 1112,
+ className: "ozity.OzPhysics",
+ methodName: "AdjustCircleFromSegment",
+ customParams: [h + "),(" + g, k + "),(" + l, n + "),(" + m.tempVec2[0], m.tempVec2[1] + ")"]
+ }), d = l - g, n -= k, k = 0 * d - -1 * n, n = -1 * d + 0 * n, d = Math.sqrt(k * k + n * n), k = k * a.geometry.radius / d, n = n * a.geometry.radius / d, e[0] = m.tempVec2[0] - f + b + k, e[1] = m.tempVec2[1] - h + c + n, !0) : !1
+ }; m.CollisionResponse = function(a, b) {
+ if (null != a.physics.colTypes && null != b.physics.colTypes)
+ for (var c =
+ 0, d = a.physics.colTypes; c < d.length;) {
+ var e = d[c];
+ ++c;
+ for (var f = 0, h = b.physics.colTypes; f < h.length;) {
+ var g = h[f];
+ ++f;
+ var k = m.ColHandlers.get(e);
+ null != k && (k = k.get(g), null != k && k(a, b));
+ if (a.dead || b.dead) return;
+ g = m.ColHandlers.get(g);
+ null != g && (g = g.get(e), null != g && g(b, a));
+ if (a.dead || b.dead) return
+ }
+ }
+ }; m.GetMaxUpDY = function(a, b, c, d, e) {
+ var f = a.physics,
+ h = a.geometry,
+ g = f.y + h.y - h.halfHeight,
+ k = d / e,
+ m = f.x + h.x - h.halfWidth,
+ h = m + 2 * h.halfWidth;
+ b = g + b.GetMaxUpDY(m, h, g, d, e);
+ d = f.colGroup;
+ f = f.colMask;
+ for (e = 0; e < c.length;) {
+ var l =
+ c[e];
+ ++e;
+ if (l != a && !l.dead && null != l.geometry && 1 == l.geometry.type && null != l.physics && !l.physics.isSensor && 1 != l.physics.bodyType && 0 != (d & l.physics.colMask) && 0 != (l.physics.colGroup & f)) {
+ var n = l.physics.y + l.geometry.y + l.geometry.halfHeight;
+ if (n < g + 1 && n > b) {
+ G.trace("POSSIBLE HIT", {
+ fileName: "OzPhysics.hx",
+ lineNumber: 1211,
+ className: "ozity.OzPhysics",
+ methodName: "GetMaxUpDY"
+ });
+ var q = (n - g) * k,
+ s = l.physics.x + l.geometry.x - l.geometry.halfWidth,
+ l = s + 2 * l.geometry.halfWidth;
+ h + q < s || m + q > l || (b = n)
+ }
+ }
+ }
+ return Math.min(g, b) - g
+ }; m.GetSlope =
+ function(a, b, c, d) {
+ return a.getSlope(b, c, d)
+ }; m.goStaticHorHit = function(a, b, c, d, e) {
+ m.leftHitDiff = m.rightHitDiff = 0;
+ m.leftHitObject = m.rightHitObject = null;
+ m.leftHit = m.rightHit = !1;
+ c = b.physics.x + b.geometry.x - b.geometry.halfWidth;
+ for (var f = c + 2 * b.geometry.halfWidth, h = b.physics.y + b.geometry.y - b.geometry.halfHeight, g = h + 2 * b.geometry.halfHeight, k = b.physics.colGroup, l = b.physics.colMask, n = 0; n < a.length;) {
+ var q = a[n];
+ ++n;
+ if (q != b && !q.dead && null != q.geometry && 1 == q.geometry.type && null != q.physics && !q.physics.isSensor &&
+ 1 != q.physics.bodyType && 0 != (k & q.physics.colMask) && 0 != (q.physics.colGroup & l)) {
+ var s = q.physics.x + q.geometry.x - q.geometry.halfWidth,
+ t = q.physics.x + q.geometry.x + q.geometry.halfWidth,
+ u = q.physics.y + q.geometry.y - q.geometry.halfHeight,
+ v = q.physics.velX * e;
+ h + 1 > q.physics.y + q.geometry.y + q.geometry.halfHeight || g - 1 < u || (t - 1 - v < c ? (c + d < t && (m.leftHit = !0), s = t - (c + d), null == m.leftHitObject ? (m.leftHitObject = q, m.leftHitDiff = s) : s > m.leftHitDiff && (m.leftHitObject = q, m.leftHitDiff = s)) : s + 1 - v > f && (f + d > s && (m.rightHit = !0), s -= f + d, null ==
+ m.rightHitObject ? (m.rightHitObject = q, m.rightHitDiff = s) : s < m.rightHitDiff && (m.rightHitObject = q, m.rightHitDiff = s)))
+ }
+ }
+ null != m.rightHitObject && null != m.leftHitObject && 0 < m.leftHitDiff - m.rightHitDiff && (m.rightHit = m.leftHit = !0)
+ }; m.goStaticVerHit = function(a, b, c, d, e) {
+ m.topHitDiff = m.bottomHitDiff = 0;
+ m.topHitObject = m.bottomHitObject = null;
+ m.topHit = m.bottomHit = !1;
+ c = b.physics.x + b.geometry.x - b.geometry.halfWidth;
+ for (var f = c + 2 * b.geometry.halfWidth, h = b.physics.y + b.geometry.y - b.geometry.halfHeight, g = h + 2 * b.geometry.halfHeight,
+ k = b.physics.colGroup, l = b.physics.colMask, n = 0; n < a.length;) {
+ var q = a[n];
+ ++n;
+ if (q != b && !q.dead && null != q.geometry && null != q.physics && !q.physics.isSensor && 1 != q.physics.bodyType && 0 != (k & q.physics.colMask) && 0 != (q.physics.colGroup & l)) {
+ var s = q.physics.x + q.geometry.x - q.geometry.halfWidth,
+ t = q.physics.y + q.geometry.y - q.geometry.halfHeight,
+ u = q.physics.y + q.geometry.y + q.geometry.halfHeight,
+ v = q.physics.velY * e;
+ c + 1 > q.physics.x + q.geometry.x + q.geometry.halfWidth || f - 1 < s || (u - 1 - v < h ? (h + d < u && (m.topHit = !0), s = u - (h + d), null == m.topHitObject ?
+ (m.topHitObject = q, m.topHitDiff = s) : s > m.topHitDiff && (m.topHitObject = q, m.topHitDiff = s)) : t + 1 - v > g && (g + d > t && (m.bottomHit = !0), s = t - (g + d), null == m.bottomHitObject ? (m.bottomHitObject = q, m.bottomHitDiff = s) : s < m.bottomHitDiff && (m.bottomHitObject = q, m.bottomHitDiff = s)))
+ }
+ }
+ null != m.topHitObject && null != m.bottomHitObject && 0 < m.topHitDiff - m.bottomHitDiff && (m.topHit = m.bottomHit = !0)
+ }; m.outsideVer = function(a, b, c, d) {
+ return a + 0.001 > d ? !0 : b - 0.001 < c
+ }; m.outsideHor = function(a, b, c, d) {
+ return a + 0.001 > d ? !0 : b - 0.001 < c
+ }; m.goRectRectHit =
+ function(a, b, c, d, e) {
+ var f = e.physics.x + e.geometry.x - e.geometry.halfWidth,
+ h = f + 2 * e.geometry.halfWidth;
+ if (b <= f || h <= a) return !1;
+ a = e.physics.y + e.geometry.y - e.geometry.halfHeight;
+ e = a + 2 * e.geometry.halfHeight;
+ return d <= a || e <= c ? !1 : !0
+ }; m.goCircCircHit = function(a, b, c, d) {
+ a -= d.physics.x + d.geometry.x;
+ b -= d.physics.y + d.geometry.y;
+ return a * a + b * b < c * c + d.geometry.radius * d.geometry.radius
+ }; m.goRectCircHit = function(a, b) {
+ var c = a.physics.x + a.geometry.x - a.geometry.halfWidth,
+ d = c + 2 * a.geometry.halfWidth,
+ e = a.physics.y + a.geometry.y -
+ a.geometry.halfHeight,
+ f = e + 2 * a.geometry.halfHeight,
+ h = b.physics.x + b.geometry.x,
+ g = b.physics.y + b.geometry.y,
+ k = b.geometry.radius;
+ if (g > e && g < f && h + k > c && h - k < d || h > c && h < d && g + k > e && g - k < f) return !0;
+ d -= h;
+ c = Math.min(Math.abs(c - h), Math.abs(d));
+ f -= g;
+ e = Math.min(Math.abs(e - g), Math.abs(f));
+ return c * c + e * e < k * k
+ }; m.rawRectCircHit = function(a, b, c, d, e, f, h) {
+ if (f > c && f < d && e + h > a && e - h < b || e > a && e < b && f + h > c && f - h < d) return !0;
+ b -= e;
+ a = Math.min(Math.abs(a - e), Math.abs(b));
+ d -= f;
+ c = Math.min(Math.abs(c - f), Math.abs(d));
+ return a * a + c * c < h * h
+ }; m.__super__ =
+ N; m.prototype = R(N.prototype, {
+ hitTop: function() {
+ return 0 < (this.hitFlags & 1)
+ },
+ hitRight: function() {
+ return 0 < (this.hitFlags & 2)
+ },
+ hitBottom: function() {
+ return 0 < (this.hitFlags & 4)
+ },
+ hitLeft: function() {
+ return 0 < (this.hitFlags & 8)
+ },
+ hitSpecialBottom: function() {
+ return 0 < (this.hitFlags & 16)
+ },
+ smashed: function() {
+ return 0 < (this.hitFlags & 256)
+ },
+ isDynamic: function() {
+ return 1 == this.bodyType
+ },
+ isStatic: function() {
+ return 2 == this.bodyType
+ },
+ isKinematic: function() {
+ return 3 == this.bodyType
+ },
+ init: function() {
+ this.x = this.gameObject.transform.x;
+ this.y = this.gameObject.transform.y;
+ this.degrees = this.gameObject.transform.degrees;
+ var a = this.compPrefab.get("type");
+ this.bodyType = null == a ? 1 : "kinematic" == a ? 3 : "static" == a ? 2 : 1;
+ this.isSensor = "true" == this.compPrefab.get("sensor");
+ this.isTop = "true" == this.compPrefab.get("top");
+ 1 == this.bodyType && (this.accelY = this.gameObject.gameSystem.gravity);
+ var a = this.compPrefab.get("filter"),
+ a = m.getFilter(a),
+ b = a.get("colGroup");
+ null != b && (this.colGroup = K.parseInt("0x" + b));
+ a = a.get("colMask");
+ null != a && (this.colMask = K.parseInt("0x" +
+ a));
+ a = this.compPrefab.get("colTypes");
+ if (null != a)
+ for (a = x.CommaStringToArray(a), this.colTypes = [], this.colTypes.push(Q.AnyType), b = 0; b < a.length;) {
+ var c = a[b];
+ ++b;
+ try {
+ this.colTypes.push(U.createEnum(Q, c, null))
+ } catch (d) {
+ throw new D(this.gameObject.getType() + ": no such colType in enum: " + c);
+ }
+ }
+ },
+ hasCollisionResponseWithType: function(a) {
+ if (null != this.colTypes)
+ for (var b = m.ColHandlers.get(a), c = 0, d = this.colTypes; c < d.length;) {
+ var e = d[c];
+ ++c;
+ var f = m.ColHandlers.get(e);
+ if (null != f && f.exists(a) || null != b && b.exists(e)) return !0
+ }
+ return !1
+ },
+ collisionResponseWithType: function(a) {
+ if (null != this.colTypes)
+ for (var b = m.ColHandlers.get(a), c = 0, d = this.colTypes; c < d.length;) {
+ var e = d[c];
+ ++c;
+ var f = m.ColHandlers.get(e);
+ null != f && f.exists(a) && f.get(a)(this.gameObject, null);
+ null != b && b.exists(e) && b.get(e)(null, this.gameObject)
+ }
+ },
+ setxy: function(a, b) {
+ this.x = a;
+ this.y = b
+ },
+ stopDead: function() {
+ this.velX = this.velY = this.accelX = this.accelY = 0
+ },
+ FillBounds: function(a) {
+ this.gameObject.geometry.getMinMaxXY(this.x, this.y, this.degrees, a);
+ return a
+ },
+ outOfScreenBounds: function() {
+ var a =
+ (l.WIDTH - l.WIDTH_MIN) / 2,
+ b = (l.HEIGHT - l.HEIGHT_MIN) / 2;
+ this.FillBounds(m.BoundVec4);
+ return m.BoundVec4[2] < -a || m.BoundVec4[0] > l.WIDTH_MIN + a || m.BoundVec4[3] < -b ? !0 : m.BoundVec4[1] > l.HEIGHT_MIN + b
+ },
+ __class__: m
+ });
+ var Fc = function(a, b, c) {
+ this.aJ = [];
+ this.aI = [];
+ N.call(this, a, b, c)
+ }; s["ozity.OzTileObject"] = Fc; Fc.__name__ = ["ozity", "OzTileObject"]; Fc.__super__ = N; Fc.prototype = R(N.prototype, {
+ init: function() {
+ this.tileMap = this.gameObject.gameSystem.tileMap
+ },
+ touch: function(a, b, c) {},
+ hitBelow: function(a, b, c) {},
+ hitAbove: function(a,
+ b, c) {},
+ getId: function(a, b) {
+ for (var c = 0, d = this.aI.length; c < d;) {
+ var e = c++;
+ if (this.aI[e] == a && this.aJ[e] == b) return e
+ }
+ return -1
+ },
+ __class__: Fc
+ });
+ var jb = function(a, b) {
+ this.degrees = 0;
+ N.call(this, a, null, b);
+ null != b ? (this.x = parseFloat(b.get("x")), this.y = parseFloat(b.get("y")), this.degrees = parseFloat(b.get("rot"))) : this.setxydeg()
+ }; s["ozity.OzTransform"] = jb; jb.__name__ = ["ozity", "OzTransform"]; jb.__super__ = N; jb.prototype = R(N.prototype, {
+ setxydeg: function(a, b, c) {
+ null == c && (c = 0);
+ null == b && (b = 0);
+ null == a && (a = 0);
+ this.x =
+ a;
+ this.y = b;
+ this.degrees = c
+ },
+ fromParent: function(a) {
+ x.rotateAroundPoint(a.x + this.x, a.y + this.y, a.degrees, a.x, a.y, jb.TempVec);
+ this.x = jb.TempVec[0];
+ this.y = jb.TempVec[1];
+ this.degrees += a.degrees
+ },
+ blabla: function() {
+ G.trace("blabla", {
+ fileName: "OzTransform.hx",
+ lineNumber: 38,
+ className: "ozity.OzTransform",
+ methodName: "blabla"
+ })
+ },
+ __class__: jb
+ });
+ var Xc = function(a, b, c) {
+ this.toTrigger = null;
+ N.call(this, a, b, c)
+ }; s["ozity.OzTrigger"] = Xc; Xc.__name__ = ["ozity", "OzTrigger"]; Xc.__super__ = N; Xc.prototype = R(N.prototype, {
+ init: function() {
+ N.prototype.init.call(this);
+ this.toTrigger = []
+ },
+ addToTrigger: function(a) {
+ this.toTrigger.push(a)
+ },
+ trigger: function() {
+ for (var a = 0, b = this.toTrigger; a < b.length;) {
+ var c = b[a];
+ ++a;
+ c.directMessage(L.TRIGGER)
+ }
+ },
+ __class__: Xc
+ });
+ var z = function(a, b, c) {
+ this.wasSpeeding = !1;
+ this.lastMouseDownFrame = -1;
+ this.lastFrameMDown = !1;
+ this.food = 0;
+ this.isPlayer = !0;
+ this.rotSpeed = 0.17;
+ this.speed = 100;
+ N.call(this, a, b, c);
+ null != b.get("speed") && (this.speed = parseFloat(b.get("speed")));
+ null != b.get("rotSpeed") && (this.rotSpeed = parseFloat(b.get("rotSpeed")));
+ null !=
+ c.get("isPlayer") && (this.isPlayer = "true" == c.get("isPlayer"))
+ }; s["ozity.OzWorm"] = z; z.__name__ = ["ozity", "OzWorm"]; z.GetPossibleAnswer = function() {
+ if (0.15 > Math.random()) return z.ProblemSolution;
+ var a = z.ProblemSolution - 11;
+ 1 > a && (a = 1);
+ 100 <= a + 22 && (a = 77);
+ return a + (22 * Math.random() | 0)
+ }; z.StaticInit = function() {
+ z.Mode = 0;
+ z.ProblemSolution = -1E4;
+ G.trace("we set mode none!", {
+ fileName: "OzWorm.hx",
+ lineNumber: 165,
+ className: "ozity.OzWorm",
+ methodName: "StaticInit"
+ });
+ z.Bananas = [];
+ z.Worms = []
+ }; z.SetMode = function(a) {
+ z.Mode =
+ a;
+ z.Player.newProblem();
+ z.Player.fillWithRings()
+ }; z.__super__ = N; z.prototype = R(N.prototype, {
+ newProblem: function() {
+ G.trace("new problem", {
+ fileName: "OzWorm.hx",
+ lineNumber: 88,
+ className: "ozity.OzWorm",
+ methodName: "newProblem"
+ });
+ var a = ["+", "-", "*", "/"],
+ a = 5 == z.Mode ? a[4 * Math.random() | 0] : a[z.Mode - 1],
+ b = -1,
+ c, d, e;
+ if ("+" == a || "-" == a) {
+ for (; c = 1 + 8.98 * Math.random() | 0, d = 1 + 8.98 * Math.random() | 0, e = c + d, b = "+" == a ? e : e - d, b == z.ProblemSolution;);
+ z.ProblemSolution = b;
+ z.ProblemStatement = "+" == a ? c + "+" + d : e + "-" + d
+ } else {
+ for (; c = 1 + 8.98 *
+ Math.random() | 0, d = 1 + 8.98 * Math.random() | 0, e = c * d, b = "*" == a ? e : e / d | 0, b == z.ProblemSolution;);
+ z.ProblemSolution = b;
+ z.ProblemStatement = "*" == a ? c + "*" + d : e + "/" + d
+ }
+ t.TextMath(E.instance.problemSprite.getChild("problem"), z.ProblemStatement + "=?", V.CENTER);
+ t.TextMath(E.instance.problemSprite2.getChild("problem2"), z.ProblemStatement + "=?", V.LEFT);
+ 0 < this.eatenCircles && (n.To(E.instance.problemSprite, 0.15, {
+ scaleX: 1.2,
+ scaleY: 1.2
+ }).reflect(!0).ease(Ca.QuadOut), n.To(E.instance.problemSprite2, 0.15, {
+ scaleX: 1.2,
+ scaleY: 1.2
+ }).reflect(!0).ease(Ca.QuadOut))
+ },
+ die: function() {
+ if (!this.gameObject.dead) {
+ for (var a = 0, b = z.Worms.length; a < b;) {
+ var c = a++;
+ if (z.Worms[c] == this) {
+ z.Worms.splice(c, 1);
+ break
+ }
+ }
+ for (var a = this.gameObject.graphics.depth, c = b = this.par.child.prev, d = this.gameObject.physics.x, e = this.gameObject.physics.y;;) {
+ var h = [f.New(q.cmcSmoke)],
+ l = 360 * Math.random();
+ h[0].set_rotation(l);
+ this.gameObject.gameSystem.addSprite(h[0], a);
+ var l = d + c.get_x(),
+ g = e + c.get_y();
+ h[0].set_x(l);
+ h[0].set_y(g);
+ l = h[0].set_scaleY(0.6);
+ h[0].set_scaleX(l);
+ h[0]._updateOldValues();
+ n.To(h[0],
+ 0.7, {
+ alpha: 0.5,
+ scaleX: 1.2,
+ scaleY: 1.2
+ }).ease(Ca.QuadIn).onComplete(function(a) {
+ return function() {
+ a[0].dispose()
+ }
+ }(h)).onUpdate(function(a, b) {
+ return function() {
+ var c = b[0];
+ c.set_rotation(c.get_rotation() + a[0])
+ }
+ }([4], h));
+ c = c.prev;
+ c != b && (c = c.prev);
+ if (c == b) break
+ }
+ this.gameObject.kill();
+ this.isPlayer ? this.gameObject.gameSystem.sendMessage(L.PLAYER_DIE) : (z.SpawnTimer = 150, this.gameObject.gameSystem.sendMessage(L.PLAYER_JUMP))
+ }
+ },
+ adjustEnemies: function() {
+ if (0 < z.SpawnTimer) z.SpawnTimer--;
+ else {
+ var a = 150 / this.gameObject.gameSystem.camera.getZoomX();
+ if (1 > z.Worms.length) {
+ for (var b, c, d;;)
+ if (c = Math.random() * Math.PI * 2, b = 500 * Math.cos(c) + z.Player.gameObject.physics.x, c = 500 * Math.sin(c) + z.Player.gameObject.physics.y, d = !0, 100 > E.MinDistInside(b, c)) d = !1;
+ else {
+ for (var e = 0, f = z.Bananas.length; e < f;) {
+ var h = e++,
+ g = z.Bananas[h],
+ h = g.gameObject.transform.x - b,
+ g = g.gameObject.transform.y - c;
+ if (h * h + g * g < a * a) {
+ d = !1;
+ break
+ }
+ }
+ if (!d)
+ if (d) break;
+ else continue;
+ e = 0;
+ for (f = z.Player.posX.length; e < f;)
+ if (g = e++, h = z.Player.posX[g] - b, g = z.Player.posY[g] - c, h * h + g * g < a * a + 1E4) {
+ d = !1;
+ break
+ }
+ if (d) break
+ }
+ d &&
+ (a = this.gameObject.gameSystem.createLazyGameObjectByStringId("worm"), d = a.getComponent(z), a.transform.setxydeg(b, c, 0), a.init(), d.isPlayer = !1, a.postInit())
+ }
+ }
+ },
+ destroy: function() {
+ N.prototype.destroy.call(this);
+ this.removeSpeedRings();
+ for (var a = 0, b = z.Worms.length; a < b;) {
+ var c = a++;
+ if (z.Worms[c] == this) {
+ z.Worms.splice(c, 1);
+ break
+ }
+ }
+ },
+ adjustBananas: function() {
+ for (var a = this.gameObject.gameSystem.camera.getZoomX(), b = l.WIDTH_MAX / a, a = l.HEIGHT_MAX / a, c = this.gameObject.physics.x - b / 2, d = this.gameObject.physics.y - a /
+ 2, c = E.AdjustX(c, b), d = E.AdjustY(d, a), e = Ga.Radius + 25, f = 0; f < z.Bananas.length;) {
+ var h = z.Bananas[f];
+ h.gameObject.physics.x + e < c || h.gameObject.physics.x - e > c + b || h.gameObject.physics.y + e < d || h.gameObject.physics.y - e > d + a ? h.gameObject.destroy() : ++f
+ }
+ f = (b + a) * Math.random();
+ f < b ? (c += f, b = 0 > Math.sin(this.dir) ? d - e : d + a + e) : (c = 0 > Math.cos(this.dir) ? c - e : c + b + e, b = d + f - b);
+ this.putBananaIfYouCan(c, b)
+ },
+ putBananaIfYouCan: function(a, b) {
+ if (20 <= z.Bananas.length) return !1;
+ var c = 150 / this.gameObject.gameSystem.camera.getZoomX(),
+ d = E.MinDistInside(a,
+ b);
+ if (0 > d - c) return !1;
+ for (var d = 0, e = z.Bananas.length; d < e;) {
+ var f = d++,
+ h = z.Bananas[f],
+ f = h.gameObject.transform.x - a,
+ h = h.gameObject.transform.y - b;
+ if (f * f + h * h < c * c) return !1
+ }
+ d = 0;
+ for (e = z.Worms.length + 1; d < e;)
+ for (var f = d++, f = f < z.Worms.length ? z.Worms[f] : z.Player, h = 0, g = f.posX.length; h < g;) {
+ var k = h++,
+ l = f.posX[k] - a,
+ k = f.posY[k] - b;
+ if (l * l + k * k < c * c + 1E4) return !1
+ }
+ c = this.gameObject.gameSystem.createLazyGameObjectByStringId("banana");
+ c.transform.setxydeg(a, b, 0);
+ c.init();
+ c.postInit();
+ return !0
+ },
+ fillWithRings: function() {
+ for (var a =
+ this.gameObject.gameSystem.camera.getZoomX(), b = l.WIDTH_MAX / a, a = l.HEIGHT_MAX / a, c = this.gameObject.physics.x - b / 2, d = this.gameObject.physics.y - a / 2, c = E.AdjustX(c, b), d = E.AdjustY(d, a), e = 0; this.putBananaIfYouCan(c + b * Math.random(), d + a * Math.random()), ++e, 20 > z.Bananas.length && 100 > e;);
+ },
+ eatCircle: function() {
+ this.eatenCircles++;
+ 100 > this.numSegments && this.appendSegment();
+ this.newProblem()
+ },
+ postInit: function() {
+ N.prototype.postInit.call(this);
+ z.SpawnTimer = 150;
+ this.eatenCircles = 0;
+ this.speedRings = [];
+ this.speedRingFrame = -1;
+ var a = this.gameObject.graphics.getGameSprite();
+ a.gotoAndStop(this.isPlayer ? 1 : 2);
+ this.par = f.New();
+ this.gameObject.graphics.changeSprite(this.par);
+ this.par.addChild(a);
+ a.set_x(0);
+ a.set_y(0);
+ a.addChild(this.leftEye = f.New(q.cmcWhiteEye));
+ var b = this.leftEye;
+ b.set_x(8);
+ b.set_y(-13);
+ this.leftEye.addChild(this.bLeftEye = f.New(q.cmcBlackEye));
+ b = this.bLeftEye;
+ b.set_x(6);
+ b.set_y(0);
+ a.addChild(this.rightEye = f.New(q.cmcWhiteEye));
+ a = this.rightEye;
+ a.set_x(8);
+ a.set_y(13);
+ this.rightEye.addChild(this.bRightEye = f.New(q.cmcBlackEye));
+ a = this.bRightEye;
+ a.set_x(6);
+ a.set_y(0);
+ this.diameter = 30;
+ this.segDist = 10;
+ this.numSegments = 1;
+ for (a = this.dir = 2 * Math.random() * Math.PI; 0 > a;) a += 2 * Math.PI;
+ for (; a >= 2 * Math.PI;) a -= 2 * Math.PI;
+ this.dir = a;
+ this.posX = [];
+ this.posY = [];
+ this.posX.push(this.gameObject.physics.x);
+ for (this.posY.push(this.gameObject.physics.y); 10 > this.numSegments;) this.appendSegment();
+ for (var a = 3 * -Math.cos(this.dir), b = 3 * -Math.sin(this.dir), c = 1, d = this.posX.length; c < d;) {
+ var e = c++;
+ this.posX[e] = this.posX[e - 1] + a;
+ this.posY[e] = this.posY[e - 1] + b
+ }
+ this.isPlayer ?
+ (this.gameObject.gameSystem.camera.setWatchable(this.gameObject), this.gameObject.gameSystem.setPlayer(this.gameObject), z.Player = this) : z.Worms.push(this);
+ this.drawWorm()
+ },
+ appendSegment: function() {
+ var a = f.New(q.cmcWormSegment);
+ a.gotoAndStop(this.isPlayer ? 1 : 2);
+ this.gameObject.graphics.getGameSprite().addChild(a, 0);
+ this.numSegments++;
+ this.adjustWormSegments()
+ },
+ minBananaBoundsSegmentDist: function(a, b, c, d) {
+ var e = Math.min(E.MinDistInside(a, b), E.MinDistInside(c, d));
+ if (0 >= e) return 0;
+ for (var f = 0, h = z.Bananas.length; f <
+ h;) {
+ var g = f++,
+ g = z.Bananas[g],
+ e = Math.min(e, x.PointLineDistance(a, b, c, d, g.gameObject.physics.x, g.gameObject.physics.y, !0) - Ga.Radius);
+ if (0 >= e) return 0
+ }
+ return e
+ },
+ checkPolarSegmentBananaBounds: function(a, b, c, d, e) {
+ return this.minBananaBoundsSegmentDist(a, b, a + Math.cos(d) * c, b + Math.sin(d) * c) >= e
+ },
+ hitsBananaOrBounds: function(a, b, c) {
+ if (E.MinDistInside(a, b) < c) return !0;
+ c += 25;
+ for (var d = 0, e = z.Bananas.length; d < e;) {
+ var f = d++,
+ h = z.Bananas[f],
+ f = h.gameObject.transform.x - a,
+ h = h.gameObject.transform.y - b;
+ if (f * f + h * h < c * c) return !0
+ }
+ return !1
+ },
+ update: function() {
+ N.prototype.update.call(this);
+ if (!this.gameObject.dead) {
+ this.isPlayer && 1 < this.gameObject.cnt && 0 != z.Mode && (this.adjustBananas(), this.adjustEnemies());
+ var a = E.MinDistInside(this.gameObject.physics.x, this.gameObject.physics.y),
+ a = a - this.diameter / 2;
+ if (0 > a) this.die();
+ else {
+ for (var a = 0, b = z.Worms.length + 1; a < b;) {
+ var c = a++,
+ c = c < z.Worms.length ? z.Worms[c] : z.Player;
+ if (c != this && !c.gameObject.dead)
+ for (var d = (this.diameter + c.diameter) / 2, d = d * d, e = 0, p = c.posX.length; e < p;) {
+ var m = e++,
+ g = c.posX[m] - this.gameObject.physics.x,
+ m = c.posY[m] - this.gameObject.physics.y;
+ if (g * g + m * m < d) {
+ this.die();
+ return
+ }
+ }
+ }
+ c = this.gameObject.physics.x;
+ d = this.gameObject.physics.y;
+ a = this.gameObject.gameSystem.camera.toWorldX(h.mx);
+ b = this.gameObject.gameSystem.camera.toWorldY(h.my);
+ p = a - this.gameObject.physics.x;
+ g = b - this.gameObject.physics.y;
+ e = 0;
+ if (64 < p * p + g * g) {
+ for (e = Math.atan2(g, p); 0 > e;) e += 2 * Math.PI;
+ for (; e >= 2 * Math.PI;) e -= 2 * Math.PI;
+ for (e -= this.dir; 0 <= e;) e -= 2 * Math.PI;
+ Math.abs(e) > Math.abs(e + 2 * Math.PI) && (e += 2 * Math.PI);
+ e < -this.rotSpeed ? e = -this.rotSpeed : e >
+ this.rotSpeed && (e = this.rotSpeed)
+ }
+ if (!this.isPlayer && !this.checkPolarSegmentBananaBounds(c, d, 80, this.dir + e, 30))
+ if (this.checkPolarSegmentBananaBounds(c, d, 80, this.dir, 30)) e = 0;
+ else {
+ for (var g = Math.PI / 2 / 16, k = m = 0, p = 1; 16 >= p && !this.checkPolarSegmentBananaBounds(c, d, 80, this.dir - p * g, 30);) ++p;
+ if (16 >= p)
+ for (var m = -p * g, n = -(p - 1) * g, s = 0; 14 > s;) {
+ s++;
+ var t = (m + n) / 2;
+ this.checkPolarSegmentBananaBounds(c, d, 80, this.dir + t, 30) ? m = t : n = t
+ }
+ for (n = 1; 16 >= n && !this.checkPolarSegmentBananaBounds(c, d, 80, this.dir + n * g, 30);) ++n;
+ if (16 >= n)
+ for (k =
+ n * g, g *= n - 1, s = 0; 14 > s;) s++, t = (k + g) / 2, this.checkPolarSegmentBananaBounds(c, d, 80, this.dir + t, 30) ? k = t : g = t;
+ 16 < p && 16 < n || (e = Math.abs(m) < Math.abs(k) ? -Math.min(Math.abs(m), this.rotSpeed) : Math.min(Math.abs(k), this.rotSpeed))
+ }
+ for (c = this.dir += e; 0 > c;) c += 2 * Math.PI;
+ for (; c >= 2 * Math.PI;) c -= 2 * Math.PI;
+ this.dir = c;
+ if (this.isPlayer)
+ for (c = 0; 2 > c;) d = c++, e = this.gameObject.physics.x, p = this.gameObject.physics.y, g = 8 * Math.cos(this.dir) - 13 * (0 == d ? -1 : 1) * Math.sin(this.dir), m = 8 * Math.sin(this.dir) + 13 * (0 == d ? -1 : 1) * Math.cos(this.dir), g *=
+ this.gameObject.graphics.getGameSprite().get_scaleX(), m *= this.gameObject.graphics.getGameSprite().get_scaleY(), e = Math.atan2(b - p - m, a - e - g), (0 == d ? this.leftEye : this.rightEye).set_rotation(180 * (e - this.dir) / Math.PI);
+ a = this.speed;
+ b = h.mdown && 2 < this.gameObject.cnt;
+ l.isMobile && b && (b = this.wasSpeeding ? !0 : !this.lastFrameMDown && 20 > this.gameObject.gameSystem.updateFrame - this.lastMouseDownFrame ? !0 : !1);
+ !this.lastFrameMDown && h.mdown && (this.lastMouseDownFrame = this.gameObject.gameSystem.updateFrame);
+ this.lastFrameMDown =
+ h.mdown;
+ if (this.wasSpeeding = b) {
+ if (a *= 2, this.isPlayer || (a *= 0.85), this.speedRingFrame++, 0 == this.speedRingFrame % 2)
+ for (b = 0, c = 0 == this.speedRingFrame ? Math.ceil(this.numSegments / 2) : 1; b < c;) b++, d = f.New(q.cmcSpeedRing), x.Reverse_oz_OzSprite(this.speedRings), this.speedRings.push(d), x.Reverse_oz_OzSprite(this.speedRings), this.gameObject.gameSystem.addSprite(d, this.gameObject.graphics.depth - 1)
+ } else this.speedRingFrame = -1, this.removeSpeedRings();
+ this.gameObject.physics.velX = a * Math.cos(this.dir);
+ this.gameObject.physics.velY =
+ a * Math.sin(this.dir)
+ }
+ }
+ },
+ removeSpeedRings: function() {
+ for (; 0 < this.speedRings.length;) this.speedRings[this.speedRings.length - 1].dispose(), this.speedRings.pop()
+ },
+ drawWorm: function() {
+ var a = 0,
+ b = this.par.child.prev;
+ b.set_rotation(180 * this.dir / Math.PI);
+ for (var c = 3 - this.slack, d = -1, e = this.gameObject.physics.x, f = this.gameObject.physics.y, h = 0, g = this.speedRingFrame % 2 / 1 | 0;;) {
+ b.set_scaleX(b.set_scaleY(this.diameter / 60));
+ if (0 < a) {
+ for (c += this.segDist; 3 <= c;) c -= 3, ++d;
+ var k = Math.max(0, d) | 0,
+ l = Math.min(this.posX.length -
+ 1, d + 1) | 0,
+ m = 1 - c / 3,
+ n = this.posX[k] * m + this.posX[l] * (1 - m),
+ m = this.posY[k] * m + this.posY[l] * (1 - m);
+ if (k == l)
+ if (0 == k) l = 1;
+ else if (k == this.posX.length - 1) k = this.posX.length - 2;
+ else throw new D("can't be equal over end");
+ b.set_rotation(180 * Math.atan2(this.posY[k] - this.posY[l], this.posX[k] - this.posX[l]) / Math.PI);
+ b.set_x(n - e);
+ b.set_y(m - f)
+ }
+ h < this.speedRings.length && a % 2 == g && (this.speedRings[h].set_scaleX(this.speedRings[h].set_scaleY(b.get_scaleX())), 0 == a ? (k = this.speedRings[h], k.set_x(e), k.set_y(f)) : (k = this.speedRings[h],
+ l = b.get_x() + e, n = b.get_y() + f, k.set_x(l), k.set_y(n)), (0 == this.speedRingFrame || 0 == a && 0 == this.speedRingFrame % 2) && this.speedRings[h]._updateOldValues(), ++h);
+ b = b.prev;
+ ++a;
+ if (!(a < this.numSegments)) break
+ }
+ for (; h < this.speedRings.length;) this.speedRings[this.speedRings.length - 1].dispose(), this.speedRings.pop()
+ },
+ adjustAngle: function(a) {
+ for (; 0 > a;) a += 2 * Math.PI;
+ for (; a >= 2 * Math.PI;) a -= 2 * Math.PI;
+ return a
+ },
+ adjustWormSegments: function() {
+ for (var a = Math.ceil((this.numSegments - 1) * this.segDist / 3) + 1, b = this.posX[this.posX.length -
+ 1], c = this.posY[this.posY.length - 1]; this.posX.length < a;) this.posX.push(b), this.posY.push(c)
+ },
+ postUpdate: function() {
+ if (!this.gameObject.dead) {
+ var a = this.gameObject.physics.x - this.posX[0],
+ b = this.gameObject.physics.y - this.posY[0];
+ this.slack = Math.sqrt(a * a + b * b);
+ var c = Math.floor(this.slack / 3);
+ this.slack -= 3 * c;
+ var c = Math.min(this.posX.length, c) | 0,
+ d = 0;
+ if (0 < c)
+ for (b = Math.atan2(b, a), a = 3 * Math.cos(b), b = 3 * Math.sin(b); d < c;) {
+ var e = (this.posX.length - d) % this.posX.length,
+ f = (this.posX.length - d - 1) % this.posX.length;
+ this.posX[f] =
+ this.posX[e] + a;
+ this.posY[f] = this.posY[e] + b;
+ ++d
+ }
+ x.ReverseFloats(this.posX, 0, this.posX.length - d);
+ x.ReverseFloats(this.posY, 0, this.posY.length - d);
+ x.ReverseFloats(this.posX, this.posX.length - d);
+ x.ReverseFloats(this.posY, this.posY.length - d);
+ x.ReverseFloats(this.posX);
+ x.ReverseFloats(this.posY);
+ this.drawWorm()
+ }
+ },
+ __class__: z
+ });
+ var Lb = function(a) {
+ this.p = a;
+ this.doc = new f;
+ a.stateSprite.addChild(this.doc);
+ this.cnt = 0
+ }; s["states.State"] = Lb; Lb.__name__ = ["states", "State"]; Lb.prototype = {
+ update: function() {
+ h.down[27] &&
+ !h.kproc[27] && (h.kproc[27] = !0, this.escape());
+ this.cnt++
+ },
+ preRender: function() {},
+ escape: function() {
+ return null != tb.LastDialogRater ? (tb.HideRateDialog(), !0) : null != tb.LastLivesDialog ? (tb.HideLivesDialog(), !0) : !1
+ },
+ resize: function() {},
+ __class__: Lb
+ };
+ var E = function(a, b) {
+ this.earthQuakeDuraiton = 0;
+ this.fromEditor = !1;
+ this.gameSystem = null;
+ var c = this;
+ Lb.call(this, a);
+ this.editorLvl = b;
+ var d = K.parseInt("240");
+ G.trace("TILESIZE IS BRO", {
+ fileName: "StatePlay.hx",
+ lineNumber: 181,
+ className: "states.StatePlay",
+ methodName: "new",
+ customParams: [d]
+ });
+ null == E.tileMap ? E.tileMap = new v(E.BoundsWidth / d | 0, E.BoundsHeight / d | 0, E.OffsetX, E.OffsetY, d, 1, 1, !1) : E.tileMap.reset();
+ this.collectedStars = 0;
+ this.firstMDown = !1;
+ E.instance = this;
+ this.bounds = [];
+ this.touch = l.isMobile;
+ this.weStart = !0;
+ this.curShape = this.curClick = 0;
+ this.doc.addChild(this.menuSprite = new f);
+ mb.cmcPlay(this.menuSprite);
+ f.BGInit(this.menuSprite.getChild("bg"), 0);
+ this.menuSprite.getChild("btnPause").makeButton(ea(this, this.pause));
+ this.doc.addChild(this.objectSprite = f.New());
+ this.doc.addChild(this.nextSprite = f.New());
+ this.doc.addChild(this.hoverSprite = f.New());
+ this.hoverSprite.set_alpha(0.7);
+ this.doc.addChild(this.clockSprite = f.New());
+ this.doc.addChild(this.guiSprite = f.New());
+ this.guiSprite.addChild(this.menuSprite.getChild("btnPause"));
+ this.guiSprite.addChild(this.menuSprite.getChild("score"));
+ this.guiSprite.addChild(this.menuSprite.getChild("btnCancel"));
+ this.guiSprite.addChild(this.menuSprite.getChild("minimap"));
+ this.guiSprite.addChild(this.menuSprite.getChild("sponsor"));
+ this.guiSprite.addChild(this.problemSprite = f.New());
+ this.problemSprite.addChild(this.menuSprite.getChild("problem"));
+ var d = this.problemSprite,
+ e = this.problemSprite.getChild("problem"),
+ m = e.get_x(),
+ n = e.get_y();
+ d.set_x(m);
+ d.set_y(n);
+ d.set_rotation(e.get_rotation());
+ d = this.problemSprite;
+ d.set_y(d.get_y() + 17);
+ d = this.problemSprite.getChild("problem");
+ d.set_x(0);
+ d.set_y(-17);
+ this.guiSprite.addChild(this.problemSprite2 = f.New());
+ this.problemSprite2.addChild(this.menuSprite.getChild("problem2"));
+ d = this.problemSprite2;
+ e = this.problemSprite2.getChild("problem2");
+ m = e.get_x();
+ n = e.get_y();
+ d.set_x(m);
+ d.set_y(n);
+ d.set_rotation(e.get_rotation());
+ d = this.problemSprite2;
+ d.set_y(d.get_y() + 17);
+ d = this.problemSprite2.getChild("problem2");
+ d.set_x(0);
+ d.set_y(-17);
+ t.atHooda ? this.guiSprite.getChild("sponsor").set_visible(!1) : (this.guiSprite.getChild("sponsor").makeLink(t.moreGames), d = this.problemSprite2, d.set_y(d.get_y() - 55));
+ this.doc.addChild(this.overlaySprite = f.New());
+ mb.cmcPlayOverlay(this.overlaySprite);
+ this.showMenu1(!0);
+ E.SetupAudioButtons(this.overlaySprite);
+ E.AdjustAudioButtons(this.overlaySprite);
+ this.overlaySprite.getChild("soundOn").setFluid(72);
+ this.overlaySprite.getChild("soundOff").setFluid(72);
+ this.overlaySprite.getChild("problem").setFluid(8);
+ this.overlaySprite.getChild("problem").set_visible(!1);
+ this.overlaySprite.getChild("score").set_visible(!1);
+ this.overlaySprite.getChild("madeBy").setFluid(258);
+ this.overlaySprite.getChild("sponsor").makeLink(t.moreGames);
+ 0 <= t.levelScores[0] ? t.TextMath(this.overlaySprite.getChild("best"), "BEST:" + t.levelScores[0],
+ V.CENTER) : this.overlaySprite.getChild("best").set_visible(!1);
+ this.overlaySprite.getChild("btnPlay").makeButton(function(a) {
+ c.showMenu1(!1)
+ });
+ this.overlaySprite.getChild("btnInstructions").makeButton(ea(this, this.showInstructions));
+ this.overlaySprite.getChild("btnAddition").makeButton(function(a) {
+ z.SetMode(1);
+ c.startPlay()
+ });
+ this.overlaySprite.getChild("btnSubtraction").makeButton(function(a) {
+ z.SetMode(2);
+ c.startPlay()
+ });
+ this.overlaySprite.getChild("btnMultiplication").makeButton(function(a) {
+ z.SetMode(3);
+ c.startPlay()
+ });
+ this.overlaySprite.getChild("btnDivision").makeButton(function(a) {
+ z.SetMode(4);
+ c.startPlay()
+ });
+ this.overlaySprite.getChild("btnMixed").makeButton(function(a) {
+ z.SetMode(5);
+ c.startPlay()
+ });
+ this.doc.addChild(this.instructionsSprite = f.New());
+ mb.cmcInstructions(this.instructionsSprite);
+ this.instructionsSprite.getChild("screen1").gotoAndStop(1);
+ this.instructionsSprite.getChild("text1").gotoAndStop(1);
+ this.instructionsSprite.getChild("screen2").gotoAndStop(2);
+ this.instructionsSprite.getChild("text2").gotoAndStop(2);
+ this.instructionsSprite.getChild("screen3").gotoAndStop(3);
+ d = l.isMobile ? 4 : 3;
+ this.instructionsSprite.getChild("text3").gotoAndStop(d);
+ this.instructionsSprite.set_visible(!1);
+ this.instructionsSprite.getChild("btnOK").makeButton(ea(this, this.hideInstructions));
+ this.doc.addChild(this.dialogSprite = f.New());
+ this.doc.addChild(this.failSprite = f.New());
+ this.state = E.NORMAL;
+ this.guiSprite.getChild("score").setFluid(264);
+ this.guiSprite.getChild("btnPause").setFluid(72);
+ this.problemSprite.setFluid(8);
+ this.problemSprite2.setFluid(258);
+ this.guiSprite.getChild("sponsor").setFluid(258);
+ this.guiSprite.getChild("minimap").setFluid(66);
+ this.guiSprite.getChild("minimap").addChild(this.miniPlayer = f.New(q.cmcMinimapPlayer));
+ this.doc.adjustAllLayouts();
+ this.resetGame();
+ G.trace(this.objectSprite.padFlags, {
+ fileName: "StatePlay.hx",
+ lineNumber: 423,
+ className: "states.StatePlay",
+ methodName: "new",
+ customParams: [this.doc.padFlags, this.doc.parent.padFlags, this.doc.parent.parent.padFlags, l.instance.doc.padFlags]
+ });
+ h.mdown = h.mup = !1;
+ h.reFocus(a);
+ t.hideGUI &&
+ (this.guiSprite.getChild("btnPause").set_visible(!1), d = this.guiSprite.getChild("touchDevice"), d.set_y(d.get_y() + 500));
+ this.clearDirectionInput();
+ this.resize()
+ }; s["states.StatePlay"] = E; E.__name__ = ["states", "StatePlay"]; E.AdjustX = function(a, b) {
+ a < E.OffsetX && (a = E.OffsetX);
+ a + b > E.BoundsWidth - E.OffsetX && (a = E.BoundsWidth - E.OffsetX - b);
+ return a
+ }; E.AdjustY = function(a, b) {
+ a < E.OffsetY && (a = E.OffsetY);
+ a + b > E.BoundsHeight - E.OffsetY && (a = E.BoundsHeight - E.OffsetY - b);
+ return a
+ }; E.MinDistInside = function(a, b) {
+ for (var c = 1E6,
+ d = 0, e = E.worldBoundsX.length; d < e;) var f = d++,
+ h = (f + 1) % E.worldBoundsX.length,
+ g = 240 * (E.worldBoundsX[h] - E.worldBoundsX[f]),
+ h = 240 * (E.worldBoundsY[h] - E.worldBoundsY[f]),
+ f = (g * (b - (240 * E.worldBoundsY[f] + E.OffsetY)) - (a - (240 * E.worldBoundsX[f] + E.OffsetX)) * h) / Math.sqrt(g * g + h * h),
+ c = Math.min(c, f);
+ return c
+ }; E.SetUpBG = function(a, b) {
+ null == b && (b = 1);
+ a.gotoAndStop(b)
+ }; E.UpdateBG = function(a) {}; E.HolaShare = function(a) {
+ lb.Share("Such Bunny Run", "Play this great bunny game! Tap To Jump", null)
+ }; E.SetupAudioButtons = function(a) {
+ a.getChild("soundOn").makeButton(function(b) {
+ a.getChild("soundOn").set_visible(!1);
+ a.getChild("soundOff").set_visible(!0);
+ u.ToggleMuteMusic();
+ u.ToggleMuteSound()
+ });
+ a.getChild("soundOff").makeButton(function(b) {
+ a.getChild("soundOn").set_visible(!0);
+ a.getChild("soundOff").set_visible(!1);
+ u.ToggleMuteMusic();
+ u.ToggleMuteSound()
+ })
+ }; E.AdjustAudioButtons = function(a) {
+ a.getChild("soundOn").set_visible(!u.muteSound);
+ a.getChild("soundOff").set_visible(u.muteSound)
+ }; E.__super__ = Lb; E.prototype = R(Lb.prototype, {
+ resetGame: function() {
+ null != this.gameSystem && (this.gameSystem.destroy(), n.Reset(1));
+ var a;
+ if (null != this.editorLvl) this.fromEditor = !0, a = this.editorLvl, t.currentLevel = K.parseInt(a.get("name")) - 1, G.trace(t.currentLevel, {
+ fileName: "StatePlay.hx",
+ lineNumber: 502,
+ className: "states.StatePlay",
+ methodName: "resetGame",
+ customParams: ["THIS IS LVL PARSED"]
+ });
+ else {
+ var b = t.levelsXML;
+ a = "" + (t.currentLevel + 1);
+ var c = null;
+ if (null != b)
+ for (b = b.elementsNamed("level"); b.hasNext();) {
+ var d = b.next(),
+ e = d.get("name");
+ if (null != e && e == a) {
+ c = d;
+ break
+ }
+ }
+ a = c
+ }
+ this.gameSystem = new oa(this.objectSprite, a, E.tileMap, 0);
+ this.gameSystem.addEventsListener(ea(this,
+ this.processMessage));
+ this.gameSystem.camera.makeCenterFixed();
+ ka.MAX_CAMERA_SPEED = 2E4
+ },
+ showInstructions: function(a) {
+ E.InstructionsSeen = !0;
+ this.instructionsSprite.set_visible(!0)
+ },
+ hideInstructions: function(a) {
+ this.instructionsSprite.set_visible(!1);
+ E.StartPlayAfterInstructions && (this.startPlay(), E.StartPlayAfterInstructions = !1)
+ },
+ showMenu1: function(a) {
+ this.overlaySprite.getChild("btnPlay").set_visible(a);
+ this.overlaySprite.getChild("btnInstructions").set_visible(a);
+ this.overlaySprite.getChild("score").set_visible(a);
+ this.overlaySprite.getChild("best").set_visible(a);
+ this.overlaySprite.getChild("btnAddition").set_visible(!a);
+ this.overlaySprite.getChild("btnSubtraction").set_visible(!a);
+ this.overlaySprite.getChild("btnMultiplication").set_visible(!a);
+ this.overlaySprite.getChild("btnDivision").set_visible(!a);
+ this.overlaySprite.getChild("btnMixed").set_visible(!a)
+ },
+ startPlay: function(a) {
+ var b = this;
+ this.overlaySprite.getChild("btnPlay").mouseEnabled && (0 > t.levelScores[0] && !E.InstructionsSeen ? (E.StartPlayAfterInstructions = !0, this.showInstructions()) : (t.TextMathWhite(this.guiSprite.getChild("score"), "0", V.LEFT), this.overlaySprite.getChild("problem").set_visible(!1), this.overlaySprite.getChild("btnPlay").mouseEnabled = !1, n.To(this.overlaySprite, 0.3, {
+ alpha: 0.1
+ }).ease(Ca.QuadIn).onComplete(function() {
+ b.overlaySprite.set_visible(!1)
+ })))
+ },
+ endPlay: function() {
+ var a = this;
+ this.showMenu1(!0);
+ this.overlaySprite.getChild("score").set_visible(this.overlaySprite.getChild("best").set_visible(!0));
+ var b = z.Player.eatenCircles;
+ t.TextMathWhite(this.overlaySprite.getChild("score"),
+ "SCORE:" + b, V.CENTER);
+ t.levelScores[0] < b && (t.levelScores[0] = b);
+ t.save();
+ 0 <= t.levelScores[0] && t.TextMath(this.overlaySprite.getChild("best"), "BEST:" + t.levelScores[0], V.CENTER);
+ b = z.ProblemStatement + "=" + z.ProblemSolution;
+ E.AdjustAudioButtons(this.overlaySprite);
+ this.overlaySprite.set_visible(!0);
+ this.overlaySprite.set_alpha(0);
+ this.overlaySprite.getChild("problem").set_visible(!0);
+ t.TextMath(this.overlaySprite.getChild("problem"), b, V.CENTER);
+ this.overlaySprite.getChild("btnPlay").mouseEnabled = !1;
+ n.To(this.overlaySprite,
+ 0.3, {
+ alpha: 1
+ }).ease(Ca.QuadIn).onComplete(function() {
+ a.resetGame();
+ a.overlaySprite.getChild("btnPlay").mouseEnabled = !0
+ })
+ },
+ resume: function(a) {
+ var b = this;
+ n.To(this.dialogSprite, 0.3, {
+ alpha: 0.001
+ }).onComplete(function() {
+ b.dialogSprite.clear();
+ b.paused = !1
+ })
+ },
+ update: function() {
+ Lb.prototype.update.call(this);
+ if (!this.paused && this.state != E.LOSE && this.state != E.WIN) {
+ (!this.overlaySprite.get_visible() || 1 > this.gameSystem.updateFrame) && this.gameSystem.update(1 / l.FPS);
+ E.UpdateBG(this.menuSprite.getChild("bg"));
+ var a = this.miniPlayer,
+ b = this.gameSystem.getPlayer().physics.x / 100,
+ c = this.gameSystem.getPlayer().physics.y / 100;
+ a.set_x(b);
+ a.set_y(c);
+ 0 < this.earthQuakeDuraiton && (this.earthQuakeDuraiton--, 0 == this.earthQuakeDuraiton ? (a = this.objectSprite, a.set_x(0), a.set_y(0)) : (a = this.objectSprite, b = 1 - 3 * Math.random(), c = 1 - 3 * Math.random(), a.set_x(b), a.set_y(c)))
+ }
+ },
+ clearDirectionInput: function() {
+ var a = h.down,
+ b = h.down,
+ c = h.key("A"),
+ d = h.down,
+ e = h.key("D");
+ a[37] = b[c] = h.down[39] = d[e] = !1
+ },
+ processMessage: function(a) {
+ var b = this;
+ switch (a[1]) {
+ case 0:
+ this.state != E.NORMAL || this.overlaySprite.get_visible() || (this.overlaySprite.set_visible(!0), this.overlaySprite.set_alpha(0), u.PlaySound("boom"), this.gameSystem.camera.addEarthQuake(1), this.earthQuakeDuraiton = 20, n.DelayedCall(1, function() {
+ b.endPlay()
+ }));
+ break;
+ case 2:
+ u.PlaySound("jump");
+ break;
+ case 3:
+ u.PlaySound("smash");
+ break;
+ case 4:
+ u.PlaySound("stomp");
+ break;
+ case 5:
+ this.guiSprite.getChild("touchDevice").set_visible(!0);
+ this.guiSprite.getChild("helpMessage").set_visible(!0);
+ this.guiSprite.getChild("touchDevice").gotoAndStop(1 +
+ (l.isMobile ? 1 : 0));
+ this.guiSprite.getChild("helpMessage").gotoAndStop(2 + (l.isMobile ? 2 : 0));
+ break;
+ case 7:
+ u.PlaySound("key");
+ break;
+ case 8:
+ u.PlaySound("collect");
+ t.TextMathWhite(this.guiSprite.getChild("score"), "" + z.Player.eatenCircles, V.LEFT);
+ n.To(this.guiSprite.getChild("score"), 0.15, {
+ scaleX: 1.2,
+ scaleY: 1.2
+ }).reflect(!0).ease(Ca.QuadOut);
+ break;
+ case 9:
+ u.PlaySound("opendoor");
+ break;
+ case 10:
+ u.PlaySound("spring");
+ break;
+ case 11:
+ u.PlaySound("boom");
+ break;
+ case 12:
+ u.PlaySound("pop");
+ break;
+ case 13:
+ u.PlaySound("pop")
+ }
+ },
+ pause: function(a) {
+ this.paused || this.state != E.NORMAL && this.state != E.WAITING || this.overlaySprite.get_visible() || (this.paused = !0, this.dialogSprite.clear(), mb.cmcPaused(this.dialogSprite), E.SetupAudioButtons(this.dialogSprite), E.AdjustAudioButtons(this.dialogSprite), this.dialogSprite.getChild("bg").smooth = !1, this.dialogSprite.set_alpha(0.001), n.To(this.dialogSprite, 0.3, {
+ alpha: 1
+ }), this.dialogSprite.getChild("btnPlay").makeButton(ea(this, this.resume)), u.hasSound || this.dialogSprite.getChild("btnSound").set_visible(!1))
+ },
+ escape: function() {
+ if (Lb.prototype.escape.call(this)) return !0;
+ this.pause();
+ return !0
+ },
+ resize: function() {
+ Lb.prototype.resize.call(this);
+ this.overlaySprite.getChild("sponsor").set_y(440 + (l.HEIGHT - l.HEIGHT_MIN) / 4)
+ },
+ __class__: E
+ });
+ var Ya, Ad = 0; s.Math = Math; H.__init(); String.prototype.__class__ = s.String = String; String.__name__ = ["String"]; s.Array = Array; Array.__name__ = ["Array"]; Date.prototype.__class__ = s.Date = Date; Date.__name__ = ["Date"];
+ var Cd = s.Int = {
+ __name__: ["Int"]
+ }, Bd = s.Dynamic = {
+ __name__: ["Dynamic"]
+ }, od = s.Float =
+ Number; od.__name__ = ["Float"];
+ var nd = s.Bool = Boolean; nd.__ename__ = ["Bool"];
+ var pd = s.Class = {
+ __name__: ["Class"]
+ }, qd = {}; Ba.preload(); Ra.content = [{
+ name: "levels",
+ data: "PGxldmVscz4KCTxsZXZlbCB0aXRsZT0iZmlyc3QtMzgwIiBuYW1lPSIxIj4KCQk8b2JqZWN0IHg9IjQzNzYiIHR5cGU9Il9yZWN0IiB5PSI0NjAwIiByb3Q9IjAiPgoJCQk8Z2VvbWV0cnkgeD0iMCIgdHlwZT0icmVjdCIgaGFsZldpZHRoPSI3MiIgeT0iMCIgZGVncmVlcz0iMCIgaGFsZkhlaWdodD0iNzIiLz4KCQk8L29iamVjdD4KCQk8b2JqZWN0IHg9IjE0NDAiIHR5cGU9ImdyYXNzbXVkIiB5PSIxMjAwIiByb3Q9IjAiPgoJCQk8Z2VvbWV0cnkgblZlcnRpY2VzPSI3IiB0eXBlPSJwb2x5IiB5PSIwIiB2ZXJ0aWNlcz0iMjQwMCwwLDI4ODAsMCwyODgwLDI4ODAsMCwyODgwLDAsMjQwMCwyNDAsMjQwMCwyNDAwLDI0MCIgZGVncmVlcz0iMCIgeD0iMCIvPgoJCTwvb2JqZWN0PgoJCTxvYmplY3QgeD0iLTM2MDAiIHR5cGU9ImdyYXNzbXVkIiB5PSIxMjAwIiByb3Q9IjAiPgoJCQk8Z2VvbWV0cnkgblZlcnRpY2VzPSI3IiB0eXBlPSJwb2x5IiB5PSIwIiB2ZXJ0aWNlcz0iMjg4MCwyODgwLDAsMjg4MCwwLDAsNDgwLDAsNDgwLDI0MCwyNjQwLDI0MDAsMjg4MCwyNDAwIiBkZWdyZWVzPSIwIiB4PSIwIi8+CgkJPC9vYmplY3Q+CgkJPG9iamVjdCB4PSItMzM2MCIgdHlwZT0iZ3Jhc3NtdWQiIHk9Ii0zMzYwIiByb3Q9IjAiPgoJCQk8Z2VvbWV0cnkgblZlcnRpY2VzPSI3IiB0eXBlPSJwb2x5IiB5PSIwIiB2ZXJ0aWNlcz0iMCwwLDI2NDAsMCwyNjQwLDQ4MCwyNDAwLDQ4MCw0ODAsMjQwMCw0ODAsMjY0MCwwLDI2NDAiIGRlZ3JlZXM9IjAiIHg9IjAiLz4KCQk8L29iamVjdD4KCQk8b2JqZWN0IHg9IjE0NDAiIHR5cGU9ImdyYXNzbXVkIiB5PSItMzM2MCIgcm90PSIwIj4KCQkJPGdlb21ldHJ5IG5WZXJ0aWNlcz0iNyIgdHlwZT0icG9seSIgeT0iMCIgdmVydGljZXM9IjAsNDgwLDAsMCwyNjQwLDAsMjY0MCwyNjQwLDIxNjAsMjY0MCwyMTYwLDI0MDAsMjQwLDQ4MCIgZGVncmVlcz0iMCIgeD0iMCIvPgoJCTwvb2JqZWN0PgoJCTxvYmplY3QgeD0iMzYwIiB0eXBlPSJncmFzc211ZCIgdGlsZUZyYW1lPSI4IiB5PSItMzAwMCIgcm90PSIwIj4KCQkJPGdlb21ldHJ5IHg9IjAiIHR5cGU9InJlY3QiIGhhbGZXaWR0aD0iMTMyMCIgeT0iMCIgZGVncmVlcz0iMCIgaGFsZkhlaWdodD0iMTIwIi8+CgkJPC9vYmplY3Q+CgkJPG9iamVjdCB4PSIzNjAiIHR5cGU9ImdyYXNzbXVkIiB0aWxlRnJhbWU9IjIiIHk9IjM3MjAiIHJvdD0iMCI+CgkJCTxnZW9tZXRyeSB4PSIwIiB0eXBlPSJyZWN0IiBoYWxmV2lkdGg9IjEzMjAiIHk9IjAiIGRlZ3JlZXM9IjAiIGhhbGZIZWlnaHQ9IjEyMCIvPgoJCTwvb2JqZWN0PgoJCTxvYmplY3QgeD0iMzcyMCIgdHlwZT0iZ3Jhc3NtdWQiIHRpbGVGcmFtZT0iNCIgeT0iMzYwIiByb3Q9IjAiPgoJCQk8Z2VvbWV0cnkgeD0iMCIgdHlwZT0icmVjdCIgaGFsZldpZHRoPSIxMjAiIHk9IjAiIGRlZ3JlZXM9IjAiIGhhbGZIZWlnaHQ9IjEzMjAiLz4KCQk8L29iamVjdD4KCQk8b2JqZWN0IHg9Ii0zMDAwIiB0eXBlPSJncmFzc211ZCIgdGlsZUZyYW1lPSI2IiB5PSIzNjAiIHJvdD0iMCI+CgkJCTxnZW9tZXRyeSB4PSIwIiB0eXBlPSJyZWN0IiBoYWxmV2lkdGg9IjEyMCIgeT0iMCIgZGVncmVlcz0iMCIgaGFsZkhlaWdodD0iMTMyMCIvPgoJCTwvb2JqZWN0PgoJCTxvYmplY3QgeD0iMjAzIiB0eXBlPSJ3b3JtIiB5PSIyODMiIHJvdD0iMCIvPgoJPC9sZXZlbD4KPC9sZXZlbHM+Cg"
+ },
+ {
+ name: "definitions",
+ data: "PGRlZmluaXRpb25zPgoJPG9iamVjdHM+CgkJPG9iamVjdCBlZGl0b3I9ImRvdCIgdHlwZT0id29ybSI+CgkJCTxib2R5IGZpbHRlcj0iYW5pbWFsIiB0eXBlPSJkeW5hbWljIiBjb2xUeXBlcz0iUGxheWVyLENvbGxlY3RvciIvPgoJCQk8Z3JhcGhpY3Mgc3JjPSJjbWNXb3JtU2VnbWVudCIgdHlwZT0ic3ByaXRlIiBkZXB0aD0iMyIvPgoJCQk8Z2VvbWV0cnkgaGFsZkhlaWdodD0iMTUiIHR5cGU9InJlY3QiIHk9IjMiIHg9IjAiIGhhbGZXaWR0aD0iMTUiIGRlZ3JlZXM9IjAiLz4KCQkJPGMgbj0iT3pXb3JtIi8+CgkJPC9vYmplY3Q+CgkJPG9iamVjdCBlZGl0b3I9ImRvdCIgdHlwZT0iZG9vciI+CgkJCTxib2R5IHNlbnNvcj0idHJ1ZSIgdHlwZT0iZHluYW1pYyIgbWF0ZXJpYWw9ImJ1bm55IiBjb2xUeXBlcz0iRG9vciIvPgoJCQk8Z3JhcGhpY3Mgc3JjPSJjbWNEb29yIiB0eXBlPSJzcHJpdGUiIGRlcHRoPSIxIi8+CgkJCTxnZW9tZXRyeSBoYWxmSGVpZ2h0PSIyMCIgdHlwZT0icmVjdCIgeT0iLTIwIiB4PSIwIiBoYWxmV2lkdGg9IjEyIiBkZWdyZWVzPSIwIi8+CgkJCTxjIG49Ik96RG9vciIvPgoJCTwvb2JqZWN0PgoJCTxvYmplY3QgZWRpdG9yPSJyZWN0IiB0eXBlPSJncmFzc211ZCI+CgkJCTwhLS08Ym9keSBtYXRlcmlhbD0ib3JnYW5pYyIgdHlwZT0ic3RhdGljIi8+LS0+CgkJCTxncmFwaGljcyB0eXBlPSJ0aWxlIiB0aWxlRG93bjIzPSIxNywxOCwxOSIgY29sbGlzaW9uPSJub25lIiB0aWxlVXA0NT0iMTAsMTEiIGV4cGFuZD0iMSIgdGlsZVVwMjM9IjE0LDE1LDE2IiB0aWxlRG93bjQ1PSIxMiwxMyIgc3JjPSJ0aWxlSnVuZ2xlIiBkZXB0aD0iMCIgc2NhbGU5PSIxIiB0aWxlUG9seT0idHJ1ZSIgdGlsZUV4Y2x1ZGU9IjExLDEzLDE1LDE2LDE4LDE5IiAvPgoJCTwvb2JqZWN0PgoJCTxvYmplY3QgZWRpdG9yPSJkb3QiIHR5cGU9ImJhbmFuYSI+CgkJCTxib2R5IHNlbnNvcj0idHJ1ZSIgdHlwZT0ia2luZW1hdGljIiBtYXRlcmlhbD0ib3JnYW5pYyIgY29sVHlwZXM9IkJhbmFuYSIvPgoJCQk8Z3JhcGhpY3Mgc3JjPSJ0aWxlQ29pbiIgdHlwZT0ic3ByaXRlIiBkZXB0aD0iMiIgY29sbGlzaW9uPSJub25lIi8+CgkJCTxnZW9tZXRyeSByYWRpdXM9IjI1IiB0eXBlPSJjaXJjIiB5PSIwIiB4PSIwIiBkZWdyZWVzPSIwIi8+CgkJCTxjIG49Ik96QmFuYW5hIi8+CgkJPC9vYmplY3Q+CgkJPCEtLSBKT0lOVFMgLS0+CgkJPCEtLTxvYmplY3QgdHlwZT0icGluIiBlZGl0b3I9ImRvdCI+PGdyYXBoaWNzIHR5cGU9InNwcml0ZSIgc3JjPSJjbWNEb3QiIGRlcHRoPSIyIi8+PGMgbj0iT3pSZXZvbHV0ZUpvaW50IiB0ZXN0UEY9IkJvYmJ5RmFiZXIiLz48L29iamVjdD48b2JqZWN0IHR5cGU9ImRpc3RhbmNlIiBlZGl0b3I9ImxpbmUiPjxqb2ludCB0eXBlPSJkaXN0YW5jZSIvPjxncmFwaGljcyB0eXBlPSJsaW5lIiBzcmM9ImJtcENoYWluIiBkZXB0aD0iMiIgZW5kPSJjbWNDaGFpblBpbiIvPjwvb2JqZWN0Pi0tPgoJCTxvYmplY3QgdHlwZT0icGF0aCIgZWRpdG9yPSJwYXRoIj4KCQkJPGdyYXBoaWNzIGxpbmVjb2xvcj0iMDBmZjAwIiB0eXBlPSJwYXRoIiBzcmM9ImJtcFBhdGhFZGdlIiBlbmQ9ImNtY1BhdGhOb2RlIiBkZXB0aD0iMSIvPgoJCQk8YyBuPSJPelBhdGgiLz4KCQk8L29iamVjdD4KCQk8IS0tIFNZUyBPQkpFQ1RTIC0tPgoJCTxvYmplY3QgZWRpdG9yPSJwb2x5IiB0eXBlPSJfcG9seSI+CgkJCTxncmFwaGljcyBzcmM9ImJtcFN5c0ZpbGwiIHR5cGU9ImZpbGwiIHdpZHRoPSI2NCIgbGluZWNvbG9yPSJmZmZmZmYiIGhlaWdodD0iNjQiIGRlcHRoPSIwIiBsaW5ld2lkdGg9IjIiLz4KCQk8L29iamVjdD4KCQk8b2JqZWN0IGVkaXRvcj0icmVjdCIgdHlwZT0iX3JlY3QiPgoJCQk8Z3JhcGhpY3Mgc3JjPSJibXBTeXNGaWxsIiB0eXBlPSJmaWxsIiB3aWR0aD0iNjQiIGxpbmVjb2xvcj0iZmZmZmZmIiBoZWlnaHQ9IjY0IiBkZXB0aD0iMCIgbGluZXdpZHRoPSIyIi8+CgkJPC9vYmplY3Q+CgkJPG9iamVjdCBlZGl0b3I9ImNpcmMiIHR5cGU9Il9jaXJjIj4KCQkJPGdyYXBoaWNzIHNyYz0iYm1wU3lzRmlsbCIgdHlwZT0iZmlsbCIgd2lkdGg9IjY0IiBsaW5lY29sb3I9ImZmZmZmZiIgaGVpZ2h0PSI2NCIgZGVwdGg9IjAiIGxpbmV3aWR0aD0iMiIvPgoJCTwvb2JqZWN0PgoJCTxvYmplY3QgZWRpdG9yPSJ0cmkiIHR5cGU9Il90cmkiPgoJCQk8Z3JhcGhpY3Mgc3JjPSJibXBTeXNGaWxsIiB0eXBlPSJmaWxsIiB3aWR0aD0iNjQiIGxpbmVjb2xvcj0iZmZmZmZmIiBoZWlnaHQ9IjY0IiBkZXB0aD0iMCIgbGluZXdpZHRoPSIyIi8+CgkJPC9vYmplY3Q+Cgk8L29iamVjdHM+Cgk8ZmlsdGVycz4KCQk8ZmlsdGVyIGNvbEdyb3VwPSIwMDAwMDAwMSIgY29sTWFzaz0iMGZmZmZmZmYiIG5hbWU9ImRlZmF1bHQiLz4KCQk8ZmlsdGVyIGNvbEdyb3VwPSIwMGYwMDAwMSIgY29sTWFzaz0iMGZmZmZmZmYiIG5hbWU9ImFuaW1hbCIvPgoJPC9maWx0ZXJzPgoJPG1hdGVyaWFscz4KCQk8bWF0ZXJpYWwgZHluYW1pY0ZyaWN0aW9uPSIwLjIiIHN0YXRpY0ZyaWN0aW9uPSIwLjQiIGVsYXN0aWNpdHk9IjAuMiIgbmFtZT0icm9sbHppZSIvPgoJCTxtYXRlcmlhbCBkeW5hbWljRnJpY3Rpb249IjAiIGRlbnNpdHk9IjEwMCIgZWxhc3RpY2l0eT0iNSIgbmFtZT0iaGVhdnliYWxsIi8+CgkJPG1hdGVyaWFsIHN0YXRpY0ZyaWN0aW9uPSIwIiBkZW5zaXR5PSIwLjMiIGR5bmFtaWNGcmljdGlvbj0iMC41IiBuYW1lPSJ3b29kIi8+CgkJPG1hdGVyaWFsIGR5bmFtaWNGcmljdGlvbj0iMC4xIiBzdGF0aWNGcmljdGlvbj0iMC4xIiBkZW5zaXR5PSIwLjMiIGVsYXN0aWNpdHk9IjEuMiIgbmFtZT0ianVtcHkiLz4KCQk8bWF0ZXJpYWwgc3RhdGljRnJpY3Rpb249IjAuMDEiIGRlbnNpdHk9IjAuMyIgZHluYW1pY0ZyaWN0aW9uPSIwLjAxIiBuYW1lPSJzbm93eSIvPgoJCTxtYXRlcmlhbCBzdGF0aWNGcmljdGlvbj0iMSIgZGVuc2l0eT0iNSIgZHluYW1pY0ZyaWN0aW9uPSIxIiBuYW1lPSJidWxsZXR5Ii8+CgkJPG1hdGVyaWFsIG5hbWU9Im9yZ2FuaWMiLz4KCQk8bWF0ZXJpYWwgc3RhdGljRnJpY3Rpb249IjAiIGVsYXN0aWNpdHk9IjAiIG5hbWU9ImJ1bm55Ii8+CgkJPG1hdGVyaWFsIHN0YXRpY0ZyaWN0aW9uPSIwLjIiIGRlbnNpdHk9IjUiIG5hbWU9Im1ldGFsIi8+Cgk8L21hdGVyaWFscz4KPC9kZWZpbml0aW9ucz4K"
+ }
+ ];
+ var O = {}; cb.preload();
+ var zd = zd || {}; zd.JQuery = window.jQuery;
+ var Nb = Yc.ArrayBuffer || Za; null == Nb.prototype.slice && (Nb.prototype.slice = Za.sliceImpl);
+ var ud = Yc.DataView || Oc, hb = Yc.Uint8Array || pb._new, yc = Event.prototype, Ic = fa.prototype; yc.clone = Ic.clone; yc.isDefaultPrevented = Ic.isDefaultPrevented; yc.get_target = Ic.get_target; yc.set_target = Ic.set_target; yc.get_currentTarget = Ic.get_currentTarget; yc.set_currentTarget = Ic.set_currentTarget; C.AssetNames = ["assets/GameFont.png", "assets/Objects.png"]; C.AssetBytes = [24901, 806868]; l.BOTH_ORIENTATIONS = !1; l.INTERPOLATE = !1; l.hasResized = !1; l.started = !1; l.NumChangedStates = 0; l.systemPaused = !1; l.hadSound = !0; u.needsAudio = !0; u.hasMusic = !1; u.hasSound = !1; u.loaded = !1; u.initted = !1; u.muteMusic = !1; u.muteSound = !1; u.locallyMuted = !1; bc.JioTopScore = 0; A.BMPsToRemove = []; A.ShowBlank = !1; A.NoGA = !1; A.timePassed = !0; A.filterAds = !1; A.showMobile = !0; A.showCross = !0; A.assetsLoaded = !1; A.MainStarted = !1; A.estimateLoaded = 0; za.SM = ["boom", "collect", "jump", "roll"]; za.M = []; t.currentLevel = 0; t.currentSkin =
+ 0; t.seenSkins = 1; t.MAX_LIVES = 10; t.hideGUI = !1; t.NUMLEVELS = 30; t.is4399 = !1; t.atHooda = !1; t.ext = ""; t.GooglePlayURL = "http://play.google.com/store/apps/details?id=com.ozdy.jumpyapejoe"; t.DefaultMobileURL = "http://m.ozdy.com/"; lb.AdsInitted = !1; h.KEYNUM = 256; h.ENTER = 13; h.ESCAPE = 27; h.UP = 38; h.DOWN = 40; h.LEFT = 37; h.RIGHT = 39; h.INSERT = 45; h.DELETE = 46; h.PAGE_UP = 33; h.PAGE_DOWN = 34; h.END = 35; h.HOME = 36; h.SPACE = 32; h.D0 = 48; h.D1 = 49; h.D2 = 50; h.D3 = 51; h.D4 = 52; h.D5 = 53; h.D6 = 54; h.D7 = 55; h.D8 = 56; h.D9 = 57; h.Initted = !1; h.mOffsetX = 0; h.mOffsetY =
+ 0; h.DownSound = "roll"; h.TouchIdArray = []; h.TouchIdArrayLength = 0; h._pTouch = new xa; q.Frames = [
+ [1559, 304, 4, 4, 2, 2],
+ [2004, 399, 32, 4, 16, 2],
+ [777, 860, 64, 64, 0, 0],
+ [1832, 866, 170, 64, 85, 30],
+ [1832, 933, 170, 64, 85, 30],
+ [1734, 1E3, 170, 64, 85, 30],
+ [662, 1075, 170, 64, 85, 30],
+ [1296, 1075, 170, 64, 85, 30],
+ [1469, 1075, 170, 64, 85, 30],
+ [1346, 649, 170, 64, 85, 30],
+ [1832, 732, 170, 64, 85, 30],
+ [1832, 799, 170, 64, 85, 30],
+ [489, 1090, 170, 64, 85, 30],
+ [3, 1103, 170, 64, 85, 30],
+ [176, 1103, 170, 64, 85, 30],
+ [1734, 1067, 170, 64, 85, 30],
+ [950, 1068, 170, 64, 85, 30],
+ [1123, 1068, 170,
+ 64, 85, 30
+ ],
+ [1907, 1E3, 132, 50, 66, 23],
+ [1907, 1053, 132, 50, 66, 23],
+ [349, 1103, 132, 50, 66, 23],
+ [1255, 1001, 64, 64, 32, 32],
+ [1214, 1135, 64, 64, 32, 32],
+ [662, 1142, 64, 64, 32, 32],
+ [1103, 446, 170, 64, 85, 30],
+ [1346, 515, 170, 64, 85, 30],
+ [1346, 582, 170, 64, 85, 30],
+ [729, 1142, 64, 64, 32, 32],
+ [1281, 1142, 64, 64, 32, 32],
+ [1348, 1142, 64, 64, 32, 32],
+ [1415, 1142, 64, 64, 32, 32],
+ [1482, 1142, 64, 64, 32, 32],
+ [1549, 1142, 64, 64, 32, 32],
+ [349, 1156, 64, 64, 32, 32],
+ [416, 1156, 64, 64, 32, 32],
+ [483, 1157, 64, 64, 32, 32],
+ [1082, 1001, 170, 64, 85, 30],
+ [777, 1008, 170, 64, 85, 30],
+ [489, 1023, 170,
+ 64, 85, 30
+ ],
+ [2004, 327, 32, 32, 0, 0],
+ [66, 1170, 48, 60, 24, 30],
+ [489, 860, 285, 160, 0, 0],
+ [1547, 272, 14, 14, 7, 7],
+ [3, 3, 0, 0, 0, 0],
+ [662, 1023, 48, 48, 24, 24],
+ [1616, 1196, 208, 10, 104, 4],
+ [117, 1170, 48, 60, 24, 30],
+ [1547, 304, 9, 8, 5, 4],
+ [1519, 661, 20, 17, 11, 13],
+ [1519, 681, 20, 17, 9, 13],
+ [1519, 592, 23, 21, 11, 11],
+ [3, 3, 0, 0, 0, 1],
+ [950, 1008, 120, 27, 60, 14],
+ [860, 3, 441, 440, 220, 236],
+ [1809, 3, 205, 105, 3, 3],
+ [1809, 111, 205, 105, 3, 3],
+ [1809, 219, 205, 105, 3, 3],
+ [1808, 1134, 161, 59, 75, 29],
+ [1809, 406, 152, 75, 76, 35],
+ [835, 1135, 145, 59, 72, 29],
+ [1642, 1134, 163, 59, 72, 29],
+ [950, 1038,
+ 119, 21, 60, 10
+ ],
+ [1972, 1106, 70, 70, 31, 31],
+ [1547, 315, 6, 6, 3, 3],
+ [1547, 289, 12, 12, 6, 6],
+ [1809, 327, 192, 76, 100, 36],
+ [1519, 639, 19, 19, 10, 9],
+ [1519, 616, 22, 20, 9, 12],
+ [1519, 616, 22, 20, 9, 12],
+ [1519, 616, 22, 20, 9, 12],
+ [1519, 616, 22, 20, 9, 12],
+ [2017, 299, 28, 24, 11, 15],
+ [2017, 299, 28, 24, 11, 15],
+ [2017, 299, 28, 24, 11, 15],
+ [2017, 299, 28, 24, 11, 15],
+ [1276, 473, 23, 25, 9, 15],
+ [1276, 473, 23, 25, 9, 15],
+ [1276, 473, 23, 25, 9, 15],
+ [1276, 473, 23, 25, 9, 15],
+ [1519, 515, 23, 24, 10, 15],
+ [1519, 515, 23, 24, 10, 15],
+ [1519, 515, 23, 24, 10, 15],
+ [1519, 515, 23, 24, 10, 15],
+ [1519, 567, 23, 22,
+ 10, 15
+ ],
+ [1519, 567, 23, 22, 10, 15],
+ [1519, 567, 23, 22, 10, 15],
+ [1519, 567, 23, 22, 10, 15],
+ [2005, 732, 40, 38, 17, 16],
+ [983, 1135, 80, 80, 40, 40],
+ [675, 1209, 30, 28, 43, 12],
+ [1519, 542, 24, 22, 10, 10],
+ [1964, 406, 72, 72, 36, 36],
+ [1066, 1135, 72, 72, 36, 36],
+ [1346, 975, 385, 97, 193, 60],
+ [1141, 1135, 70, 70, 35, 35],
+ [1276, 446, 24, 24, 12, 12],
+ [550, 1157, 60, 60, 30, 30],
+ [3, 1170, 60, 60, 30, 30],
+ [2017, 3, 28, 34, 0, 0],
+ [2017, 40, 28, 34, 0, 0],
+ [2017, 77, 28, 34, 0, 0],
+ [2017, 114, 28, 34, 0, 0],
+ [2017, 151, 28, 34, 0, 0],
+ [2017, 188, 28, 34, 0, 0],
+ [2017, 225, 28, 34, 0, 0],
+ [2017, 262, 28, 34, 0, 0],
+ [2004,
+ 362, 28, 34, 0, 0
+ ],
+ [2005, 773, 28, 34, 0, 0],
+ [2005, 810, 28, 34, 0, 0],
+ [2005, 847, 28, 34, 0, 0],
+ [2005, 884, 28, 34, 0, 0],
+ [2005, 921, 28, 34, 0, 0],
+ [2005, 958, 28, 34, 0, 0],
+ [713, 1023, 28, 34, 0, 0],
+ [3, 3, 0, 0, 0, 0],
+ [744, 1023, 28, 34, 0, 0],
+ [1695, 1075, 28, 34, 0, 0],
+ [796, 1142, 28, 34, 0, 0],
+ [613, 1157, 28, 34, 0, 0],
+ [168, 1170, 28, 34, 0, 0],
+ [199, 1170, 28, 34, 0, 0],
+ [230, 1170, 28, 34, 0, 0],
+ [261, 1170, 28, 34, 0, 0],
+ [292, 1170, 28, 34, 0, 0],
+ [796, 1179, 28, 34, 0, 0],
+ [1972, 1179, 28, 34, 0, 0],
+ [2003, 1179, 28, 34, 0, 0],
+ [613, 1194, 28, 34, 0, 0],
+ [1827, 1196, 28, 34, 0, 0],
+ [1858, 1196, 28, 34, 0, 0],
+ [1889,
+ 1196, 28, 34, 0, 0
+ ],
+ [1920, 1196, 28, 34, 0, 0],
+ [827, 1197, 28, 34, 0, 0],
+ [858, 1197, 28, 34, 0, 0],
+ [889, 1197, 28, 34, 0, 0],
+ [920, 1197, 28, 34, 0, 0],
+ [951, 1197, 28, 34, 0, 0],
+ [1214, 1202, 28, 34, 0, 0],
+ [1245, 1202, 28, 34, 0, 0],
+ [3, 3, 0, 0, 0, 0],
+ [168, 1207, 28, 34, 0, 0],
+ [199, 1207, 28, 34, 0, 0],
+ [230, 1207, 28, 34, 0, 0],
+ [261, 1207, 28, 34, 0, 0],
+ [292, 1207, 28, 34, 0, 0],
+ [1141, 1208, 28, 34, 0, 0],
+ [1172, 1208, 28, 34, 0, 0],
+ [644, 1209, 28, 34, 0, 0],
+ [777, 932, 302, 73, 149, 37],
+ [892, 1075, 50, 50, 0, 0],
+ [1642, 1075, 50, 50, 25, 25],
+ [1304, 3, 259, 266, 0, 6],
+ [835, 1075, 54, 54, 27, 27],
+ [1566, 3, 240, 240, 0,
+ 0
+ ],
+ [1566, 3, 240, 240, 0, 0],
+ [1566, 3, 240, 240, 0, 0],
+ [1566, 246, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [860, 446, 240, 240, 0, 0],
+ [1547, 489, 240, 240, 0, 0],
+ [1547, 489, 240, 240, 0, 0],
+ [1547, 489, 240, 240, 0, 0],
+ [1790, 489, 240, 240, 0, 0],
+ [1103, 515, 240, 240, 0, 0],
+ [860, 689, 240, 240, 0, 0],
+ [1346, 732, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1304, 272, 240, 240, 0, 0],
+ [1589, 732, 240, 240, 0, 0],
+ [1103, 758, 240, 240, 0, 0],
+ [3, 860, 240, 240, 0, 0],
+ [246, 860, 240, 240, 0, 0],
+ [3, 3, 854, 854, 67, 187]
+ ]; q.bmpLine = new M("bmpLine", [0], -1); q.bmpPathEdge = new M("bmpPathEdge", [1], -1); q.bmpSysFill = new M("bmpSysFill", [2], -1); q.cbtnAddition = new M("cbtnAddition", [3, 4, 5], -1); q.cbtnDivision = new M("cbtnDivision", [6, 7, 8], -1); q.cbtnInstructions = new M("cbtnInstructions", [9, 10, 11], -1); q.cbtnMixed = new M("cbtnMixed", [12, 13, 14], -1); q.cbtnMultiplication = new M("cbtnMultiplication", [15, 16, 17], -1); q.cbtnOK1 = new M("cbtnOK1", [18, 19, 20], -1); q.cbtnPause = new M("cbtnPause", [21, 22, 23], -1); q.cbtnPlay1 = new M("cbtnPlay1", [24, 25, 26], -1); q.cbtnResume = new M("cbtnResume", [27, 28, 29], -1); q.cbtnSoundOff = new M("cbtnSoundOff", [30, 31, 32], -1); q.cbtnSoundOn =
+ new M("cbtnSoundOn", [33, 34, 35], -1); q.cbtnSubtraction = new M("cbtnSubtraction", [36, 37, 38], -1); q.cmcBG = new M("cmcBG", [39], -1); q.cmcBGGGG = new M("cmcBGGGG", [40], -1); q.cmcBGRect = new M("cmcBGRect", [41], -1); q.cmcBlackEye = new M("cmcBlackEye", [42], -1); q.cmcCrossHair = new M("cmcCrossHair", [43], -1); q.cmcDashedCircle = new M("cmcDashedCircle", [44], -1); q.cmcDashedLine = new M("cmcDashedLine", [45], -1); q.cmcDialogBG = new M("cmcDialogBG", [46], -1); q.cmcDot = new M("cmcDot", [47, 48, 49], -1); q.cmcGuiStar = new M("cmcGuiStar", [50,
+ 51
+ ], -1); q.cmcHooda = new M("cmcHooda", [52], -1); q.cmcInstDlg = new M("cmcInstDlg", [53], -1); q.cmcInstructionScreen = new M("cmcInstructionScreen", [54, 55, 56], -1); q.cmcInstructionText = new M("cmcInstructionText", [57, 58, 59, 60], -1); q.cmcMadeBy = new M("cmcMadeBy", [61], -1); q.cmcMinimap = new M("cmcMinimap", [62], -1); q.cmcMinimapPlayer = new M("cmcMinimapPlayer", [63], -1); q.cmcPathNode = new M("cmcPathNode", [64], -1); q.cmcPausedText = new M("cmcPausedText", [65], -1); q.cmcSmallSmoke = new M("cmcSmallSmoke", [66], -1); q.cmcSmallSmokeFrames =
+ new M("cmcSmallSmokeFrames", [67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], -1); q.cmcSmoke = new M("cmcSmoke", [87], -1); q.cmcSpeedRing = new M("cmcSpeedRing", [88], -1); q.cmcStarCount = new M("cmcStarCount", [89], -1); q.cmcStarGold = new M("cmcStarGold", [90], -1); q.cmcStompy = new M("cmcStompy", [91, 92], -1); q.cmcSuperHoodaTitle = new M("cmcSuperHoodaTitle", [93], -1); q.cmcWhiteCircle = new M("cmcWhiteCircle", [94], -1); q.cmcWhiteEye = new M("cmcWhiteEye", [95], -1); q.cmcWormSegment = new M("cmcWormSegment", [96, 97], -1); q.ctxtMathFont = new M("ctxtMathFont", [98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122], -1); q.ctxtWhiteMathFont = new M("ctxtWhiteMathFont", [123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147], -1); q.sponsorGGG = new M("sponsorGGG", [148], -1); q.sysRectBlack = new M("sysRectBlack", [149], -1); q.sysWhiteRect = new M("sysWhiteRect", [150], -1); q.tileBGRect = new M("tileBGRect", [151], -1); q.tileCoin = new M("tileCoin", [152], -1); q.tileJungle = new M("tileJungle", [153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192], -1); q.tileMenuBG = new M("tileMenuBG", [193], -1); q.BitmapName = "Objects.png"; na.pool = []; Oa.count = 0; H.qTimeStamp = Date.now() + 0; S.__toStr = {}.toString; f.MinimumBMD = !1; f.DeltaT = 0; f.TilesheetAssetBMDs = []; f.EPS = 0.001; f.PathMatrix = new na; f.BGbmdMatrix = new na; f.BGbmdColorTransform = new Vb; f.BGMinY = 0.5; f.BGMaxY = 0.5; f.ShowFlushInfo = -1; f.TraceCurrentMatrix = !1; x.PLDNearest = 0; B.Element = 0; B.PCData = 1; B.CData = 2; B.Comment = 3; B.DocType = 4; B.ProcessingInstruction = 5; B.Document = 6; Ia.USE_CACHE = !1; Ia.USE_ENUM_INDEX = !1; Ia.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:"; Qa.DEFAULT_RESOLVER = new Xb; Qa.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:"; Ib.CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; Ib.BYTES = Ja.ofString(Ib.CHARS); Ua.i64tmp = new Dc(0, 0); Ab.escapes = function(a) {
+ a =
+ new X;
+ null != O.lt ? a.setReserved("lt", "<") : a.h.lt = "<";
+ null != O.gt ? a.setReserved("gt", ">") : a.h.gt = ">";
+ null != O.amp ? a.setReserved("amp", "&") : a.h.amp = "&";
+ null != O.quot ? a.setReserved("quot", '"') : a.h.quot = '"';
+ null != O.apos ? a.setReserved("apos", "'") : a.h.apos = "'";
+ return a
+ }(this); pb.BYTES_PER_ELEMENT = 1; la.cache = new Pc; la.libraries = new X; la.initialized = !1; sb.library = new X; Ca.Linear = new Qb; Ca.QuadIn = new mc; Ca.QuadOut = new Ec; v.initPoly2Tiles = !1; n.NumMSBuckets = 1E3; n.Initted = !1; yb.X = 0; yb.Y = 0; N.PACKAGE_PATH = "ozity."; Ga.Radius = 25; ka.MAX_CAMERA_SPEED = 20; ka.tempVec = []; ka.zoomedThisFrame = !1; oa.NUM_GFX_LAYERS = 7; oa.WORLD_SPEED_FACTOR = 1; ja.RECTANGLE = 1; ja.CIRCLE = 2; ja.POLYGON = 3; ja.LINE = 4; ja.DOT = 5; ja.TRIANGLE = 6; ja.PATH = 7; ja.FLAG_IS_CURVE = 1; ja.oo = 2E6; ja.CURVE_SEGMENT_LENGTH = 20; ja._d = ":"; ja.temp2 = []; ja.temp3 = []; da.tileInfos = new X; m.TILE_MASK = 15728640; m.HIT_TOP = 1; m.HIT_RIGHT = 2; m.HIT_BOTTOM = 4; m.HIT_LEFT = 8; m.HIT_SPECIALBOTTOM = 16; m.SMASHED = 256; m.DYNAMIC = 1; m.STATIC = 2; m.KINEMATIC = 3; m.LastTimeStep = 1; m.tempVec2 = []; m.nearestData = []; m.EDGE_TOLERANCE = 1; m.leftHit = !1; m.rightHit = !1; m.leftHitDiff = 0; m.rightHitDiff = 0; m.topHit = !1; m.bottomHit = !1; m.topHitDiff = 0; m.bottomHitDiff = 0; m.BoundVec4 = []; jb.TempVec = []; z.MODE_NONE = 0; z.MODE_ADDITION = 1; z.MODE_SUBTRACTION = 2; z.MODE_MULTIPLICATION = 3; z.MODE_DIVISION = 4; z.MODE_MIXED = 5; z.Mode = 0; z.ENEMY_SPAWN_TIMER = 150; z.BANANA_RADIUS = 25; z.MAX_ENEMIES = 1; z.MAX_SEGMENTS_PER_WORM = 100; z.SPEED_RING_SEGMENT_DISTANCE = 2; z.SPEED_RING_SEGMENT_SPEED = 1; z.SPR_DIAM = 60; z.DIAM_START = 30; z.SEG_DIST_START = 10; z.SEG_NUM_START =
+ 10; z.DIST_PER_CONTROL_POINT = 3; z.EYEX = 8; z.EYEY = 13; z.score = 0; z.MAX_ZOOM = 0.5; z.SCREEN_PAD = 100; z.MAX_BANANAS = 20; z.MIN_BANANA_DIST = 150; E.WinShown = 0; E.NORMAL = 0; E.WAITING = 1; E.WIN = 2; E.LOSE = 3; E.PlayedThisSession = !1; E.OffsetX = -3120; E.OffsetY = -3120; E.BoundsWidth = 6960; E.BoundsHeight = 6960; E.lastScore = -1; E.worldBoundsX = [1, 9, 20, 28, 28, 20, 9, 1]; E.worldBoundsY = [9, 1, 1, 9, 20, 28, 28, 20]; E.Rematch = !1; E.GRAVITY = 0; E.InstructionsSeen = !1; E.StartPlayAfterInstructions = !1; E.NUM_CLOUDS = 3; E.CLOUD_SPEED = 30; E.clouds = []; C.main()
+})("undefined" !=
+ typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this);
\ No newline at end of file
diff --git a/math/game.html b/math/game.html
new file mode 100644
index 00000000..2298339a
--- /dev/null
+++ b/math/game.html
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+ Slither Math
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/math/jquery.min.js b/math/jquery.min.js
new file mode 100644
index 00000000..219be1f0
--- /dev/null
+++ b/math/jquery.min.js
@@ -0,0 +1,3562 @@
+/*! jQuery v1.8.2 jquery.com | jquery.org/license */
+(function(a, b) {
+ function G(a) {
+ var b = F[a] = {};
+ return p.each(a.split(s), function(a, c) {
+ b[c] = !0
+ }), b
+ }
+
+ function J(a, c, d) {
+ if (d === b && a.nodeType === 1) {
+ var e = "data-" + c.replace(I, "-$1").toLowerCase();
+ d = a.getAttribute(e);
+ if (typeof d == "string") {
+ try {
+ d = d === "true" ? !0 : d === "false" ? !1 : d === "null" ? null : +d + "" === d ? +d : H.test(d) ? p.parseJSON(d) : d
+ } catch (f) {}
+ p.data(a, c, d)
+ } else d = b
+ }
+ return d
+ }
+
+ function K(a) {
+ var b;
+ for (b in a) {
+ if (b === "data" && p.isEmptyObject(a[b])) continue;
+ if (b !== "toJSON") return !1
+ }
+ return !0
+ }
+
+ function ba() {
+ return !1
+ }
+
+ function bb() {
+ return !0
+ }
+
+ function bh(a) {
+ return !a || !a.parentNode || a.parentNode.nodeType === 11
+ }
+
+ function bi(a, b) {
+ do a = a[b]; while (a && a.nodeType !== 1);
+ return a
+ }
+
+ function bj(a, b, c) {
+ b = b || 0;
+ if (p.isFunction(b)) return p.grep(a, function(a, d) {
+ var e = !!b.call(a, d, a);
+ return e === c
+ });
+ if (b.nodeType) return p.grep(a, function(a, d) {
+ return a === b === c
+ });
+ if (typeof b == "string") {
+ var d = p.grep(a, function(a) {
+ return a.nodeType === 1
+ });
+ if (be.test(b)) return p.filter(b, d, !c);
+ b = p.filter(b, d)
+ }
+ return p.grep(a, function(a, d) {
+ return p.inArray(a, b) >= 0 === c
+ })
+ }
+
+ function bk(a) {
+ var b = bl.split("|"),
+ c = a.createDocumentFragment();
+ if (c.createElement)
+ while (b.length) c.createElement(b.pop());
+ return c
+ }
+
+ function bC(a, b) {
+ return a.getElementsByTagName(b)[0] || a.appendChild(a.ownerDocument.createElement(b))
+ }
+
+ function bD(a, b) {
+ if (b.nodeType !== 1 || !p.hasData(a)) return;
+ var c, d, e, f = p._data(a),
+ g = p._data(b, f),
+ h = f.events;
+ if (h) {
+ delete g.handle, g.events = {};
+ for (c in h)
+ for (d = 0, e = h[c].length; d < e; d++) p.event.add(b, c, h[c][d])
+ }
+ g.data && (g.data = p.extend({}, g.data))
+ }
+
+ function bE(a, b) {
+ var c;
+ if (b.nodeType !== 1) return;
+ b.clearAttributes && b.clearAttributes(), b.mergeAttributes && b.mergeAttributes(a), c = b.nodeName.toLowerCase(), c === "object" ? (b.parentNode && (b.outerHTML = a.outerHTML), p.support.html5Clone && a.innerHTML && !p.trim(b.innerHTML) && (b.innerHTML = a.innerHTML)) : c === "input" && bv.test(a.type) ? (b.defaultChecked = b.checked = a.checked, b.value !== a.value && (b.value = a.value)) : c === "option" ? b.selected = a.defaultSelected : c === "input" || c === "textarea" ? b.defaultValue = a.defaultValue : c === "script" && b.text !== a.text && (b.text = a.text), b.removeAttribute(p.expando)
+ }
+
+ function bF(a) {
+ return typeof a.getElementsByTagName != "undefined" ? a.getElementsByTagName("*") : typeof a.querySelectorAll != "undefined" ? a.querySelectorAll("*") : []
+ }
+
+ function bG(a) {
+ bv.test(a.type) && (a.defaultChecked = a.checked)
+ }
+
+ function bY(a, b) {
+ if (b in a) return b;
+ var c = b.charAt(0).toUpperCase() + b.slice(1),
+ d = b,
+ e = bW.length;
+ while (e--) {
+ b = bW[e] + c;
+ if (b in a) return b
+ }
+ return d
+ }
+
+ function bZ(a, b) {
+ return a = b || a, p.css(a, "display") === "none" || !p.contains(a.ownerDocument, a)
+ }
+
+ function b$(a, b) {
+ var c, d, e = [],
+ f = 0,
+ g = a.length;
+ for (; f < g; f++) {
+ c = a[f];
+ if (!c.style) continue;
+ e[f] = p._data(c, "olddisplay"), b ? (!e[f] && c.style.display === "none" && (c.style.display = ""), c.style.display === "" && bZ(c) && (e[f] = p._data(c, "olddisplay", cc(c.nodeName)))) : (d = bH(c, "display"), !e[f] && d !== "none" && p._data(c, "olddisplay", d))
+ }
+ for (f = 0; f < g; f++) {
+ c = a[f];
+ if (!c.style) continue;
+ if (!b || c.style.display === "none" || c.style.display === "") c.style.display = b ? e[f] || "" : "none"
+ }
+ return a
+ }
+
+ function b_(a, b, c) {
+ var d = bP.exec(b);
+ return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || "px") : b
+ }
+
+ function ca(a, b, c, d) {
+ var e = c === (d ? "border" : "content") ? 4 : b === "width" ? 1 : 0,
+ f = 0;
+ for (; e < 4; e += 2) c === "margin" && (f += p.css(a, c + bV[e], !0)), d ? (c === "content" && (f -= parseFloat(bH(a, "padding" + bV[e])) || 0), c !== "margin" && (f -= parseFloat(bH(a, "border" + bV[e] + "Width")) || 0)) : (f += parseFloat(bH(a, "padding" + bV[e])) || 0, c !== "padding" && (f += parseFloat(bH(a, "border" + bV[e] + "Width")) || 0));
+ return f
+ }
+
+ function cb(a, b, c) {
+ var d = b === "width" ? a.offsetWidth : a.offsetHeight,
+ e = !0,
+ f = p.support.boxSizing && p.css(a, "boxSizing") === "border-box";
+ if (d <= 0 || d == null) {
+ d = bH(a, b);
+ if (d < 0 || d == null) d = a.style[b];
+ if (bQ.test(d)) return d;
+ e = f && (p.support.boxSizingReliable || d === a.style[b]), d = parseFloat(d) || 0
+ }
+ return d + ca(a, b, c || (f ? "border" : "content"), e) + "px"
+ }
+
+ function cc(a) {
+ if (bS[a]) return bS[a];
+ var b = p("<" + a + ">").appendTo(e.body),
+ c = b.css("display");
+ b.remove();
+ if (c === "none" || c === "") {
+ bI = e.body.appendChild(bI || p.extend(e.createElement("iframe"), {
+ frameBorder: 0,
+ width: 0,
+ height: 0
+ }));
+ if (!bJ || !bI.createElement) bJ = (bI.contentWindow || bI.contentDocument).document, bJ.write(""), bJ.close();
+ b = bJ.body.appendChild(bJ.createElement(a)), c = bH(b, "display"), e.body.removeChild(bI)
+ }
+ return bS[a] = c, c
+ }
+
+ function ci(a, b, c, d) {
+ var e;
+ if (p.isArray(b)) p.each(b, function(b, e) {
+ c || ce.test(a) ? d(a, e) : ci(a + "[" + (typeof e == "object" ? b : "") + "]", e, c, d)
+ });
+ else if (!c && p.type(b) === "object")
+ for (e in b) ci(a + "[" + e + "]", b[e], c, d);
+ else d(a, b)
+ }
+
+ function cz(a) {
+ return function(b, c) {
+ typeof b != "string" && (c = b, b = "*");
+ var d, e, f, g = b.toLowerCase().split(s),
+ h = 0,
+ i = g.length;
+ if (p.isFunction(c))
+ for (; h < i; h++) d = g[h], f = /^\+/.test(d), f && (d = d.substr(1) || "*"), e = a[d] = a[d] || [], e[f ? "unshift" : "push"](c)
+ }
+ }
+
+ function cA(a, c, d, e, f, g) {
+ f = f || c.dataTypes[0], g = g || {}, g[f] = !0;
+ var h, i = a[f],
+ j = 0,
+ k = i ? i.length : 0,
+ l = a === cv;
+ for (; j < k && (l || !h); j++) h = i[j](c, d, e), typeof h == "string" && (!l || g[h] ? h = b : (c.dataTypes.unshift(h), h = cA(a, c, d, e, h, g)));
+ return (l || !h) && !g["*"] && (h = cA(a, c, d, e, "*", g)), h
+ }
+
+ function cB(a, c) {
+ var d, e, f = p.ajaxSettings.flatOptions || {};
+ for (d in c) c[d] !== b && ((f[d] ? a : e || (e = {}))[d] = c[d]);
+ e && p.extend(!0, a, e)
+ }
+
+ function cC(a, c, d) {
+ var e, f, g, h, i = a.contents,
+ j = a.dataTypes,
+ k = a.responseFields;
+ for (f in k) f in d && (c[k[f]] = d[f]);
+ while (j[0] === "*") j.shift(), e === b && (e = a.mimeType || c.getResponseHeader("content-type"));
+ if (e)
+ for (f in i)
+ if (i[f] && i[f].test(e)) {
+ j.unshift(f);
+ break
+ }
+ if (j[0] in d) g = j[0];
+ else {
+ for (f in d) {
+ if (!j[0] || a.converters[f + " " + j[0]]) {
+ g = f;
+ break
+ }
+ h || (h = f)
+ }
+ g = g || h
+ }
+ if (g) return g !== j[0] && j.unshift(g), d[g]
+ }
+
+ function cD(a, b) {
+ var c, d, e, f, g = a.dataTypes.slice(),
+ h = g[0],
+ i = {},
+ j = 0;
+ a.dataFilter && (b = a.dataFilter(b, a.dataType));
+ if (g[1])
+ for (c in a.converters) i[c.toLowerCase()] = a.converters[c];
+ for (; e = g[++j];)
+ if (e !== "*") {
+ if (h !== "*" && h !== e) {
+ c = i[h + " " + e] || i["* " + e];
+ if (!c)
+ for (d in i) {
+ f = d.split(" ");
+ if (f[1] === e) {
+ c = i[h + " " + f[0]] || i["* " + f[0]];
+ if (c) {
+ c === !0 ? c = i[d] : i[d] !== !0 && (e = f[0], g.splice(j--, 0, e));
+ break
+ }
+ }
+ }
+ if (c !== !0)
+ if (c && a["throws"]) b = c(b);
+ else try {
+ b = c(b)
+ } catch (k) {
+ return {
+ state: "parsererror",
+ error: c ? k : "No conversion from " + h + " to " + e
+ }
+ }
+ }
+ h = e
+ }
+ return {
+ state: "success",
+ data: b
+ }
+ }
+
+ function cL() {
+ try {
+ return new a.XMLHttpRequest
+ } catch (b) {}
+ }
+
+ function cM() {
+ try {
+ return new a.ActiveXObject("Microsoft.XMLHTTP")
+ } catch (b) {}
+ }
+
+ function cU() {
+ return setTimeout(function() {
+ cN = b
+ }, 0), cN = p.now()
+ }
+
+ function cV(a, b) {
+ p.each(b, function(b, c) {
+ var d = (cT[b] || []).concat(cT["*"]),
+ e = 0,
+ f = d.length;
+ for (; e < f; e++)
+ if (d[e].call(a, b, c)) return
+ })
+ }
+
+ function cW(a, b, c) {
+ var d, e = 0,
+ f = 0,
+ g = cS.length,
+ h = p.Deferred().always(function() {
+ delete i.elem
+ }),
+ i = function() {
+ var b = cN || cU(),
+ c = Math.max(0, j.startTime + j.duration - b),
+ d = 1 - (c / j.duration || 0),
+ e = 0,
+ f = j.tweens.length;
+ for (; e < f; e++) j.tweens[e].run(d);
+ return h.notifyWith(a, [j, d, c]), d < 1 && f ? c : (h.resolveWith(a, [j]), !1)
+ },
+ j = h.promise({
+ elem: a,
+ props: p.extend({}, b),
+ opts: p.extend(!0, {
+ specialEasing: {}
+ }, c),
+ originalProperties: b,
+ originalOptions: c,
+ startTime: cN || cU(),
+ duration: c.duration,
+ tweens: [],
+ createTween: function(b, c, d) {
+ var e = p.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing);
+ return j.tweens.push(e), e
+ },
+ stop: function(b) {
+ var c = 0,
+ d = b ? j.tweens.length : 0;
+ for (; c < d; c++) j.tweens[c].run(1);
+ return b ? h.resolveWith(a, [j, b]) : h.rejectWith(a, [j, b]), this
+ }
+ }),
+ k = j.props;
+ cX(k, j.opts.specialEasing);
+ for (; e < g; e++) {
+ d = cS[e].call(j, a, k, j.opts);
+ if (d) return d
+ }
+ return cV(j, k), p.isFunction(j.opts.start) && j.opts.start.call(a, j), p.fx.timer(p.extend(i, {
+ anim: j,
+ queue: j.opts.queue,
+ elem: a
+ })), j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always)
+ }
+
+ function cX(a, b) {
+ var c, d, e, f, g;
+ for (c in a) {
+ d = p.camelCase(c), e = b[d], f = a[c], p.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = p.cssHooks[d];
+ if (g && "expand" in g) {
+ f = g.expand(f), delete a[d];
+ for (c in f) c in a || (a[c] = f[c], b[c] = e)
+ } else b[d] = e
+ }
+ }
+
+ function cY(a, b, c) {
+ var d, e, f, g, h, i, j, k, l = this,
+ m = a.style,
+ n = {},
+ o = [],
+ q = a.nodeType && bZ(a);
+ c.queue || (j = p._queueHooks(a, "fx"), j.unqueued == null && (j.unqueued = 0, k = j.empty.fire, j.empty.fire = function() {
+ j.unqueued || k()
+ }), j.unqueued++, l.always(function() {
+ l.always(function() {
+ j.unqueued--, p.queue(a, "fx").length || j.empty.fire()
+ })
+ })), a.nodeType === 1 && ("height" in b || "width" in b) && (c.overflow = [m.overflow, m.overflowX, m.overflowY], p.css(a, "display") === "inline" && p.css(a, "float") === "none" && (!p.support.inlineBlockNeedsLayout || cc(a.nodeName) === "inline" ? m.display = "inline-block" : m.zoom = 1)), c.overflow && (m.overflow = "hidden", p.support.shrinkWrapBlocks || l.done(function() {
+ m.overflow = c.overflow[0], m.overflowX = c.overflow[1], m.overflowY = c.overflow[2]
+ }));
+ for (d in b) {
+ f = b[d];
+ if (cP.exec(f)) {
+ delete b[d];
+ if (f === (q ? "hide" : "show")) continue;
+ o.push(d)
+ }
+ }
+ g = o.length;
+ if (g) {
+ h = p._data(a, "fxshow") || p._data(a, "fxshow", {}), q ? p(a).show() : l.done(function() {
+ p(a).hide()
+ }), l.done(function() {
+ var b;
+ p.removeData(a, "fxshow", !0);
+ for (b in n) p.style(a, b, n[b])
+ });
+ for (d = 0; d < g; d++) e = o[d], i = l.createTween(e, q ? h[e] : 0), n[e] = h[e] || p.style(a, e), e in h || (h[e] = i.start, q && (i.end = i.start, i.start = e === "width" || e === "height" ? 1 : 0))
+ }
+ }
+
+ function cZ(a, b, c, d, e) {
+ return new cZ.prototype.init(a, b, c, d, e)
+ }
+
+ function c$(a, b) {
+ var c, d = {
+ height: a
+ },
+ e = 0;
+ b = b ? 1 : 0;
+ for (; e < 4; e += 2 - b) c = bV[e], d["margin" + c] = d["padding" + c] = a;
+ return b && (d.opacity = d.width = a), d
+ }
+
+ function da(a) {
+ return p.isWindow(a) ? a : a.nodeType === 9 ? a.defaultView || a.parentWindow : !1
+ }
+ var c, d, e = a.document,
+ f = a.location,
+ g = a.navigator,
+ h = a.jQuery,
+ i = a.$,
+ j = Array.prototype.push,
+ k = Array.prototype.slice,
+ l = Array.prototype.indexOf,
+ m = Object.prototype.toString,
+ n = Object.prototype.hasOwnProperty,
+ o = String.prototype.trim,
+ p = function(a, b) {
+ return new p.fn.init(a, b, c)
+ },
+ q = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,
+ r = /\S/,
+ s = /\s+/,
+ t = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+ u = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
+ v = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
+ w = /^[\],:{}\s]*$/,
+ x = /(?:^|:|,)(?:\s*\[)+/g,
+ y = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
+ z = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,
+ A = /^-ms-/,
+ B = /-([\da-z])/gi,
+ C = function(a, b) {
+ return (b + "").toUpperCase()
+ },
+ D = function() {
+ e.addEventListener ? (e.removeEventListener("DOMContentLoaded", D, !1), p.ready()) : e.readyState === "complete" && (e.detachEvent("onreadystatechange", D), p.ready())
+ },
+ E = {};
+ p.fn = p.prototype = {
+ constructor: p,
+ init: function(a, c, d) {
+ var f, g, h, i;
+ if (!a) return this;
+ if (a.nodeType) return this.context = this[0] = a, this.length = 1, this;
+ if (typeof a == "string") {
+ a.charAt(0) === "<" && a.charAt(a.length - 1) === ">" && a.length >= 3 ? f = [null, a, null] : f = u.exec(a);
+ if (f && (f[1] || !c)) {
+ if (f[1]) return c = c instanceof p ? c[0] : c, i = c && c.nodeType ? c.ownerDocument || c : e, a = p.parseHTML(f[1], i, !0), v.test(f[1]) && p.isPlainObject(c) && this.attr.call(a, c, !0), p.merge(this, a);
+ g = e.getElementById(f[2]);
+ if (g && g.parentNode) {
+ if (g.id !== f[2]) return d.find(a);
+ this.length = 1, this[0] = g
+ }
+ return this.context = e, this.selector = a, this
+ }
+ return !c || c.jquery ? (c || d).find(a) : this.constructor(c).find(a)
+ }
+ return p.isFunction(a) ? d.ready(a) : (a.selector !== b && (this.selector = a.selector, this.context = a.context), p.makeArray(a, this))
+ },
+ selector: "",
+ jquery: "1.8.2",
+ length: 0,
+ size: function() {
+ return this.length
+ },
+ toArray: function() {
+ return k.call(this)
+ },
+ get: function(a) {
+ return a == null ? this.toArray() : a < 0 ? this[this.length + a] : this[a]
+ },
+ pushStack: function(a, b, c) {
+ var d = p.merge(this.constructor(), a);
+ return d.prevObject = this, d.context = this.context, b === "find" ? d.selector = this.selector + (this.selector ? " " : "") + c : b && (d.selector = this.selector + "." + b + "(" + c + ")"), d
+ },
+ each: function(a, b) {
+ return p.each(this, a, b)
+ },
+ ready: function(a) {
+ return p.ready.promise().done(a), this
+ },
+ eq: function(a) {
+ return a = +a, a === -1 ? this.slice(a) : this.slice(a, a + 1)
+ },
+ first: function() {
+ return this.eq(0)
+ },
+ last: function() {
+ return this.eq(-1)
+ },
+ slice: function() {
+ return this.pushStack(k.apply(this, arguments), "slice", k.call(arguments).join(","))
+ },
+ map: function(a) {
+ return this.pushStack(p.map(this, function(b, c) {
+ return a.call(b, c, b)
+ }))
+ },
+ end: function() {
+ return this.prevObject || this.constructor(null)
+ },
+ push: j,
+ sort: [].sort,
+ splice: [].splice
+ }, p.fn.init.prototype = p.fn, p.extend = p.fn.extend = function() {
+ var a, c, d, e, f, g, h = arguments[0] || {},
+ i = 1,
+ j = arguments.length,
+ k = !1;
+ typeof h == "boolean" && (k = h, h = arguments[1] || {}, i = 2), typeof h != "object" && !p.isFunction(h) && (h = {}), j === i && (h = this, --i);
+ for (; i < j; i++)
+ if ((a = arguments[i]) != null)
+ for (c in a) {
+ d = h[c], e = a[c];
+ if (h === e) continue;
+ k && e && (p.isPlainObject(e) || (f = p.isArray(e))) ? (f ? (f = !1, g = d && p.isArray(d) ? d : []) : g = d && p.isPlainObject(d) ? d : {}, h[c] = p.extend(k, g, e)) : e !== b && (h[c] = e)
+ }
+ return h
+ }, p.extend({
+ noConflict: function(b) {
+ return a.$ === p && (a.$ = i), b && a.jQuery === p && (a.jQuery = h), p
+ },
+ isReady: !1,
+ readyWait: 1,
+ holdReady: function(a) {
+ a ? p.readyWait++ : p.ready(!0)
+ },
+ ready: function(a) {
+ if (a === !0 ? --p.readyWait : p.isReady) return;
+ if (!e.body) return setTimeout(p.ready, 1);
+ p.isReady = !0;
+ if (a !== !0 && --p.readyWait > 0) return;
+ d.resolveWith(e, [p]), p.fn.trigger && p(e).trigger("ready").off("ready")
+ },
+ isFunction: function(a) {
+ return p.type(a) === "function"
+ },
+ isArray: Array.isArray || function(a) {
+ return p.type(a) === "array"
+ },
+ isWindow: function(a) {
+ return a != null && a == a.window
+ },
+ isNumeric: function(a) {
+ return !isNaN(parseFloat(a)) && isFinite(a)
+ },
+ type: function(a) {
+ return a == null ? String(a) : E[m.call(a)] || "object"
+ },
+ isPlainObject: function(a) {
+ if (!a || p.type(a) !== "object" || a.nodeType || p.isWindow(a)) return !1;
+ try {
+ if (a.constructor && !n.call(a, "constructor") && !n.call(a.constructor.prototype, "isPrototypeOf")) return !1
+ } catch (c) {
+ return !1
+ }
+ var d;
+ for (d in a);
+ return d === b || n.call(a, d)
+ },
+ isEmptyObject: function(a) {
+ var b;
+ for (b in a) return !1;
+ return !0
+ },
+ error: function(a) {
+ throw new Error(a)
+ },
+ parseHTML: function(a, b, c) {
+ var d;
+ return !a || typeof a != "string" ? null : (typeof b == "boolean" && (c = b, b = 0), b = b || e, (d = v.exec(a)) ? [b.createElement(d[1])] : (d = p.buildFragment([a], b, c ? null : []), p.merge([], (d.cacheable ? p.clone(d.fragment) : d.fragment).childNodes)))
+ },
+ parseJSON: function(b) {
+ if (!b || typeof b != "string") return null;
+ b = p.trim(b);
+ if (a.JSON && a.JSON.parse) return a.JSON.parse(b);
+ if (w.test(b.replace(y, "@").replace(z, "]").replace(x, ""))) return (new Function("return " + b))();
+ p.error("Invalid JSON: " + b)
+ },
+ parseXML: function(c) {
+ var d, e;
+ if (!c || typeof c != "string") return null;
+ try {
+ a.DOMParser ? (e = new DOMParser, d = e.parseFromString(c, "text/xml")) : (d = new ActiveXObject("Microsoft.XMLDOM"), d.async = "false", d.loadXML(c))
+ } catch (f) {
+ d = b
+ }
+ return (!d || !d.documentElement || d.getElementsByTagName("parsererror").length) && p.error("Invalid XML: " + c), d
+ },
+ noop: function() {},
+ globalEval: function(b) {
+ b && r.test(b) && (a.execScript || function(b) {
+ a.eval.call(a, b)
+ })(b)
+ },
+ camelCase: function(a) {
+ return a.replace(A, "ms-").replace(B, C)
+ },
+ nodeName: function(a, b) {
+ return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase()
+ },
+ each: function(a, c, d) {
+ var e, f = 0,
+ g = a.length,
+ h = g === b || p.isFunction(a);
+ if (d) {
+ if (h) {
+ for (e in a)
+ if (c.apply(a[e], d) === !1) break
+ } else
+ for (; f < g;)
+ if (c.apply(a[f++], d) === !1) break
+ } else if (h) {
+ for (e in a)
+ if (c.call(a[e], e, a[e]) === !1) break
+ } else
+ for (; f < g;)
+ if (c.call(a[f], f, a[f++]) === !1) break;
+ return a
+ },
+ trim: o && !o.call(" ") ? function(a) {
+ return a == null ? "" : o.call(a)
+ } : function(a) {
+ return a == null ? "" : (a + "").replace(t, "")
+ },
+ makeArray: function(a, b) {
+ var c, d = b || [];
+ return a != null && (c = p.type(a), a.length == null || c === "string" || c === "function" || c === "regexp" || p.isWindow(a) ? j.call(d, a) : p.merge(d, a)), d
+ },
+ inArray: function(a, b, c) {
+ var d;
+ if (b) {
+ if (l) return l.call(b, a, c);
+ d = b.length, c = c ? c < 0 ? Math.max(0, d + c) : c : 0;
+ for (; c < d; c++)
+ if (c in b && b[c] === a) return c
+ }
+ return -1
+ },
+ merge: function(a, c) {
+ var d = c.length,
+ e = a.length,
+ f = 0;
+ if (typeof d == "number")
+ for (; f < d; f++) a[e++] = c[f];
+ else
+ while (c[f] !== b) a[e++] = c[f++];
+ return a.length = e, a
+ },
+ grep: function(a, b, c) {
+ var d, e = [],
+ f = 0,
+ g = a.length;
+ c = !!c;
+ for (; f < g; f++) d = !!b(a[f], f), c !== d && e.push(a[f]);
+ return e
+ },
+ map: function(a, c, d) {
+ var e, f, g = [],
+ h = 0,
+ i = a.length,
+ j = a instanceof p || i !== b && typeof i == "number" && (i > 0 && a[0] && a[i - 1] || i === 0 || p.isArray(a));
+ if (j)
+ for (; h < i; h++) e = c(a[h], h, d), e != null && (g[g.length] = e);
+ else
+ for (f in a) e = c(a[f], f, d), e != null && (g[g.length] = e);
+ return g.concat.apply([], g)
+ },
+ guid: 1,
+ proxy: function(a, c) {
+ var d, e, f;
+ return typeof c == "string" && (d = a[c], c = a, a = d), p.isFunction(a) ? (e = k.call(arguments, 2), f = function() {
+ return a.apply(c, e.concat(k.call(arguments)))
+ }, f.guid = a.guid = a.guid || p.guid++, f) : b
+ },
+ access: function(a, c, d, e, f, g, h) {
+ var i, j = d == null,
+ k = 0,
+ l = a.length;
+ if (d && typeof d == "object") {
+ for (k in d) p.access(a, c, k, d[k], 1, g, e);
+ f = 1
+ } else if (e !== b) {
+ i = h === b && p.isFunction(e), j && (i ? (i = c, c = function(a, b, c) {
+ return i.call(p(a), c)
+ }) : (c.call(a, e), c = null));
+ if (c)
+ for (; k < l; k++) c(a[k], d, i ? e.call(a[k], k, c(a[k], d)) : e, h);
+ f = 1
+ }
+ return f ? a : j ? c.call(a) : l ? c(a[0], d) : g
+ },
+ now: function() {
+ return (new Date).getTime()
+ }
+ }), p.ready.promise = function(b) {
+ if (!d) {
+ d = p.Deferred();
+ if (e.readyState === "complete") setTimeout(p.ready, 1);
+ else if (e.addEventListener) e.addEventListener("DOMContentLoaded", D, !1), a.addEventListener("load", p.ready, !1);
+ else {
+ e.attachEvent("onreadystatechange", D), a.attachEvent("onload", p.ready);
+ var c = !1;
+ try {
+ c = a.frameElement == null && e.documentElement
+ } catch (f) {}
+ c && c.doScroll && function g() {
+ if (!p.isReady) {
+ try {
+ c.doScroll("left")
+ } catch (a) {
+ return setTimeout(g, 50)
+ }
+ p.ready()
+ }
+ }()
+ }
+ }
+ return d.promise(b)
+ }, p.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(a, b) {
+ E["[object " + b + "]"] = b.toLowerCase()
+ }), c = p(e);
+ var F = {};
+ p.Callbacks = function(a) {
+ a = typeof a == "string" ? F[a] || G(a) : p.extend({}, a);
+ var c, d, e, f, g, h, i = [],
+ j = !a.once && [],
+ k = function(b) {
+ c = a.memory && b, d = !0, h = f || 0, f = 0, g = i.length, e = !0;
+ for (; i && h < g; h++)
+ if (i[h].apply(b[0], b[1]) === !1 && a.stopOnFalse) {
+ c = !1;
+ break
+ }
+ e = !1, i && (j ? j.length && k(j.shift()) : c ? i = [] : l.disable())
+ },
+ l = {
+ add: function() {
+ if (i) {
+ var b = i.length;
+ (function d(b) {
+ p.each(b, function(b, c) {
+ var e = p.type(c);
+ e === "function" && (!a.unique || !l.has(c)) ? i.push(c) : c && c.length && e !== "string" && d(c)
+ })
+ })(arguments), e ? g = i.length : c && (f = b, k(c))
+ }
+ return this
+ },
+ remove: function() {
+ return i && p.each(arguments, function(a, b) {
+ var c;
+ while ((c = p.inArray(b, i, c)) > -1) i.splice(c, 1), e && (c <= g && g--, c <= h && h--)
+ }), this
+ },
+ has: function(a) {
+ return p.inArray(a, i) > -1
+ },
+ empty: function() {
+ return i = [], this
+ },
+ disable: function() {
+ return i = j = c = b, this
+ },
+ disabled: function() {
+ return !i
+ },
+ lock: function() {
+ return j = b, c || l.disable(), this
+ },
+ locked: function() {
+ return !j
+ },
+ fireWith: function(a, b) {
+ return b = b || [], b = [a, b.slice ? b.slice() : b], i && (!d || j) && (e ? j.push(b) : k(b)), this
+ },
+ fire: function() {
+ return l.fireWith(this, arguments), this
+ },
+ fired: function() {
+ return !!d
+ }
+ };
+ return l
+ }, p.extend({
+ Deferred: function(a) {
+ var b = [
+ ["resolve", "done", p.Callbacks("once memory"), "resolved"],
+ ["reject", "fail", p.Callbacks("once memory"), "rejected"],
+ ["notify", "progress", p.Callbacks("memory")]
+ ],
+ c = "pending",
+ d = {
+ state: function() {
+ return c
+ },
+ always: function() {
+ return e.done(arguments).fail(arguments), this
+ },
+ then: function() {
+ var a = arguments;
+ return p.Deferred(function(c) {
+ p.each(b, function(b, d) {
+ var f = d[0],
+ g = a[b];
+ e[d[1]](p.isFunction(g) ? function() {
+ var a = g.apply(this, arguments);
+ a && p.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[f + "With"](this === e ? c : this, [a])
+ } : c[f])
+ }), a = null
+ }).promise()
+ },
+ promise: function(a) {
+ return a != null ? p.extend(a, d) : d
+ }
+ },
+ e = {};
+ return d.pipe = d.then, p.each(b, function(a, f) {
+ var g = f[2],
+ h = f[3];
+ d[f[1]] = g.add, h && g.add(function() {
+ c = h
+ }, b[a ^ 1][2].disable, b[2][2].lock), e[f[0]] = g.fire, e[f[0] + "With"] = g.fireWith
+ }), d.promise(e), a && a.call(e, e), e
+ },
+ when: function(a) {
+ var b = 0,
+ c = k.call(arguments),
+ d = c.length,
+ e = d !== 1 || a && p.isFunction(a.promise) ? d : 0,
+ f = e === 1 ? a : p.Deferred(),
+ g = function(a, b, c) {
+ return function(d) {
+ b[a] = this, c[a] = arguments.length > 1 ? k.call(arguments) : d, c === h ? f.notifyWith(b, c) : --e || f.resolveWith(b, c)
+ }
+ },
+ h, i, j;
+ if (d > 1) {
+ h = new Array(d), i = new Array(d), j = new Array(d);
+ for (; b < d; b++) c[b] && p.isFunction(c[b].promise) ? c[b].promise().done(g(b, j, c)).fail(f.reject).progress(g(b, i, h)) : --e
+ }
+ return e || f.resolveWith(j, c), f.promise()
+ }
+ }), p.support = function() {
+ var b, c, d, f, g, h, i, j, k, l, m, n = e.createElement("div");
+ n.setAttribute("className", "t"), n.innerHTML = " a", c = n.getElementsByTagName("*"), d = n.getElementsByTagName("a")[0], d.style.cssText = "top:1px;float:left;opacity:.5";
+ if (!c || !c.length) return {};
+ f = e.createElement("select"), g = f.appendChild(e.createElement("option")), h = n.getElementsByTagName("input")[0], b = {
+ leadingWhitespace: n.firstChild.nodeType === 3,
+ tbody: !n.getElementsByTagName("tbody").length,
+ htmlSerialize: !!n.getElementsByTagName("link").length,
+ style: /top/.test(d.getAttribute("style")),
+ hrefNormalized: d.getAttribute("href") === "/a",
+ opacity: /^0.5/.test(d.style.opacity),
+ cssFloat: !!d.style.cssFloat,
+ checkOn: h.value === "on",
+ optSelected: g.selected,
+ getSetAttribute: n.className !== "t",
+ enctype: !!e.createElement("form").enctype,
+ html5Clone: e.createElement("nav").cloneNode(!0).outerHTML !== "<:nav>",
+ boxModel: e.compatMode === "CSS1Compat",
+ submitBubbles: !0,
+ changeBubbles: !0,
+ focusinBubbles: !1,
+ deleteExpando: !0,
+ noCloneEvent: !0,
+ inlineBlockNeedsLayout: !1,
+ shrinkWrapBlocks: !1,
+ reliableMarginRight: !0,
+ boxSizingReliable: !0,
+ pixelPosition: !1
+ }, h.checked = !0, b.noCloneChecked = h.cloneNode(!0).checked, f.disabled = !0, b.optDisabled = !g.disabled;
+ try {
+ delete n.test
+ } catch (o) {
+ b.deleteExpando = !1
+ }!n.addEventListener && n.attachEvent && n.fireEvent && (n.attachEvent("onclick", m = function() {
+ b.noCloneEvent = !1
+ }), n.cloneNode(!0).fireEvent("onclick"), n.detachEvent("onclick", m)), h = e.createElement("input"), h.value = "t", h.setAttribute("type", "radio"), b.radioValue = h.value === "t", h.setAttribute("checked", "checked"), h.setAttribute("name", "t"), n.appendChild(h), i = e.createDocumentFragment(), i.appendChild(n.lastChild), b.checkClone = i.cloneNode(!0).cloneNode(!0).lastChild.checked, b.appendChecked = h.checked, i.removeChild(h), i.appendChild(n);
+ if (n.attachEvent)
+ for (k in {
+ submit: !0,
+ change: !0,
+ focusin: !0
+ }) j = "on" + k, l = j in n, l || (n.setAttribute(j, "return;"), l = typeof n[j] == "function"), b[k + "Bubbles"] = l;
+ return p(function() {
+ var c, d, f, g, h = "padding:0;margin:0;border:0;display:block;overflow:hidden;",
+ i = e.getElementsByTagName("body")[0];
+ if (!i) return;
+ c = e.createElement("div"), c.style.cssText = "visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px", i.insertBefore(c, i.firstChild), d = e.createElement("div"), c.appendChild(d), d.innerHTML = "", f = d.getElementsByTagName("td"), f[0].style.cssText = "padding:0;margin:0;border:0;display:none", l = f[0].offsetHeight === 0, f[0].style.display = "", f[1].style.display = "none", b.reliableHiddenOffsets = l && f[0].offsetHeight === 0, d.innerHTML = "", d.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;", b.boxSizing = d.offsetWidth === 4, b.doesNotIncludeMarginInBodyOffset = i.offsetTop !== 1, a.getComputedStyle && (b.pixelPosition = (a.getComputedStyle(d, null) || {}).top !== "1%", b.boxSizingReliable = (a.getComputedStyle(d, null) || {
+ width: "4px"
+ }).width === "4px", g = e.createElement("div"), g.style.cssText = d.style.cssText = h, g.style.marginRight = g.style.width = "0", d.style.width = "1px", d.appendChild(g), b.reliableMarginRight = !parseFloat((a.getComputedStyle(g, null) || {}).marginRight)), typeof d.style.zoom != "undefined" && (d.innerHTML = "", d.style.cssText = h + "width:1px;padding:1px;display:inline;zoom:1", b.inlineBlockNeedsLayout = d.offsetWidth === 3, d.style.display = "block", d.style.overflow = "visible", d.innerHTML = "", d.firstChild.style.width = "5px", b.shrinkWrapBlocks = d.offsetWidth !== 3, c.style.zoom = 1), i.removeChild(c), c = d = f = g = null
+ }), i.removeChild(n), c = d = f = g = h = i = n = null, b
+ }();
+ var H = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
+ I = /([A-Z])/g;
+ p.extend({
+ cache: {},
+ deletedIds: [],
+ uuid: 0,
+ expando: "jQuery" + (p.fn.jquery + Math.random()).replace(/\D/g, ""),
+ noData: {
+ embed: !0,
+ object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
+ applet: !0
+ },
+ hasData: function(a) {
+ return a = a.nodeType ? p.cache[a[p.expando]] : a[p.expando], !!a && !K(a)
+ },
+ data: function(a, c, d, e) {
+ if (!p.acceptData(a)) return;
+ var f, g, h = p.expando,
+ i = typeof c == "string",
+ j = a.nodeType,
+ k = j ? p.cache : a,
+ l = j ? a[h] : a[h] && h;
+ if ((!l || !k[l] || !e && !k[l].data) && i && d === b) return;
+ l || (j ? a[h] = l = p.deletedIds.pop() || p.guid++ : l = h), k[l] || (k[l] = {}, j || (k[l].toJSON = p.noop));
+ if (typeof c == "object" || typeof c == "function") e ? k[l] = p.extend(k[l], c) : k[l].data = p.extend(k[l].data, c);
+ return f = k[l], e || (f.data || (f.data = {}), f = f.data), d !== b && (f[p.camelCase(c)] = d), i ? (g = f[c], g == null && (g = f[p.camelCase(c)])) : g = f, g
+ },
+ removeData: function(a, b, c) {
+ if (!p.acceptData(a)) return;
+ var d, e, f, g = a.nodeType,
+ h = g ? p.cache : a,
+ i = g ? a[p.expando] : p.expando;
+ if (!h[i]) return;
+ if (b) {
+ d = c ? h[i] : h[i].data;
+ if (d) {
+ p.isArray(b) || (b in d ? b = [b] : (b = p.camelCase(b), b in d ? b = [b] : b = b.split(" ")));
+ for (e = 0, f = b.length; e < f; e++) delete d[b[e]];
+ if (!(c ? K : p.isEmptyObject)(d)) return
+ }
+ }
+ if (!c) {
+ delete h[i].data;
+ if (!K(h[i])) return
+ }
+ g ? p.cleanData([a], !0) : p.support.deleteExpando || h != h.window ? delete h[i] : h[i] = null
+ },
+ _data: function(a, b, c) {
+ return p.data(a, b, c, !0)
+ },
+ acceptData: function(a) {
+ var b = a.nodeName && p.noData[a.nodeName.toLowerCase()];
+ return !b || b !== !0 && a.getAttribute("classid") === b
+ }
+ }), p.fn.extend({
+ data: function(a, c) {
+ var d, e, f, g, h, i = this[0],
+ j = 0,
+ k = null;
+ if (a === b) {
+ if (this.length) {
+ k = p.data(i);
+ if (i.nodeType === 1 && !p._data(i, "parsedAttrs")) {
+ f = i.attributes;
+ for (h = f.length; j < h; j++) g = f[j].name, g.indexOf("data-") || (g = p.camelCase(g.substring(5)), J(i, g, k[g]));
+ p._data(i, "parsedAttrs", !0)
+ }
+ }
+ return k
+ }
+ return typeof a == "object" ? this.each(function() {
+ p.data(this, a)
+ }) : (d = a.split(".", 2), d[1] = d[1] ? "." + d[1] : "", e = d[1] + "!", p.access(this, function(c) {
+ if (c === b) return k = this.triggerHandler("getData" + e, [d[0]]), k === b && i && (k = p.data(i, a), k = J(i, a, k)), k === b && d[1] ? this.data(d[0]) : k;
+ d[1] = c, this.each(function() {
+ var b = p(this);
+ b.triggerHandler("setData" + e, d), p.data(this, a, c), b.triggerHandler("changeData" + e, d)
+ })
+ }, null, c, arguments.length > 1, null, !1))
+ },
+ removeData: function(a) {
+ return this.each(function() {
+ p.removeData(this, a)
+ })
+ }
+ }), p.extend({
+ queue: function(a, b, c) {
+ var d;
+ if (a) return b = (b || "fx") + "queue", d = p._data(a, b), c && (!d || p.isArray(c) ? d = p._data(a, b, p.makeArray(c)) : d.push(c)), d || []
+ },
+ dequeue: function(a, b) {
+ b = b || "fx";
+ var c = p.queue(a, b),
+ d = c.length,
+ e = c.shift(),
+ f = p._queueHooks(a, b),
+ g = function() {
+ p.dequeue(a, b)
+ };
+ e === "inprogress" && (e = c.shift(), d--), e && (b === "fx" && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire()
+ },
+ _queueHooks: function(a, b) {
+ var c = b + "queueHooks";
+ return p._data(a, c) || p._data(a, c, {
+ empty: p.Callbacks("once memory").add(function() {
+ p.removeData(a, b + "queue", !0), p.removeData(a, c, !0)
+ })
+ })
+ }
+ }), p.fn.extend({
+ queue: function(a, c) {
+ var d = 2;
+ return typeof a != "string" && (c = a, a = "fx", d--), arguments.length < d ? p.queue(this[0], a) : c === b ? this : this.each(function() {
+ var b = p.queue(this, a, c);
+ p._queueHooks(this, a), a === "fx" && b[0] !== "inprogress" && p.dequeue(this, a)
+ })
+ },
+ dequeue: function(a) {
+ return this.each(function() {
+ p.dequeue(this, a)
+ })
+ },
+ delay: function(a, b) {
+ return a = p.fx ? p.fx.speeds[a] || a : a, b = b || "fx", this.queue(b, function(b, c) {
+ var d = setTimeout(b, a);
+ c.stop = function() {
+ clearTimeout(d)
+ }
+ })
+ },
+ clearQueue: function(a) {
+ return this.queue(a || "fx", [])
+ },
+ promise: function(a, c) {
+ var d, e = 1,
+ f = p.Deferred(),
+ g = this,
+ h = this.length,
+ i = function() {
+ --e || f.resolveWith(g, [g])
+ };
+ typeof a != "string" && (c = a, a = b), a = a || "fx";
+ while (h--) d = p._data(g[h], a + "queueHooks"), d && d.empty && (e++, d.empty.add(i));
+ return i(), f.promise(c)
+ }
+ });
+ var L, M, N, O = /[\t\r\n]/g,
+ P = /\r/g,
+ Q = /^(?:button|input)$/i,
+ R = /^(?:button|input|object|select|textarea)$/i,
+ S = /^a(?:rea|)$/i,
+ T = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
+ U = p.support.getSetAttribute;
+ p.fn.extend({
+ attr: function(a, b) {
+ return p.access(this, p.attr, a, b, arguments.length > 1)
+ },
+ removeAttr: function(a) {
+ return this.each(function() {
+ p.removeAttr(this, a)
+ })
+ },
+ prop: function(a, b) {
+ return p.access(this, p.prop, a, b, arguments.length > 1)
+ },
+ removeProp: function(a) {
+ return a = p.propFix[a] || a, this.each(function() {
+ try {
+ this[a] = b, delete this[a]
+ } catch (c) {}
+ })
+ },
+ addClass: function(a) {
+ var b, c, d, e, f, g, h;
+ if (p.isFunction(a)) return this.each(function(b) {
+ p(this).addClass(a.call(this, b, this.className))
+ });
+ if (a && typeof a == "string") {
+ b = a.split(s);
+ for (c = 0, d = this.length; c < d; c++) {
+ e = this[c];
+ if (e.nodeType === 1)
+ if (!e.className && b.length === 1) e.className = a;
+ else {
+ f = " " + e.className + " ";
+ for (g = 0, h = b.length; g < h; g++) f.indexOf(" " + b[g] + " ") < 0 && (f += b[g] + " ");
+ e.className = p.trim(f)
+ }
+ }
+ }
+ return this
+ },
+ removeClass: function(a) {
+ var c, d, e, f, g, h, i;
+ if (p.isFunction(a)) return this.each(function(b) {
+ p(this).removeClass(a.call(this, b, this.className))
+ });
+ if (a && typeof a == "string" || a === b) {
+ c = (a || "").split(s);
+ for (h = 0, i = this.length; h < i; h++) {
+ e = this[h];
+ if (e.nodeType === 1 && e.className) {
+ d = (" " + e.className + " ").replace(O, " ");
+ for (f = 0, g = c.length; f < g; f++)
+ while (d.indexOf(" " + c[f] + " ") >= 0) d = d.replace(" " + c[f] + " ", " ");
+ e.className = a ? p.trim(d) : ""
+ }
+ }
+ }
+ return this
+ },
+ toggleClass: function(a, b) {
+ var c = typeof a,
+ d = typeof b == "boolean";
+ return p.isFunction(a) ? this.each(function(c) {
+ p(this).toggleClass(a.call(this, c, this.className, b), b)
+ }) : this.each(function() {
+ if (c === "string") {
+ var e, f = 0,
+ g = p(this),
+ h = b,
+ i = a.split(s);
+ while (e = i[f++]) h = d ? h : !g.hasClass(e), g[h ? "addClass" : "removeClass"](e)
+ } else if (c === "undefined" || c === "boolean") this.className && p._data(this, "__className__", this.className), this.className = this.className || a === !1 ? "" : p._data(this, "__className__") || ""
+ })
+ },
+ hasClass: function(a) {
+ var b = " " + a + " ",
+ c = 0,
+ d = this.length;
+ for (; c < d; c++)
+ if (this[c].nodeType === 1 && (" " + this[c].className + " ").replace(O, " ").indexOf(b) >= 0) return !0;
+ return !1
+ },
+ val: function(a) {
+ var c, d, e, f = this[0];
+ if (!arguments.length) {
+ if (f) return c = p.valHooks[f.type] || p.valHooks[f.nodeName.toLowerCase()], c && "get" in c && (d = c.get(f, "value")) !== b ? d : (d = f.value, typeof d == "string" ? d.replace(P, "") : d == null ? "" : d);
+ return
+ }
+ return e = p.isFunction(a), this.each(function(d) {
+ var f, g = p(this);
+ if (this.nodeType !== 1) return;
+ e ? f = a.call(this, d, g.val()) : f = a, f == null ? f = "" : typeof f == "number" ? f += "" : p.isArray(f) && (f = p.map(f, function(a) {
+ return a == null ? "" : a + ""
+ })), c = p.valHooks[this.type] || p.valHooks[this.nodeName.toLowerCase()];
+ if (!c || !("set" in c) || c.set(this, f, "value") === b) this.value = f
+ })
+ }
+ }), p.extend({
+ valHooks: {
+ option: {
+ get: function(a) {
+ var b = a.attributes.value;
+ return !b || b.specified ? a.value : a.text
+ }
+ },
+ select: {
+ get: function(a) {
+ var b, c, d, e, f = a.selectedIndex,
+ g = [],
+ h = a.options,
+ i = a.type === "select-one";
+ if (f < 0) return null;
+ c = i ? f : 0, d = i ? f + 1 : h.length;
+ for (; c < d; c++) {
+ e = h[c];
+ if (e.selected && (p.support.optDisabled ? !e.disabled : e.getAttribute("disabled") === null) && (!e.parentNode.disabled || !p.nodeName(e.parentNode, "optgroup"))) {
+ b = p(e).val();
+ if (i) return b;
+ g.push(b)
+ }
+ }
+ return i && !g.length && h.length ? p(h[f]).val() : g
+ },
+ set: function(a, b) {
+ var c = p.makeArray(b);
+ return p(a).find("option").each(function() {
+ this.selected = p.inArray(p(this).val(), c) >= 0
+ }), c.length || (a.selectedIndex = -1), c
+ }
+ }
+ },
+ attrFn: {},
+ attr: function(a, c, d, e) {
+ var f, g, h, i = a.nodeType;
+ if (!a || i === 3 || i === 8 || i === 2) return;
+ if (e && p.isFunction(p.fn[c])) return p(a)[c](d);
+ if (typeof a.getAttribute == "undefined") return p.prop(a, c, d);
+ h = i !== 1 || !p.isXMLDoc(a), h && (c = c.toLowerCase(), g = p.attrHooks[c] || (T.test(c) ? M : L));
+ if (d !== b) {
+ if (d === null) {
+ p.removeAttr(a, c);
+ return
+ }
+ return g && "set" in g && h && (f = g.set(a, d, c)) !== b ? f : (a.setAttribute(c, d + ""), d)
+ }
+ return g && "get" in g && h && (f = g.get(a, c)) !== null ? f : (f = a.getAttribute(c), f === null ? b : f)
+ },
+ removeAttr: function(a, b) {
+ var c, d, e, f, g = 0;
+ if (b && a.nodeType === 1) {
+ d = b.split(s);
+ for (; g < d.length; g++) e = d[g], e && (c = p.propFix[e] || e, f = T.test(e), f || p.attr(a, e, ""), a.removeAttribute(U ? e : c), f && c in a && (a[c] = !1))
+ }
+ },
+ attrHooks: {
+ type: {
+ set: function(a, b) {
+ if (Q.test(a.nodeName) && a.parentNode) p.error("type property can't be changed");
+ else if (!p.support.radioValue && b === "radio" && p.nodeName(a, "input")) {
+ var c = a.value;
+ return a.setAttribute("type", b), c && (a.value = c), b
+ }
+ }
+ },
+ value: {
+ get: function(a, b) {
+ return L && p.nodeName(a, "button") ? L.get(a, b) : b in a ? a.value : null
+ },
+ set: function(a, b, c) {
+ if (L && p.nodeName(a, "button")) return L.set(a, b, c);
+ a.value = b
+ }
+ }
+ },
+ propFix: {
+ tabindex: "tabIndex",
+ readonly: "readOnly",
+ "for": "htmlFor",
+ "class": "className",
+ maxlength: "maxLength",
+ cellspacing: "cellSpacing",
+ cellpadding: "cellPadding",
+ rowspan: "rowSpan",
+ colspan: "colSpan",
+ usemap: "useMap",
+ frameborder: "frameBorder",
+ contenteditable: "contentEditable"
+ },
+ prop: function(a, c, d) {
+ var e, f, g, h = a.nodeType;
+ if (!a || h === 3 || h === 8 || h === 2) return;
+ return g = h !== 1 || !p.isXMLDoc(a), g && (c = p.propFix[c] || c, f = p.propHooks[c]), d !== b ? f && "set" in f && (e = f.set(a, d, c)) !== b ? e : a[c] = d : f && "get" in f && (e = f.get(a, c)) !== null ? e : a[c]
+ },
+ propHooks: {
+ tabIndex: {
+ get: function(a) {
+ var c = a.getAttributeNode("tabindex");
+ return c && c.specified ? parseInt(c.value, 10) : R.test(a.nodeName) || S.test(a.nodeName) && a.href ? 0 : b
+ }
+ }
+ }
+ }), M = {
+ get: function(a, c) {
+ var d, e = p.prop(a, c);
+ return e === !0 || typeof e != "boolean" && (d = a.getAttributeNode(c)) && d.nodeValue !== !1 ? c.toLowerCase() : b
+ },
+ set: function(a, b, c) {
+ var d;
+ return b === !1 ? p.removeAttr(a, c) : (d = p.propFix[c] || c, d in a && (a[d] = !0), a.setAttribute(c, c.toLowerCase())), c
+ }
+ }, U || (N = {
+ name: !0,
+ id: !0,
+ coords: !0
+ }, L = p.valHooks.button = {
+ get: function(a, c) {
+ var d;
+ return d = a.getAttributeNode(c), d && (N[c] ? d.value !== "" : d.specified) ? d.value : b
+ },
+ set: function(a, b, c) {
+ var d = a.getAttributeNode(c);
+ return d || (d = e.createAttribute(c), a.setAttributeNode(d)), d.value = b + ""
+ }
+ }, p.each(["width", "height"], function(a, b) {
+ p.attrHooks[b] = p.extend(p.attrHooks[b], {
+ set: function(a, c) {
+ if (c === "") return a.setAttribute(b, "auto"), c
+ }
+ })
+ }), p.attrHooks.contenteditable = {
+ get: L.get,
+ set: function(a, b, c) {
+ b === "" && (b = "false"), L.set(a, b, c)
+ }
+ }), p.support.hrefNormalized || p.each(["href", "src", "width", "height"], function(a, c) {
+ p.attrHooks[c] = p.extend(p.attrHooks[c], {
+ get: function(a) {
+ var d = a.getAttribute(c, 2);
+ return d === null ? b : d
+ }
+ })
+ }), p.support.style || (p.attrHooks.style = {
+ get: function(a) {
+ return a.style.cssText.toLowerCase() || b
+ },
+ set: function(a, b) {
+ return a.style.cssText = b + ""
+ }
+ }), p.support.optSelected || (p.propHooks.selected = p.extend(p.propHooks.selected, {
+ get: function(a) {
+ var b = a.parentNode;
+ return b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex), null
+ }
+ })), p.support.enctype || (p.propFix.enctype = "encoding"), p.support.checkOn || p.each(["radio", "checkbox"], function() {
+ p.valHooks[this] = {
+ get: function(a) {
+ return a.getAttribute("value") === null ? "on" : a.value
+ }
+ }
+ }), p.each(["radio", "checkbox"], function() {
+ p.valHooks[this] = p.extend(p.valHooks[this], {
+ set: function(a, b) {
+ if (p.isArray(b)) return a.checked = p.inArray(p(a).val(), b) >= 0
+ }
+ })
+ });
+ var V = /^(?:textarea|input|select)$/i,
+ W = /^([^\.]*|)(?:\.(.+)|)$/,
+ X = /(?:^|\s)hover(\.\S+|)\b/,
+ Y = /^key/,
+ Z = /^(?:mouse|contextmenu)|click/,
+ $ = /^(?:focusinfocus|focusoutblur)$/,
+ _ = function(a) {
+ return p.event.special.hover ? a : a.replace(X, "mouseenter$1 mouseleave$1")
+ };
+ p.event = {
+ add: function(a, c, d, e, f) {
+ var g, h, i, j, k, l, m, n, o, q, r;
+ if (a.nodeType === 3 || a.nodeType === 8 || !c || !d || !(g = p._data(a))) return;
+ d.handler && (o = d, d = o.handler, f = o.selector), d.guid || (d.guid = p.guid++), i = g.events, i || (g.events = i = {}), h = g.handle, h || (g.handle = h = function(a) {
+ return typeof p != "undefined" && (!a || p.event.triggered !== a.type) ? p.event.dispatch.apply(h.elem, arguments) : b
+ }, h.elem = a), c = p.trim(_(c)).split(" ");
+ for (j = 0; j < c.length; j++) {
+ k = W.exec(c[j]) || [], l = k[1], m = (k[2] || "").split(".").sort(), r = p.event.special[l] || {}, l = (f ? r.delegateType : r.bindType) || l, r = p.event.special[l] || {}, n = p.extend({
+ type: l,
+ origType: k[1],
+ data: e,
+ handler: d,
+ guid: d.guid,
+ selector: f,
+ needsContext: f && p.expr.match.needsContext.test(f),
+ namespace: m.join(".")
+ }, o), q = i[l];
+ if (!q) {
+ q = i[l] = [], q.delegateCount = 0;
+ if (!r.setup || r.setup.call(a, e, m, h) === !1) a.addEventListener ? a.addEventListener(l, h, !1) : a.attachEvent && a.attachEvent("on" + l, h)
+ }
+ r.add && (r.add.call(a, n), n.handler.guid || (n.handler.guid = d.guid)), f ? q.splice(q.delegateCount++, 0, n) : q.push(n), p.event.global[l] = !0
+ }
+ a = null
+ },
+ global: {},
+ remove: function(a, b, c, d, e) {
+ var f, g, h, i, j, k, l, m, n, o, q, r = p.hasData(a) && p._data(a);
+ if (!r || !(m = r.events)) return;
+ b = p.trim(_(b || "")).split(" ");
+ for (f = 0; f < b.length; f++) {
+ g = W.exec(b[f]) || [], h = i = g[1], j = g[2];
+ if (!h) {
+ for (h in m) p.event.remove(a, h + b[f], c, d, !0);
+ continue
+ }
+ n = p.event.special[h] || {}, h = (d ? n.delegateType : n.bindType) || h, o = m[h] || [], k = o.length, j = j ? new RegExp("(^|\\.)" + j.split(".").sort().join("\\.(?:.*\\.|)") + "(\\.|$)") : null;
+ for (l = 0; l < o.length; l++) q = o[l], (e || i === q.origType) && (!c || c.guid === q.guid) && (!j || j.test(q.namespace)) && (!d || d === q.selector || d === "**" && q.selector) && (o.splice(l--, 1), q.selector && o.delegateCount--, n.remove && n.remove.call(a, q));
+ o.length === 0 && k !== o.length && ((!n.teardown || n.teardown.call(a, j, r.handle) === !1) && p.removeEvent(a, h, r.handle), delete m[h])
+ }
+ p.isEmptyObject(m) && (delete r.handle, p.removeData(a, "events", !0))
+ },
+ customEvent: {
+ getData: !0,
+ setData: !0,
+ changeData: !0
+ },
+ trigger: function(c, d, f, g) {
+ if (!f || f.nodeType !== 3 && f.nodeType !== 8) {
+ var h, i, j, k, l, m, n, o, q, r, s = c.type || c,
+ t = [];
+ if ($.test(s + p.event.triggered)) return;
+ s.indexOf("!") >= 0 && (s = s.slice(0, -1), i = !0), s.indexOf(".") >= 0 && (t = s.split("."), s = t.shift(), t.sort());
+ if ((!f || p.event.customEvent[s]) && !p.event.global[s]) return;
+ c = typeof c == "object" ? c[p.expando] ? c : new p.Event(s, c) : new p.Event(s), c.type = s, c.isTrigger = !0, c.exclusive = i, c.namespace = t.join("."), c.namespace_re = c.namespace ? new RegExp("(^|\\.)" + t.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, m = s.indexOf(":") < 0 ? "on" + s : "";
+ if (!f) {
+ h = p.cache;
+ for (j in h) h[j].events && h[j].events[s] && p.event.trigger(c, d, h[j].handle.elem, !0);
+ return
+ }
+ c.result = b, c.target || (c.target = f), d = d != null ? p.makeArray(d) : [], d.unshift(c), n = p.event.special[s] || {};
+ if (n.trigger && n.trigger.apply(f, d) === !1) return;
+ q = [
+ [f, n.bindType || s]
+ ];
+ if (!g && !n.noBubble && !p.isWindow(f)) {
+ r = n.delegateType || s, k = $.test(r + s) ? f : f.parentNode;
+ for (l = f; k; k = k.parentNode) q.push([k, r]), l = k;
+ l === (f.ownerDocument || e) && q.push([l.defaultView || l.parentWindow || a, r])
+ }
+ for (j = 0; j < q.length && !c.isPropagationStopped(); j++) k = q[j][0], c.type = q[j][1], o = (p._data(k, "events") || {})[c.type] && p._data(k, "handle"), o && o.apply(k, d), o = m && k[m], o && p.acceptData(k) && o.apply && o.apply(k, d) === !1 && c.preventDefault();
+ return c.type = s, !g && !c.isDefaultPrevented() && (!n._default || n._default.apply(f.ownerDocument, d) === !1) && (s !== "click" || !p.nodeName(f, "a")) && p.acceptData(f) && m && f[s] && (s !== "focus" && s !== "blur" || c.target.offsetWidth !== 0) && !p.isWindow(f) && (l = f[m], l && (f[m] = null), p.event.triggered = s, f[s](), p.event.triggered = b, l && (f[m] = l)), c.result
+ }
+ return
+ },
+ dispatch: function(c) {
+ c = p.event.fix(c || a.event);
+ var d, e, f, g, h, i, j, l, m, n, o = (p._data(this, "events") || {})[c.type] || [],
+ q = o.delegateCount,
+ r = k.call(arguments),
+ s = !c.exclusive && !c.namespace,
+ t = p.event.special[c.type] || {},
+ u = [];
+ r[0] = c, c.delegateTarget = this;
+ if (t.preDispatch && t.preDispatch.call(this, c) === !1) return;
+ if (q && (!c.button || c.type !== "click"))
+ for (f = c.target; f != this; f = f.parentNode || this)
+ if (f.disabled !== !0 || c.type !== "click") {
+ h = {}, j = [];
+ for (d = 0; d < q; d++) l = o[d], m = l.selector, h[m] === b && (h[m] = l.needsContext ? p(m, this).index(f) >= 0 : p.find(m, this, null, [f]).length), h[m] && j.push(l);
+ j.length && u.push({
+ elem: f,
+ matches: j
+ })
+ }
+ o.length > q && u.push({
+ elem: this,
+ matches: o.slice(q)
+ });
+ for (d = 0; d < u.length && !c.isPropagationStopped(); d++) {
+ i = u[d], c.currentTarget = i.elem;
+ for (e = 0; e < i.matches.length && !c.isImmediatePropagationStopped(); e++) {
+ l = i.matches[e];
+ if (s || !c.namespace && !l.namespace || c.namespace_re && c.namespace_re.test(l.namespace)) c.data = l.data, c.handleObj = l, g = ((p.event.special[l.origType] || {}).handle || l.handler).apply(i.elem, r), g !== b && (c.result = g, g === !1 && (c.preventDefault(), c.stopPropagation()))
+ }
+ }
+ return t.postDispatch && t.postDispatch.call(this, c), c.result
+ },
+ props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
+ fixHooks: {},
+ keyHooks: {
+ props: "char charCode key keyCode".split(" "),
+ filter: function(a, b) {
+ return a.which == null && (a.which = b.charCode != null ? b.charCode : b.keyCode), a
+ }
+ },
+ mouseHooks: {
+ props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
+ filter: function(a, c) {
+ var d, f, g, h = c.button,
+ i = c.fromElement;
+ return a.pageX == null && c.clientX != null && (d = a.target.ownerDocument || e, f = d.documentElement, g = d.body, a.pageX = c.clientX + (f && f.scrollLeft || g && g.scrollLeft || 0) - (f && f.clientLeft || g && g.clientLeft || 0), a.pageY = c.clientY + (f && f.scrollTop || g && g.scrollTop || 0) - (f && f.clientTop || g && g.clientTop || 0)), !a.relatedTarget && i && (a.relatedTarget = i === a.target ? c.toElement : i), !a.which && h !== b && (a.which = h & 1 ? 1 : h & 2 ? 3 : h & 4 ? 2 : 0), a
+ }
+ },
+ fix: function(a) {
+ if (a[p.expando]) return a;
+ var b, c, d = a,
+ f = p.event.fixHooks[a.type] || {},
+ g = f.props ? this.props.concat(f.props) : this.props;
+ a = p.Event(d);
+ for (b = g.length; b;) c = g[--b], a[c] = d[c];
+ return a.target || (a.target = d.srcElement || e), a.target.nodeType === 3 && (a.target = a.target.parentNode), a.metaKey = !!a.metaKey, f.filter ? f.filter(a, d) : a
+ },
+ special: {
+ load: {
+ noBubble: !0
+ },
+ focus: {
+ delegateType: "focusin"
+ },
+ blur: {
+ delegateType: "focusout"
+ },
+ beforeunload: {
+ setup: function(a, b, c) {
+ p.isWindow(this) && (this.onbeforeunload = c)
+ },
+ teardown: function(a, b) {
+ this.onbeforeunload === b && (this.onbeforeunload = null)
+ }
+ }
+ },
+ simulate: function(a, b, c, d) {
+ var e = p.extend(new p.Event, c, {
+ type: a,
+ isSimulated: !0,
+ originalEvent: {}
+ });
+ d ? p.event.trigger(e, null, b) : p.event.dispatch.call(b, e), e.isDefaultPrevented() && c.preventDefault()
+ }
+ }, p.event.handle = p.event.dispatch, p.removeEvent = e.removeEventListener ? function(a, b, c) {
+ a.removeEventListener && a.removeEventListener(b, c, !1)
+ } : function(a, b, c) {
+ var d = "on" + b;
+ a.detachEvent && (typeof a[d] == "undefined" && (a[d] = null), a.detachEvent(d, c))
+ }, p.Event = function(a, b) {
+ if (this instanceof p.Event) a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || a.returnValue === !1 || a.getPreventDefault && a.getPreventDefault() ? bb : ba) : this.type = a, b && p.extend(this, b), this.timeStamp = a && a.timeStamp || p.now(), this[p.expando] = !0;
+ else return new p.Event(a, b)
+ }, p.Event.prototype = {
+ preventDefault: function() {
+ this.isDefaultPrevented = bb;
+ var a = this.originalEvent;
+ if (!a) return;
+ a.preventDefault ? a.preventDefault() : a.returnValue = !1
+ },
+ stopPropagation: function() {
+ this.isPropagationStopped = bb;
+ var a = this.originalEvent;
+ if (!a) return;
+ a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0
+ },
+ stopImmediatePropagation: function() {
+ this.isImmediatePropagationStopped = bb, this.stopPropagation()
+ },
+ isDefaultPrevented: ba,
+ isPropagationStopped: ba,
+ isImmediatePropagationStopped: ba
+ }, p.each({
+ mouseenter: "mouseover",
+ mouseleave: "mouseout"
+ }, function(a, b) {
+ p.event.special[a] = {
+ delegateType: b,
+ bindType: b,
+ handle: function(a) {
+ var c, d = this,
+ e = a.relatedTarget,
+ f = a.handleObj,
+ g = f.selector;
+ if (!e || e !== d && !p.contains(d, e)) a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b;
+ return c
+ }
+ }
+ }), p.support.submitBubbles || (p.event.special.submit = {
+ setup: function() {
+ if (p.nodeName(this, "form")) return !1;
+ p.event.add(this, "click._submit keypress._submit", function(a) {
+ var c = a.target,
+ d = p.nodeName(c, "input") || p.nodeName(c, "button") ? c.form : b;
+ d && !p._data(d, "_submit_attached") && (p.event.add(d, "submit._submit", function(a) {
+ a._submit_bubble = !0
+ }), p._data(d, "_submit_attached", !0))
+ })
+ },
+ postDispatch: function(a) {
+ a._submit_bubble && (delete a._submit_bubble, this.parentNode && !a.isTrigger && p.event.simulate("submit", this.parentNode, a, !0))
+ },
+ teardown: function() {
+ if (p.nodeName(this, "form")) return !1;
+ p.event.remove(this, "._submit")
+ }
+ }), p.support.changeBubbles || (p.event.special.change = {
+ setup: function() {
+ if (V.test(this.nodeName)) {
+ if (this.type === "checkbox" || this.type === "radio") p.event.add(this, "propertychange._change", function(a) {
+ a.originalEvent.propertyName === "checked" && (this._just_changed = !0)
+ }), p.event.add(this, "click._change", function(a) {
+ this._just_changed && !a.isTrigger && (this._just_changed = !1), p.event.simulate("change", this, a, !0)
+ });
+ return !1
+ }
+ p.event.add(this, "beforeactivate._change", function(a) {
+ var b = a.target;
+ V.test(b.nodeName) && !p._data(b, "_change_attached") && (p.event.add(b, "change._change", function(a) {
+ this.parentNode && !a.isSimulated && !a.isTrigger && p.event.simulate("change", this.parentNode, a, !0)
+ }), p._data(b, "_change_attached", !0))
+ })
+ },
+ handle: function(a) {
+ var b = a.target;
+ if (this !== b || a.isSimulated || a.isTrigger || b.type !== "radio" && b.type !== "checkbox") return a.handleObj.handler.apply(this, arguments)
+ },
+ teardown: function() {
+ return p.event.remove(this, "._change"), !V.test(this.nodeName)
+ }
+ }), p.support.focusinBubbles || p.each({
+ focus: "focusin",
+ blur: "focusout"
+ }, function(a, b) {
+ var c = 0,
+ d = function(a) {
+ p.event.simulate(b, a.target, p.event.fix(a), !0)
+ };
+ p.event.special[b] = {
+ setup: function() {
+ c++ === 0 && e.addEventListener(a, d, !0)
+ },
+ teardown: function() {
+ --c === 0 && e.removeEventListener(a, d, !0)
+ }
+ }
+ }), p.fn.extend({
+ on: function(a, c, d, e, f) {
+ var g, h;
+ if (typeof a == "object") {
+ typeof c != "string" && (d = d || c, c = b);
+ for (h in a) this.on(h, c, d, a[h], f);
+ return this
+ }
+ d == null && e == null ? (e = c, d = c = b) : e == null && (typeof c == "string" ? (e = d, d = b) : (e = d, d = c, c = b));
+ if (e === !1) e = ba;
+ else if (!e) return this;
+ return f === 1 && (g = e, e = function(a) {
+ return p().off(a), g.apply(this, arguments)
+ }, e.guid = g.guid || (g.guid = p.guid++)), this.each(function() {
+ p.event.add(this, a, e, d, c)
+ })
+ },
+ one: function(a, b, c, d) {
+ return this.on(a, b, c, d, 1)
+ },
+ off: function(a, c, d) {
+ var e, f;
+ if (a && a.preventDefault && a.handleObj) return e = a.handleObj, p(a.delegateTarget).off(e.namespace ? e.origType + "." + e.namespace : e.origType, e.selector, e.handler), this;
+ if (typeof a == "object") {
+ for (f in a) this.off(f, c, a[f]);
+ return this
+ }
+ if (c === !1 || typeof c == "function") d = c, c = b;
+ return d === !1 && (d = ba), this.each(function() {
+ p.event.remove(this, a, d, c)
+ })
+ },
+ bind: function(a, b, c) {
+ return this.on(a, null, b, c)
+ },
+ unbind: function(a, b) {
+ return this.off(a, null, b)
+ },
+ live: function(a, b, c) {
+ return p(this.context).on(a, this.selector, b, c), this
+ },
+ die: function(a, b) {
+ return p(this.context).off(a, this.selector || "**", b), this
+ },
+ delegate: function(a, b, c, d) {
+ return this.on(b, a, c, d)
+ },
+ undelegate: function(a, b, c) {
+ return arguments.length === 1 ? this.off(a, "**") : this.off(b, a || "**", c)
+ },
+ trigger: function(a, b) {
+ return this.each(function() {
+ p.event.trigger(a, b, this)
+ })
+ },
+ triggerHandler: function(a, b) {
+ if (this[0]) return p.event.trigger(a, b, this[0], !0)
+ },
+ toggle: function(a) {
+ var b = arguments,
+ c = a.guid || p.guid++,
+ d = 0,
+ e = function(c) {
+ var e = (p._data(this, "lastToggle" + a.guid) || 0) % d;
+ return p._data(this, "lastToggle" + a.guid, e + 1), c.preventDefault(), b[e].apply(this, arguments) || !1
+ };
+ e.guid = c;
+ while (d < b.length) b[d++].guid = c;
+ return this.click(e)
+ },
+ hover: function(a, b) {
+ return this.mouseenter(a).mouseleave(b || a)
+ }
+ }), p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(a, b) {
+ p.fn[b] = function(a, c) {
+ return c == null && (c = a, a = null), arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b)
+ }, Y.test(b) && (p.event.fixHooks[b] = p.event.keyHooks), Z.test(b) && (p.event.fixHooks[b] = p.event.mouseHooks)
+ }),
+ function(a, b) {
+ function bc(a, b, c, d) {
+ c = c || [], b = b || r;
+ var e, f, i, j, k = b.nodeType;
+ if (!a || typeof a != "string") return c;
+ if (k !== 1 && k !== 9) return [];
+ i = g(b);
+ if (!i && !d)
+ if (e = P.exec(a))
+ if (j = e[1]) {
+ if (k === 9) {
+ f = b.getElementById(j);
+ if (!f || !f.parentNode) return c;
+ if (f.id === j) return c.push(f), c
+ } else if (b.ownerDocument && (f = b.ownerDocument.getElementById(j)) && h(b, f) && f.id === j) return c.push(f), c
+ } else {
+ if (e[2]) return w.apply(c, x.call(b.getElementsByTagName(a), 0)), c;
+ if ((j = e[3]) && _ && b.getElementsByClassName) return w.apply(c, x.call(b.getElementsByClassName(j), 0)), c
+ }
+ return bp(a.replace(L, "$1"), b, c, d, i)
+ }
+
+ function bd(a) {
+ return function(b) {
+ var c = b.nodeName.toLowerCase();
+ return c === "input" && b.type === a
+ }
+ }
+
+ function be(a) {
+ return function(b) {
+ var c = b.nodeName.toLowerCase();
+ return (c === "input" || c === "button") && b.type === a
+ }
+ }
+
+ function bf(a) {
+ return z(function(b) {
+ return b = +b, z(function(c, d) {
+ var e, f = a([], c.length, b),
+ g = f.length;
+ while (g--) c[e = f[g]] && (c[e] = !(d[e] = c[e]))
+ })
+ })
+ }
+
+ function bg(a, b, c) {
+ if (a === b) return c;
+ var d = a.nextSibling;
+ while (d) {
+ if (d === b) return -1;
+ d = d.nextSibling
+ }
+ return 1
+ }
+
+ function bh(a, b) {
+ var c, d, f, g, h, i, j, k = C[o][a];
+ if (k) return b ? 0 : k.slice(0);
+ h = a, i = [], j = e.preFilter;
+ while (h) {
+ if (!c || (d = M.exec(h))) d && (h = h.slice(d[0].length)), i.push(f = []);
+ c = !1;
+ if (d = N.exec(h)) f.push(c = new q(d.shift())), h = h.slice(c.length), c.type = d[0].replace(L, " ");
+ for (g in e.filter)(d = W[g].exec(h)) && (!j[g] || (d = j[g](d, r, !0))) && (f.push(c = new q(d.shift())), h = h.slice(c.length), c.type = g, c.matches = d);
+ if (!c) break
+ }
+ return b ? h.length : h ? bc.error(a) : C(a, i).slice(0)
+ }
+
+ function bi(a, b, d) {
+ var e = b.dir,
+ f = d && b.dir === "parentNode",
+ g = u++;
+ return b.first ? function(b, c, d) {
+ while (b = b[e])
+ if (f || b.nodeType === 1) return a(b, c, d)
+ } : function(b, d, h) {
+ if (!h) {
+ var i, j = t + " " + g + " ",
+ k = j + c;
+ while (b = b[e])
+ if (f || b.nodeType === 1) {
+ if ((i = b[o]) === k) return b.sizset;
+ if (typeof i == "string" && i.indexOf(j) === 0) {
+ if (b.sizset) return b
+ } else {
+ b[o] = k;
+ if (a(b, d, h)) return b.sizset = !0, b;
+ b.sizset = !1
+ }
+ }
+ } else
+ while (b = b[e])
+ if (f || b.nodeType === 1)
+ if (a(b, d, h)) return b
+ }
+ }
+
+ function bj(a) {
+ return a.length > 1 ? function(b, c, d) {
+ var e = a.length;
+ while (e--)
+ if (!a[e](b, c, d)) return !1;
+ return !0
+ } : a[0]
+ }
+
+ function bk(a, b, c, d, e) {
+ var f, g = [],
+ h = 0,
+ i = a.length,
+ j = b != null;
+ for (; h < i; h++)
+ if (f = a[h])
+ if (!c || c(f, d, e)) g.push(f), j && b.push(h);
+ return g
+ }
+
+ function bl(a, b, c, d, e, f) {
+ return d && !d[o] && (d = bl(d)), e && !e[o] && (e = bl(e, f)), z(function(f, g, h, i) {
+ if (f && e) return;
+ var j, k, l, m = [],
+ n = [],
+ o = g.length,
+ p = f || bo(b || "*", h.nodeType ? [h] : h, [], f),
+ q = a && (f || !b) ? bk(p, m, a, h, i) : p,
+ r = c ? e || (f ? a : o || d) ? [] : g : q;
+ c && c(q, r, h, i);
+ if (d) {
+ l = bk(r, n), d(l, [], h, i), j = l.length;
+ while (j--)
+ if (k = l[j]) r[n[j]] = !(q[n[j]] = k)
+ }
+ if (f) {
+ j = a && r.length;
+ while (j--)
+ if (k = r[j]) f[m[j]] = !(g[m[j]] = k)
+ } else r = bk(r === g ? r.splice(o, r.length) : r), e ? e(null, g, r, i) : w.apply(g, r)
+ })
+ }
+
+ function bm(a) {
+ var b, c, d, f = a.length,
+ g = e.relative[a[0].type],
+ h = g || e.relative[" "],
+ i = g ? 1 : 0,
+ j = bi(function(a) {
+ return a === b
+ }, h, !0),
+ k = bi(function(a) {
+ return y.call(b, a) > -1
+ }, h, !0),
+ m = [function(a, c, d) {
+ return !g && (d || c !== l) || ((b = c).nodeType ? j(a, c, d) : k(a, c, d))
+ }];
+ for (; i < f; i++)
+ if (c = e.relative[a[i].type]) m = [bi(bj(m), c)];
+ else {
+ c = e.filter[a[i].type].apply(null, a[i].matches);
+ if (c[o]) {
+ d = ++i;
+ for (; d < f; d++)
+ if (e.relative[a[d].type]) break;
+ return bl(i > 1 && bj(m), i > 1 && a.slice(0, i - 1).join("").replace(L, "$1"), c, i < d && bm(a.slice(i, d)), d < f && bm(a = a.slice(d)), d < f && a.join(""))
+ }
+ m.push(c)
+ }
+ return bj(m)
+ }
+
+ function bn(a, b) {
+ var d = b.length > 0,
+ f = a.length > 0,
+ g = function(h, i, j, k, m) {
+ var n, o, p, q = [],
+ s = 0,
+ u = "0",
+ x = h && [],
+ y = m != null,
+ z = l,
+ A = h || f && e.find.TAG("*", m && i.parentNode || i),
+ B = t += z == null ? 1 : Math.E;
+ y && (l = i !== r && i, c = g.el);
+ for (;
+ (n = A[u]) != null; u++) {
+ if (f && n) {
+ for (o = 0; p = a[o]; o++)
+ if (p(n, i, j)) {
+ k.push(n);
+ break
+ }
+ y && (t = B, c = ++g.el)
+ }
+ d && ((n = !p && n) && s--, h && x.push(n))
+ }
+ s += u;
+ if (d && u !== s) {
+ for (o = 0; p = b[o]; o++) p(x, q, i, j);
+ if (h) {
+ if (s > 0)
+ while (u--) !x[u] && !q[u] && (q[u] = v.call(k));
+ q = bk(q)
+ }
+ w.apply(k, q), y && !h && q.length > 0 && s + b.length > 1 && bc.uniqueSort(k)
+ }
+ return y && (t = B, l = z), x
+ };
+ return g.el = 0, d ? z(g) : g
+ }
+
+ function bo(a, b, c, d) {
+ var e = 0,
+ f = b.length;
+ for (; e < f; e++) bc(a, b[e], c, d);
+ return c
+ }
+
+ function bp(a, b, c, d, f) {
+ var g, h, j, k, l, m = bh(a),
+ n = m.length;
+ if (!d && m.length === 1) {
+ h = m[0] = m[0].slice(0);
+ if (h.length > 2 && (j = h[0]).type === "ID" && b.nodeType === 9 && !f && e.relative[h[1].type]) {
+ b = e.find.ID(j.matches[0].replace(V, ""), b, f)[0];
+ if (!b) return c;
+ a = a.slice(h.shift().length)
+ }
+ for (g = W.POS.test(a) ? -1 : h.length - 1; g >= 0; g--) {
+ j = h[g];
+ if (e.relative[k = j.type]) break;
+ if (l = e.find[k])
+ if (d = l(j.matches[0].replace(V, ""), R.test(h[0].type) && b.parentNode || b, f)) {
+ h.splice(g, 1), a = d.length && h.join("");
+ if (!a) return w.apply(c, x.call(d, 0)), c;
+ break
+ }
+ }
+ }
+ return i(a, m)(d, b, f, c, R.test(a)), c
+ }
+
+ function bq() {}
+ var c, d, e, f, g, h, i, j, k, l, m = !0,
+ n = "undefined",
+ o = ("sizcache" + Math.random()).replace(".", ""),
+ q = String,
+ r = a.document,
+ s = r.documentElement,
+ t = 0,
+ u = 0,
+ v = [].pop,
+ w = [].push,
+ x = [].slice,
+ y = [].indexOf || function(a) {
+ var b = 0,
+ c = this.length;
+ for (; b < c; b++)
+ if (this[b] === a) return b;
+ return -1
+ },
+ z = function(a, b) {
+ return a[o] = b == null || b, a
+ },
+ A = function() {
+ var a = {},
+ b = [];
+ return z(function(c, d) {
+ return b.push(c) > e.cacheLength && delete a[b.shift()], a[c] = d
+ }, a)
+ },
+ B = A(),
+ C = A(),
+ D = A(),
+ E = "[\\x20\\t\\r\\n\\f]",
+ F = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",
+ G = F.replace("w", "w#"),
+ H = "([*^$|!~]?=)",
+ I = "\\[" + E + "*(" + F + ")" + E + "*(?:" + H + E + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + G + ")|)|)" + E + "*\\]",
+ J = ":(" + F + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:" + I + ")|[^:]|\\\\.)*|.*))\\)|)",
+ K = ":(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + E + "*((?:-\\d)?\\d*)" + E + "*\\)|)(?=[^-]|$)",
+ L = new RegExp("^" + E + "+|((?:^|[^\\\\])(?:\\\\.)*)" + E + "+$", "g"),
+ M = new RegExp("^" + E + "*," + E + "*"),
+ N = new RegExp("^" + E + "*([\\x20\\t\\r\\n\\f>+~])" + E + "*"),
+ O = new RegExp(J),
+ P = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,
+ Q = /^:not/,
+ R = /[\x20\t\r\n\f]*[+~]/,
+ S = /:not\($/,
+ T = /h\d/i,
+ U = /input|select|textarea|button/i,
+ V = /\\(?!\\)/g,
+ W = {
+ ID: new RegExp("^#(" + F + ")"),
+ CLASS: new RegExp("^\\.(" + F + ")"),
+ NAME: new RegExp("^\\[name=['\"]?(" + F + ")['\"]?\\]"),
+ TAG: new RegExp("^(" + F.replace("w", "w*") + ")"),
+ ATTR: new RegExp("^" + I),
+ PSEUDO: new RegExp("^" + J),
+ POS: new RegExp(K, "i"),
+ CHILD: new RegExp("^:(only|nth|first|last)-child(?:\\(" + E + "*(even|odd|(([+-]|)(\\d*)n|)" + E + "*(?:([+-]|)" + E + "*(\\d+)|))" + E + "*\\)|)", "i"),
+ needsContext: new RegExp("^" + E + "*[>+~]|" + K, "i")
+ },
+ X = function(a) {
+ var b = r.createElement("div");
+ try {
+ return a(b)
+ } catch (c) {
+ return !1
+ } finally {
+ b = null
+ }
+ },
+ Y = X(function(a) {
+ return a.appendChild(r.createComment("")), !a.getElementsByTagName("*").length
+ }),
+ Z = X(function(a) {
+ return a.innerHTML = "", a.firstChild && typeof a.firstChild.getAttribute !== n && a.firstChild.getAttribute("href") === "#"
+ }),
+ $ = X(function(a) {
+ a.innerHTML = "";
+ var b = typeof a.lastChild.getAttribute("multiple");
+ return b !== "boolean" && b !== "string"
+ }),
+ _ = X(function(a) {
+ return a.innerHTML = "", !a.getElementsByClassName || !a.getElementsByClassName("e").length ? !1 : (a.lastChild.className = "e", a.getElementsByClassName("e").length === 2)
+ }),
+ ba = X(function(a) {
+ a.id = o + 0, a.innerHTML = "", s.insertBefore(a, s.firstChild);
+ var b = r.getElementsByName && r.getElementsByName(o).length === 2 + r.getElementsByName(o + 0).length;
+ return d = !r.getElementById(o), s.removeChild(a), b
+ });
+ try {
+ x.call(s.childNodes, 0)[0].nodeType
+ } catch (bb) {
+ x = function(a) {
+ var b, c = [];
+ for (; b = this[a]; a++) c.push(b);
+ return c
+ }
+ }
+ bc.matches = function(a, b) {
+ return bc(a, null, null, b)
+ }, bc.matchesSelector = function(a, b) {
+ return bc(b, null, null, [a]).length > 0
+ }, f = bc.getText = function(a) {
+ var b, c = "",
+ d = 0,
+ e = a.nodeType;
+ if (e) {
+ if (e === 1 || e === 9 || e === 11) {
+ if (typeof a.textContent == "string") return a.textContent;
+ for (a = a.firstChild; a; a = a.nextSibling) c += f(a)
+ } else if (e === 3 || e === 4) return a.nodeValue
+ } else
+ for (; b = a[d]; d++) c += f(b);
+ return c
+ }, g = bc.isXML = function(a) {
+ var b = a && (a.ownerDocument || a).documentElement;
+ return b ? b.nodeName !== "HTML" : !1
+ }, h = bc.contains = s.contains ? function(a, b) {
+ var c = a.nodeType === 9 ? a.documentElement : a,
+ d = b && b.parentNode;
+ return a === d || !!(d && d.nodeType === 1 && c.contains && c.contains(d))
+ } : s.compareDocumentPosition ? function(a, b) {
+ return b && !!(a.compareDocumentPosition(b) & 16)
+ } : function(a, b) {
+ while (b = b.parentNode)
+ if (b === a) return !0;
+ return !1
+ }, bc.attr = function(a, b) {
+ var c, d = g(a);
+ return d || (b = b.toLowerCase()), (c = e.attrHandle[b]) ? c(a) : d || $ ? a.getAttribute(b) : (c = a.getAttributeNode(b), c ? typeof a[b] == "boolean" ? a[b] ? b : null : c.specified ? c.value : null : null)
+ }, e = bc.selectors = {
+ cacheLength: 50,
+ createPseudo: z,
+ match: W,
+ attrHandle: Z ? {} : {
+ href: function(a) {
+ return a.getAttribute("href", 2)
+ },
+ type: function(a) {
+ return a.getAttribute("type")
+ }
+ },
+ find: {
+ ID: d ? function(a, b, c) {
+ if (typeof b.getElementById !== n && !c) {
+ var d = b.getElementById(a);
+ return d && d.parentNode ? [d] : []
+ }
+ } : function(a, c, d) {
+ if (typeof c.getElementById !== n && !d) {
+ var e = c.getElementById(a);
+ return e ? e.id === a || typeof e.getAttributeNode !== n && e.getAttributeNode("id").value === a ? [e] : b : []
+ }
+ },
+ TAG: Y ? function(a, b) {
+ if (typeof b.getElementsByTagName !== n) return b.getElementsByTagName(a)
+ } : function(a, b) {
+ var c = b.getElementsByTagName(a);
+ if (a === "*") {
+ var d, e = [],
+ f = 0;
+ for (; d = c[f]; f++) d.nodeType === 1 && e.push(d);
+ return e
+ }
+ return c
+ },
+ NAME: ba && function(a, b) {
+ if (typeof b.getElementsByName !== n) return b.getElementsByName(name)
+ },
+ CLASS: _ && function(a, b, c) {
+ if (typeof b.getElementsByClassName !== n && !c) return b.getElementsByClassName(a)
+ }
+ },
+ relative: {
+ ">": {
+ dir: "parentNode",
+ first: !0
+ },
+ " ": {
+ dir: "parentNode"
+ },
+ "+": {
+ dir: "previousSibling",
+ first: !0
+ },
+ "~": {
+ dir: "previousSibling"
+ }
+ },
+ preFilter: {
+ ATTR: function(a) {
+ return a[1] = a[1].replace(V, ""), a[3] = (a[4] || a[5] || "").replace(V, ""), a[2] === "~=" && (a[3] = " " + a[3] + " "), a.slice(0, 4)
+ },
+ CHILD: function(a) {
+ return a[1] = a[1].toLowerCase(), a[1] === "nth" ? (a[2] || bc.error(a[0]), a[3] = +(a[3] ? a[4] + (a[5] || 1) : 2 * (a[2] === "even" || a[2] === "odd")), a[4] = +(a[6] + a[7] || a[2] === "odd")) : a[2] && bc.error(a[0]), a
+ },
+ PSEUDO: function(a) {
+ var b, c;
+ if (W.CHILD.test(a[0])) return null;
+ if (a[3]) a[2] = a[3];
+ else if (b = a[4]) O.test(b) && (c = bh(b, !0)) && (c = b.indexOf(")", b.length - c) - b.length) && (b = b.slice(0, c), a[0] = a[0].slice(0, c)), a[2] = b;
+ return a.slice(0, 3)
+ }
+ },
+ filter: {
+ ID: d ? function(a) {
+ return a = a.replace(V, ""),
+ function(b) {
+ return b.getAttribute("id") === a
+ }
+ } : function(a) {
+ return a = a.replace(V, ""),
+ function(b) {
+ var c = typeof b.getAttributeNode !== n && b.getAttributeNode("id");
+ return c && c.value === a
+ }
+ },
+ TAG: function(a) {
+ return a === "*" ? function() {
+ return !0
+ } : (a = a.replace(V, "").toLowerCase(), function(b) {
+ return b.nodeName && b.nodeName.toLowerCase() === a
+ })
+ },
+ CLASS: function(a) {
+ var b = B[o][a];
+ return b || (b = B(a, new RegExp("(^|" + E + ")" + a + "(" + E + "|$)"))),
+ function(a) {
+ return b.test(a.className || typeof a.getAttribute !== n && a.getAttribute("class") || "")
+ }
+ },
+ ATTR: function(a, b, c) {
+ return function(d, e) {
+ var f = bc.attr(d, a);
+ return f == null ? b === "!=" : b ? (f += "", b === "=" ? f === c : b === "!=" ? f !== c : b === "^=" ? c && f.indexOf(c) === 0 : b === "*=" ? c && f.indexOf(c) > -1 : b === "$=" ? c && f.substr(f.length - c.length) === c : b === "~=" ? (" " + f + " ").indexOf(c) > -1 : b === "|=" ? f === c || f.substr(0, c.length + 1) === c + "-" : !1) : !0
+ }
+ },
+ CHILD: function(a, b, c, d) {
+ return a === "nth" ? function(a) {
+ var b, e, f = a.parentNode;
+ if (c === 1 && d === 0) return !0;
+ if (f) {
+ e = 0;
+ for (b = f.firstChild; b; b = b.nextSibling)
+ if (b.nodeType === 1) {
+ e++;
+ if (a === b) break
+ }
+ }
+ return e -= d, e === c || e % c === 0 && e / c >= 0
+ } : function(b) {
+ var c = b;
+ switch (a) {
+ case "only":
+ case "first":
+ while (c = c.previousSibling)
+ if (c.nodeType === 1) return !1;
+ if (a === "first") return !0;
+ c = b;
+ case "last":
+ while (c = c.nextSibling)
+ if (c.nodeType === 1) return !1;
+ return !0
+ }
+ }
+ },
+ PSEUDO: function(a, b) {
+ var c, d = e.pseudos[a] || e.setFilters[a.toLowerCase()] || bc.error("unsupported pseudo: " + a);
+ return d[o] ? d(b) : d.length > 1 ? (c = [a, a, "", b], e.setFilters.hasOwnProperty(a.toLowerCase()) ? z(function(a, c) {
+ var e, f = d(a, b),
+ g = f.length;
+ while (g--) e = y.call(a, f[g]), a[e] = !(c[e] = f[g])
+ }) : function(a) {
+ return d(a, 0, c)
+ }) : d
+ }
+ },
+ pseudos: {
+ not: z(function(a) {
+ var b = [],
+ c = [],
+ d = i(a.replace(L, "$1"));
+ return d[o] ? z(function(a, b, c, e) {
+ var f, g = d(a, null, e, []),
+ h = a.length;
+ while (h--)
+ if (f = g[h]) a[h] = !(b[h] = f)
+ }) : function(a, e, f) {
+ return b[0] = a, d(b, null, f, c), !c.pop()
+ }
+ }),
+ has: z(function(a) {
+ return function(b) {
+ return bc(a, b).length > 0
+ }
+ }),
+ contains: z(function(a) {
+ return function(b) {
+ return (b.textContent || b.innerText || f(b)).indexOf(a) > -1
+ }
+ }),
+ enabled: function(a) {
+ return a.disabled === !1
+ },
+ disabled: function(a) {
+ return a.disabled === !0
+ },
+ checked: function(a) {
+ var b = a.nodeName.toLowerCase();
+ return b === "input" && !!a.checked || b === "option" && !!a.selected
+ },
+ selected: function(a) {
+ return a.parentNode && a.parentNode.selectedIndex, a.selected === !0
+ },
+ parent: function(a) {
+ return !e.pseudos.empty(a)
+ },
+ empty: function(a) {
+ var b;
+ a = a.firstChild;
+ while (a) {
+ if (a.nodeName > "@" || (b = a.nodeType) === 3 || b === 4) return !1;
+ a = a.nextSibling
+ }
+ return !0
+ },
+ header: function(a) {
+ return T.test(a.nodeName)
+ },
+ text: function(a) {
+ var b, c;
+ return a.nodeName.toLowerCase() === "input" && (b = a.type) === "text" && ((c = a.getAttribute("type")) == null || c.toLowerCase() === b)
+ },
+ radio: bd("radio"),
+ checkbox: bd("checkbox"),
+ file: bd("file"),
+ password: bd("password"),
+ image: bd("image"),
+ submit: be("submit"),
+ reset: be("reset"),
+ button: function(a) {
+ var b = a.nodeName.toLowerCase();
+ return b === "input" && a.type === "button" || b === "button"
+ },
+ input: function(a) {
+ return U.test(a.nodeName)
+ },
+ focus: function(a) {
+ var b = a.ownerDocument;
+ return a === b.activeElement && (!b.hasFocus || b.hasFocus()) && (!!a.type || !!a.href)
+ },
+ active: function(a) {
+ return a === a.ownerDocument.activeElement
+ },
+ first: bf(function(a, b, c) {
+ return [0]
+ }),
+ last: bf(function(a, b, c) {
+ return [b - 1]
+ }),
+ eq: bf(function(a, b, c) {
+ return [c < 0 ? c + b : c]
+ }),
+ even: bf(function(a, b, c) {
+ for (var d = 0; d < b; d += 2) a.push(d);
+ return a
+ }),
+ odd: bf(function(a, b, c) {
+ for (var d = 1; d < b; d += 2) a.push(d);
+ return a
+ }),
+ lt: bf(function(a, b, c) {
+ for (var d = c < 0 ? c + b : c; --d >= 0;) a.push(d);
+ return a
+ }),
+ gt: bf(function(a, b, c) {
+ for (var d = c < 0 ? c + b : c; ++d < b;) a.push(d);
+ return a
+ })
+ }
+ }, j = s.compareDocumentPosition ? function(a, b) {
+ return a === b ? (k = !0, 0) : (!a.compareDocumentPosition || !b.compareDocumentPosition ? a.compareDocumentPosition : a.compareDocumentPosition(b) & 4) ? -1 : 1
+ } : function(a, b) {
+ if (a === b) return k = !0, 0;
+ if (a.sourceIndex && b.sourceIndex) return a.sourceIndex - b.sourceIndex;
+ var c, d, e = [],
+ f = [],
+ g = a.parentNode,
+ h = b.parentNode,
+ i = g;
+ if (g === h) return bg(a, b);
+ if (!g) return -1;
+ if (!h) return 1;
+ while (i) e.unshift(i), i = i.parentNode;
+ i = h;
+ while (i) f.unshift(i), i = i.parentNode;
+ c = e.length, d = f.length;
+ for (var j = 0; j < c && j < d; j++)
+ if (e[j] !== f[j]) return bg(e[j], f[j]);
+ return j === c ? bg(a, f[j], -1) : bg(e[j], b, 1)
+ }, [0, 0].sort(j), m = !k, bc.uniqueSort = function(a) {
+ var b, c = 1;
+ k = m, a.sort(j);
+ if (k)
+ for (; b = a[c]; c++) b === a[c - 1] && a.splice(c--, 1);
+ return a
+ }, bc.error = function(a) {
+ throw new Error("Syntax error, unrecognized expression: " + a)
+ }, i = bc.compile = function(a, b) {
+ var c, d = [],
+ e = [],
+ f = D[o][a];
+ if (!f) {
+ b || (b = bh(a)), c = b.length;
+ while (c--) f = bm(b[c]), f[o] ? d.push(f) : e.push(f);
+ f = D(a, bn(e, d))
+ }
+ return f
+ }, r.querySelectorAll && function() {
+ var a, b = bp,
+ c = /'|\\/g,
+ d = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,
+ e = [":focus"],
+ f = [":active", ":focus"],
+ h = s.matchesSelector || s.mozMatchesSelector || s.webkitMatchesSelector || s.oMatchesSelector || s.msMatchesSelector;
+ X(function(a) {
+ a.innerHTML = "", a.querySelectorAll("[selected]").length || e.push("\\[" + E + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)"), a.querySelectorAll(":checked").length || e.push(":checked")
+ }), X(function(a) {
+ a.innerHTML = "", a.querySelectorAll("[test^='']").length && e.push("[*^$]=" + E + "*(?:\"\"|'')"), a.innerHTML = "", a.querySelectorAll(":enabled").length || e.push(":enabled", ":disabled")
+ }), e = new RegExp(e.join("|")), bp = function(a, d, f, g, h) {
+ if (!g && !h && (!e || !e.test(a))) {
+ var i, j, k = !0,
+ l = o,
+ m = d,
+ n = d.nodeType === 9 && a;
+ if (d.nodeType === 1 && d.nodeName.toLowerCase() !== "object") {
+ i = bh(a), (k = d.getAttribute("id")) ? l = k.replace(c, "\\$&") : d.setAttribute("id", l), l = "[id='" + l + "'] ", j = i.length;
+ while (j--) i[j] = l + i[j].join("");
+ m = R.test(a) && d.parentNode || d, n = i.join(",")
+ }
+ if (n) try {
+ return w.apply(f, x.call(m.querySelectorAll(n), 0)), f
+ } catch (p) {} finally {
+ k || d.removeAttribute("id")
+ }
+ }
+ return b(a, d, f, g, h)
+ }, h && (X(function(b) {
+ a = h.call(b, "div");
+ try {
+ h.call(b, "[test!='']:sizzle"), f.push("!=", J)
+ } catch (c) {}
+ }), f = new RegExp(f.join("|")), bc.matchesSelector = function(b, c) {
+ c = c.replace(d, "='$1']");
+ if (!g(b) && !f.test(c) && (!e || !e.test(c))) try {
+ var i = h.call(b, c);
+ if (i || a || b.document && b.document.nodeType !== 11) return i
+ } catch (j) {}
+ return bc(c, null, null, [b]).length > 0
+ })
+ }(), e.pseudos.nth = e.pseudos.eq, e.filters = bq.prototype = e.pseudos, e.setFilters = new bq, bc.attr = p.attr, p.find = bc, p.expr = bc.selectors, p.expr[":"] = p.expr.pseudos, p.unique = bc.uniqueSort, p.text = bc.getText, p.isXMLDoc = bc.isXML, p.contains = bc.contains
+ }(a);
+ var bc = /Until$/,
+ bd = /^(?:parents|prev(?:Until|All))/,
+ be = /^.[^:#\[\.,]*$/,
+ bf = p.expr.match.needsContext,
+ bg = {
+ children: !0,
+ contents: !0,
+ next: !0,
+ prev: !0
+ };
+ p.fn.extend({
+ find: function(a) {
+ var b, c, d, e, f, g, h = this;
+ if (typeof a != "string") return p(a).filter(function() {
+ for (b = 0, c = h.length; b < c; b++)
+ if (p.contains(h[b], this)) return !0
+ });
+ g = this.pushStack("", "find", a);
+ for (b = 0, c = this.length; b < c; b++) {
+ d = g.length, p.find(a, this[b], g);
+ if (b > 0)
+ for (e = d; e < g.length; e++)
+ for (f = 0; f < d; f++)
+ if (g[f] === g[e]) {
+ g.splice(e--, 1);
+ break
+ }
+ }
+ return g
+ },
+ has: function(a) {
+ var b, c = p(a, this),
+ d = c.length;
+ return this.filter(function() {
+ for (b = 0; b < d; b++)
+ if (p.contains(this, c[b])) return !0
+ })
+ },
+ not: function(a) {
+ return this.pushStack(bj(this, a, !1), "not", a)
+ },
+ filter: function(a) {
+ return this.pushStack(bj(this, a, !0), "filter", a)
+ },
+ is: function(a) {
+ return !!a && (typeof a == "string" ? bf.test(a) ? p(a, this.context).index(this[0]) >= 0 : p.filter(a, this).length > 0 : this.filter(a).length > 0)
+ },
+ closest: function(a, b) {
+ var c, d = 0,
+ e = this.length,
+ f = [],
+ g = bf.test(a) || typeof a != "string" ? p(a, b || this.context) : 0;
+ for (; d < e; d++) {
+ c = this[d];
+ while (c && c.ownerDocument && c !== b && c.nodeType !== 11) {
+ if (g ? g.index(c) > -1 : p.find.matchesSelector(c, a)) {
+ f.push(c);
+ break
+ }
+ c = c.parentNode
+ }
+ }
+ return f = f.length > 1 ? p.unique(f) : f, this.pushStack(f, "closest", a)
+ },
+ index: function(a) {
+ return a ? typeof a == "string" ? p.inArray(this[0], p(a)) : p.inArray(a.jquery ? a[0] : a, this) : this[0] && this[0].parentNode ? this.prevAll().length : -1
+ },
+ add: function(a, b) {
+ var c = typeof a == "string" ? p(a, b) : p.makeArray(a && a.nodeType ? [a] : a),
+ d = p.merge(this.get(), c);
+ return this.pushStack(bh(c[0]) || bh(d[0]) ? d : p.unique(d))
+ },
+ addBack: function(a) {
+ return this.add(a == null ? this.prevObject : this.prevObject.filter(a))
+ }
+ }), p.fn.andSelf = p.fn.addBack, p.each({
+ parent: function(a) {
+ var b = a.parentNode;
+ return b && b.nodeType !== 11 ? b : null
+ },
+ parents: function(a) {
+ return p.dir(a, "parentNode")
+ },
+ parentsUntil: function(a, b, c) {
+ return p.dir(a, "parentNode", c)
+ },
+ next: function(a) {
+ return bi(a, "nextSibling")
+ },
+ prev: function(a) {
+ return bi(a, "previousSibling")
+ },
+ nextAll: function(a) {
+ return p.dir(a, "nextSibling")
+ },
+ prevAll: function(a) {
+ return p.dir(a, "previousSibling")
+ },
+ nextUntil: function(a, b, c) {
+ return p.dir(a, "nextSibling", c)
+ },
+ prevUntil: function(a, b, c) {
+ return p.dir(a, "previousSibling", c)
+ },
+ siblings: function(a) {
+ return p.sibling((a.parentNode || {}).firstChild, a)
+ },
+ children: function(a) {
+ return p.sibling(a.firstChild)
+ },
+ contents: function(a) {
+ return p.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : p.merge([], a.childNodes)
+ }
+ }, function(a, b) {
+ p.fn[a] = function(c, d) {
+ var e = p.map(this, b, c);
+ return bc.test(a) || (d = c), d && typeof d == "string" && (e = p.filter(d, e)), e = this.length > 1 && !bg[a] ? p.unique(e) : e, this.length > 1 && bd.test(a) && (e = e.reverse()), this.pushStack(e, a, k.call(arguments).join(","))
+ }
+ }), p.extend({
+ filter: function(a, b, c) {
+ return c && (a = ":not(" + a + ")"), b.length === 1 ? p.find.matchesSelector(b[0], a) ? [b[0]] : [] : p.find.matches(a, b)
+ },
+ dir: function(a, c, d) {
+ var e = [],
+ f = a[c];
+ while (f && f.nodeType !== 9 && (d === b || f.nodeType !== 1 || !p(f).is(d))) f.nodeType === 1 && e.push(f), f = f[c];
+ return e
+ },
+ sibling: function(a, b) {
+ var c = [];
+ for (; a; a = a.nextSibling) a.nodeType === 1 && a !== b && c.push(a);
+ return c
+ }
+ });
+ var bl = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
+ bm = / jQuery\d+="(?:null|\d+)"/g,
+ bn = /^\s+/,
+ bo = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
+ bp = /<([\w:]+)/,
+ bq = /]", "i"),
+ bv = /^(?:checkbox|radio)$/,
+ bw = /checked\s*(?:[^=]|=\s*.checked.)/i,
+ bx = /\/(java|ecma)script/i,
+ by = /^\s*\s*$/g,
+ bz = {
+ option: [1, ""],
+ legend: [1, ""],
+ thead: [1, ""],
+ tr: [2, ""],
+ td: [3, ""],
+ col: [2, ""],
+ area: [1, ""],
+ _default: [0, "", ""]
+ },
+ bA = bk(e),
+ bB = bA.appendChild(e.createElement("div"));
+ bz.optgroup = bz.option, bz.tbody = bz.tfoot = bz.colgroup = bz.caption = bz.thead, bz.th = bz.td, p.support.htmlSerialize || (bz._default = [1, "X", "
"]), p.fn.extend({
+ text: function(a) {
+ return p.access(this, function(a) {
+ return a === b ? p.text(this) : this.empty().append((this[0] && this[0].ownerDocument || e).createTextNode(a))
+ }, null, a, arguments.length)
+ },
+ wrapAll: function(a) {
+ if (p.isFunction(a)) return this.each(function(b) {
+ p(this).wrapAll(a.call(this, b))
+ });
+ if (this[0]) {
+ var b = p(a, this[0].ownerDocument).eq(0).clone(!0);
+ this[0].parentNode && b.insertBefore(this[0]), b.map(function() {
+ var a = this;
+ while (a.firstChild && a.firstChild.nodeType === 1) a = a.firstChild;
+ return a
+ }).append(this)
+ }
+ return this
+ },
+ wrapInner: function(a) {
+ return p.isFunction(a) ? this.each(function(b) {
+ p(this).wrapInner(a.call(this, b))
+ }) : this.each(function() {
+ var b = p(this),
+ c = b.contents();
+ c.length ? c.wrapAll(a) : b.append(a)
+ })
+ },
+ wrap: function(a) {
+ var b = p.isFunction(a);
+ return this.each(function(c) {
+ p(this).wrapAll(b ? a.call(this, c) : a)
+ })
+ },
+ unwrap: function() {
+ return this.parent().each(function() {
+ p.nodeName(this, "body") || p(this).replaceWith(this.childNodes)
+ }).end()
+ },
+ append: function() {
+ return this.domManip(arguments, !0, function(a) {
+ (this.nodeType === 1 || this.nodeType === 11) && this.appendChild(a)
+ })
+ },
+ prepend: function() {
+ return this.domManip(arguments, !0, function(a) {
+ (this.nodeType === 1 || this.nodeType === 11) && this.insertBefore(a, this.firstChild)
+ })
+ },
+ before: function() {
+ if (!bh(this[0])) return this.domManip(arguments, !1, function(a) {
+ this.parentNode.insertBefore(a, this)
+ });
+ if (arguments.length) {
+ var a = p.clean(arguments);
+ return this.pushStack(p.merge(a, this), "before", this.selector)
+ }
+ },
+ after: function() {
+ if (!bh(this[0])) return this.domManip(arguments, !1, function(a) {
+ this.parentNode.insertBefore(a, this.nextSibling)
+ });
+ if (arguments.length) {
+ var a = p.clean(arguments);
+ return this.pushStack(p.merge(this, a), "after", this.selector)
+ }
+ },
+ remove: function(a, b) {
+ var c, d = 0;
+ for (;
+ (c = this[d]) != null; d++)
+ if (!a || p.filter(a, [c]).length) !b && c.nodeType === 1 && (p.cleanData(c.getElementsByTagName("*")), p.cleanData([c])), c.parentNode && c.parentNode.removeChild(c);
+ return this
+ },
+ empty: function() {
+ var a, b = 0;
+ for (;
+ (a = this[b]) != null; b++) {
+ a.nodeType === 1 && p.cleanData(a.getElementsByTagName("*"));
+ while (a.firstChild) a.removeChild(a.firstChild)
+ }
+ return this
+ },
+ clone: function(a, b) {
+ return a = a == null ? !1 : a, b = b == null ? a : b, this.map(function() {
+ return p.clone(this, a, b)
+ })
+ },
+ html: function(a) {
+ return p.access(this, function(a) {
+ var c = this[0] || {},
+ d = 0,
+ e = this.length;
+ if (a === b) return c.nodeType === 1 ? c.innerHTML.replace(bm, "") : b;
+ if (typeof a == "string" && !bs.test(a) && (p.support.htmlSerialize || !bu.test(a)) && (p.support.leadingWhitespace || !bn.test(a)) && !bz[(bp.exec(a) || ["", ""])[1].toLowerCase()]) {
+ a = a.replace(bo, "<$1>$2>");
+ try {
+ for (; d < e; d++) c = this[d] || {}, c.nodeType === 1 && (p.cleanData(c.getElementsByTagName("*")), c.innerHTML = a);
+ c = 0
+ } catch (f) {}
+ }
+ c && this.empty().append(a)
+ }, null, a, arguments.length)
+ },
+ replaceWith: function(a) {
+ return bh(this[0]) ? this.length ? this.pushStack(p(p.isFunction(a) ? a() : a), "replaceWith", a) : this : p.isFunction(a) ? this.each(function(b) {
+ var c = p(this),
+ d = c.html();
+ c.replaceWith(a.call(this, b, d))
+ }) : (typeof a != "string" && (a = p(a).detach()), this.each(function() {
+ var b = this.nextSibling,
+ c = this.parentNode;
+ p(this).remove(), b ? p(b).before(a) : p(c).append(a)
+ }))
+ },
+ detach: function(a) {
+ return this.remove(a, !0)
+ },
+ domManip: function(a, c, d) {
+ a = [].concat.apply([], a);
+ var e, f, g, h, i = 0,
+ j = a[0],
+ k = [],
+ l = this.length;
+ if (!p.support.checkClone && l > 1 && typeof j == "string" && bw.test(j)) return this.each(function() {
+ p(this).domManip(a, c, d)
+ });
+ if (p.isFunction(j)) return this.each(function(e) {
+ var f = p(this);
+ a[0] = j.call(this, e, c ? f.html() : b), f.domManip(a, c, d)
+ });
+ if (this[0]) {
+ e = p.buildFragment(a, this, k), g = e.fragment, f = g.firstChild, g.childNodes.length === 1 && (g = f);
+ if (f) {
+ c = c && p.nodeName(f, "tr");
+ for (h = e.cacheable || l - 1; i < l; i++) d.call(c && p.nodeName(this[i], "table") ? bC(this[i], "tbody") : this[i], i === h ? g : p.clone(g, !0, !0))
+ }
+ g = f = null, k.length && p.each(k, function(a, b) {
+ b.src ? p.ajax ? p.ajax({
+ url: b.src,
+ type: "GET",
+ dataType: "script",
+ async: !1,
+ global: !1,
+ "throws": !0
+ }) : p.error("no ajax") : p.globalEval((b.text || b.textContent || b.innerHTML || "").replace(by, "")), b.parentNode && b.parentNode.removeChild(b)
+ })
+ }
+ return this
+ }
+ }), p.buildFragment = function(a, c, d) {
+ var f, g, h, i = a[0];
+ return c = c || e, c = !c.nodeType && c[0] || c, c = c.ownerDocument || c, a.length === 1 && typeof i == "string" && i.length < 512 && c === e && i.charAt(0) === "<" && !bt.test(i) && (p.support.checkClone || !bw.test(i)) && (p.support.html5Clone || !bu.test(i)) && (g = !0, f = p.fragments[i], h = f !== b), f || (f = c.createDocumentFragment(), p.clean(a, c, f, d), g && (p.fragments[i] = h && f)), {
+ fragment: f,
+ cacheable: g
+ }
+ }, p.fragments = {}, p.each({
+ appendTo: "append",
+ prependTo: "prepend",
+ insertBefore: "before",
+ insertAfter: "after",
+ replaceAll: "replaceWith"
+ }, function(a, b) {
+ p.fn[a] = function(c) {
+ var d, e = 0,
+ f = [],
+ g = p(c),
+ h = g.length,
+ i = this.length === 1 && this[0].parentNode;
+ if ((i == null || i && i.nodeType === 11 && i.childNodes.length === 1) && h === 1) return g[b](this[0]), this;
+ for (; e < h; e++) d = (e > 0 ? this.clone(!0) : this).get(), p(g[e])[b](d), f = f.concat(d);
+ return this.pushStack(f, a, g.selector)
+ }
+ }), p.extend({
+ clone: function(a, b, c) {
+ var d, e, f, g;
+ p.support.html5Clone || p.isXMLDoc(a) || !bu.test("<" + a.nodeName + ">") ? g = a.cloneNode(!0) : (bB.innerHTML = a.outerHTML, bB.removeChild(g = bB.firstChild));
+ if ((!p.support.noCloneEvent || !p.support.noCloneChecked) && (a.nodeType === 1 || a.nodeType === 11) && !p.isXMLDoc(a)) {
+ bE(a, g), d = bF(a), e = bF(g);
+ for (f = 0; d[f]; ++f) e[f] && bE(d[f], e[f])
+ }
+ if (b) {
+ bD(a, g);
+ if (c) {
+ d = bF(a), e = bF(g);
+ for (f = 0; d[f]; ++f) bD(d[f], e[f])
+ }
+ }
+ return d = e = null, g
+ },
+ clean: function(a, b, c, d) {
+ var f, g, h, i, j, k, l, m, n, o, q, r, s = b === e && bA,
+ t = [];
+ if (!b || typeof b.createDocumentFragment == "undefined") b = e;
+ for (f = 0;
+ (h = a[f]) != null; f++) {
+ typeof h == "number" && (h += "");
+ if (!h) continue;
+ if (typeof h == "string")
+ if (!br.test(h)) h = b.createTextNode(h);
+ else {
+ s = s || bk(b), l = b.createElement("div"), s.appendChild(l), h = h.replace(bo, "<$1>$2>"), i = (bp.exec(h) || ["", ""])[1].toLowerCase(), j = bz[i] || bz._default, k = j[0], l.innerHTML = j[1] + h + j[2];
+ while (k--) l = l.lastChild;
+ if (!p.support.tbody) {
+ m = bq.test(h), n = i === "table" && !m ? l.firstChild && l.firstChild.childNodes : j[1] === "" && !m ? l.childNodes : [];
+ for (g = n.length - 1; g >= 0; --g) p.nodeName(n[g], "tbody") && !n[g].childNodes.length && n[g].parentNode.removeChild(n[g])
+ }!p.support.leadingWhitespace && bn.test(h) && l.insertBefore(b.createTextNode(bn.exec(h)[0]), l.firstChild), h = l.childNodes, l.parentNode.removeChild(l)
+ }
+ h.nodeType ? t.push(h) : p.merge(t, h)
+ }
+ l && (h = l = s = null);
+ if (!p.support.appendChecked)
+ for (f = 0;
+ (h = t[f]) != null; f++) p.nodeName(h, "input") ? bG(h) : typeof h.getElementsByTagName != "undefined" && p.grep(h.getElementsByTagName("input"), bG);
+ if (c) {
+ q = function(a) {
+ if (!a.type || bx.test(a.type)) return d ? d.push(a.parentNode ? a.parentNode.removeChild(a) : a) : c.appendChild(a)
+ };
+ for (f = 0;
+ (h = t[f]) != null; f++)
+ if (!p.nodeName(h, "script") || !q(h)) c.appendChild(h), typeof h.getElementsByTagName != "undefined" && (r = p.grep(p.merge([], h.getElementsByTagName("script")), q), t.splice.apply(t, [f + 1, 0].concat(r)), f += r.length)
+ }
+ return t
+ },
+ cleanData: function(a, b) {
+ var c, d, e, f, g = 0,
+ h = p.expando,
+ i = p.cache,
+ j = p.support.deleteExpando,
+ k = p.event.special;
+ for (;
+ (e = a[g]) != null; g++)
+ if (b || p.acceptData(e)) {
+ d = e[h], c = d && i[d];
+ if (c) {
+ if (c.events)
+ for (f in c.events) k[f] ? p.event.remove(e, f) : p.removeEvent(e, f, c.handle);
+ i[d] && (delete i[d], j ? delete e[h] : e.removeAttribute ? e.removeAttribute(h) : e[h] = null, p.deletedIds.push(d))
+ }
+ }
+ }
+ }),
+ function() {
+ var a, b;
+ p.uaMatch = function(a) {
+ a = a.toLowerCase();
+ var b = /(chrome)[ \/]([\w.]+)/.exec(a) || /(webkit)[ \/]([\w.]+)/.exec(a) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a) || /(msie) ([\w.]+)/.exec(a) || a.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a) || [];
+ return {
+ browser: b[1] || "",
+ version: b[2] || "0"
+ }
+ }, a = p.uaMatch(g.userAgent), b = {}, a.browser && (b[a.browser] = !0, b.version = a.version), b.chrome ? b.webkit = !0 : b.webkit && (b.safari = !0), p.browser = b, p.sub = function() {
+ function a(b, c) {
+ return new a.fn.init(b, c)
+ }
+ p.extend(!0, a, this), a.superclass = this, a.fn = a.prototype = this(), a.fn.constructor = a, a.sub = this.sub, a.fn.init = function c(c, d) {
+ return d && d instanceof p && !(d instanceof a) && (d = a(d)), p.fn.init.call(this, c, d, b)
+ }, a.fn.init.prototype = a.fn;
+ var b = a(e);
+ return a
+ }
+ }();
+ var bH, bI, bJ, bK = /alpha\([^)]*\)/i,
+ bL = /opacity=([^)]*)/,
+ bM = /^(top|right|bottom|left)$/,
+ bN = /^(none|table(?!-c[ea]).+)/,
+ bO = /^margin/,
+ bP = new RegExp("^(" + q + ")(.*)$", "i"),
+ bQ = new RegExp("^(" + q + ")(?!px)[a-z%]+$", "i"),
+ bR = new RegExp("^([-+])=(" + q + ")", "i"),
+ bS = {},
+ bT = {
+ position: "absolute",
+ visibility: "hidden",
+ display: "block"
+ },
+ bU = {
+ letterSpacing: 0,
+ fontWeight: 400
+ },
+ bV = ["Top", "Right", "Bottom", "Left"],
+ bW = ["Webkit", "O", "Moz", "ms"],
+ bX = p.fn.toggle;
+ p.fn.extend({
+ css: function(a, c) {
+ return p.access(this, function(a, c, d) {
+ return d !== b ? p.style(a, c, d) : p.css(a, c)
+ }, a, c, arguments.length > 1)
+ },
+ show: function() {
+ return b$(this, !0)
+ },
+ hide: function() {
+ return b$(this)
+ },
+ toggle: function(a, b) {
+ var c = typeof a == "boolean";
+ return p.isFunction(a) && p.isFunction(b) ? bX.apply(this, arguments) : this.each(function() {
+ (c ? a : bZ(this)) ? p(this).show(): p(this).hide()
+ })
+ }
+ }), p.extend({
+ cssHooks: {
+ opacity: {
+ get: function(a, b) {
+ if (b) {
+ var c = bH(a, "opacity");
+ return c === "" ? "1" : c
+ }
+ }
+ }
+ },
+ cssNumber: {
+ fillOpacity: !0,
+ fontWeight: !0,
+ lineHeight: !0,
+ opacity: !0,
+ orphans: !0,
+ widows: !0,
+ zIndex: !0,
+ zoom: !0
+ },
+ cssProps: {
+ "float": p.support.cssFloat ? "cssFloat" : "styleFloat"
+ },
+ style: function(a, c, d, e) {
+ if (!a || a.nodeType === 3 || a.nodeType === 8 || !a.style) return;
+ var f, g, h, i = p.camelCase(c),
+ j = a.style;
+ c = p.cssProps[i] || (p.cssProps[i] = bY(j, i)), h = p.cssHooks[c] || p.cssHooks[i];
+ if (d === b) return h && "get" in h && (f = h.get(a, !1, e)) !== b ? f : j[c];
+ g = typeof d, g === "string" && (f = bR.exec(d)) && (d = (f[1] + 1) * f[2] + parseFloat(p.css(a, c)), g = "number");
+ if (d == null || g === "number" && isNaN(d)) return;
+ g === "number" && !p.cssNumber[i] && (d += "px");
+ if (!h || !("set" in h) || (d = h.set(a, d, e)) !== b) try {
+ j[c] = d
+ } catch (k) {}
+ },
+ css: function(a, c, d, e) {
+ var f, g, h, i = p.camelCase(c);
+ return c = p.cssProps[i] || (p.cssProps[i] = bY(a.style, i)), h = p.cssHooks[c] || p.cssHooks[i], h && "get" in h && (f = h.get(a, !0, e)), f === b && (f = bH(a, c)), f === "normal" && c in bU && (f = bU[c]), d || e !== b ? (g = parseFloat(f), d || p.isNumeric(g) ? g || 0 : f) : f
+ },
+ swap: function(a, b, c) {
+ var d, e, f = {};
+ for (e in b) f[e] = a.style[e], a.style[e] = b[e];
+ d = c.call(a);
+ for (e in b) a.style[e] = f[e];
+ return d
+ }
+ }), a.getComputedStyle ? bH = function(b, c) {
+ var d, e, f, g, h = a.getComputedStyle(b, null),
+ i = b.style;
+ return h && (d = h[c], d === "" && !p.contains(b.ownerDocument, b) && (d = p.style(b, c)), bQ.test(d) && bO.test(c) && (e = i.width, f = i.minWidth, g = i.maxWidth, i.minWidth = i.maxWidth = i.width = d, d = h.width, i.width = e, i.minWidth = f, i.maxWidth = g)), d
+ } : e.documentElement.currentStyle && (bH = function(a, b) {
+ var c, d, e = a.currentStyle && a.currentStyle[b],
+ f = a.style;
+ return e == null && f && f[b] && (e = f[b]), bQ.test(e) && !bM.test(b) && (c = f.left, d = a.runtimeStyle && a.runtimeStyle.left, d && (a.runtimeStyle.left = a.currentStyle.left), f.left = b === "fontSize" ? "1em" : e, e = f.pixelLeft + "px", f.left = c, d && (a.runtimeStyle.left = d)), e === "" ? "auto" : e
+ }), p.each(["height", "width"], function(a, b) {
+ p.cssHooks[b] = {
+ get: function(a, c, d) {
+ if (c) return a.offsetWidth === 0 && bN.test(bH(a, "display")) ? p.swap(a, bT, function() {
+ return cb(a, b, d)
+ }) : cb(a, b, d)
+ },
+ set: function(a, c, d) {
+ return b_(a, c, d ? ca(a, b, d, p.support.boxSizing && p.css(a, "boxSizing") === "border-box") : 0)
+ }
+ }
+ }), p.support.opacity || (p.cssHooks.opacity = {
+ get: function(a, b) {
+ return bL.test((b && a.currentStyle ? a.currentStyle.filter : a.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : b ? "1" : ""
+ },
+ set: function(a, b) {
+ var c = a.style,
+ d = a.currentStyle,
+ e = p.isNumeric(b) ? "alpha(opacity=" + b * 100 + ")" : "",
+ f = d && d.filter || c.filter || "";
+ c.zoom = 1;
+ if (b >= 1 && p.trim(f.replace(bK, "")) === "" && c.removeAttribute) {
+ c.removeAttribute("filter");
+ if (d && !d.filter) return
+ }
+ c.filter = bK.test(f) ? f.replace(bK, e) : f + " " + e
+ }
+ }), p(function() {
+ p.support.reliableMarginRight || (p.cssHooks.marginRight = {
+ get: function(a, b) {
+ return p.swap(a, {
+ display: "inline-block"
+ }, function() {
+ if (b) return bH(a, "marginRight")
+ })
+ }
+ }), !p.support.pixelPosition && p.fn.position && p.each(["top", "left"], function(a, b) {
+ p.cssHooks[b] = {
+ get: function(a, c) {
+ if (c) {
+ var d = bH(a, b);
+ return bQ.test(d) ? p(a).position()[b] + "px" : d
+ }
+ }
+ }
+ })
+ }), p.expr && p.expr.filters && (p.expr.filters.hidden = function(a) {
+ return a.offsetWidth === 0 && a.offsetHeight === 0 || !p.support.reliableHiddenOffsets && (a.style && a.style.display || bH(a, "display")) === "none"
+ }, p.expr.filters.visible = function(a) {
+ return !p.expr.filters.hidden(a)
+ }), p.each({
+ margin: "",
+ padding: "",
+ border: "Width"
+ }, function(a, b) {
+ p.cssHooks[a + b] = {
+ expand: function(c) {
+ var d, e = typeof c == "string" ? c.split(" ") : [c],
+ f = {};
+ for (d = 0; d < 4; d++) f[a + bV[d] + b] = e[d] || e[d - 2] || e[0];
+ return f
+ }
+ }, bO.test(a) || (p.cssHooks[a + b].set = b_)
+ });
+ var cd = /%20/g,
+ ce = /\[\]$/,
+ cf = /\r?\n/g,
+ cg = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
+ ch = /^(?:select|textarea)/i;
+ p.fn.extend({
+ serialize: function() {
+ return p.param(this.serializeArray())
+ },
+ serializeArray: function() {
+ return this.map(function() {
+ return this.elements ? p.makeArray(this.elements) : this
+ }).filter(function() {
+ return this.name && !this.disabled && (this.checked || ch.test(this.nodeName) || cg.test(this.type))
+ }).map(function(a, b) {
+ var c = p(this).val();
+ return c == null ? null : p.isArray(c) ? p.map(c, function(a, c) {
+ return {
+ name: b.name,
+ value: a.replace(cf, "\r\n")
+ }
+ }) : {
+ name: b.name,
+ value: c.replace(cf, "\r\n")
+ }
+ }).get()
+ }
+ }), p.param = function(a, c) {
+ var d, e = [],
+ f = function(a, b) {
+ b = p.isFunction(b) ? b() : b == null ? "" : b, e[e.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b)
+ };
+ c === b && (c = p.ajaxSettings && p.ajaxSettings.traditional);
+ if (p.isArray(a) || a.jquery && !p.isPlainObject(a)) p.each(a, function() {
+ f(this.name, this.value)
+ });
+ else
+ for (d in a) ci(d, a[d], c, f);
+ return e.join("&").replace(cd, "+")
+ };
+ var cj, ck, cl = /#.*$/,
+ cm = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg,
+ cn = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
+ co = /^(?:GET|HEAD)$/,
+ cp = /^\/\//,
+ cq = /\?/,
+ cr = /