// Generated by Construct 2, the HTML5 game and app creator :: http://www.scirra.com
'use strict';
var aa, ca, da, ea, fa, ha, ia, ja, ma, na, pa, qa, ra, sa, ta, ua, va, wa, xa, ya, za, Ba, Ca, B, Da, Ea, Fa, Ga, Ha, D, Ja, Ka, La, Ma, Na, Oa, Pa, Qa, Ra, Sa, Ta, Va, Wa, Xa, Ya, Za, $a, ab, eb, fb, gb, hb, ib, jb, kb, lb, mb, nb, ob, pb, qb, rb, sb, tb, ub, vb, wb, xb, Db, Eb, Fb, Gb, Hb, Ib, Jb, Kb, Lb, Mb, Nb, Ob, Qb, Rb, Sb, Tb, Ub, Vb, Wb, Xb, Yb, Zb, $b, ac, bc, cc, dc, ec, fc, hc, ic, jc, kc, lc, mc, nc, oc = {},
    pc = {};
"function" !== typeof Object.getPrototypeOf && (Object.getPrototypeOf = "object" === typeof "test".__proto__ ? function(g) {
    return g.__proto__
} : function(g) {
    return g.constructor.prototype
});
(function() {
    function g(a, e, b, k) {
        this.set(a, e, b, k)
    }

    function l() {
        this.Hb = this.Gb = this.Jb = this.Ib = this.Rb = this.Qb = this.rb = this.qb = 0
    }

    function p(a, e, b, k) {
        a < e ? b < k ? (q = a < b ? a : b, u = e > k ? e : k) : (q = a < k ? a : k, u = e > b ? e : b) : b < k ? (q = e < b ? e : b, u = a > k ? a : k) : (q = e < k ? e : k, u = a > b ? a : b)
    }

    function f() {
        this.items = this.lf = null;
        this.Mk = 0;
        H && (this.lf = new Set);
        this.Fj = [];
        this.vg = !0
    }

    function b(a) {
        y[I++] = a
    }

    function d() {
        this.ta = this.Zo = this.y = this.dk = 0
    }

    function c(a) {
        this.hb = [];
        this.Fm = this.Hm = this.Im = this.Gm = 0;
        this.Gl(a)
    }

    function a(a, e) {
        this.cc =
            a;
        this.oc = e;
        this.cells = {}
    }

    function n(a, e) {
        this.cc = a;
        this.oc = e;
        this.cells = {}
    }

    function h(a, e, b) {
        var k;
        return R.length ? (k = R.pop(), k.Sq = a, k.x = e, k.y = b, k) : new ca(a, e, b)
    }

    function e(a, e, b) {
        this.Sq = a;
        this.x = e;
        this.y = b;
        this.sc = new da
    }

    function t(a, e, b) {
        var k;
        return M.length ? (k = M.pop(), k.Sq = a, k.x = e, k.y = b, k) : new ea(a, e, b)
    }

    function x(a, e, b) {
        this.Sq = a;
        this.x = e;
        this.y = b;
        this.sc = [];
        this.Xi = !0;
        this.ff = new da;
        this.ak = !1
    }

    function m(a, e) {
        return a.Rd - e.Rd
    }
    fa = function(a) {
        window.console && window.console.log && window.console.log(a)
    };
    ha = function(a) {
        window.console && window.console.error && window.console.error(a)
    };
    aa = function(a) {
        return a
    };
    ia = function(a) {
        return "undefined" === typeof a
    };
    ja = function(a) {
        return "number" === typeof a
    };
    ma = function(a) {
        return "string" === typeof a
    };
    na = function(a) {
        return 0 < a && 0 === (a - 1 & a)
    };
    pa = function(a) {
        --a;
        for (var e = 1; 32 > e; e <<= 1) a = a | a >> e;
        return a + 1
    };
    qa = function(a) {
        return 0 > a ? -a : a
    };
    ra = function(a, e) {
        return a > e ? a : e
    };
    sa = function(a, e) {
        return a < e ? a : e
    };
    ta = Math.PI;
    ua = function(a) {
        return 0 <= a ? a | 0 : (a | 0) - 1
    };
    va = function(a) {
        var e =
            a | 0;
        return e === a ? e : e + 1
    };
    wa = function(a, e, b, k, n, m, h, t) {
        var c, d, r, f;
        a < b ? (d = a, c = b) : (d = b, c = a);
        n < h ? (f = n, r = h) : (f = h, r = n);
        if (c < f || d > r) return !1;
        e < k ? (d = e, c = k) : (d = k, c = e);
        m < t ? (f = m, r = t) : (f = t, r = m);
        if (c < f || d > r) return !1;
        c = n - a + h - b;
        d = m - e + t - k;
        a = b - a;
        e = k - e;
        n = h - n;
        m = t - m;
        t = qa(e * n - m * a);
        return qa(n * d - m * c) > t ? !1 : qa(a * d - e * c) <= t
    };
    g.prototype.set = function(a, e, b, k) {
        this.left = a;
        this.top = e;
        this.right = b;
        this.bottom = k
    };
    g.prototype.Di = function(a) {
        this.left = a.left;
        this.top = a.top;
        this.right = a.right;
        this.bottom = a.bottom
    };
    g.prototype.width =
        function() {
            return this.right - this.left
        };
    g.prototype.height = function() {
        return this.bottom - this.top
    };
    g.prototype.offset = function(a, e) {
        this.left += a;
        this.top += e;
        this.right += a;
        this.bottom += e;
        return this
    };
    g.prototype.normalize = function() {
        var a = 0;
        this.left > this.right && (a = this.left, this.left = this.right, this.right = a);
        this.top > this.bottom && (a = this.top, this.top = this.bottom, this.bottom = a)
    };
    g.prototype.dF = function(a) {
        return !(a.right < this.left || a.bottom < this.top || a.left > this.right || a.top > this.bottom)
    };
    g.prototype.eF =
        function(a, e, b) {
            return !(a.right + e < this.left || a.bottom + b < this.top || a.left + e > this.right || a.top + b > this.bottom)
        };
    g.prototype.wc = function(a, e) {
        return a >= this.left && a <= this.right && e >= this.top && e <= this.bottom
    };
    g.prototype.nk = function(a) {
        return this.left === a.left && this.top === a.top && this.right === a.right && this.bottom === a.bottom
    };
    xa = g;
    l.prototype.Fl = function(a) {
        this.qb = a.left;
        this.rb = a.top;
        this.Qb = a.right;
        this.Rb = a.top;
        this.Ib = a.right;
        this.Jb = a.bottom;
        this.Gb = a.left;
        this.Hb = a.bottom
    };
    l.prototype.Hx = function(a,
        e) {
        if (0 === e) this.Fl(a);
        else {
            var b = Math.sin(e),
                k = Math.cos(e),
                n = a.left * b,
                m = a.top * b,
                h = a.right * b,
                b = a.bottom * b,
                c = a.left * k,
                t = a.top * k,
                d = a.right * k,
                k = a.bottom * k;
            this.qb = c - m;
            this.rb = t + n;
            this.Qb = d - m;
            this.Rb = t + h;
            this.Ib = d - b;
            this.Jb = k + h;
            this.Gb = c - b;
            this.Hb = k + n
        }
    };
    l.prototype.offset = function(a, e) {
        this.qb += a;
        this.rb += e;
        this.Qb += a;
        this.Rb += e;
        this.Ib += a;
        this.Jb += e;
        this.Gb += a;
        this.Hb += e;
        return this
    };
    var q = 0,
        u = 0;
    l.prototype.Nu = function(a) {
        p(this.qb, this.Qb, this.Ib, this.Gb);
        a.left = q;
        a.right = u;
        p(this.rb, this.Rb, this.Jb,
            this.Hb);
        a.top = q;
        a.bottom = u
    };
    l.prototype.wc = function(a, e) {
        var b = this.qb,
            k = this.rb,
            n = this.Qb - b,
            m = this.Rb - k,
            h = this.Ib - b,
            c = this.Jb - k,
            t = a - b,
            d = e - k,
            r = n * n + m * m,
            f = n * h + m * c,
            m = n * t + m * d,
            v = h * h + c * c,
            q = h * t + c * d,
            w = 1 / (r * v - f * f),
            n = (v * m - f * q) * w,
            r = (r * q - f * m) * w;
        if (0 <= n && 0 < r && 1 > n + r) return !0;
        n = this.Gb - b;
        m = this.Hb - k;
        r = n * n + m * m;
        f = n * h + m * c;
        m = n * t + m * d;
        w = 1 / (r * v - f * f);
        n = (v * m - f * q) * w;
        r = (r * q - f * m) * w;
        return 0 <= n && 0 < r && 1 > n + r
    };
    l.prototype.Td = function(a, e) {
        if (e) switch (a) {
            case 0:
                return this.qb;
            case 1:
                return this.Qb;
            case 2:
                return this.Ib;
            case 3:
                return this.Gb;
            case 4:
                return this.qb;
            default:
                return this.qb
        } else switch (a) {
            case 0:
                return this.rb;
            case 1:
                return this.Rb;
            case 2:
                return this.Jb;
            case 3:
                return this.Hb;
            case 4:
                return this.rb;
            default:
                return this.rb
        }
    };
    l.prototype.yw = function() {
        return (this.qb + this.Qb + this.Ib + this.Gb) / 4
    };
    l.prototype.zw = function() {
        return (this.rb + this.Rb + this.Jb + this.Hb) / 4
    };
    l.prototype.Nv = function(a) {
        var e = a.yw(),
            b = a.zw();
        if (this.wc(e, b)) return !0;
        e = this.yw();
        b = this.zw();
        if (a.wc(e, b)) return !0;
        var k, n, m, h, c, t, d, r;
        for (d = 0; 4 > d; d++)
            for (r = 0; 4 > r; r++)
                if (e =
                    this.Td(d, !0), b = this.Td(d, !1), k = this.Td(d + 1, !0), n = this.Td(d + 1, !1), m = a.Td(r, !0), h = a.Td(r, !1), c = a.Td(r + 1, !0), t = a.Td(r + 1, !1), wa(e, b, k, n, m, h, c, t)) return !0;
        return !1
    };
    ya = l;
    za = function(a, e) {
        for (var b in e) e.hasOwnProperty(b) && (a[b] = e[b]);
        return a
    };
    Ba = function(a, e) {
        var b, k;
        e = ua(e);
        if (!(0 > e || e >= a.length)) {
            b = e;
            for (k = a.length - 1; b < k; b++) a[b] = a[b + 1];
            Ca(a, k)
        }
    };
    Ca = function(a, e) {
        a.length = e
    };
    B = function(a) {
        Ca(a, 0)
    };
    Da = function(a, e) {
        B(a);
        var b, k;
        b = 0;
        for (k = e.length; b < k; ++b) a[b] = e[b]
    };
    Ea = function(a, e) {
        a.push.apply(a,
            e)
    };
    Fa = function(a, e) {
        var b, k;
        b = 0;
        for (k = a.length; b < k; ++b)
            if (a[b] === e) return b;
        return -1
    };
    Ga = function(a, e) {
        var b = Fa(a, e); - 1 !== b && Ba(a, b)
    };
    Ha = function(a, e, b) {
        return a < e ? e : a > b ? b : a
    };
    D = function(a) {
        return a / (180 / ta)
    };
    Ja = function(a) {
        return 180 / ta * a
    };
    Ka = function(a) {
        a %= 360;
        0 > a && (a += 360);
        return a
    };
    La = function(a) {
        a %= 2 * ta;
        0 > a && (a += 2 * ta);
        return a
    };
    Ma = function(a) {
        return Ka(Ja(a))
    };
    Na = function(a) {
        return La(D(a))
    };
    Oa = function(a, e, b, k) {
        return Math.atan2(k - e, b - a)
    };
    Pa = function(a, e) {
        if (a === e) return 0;
        var b = Math.sin(a),
            k = Math.cos(a),
            n = Math.sin(e),
            m = Math.cos(e),
            b = b * n + k * m;
        return 1 <= b ? 0 : -1 >= b ? ta : Math.acos(b)
    };
    Qa = function(a, e, b) {
        var k = Math.sin(a),
            n = Math.cos(a),
            m = Math.sin(e),
            h = Math.cos(e);
        return Math.acos(k * m + n * h) > b ? 0 < n * m - k * h ? La(a + b) : La(a - b) : La(e)
    };
    Ra = function(a, e) {
        var b = Math.sin(a),
            k = Math.cos(a),
            n = Math.sin(e),
            m = Math.cos(e);
        return 0 >= k * n - b * m
    };
    Sa = function(a, e, b, k, n, m) {
        if (0 === b) return m ? a : e;
        var h = Math.sin(b);
        b = Math.cos(b);
        a -= k;
        e -= n;
        var c = a * h;
        a = a * b - e * h;
        e = e * b + c;
        return m ? a + k : e + n
    };
    Ta = function(a, e, b, k) {
        a = b - a;
        e = k - e;
        return Math.sqrt(a *
            a + e * e)
    };
    Va = function(a, e) {
        return !a !== !e
    };
    Wa = function(a, e, b) {
        return a + (e - a) * b
    };
    Xa = function(a, e, b) {
        return a === e ? 0 : (b - a) / (e - a)
    };
    Ya = function(a) {
        for (var e in a)
            if (a.hasOwnProperty(e)) return !0;
        return !1
    };
    Za = function(a) {
        for (var e in a) a.hasOwnProperty(e) && delete a[e]
    };
    var w = +new Date;
    $a = function() {
        if ("undefined" !== typeof window.performance) {
            var a = window.performance;
            if ("undefined" !== typeof a.now) return a.now();
            if ("undefined" !== typeof a.webkitNow) return a.webkitNow();
            if ("undefined" !== typeof a.mozNow) return a.mozNow();
            if ("undefined" !== typeof a.msNow) return a.msNow()
        }
        return Date.now() - w
    };
    var v = !1,
        k = v = !1,
        r = !1;
    "undefined" !== typeof window && (v = /chrome/i.test(navigator.userAgent) || /chromium/i.test(navigator.userAgent), v = !v && /safari/i.test(navigator.userAgent), k = /(iphone|ipod|ipad)/i.test(navigator.userAgent), r = window.c2ejecta);
    var H = !v && !r && !k && "undefined" !== typeof Set && "undefined" !== typeof Set.prototype.forEach;
    f.prototype.contains = function(a) {
        return this.Nf() ? !1 : H ? this.lf.has(a) : this.items && this.items.hasOwnProperty(a)
    };
    f.prototype.add = function(a) {
        if (H) this.lf.has(a) || (this.lf.add(a), this.vg = !1);
        else {
            var e = a.toString(),
                b = this.items;
            b ? b.hasOwnProperty(e) || (b[e] = a, this.Mk++, this.vg = !1) : (this.items = {}, this.items[e] = a, this.Mk = 1, this.vg = !1)
        }
    };
    f.prototype.remove = function(a) {
        if (!this.Nf())
            if (H) this.lf.has(a) && (this.lf["delete"](a), this.vg = !1);
            else if (this.items) {
            a = a.toString();
            var e = this.items;
            e.hasOwnProperty(a) && (delete e[a], this.Mk--, this.vg = !1)
        }
    };
    f.prototype.clear = function() {
        this.Nf() || (H ? this.lf.clear() : (this.items =
            null, this.Mk = 0), B(this.Fj), this.vg = !0)
    };
    f.prototype.Nf = function() {
        return 0 === this.count()
    };
    f.prototype.count = function() {
        return H ? this.lf.size : this.Mk
    };
    var y = null,
        I = 0;
    f.prototype.fH = function() {
        if (!this.vg) {
            if (H) B(this.Fj), y = this.Fj, I = 0, this.lf.forEach(b), y = null, I = 0;
            else {
                var a = this.Fj;
                B(a);
                var e, k = 0,
                    n = this.items;
                if (n)
                    for (e in n) n.hasOwnProperty(e) && (a[k++] = n[e])
            }
            this.vg = !0
        }
    };
    f.prototype.ig = function() {
        this.fH();
        return this.Fj
    };
    da = f;
    new da;
    ab = function(a, e) {
        H ? eb(a, e.lf) : fb(a, e.ig())
    };
    eb = function(a, e) {
        var b,
            k, n, m;
        k = b = 0;
        for (n = a.length; b < n; ++b) m = a[b], e.has(m) || (a[k++] = m);
        Ca(a, k)
    };
    fb = function(a, e) {
        var b, k, n, m;
        k = b = 0;
        for (n = a.length; b < n; ++b) m = a[b], -1 === Fa(e, m) && (a[k++] = m);
        Ca(a, k)
    };
    d.prototype.add = function(a) {
        this.y = a - this.dk;
        this.Zo = this.ta + this.y;
        this.dk = this.Zo - this.ta - this.y;
        this.ta = this.Zo
    };
    d.prototype.reset = function() {
        this.ta = this.Zo = this.y = this.dk = 0
    };
    gb = d;
    hb = function(a) {
        return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
    };
    c.prototype.Gl = function(a) {
        this.ox = a;
        this.Ad = a.length / 2;
        this.hb.length = a.length;
        this.Km = this.Lm = -1;
        this.Qu = 0
    };
    c.prototype.Ui = function() {
        return !this.ox.length
    };
    c.prototype.jb = function() {
        for (var a = this.hb, e = a[0], b = e, k = a[1], n = k, m, h, c = 1, t = this.Ad; c < t; ++c) h = 2 * c, m = a[h], h = a[h + 1], m < e && (e = m), m > b && (b = m), h < k && (k = h), h > n && (n = h);
        this.Gm = e;
        this.Hm = b;
        this.Im = k;
        this.Fm = n
    };
    c.prototype.Fl = function(a, e, b) {
        this.hb.length = 8;
        this.Ad = 4;
        var k = this.hb;
        k[0] = a.left - e;
        k[1] = a.top - b;
        k[2] = a.right - e;
        k[3] = a.top - b;
        k[4] = a.right - e;
        k[5] = a.bottom - b;
        k[6] = a.left - e;
        k[7] = a.bottom - b;
        this.Lm = a.right - a.left;
        this.Km = a.bottom -
            a.top;
        this.jb()
    };
    c.prototype.uj = function(a, e, b, k, n) {
        this.hb.length = 8;
        this.Ad = 4;
        var m = this.hb;
        m[0] = a.qb - e;
        m[1] = a.rb - b;
        m[2] = a.Qb - e;
        m[3] = a.Rb - b;
        m[4] = a.Ib - e;
        m[5] = a.Jb - b;
        m[6] = a.Gb - e;
        m[7] = a.Hb - b;
        this.Lm = k;
        this.Km = n;
        this.jb()
    };
    c.prototype.Gx = function(a) {
        this.Ad = a.Ad;
        Da(this.hb, a.hb);
        this.Gm = a.Gm;
        this.Im - a.Im;
        this.Hm = a.Hm;
        this.Fm = a.Fm
    };
    c.prototype.uh = function(a, e, b) {
        if (this.Lm !== a || this.Km !== e || this.Qu !== b) {
            this.Lm = a;
            this.Km = e;
            this.Qu = b;
            var k, n, m, h, c, t = 0,
                d = 1,
                r = this.ox,
                f = this.hb;
            0 !== b && (t = Math.sin(b), d = Math.cos(b));
            b = 0;
            for (m = this.Ad; b < m; b++) k = 2 * b, n = k + 1, h = r[k] * a, c = r[n] * e, f[k] = h * d - c * t, f[n] = c * d + h * t;
            this.jb()
        }
    };
    c.prototype.wc = function(a, e) {
        var b = this.hb;
        if (a === b[0] && e === b[1]) return !0;
        var k, n, m, h = this.Ad,
            c = this.Gm - 110,
            t = this.Im - 101,
            d = this.Hm + 131,
            r = this.Fm + 120,
            f, v, q = 0,
            w = 0;
        for (k = 0; k < h; k++) n = 2 * k, m = (k + 1) % h * 2, f = b[n], n = b[n + 1], v = b[m], m = b[m + 1], wa(c, t, a, e, f, n, v, m) && q++, wa(d, r, a, e, f, n, v, m) && w++;
        return 1 === q % 2 || 1 === w % 2
    };
    c.prototype.Bk = function(a, e, b) {
        var k = a.hb,
            n = this.hb;
        if (this.wc(k[0] + e, k[1] + b) || a.wc(n[0] - e, n[1] - b)) return !0;
        var m, h, c, t, d, r, f, v, q, w, u, x;
        m = 0;
        for (t = this.Ad; m < t; m++)
            for (h = 2 * m, c = (m + 1) % t * 2, v = n[h], h = n[h + 1], q = n[c], w = n[c + 1], c = 0, f = a.Ad; c < f; c++)
                if (d = 2 * c, r = (c + 1) % f * 2, u = k[d] + e, d = k[d + 1] + b, x = k[r] + e, r = k[r + 1] + b, wa(v, h, q, w, u, d, x, r)) return !0;
        return !1
    };
    c.prototype.IF = function(a) {
        var e, b, k;
        e = 0;
        for (b = this.Ad; e < b; ++e) k = 2 * e, this.hb[k] = 2 * a - this.hb[k]
    };
    c.prototype.pE = function(a) {
        var e, b, k;
        e = 0;
        for (b = this.Ad; e < b; ++e) k = 2 * e + 1, this.hb[k] = 2 * a - this.hb[k]
    };
    c.prototype.eD = function() {
        var a, e, b, k, n;
        a = 0;
        for (e = this.Ad; a < e; ++a) b = 2 * a, k = b + 1, n =
            this.hb[b], this.hb[b] = this.hb[k], this.hb[k] = n
    };
    ib = c;
    a.prototype.Jg = function(a, e, b) {
        var k;
        k = this.cells[a];
        return k ? (k = k[e]) ? k : b ? (k = h(this, a, e), this.cells[a][e] = k) : null : b ? (k = h(this, a, e), this.cells[a] = {}, this.cells[a][e] = k) : null
    };
    a.prototype.cd = function(a) {
        return ua(a / this.cc)
    };
    a.prototype.dd = function(a) {
        return ua(a / this.oc)
    };
    a.prototype.update = function(a, e, b) {
        var k, n, m, h, c;
        if (e)
            for (k = e.left, n = e.right; k <= n; ++k)
                for (m = e.top, h = e.bottom; m <= h; ++m)
                    if (!b || !b.wc(k, m))
                        if (c = this.Jg(k, m, !1)) c.remove(a), c.Nf() &&
                            (c.sc.clear(), 1E3 > R.length && R.push(c), this.cells[k][m] = null);
        if (b)
            for (k = b.left, n = b.right; k <= n; ++k)
                for (m = b.top, h = b.bottom; m <= h; ++m) e && e.wc(k, m) || this.Jg(k, m, !0).Zq(a)
    };
    a.prototype.Fo = function(a, e) {
        var b, k, n, m, h, c;
        b = this.cd(a.left);
        n = this.dd(a.top);
        k = this.cd(a.right);
        for (h = this.dd(a.bottom); b <= k; ++b)
            for (m = n; m <= h; ++m)(c = this.Jg(b, m, !1)) && c.dump(e)
    };
    jb = a;
    n.prototype.Jg = function(a, e, b) {
        var k;
        k = this.cells[a];
        return k ? (k = k[e]) ? k : b ? (k = t(this, a, e), this.cells[a][e] = k) : null : b ? (k = t(this, a, e), this.cells[a] = {},
            this.cells[a][e] = k) : null
    };
    n.prototype.cd = function(a) {
        return ua(a / this.cc)
    };
    n.prototype.dd = function(a) {
        return ua(a / this.oc)
    };
    n.prototype.update = function(a, e, b) {
        var k, n, m, h, c;
        if (e)
            for (k = e.left, n = e.right; k <= n; ++k)
                for (m = e.top, h = e.bottom; m <= h; ++m)
                    if (!b || !b.wc(k, m))
                        if (c = this.Jg(k, m, !1)) c.remove(a), c.Nf() && (c.reset(), 1E3 > M.length && M.push(c), this.cells[k][m] = null);
        if (b)
            for (k = b.left, n = b.right; k <= n; ++k)
                for (m = b.top, h = b.bottom; m <= h; ++m) e && e.wc(k, m) || this.Jg(k, m, !0).Zq(a)
    };
    n.prototype.Fo = function(a, e, b, k, n) {
        var m,
            h;
        a = this.cd(a);
        e = this.dd(e);
        b = this.cd(b);
        for (m = this.dd(k); a <= b; ++a)
            for (k = e; k <= m; ++k)(h = this.Jg(a, k, !1)) && h.dump(n)
    };
    n.prototype.FF = function(a) {
        var e, b, k, n, m;
        e = a.left;
        k = a.top;
        b = a.right;
        for (n = a.bottom; e <= b; ++e)
            for (a = k; a <= n; ++a)
                if (m = this.Jg(e, a, !1)) m.Xi = !1
    };
    kb = n;
    var R = [];
    e.prototype.Nf = function() {
        return this.sc.Nf()
    };
    e.prototype.Zq = function(a) {
        this.sc.add(a)
    };
    e.prototype.remove = function(a) {
        this.sc.remove(a)
    };
    e.prototype.dump = function(a) {
        Ea(a, this.sc.ig())
    };
    ca = e;
    var M = [];
    x.prototype.Nf = function() {
        if (!this.sc.length) return !0;
        if (this.sc.length > this.ff.count()) return !1;
        this.Eq();
        return !0
    };
    x.prototype.Zq = function(a) {
        this.ff.contains(a) ? (this.ff.remove(a), this.ff.Nf() && (this.ak = !1)) : this.sc.length ? (this.sc[this.sc.length - 1].Xe() > a.Xe() && (this.Xi = !1), this.sc.push(a)) : (this.sc.push(a), this.Xi = !0)
    };
    x.prototype.remove = function(a) {
        this.ff.add(a);
        this.ak = !0;
        30 <= this.ff.count() && this.Eq()
    };
    x.prototype.Eq = function() {
        this.ak && (this.ff.count() === this.sc.length ? this.reset() : (ab(this.sc, this.ff), this.ff.clear(), this.ak = !1))
    };
    x.prototype.ID =
        function() {
            this.Xi || (this.sc.sort(m), this.Xi = !0)
        };
    x.prototype.reset = function() {
        B(this.sc);
        this.Xi = !0;
        this.ff.clear();
        this.ak = !1
    };
    x.prototype.dump = function(a) {
        this.Eq();
        this.ID();
        this.sc.length && a.push(this.sc)
    };
    ea = x;
    var G = "lighter xor copy destination-over source-in destination-in source-out destination-out source-atop destination-atop".split(" ");
    lb = function(a) {
        return 0 >= a || 11 <= a ? "source-over" : G[a - 1]
    };
    mb = function(a, e, b) {
        if (b) switch (a.ib = b.ONE, a.eb = b.ONE_MINUS_SRC_ALPHA, e) {
            case 1:
                a.ib = b.ONE;
                a.eb =
                    b.ONE;
                break;
            case 3:
                a.ib = b.ONE;
                a.eb = b.ZERO;
                break;
            case 4:
                a.ib = b.ONE_MINUS_DST_ALPHA;
                a.eb = b.ONE;
                break;
            case 5:
                a.ib = b.DST_ALPHA;
                a.eb = b.ZERO;
                break;
            case 6:
                a.ib = b.ZERO;
                a.eb = b.SRC_ALPHA;
                break;
            case 7:
                a.ib = b.ONE_MINUS_DST_ALPHA;
                a.eb = b.ZERO;
                break;
            case 8:
                a.ib = b.ZERO;
                a.eb = b.ONE_MINUS_SRC_ALPHA;
                break;
            case 9:
                a.ib = b.DST_ALPHA;
                a.eb = b.ONE_MINUS_SRC_ALPHA;
                break;
            case 10:
                a.ib = b.ONE_MINUS_DST_ALPHA, a.eb = b.SRC_ALPHA
        }
    };
    nb = function(a) {
        return Math.round(1E6 * a) / 1E6
    };
    ob = function(a, e) {
        return "string" !== typeof a || "string" !== typeof e ||
            a.length !== e.length ? !1 : a === e ? !0 : a.toLowerCase() === e.toLowerCase()
    };
    pb = function(a) {
        a = a.target;
        return !a || a === document || a === window || document && document.body && a === document.body || ob(a.tagName, "canvas") ? !0 : !1
    }
})();
var qc = "undefined" !== typeof Float32Array ? Float32Array : Array;

function rc(g) {
    var l = new qc(3);
    g && (l[0] = g[0], l[1] = g[1], l[2] = g[2]);
    return l
}

function sc(g) {
    var l = new qc(16);
    g && (l[0] = g[0], l[1] = g[1], l[2] = g[2], l[3] = g[3], l[4] = g[4], l[5] = g[5], l[6] = g[6], l[7] = g[7], l[8] = g[8], l[9] = g[9], l[10] = g[10], l[11] = g[11], l[12] = g[12], l[13] = g[13], l[14] = g[14], l[15] = g[15]);
    return l
}

function tc(g, l) {
    l[0] = g[0];
    l[1] = g[1];
    l[2] = g[2];
    l[3] = g[3];
    l[4] = g[4];
    l[5] = g[5];
    l[6] = g[6];
    l[7] = g[7];
    l[8] = g[8];
    l[9] = g[9];
    l[10] = g[10];
    l[11] = g[11];
    l[12] = g[12];
    l[13] = g[13];
    l[14] = g[14];
    l[15] = g[15]
}

function uc(g, l) {
    var p = l[0],
        f = l[1];
    l = l[2];
    g[0] *= p;
    g[1] *= p;
    g[2] *= p;
    g[3] *= p;
    g[4] *= f;
    g[5] *= f;
    g[6] *= f;
    g[7] *= f;
    g[8] *= l;
    g[9] *= l;
    g[10] *= l;
    g[11] *= l
}

function vc(g, l, p, f) {
    f || (f = sc());
    var b, d, c, a, n, h, e, t, x = g[0],
        m = g[1];
    g = g[2];
    d = p[0];
    c = p[1];
    b = p[2];
    p = l[1];
    h = l[2];
    x === l[0] && m === p && g === h ? (g = f, g[0] = 1, g[1] = 0, g[2] = 0, g[3] = 0, g[4] = 0, g[5] = 1, g[6] = 0, g[7] = 0, g[8] = 0, g[9] = 0, g[10] = 1, g[11] = 0, g[12] = 0, g[13] = 0, g[14] = 0, g[15] = 1) : (p = x - l[0], h = m - l[1], e = g - l[2], t = 1 / Math.sqrt(p * p + h * h + e * e), p *= t, h *= t, e *= t, l = c * e - b * h, b = b * p - d * e, d = d * h - c * p, (t = Math.sqrt(l * l + b * b + d * d)) ? (t = 1 / t, l *= t, b *= t, d *= t) : d = b = l = 0, c = h * d - e * b, a = e * l - p * d, n = p * b - h * l, (t = Math.sqrt(c * c + a * a + n * n)) ? (t = 1 / t, c *= t, a *= t, n *= t) : n = a = c = 0,
        f[0] = l, f[1] = c, f[2] = p, f[3] = 0, f[4] = b, f[5] = a, f[6] = h, f[7] = 0, f[8] = d, f[9] = n, f[10] = e, f[11] = 0, f[12] = -(l * x + b * m + d * g), f[13] = -(c * x + a * m + n * g), f[14] = -(p * x + h * m + e * g), f[15] = 1)
}
(function() {
    function g(a, b, h) {
        this.Of = /msie/i.test(navigator.userAgent) || /trident/i.test(navigator.userAgent);
        this.height = this.width = 0;
        this.fb = !!h;
        this.In = this.Ek = !1;
        this.Vm = 0;
        this.sp = 1;
        this.Ys = 1E3;
        this.pH = (this.Ys - this.sp) / 32768;
        this.dq = rc([0, 0, 100]);
        this.ew = rc([0, 0, 0]);
        this.gy = rc([0, 1, 0]);
        this.cm = rc([1, 1, 1]);
        this.dv = !0;
        this.co = sc();
        this.Kd = sc();
        this.qr = sc();
        this.qq = sc();
        this.S = a;
        this.version = 0 === this.S.getParameter(this.S.VERSION).indexOf("WebGL 2") ? 2 : 1;
        this.Jv()
    }

    function l(a, b, h) {
        this.S = a;
        this.Hl =
            b;
        this.name = h;
        this.de = a.getAttribLocation(b, "aPos");
        this.Vg = a.getAttribLocation(b, "aTex");
        this.bw = a.getUniformLocation(b, "matP");
        this.Zn = a.getUniformLocation(b, "matMV");
        this.bj = a.getUniformLocation(b, "opacity");
        this.wr = a.getUniformLocation(b, "colorFill");
        this.dw = a.getUniformLocation(b, "samplerFront");
        this.Uk = a.getUniformLocation(b, "samplerBack");
        this.Yh = a.getUniformLocation(b, "destStart");
        this.Xh = a.getUniformLocation(b, "destEnd");
        this.Wk = a.getUniformLocation(b, "seconds");
        this.yr = a.getUniformLocation(b,
            "pixelWidth");
        this.xr = a.getUniformLocation(b, "pixelHeight");
        this.Tk = a.getUniformLocation(b, "layerScale");
        this.Sk = a.getUniformLocation(b, "layerAngle");
        this.Xk = a.getUniformLocation(b, "viewOrigin");
        this.Vk = a.getUniformLocation(b, "scrollPos");
        this.WE = !!(this.yr || this.xr || this.Wk || this.Uk || this.Yh || this.Xh || this.Tk || this.Sk || this.Xk || this.Vk);
        this.mw = this.ow = -999;
        this.bo = 1;
        this.iw = this.hw = 0;
        this.kw = this.gw = this.fw = 1;
        this.rw = this.qw = this.pw = this.uw = this.sw = this.jw = 0;
        this.pr = [];
        this.lw = sc();
        this.bj && a.uniform1f(this.bj,
            1);
        this.wr && a.uniform4f(this.wr, 1, 1, 1, 1);
        this.dw && a.uniform1i(this.dw, 0);
        this.Uk && a.uniform1i(this.Uk, 1);
        this.Yh && a.uniform2f(this.Yh, 0, 0);
        this.Xh && a.uniform2f(this.Xh, 1, 1);
        this.Tk && a.uniform1f(this.Tk, 1);
        this.Sk && a.uniform1f(this.Sk, 0);
        this.Xk && a.uniform2f(this.Xk, 0, 0);
        this.Vk && a.uniform2f(this.Vk, 0, 0);
        this.Wk && a.uniform1f(this.Wk, 0);
        this.Ih = !1
    }

    function p(a, b) {
        return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] &&
            a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15]
    }

    function f(a, b) {
        this.type = a;
        this.J = b;
        this.S = b.S;
        this.Gd = this.Sc = this.Yw = 0;
        this.Ea = this.ke = null;
        this.Ix = []
    }
    var b = sc();
    g.prototype.Jv = function() {
        var a = this.S,
            b;
        this.Xv = 1;
        this.Qh = this.Sg = null;
        this.Um = 1;
        a.clearColor(0, 0, 0, 0);
        a.clear(a.COLOR_BUFFER_BIT);
        a.enable(a.BLEND);
        a.blendFunc(a.ONE, a.ONE_MINUS_SRC_ALPHA);
        a.disable(a.CULL_FACE);
        a.disable(a.STENCIL_TEST);
        a.disable(a.DITHER);
        this.fb ? (a.enable(a.DEPTH_TEST), a.depthFunc(a.LEQUAL)) :
            a.disable(a.DEPTH_TEST);
        this.Yv = a.ONE;
        this.Wv = a.ONE_MINUS_SRC_ALPHA;
        this.Zl = new Float32Array(8E3 * (this.fb ? 3 : 2));
        this.Pl = new Float32Array(16E3);
        this.lx = new Float32Array(32E3);
        this.bs = a.createBuffer();
        a.bindBuffer(a.ARRAY_BUFFER, this.bs);
        a.bufferData(a.ARRAY_BUFFER, this.lx.byteLength, a.DYNAMIC_DRAW);
        this.Yl = Array(4);
        this.Ol = Array(4);
        for (b = 0; 4 > b; b++) this.Yl[b] = a.createBuffer(), a.bindBuffer(a.ARRAY_BUFFER, this.Yl[b]), a.bufferData(a.ARRAY_BUFFER, this.Zl.byteLength, a.DYNAMIC_DRAW), this.Ol[b] = a.createBuffer(),
            a.bindBuffer(a.ARRAY_BUFFER, this.Ol[b]), a.bufferData(a.ARRAY_BUFFER, this.Pl.byteLength, a.DYNAMIC_DRAW);
        this.Bf = 0;
        this.bF = a.createBuffer();
        a.bindBuffer(a.ELEMENT_ARRAY_BUFFER, this.bF);
        for (var h = new Uint16Array(12E3), e = b = 0; 12E3 > b;) h[b++] = e, h[b++] = e + 1, h[b++] = e + 2, h[b++] = e, h[b++] = e + 2, h[b++] = e + 3, e += 4;
        a.bufferData(a.ELEMENT_ARRAY_BUFFER, h, a.STATIC_DRAW);
        this.cs = this.dh = this.me = 0;
        this.Eb = [];
        b = this.fb ? "attribute highp vec3 aPos;\nattribute mediump vec2 aTex;\nvarying mediump vec2 vTex;\nuniform highp mat4 matP;\nuniform highp mat4 matMV;\nvoid main(void) {\n\tgl_Position = matP * matMV * vec4(aPos.x, aPos.y, aPos.z, 1.0);\n\tvTex = aTex;\n}" :
            "attribute highp vec2 aPos;\nattribute mediump vec2 aTex;\nvarying mediump vec2 vTex;\nuniform highp mat4 matP;\nuniform highp mat4 matMV;\nvoid main(void) {\n\tgl_Position = matP * matMV * vec4(aPos.x, aPos.y, 0.0, 1.0);\n\tvTex = aTex;\n}";
        h = this.jk({
            src: "varying mediump vec2 vTex;\nuniform lowp float opacity;\nuniform lowp sampler2D samplerFront;\nvoid main(void) {\n\tgl_FragColor = texture2D(samplerFront, vTex);\n\tgl_FragColor *= opacity;\n}"
        }, b, "<default>");
        this.Eb.push(h);
        h = this.jk({
                src: "uniform mediump sampler2D samplerFront;\nvarying lowp float opacity;\nvoid main(void) {\n\tgl_FragColor = texture2D(samplerFront, gl_PointCoord);\n\tgl_FragColor *= opacity;\n}"
            },
            "attribute vec4 aPos;\nvarying float opacity;\nuniform mat4 matP;\nuniform mat4 matMV;\nvoid main(void) {\n\tgl_Position = matP * matMV * vec4(aPos.x, aPos.y, 0.0, 1.0);\n\tgl_PointSize = aPos.z;\n\topacity = aPos.w;\n}", "<point>");
        this.Eb.push(h);
        h = this.jk({
            src: "varying mediump vec2 vTex;\nuniform lowp sampler2D samplerFront;\nvoid main(void) {\n\tif (texture2D(samplerFront, vTex).a < 1.0)\n\t\tdiscard;\n}"
        }, b, "<earlyz>");
        this.Eb.push(h);
        h = this.jk({
                src: "uniform lowp vec4 colorFill;\nvoid main(void) {\n\tgl_FragColor = colorFill;\n}"
            },
            b, "<fill>");
        this.Eb.push(h);
        for (var c in wc) wc.hasOwnProperty(c) && this.Eb.push(this.jk(wc[c], b, c));
        a.activeTexture(a.TEXTURE0);
        a.bindTexture(a.TEXTURE_2D, null);
        this.Qe = [];
        this.te = 0;
        this.pc = !1;
        this.Yu = this.Pk = -1;
        this.Fi = null;
        this.Cq = a.createFramebuffer();
        this.$m = this.Ho = null;
        this.Ku = !1;
        this.fb && (this.$m = a.createRenderbuffer());
        this.eh = rc([0, 0, 0]);
        this.vw = a.getParameter(a.ALIASED_POINT_SIZE_RANGE)[1];
        2048 < this.vw && (this.vw = 2048);
        this.md(0)
    };
    l.prototype.Rs = function(a) {
        p(this.lw, a) || (tc(a, this.lw), this.S.uniformMatrix4fv(this.Zn, !1, a))
    };
    g.prototype.jk = function(a, b, h) {
        var e = this.S,
            c = e.createShader(e.FRAGMENT_SHADER);
        e.shaderSource(c, a.src);
        e.compileShader(c);
        if (!e.getShaderParameter(c, e.COMPILE_STATUS)) throw a = e.getShaderInfoLog(c), e.deleteShader(c), Error("error compiling fragment shader: " + a);
        var d = e.createShader(e.VERTEX_SHADER);
        e.shaderSource(d, b);
        e.compileShader(d);
        if (!e.getShaderParameter(d, e.COMPILE_STATUS)) throw a = e.getShaderInfoLog(d), e.deleteShader(c), e.deleteShader(d), Error("error compiling vertex shader: " + a);
        b =
            e.createProgram();
        e.attachShader(b, c);
        e.attachShader(b, d);
        e.linkProgram(b);
        if (!e.getProgramParameter(b, e.LINK_STATUS)) throw a = e.getProgramInfoLog(b), e.deleteShader(c), e.deleteShader(d), e.deleteProgram(b), Error("error linking shader program: " + a);
        e.useProgram(b);
        e.deleteShader(c);
        e.deleteShader(d);
        c = new l(e, b, h);
        c.Aq = a.Aq || 0;
        c.Bq = a.Bq || 0;
        c.Xu = !!a.Xu;
        c.Ee = !!a.Ee;
        c.Hu = !!a.Hu;
        c.ra = a.ra || [];
        a = 0;
        for (d = c.ra.length; a < d; a++) c.ra[a][1] = e.getUniformLocation(b, c.ra[a][0]), c.pr.push(0), e.uniform1f(c.ra[a][1],
            0);
        return c
    };
    g.prototype.Oq = function(a) {
        var b, h;
        b = 0;
        for (h = this.Eb.length; b < h; b++)
            if (this.Eb[b].name === a) return b;
        return -1
    };
    g.prototype.nx = function(a, b, h) {
        var e = this.Kd,
            c = this.co,
            d = [0, 0, 0, 0, 0, 0, 0, 0];
        d[0] = e[0] * a + e[4] * b + e[12];
        d[1] = e[1] * a + e[5] * b + e[13];
        d[2] = e[2] * a + e[6] * b + e[14];
        d[3] = e[3] * a + e[7] * b + e[15];
        d[4] = c[0] * d[0] + c[4] * d[1] + c[8] * d[2] + c[12] * d[3];
        d[5] = c[1] * d[0] + c[5] * d[1] + c[9] * d[2] + c[13] * d[3];
        d[6] = c[2] * d[0] + c[6] * d[1] + c[10] * d[2] + c[14] * d[3];
        d[7] = -d[2];
        0 !== d[7] && (d[7] = 1 / d[7], d[4] *= d[7], d[5] *= d[7], d[6] *= d[7],
            h[0] = (.5 * d[4] + .5) * this.width, h[1] = (.5 * d[5] + .5) * this.height)
    };
    g.prototype.bg = function(a, b, h) {
        if (this.width !== a || this.height !== b || h) {
            this.Ff();
            h = this.S;
            this.width = a;
            this.height = b;
            h.viewport(0, 0, a, b);
            vc(this.dq, this.ew, this.gy, this.Kd);
            if (this.fb) {
                var e = -a / 2;
                a = a / 2;
                var c = b / 2;
                b = -b / 2;
                var d = this.sp,
                    m = this.Ys,
                    f = this.co;
                f || (f = sc());
                var u = a - e,
                    w = b - c,
                    v = m - d;
                f[0] = 2 / u;
                f[1] = 0;
                f[2] = 0;
                f[3] = 0;
                f[4] = 0;
                f[5] = 2 / w;
                f[6] = 0;
                f[7] = 0;
                f[8] = 0;
                f[9] = 0;
                f[10] = -2 / v;
                f[11] = 0;
                f[12] = -(e + a) / u;
                f[13] = -(b + c) / w;
                f[14] = -(m + d) / v;
                f[15] = 1;
                this.cm[0] =
                    1;
                this.cm[1] = 1
            } else b = a / b, e = this.sp, a = this.Ys, f = this.co, m = e * Math.tan(45 * Math.PI / 360), b *= m, c = -b, d = -m, f || (f = sc()), u = b - c, w = m - d, v = a - e, f[0] = 2 * e / u, f[1] = 0, f[2] = 0, f[3] = 0, f[4] = 0, f[5] = 2 * e / w, f[6] = 0, f[7] = 0, f[8] = (b + c) / u, f[9] = (m + d) / w, f[10] = -(a + e) / v, f[11] = -1, f[12] = 0, f[13] = 0, f[14] = -(a * e * 2) / v, f[15] = 0, e = [0, 0], a = [0, 0], this.nx(0, 0, e), this.nx(1, 1, a), this.cm[0] = 1 / (a[0] - e[0]), this.cm[1] = -1 / (a[1] - e[1]);
            e = 0;
            for (a = this.Eb.length; e < a; e++) c = this.Eb[e], c.Ih = !1, c.bw && (h.useProgram(c.Hl), h.uniformMatrix4fv(c.bw, !1, this.co));
            h.useProgram(this.Eb[this.Pk].Hl);
            h.bindTexture(h.TEXTURE_2D, null);
            h.activeTexture(h.TEXTURE1);
            h.bindTexture(h.TEXTURE_2D, null);
            h.activeTexture(h.TEXTURE0);
            this.Qh = this.Sg = null;
            this.$m && (h.bindFramebuffer(h.FRAMEBUFFER, this.Cq), h.bindRenderbuffer(h.RENDERBUFFER, this.$m), h.renderbufferStorage(h.RENDERBUFFER, h.DEPTH_COMPONENT16, this.width, this.height), this.Ku || (h.framebufferRenderbuffer(h.FRAMEBUFFER, h.DEPTH_ATTACHMENT, h.RENDERBUFFER, this.$m), this.Ku = !0), h.bindRenderbuffer(h.RENDERBUFFER, null), h.bindFramebuffer(h.FRAMEBUFFER, null),
                this.Ho = null)
        }
    };
    g.prototype.kf = function() {
        vc(this.dq, this.ew, this.gy, this.Kd);
        uc(this.Kd, this.cm)
    };
    g.prototype.translate = function(a, b) {
        if (0 !== a || 0 !== b) {
            this.eh[0] = a;
            this.eh[1] = b;
            this.eh[2] = 0;
            var h = this.Kd,
                e = this.eh,
                c = e[0],
                d = e[1],
                e = e[2];
            h[12] = h[0] * c + h[4] * d + h[8] * e + h[12];
            h[13] = h[1] * c + h[5] * d + h[9] * e + h[13];
            h[14] = h[2] * c + h[6] * d + h[10] * e + h[14];
            h[15] = h[3] * c + h[7] * d + h[11] * e + h[15]
        }
    };
    g.prototype.scale = function(a, b) {
        if (1 !== a || 1 !== b) this.eh[0] = a, this.eh[1] = b, this.eh[2] = 1, uc(this.Kd, this.eh)
    };
    g.prototype.ns = function(a) {
        if (0 !==
            a) {
            var b = this.Kd,
                c, e = Math.sin(a);
            a = Math.cos(a);
            var d = b[0],
                f = b[1],
                m = b[2],
                q = b[3],
                u = b[4],
                w = b[5],
                v = b[6],
                k = b[7];
            c ? b !== c && (c[8] = b[8], c[9] = b[9], c[10] = b[10], c[11] = b[11], c[12] = b[12], c[13] = b[13], c[14] = b[14], c[15] = b[15]) : c = b;
            c[0] = d * a + u * e;
            c[1] = f * a + w * e;
            c[2] = m * a + v * e;
            c[3] = q * a + k * e;
            c[4] = d * -e + u * a;
            c[5] = f * -e + w * a;
            c[6] = m * -e + v * a;
            c[7] = q * -e + k * a
        }
    };
    g.prototype.Me = function() {
        if (!p(this.qr, this.Kd)) {
            var a = this.jd();
            a.type = 5;
            a.Ea ? tc(this.Kd, a.Ea) : a.Ea = sc(this.Kd);
            tc(this.Kd, this.qr);
            this.pc = !1
        }
    };
    g.prototype.Qo = function(a) {
        this.fb &&
            (32760 < a && (a = 32760), this.Vm = this.dq[2] - this.sp - a * this.pH)
    };
    f.prototype.rD = function() {
        var a = this.S,
            b = this.J;
        0 !== this.Sc ? (a.depthMask(!0), a.colorMask(!1, !1, !1, !1), a.disable(a.BLEND), a.bindFramebuffer(a.FRAMEBUFFER, b.Cq), a.framebufferTexture2D(a.FRAMEBUFFER, a.COLOR_ATTACHMENT0, a.TEXTURE_2D, null, 0), a.clear(a.DEPTH_BUFFER_BIT), a.bindFramebuffer(a.FRAMEBUFFER, null), b.In = !0) : (a.depthMask(!1), a.colorMask(!0, !0, !0, !0), a.enable(a.BLEND), b.In = !1)
    };
    f.prototype.vD = function() {
        this.S.bindTexture(this.S.TEXTURE_2D,
            this.ke)
    };
    f.prototype.wD = function() {
        var a = this.S;
        a.activeTexture(a.TEXTURE1);
        a.bindTexture(a.TEXTURE_2D, this.ke);
        a.activeTexture(a.TEXTURE0)
    };
    f.prototype.sD = function() {
        var a = this.Yw,
            b = this.J;
        b.Um = a;
        b = b.Fi;
        b.bj && b.bo !== a && (b.bo = a, this.S.uniform1f(b.bj, a))
    };
    f.prototype.lD = function() {
        this.S.drawElements(this.S.TRIANGLES, this.Gd, this.S.UNSIGNED_SHORT, this.Sc)
    };
    f.prototype.oD = function() {
        this.S.blendFunc(this.Sc, this.Gd)
    };
    f.prototype.xD = function() {
        var a, b, c, e = this.J.Eb,
            d = this.J.Yu;
        a = 0;
        for (b = e.length; a <
            b; a++) c = e[a], a === d && c.Zn ? (c.Rs(this.Ea), c.Ih = !0) : c.Ih = !1;
        tc(this.Ea, this.J.qq)
    };
    f.prototype.mD = function() {
        var a = this.S,
            b = this.J;
        this.ke ? (b.Qh === this.ke && (a.activeTexture(a.TEXTURE1), a.bindTexture(a.TEXTURE_2D, null), b.Qh = null, a.activeTexture(a.TEXTURE0)), a.bindFramebuffer(a.FRAMEBUFFER, b.Cq), b.In || a.framebufferTexture2D(a.FRAMEBUFFER, a.COLOR_ATTACHMENT0, a.TEXTURE_2D, this.ke, 0)) : (b.fb || a.framebufferTexture2D(a.FRAMEBUFFER, a.COLOR_ATTACHMENT0, a.TEXTURE_2D, null, 0), a.bindFramebuffer(a.FRAMEBUFFER, null))
    };
    f.prototype.hD = function() {
        var a = this.S,
            b = this.Sc;
        0 === b ? (a.clearColor(this.Ea[0], this.Ea[1], this.Ea[2], this.Ea[3]), a.clear(a.COLOR_BUFFER_BIT)) : 1 === b ? (a.enable(a.SCISSOR_TEST), a.scissor(this.Ea[0], this.Ea[1], this.Ea[2], this.Ea[3]), a.clearColor(0, 0, 0, 0), a.clear(a.COLOR_BUFFER_BIT), a.disable(a.SCISSOR_TEST)) : a.clear(a.DEPTH_BUFFER_BIT)
    };
    f.prototype.qD = function() {
        var a = this.S;
        0 !== this.Sc ? a.enable(a.DEPTH_TEST) : a.disable(a.DEPTH_TEST)
    };
    f.prototype.kD = function() {
        var a = this.S,
            b = this.J;
        b.fb && a.disable(a.DEPTH_TEST);
        var c = b.Eb[1];
        a.useProgram(c.Hl);
        !c.Ih && c.Zn && (c.Rs(b.qq), c.Ih = !0);
        a.enableVertexAttribArray(c.de);
        a.bindBuffer(a.ARRAY_BUFFER, b.bs);
        a.vertexAttribPointer(c.de, 4, a.FLOAT, !1, 0, 0);
        a.drawArrays(a.POINTS, this.Sc / 4, this.Gd);
        c = b.Fi;
        a.useProgram(c.Hl);
        0 <= c.de && (a.enableVertexAttribArray(c.de), a.bindBuffer(a.ARRAY_BUFFER, b.Yl[b.Bf]), a.vertexAttribPointer(c.de, b.fb ? 3 : 2, a.FLOAT, !1, 0, 0));
        0 <= c.Vg && (a.enableVertexAttribArray(c.Vg), a.bindBuffer(a.ARRAY_BUFFER, b.Ol[b.Bf]), a.vertexAttribPointer(c.Vg, 2, a.FLOAT, !1,
            0, 0));
        b.fb && a.enable(a.DEPTH_TEST)
    };
    f.prototype.tD = function() {
        var a = this.S,
            b = this.J,
            c = b.Eb[this.Sc];
        b.Yu = this.Sc;
        b.Fi = c;
        a.useProgram(c.Hl);
        !c.Ih && c.Zn && (c.Rs(b.qq), c.Ih = !0);
        c.bj && c.bo !== b.Um && (c.bo = b.Um, a.uniform1f(c.bj, b.Um));
        0 <= c.de && (a.enableVertexAttribArray(c.de), a.bindBuffer(a.ARRAY_BUFFER, b.Yl[b.Bf]), a.vertexAttribPointer(c.de, b.fb ? 3 : 2, a.FLOAT, !1, 0, 0));
        0 <= c.Vg && (a.enableVertexAttribArray(c.Vg), a.bindBuffer(a.ARRAY_BUFFER, b.Ol[b.Bf]), a.vertexAttribPointer(c.Vg, 2, a.FLOAT, !1, 0, 0))
    };
    f.prototype.pD =
        function() {
            var a = this.Ea;
            this.S.uniform4f(this.J.Fi.wr, a[0], a[1], a[2], a[3])
        };
    f.prototype.uD = function() {
        var a, b, c = this.J.Fi,
            e = this.S;
        a = this.Ea;
        c.Uk && this.J.Qh !== this.ke && (e.activeTexture(e.TEXTURE1), e.bindTexture(e.TEXTURE_2D, this.ke), this.J.Qh = this.ke, e.activeTexture(e.TEXTURE0));
        var d = a[0];
        c.yr && d !== c.ow && (c.ow = d, e.uniform1f(c.yr, d));
        d = a[1];
        c.xr && d !== c.mw && (c.mw = d, e.uniform1f(c.xr, d));
        d = a[2];
        b = a[3];
        !c.Yh || d === c.hw && b === c.iw || (c.hw = d, c.iw = b, e.uniform2f(c.Yh, d, b));
        d = a[4];
        b = a[5];
        !c.Xh || d === c.fw && b ===
            c.gw || (c.fw = d, c.gw = b, e.uniform2f(c.Xh, d, b));
        d = a[6];
        c.Tk && d !== c.kw && (c.kw = d, e.uniform1f(c.Tk, d));
        d = a[7];
        c.Sk && d !== c.jw && (c.jw = d, e.uniform1f(c.Sk, d));
        d = a[8];
        b = a[9];
        !c.Xk || d === c.sw && b === c.uw || (c.sw = d, c.uw = b, e.uniform2f(c.Xk, d, b));
        d = a[10];
        b = a[11];
        !c.Vk || d === c.pw && b === c.qw || (c.pw = d, c.qw = b, e.uniform2f(c.Vk, d, b));
        d = a[12];
        c.Wk && d !== c.rw && (c.rw = d, e.uniform1f(c.Wk, d));
        if (c.ra.length)
            for (a = 0, b = c.ra.length; a < b; a++) d = this.Ix[a], d !== c.pr[a] && (c.pr[a] = d, e.uniform1f(c.ra[a][1], d))
    };
    g.prototype.jd = function() {
        this.te ===
            this.Qe.length && this.Qe.push(new f(0, this));
        return this.Qe[this.te++]
    };
    g.prototype.Ff = function() {
        if (0 !== this.te && !this.S.isContextLost()) {
            var a = this.S;
            0 < this.cs && (a.bindBuffer(a.ARRAY_BUFFER, this.bs), a.bufferSubData(a.ARRAY_BUFFER, 0, this.lx.subarray(0, this.cs)), b && 0 <= b.de && "<point>" === b.name && a.vertexAttribPointer(b.de, 4, a.FLOAT, !1, 0, 0));
            if (0 < this.me) {
                var b = this.Fi;
                a.bindBuffer(a.ARRAY_BUFFER, this.Yl[this.Bf]);
                a.bufferSubData(a.ARRAY_BUFFER, 0, this.Zl.subarray(0, this.me));
                b && 0 <= b.de && "<point>" !== b.name &&
                    a.vertexAttribPointer(b.de, this.fb ? 3 : 2, a.FLOAT, !1, 0, 0);
                a.bindBuffer(a.ARRAY_BUFFER, this.Ol[this.Bf]);
                a.bufferSubData(a.ARRAY_BUFFER, 0, this.Pl.subarray(0, this.dh));
                b && 0 <= b.Vg && "<point>" !== b.name && a.vertexAttribPointer(b.Vg, 2, a.FLOAT, !1, 0, 0)
            }
            for (var c, a = 0, b = this.te; a < b; a++) switch (c = this.Qe[a], c.type) {
                case 1:
                    c.lD();
                    break;
                case 2:
                    c.vD();
                    break;
                case 3:
                    c.sD();
                    break;
                case 4:
                    c.oD();
                    break;
                case 5:
                    c.xD();
                    break;
                case 6:
                    c.mD();
                    break;
                case 7:
                    c.hD();
                    break;
                case 8:
                    c.kD();
                    break;
                case 9:
                    c.tD();
                    break;
                case 10:
                    c.uD();
                    break;
                case 11:
                    c.wD();
                    break;
                case 12:
                    c.pD();
                    break;
                case 13:
                    c.qD();
                    break;
                case 14:
                    c.rD()
            }
            this.cs = this.dh = this.me = this.te = 0;
            this.In = this.pc = !1;
            this.Bf++;
            4 <= this.Bf && (this.Bf = 0)
        }
    };
    g.prototype.ag = function(a) {
        if (a !== this.Xv && !this.Ek) {
            var b = this.jd();
            b.type = 3;
            this.Xv = b.Yw = a;
            this.pc = !1
        }
    };
    g.prototype.Zc = function(a) {
        if (a !== this.Sg) {
            var b = this.jd();
            b.type = 2;
            this.Sg = b.ke = a;
            this.pc = !1
        }
    };
    g.prototype.$f = function(a, b) {
        if ((a !== this.Yv || b !== this.Wv) && !this.Ek) {
            var c = this.jd();
            c.type = 4;
            c.Sc = a;
            c.Gd = b;
            this.Yv = a;
            this.Wv = b;
            this.pc = !1
        }
    };
    g.prototype.zx = function() {
        this.$f(this.S.ONE, this.S.ONE_MINUS_SRC_ALPHA)
    };
    g.prototype.fi = function(a, b, c, e, d, f, m, q) {
        15992 <= this.me && this.Ff();
        var u = this.me,
            w = this.dh,
            v = this.Zl,
            k = this.Pl,
            r = this.Vm;
        if (this.pc) this.Qe[this.te - 1].Gd += 6;
        else {
            var H = this.jd();
            H.type = 1;
            H.Sc = this.fb ? u : u / 2 * 3;
            H.Gd = 6;
            this.pc = !0
        }
        this.fb ? (v[u++] = a, v[u++] = b, v[u++] = r, v[u++] = c, v[u++] = e, v[u++] = r, v[u++] = d, v[u++] = f, v[u++] = r, v[u++] = m, v[u++] = q, v[u++] = r) : (v[u++] = a, v[u++] = b, v[u++] = c, v[u++] = e, v[u++] = d, v[u++] = f, v[u++] = m, v[u++] = q);
        k[w++] =
            0;
        k[w++] = 0;
        k[w++] = 1;
        k[w++] = 0;
        k[w++] = 1;
        k[w++] = 1;
        k[w++] = 0;
        k[w++] = 1;
        this.me = u;
        this.dh = w
    };
    g.prototype.Fe = function(a, b, c, e, d, f, m, q, u) {
        15992 <= this.me && this.Ff();
        var w = this.me,
            v = this.dh,
            k = this.Zl,
            r = this.Pl,
            H = this.Vm;
        if (this.pc) this.Qe[this.te - 1].Gd += 6;
        else {
            var y = this.jd();
            y.type = 1;
            y.Sc = this.fb ? w : w / 2 * 3;
            y.Gd = 6;
            this.pc = !0
        }
        var y = u.left,
            g = u.top,
            l = u.right;
        u = u.bottom;
        this.fb ? (k[w++] = a, k[w++] = b, k[w++] = H, k[w++] = c, k[w++] = e, k[w++] = H, k[w++] = d, k[w++] = f, k[w++] = H, k[w++] = m, k[w++] = q, k[w++] = H) : (k[w++] = a, k[w++] = b, k[w++] = c,
            k[w++] = e, k[w++] = d, k[w++] = f, k[w++] = m, k[w++] = q);
        r[v++] = y;
        r[v++] = g;
        r[v++] = l;
        r[v++] = g;
        r[v++] = l;
        r[v++] = u;
        r[v++] = y;
        r[v++] = u;
        this.me = w;
        this.dh = v
    };
    g.prototype.nG = function(a, b, c, e, d, f, m, q, u, w, v, k, r, H, y, g) {
        15992 <= this.me && this.Ff();
        var l = this.me,
            p = this.dh,
            G = this.Zl,
            E = this.Pl,
            J = this.Vm;
        if (this.pc) this.Qe[this.te - 1].Gd += 6;
        else {
            var F = this.jd();
            F.type = 1;
            F.Sc = this.fb ? l : l / 2 * 3;
            F.Gd = 6;
            this.pc = !0
        }
        this.fb ? (G[l++] = a, G[l++] = b, G[l++] = J, G[l++] = c, G[l++] = e, G[l++] = J, G[l++] = d, G[l++] = f, G[l++] = J, G[l++] = m, G[l++] = q, G[l++] = J) : (G[l++] =
            a, G[l++] = b, G[l++] = c, G[l++] = e, G[l++] = d, G[l++] = f, G[l++] = m, G[l++] = q);
        E[p++] = u;
        E[p++] = w;
        E[p++] = v;
        E[p++] = k;
        E[p++] = r;
        E[p++] = H;
        E[p++] = y;
        E[p++] = g;
        this.me = l;
        this.dh = p
    };
    g.prototype.md = function(a) {
        if (this.Pk !== a) {
            if (!this.Eb[a]) {
                if (0 === this.Pk) return;
                a = 0
            }
            var b = this.jd();
            b.type = 9;
            this.Pk = b.Sc = a;
            this.pc = !1
        }
    };
    g.prototype.sl = function(a) {
        a = this.Eb[a];
        return !(!a.Yh && !a.Xh)
    };
    g.prototype.es = function(a) {
        a = this.Eb[a];
        return !!(a.Yh || a.Xh || a.Xu)
    };
    g.prototype.ds = function(a) {
        return this.Eb[a].Ee
    };
    g.prototype.jG = function(a) {
        a =
            this.Eb[a];
        return 0 !== a.Aq || 0 !== a.Bq
    };
    g.prototype.EE = function(a) {
        return this.Eb[a].Aq
    };
    g.prototype.FE = function(a) {
        return this.Eb[a].Bq
    };
    g.prototype.GE = function(a, b) {
        return this.Eb[a].ra[b][2]
    };
    g.prototype.Co = function(a) {
        return this.Eb[a].Hu
    };
    g.prototype.tj = function(a, b, c, e, d, f, m, q, u, w, v, k, r, H, y) {
        var g = this.Eb[this.Pk],
            l, p;
        if (g.WE || y.length) {
            l = this.jd();
            l.type = 10;
            l.Ea ? tc(this.Kd, l.Ea) : l.Ea = sc();
            p = l.Ea;
            p[0] = b;
            p[1] = c;
            p[2] = e;
            p[3] = d;
            p[4] = f;
            p[5] = m;
            p[6] = q;
            p[7] = u;
            p[8] = w;
            p[9] = v;
            p[10] = k;
            p[11] = r;
            p[12] = H;
            g.Uk ?
                l.ke = a : l.ke = null;
            if (y.length)
                for (c = l.Ix, c.length = y.length, a = 0, b = y.length; a < b; a++) c[a] = y[a];
            this.pc = !1
        }
    };
    g.prototype.clear = function(a, b, c, e) {
        var d = this.jd();
        d.type = 7;
        d.Sc = 0;
        d.Ea || (d.Ea = sc());
        d.Ea[0] = a;
        d.Ea[1] = b;
        d.Ea[2] = c;
        d.Ea[3] = e;
        this.pc = !1
    };
    g.prototype.clearRect = function(a, b, c, e) {
        if (!(0 > c || 0 > e)) {
            var d = this.jd();
            d.type = 7;
            d.Sc = 1;
            d.Ea || (d.Ea = sc());
            d.Ea[0] = a;
            d.Ea[1] = b;
            d.Ea[2] = c;
            d.Ea[3] = e;
            this.pc = !1
        }
    };
    g.prototype.Dx = function(a) {
        if (this.fb && (a = !!a, this.Ek !== a)) {
            var b = this.jd();
            b.type = 14;
            b.Sc = a ? 1 : 0;
            this.pc = !1;
            this.Ek = a;
            this.Ho = null;
            this.Ek ? this.md(2) : this.md(0)
        }
    };
    g.prototype.Bx = function(a) {
        if (this.fb) {
            var b = this.jd();
            b.type = 13;
            b.Sc = a ? 1 : 0;
            this.pc = !1
        }
    };
    g.prototype.tv = function() {
        tc(this.qr, b);
        this.kf();
        this.Me();
        var a = this.width / 2,
            c = this.height / 2;
        this.fi(-a, c, a, c, a, -c, -a, -c);
        tc(b, this.Kd);
        this.Me()
    };
    g.prototype.Ax = function(a, b, c) {
        this.md(3);
        var e = this.jd();
        e.type = 12;
        e.Ea || (e.Ea = sc());
        e.Ea[0] = a;
        e.Ea[1] = b;
        e.Ea[2] = c;
        e.Ea[3] = 1;
        this.pc = !1
    };
    g.prototype.PG = function() {
        this.md(0)
    };
    g.prototype.yG = function() {
        this.md(2)
    };
    g.prototype.iG = function() {
        this.Ff();
        this.S.flush()
    };
    var d = [],
        c = {};
    g.prototype.WC = function() {
        B(d);
        c = {}
    };
    g.prototype.Tf = function(a, b, f, e) {
        b = !!b;
        f = !!f;
        var t = a.src + "," + b + "," + f + (b ? ",undefined" : ""),
            g = null;
        if ("undefined" !== typeof a.src && c.hasOwnProperty(t)) return g = c[t], g.Jm++, g;
        this.Ff();
        var m = this.S,
            q = na(a.width) && na(a.height),
            g = m.createTexture();
        m.bindTexture(m.TEXTURE_2D, g);
        m.pixelStorei(m.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !0);
        var u = m.RGBA,
            w = m.RGBA,
            v = m.UNSIGNED_BYTE;
        if (e && !this.Of) switch (e) {
            case 1:
                w = u =
                    m.RGB;
                break;
            case 2:
                v = m.UNSIGNED_SHORT_4_4_4_4;
                break;
            case 3:
                v = m.UNSIGNED_SHORT_5_5_5_1;
                break;
            case 4:
                w = u = m.RGB, v = m.UNSIGNED_SHORT_5_6_5
        }
        if (1 === this.version && !q && b) {
            e = document.createElement("canvas");
            e.width = pa(a.width);
            e.height = pa(a.height);
            var k = e.getContext("2d");
            "undefined" !== typeof k.imageSmoothingEnabled ? k.imageSmoothingEnabled = f : (k.webkitImageSmoothingEnabled = f, k.mozImageSmoothingEnabled = f, k.msImageSmoothingEnabled = f);
            k.drawImage(a, 0, 0, a.width, a.height, 0, 0, e.width, e.height);
            m.texImage2D(m.TEXTURE_2D,
                0, u, w, v, e)
        } else m.texImage2D(m.TEXTURE_2D, 0, u, w, v, a);
        b ? (m.texParameteri(m.TEXTURE_2D, m.TEXTURE_WRAP_S, m.REPEAT), m.texParameteri(m.TEXTURE_2D, m.TEXTURE_WRAP_T, m.REPEAT)) : (m.texParameteri(m.TEXTURE_2D, m.TEXTURE_WRAP_S, m.CLAMP_TO_EDGE), m.texParameteri(m.TEXTURE_2D, m.TEXTURE_WRAP_T, m.CLAMP_TO_EDGE));
        f ? (m.texParameteri(m.TEXTURE_2D, m.TEXTURE_MAG_FILTER, m.LINEAR), (q || 2 <= this.version) && this.dv ? (m.texParameteri(m.TEXTURE_2D, m.TEXTURE_MIN_FILTER, m.LINEAR_MIPMAP_LINEAR), m.generateMipmap(m.TEXTURE_2D)) : m.texParameteri(m.TEXTURE_2D,
            m.TEXTURE_MIN_FILTER, m.LINEAR)) : (m.texParameteri(m.TEXTURE_2D, m.TEXTURE_MAG_FILTER, m.NEAREST), m.texParameteri(m.TEXTURE_2D, m.TEXTURE_MIN_FILTER, m.NEAREST));
        m.bindTexture(m.TEXTURE_2D, null);
        this.Sg = null;
        g.sh = a.width;
        g.rh = a.height;
        g.Jm = 1;
        g.Pu = t;
        d.push(g);
        return c[t] = g
    };
    g.prototype.Dd = function(a, b, c, e, f) {
        this.Ff();
        var g = this.S;
        this.Of && (e = !1);
        var m = g.createTexture();
        g.bindTexture(g.TEXTURE_2D, m);
        g.texImage2D(g.TEXTURE_2D, 0, g.RGBA, a, b, 0, g.RGBA, e ? g.UNSIGNED_SHORT_4_4_4_4 : g.UNSIGNED_BYTE, null);
        f ? (g.texParameteri(g.TEXTURE_2D,
            g.TEXTURE_WRAP_S, g.REPEAT), g.texParameteri(g.TEXTURE_2D, g.TEXTURE_WRAP_T, g.REPEAT)) : (g.texParameteri(g.TEXTURE_2D, g.TEXTURE_WRAP_S, g.CLAMP_TO_EDGE), g.texParameteri(g.TEXTURE_2D, g.TEXTURE_WRAP_T, g.CLAMP_TO_EDGE));
        g.texParameteri(g.TEXTURE_2D, g.TEXTURE_MAG_FILTER, c ? g.LINEAR : g.NEAREST);
        g.texParameteri(g.TEXTURE_2D, g.TEXTURE_MIN_FILTER, c ? g.LINEAR : g.NEAREST);
        g.bindTexture(g.TEXTURE_2D, null);
        this.Sg = null;
        m.sh = a;
        m.rh = b;
        d.push(m);
        return m
    };
    g.prototype.kH = function(a, b) {
        var c;
        this.Ff();
        var e = this.S;
        this.Of &&
            (c = !1);
        e.bindTexture(e.TEXTURE_2D, b);
        e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !0);
        try {
            e.texImage2D(e.TEXTURE_2D, 0, e.RGBA, e.RGBA, c ? e.UNSIGNED_SHORT_4_4_4_4 : e.UNSIGNED_BYTE, a)
        } catch (d) {
            console && console.error && console.error("Error updating WebGL texture: ", d)
        }
        e.bindTexture(e.TEXTURE_2D, null);
        this.Sg = null
    };
    g.prototype.deleteTexture = function(a) {
        a && ("undefined" !== typeof a.Jm && 1 < a.Jm ? a.Jm-- : (this.Ff(), a === this.Sg && (this.S.bindTexture(this.S.TEXTURE_2D, null), this.Sg = null), a === this.Qh && (this.S.activeTexture(this.S.TEXTURE1),
            this.S.bindTexture(this.S.TEXTURE_2D, null), this.S.activeTexture(this.S.TEXTURE0), this.Qh = null), Ga(d, a), "undefined" !== typeof a.Pu && delete c[a.Pu], this.S.deleteTexture(a)))
    };
    g.prototype.he = function(a) {
        if (a !== this.Ho) {
            var b = this.jd();
            b.type = 6;
            this.Ho = b.ke = a;
            this.pc = !1
        }
    };
    qb = g
})();
(function() {
    function g(a) {
        if (a && (a.getContext || a.dc) && !a.c2runtime) {
            a.c2runtime = this;
            var b = this;
            this.Uc = (this.Dk = /crosswalk/i.test(navigator.userAgent) || /xwalk/i.test(navigator.userAgent) || !("undefined" === typeof window.c2isCrosswalk || !window.c2isCrosswalk)) || "undefined" !== typeof window.device && ("undefined" !== typeof window.device.cordova || "undefined" !== typeof window.device.phonegap) || "undefined" !== typeof window.c2iscordova && window.c2iscordova;
            this.Cc = !!a.dc;
            this.Ov = "undefined" !== typeof window.AppMobi ||
                this.Cc;
            this.vd = !!window.c2cocoonjs;
            this.ae = !!window.c2ejecta;
            this.vd && (CocoonJS.App.onSuspended.addEventListener(function() {
                b.setSuspended(!0)
            }), CocoonJS.App.onActivated.addEventListener(function() {
                b.setSuspended(!1)
            }));
            this.ae && (document.addEventListener("pagehide", function() {
                b.setSuspended(!0)
            }), document.addEventListener("pageshow", function() {
                b.setSuspended(!1)
            }), document.addEventListener("resize", function() {
                b.setSize(window.innerWidth, window.innerHeight)
            }));
            this.kb = this.Cc || this.vd || this.ae;
            this.Gk =
                /edge\//i.test(navigator.userAgent);
            this.Of = (/msie/i.test(navigator.userAgent) || /trident/i.test(navigator.userAgent) || /iemobile/i.test(navigator.userAgent)) && !this.Gk;
            this.ir = /tizen/i.test(navigator.userAgent);
            this.Ck = /android/i.test(navigator.userAgent) && !this.ir && !this.Of && !this.Gk;
            this.Uv = (/iphone/i.test(navigator.userAgent) || /ipod/i.test(navigator.userAgent)) && !this.Of && !this.Gk;
            this.tF = /ipad/i.test(navigator.userAgent);
            this.Ph = this.Uv || this.tF || this.ae;
            this.cr = (/chrome/i.test(navigator.userAgent) ||
                /chromium/i.test(navigator.userAgent)) && !this.Of && !this.Gk;
            this.Gn = /amazonwebappplatform/i.test(navigator.userAgent);
            this.iF = /firefox/i.test(navigator.userAgent);
            this.mF = /safari/i.test(navigator.userAgent) && !this.cr && !this.Of && !this.Gk;
            this.nF = /windows/i.test(navigator.userAgent);
            this.Rv = this.Ri = "undefined" !== typeof window.c2nodewebkit || "undefined" !== typeof window.c2nwjs || /nodewebkit/i.test(navigator.userAgent) || /nwjs/i.test(navigator.userAgent);
            this.gF = "undefined" !== typeof window.is_scirra_arcade;
            this.jr = !("undefined" === typeof window.c2isWindows8 || !window.c2isWindows8);
            this.pF = !("undefined" === typeof window.c2isWindows8Capable || !window.c2isWindows8Capable);
            this.Ze = !("undefined" === typeof window.c2isWindowsPhone8 || !window.c2isWindowsPhone8);
            this.kr = !("undefined" === typeof window.c2isWindowsPhone81 || !window.c2isWindowsPhone81);
            this.Nn = !!window.cr_windows10;
            this.Mn = this.jr || this.pF || this.kr || this.Nn;
            this.br = !("undefined" === typeof window.c2isBlackberry10 || !window.c2isBlackberry10);
            this.Hn = this.Ck &&
                !this.cr && !this.Dk && !this.iF && !this.Gn && !this.kb;
            this.devicePixelRatio = 1;
            this.Pg = this.Uc || this.Dk || this.Ov || this.vd || this.Ck || this.Ph || this.Ze || this.kr || this.br || this.ir || this.ae;
            this.Pg || (this.Pg = /(blackberry|bb10|playbook|palm|symbian|nokia|windows\s+ce|phone|mobile|tablet|kindle|silk)/i.test(navigator.userAgent));
            this.Ln = !!(this.Ph && this.Uc && window.webkit);
            "undefined" === typeof cr_is_preview || this.Ri || "?nw" !== window.location.search && !/nodewebkit/i.test(navigator.userAgent) && !/nwjs/i.test(navigator.userAgent) ||
                (this.Ri = !0);
            this.canvas = a;
            this.Ru = document.getElementById("c2canvasdiv");
            this.J = this.S = null;
            this.Rq = "(unavailable)";
            this.fb = !1;
            this.zh = 0;
            this.B = null;
            this.mn = !1;
            this.Qw = this.Rw = 0;
            this.canvas.oncontextmenu = function(a) {
                a.preventDefault && a.preventDefault();
                return !1
            };
            this.canvas.onselectstart = function(a) {
                a.preventDefault && a.preventDefault();
                return !1
            };
            this.Cc && (window.c2runtime = this);
            this.Ri && (window.ondragover = function(a) {
                    a.preventDefault();
                    return !1
                }, window.ondrop = function(a) {
                    a.preventDefault();
                    return !1
                },
                window.nwgui && window.nwgui.App.clearCache && window.nwgui.App.clearCache());
            this.Hn && "undefined" !== typeof jQuery && jQuery("canvas").parents("*").css("overflow", "visible");
            this.width = a.width;
            this.height = a.height;
            this.ja = this.width;
            this.ga = this.height;
            this.Tm = this.width;
            this.lk = this.height;
            this.Sh = window.innerWidth;
            this.Rh = window.innerHeight;
            this.H = !0;
            this.Hk = !1;
            Date.now || (Date.now = function() {
                return +new Date
            });
            this.plugins = [];
            this.types = {};
            this.R = [];
            this.xb = [];
            this.aj = {};
            this.Be = [];
            this.zq = {};
            this.Gf = [];
            this.ri = [];
            this.ip = [];
            this.Zp = [];
            this.HC = [];
            this.xh = {};
            this.er = this.Ng = !1;
            this.Id = 0;
            this.dr = this.gr = !1;
            this.ve = [];
            this.Fk = !1;
            this.Vn = this.rs = "";
            this.kc = null;
            this.Rf = "";
            this.Ll = this.Lx = !1;
            this.ln = [];
            this.yh = this.Hg = 0;
            this.Gr = 30;
            this.oq = this.Yk = 0;
            this.qf = 1;
            this.hc = new gb;
            this.jg = new gb;
            this.fl = this.tn = this.pk = this.ni = this.Uh = this.sn = this.Qn = 0;
            this.gk = null;
            this.bn = [];
            this.yq = [];
            this.dn = -1;
            this.Ar = [
                []
            ];
            this.Ls = this.$n = 0;
            this.Do(null);
            this.Zk = [];
            this.cj = -1;
            this.Ew = this.dl = 0;
            this.ur = !0;
            this.rk = 0;
            this.Ml = [];
            this.Is = this.gs = -1;
            this.Lk = !0;
            this.Wh = 0;
            this.Si = !1;
            this.TG = 0;
            this.Bi = null;
            this.Dc = this.Cn = !1;
            this.Pw = new da;
            this.Jr = new da;
            this.Kr = new da;
            this.ux = [];
            this.Ie = new ib([]);
            this.Cs = new ib([]);
            this.Ai = [];
            this.Oi = {};
            this.Ag = {};
            this.sg = {};
            this.Gj = {};
            this.Mu = {};
            this.aw = this.Un = this.Xb = this.ic = this.$v = this.Tn = this.Ha = null;
            this.Ej = this.lr = !1;
            this.Gq = [null, null];
            this.Kf = 0;
            this.Dq = "";
            this.Vf = {};
            this.Jl = this.Tg = null;
            this.Nx = "";
            this.fo = [];
            this.xG()
        }
    }

    function l(a, b) {
        return 128 >= b ? a[3] : 256 >= b ? a[2] : 512 >= b ? a[1] :
            a[0]
    }

    function p() {
        try {
            return !!window.indexedDB
        } catch (a) {
            return !1
        }
    }

    function f(a) {
        a.target.result.createObjectStore("saves", {
            keyPath: "slot"
        })
    }

    function b(a, b, e, k) {
        try {
            var c = indexedDB.open("_C2SaveStates");
            c.onupgradeneeded = f;
            c.onerror = k;
            c.onsuccess = function(c) {
                c = c.target.result;
                c.onerror = k;
                c.transaction(["saves"], "readwrite").objectStore("saves").put({
                    slot: a,
                    data: b
                }).onsuccess = e
            }
        } catch (m) {
            k(m)
        }
    }

    function d(a, b, e) {
        try {
            var k = indexedDB.open("_C2SaveStates");
            k.onupgradeneeded = f;
            k.onerror = e;
            k.onsuccess = function(k) {
                k =
                    k.target.result;
                k.onerror = e;
                var c = k.transaction(["saves"]).objectStore("saves").get(a);
                c.onsuccess = function() {
                    c.result ? b(c.result.data) : b(null)
                }
            }
        } catch (c) {
            e(c)
        }
    }

    function c() {
        fa("Reloading for continuous preview");
        window.c2cocoonjs ? CocoonJS.App.reload() : -1 < window.location.search.indexOf("continuous") ? window.location.reload(!0) : window.location = window.location + "?continuous"
    }

    function a(a) {
        var b, e = {};
        for (b in a) !a.hasOwnProperty(b) || a[b] instanceof da || a[b] && "undefined" !== typeof a[b].CI || "spriteCreatedDestroyCallback" !==
            b && (e[b] = a[b]);
        return e
    }
    var n = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || window.oRequestAnimationFrame;
    g.prototype.xG = function() {
        var a = this;
        if (this.Ln) this.mE(function(b) {
            a.Rk(JSON.parse(b))
        }, function() {
            alert("Error fetching data.js")
        });
        else {
            var b;
            this.Ze ? b = new ActiveXObject("Microsoft.XMLHTTP") : b = new XMLHttpRequest;
            var e = "data.js";
            if (this.jr || this.Ze || this.kr || this.Nn) e = "data.json";
            b.open("GET", e, !0);
            var k = !1;
            if (!this.kb && "response" in b && "responseType" in b) try {
                b.responseType = "json", k = "json" === b.responseType
            } catch (c) {
                k = !1
            }
            if (!k && "responseType" in b) try {
                b.responseType = "text"
            } catch (m) {}
            if ("overrideMimeType" in b) try {
                b.overrideMimeType("application/json; charset=utf-8")
            } catch (d) {}
            this.Ze ? b.onreadystatechange = function() {
                4 === b.readyState && a.Rk(JSON.parse(b.responseText))
            } : (b.onload = function() {
                    if (k) a.Rk(b.response);
                    else if (a.ae) {
                        var e = b.responseText,
                            e = e.substr(e.indexOf("{"));
                        a.Rk(JSON.parse(e))
                    } else a.Rk(JSON.parse(b.responseText))
                },
                b.onerror = function(a) {
                    ha("Error requesting " + e + ":");
                    ha(a)
                });
            b.send()
        }
    };
    g.prototype.cF = function() {
        var a = this,
            b, e, k, c, m, d, r, f, h;
        this.Nh = (!this.kb || this.ae || this.Uc) && this.hH && !this.Hn;
        0 === this.Pc && this.Ph && (this.Nh = !1);
        this.devicePixelRatio = this.Nh ? window.devicePixelRatio || window.webkitDevicePixelRatio || window.mozDevicePixelRatio || window.msDevicePixelRatio || 1 : 1;
        this.Lc();
        0 < this.Pc && this.setSize(window.innerWidth, window.innerHeight, !0);
        this.canvas.addEventListener("webglcontextlost", function(b) {
            b.preventDefault();
            a.PF();
            fa("[Construct 2] WebGL context lost");
            window.cr_setSuspended(!0)
        }, !1);
        this.canvas.addEventListener("webglcontextrestored", function() {
            a.J.Jv();
            a.J.bg(a.J.width, a.J.height, !0);
            a.ic = null;
            a.Xb = null;
            a.Gq[0] = null;
            a.Gq[1] = null;
            a.QF();
            a.H = !0;
            fa("[Construct 2] WebGL context restored");
            window.cr_setSuspended(!1)
        }, !1);
        try {
            this.GD && (this.vd || this.ae || !this.kb) && (b = {
                alpha: !0,
                depth: !1,
                antialias: !1,
                powerPreference: "high-performance",
                failIfMajorPerformanceCaveat: !0
            }, this.S = this.canvas.getContext("webgl2",
                b) || this.canvas.getContext("webgl", b) || this.canvas.getContext("experimental-webgl", b))
        } catch (n) {}
        if (this.S) {
            if (b = this.S.getExtension("WEBGL_debug_renderer_info")) this.Rq = this.S.getParameter(b.UNMASKED_RENDERER_WEBGL) + " [" + this.S.getParameter(b.UNMASKED_VENDOR_WEBGL) + "]";
            this.fb && (this.Rq += " [front-to-back enabled]");
            this.kb || (this.Fc = document.createElement("canvas"), jQuery(this.Fc).appendTo(this.canvas.parentNode), this.Fc.oncontextmenu = function() {
                    return !1
                }, this.Fc.onselectstart = function() {
                    return !1
                },
                this.Fc.width = Math.round(this.Tm * this.devicePixelRatio), this.Fc.height = Math.round(this.lk * this.devicePixelRatio), jQuery(this.Fc).css({
                    width: this.Tm + "px",
                    height: this.lk + "px"
                }), this.mx(), this.Sr = this.Fc.getContext("2d"));
            this.J = new qb(this.S, this.Pg, this.fb);
            this.J.bg(this.canvas.width, this.canvas.height);
            this.J.dv = 0 !== this.yD;
            this.B = null;
            b = 0;
            for (e = this.R.length; b < e; b++)
                for (m = this.R[b], k = 0, c = m.wa.length; k < c; k++) r = m.wa[k], r.$b = this.J.Oq(r.id), r.Ee = this.J.ds(r.$b), this.Ej = this.Ej || this.J.sl(r.$b);
            b = 0;
            for (e = this.Be.length; b < e; b++) {
                f = this.Be[b];
                k = 0;
                for (c = f.wa.length; k < c; k++) r = f.wa[k], r.$b = this.J.Oq(r.id), r.Ee = this.J.ds(r.$b);
                f.Le();
                k = 0;
                for (c = f.ea.length; k < c; k++) {
                    h = f.ea[k];
                    m = 0;
                    for (d = h.wa.length; m < d; m++) r = h.wa[m], r.$b = this.J.Oq(r.id), r.Ee = this.J.ds(r.$b), this.Ej = this.Ej || this.J.sl(r.$b);
                    h.Le()
                }
            }
        } else {
            if (0 < this.Pc && this.Cc) {
                this.canvas = null;
                document.oncontextmenu = function() {
                    return !1
                };
                document.onselectstart = function() {
                    return !1
                };
                this.B = AppMobi.canvas.getContext("2d");
                try {
                    this.B.samplingMode = this.gb ?
                        "smooth" : "sharp", this.B.globalScale = 1, this.B.HTML5CompatibilityMode = !0, this.B.imageSmoothingEnabled = this.gb
                } catch (t) {}
                0 !== this.width && 0 !== this.height && (this.B.width = this.width, this.B.height = this.height)
            }
            this.B || (this.vd ? (b = {
                antialias: !!this.gb,
                alpha: !0
            }, this.B = this.canvas.getContext("2d", b)) : (b = {
                alpha: !0
            }, this.B = this.canvas.getContext("2d", b)), this.Po(this.B, this.gb));
            this.Sr = this.Fc = null
        }
        this.Ux = function(b) {
            a.ub(!1, b)
        };
        window == window.top || this.kb || this.Mn || this.Ze || (document.addEventListener("mousedown",
            function() {
                window.focus()
            }, !0), document.addEventListener("touchstart", function() {
            window.focus()
        }, !0));
        "undefined" !== typeof cr_is_preview && (this.vd && console.log("[Construct 2] In preview-over-wifi via CocoonJS mode"), -1 < window.location.search.indexOf("continuous") && (fa("Reloading for continuous preview"), this.Vn = "__c2_continuouspreview", this.Ll = !0), this.XF && !this.Pg && (jQuery(window).focus(function() {
            a.setSuspended(!1)
        }), jQuery(window).blur(function() {
            var b = window.parent;
            b && b.document.hasFocus() || a.setSuspended(!0)
        })));
        window.addEventListener("blur", function() {
            a.mj()
        });
        this.kb || (b = function(a) {
            if (pb(a) && document.activeElement && document.activeElement !== document.getElementsByTagName("body")[0] && document.activeElement.blur) try {
                document.activeElement.blur()
            } catch (b) {}
        }, "undefined" !== typeof PointerEvent ? document.addEventListener("pointerdown", b) : window.navigator.msPointerEnabled ? document.addEventListener("MSPointerDown", b) : document.addEventListener("touchstart", b), document.addEventListener("mousedown", b));
        0 === this.Pc &&
            this.Nh && 1 < this.devicePixelRatio && this.setSize(this.Nb, this.Mb, !0);
        this.cy();
        this.TE();
        this.go();
        this.Da = {}
    };
    g.prototype.setSize = function(a, b, e) {
        var k = 0,
            c = 0,
            m = 0,
            d = 0,
            d = 0;
        if (this.Sh !== a || this.Rh !== b || e) {
            this.Sh = a;
            this.Rh = b;
            var r = this.Pc;
            if ((m = (document.mozFullScreen || document.webkitIsFullScreen || !!document.msFullscreenElement || document.fullScreen || this.Si) && !this.Uc) || 0 !== this.Pc || e) m && 0 < this.Kf && (r = this.Kf), e = this.devicePixelRatio, 4 <= r ? (m = this.Nb / this.Mb, a / b > m ? (m *= b, 5 === r ? (d = m * e / this.Nb, 1 < d ? d = Math.floor(d) :
                    1 > d && (d = 1 / Math.ceil(1 / d)), m = this.Nb * d / e, d = this.Mb * d / e, k = (a - m) / 2, c = (b - d) / 2, a = m, b = d) : (k = (a - m) / 2, a = m)) : (d = a / m, 5 === r ? (d = d * e / this.Mb, 1 < d ? d = Math.floor(d) : 1 > d && (d = 1 / Math.ceil(1 / d)), m = this.Nb * d / e, d = this.Mb * d / e, k = (a - m) / 2, c = (b - d) / 2, a = m) : c = (b - d) / 2, b = d)) : this.Ri && this.Si && 0 === this.uv && (k = Math.floor((a - this.Nb) / 2), c = Math.floor((b - this.Mb) / 2), a = this.Nb, b = this.Mb), 2 > r && (this.ck = e), this.Tm = Math.round(a), this.lk = Math.round(b), this.width = Math.round(a * e), this.height = Math.round(b * e), this.H = !0, this.ny ? (this.ja = this.width,
                    this.ga = this.height, this.Ed = !0) : this.width < this.Nb && this.height < this.Mb || 1 === r ? (this.ja = this.width, this.ga = this.height, this.Ed = !0) : (this.ja = this.Nb, this.ga = this.Mb, this.Ed = !1, 2 === r ? (m = this.Nb / this.Mb, r = this.Sh / this.Rh, r < m ? this.ja = this.ga * r : r > m && (this.ga = this.ja / r)) : 3 === r && (m = this.Nb / this.Mb, r = this.Sh / this.Rh, r > m ? this.ja = this.ga * r : r < m && (this.ga = this.ja / r))), this.Ru && !this.kb && (jQuery(this.Ru).css({
                    width: Math.round(a) + "px",
                    height: Math.round(b) + "px",
                    "margin-left": Math.floor(k) + "px",
                    "margin-top": Math.floor(c) +
                        "px"
                }), "undefined" !== typeof cr_is_preview && jQuery("#borderwrap").css({
                    width: Math.round(a) + "px",
                    height: Math.round(b) + "px"
                })), this.canvas && (this.canvas.width = Math.round(a * e), this.canvas.height = Math.round(b * e), this.ae ? (this.canvas.style.left = Math.floor(k) + "px", this.canvas.style.top = Math.floor(c) + "px", this.canvas.style.width = Math.round(a) + "px", this.canvas.style.height = Math.round(b) + "px") : this.Nh && !this.kb && (this.canvas.style.width = Math.round(a) + "px", this.canvas.style.height = Math.round(b) + "px")), this.Fc &&
                (this.Fc.width = Math.round(a * e), this.Fc.height = Math.round(b * e), this.Fc.style.width = this.Tm + "px", this.Fc.style.height = this.lk + "px"), this.J && this.J.bg(Math.round(a * e), Math.round(b * e)), this.Cc && this.B && (this.B.width = Math.round(a), this.B.height = Math.round(b)), this.B && this.Po(this.B, this.gb), this.cy(), this.Uv && !this.Uc && window.scrollTo(0, 0)
        }
    };
    g.prototype.cy = function() {
        if (this.KC && 0 !== this.Rr) {
            var a = "portrait";
            2 === this.Rr && (a = "landscape");
            try {
                screen.orientation && screen.orientation.lock ? screen.orientation.lock(a).catch(function() {}) :
                    screen.lockOrientation ? screen.lockOrientation(a) : screen.webkitLockOrientation ? screen.webkitLockOrientation(a) : screen.mozLockOrientation ? screen.mozLockOrientation(a) : screen.msLockOrientation && screen.msLockOrientation(a)
            } catch (b) {
                console && console.warn && console.warn("Failed to lock orientation: ", b)
            }
        }
    };
    g.prototype.PF = function() {
        this.J.WC();
        this.lr = !0;
        var a, b, e;
        a = 0;
        for (b = this.R.length; a < b; a++) e = this.R[a], e.ll && e.ll()
    };
    g.prototype.QF = function() {
        this.lr = !1;
        var a, b, e;
        a = 0;
        for (b = this.R.length; a < b; a++) e = this.R[a],
            e.ml && e.ml()
    };
    g.prototype.mx = function() {
        if (!this.kb) {
            var a = (document.mozFullScreen || document.webkitIsFullScreen || document.fullScreen || document.msFullscreenElement || this.Si) && !this.Uc ? jQuery(this.canvas).offset() : jQuery(this.canvas).position();
            a.position = "absolute";
            jQuery(this.Fc).css(a)
        }
    };
    var h = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.msCancelAnimationFrame || window.oCancelAnimationFrame;
    g.prototype.setSuspended = function(a) {
        var b;
        if (a &&
            !this.Hk)
            for (fa("[Construct 2] Suspending"), this.Hk = !0, -1 !== this.gs && h && h(this.gs), -1 !== this.Is && clearTimeout(this.Is), a = 0, b = this.Ml.length; a < b; a++) this.Ml[a](!0);
        else if (!a && this.Hk) {
            fa("[Construct 2] Resuming");
            this.Hk = !1;
            this.Qn = $a();
            this.Uh = $a();
            a = this.Yk = this.tn = 0;
            for (b = this.Ml.length; a < b; a++) this.Ml[a](!1);
            this.ub(!1)
        }
    };
    g.prototype.Eu = function(a) {
        this.Ml.push(a)
    };
    g.prototype.mg = function(a) {
        return this.fo[a]
    };
    g.prototype.Rk = function(a) {
        a && a.project || ha("Project model unavailable");
        a = a.project;
        this.name = a[0];
        this.pv = a[1];
        this.Pc = a[12];
        this.uv = a[12];
        this.Nb = a[10];
        this.Mb = a[11];
        this.gx = this.Nb / 2;
        this.hx = this.Mb / 2;
        this.kb && !this.ae && (4 <= a[12] || 0 === a[12]) && (fa("[Construct 2] Letterbox scale fullscreen modes are not supported on this platform - falling back to 'Scale outer'"), this.uv = this.Pc = 3);
        this.Us = a[18];
        this.Ug = a[19];
        if (0 === this.Ug) {
            var b = new Image;
            b.crossOrigin = "anonymous";
            this.Bl(b, "loading-logo.png");
            this.Tg = {
                ao: b
            }
        } else if (4 === this.Ug) {
            b = new Image;
            b.src = "";
            var e = new Image;
            e.src = "";
            var k =
                new Image;
            k.src = "";
            var c = new Image;
            c.src = "";
            var m = new Image;
            m.src = "";
            var d = new Image;
            d.src = "";
            var r = new Image;
            r.src = "";
            var f = new Image;
            f.src = "";
            var h = new Image;
            h.src = "";
            var n = new Image;
            n.src = "";
            var t = new Image;
            t.src = "";
            var v = new Image;
            v.src = "";
            this.Tg = {
                ao: [b, e, k, c],
                eG: [m, d, r, f],
                lH: [h, n, t, v]
            }
        }
        this.dl = a[21];
        this.fo = xc();
        this.nf = new Q(this);
        b = 0;
        for (e = a[2].length; b < e; b++) r = a[2][b], k = this.mg(r[0]), rb(r, k.prototype), f = new k(this), f.Vo = r[1], f.$e = r[2], f.OI = r[5], f.Bw = r[9], f.I && f.I(), this.plugins.push(f);
        this.fo =
            xc();
        b = 0;
        for (e = a[3].length; b < e; b++) {
            r = a[3][b];
            m = this.mg(r[1]);
            f = null;
            k = 0;
            for (c = this.plugins.length; k < c; k++)
                if (this.plugins[k] instanceof m) {
                    f = this.plugins[k];
                    break
                }
            h = new f.N(f);
            h.name = r[0];
            h.Z = r[2];
            h.$q = r[3].slice(0);
            h.jH = r[3].length;
            h.NC = r[4];
            h.rE = r[5];
            h.Ia = r[11];
            h.Z ? (h.ai = [], h.Hf = this.rk++, h.sb = null) : (h.ai = null, h.Hf = -1, h.sb = []);
            h.jn = null;
            h.Li = null;
            h.hv = null;
            h.gc = !1;
            h.td = null;
            r[6] ? (h.yj = r[6][0], h.Ql = r[6][1], h.Rl = r[6][2]) : (h.yj = null, h.Ql = 0, h.Rl = 0);
            r[7] ? h.qd = r[7] : h.qd = null;
            h.index = b;
            h.k = [];
            h.Ym = [];
            h.fg = [new sb(h)];
            h.Re = 0;
            h.Yd = null;
            h.bD = 0;
            h.vj = !0;
            h.kp = tb;
            h.xn = ub;
            h.CE = vb;
            h.V = wb;
            h.tl = xb;
            h.Yf = Db;
            h.ge = Eb;
            h.wn = Fb;
            h.Hq = Gb;
            h.Lq = Hb;
            h.Bd = Ib;
            h.Mq = Jb;
            h.ik = new jb(this.Nb, this.Mb);
            h.Cm = !0;
            h.Dm = !1;
            h.Da = {};
            h.toString = Kb;
            h.xb = [];
            k = 0;
            for (c = r[8].length; k < c; k++) {
                n = r[8][k];
                t = this.mg(n[1]);
                v = null;
                m = 0;
                for (d = this.xb.length; m < d; m++)
                    if (this.xb[m] instanceof t) {
                        v = this.xb[m];
                        break
                    }
                v || (v = new t(this), v.Cw = [], v.eo = new da, v.I && v.I(), this.xb.push(v)); - 1 === v.Cw.indexOf(h) && v.Cw.push(h);
                m = new v.N(v, h);
                m.name = n[0];
                m.Ia = n[2];
                m.I();
                h.xb.push(m)
            }
            h.global = r[9];
            h.fr = r[10];
            h.wa = [];
            k = 0;
            for (c = r[12].length; k < c; k++) h.wa.push({
                id: r[12][k][0],
                name: r[12][k][1],
                $b: -1,
                Ee: !1,
                P: !0,
                index: k
            });
            h.cp = r[13];
            this.Us && !h.Z && !h.fr && f.$e || h.I();
            h.name && (this.types[h.name] = h);
            this.R.push(h);
            f.Vo && (k = new f.L(h), k.uid = this.dl++, k.qx = this.Ew++, k.Kh = 0, k.uk = Lb, k.toString = Mb, k.u = r[14], k.I(), h.k.push(k), this.Vf[k.uid.toString()] = k)
        }
        b = 0;
        for (e = a[4].length; b < e; b++)
            for (m = a[4][b], d = this.R[m[0]], k = 1, c = m.length; k < c; k++) r = this.R[m[k]], r.sb.push(d), d.ai.push(r);
        b = 0;
        for (e = a[28].length; b < e; b++) {
            m = a[28][b];
            d = [];
            k = 0;
            for (c = m.length; k < c; k++) d.push(this.R[m[k]]);
            k = 0;
            for (c = d.length; k < c; k++) d[k].gc = !0, d[k].td = d
        }
        if (0 < this.rk)
            for (b = 0, e = this.R.length; b < e; b++)
                if (r = this.R[b], !r.Z && r.sb.length) {
                    r.jn = Array(this.rk);
                    r.Li = Array(this.rk);
                    r.hv = Array(this.rk);
                    h = [];
                    k = v = t = n = 0;
                    for (c = r.sb.length; k < c; k++)
                        for (f = r.sb[k], r.jn[f.Hf] = n, n += f.jH, r.Li[f.Hf] = t, t += f.NC, r.hv[f.Hf] = v, v += f.rE, m = 0, d = f.wa.length; m < d; m++) h.push(za({}, f.wa[m]));
                    r.wa = h.concat(r.wa);
                    k = 0;
                    for (c = r.wa.length; k < c; k++) r.wa[k].index =
                        k
                }
        b = 0;
        for (e = a[5].length; b < e; b++) r = a[5][b], k = new Nb(this, r), this.aj[k.name] = k, this.Be.push(k);
        b = 0;
        for (e = a[6].length; b < e; b++) r = a[6][b], k = new Ob(this, r), this.zq[k.name] = k, this.Gf.push(k);
        b = 0;
        for (e = this.Gf.length; b < e; b++) this.Gf[b].Ob();
        b = 0;
        for (e = this.Gf.length; b < e; b++) this.Gf[b].Qs();
        b = 0;
        for (e = this.ip.length; b < e; b++) this.ip[b].Ob();
        B(this.ip);
        this.JC = a[7];
        this.Dq = a[8];
        this.hd = a[9];
        this.ck = 1;
        this.GD = a[13];
        this.gb = a[14];
        this.Tu = a[15];
        this.hH = a[17];
        this.Rr = a[20];
        this.KC = 0 < this.Rr;
        this.XF = a[22];
        this.Ed =
            this.ny = a[23];
        this.yD = a[24];
        this.fG = a[25];
        this.kG = a[26];
        this.fb = a[27] && !this.Of;
        this.Wo = Date.now();
        B(this.fo);
        this.cF()
    };
    var e = !1,
        t = 0,
        x = [];
    g.prototype.oG = function(a, b) {
        function e() {
            t--;
            k.ww()
        }
        var k = this;
        a.addEventListener("load", e);
        a.addEventListener("error", e);
        x.push([a, b]);
        this.ww()
    };
    g.prototype.ww = function() {
        for (var a; x.length && 100 > t;) t++, a = x.shift(), this.Bl(a[0], a[1])
    };
    g.prototype.qp = function(a, b) {
        a.cocoonLazyLoad = !0;
        a.onerror = function(b) {
            e = a.Ou = !0;
            console && console.error && console.error("Error loading image '" +
                a.src + "': ", b)
        };
        this.ae ? a.src = b : a.src || ("undefined" !== typeof XAPKReader ? XAPKReader.get(b, function(b) {
            a.src = b
        }, function(k) {
            e = a.Ou = !0;
            console && console.error && console.error("Error extracting image '" + b + "' from expansion file: ", k)
        }) : (a.crossOrigin = "anonymous", this.oG(a, b)));
        this.ri.push(a)
    };
    g.prototype.oE = function(a) {
        var b, e;
        b = 0;
        for (e = this.ri.length; b < e; b++)
            if (this.ri[b].XC === a) return this.ri[b];
        return null
    };
    var m = 0,
        q = !1;
    g.prototype.TE = function() {
        this.Bi && (m = this.Bi.NG(this.JC))
    };
    g.prototype.Ju = function() {
        var a =
            m,
            b = 0,
            e = 0,
            k = !0,
            c, d, e = 0;
        for (c = this.ri.length; e < c; e++) {
            d = this.ri[e];
            var r = d.Rm;
            if (!r || 0 >= r) r = 5E4;
            a += r;
            d.src && (d.complete || d.loaded) && !d.Ou ? b += r : k = !1
        }
        k && this.fG && this.Bi && (q || (this.Bi.UG(), q = !0), e = this.Bi.DE(), b += e, e < m && (k = !1));
        this.Xc = 0 == a ? 1 : b / a;
        return k
    };
    var u = !1;
    g.prototype.go = function() {
        if (this.B || this.J) {
            var a = this.B || this.Sr;
            this.Fc && this.mx();
            var b = window.innerWidth,
                k = window.innerHeight;
            this.Sh === b && this.Rh === k || this.setSize(b, k);
            this.Xc = 0;
            this.Zv = -1;
            var c = this;
            if (this.Ju() && (4 !== this.Ug || u)) this.UE();
            else {
                k = Date.now() - this.Wo;
                if (a) {
                    var m = this.width,
                        d = this.height,
                        b = this.devicePixelRatio;
                    if (3 > this.Ug && (this.vd || 500 <= k && this.Zv != this.Xc)) {
                        a.clearRect(0, 0, m, d);
                        var k = m / 2,
                            d = d / 2,
                            m = 0 === this.Ug && this.Tg.ao.complete,
                            r = 40 * b,
                            f = 0,
                            h = 80 * b,
                            t;
                        if (m) {
                            var v = this.Tg.ao,
                                h = v.width * b;
                            t = v.height * b;
                            r = h / 2;
                            f = t / 2;
                            a.drawImage(v, ua(k - r), ua(d - f), h, t)
                        }
                        1 >= this.Ug ? (k = ua(k - r) + .5, d = ua(d + (f + (m ? 12 * b : 0))) + .5, a.fillStyle = e ? "red" : "DodgerBlue", a.fillRect(k, d, Math.floor(h * this.Xc), 6 * b), a.strokeStyle = "black", a.strokeRect(k, d, h, 6 * b), a.strokeStyle =
                            "white", a.strokeRect(k - 1 * b, d - 1 * b, h + 2 * b, 8 * b)) : 2 === this.Ug && (a.font = this.ae ? "12pt ArialMT" : "12pt Arial", a.fillStyle = e ? "#f00" : "#999", a.iJ = "middle", b = Math.round(100 * this.Xc) + "%", m = a.measureText ? a.measureText(b) : null, a.fillText(b, k - (m ? m.width : 0) / 2, d));
                        this.Zv = this.Xc
                    } else if (4 === this.Ug) {
                        this.DD(a);
                        n ? n(function() {
                            c.go()
                        }) : setTimeout(function() {
                            c.go()
                        }, 16);
                        return
                    }
                }
                setTimeout(function() {
                    c.go()
                }, this.vd ? 10 : 100)
            }
        }
    };
    var w = -1,
        v = "undefined" === typeof cr_is_preview ? 200 : 0,
        k = !0,
        r = !1,
        H = 0,
        y = 0,
        I = "undefined" === typeof cr_is_preview ?
        3E3 : 0,
        R = null,
        M = null,
        G = 0;
    g.prototype.DD = function(a) {
        if (!u) {
            for (var b = Math.ceil(this.width), c = Math.ceil(this.height), m = this.Tg.ao, d = this.Tg.eG, f = this.Tg.lH, h = 0; 4 > h; ++h)
                if (!m[h].complete || !d[h].complete || !f[h].complete) return;
            0 === G && (w = Date.now());
            var h = Date.now(),
                n = !1,
                t = a,
                q, g;
            k || r ? (a.clearRect(0, 0, b, c), R && R.width === b && R.height === c || (R = document.createElement("canvas"), R.width = b, R.height = c, M = R.getContext("2d")), t = M, n = !0, k && 1 === G && (w = Date.now())) : a.globalAlpha = 1;
            t.fillStyle = "#333333";
            t.fillRect(0, 0, b,
                c);
            256 < this.lk ? (q = Ha(.22 * c, 105, .6 * b), g = .25 * q, t.drawImage(l(d, q), .5 * b - q / 2, .2 * c - g / 2, q, g), g = q = Math.min(.395 * c, .95 * b), t.drawImage(l(m, q), .5 * b - q / 2, .485 * c - g / 2, q, g), q = Ha(.22 * c, 105, .6 * b), g = .25 * q, t.drawImage(l(f, q), .5 * b - q / 2, .868 * c - g / 2, q, g), t.fillStyle = "#3C3C3C", q = b, g = Math.max(.005 * c, 2), t.fillRect(0, .8 * c - g / 2, q, g), t.fillStyle = e ? "red" : "#E0FF65", q = b * this.Xc, t.fillRect(.5 * b - q / 2, .8 * c - g / 2, q, g)) : (g = q = .55 * c, t.drawImage(l(m, q), .5 * b - q / 2, .45 * c - g / 2, q, g), t.fillStyle = "#3C3C3C", q = b, g = Math.max(.005 * c, 2), t.fillRect(0, .85 * c -
                g / 2, q, g), t.fillStyle = e ? "red" : "#E0FF65", q = b * this.Xc, t.fillRect(.5 * b - q / 2, .85 * c - g / 2, q, g));
            n && (k ? a.globalAlpha = 0 === G ? 0 : Math.min((h - w) / 300, 1) : r && (a.globalAlpha = Math.max(1 - (h - y) / 300, 0)), a.drawImage(R, 0, 0, b, c));
            k && 300 <= h - w && 2 <= G && (k = !1, H = h);
            !k && h - H >= I && !r && 1 <= this.Xc && (r = !0, y = h);
            if (r && h - y >= 300 + v || "undefined" !== typeof cr_is_preview && 1 <= this.Xc && 500 > Date.now() - w) u = !0, r = k = !1, this.Tg = M = R = null;
            ++G
        }
    };
    g.prototype.UE = function() {
        this.Fc && (this.canvas.parentNode.removeChild(this.Fc), this.Fc = this.Sr = null);
        this.Wo =
            Date.now();
        this.Uh = $a();
        var a, b, e;
        if (this.Us)
            for (a = 0, b = this.R.length; a < b; a++) e = this.R[a], e.Z || e.fr || !e.W.$e || e.I();
        else this.Lk = !1;
        a = 0;
        for (b = this.Be.length; a < b; a++) this.Be[a].YC();
        2 <= this.Pc && (a = this.Nb / this.Mb, b = this.width / this.height, this.ck = 2 !== this.Pc && b > a || 2 === this.Pc && b < a ? this.height / this.Mb : this.width / this.Nb);
        this.pv ? this.aj[this.pv].As() : this.Be[0].As();
        this.Us || (this.Wh = 1, this.trigger(Q.prototype.g.Cp, null), window.C2_RegisterSW && window.C2_RegisterSW());
        navigator.splashscreen && navigator.splashscreen.hide &&
            navigator.splashscreen.hide();
        a = 0;
        for (b = this.R.length; a < b; a++) e = this.R[a], e.Sw && e.Sw();
        document.hidden || document.webkitHidden || document.mozHidden || document.msHidden ? window.cr_setSuspended(!0) : this.ub(!1);
        this.Cc && AppMobi.webview.execute("onGameReady();")
    };
    g.prototype.ub = function(a, b, e) {
        if (this.Ha) {
            var k = $a();
            if (e || !this.Hk || a) {
                a || (n ? this.gs = n(this.Ux) : this.Is = setTimeout(this.Ux, this.Pg ? 1 : 16));
                b = b || k;
                var c = this.Pc;
                ((e = (document.mozFullScreen || document.webkitIsFullScreen || document.fullScreen || !!document.msFullscreenElement) &&
                    !this.Uc) || this.Si) && 0 < this.Kf && (c = this.Kf);
                if (0 < c) {
                    var c = window.innerWidth,
                        m = window.innerHeight;
                    this.Sh === c && this.Rh === m || this.setSize(c, m)
                }
                this.kb || (e ? this.mn || (this.mn = !0) : this.mn ? (this.mn = !1, 0 === this.Pc && this.setSize(Math.round(this.Rw / this.devicePixelRatio), Math.round(this.Qw / this.devicePixelRatio), !0)) : (this.Rw = this.width, this.Qw = this.height));
                this.Lk && (e = this.Ju(), this.Wh = this.Xc, e && (this.Lk = !1, this.Xc = 1, this.trigger(Q.prototype.g.Cp, null), window.C2_RegisterSW && window.C2_RegisterSW()));
                this.CF(b);
                !this.H && !this.vd || this.lr || this.Ll || a || (this.H = !1, this.J ? this.yc() : this.ud(), this.Jl && (this.canvas && this.canvas.toDataURL && (this.Nx = this.canvas.toDataURL(this.Jl[0], this.Jl[1]), window.cr_onSnapshot && window.cr_onSnapshot(this.Nx), this.trigger(Q.prototype.g.rA, null)), this.Jl = null));
                this.MI || (this.ni++, this.pk++, this.tn++);
                this.Yk += $a() - k
            }
        }
    };
    g.prototype.CF = function(a) {
        var b, e, k, c, m, d, r, h;
        1E3 <= a - this.Uh && (this.Uh += 1E3, 1E3 <= a - this.Uh && (this.Uh = a), this.sn = this.tn, this.tn = 0, this.oq = this.Yk, this.Yk = 0);
        b =
            0;
        0 !== this.Qn && (b = a - this.Qn, 0 > b && (b = 0), this.yh = b /= 1E3, .5 < this.yh ? this.yh = 0 : this.yh > 1 / this.Gr && (this.yh = 1 / this.Gr));
        this.Qn = a;
        this.Hg = this.yh * this.qf;
        this.hc.add(this.Hg);
        this.jg.add(b);
        a = (document.mozFullScreen || document.webkitIsFullScreen || document.fullScreen || !!document.msFullscreenElement || this.Si) && !this.Uc;
        2 <= this.Pc || a && 0 < this.Kf ? (b = this.Nb / this.Mb, e = this.width / this.height, k = this.Pc, a && 0 < this.Kf && (k = this.Kf), this.ck = 2 !== k && e > b || 2 === k && e < b ? this.height / this.Mb : this.width / this.Nb, this.Ha && (this.Ha.zl(this.Ha.scrollX),
            this.Ha.Al(this.Ha.scrollY))) : this.ck = this.Nh ? this.devicePixelRatio : 1;
        this.Lc();
        this.Id++;
        this.nf.DG();
        this.Id--;
        this.Lc();
        this.Id++;
        e = this.Pw.ig();
        a = 0;
        for (b = e.length; a < b; a++) e[a].$I();
        a = 0;
        for (b = this.R.length; a < b; a++)
            if (d = this.R[a], !d.Z && (d.xb.length || d.sb.length))
                for (e = 0, k = d.k.length; e < k; e++)
                    for (r = d.k[e], c = 0, m = r.la.length; c < m; c++) r.la[c].ub();
        a = 0;
        for (b = this.R.length; a < b; a++)
            if (d = this.R[a], !d.Z && (d.xb.length || d.sb.length))
                for (e = 0, k = d.k.length; e < k; e++)
                    for (r = d.k[e], c = 0, m = r.la.length; c < m; c++) h = r.la[c],
                        h.dG && h.dG();
        e = this.Jr.ig();
        a = 0;
        for (b = e.length; a < b; a++) e[a].ub();
        this.Id--;
        this.VE();
        for (a = 0; this.gk && 10 > a++;) this.av(this.gk);
        a = 0;
        for (b = this.Gf.length; a < b; a++) this.Gf[a].Vq = !1;
        this.Ha.Ah && this.Ha.Ah.Zb();
        B(this.ux);
        this.ur = !1;
        this.Id++;
        a = 0;
        for (b = this.R.length; a < b; a++)
            if (d = this.R[a], !d.Z && (d.xb.length || d.sb.length))
                for (e = 0, k = d.k.length; e < k; e++)
                    for (r = d.k[e], c = 0, m = r.la.length; c < m; c++) h = r.la[c], h.zj && h.zj();
        e = this.Kr.ig();
        a = 0;
        for (b = e.length; a < b; a++) e[a].zj();
        this.Id--
    };
    g.prototype.mj = function() {
        var a,
            b, e, k, c, m, d, r, h;
        a = 0;
        for (b = this.R.length; a < b; a++)
            if (d = this.R[a], !d.Z)
                for (e = 0, k = d.k.length; e < k; e++)
                    if (r = d.k[e], r.mj && r.mj(), r.la)
                        for (c = 0, m = r.la.length; c < m; c++) h = r.la[c], h.mj && h.mj()
    };
    g.prototype.av = function(a) {
        var b = this.Ha;
        this.Ha.VG();
        var e, k, c;
        if (this.J)
            for (e = 0, k = this.R.length; e < k; e++) c = this.R[e], c.Z || !c.Tl || c.global && 0 !== c.k.length || -1 !== a.Ak.indexOf(c) || c.Tl();
        b == a && B(this.nf.nd);
        B(this.ux);
        this.xx(!0);
        a.As();
        this.xx(!1);
        this.ur = this.H = !0;
        this.Lc()
    };
    g.prototype.xx = function(a) {
        var b, e, k, c, m, d, r,
            h, f;
        b = 0;
        for (e = this.xb.length; b < e; b++) k = this.xb[b], a ? k.gl && k.gl() : k.kl && k.kl();
        b = 0;
        for (e = this.R.length; b < e; b++)
            if (k = this.R[b], k.global || k.W.Vo)
                for (c = 0, m = k.k.length; c < m; c++)
                    if (d = k.k[c], a ? d.gl && d.gl() : d.kl && d.kl(), d.la)
                        for (r = 0, h = d.la.length; r < h; r++) f = d.la[r], a ? f.gl && f.gl() : f.kl && f.kl()
    };
    g.prototype.Aj = function(a) {
        this.Jr.add(a)
    };
    g.prototype.ZG = function(a) {
        this.Kr.add(a)
    };
    g.prototype.Fh = function(a) {
        return a && -1 !== a.df ? this.yh * a.df : this.Hg
    };
    g.prototype.ud = function() {
        this.Ha.ud(this.B);
        this.Cc && this.B.present()
    };
    g.prototype.yc = function() {
        this.fb && (this.zh = 1, this.Ha.Gg(this.J));
        this.Ha.yc(this.J);
        this.J.iG()
    };
    g.prototype.Xp = function(a) {
        a && this.bn.push(a)
    };
    g.prototype.vx = function(a) {
        Ga(this.bn, a)
    };
    g.prototype.Lg = function(a) {
        a = a.toString();
        return this.Vf.hasOwnProperty(a) ? this.Vf[a] : null
    };
    var E = [];
    g.prototype.ne = function(a) {
        var b, e;
        b = a.type.name;
        var k = null;
        if (this.xh.hasOwnProperty(b)) {
            if (k = this.xh[b], k.contains(a)) return
        } else k = E.length ? E.pop() : new da, this.xh[b] = k;
        k.add(a);
        this.Ng = !0;
        if (a.gc)
            for (b = 0, e = a.siblings.length; b <
                e; b++) this.ne(a.siblings[b]);
        this.er && k.Fj.push(a);
        this.dr || (this.Id++, this.trigger(Object.getPrototypeOf(a.type.W).g.Dt, a), this.Id--)
    };
    g.prototype.Lc = function() {
        if (this.Ng) {
            var a, b, e, k, c, m;
            this.er = !0;
            e = 0;
            for (c = this.ve.length; e < c; ++e)
                for (a = this.ve[e], b = a.type, b.k.push(a), k = 0, m = b.sb.length; k < m; ++k) b.sb[k].k.push(a), b.sb[k].vj = !0;
            B(this.ve);
            this.Yz();
            Za(this.xh);
            this.Ng = this.er = !1
        }
    };
    g.prototype.Yz = function() {
        for (var a in this.xh) this.xh.hasOwnProperty(a) && this.My(this.xh[a])
    };
    g.prototype.My = function(a) {
        var b =
            a.ig(),
            e = b[0].type,
            k, c, m, d, r, h;
        ab(e.k, a);
        e.vj = !0;
        0 === e.k.length && (e.Dm = !1);
        k = 0;
        for (c = e.sb.length; k < c; ++k) h = e.sb[k], ab(h.k, a), h.vj = !0;
        k = 0;
        for (c = this.nf.nd.length; k < c; ++k)
            if (r = this.nf.nd[k], r.$c.hasOwnProperty(e.index) && ab(r.$c[e.index].Mf, a), !e.Z)
                for (m = 0, d = e.sb.length; m < d; ++m) h = e.sb[m], r.$c.hasOwnProperty(h.index) && ab(r.$c[h.index].Mf, a);
        if (r = b[0].F) {
            if (r.Qd)
                for (m = r.k, k = 0, c = m.length; k < c; ++k) d = m[k], a.contains(d) && (d.jb(), r.Jc.update(d, d.kd, null), d.kd.set(0, 0, -1, -1));
            ab(r.k, a);
            r.El(0)
        }
        for (k = 0; k < b.length; ++k) this.Ly(b[k],
            e);
        a.clear();
        E.push(a);
        this.H = !0
    };
    g.prototype.Ly = function(a, b) {
        var e, k, c;
        e = 0;
        for (k = this.bn.length; e < k; ++e) this.bn[e](a);
        a.Ud && b.ik.update(a, a.Ud, null);
        (e = a.F) && e.rj(a, !0);
        if (a.la)
            for (e = 0, k = a.la.length; e < k; ++e) c = a.la[e], c.yd && c.yd(), c.behavior.eo.remove(a);
        this.Pw.remove(a);
        this.Jr.remove(a);
        this.Kr.remove(a);
        a.yd && a.yd();
        this.Vf.hasOwnProperty(a.uid.toString()) && delete this.Vf[a.uid.toString()];
        this.fl--;
        100 > b.Ym.length && b.Ym.push(a)
    };
    g.prototype.Sm = function(a, b, e, k) {
        if (a.Z) {
            var c = ua(Math.random() *
                a.ai.length);
            return this.Sm(a.ai[c], b, e, k)
        }
        return a.Yd ? this.Cg(a.Yd, b, !1, e, k, !1) : null
    };
    var J = [];
    g.prototype.Cg = function(a, b, e, k, c, m) {
        var d, r, h, f;
        if (!a) return null;
        var n = this.R[a[1]],
            t = n.W.$e;
        if (this.Lk && t && !n.fr || t && !this.J && 11 === a[0][11]) return null;
        var v = b;
        t || (b = null);
        var q;
        n.Ym.length ? (q = n.Ym.pop(), q.uc = !0, n.W.L.call(q, n)) : (q = new n.W.L(n), q.uc = !1);
        !e || m || this.Vf.hasOwnProperty(a[2].toString()) ? q.uid = this.dl++ : q.uid = a[2];
        this.Vf[q.uid.toString()] = q;
        q.qx = this.Ew++;
        q.Kh = n.k.length;
        d = 0;
        for (r = this.ve.length; d <
            r; ++d) this.ve[d].type === n && q.Kh++;
        q.uk = Lb;
        q.toString = Mb;
        h = a[3];
        if (q.uc) Za(q.Da);
        else {
            q.Da = {};
            if ("undefined" !== typeof cr_is_preview)
                for (q.Mv = [], q.Mv.length = h.length, d = 0, r = h.length; d < r; d++) q.Mv[d] = h[d][1];
            q.Lb = [];
            q.Lb.length = h.length
        }
        d = 0;
        for (r = h.length; d < r; d++) q.Lb[d] = h[d][0];
        if (t) {
            var g = a[0];
            q.x = ia(k) ? g[0] : k;
            q.y = ia(c) ? g[1] : c;
            q.z = g[2];
            q.width = g[3];
            q.height = g[4];
            q.depth = g[5];
            q.q = g[6];
            q.opacity = g[7];
            q.Ab = g[8];
            q.Bb = g[9];
            q.ac = g[10];
            d = g[11];
            !this.J && n.wa.length && (q.ac = d);
            q.Wd = lb(q.ac);
            this.S && mb(q, q.ac,
                this.S);
            if (q.uc) {
                d = 0;
                for (r = g[12].length; d < r; d++)
                    for (h = 0, f = g[12][d].length; h < f; h++) q.yb[d][h] = g[12][d][h];
                q.Tb.set(0, 0, 0, 0);
                q.Ud.set(0, 0, -1, -1);
                q.kd.set(0, 0, -1, -1);
                q.Nc.Fl(q.Tb);
                B(q.cq)
            } else {
                q.yb = g[12].slice(0);
                d = 0;
                for (r = q.yb.length; d < r; d++) q.yb[d] = g[12][d].slice(0);
                q.Na = [];
                q.rg = [];
                q.rg.length = n.wa.length;
                q.Tb = new xa(0, 0, 0, 0);
                q.Ud = new xa(0, 0, -1, -1);
                q.kd = new xa(0, 0, -1, -1);
                q.Nc = new ya;
                q.cq = [];
                q.ca = Qb;
                q.xI = Rb;
                q.wc = Sb;
                q.jb = Tb;
                q.gH = Ub;
                q.ky = Vb;
                q.Xe = Wb
            }
            q.Bj = !1;
            q.Yx = 0;
            q.Xx = 0;
            q.Wx = null;
            14 === g.length && (q.Bj = !0, q.Yx = g[13][0], q.Xx = g[13][1], q.Wx = g[13][2]);
            d = 0;
            for (r = n.wa.length; d < r; d++) q.rg[d] = !0;
            q.dg = !0;
            q.Le = Xb;
            q.Le();
            q.ly = !!q.Na.length;
            q.bq = !0;
            q.hq = !0;
            n.Cm = !0;
            q.visible = !0;
            q.df = -1;
            q.F = b;
            q.Rd = b.k.length;
            q.zh = 0;
            "undefined" === typeof q.Qa && (q.Qa = null);
            this.H = q.Vd = !0
        }
        var w;
        B(J);
        d = 0;
        for (r = n.sb.length; d < r; d++) J.push.apply(J, n.sb[d].xb);
        J.push.apply(J, n.xb);
        if (q.uc)
            for (d = 0, r = J.length; d < r; d++) {
                var u = J[d];
                w = q.la[d];
                w.uc = !0;
                u.behavior.L.call(w, u, q);
                g = a[4][d];
                h = 0;
                for (f = g.length; h < f; h++) w.u[h] = g[h];
                w.I();
                u.behavior.eo.add(q)
            } else
                for (q.la = [], d = 0, r = J.length; d < r; d++) u = J[d], w = new u.behavior.L(u, q), w.uc = !1, w.u = a[4][d].slice(0), w.I(), q.la.push(w), u.behavior.eo.add(q);
        g = a[5];
        if (q.uc)
            for (d = 0, r = g.length; d < r; d++) q.u[d] = g[d];
        else q.u = g.slice(0);
        this.ve.push(q);
        this.Ng = !0;
        b && (b.bk(q, !0), 1 !== b.Gc || 1 !== b.Hc) && (n.Dm = !0);
        this.fl++;
        if (n.gc) {
            if (q.gc = !0, q.uc ? B(q.siblings) : q.siblings = [], !e && !m) {
                d = 0;
                for (r = n.td.length; d < r; d++)
                    if (n.td[d] !== n) {
                        if (!n.td[d].Yd) return null;
                        q.siblings.push(this.Cg(n.td[d].Yd, v, !1, t ? q.x : k, t ? q.y : c, !0))
                    }
                d = 0;
                for (r = q.siblings.length; d <
                    r; d++)
                    for (q.siblings[d].siblings.push(q), h = 0; h < r; h++) d !== h && q.siblings[d].siblings.push(q.siblings[h])
            }
        } else q.gc = !1, q.siblings = null;
        q.I();
        d = 0;
        for (r = q.la.length; d < r; d++) q.la[d].cG && q.la[d].cG();
        return q
    };
    g.prototype.ze = function(a) {
        var b, e;
        b = 0;
        for (e = this.Ha.ea.length; b < e; b++) {
            var k = this.Ha.ea[b];
            if (ob(k.name, a)) return k
        }
        return null
    };
    g.prototype.Qc = function(a) {
        a = ua(a);
        0 > a && (a = 0);
        a >= this.Ha.ea.length && (a = this.Ha.ea.length - 1);
        return this.Ha.ea[a]
    };
    g.prototype.AE = function(a) {
        return ja(a) ? this.Qc(a) : this.ze(a.toString())
    };
    g.prototype.lq = function(a) {
        var b, e;
        b = 0;
        for (e = a.length; b < e; b++) a[b].V().X = !0
    };
    g.prototype.tl = function(a) {
        var b, e;
        b = 0;
        for (e = a.length; b < e; b++) a[b].tl()
    };
    g.prototype.Yf = function(a) {
        var b, e;
        b = 0;
        for (e = a.length; b < e; b++) a[b].Yf()
    };
    g.prototype.ge = function(a) {
        var b, e;
        b = 0;
        for (e = a.length; b < e; b++) a[b].ge()
    };
    g.prototype.iy = function(a) {
        if (a.Cm) {
            var b, e, k = a.k;
            b = 0;
            for (e = k.length; b < e; ++b) k[b].ky();
            k = this.ve;
            b = 0;
            for (e = k.length; b < e; ++b) k[b].type === a && k[b].ky();
            a.Cm = !1
        }
    };
    g.prototype.vE = function(a, b, e, k) {
        var c, d, m = a ? 1 !==
            a.Gc || 1 !== a.Hc : !1;
        if (b.Z)
            for (a = 0, c = b.ai.length; a < c; ++a) d = b.ai[a], m || d.Dm ? Ea(k, d.k) : (this.iy(d), d.ik.Fo(e, k));
        else m || b.Dm ? Ea(k, b.k) : (this.iy(b), b.ik.Fo(e, k))
    };
    g.prototype.Nl = function(a, b, e) {
        var k = a.V(),
            c, d, m, r, h = this.zb().Kb.Ld,
            f, n, q;
        if (k.X)
            for (k.X = !1, B(k.k), c = 0, r = a.k.length; c < r; c++) m = a.k[c], m.jb(), f = m.F.nb(b, e, !0), n = m.F.nb(b, e, !1), m.wc(f, n) ? k.k.push(m) : h && k.na.push(m);
        else {
            d = 0;
            q = h ? k.na : k.k;
            c = 0;
            for (r = q.length; c < r; c++) m = q[c], m.jb(), f = m.F.nb(b, e, !0), n = m.F.nb(b, e, !1), m.wc(f, n) && (h ? k.k.push(m) : (k.k[d] =
                k.k[c], d++));
            q.length = d
        }
        a.Bd();
        return k.Uq()
    };
    g.prototype.Rx = function(a, b) {
        if (!(a && b && a !== b && a.Vd && b.Vd)) return !1;
        a.jb();
        b.jb();
        var e = a.F,
            k = b.F,
            c, d, m, r, h, f, n, q;
        if (e === k || e.Gc === k.Gc && k.Hc === k.Hc && e.scale === k.scale && e.q === k.q && e.Fb === k.Fb) {
            if (!a.Tb.dF(b.Tb) || !a.Nc.Nv(b.Nc) || a.Bj && b.Bj) return !1;
            if (a.Bj) return this.Sx(a, b);
            if (b.Bj) return this.Sx(b, a);
            n = a.Qa && !a.Qa.Ui();
            c = b.Qa && !b.Qa.Ui();
            if (!n && !c) return !0;
            n ? (a.Qa.uh(a.width, a.height, a.q), n = a.Qa) : (this.Ie.uj(a.Nc, a.x, a.y, a.width, a.height), n = this.Ie);
            c ? (b.Qa.uh(b.width, b.height, b.q), q = b.Qa) : (this.Ie.uj(b.Nc, b.x, b.y, b.width, b.height), q = this.Ie);
            return n.Bk(q, b.x - a.x, b.y - a.y)
        }
        n = a.Qa && !a.Qa.Ui();
        c = b.Qa && !b.Qa.Ui();
        n ? (a.Qa.uh(a.width, a.height, a.q), this.Ie.Gx(a.Qa)) : this.Ie.uj(a.Nc, a.x, a.y, a.width, a.height);
        n = this.Ie;
        c ? (b.Qa.uh(b.width, b.height, b.q), this.Cs.Gx(b.Qa)) : this.Cs.uj(b.Nc, b.x, b.y, b.width, b.height);
        q = this.Cs;
        c = 0;
        for (d = n.Ad; c < d; c++) m = 2 * c, r = m + 1, h = n.hb[m], f = n.hb[r], n.hb[m] = e.Vc(h + a.x, f + a.y, !0), n.hb[r] = e.Vc(h + a.x, f + a.y, !1);
        n.jb();
        c = 0;
        for (d = q.Ad; c <
            d; c++) m = 2 * c, r = m + 1, h = q.hb[m], f = q.hb[r], q.hb[m] = k.Vc(h + b.x, f + b.y, !0), q.hb[r] = k.Vc(h + b.x, f + b.y, !1);
        q.jb();
        return n.Bk(q, 0, 0)
    };
    var F = new ya;
    new xa(0, 0, 0, 0);
    var z = [];
    g.prototype.Sx = function(a, b) {
        var e, k, c, d, m = b.Tb,
            r = a.x,
            h = a.y;
        a.wE(m, z);
        var f = b.Qa && !b.Qa.Ui();
        e = 0;
        for (k = z.length; e < k; ++e)
            if (c = z[e], d = c.Ta, m.eF(d, r, h) && (F.Fl(d), F.offset(r, h), F.Nv(b.Nc)))
                if (f)
                    if (b.Qa.uh(b.width, b.height, b.q), c.Xf) {
                        if (c.Xf.Bk(b.Qa, b.x - (r + d.left), b.y - (h + d.top))) return B(z), !0
                    } else {
                        if (this.Ie.uj(F, 0, 0, d.right - d.left, d.bottom - d.top),
                            this.Ie.Bk(b.Qa, b.x, b.y)) return B(z), !0
                    }
        else if (c.Xf) {
            if (this.Ie.uj(b.Nc, 0, 0, b.width, b.height), c.Xf.Bk(this.Ie, -(r + d.left), -(h + d.top))) return B(z), !0
        } else return B(z), !0;
        B(z);
        return !1
    };
    g.prototype.ey = function(a, b) {
        if (!b) return !1;
        var e, k, c, d, m;
        e = 0;
        for (k = a.xb.length; e < k; e++)
            if (a.xb[e].behavior instanceof b) return !0;
        if (!a.Z)
            for (e = 0, k = a.sb.length; e < k; e++)
                for (m = a.sb[e], c = 0, d = m.xb.length; c < d; c++)
                    if (m.xb[c].behavior instanceof b) return !0;
        return !1
    };
    g.prototype.Ms = function(a) {
        return this.ey(a, pc.RH)
    };
    g.prototype.Ns =
        function(a) {
            return this.ey(a, pc.UH)
        };
    var C = -1;
    g.prototype.trigger = function(a, b, e) {
        if (!this.Ha) return !1;
        var k = this.Ha.Ah;
        if (!k) return !1;
        var c = !1,
            d, m, r;
        C++;
        var h = k.tq;
        m = 0;
        for (r = h.length; m < r; ++m) d = this.ay(a, b, h[m], e), c = c || d;
        d = this.ay(a, b, k, e);
        C--;
        return c || d
    };
    g.prototype.ay = function(a, b, e, k) {
        var c = !1,
            d, m, r, h;
        if (b)
            for (r = this.Ks(a, b, b.type.name, e, k), c = c || r, h = b.type.sb, d = 0, m = h.length; d < m; ++d) r = this.Ks(a, b, h[d].name, e, k), c = c || r;
        else r = this.Ks(a, b, "system", e, k), c = c || r;
        return c
    };
    g.prototype.Ks = function(a,
        b, e, k, c) {
        var d, m = !1,
            r = !1,
            r = "undefined" !== typeof c,
            h = (r ? k.kv : k.by)[e];
        if (!h) return m;
        var f = null;
        k = 0;
        for (d = h.length; k < d; ++k)
            if (h[k].method == a) {
                f = h[k].ok;
                break
            }
        if (!f) return m;
        var n;
        r ? n = f[c] : n = f;
        if (!n) return null;
        k = 0;
        for (d = n.length; k < d; k++) a = n[k][0], c = n[k][1], r = this.lE(b, e, a, c), m = m || r;
        return m
    };
    g.prototype.lE = function(a, b, e, k) {
        var c, d, m = !1;
        this.Ls++;
        var r = this.zb().Kb;
        r && this.tl(r.bh);
        var h = 1 < this.Ls;
        this.tl(e.bh);
        h && this.mG();
        var f = this.Do(e);
        f.Kb = e;
        a && (c = this.types[b].V(), c.X = !1, B(c.k), c.k[0] = a, this.types[b].Bd());
        a = !0;
        if (e.parent) {
            b = f.Qx;
            for (c = e.parent; c;) b.push(c), c = c.parent;
            b.reverse();
            c = 0;
            for (d = b.length; c < d; c++)
                if (!b[c].FG()) {
                    a = !1;
                    break
                }
        }
        a && (this.pk++, e.Ld ? e.EG(k) : e.Zb(), m = m || f.Th);
        this.yo();
        h && this.bG();
        this.ge(e.bh);
        r && this.ge(r.bh);
        this.Ng && 0 === this.Id && 0 === C && !this.gr && this.Lc();
        this.Ls--;
        return m
    };
    g.prototype.Eh = function() {
        var a = this.zb();
        return a.Kb.ec[a.Ub]
    };
    g.prototype.hF = function() {
        return 0 === this.zb().Ub
    };
    g.prototype.mG = function() {
        this.$n++;
        this.$n >= this.Ar.length && this.Ar.push([])
    };
    g.prototype.bG =
        function() {
            this.$n--
        };
    g.prototype.yv = function() {
        return this.Ar[this.$n]
    };
    g.prototype.Do = function(a) {
        this.dn++;
        this.dn >= this.yq.length && this.yq.push(new Yb);
        var b = this.zb();
        b.reset(a);
        return b
    };
    g.prototype.yo = function() {
        this.dn--
    };
    g.prototype.zb = function() {
        return this.yq[this.dn]
    };
    g.prototype.Eo = function(a) {
        this.cj++;
        this.cj >= this.Zk.length && this.Zk.push(aa({
            name: a,
            index: 0,
            Ya: !1
        }));
        var b = this.Jq();
        b.name = a;
        b.index = 0;
        b.Ya = !1;
        return b
    };
    g.prototype.zo = function() {
        this.cj--
    };
    g.prototype.Jq = function() {
        return this.Zk[this.cj]
    };
    g.prototype.Av = function(a, b) {
        for (var e, k, c, d, m, r; b;) {
            e = 0;
            for (k = b.je.length; e < k; e++)
                if (r = b.je[e], r instanceof Zb && ob(a, r.name)) return r;
            b = b.parent
        }
        e = 0;
        for (k = this.Gf.length; e < k; e++)
            for (m = this.Gf[e], c = 0, d = m.Ig.length; c < d; c++)
                if (r = m.Ig[c], r instanceof Zb && ob(a, r.name)) return r;
        return null
    };
    g.prototype.Cv = function(a) {
        var b, e;
        b = 0;
        for (e = this.Be.length; b < e; b++)
            if (this.Be[b].Ia === a) return this.Be[b];
        return null
    };
    g.prototype.zn = function(a) {
        var b, e;
        b = 0;
        for (e = this.R.length; b < e; b++)
            if (this.R[b].Ia === a) return this.R[b];
        return null
    };
    g.prototype.xE = function(a) {
        var b, e;
        b = 0;
        for (e = this.Ai.length; b < e; b++)
            if (this.Ai[b].Ia === a) return this.Ai[b];
        return null
    };
    g.prototype.gD = function(a, b) {
        this.Jl = [a, b];
        this.H = !0
    };
    g.prototype.VE = function() {
        var a = this,
            e = this.rs,
            k = this.Rf,
            m = this.Vn,
            r = !1;
        this.Lx && (r = !0, e = "__c2_continuouspreview", this.Lx = !1);
        if (e.length) {
            this.Lc();
            k = this.JG();
            if (p() && !this.vd) b(e, k, function() {
                fa("Saved state to IndexedDB storage (" + k.length + " bytes)");
                a.Rf = k;
                a.trigger(Q.prototype.g.Dp, null);
                a.Rf = "";
                r && c()
            }, function(b) {
                try {
                    localStorage.setItem("__c2save_" +
                        e, k), fa("Saved state to WebStorage (" + k.length + " bytes)"), a.Rf = k, a.trigger(Q.prototype.g.Dp, null), a.Rf = "", r && c()
                } catch (d) {
                    fa("Failed to save game state: " + b + "; " + d), a.trigger(Q.prototype.g.Ut, null)
                }
            });
            else try {
                localStorage.setItem("__c2save_" + e, k), fa("Saved state to WebStorage (" + k.length + " bytes)"), a.Rf = k, this.trigger(Q.prototype.g.Dp, null), a.Rf = "", r && c()
            } catch (h) {
                fa("Error saving to WebStorage: " + h), a.trigger(Q.prototype.g.Ut, null)
            }
            this.Vn = this.rs = "";
            this.kc = null
        }
        if (m.length) {
            if (p() && !this.vd) d(m,
                function(b) {
                    b ? (a.kc = b, fa("Loaded state from IndexedDB storage (" + a.kc.length + " bytes)")) : (a.kc = localStorage.getItem("__c2save_" + m) || "", fa("Loaded state from WebStorage (" + a.kc.length + " bytes)"));
                    a.Ll = !1;
                    a.kc || (a.kc = null, a.trigger(Q.prototype.g.lm, null))
                },
                function() {
                    a.kc = localStorage.getItem("__c2save_" + m) || "";
                    fa("Loaded state from WebStorage (" + a.kc.length + " bytes)");
                    a.Ll = !1;
                    a.kc || (a.kc = null, a.trigger(Q.prototype.g.lm, null))
                });
            else {
                try {
                    this.kc = localStorage.getItem("__c2save_" + m) || "", fa("Loaded state from WebStorage (" +
                        this.kc.length + " bytes)")
                } catch (f) {
                    this.kc = null
                }
                this.Ll = !1;
                a.kc || (a.kc = null, a.trigger(Q.prototype.g.lm, null))
            }
            this.rs = this.Vn = ""
        }
        null !== this.kc && (this.Lc(), this.AF(this.kc) ? (this.Rf = this.kc, this.trigger(Q.prototype.g.BA, null), this.Rf = "") : a.trigger(Q.prototype.g.lm, null), this.kc = null)
    };
    g.prototype.JG = function() {
        var b, e, k, c, d, m, r, h = {
            c2save: !0,
            version: 1,
            rt: {
                time: this.hc.ta,
                walltime: this.jg.ta,
                timescale: this.qf,
                tickcount: this.ni,
                execcount: this.pk,
                next_uid: this.dl,
                running_layout: this.Ha.Ia,
                start_time_offset: Date.now() -
                    this.Wo
            },
            types: {},
            layouts: {},
            events: {
                groups: {},
                cnds: {},
                acts: {},
                vars: {}
            }
        };
        b = 0;
        for (e = this.R.length; b < e; b++)
            if (d = this.R[b], !d.Z && !this.Ms(d)) {
                m = {
                    instances: []
                };
                Ya(d.Da) && (m.ex = a(d.Da));
                k = 0;
                for (c = d.k.length; k < c; k++) m.instances.push(this.qs(d.k[k]));
                h.types[d.Ia.toString()] = m
            }
        b = 0;
        for (e = this.Be.length; b < e; b++) k = this.Be[b], h.layouts[k.Ia.toString()] = k.$a();
        c = h.events.groups;
        b = 0;
        for (e = this.Ai.length; b < e; b++) k = this.Ai[b], c[k.Ia.toString()] = this.Oi[k.vk].Gh;
        e = h.events.cnds;
        for (r in this.Ag) this.Ag.hasOwnProperty(r) &&
            (b = this.Ag[r], Ya(b.Da) && (e[r] = {
                ex: a(b.Da)
            }));
        e = h.events.acts;
        for (r in this.sg) this.sg.hasOwnProperty(r) && (b = this.sg[r], Ya(b.Da) && (e[r] = {
            ex: a(b.Da)
        }));
        e = h.events.vars;
        for (r in this.Gj) this.Gj.hasOwnProperty(r) && (b = this.Gj[r], b.On || b.parent && !b.Kk || (e[r] = b.data));
        h.system = this.nf.$a();
        return JSON.stringify(h)
    };
    g.prototype.tx = function() {
        var a, b, e, k, c, d;
        this.Vf = {};
        a = 0;
        for (b = this.R.length; a < b; a++)
            if (e = this.R[a], !e.Z)
                for (k = 0, c = e.k.length; k < c; k++) d = e.k[k], this.Vf[d.uid.toString()] = d
    };
    g.prototype.AF = function(a) {
        var b;
        try {
            b = JSON.parse(a)
        } catch (e) {
            return !1
        }
        if (!b.c2save || 1 < b.version) return !1;
        this.Fk = !0;
        a = b.rt;
        this.hc.reset();
        this.hc.ta = a.time;
        this.jg.reset();
        this.jg.ta = a.walltime || 0;
        this.qf = a.timescale;
        this.ni = a.tickcount;
        this.pk = a.execcount;
        this.Wo = Date.now() - a.start_time_offset;
        var k = a.running_layout;
        if (k !== this.Ha.Ia)
            if (k = this.Cv(k)) this.av(k);
            else return;
        var c, d, m, r, h, f, n;
        f = b.types;
        for (d in f)
            if (f.hasOwnProperty(d) && (r = this.zn(parseInt(d, 10))) && !r.Z && !this.Ms(r)) {
                f[d].ex ? r.Da = f[d].ex : Za(r.Da);
                h = r.k;
                m = f[d].instances;
                k = 0;
                for (c = sa(h.length, m.length); k < c; k++) this.Wn(h[k], m[k]);
                k = m.length;
                for (c = h.length; k < c; k++) this.ne(h[k]);
                k = h.length;
                for (c = m.length; k < c; k++) {
                    h = null;
                    if (r.W.$e && (h = this.Ha.yn(m[k].w.l), !h)) continue;
                    h = this.Cg(r.Yd, h, !1, 0, 0, !0);
                    this.Wn(h, m[k])
                }
                r.vj = !0
            }
        this.Lc();
        this.tx();
        c = b.layouts;
        for (d in c) c.hasOwnProperty(d) && (k = this.Cv(parseInt(d, 10))) && k.lb(c[d]);
        c = b.events.groups;
        for (d in c) c.hasOwnProperty(d) && (k = this.xE(parseInt(d, 10))) && this.Oi[k.vk] && this.Oi[k.vk].Ro(c[d]);
        k = b.events.cnds;
        for (d in this.Ag) this.Ag.hasOwnProperty(d) &&
            (k.hasOwnProperty(d) ? this.Ag[d].Da = k[d].ex : this.Ag[d].Da = {});
        k = b.events.acts;
        for (d in this.sg) this.sg.hasOwnProperty(d) && (k.hasOwnProperty(d) ? this.sg[d].Da = k[d].ex : this.sg[d].Da = {});
        k = b.events.vars;
        for (d in k) k.hasOwnProperty(d) && this.Gj.hasOwnProperty(d) && (this.Gj[d].data = k[d]);
        this.dl = a.next_uid;
        this.Fk = !1;
        k = 0;
        for (c = this.ln.length; k < c; ++k) h = this.ln[k], this.trigger(Object.getPrototypeOf(h.type.W).g.jh, h);
        B(this.ln);
        this.nf.lb(b.system);
        k = 0;
        for (c = this.R.length; k < c; k++)
            if (r = this.R[k], !r.Z && !this.Ms(r))
                for (b =
                    0, d = r.k.length; b < d; b++) {
                    h = r.k[b];
                    if (r.gc)
                        for (f = h.uk(), B(h.siblings), a = 0, m = r.td.length; a < m; a++) n = r.td[a], r !== n && h.siblings.push(n.k[f]);
                    h.pe && h.pe();
                    if (h.la)
                        for (a = 0, m = h.la.length; a < m; a++) f = h.la[a], f.pe && f.pe()
                }
            return this.H = !0
    };
    g.prototype.qs = function(b, e) {
        var k, c, d, m, r;
        m = b.type;
        d = m.W;
        var h = {};
        e ? h.c2 = !0 : h.uid = b.uid;
        Ya(b.Da) && (h.ex = a(b.Da));
        if (b.Lb && b.Lb.length)
            for (h.ivs = {}, k = 0, c = b.Lb.length; k < c; k++) h.ivs[b.type.$q[k].toString()] = b.Lb[k];
        if (d.$e) {
            d = {
                x: b.x,
                y: b.y,
                w: b.width,
                h: b.height,
                l: b.F.Ia,
                zi: b.Xe()
            };
            0 !== b.q && (d.a = b.q);
            1 !== b.opacity && (d.o = b.opacity);
            .5 !== b.Ab && (d.hX = b.Ab);
            .5 !== b.Bb && (d.hY = b.Bb);
            0 !== b.ac && (d.bm = b.ac);
            b.visible || (d.v = b.visible);
            b.Vd || (d.ce = b.Vd); - 1 !== b.df && (d.mts = b.df);
            if (m.wa.length)
                for (d.fx = [], k = 0, c = m.wa.length; k < c; k++) r = m.wa[k], d.fx.push({
                    name: r.name,
                    active: b.rg[r.index],
                    params: b.yb[r.index]
                });
            h.w = d
        }
        if (b.la && b.la.length)
            for (h.behs = {}, k = 0, c = b.la.length; k < c; k++) m = b.la[k], m.$a && (h.behs[m.type.Ia.toString()] = m.$a());
        b.$a && (h.data = b.$a());
        return h
    };
    g.prototype.zE = function(a, b) {
        var e,
            k;
        e = 0;
        for (k = a.$q.length; e < k; e++)
            if (a.$q[e] === b) return e;
        return -1
    };
    g.prototype.uE = function(a, b) {
        var e, k;
        e = 0;
        for (k = a.la.length; e < k; e++)
            if (a.la[e].type.Ia === b) return e;
        return -1
    };
    g.prototype.Wn = function(a, b, e) {
        var k, c, d, m, r;
        r = a.type;
        m = r.W;
        if (e) {
            if (!b.c2) return
        } else a.uid = b.uid;
        b.ex ? a.Da = b.ex : Za(a.Da);
        if (c = b.ivs)
            for (k in c) c.hasOwnProperty(k) && (d = this.zE(r, parseInt(k, 10)), 0 > d || d >= a.Lb.length || (a.Lb[d] = c[k]));
        if (m.$e) {
            d = b.w;
            a.F.Ia !== d.l && (c = a.F, a.F = this.Ha.yn(d.l), a.F ? (c.rj(a, !0), a.F.bk(a, !0), a.ca(), a.F.El(0)) :
                (a.F = c, e || this.ne(a)));
            a.x = d.x;
            a.y = d.y;
            a.width = d.w;
            a.height = d.h;
            a.Rd = d.zi;
            a.q = d.hasOwnProperty("a") ? d.a : 0;
            a.opacity = d.hasOwnProperty("o") ? d.o : 1;
            a.Ab = d.hasOwnProperty("hX") ? d.hX : .5;
            a.Bb = d.hasOwnProperty("hY") ? d.hY : .5;
            a.visible = d.hasOwnProperty("v") ? d.v : !0;
            a.Vd = d.hasOwnProperty("ce") ? d.ce : !0;
            a.df = d.hasOwnProperty("mts") ? d.mts : -1;
            a.ac = d.hasOwnProperty("bm") ? d.bm : 0;
            a.Wd = lb(a.ac);
            this.S && mb(a, a.ac, this.S);
            a.ca();
            if (d.hasOwnProperty("fx"))
                for (e = 0, c = d.fx.length; e < c; e++) m = r.Lq(d.fx[e].name), 0 > m || (a.rg[m] =
                    d.fx[e].active, a.yb[m] = d.fx[e].params);
            a.Le()
        }
        if (r = b.behs)
            for (k in r) r.hasOwnProperty(k) && (e = this.uE(a, parseInt(k, 10)), 0 > e || a.la[e].lb(r[k]));
        b.data && a.lb(b.data)
    };
    g.prototype.lv = function(a, b, e) {
        window.resolveLocalFileSystemURL(cordova.file.applicationDirectory + "www/" + a, function(a) {
            a.file(b, e)
        }, e)
    };
    g.prototype.mE = function(a, b) {
        this.lv("data.js", function(e) {
            var k = new FileReader;
            k.onload = function(b) {
                a(b.target.result)
            };
            k.onerror = b;
            k.readAsText(e)
        }, b)
    };
    var O = [],
        ba = 0;
    g.prototype.Er = function() {
        if (O.length &&
            !(8 <= ba)) {
            ba++;
            var a = O.shift();
            this.jD(a.filename, a.WG, a.JD)
        }
    };
    g.prototype.nv = function(a, b, e) {
        var k = this;
        O.push({
            filename: a,
            WG: function(a) {
                ba--;
                k.Er();
                b(a)
            },
            JD: function(a) {
                ba--;
                k.Er();
                e(a)
            }
        });
        this.Er()
    };
    g.prototype.jD = function(a, b, e) {
        this.lv(a, function(a) {
            var e = new FileReader;
            e.onload = function(a) {
                b(a.target.result)
            };
            e.readAsArrayBuffer(a)
        }, e)
    };
    g.prototype.nE = function(a, b, e) {
        var k = "",
            c = a.toLowerCase(),
            d = c.substr(c.length - 4),
            c = c.substr(c.length - 5);
        ".mp4" === d ? k = "video/mp4" : ".webm" === c ? k = "video/webm" :
            ".m4a" === d ? k = "audio/mp4" : ".mp3" === d && (k = "audio/mpeg");
        this.nv(a, function(a) {
            a = URL.createObjectURL(new Blob([a], {
                type: k
            }));
            b(a)
        }, e)
    };
    g.prototype.fF = function(a) {
        return /^(?:[a-z]+:)?\/\//.test(a) || "data:" === a.substr(0, 5) || "blob:" === a.substr(0, 5)
    };
    g.prototype.Bl = function(a, b) {
        this.Ln && !this.fF(b) ? this.nE(b, function(b) {
            a.src = b
        }, function(a) {
            alert("Failed to load image: " + a)
        }) : a.src = b
    };
    g.prototype.Po = function(a, b) {
        "undefined" !== typeof a.imageSmoothingEnabled ? a.imageSmoothingEnabled = b : (a.webkitImageSmoothingEnabled =
            b, a.mozImageSmoothingEnabled = b, a.msImageSmoothingEnabled = b)
    };
    $b = function(a) {
        return new g(document.getElementById(a))
    };
    ac = function(a, b) {
        return new g({
            dc: !0,
            width: a,
            height: b
        })
    };
    window.cr_createRuntime = $b;
    window.cr_createDCRuntime = ac;
    window.createCocoonJSRuntime = function() {
        window.c2cocoonjs = !0;
        var a = document.createElement("screencanvas") || document.createElement("canvas");
        a.zc = !0;
        document.body.appendChild(a);
        a = new g(a);
        window.c2runtime = a;
        window.addEventListener("orientationchange", function() {
            window.c2runtime.setSize(window.innerWidth,
                window.innerHeight)
        });
        window.c2runtime.setSize(window.innerWidth, window.innerHeight);
        return a
    };
    window.createEjectaRuntime = function() {
        var a = new g(document.getElementById("canvas"));
        window.c2runtime = a;
        window.c2runtime.setSize(window.innerWidth, window.innerHeight);
        return a
    }
})();
window.cr_getC2Runtime = function() {
    var g = document.getElementById("c2canvas");
    return g ? g.c2runtime : window.c2runtime ? window.c2runtime : null
};
window.cr_getSnapshot = function(g, l) {
    var p = window.cr_getC2Runtime();
    p && p.gD(g, l)
};
window.cr_sizeCanvas = function(g, l) {
    if (0 !== g && 0 !== l) {
        var p = window.cr_getC2Runtime();
        p && p.setSize(g, l)
    }
};
window.cr_setSuspended = function(g) {
    var l = window.cr_getC2Runtime();
    l && l.setSuspended(g)
};
(function() {
    function g(a, b) {
        this.c = a;
        this.Ah = null;
        this.scrollX = this.c.Nb / 2;
        this.scrollY = this.c.Mb / 2;
        this.scale = 1;
        this.q = 0;
        this.Mi = !0;
        this.name = b[0];
        this.WF = b[1];
        this.VF = b[2];
        this.width = b[1];
        this.height = b[2];
        this.fy = b[3];
        this.Jx = b[4];
        this.Ia = b[5];
        var c = b[6],
            d, h;
        this.ea = [];
        this.Ak = [];
        d = 0;
        for (h = c.length; d < h; d++) {
            var f = new bc(this, c[d]);
            f.Gw = d;
            this.ea.push(f)
        }
        c = b[7];
        this.Og = [];
        d = 0;
        for (h = c.length; d < h; d++) {
            var f = c[d],
                n = this.c.R[f[1]];
            n.Yd || (n.Yd = f);
            this.Og.push(f); - 1 === this.Ak.indexOf(n) && this.Ak.push(n)
        }
        this.wa = [];
        this.Na = [];
        this.dg = !0;
        this.yb = [];
        d = 0;
        for (h = b[8].length; d < h; d++) this.wa.push({
            id: b[8][d][0],
            name: b[8][d][1],
            $b: -1,
            Ee: !1,
            P: !0,
            index: d
        }), this.yb.push(b[8][d][2].slice(0));
        this.Le();
        this.qj = new xa(0, 0, 1, 1);
        this.hs = new xa(0, 0, 1, 1);
        this.Yg = {}
    }

    function l(a, b) {
        return a.Rd - b.Rd
    }

    function p(a, b) {
        this.jc = a;
        this.c = a.c;
        this.k = [];
        this.scale = 1;
        this.q = 0;
        this.Ef = !1;
        this.hg = new xa(0, 0, 0, 0);
        this.Zx = new ya;
        this.ab = this.Xa = this.bb = this.Wa = 0;
        this.kg = !1;
        this.lg = -1;
        this.mq = 0;
        this.name = b[0];
        this.index = b[1];
        this.Ia = b[2];
        this.visible = b[3];
        this.re = b[4];
        this.Ke = b[5];
        this.Gc = b[6];
        this.Hc = b[7];
        this.opacity = b[8];
        this.rn = b[9];
        this.Qd = b[10];
        this.Fb = b[11];
        this.ac = b[12];
        this.FD = b[13];
        this.Wd = "source-over";
        this.eb = this.ib = 0;
        this.Jc = null;
        this.Sf = f();
        this.Ge = !0;
        this.$i = new xa(0, 0, -1, -1);
        this.xc = new xa(0, 0, -1, -1);
        this.Qd && (this.Jc = new kb(this.c.Nb, this.c.Mb));
        this.jf = !1;
        var c = b[14],
            d, h;
        this.Ox = [];
        this.Hd = [];
        this.kk = [];
        d = 0;
        for (h = c.length; d < h; d++) {
            var n = c[d],
                g = this.c.R[n[1]];
            g.Yd || (g.Yd = n, g.bD = this.index);
            this.Hd.push(n); - 1 === this.jc.Ak.indexOf(g) &&
                this.jc.Ak.push(g)
        }
        Da(this.Ox, this.Hd);
        this.wa = [];
        this.Na = [];
        this.dg = !0;
        this.yb = [];
        d = 0;
        for (h = b[15].length; d < h; d++) this.wa.push({
            id: b[15][d][0],
            name: b[15][d][1],
            $b: -1,
            Ee: !1,
            P: !0,
            index: d
        }), this.yb.push(b[15][d][2].slice(0));
        this.Le();
        this.qj = new xa(0, 0, 1, 1);
        this.hs = new xa(0, 0, 1, 1)
    }

    function f() {
        return a.length ? a.pop() : []
    }

    function b(b) {
        B(b);
        a.push(b)
    }
    g.prototype.IG = function(a) {
        var b = a.type.Ia.toString();
        this.Yg.hasOwnProperty(b) || (this.Yg[b] = []);
        this.Yg[b].push(this.c.qs(a))
    };
    g.prototype.Gv = function() {
        var a =
            this.ea[0];
        return !a.Ke && 1 === a.opacity && !a.rn && a.visible
    };
    g.prototype.Le = function() {
        B(this.Na);
        this.dg = !0;
        var a, b, c;
        a = 0;
        for (b = this.wa.length; a < b; a++) c = this.wa[a], c.P && (this.Na.push(c), c.Ee || (this.dg = !1))
    };
    g.prototype.Kq = function(a) {
        var b, c, d;
        b = 0;
        for (c = this.wa.length; b < c; b++)
            if (d = this.wa[b], d.name === a) return d;
        return null
    };
    var d = [],
        c = !0;
    g.prototype.As = function() {
        this.Jx && (this.Ah = this.c.zq[this.Jx], this.Ah.Qs());
        this.c.Ha = this;
        this.width = this.WF;
        this.height = this.VF;
        this.scrollX = this.c.Nb / 2;
        this.scrollY =
            this.c.Mb / 2;
        var a, b, h, m, f, n, g;
        a = 0;
        for (h = this.c.R.length; a < h; a++)
            if (b = this.c.R[a], !b.Z)
                for (f = b.k, b = 0, m = f.length; b < m; b++)
                    if (n = f[b], n.F) {
                        var v = n.F.Gw;
                        v >= this.ea.length && (v = this.ea.length - 1);
                        n.F = this.ea[v]; - 1 === n.F.k.indexOf(n) && n.F.k.push(n);
                        n.F.kg = !0
                    }
        if (!c)
            for (a = 0, h = this.ea.length; a < h; ++a) this.ea[a].k.sort(l);
        B(d);
        this.OC();
        a = 0;
        for (h = this.ea.length; a < h; a++) n = this.ea[a], n.$C(), n.mp();
        f = !1;
        if (!this.Mi) {
            for (g in this.Yg)
                if (this.Yg.hasOwnProperty(g) && (b = this.c.zn(parseInt(g, 10))) && !b.Z && this.c.Ns(b)) {
                    m =
                        this.Yg[g];
                    a = 0;
                    for (h = m.length; a < h; a++) {
                        n = null;
                        if (b.W.$e && (n = this.yn(m[a].w.l), !n)) continue;
                        n = this.c.Cg(b.Yd, n, !1, 0, 0, !0);
                        this.c.Wn(n, m[a]);
                        f = !0;
                        d.push(n)
                    }
                    B(m)
                }
            a = 0;
            for (h = this.ea.length; a < h; a++) this.ea[a].k.sort(l), this.ea[a].kg = !0
        }
        f && (this.c.Lc(), this.c.tx());
        for (a = 0; a < d.length; a++)
            if (n = d[a], n.type.gc)
                for (h = n.uk(), b = 0, m = n.type.td.length; b < m; b++) g = n.type.td[b], n.type !== g && (g.k.length > h ? n.siblings.push(g.k[h]) : g.Yd && (f = this.c.Cg(g.Yd, n.F, !0, n.x, n.y, !0), this.c.Lc(), g.kp(), n.siblings.push(f), d.push(f)));
        a = 0;
        for (h = this.Og.length; a < h; a++) n = this.Og[a], b = this.c.R[n[1]], b.gc || this.c.Cg(this.Og[a], null, !0);
        this.c.gk = null;
        this.c.Lc();
        if (this.c.B && !this.c.kb)
            for (a = 0, h = this.c.R.length; a < h; a++) g = this.c.R[a], !g.Z && g.k.length && g.rl && g.rl(this.c.B);
        if (this.c.Fk) Da(this.c.ln, d);
        else
            for (a = 0, h = d.length; a < h; a++) n = d[a], this.c.trigger(Object.getPrototypeOf(n.type.W).g.jh, n);
        B(d);
        this.c.Fk || this.c.trigger(Q.prototype.g.Kt, null);
        this.Mi = !1
    };
    g.prototype.YC = function() {
        var a, b, c, d, h;
        b = a = 0;
        for (c = this.Og.length; a < c; a++) d =
            this.Og[a], h = this.c.R[d[1]], h.global ? h.gc || this.c.Cg(d, null, !0) : (this.Og[b] = d, b++);
        Ca(this.Og, b)
    };
    g.prototype.VG = function() {
        this.c.Fk || this.c.trigger(Q.prototype.g.AA, null);
        this.c.dr = !0;
        B(this.c.nf.nd);
        var a, b, d, m, h, f;
        if (!this.Mi)
            for (a = 0, b = this.ea.length; a < b; a++)
                for (this.ea[a].Ts(), h = this.ea[a].k, d = 0, m = h.length; d < m; d++) f = h[d], f.type.global || this.c.Ns(f.type) && this.IG(f);
        a = 0;
        for (b = this.ea.length; a < b; a++) {
            h = this.ea[a].k;
            d = 0;
            for (m = h.length; d < m; d++) f = h[d], f.type.global || this.c.ne(f);
            this.c.Lc();
            B(h);
            this.ea[a].kg = !0
        }
        a = 0;
        for (b = this.c.R.length; a < b; a++)
            if (h = this.c.R[a], !(h.global || h.W.$e || h.W.Vo || h.Z)) {
                d = 0;
                for (m = h.k.length; d < m; d++) this.c.ne(h.k[d]);
                this.c.Lc()
            }
        c = !1;
        this.c.dr = !1
    };
    new xa(0, 0, 0, 0);
    g.prototype.ud = function(a) {
        var b, c = a,
            d = !1,
            h = !this.c.Ed;
        h && (this.c.Un || (this.c.Un = document.createElement("canvas"), b = this.c.Un, b.width = this.c.ja, b.height = this.c.ga, this.c.aw = b.getContext("2d"), d = !0), b = this.c.Un, c = this.c.aw, b.width !== this.c.ja && (b.width = this.c.ja, d = !0), b.height !== this.c.ga && (b.height = this.c.ga,
            d = !0), d && this.c.Po(c, this.c.gb));
        c.globalAlpha = 1;
        c.globalCompositeOperation = "source-over";
        this.c.Tu && !this.Gv() && c.clearRect(0, 0, this.c.ja, this.c.ga);
        var f, n, d = 0;
        for (f = this.ea.length; d < f; d++) n = this.ea[d], n.visible && 0 < n.opacity && 11 !== n.ac && (n.k.length || !n.Ke) ? n.ud(c) : n.mp();
        h && a.drawImage(b, 0, 0, this.c.width, this.c.height)
    };
    g.prototype.Gg = function(a) {
        a.Dx(!0);
        this.c.Xb || (this.c.Xb = a.Dd(this.c.ja, this.c.ga, this.c.gb));
        if (this.c.Xb.sh !== this.c.ja || this.c.Xb.rh !== this.c.ga) a.deleteTexture(this.c.Xb), this.c.Xb =
            a.Dd(this.c.ja, this.c.ga, this.c.gb);
        a.he(this.c.Xb);
        this.c.Ed || a.bg(this.c.ja, this.c.ga);
        var b, c;
        for (b = this.ea.length - 1; 0 <= b; --b) c = this.ea[b], c.visible && 1 === c.opacity && c.dg && 0 === c.ac && (c.k.length || !c.Ke) ? c.Gg(a) : c.mp();
        a.Dx(!1)
    };
    g.prototype.yc = function(a) {
        var b = 0 < this.Na.length || this.c.Ej || !this.c.Ed || this.c.fb;
        if (b) {
            this.c.Xb || (this.c.Xb = a.Dd(this.c.ja, this.c.ga, this.c.gb));
            if (this.c.Xb.sh !== this.c.ja || this.c.Xb.rh !== this.c.ga) a.deleteTexture(this.c.Xb), this.c.Xb = a.Dd(this.c.ja, this.c.ga, this.c.gb);
            a.he(this.c.Xb);
            this.c.Ed || a.bg(this.c.ja, this.c.ga)
        } else this.c.Xb && (a.he(null), a.deleteTexture(this.c.Xb), this.c.Xb = null);
        this.c.Tu && !this.Gv() && a.clear(0, 0, 0, 0);
        var c, d, h;
        c = 0;
        for (d = this.ea.length; c < d; c++) h = this.ea[c], h.visible && 0 < h.opacity && (h.k.length || !h.Ke) ? h.yc(a) : h.mp();
        b && (0 === this.Na.length || 1 === this.Na.length && this.c.Ed ? (1 === this.Na.length ? (b = this.Na[0].index, a.md(this.Na[0].$b), a.tj(null, 1 / this.c.ja, 1 / this.c.ga, 0, 0, 1, 1, this.scale, this.q, 0, 0, this.c.ja / 2, this.c.ga / 2, this.c.hc.ta, this.yb[b]),
            a.Co(this.Na[0].$b) && (this.c.H = !0)) : a.md(0), this.c.Ed || a.bg(this.c.width, this.c.height), a.he(null), a.Bx(!1), a.ag(1), a.Zc(this.c.Xb), a.zx(), a.kf(), a.Me(), b = this.c.width / 2, c = this.c.height / 2, a.fi(-b, c, b, c, b, -c, -b, -c), a.Zc(null), a.Bx(!0)) : this.ks(a, null, null, null))
    };
    g.prototype.sk = function() {
        return 0 < this.Na.length || this.c.Ej || !this.c.Ed || this.c.fb ? this.c.Xb : null
    };
    g.prototype.Dv = function() {
        var a = this.ea[0].$d(),
            b, c, d;
        b = 1;
        for (c = this.ea.length; b < c; b++) d = this.ea[b], (0 !== d.Gc || 0 !== d.Hc) && d.$d() < a && (a = d.$d());
        return a
    };
    g.prototype.zl = function(a) {
        if (!this.fy) {
            var b = 1 / this.Dv() * this.c.ja / 2;
            a > this.width - b && (a = this.width - b);
            a < b && (a = b)
        }
        this.scrollX !== a && (this.scrollX = a, this.c.H = !0)
    };
    g.prototype.Al = function(a) {
        if (!this.fy) {
            var b = 1 / this.Dv() * this.c.ga / 2;
            a > this.height - b && (a = this.height - b);
            a < b && (a = b)
        }
        this.scrollY !== a && (this.scrollY = a, this.c.H = !0)
    };
    g.prototype.OC = function() {
        this.zl(this.scrollX);
        this.Al(this.scrollY)
    };
    g.prototype.ks = function(a, b, c, d) {
        var h = c ? c.Na : b ? b.Na : this.Na,
            f = 1,
            n = 0,
            v = 0,
            k = 0,
            r = this.c.ja,
            g = this.c.ga;
        c ? (f = c.F.$d(), n = c.F.Bc(), v = c.F.Wa, k = c.F.Xa, r = c.F.bb, g = c.F.ab) : b && (f = b.$d(), n = b.Bc(), v = b.Wa, k = b.Xa, r = b.bb, g = b.ab);
        var y = this.c.Gq,
            l, p, M, G, E = 0,
            J = 1,
            F, z, C = this.c.ja,
            O = this.c.ga,
            ba = C / 2,
            U = O / 2,
            A = b ? b.qj : this.qj,
            P = b ? b.hs : this.hs,
            L = 0,
            V = 0,
            K = 0,
            N = 0,
            S = C,
            Y = C,
            T = O,
            ka = O,
            la = M = 0;
        G = c ? c.F.Bc() : 0;
        if (c) {
            l = 0;
            for (p = h.length; l < p; l++) M += a.EE(h[l].$b), la += a.FE(h[l].$b);
            N = c.Tb;
            L = b.Vc(N.left, N.top, !0, !0);
            K = b.Vc(N.left, N.top, !1, !0);
            S = b.Vc(N.right, N.bottom, !0, !0);
            T = b.Vc(N.right, N.bottom, !1, !0);
            0 !== G && (l = b.Vc(N.right, N.top, !0, !0),
                p = b.Vc(N.right, N.top, !1, !0), V = b.Vc(N.left, N.bottom, !0, !0), N = b.Vc(N.left, N.bottom, !1, !0), G = Math.min(L, S, l, V), S = Math.max(L, S, l, V), L = G, G = Math.min(K, T, p, N), T = Math.max(K, T, p, N), K = G);
            L -= M;
            K -= la;
            S += M;
            T += la;
            P.left = L / C;
            P.top = 1 - K / O;
            P.right = S / C;
            P.bottom = 1 - T / O;
            V = L = ua(L);
            N = K = ua(K);
            Y = S = va(S);
            ka = T = va(T);
            V -= M;
            N -= la;
            Y += M;
            ka += la;
            0 > L && (L = 0);
            0 > K && (K = 0);
            S > C && (S = C);
            T > O && (T = O);
            0 > V && (V = 0);
            0 > N && (N = 0);
            Y > C && (Y = C);
            ka > O && (ka = O);
            A.left = L / C;
            A.top = 1 - K / O;
            A.right = S / C;
            A.bottom = 1 - T / O
        } else A.left = P.left = 0, A.top = P.top = 0, A.right = P.right =
            1, A.bottom = P.bottom = 1;
        la = c && (a.sl(h[0].$b) || 0 !== M || 0 !== la || 1 !== c.opacity || c.type.W.Bw) || b && !c && 1 !== b.opacity;
        a.zx();
        if (la) {
            y[E] || (y[E] = a.Dd(C, O, this.c.gb));
            if (y[E].sh !== C || y[E].rh !== O) a.deleteTexture(y[E]), y[E] = a.Dd(C, O, this.c.gb);
            a.md(0);
            a.he(y[E]);
            z = ka - N;
            a.clearRect(V, O - N - z, Y - V, z);
            c ? c.yc(a) : (a.Zc(this.c.ic), a.ag(b.opacity), a.kf(), a.translate(-ba, -U), a.Me(), a.Fe(L, T, S, T, S, K, L, K, A));
            P.left = P.top = 0;
            P.right = P.bottom = 1;
            c && (G = A.top, A.top = A.bottom, A.bottom = G);
            E = 1;
            J = 0
        }
        a.ag(1);
        M = h.length - 1;
        var Z = a.es(h[M].$b) ||
            !b && !c && !this.c.Ed;
        l = G = 0;
        for (p = h.length; l < p; l++) {
            y[E] || (y[E] = a.Dd(C, O, this.c.gb));
            if (y[E].sh !== C || y[E].rh !== O) a.deleteTexture(y[E]), y[E] = a.Dd(C, O, this.c.gb);
            a.md(h[l].$b);
            G = h[l].index;
            a.Co(h[l].$b) && (this.c.H = !0);
            0 != l || la ? (a.tj(d, 1 / C, 1 / O, P.left, P.top, P.right, P.bottom, f, n, v, k, (v + r) / 2, (k + g) / 2, this.c.hc.ta, c ? c.yb[G] : b ? b.yb[G] : this.yb[G]), a.Zc(null), l !== M || Z ? (a.he(y[E]), z = ka - N, F = O - N - z, a.clearRect(V, F, Y - V, z)) : (c ? a.$f(c.ib, c.eb) : b && a.$f(b.ib, b.eb), a.he(d)), a.Zc(y[J]), a.kf(), a.translate(-ba, -U), a.Me(), a.Fe(L,
                T, S, T, S, K, L, K, A), l !== M || Z || a.Zc(null)) : (a.he(y[E]), z = ka - N, F = O - N - z, a.clearRect(V, F, Y - V, z), c ? (c.Ca && c.Ca.K ? (F = c.Ca.K, J = 1 / F.width, F = 1 / F.height) : (J = 1 / c.width, F = 1 / c.height), a.tj(d, J, F, P.left, P.top, P.right, P.bottom, f, n, v, k, (v + r) / 2, (k + g) / 2, this.c.hc.ta, c.yb[G]), c.yc(a)) : (a.tj(d, 1 / C, 1 / O, 0, 0, 1, 1, f, n, v, k, (v + r) / 2, (k + g) / 2, this.c.hc.ta, b ? b.yb[G] : this.yb[G]), a.Zc(b ? this.c.ic : this.c.Xb), a.kf(), a.translate(-ba, -U), a.Me(), a.Fe(L, T, S, T, S, K, L, K, A)), P.left = P.top = 0, P.right = P.bottom = 1, c && !Z && (G = T, T = K, K = G));
            E = 0 === E ? 1 : 0;
            J = 0 === E ? 1 : 0
        }
        Z && (a.md(0), c ? a.$f(c.ib, c.eb) : b ? a.$f(b.ib, b.eb) : this.c.Ed || (a.bg(this.c.width, this.c.height), ba = this.c.width / 2, U = this.c.height / 2, K = L = 0, S = this.c.width, T = this.c.height), a.he(d), a.Zc(y[J]), a.kf(), a.translate(-ba, -U), a.Me(), c && 1 === h.length && !la ? a.Fe(L, K, S, K, S, T, L, T, A) : a.Fe(L, T, S, T, S, K, L, K, A), a.Zc(null))
    };
    g.prototype.yn = function(a) {
        var b, c;
        b = 0;
        for (c = this.ea.length; b < c; b++)
            if (this.ea[b].Ia === a) return this.ea[b];
        return null
    };
    g.prototype.$a = function() {
        var a, b, c, d = {
            sx: this.scrollX,
            sy: this.scrollY,
            s: this.scale,
            a: this.q,
            w: this.width,
            h: this.height,
            fv: this.Mi,
            persist: this.Yg,
            fx: [],
            layers: {}
        };
        a = 0;
        for (b = this.wa.length; a < b; a++) c = this.wa[a], d.fx.push({
            name: c.name,
            active: c.P,
            params: this.yb[c.index]
        });
        a = 0;
        for (b = this.ea.length; a < b; a++) c = this.ea[a], d.layers[c.Ia.toString()] = c.$a();
        return d
    };
    g.prototype.lb = function(a) {
        var b, c, d, h;
        this.scrollX = a.sx;
        this.scrollY = a.sy;
        this.scale = a.s;
        this.q = a.a;
        this.width = a.w;
        this.height = a.h;
        this.Yg = a.persist;
        "undefined" !== typeof a.fv && (this.Mi = a.fv);
        var f = a.fx;
        b = 0;
        for (c =
            f.length; b < c; b++)
            if (d = this.Kq(f[b].name)) d.P = f[b].active, this.yb[d.index] = f[b].params;
        this.Le();
        b = a.layers;
        for (h in b) b.hasOwnProperty(h) && (a = this.yn(parseInt(h, 10))) && a.lb(b[h])
    };
    Nb = g;
    p.prototype.Le = function() {
        B(this.Na);
        this.dg = !0;
        var a, b, c;
        a = 0;
        for (b = this.wa.length; a < b; a++) c = this.wa[a], c.P && (this.Na.push(c), c.Ee || (this.dg = !1))
    };
    p.prototype.Kq = function(a) {
        var b, c, d;
        b = 0;
        for (c = this.wa.length; b < c; b++)
            if (d = this.wa[b], d.name === a) return d;
        return null
    };
    p.prototype.$C = function() {
        var a, b, c, m, h, f;
        b = a = 0;
        for (c =
            this.Hd.length; a < c; a++) {
            m = this.Hd[a];
            h = this.c.R[m[1]];
            f = this.c.Ns(h);
            h = !0;
            if (!f || this.jc.Mi) {
                m = this.c.Cg(m, this, !0);
                if (!m) continue;
                d.push(m);
                m.type.global && (h = !1, this.kk.push(m.uid))
            }
            h && (this.Hd[b] = this.Hd[a], b++)
        }
        this.Hd.length = b;
        this.c.Lc();
        !this.c.J && this.wa.length && (this.ac = this.FD);
        this.Wd = lb(this.ac);
        this.c.S && mb(this, this.ac, this.c.S);
        this.Ge = !0
    };
    p.prototype.rj = function(a, b) {
        var c = Fa(this.k, a);
        0 > c || (b && this.Qd && a.kd && a.kd.right >= a.kd.left && (a.jb(), this.Jc.update(a, a.kd, null), a.kd.set(0, 0, -1, -1)), c === this.k.length - 1 ? this.k.pop() : (Ba(this.k, c), this.El(c)), this.Ge = !0)
    };
    p.prototype.bk = function(a, b) {
        a.Rd = this.k.length;
        this.k.push(a);
        b && this.Qd && a.kd && a.ca();
        this.Ge = !0
    };
    p.prototype.gG = function(a) {
        this.k.unshift(a);
        this.El(0)
    };
    p.prototype.JF = function(a, b, c) {
        var d = a.Xe();
        b = b.Xe();
        Ba(this.k, d);
        d < b && b--;
        c && b++;
        b === this.k.length ? this.k.push(a) : this.k.splice(b, 0, a);
        this.El(d < b ? d : b)
    };
    p.prototype.El = function(a) {
        -1 === this.lg ? this.lg = a : a < this.lg && (this.lg = a);
        this.Ge = this.kg = !0
    };
    p.prototype.Ts = function() {
        if (this.kg) {
            -1 ===
                this.lg && (this.lg = 0);
            var a, b, c;
            if (this.Qd)
                for (a = this.lg, b = this.k.length; a < b; ++a) c = this.k[a], c.Rd = a, this.Jc.FF(c.kd);
            else
                for (a = this.lg, b = this.k.length; a < b; ++a) this.k[a].Rd = a;
            this.kg = !1;
            this.lg = -1
        }
    };
    p.prototype.$d = function(a) {
        return this.BE() * (this.c.Ed || a ? this.c.ck : 1)
    };
    p.prototype.BE = function() {
        return (this.scale * this.jc.scale - 1) * this.Fb + 1
    };
    p.prototype.Bc = function() {
        return this.Ef ? 0 : La(this.jc.q + this.q)
    };
    var a = [],
        n = [],
        h = [];
    p.prototype.Nq = function() {
        this.Ts();
        this.Jc.Fo(this.Wa, this.Xa, this.bb, this.ab,
            h);
        if (!h.length) return f();
        if (1 === h.length) {
            var a = f();
            Da(a, h[0]);
            B(h);
            return a
        }
        for (var c = !0; 1 < h.length;) {
            for (var a = h, d = void 0, m = void 0, q = void 0, g = void 0, w = void 0, d = 0, m = a.length; d < m - 1; d += 2) {
                var q = a[d],
                    g = a[d + 1],
                    w = f(),
                    v = q,
                    k = g,
                    r = w,
                    H = 0,
                    y = 0,
                    l = 0,
                    p = v.length,
                    M = k.length,
                    G = void 0,
                    E = void 0;
                for (r.length = p + M; H < p && y < M; ++l) G = v[H], E = k[y], G.Rd < E.Rd ? (r[l] = G, ++H) : (r[l] = E, ++y);
                for (; H < p; ++H, ++l) r[l] = v[H];
                for (; y < M; ++y, ++l) r[l] = k[y];
                c || (b(q), b(g));
                n.push(w)
            }
            1 === m % 2 && (c ? (q = f(), Da(q, a[m - 1]), n.push(q)) : n.push(a[m - 1]));
            Da(a,
                n);
            B(n);
            c = !1
        }
        a = h[0];
        B(h);
        return a
    };
    p.prototype.ud = function(a) {
        this.jf = this.rn || 1 !== this.opacity || 0 !== this.ac;
        var c = this.c.canvas,
            d = a,
            m = !1;
        this.jf && (this.c.Tn || (this.c.Tn = document.createElement("canvas"), c = this.c.Tn, c.width = this.c.ja, c.height = this.c.ga, this.c.$v = c.getContext("2d"), m = !0), c = this.c.Tn, d = this.c.$v, c.width !== this.c.ja && (c.width = this.c.ja, m = !0), c.height !== this.c.ga && (c.height = this.c.ga, m = !0), m && this.c.Po(d, this.c.gb), this.Ke && d.clearRect(0, 0, this.c.ja, this.c.ga));
        d.globalAlpha = 1;
        d.globalCompositeOperation =
            "source-over";
        this.Ke || (d.fillStyle = "rgb(" + this.re[0] + "," + this.re[1] + "," + this.re[2] + ")", d.fillRect(0, 0, this.c.ja, this.c.ga));
        d.save();
        this.Ef = !0;
        var m = this.nb(0, 0, !0, !0),
            h = this.nb(0, 0, !1, !0);
        this.Ef = !1;
        this.c.hd && (m = Math.round(m), h = Math.round(h));
        this.Jo(m, h, d);
        var f = this.$d();
        d.scale(f, f);
        d.translate(-m, -h);
        this.Qd ? (this.xc.left = this.Jc.cd(this.Wa), this.xc.top = this.Jc.dd(this.Xa), this.xc.right = this.Jc.cd(this.bb), this.xc.bottom = this.Jc.dd(this.ab), this.Ge || !this.xc.nk(this.$i) ? (b(this.Sf), m = this.Nq(),
            this.Ge = !1, this.$i.Di(this.xc)) : m = this.Sf) : m = this.k;
        for (var n, v = null, h = 0, f = m.length; h < f; ++h) n = m[h], n !== v && (this.zD(n, d), v = n);
        this.Qd && (this.Sf = m);
        d.restore();
        this.jf && (a.globalCompositeOperation = this.Wd, a.globalAlpha = this.opacity, a.drawImage(c, 0, 0))
    };
    p.prototype.zD = function(a, b) {
        if (a.visible && 0 !== a.width && 0 !== a.height) {
            a.jb();
            var c = a.Tb;
            c.right < this.Wa || c.bottom < this.Xa || c.left > this.bb || c.top > this.ab || (b.globalCompositeOperation = a.Wd, a.ud(b))
        }
    };
    p.prototype.mp = function() {
        this.Ef = !0;
        var a = this.nb(0,
                0, !0, !0),
            b = this.nb(0, 0, !1, !0);
        this.Ef = !1;
        this.c.hd && (a = Math.round(a), b = Math.round(b));
        this.Jo(a, b, null)
    };
    p.prototype.Jo = function(a, b, c) {
        var d = this.$d();
        this.Wa = a;
        this.Xa = b;
        this.bb = a + 1 / d * this.c.ja;
        this.ab = b + 1 / d * this.c.ga;
        this.Wa > this.bb && (a = this.Wa, this.Wa = this.bb, this.bb = a);
        this.Xa > this.ab && (a = this.Xa, this.Xa = this.ab, this.ab = a);
        a = this.Bc();
        0 !== a && (c && (c.translate(this.c.ja / 2, this.c.ga / 2), c.rotate(-a), c.translate(this.c.ja / -2, this.c.ga / -2)), this.hg.set(this.Wa, this.Xa, this.bb, this.ab), this.hg.offset((this.Wa +
            this.bb) / -2, (this.Xa + this.ab) / -2), this.Zx.Hx(this.hg, a), this.Zx.Nu(this.hg), this.hg.offset((this.Wa + this.bb) / 2, (this.Xa + this.ab) / 2), this.Wa = this.hg.left, this.Xa = this.hg.top, this.bb = this.hg.right, this.ab = this.hg.bottom)
    };
    p.prototype.Gg = function(a) {
        if (this.jf = this.rn) {
            this.c.ic || (this.c.ic = a.Dd(this.c.ja, this.c.ga, this.c.gb));
            if (this.c.ic.sh !== this.c.ja || this.c.ic.rh !== this.c.ga) a.deleteTexture(this.c.ic), this.c.ic = a.Dd(this.c.ja, this.c.ga, this.c.gb);
            a.he(this.c.ic)
        }
        this.Ef = !0;
        var c = this.nb(0, 0, !0, !0),
            d = this.nb(0, 0, !1, !0);
        this.Ef = !1;
        this.c.hd && (c = Math.round(c), d = Math.round(d));
        this.Jo(c, d, null);
        c = this.$d();
        a.kf();
        a.scale(c, c);
        a.ns(-this.Bc());
        a.translate((this.Wa + this.bb) / -2, (this.Xa + this.ab) / -2);
        a.Me();
        this.Qd ? (this.xc.left = this.Jc.cd(this.Wa), this.xc.top = this.Jc.dd(this.Xa), this.xc.right = this.Jc.cd(this.bb), this.xc.bottom = this.Jc.dd(this.ab), this.Ge || !this.xc.nk(this.$i) ? (b(this.Sf), c = this.Nq(), this.Ge = !1, this.$i.Di(this.xc)) : c = this.Sf) : c = this.k;
        for (var m, h = null, d = c.length - 1; 0 <= d; --d) m = c[d],
            m !== h && (this.BD(c[d], a), h = m);
        this.Qd && (this.Sf = c);
        this.Ke || (this.mq = this.c.zh++, a.Qo(this.mq), a.Ax(1, 1, 1), a.tv(), a.yG())
    };
    p.prototype.yc = function(a) {
        var c = 0,
            d = 0;
        if (this.jf = this.rn || 1 !== this.opacity || 0 < this.Na.length || 0 !== this.ac) {
            this.c.ic || (this.c.ic = a.Dd(this.c.ja, this.c.ga, this.c.gb));
            if (this.c.ic.sh !== this.c.ja || this.c.ic.rh !== this.c.ga) a.deleteTexture(this.c.ic), this.c.ic = a.Dd(this.c.ja, this.c.ga, this.c.gb);
            a.he(this.c.ic);
            this.Ke && a.clear(0, 0, 0, 0)
        }
        this.Ke || (this.c.fb ? (a.Qo(this.mq), a.Ax(this.re[0] /
            255, this.re[1] / 255, this.re[2] / 255), a.tv(), a.PG()) : a.clear(this.re[0] / 255, this.re[1] / 255, this.re[2] / 255, 1));
        this.Ef = !0;
        var m = this.nb(0, 0, !0, !0),
            c = this.nb(0, 0, !1, !0);
        this.Ef = !1;
        this.c.hd && (m = Math.round(m), c = Math.round(c));
        this.Jo(m, c, null);
        m = this.$d();
        a.kf();
        a.scale(m, m);
        a.ns(-this.Bc());
        a.translate((this.Wa + this.bb) / -2, (this.Xa + this.ab) / -2);
        a.Me();
        this.Qd ? (this.xc.left = this.Jc.cd(this.Wa), this.xc.top = this.Jc.dd(this.Xa), this.xc.right = this.Jc.cd(this.bb), this.xc.bottom = this.Jc.dd(this.ab), this.Ge ||
            !this.xc.nk(this.$i) ? (b(this.Sf), c = this.Nq(), this.Ge = !1, this.$i.Di(this.xc)) : c = this.Sf) : c = this.k;
        var h, f, n = null,
            d = 0;
        for (h = c.length; d < h; ++d) f = c[d], f !== n && (this.AD(c[d], a), n = f);
        this.Qd && (this.Sf = c);
        this.jf && (c = this.Na.length ? this.Na[0].$b : 0, d = this.Na.length ? this.Na[0].index : 0, 0 === this.Na.length || 1 === this.Na.length && !a.es(c) && 1 === this.opacity ? (1 === this.Na.length ? (a.md(c), a.tj(this.jc.sk(), 1 / this.c.ja, 1 / this.c.ga, 0, 0, 1, 1, m, this.Bc(), this.Wa, this.Xa, (this.Wa + this.bb) / 2, (this.Xa + this.ab) / 2, this.c.hc.ta,
            this.yb[d]), a.Co(c) && (this.c.H = !0)) : a.md(0), a.he(this.jc.sk()), a.ag(this.opacity), a.Zc(this.c.ic), a.$f(this.ib, this.eb), a.kf(), a.Me(), m = this.c.ja / 2, c = this.c.ga / 2, a.fi(-m, c, m, c, m, -c, -m, -c), a.Zc(null)) : this.jc.ks(a, this, null, this.jc.sk()))
    };
    p.prototype.AD = function(a, b) {
        if (a.visible && 0 !== a.width && 0 !== a.height) {
            a.jb();
            var c = a.Tb;
            c.right < this.Wa || c.bottom < this.Xa || c.left > this.bb || c.top > this.ab || (b.Qo(a.zh), a.ly ? this.CD(a, b) : (b.md(0), b.$f(a.ib, a.eb), a.yc(b)))
        }
    };
    p.prototype.BD = function(a, b) {
        if (a.visible &&
            0 !== a.width && 0 !== a.height) {
            a.jb();
            var c = a.Tb;
            c.right < this.Wa || c.bottom < this.Xa || c.left > this.bb || c.top > this.ab || (a.zh = this.c.zh++, 0 === a.ac && 1 === a.opacity && a.dg && a.Gg && (b.Qo(a.zh), a.Gg(b)))
        }
    };
    p.prototype.CD = function(a, b) {
        var c = a.Na[0].$b,
            d = a.Na[0].index,
            h = this.$d();
        if (1 !== a.Na.length || b.es(c) || b.jG(c) || (a.q || a.F.Bc()) && b.sl(c) || 1 !== a.opacity || a.type.W.Bw) this.jc.ks(b, this, a, this.jf ? this.c.ic : this.jc.sk()), b.kf(), b.scale(h, h), b.ns(-this.Bc()), b.translate((this.Wa + this.bb) / -2, (this.Xa + this.ab) / -2), b.Me();
        else {
            b.md(c);
            b.$f(a.ib, a.eb);
            b.Co(c) && (this.c.H = !0);
            var f = 0,
                n = 0,
                v = 0,
                k = 0;
            b.sl(c) && (k = a.Tb, f = this.Vc(k.left, k.top, !0, !0), n = this.Vc(k.left, k.top, !1, !0), v = this.Vc(k.right, k.bottom, !0, !0), k = this.Vc(k.right, k.bottom, !1, !0), f = f / windowWidth, n = 1 - n / windowHeight, v = v / windowWidth, k = 1 - k / windowHeight);
            var r;
            a.Ca && a.Ca.K ? (r = a.Ca.K, c = 1 / r.width, r = 1 / r.height) : (c = 1 / a.width, r = 1 / a.height);
            b.tj(this.jf ? this.c.ic : this.jc.sk(), c, r, f, n, v, k, h, this.Bc(), this.Wa, this.Xa, (this.Wa + this.bb) / 2, (this.Xa + this.ab) / 2, this.c.hc.ta, a.yb[d]);
            a.yc(b)
        }
    };
    p.prototype.nb = function(a, b, c, d) {
        var h = this.c.devicePixelRatio;
        this.c.Nh && (a *= h, b *= h);
        var h = this.c.gx,
            f = this.c.hx,
            h = (this.jc.scrollX - h) * this.Gc + h,
            f = (this.jc.scrollY - f) * this.Hc + f,
            n = h,
            v = f,
            k = 1 / this.$d(!d);
        d ? (n -= this.c.ja * k / 2, v -= this.c.ga * k / 2) : (n -= this.c.width * k / 2, v -= this.c.height * k / 2);
        n += a * k;
        v += b * k;
        b = this.Bc();
        0 !== b && (n -= h, v -= f, a = Math.cos(b), b = Math.sin(b), d = n * a - v * b, v = v * a + n * b, n = d + h, v += f);
        return c ? n : v
    };
    p.prototype.Vc = function(a, b, c, d) {
        var h = this.c.gx,
            f = this.c.hx,
            n = (this.jc.scrollX - h) * this.Gc +
            h,
            v = (this.jc.scrollY - f) * this.Hc + f,
            f = n,
            h = v,
            k = this.Bc();
        if (0 !== k) {
            a -= n;
            b -= v;
            var r = Math.cos(-k),
                k = Math.sin(-k),
                g = a * r - b * k;
            b = b * r + a * k;
            a = g + n;
            b += v
        }
        n = 1 / this.$d(!d);
        d ? (f -= this.c.ja * n / 2, h -= this.c.ga * n / 2) : (f -= this.c.width * n / 2, h -= this.c.height * n / 2);
        f = (a - f) / n;
        h = (b - h) / n;
        a = this.c.devicePixelRatio;
        this.c.Nh && !d && (f /= a, h /= a);
        return c ? f : h
    };
    p.prototype.$a = function() {
        var a, b, c, d = {
            s: this.scale,
            a: this.q,
            vl: this.Wa,
            vt: this.Xa,
            vr: this.bb,
            vb: this.ab,
            v: this.visible,
            bc: this.re,
            t: this.Ke,
            px: this.Gc,
            py: this.Hc,
            o: this.opacity,
            zr: this.Fb,
            fx: [],
            cg: this.kk,
            instances: []
        };
        a = 0;
        for (b = this.wa.length; a < b; a++) c = this.wa[a], d.fx.push({
            name: c.name,
            active: c.P,
            params: this.yb[c.index]
        });
        return d
    };
    p.prototype.lb = function(a) {
        var b, c, d;
        this.scale = a.s;
        this.q = a.a;
        this.Wa = a.vl;
        this.Xa = a.vt;
        this.bb = a.vr;
        this.ab = a.vb;
        this.visible = a.v;
        this.re = a.bc;
        this.Ke = a.t;
        this.Gc = a.px;
        this.Hc = a.py;
        this.opacity = a.o;
        this.Fb = a.zr;
        this.kk = a.cg || [];
        Da(this.Hd, this.Ox);
        var h = new da;
        b = 0;
        for (d = this.kk.length; b < d; ++b) h.add(this.kk[b]);
        c = b = 0;
        for (d = this.Hd.length; b <
            d; ++b) h.contains(this.Hd[b][2]) || (this.Hd[c] = this.Hd[b], ++c);
        Ca(this.Hd, c);
        c = a.fx;
        b = 0;
        for (d = c.length; b < d; b++)
            if (a = this.Kq(c[b].name)) a.P = c[b].active, this.yb[a.index] = c[b].params;
        this.Le();
        this.k.sort(l);
        this.kg = !0
    };
    bc = p
})();
(function() {
    function g(a, b) {
        var c, d = a.length;
        switch (d) {
            case 0:
                return !0;
            case 1:
                return a[0] === b[0];
            case 2:
                return a[0] === b[0] && a[1] === b[1];
            default:
                for (c = 0; c < d; c++)
                    if (a[c] !== b[c]) return !1;
                return !0
        }
    }

    function l(a, b) {
        return a.index - b.index
    }

    function p(a) {
        var b, c, d, e;
        2 === a.length ? a[0].index > a[1].index && (b = a[0], a[0] = a[1], a[1] = b) : 2 < a.length && a.sort(l);
        a.length >= q.length && (q.length = a.length + 1);
        q[a.length] || (q[a.length] = []);
        e = q[a.length];
        b = 0;
        for (c = e.length; b < c; b++)
            if (d = e[b], g(a, d)) return d;
        e.push(a);
        return a
    }

    function f(a, b) {
        this.c = a;
        this.by = {};
        this.kv = {};
        this.Vq = !1;
        this.Iv = new da;
        this.tq = [];
        this.$p = [];
        this.name = b[0];
        var c = b[1];
        this.Ig = [];
        var d, e;
        d = 0;
        for (e = c.length; d < e; d++) this.Kv(c[d], null, this.Ig)
    }

    function b(a) {
        this.type = a;
        this.k = [];
        this.na = [];
        this.X = !0
    }

    function d(a, b, c) {
        this.sheet = a;
        this.parent = b;
        this.c = a.c;
        this.Aa = [];
        this.bh = [];
        this.Hv = this.fp = this.Js = this.Yq = this.group = this.zs = !1;
        this.ec = [];
        this.oe = [];
        this.je = [];
        this.vk = "";
        this.Gh = this.Yq = this.group = !1;
        this.Pm = null;
        c[1] && (this.vk = c[1][1].toLowerCase(),
            this.group = !0, this.Yq = !!c[1][0], this.Pm = [], this.Gh = this.Yq, this.c.Ai.push(this), this.c.Oi[this.vk] = this);
        this.Ld = c[2];
        this.Ia = c[4];
        this.group || (this.c.Mu[this.Ia.toString()] = this);
        var d = c[5];
        a = 0;
        for (b = d.length; a < b; a++) {
            var e = new cc(this, d[a]);
            e.index = a;
            this.ec.push(e);
            this.Du(e.type)
        }
        d = c[6];
        a = 0;
        for (b = d.length; a < b; a++) e = new dc(this, d[a]), e.index = a, this.oe.push(e);
        if (8 === c.length)
            for (c = c[7], a = 0, b = c.length; a < b; a++) this.sheet.Kv(c[a], this, this.je);
        this.Pn = !1;
        this.ec.length && (this.Pn = null == this.ec[0].type &&
            this.ec[0].Ac == Q.prototype.g.kt)
    }

    function c(a, b) {
        var c, d, e;
        if (a && (-1 === b.indexOf(a) && b.push(a), a.gc))
            for (c = 0, d = a.td.length; c < d; c++) e = a.td[c], a !== e && -1 === b.indexOf(e) && b.push(e)
    }

    function a(a, b) {
        this.Cd = a;
        this.sheet = a.sheet;
        this.c = a.c;
        this.ra = [];
        this.Db = [];
        this.Da = {};
        this.index = -1;
        this.$j = !1;
        this.Ac = this.c.mg(b[1]);
        this.trigger = 0 < b[3];
        this.jv = 2 === b[3];
        this.cf = b[4];
        this.Fn = b[5];
        this.uF = b[6];
        this.Ia = b[7];
        this.c.Ag[this.Ia.toString()] = this; - 1 === b[0] ? (this.type = null, this.Zb = this.ps, this.qh = null, this.ue = -1) : (this.type = this.c.R[b[0]], this.Zb = this.uF ? this.GG : this.os, b[2] ? (this.qh = this.type.wn(b[2]), this.ue = this.type.Hq(b[2])) : (this.qh = null, this.ue = -1), this.Cd.parent && this.Cd.parent.To());
        this.jv && (this.Zb = this.HG);
        if (10 === b.length) {
            var c, d, e = b[9];
            c = 0;
            for (d = e.length; c < d; c++) {
                var h = new ec(this, e[c]);
                this.ra.push(h)
            }
            this.Db.length = e.length
        }
    }

    function n(a, b) {
        this.Cd = a;
        this.sheet = a.sheet;
        this.c = a.c;
        this.ra = [];
        this.Db = [];
        this.Da = {};
        this.index = -1;
        this.$j = !1;
        this.Ac = this.c.mg(b[1]); - 1 === b[0] ? (this.type = null,
            this.Zb = this.ps, this.qh = null, this.ue = -1) : (this.type = this.c.R[b[0]], this.Zb = this.os, b[2] ? (this.qh = this.type.wn(b[2]), this.ue = this.type.Hq(b[2])) : (this.qh = null, this.ue = -1));
        this.Ia = b[3];
        this.c.sg[this.Ia.toString()] = this;
        if (6 === b.length) {
            var c, d, e = b[5];
            c = 0;
            for (d = e.length; c < d; c++) {
                var h = new ec(this, e[c]);
                this.ra.push(h)
            }
            this.Db.length = e.length
        }
    }

    function h() {
        w++;
        u.length === w && u.push(new fc);
        return u[w]
    }

    function e(a, b) {
        this.fe = a;
        this.Cd = a.Cd;
        this.sheet = a.sheet;
        this.c = a.c;
        this.type = b[0];
        this.Ve = null;
        this.eg =
            0;
        this.get = null;
        this.Uu = 0;
        this.jc = null;
        this.key = 0;
        this.object = null;
        this.index = 0;
        this.Vl = this.li = this.Vl = this.li = this.ov = this.Bh = this.Wl = null;
        this.le = !1;
        var c, d, e;
        switch (b[0]) {
            case 0:
            case 7:
                this.Ve = new hc(this, b[1]);
                this.eg = 0;
                this.get = this.LE;
                break;
            case 1:
                this.Ve = new hc(this, b[1]);
                this.eg = 0;
                this.get = this.ME;
                break;
            case 5:
                this.Ve = new hc(this, b[1]);
                this.eg = 0;
                this.get = this.Qq;
                break;
            case 3:
            case 8:
                this.Uu = b[1];
                this.get = this.JE;
                break;
            case 6:
                this.jc = this.c.aj[b[1]];
                this.get = this.QE;
                break;
            case 9:
                this.key = b[1];
                this.get = this.PE;
                break;
            case 4:
                this.object = this.c.R[b[1]];
                this.get = this.RE;
                this.Cd.Du(this.object);
                this.fe instanceof dc ? this.Cd.To() : this.Cd.parent && this.Cd.parent.To();
                break;
            case 10:
                this.index = b[1];
                a.type && a.type.Z ? (this.get = this.NE, this.le = !0) : this.get = this.OE;
                break;
            case 11:
                this.Wl = b[1];
                this.Bh = null;
                this.get = this.KE;
                break;
            case 2:
            case 12:
                this.ov = b[1];
                this.get = this.IE;
                break;
            case 13:
                for (this.get = this.SE, this.li = [], this.Vl = [], c = 1, d = b.length; c < d; c++) e = new ec(this.fe, b[c]), this.li.push(e), this.Vl.push(0)
        }
    }

    function t(a, b, c) {
        this.sheet = a;
        this.parent = b;
        this.c = a.c;
        this.Aa = [];
        this.name = c[1];
        this.np = c[2];
        this.M = c[3];
        this.Kk = !!c[4];
        this.On = !!c[5];
        this.Ia = c[6];
        this.c.Gj[this.Ia.toString()] = this;
        this.data = this.M;
        this.parent ? (this.Zh = this.Kk || this.On ? -1 : this.c.TG++, this.c.HC.push(this)) : (this.Zh = -1, this.c.Zp.push(this))
    }

    function x(a, b, c) {
        this.sheet = a;
        this.parent = b;
        this.c = a.c;
        this.Aa = [];
        this.zk = null;
        this.aF = c[1];
        this.P = !0
    }

    function m() {
        this.Qx = [];
        this.reset(null)
    }
    var q = [];
    f.prototype.toString = function() {
        return this.name
    };
    f.prototype.Kv = function(a, b, c) {
        switch (a[0]) {
            case 0:
                a = new ic(this, b, a);
                if (a.Ld)
                    for (c.push(a), c = 0, b = a.ec.length; c < b; c++) a.ec[c].trigger && this.Lv(a, c);
                else a.Tv() ? this.Lv(a, 0) : c.push(a);
                break;
            case 1:
                a = new Zb(this, b, a);
                c.push(a);
                break;
            case 2:
                a = new jc(this, b, a), c.push(a)
        }
    };
    f.prototype.Ob = function() {
        var a, b;
        a = 0;
        for (b = this.Ig.length; a < b; a++) this.Ig[a].Ob(a < b - 1 && this.Ig[a + 1].Pn)
    };
    f.prototype.Qs = function() {
        B(this.tq);
        B(this.$p);
        this.Cu(this);
        B(this.$p)
    };
    f.prototype.Cu = function(a) {
        var b, c, d, e, h = a.tq,
            m = a.$p,
            f = this.Iv.ig();
        b = 0;
        for (c = f.length; b < c; ++b) d = f[b], e = d.zk, !d.P || a === e || -1 < m.indexOf(e) || (m.push(e), e.Cu(a), h.push(e))
    };
    f.prototype.Zb = function(a) {
        this.c.eJ || (this.Vq = !0, a || (this.c.gr = !0));
        var b, c;
        b = 0;
        for (c = this.Ig.length; b < c; b++) {
            var d = this.Ig[b];
            d.Zb();
            this.c.lq(d.Aa);
            this.c.Ng && this.c.Lc()
        }
        a || (this.c.gr = !1)
    };
    f.prototype.Lv = function(a, b) {
        a.Ld || this.c.ip.push(a);
        var c, d, e = a.ec[b],
            h;
        e.type ? h = e.type.name : h = "system";
        var m = (c = e.jv) ? this.kv : this.by;
        m[h] || (m[h] = []);
        h = m[h];
        m = e.Ac;
        if (c) {
            if (e.ra.length && (e =
                    e.ra[0], 1 === e.type && 2 === e.Ve.type)) {
                e = e.Ve.value.toLowerCase();
                c = 0;
                for (d = h.length; c < d; c++)
                    if (h[c].method == m) {
                        c = h[c].ok;
                        c[e] ? c[e].push([a, b]) : c[e] = [
                            [a, b]
                        ];
                        return
                    }
                c = {};
                c[e] = [
                    [a, b]
                ];
                h.push({
                    method: m,
                    ok: c
                })
            }
        } else {
            c = 0;
            for (d = h.length; c < d; c++)
                if (h[c].method == m) {
                    h[c].ok.push([a, b]);
                    return
                }
            W && m === W.prototype.g.wi ? h.unshift({
                method: m,
                ok: [
                    [a, b]
                ]
            }) : h.push({
                method: m,
                ok: [
                    [a, b]
                ]
            })
        }
    };
    Ob = f;
    b.prototype.Uq = function() {
        return this.X ? this.type.k.length : this.k.length
    };
    b.prototype.tb = function() {
        return this.X ? this.type.k :
            this.k
    };
    b.prototype.ei = function(a) {
        a && (a.c.zb().Kb.Ld ? (this.X && (B(this.k), Da(this.na, a.type.k), this.X = !1), a = this.na.indexOf(a), -1 !== a && (this.k.push(this.na[a]), this.na.splice(a, 1))) : (this.X = !1, B(this.k), this.k[0] = a))
    };
    sb = b;
    window._c2hh_ = "BCB0A626DFD9DBB9668C89A6D85FE2AD12A6FC39";
    d.prototype.Ob = function(a) {
        var b, c = this.parent;
        if (this.group)
            for (this.fp = !0; c;) {
                if (!c.group) {
                    this.fp = !1;
                    break
                }
                c = c.parent
            }
        this.Js = !this.Tv() && (!this.parent || this.parent.group && this.parent.fp);
        this.Hv = !!a;
        this.bh = this.Aa.slice(0);
        for (c = this.parent; c;) {
            a = 0;
            for (b = c.Aa.length; a < b; a++) this.GC(c.Aa[a]);
            c = c.parent
        }
        this.Aa = p(this.Aa);
        this.bh = p(this.bh);
        a = 0;
        for (b = this.ec.length; a < b; a++) this.ec[a].Ob();
        a = 0;
        for (b = this.oe.length; a < b; a++) this.oe[a].Ob();
        a = 0;
        for (b = this.je.length; a < b; a++) this.je[a].Ob(a < b - 1 && this.je[a + 1].Pn)
    };
    d.prototype.Ro = function(a) {
        if (this.Gh !== !!a) {
            this.Gh = !!a;
            var b;
            a = 0;
            for (b = this.Pm.length; a < b; ++a) this.Pm[a].hy();
            0 < b && this.c.Ha.Ah && this.c.Ha.Ah.Qs()
        }
    };
    d.prototype.Du = function(a) {
        c(a, this.Aa)
    };
    d.prototype.GC = function(a) {
        c(a,
            this.bh)
    };
    d.prototype.To = function() {
        this.zs = !0;
        this.parent && this.parent.To()
    };
    d.prototype.Tv = function() {
        return this.ec.length ? this.ec[0].trigger : !1
    };
    d.prototype.Zb = function() {
        var a, b, c = !1,
            d = this.c,
            e = this.c.zb();
        e.Kb = this;
        var h = this.ec;
        this.Pn || (e.xq = !1);
        if (this.Ld) {
            0 === h.length && (c = !0);
            e.Ub = 0;
            for (a = h.length; e.Ub < a; e.Ub++) b = h[e.Ub], b.trigger || (b = b.Zb()) && (c = !0);
            (e.Th = c) && this.Ko()
        } else {
            e.Ub = 0;
            for (a = h.length; e.Ub < a; e.Ub++)
                if (b = h[e.Ub].Zb(), !b) {
                    e.Th = !1;
                    this.Js && d.Ng && d.Lc();
                    return
                }
            e.Th = !0;
            this.Ko()
        }
        this.HD(e)
    };
    d.prototype.HD = function(a) {
        a.Th && this.Hv && (a.xq = !0);
        this.Js && this.c.Ng && this.c.Lc()
    };
    d.prototype.EG = function(a) {
        this.c.zb().Kb = this;
        this.ec[a].Zb() && (this.Ko(), this.c.zb().Th = !0)
    };
    d.prototype.Ko = function() {
        var a = this.c.zb(),
            b;
        a.od = 0;
        for (b = this.oe.length; a.od < b; a.od++)
            if (this.oe[a.od].Zb()) return;
        this.yx()
    };
    d.prototype.BG = function() {
        var a = this.c.zb(),
            b;
        for (b = this.oe.length; a.od < b; a.od++)
            if (this.oe[a.od].Zb()) return;
        this.yx()
    };
    d.prototype.yx = function() {
        if (this.je.length) {
            var a, b, c, d, e = this.je.length -
                1;
            this.c.Do(this);
            if (this.zs)
                for (a = 0, b = this.je.length; a < b; a++) c = this.je[a], (d = !this.fp || !this.group && a < e) && this.c.Yf(c.Aa), c.Zb(), d ? this.c.ge(c.Aa) : this.c.lq(c.Aa);
            else
                for (a = 0, b = this.je.length; a < b; a++) this.je[a].Zb();
            this.c.yo()
        }
    };
    d.prototype.FG = function() {
        var a = this.c.zb();
        a.Kb = this;
        var b = !1,
            c;
        a.Ub = 0;
        for (c = this.ec.length; a.Ub < c; a.Ub++)
            if (this.ec[a.Ub].Zb()) b = !0;
            else if (!this.Ld) return !1;
        return this.Ld ? b : !0
    };
    d.prototype.He = function() {
        this.c.pk++;
        var a = this.c.zb().Ub,
            b = this.c.Do(this);
        if (!this.Ld)
            for (b.Ub =
                a + 1, a = this.ec.length; b.Ub < a; b.Ub++)
                if (!this.ec[b.Ub].Zb()) return this.c.yo(), !1;
        this.Ko();
        this.c.yo();
        return !0
    };
    d.prototype.jF = function(a) {
        var b = a.index;
        if (0 === b) return !0;
        for (--b; 0 <= b; --b)
            if (this.ec[b].type === a.type) return !1;
        return !0
    };
    ic = d;
    a.prototype.Ob = function() {
        var a, b, c;
        a = 0;
        for (b = this.ra.length; a < b; a++) c = this.ra[a], c.Ob(), c.le && (this.$j = !0)
    };
    a.prototype.HG = function() {
        return !0
    };
    a.prototype.ps = function() {
        var a, b;
        a = 0;
        for (b = this.ra.length; a < b; a++) this.Db[a] = this.ra[a].get();
        return Va(this.Ac.apply(this.c.nf,
            this.Db), this.Fn)
    };
    a.prototype.GG = function() {
        var a, b;
        a = 0;
        for (b = this.ra.length; a < b; a++) this.Db[a] = this.ra[a].get();
        a = this.Ac.apply(this.qh ? this.qh : this.type, this.Db);
        this.type.Bd();
        return a
    };
    a.prototype.os = function() {
        var a, b, c, d, e, h, m, f, n = this.type,
            q = n.V(),
            g = this.Cd.Ld && !this.trigger;
        b = 0;
        var w = n.gc,
            l = n.Z,
            u = n.Hf,
            t = this.ue,
            p = -1 < t,
            x = this.$j,
            A = this.ra,
            P = this.Db,
            L = this.Fn,
            V = this.Ac,
            K;
        if (x)
            for (b = 0, e = A.length; b < e; ++b) h = A[b], h.le || (P[b] = h.get(0));
        else
            for (b = 0, e = A.length; b < e; ++b) P[b] = A[b].get(0);
        if (q.X) {
            B(q.k);
            B(q.na);
            K = n.k;
            a = 0;
            for (d = K.length; a < d; ++a) {
                f = K[a];
                if (x)
                    for (b = 0, e = A.length; b < e; ++b) h = A[b], h.le && (P[b] = h.get(a));
                p ? (b = 0, l && (b = f.type.Li[u]), b = V.apply(f.la[t + b], P)) : b = V.apply(f, P);
                (m = Va(b, L)) ? q.k.push(f): g && q.na.push(f)
            }
            n.finish && n.finish(!0);
            q.X = !1;
            n.Bd();
            return q.Uq()
        }
        c = 0;
        K = (m = g && !this.Cd.jF(this)) ? q.na : q.k;
        var N = !1;
        a = 0;
        for (d = K.length; a < d; ++a) {
            f = K[a];
            if (x)
                for (b = 0, e = A.length; b < e; ++b) h = A[b], h.le && (P[b] = h.get(a));
            p ? (b = 0, l && (b = f.type.Li[u]), b = V.apply(f.la[t + b], P)) : b = V.apply(f, P);
            if (Va(b, L))
                if (N = !0, m) {
                    if (q.k.push(f),
                        w)
                        for (b = 0, e = f.siblings.length; b < e; b++) h = f.siblings[b], h.type.V().k.push(h)
                } else {
                    K[c] = f;
                    if (w)
                        for (b = 0, e = f.siblings.length; b < e; b++) h = f.siblings[b], h.type.V().k[c] = h;
                    c++
                }
            else if (m) {
                K[c] = f;
                if (w)
                    for (b = 0, e = f.siblings.length; b < e; b++) h = f.siblings[b], h.type.V().na[c] = h;
                c++
            } else if (g && (q.na.push(f), w))
                for (b = 0, e = f.siblings.length; b < e; b++) h = f.siblings[b], h.type.V().na.push(h)
        }
        Ca(K, c);
        if (w)
            for (l = n.td, a = 0, d = l.length; a < d; a++) f = l[a].V(), m ? Ca(f.na, c) : Ca(f.k, c);
        c = N;
        if (m && !N)
            for (a = 0, d = q.k.length; a < d; a++) {
                f = q.k[a];
                if (x)
                    for (b =
                        0, e = A.length; b < e; b++) h = A[b], h.le && (P[b] = h.get(a));
                b = p ? V.apply(f.la[t], P) : V.apply(f, P);
                if (Va(b, L)) {
                    N = !0;
                    break
                }
            }
        n.finish && n.finish(c || g);
        return g ? N : q.Uq()
    };
    cc = a;
    n.prototype.Ob = function() {
        var a, b, c;
        a = 0;
        for (b = this.ra.length; a < b; a++) c = this.ra[a], c.Ob(), c.le && (this.$j = !0)
    };
    n.prototype.ps = function() {
        var a = this.c,
            b, c, d = this.ra,
            e = this.Db;
        b = 0;
        for (c = d.length; b < c; ++b) e[b] = d[b].get();
        return this.Ac.apply(a.nf, e)
    };
    n.prototype.os = function() {
        var a = this.type,
            b = this.ue,
            c = a.Hf,
            d = this.$j,
            e = this.ra,
            h = this.Db,
            m = this.Ac,
            f = a.V().tb(),
            a = a.Z,
            n = -1 < b,
            q, g, w, l, u, t;
        if (d)
            for (g = 0, l = e.length; g < l; ++g) u = e[g], u.le || (h[g] = u.get(0));
        else
            for (g = 0, l = e.length; g < l; ++g) h[g] = e[g].get(0);
        q = 0;
        for (w = f.length; q < w; ++q) {
            t = f[q];
            if (d)
                for (g = 0, l = e.length; g < l; ++g) u = e[g], u.le && (h[g] = u.get(q));
            n ? (g = 0, a && (g = t.type.Li[c]), m.apply(t.la[b + g], h)) : m.apply(t, h)
        }
        return !1
    };
    dc = n;
    var u = [],
        w = -1;
    e.prototype.Ob = function() {
        var a, b;
        if (11 === this.type) this.Bh = this.c.Av(this.Wl, this.Cd.parent);
        else if (13 === this.type)
            for (a = 0, b = this.li.length; a < b; a++) this.li[a].Ob();
        this.Ve && this.Ve.Ob()
    };
    e.prototype.HF = function(a) {
        this.le || !a || a.W.Vo || (this.le = !0)
    };
    e.prototype.Fx = function() {
        this.le = !0
    };
    e.prototype.LE = function(a) {
        this.eg = a || 0;
        a = h();
        this.Ve.get(a);
        w--;
        return a.data
    };
    e.prototype.ME = function(a) {
        this.eg = a || 0;
        a = h();
        this.Ve.get(a);
        w--;
        return ma(a.data) ? a.data : ""
    };
    e.prototype.RE = function() {
        return this.object
    };
    e.prototype.JE = function() {
        return this.Uu
    };
    e.prototype.Qq = function(a) {
        this.eg = a || 0;
        a = h();
        this.Ve.get(a);
        w--;
        return a.qc() ? this.c.Qc(a.data) : this.c.ze(a.data)
    };
    e.prototype.QE = function() {
        return this.jc
    };
    e.prototype.PE = function() {
        return this.key
    };
    e.prototype.OE = function() {
        return this.index
    };
    e.prototype.NE = function(a) {
        a = a || 0;
        var b = this.fe.type,
            c = null,
            c = b.V(),
            d = c.tb();
        if (d.length) c = d[a % d.length].type;
        else if (c.na.length) c = c.na[a % c.na.length].type;
        else if (b.k.length) c = b.k[a % b.k.length].type;
        else return 0;
        return this.index + c.jn[b.Hf]
    };
    e.prototype.KE = function() {
        return this.Bh
    };
    e.prototype.IE = function() {
        return this.ov
    };
    e.prototype.SE = function() {
        var a, b;
        a = 0;
        for (b =
            this.li.length; a < b; a++) this.Vl[a] = this.li[a].get();
        return this.Vl
    };
    ec = e;
    t.prototype.Ob = function() {
        this.Aa = p(this.Aa)
    };
    t.prototype.ji = function(a) {
        var b = this.c.yv();
        this.parent && !this.Kk && b ? (this.Zh >= b.length && (b.length = this.Zh + 1), b[this.Zh] = a) : this.data = a
    };
    t.prototype.tk = function() {
        var a = this.c.yv();
        return !this.parent || this.Kk || !a || this.On ? this.data : this.Zh >= a.length || "undefined" === typeof a[this.Zh] ? this.M : a[this.Zh]
    };
    t.prototype.Zb = function() {
        !this.parent || this.Kk || this.On || this.ji(this.M)
    };
    Zb = t;
    x.prototype.toString = function() {
        return "include:" + this.zk.toString()
    };
    x.prototype.Ob = function() {
        this.zk = this.c.zq[this.aF];
        this.sheet.Iv.add(this);
        this.Aa = p(this.Aa);
        for (var a = this.parent; a;) a.group && a.Pm.push(this), a = a.parent;
        this.hy()
    };
    x.prototype.Zb = function() {
        this.parent && this.c.tl(this.c.R);
        this.zk.Vq || this.zk.Zb(!0);
        this.parent && this.c.ge(this.c.R)
    };
    x.prototype.hy = function() {
        for (var a = this.parent; a;) {
            if (a.group && !a.Gh) {
                this.P = !1;
                return
            }
            a = a.parent
        }
        this.P = !0
    };
    jc = x;
    m.prototype.reset = function(a) {
        this.Kb =
            a;
        this.od = this.Ub = 0;
        B(this.Qx);
        this.xq = this.Th = !1
    };
    m.prototype.Jn = function() {
        return this.Kb.zs ? !0 : this.Ub < this.Kb.ec.length - 1 ? !!this.Kb.Aa.length : !1
    };
    Yb = m
})();
(function() {
    function g(b, a) {
        this.fe = b;
        this.c = b.c;
        this.type = a[0];
        this.get = [this.ZD, this.VD, this.hE, this.kE, this.KD, this.iE, this.cE, this.SD, this.bE, this.gE, this.LD, this.fE, this.TD, this.dE, this.$D, this.aE, this.WD, this.XD, this.RD, this.jE, this.eE, this.YD, this.QD, this.UD][this.type];
        var d = null;
        this.Uf = this.ra = this.Db = this.Ac = this.bp = this.second = this.first = this.value = null;
        this.ue = -1;
        this.Ae = null;
        this.my = -1;
        this.Bh = this.Wl = null;
        this.sj = !1;
        switch (this.type) {
            case 0:
            case 1:
            case 2:
                this.value = a[1];
                break;
            case 3:
                this.first =
                    new hc(b, a[1]);
                break;
            case 18:
                this.first = new hc(b, a[1]);
                this.second = new hc(b, a[2]);
                this.bp = new hc(b, a[3]);
                break;
            case 19:
                this.Ac = this.c.mg(a[1]);
                this.Ac !== Q.prototype.n.random && this.Ac !== Q.prototype.n.Su || this.fe.Fx();
                this.Db = [];
                this.ra = [];
                3 === a.length ? (d = a[2], this.Db.length = d.length + 1) : this.Db.length = 1;
                break;
            case 20:
                this.Uf = this.c.R[a[1]];
                this.ue = -1;
                this.Ac = this.c.mg(a[2]);
                this.sj = a[3];
                yc && this.Ac === yc.prototype.n.Zs && this.fe.Fx();
                a[4] ? this.Ae = new hc(b, a[4]) : this.Ae = null;
                this.Db = [];
                this.ra = [];
                6 ===
                    a.length ? (d = a[5], this.Db.length = d.length + 1) : this.Db.length = 1;
                break;
            case 21:
                this.Uf = this.c.R[a[1]];
                this.sj = a[2];
                a[3] ? this.Ae = new hc(b, a[3]) : this.Ae = null;
                this.my = a[4];
                break;
            case 22:
                this.Uf = this.c.R[a[1]];
                this.Uf.wn(a[2]);
                this.ue = this.Uf.Hq(a[2]);
                this.Ac = this.c.mg(a[3]);
                this.sj = a[4];
                a[5] ? this.Ae = new hc(b, a[5]) : this.Ae = null;
                this.Db = [];
                this.ra = [];
                7 === a.length ? (d = a[6], this.Db.length = d.length + 1) : this.Db.length = 1;
                break;
            case 23:
                this.Wl = a[1], this.Bh = null
        }
        this.fe.HF(this.Uf);
        4 <= this.type && 17 >= this.type && (this.first =
            new hc(b, a[1]), this.second = new hc(b, a[2]));
        if (d) {
            var h, e;
            h = 0;
            for (e = d.length; h < e; h++) this.ra.push(new hc(b, d[h]))
        }
    }

    function l() {
        ++d;
        b.length === d && b.push(new fc);
        return b[d]
    }

    function p(b, a, d) {
        var h, e;
        h = 0;
        for (e = b.length; h < e; ++h) b[h].get(d), a[h + 1] = d.data
    }

    function f(b, a) {
        this.type = b || kc.ti;
        this.data = a || 0;
        this.bi = null;
        this.type == kc.ti && (this.data = Math.floor(this.data))
    }
    g.prototype.Ob = function() {
        23 === this.type && (this.Bh = this.fe.c.Av(this.Wl, this.fe.Cd.parent));
        this.first && this.first.Ob();
        this.second && this.second.Ob();
        this.bp && this.bp.Ob();
        this.Ae && this.Ae.Ob();
        if (this.ra) {
            var b, a;
            b = 0;
            for (a = this.ra.length; b < a; b++) this.ra[b].Ob()
        }
    };
    var b = [],
        d = -1;
    g.prototype.jE = function(b) {
        var a = this.ra,
            f = this.Db;
        f[0] = b;
        b = l();
        p(a, f, b);
        --d;
        this.Ac.apply(this.c.nf, f)
    };
    g.prototype.eE = function(b) {
        var a = this.Uf,
            f = this.Db,
            h = this.ra,
            e = this.Ae,
            g = this.Ac,
            x = this.fe.eg,
            m = a.V(),
            q = m.tb();
        if (!q.length)
            if (m.na.length) q = m.na;
            else {
                this.sj ? b.aa("") : b.G(0);
                return
            }
        f[0] = b;
        b.bi = a;
        b = l();
        p(h, f, b);
        e && (e.get(b), b.qc() && (x = b.data, q = a.k));
        --d;
        a = q.length;
        if (x >=
            a || x <= -a) x %= a;
        0 > x && (x += a);
        g.apply(q[x], f)
    };
    g.prototype.QD = function(b) {
        var a = this.Uf,
            f = this.Db,
            h = this.ra,
            e = this.Ae,
            g = this.ue,
            x = this.Ac,
            m = this.fe.eg,
            q = a.V(),
            u = q.tb();
        if (!u.length)
            if (q.na.length) u = q.na;
            else {
                this.sj ? b.aa("") : b.G(0);
                return
            }
        f[0] = b;
        b.bi = a;
        b = l();
        p(h, f, b);
        e && (e.get(b), b.qc() && (m = b.data, u = a.k));
        --d;
        h = u.length;
        if (m >= h || m <= -h) m %= h;
        0 > m && (m += h);
        m = u[m];
        u = 0;
        a.Z && (u = m.type.Li[a.Hf]);
        x.apply(m.la[g + u], f)
    };
    g.prototype.YD = function(b) {
        var a = this.Ae,
            f = this.Uf,
            h = this.my,
            e = this.fe.eg,
            g = f.V(),
            p = g.tb();
        if (!p.length)
            if (g.na.length) p =
                g.na;
            else {
                this.sj ? b.aa("") : b.G(0);
                return
            }
        if (a) {
            g = l();
            a.get(g);
            if (g.qc()) {
                e = g.data;
                p = f.k;
                0 !== p.length && (e %= p.length, 0 > e && (e += p.length));
                e = f.Mq(e);
                f = e.Lb[h];
                ma(f) ? b.aa(f) : b.C(f);
                --d;
                return
            }--d
        }
        a = p.length;
        if (e >= a || e <= -a) e %= a;
        0 > e && (e += a);
        e = p[e];
        p = 0;
        f.Z && (p = e.type.jn[f.Hf]);
        f = e.Lb[h + p];
        ma(f) ? b.aa(f) : b.C(f)
    };
    g.prototype.ZD = function(b) {
        b.type = kc.ti;
        b.data = this.value
    };
    g.prototype.VD = function(b) {
        b.type = kc.si;
        b.data = this.value
    };
    g.prototype.hE = function(b) {
        b.type = kc.String;
        b.data = this.value
    };
    g.prototype.kE = function(b) {
        this.first.get(b);
        b.qc() && (b.data = -b.data)
    };
    g.prototype.KD = function(b) {
        this.first.get(b);
        var a = l();
        this.second.get(a);
        b.qc() && a.qc() && (b.data += a.data, a.Vi() && b.dj());
        --d
    };
    g.prototype.iE = function(b) {
        this.first.get(b);
        var a = l();
        this.second.get(a);
        b.qc() && a.qc() && (b.data -= a.data, a.Vi() && b.dj());
        --d
    };
    g.prototype.cE = function(b) {
        this.first.get(b);
        var a = l();
        this.second.get(a);
        b.qc() && a.qc() && (b.data *= a.data, a.Vi() && b.dj());
        --d
    };
    g.prototype.SD = function(b) {
        this.first.get(b);
        var a = l();
        this.second.get(a);
        b.qc() && a.qc() && (b.data /=
            a.data, b.dj());
        --d
    };
    g.prototype.bE = function(b) {
        this.first.get(b);
        var a = l();
        this.second.get(a);
        b.qc() && a.qc() && (b.data %= a.data, a.Vi() && b.dj());
        --d
    };
    g.prototype.gE = function(b) {
        this.first.get(b);
        var a = l();
        this.second.get(a);
        b.qc() && a.qc() && (b.data = Math.pow(b.data, a.data), a.Vi() && b.dj());
        --d
    };
    g.prototype.LD = function(b) {
        this.first.get(b);
        var a = l();
        this.second.get(a);
        a.Yi() || b.Yi() ? this.ND(b, a) : this.MD(b, a);
        --d
    };
    g.prototype.ND = function(b, a) {
        b.Yi() && a.Yi() ? this.PD(b, a) : this.OD(b, a)
    };
    g.prototype.PD = function(b,
        a) {
        b.data += a.data
    };
    g.prototype.OD = function(b, a) {
        b.Yi() ? b.data += (Math.round(1E10 * a.data) / 1E10).toString() : b.aa(b.data.toString() + a.data)
    };
    g.prototype.MD = function(b, a) {
        b.G(b.data && a.data ? 1 : 0)
    };
    g.prototype.fE = function(b) {
        this.first.get(b);
        var a = l();
        this.second.get(a);
        b.qc() && a.qc() && (b.data || a.data ? b.G(1) : b.G(0));
        --d
    };
    g.prototype.RD = function(b) {
        this.first.get(b);
        b.data ? this.second.get(b) : this.bp.get(b)
    };
    g.prototype.TD = function(b) {
        this.first.get(b);
        var a = l();
        this.second.get(a);
        b.G(b.data === a.data ? 1 : 0);
        --d
    };
    g.prototype.dE = function(b) {
        this.first.get(b);
        var a = l();
        this.second.get(a);
        b.G(b.data !== a.data ? 1 : 0);
        --d
    };
    g.prototype.$D = function(b) {
        this.first.get(b);
        var a = l();
        this.second.get(a);
        b.G(b.data < a.data ? 1 : 0);
        --d
    };
    g.prototype.aE = function(b) {
        this.first.get(b);
        var a = l();
        this.second.get(a);
        b.G(b.data <= a.data ? 1 : 0);
        --d
    };
    g.prototype.WD = function(b) {
        this.first.get(b);
        var a = l();
        this.second.get(a);
        b.G(b.data > a.data ? 1 : 0);
        --d
    };
    g.prototype.XD = function(b) {
        this.first.get(b);
        var a = l();
        this.second.get(a);
        b.G(b.data >=
            a.data ? 1 : 0);
        --d
    };
    g.prototype.UD = function(b) {
        var a = this.Bh.tk();
        ja(a) ? b.C(a) : b.aa(a)
    };
    hc = g;
    f.prototype.Vi = function() {
        return this.type === kc.si
    };
    f.prototype.qc = function() {
        return this.type === kc.ti || this.type === kc.si
    };
    f.prototype.Yi = function() {
        return this.type === kc.String
    };
    f.prototype.dj = function() {
        this.Vi() || (this.Yi() && (this.data = parseFloat(this.data)), this.type = kc.si)
    };
    f.prototype.G = function(b) {
        this.type = kc.ti;
        this.data = Math.floor(b)
    };
    f.prototype.C = function(b) {
        this.type = kc.si;
        this.data = b
    };
    f.prototype.aa =
        function(b) {
            this.type = kc.String;
            this.data = b
        };
    f.prototype.Nd = function(b) {
        ja(b) ? (this.type = kc.si, this.data = b) : ma(b) ? (this.type = kc.String, this.data = b.toString()) : (this.type = kc.ti, this.data = 0)
    };
    fc = f;
    kc = {
        ti: 0,
        si: 1,
        String: 2
    }
})();

function Q(g) {
    this.c = g;
    this.nd = []
}
Q.prototype.$a = function() {
    var g = {},
        l, p, f, b, d, c, a, n;
    g.waits = [];
    var h = g.waits,
        e;
    l = 0;
    for (p = this.nd.length; l < p; l++) {
        c = this.nd[l];
        e = {
            t: c.time,
            st: c.Mx,
            s: c.ys,
            ev: c.Ji.Ia,
            sm: [],
            sols: {}
        };
        c.Ji.oe[c.od] && (e.act = c.Ji.oe[c.od].Ia);
        f = 0;
        for (b = c.Aa.length; f < b; f++) e.sm.push(c.Aa[f].Ia);
        for (d in c.$c)
            if (c.$c.hasOwnProperty(d)) {
                a = this.c.R[parseInt(d, 10)];
                n = {
                    sa: c.$c[d].Lo,
                    insts: []
                };
                f = 0;
                for (b = c.$c[d].Mf.length; f < b; f++) n.insts.push(c.$c[d].Mf[f].uid);
                e.sols[a.Ia.toString()] = n
            }
        h.push(e)
    }
    return g
};
Q.prototype.lb = function(g) {
    g = g.waits;
    var l, p, f, b, d, c, a, n, h, e, t;
    B(this.nd);
    l = 0;
    for (p = g.length; l < p; l++)
        if (c = g[l], n = this.c.Mu[c.ev.toString()]) {
            h = -1;
            f = 0;
            for (b = n.oe.length; f < b; f++)
                if (n.oe[f].Ia === c.act) {
                    h = f;
                    break
                }
            if (-1 !== h) {
                a = {
                    $c: {},
                    Aa: [],
                    uq: !1
                };
                a.time = c.t;
                a.Mx = c.st || "";
                a.ys = !!c.s;
                a.Ji = n;
                a.od = h;
                f = 0;
                for (b = c.sm.length; f < b; f++)(n = this.c.zn(c.sm[f])) && a.Aa.push(n);
                for (d in c.sols)
                    if (c.sols.hasOwnProperty(d) && (n = this.c.zn(parseInt(d, 10)))) {
                        h = c.sols[d];
                        e = {
                            Lo: h.sa,
                            Mf: []
                        };
                        f = 0;
                        for (b = h.insts.length; f < b; f++)(t =
                            this.c.Lg(h.insts[f])) && e.Mf.push(t);
                        a.$c[n.index.toString()] = e
                    }
                this.nd.push(a)
            }
        }
};
(function() {
    function g() {}

    function l(a, b) {
        var c = a.Da.c2_feo_val,
            d = b.Da.c2_feo_val;
        if (ja(c) && ja(d)) return c - d;
        c = "" + c;
        d = "" + d;
        return c < d ? -1 : c > d ? 1 : 0
    }

    function p(a, b) {
        h && a === e && b === t || (h = new RegExp(a, b), e = a, t = b);
        h.lastIndex = 0;
        return h
    }

    function f() {}

    function b() {}

    function d(a, b, c) {
        if (a !== u || b !== w || c !== v) {
            var d = p(b, c);
            q = a.match(d);
            u = a;
            w = b;
            v = c
        }
    }
    var c = Q.prototype;
    g.prototype.mz = function() {
        return !0
    };
    g.prototype.Kt = function() {
        return !0
    };
    g.prototype.AA = function() {
        return !0
    };
    g.prototype.Ty = function(a, b, c) {
        return lc(a,
            b, c)
    };
    g.prototype.dC = function() {
        var a = this.c.zb(),
            b = a.Kb,
            c = a.Jn(),
            a = this.c.Eo();
        if (c)
            for (c = 0; !a.Ya; c++) this.c.Yf(b.Aa), a.index = c, b.He() || (a.Ya = !0), this.c.ge(b.Aa);
        else
            for (c = 0; !a.Ya; c++) a.index = c, b.He() || (a.Ya = !0);
        this.c.zo();
        return !1
    };
    g.prototype.qz = function(a, b, c) {
        var d = this.c.zb(),
            e = d.Kb,
            d = d.Jn();
        a = this.c.Eo(a);
        if (c < b)
            if (d)
                for (; b >= c && !a.Ya; --b) this.c.Yf(e.Aa), a.index = b, e.He(), this.c.ge(e.Aa);
            else
                for (; b >= c && !a.Ya; --b) a.index = b, e.He();
        else if (d)
            for (; b <= c && !a.Ya; ++b) this.c.Yf(e.Aa), a.index = b, e.He(),
                this.c.ge(e.Aa);
        else
            for (; b <= c && !a.Ya; ++b) a.index = b, e.He();
        this.c.zo();
        return !1
    };
    var a = [],
        n = -1;
    g.prototype.rz = function(b) {
        var c = b.V();
        n++;
        a.length === n && a.push([]);
        var d = a[n];
        Da(d, c.tb());
        var e = this.c.zb(),
            h = e.Kb,
            m = e.Jn(),
            e = this.c.Eo(),
            f, g, q, w, l, u, t = b.gc;
        if (m)
            for (m = 0, f = d.length; m < f && !e.Ya; m++) {
                this.c.Yf(h.Aa);
                w = d[m];
                c = b.V();
                c.X = !1;
                B(c.k);
                c.k[0] = w;
                if (t)
                    for (g = 0, q = w.siblings.length; g < q; g++) l = w.siblings[g], u = l.type.V(), u.X = !1, B(u.k), u.k[0] = l;
                e.index = m;
                h.He();
                this.c.ge(h.Aa)
            } else
                for (c.X = !1, B(c.k), m = 0,
                    f = d.length; m < f && !e.Ya; m++) {
                    w = d[m];
                    c.k[0] = w;
                    if (t)
                        for (g = 0, q = w.siblings.length; g < q; g++) l = w.siblings[g], u = l.type.V(), u.X = !1, B(u.k), u.k[0] = l;
                    e.index = m;
                    h.He()
                }
        B(d);
        this.c.zo();
        n--;
        return !1
    };
    g.prototype.sz = function(b, c, d) {
        c = b.V();
        n++;
        a.length === n && a.push([]);
        var e = a[n];
        Da(e, c.tb());
        var h = this.c.zb(),
            m = h.Kb,
            f = this.c.Eh(),
            g = h.Jn(),
            h = this.c.Eo(),
            q, w, u, t, v;
        q = 0;
        for (w = e.length; q < w; q++) e[q].Da.c2_feo_val = f.ra[1].get(q);
        e.sort(l);
        1 === d && e.reverse();
        d = b.gc;
        if (g)
            for (q = 0, w = e.length; q < w && !h.Ya; q++) {
                this.c.Yf(m.Aa);
                u = e[q];
                c = b.V();
                c.X = !1;
                B(c.k);
                c.k[0] = u;
                if (d)
                    for (f = 0, g = u.siblings.length; f < g; f++) t = u.siblings[f], v = t.type.V(), v.X = !1, B(v.k), v.k[0] = t;
                h.index = q;
                m.He();
                this.c.ge(m.Aa)
            } else
                for (c.X = !1, B(c.k), q = 0, w = e.length; q < w && !h.Ya; q++) {
                    u = e[q];
                    c.k[0] = u;
                    if (d)
                        for (f = 0, g = u.siblings.length; f < g; f++) t = u.siblings[f], v = t.type.V(), v.X = !1, B(v.k), v.k[0] = t;
                    h.index = q;
                    m.He()
                }
        B(e);
        this.c.zo();
        n--;
        return !1
    };
    g.prototype.SA = function(b, c, d, e) {
        var h, m, f, g;
        if (b) {
            n++;
            a.length === n && a.push([]);
            var q = a[n],
                w = b.V();
            Da(q, w.tb());
            w.X && B(w.na);
            var l =
                this.c.Eh();
            f = h = 0;
            for (m = q.length; h < m; h++) g = q[h], q[f] = g, c = l.ra[1].get(h), e = l.ra[3].get(h), lc(c, d, e) ? f++ : w.na.push(g);
            Ca(q, f);
            w.X = !1;
            Da(w.k, q);
            B(q);
            n--;
            b.Bd();
            return !!w.k.length
        }
    };
    g.prototype.TA = function(b, c) {
        var d, e, h, m;
        if (b) {
            n++;
            a.length === n && a.push([]);
            var f = a[n],
                q = b.V();
            Da(f, q.tb());
            q.X && B(q.na);
            var g = this.c.Eh();
            h = d = 0;
            for (e = f.length; d < e; d++) m = f[d], f[h] = m, (c = g.ra[1].get(d)) ? h++ : q.na.push(m);
            Ca(f, h);
            q.X = !1;
            Da(q.k, f);
            B(f);
            n--;
            b.Bd();
            return !!q.k.length
        }
    };
    g.prototype.$B = function() {
        var a = this.c.Eh().Da;
        "undefined" === typeof a.TriggerOnce_lastTick && (a.TriggerOnce_lastTick = -1);
        var b = a.TriggerOnce_lastTick,
            c = this.c.ni;
        a.TriggerOnce_lastTick = c;
        return this.c.ur || b !== c - 1
    };
    g.prototype.lz = function(a) {
        var b = this.c.Eh(),
            c = b.Da.Every_lastTime || 0,
            d = this.c.hc.ta;
        "undefined" === typeof b.Da.Every_seconds && (b.Da.Every_seconds = a);
        var e = b.Da.Every_seconds;
        if (d >= c + e) return b.Da.Every_lastTime = c + e, d >= b.Da.Every_lastTime + .04 && (b.Da.Every_lastTime = d), b.Da.Every_seconds = a, !0;
        d < c - .1 && (b.Da.Every_lastTime = d);
        return !1
    };
    g.prototype.Zy =
        function(a, b, c) {
            return lc(a.tk(), b, c)
        };
    g.prototype.Kz = function(a) {
        return (a = this.c.Oi[a.toLowerCase()]) && a.Gh
    };
    g.prototype.Tz = function() {
        return "undefined" !== typeof cr_is_preview
    };
    g.prototype.RA = function(a) {
        if (!a || !a.k.length) return !1;
        a.V().X = !0;
        a.Bd();
        return !0
    };
    g.prototype.Lz = function() {
        return this.c.Pg
    };
    g.prototype.kt = function() {
        var a = this.c.zb();
        return a.xq ? !1 : !a.Th
    };
    g.prototype.Cp = function() {
        return !0
    };
    g.prototype.rA = function() {
        return !0
    };
    g.prototype.Dp = function() {
        return !0
    };
    g.prototype.Ut = function() {
        return !0
    };
    g.prototype.BA = function() {
        return !0
    };
    g.prototype.lm = function() {
        return !0
    };
    g.prototype.jA = function(a) {
        return !!this.c.Lg(a)
    };
    g.prototype.Oz = function(a) {
        var b = this.c;
        switch (a) {
            case 0:
                return !b.kb && !b.Rv && !b.Uc && !b.Mn && !b.Ze && !b.br && !b.Gn;
            case 1:
                return b.Ph;
            case 2:
                return b.Ck;
            case 3:
                return b.jr;
            case 4:
                return b.Ze;
            case 5:
                return b.br;
            case 6:
                return b.ir;
            case 7:
                return b.vd;
            case 8:
                return b.Uc;
            case 9:
                return b.gF;
            case 10:
                return b.Rv;
            case 11:
                return b.Dk;
            case 12:
                return b.Gn;
            case 13:
                return b.Nn;
            default:
                return !1
        }
    };
    var h = null,
        e = "",
        t = "";
    g.prototype.Nz = function(a) {
        return !!isNaN(a)
    };
    g.prototype.xy = function(a, b, c) {
        return Pa(D(a), D(c)) <= D(b)
    };
    g.prototype.Jz = function(a, b) {
        return Ra(D(a), D(b))
    };
    g.prototype.Iz = function(a, b, c) {
        a = Na(a);
        b = Na(b);
        c = Na(c);
        return Ra(c, b) ? Ra(a, b) && !Ra(a, c) : !(!Ra(a, b) && Ra(a, c))
    };
    c.g = new g;
    f.prototype.cz = function(a, b, c, d) {
        if (b && a && (b = this.c.Sm(a, b, c, d))) {
            this.c.Id++;
            var e;
            this.c.trigger(Object.getPrototypeOf(a.W).g.jh, b);
            if (b.gc)
                for (c = 0, d = b.siblings.length; c < d; c++) e = b.siblings[c], this.c.trigger(Object.getPrototypeOf(e.type.W).g.jh,
                    e);
            this.c.Id--;
            a = a.V();
            a.X = !1;
            B(a.k);
            a.k[0] = b;
            if (b.gc)
                for (c = 0, d = b.siblings.length; c < d; c++) e = b.siblings[c], a = e.type.V(), a.X = !1, B(a.k), a.k[0] = e
        }
    };
    f.prototype.pB = function(a) {
        this.c.Ha.zl(a)
    };
    f.prototype.qB = function(a) {
        this.c.Ha.Al(a)
    };
    f.prototype.oB = function(a, b) {
        this.c.Ha.zl(a);
        this.c.Ha.Al(b)
    };
    f.prototype.LB = function(a, b) {
        0 === a.np ? ja(b) ? a.ji(b) : a.ji(parseFloat(b)) : 1 === a.np && a.ji(b.toString())
    };
    f.prototype.wy = function(a, b) {
        0 === a.np ? ja(b) ? a.ji(a.tk() + b) : a.ji(a.tk() + parseFloat(b)) : 1 === a.np && a.ji(a.tk() +
            b.toString())
    };
    f.prototype.wB = function(a, b) {
        var c = this.c.Oi[a.toLowerCase()];
        if (c) switch (b) {
            case 0:
                c.Ro(!1);
                break;
            case 1:
                c.Ro(!0);
                break;
            case 2:
                c.Ro(!c.Gh)
        }
    };
    f.prototype.JB = function(a) {
        0 > a && (a = 0);
        this.c.qf = a
    };
    f.prototype.EB = function(a, b) {
        var c = b;
        0 > c && (c = 0);
        if (a) {
            var d = a.V().tb(),
                e, h;
            e = 0;
            for (h = d.length; e < h; e++) d[e].df = c
        }
    };
    var x = [],
        m = [];
    f.prototype.cC = function(a) {
        if (!(0 > a)) {
            var b, c, d, e = this.c.zb(),
                h;
            x.length ? h = x.pop() : h = {
                $c: {},
                Aa: []
            };
            h.uq = !1;
            h.time = this.c.hc.ta + a;
            h.Mx = "";
            h.ys = !1;
            h.Ji = e.Kb;
            h.od = e.od +
                1;
            a = 0;
            for (b = this.c.R.length; a < b; a++) d = this.c.R[a], c = d.V(), c.X && -1 === e.Kb.Aa.indexOf(d) || (h.Aa.push(d), d = void 0, m.length ? d = m.pop() : d = {
                Mf: []
            }, d.Lo = !1, d.Lo = c.X, Da(d.Mf, c.k), h.$c[a.toString()] = d);
            this.nd.push(h);
            return !0
        }
    };
    f.prototype.BB = function(a, b) {
        a && a.scale !== b && (a.scale = b, this.c.H = !0)
    };
    f.prototype.iB = function() {
        var a, b, c;
        a = 0;
        for (b = this.c.Zp.length; a < b; a++) c = this.c.Zp[a], c.data = c.M
    };
    f.prototype.QB = function() {
        0 > this.c.cj || (this.c.Jq().Ya = !0)
    };
    f.prototype.Cz = function(a) {
        if (!this.c.Lk && !this.c.gk)
            for (var b in this.c.aj)
                if (this.c.aj.hasOwnProperty(b) &&
                    ob(b, a)) {
                    this.c.gk = this.c.aj[b];
                    break
                }
    };
    f.prototype.sB = function(a, b) {
        if (!(0 >= a || 0 >= b)) {
            var c = this.c.Pc;
            (document.mozFullScreen || document.webkitIsFullScreen || document.msFullscreenElement || document.fullScreen || this.c.Si) && 0 < this.c.Kf && (c = this.c.Kf);
            0 === c ? this.c.setSize(a, b, !0) : (this.c.Nb = a, this.c.Mb = b, this.c.setSize(this.c.Sh, this.c.Rh, !0))
        }
    };
    f.prototype.DB = function(a) {
        1 > a && (a = 1);
        120 < a && (a = 120);
        this.c.Gr = a
    };
    c.j = new f;
    b.prototype["int"] = function(a, b) {
        ma(b) ? (a.G(parseInt(b, 10)), isNaN(a.data) && (a.data =
            0)) : a.G(b)
    };
    b.prototype["float"] = function(a, b) {
        ma(b) ? (a.C(parseFloat(b)), isNaN(a.data) && (a.data = 0)) : a.C(b)
    };
    b.prototype.yF = function(a, b) {
        a.G(b.length || 0)
    };
    b.prototype.random = function(a, b, c) {
        void 0 === c ? a.C(Math.random() * b) : a.C(Math.random() * (c - b) + b)
    };
    b.prototype.sqrt = function(a, b) {
        a.C(Math.sqrt(b))
    };
    b.prototype.abs = function(a, b) {
        a.C(Math.abs(b))
    };
    b.prototype.round = function(a, b) {
        a.G(Math.round(b))
    };
    b.prototype.floor = function(a, b) {
        a.G(Math.floor(b))
    };
    b.prototype.ceil = function(a, b) {
        a.G(Math.ceil(b))
    };
    b.prototype.sin = function(a, b) {
        a.C(Math.sin(D(b)))
    };
    b.prototype.cos = function(a, b) {
        a.C(Math.cos(D(b)))
    };
    b.prototype.tan = function(a, b) {
        a.C(Math.tan(D(b)))
    };
    b.prototype.asin = function(a, b) {
        a.C(Ja(Math.asin(b)))
    };
    b.prototype.acos = function(a, b) {
        a.C(Ja(Math.acos(b)))
    };
    b.prototype.atan = function(a, b) {
        a.C(Ja(Math.atan(b)))
    };
    b.prototype.exp = function(a, b) {
        a.C(Math.exp(b))
    };
    b.prototype.log10 = function(a, b) {
        a.C(Math.log(b) / Math.LN10)
    };
    b.prototype.max = function(a) {
        var b = arguments[1];
        "number" !== typeof b && (b = 0);
        var c,
            d, e;
        c = 2;
        for (d = arguments.length; c < d; c++) e = arguments[c], "number" === typeof e && b < e && (b = e);
        a.C(b)
    };
    b.prototype.min = function(a) {
        var b = arguments[1];
        "number" !== typeof b && (b = 0);
        var c, d, e;
        c = 2;
        for (d = arguments.length; c < d; c++) e = arguments[c], "number" === typeof e && b > e && (b = e);
        a.C(b)
    };
    b.prototype.Hg = function(a) {
        a.C(this.c.Hg)
    };
    b.prototype.qf = function(a) {
        a.C(this.c.qf)
    };
    b.prototype.time = function(a) {
        a.C(this.c.hc.ta)
    };
    b.prototype.ni = function(a) {
        a.G(this.c.ni)
    };
    b.prototype.fl = function(a) {
        a.G(this.c.fl)
    };
    b.prototype.sn =
        function(a) {
            a.G(this.c.sn)
        };
    b.prototype.DF = function(a, b) {
        var c, d;
        if (this.c.Zk.length)
            if (b) {
                for (d = this.c.cj; 0 <= d; --d)
                    if (c = this.c.Zk[d], c.name === b) {
                        a.G(c.index);
                        return
                    }
                a.G(0)
            } else c = this.c.Jq(), a.G(c ? c.index : -1);
        else a.G(0)
    };
    b.prototype.fD = function(a, b, c, d, e) {
        a.C(Ta(b, c, d, e))
    };
    b.prototype.q = function(a, b, c, d, e) {
        a.C(Ja(Oa(b, c, d, e)))
    };
    b.prototype.KG = function(a) {
        a.C(this.c.Ha.scrollY)
    };
    b.prototype.LF = function(a) {
        a.aa("\n")
    };
    b.prototype.zF = function(a, b, c, d) {
        a.C(Wa(b, c, d))
    };
    b.prototype.EF = function(a, b) {
        a.aa(ma(b) ?
            b.toLowerCase() : "")
    };
    b.prototype.SC = function(a, b, c, d) {
        b < c ? a.C(c) : b > d ? a.C(d) : a.C(b)
    };
    b.prototype.wF = function(a, b) {
        var c = this.c.AE(b);
        c ? a.C(c.scale) : a.C(0)
    };
    b.prototype.find = function(a, b, c) {
        ma(b) && ma(c) ? a.G(b.search(new RegExp(hb(c), "i"))) : a.G(-1)
    };
    b.prototype.left = function(a, b, c) {
        a.aa(ma(b) ? b.substr(0, c) : "")
    };
    b.prototype.right = function(a, b, c) {
        a.aa(ma(b) ? b.substr(b.length - c) : "")
    };
    b.prototype.$G = function(a, b, c, d) {
        ma(b) && ma(d) ? (b = b.split(d), c = ua(c), 0 > c || c >= b.length ? a.aa("") : a.aa(b[c])) : a.aa("")
    };
    b.prototype.aH =
        function(a, b, c) {
            ma(b) && b.length ? a.G(b.split(c).length) : a.G(0)
        };
    b.prototype.replace = function(a, b, c, d) {
        ma(b) && ma(c) && ma(d) ? a.aa(b.replace(new RegExp(hb(c), "gi"), d)) : a.aa(ma(b) ? b : "")
    };
    b.prototype.trim = function(a, b) {
        a.aa(ma(b) ? b.trim() : "")
    };
    b.prototype.YF = function(a) {
        a.C(ta)
    };
    b.prototype.xF = function(a) {
        this.c.Ha ? a.aa(this.c.Ha.name) : a.aa("")
    };
    b.prototype.wG = function(a) {
        a.aa(this.c.S ? "webgl" : "canvas2d")
    };
    b.prototype.Su = function(a) {
        var b = ua(Math.random() * (arguments.length - 1));
        a.Nd(arguments[b + 1])
    };
    b.prototype.lG =
        function(a) {
            a.aa(this.c.kG)
        };
    b.prototype.oq = function(a) {
        a.C(this.c.oq / 1E3)
    };
    b.prototype.Wh = function(a) {
        a.C(this.c.Wh)
    };
    b.prototype.cH = function(a, b, c, d) {
        a.C(Xa(b, c, d))
    };
    b.prototype.tG = function(a, b, c, d) {
        c = p(c, d);
        a.G(b ? b.search(c) : -1)
    };
    b.prototype.sG = function(a, b, c, d, e) {
        c = p(c, d);
        a.aa(b ? b.replace(c, e) : "")
    };
    var q = [],
        u = "",
        w = "",
        v = "";
    b.prototype.rG = function(a, b, c, e) {
        p(c, e);
        d(b, c, e);
        a.G(q ? q.length : 0)
    };
    b.prototype.qG = function(a, b, c, e, h) {
        h = Math.floor(h);
        p(c, e);
        d(b, c, e);
        !q || 0 > h || h >= q.length ? a.aa("") : a.aa(q[h])
    };
    c.n = new b;
    c.DG = function() {
        var a, b, c, d, e, h, f = this.c.zb();
        a = 0;
        for (c = this.nd.length; a < c; a++) {
            d = this.nd[a];
            if (-1 === d.time) {
                if (!d.ys) continue
            } else if (d.time > this.c.hc.ta) continue;
            f.Kb = d.Ji;
            f.od = d.od;
            f.Ub = 0;
            for (b in d.$c) d.$c.hasOwnProperty(b) && (e = this.c.R[parseInt(b, 10)].V(), h = d.$c[b], e.X = h.Lo, Da(e.k, h.Mf), e = h, B(e.Mf), m.push(e));
            d.Ji.BG();
            this.c.lq(d.Aa);
            d.uq = !0
        }
        b = a = 0;
        for (c = this.nd.length; a < c; a++) d = this.nd[a], this.nd[b] = d, d.uq ? (Za(d.$c), B(d.Aa), x.push(d)) : b++;
        Ca(this.nd, b)
    }
})();
(function() {
    rb = function(g, p) {
        var f = g[1],
            b = g[3],
            d = g[4],
            c = g[5],
            a = g[6],
            n = g[7],
            h = g[8];
        p.g || (p.g = {});
        p.j || (p.j = {});
        p.n || (p.n = {});
        var e = p.g,
            t = p.j,
            x = p.n;
        b && (e.et = function(a, b) {
                return lc(this.x, a, b)
            }, e.ft = function(a, b) {
                return lc(this.y, a, b)
            }, e.KH = function() {
                var a = this.F;
                this.jb();
                var b = this.Tb;
                return !(b.right < a.Wa || b.bottom < a.Xa || b.left > a.bb || b.top > a.ab)
            }, e.LH = function() {
                this.jb();
                var a = this.Tb,
                    b = this.c.Ha;
                return 0 > a.right || 0 > a.bottom || a.left > b.width || a.top > b.height
            }, e.UA = function(a, b, c) {
                var d = this.V(),
                    e =
                    d.tb();
                if (!e.length) return !1;
                var h = e[0],
                    f = h,
                    n = Ta(h.x, h.y, b, c),
                    g, l, t;
                g = 1;
                for (l = e.length; g < l; g++)
                    if (h = e[g], t = Ta(h.x, h.y, b, c), 0 === a && t < n || 1 === a && t > n) n = t, f = h;
                d.ei(f);
                return !0
            }, t.Pj = function(a) {
                this.x !== a && (this.x = a, this.ca())
            }, t.Pp = function(a) {
                this.y !== a && (this.y = a, this.ca())
            }, t.rm = function(a, b) {
                if (this.x !== a || this.y !== b) this.x = a, this.y = b, this.ca()
            }, t.lI = function(a, b) {
                var c = a.CE(this);
                if (c) {
                    var d;
                    c.Lf ? (d = c.Lf(b, !0), c = c.Lf(b, !1)) : (d = c.x, c = c.y);
                    if (this.x !== d || this.y !== c) this.x = d, this.y = c, this.ca()
                }
            }, t.PH =
            function(a) {
                0 !== a && (this.x += Math.cos(this.q) * a, this.y += Math.sin(this.q) * a, this.ca())
            }, t.OH = function(a, b) {
                0 !== b && (this.x += Math.cos(D(a)) * b, this.y += Math.sin(D(a)) * b, this.ca())
            }, x.kh = function(a) {
                a.C(this.x)
            }, x.mh = function(a) {
                a.C(this.y)
            }, x.Hg = function(a) {
                a.C(this.c.Fh(this))
            });
        d && (e.xH = function(a, b) {
            return lc(this.width, a, b)
        }, e.wH = function(a, b) {
            return lc(this.height, a, b)
        }, t.iu = function(a) {
            this.width !== a && (this.width = a, this.ca())
        }, t.yB = function(a) {
            this.height !== a && (this.height = a, this.ca())
        }, t.Oj = function(a,
            b) {
            if (this.width !== a || this.height !== b) this.width = a, this.height = b, this.ca()
        }, x.yi = function(a) {
            a.C(this.width)
        }, x.fm = function(a) {
            a.C(this.height)
        }, x.rH = function(a) {
            this.jb();
            a.C(this.Tb.left)
        }, x.tH = function(a) {
            this.jb();
            a.C(this.Tb.top)
        }, x.sH = function(a) {
            this.jb();
            a.C(this.Tb.right)
        }, x.Cy = function(a) {
            this.jb();
            a.C(this.Tb.bottom)
        });
        c && (e.xy = function(a, b) {
            return Pa(this.q, D(b)) <= D(a)
        }, e.Jz = function(a) {
            return Ra(this.q, D(a))
        }, e.Iz = function(a, b) {
            var c = Na(a),
                d = Na(b),
                e = La(this.q);
            return Ra(d, c) ? Ra(e, c) &&
                !Ra(e, d) : !(!Ra(e, c) && Ra(e, d))
        }, t.rB = function(a) {
            a = D(Ka(a));
            isNaN(a) || this.q === a || (this.q = a, this.ca())
        }, t.aI = function(a) {
            0 === a || isNaN(a) || (this.q += D(a), this.q = La(this.q), this.ca())
        }, t.bI = function(a) {
            0 === a || isNaN(a) || (this.q -= D(a), this.q = La(this.q), this.ca())
        }, t.cI = function(a, b) {
            var c = Qa(this.q, D(b), D(a));
            isNaN(c) || this.q === c || (this.q = c, this.ca())
        }, t.dI = function(a, b, c) {
            a = Qa(this.q, Math.atan2(c - this.y, b - this.x), D(a));
            isNaN(a) || this.q === a || (this.q = a, this.ca())
        }, t.pI = function(a, b) {
            var c = Math.atan2(b - this.y,
                a - this.x);
            isNaN(c) || this.q === c || (this.q = c, this.ca())
        }, x.qH = function(a) {
            a.C(Ma(this.q))
        });
        f || (e.em = function(a, b, c) {
            return lc(this.Lb[a], b, c)
        }, e.IH = function(a) {
            return this.Lb[a]
        }, e.VA = function(a, b) {
            var c = this.V(),
                d = c.tb();
            if (!d.length) return !1;
            var e = d[0],
                h = e,
                f = e.Lb[b],
                n, g, l;
            n = 1;
            for (g = d.length; n < g; n++)
                if (e = d[n], l = e.Lb[b], 0 === a && l < f || 1 === a && l > f) f = l, h = e;
            c.ei(h);
            return !0
        }, e.Ip = function(a) {
            var b, c, d, e, h;
            if (this.c.Eh().Fn) {
                h = this.V();
                if (h.X)
                    for (h.X = !1, B(h.k), B(h.na), d = this.k, b = 0, c = d.length; b < c; b++) e = d[b],
                        e.uid === a ? h.na.push(e) : h.k.push(e);
                else {
                    d = b = 0;
                    for (c = h.k.length; b < c; b++) e = h.k[b], h.k[d] = e, e.uid === a ? h.na.push(e) : d++;
                    Ca(h.k, d)
                }
                this.Bd();
                return !!h.k.length
            }
            e = this.c.Lg(a);
            if (!e) return !1;
            h = this.V();
            if (!h.X && -1 === h.k.indexOf(e)) return !1;
            if (this.Z)
                for (a = e.type.sb, b = 0, c = a.length; b < c; b++) {
                    if (a[b] === this) return h.ei(e), this.Bd(), !0
                } else if (e.type === this) return h.ei(e), this.Bd(), !0;
            return !1
        }, e.jh = function() {
            return !0
        }, e.Dt = function() {
            return !0
        }, t.qm = function(a, b) {
            var c = this.Lb;
            ja(c[a]) ? c[a] = ja(b) ? b : parseFloat(b) :
                ma(c[a]) && (c[a] = ma(b) ? b : b.toString())
        }, t.ty = function(a, b) {
            var c = this.Lb;
            ja(c[a]) ? c[a] = ja(b) ? c[a] + b : c[a] + parseFloat(b) : ma(c[a]) && (c[a] = ma(b) ? c[a] + b : c[a] + b.toString())
        }, t.TB = function(a, b) {
            var c = this.Lb;
            ja(c[a]) && (c[a] = ja(b) ? c[a] - b : c[a] - parseFloat(b))
        }, t.eI = function(a, b) {
            this.Lb[a] = b ? 1 : 0
        }, t.vI = function(a) {
            this.Lb[a] = 1 - this.Lb[a]
        }, t.Ij = function() {
            this.c.ne(this)
        }, t.gm || (t.gm = function(a) {
            var b, c;
            try {
                b = JSON.parse(a)
            } catch (d) {
                return
            }
            this.c.Wn(this, b, !0);
            this.pe && this.pe();
            if (this.la)
                for (a = 0, b = this.la.length; a <
                    b; ++a) c = this.la[a], c.pe && c.pe()
        }), x.bz = function(a) {
            var b = a.bi.k.length,
                c, d, e;
            c = 0;
            for (d = this.c.ve.length; c < d; c++) e = this.c.ve[c], a.bi.Z ? 0 <= e.type.sb.indexOf(a.bi) && b++ : e.type === a.bi && b++;
            a.G(b)
        }, x.WH = function(a) {
            a.G(a.bi.V().tb().length)
        }, x.Rp = function(a) {
            a.G(this.uid)
        }, x.GH = function(a) {
            a.G(this.uk())
        }, x.tf || (x.tf = function(a) {
            a.aa(JSON.stringify(this.c.qs(this, !0)))
        }));
        a && (e.Wz = function() {
            return this.visible
        }, t.tm = function(a) {
            !a !== !this.visible && (this.visible = !!a, this.c.H = !0)
        }, e.Vy = function(a, b) {
            return lc(nb(100 *
                this.opacity), a, b)
        }, t.Lp = function(a) {
            a = a / 100;
            0 > a ? a = 0 : 1 < a && (a = 1);
            a !== this.opacity && (this.opacity = a, this.c.H = !0)
        }, x.Opacity = function(a) {
            a.C(nb(100 * this.opacity))
        });
        n && (e.JH = function(a) {
                return a ? this.F === a : !1
            }, e.VH = function(a) {
                var b = this.V(),
                    c = b.tb();
                if (!c.length) return !1;
                var d = c[0],
                    e = d,
                    h, f;
                h = 1;
                for (f = c.length; h < f; h++)
                    if (d = c[h], 0 === a) {
                        if (d.F.index > e.F.index || d.F.index === e.F.index && d.Xe() > e.Xe()) e = d
                    } else if (d.F.index < e.F.index || d.F.index === e.F.index && d.Xe() < e.Xe()) e = d;
                b.ei(e);
                return !0
            }, t.zp = function() {
                var a =
                    this.F,
                    b = a.k;
                b.length && b[b.length - 1] === this || (a.rj(this, !1), a.bk(this, !1), this.c.H = !0)
            }, t.iA = function() {
                var a = this.F,
                    b = a.k;
                b.length && b[0] === this || (a.rj(this, !1), a.gG(this), this.c.H = !0)
            }, t.QH = function(a) {
                a && a != this.F && (this.F.rj(this, !0), this.F = a, a.bk(this, !0), this.c.H = !0)
            }, t.qu = function(a, b) {
                var c = 0 === a;
                if (b) {
                    var d = b.xn(this);
                    d && d.uid !== this.uid && (this.F.index !== d.F.index && (this.F.rj(this, !0), this.F = d.F, d.F.bk(this, !0)), this.F.JF(this, d, c), this.c.H = !0)
                }
            }, x.NH = function(a) {
                a.G(this.F.Gw)
            }, x.MH = function(a) {
                a.aa(this.F.name)
            },
            x.Sp = function(a) {
                a.G(this.Xe())
            });
        h && (t.gI = function(a, b) {
            if (this.c.J) {
                var c = this.type.Lq(b);
                if (!(0 > c)) {
                    var d = 1 === a;
                    this.rg[c] !== d && (this.rg[c] = d, this.Le(), this.c.H = !0)
                }
            }
        }, t.hI = function(a, b, c) {
            if (this.c.J) {
                var d = this.type.Lq(a);
                0 > d || (a = this.type.wa[d], d = this.yb[d], b = Math.floor(b), 0 > b || b >= d.length || (1 === this.c.J.GE(a.$b, b) && (c /= 100), d[b] !== c && (d[b] = c, a.P && (this.c.H = !0))))
            }
        })
    };
    Qb = function() {
        this.hq = this.bq = !0;
        this.type.Cm = !0;
        this.c.H = !0;
        var g, p, f = this.cq;
        g = 0;
        for (p = f.length; g < p; ++g) f[g](this);
        this.F.Qd &&
            this.jb()
    };
    Rb = function(g) {
        g && this.cq.push(g)
    };
    Tb = function() {
        if (this.bq) {
            var g = this.Tb,
                p = this.Nc;
            g.set(this.x, this.y, this.x + this.width, this.y + this.height);
            g.offset(-this.Ab * this.width, -this.Bb * this.height);
            this.q ? (g.offset(-this.x, -this.y), p.Hx(g, this.q), p.offset(this.x, this.y), p.Nu(g)) : p.Fl(g);
            g.normalize();
            this.bq = !1;
            this.gH()
        }
    };
    var g = new xa(0, 0, 0, 0);
    Ub = function() {
        if (this.F.Qd) {
            var l = this.F.Jc,
                p = this.Tb;
            g.set(l.cd(p.left), l.dd(p.top), l.cd(p.right), l.dd(p.bottom));
            this.kd.nk(g) || (this.kd.right < this.kd.left ?
                l.update(this, null, g) : l.update(this, this.kd, g), this.kd.Di(g), this.F.Ge = !0)
        }
    };
    Vb = function() {
        if (this.hq && this.Vd) {
            this.jb();
            var l = this.type.ik,
                p = this.Tb;
            g.set(l.cd(p.left), l.dd(p.top), l.cd(p.right), l.dd(p.bottom));
            this.Ud.nk(g) || (this.Ud.right < this.Ud.left ? l.update(this, null, g) : l.update(this, this.Ud, g), this.Ud.Di(g), this.hq = !1)
        }
    };
    Sb = function(g, p) {
        return this.Tb.wc(g, p) && this.Nc.wc(g, p) ? this.Bj ? this.YG(g, p) : this.Qa && !this.Qa.Ui() ? (this.Qa.uh(this.width, this.height, this.q), this.Qa.wc(g - this.x, p - this.y)) :
            !0 : !1
    };
    Lb = function() {
        this.type.kp();
        return this.Kh
    };
    Wb = function() {
        this.F.Ts();
        return this.Rd
    };
    Xb = function() {
        B(this.Na);
        var g, p, f, b = !0;
        g = 0;
        for (p = this.rg.length; g < p; g++) this.rg[g] && (f = this.type.wa[g], this.Na.push(f), f.Ee || (b = !1));
        this.ly = !!this.Na.length;
        this.dg = b
    };
    Mb = function() {
        return "Inst" + this.qx
    };
    ub = function(g) {
        if (g && g.gc && g.type != this) {
            var p, f, b;
            p = 0;
            for (f = g.siblings.length; p < f; p++)
                if (b = g.siblings[p], b.type == this) return b
        }
        g = this.V().tb();
        return g.length ? g[0] : null
    };
    vb = function(g) {
        var p = this.V().tb();
        return p.length ? p[g.uk() % p.length] : null
    };
    tb = function() {
        if (this.vj && !this.Z) {
            var g, p;
            g = 0;
            for (p = this.k.length; g < p; g++) this.k[g].Kh = g;
            var f = g,
                b = this.c.ve;
            g = 0;
            for (p = b.length; g < p; ++g) b[g].type === this && (b[g].Kh = f++);
            this.vj = !1
        }
    };
    Jb = function(g) {
        if (g < this.k.length) return this.k[g];
        g -= this.k.length;
        var p = this.c.ve,
            f, b;
        f = 0;
        for (b = p.length; f < b; ++f)
            if (p[f].type === this) {
                if (0 === g) return p[f];
                --g
            }
        return null
    };
    wb = function() {
        return this.fg[this.Re]
    };
    xb = function() {
        this.Re++;
        this.Re === this.fg.length ? this.fg.push(new sb(this)) :
            (this.fg[this.Re].X = !0, B(this.fg[this.Re].na))
    };
    Db = function() {
        this.Re++;
        this.Re === this.fg.length && this.fg.push(new sb(this));
        var g = this.fg[this.Re],
            p = this.fg[this.Re - 1];
        p.X ? (g.X = !0, B(g.na)) : (g.X = !1, Da(g.k, p.k), Da(g.na, p.na))
    };
    Eb = function() {
        this.Re--
    };
    Fb = function(g) {
        var p, f, b, d, c, a = 0;
        if (!this.Z)
            for (p = 0, f = this.sb.length; p < f; p++)
                for (c = this.sb[p], b = 0, d = c.xb.length; b < d; b++) {
                    if (g === c.xb[b].name) return this.Da.lastBehIndex = a, c.xb[b];
                    a++
                }
        p = 0;
        for (f = this.xb.length; p < f; p++) {
            if (g === this.xb[p].name) return this.Da.lastBehIndex =
                a, this.xb[p];
            a++
        }
        return null
    };
    Gb = function(g) {
        return this.wn(g) ? this.Da.lastBehIndex : -1
    };
    Hb = function(g) {
        var p, f;
        p = 0;
        for (f = this.wa.length; p < f; p++)
            if (this.wa[p].name === g) return p;
        return -1
    };
    Ib = function() {
        if (this.gc && !this.Z) {
            var g, p, f, b, d, c, a;
            this.kp();
            c = this.V();
            var n = c.X,
                h = (g = this.c.zb()) && g.Kb && g.Kb.Ld;
            g = 0;
            for (p = this.td.length; g < p; g++)
                if (d = this.td[g], d !== this && (d.kp(), a = d.V(), a.X = n, !n)) {
                    B(a.k);
                    f = 0;
                    for (b = c.k.length; f < b; ++f) a.k[f] = d.Mq(c.k[f].Kh);
                    if (h)
                        for (B(a.na), f = 0, b = c.na.length; f < b; ++f) a.na[f] = d.Mq(c.na[f].Kh)
                }
        }
    };
    Kb = function() {
        return "Type" + this.Ia
    };
    lc = function(g, p, f) {
        if ("undefined" === typeof g || "undefined" === typeof f) return !1;
        switch (p) {
            case 0:
                return g === f;
            case 1:
                return g !== f;
            case 2:
                return g < f;
            case 3:
                return g <= f;
            case 4:
                return g > f;
            case 5:
                return g >= f;
            default:
                return !1
        }
    }
})();
var wc = {};

function Ac(g) {
    this.c = g
}
(function() {
    function g() {}

    function l() {}

    function p() {}
    var f = !1,
        b = null,
        d = null,
        c = "",
        a = Ac.prototype;
    a.N = function(a) {
        this.W = a;
        this.c = a.c
    };
    a.N.prototype.I = function() {};
    a.L = function(a) {
        this.type = a;
        this.c = a.c;
        this.we = this.Qf = "";
        this.Xc = 0;
        this.timeout = -1;
        if (f = this.c.Ri) b = require("path"), d = require("fs"), c = b.dirname((window.process || nw.process).execPath) + "\\"
    };
    var n = a.L.prototype,
        h = null;
    window.C2_AJAX_DCSide = function(a, b, c) {
        h && ("success" === a ? (h.we = b, h.Qf = c, h.c.trigger(Ac.prototype.g.Ap, h), h.c.trigger(Ac.prototype.g.im,
            h)) : "error" === a ? (h.we = b, h.c.trigger(Ac.prototype.g.Bp, h), h.c.trigger(Ac.prototype.g.ng, h)) : "progress" === a && (h.Xc = c, h.we = b, h.c.trigger(Ac.prototype.g.Lj, h)))
    };
    n.I = function() {
        h = this
    };
    n.$a = function() {
        return {
            lastData: this.Qf
        }
    };
    n.lb = function(a) {
        this.Qf = a.lastData;
        this.we = "";
        this.Xc = 0
    };
    var e = {},
        t = "";
    n.nD = function(a, b, h, n) {
        if (this.c.Cc) AppMobi.webview.execute('C2_AJAX_WebSide("' + a + '", "' + b + '", "' + h + '", ' + (n ? '"' + n + '"' : "null") + ");");
        else {
            var g = this,
                l = null,
                k = function() {
                    g.we = a;
                    g.c.trigger(Ac.prototype.g.Bp,
                        g);
                    g.c.trigger(Ac.prototype.g.ng, g)
                },
                r = function() {
                    if (f) {
                        var e = c + b;
                        d.existsSync(e) ? d.readFile(e, {
                            encoding: "utf8"
                        }, function(b, c) {
                            b ? k() : (g.we = a, g.Qf = c.replace(/\r\n/g, "\n"), g.c.trigger(Ac.prototype.g.Ap, g), g.c.trigger(Ac.prototype.g.im, g))
                        }) : k()
                    } else k()
                },
                p = function(b) {
                    b.lengthComputable && (g.Xc = b.loaded / b.total, g.we = a, g.c.trigger(Ac.prototype.g.Lj, g))
                };
            try {
                this.c.Ze ? l = new ActiveXObject("Microsoft.XMLHTTP") : l = new XMLHttpRequest;
                l.onreadystatechange = function() {
                    4 === l.readyState && (g.we = a, l.responseText ?
                        g.Qf = l.responseText.replace(/\r\n/g, "\n") : g.Qf = "", 400 <= l.status ? (g.c.trigger(Ac.prototype.g.Bp, g), g.c.trigger(Ac.prototype.g.ng, g)) : f && !g.Qf.length || !f && 0 === l.status && !g.Qf.length || (g.c.trigger(Ac.prototype.g.Ap, g), g.c.trigger(Ac.prototype.g.im, g)))
                };
                this.c.Ze || (l.onerror = r, l.ontimeout = r, l.onabort = r, l.onprogress = p);
                l.open(h, b);
                !this.c.Ze && 0 <= this.timeout && "undefined" !== typeof l.timeout && (l.timeout = this.timeout);
                try {
                    l.responseType = "text"
                } catch (y) {}
                n && l.setRequestHeader && !e.hasOwnProperty("Content-Type") &&
                    l.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                if (l.setRequestHeader) {
                    for (var I in e)
                        if (e.hasOwnProperty(I)) try {
                            l.setRequestHeader(I, e[I])
                        } catch (R) {}
                        e = {}
                }
                if (t && l.overrideMimeType) {
                    try {
                        l.overrideMimeType(t)
                    } catch (M) {}
                    t = ""
                }
                // n ? l.send(n) : l.send()
            } catch (G) {
                r()
            }
        }
    };
    g.prototype.im = function(a) {
        return ob(a, this.we)
    };
    g.prototype.Ap = function() {
        return !0
    };
    g.prototype.ng = function(a) {
        return ob(a, this.we)
    };
    g.prototype.Bp = function() {
        return !0
    };
    g.prototype.Lj = function(a) {
        return ob(a, this.we)
    };
    a.g = new g;
    l.prototype.aB = function(a, b, c, d) {
        this.nD(a, b, d, c)
    };
    a.j = new l;
    p.prototype.aA = function(a) {
        a.aa(this.Qf)
    };
    p.prototype.bB = function(a) {
        a.C(this.Xc)
    };
    a.n = new p
})();

function Bc(g) {
    this.c = g
}
(function() {
    function g() {
        return a.length ? a.pop() : []
    }

    function l(b) {
        var c, d;
        c = 0;
        for (d = b.length; c < d; c++) Array.isArray(b[c]) && l(b[c]);
        B(b);
        a.push(b)
    }

    function p() {}

    function f() {}

    function b() {}
    var d = Bc.prototype;
    d.N = function(a) {
        this.W = a;
        this.c = a.c
    };
    d.N.prototype.I = function() {};
    d.L = function(a) {
        this.type = a;
        this.c = a.c
    };
    var c = d.L.prototype,
        a = [];
    Array.isArray || (Array.isArray = function(a) {
        return "[object Array]" === Object.prototype.toString.call(a)
    });
    c.I = function() {
        this.Oa = this.u[0];
        this.cb = this.u[1];
        this.pb = this.u[2];
        this.uc || (this.Mc = g());
        var a = this.Mc;
        a.length = this.Oa;
        var b, c, d;
        for (b = 0; b < this.Oa; b++)
            for (a[b] || (a[b] = g()), a[b].length = this.cb, c = 0; c < this.cb; c++)
                for (a[b][c] || (a[b][c] = g()), a[b][c].length = this.pb, d = 0; d < this.pb; d++) a[b][c][d] = 0;
        this.qv = [];
        this.rv = [];
        this.sv = [];
        this.If = -1
    };
    c.yd = function() {
        var a;
        for (a = 0; a < this.Oa; a++) l(this.Mc[a]);
        B(this.Mc)
    };
    c.Td = function(a, b, c) {
        a = Math.floor(a);
        b = Math.floor(b);
        c = Math.floor(c);
        return isNaN(a) || 0 > a || a > this.Oa - 1 || isNaN(b) || 0 > b || b > this.cb - 1 || isNaN(c) || 0 > c || c > this.pb - 1 ? 0 :
            this.Mc[a][b][c]
    };
    c.set = function(a, b, c, d) {
        a = Math.floor(a);
        b = Math.floor(b);
        c = Math.floor(c);
        isNaN(a) || 0 > a || a > this.Oa - 1 || isNaN(b) || 0 > b || b > this.cb - 1 || isNaN(c) || 0 > c || c > this.pb - 1 || (this.Mc[a][b][c] = d)
    };
    c.wv = function() {
        return JSON.stringify({
            c2array: !0,
            size: [this.Oa, this.cb, this.pb],
            data: this.Mc
        })
    };
    c.$a = function() {
        return {
            size: [this.Oa, this.cb, this.pb],
            data: this.Mc
        }
    };
    c.lb = function(a) {
        var b = a.size;
        this.Oa = b[0];
        this.cb = b[1];
        this.pb = b[2];
        this.Mc = a.data
    };
    c.bg = function(a, b, c) {
        0 > a && (a = 0);
        0 > b && (b = 0);
        0 > c && (c = 0);
        if (this.Oa !== a || this.cb !== b || this.pb !== c) {
            this.Oa = a;
            this.cb = b;
            this.pb = c;
            var d, f, m = this.Mc;
            m.length = a;
            for (a = 0; a < this.Oa; a++)
                for (ia(m[a]) && (m[a] = g()), m[a].length = b, d = 0; d < this.cb; d++)
                    for (ia(m[a][d]) && (m[a][d] = g()), m[a][d].length = c, f = 0; f < this.pb; f++) ia(m[a][d][f]) && (m[a][d][f] = 0)
        }
    };
    c.Dh = function() {
        return 0 <= this.If && this.If < this.qv.length ? this.qv[this.If] : 0
    };
    c.Nk = function() {
        return 0 <= this.If && this.If < this.rv.length ? this.rv[this.If] : 0
    };
    c.or = function() {
        return 0 <= this.If && this.If < this.sv.length ? this.sv[this.If] :
            0
    };
    p.prototype.et = function(a, b, c) {
        return lc(this.Td(a, 0, 0), b, c)
    };
    c.zc = function(a) {
        this.c.Yf(a.Aa);
        a.He();
        this.c.ge(a.Aa)
    };
    p.prototype.az = function(a) {
        var b, c, d;
        for (b = 0; b < this.Oa; b++)
            for (c = 0; c < this.cb; c++)
                for (d = 0; d < this.pb; d++)
                    if (this.Mc[b][c][d] === a) return !0;
        return !1
    };
    p.prototype.xp = function() {
        return 0 === this.Oa || 0 === this.cb || 0 === this.pb
    };
    p.prototype.Yy = function(a, b, c) {
        var d = 0;
        switch (a) {
            case 0:
                d = this.Oa;
                break;
            case 1:
                d = this.cb;
                break;
            case 2:
                d = this.pb
        }
        return lc(d, b, c)
    };
    d.g = new p;
    f.prototype.bt = function() {
        var a,
            b, c;
        for (a = 0; a < this.Oa; a++)
            for (b = 0; b < this.cb; b++)
                for (c = 0; c < this.pb; c++) this.Mc[a][b][c] = 0
    };
    f.prototype.Oj = function(a, b, c) {
        this.bg(a, b, c)
    };
    f.prototype.Pj = function(a, b) {
        this.set(a, 0, 0, b)
    };
    f.prototype.cB = function(a, b, c) {
        var d = 0,
            f = 0,
            m = 0,
            q = this.Mc;
        switch (c) {
            case 0:
                0 === a ? (d = q.length, q.push(g())) : (d = 0, q.unshift(g()));
                for (q[d].length = this.cb; f < this.cb; f++)
                    for (q[d][f] = g(), q[d][f].length = this.pb, m = 0; m < this.pb; m++) q[d][f][m] = b;
                this.Oa++;
                break;
            case 1:
                for (; d < this.Oa; d++)
                    for (0 === a ? (f = q[d].length, q[d].push(g())) :
                        (f = 0, q[d].unshift(g())), q[d][f].length = this.pb, m = 0; m < this.pb; m++) q[d][f][m] = b;
                this.cb++;
                break;
            case 2:
                for (; d < this.Oa; d++)
                    for (f = 0; f < this.cb; f++) 0 === a ? q[d][f].push(b) : q[d][f].unshift(b);
                this.pb++
        }
    };
    f.prototype.Yt = function(a, b) {
        var c = 0,
            d = 0,
            f = this.Mc;
        switch (b) {
            case 0:
                if (0 === this.Oa) break;
                0 === a ? l(f.pop()) : l(f.shift());
                this.Oa--;
                break;
            case 1:
                if (0 === this.cb) break;
                for (; c < this.Oa; c++) 0 === a ? l(f[c].pop()) : l(f[c].shift());
                this.cb--;
                break;
            case 2:
                if (0 === this.pb) break;
                for (; c < this.Oa; c++)
                    for (d = 0; d < this.cb; d++) 0 ===
                        a ? f[c][d].pop() : f[c][d].shift();
                this.pb--
        }
    };
    f.prototype.Jp = function(a) {
        var b = 0,
            c = 0,
            d = this.Mc;
        if (0 !== this.Oa && 0 !== this.cb && 0 !== this.pb) switch (a) {
            case 0:
                d.reverse();
                break;
            case 1:
                for (; b < this.Oa; b++) d[b].reverse();
                break;
            case 2:
                for (; b < this.Oa; b++)
                    for (c = 0; c < this.cb; c++) d[b][c].reverse();
                this.pb--
        }
    };
    f.prototype.ez = function(a, b) {
        var c = 0,
            d = 0;
        a = Math.floor(a);
        var f = this.Mc;
        if (!(0 > a)) switch (b) {
            case 0:
                if (a >= this.Oa) break;
                l(f[a]);
                f.splice(a, 1);
                this.Oa--;
                break;
            case 1:
                if (a >= this.cb) break;
                for (; c < this.Oa; c++) l(f[c][a]),
                    f[c].splice(a, 1);
                this.cb--;
                break;
            case 2:
                if (a >= this.pb) break;
                for (; c < this.Oa; c++)
                    for (d = 0; d < this.cb; d++) f[c][d].splice(a, 1);
                this.pb--
        }
    };
    f.prototype.vi = function(a) {
        var b;
        try {
            b = JSON.parse(a)
        } catch (c) {
            return
        }
        b.c2array && (a = b.size, this.Oa = a[0], this.cb = a[1], this.pb = a[2], this.Mc = b.data)
    };
    d.j = new f;
    b.prototype.By = function(a, b, c, d) {
        a.Nd(this.Td(b, c || 0, d || 0))
    };
    b.prototype.yi = function(a) {
        a.G(this.Oa)
    };
    b.prototype.fm = function(a) {
        a.G(this.cb)
    };
    b.prototype.wz = function(a) {
        a.Nd(this.Td(0, 0, 0))
    };
    b.prototype.Hz = function(a,
        b) {
        for (var c = 0; c < this.Oa; c++)
            if (this.Mc[c][0][0] === b) {
                a.G(c);
                return
            }
        a.G(-1)
    };
    b.prototype.tf = function(a) {
        a.aa(this.wv())
    };
    d.n = new b
})();

function Cc(g) {
    this.c = g
}
(function() {
    function g(a) {
        a = Math.pow(10, a / 20);
        isFinite(a) || (a = 0);
        0 > a && (a = 0);
        1 < a && (a = 1);
        return a
    }

    function l(a) {
        0 > a && (a = 0);
        1 < a && (a = 1);
        return Math.log(a) / Math.log(10) * 20
    }

    function p(a) {
        a = a.toLowerCase();
        return oa.hasOwnProperty(a) && oa[a].length ? oa[a][0].Fd() : A.destination
    }

    function f() {
        return A.createGain ? A.createGain() : A.createGainNode()
    }

    function b(a) {
        return A.createDelay ? A.createDelay(a) : A.createDelayNode(a)
    }

    function d(a, b) {
        a.start ? a.start(b || 0) : a.noteOn(b || 0)
    }

    function c(a, b, c, d) {
        a.start ? a.start(d ||
            0, b) : a.noteGrainOn(d || 0, b, c - b)
    }

    function a(a) {
        try {
            a.stop ? a.stop(0) : a.noteOff(0)
        } catch (b) {}
    }

    function n(a, b, c, d, e, h) {
        this.type = "filter";
        this.Cb = [a, b, c, d, e, h];
        this.Ka = f();
        this.ua = f();
        this.ua.gain.value = h;
        this.qa = f();
        this.qa.gain.value = 1 - h;
        this.Vb = A.createBiquadFilter();
        this.Vb.type = "number" === typeof this.Vb.type ? a : kd[a];
        this.Vb.frequency.value = b;
        this.Vb.detune && (this.Vb.detune.value = c);
        this.Vb.Q.value = d;
        this.Vb.gain.value = e;
        this.Ka.connect(this.Vb);
        this.Ka.connect(this.qa);
        this.Vb.connect(this.ua)
    }

    function h(a,
        c, d) {
        this.type = "delay";
        this.Cb = [a, c, d];
        this.Ka = f();
        this.ua = f();
        this.ua.gain.value = d;
        this.qa = f();
        this.qa.gain.value = 1 - d;
        this.$k = f();
        this.Zd = b(a);
        this.Zd.delayTime.value = a;
        this.Zm = f();
        this.Zm.gain.value = c;
        this.Ka.connect(this.$k);
        this.Ka.connect(this.qa);
        this.$k.connect(this.ua);
        this.$k.connect(this.Zd);
        this.Zd.connect(this.Zm);
        this.Zm.connect(this.$k)
    }

    function e(a, b, c, d) {
        this.type = "convolve";
        this.Cb = [b, c, d];
        this.Ka = f();
        this.ua = f();
        this.ua.gain.value = c;
        this.qa = f();
        this.qa.gain.value = 1 - c;
        this.vh = A.createConvolver();
        a && (this.vh.normalize = b, this.vh.buffer = a);
        this.Ka.connect(this.vh);
        this.Ka.connect(this.qa);
        this.vh.connect(this.ua)
    }

    function t(a, c, e, h, k) {
        this.type = "flanger";
        this.Cb = [a, c, e, h, k];
        this.Ka = f();
        this.qa = f();
        this.qa.gain.value = 1 - k / 2;
        this.ua = f();
        this.ua.gain.value = k / 2;
        this.kn = f();
        this.kn.gain.value = h;
        this.Zd = b(a + c);
        this.Zd.delayTime.value = a;
        this.tc = A.createOscillator();
        this.tc.frequency.value = e;
        this.zd = f();
        this.zd.gain.value = c;
        this.Ka.connect(this.Zd);
        this.Ka.connect(this.qa);
        this.Zd.connect(this.ua);
        this.Zd.connect(this.kn);
        this.kn.connect(this.Zd);
        this.tc.connect(this.zd);
        this.zd.connect(this.Zd.delayTime);
        d(this.tc)
    }

    function x(a, b, c, e, h, k) {
        this.type = "phaser";
        this.Cb = [a, b, c, e, h, k];
        this.Ka = f();
        this.qa = f();
        this.qa.gain.value = 1 - k / 2;
        this.ua = f();
        this.ua.gain.value = k / 2;
        this.Vb = A.createBiquadFilter();
        this.Vb.type = "number" === typeof this.Vb.type ? 7 : "allpass";
        this.Vb.frequency.value = a;
        this.Vb.detune && (this.Vb.detune.value = b);
        this.Vb.Q.value = c;
        this.tc = A.createOscillator();
        this.tc.frequency.value = h;
        this.zd = f();
        this.zd.gain.value =
            e;
        this.Ka.connect(this.Vb);
        this.Ka.connect(this.qa);
        this.Vb.connect(this.ua);
        this.tc.connect(this.zd);
        this.zd.connect(this.Vb.frequency);
        d(this.tc)
    }

    function m(a) {
        this.type = "gain";
        this.Cb = [a];
        this.Ma = f();
        this.Ma.gain.value = a
    }

    function q(a, b) {
        this.type = "tremolo";
        this.Cb = [a, b];
        this.Ma = f();
        this.Ma.gain.value = 1 - b / 2;
        this.tc = A.createOscillator();
        this.tc.frequency.value = a;
        this.zd = f();
        this.zd.gain.value = b / 2;
        this.tc.connect(this.zd);
        this.zd.connect(this.Ma.gain);
        d(this.tc)
    }

    function u(a, b) {
        this.type = "ringmod";
        this.Cb = [a, b];
        this.Ka = f();
        this.ua = f();
        this.ua.gain.value = b;
        this.qa = f();
        this.qa.gain.value = 1 - b;
        this.yl = f();
        this.yl.gain.value = 0;
        this.tc = A.createOscillator();
        this.tc.frequency.value = a;
        this.tc.connect(this.yl.gain);
        d(this.tc);
        this.Ka.connect(this.yl);
        this.Ka.connect(this.qa);
        this.yl.connect(this.ua)
    }

    function w(a, b, c, d, e) {
        this.type = "distortion";
        this.Cb = [a, b, c, d, e];
        this.Ka = f();
        this.Bo = f();
        this.Ao = f();
        this.LG(c, Math.pow(10, d / 20));
        this.ua = f();
        this.ua.gain.value = e;
        this.qa = f();
        this.qa.gain.value = 1 - e;
        this.rp =
            A.createWaveShaper();
        this.Wm = new Float32Array(65536);
        this.sE(a, b);
        this.rp.Wm = this.Wm;
        this.Ka.connect(this.Bo);
        this.Ka.connect(this.qa);
        this.Bo.connect(this.rp);
        this.rp.connect(this.Ao);
        this.Ao.connect(this.ua)
    }

    function v(a, b, c, d, e) {
        this.type = "compressor";
        this.Cb = [a, b, c, d, e];
        this.Ma = A.createDynamicsCompressor();
        try {
            this.Ma.threshold.value = a, this.Ma.knee.value = b, this.Ma.ratio.value = c, this.Ma.attack.value = d, this.Ma.release.value = e
        } catch (h) {}
    }

    function k(a, b) {
        this.type = "analyser";
        this.Cb = [a, b];
        this.Ma =
            A.createAnalyser();
        this.Ma.fftSize = a;
        this.Ma.smoothingTimeConstant = b;
        this.qE = new Float32Array(this.Ma.frequencyBinCount);
        this.Kx = new Uint8Array(a);
        this.pl = 0
    }

    function r() {
        this.Sa = null;
        this.Yn = 0
    }

    function H(a, b) {
        this.src = a;
        this.Fa = U;
        this.be = b;
        this.Bm = !1;
        var c = this;
        this.ej = this.nj = null;
        this.oj = [];
        this.No = 0;
        this.Ws = this.hn = this.Px = this.qo = !1;
        1 === U && b && !yb && (this.Fa = 0, this.nj = f());
        this.yf = this.La = null;
        var d;
        switch (this.Fa) {
            case 0:
                this.La = new Audio;
                this.La.crossOrigin = "anonymous";
                this.La.addEventListener("canplaythrough",
                    function() {
                        c.Ws = !0
                    });
                1 === U && A.createMediaElementSource && !/wiiu/i.test(navigator.userAgent) && (this.Px = !0, this.La.addEventListener("canplay", function() {
                    !c.ej && c.La && (c.ej = A.createMediaElementSource(c.La), c.ej.connect(c.nj))
                }));
                this.La.autoplay = !1;
                this.La.ZI = "auto";
                this.La.src = a;
                break;
            case 1:
                z.Ln ? z.nv(a, function(a) {
                    c.yf = a;
                    c.Zu()
                }, function() {
                    c.hn = !0
                }) : (d = new XMLHttpRequest, d.open("GET", a, !0), d.responseType = "arraybuffer", d.onload = function() {
                    c.yf = d.response;
                    c.Zu()
                }, d.onerror = function() {
                    c.hn = !0
                }, d.send());
                break;
            case 2:
                this.La = !0;
                break;
            case 3:
                this.La = !0
        }
    }

    function y(a, b) {
        var c = this;
        this.tag = b;
        this.Ya = this.We = !0;
        this.src = a.src;
        this.buffer = a;
        this.Fa = U;
        this.be = a.be;
        this.playbackRate = 1;
        this.Pi = !0;
        this.wd = this.Md = !1;
        this.ld = 0;
        this.Jk = this.Wi = this.cf = !1;
        this.volume = 1;
        this.Qr = function(a) {
            if (!c.wd && !c.Md) {
                var b = this;
                b || (b = a.target);
                b === c.Am && (c.Pi = !0, c.Ya = !0, O = c.tag, z.trigger(Cc.prototype.g.jm, C))
            }
        };
        this.Am = null;
        this.Ti = 1 === N && !this.be || 2 === N;
        this.gj = 1;
        this.startTime = this.Ti ? z.hc.ta : z.jg.ta;
        this.Yb = this.fc =
            null;
        this.ef = !1;
        this.Ec = null;
        this.bx = this.ax = this.$w = this.Zw = this.dx = this.cx = 0;
        this.D = null;
        var d = !1;
        1 !== this.Fa || 0 !== this.buffer.Fa || this.buffer.Px || (this.Fa = 0);
        switch (this.Fa) {
            case 0:
                this.be ? (this.D = a.La, d = !a.Bm, a.Bm = !0) : (this.D = new Audio, this.D.crossOrigin = "anonymous", this.D.autoplay = !1, this.D.src = a.La.src, d = !0);
                d && this.D.addEventListener("ended", function() {
                    O = c.tag;
                    c.Ya = !0;
                    z.trigger(Cc.prototype.g.jm, C)
                });
                break;
            case 1:
                this.fc = f();
                this.fc.connect(p(b));
                1 === this.buffer.Fa ? a.La && (this.D = A.createBufferSource(),
                    this.D.buffer = a.La, this.D.connect(this.fc)) : (this.D = this.buffer.La, this.buffer.nj.connect(this.fc), this.buffer.Bm || (this.buffer.Bm = !0, this.buffer.La.addEventListener("ended", function() {
                    O = c.tag;
                    c.Ya = !0;
                    z.trigger(Cc.prototype.g.jm, C)
                })));
                break;
            case 2:
                this.D = new window.Media(ba + this.src, null, null, function(a) {
                    a === window.Media.MEDIA_STOPPED && (c.Pi = !0, c.Ya = !0, O = c.tag, z.trigger(Cc.prototype.g.jm, C))
                });
                break;
            case 3:
                this.D = !0
        }
    }

    function I(a, b) {
        var c = a.Qg() ? 1 : 0,
            d = b.Qg() ? 1 : 0;
        return c === d ? 0 : c < d ? 1 : -1
    }

    function R(a,
        b) {
        B(Aa);
        if (a.length) {
            var c, d, e;
            c = 0;
            for (d = L.length; c < d; c++) e = L[c], ob(a, e.tag) && Aa.push(e);
            b && Aa.sort(I)
        } else V && !V.Jh() && (B(Aa), Aa[0] = V)
    }

    function M(a, b) {
        oa.hasOwnProperty(a) ? oa[a].push(b) : oa[a] = [b];
        var c, d, e, h, f = A.destination;
        if (oa.hasOwnProperty(a) && (e = oa[a], e.length))
            for (f = e[0].Fd(), c = 0, d = e.length; c < d; c++) h = e[c], c + 1 === d ? h.Xd(A.destination) : h.Xd(e[c + 1].Fd());
        R(a);
        c = 0;
        for (d = Aa.length; c < d; c++) Aa[c].pG(f);
        db && gc === a && (db.disconnect(), db.connect(f))
    }

    function G() {}

    function E() {}

    function J() {}
    var F = Cc.prototype;
    F.N = function(a) {
        this.W = a;
        this.c = a.c
    };
    F.N.prototype.I = function() {};
    var z = null,
        C = null,
        O = "",
        ba = "",
        U = 0,
        A = null,
        P = [],
        L = [],
        V = null,
        K = !1,
        N = 0,
        S = !1,
        Y = 1,
        T = 0,
        ka = 0,
        la = !1,
        Z = 1,
        Ua = 1,
        bb = 10,
        cb = 1E4,
        gd = 1,
        db = null,
        gc = "",
        zb = !1,
        Ab = [],
        yb = !1,
        oa = {},
        kd = "lowpass highpass bandpass lowshelf highshelf peaking notch allpass".split(" ");
    n.prototype.Xd = function(a) {
        this.ua.disconnect();
        this.ua.connect(a);
        this.qa.disconnect();
        this.qa.connect(a)
    };
    n.prototype.remove = function() {
        this.Ka.disconnect();
        this.Vb.disconnect();
        this.ua.disconnect();
        this.qa.disconnect()
    };
    n.prototype.Fd = function() {
        return this.Ka
    };
    h.prototype.Xd = function(a) {
        this.ua.disconnect();
        this.ua.connect(a);
        this.qa.disconnect();
        this.qa.connect(a)
    };
    h.prototype.remove = function() {
        this.Ka.disconnect();
        this.$k.disconnect();
        this.Zd.disconnect();
        this.Zm.disconnect();
        this.ua.disconnect();
        this.qa.disconnect()
    };
    h.prototype.Fd = function() {
        return this.Ka
    };
    e.prototype.Xd = function(a) {
        this.ua.disconnect();
        this.ua.connect(a);
        this.qa.disconnect();
        this.qa.connect(a)
    };
    e.prototype.remove = function() {
        this.Ka.disconnect();
        this.vh.disconnect();
        this.ua.disconnect();
        this.qa.disconnect()
    };
    e.prototype.Fd = function() {
        return this.Ka
    };
    t.prototype.Xd = function(a) {
        this.qa.disconnect();
        this.qa.connect(a);
        this.ua.disconnect();
        this.ua.connect(a)
    };
    t.prototype.remove = function() {
        this.Ka.disconnect();
        this.Zd.disconnect();
        this.tc.disconnect();
        this.zd.disconnect();
        this.qa.disconnect();
        this.ua.disconnect();
        this.kn.disconnect()
    };
    t.prototype.Fd = function() {
        return this.Ka
    };
    x.prototype.Xd = function(a) {
        this.qa.disconnect();
        this.qa.connect(a);
        this.ua.disconnect();
        this.ua.connect(a)
    };
    x.prototype.remove = function() {
        this.Ka.disconnect();
        this.Vb.disconnect();
        this.tc.disconnect();
        this.zd.disconnect();
        this.qa.disconnect();
        this.ua.disconnect()
    };
    x.prototype.Fd = function() {
        return this.Ka
    };
    m.prototype.Xd = function(a) {
        this.Ma.disconnect();
        this.Ma.connect(a)
    };
    m.prototype.remove = function() {
        this.Ma.disconnect()
    };
    m.prototype.Fd = function() {
        return this.Ma
    };
    q.prototype.Xd = function(a) {
        this.Ma.disconnect();
        this.Ma.connect(a)
    };
    q.prototype.remove = function() {
        this.tc.disconnect();
        this.zd.disconnect();
        this.Ma.disconnect()
    };
    q.prototype.Fd = function() {
        return this.Ma
    };
    u.prototype.Xd = function(a) {
        this.ua.disconnect();
        this.ua.connect(a);
        this.qa.disconnect();
        this.qa.connect(a)
    };
    u.prototype.remove = function() {
        this.tc.disconnect();
        this.yl.disconnect();
        this.Ka.disconnect();
        this.ua.disconnect();
        this.qa.disconnect()
    };
    u.prototype.Fd = function() {
        return this.Ka
    };
    w.prototype.LG = function(a, b) {
        .01 > a && (a = .01);
        this.Bo.gain.value = a;
        this.Ao.gain.value = Math.pow(1 / a, .6) * b
    };
    w.prototype.shape = function(a,
        b, c) {
        var d = 1.05 * c * b - b;
        c = 0 > a ? -1 : 1;
        a = 0 > a ? -a : a;
        b = a < b ? a : b + d * (1 - Math.exp(-(1 / d) * (a - b)));
        return b * c
    };
    w.prototype.sE = function(a, b) {
        for (var c = Math.pow(10, a / 20), d = Math.pow(10, b / 20), e = 0, h = 0; 32768 > h; ++h) e = h / 32768, e = this.shape(e, c, d), this.Wm[32768 + h] = e, this.Wm[32768 - h - 1] = -e
    };
    w.prototype.Xd = function(a) {
        this.ua.disconnect();
        this.ua.connect(a);
        this.qa.disconnect();
        this.qa.connect(a)
    };
    w.prototype.remove = function() {
        this.Ka.disconnect();
        this.Bo.disconnect();
        this.rp.disconnect();
        this.Ao.disconnect();
        this.ua.disconnect();
        this.qa.disconnect()
    };
    w.prototype.Fd = function() {
        return this.Ka
    };
    v.prototype.Xd = function(a) {
        this.Ma.disconnect();
        this.Ma.connect(a)
    };
    v.prototype.remove = function() {
        this.Ma.disconnect()
    };
    v.prototype.Fd = function() {
        return this.Ma
    };
    k.prototype.ub = function() {
        this.Ma.getFloatFrequencyData(this.qE);
        this.Ma.getByteTimeDomainData(this.Kx);
        for (var a = this.Ma.fftSize, b = 0, c = this.pl = 0, d = 0; b < a; b++) d = (this.Kx[b] - 128) / 128, 0 > d && (d = -d), this.pl < d && (this.pl = d), c += d * d;
        this.pl = l(this.pl);
        l(Math.sqrt(c / a))
    };
    k.prototype.Xd =
        function(a) {
            this.Ma.disconnect();
            this.Ma.connect(a)
        };
    k.prototype.remove = function() {
        this.Ma.disconnect()
    };
    k.prototype.Fd = function() {
        return this.Ma
    };
    r.prototype.Cl = function(a) {
        this.Sa = a
    };
    r.prototype.Dn = function() {
        return !!this.Sa
    };
    r.prototype.ub = function() {};
    var Pb = !1;
    H.prototype.uG = function() {
        var a, b, c, d;
        c = a = 0;
        for (b = L.length; a < b; ++a) d = L[a], L[c] = d, d.buffer === this ? d.stop() : ++c;
        L.length = c;
        this.ej && (this.ej.disconnect(), this.ej = null);
        this.nj && (this.nj.disconnect(), this.nj = null);
        this.yf = this.La = null
    };
    H.prototype.Zu =
        function() {
            if (!this.La && this.yf) {
                var a = this;
                if (A.decodeAudioData) A.decodeAudioData(this.yf, function(b) {
                    a.La = b;
                    a.yf = null;
                    var c, d, e;
                    if (ia(a.wo) || S) ia(a.Qm) || (c = a.Qm.vh, c.normalize = a.Fw, c.buffer = b);
                    else if (a.oj.length) {
                        c = 0;
                        for (d = a.oj.length; c < d; c++) {
                            b = a.oj[c];
                            e = new y(a, b.Tx);
                            e.us(!0);
                            if ("undefined" !== typeof b.Lw && (b.Sa = z.Lg(b.Lw), !b.Sa)) continue;
                            if (b.Sa) {
                                var h = Sa(b.Sa.x, b.Sa.y, -b.Sa.F.Bc(), T, ka, !0),
                                    f = Sa(b.Sa.x, b.Sa.y, -b.Sa.F.Bc(), T, ka, !1);
                                e.ts(h, f, Ja(b.Sa.q - b.Sa.F.Bc()), b.Wq, b.Ir, b.Lr);
                                e.Cl(b.Sa)
                            } else e.ts(b.x,
                                b.y, b.BC, b.Wq, b.Ir, b.Lr);
                            e.play(a.Br, a.Vs, a.No);
                            a.qo && e.pause();
                            L.push(e)
                        }
                        B(a.oj)
                    } else e = new y(a, a.wo || ""), e.play(a.Br, a.Vs, a.No), a.qo && e.pause(), L.push(e)
                }, function() {
                    a.hn = !0
                });
                else if (this.La = A.createBuffer(this.yf, !1), this.yf = null, ia(this.wo) || S) ia(this.Qm) || (b = this.Qm.vh, b.normalize = this.Fw, b.buffer = this.La);
                else {
                    var b = new y(this, this.wo);
                    b.play(this.Br, this.Vs, this.No);
                    this.qo && b.pause();
                    L.push(b)
                }
            }
        };
    H.prototype.Qv = function() {
        switch (this.Fa) {
            case 0:
                var a = 4 <= this.La.readyState;
                a && (this.Ws = !0);
                return a || this.Ws;
            case 1:
                return !!this.yf || !!this.La;
            case 2:
                return !0;
            case 3:
                return !0
        }
        return !1
    };
    H.prototype.lF = function() {
        switch (this.Fa) {
            case 0:
                return this.Qv();
            case 1:
                return !!this.La;
            case 2:
                return !0;
            case 3:
                return !0
        }
        return !1
    };
    H.prototype.XE = function() {
        switch (this.Fa) {
            case 0:
                return !!this.La.error;
            case 1:
                return this.hn
        }
        return !1
    };
    y.prototype.Jh = function() {
        switch (this.Fa) {
            case 0:
                return this.D.ended;
            case 1:
                return 1 === this.buffer.Fa ? !this.We && !this.Ya && this.D.loop || this.wd ? !1 : this.Pi : this.D.ended;
            case 2:
                return this.Pi;
            case 3:
                !0
        }
        return !0
    };
    y.prototype.RC = function() {
        return this.We || this.Ya ? !0 : this.Jh()
    };
    y.prototype.us = function(a) {
        1 === U && (!this.ef && a ? this.fc && (this.Yb || (this.Yb = A.createPanner(), this.Yb.panningModel = "number" === typeof this.Yb.panningModel ? Z : ["equalpower", "HRTF", "soundfield"][Z], this.Yb.distanceModel = "number" === typeof this.Yb.distanceModel ? Ua : ["linear", "inverse", "exponential"][Ua], this.Yb.refDistance = bb, this.Yb.maxDistance = cb, this.Yb.rolloffFactor = gd), this.fc.disconnect(), this.fc.connect(this.Yb), this.Yb.connect(p(this.tag)),
            this.ef = !0) : this.ef && !a && this.fc && (this.Yb.disconnect(), this.fc.disconnect(), this.fc.connect(p(this.tag)), this.ef = !1))
    };
    y.prototype.ts = function(a, b, c, d, e, h) {
        this.ef && 1 === U && (this.Yb.setPosition(a, b, 0), this.Yb.setOrientation(Math.cos(D(c)), Math.sin(D(c)), 0), this.Yb.coneInnerAngle = d, this.Yb.coneOuterAngle = e, this.Yb.coneOuterGain = h, this.cx = a, this.dx = b, this.Zw = c, this.$w = d, this.ax = e, this.bx = h)
    };
    y.prototype.Cl = function(a) {
        this.ef && 1 === U && (this.Ec || (this.Ec = new r), this.Ec.Cl(a))
    };
    y.prototype.ub = function(a) {
        if (this.ef &&
            1 === U && this.Ec && this.Ec.Dn() && this.Qg()) {
            this.Ec.ub(a);
            a = this.Ec.Sa;
            var b = Sa(a.x, a.y, -a.F.Bc(), T, ka, !0),
                c = Sa(a.x, a.y, -a.F.Bc(), T, ka, !1);
            this.Yb.setPosition(b, c, 0);
            b = 0;
            "undefined" !== typeof this.Ec.Sa.q && (b = a.q - a.F.Bc(), this.Yb.setOrientation(Math.cos(b), Math.sin(b), 0))
        }
    };
    y.prototype.play = function(a, b, e, h) {
        alert(1)
        var f = this.D;
        this.cf = a;
        this.volume = b;
        e = e || 0;
        h = h || 0;
        switch (this.Fa) {
            case 0:
                1 !== f.playbackRate && (f.playbackRate = 1);
                f.volume !== b * Y && (f.volume = b * Y);
                f.loop !== a && (f.loop = a);
                f.muted && (f.muted = !1);
                if (f.currentTime !==
                    e) try {
                    f.currentTime = e
                } catch (k) {}
                if (this.be && zb && !z.Dc) Ab.push(this);
                else try {
                    this.D.play()
                } catch (m) {
                    console && console.log && console.log("[C2] WARNING: exception trying to play audio '" + this.buffer.src + "': ", m)
                }
                break;
            case 1:
                this.muted = !1;
                this.gj = 1;
                if (1 === this.buffer.Fa) this.fc.gain.value = b * Y, this.We || (this.D = A.createBufferSource(), this.D.buffer = this.buffer.La, this.D.connect(this.fc)), this.D.onended = this.Qr, this.Am = this.D, this.D.loop = a, this.Pi = !1, 0 === e ? d(this.D, h) : c(this.D, e, this.Kg(), h);
                else {
                    1 !== f.playbackRate &&
                        (f.playbackRate = 1);
                    f.loop !== a && (f.loop = a);
                    f.volume = b * Y;
                    if (f.currentTime !== e) try {
                        f.currentTime = e
                    } catch (g) {}
                    this.be && zb && !z.Dc ? Ab.push(this) : f.play()
                }
                break;
            case 2:
                (!this.We && this.Ya || 0 !== e) && f.seekTo(e);
                f.play();
                this.Pi = !1;
                break;
            case 3:
                z.Cc ? AppMobi.context.playSound(this.src, a) : AppMobi.player.playSound(this.src, a)
        }
        this.playbackRate = 1;
        this.startTime = (this.Ti ? z.hc.ta : z.jg.ta) - e;
        this.wd = this.Ya = this.We = !1
    };
    y.prototype.stop = function() {
        switch (this.Fa) {
            case 0:
                this.D.paused || this.D.pause();
                break;
            case 1:
                1 ===
                    this.buffer.Fa ? a(this.D) : this.D.paused || this.D.pause();
                break;
            case 2:
                this.D.stop();
                break;
            case 3:
                z.Cc && AppMobi.context.stopSound(this.src)
        }
        this.Ya = !0;
        this.wd = !1
    };
    y.prototype.pause = function() {
        if (!(this.We || this.Ya || this.Jh() || this.wd)) {
            switch (this.Fa) {
                case 0:
                    this.D.paused || this.D.pause();
                    break;
                case 1:
                    1 === this.buffer.Fa ? (this.ld = this.An(!0), this.cf && (this.ld = this.ld % this.Kg()), this.wd = !0, a(this.D)) : this.D.paused || this.D.pause();
                    break;
                case 2:
                    this.D.pause();
                    break;
                case 3:
                    z.Cc && AppMobi.context.stopSound(this.src)
            }
            this.wd = !0
        }
    };
    y.prototype.AG = function() {
        if (!(this.We || this.Ya || this.Jh()) && this.wd) {
            switch (this.Fa) {
                case 0:
                    this.D.play();
                    break;
                case 1:
                    1 === this.buffer.Fa ? (this.D = A.createBufferSource(), this.D.buffer = this.buffer.La, this.D.connect(this.fc), this.D.onended = this.Qr, this.Am = this.D, this.D.loop = this.cf, this.fc.gain.value = Y * this.volume * this.gj, this.lp(), this.startTime = (this.Ti ? z.hc.ta : z.jg.ta) - this.ld / (this.playbackRate || .001), c(this.D, this.ld, this.Kg())) : this.D.play();
                    break;
                case 2:
                    this.D.play();
                    break;
                case 3:
                    z.Cc &&
                        AppMobi.context.resumeSound(this.src)
            }
            this.wd = !1
        }
    };
    y.prototype.seek = function(a) {
        if (!(this.We || this.Ya || this.Jh())) switch (this.Fa) {
            case 0:
                try {
                    this.D.currentTime = a
                } catch (b) {}
                break;
            case 1:
                if (1 === this.buffer.Fa) this.wd ? this.ld = a : (this.pause(), this.ld = a, this.AG());
                else try {
                    this.D.currentTime = a
                } catch (c) {}
                break;
            case 3:
                z.Cc && AppMobi.context.seekSound(this.src, a)
        }
    };
    y.prototype.pG = function(a) {
        1 === this.Fa && (this.ef ? (this.Yb.disconnect(), this.Yb.connect(a)) : (this.fc.disconnect(), this.fc.connect(a)))
    };
    y.prototype.Kg =
        function() {
            var a = 0;
            switch (this.Fa) {
                case 0:
                    "undefined" !== typeof this.D.duration && (a = this.D.duration);
                    break;
                case 1:
                    a = this.buffer.La.duration;
                    break;
                case 2:
                    a = this.D.getDuration();
                    break;
                case 3:
                    z.Cc && (a = AppMobi.context.getDurationSound(this.src))
            }
            return a
        };
    y.prototype.An = function(a) {
        var b = this.Kg(),
            c = 0;
        switch (this.Fa) {
            case 0:
                "undefined" !== typeof this.D.currentTime && (c = this.D.currentTime);
                break;
            case 1:
                if (1 === this.buffer.Fa) {
                    if (this.wd) return this.ld;
                    c = (this.Ti ? z.hc.ta : z.jg.ta) - this.startTime
                } else "undefined" !==
                    typeof this.D.currentTime && (c = this.D.currentTime);
                break;
            case 3:
                z.Cc && (c = AppMobi.context.getPlaybackTimeSound(this.src))
        }
        a && (c *= this.playbackRate);
        !this.cf && c > b && (c = b);
        return c
    };
    y.prototype.Qg = function() {
        return !this.wd && !this.We && !this.Ya && !this.Jh()
    };
    y.prototype.RG = function() {
        return !this.We && !this.Ya && !this.Jh()
    };
    y.prototype.jy = function() {
        var a = this.volume * Y;
        isFinite(a) || (a = 0);
        switch (this.Fa) {
            case 0:
                "undefined" !== typeof this.D.volume && this.D.volume !== a && (this.D.volume = a);
                break;
            case 1:
                1 === this.buffer.Fa ?
                    this.fc.gain.value = a * this.gj : "undefined" !== typeof this.D.volume && this.D.volume !== a && (this.D.volume = a)
        }
    };
    y.prototype.cn = function(a) {
        switch (this.Fa) {
            case 0:
                this.D.muted !== !!a && (this.D.muted = !!a);
                break;
            case 1:
                1 === this.buffer.Fa ? (this.gj = a ? 0 : 1, this.fc.gain.value = Y * this.volume * this.gj) : this.D.muted !== !!a && (this.D.muted = !!a)
        }
    };
    y.prototype.MG = function() {
        this.Wi = !0;
        this.cn(this.Wi || this.Jk)
    };
    y.prototype.So = function(a) {
        this.Jk = !!a;
        this.cn(this.Wi || this.Jk)
    };
    y.prototype.lp = function() {
        var a = this.playbackRate;
        this.Ti && (a *= z.qf);
        switch (this.Fa) {
            case 0:
                this.D.playbackRate !== a && (this.D.playbackRate = a);
                break;
            case 1:
                1 === this.buffer.Fa ? this.D.playbackRate.value !== a && (this.D.playbackRate.value = a) : this.D.playbackRate !== a && (this.D.playbackRate = a)
        }
    };
    y.prototype.OG = function(b) {
        switch (this.Fa) {
            case 0:
                b ? this.Qg() ? (this.Md = !0, this.D.pause()) : this.Md = !1 : this.Md && (this.D.play(), this.Md = !1);
                break;
            case 1:
                b ? this.Qg() ? (this.Md = !0, 1 === this.buffer.Fa ? (this.ld = this.An(!0), this.cf && (this.ld = this.ld % this.Kg()), a(this.D)) : this.D.pause()) :
                    this.Md = !1 : this.Md && (1 === this.buffer.Fa ? (this.D = A.createBufferSource(), this.D.buffer = this.buffer.La, this.D.connect(this.fc), this.D.onended = this.Qr, this.Am = this.D, this.D.loop = this.cf, this.fc.gain.value = Y * this.volume * this.gj, this.lp(), this.startTime = (this.Ti ? z.hc.ta : z.jg.ta) - this.ld / (this.playbackRate || .001), c(this.D, this.ld, this.Kg())) : this.D.play(), this.Md = !1);
                break;
            case 2:
                b ? this.Qg() ? (this.D.pause(), this.Md = !0) : this.Md = !1 : this.Md && (this.Md = !1, this.D.play())
        }
    };
    F.L = function(a) {
        function b() {
            "suspended" ===
            A.state && A.resume && A.resume();
            if (!la && A.createBuffer) {
                var a = A.createBuffer(1, 220, 22050),
                    c = A.createBufferSource();
                c.buffer = a;
                c.connect(A.destination);
                d(c)
            }
        }
        let uptapTimer;
        let time_ad = 1;//定义是否弹出广告的标签1:弹 0:不弹
        this.type = a;
        z = this.c = a.c;
        C = this;
        this.xd = null;
        this.Qk = -600;
        this.c.Ln && (yb = !0);
        !(this.c.Ph || this.c.Ck && (this.c.cr || this.c.Hn)) || this.c.Dk || this.c.kb || this.c.Gn || yb || (zb = !0);
        A = null;
        "undefined" !== typeof AudioContext ? (U = 1, A = new AudioContext) : "undefined" !== typeof webkitAudioContext && (U = 1, A = new webkitAudioContext);
        this.c.Ph && A && (A.close && A.close(), "undefined" !==
            typeof AudioContext ? A = new AudioContext : "undefined" !== typeof webkitAudioContext && (A = new webkitAudioContext));
        zb ? document.addEventListener("touchend", function() {
            // console.log('uptap统一点击事件')
            if (!uptapTimer) {
                uptapTimer = setInterval(function() {
                    // console.log('时间到')
                    time_ad = 1;// 每60秒将广告标签设为1
                }, 50000);
            }
            let _uptap_back = function(){
                time_ad = 0;//弹出广告后设置为0
                !Pb && A && (b(), Pb = !0);
                var a, c, d;
                if (zb) {
                    if (!S)
                        for (a = 0, c = Ab.length; a < c; ++a) d = Ab[a], d.Ya || d.wd || d.D.play();
                    B(Ab)
                }
            }
            if(time_ad){
                // 调用广告
                window['uptap'].ShowScreenVideo("下一关", function () {
                    // console.log('展示广告')
                    _uptap_back();
                });
            }else{
                _uptap_back();
            }
        }, !0) : yb && document.addEventListener("touchend", function() {
            !Pb && A && (b(), Pb = !0)
        }, !0);
        1 !== U && (this.c.Uc && "undefined" !== typeof window.Media ? U = 2 : this.c.Ov && (U = 3));
        2 === U && (ba = location.href, a = ba.lastIndexOf("/"), -1 < a && (ba = ba.substr(0, a + 1)), ba =
            ba.replace("file://", ""));
        if (this.c.mF && this.c.nF && "undefined" === typeof Audio) alert("It looks like you're using Safari for Windows without Quicktime.  Audio cannot be played until Quicktime is installed."), this.c.ne(this);
        else {
            if (this.c.Cc) K = this.c.Ck;
            else try {
                K = !!(new Audio).canPlayType('audio/ogg; codecs="vorbis"')
            } catch (c) {
                K = !1
            }
            this.c.Aj(this)
        }
    };
    var Ia = F.L.prototype;
    Ia.I = function() {
        this.c.Bi = this;
        N = this.u[0];
        this.Zf = this.u[1];
        this.ZF = 0 !== this.u[2];
        this.Dw = 0;
        Z = this.u[3];
        Ua = this.u[4];
        this.Qk = -this.u[5];
        bb = this.u[6];
        cb = this.u[7];
        gd = this.u[8];
        this.xd = new r;
        var a = this.c.ja || this.c.width,
            b = this.c.ga || this.c.height;
        1 === U && (A.listener.setPosition(a / 2, b / 2, this.Qk), A.listener.setOrientation(0, 0, 1, 0, -1, 0), window.c2OnAudioMicStream = function(a, b) {
            db && db.disconnect();
            gc = b.toLowerCase();
            db = A.createMediaStreamSource(a);
            db.connect(p(gc))
        });
        this.c.Eu(function(a) {
            C.TF(a)
        });
        var c = this;
        this.c.Xp(function(a) {
            c.jl(a)
        })
    };
    Ia.jl = function(a) {
        var b, c, d;
        b = 0;
        for (c = L.length; b < c; b++) d = L[b], d.Ec && d.Ec.Sa === a && (d.Ec.Sa = null, d.ef &&
            d.Qg() && d.cf && d.stop());
        this.xd.Sa === a && (this.xd.Sa = null)
    };
    Ia.$a = function() {
        var a = {
                silent: S,
                masterVolume: Y,
                listenerZ: this.Qk,
                listenerUid: this.xd.Dn() ? this.xd.Sa.uid : -1,
                playing: [],
                effects: {}
            },
            b = a.playing,
            c, d, e, h, f, k;
        c = 0;
        for (d = L.length; c < d; c++) e = L[c], !e.RG() || 3 === this.Zf || e.be && 1 === this.Zf || !e.be && 2 === this.Zf || (h = e.An(), e.cf && (h = h % e.Kg()), h = {
                tag: e.tag,
                buffersrc: e.buffer.src,
                is_music: e.be,
                playbackTime: h,
                volume: e.volume,
                looping: e.cf,
                muted: e.Wi,
                playbackRate: e.playbackRate,
                paused: e.wd,
                resume_position: e.ld
            },
            e.ef && (h.pan = {}, k = h.pan, e.Ec && e.Ec.Dn() ? k.objUid = e.Ec.Sa.uid : (k.x = e.cx, k.y = e.dx, k.a = e.Zw), k.ia = e.$w, k.oa = e.ax, k.og = e.bx), b.push(h));
        b = a.effects;
        for (f in oa)
            if (oa.hasOwnProperty(f)) {
                e = [];
                c = 0;
                for (d = oa[f].length; c < d; c++) e.push({
                    type: oa[f][c].type,
                    params: oa[f][c].Cb
                });
                b[f] = e
            }
        return a
    };
    var Bb = [];
    Ia.lb = function(a) {
        var b = a.silent;
        Y = a.masterVolume;
        this.Qk = a.listenerZ;
        this.xd.Cl(null);
        var c = a.listenerUid; - 1 !== c && (this.xd.Yn = c, Bb.push(this.xd));
        var c = a.playing,
            d, f, g, l, p, y, H, R, I, z, E;
        if (3 !== this.Zf)
            for (d = 0, f =
                L.length; d < f; d++) I = L[d], I.be && 1 === this.Zf || (I.be || 2 !== this.Zf) && I.stop();
        for (p in oa)
            if (oa.hasOwnProperty(p))
                for (d = 0, f = oa[p].length; d < f; d++) oa[p][d].remove();
        Za(oa);
        for (p in a.effects)
            if (a.effects.hasOwnProperty(p))
                for (y = a.effects[p], d = 0, f = y.length; d < f; d++) switch (g = y[d].type, z = y[d].params, g) {
                    case "filter":
                        M(p, new n(z[0], z[1], z[2], z[3], z[4], z[5]));
                        break;
                    case "delay":
                        M(p, new h(z[0], z[1], z[2]));
                        break;
                    case "convolve":
                        g = z[2];
                        I = this.vn(g, !1);
                        I.La ? g = new e(I.La, z[0], z[1], g) : (g = new e(null, z[0], z[1], g), I.Fw =
                            z[0], I.Qm = g);
                        M(p, g);
                        break;
                    case "flanger":
                        M(p, new t(z[0], z[1], z[2], z[3], z[4]));
                        break;
                    case "phaser":
                        M(p, new x(z[0], z[1], z[2], z[3], z[4], z[5]));
                        break;
                    case "gain":
                        M(p, new m(z[0]));
                        break;
                    case "tremolo":
                        M(p, new q(z[0], z[1]));
                        break;
                    case "ringmod":
                        M(p, new u(z[0], z[1]));
                        break;
                    case "distortion":
                        M(p, new w(z[0], z[1], z[2], z[3], z[4]));
                        break;
                    case "compressor":
                        M(p, new v(z[0], z[1], z[2], z[3], z[4]));
                        break;
                    case "analyser":
                        M(p, new k(z[0], z[1]))
                }
            d = 0;
        for (f = c.length; d < f; d++) 3 === this.Zf || (a = c[d], g = a.buffersrc, l = a.is_music,
            p = a.tag, y = a.playbackTime, H = a.looping, R = a.volume, E = (z = a.pan) && z.hasOwnProperty("objUid") ? z.objUid : -1, l && 1 === this.Zf) || !l && 2 === this.Zf || ((I = this.xv(g, p, l, H, R)) ? (I.ld = a.resume_position, I.us(!!z), I.play(H, R, y), I.lp(), I.jy(), I.cn(I.Wi || I.Jk), a.paused && I.pause(), a.muted && I.MG(), I.cn(I.Wi || I.Jk), z && (-1 !== E ? (I.Ec = I.Ec || new r, I.Ec.Yn = E, Bb.push(I.Ec)) : I.ts(z.x, z.y, z.a, z.ia, z.oa, z.og))) : (I = this.vn(g, l), I.No = y, I.qo = a.paused, z && (-1 !== E ? I.oj.push({
            Lw: E,
            Wq: z.ia,
            Ir: z.oa,
            Lr: z.og,
            Tx: p
        }) : I.oj.push({
            x: z.x,
            y: z.y,
            BC: z.a,
            Wq: z.ia,
            Ir: z.oa,
            Lr: z.og,
            Tx: p
        }))));
        if (b && !S) {
            d = 0;
            for (f = L.length; d < f; d++) L[d].So(!0);
            S = !0
        } else if (!b && S) {
            d = 0;
            for (f = L.length; d < f; d++) L[d].So(!1);
            S = !1
        }
    };
    Ia.pe = function() {
        var a, b, c, d;
        a = 0;
        for (b = Bb.length; a < b; a++) c = Bb[a], d = this.c.Lg(c.Yn), c.Cl(d), c.Yn = -1, d && (T = d.x, ka = d.y);
        B(Bb)
    };
    Ia.TF = function(a) {
        if (!this.ZF) {
            !a && A && A.resume && (A.resume(), la = !1);
            var b, c;
            b = 0;
            for (c = L.length; b < c; b++) L[b].OG(a);
            a && A && A.suspend && (A.suspend(), la = !0)
        }
    };
    Ia.ub = function() {
        var a = this.c.Hg,
            b, c, d;
        b = 0;
        for (c = L.length; b < c; b++) d = L[b], d.ub(a),
            0 !== N && d.lp();
        var e, h;
        for (e in oa)
            if (oa.hasOwnProperty(e))
                for (d = oa[e], b = 0, c = d.length; b < c; b++) h = d[b], h.ub && h.ub();
        1 === U && this.xd.Dn() && (this.xd.ub(a), T = this.xd.Sa.x, ka = this.xd.Sa.y, A.listener.setPosition(this.xd.Sa.x, this.xd.Sa.y, this.Qk))
    };
    var Cb = [];
    Ia.NG = function(a) {
        var b, c, d, e, h, f = 0;
        b = 0;
        for (c = a.length; b < c; ++b)
            if (d = a[b], e = d[0], d = 2 * d[1], (h = 4 < e.length && ".ogg" === e.substr(e.length - 4)) && K || !h && !K) Cb.push({
                filename: e,
                size: d,
                Sa: null
            }), f += d;
        return f
    };
    Ia.UG = function() {
        var a, b, c, d;
        a = 0;
        for (b = Cb.length; a < b; ++a) c =
            Cb[a], d = this.c.Dq + c.filename, c.Sa = this.vn(d, !1)
    };
    Ia.DE = function() {
        var a = 0,
            b, c, d;
        b = 0;
        for (c = Cb.length; b < c; ++b) d = Cb[b], d.Sa.lF() || d.Sa.XE() || this.c.kb || this.c.Hn ? a += d.size : d.Sa.Qv() && (a += Math.floor(d.size / 2));
        return a
    };
    Ia.vG = function() {
        var a, b, c, d;
        c = a = 0;
        for (b = P.length; a < b; ++a) d = P[a], P[c] = d, d.be ? d.uG() : ++c;
        P.length = c
    };
    Ia.vn = function(a, b) {
        var c, d, e, h = null;
        c = 0;
        for (d = P.length; c < d; c++)
            if (e = P[c], e.src === a) {
                h = e;
                break
            }
        h || (yb && b && this.vG(), h = new H(a, b), P.push(h));
        return h
    };
    Ia.xv = function(a, b, c, d, e) {
        var h, f, k;
        h = 0;
        for (f = L.length; h < f; h++)
            if (k = L[h], k.src === a && (k.RC() || c)) return k.tag = b, k;
        a = this.vn(a, c);
        if (!a.La) return "<preload>" !== b && (a.wo = b, a.Br = d, a.Vs = e), null;
        k = new y(a, b);
        L.push(k);
        return k
    };
    var Aa = [];
    G.prototype.jm = function(a) {
        return ob(O, a)
    };
    G.prototype.Uz = function(a) {
        R(a);
        var b;
        a = 0;
        for (b = Aa.length; a < b; a++)
            if (Aa[a].Qg()) return !0;
        return !1
    };
    F.g = new G;
    E.prototype.YA = function(a, b, c, d, e) {
        !S && (d = g(d), V = this.xv(this.c.Dq + b.toLowerCase() + (K ? ".ogg" : ".m4a"), e, 1 === a, 0 !== c, d)) && (V.us(!1), V.play(0 !== c, d, 0, this.Dw),
            this.Dw = 0)
    };
    E.prototype.Rj = function(a) {
        R(a);
        var b;
        a = 0;
        for (b = Aa.length; a < b; a++) Aa[a].stop()
    };
    E.prototype.IB = function(a) {
        var b;
        2 === a && (a = S ? 1 : 0);
        if (0 === a && !S) {
            a = 0;
            for (b = L.length; a < b; a++) L[a].So(!0);
            S = !0
        } else if (1 === a && S) {
            a = 0;
            for (b = L.length; a < b; a++) L[a].So(!1);
            S = !1
        }
    };
    E.prototype.CB = function(a) {
        Y = g(a);
        var b;
        a = 0;
        for (b = L.length; a < b; a++) L[a].jy()
    };
    F.j = new E;
    J.prototype.jt = function(a, b) {
        R(b, !0);
        Aa.length ? a.C(Aa[0].Kg()) : a.C(0)
    };
    J.prototype.ZA = function(a, b) {
        R(b, !0);
        Aa.length ? a.C(Aa[0].An(!0)) : a.C(0)
    };
    F.n = new J
})();

function Dc(g) {
    this.c = g
}
(function() {
    function g() {
        c && a && window.OfflineClientInfo && window.OfflineClientInfo.SetMessageCallback(function(a) {
            n.SF(a)
        })
    }

    function l() {}

    function p() {}

    function f() {}
    var b = Dc.prototype;
    b.N = function(a) {
        this.W = a;
        this.c = a.c
    };
    var d = b.N.prototype;
    d.I = function() {};
    var c = !1,
        a = !1;
    document.addEventListener("DOMContentLoaded", function() {
        if (window.C2_RegisterSW && navigator.zc) {
            var a = document.createElement("script");
            a.onload = function() {
                c = !0;
                g()
            };
            a.src = "offlineClient.js";
            document.head.appendChild(a)
        }
    });
    var n = null;
    d.Sw = function() {
        a = !0;
        g()
    };
    b.L = function(a) {
        this.type = a;
        this.c = a.c
    };
    d = b.L.prototype;
    d.I = function() {
        var a = this;
        window.addEventListener("resize", function() {
            a.c.trigger(Dc.prototype.g.Tt, a)
        });
        n = this;
        "undefined" !== typeof navigator.onLine && (window.addEventListener("online", function() {
            a.c.trigger(Dc.prototype.g.EA, a)
        }), window.addEventListener("offline", function() {
            a.c.trigger(Dc.prototype.g.CA, a)
        }));
        "undefined" !== typeof window.applicationCache && (window.applicationCache.addEventListener("updateready", function() {
            a.c.Wh =
                1;
            a.c.trigger(Dc.prototype.g.nm, a)
        }), window.applicationCache.addEventListener("progress", function(b) {
            a.c.Wh = b.loaded / b.total || 0
        }));
        this.c.Cc || (document.addEventListener("appMobi.device.update.available", function() {
            a.c.trigger(Dc.prototype.g.nm, a)
        }), document.addEventListener("backbutton", function() {
            a.c.trigger(Dc.prototype.g.hm, a)
        }), document.addEventListener("menubutton", function() {
            a.c.trigger(Dc.prototype.g.Nt, a)
        }), document.addEventListener("searchbutton", function() {
            a.c.trigger(Dc.prototype.g.IA,
                a)
        }), document.addEventListener("tizenhwkey", function(b) {
            var c;
            switch (b.keyName) {
                case "back":
                    c = a.c.trigger(Dc.prototype.g.hm, a);
                    !c && window.tizen && window.tizen.application.getCurrentApplication().exit();
                    break;
                case "menu":
                    (c = a.c.trigger(Dc.prototype.g.Nt, a)) || b.preventDefault()
            }
        }));
        this.c.Nn && "undefined" !== typeof Windows ? Windows.UI.Core.SystemNavigationManager.getForCurrentView().addEventListener("backrequested", function(b) {
                a.c.trigger(Dc.prototype.g.hm, a) && (b.handled = !0)
            }) : this.c.Mn && WinJS.Application &&
            (WinJS.Application.onbackclick = function() {
                return !!a.c.trigger(Dc.prototype.g.hm, a)
            });
        this.c.Eu(function(b) {
            b ? a.c.trigger(Dc.prototype.g.FA, a) : a.c.trigger(Dc.prototype.g.GA, a)
        });
        this.qF = "undefined" !== typeof window.is_scirra_arcade
    };
    d.SF = function(a) {
        a = a.data.type;
        "downloading-update" === a ? this.c.trigger(Dc.prototype.g.MA, this) : "update-ready" === a || "update-pending" === a ? this.c.trigger(Dc.prototype.g.nm, this) : "offline-ready" === a && this.c.trigger(Dc.prototype.g.DA, this)
    };
    l.prototype.Pz = function() {
        return navigator ?
            navigator.onLine : !1
    };
    l.prototype.EA = function() {
        return !0
    };
    l.prototype.CA = function() {
        return !0
    };
    l.prototype.nm = function() {
        return !0
    };
    l.prototype.GA = function() {
        return !0
    };
    l.prototype.FA = function() {
        return !0
    };
    l.prototype.Tt = function() {
        return !0
    };
    l.prototype.hm = function() {
        return !0
    };
    l.prototype.Nt = function() {
        return !0
    };
    l.prototype.IA = function() {
        return !0
    };
    l.prototype.Sz = function(a) {
        return (window.innerWidth <= window.innerHeight ? 0 : 1) === a
    };
    l.prototype.MA = function() {
        return !0
    };
    l.prototype.nm = function() {
        return !0
    };
    l.prototype.DA =
        function() {
            return !0
        };
    b.g = new l;
    p.prototype.Dz = function(a, b) {
        this.c.vd ? CocoonJS.App.openURL(a) : this.c.ae ? ejecta.openURL(a) : this.c.Mn ? Windows.System.Launcher.launchUriAsync(new Windows.Foundation.Uri(a)) : navigator.app && navigator.app.loadUrl ? navigator.app.loadUrl(a, {
            openExternal: !0
        }) : this.c.Uc ? window.open(a, "_system") : this.qF || this.c.kb || window.open(a, b)
    };
    p.prototype.$y = function(a, b) {
        "undefined" !== typeof console && (0 === a && console.log && console.log(b.toString()), 1 === a && console.warn && console.warn(b.toString()),
            2 === a && console.error && console.error(b.toString()))
    };
    p.prototype.oz = function(a) {
        try {
            eval && eval(a)
        } catch (b) {
            console && console.error && console.error("Error executing Javascript: ", b)
        }
    };
    b.j = new p;
    f.prototype.hz = function(a) {
        a.aa(this.c.kb ? "" : window.location.hostname)
    };
    f.prototype.dB = function(a) {
        a.aa(this.c.kb ? "" : document.referrer)
    };
    f.prototype.bC = function(a) {
        a.aa(this.c.kb ? "" : navigator.userAgent)
    };
    f.prototype.nz = function(a, b) {
        if (eval) {
            var c = 0;
            try {
                c = eval(b)
            } catch (d) {
                console && console.error && console.error("Error executing Javascript: ",
                    d)
            }
            "number" === typeof c ? a.Nd(c) : "string" === typeof c ? a.Nd(c) : "boolean" === typeof c ? a.Nd(c ? 1 : 0) : a.Nd(0)
        } else a.Nd(0)
    };
    b.n = new f
})();

function Ec(g) {
    this.c = g
}
(function() {
    function g() {}

    function l() {}

    function p() {}
    var f = Ec.prototype;
    f.N = function(b) {
        this.W = b;
        this.c = b.c
    };
    f.N.prototype.I = function() {};
    f.L = function(b) {
        this.type = b;
        this.c = b.c
    };
    var b = f.L.prototype;
    b.I = function() {
        this.ed = {};
        this.Rg = 0
    };
    b.$a = function() {
        return this.ed
    };
    b.lb = function(b) {
        this.ed = b;
        this.Rg = 0;
        for (var c in this.ed) this.ed.hasOwnProperty(c) && this.Rg++
    };
    g.prototype.Ez = function(b) {
        return this.ed.hasOwnProperty(b)
    };
    g.prototype.xp = function() {
        return 0 === this.Rg
    };
    f.g = new g;
    l.prototype.vy = function(b,
        c) {
        this.ed.hasOwnProperty(b) || this.Rg++;
        this.ed[b] = c
    };
    l.prototype.bt = function() {
        Za(this.ed);
        this.Rg = 0
    };
    l.prototype.vi = function(b) {
        var c;
        try {
            c = JSON.parse(b)
        } catch (a) {
            return
        }
        if (c.c2dictionary) {
            this.ed = c.data;
            this.Rg = 0;
            for (var f in this.ed) this.ed.hasOwnProperty(f) && this.Rg++
        }
    };
    f.j = new l;
    p.prototype.xz = function(b, c) {
        this.ed.hasOwnProperty(c) ? b.Nd(this.ed[c]) : b.G(0)
    };
    p.prototype.zt = function(b) {
        b.G(this.Rg)
    };
    p.prototype.tf = function(b) {
        b.aa(JSON.stringify({
            c2dictionary: !0,
            data: this.ed
        }))
    };
    f.n = new p
})();

function yc(g) {
    this.c = g
}
(function() {
    function g() {
        this.name = "";
        this.hi = 0;
        this.Cb = []
    }

    function l() {
        n++;
        n === a.length && a.push(new g);
        return a[n]
    }

    function p() {
        return 0 > n ? null : a[n]
    }

    function f() {}

    function b() {}

    function d() {}
    var c = yc.prototype;
    c.N = function(a) {
        this.W = a;
        this.c = a.c
    };
    c.N.prototype.I = function() {};
    c.L = function(a) {
        this.type = a;
        this.c = a.c
    };
    var a = [],
        n = -1;
    c.L.prototype.I = function() {
        var a = this;
        window.c2_callFunction = function(b, c) {
            var d, f, g, u = l();
            u.name = b.toLowerCase();
            u.hi = 0;
            if (c)
                for (u.Cb.length = c.length, d = 0, f = c.length; d < f; ++d) g =
                    c[d], u.Cb[d] = "number" === typeof g || "string" === typeof g ? g : "boolean" === typeof g ? g ? 1 : 0 : 0;
            else B(u.Cb);
            a.c.trigger(yc.prototype.g.km, a, u.name);
            n--;
            return u.hi
        }
    };
    f.prototype.km = function(a) {
        var b = p();
        return b ? ob(a, b.name) : !1
    };
    f.prototype.Wy = function(a, b, c) {
        var d = p();
        if (!d) return !1;
        a = ua(a);
        return 0 > a || a >= d.Cb.length ? !1 : lc(d.Cb[a], b, c)
    };
    c.g = new f;
    b.prototype.CallFunction = function(a, b) {
        var c = l();
        c.name = a.toLowerCase();
        c.hi = 0;
        Da(c.Cb, b);
        this.c.trigger(yc.prototype.g.km, this, c.name);
        n--
    };
    b.prototype.HB = function(a) {
        var b =
            p();
        b && (b.hi = a)
    };
    c.j = new b;
    d.prototype.kB = function(b) {
        var c;
        a.length ? (c = n + 1, c >= a.length && (c = a.length - 1), c = a[c]) : c = null;
        c ? b.Nd(c.hi) : b.G(0)
    };
    d.prototype.PA = function(a) {
        var b = p();
        b ? a.G(b.Cb.length) : a.G(0)
    };
    d.prototype.OA = function(a, b) {
        b = ua(b);
        var c = p();
        c ? 0 <= b && b < c.Cb.length ? a.Nd(c.Cb[b]) : a.G(0) : a.G(0)
    };
    d.prototype.Zs = function(a, b) {
        var c = l();
        c.name = b.toLowerCase();
        c.hi = 0;
        B(c.Cb);
        var d, f;
        d = 2;
        for (f = arguments.length; d < f; d++) c.Cb.push(arguments[d]);
        this.c.trigger(yc.prototype.g.km, this, c.name);
        n--;
        a.Nd(c.hi)
    };
    c.n = new d
})();

function Fc(g) {
    this.c = g
}
(function() {
    function g() {}
    var l = Fc.prototype;
    l.N = function(f) {
        this.W = f;
        this.c = f.c
    };
    l.N.prototype.I = function() {};
    l.L = function(f) {
        this.type = f;
        this.c = f.c
    };
    var p = l.L.prototype;
    p.I = function() {
    
    };
    p.yd = function() {};
    p.$a = function() {
        return {}
    };
    p.lb = function() {};
    p.ud = function() {};
    p.yc = function() {};
    l.g = new function() {};
    g.prototype.YB = function(f, b) {

    };
    l.j = new g;
    l.n = new function() {}
})();
var Gc = !1;
try {
    ! function() {
        var g, l, p;
        ! function() {
            var f = {},
                b = {};
            g = function(b, c, a) {
                f[b] = {
                    cD: c,
                    QC: a
                }
            };
            p = l = function(d) {
                function c(a) {
                    if ("." !== a.charAt(0)) return a;
                    a = a.split("/");
                    for (var b = d.split("/").slice(0, -1), c = 0, e = a.length; e > c; c++) {
                        var f = a[c];
                        ".." === f ? b.pop() : "." !== f && b.push(f)
                    }
                    return b.join("/")
                }
                if (p.wI = f, b[d]) return b[d];
                if (b[d] = {}, !f[d]) throw Error("Could not find module " + d);
                for (var a, g = f[d], h = g.cD, g = g.QC, e = [], t = 0, x = h.length; x > t; t++) "exports" === h[t] ? e.push(a = {}) : e.push(l(c(h[t])));
                h = g.apply(this, e);
                return b[d] =
                    a || h
            }
        }();
        g("promise/all", ["./utils", "exports"], function(f, b) {
            var d = f.isArray,
                c = f.isFunction;
            b.all = function(a) {
                if (!d(a)) throw new TypeError("You must pass an array to all.");
                return new this(function(b, d) {
                    function e(a) {
                        return function(c) {
                            g[a] = c;
                            0 === --m && b(g)
                        }
                    }
                    var f, g = [],
                        m = a.length;
                    0 === m && b([]);
                    for (var q = 0; q < a.length; q++)(f = a[q]) && c(f.then) ? f.then(e(q), d) : (g[q] = f, 0 === --m && b(g))
                })
            }
        });
        g("promise/asap", ["exports"], function(f) {
            function b() {
                return function() {
                    process.YI(a)
                }
            }

            function d() {
                var b = 0,
                    c = new e(a),
                    d = document.createTextNode("");
                return c.observe(d, {
                        characterData: !0
                    }),
                    function() {
                        d.data = b = ++b % 2
                    }
            }

            function c() {
                return function() {
                    l.setTimeout(a, 1)
                }
            }

            function a() {
                for (var a = 0; a < p.length; a++) {
                    var b = p[a];
                    (0, b[0])(b[1])
                }
                p = []
            }
            var g, h = "undefined" != typeof window ? window : {},
                e = h.MutationObserver || h.WebKitMutationObserver,
                l = "undefined" != typeof global ? global : void 0 === this ? window : this,
                p = [];
            g = "undefined" != typeof process && "[object process]" === {}.toString.call(process) ? b() : e ? d() : c();
            f.IC = function(a, b) {
                1 === p.push([a,
                    b
                ]) && g()
            }
        });
        g("promise/config", ["exports"], function(f) {
            var b = {
                NI: !1
            };
            f.Vu = b;
            f.VC = function(d, c) {
                return 2 !== arguments.length ? b[d] : void(b[d] = c)
            }
        });
        g("promise/polyfill", ["./promise", "./utils", "exports"], function(f, b, d) {
            var c = f.Promise,
                a = b.isFunction;
            d.$F = function() {
                var b;
                b = "undefined" != typeof global ? global : "undefined" != typeof window && window.document ? window : self;
                "Promise" in b && "resolve" in b.Promise && "reject" in b.Promise && "all" in b.Promise && "race" in b.Promise && function() {
                    var c;
                    return new b.Promise(function(a) {
                        c =
                            a
                    }), a(c)
                }() || (b.Promise = c)
            }
        });
        g("promise/promise", "./config ./utils ./all ./race ./resolve ./reject ./asap exports".split(" "), function(f, b, d, c, a, g, h, e) {
            function l(a) {
                if (!M(a)) throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");
                if (!(this instanceof l)) throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
                this.zm = [];
                p(a, this)
            }

            function p(a, b) {
                function c(a) {
                    v(b,
                        a)
                }

                function d(a) {
                    r(b, a)
                }
                try {
                    a(c, d)
                } catch (e) {
                    d(e)
                }
            }

            function m(a, b, c, d) {
                var e, f, h, k, m = M(c);
                if (m) try {
                    e = c(d), h = !0
                } catch (g) {
                    k = !0, f = g
                } else e = d, h = !0;
                w(b, e) || (m && h ? v(b, e) : k ? r(b, f) : a === J ? v(b, e) : a === F && r(b, e))
            }

            function q(a, b, c, d) {
                a = a.zm;
                var e = a.length;
                a[e] = b;
                a[e + J] = c;
                a[e + F] = d
            }

            function u(a, b) {
                for (var c, d, e = a.zm, f = a.vm, h = 0; h < e.length; h += 3) c = e[h], d = e[h + b], m(b, c, d, f);
                a.zm = null
            }

            function w(a, b) {
                var c, d = null;
                try {
                    if (a === b) throw new TypeError("A promises callback cannot return that same promise.");
                    if (R(b) && (d = b.then,
                            M(d))) return d.call(b, function(d) {
                        return c ? !0 : (c = !0, void(b !== d ? v(a, d) : k(a, d)))
                    }, function(b) {
                        return c ? !0 : (c = !0, void r(a, b))
                    }), !0
                } catch (e) {
                    return c ? !0 : (r(a, e), !0)
                }
                return !1
            }

            function v(a, b) {
                a === b ? k(a, b) : w(a, b) || k(a, b)
            }

            function k(a, b) {
                a.wf === G && (a.wf = E, a.vm = b, I.async(H, a))
            }

            function r(a, b) {
                a.wf === G && (a.wf = E, a.vm = b, I.async(y, a))
            }

            function H(a) {
                u(a, a.wf = J)
            }

            function y(a) {
                u(a, a.wf = F)
            }
            var I = f.Vu,
                R = (f.VC, b.MF),
                M = b.isFunction;
            f = (b.now, d.all);
            c = c.race;
            a = a.resolve;
            g = g.reject;
            I.async = h.IC;
            var G = void 0,
                E = 0,
                J = 1,
                F = 2;
            l.prototype = {
                constructor: l,
                wf: void 0,
                vm: void 0,
                zm: void 0,
                then: function(a, b) {
                    var c = this,
                        d = new this.constructor(function() {});
                    if (this.wf) {
                        var e = arguments;
                        I.async(function() {
                            m(c.wf, d, e[c.wf - 1], c.vm)
                        })
                    } else q(this, d, a, b);
                    return d
                },
                "catch": function(a) {
                    return this.then(null, a)
                }
            };
            l.all = f;
            l.race = c;
            l.resolve = a;
            l.reject = g;
            e.Promise = l
        });
        g("promise/race", ["./utils", "exports"], function(f, b) {
            var d = f.isArray;
            b.race = function(b) {
                if (!d(b)) throw new TypeError("You must pass an array to race.");
                return new this(function(a,
                    d) {
                    for (var f, e = 0; e < b.length; e++)(f = b[e]) && "function" == typeof f.then ? f.then(a, d) : a(f)
                })
            }
        });
        g("promise/reject", ["exports"], function(f) {
            f.reject = function(b) {
                return new this(function(d, c) {
                    c(b)
                })
            }
        });
        g("promise/resolve", ["exports"], function(f) {
            f.resolve = function(b) {
                return b && "object" == typeof b && b.constructor === this ? b : new this(function(d) {
                    d(b)
                })
            }
        });
        g("promise/utils", ["exports"], function(f) {
            function b(b) {
                return "function" == typeof b
            }
            var d = Date.now || function() {
                return (new Date).getTime()
            };
            f.MF = function(c) {
                return b(c) ||
                    "object" == typeof c && null !== c
            };
            f.isFunction = b;
            f.isArray = function(b) {
                return "[object Array]" === Object.prototype.toString.call(b)
            };
            f.now = d
        });
        l("promise/polyfill").$F()
    }();
    var Hc = function() {
        return function(g) {
            function l(f) {
                if (p[f]) return p[f].Ue;
                var b = p[f] = {
                    Ue: {},
                    id: f,
                    loaded: !1
                };
                return g[f].call(b.Ue, b, b.Ue, l), b.loaded = !0, b.Ue
            }
            var p = {};
            return l.zc = g, l.dk = p, l.Dh = "", l(0)
        }([function(g, l, p) {
            l.um = !0;
            var f = function(b) {
                function d(a, b) {
                    a[b] = function() {
                        var c = arguments;
                        return a.ready().then(function() {
                            return a[b].apply(a,
                                c)
                        })
                    }
                }

                function c() {
                    for (var a = 1; a < arguments.length; a++) {
                        var b = arguments[a];
                        if (b)
                            for (var c in b) b.hasOwnProperty(c) && (m(b[c]) ? arguments[0][c] = b[c].slice() : arguments[0][c] = b[c])
                    }
                    return arguments[0]
                }

                function a(a) {
                    for (var b in h)
                        if (h.hasOwnProperty(b) && h[b] === a) return !0;
                    return !1
                }
                var f = {},
                    h = {
                        Jj: "asyncStorage",
                        Kj: "localStorageWrapper",
                        Sj: "webSQLStorage"
                    },
                    e = "clear getItem iterate key keys length removeItem setItem".split(" "),
                    g = {
                        description: "",
                        Ii: [h.Jj, h.Sj, h.Kj].slice(),
                        name: "localforage",
                        size: 4980736,
                        Ua: "keyvaluepairs",
                        version: 1
                    },
                    l = function(a) {
                        var b = {},
                            c;
                        try {
                            var d = d || a.indexedDB || a.webkitIndexedDB || a.mozIndexedDB || a.or || a.msIndexedDB;
                            c = "undefined" != typeof a.openDatabase && a.navigator && a.navigator.userAgent && /Safari/.test(a.navigator.userAgent) && !/Chrome/.test(a.navigator.userAgent) ? !1 : d && "function" == typeof d.open && "undefined" != typeof a.IDBKeyRange
                        } catch (e) {
                            c = !1
                        }
                        b[h.Jj] = !!c;
                        var f;
                        try {
                            f = a.openDatabase
                        } catch (m) {
                            f = !1
                        }
                        b[h.Sj] = !!f;
                        var g;
                        try {
                            g = a.localStorage && "setItem" in a.localStorage && a.localStorage.setItem
                        } catch (n) {
                            g = !1
                        }
                        return b[h.Kj] = !!g, b
                    }(b),
                    m = Array.isArray || function(a) {
                        return "[object Array]" === Object.prototype.toString.call(a)
                    };
                return new(function() {
                    function b(a) {
                        if (!(this instanceof b)) throw new TypeError("Cannot call a class as a function");
                        this.Jj = h.Jj;
                        this.Kj = h.Kj;
                        this.Sj = h.Sj;
                        this.Tp = c({}, g);
                        this.nh = c({}, this.Tp, a);
                        this.tu = this.Ne = null;
                        this.qg = !1;
                        this.Pa = null;
                        this.xu();
                        this.Cx(this.nh.Ii)
                    }
                    return b.prototype.Vu = function(a) {
                        if ("object" == typeof a) {
                            if (this.qg) return Error("Can't call config() after localforage has been used.");
                            for (var b in a) "storeName" === b && (a[b] = a[b].replace(/\W/g, "_")), this.nh[b] = a[b];
                            return "driver" in a && a.Ii && this.Cx(this.nh.Ii), !0
                        }
                        return "string" == typeof a ? this.nh[a] : this.nh
                    }, b.prototype.Ii = function() {
                        return this.Wj || null
                    }, b.prototype.zv = function(b, c, d) {
                        var e = this,
                            h = function() {
                                if (a(b)) switch (b) {
                                    case e.Jj:
                                        return new Promise(function(a) {
                                            a(p(1))
                                        });
                                    case e.Kj:
                                        return new Promise(function(a) {
                                            a(p(2))
                                        });
                                    case e.Sj:
                                        return new Promise(function(a) {
                                            a(p(4))
                                        })
                                } else if (f[b]) return Promise.resolve(f[b]);
                                return Promise.reject(Error("Driver not found."))
                            }();
                        return h.then(c, d), h
                    }, b.prototype.ready = function(a) {
                        var b = this,
                            c = b.Ne.then(function() {
                                return null === b.qg && (b.qg = b.tu()), b.qg
                            });
                        return c.then(a, a), c
                    }, b.prototype.Cx = function(a, b, c) {
                        function d() {
                            f.nh.Ii = f.Ii()
                        }

                        function e(a) {
                            return function() {
                                function b() {
                                    for (; c < a.length;) {
                                        var e = a[c];
                                        return c++, f.Pa = null, f.qg = null, f.zv(e).then(function(a) {
                                            return f.lC(a), d(), f.qg = f.Vp(f.nh), f.qg
                                        })["catch"](b)
                                    }
                                    d();
                                    return f.Ne = Promise.reject(Error("No available storage method found.")), f.Ne
                                }
                                var c = 0;
                                return b()
                            }
                        }
                        var f = this;
                        m(a) || (a = [a]);
                        var h = this.qC(a);
                        return this.Ne = (null !== this.Ne ? this.Ne["catch"](function() {
                            return Promise.resolve()
                        }) : Promise.resolve()).then(function() {
                            var a = h[0];
                            return f.Pa = null, f.qg = null, f.zv(a).then(function(a) {
                                f.Wj = a.Wj;
                                d();
                                f.xu();
                                f.tu = e(h)
                            })
                        })["catch"](function() {
                            d();
                            return f.Ne = Promise.reject(Error("No available storage method found.")), f.Ne
                        }), this.Ne.then(b, c), this.Ne
                    }, b.prototype.supports = function(a) {
                        return !!l[a]
                    }, b.prototype.lC = function(a) {
                        c(this, a)
                    }, b.prototype.qC = function(a) {
                        for (var b = [], c = 0, d = a.length; d > c; c++) {
                            var e = a[c];
                            this.supports(e) && b.push(e)
                        }
                        return b
                    }, b.prototype.xu = function() {
                        for (var a = 0; a < e.length; a++) d(this, e[a])
                    }, b.prototype.Sm = function(a) {
                        return new b(a)
                    }, b
                }())
            }("undefined" != typeof window ? window : self);
            l["default"] = f;
            g.Ue = l["default"]
        }, function(g, l) {
            l.um = !0;
            l["default"] = function(g) {
                function f(a, b) {
                    a = a || [];
                    b = b || {};
                    try {
                        return new Blob(a, b)
                    } catch (c) {
                        if ("TypeError" !== c.name) throw c;
                        for (var d = new(g.BlobBuilder || g.Dh || g.Nk || g.WebKitBlobBuilder), e = 0; e < a.length; e += 1) d.append(a[e]);
                        return d.getBlob(b.type)
                    }
                }

                function b(a) {
                    return new Promise(function(b, c) {
                        var d = new XMLHttpRequest;
                        d.open("GET", a);
                        d.withCredentials = !0;
                        d.responseType = "arraybuffer";
                        d.onreadystatechange = function() {
                            return 4 === d.readyState ? 200 === d.status ? b({
                                response: d.response,
                                type: d.getResponseHeader("Content-Type")
                            }) : void c({
                                status: d.status,
                                response: d.response
                            }) : void 0
                        };
                        d.send()
                    })
                }

                function d(a) {
                    return (new Promise(function(c, d) {
                        var e = f([""], {
                                type: "image/png"
                            }),
                            h = a.transaction([G], "readwrite");
                        h.objectStore(G).put(e,
                            "key");
                        h.oncomplete = function() {
                            var e = a.transaction([G], "readwrite").objectStore(G).get("key");
                            e.onerror = d;
                            e.onsuccess = function(a) {
                                var d = URL.createObjectURL(a.target.result);
                                b(d).then(function(a) {
                                    c(!(!a || "image/png" !== a.type))
                                }, function() {
                                    c(!1)
                                }).then(function() {
                                    URL.revokeObjectURL(d)
                                })
                            }
                        };
                        h.onerror = h.onabort = d
                    }))["catch"](function() {
                        return !1
                    })
                }

                function c(a) {
                    return "boolean" == typeof R ? Promise.resolve(R) : d(a).then(function(a) {
                        return R = a
                    })
                }

                function a(a) {
                    return new Promise(function(b, c) {
                        var d = new FileReader;
                        d.onerror = c;
                        d.onloadend = function(c) {
                            b({
                                ru: !0,
                                data: btoa(c.target.result || ""),
                                type: a.type
                            })
                        };
                        d.readAsBinaryString(a)
                    })
                }

                function n(a) {
                    for (var b = atob(a.data), c = b.length, d = new ArrayBuffer(c), e = new Uint8Array(d), h = 0; c > h; h++) e[h] = b.charCodeAt(h);
                    return f([d], {
                        type: a.type
                    })
                }

                function h(a) {
                    var b = this,
                        c = b.Up().then(function() {
                            var a = M[b.Pa.name];
                            return a && a.Gi ? a.Gi : void 0
                        });
                    return c.then(a, a), c
                }

                function e(a) {
                    a = M[a.name];
                    var b = {};
                    b.promise = new Promise(function(a) {
                        b.resolve = a
                    });
                    a.$u.push(b);
                    a.Gi ? a.Gi = a.Gi.then(function() {
                            return b.promise
                        }) :
                        a.Gi = b.promise
                }

                function l(a) {
                    function b() {
                        return Promise.resolve()
                    }
                    var c = this,
                        d = {
                            db: null
                        };
                    if (a)
                        for (var e in a) d[e] = a[e];
                    M || (M = {});
                    var f = M[d.name];
                    f || (f = {
                        qn: [],
                        db: null,
                        Gi: null,
                        $u: []
                    }, M[d.name] = f);
                    f.qn.push(c);
                    c.Up || (c.Up = c.ready, c.ready = h);
                    a = [];
                    for (e = 0; e < f.qn.length; e++) {
                        var k = f.qn[e];
                        k !== c && a.push(k.Up()["catch"](b))
                    }
                    var m = f.qn.slice(0);
                    return Promise.all(a).then(function() {
                        return d.db = f.db, x(d, !1)
                    }).then(function(a) {
                        d.db = a;
                        var b;
                        b = c.Tp.version;
                        if (d.db) {
                            var e = !d.db.objectStoreNames.contains(d.Ua),
                                f = d.version > d.db.version;
                            (d.version < d.db.version && (d.version !== b && g.console.warn('The database "' + d.name + "\" can't be downgraded from version " + d.db.version + " to version " + d.version + "."), d.version = d.db.version), f || e) ? (e && (b = d.db.version + 1, b > d.version && (d.version = b)), b = !0) : b = !1
                        } else b = !0;
                        return b ? x(d, !0) : a
                    }).then(function(a) {
                        d.db = f.db = a;
                        c.Pa = d;
                        for (a = 0; a < m.length; a++) {
                            var b = m[a];
                            b !== c && (b.Pa.db = d.db, b.Pa.version = d.version)
                        }
                    })
                }

                function x(a, b) {
                    return new Promise(function(c, d) {
                        if (a.db) {
                            if (!b) return c(a.db);
                            e(a);
                            a.db.close()
                        }
                        var f = [a.name];
                        b && f.push(a.version);
                        var h = I.open.apply(I, f);
                        b && (h.onupgradeneeded = function(b) {
                            var c = h.result;
                            try {
                                c.createObjectStore(a.Ua), 1 >= b.oldVersion && c.createObjectStore(G)
                            } catch (d) {
                                if ("ConstraintError" !== d.name) throw d;
                                g.console.warn('The database "' + a.name + '" has been upgraded from version ' + b.oldVersion + " to version " + b.newVersion + ', but the storage "' + a.Ua + '" already exists.')
                            }
                        });
                        h.onerror = function() {
                            d(h.error)
                        };
                        h.onsuccess = function() {
                            c(h.result);
                            var b = M[a.name].$u.pop();
                            b && b.resolve()
                        }
                    })
                }

                function m(a, b) {
                    var c = this;
                    "string" != typeof a && (g.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                    var d = new Promise(function(b, d) {
                        c.ready().then(function() {
                            var e = c.Pa,
                                f = e.db.transaction(e.Ua, "readonly").objectStore(e.Ua).get(a);
                            f.onsuccess = function() {
                                var a = f.result;
                                void 0 === a && (a = null);
                                a && a.ru && (a = n(a));
                                b(a)
                            };
                            f.onerror = function() {
                                d(f.error)
                            }
                        })["catch"](d)
                    });
                    return y(d, b), d
                }

                function q(a, b) {
                    var c = this,
                        d = new Promise(function(b, d) {
                            c.ready().then(function() {
                                var e =
                                    c.Pa,
                                    f = e.db.transaction(e.Ua, "readonly").objectStore(e.Ua).openCursor(),
                                    h = 1;
                                f.onsuccess = function() {
                                    var c = f.result;
                                    if (c) {
                                        var d = c.value;
                                        d && d.ru && (d = n(d));
                                        d = a(d, c.key, h++);
                                        void 0 !== d ? b(d) : c["continue"]()
                                    } else b()
                                };
                                f.onerror = function() {
                                    d(f.error)
                                }
                            })["catch"](d)
                        });
                    return y(d, b), d
                }

                function u(b, d, e) {
                    var f = this;
                    "string" != typeof b && (g.console.warn(b + " used as a key, but it is not a string."), b = String(b));
                    var h = new Promise(function(e, h) {
                        var k;
                        f.ready().then(function() {
                            return k = f.Pa, d instanceof Blob ? c(k.db).then(function(b) {
                                return b ?
                                    d : a(d)
                            }) : d
                        }).then(function(a) {
                            var c = k.db.transaction(k.Ua, "readwrite"),
                                d = c.objectStore(k.Ua);
                            null === a && (a = void 0);
                            c.oncomplete = function() {
                                void 0 === a && (a = null);
                                e(a)
                            };
                            c.onabort = c.onerror = function() {
                                h(f.error ? f.error : f.transaction.error)
                            };
                            var f = d.put(a, b)
                        })["catch"](h)
                    });
                    return y(h, e), h
                }

                function w(a, b) {
                    var c = this;
                    "string" != typeof a && (g.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                    var d = new Promise(function(b, d) {
                        c.ready().then(function() {
                            var e = c.Pa,
                                f = e.db.transaction(e.Ua, "readwrite"),
                                h = f.objectStore(e.Ua)["delete"](a);
                            f.oncomplete = function() {
                                b()
                            };
                            f.onerror = function() {
                                d(h.error)
                            };
                            f.onabort = function() {
                                d(h.error ? h.error : h.transaction.error)
                            }
                        })["catch"](d)
                    });
                    return y(d, b), d
                }

                function v(a) {
                    var b = this,
                        c = new Promise(function(a, c) {
                            b.ready().then(function() {
                                var d = b.Pa,
                                    e = d.db.transaction(d.Ua, "readwrite"),
                                    f = e.objectStore(d.Ua).clear();
                                e.oncomplete = function() {
                                    a()
                                };
                                e.onabort = e.onerror = function() {
                                    c(f.error ? f.error : f.transaction.error)
                                }
                            })["catch"](c)
                        });
                    return y(c, a), c
                }

                function k(a) {
                    var b = this,
                        c = new Promise(function(a, c) {
                            b.ready().then(function() {
                                var d = b.Pa,
                                    e = d.db.transaction(d.Ua, "readonly").objectStore(d.Ua).count();
                                e.onsuccess = function() {
                                    a(e.result)
                                };
                                e.onerror = function() {
                                    c(e.error)
                                }
                            })["catch"](c)
                        });
                    return y(c, a), c
                }

                function r(a, b) {
                    var c = this,
                        d = new Promise(function(b, d) {
                            return 0 > a ? void b(null) : void c.ready().then(function() {
                                var e = c.Pa,
                                    f = !1,
                                    h = e.db.transaction(e.Ua, "readonly").objectStore(e.Ua).openCursor();
                                h.onsuccess = function() {
                                    var c = h.result;
                                    return c ? void(0 === a ? b(c.key) : f ? b(c.key) : (f = !0, c.advance(a))) : void b(null)
                                };
                                h.onerror = function() {
                                    d(h.error)
                                }
                            })["catch"](d)
                        });
                    return y(d, b), d
                }

                function H(a) {
                    var b = this,
                        c = new Promise(function(a, c) {
                            b.ready().then(function() {
                                var d = b.Pa,
                                    e = d.db.transaction(d.Ua, "readonly").objectStore(d.Ua).openCursor(),
                                    f = [];
                                e.onsuccess = function() {
                                    var b = e.result;
                                    return b ? (f.push(b.key), void b["continue"]()) : void a(f)
                                };
                                e.onerror = function() {
                                    c(e.error)
                                }
                            })["catch"](c)
                        });
                    return y(c, a), c
                }

                function y(a, b) {
                    b && a.then(function(a) {
                        b(null, a)
                    }, function(a) {
                        b(a)
                    })
                }
                var I = I || g.indexedDB ||
                    g.webkitIndexedDB || g.mozIndexedDB || g.or || g.msIndexedDB;
                if (I) {
                    var R, M, G = "local-forage-detect-blob-support";
                    return {
                        Wj: "asyncStorage",
                        Vp: l,
                        Vv: q,
                        getItem: m,
                        setItem: u,
                        removeItem: w,
                        clear: v,
                        length: k,
                        key: r,
                        keys: H
                    }
                }
            }("undefined" != typeof window ? window : self);
            g.Ue = l["default"]
        }, function(g, l, p) {
            l.um = !0;
            l["default"] = function(f) {
                function b(a, b) {
                    b && a.then(function(a) {
                        b(null, a)
                    }, function(a) {
                        b(a)
                    })
                }
                var d = null;
                try {
                    if (!(f.localStorage && "setItem" in f.localStorage)) return;
                    d = f.localStorage
                } catch (c) {
                    return
                }
                return {
                    Wj: "localStorageWrapper",
                    Vp: function(a) {
                        var b = {};
                        if (a)
                            for (var c in a) b[c] = a[c];
                        return b.bf = b.name + "/", b.Ua !== this.Tp.Ua && (b.bf += b.Ua + "/"), this.Pa = b, (new Promise(function(a) {
                            a(p(3))
                        })).then(function(a) {
                            return b.ii = a, Promise.resolve()
                        })
                    },
                    Vv: function(a, c) {
                        var f = this,
                            e = f.ready().then(function() {
                                for (var b = f.Pa, c = b.bf, e = c.length, g = d.length, n = 1, l = 0; g > l; l++) {
                                    var p = d.key(l);
                                    if (0 === p.indexOf(c)) {
                                        var k = d.getItem(p);
                                        if (k && (k = b.ii.an(k)), k = a(k, p.substring(e), n++), void 0 !== k) return k
                                    }
                                }
                            });
                        return b(e, c), e
                    },
                    getItem: function(a, c) {
                        var h = this;
                        "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                        var e = h.ready().then(function() {
                            var b = h.Pa,
                                c = d.getItem(b.bf + a);
                            return c && (c = b.ii.an(c)), c
                        });
                        return b(e, c), e
                    },
                    setItem: function(a, c, h) {
                        var e = this;
                        "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                        var g = e.ready().then(function() {
                            void 0 === c && (c = null);
                            var b = c;
                            return new Promise(function(f, h) {
                                var g = e.Pa;
                                g.ii.serialize(c, function(c, e) {
                                    if (e) h(e);
                                    else try {
                                        d.setItem(g.bf +
                                            a, c), f(b)
                                    } catch (k) {
                                        "QuotaExceededError" !== k.name && "NS_ERROR_DOM_QUOTA_REACHED" !== k.name || h(k), h(k)
                                    }
                                })
                            })
                        });
                        return b(g, h), g
                    },
                    removeItem: function(a, c) {
                        var h = this;
                        "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                        var e = h.ready().then(function() {
                            d.removeItem(h.Pa.bf + a)
                        });
                        return b(e, c), e
                    },
                    clear: function(a) {
                        var c = this,
                            f = c.ready().then(function() {
                                for (var a = c.Pa.bf, b = d.length - 1; 0 <= b; b--) {
                                    var f = d.key(b);
                                    0 === f.indexOf(a) && d.removeItem(f)
                                }
                            });
                        return b(f, a), f
                    },
                    length: function(a) {
                        var c =
                            this.keys().then(function(a) {
                                return a.length
                            });
                        return b(c, a), c
                    },
                    key: function(a, c) {
                        var f = this,
                            e = f.ready().then(function() {
                                var b, c = f.Pa;
                                try {
                                    b = d.key(a)
                                } catch (e) {
                                    b = null
                                }
                                return b && (b = b.substring(c.bf.length)), b
                            });
                        return b(e, c), e
                    },
                    keys: function(a) {
                        var c = this,
                            f = c.ready().then(function() {
                                for (var a = c.Pa, b = d.length, f = [], h = 0; b > h; h++) 0 === d.key(h).indexOf(a.bf) && f.push(d.key(h).substring(a.bf.length));
                                return f
                            });
                        return b(f, a), f
                    }
                }
            }("undefined" != typeof window ? window : self);
            g.Ue = l["default"]
        }, function(g, l) {
            l.um = !0;
            l["default"] = function(g) {
                function f(a) {
                    var b, c, e, f, g;
                    b = .75 * a.length;
                    var m = a.length,
                        q = 0;
                    "=" === a[a.length - 1] && (b--, "=" === a[a.length - 2] && b--);
                    var l = new ArrayBuffer(b),
                        w = new Uint8Array(l);
                    for (b = 0; m > b; b += 4) c = d.indexOf(a[b]), e = d.indexOf(a[b + 1]), f = d.indexOf(a[b + 2]), g = d.indexOf(a[b + 3]), w[q++] = c << 2 | e >> 4, w[q++] = (15 & e) << 4 | f >> 2, w[q++] = (3 & f) << 6 | 63 & g;
                    return l
                }

                function b(a) {
                    var b = new Uint8Array(a),
                        c = "";
                    for (a = 0; a < b.length; a += 3) c += d[b[a] >> 2], c += d[(3 & b[a]) << 4 | b[a + 1] >> 4], c += d[(15 & b[a + 1]) << 2 | b[a + 2] >> 6], c += d[63 & b[a + 2]];
                    return 2 === b.length % 3 ? c = c.substring(0, c.length - 1) + "=" : 1 === b.length % 3 && (c = c.substring(0, c.length - 2) + "=="), c
                }
                var d = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
                    c = /^~~local_forage_type~([^~]+)~/;
                return {
                    serialize: function(a, c) {
                        var d = "";
                        if (a && (d = a.toString()), a && ("[object ArrayBuffer]" === a.toString() || a.buffer && "[object ArrayBuffer]" === a.buffer.toString())) {
                            var e, f = "__lfsc__:";
                            a instanceof ArrayBuffer ? (e = a, f += "arbf") : (e = a.buffer, "[object Int8Array]" === d ? f += "si08" : "[object Uint8Array]" ===
                                d ? f += "ui08" : "[object Uint8ClampedArray]" === d ? f += "uic8" : "[object Int16Array]" === d ? f += "si16" : "[object Uint16Array]" === d ? f += "ur16" : "[object Int32Array]" === d ? f += "si32" : "[object Uint32Array]" === d ? f += "ui32" : "[object Float32Array]" === d ? f += "fl32" : "[object Float64Array]" === d ? f += "fl64" : c(Error("Failed to get type for BinaryArray")));
                            c(f + b(e))
                        } else if ("[object Blob]" === d) d = new FileReader, d.onload = function() {
                            var d = "~~local_forage_type~" + a.type + "~" + b(this.result);
                            c("__lfsc__:blob" + d)
                        }, d.readAsArrayBuffer(a);
                        else try {
                            c(JSON.stringify(a))
                        } catch (g) {
                            console.error("Couldn't convert value into a JSON string: ",
                                a), c(null, g)
                        }
                    },
                    an: function(a) {
                        if ("__lfsc__:" !== a.substring(0, 9)) return JSON.parse(a);
                        var b, d = a.substring(13);
                        a = a.substring(9, 13);
                        if ("blob" === a && c.test(d)) {
                            var e = d.match(c);
                            b = e[1];
                            d = d.substring(e[0].length)
                        }
                        d = f(d);
                        switch (a) {
                            case "arbf":
                                return d;
                            case "blob":
                                var l;
                                d = [d];
                                b = {
                                    type: b
                                };
                                d = d || [];
                                b = b || {};
                                try {
                                    l = new Blob(d, b)
                                } catch (x) {
                                    if ("TypeError" !== x.name) throw x;
                                    l = new(g.BlobBuilder || g.Dh || g.Nk || g.WebKitBlobBuilder);
                                    for (a = 0; a < d.length; a += 1) l.append(d[a]);
                                    l = l.getBlob(b.type)
                                }
                                return l;
                            case "si08":
                                return new Int8Array(d);
                            case "ui08":
                                return new Uint8Array(d);
                            case "uic8":
                                return new Uint8ClampedArray(d);
                            case "si16":
                                return new Int16Array(d);
                            case "ur16":
                                return new Uint16Array(d);
                            case "si32":
                                return new Int32Array(d);
                            case "ui32":
                                return new Uint32Array(d);
                            case "fl32":
                                return new Float32Array(d);
                            case "fl64":
                                return new Float64Array(d);
                            default:
                                throw Error("Unkown type: " + a);
                        }
                    },
                    hJ: f,
                    BI: b
                }
            }("undefined" != typeof window ? window : self);
            g.Ue = l["default"]
        }, function(g, l, p) {
            l.um = !0;
            l["default"] = function(f) {
                function b(a) {
                    var b = this,
                        c = {
                            db: null
                        };
                    if (a)
                        for (var d in a) c[d] = "string" != typeof a[d] ? a[d].toString() : a[d];
                    var e = new Promise(function(a, d) {
                        try {
                            c.db = q(c.name, String(c.version), c.description, c.size)
                        } catch (e) {
                            return d(e)
                        }
                        c.db.transaction(function(e) {
                            e.executeSql("CREATE TABLE IF NOT EXISTS " + c.Ua + " (id INTEGER PRIMARY KEY, key unique, value)", [], function() {
                                b.Pa = c;
                                a()
                            }, function(a, b) {
                                d(b)
                            })
                        })
                    });
                    return (new Promise(function(a) {
                        a(p(3))
                    })).then(function(a) {
                        return c.ii = a, e
                    })
                }

                function d(a, b) {
                    var c = this;
                    "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."),
                        a = String(a));
                    var d = new Promise(function(b, d) {
                        c.ready().then(function() {
                            var e = c.Pa;
                            e.db.transaction(function(c) {
                                c.executeSql("SELECT * FROM " + e.Ua + " WHERE key = ? LIMIT 1", [a], function(a, c) {
                                    var d = c.rows.length ? c.rows.item(0).value : null;
                                    d && (d = e.ii.an(d));
                                    b(d)
                                }, function(a, b) {
                                    d(b)
                                })
                            })
                        })["catch"](d)
                    });
                    return m(d, b), d
                }

                function c(a, b) {
                    var c = this,
                        d = new Promise(function(b, d) {
                            c.ready().then(function() {
                                var e = c.Pa;
                                e.db.transaction(function(c) {
                                    c.executeSql("SELECT * FROM " + e.Ua, [], function(c, d) {
                                        for (var f = d.rows,
                                                h = f.length, k = 0; h > k; k++) {
                                            var g = f.item(k),
                                                m = g.value;
                                            if (m && (m = e.ii.an(m)), m = a(m, g.key, k + 1), void 0 !== m) return void b(m)
                                        }
                                        b()
                                    }, function(a, b) {
                                        d(b)
                                    })
                                })
                            })["catch"](d)
                        });
                    return m(d, b), d
                }

                function a(a, b, c) {
                    var d = this;
                    "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                    var e = new Promise(function(c, e) {
                        d.ready().then(function() {
                            void 0 === b && (b = null);
                            var f = b,
                                h = d.Pa;
                            h.ii.serialize(b, function(b, d) {
                                d ? e(d) : h.db.transaction(function(d) {
                                    d.executeSql("INSERT OR REPLACE INTO " + h.Ua +
                                        " (key, value) VALUES (?, ?)", [a, b],
                                        function() {
                                            c(f)
                                        },
                                        function(a, b) {
                                            e(b)
                                        })
                                }, function(a) {
                                    a.code === a.QUOTA_ERR && e(a)
                                })
                            })
                        })["catch"](e)
                    });
                    return m(e, c), e
                }

                function g(a, b) {
                    var c = this;
                    "string" != typeof a && (f.console.warn(a + " used as a key, but it is not a string."), a = String(a));
                    var d = new Promise(function(b, d) {
                        c.ready().then(function() {
                            var e = c.Pa;
                            e.db.transaction(function(c) {
                                c.executeSql("DELETE FROM " + e.Ua + " WHERE key = ?", [a], function() {
                                    b()
                                }, function(a, b) {
                                    d(b)
                                })
                            })
                        })["catch"](d)
                    });
                    return m(d, b), d
                }

                function h(a) {
                    var b =
                        this,
                        c = new Promise(function(a, c) {
                            b.ready().then(function() {
                                var d = b.Pa;
                                d.db.transaction(function(b) {
                                    b.executeSql("DELETE FROM " + d.Ua, [], function() {
                                        a()
                                    }, function(a, b) {
                                        c(b)
                                    })
                                })
                            })["catch"](c)
                        });
                    return m(c, a), c
                }

                function e(a) {
                    var b = this,
                        c = new Promise(function(a, c) {
                            b.ready().then(function() {
                                var d = b.Pa;
                                d.db.transaction(function(b) {
                                    b.executeSql("SELECT COUNT(key) as c FROM " + d.Ua, [], function(b, c) {
                                        var d = c.rows.item(0).dk;
                                        a(d)
                                    }, function(a, b) {
                                        c(b)
                                    })
                                })
                            })["catch"](c)
                        });
                    return m(c, a), c
                }

                function l(a, b) {
                    var c = this,
                        d = new Promise(function(b, d) {
                            c.ready().then(function() {
                                var e = c.Pa;
                                e.db.transaction(function(c) {
                                    c.executeSql("SELECT key FROM " + e.Ua + " WHERE id = ? LIMIT 1", [a + 1], function(a, c) {
                                        var d = c.rows.length ? c.rows.item(0).key : null;
                                        b(d)
                                    }, function(a, b) {
                                        d(b)
                                    })
                                })
                            })["catch"](d)
                        });
                    return m(d, b), d
                }

                function x(a) {
                    var b = this,
                        c = new Promise(function(a, c) {
                            b.ready().then(function() {
                                var d = b.Pa;
                                d.db.transaction(function(b) {
                                    b.executeSql("SELECT key FROM " + d.Ua, [], function(b, c) {
                                        for (var d = [], e = 0; e < c.rows.length; e++) d.push(c.rows.item(e).key);
                                        a(d)
                                    }, function(a, b) {
                                        c(b)
                                    })
                                })
                            })["catch"](c)
                        });
                    return m(c, a), c
                }

                function m(a, b) {
                    b && a.then(function(a) {
                        b(null, a)
                    }, function(a) {
                        b(a)
                    })
                }
                var q = f.openDatabase;
                if (q) return {
                    Wj: "webSQLStorage",
                    Vp: b,
                    Vv: c,
                    getItem: d,
                    setItem: a,
                    removeItem: g,
                    clear: h,
                    length: e,
                    key: l,
                    keys: x
                }
            }("undefined" != typeof window ? window : self);
            g.Ue = l["default"]
        }])
    };
    "object" == typeof exports && "object" == typeof module ? module.Ue = Hc() : "function" == typeof define && define.zI ? define([], Hc) : "object" == typeof exports ? exports.localforage = Hc() : this.localforage =
        Hc()
} catch (Ic) {
    Gc = !0
}

function Jc(g) {
    this.c = g
}
(function() {
    function g(a) {
        a.c.trigger(Jc.prototype.g.ng, a)
    }

    function l() {}

    function p() {}

    function f() {}
    var b = "",
        d = "",
        c = [],
        a = "",
        n = "undefined" !== typeof window.is_scirra_arcade;
    n && (a = "sa" + window.scirra_arcade_id + "_");
    var h = Jc.prototype;
    h.N = function(a) {
        this.W = a;
        this.c = a.c
    };
    h.N.prototype.I = function() {};
    h.L = function(a) {
        this.type = a;
        this.c = a.c
    };
    var e = h.L.prototype;
    e.I = function() {
        this.Vr = this.Wr = 0
    };
    e.yd = function() {};
    e.$a = function() {
        return {}
    };
    e.lb = function() {};
    l.prototype.Jt = function(a) {
        return b === a
    };
    l.prototype.pA =
        function() {
            return !0
        };
    l.prototype.It = function(a) {
        return b === a
    };
    l.prototype.Bt = function() {
        return !0
    };
    l.prototype.sA = function() {
        return !0
    };
    l.prototype.ng = function() {
        return !0
    };
    l.prototype.lA = function() {
        return !0
    };
    l.prototype.kA = function() {
        return !0
    };
    h.g = new l;
    p.prototype.AB = function(c, e) {
        if (Gc) g(this);
        else {
            var f = a + c;
            this.Wr++;
            var h = this;
            localforage.setItem(f, e, function(a, e) {
                h.Wr--;
                a ? h.c.trigger(Jc.prototype.g.ng, h) : (b = c, d = e, h.c.trigger(Jc.prototype.g.pA, h), h.c.trigger(Jc.prototype.g.Jt, h), d = b = "");
                0 === h.Wr &&
                    h.c.trigger(Jc.prototype.g.lA, h)
            })
        }
    };
    p.prototype.Az = function(c) {
        if (Gc) g(this);
        else {
            var e = a + c;
            this.Vr++;
            var f = this;
            localforage.getItem(e, function(a, e) {
                f.Vr--;
                if (a) f.c.trigger(Jc.prototype.g.ng, f);
                else {
                    b = c;
                    d = e;
                    if ("undefined" === typeof d || null === d) d = "";
                    f.c.trigger(Jc.prototype.g.Bt, f);
                    f.c.trigger(Jc.prototype.g.It, f);
                    d = b = ""
                }
                0 === f.Vr && f.c.trigger(Jc.prototype.g.kA, f)
            })
        }
    };
    p.prototype.Oy = function() {
        if (Gc) g(this);
        else if (!n) {
            var a = this;
            localforage.clear(function(e) {
                e ? a.c.trigger(Jc.prototype.g.ng, a) : (d = b =
                    "", B(c), a.c.trigger(Jc.prototype.g.sA, a))
            })
        }
    };
    h.j = new p;
    f.prototype.Xz = function(a) {
        a.Nd(d)
    };
    f.prototype.$z = function(a) {
        a.aa(b)
    };
    f.prototype.zt = function(a) {
        a.G(c.length)
    };
    h.n = new f
})();

function Kc(g) {
    this.c = g
}
(function() {
    function g() {}

    function l() {}
    var p = Kc.prototype;
    p.N = function(b) {
        this.W = b;
        this.c = b.c
    };
    p.N.prototype.I = function() {};
    p.L = function(b) {
        this.type = b;
        this.c = b.c;
        this.Ci = Array(4);
        this.$x = this.gp = this.oi = this.Xg = this.Wg = 0;
        this.Tq = !1
    };
    var f = p.L.prototype;
    f.I = function() {
        var b = this;
        if (!this.c.kb) {
            jQuery(document).mousemove(function(a) {
                b.Nr(a)
            });
            jQuery(document).mousedown(function(a) {
                b.Mr(a)
            });
            jQuery(document).mouseup(function(a) {
                b.Or(a)
            });
            jQuery(document).dblclick(function(a) {
                b.RF(a)
            });
            var c = function(a) {
                b.UF(a)
            };
            document.addEventListener("mousewheel", c, !1);
            document.addEventListener("DOMMouseScroll", c, !1)
        }
    };
    var b = {
        left: 0,
        top: 0
    };
    f.Nr = function(d) {
        var c = this.c.kb ? b : jQuery(this.c.canvas).offset();
        this.Wg = d.pageX - c.left;
        this.Xg = d.pageY - c.top
    };
    f.Aw = function() {
        return 0 < this.c.Pc ? !0 : 0 <= this.Wg && 0 <= this.Xg && this.Wg < this.c.width && this.Xg < this.c.height
    };
    f.Mr = function(b) {
        this.Aw() && (this.Ci[b.which] = !0, this.c.Dc = !0, this.c.trigger(Kc.prototype.g.oA, this), this.oi = b.which - 1, this.gp = 0, this.c.trigger(Kc.prototype.g.Ct, this),
            this.c.trigger(Kc.prototype.g.Qt, this), this.c.Dc = !1)
    };
    f.Or = function(b) {
        this.Ci[b.which] && (this.c.Cn && !this.c.Pg && b.preventDefault(), this.c.Cn = !0, this.Ci[b.which] = !1, this.c.Dc = !0, this.oi = b.which - 1, this.c.trigger(Kc.prototype.g.St, this), this.c.Dc = !1)
    };
    f.RF = function(b) {
        this.Aw() && (b.preventDefault(), this.c.Dc = !0, this.oi = b.which - 1, this.gp = 1, this.c.trigger(Kc.prototype.g.Ct, this), this.c.trigger(Kc.prototype.g.Qt, this), this.c.Dc = !1)
    };
    f.UF = function(b) {
        this.$x = 0 > (b.wheelDelta ? b.wheelDelta : b.detail ? -b.detail :
            0) ? 0 : 1;
        this.Tq = !1;
        this.c.Dc = !0;
        this.c.trigger(Kc.prototype.g.Wt, this);
        this.c.Dc = !1;
        this.Tq && pb(b) && b.preventDefault()
    };
    f.mj = function() {
        var b, c;
        b = 0;
        for (c = this.Ci.length; b < c; ++b) this.Ci[b] && (this.Ci[b] = !1, this.oi = b - 1, this.c.trigger(Kc.prototype.g.St, this))
    };
    g.prototype.Ct = function(b, c) {
        return b === this.oi && c === this.gp
    };
    g.prototype.oA = function() {
        return !0
    };
    g.prototype.St = function(b) {
        return b === this.oi
    };
    g.prototype.Qt = function(b, c, a) {
        return b !== this.oi || c !== this.gp ? !1 : this.c.Nl(a, this.Wg, this.Xg)
    };
    g.prototype.Wt =
        function(b) {
            this.Tq = !0;
            return b === this.$x
        };
    p.g = new g;
    p.j = new function() {};
    l.prototype.kh = function(b, c) {
        var a, f, h, e, g;
        ia(c) ? (a = this.c.Qc(0), f = a.scale, h = a.Fb, e = a.Gc, g = a.q, a.scale = 1, a.Fb = 1, a.Gc = 1, a.q = 0, b.C(a.nb(this.Wg, this.Xg, !0)), a.scale = f, a.Fb = h, a.Gc = e, a.q = g) : (a = ja(c) ? this.c.Qc(c) : this.c.ze(c)) ? b.C(a.nb(this.Wg, this.Xg, !0)) : b.C(0)
    };
    l.prototype.mh = function(b, c) {
        var a, f, h, e, g;
        ia(c) ? (a = this.c.Qc(0), f = a.scale, h = a.Fb, e = a.Hc, g = a.q, a.scale = 1, a.Fb = 1, a.Hc = 1, a.q = 0, b.C(a.nb(this.Wg, this.Xg, !1)), a.scale = f, a.Fb =
            h, a.Hc = e, a.q = g) : (a = ja(c) ? this.c.Qc(c) : this.c.ze(c)) ? b.C(a.nb(this.Wg, this.Xg, !1)) : b.C(0)
    };
    p.n = new l
})();

function Lc(g) {
    this.c = g
}(function() {
    function g() {}

    function l() {}
    var p = Lc.prototype;
    p.N = function(b) {
        this.W = b;
        this.c = b.c
    };
    p.N.prototype.I = function() {};
    p.L = function(b) {
        this.type = b;
        this.c = b.c
    };
    var f = p.L.prototype;
    f.I = function() {};
    f.yd = function() {};
    p.g = new g;
    g.prototype.At = function() {
        return !0
    };
    p.j = new l;
    l.prototype.At = function() {};
    p.n = new function() {}
})();

function Mc(g) {
    this.c = g
}
(function() {
    function g() {}

    function l() {}
    var p = Mc.prototype;
    p.N = function(b) {
        this.W = b;
        this.c = b.c
    };
    p.N.prototype.I = function() {};
    p.L = function(b) {
        this.type = b;
        this.c = b.c
    };
    var f = p.L.prototype;
    f.I = function() {
        this.rF = 1 == this.u[0];
        this.am = []
    };
    f.$a = function() {
        return {
            wl: this.am
        }
    };
    f.lb = function(b) {
        this.am = b.wl
    };
    p.g = new g;
    g.prototype.Iy = function() {
        var b = window.top == window;
        if (this.rF) return b;
        if (b) return !0;
        b = document.referrer;
        if ("" == b) return !0;
        var d = this.am.length,
            c;
        for (c = 0; c < d; c++)
            if (-1 != b.indexOf(this.am[c])) return !0;
        return !1
    };
    p.j = new l;
    l.prototype.Ay = function(b) {
        this.am.push(b)
    };
    p.n = new function() {}
})();
var Nc = 0,
    Oc = 0,
    Pc = 100,
    Qc = 100,
    Rc = "",
    Sc = [];
Sc[Nc] = [];

function Tc(g) {
    this.c = g
}
(function() {
    function g() {}

    function l() {}

    function p() {}
    var f = Tc.prototype;
    f.N = function(b) {
        this.W = b;
        this.c = b.c
    };
    f.N.prototype.I = function() {};
    f.L = function(b) {
        this.type = b;
        this.c = b.c
    };
    var b = f.L.prototype;
    b.I = function() {
        this.tg = new Tc.zc(this);
        this.Yj = null;
        this.pg = {}
    };
    b.Vt = function(b, c) {
        this.Yj = b;
        this.pg = c;
        this.c.trigger(Tc.prototype.g.HA, this)
    };
    b.Mt = function(b, c) {
        this.Yj = b;
        this.pg = c;
        this.c.trigger(Tc.prototype.g.Lt, this)
    };
    f.g = new g;
    g.prototype.HA = function(b) {
        if (b) return this.tg.om(b, this.Yj)
    };
    g.prototype.Lt =
        function(b) {
            if (b) return this.tg.om(b, this.Yj)
        };
    f.j = new l;
    l.prototype.dm = function() {
        this.tg.dm()
    };
    l.prototype.Kp = function(b, c, a, f) {
        b && this.tg.Kp(b, c, a, f)
    };
    l.prototype.gA = function(b, c, a, f) {
        Pc = b;
        Qc = c;
        Rc = a;
        Oc = f;
        this.tg.cA()
    };
    l.prototype.SB = function(b) {
        this.tg.Zz(b)
    };
    l.prototype.fz = function(b) {
        this.tg.kC(b)
    };
    f.n = new p;
    p.prototype.Dy = function(b) {
        var c = this.tg.Qp();
        b.aa(c)
    }
})();
(function() {
    function g(b, a) {
        var f = d.Os[b.uid],
            h = d.Os[a.uid];
        return null != f && null != h ? f > h ? 1 : f < h ? -1 : 0 : null == f && null == h ? 0 : null == h ? 1 : -1
    }

    function l(b) {
        this.W = b;
        this.hh()
    }

    function p(b) {
        for (var a in b) delete b[a];
        return b
    }

    function f(b, a) {
        var d = null == a ? {} : a,
            f;
        for (f in b) d[f] = b[f];
        return d
    }
    Tc.zc = function(b) {
        this.W = b;
        this.ZE = null != b.Vt;
        this.YE = null != b.Mt;
        this.Zj = new l(b);
        this.vf = {};
        this.ym = {};
        this.pg = {};
        this.dm()
    };
    var b = Tc.zc.prototype;
    b.dm = function() {
        p(this.vf)
    };
    b.uC = function(b) {
        this.Yj = b;
        p(this.pg);
        this.W.Vt(b,
            this.pg);
        return f(this.pg)
    };
    b.rC = function(b) {
        var a = this.vf[b];
        null == a ? (a = {}, this.vf[b] = a) : a = null;
        return a
    };
    b.AC = function(b, a, d, f) {
        W && b instanceof W.prototype.L ? (a.plugin = "Sprite", a.cur_frame = b.U, a.cur_anim_speed = b.Eg, a.cur_anim_name = b.Ga.name) : oc.Text && b instanceof oc.Text.prototype.L ? (a.plugin = "Text", a.content = b.text) : a.plugin = "World";
        a.x = b.x + d;
        a.y = b.y + f;
        a.width = b.width;
        a.height = b.height;
        a.angle = b.q;
        a.opacity = b.opacity;
        a.visible = b.visible;
        a.layer = b.F.index;
        a.z_order = b.F.k.indexOf(b)
    };
    b.xC = function(b,
        a) {
        a.plugin = "Array";
        a.content = b.wv()
    };
    b.yC = function(b, a) {
        a.plugin = "Dictionary";
        a.content = JSON.stringify({
            c2dictionary: !0,
            data: b.ed
        })
    };
    b.zC = function(b, a) {
        if (b.gc) {
            a.container_insts = {};
            var d, f = b.siblings.length,
                e;
            for (d = 0; d < f; d++) e = b.siblings[d], a.container_insts[e.type.name] = e.uid, e = this.Zt(xS_offset, yS_offset, e, !0), e.create_me = !1
        }
    };
    b.Zt = function(b, a, d, f) {
        var e = this.rC(d.uid);
        if (null != e) return e.create_me = !0, e.saveduid = d.uid, d.type.W.$e ? this.AC(d, e, b, a) : Bc && d instanceof Bc.prototype.L ? this.xC(d, e) :
            Ec && d instanceof Ec.prototype.L && this.yC(d, e), e.type = d.type.name, e.inst_vars = d.Lb.slice(), e.custom_data = this.ZE ? this.uC(d) : {}, f || this.zC(d, e), e
    };
    b.Kp = function(b, a, d, f) {
        b = b.V();
        var e = b.X;
        1 == a && (b.X = !0);
        a = b.tb().slice();
        a.mJ = d;
        a.nJ = f;
        var g = a.length,
            l;
        for (l = 0; l < g; l++) this.Zt(d, f, a[l]);
        b.X = e
    };
    b.tC = function(b, a) {
        f(a, p(this.pg));
        this.W.Mt(b, this.pg)
    };
    b.pC = function(b, a) {
        "Sprite" == a.plugin ? (b.Eg = a.cur_anim_speed, W.prototype.j.bu.apply(b, [a.cur_frame]), W.prototype.j.au.apply(b, [a.cur_anim_name, 1])) : "Text" ==
            a.plugin && oc.Text.prototype.j.gu.apply(b, [a.content]);
        b.x = a.x + Pc;
        b.y = a.y + Qc;
        b.width = a.width;
        b.height = a.height;
        b.q = a.angle;
        b.opacity = a.opacity;
        b.visible = a.visible
    };
    b.mC = function(b, a) {
        Bc.prototype.j.vi.apply(b, [a.content])
    };
    b.nC = function(b, a) {
        Ec.prototype.j.vi.apply(b, [a.content])
    };
    b.su = function(b, a) {
        null != b && null != a && (this.ym[a.saveduid] = b, b.type.W.$e ? this.pC(b, a) : "Array" == a.plugin ? this.mC(b, a) : "Dictionary" == a.plugin && this.nC(b, a), Da(b.Lb, a.inst_vars), this.YE && this.tC(b, a.custom_data), /\w[^\d]/i.test(Rc) ?
            this.Zj.Fu(this.W.c.ze(Rc)) : this.Zj.Fu(this.W.c.Qc(a.layer)), this.Zj.bH(b.uid, a.z_order))
    };
    b.oC = function(b, a) {
        var d = a.container_insts;
        if (null != d && b.gc) {
            var f, e = b.siblings.length,
                g, l;
            for (f = 0; f < e; f++) g = b.siblings[f], l = d[g.type.name], this.su(g, this.nu(l))
        }
    };
    b.jC = function(b) {
        var a = b.type;
        this.om(a, b);
        var d = this.W.c;
        d.Id++;
        d.trigger(Object.getPrototypeOf(a.W).g.jh, b);
        d.Id--
    };
    b.it = function(b) {
        "object" != typeof b && (b = this.nu(b));
        if (null == b || !b.create_me) return null;
        var a = this.W.c,
            d = a.types[b.type],
            f = d.V(),
            e = f.X,
            g = a.Qc(b.layer);
        /\w[^\d]/i.test(Rc) && (g = a.ze(Rc));
        a = a.Sm(d, g, b.x, b.y);
        if (!a) return null;
        this.su(a, b);
        Sc[Nc][a.uid] = a;
        this.oC(a, b);
        this.jC(a);
        f.X = e;
        return a
    };
    b.kC = function(b) {
        var a = this.W.c,
            d;
        for (d in Sc[b]) a.ne(Sc[b][d]);
        Sc[b] = []
    };
    b.eA = function() {
        this.Zj.hh();
        p(this.ym)
    };
    b.dA = function() {
        this.Zj.OB();
        p(this.ym)
    };
    b.sC = function() {
        Nc = Oc;
        Sc[Nc] = [];
        for (var b in this.vf) this.it(b)
    };
    b.cA = function() {
        this.eA();
        this.sC();
        this.dA()
    };
    b.Qp = function() {
        return JSON.stringify(this.vf)
    };
    b.Zz = function(b) {
        this.vf =
            JSON.parse(b)
    };
    b.zc = function() {
        return this.vf
    };
    b.Dh = function(b) {
        f(b, p(this.vf))
    };
    b.nu = function(b) {
        return this.vf[b]
    };
    b.om = function(b, a) {
        if (!b || !a) return !1;
        if (b.Z) {
            var d = b.ai,
                f = d.length,
                e, g, l = !1;
            for (e = 0; e < f; e++)
                if (g = d[e], a.type == g) {
                    l = !0;
                    break
                }
            if (!l) return !1
        } else if (a.type != b) return !1;
        b.V().ei(a);
        if (a.gc)
            for (d = a.siblings.length, e = 0; e < d; e++) f = a.siblings[e], f.type.V().ei(f);
        return !0
    };
    b.nB = function(b) {
        var a = this.ym[b];
        null == a && (a = this.it(b));
        return a
    };
    b.Nk = function(b, a) {
        return this.om(b, this.nB(a))
    };
    b =
        l.prototype;
    b.hh = function() {
        this.ea = {};
        this.Os = {}
    };
    b.Fu = function(b) {
        null == this.ea[b.index] && (this.ea[b.index] = b)
    };
    b.bH = function(b, a) {
        this.Os[b] = a
    };
    var d = null;
    b.OB = function() {
        var b, a;
        d = this;
        for (b in this.ea) a = this.ea[b], a.k.sort(g), a.kg = !0;
        this.W.c.H = !0
    }
})();

function Uc(g) {
    this.c = g
}
(function() {
    function g(b, c) {
        a.Tj = b.uid;
        a.Uj = c.uid;
        a.c.trigger(Uc.prototype.g.mm, a);
        return a.Vj
    }

    function l() {}

    function p() {}

    function f() {}
    var b = Uc.prototype;
    b.N = function(a) {
        this.W = a;
        this.c = a.c
    };
    b.N.prototype.I = function() {};
    b.L = function(a) {
        this.type = a;
        this.c = a.c
    };
    var d = b.L.prototype,
        c = !0;
    d.I = function() {
        c = 0 == this.u[0];
        this.Vj = this.Uj = this.Tj = 0;
        this.Xj = ""
    };
    d.ud = function() {};
    d.Qq = function(a) {
        return "number" == typeof a ? this.c.Qc(a) : this.c.ze(a)
    };
    var a = null;
    d.$a = function() {
        return {
            xi: c
        }
    };
    d.lb = function(a) {
        c =
            a.xi
    };
    b.g = new l;
    l.prototype.mm = function(a) {
        return this.Xj == a
    };
    b.j = new p;
    p.prototype.ku = function(b, c) {
        var d = this.Qq(b);
        null == d ? alert("Z Sort: Can not find layer  " + b) : (a = this, this.Xj = c, d.k.sort(g), d.kg = !0, this.c.H = !0)
    };
    p.prototype.du = function(a) {
        this.Vj = a - 1
    };
    b.n = new f;
    f.prototype.ct = function(a) {
        a.G(this.Tj)
    };
    f.prototype.dt = function(a) {
        a.G(this.Uj)
    }
})();

function Vc(g) {
    this.c = g
}
(function() {
    function g(a, b) {
        c.Tj = parseInt(a);
        c.Uj = parseInt(b);
        c.c.trigger(Vc.prototype.g.mm, c);
        return c.Vj
    }

    function l() {}

    function p() {}

    function f() {}
    var b = Vc.prototype;
    b.N = function(a) {
        this.W = a;
        this.c = a.c
    };
    b.N.prototype.I = function() {};
    b.L = function(a) {
        this.type = a;
        this.c = a.c
    };
    var d = b.L.prototype;
    d.I = function() {
        this.Hh = {};
        this.xl = null;
        this.Go = -1;
        this.Uj = this.Tj = 0;
        this.Xj = "";
        this.Vj = 0;
        this.wm = {};
        this.cl = function(a) {
            return function(b) {
                a.jl(b)
            }
        }(this);
        this.c.Xp(this.cl)
    };
    d.yd = function() {
        this.c.vx(this.cl)
    };
    d.jl = function(a) {
        a = a.uid;
        var b, c = this.Hh;
        for (b in c) c[b].Mj(a);
        this.wC(a)
    };
    d.iC = function(a) {
        var b;
        "@" != a.charAt(0) ? b = -1 : (b = a.indexOf("$"), b = -1 == b ? -1 : parseInt(a.substring(1, b)));
        if (-1 != b) {
            var c = this.wm[b];
            null == c ? (c = [a], this.wm[b] = c) : c.push(a)
        }
    };
    d.wC = function(a) {
        var b = this.wm[a];
        if (null != b) {
            var c = b.length,
                d;
            for (d = 0; d < c; d++) this.up(b[d]);
            delete this.wm[a]
        }
    };
    d.mb = function(a) {
        var b = this.Hh[a];
        null == b && (b = new window.zc, this.Hh[a] = b, this.iC(a));
        return b
    };
    d.up = function(a) {
        null != this.Hh[a] && delete this.Hh[a]
    };
    d.zc = function() {
        var a = {},
            b, c = this.Hh;
        for (b in c) a[b] = c[b].Qp();
        return JSON.stringify(a)
    };
    d.Wp = function(a, b, c) {
        a != c && b != c ? (this.mb(c).tp(this.mb(a)), a = c) : c == b && (b = a, a = c);
        return {
            a: a,
            b: b
        }
    };
    d.wu = function(a, b) {
        var c = this.c.Lg(a);
        if (null == c) return null;
        if (null == b || c.type == b) return c;
        if (b.Z) {
            var d = c.type.sb,
                f = d.length,
                g;
            for (g = 0; g < f; g++)
                if (b == d[g]) return c
        }
        return null
    };
    d.uu = function(a, b, c) {
        a = this.mb(a);
        var d = a.za,
            f = b.V();
        f.X = !1;
        f.k.length = 0;
        var g = d.length,
            m, q;
        for (m = 0; m < g; m++) q = this.wu(d[m], b), null != q && f.k.push(q);
        if (1 == c)
            for (g = f.k.length, m = 0; m < g; m++) a.Mj(f.k[m].uid);
        b.Bd();
        return 0 < f.k.length
    };
    d.vC = function(a, b, c, d) {
        a = this.mb(a);
        var f = a.za,
            g = f.length > b,
            m = c.V();
        m.X = !1;
        m.k.length = 0;
        var q = null;
        g && (q = this.wu(f[b], c), null != q && m.k.push(q));
        1 == d && null != q && a.Mj(q.uid);
        return 0 < m.k.length
    };
    var c = null;
    d.$a = function() {
        var a = {},
            b, c = this.Hh;
        for (b in c) a[b] = c[b].za;
        return {
            d: a,
            randomuid: null != this.xl ? this.xl.uid : -1
        }
    };
    d.lb = function(a) {
        var b = a.d,
            c;
        for (c in b) this.mb(c).cu(b[c]);
        this.Go = a.randomuid
    };
    d.pe = function() {
        -1 === this.Go ?
            this.xl = null : this.xl = this.c.Lg(this.Go);
        this.Go = -1
    };
    b.g = new l;
    l.prototype.mm = function(a) {
        return this.Xj == a
    };
    l.prototype.Xt = function(a, b, c) {
        if (b) return this.uu(a, b, c)
    };
    l.prototype.xt = function(a, b) {
        return this.mb(b).xt(a)
    };
    l.prototype.xp = function(a) {
        return 0 == this.mb(a).za.length
    };
    l.prototype.$A = function(a, b, c, d) {
        if (c) return this.vC(a, b, c, d)
    };
    l.prototype.yt = function(a, b) {
        var c = this.mb(b),
            d = this.mb(a);
        return c.yt(d)
    };
    b.j = new p;
    p.prototype.hh = function(a) {
        this.mb(a).hh()
    };
    p.prototype.up = function(a) {
        this.up(a)
    };
    p.prototype.tp = function(a, b) {
        a != b && this.mb(b).tp(this.mb(a))
    };
    p.prototype.uy = function(a, b) {
        if (a) {
            var c = a.V().tb(),
                d = c.length;
            if (1 == d) this.mb(b).Hj(c[0].uid);
            else {
                var f, g = [];
                g.length = c.length;
                for (f = 0; f < d; f++) g[f] = c[f].uid;
                this.mb(b).Hj(g)
            }
        }
    };
    p.prototype.ou = function(a, b, c) {
        a = this.Wp(a, b, c);
        this.mb(a.a).ou(this.mb(a.b))
    };
    p.prototype.gt = function(a, b, c) {
        a = this.Wp(a, b, c);
        this.mb(a.a).gt(this.mb(a.b))
    };
    p.prototype.tt = function(a, b, c) {
        a = this.Wp(a, b, c);
        this.mb(a.a).tt(this.mb(a.b))
    };
    p.prototype.ju = function(a) {
        this.mb(a).ju(this.xl)
    };
    p.prototype.ku = function(a, b) {
        c = this;
        this.Xj = b;
        this.mb(a).za.sort(g)
    };
    p.prototype.du = function(a) {
        this.Vj = a - 1
    };
    p.prototype.Xt = function(a, b, c) {
        b && this.uu(a, b, c)
    };
    p.prototype.Jp = function(a) {
        this.mb(a).za.reverse()
    };
    b.n = new f;
    f.prototype.ct = function(a) {
        a.G(this.Tj)
    };
    f.prototype.dt = function(a) {
        a.G(this.Uj)
    };
    f.prototype.mu = function(a, b, c) {
        a.G(this.mb(b).mu(c))
    };
    f.prototype.qt = function(a, b, c) {
        a.G(this.mb(b).qt(c))
    };
    f.prototype.Yt = function(a, b, c) {
        b = this.mb(b);
        var d = b.za; - 1 == c && (c = d.length - 1);
        c = d[c];
        null ==
            c ? c = -1 : b.Mj(c);
        a.G(c)
    }
})();
(function() {
    if (null == window.zc) {
        var g = function() {
                this.Za = {};
                this.za = []
            },
            l = g.prototype;
        l.hh = function() {
            for (var f in this.Za) delete this.Za[f];
            this.za.length = 0
        };
        l.tp = function(f) {
            var b, d;
            d = this.Za;
            for (b in d) delete this.Za[b];
            d = f.Za;
            for (b in d) this.Za[b] = d[b];
            Da(this.za, f.za)
        };
        l.cu = function(f) {
            this.hh();
            this.Hj(f)
        };
        l.Hj = function(f) {
            if ("number" == typeof f) null == this.Za[f] && (this.Za[f] = !0, this.za.push(f));
            else {
                var b, d, c = f.length;
                for (b = 0; b < c; b++) d = f[b], null == this.Za[d] && (this.Za[d] = !0, this.za.push(d))
            }
        };
        l.XI = function(f, b) {
            if ("number" == typeof f) null == this.Za[f] ? this.Za[f] = !0 : Ba(this.za, this.za.indexOf(f)), b ? this.za.unshift(f) : this.za.push(f);
            else {
                var d, c, a = f.length;
                for (d = 0; d < a; d++) c = f[d], null == this.Za[c] ? this.Za[c] = !0 : Ba(this.za, this.za.indexOf(c));
                b ? this.za.unshift.apply(this.za, f) : this.za.push.apply(this.za, f)
            }
        };
        l.Nk = function(f, b) {
            if ("number" == typeof f) null == this.Za[f] ? this.Za[f] = !0 : Ba(this.za, this.za.indexOf(f)), p(this.za, f, b);
            else {
                var d, c, a = f.length;
                for (d = 0; d < a; d++) c = f[d], null == this.Za[c] ? this.Za[c] = !0 : Ba(this.za, this.za.indexOf(c));
                p(this.za, f, b)
            }
        };
        l.Mj = function(f) {
            if ("number" == typeof f) null != this.Za[f] && (delete this.Za[f], Ba(this.za, this.za.indexOf(f)));
            else {
                var b, d, c = f.length;
                for (b = 0; b < c; b++) d = f[b], null != this.Za[d] && (delete this.Za[d], Ba(this.za, this.za.indexOf(d)))
            }
        };
        l.mu = function(f) {
            return this.za.indexOf(f)
        };
        l.qt = function(f) {
            var b = this.za;
            return f < b.length ? b[f] : -1
        };
        l.ou = function(f) {
            f = f.Za;
            for (var b in f) this.Hj(parseInt(b))
        };
        l.gt = function(f) {
            this.Mj(f.za)
        };
        l.tt = function(f) {
            var b, d = this.Za,
                c = {};
            for (b in d) c[b] = !0;
            this.hh();
            d = f.Za;
            for (b in d) null != c[b] && this.Hj(parseInt(b))
        };
        l.yt = function(f) {
            f = f.Za;
            var b, d = !0;
            for (b in f)
                if (!(b in this.Za)) {
                    d = !1;
                    break
                }
            return d
        };
        l.Dh = function() {
            return this.Za
        };
        l.zc = function() {
            return this.za
        };
        l.xt = function(f) {
            return null != this.Za[f]
        };
        l.Qp = function() {
            return JSON.stringify(this.za)
        };
        l.or = function(f) {
            this.cu(JSON.parse(f))
        };
        l.ju = function(f) {
            var b = this.za,
                d = b.length,
                c, a;
            if (0 != d)
                for (; --d;) c = null == f ? Math.random() : f.random(), c = Math.floor(c * (d + 1)), a = b[d], b[d] =
                    b[c], b[c] = a
        };
        var p = function(f, b, d) {
            var c = f.length;
            d > c && (d = c);
            if ("object" != typeof b)
                if (0 == d) f.unshift(b);
                else if (d == c) f.push(b);
            else {
                var a, c = f.length;
                f.length += 1;
                for (a = c; a > d; a--) f[a] = f[a - 1];
                f[d] = b
            } else if (0 == d) f.unshift.apply(f, b);
            else if (d == c) f.push.apply(f, b);
            else {
                a = f.length - 1;
                var c = d,
                    g = b.length;
                for (f.length += g; a >= c; a--) f[a + g] = f[a];
                for (a = 0; a < g; a++) f[a + d] = b[a]
            }
        };
        window.zc = g
    }
})();

function W(g) {
    this.c = g
}
(function() {
    function g() {
        if (0 === this.Xm.length) {
            var a = document.createElement("canvas");
            a.width = this.width;
            a.height = this.height;
            var b = a.getContext("2d");
            this.ki ? b.drawImage(this.K, this.ci, this.di, this.width, this.height, 0, 0, this.width, this.height) : b.drawImage(this.K, 0, 0, this.width, this.height);
            this.Xm = a.toDataURL("image/png")
        }
        return this.Xm
    }

    function l() {}

    function p() {}

    function f() {}
    var b = W.prototype;
    b.N = function(a) {
        this.W = a;
        this.c = a.c
    };
    var d = b.N.prototype;
    d.I = function() {
        if (!this.Z) {
            var a, b, c, d, e, f,
                h, n, l;
            this.qe = [];
            this.xk = !1;
            a = 0;
            for (b = this.qd.length; a < b; a++) {
                e = this.qd[a];
                h = {};
                h.name = e[0];
                h.speed = e[1];
                h.loop = e[2];
                h.ls = e[3];
                h.ms = e[4];
                h.kx = e[5];
                h.Ia = e[6];
                h.frames = [];
                c = 0;
                for (d = e[7].length; c < d; c++) f = e[7][c], n = {}, n.yj = f[0], n.Ql = f[1], n.ci = f[2], n.di = f[3], n.width = f[4], n.height = f[5], n.duration = f[6], n.Ab = f[7], n.Bb = f[8], n.Xq = f[9], n.xo = f[10], n.as = f[11], n.ki = 0 !== n.width, n.Xm = "", n.JI = g, l = {
                    left: 0,
                    top: 0,
                    right: 1,
                    bottom: 1
                }, n.xs = l, n.da = null, (l = this.c.oE(f[0])) ? n.K = l : (n.K = new Image, n.K.XC = f[0], n.K.Rm = f[1], n.K.PC =
                    null, this.c.qp(n.K, f[0])), h.frames.push(n), this.qe.push(n);
                this.qd[a] = h
            }
        }
    };
    d.Ps = function() {
        var a, b, c;
        a = 0;
        for (b = this.k.length; a < b; a++) c = this.k[a], c.Ei = c.Ca.da
    };
    d.ll = function() {
        if (!this.Z) {
            var a, b, c;
            a = 0;
            for (b = this.qe.length; a < b; ++a) c = this.qe[a], c.K.PC = null, c.da = null;
            this.xk = !1;
            this.Ps()
        }
    };
    d.ml = function() {
        if (!this.Z && this.k.length) {
            var a, b, c;
            a = 0;
            for (b = this.qe.length; a < b; ++a) c = this.qe[a], c.da = this.c.J.Tf(c.K, !1, this.c.gb, c.as);
            this.Ps()
        }
    };
    d.Xn = function() {
        if (!this.Z && !this.xk && this.c.J) {
            var a, b, c;
            a = 0;
            for (b = this.qe.length; a < b; ++a) c = this.qe[a], c.da = this.c.J.Tf(c.K, !1, this.c.gb, c.as);
            this.xk = !0
        }
    };
    d.Tl = function() {
        if (!this.Z && !this.k.length && this.xk) {
            var a, b, c;
            a = 0;
            for (b = this.qe.length; a < b; ++a) c = this.qe[a], this.c.J.deleteTexture(c.da), c.da = null;
            this.xk = !1
        }
    };
    var c = [];
    d.rl = function(a) {
        var b, d, e;
        B(c);
        b = 0;
        for (d = this.qe.length; b < d; ++b) e = this.qe[b].K, -1 === c.indexOf(e) && (a.drawImage(e, 0, 0), c.push(e))
    };
    b.L = function(a) {
        this.type = a;
        this.c = a.c;
        a = this.type.qd[0].frames[0].xo;
        this.uc ? this.Qa.Gl(a) : this.Qa = new ib(a)
    };
    var a = b.L.prototype;
    a.I = function() {
        this.visible = 0 === this.u[0];
        this.Qi = this.Pf = !1;
        this.Vd = 0 !== this.u[3];
        this.Ga = this.vv(this.u[1]) || this.type.qd[0];
        this.U = this.u[2];
        0 > this.U && (this.U = 0);
        this.U >= this.Ga.frames.length && (this.U = this.Ga.frames.length - 1);
        var a = this.Ga.frames[this.U];
        this.Qa.Gl(a.xo);
        this.Ab = a.Ab;
        this.Bb = a.Bb;
        this.Eg = this.Ga.speed;
        this.Dg = this.Ga.ms;
        1 === this.type.qd.length && 1 === this.type.qd[0].frames.length || 0 === this.Eg || (this.c.Aj(this), this.Pf = !0);
        this.uc ? this.Pe.reset() : this.Pe = new gb;
        this.Jf = this.Pe.ta;
        this.ph = !0;
        this.xf = 0;
        this.oh = !0;
        this.fk = this.Gu = "";
        this.iq = 0;
        this.ek = -1;
        this.type.Xn();
        var b, c, d, e, f, h, g, a = 0;
        for (b = this.type.qd.length; a < b; a++)
            for (e = this.type.qd[a], c = 0, d = e.frames.length; c < d; c++) f = e.frames[c], 0 === f.width && (f.width = f.K.width, f.height = f.K.height), f.ki && (g = f.K, h = f.xs, h.left = f.ci / g.width, h.top = f.di / g.height, h.right = (f.ci + f.width) / g.width, h.bottom = (f.di + f.height) / g.height, 0 === f.ci && 0 === f.di && f.width === g.width && f.height === g.height && (f.ki = !1));
        this.Ca = this.Ga.frames[this.U];
        this.Ei = this.Ca.da
    };
    a.$a = function() {
        var a = {
            a: this.Ga.Ia,
            f: this.U,
            cas: this.Eg,
            fs: this.Jf,
            ar: this.xf,
            at: this.Pe.ta,
            rt: this.Dg
        };
        this.ph || (a.ap = this.ph);
        this.oh || (a.af = this.oh);
        return a
    };
    a.lb = function(a) {
        var b = this.tE(a.a);
        b && (this.Ga = b);
        this.U = a.f;
        0 > this.U && (this.U = 0);
        this.U >= this.Ga.frames.length && (this.U = this.Ga.frames.length - 1);
        this.Eg = a.cas;
        this.Jf = a.fs;
        this.xf = a.ar;
        this.Pe.reset();
        this.Pe.ta = a.at;
        this.ph = a.hasOwnProperty("ap") ? a.ap : !0;
        this.oh = a.hasOwnProperty("af") ? a.af : !0;
        a.hasOwnProperty("rt") ?
            this.Dg = a.rt : this.Dg = this.Ga.ms;
        this.Ca = this.Ga.frames[this.U];
        this.Ei = this.Ca.da;
        this.Qa.Gl(this.Ca.xo);
        this.Ab = this.Ca.Ab;
        this.Bb = this.Ca.Bb
    };
    a.aq = function(a) {
        this.U = a ? 0 : this.Ga.frames.length - 1;
        this.ph = !1;
        this.Gu = this.Ga.name;
        this.Qi = !0;
        this.c.trigger(W.prototype.g.nA, this);
        this.c.trigger(W.prototype.g.mA, this);
        this.Qi = !1;
        this.xf = 0
    };
    a.zc = function() {
        return this.Pe.ta
    };
    a.ub = function() {
        this.Pe.add(this.c.Fh(this));
        this.fk.length && this.vq();
        0 <= this.ek && this.wq();
        var a = this.Pe.ta,
            b = this.Ga,
            c = b.frames[this.U],
            d = c.duration / this.Eg;
        this.ph && a >= this.Jf + d && (this.oh ? this.U++ : this.U--, this.Jf += d, this.U >= b.frames.length && (b.kx ? (this.oh = !1, this.U = b.frames.length - 2) : b.loop ? this.U = this.Dg : (this.xf++, this.xf >= b.ls ? this.aq(!1) : this.U = this.Dg)), 0 > this.U && (b.kx ? (this.U = 1, this.oh = !0, b.loop || (this.xf++, this.xf >= b.ls && this.aq(!0))) : b.loop ? this.U = this.Dg : (this.xf++, this.xf >= b.ls ? this.aq(!0) : this.U = this.Dg)), 0 > this.U ? this.U = 0 : this.U >= b.frames.length && (this.U = b.frames.length - 1), a > this.Jf + b.frames[this.U].duration / this.Eg &&
            (this.Jf = a), a = b.frames[this.U], this.wi(c, a), this.c.H = !0)
    };
    a.vv = function(a) {
        var b, c, d;
        b = 0;
        for (c = this.type.qd.length; b < c; b++)
            if (d = this.type.qd[b], ob(d.name, a)) return d;
        return null
    };
    a.tE = function(a) {
        var b, c, d;
        b = 0;
        for (c = this.type.qd.length; b < c; b++)
            if (d = this.type.qd[b], d.Ia === a) return d;
        return null
    };
    a.vq = function() {
        var a = this.Ga.frames[this.U],
            b = this.vv(this.fk);
        this.fk = "";
        !b || ob(b.name, this.Ga.name) && this.ph || (this.Ga = b, this.Eg = b.speed, this.Dg = b.ms, 0 > this.U && (this.U = 0), this.U >= this.Ga.frames.length &&
            (this.U = this.Ga.frames.length - 1), 1 === this.iq && (this.U = 0), this.ph = !0, this.Jf = this.Pe.ta, this.oh = !0, this.wi(a, this.Ga.frames[this.U]), this.c.H = !0)
    };
    a.wq = function() {
        var a = this.Ga.frames[this.U],
            b = this.U;
        this.U = ua(this.ek);
        0 > this.U && (this.U = 0);
        this.U >= this.Ga.frames.length && (this.U = this.Ga.frames.length - 1);
        b !== this.U && (this.wi(a, this.Ga.frames[this.U]), this.Jf = this.Pe.ta, this.c.H = !0);
        this.ek = -1
    };
    a.wi = function(a, b) {
        var c = a.width,
            d = a.height,
            e = b.width,
            f = b.height;
        c != e && (this.width *= e / c);
        d != f && (this.height *=
            f / d);
        this.Ab = b.Ab;
        this.Bb = b.Bb;
        this.Qa.Gl(b.xo);
        this.ca();
        this.Ca = b;
        this.Ei = b.da;
        c = 0;
        for (d = this.la.length; c < d; c++) e = this.la[c], e.Vw && e.Vw(a, b);
        this.c.trigger(W.prototype.g.wi, this)
    };
    a.ud = function(a) {
        a.globalAlpha = this.opacity;
        var b = this.Ca,
            c = b.ki,
            d = b.K,
            e = this.x,
            f = this.y,
            h = this.width,
            g = this.height;
        if (0 === this.q && 0 <= h && 0 <= g) e -= this.Ab * h, f -= this.Bb * g, this.c.hd && (e = Math.round(e), f = Math.round(f)), c ? a.drawImage(d, b.ci, b.di, b.width, b.height, e, f, h, g) : a.drawImage(d, e, f, h, g);
        else {
            this.c.hd && (e = Math.round(e),
                f = Math.round(f));
            a.save();
            var n = 0 < h ? 1 : -1,
                l = 0 < g ? 1 : -1;
            a.translate(e, f);
            1 === n && 1 === l || a.scale(n, l);
            a.rotate(this.q * n * l);
            e = 0 - this.Ab * qa(h);
            f = 0 - this.Bb * qa(g);
            c ? a.drawImage(d, b.ci, b.di, b.width, b.height, e, f, qa(h), qa(g)) : a.drawImage(d, e, f, qa(h), qa(g));
            a.restore()
        }
    };
    a.Gg = function(a) {
        this.yc(a)
    };
    a.yc = function(a) {
        a.Zc(this.Ei);
        a.ag(this.opacity);
        var b = this.Ca,
            c = this.Nc;
        if (this.c.hd) {
            var d = Math.round(this.x) - this.x,
                e = Math.round(this.y) - this.y;
            b.ki ? a.Fe(c.qb + d, c.rb + e, c.Qb + d, c.Rb + e, c.Ib + d, c.Jb + e, c.Gb + d, c.Hb + e,
                b.xs) : a.fi(c.qb + d, c.rb + e, c.Qb + d, c.Rb + e, c.Ib + d, c.Jb + e, c.Gb + d, c.Hb + e)
        } else b.ki ? a.Fe(c.qb, c.rb, c.Qb, c.Rb, c.Ib, c.Jb, c.Gb, c.Hb, b.xs) : a.fi(c.qb, c.rb, c.Qb, c.Rb, c.Ib, c.Jb, c.Gb, c.Hb)
    };
    a.yE = function(a) {
        var b = this.Ca,
            c, d;
        c = 0;
        for (d = b.Xq.length; c < d; c++)
            if (ob(a, b.Xq[c][0])) return c;
        return -1
    };
    a.Lf = function(a, b) {
        var c = this.Ca,
            d = c.Xq,
            e;
        ma(a) ? e = this.yE(a) : e = a - 1;
        e = ua(e);
        if (0 > e || e >= d.length) return b ? this.x : this.y;
        var f = (d[e][1] - c.Ab) * this.width,
            d = d[e][2],
            d = (d - c.Bb) * this.height,
            c = Math.cos(this.q);
        e = Math.sin(this.q);
        var h = f * c - d * e,
            d = d * c + f * e,
            f = h + this.x,
            d = d + this.y;
        return b ? f : d
    };
    var n = null,
        h = new da,
        e = !1,
        t = [],
        x = new xa(0, 0, 0, 0);
    d.finish = function(a) {
        if (e) {
            if (a) {
                var b = this.c.zb().Kb.Ld;
                a = n.V();
                var c = h.ig(),
                    d, f;
                if (a.X) {
                    a.X = !1;
                    B(a.k);
                    d = 0;
                    for (f = c.length; d < f; ++d) a.k[d] = c[d];
                    if (b)
                        for (B(a.na), d = 0, f = n.k.length; d < f; ++d) c = n.k[d], h.contains(c) || a.na.push(c)
                } else if (b)
                    for (b = a.k.length, d = 0, f = c.length; d < f; ++d) a.k[b + d] = c[d], Ga(a.na, c[d]);
                else Da(a.k, c);
                n.Bd()
            }
            h.clear();
            e = !1
        }
    };
    l.prototype.Qz = function(a) {
        if (a) {
            var b = !1,
                c, d, f, g = this.c.Eh(),
                r = g.type,
                g = g.Fn;
            c = a.V();
            d = this.c.zb().Kb.Ld;
            var l;
            c.X ? (this.jb(), x.Di(this.Tb), x.offset(0, 0), this.c.vE(this.F, a, x, t), l = t) : l = d ? this.c.hF() && !c.na.length && c.k.length ? c.k : c.na : c.k;
            n = a;
            e = r !== a && !g;
            c = 0;
            for (d = l.length; c < d; c++)
                if (f = l[c], this.c.Rx(this, f)) {
                    b = !0;
                    if (g) break;
                    r !== a && h.add(f)
                }
            B(t);
            a = b
        } else a = !1;
        return a
    };
    l.prototype.Uy = function(a, b) {
        return lc(this.U, a, b)
    };
    l.prototype.mA = function(a) {
        return ob(this.Gu, a)
    };
    l.prototype.nA = function() {
        return !0
    };
    l.prototype.wi = function() {
        return !0
    };
    l.prototype.uf = function() {
        return !0
    };
    b.g = new l;
    p.prototype.pm = function(a) {
        this.ac = a;
        this.Wd = lb(a);
        mb(this, a, this.c.S);
        this.c.H = !0
    };
    p.prototype.au = function(a, b) {
        this.fk = a;
        this.iq = b;
        this.Pf || (this.c.Aj(this), this.Pf = !0);
        this.Qi || this.vq()
    };
    p.prototype.bu = function(a) {
        this.ek = a;
        this.Pf || (this.c.Aj(this), this.Pf = !0);
        this.Qi || this.wq()
    };
    p.prototype.Mp = function(a) {
        var b = this.Ca,
            c = b.width * a * (0 > this.width ? -1 : 1);
        a = b.height * a * (0 > this.height ? -1 : 1);
        if (this.width !== c || this.height !== a) this.width = c, this.height = a, this.ca()
    };
    p.prototype.yp = function(a,
        b, c) {
        var d = new Image,
            e = this,
            f = this.Ca;
        d.onload = function() {
            f.K.src === d.src ? e.c.J && e.Ca === f && (e.Ei = f.da) : (f.K = d, f.ci = 0, f.di = 0, f.width = d.width, f.height = d.height, f.ki = !1, f.Xm = "", f.as = 0, e.c.J && (f.da && e.c.J.deleteTexture(f.da), f.da = e.c.J.Tf(d, !1, e.c.gb), e.Ca === f && (e.Ei = f.da), e.type.Ps()));
            0 === b && (e.width = d.width, e.height = d.height, e.ca());
            e.c.H = !0;
            e.c.trigger(W.prototype.g.uf, e)
        };
        "data:" !== a.substr(0, 5) && 0 === c && (d.crossOrigin = "anonymous");
        this.c.Bl(d, a)
    };
    b.j = new p;
    f.prototype.yy = function(a) {
        a.G(this.U)
    };
    f.prototype.zy = function(a) {
        a.aa(this.Ga.name)
    };
    f.prototype.Fz = function(a, b) {
        a.C(this.Lf(b, !0))
    };
    f.prototype.Gz = function(a, b) {
        a.C(this.Lf(b, !1))
    };
    f.prototype.wp = function(a) {
        a.C(this.Ca.width)
    };
    f.prototype.pt = function(a) {
        a.C(this.Ca.height)
    };
    b.n = new f
})();

function Wc(g) {
    this.c = g
}
(function() {
    function g(a, b) {
        return a.length ? a.pop() : new b
    }

    function l(b, c, d) {
        if (d) {
            var e;
            d = 0;
            for (e = c.length; d < e; d++) b.length < a && b.push(c[d]);
            B(c)
        } else
            for (e in c) Object.prototype.hasOwnProperty.call(c, e) && (b.length < a && b.push(c[e]), delete c[e])
    }

    function p(a, b, c) {
        var d = a.Vh;
        c = c.replace(/\s\s*$/, "");
        b >= d.length && d.push(g(n, Object));
        b = d[b];
        b.text = c;
        b.width = a.Fr(c);
        a.xj = ra(a.xj, b.width)
    }

    function f() {}

    function b() {}
    var d = Wc.prototype;
    d.I = function() {};
    d.N = function(a) {
        this.W = a;
        this.c = a.c
    };
    var c = d.N.prototype;
    c.I = function() {
        this.Z || (this.K = new Image, this.c.qp(this.K, this.yj), this.da = null)
    };
    c.ll = function() {
        this.Z || (this.da = null)
    };
    c.ml = function() {
        if (!this.Z && this.k.length) {
            this.da || (this.da = this.c.J.Tf(this.K, !1, this.c.gb, this.Rl));
            var a, b;
            a = 0;
            for (b = this.k.length; a < b; a++) this.k[a].da = this.da
        }
    };
    c.Tl = function() {
        this.Z || this.k.length || !this.da || (this.c.J.deleteTexture(this.da), this.da = null)
    };
    c.rl = function(a) {
        a.drawImage(this.K, 0, 0)
    };
    d.L = function(a) {
        this.type = a;
        this.c = a.c
    };
    c = d.L.prototype;
    c.yd = function() {
        l(n,
            this.Vh, !0);
        l(h, this.Nm, !1);
        l(e, this.Om, !1);
        Za(this.zg)
    };
    c.I = function() {
        this.K = this.type.K;
        this.Mm = this.u[0];
        this.xg = this.u[1];
        this.characterSet = this.u[2];
        this.text = this.u[3];
        this.sd = this.u[4];
        this.visible = 0 === this.u[5];
        this.wk = this.u[6] / 2;
        this.Ul = this.u[7] / 2;
        this.oH = 0 === this.u[9];
        this.yg = this.u[10];
        this.lineHeight = this.u[11];
        this.mi = this.xj = 0;
        this.uc ? (B(this.Vh), Za(this.Nm), Za(this.Om), Za(this.zg)) : (this.Vh = [], this.Nm = {}, this.Om = {}, this.zg = {});
        this.gg = !0;
        this.tr = this.width;
        this.c.J && (this.type.da ||
            (this.type.da = this.c.J.Tf(this.type.K, !1, this.c.gb, this.type.Rl)), this.da = this.type.da);
        this.PB()
    };
    c.$a = function() {
        var a = {
                t: this.text,
                csc: this.sd,
                csp: this.yg,
                lh: this.lineHeight,
                tw: this.xj,
                th: this.mi,
                lrt: this.vF,
                ha: this.wk,
                va: this.Ul,
                cw: {}
            },
            b;
        for (b in this.zg) a.cw[b] = this.zg[b];
        return a
    };
    c.lb = function(a) {
        this.text = a.t;
        this.sd = a.csc;
        this.yg = a.csp;
        this.lineHeight = a.lh;
        this.xj = a.tw;
        this.mi = a.th;
        this.vF = a.lrt;
        a.hasOwnProperty("ha") && (this.wk = a.ha);
        a.hasOwnProperty("va") && (this.Ul = a.va);
        for (var b in a.cw) this.zg[b] =
            a.cw[b];
        this.gg = !0;
        this.tr = this.width
    };
    var a = 1E3,
        n = [],
        h = [],
        e = [];
    c.PB = function() {
        for (var a = this.K, b = a.width, c = a.height, a = this.Mm, d = this.xg, f = a / b, k = d / c, r = this.characterSet, b = Math.floor(b / a), c = Math.floor(c / d), n = 0; n < r.length && !(n >= b * c); n++) {
            var l = n % b,
                p = Math.floor(n / b),
                t = r.charAt(n);
            if (this.c.J) {
                var M = this.Om,
                    x = l * f,
                    E = p * k,
                    l = (l + 1) * f,
                    p = (p + 1) * k;
                void 0 === M[t] && (M[t] = g(e, xa));
                M[t].left = x;
                M[t].top = E;
                M[t].right = l;
                M[t].bottom = p
            } else M = this.Nm, l = l * a, p = p * d, x = a, E = d, void 0 === M[t] && (M[t] = g(h, Object)), M[t].x = l, M[t].y =
                p, M[t].op = x, M[t].Bn = E
        }
    };
    var t = [];
    d.VB = function(a) {
        B(t);
        for (var b = "", c, d = 0; d < a.length;)
            if (c = a.charAt(d), "\n" === c) b.length && (t.push(b), b = ""), t.push("\n"), ++d;
            else if (" " === c || "\t" === c || "-" === c) {
            do b += a.charAt(d), d++; while (d < a.length && (" " === a.charAt(d) || "\t" === a.charAt(d)));
            t.push(b);
            b = ""
        } else d < a.length && (b += c, d++);
        b.length && t.push(b)
    };
    d.eC = function(a) {
        var b = a.text,
            c = a.Vh;
        if (b && b.length) {
            var d = a.width;
            if (2 >= d) l(n, c, !0);
            else {
                var e = a.sd,
                    f = a.yg;
                if (b.length * (a.Mm * e + f) - f <= d && -1 === b.indexOf("\n") && (f = a.Fr(b),
                        f <= d)) {
                    l(n, c, !0);
                    c.push(g(n, Object));
                    c[0].text = b;
                    c[0].width = f;
                    a.xj = f;
                    a.mi = a.xg * e + a.lineHeight;
                    return
                }
                this.fC(a);
                a.mi = c.length * (a.xg * e + a.lineHeight)
            }
        } else l(n, c, !0)
    };
    d.fC = function(b) {
        var c = b.oH,
            d = b.text,
            e = b.Vh,
            f = b.width;
        c && (this.VB(d), d = t);
        var h = "",
            g, l, y, I = 0,
            R = !1;
        for (y = 0; y < d.length; y++) "\n" === d[y] ? (!0 === R ? R = !1 : (p(b, I, h), I++), h = "") : (R = !1, g = h, h += d[y], l = b.Fr(h.replace(/\s\s*$/, "")), l > f && ("" === g ? (p(b, I, h), h = "", R = !0) : (p(b, I, g), h = d[y]), I++, c || " " !== h || (h = "")));
        h.replace(/\s\s*$/, "").length && (p(b, I, h), I++);
        for (y = I; y < e.length; y++) n.length < a && n.push(e[y]);
        e.length = I
    };
    c.Fr = function(a) {
        for (var b = this.yg, c = a.length, d = 0, e = 0; e < c; e++) d += this.Iq(a.charAt(e)) * this.sd + b;
        return d - (0 < d ? b : 0)
    };
    c.Iq = function(a) {
        var b = this.zg;
        return void 0 !== b[a] ? b[a] : this.Mm
    };
    c.rx = function() {
        if (this.gg || this.width !== this.tr) this.mi = this.xj = 0, this.type.W.eC(this), this.gg = !1, this.tr = this.width
    };
    c.ud = function(a) {
        var b = this.K;
        if ("" !== this.text && null != b && (this.rx(), !(this.height < this.xg * this.sd + this.lineHeight))) {
            a.globalAlpha = this.opacity;
            var b = this.x,
                c = this.y;
            this.c.hd && (b = Math.round(b), c = Math.round(c));
            var d = this.F.Wa,
                e = this.F.Xa,
                f = this.F.bb,
                h = this.F.ab;
            a.save();
            a.translate(b, c);
            a.rotate(this.q);
            for (var g = this.q, n = this.wk, l = this.sd, p = this.xg * l, t = this.lineHeight, x = this.yg, E = this.Vh, J, F = -(this.Ab * this.width), z = -(this.Bb * this.height), z = z + this.Ul * ra(0, this.height - this.mi), C, O, ba, U = 0; U < E.length; U++) {
                var A = E[U].text;
                J = n * ra(0, this.width - E[U].width);
                C = F + J;
                z += t;
                if (0 === g && c + z + p < e) z += p;
                else {
                    for (var P = 0; P < A.length; P++) {
                        O = A.charAt(P);
                        J = this.Iq(O);
                        var L = this.Nm[O];
                        if (0 === g && b + C + J * l + x < d) C += J * l + x;
                        else {
                            if (C + J * l > this.width + 1E-5) break;
                            void 0 !== L && (O = C, ba = z, 0 === g && 1 === l && (O = Math.round(O), ba = Math.round(ba)), a.drawImage(this.K, L.x, L.y, L.op, L.Bn, O, ba, L.op * l, L.Bn * l));
                            C += J * l + x;
                            if (0 === g && b + C > f) break
                        }
                    }
                    z += p;
                    if (0 === g && (z + p + t > this.height || c + z > h)) break
                }
            }
            a.restore()
        }
    };
    var x = new ya;
    c.yc = function(a) {
        a.Zc(this.da);
        a.ag(this.opacity);
        if (this.text && (this.rx(), !(this.height < this.xg * this.sd + this.lineHeight))) {
            this.jb();
            var b = this.Nc,
                c = 0,
                d = 0;
            this.c.hd && (c = Math.round(this.x) -
                this.x, d = Math.round(this.y) - this.y);
            var e = this.F.Wa,
                f = this.F.Xa,
                h = this.F.bb,
                g = this.F.ab,
                n = this.q,
                l = this.wk,
                p = this.Ul,
                t = this.sd,
                G = this.xg * t,
                E = this.lineHeight,
                J = this.yg,
                F = this.Vh,
                z = this.mi,
                C, O, ba;
            0 !== n && (O = Math.cos(n), ba = Math.sin(n));
            for (var c = b.qb + c, b = b.rb + d, U, p = p * ra(0, this.height - z), A, P, z = 0; z < F.length; z++)
                if (d = F[z].text, U = C = l * ra(0, this.width - F[z].width), p += E, 0 === n && b + p + G < f) p += G;
                else {
                    for (var L = 0; L < d.length; L++) {
                        var V = d.charAt(L);
                        C = this.Iq(V);
                        V = this.Om[V];
                        if (0 === n && c + U + C * t + J < e) U += C * t + J;
                        else {
                            if (U + C *
                                t > this.width + 1E-5) break;
                            if (void 0 !== V) {
                                var K = this.Mm * t,
                                    N = this.xg * t;
                                A = U;
                                P = p;
                                0 === n && 1 === t && (A = Math.round(A), P = Math.round(P));
                                x.qb = A;
                                x.rb = P;
                                x.Qb = A + K;
                                x.Rb = P;
                                x.Gb = A;
                                x.Hb = P + N;
                                x.Ib = A + K;
                                x.Jb = P + N;
                                0 !== n && (A = x, P = O, K = ba, N = void 0, N = A.qb * P - A.rb * K, A.rb = A.rb * P + A.qb * K, A.qb = N, N = A.Qb * P - A.Rb * K, A.Rb = A.Rb * P + A.Qb * K, A.Qb = N, N = A.Gb * P - A.Hb * K, A.Hb = A.Hb * P + A.Gb * K, A.Gb = N, N = A.Ib * P - A.Jb * K, A.Jb = A.Jb * P + A.Ib * K, A.Ib = N);
                                x.offset(c, b);
                                a.Fe(x.qb, x.rb, x.Qb, x.Rb, x.Ib, x.Jb, x.Gb, x.Hb, V)
                            }
                            U += C * t + J;
                            if (0 === n && c + U > h) break
                        }
                    }
                    p += G;
                    if (0 === n && (p + G + E >
                            this.height || b + p > g)) break
                }
        }
    };
    d.g = new function() {};
    f.prototype.gu = function(a) {
        ja(a) && 1E9 > a && (a = Math.round(1E10 * a) / 1E10);
        a = a.toString();
        this.text !== a && (this.text = a, this.gg = !0, this.c.H = !0)
    };
    f.prototype.Mp = function(a) {
        a !== this.sd && (this.sd = a, this.gg = !0, this.c.H = !0)
    };
    f.prototype.uB = function(a) {
        a !== this.Hy && (this.yg = a, this.gg = !0, this.c.H = !0)
    };
    c.tB = function(a, b) {
        var c = parseInt(b, 10);
        this.zg[a] !== c && (this.zg[a] = c, this.gg = !0, this.c.H = !0)
    };
    f.prototype.vB = function(a, b) {
        if ("" !== a)
            for (var c = 0; c < a.length; c++) this.tB(a.charAt(c),
                b)
    };
    f.prototype.pm = function(a) {
        this.ac = a;
        this.Wd = lb(a);
        mb(this, a, this.c.S);
        this.c.H = !0
    };
    f.prototype.xB = function(a) {
        this.wk = a / 2;
        this.gg = !0;
        this.c.H = !0
    };
    f.prototype.KB = function(a) {
        this.Ul = a / 2;
        this.gg = !0;
        this.c.H = !0
    };
    d.j = new f;
    b.prototype.Gy = function(a) {
        a.C(this.sd)
    };
    b.prototype.Hy = function(a) {
        a.G(this.yg)
    };
    b.prototype.bA = function(a) {
        a.G(this.lineHeight)
    };
    b.prototype.Text = function(a) {
        a.aa(this.text)
    };
    d.n = new b
})();

function Xc(g) {
    this.c = g
}
(function() {
    function g() {}

    function l() {}

    function p() {}
    var f = Xc.prototype;
    f.N = function(b) {
        this.W = b;
        this.c = b.c
    };
    var b = f.N.prototype;
    b.I = function() {
        this.Z || (this.K = new Image, this.K.Rm = this.Ql, this.c.qp(this.K, this.yj), this.da = this.pattern = null)
    };
    b.ll = function() {
        this.Z || (this.da = null)
    };
    b.ml = function() {
        if (!this.Z && this.k.length) {
            this.da || (this.da = this.c.J.Tf(this.K, !0, this.c.gb, this.Rl));
            var b, c;
            b = 0;
            for (c = this.k.length; b < c; b++) this.k[b].da = this.da
        }
    };
    b.Xn = function() {
        this.Z || this.da || !this.c.J || (this.da =
            this.c.J.Tf(this.K, !0, this.c.gb, this.Rl))
    };
    b.Tl = function() {
        this.Z || this.k.length || !this.da || (this.c.J.deleteTexture(this.da), this.da = null)
    };
    b.rl = function(b) {
        b.drawImage(this.K, 0, 0)
    };
    f.L = function(b) {
        this.type = b;
        this.c = b.c
    };
    b = f.L.prototype;
    b.I = function() {
        this.visible = 0 === this.u[0];
        this.qj = new xa(0, 0, 0, 0);
        this.En = !1;
        this.K = this.type.K;
        this.c.J ? (this.type.Xn(), this.da = this.type.da) : (this.type.pattern || (this.type.pattern = this.c.B.createPattern(this.type.K, "repeat")), this.pattern = this.type.pattern)
    };
    b.pe =
        function() {
            this.En = !1;
            this.K = this.type.K
        };
    b.yd = function() {
        this.c.J && this.En && this.da && (this.c.J.deleteTexture(this.da), this.da = null)
    };
    b.ud = function(b) {
        b.globalAlpha = this.opacity;
        b.save();
        b.fillStyle = this.pattern;
        var c = this.x,
            a = this.y;
        this.c.hd && (c = Math.round(c), a = Math.round(a));
        var f = -(this.Ab * this.width),
            h = -(this.Bb * this.height),
            e = f % this.K.width,
            g = h % this.K.height;
        0 > e && (e += this.K.width);
        0 > g && (g += this.K.height);
        b.translate(c, a);
        b.rotate(this.q);
        b.translate(e, g);
        b.fillRect(f - e, h - g, this.width, this.height);
        b.restore()
    };
    b.Gg = function(b) {
        this.yc(b)
    };
    b.yc = function(b) {
        b.Zc(this.da);
        b.ag(this.opacity);
        var c = this.qj;
        c.right = this.width / this.K.width;
        c.bottom = this.height / this.K.height;
        var a = this.Nc;
        if (this.c.hd) {
            var f = Math.round(this.x) - this.x,
                h = Math.round(this.y) - this.y;
            b.Fe(a.qb + f, a.rb + h, a.Qb + f, a.Rb + h, a.Ib + f, a.Jb + h, a.Gb + f, a.Hb + h, c)
        } else b.Fe(a.qb, a.rb, a.Qb, a.Rb, a.Ib, a.Jb, a.Gb, a.Hb, c)
    };
    g.prototype.uf = function() {
        return !0
    };
    f.g = new g;
    l.prototype.pm = function(b) {
        this.ac = b;
        this.Wd = lb(b);
        mb(this, b, this.c.S);
        this.c.H = !0
    };
    l.prototype.yp = function(b, c) {
        var a = new Image,
            f = this;
        a.onload = function() {
            f.K = a;
            f.c.J ? (f.En && f.da && f.c.J.deleteTexture(f.da), f.da = f.c.J.Tf(a, !0, f.c.gb)) : f.pattern = f.c.B.createPattern(a, "repeat");
            f.En = !0;
            f.c.H = !0;
            f.c.trigger(Xc.prototype.g.uf, f)
        };
        "data:" !== b.substr(0, 5) && 0 === c && (a.crossOrigin = "anonymous");
        this.c.Bl(a, b)
    };
    f.j = new l;
    p.prototype.wp = function(b) {
        b.C(this.K.width)
    };
    p.prototype.pt = function(b) {
        b.C(this.K.height)
    };
    f.n = new p
})();

function Yc(g) {
    this.c = g
}
(function() {
    function g() {
        this.dp = this.id = -1;
        this.Iu = this.Hi = this.Xl = this.yk = !1;
        this.Ta = new xa(0, 0, 0, 0)
    }

    function l(a) {
        1E4 > u.length && u.push(a)
    }

    function p() {
        this.id = -1;
        this.Ta = new xa(0, 0, 0, 0);
        this.Xf = null
    }

    function f(a) {
        1E4 > w.length && w.push(a)
    }

    function b(a, b, c) {
        var e;
        return v.length ? (e = v.pop(), e.e = a, e.x = b, e.y = c, e.left = e.x * e.e.cc * e.e.nc, e.top = e.y * e.e.oc * e.e.mc, e.clear(), e.ul = !1, e) : new d(a, b, c)
    }

    function d(a, b, c) {
        this.e = a;
        this.x = b;
        this.y = c;
        this.left = this.x * this.e.cc * this.e.nc;
        this.top = this.y * this.e.oc * this.e.mc;
        this.of = [];
        this.Ic = [];
        this.Tc = [];
        this.ul = !1;
        var d, e;
        a = 0;
        for (b = this.e.oc; a < b; ++a) {
            e = [];
            c = 0;
            for (d = this.e.cc; c < d; ++c) e.push(-1);
            this.of.push(e)
        }
    }

    function c() {}

    function a(a) {
        switch (a) {
            case 0:
                return 0;
            case 1:
                return t;
            case 2:
                return x;
            case 3:
                return t | m;
            case 4:
                return t | x;
            case 5:
                return x | m;
            case 6:
                return t | x | m;
            case 7:
                return m;
            default:
                return 0
        }
    }

    function n() {}
    var h = Yc.prototype;
    h.N = function(a) {
        this.W = a;
        this.c = a.c
    };
    var e = h.N.prototype;
    e.I = function() {
        var a, b, c;
        if (!this.Z && (this.K = new Image, this.K.Rm = this.Ql, this.c.qp(this.K,
                this.yj), this.wh = [], this.rq = !1, this.Je = [], this.Vx = !1, this.cp && this.cp.length))
            for (a = 0, b = this.cp.length; a < b; ++a)(c = this.cp[a]) ? this.Je.push({
                Xf: c,
                nn: [
                    [
                        [null, null],
                        [null, null]
                    ],
                    [
                        [null, null],
                        [null, null]
                    ]
                ]
            }) : this.Je.push(null)
    };
    e.ug = function(a, b, c, d, e, f) {
        if (!(0 > a || a >= this.Je.length) && this.Je[a]) {
            var h = this.Je[a].nn;
            a = new ib(this.Je[a].Xf);
            a.uh(b, c, 0);
            f && a.eD();
            d && a.IF(b / 2);
            e && a.pE(c / 2);
            h[d ? 1 : 0][e ? 1 : 0][f ? 1 : 0] = a
        }
    };
    e.Ev = function(a) {
        if (-1 === a) return null;
        var b = a & q;
        return 0 > b || b >= this.Je.length || !this.Je[b] ?
            null : this.Je[b].nn[a & t ? 1 : 0][a & x ? 1 : 0][a & m ? 1 : 0]
    };
    e.un = function() {
        var a, b, c = this.c.J;
        if (c)
            for (a = 0, b = this.wh.length; a < b; ++a) c.deleteTexture(this.wh[a]);
        B(this.wh);
        this.rq = !1
    };
    e.Dr = function(a, b, c, d, e, f, h) {
        if (!(this.rq || 0 >= a || 0 >= b)) {
            this.un();
            var g = this.K.width,
                k = this.K.height,
                m;
            for (m = d; m + b <= k; m += b + f)
                for (d = c; d + a <= g; d += a + e) this.wh.push(this.dz(d, m, a, b, h));
            this.rq = !0
        }
    };
    e.dz = function(a, b, c, d, e) {
        if (this.c.J) return this.vp(a, b, c, d, !1, !1, !1, e);
        var f = [
            [
                [null, null],
                [null, null]
            ],
            [
                [null, null],
                [null, null]
            ]
        ];
        f[0][0][0] =
            this.vp(a, b, c, d, !1, !1, !1, e);
        return {
            nn: f,
            x: a,
            y: b,
            op: c,
            Bn: d
        }
    };
    e.ot = function(a, b, c, d, e) {
        if (0 > a || a >= this.wh.length) return null;
        a = this.wh[a];
        var f = a.nn;
        b = b ? 1 : 0;
        c = c ? 1 : 0;
        d = d ? 1 : 0;
        var h = f[b][c][d];
        if (h) return h;
        h = this.vp(a.x, a.y, a.op, a.Bn, 0 !== b, 0 !== c, 0 !== d, e);
        return f[b][c][d] = h
    };
    e.vp = function(a, b, c, d, e, f, h, g) {
        var k = c,
            m = d;
        this.c.J && !g && (na(k) || (k = pa(k)), na(m) || (m = pa(m)));
        var n = document.createElement("canvas");
        n.width = k;
        n.height = m;
        var l = n.getContext("2d");
        if (this.c.B) return e ? f ? (h ? (l.rotate(Math.PI / 2), l.scale(-1,
            1)) : l.scale(-1, -1), l.translate(-k, -m)) : h ? (l.rotate(Math.PI / 2), l.translate(0, -m)) : (l.scale(-1, 1), l.translate(-k, 0)) : f ? h ? (l.rotate(-Math.PI / 2), l.translate(-k, 0)) : (l.scale(1, -1), l.translate(0, -m)) : h && (l.scale(-1, 1), l.rotate(Math.PI / 2)), l.drawImage(this.K, a, b, c, d, 0, 0, k, m), g ? n : this.c.B.createPattern(n, "repeat");
        l.drawImage(this.K, a, b, c, d, 0, 0, k, m);
        a = this.c.J.Dd(k, m, this.c.gb, !1, !g);
        this.c.J.kH(n, a);
        return a
    };
    e.ll = function() {
        this.Z || this.un()
    };
    e.ml = function() {};
    e.Xn = function() {};
    e.Tl = function() {
        this.Z ||
            this.k.length || this.un()
    };
    e.rl = function() {};
    h.L = function(a) {
        this.type = a;
        this.c = a.c
    };
    var e = h.L.prototype,
        t = -2147483648,
        x = 1073741824,
        m = 536870912,
        q = 536870911,
        u = [],
        w = [],
        v = [];
    d.prototype.clear = function() {
        var a, b, c, d, e;
        this.of.length = this.e.oc;
        a = 0;
        for (b = this.of.length; a < b; ++a)
            for (e = this.of[a], e || (e = [], this.of[a] = e), e.length = this.e.cc, c = 0, d = e.length; c < d; ++c) e[c] = -1
    };
    d.prototype.al = function() {
        if (!this.ul) {
            var a = this.e.nc,
                b = this.e.mc;
            if (!(0 >= a || 0 >= b)) {
                var c, d, e, h, k, n;
                c = 0;
                for (d = this.Ic.length; c < d; ++c) l(this.Ic[c]);
                c = 0;
                for (d = this.Tc.length; c < d; ++c) f(this.Tc[c]);
                B(this.Ic);
                B(this.Tc);
                var v = Math.min(this.e.ee, Math.floor(this.e.width / a)),
                    F = Math.min(this.e.Ce, Math.floor(this.e.height / b)),
                    v = v - this.left / a,
                    F = F - this.top / b;
                v > this.e.cc && (v = this.e.cc);
                F > this.e.oc && (F = this.e.oc);
                var z = this.e.ah,
                    C = null;
                c = 0;
                for (d = F; c < d; ++c) {
                    k = this.of[c];
                    e = 0;
                    for (h = v; e < h; ++e) n = k[e], -1 === n ? C && (this.Ic.push(C), C = null) : z || !C || n !== C.id ? (C && this.Ic.push(C), C = u.length ? u.pop() : new g, C.id = n, C.dp = n & q, C.yk = 0 !== (n & t), C.Xl = 0 !== (n & x), C.Hi = 0 !== (n & m), C.Iu =
                        C.yk || C.Xl || C.Hi, C.Ta.left = e * a + this.left, C.Ta.top = c * b + this.top, C.Ta.right = C.Ta.left + a, C.Ta.bottom = C.Ta.top + b) : C.Ta.right += a;
                    C && (this.Ic.push(C), C = null)
                }
                var C = null,
                    O = !1;
                c = 0;
                for (d = F; c < d; ++c) {
                    k = this.of[c];
                    e = 0;
                    for (h = v; e < h; ++e) n = k[e], -1 === n ? C && (this.Tc.push(C), C = null, O = !1) : (F = this.e.type.Ev(n), !C || F || O ? (C && this.Tc.push(C), C = w.length ? w.pop() : new p, C.id = n, C.Xf = F ? F : null, n = C.Ta, n.left = e * a + this.left, n.top = c * b + this.top, n.right = n.left + a, n.bottom = n.top + b, O = !!F) : C.Ta.right += a);
                    C && (this.Tc.push(C), C = null, O = !1)
                }
                if (!z)
                    for (d =
                        this.Ic.length, c = 0; c < d; ++c)
                        for (h = this.Ic[c], a = c + 1; a < d; ++a)
                            if (e = this.Ic[a], !(e.Ta.top < h.Ta.bottom)) {
                                if (e.Ta.top > h.Ta.bottom) break;
                                if (e.Ta.right > h.Ta.right || e.Ta.left > h.Ta.left) break;
                                e.id === h.id && e.Ta.left === h.Ta.left && e.Ta.right === h.Ta.right && (l(this.Ic[a]), this.Ic.splice(a, 1), --d, h.Ta.bottom += b, --a)
                            }
                d = this.Tc.length;
                for (c = 0; c < d; ++c)
                    if (h = this.Tc[c], !h.Xf)
                        for (k = h.Ta, a = c + 1; a < d; ++a)
                            if (e = this.Tc[a], h = e.Ta, !(h.top < k.bottom)) {
                                if (h.top > k.bottom) break;
                                if (h.right > k.right || h.left > k.left) break;
                                e.Xf || h.left !==
                                    k.left || h.right !== k.right || (f(this.Tc[a]), this.Tc.splice(a, 1), --d, k.bottom += b, --a)
                            }
                this.ul = !0
            }
        }
    };
    d.prototype.Dl = function(a, b, c) {
        this.of[b][a] !== c && (this.of[b][a] = c, this.ul = !1, this.e.Em = !0, this.e.ql = !0, this.e.c.H = !0)
    };
    e.I = function() {
        var a, b, c;
        this.visible = 0 === this.u[0];
        this.nc = this.u[1];
        this.mc = this.u[2];
        this.Es = this.u[3];
        this.Gs = this.u[4];
        this.Fs = this.u[5];
        this.Hs = this.u[6];
        this.ah = 0 !== this.u[7];
        this.ee = this.Yx;
        this.Ce = this.Xx;
        this.Sn = this.width;
        this.Rn = this.height;
        var d = this.nc,
            e = this.mc;
        0 === d &&
            (d = 1);
        0 === e && (e = 1);
        this.cc = Math.ceil(this.c.Nb / d);
        this.oc = Math.ceil(this.c.Mb / e);
        if (!this.type.Vx)
            for (this.type.Vx = !0, a = 0, b = this.type.Je.length; a < b; ++a)
                if (c = this.type.Je[a]) this.type.ug(a, d, e, !1, !1, !1), this.type.ug(a, d, e, !1, !1, !0), this.type.ug(a, d, e, !1, !0, !1), this.type.ug(a, d, e, !1, !0, !0), this.type.ug(a, d, e, !0, !1, !1), this.type.ug(a, d, e, !0, !1, !0), this.type.ug(a, d, e, !0, !0, !1), this.type.ug(a, d, e, !0, !0, !0);
        this.uc || (this.bd = []);
        this.bl(!0);
        this.Ex(this.Wx);
        this.type.Dr(this.nc, this.mc, this.Es, this.Gs,
            this.Fs, this.Hs, this.ah);
        this.ql = !1;
        this.Em = !0;
        this.Cr()
    };
    e.Cr = function() {
        if (this.Em) {
            var a, b, c, d, e;
            a = 0;
            for (b = this.bd.length; a < b; ++a)
                for (e = this.bd[a], c = 0, d = e.length; c < d; ++c) e[c].al();
            this.Em = !1
        }
    };
    e.Oo = function() {
        var a, b, c, d, e;
        a = 0;
        for (b = this.bd.length; a < b; ++a)
            for (e = this.bd[a], c = 0, d = e.length; c < d; ++c) e[c].ul = !1;
        this.Em = !0
    };
    e.bl = function(a) {
        var c = ua(this.width / this.nc),
            d = ua(this.height / this.mc);
        if (!(c <= this.ee && d <= this.Ce) || a) {
            var e;
            a ? (a = Math.ceil(this.Ce / this.oc), e = Math.ceil(this.ee / this.cc)) : (a = this.bd.length,
                e = Math.ceil(this.ee / this.cc), d > this.Ce && (this.Ce = d, a = Math.ceil(this.Ce / this.oc)), c > this.ee && (this.ee = c, e = Math.ceil(this.ee / this.cc)), this.Oo(), this.ql = !0, this.c.H = !0);
            for (var f, c = 0; c < a; ++c)
                if (f = this.bd[c])
                    for (d = f.length; d < e; ++d) f.push(b(this, d, c));
                else {
                    f = [];
                    for (d = 0; d < e; ++d) f.push(b(this, d, c));
                    this.bd[c] = f
                }
        }
    };
    e.fq = function(a, b) {
        if (0 > a || 0 > b) return null;
        var c = ua(b / this.oc);
        if (c >= this.bd.length) return null;
        var c = this.bd[c],
            d = ua(a / this.cc);
        return d >= c.length ? null : c[d]
    };
    e.gq = function(a, b) {
        if (0 > a || 0 > b ||
            b >= this.bd.length) return null;
        var c = this.bd[b];
        return a >= c.length ? null : c[a]
    };
    e.Ex = function(a) {
        var b = [];
        a = a.split(",");
        var c, d, e, f, h;
        c = 0;
        for (d = a.length; c < d; ++c)
            if (e = a[c], f = e.indexOf("x"), -1 < f)
                for (h = parseInt(e.substring(0, f), 10), e = e.substring(f + 1), f = parseInt(e, 10), -1 < e.indexOf("h") && (f |= t), -1 < e.indexOf("v") && (f |= x), -1 < e.indexOf("d") && (f |= m); 0 < h; --h) b.push(f);
            else f = parseInt(e, 10), -1 < e.indexOf("h") && (f |= t), -1 < e.indexOf("v") && (f |= x), -1 < e.indexOf("d") && (f |= m), b.push(f);
        for (c = a = 0; c < this.Ce; ++c)
            for (d = 0; d <
                this.ee; ++d) h = b[a++], (e = this.fq(d, c)) && e.Dl(d % this.cc, c % this.oc, h)
    };
    e.HE = function() {
        var a = "";
        if (0 >= this.ee || 0 >= this.Ce) return a;
        var b = 1,
            c = this.Pq(0, 0),
            d, e, f, h, g, k, n, l;
        h = ua(this.width / this.nc);
        e = ua(this.height / this.mc);
        for (d = 0; d < e; ++d)
            for (f = 0 === d ? 1 : 0; f < h; ++f) g = this.Pq(f, d), g === c ? ++b : (-1 === c ? (k = -1, c = l = n = !1) : (k = c & q, n = 0 !== (c & t), l = 0 !== (c & x), c = 0 !== (c & m)), a = 1 === b ? a + ("" + k) : a + ("" + b + "x" + k), n && (a += "h"), l && (a += "v"), c && (a += "d"), a += ",", b = 1, c = g); - 1 === c ? (k = -1, c = l = n = !1) : (k = c & q, n = 0 !== (c & t), l = 0 !== (c & x), c = 0 !== (c & m));
        a = 1 === b ? a + ("" + k) : a + ("" + b + "x" + k);
        n && (a += "h");
        l && (a += "v");
        c && (a += "d");
        return a
    };
    e.Pq = function(a, b) {
        a = Math.floor(a);
        b = Math.floor(b);
        if (0 > a || 0 > b || a >= this.ee || b >= this.Ce) return -1;
        var c = this.fq(a, b);
        return c ? c.of[b % this.oc][a % this.cc] : -1
    };
    e.Dl = function(a, b, c) {
        a = Math.floor(a);
        b = Math.floor(b);
        if (0 > a || 0 > b || a >= this.ee || b >= this.Ce) return -1;
        var d = this.fq(a, b);
        if (!d) return -1;
        d.Dl(a % this.cc, b % this.oc, c)
    };
    e.oy = function(a) {
        return Math.floor((a - this.x) / (this.cc * this.nc))
    };
    e.qy = function(a) {
        return Math.floor((a - this.y) /
            (this.oc * this.mc))
    };
    e.mH = function(a) {
        return Math.floor((a - this.x) / this.nc)
    };
    e.nH = function(a) {
        return Math.floor((a - this.y) / this.mc)
    };
    e.wE = function(a, b) {
        var c = this.qy(a.top),
            d = this.oy(a.right),
            e = this.qy(a.bottom),
            f, h, g;
        for (f = this.oy(a.left); f <= d; ++f)
            for (h = c; h <= e; ++h)
                if (g = this.gq(f, h)) g.al(), Ea(b, g.Tc)
    };
    e.YG = function(a, b) {
        var c = this.Pq(this.mH(a), this.nH(b));
        if (-1 === c) return !1;
        c = this.type.Ev(c);
        if (!c) return !0;
        var d = Math.floor((b - this.y) / this.mc) * this.mc + this.y;
        a -= Math.floor((a - this.x) / this.nc) * this.nc +
            this.x;
        return c.wc(a, b - d)
    };
    e.zc = function(a) {
        var b, c, d, e, f, h;
        b = 0;
        for (c = this.bd.length; b < c; ++b)
            for (f = this.bd[b], d = 0, e = f.length; d < e; ++d) h = f[d], h.al(), Ea(a, h.Tc)
    };
    e.yd = function() {
        var a, b, c, d, e;
        a = 0;
        for (b = this.bd.length; a < b; ++a) {
            e = this.bd[a];
            c = 0;
            for (d = e.length; c < d; ++c) {
                for (var h = e[c], g = void 0, k = void 0, g = 0, k = h.Ic.length; g < k; ++g) l(h.Ic[g]);
                B(h.Ic);
                g = 0;
                for (k = h.Tc.length; g < k; ++g) f(h.Tc[g]);
                B(h.Tc);
                1E3 > v.length && v.push(h)
            }
            B(e)
        }
        B(this.bd)
    };
    e.$a = function() {
        this.bl();
        return {
            w: ua(this.width / this.nc),
            h: ua(this.height /
                this.mc),
            d: this.HE()
        }
    };
    e.lb = function(a) {
        this.ee = a.w;
        this.Ce = a.h;
        this.bl(!0);
        this.Ex(a.d);
        this.ql = !0;
        this.Oo()
    };
    e.ud = function(a) {
        if (!(0 >= this.nc || 0 >= this.mc)) {
            this.type.Dr(this.nc, this.mc, this.Es, this.Gs, this.Fs, this.Hs, this.ah);
            if (this.width !== this.Sn || this.height !== this.Rn) this.ql = !0, this.Oo(), this.Cr(), this.Sn = this.width, this.Rn = this.height;
            a.globalAlpha = this.opacity;
            var b = this.F,
                c = b.Wa,
                d = b.Xa,
                e = b.bb,
                b = b.ab,
                f = this.x,
                h = this.y,
                g = this.ah,
                k;
            this.c.hd && (f = Math.round(f), h = Math.round(h));
            var m = this.cc *
                this.nc,
                n = this.oc * this.mc,
                l = Math.floor((c - f) / m),
                m = Math.floor((e - f) / m),
                p = Math.floor((d - h) / n),
                n = Math.floor((b - h) / n),
                q = f % this.nc,
                w = h % this.mc;
            this.ah && (w = q = 0);
            if (0 !== q || 0 !== w) a.save(), a.translate(q, w), f -= q, h -= w, c -= q, d -= w, e -= q, b -= w;
            for (var t, v, u, x, K, N, S, Y, T; l <= m; ++l)
                for (t = p; t <= n; ++t)
                    if (v = this.gq(l, t))
                        for (v.al(), u = 0, x = v.Ic.length; u < x; ++u) K = v.Ic[u], -1 !== K.id && (k = K.Ta, N = k.left + f, S = k.top + h, Y = k.right + f, k = k.bottom + h, N > e || Y < c || S > b || k < d || (T = this.type.ot(K.dp, K.yk, K.Xl, K.Hi, this.ah), g ? a.drawImage(T, N, S) : (a.fillStyle =
                            this.type.ot(K.dp, K.yk, K.Xl, K.Hi, this.ah), a.fillRect(N, S, Y - N, k - S))));
            0 === q && 0 === w || a.restore()
        }
    };
    var k = new xa(0, 0, 1, 1);
    e.Gg = function(a) {
        this.yc(a)
    };
    e.yc = function(a) {
        if (!(0 >= this.nc || 0 >= this.mc)) {
            this.type.Dr(this.nc, this.mc, this.Es, this.Gs, this.Fs, this.Hs, this.ah);
            if (this.width !== this.Sn || this.height !== this.Rn) this.ql = !0, this.Oo(), this.Cr(), this.Sn = this.width, this.Rn = this.height;
            a.ag(this.opacity);
            var b = this.type.wh,
                c = this.F,
                d = c.Wa,
                e = c.Xa,
                f = c.bb,
                c = c.ab,
                h = this.x,
                g = this.y,
                m;
            this.c.hd && (h = Math.round(h),
                g = Math.round(g));
            var n = this.cc * this.nc,
                l = this.oc * this.mc,
                p = Math.floor((f - h) / n),
                q = Math.floor((e - g) / l),
                l = Math.floor((c - g) / l),
                w, t, v, u, x, V, K, N, S, Y, T, ka, la, Z, Ua, bb, cb;
            for (Ua = Math.floor((d - h) / n); Ua <= p; ++Ua)
                for (bb = q; bb <= l; ++bb)
                    if (cb = this.gq(Ua, bb))
                        for (cb.al(), n = 0, w = cb.Ic.length; n < w; ++n) t = cb.Ic[n], -1 !== t.id && (m = t.Ta, v = m.left + h, u = m.top + g, x = m.right + h, m = m.bottom + g, v > f || x < d || u > c || m < e || (a.Zc(b[t.dp]), k.right = (x - v) / this.nc, k.bottom = (m - u) / this.mc, t.Iu ? (t.Hi && (Z = k.right, k.right = k.bottom, k.bottom = Z), K = V = 0, N = k.right,
                            S = 0, Y = k.right, T = k.bottom, ka = 0, la = k.bottom, t.Hi && (Z = ka, ka = N, N = Z, Z = la, la = S, S = Z), t.yk && (Z = V, V = N, N = Z, Z = K, K = S, S = Z, Z = ka, ka = Y, Y = Z, Z = la, la = T, T = Z), t.Xl && (Z = V, V = ka, ka = Z, Z = K, K = la, la = Z, Z = N, N = Y, Y = Z, Z = S, S = T, T = Z), a.nG(v, u, x, u, x, m, v, m, V, K, N, S, Y, T, ka, la)) : a.Fe(v, u, x, u, x, m, v, m, k)))
        }
    };
    c.prototype.uf = function() {
        return !0
    };
    h.g = new c;
    n.prototype.mt = function(a, b) {
        this.bl();
        this.Dl(a, b, -1)
    };
    n.prototype.Op = function(b, c, d, e) {
        this.bl();
        this.Dl(b, c, d & q | a(e))
    };
    n.prototype.yp = function(a, b) {
        var c = new Image,
            d = this;
        c.onload = function() {
            var a =
                d.type;
            a.un();
            a.K = c;
            d.c.H = !0;
            d.c.trigger(Yc.prototype.g.uf, d)
        };
        "data:" !== a.substr(0, 5) && 0 === b && (c.crossOrigin = "anonymous");
        this.c.Bl(c, a)
    };
    h.j = new n;
    h.n = new function() {}
})();

function Zc(g) {
    this.c = g
}
(function() {
    function g(a) {
        n = a.x;
        h = a.y;
        e = a.z
    }

    function l(a, b, c, d) {
        var e;
        e = t.length ? t.pop() : new p;
        e.init(a, b, c, d);
        return e
    }

    function p() {
        this.Kl = this.id = this.y = this.x = this.Yo = this.Xo = this.sr = this.time = this.Bs = 0;
        this.Sl = this.hp = !1
    }

    function f() {}

    function b() {}
    var d = Zc.prototype;
    d.N = function(a) {
        this.W = a;
        this.c = a.c
    };
    d.N.prototype.I = function() {};
    d.L = function(a) {
        this.type = a;
        this.c = a.c;
        this.touches = [];
        this.Hr = !1
    };
    var c = d.L.prototype,
        a = {
            left: 0,
            top: 0
        };
    c.Ch = function(a) {
        var b, c;
        b = 0;
        for (c = this.touches.length; b < c; b++)
            if (this.touches[b].id ===
                a) return b;
        return -1
    };
    var n = 0,
        h = 0,
        e = 0,
        t = [];
    p.prototype.init = function(a, b, c, d) {
        var e = $a();
        this.Bs = this.sr = this.time = e;
        this.Xo = a;
        this.Yo = b;
        this.x = a;
        this.y = b;
        this.pressure = this.height = this.width = 0;
        this.id = c;
        this.Kl = d;
        this.Sl = this.hp = !1
    };
    p.prototype.update = function(a, b, c, d, e, f) {
        this.sr = this.time;
        this.time = a;
        this.x = b;
        this.y = c;
        this.width = d;
        this.height = e;
        this.pressure = f;
        !this.Sl && 15 <= Ta(this.Xo, this.Yo, this.x, this.y) && (this.Sl = !0)
    };
    p.prototype.GF = function(a, b) {
        !this.hp && 500 <= $a() - this.Bs && !this.Sl && 15 > Ta(this.Xo,
            this.Yo, this.x, this.y) && (this.hp = !0, a.rf = this.Kl, a.pi = this.id, a.Ni = b, a.c.trigger(Zc.prototype.g.Ht, a), a.Cf = this.x, a.Df = this.y, a.c.trigger(Zc.prototype.g.zA, a), a.Ni = 0)
    };
    var x = -1E3,
        m = -1E3,
        q = -1E4;
    p.prototype.xw = function(a, b) {
        if (!this.hp) {
            var c = $a();
            333 >= c - this.Bs && !this.Sl && 15 > Ta(this.Xo, this.Yo, this.x, this.y) && (a.rf = this.Kl, a.pi = this.id, a.Ni = b, 666 >= c - q && 25 > Ta(x, m, this.x, this.y) ? (a.c.trigger(Zc.prototype.g.uA, a), a.Cf = this.x, a.Df = this.y, a.c.trigger(Zc.prototype.g.vA, a), m = x = -1E3, q = -1E4) : (a.c.trigger(Zc.prototype.g.KA,
                a), a.Cf = this.x, a.Df = this.y, a.c.trigger(Zc.prototype.g.LA, a), x = this.x, m = this.y, q = c), a.Ni = 0)
        }
    };
    c.I = function() {
        this.oF = !("undefined" === typeof window.c2isWindows8 || !window.c2isWindows8);
        this.Ni = this.pi = this.rf = this.Df = this.Cf = this.Au = this.zu = this.yu = this.EC = this.DC = this.CC = this.po = this.oo = this.no = 0;
        this.iH = 0 !== this.u[0];
        var a = 0 < this.c.Pc ? document : this.c.canvas,
            b = document;
        this.c.Cc ? b = a = window.Canvas : this.c.vd && (b = a = window);
        var c = this;
        "undefined" !== typeof PointerEvent ? (a.addEventListener("pointerdown",
            function(a) {
                c.Uw(a)
            }, !1), a.addEventListener("pointermove", function(a) {
            c.Tw(a)
        }, !1), b.addEventListener("pointerup", function(a) {
            c.jo(a, !1)
        }, !1), b.addEventListener("pointercancel", function(a) {
            c.jo(a, !0)
        }, !1), this.c.canvas && (this.c.canvas.addEventListener("MSGestureHold", function(a) {
            a.preventDefault()
        }, !1), document.addEventListener("MSGestureHold", function(a) {
            a.preventDefault()
        }, !1), this.c.canvas.addEventListener("gesturehold", function(a) {
            a.preventDefault()
        }, !1), document.addEventListener("gesturehold",
            function(a) {
                a.preventDefault()
            }, !1))) : window.navigator.msPointerEnabled ? (a.addEventListener("MSPointerDown", function(a) {
            c.Uw(a)
        }, !1), a.addEventListener("MSPointerMove", function(a) {
            c.Tw(a)
        }, !1), b.addEventListener("MSPointerUp", function(a) {
            c.jo(a, !1)
        }, !1), b.addEventListener("MSPointerCancel", function(a) {
            c.jo(a, !0)
        }, !1), this.c.canvas && (this.c.canvas.addEventListener("MSGestureHold", function(a) {
            a.preventDefault()
        }, !1), document.addEventListener("MSGestureHold", function(a) {
            a.preventDefault()
        }, !1))) : (a.addEventListener("touchstart",
            function(a) {
                c.Xw(a)
            }, !1), a.addEventListener("touchmove", function(a) {
            c.Ww(a)
        }, !1), b.addEventListener("touchend", function(a) {
            c.Pr(a, !1)
        }, !1), b.addEventListener("touchcancel", function(a) {
            c.Pr(a, !0)
        }, !1));
        if (this.oF) {
            var d = function(a) {
                    a = a.reading;
                    c.yu = a.accelerationX;
                    c.zu = a.accelerationY;
                    c.Au = a.accelerationZ
                },
                e = function(a) {
                    a = a.reading;
                    c.no = a.yawDegrees;
                    c.oo = a.pitchDegrees;
                    c.po = a.rollDegrees
                },
                f = Windows.Devices.Sensors.Accelerometer.getDefault();
            f && (f.reportInterval = Math.max(f.minimumReportInterval, 16),
                f.addEventListener("readingchanged", d));
            var h = Windows.Devices.Sensors.Inclinometer.getDefault();
            h && (h.reportInterval = Math.max(h.minimumReportInterval, 16), h.addEventListener("readingchanged", e));
            document.addEventListener("visibilitychange", function() {
                document.hidden || document.msHidden ? (f && f.removeEventListener("readingchanged", d), h && h.removeEventListener("readingchanged", e)) : (f && f.addEventListener("readingchanged", d), h && h.addEventListener("readingchanged", e))
            }, !1)
        } else window.addEventListener("deviceorientation",
            function(a) {
                c.no = a.alpha || 0;
                c.oo = a.beta || 0;
                c.po = a.gamma || 0
            }, !1), window.addEventListener("devicemotion", function(a) {
            a.accelerationIncludingGravity && (c.CC = a.accelerationIncludingGravity.x || 0, c.DC = a.accelerationIncludingGravity.y || 0, c.EC = a.accelerationIncludingGravity.z || 0);
            a.acceleration && (c.yu = a.acceleration.x || 0, c.zu = a.acceleration.y || 0, c.Au = a.acceleration.z || 0)
        }, !1);
        this.iH && !this.c.kb && (jQuery(document).mousemove(function(a) {
            c.Nr(a)
        }), jQuery(document).mousedown(function(a) {
            c.Mr(a)
        }), jQuery(document).mouseup(function(a) {
            c.Or(a)
        }));
        !this.c.Ph && this.c.Uc && navigator.accelerometer && navigator.accelerometer.watchAcceleration && navigator.accelerometer.watchAcceleration(g, null, {
            frequency: 40
        });
        this.c.ZG(this)
    };
    c.Tw = function(b) {
        if (b.pointerType !== b.MSPOINTER_TYPE_MOUSE && "mouse" !== b.pointerType) {
            b.preventDefault && b.preventDefault();
            var c = this.Ch(b.pointerId),
                d = $a();
            if (0 <= c) {
                var e = this.c.kb ? a : jQuery(this.c.canvas).offset(),
                    c = this.touches[c];
                2 > d - c.time || c.update(d, b.pageX - e.left, b.pageY - e.top, b.width || 0, b.height || 0, b.pressure || 0)
            }
        }
    };
    c.Uw =
        function(b) {
            if (b.pointerType !== b.MSPOINTER_TYPE_MOUSE && "mouse" !== b.pointerType) {
                b.preventDefault && pb(b) && b.preventDefault();
                var c = this.c.kb ? a : jQuery(this.c.canvas).offset(),
                    d = b.pageX - c.left,
                    c = b.pageY - c.top;
                $a();
                this.rf = this.touches.length;
                this.pi = b.pointerId;
                this.touches.push(l(d, c, b.pointerId, this.rf));
                this.c.Dc = !0;
                this.c.trigger(Zc.prototype.g.Pt, this);
                this.c.trigger(Zc.prototype.g.Gp, this);
                this.Cf = d;
                this.Df = c;
                this.c.trigger(Zc.prototype.g.Fp, this);
                this.c.Dc = !1
            }
        };
    c.jo = function(a, b) {
        if (a.pointerType !==
            a.MSPOINTER_TYPE_MOUSE && "mouse" !== a.pointerType) {
            a.preventDefault && pb(a) && a.preventDefault();
            var c = this.Ch(a.pointerId);
            this.rf = 0 <= c ? this.touches[c].Kl : -1;
            this.pi = 0 <= c ? this.touches[c].id : -1;
            this.c.Dc = !0;
            this.c.trigger(Zc.prototype.g.Ot, this);
            this.c.trigger(Zc.prototype.g.Ep, this);
            0 <= c && (b || this.touches[c].xw(this, c), 100 > t.length && t.push(this.touches[c]), this.touches.splice(c, 1));
            this.c.Dc = !1
        }
    };
    c.Ww = function(b) {
        b.preventDefault && b.preventDefault();
        var c = $a(),
            d, e, f, h;
        d = 0;
        for (e = b.changedTouches.length; d <
            e; d++)
            if (f = b.changedTouches[d], h = this.Ch(f.identifier), 0 <= h) {
                var g = this.c.kb ? a : jQuery(this.c.canvas).offset();
                h = this.touches[h];
                2 > c - h.time || h.update(c, f.pageX - g.left, f.pageY - g.top, 2 * (f.aJ || f.kJ || f.RI || f.VI || 0), 2 * (f.bJ || f.lJ || f.SI || f.WI || 0), f.II || f.jJ || f.QI || f.TI || 0)
            }
    };
    c.Xw = function(b) {
        b.preventDefault && pb(b) && b.preventDefault();
        var c = this.c.kb ? a : jQuery(this.c.canvas).offset();
        $a();
        this.c.Dc = !0;
        var d, e, f, h;
        d = 0;
        for (e = b.changedTouches.length; d < e; d++)
            if (f = b.changedTouches[d], h = this.Ch(f.identifier), -1 ===
                h) {
                h = f.pageX - c.left;
                var g = f.pageY - c.top;
                this.rf = this.touches.length;
                this.pi = f.identifier;
                this.touches.push(l(h, g, f.identifier, this.rf));
                this.c.trigger(Zc.prototype.g.Pt, this);
                this.c.trigger(Zc.prototype.g.Gp, this);
                this.Cf = h;
                this.Df = g;
                this.c.trigger(Zc.prototype.g.Fp, this)
            }
        this.c.Dc = !1
    };
    c.Pr = function(a, b) {
        a.preventDefault && pb(a) && a.preventDefault();
        this.c.Dc = !0;
        var c, d, e;
        c = 0;
        for (d = a.changedTouches.length; c < d; c++) e = a.changedTouches[c], e = this.Ch(e.identifier), 0 <= e && (this.rf = this.touches[e].Kl, this.pi =
            this.touches[e].id, this.c.trigger(Zc.prototype.g.Ot, this), this.c.trigger(Zc.prototype.g.Ep, this), b || this.touches[e].xw(this, e), 100 > t.length && t.push(this.touches[e]), this.touches.splice(e, 1));
        this.c.Dc = !1
    };
    c.zc = function() {
        return this.c.Uc && 0 === this.no && 0 !== e ? 90 * e : this.no
    };
    c.Dh = function() {
        return this.c.Uc && 0 === this.oo && 0 !== h ? 90 * h : this.oo
    };
    c.Nk = function() {
        return this.c.Uc && 0 === this.po && 0 !== n ? 90 * n : this.po
    };
    c.Mr = function(a) {
        this.Xw({
            changedTouches: [{
                pageX: a.pageX,
                pageY: a.pageY,
                identifier: 0
            }]
        });
        this.Hr = !0
    };
    c.Nr = function(a) {
        this.Hr && this.Ww({
            changedTouches: [{
                pageX: a.pageX,
                pageY: a.pageY,
                identifier: 0
            }]
        })
    };
    c.Or = function(a) {
        a.preventDefault && this.c.Cn && !this.c.Pg && a.preventDefault();
        this.c.Cn = !0;
        this.Pr({
            changedTouches: [{
                pageX: a.pageX,
                pageY: a.pageY,
                identifier: 0
            }]
        });
        this.Hr = !1
    };
    c.zj = function() {
        var a, b, c, d = $a();
        a = 0;
        for (b = this.touches.length; a < b; ++a) c = this.touches[a], c.time <= d - 50 && (c.sr = d), c.GF(this, a)
    };
    f.prototype.Gp = function() {
        return !0
    };
    f.prototype.Ep = function() {
        return !0
    };
    f.prototype.Fp = function(a) {
        return a ?
            this.c.Nl(a, this.Cf, this.Df) : !1
    };
    var u = [];
    f.prototype.Vz = function(a) {
        if (!a) return !1;
        var b = a.V(),
            c = b.tb(),
            d, e, f, h, g, m;
        f = 0;
        for (h = c.length; f < h; f++) {
            var n = c[f];
            n.jb();
            g = 0;
            for (m = this.touches.length; g < m; g++)
                if (e = this.touches[g], d = n.F.nb(e.x, e.y, !0), e = n.F.nb(e.x, e.y, !1), n.wc(d, e)) {
                    u.push(n);
                    break
                }
        }
        return u.length ? (b.X = !1, Da(b.k, u), a.Bd(), B(u), !0) : !1
    };
    f.prototype.Pt = function(a) {
        a = Math.floor(a);
        return a === this.rf
    };
    f.prototype.Ot = function(a) {
        a = Math.floor(a);
        return a === this.rf
    };
    f.prototype.Ht = function() {
        return !0
    };
    f.prototype.KA = function() {
        return !0
    };
    f.prototype.uA = function() {
        return !0
    };
    f.prototype.zA = function(a) {
        return a ? this.c.Nl(a, this.Cf, this.Df) : !1
    };
    f.prototype.LA = function(a) {
        return a ? this.c.Nl(a, this.Cf, this.Df) : !1
    };
    f.prototype.vA = function(a) {
        return a ? this.c.Nl(a, this.Cf, this.Df) : !1
    };
    d.g = new f;
    b.prototype.WB = function(a) {
        a.G(this.touches.length)
    };
    b.prototype.kh = function(a, b) {
        var c = this.Ni;
        if (0 > c || c >= this.touches.length) a.C(0);
        else {
            var d, e, f, h, g;
            ia(b) ? (d = this.c.Qc(0), e = d.scale, f = d.Fb, h = d.Gc, g = d.q, d.scale =
                1, d.Fb = 1, d.Gc = 1, d.q = 0, a.C(d.nb(this.touches[c].x, this.touches[c].y, !0)), d.scale = e, d.Fb = f, d.Gc = h, d.q = g) : (d = ja(b) ? this.c.Qc(b) : this.c.ze(b)) ? a.C(d.nb(this.touches[c].x, this.touches[c].y, !0)) : a.C(0)
        }
    };
    b.prototype.gC = function(a, b, c) {
        b = this.Ch(b);
        if (0 > b) a.C(0);
        else {
            b = this.touches[b];
            var d, e, f, h;
            ia(c) ? (c = this.c.Qc(0), d = c.scale, e = c.Fb, f = c.Gc, h = c.q, c.scale = 1, c.Fb = 1, c.Gc = 1, c.q = 0, a.C(c.nb(b.x, b.y, !0)), c.scale = d, c.Fb = e, c.Gc = f, c.q = h) : (c = ja(c) ? this.c.Qc(c) : this.c.ze(c)) ? a.C(c.nb(b.x, b.y, !0)) : a.C(0)
        }
    };
    b.prototype.mh =
        function(a, b) {
            var c = this.Ni;
            if (0 > c || c >= this.touches.length) a.C(0);
            else {
                var d, e, f, h, g;
                ia(b) ? (d = this.c.Qc(0), e = d.scale, f = d.Fb, h = d.Hc, g = d.q, d.scale = 1, d.Fb = 1, d.Hc = 1, d.q = 0, a.C(d.nb(this.touches[c].x, this.touches[c].y, !1)), d.scale = e, d.Fb = f, d.Hc = h, d.q = g) : (d = ja(b) ? this.c.Qc(b) : this.c.ze(b)) ? a.C(d.nb(this.touches[c].x, this.touches[c].y, !1)) : a.C(0)
            }
        };
    b.prototype.hC = function(a, b, c) {
        b = this.Ch(b);
        if (0 > b) a.C(0);
        else {
            b = this.touches[b];
            var d, e, f, h;
            ia(c) ? (c = this.c.Qc(0), d = c.scale, e = c.Fb, f = c.Hc, h = c.q, c.scale = 1, c.Fb =
                1, c.Hc = 1, c.q = 0, a.C(c.nb(b.x, b.y, !1)), c.scale = d, c.Fb = e, c.Hc = f, c.q = h) : (c = ja(c) ? this.c.Qc(c) : this.c.ze(c)) ? a.C(c.nb(b.x, b.y, !1)) : a.C(0)
        }
    };
    b.prototype.XB = function(a) {
        a.C(this.pi)
    };
    d.n = new b
})();

function $c(g) {
    this.c = g
}
(function() {
    function g() {}

    function l() {}

    function p() {}
    var f = $c.prototype;
    f.N = function(a) {
        this.W = a;
        this.c = a.c
    };
    f.N.prototype.I = function() {};
    f.L = function(a) {
        this.type = a;
        this.c = a.c
    };
    var b = f.L.prototype,
        d = "",
        c = "undefined" !== typeof window.is_scirra_arcade;
    c && (d = "arcade" + window.scirra_arcade_id);
    var a = !1;
    try {
        localStorage.getItem("test"), a = !0
    } catch (n) {
        a = !1
    }
    b.I = function() {
        a || fa("[Construct 2] Webstorage plugin: local storage is not supported on this platform.")
    };
    g.prototype.Rt = function() {
        return !0
    };
    f.g = new g;
    l.prototype.RB = function(b, c) {
        if (a) try {
            localStorage.setItem(d + b, c)
        } catch (f) {
            this.c.trigger($c.prototype.g.Rt, this)
        }
    };
    l.prototype.vi = function(b, e) {
        if (a) {
            var f;
            try {
                f = JSON.parse(b)
            } catch (g) {
                return
            }
            if (f.c2dictionary) {
                f = f.data;
                0 !== e || c || localStorage.clear();
                for (var m in f)
                    if (f.hasOwnProperty(m)) try {
                        localStorage.setItem(d + m, f[m])
                    } catch (n) {
                        this.c.trigger($c.prototype.g.Rt, this);
                        break
                    }
            }
        }
    };
    f.j = new l;
    p.prototype.hA = function(b, c) {
        a ? b.aa(localStorage.getItem(d + c) || "") : b.aa("")
    };
    p.prototype.tf = function(b) {
        if (a) {
            var e = {},
                f, g, m;
            f = 0;
            for (g = localStorage.length; f < g; f++) m = localStorage.key(f), c ? m.substr(0, d.length) === d && (e[m.substr(d.length)] = localStorage.getItem(m)) : e[m] = localStorage.getItem(m);
            b.aa(JSON.stringify({
                c2dictionary: !0,
                data: e
            }))
        } else b.aa("")
    };
    f.n = new p
})();

function ad(g, l, p, f, b, d) {
    function c(a) {
        return m == g[a] && q == g[a + 1] && u == g[a + 2]
    }

    function a(a) {
        g[a] = h;
        g[a + 1] = e;
        g[a + 2] = t;
        g[a + 3] = 255
    }

    function n(a) {
        c(x + 4 * a) ? v[a] || (w.push([f + a, b]), v[a] = !0) : v[a] && (v[a] = !1)
    }
    if (!(0 > f || f > l || 0 > b || b > p)) {
        d = $("<div></div>").css("background-color", d).css("background-color");
        "transparent" == d && (d = "rgb(0,0,0)");
        d = d.slice(4, -1).split(",");
        var h = d[0],
            e = d[1],
            t = d[2],
            x = 4 * (b * l + f),
            m = g[x],
            q = g[x + 1],
            u = g[x + 2];
        if (h != m || e != q || t != u)
            for (var w = [
                    [f, b]
                ]; w.length;) {
                d = w.pop();
                f = d[0];
                b = d[1];
                for (x = 4 * (b * l +
                        f); 0 <= b-- && c(x);) x -= 4 * l;
                x += 4 * l;
                ++b;
                var v = [];
                v[-1] = !1;
                for (v[1] = !1; b++ < p - 1 && c(x);) a(x), 0 < f && n(-1), f < l - 1 && n(1), x += 4 * l
            }
    }
}

function X(g) {
    this.c = g
}
(function() {
    var g = X.prototype;
    g.N = function(f) {
        this.W = f;
        this.c = f.c
    };
    g.N.prototype.I = function() {
        this.K = new Image;
        this.K.src = this.yj;
        this.K.Rm = this.Ql;
        this.c.ri.push(this.K)
    };
    g.L = function(f) {
        this.type = f;
        this.c = f.c
    };
    var l = g.L.prototype,
        p = "lighter xor copy destination-over source-in destination-in source-out destination-out source-atop destination-atop".split(" ");
    l.cv = function(f) {
        return 0 >= f || 11 <= f ? "source-over" : p[f - 1]
    };
    l.dH = function(f) {
        var b = this.c.S;
        if (b) switch (this.ib = b.ONE, this.eb = b.ONE_MINUS_SRC_ALPHA,
            f) {
            case 1:
                this.eb = this.ib = b.ONE;
                break;
            case 3:
                this.ib = b.ONE;
                this.eb = b.ZERO;
                break;
            case 4:
                this.ib = b.ONE_MINUS_DST_ALPHA;
                this.eb = b.ONE;
                break;
            case 5:
                this.ib = b.DST_ALPHA;
                this.eb = b.ZERO;
                break;
            case 6:
                this.ib = b.ZERO;
                this.eb = b.SRC_ALPHA;
                break;
            case 7:
                this.ib = b.ONE_MINUS_DST_ALPHA;
                this.eb = b.ZERO;
                break;
            case 8:
                this.ib = b.ZERO;
                this.eb = b.ONE_MINUS_SRC_ALPHA;
                break;
            case 9:
                this.ib = b.DST_ALPHA;
                this.eb = b.ONE_MINUS_SRC_ALPHA;
                break;
            case 10:
                this.ib = b.ONE_MINUS_DST_ALPHA, this.eb = b.SRC_ALPHA
        }
    };
    l.I = function() {
        this.visible = 0 ===
            this.u[0];
        this.Wd = this.cv(this.u[1]);
        this.dH(this.u[1]);
        this.canvas = document.createElement("canvas");
        this.canvas.width = this.width;
        this.canvas.height = this.height;
        this.B = this.canvas.getContext("2d");
        this.B.drawImage(this.type.K, 0, 0, this.width, this.height);
        this.wj = document.createElement("canvas");
        this.XG = this.wj.getContext("2d");
        this.wb = !0;
        this.qj = new xa(0, 0, 0, 0);
        this.ba = [];
        this.zf = {};
        this.vc = [];
        this.nq = {};
        this.Yc = [];
        this.ka = [];
        this.Mo = {};
        this.Y = [];
        this.Kn = !1;
        this.el = this.Ye = this.Af = this.nr = 0;
        this.Pv = !1;
        this.Mg = [null];
        this.Bg = [null];
        this.kF = 1 === this.u[3];
        this.BF = !0
    };
    l.yd = function() {};
    l.$a = function() {
        return {
            canvas_w: this.canvas.width,
            canvas_h: this.canvas.height,
            image: this.B.getImageData(0, 0, this.canvas.width, this.canvas.height).data
        }
    };
    l.lb = function(f) {
        for (var b = this.canvas.width = f.canvas_w, d = this.canvas.height = f.canvas_h, c = this.B.getImageData(0, 0, this.canvas.width, this.canvas.height).data, a = 0; a < d; ++a)
            for (var g = 0; g < b; ++g)
                for (var h = 4 * (a * b + g), e = 0; 4 > e; ++e) c[h + e] = f.image[h + e]
    };
    l.bv = function(f, b) {
        for (var d in f)
            if (0 !=
                f[d].visible || 0 != this.c.Rx(this, f[d])) b.save(), b.scale(this.canvas.width / this.width, this.canvas.height / this.height), b.rotate(-this.q), b.translate(-this.Nc.qb, -this.Nc.rb), b.globalCompositeOperation = f[d].Wd, f[d].ud(b), b.restore()
    };
    l.ud = function(f) {
        f.save();
        f.globalAlpha = this.opacity;
        f.globalCompositeOperation = this.Wd;
        var b = this.x,
            d = this.y;
        this.c.hd && (b = Math.round(b), d = Math.round(d));
        f.translate(b, d);
        f.rotate(this.q);
        f.drawImage(this.canvas, 0 - this.Ab * this.width, 0 - this.Bb * this.height, this.width, this.height);
        f.restore()
    };
    l.yc = function(f) {
        f.$f(this.ib, this.eb);
        this.wb && (this.Ds && f.deleteTexture(this.Ds), this.Ds = f.Tf(this.canvas, !1, this.kF), this.wb = !1);
        f.Zc(this.Ds);
        f.ag(this.opacity);
        var b = this.Nc;
        if (this.c.hd) {
            var d = Math.round(this.x) - this.x,
                c = Math.round(this.y) - this.y;
            f.fi(b.qb + d, b.rb + c, b.Qb + d, b.Rb + c, b.Ib + d, b.Jb + c, b.Gb + d, b.Hb + c)
        } else f.fi(b.qb, b.rb, b.Qb, b.Rb, b.Ib, b.Jb, b.Gb, b.Hb)
    };
    g.g = {};
    g.g.uf = function() {
        return !0
    };
    g.j = {};
    l = g.j;
    l.pm = function(f) {
        this.Wd = this.cv(f);
        this.wb = this.c.H = !0
    };
    l.BH = function(f,
        b, d) {
        var c = this.B;
        c.fillStyle = d;
        c.fillRect(f, b, 1, 1);
        this.wb = this.c.H = !0
    };
    l.jB = function(f, b) {
        this.canvas.width = f;
        this.canvas.height = b;
        this.wb = this.c.H = !0
    };
    l.QA = function(f) {
        var b = this.B;
        this.jb();
        f = f.V();
        this.bv(f.X ? f.type.k : f.k, b);
        this.wb = this.c.H = !0
    };
    l.SH = function(f) {
        if (!f || !f.visible) return !1;
        var b = this.B;
        this.jb();
        this.wj.width = this.canvas.width;
        this.wj.height = this.canvas.height;
        var d = this.XG;
        d.clearRect(0, 0, this.wj.width, this.wj.height);
        this.bv(f.k, d);
        b.drawImage(this.wj, 0, 0, this.width, this.height);
        this.wb = this.c.H = !0
    };
    l.zH = function(f, b, d, c, a) {
        this.B.fillStyle = a;
        this.B.fillRect(f, b, d, c);
        this.wb = this.c.H = !0
    };
    l.uH = function(f, b, d, c) {
        this.B.clearRect(f, b, d, c);
        this.wb = this.c.H = !0
    };
    l.AH = function(f, b, d, c, a, g) {
        var h = this.B;
        h.strokeStyle = a;
        h.lineWidth = g;
        h.beginPath();
        h.moveTo(f, b);
        h.lineTo(d, c);
        h.stroke();
        this.wb = this.c.H = !0
    };
    l.Ky = function() {
        this.B.clearRect(0, 0, this.canvas.width, this.canvas.height);
        this.wb = this.c.H = !0
    };
    l.nt = function(f) {
        this.B.fillStyle = f;
        this.B.fillRect(0, 0, this.canvas.width, this.canvas.height);
        this.wb = this.c.H = !0
    };
    l.GI = function(f, b, d) {
        var c = this.B,
            a = this.canvas.width,
            g = this.canvas.height,
            h;
        switch (f) {
            case 0:
                h = c.createLinearGradient(0, 0, a, 0);
                break;
            case 1:
                h = c.createLinearGradient(0, 0, 0, g);
                break;
            case 2:
                h = c.createLinearGradient(0, 0, a, g);
                break;
            case 3:
                h = c.createLinearGradient(a, 0, 0, g);
                break;
            case 4:
                h = c.createRadialGradient(a / 2, g / 2, 0, a / 2, g / 2, Math.sqrt(a ^ 2 + g ^ 2) / 2)
        }
        try {
            h.addColorStop(0, b)
        } catch (e) {
            h.addColorStop(0, "black")
        }
        try {
            h.addColorStop(1, d)
        } catch (l) {
            h.addColorStop(1, "black")
        }
        this.B.fillStyle =
            h;
        this.B.fillRect(0, 0, a, g);
        this.wb = this.c.H = !0
    };
    l.beginPath = function() {
        this.B.beginPath()
    };
    l.FI = function(f, b) {
        var d = this.B;
        d.strokeStyle = f;
        d.lineWidth = b;
        d.stroke();
        this.wb = this.c.H = !0
    };
    l.gJ = function(f, b) {
        var d = this.B;
        d.lineCap = ["butt", "round", "square"][f];
        d.lineJoin = ["round", "bevel", "milet"][b]
    };
    l.HI = function(f) {
        this.B.fillStyle = f;
        this.B.fill();
        this.wb = this.c.H = !0
    };
    l.moveTo = function(f, b) {
        this.B.moveTo(f, b)
    };
    l.lineTo = function(f, b) {
        this.B.lineTo(f, b)
    };
    l.arc = function(f, b, d, c, a, g) {
        this.B.arc(f, b, d, D(c),
            D(a), 1 == g)
    };
    l.EI = function(f, b, d, c, a) {
        var g = this.B;
        g.strokeStyle = c;
        g.lineWidth = a;
        g.beginPath();
        g.arc(f, b, d, 0, D(360), !0);
        g.stroke();
        this.wb = this.c.H = !0
    };
    l.bezierCurveTo = function(f, b, d, c, a, g) {
        this.B.bezierCurveTo(f, b, d, c, a, g)
    };
    l.quadraticCurveTo = function(f, b, d, c) {
        this.B.quadraticCurveTo(f, b, d, c)
    };
    l.cJ = function(f, b, d, c) {
        this.B.rect(f, b, d, c)
    };
    l.CH = function(f, b, d) {
        var c = this.B,
            a = c.getImageData(0, 0, this.canvas.width, this.canvas.height);
        ad(a.data, this.canvas.width, this.canvas.height, f, b, d);
        c.putImageData(a,
            0, 0);
        this.wb = this.c.H = !0
    };
    l.fA = function(f, b) {
        var d = this,
            c = new Image;
        c.onload = function() {
            d.canvas.width = c.width;
            d.canvas.height = c.height;
            d.B.drawImage(c, 0, 0, c.width, c.height);
            0 === b && (d.width = c.width, d.height = c.height, d.ca());
            d.c.H = !0;
            d.wb = !0;
            d.c.trigger(X.prototype.g.uf, d)
        };
        "data:" !== f.substr(0, 5) && (c.crossOrigin = "anonymous");
        c.src = f
    };
    l.uI = function(f) {
        f = f / 100;
        for (var b = this.B.getImageData(0, 0, this.canvas.width, this.canvas.height), d = b.data, c = 0; c < d.length; c += 4) {
            var a = (Math.max(d[c], d[c + 1], d[c + 2]) + Math.min(d[c],
                d[c + 1], d[c + 2])) / 2;
            Math.floor(a += 0 <= f ? (255 - a) * f : a * f);
            d[c] = a;
            d[c + 1] = a;
            d[c + 2] = a
        }
        this.B.putImageData(b, 0, 0)
    };
    l.YH = function(f, b) {
        f = Math.max(1, f);
        b = Math.max(1, b);
        var d = Math.floor(this.canvas.width / f),
            c = Math.floor(this.canvas.height / f),
            a = d * b,
            g = c * b,
            h = document.createElement("canvas");
        h.width = a;
        h.height = g;
        for (var h = h.getContext("2d"), e = this.B.getImageData(0, 0, d * f, c * f).data, l = 4 * f, p = 4 * f * f, m = 0, q = 0; q < c; q++) {
            this.ba[q] = [];
            for (var u = 0; u < d; u++) {
                var w = u * l + q * d * p,
                    v = e[w + 3],
                    w = "rgba(" + e[w] + "," + e[w + 1] + "," + e[w + 2] + "," + v + ")";
                h.fillStyle = w;
                h.fillRect(u * b, q * b, b, b);
                255 == v ? (this.zf.hasOwnProperty(w) || (m++, this.zf[w] = m), this.ba[q][u] = this.zf[w], this.vc[m] = w) : this.ba[q][u] = 0
            }
        }
        d = h.getImageData(0, 0, a, g);
        this.canvas.width = a;
        this.canvas.height = g;
        this.B.putImageData(d, 0, 0);
        this.width = a;
        this.height = g;
        this.ca();
        this.wb = this.c.H = !0
    };
    l.Ny = function(f, b, d, c, a) {
        if (this.ba.length && void 0 != this.ka[b] && void 0 != this.ka[b][f] && void 0 != this.ba[b][f] && 0 != this.ka[b][f][0]) {
            var g = c.V();
            c = g.tb()[0];
            g = a.V();
            a = g.tb()[0];
            c.B.clearRect(f * d, b * d, d, d);
            this.ka[b][f][0] == this.ba[b][f] ? this.Af-- : this.Ye--;
            d = this.ka[b][f][1];
            null != d && void 0 != this.Y[d] && (this.Y[d] = null, this.Kn = !0);
            this.ka[b][f][0] = 0;
            this.ka[b][f][1] = null;
            Yc.prototype.j.Op.apply(a, [f, b, this.ba[b][f] - 1, "normal"]);
            c.c.H = !0;
            c.wb = !0
        }
    };
    l.NA = function(f, b, d, c, a, g, h) {
        var e = a.V();
        a = e.tb()[0];
        e = g.V();
        g = e.tb()[0];
        h = h / 100;
        e = !1;
        void 0 != this.vc[d] && void 0 != this.ka[b] && void 0 != this.ka[b][f] && void 0 != this.ba[b][f] && 0 != this.ba[b][f] && (this.ka[b][f][0] != d && (this.ka[b][f][0] == this.ba[b][f] && this.BF && (e = !0), this.ba[b][f] == d ? (a.B.clearRect(f * c, b * c, c, c), a.B.fillStyle = this.vc[d], a.B.fillRect(f * c, b * c, c, c), Yc.prototype.j.mt.apply(g, [f, b]), 0 != this.ka[b][f][0] && this.Ye--, this.Af++) : e || (a.B.clearRect(f * c, b * c, c, c), a.B.fillStyle = this.vc[d].replace(/\d+\)$/, h + ")"), a.B.fillRect(f * c, b * c, c, c), Yc.prototype.j.Op.apply(g, [f, b, this.ba[b][f] - 1, "normal"]), this.ka[b][f][0] == this.ba[b][f] ? (this.Af--, this.Ye++) : 0 == this.ka[b][f][0] && this.Ye++), e || (this.Y.push([f, b, d]), c = this.ka[b][f][1], 0 != this.ka[b][f][0] && null != c && void 0 !=
            this.Y[c] && (this.Y[c] = null, this.Kn = !0), this.ka[b][f][0] = d, this.ka[b][f][1] = this.Y.length - 1)), a.c.H = !0, a.wb = !0)
    };
    l.jz = function(f, b, d, c) {
        if (!this.ba.length) {
            var a = {};
            try {
                a = JSON.parse(c)
            } catch (g) {
                console.log(g)
            }
            if (a.hasOwnProperty("idTable") && a.hasOwnProperty("colors")) this.ba = a.idTable, this.vc = a.colors;
            else return
        }
        if (this.vc[f]) {
            this.B.clearRect(0, 0, this.canvas.width, this.canvas.height);
            c = this.ba[0].length;
            for (var a = this.ba.length, h = 0; h < a; h++)
                for (var e = 0; e < c; e++) this.ba[h][e] == f && (this.B.fillStyle =
                    b, this.B.fillRect(e * d, h * d, d, d));
            this.wb = this.c.H = !0
        }
    };
    l.iz = function(f, b, d, c, a, g, h, e) {
        var l = {};
        if ("" != e) try {
            l = JSON.parse(e)
        } catch (p) {
            console.log(p)
        }
        e = g.V();
        g = e.tb()[0];
        e = h.V();
        h = e.tb()[0];
        e = Math.floor(this.canvas.width / f);
        var m = Math.floor(this.canvas.height / f);
        this.Yc = [];
        this.Y = [];
        l.hasOwnProperty("colors") && l.hasOwnProperty("idTable") && (this.Y = l.idTable, this.Yc = l.colors);
        this.ka = [];
        for (var q = 0; q < m; q++) {
            this.ka[q] = [];
            for (var u = 0; u < e; u++) this.ka[q][u] = [0, null]
        }
        if (0 < this.Y.length)
            for (var w = 0; w < this.Y.length; w++) {
                var v =
                    this.Y[w][0],
                    k = this.Y[w][1],
                    l = this.Y[w][2];
                if (k >= this.ka.length || v >= this.ka[k].length) {
                    this.Y = [];
                    break
                }
                this.ka[k][v][0] = l;
                this.ka[k][v][1] = w
            }
        var v = e * b,
            k = m * b,
            r = e * d;
        d = m * d;
        g.canvas.width = v;
        g.canvas.height = k;
        h.width = r;
        h.height = d;
        l = document.createElement("canvas");
        l.width = v;
        l.height = k;
        var H = l.getContext("2d"),
            y = this.B.getImageData(0, 0, e * f, m * f).data,
            I = 4 * f;
        f = 4 * f * f;
        var l = 0,
            R = c / 100;
        a = a / 100;
        var M = {};
        this.Ye = this.Af = this.el = 0;
        var G = [null];
        if (1 < this.Yc.length)
            for (q = 1; q < this.Yc.length; q++) {
                var u = this.Yc[q],
                    u =
                    u.match(/(\d+)/g),
                    E = parseInt(u[0]),
                    J = parseInt(u[1]),
                    F = parseInt(u[2]);
                G.push([E, J, F])
            }
        for (q = 0; q < m; q++)
            for (this.ba[q] = [], this.ka[q] || (this.ka[q] = []), u = 0; u < e; u++) {
                var w = u * I + q * e * f,
                    E = y[w],
                    J = y[w + 1],
                    F = y[w + 2],
                    w = y[w + 3],
                    z = "rgba(" + E + "," + J + "," + F + "," + w + ")";
                255 == w ? (this.zf.hasOwnProperty(z) || (l++, this.zf[z] = l, J = (Math.max(E, J, F) + Math.min(E, J, F)) / 2, J = 0 != c ? Math.floor(J + (0 <= R ? (255 - J) * R : J * R)) : Math.floor(J), M[l] = J), E = this.zf[z], this.ba[q][u] = E, this.vc[E] = z, J = M[E], w = "rgba(" + J + "," + J + "," + J + "," + w + ")", Yc.prototype.j.Op.apply(h, [u, q, E - 1, "normal"]), this.ka[q][u] ? void 0 != this.ka[q] && void 0 != this.ka[q][u] && (F = this.ka[q][u][0], F == this.ba[q][u] ? (E = this.Yc[F], g.B.fillStyle = E, g.B.fillRect(u * b, q * b, b, b), Yc.prototype.j.mt.apply(h, [u, q]), this.Af++) : 0 != F && (E = G[F][0], J = G[F][1], F = G[F][2], E = "rgba(" + E + "," + J + "," + F + "," + a + ")", g.B.fillStyle = E, g.B.fillRect(u * b, q * b, b, b), this.Ye++)) : this.ka[q][u] = [0, null], this.el++) : (w = "rgba(255,255,255,0)", this.ba[q][u] = 0);
                H.fillStyle = w;
                H.fillRect(u * b, q * b, b, b)
            }
        0 == this.Yc.length && (this.Yc = this.vc.slice());
        b = H.getImageData(0,
            0, v, k);
        this.canvas.width = v;
        this.canvas.height = k;
        this.B.putImageData(b, 0, 0);
        this.width = r;
        this.height = d;
        g.width = r;
        g.height = d;
        this.ca();
        g.ca();
        h.ca();
        this.wb = this.c.H = !0;
        g.c.H = !0;
        g.wb = !0
    };
    l.kz = function(f, b, d, c, a, g, h, e) {
        b = {};
        if ("" != e) try {
            b = JSON.parse(e)
        } catch (l) {
            console.log(l)
        }
        this.Yc = [];
        this.Y = [];
        b.hasOwnProperty("colors") && b.hasOwnProperty("idTable") && (this.Y = b.idTable, this.Yc = b.colors);
        e = Math.floor(this.canvas.width / f);
        b = Math.floor(this.canvas.height / f);
        var p;
        p = Math.exp(-Wa(0, 3.912, Ha(Xa(10, 110, e <
            b ? b : e), 0, 1)) + 1.4586) - .086;
        p = Wa(4, 1, Xa(4.214, 0, p));
        p = Ha(p, 1, 4);
        p = Math.round(p);
        this.ka = [];
        for (var m = 0; m < b; m++) {
            this.ka[m] = [];
            for (var q = 0; q < e; q++) this.ka[m][q] = [0, null]
        }
        if (this.Y.length)
            for (var u = 0; u < this.Y.length; u++) {
                var w = this.Y[u][0],
                    v = this.Y[u][1],
                    k = this.Y[u][2];
                if (v >= this.ka.length || w >= this.ka[v].length) {
                    this.Y = [];
                    break
                }
                this.ka[v][w][0] = k;
                this.ka[v][w][1] = u
            }
        w = p * e;
        v = document.createElement("canvas");
        v.width = w;
        v.height = p * b;
        var r = v.getContext("2d").getImageData(0, 0, v.width, v.height),
            H = r.data,
            y = this.B.getImageData(0,
                0, e * f, b * f).data,
            I = 4 * f;
        f = 4 * f * f;
        var k = 0,
            R = g / 100;
        h = h / 100;
        var M = {};
        this.Ye = this.Af = this.el = 0;
        var G = [null];
        if (1 < this.Yc.length)
            for (m = 1; m < this.Yc.length; m++) {
                var q = this.Yc[m],
                    q = q.match(/(\d+)/g),
                    E = parseInt(q[0]),
                    J = parseInt(q[1]),
                    F = parseInt(q[2]);
                G.push([E, J, F])
            }
        for (m = 0; m < b; m++)
            for (this.ba[m] = [], q = 0; q < e; q++) {
                var u = q * I + m * e * f,
                    E = y[u],
                    J = y[u + 1],
                    F = y[u + 2],
                    z = y[u + 3],
                    C = "rgba(" + E + "," + J + "," + F + "," + z + ")";
                if (255 == z) {
                    if (!this.zf.hasOwnProperty(C)) {
                        k++;
                        this.zf[C] = k;
                        if ("gray" == a) var O = (Math.max(E, J, F) + Math.min(E, J, F)) / 2,
                            O = 0 != g ? Math.floor(O + (0 <= R ? (255 - O) * R : O * R)) : Math.floor(O);
                        M[k] = O
                    }
                    O = this.zf[C];
                    this.ba[m][q] = O;
                    this.vc[O] = C;
                    O = M[O];
                    this.ka.length && void 0 != this.ka[m] && void 0 != this.ka[m][q] && (F = this.ka[m][q][0], F == this.ba[m][q] ? (E = y[u], J = y[u + 1], F = y[u + 2], this.Af++) : 0 != F ? (E = G[F][0], J = G[F][1], F = G[F][2], E = O - Math.floor((O - E) * h), J = O - Math.floor((O - J) * h), F = O - Math.floor((O - F) * h), this.Ye++) : F = J = E = O);
                    this.el++
                } else F = J = E = 255, z = 0;
                for (var u = p * q * 4, C = p * m * w * 4, ba = 0; ba < p; ba++)
                    for (var U = 0; U < p; U++) {
                        var A = u + 4 * U + (ba * w * 4 + C);
                        H[A] = E;
                        H[A + 1] =
                            J;
                        H[A + 2] = F;
                        H[A + 3] = z
                    }
            }
        this.canvas.width = d;
        this.canvas.height = c;
        this.B.putImageData(r, Math.floor(.5 * (this.canvas.width - v.width)), Math.floor(.5 * (this.canvas.height - v.height)));
        this.width = d;
        this.height = c;
        this.ca()
    };
    l.gB = function(f, b, d, c, a, g, h, e) {
        if ("" != a && "" != g) {
            var l = {};
            if (0 == this.ba.length) {
                try {
                    l = JSON.parse(a)
                } catch (p) {
                    console.log(p)
                }
                this.ba = [];
                this.vc = [];
                l.hasOwnProperty("colors") && l.hasOwnProperty("idTable") && (this.ba = l.idTable, this.vc = l.colors)
            }
            if (0 == this.Y.length) {
                try {
                    l = JSON.parse(g)
                } catch (m) {
                    console.log(m)
                }
                this.Yc = [];
                this.Y = [];
                l.hasOwnProperty("colors") && l.hasOwnProperty("idTable") && (this.Y = l.idTable, this.Yc = l.colors)
            }
            if (void 0 != this.ba[0] && void 0 != this.ba[0][0]) {
                a = this.ba[0].length;
                g = this.ba.length;
                l = [];
                if (0 != this.Y.length) {
                    for (var q = 0; q < g; q++) {
                        l[q] = [];
                        for (var u = 0; u < a; u++) l[q][u] = 0
                    }
                    for (q = h; q < e && !(q >= this.Y.length); q++) {
                        var w = this.Y[q][0],
                            u = this.Y[q][1],
                            v = this.Y[q][2];
                        u < l.length && w < l[u] && (l[u][w] = v)
                    }
                }
                v = a * f;
                q = g * f;
                u = d / 100;
                c = c / 100;
                var k, r, H, y;
                if (1 == this.Mg.length)
                    for (w = 1; w < this.vc.length; w++) H = this.vc[w], H = H.match(/(\d+)/g),
                        k = parseInt(H[0]), r = parseInt(H[1]), H = parseInt(H[2]), this.Bg.push([k, r, H]), "gray" == b && (y = (Math.max(k, r, H) + Math.min(k, r, H)) / 2, H = r = k = y = 0 != d ? Math.floor(y + (0 <= u ? (255 - y) * u : y * u)) : Math.floor(y)), this.Mg.push([k, r, H]);
                if (0 == this.Pv)
                    for (this.Pv = !0, this.canvas.width = v, this.canvas.height = q, this.width = v, this.height = q, b = this.B.getImageData(0, 0, this.canvas.width, this.canvas.height), d = b.data, q = 0; q < g; q++)
                        for (u = 0; u < a; u++) {
                            if (h = this.ba[q][u], 0 != h)
                                for (y = l[q][u], 0 == y ? (k = this.Mg[h][0], r = this.Mg[h][1], H = this.Mg[h][2]) : (k =
                                        this.Bg[y][0], r = this.Bg[y][1], H = this.Bg[y][2], y != h && (y = this.Mg[h][0], k = y - Math.floor((y - k) * c), r = y - Math.floor((y - r) * c), H = y - Math.floor((y - H) * c))), h = f * u * 4, y = f * q * v * 4, w = 0; w < f; w++)
                                    for (var I = 0; I < f; I++) {
                                        var R = h + 4 * I + (w * v * 4 + y);
                                        d[R] = k;
                                        d[R + 1] = r;
                                        d[R + 2] = H;
                                        d[R + 3] = 255
                                    }
                        } else if (b = this.B.getImageData(0, 0, this.canvas.width, this.canvas.height), d = b.data, this.Y.length)
                            for (q = h; q < e && !(q >= this.Y.length); q++)
                                if (w = this.Y[q][0], u = this.Y[q][1], y = this.Y[q][2], !(u >= this.ba.length || w >= this.ba[u].length || y >= this.Bg.length) && (h = this.ba[u][w],
                                        0 != h))
                                    for (k = this.Bg[y][0], r = this.Bg[y][1], H = this.Bg[y][2], y != h && h < this.Mg.length && (y = this.Mg[h][0], k = y - Math.floor((y - k) * c), r = y - Math.floor((y - r) * c), H = y - Math.floor((y - H) * c)), h = f * w * 4, y = f * u * v * 4, w = 0; w < f; w++)
                                        for (I = 0; I < f; I++) R = h + 4 * I + (w * v * 4 + y), d[R] = k, d[R + 1] = r, d[R + 2] = H, d[R + 3] = 255;
                this.B.putImageData(b, 0, 0)
            }
        }
    };
    l.CG = function(f, b, d, c) {
        c = c || 0;
        if (255 < f || 255 < b || 255 < d || 255 < c) throw "Invalid color component";
        return (f << 16 | b << 8 | d).toString(16) + c.toString(16)
    };
    g.n = {};
    g = g.n;
    g.fJ = function(f, b, d) {
        b = this.B.getImageData(b,
            d, 1, 1).data;
        f.aa("rgba(" + b[0] + "," + b[1] + "," + b[2] + "," + b[3] / 255 + ")")
    };
    g.LI = function(f, b, d) {
        b = this.B.getImageData(b, d, 1, 1).data;
        d = X.prototype.j.CG;
        b = "#" + ("000000" + d(b[0], b[1], b[2], b[3])).slice(-8);
        f.aa(b)
    };
    g.dJ = function(f, b, d) {
        b = this.B.getImageData(b, d, 1, 1).data;
        f.G(b[0])
    };
    g.KI = function(f, b, d) {
        b = this.B.getImageData(b, d, 1, 1).data;
        f.G(b[1])
    };
    g.AI = function(f, b, d) {
        b = this.B.getImageData(b, d, 1, 1).data;
        f.G(b[2])
    };
    g.yI = function(f, b, d) {
        b = this.B.getImageData(b, d, 1, 1).data;
        f.G(b[0] / 255)
    };
    g.$E = function(f) {
        f.aa(this.canvas.toDataURL())
    };
    g.tf = function(f) {
        f.aa(JSON.stringify({
            c2array: !0,
            size: [1, 1, this.canvas.width * this.canvas.height * 4],
            data: [
                [this.B.getImageData(0, 0, this.canvas.width, this.canvas.height).data]
            ]
        }))
    };
    g.Qy = function(f) {
        0 < this.ba.length && (this.nq.colors = this.vc, this.nq.idTable = this.ba);
        f.aa(JSON.stringify(this.nq))
    };
    g.Sy = function(f) {
        void 0 != this.ba[0] && void 0 != this.ba[0][0] && f.G(this.ba[0].length)
    };
    g.Ry = function(f) {
        void 0 != this.ba[0] && f.G(this.ba.length)
    };
    g.mB = function(f) {
        var b = [],
            d = 0;
        if (0 < this.Y.length) {
            if (this.Kn) {
                for (var c =
                        0; c < this.Y.length; c++) {
                    var a = this.Y[c];
                    null != a && (b[d] = a, d++)
                }
                this.Mo.idTable = b
            } else this.Mo.idTable = this.Y;
            this.Mo.colors = this.Yc
        }
        f.aa(JSON.stringify(this.Mo))
    };
    g.Fy = function(f) {
        f.G(this.canvas.width)
    };
    g.Ey = function(f) {
        f.G(this.canvas.height)
    };
    g.Py = function(f) {
        f.G(this.vc.length)
    };
    g.yz = function(f, b) {
        b >= this.vc.length || !this.vc[b] || f.aa(this.vc[b])
    };
    g.zz = function(f, b, d) {
        d >= this.ba.length || !this.ba[d] || b >= this.ba[d].length || !this.ba[d][b] || f.G(this.ba[d][b])
    };
    g.Jy = function(f) {
        var b = [],
            d = 0,
            c = 0;
        if (this.Kn) {
            for (c =
                0; c < this.Y.length; c++) {
                var a = this.Y[c];
                null != a && (b[d] = a, d++)
            }
            c = b.length
        } else c = this.Y.length;
        f.G(c)
    };
    g.gz = function(f) {
        f.G(this.Y.length)
    };
    g.EH = function(f, b) {
        b >= this.Y.length || !this.Y[b] || f.G(this.Y[b][0])
    };
    g.FH = function(f, b) {
        b >= this.Y.length || !this.Y[b] || f.G(this.Y[b][1])
    };
    g.DH = function(f, b) {
        b >= this.Y.length || !this.Y[b] || f.G(this.Y[b][2])
    };
    g.Bz = function(f) {
        this.nr = this.Af / this.el;
        0 == this.Af && 0 != this.Ye && (this.nr = -this.Ye);
        f.C(this.nr)
    }
})();

function bd(g) {
    this.c = g
}
(function() {
    function g() {}

    function l() {}

    function p() {}
    var f = bd.prototype;
    f.N = function(b) {
        this.W = b;
        this.c = b.c
    };
    f.N.prototype.I = function() {};
    f.L = function(b) {
        this.type = b;
        this.c = b.c
    };
    var b = f.L.prototype;
    b.I = function() {
        this.options = {
            repeat: this.u[0],
            quality: this.u[1],
            workers: this.u[2],
            background: this.u[3],
            transparent: "" !== this.u[4] ? this.u[4] : null
        };
        this.ih = null;
        this.Yp = !1;
        this.zG = null;
        this.gv = this.Ki = this.MC = "";
        this.wx = 0
    };
    b.yd = function() {
        this.js()
    };
    b.zc = function(b) {
        var c = new FileReader;
        c.readAsDataURL(b);
        var a = this;
        c.onloadend = function() {
            a.MC = c.result.replace(/^data:image\/\w+;base64,/, "");
            a.c.trigger(bd.prototype.g.qA, a)
        }
    };
    b.Bv = function() {
        if (null != this.ih) return this.ih;
        this.ih = new window.GIF(this.options);
        var b = this;
        this.ih.on("finished", function(c) {
            b.js();
            b.zG = c;
            b.Ki = URL.createObjectURL(c);
            b.gv = c.type || "";
            b.c.trigger(bd.prototype.g.Ft, b)
        });
        this.ih.on("progress", function(c) {
            b.wx = c;
            b.c.trigger(bd.prototype.g.Lj, b)
        });
        return this.ih
    };
    b.js = function() {
        "" !== this.Ki && (URL.revokeObjectURL(this.Ki), this.gv =
            this.Ki = "")
    };
    b.FC = function(b, c, a) {
        null != b && (this.Yp && (this.ih = null, this.Yp = !1), c = {
            delay: Math.floor(1E3 * c),
            copy: 1 === a
        }, this.Bv().addFrame(b, c))
    };
    f.g = new g;
    g.prototype.Ft = function() {
        return !0
    };
    g.prototype.Lj = function() {
        return !0
    };
    g.prototype.qA = function() {
        return !0
    };
    f.j = new l;
    l.prototype.ry = function(b, c, a) {
        if (b) {
            b = b.xn();
            var f;
            b ? b.canvas ? f = b.canvas : b.Ca && b.Ca.K ? f = b.Ca.K : f = null : f = null;
            this.FC(f, c, a)
        }
    };
    l.prototype.fB = function() {
        this.Bv().render();
        this.Yp = !0
    };
    l.prototype.eB = function() {
        this.js()
    };
    l.prototype.lB =
        function(b) {
            if (this.Ki) {
                let _uptap_back = function(that){
                    "" == b && (b = "myGif");
                    var c = new XMLHttpRequest,
                        a = that.Ki;
                    c.responseType = "blob";
                    c.open("GET", a, !0);
                    c.onreadystatechange = function() {
                        c.readyState == c.DONE && saveAs(c.response, b + ".gif")
                    };
                    c.send()
                }
                let _this = this;
                // console.log('uptap-下载gif')
                window.uptap.ShowExcitationVideoAdv((n1) => {
                    switch (n1.type) {
                        case "1":
                            //暂时没有广告
                            console.log("暂时没有广告");
                            break;
                        case "2":
                            //想要奖励,必须看完广告(用户点击跳过按钮)
                            console.log("必须看完整视频才能获得奖励哦!");
                            break;
                        case "3":
                            //广告正常播放完毕
                            _uptap_back(_this)
                          break;
                    }
                })
            }
        };
    f.n = new p;
    p.prototype.hB = function(b) {
        b.C(this.wx)
    }
})();
"undefined" !== typeof window && window.document.addEventListener("DOMContentLoaded", function() {
   
   });

function cd(g) {
    this.c = g
}
(function() {
    function g() {}

    function l() {}
    var p = cd.prototype;
    p.N = function(b) {
        this.W = b;
        this.c = b.c
    };
    p.N.prototype.I = function() {};
    p.L = function(b) {
        this.type = b;
        this.c = b.c;
        window.pipocpmstar = {
            CountdownBanner: function(b) {
                cd.prototype.j.ht(b)
            },
            clickAdsBanner: function() {
                cd.prototype.j.TC()
            }
        }
    };
    var f, b = null;
    p.L.prototype.I = function() {
        f = this;
        this.hr = !1;
        this.Sv = 1 == this.u[3] ? !0 : !1;
        this.ep = this.u[4];
        this.QG = 1 == this.u[6] ? !0 : !1;
        this.hG = this.u[7];
        this.LC = this.u[8];
        var b = document.getElementById("adsPrerollBg");
        cd.prototype.j.$s(function() {
            f.QG &&
                cd.prototype.j.NB()
        }, function() {
            b.style.display = "none"
        });
        cd.prototype.j.ZB()
    };
    g.prototype.ko = function() {
        return !0
    };
    g.prototype.io = function() {
        return !0
    };
    g.prototype.OF = function() {
        return !0
    };
    g.prototype.NF = function() {
        return !0
    };
    p.g = new g;
    l.prototype.$s = function(b, c) {
     
    };
    l.prototype.NB = function() {
        var b = document.getElementById("adsPrerollBg");
        (function() {
            document.getElementById("adsPrerollBg").style.display = "block";
            (function(c, a, g, h, e, l, p, m, q, u) {
                h.aG = f.hG;
                e.background = null;
                e.close = null;
                e.type = "game";
                p.select = "#adsPrerollDiv";
                l.closed = function() {
                    b.style.display = "none";
                    f.c.trigger(cd.prototype.g.ko, f);
                    f.hr = !1;
                    cd.prototype.j.Qj()
                };
                l.init = function() {
                    b.style.display = "block";
                    f.c.trigger(cd.prototype.g.io, f);
                    f.hr = !0
                };
                l.DI = function() {
                    b.style.display = "none";
                    f.c.trigger(cd.prototype.g.ko, f);
                    f.hr = !1;
                    cd.prototype.j.Qj()
                };
                u = g.getElementsByTagName("script");
                a[c] || (a[c] = {
                    ads: []
                }, q = g.createElement("script"), q.src = "//server.cpmstar.com/cached/js/global_v100.pack.js?poolid=" + h.aG, q.type = "text/javascript", q.async = "", u[0].parentNode.insertBefore(q,
                    u[0]));
                a[c].ads.push({
                    params: h,
                    config: e,
                    events: l,
                    overlay: p,
                    placeholder: u[u.length - 1]
                })
            })("cpmstar", window, document, {}, {}, {}, {})
        })()
    };
    l.prototype.MB = function(d, c) {
       
    };
    l.prototype.ht = function(b) {
        void 0 ==
            b && (b = f.u[0]);
        b = Number(b);
        var c = document.getElementById("adsInterstitialCloseBtn"),
            a = this;
        this.Wu = function(b) {
            if (0 < b) {
                b--;
                setTimeout(function() {
                    c.value = "Advertisement ends in " + b + "...";
                    a.Wu(b)
                }, 1E3);
                try {
                    f.c.trigger(cd.prototype.g.io, f)
                } catch (d) {
                    console.log(d.message)
                }
            } else c.value = "Close \u2715", c.removeAttribute("disabled"), c.onclick = function() {
                cd.prototype.j.hk()
            }
        };
        this.Wu(b)
    };
    l.prototype.hk = function() {
        var b = document.getElementById("adsInterstitialDiv"),
            c = document.getElementById("adsInterstitialContainer"),
            a = document.getElementById("adsInterstitialIframeCont"),
            g = document.getElementById("adInterstitialDescr"),
            h = document.getElementById("adsInterstitialCloseBtn");
        document.getElementById("adsPrerollBg").style.display = "none";
        b.style.display = "none";
        c.style.display = "none";
        a.innerHTML = "";
        g.style.display = "none";
        try {
            f.c.trigger(cd.prototype.g.ko, f), f.c.trigger(cd.prototype.g.OF, f)
        } catch (e) {
            console.log(e.message)
        }
        h.setAttribute("disabled", "disabled");
        h.value = "...";
        document.getElementById("adblockInterstitialDiv").style.display =
            "none"
    };
    l.prototype.TC = function() {
        setTimeout(function() {
            cd.prototype.j.hk();
            f.c.trigger(cd.prototype.g.NF, f)
        }, 1E3)
    };
    l.prototype.SG = function() {
        document.getElementById("adblockInterstitialDiv").style.display = "block";
        cd.prototype.j.ht(f.u[0]);
        cd.prototype.j.Qj()
    };
    l.prototype.Qj = function() {
        f.Sv && null == b && (b = setTimeout(function() {
            b = null
        }, f.ep))
    };
    l.prototype.ZB = function() {
        var b = {};
        $.get("dablock_translate.txt", function(c) {
            var a = /\t(?=\t)\t/gi;
            c = c.replace(a, "\t");
            a = /\r/gi;
            c =
                c.replace(a, "");
            a = /\n/gi;
            c = c.split(a);
            if (0 < c.length) {
                for (var f = 0; f < c.length; f++) a = /\t/gi, c[f] = c[f].split(a);
                for (f = 1; f < c.length; f++)
                    for (a = 1; a < c[0].length; a++) {
                        var h = c[0][a].toLowerCase(),
                            e = c[f][0];
                        void 0 == b[h] && (b[h] = {});
                        void 0 == b[h][e] && (b[h][e] = c[f][a])
                    }
            }
            c = navigator.browserLanguage || navigator.language || navigator.Dh;
            "" != c && (c = c.toLowerCase(), c = c.slice(0, 2));
            void 0 == b[c] && (c = "en");

        })
    };
    p.j = new l;
    p.n = new function() {}
})();

function dd(g) {
    this.c = g
}
(function() {
    function g() {}
    var l = dd.prototype;
    l.N = function(f) {
        this.behavior = f;
        this.c = f.c
    };
    l.N.prototype.I = function() {};
    l.L = function(f, b) {
        this.type = f;
        this.behavior = f.behavior;
        this.e = b;
        this.c = f.c
    };
    var p = l.L.prototype;
    p.I = function() {
        this.Bu = 1 === this.u[0];
        this.qk = this.u[1];
        this.$l = this.u[2];
        this.gn = this.u[3];
        this.dD = this.u[4];
        this.lc = this.Bu ? 0 : 3;
        this.uc ? this.ie.reset() : this.ie = new gb;
        this.$h = this.e.opacity ? this.e.opacity : 1;
        this.Bu && (0 === this.qk ? (this.lc = 1, 0 === this.$l && (this.lc = 2)) : (this.e.opacity = 0, this.c.H = !0))
    };
    p.$a = function() {
        return {
            fit: this.qk,
            wt: this.$l,
            fot: this.gn,
            s: this.lc,
            st: this.ie.ta,
            mo: this.$h
        }
    };
    p.lb = function(f) {
        this.qk = f.fit;
        this.$l = f.wt;
        this.gn = f.fot;
        this.lc = f.s;
        this.ie.reset();
        this.ie.ta = f.st;
        this.$h = f.mo
    };
    p.ub = function() {
        this.ie.add(this.c.Fh(this.e));
        0 === this.lc && (this.e.opacity = this.ie.ta / this.qk * this.$h, this.c.H = !0, this.e.opacity >= this.$h && (this.e.opacity = this.$h, this.lc = 1, this.ie.reset(), this.c.trigger(dd.prototype.g.wA, this.e)));
        1 === this.lc && this.ie.ta >= this.$l && (this.lc = 2, this.ie.reset(),
            this.c.trigger(dd.prototype.g.Hp, this.e));
        2 === this.lc && 0 !== this.gn && (this.e.opacity = this.$h - this.ie.ta / this.gn * this.$h, this.c.H = !0, 0 > this.e.opacity && (this.e.opacity = 0, this.lc = 3, this.ie.reset(), this.c.trigger(dd.prototype.g.xA, this.e), 1 === this.dD && this.c.ne(this.e)))
    };
    p.zc = function() {
        this.lc = 0;
        this.ie.reset();
        0 === this.qk ? (this.lc = 1, 0 === this.$l && (this.lc = 2)) : (this.e.opacity = 0, this.c.H = !0)
    };
    g.prototype.xA = function() {
        return !0
    };
    g.prototype.wA = function() {
        return !0
    };
    g.prototype.Hp = function() {
        return !0
    };
    l.g =
        new g;
    l.j = new function() {};
    l.n = new function() {}
})();

function ed(g) {
    this.c = g
}
(function() {
    function g() {}

    function l() {}
    var p = ed.prototype;
    p.N = function(b) {
        this.behavior = b;
        this.c = b.c
    };
    p.N.prototype.I = function() {};
    p.L = function(b, d) {
        this.type = b;
        this.behavior = b.behavior;
        this.e = d;
        this.c = b.c
    };
    var f = p.L.prototype;
    f.I = function() {
        this.pf = this.mf = this.lc = this.ho = this.lo = 0
    };
    f.$a = function() {
        return {
            ontime: this.lo,
            offtime: this.ho,
            stage: this.lc,
            stagetimeleft: this.mf,
            timeleft: this.pf
        }
    };
    f.lb = function(b) {
        this.lo = b.ontime;
        this.ho = b.offtime;
        this.lc = b.stage;
        this.mf = b.stagetimeleft;
        this.pf = b.timeleft;
        null === this.pf && (this.pf = Infinity)
    };
    f.ub = function() {
        if (!(0 >= this.pf)) {
            var b = this.c.Fh(this.e);
            this.pf -= b;
            0 >= this.pf ? (this.pf = 0, this.e.visible = !0, this.c.H = !0, this.c.trigger(ed.prototype.g.yA, this.e)) : (this.mf -= b, 0 >= this.mf && (0 === this.lc ? (this.e.visible = !1, this.lc = 1, this.mf += this.ho) : (this.e.visible = !0, this.lc = 0, this.mf += this.lo), this.c.H = !0))
        }
    };
    g.prototype.yA = function() {
        return !0
    };
    p.g = new g;
    l.prototype.pz = function(b, d, c) {
        this.lo = b;
        this.ho = d;
        this.lc = 1;
        this.mf = d;
        this.pf = c;
        this.e.visible = !1;
        this.c.H = !0
    };
    p.j = new l;
    p.n = new function() {}
})();

function fd(g) {
    this.c = g
}
(function() {
    function g() {}

    function l() {}

    function p() {}
    var f = fd.prototype;
    f.N = function(b) {
        this.behavior = b;
        this.c = b.c
    };
    f.N.prototype.I = function() {};
    f.L = function(b, c) {
        this.type = b;
        this.behavior = b.behavior;
        this.e = c;
        this.c = b.c
    };
    var b = f.L.prototype;
    b.I = function() {
        this.A = null;
        this.so = -1;
        this.ix = this.jx = this.mode = this.Zi = this.$o = this.hj = this.Rc = this.De = 0;
        this.uo = this.to = 1;
        this.Zr = this.$r = 0;
        this.x = this.u[0];
        this.y = this.u[1];
        this.zIndex = this.u[2];
        this.q = this.u[3];
        this.width = this.u[4];
        this.height = this.u[5];
        this.opacity =
            this.u[6];
        this.visibility = this.u[7];
        this.UC = this.u[8];
        this.qf = this.u[9];
        this.Ab = this.u[10];
        this.Bb = this.u[11];
        this.gf = this.u[12];
        this.ro = this.u[13];
        this.Yr = this.u[14];
        this.Zg = this.u[15];
        this.pj = this.u[16];
        this.Xr = this.u[17];
        this.Te = this.Se = 1;
        this.Ss = this.vo = !1;
        var b = this;
        this.uc || (this.cl = function(c) {
            b.jl(c)
        });
        this.c.Xp(this.cl)
    };
    b.$a = function() {
        return {
            uid: this.A ? this.A.uid : -1,
            pa: this.De,
            pd: this.Rc,
            msa: this.hj,
            tsa: this.$o,
            lka: this.Zi,
            m: this.mode,
            o: this.opacity,
            v: this.visibility,
            psrx: this.to,
            psry: this.uo,
            fsr: this.pn
        }
    };
    b.lb = function(b) {
        this.so = b.uid;
        this.De = b.pa;
        this.Rc = b.pd;
        this.hj = b.msa;
        this.$o = b.tsa;
        this.Zi = b.lka;
        this.mode = b.m;
        this.opacity = b.o;
        this.visibility = b.v;
        this.to = b.psrx;
        this.uo = b.psry;
        this.pn = b.fsr
    };
    b.pe = function() {
        -1 === this.so ? this.A = null : this.A = this.c.Lg(this.so);
        this.so = -1
    };
    b.jl = function(b) {
        this.A == b && (this.A = null)
    };
    b.yd = function() {
        this.A = null;
        this.c.vx(this.cl)
    };
    b.ub = function() {
        0 !== this.Xr && this.vo && null == this.A && (this.vo = !1, this.c.ne(this.e))
    };
    b.zj = function() {
        if (this.A) {
            if (this.A.x !==
                this.Nw || this.A.y !== this.Ow || this.A.q !== this.Hw || this.A.width !== this.Mw || this.A.height !== this.Kw || this.Iw !== this.Se || this.Jw !== this.Te || this.Ss) {
                this.Ss = !1;
                this.Zi !== this.e.q && (this.hj = La(this.hj + (this.e.q - this.Zi)));
                var b = this.e.x,
                    c = this.e.y,
                    a = 0 === this.gf ? this.A.x : this.A.Lf(this.gf, !0),
                    f = 0 === this.gf ? this.A.y : this.A.Lf(this.gf, !1);
                if (3 === this.mode || 4 === this.mode) {
                    var h = Ta(this.e.x, this.e.y, a, f);
                    if (h > this.Rc || 4 === this.mode && h < this.Rc) c = Oa(a, f, this.e.x, this.e.y), b = a + Math.cos(c) * this.Rc, c = f + Math.sin(c) *
                        this.Rc
                } else if (this.Se = this.Te = 1, this.A.Ca && (this.Se = this.A.width / this.A.Ca.width, this.Te = this.A.height / this.A.Ca.height), 2 === this.x ? b = a : b = a + Math.cos(this.A.q + this.De) * this.Rc * this.Se, 2 === this.y ? c = f : c = f + Math.sin(this.A.q + this.De) * this.Rc * this.Te, 3 <= this.Zg && 1 === this.x || 3 <= this.pj || 1 === this.y) {
                    var h = this.$r / Math.abs(this.$r) !== this.A.width / Math.abs(this.A.width),
                        e = this.Zr / Math.abs(this.Zr) !== this.A.height / Math.abs(this.A.height);
                    3 <= this.Zg && h && 3 <= this.pj && e ? (h = this.De + D(180), b = a + Math.cos(this.A.q +
                        h) * this.Rc, c = f + Math.sin(this.A.q + h) * this.Rc) : 3 <= this.Zg && h ? (h = this.De, c = Pa(h, D(90)), h = h < D(270) && h > D(90) ? h - 2 * c : h + 2 * c, b = a + Math.cos(this.A.q + h) * this.Rc, c = f + Math.sin(this.A.q + h) * this.Rc) : 3 <= this.pj && e && (h = this.De, c = Pa(h, 0), h = h < D(180) && 0 < h ? h - 2 * c : h + 2 * c, b = a + Math.cos(this.A.q + h) * this.Rc, c = f + Math.sin(this.A.q + h) * this.Rc)
                }
                this.Zi = a = La(this.hj + (this.A.q - this.$o));
                0 !== this.mode && 1 !== this.mode && 3 !== this.mode && 4 !== this.mode || !(0 !== this.x && this.e.x !== b || 0 !== this.y && this.e.y !== c) || (0 !== this.x && (this.e.x = b), 0 !== this.y &&
                    (this.e.y = c), this.e.ca());
                0 !== this.mode && 2 !== this.mode && 0 === this.q || this.e.q === a || 0 === this.q || (2 === this.q ? this.e.q = this.A.q : this.e.q = a, this.e.ca())
            }
            0 !== this.zIndex && (1 < Math.abs(this.A.Rd - this.e.Rd) || this.A.F.index !== this.e.F.index) && (b = this.A.type.V(), a = b.k, f = b.X, b.k = [this.A], b.X = !1, this.e.type.W.__proto__.j.qu.call(this.e, this.zIndex - 1, this.A.type), b.k = a, b.X = f);
            if (0 !== this.width) switch (b = this.A.width, this.width) {
                case 1:
                    b !== this.e.width && (this.e.width = b, this.e.ca());
                    break;
                case 2:
                    b = this.A.width + this.jx;
                    b !== this.e.width && (this.e.width = b, this.e.ca());
                    break;
                case 3:
                    b = this.A.width / this.A.Ca.width * this.e.Ca.width;
                    b !== this.e.width && (this.e.width = b, this.e.ca());
                    break;
                case 4:
                    b = this.A.width * this.to, b !== this.e.width && (this.e.width = b, this.e.characterSet && (this.e.sd = this.A.width / this.pn), this.e.ca())
            }
            if (0 !== this.height) switch (b = this.A.height, this.height) {
                case 1:
                    b !== this.e.height && (this.e.height = b, this.e.ca());
                    break;
                case 2:
                    b = this.A.height + this.ix;
                    b !== this.e.height && (this.e.height = b, this.e.ca());
                    break;
                case 3:
                    b =
                        this.A.height / this.A.Ca.height * this.e.Ca.height;
                    b !== this.e.height && (this.e.height = b, this.e.ca());
                    break;
                case 4:
                    b = this.A.height * this.uo, b !== this.e.height && (this.e.height = b, 4 !== this.width && this.e.characterSet && (this.e.sd = this.A.width / this.pn), this.e.ca())
            }
            1 === this.opacity && this.A.opacity !== this.e.opacity && (this.e.opacity = this.A.opacity, this.c.H = !0);
            1 === this.visibility && this.A.visible !== this.e.visible && (this.e.visible = this.A.visible, this.c.H = !0);
            1 === this.UC && this.A.Vd !== this.e.Vd && (this.e.Vd = this.A.Vd,
                this.e.Vd ? this.e.ca() : (this.e.Ud.right >= this.e.Ud.left && this.e.type.ik.update(this.e, this.e.Ud, null), this.e.Ud.set(0, 0, -1, -1)));
            1 === this.qf && this.A.df !== this.e.df && (this.e.df = this.A.df);
            1 === this.Ab && this.A.Ab !== this.e.Ab && (this.e.Ab = this.A.Ab, this.e.ca());
            1 === this.Bb && this.A.Bb !== this.e.Bb && (this.e.Bb = this.A.Bb, this.e.ca());
            0 !== this.ro && this.A.Ga.name !== this.e.Ga.name && (this.e.fk = this.A.Ga.name, this.e.iq = this.ro - 1, this.e.Pf || (this.e.c.Aj(this.e), this.e.Pf = !0), this.e.Qi || this.e.vq());
            1 === this.Yr &&
                this.A.U !== this.e.U && (this.e.ek = this.A.U, this.e.Pf || (this.e.c.Aj(this.e), this.e.Pf = !0), this.e.Qi || this.e.wq());
            if (0 !== this.Zg && 0 != this.A.width) switch (b = this.e.width / Math.abs(this.e.width), a = this.A.width / Math.abs(this.A.width), this.Zg) {
                case 1:
                case 3:
                    a !== b && (this.e.width = Math.abs(this.e.width) * a, this.e.ca());
                    break;
                case 2:
                case 4:
                    a !== this.Ur && (this.e.width = 0 < this.kq ? -this.e.width : Math.abs(this.e.width), this.kq *= -1, this.Ur *= -1, this.e.ca())
            }
            if (0 !== this.pj && 0 != this.A.height) switch (b = this.e.height / Math.abs(this.e.height),
                a = this.A.height / Math.abs(this.A.height), this.Zg) {
                case 1:
                case 3:
                    a !== b && (this.e.height = Math.abs(this.e.height) * a, this.e.ca());
                    break;
                case 2:
                case 4:
                    a !== this.Tr && (this.e.height = 0 < this.jq ? -this.e.height : Math.abs(this.e.height), this.jq *= -1, this.Tr *= -1, this.e.ca())
            }
            this.Nw = this.A.x;
            this.Ow = this.A.y;
            this.Hw = this.A.q;
            this.Mw = this.A.width;
            this.Kw = this.A.height;
            this.Iw = this.Se;
            this.Jw = this.Te
        }
    };
    g.prototype.Rz = function() {
        return !!this.A
    };
    f.g = new g;
    l.prototype.WA = function(b, c) {
        if (b) {
            var a = b.xn(this.e);
            if (a) {
                this.A =
                    a;
                var f = 0 === this.gf ? this.A.x : this.A.Lf(this.gf, !0),
                    h = 0 === this.gf ? this.A.y : this.A.Lf(this.gf, !1);
                this.Se = this.Te = 1;
                this.A.Ca && (this.Se = this.A.width / this.A.Ca.width, this.Te = this.A.height / this.A.Ca.height);
                this.Mw = this.A.width;
                this.Kw = this.A.height;
                this.De = Oa(f, h, this.e.x, this.e.y) - a.q;
                this.Rc = Ta(f, h, this.e.x, this.e.y);
                this.Zi = this.hj = this.e.q;
                this.$o = a.q;
                this.mode = c;
                this.jx = this.e.width - this.A.width;
                this.ix = this.e.height - this.A.height;
                this.to = this.e.width / this.A.width;
                this.uo = this.e.height / this.A.height;
                this.$r = this.A.width;
                this.Zr = this.A.height;
                this.kq = this.e.width / Math.abs(this.e.width);
                this.Ur = this.A.width / Math.abs(this.A.width);
                this.jq = this.e.height / Math.abs(this.e.height);
                this.Tr = this.A.height / Math.abs(this.A.height);
                this.e.x = this.A.x + Math.cos(this.A.q + this.De) * this.Rc * this.Se;
                this.e.y = this.A.y + Math.sin(this.A.q + this.De) * this.Rc * this.Te;
                this.Nw = this.A.x;
                this.Ow = this.A.y;
                this.Hw = this.A.q;
                this.Iw = this.Se;
                this.Jw = this.Te;
                this.e.characterSet && (this.pn = this.A.width / this.e.sd);
                this.vo = !0;
                this.Ss = !1
            }
        }
    };
    l.prototype.aC = function() {
        this.A = null;
        this.vo = !1;
        this.Te = this.Se = 1
    };
    l.prototype.De = function(b) {
        this.q = b
    };
    l.prototype.gf = function(b) {
        this.gf = b
    };
    l.prototype.ro = function(b) {
        this.ro = b
    };
    l.prototype.Yr = function(b) {
        this.Yr = b
    };
    l.prototype.Zg = function(b) {
        this.Zg = b
    };
    l.prototype.pj = function(b) {
        this.pj = b
    };
    l.prototype.Xr = function(b) {
        this.Xr = b
    };
    f.j = new l;
    p.prototype.XA = function(b) {
        b.G(this.A ? this.A.uid : -1)
    };
    f.n = new p
})();

function hd(g) {
    this.c = g
}
(function() {
    function g() {}

    function l() {}
    var p = hd.prototype;
    p.N = function(b) {
        this.behavior = b;
        this.c = b.c
    };
    p.N.prototype.I = function() {};
    p.L = function(b, d) {
        this.type = b;
        this.behavior = b.behavior;
        this.e = d;
        this.c = b.c
    };
    var f = p.L.prototype;
    f.I = function() {
        this.enabled = 1 == this.u[0];
        this.uc || (this.move = {
            max: 0,
            acc: 0,
            dec: 0
        });
        this.move.max = this.u[1];
        this.move.acc = this.u[2];
        this.move.dec = this.u[3];
        this.uc || (this.target = {
            x: 0,
            y: 0,
            a: 0
        });
        this.Oh = !1;
        this.gi = this.Fg = 0;
        this.Ik = !1;
        this.uc || (this.Oe = {
            x: 0,
            y: 0
        });
        this.Oe.x = 0;
        this.Oe.y =
            0;
        this.uc || (this.Sd = {
            x: 0,
            y: 0,
            a: -1
        });
        this.Sd.x = 0;
        this.Sd.y = 0;
        this.Sd.a = -1;
        this.xm = null;
        this.mr = !1
    };
    f.ub = function() {
        this.Ik && (this.e.x == this.target.x && this.e.y == this.target.y && (this.mr = !0, this.c.trigger(hd.prototype.g.Gt, this.e), this.mr = !1), this.Ik = !1);
        if (this.enabled && this.Oh) {
            var b = this.c.Fh(this.e);
            if (0 != b) {
                this.Oe.x == this.e.x && this.Oe.y == this.e.y || this.vu();
                var d = !1;
                0 != this.move.dec && (d = this.Fg, d = d * d / (2 * this.move.dec) >= this.gi);
                d = d ? -this.move.dec : this.move.acc;
                0 != d && this.Nj(this.Fg + d * b);
                b = this.Fg *
                    b;
                this.gi -= b;
                0 >= this.gi || 0 >= this.Fg ? (this.Oh = !1, this.e.x = this.target.x, this.e.y = this.target.y, this.Nj(0), this.KF(), this.Ik = !0) : (d = this.target.a, this.e.x += b * Math.cos(d), this.e.y += b * Math.sin(d));
                this.e.ca();
                this.Oe.x = this.e.x;
                this.Oe.y = this.e.y
            }
        }
    };
    f.zj = function() {
        this.Sd.x = this.e.x;
        this.Sd.y = this.e.y
    };
    f.Nj = function(b) {
        null != b ? this.Fg = b > this.move.max ? this.move.max : b : 0 == this.move.acc && (this.Fg = this.move.max)
    };
    f.vu = function() {
        var b = this.target.x - this.e.x,
            d = this.target.y - this.e.y;
        this.target.a = Math.atan2(d,
            b);
        this.gi = Math.sqrt(b * b + d * d);
        this.Oe.x = this.e.x;
        this.Oe.y = this.e.y
    };
    f.Np = function(b, d) {
        this.Oh = !0;
        this.target.x = b;
        this.target.y = d;
        this.vu();
        this.Nj(null);
        this.Sd.x = this.e.x;
        this.Sd.y = this.e.y
    };
    f.sF = function() {
        var b = this.c.ni,
            d = this.xm != b;
        this.xm = b;
        return d
    };
    f.KF = function() {
        if (this.sF()) {
            var b = this.e.x - this.Sd.x,
                d = this.e.y - this.Sd.y;
            if (0 != b || 0 != d) this.Sd.a = Ma(Math.atan2(d, b))
        }
    };
    f.$a = function() {
        return {
            en: this.enabled,
            v: this.move,
            t: this.target,
            is_m: this.Oh,
            c_spd: this.Fg,
            rd: this.gi,
            is_ht: this.Ik,
            pp: this.Oe,
            ma: this.Sd,
            lt: this.xm
        }
    };
    f.lb = function(b) {
        this.enabled = b.en;
        this.move = b.v;
        this.target = b.t;
        this.Oh = b.is_m;
        this.Fg = b.c_spd;
        this.gi = b.rd;
        this.Ik = b.is_ht;
        this.Oe = b.pp;
        this.Sd = b.ma;
        this.xm = b.lt
    };
    p.g = new g;
    g.prototype.Gt = function() {
        return this.mr
    };
    g.prototype.Mz = function() {
        return this.enabled && this.Oh
    };
    p.j = new l;
    l.prototype.Np = function(b, d) {
        this.Np(b, d)
    };
    l.prototype.Nj = function(b) {
        this.Nj(b)
    };
    l.prototype.Rj = function() {
        this.Oh = !1
    };
    p.n = new function() {}
})();

function id(g) {
    this.c = g
}
(function() {
    function g() {}

    function l() {}

    function p() {}
    var f = id.prototype;
    f.N = function(a) {
        this.behavior = a;
        this.c = a.c
    };
    f.N.prototype.I = function() {};
    f.L = function(a, b) {
        this.type = a;
        this.behavior = a.behavior;
        this.e = b;
        this.c = a.c;
        this.O = 0
    };
    var b = f.L.prototype,
        d = 2 * Math.PI,
        c = Math.PI / 2,
        a = 3 * Math.PI / 2;
    b.I = function() {
        this.P = 1 === this.u[0];
        this.fj = this.u[1];
        this.Xs = this.u[2];
        this.Wf = this.u[3];
        this.Wf += Math.random() * this.u[4];
        0 === this.Wf ? this.O = 0 : (this.O = this.u[5] / this.Wf * d, this.O += Math.random() * this.u[6] / this.Wf *
            d);
        this.Wc = this.u[7];
        this.Wc += Math.random() * this.u[8];
        this.hf = this.Lh = this.Ja = 0;
        5 === this.fj && (this.Wc = D(this.Wc));
        this.init()
    };
    b.$a = function() {
        return {
            i: this.O,
            a: this.P,
            mv: this.fj,
            w: this.Xs,
            p: this.Wf,
            mag: this.Wc,
            iv: this.Ja,
            iv2: this.Lh,
            r: this.hf,
            lkv: this.rc,
            lkv2: this.Ok
        }
    };
    b.lb = function(a) {
        this.O = a.i;
        this.P = a.a;
        this.fj = a.mv;
        this.Xs = a.w;
        this.Wf = a.p;
        this.Wc = a.mag;
        this.Ja = a.iv;
        this.Lh = a.iv2 || 0;
        this.hf = a.r;
        this.rc = a.lkv;
        this.Ok = a.lkv2 || 0
    };
    b.init = function() {
        switch (this.fj) {
            case 0:
                this.Ja = this.e.x;
                break;
            case 1:
                this.Ja =
                    this.e.y;
                break;
            case 2:
                this.Ja = this.e.width;
                this.hf = this.e.height / this.e.width;
                break;
            case 3:
                this.Ja = this.e.width;
                break;
            case 4:
                this.Ja = this.e.height;
                break;
            case 5:
                this.Ja = this.e.q;
                break;
            case 6:
                this.Ja = this.e.opacity;
                break;
            case 7:
                this.Ja = 0;
                break;
            case 8:
                this.Ja = this.e.x, this.Lh = this.e.y
        }
        this.rc = this.Ja;
        this.Ok = this.Lh
    };
    b.sf = function(b) {
        b = b % d;
        switch (this.Xs) {
            case 0:
                return Math.sin(b);
            case 1:
                return b <= c ? b / c : b <= a ? 1 - 2 * (b - c) / Math.PI : (b - a) / c - 1;
            case 2:
                return 2 * b / d - 1;
            case 3:
                return -2 * b / d + 1;
            case 4:
                return b < Math.PI ?
                    -1 : 1
        }
        return 0
    };
    b.ub = function() {
        var a = this.c.Fh(this.e);
        this.P && 0 !== a && (0 === this.Wf ? this.O = 0 : (this.O += a / this.Wf * d, this.O = this.O % d), this.eH())
    };
    b.eH = function() {
        switch (this.fj) {
            case 0:
                this.e.x !== this.rc && (this.Ja += this.e.x - this.rc);
                this.e.x = this.Ja + this.sf(this.O) * this.Wc;
                this.rc = this.e.x;
                break;
            case 1:
                this.e.y !== this.rc && (this.Ja += this.e.y - this.rc);
                this.e.y = this.Ja + this.sf(this.O) * this.Wc;
                this.rc = this.e.y;
                break;
            case 2:
                this.e.width = this.Ja + this.sf(this.O) * this.Wc;
                this.e.height = this.e.width * this.hf;
                break;
            case 3:
                this.e.width = this.Ja + this.sf(this.O) * this.Wc;
                break;
            case 4:
                this.e.height = this.Ja + this.sf(this.O) * this.Wc;
                break;
            case 5:
                this.e.q !== this.rc && (this.Ja = La(this.Ja + (this.e.q - this.rc)));
                this.e.q = La(this.Ja + this.sf(this.O) * this.Wc);
                this.rc = this.e.q;
                break;
            case 6:
                this.e.opacity = this.Ja + this.sf(this.O) * this.Wc / 100;
                0 > this.e.opacity ? this.e.opacity = 0 : 1 < this.e.opacity && (this.e.opacity = 1);
                break;
            case 8:
                this.e.x !== this.rc && (this.Ja += this.e.x - this.rc), this.e.y !== this.Ok && (this.Lh += this.e.y - this.Ok), this.e.x = this.Ja +
                    Math.cos(this.e.q) * this.sf(this.O) * this.Wc, this.e.y = this.Lh + Math.sin(this.e.q) * this.sf(this.O) * this.Wc, this.rc = this.e.x, this.Ok = this.e.y
        }
        this.e.ca()
    };
    b.Vw = function(a, b) {
        switch (this.fj) {
            case 2:
                this.Ja *= b.width / a.width;
                this.hf = b.height / b.width;
                break;
            case 3:
                this.Ja *= b.width / a.width;
                break;
            case 4:
                this.Ja *= b.height / a.height
        }
    };
    g.prototype.ut = function() {
        return this.P
    };
    f.g = new g;
    l.prototype.$t = function(a) {
        this.P = 1 === a
    };
    f.j = new l;
    p.prototype.pu = function(a) {
        a.C(this.sf(this.O) * this.Wc)
    };
    f.n = new p
})();

function jd(g) {
    this.c = g
}
(function() {
    var g = jd.prototype;
    g.N = function(g) {
        this.behavior = g;
        this.c = g.c
    };
    g.N.prototype.I = function() {};
    g.L = function(g, f) {
        this.type = g;
        this.behavior = g.behavior;
        this.e = f;
        this.c = g.c
    };
    var l = g.L.prototype;
    l.I = function() {
        this.wg = document.createElement("canvas");
        this.pq = this.wg.getContext("2d");
        this.sq = ""
    };
    l.ub = function() {};
    g.g = {};
    g.g.Mz = function() {
        return !1
    };
    g.j = {};
    l = g.j;
    l.Rj = function() {};
    l.nt = function(g) {
        this.wg.width = this.e.Ga.frames[this.e.U].K.width;
        this.wg.height = this.e.Ga.frames[this.e.U].K.height;
        this.pq.fillStyle =
            g;
        this.pq.fillRect(0, 0, this.wg.width, this.wg.height)
    };
    g.n = {};
    g.n.aD = function(g) {
        this.wg.width = this.e.Ga.frames[this.e.U].K.width;
        this.wg.height = this.e.Ga.frames[this.e.U].K.height;
        this.pq.drawImage(this.e.Ga.frames[this.e.U].K, 0, 0);
        this.sq = this.wg.toDataURL("image/png");
        this.sq.replace(/^data:image\/(png|jpg);base64,/, "");
        g.aa(this.sq)
    }
})();

function ld(g) {
    this.c = g
}
(function() {
    function g(b, d) {
        return (b /= d) < 1 / 2.75 ? 7.5625 * b * b + 0 : b < 2 / 2.75 ? 1 * (7.5625 * (b -= 1.5 / 2.75) * b + .75) + 0 : b < 2.5 / 2.75 ? 1 * (7.5625 * (b -= 2.25 / 2.75) * b + .9375) + 0 : 1 * (7.5625 * (b -= 2.625 / 2.75) * b + .984375) + 0
    }
    var l = ld.prototype;
    l.N = function(b) {
        this.behavior = b;
        this.c = b.c
    };
    l.N.prototype.I = function() {};
    l.L = function(b, d) {
        this.type = b;
        this.behavior = b.behavior;
        this.e = d;
        this.c = b.c;
        this.O = 0
    };
    var p = l.L.prototype;
    p.zc = function(b) {
        1 < b && (b = 1);
        mc[this.group] = -1;
        mc[this.group] = b;
        mc[this.group] >= b && (mc[this.group] = b)
    };
    p.Fv = function() {
        "" !=
        this.group && ("undefined" === typeof nc && (nc = {}, mc = {}), "undefined" === typeof nc[this.group] && (nc[this.group] = [], mc[this.group] = -1), -1 == nc[this.group].indexOf(this) && nc[this.group].push(this))
    };
    p.$g = function() {
        this.Pd = this.e.width;
        this.Od = this.e.height;
        this.Cj = this.e.q;
        this.dy = this.e.opacity;
        this.fh = this.e.x;
        this.gh = this.e.y;
        this.jp = this.value
    };
    p.I = function() {
        this.P = 1 === this.u[0];
        this.T = this.u[1];
        this.mk = this.u[2];
        this.M = this.u[3];
        this.target = this.u[4];
        this.duration = this.u[5];
        this.qi = this.u[6];
        this.fa =
            this.u[7];
        this.value = this.u[8];
        this.Oc = this.u[9];
        this.Fq = 1 === this.u[10];
        this.group = this.u[11];
        this.ad = null;
        this.gd = 0;
        5 == this.fa && (this.gd = 1);
        this.Fv();
        this.Mh = !1;
        this.xa = this.e.x;
        this.Wb = this.e.y;
        this.ya = parseFloat(this.target.split(",")[0]);
        this.Pb = parseFloat(this.target.split(",")[1]);
        this.$g();
        this.Dj = this.Kc = this.Va = this.Sb = this.Ba = 0;
        this.hf = this.e.height / this.e.width;
        this.Io = this.reverse = !1;
        this.ye = this.xe = !0;
        this.loop = !1;
        this.ob = this.Ra = 0;
        this.rr = this.fa;
        this.fd = this.rc = this.Ba;
        this.Jd = this.Sb;
        this.Fq && this.init();
        "" == this.M && (this.M = "current");
        this.hl = this.ij = this.il = this.jj = this.ol = this.lj = this.nl = this.kj = !1;
        this.P && this.init()
    };
    p.init = function() {
        this.kj = !1;
        "" === this.M && (this.M = "current");
        "" === this.target && (this.target = "current");
        var b = "current" === this.M,
            d = "current" === this.target,
            c = "OBJ" === this.target;
        "OBJ" === this.target && null != this.ad && (0 == this.T ? this.target = 1 == this.Oc ? this.ad.x - this.e.x + "," + (this.ad.y - this.e.y) : this.ad.x + "," + this.ad.y : 1 == this.T || 2 == this.T || 3 == this.T || 7 == this.T ? this.target =
            1 == this.Oc ? (2 == this.T ? 1 : this.ad.width) + "," + (3 == this.T ? 1 : this.ad.height) : (2 == this.T ? 1 : this.ad.width / this.Pd) + "," + (3 == this.T ? 1 : this.ad.height / this.Od) : 4 == this.T ? this.target = 1 == this.Oc ? Ja(this.ad.q - this.e.q) + "" : Ja(this.ad.q) + "" : 5 == this.T && (this.target = 1 == this.Oc ? 100 * (this.ad.opacity - this.e.opacity) + "" : 100 * this.ad.opacity + ""));
        if (0 == this.T) d && (this.target = this.e.x + "," + this.e.y), b ? this.M = 1 == this.Oc ? this.e.x + "," + this.e.y : this.fh + "," + this.gh : this.reverse || 1 == this.fa || (this.e.x = parseFloat(this.M.split(",")[0]),
            this.e.y = parseFloat(this.M.split(",")[1])), 1 == this.Oc ? (this.loop && (this.e.x = this.fh, this.e.y = this.gh), this.xa = this.e.x, this.Wb = this.e.y, this.reverse ? (this.ya = -parseFloat(this.target.split(",")[0]), this.Pb = -parseFloat(this.target.split(",")[1])) : (this.ya = parseFloat(this.target.split(",")[0]), this.Pb = parseFloat(this.target.split(",")[1])), this.Ba = this.xa, this.Sb = this.Wb, this.Va = this.Ba + this.ya, this.Kc = this.Sb + this.Pb) : (this.reverse ? (this.e.x = parseFloat(this.target.split(",")[0]), this.e.y = parseFloat(this.target.split(",")[1]),
            this.ya = this.fh, this.Pb = this.gh) : (this.e.x = this.fh, this.e.y = this.gh, this.ya = parseFloat(this.target.split(",")[0]), this.Pb = parseFloat(this.target.split(",")[1])), this.xa = this.e.x, this.Wb = this.e.y, this.Ba = this.xa, this.Sb = this.Wb, this.Va = this.ya, this.Kc = this.Pb, -6 == this.fa && (this.Va = this.fh, this.Kc = this.gh));
        else if (1 == this.T || 2 == this.T || 3 == this.T) {
            d && (this.target = "1,1");
            "current" == this.M && (this.M = "1,1");
            this.M = "" + this.M;
            this.target = "" + this.target;
            2 == this.T ? (-1 == this.M.indexOf(",") && (this.M = parseFloat(this.M) +
                ",1"), -1 == this.target.indexOf(",") && (this.target = parseFloat(this.target) + ",1")) : 3 == this.T ? (-1 == this.M.indexOf(",") && (this.M = "1," + parseFloat(this.M)), -1 == this.target.indexOf(",") && (this.target = "1," + parseFloat(this.target))) : (-1 == this.M.indexOf(",") && (this.M = parseFloat(this.M) + "," + parseFloat(this.M)), -1 == this.target.indexOf(",") && (this.target = parseFloat(this.target) + "," + parseFloat(this.target)));
            var a = parseFloat(this.M.split(",")[0]),
                f = parseFloat(this.M.split(",")[1]);
            this.xe = !0;
            var h = parseFloat(this.target.split(",")[0]);
            if (0 == h || isNaN(h)) this.xe = !1;
            3 == this.T && (this.xe = !1);
            this.ye = !0;
            var e = parseFloat(this.target.split(",")[1]);
            if (0 == e || isNaN(e)) this.ye = !1;
            2 == this.T && (this.ye = !1);
            1 == this.Oc ? (this.loop && (this.e.width = this.Pd, this.e.height = this.Od), b || (this.reverse ? (this.e.width = this.e.width * h, this.e.height = this.e.height * e) : (this.e.width = this.e.width * a, this.e.height = this.e.height * f)), this.xa = this.e.width, this.Wb = this.e.height, this.Ba = this.xa, this.Sb = this.Wb, this.reverse ? (this.ya = this.xa * a / h, this.Pb = this.Wb * f / e) : (this.ya =
                this.xa * h, this.Pb = this.Wb * e)) : (b || (this.reverse ? (this.e.width = this.Pd * h, this.e.height = this.Od * e) : (this.e.width = this.Pd * a, this.e.height = this.Od * f)), this.xa = this.e.width, this.Wb = this.e.height, this.Ba = this.xa, this.Sb = this.Wb, this.reverse ? (this.ya = this.Pd * a, this.Pb = this.Od * f) : (this.ya = this.Pd * h, this.Pb = this.Od * e));
            this.Va = this.ya;
            this.Kc = this.Pb; - 6 == this.fa && (this.Va = this.Pd * a, this.Kc = this.Od * f)
        } else if (4 == this.T) d && (this.target = Ja(this.e.q)), "current" == this.M || this.reverse || 1 == this.fa || (this.e.q = D(parseFloat(this.M.split(",")[0]))),
            1 == this.Oc ? (this.loop && (this.e.q = this.Cj), this.xa = this.e.q, this.reverse ? this.ya = this.e.q - D(parseFloat(this.target.split(",")[0])) : this.ya = this.e.q + D(parseFloat(this.target.split(",")[0]))) : this.reverse ? (this.e.q = D(parseFloat(this.target.split(",")[0])), this.xa = this.e.q, this.ya = this.Cj) : (this.e.q = this.Cj, this.xa = this.e.q, this.ya = D(parseFloat(this.target.split(",")[0]))), this.Ba = this.xa, this.Va = Ja(this.ya), -6 == this.fa && (this.Va = Ja(this.Cj)), this.Dj = D(this.Va);
        else if (5 == this.T) "current" == this.M && (this.M =
            this.e.opacity), d && (this.target = "" + this.e.opacity), b || this.reverse || 1 == this.fa || (this.e.opacity = parseFloat(this.M.split(",")[0]) / 100), 1 == this.Oc ? (this.loop && (this.e.opacity = this.dy), this.Ba = this.xa = this.e.opacity, this.ya = this.reverse ? -parseFloat(this.target.split(",")[0]) / 100 : parseFloat(this.target.split(",")[0]) / 100, this.Va = this.Ba + this.ya) : (this.xa = this.e.opacity, this.reverse ? (this.Ba = parseFloat(this.target.split(",")[0]) / 100, this.ya = parseFloat(this.M.split(",")[0]) / 100) : (this.Ba = this.xa, this.ya =
            parseFloat(this.target.split(",")[0]) / 100), this.Va = this.ya), -6 == this.fa && (this.Va = this.dy);
        else if (6 == this.T) isNaN(this.value) && (this.value = 0), "current" == this.M && (this.M = "" + this.value), d && (this.target = "" + this.value), b || this.reverse || 1 == this.fa || (this.value = parseFloat(this.M.split(",")[0])), 1 == this.Oc ? (this.loop && (this.value = this.jp), b || (this.value = this.reverse ? parseFloat(this.target.split(",")[0]) : parseFloat(this.M.split(",")[0])), this.xa = this.value, this.reverse ? this.ya = this.xa - parseFloat(this.target.split(",")[0]) :
            this.ya = this.xa + parseFloat(this.target.split(",")[0]), this.Ba = this.xa, this.Va = this.ya) : (b || (this.value = this.reverse ? parseFloat(this.target.split(",")[0]) : parseFloat(this.M.split(",")[0])), this.xa = this.value, this.ya = this.reverse ? parseFloat(this.M.split(",")[0]) : parseFloat(this.target.split(",")[0]), this.Ba = this.xa, this.Va = this.ya), -6 == this.fa && (this.Va = this.jp);
        else if (7 == this.T) {
            d && (this.target = this.e.width + "," + this.e.height);
            "current" == this.M || this.reverse || 1 == this.fa || (this.e.width = parseFloat(this.M.split(",")[0]),
                this.e.height = parseFloat(this.M.split(",")[1]));
            this.xe = !0;
            h = parseFloat(this.target.split(",")[0]);
            if (0 > h || isNaN(h)) this.xe = !1;
            this.ye = !0;
            e = parseFloat(this.target.split(",")[1]);
            if (0 > e || isNaN(e)) this.ye = !1;
            1 == this.Oc ? (this.loop && (this.e.width = this.Pd, this.e.height = this.Od), this.xa = this.e.width, this.Wb = this.e.height, this.reverse ? (this.ya = this.xa - parseFloat(this.target.split(",")[0]), this.Pb = this.Wb - parseFloat(this.target.split(",")[1])) : (this.ya = this.xa + parseFloat(this.target.split(",")[0]), this.Pb =
                this.Wb + parseFloat(this.target.split(",")[1]))) : (b || (this.reverse ? (this.e.width = parseFloat(this.target.split(",")[0]), this.e.height = parseFloat(this.target.split(",")[1])) : (this.e.width = this.Pd, this.e.height = this.Od)), this.xa = this.e.width, this.Wb = this.e.height, this.reverse ? (this.ya = this.Pd, this.Pb = this.Od) : (this.ya = parseFloat(this.target.split(",")[0]), this.Pb = parseFloat(this.target.split(",")[1])));
            this.Ba = this.xa;
            this.Sb = this.Wb;
            this.Va = this.ya;
            this.Kc = this.Pb; - 6 == this.fa && (this.Va = this.Pd, this.Kc =
                this.Od)
        }
        this.fd = this.rc = this.Ba;
        this.Jd = this.Sb;
        this.Ra = parseFloat(this.qi.split(",")[0]);
        this.ob = parseFloat(this.qi.split(",")[1]);
        if (0 > this.Ra || isNaN(this.Ra)) this.Ra = 0;
        if (0 > this.ob || isNaN(this.ob)) this.ob = 0;
        b && (this.M = "current");
        d && (this.target = "current");
        c && (this.target = "OBJ")
    };
    p.ED = function(b, d) {
        switch (this.mk) {
            case 0:
                return 1 * b / d + 0;
            case 1:
                return 1 * (b /= d) * b + 0;
            case 2:
                return -1 * (b /= d) * (b - 2) + 0;
            case 3:
                return 1 > (b /= d / 2) ? .5 * b * b + 0 : -.5 * (--b * (b - 2) - 1) + 0;
            case 4:
                return 1 * (b /= d) * b * b + 0;
            case 5:
                return 1 * ((b =
                    b / d - 1) * b * b + 1) + 0;
            case 6:
                return 1 > (b /= d / 2) ? .5 * b * b * b + 0 : .5 * ((b -= 2) * b * b + 2) + 0;
            case 7:
                return 1 * (b /= d) * b * b * b + 0;
            case 8:
                return -1 * ((b = b / d - 1) * b * b * b - 1) + 0;
            case 9:
                return 1 > (b /= d / 2) ? .5 * b * b * b * b + 0 : -.5 * ((b -= 2) * b * b * b - 2) + 0;
            case 10:
                return 1 * (b /= d) * b * b * b * b + 0;
            case 11:
                return 1 * ((b = b / d - 1) * b * b * b * b + 1) + 0;
            case 12:
                return 1 > (b /= d / 2) ? .5 * b * b * b * b * b + 0 : .5 * ((b -= 2) * b * b * b * b + 2) + 0;
            case 13:
                return -1 * (Math.sqrt(1 - (b /= d) * b) - 1) + 0;
            case 14:
                return 1 * Math.sqrt(1 - (b = b / d - 1) * b) + 0;
            case 15:
                return 1 > (b /= d / 2) ? -.5 * (Math.sqrt(1 - b * b) - 1) + 0 : .5 * (Math.sqrt(1 - (b -=
                    2) * b) + 1) + 0;
            case 16:
                var c = 0;
                0 == c && (c = 1.70158);
                return 1 * (b /= d) * b * ((c + 1) * b - c) + 0;
            case 17:
                return c = 0, 0 == c && (c = 1.70158), 1 * ((b = b / d - 1) * b * ((c + 1) * b + c) + 1) + 0;
            case 18:
                return c = 0, 0 == c && (c = 1.70158), 1 > (b /= d / 2) ? .5 * b * b * (((c *= 1.525) + 1) * b - c) + 0 : .5 * ((b -= 2) * b * (((c *= 1.525) + 1) * b + c) + 2) + 0;
            case 19:
                var a = 0,
                    f = 0;
                if (0 == b) break;
                if (1 == (b /= d)) return 1;
                0 == f && (f = .3 * d);
                0 == a || a < Math.abs(1) ? (a = 1, c = f / 4) : c = f / (2 * Math.PI) * Math.asin(1 / a);
                return -(a * Math.pow(2, 10 * --b) * Math.sin(2 * (b * d - c) * Math.PI / f)) + 0;
            case 20:
                f = a = 0;
                if (0 == b) break;
                if (1 == (b /= d)) return 1;
                0 == f && (f = .6 * d);
                0 == a || a < Math.abs(1) ? (a = 1, c = f / 4) : c = f / (2 * Math.PI) * Math.asin(1 / a);
                return a * Math.pow(2, -10 * b) * Math.sin(2 * (b * d - c) * Math.PI / f) + 1;
            case 21:
                f = a = 0;
                if (0 == b) break;
                if (2 == (b /= d / 2)) return 1;
                0 == f && (f = .3 * d * 1.5);
                0 == a || a < Math.abs(1) ? (a = 1, c = f / 4) : c = f / (2 * Math.PI) * Math.asin(1 / a);
                return 1 > b ? -.5 * a * Math.pow(2, 10 * --b) * Math.sin(2 * (b * d - c) * Math.PI / f) + 0 : a * Math.pow(2, -10 * --b) * Math.sin(2 * (b * d - c) * Math.PI / f) * .5 + 1;
            case 22:
                return 1 - g(d - b, d) + 0;
            case 23:
                return g(b, d);
            case 24:
                return b < d / 2 ? .5 * (1 - g(d - 2 * b, d) + 0) + 0 : .5 * g(2 * b - d, d) +
                    .5;
            case 25:
                return c = b / d / 2, 2 * c * c * (3 - 2 * c);
            case 26:
                return c = (b / d + 1) / 2, 2 * c * c * (3 - 2 * c) - 1;
            case 27:
                return c = b / d, c * c * (3 - 2 * c)
        }
        return 0
    };
    p.$a = function() {
        return {
            i: this.O,
            active: this.P,
            tweened: this.T,
            easing: this.mk,
            initial: this.M,
            target: this.target,
            duration: this.duration,
            wait: this.qi,
            playmode: this.fa,
            value: this.value,
            coord_mode: this.Oc,
            forceInit: this.Fq,
            group: this.group,
            targetObject: this.ad,
            pingpongCounter: this.gd,
            isPaused: this.Mh,
            initialX: this.xa,
            initialY: this.Wb,
            targetX: this.ya,
            targetY: this.Pb,
            tweenSaveWidth: this.Pd,
            tweenSaveHeight: this.Od,
            tweenSaveAngle: this.Cj,
            tweenSaveX: this.fh,
            tweenSaveY: this.gh,
            tweenSaveValue: this.jp,
            tweenInitialX: this.Ba,
            tweenInitialY: this.Sb,
            tweenTargetX: this.Va,
            tweenTargetY: this.Kc,
            tweenTargetAngle: this.Dj,
            ratio: this.hf,
            reverse: this.reverse,
            rewindMode: this.Io,
            doTweenX: this.xe,
            doTweenY: this.ye,
            loop: this.loop,
            initiating: this.Ra,
            cooldown: this.ob,
            lastPlayMode: this.rr,
            lastKnownValue: this.rc,
            lastKnownX: this.fd,
            lastKnownY: this.Jd,
            onStarted: this.kj,
            onStartedDone: this.nl,
            onWaitEnd: this.lj,
            onWaitEndDone: this.ol,
            onEnd: this.jj,
            onEndDone: this.il,
            onCooldown: this.ij,
            onCooldownDone: this.hl
        }
    };
    p.lb = function(b) {
        this.O = b.i;
        this.P = b.active;
        this.T = b.tweened;
        this.mk = b.easing;
        this.M = b.initial;
        this.target = b.target;
        this.duration = b.duration;
        this.qi = b.wait;
        this.fa = b.playmode;
        this.value = b.value;
        this.Oc = b.coord_mode;
        this.Fq = b.forceInit;
        this.group = b.group;
        this.ad = b.targetObject;
        this.gd = b.pingpongCounter;
        this.Mh = b.isPaused;
        this.xa = b.initialX;
        this.Wb = b.initialY;
        this.ya = b.targetX;
        this.Pb = b.targetY;
        this.Pd = b.tweenSaveWidth;
        this.Od =
            b.tweenSaveHeight;
        this.Cj = b.tweenSaveAngle;
        this.fh = b.tweenSaveX;
        this.gh = b.tweenSaveY;
        this.jp = b.tweenSaveValue;
        this.Ba = b.tweenInitialX;
        this.Sb = b.tweenInitialY;
        this.Va = b.tweenTargetX;
        this.Kc = b.tweenTargetY;
        this.Dj = b.tweenTargetAngle;
        this.hf = b.ratio;
        this.reverse = b.reverse;
        this.Io = b.rewindMode;
        this.xe = b.doTweenX;
        this.ye = b.doTweenY;
        this.loop = b.loop;
        this.Ra = b.initiating;
        this.ob = b.cooldown;
        this.rr = b.lastPlayMode;
        this.rc = b.lastKnownValue;
        this.fd = b.lastKnownX;
        this.Jd = b.lastKnownY;
        this.kj = b.onStarted;
        this.nl =
            b.onStartedDone;
        this.lj = b.onWaitEnd;
        this.ol = b.onWaitEndDone;
        this.jj = b.onEnd;
        this.il = b.onEndDone;
        this.ij = b.onCooldown;
        this.hl = b.onCooldownDone;
        this.Fv()
    };
    p.ub = function() {
        var b = this.c.Fh(this.e),
            d = -1 == this.O;
        this.P && 0 !== b && (0 != this.O || this.kj || (this.kj = !0, this.hl = this.ij = this.il = this.jj = this.ol = this.lj = this.nl = !1, this.c.trigger(ld.prototype.g.JA, this.e), this.nl = !0), this.O = -1 == this.O ? this.Ra + this.duration + this.ob : this.O + b, this.O <= this.Ra || (0 == this.lj && (this.lj = !0, this.c.trigger(ld.prototype.g.Hp, this.e),
            this.ol = !0), this.O <= this.duration + this.Ra && (b = this.ED(this.O - this.Ra, this.duration), 0 == this.T ? (1 == this.Oc ? (this.e.x !== this.fd && (this.Ba += this.e.x - this.fd, this.Va += this.e.x - this.fd), this.e.y !== this.Jd && (this.Sb += this.e.y - this.Jd, this.Kc += this.e.y - this.Jd)) : (this.e.x !== this.fd && (this.Ba += this.e.x - this.fd), this.e.y !== this.Jd && (this.Sb += this.e.y - this.Jd)), this.e.x = this.Ba + (this.Va - this.Ba) * b, this.e.y = this.Sb + (this.Kc - this.Sb) * b, this.fd = this.e.x, this.Jd = this.e.y) : 1 == this.T || 2 == this.T || 3 == this.T ? (this.e.width !==
                this.fd && (this.Ba = this.e.width), this.e.height !== this.Jd && (this.Sb = this.e.height), this.xe && (this.e.width = this.Ba + (this.Va - this.Ba) * b), this.ye ? this.e.height = this.Sb + (this.Kc - this.Sb) * b : 1 == this.T && (this.e.height = this.e.width * this.hf), this.fd = this.e.width, this.Jd = this.e.height) : 4 == this.T ? (b = this.Ba + (this.Dj - this.Ba) * b, this.O >= this.duration + this.Ra && (b = this.Dj), this.e.q = La(b)) : 5 == this.T ? (1 == this.Oc && this.e.opacity !== this.fd && (this.Ba = this.e.opacity), this.e.opacity = this.Ba + (this.Va - this.Ba) * b, this.fd = this.e.opacity) :
            6 == this.T ? this.value = this.Ba + (this.Va - this.Ba) * b : 7 == this.T && (1 == this.Oc && (this.e.width !== this.fd && (this.Ba = this.e.width), this.e.height !== this.Jd && (this.Sb = this.e.height)), this.xe && (this.e.width = this.Ba + (this.Va - this.Ba) * b), this.ye && (this.e.height = this.Sb + (this.Kc - this.Sb) * b), this.fd = this.e.width, this.Jd = this.e.height), this.e.ca()), this.O >= this.duration + this.Ra && (this.iD(d), this.e.ca(), 0 == this.jj && (this.jj = !0, this.c.trigger(ld.prototype.g.Et, this.e), this.il = !0))))
    };
    p.iD = function(b) {
        switch (this.T) {
            case 0:
                this.e.x =
                    this.Va;
                this.e.y = this.Kc;
                break;
            case 1:
                this.xe && (this.e.width = this.Va);
                this.ye ? this.e.height = this.Kc : this.e.height = this.e.width * this.hf;
                break;
            case 2:
                this.e.width = this.Va;
                break;
            case 3:
                this.e.height = this.Kc;
                break;
            case 4:
                this.e.q = La(this.Dj);
                this.rc = this.e.q;
                break;
            case 5:
                this.e.opacity = this.Va;
                break;
            case 6:
                this.value = this.Va;
                break;
            case 7:
                this.xe && (this.e.width = this.Va), this.ye && (this.e.height = this.Kc)
        }
        this.O >= this.duration + this.Ra + this.ob && (0 == this.fa ? (this.reverse = this.P = !1, this.O = this.duration + this.Ra +
            this.ob) : 1 == this.fa ? (this.O = 0, this.init(), this.P = !0) : 2 == this.fa ? b ? (this.reverse = !1, this.init()) : (this.reverse = !this.reverse, this.O = 0, this.init(), this.P = !0) : 3 == this.fa ? this.c.ne(this.e) : 4 == this.fa ? (this.loop = !0, this.O = 0, this.init(), this.P = !0) : 5 == this.fa ? b ? (this.reverse = !1, this.init()) : 0 >= this.gd ? (this.O = this.duration + this.Ra + this.ob, this.P = !1) : (this.reverse ? (--this.gd, this.reverse = !1) : (--this.gd, this.reverse = !0), this.O = 0, this.init(), this.P = !0) : -6 == this.fa ? (this.fa = this.rr, this.reverse = !1, this.O = 0,
            this.P = !1) : 6 == this.fa && (this.reverse = !1, this.O = this.duration + this.Ra + this.ob, this.P = !1));
        0 == this.ij && (this.ij = !0, this.c.trigger(ld.prototype.g.tA, this.e), this.hl = !0)
    };
    l.g = {};
    p = l.g;
    p.ut = function() {
        return this.P
    };
    p.vH = function(b, d) {
        var c = [];
        nc[this.group].forEach(function(a) {
            c.push(a.O / (a.duration + a.Ra + a.ob))
        });
        return lc(Math.min.apply(null, c), b, d)
    };
    p.Xy = function(b, d) {
        return lc(this.O / (this.duration + this.Ra + this.ob), b, d)
    };
    p.JA = function() {
        if (!1 === this.nl) return this.kj
    };
    p.Hp = function() {
        if (!1 === this.ol) return this.lj
    };
    p.Et = function() {
        if (!1 === this.il) return this.jj
    };
    p.tA = function() {
        if (!1 === this.hl) return this.ij
    };
    l.j = {};
    var f = l.j;
    f.$t = function(b) {
        this.P = 1 === b
    };
    f.sI = function(b, d) {
        "" === d && (d = this.group);
        (1 === b || nc[d].every(function(b) {
            return !b.P
        })) && nc[d].forEach(function(c) {
            1 === b ? f.uz.apply(c) : f.lu.apply(c)
        })
    };
    f.tI = function(b, d) {
        "" === d && (d = this.group);
        nc[d].forEach(function(c) {
            f.Rj.apply(c, [b])
        })
    };
    f.$H = function(b, d, c) {
        "" === c && (c = this.group);
        (1 === b || nc[c].every(function(a) {
            return !a.P
        })) && nc[c].forEach(function(a) {
            1 ===
                b ? f.vz.apply(a, [d]) : f.Jp.apply(a, [d])
        })
    };
    f.uz = function() {
        this.loop = 4 === this.fa;
        5 == this.fa && (this.gd = 1);
        6 == this.fa || -6 == this.fa ? this.O < this.duration + this.ob + this.Ra && (this.reverse = !1, this.init(), this.P = !0) : (this.reverse = !1, this.O = 0, this.init(), this.P = !0)
    };
    f.vz = function(b) {
        this.Io = 1 == b;
        this.loop = 4 === this.fa;
        5 == this.fa && (this.gd = 1);
        6 == this.fa || -6 == this.fa ? this.O < this.duration + this.ob + this.Ra && (this.reverse = !0, this.init(), this.P = !0) : b ? 1 == this.gd && this.O >= this.duration + this.ob + this.Ra && (this.reverse = !0,
            this.O = 0, this.gd = 2, this.init(), this.P = !0) : (this.reverse = !0, this.O = 0, this.init(), this.P = !0)
    };
    f.lu = function() {
        this.P || (this.loop = 4 === this.fa, 5 == this.fa && (this.gd = 1), 6 == this.fa || -6 == this.fa ? this.O < this.duration + this.ob + this.Ra && (this.reverse = !1, this.init(), this.P = !0) : (this.gd = 1, this.reverse = !1, this.O = 0, this.init(), this.P = !0))
    };
    f.Rj = function(b) {
        this.P && (2 == this.fa || 4 == this.fa ? this.O = this.reverse ? 0 : -1 : 1 == b ? this.$g() : 0 == b ? this.O = this.Ra + this.ob + this.duration : this.O = 0, this.ub(), this.P = !1)
    };
    f.TH = function() {
        this.P &&
            (this.Mh = !0, this.P = !1)
    };
    f.ZH = function() {
        this.Mh ? (this.P = !0, this.Mh = !1) : this.P || (this.reverse = !1, this.O = 0, this.init(), this.P = !0)
    };
    f.Jp = function(b) {
        this.Io = 1 == b;
        this.P || (this.loop = 4 === this.fa, 5 == this.fa && (this.gd = 1), 6 == this.fa || -6 == this.fa ? this.O < this.duration + this.ob + this.Ra && (this.reverse = !0, this.init(), this.P = !0) : b ? 1 == this.gd && this.O >= this.duration + this.ob + this.Ra && (this.reverse = !0, this.O = 0, this.gd = 2, this.init(), this.P = !0) : (this.reverse = !0, this.O = 0, this.init(), this.P = !0))
    };
    f.eu = function(b) {
        this.duration =
            b
    };
    f.hu = function(b) {
        this.qi = b;
        this.Ra = parseFloat(this.qi.split(",")[0]);
        this.ob = parseFloat(this.qi.split(",")[1]);
        if (0 > this.Ra || isNaN(this.Ra)) this.Ra = 0;
        if (0 > this.ob || isNaN(this.ob)) this.ob = 0
    };
    f.fu = function(b) {
        "string" == typeof b ? (this.target = b, this.ya = parseFloat(b.split(",")[0]), this.Pb = parseFloat(b.split(",")[1])) : this.ya = this.target = b;
        this.P || this.init()
    };
    f.mI = function(b) {
        b && (b = b.xn()) && (this.ad = b, this.target = "OBJ")
    };
    f.nI = function(b) {
        2 == this.T || 3 == this.T || 4 == this.T || 5 == this.T || 6 == this.T ? ("string" ==
            typeof b ? this.target = parseFloat(b.split(",")[0]) : this.target = "" + b + "," + this.Pb, this.ya = this.target) : (this.target = String(b) + "," + this.target.split(",")[1], this.ya = parseFloat(this.target.split(",")[0]), this.Pb = parseFloat(this.target.split(",")[1]));
        this.P || (this.$g(), this.init())
    };
    f.oI = function(b) {
        2 == this.T || 3 == this.T || 4 == this.T || 5 == this.T || 6 == this.T ? this.ya = this.target = "string" == typeof b ? parseFloat(b) + "" : this.ya + "," + b : (this.target = this.target.split(",")[0] + "," + String(b), this.ya = parseFloat(this.target.split(",")[0]),
            this.Pb = parseFloat(this.target.split(",")[1]));
        this.P || (this.$g(), this.init())
    };
    f.zB = function(b) {
        "string" == typeof b ? (this.M = b, this.xa = parseFloat(b.split(",")[0]), this.Wb = parseFloat(b.split(",")[1])) : (this.M = "" + b, this.xa = b);
        6 == this.T && (this.value = this.xa);
        this.P || (this.$g(), this.init())
    };
    f.iI = function(b) {
        2 == this.T || 3 == this.T || 4 == this.T || 5 == this.T || 6 == this.T ? ("string" == typeof b ? this.M = parseFloat(b) : this.M = "" + b + "," + this.Wb, this.xa = this.M) : ("" == this.M && (this.M = "current"), this.M = String(b) + "," + ("current" ==
            this.M ? this.gh : this.M.split(",")[1]), this.xa = parseFloat(this.M.split(",")[0]), this.Wb = parseFloat(this.M.split(",")[1]));
        6 == this.T && (this.value = this.xa);
        this.P || (this.$g(), this.init())
    };
    f.jI = function(b) {
        2 == this.T || 3 == this.T || 4 == this.T || 5 == this.T || 6 == this.T ? ("string" == typeof b ? this.M = parseFloat(b) : this.M = "" + this.xa + "," + b, this.xa = this.M) : ("" == this.M && (this.M = "current"), this.M = ("current" == this.M ? this.fh : this.M.split(",")[0]) + "," + String(b), this.xa = parseFloat(this.M.split(",")[0]), this.Wb = parseFloat(this.M.split(",")[1]));
        this.P || (this.$g(), this.init())
    };
    f.rI = function(b) {
        this.value = b
    };
    f.qI = function(b) {
        this.T = b
    };
    f.fI = function(b) {
        this.mk = b
    };
    f.kI = function(b) {
        this.fa = b
    };
    f.GB = function(b, d, c, a, g, h, e, l) {
        this.T = b;
        this.fa = d;
        this.mk = c;
        f.zB.apply(this, [a]);
        f.fu.apply(this, [g]);
        f.eu.apply(this, [h]);
        f.hu.apply(this, [e]);
        this.Oc = l;
        this.$g()
    };
    l.n = {};
    l = l.n;
    l.bB = function(b) {
        b.C(this.O / (this.duration + this.Ra + this.ob))
    };
    l.XH = function(b) {
        b.C(this.O)
    };
    l.jt = function(b) {
        b.C(this.duration)
    };
    l.HH = function(b) {
        b.C(this.Ra)
    };
    l.yH = function(b) {
        b.C(this.ob)
    };
    l.UB = function(b) {
        b.aa(this.target)
    };
    l.pu = function(b) {
        b.C(this.value)
    };
    l.Mh = function(b) {
        b.G(this.Mh ? 1 : 0)
    }
})();

function md(g) {
    this.c = g;
    this.ws = this.Uo = this.Il = this.vs = 0
}
(function() {
    var g = md.prototype;
    g.N = function(g) {
        this.behavior = g;
        this.c = g.c
    };
    g.N.prototype.I = function() {};
    g.L = function(g, f) {
        this.type = g;
        this.behavior = g.behavior;
        this.e = f;
        this.c = g.c
    };
    var l = g.L.prototype;
    l.I = function() {
        this.enabled = 0 !== this.u[0]
    };
    l.$a = function() {
        return {
            smg: this.behavior.vs,
            ss: this.behavior.Il,
            se: this.behavior.Uo,
            smd: this.behavior.ws
        }
    };
    l.lb = function(g) {
        this.behavior.vs = g.smg;
        this.behavior.Il = g.ss;
        this.behavior.Uo = g.se;
        this.behavior.ws = g.smd
    };
    l.ub = function() {};
    l.zj = function() {
        if (this.enabled) {
            var g =
                this.behavior.eo.ig(),
                f = 0,
                b = 0,
                d, c, a, l = 0;
            d = 0;
            for (c = g.length; d < c; d++) {
                a: {
                    a = g[d];
                    for (var h = void 0, e = void 0, t = void 0, h = 0, e = a.la.length; h < e; ++h)
                        if (t = a.la[h], t.behavior instanceof md) {
                            a = t;
                            break a
                        }
                    a = null
                }
                a && a.enabled && (f += g[d].x, b += g[d].y, ++l)
            }
            g = this.e.F.jc;
            c = this.c.hc.ta;
            a = d = 0;
            c >= this.behavior.Il && c < this.behavior.Uo && (d = this.behavior.vs * Math.min(this.c.qf, 1), 0 === this.behavior.ws && (d *= 1 - (c - this.behavior.Il) / (this.behavior.Uo - this.behavior.Il)), c = Math.random() * Math.PI * 2, a = Math.random() * d, d = Math.cos(c) * a,
                a *= Math.sin(c));
            g.zl(f / l + d);
            g.Al(b / l + a)
        }
    };
    g.j = new function() {}
})();

function xc() {
    return [Ac, Bc, Cc, Dc, Fc, Ec, X, cd, bd, yc, Jc, Kc, Lc, Vc, Mc, Tc, Xc, Yc, Zc, $c, Uc, W, Wc, ld, id, dd, fd, ed, md, hd, jd, Q.prototype.g.Kt, Xc.prototype.j.rm, W.prototype.j.Ij, X.prototype.j.Ij, Xc.prototype.j.tm, W.prototype.j.tm, W.prototype.j.Lp, W.prototype.j.qm, Q.prototype.n.xF, Wc.prototype.j.qm, Xc.prototype.j.qm, Q.prototype.j.BB, Wc.prototype.g.em, Wc.prototype.j.Ij, Q.prototype.g.Zy, Q.prototype.j.wB, Q.prototype.g.Ty, Jc.prototype.j.Az, Fc.prototype.j.YB, Q.prototype.n.lG, Q.prototype.g.Kz, Q.prototype.g.$B, Q.prototype.g.mz,
        Wc.prototype.j.gu, Q.prototype.n.sn, Q.prototype.n.fl, Q.prototype.n.wF, Q.prototype.n.LF, Zc.prototype.g.Fp, Bc.prototype.j.Oj, X.prototype.n.Sy, X.prototype.n.Ry, Q.prototype.g.qz, Bc.prototype.n.yi, Bc.prototype.j.Pj, Q.prototype.n.DF, Q.prototype.j.cC, yc.prototype.j.CallFunction, yc.prototype.g.km, Bc.prototype.g.Yy, Q.prototype.j.LB, Q.prototype.n.floor, Q.prototype.n.random, Bc.prototype.n.By, X.prototype.n.zz, Bc.prototype.j.ez, Q.prototype.n.Hg, Q.prototype.g.kt, Dc.prototype.j.$y, Kc.prototype.g.Wt, Q.prototype.n.wG,
        Jc.prototype.g.It, X.prototype.g.em, X.prototype.j.qm, Jc.prototype.n.Xz, X.prototype.j.fA, X.prototype.g.uf, X.prototype.j.rm, X.prototype.j.iz, Lc.prototype.j.At, Q.prototype.n.max, Q.prototype.n.zF, Q.prototype.n.SC, Q.prototype.n.cH, Q.prototype.n.exp, X.prototype.j.tm, X.prototype.j.Oj, X.prototype.n.yi, X.prototype.n.fm, X.prototype.j.jB, X.prototype.n.Fy, X.prototype.n.Ey, X.prototype.n.kh, X.prototype.n.mh, yc.prototype.j.HB, Dc.prototype.n.nz, yc.prototype.n.OA, X.prototype.n.Py, W.prototype.j.rm, X.prototype.n.yz,
        Q.prototype.n["int"], Q.prototype.j.cz, X.prototype.j.nt, W.prototype.j.bu, W.prototype.j.pm, W.prototype.j.rB, Q.prototype.n.Su, X.prototype.j.QA, fd.prototype.j.WA, W.prototype.j.zp, X.prototype.n.gz, W.prototype.g.Vy, X.prototype.n.Bz, W.prototype.g.Wz, W.prototype.j.Mp, ld.prototype.j.lu, ld.prototype.g.ut, Zc.prototype.g.Gp, Zc.prototype.n.kh, Zc.prototype.n.mh, Zc.prototype.n.XB, Q.prototype.n.fD, Zc.prototype.n.gC, Zc.prototype.n.hC, Xc.prototype.n.kh, Xc.prototype.n.mh, Zc.prototype.n.WB, Zc.prototype.g.Ep, Zc.prototype.g.Vz,
        ed.prototype.j.pz, Yc.prototype.j.tm, Yc.prototype.j.Lp, X.prototype.j.Lp, Yc.prototype.n.Opacity, Zc.prototype.g.Ht, yc.prototype.g.Wy, X.prototype.j.NA, X.prototype.j.Ny, Jc.prototype.j.AB, X.prototype.n.mB, Jc.prototype.g.Jt, Q.prototype.j.Cz, ld.prototype.j.Rj, ld.prototype.j.GB, ld.prototype.n.jt, ld.prototype.n.pu, Q.prototype.j.oB, X.prototype.j.Ky, fd.prototype.j.aC, W.prototype.g.em, X.prototype.j.jz, X.prototype.n.Qy, ld.prototype.g.Xy, ld.prototype.g.Et, W.prototype.j.iA, bd.prototype.j.eB, bd.prototype.j.lB, X.prototype.n.Jy,
        Q.prototype.n.ceil, Q.prototype.n.round, X.prototype.j.gB, W.prototype.j.yp, X.prototype.n.$E, Q.prototype.j.wy, Q.prototype.j.QB, W.prototype.g.uf, W.prototype.j.ty, bd.prototype.j.ry, W.prototype.n.kh, W.prototype.n.mh, W.prototype.j.au, Xc.prototype.j.iu, bd.prototype.j.fB, Q.prototype.n.$G, Ec.prototype.n.xz, bd.prototype.g.Lj, Xc.prototype.n.yi, bd.prototype.n.hB, bd.prototype.g.Ft, id.prototype.j.$t, W.prototype.g.Uy, W.prototype.n.yy, Bc.prototype.j.cB, Wc.prototype.g.jh, Bc.prototype.j.vi, Bc.prototype.n.fm, Wc.prototype.j.vB,
        Wc.prototype.n.Gy, Wc.prototype.j.uB, Wc.prototype.n.bA, Q.prototype.n.replace, Wc.prototype.n.tf, Wc.prototype.j.xB, Wc.prototype.j.KB, yc.prototype.n.PA, Wc.prototype.g.Ip, Ec.prototype.n.tf, Wc.prototype.n.Text, Dc.prototype.j.oz, $c.prototype.j.RB, Ec.prototype.j.bt, Q.prototype.j.iB, Ec.prototype.j.vy, Ec.prototype.j.vi, $c.prototype.n.hA, Ec.prototype.n.zt, Ec.prototype.g.Ez, Q.prototype.n.find, Q.prototype.n.EF, Q.prototype.n.left, Q.prototype.n.aH, Bc.prototype.j.Yt, Bc.prototype.n.wz, Xc.prototype.n.wp, Q.prototype.n.time,
        yc.prototype.n.Zs, Bc.prototype.j.Ij, W.prototype.n.Sp, Wc.prototype.n.Sp, Xc.prototype.n.Sp, Bc.prototype.g.az, Q.prototype.g.TA, Vc.prototype.j.uy, Vc.prototype.j.Xt, W.prototype.j.TB, Q.prototype.j.EB, Tc.prototype.j.fz, Bc.prototype.n.Hz, Q.prototype.g.SA, Uc.prototype.j.ku, Xc.prototype.j.zp, Uc.prototype.g.mm, W.prototype.g.Ip, Uc.prototype.n.ct, Uc.prototype.n.dt, Uc.prototype.j.du, Xc.prototype.g.Ip, Tc.prototype.j.dm, Tc.prototype.j.SB, Tc.prototype.j.gA, Tc.prototype.g.Lt, W.prototype.n.tf, Xc.prototype.n.tf, Vc.prototype.g.xp,
        Vc.prototype.g.$A, Q.prototype.g.RA, W.prototype.n.Rp, Q.prototype.g.jA, W.prototype.j.gm, W.prototype.n.yi, W.prototype.n.wp, Wc.prototype.j.gm, Wc.prototype.n.Rp, Xc.prototype.j.gm, W.prototype.g.jh, Q.prototype.n.sG, Q.prototype.n.qG, W.prototype.n.zy, W.prototype.g.Qz, Xc.prototype.n.Rp, W.prototype.g.UA, fd.prototype.n.XA, Q.prototype.g.rz, fd.prototype.g.Rz, Q.prototype.n["float"], Wc.prototype.n.kh, Wc.prototype.n.mh, Wc.prototype.j.Mp, Wc.prototype.j.Oj, Wc.prototype.n.yi, Wc.prototype.n.fm, Q.prototype.n.YF, Q.prototype.n.cos,
        Q.prototype.n.sin, Q.prototype.n.sqrt, Q.prototype.n.acos, Q.prototype.n.asin, Q.prototype.n.abs, W.prototype.g.Dt, Dc.prototype.j.Dz, Xc.prototype.j.Oj, ld.prototype.j.eu, ld.prototype.j.hu, yc.prototype.n.kB, Q.prototype.g.Lz, Dc.prototype.g.Sz, Q.prototype.n.min, W.prototype.n.pt, W.prototype.n.Opacity, Q.prototype.j.JB, Xc.prototype.j.Ij, Dc.prototype.g.Tt, Q.prototype.j.sB, W.prototype.j.Pj, W.prototype.j.Pp, Wc.prototype.j.Pj, Wc.prototype.j.Pp, Xc.prototype.g.em, Xc.prototype.j.Pj, Xc.prototype.j.Pp, ld.prototype.n.UB,
        ld.prototype.j.fu, Xc.prototype.j.yB, Xc.prototype.j.qu, Q.prototype.g.lz, Cc.prototype.g.Uz, Cc.prototype.j.YA, Cc.prototype.n.ZA, Q.prototype.n.rG, Q.prototype.g.dC, Q.prototype.n.tG, Dc.prototype.n.dB, cd.prototype.j.MB, Cc.prototype.j.IB, Cc.prototype.j.CB, cd.prototype.g.io, cd.prototype.g.ko, Q.prototype.j.DB, Dc.prototype.n.bC, Q.prototype.g.Oz, Mc.prototype.j.Ay, Dc.prototype.n.hz, Mc.prototype.g.Iy, Q.prototype.g.Tz, Q.prototype.n.Wh, Q.prototype.g.Cp, Q.prototype.j.pB, jd.prototype.n.aD, W.prototype.n.bz, W.prototype.g.VA,
        W.prototype.g.et, Q.prototype.g.sz, W.prototype.g.ft, Q.prototype.j.qB, Jc.prototype.g.Bt, Jc.prototype.n.$z, X.prototype.j.kz, W.prototype.n.Fz, W.prototype.n.Gz, W.prototype.j.iu, W.prototype.n.Cy, X.prototype.j.zp, Q.prototype.g.Nz, Q.prototype.n.KG, Xc.prototype.g.ft, hd.prototype.j.Np, hd.prototype.g.Gt, Jc.prototype.j.Oy, Wc.prototype.j.rm, Tc.prototype.j.Kp, Tc.prototype.n.Dy, Dc.prototype.g.Pz, Ac.prototype.j.aB, Ac.prototype.g.im, Q.prototype.n.yF, Ac.prototype.n.aA
    ]
};